mdt-charts 1.9.7 → 1.9.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +190 -190
  2. package/dist/index.html +363 -48
  3. package/dist/listeners.89e1e272264c0e680de8.js +278 -0
  4. package/dist/main.f8b6bc6fee33cef1116c.js +228 -0
  5. package/dist/src_engine_engine_ts.ccee2a280374e0083541.js +759 -0
  6. package/dist/vendors-node_modules_chroma-js_chroma_js-node_modules_d3-array_src_max_js-node_modules_d3-arr-c3fc24.b32acc465b8557229277.js +1869 -0
  7. package/package.json +57 -57
  8. package/dist/bundle.js +0 -2
  9. package/dist/bundle.js.LICENSE.txt +0 -56
  10. package/lib/config/config.d.ts +0 -146
  11. package/lib/config/config.js +0 -1
  12. package/lib/designer/designerConfig.d.ts +0 -71
  13. package/lib/designer/designerConfig.js +0 -1
  14. package/lib/engine/block/block.d.ts +0 -35
  15. package/lib/engine/block/block.js +0 -110
  16. package/lib/engine/block/blockHelper.d.ts +0 -12
  17. package/lib/engine/block/blockHelper.js +0 -19
  18. package/lib/engine/contentManager.d.ts +0 -9
  19. package/lib/engine/contentManager.js +0 -29
  20. package/lib/engine/elementHighlighter/elementHighlighter.d.ts +0 -30
  21. package/lib/engine/elementHighlighter/elementHighlighter.js +0 -197
  22. package/lib/engine/elementHighlighter/selectHighlighter.d.ts +0 -11
  23. package/lib/engine/elementHighlighter/selectHighlighter.js +0 -95
  24. package/lib/engine/engine.d.ts +0 -20
  25. package/lib/engine/engine.js +0 -64
  26. package/lib/engine/features/aggregator/aggregator.d.ts +0 -22
  27. package/lib/engine/features/aggregator/aggregator.js +0 -95
  28. package/lib/engine/features/axis/axis.d.ts +0 -12
  29. package/lib/engine/features/axis/axis.js +0 -118
  30. package/lib/engine/features/axis/axisDomHelper.d.ts +0 -7
  31. package/lib/engine/features/axis/axisDomHelper.js +0 -24
  32. package/lib/engine/features/axis/axisHelper.d.ts +0 -9
  33. package/lib/engine/features/axis/axisHelper.js +0 -53
  34. package/lib/engine/features/axis/axisLabelDomHelper.d.ts +0 -17
  35. package/lib/engine/features/axis/axisLabelDomHelper.js +0 -143
  36. package/lib/engine/features/axis/axisLabelsEventManager.d.ts +0 -6
  37. package/lib/engine/features/axis/axisLabelsEventManager.js +0 -36
  38. package/lib/engine/features/embeddedLabels/embeddedLabels.d.ts +0 -23
  39. package/lib/engine/features/embeddedLabels/embeddedLabels.js +0 -147
  40. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.d.ts +0 -8
  41. package/lib/engine/features/embeddedLabels/embeddedLabelsDomHelper.js +0 -30
  42. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.d.ts +0 -27
  43. package/lib/engine/features/embeddedLabels/embeddedLabelsHelper.js +0 -65
  44. package/lib/engine/features/gridLine/gidLineHelper.d.ts +0 -13
  45. package/lib/engine/features/gridLine/gidLineHelper.js +0 -30
  46. package/lib/engine/features/gridLine/gridLine.d.ts +0 -11
  47. package/lib/engine/features/gridLine/gridLine.js +0 -67
  48. package/lib/engine/features/legend/legend.d.ts +0 -22
  49. package/lib/engine/features/legend/legend.js +0 -109
  50. package/lib/engine/features/legend/legendDomHelper.d.ts +0 -8
  51. package/lib/engine/features/legend/legendDomHelper.js +0 -48
  52. package/lib/engine/features/legend/legendEventsManager.d.ts +0 -12
  53. package/lib/engine/features/legend/legendEventsManager.js +0 -47
  54. package/lib/engine/features/legend/legendHelper.d.ts +0 -21
  55. package/lib/engine/features/legend/legendHelper.js +0 -97
  56. package/lib/engine/features/markDots/markDot.d.ts +0 -20
  57. package/lib/engine/features/markDots/markDot.js +0 -68
  58. package/lib/engine/features/markDots/markDotsHelper.d.ts +0 -6
  59. package/lib/engine/features/markDots/markDotsHelper.js +0 -16
  60. package/lib/engine/features/recordOverflowAlert/recordOverflowAlert.d.ts +0 -14
  61. package/lib/engine/features/recordOverflowAlert/recordOverflowAlert.js +0 -97
  62. package/lib/engine/features/scale/scale.d.ts +0 -16
  63. package/lib/engine/features/scale/scale.js +0 -74
  64. package/lib/engine/features/tipBox/tipBox.d.ts +0 -11
  65. package/lib/engine/features/tipBox/tipBox.js +0 -32
  66. package/lib/engine/features/tipBox/tipBoxHelper.d.ts +0 -16
  67. package/lib/engine/features/tipBox/tipBoxHelper.js +0 -48
  68. package/lib/engine/features/title/title.d.ts +0 -9
  69. package/lib/engine/features/title/title.js +0 -35
  70. package/lib/engine/features/tolltip/tooltip.d.ts +0 -19
  71. package/lib/engine/features/tolltip/tooltip.js +0 -180
  72. package/lib/engine/features/tolltip/tooltipComponentsManager.d.ts +0 -17
  73. package/lib/engine/features/tolltip/tooltipComponentsManager.js +0 -127
  74. package/lib/engine/features/tolltip/tooltipDomHelper.d.ts +0 -36
  75. package/lib/engine/features/tolltip/tooltipDomHelper.js +0 -114
  76. package/lib/engine/features/tolltip/tooltipHelper.d.ts +0 -16
  77. package/lib/engine/features/tolltip/tooltipHelper.js +0 -99
  78. package/lib/engine/filterManager/filterEventManager.d.ts +0 -33
  79. package/lib/engine/filterManager/filterEventManager.js +0 -127
  80. package/lib/engine/helpers/domHelper.d.ts +0 -30
  81. package/lib/engine/helpers/domHelper.js +0 -68
  82. package/lib/engine/helpers/helper.d.ts +0 -30
  83. package/lib/engine/helpers/helper.js +0 -89
  84. package/lib/engine/helpers/namesHelper.d.ts +0 -5
  85. package/lib/engine/helpers/namesHelper.js +0 -9
  86. package/lib/engine/intervalNotation/gantt.d.ts +0 -10
  87. package/lib/engine/intervalNotation/gantt.js +0 -62
  88. package/lib/engine/intervalNotation/intervalManager.d.ts +0 -7
  89. package/lib/engine/intervalNotation/intervalManager.js +0 -30
  90. package/lib/engine/polarNotation/donut/DonutHelper.d.ts +0 -15
  91. package/lib/engine/polarNotation/donut/DonutHelper.js +0 -58
  92. package/lib/engine/polarNotation/donut/donut.d.ts +0 -32
  93. package/lib/engine/polarNotation/donut/donut.js +0 -124
  94. package/lib/engine/polarNotation/polarManager.d.ts +0 -10
  95. package/lib/engine/polarNotation/polarManager.js +0 -55
  96. package/lib/engine/transitionManager.d.ts +0 -19
  97. package/lib/engine/transitionManager.js +0 -64
  98. package/lib/engine/twoDimensionalNotation/area/area.d.ts +0 -17
  99. package/lib/engine/twoDimensionalNotation/area/area.js +0 -131
  100. package/lib/engine/twoDimensionalNotation/area/areaHelper.d.ts +0 -9
  101. package/lib/engine/twoDimensionalNotation/area/areaHelper.js +0 -40
  102. package/lib/engine/twoDimensionalNotation/bar/bar.d.ts +0 -34
  103. package/lib/engine/twoDimensionalNotation/bar/bar.js +0 -216
  104. package/lib/engine/twoDimensionalNotation/bar/barHelper.d.ts +0 -24
  105. package/lib/engine/twoDimensionalNotation/bar/barHelper.js +0 -103
  106. package/lib/engine/twoDimensionalNotation/line/line.d.ts +0 -17
  107. package/lib/engine/twoDimensionalNotation/line/line.js +0 -132
  108. package/lib/engine/twoDimensionalNotation/line/lineHelper.d.ts +0 -8
  109. package/lib/engine/twoDimensionalNotation/line/lineHelper.js +0 -28
  110. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.d.ts +0 -11
  111. package/lib/engine/twoDimensionalNotation/twoDimensionalManager.js +0 -101
  112. package/lib/engine/valueFormatter.d.ts +0 -6
  113. package/lib/engine/valueFormatter.js +0 -8
  114. package/lib/main.d.ts +0 -79
  115. package/lib/main.js +0 -85
  116. package/lib/model/chartStyleModel.d.ts +0 -16
  117. package/lib/model/chartStyleModel.js +0 -67
  118. package/lib/model/dataManagerModel.d.ts +0 -22
  119. package/lib/model/dataManagerModel.js +0 -137
  120. package/lib/model/featuresModel/axisModel.d.ts +0 -18
  121. package/lib/model/featuresModel/axisModel.js +0 -111
  122. package/lib/model/featuresModel/legendModel/legendCanvasModel.d.ts +0 -7
  123. package/lib/model/featuresModel/legendModel/legendCanvasModel.js +0 -86
  124. package/lib/model/featuresModel/legendModel/legendModel.d.ts +0 -13
  125. package/lib/model/featuresModel/legendModel/legendModel.js +0 -78
  126. package/lib/model/featuresModel/otherComponents.d.ts +0 -6
  127. package/lib/model/featuresModel/otherComponents.js +0 -12
  128. package/lib/model/featuresModel/scaleModel.d.ts +0 -17
  129. package/lib/model/featuresModel/scaleModel.js +0 -100
  130. package/lib/model/featuresModel/titleModel.d.ts +0 -4
  131. package/lib/model/featuresModel/titleModel.js +0 -14
  132. package/lib/model/featuresModel/tooltipModel.d.ts +0 -4
  133. package/lib/model/featuresModel/tooltipModel.js +0 -7
  134. package/lib/model/marginModel.d.ts +0 -19
  135. package/lib/model/marginModel.js +0 -126
  136. package/lib/model/model.d.ts +0 -220
  137. package/lib/model/model.js +0 -1
  138. package/lib/model/modelBuilder.d.ts +0 -16
  139. package/lib/model/modelBuilder.js +0 -128
  140. package/lib/model/modelHelper.d.ts +0 -7
  141. package/lib/model/modelHelper.js +0 -41
  142. package/lib/model/notations/intervalModel.d.ts +0 -8
  143. package/lib/model/notations/intervalModel.js +0 -93
  144. package/lib/model/notations/polarModel.d.ts +0 -7
  145. package/lib/model/notations/polarModel.js +0 -27
  146. package/lib/model/notations/twoDimensionalModel.d.ts +0 -19
  147. package/lib/model/notations/twoDimensionalModel.js +0 -85
  148. package/lib/style/charts-main.css +0 -240
  149. package/lib/style/charts-main.less +0 -240
  150. package/test.html +0 -196
