taucharts
Version:
Data-focused charting library based on D3
9 lines • 462 kB
JavaScript
/*!
* /*
* taucharts@2.8.0 (2020-02-26)
* Copyright 2020 Targetprocess, Inc.
* Licensed under Apache License 2.0
* * /
*
*/
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("d3-selection"),require("d3-array"),require("d3-scale"),require("topojson-client"),require("d3-transition"),require("d3-format"),require("d3-time-format"),require("d3-brush"),require("d3-color"),require("d3-axis"),require("d3-geo"),require("d3-quadtree"),require("d3-shape"),require("d3-time")):"function"==typeof define&&define.amd?define(["d3-selection","d3-array","d3-scale","topojson-client","d3-transition","d3-format","d3-time-format","d3-brush","d3-color","d3-axis","d3-geo","d3-quadtree","d3-shape","d3-time"],e):"object"==typeof exports?exports.Taucharts=e(require("d3-selection"),require("d3-array"),require("d3-scale"),require("topojson-client"),require("d3-transition"),require("d3-format"),require("d3-time-format"),require("d3-brush"),require("d3-color"),require("d3-axis"),require("d3-geo"),require("d3-quadtree"),require("d3-shape"),require("d3-time")):t.Taucharts=e(t.d3,t.d3,t.d3,t.topojson,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3,t.d3)}(window,(function(t,e,n,r,i,a,o,s,u,l,c,f,d,h){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=21)}([function(e,n){e.exports=t},function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"traverseJSON",(function(){return vt})),n.d(r,"traverseSpec",(function(){return bt})),n.d(r,"clone",(function(){return Ot})),n.d(r,"isDate",(function(){return Pt})),n.d(r,"isObject",(function(){return Lt})),n.d(r,"niceZeroBased",(function(){return Nt})),n.d(r,"niceTimeDomain",(function(){return Rt})),n.d(r,"generateHash",(function(){return jt})),n.d(r,"generateRatioFunction",(function(){return zt})),n.d(r,"isSpecRectCoordsOnly",(function(){return It})),n.d(r,"throttleLastEvent",(function(){return Bt})),n.d(r,"splitEvenly",(function(){return Vt})),n.d(r,"extRGBColor",(function(){return Ht})),n.d(r,"extCSSClass",(function(){return Wt})),n.d(r,"toRadian",(function(){return Gt})),n.d(r,"normalizeAngle",(function(){return Ut})),n.d(r,"range",(function(){return Xt})),n.d(r,"hasXOverflow",(function(){return qt})),n.d(r,"hasYOverflow",(function(){return Yt})),n.d(r,"flatten",(function(){return $t})),n.d(r,"unique",(function(){return Jt})),n.d(r,"groupBy",(function(){return Kt})),n.d(r,"union",(function(){return Qt})),n.d(r,"intersection",(function(){return Zt})),n.d(r,"defaults",(function(){return te})),n.d(r,"omit",(function(){return ee})),n.d(r,"memoize",(function(){return ne})),n.d(r,"createMultiSorter",(function(){return re})),n.d(r,"pick",(function(){return ie})),n.d(r,"escape",(function(){return ae})),n.d(r,"template",(function(){return oe})),n.d(r,"escapeHtml",(function(){return se})),n.d(r,"xml",(function(){return le})),n.d(r,"take",(function(){return ce})),n.d(r,"isChartElement",(function(){return de})),n.d(r,"isFacetUnit",(function(){return he}));var i={};n.r(i),n.d(i,"appendTo",(function(){return me})),n.d(i,"getScrollbarSize",(function(){return ye})),n.d(i,"setScrollPadding",(function(){return ve})),n.d(i,"getStyle",(function(){return be})),n.d(i,"getStyleAsNum",(function(){return xe})),n.d(i,"getContainerSize",(function(){return _e})),n.d(i,"getAxisTickLabelSize",(function(){return we})),n.d(i,"getLabelSize",(function(){return Ee})),n.d(i,"getCharSize",(function(){return Se})),n.d(i,"selectOrAppend",(function(){return Me})),n.d(i,"selectImmediate",(function(){return Te})),n.d(i,"selectAllImmediate",(function(){return ke})),n.d(i,"sortChildren",(function(){return Ce})),n.d(i,"classes",(function(){return Ae})),n.d(i,"dispatchMouseEvent",(function(){return Oe}));var a={};n.r(a),n.d(a,"translate",(function(){return Pe})),n.d(a,"rotate",(function(){return Le})),n.d(a,"getOrientation",(function(){return Ne})),n.d(a,"parseTransformTranslate",(function(){return Re})),n.d(a,"isIntersect",(function(){return Fe})),n.d(a,"getDeepTransformTranslate",(function(){return De})),n.d(a,"raiseElements",(function(){return je}));var o=n(0),s=n(2),u=n(3),l={},c={};function f(t){var e=c[t];return e||(e=function(){for(var e,n,r=this,i=0,a=[];r=r.handler;){if("function"==typeof(n=r.callbacks[t])){if(!e)for(e=[this],i=0;i<arguments.length;i++)e.push(arguments[i]);a.unshift({fn:n,context:r.context,args:e})}if("function"==typeof(n=r.callbacks["*"])){if(!e)for(e=[this],i=0;i<arguments.length;i++)e.push(arguments[i]);a.unshift({fn:n,context:r.context,args:[{sender:this,type:t,args:e}]})}}a.forEach((function(t){return t.fn.apply(t.context,t.args)}))},c[t]=e),e}var d,h=function(){function t(){this.handler=null,this.emit_destroy=f("destroy")}return t.prototype.addHandler=function(t,e){e=e||this,this.handler={callbacks:t,context:e,handler:this.handler}},t.prototype.on=function(t,e,n){var r={};return r[t]=e,this.addHandler(r,n),r},t.prototype.fire=function(t,e){f.call(this,t).call(this,e)},t.prototype.removeHandler=function(t,e){var n,r=this;for(e=e||this;n=r,r=r.handler;)if(r.callbacks===t&&r.context===e)return r.callbacks=l,void(n.handler=r.handler)},t.prototype.destroy=function(){this.emit_destroy(),this.handler=null},t}(),p=(d=function(t,e){return(d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}d(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),g=function(){return(g=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)},m=(g({},o),function(t){function e(e){var n=t.call(this)||this;return n.screenModel=null,n._elementNameSpace=e.namespace||"default",n._elementScalesHub={},n}return p(e,t),e.prototype.regScale=function(t,e){return this._elementScalesHub[t]=e,this},e.prototype.getScale=function(t){return this._elementScalesHub[t]||null},e.prototype.fireNameSpaceEvent=function(t,e){var n=this._elementNameSpace;this.fire(t+"."+n,e)},e.prototype.subscribe=function(t,e,n){void 0===e&&(e=function(t){return t}),void 0===n&&(n=function(t){return t});var r=this,i={};[{event:"mouseover",limit:0},{event:"mouseout",limit:0},{event:"click",limit:0},{event:"mousemove",limit:"requestAnimationFrame"}].forEach((function(a){var s=a.event,u=a.limit;t.on(s,Bt(i,s,(function(t){var i={data:e.call(this,t),event:n.call(this,o.event,t)};r.fire(s,i),r.fireNameSpaceEvent(s,i)}),u))}))},e.prototype.allocateRect=function(){return{left:0,top:0,width:0,height:0}},e.prototype.defineGrammarModel=function(t){return{}},e.prototype.getGrammarRules=function(){return[]},e.prototype.getAdjustScalesRules=function(){return[]},e.prototype.createScreenModel=function(t){return null},e.prototype.getClosestElement=function(t,e){return null},e.prototype.addInteraction=function(){},e.prototype.draw=function(){this.config.options.container=this.config.options.slot(this.config.uid),this.drawFrames(this.config.frames)},e.prototype.data=function(){return this.config.frames.reduce((function(t,e){return t.concat(e.part())}),[])},e.prototype.node=function(){return this},e}(h)),y=function(t){return{day:{cast:function(e){var n=new Date(e);return new Date(n[t.setHours](0,0,0,0))},next:function(e){var n=new Date(e),r=new Date(n[t.setDate](n[t.getDate]()+1));return this.cast(r)}},week:{cast:function(e){var n=new Date(e);return n=new Date(n[t.setHours](0,0,0,0)),new Date(n[t.setDate](n[t.getDate]()-n[t.getDay]()))},next:function(e){var n=new Date(e),r=new Date(n[t.setDate](n[t.getDate]()+7));return this.cast(r)}},month:{cast:function(e){var n=new Date(e);return n=new Date(n[t.setHours](0,0,0,0)),n=new Date(n[t.setDate](1))},next:function(e){var n=new Date(e),r=new Date(n[t.setMonth](n[t.getMonth]()+1));return this.cast(r)}},quarter:{cast:function(e){var n=new Date(e);n=new Date(n[t.setHours](0,0,0,0));var r=(n=new Date(n[t.setDate](1)))[t.getMonth](),i=r-r%3;return new Date(n[t.setMonth](i))},next:function(e){var n=new Date(e),r=new Date(n[t.setMonth](n[t.getMonth]()+3));return this.cast(r)}},year:{cast:function(e){var n=new Date(e);return n=new Date(n[t.setHours](0,0,0,0)),n=new Date(n[t.setDate](1)),n=new Date(n[t.setMonth](0))},next:function(e){var n=new Date(e),r=new Date(n[t.setFullYear](n[t.getFullYear]()+1));return this.cast(r)}}}},v=y({setHours:"setHours",setDate:"setDate",getDate:"getDate",setMonth:"setMonth",getDay:"getDay",getMonth:"getMonth",setFullYear:"setFullYear",getFullYear:"getFullYear"}),b=y({setHours:"setUTCHours",setDate:"setUTCDate",getDate:"getUTCDate",setMonth:"setUTCMonth",getDay:"getUTCDay",getMonth:"getUTCMonth",setFullYear:"setUTCFullYear",getFullYear:"getUTCFullYear"}),x={add:function(t,e,n){return((void 0===n?{utc:!1}:n).utc?b:v)[t.toLowerCase()]=e,this},get:function(t,e){return((void 0===e?{utc:!1}:e).utc?b:v)[(t||"").toLowerCase()]||null},generate:function(t,e,n,r){var i=(void 0===r?{utc:!1}:r).utc,a=[],o=x.get(n,{utc:i});if(o){var s=o.cast(new Date(e)),u=o.cast(new Date(t));for(a.push(u);(u=o.next(new Date(u)))<=s;)a.push(u)}return a}},_=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),w=function(t){function e(e,n,r){var i=t.call(this)||this;return i.name="TauChartError",i.message=e,i.errorCode=n,i.errorArgs=r,i}return _(e,t),e}(Error),E={STACKED_FIELD_NOT_NUMBER:"STACKED_FIELD_NOT_NUMBER",NO_DATA:"NO_DATA",NOT_SUPPORTED_TYPE_CHART:"NOT_SUPPORTED_TYPE_CHART",UNKNOWN_UNIT_TYPE:"UNKNOWN_UNIT_TYPE",INVALID_LOG_DOMAIN:"INVALID_LOG_DOMAIN"},S={},M={get:function(t){return S[t]},reg:function(t,e){return S[t]=e,this}},T="taucharts_synthetic_record";M.reg("identity",(function(){return{}})).reg("flip",(function(t){var e=t.scaleY,n=t.scaleX,r=n.domain(),i=n.discrete?r[0]:Math.max(0,Math.min.apply(Math,r)),a=n.value(i)+-.5*n.stepSize(i);return{flip:!0,scaleX:e,scaleY:n,xi:function(t){return e.value(t[e.dim])},yi:function(t){return n.value(t[n.dim])},y0:function(){return a}}})).reg("obsoleteVerticalStackOrder",(function(){return{obsoleteVerticalStackOrder:!0}})).reg("positioningByColor",(function(t){return(t.scaleX.discrete?function(t){var e=t.data().reduce((function(e,n){var r=n[t.scaleX.dim],i=n[t.scaleColor.dim];return e.hasOwnProperty(r)||(e[r]=[]),e[r].indexOf(i)<0&&e[r].push(i),e}),{}),n=t.scaleX,r=t.scaleColor,i=r.discrete?r.domain():r.originalSeries().sort((function(t,e){return t-e})),a=i.length||1,o=i.reduce((function(t,e,n){return t[e]=n,t}),{});return Object.keys(e).forEach((function(t){return e[t].sort((function(t,e){return o[t]-o[e]}))})),{xi:function(r){var i=r[t.scaleX.dim],o=e[i]||[r[t.scaleColor.dim]],s=o.length,u=o.indexOf(r[t.scaleColor.dim]),l=function(t){return n.stepSize(t[n.dim])*(a/(1+a))}(r)/(a+1);return t.xi(r)-(s+1)*l/2+(1+u)*l}}}:function(){return{}})(t)})).reg("groupOrderByAvg",(function(t){var e=t.data(),n=e.reduce((function(e,n){var r=t.group(n);return e[r]=e[r]||[],e[r].push(n),e}),{}),r=Object.keys(n).map((function(e){return[e,(r=n[e],r.map(t.yi).reduce((function(t,e){return t+e}),0)/r.length)];var r})).sort((function(t,e){return t[1]-e[1]})).map((function(t){return t[0]}));return{order:function(t){var e=r.indexOf(t);return e<0?Number.MAX_VALUE:e}}})).reg("stack",(function(t){var e=t.data(),n=t.scaleX,r=t.scaleY;if(r.discrete||r.domain().some((function(t){return"number"!=typeof t})))throw new w("Stacked field ["+r.dim+"] should be a number",E.STACKED_FIELD_NOT_NUMBER,{field:r.dim});var i=function(t){return function(e){var i=e[n.dim],a=e[r.dim],o=a>=0?t.positive:t.negative,s=o[i]||0,u=s+a;return o[i]=u,{nextStack:u,prevStack:s}}},a=i({positive:{},negative:{}}),o=i({positive:{},negative:{}}),s=function(e){return ne(e,t.id)},u=Number.MAX_VALUE,l=Number.MIN_VALUE,c=function(t){return u=t<u?t:u,l=t>l?t:l,r.value(t)},f=s((function(t){return c(a(t).nextStack)})),d=s((function(t){return c(o(t).prevStack)})),h=function(e){return t.group(e)+"/"+(e[r.dim]>=0?1:-1)},p=Kt(e,h),g=Object.keys(p).sort(t.flip||!t.flip&&t.obsoleteVerticalStackOrder?function(e,n){return t.order(e)-t.order(n)}:function(e,n){return t.order(n)-t.order(e)}).reduce((function(t,e){return t.concat(p[e])}),[]);return g.forEach((function(t){f(t),d(t)})),r.fixup((function(t){var e={};return(!t.hasOwnProperty("max")||t.max<l)&&(e.max=l),(!t.hasOwnProperty("min")||t.min>u)&&(e.min=u),e})),{group:h,data:function(){return g},yi:f,y0:d}})).reg("size_distribute_evenly",(function(t,e){var n=e.minLimit,r=e.maxLimit,i=e.defMin,a=e.defMax,o=t.data(),s=function(t,e){return t-e},u=t.scaleX.discrete?t.scaleX.stepSize()/2:Number.MAX_VALUE,l=o.map((function(e){return t.xi(e)})).sort(s),c=l[0],f=l.slice(1).map((function(t){var e=t-c;return c=t,e})).filter((function(t){return t>0})).sort(s).concat(Number.MAX_VALUE)[0],d=Math.min(f,u),h="number"==typeof n?n:i,p={minSize:h,maxSize:"number"==typeof r?r:Math.max(h,Math.min(a,d))};return t.scaleSize.fixup((function(t){var e={};return t.fixed?t.maxSize>p.maxSize&&(e.maxSize=p.maxSize):(e.fixed=!0,e.minSize=p.minSize,e.maxSize=p.maxSize),e})),{}})).reg("adjustStaticSizeScale",(function(t,e){var n=e.minLimit,r=e.maxLimit,i=e.defMin,a=e.defMax,o={minSize:"number"==typeof n?n:i,maxSize:"number"==typeof r?r:a};return t.scaleSize.fixup((function(t){var e={};return t.fixed||(e.fixed=!0,e.minSize=o.minSize,e.maxSize=o.maxSize),e})),{}})).reg("adjustSigmaSizeScale",(function(t,e){var n,r,i,a,o=e.minLimit,s=e.maxLimit,u=e.defMin,l=e.defMax,c=function(t,e){return t-e},f=t.data().map((function(e){return t.xi(e)})).sort(c),d=f[0],h=f.slice(1).map((function(t){var e=t-d;return d=t,e})).filter((function(t){return t>0})).sort(c).concat(Number.MAX_VALUE)[0],p=t.scaleX.discrete?t.scaleX.stepSize()/2:Number.MAX_VALUE,g=Math.min(h,p),m="number"==typeof o?o:u,y="number"==typeof s?s:l,v={minSize:m,maxSize:Math.max(m,Math.min(y,(n=g,r=(m+y)/2,i=y,a=m,Math.round(r+(i-r)/(1+Math.exp(-(n-a)/.5))))))};return t.scaleSize.fixup((function(t){var e={};return t.fixed?t.maxSize>v.maxSize&&(e.maxSize=v.maxSize):(e.fixed=!0,e.minSize=v.minSize,e.maxSize=v.maxSize),e})),{}})).reg("avoidScalesOverflow",(function(t,e){var n,r,i=e.sizeDirection,a=function(t,e){return!t||t.discrete||"logarithmic"===t.scaleType||i.indexOf(e)<0},o=a(t.scaleX,"x"),s=a(t.scaleY,"y");if(o&&s)return{};t.scaleSize.fixup((function(t){return n=t.minSize,r=t.maxSize,t}));var u=t.data().reduce((function(e,i){var a,u,l=t.size(i),c=(l>=n?l:n+l*(r-n))/2;return o||(a=t.xi(i),e.left=Math.min(e.left,a-c),e.right=Math.max(e.right,a+c)),s||(u=t.yi(i),e.top=Math.min(e.top,u-c),e.bottom=Math.max(e.bottom,u+c)),e}),{top:Number.MAX_VALUE,right:-Number.MAX_VALUE,bottom:-Number.MAX_VALUE,left:Number.MAX_VALUE}),l=function(e,n,r,i){var a=e.domain(),o=Math.abs(e.value(a[1])-e.value(a[0])),s=(a[1]-a[0])/o;if(0===o)return 1;var u=Math.max(0,-n),l=Math.max(0,r-o),c=t.flip?l:u,f=t.flip?u:l,d=Number(a[0])-(i?f:c)*s,h=Number(a[1])+(i?c:f)*s;return e.fixup((function(t){var e={};if(t.fixedBorders){var i=t.fixedBorders.slice(),a=i[0],o=i[1];(a>n||o<r)&&(e.min=Math.min(t.min,d),e.max=Math.max(t.max,h),a=Math.min(n,a),o=Math.max(r,o)),e.fixedBorders=[a,o]}else e.fixed=!0,e.min=d,e.max=h,e.nice=!1,e.fixedBorders=[n,r];return e})),o/(c+o+f)},c=o?1:l(t.scaleX,u.left,u.right,!1),f=s?1:l(t.scaleY,u.top,u.bottom,!0),d=Math.min(n*c,n*f),h=Math.min(r*c,r*f);return t.scaleSize.fixup((function(){return{minSize:d,maxSize:h}})),{}})).reg("fillGaps",(function(t,e){var n=e.isStack,r=e.xPeriod,i=e.utc,a=Kt(t.data(),t.group),o=Object.keys(a).sort((function(e,n){return t.order(e)-t.order(n)})).reduce((function(t,e){return t.concat([a[e]])}),[]),s=t.scaleX.dim,u=t.scaleY.dim,l=t.scaleColor.dim,c=t.scaleSplit.dim,f=function(t){return t[u]>=0?1:-1},d=function(e,n,r){var i,a=[e,t.id(n),r].join(" ");return(i={})[s]=e,i[u]=1e-10*r,i[c]=n[c],i[l]=n[l],i[T]=!0,i[T+"id"]=a,i},h=function(t,e,n){var r=Kt(e,(function(t){return t[s]})),i=e[0];return t.reduce((function(t,e){return t.push.apply(t,r[e]||[d(e,i,n)]),t}),[])},p=function(t,e){return t-e},g=function(){return Jt(o.reduce((function(t,e){return t.concat(e.map((function(t){return t[s]})))}),[])).sort(p)},m=r?function(){var e=g(),n=Math.max.apply(Math,e.map((function(t){return Number(t)}))),a=t.scaleX.domain(),o=x.generate(a[0],a[1],r,{utc:i}).filter((function(t){return t>=a[0]&&t<=a[1]})),s=0,u=[],l=x.get(r,{utc:i});return o.forEach((function(t){var r=Number(t);if(!(r>=n)){for(var i=s;i<e.length;i++)if(Number(l.cast(e[i]))===r)return void s++;u.push(t)}})),e.concat(u).sort(p)}():g(),y=o.map((function(e){return e.sort((function(e,n){return t.xi(e)-t.xi(n)}))})).reduce(n?function(t,e){var n=Kt(e,(function(t){return String(f(t))}));return Object.keys(n).reduce((function(t,e){return t.concat(h(m,n[e],e))}),t)}:function(t,e){Kt(e,(function(t){return String(f(t))}));var n=Math.max.apply(Math,e.map((function(t){return t[s]})));return t.concat(h(m.filter((function(t){return t<=n})),e,0))},[]);return{data:function(){return y},size:function(e){return e[T]?t.scaleSize(0):t.size(e)},id:function(e){return e[T]?e[T+"id"]:t.id(e)}}}));var k=n(5);function C(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return 2===e.length?e[0]*(1-t)+e[1]*t:3===e.length?e[0]*(1-t)*(1-t)+2*e[1]*(1-t)*t+e[2]*t*t:e[0]*(1-t)*(1-t)*(1-t)+3*e[1]*(1-t)*(1-t)*t+3*e[2]*(1-t)*t*t+e[3]*t*t*t}function A(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var r=e.map((function(t){return t.x})),i=e.map((function(t){return t.y}));return{x:C.apply(void 0,[t].concat(r)),y:C.apply(void 0,[t].concat(i))}}function O(t,e,n,r,i){var a=A(t,e,n),o=A(t,e,n,r),s=A(t,n,r,i),u=A(t,r,i);return[e,a,o,A(t,o,s),s,u,i]}function P(t,e,n){var r;return void 0===n&&(n="polyline"),function(i){return 0===i?t:1===i?e:(r||(r=("cubic"===n?N:L)(t,e)),r(i))}}function L(t,e){var n=(t=t.filter((function(t){return!t.isInterpolated}))).map((function(t){return t.id})),r=e.map((function(t){return t.id})),i=n.filter((function(t){return r.indexOf(t)>=0})),a=t.filter((function(t){return!t.positionIsBeingChanged})),o=e.filter((function(t){return!t.positionIsBeingChanged})),s=X(a,o),u=X(o,a),l=[];return i.forEach((function(a,o){var c=n.indexOf(a),f=r.indexOf(a);if(0===o&&(c>0||f>0)&&l.push(R({isCubic:!1,polylineFrom:t.slice(0,c+1),polylineTo:e.slice(0,f+1),toOppositeScale:0===f?s:u})),o>0){var d=n.indexOf(i[o-1]),h=r.indexOf(i[o-1]);(c-d>1||f-h>1)&&l.push(F({isCubic:!1,polylineFrom:t.slice(d,c+1),polylineTo:e.slice(h,f+1)}))}l.push(D({pointFrom:t[c],pointTo:e[f]})),o===i.length-1&&(t.length-c-1>0||e.length-f-1>0)&&l.push(R({isCubic:!1,polylineFrom:t.slice(c),polylineTo:e.slice(f),toOppositeScale:e.length-f==1?s:u}))})),0===l.length&&(e.length>0&&0===i.length||t.length>0&&0===i.length)&&l.push(j({isCubic:!1,polylineFrom:t.slice(0),polylineTo:e.slice(0)})),function(t){var e=[];return l.forEach((function(n){var r=n(t);z(e,r)})),e}}function N(t,e){for(var n=2;n<t.length-1;n+=3)t[n-1].isCubicControl=!0,t[n].isCubicControl=!0;for(n=2;n<e.length-1;n+=3)e[n-1].isCubicControl=!0,e[n].isCubicControl=!0;var r,i;for(n=(t=t.filter((function(t){return!t.isInterpolated}))).length-2;n>=0;n--)i=t[n+1],(r=t[n]).isCubicControl||i.isCubicControl||(t.splice(n+1,0,A(1/3,i,r),A(2/3,i,r)),t[n+1].isCubicControl=!0,t[n+2].isCubicControl=!0);var a=t.filter((function(t,e){return e%3==0})),o=e.filter((function(t,e){return e%3==0})),s=a.map((function(t){return t.id})),u=o.map((function(t){return t.id})),l=s.reduce((function(e,n){return e[n]=t.findIndex((function(t){return t.id===n})),e}),{}),c=u.reduce((function(t,n){return t[n]=e.findIndex((function(t){return t.id===n})),t}),{}),f=s.filter((function(t){return u.indexOf(t)>=0})),d=a.filter((function(t){return!t.positionIsBeingChanged})),h=o.filter((function(t){return!t.positionIsBeingChanged})),p=X(d,h),g=X(h,d),m=[];return f.forEach((function(n,r){var i,a,o,s=l[n],u=c[n];if(0===r&&(s>0||u>0)&&m.push(R({polylineFrom:t.slice(0,s+1),polylineTo:e.slice(0,u+1),toOppositeScale:0===u?p:g,isCubic:!0})),r>0){var d=l[f[r-1]],h=c[f[r-1]];s-d>3||u-h>3?m.push(F({polylineFrom:t.slice(d,s+1),polylineTo:e.slice(h,u+1),isCubic:!0})):m.push((i={polylineFrom:t.slice(d,s+1),polylineTo:e.slice(h,u+1)},a=i.polylineFrom,o=i.polylineTo,function(t){return V(a.slice(1,3),o.slice(1,3),t)}))}m.push(D({pointFrom:t[s],pointTo:e[u]})),r===f.length-1&&(t.length-s-1>0||e.length-u-1>0)&&m.push(R({polylineFrom:t.slice(s),polylineTo:e.slice(u),toOppositeScale:e.length-u==1?p:g,isCubic:!0}))})),0===m.length&&(e.length>0&&0===f.length||t.length>0&&0===f.length)&&m.push(j({polylineFrom:t.slice(0),polylineTo:e.slice(0),isCubic:!0})),function(t){var e=[];return m.forEach((function(n){var r=n(t);z(e,r)})),e}}function R(t){var e=t.polylineFrom,n=t.polylineTo,r=t.isCubic,i=t.toOppositeScale,a=e.length>n.length?e:n,o=1===n.length,s=e[0].id!==n[0].id,u=Boolean(s!==o);return function(t){var e=(r?W:H)({t:t,polyline:a,decreasing:o,rightToLeft:u});o===u?e.shift():e.pop();var n=V(e.map(i),e,o?1-t:t);return n.forEach((function(t){return t.positionIsBeingChanged=!0})),n}}function F(t){var e=t.polylineFrom,n=t.polylineTo,r=t.isCubic,i=e.length,a=n.length;if(a!==i){var o=a<i,s=o?e:n,u=(r?U:G)({smallerPolyline:o?n:e,biggerPolyline:s,decreasing:o}),l=s.slice(1,s.length-1),c=u.slice(1,u.length-1);return function(t){var e=V(c,l,o?1-t:t);return e.forEach((function(t){return t.positionIsBeingChanged=!0})),e}}var f=e.slice(1,e.length-1),d=n.slice(1,n.length-1);return function(t){var e=V(f,d,t);return e.forEach((function(t){return t.positionIsBeingChanged=!0})),e}}function D(t){var e=t.pointFrom,n=t.pointTo;return function(t){return[B(e,n,t)]}}function j(t){var e=t.polylineFrom,n=t.polylineTo,r=t.isCubic,i=0===n.length,a=i,o=i?e:n;return function(t){var e=(r?W:H)({t:t,polyline:o,decreasing:i,rightToLeft:a});return e.forEach((function(t,e){e>0&&(t.positionIsBeingChanged=!0)})),e}}function z(t,e){return Array.prototype.push.apply(t,e)}function I(t,e,n){return void 0===e?t:"number"==typeof e?t+n*(e-t):e}function B(t,e,n){if(t===e)return e;var r={};return Object.keys(t).forEach((function(i){return r[i]=I(t[i],e[i],n)})),void 0!==e.id&&(r.id=e.id),r}function V(t,e,n){return t.map((function(t,r){return B(t,e[r],n)}))}function H(t){var e=t.t,n=t.polyline,r=t.decreasing,i=t.rightToLeft,a=Boolean(r)!==Boolean(i),o=function(t,e){var n=0;if(t>0){for(var r,i,a,o,s=[0],u=0,l=1;l<e.length;l++)a=e[l-1].x,o=e[l-1].y,r=e[l].x,i=e[l].y,u+=Math.sqrt((r-a)*(r-a)+(i-o)*(i-o)),s.push(u);var c=t*u;for(l=1;l<s.length;l++)if(c<=s[l]){n=Math.min(1,(l-1+(c-s[l-1])/(s[l]-s[l-1]))/(e.length-1));break}}var f=Math.floor((e.length-1)*n)+1,d=e.length-f,h=f,p=e.slice(0,f);if(n<1){var g=n*(e.length-1)%1,m=B(e[f-1],e[f],g);z(p,Xt(d).map((function(t){return Object.assign({},m,{id:e[h+t].id,isInterpolated:!0})})))}return p}(r?1-e:e,a?n.slice(0).reverse():n);return a&&o.reverse(),o}function W(t){var e=t.t,n=t.polyline,r=t.decreasing,i=t.rightToLeft,a=Boolean(r)!==Boolean(i),o=function(t,e){var n=(e.length-1)/3+1,r=0;if(t>0){for(var i,a,o,s,u,l,c,f,d=[0],h=0,p=1;p<n;p++)o=e[3*p-3].x,s=e[3*p-3].y,u=e[3*p-2].x,l=e[3*p-2].y,c=e[3*p-1].x,f=e[3*p-1].y,i=e[3*p].x,a=e[3*p].y,h+=(q(o,s,u,l)+q(u,l,c,f)+q(c,f,i,a)+q(i,a,o,s))/2,d.push(h);var g=t*h;for(p=1;p<d.length;p++)if(g<=d[p]){r=Math.min(1,(p-1+(g-d[p-1])/(d[p]-d[p-1]))/(n-1));break}}var m=Math.floor((n-1)*r)+1,y=n-m,v=3*m,b=e.slice(0,3*(m-1)+1);if(r<1){var x=Y(r*(n-1)%1,e.slice(3*(m-1),3*m+1)).slice(1,4);x.forEach((function(t){return t.isInterpolated=!0})),x[2].id=e[v].id,z(b,x),Xt(1,y).forEach((function(t){z(b,[{x:x[2].x,y:x[2].y,isCubicControl:!0,isInterpolated:!0},{x:x[2].x,y:x[2].y,isCubicControl:!0,isInterpolated:!0},Object.assign({},x[2],{id:e[v+3*t].id,isInterpolated:!0})])}))}return b}(r?1-e:e,a?n.slice(0).reverse():n);return a&&o.reverse(),o}function G(t){var e=t.smallerPolyline,n=t.biggerPolyline,r=t.decreasing,i=e.length-1,a=n.length-1,o=Math.floor(a/i)+1,s=a%i,u=Xt(i).map((function(t){return o+Number(t<s)})),l=[e[0]],c=1;return u.forEach((function(t){Xt(1,t).forEach((function(i){var a;i===t-1?(a=Object.assign({},e[c]),r||(a.id=n[l.length].id)):((a=B(e[c-1],e[c],i/(t-1))).id=n[l.length].id,r&&(a.isInterpolated=!0)),l.push(a)})),c++})),l}function U(t){var e=t.smallerPolyline,n=t.biggerPolyline,r=t.decreasing,i=(e.length-1)/3,a=(n.length-1)/3,o=Math.floor(a/i)+1,s=a%i,u=Xt(i).map((function(t){return o+Number(t<s)})),l=[e[0]],c=3;return u.forEach((function(t){if(t>2){var i=function(t,e){for(var n,r,i=[e[0]],a=0;a<t.length;a++)n=0===a?t[0]:t[a]/(1-t[a-1]),r=Y(n,e),z(i,r.slice(1,4)),e=r.slice(3);return z(i,e.slice(1)),i}(Xt(1,t-1).map((function(e){return e/(t-1)})),e.slice(c-3,c+1));Xt(t-2).forEach((function(t){return i[3*(t+1)].id=n[l.length-1+3*t].id})),r&&i.forEach((function(t,e){e>0&&e<i.length-1&&(t.isInterpolated=!0)})),z(l,i.slice(1))}else{var a=Object.assign({},e[c-2]),o=Object.assign({},e[c-1]),s=Object.assign({},e[c]);r||(s.id=n[l.length+2].id),l.push(a,o,s)}c+=3})),l}function X(t,e){var n,r,i,a,o=[],s=[],u=0,l=t.length,c=e.length;for(n=0;n<l;n++)for(i=t[n],r=u;r<c;r++)if(a=e[r],i.id===a.id){u=r+1,o.push(i),s.push(a);break}if(o.length<1||s.length<1)return function(t){return t};var f=Object.keys(o[0]).filter((function(t){return"number"==typeof o[0][t]})).filter((function(t){return"id"!==t})),d={},h=function(t,e,n,r){return function(i){return r+(i-e)*(r-n)/(e-t)}};return f.forEach((function(t){for(var e,n,r=o[0][t],i=s[0][t],a=o.length-1;a>0;a--)if((e=o[a][t])!==r)return n=s[a][t],void(d[t]=h(r,e,i,n));d[t]=function(t,e){return function(n){return n-t+e}}(r,i)})),function(t){var e=Object.assign({},t);return f.forEach((function(n){e[n]=d[n](t[n])})),e}}function q(t,e,n,r){return Math.sqrt((n-t)*(n-t)+(r-e)*(r-e))}function Y(t,e){var n=e[0],r=e[1],i=e[2],a=e[3],o=O(t,n,r,i,a);return[o[1],o[2],o[4],o[5]].forEach((function(t){return t.isCubicControl=!0})),Object.keys(a).forEach((function(e){"x"!==e&&"y"!==e&&"id"!==e&&(o[3][e]=I(n[e],a[e],t))})),o}function $(t,e){if(t.length<2)return t.slice(0);if(2===t.length)return[t[0],{x:J(t[0].x,t[1].x,1/3),y:J(t[0].y,t[1].y,1/3)},{x:J(t[0].x,t[1].x,2/3),y:J(t[0].y,t[1].y,2/3)},t[1]];for(var n,r,i,a,o,s,u,l,c,f,d,h,p,g,m=new Array(3*(t.length-1)+1),y=m.length-1,v=0;v<t.length;v++)m[3*v]=t[v],v>0&&(m[3*v-2]=A(1/3,t[v-1],t[v]),m[3*v-1]=A(2/3,t[v-1],t[v]));for(var b=m.slice(0),x=0;x<3;x++){for(m[1]={x:J(m[0].x,m[3].x,1/3),y:J(m[0].y,J(m[3].y,m[2].y,1.5),2/3)},m[y-1]={x:J(m[y].x,m[y-3].x,1/3),y:J(m[y].y,J(m[y-3].y,m[y-2].y,1.5),2/3)},e&&((m[1].y-m[0].y)*(m[3].y-m[2].y)<0&&(m[1]={x:m[1].x,y:m[0].y}),(m[y-1].y-m[y].y)*(m[y-3].y-m[y-2].y)<0&&(m[y-1]={x:m[y-1].x,y:m[y].y})),v=6;v<b.length;v+=3)n=b[v-5],r=b[v-3],i=b[v-1],(r.x-n.x)*(i.x-r.x)*1e12<1?(a=J(n.x,r.x,.5),s=J(r.x,i.x,.5),o=J(n.y,r.y,.5),u=J(r.y,i.y,.5)):(f=(r.x-n.x)/(i.x-n.x),l=(r.x-n.x*(1-f)*(1-f)-i.x*f*f)/(2*(1-f)*f),c=(r.y-n.y*(1-f)*(1-f)-i.y*f*f)/(2*(1-f)*f),a=J(n.x,l,f),s=J(l,i.x,f),o=J(n.y,c,f),u=J(c,i.y,f),e&&(h=r.x-a,p=s-r.x,d=(u-r.y)/p,(r.y-n.y)*(i.y-r.y)<=0?d=0:(r.y>n.y==u>i.y&&(p=J(p*(g=(i.y-r.y)/(u-r.y)),p,1/(1+Math.abs(g))),d=(i.y-r.y)/p),r.y>n.y==o<n.y&&(h=J(h*(g=(r.y-n.y)/(r.y-o)),h,1/(1+Math.abs(g))),d=(r.y-n.y)/h)),a=r.x-h,s=r.x+p,o=r.y-d*h,u=r.y+d*p)),m[v-4]={x:a,y:o},m[v-2]={x:s,y:u};b=m.slice(0)}return b}function J(t,e,n){return t+n*(e-t)}var K={linear:function(t){return t},step:function(t){for(var e,n,r,i,a=[],o=void 0!==t[0].id,s=void 0!==t[0].size,u=1;u<t.length;u++)e=t[u-1],n=t[u],r={x:(e.x+n.x)/2,y:e.y},i={x:(e.x+n.x)/2,y:n.y},o&&(r.id=e.id+"-"+n.id+"-1",i.id=e.id+"-"+n.id+"-2"),s&&(r.size=e.size,i.size=n.size),1===u&&a.push(e),a.push(r,i,n);return a},"step-before":function(t){for(var e,n,r,i=[],a=void 0!==t[0].id,o=void 0!==t[0].size,s=1;s<t.length;s++)e=t[s-1],n=t[s],r={x:e.x,y:n.y},a&&(r.id=e.id+"-"+n.id),o&&(r.size=n.size),1===s&&i.push(e),i.push(r,n);return i},"step-after":function(t){for(var e,n,r,i=[],a=void 0!==t[0].id,o=void 0!==t[0].size,s=1;s<t.length;s++)e=t[s-1],r={x:(n=t[s]).x,y:e.y},a&&(r.id=e.id+"-"+n.id),o&&(r.size=e.size),1===s&&i.push(e),i.push(r,n);return i}},Q={smooth:function(t){return $(t,!1)},"smooth-keep-extremum":function(t){return $(t,!0)}};function Z(t){return K[t]||Q[t]}function tt(t){return void 0!==Q[t]?"cubic":"polyline"}var et=function(){return(et=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)},nt=et({},o,k),rt=function(){return ne((function(t){return t.node().getComputedTextLength()}),(function(t){return t.node().textContent.length}))};var it=function(t,e,n){return e>0&&!document.hidden&&((t=t.transition(n).duration(e)).attr=at),t.onTransitionEnd=function(t){return ut(this,t),this},t},at=function(t,e){var n,r,i=this,a=nt.transition.prototype.attr.apply(this,arguments);if(0===arguments.length)throw new Error("Unexpected `transition().attr()` arguments.");1===arguments.length?r=t:arguments.length>1&&((n={})[t]=e,r=n);var o="__transitionAttrs__",s="__lastTransitions__",u=st();this.each((function(){var t=this,e={};for(var n in r)"function"==typeof r[n]?e[n]=r[n].apply(this,arguments):e[n]=r[n];this[o]=Object.assign(this[o]||{},e),this[o][s]||Object.defineProperty(this[o],s,{value:{}}),Object.keys(e).forEach((function(e){return t[o][s][e]=u}))}));var l=function(){var t=this;this[o]&&(Object.keys(r).filter((function(e){return t[o][s][e]===u})).forEach((function(e){return delete t[o][e]})),0===Object.keys(this[o]).length&&delete this[o])};return this.on("interrupt."+u,(function(){return i.each(l)})),this.on("end."+u,(function(){return i.each(l)})),a},ot=0,st=function(){return++ot},ut=function(t,e){if(nt.transition.prototype.isPrototypeOf(t)&&!t.empty()){var n=function(){return e.call(null,t)};return t.on("interrupt.d3_on_transition_end",n),t.on("end.d3_on_transition_end",n),t}e.call(null,t)},lt=function(t,e,n,r){var i=r||function(t){return t},a=function(){i(this)};return function(r){var i=r;return e&&(i=i.call(dt(te(e,n)))),i=(i=it(i,t)).call(dt(n)),t>0?i.on("end.d3_animationInterceptor",(function(){return i.each(a)})):i.each(a),i}},ct=function(t,e){var n=t.node();return t.selectAll(e).filter((function(){return this.parentNode===n}))},ft=function(t,e,n,r,i){void 0===i&&(i="linear");var a="__pathPoints__";return function(t){var o=this;this[a]||(this[a]=n.map((function(){return[]})));var s=n.map((function(e,n){var s=Jt(t,r).map(e),u=(Z(i)||Z("linear"))(s),l=o[a][n];return{pointsFrom:l,pointsTo:u,interpolate:P(l,u,tt(i))}}));return function(t){if(0===t){var n=s.map((function(t){return t.pointsFrom}));return e.apply(void 0,n)}if(1===t){var r=s.map((function(t){return t.pointsTo}));return o[a]=r,e.apply(void 0,r)}var i=s.map((function(e){return e.interpolate(t)}));return o[a]=i,e.apply(void 0,i)}}},dt=function(t){return function(e){return Object.keys(t).forEach((function(n){return e.attr(n,t[n])})),e}},ht=function(t){return function(e){return Object.keys(t).forEach((function(n){return e.classed(n,t[n])})),e}},pt=function(){var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(e,n)};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),gt=function(t){function e(e){var n=t.call(this,e)||this;n.config=e,n.config.guide=te(n.config.guide||{},{animationSpeed:0,enableColorToBarPosition:!1}),n.config.guide.size=n.config.guide.size||{};var r=n.config.stack,i=n.config.guide.enableColorToBarPosition,a=[e.flip&&M.get("flip"),r&&M.get("stack"),i&&M.get("positioningByColor")];return n.decorators=(n.config.transformRules||a).concat(e.transformModel||[]),n.adjusters=(n.config.adjustRules||[]).concat(e.adjustScales||[]),n}return pt(e,t),e.prototype.defineGrammarModel=function(t){var e=this,n=this.config;this.regScale("x",t("pos",n.x,[0,n.options.width])).regScale("y",t("pos",n.y,[n.options.height,0])).regScale("y",t("pos",n.y,(function(t){return["ordinal","period"].indexOf(t.type)>=0?[0,n.options.height]:[n.options.height,0]}))).regScale("size",t("size",n.size,{})).regScale("color",t("color",n.color,{})).regScale("split",t("split",n.split,{})).regScale("label",t("label",n.label,{})).regScale("identity",t("identity",n.identity,{}));var r=this.getScale("x"),i=this.getScale("y"),a=this.getScale("size"),o=this.getScale("label"),s=this.getScale("color"),u=this.getScale("split"),l=this.getScale("identity"),c=i.domain(),f=i.discrete?c[0]:Math.max(0,Math.min.apply(Math,c)),d=i.value(f)+.5*i.stepSize(f),h=s.domain(),p={data:function(){return e.data()},flip:!1,scaleX:r,scaleY:i,scaleSize:a,scaleLabel:o,scaleColor:s,scaleSplit:u,scaleIdentity:l,color:function(t){return s.value(t[s.dim])},label:function(t){return o.value(t[o.dim])},group:function(t){return t[s.dim]+"(@taucharts@)"+t[u.dim]},order:function(t){var e=t.split("(@taucharts@)")[0],n=h.indexOf(e);return n<0?Number.MAX_VALUE:n},size:function(t){return a.value(t[a.dim])},id:function(t){return l.value(t[l.dim],t)},xi:function(t){return r.value(t[r.dim])},yi:function(t){return i.value(t[i.dim])},y0:function(){return d}};return p.data().forEach((function(t){return p.id(t)})),p},e.prototype.getGrammarRules=function(){return this.decorators.filter((function(t){return t}))},e.prototype.getAdjustScalesRules=function(){return(this.adjusters||[]).filter((function(t){return t}))},e.prototype.createScreenModel=function(t){var e=t.flip,n=function(t,e,n){return t?e:n};return{flip:e,id:t.id,x:n(e,t.yi,t.xi),y:n(e,t.xi,t.yi),x0:n(e,t.y0,t.xi),y0:n(e,t.xi,t.y0),size:t.size,group:t.group,order:t.order,label:t.label,color:function(e){return t.scaleColor.toColor(t.color(e))},class:function(e){return t.scaleColor.toClass(t.color(e))},model:t,toFibers:function(){var e=Kt(t.data(),t.group);return Object.keys(e).sort((function(e,n){return t.order(e)-t.order(n)})).reduce((function(t,n){return t.concat([e[n]])}),[])}}},e.prototype.drawFrames=function(){var t=this,e=this.config.options,n=function(e){return function(t,e){var n=Math.pow(10,e);return Math.round(n*t)/n}(t.screenModel.size(e)/2,4)},r=lt,i=function(e,n,i){var a=t.config.guide.animationSpeed,s=e.selectAll("."+n).data((function(t){return[t]}),t.screenModel.id);s.exit().call(r(a,null,{width:0},(function(t){return o.select(t).remove()}))),s.call(r(a,null,i)),s.enter().append("rect").style("stroke-width",0).call(r(a,{width:0},i))},a=this.config.flip,s=a?"y":"x",u=a?"x":"y",l=a?"x0":"y0",c=a?"height":"width",f=a?"width":"height",d=function(e){var r,a,o;i(e,"lvl-top",((r={})[c]=function(t){return n(t)},r[f]=1,r[s]=function(e){return t.screenModel[s](e)-n(e)/2},r[u]=function(e){return t.screenModel[u](e)},r.fill=function(e){return t.screenModel.color(e)},r.class=function(e){return"lvl-top "+t.screenModel.class(e)},r)),i(e,"lvl-btm",((a={})[c]=function(t){return n(t)},a[f]=1,a[s]=function(e){return t.screenModel[s](e)-n(e)/2},a[u]=function(e){return t.screenModel[l](e)},a.fill=function(e){return t.screenModel.color(e)},a.class=function(e){return"lvl-btm "+t.screenModel.class(e)},a)),i(e,"lvl-link",((o={})[c]=.5,o[f]=function(e){return Math.abs(t.screenModel[u](e)-t.screenModel[l](e))},o[s]=function(e){return t.screenModel[s](e)-.25},o[u]=function(e){return Math.min(t.screenModel[u](e),t.screenModel[l](e))},o.fill=function(e){return t.screenModel.color(e)},o.class=function(e){return"lvl-link "+t.screenModel.class(e)},o))},h=function(e){e.attr("class","frame-id-"+t.config.uid).call((function(e){var n=e.selectAll(".generic").data((function(t){return t}),t.screenModel.id);n.exit().remove(),n.call(d),n.enter().append("g").attr("class","generic").call(d)}))},p=Kt(this.data(),t.screenModel.group),g=Object.keys(p).sort((function(e,n){return t.screenModel.order(e)-t.screenModel.order(n)})).reduce((function(t,e){return t.concat([p[e]])}),[]),m=e.container.selectAll(".frame-id-"+t.config.uid).data(g);m.exit().remove(),m.call(h),m.enter().append("g").call(h)},e}(m),mt=function(){return(mt=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var i in e=arguments[n])Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}).apply(this,arguments)},yt=mt({},s,u);function vt(t,e,n,r){var i=r(n(t),t);return(i[e]||[]).forEach((function(t){return vt(t,e,n,r)})),i}function bt(t,e,n,r){void 0===r&&(r=0),e(t,r)&&(t.units||[]).map((function(t){return bt(t,e,n,r+1)})),n(t,r)}var xt=function(){var t=[];function e(t){for(var e in t)this[e]=t[e]}function n(){this.copiedObjects=[];var t=this;this.recursiveDeepCopy=function(e){return t.deepCopy(e)},this.depth=0}function r(t,e){var r=new n;return e&&(r.maxDepth=e),r.deepCopy(t)}return e.prototype={constructor:e,canCopy:function(t){return!1},create:function(t){},populate:function(t,e,n){}},n.prototype={constructor:n,maxDepth:256,cacheResult:function(t,e){this.copiedObjects.push([t,e])},getCachedResult:function(t){for(var e=this.copiedObjects,n=e.length,r=0;r<n;r++)if(e[r][0]===t)return e[r][1]},deepCopy:function(e){if(null===e)return null;if("object"!=typeof e)return e;var n=this.getCachedResult(e);if(n)return n;for(var r=0;r<t.length;r++){var i=t[r];if(i.canCopy(e))return this.applyDeepCopier(i,e)}throw new Error("no DeepCopier is able to copy "+e)},applyDeepCopier:function(t,e){var n=t.create(e);if(this.cacheResult(e,n),this.depth++,this.depth>this.maxDepth)throw new Error("Exceeded max recursion depth in deep copy.");return t.populate(this.recursiveDeepCopy,e,n),this.depth--,n}},r.DeepCopier=e,r.deepCopiers=t,r.register=function(n){n instanceof e||(n=new e(n)),t.unshift(n)},r.register({canCopy:function(){return!0},create:function(t){return t instanceof t.constructor?"object"==typeof(e=t.constructor.prototype)?JSON.parse(JSON.stringify(e)):e:{};var e},populate:function(t,e,n){for(var r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}}),r.register({canCopy:function(t){return t instanceof Array},create:function(t){return new t.constructor},populate:function(t,e,n){for(var r=0;r<e.length;r++)n.push(t(e[r]));return n}}),r.register({canCopy:function(t){return t instanceof Date},create:function(t){return new Date(t)}}),r}(),_t=function(t){return/^(#|rgb\(|rgba\()/.test(t)},wt=/(.)^/,Et={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},St={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Mt=/\\|'|\r|\n|\u2028|\u2029/g,Tt="(?:"+Object.keys(Et).join("|")+")",kt=RegExp(Tt),Ct=RegExp(Tt,"g"),At={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};function Ot(t){return xt(t)}function Pt(t){return t instanceof Date&&!isNaN(Number(t))}function Lt(t){return null!=t&&"object"==typeof t}function Nt(t){var e=parseFloat(Math.min.apply(Math,t).toFixed(15)),n=parseFloat(Math.max.apply(Math,t).toFixed(15));e===n&&(n-=(n>=0?-1:1)*(n||1)/10);for(var r=[e=Math.min(0,e),n=Math.max(0,n)],i=r[1]-r[0],a=Math.pow(10,Math.floor(Math.log(i/10)/Math.LN10)),o=10/i*a,s=[[.15,10],[.35,5],[.75,2],[1,1],[2,1]],u=-1;o>s[++u][0];);a*=s[u][1],r[0]=Math.floor(r[0]/a)*a,r[1]=Math.ceil(r[1]/a)*a;var l=e-r[0],c=r[1]-n,f=a/2;if(e<0){var d=l>=f?-l:0;r[0]=r[0]-d}if(n>0){var h=c>=f?-c:0;r[1]=r[1]+h}return[parseFloat(r[0].toFixed(15)),parseFloat(r[1].toFixed(15))]}function Rt(t,e,n){var r=(void 0===n?{utc:!1}:n).utc,i=yt.extent(t),a=i[0],o=i[1],s=+o-+a,u=r?yt.scaleUtc:yt.scaleTime;if(0===s){return a=new Date(a.getTime()-864e5),o=new Date(o.getTime()+864e5),u().domain([a,o]).nice(e).domain()}var l=u().domain([a,o]).nice(e);if(e)return l.domain();var c=u().domain([a,o]).nice(e).domain(),f=c[0],d=c[1],h=l.ticks(),p=h.length-1;return(+a-+f)/(+h[1]-+f)<.5&&(a=f),(+d-+o)/(+d-+h[p-1])<.5&&(o=d),[a,o]}var Ft=0,Dt={};function jt(t){var e=btoa(encodeURIComponent(t)).replace(/=/g,"_");return Dt.hasOwnProperty(e)||(Dt[e]="H"+ ++Ft),Dt[e]}function zt(t,e,n){var r=0,i=null,a=ne((function(t,e){return Jt(t.map((function(t){return e.reduce((function(e,n){return e.concat(Pt(r=t[n])?r.getTime():r);var r}),[])})),(function(t){return JSON.stringify(t)})).reduce((function(t,e){var n=e[0];return t[n]=t[n]||0,t[n]+=1,t}),{})}),(function(t,e){var n=i===t?r:++r;return i=t,e.join("")+"-"+n}));return function(r,i,o){var s=o.length,u=n.getSpec(),l=u.sources["/"].data,c=u.unit.units[0].guide||{};c.padding=c.padding||{l:0,r:0,t:0,b:0};var f=0;"x"===t?f=c.padding.l+c.padding.r:"y"===t&&(f=c.padding.t+c.padding.b);var d,h=(i-s*f)/(d=a(l,e),Object.keys(d).reduce((function(t,e){return t+d[e]}),0));return(function(t,e){return a(l,t)[e]}(e,r)*h+f)/i}}function It(t){var e=!0;try{bt(t,(function(t){if(0===t.type.indexOf("COORDS.")&&"COORDS.RECT"!==t.type)throw new Error("Not applicable")}),(function(t){return t}))}catch(t){"Not applicable"===t.message&&(e=!1)}return e}function Bt(t,e,n,r){if(void 0===r&&(r=0),"requestAnimationFrame"===r){var i=!1;return function(){for(var r=[],a=0;a<arguments.length;a++)r[a]=arguments[a];i||(requestAnimationFrame((function(){i=!1})),n.apply(this,r),i=!0),t.e=e,t.ts=Date.now()}}return function(){for(var i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];var o={e:e,ts:Date.now()},s=t.e&&t.e===o.e?o.ts-t.ts:r;s>=r&&n.apply(this,i),t.e=o.e,t.ts=o.ts}}function Vt(t,e){var n=t[0],r=t[1],i=(r-n)/(e-1),a=e>=2?Xt(e-2).map((function(t){return n+i*(t+1)})):[];return[n].concat(a,[r])}function Ht(t){return _t(t)?t:""}function Wt(t){return _t(t)?"":t}function Gt(t){return t/180*Math.PI}function Ut(t){return Math.abs(t)>=360&&(t%=360),t<0&&(t=360+t),t}function Xt(t,e){1===arguments.length&&(e=t,t=0);for(var n=[],r=t;r<e;r++)n.push(r);return n}function qt(t,e,n,r){return t+e*(90===n?-1:1)-r>100}function Yt(t,e,n,r){return t+e*(-90===n?-1:1)-r>20}function $t(t){return Array.isArray(t)?[].concat.apply([],t.map((function(t){return $t(t)}))):t}function Jt(t,e){for(var n={},r=[],i=t.length,a=e||function(t){return String(t)},o=0;o<i;++o){var s=t[o],u=a(s);n.hasOwnProperty(u)||(n[u]=!0,r.push(s))}return r}function Kt(t,e){return t.reduce((function(t,n){var r=e(n);return t[r]=t[r]||[],t[r].push(n),t}),{})}function Qt(t,e){return Jt(t.concat(e))}function Zt(t,e){return t.filter((function(t){return-1!==e.indexOf(t)}))}function te(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var r=e.length;if(0===r||!t)return t;for(var i=0;i<r;i++)for(var a=e[i],o=Lt(a)?Object.keys(a):[],s=o.length,u=0;u<s;u++){var l=o[u];void 0===t[l]&&(t[l]=a[l])}return t}function ee(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var r=Object.assign({},t);return e.forEach((function(t){delete r[t]})),r}function ne(t,e){var n=function(r){var i=n.cache,a=String(e?e.apply(this,arguments):r);return i.hasOwnProperty(a)||(i[a]=t.apply(this,arguments)),i[a]};return n.cache={},n}function re(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(e,n){var r=0;return t.every((function(t){return 0===(r=t(e,n))})),r}}function ie(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var r={};return null==t?r:e.reduce((function(e,n){var r=t[n];return r&&(e[n]=r),e}),{})}function ae(t){return t=null==t?"":String(t),kt.test(t)?t.replace(Ct,(function(t){return Et[t]})):t}function oe(t,e,n){!e&&n&&(e=n),e=te({},e,At);var r=RegExp([(e.escape||wt).source,(e.interpolate||wt).source,(e.evaluate||wt).source].join("|")+"|$","g"),i=0,a="__p+='";t.replace(r,(function(e,n,r,o,s){return a+=t.slice(i,s).replace(Mt,(function(t){return"\\"+St[t]})),i=s+e.length,n?a+="'+\n((__t=("+n+"))==null?'':utils.escape(__t))+\n'":r?a+="'+\n((__t=("+r+"))==null?'':__t)+\n'":o&&(a+="';\n"+o+"\n__p+='"),e})),a+="';\n",e.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{var o=new Function(e.variable||"obj",a)}catch(t){throw t.source=a,t}var s=function(t){return o.call(this,t)},u=e.variable||"obj";return s.source="function("+u+"){\n"+a+"}",s}function se(t){return String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}var ue=["img","input","br","embed","link","meta","area","base","basefont","bgsound","col","command","frame","hr","image","isindex","keygen","menuitem","nextid","param","source","track","wbr","circle","ellipse","line","path","polygon","rect"].reduce((function(t,e){return t[e]=!0,t}),{});function le(t){var e=2,n=arguments[1];("object"!=typeof arguments[1]||Array.isArray(arguments[1]))&&(e=1,n={});var r=$t(Array.prototype.slice.call(arguments,e)),i=1===r.length&&"<"!==r[0].trim()[0],a=ue[t];if(a&&r.length>0)throw new Error('Tag "'+t+'" is void but content is assigned to it');var o="<"+t,s=Object.keys(n).map((function(t){return" "+t+'="'+n[t]+'"'})).join("");s.length>32&&(s=Object.keys(n).map((function(t){return"\n "+t+'="'+n[t]+'"'})).join(""));var u=i?r[0]:"\n"+r.map((function(t){return String(t).split("\n").map((function(t){return" "+t})).join("\n")})).join("\n")+"\n",l=a?"/>":">"+u+"</"+t+">";return""+o+s+l}function ce(t){var e=t,n={then:function(t){return e=t(e),n},result:function(){return e}};return n}var fe=[gt];function de(t){return fe.some((function(e){return t instanceof e}))}function he(t){return(t.units||[]).some((function(t){return t.hasOwnProperty("units")}))}var pe=document.createElement("div"),ge=new WeakMap;function me(t,e){var n;return t instanceof Node?n=t:(pe.insertAdjacentHTML("afterbegin",t),n=pe.childNodes[0]),e.appendChild(n),n}function ye(t){if(ge.has(t))return ge.get(t);var e=t.style.overflow;t.style.overflow="scroll";var n={width:t.offsetWidth-t.clientWidth,height:t.offsetHeight-t.clientHeight};return t.style.overflow=e,ge.set(t,n),n}function ve(t,e){var n="horizontal"===(e=e||"both")||"both"===e,r="vertical"===e||"both"===e,i=ye(t),a=r?i.width+"px":"0",o=n?i.height+"px":"0";t.style.overflow="hidden",t.style.padding="0 "+a+" "+o+" 0";var s=t.scrollWidth>t.clientWidth,u=t.scrollHeight>t.clientHeight,l=r&&!u?i.width+"px":"0",c=n&&!s?i.height+"px":"0";return t.style.padding="0 "+l+" "+c+" 0",t.style.overflow="",t.style.overflowX=s?"scroll":"hidden",t.style.overflowY=u?"scroll":"hidden",i}function be(t,e){return window.getComputedStyle(t).getPropertyValue(e)}function xe(t,e){return parseInt(be(t,e)||"0",10)}function _e(t){var e=xe(t,"padding-left"),n=xe(t,"padding-right"),r=xe(t,"padding-bottom"),i=xe(t,"padding-top"),a=xe(t,"border-top-width")+xe(t,"border-left-width")+xe(t,"border-right-width")+xe(t,"border-bottom-width"),o=t.getBoundingClientRect();return{width:o.width-e-n-2*a,height:o.height-r-i-2*a}}function we(t){var e=document.createElement("div");e.style.position="absolute",e.style.visibility="hidden",e.style.width="100px",e.style.height="100px",e.style.border="1px solid green",e.style.top="0",document.body.appendChild(e),e.innerHTML='<svg class="tau-chart__svg">\n <g class="tau-chart__cell cell">\n <g class="x axis">\n <g class="tick"><text></text></g>\n </g>\n </g>\n </svg>';var n=e.querySelector(".x.axis .tick text");n.textContent=t;var r={width:0,height:0},i=n.getBoundingClientRect();r.width=i.right-i.left,r.height=i.bottom-i.top;var a=0!==t.length?r.width/t.length:0;return r.width=r.width+1.5*a,document.body.removeChild(e),r}function Ee(t,e){var n=e.fontSize,r=e.fontFamily,i=e.fontWeight,a="string"==typeof n?n:n+"px",o=t.map((function(t){for(var e=0,n=0;e<=t.length-1;e++){n+=Se(t.charAt(e),{fontSize:a,fontFamily:r,fontWeight:i}).width}return n})).sort((function(t,e){return e-t}))[0],s=t.length,u=parseInt(a);return{width:o,height:u*s+.39*u*s}}var Se=ne((function(t,e){var n=e.fontSize,r=e.fontFamily,i=e.fontWeight,a=document.createElement("div");a.style.position="absolute",a.style.visibility="hidden",a.style.border="0px",a.style.top="0",a.style.fontSize=n,a.style.fontFamily=r,a.style.fontWeight=i,document.body.appendChild(a),a.innerHTML=" "===t?" ":t;var o={width:0,height:0},s=a.getBoundingClientRect();return o.width=s.right-s.left,o.height=s.bottom-s.top,document.body.removeChild(a),o}),(function(t,e){return t+"_"+JSON.stringify(e)}));function Me(t,e){var n={".":function(t,e){return e.classed(t,!0)},"#":function(t,e){return e.attr("id",t)}},r=Object.keys(n).join("");if(e.indexOf(" ")>=0)throw new Error("Selector should not contain whitespaces.");if(r.indexOf(e[0])>=0)throw new Error("Selector must have tag at the beginning.");var i,a=t instanceof Element,s=a?o.select(t):t,u=function(t){return a?t.node():t},l=s.selectAll(e).filter((function(){return this.parentNode===s.node()})).filter((function(t,e){return 0===e}));if(!l.empty())return u(l);for(var c,f=-1,d=null,h=1,p=e.length;h<=p;h++)(h==p||r.indexOf(e[h])>=0)&&(c=e.substring(f+1,h),f<0?i=s.append(c):n[d].call(null,c,i),d=e[h],f=h);return u(i)}function Te(t,e){return ke(t,e)[0]||null}function ke(t,e){for(var n=[],r=Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,i=t.firstElementChild;Boolean(i);i=i.nextElementSibling)r.call(i,e)&&n.push(i);return n}function Ce(t,e){if(t.childElementCount>