package/dist/bundle.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see bundle.js.LICENSE.txt */
2
- (()=>{var t={792:function(t){t.exports=function(){"use strict";for(var t=function(t,e,n){return void 0===e&&(e=0),void 0===n&&(n=1),t<e?e:t>n?n:t},e={},n=0,r=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<r.length;n+=1){var a=r[n];e["[object "+a+"]"]=a.toLowerCase()}var i=function(t){return e[Object.prototype.toString.call(t)]||"object"},s=Math.PI,o={clip_rgb:function(e){e._clipped=!1,e._unclipped=e.slice(0);for(var n=0;n<=3;n++)n<3?((e[n]<0||e[n]>255)&&(e._clipped=!0),e[n]=t(e[n],0,255)):3===n&&(e[n]=t(e[n],0,1));return e},limit:t,type:i,unpack:function(t,e){return void 0===e&&(e=null),t.length>=3?Array.prototype.slice.call(t):"object"==i(t[0])&&e?e.split("").filter((function(e){return void 0!==t[0][e]})).map((function(e){return t[0][e]})):t[0]},last:function(t){if(t.length<2)return null;var e=t.length-1;return"string"==i(t[e])?t[e].toLowerCase():null},PI:s,TWOPI:2*s,PITHIRD:s/3,DEG2RAD:s/180,RAD2DEG:180/s},l={format:{},autodetect:[]},c=o.last,u=o.clip_rgb,h=o.type,d=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=this;if("object"===h(t[0])&&t[0].constructor&&t[0].constructor===this.constructor)return t[0];var r=c(t),a=!1;if(!r){a=!0,l.sorted||(l.autodetect=l.autodetect.sort((function(t,e){return e.p-t.p})),l.sorted=!0);for(var i=0,s=l.autodetect;i<s.length;i+=1){var o=s[i];if(r=o.test.apply(o,t))break}}if(!l.format[r])throw new Error("unknown format: "+t);var d=l.format[r].apply(null,a?t:t.slice(0,-1));n._rgb=u(d),3===n._rgb.length&&n._rgb.push(1)};d.prototype.toString=function(){return"function"==h(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var g=d,f=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(f.Color,[null].concat(t)))};f.Color=g,f.version="2.1.1";var p=f,m=o.unpack,y=Math.max,v=o.unpack,b=o.unpack,C=o.type;g.prototype.cmyk=function(){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=m(t,"rgb"),r=n[0],a=n[1],i=n[2],s=1-y(r/=255,y(a/=255,i/=255)),o=s<1?1/(1-s):0;return[(1-r-s)*o,(1-a-s)*o,(1-i-s)*o,s]}(this._rgb)},p.cmyk=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["cmyk"])))},l.format.cmyk=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=(t=v(t,"cmyk"))[0],r=t[1],a=t[2],i=t[3],s=t.length>4?t[4]:1;return 1===i?[0,0,0,s]:[n>=1?0:255*(1-n)*(1-i),r>=1?0:255*(1-r)*(1-i),a>=1?0:255*(1-a)*(1-i),s]},l.autodetect.push({p:2,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(t=b(t,"cmyk"),"array"===C(t)&&4===t.length)return"cmyk"}});var x=o.unpack,w=o.last,k=function(t){return Math.round(100*t)/100},S=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=x(t,"hsla"),r=w(t)||"lsa";return n[0]=k(n[0]||0),n[1]=k(100*n[1])+"%",n[2]=k(100*n[2])+"%","hsla"===r||n.length>3&&n[3]<1?(n[3]=n.length>3?n[3]:1,r="hsla"):n.length=3,r+"("+n.join(",")+")"},A=o.unpack,M=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=(t=A(t,"rgba"))[0],r=t[1],a=t[2];n/=255,r/=255,a/=255;var i,s,o=Math.min(n,r,a),l=Math.max(n,r,a),c=(l+o)/2;return l===o?(i=0,s=Number.NaN):i=c<.5?(l-o)/(l+o):(l-o)/(2-l-o),n==l?s=(r-a)/(l-o):r==l?s=2+(a-n)/(l-o):a==l&&(s=4+(n-r)/(l-o)),(s*=60)<0&&(s+=360),t.length>3&&void 0!==t[3]?[s,i,c,t[3]]:[s,i,c]},_=o.unpack,B=o.last,L=Math.round,E=o.unpack,F=Math.round,T=function(){for(var t,e=[],n=arguments.length;n--;)e[n]=arguments[n];var r,a,i,s=(e=E(e,"hsl"))[0],o=e[1],l=e[2];if(0===o)r=a=i=255*l;else{var c=[0,0,0],u=[0,0,0],h=l<.5?l*(1+o):l+o-l*o,d=2*l-h,g=s/360;c[0]=g+1/3,c[1]=g,c[2]=g-1/3;for(var f=0;f<3;f++)c[f]<0&&(c[f]+=1),c[f]>1&&(c[f]-=1),6*c[f]<1?u[f]=d+6*(h-d)*c[f]:2*c[f]<1?u[f]=h:3*c[f]<2?u[f]=d+(h-d)*(2/3-c[f])*6:u[f]=d;r=(t=[F(255*u[0]),F(255*u[1]),F(255*u[2])])[0],a=t[1],i=t[2]}return e.length>3?[r,a,i,e[3]]:[r,a,i,1]},D=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,I=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,$=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,O=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,P=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,N=Math.round,G=function(t){var e;if(t=t.toLowerCase().trim(),l.format.named)try{return l.format.named(t)}catch(t){}if(e=t.match(D)){for(var n=e.slice(1,4),r=0;r<3;r++)n[r]=+n[r];return n[3]=1,n}if(e=t.match(I)){for(var a=e.slice(1,5),i=0;i<4;i++)a[i]=+a[i];return a}if(e=t.match($)){for(var s=e.slice(1,4),o=0;o<3;o++)s[o]=N(2.55*s[o]);return s[3]=1,s}if(e=t.match(z)){for(var c=e.slice(1,5),u=0;u<3;u++)c[u]=N(2.55*c[u]);return c[3]=+c[3],c}if(e=t.match(O)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var d=T(h);return d[3]=1,d}if(e=t.match(P)){var g=e.slice(1,4);g[1]*=.01,g[2]*=.01;var f=T(g);return f[3]=+e[4],f}};G.test=function(t){return D.test(t)||I.test(t)||$.test(t)||z.test(t)||O.test(t)||P.test(t)};var K=G,V=o.type;g.prototype.css=function(t){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=_(t,"rgba"),r=B(t)||"rgb";return"hsl"==r.substr(0,3)?S(M(n),r):(n[0]=L(n[0]),n[1]=L(n[1]),n[2]=L(n[2]),("rgba"===r||n.length>3&&n[3]<1)&&(n[3]=n.length>3?n[3]:1,r="rgba"),r+"("+n.slice(0,"rgb"===r?3:4).join(",")+")")}(this._rgb,t)},p.css=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["css"])))},l.format.css=K,l.autodetect.push({p:5,test:function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];if(!e.length&&"string"===V(t)&&K.test(t))return"css"}});var R=o.unpack;l.format.gl=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=R(t,"rgba");return n[0]*=255,n[1]*=255,n[2]*=255,n},p.gl=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["gl"])))},g.prototype.gl=function(){var t=this._rgb;return[t[0]/255,t[1]/255,t[2]/255,t[3]]};var H=o.unpack,W=o.unpack,U=Math.floor,j=o.unpack,Y=o.type;g.prototype.hcg=function(){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n,r=H(t,"rgb"),a=r[0],i=r[1],s=r[2],o=Math.min(a,i,s),l=Math.max(a,i,s),c=l-o,u=100*c/255,h=o/(255-c)*100;return 0===c?n=Number.NaN:(a===l&&(n=(i-s)/c),i===l&&(n=2+(s-a)/c),s===l&&(n=4+(a-i)/c),(n*=60)<0&&(n+=360)),[n,u,h]}(this._rgb)},p.hcg=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["hcg"])))},l.format.hcg=function(){for(var t,e,n,r,a,i,s=[],o=arguments.length;o--;)s[o]=arguments[o];var l,c,u,h=(s=W(s,"hcg"))[0],d=s[1],g=s[2];g*=255;var f=255*d;if(0===d)l=c=u=g;else{360===h&&(h=0),h>360&&(h-=360),h<0&&(h+=360);var p=U(h/=60),m=h-p,y=g*(1-d),v=y+f*(1-m),b=y+f*m,C=y+f;switch(p){case 0:l=(t=[C,b,y])[0],c=t[1],u=t[2];break;case 1:l=(e=[v,C,y])[0],c=e[1],u=e[2];break;case 2:l=(n=[y,C,b])[0],c=n[1],u=n[2];break;case 3:l=(r=[y,v,C])[0],c=r[1],u=r[2];break;case 4:l=(a=[b,y,C])[0],c=a[1],u=a[2];break;case 5:l=(i=[C,y,v])[0],c=i[1],u=i[2]}}return[l,c,u,s.length>3?s[3]:1]},l.autodetect.push({p:1,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(t=j(t,"hcg"),"array"===Y(t)&&3===t.length)return"hcg"}});var q=o.unpack,X=o.last,Z=Math.round,Q=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=q(t,"rgba"),r=n[0],a=n[1],i=n[2],s=n[3],o=X(t)||"auto";void 0===s&&(s=1),"auto"===o&&(o=s<1?"rgba":"rgb");var l="000000"+((r=Z(r))<<16|(a=Z(a))<<8|(i=Z(i))).toString(16);l=l.substr(l.length-6);var c="0"+Z(255*s).toString(16);switch(c=c.substr(c.length-2),o.toLowerCase()){case"rgba":return"#"+l+c;case"argb":return"#"+c+l;default:return"#"+l}},J=/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,tt=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,et=function(t){if(t.match(J)){4!==t.length&&7!==t.length||(t=t.substr(1)),3===t.length&&(t=(t=t.split(""))[0]+t[0]+t[1]+t[1]+t[2]+t[2]);var e=parseInt(t,16);return[e>>16,e>>8&255,255&e,1]}if(t.match(tt)){5!==t.length&&9!==t.length||(t=t.substr(1)),4===t.length&&(t=(t=t.split(""))[0]+t[0]+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]);var n=parseInt(t,16);return[n>>24&255,n>>16&255,n>>8&255,Math.round((255&n)/255*100)/100]}throw new Error("unknown hex color: "+t)},nt=o.type;g.prototype.hex=function(t){return Q(this._rgb,t)},p.hex=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["hex"])))},l.format.hex=et,l.autodetect.push({p:4,test:function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];if(!e.length&&"string"===nt(t)&&[3,4,5,6,7,8,9].indexOf(t.length)>=0)return"hex"}});var rt=o.unpack,at=o.TWOPI,it=Math.min,st=Math.sqrt,ot=Math.acos,lt=o.unpack,ct=o.limit,ut=o.TWOPI,ht=o.PITHIRD,dt=Math.cos,gt=o.unpack,ft=o.type;g.prototype.hsi=function(){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n,r=rt(t,"rgb"),a=r[0],i=r[1],s=r[2],o=it(a/=255,i/=255,s/=255),l=(a+i+s)/3,c=l>0?1-o/l:0;return 0===c?n=NaN:(n=(a-i+(a-s))/2,n/=st((a-i)*(a-i)+(a-s)*(i-s)),n=ot(n),s>i&&(n=at-n),n/=at),[360*n,c,l]}(this._rgb)},p.hsi=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["hsi"])))},l.format.hsi=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n,r,a,i=(t=lt(t,"hsi"))[0],s=t[1],o=t[2];return isNaN(i)&&(i=0),isNaN(s)&&(s=0),i>360&&(i-=360),i<0&&(i+=360),(i/=360)<1/3?r=1-((a=(1-s)/3)+(n=(1+s*dt(ut*i)/dt(ht-ut*i))/3)):i<2/3?a=1-((n=(1-s)/3)+(r=(1+s*dt(ut*(i-=1/3))/dt(ht-ut*i))/3)):n=1-((r=(1-s)/3)+(a=(1+s*dt(ut*(i-=2/3))/dt(ht-ut*i))/3)),[255*(n=ct(o*n*3)),255*(r=ct(o*r*3)),255*(a=ct(o*a*3)),t.length>3?t[3]:1]},l.autodetect.push({p:2,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(t=gt(t,"hsi"),"array"===ft(t)&&3===t.length)return"hsi"}});var pt=o.unpack,mt=o.type;g.prototype.hsl=function(){return M(this._rgb)},p.hsl=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["hsl"])))},l.format.hsl=T,l.autodetect.push({p:2,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(t=pt(t,"hsl"),"array"===mt(t)&&3===t.length)return"hsl"}});var yt=o.unpack,vt=Math.min,bt=Math.max,Ct=o.unpack,xt=Math.floor,wt=o.unpack,kt=o.type;g.prototype.hsv=function(){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n,r,a,i=(t=yt(t,"rgb"))[0],s=t[1],o=t[2],l=vt(i,s,o),c=bt(i,s,o),u=c-l;return a=c/255,0===c?(n=Number.NaN,r=0):(r=u/c,i===c&&(n=(s-o)/u),s===c&&(n=2+(o-i)/u),o===c&&(n=4+(i-s)/u),(n*=60)<0&&(n+=360)),[n,r,a]}(this._rgb)},p.hsv=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["hsv"])))},l.format.hsv=function(){for(var t,e,n,r,a,i,s=[],o=arguments.length;o--;)s[o]=arguments[o];var l,c,u,h=(s=Ct(s,"hsv"))[0],d=s[1],g=s[2];if(g*=255,0===d)l=c=u=g;else{360===h&&(h=0),h>360&&(h-=360),h<0&&(h+=360);var f=xt(h/=60),p=h-f,m=g*(1-d),y=g*(1-d*p),v=g*(1-d*(1-p));switch(f){case 0:l=(t=[g,v,m])[0],c=t[1],u=t[2];break;case 1:l=(e=[y,g,m])[0],c=e[1],u=e[2];break;case 2:l=(n=[m,g,v])[0],c=n[1],u=n[2];break;case 3:l=(r=[m,y,g])[0],c=r[1],u=r[2];break;case 4:l=(a=[v,m,g])[0],c=a[1],u=a[2];break;case 5:l=(i=[g,m,y])[0],c=i[1],u=i[2]}}return[l,c,u,s.length>3?s[3]:1]},l.autodetect.push({p:2,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(t=wt(t,"hsv"),"array"===kt(t)&&3===t.length)return"hsv"}});var St=18,At=.95047,Mt=1,_t=1.08883,Bt=.137931034,Lt=.206896552,Et=.12841855,Ft=.008856452,Tt=o.unpack,Dt=Math.pow,It=function(t){return(t/=255)<=.04045?t/12.92:Dt((t+.055)/1.055,2.4)},$t=function(t){return t>Ft?Dt(t,1/3):t/Et+Bt},zt=function(t,e,n){return t=It(t),e=It(e),n=It(n),[$t((.4124564*t+.3575761*e+.1804375*n)/At),$t((.2126729*t+.7151522*e+.072175*n)/Mt),$t((.0193339*t+.119192*e+.9503041*n)/_t)]},Ot=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=Tt(t,"rgb"),r=n[0],a=n[1],i=n[2],s=zt(r,a,i),o=s[0],l=s[1],c=116*l-16;return[c<0?0:c,500*(o-l),200*(l-s[2])]},Pt=o.unpack,Nt=Math.pow,Gt=function(t){return 255*(t<=.00304?12.92*t:1.055*Nt(t,1/2.4)-.055)},Kt=function(t){return t>Lt?t*t*t:Et*(t-Bt)},Vt=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n,r,a,i=(t=Pt(t,"lab"))[0],s=t[1],o=t[2];return r=(i+16)/116,n=isNaN(s)?r:r+s/500,a=isNaN(o)?r:r-o/200,r=Mt*Kt(r),n=At*Kt(n),a=_t*Kt(a),[Gt(3.2404542*n-1.5371385*r-.4985314*a),Gt(-.969266*n+1.8760108*r+.041556*a),Gt(.0556434*n-.2040259*r+1.0572252*a),t.length>3?t[3]:1]},Rt=o.unpack,Ht=o.type;g.prototype.lab=function(){return Ot(this._rgb)},p.lab=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["lab"])))},l.format.lab=Vt,l.autodetect.push({p:2,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(t=Rt(t,"lab"),"array"===Ht(t)&&3===t.length)return"lab"}});var Wt=o.unpack,Ut=o.RAD2DEG,jt=Math.sqrt,Yt=Math.atan2,qt=Math.round,Xt=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=Wt(t,"lab"),r=n[0],a=n[1],i=n[2],s=jt(a*a+i*i),o=(Yt(i,a)*Ut+360)%360;return 0===qt(1e4*s)&&(o=Number.NaN),[r,s,o]},Zt=o.unpack,Qt=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=Zt(t,"rgb"),r=n[0],a=n[1],i=n[2],s=Ot(r,a,i),o=s[0],l=s[1],c=s[2];return Xt(o,l,c)},Jt=o.unpack,te=o.DEG2RAD,ee=Math.sin,ne=Math.cos,re=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=Jt(t,"lch"),r=n[0],a=n[1],i=n[2];return isNaN(i)&&(i=0),[r,ne(i*=te)*a,ee(i)*a]},ae=o.unpack,ie=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=(t=ae(t,"lch"))[0],r=t[1],a=t[2],i=re(n,r,a),s=i[0],o=i[1],l=i[2],c=Vt(s,o,l);return[c[0],c[1],c[2],t.length>3?t[3]:1]},se=o.unpack,oe=o.unpack,le=o.type;g.prototype.lch=function(){return Qt(this._rgb)},g.prototype.hcl=function(){return Qt(this._rgb).reverse()},p.lch=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["lch"])))},p.hcl=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["hcl"])))},l.format.lch=ie,l.format.hcl=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=se(t,"hcl").reverse();return ie.apply(void 0,n)},["lch","hcl"].forEach((function(t){return l.autodetect.push({p:2,test:function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];if(e=oe(e,t),"array"===le(e)&&3===e.length)return t}})}));var ce={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ue=o.type;g.prototype.name=function(){for(var t=Q(this._rgb,"rgb"),e=0,n=Object.keys(ce);e<n.length;e+=1){var r=n[e];if(ce[r]===t)return r.toLowerCase()}return t},l.format.named=function(t){if(t=t.toLowerCase(),ce[t])return et(ce[t]);throw new Error("unknown color name: "+t)},l.autodetect.push({p:5,test:function(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];if(!e.length&&"string"===ue(t)&&ce[t.toLowerCase()])return"named"}});var he=o.unpack,de=o.type,ge=o.type;g.prototype.num=function(){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=he(t,"rgb");return(n[0]<<16)+(n[1]<<8)+n[2]}(this._rgb)},p.num=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["num"])))},l.format.num=function(t){if("number"==de(t)&&t>=0&&t<=16777215)return[t>>16,t>>8&255,255&t,1];throw new Error("unknown num color: "+t)},l.autodetect.push({p:5,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(1===t.length&&"number"===ge(t[0])&&t[0]>=0&&t[0]<=16777215)return"num"}});var fe=o.unpack,pe=o.type,me=Math.round;g.prototype.rgb=function(t){return void 0===t&&(t=!0),!1===t?this._rgb.slice(0,3):this._rgb.slice(0,3).map(me)},g.prototype.rgba=function(t){return void 0===t&&(t=!0),this._rgb.slice(0,4).map((function(e,n){return n<3?!1===t?e:me(e):e}))},p.rgb=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["rgb"])))},l.format.rgb=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var n=fe(t,"rgba");return void 0===n[3]&&(n[3]=1),n},l.autodetect.push({p:3,test:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];if(t=fe(t,"rgba"),"array"===pe(t)&&(3===t.length||4===t.length&&"number"==pe(t[3])&&t[3]>=0&&t[3]<=1))return"rgb"}});var ye=Math.log,ve=function(t){var e,n,r,a=t/100;return a<66?(e=255,n=-155.25485562709179-.44596950469579133*(n=a-2)+104.49216199393888*ye(n),r=a<20?0:.8274096064007395*(r=a-10)-254.76935184120902+115.67994401066147*ye(r)):(e=351.97690566805693+.114206453784165*(e=a-55)-40.25366309332127*ye(e),n=325.4494125711974+.07943456536662342*(n=a-50)-28.0852963507957*ye(n),r=255),[e,n,r,1]},be=o.unpack,Ce=Math.round;g.prototype.temp=g.prototype.kelvin=g.prototype.temperature=function(){return function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var n,r=be(t,"rgb"),a=r[0],i=r[2],s=1e3,o=4e4,l=.4;o-s>l;){var c=ve(n=.5*(o+s));c[2]/c[0]>=i/a?o=n:s=n}return Ce(n)}(this._rgb)},p.temp=p.kelvin=p.temperature=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return new(Function.prototype.bind.apply(g,[null].concat(t,["temp"])))},l.format.temp=l.format.kelvin=l.format.temperature=ve;var xe=o.type;g.prototype.alpha=function(t,e){return void 0===e&&(e=!1),void 0!==t&&"number"===xe(t)?e?(this._rgb[3]=t,this):new g([this._rgb[0],this._rgb[1],this._rgb[2],t],"rgb"):this._rgb[3]},g.prototype.clipped=function(){return this._rgb._clipped||!1},g.prototype.darken=function(t){void 0===t&&(t=1);var e=this.lab();return e[0]-=St*t,new g(e,"lab").alpha(this.alpha(),!0)},g.prototype.brighten=function(t){return void 0===t&&(t=1),this.darken(-t)},g.prototype.darker=g.prototype.darken,g.prototype.brighter=g.prototype.brighten,g.prototype.get=function(t){var e=t.split("."),n=e[0],r=e[1],a=this[n]();if(r){var i=n.indexOf(r);if(i>-1)return a[i];throw new Error("unknown channel "+r+" in mode "+n)}return a};var we=o.type,ke=Math.pow;g.prototype.luminance=function(t){if(void 0!==t&&"number"===we(t)){if(0===t)return new g([0,0,0,this._rgb[3]],"rgb");if(1===t)return new g([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),n=20,r=function(e,a){var i=e.interpolate(a,.5,"rgb"),s=i.luminance();return Math.abs(t-s)<1e-7||!n--?i:s>t?r(e,i):r(i,a)},a=(e>t?r(new g([0,0,0]),this):r(this,new g([255,255,255]))).rgb();return new g(a.concat([this._rgb[3]]))}return Se.apply(void 0,this._rgb.slice(0,3))};var Se=function(t,e,n){return.2126*(t=Ae(t))+.7152*(e=Ae(e))+.0722*Ae(n)},Ae=function(t){return(t/=255)<=.03928?t/12.92:ke((t+.055)/1.055,2.4)},Me={},_e=o.type,Be=function(t,e,n){void 0===n&&(n=.5);for(var r=[],a=arguments.length-3;a-- >0;)r[a]=arguments[a+3];var i=r[0]||"lrgb";if(Me[i]||r.length||(i=Object.keys(Me)[0]),!Me[i])throw new Error("interpolation mode "+i+" is not defined");return"object"!==_e(t)&&(t=new g(t)),"object"!==_e(e)&&(e=new g(e)),Me[i](t,e,n).alpha(t.alpha()+n*(e.alpha()-t.alpha()))};g.prototype.mix=g.prototype.interpolate=function(t,e){void 0===e&&(e=.5);for(var n=[],r=arguments.length-2;r-- >0;)n[r]=arguments[r+2];return Be.apply(void 0,[this,t,e].concat(n))},g.prototype.premultiply=function(t){void 0===t&&(t=!1);var e=this._rgb,n=e[3];return t?(this._rgb=[e[0]*n,e[1]*n,e[2]*n,n],this):new g([e[0]*n,e[1]*n,e[2]*n,n],"rgb")},g.prototype.saturate=function(t){void 0===t&&(t=1);var e=this.lch();return e[1]+=St*t,e[1]<0&&(e[1]=0),new g(e,"lch").alpha(this.alpha(),!0)},g.prototype.desaturate=function(t){return void 0===t&&(t=1),this.saturate(-t)};var Le=o.type;g.prototype.set=function(t,e,n){void 0===n&&(n=!1);var r=t.split("."),a=r[0],i=r[1],s=this[a]();if(i){var o=a.indexOf(i);if(o>-1){if("string"==Le(e))switch(e.charAt(0)){case"+":case"-":s[o]+=+e;break;case"*":s[o]*=+e.substr(1);break;case"/":s[o]/=+e.substr(1);break;default:s[o]=+e}else{if("number"!==Le(e))throw new Error("unsupported value for Color.set");s[o]=e}var l=new g(s,a);return n?(this._rgb=l._rgb,this):l}throw new Error("unknown channel "+i+" in mode "+a)}return s};Me.rgb=function(t,e,n){var r=t._rgb,a=e._rgb;return new g(r[0]+n*(a[0]-r[0]),r[1]+n*(a[1]-r[1]),r[2]+n*(a[2]-r[2]),"rgb")};var Ee=Math.sqrt,Fe=Math.pow;Me.lrgb=function(t,e,n){var r=t._rgb,a=r[0],i=r[1],s=r[2],o=e._rgb,l=o[0],c=o[1],u=o[2];return new g(Ee(Fe(a,2)*(1-n)+Fe(l,2)*n),Ee(Fe(i,2)*(1-n)+Fe(c,2)*n),Ee(Fe(s,2)*(1-n)+Fe(u,2)*n),"rgb")};Me.lab=function(t,e,n){var r=t.lab(),a=e.lab();return new g(r[0]+n*(a[0]-r[0]),r[1]+n*(a[1]-r[1]),r[2]+n*(a[2]-r[2]),"lab")};var Te=function(t,e,n,r){var a,i,s,o,l,c,u,h,d,f,p,m;return"hsl"===r?(s=t.hsl(),o=e.hsl()):"hsv"===r?(s=t.hsv(),o=e.hsv()):"hcg"===r?(s=t.hcg(),o=e.hcg()):"hsi"===r?(s=t.hsi(),o=e.hsi()):"lch"!==r&&"hcl"!==r||(r="hcl",s=t.hcl(),o=e.hcl()),"h"===r.substr(0,1)&&(l=(a=s)[0],u=a[1],d=a[2],c=(i=o)[0],h=i[1],f=i[2]),isNaN(l)||isNaN(c)?isNaN(l)?isNaN(c)?m=Number.NaN:(m=c,1!=d&&0!=d||"hsv"==r||(p=h)):(m=l,1!=f&&0!=f||"hsv"==r||(p=u)):m=l+n*(c>l&&c-l>180?c-(l+360):c<l&&l-c>180?c+360-l:c-l),void 0===p&&(p=u+n*(h-u)),new g([m,p,d+n*(f-d)],r)},De=function(t,e,n){return Te(t,e,n,"lch")};Me.lch=De,Me.hcl=De;Me.num=function(t,e,n){var r=t.num(),a=e.num();return new g(r+n*(a-r),"num")};Me.hcg=function(t,e,n){return Te(t,e,n,"hcg")};Me.hsi=function(t,e,n){return Te(t,e,n,"hsi")};Me.hsl=function(t,e,n){return Te(t,e,n,"hsl")};Me.hsv=function(t,e,n){return Te(t,e,n,"hsv")};var Ie=o.clip_rgb,$e=Math.pow,ze=Math.sqrt,Oe=Math.PI,Pe=Math.cos,Ne=Math.sin,Ge=Math.atan2,Ke=function(t,e){for(var n=t.length,r=[0,0,0,0],a=0;a<t.length;a++){var i=t[a],s=e[a]/n,o=i._rgb;r[0]+=$e(o[0],2)*s,r[1]+=$e(o[1],2)*s,r[2]+=$e(o[2],2)*s,r[3]+=o[3]*s}return r[0]=ze(r[0]),r[1]=ze(r[1]),r[2]=ze(r[2]),r[3]>.9999999&&(r[3]=1),new g(Ie(r))},Ve=o.type,Re=Math.pow,He=function(t){var e="rgb",n=p("#ccc"),r=0,a=[0,1],i=[],s=[0,0],o=!1,l=[],c=!1,u=0,h=1,d=!1,g={},f=!0,m=1,y=function(t){if((t=t||["#fff","#000"])&&"string"===Ve(t)&&p.brewer&&p.brewer[t.toLowerCase()]&&(t=p.brewer[t.toLowerCase()]),"array"===Ve(t)){1===t.length&&(t=[t[0],t[0]]),t=t.slice(0);for(var e=0;e<t.length;e++)t[e]=p(t[e]);i.length=0;for(var n=0;n<t.length;n++)i.push(n/(t.length-1))}return x(),l=t},v=function(t){return t},b=function(t){return t},C=function(t,r){var a,c;if(null==r&&(r=!1),isNaN(t)||null===t)return n;c=r?t:o&&o.length>2?function(t){if(null!=o){for(var e=o.length-1,n=0;n<e&&t>=o[n];)n++;return n-1}return 0}(t)/(o.length-2):h!==u?(t-u)/(h-u):1,c=b(c),r||(c=v(c)),1!==m&&(c=Re(c,m)),c=s[0]+c*(1-s[0]-s[1]),c=Math.min(1,Math.max(0,c));var d=Math.floor(1e4*c);if(f&&g[d])a=g[d];else{if("array"===Ve(l))for(var y=0;y<i.length;y++){var C=i[y];if(c<=C){a=l[y];break}if(c>=C&&y===i.length-1){a=l[y];break}if(c>C&&c<i[y+1]){c=(c-C)/(i[y+1]-C),a=p.interpolate(l[y],l[y+1],c,e);break}}else"function"===Ve(l)&&(a=l(c));f&&(g[d]=a)}return a},x=function(){return g={}};y(t);var w=function(t){var e=p(C(t));return c&&e[c]?e[c]():e};return w.classes=function(t){if(null!=t){if("array"===Ve(t))o=t,a=[t[0],t[t.length-1]];else{var e=p.analyze(a);o=0===t?[e.min,e.max]:p.limits(e,"e",t)}return w}return o},w.domain=function(t){if(!arguments.length)return a;u=t[0],h=t[t.length-1],i=[];var e=l.length;if(t.length===e&&u!==h)for(var n=0,r=Array.from(t);n<r.length;n+=1){var s=r[n];i.push((s-u)/(h-u))}else{for(var o=0;o<e;o++)i.push(o/(e-1));if(t.length>2){var c=t.map((function(e,n){return n/(t.length-1)})),d=t.map((function(t){return(t-u)/(h-u)}));d.every((function(t,e){return c[e]===t}))||(b=function(t){if(t<=0||t>=1)return t;for(var e=0;t>=d[e+1];)e++;var n=(t-d[e])/(d[e+1]-d[e]);return c[e]+n*(c[e+1]-c[e])})}}return a=[u,h],w},w.mode=function(t){return arguments.length?(e=t,x(),w):e},w.range=function(t,e){return y(t),w},w.out=function(t){return c=t,w},w.spread=function(t){return arguments.length?(r=t,w):r},w.correctLightness=function(t){return null==t&&(t=!0),d=t,x(),v=d?function(t){for(var e=C(0,!0).lab()[0],n=C(1,!0).lab()[0],r=e>n,a=C(t,!0).lab()[0],i=e+(n-e)*t,s=a-i,o=0,l=1,c=20;Math.abs(s)>.01&&c-- >0;)r&&(s*=-1),s<0?(o=t,t+=.5*(l-t)):(l=t,t+=.5*(o-t)),s=(a=C(t,!0).lab()[0])-i;return t}:function(t){return t},w},w.padding=function(t){return null!=t?("number"===Ve(t)&&(t=[t,t]),s=t,w):s},w.colors=function(e,n){arguments.length<2&&(n="hex");var r=[];if(0===arguments.length)r=l.slice(0);else if(1===e)r=[w(.5)];else if(e>1){var i=a[0],s=a[1]-i;r=We(0,e,!1).map((function(t){return w(i+t/(e-1)*s)}))}else{t=[];var c=[];if(o&&o.length>2)for(var u=1,h=o.length,d=1<=h;d?u<h:u>h;d?u++:u--)c.push(.5*(o[u-1]+o[u]));else c=a;r=c.map((function(t){return w(t)}))}return p[n]&&(r=r.map((function(t){return t[n]()}))),r},w.cache=function(t){return null!=t?(f=t,w):f},w.gamma=function(t){return null!=t?(m=t,w):m},w.nodata=function(t){return null!=t?(n=p(t),w):n},w};function We(t,e,n){for(var r=[],a=t<e,i=n?a?e+1:e-1:e,s=t;a?s<i:s>i;a?s++:s--)r.push(s);return r}var Ue=function(t){var e,n,r,a,i,s,o;if(2===(t=t.map((function(t){return new g(t)}))).length)e=t.map((function(t){return t.lab()})),i=e[0],s=e[1],a=function(t){var e=[0,1,2].map((function(e){return i[e]+t*(s[e]-i[e])}));return new g(e,"lab")};else if(3===t.length)n=t.map((function(t){return t.lab()})),i=n[0],s=n[1],o=n[2],a=function(t){var e=[0,1,2].map((function(e){return(1-t)*(1-t)*i[e]+2*(1-t)*t*s[e]+t*t*o[e]}));return new g(e,"lab")};else if(4===t.length){var l;r=t.map((function(t){return t.lab()})),i=r[0],s=r[1],o=r[2],l=r[3],a=function(t){var e=[0,1,2].map((function(e){return(1-t)*(1-t)*(1-t)*i[e]+3*(1-t)*(1-t)*t*s[e]+3*(1-t)*t*t*o[e]+t*t*t*l[e]}));return new g(e,"lab")}}else if(5===t.length){var c=Ue(t.slice(0,3)),u=Ue(t.slice(2,5));a=function(t){return t<.5?c(2*t):u(2*(t-.5))}}return a},je=function(t,e,n){if(!je[n])throw new Error("unknown blend mode "+n);return je[n](t,e)},Ye=function(t){return function(e,n){var r=p(n).rgb(),a=p(e).rgb();return p.rgb(t(r,a))}},qe=function(t){return function(e,n){var r=[];return r[0]=t(e[0],n[0]),r[1]=t(e[1],n[1]),r[2]=t(e[2],n[2]),r}};je.normal=Ye(qe((function(t){return t}))),je.multiply=Ye(qe((function(t,e){return t*e/255}))),je.screen=Ye(qe((function(t,e){return 255*(1-(1-t/255)*(1-e/255))}))),je.overlay=Ye(qe((function(t,e){return e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255))}))),je.darken=Ye(qe((function(t,e){return t>e?e:t}))),je.lighten=Ye(qe((function(t,e){return t>e?t:e}))),je.dodge=Ye(qe((function(t,e){return 255===t||(t=e/255*255/(1-t/255))>255?255:t}))),je.burn=Ye(qe((function(t,e){return 255*(1-(1-e/255)/(t/255))})));for(var Xe=je,Ze=o.type,Qe=o.clip_rgb,Je=o.TWOPI,tn=Math.pow,en=Math.sin,nn=Math.cos,rn=Math.floor,an=Math.random,sn=Math.log,on=Math.pow,ln=Math.floor,cn=Math.abs,un=function(t,e){void 0===e&&(e=null);var n={min:Number.MAX_VALUE,max:-1*Number.MAX_VALUE,sum:0,values:[],count:0};return"object"===i(t)&&(t=Object.values(t)),t.forEach((function(t){e&&"object"===i(t)&&(t=t[e]),null==t||isNaN(t)||(n.values.push(t),n.sum+=t,t<n.min&&(n.min=t),t>n.max&&(n.max=t),n.count+=1)})),n.domain=[n.min,n.max],n.limits=function(t,e){return hn(n,t,e)},n},hn=function(t,e,n){void 0===e&&(e="equal"),void 0===n&&(n=7),"array"==i(t)&&(t=un(t));var r=t.min,a=t.max,s=t.values.sort((function(t,e){return t-e}));if(1===n)return[r,a];var o=[];if("c"===e.substr(0,1)&&(o.push(r),o.push(a)),"e"===e.substr(0,1)){o.push(r);for(var l=1;l<n;l++)o.push(r+l/n*(a-r));o.push(a)}else if("l"===e.substr(0,1)){if(r<=0)throw new Error("Logarithmic scales are only possible for values > 0");var c=Math.LOG10E*sn(r),u=Math.LOG10E*sn(a);o.push(r);for(var h=1;h<n;h++)o.push(on(10,c+h/n*(u-c)));o.push(a)}else if("q"===e.substr(0,1)){o.push(r);for(var d=1;d<n;d++){var g=(s.length-1)*d/n,f=ln(g);if(f===g)o.push(s[f]);else{var p=g-f;o.push(s[f]*(1-p)+s[f+1]*p)}}o.push(a)}else if("k"===e.substr(0,1)){var m,y=s.length,v=new Array(y),b=new Array(n),C=!0,x=0,w=null;(w=[]).push(r);for(var k=1;k<n;k++)w.push(r+k/n*(a-r));for(w.push(a);C;){for(var S=0;S<n;S++)b[S]=0;for(var A=0;A<y;A++)for(var M=s[A],_=Number.MAX_VALUE,B=void 0,L=0;L<n;L++){var E=cn(w[L]-M);E<_&&(_=E,B=L),b[B]++,v[A]=B}for(var F=new Array(n),T=0;T<n;T++)F[T]=null;for(var D=0;D<y;D++)null===F[m=v[D]]?F[m]=s[D]:F[m]+=s[D];for(var I=0;I<n;I++)F[I]*=1/b[I];C=!1;for(var $=0;$<n;$++)if(F[$]!==w[$]){C=!0;break}w=F,++x>200&&(C=!1)}for(var z={},O=0;O<n;O++)z[O]=[];for(var P=0;P<y;P++)z[m=v[P]].push(s[P]);for(var N=[],G=0;G<n;G++)N.push(z[G][0]),N.push(z[G][z[G].length-1]);N=N.sort((function(t,e){return t-e})),o.push(N[0]);for(var K=1;K<N.length;K+=2){var V=N[K];isNaN(V)||-1!==o.indexOf(V)||o.push(V)}}return o},dn={analyze:un,limits:hn},gn=Math.sqrt,fn=Math.atan2,pn=Math.abs,mn=Math.cos,yn=Math.PI,vn={cool:function(){return He([p.hsl(180,1,.9),p.hsl(250,.7,.4)])},hot:function(){return He(["#000","#f00","#ff0","#fff"]).mode("rgb")}},bn={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Cn=0,xn=Object.keys(bn);Cn<xn.length;Cn+=1){var wn=xn[Cn];bn[wn.toLowerCase()]=bn[wn]}var kn=bn;return p.average=function(t,e,n){void 0===e&&(e="lrgb"),void 0===n&&(n=null);var r=t.length;n||(n=Array.from(new Array(r)).map((function(){return 1})));var a=r/n.reduce((function(t,e){return t+e}));if(n.forEach((function(t,e){n[e]*=a})),t=t.map((function(t){return new g(t)})),"lrgb"===e)return Ke(t,n);for(var i=t.shift(),s=i.get(e),o=[],l=0,c=0,u=0;u<s.length;u++)if(s[u]=(s[u]||0)*n[0],o.push(isNaN(s[u])?0:n[0]),"h"===e.charAt(u)&&!isNaN(s[u])){var h=s[u]/180*Oe;l+=Pe(h)*n[0],c+=Ne(h)*n[0]}var d=i.alpha()*n[0];t.forEach((function(t,r){var a=t.get(e);d+=t.alpha()*n[r+1];for(var i=0;i<s.length;i++)if(!isNaN(a[i]))if(o[i]+=n[r+1],"h"===e.charAt(i)){var u=a[i]/180*Oe;l+=Pe(u)*n[r+1],c+=Ne(u)*n[r+1]}else s[i]+=a[i]*n[r+1]}));for(var f=0;f<s.length;f++)if("h"===e.charAt(f)){for(var p=Ge(c/o[f],l/o[f])/Oe*180;p<0;)p+=360;for(;p>=360;)p-=360;s[f]=p}else s[f]=s[f]/o[f];return d/=r,new g(s,e).alpha(d>.99999?1:d,!0)},p.bezier=function(t){var e=Ue(t);return e.scale=function(){return He(e)},e},p.blend=Xe,p.cubehelix=function(t,e,n,r,a){void 0===t&&(t=300),void 0===e&&(e=-1.5),void 0===n&&(n=1),void 0===r&&(r=1),void 0===a&&(a=[0,1]);var i,s=0;"array"===Ze(a)?i=a[1]-a[0]:(i=0,a=[a,a]);var o=function(o){var l=Je*((t+120)/360+e*o),c=tn(a[0]+i*o,r),u=(0!==s?n[0]+o*s:n)*c*(1-c)/2,h=nn(l),d=en(l);return p(Qe([255*(c+u*(-.14861*h+1.78277*d)),255*(c+u*(-.29227*h-.90649*d)),255*(c+u*(1.97294*h)),1]))};return o.start=function(e){return null==e?t:(t=e,o)},o.rotations=function(t){return null==t?e:(e=t,o)},o.gamma=function(t){return null==t?r:(r=t,o)},o.hue=function(t){return null==t?n:("array"===Ze(n=t)?0==(s=n[1]-n[0])&&(n=n[1]):s=0,o)},o.lightness=function(t){return null==t?a:("array"===Ze(t)?(a=t,i=t[1]-t[0]):(a=[t,t],i=0),o)},o.scale=function(){return p.scale(o)},o.hue(n),o},p.mix=p.interpolate=Be,p.random=function(){for(var t="#",e=0;e<6;e++)t+="0123456789abcdef".charAt(rn(16*an()));return new g(t,"hex")},p.scale=He,p.analyze=dn.analyze,p.contrast=function(t,e){t=new g(t),e=new g(e);var n=t.luminance(),r=e.luminance();return n>r?(n+.05)/(r+.05):(r+.05)/(n+.05)},p.deltaE=function(t,e,n,r){void 0===n&&(n=1),void 0===r&&(r=1),t=new g(t),e=new g(e);for(var a=Array.from(t.lab()),i=a[0],s=a[1],o=a[2],l=Array.from(e.lab()),c=l[0],u=l[1],h=l[2],d=gn(s*s+o*o),f=gn(u*u+h*h),p=i<16?.511:.040975*i/(1+.01765*i),m=.0638*d/(1+.0131*d)+.638,y=d<1e-6?0:180*fn(o,s)/yn;y<0;)y+=360;for(;y>=360;)y-=360;var v=y>=164&&y<=345?.56+pn(.2*mn(yn*(y+168)/180)):.36+pn(.4*mn(yn*(y+35)/180)),b=d*d*d*d,C=gn(b/(b+1900)),x=m*(C*v+1-C),w=d-f,k=s-u,S=o-h,A=(i-c)/(n*p),M=w/(r*m);return gn(A*A+M*M+(k*k+S*S-w*w)/(x*x))},p.distance=function(t,e,n){void 0===n&&(n="lab"),t=new g(t),e=new g(e);var r=t.get(n),a=e.get(n),i=0;for(var s in r){var o=(r[s]||0)-(a[s]||0);i+=o*o}return Math.sqrt(i)},p.limits=dn.limits,p.valid=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];try{return new(Function.prototype.bind.apply(g,[null].concat(t))),!0}catch(t){return!1}},p.scales=vn,p.colors=ce,p.brewer=kn,p}()}},e={};function n(r){if(e[r])return e[r].exports;var a=e[r]={exports:{}};return t[r].call(a.exports,a,a.exports,n),a.exports}(()=>{"use strict";function t(){}function e(e){return null==e?t:function(){return this.querySelector(e)}}function r(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function a(){return[]}function i(t){return null==t?a:function(){return this.querySelectorAll(t)}}function s(t){return function(){return this.matches(t)}}function o(t){return function(e){return e.matches(t)}}var l=Array.prototype.find;function c(){return this.firstElementChild}var u=Array.prototype.filter;function h(){return this.children}function d(t){return new Array(t.length)}function g(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function f(t){return function(){return t}}function p(t,e,n,r,a,i){for(var s,o=0,l=e.length,c=i.length;o<c;++o)(s=e[o])?(s.__data__=i[o],r[o]=s):n[o]=new g(t,i[o]);for(;o<l;++o)(s=e[o])&&(a[o]=s)}function m(t,e,n,r,a,i,s){var o,l,c,u=new Map,h=e.length,d=i.length,f=new Array(h);for(o=0;o<h;++o)(l=e[o])&&(f[o]=c=s.call(l,l.__data__,o,e)+"",u.has(c)?a[o]=l:u.set(c,l));for(o=0;o<d;++o)c=s.call(t,i[o],o,i)+"",(l=u.get(c))?(r[o]=l,l.__data__=i[o],u.delete(c)):n[o]=new g(t,i[o]);for(o=0;o<h;++o)(l=e[o])&&u.get(f[o])===l&&(a[o]=l)}function y(t){return t.__data__}function v(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}g.prototype={constructor:g,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var b="http://www.w3.org/1999/xhtml";const C={svg:"http://www.w3.org/2000/svg",xhtml:b,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function x(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),C.hasOwnProperty(e)?{space:C[e],local:t}:t}function w(t){return function(){this.removeAttribute(t)}}function k(t){return function(){this.removeAttributeNS(t.space,t.local)}}function S(t,e){return function(){this.setAttribute(t,e)}}function A(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function M(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function _(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function B(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function L(t){return function(){this.style.removeProperty(t)}}function E(t,e,n){return function(){this.style.setProperty(t,e,n)}}function F(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function T(t,e){return t.style.getPropertyValue(e)||B(t).getComputedStyle(t,null).getPropertyValue(e)}function D(t){return function(){delete this[t]}}function I(t,e){return function(){this[t]=e}}function $(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function z(t){return t.trim().split(/^|\s+/)}function O(t){return t.classList||new P(t)}function P(t){this._node=t,this._names=z(t.getAttribute("class")||"")}function N(t,e){for(var n=O(t),r=-1,a=e.length;++r<a;)n.add(e[r])}function G(t,e){for(var n=O(t),r=-1,a=e.length;++r<a;)n.remove(e[r])}function K(t){return function(){N(this,t)}}function V(t){return function(){G(this,t)}}function R(t,e){return function(){(e.apply(this,arguments)?N:G)(this,t)}}function H(){this.textContent=""}function W(t){return function(){this.textContent=t}}function U(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function j(){this.innerHTML=""}function Y(t){return function(){this.innerHTML=t}}function q(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function X(){this.nextSibling&&this.parentNode.appendChild(this)}function Z(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Q(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===b&&e.documentElement.namespaceURI===b?e.createElement(t):e.createElementNS(n,t)}}function J(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function tt(t){var e=x(t);return(e.local?J:Q)(e)}function et(){return null}function nt(){var t=this.parentNode;t&&t.removeChild(this)}function rt(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function at(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function it(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function st(t){return function(){var e=this.__on;if(e){for(var n,r=0,a=-1,i=e.length;r<i;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++a]=n:this.removeEventListener(n.type,n.listener,n.options);++a?e.length=a:delete this.__on}}}function ot(t,e,n){return function(){var r,a=this.__on,i=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(a)for(var s=0,o=a.length;s<o;++s)if((r=a[s]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=e);this.addEventListener(t.type,i,n),r={type:t.type,name:t.name,value:e,listener:i,options:n},a?a.push(r):this.__on=[r]}}function lt(t,e,n){var r=B(t),a=r.CustomEvent;"function"==typeof a?a=new a(e,n):(a=r.document.createEvent("Event"),n?(a.initEvent(e,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(e,!1,!1)),t.dispatchEvent(a)}function ct(t,e){return function(){return lt(this,t,e)}}function ut(t,e){return function(){return lt(this,t,e.apply(this,arguments))}}P.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ht=[null];function dt(t,e){this._groups=t,this._parents=e}function gt(){return new dt([[document.documentElement]],ht)}dt.prototype=gt.prototype={constructor:dt,select:function(t){"function"!=typeof t&&(t=e(t));for(var n=this._groups,r=n.length,a=new Array(r),i=0;i<r;++i)for(var s,o,l=n[i],c=l.length,u=a[i]=new Array(c),h=0;h<c;++h)(s=l[h])&&(o=t.call(s,s.__data__,h,l))&&("__data__"in s&&(o.__data__=s.__data__),u[h]=o);return new dt(a,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);return null==e?[]:r(e)}}(t):i(t);for(var e=this._groups,n=e.length,a=[],s=[],o=0;o<n;++o)for(var l,c=e[o],u=c.length,h=0;h<u;++h)(l=c[h])&&(a.push(t.call(l,l.__data__,h,c)),s.push(l));return new dt(a,s)},selectChild:function(t){return this.select(null==t?c:function(t){return function(){return l.call(this.children,t)}}("function"==typeof t?t:o(t)))},selectChildren:function(t){return this.selectAll(null==t?h:function(t){return function(){return u.call(this.children,t)}}("function"==typeof t?t:o(t)))},filter:function(t){"function"!=typeof t&&(t=s(t));for(var e=this._groups,n=e.length,r=new Array(n),a=0;a<n;++a)for(var i,o=e[a],l=o.length,c=r[a]=[],u=0;u<l;++u)(i=o[u])&&t.call(i,i.__data__,u,o)&&c.push(i);return new dt(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,y);var n=e?m:p,a=this._parents,i=this._groups;"function"!=typeof t&&(t=f(t));for(var s=i.length,o=new Array(s),l=new Array(s),c=new Array(s),u=0;u<s;++u){var h=a[u],d=i[u],g=d.length,v=r(t.call(h,h&&h.__data__,u,a)),b=v.length,C=l[u]=new Array(b),x=o[u]=new Array(b),w=c[u]=new Array(g);n(h,d,C,x,w,v,e);for(var k,S,A=0,M=0;A<b;++A)if(k=C[A]){for(A>=M&&(M=A+1);!(S=x[M])&&++M<b;);k._next=S||null}}return(o=new dt(o,a))._enter=l,o._exit=c,o},enter:function(){return new dt(this._enter||this._groups.map(d),this._parents)},exit:function(){return new dt(this._exit||this._groups.map(d),this._parents)},join:function(t,e,n){var r=this.enter(),a=this,i=this.exit();return r="function"==typeof t?t(r):r.append(t+""),null!=e&&(a=e(a)),null==n?i.remove():n(i),r&&a?r.merge(a).order():a},merge:function(t){if(!(t instanceof dt))throw new Error("invalid merge");for(var e=this._groups,n=t._groups,r=e.length,a=n.length,i=Math.min(r,a),s=new Array(r),o=0;o<i;++o)for(var l,c=e[o],u=n[o],h=c.length,d=s[o]=new Array(h),g=0;g<h;++g)(l=c[g]||u[g])&&(d[g]=l);for(;o<r;++o)s[o]=e[o];return new dt(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,a=t[e],i=a.length-1,s=a[i];--i>=0;)(r=a[i])&&(s&&4^r.compareDocumentPosition(s)&&s.parentNode.insertBefore(r,s),s=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=v);for(var n=this._groups,r=n.length,a=new Array(r),i=0;i<r;++i){for(var s,o=n[i],l=o.length,c=a[i]=new Array(l),u=0;u<l;++u)(s=o[u])&&(c[u]=s);c.sort(e)}return new dt(a,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],a=0,i=r.length;a<i;++a){var s=r[a];if(s)return s}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var a,i=e[n],s=0,o=i.length;s<o;++s)(a=i[s])&&t.call(a,a.__data__,s,i);return this},attr:function(t,e){var n=x(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?k:w:"function"==typeof e?n.local?_:M:n.local?A:S)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?L:"function"==typeof e?F:E)(t,e,null==n?"":n)):T(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?D:"function"==typeof e?$:I)(t,e)):this.node()[t]},classed:function(t,e){var n=z(t+"");if(arguments.length<2){for(var r=O(this.node()),a=-1,i=n.length;++a<i;)if(!r.contains(n[a]))return!1;return!0}return this.each(("function"==typeof e?R:e?K:V)(n,e))},text:function(t){return arguments.length?this.each(null==t?H:("function"==typeof t?U:W)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?j:("function"==typeof t?q:Y)(t)):this.node().innerHTML},raise:function(){return this.each(X)},lower:function(){return this.each(Z)},append:function(t){var e="function"==typeof t?t:tt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,n){var r="function"==typeof t?t:tt(t),a=null==n?et:"function"==typeof n?n:e(n);return this.select((function(){return this.insertBefore(r.apply(this,arguments),a.apply(this,arguments)||null)}))},remove:function(){return this.each(nt)},clone:function(t){return this.select(t?at:rt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,a,i=it(t+""),s=i.length;if(!(arguments.length<2)){for(o=e?ot:st,r=0;r<s;++r)this.each(o(i[r],e,n));return this}var o=this.node().__on;if(o)for(var l,c=0,u=o.length;c<u;++c)for(r=0,l=o[c];r<s;++r)if((a=i[r]).type===l.type&&a.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?ut:ct)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,a=t[e],i=0,s=a.length;i<s;++i)(r=a[i])&&(yield r)}};const ft=gt;function pt(t){return"string"==typeof t?new dt([[document.querySelector(t)]],[document.documentElement]):new dt([[t]],ht)}function mt(t,e,n){t=+t,e=+e,n=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+n;for(var r=-1,a=0|Math.max(0,Math.ceil((e-t)/n)),i=new Array(a);++r<a;)i[r]=t+r*n;return i}function yt(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}const vt=Symbol("implicit");function bt(){var t=new Map,e=[],n=[],r=vt;function a(a){var i=a+"",s=t.get(i);if(!s){if(r!==vt)return r;t.set(i,s=e.push(a))}return n[(s-1)%n.length]}return a.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new Map;for(const r of n){const n=r+"";t.has(n)||t.set(n,e.push(r))}return a},a.range=function(t){return arguments.length?(n=Array.from(t),a):n.slice()},a.unknown=function(t){return arguments.length?(r=t,a):r},a.copy=function(){return bt(e,n).unknown(r)},yt.apply(a,arguments),a}function Ct(){var t,e,n=bt().unknown(void 0),r=n.domain,a=n.range,i=0,s=1,o=!1,l=0,c=0,u=.5;function h(){var n=r().length,h=s<i,d=h?s:i,g=h?i:s;t=(g-d)/Math.max(1,n-l+2*c),o&&(t=Math.floor(t)),d+=(g-d-t*(n-l))*u,e=t*(1-l),o&&(d=Math.round(d),e=Math.round(e));var f=mt(n).map((function(e){return d+t*e}));return a(h?f.reverse():f)}return delete n.unknown,n.domain=function(t){return arguments.length?(r(t),h()):r()},n.range=function(t){return arguments.length?([i,s]=t,i=+i,s=+s,h()):[i,s]},n.rangeRound=function(t){return[i,s]=t,i=+i,s=+s,o=!0,h()},n.bandwidth=function(){return e},n.step=function(){return t},n.round=function(t){return arguments.length?(o=!!t,h()):o},n.padding=function(t){return arguments.length?(l=Math.min(1,c=+t),h()):l},n.paddingInner=function(t){return arguments.length?(l=Math.min(1,t),h()):l},n.paddingOuter=function(t){return arguments.length?(c=+t,h()):c},n.align=function(t){return arguments.length?(u=Math.max(0,Math.min(1,t)),h()):u},n.copy=function(){return Ct(r(),[i,s]).round(o).paddingInner(l).paddingOuter(c).align(u)},yt.apply(h(),arguments)}function xt(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return xt(e())},t}var wt=Math.sqrt(50),kt=Math.sqrt(10),St=Math.sqrt(2);function At(t,e,n){var r=(e-t)/Math.max(0,n),a=Math.floor(Math.log(r)/Math.LN10),i=r/Math.pow(10,a);return a>=0?(i>=wt?10:i>=kt?5:i>=St?2:1)*Math.pow(10,a):-Math.pow(10,-a)/(i>=wt?10:i>=kt?5:i>=St?2:1)}function Mt(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),a=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/a;return i>=wt?a*=10:i>=kt?a*=5:i>=St&&(a*=2),e<t?-a:a}function _t(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Bt(t){let e=t,n=t;function r(t,e,r,a){for(null==r&&(r=0),null==a&&(a=t.length);r<a;){const i=r+a>>>1;n(t[i],e)<0?r=i+1:a=i}return r}return 1===t.length&&(e=(e,n)=>t(e)-n,n=function(t){return(e,n)=>_t(t(e),n)}(t)),{left:r,center:function(t,n,a,i){null==a&&(a=0),null==i&&(i=t.length);const s=r(t,n,a,i-1);return s>a&&e(t[s-1],n)>-e(t[s],n)?s-1:s},right:function(t,e,r,a){for(null==r&&(r=0),null==a&&(a=t.length);r<a;){const i=r+a>>>1;n(t[i],e)>0?a=i:r=i+1}return r}}}const Lt=Bt(_t),Et=Lt.right,Ft=(Lt.left,Bt((function(t){return null===t?NaN:+t})).center,Et);function Tt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Dt(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function It(){}var $t=.7,zt=1/$t,Ot="\\s*([+-]?\\d+)\\s*",Pt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Nt="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Gt=/^#([0-9a-f]{3,8})$/,Kt=new RegExp("^rgb\\("+[Ot,Ot,Ot]+"\\)$"),Vt=new RegExp("^rgb\\("+[Nt,Nt,Nt]+"\\)$"),Rt=new RegExp("^rgba\\("+[Ot,Ot,Ot,Pt]+"\\)$"),Ht=new RegExp("^rgba\\("+[Nt,Nt,Nt,Pt]+"\\)$"),Wt=new RegExp("^hsl\\("+[Pt,Nt,Nt]+"\\)$"),Ut=new RegExp("^hsla\\("+[Pt,Nt,Nt,Pt]+"\\)$"),jt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Yt(){return this.rgb().formatHex()}function qt(){return this.rgb().formatRgb()}function Xt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Gt.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Zt(e):3===n?new ee(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Qt(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Qt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Kt.exec(t))?new ee(e[1],e[2],e[3],1):(e=Vt.exec(t))?new ee(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Rt.exec(t))?Qt(e[1],e[2],e[3],e[4]):(e=Ht.exec(t))?Qt(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Wt.exec(t))?ie(e[1],e[2]/100,e[3]/100,1):(e=Ut.exec(t))?ie(e[1],e[2]/100,e[3]/100,e[4]):jt.hasOwnProperty(t)?Zt(jt[t]):"transparent"===t?new ee(NaN,NaN,NaN,0):null}function Zt(t){return new ee(t>>16&255,t>>8&255,255&t,1)}function Qt(t,e,n,r){return r<=0&&(t=e=n=NaN),new ee(t,e,n,r)}function Jt(t){return t instanceof It||(t=Xt(t)),t?new ee((t=t.rgb()).r,t.g,t.b,t.opacity):new ee}function te(t,e,n,r){return 1===arguments.length?Jt(t):new ee(t,e,n,null==r?1:r)}function ee(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function ne(){return"#"+ae(this.r)+ae(this.g)+ae(this.b)}function re(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function ae(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function ie(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new oe(t,e,n,r)}function se(t){if(t instanceof oe)return new oe(t.h,t.s,t.l,t.opacity);if(t instanceof It||(t=Xt(t)),!t)return new oe;if(t instanceof oe)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),i=Math.max(e,n,r),s=NaN,o=i-a,l=(i+a)/2;return o?(s=e===i?(n-r)/o+6*(n<r):n===i?(r-e)/o+2:(e-n)/o+4,o/=l<.5?i+a:2-i-a,s*=60):o=l>0&&l<1?0:s,new oe(s,o,l,t.opacity)}function oe(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function le(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function ce(t,e,n,r,a){var i=t*t,s=i*t;return((1-3*t+3*i-s)*e+(4-6*i+3*s)*n+(1+3*t+3*i-3*s)*r+s*a)/6}Tt(It,Xt,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Yt,formatHex:Yt,formatHsl:function(){return se(this).formatHsl()},formatRgb:qt,toString:qt}),Tt(ee,te,Dt(It,{brighter:function(t){return t=null==t?zt:Math.pow(zt,t),new ee(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?$t:Math.pow($t,t),new ee(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ne,formatHex:ne,formatRgb:re,toString:re})),Tt(oe,(function(t,e,n,r){return 1===arguments.length?se(t):new oe(t,e,n,null==r?1:r)}),Dt(It,{brighter:function(t){return t=null==t?zt:Math.pow(zt,t),new oe(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?$t:Math.pow($t,t),new oe(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new ee(le(t>=240?t-240:t+120,a,r),le(t,a,r),le(t<120?t+240:t-120,a,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const ue=t=>()=>t;function he(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):ue(isNaN(t)?e:t)}const de=function t(e){var n=function(t){return 1==(t=+t)?he:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):ue(isNaN(e)?n:e)}}(e);function r(t,e){var r=n((t=te(t)).r,(e=te(e)).r),a=n(t.g,e.g),i=n(t.b,e.b),s=he(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=a(e),t.b=i(e),t.opacity=s(e),t+""}}return r.gamma=t,r}(1);function ge(t){return function(e){var n,r,a=e.length,i=new Array(a),s=new Array(a),o=new Array(a);for(n=0;n<a;++n)r=te(e[n]),i[n]=r.r||0,s[n]=r.g||0,o[n]=r.b||0;return i=t(i),s=t(s),o=t(o),r.opacity=1,function(t){return r.r=i(t),r.g=s(t),r.b=o(t),r+""}}}function fe(t,e){var n,r=e?e.length:0,a=t?Math.min(r,t.length):0,i=new Array(a),s=new Array(r);for(n=0;n<a;++n)i[n]=we(t[n],e[n]);for(;n<r;++n)s[n]=e[n];return function(t){for(n=0;n<a;++n)s[n]=i[n](t);return s}}function pe(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function me(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function ye(t,e){var n,r={},a={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?r[n]=we(t[n],e[n]):a[n]=e[n];return function(t){for(n in r)a[n]=r[n](t);return a}}ge((function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[r],i=t[r+1],s=r>0?t[r-1]:2*a-i,o=r<e-1?t[r+2]:2*i-a;return ce((n-r/e)*e,s,a,i,o)}})),ge((function(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),a=t[(r+e-1)%e],i=t[r%e],s=t[(r+1)%e],o=t[(r+2)%e];return ce((n-r/e)*e,a,i,s,o)}}));var ve=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,be=new RegExp(ve.source,"g");function Ce(t,e){var n,r,a,i=ve.lastIndex=be.lastIndex=0,s=-1,o=[],l=[];for(t+="",e+="";(n=ve.exec(t))&&(r=be.exec(e));)(a=r.index)>i&&(a=e.slice(i,a),o[s]?o[s]+=a:o[++s]=a),(n=n[0])===(r=r[0])?o[s]?o[s]+=r:o[++s]=r:(o[++s]=null,l.push({i:s,x:me(n,r)})),i=be.lastIndex;return i<e.length&&(a=e.slice(i),o[s]?o[s]+=a:o[++s]=a),o.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var n,r=0;r<e;++r)o[(n=l[r]).i]=n.x(t);return o.join("")})}function xe(t,e){e||(e=[]);var n,r=t?Math.min(e.length,t.length):0,a=e.slice();return function(i){for(n=0;n<r;++n)a[n]=t[n]*(1-i)+e[n]*i;return a}}function we(t,e){var n,r,a=typeof e;return null==e||"boolean"===a?ue(e):("number"===a?me:"string"===a?(n=Xt(e))?(e=n,de):Ce:e instanceof Xt?de:e instanceof Date?pe:(r=e,!ArrayBuffer.isView(r)||r instanceof DataView?Array.isArray(e)?fe:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?ye:me:xe))(t,e)}function ke(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function Se(t){return+t}var Ae=[0,1];function Me(t){return t}function _e(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:(n=isNaN(e)?NaN:.5,function(){return n});var n}function Be(t,e,n){var r=t[0],a=t[1],i=e[0],s=e[1];return a<r?(r=_e(a,r),i=n(s,i)):(r=_e(r,a),i=n(i,s)),function(t){return i(r(t))}}function Le(t,e,n){var r=Math.min(t.length,e.length)-1,a=new Array(r),i=new Array(r),s=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++s<r;)a[s]=_e(t[s],t[s+1]),i[s]=n(e[s],e[s+1]);return function(e){var n=Ft(t,e,1,r)-1;return i[n](a[n](e))}}function Ee(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Fe(){return function(){var t,e,n,r,a,i,s=Ae,o=Ae,l=we,c=Me;function u(){var t,e,n,l=Math.min(s.length,o.length);return c!==Me&&(t=s[0],e=s[l-1],t>e&&(n=t,t=e,e=n),c=function(n){return Math.max(t,Math.min(e,n))}),r=l>2?Le:Be,a=i=null,h}function h(e){return isNaN(e=+e)?n:(a||(a=r(s.map(t),o,l)))(t(c(e)))}return h.invert=function(n){return c(e((i||(i=r(o,s.map(t),me)))(n)))},h.domain=function(t){return arguments.length?(s=Array.from(t,Se),u()):s.slice()},h.range=function(t){return arguments.length?(o=Array.from(t),u()):o.slice()},h.rangeRound=function(t){return o=Array.from(t),l=ke,u()},h.clamp=function(t){return arguments.length?(c=!!t||Me,u()):c!==Me},h.interpolate=function(t){return arguments.length?(l=t,u()):l},h.unknown=function(t){return arguments.length?(n=t,h):n},function(n,r){return t=n,e=r,u()}}()(Me,Me)}var Te,De=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ie(t){if(!(e=De.exec(t)))throw new Error("invalid format: "+t);var e;return new $e({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function $e(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function ze(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Oe(t){return(t=ze(Math.abs(t)))?t[1]:NaN}function Pe(t,e){var n=ze(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}Ie.prototype=$e.prototype,$e.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Ne={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Pe(100*t,e),r:Pe,s:function(t,e){var n=ze(t,e);if(!n)return t+"";var r=n[0],a=n[1],i=a-(Te=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,s=r.length;return i===s?r:i>s?r+new Array(i-s+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+ze(t,Math.max(0,e+i-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Ge(t){return t}var Ke,Ve,Re,He=Array.prototype.map,We=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Ue(t){var e=t.domain;return t.ticks=function(t){var n=e();return function(t,e,n){var r,a,i,s,o=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((r=e<t)&&(a=t,t=e,e=a),0===(s=At(t,e,n))||!isFinite(s))return[];if(s>0)for(t=Math.ceil(t/s),e=Math.floor(e/s),i=new Array(a=Math.ceil(e-t+1));++o<a;)i[o]=(t+o)*s;else for(s=-s,t=Math.ceil(t*s),e=Math.floor(e*s),i=new Array(a=Math.ceil(e-t+1));++o<a;)i[o]=(t+o)/s;return r&&i.reverse(),i}(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return function(t,e,n,r){var a,i=Mt(t,e,n);switch((r=Ie(null==r?",f":r)).type){case"s":var s=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Oe(e)/3)))-Oe(Math.abs(t)))}(i,s))||(r.precision=a),Re(r,s);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Oe(e)-Oe(t))+1}(i,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=a-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(a=function(t){return Math.max(0,-Oe(Math.abs(t)))}(i))||(r.precision=a-2*("%"===r.type))}return Ve(r)}(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var r,a,i=e(),s=0,o=i.length-1,l=i[s],c=i[o],u=10;for(c<l&&(a=l,l=c,c=a,a=s,s=o,o=a);u-- >0;){if((a=At(l,c,n))===r)return i[s]=l,i[o]=c,e(i);if(a>0)l=Math.floor(l/a)*a,c=Math.ceil(c/a)*a;else{if(!(a<0))break;l=Math.ceil(l*a)/a,c=Math.floor(c*a)/a}r=a}return t},t}function je(){var t=Fe();return t.copy=function(){return Ee(t,je())},yt.apply(t,arguments),Ue(t)}Ke=function(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?Ge:(e=He.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var a=t.length,i=[],s=0,o=e[0],l=0;a>0&&o>0&&(l+o+1>r&&(o=Math.max(1,r-l)),i.push(t.substring(a-=o,a+o)),!((l+=o+1)>r));)o=e[s=(s+1)%e.length];return i.reverse().join(n)}),a=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",s=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?Ge:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(He.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"−":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function h(t){var e=(t=Ie(t)).fill,n=t.align,h=t.sign,d=t.symbol,g=t.zero,f=t.width,p=t.comma,m=t.precision,y=t.trim,v=t.type;"n"===v?(p=!0,v="g"):Ne[v]||(void 0===m&&(m=12),y=!0,v="g"),(g||"0"===e&&"="===n)&&(g=!0,e="0",n="=");var b="$"===d?a:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",C="$"===d?i:/[%p]/.test(v)?l:"",x=Ne[v],w=/[defgprs%]/.test(v);function k(t){var a,i,l,d=b,k=C;if("c"===v)k=x(t)+k,t="";else{var S=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:x(Math.abs(t),m),y&&(t=function(t){t:for(var e,n=t.length,r=1,a=-1;r<n;++r)switch(t[r]){case".":a=e=r;break;case"0":0===a&&(a=r),e=r;break;default:if(!+t[r])break t;a>0&&(a=0)}return a>0?t.slice(0,a)+t.slice(e+1):t}(t)),S&&0==+t&&"+"!==h&&(S=!1),d=(S?"("===h?h:c:"-"===h||"("===h?"":h)+d,k=("s"===v?We[8+Te/3]:"")+k+(S&&"("===h?")":""),w)for(a=-1,i=t.length;++a<i;)if(48>(l=t.charCodeAt(a))||l>57){k=(46===l?s+t.slice(a+1):t.slice(a))+k,t=t.slice(0,a);break}}p&&!g&&(t=r(t,1/0));var A=d.length+t.length+k.length,M=A<f?new Array(f-A+1).join(e):"";switch(p&&g&&(t=r(M+t,M.length?f-k.length:1/0),M=""),n){case"<":t=d+t+k+M;break;case"=":t=d+M+t+k;break;case"^":t=M.slice(0,A=M.length>>1)+d+t+k+M.slice(A);break;default:t=M+d+t+k}return o(t)}return m=void 0===m?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),k.toString=function(){return t+""},k}return{format:h,formatPrefix:function(t,e){var n=h(((t=Ie(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Oe(e)/3))),a=Math.pow(10,-r),i=We[8+r/3];return function(t){return n(a*t)+i}}}}({thousands:",",grouping:[3],currency:["$",""]}),Ve=Ke.format,Re=Ke.formatPrefix;var Ye=new Date,qe=new Date;function Xe(t,e,n,r){function a(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return a.floor=function(e){return t(e=new Date(+e)),e},a.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},a.round=function(t){var e=a(t),n=a.ceil(t);return t-e<n-t?e:n},a.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},a.range=function(n,r,i){var s,o=[];if(n=a.ceil(n),i=null==i?1:Math.floor(i),!(n<r&&i>0))return o;do{o.push(s=new Date(+n)),e(n,i),t(n)}while(s<n&&n<r);return o},a.filter=function(n){return Xe((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(a.count=function(e,r){return Ye.setTime(+e),qe.setTime(+r),t(Ye),t(qe),Math.floor(n(Ye,qe))},a.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?a.filter(r?function(e){return r(e)%t==0}:function(e){return a.count(0,e)%t==0}):a:null}),a}var Ze=Xe((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));Ze.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Xe((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};const Qe=Ze;Ze.range;var Je=Xe((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}));const tn=Je;Je.range;var en=1e3,nn=6e4,rn=36e5,an=864e5,sn=6048e5;function on(t){return Xe((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*nn)/sn}))}var ln=on(0),cn=on(1),un=on(2),hn=on(3),dn=on(4),gn=on(5),fn=on(6),pn=(ln.range,cn.range,un.range,hn.range,dn.range,gn.range,fn.range,Xe((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*nn)/an),(t=>t.getDate()-1)));const mn=pn;pn.range;var yn=Xe((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*en-t.getMinutes()*nn)}),(function(t,e){t.setTime(+t+e*rn)}),(function(t,e){return(e-t)/rn}),(function(t){return t.getHours()}));const vn=yn;yn.range;var bn=Xe((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*en)}),(function(t,e){t.setTime(+t+e*nn)}),(function(t,e){return(e-t)/nn}),(function(t){return t.getMinutes()}));const Cn=bn;bn.range;var xn=Xe((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*en)}),(function(t,e){return(e-t)/en}),(function(t){return t.getUTCSeconds()}));const wn=xn;xn.range;var kn=Xe((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));kn.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Xe((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):kn:null};const Sn=kn;function An(t){return Xe((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/sn}))}kn.range;var Mn=An(0),_n=An(1),Bn=An(2),Ln=An(3),En=An(4),Fn=An(5),Tn=An(6),Dn=(Mn.range,_n.range,Bn.range,Ln.range,En.range,Fn.range,Tn.range,Xe((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/an}),(function(t){return t.getUTCDate()-1})));const In=Dn;Dn.range;var $n=Xe((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));$n.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Xe((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};const zn=$n;function On(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Pn(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Nn(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}$n.range;var Gn,Kn,Vn={"-":"",_:" ",0:"0"},Rn=/^\s*\d+/,Hn=/^%/,Wn=/[\\^$*+?|[\]().{}]/g;function Un(t,e,n){var r=t<0?"-":"",a=(r?-t:t)+"",i=a.length;return r+(i<n?new Array(n-i+1).join(e)+a:a)}function jn(t){return t.replace(Wn,"\\$&")}function Yn(t){return new RegExp("^(?:"+t.map(jn).join("|")+")","i")}function qn(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function Xn(t,e,n){var r=Rn.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Zn(t,e,n){var r=Rn.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Qn(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Jn(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function tr(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function er(t,e,n){var r=Rn.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function nr(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function rr(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function ar(t,e,n){var r=Rn.exec(e.slice(n,n+1));return r?(t.q=3*r[0]-3,n+r[0].length):-1}function ir(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function sr(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function or(t,e,n){var r=Rn.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function lr(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function cr(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function ur(t,e,n){var r=Rn.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function hr(t,e,n){var r=Rn.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function dr(t,e,n){var r=Rn.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function gr(t,e,n){var r=Hn.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function fr(t,e,n){var r=Rn.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function pr(t,e,n){var r=Rn.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function mr(t,e){return Un(t.getDate(),e,2)}function yr(t,e){return Un(t.getHours(),e,2)}function vr(t,e){return Un(t.getHours()%12||12,e,2)}function br(t,e){return Un(1+mn.count(Qe(t),t),e,3)}function Cr(t,e){return Un(t.getMilliseconds(),e,3)}function xr(t,e){return Cr(t,e)+"000"}function wr(t,e){return Un(t.getMonth()+1,e,2)}function kr(t,e){return Un(t.getMinutes(),e,2)}function Sr(t,e){return Un(t.getSeconds(),e,2)}function Ar(t){var e=t.getDay();return 0===e?7:e}function Mr(t,e){return Un(ln.count(Qe(t)-1,t),e,2)}function _r(t){var e=t.getDay();return e>=4||0===e?dn(t):dn.ceil(t)}function Br(t,e){return t=_r(t),Un(dn.count(Qe(t),t)+(4===Qe(t).getDay()),e,2)}function Lr(t){return t.getDay()}function Er(t,e){return Un(cn.count(Qe(t)-1,t),e,2)}function Fr(t,e){return Un(t.getFullYear()%100,e,2)}function Tr(t,e){return Un((t=_r(t)).getFullYear()%100,e,2)}function Dr(t,e){return Un(t.getFullYear()%1e4,e,4)}function Ir(t,e){var n=t.getDay();return Un((t=n>=4||0===n?dn(t):dn.ceil(t)).getFullYear()%1e4,e,4)}function $r(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Un(e/60|0,"0",2)+Un(e%60,"0",2)}function zr(t,e){return Un(t.getUTCDate(),e,2)}function Or(t,e){return Un(t.getUTCHours(),e,2)}function Pr(t,e){return Un(t.getUTCHours()%12||12,e,2)}function Nr(t,e){return Un(1+In.count(zn(t),t),e,3)}function Gr(t,e){return Un(t.getUTCMilliseconds(),e,3)}function Kr(t,e){return Gr(t,e)+"000"}function Vr(t,e){return Un(t.getUTCMonth()+1,e,2)}function Rr(t,e){return Un(t.getUTCMinutes(),e,2)}function Hr(t,e){return Un(t.getUTCSeconds(),e,2)}function Wr(t){var e=t.getUTCDay();return 0===e?7:e}function Ur(t,e){return Un(Mn.count(zn(t)-1,t),e,2)}function jr(t){var e=t.getUTCDay();return e>=4||0===e?En(t):En.ceil(t)}function Yr(t,e){return t=jr(t),Un(En.count(zn(t),t)+(4===zn(t).getUTCDay()),e,2)}function qr(t){return t.getUTCDay()}function Xr(t,e){return Un(_n.count(zn(t)-1,t),e,2)}function Zr(t,e){return Un(t.getUTCFullYear()%100,e,2)}function Qr(t,e){return Un((t=jr(t)).getUTCFullYear()%100,e,2)}function Jr(t,e){return Un(t.getUTCFullYear()%1e4,e,4)}function ta(t,e){var n=t.getUTCDay();return Un((t=n>=4||0===n?En(t):En.ceil(t)).getUTCFullYear()%1e4,e,4)}function ea(){return"+0000"}function na(){return"%"}function ra(t){return+t}function aa(t){return Math.floor(+t/1e3)}Gn=function(t){var e=t.dateTime,n=t.date,r=t.time,a=t.periods,i=t.days,s=t.shortDays,o=t.months,l=t.shortMonths,c=Yn(a),u=qn(a),h=Yn(i),d=qn(i),g=Yn(s),f=qn(s),p=Yn(o),m=qn(o),y=Yn(l),v=qn(l),b={a:function(t){return s[t.getDay()]},A:function(t){return i[t.getDay()]},b:function(t){return l[t.getMonth()]},B:function(t){return o[t.getMonth()]},c:null,d:mr,e:mr,f:xr,g:Tr,G:Ir,H:yr,I:vr,j:br,L:Cr,m:wr,M:kr,p:function(t){return a[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:ra,s:aa,S:Sr,u:Ar,U:Mr,V:Br,w:Lr,W:Er,x:null,X:null,y:Fr,Y:Dr,Z:$r,"%":na},C={a:function(t){return s[t.getUTCDay()]},A:function(t){return i[t.getUTCDay()]},b:function(t){return l[t.getUTCMonth()]},B:function(t){return o[t.getUTCMonth()]},c:null,d:zr,e:zr,f:Kr,g:Qr,G:ta,H:Or,I:Pr,j:Nr,L:Gr,m:Vr,M:Rr,p:function(t){return a[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:ra,s:aa,S:Hr,u:Wr,U:Ur,V:Yr,w:qr,W:Xr,x:null,X:null,y:Zr,Y:Jr,Z:ea,"%":na},x={a:function(t,e,n){var r=g.exec(e.slice(n));return r?(t.w=f.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(t,e,n){var r=h.exec(e.slice(n));return r?(t.w=d.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(t,e,n){var r=y.exec(e.slice(n));return r?(t.m=v.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(t,e,n){var r=p.exec(e.slice(n));return r?(t.m=m.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(t,n,r){return S(t,e,n,r)},d:sr,e:sr,f:dr,g:nr,G:er,H:lr,I:lr,j:or,L:hr,m:ir,M:cr,p:function(t,e,n){var r=c.exec(e.slice(n));return r?(t.p=u.get(r[0].toLowerCase()),n+r[0].length):-1},q:ar,Q:fr,s:pr,S:ur,u:Zn,U:Qn,V:Jn,w:Xn,W:tr,x:function(t,e,r){return S(t,n,e,r)},X:function(t,e,n){return S(t,r,e,n)},y:nr,Y:er,Z:rr,"%":gr};function w(t,e){return function(n){var r,a,i,s=[],o=-1,l=0,c=t.length;for(n instanceof Date||(n=new Date(+n));++o<c;)37===t.charCodeAt(o)&&(s.push(t.slice(l,o)),null!=(a=Vn[r=t.charAt(++o)])?r=t.charAt(++o):a="e"===r?" ":"0",(i=e[r])&&(r=i(n,a)),s.push(r),l=o+1);return s.push(t.slice(l,o)),s.join("")}}function k(t,e){return function(n){var r,a,i=Nn(1900,void 0,1);if(S(i,t,n+="",0)!=n.length)return null;if("Q"in i)return new Date(i.Q);if("s"in i)return new Date(1e3*i.s+("L"in i?i.L:0));if(e&&!("Z"in i)&&(i.Z=0),"p"in i&&(i.H=i.H%12+12*i.p),void 0===i.m&&(i.m="q"in i?i.q:0),"V"in i){if(i.V<1||i.V>53)return null;"w"in i||(i.w=1),"Z"in i?(a=(r=Pn(Nn(i.y,0,1))).getUTCDay(),r=a>4||0===a?_n.ceil(r):_n(r),r=In.offset(r,7*(i.V-1)),i.y=r.getUTCFullYear(),i.m=r.getUTCMonth(),i.d=r.getUTCDate()+(i.w+6)%7):(a=(r=On(Nn(i.y,0,1))).getDay(),r=a>4||0===a?cn.ceil(r):cn(r),r=mn.offset(r,7*(i.V-1)),i.y=r.getFullYear(),i.m=r.getMonth(),i.d=r.getDate()+(i.w+6)%7)}else("W"in i||"U"in i)&&("w"in i||(i.w="u"in i?i.u%7:"W"in i?1:0),a="Z"in i?Pn(Nn(i.y,0,1)).getUTCDay():On(Nn(i.y,0,1)).getDay(),i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(a+5)%7:i.w+7*i.U-(a+6)%7);return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Pn(i)):On(i)}}function S(t,e,n,r){for(var a,i,s=0,o=e.length,l=n.length;s<o;){if(r>=l)return-1;if(37===(a=e.charCodeAt(s++))){if(a=e.charAt(s++),!(i=x[a in Vn?e.charAt(s++):a])||(r=i(t,n,r))<0)return-1}else if(a!=n.charCodeAt(r++))return-1}return r}return b.x=w(n,b),b.X=w(r,b),b.c=w(e,b),C.x=w(n,C),C.X=w(r,C),C.c=w(e,C),{format:function(t){var e=w(t+="",b);return e.toString=function(){return t},e},parse:function(t){var e=k(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=w(t+="",C);return e.toString=function(){return t},e},utcParse:function(t){var e=k(t+="",!0);return e.toString=function(){return t},e}}}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}),Kn=Gn.format,Gn.parse,Gn.utcFormat,Gn.utcParse;var ia=31536e6;function sa(t){return new Date(t)}function oa(t){return t instanceof Date?+t:+new Date(+t)}function la(t,e,n,r,a,i,s,o,l){var c=Fe(),u=c.invert,h=c.domain,d=l(".%L"),g=l(":%S"),f=l("%I:%M"),p=l("%I %p"),m=l("%a %d"),y=l("%b %d"),v=l("%B"),b=l("%Y"),C=[[s,1,1e3],[s,5,5e3],[s,15,15e3],[s,30,3e4],[i,1,6e4],[i,5,3e5],[i,15,9e5],[i,30,18e5],[a,1,36e5],[a,3,108e5],[a,6,216e5],[a,12,432e5],[r,1,864e5],[r,2,1728e5],[n,1,6048e5],[e,1,2592e6],[e,3,7776e6],[t,1,ia]];function x(o){return(s(o)<o?d:i(o)<o?g:a(o)<o?f:r(o)<o?p:e(o)<o?n(o)<o?m:y:t(o)<o?v:b)(o)}function w(e,n,r){if(null==e&&(e=10),"number"==typeof e){var a,i=Math.abs(r-n)/e,s=Bt((function(t){return t[2]})).right(C,i);return s===C.length?(a=Mt(n/ia,r/ia,e),e=t):s?(a=(s=C[i/C[s-1][2]<C[s][2]/i?s-1:s])[1],e=s[0]):(a=Math.max(Mt(n,r,e),1),e=o),e.every(a)}return e}return c.invert=function(t){return new Date(u(t))},c.domain=function(t){return arguments.length?h(Array.from(t,oa)):h().map(sa)},c.ticks=function(t){var e,n=h(),r=n[0],a=n[n.length-1],i=a<r;return i&&(e=r,r=a,a=e),e=(e=w(t,r,a))?e.range(r,a+1):[],i?e.reverse():e},c.tickFormat=function(t,e){return null==e?x:l(e)},c.nice=function(t){var e=h();return(t=w(t,e[0],e[e.length-1]))?h(function(t,e){var n,r=0,a=(t=t.slice()).length-1,i=t[r],s=t[a];return s<i&&(n=r,r=a,a=n,n=i,i=s,s=n),t[r]=e.floor(i),t[a]=e.ceil(s),t}(e,t)):c},c.copy=function(){return Ee(c,la(t,e,n,r,a,i,s,o,l))},c}class ca{static getScales(t,e,n){const r={key:null,value:null};return"band"===t.type?r.key=this.getScaleBand(t.domain,t.range,n,t.elementsAmount):"point"===t.type&&(r.key=this.getScalePoint(t.domain,t.range)),"linear"===e.type?r.value=this.getScaleLinear(e.domain,e.range):"datetime"===e.type&&(r.value=this.getScaleTime(e.domain,e.range)),r}static getScaleBandWidth(t){return t.bandwidth&&0!==t.bandwidth()?t.bandwidth():t.step?t.step():void 0}static getScaleStep(t){if(t.step)return t.step()}static getScaledValue(t,e){return t.bandwidth&&0!==t.bandwidth()?t(e)+this.getScaleBandWidth(t)/2:t(e)}static getScaleBand(t,e,n,r){const a=Ct().domain(t).range([e.start,e.end]),i=a.bandwidth();n.groupMinDistance<i&&(a.paddingInner(n.groupMinDistance/i),a.paddingOuter(n.groupMinDistance/i/2));let s=n.groupMinDistance;for(;a.bandwidth()>n.maxBarWidth*r+n.barDistance*(r-1)&&s<n.groupMaxDistance;)a.paddingInner(++s/i);let o=1;for(;a.step()>n.maxBarWidth*r+n.groupMaxDistance+n.barDistance*(r-1);)a.paddingOuter(++o/i);return a}static getScaleLinear(t,e){return je().domain(t).range([e.start,e.end])}static getScalePoint(t,e){return function(){return xt(Ct.apply(null,arguments).paddingInner(1))}().domain(t).range([e.start,e.end])}static getScaleTime(t,e){return function(){return yt.apply(la(Qe,tn,ln,mn,vn,Cn,wn,Sn,Kn).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}().domain(t).range([e.start,e.end]).nice()}}class ua{static getKeyValueByPointer(t,e,n,r,a,i){const s=ua.getKeyIndex(t,e,n,r,a,i);let o=a.domain()[s];return s>=a.domain().length&&(o=a.domain()[a.domain().length-1]),o}static getAttributes(t,e){return{x:t.left-5,y:t.top-5,width:e.width-t.left-t.right+10,height:e.height-t.top-t.bottom+10}}static getKeyIndex(t,e,n,r,a,i){const s="vertical"===e?0:1,o="vertical"===e?n.left:n.top,l=ca.getScaleStep(a);return"point"===i?this.getKeyIndexOfPoint(t,l,o,s):this.getKeyIndexOfBand(t,l,o,s,r,n,e,a)}static getKeyIndexOfPoint(t,e,n,r){const a=t[r]-n+e/2;return a<0?0:Math.floor(a/e)}static getKeyIndexOfBand(t,e,n,r,a,i,s,o){const l="vertical"===s?a.width-i.left-i.right:a.height-i.top-i.bottom,c=l-e*o.domain().length;if(t[r]-n-1<c/2)return 0;if(t[r]-n-1+c/2>l)return o.domain().length-1;const u=t[r]-c/2-n-1;return Math.floor(u/e)}}class ha{static renderOrGet(t,e,n){const r=ua.getAttributes(e,n);return this.renderBlock(t,r)}static get(t){return t.getSvg().select(`.${this.tipBoxClass}`)}static clearEvents(t){t.getSvg().select(`.${this.tipBoxClass}`).on("mousemove",null).on("mouseleave",null).on("click",null)}static renderBlock(t,e){let n=t.getSvg().select(`rect.${this.tipBoxClass}`);return n.empty()&&(n=t.getSvg().append("rect").attr("class",this.tipBoxClass).attr("x",e.x).attr("y",e.y).attr("width",e.width).attr("height",e.height).style("opacity",0)),n}}ha.tipBoxClass="tipbox";class da{static getRowsByKeys(t,e,n){return n.filter((n=>-1!==t.findIndex((t=>t===n[e]))))}static getKeysByIds(t,e,n){return this.extractKeysFromRows(e,this.getRowsByIds(t,n))}static extractKeysFromRows(t,e){return e.map((e=>e[t]))}static getRowsByIds(t,e){return e.filter((e=>-1!==t.findIndex((t=>t===e.$id))))}static getCssClassesLine(t){return"."+t.join(".")}static getCssClassesArray(t){return t.split(" ")}static getCssClassesWithElementIndex(t,e){return t.concat([`chart-element-${e}`])}static getRgbaFromRgb(t,e){return`rgba${t.substring(3,t.length-1)}, ${e})`}static getTranslateNumbers(t){if(!t)return[0,0];const e=t.substring(10,t.length-1).split(", ");return[parseFloat(e[0]),parseFloat(e[1])]}static getSumOfNumeric(t){return t.reduce(((t,e)=>t+e),0)}static parseFormattedToNumber(t,e){return parseFloat(t.replace(e,".").split(/\s/).join(""))}static calcDigitsAfterDot(t){const e=t.toString(),n=-1===e.lastIndexOf(".")?e.length:e.lastIndexOf(".")+1;return e.substring(n).length}static checkDomainsEquality(t,e){if(t.length!==e.length)return!1;let n=!0;return t.forEach(((t,r)=>{t!==e[r]&&(n=!1)})),n}static getValueOrZero(t){return Math.max(t,0)}static getPXValueFromString(t){return parseFloat(t)}static getKeyFieldValue(t,e,n){return n?t.data[e]:t[e]}static compareData(t,e,n){if(!(t&&e&&n&&t[n]&&e[n]&&t[n].length===e[n].length))return!1;const r=t[n],a=e[n];let i=!0;return r.forEach(((t,e)=>{for(let n in t)t[n]!==a[e][n]&&i&&(i=!1)})),i}}class ga{static getClassName(t){return this.prefix+t}static getId(t,e){return this.prefix+t+"-"+e}}function fa(t,e){let n=0;if(void 0===e)for(let e of t)(e=+e)&&(n+=e);else{let r=-1;for(let a of t)(a=+e(a,++r,t))&&(n+=a)}return n}ga.prefix="charts-";class pa{static formatField(t,e){return this.format(e,{type:t})}static setFormatFunction(t){this.format=t}}class ma{static render(t,e,n,r,a,i,s){const o={name:"Сумма",value:fa(e.map((t=>t[n.name]))),format:n.format};this.renderText(t,r,o,a,i,s)}static update(t,e,n,r){const a={name:"Сумма",value:fa(e.map((t=>t[n.name]))),format:n.format};this.updateText(t,a,r)}static renderText(t,e,n,r,a,i){if(e>50){const s=this.renderAggregatorObject(t,e,r),o=this.renderWrapper(s);o.append("div").attr("class",this.aggregatorValueClass).style("text-align","center").style("font-size",`${a}px`).text(pa.formatField(n.format,n.value)),o.append("div").attr("class",this.aggregatorNameClass).style("text-align","center").style("font-size","18px").text(n.name),this.reCalculateAggregatorFontSize(s.node().getBoundingClientRect().width,t,i)}}static updateText(t,e,n){const r=t.getSvg().select(`.${this.aggregatorObjectClass}`),a=this;t.getSvg().select(`.${this.aggregatorValueClass}`).interrupt().transition().duration(t.transitionManager.durations.chartUpdate).tween("text",(function(){const i=da.parseFormattedToNumber(this.textContent,","),s=da.calcDigitsAfterDot(e.value),o=me(i,e.value);return i=>{this.textContent=pa.formatField(e.format,o(i).toFixed(s)),a.reCalculateAggregatorFontSize(r.node().getBoundingClientRect().width,t,n)}}))}static reCalculateAggregatorFontSize(t,e,n){const r=e.getSvg().select(`.${this.aggregatorValueClass}`);let a=parseInt(r.style("font-size"));for(;r.node().getBoundingClientRect().width>t-2*n&&a>15;)r.style("font-size",(a-=2)+"px");for(;r.node().getBoundingClientRect().width<t-2*n&&a<60;)r.style("font-size",`${a+=2}px`)}static renderAggregatorObject(t,e,n){return t.getSvg().append("foreignObject").attr("class",this.aggregatorObjectClass).attr("transform-origin","center").attr("width",2*e).attr("height",2*e).attr("transform",`translate(${n.x-e}, ${n.y-e})`).style("pointer-events","none")}static renderWrapper(t){return t.append("xhtml:div").style("width","100%").style("height","100%").style("border-radius","50%").style("display","flex").style("flex-direction","column").style("justify-content","center").style("align-items","center")}}ma.aggregatorValueClass="aggregator-value",ma.aggregatorNameClass="aggregator-name",ma.aggregatorObjectClass="aggregator-object";const ya=Math.PI,va=2*ya,ba=1e-6,Ca=va-ba;function xa(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function wa(){return new xa}xa.prototype=wa.prototype={constructor:xa,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,a,i){this._+="C"+ +t+","+ +e+","+ +n+","+ +r+","+(this._x1=+a)+","+(this._y1=+i)},arcTo:function(t,e,n,r,a){t=+t,e=+e,n=+n,r=+r,a=+a;var i=this._x1,s=this._y1,o=n-t,l=r-e,c=i-t,u=s-e,h=c*c+u*u;if(a<0)throw new Error("negative radius: "+a);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(h>ba)if(Math.abs(u*o-l*c)>ba&&a){var d=n-i,g=r-s,f=o*o+l*l,p=d*d+g*g,m=Math.sqrt(f),y=Math.sqrt(h),v=a*Math.tan((ya-Math.acos((f+h-p)/(2*m*y)))/2),b=v/y,C=v/m;Math.abs(b-1)>ba&&(this._+="L"+(t+b*c)+","+(e+b*u)),this._+="A"+a+","+a+",0,0,"+ +(u*d>c*g)+","+(this._x1=t+C*o)+","+(this._y1=e+C*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,r,a,i){t=+t,e=+e,i=!!i;var s=(n=+n)*Math.cos(r),o=n*Math.sin(r),l=t+s,c=e+o,u=1^i,h=i?r-a:a-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>ba||Math.abs(this._y1-c)>ba)&&(this._+="L"+l+","+c),n&&(h<0&&(h=h%va+va),h>Ca?this._+="A"+n+","+n+",0,1,"+u+","+(t-s)+","+(e-o)+"A"+n+","+n+",0,1,"+u+","+(this._x1=l)+","+(this._y1=c):h>ba&&(this._+="A"+n+","+n+",0,"+ +(h>=ya)+","+u+","+(this._x1=t+n*Math.cos(a))+","+(this._y1=e+n*Math.sin(a))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};const ka=wa;function Sa(t){return function(){return t}}var Aa=Math.abs,Ma=Math.atan2,_a=Math.cos,Ba=Math.max,La=Math.min,Ea=Math.sin,Fa=Math.sqrt,Ta=1e-12,Da=Math.PI,Ia=Da/2,$a=2*Da;function za(t){return t>1?0:t<-1?Da:Math.acos(t)}function Oa(t){return t>=1?Ia:t<=-1?-Ia:Math.asin(t)}function Pa(t){return t.innerRadius}function Na(t){return t.outerRadius}function Ga(t){return t.startAngle}function Ka(t){return t.endAngle}function Va(t){return t&&t.padAngle}function Ra(t,e,n,r,a,i,s,o){var l=n-t,c=r-e,u=s-a,h=o-i,d=h*l-u*c;if(!(d*d<Ta))return[t+(d=(u*(e-i)-h*(t-a))/d)*l,e+d*c]}function Ha(t,e,n,r,a,i,s){var o=t-n,l=e-r,c=(s?i:-i)/Fa(o*o+l*l),u=c*l,h=-c*o,d=t+u,g=e+h,f=n+u,p=r+h,m=(d+f)/2,y=(g+p)/2,v=f-d,b=p-g,C=v*v+b*b,x=a-i,w=d*p-f*g,k=(b<0?-1:1)*Fa(Ba(0,x*x*C-w*w)),S=(w*b-v*k)/C,A=(-w*v-b*k)/C,M=(w*b+v*k)/C,_=(-w*v+b*k)/C,B=S-m,L=A-y,E=M-m,F=_-y;return B*B+L*L>E*E+F*F&&(S=M,A=_),{cx:S,cy:A,x01:-u,y01:-h,x11:S*(a/x-1),y11:A*(a/x-1)}}function Wa(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Ua(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function ja(t){return t}Array.prototype.slice;class Ya{static getThickness(t,e,n){return Math.min(e.width-n.left-n.right,e.height-n.bottom-n.top)>400?t.maxThickness:t.minThickness}static getArcCentroid(t,e,n,r){return this.getArcGeneratorObject(t,e,r).centroid(n)}static getArcGeneratorObject(t,e,n){const r=this.getOuterRadius(e,t);return this.getArcGenerator(r,r-n)}static getOuterRadius(t,e){return Math.min(e.width-t.left-t.right,e.height-t.top-t.bottom)/2}static getInnerRadius(t,e){return t-e}static getTranslate(t,e){return{x:(e.width-t.left-t.right)/2+t.left,y:(e.height-t.top-t.bottom)/2+t.top}}static getArcGenerator(t,e){return function(){var t=Pa,e=Na,n=Sa(0),r=null,a=Ga,i=Ka,s=Va,o=null;function l(){var l,c,u=+t.apply(this,arguments),h=+e.apply(this,arguments),d=a.apply(this,arguments)-Ia,g=i.apply(this,arguments)-Ia,f=Aa(g-d),p=g>d;if(o||(o=l=ka()),h<u&&(c=h,h=u,u=c),h>Ta)if(f>$a-Ta)o.moveTo(h*_a(d),h*Ea(d)),o.arc(0,0,h,d,g,!p),u>Ta&&(o.moveTo(u*_a(g),u*Ea(g)),o.arc(0,0,u,g,d,p));else{var m,y,v=d,b=g,C=d,x=g,w=f,k=f,S=s.apply(this,arguments)/2,A=S>Ta&&(r?+r.apply(this,arguments):Fa(u*u+h*h)),M=La(Aa(h-u)/2,+n.apply(this,arguments)),_=M,B=M;if(A>Ta){var L=Oa(A/u*Ea(S)),E=Oa(A/h*Ea(S));(w-=2*L)>Ta?(C+=L*=p?1:-1,x-=L):(w=0,C=x=(d+g)/2),(k-=2*E)>Ta?(v+=E*=p?1:-1,b-=E):(k=0,v=b=(d+g)/2)}var F=h*_a(v),T=h*Ea(v),D=u*_a(x),I=u*Ea(x);if(M>Ta){var $,z=h*_a(b),O=h*Ea(b),P=u*_a(C),N=u*Ea(C);if(f<Da&&($=Ra(F,T,P,N,z,O,D,I))){var G=F-$[0],K=T-$[1],V=z-$[0],R=O-$[1],H=1/Ea(za((G*V+K*R)/(Fa(G*G+K*K)*Fa(V*V+R*R)))/2),W=Fa($[0]*$[0]+$[1]*$[1]);_=La(M,(u-W)/(H-1)),B=La(M,(h-W)/(H+1))}}k>Ta?B>Ta?(m=Ha(P,N,F,T,h,B,p),y=Ha(z,O,D,I,h,B,p),o.moveTo(m.cx+m.x01,m.cy+m.y01),B<M?o.arc(m.cx,m.cy,B,Ma(m.y01,m.x01),Ma(y.y01,y.x01),!p):(o.arc(m.cx,m.cy,B,Ma(m.y01,m.x01),Ma(m.y11,m.x11),!p),o.arc(0,0,h,Ma(m.cy+m.y11,m.cx+m.x11),Ma(y.cy+y.y11,y.cx+y.x11),!p),o.arc(y.cx,y.cy,B,Ma(y.y11,y.x11),Ma(y.y01,y.x01),!p))):(o.moveTo(F,T),o.arc(0,0,h,v,b,!p)):o.moveTo(F,T),u>Ta&&w>Ta?_>Ta?(m=Ha(D,I,z,O,u,-_,p),y=Ha(F,T,P,N,u,-_,p),o.lineTo(m.cx+m.x01,m.cy+m.y01),_<M?o.arc(m.cx,m.cy,_,Ma(m.y01,m.x01),Ma(y.y01,y.x01),!p):(o.arc(m.cx,m.cy,_,Ma(m.y01,m.x01),Ma(m.y11,m.x11),!p),o.arc(0,0,u,Ma(m.cy+m.y11,m.cx+m.x11),Ma(y.cy+y.y11,y.cx+y.x11),p),o.arc(y.cx,y.cy,_,Ma(y.y11,y.x11),Ma(y.y01,y.x01),!p))):o.arc(0,0,u,x,C,p):o.lineTo(D,I)}else o.moveTo(0,0);if(o.closePath(),l)return o=null,l+""||null}return l.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+a.apply(this,arguments)+ +i.apply(this,arguments))/2-Da/2;return[_a(r)*n,Ea(r)*n]},l.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:Sa(+e),l):t},l.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:Sa(+t),l):e},l.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:Sa(+t),l):n},l.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:Sa(+t),l):r},l.startAngle=function(t){return arguments.length?(a="function"==typeof t?t:Sa(+t),l):a},l.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:Sa(+t),l):i},l.padAngle=function(t){return arguments.length?(s="function"==typeof t?t:Sa(+t),l):s},l.context=function(t){return arguments.length?(o=null==t?null:t,l):o},l}().innerRadius(e).outerRadius(t)}static getPieGenerator(t,e){return function(){var t=ja,e=Ua,n=null,r=Sa(0),a=Sa($a),i=Sa(0);function s(s){var o,l,c,u,h,d=(s=Wa(s)).length,g=0,f=new Array(d),p=new Array(d),m=+r.apply(this,arguments),y=Math.min($a,Math.max(-$a,a.apply(this,arguments)-m)),v=Math.min(Math.abs(y)/d,i.apply(this,arguments)),b=v*(y<0?-1:1);for(o=0;o<d;++o)(h=p[f[o]=o]=+t(s[o],o,s))>0&&(g+=h);for(null!=e?f.sort((function(t,n){return e(p[t],p[n])})):null!=n&&f.sort((function(t,e){return n(s[t],s[e])})),o=0,c=g?(y-d*b)/g:0;o<d;++o,m=u)l=f[o],u=m+((h=p[l])>0?h*c:0)+b,p[l]={data:s[l],index:o,value:h,startAngle:m,endAngle:u,padAngle:v};return p}return s.value=function(e){return arguments.length?(t="function"==typeof e?e:Sa(+e),s):t},s.sortValues=function(t){return arguments.length?(e=t,n=null,s):e},s.sort=function(t){return arguments.length?(n=t,e=null,s):n},s.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:Sa(+t),s):r},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Sa(+t),s):a},s.padAngle=function(t){return arguments.length?(i="function"==typeof t?t:Sa(+t),s):i},s}().padAngle(e).sort(null).value((e=>e[t]))}static mergeDataWithZeros(t,e,n){const r=new Set;e.forEach((t=>{r.add(t[n])}));var a;return a=[e,t.filter((t=>!r.has(t[n]))).map(((t,e,r)=>({keyField:r[e][n],valueField:0})))],Array.from(function*(t){for(const e of t)yield*e}(a))}}var qa={value:()=>{}};function Xa(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new Za(r)}function Za(t){this._=t}function Qa(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",r=t.indexOf(".");if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function Ja(t,e){for(var n,r=0,a=t.length;r<a;++r)if((n=t[r]).name===e)return n.value}function ti(t,e,n){for(var r=0,a=t.length;r<a;++r)if(t[r].name===e){t[r]=qa,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}Za.prototype=Xa.prototype={constructor:Za,on:function(t,e){var n,r=this._,a=Qa(t+"",r),i=-1,s=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++i<s;)if(n=(t=a[i]).type)r[n]=ti(r[n],t.name,e);else if(null==e)for(n in r)r[n]=ti(r[n],t.name,null);return this}for(;++i<s;)if((n=(t=a[i]).type)&&(n=Ja(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Za(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,a=new Array(n),i=0;i<n;++i)a[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,n=(r=this._[t]).length;i<n;++i)r[i].value.apply(e,a)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],a=0,i=r.length;a<i;++a)r[a].value.apply(e,n)}};const ei=Xa;var ni,ri,ai=0,ii=0,si=0,oi=0,li=0,ci=0,ui="object"==typeof performance&&performance.now?performance:Date,hi="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function di(){return li||(hi(gi),li=ui.now()+ci)}function gi(){li=0}function fi(){this._call=this._time=this._next=null}function pi(t,e,n){var r=new fi;return r.restart(t,e,n),r}function mi(){li=(oi=ui.now())+ci,ai=ii=0;try{!function(){di(),++ai;for(var t,e=ni;e;)(t=li-e._time)>=0&&e._call.call(null,t),e=e._next;--ai}()}finally{ai=0,function(){for(var t,e,n=ni,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:ni=e);ri=t,vi(r)}(),li=0}}function yi(){var t=ui.now(),e=t-oi;e>1e3&&(ci-=e,oi=t)}function vi(t){ai||(ii&&(ii=clearTimeout(ii)),t-li>24?(t<1/0&&(ii=setTimeout(mi,t-ui.now()-ci)),si&&(si=clearInterval(si))):(si||(oi=ui.now(),si=setInterval(yi,1e3)),ai=1,hi(mi)))}function bi(t,e,n){var r=new fi;return e=null==e?0:+e,r.restart((n=>{r.stop(),t(n+e)}),e,n),r}fi.prototype=pi.prototype={constructor:fi,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?di():+n)+(null==e?0:+e),this._next||ri===this||(ri?ri._next=this:ni=this,ri=this),this._call=t,this._time=n,vi()},stop:function(){this._call&&(this._call=null,this._time=1/0,vi())}};var Ci=ei("start","end","cancel","interrupt"),xi=[];function wi(t,e,n,r,a,i){var s=t.__transition;if(s){if(n in s)return}else t.__transition={};!function(t,e,n){var r,a=t.__transition;function i(l){var c,u,h,d;if(1!==n.state)return o();for(c in a)if((d=a[c]).name===n.name){if(3===d.state)return bi(i);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete a[c]):+c<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete a[c])}if(bi((function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(l))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,r=new Array(h=n.tween.length),c=0,u=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(r[++u]=d);r.length=u+1}}function s(e){for(var a=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(o),n.state=5,1),i=-1,s=r.length;++i<s;)r[i].call(t,a);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),o())}function o(){for(var r in n.state=6,n.timer.stop(),delete a[e],a)return;delete t.__transition}a[e]=n,n.timer=pi((function(t){n.state=1,n.timer.restart(i,n.delay,n.time),n.delay<=t&&i(t-n.delay)}),0,n.time)}(t,n,{name:e,index:r,group:a,on:Ci,tween:xi,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function ki(t,e){var n=Ai(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function Si(t,e){var n=Ai(t,e);if(n.state>3)throw new Error("too late; already running");return n}function Ai(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Mi(t,e){var n,r,a,i=t.__transition,s=!0;if(i){for(a in e=null==e?null:e+"",i)(n=i[a]).name===e?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete i[a]):s=!1;s&&delete t.__transition}}var _i,Bi=180/Math.PI,Li={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ei(t,e,n,r,a,i){var s,o,l;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(l=t*n+e*r)&&(n-=t*l,r-=e*l),(o=Math.sqrt(n*n+r*r))&&(n/=o,r/=o,l/=o),t*r<e*n&&(t=-t,e=-e,l=-l,s=-s),{translateX:a,translateY:i,rotate:Math.atan2(e,t)*Bi,skewX:Math.atan(l)*Bi,scaleX:s,scaleY:o}}function Fi(t,e,n,r){function a(t){return t.length?t.pop()+" ":""}return function(i,s){var o=[],l=[];return i=t(i),s=t(s),function(t,r,a,i,s,o){if(t!==a||r!==i){var l=s.push("translate(",null,e,null,n);o.push({i:l-4,x:me(t,a)},{i:l-2,x:me(r,i)})}else(a||i)&&s.push("translate("+a+e+i+n)}(i.translateX,i.translateY,s.translateX,s.translateY,o,l),function(t,e,n,i){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),i.push({i:n.push(a(n)+"rotate(",null,r)-2,x:me(t,e)})):e&&n.push(a(n)+"rotate("+e+r)}(i.rotate,s.rotate,o,l),function(t,e,n,i){t!==e?i.push({i:n.push(a(n)+"skewX(",null,r)-2,x:me(t,e)}):e&&n.push(a(n)+"skewX("+e+r)}(i.skewX,s.skewX,o,l),function(t,e,n,r,i,s){if(t!==n||e!==r){var o=i.push(a(i)+"scale(",null,",",null,")");s.push({i:o-4,x:me(t,n)},{i:o-2,x:me(e,r)})}else 1===n&&1===r||i.push(a(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,s.scaleX,s.scaleY,o,l),i=s=null,function(t){for(var e,n=-1,r=l.length;++n<r;)o[(e=l[n]).i]=e.x(t);return o.join("")}}}var Ti=Fi((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Li:Ei(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),Di=Fi((function(t){return null==t?Li:(_i||(_i=document.createElementNS("http://www.w3.org/2000/svg","g")),_i.setAttribute("transform",t),(t=_i.transform.baseVal.consolidate())?Ei((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Li)}),", ",")",")");function Ii(t,e){var n,r;return function(){var a=Si(this,t),i=a.tween;if(i!==n)for(var s=0,o=(r=n=i).length;s<o;++s)if(r[s].name===e){(r=r.slice()).splice(s,1);break}a.tween=r}}function $i(t,e,n){var r,a;if("function"!=typeof n)throw new Error;return function(){var i=Si(this,t),s=i.tween;if(s!==r){a=(r=s).slice();for(var o={name:e,value:n},l=0,c=a.length;l<c;++l)if(a[l].name===e){a[l]=o;break}l===c&&a.push(o)}i.tween=a}}function zi(t,e,n){var r=t._id;return t.each((function(){var t=Si(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Ai(t,r).value[e]}}function Oi(t,e){var n;return("number"==typeof e?me:e instanceof Xt?de:(n=Xt(e))?(e=n,de):Ce)(t,e)}function Pi(t){return function(){this.removeAttribute(t)}}function Ni(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Gi(t,e,n){var r,a,i=n+"";return function(){var s=this.getAttribute(t);return s===i?null:s===r?a:a=e(r=s,n)}}function Ki(t,e,n){var r,a,i=n+"";return function(){var s=this.getAttributeNS(t.space,t.local);return s===i?null:s===r?a:a=e(r=s,n)}}function Vi(t,e,n){var r,a,i;return function(){var s,o,l=n(this);if(null!=l)return(s=this.getAttribute(t))===(o=l+"")?null:s===r&&o===a?i:(a=o,i=e(r=s,l));this.removeAttribute(t)}}function Ri(t,e,n){var r,a,i;return function(){var s,o,l=n(this);if(null!=l)return(s=this.getAttributeNS(t.space,t.local))===(o=l+"")?null:s===r&&o===a?i:(a=o,i=e(r=s,l));this.removeAttributeNS(t.space,t.local)}}function Hi(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function Wi(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function Ui(t,e){var n,r;function a(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&Wi(t,a)),n}return a._value=e,a}function ji(t,e){var n,r;function a(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&Hi(t,a)),n}return a._value=e,a}function Yi(t,e){return function(){ki(this,t).delay=+e.apply(this,arguments)}}function qi(t,e){return e=+e,function(){ki(this,t).delay=e}}function Xi(t,e){return function(){Si(this,t).duration=+e.apply(this,arguments)}}function Zi(t,e){return e=+e,function(){Si(this,t).duration=e}}function Qi(t,e){if("function"!=typeof e)throw new Error;return function(){Si(this,t).ease=e}}function Ji(t,e,n){var r,a,i=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?ki:Si;return function(){var s=i(this,t),o=s.on;o!==r&&(a=(r=o).copy()).on(e,n),s.on=a}}var ts=ft.prototype.constructor;function es(t){return function(){this.style.removeProperty(t)}}function ns(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function rs(t,e,n){var r,a;function i(){var i=e.apply(this,arguments);return i!==a&&(r=(a=i)&&ns(t,i,n)),r}return i._value=e,i}function as(t){return function(e){this.textContent=t.call(this,e)}}function is(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&as(r)),e}return r._value=t,r}var ss=0;function os(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function ls(t){return ft().transition(t)}function cs(){return++ss}var us=ft.prototype;os.prototype=ls.prototype={constructor:os,select:function(t){var n=this._name,r=this._id;"function"!=typeof t&&(t=e(t));for(var a=this._groups,i=a.length,s=new Array(i),o=0;o<i;++o)for(var l,c,u=a[o],h=u.length,d=s[o]=new Array(h),g=0;g<h;++g)(l=u[g])&&(c=t.call(l,l.__data__,g,u))&&("__data__"in l&&(c.__data__=l.__data__),d[g]=c,wi(d[g],n,r,g,d,Ai(l,r)));return new os(s,this._parents,n,r)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=i(t));for(var r=this._groups,a=r.length,s=[],o=[],l=0;l<a;++l)for(var c,u=r[l],h=u.length,d=0;d<h;++d)if(c=u[d]){for(var g,f=t.call(c,c.__data__,d,u),p=Ai(c,n),m=0,y=f.length;m<y;++m)(g=f[m])&&wi(g,e,n,m,f,p);s.push(f),o.push(c)}return new os(s,o,e,n)},filter:function(t){"function"!=typeof t&&(t=s(t));for(var e=this._groups,n=e.length,r=new Array(n),a=0;a<n;++a)for(var i,o=e[a],l=o.length,c=r[a]=[],u=0;u<l;++u)(i=o[u])&&t.call(i,i.__data__,u,o)&&c.push(i);return new os(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,a=n.length,i=Math.min(r,a),s=new Array(r),o=0;o<i;++o)for(var l,c=e[o],u=n[o],h=c.length,d=s[o]=new Array(h),g=0;g<h;++g)(l=c[g]||u[g])&&(d[g]=l);for(;o<r;++o)s[o]=e[o];return new os(s,this._parents,this._name,this._id)},selection:function(){return new ts(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=cs(),r=this._groups,a=r.length,i=0;i<a;++i)for(var s,o=r[i],l=o.length,c=0;c<l;++c)if(s=o[c]){var u=Ai(s,e);wi(s,t,n,c,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new os(r,this._parents,t,n)},call:us.call,nodes:us.nodes,node:us.node,size:us.size,empty:us.empty,each:us.each,on:function(t,e){var n=this._id;return arguments.length<2?Ai(this.node(),n).on.on(t):this.each(Ji(n,t,e))},attr:function(t,e){var n=x(t),r="transform"===n?Di:Oi;return this.attrTween(t,"function"==typeof e?(n.local?Ri:Vi)(n,r,zi(this,"attr."+t,e)):null==e?(n.local?Ni:Pi)(n):(n.local?Ki:Gi)(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var r=x(t);return this.tween(n,(r.local?Ui:ji)(r,e))},style:function(t,e,n){var r="transform"==(t+="")?Ti:Oi;return null==e?this.styleTween(t,function(t,e){var n,r,a;return function(){var i=T(this,t),s=(this.style.removeProperty(t),T(this,t));return i===s?null:i===n&&s===r?a:a=e(n=i,r=s)}}(t,r)).on("end.style."+t,es(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var r,a,i;return function(){var s=T(this,t),o=n(this),l=o+"";return null==o&&(this.style.removeProperty(t),l=o=T(this,t)),s===l?null:s===r&&l===a?i:(a=l,i=e(r=s,o))}}(t,r,zi(this,"style."+t,e))).each(function(t,e){var n,r,a,i,s="style."+e,o="end."+s;return function(){var l=Si(this,t),c=l.on,u=null==l.value[s]?i||(i=es(e)):void 0;c===n&&a===u||(r=(n=c).copy()).on(o,a=u),l.on=r}}(this._id,t)):this.styleTween(t,function(t,e,n){var r,a,i=n+"";return function(){var s=T(this,t);return s===i?null:s===r?a:a=e(r=s,n)}}(t,r,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,rs(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(zi(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,is(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,a=Ai(this.node(),n).tween,i=0,s=a.length;i<s;++i)if((r=a[i]).name===t)return r.value;return null}return this.each((null==e?Ii:$i)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Yi:qi)(e,t)):Ai(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Xi:Zi)(e,t)):Ai(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(Qi(e,t)):Ai(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;Si(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,r=n._id,a=n.size();return new Promise((function(i,s){var o={value:s},l={value:function(){0==--a&&i()}};n.each((function(){var n=Si(this,r),a=n.on;a!==t&&((e=(t=a).copy())._.cancel.push(o),e._.interrupt.push(o),e._.end.push(l)),n.on=e})),0===a&&i()}))},[Symbol.iterator]:us[Symbol.iterator]};var hs,ds={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function gs(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}ft.prototype.interrupt=function(t){return this.each((function(){Mi(this,t)}))},ft.prototype.transition=function(t){var e,n;t instanceof os?(e=t._id,t=t._name):(e=cs(),(n=ds).time=di(),t=null==t?null:t+"");for(var r=this._groups,a=r.length,i=0;i<a;++i)for(var s,o=r[i],l=o.length,c=0;c<l;++c)(s=o[c])&&wi(s,t,e,c,o,n||gs(s,e));return new os(r,this._parents,t,e)};class fs{static getDotAttrs(t,e,n,r,a,i){const s={cx:null,cy:null};return"left"===t||"right"===t?(s.cx=t=>e.value(t[a])+n.left,s.cy=t=>ca.getScaledValue(e.key,da.getKeyFieldValue(t,r,i))+n.top):"bottom"!==t&&"top"!==t||(s.cx=t=>ca.getScaledValue(e.key,da.getKeyFieldValue(t,r,i))+n.left,s.cy=t=>e.value(t[a])+n.top),s}}pt.prototype.transition=ls;class ps{static render(t,e,n,r,a,i,s,o,l){const c=t.getChartGroup(l.index).selectAll(`.${this.markerDotClass}${da.getCssClassesLine(l.cssClasses)}.chart-index-${s}`).data(e).enter(),u=fs.getDotAttrs(n,r,a,i,o,l.isSegmented),h=c.append("circle");this.setAttrs(t,h,u),this.setClassesAndStyle(h,l.cssClasses,s,l.style.elementColors),l.markersOptions.show||h.classed(this.hiddenDotClass,!0)}static update(t,e,n,r,a,i,s,o,l){const c=t.getChartGroup(l.index).selectAll(`.${this.markerDotClass}${da.getCssClassesLine(l.cssClasses)}.chart-element-${s}`).data(e);c.exit().remove();const u=fs.getDotAttrs(n,r,a,i,o,l.isSegmented),h=c.enter().append("circle");this.setAttrs(t,h,u),this.setClassesAndStyle(h,l.cssClasses,s,l.style.elementColors),l.markersOptions.show||h.classed(this.hiddenDotClass,!0);const d="data-updating";c.interrupt(d).transition(d).duration(t.transitionManager.durations.chartUpdate).attr("cx",(t=>u.cx(t))).attr("cy",(t=>u.cy(t)))}static updateColors(t,e,n){const r=t.getChartGroup(e.index).selectAll(`.${this.markerDotClass}${da.getCssClassesLine(e.cssClasses)}.chart-element-${n}`);Ms.setChartElementColor(r,e.style.elementColors,n,"stroke")}static getMarkDotForChart(t,e){return t.getSvg().selectAll(`.${ps.markerDotClass}${da.getCssClassesLine(e)}`)}static setClassesAndStyle(t,e,n,r){Ms.setCssClasses(t,da.getCssClassesWithElementIndex(e,n)),Ms.setChartElementColor(t,r,n,"stroke")}static setAttrs(t,e,n){e.attr("class",this.markerDotClass).attr("cx",(t=>n.cx(t))).attr("cy",(t=>n.cy(t))).attr("r",this.dotRadius).style("stroke-width","3px").style("fill","white").style("clip-path",`url(#${t.getClipPathId()})`)}}function ms(t,e){if((a=t.length)>1)for(var n,r,a,i=1,s=t[e[0]],o=s.length;i<a;++i)for(r=s,s=t[e[i]],n=0;n<o;++n)s[n][1]+=s[n][0]=isNaN(r[n][1])?r[n][0]:r[n][1]}function ys(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function vs(t,e){return t[e]}function bs(t){const e=[];return e.key=t,e}function Cs(){var t=Sa([]),e=ys,n=ms,r=vs;function a(a){var i,s,o=Array.from(t.apply(this,arguments),bs),l=o.length,c=-1;for(const t of a)for(i=0,++c;i<l;++i)(o[i][c]=[0,+r(t,o[i].key,c,a)]).data=t;for(i=0,s=Wa(e(o));i<l;++i)o[s[i]].index=i;return n(o,s),o}return a.keys=function(e){return arguments.length?(t="function"==typeof e?e:Sa(Array.from(e)),a):t},a.value=function(t){return arguments.length?(r="function"==typeof t?t:Sa(+t),a):r},a.order=function(t){return arguments.length?(e=null==t?ys:"function"==typeof t?t:Sa(Array.from(t)),a):e},a.offset=function(t){return arguments.length?(n=null==t?ms:t,a):n},a}ps.markerDotClass=ga.getClassName("dot"),ps.hiddenDotClass=ga.getClassName("dot-hidden"),ps.dotRadius=4;class xs{static getLabelPosition(t,e,n,r,a){return a||this.getSpaceSizeForType("inside",t.width,n,r)<e&&this.getSpaceSizeForType("inside",t.width,n,r)<this.getSpaceSizeForType("outside",t.width,n,r)?"outside":"inside"}static getSpaceSizeForType(t,e,n,r){return"outside"===t?r.width-n.left-n.right-e-6:e-12}static getLabelAttrs(t,e,n,r,a){const i=this.getTextAnchor(e,n,r),s=this.getLabelAttrY(t.y,t.height);let o=this.getLabelAttrX(t,e,n,r);return"end"===i&&(o-=a),{x:o,y:s,textAnchor:i}}static getLabelField(t,e,n,r){return"key"===t?n:"value"===t?e[r]:null}static getLabelUnserveFlag(t){return t<12}static getLabelAttrX(t,e,n,r){return"left"===r?"outside"===n?t.x+t.width+6:"key"===e?t.x+6:t.x+t.width-6:"outside"===n?t.x-6:"key"===e?t.x+t.width-6:t.x+6}static getLabelAttrY(t,e){return t+e/2+1}static getTextAnchor(t,e,n){return"left"===n?"outside"===e||"key"===t?"start":"end":"outside"===e||"key"===t?"end":"start"}}class ws{static setLabelBlockAttrs(t,e,n=0){return new Promise((r=>{let a=e;n>0&&(a=a.interrupt().transition().duration(n).on("end",(()=>r("updated")))),a.attr("x",t.x).attr("y",t.y).attr("dominant-baseline","middle"),n<=0&&r("updated")}))}static cropText(t,e,n,r,a,i){let s;s=r?i.width-a.left-a.right:xs.getSpaceSizeForType(n,e.width,a,i),Ms.cropSvgLabels(t,s)}}class ks{static render(t,e,n,r,a,i,s,o,l,c){const u=this.renderGroup(t,da.getCssClassesWithElementIndex(c,l));Ms.setCssClasses(u,da.getCssClassesWithElementIndex(c,l)),e.each((t=>{this.renderLabel(u,n,t,r,a,i,s,o)}))}static restoreRemoved(t,e,n,r,a,i,s,o,l,c,u){const h=e.filter((e=>t.getChartBlock().selectAll(`.${ks.embeddedLabelsGroupClass}${da.getCssClassesLine(c)}.chart-element-${l}`).selectAll(`.${this.embeddedLabelClass}`).filter((t=>t[u]===e[u])).empty()));h.empty()||this.render(t,h,n,r,a,i,s,o,l,c)}static removeUnused(t,e,n,r){t.getChartBlock().selectAll(`.${ks.embeddedLabelsGroupClass}${da.getCssClassesLine(e)}.chart-element-${n}`).selectAll(`.${this.embeddedLabelClass}`).filter(((t,e)=>-1!==r.findIndex((t=>t===e)))).remove()}static update(t,e,n,r,a,i,s,o,l,c,u){const h=t.getChartBlock().selectAll(`.${ks.embeddedLabelsGroupClass}${da.getCssClassesLine(u)}.chart-element-${c}`);h.selectAll(`.${this.embeddedLabelBgClass}`).remove();const d=h.selectAll(`.${this.embeddedLabelClass}`).data(l);e.each(((e,l)=>{const c=this.getLabelByIndex(d,l,i,e);c&&this.updateLabel(t,e,n,r,a,s,o,c,h)}))}static raiseGroups(t){t.getChartBlock().selectAll(`.${this.embeddedLabelsGroupClass}`).raise()}static renderLabel(t,e,n,r,a,i,s,o){const l=t.append("text").datum(n);l.classed(ks.embeddedLabelClass,!0).style("pointer-events","none").text(pa.formatField(r.format,n[r.name]));const c={x:e.x(n),width:e.width(n),y:e.y(n),height:e.height(n)},u=xs.getLabelUnserveFlag(c.height),h=xs.getLabelPosition(c,l.node().getBBox().width,o,s,u),d=xs.getLabelAttrs(c,a,h,i,l.node().getBBox().width);"outside"===h&&(d.x=this.checkLabelToResetTextAnchor(d.x,l.node().getBBox().width,o,s,i),this.renderBackground(t,l,d)),ws.setLabelBlockAttrs(d,l),"inside"===h&&l.style("fill",this.innerLabelColor),ws.cropText(l,c,h,u,o,s)}static updateLabel(t,e,n,r,a,i,s,o,l){const c={x:r.x(e),width:r.width(e),y:r.y(e),height:r.height(e)},u=xs.getLabelUnserveFlag(c.height),h=xs.getLabelPosition(c,o.node().getBBox().width,a,s,u),d=xs.getLabelAttrs(c,i,h,n,o.node().getBBox().width);ws.cropText(o,c,h,u,a,s),"outside"===h&&(d.x=this.checkLabelToResetTextAnchor(d.x,o.node().getBBox().width,a,s,n),o.style("fill",this.outerLabelColor)),ws.setLabelBlockAttrs(d,o,t.transitionManager.durations.chartUpdate).then((()=>{"outside"===h&&this.renderBackground(l,o,d),"inside"===h&&o.style("fill",this.innerLabelColor)}))}static checkLabelToResetTextAnchor(t,e,n,r,a){return"left"===a?t+e>r.width-n.right?r.width-n.right-e:t:"right"===a?t<n.left?n.left:t:void 0}static renderGroup(t,e){let n=t.getChartBlock().select(`.${this.embeddedLabelsGroupClass}${da.getCssClassesLine(e)}`).raise();return n.empty()&&(n=t.getChartBlock().append("g").attr("class",this.embeddedLabelsGroupClass).raise()),n}static renderBackground(t,e,n){t.append("rect").attr("class",this.embeddedLabelBgClass).attr("x",n.x).attr("y",n.y-e.node().getBBox().height/2).attr("width",e.node().getBBox().width).attr("height",e.node().getBBox().height).style("fill","rgba(255, 255, 255, 0.8)").lower()}static getLabelByIndex(t,e,n,r){let a;return t.each((function(t,i){e===i&&(a=pt(this).datum(r).text(pa.formatField(n.format,t[n.name])))})),a}}ks.embeddedLabelsGroupClass="embedded-labels-group",ks.embeddedLabelClass="embedded-label",ks.embeddedLabelBgClass="embedded-label-bg",ks.innerLabelColor="#FFFFFF",ks.outerLabelColor="#000000";class Ss{static getGroupedBarAttrs(t,e,n,r,a,i,s,o,l){const c={x:null,y:null,width:null,height:null};return this.setBarAttrsByKey(c,t,e.key,n,r,s,o,l,!1),this.setGroupedBarAttrsByValue(c,t,n,e.value,a,i),c}static getStackedBarAttr(t,e,n,r,a,i,s,o){const l={x:null,y:null,width:null,height:null};return this.setBarAttrsByKey(l,t,e.key,n,r,i,s,o,!0),this.setSegmentedBarAttrsByValue(l,t,e.value,n,a),l}static getBarsInGroupAmount(t){let e=[];return t.forEach((t=>{"bar"===t.type&&t.isSegmented?e.push(1):"bar"===t.type&&e.push(t.data.valueFields.length)})),e}static getBarIndex(t,e){if(t.length<2)return 0;let n=0;return t.forEach(((t,r)=>{r<e&&(n+=t)})),n}static setBarAttrsByKey(t,e,n,r,a,i,s,o,l){const c=(ca.getScaleBandWidth(n)-o.barDistance*(s-1))/s,u=c>o.maxBarWidth?o.maxBarWidth:c,h=(c-u)*s/2,d=u*i+o.barDistance*i+h;"top"!==e&&"bottom"!==e||(t.x=t=>n(da.getKeyFieldValue(t,a,l))+r.left+d,t.width=t=>u),"left"!==e&&"right"!==e||(t.y=t=>n(da.getKeyFieldValue(t,a,l))+r.top+d,t.height=t=>u)}static setGroupedBarAttrsByValue(t,e,n,r,a,i){"top"===e&&(t.y=t=>n.top,t.height=t=>da.getValueOrZero(r(t[a]))),"bottom"===e&&(t.y=t=>r(t[a])+n.top,t.height=t=>da.getValueOrZero(i.height-n.top-n.bottom-r(t[a]))),"left"===e&&(t.x=t=>n.left+1,t.width=t=>da.getValueOrZero(r(t[a]))),"right"===e&&(t.x=t=>r(t[a])+n.left,t.width=t=>da.getValueOrZero(i.width-n.left-n.right-r(t[a])))}static setSegmentedBarAttrsByValue(t,e,n,r,a){"top"===e&&(t.y=t=>r.top+n(t[0]),t.height=t=>da.getValueOrZero(n(t[1]-t[0]))),"bottom"===e&&(t.y=t=>n(t[1])+r.top,t.height=t=>da.getValueOrZero(a.height-r.top-r.bottom-n(t[1]-t[0]))),"left"===e&&(t.x=t=>r.left+n(t[0])+1,t.width=t=>da.getValueOrZero(n(t[1]-t[0]))),"right"===e&&(t.x=t=>n(t[1])+r.left,t.width=t=>da.getValueOrZero(a.width-r.left-r.right-n(t[1]-t[0])))}}class As{static render(t,e,n,r,a,i,s,o,l,c,u,h){u?this.renderSegmented(t,e,n,r,a,i,s,c,o,h,l):this.renderGrouped(t,e,n,r,a,i,s,c,o,h,l)}static update(t,e,n,r,a,i,s,o,l,c,u,h){let d;return d=h?this.updateSegmented(t,e,n,r,a,i,s,o,l,c,u):this.updateGrouped(t,e,n,r,a,i,s,o,l,c,u),d}static updateColors(t,e){e.data.valueFields.forEach(((n,r)=>{const a=t.getChartGroup(e.index).selectAll(`.${this.barItemClass}${da.getCssClassesLine(e.cssClasses)}${da.getCssClassesLine(da.getCssClassesWithElementIndex(e.cssClasses,r))}`);Ms.setChartStyle(a,e.style,r,"fill")}))}static getAllBarsForChart(t,e){return t.getSvg().selectAll(`rect.${this.barItemClass}${da.getCssClassesLine(e)}`)}static renderGrouped(t,e,n,r,a,i,s,o,l,c,u){s.data.valueFields.forEach(((h,d)=>{const g=t.getChartGroup(s.index).selectAll(`.${this.barItemClass}${da.getCssClassesLine(s.cssClasses)}${da.getCssClassesLine(da.getCssClassesWithElementIndex(s.cssClasses,d))}`).data(n).enter().append("rect").attr("class",this.barItemClass).style("clip-path",`url(#${t.getClipPathId()})`),f=Ss.getGroupedBarAttrs(i,e,a,r.name,h.name,l,Ss.getBarIndex(o,s.index-c)+d,fa(o),u);this.fillBarAttrs(g,f),Ms.setCssClasses(g,da.getCssClassesWithElementIndex(s.cssClasses,d)),Ms.setChartStyle(g,s.style,d,"fill"),this.setInitialAttrsInfo(g,i,u),"none"!==s.embeddedLabels&&ks.render(t,g,f,xs.getLabelField(s.embeddedLabels,s.data.valueFields,r,d),s.embeddedLabels,i,l,a,d,s.cssClasses)}))}static renderSegmented(t,e,n,r,a,i,s,o,l,c,u){const h=Cs().keys(s.data.valueFields.map((t=>t.name)))(n);let d=t.getChartGroup(s.index).selectAll(`g.${this.barSegmentGroupClass}${da.getCssClassesLine(s.cssClasses)}`).data(h);d.empty()&&(d=d.data(h).enter().append("g").attr("class",this.barSegmentGroupClass));const g=d.selectAll(`rect${da.getCssClassesLine(s.cssClasses)}`).data((t=>t)).enter().append("rect").attr("class",this.barItemClass).style("clip-path",`url(#${t.getClipPathId()})`),f=Ss.getStackedBarAttr(i,e,a,r.name,l,Ss.getBarIndex(o,s.index)-c,fa(o),u);this.fillBarAttrs(g,f),this.setInitialAttrsInfo(g,i,u),Ms.setCssClasses(d,s.cssClasses),Ms.setCssClasses(g,s.cssClasses);const p=this;d.each((function(t,e){Ms.setCssClasses(pt(this).selectAll(`rect${da.getCssClassesLine(s.cssClasses)}`),da.getCssClassesWithElementIndex(s.cssClasses,e)),p.setSegmentColor(pt(this).selectAll(da.getCssClassesLine(s.cssClasses)),s.style.elementColors,e)}))}static updateGrouped(t,e,n,r,a,i,s,o,l,c,u){const h=[];return i.data.valueFields.forEach(((d,g)=>{const f=[];t.getChartGroup(i.index).selectAll(`.${this.barItemClass}${da.getCssClassesLine(i.cssClasses)}.chart-element-${g}`).filter(((t,n)=>-1===e.findIndex((e=>e[l.name]===t[l.name]))&&(f.push(n),!0))).transition().duration(t.transitionManager.durations.elementFadeOut).style("opacity",0).remove();const p=t.getChartGroup(i.index).selectAll(`.${this.barItemClass}${da.getCssClassesLine(i.cssClasses)}.chart-element-${g}`).filter((t=>-1!==e.findIndex((e=>e[l.name]===t[l.name])))).style("opacity",1).data(e),m=p.enter().append("rect").attr("class",this.barItemClass).style("clip-path",`url(#${t.getClipPathId()})`),y=Ss.getGroupedBarAttrs(a,n,r,l.name,d.name,s,Ss.getBarIndex(o,i.index)+g-c,fa(o),u),v=this.fillBarAttrs(p,y,t.transitionManager.durations.chartUpdate).then((()=>{p.style("opacity",null),this.setInitialAttrsInfo(p,a,u)}));this.fillBarAttrs(m,y),h.push(v),this.setInitialAttrsInfo(m,a,u),Ms.setCssClasses(m,da.getCssClassesWithElementIndex(i.cssClasses,g)),Ms.setChartStyle(m,i.style,g,"fill"),"none"!==i.embeddedLabels&&(ks.removeUnused(t,i.cssClasses,g,f),ks.update(t,p,a,y,r,d,i.embeddedLabels,s,e,g,i.cssClasses),m.empty()||ks.render(t,m,y,d,i.embeddedLabels,a,s,r,g,i.cssClasses),ks.restoreRemoved(t,p,y,d,i.embeddedLabels,a,s,r,g,i.cssClasses,l.name))})),h}static updateSegmented(t,e,n,r,a,i,s,o,l,c,u){const h=Cs().keys(i.data.valueFields.map((t=>t.name)))(e);t.getChartGroup(i.index).selectAll(`.${this.barItemClass}${da.getCssClassesLine(i.cssClasses)}`).filter((t=>-1===e.findIndex((e=>e[l.name]===t.data[l.name])))).transition().duration(t.transitionManager.durations.elementFadeOut).style("opacity",0).remove();const d=t.getChartGroup(i.index).selectAll(`g.${this.barSegmentGroupClass}${da.getCssClassesLine(i.cssClasses)}`).data(h),g=d.selectAll(`.${this.barItemClass}${da.getCssClassesLine(i.cssClasses)}`).filter((t=>-1!==e.findIndex((e=>e[l.name]===t.data[l.name])))).style("opacity",1).data((t=>t)),f=g.enter().append("rect").attr("class",this.barItemClass).style("clip-path",`url(#${t.getClipPathId()})`),p=Ss.getStackedBarAttr(a,n,r,l.name,s,Ss.getBarIndex(o,i.index)-c,fa(o),u),m=this.fillBarAttrs(g,p,t.transitionManager.durations.chartUpdate).then((()=>{this.setInitialAttrsInfo(g,a,u),g.style("opacity",null)}));this.fillBarAttrs(f,p),this.setInitialAttrsInfo(f,a,u),Ms.setCssClasses(f,i.cssClasses);const y=this;return d.each((function(t,e){Ms.setCssClasses(pt(this).selectAll(`rect${da.getCssClassesLine(i.cssClasses)}`),da.getCssClassesWithElementIndex(i.cssClasses,e)),y.setSegmentColor(pt(this).selectAll(da.getCssClassesLine(i.cssClasses)),i.style.elementColors,e)})),[m]}static fillBarAttrs(t,e,n=0){return new Promise((r=>{if(0===t.size())return void r("");let a=t;n>0&&(a=a.interrupt().transition().duration(n).on("end",(()=>r("")))),a.attr("x",(t=>e.x(t))).attr("y",(t=>e.y(t))).attr("height",(t=>e.height(t))).attr("width",(t=>e.width(t))),n<=0&&r("")}))}static setSegmentColor(t,e,n){t.style("fill",e[n%e.length])}static setInitialAttrsInfo(t,e,n){t.each((function(){const t=Ms.getSelectionNumericAttr(pt(this),"width"),r=Ms.getSelectionNumericAttr(pt(this),"height"),a="left"===e||"right"===e?"horizontal":"vertical";let i=.06*("vertical"===a?t:r);i=i>n.barDistance/2?n.barDistance/2:i,this.attrs={x:Ms.getSelectionNumericAttr(pt(this),"x"),y:Ms.getSelectionNumericAttr(pt(this),"y"),width:t,height:r,orient:a,scaleSize:i}}))}}As.barItemClass="bar-item",As.barItemCloneClass="bar-item-clone",As.barSegmentGroupClass="bar-segment-group",function(t){t[t.Include=0]="Include",t[t.Exclude=1]="Exclude"}(hs||(hs={}));class Ms{static setCssClasses(t,e){e.forEach((e=>{t.classed(e,!0)}))}static get2DChartElements(t,e){return"line"===e.type||"area"===e.type?ps.getMarkDotForChart(t,e.cssClasses):As.getAllBarsForChart(t,e.cssClasses)}static getCssPropertyValue(t,e){return window.getComputedStyle(t).getPropertyValue(e)}static getSelectionNumericAttr(t,e){return parseFloat(t.attr(e))}static setChartStyle(t,e,n,r){this.setChartElementColor(t,e.elementColors,n,r),this.setChartOpacity(t,e.opacity)}static setChartElementColor(t,e,n,r){t.style(r,e[n%e.length])}static cropSvgLabels(t,e){t.nodes().forEach((t=>{if(t.getBBox().width>e){const n=t.textContent;let r=n.length;for(;t.getBBox().width>e&&r>0;)t.textContent=n.substring(0,--r)+"...";0===r&&(t.textContent="")}}))}static getChartElementsByKeys(t,e,n,r,a=hs.Include){return t.filter((t=>{let i;return i=e?r.findIndex((e=>e===t.data[n])):r.findIndex((e=>e===t[n])),a===hs.Exclude?-1===i:-1!==i}))}static setChartOpacity(t,e){t.attr("opacity",e)}}class _s{static render(t,e,n,r,a,i){const s=Ya.getOuterRadius(n,a),o=Ya.getThickness(i,a,n),l=Ya.getInnerRadius(s,o),c=Ya.getArcGenerator(s,l),u=Ya.getPieGenerator(r.data.valueField.name,i.padAngle),h=Ya.getTranslate(n,a),d=t.getSvg().append("g").attr("class",this.donutBlockClass).attr("x",h.x).attr("y",h.y).attr("transform",`translate(${h.x}, ${h.y})`);this.renderNewArcItems(c,u,d,e,r),this.renderClonesG(d),ma.render(t,e,r.data.valueField,l,h,o,i.aggregatorPad)}static update(t,e,n,r,a,i,s){const o=Ya.getOuterRadius(n,a),l=Ya.getThickness(i,a,n),c=Ya.getInnerRadius(o,l),u=Ya.getArcGenerator(o,c),h=Ya.getPieGenerator(r.data.valueField.name,i.padAngle),d=t.getSvg().selectAll(`.${this.donutBlockClass}`).selectAll("path").data().map((t=>t.data)),g=Ya.mergeDataWithZeros(e,d,s),f=Ya.mergeDataWithZeros(d,e,s),p=t.getSvg().select(`.${this.donutBlockClass}`);this.renderNewArcItems(u,h,p,g,r),this.setElementsColor(this.getAllArcGroups(t),r.style.elementColors);const m=this.getAllArcGroups(t).data(h(f)).select("path"),y=this.getAllArcGroups(t).data(h(e));return new Promise((e=>{this.raiseClonesG(t),m.interrupt().transition().duration(t.transitionManager.durations.chartUpdate).on("end",(()=>{y.exit().remove(),e("updated")})).attrTween("d",(function(t){const e=we(this._currentData,t);return t=>(this._currentData=e(t),u(this._currentData))}))}))}static updateColors(t,e){this.setElementsColor(this.getAllArcGroups(t),e.style.elementColors)}static getAllArcGroups(t){return t.getSvg().selectAll(`.${this.arcItemClass}`)}static getAllArcClones(t){return t.getSvg().selectAll(`.${_s.arcCloneClass}`)}static getAllArcShadows(t){return t.getSvg().selectAll(`.${this.arcShadowClass}`)}static renderNewArcItems(t,e,n,r,a){const i=n.selectAll(`.${this.arcItemClass}`).data(e(r)).enter().append("g").attr("class",this.arcItemClass),s=i.append("path").attr("d",t).attr("class",this.arcPathClass).each((function(t){this._currentData=t}));Ms.setCssClasses(s,a.cssClasses),this.setElementsColor(i,a.style.elementColors)}static setElementsColor(t,e){t.select("path").style("fill",((t,n)=>e[n%e.length]))}static renderClonesG(t){t.append("g").attr("class",this.arcShadowsGroupClass).raise(),t.append("g").attr("class",this.arcClonesGroupClass).raise()}static raiseClonesG(t){t.getSvg().select(`.${this.donutBlockClass}`).select(`.${this.arcShadowsGroupClass}`).raise(),t.getSvg().select(`.${this.donutBlockClass}`).select(`.${this.arcClonesGroupClass}`).raise()}}_s.donutBlockClass="donut-block",_s.arcPathClass="arc-path",_s.arcItemClass="arc",_s.arcHighlightedClass="arc-highlighted",_s.arcClonesGroupClass="arc-clones",_s.arcShadowsGroupClass="arc-shadow-clones",_s.arcCloneClass="arc-clone",_s.arcShadowClass="arc-shadow-clone";class Bs{static getSum(t){return t.reduce(((t,e)=>t+e),0)}static getMinAndMaxOfIntervalData(t,e,n){let r=t[e][0][n.data.valueField1.name],a=t[e][0][n.data.valueField1.name];const i=t[e],s=n.data.valueField1.name,o=n.data.valueField2.name;return i.forEach((t=>{t[s]>a&&(a=t[s]),t[s]<r&&(r=t[s]),t[o]>a&&(a=t[o]),t[o]<r&&(r=t[o])})),[r,a]}static getUniqueValues(t){return t.filter(((t,e,n)=>n.indexOf(t)===e))}static getStringScore(t){let e=0;for(let n=0;n<t.length;n++)t[n].toUpperCase()===t[n]&&parseFloat(t[n]).toString()!==t[n]?e+=1:e+=.74;return e}}var Ls=n(792);class Es{static getCssClasses(t){return[`chart-${t}`]}static get2DChartStyle(t,e,n,r,a,i){const s=this.getStartIndex(r,n),o=this.checkAndGet(i.baseColors),l=this.getColorSet(o,Bs.getSum(n));return{elementColors:this.getChartColors(l,n[r],s,e),opacity:this.getChartOpacity(t,e,n[r],a)}}static getChartStyle(t,e){const n=this.checkAndGet(e.baseColors);return{elementColors:this.getColorSet(n,t),opacity:1}}static getChartColors(t,e,n,r){const a=t.slice(n,n+e);if("line"!==r)return a;for(let t=0;t<a.length;t++)a[t]=Ls.mix(a[t],"white",.2).saturate(3).hex();return a}static getChartOpacity(t,e,n,r){return"area"===e&&(t>1||n>1)&&!r?.5:1}static getColorSet(t,e){return Ls.scale(t).mode("rgb").domain([0,.55,.75,1]).colors(e<=1?2:e)}static checkAndGet(t){return 0===t.length||t.filter((t=>"rgba(0, 0, 0, 0)"===t||!t)).length>0?this.standartColors:t}static getStartIndex(t,e){let n=0;for(let r=0;r<t;r++)n+=e[r];return n}static resetColor(t,e){let n=Ls(e).luminance(.5).saturate(1.5+.5*Math.floor(t/this.safeColorsAmount));return n=Ls(n).set("hsv.h",Ls(n).get("hsv.h")+4*Math.floor(t/this.safeColorsAmount)),n.hex()}}Es.safeColorsAmount=8,Es.standartColors=["#209DE3","#FF3131","#FFBA00","#20B078"];class Fs{static getTitleModel(){return{margin:{bottom:0,left:20,right:20,top:20},size:20,pad:0}}}class Ts{static getLegendHeight(t,e,n,r,a,i){const s=document.createElement("div");s.style.opacity="0",s.style.display="flex","column"===a&&(s.style.flexDirection="column"),s.style.position="absolute",s.style.width=e-n-r+"px",t.forEach((t=>{const e=document.createElement("div"),n=document.createElement("span"),r=document.createElement("span");e.classList.add(Is.getLegendItemClass(a)),"column"===a&&(e.style.whiteSpace="nowrap",e.classList.add(Is.getMarginClass(i))),n.classList.add(Ks.legendColor),r.classList.add(Ks.legendLabel),r.textContent=t,e.append(n,r),s.append(e)})),document.body.append(s);const o=s.offsetHeight;return s.remove(),o}static getLegendItemWidth(t){const e=document.createElement("div");e.style.opacity="0";const n=document.createElement("span"),r=document.createElement("span");e.style.display="inline-block",e.classList.add(Ks.legendItem),n.classList.add(Ks.legendColor),r.classList.add(Ks.legendLabel),r.textContent=t,e.append(n,r),document.body.append(e);const a=e.getBoundingClientRect().width+parseFloat(window.getComputedStyle(e,null).getPropertyValue("margin-left"))+parseFloat(window.getComputedStyle(e,null).getPropertyValue("margin-right"));return e.remove(),a}static findElementsAmountByLegendSize(t,e,n,r){const a=document.createElement("div");a.style.opacity="0",a.style.display="flex",a.style.flexDirection="column",a.style.position="absolute",a.style.width=n+"px",document.body.append(a);let i=0;for(let n=0;n<t.length;n++){const s=document.createElement("div"),o=document.createElement("span"),l=document.createElement("span");if(s.classList.add("legend-item-row"),"bottom"===e?l.classList.add("legend-label-nowrap","mt-10"):s.classList.add("mt-15"),o.classList.add(Ks.legendColor),l.classList.add(Ks.legendLabel),l.textContent=t[n],s.append(o,l),a.append(s),a.offsetHeight>r){s.remove(),i=r-a.offsetHeight>=15&&"bottom"!==e?n:n-1;break}i++}return a.remove(),i<0?0:i}}const Ds=260;class Is{static getLegendSize(t,e,n,r,a,i){return"left"===e||"right"===e?this.getLegendWidth(n,r):"2d"===t||"interval"===t?Ts.getLegendHeight(n,a.width,i.coordinate[e].margin.left,i.coordinate[e].margin.right,"row",e):"polar"===t?Ts.getLegendHeight(n,a.width,i.coordinate[e].margin.left,i.coordinate[e].margin.right,"column",e):void 0}static getBaseLegendBlockModel(t){const e=Fs.getTitleModel();return{coordinate:{left:{size:0,margin:{top:20,bottom:20,left:20,right:0},pad:0},bottom:{size:0,margin:{top:0,bottom:20,left:20,right:20},pad:0},right:{size:0,margin:{top:e.pad+e.margin.top+e.size,bottom:20,left:0,right:20},pad:0},top:{size:0,margin:{top:20,bottom:0,left:20,right:20},pad:e.pad+e.margin.top+e.size}},standartTooltip:"polar"!==t}}static getLegendModel(t,e,n,r){let a="off";return e&&("2d"===t||"interval"===t?a="top":"polar"===t&&(a=n.width-r.left-r.right<Ds?"bottom":"right")),{position:a}}static getLegendItemClass(t){return"column"===t?"legend-item-row":"legend-item-inline"}static getMarginClass(t){return"right"===t?"mt-15":"mt-10"}static getLegendWidth(t,e){let n="",r=0;t.forEach((t=>{Bs.getStringScore(t)>r&&(n=t,r=Bs.getStringScore(t))}));const a=Ts.getLegendItemWidth(n+"?");return a>e?e:a}}var $s,zs;!function(t){t[t.Key=0]="Key",t[t.Value=1]="Value"}($s||($s={}));class Os{static getScaleKey(t,e,n,r,a,i){return{domain:t,range:{start:0,end:Os.getRangePeek($s.Key,e,n,r)},type:Os.getScaleKeyType(a),elementsAmount:this.getElementsAmount(i)}}static getScaleLinear(t,e,n,r){return{domain:Os.getLinearDomain(t.axis.value.domain,e,t),range:{start:0,end:Os.getRangePeek($s.Value,t.orientation,n,r)},type:Os.getScaleValueType(t.charts)}}static getRangePeek(t,e,n,r){return"vertical"===e?t===$s.Key?r.width-n.left-n.right:r.height-n.top-n.bottom:t===$s.Key?r.height-n.top-n.bottom:r.width-n.left-n.right}static getDateValueDomain(t,e,n,r){const a=Bs.getMinAndMaxOfIntervalData(t,r,e);let i=a[0],s=a[1];return"start"===n?[i,s]:[s,i]}static getLinearDomain(t,e,n){let r,a;return r=-1===t.start?0:t.start,a=-1===t.end?this.getScaleMaxValue(n.charts,n.data.dataSource,e):t.end,"start"===n.axis.key.position?[r,a]:[a,r]}static getScaleKeyType(t){return-1===t.findIndex((t=>"bar"===t.type))?"point":"band"}static getScaleValueType(t){return-1!==t.findIndex((t=>"gantt"===t.type))?"datetime":"linear"}static getElementsAmount(t){if(0===t.length)return 1;let e=0;return t.forEach((t=>{t.isSegmented?e+=1:e+=t.data.valueFields.length})),e}static getScaleMaxValue(t,e,n){let r=0;return t.forEach((t=>{n[e].forEach((e=>{let n=0;t.data.valueFields.forEach((r=>{t.isSegmented?n+=e[r.name]:e[r.name]>n&&(n=e[r.name])})),r<n&&(r=n)}))})),r}}class Ps{static getOptions(t,e,n,r,a){const i=t.options;return{legend:Is.getLegendModel(t.options.type,t.options.legend.show,t.canvas.size,n),title:i.title,selectable:!!i.selectable,orient:i.orientation,scale:{key:Os.getScaleKey(r.allowableKeys,i.orientation,n,t.canvas.size,i.charts,this.getChartsByType(i.charts,"bar")),value:Os.getScaleLinear(i,a,n,t.canvas.size)},axis:{key:js.getKeyAxis(i.charts,a,i.data,i.orientation,i.axis.key,e.canvas.axisLabel,n,t.canvas.size,e.elementsOptions.tooltip),value:js.getValueAxis(i.orientation,i.axis.value,e.canvas.axisLabel,n,t.canvas.size)},type:i.type,data:Object.assign({},i.data),charts:this.getChartsModel(i.charts,i.orientation,e.chartStyle),additionalElements:this.getAdditionalElements(i),tooltip:i.tooltip}}static getChartsEmbeddedLabelsFlag(t,e){return-1===t.findIndex((t=>t.isSegmented||"bar"!==t.type))&&"horizontal"===e&&t.length===this.findChartsWithEmbeddedKeyLabels(t).length}static sortCharts(t){const e=["area","bar","line"];t.sort(((t,n)=>e.indexOf(t.type)-e.indexOf(n.type)))}static getChartsModel(t,e,n){this.sortCharts(t);const r=[];return t.forEach(((a,i)=>{r.push({type:a.type,isSegmented:a.isSegmented,data:Object.assign({},a.data),tooltip:a.tooltip,cssClasses:Es.getCssClasses(i),style:Es.get2DChartStyle(t.length,a.type,this.getChartsValueFieldsAmount(t),i,a.isSegmented,n),embeddedLabels:this.getEmbeddedLabelType(a,e),markersOptions:a.markers,index:i})})),r}static findChartsWithEmbeddedKeyLabels(t){const e=[];return t.forEach((t=>{"bar"===t.type&&"key"===t.embeddedLabels&&e.push(t)})),e}static getEmbeddedLabelType(t,e){return"horizontal"===e&&"bar"===t.type?t.embeddedLabels:"none"}static getAdditionalElements(t){return{gridLine:t.additionalElements.gridLine}}static getChartsByType(t,e){return t.filter((t=>t.type===e))}static getChartsValueFieldsAmount(t){return t.map((t=>t.data.valueFields.length))}}class Ns{static getPreparedData(t,e,n){const r=this.getScopedData(t,e,n);return this.setDataType(r,n),r}static getDataScope(t,e,n,r,a){return"2d"===t.options.type||"interval"===t.options.type?this.getDataScopeFor2D(t.options,t.canvas.size,e,n,r):"polar"===t.options.type?this.getDataScopeForPolar(t.options,t.canvas.size,e,n,a,r.canvas.legendBlock):void 0}static getDataValuesByKeyField(t,e,n){return t[e].map((t=>t[n]))}static getDataScopeFor2D(t,e,n,r,a){let i=1;if("2d"===t.type&&(i=t.charts.filter((t=>"bar"===t.type)).length,0===i&&(i=1)),0!==i){const s=js.getAxisLength(t.orientation,n,e),o=Bs.getUniqueValues(r[t.data.dataSource].map((e=>e[t.data.keyField.name]))),l=o.length,c=this.getDataLimitByItemSize(this.getElementsInGroupAmount(t,i),l,s,a.canvas.chartOptions.bar),u=o.slice(0,c);return{allowableKeys:u,hidedRecordsAmount:l-u.length}}return{allowableKeys:this.getDataValuesByKeyField(r,t.data.dataSource,t.data.keyField.name),hidedRecordsAmount:0}}static getDataScopeForPolar(t,e,n,r,a,i){const s=r[t.data.dataSource],o=t.data.keyField.name,l=s.map((t=>t[o]));if(!t.legend.show)return{allowableKeys:l,hidedRecordsAmount:0};let c,u;if(c=e.width-n.left-n.right>=Ds?"right":"bottom","right"===c)u=Ts.findElementsAmountByLegendSize(l,c,i.maxWidth,e.height-n.top-n.bottom);else{let t=n.bottom-(0===a.coordinate.bottom.size?a.coordinate.bottom.size:a.coordinate.bottom.size-a.coordinate.bottom.margin.bottom);u=Ts.findElementsAmountByLegendSize(l,c,e.width-n.left-n.right,e.height-n.top-t-a.coordinate.bottom.margin.bottom-Ds)}return{allowableKeys:l.slice(0,u),hidedRecordsAmount:l.length-u}}static getElementsInGroupAmount(t,e){return"2d"===t.type?this.getBarChartsInGroupAmount(t.charts):e}static getBarChartsInGroupAmount(t){let e=0;return t.forEach((t=>{"bar"===t.type&&t.isSegmented?e+=1:"bar"===t.type&&(e+=t.data.valueFields.length)})),e}static getScopedData(t,e,n){const r={};return r[n.options.data.dataSource]=this.getScopedChartData(t[n.options.data.dataSource],e,n.options.data.keyField.name),r}static getScopedChartData(t,e,n){return t.filter((t=>-1!==e.findIndex((e=>e===t[n]))))}static setDataType(t,e){if("polar"===e.options.type||"2d"===e.options.type);else if("interval"===e.options.type){const n=e.options.chart;"date"===n.data.valueField1.format&&(t[e.options.data.dataSource]=this.getTypedData(t[e.options.data.dataSource],n.data.valueField1)),"date"===n.data.valueField2.format&&(t[e.options.data.dataSource]=this.getTypedData(t[e.options.data.dataSource],n.data.valueField2))}}static getTypedData(t,e){return"date"===e.format&&t.forEach((t=>{t[e.name]=new Date(t[e.name])})),t}static getDataLimitByItemSize(t,e,n,r){let a=e*(t*r.minBarWidth+(t-1)*r.barDistance+r.groupMinDistance);for(;0!==e&&n<a;)a=--e*(t*r.minBarWidth+(t-1)*r.barDistance+r.groupMinDistance);return e}}class Gs{static getTooltipModel(t){return{position:(null==t?void 0:t.position)||"followCursor"}}}!function(t){t[t.Key=0]="Key",t[t.Value=1]="Value"}(zs||(zs={}));const Ks={dataLabel:"data-label",legendLabel:"legend-label",legendColor:"legend-circle",legendItem:"legend-item"};function Vs(t){return{size:{width:t.canvas.size.width,height:t.canvas.size.height},cssClass:t.canvas.class}}function Rs(t){return{formatters:t.dataFormat.formatters}}function Hs(t,e,n){if(!e||0===Object.keys(e).length)return{blockCanvas:Vs(t),chartBlock:null,otherComponents:null,options:null,dataSettings:null,chartSettings:null};Ws(e,t.options.data.keyField.name);const r=class{static getOtherComponentsModel(t,e){return{legendBlock:Is.getBaseLegendBlockModel(e),titleBlock:Fs.getTitleModel(),tooltipBlock:Gs.getTooltipModel(t.tooltip)}}}.getOtherComponentsModel(n.elementsOptions,t.options.type),a=qs.getMargin(n,t,r,e),i=Ns.getDataScope(t,a,e,n,r.legendBlock),s=Ns.getPreparedData(e,i.allowableKeys,t);"2d"===t.options.type&&t.options.axis.key.visibility&&qs.recalcMarginByVerticalAxisLabel(a,t,n,i);const o=Vs(t),l=function(t){return{margin:t}}(a),c=function(t,e,n,r,a){return"2d"===t.options.type?Ps.getOptions(t,e,n,r,a):"polar"===t.options.type?class{static getOptions(t,e,n,r){const a=t.options;return{type:a.type,selectable:!!a.selectable,title:a.title,data:Object.assign({},a.data),charts:this.getChartsModel(a.chart,e[a.data.dataSource].length,r.chartStyle),legend:Is.getLegendModel(t.options.type,t.options.legend.show,t.canvas.size,n),tooltip:a.tooltip}}static getChartsModel(t,e,n){const r=[];return r.push({type:t.type,data:Object.assign({},t.data),tooltip:t.tooltip,cssClasses:Es.getCssClasses(0),style:Es.getChartStyle(e,n)}),r}}.getOptions(t,a,n,e):"interval"===t.options.type?class{static getOptions(t,e,n,r,a){const i=t.options;return{legend:Is.getLegendModel(t.options.type,t.options.legend.show,t.canvas.size,n),title:i.title,selectable:!!i.selectable,orient:i.orientation,scale:{key:{domain:r.allowableKeys,range:{start:0,end:Os.getRangePeek($s.Key,i.orientation,n,t.canvas.size)},type:"band",elementsAmount:1},value:{domain:Os.getDateValueDomain(a,i.chart,i.axis.key.position,i.data.dataSource),range:{start:0,end:Os.getRangePeek($s.Value,i.orientation,n,t.canvas.size)},type:"datetime"}},axis:{key:{type:"key",orient:js.getAxisOrient(zs.Key,i.orientation,i.axis.key.position),translate:{translateX:js.getAxisTranslateX(zs.Key,i.orientation,i.axis.key.position,n,t.canvas.size.width),translateY:js.getAxisTranslateY(zs.Key,i.orientation,i.axis.key.position,n,t.canvas.size.height)},cssClass:"key-axis",ticks:i.axis.key.ticks,labels:{maxSize:js.getLabelSize(e.canvas.axisLabel.maxSize.main,a[i.data.dataSource].map((t=>t[i.data.keyField.name]))).width,position:js.getKeyAxisLabelPosition(n,t.canvas.size,Ns.getDataValuesByKeyField(a,i.data.dataSource,i.data.keyField.name).length),visible:!0,defaultTooltip:"fixed"===e.elementsOptions.tooltip.position},visibility:i.axis.key.visibility},value:{type:"value",orient:js.getAxisOrient(zs.Value,i.orientation,i.axis.value.position),translate:{translateX:js.getAxisTranslateX(zs.Value,i.orientation,i.axis.value.position,n,t.canvas.size.width),translateY:js.getAxisTranslateY(zs.Value,i.orientation,i.axis.value.position,n,t.canvas.size.height)},cssClass:"value-axis",ticks:i.axis.value.ticks,labels:{maxSize:e.canvas.axisLabel.maxSize.main,position:"straight",visible:!0,defaultTooltip:!0},visibility:i.axis.value.visibility}},data:Object.assign({},i.data),type:i.type,charts:this.getChartsModel(i.chart,e.chartStyle),additionalElements:this.getAdditionalElements(i),tooltip:i.tooltip}}static getAdditionalElements(t){return{gridLine:t.additionalElements.gridLine}}static getChartsModel(t,e){const n=[];return n.push({type:t.type,data:Object.assign({},t.data),tooltip:t.tooltip,cssClasses:Es.getCssClasses(0),style:Es.getChartStyle(1,e)}),n}}.getOptions(t,e,n,r,a):void 0}(t,n,a,i,s),u=function(t,e){return{scope:t,format:Rs(e)}}(i,n),h=(d=n.canvas.chartOptions.bar,g=n.canvas.chartOptions.donut,{bar:Object.assign({},d),donut:Object.assign({},g)});var d,g;const f=function(t){return t.transitions}(n);return"polar"===c.type&&qs.recalcPolarMarginWithScopedData(a,t.canvas.size,n,t,r.legendBlock,i,c),function(t){t.top=Math.ceil(t.top),t.bottom=Math.ceil(t.bottom),t.left=Math.ceil(t.left),t.right=Math.ceil(t.right)}(a),{blockCanvas:o,chartBlock:l,otherComponents:r,options:c,dataSettings:u,chartSettings:h,transitions:f}}function Ws(t,e){for(let n in t)t[n].forEach((t=>{for(let n in t)n!==e||t[n]?0===t[n]||t[n]||(t[n]=0):t[n]=""}))}function Us(t,e,n){return Ws(e,n.options.data.keyField.name),t&&0!==Object.keys(t).length&&e&&0!==Object.keys(e).length?Ns.getPreparedData(e,t.dataSettings.scope.allowableKeys,n):null}class js{static getKeyAxis(t,e,n,r,a,i,s,o,l){return{type:"key",orient:js.getAxisOrient(zs.Key,r,a.position),translate:{translateX:js.getAxisTranslateX(zs.Key,r,a.position,s,o.width),translateY:js.getAxisTranslateY(zs.Key,r,a.position,s,o.height)},cssClass:"key-axis",ticks:a.ticks,labels:{maxSize:js.getLabelSize(i.maxSize.main,e[n.dataSource].map((t=>t[n.keyField.name]))).width,position:js.getKeyAxisLabelPosition(s,o,Ns.getDataValuesByKeyField(e,n.dataSource,n.keyField.name).length),visible:!Ps.getChartsEmbeddedLabelsFlag(t,r),defaultTooltip:"fixed"===l.position},visibility:a.visibility}}static getValueAxis(t,e,n,r,a){return{type:"value",orient:js.getAxisOrient(zs.Value,t,e.position),translate:{translateX:js.getAxisTranslateX(zs.Value,t,e.position,r,a.width),translateY:js.getAxisTranslateY(zs.Value,t,e.position,r,a.height)},cssClass:"value-axis",ticks:e.ticks,labels:{maxSize:n.maxSize.main,position:"straight",visible:!0,defaultTooltip:!0},visibility:e.visibility}}static getAxisLength(t,e,n){return"horizontal"===t?n.height-e.top-e.bottom:n.width-e.left-e.right}static getAxisOrient(t,e,n){return"vertical"===e?"start"===n?t===zs.Key?"top":"left":t===zs.Key?"bottom":"right":"start"===n?t===zs.Key?"left":"top":t===zs.Key?"right":"bottom"}static getAxisTranslateX(t,e,n,r,a){const i=js.getAxisOrient(t,e,n);return"top"===i||"left"===i||"bottom"===i?r.left:a-r.right}static getAxisTranslateY(t,e,n,r,a){const i=js.getAxisOrient(t,e,n);return"top"===i||"left"===i?r.top:"bottom"===i?a-r.bottom:r.top}static getKeyAxisLabelPosition(t,e,n){return(e.width-t.left-t.right)/n<50?"rotated":"straight"}static getLabelSize(t,e){const n={width:0,height:0},r=document.createElement("span");r.style.opacity="0",r.style.position="absolute",r.style.whiteSpace="nowrap",r.classList.add(Ks.dataLabel);let a="",i=0,s=0;return e.forEach((t=>{Bs.getStringScore(t)>i&&(a=t,i=Bs.getStringScore(t))})),r.textContent="0000"===a?a:a+"D",document.body.append(r),s=Math.ceil(r.getBoundingClientRect().width),n.height=r.getBoundingClientRect().height,n.width=s>t?t:s,r.remove(),n}}const Ys=10;class qs{static getMargin(t,e,n,r){const a=Object.assign({},t.canvas.chartBlockMargin);if(this.recalcMarginWithLegend(a,e,t.canvas.legendBlock.maxWidth,n.legendBlock,r),this.recalcMarginByTitle(a,n.titleBlock),"2d"===e.options.type||"interval"===e.options.type){const n=this.getHorizontalMarginByAxisLabels(t.canvas.axisLabel.maxSize.main,e.options.axis,r,e.options);this.recalcVerticalMarginByAxisLabelHeight(n,a,e.options.orientation,e.options.axis);const i="2d"!==e.options.type||!Ps.getChartsEmbeddedLabelsFlag(e.options.charts,e.options.orientation);this.recalcHorizontalMarginByAxisLabelWidth(n,a,e.options.orientation,e.options.axis,i)}return a}static recalcPolarMarginWithScopedData(t,e,n,r,a,i,s){let o=Is.getLegendModel(r.options.type,r.options.legend.show,r.canvas.size,t).position;if("off"!==o){"right"===o&&e.width-t.left-t.right<Ds&&(o="bottom"),this.clearMarginByLegendBlockPosition(t,a);let l=[...i.allowableKeys];0!==i.hidedRecordsAmount&&"bottom"===o&&l.push("1");const c=Is.getLegendSize(r.options.type,o,l,n.canvas.legendBlock.maxWidth,r.canvas.size,a);t[o]+=c+a.coordinate[o].margin[o],a.coordinate[o].size=c,s.legend.position=o}}static recalcMarginByVerticalAxisLabel(t,e,n,r){if(("2d"===e.options.type||"interval"===e.options.type)&&"vertical"===e.options.orientation){const a=js.getLabelSize(n.canvas.axisLabel.maxSize.main,r.allowableKeys),i=js.getKeyAxisLabelPosition(t,e.canvas.size,r.allowableKeys.length),s="end"===e.options.axis.key.position?"bottom":"top";"rotated"===i&&(t[s]+=a.width-a.height)}}static getHorizontalMarginByAxisLabels(t,e,n,r){const a=js.getAxisOrient(zs.Key,r.orientation,e.key.position);let i;return i="left"===a||"right"===a?Ns.getDataValuesByKeyField(n,r.data.dataSource,r.data.keyField.name):["0000"],js.getLabelSize(t,i)}static recalcVerticalMarginByAxisLabelHeight(t,e,n,r){const a=js.getAxisOrient(zs.Key,n,r.key.position),i=js.getAxisOrient(zs.Value,n,r.value.position);"bottom"===a||"top"===a?r.key.visibility&&(e[a]+=t.height+15):r.value.visibility&&(e[i]+=t.height+15)}static recalcHorizontalMarginByAxisLabelWidth(t,e,n,r,a){const i=js.getAxisOrient(zs.Key,n,r.key.position),s=js.getAxisOrient(zs.Value,n,r.value.position);("left"===i||"right"===i)&&a&&r.key.visibility?e[i]+=t.width+Ys:"left"!==s&&"right"!==s||!r.value.visibility||(e[s]+=t.width+Ys)}static recalcMarginWithLegend(t,e,n,r,a){const i=Is.getLegendModel(e.options.type,e.options.legend.show,e.canvas.size,t).position;if("off"!==i){const s=this.getLegendItemsContent(e.options,a),o=Is.getLegendSize(e.options.type,i,s,n,e.canvas.size,r);t[i]+=o,0!==o&&this.appendToGlobalMarginValuesLegendMargin(t,i,r),r.coordinate[i].size=o}}static getLegendItemsContent(t,e){if("2d"===t.type){let e=[];return t.charts.forEach((t=>{e=e.concat(t.data.valueFields.map((t=>t.title)))})),e}return"polar"===t.type?Ns.getDataValuesByKeyField(e,t.data.dataSource,t.data.keyField.name):"interval"===t.type?[t.chart.data.valueField1.name]:void 0}static appendToGlobalMarginValuesLegendMargin(t,e,n){const r=n.coordinate;t[e]+="left"===e||"right"===e?r[e].margin.left+r[e].margin.right:r[e].margin.top+r[e].margin.bottom}static clearMarginByLegendBlockPosition(t,e){const n=e.coordinate;["left","right","top","bottom"].forEach((e=>{t[e]-=0===n[e].size?0:n[e].size+n[e].margin[e]}))}static recalcMarginByTitle(t,e){t.top+=e.margin.top+e.size}}var Xs=Array.prototype.slice;function Zs(t){return t}var Qs=1e-6;function Js(t){return"translate("+(t+.5)+",0)"}function to(t){return"translate(0,"+(t+.5)+")"}function eo(t){return e=>+t(e)}function no(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function ro(){return!this.__axis}function ao(t,e){var n=[],r=null,a=null,i=6,s=6,o=3,l=1===t||4===t?-1:1,c=4===t||2===t?"x":"y",u=1===t||3===t?Js:to;function h(h){var d=null==r?e.ticks?e.ticks.apply(e,n):e.domain():r,g=null==a?e.tickFormat?e.tickFormat.apply(e,n):Zs:a,f=Math.max(i,0)+o,p=e.range(),m=+p[0]+.5,y=+p[p.length-1]+.5,v=(e.bandwidth?no:eo)(e.copy()),b=h.selection?h.selection():h,C=b.selectAll(".domain").data([null]),x=b.selectAll(".tick").data(d,e).order(),w=x.exit(),k=x.enter().append("g").attr("class","tick"),S=x.select("line"),A=x.select("text");C=C.merge(C.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(k),S=S.merge(k.append("line").attr("stroke","currentColor").attr(c+"2",l*i)),A=A.merge(k.append("text").attr("fill","currentColor").attr(c,l*f).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),h!==b&&(C=C.transition(h),x=x.transition(h),S=S.transition(h),A=A.transition(h),w=w.transition(h).attr("opacity",Qs).attr("transform",(function(t){return isFinite(t=v(t))?u(t):this.getAttribute("transform")})),k.attr("opacity",Qs).attr("transform",(function(t){var e=this.parentNode.__axis;return u(e&&isFinite(e=e(t))?e:v(t))}))),w.remove(),C.attr("d",4===t||2==t?s?"M"+l*s+","+m+"H0.5V"+y+"H"+l*s:"M0.5,"+m+"V"+y:s?"M"+m+","+l*s+"V0.5H"+y+"V"+l*s:"M"+m+",0.5H"+y),x.attr("opacity",1).attr("transform",(function(t){return u(v(t))})),S.attr(c+"2",l*i),A.attr(c,l*f).text(g),b.filter(ro).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),b.each((function(){this.__axis=v}))}return h.scale=function(t){return arguments.length?(e=t,h):e},h.ticks=function(){return n=Xs.call(arguments),h},h.tickArguments=function(t){return arguments.length?(n=null==t?[]:Xs.call(t),h):n.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:Xs.call(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(a=t,h):a},h.tickSize=function(t){return arguments.length?(i=s=+t,h):i},h.tickSizeInner=function(t){return arguments.length?(i=+t,h):i},h.tickSizeOuter=function(t){return arguments.length?(s=+t,h):s},h.tickPadding=function(t){return arguments.length?(o=+t,h):o},h}function io(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let a of t)null!=(a=e(a,++r,t))&&(n>a||void 0===n&&a>=a)&&(n=a)}return n}function so(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n<e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let a of t)null!=(a=e(a,++r,t))&&(n<a||void 0===n&&a>=a)&&(n=a)}return n}class oo{static setTitles(t){t.selectAll(".tick text").each((function(t,e){const n=pt(this).select("title");n.empty()?pt(this).append("title").text(t):n.text(t)}))}static setAxisLabelPaddingByOrient(t,e){let n=15;"left"!==e.orient&&"right"!==e.orient||(n=Ys),t.tickPadding(n)}static rotateLabels(t,e){const n=t.selectAll("text");n.attr("transform","rotate(-90)"),"bottom"===e?n.attr("text-anchor","end").attr("x",-15).attr("y",-4):"top"===e&&n.attr("text-anchor","start").attr("x",15).attr("y",6)}static cropLabels(t,e,n,r,a){if("point"===n.type||"band"===n.type){const i=t.getSvg().select(`.${r.cssClass}`).selectAll("text");let s;s="left"===r.orient||"right"===r.orient||"key"===r.type&&"rotated"===r.labels.position?r.labels.maxSize:e.step()-4,Ms.cropSvgLabels(i,s),"point"!==n.type||"straight"!==r.labels.position||"top"!==r.orient&&"bottom"!==r.orient||this.cropAndAlignExtremeLabels(t,s,r,a)}}static hideLabels(t){t.selectAll(".tick text").style("display","none")}static alignLabelsInKeyAxis(t,e){"left"===t.orient?this.alignLabelsInVerticalAxis(e,"start",t.labels.maxSize,!0):"right"===t.orient&&this.alignLabelsInVerticalAxis(e,"start",t.labels.maxSize,!1)}static alignLabelsInVerticalAxis(t,e,n,r){const a=t.selectAll("text"),i=t.selectAll("tspan");a.attr("text-anchor",e),i.attr("text-anchor",e),r?(a.attr("x",-(n+Ys)),i.attr("x",-(n+Ys))):i.attr("x",Ys)}static cropAndAlignExtremeLabels(t,e,n,r){const a=t.getSvg().select(`.${n.cssClass}`).select(".tick:last-of-type"),i=a.select("text");if(0===a.size()||0===i.size())return;const s=da.getTranslateNumbers(a.attr("transform"))[0],o=r.width-n.translate.translateX-s;s+i.node().getBBox().width+n.translate.translateX>r.width&&(i.attr("text-anchor","start"),i.attr("transform",`translate(${this.getTranslateNumber(e,i,o)}, 0)`),Ms.cropSvgLabels(i,e/2+o));const l=t.getSvg().select(`.${n.cssClass}`).select(".tick:first-of-type").select("text"),c=da.getTranslateNumbers(t.getSvg().select(`.${n.cssClass}`).attr("transform"))[0];n.translate.translateX-l.node().getBBox().width/2<0&&(l.attr("text-anchor","start"),l.attr("transform",`translate(${-n.translate.translateX}, 0)`),Ms.cropSvgLabels(l,e/2+c))}static getTranslateNumber(t,e,n){return t/2>e.node().getBBox().width?-(e.node().getBBox().width-n):-t/2}static wrapHandler(t,e){t.each((function(){let t=pt(this);if(!t.selectAll("tspan").empty())return;t.select("title").remove();let n=t.text();if(t.node().getBBox().width>e){let r,a=t.text().split("").reverse(),i=[],s=0,o=1.4,l=t.text(null).append("tspan").attr("dy",o+"em");for(;r=a.pop();)if(i.push(r),l.text(i.join("")),l.node().getComputedTextLength()>e&&i.length>1&&a.length>0){if(i.pop(),l.text(i.join("")),0===s&&" "!==i[i.length-1]&&l.text(l.text()+"-"),i=[r],s>=1){a.length>0&&l.text(l.text().substr(0,l.text().length-1)+"...");break}l=t.append("tspan").attr("dy",o*s+1+"em").text(r),s++}1===t.selectAll("tspan").size()&&t.text(n).attr("y",null),t.selectAll("tspan").empty()||t.attr("y",-(t.node().getBBox().height/2+4.8))}}))}}class lo{static getAxisByOrient(t,e){return"top"===t?function(t){return ao(1,t)}(e):"bottom"===t?function(t){return ao(3,t)}(e):"left"===t?function(t){return ao(4,t)}(e):"right"===t?function(t){return ao(2,t)}(e):void 0}static setLabelsSettings(t,e,n){const r=e[1]-e[0];let a;r/10<40&&(Math.floor(r/40)>2?(a=Math.floor(r/40),t.ticks(Math.floor(r/40))):(a=2,t.tickValues([io(n.domain),so(n.domain)]))),"linear"===n.type&&t.scale().ticks(a).forEach((e=>{-1!==Ve("~s")(e).indexOf(".")&&this.setNumTickFormat(t,".2s")}))}static getBaseAxisGenerator(t,e,n){const r=lo.getAxisByOrient(t.orient,e);return t.ticks.flag||this.removeTicks(r),oo.setAxisLabelPaddingByOrient(r,t),"linear"===n.type&&this.setNumTickFormat(r),r}static removeTicks(t){t.tickSize(0)}static setNumTickFormat(t,e="~s"){t.tickFormat(Ve(e))}}class co{static updateAxisElement(t,e,n,r=0){return new Promise((a=>{let i=e;r>0&&(i=i.interrupt().transition().duration(r).on("end",(()=>a("updated")))),i.attr("transform",`translate(${n.translateX}, ${n.translateY})`).call(t.bind(this)),r<=0&&a("updated")}))}static rotateElementsBack(t){t.selectAll(".tick text").attr("transform",null).attr("text-anchor","middle").attr("x",null)}}function uo(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var a=e.getBoundingClientRect();return[t.clientX-a.left-e.clientLeft,t.clientY-a.top-e.clientTop]}}return[t.pageX,t.pageY]}class ho{static setHoverEvents(t,e){const n=e.selectAll(".tick text");n.on("mousemove",(function(e,n){ha.get(t).dispatch("mousemove",{bubbles:!1,cancelable:!0,detail:{keyValue:n,pointer:uo(e,t.getWrapper().node())}})})),n.on("mouseleave",(function(e,n){ha.get(t).dispatch("mouseleave")})),n.on("click",(function(e,n){ha.get(t).dispatch("click",{bubbles:!1,cancelable:!0,detail:{multySelect:e.ctrlKey||e.metaKey,keyValue:n}})}))}static removeEvents(t){const e=t.selectAll(".tick text");e.on("mousemove",null),e.on("mouseleave",null),e.on("click",null)}}class go{static render(t,e,n,r,a){r.value.visibility&&this.renderAxis(t,e.value,n.value,r.value,a),r.key.visibility&&this.renderAxis(t,e.key,n.key,r.key,a)}static update(t,e,n,r,a,i){r.value.visibility&&this.updateValueAxis(t,e.value,n.value,r.value),r.key.visibility&&this.updateKeyAxis(t,e.key,n.key,r.key,a,i)}static renderAxis(t,e,n,r,a){const i=lo.getBaseAxisGenerator(r,e,n);"value"!==r.type||"linear"!==n.type&&"datetime"!==n.type||lo.setLabelsSettings(i,e.range(),n);const s=t.getSvg().append("g").attr("class",`${this.axesClass} ${r.cssClass} data-label`);co.updateAxisElement(i,s,r.translate),r.labels.visible?("key"===r.type&&("rotated"!==r.labels.position||"top"!==r.orient&&"bottom"!==r.orient||oo.rotateLabels(s,r.orient),("left"===r.orient||"right"===r.orient)&&ca.getScaleStep(e)>=38?s.selectAll(".tick text").call(oo.wrapHandler,r.labels.maxSize):oo.cropLabels(t,e,n,r,a),oo.alignLabelsInKeyAxis(r,s),ho.setHoverEvents(t,s)),r.labels.defaultTooltip&&oo.setTitles(s)):oo.hideLabels(s)}static updateValueAxis(t,e,n,r){const a=lo.getBaseAxisGenerator(r,e,n);lo.setLabelsSettings(a,e.range(),n);const i=t.getSvg().select(`g.${r.cssClass}`);co.updateAxisElement(a,i,r.translate,t.transitionManager.durations.chartUpdate).then((()=>{r.labels.defaultTooltip&&oo.setTitles(i)}))}static updateKeyAxis(t,e,n,r,a,i){const s=lo.getBaseAxisGenerator(r,e,n);"rotated"===r.labels.position&&("bottom"===r.orient?s.tickPadding(-4):"top"===r.orient&&s.tickPadding(-6));const o=t.getSvg().select(`g.${r.cssClass}`);ho.removeEvents(o),"left"!==r.orient&&"right"!==r.orient||(o.selectAll(".tick text").attr("y",null),"left"===r.orient&&s.tickPadding(r.labels.maxSize+Ys)),co.updateAxisElement(s,o,r.translate,i?0:t.transitionManager.durations.chartUpdate).then((()=>{"bottom"!==r.orient&&"top"!==r.orient||oo.cropLabels(t,e,n,r,a),ho.setHoverEvents(t,o),r.labels.defaultTooltip&&oo.setTitles(o)}));let l=0;const c=()=>{l++,l<10&&requestAnimationFrame(c),2===l&&o.selectAll(".tick").each((function(t){-1===e.domain().findIndex((e=>e===t))?pt(this).style("opacity",0):pt(this).style("opacity",1)})),"left"!==r.orient&&"right"!==r.orient||(ca.getScaleStep(e)>=38?o.selectAll(".tick text").call(oo.wrapHandler,r.labels.maxSize):oo.cropLabels(t,e,n,r,a),oo.alignLabelsInKeyAxis(r,o)),"bottom"!==r.orient&&"top"!==r.orient||("rotated"===r.labels.position&&oo.rotateLabels(o,r.orient),"straight"===r.labels.position&&co.rotateElementsBack(o),oo.cropLabels(t,e,n,r,a))};requestAnimationFrame(c)}}go.axesClass=ga.getClassName("axis");class fo{static getHorizontalPad(t,e,n,r){let a=0;return e+t-mo+r>n.width&&(a=e+t-mo+r-n.width),a}static getVerticalPad(t,e,n){let r=0;return t-yo-e+n<-e-yo&&(r=t),r}static getTooltipArrowPadding(t,e){return e>t?t-po-20*Math.sqrt(2):e}static getCoordinateByPointer(t){const e={left:null,top:null,right:null,bottom:null};return e.left=t[0]+"px",e.top=t[1]+"px",e}static getTooltipFixedCoordinate(t,e,n,r,a,i,s,o){const l={top:null,bottom:null,left:null,right:null};return"bottom"!==i&&"top"!==i||(l.left=ca.getScaledValue(t,n)+e.left-a.width/2+"px",l.top="bottom"===i?e.top-5-a.height+"px":r.height-e.bottom+"px"),"left"!==i&&"right"!==i||(l.top=ca.getScaledValue(t,n)+e.top-a.height/2+"px",l.left="left"===i?r.width-e.right+"px":e.left-a.width+"px"),this.recalcToolTipCoordinateByViewPort(r,a,l,s,o)}static getTooltipCursorCoordinate(t,e,n,r,a){const i={top:t[1]+10+"px",bottom:null,left:t[0]+10+"px",right:null};return this.recalcToolTipCoordinateByViewPort(e,n,i,r,a)}static getTooltipLineAttributes(t,e,n,r,a){const i={x1:0,x2:0,y1:0,y2:0};return"vertical"===r?(i.x1=Math.ceil(ca.getScaledValue(t,n)+e.left)-.5,i.x2=Math.ceil(ca.getScaledValue(t,n)+e.left)-.5,i.y1=e.top-this.convexsize,i.y2=a.height-e.bottom+2*this.convexsize):(i.x1=e.left-this.convexsize,i.x2=a.width-e.right+2*this.convexsize,i.y1=ca.getScaledValue(t,n)+e.top,i.y2=ca.getScaledValue(t,n)+e.top),i}static recalcToolTipCoordinateByViewPort(t,e,n,r,a){const i=da.getPXValueFromString(n.left);i<0&&-i>t.left&&(n.left=-t.left+"px"),t.left+i+e.width>r-18&&(n.left=r-t.left-e.width-18+"px");const s=da.getPXValueFromString(n.top);return s+t.top<0&&-s>t.top&&(n.top=-t.top+"px"),t.top+s+e.height>a&&(n.top=t.height-e.height-(t.bottom-a)+"px"),n}}fo.convexsize=5;const po=9,mo=po-(20*Math.sqrt(2)-20)/2+14,yo=13;class vo{static fillForMulty2DCharts(t,e,n,r,a,i){t.html(""),i?this.fillContentByFunction(t,n,r,a,i):(this.renderHead(t,a),e.forEach((e=>{e.data.valueFields.forEach(((i,s)=>{const o=this.getTooltipItemHtml(n,r,a,i);this.fillValuesContent(t,e.style.elementColors[s%e.style.elementColors.length],o)}))})))}static fillForPolarChart(t,e,n,r,a,i,s){if(t.html(""),s)this.fillContentByFunction(t,n,r,a,s);else{this.renderHead(t,a);const s=this.getTooltipItemHtml(n,r,a,e.data.valueField);this.fillValuesContent(t,i,s)}}static fillForIntervalChart(t,e,n,r,a,i){t.html(""),i?this.fillContentByFunction(t,n,r,a,i):(this.renderHead(t,a),e.forEach((e=>{let i=this.getTooltipItemHtml(n,r,a,e.data.valueField1);this.fillValuesContent(t,e.style.elementColors[0%e.style.elementColors.length],i),i=this.getTooltipItemHtml(n,r,a,e.data.valueField2),this.fillValuesContent(t,e.style.elementColors[0%e.style.elementColors.length],i)})))}static getRecalcedCoordinateByArrow(t,e,n,r,a=0,i=0){const s=e.node(),o=fo.getHorizontalPad(t[0],s.getBoundingClientRect().width,n,a),l=fo.getVerticalPad(t[1],s.getBoundingClientRect().height,i);return this.setTooltipArrowCoordinate(r,fo.getTooltipArrowPadding(s.getBoundingClientRect().width,o)),[t[0]-mo-o,t[1]-yo-s.getBoundingClientRect().height-l]}static renderHead(t,e){t.append("div").attr("class",`${this.groupClass} ${this.headClass}`).style("white-space","nowrap").text(e)}static fillValuesContent(t,e,n){const r=t.append("div").attr("class",this.groupClass);e&&r.append("div").attr("class","tooltip-color").append("span").attr("class","tooltip-circle").style("background-color",e);const a=r.append("div").attr("class","tooltip-texts").append("div").attr("class",this.textItemClass).html(n).style("white-space","nowrap");a.node().getBoundingClientRect().width>this.maxContentWidth&&(a.style("white-space","normal"),t.select(`.${this.headClass}`).style("white-space","normal"))}static getTooltipItemHtml(t,e,n,r){const a=t[e.dataSource].find((t=>t[e.keyField.name]===n));return`<span class="tooltip-field-title">${r.title}</span>\n <span class="tooltip-field-value">${pa.formatField(r.format,a[r.name])}</span>`}static setTooltipArrowCoordinate(t,e){0!==e?t.style("left",`${po+Math.floor(e)}px`):t.style("left",`${po}px`)}static fillContentByFunction(t,e,n,r,a){const i=da.getRowsByKeys([r],n.keyField.name,e[n.dataSource])[0];t.html(a(i)),this.setWhiteSpaceForTextBlocks(t),t.selectAll(".tooltip-text-item").style("display","block")}static setWhiteSpaceForTextBlocks(t){t.style("min-width",null),t.selectAll(`.${this.textItemClass}`).style("white-space","pre"),t.node().getBoundingClientRect().width>this.maxContentWidth&&(t.selectAll(`.${this.textItemClass}`).style("white-space","pre-wrap"),t.style("min-width",this.maxContentWidth+"px"))}}vo.groupClass="tooltip-group",vo.headClass="tooltip-head",vo.textItemClass="tooltip-text-item",vo.maxContentWidth=500;const bo=t=>+t;class Co{static showComponent(t){t.style("display","block")}static hideComponent(t){t.style("display","none")}static renderTooltipWrapper(t){t.getWrapper().select(`.${wo.tooltipWrapperClass}`).empty()&&t.getWrapper().append("div").attr("class",wo.tooltipWrapperClass)}static renderTooltipBlock(t,e=0,n=0){const r=t.getWrapper().select(`.${wo.tooltipWrapperClass}`);let a=r.select(`.${wo.tooltipBlockClass}`);return a.empty()&&(a=r.append("div").attr("class",wo.tooltipBlockClass).style("position","absolute").style("display","none")),0===e&&0===n||a.style("transform",`translate(${e}px, ${n}px)`),a}static renderTooltipContentBlock(t){let e=t.select(`.${wo.tooltipContentClass}`);return e.empty()&&(e=t.append("div").attr("class",wo.tooltipContentClass)),e}static renderTooltipLine(t){let e=t.getChartBlock().select(`.${wo.tooltipLineClass}`);return e.empty()&&(e=t.getChartBlock().append("line").attr("class",wo.tooltipLineClass).lower()),e}static setTooltipLineAttributes(t,e,n){Mi(t.node()),n>0&&"block"===t.style("display")?t.interrupt().transition().duration(n).ease(bo).attr("x1",e.x1).attr("x2",e.x2).attr("y1",e.y1).attr("y2",e.y2):t.attr("x1",e.x1).attr("x2",e.x2).attr("y1",e.y1).attr("y2",e.y2)}static getLineWidth(t){return parseFloat(t.style("stroke-width"))}static renderTooltipArrow(t){let e=t.select(`.${wo.tooltipArrowClass}`);return e.empty()&&(e=t.append("div").attr("class",wo.tooltipArrowClass).style("position","absolute").style("left",`${po}px`).style("border-top-width","10px").style("border-right-width","10px").style("border-bottom-width","0px").style("border-left-width","10px")),e}static setBlockCoordinate(t,e){t.style("right",e.right).style("bottom",e.bottom).style("left",e.left).style("top",e.top)}static setLineTooltipCoordinate(t,e,n,r=null){Mi(t.node()),(!r||r<=0)&&this.setBlockCoordinate(t,e),"vertical"===n&&"0px"!==t.style("left")&&"0px"!==t.style("right")&&"0px"!==e.right&&null!==e.left?t.style("right",e.right).style("bottom",e.bottom).style("top",e.top).interrupt().transition().duration(r).ease(bo).style("left",e.left):"horizontal"===n&&"0px"!==t.style("top")&&parseInt(t.style("bottom"))>0&&null===e.bottom?t.style("left",e.left).style("bottom",e.bottom).style("right",e.right).interrupt().transition().duration(r).ease(bo).style("top",e.top):this.setBlockCoordinate(t,e)}}class xo{static toggleActivityStyle(t,e){t.classed(this.inactiveElemClass,!e)}static setShadowFilter(t,e=1){t.each((function(){const t=pt(this).style("fill")||"rgb(0, 0, 0)",n=da.getRgbaFromRgb(t,.6);pt(this).style("filter",`drop-shadow(0px 0px ${8*e}px ${n})`)}))}static removeFilter(t){t.style("filter",null)}static removeShadowClone(t,e,n,r,a,i){const s=_s.getAllArcShadows(t).filter((t=>t.data[e]===n.datum().data[e]));this.removeFilter(s.select("path")),this.toggleDonutHighlightState(s,r,a,i,t.transitionManager.durations.higlightedScale,!1).then((()=>s.remove()))}static removeCloneForElem(t,e,n){_s.getAllArcClones(t).filter((t=>t.data[e]===n.datum().data[e])).remove()}static removeDonutArcClones(t){_s.getAllArcClones(t).remove(),_s.getAllArcShadows(t).remove()}static renderArcCloneAndHighlight(t,e,n,r,a){const i=this.makeArcClone(n,t),s=this.makeArcShadow(n,t);this.toggleDonutHighlightState(n,e,r,a,t.transitionManager.durations.higlightedScale,!0),this.toggleDonutHighlightState(i,e,r,a,t.transitionManager.durations.higlightedScale,!0),this.toggleDonutHighlightState(s,e,r,a,t.transitionManager.durations.higlightedScale,!0),this.setShadowFilter(s.select("path"),a/60)}static toggleDonutHighlightState(t,e,n,r,a,i){return new Promise((s=>{let o=0;i&&(o=5),t.select("path").interrupt().transition().duration(a).on("end",(()=>s(""))).ease(bo).attr("d",((t,a)=>Ya.getArcGeneratorObject(n,e,r).outerRadius(Ya.getOuterRadius(e,n)+o).innerRadius(Ya.getOuterRadius(e,n)-r-o)(t,a)))}))}static removeDonutHighlightingByKeys(t,e,n,r,a,i){const s=Ms.getChartElementsByKeys(t,!0,e,n,hs.Exclude);this.toggleDonutHighlightState(s,r,a,i,0,!1)}static setInactiveFor2D(t,e,n){n.forEach((n=>{const r=Ms.get2DChartElements(t,n);if(0===t.filterEventManager.getSelectedKeys().length)this.toggleActivityStyle(r,!0);else{const a=Ms.getChartElementsByKeys(r,n.isSegmented,e,t.filterEventManager.getSelectedKeys(),hs.Exclude),i=Ms.getChartElementsByKeys(r,n.isSegmented,e,t.filterEventManager.getSelectedKeys());this.toggleActivityStyle(a,!1),this.toggleActivityStyle(i,!0)}}))}static toggleMarkDotVisible(t,e){t.classed(ps.hiddenDotClass,!e)}static remove2DChartsFullHighlighting(t,e,n=0){e.forEach((e=>{const r=Ms.get2DChartElements(t,e);"bar"===e.type||e.markersOptions.show||r.classed(ps.hiddenDotClass,!0),this.toggle2DElements(r,!1,e.type,n),this.toggleActivityStyle(r,!0)}))}static removeUnselected2DHighlight(t,e,n,r){n.forEach((n=>{const a=Ms.get2DChartElements(t,n),i=Ms.getChartElementsByKeys(a,n.isSegmented,e,t.filterEventManager.getSelectedKeys(),hs.Exclude);"bar"===n.type||n.markersOptions.show||i.classed(ps.hiddenDotClass,!0),this.toggle2DElements(i,!1,n.type,r),t.filterEventManager.getSelectedKeys().length>0&&this.toggleActivityStyle(i,!1)}))}static toggle2DElements(t,e,n,r){"area"===n||"line"===n?t.call(this.toggleDot,e,r):(this.toggleBar(t,e),e?t.each((function(t){const e=this.attrs,n=("vertical"===e.orient?e.width:e.height)/30;xo.setShadowFilter(pt(this),n)})):this.removeFilter(t))}static makeArcClone(t,e){const n=this.renderDonutSegmentClone(t,`${_s.arcCloneClass}`);return e.getSvg().select(`.${_s.arcClonesGroupClass}`).append((function(){return n.node()})),n}static makeArcShadow(t,e){const n=this.renderDonutSegmentClone(t,`${_s.arcShadowClass}`);return e.getSvg().select(`.${_s.arcShadowsGroupClass}`).append((function(){return n.node()})),n}static renderDonutSegmentClone(t,e){return t.clone(!0).style("pointer-events","none").classed(`${_s.arcCloneClass}`,!1).classed(e,!0).remove()}static toggleBar(t,e){const n="bar-highlight";e?t.each((function(){const t=this.attrs,e=pt(this).interrupt(n).transition(n).duration(200);"vertical"===t.orient?e.attr("x",t.x-t.scaleSize).attr("width",t.width+2*t.scaleSize):e.attr("y",t.y-t.scaleSize).attr("height",t.height+2*t.scaleSize)})):t.each((function(){const t=this.attrs;pt(this).interrupt(n).transition(n).duration(200).attr("x",t.x).attr("width",t.width).attr("y",t.y).attr("height",t.height)}))}static toggleDot(t,e,n=0){const r="size-scale";t.nodes().forEach((t=>{Mi(t,r)}));let a=t;n>0&&(a=a.interrupt().transition(r).duration(n).ease(bo)),a.attr("r",e?5:4).style("stroke-width",(e?3.5:3)+"px").each((function(){pt(this).style("fill",e?pt(this).style("stroke"):"white")}))}}xo.inactiveElemClass="charts-opacity-inactive";class wo{static render(t,e,n,r,a){Co.renderTooltipWrapper(t),-1!==e.options.charts.findIndex((t=>t.tooltip.show))&&("2d"===e.options.type?this.renderTooltipFor2DCharts(t,n,e.blockCanvas.size,e.chartBlock.margin,a,e.options,r):"polar"===e.options.type?this.renderTooltipForPolar(t,e.options,n,e.blockCanvas.size,e.chartBlock.margin,Ya.getThickness(e.chartSettings.donut,e.blockCanvas.size,e.chartBlock.margin),e.otherComponents.tooltipBlock):"interval"===e.options.type&&this.renderTooltipForIntervalCharts(t,n,e.blockCanvas.size,e.chartBlock.margin,a,e.options,r))}static hide(t){Co.hideComponent(t.getWrapper().select(`.${this.tooltipBlockClass}`)),Co.hideComponent(t.getSvg().select(`.${this.tooltipLineClass}`))}static renderTooltipFor2DCharts(t,e,n,r,a,i,s){if(0===a.key.domain().length)return;const o={type:"2d",scales:a,margin:r,blockSize:n,charts:i.charts,chartOrientation:i.orient,keyAxisOrient:i.axis.key.orient,dataOptions:i.data,scaleKeyModel:i.scale.key,tooltipSettings:s,tooltipOptions:i.tooltip};this.renderLineTooltip(t,e,o)}static renderTooltipForIntervalCharts(t,e,n,r,a,i,s){if(0===a.key.domain().length)return;const o={type:"interval",scales:a,margin:r,blockSize:n,charts:i.charts,chartOrientation:i.orient,keyAxisOrient:i.axis.key.orient,dataOptions:i.data,scaleKeyModel:i.scale.key,tooltipSettings:s,tooltipOptions:i.tooltip};this.renderLineTooltip(t,e,o)}static renderTooltipForPolar(t,e,n,r,a,i,s){const o=t.getSvg().select(`.${_s.donutBlockClass}`).attr("transform"),l=da.getTranslateNumbers(o),c=_s.getAllArcGroups(t);this.renderTooltipForDonut(t,c,n,e.data,e.charts[0],r,a,i,s,e.tooltip,{x:l[0],y:l[1]})}static renderLineTooltip(t,e,n){const r=Co.renderTooltipBlock(t),a=Co.renderTooltipContentBlock(r),i=Co.renderTooltipLine(t),s=ha.renderOrGet(t,n.margin,n.blockSize);let o=null;s.on("mousemove",(function(s){var l,c;const u=s.detail.keyValue||ua.getKeyValueByPointer(uo(s,this),n.chartOrientation,n.margin,n.blockSize,n.scales.key,n.scaleKeyModel.type);if("followCursor"===n.tooltipSettings.position){const e=fo.getTooltipCursorCoordinate(s.detail.pointer||uo(s,this),t.getSvg().node().getBoundingClientRect(),a.node().getBoundingClientRect(),window.innerWidth,window.innerHeight);Co.setLineTooltipCoordinate(r,e,n.chartOrientation,0)}if(!o||o!==u){if(Co.showComponent(r),"2d"===n.type?vo.fillForMulty2DCharts(a,n.charts.filter((t=>t.tooltip.show)),e,n.dataOptions,u,null===(l=n.tooltipOptions)||void 0===l?void 0:l.html):vo.fillForIntervalChart(a,n.charts.filter((t=>t.tooltip.show)),e,n.dataOptions,u,null===(c=n.tooltipOptions)||void 0===c?void 0:c.html),"fixed"===n.tooltipSettings.position){const e=fo.getTooltipFixedCoordinate(n.scales.key,n.margin,u,t.getSvg().node().getBoundingClientRect(),a.node().getBoundingClientRect(),n.keyAxisOrient,window.innerWidth,window.innerHeight);Co.setLineTooltipCoordinate(r,e,n.chartOrientation,t.transitionManager.durations.tooltipSlide)}const s=fo.getTooltipLineAttributes(n.scales.key,n.margin,u,n.chartOrientation,n.blockSize);Co.setTooltipLineAttributes(i,s,t.transitionManager.durations.tooltipSlide),Co.showComponent(i),"2d"===n.type&&n.charts.forEach((e=>{const r=Ms.get2DChartElements(t,e);if(!t.filterEventManager.isSelected(o)){const a=Ms.getChartElementsByKeys(r,e.isSegmented,n.dataOptions.keyField.name,[o]);"bar"===e.type||e.markersOptions.show||xo.toggleMarkDotVisible(a,!1),xo.toggle2DElements(a,!1,e.type,t.transitionManager.durations.markerHover),t.filterEventManager.getSelectedKeys().length>0&&xo.toggleActivityStyle(a,!1)}const a=Ms.getChartElementsByKeys(r,e.isSegmented,n.dataOptions.keyField.name,[u]);"bar"===e.type||e.markersOptions.show||xo.toggleMarkDotVisible(a,!0),xo.toggleActivityStyle(a,!0),(0===t.filterEventManager.getSelectedKeys().length||t.filterEventManager.isSelected(u))&&xo.toggle2DElements(a,!0,e.type,t.transitionManager.durations.markerHover)})),o=u}})),s.on("mouseleave",(function(){Co.hideComponent(r),Co.hideComponent(i),"2d"===n.type&&xo.removeUnselected2DHighlight(t,n.dataOptions.keyField.name,n.charts,t.transitionManager.durations.markerHover),o=null}))}static renderTooltipForDonut(t,e,n,r,a,i,s,o,l,c,u){const h=Co.renderTooltipBlock(t),d=Co.renderTooltipContentBlock(h);let g;"fixed"===l.position&&(g=Co.renderTooltipArrow(h)),"followCursor"===l.position&&e.on("mousemove",(function(e){const n=uo(e,t.getSvg().node())[0]?uo(e,t.getSvg().node()):e.detail.pointer,r=fo.getTooltipCursorCoordinate(n,t.getSvg().node().getBoundingClientRect(),d.node().getBoundingClientRect(),window.innerWidth,window.innerHeight);Co.setBlockCoordinate(h,r)})),e.on("mouseover",(function(e,f){if(Co.showComponent(h),vo.fillForPolarChart(d,a,n,r,f.data[r.keyField.name],pt(this).select("path").style("fill"),null==c?void 0:c.html),"fixed"===l.position){const t=vo.getRecalcedCoordinateByArrow(Ya.getArcCentroid(i,s,f,o),h,i,g,u.x,u.y);t[0]=t[0]+u.x,t[1]=t[1]+u.y;const e=fo.getCoordinateByPointer(t);Co.setBlockCoordinate(h,e)}xo.toggleActivityStyle(pt(this),!0),0!==_s.getAllArcClones(t).filter((t=>t.data[r.keyField.name]===f.data[r.keyField.name])).nodes().length||0!==t.filterEventManager.getSelectedKeys().length&&!t.filterEventManager.isSelected(f.data[r.keyField.name])||xo.renderArcCloneAndHighlight(t,s,pt(this),i,o)})),e.on("mouseleave",(function(e,n){Co.hideComponent(h),t.filterEventManager.isSelected(n.data[r.keyField.name])||(xo.removeCloneForElem(t,r.keyField.name,pt(this)),xo.removeShadowClone(t,r.keyField.name,pt(this),s,i,o),xo.toggleDonutHighlightState(pt(this),s,i,o,t.transitionManager.durations.higlightedScale,!1),t.filterEventManager.getSelectedKeys().length>0&&xo.toggleActivityStyle(pt(this),!1))}))}}function ko(t){this._context=t}function So(t){return new ko(t)}function Ao(t){return t[0]}function Mo(t){return t[1]}function _o(t,e){var n=Sa(!0),r=null,a=So,i=null;function s(s){var o,l,c,u=(s=Wa(s)).length,h=!1;for(null==r&&(i=a(c=ka())),o=0;o<=u;++o)!(o<u&&n(l=s[o],o,s))===h&&((h=!h)?i.lineStart():i.lineEnd()),h&&i.point(+t(l,o,s),+e(l,o,s));if(c)return i=null,c+""||null}return t="function"==typeof t?t:void 0===t?Ao:Sa(t),e="function"==typeof e?e:void 0===e?Mo:Sa(e),s.x=function(e){return arguments.length?(t="function"==typeof e?e:Sa(+e),s):t},s.y=function(t){return arguments.length?(e="function"==typeof t?t:Sa(+t),s):e},s.defined=function(t){return arguments.length?(n="function"==typeof t?t:Sa(!!t),s):n},s.curve=function(t){return arguments.length?(a=t,null!=r&&(i=a(r)),s):a},s.context=function(t){return arguments.length?(null==t?r=i=null:i=a(r=t),s):r},s}function Bo(t,e,n){var r=null,a=Sa(!0),i=null,s=So,o=null;function l(l){var c,u,h,d,g,f=(l=Wa(l)).length,p=!1,m=new Array(f),y=new Array(f);for(null==i&&(o=s(g=ka())),c=0;c<=f;++c){if(!(c<f&&a(d=l[c],c,l))===p)if(p=!p)u=c,o.areaStart(),o.lineStart();else{for(o.lineEnd(),o.lineStart(),h=c-1;h>=u;--h)o.point(m[h],y[h]);o.lineEnd(),o.areaEnd()}p&&(m[c]=+t(d,c,l),y[c]=+e(d,c,l),o.point(r?+r(d,c,l):m[c],n?+n(d,c,l):y[c]))}if(g)return o=null,g+""||null}function c(){return _o().defined(a).curve(s).context(i)}return t="function"==typeof t?t:void 0===t?Ao:Sa(+t),e="function"==typeof e?e:Sa(void 0===e?0:+e),n="function"==typeof n?n:void 0===n?Mo:Sa(+n),l.x=function(e){return arguments.length?(t="function"==typeof e?e:Sa(+e),r=null,l):t},l.x0=function(e){return arguments.length?(t="function"==typeof e?e:Sa(+e),l):t},l.x1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:Sa(+t),l):r},l.y=function(t){return arguments.length?(e="function"==typeof t?t:Sa(+t),n=null,l):e},l.y0=function(t){return arguments.length?(e="function"==typeof t?t:Sa(+t),l):e},l.y1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:Sa(+t),l):n},l.lineX0=l.lineY0=function(){return c().x(t).y(e)},l.lineY1=function(){return c().x(t).y(n)},l.lineX1=function(){return c().x(r).y(e)},l.defined=function(t){return arguments.length?(a="function"==typeof t?t:Sa(!!t),l):a},l.curve=function(t){return arguments.length?(s=t,null!=i&&(o=s(i)),l):s},l.context=function(t){return arguments.length?(null==t?i=o=null:o=s(i=t),l):i},l}wo.tooltipBlockClass="tooltip-block",wo.tooltipLineClass="tooltip-line",wo.tooltipWrapperClass="tooltip-wrapper",wo.tooltipContentClass="tooltip-content",wo.tooltipArrowClass="tooltip-arrow",ko.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};class Lo{static getGroupedAreaGenerator(t,e,n,r,a,i){return"bottom"===t||"top"===t?Bo().x((t=>ca.getScaledValue(e.key,t[r])+n.left)).y0((e=>this.getZeroCoordinate(t,n,i))).y1((t=>e.value(t[a])+n.top)):"left"===t||"right"===t?Bo().x0((e=>this.getZeroCoordinate(t,n,i))).x1((t=>e.value(t[a])+n.left)).y((t=>ca.getScaledValue(e.key,t[r])+n.top)):void 0}static getSegmentedAreaGenerator(t,e,n,r){return"bottom"===t||"top"===t?Bo().x((t=>ca.getScaledValue(e.key,t.data[r])+n.left)).y0((t=>e.value(t[0])+n.top)).y1((t=>e.value(t[1])+n.top)):"left"===t||"right"===t?Bo().x0((t=>e.value(t[0])+n.left)).x1((t=>e.value(t[1])+n.left)).y((t=>ca.getScaledValue(e.key,t.data[r])+n.top)):void 0}static getZeroCoordinate(t,e,n){return"bottom"===t?n.height-e.bottom:"top"===t?e.top:"left"===t?e.left:"right"===t?n.width-e.right:void 0}}class Eo{static render(t,e,n,r,a,i,s,o){s.isSegmented?this.renderSegmented(t,e,n,r,a,i,s):this.renderGrouped(t,e,n,r,a,i,s,o)}static update(t,e,n,r,a,i,s,o){let l;return l=i.isSegmented?this.updateSegmented(t,e,n,r,a,i,s):this.updateGrouped(t,e,n,r,a,i,s,o),l}static updateColors(t,e){e.data.valueFields.forEach(((n,r)=>{const a=t.getChartGroup(e.index).select(`.${this.areaChartClass}${da.getCssClassesLine(e.cssClasses)}.chart-element-${r}`);Ms.setChartStyle(a,e.style,r,"fill"),ps.updateColors(t,e,r)}))}static renderGrouped(t,e,n,r,a,i,s,o){s.data.valueFields.forEach(((l,c)=>{const u=Lo.getGroupedAreaGenerator(i,e,a,r.name,l.name,o),h=t.getChartGroup(s.index).append("path").attr("d",u(n)).attr("class",this.areaChartClass).style("clip-path",`url(#${t.getClipPathId()})`).style("pointer-events","none");Ms.setCssClasses(h,da.getCssClassesWithElementIndex(s.cssClasses,c)),Ms.setChartStyle(h,s.style,c,"fill"),ps.render(t,n,i,e,a,r.name,c,l.name,s)}))}static renderSegmented(t,e,n,r,a,i,s){const o=Cs().keys(s.data.valueFields.map((t=>t.name)))(n),l=Lo.getSegmentedAreaGenerator(i,e,a,r.name),c=t.getChartGroup(s.index).selectAll(`.${this.areaChartClass}${da.getCssClassesLine(s.cssClasses)}`).data(o).enter().append("path").attr("d",(t=>l(t))).attr("class",this.areaChartClass).style("clip-path",`url(#${t.getClipPathId()})`).style("pointer-events","none");c.each((function(t,e){Ms.setCssClasses(pt(this),da.getCssClassesWithElementIndex(s.cssClasses,e))})),this.setSegmentColor(c,s.style.elementColors),o.forEach(((n,o)=>{ps.render(t,n,i,e,a,r.name,o,"1",s)}))}static updateGrouped(t,e,n,r,a,i,s,o){const l=[];return i.data.valueFields.forEach(((c,u)=>{const h=Lo.getGroupedAreaGenerator(s,e,a,r.name,c.name,o),d=t.getChartGroup(i.index).select(`.${this.areaChartClass}${da.getCssClassesLine(i.cssClasses)}.chart-element-${u}`),g=this.updateGroupedPath(t,d,h,n);l.push(g),ps.update(t,n,s,e,a,r.name,u,c.name,i)})),l}static updateSegmented(t,e,n,r,a,i,s){const o=Cs().keys(i.data.valueFields.map((t=>t.name)))(n),l=Lo.getSegmentedAreaGenerator(s,e,a,r.name),c=t.getChartGroup(i.index).selectAll(`path.${this.areaChartClass}${da.getCssClassesLine(i.cssClasses)}`).data(o),u=this.updateSegmentedPath(t,c,l);return c.each(((n,o)=>{ps.update(t,n,s,e,a,r.name,o,"1",i)})),[u]}static updateGroupedPath(t,e,n,r){return new Promise((a=>{if(0===e.size())return void a("");let i=e;t.transitionManager.durations.chartUpdate>0&&(i=i.interrupt().transition().duration(t.transitionManager.durations.chartUpdate).on("end",(()=>a("")))),i.attr("d",n(r)),t.transitionManager.durations.chartUpdate<=0&&a("")}))}static updateSegmentedPath(t,e,n){return new Promise((r=>{if(0===e.size())return void r("");let a=e;t.transitionManager.durations.chartUpdate>0&&(a=a.interrupt().transition().duration(t.transitionManager.durations.chartUpdate).on("end",(()=>r("")))),a.attr("d",(t=>n(t))),t.transitionManager.durations.chartUpdate<=0&&r("")}))}static setSegmentColor(t,e){t.style("fill",((t,n)=>e[n%e.length]))}}Eo.areaChartClass="area";class Fo{static getLineGenerator(t,e,n,r,a){return"bottom"===t||"top"===t?_o().x((t=>ca.getScaledValue(e.key,t[n])+a.left)).y((t=>e.value(t[r])+a.top)):"left"===t||"right"===t?_o().x((t=>e.value(t[r])+a.left)).y((t=>ca.getScaledValue(e.key,t[n])+a.top)):void 0}static getSegmentedLineGenerator(t,e,n,r){return"bottom"===t||"top"===t?_o().x((t=>ca.getScaledValue(e.key,t.data[n])+r.left)).y((t=>e.value(t[1])+r.top)):"left"===t||"right"===t?_o().x((t=>e.value(t[1])+r.left)).y((t=>ca.getScaledValue(e.key,t.data[n])+r.top)):void 0}}class To{static render(t,e,n,r,a,i,s){s.isSegmented?this.renderSegmented(t,e,n,r,a,i,s):this.renderGrouped(t,e,n,r,a,i,s)}static update(t,e,n,r,a,i,s){let o;return o=s.isSegmented?this.updateSegmeneted(t,e,n,r,a,i,s):this.updateGrouped(t,e,n,r,a,i,s),o}static updateColors(t,e){e.data.valueFields.forEach(((n,r)=>{const a=t.getChartGroup(e.index).select(`.${this.lineChartClass}${da.getCssClassesLine(e.cssClasses)}.chart-element-${r}`);Ms.setChartStyle(a,e.style,r,"stroke"),ps.updateColors(t,e,r)}))}static renderGrouped(t,e,n,r,a,i,s){s.data.valueFields.forEach(((o,l)=>{const c=Fo.getLineGenerator(i,e,r.name,o.name,a),u=t.getChartGroup(s.index).append("path").attr("d",c(n)).attr("class",this.lineChartClass).style("fill","none").style("clip-path",`url(#${t.getClipPathId()})`).style("pointer-events","none");Ms.setCssClasses(u,da.getCssClassesWithElementIndex(s.cssClasses,l)),Ms.setChartStyle(u,s.style,l,"stroke"),ps.render(t,n,i,e,a,r.name,l,o.name,s)}))}static renderSegmented(t,e,n,r,a,i,s){const o=Cs().keys(s.data.valueFields.map((t=>t.name)))(n),l=Fo.getSegmentedLineGenerator(i,e,r.name,a),c=t.getChartGroup(s.index).selectAll(`.${this.lineChartClass}${da.getCssClassesLine(s.cssClasses)}`).data(o).enter().append("path").attr("d",(t=>l(t))).attr("class",this.lineChartClass).style("fill","none").style("clip-path",`url(#${t.getClipPathId()})`).style("pointer-events","none");c.each((function(t,e){Ms.setCssClasses(pt(this),da.getCssClassesWithElementIndex(s.cssClasses,e))})),this.setSegmentColor(c,s.style.elementColors),o.forEach(((n,o)=>{ps.render(t,n,i,e,a,r.name,o,"1",s)}))}static updateGrouped(t,e,n,r,a,i,s){const o=[];return s.data.valueFields.forEach(((l,c)=>{const u=Fo.getLineGenerator(i,e,r.name,l.name,a),h=t.getChartGroup(s.index).select(`.${this.lineChartClass}${da.getCssClassesLine(s.cssClasses)}.chart-element-${c}`),d=this.updateGroupedPath(t,h,u,n);o.push(d),ps.update(t,n,i,e,a,r.name,c,l.name,s)})),o}static updateSegmeneted(t,e,n,r,a,i,s){const o=Cs().keys(s.data.valueFields.map((t=>t.name)))(n),l=Fo.getSegmentedLineGenerator(i,e,r.name,a),c=t.getChartGroup(s.index).selectAll(`path.${this.lineChartClass}${da.getCssClassesLine(s.cssClasses)}`).data(o),u=this.updateSegmentedPath(t,c,l);return c.each(((n,o)=>{ps.update(t,n,i,e,a,r.name,o,"1",s)})),[u]}static updateGroupedPath(t,e,n,r){return new Promise((a=>{if(0===e.size())return void a("");let i=e;t.transitionManager.durations.chartUpdate>0&&(i=i.interrupt().transition().duration(t.transitionManager.durations.chartUpdate).on("end",(()=>a("")))),i.attr("d",n(r)),t.transitionManager.durations.chartUpdate<=0&&a("")}))}static updateSegmentedPath(t,e,n){return new Promise((r=>{if(0===e.size())return void r("");let a=e;t.transitionManager.durations.chartUpdate>0&&(a=a.interrupt().transition().duration(t.transitionManager.durations.chartUpdate).on("end",(()=>r("")))),a.attr("d",(t=>n(t))),t.transitionManager.durations.chartUpdate<=0&&r("")}))}static setSegmentColor(t,e){t.style("stroke",((t,n)=>e[n%e.length]))}}To.lineChartClass="line";class Do{constructor(t,e=null){this.durations={chartUpdate:1e3,tooltipSlide:75,higlightedScale:200,markerHover:50,elementFadeOut:400},this.transitionableElemClasses=[wo.tooltipBlockClass,wo.tooltipLineClass,go.axesClass,Eo.areaChartClass,As.barItemClass,To.lineChartClass,ps.markerDotClass,ks.embeddedLabelClass,_s.arcPathClass,ma.aggregatorValueClass],this.block=t,e&&this.setDurations(e)}interruptTransitions(){this.transitionableElemClasses.forEach((t=>{this.block.getSvg().selectAll(`.${t}`).interrupt().nodes().forEach((t=>Mi(t)))})),this.block.getSvg().selectAll(`.${go.axesClass}`).selectAll("*").interrupt()}setDurations(t){void 0!==t.chartUpdate&&t.chartUpdate>=0&&(this.durations.chartUpdate=t.chartUpdate),void 0!==t.higlightedScale&&t.higlightedScale>=0&&(this.durations.higlightedScale=t.higlightedScale),void 0!==t.elementFadeOut&&t.elementFadeOut>=0&&(this.durations.elementFadeOut=t.elementFadeOut),void 0!==t.markerHover&&t.markerHover>=0&&(this.durations.markerHover=t.markerHover),void 0!==t.tooltipSlide&&t.tooltipSlide>=0&&(this.durations.tooltipSlide=t.tooltipSlide)}}class Io{static getClipPathAttributes(t,e){return{x:e.left-9,y:e.top-9,width:da.getValueOrZero(t.width-e.left-e.right)+18,height:da.getValueOrZero(t.height-e.top-e.bottom)+18}}static getFormattedCssClassesForWrapper(t){const e=[];return t.forEach((t=>{e.push(t+"-wrapper")})),e}}class $o{constructor(t,e,n,r,a=null){this.chartBlockClass="chart-block",this.chartGroupClass="chart-group",this.wrapperCssClasses=da.getCssClassesArray(t),this.svgCssClasses=da.getCssClassesArray(t),this.wrapperCssClasses=Io.getFormattedCssClassesForWrapper(this.wrapperCssClasses),this.parentElement=e,this.parentElementSelection=pt(e),this.id=n,this.transitionManager=new Do(this,a),this.filterEventManager=r}renderSvg(t){this.getWrapper().append("svg").attr("width",t.width).attr("height",t.height).attr("class",this.svgCssClasses.join(" ")+" "+ga.getClassName("svg-chart"))}renderWrapper(t){this.wrapper=this.parentElementSelection.append("div").attr("class",this.wrapperCssClasses.join(" ")).style("width",t.width+"px").style("height",t.height+"px").style("position","relative")}destroy(){this.transitionManager.interruptTransitions(),this.removeMouseEvents(),this.getWrapper().remove()}getSvg(){return this.getWrapper().select(`svg.${ga.getClassName("svg-chart")}`)}getWrapper(){return this.wrapper}renderChartsBlock(){this.getSvg().append("g").attr("class",this.chartBlockClass)}getChartBlock(){return this.getSvg().select(`.${this.chartBlockClass}`)}getChartGroup(t){let e=this.getChartBlock().select(`.${this.chartGroupClass}-${t}`);return e.empty()&&(e=this.getChartBlock().append("g").attr("class",`${this.chartGroupClass}-${t}`)),e}renderChartClipPath(t,e){const n=Io.getClipPathAttributes(e,t);this.renderDefs().append("clipPath").attr("id",this.getClipPathId()).append("rect").attr("x",n.x).attr("y",n.y).attr("width",n.width).attr("height",n.height)}updateChartClipPath(t,e){const n=Io.getClipPathAttributes(e,t);this.renderDefs().select("clipPath").select("rect").attr("x",n.x).attr("y",n.y).attr("width",n.width).attr("height",n.height)}getClipPathId(){return ga.getId("clip-path",this.id)}renderDefs(){let t=this.getSvg().select("defs");return t.empty()&&(t=this.getSvg().append("defs")),t}removeMouseEvents(){const t=this.getSvg().selectAll(`.${ha.tipBoxClass}`);t.on("mousemove",null),t.on("mouseover",null),t.on("mouseleave",null),t.on("click",null);const e=_s.getAllArcGroups(this);e.on("mouseover",null),e.on("mouseleave",null),e.on("mousemove",null),e.on("click",null)}clearWrapper(){this.getWrapper().selectAll("*").remove()}}class zo{static getGridLineLength(t,e,n,r,a){let i,s;return i="key"===t?e:n,s="left"===i.orient||"right"===i.orient?r.width-a.left-a.right:r.height-a.top-a.bottom,"right"!==i.orient&&"bottom"!==i.orient||(s=-s),s}static getLineAttributes(t,e){const n={x1:0,y1:0,x2:0,y2:0};return"left"===t.orient||"right"===t.orient?n.x2=e:n.y2=e,n}}class Oo{static render(t,e,n,r,a,i){if(e.value){const e=zo.getGridLineLength("value",n.key,n.value,r,a),i=zo.getLineAttributes(n.value,e);this.renderLine(t,n.value,i)}if(e.key){const e=zo.getGridLineLength("key",n.key,n.value,r,a),i=zo.getLineAttributes(n.key,e);this.renderLine(t,n.key,i)}"point"===i.type&&(e.key||e.value)?this.removeGridLinesOnAxes(t,n.key,n.value,!1):(e.key||e.value)&&this.removeGridLinesOnAxes(t,n.key,n.value,!0)}static update(t,e,n,r,a,i){this.clear(t,n.key.cssClass,n.value.cssClass),this.render(t,e,n,r,a,i)}static renderLine(t,e,n){t.getSvg().selectAll(`.${e.cssClass}`).selectAll("g.tick").append("line").attr("class",this.gridLineClass).attr("x1",n.x1).attr("y1",n.y1).attr("x2",n.x2).attr("y2",n.y2)}static clear(t,e,n){t.getSvg().selectAll(`.${e} `).selectAll("g.tick").selectAll(`.${this.gridLineClass}`).remove(),t.getSvg().selectAll(`.${n}`).selectAll("g.tick").selectAll(`.${this.gridLineClass}`).remove()}static removeGridLinesOnAxes(t,e,n,r){let a="",i="";"right"!==n.orient&&"bottom"!==n.orient||(i=":last-of-type"),"bottom"!==e.orient&&"right"!==e.orient||(a=":last-of-type"),t.getSvg().select(`.${n.cssClass}`).select(`g.tick${a}`).select(`.${this.gridLineClass}`).remove(),r||t.getSvg().select(`.${e.cssClass}`).select(`g.tick${i}`).select(`.${this.gridLineClass}`).remove()}}Oo.gridLineClass="grid-line";class Po{static getLegendItemsContent(t,e){if("2d"===t.type){let e=[];return t.charts.forEach((t=>{e=e.concat(t.data.valueFields.map((t=>t.title)))})),e}return"polar"===t.type?e[t.data.dataSource].map((e=>e[t.data.keyField.name])):"interval"===t.type?t.charts.map((t=>t.data.valueField1.name)):void 0}static getMarksColor(t){if("2d"===t.type){let e=[];return t.charts.forEach((t=>{e=e.concat(t.style.elementColors)})),e}return"polar"===t.type?t.charts.map((t=>t.style.elementColors))[0]:"interval"===t.type?t.charts.map((t=>t.style.elementColors[0])):void 0}static getMaxItemWidth(t,e,n){if("row"===n){const n=da.getSumOfNumeric(e);return(parseFloat(t)-n)/e.length}return parseFloat(t)}static getItemClasses(t,e,n){let r=this.getLegendItemClassByDirection(t);return"column"===t&&0!==n&&(r+=` ${this.getLegendItemsMarginClass(e)}`),r}static getLegendItemClassByDirection(t){return"column"===t?"legend-item-row":"legend-item-inline"}static getLegendItemsMarginClass(t){return"right"===t?"mt-15":"mt-10"}static getLegendLabelClassByPosition(t){return"top"===t||"bottom"===t?`${Go.labelClass} ${Go.labelClass+"-nowrap"}`:Go.labelClass}static getLegendItemsDirection(t,e){return"right"===e||"left"===e||"polar"===t?"column":"row"}static getSumOfItemsWidths(t,e){let n=da.getSumOfNumeric(t);return n+=da.getSumOfNumeric(e),n}static getLegendCoordinateByPosition(t,e,n){const r=e.coordinate[t],a={x:0,y:0,width:0,height:0};return"left"===t||"right"===t?(a.y=r.margin.top+r.pad,a.width=r.size,a.height=n.height-r.margin.top-r.margin.bottom):"bottom"!==t&&"top"!==t||(a.x=r.margin.left,a.width=n.width-r.margin.left-r.margin.right,a.height=r.size),"left"===t?a.x=r.margin.left:"right"===t?a.x=n.width-r.size-r.margin.right:"top"===t?a.y=r.margin.top+r.pad:"bottom"===t&&(a.y=n.height-r.size-r.margin.bottom),a}}class No{static setItemsTitles(t){t.attr("title",(t=>t))}static setItemsColors(t,e){t.select(`.${Go.markerClass}`).style("background-color",((t,n)=>e[n%e.length]))}static cropRowLabels(t,e){const n=t.node().getBoundingClientRect().width;let r=this.getItemsLeftMargins(e),a=this.getItemsWidth(e),i=Po.getSumOfItemsWidths(a,r);const s=Po.getMaxItemWidth(t.attr("width"),r,"row");let o=0,l=!0;for(;i>n&&l;)e.nodes().forEach((t=>{const n=t.querySelector(`.${Go.labelClass}`);if(t.getBoundingClientRect().width>s&&n.textContent){let t=o>0?n.textContent.substr(0,n.textContent.length-3):n.textContent;t=t.substr(0,t.length-1),n.textContent=t+"...",r=this.getItemsLeftMargins(e),a=this.getItemsWidth(e),i=Po.getSumOfItemsWidths(a,r),0===t.length&&(n.textContent="",l=!1)}})),o++}static getItemsLeftMargins(t){return t.nodes().map((t=>da.getPXValueFromString(Ms.getCssPropertyValue(t,"margin-left"))))}static getItemsWidth(t){return t.nodes().map((t=>t.getBoundingClientRect().width))}}class Go{static render(t,e,n,r){if("off"!==n.legend.position){const a=this.renderObject(t,n.legend.position,r.otherComponents.legendBlock,r.blockCanvas.size);this.setContent(t,e,n,a)}}static update(t,e,n){if("off"!==n.options.legend.position){const r=this.getObject(t),a=Po.getLegendCoordinateByPosition(n.options.legend.position,n.otherComponents.legendBlock,n.blockCanvas.size);this.fillCoordinate(r,a),this.removeContent(r),this.setContent(t,e,n.options,r)}}static updateColors(t,e){const n=this.getObject(t),r=Po.getMarksColor(e),a=n.selectAll(`.${this.itemClass}`);No.setItemsColors(a,r)}static getItemsByKeys(t,e,n=hs.Include){return t.getSvg().selectAll(`.${this.itemClass}`).filter((t=>{const r=e.findIndex((e=>e===t));return n===hs.Include?-1!==r:-1===r}))}static setContent(t,e,n,r){const a=Po.getLegendItemsContent(n,e),i=Po.getMarksColor(n),s=Po.getLegendItemsDirection(n.type,n.legend.position),o=this.renderContent(r,a,i,s,n.legend.position);"polar"===n.type?class{static setListeners(t,e,n,r){this.setHoverListeners(t,e,n),r&&this.setClickListeners(t,e,n)}static setHoverListeners(t,e,n){const r=_s.getAllArcGroups(t);n.on("mousemove",(function(n,a){r.filter((t=>t.data[e]===a)).dispatch("mousemove",{bubbles:!1,cancelable:!0,detail:{pointer:uo(n,t.getWrapper().node()),ignoreTranslate:!0}})})),n.on("mouseover",(function(t,n){r.filter((t=>t.data[e]===n)).dispatch("mouseover"),xo.toggleActivityStyle(pt(this),!0)})),n.on("mouseleave",(function(n,a){r.filter((t=>t.data[e]===a)).dispatch("mouseleave"),!t.filterEventManager.isSelected(a)&&t.filterEventManager.getSelectedKeys().length>0&&xo.toggleActivityStyle(pt(this),!1)}))}static setClickListeners(t,e,n){const r=_s.getAllArcGroups(t);n.on("click",((t,n)=>{r.filter((t=>t.data[e]===n)).dispatch("click",{bubbles:!1,cancelable:!0,detail:{multySelect:t.ctrlKey||t.metaKey}})}))}}.setListeners(t,n.data.keyField.name,o,n.selectable):No.setItemsTitles(o)}static renderObject(t,e,n,r){const a=t.getSvg().append("foreignObject").attr("class",Go.objectClass),i=Po.getLegendCoordinateByPosition(e,n,r);return this.fillCoordinate(a,i),a}static renderContent(t,e,n,r,a){const i=t.append("xhtml:div").attr("class",Go.legendBlockClass);i.style("height","100%").style("display","flex"),"column"===r&&(i.style("flex-direction","column"),"right"===a&&i.style("justify-content","center"));const s=i.selectAll(`.${this.itemClass}`).data(e).enter().append("div"),o=this;return s.each((function(t,e){pt(this).attr("class",`${o.itemClass} ${Po.getItemClasses(r,a,e)}`)})),s.append("span").attr("class",this.markerClass),No.setItemsColors(s,n),s.append("span").attr("class",Po.getLegendLabelClassByPosition(a)).text((t=>t)),"row"===r&&No.cropRowLabels(t,s),s}static getObject(t){return t.getSvg().select(`foreignObject.${Go.objectClass}`)}static removeContent(t){t.select(`.${Go.legendBlockClass}`).remove()}static fillCoordinate(t,e){t.attr("x",e.x).attr("y",e.y).attr("width",e.width).attr("height",e.height)}}Go.objectClass="legend-object",Go.labelClass="legend-label",Go.itemClass="legend-item",Go.markerClass="legend-circle",Go.legendBlockClass="legend-block";class Ko{static render(t,e,n,r=null){const a=t.getWrapper().append("div").attr("class",this.blockClass).text(this.getAlertText(e,r)),i=this.getBlockPositionAttrs(n,t);this.setAlertPosition(a,i)}static update(t,e,n,r=null){let a=t.getWrapper().select(`div.${this.blockClass}`);if(a.empty()){if(0===e)return;this.render(t,e,n,r)}else 0===e?a.remove():a.text(this.getAlertText(e,r))}static setAlertPosition(t,e){t.style("position","absolute").style("left",e.left).style("right",e.right).style("top",e.top).style("bottom",e.bottom)}static getAlertText(t,e){return`+ ${t} ${this.getWordTextEndingByAmount(t,e)}`}static getWordTextEndingByAmount(t,e){const n=t%10;return"vertical"===e?t>=10&&t<=20?"столбцов":1===n?"столбец":n>=2&&n<=4?"столбца":"столбцов":"horizontal"===e?t>=10&&t<=20?"строк":1===n?"строка":n>=2&&n<=4?"строки":"строк":t>=10&&t<=20?"категорий":1===n?"категория":n>=2&&n<=4?"категории":"категорий"}static getBlockPositionAttrs(t,e){const n={bottom:null,top:null,right:null,left:null};return"top"===t&&(n.right="17px",n.top="1rem"),"right"===t&&(n.bottom="20px",n.left=this.getLeftAttrForRightBlock(e)+"px"),"bottom"===t&&(n.left="20px",n.bottom="20px"),n}static getLeftAttrForRightBlock(t){const e=t.getSvg().select(`.${Go.objectClass}`);return e.empty()?null:Ms.getSelectionNumericAttr(e,"x")}}Ko.blockClass="record-overflow-alert";class Vo{static render(t,e,n,r){const a=t.getSvg().append("text").attr("class","chart-title"),i=this.getTitleAttributes(r,n);this.fillTitleBlockAttributes(a,i,e),this.setTitleTooltip(a,e)}static fillTitleBlockAttributes(t,e,n){t.attr("x",e.x).attr("y",e.y).attr("dominant-baseline",e.dominantBaseline).text(n),Ms.cropSvgLabels(t,e.maxWidth)}static getTitleAttributes(t,e){const n={x:0,y:0,maxWidth:0,dominantBaseline:"hanging"};return n.x=e.margin.left,n.y=e.margin.top,n.maxWidth=t.width-e.margin.left-e.margin.right,n}static setTitleTooltip(t,e){t.append("title").text(e)}}class Ro{static render(t,e){const n=e.options,r=ca.getScales(n.scale.key,n.scale.value,e.chartSettings.bar);t.block.scales=r,t.block.renderSvg(e.blockCanvas.size),go.render(t.block,r,n.scale,n.axis,e.blockCanvas.size),Oo.render(t.block,n.additionalElements.gridLine.flag,n.axis,e.blockCanvas.size,e.chartBlock.margin,n.scale.key),this.renderCharts(t.block,n.charts,r,t.data,n.data,e.chartBlock.margin,n.axis.key.orient,e.chartSettings.bar,e.blockCanvas.size),t.block.filterEventManager.registerEventFor2D(r.key,e.chartBlock.margin,e.blockCanvas.size,n),t.block.filterEventManager.event2DUpdate(n),Vo.render(t.block,n.title,e.otherComponents.titleBlock,e.blockCanvas.size),Go.render(t.block,t.data,n,e),wo.render(t.block,e,t.data,e.otherComponents.tooltipBlock,r),0!==e.dataSettings.scope.hidedRecordsAmount&&Ko.render(t.block,e.dataSettings.scope.hidedRecordsAmount,"top",n.orient),t.block.getSvg().on("click",(e=>{e.target===t.block.getSvg().node()&&t.block.filterEventManager.clearKeysFor2D(n)}))}static updateData(t,e,n){t.transitionManager.interruptTransitions(),t.filterEventManager.updateData(n[e.options.data.dataSource]),ha.clearEvents(t),wo.hide(t);const r=e.options;xo.remove2DChartsFullHighlighting(t,r.charts);const a=ca.getScales(r.scale.key,r.scale.value,e.chartSettings.bar),i=da.checkDomainsEquality(t.scales.key.domain(),a.key.domain());t.scales=a,go.update(t,a,r.scale,r.axis,e.blockCanvas.size,i),Oo.update(t,r.additionalElements.gridLine.flag,r.axis,e.blockCanvas.size,e.chartBlock.margin,r.scale.key);const s=this.updateCharts(t,r.charts,a,n,e.options.data,e.chartBlock.margin,r.axis.key.orient,e.blockCanvas.size,e.chartSettings.bar);Promise.all(s).then((()=>{t.filterEventManager.event2DUpdate(r),t.filterEventManager.registerEventFor2D(a.key,e.chartBlock.margin,e.blockCanvas.size,r),wo.render(t,e,n,e.otherComponents.tooltipBlock,a)})),Ko.update(t,e.dataSettings.scope.hidedRecordsAmount,"top",r.orient)}static updateColors(t,e){Go.updateColors(t,e.options),e.options.charts.forEach((e=>{"bar"===e.type?As.updateColors(t,e):"line"===e.type?To.updateColors(t,e):"area"===e.type&&Eo.updateColors(t,e)}))}static renderCharts(t,e,n,r,a,i,s,o,l){t.renderChartClipPath(i,l),t.renderChartsBlock(),e.forEach((c=>{"bar"===c.type?As.render(t,n,r[a.dataSource],a.keyField,i,s,c,l,o,Ss.getBarsInGroupAmount(e),c.isSegmented,e.findIndex((t=>"bar"===t.type))):"line"===c.type?To.render(t,n,r[a.dataSource],a.keyField,i,s,c):"area"===c.type&&Eo.render(t,n,r[a.dataSource],a.keyField,i,s,c,l)})),ks.raiseGroups(t)}static updateCharts(t,e,n,r,a,i,s,o,l){t.updateChartClipPath(i,o);let c=[];return e.forEach((u=>{let h;"bar"===u.type?h=As.update(t,r[a.dataSource],n,i,s,u,o,Ss.getBarsInGroupAmount(e),a.keyField,e.findIndex((t=>"bar"===t.type)),l,u.isSegmented):"line"===u.type?h=To.update(t,n,r[a.dataSource],a.keyField,i,s,u):"area"===u.type&&(h=Eo.update(t,n,r[a.dataSource],a.keyField,i,u,s,o)),c.push(...h)})),c}}class Ho{static render(t,e){const n=e.options;t.block.renderSvg(e.blockCanvas.size),this.renderCharts(t.block,n.charts,t.data,n.data.dataSource,e.chartBlock.margin,e.blockCanvas.size,e.chartSettings.donut),Vo.render(t.block,n.title,e.otherComponents.titleBlock,e.blockCanvas.size),Go.render(t.block,t.data,n,e),wo.render(t.block,e,t.data,e.otherComponents.tooltipBlock),t.block.filterEventManager.setListenerPolar(e.chartBlock.margin,e.blockCanvas.size,n,e.chartSettings.donut),0!==e.dataSettings.scope.hidedRecordsAmount&&"off"!==e.options.legend.position&&Ko.render(t.block,e.dataSettings.scope.hidedRecordsAmount,e.options.legend.position),t.block.getSvg().on("click",(r=>{r.target===t.block.getSvg().node()&&t.block.filterEventManager.clearKeysForPolar(e.chartBlock.margin,e.blockCanvas.size,n,e.chartSettings.donut)}))}static update(t,e,n){t.transitionManager.interruptTransitions(),t.removeMouseEvents(),t.filterEventManager.updateData(n[e.options.data.dataSource]),xo.removeDonutArcClones(t),xo.removeFilter(_s.getAllArcGroups(t)),xo.toggleActivityStyle(_s.getAllArcGroups(t),!0),wo.hide(t);const r=e.options;_s.update(t,n[r.data.dataSource],e.chartBlock.margin,r.charts[0],e.blockCanvas.size,e.chartSettings.donut,r.data.keyField.name).then((()=>{wo.render(t,e,n,e.otherComponents.tooltipBlock),t.filterEventManager.setListenerPolar(e.chartBlock.margin,e.blockCanvas.size,r,e.chartSettings.donut)})),ma.update(t,n[r.data.dataSource],r.charts[0].data.valueField,e.chartSettings.donut.aggregatorPad),Go.update(t,n,e),"off"!==e.options.legend.position&&Ko.update(t,e.dataSettings.scope.hidedRecordsAmount,e.options.legend.position)}static updateColors(t,e){Go.updateColors(t,e.options),_s.updateColors(t,e.options.charts[0])}static renderCharts(t,e,n,r,a,i,s){e.forEach((e=>{"donut"===e.type&&_s.render(t,n[r],a,e,i,s)}))}}class Wo{static render(t,e,n,r,a,i,s,o){const l=t.getChartBlock().selectAll(`.${this.ganttItemClass}`).data(e).enter().append("rect").attr("class",this.ganttItemClass).style("clip-path",`url(#${t.getClipPathId()})`),c=this.getItemsAttrsByKeyOrient(i,r,a,n.keyField.name,s.data.valueField1.name,s.data.valueField2.name,o);this.fillItemsAttrs(l,c),Ms.setCssClasses(l,s.cssClasses),Ms.setChartStyle(l,s.style,0,"fill")}static fillItemsAttrs(t,e){t.attr("x",(t=>e.x(t))).attr("y",(t=>e.y(t))).attr("width",(t=>e.width(t))).attr("height",(t=>e.height(t)))}static getItemsAttrsByKeyOrient(t,e,n,r,a,i,s){const o={x:null,y:null,width:null,height:null},l=ca.getScaleBandWidth(e.key)>s.maxBarWidth?s.maxBarWidth:ca.getScaleBandWidth(e.key),c=(ca.getScaleBandWidth(e.key)-l)/2;return"top"!==t&&"bottom"!==t||(o.x=t=>e.key(t[r])+n.left+c,o.width=t=>l),"left"!==t&&"right"!==t||(o.y=t=>e.key(t[r])+n.top+c,o.height=t=>l),"top"===t?(o.y=t=>e.value(t[a])+n.top,o.height=t=>e.value(t[i])-e.value(t[a])):"bottom"===t?(o.y=t=>e.value(t[i])+n.top,o.height=t=>e.value(t[a])-e.value(t[i])):"left"===t?(o.x=t=>e.value(t[a])+n.left,o.width=t=>e.value(t[i])-e.value(t[a])):"right"===t&&(o.x=t=>e.value(t[i])+n.left,o.width=t=>e.value(t[a])-e.value(t[i])),o}}Wo.ganttItemClass="gantt-item";class Uo{static render(t,e,n){"2d"===t.options.type?Ro.render(n,t):"polar"===t.options.type?Ho.render(n,t):"interval"===t.options.type&&class{static render(t,e,n){const r=e.options;t.renderSvg(e.blockCanvas.size);const a=ca.getScales(r.scale.key,r.scale.value,e.chartSettings.bar);go.render(t,a,r.scale,r.axis,e.blockCanvas.size),Oo.render(t,r.additionalElements.gridLine.flag,r.axis,e.blockCanvas.size,e.chartBlock.margin,r.scale.key),this.renderCharts(t,r.charts,a,n,r.data,e.chartBlock.margin,r.axis.key.orient,e.chartSettings),Vo.render(t,r.title,e.otherComponents.titleBlock,e.blockCanvas.size),Go.render(t,n,r,e),wo.render(t,e,n,e.otherComponents.tooltipBlock,a),0!==e.dataSettings.scope.hidedRecordsAmount&&Ko.render(t,e.dataSettings.scope.hidedRecordsAmount,"top",r.orient)}static renderCharts(t,e,n,r,a,i,s,o){t.renderChartsBlock(),e.forEach((e=>{"gantt"===e.type&&Wo.render(t,r[a.dataSource],a,n,i,s,e,o.bar)}))}}.render(n.block,t,e)}static updateData(t,e,n){"2d"===e.options.type?Ro.updateData(t,e,n):"polar"===e.options.type&&Ho.update(t,e,n)}static updateColors(t,e){"2d"===e.options.type?Ro.updateColors(t.block,e):"polar"===e.options.type&&Ho.updateColors(t.block,e)}}class jo{static click2DHandler(t,e,n,r,a,i){i.charts.forEach((s=>{const o=Ms.getChartElementsByKeys(Ms.get2DChartElements(a,s),s.isSegmented,i.data.keyField.name,[n]),l=Ms.get2DChartElements(a,s);if(!e)return xo.toggle2DElements(o,!1,s.type,a.transitionManager.durations.markerHover),"bar"===s.type||s.markersOptions.show||xo.toggleMarkDotVisible(o,!1),void(r.length>0?xo.toggleActivityStyle(o,!1):(xo.toggleActivityStyle(l,!0),"bar"===s.type||s.markersOptions.show||xo.toggleMarkDotVisible(l,!1)));t?(xo.toggle2DElements(o,!0,s.type,a.transitionManager.durations.markerHover),xo.toggleActivityStyle(o,!0),xo.toggleActivityStyle(Ms.getChartElementsByKeys(l,s.isSegmented,i.data.keyField.name,r,hs.Exclude),!1)):(xo.toggle2DElements(Ms.getChartElementsByKeys(l,s.isSegmented,i.data.keyField.name,r,hs.Exclude),!1,s.type,a.transitionManager.durations.markerHover),xo.toggleActivityStyle(l,!1),"bar"===s.type||s.markersOptions.show||xo.toggleMarkDotVisible(l,!1),xo.toggleActivityStyle(o,!0),xo.toggle2DElements(o,!0,s.type,a.transitionManager.durations.markerHover)),"bar"===s.type||s.markersOptions.show||xo.toggleMarkDotVisible(o,!0)}))}static clickPolarHandler(t,e,n,r,a,i,s,o,l,c){const u=Ya.getThickness(c,i,a);if(!e)return xo.toggleDonutHighlightState(n,a,i,u,s.transitionManager.durations.higlightedScale,!1),xo.removeCloneForElem(s,o.data.keyField.name,n),xo.removeShadowClone(s,o.data.keyField.name,n,a,i,u),void(r.length>0?(xo.toggleActivityStyle(n,!1),xo.toggleActivityStyle(Go.getItemsByKeys(s,r,hs.Exclude),!1)):(xo.toggleActivityStyle(_s.getAllArcGroups(s),!0),xo.toggleActivityStyle(Go.getItemsByKeys(s,[],hs.Exclude),!0)));t?(xo.removeCloneForElem(s,o.data.keyField.name,n),xo.removeShadowClone(s,o.data.keyField.name,n,a,i,u),xo.renderArcCloneAndHighlight(s,a,n,i,u),xo.toggleActivityStyle(n,!0),xo.toggleActivityStyle(Ms.getChartElementsByKeys(_s.getAllArcGroups(s),!0,o.data.keyField.name,r,hs.Exclude),!1)):(xo.removeDonutHighlightingByKeys(l,o.data.keyField.name,r,a,i,u),xo.removeDonutArcClones(s),xo.toggleActivityStyle(_s.getAllArcGroups(s),!1),xo.toggleActivityStyle(n,!0),xo.renderArcCloneAndHighlight(s,a,n,i,u)),xo.toggleActivityStyle(Go.getItemsByKeys(s,r,hs.Exclude),!1),xo.toggleActivityStyle(Go.getItemsByKeys(s,r),!0)}static clear2D(t,e){e.charts.forEach((e=>{const n=Ms.get2DChartElements(t,e);xo.toggle2DElements(n,!1,e.type,t.transitionManager.durations.markerHover),xo.toggleActivityStyle(n,!0),"bar"===e.type||e.markersOptions.show||xo.toggleMarkDotVisible(n,!1)}))}static clearPolar(t,e,n,r,a,i){const s=Ya.getThickness(i,e,t);xo.toggleDonutHighlightState(a,t,e,s,n.transitionManager.durations.higlightedScale,!1),a.each((function(){xo.removeCloneForElem(n,r.data.keyField.name,pt(this)),xo.removeShadowClone(n,r.data.keyField.name,pt(this),t,e,s)})),xo.toggleActivityStyle(_s.getAllArcGroups(n),!0),xo.toggleActivityStyle(Go.getItemsByKeys(n,[],hs.Exclude),!0)}}class Yo{constructor(t,e,n,r,a=[]){this.callback=t,this.fullDataset=e,this.selectedKeys=da.getKeysByIds(a,r,e),this.filterable=n}setBlock(t){this.block=t}getSelectedKeys(){return this.selectedKeys}updateData(t){this.fullDataset=t}isSelected(t){return-1!==this.selectedKeys.findIndex((e=>e===t))}clearKeysFor2D(t){this.selectedKeys=[],this.callback&&this.callback([]),jo.clear2D(this.block,t)}clearKeysForPolar(t,e,n,r){this.selectedKeys=[],this.callback&&this.callback([]),jo.clearPolar(t,e,this.block,n,_s.getAllArcGroups(this.block),r)}setKey(t){this.selectedKeys=[t]}addId(t){this.selectedKeys.push(t)}removeId(t){this.selectedKeys.splice(this.selectedKeys.findIndex((e=>e===t)),1)}processKey(t,e){return t?-1===this.getSelectedKeys().findIndex((t=>t===e))?(this.addId(e),!0):(this.removeId(e),!1):this.getSelectedKeys()[0]===e&&1===this.getSelectedKeys().length?(this.removeId(e),!1):(this.setKey(e),!0)}setListenerPolar(t,e,n,r){if(this.filterable){this.registerEventToDonut(t,e,n,r);const a=_s.getAllArcGroups(this.block).filter((t=>-1!==this.selectedKeys.findIndex((e=>e===t.data[n.data.keyField.name]))));this.selectedKeys=[],a.dispatch("click",{bubbles:!1,cancelable:!0,detail:{multySelect:!0}})}}event2DUpdate(t){if(this.filterable){const e=[];this.selectedKeys.forEach((n=>{-1===this.fullDataset.findIndex((e=>e[t.data.keyField.name]===n))&&e.push(n)})),e.forEach((t=>this.selectedKeys.splice(this.selectedKeys.findIndex((e=>e===t)),1))),this.selectedKeys.forEach((e=>{jo.click2DHandler(!0,!0,e,this.selectedKeys,this.block,t)}))}}registerEventFor2D(t,e,n,r){if(this.filterable){const a=ha.renderOrGet(this.block,e,n),i=this;a.on("click",(function(a){const s=i.getMultySelectParam(a),o=a.detail.keyValue||ua.getKeyValueByPointer(uo(a,this),r.orient,e,n,t,r.scale.key.type),l=i.processKey(s,o);jo.click2DHandler(s,l,o,i.selectedKeys,i.block,r),i.callback&&i.callback(da.getRowsByKeys(i.selectedKeys,r.data.keyField.name,i.fullDataset))}))}}registerEventToDonut(t,e,n,r){const a=_s.getAllArcGroups(this.block),i=this;a.on("click",(function(s,o){const l=i.getMultySelectParam(s),c=o.data[n.data.keyField.name],u=i.processKey(l,c);jo.clickPolarHandler(l,u,pt(this),i.getSelectedKeys(),t,e,i.block,n,a,r),i.callback&&i.callback(da.getRowsByKeys(i.selectedKeys,n.data.keyField.name,i.fullDataset))}))}getMultyParamByEvent(t){return t.ctrlKey||t.metaKey}getMultySelectParam(t){const e=this.getMultyParamByEvent(t);return void 0===e?void 0!==t.detail.multySelect&&t.detail.multySelect:e}}class qo{constructor(t,e,n){this.filterCallback=e,this.initializeSelected=n,this.chartId=t}render(t,e,n){this.data=e,this.setFilterEventManager(null==t?void 0:t.options),this.block=new $o(t.blockCanvas.cssClass,n,this.chartId,this.filterEventManager,t.transitions),this.filterEventManager.setBlock(this.block),this.block.renderWrapper(t.blockCanvas.size),t.options&&(pa.setFormatFunction(t.dataSettings.format.formatters),this.renderCharts(t,this.data))}updateFullBlock(t,e){this.destroy(),this.render(t,e,this.block.parentElement)}destroy(){this.block.destroy()}updateData(t,e){if(e)if(this.data){if(!da.compareData(this.data,e,t.options.data.dataSource)){for(let t in e)this.data[t]=e[t];Uo.updateData(this.block,t,e)}}else this.data=e,this.updateFullBlock(t,this.data);else this.data=e,this.block.clearWrapper()}updateColors(t){Uo.updateColors(this,t)}renderCharts(t,e){Uo.render(t,e,this)}setFilterEventManager(t){var e,n,r;let a=[];this.initializeSelected instanceof Array&&this.initializeSelected.length>0&&(a=[...this.initializeSelected]),(null===(e=null==t?void 0:t.data)||void 0===e?void 0:e.dataSource)?this.filterEventManager=new Yo(this.filterCallback,this.data[t.data.dataSource],t.selectable,t.data.keyField.name,a):this.filterEventManager=new Yo(this.filterCallback,[],null==t?void 0:t.selectable,null===(r=null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.keyField)||void 0===r?void 0:r.name,a)}}class Xo{constructor(t,e,n,r=!1,a=null,i=[]){this.resizeHandler=this.resizeListener.bind(this),Xo.chartCounter++,this.config=t,this.designerConfig=e,this.data=n,this.isResizable=r,this.model=Hs(this.config,this.data,this.designerConfig),this.engine=new qo(Xo.chartCounter,a,i)}render(t){this.parentElement=t,this.engine.render(this.model,Us(this.model,this.data,this.config),this.parentElement),this.isResizable&&this.registerResizeEvent()}destroy(){this.engine.destroy(),this.isResizable&&this.removeResizeEvent()}updateData(t){this.model=Hs(this.config,t,this.designerConfig),this.data=t,this.engine.updateData(this.model,Us(this.model,this.data,this.config))}updateSize(t){t.height&&(this.config.canvas.size.height=t.height),t.width&&(this.config.canvas.size.width=t.width),this.model=Hs(this.config,this.data,this.designerConfig),this.engine.updateFullBlock(this.model,Us(this.model,this.data,this.config))}updateColors(t){this.designerConfig.chartStyle.baseColors=[...t],this.model=Hs(this.config,this.data,this.designerConfig),this.engine.updateColors(this.model)}registerResizeEvent(){window.addEventListener("resize",this.resizeHandler)}removeResizeEvent(){window.removeEventListener("resize",this.resizeHandler)}resizeListener(){this.updateSize({height:null,width:this.parentElement.offsetWidth})}}Xo.chartCounter=0})()})();