semiotic 3.1.2 → 3.2.1

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 (133) hide show
  1. package/CLAUDE.md +173 -213
  2. package/LICENSE +197 -10
  3. package/README.md +12 -11
  4. package/ai/dist/componentRegistry.js +6 -0
  5. package/ai/dist/mcp-server.js +115 -5
  6. package/ai/examples.md +184 -0
  7. package/ai/schema.json +4140 -888
  8. package/ai/system-prompt.md +36 -1
  9. package/dist/components/ChartContainer.d.ts +2 -0
  10. package/dist/components/DataSummaryContext.d.ts +12 -0
  11. package/dist/components/ThemeProvider.d.ts +5 -3
  12. package/dist/components/Tooltip/FlippingTooltip.d.ts +34 -0
  13. package/dist/components/charts/geo/ChoroplethMap.d.ts +1 -1
  14. package/dist/components/charts/index.d.ts +12 -1
  15. package/dist/components/charts/ordinal/BarChart.d.ts +4 -1
  16. package/dist/components/charts/ordinal/BoxPlot.d.ts +4 -1
  17. package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
  18. package/dist/components/charts/ordinal/DotPlot.d.ts +4 -1
  19. package/dist/components/charts/ordinal/FunnelChart.d.ts +57 -0
  20. package/dist/components/charts/ordinal/GroupedBarChart.d.ts +4 -1
  21. package/dist/components/charts/ordinal/Histogram.d.ts +17 -2
  22. package/dist/components/charts/ordinal/LikertChart.d.ts +94 -0
  23. package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
  24. package/dist/components/charts/ordinal/RidgelinePlot.d.ts +12 -7
  25. package/dist/components/charts/ordinal/StackedBarChart.d.ts +4 -1
  26. package/dist/components/charts/ordinal/SwarmPlot.d.ts +15 -1
  27. package/dist/components/charts/ordinal/SwimlaneChart.d.ts +65 -0
  28. package/dist/components/charts/ordinal/ViolinPlot.d.ts +17 -2
  29. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +20 -0
  30. package/dist/components/charts/shared/annotationResolvers.d.ts +28 -0
  31. package/dist/components/charts/shared/colorManipulation.d.ts +15 -0
  32. package/dist/components/charts/shared/formatUtils.d.ts +28 -0
  33. package/dist/components/charts/shared/hatchPattern.d.ts +35 -0
  34. package/dist/components/charts/shared/hooks.d.ts +39 -3
  35. package/dist/components/charts/shared/legendUtils.d.ts +2 -1
  36. package/dist/components/charts/shared/selectionUtils.d.ts +16 -1
  37. package/dist/components/charts/shared/statisticalOverlays.d.ts +49 -5
  38. package/dist/components/charts/shared/statsTooltip.d.ts +11 -0
  39. package/dist/components/charts/shared/types.d.ts +26 -2
  40. package/dist/components/charts/shared/useChartSetup.d.ts +12 -2
  41. package/dist/components/charts/shared/useLikertAggregation.d.ts +51 -0
  42. package/dist/components/charts/shared/useOrdinalBrush.d.ts +28 -0
  43. package/dist/components/charts/shared/useOrdinalStreaming.d.ts +54 -0
  44. package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -2
  45. package/dist/components/charts/shared/validateProps.d.ts +2 -2
  46. package/dist/components/charts/shared/validationMap.d.ts +12 -0
  47. package/dist/components/charts/xy/AreaChart.d.ts +11 -0
  48. package/dist/components/charts/xy/Heatmap.d.ts +1 -1
  49. package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
  50. package/dist/components/charts/xy/MultiAxisLineChart.d.ts +71 -0
  51. package/dist/components/charts/xy/StackedAreaChart.d.ts +11 -0
  52. package/dist/components/realtime/types.d.ts +6 -0
  53. package/dist/components/semiotic-ai.d.ts +4 -0
  54. package/dist/components/semiotic-ordinal.d.ts +5 -0
  55. package/dist/components/semiotic-themes.d.ts +80 -0
  56. package/dist/components/semiotic-utils.d.ts +30 -0
  57. package/dist/components/semiotic-xy.d.ts +1 -0
  58. package/dist/components/semiotic.d.ts +11 -5
  59. package/dist/components/store/LinkedCrosshairStore.d.ts +11 -0
  60. package/dist/components/store/ThemeStore.d.ts +22 -2
  61. package/dist/components/store/useSelection.d.ts +1 -0
  62. package/dist/components/stream/AccessibleDataTable.d.ts +28 -6
  63. package/dist/components/stream/FocusRing.d.ts +33 -0
  64. package/dist/components/stream/OrdinalBrushOverlay.d.ts +43 -0
  65. package/dist/components/stream/OrdinalPipelineStore.d.ts +16 -0
  66. package/dist/components/stream/OrdinalSVGOverlay.d.ts +2 -1
  67. package/dist/components/stream/PipelineStore.d.ts +7 -47
  68. package/dist/components/stream/SVGOverlay.d.ts +9 -3
  69. package/dist/components/stream/SceneGraph.d.ts +6 -1
  70. package/dist/components/stream/XYBrushOverlay.d.ts +47 -0
  71. package/dist/components/stream/accessorUtils.d.ts +14 -0
  72. package/dist/components/stream/geoTypes.d.ts +5 -1
  73. package/dist/components/stream/keyboardNav.d.ts +85 -9
  74. package/dist/components/stream/layouts/hierarchySceneBuilders.d.ts +35 -0
  75. package/dist/components/stream/layouts/hierarchyUtils.d.ts +25 -0
  76. package/dist/components/stream/networkTypes.d.ts +7 -1
  77. package/dist/components/stream/ordinalSceneBuilders/barFunnelScene.d.ts +27 -0
  78. package/dist/components/stream/ordinalSceneBuilders/funnelScene.d.ts +26 -0
  79. package/dist/components/stream/ordinalSceneBuilders/swimlaneScene.d.ts +12 -0
  80. package/dist/components/stream/ordinalTypes.d.ts +30 -4
  81. package/dist/components/stream/pipelineDecay.d.ts +20 -0
  82. package/dist/components/stream/pipelinePulse.d.ts +24 -0
  83. package/dist/components/stream/pipelineTransitions.d.ts +59 -0
  84. package/dist/components/stream/renderers/barFunnelCanvasRenderer.d.ts +12 -0
  85. package/dist/components/stream/renderers/pointCanvasRenderer.d.ts +2 -1
  86. package/dist/components/stream/renderers/trapezoidCanvasRenderer.d.ts +15 -0
  87. package/dist/components/stream/sceneUtils.d.ts +10 -0
  88. package/dist/components/stream/types.d.ts +29 -4
  89. package/dist/components/stream/useMediaPreferences.d.ts +11 -0
  90. package/dist/components/stream/xySceneBuilders/areaScene.d.ts +13 -0
  91. package/dist/components/stream/xySceneBuilders/barScene.d.ts +18 -0
  92. package/dist/components/stream/xySceneBuilders/boundsScene.d.ts +8 -0
  93. package/dist/components/stream/xySceneBuilders/candlestickScene.d.ts +10 -0
  94. package/dist/components/stream/xySceneBuilders/emitPointNodes.d.ts +13 -0
  95. package/dist/components/stream/xySceneBuilders/heatmapScene.d.ts +3 -0
  96. package/dist/components/stream/xySceneBuilders/lineScene.d.ts +12 -0
  97. package/dist/components/stream/xySceneBuilders/pointScene.d.ts +12 -0
  98. package/dist/components/stream/xySceneBuilders/swarmScene.d.ts +10 -0
  99. package/dist/components/stream/xySceneBuilders/types.d.ts +93 -0
  100. package/dist/components/stream/xySceneBuilders/waterfallScene.d.ts +12 -0
  101. package/dist/geo.min.js +1 -1
  102. package/dist/geo.module.min.js +1 -1
  103. package/dist/network.min.js +1 -1
  104. package/dist/network.module.min.js +1 -1
  105. package/dist/ordinal.min.js +1 -1
  106. package/dist/ordinal.module.min.js +1 -1
  107. package/dist/realtime.min.js +1 -1
  108. package/dist/realtime.module.min.js +1 -1
  109. package/dist/semiotic-ai-statisticalOverlays-C2PPlmXv.js +1 -0
  110. package/dist/semiotic-ai.d.ts +4 -0
  111. package/dist/semiotic-ai.min.js +1 -1
  112. package/dist/semiotic-ai.module.min.js +1 -1
  113. package/dist/semiotic-ordinal.d.ts +5 -0
  114. package/dist/semiotic-statisticalOverlays-DGX_WWc5.js +1 -0
  115. package/dist/semiotic-themes.d.ts +80 -0
  116. package/dist/semiotic-themes.min.js +1 -0
  117. package/dist/semiotic-themes.module.min.js +1 -0
  118. package/dist/semiotic-utils.d.ts +30 -0
  119. package/dist/semiotic-utils.min.js +1 -0
  120. package/dist/semiotic-utils.module.min.js +1 -0
  121. package/dist/semiotic-xy.d.ts +1 -0
  122. package/dist/semiotic.d.ts +11 -5
  123. package/dist/semiotic.min.js +1 -1
  124. package/dist/semiotic.module.min.js +1 -1
  125. package/dist/server.min.js +1 -1
  126. package/dist/server.module.min.js +1 -1
  127. package/dist/xy-statisticalOverlays-C2PPlmXv.js +1 -0
  128. package/dist/xy.min.js +1 -1
  129. package/dist/xy.module.min.js +1 -1
  130. package/package.json +38 -12
  131. package/dist/semiotic-ai-statisticalOverlays-C1f7TYyD.js +0 -1
  132. package/dist/semiotic-statisticalOverlays-C1f7TYyD.js +0 -1
  133. package/dist/xy-statisticalOverlays-C1f7TYyD.js +0 -1
@@ -1 +1 @@
1
- "use strict";const t=require("react"),e=require("d3-scale"),i=require("d3-scale-chromatic"),r=require("d3-quadtree"),n=require("d3-array"),o=require("d3-interpolate"),s=require("d3-force"),a=require("d3-chord"),c=require("d3-shape"),l=require("d3-hierarchy"),h=require("d3-geo");function u(t){if(t&&t.__esModule)return t;const e=Object.create(null);if(t)for(const i in t)if("default"!==i){const r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}return e.default=t,Object.freeze(e)}const f=u(t);class d{constructor(t){if(this._capacity=t,this.head=0,this._size=0,1>t)throw Error("RingBuffer capacity must be at least 1");this.buffer=Array(t)}push(t){let e;return this._size===this._capacity?e=this.buffer[this.head]:this._size++,this.buffer[this.head]=t,this.head=(this.head+1)%this._capacity,e}pushMany(t){const e=[];for(const i of t){const t=this.push(i);void 0!==t&&e.push(t)}return e}get(t){if(t>=0&&this._size>t)return this.buffer[(this.head-this._size+t+this._capacity)%this._capacity]}peek(){if(0!==this._size)return this.buffer[(this.head-1+this._capacity)%this._capacity]}peekOldest(){if(0!==this._size)return this.buffer[(this.head-this._size+this._capacity)%this._capacity]}[Symbol.iterator](){let t=0;const e=this;return{next:()=>e._size>t?{done:!1,value:e.get(t++)}:{done:!0,value:void 0}}}forEach(t){const e=(this.head-this._size+this._capacity)%this._capacity;for(let i=0;this._size>i;i++)t(this.buffer[(e+i)%this._capacity],i)}toArray(){const t=Array(this._size),e=(this.head-this._size+this._capacity)%this._capacity;for(let i=0;this._size>i;i++)t[i]=this.buffer[(e+i)%this._capacity];return t}resize(t){if(1>t)throw Error("RingBuffer capacity must be at least 1");const e=this.toArray(),i=[];for(;e.length>t;)i.push(e.shift());this._capacity=t,this.buffer=Array(t),this.head=0,this._size=0;for(const t of e)this.push(t);return i}clear(){this.buffer=Array(this._capacity),this.head=0,this._size=0}get size(){return this._size}get capacity(){return this._capacity}get full(){return this._size===this._capacity}}class y{constructor(){this._min=1/0,this._max=-1/0,this._dirty=!1}push(t){Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}evict(t){t!==this._min&&t!==this._max||(this._dirty=!0)}recalculate(t,e){this._min=1/0,this._max=-1/0;for(const i of t){const t=e?e(i):i;Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}this._dirty=!1}clear(){this._min=1/0,this._max=-1/0,this._dirty=!1}get extent(){return[this._min,this._max]}get min(){return this._min}get max(){return this._max}get dirty(){return this._dirty}}function g(t,e,i,r,n){const o=new Map;for(const s of t){const t=e(s),a=i(s);if(null==t||null==a||Number.isNaN(t)||Number.isNaN(a))continue;const c=Math.floor(t/r)*r;let l=o.get(c);if(l||(l={start:c,end:c+r,total:0,categories:new Map},o.set(c,l)),l.total+=a,n){const t=n(s);l.categories.set(t,(l.categories.get(t)||0)+a)}}return o}function p(t,e,i,r,n,o){const s=[];for(const n of t){const t=i(n),o=r(n);null==t||null==o||Number.isNaN(t)||Number.isNaN(o)||s.push({px:e.x(t),py:e.y(o),rawY:o,d:n})}s.sort((t,e)=>t.px-e.px);const a=Array(s.length),c=Array(s.length),l=Array(s.length);for(let t=0;s.length>t;t++){const e=s[t];a[t]=[e.px,e.py],c[t]=e.rawY,l[t]=e.d}return{type:"line",path:a,rawValues:c,style:n,datum:l,group:o}}function m(t,e,i,r,n,o,s,a){const c=[];for(const o of t){const t=i(o),s=r(o);if(null==t||null==s||Number.isNaN(t)||Number.isNaN(s))continue;const l=e.x(t),h=a?a(o):n;c.push({px:l,topY:e.y(s),botY:e.y(h)})}c.sort((t,e)=>t.px-e.px);const l=Array(c.length),h=Array(c.length);for(let t=0;c.length>t;t++){const e=c[t];l[t]=[e.px,e.topY],h[t]=[e.px,e.botY]}return{type:"area",topPath:l,bottomPath:h,style:o,datum:t,group:s}}function v(t,e,i,r,n,o,s){const a=i(t),c=r(t);if(null==a||null==c||Number.isNaN(a)||Number.isNaN(c))return null;const l={type:"point",x:e.x(a),y:e.y(c),r:n,style:o,datum:t};return void 0!==s&&(l.pointId=s),l}function x(t,e,i,r,n,o,s){return{type:"rect",x:t,y:e,w:i,h:r,style:n,datum:o,group:s}}function b(t,e,i,r,n,o,s){const a={type:"heatcell",x:t,y:e,w:i,h:r,fill:n,datum:o};return(null==s?void 0:s.showValues)&&(a.showValues=!0,a.value=s.value,s.valueFormat&&(a.valueFormat=s.valueFormat)),a}function k(t,e){if("function"==typeof t)return e=>+t(e);const i=t||e;return t=>+t[i]}function w(t,e){if("function"==typeof t)return t;const i=t||e;return t=>t[i]}function P(t,e){return"function"==typeof t?t:t?e=>e[t]+"":e?t=>t[e]+"":void 0}const _=["#4e79a7","#f28e2b","#e15759","#76b7b2","#59a14f","#edc948","#b07aa1","#ff9da7","#9c755f","#bab0ac"];function A(t,e="ease-out-cubic"){return"linear"===e?t:1-Math.pow(1-t,3)}function S(t,e){return Math.min((t-e.startTime)/e.duration,1)}function E(t,e,i){return t+(e-t)*i}function M(){return"undefined"!=typeof performance?performance.now():Date.now()}class L{constructor(t){this.xExtent=new y,this.yExtent=new y,this.timestampBuffer=null,this.activeTransition=null,this.prevPositionMap=new Map,this.prevPathMap=new Map,this.exitNodes=[],this.lastIngestTime=0,this._colorMapCache=null,this._groupColorMap=new Map,this._barCategoryCache=null,this._stackExtentCache=null,this._ingestVersion=0,this._bufferArrayCache=null,this._bufferDirty=!0,this.needsFullRebuild=!0,this.lastLayout=null,this.scales=null,this.scene=[],this.version=0,this._quadtree=null,this.config=t,this.buffer=new d(t.windowSize),this.growingCap=t.windowSize,["bar","swarm","waterfall"].includes(t.chartType)||"streaming"===t.runtimeMode?(this.getX=k(t.timeAccessor||t.xAccessor,"time"),this.getY=k(t.valueAccessor||t.yAccessor,"value")):(this.getX=k(t.xAccessor,"x"),this.getY=k(t.yAccessor,"y")),this.getGroup=P(t.groupAccessor),this.getCategory=P(t.categoryAccessor),this.getSize=t.sizeAccessor?k(t.sizeAccessor,"size"):void 0,this.getColor=P(t.colorAccessor),this.getBounds=t.boundsAccessor?k(t.boundsAccessor,"bounds"):void 0,this.getY0=t.y0Accessor?k(t.y0Accessor,"y0"):void 0,this.getPointId=P(t.pointIdAccessor),"candlestick"===t.chartType&&(this.getOpen=k(t.openAccessor,"open"),this.getHigh=k(t.highAccessor,"high"),this.getLow=k(t.lowAccessor,"low"),this.getClose=k(t.closeAccessor,"close")),t.pulse&&(this.timestampBuffer=new d(t.windowSize))}ingest(t){const e="undefined"!=typeof performance?performance.now():Date.now();if(this.lastIngestTime=e,this.needsFullRebuild=!0,this._bufferDirty=!0,this._ingestVersion++,t.bounded){this.buffer.clear(),this.xExtent.clear(),this.yExtent.clear(),this.timestampBuffer&&this.timestampBuffer.clear();const i=t.totalSize||t.inserts.length;i>this.buffer.capacity&&(this.buffer.resize(i),this.timestampBuffer&&i>this.timestampBuffer.capacity&&this.timestampBuffer.resize(i));for(const i of t.inserts)this.buffer.push(i),this.timestampBuffer&&this.timestampBuffer.push(e),this.xExtent.push(this.getX(i)),"candlestick"===this.config.chartType&&this.getHigh&&this.getLow?(this.yExtent.push(this.getHigh(i)),this.yExtent.push(this.getLow(i))):(this.yExtent.push(this.getY(i)),this.getY0&&this.yExtent.push(this.getY0(i)))}else for(const i of t.inserts){if("growing"===this.config.windowMode&&this.buffer.full){const t=this.config.maxCapacity||1e6;t>this.growingCap&&(this.growingCap=Math.min(2*this.growingCap,t),this.buffer.resize(this.growingCap),this.timestampBuffer&&this.timestampBuffer.resize(this.growingCap))}const t=this.buffer.push(i);this.timestampBuffer&&this.timestampBuffer.push(e),this.xExtent.push(this.getX(i)),"candlestick"===this.config.chartType&&this.getHigh&&this.getLow?(this.yExtent.push(this.getHigh(i)),this.yExtent.push(this.getLow(i))):(this.yExtent.push(this.getY(i)),this.getY0&&this.yExtent.push(this.getY0(i))),null!=t&&(this.xExtent.evict(this.getX(t)),"candlestick"===this.config.chartType&&this.getHigh&&this.getLow?(this.yExtent.evict(this.getHigh(t)),this.yExtent.evict(this.getLow(t))):this.yExtent.evict(this.getY(t)))}return!0}computeScene(t){var i,r,n,o,s,a;const{config:c,buffer:l}=this;if(!this.needsFullRebuild&&this.lastLayout&&this.scene.length>0&&this.scales&&(this.lastLayout.width!==t.width||this.lastLayout.height!==t.height))return void this.remapScene(t);if(this.xExtent.dirty&&this.xExtent.recalculate(l,this.getX),this.yExtent.dirty)if("candlestick"===c.chartType&&this.getHigh&&this.getLow){this.yExtent.clear();for(const t of l)this.yExtent.push(this.getHigh(t)),this.yExtent.push(this.getLow(t))}else this.yExtent.recalculate(l,this.getY);const h=this.getBufferArray(),u=this.xExtent.extent,f=this.yExtent.extent;let d=c.xExtent?[null!==(i=c.xExtent[0])&&void 0!==i?i:u[0],null!==(r=c.xExtent[1])&&void 0!==r?r:u[1]]:u,y=c.yExtent?[null!==(n=c.yExtent[0])&&void 0!==n?n:f[0],null!==(o=c.yExtent[1])&&void 0!==o?o:f[1]]:f;const p=c.yExtent&&null!=c.yExtent[0]&&null!=c.yExtent[1];if("stackedarea"===c.chartType&&!p&&l.size>0)if(c.normalize)y=[0,1+c.extentPadding];else{const t=`${l.size}:${this._ingestVersion}`;if(this._stackExtentCache&&this._stackExtentCache.key===t)y=this._stackExtentCache.yDomain;else{const e=this.groupData(h),i=new Map;for(const t of e)for(const e of t.data){const t=this.getX(e),r=this.getY(e);null==t||null==r||Number.isNaN(t)||Number.isNaN(r)||i.set(t,(i.get(t)||0)+r)}let r=0;for(const t of i.values())t>r&&(r=t);y=[0,r+(r>0?r*c.extentPadding:1)],this._stackExtentCache={key:t,yDomain:y}}}else if("bar"===c.chartType&&c.binSize&&!p&&l.size>0){const[,t]=function(t,e,i,r,n){const o=g(t,e,i,r,n);if(0===o.size)return[0,0];let s=0;for(const t of o.values())t.total>s&&(s=t.total);return[0,s]}(l,this.getX,this.getY,c.binSize,this.getCategory);y=[0,t+t*c.extentPadding]}else if("waterfall"===c.chartType&&!p&&l.size>0){const[t,e]=function(t,e){let i=0,r=0,n=0;for(const o of t){const t=e(o);null==t||Number.isNaN(t)||(n+=t,i>n&&(i=n),n>r&&(r=n))}return[i,r]}(l,this.getY),i=e-t,r=i>0?i*c.extentPadding:1;y=[Math.min(0,t-Math.abs(r)),Math.max(0,e+Math.abs(r))]}else if(!p&&y[0]!==1/0){if(this.getBounds)for(const t of h){const e=this.getY(t),i=this.getBounds(t);null!=e&&!Number.isNaN(e)&&i&&(e+i>y[1]&&(y[1]=e+i),y[0]>e-i&&(y[0]=e-i))}const t=y[1]-y[0],e=t>0?t*c.extentPadding:1,i=null===(s=c.yExtent)||void 0===s?void 0:s[0],r=null===(a=c.yExtent)||void 0===a?void 0:a[1];y=[null!=i?y[0]:y[0]-e,null!=r?y[1]:y[1]+e],"log"===c.yScaleType&&0>=y[0]&&f[0]>0&&(y[0]=null!=i?y[0]:f[0]/(1+c.extentPadding))}if(d[0]!==1/0&&d[1]!==-1/0||(d=[0,1]),y[0]!==1/0&&y[1]!==-1/0||(y=[0,1]),"streaming"===c.runtimeMode)if("x"==("up"===(m=c.arrowOfTime)||"down"===m?"y":"x")){const i="right"===c.arrowOfTime?[0,t.width]:[t.width,0];this.scales={x:e.scaleLinear().domain(d).range(i),y:e.scaleLinear().domain(y).range([t.height,0])}}else{const i="down"===c.arrowOfTime?[0,t.height]:[t.height,0];this.scales={x:e.scaleLinear().domain(y).range([0,t.width]),y:e.scaleLinear().domain(d).range(i)}}else{const i=(t,i,r)=>{if("log"===t){const t=[Math.max(i[0],1e-6),Math.max(i[1],1e-6)];return e.scaleLog().domain(t).range(r).clamp(!0)}return e.scaleLinear().domain(i).range(r)};this.scales={x:i(c.xScaleType,d,[0,t.width]),y:i(c.yScaleType,y,[t.height,0])}}var m;this.config.transition&&this.scene.length>0&&this.snapshotPositions(),this.scene=this.buildSceneNodes(t,h),this.config.decay&&this.applyDecay(this.scene,h),this.config.pulse&&this.applyPulse(this.scene,h),this.config.transition&&(this.prevPositionMap.size>0||this.prevPathMap.size>0)&&this.startTransition(),this.rebuildQuadtree(),this.needsFullRebuild=!1,this.lastLayout={width:t.width,height:t.height},this.version++}rebuildQuadtree(){const t=this.config.chartType;if("scatter"!==t&&"bubble"!==t)return void(this._quadtree=null);const e=this.scene.filter(t=>"point"===t.type);this._quadtree=e.length>L.QUADTREE_THRESHOLD?r.quadtree().x(t=>t.x).y(t=>t.y).addAll(e):null}get quadtree(){return this._quadtree}remapScene(t){const i=t.width/this.lastLayout.width,r=t.height/this.lastLayout.height;for(const t of this.scene)switch(t.type){case"line":for(const e of t.path)e[0]*=i,e[1]*=r;break;case"area":for(const e of t.topPath)e[0]*=i,e[1]*=r;for(const e of t.bottomPath)e[0]*=i,e[1]*=r;break;case"point":t.x*=i,t.y*=r;break;case"rect":case"heatcell":t.x*=i,t.y*=r,t.w*=i,t.h*=r;break;case"candlestick":t.x*=i,t.openY*=r,t.closeY*=r,t.highY*=r,t.lowY*=r}const n=this.scales.x.domain(),o=this.scales.y.domain(),s=this.scales.x.range(),a=this.scales.y.range(),c=(t,i,r)=>{if("log"===t){const t=[Math.max(i[0],1e-6),Math.max(i[1],1e-6)];return e.scaleLog().domain(t).range(r).clamp(!0)}return e.scaleLinear().domain(i).range(r)};this.scales={x:c(this.config.xScaleType,n,[s[0]*i,s[1]*i]),y:c(this.config.yScaleType,o,[a[0]*r,a[1]*r])},this.lastLayout={width:t.width,height:t.height},this.rebuildQuadtree(),this.version++}buildSceneNodes(t,e){const{config:i,scales:r}=this;if(!r||0===e.length)return[];switch(i.chartType){case"line":return this.buildLineScene(e);case"area":return this.buildAreaScene(e);case"stackedarea":return this.buildStackedAreaScene(e);case"scatter":case"bubble":return this.buildPointScene(e);case"heatmap":return this.buildHeatmapScene(e,t);case"bar":return this.buildBarScene(e);case"swarm":return this.buildSwarmScene(e);case"waterfall":return this.buildWaterfallScene(e,t);case"candlestick":return this.buildCandlestickScene(e,t);default:return[]}}buildLineScene(t){var e;const i=this.groupData(t),r=[],n=null===(e=this.config.annotations)||void 0===e?void 0:e.filter(t=>"threshold"===t.type&&t.color).map(t=>({value:t.value,color:t.color,thresholdType:t.thresholdType||"greater"}));if(this.getBounds)for(const t of i){const e=this.buildBoundsForGroup(t.data,t.key);e&&r.push(e)}for(const t of i){const e=this.resolveLineStyle(t.key,t.data[0]),i=p(t.data,this.scales,this.getX,this.getY,e,t.key);n&&n.length>0&&(i.colorThresholds=n),this.config.curve&&"linear"!==this.config.curve&&(i.curve=this.config.curve),r.push(i)}return r}buildAreaScene(t){const e=this.groupData(t),i=[],r=this.scales.y.domain()[0];for(const t of e){const e=this.resolveAreaStyle(t.key,t.data[0]),n=m(t.data,this.scales,this.getX,this.getY,r,e,t.key,this.getY0);this.config.gradientFill&&(n.fillGradient=this.config.gradientFill),this.config.curve&&"linear"!==this.config.curve&&(n.curve=this.config.curve),i.push(n)}return i}buildStackedAreaScene(t){const e=this.groupData(t);return e.sort((t,e)=>e.key>t.key?-1:t.key>e.key?1:0),function(t,e,i,r,n,o,s){var a;const c=new Set;for(const e of t)for(const t of e.data){const e=i(t);null==e||Number.isNaN(e)||c.add(e)}const l=Array.from(c).sort((t,e)=>t-e),h=new Map;for(const e of t){const t=new Map;for(const n of e.data){const e=i(n),o=r(n);null==e||null==o||Number.isNaN(e)||Number.isNaN(o)||t.set(e,(t.get(e)||0)+o)}h.set(e.key,t)}let u;if(o){u=new Map;for(const e of l){let i=0;for(const r of t)i+=(null===(a=h.get(r.key))||void 0===a?void 0:a.get(e))||0;u.set(e,i||1)}}const f=[],d=new Map;for(const t of l)d.set(t,0);for(const i of t){const t=h.get(i.key),r=[],a=[];for(const i of l){let n=t.get(i)||0;const s=d.get(i);o&&(n/=u.get(i));const c=e.x(i);a.push([c,e.y(s)]),r.push([c,e.y(s+n)]),d.set(i,s+n)}const c={type:"area",topPath:r,bottomPath:a,style:n(i.key,i.data[0]),datum:i.data,group:i.key};s&&(c.curve=s),f.push(c)}return f}(e,this.scales,this.getX,this.getY,(t,e)=>this.resolveAreaStyle(t,e),this.config.normalize,this.config.curve&&"linear"!==this.config.curve?this.config.curve:void 0)}buildPointScene(t){const e=[],i="bubble"===this.config.chartType?10:5,r=this.config.sizeRange||[3,15];let n=null;if(this.getSize&&!this.config.pointStyle){const e=t.map(t=>this.getSize(t)).filter(t=>null!=t&&!Number.isNaN(t));if(e.length>0){let t=1/0,i=-1/0;for(const r of e)t>r&&(t=r),r>i&&(i=r);n=e=>t===i?(r[0]+r[1])/2:r[0]+(e-t)/(i-t)*(r[1]-r[0])}}const o=this.getColor?this.resolveColorMap(t):null;for(const r of t){let t=this.config.pointStyle?this.config.pointStyle(r):{fill:"#4e79a7",opacity:.8},s=t.r||i;if(n&&this.getSize){const t=this.getSize(r);null==t||Number.isNaN(t)||(s=n(t))}if(o&&this.getColor&&!t.fill){const e=this.getColor(r);e&&o.has(e)&&(t=Object.assign(Object.assign({},t),{fill:o.get(e)}))}const a=this.getPointId?this.getPointId(r)+"":void 0,c=v(r,this.scales,this.getX,this.getY,s,t,a);c&&e.push(c)}return e}buildHeatmapScene(t,r){const n=[];if(this.config.heatmapAggregation)return this.buildStreamingHeatmapScene(t,r);const o=k(this.config.valueAccessor,"value"),s=w(this.config.xAccessor,"x"),a=w(this.config.yAccessor,"y"),c=new Set,l=new Set;for(const e of t)c.add(s(e)),l.add(a(e));const h=Array.from(c),u=Array.from(l),f=h.every(t=>"number"==typeof t&&!isNaN(t)),d=u.every(t=>"number"==typeof t&&!isNaN(t)),y=f?h.sort((t,e)=>t-e):h,g=d?u.sort((t,e)=>t-e):u;if(0===y.length||0===g.length)return n;const p=r.width/y.length,m=r.height/g.length,v=new Map;for(const e of t){const t=`${s(e)}\0${a(e)}`;v.set(t,{val:o(e),datum:e})}let x=1/0,P=-1/0;for(const{val:t}of v.values())x>t&&(x=t),t>P&&(P=t);const _=e.scaleSequential({blues:i.interpolateBlues,reds:i.interpolateReds,greens:i.interpolateGreens,viridis:i.interpolateViridis}["string"==typeof this.config.colorScheme?this.config.colorScheme:"blues"]||i.interpolateBlues).domain([x,P]);for(let t=0;y.length>t;t++)for(let e=0;g.length>e;e++){const i=v.get(`${y[t]}\0${g[e]}`);if(!i)continue;const r=_(i.val);n.push(b(t*p,(g.length-1-e)*m,p,m,r,i.datum,this.config.showValues?{value:i.val,showValues:!0,valueFormat:this.config.heatmapValueFormat}:void 0))}return n}buildStreamingHeatmapScene(t,e){var i,r,n;const o=[],s=null!==(i=this.config.heatmapXBins)&&void 0!==i?i:20,a=null!==(r=this.config.heatmapYBins)&&void 0!==r?r:20,c=null!==(n=this.config.heatmapAggregation)&&void 0!==n?n:"count",l=k(this.config.valueAccessor,"value");if(!this.scales||0===t.length)return o;const[h,u]=this.scales.x.domain(),[f,d]=this.scales.y.domain(),y=(u-h||1)/s,g=(d-f||1)/a,p=new Map;for(const e of t){const t=this.getX(e),i=this.getY(e),r=Math.min(Math.floor((t-h)/y),s-1),n=Math.min(Math.floor((i-f)/g),a-1);if(0>r||0>n)continue;const o=`${r}_${n}`;let c=p.get(o);c||(c={sum:0,count:0,data:[]},p.set(o,c)),c.count++,c.sum+=l(e),c.data.push(e)}let m=1/0,v=-1/0;const x=new Map;for(const[t,e]of p){let i;switch(c){case"sum":i=e.sum;break;case"mean":i=e.count>0?e.sum/e.count:0;break;default:i=e.count}x.set(t,i),m>i&&(m=i),i>v&&(v=i)}const w=v-m||1,P=e.width/s,_=e.height/a;for(const[t,e]of x){const[i,r]=t.split("_"),n=+i,s=+r,c=(e-m)/w,l=`rgb(${Math.round(220-180*c)},${Math.round(220-100*c)},${Math.round(255-50*c)})`,h=p.get(t);o.push(b(n*P,(a-1-s)*_,P,_,l,{xi:n,yi:s,value:e,count:h.count,sum:h.sum,data:h.data},this.config.showValues?{value:e,showValues:!0,valueFormat:this.config.heatmapValueFormat}:void 0))}return o}buildBarScene(t){var e;if(!this.config.binSize)return[];const i=g(t,this.getX,this.getY,this.config.binSize,this.getCategory);if(0===i.size)return[];let r=null;if(this.getCategory){const t=new Set;for(const e of i.values())for(const i of e.categories.keys())t.add(i);const e=this.config.barColors?Object.keys(this.config.barColors):[],n=new Set(e),o=Array.from(t).filter(t=>!n.has(t)).sort(),s=e.filter(e=>t.has(e)),a=s.join("\0")+""+o.join("\0");this._barCategoryCache&&this._barCategoryCache.key===a?r=this._barCategoryCache.order:(r=[...s,...o],this._barCategoryCache={key:a,order:r})}const n=[],o=this.scales,[s,a]=o.x.domain();for(const t of i.values()){const i=Math.max(t.start,s),c=Math.min(t.end,a);if(i>=c)continue;const l=o.x(i),h=o.x(c),u=Math.abs(h-l),f=u>2?1:0,d=Math.min(l,h)+f/2,y=Math.max(u-f,1);if(y>0)if(r&&t.categories.size>0){let i=0;for(const s of r){const r=t.categories.get(s)||0;if(0===r)continue;const a=o.y(i),c=o.y(i+r);n.push(x(d,Math.min(a,c),y,Math.abs(a-c),{fill:(null===(e=this.config.barColors)||void 0===e?void 0:e[s])||"#4e79a7"},{binStart:t.start,binEnd:t.end,total:t.total,category:s,categoryValue:r},s)),i+=r}}else{const e=o.y(0),i=o.y(t.total);n.push(x(d,Math.min(e,i),y,Math.abs(e-i),{fill:"#007bff"},{binStart:t.start,binEnd:t.end,total:t.total}))}}return n}buildSwarmScene(t){var e,i,r,n;const o=[],s=this.config.swarmStyle||{},a=null!==(e=s.radius)&&void 0!==e?e:3,c=null!==(i=s.fill)&&void 0!==i?i:"#007bff",l=null!==(r=s.opacity)&&void 0!==r?r:.7,h=s.stroke,u=s.strokeWidth;for(const e of t){const t=this.getX(e),i=this.getY(e);if(null==i||Number.isNaN(i))continue;const r=this.scales.x(t),s=this.scales.y(i);let f=c;if(this.getCategory){const t=this.getCategory(e);f=(null===(n=this.config.barColors)||void 0===n?void 0:n[t])||f}const d={type:"point",x:r,y:s,r:a,style:{fill:f,opacity:l,stroke:h,strokeWidth:u},datum:e};this.getPointId&&(d.pointId=this.getPointId(e)+""),o.push(d)}return o}buildWaterfallScene(t,e){var i,r,n;const o=[],s=this.scales,a=this.config.waterfallStyle,c=t.filter(t=>{const e=this.getY(t);return null!=e&&!Number.isNaN(e)});if(0===c.length)return o;const l=null!==(i=null==a?void 0:a.positiveColor)&&void 0!==i?i:"#28a745",h=null!==(r=null==a?void 0:a.negativeColor)&&void 0!==r?r:"#dc3545",u=null!==(n=null==a?void 0:a.gap)&&void 0!==n?n:1,f=null==a?void 0:a.stroke,d=null==a?void 0:a.strokeWidth;let y=0;for(let t=0;c.length>t;t++){const i=c[t],r=this.getX(i),n=this.getY(i),g=y+n;let p;p=c.length-1>t?this.getX(c[t+1])-r:t>0?r-this.getX(c[t-1]):0;const m=s.x(r),v=0!==p?s.x(r+p):m+e.width/10,b=Math.min(m,v)+u/2,k=Math.max(m,v)-u/2-b;if(0>=k){y=g;continue}const w=s.y(y),P=s.y(g);o.push(x(b,Math.min(w,P),k,Math.abs(w-P),{fill:0>n?h:l,stroke:f,strokeWidth:d},Object.assign(Object.assign({},i),{baseline:y,cumEnd:g,delta:n,_connectorStroke:null==a?void 0:a.connectorStroke,_connectorWidth:null==a?void 0:a.connectorWidth}))),y=g}return o}buildCandlestickScene(t,e){if(!(this.getOpen&&this.getHigh&&this.getLow&&this.getClose&&this.scales))return[];const i=[],r=this.config.candlestickStyle||{},n=r.upColor||"#28a745",o=r.downColor||"#dc3545",s=r.wickColor||"#333",a=r.wickWidth||1,c=t.map(t=>this.getX(t)).filter(t=>null!=t&&!Number.isNaN(t)).sort((t,e)=>t-e);let l=r.bodyWidth||6;if(!r.bodyWidth&&c.length>1){let t=1/0;for(let e=1;c.length>e;e++){const i=Math.abs(this.scales.x(c[e])-this.scales.x(c[e-1]));i>0&&t>i&&(t=i)}t!==1/0&&(l=Math.max(2,Math.min(.6*t,20)))}for(const e of t){const t=this.getX(e);if(null==t||Number.isNaN(t))continue;const r=this.getOpen(e),c=this.getHigh(e),h=this.getLow(e),u=this.getClose(e);if([r,c,h,u].some(t=>null==t||Number.isNaN(t)))continue;const f=u>=r;i.push({type:"candlestick",x:this.scales.x(t),openY:this.scales.y(r),closeY:this.scales.y(u),highY:this.scales.y(c),lowY:this.scales.y(h),bodyWidth:l,upColor:n,downColor:o,wickColor:s,wickWidth:a,isUp:f,datum:e})}return i}buildBoundsForGroup(t,e){if(!this.getBounds||!this.scales)return null;const i=[],r=[];for(const e of t){const t=this.getX(e),n=this.getY(e);if(null==t||null==n||Number.isNaN(t)||Number.isNaN(n))continue;const o=this.getBounds(e),s=this.scales.x(t);if(o&&0!==o)i.push([s,this.scales.y(n+o)]),r.push([s,this.scales.y(n-o)]);else{const t=this.scales.y(n);i.push([s,t]),r.push([s,t])}}return 2>i.length?null:{type:"area",topPath:i,bottomPath:r,style:this.resolveBoundsStyle(e,t[0]),datum:t,group:e,interactive:!1}}resolveBoundsStyle(t,e){const i=this.config.boundsStyle;return"function"==typeof i?i(e||{},t):i&&"object"==typeof i?i:{fill:this.resolveLineStyle(t,e).stroke||"#4e79a7",fillOpacity:.2,stroke:"none"}}computeDecayOpacity(t,e){var i,r,n;const o=this.config.decay;if(!o||1>=e)return 1;const s=null!==(i=o.minOpacity)&&void 0!==i?i:.1,a=e-1-t;switch(o.type){case"linear":return s+(1-a/(e-1))*(1-s);case"exponential":{const t=null!==(r=o.halfLife)&&void 0!==r?r:e/2;return s+Math.pow(.5,a/t)*(1-s)}case"step":return(null!==(n=o.stepThreshold)&&void 0!==n?n:.5*e)>a?1:s;default:return 1}}applyDecay(t,e){var i,r;if(!this.config.decay)return;const n=e.length;if(1>=n)return;const o=new Map;for(let t=0;e.length>t;t++)o.set(e[t],t);for(const e of t){if("line"===e.type){const t=Array.isArray(e.datum)?e.datum:[];if(2>t.length)continue;const i=Array(t.length);let r=!1;for(let e=0;t.length>e;e++){const s=o.get(t[e]);null!=s?(i[e]=this.computeDecayOpacity(s,n),1>i[e]&&(r=!0)):i[e]=1}r&&(e._decayOpacities=i);continue}if("area"===e.type){const t=Array.isArray(e.datum)?e.datum:[],i=e.topPath?e.topPath.length:t.length;if(2>i)continue;if(t.length===i){const r=Array(i);let s=!1;for(let e=0;t.length>e;e++){const i=o.get(t[e]);null!=i?(r[e]=this.computeDecayOpacity(i,n),1>r[e]&&(s=!0)):r[e]=1}s&&(e._decayOpacities=r)}else{let r=1;for(const e of t){const t=o.get(e);if(null!=t){const e=this.computeDecayOpacity(t,n);r>e&&(r=e)}}if(1>r){const t=Array(i);t.fill(r),e._decayOpacities=t}}continue}const t=o.get(e.datum);if(null==t)continue;const s=this.computeDecayOpacity(t,n);if("heatcell"===e.type)e.style={opacity:s};else if("candlestick"===e.type)e._decayOpacity=s;else{const t=null!==(r=null===(i=e.style)||void 0===i?void 0:i.opacity)&&void 0!==r?r:1;e.style=Object.assign(Object.assign({},e.style),{opacity:t*s})}}}computePulseIntensity(t,e){var i;const r=this.config.pulse;if(!r)return 0;const n=null!==(i=r.duration)&&void 0!==i?i:500,o=e-t;return n>o?1-o/n:0}applyPulse(t,e){var i,r;if(!this.config.pulse||!this.timestampBuffer)return;const n="undefined"!=typeof performance?performance.now():Date.now(),o=null!==(i=this.config.pulse.color)&&void 0!==i?i:"rgba(255,255,255,0.6)",s=null!==(r=this.config.pulse.glowRadius)&&void 0!==r?r:4,a=new Map;for(let t=0;e.length>t;t++)a.set(e[t],t);for(const e of t){if("line"===e.type)continue;if("area"===e.type){const t=Array.isArray(e.datum)?e.datum:[e.datum];let i=0;for(const e of t){const t=a.get(e);if(null==t)continue;const r=this.timestampBuffer.get(t);if(null==r)continue;const o=this.computePulseIntensity(r,n);o>i&&(i=o)}i>0&&(e._pulseIntensity=i,e._pulseColor=o);continue}const t=a.get(e.datum);if(null==t)continue;const i=this.timestampBuffer.get(t);if(null==i)continue;const r=this.computePulseIntensity(i,n);r>0&&(e._pulseIntensity=r,e._pulseColor=o,e._pulseGlowRadius=s)}}get hasActivePulses(){var t;if(!this.config.pulse||!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const e="undefined"!=typeof performance?performance.now():Date.now(),i=null!==(t=this.config.pulse.duration)&&void 0!==t?t:500,r=this.timestampBuffer.peek();return null!=r&&i>e-r}snapshotPositions(){var t,e,i;this.prevPositionMap.clear(),this.prevPathMap.clear();for(let r=0;this.scene.length>r;r++){const n=this.scene[r],o=this.getNodeIdentity(n,r);o&&("point"===n.type?this.prevPositionMap.set(o,{x:n.x,y:n.y,r:n.r,opacity:n.style.opacity}):"rect"===n.type?this.prevPositionMap.set(o,{x:n.x,y:n.y,w:n.w,h:n.h,opacity:n.style.opacity}):"heatcell"===n.type?this.prevPositionMap.set(o,{x:n.x,y:n.y,w:n.w,h:n.h,opacity:null===(t=n.style)||void 0===t?void 0:t.opacity}):"candlestick"===n.type?this.prevPositionMap.set(o,{x:n.x,y:n.openY}):"line"===n.type?this.prevPathMap.set(o,{path:n.path.map(t=>[t[0],t[1]]),opacity:null===(e=n.style)||void 0===e?void 0:e.opacity}):"area"===n.type&&this.prevPathMap.set(o,{topPath:n.topPath.map(t=>[t[0],t[1]]),bottomPath:n.bottomPath.map(t=>[t[0],t[1]]),opacity:null===(i=n.style)||void 0===i?void 0:i.opacity}))}}getNodeIdentity(t,e){var i,r,n,o;switch(t.type){case"point":if(t.pointId)return"p:"+t.pointId;if("streaming"===this.config.runtimeMode&&t.datum){if(this.getCategory)return`p:${this.getCategory(t.datum)}:${this.getY(t.datum)}`;const e=this.getX(t.datum),i=this.getY(t.datum);if(null!=e&&null!=i)return`p:${e}:${i}`}return"p:"+e;case"rect":return`r:${t.group||""}:${null!==(o=null!==(r=null===(i=t.datum)||void 0===i?void 0:i.binStart)&&void 0!==r?r:null===(n=t.datum)||void 0===n?void 0:n.category)&&void 0!==o?o:e}`;case"heatcell":return`h:${t.x}_${t.y}`;case"candlestick":return null==t.datum?"c:"+e:"c:"+this.getX(t.datum);case"line":return"l:"+(t.group||"_default");case"area":return"a:"+(t.group||"_default");default:return null}}startTransition(){var t,e,i,r,n,o,s,a,c,l,h,u,f,d,y,g,p,m,v,x,b,k,w,P,_,A;if(!this.config.transition||0===this.prevPositionMap.size&&0===this.prevPathMap.size)return;const S=null!==(t=this.config.transition.duration)&&void 0!==t?t:300;if(this.exitNodes.length>0){const t=new Set(this.exitNodes);this.scene=this.scene.filter(e=>!t.has(e)),this.exitNodes=[]}let E=!1;const L=new Set,D=new Set;for(let t=0;this.scene.length>t;t++){const p=this.scene[t],m=this.getNodeIdentity(p,t);if(!m)continue;if(p._transitionKey=m,"line"===p.type||"area"===p.type){const t=this.prevPathMap.get(m);if(t){if(D.add(m),"line"===p.type&&t.path&&t.path.length===p.path.length){p._targetPath=p.path.map(t=>[t[0],t[1]]),p._prevPath=t.path;for(let e=0;p.path.length>e;e++)p.path[e]=[t.path[e][0],t.path[e][1]];E=!0}else if("area"===p.type&&t.topPath&&t.bottomPath&&t.topPath.length===p.topPath.length&&t.bottomPath.length===p.bottomPath.length){p._targetTopPath=p.topPath.map(t=>[t[0],t[1]]),p._targetBottomPath=p.bottomPath.map(t=>[t[0],t[1]]),p._prevTopPath=t.topPath,p._prevBottomPath=t.bottomPath;for(let e=0;p.topPath.length>e;e++)p.topPath[e]=[t.topPath[e][0],t.topPath[e][1]];for(let e=0;p.bottomPath.length>e;e++)p.bottomPath[e]=[t.bottomPath[e][0],t.bottomPath[e][1]];E=!0}p._targetOpacity=null!==(e=p.style.opacity)&&void 0!==e?e:1}else p._targetOpacity=null!==(i=p.style.opacity)&&void 0!==i?i:1,p.style=Object.assign(Object.assign({},p.style),{opacity:0}),E=!0;continue}const v=this.prevPositionMap.get(m);if("point"===p.type)if(v){L.add(m);const t={x:p.x,y:p.y,r:p.r};p._targetOpacity=null!==(r=p.style.opacity)&&void 0!==r?r:1,v.x===t.x&&v.y===t.y||(p._targetX=t.x,p._targetY=t.y,p._targetR=t.r,p.x=v.x,p.y=v.y,p.r=null!==(n=v.r)&&void 0!==n?n:p.r,E=!0)}else p._targetOpacity=null!==(o=p.style.opacity)&&void 0!==o?o:1,p.style=Object.assign(Object.assign({},p.style),{opacity:0}),E=!0;else if("rect"===p.type)if(v){L.add(m);const t={x:p.x,y:p.y,w:p.w,h:p.h};p._targetOpacity=null!==(s=p.style.opacity)&&void 0!==s?s:1,v.x===t.x&&v.y===t.y&&v.w===t.w&&v.h===t.h||(p._targetX=t.x,p._targetY=t.y,p._targetW=t.w,p._targetH=t.h,p.x=v.x,p.y=v.y,p.w=null!==(a=v.w)&&void 0!==a?a:p.w,p.h=null!==(c=v.h)&&void 0!==c?c:p.h,E=!0)}else p._targetOpacity=null!==(l=p.style.opacity)&&void 0!==l?l:1,p.style=Object.assign(Object.assign({},p.style),{opacity:0}),E=!0;else if("heatcell"===p.type)if(v){L.add(m);const t={x:p.x,y:p.y,w:p.w,h:p.h};p._targetOpacity=null!==(u=null===(h=p.style)||void 0===h?void 0:h.opacity)&&void 0!==u?u:1,v.x===t.x&&v.y===t.y||(p._targetX=t.x,p._targetY=t.y,p._targetW=t.w,p._targetH=t.h,p.x=v.x,p.y=v.y,p.w=null!==(f=v.w)&&void 0!==f?f:p.w,p.h=null!==(d=v.h)&&void 0!==d?d:p.h,E=!0)}else p._targetOpacity=null!==(g=null===(y=p.style)||void 0===y?void 0:y.opacity)&&void 0!==g?g:1,p.style=Object.assign(Object.assign({},p.style||{}),{opacity:0}),E=!0}for(const[t,e]of this.prevPathMap)if(!D.has(t))if(t.startsWith("l:")&&e.path){const i={type:"line",path:e.path.map(t=>[t[0],t[1]]),group:t.slice(2),style:{stroke:"#999",strokeWidth:1,opacity:null!==(p=e.opacity)&&void 0!==p?p:1},_targetOpacity:0,_transitionKey:t,datum:null};this.exitNodes.push(i),E=!0}else if(t.startsWith("a:")&&e.topPath&&e.bottomPath){const i={type:"area",topPath:e.topPath.map(t=>[t[0],t[1]]),bottomPath:e.bottomPath.map(t=>[t[0],t[1]]),group:t.slice(2),style:{fill:"#999",opacity:null!==(m=e.opacity)&&void 0!==m?m:1},_targetOpacity:0,_transitionKey:t,datum:null};this.exitNodes.push(i),E=!0}for(const[t,e]of this.prevPositionMap)if(!L.has(t)){if(t.startsWith("p:")){const i={type:"point",x:e.x,y:e.y,r:null!==(v=e.r)&&void 0!==v?v:3,style:{opacity:null!==(x=e.opacity)&&void 0!==x?x:1},datum:null,_targetOpacity:0,_transitionKey:t};this.exitNodes.push(i)}else if(t.startsWith("r:")){const i={type:"rect",x:e.x,y:e.y,w:null!==(b=e.w)&&void 0!==b?b:0,h:null!==(k=e.h)&&void 0!==k?k:0,style:{opacity:null!==(w=e.opacity)&&void 0!==w?w:1,fill:"#999"},datum:null,_targetOpacity:0,_transitionKey:t};this.exitNodes.push(i)}else if(t.startsWith("h:")){const i={type:"heatcell",x:e.x,y:e.y,w:null!==(P=e.w)&&void 0!==P?P:0,h:null!==(_=e.h)&&void 0!==_?_:0,fill:"#999",datum:null,style:{opacity:null!==(A=e.opacity)&&void 0!==A?A:1},_targetOpacity:0,_transitionKey:t};this.exitNodes.push(i)}E=!0}this.exitNodes.length>0&&(this.scene=[...this.scene,...this.exitNodes]),E&&(this.activeTransition={startTime:M(),duration:S})}advanceTransition(t){var e,i,r,n,o,s;if(!this.activeTransition)return!1;const a=S(t,this.activeTransition),c=A(a,"linear"===(null===(e=this.config.transition)||void 0===e?void 0:e.easing)?"linear":"ease-out-cubic");for(const t of this.scene){const e=t._transitionKey;if("point"===t.type){if(void 0!==t._targetOpacity){const r=e?this.prevPositionMap.get(e):void 0,n=r?null!==(i=r.opacity)&&void 0!==i?i:1:0;t.style.opacity=E(n,t._targetOpacity,c)}if(void 0===t._targetX)continue;if(!e)continue;const r=this.prevPositionMap.get(e);if(!r)continue;t.x=E(r.x,t._targetX,c),t.y=E(r.y,t._targetY,c),void 0!==t._targetR&&void 0!==r.r&&(t.r=E(r.r,t._targetR,c))}else if("rect"===t.type){if(void 0!==t._targetOpacity){const i=e?this.prevPositionMap.get(e):void 0,n=i?null!==(r=i.opacity)&&void 0!==r?r:1:0;t.style.opacity=E(n,t._targetOpacity,c)}if(void 0===t._targetX)continue;if(!e)continue;const i=this.prevPositionMap.get(e);if(!i)continue;t.x=E(i.x,t._targetX,c),t.y=E(i.y,t._targetY,c),void 0!==i.w&&(t.w=E(i.w,t._targetW,c)),void 0!==i.h&&(t.h=E(i.h,t._targetH,c))}else if("heatcell"===t.type){if(void 0!==t._targetOpacity){const i=e?this.prevPositionMap.get(e):void 0,r=i?null!==(n=i.opacity)&&void 0!==n?n:1:0;t.style=Object.assign(Object.assign({},t.style||{}),{opacity:E(r,t._targetOpacity,c)})}if(void 0===t._targetX)continue;if(!e)continue;const i=this.prevPositionMap.get(e);if(!i)continue;t.x=E(i.x,t._targetX,c),t.y=E(i.y,t._targetY,c),void 0!==i.w&&(t.w=E(i.w,t._targetW,c)),void 0!==i.h&&(t.h=E(i.h,t._targetH,c))}else if("line"===t.type){if(void 0!==t._targetOpacity){const e=void 0===t._prevPath&&t._targetOpacity>0?0:null!==(o=t.style.opacity)&&void 0!==o?o:1;t.style=Object.assign(Object.assign({},t.style),{opacity:E(e,t._targetOpacity,c)})}const e=t._prevPath,i=t._targetPath;if(e&&i&&e.length===t.path.length)for(let r=0;t.path.length>r;r++)t.path[r][0]=E(e[r][0],i[r][0],c),t.path[r][1]=E(e[r][1],i[r][1],c)}else if("area"===t.type){if(void 0!==t._targetOpacity){const e=void 0===t._prevTopPath&&t._targetOpacity>0?0:null!==(s=t.style.opacity)&&void 0!==s?s:1;t.style=Object.assign(Object.assign({},t.style),{opacity:E(e,t._targetOpacity,c)})}const e=t._prevTopPath,i=t._prevBottomPath,r=t._targetTopPath,n=t._targetBottomPath;if(e&&r&&e.length===t.topPath.length)for(let i=0;t.topPath.length>i;i++)t.topPath[i][0]=E(e[i][0],r[i][0],c),t.topPath[i][1]=E(e[i][1],r[i][1],c);if(i&&n&&i.length===t.bottomPath.length)for(let e=0;t.bottomPath.length>e;e++)t.bottomPath[e][0]=E(i[e][0],n[e][0],c),t.bottomPath[e][1]=E(i[e][1],n[e][1],c)}}if(a>=1){for(const t of this.scene){if(void 0!==t._targetOpacity){const e=t._targetOpacity;t.style=Object.assign(Object.assign({},"line"===t.type||"area"===t.type?t.style:t.style||{}),{opacity:0===e?0:e}),t._targetOpacity=void 0}if("point"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,void 0!==t._targetR&&(t.r=t._targetR),t._targetX=void 0,t._targetY=void 0,t._targetR=void 0}else if("rect"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}else if("heatcell"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}else if("line"===t.type){const e=t._targetPath;if(e)for(let i=0;t.path.length>i;i++)t.path[i]=e[i];t._prevPath=void 0,t._targetPath=void 0}else if("area"===t.type){const e=t._targetTopPath,i=t._targetBottomPath;if(e)for(let i=0;t.topPath.length>i;i++)t.topPath[i]=e[i];if(i)for(let e=0;t.bottomPath.length>e;e++)t.bottomPath[e]=i[e];t._prevTopPath=void 0,t._prevBottomPath=void 0,t._targetTopPath=void 0,t._targetBottomPath=void 0}}if(this.exitNodes.length>0){const t=new Set(this.exitNodes);this.scene=this.scene.filter(e=>!t.has(e)),this.exitNodes=[]}return this.activeTransition=null,!1}return!0}groupData(t){if(!this.getGroup)return[{key:"_default",data:t}];const e=new Map;for(const i of t){const t=this.getGroup(i);e.has(t)||e.set(t,[]),e.get(t).push(i)}return Array.from(e.entries()).map(([t,e])=>({key:t,data:e}))}resolveColorMap(t){const e=new Set;for(const i of t){const t=this.getColor(i);t&&e.add(t)}const i=Array.from(e).sort(),r=i.join("\0");if(this._colorMapCache&&this._colorMapCache.key===r)return this._colorMapCache.map;const n=Array.isArray(this.config.colorScheme)?this.config.colorScheme:_,o=new Map;for(let t=0;i.length>t;t++)o.set(i[t],n[t%n.length]);return this._colorMapCache={key:r,map:o},o}resolveLineStyle(t,e){const i=this.config.lineStyle;if("function"==typeof i){const r=i(e||{},t);if(r&&!r.stroke&&t){const e=this.resolveGroupColor(t);if(e)return Object.assign(Object.assign({},r),{stroke:e})}return r}return i&&"object"==typeof i?{stroke:i.stroke||"#007bff",strokeWidth:i.strokeWidth||2,strokeDasharray:i.strokeDasharray,fill:i.fill,fillOpacity:i.fillOpacity,opacity:i.opacity}:{stroke:"#007bff",strokeWidth:2}}resolveAreaStyle(t,e){var i;if(this.config.areaStyle){const i=this.config.areaStyle(e||{});if(i&&!i.fill&&t){const e=this.resolveGroupColor(t);if(e)return Object.assign(Object.assign({},i),{fill:e,stroke:i.stroke||e})}return i}const r=this.config.lineStyle;if("function"==typeof r){const i=r(e||{},t);if(i&&!i.fill&&t){const e=this.resolveGroupColor(t);if(e)return Object.assign(Object.assign({},i),{fill:e,stroke:i.stroke||e})}return i}return r&&"object"==typeof r?{fill:r.fill||r.stroke||"#4e79a7",fillOpacity:null!==(i=r.fillOpacity)&&void 0!==i?i:.7,stroke:r.stroke||"#4e79a7",strokeWidth:r.strokeWidth||2}:{fill:"#4e79a7",fillOpacity:.7,stroke:"#4e79a7",strokeWidth:2}}resolveGroupColor(t){if(this._colorMapCache){const e=this._colorMapCache.map.get(t);if(e)return e}const e=this._groupColorMap.get(t);if(e)return e;const i=Array.isArray(this.config.colorScheme)?this.config.colorScheme:_,r=i[this._groupColorMap.size%i.length];return this._groupColorMap.set(t,r),r}getBufferArray(){return!this._bufferDirty&&this._bufferArrayCache||(this._bufferArrayCache=this.buffer.toArray(),this._bufferDirty=!1),this._bufferArrayCache}getData(){return this.getBufferArray()}getExtents(){return this.xExtent.min===1/0?null:{x:this.xExtent.extent,y:this.yExtent.extent}}clear(){this.buffer.clear(),this.xExtent.clear(),this.yExtent.clear(),this.timestampBuffer&&this.timestampBuffer.clear(),this.prevPositionMap.clear(),this.prevPathMap.clear(),this.exitNodes=[],this.activeTransition=null,this.lastIngestTime=0,this.needsFullRebuild=!0,this._bufferDirty=!0,this._bufferArrayCache=null,this.lastLayout=null,this.scales=null,this.scene=[],this._quadtree=null,this._colorMapCache=null,this._groupColorMap=new Map,this._barCategoryCache=null,this._stackExtentCache=null,this.version++}get size(){return this.buffer.size}getBuffer(){return this.buffer}getXAccessor(){return this.getX}getYAccessor(){return this.getY}getCategoryAccessor(){return this.getCategory}updateConfig(t){void 0!==t.colorScheme&&(this._colorMapCache=null,this._groupColorMap=new Map),void 0===t.barColors&&void 0===t.colorScheme||(this._barCategoryCache=null),void 0===t.normalize&&void 0===t.extentPadding&&void 0===t.xAccessor&&void 0===t.yAccessor&&void 0===t.groupAccessor&&void 0===t.categoryAccessor&&void 0===t.chartType||(this._stackExtentCache=null),Object.assign(this.config,t),(void 0!==t.xAccessor||void 0!==t.yAccessor||void 0!==t.timeAccessor||void 0!==t.valueAccessor)&&(["bar","swarm","waterfall"].includes(this.config.chartType)||"streaming"===this.config.runtimeMode?(this.getX=k(this.config.timeAccessor||this.config.xAccessor,"time"),this.getY=k(this.config.valueAccessor||this.config.yAccessor,"value")):(this.getX=k(this.config.xAccessor,"x"),this.getY=k(this.config.yAccessor,"y"))),void 0!==t.groupAccessor&&(this.getGroup=P(this.config.groupAccessor)),void 0!==t.categoryAccessor&&(this.getCategory=P(this.config.categoryAccessor)),void 0!==t.sizeAccessor&&(this.getSize=this.config.sizeAccessor?k(this.config.sizeAccessor,"size"):void 0),void 0!==t.colorAccessor&&(this.getColor=P(this.config.colorAccessor)),void 0!==t.y0Accessor&&(this.getY0=this.config.y0Accessor?k(this.config.y0Accessor,"y0"):void 0),void 0!==t.pointIdAccessor&&(this.getPointId=P(this.config.pointIdAccessor)),this.needsFullRebuild=!0}}function D(t,e){var i=t.get(e);if(!i)throw Error("missing: "+e);return i}function O(t,e){var i,r=[],n=[],o=[],s={},a=[];function c(t){o[t]=!1,s.hasOwnProperty(t)&&Object.keys(s[t]).forEach(function(e){delete s[t][e],o[e]&&c(e)})}function l(t){var e,r,u=!1;for(n.push(t),o[t]=!0,e=0;a[t].length>e;e++)(r=a[t][e])===i?(h(i,n),u=!0):o[r]||(u=l(r));if(u)c(t);else for(e=0;a[t].length>e;e++){var f=s[r=a[t][e]];f||(s[r]=f={}),f[r]=!0}return n.pop(),u}function h(t,e){var i=[].concat(e).concat(t);r.push(i)}function u(e){!function(e){for(var i=0;t.length>i;i++)i>=e&&t[i]||(t[i]=[]),t[i]=t[i].filter(function(t){return t>=e})}(e);for(var i,r=function(t){for(var e=t.length,i=Array(e),r=Array(e),n=Array(e),o=Array(e),s=Array(e),a=Array(e),c=0;e>c;++c)i[c]=-1,r[c]=0,n[c]=!1,o[c]=0,s[c]=-1,a[c]=[];var l,h=0,u=[],f=[];function d(e){var c=[e],l=[e];for(i[e]=r[e]=h,n[e]=!0,h+=1;l.length>0;){var d=t[e=l[l.length-1]];if(d.length>o[e]){for(var y=o[e];d.length>y;++y){var g=d[y];if(0>i[g]){i[g]=r[g]=h,n[g]=!0,h+=1,c.push(g),l.push(g);break}n[g]&&(r[e]=0|Math.min(r[e],r[g])),0>s[g]||a[e].push(s[g])}o[e]=y}else{if(r[e]===i[e]){var p=[],m=[],v=0;for(y=c.length-1;y>=0;--y){var x=c[y];if(n[x]=!1,p.push(x),m.push(a[x]),v+=a[x].length,s[x]=u.length,x===e){c.length=y;break}}u.push(p);var b=Array(v);for(y=0;m.length>y;y++)for(var k=0;m[y].length>k;k++)b[--v]=m[y][k];f.push(b)}l.pop()}}}for(c=0;e>c;++c)0>i[c]&&d(c);for(c=0;f.length>c;c++){var y=f[c];if(0!==y.length){y.sort(function(t,e){return t-e}),l=[y[0]];for(var g=1;y.length>g;g++)y[g]!==y[g-1]&&l.push(y[g]);f[c]=l}}return{components:u,adjacencyList:f}}(t),n=r.components.filter(function(t){return t.length>1}),o=1/0,s=0;n.length>s;s++)for(var a=0;n[s].length>a;a++)o>n[s][a]&&(o=n[s][a],i=s);var c=n[i];if(!c)return!1;var l=t.map(function(t,e){return-1===c.indexOf(e)?[]:t.filter(function(t){return-1!==c.indexOf(t)})});return{leastVertex:o,adjList:l}}i=0;for(var f=t.length;f>i;){var d=u(i);if(i=d.leastVertex,a=d.adjList){for(var y=0;a.length>y;y++)for(var g=0;a[y].length>g;g++){var p=a[y][g];o[+p]=!1,s[p]={}}l(i),i+=1}else i=f}return r}function $(t){return t.y0-t.y1>0?"up":"down"}function N(t,e){return e(t.source)==e(t.target)}function T(t){var e=0;t.source.sourceLinks.forEach(function(t){e=t.circular?e+1:e});var i=0;return t.target.targetLinks.forEach(function(t){i=t.circular?i+1:i}),1>=e&&1>=i}function W(t){return t.target.x0-t.source.x1}function j(t,e){var i=z(t),r=W(e)/Math.tan(i);return"up"==$(t)?t.y1-r:t.y1+r}function R(t,e){var i=z(t),r=W(e)/Math.tan(i);return"up"==$(t)?t.y1+r:t.y1-r}function z(t){var e=Math.abs(t.y1-t.y0);return Math.atan(Math.abs(t.target.x0-t.source.x1)/e)}function C(t,e){return e(t)}function B(t){return Y(t.source)}function I(t){return Y(t.target)}function Y(t){return(t.y0+t.y1)/2}function X(t){return t.virtual?0:t.value}function F(t,e){var i=0;t.sourceLinks.forEach(function(t){i=t.circular&&!N(t,e)?i+1:i});var r=0;return t.targetLinks.forEach(function(t){r=t.circular&&!N(t,e)?r+1:r}),i+r}function q(t){return t.target.depth}function G(t,e){return t.sourceLinks.length?t.depth:e-1}function V(t,e){return t.y0-e.y0}function H(t,e){return e.y0-t.y0}function Z(t,e){return t.y1-e.y1}function K(t,e){return e.y1-t.y1}function Q(t,e){return J(t.source,e.source)||t.index-e.index}function U(t,e){return J(t.target,e.target)||t.index-e.index}function J(t,e){return t.partOfCycle===e.partOfCycle?t.y0-e.y0:"top"===t.circularLinkType||"bottom"===e.circularLinkType?-1:1}function tt(t,e){return et(t)==et(e)?"bottom"==t.circularLinkType?H(t,e):V(t,e):et(e)-et(t)}function et(t){return t.target.column-t.source.column}function it(t,e){return rt(t)==rt(e)}function rt(t){return t.y0-t.y1>0?"up":"down"}function nt(t,e,i,r,o){let s=t;var a=Math.max(8,.15*(s.y1-s.y0));s.links.forEach(function(t){t.circular&&(t._circularWidth=Math.min(t.width,a))});var c=n.min(s.links,function(t){return t.source.y0});s.links.forEach(function(t){t.circular&&(t.circularPathData={})});var l=s.links.filter(function(t){return t.circular});return l.sort(function(t,e){return e.value-t.value}),l.forEach(function(t,e){t._circularStub=e>=4}),ot(s.links.filter(function(t){return"top"==t.circularLinkType}),e,i),ot(s.links.filter(function(t){return"bottom"==t.circularLinkType}),e,i),s.links.forEach(function(t){if(t.circular){if(t.circularPathData.arcRadius=t._circularWidth+r,t.circularPathData.rightNodeBuffer=5,t.circularPathData.leftNodeBuffer=5,t.circularPathData.sourceWidth=t.source.x1-t.source.x0,t.circularPathData.sourceX=t.source.x0+t.circularPathData.sourceWidth,t.circularPathData.targetX=t.target.x0,t.circularPathData.sourceY=t.y0,t.circularPathData.targetY=t.y1,N(t,e)&&T(t))t.circularPathData.rightSmallArcRadius=r+t._circularWidth/2,t.circularPathData.rightLargeArcRadius=r+t._circularWidth/2,t.circularPathData.leftSmallArcRadius=r+t._circularWidth/2,t.circularPathData.leftLargeArcRadius=r+t._circularWidth/2,"bottom"==t.circularLinkType?(t.circularPathData.verticalFullExtent=t.source.y1+o+t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.leftLargeArcRadius):(t.circularPathData.verticalFullExtent=t.source.y0-o-t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.leftLargeArcRadius);else{var n=t.source.column,a=t.circularLinkType,l=s.links.filter(function(t){return t.source.column==n&&t.circularLinkType==a});l.sort("bottom"==t.circularLinkType?H:V);var h=0;l.forEach(function(e,n){e.circularLinkID==t.circularLinkID&&(t.circularPathData.rightSmallArcRadius=r+t._circularWidth/2+h,t.circularPathData.rightLargeArcRadius=r+t._circularWidth/2+n*i+h),h+=e._circularWidth||e.width}),n=t.target.column,(l=s.links.filter(function(t){return t.target.column==n&&t.circularLinkType==a})).sort("bottom"==t.circularLinkType?K:Z),h=0,l.forEach(function(e,n){e.circularLinkID==t.circularLinkID&&(t.circularPathData.leftSmallArcRadius=r+t._circularWidth/2+h,t.circularPathData.leftLargeArcRadius=r+t._circularWidth/2+n*i+h),h+=e._circularWidth||e.width}),"bottom"==t.circularLinkType?(t.circularPathData.verticalFullExtent=Math.max(s.y1,t.source.y1,t.target.y1)+o+t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.leftLargeArcRadius):(t.circularPathData.verticalFullExtent=c-o-t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.leftLargeArcRadius)}t.circularPathData.rightInnerExtent=t.circularPathData.sourceX+t.circularPathData.rightNodeBuffer,t.circularPathData.leftInnerExtent=t.circularPathData.targetX-t.circularPathData.leftNodeBuffer,t.circularPathData.rightFullExtent=t.circularPathData.sourceX+t.circularPathData.rightLargeArcRadius+t.circularPathData.rightNodeBuffer,t.circularPathData.leftFullExtent=t.circularPathData.targetX-t.circularPathData.leftLargeArcRadius-t.circularPathData.leftNodeBuffer}t.path=t.circular?function(t){return"top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.rightSmallArcRadius)+" L"+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" L"+t.circularPathData.leftFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.leftSmallArcRadius)+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.rightSmallArcRadius)+" L"+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" L"+t.circularPathData.leftFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.leftSmallArcRadius)+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY}(t):function(t){var e=t.source.x1,i=t.y0,r=t.target.x0,n=t.y1,o=(e+r)/2;return"M"+e+","+i+"C"+o+","+i+" "+o+","+n+" "+r+","+n}(t)}),s}function ot(t,e,i){t.sort(tt);var r=t.filter(function(t){return!t._circularStub});return t.forEach(function(t,n){var o=0;if(t._circularStub)t.circularPathData.verticalBuffer=0;else if(N(t,e)&&T(t))t.circularPathData.verticalBuffer=o+t._circularWidth/2;else{for(var s=0;r.length>s;s++){var a=r[s];if(a!==t&&a.circularPathData&&void 0!==a.circularPathData.verticalBuffer&&st(t,a)){var c=a.circularPathData.verticalBuffer+(a._circularWidth||a.width)/2+i;o=c>o?c:o}}t.circularPathData.verticalBuffer=o+t._circularWidth/2}}),t}function st(t,e){return t.source.column>=e.target.column&&e.source.column>=t.target.column}function at(t){return function(){return t}}function ct(t){return t.index}function lt(t){return t.nodes}function ht(t){return t.links}function ut(t,e,i){var r=n.groups(t.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]});r.forEach(function(n,o){var s=n.length;if(e)n.sort(e);else if(o>0){var a=new Map;n.forEach(function(t,e){var i,r,n,o=(r=0,n=0,(i=t).targetLinks.forEach(function(t){if(!t.circular){var e=t.value||1;n+=Y(t.source)*e,r+=e}}),i.sourceLinks.forEach(function(t){if(!t.circular){var e=t.value||1;n+=Y(t.target)*e,r+=e}}),r>0?n/r:NaN);a.set(t,{bc:o,idx:e})}),n.sort(function(t,e){var i=a.get(t),r=a.get(e),n=i.bc,o=r.bc;if(t.circularLinkType!==e.circularLinkType){if("top"==t.circularLinkType&&"bottom"==e.circularLinkType)return-1;if("bottom"==t.circularLinkType&&"top"==e.circularLinkType)return 1;if("top"==t.circularLinkType)return-1;if("top"==e.circularLinkType)return 1;if("bottom"==t.circularLinkType)return 1;if("bottom"==e.circularLinkType)return-1}return isNaN(n)||isNaN(o)?isNaN(n)?isNaN(o)?i.idx-r.idx:1:-1:n-o})}else n.sort(function(t,e){return t.circularLinkType==e.circularLinkType?F(e,i)-F(t,i):"top"==t.circularLinkType&&"bottom"==e.circularLinkType||"top"==t.circularLinkType&&0==e.partOfCycle||0==t.partOfCycle&&"bottom"==e.circularLinkType?-1:0});n.forEach(function(e,n){e.depth==r.length-1&&1==s||0==e.depth&&1==s?(e.y0=t.y1/2-e.value*t.ky,e.y1=e.y0+e.value*t.ky):e.partOfCycle?0==F(e,i)?(e.y0=t.y1/2+n,e.y1=e.y0+e.value*t.ky):"top"==e.circularLinkType?(e.y0=t.y0+n,e.y1=e.y0+e.value*t.ky):(e.y0=t.y1-e.value*t.ky-n,e.y1=e.y0+e.value*t.ky):0==t.y0||0==t.y1?(e.y0=(t.y1-t.y0)/s*n,e.y1=e.y0+e.value*t.ky):(e.y0=(t.y1-t.y0)/2-s/2+n,e.y1=e.y0+e.value*t.ky)})})}function ft(t,e,i,r,o,s){var a=n.groups(t.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]});u();for(var c=1,l=s;l>0;--l)h(c*=.99,i),u();function h(e,i){var r=a.length;a.forEach(function(o){var s=o.length,a=o[0].depth;o.forEach(function(o){var c;if(o.sourceLinks.length||o.targetLinks.length)if(o.partOfCycle&&F(o,i)>0){var l=n.mean(o.sourceLinks,I),h=n.mean(o.targetLinks,B),u=l&&h?(l+h)/2:l||h;if(u){var f=(u-Y(o))*e*.3;o.y0+=f,o.y1+=f}}else if(0==a&&1==s)o.y0=t.y1/2-(c=o.y1-o.y0)/2,o.y1=t.y1/2+c/2;else if(a==r-1&&1==s)o.y0=t.y1/2-(c=o.y1-o.y0)/2,o.y1=t.y1/2+c/2;else if(1==o.targetLinks.length&&1==o.targetLinks[0].source.sourceLinks.length)c=o.y1-o.y0,o.y0=o.targetLinks[0].source.y0,o.y1=o.y0+c;else{var d=n.mean(o.sourceLinks,I),y=n.mean(o.targetLinks,B),g=((d&&y?(d+y)/2:d||y)-Y(o))*e;o.y0+=g,o.y1+=g}})})}function u(){a.forEach(function(i){var n,s,a,c=t.y0,l=i.length;for(i.sort(e||J),a=0;l>a;++a)(s=c-(n=i[a]).y0)>0&&(n.y0+=s,n.y1+=s),c=n.y1+r;if((s=c-r-t.y1)>0)for(c=n.y0-=s,n.y1-=s,a=l-2;a>=0;--a)(s=(n=i[a]).y1+o-c)>0&&(n.y0-=s,n.y1-=s),c=n.y0})}}function dt(t){t.nodes.forEach(function(t){t.sourceLinks.sort(U),t.targetLinks.sort(Q)}),t.nodes.forEach(function(t){var e=t.y0,i=e,r=t.y1,n=r;t.sourceLinks.forEach(function(t){t.circular?(t.y0=r-t.width/2,r-=t.width):(t.y0=e+t.width/2,e+=t.width)}),t.targetLinks.forEach(function(t){t.circular?(t.y1=n-t.width/2,n-=t.width):(t.y1=i+t.width/2,i+=t.width)})})}function yt(){var t=0,e=0,i=1,r=1,o=24,s=8,a=null,c=ct,l=G,h=void 0,u=32,f=2,d=lt,y=ht;function g(){var g={nodes:d.apply(null,arguments),links:y.apply(null,arguments)};return function(d){d.x0=t,d.y0=e,d.x1=i,d.y1=r,d.py=0,function(t,e){t.nodes.forEach(function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]});var i=function(t,e){var i=new Map;return n.group(t,e).forEach(function(t,e){i.set(e,t[0])}),i}(t.nodes,e);t.links.forEach(function(t,e){t.index=e;var r=t.source,n=t.target;"object"!=typeof r&&(r=t.source=D(i,r)),"object"!=typeof n&&(n=t.target=D(i,n)),r.sourceLinks.push(t),n.targetLinks.push(t)})}(d,c),function(t,e){var i=0;if(null==e){for(var r=[],n=0;t.links.length>n;n++){var o=t.links[n],s=o.source.index,a=o.target.index;r[s]||(r[s]=[]),r[a]||(r[a]=[]),-1===r[s].indexOf(a)&&r[s].push(a)}var c=O(r);c.sort(function(t,e){return t.length-e.length});var l={};for(n=0;c.length>n;n++){var h=c[n].slice(-2);l[h[0]]||(l[h[0]]={}),l[h[0]][h[1]]=!0}t.links.forEach(function(t){var e=t.target.index,r=t.source.index;e===r||l[r]&&l[r][e]?(t.circular=!0,t.circularLinkID=i++):t.circular=!1})}else t.links.forEach(function(t){e(t.source)<e(t.target)?t.circular=!1:(t.circular=!0,t.circularLinkID=i++)})}(d,h),function(t,e){var i=0,r=0;t.links.forEach(function(n){n.circular&&(n.circularLinkType=n.source.circularLinkType||n.target.circularLinkType?n.source.circularLinkType?n.source.circularLinkType:n.target.circularLinkType:r>i?"top":"bottom","top"==n.circularLinkType?i++:r++,t.nodes.forEach(function(t){C(t,e)!=C(n.source,e)&&C(t,e)!=C(n.target,e)||(t.circularLinkType=n.circularLinkType)}))}),t.links.forEach(function(t){t.circular&&(t.source.circularLinkType==t.target.circularLinkType&&(t.circularLinkType=t.source.circularLinkType),N(t,e)&&(t.circularLinkType=t.source.circularLinkType))})}(d,c),function(t){t.nodes.forEach(function(t){t.partOfCycle=!1,t.value=Math.max(n.sum(t.sourceLinks,X),n.sum(t.targetLinks,X)),t.sourceLinks.forEach(function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)}),t.targetLinks.forEach(function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)})})}(d),function(t,e,i){var r,n,o;if(null!=e){t.nodes.sort(function(t,i){return e(t)<e(i)?-1:1});var s=0,a=e(t.nodes[0]);t.nodes.forEach(function(t){s=e(t)==a?s:s+1,a=e(t)==a?a:e(t),t.column=s})}for(r=t.nodes,n=[],o=0;r.length;++o,r=n,n=[])r.forEach(function(t){t.depth=o,t.sourceLinks.forEach(function(t){0>n.indexOf(t.target)&&!t.circular&&n.push(t.target)})});for(r=t.nodes,n=[],o=0;r.length;++o,r=n,n=[])r.forEach(function(t){t.height=o,t.targetLinks.forEach(function(t){0>n.indexOf(t.source)&&!t.circular&&n.push(t.source)})});t.nodes.forEach(function(t){t.column=null==e?i(t,o):t.column})}(d,h,l);var y=s;if(null!==a){var g=n.groups(d.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]}),p=n.max(g,function(t){return t.length});p>1&&(y=Math.max(1,(r-e)*a/(p-1)))}(function(t,e,i){var r=n.groups(t.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]});t.py=e;var o=n.min(r,function(e){return(t.y1-t.y0-(e.length-1)*t.py)/n.sum(e,function(t){return t.value})});t.ky=o,t.links.forEach(function(e){e.width=e.value*t.ky});var s=n.max(t.nodes,function(t){return t.column});t.nodes.forEach(s>0?function(e){e.x0=t.x0+e.column*((t.x1-t.x0-i)/s),e.x1=e.x0+i}:function(e){e.x0=t.x0,e.x1=e.x0+i})})(d,y,o),ut(d,h,c),ft(d,h,c,y,y,u),dt(d),nt(d,c,f,10,8),ut(d,h,c),ft(d,h,c,y,y,u),dt(d),nt(d,c,f,10,8),function(t,e){let i=t;i.nodes.forEach(function(t){t.y+(t.y1-t.y0)>i.y1&&(t.y=t.y-(t.y+(t.y1-t.y0)-i.y1));var r=i.links.filter(function(i){return C(i.source,e)==C(t,e)}),n=r.length;n>1&&r.sort(function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!it(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var i=j(e,t);return t.y1-i}if(e.target.column>t.target.column)return j(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0});var o=t.y0;r.forEach(function(t){t.y0=o+t.width/2,o+=t.width}),r.forEach(function(e,i){if("bottom"==e.circularLinkType){for(var o=i+1,s=0;n>o;o++)s+=r[o].width;e.y0=t.y1-s-e.width/2}})})}(d,c),function(t,e){let i=t;i.nodes.forEach(function(t){var r=i.links.filter(function(i){return C(i.target,e)==C(t,e)}),n=r.length;n>1&&r.sort(function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!it(t,e))return t.y0-e.y0;if(t.source.column>e.source.column){var i=R(e,t);return t.y0-i}if(e.source.column>t.source.column)return R(t,e)-e.y0}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:t.source.column-e.source.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:e.source.column-t.source.column:"top"==t.circularLinkType?-1:1:void 0});var o=t.y0;r.forEach(function(t){t.y1=o+t.width/2,o+=t.width}),r.forEach(function(e,i){if("bottom"==e.circularLinkType){for(var o=i+1,s=0;n>o;o++)s+=r[o].width;e.y1=t.y1-s-e.width/2}})})}(d,c),function(t){var e=t.nodes,i=t.links,r=!1,o=!1;if(i.forEach(function(t){"top"==t.circularLinkType?r=!0:"bottom"==t.circularLinkType&&(o=!0)}),0==r||0==o){var s=n.min(e,function(t){return t.y0}),a=n.max(e,function(t){return t.y1}),c=(t.y1-t.y0)/(a-s);function l(e){return(e-s)/(a-s)*(t.y1-t.y0)+t.y0}1>c?(e.forEach(function(t){t.y0=l(t.y0),t.y1=l(t.y1)}),i.forEach(function(t){t.y0=l(t.y0),t.y1=l(t.y1),t.width=t.width*c})):e.forEach(function(t){var e=t.y1-t.y0,i=l(t.y0)-t.y0;t.y0=l(t.y0),t.y1=t.y0+e,t.sourceLinks.forEach(function(t){t.y0=t.y0+i}),t.targetLinks.forEach(function(t){t.y1=t.y1+i})})}}(d),nt(d,c,f,10,8)}(g),g}return g.update=function(t){return dt(t),nt(t,c,f,10,8),t},g.nodeWidth=function(t){return arguments.length?(o=+t,g):o},g.nodePadding=function(t){return arguments.length?(s=+t,g):s},g.nodePaddingRatio=function(t){return arguments.length?(a=+t,g):a},g.nodes=function(t){return arguments.length?(d="function"==typeof t?t:at(t),g):d},g.links=function(t){return arguments.length?(y="function"==typeof t?t:at(t),g):y},g.nodeId=function(t){return arguments.length?(c="function"==typeof t?t:at(t),g):c},g.nodeAlign=function(t){return arguments.length?(l="function"==typeof t?t:at(t),g):l},g.nodeSort=function(t){return arguments.length?(h=t,g):h},g.iterations=function(t){return arguments.length?(u=+t,g):u},g.circularLinkGap=function(t){return arguments.length?(f=+t,g):f},g.extent=function(n){return arguments.length?(t=+n[0][0],e=+n[0][1],i=+n[1][0],r=+n[1][1],g):[[t,e],[i,r]]},g.size=function(n){return arguments.length?(t=e=0,i=+n[0],r=+n[1],g):[i-t,r-e]},g}L.QUADTREE_THRESHOLD=500;const gt=t=>{let e,i,r,n,s,a,c,l,h;return"down"===t.direction?(e=t.y0-t.sankeyWidth/2,i=t.y1-t.sankeyWidth/2,r=t.y1+t.sankeyWidth/2,n=t.y0+t.sankeyWidth/2,s=t.source.y1,a=t.target.y0,c=o.interpolateNumber(s,a),l=c(.5),h=c(.5),`M${e},${s}C${e},${l} ${i},${h} ${i},${a}L${r},${a}C${r},${h} ${n},${l} ${n},${s}Z`):(e=t.source.x1,i=t.target.x0,c=o.interpolateNumber(e,i),r=c(.5),n=c(.5),s=t.y0-t.sankeyWidth/2,a=t.y1-t.sankeyWidth/2,l=t.y1+t.sankeyWidth/2,h=t.y0+t.sankeyWidth/2,`M${e},${s}C${r},${s} ${n},${a} ${i},${a}L${i},${l}C${n},${l} ${r},${h} ${e},${h}Z`)};function pt(t){var e;const i=t.sankeyWidth/2,r=(null!==(e=t._circularWidth)&&void 0!==e?e:t.sankeyWidth)/2,n=t.circularPathData;if(!n)return null;if("down"===t.direction)return null;if(t._circularStub){const e=n.sourceX,r=n.sourceY,o=n.targetX,s=n.targetY;if("object"!=typeof t.source||!t.source||"object"!=typeof t.target||!t.target)return null;const a=Math.max(15,Math.min(40,.33*(n.rightFullExtent-e))),c=Math.max(15,Math.min(40,.33*(o-n.leftFullExtent)));return`M${e},${r-i}L${e+a},${r-i}L${e+a},${r+i}L${e},${r+i}ZM${o},${s-i}L${o-c},${s-i}L${o-c},${s+i}L${o},${s+i}Z`}const o=n.sourceX,s=n.sourceY,a=n.targetX,c=n.targetY,l=n.rightFullExtent,h=n.leftFullExtent,u=n.verticalFullExtent,f="bottom"===t.circularLinkType?1:-1,d=Math.max(4,Math.min(r,15));return`M${o},${s-f*i}L${l},${s-f*i}L${l+r},${s-f*i+f*d}L${l+r},${u+f*r-f*d}L${l+r-d},${u+f*r}L${h-r+d},${u+f*r}L${h-r},${u+f*r-f*d}L${h-r},${c-f*i+f*d}L${h-r+d},${c-f*i}L${a},${c-f*i}L${a},${c+f*i}L${h+r},${c+f*i}L${h+r},${u-f*r}L${l-r},${u-f*r}L${l-r},${s+f*i}L${o},${s+f*i}Z`}const mt={left:function(t){return t.depth},right:function(t,e){return e-1-t.height},center:function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?Math.min.apply(Math,t.sourceLinks.map(q))-1:0},justify:G},vt={supportsStreaming:!0,hierarchical:!1,computeLayout(t,e,i,r){var n,o,s,a,c,l,h;if(0===t.length)return;const u="vertical"===i.orientation?"down":"right",f=i.nodeAlign||"justify",d=null!==(n=i.nodeWidth)&&void 0!==n?n:15,y=null!==(o=i.nodePaddingRatio)&&void 0!==o?o:.05,g=null!==(s=i.iterations)&&void 0!==s?s:100,p=t.map(t=>Object.assign({},t)),m=e.map(t=>Object.assign(Object.assign({},t),{source:"string"==typeof t.source?t.source:t.source.id,target:"string"==typeof t.target?t.target:t.target.id,value:Math.sqrt(Math.max(1,t.value||1))}));let v;v="down"===u?[[0,0],[r[1],r[0]]]:[[0,0],[r[0],r[1]]];const x=yt().extent(v).links(m).nodes(p).nodeAlign(mt[f]||G).nodeId(t=>t.id).nodeWidth(d).iterations(g);x.nodePaddingRatio&&x.nodePaddingRatio(y),x();{let t=1/0,e=-1/0,i=1/0,n=-1/0;for(const r of p)t>r.x0&&(t=r.x0),r.x1>e&&(e=r.x1),i>r.y0&&(i=r.y0),r.y1>n&&(n=r.y1);for(const r of m){if(!r.circular||!r.circularPathData)continue;const o=r.circularPathData,s=(null!==(c=null!==(a=r._circularWidth)&&void 0!==a?a:r.width)&&void 0!==c?c:0)/2;t>o.leftFullExtent-s&&(t=o.leftFullExtent-s),o.rightFullExtent+s>e&&(e=o.rightFullExtent+s),i>o.verticalFullExtent-s&&(i=o.verticalFullExtent-s),o.verticalFullExtent+s>n&&(n=o.verticalFullExtent+s)}const o=e-t,s=n-i,h=r[0],u=r[1];if(o>0&&s>0&&(0>t||0>i||e>h||n>u)){const e=Math.min(h/o,u/s),r=-t*e+(h-o*e)/2,n=-i*e+(u-s*e)/2;for(const t of p)t.x0=t.x0*e+r,t.x1=t.x1*e+r,t.y0=t.y0*e+n,t.y1=t.y1*e+n;for(const t of m)if(t.y0=t.y0*e+n,t.y1=t.y1*e+n,t.width=(null!==(l=t.width)&&void 0!==l?l:0)*e,t._circularWidth&&(t._circularWidth*=e),t.circular&&t.circularPathData){const i=t.circularPathData;i.sourceX=i.sourceX*e+r,i.targetX=i.targetX*e+r,i.sourceY=i.sourceY*e+n,i.targetY=i.targetY*e+n,i.rightFullExtent=i.rightFullExtent*e+r,i.leftFullExtent=i.leftFullExtent*e+r,i.verticalFullExtent=i.verticalFullExtent*e+n,i.rightInnerExtent=i.rightInnerExtent*e+r,i.leftInnerExtent=i.leftInnerExtent*e+r,i.verticalRightInnerExtent=i.verticalRightInnerExtent*e+n,i.verticalLeftInnerExtent=i.verticalLeftInnerExtent*e+n,i.rightSmallArcRadius*=e,i.rightLargeArcRadius*=e,i.leftSmallArcRadius*=e,i.leftLargeArcRadius*=e,i.sourceWidth*=e,i.rightNodeBuffer*=e,i.leftNodeBuffer*=e,i.arcRadius*=e}}}const b=new Map;for(const e of t)b.set(e.id,e);for(const t of p){const e=b.get(t.id);e&&(e.x0=t.x0,e.x1=t.x1,e.y0=t.y0,e.y1=t.y1,e.value=t.value,e.depth=t.depth,e.sourceLinks=t.sourceLinks,e.targetLinks=t.targetLinks,e.width=t.x1-t.x0,e.height=t.y1-t.y0,e.x=t.x0+(t.x1-t.x0)/2,e.y=t.y0+(t.y1-t.y0)/2)}const k=new Map;for(const t of e)k.set(`${"string"==typeof t.source?t.source:t.source.id}\0${"string"==typeof t.target?t.target:t.target.id}`,t);for(const t of m){const e=t.source,i=t.target,r="object"==typeof e&&null!==e?e.id:e+"",n="object"==typeof i&&null!==i?i.id:i+"",o=k.get(`${r}\0${n}`);if(o){o.y0=t.y0,o.y1=t.y1,o.sankeyWidth=null!==(h=t.width)&&void 0!==h?h:0,o.circular=!!t.circular,o.circularPathData=t.circularPathData,o._circularWidth=t._circularWidth,o._circularStub=t._circularStub,o.path=t.path,o.circularLinkType=t.circularLinkType,o.direction=u;const e=b.get(r),i=b.get(n);e&&(o.source=e),i&&(o.target=i)}}},buildScene(t,e,r,n){var o,s,a,c;const l="vertical"===r.orientation?"down":"right",h=r.nodeStyle,u=r.edgeStyle,f=null!==(o=r.edgeOpacity)&&void 0!==o?o:.5,d=r.edgeColorBy||"source",y=Array.isArray(r.colorScheme)?r.colorScheme:i.schemeCategory10,g=new Map;t.forEach((t,e)=>{g.set(t.id,y[e%y.length])});const p=[],m=[],v=[];for(const e of t){const t=e.x1-e.x0,i=e.y1-e.y0;if(0>=t||0>=i)continue;const r=h?h(e):{},n={fill:r.fill||g.get(e.id)||"#4d430c",stroke:r.stroke,strokeWidth:r.strokeWidth,opacity:r.opacity};p.push({type:"rect",x:e.x0,y:e.y0,w:t,h:i,style:n,datum:e,id:e.id,label:e.id})}const x=[...e].sort((t,e)=>(e.sankeyWidth||0)-(t.sankeyWidth||0));for(const t of x){if(!t.sankeyWidth||0>=t.sankeyWidth)continue;const e="object"==typeof t.source?t.source:null,i="object"==typeof t.target?t.target:null;if(!e||!i)continue;let r="#999";u?r=u(t).fill||r:"target"===d&&i?r=g.get(i.id)||r:e&&(r=g.get(e.id)||r);const n=u?u(t):{};if(t._circularStub&&t.circular&&t.circularPathData){const e=t.circularPathData,i=t.sankeyWidth/2,o=Math.max(15,Math.min(40,.33*(e.rightFullExtent-e.sourceX))),c=Math.max(15,Math.min(40,.33*(e.targetX-e.leftFullExtent))),l=n.fill||r;m.push({type:"bezier",pathD:`M${e.sourceX},${e.sourceY-i}L${e.sourceX+o},${e.sourceY-i}L${e.sourceX+o},${e.sourceY+i}L${e.sourceX},${e.sourceY+i}Z`,style:{fill:l,fillOpacity:null!==(s=n.fillOpacity)&&void 0!==s?s:f,stroke:"none",opacity:n.opacity},datum:t,_gradient:{direction:"right",from:1,to:0,x0:e.sourceX,x1:e.sourceX+o}}),m.push({type:"bezier",pathD:`M${e.targetX},${e.targetY-i}L${e.targetX-c},${e.targetY-i}L${e.targetX-c},${e.targetY+i}L${e.targetX},${e.targetY+i}Z`,style:{fill:l,fillOpacity:null!==(a=n.fillOpacity)&&void 0!==a?a:f,stroke:"none",opacity:n.opacity},datum:t,_gradient:{direction:"left",from:0,to:1,x0:e.targetX-c,x1:e.targetX}});continue}let o;if(o=t.circular&&t.circularPathData?pt(t):gt(t),!o)continue;const l={fill:n.fill||r,fillOpacity:null!==(c=n.fillOpacity)&&void 0!==c?c:f,stroke:n.stroke||"none",strokeWidth:n.strokeWidth,opacity:n.opacity};m.push({type:"bezier",pathD:o,bezierCache:t.bezier,style:l,datum:t})}if(!1!==r.showLabels){const e=(b=r.nodeLabel)?"function"==typeof b?b:t=>t[b]||t.id:null;for(const i of t){const t=i.x1-i.x0,r=i.y1-i.y0;if(0>=t||0>=r)continue;const o=e?e(i):i.id;if(!o)continue;let s,a,c;"down"===l?(s=i.x0+t/2,a=i.y1+14,c="middle"):(n[0]/2>i.x0+t/2?(s=i.x0-6,c="end"):(s=i.x1+6,c="start"),a=i.y0+r/2),v.push({x:s,y:a,text:o+"",anchor:c,baseline:"middle",fontSize:11})}}var b;return{sceneNodes:p,sceneEdges:m,labels:v}}},xt={supportsStreaming:!0,hierarchical:!1,computeLayout(t,e,i,r){var n,o;if(0===t.length)return;const a=null!==(n=i.forceStrength)&&void 0!==n?n:.1,c=r[0]/2,l=r[1]/2,h=i.__previousPositions;let u=0;const f=[];for(const e of t){const t=null!=e.x&&null!=e.y&&(0!==e.x||0!==e.y),i=null==h?void 0:h.get(e.id);t?u++:i?(e.x=i.x,e.y=i.y,u++):f.push(e)}const d=u>0&&.3>=(t.length>0?f.length/t.length:1);if(d){const i=new Map;for(const e of t)i.set(e.id,e);for(const t of f){const r=bt(t.id,e,i);if(r.length>0){let e=0,i=0;for(const t of r)e+=t.x,i+=t.y;const n=kt(t.id),o=n%360*(Math.PI/180),s=10+n%20;t.x=e/r.length+s*Math.cos(o),t.y=i/r.length+s*Math.sin(o)}else{const e=kt(t.id),i=e%360*(Math.PI/180),r=15+e%30;t.x=c+r*Math.cos(i),t.y=l+r*Math.sin(i)}}}else{const e=2.399963229728653;for(let i=0;t.length>i;i++){const r=t[i];if(null==r.x||null==r.y||0===r.x&&0===r.y){const t=10*Math.sqrt(i+.5),n=i*e;r.x=c+t*Math.cos(n),r.y=l+t*Math.sin(n)}}}const y=null!==(o=i.iterations)&&void 0!==o?o:Math.max(50,Math.min(300,Math.floor(300-2*(t.length-30)))),g=d?40:y,p=wt(i.nodeSize,i.nodeSizeRange,t),m=t=>p(t),v=s.forceLink().strength(t=>Math.min(2.5,t.weight?t.weight*a:a)).id(t=>t.id),x=s.forceSimulation().force("charge",s.forceManyBody().strength(t=>-25*m(t))).force("center",s.forceCenter(c,l).strength(.8)).force("x",s.forceX(c).strength(.15)).force("y",s.forceY(l).strength(.15));if(x.nodes(t),e.length>0){const t=e.map(t=>Object.assign(Object.assign({},t),{source:"string"==typeof t.source?t.source:t.source.id,target:"string"==typeof t.target?t.target:t.target.id}));x.force("link",v),x.force("link").links(t)}d?x.alpha(.3):.1>x.alpha()&&x.alpha(1),x.stop();for(let t=0;g>t;++t)x.tick();for(const e of t){if(null==e.x||null==e.y)continue;const t=m(e);e.x=Math.max(t,Math.min(r[0]-t,e.x)),e.y=Math.max(t,Math.min(r[1]-t,e.y)),e.x0=0,e.x1=0,e.y0=0,e.y1=0}const b=new Map;for(const e of t)b.set(e.id,e);for(const t of e){if("string"==typeof t.source){const e=b.get(t.source);e&&(t.source=e)}if("string"==typeof t.target){const e=b.get(t.target);e&&(t.target=e)}}},buildScene(t,e,r,n){var o,s,a;const c=r.nodeStyle,l=r.edgeStyle,h=wt(r.nodeSize,r.nodeSizeRange,t),u=Array.isArray(r.colorScheme)?r.colorScheme:i.schemeCategory10,f=new Map;t.forEach((t,e)=>{f.set(t.id,u[e%u.length])});const d=[],y=[],g=[];for(const e of t){if(null==e.x||null==e.y)continue;const t=h(e),i=c?c(e):{},r={fill:i.fill||f.get(e.id)||"#007bff",stroke:i.stroke||"#fff",strokeWidth:null!==(o=i.strokeWidth)&&void 0!==o?o:2,opacity:i.opacity};d.push({type:"circle",cx:e.x,cy:e.y,r:t,style:r,datum:e,id:e.id,label:e.id})}const p=new Map;for(const e of t)p.set(e.id,e);for(const t of e){const e="object"==typeof t.source?t.source:p.get(t.source),i="object"==typeof t.target?t.target:p.get(t.target);if(!e||!i)continue;if(null==e.x||null==e.y)continue;if(null==i.x||null==i.y)continue;const r=l?l(t):{},n={stroke:r.stroke||"#999",strokeWidth:null!==(s=r.strokeWidth)&&void 0!==s?s:1,opacity:null!==(a=r.opacity)&&void 0!==a?a:.6};y.push({type:"line",x1:e.x,y1:e.y,x2:i.x,y2:i.y,style:n,datum:t})}if(!1!==r.showLabels){const e=(m=r.nodeLabel)?"function"==typeof m?m:t=>t[m]||t.id:null;for(const i of t){if(null==i.x||null==i.y)continue;const t=e?e(i):i.id;if(!t)continue;const r=h(i);g.push({x:i.x,y:i.y-r-4,text:t+"",anchor:"middle",baseline:"auto",fontSize:11})}}var m;return{sceneNodes:d,sceneEdges:y,labels:g}}};function bt(t,e,i){const r=[];for(const n of e){const e="string"==typeof n.source?n.source:n.source.id,o="string"==typeof n.target?n.target:n.target.id;let s=null;if(e===t?s=o:o===t&&(s=e),s){const t=i.get(s);!t||0===t.x&&0===t.y||r.push({x:t.x,y:t.y})}}return r}function kt(t){let e=0;for(let i=0;t.length>i;i++)e=(e<<5)-e+t.charCodeAt(i)|0;return Math.abs(e)}function wt(t,i,r){var o,s;if(null==t)return()=>8;if("number"==typeof t)return()=>t;if("function"==typeof t)return e=>t(e)||8;const a=i||[5,20],c=r.map(e=>{var i;return null===(i=e.data)||void 0===i?void 0:i[t]}).filter(t=>null!=t&&"number"==typeof t);if(0===c.length)return()=>a[0];const l=null!==(o=n.min(c))&&void 0!==o?o:0,h=null!==(s=n.max(c))&&void 0!==s?s:1;if(l===h)return()=>(a[0]+a[1])/2;const u=e.scaleLinear().domain([l,h]).range(a).clamp(!0);return e=>{var i;const r=null===(i=e.data)||void 0===i?void 0:i[t];return null==r||"number"!=typeof r?a[0]:u(r)}}const Pt=i.schemeCategory10,_t={supportsStreaming:!1,hierarchical:!1,computeLayout(t,e,i,r){if(0===t.length)return;const{padAngle:n=.01,groupWidth:o=20,sortGroups:s}=i,l=Math.min(r[0],r[1])/2,h=l-o,u=r[0]/2,f=r[1]/2,d=(y=i.valueAccessor)?"function"==typeof y?y:t=>{var e;return null!==(e=t[y])&&void 0!==e?e:1}:t=>{var e;return null!==(e=t.value)&&void 0!==e?e:1};var y;const g=new Map;for(let e=0;t.length>e;e++)g.set(t[e].id,e);const p=t.length,m=Array.from({length:p},()=>Array.from({length:p},()=>0));for(const t of e){const e="string"==typeof t.target?t.target:t.target.id,i=g.get("string"==typeof t.source?t.source:t.source.id),r=g.get(e);if(void 0===i||void 0===r)continue;const n=d(t);m[i][r]=n}const v=a.chord().padAngle(n);s&&v.sortGroups(s);const x=v(m),b=x.groups,k=c.arc().innerRadius(h).outerRadius(l);for(const e of b){const i=t[e.index],r=k.centroid(e);i.x=r[0]+u,i.y=r[1]+f,i.arcData={startAngle:e.startAngle,endAngle:e.endAngle}}const w=new Map;for(const e of t)w.set(e.id,e);for(const t of e){const e="string"==typeof t.target?t.target:t.target.id,i=w.get("string"==typeof t.source?t.source:t.source.id),r=w.get(e);i&&(t.source=i),r&&(t.target=r)}const P=new Map;for(const t of e)P.set(`${"string"==typeof t.source?t.source:t.source.id}\0${"string"==typeof t.target?t.target:t.target.id}`,t);for(const e of x){const i=t[e.source.index].id,r=t[e.target.index].id,n=P.get(`${i}\0${r}`)||P.get(`${r}\0${i}`);n&&(n.chordData=e)}},buildScene(t,e,i,r){var n,o;const{groupWidth:s=20,edgeOpacity:c=.5}=i,l=Math.min(r[0],r[1])/2,h=l-s,u=r[0]/2,f=r[1]/2,d=i.nodeStyle,y=i.edgeStyle,g=i.edgeColorBy||"source",p=Array.isArray(i.colorScheme)?i.colorScheme:Pt,m=new Map;t.forEach((t,e)=>{m.set(t.id,p[e%p.length])});const v=a.ribbon().radius(h),x=[],b=[],k=[];for(let e=0;t.length>e;e++){const i=t[e],r=i.arcData;if(!r)continue;let o;o=d?d(i).fill||m.get(i.id)||p[e%p.length]:m.get(i.id)||p[e%p.length];const s=d?d(i):{},a={fill:o,stroke:s.stroke||"black",strokeWidth:null!==(n=s.strokeWidth)&&void 0!==n?n:1,opacity:s.opacity};x.push({type:"arc",cx:u,cy:f,innerR:h,outerR:l,startAngle:r.startAngle-Math.PI/2,endAngle:r.endAngle-Math.PI/2,style:a,datum:i,id:i.id,label:i.id})}for(const t of e){const e=t.chordData;if(!e)continue;const i=v(e);if(!i)continue;const r=At(i,u,f);let n="#999";if(y)n=y(t).fill||n;else{const e="object"==typeof t.source?t.source:null,i="object"==typeof t.target?t.target:null;"target"===g&&i?n=m.get(i.id)||n:e&&(n=m.get(e.id)||n)}const s=y?y(t):{},a={fill:n,fillOpacity:null!==(o=s.fillOpacity)&&void 0!==o?o:c,stroke:s.stroke||"none",strokeWidth:s.strokeWidth,opacity:s.opacity};b.push({type:"ribbon",pathD:r,style:a,datum:t})}if(!1!==i.showLabels){const e=(w=i.nodeLabel)?"function"==typeof w?w:t=>t[w]||t.id:null,r=l+12;for(const i of t){const t=i.arcData;if(!t)continue;const n=e?e(i):i.id;if(!n)continue;const o=(t.startAngle+t.endAngle)/2,s=o-Math.PI/2;k.push({x:u+Math.cos(s)*r,y:f+Math.sin(s)*r,text:n+"",anchor:o>Math.PI?"end":"start",baseline:"middle",fontSize:11})}}var w;return{sceneNodes:x,sceneEdges:b,labels:k}}};function At(t,e,i){const r=t.match(/[a-zA-Z]|[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/g);if(!r)return t;const n=[];let o=0;for(;r.length>o;){const t=r[o];if("M"===t||"L"===t)for(n.push(t),o++;r.length>o&&!isNaN(Number(r[o]));)n.push(Number(r[o])+e+""),o++,r.length>o&&!isNaN(Number(r[o]))&&(n.push(Number(r[o])+i+""),o++);else if("C"===t)for(n.push(t),o++;r.length>o&&!isNaN(Number(r[o]));)for(let t=0;3>t&&r.length>o&&!isNaN(Number(r[o]));t++)n.push(Number(r[o])+e+""),o++,r.length>o&&!isNaN(Number(r[o]))&&(n.push(Number(r[o])+i+""),o++);else if("Q"===t)for(n.push(t),o++;r.length>o&&!isNaN(Number(r[o]));)for(let t=0;2>t&&r.length>o&&!isNaN(Number(r[o]));t++)n.push(Number(r[o])+e+""),o++,r.length>o&&!isNaN(Number(r[o]))&&(n.push(Number(r[o])+i+""),o++);else if("A"===t)for(n.push(t),o++;r.length>o&&!isNaN(Number(r[o]));)n.push(r[o++]),r.length>o&&n.push(r[o++]),r.length>o&&n.push(r[o++]),r.length>o&&n.push(r[o++]),r.length>o&&n.push(r[o++]),r.length>o&&(n.push(Number(r[o])+e+""),o++),r.length>o&&(n.push(Number(r[o])+i+""),o++);else"Z"===t||"z"===t?(n.push(t),o++):(n.push(r[o]),o++)}return n.join(" ")}function St(t){const[e,i,r]=function(t){if(t.startsWith("#")){let e=t.slice(1);if(3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),6===e.length)return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}const e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return e?[+e[1],+e[2],+e[3]]:[128,128,128]}(t);return.299*e+.587*i+.114*r>150?"#222":"#fff"}const Et={supportsStreaming:!1,hierarchical:!0,computeLayout(t,e,i,r){var n;const o=i.__hierarchyRoot;if(!o)return;const s=i.chartType,a=(c=i.childrenAccessor)?"function"==typeof c?c:t=>t[c]:void 0;var c;const h=i.hierarchySum||(t=>{var e;return null!==(e=t.value)&&void 0!==e?e:0}),u=l.hierarchy(o,a);u.sum(h),u.sort((t,e)=>{var i,r;return(null!==(i=e.value)&&void 0!==i?i:0)-(null!==(r=t.value)&&void 0!==r?r:0)});const[f,d]=r;switch(s){case"tree":!function(t,e,i,r){const n=e.treeOrientation||"vertical",o=l.tree();o.size("horizontal"===n?[r,i]:"radial"===n?[2*Math.PI,Math.min(i,r)/2*.8]:[i,r]),o(t)}(u,i,f,d);break;case"cluster":!function(t,e,i,r){const n=e.treeOrientation||"vertical",o=l.cluster();o.size("horizontal"===n?[r,i]:"radial"===n?[2*Math.PI,Math.min(i,r)/2*.8]:[i,r]),o(t)}(u,i,f,d);break;case"treemap":!function(t,e,i,r){var n,o;const s=null!==(n=e.padding)&&void 0!==n?n:4,a=null!==(o=e.paddingTop)&&void 0!==o?o:0,c=l.treemap().size([i,r]).tile(l.treemapBinary).padding(s);a>0&&c.paddingTop(a),c(t)}(u,i,f,d);break;case"circlepack":!function(t,e,i,r){var n;const o=null!==(n=e.padding)&&void 0!==n?n:4;l.pack().size([i,r]).padding(o)(t)}(u,i,f,d);break;case"partition":!function(t,e,i,r){var n;l.partition().size([i,r]).padding(null!==(n=e.padding)&&void 0!==n?n:1)(t)}(u,i,f,d)}const y=u.descendants();t.length=0,e.length=0;const g=new Map;for(let e=0;y.length>e;e++){const r=y[e],o={id:$t(r,i,e),x:0,y:0,x0:0,x1:0,y0:0,y1:0,width:0,height:0,value:null!==(n=r.value)&&void 0!==n?n:0,depth:r.depth,data:r.data,createdByFrame:!0};"tree"===s||"cluster"===s?Mt(o,r,i):"treemap"===s||"partition"===s?Lt(o,r):"circlepack"===s&&Dt(o,r),o.__hierarchyNode=r,t.push(o),g.set(r,o)}if("tree"===s||"cluster"===s)for(const t of y)if(t.parent){const i=g.get(t.parent),r=g.get(t);i&&r&&e.push({source:i,target:r,value:1,y0:0,y1:0,sankeyWidth:0,data:{depth:t.depth}})}},buildScene(t,e,i,r){const n=i.nodeStyle||(()=>({})),o=i.edgeStyle||(()=>({}));switch(i.chartType){case"tree":case"cluster":return function(t,e,i,r,n,o){var s,a,c,l,h;const u=[],f=[],d=[],y=i.treeOrientation||"vertical",g="radial"===y,p=r[0]/2,m=r[1]/2,v="number"==typeof(b=i.nodeSize)?b:5,x=["#e8d5b7","#b8d4e3","#d4e3b8","#e3c4d4","#d4d4e3","#e3d4b8","#b8e3d4","#e3b8b8"];var b;for(const e of t){let t=e.x,r=e.y;g&&(t+=p,r+=m);const o=n(e);let a=o.fill||"#4d430c";i.colorByDepth&&void 0!==e.depth&&(a=x[e.depth%x.length]);const c={fill:a,stroke:o.stroke||"#fff",strokeWidth:null!==(s=o.strokeWidth)&&void 0!==s?s:1,opacity:o.opacity};u.push({type:"circle",cx:t,cy:r,r:v,style:c,datum:e,id:e.id,label:e.id,depth:e.depth})}const k=null!==(a=i.edgeOpacity)&&void 0!==a?a:.5;for(const t of e){const e="object"==typeof t.source?t.source:null,i="object"==typeof t.target?t.target:null;if(!e||!i)continue;let r=e.x,n=e.y,s=i.x,a=i.y;g&&(r+=p,n+=m,s+=p,a+=m);const h=Ot(r,n,s,a,y),u=o(t),d={fill:"none",stroke:u.stroke||"#999",strokeWidth:null!==(c=u.strokeWidth)&&void 0!==c?c:1.5,opacity:null!==(l=u.opacity)&&void 0!==l?l:k};f.push({type:"curved",pathD:h,style:d,datum:t})}if(!1!==i.showLabels){const e=Nt(i.nodeLabel);for(const i of t){const t=e?e(i):i.id;if(!t)continue;let r,n,o,s=i.x,a=i.y;if(g&&(s+=p,a+=m),g){const t=s-p,e=a-m,i=Math.sqrt(t*t+e*e);i>0?(r=s+t/i*10,n=a+e/i*10,o=0>t?"end":"start"):(r=s,n=a-12,o="middle")}else"horizontal"===y?((null===(h=i.data)||void 0===h?void 0:h.children)&&0!==i.data.children.length?(r=s-v-6,o="end"):(r=s+v+6,o="start"),n=a):(r=s,n=a+v+14,o="middle");d.push({x:r,y:n,text:t+"",anchor:o,baseline:"middle",fontSize:11})}}return{sceneNodes:u,sceneEdges:f,labels:d}}(t,e,i,r,n,o);case"treemap":case"partition":return function(t,e,i,r){var n,o;const s=[],a=[],c=["#e8d5b7","#b8d4e3","#d4e3b8","#e3c4d4","#d4d4e3","#e3d4b8","#b8e3d4","#e3b8b8"];for(const i of t){const t=i.x1-i.x0,o=i.y1-i.y0;if(0>=t||0>=o)continue;const a=r(i);let l=a.fill||"#4d430c";e.colorByDepth&&void 0!==i.depth&&(l=c[i.depth%c.length]);const h={fill:l,stroke:a.stroke||"#fff",strokeWidth:null!==(n=a.strokeWidth)&&void 0!==n?n:1,opacity:a.opacity};s.push({type:"rect",x:i.x0,y:i.y0,w:t,h:o,style:h,datum:i,id:i.id,label:i.id,depth:i.depth})}if(!1!==e.showLabels){const i=Nt(e.nodeLabel),n=e.labelMode||"leaf",s="partition"===e.chartType;for(const l of t){const t=l.x1-l.x0,h=l.y1-l.y0;if(0>=t||0>=h)continue;const u=!((null===(o=l.data)||void 0===o?void 0:o.children)&&l.data.children.length>0);if(!s){if("leaf"===n&&!u)continue;if("parent"===n&&u)continue}const f=i?i(l):l.id;if(!f)continue;if((u?30:40)>t||(u?16:14)>h)continue;let d=r(l).fill||"#4d430c";e.colorByDepth&&void 0!==l.depth&&(d=c[l.depth%c.length]);const y=St(d);a.push(u?{x:l.x0+t/2,y:l.y0+h/2,text:f+"",anchor:"middle",baseline:"middle",fontSize:Math.min(11,Math.max(8,Math.min(t,h)/6)),fill:y}:{x:l.x0+4,y:l.y0+12,text:f+"",anchor:"start",baseline:"auto",fontSize:11,fontWeight:600,fill:y})}}return{sceneNodes:s,sceneEdges:[],labels:a}}(t,i,0,n);case"circlepack":return function(t,e,i,r){var n,o,s,a,c;const l=[],h=[],u=["#e8d5b7","#b8d4e3","#d4e3b8","#e3c4d4","#d4d4e3","#e3d4b8","#b8e3d4","#e3b8b8"];for(const i of t){const t=null!==(n=i.__radius)&&void 0!==n?n:5;if(0>=t)continue;const a=r(i);let c=a.fill||"#4d430c";e.colorByDepth&&void 0!==i.depth&&(c=u[i.depth%u.length]);const h={fill:c,stroke:a.stroke||"#fff",strokeWidth:null!==(o=a.strokeWidth)&&void 0!==o?o:1,opacity:null!==(s=a.opacity)&&void 0!==s?s:.7};l.push({type:"circle",cx:i.x,cy:i.y,r:t,style:h,datum:i,id:i.id,label:i.id,depth:i.depth})}if(!1!==e.showLabels){const i=Nt(e.nodeLabel);for(const n of t){const t=null!==(a=n.__radius)&&void 0!==a?a:5,o=i?i(n):n.id;if(!o)continue;if(15>t)continue;const s=!((null===(c=n.data)||void 0===c?void 0:c.children)&&n.data.children.length>0);let l=r(n).fill||"#4d430c";if(e.colorByDepth&&void 0!==n.depth&&(l=u[n.depth%u.length]),s){const e=St(l);h.push({x:n.x,y:n.y,text:o+"",anchor:"middle",baseline:"middle",fontSize:Math.min(11,Math.max(8,t/3)),fill:e})}else h.push({x:n.x,y:n.y-t+14,text:o+"",anchor:"middle",baseline:"hanging",fontSize:Math.min(11,Math.max(8,t/3)),fill:"#000",stroke:"#fff",strokeWidth:3,paintOrder:"stroke"})}}return{sceneNodes:l,sceneEdges:[],labels:h}}(t,i,0,n);default:return{sceneNodes:[],sceneEdges:[],labels:[]}}}};function Mt(t,e,i){const r=i.treeOrientation||"vertical";if("radial"===r){const i=e.x,r=e.y;t.x=r*Math.cos(i-Math.PI/2),t.y=r*Math.sin(i-Math.PI/2)}else"horizontal"===r?(t.x=e.y,t.y=e.x):(t.x=e.x,t.y=e.y);t.x0=t.x-5,t.x1=t.x+5,t.y0=t.y-5,t.y1=t.y+5,t.width=10,t.height=10}function Lt(t,e){t.x0=e.x0,t.x1=e.x1,t.y0=e.y0,t.y1=e.y1,t.x=(e.x0+e.x1)/2,t.y=(e.y0+e.y1)/2,t.width=e.x1-e.x0,t.height=e.y1-e.y0}function Dt(t,e){var i;const r=null!==(i=e.r)&&void 0!==i?i:0;t.x=e.x,t.y=e.y,t.x0=e.x-r,t.x1=e.x+r,t.y0=e.y-r,t.y1=e.y+r,t.width=2*r,t.height=2*r,t.__radius=r}function Ot(t,e,i,r,n){if("horizontal"===n){const n=(t+i)/2;return`M ${t},${e} C ${n},${e} ${n},${r} ${i},${r}`}if("radial"===n){const n=(t+i)/2;return`M ${t},${e} Q ${n},${e} ${n},${(e+r)/2} T ${i},${r}`}{const n=(e+r)/2;return`M ${t},${e} C ${t},${n} ${i},${n} ${i},${r}`}}function $t(t,e,i){const r=e.nodeIDAccessor;return"function"==typeof r?r(t.data)+"":"string"==typeof r&&void 0!==t.data[r]?t.data[r]+"":void 0!==t.data.name?t.data.name+"":void 0!==t.data.id?t.data.id+"":"node-"+i}function Nt(t){return t?"function"==typeof t?t:e=>{var i;return(null===(i=e.data)||void 0===i?void 0:i[t])||e[t]||e.id}:null}function Tt(t){const e=t;return e.__orbitState||(e.__orbitState={metaMap:new Map,startTime:"undefined"!=typeof performance?performance.now():Date.now()}),e.__orbitState}const Wt={sankey:vt,force:xt,chord:_t,tree:Et,cluster:Et,treemap:Et,circlepack:Et,partition:Et,orbit:{supportsStreaming:!1,hierarchical:!0,supportsAnimation:!0,computeLayout(t,e,i,r){const n=i.__hierarchyRoot;n&&function(t,e,i,r,n){var o,s;const a=function(t){if("function"==typeof t)return t;const e=t||"children";return t=>t[e]||null}(i.childrenAccessor),l=function(t){if("function"==typeof t)return t;const e=t||"name";return t=>{var i;return(null!==(i=t[e])&&void 0!==i?i:"")+""}}(i.nodeIDAccessor),h=function(t){if(Array.isArray(t))return t;switch(t){case"solar":return[1];case"atomic":return[2,8];default:return[9999]}}(i.orbitMode),u=null!==(o=i.orbitSize)&&void 0!==o?o:2.95,f=null!==(s=i.orbitEccentricity)&&void 0!==s?s:1,d="number"==typeof u?()=>u:u,y="number"==typeof f?()=>f:f,g=Tt(i);g.metaMap.clear(),r.length=0,n.length=0;const p=new Map;function m(t){var e;const i=null!==(e=p.get(t))&&void 0!==e?e:0;return p.set(t,i+1),0===i?t:`${t}__${i}`}const v=e[0]/2,x=e[1]/2,b=Math.min(e[0],e[1])/2*.85,k=m(l(t));r.push({id:k,x:v,y:x,x0:v,x1:v,y0:x,y1:x,width:0,height:0,value:0,depth:0,data:t}),g.metaMap.set(k,{ring:b,angle:0,depth:0,parentId:null,eccentricity:1}),function t(e,i,o,s,u,f,p){const v=a(e);if(!(null==v?void 0:v.length))return;const x=v.length;let b=0,k=0,w=0;for(;x>k;)k+=h[Math.min(w,h.length-1)],w++,b++;let P=0;for(let x=0;b>x;x++){const k=h[Math.min(x,h.length-1)],w=v.slice(P,P+k);if(!w.length)break;const _=(x+1)/b,A={id:i,depth:f,data:e,parentId:i},S=p?u/d(A)*_:u*_,E=c.pie().value(t=>{var e;return(null===(e=a(t))||void 0===e?void 0:e.length)?4:1}).sort(null),M=E(w),L=y(A);for(let e=0;w.length>e;e++){const a=(M[e].startAngle+M[e].endAngle)/2,c=w[e],h=m(l(c)),u=o+S*Math.sin(a),d=s+S*Math.cos(a)*L;r.push({id:h,x:u,y:d,x0:u,x1:u,y0:d,y1:d,width:0,height:0,value:0,depth:f,data:c}),g.metaMap.set(h,{ring:S,angle:a,depth:f,parentId:i,eccentricity:L}),n.push({source:i,target:h,value:1,y0:0,y1:0,sankeyWidth:0,data:{source:i,target:h}}),t(c,h,u,d,S,f+1,!0)}P+=k}}(t,k,v,x,b,1,!1)}(n,r,i,t,e)},buildScene(t,e,i,r){var n,o,s,a,c;const l=i.nodeStyle,h=i.nodeSize,u="number"==typeof h?()=>h:"function"==typeof h?h:()=>6,f=[],d=[],y=[];if(!1!==i.orbitShowRings){const e=Tt(i),r=new Map;for(const e of t)r.set(e.id,e);const n=new Map;for(const[,t]of e.metaMap){if(!t.parentId)continue;const e=r.get(t.parentId);if(!e)continue;const i=`${t.parentId}:${t.ring}`;n.has(i)||n.set(i,{parentX:e.x,parentY:e.y,ring:t.ring,ecc:t.eccentricity})}const o=48,s={stroke:"rgba(128,128,128,0.35)",strokeWidth:.5,opacity:1};for(const[,{parentX:t,parentY:e,ring:i,ecc:r}]of n)for(let n=0;o>n;n++){const a=n/o*Math.PI*2,c=(n+1)/o*Math.PI*2;d.push({type:"line",x1:t+i*Math.sin(a),y1:e+i*Math.cos(a)*r,x2:t+i*Math.sin(c),y2:e+i*Math.cos(c)*r,style:s,datum:null})}}for(const e of t){if(null==e.x||null==e.y)continue;const t=u(e),i=l?l(e):{},r={fill:i.fill||"#6366f1",stroke:i.stroke||"#fff",strokeWidth:null!==(n=i.strokeWidth)&&void 0!==n?n:1,opacity:null!==(o=i.opacity)&&void 0!==o?o:0===(null!==(s=e.depth)&&void 0!==s?s:0)?1:.85};f.push({type:"circle",cx:e.x,cy:e.y,r:t,style:r,datum:e,id:e.id,label:e.id,depth:e.depth})}const g=new Map;for(const e of t)g.set(e.id,e);for(const t of e){const e="object"==typeof t.source?t.source:g.get(t.source),i="object"==typeof t.target?t.target:g.get(t.target);e&&i&&(null!=e.x&&null!=i.x&&d.push({type:"line",x1:e.x,y1:e.y,x2:i.x,y2:i.y,style:{stroke:"rgba(128,128,128,0.35)",strokeWidth:.5,opacity:1},datum:t}))}if(i.showLabels){const e=i.nodeLabel;for(const i of t){const t=u(i);if(4>=t)continue;const r="function"==typeof e?e(i):e&&null!==(c=null===(a=i.data)||void 0===a?void 0:a[e])&&void 0!==c?c:i.id;y.push({x:i.x,y:i.y+t+12,text:r+"",anchor:"middle",fontSize:10,fill:"currentColor"})}}return{sceneNodes:f,sceneEdges:d,labels:y}},tick:(t,e,i,r,n)=>!1!==i.orbitAnimated&&(function(t,e){var i,r;const n=Tt(e),o=null!==(i=e.orbitSpeed)&&void 0!==i?i:.25,s=null!==(r=e.orbitRevolution)&&void 0!==r?r:function(t){switch(t){case"decay":return t=>{var e;return Math.pow(.6,null!==(e=t.depth)&&void 0!==e?e:0)};case"alternate":return t=>{var e;const i=null!==(e=t.depth)&&void 0!==e?e:0;return(i%2==0?1:-1)/(i+1)};default:return t=>{var e;return 1/((null!==(e=t.depth)&&void 0!==e?e:0)+1)}}}(e.orbitRevolutionStyle),a=(("undefined"!=typeof performance?performance.now():Date.now())-n.startTime)/1e3,c=o*(Math.PI/6),l=new Map;for(const e of t)l.set(e.id,e);for(const e of t){const t=n.metaMap.get(e.id);if(!t||!t.parentId)continue;const i=l.get(t.parentId);if(!i)continue;const r=t.angle+a*c*s({id:e.id,depth:t.depth,data:e.data,parentId:t.parentId});e.x=i.x+t.ring*Math.sin(r),e.y=i.y+t.ring*Math.cos(r)*t.eccentricity,e.x0=e.x,e.x1=e.x,e.y0=e.y,e.y1=e.y}}(t,i),!0)}};function jt(t,e){const{columns:i,config:r,resolvePieceStyle:n}=t,o=[],s=Math.min(e.width,e.height)/2-4,a="donut"===r.chartType?r.innerRadius||60:0,c=-Math.PI/2+(r.startAngle||0)*Math.PI/180,l=2*Math.PI;for(const t of Object.values(i)){const e=c+t.pctStart*l,i=c+(t.pctStart+t.pct)*l,r=n(t.pieceData[0],t.name);o.push({type:"wedge",cx:0,cy:0,innerRadius:a,outerRadius:s,startAngle:e,endAngle:i,style:r,datum:t.pieceData,category:t.name})}return o}function Rt(t){var e,i,r;const o=t.length,s=t[0],a=t[o-1];return{n:o,min:s,q1:null!==(e=n.quantile(t,.25))&&void 0!==e?e:s,median:null!==(i=n.quantile(t,.5))&&void 0!==i?i:(s+a)/2,q3:null!==(r=n.quantile(t,.75))&&void 0!==r?r:a,max:a,mean:t.reduce((t,e)=>t+e,0)/o}}const zt={bar:function(t,e){const{scales:i,columns:r,config:n,getR:o,getStack:s,resolvePieceStyle:a}=t,{r:c,projection:l}=i,h=[],u="vertical"===l,f="horizontal"===l,d=n.normalize;for(const t of Object.values(r)){const e=new Map;for(const i of t.pieceData){const t=s?s(i):"_default";e.has(t)||e.set(t,{total:0,pieces:[]});const r=e.get(t);r.total+=o(i),r.pieces.push(i)}let i=0;if(d)for(const t of e.values())i+=Math.abs(t.total);let r=0,n=0;for(const[o,l]of e){let e=l.total;d&&i>0&&(e/=i);const y=a(l.pieces[0],s?o:t.name),g=Object.assign(Object.assign({},l.pieces[0]),{__aggregateValue:l.total,__pieceCount:l.pieces.length,category:t.name});if(u){const i=c(0>e?n:r+e),s=0>e?c(n+e)-c(n):c(r)-c(r+e);h.push(x(t.x,i,t.width,Math.abs(s),y,g,o)),0>e?n+=e:r+=e}else if(f){const i=c(0>e?n+e:r),s=0>e?c(n)-c(n+e):c(r+e)-c(r);h.push(x(i,t.x,Math.abs(s),t.width,y,g,o)),0>e?n+=e:r+=e}}}return h},clusterbar:function(t,e){const{scales:i,columns:r,getR:n,getGroup:o,resolvePieceStyle:s}=t,{r:a,projection:c}=i,l=[],h="vertical"===c,u=[],f=new Set;for(const t of Object.values(r))for(const e of t.pieceData){const t=o?o(e):"_default";f.has(t)||(f.add(t),u.push(t))}const d=u.length||1;for(const t of Object.values(r)){const e=t.width/d,i=.2*e,r=e-i,c=new Map;for(const e of t.pieceData){const t=o?o(e):"_default";c.has(t)||c.set(t,[]),c.get(t).push(e)}for(let o=0;u.length>o;o++){const f=c.get(u[o])||[];for(const c of f){const f=n(c),d=s(c,u[o]);if(h){const n=t.x+o*e+i/2,s=a(0),h=a(f);l.push(x(n,Math.min(s,h),r,Math.abs(s-h),d,c,u[o]))}else{const n=t.x+o*e+i/2,s=a(0),h=a(f);l.push(x(Math.min(s,h),n,Math.abs(h-s),r,d,c,u[o]))}}}}return l},point:function(t,e){var i,r;const{scales:n,columns:o,getR:s,multiScales:a,resolvePieceStyle:c}=t,{r:l,projection:h}=n,u=[],f="vertical"===h,d="radial"===h,y=a.length>0,g=2*Math.PI,p=-Math.PI/2;for(const t of Object.values(o))for(const e of t.pieceData){const n=null!==(i=e.__rIndex)&&void 0!==i?i:0,o=null!==(r=e.__rValue)&&void 0!==r?r:s(e),h=y&&a[n]||l,m=c(e,t.name),v=m.r||5;let x,b;if(d){const e=p+(t.pctStart+t.pct/2)*g,i=h(o);x=Math.cos(e)*i,b=Math.sin(e)*i}else f?(x=t.middle,b=h(o)):(x=h(o),b=t.middle);u.push({type:"point",x:x,y:b,r:v,style:m,datum:e})}return u},swarm:function(t,e){const{scales:i,columns:r,getR:n,resolvePieceStyle:o}=t,{r:s,projection:a}=i,c=[],l="vertical"===a;for(const t of Object.values(r)){const e=t.width/2;for(let i=0;t.pieceData.length>i;i++){const r=t.pieceData[i],a=n(r),h=o(r,t.name),u=h.r||4,f=(7919*i%100/100-.5)*e*.8,d=l?t.middle+f:s(a),y=l?s(a):t.middle+f;c.push({type:"point",x:d,y:y,r:u,style:h,datum:r})}}return c},pie:jt,donut:jt,boxplot:function(t,e){var i,r,o,s,a;const{scales:c,columns:l,config:h,getR:u,resolveSummaryStyle:f}=t,{r:d,projection:y}=c,g=[],p="vertical"===y,m=!1!==h.showOutliers;for(const t of Object.values(l)){const e=t.pieceData.map(t=>u(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(0===e.length)continue;const c=e[0],l=e[e.length-1],h=null!==(i=n.quantile(e,.25))&&void 0!==i?i:c,y=null!==(r=n.quantile(e,.5))&&void 0!==r?r:(c+l)/2,v=null!==(o=n.quantile(e,.75))&&void 0!==o?o:l,x=v-h,b=h-1.5*x,k=v+1.5*x,w=null!==(s=e.find(t=>t>=b))&&void 0!==s?s:c,P=null!==(a=[...e].reverse().find(t=>k>=t))&&void 0!==a?a:l,_=f(t.pieceData[0],t.name),A=[];if(m)for(const e of t.pieceData){const i=u(e);if(b>i||i>k){const r=p?t.middle:d(i),n=p?d(i):t.middle;A.push({px:r,py:n,value:i,datum:e})}}if(g.push({type:"boxplot",x:p?t.middle:0,y:p?0:t.middle,projection:p?"vertical":"horizontal",columnWidth:.6*t.width,minPos:d(w),q1Pos:d(h),medianPos:d(y),q3Pos:d(v),maxPos:d(P),stats:{n:e.length,min:w,q1:h,median:y,q3:v,max:P,mean:e.reduce((t,e)=>t+e,0)/e.length},style:_,datum:t.pieceData,category:t.name,outliers:A}),m)for(const t of A)g.push({type:"point",x:t.px,y:t.py,r:3,style:{fill:_.fill||"#999",opacity:.6},datum:t.datum})}return g},violin:function(t,e){var i,r,o;const{scales:s,columns:a,config:c,getR:l,resolveSummaryStyle:h}=t,{r:u,projection:f}=s,d=[],y="vertical"===f,g=c.bins||20,p=!1!==c.showIQR;for(const t of Object.values(a)){const e=t.pieceData.map(t=>l(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const s=e[0],a=e[e.length-1],c=(a-s)/g||1,f=Array(g).fill(0);for(const t of e)f[Math.min(Math.floor((t-s)/c),g-1)]++;const m=Math.max(...f,1),v=t.width/2*.9;let x="";if(y){for(let e=0;g>e;e++){const i=u(s+(e+.5)*c),r=f[e]/m*v;x+=0===e?`M ${t.middle+r} ${i}`:` L ${t.middle+r} ${i}`}for(let e=g-1;e>=0;e--){const i=u(s+(e+.5)*c);x+=` L ${t.middle-f[e]/m*v} ${i}`}x+=" Z"}else{for(let e=0;g>e;e++){const i=u(s+(e+.5)*c),r=f[e]/m*v;x+=0===e?`M ${i} ${t.middle-r}`:` L ${i} ${t.middle-r}`}for(let e=g-1;e>=0;e--)x+=` L ${u(s+(e+.5)*c)} ${t.middle+f[e]/m*v}`;x+=" Z"}const b=h(t.pieceData[0],t.name);let k;if(p&&e.length>=4){const c=null!==(i=n.quantile(e,.25))&&void 0!==i?i:s,l=null!==(r=n.quantile(e,.5))&&void 0!==r?r:(s+a)/2,h=null!==(o=n.quantile(e,.75))&&void 0!==o?o:a;k={q1Pos:u(c),medianPos:u(l),q3Pos:u(h),centerPos:t.middle,isVertical:y}}const w=y?{x:t.x,y:Math.min(u(a),u(s)),width:t.width,height:Math.abs(u(a)-u(s))}:{x:Math.min(u(s),u(a)),y:t.x,width:Math.abs(u(a)-u(s)),height:t.width};d.push({type:"violin",pathString:x,translateX:0,translateY:0,bounds:w,iqrLine:k,stats:Rt(e),style:b,datum:t.pieceData,category:t.name})}return d},histogram:function(t,e){const{scales:i,columns:r,config:n,getR:o,resolveSummaryStyle:s}=t,{r:a}=i,c=[],l=n.bins||25,h=n.normalize;for(const t of Object.values(r)){const e=t.pieceData.map(t=>o(t)).filter(t=>null!=t&&!isNaN(t));if(0===e.length)continue;const i=Math.min(...e),r=(Math.max(...e)-i)/l||1,n=Array(l).fill(0);for(const t of e)n[Math.min(Math.floor((t-i)/r),l-1)]++;const u=e.length,f=Math.max(...n,1),d=s(t.pieceData[0],t.name);for(let e=0;l>e;e++){if(0===n[e])continue;const o=(h?n[e]/u:n[e]/f)*t.width*.9,s=a(i+e*r),l=a(i+(e+1)*r);c.push(x(Math.min(s,l),t.x+t.width-o,Math.abs(l-s),o,d,{bin:e,count:n[e],range:[i+e*r,i+(e+1)*r],category:t.name},t.name))}}return c},ridgeline:function(t,e){var i;const{scales:r,columns:n,config:o,getR:s,resolveSummaryStyle:a}=t,{r:c,projection:l}=r,h=[],u=o.bins||20,f="horizontal"===l,d=o.amplitude||1.5;for(const t of Object.values(n)){const e=t.pieceData.map(t=>s(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const r=e[0],n=e[e.length-1],o=(n-r)/u||1,l=Array(u).fill(0);for(const t of e)l[Math.min(Math.floor((t-r)/o),u-1)]++;const y=Math.max(...l,1),g=a(t.pieceData[0],t.name),p=t.width*d;let m="";if(f){const e=t.x+t.width;m=`M ${c(r)} ${e}`;for(let t=0;u>t;t++)m+=` L ${c(r+(t+.5)*o)} ${e-l[t]/y*p}`;m+=` L ${c(n)} ${e} Z`}else{const e=t.x;m=`M ${e} ${c(r)}`;for(let t=0;u>t;t++){const i=c(r+(t+.5)*o);m+=` L ${e+l[t]/y*p} ${i}`}m+=` L ${e} ${c(n)} Z`}const v=f?{x:Math.min(c(r),c(n)),y:t.x,width:Math.abs(c(n)-c(r)),height:t.width}:{x:t.x,y:Math.min(c(n),c(r)),width:t.width,height:Math.abs(c(n)-c(r))};h.push({type:"violin",pathString:m,translateX:0,translateY:0,bounds:v,stats:Rt(e),style:Object.assign(Object.assign({},g),{fillOpacity:null!==(i=g.fillOpacity)&&void 0!==i?i:.5}),datum:t.pieceData,category:t.name})}return h},timeline:function(t,e){const{scales:i,columns:r,getRawRange:n,resolvePieceStyle:o}=t,{r:s,projection:a}=i,c=[],l="horizontal"===a;for(const t of Object.values(r))for(const e of t.pieceData){const i=n(e);if(!i)continue;const[r,a]=i,h=o(e,t.name);if(l){const i=s(Math.min(r,a)),n=s(Math.max(r,a));c.push(x(i,t.x,n-i,t.width,h,e,t.name))}else{const i=s(Math.max(r,a)),n=s(Math.min(r,a));c.push(x(t.x,i,t.width,n-i,h,e,t.name))}}return c}};class Ct{constructor(t){this.rExtent=new y,this.rExtents=[],this.rAccessors=[],this.categories=new Set,this._hasStreamingData=!1,this._colorSchemeMap=null,this._colorSchemeIndex=0,this.timestampBuffer=null,this.activeTransition=null,this.prevPositionMap=new Map,this.exitNodes=[],this.lastIngestTime=0,this.scales=null,this.multiScales=[],this.scene=[],this.columns={},this.version=0,this.config=t,this.buffer=new d(t.windowSize),this.getO=P(t.oAccessor||t.categoryAccessor,"category");const e="streaming"===t.runtimeMode,i=t.rAccessor;Array.isArray(i)?(this.rAccessors=i.map(t=>k(t,"value")),this.getR=this.rAccessors[0],this.rExtents=i.map(()=>new y)):(this.getR=k(e&&(t.timeAccessor||t.valueAccessor)&&t.valueAccessor||i,"value"),this.rAccessors=[this.getR],this.rExtents=[this.rExtent]),this.getStack=P(t.stackBy),this.getGroup=P(t.groupBy),this.getColor=P(t.colorAccessor),this.getConnector=P(t.connectorAccessor),t.pulse&&(this.timestampBuffer=new d(t.windowSize))}ingest(t){const e="undefined"!=typeof performance?performance.now():Date.now();if(this.lastIngestTime=e,t.bounded){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear();const i=t.totalSize||t.inserts.length;i>this.buffer.capacity&&(this.buffer.resize(i),this.timestampBuffer&&i>this.timestampBuffer.capacity&&this.timestampBuffer.resize(i));for(const i of t.inserts)this.buffer.push(i),this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(i)),this.pushValueExtent(i)}else{this._hasStreamingData=!0;for(const i of t.inserts){const t=this.buffer.push(i);this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(i)),this.pushValueExtent(i),null!=t&&this.evictValueExtent(t)}}return!0}pushValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.push(e[0]),this.rExtent.push(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].push(this.rAccessors[e](t));this.rExtent.push(this.getR(t))}else this.rExtent.push(this.getR(t))}evictValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.evict(e[0]),this.rExtent.evict(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].evict(this.rAccessors[e](t));this.rExtent.evict(this.getR(t))}else this.rExtent.evict(this.getR(t))}getRawRange(t){const e=this.config.rAccessor;if(!e)return null;const i="function"==typeof e?e(t):t[e];return Array.isArray(i)&&i.length>=2?[+i[0],+i[1]]:null}computeScene(t){const{config:i,buffer:r}=this;if(0===r.size)return this.scales=null,this.scene=[],this.columns={},void this.version++;this.rExtent.dirty&&this.rExtent.recalculate(r,this.getR);const n=r.toArray(),o=i.projection||"vertical",s=i.oExtent||this.resolveCategories(n),a=this.computeValueDomain(n,s),c="horizontal"===o,l=null!=i.barPadding?i.barPadding/("vertical"===o?t.width:t.height):.1;let h,u;if("radial"===o){h=e.scaleBand().domain(s).range([0,1]).padding(0);const r=Math.min(t.width,t.height)/2,n=i.innerRadius||0;u=e.scaleLinear().domain(a).range([n,r])}else c?(h=e.scaleBand().domain(s).range([0,t.height]).padding(l),u=e.scaleLinear().domain(a).range([0,t.width])):(h=e.scaleBand().domain(s).range([0,t.width]).padding(l),u=e.scaleLinear().domain(a).range([t.height,0]));this.scales={o:h,r:u,projection:o},this.multiScales=this.rAccessors.length>1&&i.multiAxis?this.rAccessors.map((n,o)=>{const s=this.rExtents[o];s.dirty&&s.recalculate(r,n);let[a,l]=s.extent;a===1/0&&(a=0,l=1);const h=l-a,u=h>0?h*(i.extentPadding||.05):1;return a-=u,l+=u,a>0&&(a=0),c?e.scaleLinear().domain([a,l]).range([0,t.width]):e.scaleLinear().domain([a,l]).range([t.height,0])}):[];let f=n;this.rAccessors.length>1&&(f=n.flatMap(t=>this.rAccessors.map((e,i)=>Object.assign(Object.assign({},t),{__rIndex:i,__rValue:e(t),__rName:this.resolveRAccessorName(i)})))),this.columns=this.buildColumns(f,s,h,o,t),this.config.transition&&this.scene.length>0&&this.snapshotPositions(),this.scene=this.buildSceneNodes(f,t),this.config.decay&&this.applyDecay(this.scene,n),this.config.pulse&&this.applyPulse(this.scene,n),this.config.transition&&this.prevPositionMap.size>0&&this.startTransition(),this.version++}resolveRAccessorName(t){const e=Array.isArray(this.config.rAccessor)?this.config.rAccessor[t]:this.config.rAccessor;return"string"==typeof e?e:"value"+t}resolveCategories(t){const e=Array.from(this.categories),i=this.config.oSort;if(("streaming"===this.config.runtimeMode||this._hasStreamingData)&&void 0===i){const i=new Set;for(const e of t)i.add(this.getO(e));const r=[];for(const t of e)i.has(t)?r.push(t):this.categories.delete(t);return r}if(!1===i)return e;if("function"==typeof i)return e.sort(i);const r=new Map;for(const e of t){const t=this.getO(e);r.set(t,(r.get(t)||0)+Math.abs(this.getR(e)))}return e.sort("asc"===i?(t,e)=>(r.get(t)||0)-(r.get(e)||0):(t,e)=>(r.get(e)||0)-(r.get(t)||0))}computeValueDomain(t,e){var i,r;const n=this.config.chartType,o=this.config.extentPadding||.05;if("radial"===this.config.projection&&("pie"===n||"donut"===n))return[0,1];let s=0,a=0;if("bar"===n&&this.getStack&&this.config.normalize)s=0,a=1;else if("bar"===n&&this.getStack){const e=new Map,i=new Map;for(const r of t){const t=this.getO(r),n=this.getR(r);0>n?i.set(t,(i.get(t)||0)+n):e.set(t,(e.get(t)||0)+n)}for(const t of e.values())t>a&&(a=t);for(const t of i.values())s>t&&(s=t)}else if("bar"===n){const e=new Map;for(const i of t){const t=this.getO(i),r=this.getR(i);e.set(t,(e.get(t)||0)+r)}for(const t of e.values())t>a&&(a=t),s>t&&(s=t)}else if("clusterbar"===n)for(const e of t){const t=this.getR(e);t>a&&(a=t),s>t&&(s=t)}else{const t=this.rExtent.extent[0],e=this.rExtent.extent[1];t!==1/0&&(s=t),e!==-1/0&&(a=e)}this.config.rExtent&&(null!=this.config.rExtent[0]&&(s=this.config.rExtent[0]),null!=this.config.rExtent[1]&&(a=this.config.rExtent[1]));const c=a-s,l=c>0?c*o:1;return(null===(i=this.config.rExtent)||void 0===i?void 0:i[0])||(s-=l),(null===(r=this.config.rExtent)||void 0===r?void 0:r[1])||(a+=l),"bar"!==n&&"clusterbar"!==n||(s>0&&(s=0),0>a&&(a=0)),[s,a]}buildColumns(t,e,i,r,n){var o;const s={},a=new Map;for(const e of t){const t=this.getO(e);a.has(t)||a.set(t,[]),a.get(t).push(e)}let c=0;if("radial"===r)for(const e of t)c+=Math.abs(this.getR(e));const l=this.config.dynamicColumnWidth;let h=null;if(l&&"radial"!==r){h=new Map;let t=0;for(const i of e){const e=a.get(i)||[];let r;r="string"==typeof l?e.reduce((t,e)=>t+(Number(e[l])||0),0):l(e),h.set(i,r),t+=r}const o=("horizontal"===r?n.height:n.width)-i.padding()*i.step()*e.length;if(t>0)for(const[e,i]of h)h.set(e,i/t*o)}let u=0,f=0;for(const t of e){const e=a.get(t)||[],r=e.reduce((t,e)=>t+Math.abs(this.getR(e)),0),n=c>0?r/c:0;let l,d;h?(l=f,d=h.get(t)||i.bandwidth(),f+=d+i.padding()*i.step()):(l=null!==(o=i(t))&&void 0!==o?o:0,d=i.bandwidth()),s[t]={name:t,x:l,y:0,width:d,middle:l+d/2,padding:i.padding()*i.step(),pieceData:e,pct:n,pctStart:u},u+=n}return s}getSceneContext(){return{scales:this.scales,columns:this.columns,config:this.config,getR:this.getR,getStack:this.getStack,getGroup:this.getGroup,getColor:this.getColor,getConnector:this.getConnector,getO:this.getO,multiScales:this.multiScales,rAccessors:this.rAccessors,resolvePieceStyle:(t,e)=>this.resolvePieceStyle(t,e),resolveSummaryStyle:(t,e)=>this.resolveSummaryStyle(t,e),getRawRange:t=>this.getRawRange(t)}}buildSceneNodes(t,e){if(!this.scales)return[];const i=this.getSceneContext(),r=zt[this.config.chartType];let n=r?r(i,e):[];if(this.getConnector&&this.scales){const t=function(t,e){const{scales:i,config:r,getConnector:n,getO:o}=t;if(!n||!i)return[];const s=[],{projection:a}=i,c=new Map;for(const t of e){if("point"!==t.type&&"rect"!==t.type)continue;const e=t.datum;if(!e)continue;const i=n(e);if(!i)continue;let r,s;"point"===t.type?(r=t.x,s=t.y):(r=t.x+t.w/2,s=t.y+("vertical"===a?0:t.h/2)),c.has(i)||c.set(i,[]),c.get(i).push({x:r,y:s,datum:e,category:o(e)})}const l=i.o.domain(),h=r.connectorStyle;for(const[t,e]of c)if(e.length>=2){e.sort((t,e)=>l.indexOf(t.category)-l.indexOf(e.category));for(let i=0;e.length-1>i;i++){const r=e[i],n=e[i+1],o="function"==typeof h?h(r.datum):h||{stroke:"#999",strokeWidth:1,opacity:.5};s.push({type:"connector",x1:r.x,y1:r.y,x2:n.x,y2:n.y,style:o,datum:r.datum,group:t})}}return s}(i,n);n=[...t,...n]}return n}resolvePieceStyle(t,e){if("function"==typeof this.config.pieceStyle){const i=this.config.pieceStyle(t,e);return i&&!i.fill&&e?Object.assign(Object.assign({},i),{fill:this.getColorFromScheme(e)}):i}return this.config.pieceStyle&&"object"==typeof this.config.pieceStyle?this.config.pieceStyle:this.config.barColors&&e?{fill:this.config.barColors[e]||"#007bff"}:e?{fill:this.getColorFromScheme(e)}:{fill:"#007bff"}}getColorFromScheme(t){this._colorSchemeMap||(this._colorSchemeMap=new Map);const e=this._colorSchemeMap.get(t);if(e)return e;const i=Array.isArray(this.config.colorScheme)?this.config.colorScheme:_,r=i[this._colorSchemeIndex%i.length];return this._colorSchemeIndex++,this._colorSchemeMap.set(t,r),r}resolveSummaryStyle(t,e){return"function"==typeof this.config.summaryStyle?this.config.summaryStyle(t,e):this.config.summaryStyle&&"object"==typeof this.config.summaryStyle?this.config.summaryStyle:{fill:"#007bff",fillOpacity:.6,stroke:"#007bff",strokeWidth:1}}computeDecayOpacity(t,e){var i,r,n;const o=this.config.decay;if(!o||1>=e)return 1;const s=null!==(i=o.minOpacity)&&void 0!==i?i:.1,a=e-1-t;switch(o.type){case"linear":return s+(1-a/(e-1))*(1-s);case"exponential":{const t=null!==(r=o.halfLife)&&void 0!==r?r:e/2;return s+Math.pow(.5,a/t)*(1-s)}case"step":return(null!==(n=o.stepThreshold)&&void 0!==n?n:.5*e)>a?1:s;default:return 1}}applyDecay(t,e){var i,r;if(!this.config.decay)return;const n=e.length;if(1>=n)return;const o=new Map;for(let t=0;e.length>t;t++)o.set(e[t],t);for(const e of t){if("connector"===e.type||"violin"===e.type||"boxplot"===e.type||"wedge"===e.type)continue;const t=o.get(e.datum);if(null==t)continue;const s=this.computeDecayOpacity(t,n),a=null!==(r=null===(i=e.style)||void 0===i?void 0:i.opacity)&&void 0!==r?r:1;e.style=Object.assign(Object.assign({},e.style),{opacity:a*s})}}applyPulse(t,e){var i,r,n;if(!this.config.pulse||!this.timestampBuffer)return;const o="undefined"!=typeof performance?performance.now():Date.now(),s=null!==(i=this.config.pulse.duration)&&void 0!==i?i:500,a=null!==(r=this.config.pulse.color)&&void 0!==r?r:"rgba(255,255,255,0.6)",c=null!==(n=this.config.pulse.glowRadius)&&void 0!==n?n:4,l=new Map;for(let t=0;e.length>t;t++)l.set(e[t],t);for(const i of t){if("connector"===i.type||"violin"===i.type||"boxplot"===i.type)continue;if("wedge"===i.type){const t=i.category;if(!t)continue;let r=0;for(let i=0;e.length>i;i++){const n=e[i],a=this.config.oAccessor;if(("function"==typeof a?a(n):n[a||"category"])!==t)continue;const c=this.timestampBuffer.get(i);if(null==c)continue;const l=o-c;if(s>l){const t=1-l/s;t>r&&(r=t)}}r>0&&(i._pulseIntensity=r,i._pulseColor=a);continue}const t=l.get(i.datum);if(null==t)continue;const r=this.timestampBuffer.get(t);if(null==r)continue;const n=o-r;s>n&&(i._pulseIntensity=1-n/s,i._pulseColor=a,i._pulseGlowRadius=c)}}get hasActivePulses(){var t;if(!this.config.pulse||!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const e="undefined"!=typeof performance?performance.now():Date.now(),i=null!==(t=this.config.pulse.duration)&&void 0!==t?t:500,r=this.timestampBuffer.peek();return null!=r&&i>e-r}getNodeKey(t,e){var i,r;if("point"===t.type){const i=`p:${t.datum?this.getO(t.datum):""}:${t.datum?this.getR(t.datum):0}`,r=e.get(i)||0;return e.set(i,r+1),`${i}:${r}`}return"rect"===t.type?`r:${t.group||""}:${null!==(r=null===(i=t.datum)||void 0===i?void 0:i.category)&&void 0!==r?r:""}`:null}snapshotPositions(){this.prevPositionMap.clear();const t=new Map;for(let e=0;this.scene.length>e;e++){const i=this.scene[e],r=this.getNodeKey(i,t);r&&("point"===i.type?this.prevPositionMap.set(r,{x:i.x,y:i.y,r:i.r,opacity:i.style.opacity}):"rect"===i.type&&this.prevPositionMap.set(r,{x:i.x,y:i.y,w:i.w,h:i.h,opacity:i.style.opacity}))}}startTransition(){var t,e,i,r,n,o,s,a,c,l,h,u;if(!this.config.transition||0===this.prevPositionMap.size)return;const f=null!==(t=this.config.transition.duration)&&void 0!==t?t:300;if(this.exitNodes.length>0){const t=new Set(this.exitNodes);this.scene=this.scene.filter(e=>!t.has(e)),this.exitNodes=[]}let d=!1;const y=new Set,g=new Map;for(let t=0;this.scene.length>t;t++){const a=this.scene[t],c=this.getNodeKey(a,g);if(!c)continue;a._transitionKey=c;const l=this.prevPositionMap.get(c);"point"===a.type?l?(y.add(c),a._targetOpacity=null!==(e=a.style.opacity)&&void 0!==e?e:1,l.x===a.x&&l.y===a.y||(a._targetX=a.x,a._targetY=a.y,a.x=l.x,a.y=l.y,d=!0)):(a._targetOpacity=null!==(i=a.style.opacity)&&void 0!==i?i:1,a.style=Object.assign(Object.assign({},a.style),{opacity:0}),d=!0):"rect"===a.type&&(l?(y.add(c),a._targetOpacity=null!==(r=a.style.opacity)&&void 0!==r?r:1,l.x===a.x&&l.y===a.y&&l.w===a.w&&l.h===a.h||(a._targetX=a.x,a._targetY=a.y,a._targetW=a.w,a._targetH=a.h,a.x=l.x,a.y=l.y,a.w=null!==(n=l.w)&&void 0!==n?n:a.w,a.h=null!==(o=l.h)&&void 0!==o?o:a.h,d=!0)):(a._targetOpacity=null!==(s=a.style.opacity)&&void 0!==s?s:1,a.style=Object.assign(Object.assign({},a.style),{opacity:0}),d=!0))}this.exitNodes=[];for(const[t,e]of this.prevPositionMap)y.has(t)||(t.startsWith("p:")?this.exitNodes.push({type:"point",x:e.x,y:e.y,r:null!==(a=e.r)&&void 0!==a?a:3,style:{opacity:null!==(c=e.opacity)&&void 0!==c?c:1},datum:null,_targetOpacity:0,_transitionKey:t}):t.startsWith("r:")&&this.exitNodes.push({type:"rect",x:e.x,y:e.y,w:null!==(l=e.w)&&void 0!==l?l:0,h:null!==(h=e.h)&&void 0!==h?h:0,style:{opacity:null!==(u=e.opacity)&&void 0!==u?u:1,fill:"#999"},datum:null,_targetOpacity:0,_transitionKey:t}),d=!0);this.exitNodes.length>0&&(this.scene=[...this.scene,...this.exitNodes]),d&&(this.activeTransition={startTime:M(),duration:f})}advanceTransition(t){var e,i,r;if(!this.activeTransition)return!1;const n=S(t,this.activeTransition),o=A(n,"linear"===(null===(e=this.config.transition)||void 0===e?void 0:e.easing)?"linear":"ease-out-cubic");for(const t of this.scene){const e=t._transitionKey;if(e)if("point"===t.type){if(void 0!==t._targetOpacity){const r=this.prevPositionMap.get(e),n=r?null!==(i=r.opacity)&&void 0!==i?i:1:0;t.style.opacity=E(n,t._targetOpacity,o)}if(void 0===t._targetX)continue;const r=this.prevPositionMap.get(e);if(!r)continue;t.x=E(r.x,t._targetX,o),t.y=E(r.y,t._targetY,o)}else if("rect"===t.type){if(void 0!==t._targetOpacity){const i=this.prevPositionMap.get(e),n=i?null!==(r=i.opacity)&&void 0!==r?r:1:0;t.style.opacity=E(n,t._targetOpacity,o)}if(void 0===t._targetX)continue;const i=this.prevPositionMap.get(e);if(!i)continue;t.x=E(i.x,t._targetX,o),t.y=E(i.y,t._targetY,o),void 0!==i.w&&(t.w=E(i.w,t._targetW,o),t.h=E(i.h,t._targetH,o))}}if(n>=1){for(const t of this.scene)if(void 0!==t._targetOpacity&&(t.style=Object.assign(Object.assign({},t.style||{}),{opacity:0===t._targetOpacity?0:t._targetOpacity}),t._targetOpacity=void 0),"point"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t._targetX=void 0,t._targetY=void 0}else if("rect"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}if(this.exitNodes.length>0){const t=new Set(this.exitNodes);this.scene=this.scene.filter(e=>!t.has(e)),this.exitNodes=[]}return this.activeTransition=null,!1}return!0}getData(){return this.buffer.toArray()}clear(){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this._hasStreamingData=!1,this.timestampBuffer&&this.timestampBuffer.clear(),this.prevPositionMap.clear(),this.exitNodes=[],this.activeTransition=null,this.lastIngestTime=0,this.scales=null,this.scene=[],this.columns={},this.version++}get size(){return this.buffer.size}getOAccessor(){return this.getO}getRAccessor(){return this.getR}updateConfig(t){t.colorScheme!==this.config.colorScheme&&(this._colorSchemeMap=null,this._colorSchemeIndex=0),Object.assign(this.config,t)}}const Bt={mercator:h.geoMercator,equalEarth:h.geoEqualEarth,albersUsa:h.geoAlbersUsa,orthographic:h.geoOrthographic,naturalEarth:h.geoNaturalEarth1,equirectangular:h.geoEquirectangular};function It(t,e){return t?"function"==typeof t?t:e=>e[t]:t=>t[e]}function Yt(t){return t?"function"==typeof t?t:e=>e[t]:t=>t.coordinates||t.data||[]}function Xt(t,e,i){return t?Object.assign(Object.assign({},i),"function"==typeof t?t(e):t):i}const Ft={fill:"#e0e0e0",stroke:"#999",strokeWidth:.5,fillOpacity:1},qt={fill:"#4e79a7",r:4,fillOpacity:.8},Gt={stroke:"#4e79a7",strokeWidth:1.5,fill:"none"};function Vt(t,e){if(2>t.length)return[t];const i=.4*e,r=[];let n=[t[0]];for(let e=1;t.length>e;e++){const o=t[e];Math.abs(o[0]-t[e-1][0])>i?(2>n.length||r.push(n),n=[o]):n.push(o)}return 2>n.length||r.push(n),r}function Ht(t,e,i=24){const r=e[0]-t[0],n=e[1]-t[1],o=Math.sqrt(r*r+n*n);if(0===o)return[t,e];const s=-n/o,a=r/o,c=Math.min(.3*o,80),l=(t[0]+e[0])/2+s*c,h=(t[1]+e[1])/2+a*c,u=[];for(let r=0;i>=r;r++){const n=r/i,o=1-n;u.push([o*o*t[0]+2*o*n*l+n*n*e[0],o*o*t[1]+2*o*n*h+n*n*e[1]])}return u}function Zt(t,e){if(2>t.length)return t;const i=e/2+1,r=[];for(let e=0;t.length>e;e++){const n=t[e];let o,s;0===e?(o=t[1][0]-n[0],s=t[1][1]-n[1]):e===t.length-1?(o=n[0]-t[e-1][0],s=n[1]-t[e-1][1]):(o=t[e+1][0]-t[e-1][0],s=t[e+1][1]-t[e-1][1]);const a=Math.sqrt(o*o+s*s)||1;r.push([n[0]+s/a*i,n[1]+-o/a*i])}return r}function Kt(t,e,i,r,n){const o=e[0]-t[0],s=e[1]-t[1],a=Math.sqrt(o*o+s*s);if(0===a)return[t,e];const c=s/a,l=-o/a,h=n/2+1;return[[t[0]+c*h,t[1]+l*h],[e[0]+c*h,e[1]+l*h]]}class Qt{constructor(t){this.scene=[],this.scales=null,this.version=0,this.projection=null,this.geoPath=null,this.baseScale=0,this.baseTranslate=[0,0],this.baseRotation=[0,0,0],this.currentZoom=1,this.cartogramLayout=null,this.areas=[],this.pointData=[],this.lineData=[],this.pointBuffer=null,this.streaming=!1,this.lastIngestTime=0,this.timestampBuffer=null,this.activeTransition=null,this.prevPositions=null,this.config=t}updateConfig(t){this.config=Object.assign(Object.assign({},this.config),t)}setAreas(t){this.areas=t}setPoints(t){this.pointData=t,this.streaming=!1}setLines(t){this.lineData=t}initStreaming(t=500){this.pointBuffer=new d(t),this.timestampBuffer=new d(t),this.streaming=!0}pushPoint(t){this.pointBuffer||this.initStreaming(),this.pointBuffer.push(t),this.timestampBuffer.push(performance.now()),this.lastIngestTime=performance.now()}pushMany(t){this.pointBuffer||this.initStreaming();const e=performance.now();for(const i of t)this.pointBuffer.push(i),this.timestampBuffer.push(e);this.lastIngestTime=e}clear(){this.areas=[],this.pointData=[],this.lineData=[],this.pointBuffer=null,this.timestampBuffer=null,this.scene=[],this.scales=null,this.version++}computeScene(t){const{config:e}=this;this.projection=function(t){if(!t)return h.geoEqualEarth();if("string"==typeof t){const e=Bt[t];return e?e():("production"!==process.env.NODE_ENV&&console.warn(`GeoFrame: Unknown projection "${t}", falling back to equalEarth`),h.geoEqualEarth())}if("object"==typeof t&&"type"in t){const e=Bt[t.type],i=e?e():h.geoEqualEarth();return t.rotate&&"rotate"in i&&i.rotate(t.rotate),t.center&&"center"in i&&i.center(t.center),i}return t}(e.projection),this.geoPath=h.geoPath(this.projection),this.fitProjection(t),this.geoPath=h.geoPath(this.projection);const i=this.projection;this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null};const r=this.scene;this.scene=this.buildSceneNodes(t),e.projectionTransform&&this.applyCartogramTransform(e.projectionTransform,t),e.decay&&this.streaming&&this.applyDecay(),e.pulse&&this.streaming&&this.applyPulse(),e.transition&&r.length>0&&this.startTransition(r),this.version++}fitProjection(t){var e,i,r,n,o;const s=this.projection,a=this.config,c=[...this.areas],l=It(a.xAccessor,"lon"),h=It(a.yAccessor,"lat"),u=this.getPoints();if(u.length>0){const t=u.map(t=>[l(t),h(t)]);c.push({type:"Feature",properties:{},geometry:{type:"MultiPoint",coordinates:t}})}const f=Yt(a.lineDataAccessor);for(const t of this.lineData){const e=f(t);if(e&&e.length>0){const t=e.map(t=>[l(t),h(t)]);c.push({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:t}})}}if(0!==c.length){if(a.projectionExtent){const[[e,i],[r,n]]=a.projectionExtent;s.fitExtent([[0,0],[t.width,t.height]],{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[e,i],[r,i],[r,n],[e,n],[e,i]]]}})}else if(s.clipAngle&&(null!==(e=s.clipAngle())&&void 0!==e?e:0)>0){const e=null!==(i=a.fitPadding)&&void 0!==i?i:0,r=Math.min(t.width,t.height);s.scale(r/2-r*e),s.translate([t.width/2,t.height/2])}else{const e=null!==(r=a.fitPadding)&&void 0!==r?r:0,i=t.width*e,n=t.height*e;s.fitExtent([[i,n],[t.width-i,t.height-n]],{type:"FeatureCollection",features:c})}this.baseScale=s.scale(),this.baseTranslate=s.translate(),this.baseRotation=null!==(o=null===(n=s.rotate)||void 0===n?void 0:n.call(s))&&void 0!==o?o:[0,0,0]}}applyZoomTransform(t,e){const i=this.projection;i&&(i.scale(this.baseScale*t.k),i.translate([this.baseTranslate[0]*t.k+t.x,this.baseTranslate[1]*t.k+t.y]),this.currentZoom=t.k,this.geoPath=h.geoPath(i),this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null},this.scene=this.buildSceneNodes(e),this.config.projectionTransform&&this.applyCartogramTransform(this.config.projectionTransform,e),this.version++)}applyZoomScale(t,e){const i=this.projection;i&&(i.scale(this.baseScale*t),i.translate(this.baseTranslate),this.currentZoom=t,this.geoPath=h.geoPath(i),this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null},this.scene=this.buildSceneNodes(e),this.config.projectionTransform&&this.applyCartogramTransform(this.config.projectionTransform,e),this.version++)}applyRotation(t,e){const i=this.projection;i&&i.rotate&&(i.rotate(t),this.geoPath=h.geoPath(i),this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null},this.scene=this.buildSceneNodes(e),this.config.projectionTransform&&this.applyCartogramTransform(this.config.projectionTransform,e),this.version++)}setRotation(t){const e=this.projection;e&&e.rotate&&e.rotate(t)}getRotation(){var t,e,i;return null!==(i=null===(e=null===(t=this.projection)||void 0===t?void 0:t.rotate)||void 0===e?void 0:e.call(t))&&void 0!==i?i:this.baseRotation}getBaseProjectionState(){return{scale:this.baseScale,translate:[...this.baseTranslate]}}getPoints(){return this.streaming&&this.pointBuffer?this.pointBuffer.toArray():this.pointData}buildSceneNodes(t){var e,i,r;const n=[],{config:o}=this,s=this.projection,a=this.geoPath,c=It(o.xAccessor,"lon"),l=It(o.yAccessor,"lat");if(o.graticule){const e=!0===o.graticule?{}:o.graticule,i=h.geoGraticule();e.step&&i.step(e.step);const r=a(i())||"";r&&n.push({type:"geoarea",pathData:r,centroid:[t.width/2,t.height/2],bounds:[[0,0],[t.width,t.height]],screenArea:0,style:{fill:"none",stroke:e.stroke||"#e0e0e0",strokeWidth:e.strokeWidth||.5,strokeDasharray:e.strokeDasharray||"2,2"},datum:null,interactive:!1})}for(const t of this.areas){const e=a(t);if(!e)continue;const i=a.centroid(t),r=a.bounds(t),s=a.area(t),c=Xt(o.areaStyle,t,Ft);n.push({type:"geoarea",pathData:e,centroid:i,bounds:r,screenArea:s,style:c,datum:t,interactive:!0})}const u=Yt(o.lineDataAccessor);for(const e of this.lineData){const i=u(e);if(!i||2>i.length)continue;const r=i.map(t=>[c(t),l(t)]);let a;if("geo"===o.lineType){const t=[];for(let e=0;r.length-1>e;e++){const i=r[e],n=r[e+1],o=h.geoDistance(i,n)||0,s=Math.max(2,Math.ceil(o/(Math.PI/180))),a=h.geoInterpolate(i,n);for(let i=0;s>=i;i++)e>0&&0===i||t.push(a(i/s))}a=t.map(([t,e])=>s([t,e])).filter(t=>null!=t)}else a=r.map(([t,e])=>s([t,e])).filter(t=>null!=t);if(2>a.length)continue;const f=Xt(o.lineStyle,e,Gt),d="number"==typeof f.strokeWidth?f.strokeWidth:1;2!==r.length||2>a.length||"arc"!==o.flowStyle?2!==r.length||2>a.length||"offset"!==o.flowStyle||(a="geo"===o.lineType?Zt(a,d):Kt(a[0],a[a.length-1],0,0,d)):a=Ht(a[0],a[a.length-1]);const y=Vt(a,t.width);if(y.length>1)for(const t of y){if(2>t.length)continue;const i={type:"line",path:t,style:Object.assign(Object.assign({},f),{_edgeFade:!0}),datum:e};n.push(i)}else n.push({type:"line",path:2>a.length&&y[0]||a,style:f,datum:e})}const f=this.getPoints(),d=o.pointIdAccessor?"function"==typeof o.pointIdAccessor?o.pointIdAccessor:t=>t[o.pointIdAccessor]:null,y=s.clipAngle&&null!==(e=s.clipAngle())&&void 0!==e?e:0,g=y>0?y*Math.PI/180:null,p=s.rotate?s.rotate():[0,0,0],m="function"==typeof s.center?s.center():[0,0],v=[(null!==(i=m[0])&&void 0!==i?i:0)-p[0],(null!==(r=m[1])&&void 0!==r?r:0)-p[1]];for(let t=0;f.length>t;t++){const e=f[t],i=c(e),r=l(e);if(null!=g&&h.geoDistance([i,r],v)>g)continue;const a=s([i,r]);if(!a)continue;const u=o.pointStyle?o.pointStyle(e):Object.assign({},qt),y={type:"point",x:a[0],y:a[1],r:u.r||4,style:u,datum:e,pointId:d?d(e)+"":void 0};n.push(y)}return n}applyCartogramTransform(t,i){var r,n,o;const s=this.scene.filter(t=>"point"===t.type);if(2>s.length)return;const a=null!==(r=t.strength)&&void 0!==r?r:1;if(0===a)return;const c=t.centerAccessor?"function"==typeof t.centerAccessor?t.centerAccessor:e=>e[t.centerAccessor]:t=>t.id,l="function"==typeof t.costAccessor?t.costAccessor:e=>e[t.costAccessor],h=s.find(e=>c(e.datum)+""==t.center+"");if(!h)return void("production"!==process.env.NODE_ENV&&console.warn(`GeoFrame: Distance cartogram center "${t.center}" not found in point data`));const u=h.x,f=h.y,d=s.map(t=>l(t.datum)).filter(t=>isFinite(t)&&t>=0),y=Math.max(...d,1),g=Math.min(i.width,i.height)/2,p=e.scaleLinear().domain([0,y]).range([0,g]);this.cartogramLayout={cx:u,cy:f,maxCost:y,availableRadius:g},this.areas.length>0&&"production"!==process.env.NODE_ENV&&console.warn("GeoFrame: Distance cartogram does not support area rendering. Areas will be ignored. Remove areas or set projectionTransform to null to render them."),this.scene=this.scene.filter(t=>"geoarea"!==t.type||!t.interactive);for(const t of s){if(t===h)continue;const e=Math.atan2(t.y-f,t.x-u),i=Math.sqrt(Math.pow(t.x-u,2)+Math.pow(t.y-f,2)),r=l(t.datum),n=i+((isFinite(r)?p(r):i)-i)*a;t.x=u+Math.cos(e)*n,t.y=f+Math.sin(e)*n}const m=i.width/2,v=i.height/2,x=m-h.x,b=v-h.y;if(Math.abs(x)>.5||Math.abs(b)>.5)for(const t of s)t.x+=x,t.y+=b;this.cartogramLayout={cx:m,cy:v,maxCost:y,availableRadius:g};const k=this.scene.filter(t=>"line"===t.type);if(k.length>0&&"fractional"!==t.lineMode){const t=new Map;for(const e of s)e.pointId&&t.set(e.pointId,[e.x,e.y]);for(const e of k){const i=null===(n=e.datum)||void 0===n?void 0:n.source,r=null===(o=e.datum)||void 0===o?void 0:o.target;if(i&&r){const n=t.get(i+""),o=t.get(r+"");n&&o&&(e.path=[n,o])}}}}applyDecay(){var t,e,i;const r=this.config.decay;if(!r||!this.pointBuffer)return;const n=this.pointBuffer.size;if(0===n)return;const o=null!==(t=r.minOpacity)&&void 0!==t?t:.1,s=null!==(e=r.halfLife)&&void 0!==e?e:n/2,a=null!==(i=r.stepThreshold)&&void 0!==i?i:.5*n,c=this.scene.filter(t=>"point"===t.type);for(let t=0;c.length>t;t++){const e=n-1-t;let i;switch(r.type){case"exponential":i=o+Math.pow(.5,e/s)*(1-o);break;case"step":i=a>e?1:o;break;default:i=o+(n>1?1-e/(n-1):1)*(1-o)}c[t]._decayOpacity=i,c[t].style=Object.assign(Object.assign({},c[t].style),{opacity:i})}}applyPulse(){var t,e;const i=this.config.pulse;if(!i||!this.timestampBuffer)return;const r=null!==(t=i.duration)&&void 0!==t?t:500,n=performance.now(),o=this.scene.filter(t=>"point"===t.type),s=this.timestampBuffer.toArray();for(let t=0;o.length>t&&s.length>t;t++){const a=n-s[t];r>a&&(o[t]._pulseIntensity=1-a/r,o[t]._pulseColor=i.color||"rgba(255,255,255,0.6)",o[t]._pulseGlowRadius=null!==(e=i.glowRadius)&&void 0!==e?e:4)}}get hasActivePulses(){var t,e;if(!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const i=null!==(e=null===(t=this.config.pulse)||void 0===t?void 0:t.duration)&&void 0!==e?e:500,r=this.timestampBuffer.toArray()[this.timestampBuffer.size-1];return performance.now()-r<i}startTransition(t){var e,i;const r=null!==(i=null===(e=this.config.transition)||void 0===e?void 0:e.duration)&&void 0!==i?i:300;if(0>=r)return;const n=new Map;for(const e of t)"point"===e.type&&e.pointId&&n.set(e.pointId,[e.x,e.y]);const o=this.scene.filter(t=>"point"===t.type);let s=!1;for(const t of o)if(t.pointId){const e=n.get(t.pointId);e&&(t._targetX=t.x,t._targetY=t.y,t.x=e[0],t.y=e[1],(Math.abs(e[0]-t._targetX)>.5||Math.abs(e[1]-t._targetY)>.5)&&(s=!0))}s&&(this.activeTransition={startTime:performance.now(),duration:r})}advanceTransition(t){if(!this.activeTransition)return!1;const e=S(t,this.activeTransition),i=A(e),r=this.scene.filter(t=>"point"===t.type);for(const t of r)if(null!=t._targetX&&null!=t._targetY){const e=t.y;t.x=E(t.x,t._targetX,i),t.y=E(e,t._targetY,i)}if(e>=1){for(const t of r)null!=t._targetX&&(t.x=t._targetX,t.y=t._targetY,t._targetX=void 0,t._targetY=void 0);return this.activeTransition=null,!1}return!0}}const Ut=require("react-dom/server");function Jt(t){return Math.round(100*t)/100+""}function te(t){var e,i,r,n;const o=t.size||[500,300],s=Object.assign(Object.assign({},{top:20,right:20,bottom:30,left:40}),t.margin),a=o[0]-s.left-s.right,c=o[1]-s.top-s.bottom,l="streaming"===t.runtimeMode||["bar","swarm","waterfall"].includes(t.chartType),h={chartType:t.chartType,windowSize:null!==(e=t.windowSize)&&void 0!==e?e:200,windowMode:null!==(i=t.windowMode)&&void 0!==i?i:"sliding",arrowOfTime:l&&null!==(r=t.arrowOfTime)&&void 0!==r?r:"right",extentPadding:null!==(n=t.extentPadding)&&void 0!==n?n:.1,xAccessor:l?void 0:t.xAccessor,yAccessor:l?void 0:t.yAccessor,timeAccessor:l?t.timeAccessor:void 0,valueAccessor:t.valueAccessor,colorAccessor:t.colorAccessor,sizeAccessor:t.sizeAccessor,groupAccessor:t.groupAccessor,categoryAccessor:t.categoryAccessor,lineDataAccessor:t.lineDataAccessor,xExtent:t.xExtent,yExtent:t.yExtent,sizeRange:t.sizeRange,binSize:t.binSize,normalize:t.normalize,boundsAccessor:t.boundsAccessor,boundsStyle:t.boundsStyle,openAccessor:t.openAccessor,highAccessor:t.highAccessor,lowAccessor:t.lowAccessor,closeAccessor:t.closeAccessor,candlestickStyle:t.candlestickStyle,lineStyle:t.lineStyle,pointStyle:t.pointStyle,areaStyle:t.areaStyle,colorScheme:t.colorScheme,barColors:t.barColors},u=new L(h);if(t.data&&u.ingest({inserts:t.data,bounded:!0}),u.computeScene({width:a,height:c}),!u.scales||0===u.scene.length)return Ut.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-xy-frame",width:o[0],height:o[1]}));const d=u.scene.map((t,e)=>function(t,e){var i,r,n;switch(t.type){case"line":{const i=t;if(0===i.path.length)return null;const r="M"+i.path.map(([t,e])=>`${t},${e}`).join("L");return f.createElement("path",{key:"line-"+e,d:r,fill:"none",stroke:i.style.stroke||"#4e79a7",strokeWidth:i.style.strokeWidth||2,strokeDasharray:i.style.strokeDasharray,opacity:i.style.opacity})}case"area":{const n=t;if(0===n.topPath.length)return null;const o=n.topPath.map(([t,e])=>`${t},${e}`).join("L"),s=[...n.bottomPath].reverse().map(([t,e])=>`${t},${e}`).join("L");return f.createElement("path",{key:"area-"+e,d:`M${o}L${s}Z`,fill:n.style.fill||"#4e79a7",fillOpacity:null!==(r=null!==(i=n.style.fillOpacity)&&void 0!==i?i:n.style.opacity)&&void 0!==r?r:.7,stroke:n.style.stroke,strokeWidth:n.style.strokeWidth})}case"point":return f.createElement("circle",{key:"point-"+e,cx:t.x,cy:t.y,r:t.r,fill:t.style.fill||"#4e79a7",opacity:null!==(n=t.style.opacity)&&void 0!==n?n:.8,stroke:t.style.stroke,strokeWidth:t.style.strokeWidth});case"rect":return f.createElement("rect",{key:"rect-"+e,x:t.x,y:t.y,width:t.w,height:t.h,fill:t.style.fill||"#4e79a7",opacity:t.style.opacity,stroke:t.style.stroke,strokeWidth:t.style.strokeWidth});case"heatcell":{const i=t;if(i.showValues&&null!=i.value&&i.w>=20&&i.h>=20){const t=i.valueFormat?i.valueFormat(i.value):Number.isInteger(i.value)?i.value+"":100>Math.abs(i.value)?1>Math.abs(i.value)?i.value.toPrecision(3):i.value.toFixed(1):i.value.toFixed(0),[r,n,o]=function(t){if(t.startsWith("#")){let e=t.slice(1);if(3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),6===e.length)return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}const e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return e?[+e[1],+e[2],+e[3]]:[128,128,128]}(i.fill),s=.299*r+.587*n+.114*o>128?"#000":"#fff",a=Math.max(10,Math.min(16,.3*Math.min(i.w,i.h)));return f.createElement("g",{key:"heatcell-"+e},f.createElement("rect",{x:i.x,y:i.y,width:i.w,height:i.h,fill:i.fill}),f.createElement("text",{x:i.x+i.w/2,y:i.y+i.h/2,textAnchor:"middle",dominantBaseline:"middle",fill:s,fontSize:a+"px"},t))}return f.createElement("rect",{key:"heatcell-"+e,x:i.x,y:i.y,width:i.w,height:i.h,fill:i.fill})}case"candlestick":{const i=t,r=Math.min(i.openY,i.closeY),n=Math.max(Math.abs(i.openY-i.closeY),1),o=i.isUp?i.upColor:i.downColor;return f.createElement("g",{key:"candle-"+e},f.createElement("line",{x1:i.x,y1:i.highY,x2:i.x,y2:i.lowY,stroke:i.wickColor,strokeWidth:i.wickWidth}),f.createElement("rect",{x:i.x-i.bodyWidth/2,y:r,width:i.bodyWidth,height:n,fill:o,stroke:o,strokeWidth:1}))}default:return null}}(t,e)).filter(Boolean),y=!1!==t.showAxes?function(t,e,i){var r,n,o,s;const a=t.x.ticks(5).map(e=>({pixel:t.x(e),label:(i.xFormat||i.tickFormatTime||Jt)(e)})),c=t.y.ticks(5).map(e=>({pixel:t.y(e),label:(i.yFormat||i.tickFormatValue||Jt)(e)}));return f.createElement("g",{className:"stream-axes"},f.createElement("line",{x1:0,y1:e.height,x2:e.width,y2:e.height,stroke:"#ccc",strokeWidth:1}),a.map((t,i)=>f.createElement("g",{key:"xtick-"+i,transform:`translate(${t.pixel},${e.height})`},f.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666"},t.label))),i.xLabel&&f.createElement("text",{x:e.width/2,y:e.height+40,textAnchor:"middle",fontSize:12,fill:"#333"},i.xLabel),f.createElement("line",{x1:0,y1:0,x2:0,y2:e.height,stroke:"#ccc",strokeWidth:1}),c.map((t,e)=>f.createElement("g",{key:"ytick-"+e,transform:`translate(0,${t.pixel})`},f.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666"},t.label))),i.yLabel&&f.createElement("text",{x:15-(null!==(n=null===(r=i.margin)||void 0===r?void 0:r.left)&&void 0!==n?n:40),y:e.height/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-(null!==(s=null===(o=i.margin)||void 0===o?void 0:o.left)&&void 0!==s?s:40)}, ${e.height/2})`},i.yLabel))}(u.scales,{width:a,height:c},t):null,g=t.title&&"string"==typeof t.title?f.createElement("text",{x:o[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,p=t.background?f.createElement("rect",{x:0,y:0,width:a,height:c,fill:t.background}):null,m=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-xy-frame"+(t.className?" "+t.className:""),width:o[0],height:o[1]},f.createElement("g",{transform:`translate(${s.left},${s.top})`},p,d,y),g);return Ut.renderToStaticMarkup(m)}function ee(t,e){return t?"function"==typeof t?t:e=>e[t]:t=>t[e]}const ie=new Set(["tree","cluster","treemap","circlepack","partition"]);function re(t){const e=t.chartType||"force",i=t.size||[500,500],r=Object.assign(Object.assign({},{top:20,right:20,bottom:20,left:20}),t.margin),n=i[0]-r.left-r.right,o=i[1]-r.top-r.bottom,s=function(t){return Wt[t]}(e);if(!s)throw Error(`No layout plugin found for chart type: "${e}". Supported types: force, sankey, chord, tree, cluster, treemap, circlepack, partition.`);const a={chartType:e,nodeIDAccessor:t.nodeIDAccessor,sourceAccessor:t.sourceAccessor,targetAccessor:t.targetAccessor,valueAccessor:t.valueAccessor,childrenAccessor:t.childrenAccessor,hierarchySum:t.hierarchySum,orientation:t.orientation,nodeAlign:t.nodeAlign,nodePaddingRatio:t.nodePaddingRatio,nodeWidth:t.nodeWidth,iterations:t.iterations,forceStrength:t.forceStrength,padAngle:t.padAngle,groupWidth:t.groupWidth,sortGroups:t.sortGroups,edgeSort:t.edgeSort,treeOrientation:t.treeOrientation,edgeType:t.edgeType,padding:t.padding,paddingTop:t.paddingTop,nodeStyle:t.nodeStyle,edgeStyle:t.edgeStyle,nodeLabel:t.nodeLabel,showLabels:t.showLabels,colorBy:t.colorBy,colorScheme:t.colorScheme,edgeColorBy:t.edgeColorBy,edgeOpacity:t.edgeOpacity,colorByDepth:t.colorByDepth,nodeSize:t.nodeSize,nodeSizeRange:t.nodeSizeRange};let l,h;if(ie.has(e)){const e=t.data||t.edges;if(!e||Array.isArray(e))return Ut.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-network-frame",width:i[0],height:i[1]}));a.__hierarchyRoot=e,l=[],h=[]}else{const e=t.nodes||[],r=Array.isArray(t.edges)?t.edges:[];if(0===e.length&&0===r.length)return Ut.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-network-frame",width:i[0],height:i[1]}));if(h=function(t,e){const i=ee(e.sourceAccessor,"source"),r=ee(e.targetAccessor,"target"),n=ee(e.valueAccessor,"value");return t.map(t=>({source:i(t)+"",target:r(t)+"",value:Number(n(t))||1,y0:0,y1:0,sankeyWidth:0,data:t}))}(r,a),0===e.length&&h.length>0){const t=new Set;for(const e of h){const i="string"==typeof e.target?e.target:e.target.id;t.add("string"==typeof e.source?e.source:e.source.id),t.add(i)}l=Array.from(t).map(t=>({id:t,x:0,y:0,x0:0,x1:0,y0:0,y1:0,width:0,height:0,value:0,data:{id:t}}))}else l=function(t,e){const i=ee(e.nodeIDAccessor,"id");return t.map(t=>({id:i(t)+"",x:0,y:0,x0:0,x1:0,y0:0,y1:0,width:0,height:0,value:0,data:t}))}(e,a)}s.computeLayout(l,h,a,[n,o]);const{sceneNodes:u,sceneEdges:d,labels:y}=s.buildScene(l,h,a,[n,o]),g=d.map((t,e)=>function(t,e){switch(t.type){case"line":return f.createElement("line",{key:"net-edge-"+e,x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stroke:t.style.stroke||"#999",strokeWidth:t.style.strokeWidth||1,opacity:t.style.opacity});case"bezier":case"ribbon":return f.createElement("path",{key:"net-edge-"+e,d:t.pathD,fill:t.style.fill||"#999",fillOpacity:t.style.fillOpacity,stroke:t.style.stroke||"none",strokeWidth:t.style.strokeWidth,opacity:t.style.opacity});case"curved":return f.createElement("path",{key:"net-edge-"+e,d:t.pathD,fill:t.style.fill||"none",stroke:t.style.stroke||"#999",strokeWidth:t.style.strokeWidth||1,opacity:t.style.opacity});default:return null}}(t,e)).filter(Boolean),p=u.map((t,e)=>function(t,e){switch(t.type){case"circle":return f.createElement("circle",{key:"net-circle-"+e,cx:t.cx,cy:t.cy,r:t.r,fill:t.style.fill||"#4e79a7",stroke:t.style.stroke,strokeWidth:t.style.strokeWidth,opacity:t.style.opacity});case"rect":return f.createElement("rect",{key:"net-rect-"+e,x:t.x,y:t.y,width:t.w,height:t.h,fill:t.style.fill||"#4e79a7",stroke:t.style.stroke,strokeWidth:t.style.strokeWidth,opacity:t.style.opacity});case"arc":{const i=t,r=c.arc().innerRadius(i.innerR).outerRadius(i.outerR).startAngle(i.startAngle).endAngle(i.endAngle)({})||"";return f.createElement("path",{key:"net-arc-"+e,d:r,transform:`translate(${i.cx},${i.cy})`,fill:i.style.fill||"#4e79a7",stroke:i.style.stroke,strokeWidth:i.style.strokeWidth,opacity:i.style.opacity})}default:return null}}(t,e)).filter(Boolean),m=y.map((t,e)=>function(t,e){return f.createElement("text",{key:"net-label-"+e,x:t.x,y:t.y,textAnchor:t.anchor||"middle",dominantBaseline:t.baseline||"auto",fontSize:t.fontSize||11,fontWeight:t.fontWeight,fill:t.fill||"#333",stroke:t.stroke,strokeWidth:t.strokeWidth,paintOrder:t.paintOrder},t.text)}(t,e)).filter(Boolean),v=t.title&&"string"==typeof t.title?f.createElement("text",{x:i[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,x=t.background?f.createElement("rect",{x:0,y:0,width:n,height:o,fill:t.background}):null,b=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-network-frame"+(t.className?" "+t.className:""),width:i[0],height:i[1]},f.createElement("g",{transform:`translate(${r.left},${r.top})`},x,g,p,m),v);return Ut.renderToStaticMarkup(b)}function ne(t){var e,i,r;const n=t.size||[500,400],o=Object.assign(Object.assign({},{top:20,right:20,bottom:30,left:40}),t.margin),s=n[0]-o.left-o.right,a=n[1]-o.top-o.bottom,l=t.projection||"vertical",h="radial"===l,u={chartType:t.chartType,windowSize:null!==(e=t.windowSize)&&void 0!==e?e:1e4,windowMode:null!==(i=t.windowMode)&&void 0!==i?i:"sliding",extentPadding:null!==(r=t.extentPadding)&&void 0!==r?r:.05,projection:l,oAccessor:t.oAccessor,rAccessor:t.rAccessor,colorAccessor:t.colorAccessor,stackBy:t.stackBy,groupBy:t.groupBy,categoryAccessor:t.categoryAccessor,valueAccessor:t.valueAccessor,timeAccessor:t.timeAccessor,rExtent:t.rExtent,oExtent:t.oExtent,barPadding:t.barPadding,innerRadius:t.innerRadius,normalize:t.normalize,startAngle:t.startAngle,bins:t.bins,showOutliers:t.showOutliers,showIQR:t.showIQR,amplitude:t.amplitude,oSort:t.oSort,connectorAccessor:t.connectorAccessor,connectorStyle:t.connectorStyle,dynamicColumnWidth:t.dynamicColumnWidth,pieceStyle:t.pieceStyle,summaryStyle:t.summaryStyle,colorScheme:t.colorScheme,barColors:t.barColors},d=new Ct(u);if(t.data&&d.ingest({inserts:t.data,bounded:!0}),d.computeScene({width:s,height:a}),!d.scales||0===d.scene.length)return Ut.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-ordinal-frame",width:n[0],height:n[1]}));const y=d.scene.map((t,e)=>function(t,e){var i,r,n,o,s;const a=t.category||t.group||"",l=i=>`ord-${t.type}-${a}-${e}-${i}`,h=`ord-${t.type}-${a}-${e}`;switch(t.type){case"rect":return f.createElement("rect",{key:h,x:t.x,y:t.y,width:t.w,height:t.h,fill:t.style.fill||"#4e79a7",opacity:t.style.opacity,stroke:t.style.stroke,strokeWidth:t.style.strokeWidth});case"point":return f.createElement("circle",{key:h,cx:t.x,cy:t.y,r:t.r,fill:t.style.fill||"#4e79a7",opacity:null!==(i=t.style.opacity)&&void 0!==i?i:.8,stroke:t.style.stroke,strokeWidth:t.style.strokeWidth});case"wedge":{const e=t,i=c.arc().innerRadius(e.innerRadius).outerRadius(e.outerRadius).startAngle(e.startAngle).endAngle(e.endAngle)({})||"";return f.createElement("path",{key:h,d:i,transform:`translate(${e.cx},${e.cy})`,fill:e.style.fill||"#4e79a7",stroke:e.style.stroke,strokeWidth:e.style.strokeWidth,opacity:e.style.opacity})}case"boxplot":{const e=t,i=e.columnWidth/2;return"vertical"===e.projection?f.createElement("g",{key:h},f.createElement("line",{x1:e.x,y1:e.minPos,x2:e.x,y2:e.maxPos,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("rect",{x:e.x-i,y:Math.min(e.q1Pos,e.q3Pos),width:e.columnWidth,height:Math.abs(e.q3Pos-e.q1Pos),fill:e.style.fill||"#4e79a7",fillOpacity:null!==(r=e.style.fillOpacity)&&void 0!==r?r:.6,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.x-i,y1:e.medianPos,x2:e.x+i,y2:e.medianPos,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("line",{x1:e.x-.5*i,y1:e.minPos,x2:e.x+.5*i,y2:e.minPos,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.x-.5*i,y1:e.maxPos,x2:e.x+.5*i,y2:e.maxPos,stroke:e.style.stroke||"#333",strokeWidth:1})):f.createElement("g",{key:h},f.createElement("line",{x1:e.minPos,y1:e.y,x2:e.maxPos,y2:e.y,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("rect",{x:Math.min(e.q1Pos,e.q3Pos),y:e.y-i,width:Math.abs(e.q3Pos-e.q1Pos),height:e.columnWidth,fill:e.style.fill||"#4e79a7",fillOpacity:null!==(n=e.style.fillOpacity)&&void 0!==n?n:.6,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.medianPos,y1:e.y-i,x2:e.medianPos,y2:e.y+i,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("line",{x1:e.minPos,y1:e.y-.5*i,x2:e.minPos,y2:e.y+.5*i,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.maxPos,y1:e.y-.5*i,x2:e.maxPos,y2:e.y+.5*i,stroke:e.style.stroke||"#333",strokeWidth:1}))}case"violin":{const e=t,i=[f.createElement("path",{key:l("path"),d:e.pathString,transform:e.translateX||e.translateY?`translate(${e.translateX},${e.translateY})`:void 0,fill:e.style.fill||"#4e79a7",fillOpacity:null!==(o=e.style.fillOpacity)&&void 0!==o?o:.6,stroke:e.style.stroke||"#333",strokeWidth:e.style.strokeWidth||1})];if(e.iqrLine&&e.bounds){const t=e.bounds,r=t.x+t.width/2,n=t.y+t.height/2;t.height>t.width?i.push(f.createElement("line",{key:l("iqr"),x1:r,y1:e.iqrLine.q1Pos,x2:r,y2:e.iqrLine.q3Pos,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("circle",{key:l("med"),cx:r,cy:e.iqrLine.medianPos,r:3,fill:"white",stroke:e.style.stroke||"#333",strokeWidth:1})):i.push(f.createElement("line",{key:l("iqr"),x1:e.iqrLine.q1Pos,y1:n,x2:e.iqrLine.q3Pos,y2:n,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("circle",{key:l("med"),cx:e.iqrLine.medianPos,cy:n,r:3,fill:"white",stroke:e.style.stroke||"#333",strokeWidth:1}))}return f.createElement("g",{key:h},i)}case"connector":return f.createElement("line",{key:h,x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stroke:t.style.stroke||"#999",strokeWidth:t.style.strokeWidth||1,opacity:null!==(s=t.style.opacity)&&void 0!==s?s:.5});default:return null}}(t,e)).filter(Boolean),g=!1!==t.showAxes?function(t,e,i){var r,n,o,s,a,c,l,h;const u=t.scales;if(!u)return null;if("radial"===u.projection)return null;const d="vertical"===u.projection,y=Object.values(t.columns).map(t=>({pixel:t.middle,label:(i.oFormat||String)(t.name)})),g=u.r.ticks(5).map(t=>({pixel:u.r(t),label:(i.rFormat||Jt)(t)}));return d?f.createElement("g",{className:"ordinal-axes"},f.createElement("line",{x1:0,y1:e.height,x2:e.width,y2:e.height,stroke:"#ccc",strokeWidth:1}),y.map((t,i)=>f.createElement("g",{key:"oxtick-"+i,transform:`translate(${t.pixel},${e.height})`},f.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666"},t.label))),i.oLabel&&f.createElement("text",{x:e.width/2,y:e.height+40,textAnchor:"middle",fontSize:12,fill:"#333"},i.oLabel),f.createElement("line",{x1:0,y1:0,x2:0,y2:e.height,stroke:"#ccc",strokeWidth:1}),g.map((t,e)=>f.createElement("g",{key:"oytick-"+e,transform:`translate(0,${t.pixel})`},f.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666"},t.label))),i.rLabel&&f.createElement("text",{x:15-(null!==(n=null===(r=i.margin)||void 0===r?void 0:r.left)&&void 0!==n?n:40),y:e.height/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-(null!==(s=null===(o=i.margin)||void 0===o?void 0:o.left)&&void 0!==s?s:40)}, ${e.height/2})`},i.rLabel)):f.createElement("g",{className:"ordinal-axes"},f.createElement("line",{x1:0,y1:e.height,x2:e.width,y2:e.height,stroke:"#ccc",strokeWidth:1}),g.map((t,i)=>f.createElement("g",{key:"oxtick-"+i,transform:`translate(${t.pixel},${e.height})`},f.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666"},t.label))),i.rLabel&&f.createElement("text",{x:e.width/2,y:e.height+40,textAnchor:"middle",fontSize:12,fill:"#333"},i.rLabel),f.createElement("line",{x1:0,y1:0,x2:0,y2:e.height,stroke:"#ccc",strokeWidth:1}),y.map((t,e)=>f.createElement("g",{key:"oytick-"+e,transform:`translate(0,${t.pixel})`},f.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666"},t.label))),i.oLabel&&f.createElement("text",{x:15-(null!==(c=null===(a=i.margin)||void 0===a?void 0:a.left)&&void 0!==c?c:40),y:e.height/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-(null!==(h=null===(l=i.margin)||void 0===l?void 0:l.left)&&void 0!==h?h:40)}, ${e.height/2})`},i.oLabel))}(d,{width:s,height:a},t):null,p=t.title&&"string"==typeof t.title?f.createElement("text",{x:n[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,m=t.background?f.createElement("rect",{x:0,y:0,width:s,height:a,fill:t.background}):null,v=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-ordinal-frame"+(t.className?" "+t.className:""),width:n[0],height:n[1]},f.createElement("g",{transform:`translate(${h?o.left+s/2:o.left},${h?o.top+a/2:o.top})`},m,y,g),p);return Ut.renderToStaticMarkup(v)}function oe(t){var e,i,r,n,o,s;const a=t.size||[t.width||600,t.height||400],c=Object.assign(Object.assign({},{top:10,right:10,bottom:10,left:10}),t.margin),l=a[0]-(null!==(e=c.left)&&void 0!==e?e:0)-(null!==(i=c.right)&&void 0!==i?i:0),h=a[1]-(null!==(r=c.top)&&void 0!==r?r:0)-(null!==(n=c.bottom)&&void 0!==n?n:0),u=new Qt({projection:t.projection||"equalEarth",xAccessor:t.xAccessor,yAccessor:t.yAccessor,lineDataAccessor:t.lineDataAccessor,pointIdAccessor:t.pointIdAccessor,lineType:t.lineType,areaStyle:t.areaStyle,pointStyle:t.pointStyle,lineStyle:t.lineStyle,graticule:t.graticule,fitPadding:t.fitPadding,projectionTransform:t.projectionTransform});if(t.areas){if("string"==typeof t.areas)throw Error(`Geo SSR requires pre-resolved GeoJSON features. Reference string "${t.areas}" cannot be resolved synchronously. Use \`const features = await resolveReferenceGeography('${t.areas}')\` before calling renderGeoToStaticSVG.`);u.setAreas(t.areas)}if(t.points&&u.setPoints(t.points),t.lines&&u.setLines(t.lines),u.computeScene({width:l,height:h}),0===u.scene.length)return Ut.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-geo-frame",width:a[0],height:a[1]}));const d=u.scene.map((t,e)=>function(t,e){var i,r,n,o,s,a;switch(t.type){case"geoarea":return t.pathData?f.createElement("path",{key:"geoarea-"+e,d:t.pathData,fill:t.style.fill||"#e0e0e0",fillOpacity:null!==(i=t.style.fillOpacity)&&void 0!==i?i:1,stroke:t.style.stroke||"none",strokeWidth:t.style.strokeWidth||.5,strokeDasharray:t.style.strokeDasharray,opacity:null!==(r=t._decayOpacity)&&void 0!==r?r:1}):null;case"point":return f.createElement("circle",{key:"point-"+e,cx:t.x,cy:t.y,r:t.r,fill:t.style.fill||"#4e79a7",fillOpacity:null!==(n=t.style.fillOpacity)&&void 0!==n?n:.8,stroke:t.style.stroke,strokeWidth:t.style.strokeWidth,opacity:null!==(o=t._decayOpacity)&&void 0!==o?o:null!==(s=t.style.opacity)&&void 0!==s?s:1});case"line":{const i=t;if(2>i.path.length)return null;const r="M"+i.path.map(t=>`${t[0]},${t[1]}`).join("L");return f.createElement("path",{key:"line-"+e,d:r,fill:"none",stroke:i.style.stroke||"#4e79a7",strokeWidth:i.style.strokeWidth||1.5,strokeDasharray:i.style.strokeDasharray,opacity:null!==(a=i.style.opacity)&&void 0!==a?a:1})}default:return null}}(t,e)).filter(Boolean),y=t.title&&"string"==typeof t.title?f.createElement("text",{x:a[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,g=t.background?f.createElement("rect",{x:0,y:0,width:l,height:h,fill:t.background}):null,p=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-geo-frame"+(t.className?" "+t.className:""),width:a[0],height:a[1]},f.createElement("g",{transform:`translate(${null!==(o=c.left)&&void 0!==o?o:0},${null!==(s=c.top)&&void 0!==s?s:0})`},g,d),y);return Ut.renderToStaticMarkup(p)}exports.renderGeoToStaticSVG=function(t){return oe(t)},exports.renderNetworkToStaticSVG=function(t){return re(t)},exports.renderOrdinalToStaticSVG=function(t){return ne(t)},exports.renderToStaticSVG=function(t,e){switch(t){case"xy":return te(e);case"ordinal":return ne(e);case"network":return re(e);case"geo":return oe(e);default:throw Error(`Unknown frame type: ${t}. Must be "xy", "ordinal", "network", or "geo".`)}},exports.renderXYToStaticSVG=function(t){return te(t)};
1
+ "use strict";const t=require("react"),e=require("d3-scale"),i=require("d3-quadtree"),n=require("d3-scale-chromatic"),r=require("d3-array"),o=require("d3-interpolate"),s=require("d3-force"),a=require("d3-chord"),c=require("d3-shape"),l=require("d3-hierarchy"),u=require("d3-geo");function h(t){if(t&&t.__esModule)return t;const e=Object.create(null);if(t)for(const i in t)if("default"!==i){const n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,n.get?n:{enumerable:!0,get:function(){return t[i]}})}return e.default=t,Object.freeze(e)}const f=h(t);class d{constructor(t){if(this._capacity=t,this.head=0,this._size=0,1>t)throw Error("RingBuffer capacity must be at least 1");this.buffer=Array(t)}push(t){let e;return this._size===this._capacity?e=this.buffer[this.head]:this._size++,this.buffer[this.head]=t,this.head=(this.head+1)%this._capacity,e}pushMany(t){const e=[];for(const i of t){const t=this.push(i);void 0!==t&&e.push(t)}return e}get(t){if(t>=0&&this._size>t)return this.buffer[(this.head-this._size+t+this._capacity)%this._capacity]}peek(){if(0!==this._size)return this.buffer[(this.head-1+this._capacity)%this._capacity]}peekOldest(){if(0!==this._size)return this.buffer[(this.head-this._size+this._capacity)%this._capacity]}[Symbol.iterator](){let t=0;const e=this;return{next:()=>e._size>t?{done:!1,value:e.get(t++)}:{done:!0,value:void 0}}}forEach(t){const e=(this.head-this._size+this._capacity)%this._capacity;for(let i=0;this._size>i;i++)t(this.buffer[(e+i)%this._capacity],i)}toArray(){const t=Array(this._size),e=(this.head-this._size+this._capacity)%this._capacity;for(let i=0;this._size>i;i++)t[i]=this.buffer[(e+i)%this._capacity];return t}resize(t){if(1>t)throw Error("RingBuffer capacity must be at least 1");const e=this.toArray(),i=[];for(;e.length>t;)i.push(e.shift());this._capacity=t,this.buffer=Array(t),this.head=0,this._size=0;for(const t of e)this.push(t);return i}clear(){this.buffer=Array(this._capacity),this.head=0,this._size=0}get size(){return this._size}get capacity(){return this._capacity}get full(){return this._size===this._capacity}}class g{constructor(){this._min=1/0,this._max=-1/0,this._dirty=!1}push(t){Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}evict(t){t!==this._min&&t!==this._max||(this._dirty=!0)}recalculate(t,e){this._min=1/0,this._max=-1/0;for(const i of t){const t=e?e(i):i;Number.isNaN(t)||(this._min>t&&(this._min=t),t>this._max&&(this._max=t))}this._dirty=!1}clear(){this._min=1/0,this._max=-1/0,this._dirty=!1}get extent(){return[this._min,this._max]}get min(){return this._min}get max(){return this._max}get dirty(){return this._dirty}}function y(t,e,i,n,r){const o=new Map;for(const s of t){const t=e(s),a=i(s);if(null==t||null==a||Number.isNaN(t)||Number.isNaN(a))continue;const c=Math.floor(t/n)*n;let l=o.get(c);if(l||(l={start:c,end:c+n,total:0,categories:new Map},o.set(c,l)),l.total+=a,r){const t=r(s);l.categories.set(t,(l.categories.get(t)||0)+a)}}return o}function p(t,e){return t===e||typeof t==typeof e&&"function"==typeof t&&"function"==typeof e&&""+t==""+e}function m(t,e){if("function"==typeof t)return e=>+t(e);const i=t||e;return t=>+t[i]}function v(t,e){if("function"==typeof t)return t;const i=t||e;return t=>t[i]}function x(t,e){return"function"==typeof t?t:t?e=>e[t]+"":e?t=>t[e]+"":void 0}const b=["#4e79a7","#f28e2b","#e15759","#76b7b2","#59a14f","#edc948","#b07aa1","#ff9da7","#9c755f","#bab0ac"];function k(t,e,i){var n,r,o;if(1>=i)return 1;const s=null!==(n=t.minOpacity)&&void 0!==n?n:.1,a=i-1-e;switch(t.type){case"linear":return s+(1-a/(i-1))*(1-s);case"exponential":{const e=null!==(r=t.halfLife)&&void 0!==r?r:i/2;return s+Math.pow(.5,a/e)*(1-s)}case"step":return(null!==(o=t.stepThreshold)&&void 0!==o?o:.5*i)>a?1:s;default:return 1}}function w(t,e,i){var n;const r=null!==(n=t.duration)&&void 0!==n?n:500,o=i-e;return r>o?1-o/r:0}function _(t,e="ease-out-cubic"){return"linear"===e?t:1-Math.pow(1-t,3)}function A(t,e){return Math.min((t-e.startTime)/e.duration,1)}function P(t,e,i){return t+(e-t)*i}function M(){return"undefined"!=typeof performance?performance.now():Date.now()}function S(t,e,i){var n,r,o,s;switch(e.type){case"point":if(e.pointId)return"p:"+e.pointId;if("streaming"===t.runtimeMode&&e.datum){const i=t.getX(e.datum),n=t.getY(e.datum);if(t.getCategory)return`p:${t.getCategory(e.datum)}:${i}:${n}`;if(null!=i&&null!=n)return`p:${i}:${n}`}return"p:"+i;case"rect":return`r:${e.group||""}:${null!==(s=null!==(r=null===(n=e.datum)||void 0===n?void 0:n.binStart)&&void 0!==r?r:null===(o=e.datum)||void 0===o?void 0:o.category)&&void 0!==s?s:i}`;case"heatcell":return`h:${e.x}_${e.y}`;case"candlestick":return null==e.datum?"c:"+i:"c:"+t.getX(e.datum);case"line":return"l:"+(e.group||"_default");case"area":return"a:"+(e.group||"_default");default:return null}}function E(t,e,i,n,r,o){const s=[];for(const r of t){const t=i(r),o=n(r);null==t||null==o||Number.isNaN(t)||Number.isNaN(o)||s.push({px:e.x(t),py:e.y(o),rawY:o,d:r})}s.sort((t,e)=>t.px-e.px);const a=Array(s.length),c=Array(s.length),l=Array(s.length);for(let t=0;s.length>t;t++){const e=s[t];a[t]=[e.px,e.py],c[t]=e.rawY,l[t]=e.d}return{type:"line",path:a,rawValues:c,style:r,datum:l,group:o}}function L(t,e,i,n,r,o,s,a){const c=[];for(const o of t){const t=i(o),s=n(o);if(null==t||null==s||Number.isNaN(t)||Number.isNaN(s))continue;const l=e.x(t),u=a?a(o):r;c.push({px:l,topY:e.y(s),botY:e.y(u)})}c.sort((t,e)=>t.px-e.px);const l=Array(c.length),u=Array(c.length);for(let t=0;c.length>t;t++){const e=c[t];l[t]=[e.px,e.topY],u[t]=[e.px,e.botY]}return{type:"area",topPath:l,bottomPath:u,style:o,datum:t,group:s}}function D(t,e,i,n,r,o,s){const a=i(t),c=n(t);if(null==a||null==c||Number.isNaN(a)||Number.isNaN(c))return null;const l={type:"point",x:e.x(a),y:e.y(c),r:r,style:o,datum:t};return void 0!==s&&(l.pointId=s),l}function O(t,e,i,n,r,o,s){return{type:"rect",x:t,y:e,w:i,h:n,style:r,datum:o,group:s}}function N(t,e,i,n,r,o,s){const a={type:"heatcell",x:t,y:e,w:i,h:n,fill:r,datum:o};return(null==s?void 0:s.showValues)&&(a.showValues=!0,a.value=s.value,s.valueFormat&&(a.valueFormat=s.valueFormat)),a}function $(t,e,i){if(!t.getBounds||!t.scales)return null;const n=[],r=[];for(const i of e){const e=t.getX(i),o=t.getY(i);if(null==e||null==o||Number.isNaN(e)||Number.isNaN(o))continue;const s=t.getBounds(i),a=t.scales.x(e);if(s&&0!==s)n.push([a,t.scales.y(o+s)]),r.push([a,t.scales.y(o-s)]);else{const e=t.scales.y(o);n.push([a,e]),r.push([a,e])}}return 2>n.length?null:{type:"area",topPath:n,bottomPath:r,style:t.resolveBoundsStyle(i,e[0]),datum:e,group:i,interactive:!1}}function T(t,e,i,n){var r;if(!t.config.pointStyle)return;const o=null!=n?n:t.getY;for(const n of e){const e=t.resolveGroupColor(n.key);for(const s of n.data){let n=t.config.pointStyle(s);!n.fill&&e&&(n=Object.assign(Object.assign({},n),{fill:e}));const a=null!==(r=n.r)&&void 0!==r?r:3,c=t.getPointId?t.getPointId(s)+"":void 0,l=D(s,t.scales,t.getX,o,a,n,c);l&&i.push(l)}}}const W={blues:n.interpolateBlues,reds:n.interpolateReds,greens:n.interpolateGreens,viridis:n.interpolateViridis};class j{constructor(t){this.xExtent=new g,this.yExtent=new g,this.timestampBuffer=null,this.activeTransition=null,this.prevPositionMap=new Map,this.prevPathMap=new Map,this.exitNodes=[],this.lastIngestTime=0,this._colorMapCache=null,this._groupColorMap=new Map,this._barCategoryCache=null,this._binBoundaries=[],this._stackExtentCache=null,this._ingestVersion=0,this._bufferArrayCache=null,this._bufferDirty=!0,this.needsFullRebuild=!0,this.lastLayout=null,this.scales=null,this.scene=[],this.version=0,this.xIsDate=!1,this._quadtree=null,this.config=t,this.buffer=new d(t.windowSize),this.growingCap=t.windowSize,["bar","swarm","waterfall"].includes(t.chartType)||"streaming"===t.runtimeMode?(this.getX=m(t.timeAccessor||t.xAccessor,"time"),this.getY=m(t.valueAccessor||t.yAccessor,"value")):(this.getX=m(t.xAccessor,"x"),this.getY=m(t.yAccessor,"y")),this.getGroup=x(t.groupAccessor),this.getCategory=x(t.categoryAccessor),this.getSize=t.sizeAccessor?m(t.sizeAccessor,"size"):void 0,this.getColor=x(t.colorAccessor),this.getBounds=t.boundsAccessor?m(t.boundsAccessor,"bounds"):void 0,this.getY0=t.y0Accessor?m(t.y0Accessor,"y0"):void 0,this.getPointId=x(t.pointIdAccessor),"candlestick"===t.chartType&&(this.getOpen=m(t.openAccessor,"open"),this.getHigh=m(t.highAccessor,"high"),this.getLow=m(t.lowAccessor,"low"),this.getClose=m(t.closeAccessor,"close")),t.pulse&&(this.timestampBuffer=new d(t.windowSize))}ingest(t){const e="undefined"!=typeof performance?performance.now():Date.now();if(this.lastIngestTime=e,this.needsFullRebuild=!0,this._bufferDirty=!0,this._ingestVersion++,t.bounded){if(this.buffer.clear(),this.xExtent.clear(),this.yExtent.clear(),this.timestampBuffer&&this.timestampBuffer.clear(),this.getX=["bar","swarm","waterfall"].includes(this.config.chartType)||"streaming"===this.config.runtimeMode?m(this.config.timeAccessor||this.config.xAccessor,"time"):m(this.config.xAccessor,"x"),this.xIsDate=!1,t.inserts.length>0){const e=t.inserts[0],i=this.config.xAccessor,n="function"==typeof i?i(e):e[i||"x"],r=n instanceof Date,o="string"==typeof n&&n.length>=10&&!isNaN(new Date(n).getTime())&&isNaN(Number(n));if(this.xIsDate=r||o,o){const t="string"==typeof i?i:void 0;this.getX=t?e=>+new Date(e[t]):t=>+(i(t)instanceof Date?i(t):new Date(i(t)))}}const i=t.totalSize||t.inserts.length;i>this.buffer.capacity&&(this.buffer.resize(i),this.timestampBuffer&&i>this.timestampBuffer.capacity&&this.timestampBuffer.resize(i));for(const i of t.inserts)this.buffer.push(i),this.timestampBuffer&&this.timestampBuffer.push(e),this.xExtent.push(this.getX(i)),"candlestick"===this.config.chartType&&this.getHigh&&this.getLow?(this.yExtent.push(this.getHigh(i)),this.yExtent.push(this.getLow(i))):(this.yExtent.push(this.getY(i)),this.getY0&&this.yExtent.push(this.getY0(i)))}else for(const i of t.inserts){if("growing"===this.config.windowMode&&this.buffer.full){const t=this.config.maxCapacity||1e6;t>this.growingCap&&(this.growingCap=Math.min(2*this.growingCap,t),this.buffer.resize(this.growingCap),this.timestampBuffer&&this.timestampBuffer.resize(this.growingCap))}const t=this.buffer.push(i);this.timestampBuffer&&this.timestampBuffer.push(e),this.xExtent.push(this.getX(i)),"candlestick"===this.config.chartType&&this.getHigh&&this.getLow?(this.yExtent.push(this.getHigh(i)),this.yExtent.push(this.getLow(i))):(this.yExtent.push(this.getY(i)),this.getY0&&this.yExtent.push(this.getY0(i))),null!=t&&(this.xExtent.evict(this.getX(t)),"candlestick"===this.config.chartType&&this.getHigh&&this.getLow?(this.yExtent.evict(this.getHigh(t)),this.yExtent.evict(this.getLow(t))):this.yExtent.evict(this.getY(t)))}return!0}computeScene(t){var i,n,r,o,s,a;const{config:c,buffer:l}=this;if(!this.needsFullRebuild&&this.lastLayout&&this.scene.length>0&&this.scales&&(this.lastLayout.width!==t.width||this.lastLayout.height!==t.height))return void this.remapScene(t);if(this.xExtent.dirty&&this.xExtent.recalculate(l,this.getX),this.yExtent.dirty)if("candlestick"===c.chartType&&this.getHigh&&this.getLow){this.yExtent.clear();for(const t of l)this.yExtent.push(this.getHigh(t)),this.yExtent.push(this.getLow(t))}else this.yExtent.recalculate(l,this.getY);const u=this.getBufferArray(),h=this.xExtent.extent,f=this.yExtent.extent;let d=c.xExtent?[null!==(i=c.xExtent[0])&&void 0!==i?i:h[0],null!==(n=c.xExtent[1])&&void 0!==n?n:h[1]]:h,g=c.yExtent?[null!==(r=c.yExtent[0])&&void 0!==r?r:f[0],null!==(o=c.yExtent[1])&&void 0!==o?o:f[1]]:f;const p=c.yExtent&&null!=c.yExtent[0]&&null!=c.yExtent[1];if("stackedarea"===c.chartType&&!p&&l.size>0)if(c.normalize)g=[0,1+c.extentPadding];else{const t=`${l.size}:${this._ingestVersion}`;if(this._stackExtentCache&&this._stackExtentCache.key===t)g=this._stackExtentCache.yDomain;else{const e=this.groupData(u),i=new Map;for(const t of e)for(const e of t.data){const t=this.getX(e),n=this.getY(e);null==t||null==n||Number.isNaN(t)||Number.isNaN(n)||i.set(t,(i.get(t)||0)+n)}let n=0;for(const t of i.values())t>n&&(n=t);g=[0,n+(n>0?n*c.extentPadding:1)],this._stackExtentCache={key:t,yDomain:g}}}else if("bar"===c.chartType&&c.binSize&&!p&&l.size>0){const[,t]=function(t,e,i,n,r){const o=y(t,e,i,n,r);if(0===o.size)return[0,0];let s=0;for(const t of o.values())t.total>s&&(s=t.total);return[0,s]}(l,this.getX,this.getY,c.binSize,this.getCategory);g=[0,t+t*c.extentPadding]}else if("waterfall"===c.chartType&&!p&&l.size>0){const[t,e]=function(t,e){let i=0,n=0,r=0;for(const o of t){const t=e(o);null==t||Number.isNaN(t)||(r+=t,i>r&&(i=r),r>n&&(n=r))}return[i,n]}(l,this.getY),i=e-t,n=i>0?i*c.extentPadding:1;g=[Math.min(0,t-Math.abs(n)),Math.max(0,e+Math.abs(n))]}else if(!p&&g[0]!==1/0){if(this.getBounds)for(const t of u){const e=this.getY(t),i=this.getBounds(t);null!=e&&!Number.isNaN(e)&&i&&(e+i>g[1]&&(g[1]=e+i),g[0]>e-i&&(g[0]=e-i))}const t=g[1]-g[0],e=t>0?t*c.extentPadding:1,i=null===(s=c.yExtent)||void 0===s?void 0:s[0],n=null===(a=c.yExtent)||void 0===a?void 0:a[1];g=[null!=i?g[0]:g[0]-e,null!=n?g[1]:g[1]+e],"log"===c.yScaleType&&0>=g[0]&&f[0]>0&&(g[0]=null!=i?g[0]:f[0]/(1+c.extentPadding))}if(d[0]!==1/0&&d[1]!==-1/0||(d=[0,1]),g[0]!==1/0&&g[1]!==-1/0||(g=[0,1]),"streaming"===c.runtimeMode)if("x"==("up"===(m=c.arrowOfTime)||"down"===m?"y":"x")){const i="right"===c.arrowOfTime?[0,t.width]:[t.width,0];this.scales={x:e.scaleLinear().domain(d).range(i),y:e.scaleLinear().domain(g).range([t.height,0])}}else{const i="down"===c.arrowOfTime?[0,t.height]:[t.height,0];this.scales={x:e.scaleLinear().domain(g).range([0,t.width]),y:e.scaleLinear().domain(d).range(i)}}else{const i=(t,i,n)=>{if("log"===t){const t=[Math.max(i[0],1e-6),Math.max(i[1],1e-6)];return e.scaleLog().domain(t).range(n).clamp(!0)}return e.scaleLinear().domain(i).range(n)};this.scales={x:i(c.xScaleType,d,[0,t.width]),y:i(c.yScaleType,g,[t.height,0])}}var m;this.config.transition&&this.scene.length>0&&this.snapshotPositions(),this.scene=this.buildSceneNodes(t,u),this.config.decay&&this.applyDecay(this.scene,u),this.config.pulse&&this.applyPulse(this.scene,u),this.config.transition&&(this.prevPositionMap.size>0||this.prevPathMap.size>0)&&this.startTransition(),this.rebuildQuadtree(),this.needsFullRebuild=!1,this.lastLayout={width:t.width,height:t.height},this.version++}rebuildQuadtree(){const t=this.config.chartType;if("scatter"!==t&&"bubble"!==t)return void(this._quadtree=null);const e=this.scene.filter(t=>"point"===t.type);this._quadtree=e.length>j.QUADTREE_THRESHOLD?i.quadtree().x(t=>t.x).y(t=>t.y).addAll(e):null}get quadtree(){return this._quadtree}remapScene(t){const i=t.width/this.lastLayout.width,n=t.height/this.lastLayout.height;for(const t of this.scene)switch(t.type){case"line":for(const e of t.path)e[0]*=i,e[1]*=n;break;case"area":for(const e of t.topPath)e[0]*=i,e[1]*=n;for(const e of t.bottomPath)e[0]*=i,e[1]*=n;break;case"point":t.x*=i,t.y*=n;break;case"rect":case"heatcell":t.x*=i,t.y*=n,t.w*=i,t.h*=n;break;case"candlestick":t.x*=i,t.openY*=n,t.closeY*=n,t.highY*=n,t.lowY*=n}const r=this.scales.x.domain(),o=this.scales.y.domain(),s=this.scales.x.range(),a=this.scales.y.range(),c=(t,i,n)=>{if("log"===t){const t=[Math.max(i[0],1e-6),Math.max(i[1],1e-6)];return e.scaleLog().domain(t).range(n).clamp(!0)}return e.scaleLinear().domain(i).range(n)};this.scales={x:c(this.config.xScaleType,r,[s[0]*i,s[1]*i]),y:c(this.config.yScaleType,o,[a[0]*n,a[1]*n])},this.lastLayout={width:t.width,height:t.height},this.rebuildQuadtree(),this.version++}buildSceneNodes(t,i){var r;const{config:o,scales:s}=this;if(!s||0===i.length)return[];const a={scales:s,config:o,getX:this.getX,getY:this.getY,getY0:this.getY0,getSize:this.getSize,getColor:this.getColor,getGroup:this.getGroup,getCategory:this.getCategory,getPointId:this.getPointId,getBounds:this.getBounds,getOpen:this.getOpen,getHigh:this.getHigh,getLow:this.getLow,getClose:this.getClose,resolveLineStyle:(t,e)=>this.resolveLineStyle(t,e),resolveAreaStyle:(t,e)=>this.resolveAreaStyle(t,e),resolveBoundsStyle:(t,e)=>this.resolveBoundsStyle(t,e),resolveColorMap:t=>this.resolveColorMap(t),resolveGroupColor:t=>this.resolveGroupColor(t),groupData:t=>this.groupData(t),barCategoryCache:this._barCategoryCache};switch(o.chartType){case"line":return function(t,e){var i;const n=t.groupData(e),r=[],o=null===(i=t.config.annotations)||void 0===i?void 0:i.filter(t=>"threshold"===t.type&&t.color).map(t=>({value:t.value,color:t.color,thresholdType:t.thresholdType||"greater"}));if(t.getBounds)for(const e of n){const i=$(t,e.data,e.key);i&&r.push(i)}for(const e of n){const i=t.resolveLineStyle(e.key,e.data[0]),n=E(e.data,t.scales,t.getX,t.getY,i,e.key);o&&o.length>0&&(n.colorThresholds=o),t.config.curve&&"linear"!==t.config.curve&&(n.curve=t.config.curve),r.push(n)}return T(t,n,r),r}(a,i);case"area":return function(t,e){const i=t.groupData(e),n=[],r=t.scales.y.domain()[0],o=t.getY0?e=>{const i=t.getY0(e);return null==i?r:i}:void 0;for(const e of i){const i=t.resolveAreaStyle(e.key,e.data[0]),s=L(e.data,t.scales,t.getX,t.getY,r,i,e.key,o);t.config.gradientFill&&(s.fillGradient=t.config.gradientFill),t.config.curve&&"linear"!==t.config.curve&&(s.curve=t.config.curve),n.push(s)}return T(t,i,n),n}(a,i);case"stackedarea":return function(t,e){const i=t.groupData(e);i.sort((t,e)=>e.key>t.key?-1:t.key>e.key?1:0);const n=t.config.curve&&"linear"!==t.config.curve?t.config.curve:void 0,{nodes:r,stackedTops:o}=function(t,e,i,n,r,o,s){var a;const c=new Set;for(const e of t)for(const t of e.data){const e=i(t);null==e||Number.isNaN(e)||c.add(e)}const l=Array.from(c).sort((t,e)=>t-e),u=new Map;for(const e of t){const t=new Map;for(const r of e.data){const e=i(r),o=n(r);null==e||null==o||Number.isNaN(e)||Number.isNaN(o)||t.set(e,(t.get(e)||0)+o)}u.set(e.key,t)}let h;if(o){h=new Map;for(const e of l){let i=0;for(const n of t)i+=(null===(a=u.get(n.key))||void 0===a?void 0:a.get(e))||0;h.set(e,i||1)}}const f=[],d=new Map,g=new Map;for(const t of l)g.set(t,0);for(const i of t){const t=u.get(i.key),n=[],a=[],c=new Map;for(const i of l){let r=t.get(i)||0;const s=g.get(i);o&&(r/=h.get(i));const l=s+r,u=e.x(i);a.push([u,e.y(s)]),n.push([u,e.y(l)]),g.set(i,l),c.set(i,l)}d.set(i.key,c);const y={type:"area",topPath:n,bottomPath:a,style:r(i.key,i.data[0]),datum:i.data,group:i.key};s&&(y.curve=s),f.push(y)}return{nodes:f,stackedTops:d}}(i,t.scales,t.getX,t.getY,(e,i)=>t.resolveAreaStyle(e,i),t.config.normalize,n),s=r;if(t.config.pointStyle){const e=new WeakMap;for(const n of i){const i=o.get(n.key);if(i)for(const r of n.data){const n=t.getX(r),o=t.getY(r);null==n||Number.isNaN(n)||null==o||Number.isNaN(o)||!i.has(n)||e.set(r,i.get(n))}}const n=i=>{var n;return null!==(n=e.get(i))&&void 0!==n?n:t.getY(i)};T(t,i,s,n)}return s}(a,i);case"scatter":case"bubble":return function(t,e){const i=[],n="bubble"===t.config.chartType?10:5,r=t.config.sizeRange||[3,15];let o=null;if(t.getSize&&!t.config.pointStyle){const i=e.map(e=>t.getSize(e)).filter(t=>null!=t&&!Number.isNaN(t));if(i.length>0){let t=1/0,e=-1/0;for(const n of i)t>n&&(t=n),n>e&&(e=n);o=i=>t===e?(r[0]+r[1])/2:r[0]+(i-t)/(e-t)*(r[1]-r[0])}}const s=t.getColor?t.resolveColorMap(e):null;for(const r of e){let e=t.config.pointStyle?t.config.pointStyle(r):{fill:"#4e79a7",opacity:.8},a=e.r||n;if(o&&t.getSize){const e=t.getSize(r);null==e||Number.isNaN(e)||(a=o(e))}if(s&&t.getColor&&!e.fill){const i=t.getColor(r);i&&s.has(i)&&(e=Object.assign(Object.assign({},e),{fill:s.get(i)}))}const c=t.getPointId?t.getPointId(r)+"":void 0,l=D(r,t.scales,t.getX,t.getY,a,e,c);l&&i.push(l)}return i}(a,i);case"heatmap":return function(t,i,r){if(t.config.heatmapAggregation)return function(t,e,i){var n,r,o;const s=[],a=Math.max(1,Math.floor(null!==(n=t.config.heatmapXBins)&&void 0!==n?n:20)),c=Math.max(1,Math.floor(null!==(r=t.config.heatmapYBins)&&void 0!==r?r:20)),l=null!==(o=t.config.heatmapAggregation)&&void 0!==o?o:"count",u=m(t.config.valueAccessor,"value");if(!t.scales||0===e.length)return s;const[h,f]=t.scales.x.domain(),[d,g]=t.scales.y.domain(),y=(f-h||1)/a,p=(g-d||1)/c,v=new Map;for(const i of e){const e=t.getX(i),n=t.getY(i);if(!isFinite(e)||!isFinite(n))continue;const r=Math.min(Math.floor((e-h)/y),a-1),o=Math.min(Math.floor((n-d)/p),c-1);if(0>r||0>o)continue;const s=u(i),l=`${r}_${o}`;let f=v.get(l);f||(f={sum:0,count:0,data:[]},v.set(l,f)),f.count++,f.sum+=isFinite(s)?s:0,f.data.push(i)}let x=1/0,b=-1/0;const k=new Map;for(const[t,e]of v){let i;switch(l){case"sum":i=e.sum;break;case"mean":i=e.count>0?e.sum/e.count:0;break;default:i=e.count}k.set(t,i),x>i&&(x=i),i>b&&(b=i)}const w=b-x||1,_=i.width/a,A=i.height/c;for(const[e,i]of k){const[n,r]=e.split("_"),o=+n,a=+r,l=(i-x)/w,u=`rgb(${Math.round(220-180*l)},${Math.round(220-100*l)},${Math.round(255-50*l)})`,h=v.get(e);s.push(N(o*_,(c-1-a)*A,_,A,u,{xi:o,yi:a,value:i,count:h.count,sum:h.sum,data:h.data},t.config.showValues?{value:i,showValues:!0,valueFormat:t.config.heatmapValueFormat}:void 0))}return s}(t,i,r);const o=[],s=m(t.config.valueAccessor,"value"),a=v(t.config.xAccessor,"x"),c=v(t.config.yAccessor,"y"),l=new Set,u=new Set;for(const t of i)l.add(a(t)),u.add(c(t));const h=Array.from(l),f=Array.from(u),d=h.every(t=>"number"==typeof t&&!isNaN(t)),g=f.every(t=>"number"==typeof t&&!isNaN(t)),y=d?h.sort((t,e)=>t-e):h,p=g?f.sort((t,e)=>t-e):f;if(0===y.length||0===p.length)return o;const x=r.width/y.length,b=r.height/p.length,k=new Map;for(const t of i){const e=`${a(t)}\0${c(t)}`;k.set(e,{val:s(t),datum:t})}let w=1/0,_=-1/0;for(const{val:t}of k.values())isFinite(t)&&(w>t&&(w=t),t>_&&(_=t));if(!isFinite(w)||!isFinite(_))return o;const A=e.scaleSequential(W["string"==typeof t.config.colorScheme?t.config.colorScheme:"blues"]||n.interpolateBlues).domain([w,_]);for(let e=0;y.length>e;e++)for(let i=0;p.length>i;i++){const n=k.get(`${y[e]}\0${p[i]}`);if(!n||!isFinite(n.val))continue;const r=A(n.val);o.push(N(e*x,(p.length-1-i)*b,x,b,r,n.datum,t.config.showValues?{value:n.val,showValues:!0,valueFormat:t.config.heatmapValueFormat}:void 0))}return o}(a,i,t);case"bar":{const t=function(t,e){var i;if(!t.config.binSize)return{nodes:[],binBoundaries:[]};const n=y(e,t.getX,t.getY,t.config.binSize,t.getCategory);if(0===n.size)return{nodes:[],binBoundaries:[]};let r=null;if(t.getCategory){const e=new Set;for(const t of n.values())for(const i of t.categories.keys())e.add(i);const i=t.config.barColors?Object.keys(t.config.barColors):[],o=new Set(i),s=Array.from(e).filter(t=>!o.has(t)).sort(),a=i.filter(t=>e.has(t)),c=a.join("\0")+""+s.join("\0");t.barCategoryCache&&t.barCategoryCache.key===c?r=t.barCategoryCache.order:(r=[...a,...s],t.barCategoryCache={key:c,order:r})}const o=[],s=t.scales,[a,c]=s.x.domain();for(const e of n.values()){const n=Math.max(e.start,a),l=Math.min(e.end,c);if(n>=l)continue;const u=s.x(n),h=s.x(l),f=Math.abs(h-u),d=f>2?1:0,g=Math.min(u,h)+d/2,y=Math.max(f-d,1);if(y>0)if(r&&e.categories.size>0){let n=0;for(const a of r){const r=e.categories.get(a)||0;if(0===r)continue;const c=s.y(n),l=s.y(n+r);o.push(O(g,Math.min(c,l),y,Math.abs(c-l),{fill:(null===(i=t.config.barColors)||void 0===i?void 0:i[a])||"#4e79a7"},{binStart:e.start,binEnd:e.end,total:e.total,category:a,categoryValue:r},a)),n+=r}}else{const t=s.y(0),i=s.y(e.total);o.push(O(g,Math.min(t,i),y,Math.abs(t-i),{fill:"#007bff"},{binStart:e.start,binEnd:e.end,total:e.total}))}}const l=new Set;for(const t of n.values())l.add(t.start),l.add(t.end);return{nodes:o,binBoundaries:Array.from(l).sort((t,e)=>t-e)}}(a,i);return this._barCategoryCache=null!==(r=a.barCategoryCache)&&void 0!==r?r:null,this._binBoundaries=t.binBoundaries,t.nodes}case"swarm":return function(t,e){var i,n,r,o;const s=[],a=t.config.swarmStyle||{},c=null!==(i=a.radius)&&void 0!==i?i:3,l=null!==(n=a.fill)&&void 0!==n?n:"#007bff",u=null!==(r=a.opacity)&&void 0!==r?r:.7,h=a.stroke,f=a.strokeWidth;for(const i of e){const e=t.getX(i),n=t.getY(i);if(null==n||Number.isNaN(n))continue;const r=t.scales.x(e),a=t.scales.y(n);let d=l;if(t.getCategory){const e=t.getCategory(i);d=(null===(o=t.config.barColors)||void 0===o?void 0:o[e])||d}const g={type:"point",x:r,y:a,r:c,style:{fill:d,opacity:u,stroke:h,strokeWidth:f},datum:i};t.getPointId&&(g.pointId=t.getPointId(i)+""),s.push(g)}return s}(a,i);case"waterfall":return function(t,e,i){var n,r,o;const s=[],a=t.scales,c=t.config.waterfallStyle,l=e.filter(e=>{const i=t.getY(e),n=t.getX(e);return null!=i&&!Number.isNaN(i)&&null!=n&&isFinite(n)});if(0===l.length)return s;const u=null!==(n=null==c?void 0:c.positiveColor)&&void 0!==n?n:"#28a745",h=null!==(r=null==c?void 0:c.negativeColor)&&void 0!==r?r:"#dc3545",f=null!==(o=null==c?void 0:c.gap)&&void 0!==o?o:1,d=null==c?void 0:c.stroke,g=null==c?void 0:c.strokeWidth;let y=0;for(let e=0;l.length>e;e++){const n=l[e],r=t.getX(n),o=t.getY(n),p=y+o;let m;m=l.length-1>e?t.getX(l[e+1])-r:e>0?r-t.getX(l[e-1]):0;const v=a.x(r),x=0!==m?a.x(r+m):v+i.width/10,b=Math.min(v,x)+f/2,k=Math.max(v,x)-f/2-b;if(0>=k){y=p;continue}const w=a.y(y),_=a.y(p);s.push(O(b,Math.min(w,_),k,Math.abs(w-_),{fill:0>o?h:u,stroke:d,strokeWidth:g},Object.assign(Object.assign({},n),{baseline:y,cumEnd:p,delta:o,_connectorStroke:null==c?void 0:c.connectorStroke,_connectorWidth:null==c?void 0:c.connectorWidth}))),y=p}return s}(a,i,t);case"candlestick":return function(t,e){if(!(t.getOpen&&t.getHigh&&t.getLow&&t.getClose&&t.scales))return[];const i=[],n=t.config.candlestickStyle||{},r=n.upColor||"#28a745",o=n.downColor||"#dc3545",s=n.wickColor||"#333",a=n.wickWidth||1,c=e.map(e=>t.getX(e)).filter(t=>null!=t&&!Number.isNaN(t)).sort((t,e)=>t-e);let l=n.bodyWidth||6;if(!n.bodyWidth&&c.length>1){let e=1/0;for(let i=1;c.length>i;i++){const n=Math.abs(t.scales.x(c[i])-t.scales.x(c[i-1]));n>0&&e>n&&(e=n)}e!==1/0&&(l=Math.max(2,Math.min(.6*e,20)))}for(const n of e){const e=t.getX(n);if(null==e||Number.isNaN(e))continue;const c=t.getOpen(n),u=t.getHigh(n),h=t.getLow(n),f=t.getClose(n);if([c,u,h,f].some(t=>null==t||Number.isNaN(t)))continue;const d=f>=c;i.push({type:"candlestick",x:t.scales.x(e),openY:t.scales.y(c),closeY:t.scales.y(f),highY:t.scales.y(u),lowY:t.scales.y(h),bodyWidth:l,upColor:r,downColor:o,wickColor:s,wickWidth:a,isUp:d,datum:n})}return i}(a,i);default:return[]}}resolveBoundsStyle(t,e){const i=this.config.boundsStyle;return"function"==typeof i?i(e||{},t):i&&"object"==typeof i?i:{fill:this.resolveLineStyle(t,e).stroke||"#4e79a7",fillOpacity:.2,stroke:"none"}}computeDecayOpacity(t,e){const i=this.config.decay;return i&&e>1?k(i,t,e):1}applyDecay(t,e){this.config.decay&&function(t,e,i){var n,r;const o=i.length;if(1>=o)return;const s=new Map;for(let t=0;i.length>t;t++)s.set(i[t],t);for(const i of e){if("line"===i.type){const e=Array.isArray(i.datum)?i.datum:[];if(2>e.length)continue;const n=Array(e.length);let r=!1;for(let i=0;e.length>i;i++){const a=s.get(e[i]);null!=a?(n[i]=k(t,a,o),1>n[i]&&(r=!0)):n[i]=1}r&&(i._decayOpacities=n);continue}if("area"===i.type){const e=Array.isArray(i.datum)?i.datum:[],n=i.topPath?i.topPath.length:e.length;if(2>n)continue;if(e.length===n){const r=Array(n);let a=!1;for(let i=0;e.length>i;i++){const n=s.get(e[i]);null!=n?(r[i]=k(t,n,o),1>r[i]&&(a=!0)):r[i]=1}a&&(i._decayOpacities=r)}else{let r=1;for(const i of e){const e=s.get(i);if(null!=e){const i=k(t,e,o);r>i&&(r=i)}}if(1>r){const t=Array(n);t.fill(r),i._decayOpacities=t}}continue}const e=s.get(i.datum);if(null==e)continue;const a=k(t,e,o);if("heatcell"===i.type)i.style={opacity:a};else if("candlestick"===i.type)i._decayOpacity=a;else{const t=null!==(r=null===(n=i.style)||void 0===n?void 0:n.opacity)&&void 0!==r?r:1;i.style=Object.assign(Object.assign({},i.style),{opacity:t*a})}}}(this.config.decay,t,e)}applyPulse(t,e){this.config.pulse&&this.timestampBuffer&&function(t,e,i,n){var r,o;const s="undefined"!=typeof performance?performance.now():Date.now(),a=null!==(r=t.color)&&void 0!==r?r:"rgba(255,255,255,0.6)",c=null!==(o=t.glowRadius)&&void 0!==o?o:4,l=new Map;for(let t=0;i.length>t;t++)l.set(i[t],t);for(const i of e){if("line"===i.type)continue;if("area"===i.type){const e=Array.isArray(i.datum)?i.datum:[i.datum];let r=0;for(const i of e){const e=l.get(i);if(null==e)continue;const o=n.get(e);if(null==o)continue;const a=w(t,o,s);a>r&&(r=a)}r>0&&(i._pulseIntensity=r,i._pulseColor=a);continue}const e=l.get(i.datum);if(null==e)continue;const r=n.get(e);if(null==r)continue;const o=w(t,r,s);o>0&&(i._pulseIntensity=o,i._pulseColor=a,i._pulseGlowRadius=c)}}(this.config.pulse,t,e,this.timestampBuffer)}get hasActivePulses(){return!!this.config.pulse&&function(t,e){var i;if(!e||0===e.size)return!1;const n="undefined"!=typeof performance?performance.now():Date.now(),r=null!==(i=t.duration)&&void 0!==i?i:500,o=e.peek();return null!=o&&r>n-o}(this.config.pulse,this.timestampBuffer)}get transitionContext(){return{runtimeMode:this.config.runtimeMode,getX:this.getX,getY:this.getY,getCategory:this.getCategory}}snapshotPositions(){!function(t,e,i,n){var r,o,s;i.clear(),n.clear();for(let a=0;e.length>a;a++){const c=e[a],l=S(t,c,a);l&&("point"===c.type?i.set(l,{x:c.x,y:c.y,r:c.r,opacity:c.style.opacity}):"rect"===c.type?i.set(l,{x:c.x,y:c.y,w:c.w,h:c.h,opacity:c.style.opacity}):"heatcell"===c.type?i.set(l,{x:c.x,y:c.y,w:c.w,h:c.h,opacity:null===(r=c.style)||void 0===r?void 0:r.opacity}):"candlestick"===c.type?i.set(l,{x:c.x,y:c.openY}):"line"===c.type?n.set(l,{path:c.path.map(t=>[t[0],t[1]]),opacity:null===(o=c.style)||void 0===o?void 0:o.opacity}):"area"===c.type&&n.set(l,{topPath:c.topPath.map(t=>[t[0],t[1]]),bottomPath:c.bottomPath.map(t=>[t[0],t[1]]),opacity:null===(s=c.style)||void 0===s?void 0:s.opacity}))}}(this.transitionContext,this.scene,this.prevPositionMap,this.prevPathMap)}startTransition(){if(!this.config.transition)return;const t=function(t,e,i,n,r){var o,s,a,c,l,u,h,f,d,g,y,p,m,v,x,b,k,w,_,A,P,E,L,D,O,N,$,T;if(0===n.size&&0===r.size)return i;const W=null!==(o=e.duration)&&void 0!==o?o:300;if(i.exitNodes.length>0){const t=new Set(i.exitNodes);i.scene=i.scene.filter(e=>!t.has(e)),i.exitNodes=[]}let j=!1;const C=new Set,R=new Set;for(let e=0;i.scene.length>e;e++){const o=i.scene[e],_=S(t,o,e);if(!_)continue;if(o._transitionKey=_,"line"===o.type||"area"===o.type){const t=r.get(_);if(t){if(R.add(_),"line"===o.type&&t.path&&t.path.length===o.path.length){o._targetPath=o.path.map(t=>[t[0],t[1]]),o._prevPath=t.path;for(let e=0;o.path.length>e;e++)o.path[e]=[t.path[e][0],t.path[e][1]];j=!0}else if("area"===o.type&&t.topPath&&t.bottomPath&&t.topPath.length===o.topPath.length&&t.bottomPath.length===o.bottomPath.length){o._targetTopPath=o.topPath.map(t=>[t[0],t[1]]),o._targetBottomPath=o.bottomPath.map(t=>[t[0],t[1]]),o._prevTopPath=t.topPath,o._prevBottomPath=t.bottomPath;for(let e=0;o.topPath.length>e;e++)o.topPath[e]=[t.topPath[e][0],t.topPath[e][1]];for(let e=0;o.bottomPath.length>e;e++)o.bottomPath[e]=[t.bottomPath[e][0],t.bottomPath[e][1]];j=!0}o._targetOpacity=null!==(s=o.style.opacity)&&void 0!==s?s:1,o._startOpacity=null!==(c=null!==(a=t.opacity)&&void 0!==a?a:o.style.opacity)&&void 0!==c?c:1}else o._targetOpacity=null!==(l=o.style.opacity)&&void 0!==l?l:1,o._startOpacity=0,o.style=Object.assign(Object.assign({},o.style),{opacity:0}),j=!0;continue}const A=n.get(_);if("point"===o.type)if(A){C.add(_);const t={x:o.x,y:o.y,r:o.r};o._targetOpacity=null!==(u=o.style.opacity)&&void 0!==u?u:1,A.x===t.x&&A.y===t.y&&A.r===t.r||(o._targetX=t.x,o._targetY=t.y,o._targetR=t.r,o.x=A.x,o.y=A.y,o.r=null!==(h=A.r)&&void 0!==h?h:o.r,j=!0)}else o._targetOpacity=null!==(f=o.style.opacity)&&void 0!==f?f:1,o.style=Object.assign(Object.assign({},o.style),{opacity:0}),j=!0;else if("rect"===o.type)if(A){C.add(_);const t={x:o.x,y:o.y,w:o.w,h:o.h};o._targetOpacity=null!==(d=o.style.opacity)&&void 0!==d?d:1,A.x===t.x&&A.y===t.y&&A.w===t.w&&A.h===t.h||(o._targetX=t.x,o._targetY=t.y,o._targetW=t.w,o._targetH=t.h,o.x=A.x,o.y=A.y,o.w=null!==(g=A.w)&&void 0!==g?g:o.w,o.h=null!==(y=A.h)&&void 0!==y?y:o.h,j=!0)}else o._targetOpacity=null!==(p=o.style.opacity)&&void 0!==p?p:1,o.style=Object.assign(Object.assign({},o.style),{opacity:0}),j=!0;else if("heatcell"===o.type)if(A){C.add(_);const t={x:o.x,y:o.y,w:o.w,h:o.h};o._targetOpacity=null!==(v=null===(m=o.style)||void 0===m?void 0:m.opacity)&&void 0!==v?v:1,A.x===t.x&&A.y===t.y&&A.w===t.w&&A.h===t.h||(o._targetX=t.x,o._targetY=t.y,o._targetW=t.w,o._targetH=t.h,o.x=A.x,o.y=A.y,o.w=null!==(x=A.w)&&void 0!==x?x:o.w,o.h=null!==(b=A.h)&&void 0!==b?b:o.h,j=!0)}else o._targetOpacity=null!==(w=null===(k=o.style)||void 0===k?void 0:k.opacity)&&void 0!==w?w:1,o.style=Object.assign(Object.assign({},o.style||{}),{opacity:0}),j=!0}for(const[t,e]of r)if(!R.has(t))if(t.startsWith("l:")&&e.path){const n={type:"line",path:e.path.map(t=>[t[0],t[1]]),group:t.slice(2),style:{stroke:"#999",strokeWidth:1,opacity:null!==(_=e.opacity)&&void 0!==_?_:1},_targetOpacity:0,_transitionKey:t,datum:null};i.exitNodes.push(n),j=!0}else if(t.startsWith("a:")&&e.topPath&&e.bottomPath){const n={type:"area",topPath:e.topPath.map(t=>[t[0],t[1]]),bottomPath:e.bottomPath.map(t=>[t[0],t[1]]),group:t.slice(2),style:{fill:"#999",opacity:null!==(A=e.opacity)&&void 0!==A?A:1},_targetOpacity:0,_transitionKey:t,datum:null};i.exitNodes.push(n),j=!0}for(const[t,e]of n)if(!C.has(t)){if(t.startsWith("p:")){const n={type:"point",x:e.x,y:e.y,r:null!==(P=e.r)&&void 0!==P?P:3,style:{opacity:null!==(E=e.opacity)&&void 0!==E?E:1},datum:null,_targetOpacity:0,_transitionKey:t};i.exitNodes.push(n)}else if(t.startsWith("r:")){const n={type:"rect",x:e.x,y:e.y,w:null!==(L=e.w)&&void 0!==L?L:0,h:null!==(D=e.h)&&void 0!==D?D:0,style:{opacity:null!==(O=e.opacity)&&void 0!==O?O:1,fill:"#999"},datum:null,_targetOpacity:0,_transitionKey:t};i.exitNodes.push(n)}else if(t.startsWith("h:")){const n={type:"heatcell",x:e.x,y:e.y,w:null!==(N=e.w)&&void 0!==N?N:0,h:null!==($=e.h)&&void 0!==$?$:0,fill:"#999",datum:null,style:{opacity:null!==(T=e.opacity)&&void 0!==T?T:1},_targetOpacity:0,_transitionKey:t};i.exitNodes.push(n)}j=!0}return i.exitNodes.length>0&&(i.scene=[...i.scene,...i.exitNodes]),j&&(i.activeTransition={startTime:M(),duration:W}),i}(this.transitionContext,this.config.transition,{scene:this.scene,exitNodes:this.exitNodes,activeTransition:this.activeTransition},this.prevPositionMap,this.prevPathMap);this.scene=t.scene,this.exitNodes=t.exitNodes,this.activeTransition=t.activeTransition}advanceTransition(t){if(!this.activeTransition||!this.config.transition)return!1;const e={scene:this.scene,exitNodes:this.exitNodes,activeTransition:this.activeTransition},i=function(t,e,i,n){var r,o,s,a,c;if(!i.activeTransition)return!1;const l=A(t,i.activeTransition),u=_(l,"linear"===e.easing?"linear":"ease-out-cubic");for(const t of i.scene){const e=t._transitionKey;if("point"===t.type){if(void 0!==t._targetOpacity){const i=e?n.get(e):void 0,o=i?null!==(r=i.opacity)&&void 0!==r?r:1:0;t.style.opacity=P(o,t._targetOpacity,u)}if(void 0===t._targetX)continue;if(!e)continue;const i=n.get(e);if(!i)continue;t.x=P(i.x,t._targetX,u),t.y=P(i.y,t._targetY,u),void 0!==t._targetR&&void 0!==i.r&&(t.r=P(i.r,t._targetR,u))}else if("rect"===t.type){if(void 0!==t._targetOpacity){const i=e?n.get(e):void 0,r=i?null!==(o=i.opacity)&&void 0!==o?o:1:0;t.style.opacity=P(r,t._targetOpacity,u)}if(void 0===t._targetX)continue;if(!e)continue;const i=n.get(e);if(!i)continue;t.x=P(i.x,t._targetX,u),t.y=P(i.y,t._targetY,u),void 0!==i.w&&(t.w=P(i.w,t._targetW,u)),void 0!==i.h&&(t.h=P(i.h,t._targetH,u))}else if("heatcell"===t.type){if(void 0!==t._targetOpacity){const i=e?n.get(e):void 0,r=i?null!==(s=i.opacity)&&void 0!==s?s:1:0;t.style=Object.assign(Object.assign({},t.style||{}),{opacity:P(r,t._targetOpacity,u)})}if(void 0===t._targetX)continue;if(!e)continue;const i=n.get(e);if(!i)continue;t.x=P(i.x,t._targetX,u),t.y=P(i.y,t._targetY,u),void 0!==i.w&&(t.w=P(i.w,t._targetW,u)),void 0!==i.h&&(t.h=P(i.h,t._targetH,u))}else if("line"===t.type){if(void 0!==t._targetOpacity){const e=null!==(a=t._startOpacity)&&void 0!==a?a:0;t.style=Object.assign(Object.assign({},t.style),{opacity:P(e,t._targetOpacity,u)})}const e=t._prevPath,i=t._targetPath;if(e&&i&&e.length===t.path.length)for(let n=0;t.path.length>n;n++)t.path[n][0]=P(e[n][0],i[n][0],u),t.path[n][1]=P(e[n][1],i[n][1],u)}else if("area"===t.type){if(void 0!==t._targetOpacity){const e=null!==(c=t._startOpacity)&&void 0!==c?c:0;t.style=Object.assign(Object.assign({},t.style),{opacity:P(e,t._targetOpacity,u)})}const e=t._prevTopPath,i=t._prevBottomPath,n=t._targetTopPath,r=t._targetBottomPath;if(e&&n&&e.length===t.topPath.length)for(let i=0;t.topPath.length>i;i++)t.topPath[i][0]=P(e[i][0],n[i][0],u),t.topPath[i][1]=P(e[i][1],n[i][1],u);if(i&&r&&i.length===t.bottomPath.length)for(let e=0;t.bottomPath.length>e;e++)t.bottomPath[e][0]=P(i[e][0],r[e][0],u),t.bottomPath[e][1]=P(i[e][1],r[e][1],u)}}if(l>=1){for(const t of i.scene){if(void 0!==t._targetOpacity){const e=t._targetOpacity;t.style=Object.assign(Object.assign({},"line"===t.type||"area"===t.type?t.style:t.style||{}),{opacity:0===e?0:e}),t._targetOpacity=void 0}if("point"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,void 0!==t._targetR&&(t.r=t._targetR),t._targetX=void 0,t._targetY=void 0,t._targetR=void 0}else if("rect"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}else if("heatcell"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}else if("line"===t.type){const e=t._targetPath;if(e)for(let i=0;t.path.length>i;i++)t.path[i]=e[i];t._prevPath=void 0,t._targetPath=void 0}else if("area"===t.type){const e=t._targetTopPath,i=t._targetBottomPath;if(e)for(let i=0;t.topPath.length>i;i++)t.topPath[i]=e[i];if(i)for(let e=0;t.bottomPath.length>e;e++)t.bottomPath[e]=i[e];t._prevTopPath=void 0,t._prevBottomPath=void 0,t._targetTopPath=void 0,t._targetBottomPath=void 0}}if(i.exitNodes.length>0){const t=new Set(i.exitNodes);i.scene=i.scene.filter(e=>!t.has(e)),i.exitNodes=[]}return i.activeTransition=null,!1}return!0}(t,this.config.transition,e,this.prevPositionMap);return this.scene=e.scene,this.exitNodes=e.exitNodes,this.activeTransition=e.activeTransition,i}groupData(t){if(!this.getGroup)return[{key:"_default",data:t}];const e=new Map;for(const i of t){const t=this.getGroup(i);e.has(t)||e.set(t,[]),e.get(t).push(i)}return Array.from(e.entries()).map(([t,e])=>({key:t,data:e}))}resolveColorMap(t){const e=new Set;for(const i of t){const t=this.getColor(i);t&&e.add(t)}const i=Array.from(e).sort(),n=i.join("\0");if(this._colorMapCache&&this._colorMapCache.key===n)return this._colorMapCache.map;const r=Array.isArray(this.config.colorScheme)?this.config.colorScheme:b,o=new Map;for(let t=0;i.length>t;t++)o.set(i[t],r[t%r.length]);return this._colorMapCache={key:n,map:o},o}resolveLineStyle(t,e){const i=this.config.lineStyle;if("function"==typeof i){const n=i(e||{},t);if(n&&!n.stroke&&t){const e=this.resolveGroupColor(t);if(e)return Object.assign(Object.assign({},n),{stroke:e})}return n}return i&&"object"==typeof i?{stroke:i.stroke||"#007bff",strokeWidth:i.strokeWidth||2,strokeDasharray:i.strokeDasharray,fill:i.fill,fillOpacity:i.fillOpacity,opacity:i.opacity}:{stroke:"#007bff",strokeWidth:2}}resolveAreaStyle(t,e){var i;if(this.config.areaStyle){const i=this.config.areaStyle(e||{});if(i&&!i.fill&&t){const e=this.resolveGroupColor(t);if(e)return Object.assign(Object.assign({},i),{fill:e,stroke:i.stroke||e})}return i}const n=this.config.lineStyle;if("function"==typeof n){const i=n(e||{},t);if(i&&!i.fill&&t){const e=this.resolveGroupColor(t);if(e)return Object.assign(Object.assign({},i),{fill:e,stroke:i.stroke||e})}return i}return n&&"object"==typeof n?{fill:n.fill||n.stroke||"#4e79a7",fillOpacity:null!==(i=n.fillOpacity)&&void 0!==i?i:.7,stroke:n.stroke||"#4e79a7",strokeWidth:n.strokeWidth||2}:{fill:"#4e79a7",fillOpacity:.7,stroke:"#4e79a7",strokeWidth:2}}resolveGroupColor(t){if(this._colorMapCache){const e=this._colorMapCache.map.get(t);if(e)return e}const e=this._groupColorMap.get(t);if(e)return e;const i=Array.isArray(this.config.colorScheme)?this.config.colorScheme:b,n=i[this._groupColorMap.size%i.length];return this._groupColorMap.set(t,n),n}getBufferArray(){return!this._bufferDirty&&this._bufferArrayCache||(this._bufferArrayCache=this.buffer.toArray(),this._bufferDirty=!1),this._bufferArrayCache}getData(){return this.getBufferArray()}getBinBoundaries(){return this._binBoundaries}getExtents(){return this.xExtent.min===1/0?null:{x:this.xExtent.extent,y:this.yExtent.extent}}clear(){this.buffer.clear(),this.xExtent.clear(),this.yExtent.clear(),this.timestampBuffer&&this.timestampBuffer.clear(),this.prevPositionMap.clear(),this.prevPathMap.clear(),this.exitNodes=[],this.activeTransition=null,this.lastIngestTime=0,this.needsFullRebuild=!0,this._bufferDirty=!0,this._bufferArrayCache=null,this.lastLayout=null,this.scales=null,this.scene=[],this._quadtree=null,this._colorMapCache=null,this._groupColorMap=new Map,this._barCategoryCache=null,this._binBoundaries=[],this._stackExtentCache=null,this.version++}get size(){return this.buffer.size}getBuffer(){return this.buffer}getXAccessor(){return this.getX}getYAccessor(){return this.getY}getCategoryAccessor(){return this.getCategory}updateConfig(t){var e,i,n,r;const o=Object.assign({},this.config);void 0!==t.colorScheme&&(this._colorMapCache=null,this._groupColorMap=new Map),void 0===t.barColors&&void 0===t.colorScheme||(this._barCategoryCache=null),void 0===t.normalize&&void 0===t.extentPadding&&void 0===t.xAccessor&&void 0===t.yAccessor&&void 0===t.groupAccessor&&void 0===t.categoryAccessor&&void 0===t.chartType||(this._stackExtentCache=null);let s=!1;Object.assign(this.config,t);const a="chartType"in t&&t.chartType!==o.chartType||"runtimeMode"in t&&t.runtimeMode!==o.runtimeMode;if(a||void 0!==t.xAccessor||void 0!==t.yAccessor||void 0!==t.timeAccessor||void 0!==t.valueAccessor){const c=a||!p(null!==(e=t.xAccessor)&&void 0!==e?e:t.timeAccessor,null!==(i=o.xAccessor)&&void 0!==i?i:o.timeAccessor),l=a||!p(null!==(n=t.yAccessor)&&void 0!==n?n:t.valueAccessor,null!==(r=o.yAccessor)&&void 0!==r?r:o.valueAccessor);(c||l)&&(["bar","swarm","waterfall"].includes(this.config.chartType)||"streaming"===this.config.runtimeMode?(this.getX=m(this.config.timeAccessor||this.config.xAccessor,"time"),this.getY=m(this.config.valueAccessor||this.config.yAccessor,"value")):(this.getX=m(this.config.xAccessor,"x"),this.getY=m(this.config.yAccessor,"y")),s=!0)}if("groupAccessor"in t&&!p(t.groupAccessor,o.groupAccessor)&&(this.getGroup=null!=this.config.groupAccessor?x(this.config.groupAccessor):void 0,s=!0),"categoryAccessor"in t&&!p(t.categoryAccessor,o.categoryAccessor)&&(this.getCategory=null!=this.config.categoryAccessor?x(this.config.categoryAccessor):void 0,s=!0),"sizeAccessor"in t&&!p(t.sizeAccessor,o.sizeAccessor)&&(this.getSize=this.config.sizeAccessor?m(this.config.sizeAccessor,"size"):void 0,s=!0),"colorAccessor"in t&&!p(t.colorAccessor,o.colorAccessor)&&(this.getColor=null!=this.config.colorAccessor?x(this.config.colorAccessor):void 0,s=!0),"y0Accessor"in t&&!p(t.y0Accessor,o.y0Accessor)&&(this.getY0=this.config.y0Accessor?m(this.config.y0Accessor,"y0"):void 0,s=!0),"pointIdAccessor"in t&&!p(t.pointIdAccessor,o.pointIdAccessor)&&(this.getPointId=null!=this.config.pointIdAccessor?x(this.config.pointIdAccessor):void 0,s=!0),!s){const e=Object.keys(t).filter(t=>!t.endsWith("Accessor")&&"timeAccessor"!==t&&"valueAccessor"!==t);for(const i of e)if(t[i]!==o[i]){s=!0;break}}s&&(this.needsFullRebuild=!0)}}function C(t,e){var i=t.get(e);if(!i)throw Error("missing: "+e);return i}function R(t,e){var i,n=[],r=[],o=[],s={},a=[];function c(t){o[t]=!1,s.hasOwnProperty(t)&&Object.keys(s[t]).forEach(function(e){delete s[t][e],o[e]&&c(e)})}function l(t){var e,n,h=!1;for(r.push(t),o[t]=!0,e=0;a[t].length>e;e++)(n=a[t][e])===i?(u(i,r),h=!0):o[n]||(h=l(n));if(h)c(t);else for(e=0;a[t].length>e;e++){var f=s[n=a[t][e]];f||(s[n]=f={}),f[n]=!0}return r.pop(),h}function u(t,e){var i=[].concat(e).concat(t);n.push(i)}function h(e){!function(e){for(var i=0;t.length>i;i++)i>=e&&t[i]||(t[i]=[]),t[i]=t[i].filter(function(t){return t>=e})}(e);for(var i,n=function(t){for(var e=t.length,i=Array(e),n=Array(e),r=Array(e),o=Array(e),s=Array(e),a=Array(e),c=0;e>c;++c)i[c]=-1,n[c]=0,r[c]=!1,o[c]=0,s[c]=-1,a[c]=[];var l,u=0,h=[],f=[];function d(e){var c=[e],l=[e];for(i[e]=n[e]=u,r[e]=!0,u+=1;l.length>0;){var d=t[e=l[l.length-1]];if(d.length>o[e]){for(var g=o[e];d.length>g;++g){var y=d[g];if(0>i[y]){i[y]=n[y]=u,r[y]=!0,u+=1,c.push(y),l.push(y);break}r[y]&&(n[e]=0|Math.min(n[e],n[y])),0>s[y]||a[e].push(s[y])}o[e]=g}else{if(n[e]===i[e]){var p=[],m=[],v=0;for(g=c.length-1;g>=0;--g){var x=c[g];if(r[x]=!1,p.push(x),m.push(a[x]),v+=a[x].length,s[x]=h.length,x===e){c.length=g;break}}h.push(p);var b=Array(v);for(g=0;m.length>g;g++)for(var k=0;m[g].length>k;k++)b[--v]=m[g][k];f.push(b)}l.pop()}}}for(c=0;e>c;++c)0>i[c]&&d(c);for(c=0;f.length>c;c++){var g=f[c];if(0!==g.length){g.sort(function(t,e){return t-e}),l=[g[0]];for(var y=1;g.length>y;y++)g[y]!==g[y-1]&&l.push(g[y]);f[c]=l}}return{components:h,adjacencyList:f}}(t),r=n.components.filter(function(t){return t.length>1}),o=1/0,s=0;r.length>s;s++)for(var a=0;r[s].length>a;a++)o>r[s][a]&&(o=r[s][a],i=s);var c=r[i];if(!c)return!1;var l=t.map(function(t,e){return-1===c.indexOf(e)?[]:t.filter(function(t){return-1!==c.indexOf(t)})});return{leastVertex:o,adjList:l}}i=0;for(var f=t.length;f>i;){var d=h(i);if(i=d.leastVertex,a=d.adjList){for(var g=0;a.length>g;g++)for(var y=0;a[g].length>y;y++){var p=a[g][y];o[+p]=!1,s[p]={}}l(i),i+=1}else i=f}return n}function z(t){return t.y0-t.y1>0?"up":"down"}function B(t,e){return e(t.source)==e(t.target)}function I(t){var e=0;t.source.sourceLinks.forEach(function(t){e=t.circular?e+1:e});var i=0;return t.target.targetLinks.forEach(function(t){i=t.circular?i+1:i}),1>=e&&1>=i}function Y(t){return t.target.x0-t.source.x1}function X(t,e){var i=q(t),n=Y(e)/Math.tan(i);return"up"==z(t)?t.y1-n:t.y1+n}function F(t,e){var i=q(t),n=Y(e)/Math.tan(i);return"up"==z(t)?t.y1+n:t.y1-n}function q(t){var e=Math.abs(t.y1-t.y0);return Math.atan(Math.abs(t.target.x0-t.source.x1)/e)}function V(t,e){return e(t)}function G(t){return Z(t.source)}function H(t){return Z(t.target)}function Z(t){return(t.y0+t.y1)/2}function K(t){return t.virtual?0:t.value}function Q(t,e){var i=0;t.sourceLinks.forEach(function(t){i=t.circular&&!B(t,e)?i+1:i});var n=0;return t.targetLinks.forEach(function(t){n=t.circular&&!B(t,e)?n+1:n}),i+n}function U(t){return t.target.depth}function J(t,e){return t.sourceLinks.length?t.depth:e-1}function tt(t,e){return t.y0-e.y0}function et(t,e){return e.y0-t.y0}function it(t,e){return t.y1-e.y1}function nt(t,e){return e.y1-t.y1}function rt(t,e){return st(t.source,e.source)||t.index-e.index}function ot(t,e){return st(t.target,e.target)||t.index-e.index}function st(t,e){return t.partOfCycle===e.partOfCycle?t.y0-e.y0:"top"===t.circularLinkType||"bottom"===e.circularLinkType?-1:1}function at(t,e){return ct(t)==ct(e)?"bottom"==t.circularLinkType?et(t,e):tt(t,e):ct(e)-ct(t)}function ct(t){return t.target.column-t.source.column}function lt(t,e){return ut(t)==ut(e)}function ut(t){return t.y0-t.y1>0?"up":"down"}function ht(t,e,i,n,o){let s=t;var a=Math.max(8,.15*(s.y1-s.y0));s.links.forEach(function(t){t.circular&&(t._circularWidth=Math.min(t.width,a))});var c=r.min(s.links,function(t){return t.source.y0});s.links.forEach(function(t){t.circular&&(t.circularPathData={})});var l=s.links.filter(function(t){return t.circular});return l.sort(function(t,e){return e.value-t.value}),l.forEach(function(t,e){t._circularStub=e>=4}),ft(s.links.filter(function(t){return"top"==t.circularLinkType}),e,i),ft(s.links.filter(function(t){return"bottom"==t.circularLinkType}),e,i),s.links.forEach(function(t){if(t.circular){if(t.circularPathData.arcRadius=t._circularWidth+n,t.circularPathData.rightNodeBuffer=5,t.circularPathData.leftNodeBuffer=5,t.circularPathData.sourceWidth=t.source.x1-t.source.x0,t.circularPathData.sourceX=t.source.x0+t.circularPathData.sourceWidth,t.circularPathData.targetX=t.target.x0,t.circularPathData.sourceY=t.y0,t.circularPathData.targetY=t.y1,B(t,e)&&I(t))t.circularPathData.rightSmallArcRadius=n+t._circularWidth/2,t.circularPathData.rightLargeArcRadius=n+t._circularWidth/2,t.circularPathData.leftSmallArcRadius=n+t._circularWidth/2,t.circularPathData.leftLargeArcRadius=n+t._circularWidth/2,"bottom"==t.circularLinkType?(t.circularPathData.verticalFullExtent=t.source.y1+o+t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.leftLargeArcRadius):(t.circularPathData.verticalFullExtent=t.source.y0-o-t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.leftLargeArcRadius);else{var r=t.source.column,a=t.circularLinkType,l=s.links.filter(function(t){return t.source.column==r&&t.circularLinkType==a});l.sort("bottom"==t.circularLinkType?et:tt);var u=0;l.forEach(function(e,r){e.circularLinkID==t.circularLinkID&&(t.circularPathData.rightSmallArcRadius=n+t._circularWidth/2+u,t.circularPathData.rightLargeArcRadius=n+t._circularWidth/2+r*i+u),u+=e._circularWidth||e.width}),r=t.target.column,(l=s.links.filter(function(t){return t.target.column==r&&t.circularLinkType==a})).sort("bottom"==t.circularLinkType?nt:it),u=0,l.forEach(function(e,r){e.circularLinkID==t.circularLinkID&&(t.circularPathData.leftSmallArcRadius=n+t._circularWidth/2+u,t.circularPathData.leftLargeArcRadius=n+t._circularWidth/2+r*i+u),u+=e._circularWidth||e.width}),"bottom"==t.circularLinkType?(t.circularPathData.verticalFullExtent=Math.max(s.y1,t.source.y1,t.target.y1)+o+t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent-t.circularPathData.leftLargeArcRadius):(t.circularPathData.verticalFullExtent=c-o-t.circularPathData.verticalBuffer,t.circularPathData.verticalRightInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.rightLargeArcRadius,t.circularPathData.verticalLeftInnerExtent=t.circularPathData.verticalFullExtent+t.circularPathData.leftLargeArcRadius)}t.circularPathData.rightInnerExtent=t.circularPathData.sourceX+t.circularPathData.rightNodeBuffer,t.circularPathData.leftInnerExtent=t.circularPathData.targetX-t.circularPathData.leftNodeBuffer,t.circularPathData.rightFullExtent=t.circularPathData.sourceX+t.circularPathData.rightLargeArcRadius+t.circularPathData.rightNodeBuffer,t.circularPathData.leftFullExtent=t.circularPathData.targetX-t.circularPathData.leftLargeArcRadius-t.circularPathData.leftNodeBuffer}t.path=t.circular?function(t){return"top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.rightSmallArcRadius)+" L"+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" L"+t.circularPathData.leftFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.leftSmallArcRadius)+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.rightSmallArcRadius)+" L"+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" L"+t.circularPathData.leftFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.leftSmallArcRadius)+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY}(t):function(t){var e=t.source.x1,i=t.y0,n=t.target.x0,r=t.y1,o=(e+n)/2;return"M"+e+","+i+"C"+o+","+i+" "+o+","+r+" "+n+","+r}(t)}),s}function ft(t,e,i){t.sort(at);var n=t.filter(function(t){return!t._circularStub});return t.forEach(function(t,r){var o=0;if(t._circularStub)t.circularPathData.verticalBuffer=0;else if(B(t,e)&&I(t))t.circularPathData.verticalBuffer=o+t._circularWidth/2;else{for(var s=0;n.length>s;s++){var a=n[s];if(a!==t&&a.circularPathData&&void 0!==a.circularPathData.verticalBuffer&&dt(t,a)){var c=a.circularPathData.verticalBuffer+(a._circularWidth||a.width)/2+i;o=c>o?c:o}}t.circularPathData.verticalBuffer=o+t._circularWidth/2}}),t}function dt(t,e){return t.source.column>=e.target.column&&e.source.column>=t.target.column}function gt(t){return function(){return t}}function yt(t){return t.index}function pt(t){return t.nodes}function mt(t){return t.links}function vt(t,e,i){var n=r.groups(t.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]});n.forEach(function(r,o){var s=r.length;if(e)r.sort(e);else if(o>0){var a=new Map;r.forEach(function(t,e){var i,n,r,o=(n=0,r=0,(i=t).targetLinks.forEach(function(t){if(!t.circular){var e=t.value||1;r+=Z(t.source)*e,n+=e}}),i.sourceLinks.forEach(function(t){if(!t.circular){var e=t.value||1;r+=Z(t.target)*e,n+=e}}),n>0?r/n:NaN);a.set(t,{bc:o,idx:e})}),r.sort(function(t,e){var i=a.get(t),n=a.get(e),r=i.bc,o=n.bc;if(t.circularLinkType!==e.circularLinkType){if("top"==t.circularLinkType&&"bottom"==e.circularLinkType)return-1;if("bottom"==t.circularLinkType&&"top"==e.circularLinkType)return 1;if("top"==t.circularLinkType)return-1;if("top"==e.circularLinkType)return 1;if("bottom"==t.circularLinkType)return 1;if("bottom"==e.circularLinkType)return-1}return isNaN(r)||isNaN(o)?isNaN(r)?isNaN(o)?i.idx-n.idx:1:-1:r-o})}else r.sort(function(t,e){return t.circularLinkType==e.circularLinkType?Q(e,i)-Q(t,i):"top"==t.circularLinkType&&"bottom"==e.circularLinkType||"top"==t.circularLinkType&&0==e.partOfCycle||0==t.partOfCycle&&"bottom"==e.circularLinkType?-1:0});r.forEach(function(e,r){e.depth==n.length-1&&1==s||0==e.depth&&1==s?(e.y0=t.y1/2-e.value*t.ky,e.y1=e.y0+e.value*t.ky):e.partOfCycle?0==Q(e,i)?(e.y0=t.y1/2+r,e.y1=e.y0+e.value*t.ky):"top"==e.circularLinkType?(e.y0=t.y0+r,e.y1=e.y0+e.value*t.ky):(e.y0=t.y1-e.value*t.ky-r,e.y1=e.y0+e.value*t.ky):0==t.y0||0==t.y1?(e.y0=(t.y1-t.y0)/s*r,e.y1=e.y0+e.value*t.ky):(e.y0=(t.y1-t.y0)/2-s/2+r,e.y1=e.y0+e.value*t.ky)})})}function xt(t,e,i,n,o,s){var a=r.groups(t.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]});h();for(var c=1,l=s;l>0;--l)u(c*=.99,i),h();function u(e,i){var n=a.length;a.forEach(function(o){var s=o.length,a=o[0].depth;o.forEach(function(o){var c;if(o.sourceLinks.length||o.targetLinks.length)if(o.partOfCycle&&Q(o,i)>0){var l=r.mean(o.sourceLinks,H),u=r.mean(o.targetLinks,G),h=l&&u?(l+u)/2:l||u;if(h){var f=(h-Z(o))*e*.3;o.y0+=f,o.y1+=f}}else if(0==a&&1==s)o.y0=t.y1/2-(c=o.y1-o.y0)/2,o.y1=t.y1/2+c/2;else if(a==n-1&&1==s)o.y0=t.y1/2-(c=o.y1-o.y0)/2,o.y1=t.y1/2+c/2;else if(1==o.targetLinks.length&&1==o.targetLinks[0].source.sourceLinks.length)c=o.y1-o.y0,o.y0=o.targetLinks[0].source.y0,o.y1=o.y0+c;else{var d=r.mean(o.sourceLinks,H),g=r.mean(o.targetLinks,G),y=((d&&g?(d+g)/2:d||g)-Z(o))*e;o.y0+=y,o.y1+=y}})})}function h(){a.forEach(function(i){var r,s,a,c=t.y0,l=i.length;for(i.sort(e||st),a=0;l>a;++a)(s=c-(r=i[a]).y0)>0&&(r.y0+=s,r.y1+=s),c=r.y1+n;if((s=c-n-t.y1)>0)for(c=r.y0-=s,r.y1-=s,a=l-2;a>=0;--a)(s=(r=i[a]).y1+o-c)>0&&(r.y0-=s,r.y1-=s),c=r.y0})}}function bt(t){t.nodes.forEach(function(t){t.sourceLinks.sort(ot),t.targetLinks.sort(rt)}),t.nodes.forEach(function(t){var e=t.y0,i=e,n=t.y1,r=n;t.sourceLinks.forEach(function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)}),t.targetLinks.forEach(function(t){t.circular?(t.y1=r-t.width/2,r-=t.width):(t.y1=i+t.width/2,i+=t.width)})})}function kt(){var t=0,e=0,i=1,n=1,o=24,s=8,a=null,c=yt,l=J,u=void 0,h=32,f=2,d=pt,g=mt;function y(){var y={nodes:d.apply(null,arguments),links:g.apply(null,arguments)};return function(d){d.x0=t,d.y0=e,d.x1=i,d.y1=n,d.py=0,function(t,e){t.nodes.forEach(function(t,e){t.index=e,t.sourceLinks=[],t.targetLinks=[]});var i=function(t,e){var i=new Map;return r.group(t,e).forEach(function(t,e){i.set(e,t[0])}),i}(t.nodes,e);t.links.forEach(function(t,e){t.index=e;var n=t.source,r=t.target;"object"!=typeof n&&(n=t.source=C(i,n)),"object"!=typeof r&&(r=t.target=C(i,r)),n.sourceLinks.push(t),r.targetLinks.push(t)})}(d,c),function(t,e){var i=0;if(null==e){for(var n=[],r=0;t.links.length>r;r++){var o=t.links[r],s=o.source.index,a=o.target.index;n[s]||(n[s]=[]),n[a]||(n[a]=[]),-1===n[s].indexOf(a)&&n[s].push(a)}var c=R(n);c.sort(function(t,e){return t.length-e.length});var l={};for(r=0;c.length>r;r++){var u=c[r].slice(-2);l[u[0]]||(l[u[0]]={}),l[u[0]][u[1]]=!0}t.links.forEach(function(t){var e=t.target.index,n=t.source.index;e===n||l[n]&&l[n][e]?(t.circular=!0,t.circularLinkID=i++):t.circular=!1})}else t.links.forEach(function(t){e(t.source)<e(t.target)?t.circular=!1:(t.circular=!0,t.circularLinkID=i++)})}(d,u),function(t,e){var i=0,n=0;t.links.forEach(function(r){r.circular&&(r.circularLinkType=r.source.circularLinkType||r.target.circularLinkType?r.source.circularLinkType?r.source.circularLinkType:r.target.circularLinkType:n>i?"top":"bottom","top"==r.circularLinkType?i++:n++,t.nodes.forEach(function(t){V(t,e)!=V(r.source,e)&&V(t,e)!=V(r.target,e)||(t.circularLinkType=r.circularLinkType)}))}),t.links.forEach(function(t){t.circular&&(t.source.circularLinkType==t.target.circularLinkType&&(t.circularLinkType=t.source.circularLinkType),B(t,e)&&(t.circularLinkType=t.source.circularLinkType))})}(d,c),function(t){t.nodes.forEach(function(t){t.partOfCycle=!1,t.value=Math.max(r.sum(t.sourceLinks,K),r.sum(t.targetLinks,K)),t.sourceLinks.forEach(function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)}),t.targetLinks.forEach(function(e){e.circular&&(t.partOfCycle=!0,t.circularLinkType=e.circularLinkType)})})}(d),function(t,e,i){var n,r,o;if(null!=e){t.nodes.sort(function(t,i){return e(t)<e(i)?-1:1});var s=0,a=e(t.nodes[0]);t.nodes.forEach(function(t){s=e(t)==a?s:s+1,a=e(t)==a?a:e(t),t.column=s})}for(n=t.nodes,r=[],o=0;n.length;++o,n=r,r=[])n.forEach(function(t){t.depth=o,t.sourceLinks.forEach(function(t){0>r.indexOf(t.target)&&!t.circular&&r.push(t.target)})});for(n=t.nodes,r=[],o=0;n.length;++o,n=r,r=[])n.forEach(function(t){t.height=o,t.targetLinks.forEach(function(t){0>r.indexOf(t.source)&&!t.circular&&r.push(t.source)})});t.nodes.forEach(function(t){t.column=null==e?i(t,o):t.column})}(d,u,l);var g=s;if(null!==a){var y=r.groups(d.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]}),p=r.max(y,function(t){return t.length});p>1&&(g=Math.max(1,(n-e)*a/(p-1)))}(function(t,e,i){var n=r.groups(t.nodes,function(t){return t.column}).sort(function(t,e){return t[0]-e[0]}).map(function(t){return t[1]});t.py=e;var o=r.min(n,function(e){return(t.y1-t.y0-(e.length-1)*t.py)/r.sum(e,function(t){return t.value})});t.ky=o,t.links.forEach(function(e){e.width=e.value*t.ky});var s=r.max(t.nodes,function(t){return t.column});t.nodes.forEach(s>0?function(e){e.x0=t.x0+e.column*((t.x1-t.x0-i)/s),e.x1=e.x0+i}:function(e){e.x0=t.x0,e.x1=e.x0+i})})(d,g,o),vt(d,u,c),xt(d,u,c,g,g,h),bt(d),ht(d,c,f,10,8),vt(d,u,c),xt(d,u,c,g,g,h),bt(d),ht(d,c,f,10,8),function(t,e){let i=t;i.nodes.forEach(function(t){t.y+(t.y1-t.y0)>i.y1&&(t.y=t.y-(t.y+(t.y1-t.y0)-i.y1));var n=i.links.filter(function(i){return V(i.source,e)==V(t,e)}),r=n.length;r>1&&n.sort(function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!lt(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var i=X(e,t);return t.y1-i}if(e.target.column>t.target.column)return X(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0});var o=t.y0;n.forEach(function(t){t.y0=o+t.width/2,o+=t.width}),n.forEach(function(e,i){if("bottom"==e.circularLinkType){for(var o=i+1,s=0;r>o;o++)s+=n[o].width;e.y0=t.y1-s-e.width/2}})})}(d,c),function(t,e){let i=t;i.nodes.forEach(function(t){var n=i.links.filter(function(i){return V(i.target,e)==V(t,e)}),r=n.length;r>1&&n.sort(function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!lt(t,e))return t.y0-e.y0;if(t.source.column>e.source.column){var i=F(e,t);return t.y0-i}if(e.source.column>t.source.column)return F(t,e)-e.y0}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:t.source.column-e.source.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.source.column===e.source.column?t.source.y1-e.source.y1:e.source.column-t.source.column:"top"==t.circularLinkType?-1:1:void 0});var o=t.y0;n.forEach(function(t){t.y1=o+t.width/2,o+=t.width}),n.forEach(function(e,i){if("bottom"==e.circularLinkType){for(var o=i+1,s=0;r>o;o++)s+=n[o].width;e.y1=t.y1-s-e.width/2}})})}(d,c),function(t){var e=t.nodes,i=t.links,n=!1,o=!1;if(i.forEach(function(t){"top"==t.circularLinkType?n=!0:"bottom"==t.circularLinkType&&(o=!0)}),0==n||0==o){var s=r.min(e,function(t){return t.y0}),a=r.max(e,function(t){return t.y1}),c=(t.y1-t.y0)/(a-s);function l(e){return(e-s)/(a-s)*(t.y1-t.y0)+t.y0}1>c?(e.forEach(function(t){t.y0=l(t.y0),t.y1=l(t.y1)}),i.forEach(function(t){t.y0=l(t.y0),t.y1=l(t.y1),t.width=t.width*c})):e.forEach(function(t){var e=t.y1-t.y0,i=l(t.y0)-t.y0;t.y0=l(t.y0),t.y1=t.y0+e,t.sourceLinks.forEach(function(t){t.y0=t.y0+i}),t.targetLinks.forEach(function(t){t.y1=t.y1+i})})}}(d),ht(d,c,f,10,8)}(y),y}return y.update=function(t){return bt(t),ht(t,c,f,10,8),t},y.nodeWidth=function(t){return arguments.length?(o=+t,y):o},y.nodePadding=function(t){return arguments.length?(s=+t,y):s},y.nodePaddingRatio=function(t){return arguments.length?(a=+t,y):a},y.nodes=function(t){return arguments.length?(d="function"==typeof t?t:gt(t),y):d},y.links=function(t){return arguments.length?(g="function"==typeof t?t:gt(t),y):g},y.nodeId=function(t){return arguments.length?(c="function"==typeof t?t:gt(t),y):c},y.nodeAlign=function(t){return arguments.length?(l="function"==typeof t?t:gt(t),y):l},y.nodeSort=function(t){return arguments.length?(u=t,y):u},y.iterations=function(t){return arguments.length?(h=+t,y):h},y.circularLinkGap=function(t){return arguments.length?(f=+t,y):f},y.extent=function(r){return arguments.length?(t=+r[0][0],e=+r[0][1],i=+r[1][0],n=+r[1][1],y):[[t,e],[i,n]]},y.size=function(r){return arguments.length?(t=e=0,i=+r[0],n=+r[1],y):[i-t,n-e]},y}j.QUADTREE_THRESHOLD=500;const wt=t=>{let e,i,n,r,s,a,c,l,u;return"down"===t.direction?(e=t.y0-t.sankeyWidth/2,i=t.y1-t.sankeyWidth/2,n=t.y1+t.sankeyWidth/2,r=t.y0+t.sankeyWidth/2,s=t.source.x1,a=t.target.x0,c=o.interpolateNumber(s,a),l=c(.5),u=c(.5),`M${e},${s}C${e},${l} ${i},${u} ${i},${a}L${n},${a}C${n},${u} ${r},${l} ${r},${s}Z`):(e=t.source.x1,i=t.target.x0,c=o.interpolateNumber(e,i),n=c(.5),r=c(.5),s=t.y0-t.sankeyWidth/2,a=t.y1-t.sankeyWidth/2,l=t.y1+t.sankeyWidth/2,u=t.y0+t.sankeyWidth/2,`M${e},${s}C${n},${s} ${r},${a} ${i},${a}L${i},${l}C${r},${l} ${n},${u} ${e},${u}Z`)};function _t(t){var e;const i=t.sankeyWidth/2,n=(null!==(e=t._circularWidth)&&void 0!==e?e:t.sankeyWidth)/2,r=t.circularPathData;if(!r)return null;if("down"===t.direction)return null;if(t._circularStub){const e=r.sourceX,n=r.sourceY,o=r.targetX,s=r.targetY;if("object"!=typeof t.source||!t.source||"object"!=typeof t.target||!t.target)return null;const a=Math.max(15,Math.min(40,.33*(r.rightFullExtent-e))),c=Math.max(15,Math.min(40,.33*(o-r.leftFullExtent)));return`M${e},${n-i}L${e+a},${n-i}L${e+a},${n+i}L${e},${n+i}ZM${o},${s-i}L${o-c},${s-i}L${o-c},${s+i}L${o},${s+i}Z`}const o=r.sourceX,s=r.sourceY,a=r.targetX,c=r.targetY,l=r.rightFullExtent,u=r.leftFullExtent,h=r.verticalFullExtent,f="bottom"===t.circularLinkType?1:-1,d=Math.max(4,Math.min(n,15));return`M${o},${s-f*i}L${l},${s-f*i}L${l+n},${s-f*i+f*d}L${l+n},${h+f*n-f*d}L${l+n-d},${h+f*n}L${u-n+d},${h+f*n}L${u-n},${h+f*n-f*d}L${u-n},${c-f*i+f*d}L${u-n+d},${c-f*i}L${a},${c-f*i}L${a},${c+f*i}L${u+n},${c+f*i}L${u+n},${h-f*n}L${l-n},${h-f*n}L${l-n},${s+f*i}L${o},${s+f*i}Z`}const At={left:function(t){return t.depth},right:function(t,e){return e-1-t.height},center:function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?Math.min.apply(Math,t.sourceLinks.map(U))-1:0},justify:J},Pt={supportsStreaming:!0,hierarchical:!1,computeLayout(t,e,i,n){var r,o,s,a,c,l,u;if(0===t.length)return;const h="vertical"===i.orientation?"down":"right",f=i.nodeAlign||"justify",d=null!==(r=i.nodeWidth)&&void 0!==r?r:15,g=null!==(o=i.nodePaddingRatio)&&void 0!==o?o:.05,y=null!==(s=i.iterations)&&void 0!==s?s:100,p=t.map(t=>Object.assign({},t)),m=e.map(t=>Object.assign(Object.assign({},t),{source:"string"==typeof t.source?t.source:t.source.id,target:"string"==typeof t.target?t.target:t.target.id,value:Math.sqrt(Math.max(1,t.value||1))}));let v;v="down"===h?[[0,0],[n[1],n[0]]]:[[0,0],[n[0],n[1]]];const x=kt().extent(v).links(m).nodes(p).nodeAlign(At[f]||J).nodeId(t=>t.id).nodeWidth(d).iterations(y);x.nodePaddingRatio&&x.nodePaddingRatio(g),x();{let t=1/0,e=-1/0,i=1/0,r=-1/0;for(const n of p)t>n.x0&&(t=n.x0),n.x1>e&&(e=n.x1),i>n.y0&&(i=n.y0),n.y1>r&&(r=n.y1);for(const n of m){if(!n.circular||!n.circularPathData)continue;const o=n.circularPathData,s=(null!==(c=null!==(a=n._circularWidth)&&void 0!==a?a:n.width)&&void 0!==c?c:0)/2;t>o.leftFullExtent-s&&(t=o.leftFullExtent-s),o.rightFullExtent+s>e&&(e=o.rightFullExtent+s),i>o.verticalFullExtent-s&&(i=o.verticalFullExtent-s),o.verticalFullExtent+s>r&&(r=o.verticalFullExtent+s)}const o=e-t,s=r-i,u=n[0],h=n[1];if(o>0&&s>0&&(0>t||0>i||e>u||r>h)){const e=Math.min(u/o,h/s),n=-t*e+(u-o*e)/2,r=-i*e+(h-s*e)/2;for(const t of p)t.x0=t.x0*e+n,t.x1=t.x1*e+n,t.y0=t.y0*e+r,t.y1=t.y1*e+r;for(const t of m)if(t.y0=t.y0*e+r,t.y1=t.y1*e+r,t.width=(null!==(l=t.width)&&void 0!==l?l:0)*e,t._circularWidth&&(t._circularWidth*=e),t.circular&&t.circularPathData){const i=t.circularPathData;i.sourceX=i.sourceX*e+n,i.targetX=i.targetX*e+n,i.sourceY=i.sourceY*e+r,i.targetY=i.targetY*e+r,i.rightFullExtent=i.rightFullExtent*e+n,i.leftFullExtent=i.leftFullExtent*e+n,i.verticalFullExtent=i.verticalFullExtent*e+r,i.rightInnerExtent=i.rightInnerExtent*e+n,i.leftInnerExtent=i.leftInnerExtent*e+n,i.verticalRightInnerExtent=i.verticalRightInnerExtent*e+r,i.verticalLeftInnerExtent=i.verticalLeftInnerExtent*e+r,i.rightSmallArcRadius*=e,i.rightLargeArcRadius*=e,i.leftSmallArcRadius*=e,i.leftLargeArcRadius*=e,i.sourceWidth*=e,i.rightNodeBuffer*=e,i.leftNodeBuffer*=e,i.arcRadius*=e}}}const b=new Map;for(const e of t)b.set(e.id,e);for(const t of p){const e=b.get(t.id);e&&(e.x0=t.x0,e.x1=t.x1,e.y0=t.y0,e.y1=t.y1,e.value=t.value,e.depth=t.depth,e.sourceLinks=t.sourceLinks,e.targetLinks=t.targetLinks,e.width=t.x1-t.x0,e.height=t.y1-t.y0,e.x=t.x0+(t.x1-t.x0)/2,e.y=t.y0+(t.y1-t.y0)/2)}const k=new Map;for(const t of e)k.set(t._edgeKey?t._edgeKey:`${"string"==typeof t.source?t.source:t.source.id}\0${"string"==typeof t.target?t.target:t.target.id}`,t);for(const t of m){const e=t.source,i=t.target,n="object"==typeof e&&null!==e?e.id:e+"",r="object"==typeof i&&null!==i?i.id:i+"",o=k.get(t._edgeKey?t._edgeKey:`${n}\0${r}`);if(o){o.y0=t.y0,o.y1=t.y1,o.sankeyWidth=null!==(u=t.width)&&void 0!==u?u:0,o.circular=!!t.circular,o.circularPathData=t.circularPathData,o._circularWidth=t._circularWidth,o._circularStub=t._circularStub,o.path=t.path,o.circularLinkType=t.circularLinkType,o.direction=h;const e=b.get(n),i=b.get(r);e&&(o.source=e),i&&(o.target=i)}}},buildScene(t,e,i,r){var o,s,a,c;const l="vertical"===i.orientation?"down":"right",u=i.nodeStyle,h=i.edgeStyle,f=null!==(o=i.edgeOpacity)&&void 0!==o?o:.5,d=i.edgeColorBy||"source",g=Array.isArray(i.colorScheme)?i.colorScheme:n.schemeCategory10,y=new Map;t.forEach((t,e)=>{y.set(t.id,g[e%g.length])});const p=[],m=[],v=[],x=new Map;for(const e of t){const t=e.x1-e.x0,i=e.y1-e.y0;if(0>=t||0>=i)continue;const n=u?u(e):{},r={fill:n.fill||y.get(e.id)||"#4d430c",stroke:n.stroke,strokeWidth:n.strokeWidth,opacity:n.opacity};x.set(e.id,("string"==typeof r.fill?r.fill:null)||y.get(e.id)||"#4d430c"),p.push("down"===l?{type:"rect",x:e.y0,y:e.x0,w:i,h:t,style:r,datum:e,id:e.id,label:e.id}:{type:"rect",x:e.x0,y:e.y0,w:t,h:i,style:r,datum:e,id:e.id,label:e.id})}const b=[...e].sort((t,e)=>(e.sankeyWidth||0)-(t.sankeyWidth||0));for(const t of b){if(!t.sankeyWidth||0>=t.sankeyWidth)continue;const e="object"==typeof t.source?t.source:null,i="object"==typeof t.target?t.target:null;if(!e||!i)continue;let n="#999";n="function"==typeof d?d(t)||n:"target"===d?x.get(i.id)||y.get(i.id)||n:x.get(e.id)||y.get(e.id)||n;const r=h?h(t):{};if(t._circularStub&&t.circular&&t.circularPathData){const e=t.circularPathData,i=t.sankeyWidth/2,o=Math.max(15,Math.min(40,.33*(e.rightFullExtent-e.sourceX))),c=Math.max(15,Math.min(40,.33*(e.targetX-e.leftFullExtent))),l=r.fill||n;m.push({type:"bezier",pathD:`M${e.sourceX},${e.sourceY-i}L${e.sourceX+o},${e.sourceY-i}L${e.sourceX+o},${e.sourceY+i}L${e.sourceX},${e.sourceY+i}Z`,style:{fill:l,fillOpacity:null!==(s=r.fillOpacity)&&void 0!==s?s:f,stroke:"none",opacity:r.opacity},datum:t,_gradient:{direction:"right",from:1,to:0,x0:e.sourceX,x1:e.sourceX+o}}),m.push({type:"bezier",pathD:`M${e.targetX},${e.targetY-i}L${e.targetX-c},${e.targetY-i}L${e.targetX-c},${e.targetY+i}L${e.targetX},${e.targetY+i}Z`,style:{fill:l,fillOpacity:null!==(a=r.fillOpacity)&&void 0!==a?a:f,stroke:"none",opacity:r.opacity},datum:t,_gradient:{direction:"left",from:0,to:1,x0:e.targetX-c,x1:e.targetX}});continue}let o;if(o=t.circular&&t.circularPathData?_t(t):wt(t),!o)continue;const l={fill:r.fill||n,fillOpacity:null!==(c=r.fillOpacity)&&void 0!==c?c:f,stroke:r.stroke||"none",strokeWidth:r.strokeWidth,opacity:r.opacity};m.push({type:"bezier",pathD:o,bezierCache:t.bezier,style:l,datum:t})}if(!1!==i.showLabels){const e=(k=i.nodeLabel)?"function"==typeof k?k:t=>t[k]||t.id:null;for(const i of t){const t=i.x1-i.x0,n=i.y1-i.y0;if(0>=t||0>=n)continue;const o=e?e(i):i.id;if(!o)continue;let s,a,c;"down"===l?(s=i.y0+(i.y1-i.y0)/2,a=i.x1+14,c="middle"):(r[0]/2>i.x0+t/2?(s=i.x0-6,c="end"):(s=i.x1+6,c="start"),a=i.y0+n/2),v.push({x:s,y:a,text:o+"",anchor:c,baseline:"middle",fontSize:11})}}var k;return{sceneNodes:p,sceneEdges:m,labels:v}}},Mt={supportsStreaming:!0,hierarchical:!1,computeLayout(t,e,i,n){var r,o;if(0===t.length)return;const a=null!==(r=i.forceStrength)&&void 0!==r?r:.1,c=n[0]/2,l=n[1]/2,u=i.__previousPositions;let h=0;const f=[];for(const e of t){const t=null!=e.x&&null!=e.y&&(0!==e.x||0!==e.y),i=null==u?void 0:u.get(e.id);t?h++:i?(e.x=i.x,e.y=i.y,h++):f.push(e)}const d=h>0&&.3>=(t.length>0?f.length/t.length:1);if(d){const i=new Map;for(const e of t)i.set(e.id,e);for(const t of f){const n=St(t.id,e,i);if(n.length>0){let e=0,i=0;for(const t of n)e+=t.x,i+=t.y;const r=Et(t.id),o=r%360*(Math.PI/180),s=10+r%20;t.x=e/n.length+s*Math.cos(o),t.y=i/n.length+s*Math.sin(o)}else{const e=Et(t.id),i=e%360*(Math.PI/180),n=15+e%30;t.x=c+n*Math.cos(i),t.y=l+n*Math.sin(i)}}}else{const e=2.399963229728653;for(let i=0;t.length>i;i++){const n=t[i];if(null==n.x||null==n.y||0===n.x&&0===n.y){const t=10*Math.sqrt(i+.5),r=i*e;n.x=c+t*Math.cos(r),n.y=l+t*Math.sin(r)}}}const g=null!==(o=i.iterations)&&void 0!==o?o:Math.max(50,Math.min(300,Math.floor(300-2*(t.length-30)))),y=d?40:g,p=Lt(i.nodeSize,i.nodeSizeRange,t),m=t=>p(t),v=s.forceLink().strength(t=>Math.min(2.5,t.weight?t.weight*a:a)).id(t=>t.id),x=s.forceSimulation().force("charge",s.forceManyBody().strength(t=>-25*m(t))).force("center",s.forceCenter(c,l).strength(.8)).force("x",s.forceX(c).strength(.15)).force("y",s.forceY(l).strength(.15));if(x.nodes(t),e.length>0){const t=e.map(t=>Object.assign(Object.assign({},t),{source:"string"==typeof t.source?t.source:t.source.id,target:"string"==typeof t.target?t.target:t.target.id}));x.force("link",v),x.force("link").links(t)}d?x.alpha(.3):.1>x.alpha()&&x.alpha(1),x.stop();for(let t=0;y>t;++t)x.tick();for(const e of t){if(null==e.x||null==e.y)continue;const t=m(e);e.x=Math.max(t,Math.min(n[0]-t,e.x)),e.y=Math.max(t,Math.min(n[1]-t,e.y)),e.x0=0,e.x1=0,e.y0=0,e.y1=0}const b=new Map;for(const e of t)b.set(e.id,e);for(const t of e){if("string"==typeof t.source){const e=b.get(t.source);e&&(t.source=e)}if("string"==typeof t.target){const e=b.get(t.target);e&&(t.target=e)}}},buildScene(t,e,i,r){var o,s,a;const c=i.nodeStyle,l=i.edgeStyle,u=Lt(i.nodeSize,i.nodeSizeRange,t),h=Array.isArray(i.colorScheme)?i.colorScheme:n.schemeCategory10,f=new Map;t.forEach((t,e)=>{f.set(t.id,h[e%h.length])});const d=[],g=[],y=[];for(const e of t){if(null==e.x||null==e.y)continue;const t=u(e),i=c?c(e):{},n={fill:i.fill||f.get(e.id)||"#007bff",stroke:i.stroke||"#fff",strokeWidth:null!==(o=i.strokeWidth)&&void 0!==o?o:2,opacity:i.opacity};d.push({type:"circle",cx:e.x,cy:e.y,r:t,style:n,datum:e,id:e.id,label:e.id})}const p=new Map;for(const e of t)p.set(e.id,e);for(const t of e){const e="object"==typeof t.source?t.source:p.get(t.source),i="object"==typeof t.target?t.target:p.get(t.target);if(!e||!i)continue;if(null==e.x||null==e.y)continue;if(null==i.x||null==i.y)continue;const n=l?l(t):{},r={stroke:n.stroke||"#999",strokeWidth:null!==(s=n.strokeWidth)&&void 0!==s?s:1,opacity:null!==(a=n.opacity)&&void 0!==a?a:.6};g.push({type:"line",x1:e.x,y1:e.y,x2:i.x,y2:i.y,style:r,datum:t})}if(!1!==i.showLabels){const e=(m=i.nodeLabel)?"function"==typeof m?m:t=>t[m]||t.id:null;for(const i of t){if(null==i.x||null==i.y)continue;const t=e?e(i):i.id;if(!t)continue;const n=u(i);y.push({x:i.x,y:i.y-n-4,text:t+"",anchor:"middle",baseline:"auto",fontSize:11})}}var m;return{sceneNodes:d,sceneEdges:g,labels:y}}};function St(t,e,i){const n=[];for(const r of e){const e="string"==typeof r.source?r.source:r.source.id,o="string"==typeof r.target?r.target:r.target.id;let s=null;if(e===t?s=o:o===t&&(s=e),s){const t=i.get(s);!t||0===t.x&&0===t.y||n.push({x:t.x,y:t.y})}}return n}function Et(t){let e=0;for(let i=0;t.length>i;i++)e=(e<<5)-e+t.charCodeAt(i)|0;return Math.abs(e)}function Lt(t,i,n){var o,s;if(null==t)return()=>8;if("number"==typeof t)return()=>t;if("function"==typeof t)return e=>t(e)||8;const a=i||[5,20],c=n.map(e=>{var i;return null===(i=e.data)||void 0===i?void 0:i[t]}).filter(t=>null!=t&&"number"==typeof t);if(0===c.length)return()=>a[0];const l=null!==(o=r.min(c))&&void 0!==o?o:0,u=null!==(s=r.max(c))&&void 0!==s?s:1;if(l===u)return()=>(a[0]+a[1])/2;const h=e.scaleLinear().domain([l,u]).range(a).clamp(!0);return e=>{var i;const n=null===(i=e.data)||void 0===i?void 0:i[t];return null==n||"number"!=typeof n?a[0]:h(n)}}const Dt=n.schemeCategory10,Ot={supportsStreaming:!1,hierarchical:!1,computeLayout(t,e,i,n){if(0===t.length)return;const{padAngle:r=.01,groupWidth:o=20,sortGroups:s}=i,l=Math.min(n[0],n[1])/2,u=l-o,h=n[0]/2,f=n[1]/2,d=(g=i.valueAccessor)?"function"==typeof g?g:t=>{var e;return null!==(e=t[g])&&void 0!==e?e:1}:t=>{var e;return null!==(e=t.value)&&void 0!==e?e:1};var g;const y=new Map;for(let e=0;t.length>e;e++)y.set(t[e].id,e);const p=t.length,m=Array.from({length:p},()=>Array.from({length:p},()=>0));for(const t of e){const e="string"==typeof t.target?t.target:t.target.id,i=y.get("string"==typeof t.source?t.source:t.source.id),n=y.get(e);if(void 0===i||void 0===n)continue;const r=d(t);m[i][n]=r}const v=a.chord().padAngle(r);s&&v.sortGroups(s);const x=v(m),b=x.groups,k=c.arc().innerRadius(u).outerRadius(l);for(const e of b){const i=t[e.index],n=k.centroid(e);i.x=n[0]+h,i.y=n[1]+f,i.arcData={startAngle:e.startAngle,endAngle:e.endAngle}}const w=new Map;for(const e of t)w.set(e.id,e);for(const t of e){const e="string"==typeof t.target?t.target:t.target.id,i=w.get("string"==typeof t.source?t.source:t.source.id),n=w.get(e);i&&(t.source=i),n&&(t.target=n)}const _=new Map;for(const t of e)_.set(`${"string"==typeof t.source?t.source:t.source.id}\0${"string"==typeof t.target?t.target:t.target.id}`,t);for(const e of x){const i=t[e.source.index].id,n=t[e.target.index].id,r=_.get(`${i}\0${n}`)||_.get(`${n}\0${i}`);r&&(r.chordData=e)}},buildScene(t,e,i,n){var r,o;const{groupWidth:s=20,edgeOpacity:c=.5}=i,l=Math.min(n[0],n[1])/2,u=l-s,h=n[0]/2,f=n[1]/2,d=i.nodeStyle,g=i.edgeStyle,y=i.edgeColorBy||"source",p=Array.isArray(i.colorScheme)?i.colorScheme:Dt,m=new Map;t.forEach((t,e)=>{m.set(t.id,p[e%p.length])});const v=a.ribbon().radius(u),x=[],b=[],k=[];for(let e=0;t.length>e;e++){const i=t[e],n=i.arcData;if(!n)continue;let o;o=d?d(i).fill||m.get(i.id)||p[e%p.length]:m.get(i.id)||p[e%p.length];const s=d?d(i):{},a={fill:o,stroke:s.stroke||"black",strokeWidth:null!==(r=s.strokeWidth)&&void 0!==r?r:1,opacity:s.opacity};x.push({type:"arc",cx:h,cy:f,innerR:u,outerR:l,startAngle:n.startAngle-Math.PI/2,endAngle:n.endAngle-Math.PI/2,style:a,datum:i,id:i.id,label:i.id})}for(const t of e){const e=t.chordData;if(!e)continue;const i=v(e);if(!i)continue;const n=Nt(i,h,f);let r="#999";if(g)r=g(t).fill||r;else{const e="object"==typeof t.source?t.source:null,i="object"==typeof t.target?t.target:null;"target"===y&&i?r=m.get(i.id)||r:e&&(r=m.get(e.id)||r)}const s=g?g(t):{},a={fill:r,fillOpacity:null!==(o=s.fillOpacity)&&void 0!==o?o:c,stroke:s.stroke||"none",strokeWidth:s.strokeWidth,opacity:s.opacity};b.push({type:"ribbon",pathD:n,style:a,datum:t})}if(!1!==i.showLabels){const e=(w=i.nodeLabel)?"function"==typeof w?w:t=>t[w]||t.id:null,n=l+12;for(const i of t){const t=i.arcData;if(!t)continue;const r=e?e(i):i.id;if(!r)continue;const o=(t.startAngle+t.endAngle)/2,s=o-Math.PI/2;k.push({x:h+Math.cos(s)*n,y:f+Math.sin(s)*n,text:r+"",anchor:o>Math.PI?"end":"start",baseline:"middle",fontSize:11})}}var w;return{sceneNodes:x,sceneEdges:b,labels:k}}};function Nt(t,e,i){const n=t.match(/[a-zA-Z]|[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?/g);if(!n)return t;const r=[];let o=0;for(;n.length>o;){const t=n[o];if("M"===t||"L"===t)for(r.push(t),o++;n.length>o&&!isNaN(Number(n[o]));)r.push(Number(n[o])+e+""),o++,n.length>o&&!isNaN(Number(n[o]))&&(r.push(Number(n[o])+i+""),o++);else if("C"===t)for(r.push(t),o++;n.length>o&&!isNaN(Number(n[o]));)for(let t=0;3>t&&n.length>o&&!isNaN(Number(n[o]));t++)r.push(Number(n[o])+e+""),o++,n.length>o&&!isNaN(Number(n[o]))&&(r.push(Number(n[o])+i+""),o++);else if("Q"===t)for(r.push(t),o++;n.length>o&&!isNaN(Number(n[o]));)for(let t=0;2>t&&n.length>o&&!isNaN(Number(n[o]));t++)r.push(Number(n[o])+e+""),o++,n.length>o&&!isNaN(Number(n[o]))&&(r.push(Number(n[o])+i+""),o++);else if("A"===t)for(r.push(t),o++;n.length>o&&!isNaN(Number(n[o]));)r.push(n[o++]),n.length>o&&r.push(n[o++]),n.length>o&&r.push(n[o++]),n.length>o&&r.push(n[o++]),n.length>o&&r.push(n[o++]),n.length>o&&(r.push(Number(n[o])+e+""),o++),n.length>o&&(r.push(Number(n[o])+i+""),o++);else"Z"===t||"z"===t?(r.push(t),o++):(r.push(n[o]),o++)}return r.join(" ")}const $t=["#e8d5b7","#b8d4e3","#d4e3b8","#e3c4d4","#d4d4e3","#e3d4b8","#b8e3d4","#e3b8b8"];function Tt(t){const[e,i,n]=function(t){if(t.startsWith("#")){let e=t.slice(1);if(3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),6===e.length)return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}const e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return e?[+e[1],+e[2],+e[3]]:[128,128,128]}(t);return.299*e+.587*i+.114*n>150?"#222":"#fff"}function Wt(t,e,i){const n=e.nodeIDAccessor;return"function"==typeof n?n(t.data)+"":"string"==typeof n&&void 0!==t.data[n]?t.data[n]+"":void 0!==t.data.name?t.data.name+"":void 0!==t.data.id?t.data.id+"":"node-"+i}function jt(t){return t?"function"==typeof t?t:e=>{var i;return(null===(i=e.data)||void 0===i?void 0:i[t])||e[t]||e.id}:null}function Ct(t,e,i,n,r){if("horizontal"===r){const r=(t+i)/2;return`M ${t},${e} C ${r},${e} ${r},${n} ${i},${n}`}if("radial"===r){const r=(t+i)/2;return`M ${t},${e} Q ${r},${e} ${r},${(e+n)/2} T ${i},${n}`}{const r=(e+n)/2;return`M ${t},${e} C ${t},${r} ${i},${r} ${i},${n}`}}const Rt={supportsStreaming:!1,hierarchical:!0,computeLayout(t,e,i,n){var r;const o=i.__hierarchyRoot;if(!o)return;const s=i.chartType,a=function(t){if(t)return"function"==typeof t?t:e=>e[t]}(i.childrenAccessor),c=i.hierarchySum||(t=>{var e;return null!==(e=t.value)&&void 0!==e?e:0}),u=l.hierarchy(o,a);u.sum(c),u.sort((t,e)=>{var i,n;return(null!==(i=e.value)&&void 0!==i?i:0)-(null!==(n=t.value)&&void 0!==n?n:0)});const[h,f]=n;switch(s){case"tree":!function(t,e,i,n){const r=e.treeOrientation||"vertical",o=l.tree();o.size("horizontal"===r?[n,i]:"radial"===r?[2*Math.PI,Math.min(i,n)/2*.8]:[i,n]),o(t)}(u,i,h,f);break;case"cluster":!function(t,e,i,n){const r=e.treeOrientation||"vertical",o=l.cluster();o.size("horizontal"===r?[n,i]:"radial"===r?[2*Math.PI,Math.min(i,n)/2*.8]:[i,n]),o(t)}(u,i,h,f);break;case"treemap":!function(t,e,i,n){var r,o;const s=null!==(r=e.padding)&&void 0!==r?r:4,a=null!==(o=e.paddingTop)&&void 0!==o?o:0,c=l.treemap().size([i,n]).tile(l.treemapBinary).padding(s);a>0&&c.paddingTop(a),c(t)}(u,i,h,f);break;case"circlepack":!function(t,e,i,n){var r;const o=null!==(r=e.padding)&&void 0!==r?r:4;l.pack().size([i,n]).padding(o)(t)}(u,i,h,f);break;case"partition":!function(t,e,i,n){var r;l.partition().size([i,n]).padding(null!==(r=e.padding)&&void 0!==r?r:1)(t)}(u,i,h,f)}const d=u.descendants();t.length=0,e.length=0;const g=new Map;for(let e=0;d.length>e;e++){const n=d[e],o={id:Wt(n,i,e),x:0,y:0,x0:0,x1:0,y0:0,y1:0,width:0,height:0,value:null!==(r=n.value)&&void 0!==r?r:0,depth:n.depth,data:n.data,createdByFrame:!0};"tree"===s||"cluster"===s?zt(o,n,i):"treemap"===s||"partition"===s?Bt(o,n):"circlepack"===s&&It(o,n),o.__hierarchyNode=n,t.push(o),g.set(n,o)}if("tree"===s||"cluster"===s)for(const t of d)if(t.parent){const i=g.get(t.parent),n=g.get(t);i&&n&&e.push({source:i,target:n,value:1,y0:0,y1:0,sankeyWidth:0,data:{depth:t.depth}})}},buildScene(t,e,i,n){const r=i.nodeStyle||(()=>({})),o=i.edgeStyle||(()=>({}));switch(i.chartType){case"tree":case"cluster":return function(t,e,i,n,r,o){var s,a,c,l,u;const h=[],f=[],d=[],g=i.treeOrientation||"vertical",y="radial"===g,p=n[0]/2,m=n[1]/2,v="number"==typeof(x=i.nodeSize)?x:5;var x;for(const e of t){let t=e.x,n=e.y;y&&(t+=p,n+=m);const o=r(e);let a=o.fill||"#4d430c";i.colorByDepth&&void 0!==e.depth&&(a=$t[e.depth%$t.length]);const c={fill:a,stroke:o.stroke||"#fff",strokeWidth:null!==(s=o.strokeWidth)&&void 0!==s?s:1,opacity:o.opacity};h.push({type:"circle",cx:t,cy:n,r:v,style:c,datum:e,id:e.id,label:e.id,depth:e.depth})}const b=null!==(a=i.edgeOpacity)&&void 0!==a?a:.5;for(const t of e){const e="object"==typeof t.source?t.source:null,i="object"==typeof t.target?t.target:null;if(!e||!i)continue;let n=e.x,r=e.y,s=i.x,a=i.y;y&&(n+=p,r+=m,s+=p,a+=m);const u=Ct(n,r,s,a,g),h=o(t),d={fill:"none",stroke:h.stroke||"#999",strokeWidth:null!==(c=h.strokeWidth)&&void 0!==c?c:1.5,opacity:null!==(l=h.opacity)&&void 0!==l?l:b};f.push({type:"curved",pathD:u,style:d,datum:t})}if(!1!==i.showLabels){const e=jt(i.nodeLabel);for(const i of t){const t=e?e(i):i.id;if(!t)continue;let n,r,o,s=i.x,a=i.y;if(y&&(s+=p,a+=m),y){const t=s-p,e=a-m,i=Math.sqrt(t*t+e*e);i>0?(n=s+t/i*10,r=a+e/i*10,o=0>t?"end":"start"):(n=s,r=a-12,o="middle")}else"horizontal"===g?((null===(u=i.data)||void 0===u?void 0:u.children)&&0!==i.data.children.length?(n=s-v-6,o="end"):(n=s+v+6,o="start"),r=a):(n=s,r=a+v+14,o="middle");d.push({x:n,y:r,text:t+"",anchor:o,baseline:"middle",fontSize:11})}}return{sceneNodes:h,sceneEdges:f,labels:d}}(t,e,i,n,r,o);case"treemap":case"partition":return function(t,e,i,n){var r,o;const s=[],a=[];for(const i of t){const t=i.x1-i.x0,o=i.y1-i.y0;if(0>=t||0>=o)continue;const a=n(i);let c=a.fill||"#4d430c";e.colorByDepth&&void 0!==i.depth&&(c=$t[i.depth%$t.length]);const l={fill:c,stroke:a.stroke||"#fff",strokeWidth:null!==(r=a.strokeWidth)&&void 0!==r?r:1,opacity:a.opacity};s.push({type:"rect",x:i.x0,y:i.y0,w:t,h:o,style:l,datum:i,id:i.id,label:i.id,depth:i.depth})}if(!1!==e.showLabels){const i=jt(e.nodeLabel),r=e.labelMode||"leaf",s="partition"===e.chartType;for(const c of t){const t=c.x1-c.x0,l=c.y1-c.y0;if(0>=t||0>=l)continue;const u=!((null===(o=c.data)||void 0===o?void 0:o.children)&&c.data.children.length>0);if(!s){if("leaf"===r&&!u)continue;if("parent"===r&&u)continue}const h=i?i(c):c.id;if(!h)continue;if((u?30:40)>t||(u?16:14)>l)continue;let f=n(c).fill||"#4d430c";e.colorByDepth&&void 0!==c.depth&&(f=$t[c.depth%$t.length]);const d=Tt(f);a.push(u?{x:c.x0+t/2,y:c.y0+l/2,text:h+"",anchor:"middle",baseline:"middle",fontSize:Math.min(11,Math.max(8,Math.min(t,l)/6)),fill:d}:{x:c.x0+4,y:c.y0+12,text:h+"",anchor:"start",baseline:"auto",fontSize:11,fontWeight:600,fill:d})}}return{sceneNodes:s,sceneEdges:[],labels:a}}(t,i,0,r);case"circlepack":return function(t,e,i,n){var r,o,s,a,c;const l=[],u=[];for(const i of t){const t=null!==(r=i.__radius)&&void 0!==r?r:5;if(0>=t)continue;const a=n(i);let c=a.fill||"#4d430c";e.colorByDepth&&void 0!==i.depth&&(c=$t[i.depth%$t.length]);const u={fill:c,stroke:a.stroke||"#fff",strokeWidth:null!==(o=a.strokeWidth)&&void 0!==o?o:1,opacity:null!==(s=a.opacity)&&void 0!==s?s:.7};l.push({type:"circle",cx:i.x,cy:i.y,r:t,style:u,datum:i,id:i.id,label:i.id,depth:i.depth})}if(!1!==e.showLabels){const i=jt(e.nodeLabel);for(const r of t){const t=null!==(a=r.__radius)&&void 0!==a?a:5,o=i?i(r):r.id;if(!o)continue;if(15>t)continue;const s=!((null===(c=r.data)||void 0===c?void 0:c.children)&&r.data.children.length>0);let l=n(r).fill||"#4d430c";if(e.colorByDepth&&void 0!==r.depth&&(l=$t[r.depth%$t.length]),s){const e=Tt(l);u.push({x:r.x,y:r.y,text:o+"",anchor:"middle",baseline:"middle",fontSize:Math.min(11,Math.max(8,t/3)),fill:e})}else u.push({x:r.x,y:r.y-t+14,text:o+"",anchor:"middle",baseline:"hanging",fontSize:Math.min(11,Math.max(8,t/3)),fill:"#000",stroke:"#fff",strokeWidth:3,paintOrder:"stroke"})}}return{sceneNodes:l,sceneEdges:[],labels:u}}(t,i,0,r);default:return{sceneNodes:[],sceneEdges:[],labels:[]}}}};function zt(t,e,i){const n=i.treeOrientation||"vertical";if("radial"===n){const i=e.x,n=e.y;t.x=n*Math.cos(i-Math.PI/2),t.y=n*Math.sin(i-Math.PI/2)}else"horizontal"===n?(t.x=e.y,t.y=e.x):(t.x=e.x,t.y=e.y);t.x0=t.x-5,t.x1=t.x+5,t.y0=t.y-5,t.y1=t.y+5,t.width=10,t.height=10}function Bt(t,e){t.x0=e.x0,t.x1=e.x1,t.y0=e.y0,t.y1=e.y1,t.x=(e.x0+e.x1)/2,t.y=(e.y0+e.y1)/2,t.width=e.x1-e.x0,t.height=e.y1-e.y0}function It(t,e){var i;const n=null!==(i=e.r)&&void 0!==i?i:0;t.x=e.x,t.y=e.y,t.x0=e.x-n,t.x1=e.x+n,t.y0=e.y-n,t.y1=e.y+n,t.width=2*n,t.height=2*n,t.__radius=n}function Yt(t){const e=t;return e.__orbitState||(e.__orbitState={metaMap:new Map,startTime:"undefined"!=typeof performance?performance.now():Date.now()}),e.__orbitState}const Xt={sankey:Pt,force:Mt,chord:Ot,tree:Rt,cluster:Rt,treemap:Rt,circlepack:Rt,partition:Rt,orbit:{supportsStreaming:!1,hierarchical:!0,supportsAnimation:!0,computeLayout(t,e,i,n){const r=i.__hierarchyRoot;r&&function(t,e,i,n,r){var o,s;const a=function(t){if("function"==typeof t)return t;const e=t||"children";return t=>t[e]||null}(i.childrenAccessor),l=function(t){if("function"==typeof t)return t;const e=t||"name";return t=>{var i;return(null!==(i=t[e])&&void 0!==i?i:"")+""}}(i.nodeIDAccessor),u=function(t){if(Array.isArray(t))return t;switch(t){case"solar":return[1];case"atomic":return[2,8];default:return[9999]}}(i.orbitMode),h=null!==(o=i.orbitSize)&&void 0!==o?o:2.95,f=null!==(s=i.orbitEccentricity)&&void 0!==s?s:1,d="number"==typeof h?()=>h:h,g="number"==typeof f?()=>f:f,y=Yt(i);y.metaMap.clear(),n.length=0,r.length=0;const p=new Map;function m(t){var e;const i=null!==(e=p.get(t))&&void 0!==e?e:0;return p.set(t,i+1),0===i?t:`${t}__${i}`}const v=e[0]/2,x=e[1]/2,b=Math.min(e[0],e[1])/2*.85,k=m(l(t));n.push({id:k,x:v,y:x,x0:v,x1:v,y0:x,y1:x,width:0,height:0,value:0,depth:0,data:t}),y.metaMap.set(k,{ring:b,angle:0,depth:0,parentId:null,eccentricity:1}),function t(e,i,o,s,h,f,p){const v=a(e);if(!(null==v?void 0:v.length))return;const x=v.length;let b=0,k=0,w=0;for(;x>k;)k+=u[Math.min(w,u.length-1)],w++,b++;let _=0;for(let x=0;b>x;x++){const k=u[Math.min(x,u.length-1)],w=v.slice(_,_+k);if(!w.length)break;const A=(x+1)/b,P={id:i,depth:f,data:e,parentId:i},M=p?h/d(P)*A:h*A,S=c.pie().value(t=>{var e;return(null===(e=a(t))||void 0===e?void 0:e.length)?4:1}).sort(null),E=S(w),L=g(P);for(let e=0;w.length>e;e++){const a=(E[e].startAngle+E[e].endAngle)/2,c=w[e],u=m(l(c)),h=o+M*Math.sin(a),d=s+M*Math.cos(a)*L;n.push({id:u,x:h,y:d,x0:h,x1:h,y0:d,y1:d,width:0,height:0,value:0,depth:f,data:c}),y.metaMap.set(u,{ring:M,angle:a,depth:f,parentId:i,eccentricity:L}),r.push({source:i,target:u,value:1,y0:0,y1:0,sankeyWidth:0,data:{source:i,target:u}}),t(c,u,h,d,M,f+1,!0)}_+=k}}(t,k,v,x,b,1,!1)}(r,n,i,t,e)},buildScene(t,e,i,n){var r,o,s,a,c;const l=i.nodeStyle,u=i.nodeSize,h="number"==typeof u?()=>u:"function"==typeof u?u:()=>6,f=[],d=[],g=[];if(!1!==i.orbitShowRings){const e=Yt(i),n=new Map;for(const e of t)n.set(e.id,e);const r=new Map;for(const[,t]of e.metaMap){if(!t.parentId)continue;const e=n.get(t.parentId);if(!e)continue;const i=`${t.parentId}:${t.ring}`;r.has(i)||r.set(i,{parentX:e.x,parentY:e.y,ring:t.ring,ecc:t.eccentricity})}const o=48,s={stroke:"rgba(128,128,128,0.35)",strokeWidth:.5,opacity:1};for(const[,{parentX:t,parentY:e,ring:i,ecc:n}]of r)for(let r=0;o>r;r++){const a=r/o*Math.PI*2,c=(r+1)/o*Math.PI*2;d.push({type:"line",x1:t+i*Math.sin(a),y1:e+i*Math.cos(a)*n,x2:t+i*Math.sin(c),y2:e+i*Math.cos(c)*n,style:s,datum:null})}}for(const e of t){if(null==e.x||null==e.y)continue;const t=h(e),i=l?l(e):{},n={fill:i.fill||"#6366f1",stroke:i.stroke||"#fff",strokeWidth:null!==(r=i.strokeWidth)&&void 0!==r?r:1,opacity:null!==(o=i.opacity)&&void 0!==o?o:0===(null!==(s=e.depth)&&void 0!==s?s:0)?1:.85};f.push({type:"circle",cx:e.x,cy:e.y,r:t,style:n,datum:e,id:e.id,label:e.id,depth:e.depth})}const y=new Map;for(const e of t)y.set(e.id,e);for(const t of e){const e="object"==typeof t.source?t.source:y.get(t.source),i="object"==typeof t.target?t.target:y.get(t.target);e&&i&&(null!=e.x&&null!=i.x&&d.push({type:"line",x1:e.x,y1:e.y,x2:i.x,y2:i.y,style:{stroke:"rgba(128,128,128,0.35)",strokeWidth:.5,opacity:1},datum:t}))}if(i.showLabels){const e=i.nodeLabel;for(const i of t){const t=h(i);if(4>=t)continue;const n="function"==typeof e?e(i):e&&null!==(c=null===(a=i.data)||void 0===a?void 0:a[e])&&void 0!==c?c:i.id;g.push({x:i.x,y:i.y+t+12,text:n+"",anchor:"middle",fontSize:10,fill:"currentColor"})}}return{sceneNodes:f,sceneEdges:d,labels:g}},tick:(t,e,i,n,r)=>!1!==i.orbitAnimated&&(function(t,e){var i,n;const r=Yt(e),o=null!==(i=e.orbitSpeed)&&void 0!==i?i:.25,s=null!==(n=e.orbitRevolution)&&void 0!==n?n:function(t){switch(t){case"decay":return t=>{var e;return Math.pow(.6,null!==(e=t.depth)&&void 0!==e?e:0)};case"alternate":return t=>{var e;const i=null!==(e=t.depth)&&void 0!==e?e:0;return(i%2==0?1:-1)/(i+1)};default:return t=>{var e;return 1/((null!==(e=t.depth)&&void 0!==e?e:0)+1)}}}(e.orbitRevolutionStyle),a=(("undefined"!=typeof performance?performance.now():Date.now())-r.startTime)/1e3,c=o*(Math.PI/6),l=new Map;for(const e of t)l.set(e.id,e);for(const e of t){const t=r.metaMap.get(e.id);if(!t||!t.parentId)continue;const i=l.get(t.parentId);if(!i)continue;const n=t.angle+a*c*s({id:e.id,depth:t.depth,data:e.data,parentId:t.parentId});e.x=i.x+t.ring*Math.sin(n),e.y=i.y+t.ring*Math.cos(n)*t.eccentricity,e.x0=e.x,e.x1=e.x,e.y0=e.y,e.y1=e.y}}(t,i),!0)}};function Ft(t,e){const{columns:i,config:n,resolvePieceStyle:r}=t,o=[],s=Math.min(e.width,e.height)/2-4,a="donut"===n.chartType?n.innerRadius||60:0,c=-Math.PI/2+(n.startAngle||0)*Math.PI/180,l=2*Math.PI;for(const t of Object.values(i)){const e=c+t.pctStart*l,i=c+(t.pctStart+t.pct)*l,n=r(t.pieceData[0],t.name);o.push({type:"wedge",cx:0,cy:0,innerRadius:a,outerRadius:s,startAngle:e,endAngle:i,style:n,datum:t.pieceData,category:t.name})}return o}function qt(t){var e,i,n;const o=t.length,s=t[0],a=t[o-1];return{n:o,min:s,q1:null!==(e=r.quantile(t,.25))&&void 0!==e?e:s,median:null!==(i=r.quantile(t,.5))&&void 0!==i?i:(s+a)/2,q3:null!==(n=r.quantile(t,.75))&&void 0!==n?n:a,max:a,mean:t.reduce((t,e)=>t+e,0)/o}}const Vt={bar:function(t,e){const{scales:i,columns:n,config:r,getR:o,getStack:s,resolvePieceStyle:a}=t,{r:c,projection:l}=i,u=[],h="vertical"===l,f="horizontal"===l,d=r.normalize,g=[];if(s){const t=new Set;for(const e of Object.values(n))for(const i of e.pieceData){const e=s(i);t.has(e)||(t.add(e),g.push(e))}}else g.push("_default");for(const t of Object.values(n)){const e=new Map;for(const i of t.pieceData){const t=s?s(i):"_default";e.has(t)||e.set(t,{total:0,pieces:[]});const n=e.get(t);n.total+=o(i),n.pieces.push(i)}let i=0;if(d)for(const t of e.values())i+=Math.abs(t.total);let n=0,r=0;for(const o of g){const l=e.get(o);if(!l)continue;let g=l.total;d&&i>0&&(g/=i);const y=a(l.pieces[0],s?o:t.name),p=Object.assign(Object.assign({},l.pieces[0]),{__aggregateValue:l.total,__pieceCount:l.pieces.length,category:t.name});if(h){const e=c(0>g?r:n+g),i=0>g?c(r+g)-c(r):c(n)-c(n+g);u.push(O(t.x,e,t.width,Math.abs(i),y,p,o)),0>g?r+=g:n+=g}else if(f){const e=c(0>g?r+g:n),i=0>g?c(r)-c(r+g):c(n+g)-c(n);u.push(O(e,t.x,Math.abs(i),t.width,y,p,o)),0>g?r+=g:n+=g}}}return u},clusterbar:function(t,e){const{scales:i,columns:n,getR:r,getGroup:o,resolvePieceStyle:s}=t,{r:a,projection:c}=i,l=[],u="vertical"===c,h=[],f=new Set;for(const t of Object.values(n))for(const e of t.pieceData){const t=o?o(e):"_default";f.has(t)||(f.add(t),h.push(t))}const d=h.length||1;for(const t of Object.values(n)){const e=t.width/d,i=.2*e,n=e-i,c=new Map;for(const e of t.pieceData){const t=o?o(e):"_default";c.has(t)||c.set(t,[]),c.get(t).push(e)}for(let o=0;h.length>o;o++){const f=c.get(h[o])||[];for(const c of f){const f=r(c),d=s(c,h[o]);if(u){const r=t.x+o*e+i/2,s=a(0),u=a(f);l.push(O(r,Math.min(s,u),n,Math.abs(s-u),d,c,h[o]))}else{const r=t.x+o*e+i/2,s=a(0),u=a(f);l.push(O(Math.min(s,u),r,Math.abs(u-s),n,d,c,h[o]))}}}}return l},point:function(t,e){var i,n;const{scales:r,columns:o,getR:s,multiScales:a,resolvePieceStyle:c}=t,{r:l,projection:u}=r,h=[],f="vertical"===u,d="radial"===u,g=a.length>0,y=2*Math.PI,p=-Math.PI/2;for(const t of Object.values(o))for(const e of t.pieceData){const r=null!==(i=e.__rIndex)&&void 0!==i?i:0,o=null!==(n=e.__rValue)&&void 0!==n?n:s(e),u=g&&a[r]||l,m=c(e,t.name),v=m.r||5;let x,b;if(d){const e=p+(t.pctStart+t.pct/2)*y,i=u(o);x=Math.cos(e)*i,b=Math.sin(e)*i}else f?(x=t.middle,b=u(o)):(x=u(o),b=t.middle);h.push({type:"point",x:x,y:b,r:v,style:m,datum:e})}return h},swarm:function(t,e){const{scales:i,columns:n,getR:r,resolvePieceStyle:o}=t,{r:s,projection:a}=i,c=[],l="vertical"===a;for(const t of Object.values(n)){const e=t.width/2;for(let i=0;t.pieceData.length>i;i++){const n=t.pieceData[i],a=r(n),u=o(n,t.name),h=u.r||4,f=(7919*i%100/100-.5)*e*.8,d=l?t.middle+f:s(a),g=l?s(a):t.middle+f;c.push({type:"point",x:d,y:g,r:h,style:u,datum:n})}}return c},pie:Ft,donut:Ft,boxplot:function(t,e){var i,n,o,s,a;const{scales:c,columns:l,config:u,getR:h,resolveSummaryStyle:f}=t,{r:d,projection:g}=c,y=[],p="vertical"===g,m=!1!==u.showOutliers;for(const t of Object.values(l)){const e=t.pieceData.map(t=>h(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(0===e.length)continue;const c=e[0],l=e[e.length-1],u=null!==(i=r.quantile(e,.25))&&void 0!==i?i:c,g=null!==(n=r.quantile(e,.5))&&void 0!==n?n:(c+l)/2,v=null!==(o=r.quantile(e,.75))&&void 0!==o?o:l,x=v-u,b=u-1.5*x,k=v+1.5*x,w=null!==(s=e.find(t=>t>=b))&&void 0!==s?s:c,_=null!==(a=[...e].reverse().find(t=>k>=t))&&void 0!==a?a:l,A=f(t.pieceData[0],t.name),P=[];if(m)for(const e of t.pieceData){const i=h(e);if(b>i||i>k){const n=p?t.middle:d(i),r=p?d(i):t.middle;P.push({px:n,py:r,value:i,datum:e})}}if(y.push({type:"boxplot",x:p?t.middle:0,y:p?0:t.middle,projection:p?"vertical":"horizontal",columnWidth:.6*t.width,minPos:d(w),q1Pos:d(u),medianPos:d(g),q3Pos:d(v),maxPos:d(_),stats:{n:e.length,min:w,q1:u,median:g,q3:v,max:_,mean:e.reduce((t,e)=>t+e,0)/e.length},style:A,datum:t.pieceData,category:t.name,outliers:P}),m)for(const t of P)y.push({type:"point",x:t.px,y:t.py,r:3,style:{fill:A.fill||"#999",opacity:.6},datum:t.datum})}return y},violin:function(t,e){var i,n,o;const{scales:s,columns:a,config:c,getR:l,resolveSummaryStyle:u}=t,{r:h,projection:f}=s,d=[],g="vertical"===f,y=c.bins||20,p=!1!==c.showIQR;for(const t of Object.values(a)){const e=t.pieceData.map(t=>l(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const s=e[0],a=e[e.length-1],c=(a-s)/y||1,f=Array(y).fill(0);for(const t of e)f[Math.min(Math.floor((t-s)/c),y-1)]++;const m=Math.max(...f,1),v=t.width/2*.9;let x="";if(g){x=`M ${t.middle} ${h(s)}`;for(let e=0;y>e;e++){const i=h(s+(e+.5)*c);x+=` L ${t.middle+f[e]/m*v} ${i}`}x+=` L ${t.middle} ${h(a)}`;for(let e=y-1;e>=0;e--){const i=h(s+(e+.5)*c);x+=` L ${t.middle-f[e]/m*v} ${i}`}x+=" Z"}else{x=`M ${h(s)} ${t.middle}`;for(let e=0;y>e;e++)x+=` L ${h(s+(e+.5)*c)} ${t.middle-f[e]/m*v}`;x+=` L ${h(a)} ${t.middle}`;for(let e=y-1;e>=0;e--)x+=` L ${h(s+(e+.5)*c)} ${t.middle+f[e]/m*v}`;x+=" Z"}const b=u(t.pieceData[0],t.name);let k;if(p&&e.length>=4){const c=null!==(i=r.quantile(e,.25))&&void 0!==i?i:s,l=null!==(n=r.quantile(e,.5))&&void 0!==n?n:(s+a)/2,u=null!==(o=r.quantile(e,.75))&&void 0!==o?o:a;k={q1Pos:h(c),medianPos:h(l),q3Pos:h(u),centerPos:t.middle,isVertical:g}}const w=g?{x:t.x,y:Math.min(h(a),h(s)),width:t.width,height:Math.abs(h(a)-h(s))}:{x:Math.min(h(s),h(a)),y:t.x,width:Math.abs(h(a)-h(s)),height:t.width};d.push({type:"violin",pathString:x,translateX:0,translateY:0,bounds:w,iqrLine:k,stats:qt(e),style:b,datum:t.pieceData,category:t.name})}return d},histogram:function(t,e){var i;const{scales:n,columns:r,config:o,getR:s,resolveSummaryStyle:a}=t,{r:c}=n,l=[],u=o.bins||25,h=o.normalize,f=null===(i=c.domain)||void 0===i?void 0:i.call(c),d=f?+f[0]:void 0,g=f?+f[1]:void 0;for(const t of Object.values(r)){const e=t.pieceData.map(t=>s(t)).filter(t=>null!=t&&!isNaN(t));if(0===e.length)continue;const i=null!=d&&isFinite(d)?d:Math.min(...e),n=null!=g&&isFinite(g)?g:Math.max(...e),r=(n-i)/u||1,o=Array(u).fill(0);for(const t of e)i>t||t>n||o[Math.min(Math.floor((t-i)/r),u-1)]++;const f=e.length,y=Math.max(...o,1),p=a(t.pieceData[0],t.name);for(let e=0;u>e;e++){if(0===o[e])continue;const n=(h?o[e]/f:o[e]/y)*t.width*.9,s=c(i+e*r),a=c(i+(e+1)*r);l.push(O(Math.min(s,a),t.x+t.width-n,Math.abs(a-s),n,p,{bin:e,count:o[e],range:[i+e*r,i+(e+1)*r],category:t.name},t.name))}}return l},ridgeline:function(t,e){var i;const{scales:n,columns:r,config:o,getR:s,resolveSummaryStyle:a}=t,{r:c,projection:l}=n,u=[],h=o.bins||20,f="horizontal"===l,d=o.amplitude||1.5;for(const t of Object.values(r)){const e=t.pieceData.map(t=>s(t)).filter(t=>null!=t&&!isNaN(t)).sort((t,e)=>t-e);if(2>e.length)continue;const n=e[0],r=e[e.length-1],o=(r-n)/h||1,l=Array(h).fill(0);for(const t of e)n>t||t>r||l[Math.min(Math.floor((t-n)/o),h-1)]++;const g=Math.max(...l,1),y=a(t.pieceData[0],t.name),p=t.width*d;let m="";if(f){const e=t.x+t.width;m=`M ${c(n)} ${e}`;for(let t=0;h>t;t++)m+=` L ${c(n+(t+.5)*o)} ${e-l[t]/g*p}`;m+=` L ${c(r)} ${e} Z`}else{const e=t.x;m=`M ${e} ${c(n)}`;for(let t=0;h>t;t++){const i=c(n+(t+.5)*o);m+=` L ${e+l[t]/g*p} ${i}`}m+=` L ${e} ${c(r)} Z`}const v=f?{x:Math.min(c(n),c(r)),y:t.x,width:Math.abs(c(r)-c(n)),height:t.width}:{x:t.x,y:Math.min(c(r),c(n)),width:t.width,height:Math.abs(c(r)-c(n))};u.push({type:"violin",pathString:m,translateX:0,translateY:0,bounds:v,stats:qt(e),style:Object.assign(Object.assign({},y),{fillOpacity:null!==(i=y.fillOpacity)&&void 0!==i?i:.5}),datum:t.pieceData,category:t.name})}return u},timeline:function(t,e){const{scales:i,columns:n,getRawRange:r,resolvePieceStyle:o}=t,{r:s,projection:a}=i,c=[],l="horizontal"===a;for(const t of Object.values(n))for(const e of t.pieceData){const i=r(e);if(!i)continue;const[n,a]=i,u=o(e,t.name);if(l){const i=s(Math.min(n,a)),r=s(Math.max(n,a));c.push(O(i,t.x,r-i,t.width,u,e,t.name))}else{const i=s(Math.max(n,a)),r=s(Math.min(n,a));c.push(O(t.x,i,t.width,r-i,u,e,t.name))}}return c},funnel:function(t,i){var n,r,o,s,a,c,l;const{columns:u,getR:h,getStack:f,resolvePieceStyle:d}=t,g=[],y=i.width/2,p=!1!==t.config.showLabels,m=t.scales.o.domain().map(t=>u[t]).filter(Boolean);if(0===m.length)return g;const v=[],x=new Set;for(const t of m)for(const e of t.pieceData){const t=f?f(e):"_default";x.has(t)||(x.add(t),v.push(t))}const b=v.length>1&&"_default"!==v[0],k=[];let w=0;for(const t of m){const e=new Map;let i=0;for(const n of t.pieceData){const t=f?f(n):"_default";e.has(t)||e.set(t,{total:0,pieces:[]});const r=e.get(t),o=h(n);r.total+=o,r.pieces.push(n),i+=o}k.push({col:t,groups:e,stepTotal:i}),b||i>w&&(w=i)}if(b)for(const t of k){let e=0,i=0;for(let n=0;v.length>n;n++){const r=t.groups.get(v[n]);r&&(n%2==0?e+=r.total:i+=r.total)}const n=Math.max(e,i);n>w&&(w=n)}if(0===w)return g;const _=new Map;for(const t of v){const e=k[0].groups.get(t);_.set(t,null!==(n=null==e?void 0:e.total)&&void 0!==n?n:0)}const A=k[0].stepTotal,P=b?.95*y:.9*i.width,M=e.scaleLinear().domain([0,w]).range([0,P]),S=null!==(r=t.config.connectorOpacity)&&void 0!==r?r:.3;let E=new Map;for(let t=0;k.length>t;t++){const e=k[t],i=e.col,n=0===t,r=i.width,u=.55*r,h=i.x+(r-u)/2,f=new Map;if(b){let t=0;for(const i of v){const n=e.groups.get(i);n&&(t+=M(n.total))}let r=y,o=y;for(let s=0;v.length>s;s++){const c=v[s],l=e.groups.get(c);if(!l)continue;const m=M(l.total),x=s%2==0,b=x?r:o-m;x?r+=m:o-=m;const k=d(l.pieces[0],c),w=null!==(a=_.get(c))&&void 0!==a?a:l.total,A=w>0?l.total/w*100:0,P=Object.assign(Object.assign({},l.pieces[0]),{__funnelValue:l.total,__funnelPercent:A,__funnelStep:i.name,__funnelIsFirstStep:n,__aggregateValue:l.total,__pieceCount:l.pieces.length,category:c});p&&(0===s&&(P.__funnelStepLabel=i.name,P.__funnelStepLabelX=y,P.__funnelStepLabelY=h,P.__funnelRowWidth=t),P.__funnelValueLabelX=b+m/2,P.__funnelValueLabelY=h,P.__funnelBarW=m),g.push(O(b,h,m,u,k,P,c)),f.set(c,{x:b,y:h,w:m,h:u})}}else{const t=e.stepTotal,r=M(t),a=y-r/2,c=v[0],l="_default"!==c,m=null!==(s=null===(o=e.groups.get(c))||void 0===o?void 0:o.pieces[0])&&void 0!==s?s:i.pieceData[0],x=l?c:i.name,b=d(m,x),k=A>0?t/A*100:0,w=Object.assign(Object.assign({},m),{__funnelValue:t,__funnelPercent:k,__funnelStep:i.name,__funnelIsFirstStep:n,category:l?c:i.name});p&&(w.__funnelStepLabel=i.name,w.__funnelStepLabelX=y,w.__funnelStepLabelY=h,w.__funnelRowWidth=r,w.__funnelValueLabelX=y,w.__funnelValueLabelY=h,w.__funnelBarW=r),g.push(O(a,h,r,u,b,w,x)),f.set(c,{x:a,y:h,w:r,h:u})}if(t>0&&E.size>0){const t=b?v:[v[0]];for(const n of t){const t=E.get(n),r=f.get(n);if(!t||!r)continue;const o=(()=>{const t=e.groups.get(n);return d(t?t.pieces[0]:i.pieceData[0],"_default"===n?i.name:n)})(),s={type:"trapezoid",points:[[t.x,t.y+t.h],[t.x+t.w,t.y+t.h],[r.x+r.w,r.y],[r.x,r.y]],style:{fill:o.fill||"#999",opacity:S},datum:null!==(l=null===(c=e.groups.get(n))||void 0===c?void 0:c.pieces[0])&&void 0!==l?l:i.pieceData[0],category:"_default"===n?i.name:n};g.push(s)}}E=f}return g},"bar-funnel":function(t,e){var i,n,r,o;const{columns:s,getR:a,getStack:c,resolvePieceStyle:l,scales:u}=t,h=[],f=u.o.domain().map(t=>s[t]).filter(Boolean);if(0===f.length)return h;const d=[],g=new Set;for(const t of f)for(const e of t.pieceData){const t=c?c(e):"_default";g.has(t)||(g.add(t),d.push(t))}const y=d.length>1&&"_default"!==d[0],p=[];for(const t of f){const e=new Map;let i=0;for(const n of t.pieceData){const t=c?c(n):"_default";e.has(t)||e.set(t,{total:0,pieces:[]});const r=e.get(t),o=a(n);r.total+=o,r.pieces.push(n),i+=o}p.push({col:t,groups:e,stepTotal:i})}const m=new Map;for(const t of d){const e=null===(i=p[0])||void 0===i?void 0:i.groups.get(t);m.set(t,null!==(n=null==e?void 0:e.total)&&void 0!==n?n:0)}const v=u.r,x=y?d.length:1,b=y?.15:0;for(let t=0;p.length>t;t++){const e=p[t],i=e.col,n=0===t,s=t>0?p[t-1]:null,a=i.width/x,c=a*b,u=a-c;for(let t=0;d.length>t;t++){const f=d[t],g=e.groups.get(f);if(!g)continue;const p=g.total,x=null!==(r=m.get(f))&&void 0!==r?r:p,b=x>0?p/x*100:0,k=null==s?void 0:s.groups.get(f),w=null!==(o=null==k?void 0:k.total)&&void 0!==o?o:p,_=n?0:Math.max(0,w-p),A=i.x+t*a+c/2,P=v(p),M=v(0)-P,S=l(g.pieces[0],y?f:i.name),E=Object.assign(Object.assign({},g.pieces[0]),{__barFunnelValue:p,__barFunnelPercent:b,__barFunnelIsFirstStep:n,__barFunnelIsDropoff:!1,__barFunnelStep:i.name,__barFunnelDropoffValue:_,__barFunnelCategory:"_default"===f?void 0:f,category:y?f:i.name,__barFunnelLabelX:A+u/2,__barFunnelLabelY:v(p+_)});if(h.push(O(A,P,u,M,S,E,y?f:i.name)),_>0){const t=v(p+_),e=P-t,n=Object.assign({},S),r=Object.assign(Object.assign({},g.pieces[0]),{__barFunnelValue:_,__barFunnelPercent:x>0?_/x*100:0,__barFunnelIsFirstStep:!1,__barFunnelIsDropoff:!0,__barFunnelStep:i.name,__barFunnelCategory:"_default"===f?void 0:f,category:y?f:i.name});h.push(O(A,t,u,e,n,r,y?f:i.name))}}}return h},swimlane:function(t,e){const{scales:i,columns:n,getR:r,getStack:o,resolvePieceStyle:s}=t,{r:a,projection:c}=i,l=[],u="horizontal"===c;for(const t of Object.values(n)){let e=0;for(const i of t.pieceData){const n=Math.abs(r(i));if(0===n)continue;const c=o?o(i):t.name,h=s(i,c);if(u){const r=a(e),o=a(e+n);l.push(O(r,t.x,o-r,t.width,h,i,c))}else{const r=a(e+n),o=a(e);l.push(O(t.x,r,t.width,o-r,h,i,c))}e+=n}}return l}};class Gt{constructor(t){this.rExtent=new g,this.rExtents=[],this.rAccessors=[],this.categories=new Set,this._hasStreamingData=!1,this._colorSchemeMap=null,this._colorSchemeIndex=0,this.timestampBuffer=null,this.activeTransition=null,this.prevPositionMap=new Map,this.exitNodes=[],this.lastIngestTime=0,this.scales=null,this.multiScales=[],this.scene=[],this.columns={},this.version=0,this.config=t,this.buffer=new d(t.windowSize),this.getO=x(t.oAccessor||t.categoryAccessor,"category");const e="streaming"===t.runtimeMode,i=t.rAccessor;Array.isArray(i)?(this.rAccessors=i.map(t=>m(t,"value")),this.getR=this.rAccessors[0],this.rExtents=i.map(()=>new g)):(this.getR=m(e&&(t.timeAccessor||t.valueAccessor)&&t.valueAccessor||i,"value"),this.rAccessors=[this.getR],this.rExtents=[this.rExtent]),this.getStack=x(t.stackBy),this.getGroup=x(t.groupBy),this.getColor=x(t.colorAccessor),this.getConnector=x(t.connectorAccessor),t.pulse&&(this.timestampBuffer=new d(t.windowSize))}ingest(t){const e="undefined"!=typeof performance?performance.now():Date.now();if(this.lastIngestTime=e,t.bounded){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this.timestampBuffer&&this.timestampBuffer.clear();const i=t.totalSize||t.inserts.length;i>this.buffer.capacity&&(this.buffer.resize(i),this.timestampBuffer&&i>this.timestampBuffer.capacity&&this.timestampBuffer.resize(i));for(const i of t.inserts)this.buffer.push(i),this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(i)),this.pushValueExtent(i)}else{this._hasStreamingData=!0;for(const i of t.inserts){const t=this.buffer.push(i);this.timestampBuffer&&this.timestampBuffer.push(e),this.categories.add(this.getO(i)),this.pushValueExtent(i),null!=t&&this.evictValueExtent(t)}}return!0}pushValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.push(e[0]),this.rExtent.push(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].push(this.rAccessors[e](t));this.rExtent.push(this.getR(t))}else this.rExtent.push(this.getR(t))}evictValueExtent(t){if("timeline"===this.config.chartType){const e=this.getRawRange(t);e&&(this.rExtent.evict(e[0]),this.rExtent.evict(e[1]))}else if(this.rAccessors.length>1){for(let e=0;this.rAccessors.length>e;e++)this.rExtents[e].evict(this.rAccessors[e](t));this.rExtent.evict(this.getR(t))}else this.rExtent.evict(this.getR(t))}getRawRange(t){const e=this.config.rAccessor;if(!e)return null;const i="function"==typeof e?e(t):t[e];return Array.isArray(i)&&i.length>=2?[+i[0],+i[1]]:null}computeScene(t){const{config:i,buffer:n}=this;if(0===n.size)return this.scales=null,this.scene=[],this.columns={},void this.version++;this.rExtent.dirty&&this.rExtent.recalculate(n,this.getR);const r=n.toArray(),o=i.projection||"vertical",s=i.oExtent||this.resolveCategories(r),a=this.computeValueDomain(r,s),c="horizontal"===o,l=null!=i.barPadding?i.barPadding/("vertical"===o?t.width:t.height):.1;let u,h;if("radial"===o){u=e.scaleBand().domain(s).range([0,1]).padding(0);const n=Math.min(t.width,t.height)/2,r=i.innerRadius||0;h=e.scaleLinear().domain(a).range([r,n])}else c?(u=e.scaleBand().domain(s).range([0,t.height]).padding(l),h=e.scaleLinear().domain(a).range([0,t.width])):(u=e.scaleBand().domain(s).range([0,t.width]).padding(l),h=e.scaleLinear().domain(a).range([t.height,0]));this.scales={o:u,r:h,projection:o},this.multiScales=this.rAccessors.length>1&&i.multiAxis?this.rAccessors.map((r,o)=>{const s=this.rExtents[o];s.dirty&&s.recalculate(n,r);let[a,l]=s.extent;a===1/0&&(a=0,l=1);const u=l-a,h=u>0?u*(i.extentPadding||.05):1;return a-=h,l+=h,a>0&&(a=0),c?e.scaleLinear().domain([a,l]).range([0,t.width]):e.scaleLinear().domain([a,l]).range([t.height,0])}):[];let f=r;this.rAccessors.length>1&&(f=r.flatMap(t=>this.rAccessors.map((e,i)=>Object.assign(Object.assign({},t),{__rIndex:i,__rValue:e(t),__rName:this.resolveRAccessorName(i)})))),this.columns=this.buildColumns(f,s,u,o,t),this.config.transition&&this.scene.length>0&&this.snapshotPositions(),this.scene=this.buildSceneNodes(f,t),this.config.decay&&this.applyDecay(this.scene,r),this.config.pulse&&this.applyPulse(this.scene,r),this.config.transition&&this.prevPositionMap.size>0&&this.startTransition(),this.version++}resolveRAccessorName(t){const e=Array.isArray(this.config.rAccessor)?this.config.rAccessor[t]:this.config.rAccessor;return"string"==typeof e?e:"value"+t}resolveCategories(t){const e=Array.from(this.categories),i=this.config.oSort;if(("streaming"===this.config.runtimeMode||this._hasStreamingData)&&void 0===i){const i=new Set;for(const e of t)i.add(this.getO(e));const n=Math.max(50,3*i.size);if(this.categories.size>n){let t=this.categories.size-n;for(const e of this.categories){if(0>=t)break;i.has(e)||(this.categories.delete(e),t--)}}return e.filter(t=>i.has(t))}if(!1===i)return e;if("function"==typeof i)return e.sort(i);const n=new Map;for(const e of t){const t=this.getO(e);n.set(t,(n.get(t)||0)+Math.abs(this.getR(e)))}return e.sort("asc"===i?(t,e)=>(n.get(t)||0)-(n.get(e)||0):(t,e)=>(n.get(e)||0)-(n.get(t)||0))}computeValueDomain(t,e){var i,n,r,o;const s=this.config.chartType,a=this.config.extentPadding||.05;if("radial"===this.config.projection&&("pie"===s||"donut"===s))return[0,1];let c=0,l=0;if("bar"===s&&this.getStack&&this.config.normalize)c=0,l=1;else if("bar"===s&&this.getStack){const e=new Map,i=new Map;for(const n of t){const t=this.getO(n),r=this.getR(n);0>r?i.set(t,(i.get(t)||0)+r):e.set(t,(e.get(t)||0)+r)}for(const t of e.values())t>l&&(l=t);for(const t of i.values())c>t&&(c=t)}else if("bar"===s){const e=new Map;for(const i of t){const t=this.getO(i),n=this.getR(i);e.set(t,(e.get(t)||0)+n)}for(const t of e.values())t>l&&(l=t),c>t&&(c=t)}else if("swimlane"===s){const e=new Map;for(const i of t){const t=this.getO(i),n=Math.abs(this.getR(i));e.set(t,(e.get(t)||0)+n)}for(const t of e.values())t>l&&(l=t)}else if("clusterbar"===s||"bar-funnel"===s)for(const e of t){const t=this.getR(e);t>l&&(l=t),c>t&&(c=t)}else{const t=this.rExtent.extent[0],e=this.rExtent.extent[1];t!==1/0&&(c=t),e!==-1/0&&(l=e)}if(this.config.rExtent&&(null!=this.config.rExtent[0]&&(c=this.config.rExtent[0]),null!=this.config.rExtent[1]&&(l=this.config.rExtent[1])),"bar-funnel"!==s){const t=l-c,e=t>0?t*a:1;null==(null===(i=this.config.rExtent)||void 0===i?void 0:i[0])&&(c-=e),null==(null===(n=this.config.rExtent)||void 0===n?void 0:n[1])&&(l+=e)}return"bar"!==s&&"clusterbar"!==s&&"bar-funnel"!==s&&"swimlane"!==s||null==(null===(r=this.config.rExtent)||void 0===r?void 0:r[0])&&null==(null===(o=this.config.rExtent)||void 0===o?void 0:o[1])&&(c>0&&(c=0),0>l&&(l=0)),[c,l]}buildColumns(t,e,i,n,r){var o;const s={},a=new Map;for(const e of t){const t=this.getO(e);a.has(t)||a.set(t,[]),a.get(t).push(e)}let c=0;if("radial"===n)for(const e of t)c+=Math.abs(this.getR(e));const l=this.config.dynamicColumnWidth;let u=null;if(l&&"radial"!==n){u=new Map;let t=0;for(const i of e){const e=a.get(i)||[];let n;n="string"==typeof l?e.reduce((t,e)=>t+(Number(e[l])||0),0):l(e),u.set(i,n),t+=n}const o=("horizontal"===n?r.height:r.width)-i.padding()*i.step()*e.length;if(t>0)for(const[e,i]of u)u.set(e,i/t*o)}let h=0,f=0;for(const t of e){const e=a.get(t)||[],n=e.reduce((t,e)=>t+Math.abs(this.getR(e)),0),r=c>0?n/c:0;let l,d;u?(l=f,d=u.get(t)||i.bandwidth(),f+=d+i.padding()*i.step()):(l=null!==(o=i(t))&&void 0!==o?o:0,d=i.bandwidth()),s[t]={name:t,x:l,y:0,width:d,middle:l+d/2,padding:i.padding()*i.step(),pieceData:e,pct:r,pctStart:h},h+=r}return s}getSceneContext(){return{scales:this.scales,columns:this.columns,config:this.config,getR:this.getR,getStack:this.getStack,getGroup:this.getGroup,getColor:this.getColor,getConnector:this.getConnector,getO:this.getO,multiScales:this.multiScales,rAccessors:this.rAccessors,resolvePieceStyle:(t,e)=>this.resolvePieceStyle(t,e),resolveSummaryStyle:(t,e)=>this.resolveSummaryStyle(t,e),getRawRange:t=>this.getRawRange(t)}}buildSceneNodes(t,e){if(!this.scales)return[];const i=this.getSceneContext(),n=Vt[this.config.chartType];let r=n?n(i,e):[];if(this.getConnector&&this.scales){const t=function(t,e){const{scales:i,config:n,getConnector:r,getO:o}=t;if(!r||!i)return[];const s=[],{projection:a}=i,c=new Map;for(const t of e){if("point"!==t.type&&"rect"!==t.type)continue;const e=t.datum;if(!e)continue;const i=r(e);if(!i)continue;let n,s;"point"===t.type?(n=t.x,s=t.y):(n=t.x+t.w/2,s=t.y+("vertical"===a?0:t.h/2)),c.has(i)||c.set(i,[]),c.get(i).push({x:n,y:s,datum:e,category:o(e)})}const l=i.o.domain(),u=n.connectorStyle;for(const[t,e]of c)if(e.length>=2){e.sort((t,e)=>l.indexOf(t.category)-l.indexOf(e.category));for(let i=0;e.length-1>i;i++){const n=e[i],r=e[i+1],o="function"==typeof u?u(n.datum):u||{stroke:"#999",strokeWidth:1,opacity:.5};s.push({type:"connector",x1:n.x,y1:n.y,x2:r.x,y2:r.y,style:o,datum:n.datum,group:t})}}return s}(i,r);r=[...t,...r]}return r}resolvePieceStyle(t,e){if("function"==typeof this.config.pieceStyle){const i=this.config.pieceStyle(t,e);return i&&!i.fill&&e?Object.assign(Object.assign({},i),{fill:this.getColorFromScheme(e)}):i}return this.config.pieceStyle&&"object"==typeof this.config.pieceStyle?this.config.pieceStyle:this.config.barColors&&e?{fill:this.config.barColors[e]||"#007bff"}:e?{fill:this.getColorFromScheme(e)}:{fill:"#007bff"}}getColorFromScheme(t){this._colorSchemeMap||(this._colorSchemeMap=new Map);const e=this._colorSchemeMap.get(t);if(e)return e;const i=Array.isArray(this.config.colorScheme)?this.config.colorScheme:b,n=i[this._colorSchemeIndex%i.length];return this._colorSchemeIndex++,this._colorSchemeMap.set(t,n),n}resolveSummaryStyle(t,e){return"function"==typeof this.config.summaryStyle?this.config.summaryStyle(t,e):this.config.summaryStyle&&"object"==typeof this.config.summaryStyle?this.config.summaryStyle:{fill:"#007bff",fillOpacity:.6,stroke:"#007bff",strokeWidth:1}}computeDecayOpacity(t,e){var i,n,r;const o=this.config.decay;if(!o||1>=e)return 1;const s=null!==(i=o.minOpacity)&&void 0!==i?i:.1,a=e-1-t;switch(o.type){case"linear":return s+(1-a/(e-1))*(1-s);case"exponential":{const t=null!==(n=o.halfLife)&&void 0!==n?n:e/2;return s+Math.pow(.5,a/t)*(1-s)}case"step":return(null!==(r=o.stepThreshold)&&void 0!==r?r:.5*e)>a?1:s;default:return 1}}applyDecay(t,e){var i,n;if(!this.config.decay)return;const r=e.length;if(1>=r)return;const o=new Map;for(let t=0;e.length>t;t++)o.set(e[t],t);for(const e of t){if("connector"===e.type||"violin"===e.type||"boxplot"===e.type||"wedge"===e.type)continue;const t=o.get(e.datum);if(null==t)continue;const s=this.computeDecayOpacity(t,r),a=null!==(n=null===(i=e.style)||void 0===i?void 0:i.opacity)&&void 0!==n?n:1;e.style=Object.assign(Object.assign({},e.style),{opacity:a*s})}}applyPulse(t,e){var i,n,r;if(!this.config.pulse||!this.timestampBuffer)return;const o="undefined"!=typeof performance?performance.now():Date.now(),s=null!==(i=this.config.pulse.duration)&&void 0!==i?i:500,a=null!==(n=this.config.pulse.color)&&void 0!==n?n:"rgba(255,255,255,0.6)",c=null!==(r=this.config.pulse.glowRadius)&&void 0!==r?r:4,l=new Map;for(let t=0;e.length>t;t++)l.set(e[t],t);for(const i of t){if("connector"===i.type||"violin"===i.type||"boxplot"===i.type)continue;if("wedge"===i.type){const t=i.category;if(!t)continue;let n=0;for(let i=0;e.length>i;i++){const r=e[i],a=this.config.oAccessor;if(("function"==typeof a?a(r):r[a||"category"])!==t)continue;const c=this.timestampBuffer.get(i);if(null==c)continue;const l=o-c;if(s>l){const t=1-l/s;t>n&&(n=t)}}n>0&&(i._pulseIntensity=n,i._pulseColor=a);continue}const t=l.get(i.datum);if(null==t)continue;const n=this.timestampBuffer.get(t);if(null==n)continue;const r=o-n;s>r&&(i._pulseIntensity=1-r/s,i._pulseColor=a,i._pulseGlowRadius=c)}}get hasActivePulses(){var t;if(!this.config.pulse||!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const e="undefined"!=typeof performance?performance.now():Date.now(),i=null!==(t=this.config.pulse.duration)&&void 0!==t?t:500,n=this.timestampBuffer.peek();return null!=n&&i>e-n}getNodeKey(t,e){var i,n;if("point"===t.type){const i=`p:${t.datum?this.getO(t.datum):""}:${t.datum?this.getR(t.datum):0}`,n=e.get(i)||0;return e.set(i,n+1),`${i}:${n}`}return"rect"===t.type?`r:${t.group||""}:${null!==(n=null===(i=t.datum)||void 0===i?void 0:i.category)&&void 0!==n?n:""}`:null}snapshotPositions(){this.prevPositionMap.clear();const t=new Map;for(let e=0;this.scene.length>e;e++){const i=this.scene[e],n=this.getNodeKey(i,t);n&&("point"===i.type?this.prevPositionMap.set(n,{x:i.x,y:i.y,r:i.r,opacity:i.style.opacity}):"rect"===i.type&&this.prevPositionMap.set(n,{x:i.x,y:i.y,w:i.w,h:i.h,opacity:i.style.opacity}))}}startTransition(){var t,e,i,n,r,o,s,a,c,l,u,h;if(!this.config.transition||0===this.prevPositionMap.size)return;const f=null!==(t=this.config.transition.duration)&&void 0!==t?t:300;if(this.exitNodes.length>0){const t=new Set(this.exitNodes);this.scene=this.scene.filter(e=>!t.has(e)),this.exitNodes=[]}let d=!1;const g=new Set,y=new Map;for(let t=0;this.scene.length>t;t++){const a=this.scene[t],c=this.getNodeKey(a,y);if(!c)continue;a._transitionKey=c;const l=this.prevPositionMap.get(c);"point"===a.type?l?(g.add(c),a._targetOpacity=null!==(e=a.style.opacity)&&void 0!==e?e:1,l.x===a.x&&l.y===a.y||(a._targetX=a.x,a._targetY=a.y,a.x=l.x,a.y=l.y,d=!0)):(a._targetOpacity=null!==(i=a.style.opacity)&&void 0!==i?i:1,a.style=Object.assign(Object.assign({},a.style),{opacity:0}),d=!0):"rect"===a.type&&(l?(g.add(c),a._targetOpacity=null!==(n=a.style.opacity)&&void 0!==n?n:1,l.x===a.x&&l.y===a.y&&l.w===a.w&&l.h===a.h||(a._targetX=a.x,a._targetY=a.y,a._targetW=a.w,a._targetH=a.h,a.x=l.x,a.y=l.y,a.w=null!==(r=l.w)&&void 0!==r?r:a.w,a.h=null!==(o=l.h)&&void 0!==o?o:a.h,d=!0)):(a._targetOpacity=null!==(s=a.style.opacity)&&void 0!==s?s:1,a.style=Object.assign(Object.assign({},a.style),{opacity:0}),d=!0))}this.exitNodes=[];for(const[t,e]of this.prevPositionMap)g.has(t)||(t.startsWith("p:")?this.exitNodes.push({type:"point",x:e.x,y:e.y,r:null!==(a=e.r)&&void 0!==a?a:3,style:{opacity:null!==(c=e.opacity)&&void 0!==c?c:1},datum:null,_targetOpacity:0,_transitionKey:t}):t.startsWith("r:")&&this.exitNodes.push({type:"rect",x:e.x,y:e.y,w:null!==(l=e.w)&&void 0!==l?l:0,h:null!==(u=e.h)&&void 0!==u?u:0,style:{opacity:null!==(h=e.opacity)&&void 0!==h?h:1,fill:"#999"},datum:null,_targetOpacity:0,_transitionKey:t}),d=!0);this.exitNodes.length>0&&(this.scene=[...this.scene,...this.exitNodes]),d&&(this.activeTransition={startTime:M(),duration:f})}advanceTransition(t){var e,i,n;if(!this.activeTransition)return!1;const r=A(t,this.activeTransition),o=_(r,"linear"===(null===(e=this.config.transition)||void 0===e?void 0:e.easing)?"linear":"ease-out-cubic");for(const t of this.scene){const e=t._transitionKey;if(e)if("point"===t.type){if(void 0!==t._targetOpacity){const n=this.prevPositionMap.get(e),r=n?null!==(i=n.opacity)&&void 0!==i?i:1:0;t.style.opacity=P(r,t._targetOpacity,o)}if(void 0===t._targetX)continue;const n=this.prevPositionMap.get(e);if(!n)continue;t.x=P(n.x,t._targetX,o),t.y=P(n.y,t._targetY,o)}else if("rect"===t.type){if(void 0!==t._targetOpacity){const i=this.prevPositionMap.get(e),r=i?null!==(n=i.opacity)&&void 0!==n?n:1:0;t.style.opacity=P(r,t._targetOpacity,o)}if(void 0===t._targetX)continue;const i=this.prevPositionMap.get(e);if(!i)continue;t.x=P(i.x,t._targetX,o),t.y=P(i.y,t._targetY,o),void 0!==i.w&&(t.w=P(i.w,t._targetW,o),t.h=P(i.h,t._targetH,o))}}if(r>=1){for(const t of this.scene)if(void 0!==t._targetOpacity&&(t.style=Object.assign(Object.assign({},t.style||{}),{opacity:0===t._targetOpacity?0:t._targetOpacity}),t._targetOpacity=void 0),"point"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t._targetX=void 0,t._targetY=void 0}else if("rect"===t.type){if(void 0===t._targetX)continue;t.x=t._targetX,t.y=t._targetY,t.w=t._targetW,t.h=t._targetH,t._targetX=void 0,t._targetY=void 0,t._targetW=void 0,t._targetH=void 0}if(this.exitNodes.length>0){const t=new Set(this.exitNodes);this.scene=this.scene.filter(e=>!t.has(e)),this.exitNodes=[]}return this.activeTransition=null,!1}return!0}getData(){return this.buffer.toArray()}clear(){this.buffer.clear(),this.rExtent.clear(),this.categories.clear(),this._hasStreamingData=!1,this.timestampBuffer&&this.timestampBuffer.clear(),this.prevPositionMap.clear(),this.exitNodes=[],this.activeTransition=null,this.lastIngestTime=0,this.scales=null,this.scene=[],this.columns={},this.version++}get size(){return this.buffer.size}getOAccessor(){return this.getO}getRAccessor(){return this.getR}updateConfig(t){const e=Object.assign({},this.config);if(t.colorScheme!==this.config.colorScheme&&(this._colorSchemeMap=null,this._colorSchemeIndex=0),Object.assign(this.config,t),(void 0!==t.oAccessor||void 0!==t.categoryAccessor)&&(p(t.oAccessor||t.categoryAccessor,e.oAccessor||e.categoryAccessor)||(this.getO=x(this.config.oAccessor||this.config.categoryAccessor,"category"),this.categories.clear())),void 0!==t.rAccessor){const i=Array.isArray(t.rAccessor)?t.rAccessor:[t.rAccessor],n=Array.isArray(e.rAccessor)?e.rAccessor:[e.rAccessor];if(i.length!==n.length||i.some((t,e)=>!p(t,n[e]))){const t=this.config.rAccessor;Array.isArray(t)?(this.rAccessors=t.map(t=>m(t,"value")),this.getR=this.rAccessors[0],this.rExtents=t.map(()=>new g)):(this.getR=m(t,"value"),this.rAccessors=[this.getR],this.rExtents=[this.rExtent])}}"stackBy"in t&&!p(t.stackBy,e.stackBy)&&(this.getStack=null!=this.config.stackBy?x(this.config.stackBy):void 0),"groupBy"in t&&!p(t.groupBy,e.groupBy)&&(this.getGroup=null!=this.config.groupBy?x(this.config.groupBy):void 0),"colorAccessor"in t&&!p(t.colorAccessor,e.colorAccessor)&&(this.getColor=null!=this.config.colorAccessor?x(this.config.colorAccessor):void 0),"connectorAccessor"in t&&!p(t.connectorAccessor,e.connectorAccessor)&&(this.getConnector=null!=this.config.connectorAccessor?x(this.config.connectorAccessor):void 0)}}const Ht={mercator:u.geoMercator,equalEarth:u.geoEqualEarth,albersUsa:u.geoAlbersUsa,orthographic:u.geoOrthographic,naturalEarth:u.geoNaturalEarth1,equirectangular:u.geoEquirectangular};function Zt(t,e){return t?"function"==typeof t?t:e=>e[t]:t=>t[e]}function Kt(t){return t?"function"==typeof t?t:e=>e[t]:t=>t.coordinates||t.data||[]}function Qt(t,e,i){return t?Object.assign(Object.assign({},i),"function"==typeof t?t(e):t):i}const Ut={fill:"#e0e0e0",stroke:"#999",strokeWidth:.5,fillOpacity:1},Jt={fill:"#4e79a7",r:4,fillOpacity:.8},te={stroke:"#4e79a7",strokeWidth:1.5,fill:"none"};function ee(t,e){if(2>t.length)return[t];const i=.4*e,n=[];let r=[t[0]];for(let e=1;t.length>e;e++){const o=t[e];Math.abs(o[0]-t[e-1][0])>i?(2>r.length||n.push(r),r=[o]):r.push(o)}return 2>r.length||n.push(r),n}function ie(t,e,i=24){const n=e[0]-t[0],r=e[1]-t[1],o=Math.sqrt(n*n+r*r);if(0===o)return[t,e];const s=-r/o,a=n/o,c=Math.min(.3*o,80),l=(t[0]+e[0])/2+s*c,u=(t[1]+e[1])/2+a*c,h=[];for(let n=0;i>=n;n++){const r=n/i,o=1-r;h.push([o*o*t[0]+2*o*r*l+r*r*e[0],o*o*t[1]+2*o*r*u+r*r*e[1]])}return h}function ne(t,e){if(2>t.length)return t;const i=e/2+1,n=[];for(let e=0;t.length>e;e++){const r=t[e];let o,s;0===e?(o=t[1][0]-r[0],s=t[1][1]-r[1]):e===t.length-1?(o=r[0]-t[e-1][0],s=r[1]-t[e-1][1]):(o=t[e+1][0]-t[e-1][0],s=t[e+1][1]-t[e-1][1]);const a=Math.sqrt(o*o+s*s)||1;n.push([r[0]+s/a*i,r[1]+-o/a*i])}return n}function re(t,e,i,n,r){const o=e[0]-t[0],s=e[1]-t[1],a=Math.sqrt(o*o+s*s);if(0===a)return[t,e];const c=s/a,l=-o/a,u=r/2+1;return[[t[0]+c*u,t[1]+l*u],[e[0]+c*u,e[1]+l*u]]}class oe{constructor(t){this.scene=[],this.scales=null,this.version=0,this.projection=null,this.geoPath=null,this.baseScale=0,this.baseTranslate=[0,0],this.baseRotation=[0,0,0],this.currentZoom=1,this.cartogramLayout=null,this.areas=[],this.pointData=[],this.lineData=[],this.pointBuffer=null,this.streaming=!1,this.lastIngestTime=0,this.timestampBuffer=null,this.activeTransition=null,this.prevPositions=null,this.config=t}updateConfig(t){this.config=Object.assign(Object.assign({},this.config),t)}setAreas(t){this.areas=t}setPoints(t){this.pointData=t,this.streaming=!1}setLines(t){this.lineData=t}initStreaming(t=500){this.pointBuffer=new d(t),this.timestampBuffer=new d(t),this.streaming=!0}pushPoint(t){this.pointBuffer||this.initStreaming(),this.pointBuffer.push(t),this.timestampBuffer.push(performance.now()),this.lastIngestTime=performance.now()}pushMany(t){this.pointBuffer||this.initStreaming();const e=performance.now();for(const i of t)this.pointBuffer.push(i),this.timestampBuffer.push(e);this.lastIngestTime=e}clear(){this.areas=[],this.pointData=[],this.lineData=[],this.pointBuffer=null,this.timestampBuffer=null,this.scene=[],this.scales=null,this.version++}computeScene(t){const{config:e}=this;this.projection=function(t){if(!t)return u.geoEqualEarth();if("string"==typeof t){const e=Ht[t];return e?e():("production"!==process.env.NODE_ENV&&console.warn(`GeoFrame: Unknown projection "${t}", falling back to equalEarth`),u.geoEqualEarth())}if("object"==typeof t&&"type"in t){const e=Ht[t.type],i=e?e():u.geoEqualEarth();return t.rotate&&"rotate"in i&&i.rotate(t.rotate),t.center&&"center"in i&&i.center(t.center),i}return t}(e.projection),this.geoPath=u.geoPath(this.projection),this.fitProjection(t),this.geoPath=u.geoPath(this.projection);const i=this.projection;this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null};const n=this.scene;this.scene=this.buildSceneNodes(t),e.projectionTransform&&this.applyCartogramTransform(e.projectionTransform,t),e.decay&&this.streaming&&this.applyDecay(),e.pulse&&this.streaming&&this.applyPulse(),e.transition&&n.length>0&&this.startTransition(n),this.version++}fitProjection(t){var e,i,n,r,o;const s=this.projection,a=this.config,c=[...this.areas],l=Zt(a.xAccessor,"lon"),u=Zt(a.yAccessor,"lat"),h=this.getPoints();if(h.length>0){const t=h.map(t=>[l(t),u(t)]);c.push({type:"Feature",properties:{},geometry:{type:"MultiPoint",coordinates:t}})}const f=Kt(a.lineDataAccessor);for(const t of this.lineData){const e=f(t);if(e&&e.length>0){const t=e.map(t=>[l(t),u(t)]);c.push({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:t}})}}if(0!==c.length){if(a.projectionExtent){const[[e,i],[n,r]]=a.projectionExtent;s.fitExtent([[0,0],[t.width,t.height]],{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[e,i],[n,i],[n,r],[e,r],[e,i]]]}})}else if(s.clipAngle&&(null!==(e=s.clipAngle())&&void 0!==e?e:0)>0){const e=null!==(i=a.fitPadding)&&void 0!==i?i:0,n=Math.min(t.width,t.height);s.scale(n/2-n*e),s.translate([t.width/2,t.height/2])}else{const e=null!==(n=a.fitPadding)&&void 0!==n?n:0,i=t.width*e,r=t.height*e;s.fitExtent([[i,r],[t.width-i,t.height-r]],{type:"FeatureCollection",features:c})}this.baseScale=s.scale(),this.baseTranslate=s.translate(),this.baseRotation=null!==(o=null===(r=s.rotate)||void 0===r?void 0:r.call(s))&&void 0!==o?o:[0,0,0]}}applyZoomTransform(t,e){const i=this.projection;i&&(i.scale(this.baseScale*t.k),i.translate([this.baseTranslate[0]*t.k+t.x,this.baseTranslate[1]*t.k+t.y]),this.currentZoom=t.k,this.geoPath=u.geoPath(i),this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null},this.scene=this.buildSceneNodes(e),this.config.projectionTransform&&this.applyCartogramTransform(this.config.projectionTransform,e),this.version++)}applyZoomScale(t,e){const i=this.projection;i&&(i.scale(this.baseScale*t),i.translate(this.baseTranslate),this.currentZoom=t,this.geoPath=u.geoPath(i),this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null},this.scene=this.buildSceneNodes(e),this.config.projectionTransform&&this.applyCartogramTransform(this.config.projectionTransform,e),this.version++)}applyRotation(t,e){const i=this.projection;i&&i.rotate&&(i.rotate(t),this.geoPath=u.geoPath(i),this.scales={projection:i,geoPath:this.geoPath,projectedPoint:(t,e)=>i([t,e]),invertedPoint:(t,e)=>i.invert?i.invert([t,e]):null},this.scene=this.buildSceneNodes(e),this.config.projectionTransform&&this.applyCartogramTransform(this.config.projectionTransform,e),this.version++)}setRotation(t){const e=this.projection;e&&e.rotate&&e.rotate(t)}getRotation(){var t,e,i;return null!==(i=null===(e=null===(t=this.projection)||void 0===t?void 0:t.rotate)||void 0===e?void 0:e.call(t))&&void 0!==i?i:this.baseRotation}getBaseProjectionState(){return{scale:this.baseScale,translate:[...this.baseTranslate]}}getPoints(){return this.streaming&&this.pointBuffer?this.pointBuffer.toArray():this.pointData}buildSceneNodes(t){var e,i,n;const r=[],{config:o}=this,s=this.projection,a=this.geoPath,c=Zt(o.xAccessor,"lon"),l=Zt(o.yAccessor,"lat");if(o.graticule){const e=!0===o.graticule?{}:o.graticule,i=u.geoGraticule();e.step&&i.step(e.step);const n=a(i())||"";n&&r.push({type:"geoarea",pathData:n,centroid:[t.width/2,t.height/2],bounds:[[0,0],[t.width,t.height]],screenArea:0,style:{fill:"none",stroke:e.stroke||"#e0e0e0",strokeWidth:e.strokeWidth||.5,strokeDasharray:e.strokeDasharray||"2,2"},datum:null,interactive:!1})}for(const t of this.areas){const e=a(t);if(!e)continue;const i=a.centroid(t),n=a.bounds(t),s=a.area(t),c=Qt(o.areaStyle,t,Ut);r.push({type:"geoarea",pathData:e,centroid:i,bounds:n,screenArea:s,style:c,datum:t,interactive:!0})}const h=Kt(o.lineDataAccessor);for(const e of this.lineData){const i=h(e);if(!i||2>i.length)continue;const n=i.map(t=>[c(t),l(t)]);let a;if("geo"===o.lineType){const t=[];for(let e=0;n.length-1>e;e++){const i=n[e],r=n[e+1],o=u.geoDistance(i,r)||0,s=Math.max(2,Math.ceil(o/(Math.PI/180))),a=u.geoInterpolate(i,r);for(let i=0;s>=i;i++)e>0&&0===i||t.push(a(i/s))}a=t.map(([t,e])=>s([t,e])).filter(t=>null!=t)}else a=n.map(([t,e])=>s([t,e])).filter(t=>null!=t);if(2>a.length)continue;const f=Qt(o.lineStyle,e,te),d="number"==typeof f.strokeWidth?f.strokeWidth:1;2!==n.length||2>a.length||"arc"!==o.flowStyle?2!==n.length||2>a.length||"offset"!==o.flowStyle||(a="geo"===o.lineType?ne(a,d):re(a[0],a[a.length-1],0,0,d)):a=ie(a[0],a[a.length-1]);const g=ee(a,t.width);if(g.length>1)for(const t of g){if(2>t.length)continue;const i={type:"line",path:t,style:Object.assign(Object.assign({},f),{_edgeFade:!0}),datum:e};r.push(i)}else r.push({type:"line",path:2>a.length&&g[0]||a,style:f,datum:e})}const f=this.getPoints(),d=o.pointIdAccessor?"function"==typeof o.pointIdAccessor?o.pointIdAccessor:t=>t[o.pointIdAccessor]:null,g=s.clipAngle&&null!==(e=s.clipAngle())&&void 0!==e?e:0,y=g>0?g*Math.PI/180:null,p=s.rotate?s.rotate():[0,0,0],m="function"==typeof s.center?s.center():[0,0],v=[(null!==(i=m[0])&&void 0!==i?i:0)-p[0],(null!==(n=m[1])&&void 0!==n?n:0)-p[1]];for(let t=0;f.length>t;t++){const e=f[t],i=c(e),n=l(e);if(null!=y&&u.geoDistance([i,n],v)>y)continue;const a=s([i,n]);if(!a)continue;const h=o.pointStyle?o.pointStyle(e):Object.assign({},Jt),g={type:"point",x:a[0],y:a[1],r:h.r||4,style:h,datum:e,pointId:d?d(e)+"":void 0};r.push(g)}return r}applyCartogramTransform(t,i){var n,r,o;const s=this.scene.filter(t=>"point"===t.type);if(2>s.length)return;const a=null!==(n=t.strength)&&void 0!==n?n:1;if(0===a)return;const c=t.centerAccessor?"function"==typeof t.centerAccessor?t.centerAccessor:e=>e[t.centerAccessor]:t=>t.id,l="function"==typeof t.costAccessor?t.costAccessor:e=>e[t.costAccessor],u=s.find(e=>c(e.datum)+""==t.center+"");if(!u)return void("production"!==process.env.NODE_ENV&&console.warn(`GeoFrame: Distance cartogram center "${t.center}" not found in point data`));const h=u.x,f=u.y,d=s.map(t=>l(t.datum)).filter(t=>isFinite(t)&&t>=0),g=Math.max(...d,1),y=Math.min(i.width,i.height)/2,p=e.scaleLinear().domain([0,g]).range([0,y]);this.cartogramLayout={cx:h,cy:f,maxCost:g,availableRadius:y},this.areas.length>0&&"production"!==process.env.NODE_ENV&&console.warn("GeoFrame: Distance cartogram does not support area rendering. Areas will be ignored. Remove areas or set projectionTransform to null to render them."),this.scene=this.scene.filter(t=>"geoarea"!==t.type||!t.interactive);for(const t of s){if(t===u)continue;const e=Math.atan2(t.y-f,t.x-h),i=Math.sqrt(Math.pow(t.x-h,2)+Math.pow(t.y-f,2)),n=l(t.datum),r=i+((isFinite(n)?p(n):i)-i)*a;t.x=h+Math.cos(e)*r,t.y=f+Math.sin(e)*r}const m=i.width/2,v=i.height/2,x=m-u.x,b=v-u.y;if(Math.abs(x)>.5||Math.abs(b)>.5)for(const t of s)t.x+=x,t.y+=b;this.cartogramLayout={cx:m,cy:v,maxCost:g,availableRadius:y};const k=this.scene.filter(t=>"line"===t.type);if(k.length>0&&"fractional"!==t.lineMode){const t=new Map;for(const e of s)e.pointId&&t.set(e.pointId,[e.x,e.y]);for(const e of k){const i=null===(r=e.datum)||void 0===r?void 0:r.source,n=null===(o=e.datum)||void 0===o?void 0:o.target;if(i&&n){const r=t.get(i+""),o=t.get(n+"");r&&o&&(e.path=[r,o])}}}}applyDecay(){var t,e,i;const n=this.config.decay;if(!n||!this.pointBuffer)return;const r=this.pointBuffer.size;if(0===r)return;const o=null!==(t=n.minOpacity)&&void 0!==t?t:.1,s=null!==(e=n.halfLife)&&void 0!==e?e:r/2,a=null!==(i=n.stepThreshold)&&void 0!==i?i:.5*r,c=this.scene.filter(t=>"point"===t.type);for(let t=0;c.length>t;t++){const e=r-1-t;let i;switch(n.type){case"exponential":i=o+Math.pow(.5,e/s)*(1-o);break;case"step":i=a>e?1:o;break;default:i=o+(r>1?1-e/(r-1):1)*(1-o)}c[t]._decayOpacity=i,c[t].style=Object.assign(Object.assign({},c[t].style),{opacity:i})}}applyPulse(){var t,e;const i=this.config.pulse;if(!i||!this.timestampBuffer)return;const n=null!==(t=i.duration)&&void 0!==t?t:500,r=performance.now(),o=this.scene.filter(t=>"point"===t.type),s=this.timestampBuffer.toArray();for(let t=0;o.length>t&&s.length>t;t++){const a=r-s[t];n>a&&(o[t]._pulseIntensity=1-a/n,o[t]._pulseColor=i.color||"rgba(255,255,255,0.6)",o[t]._pulseGlowRadius=null!==(e=i.glowRadius)&&void 0!==e?e:4)}}get hasActivePulses(){var t,e;if(!this.timestampBuffer||0===this.timestampBuffer.size)return!1;const i=null!==(e=null===(t=this.config.pulse)||void 0===t?void 0:t.duration)&&void 0!==e?e:500,n=this.timestampBuffer.toArray()[this.timestampBuffer.size-1];return performance.now()-n<i}startTransition(t){var e,i;const n=null!==(i=null===(e=this.config.transition)||void 0===e?void 0:e.duration)&&void 0!==i?i:300;if(0>=n)return;const r=new Map;for(const e of t)"point"===e.type&&e.pointId&&r.set(e.pointId,[e.x,e.y]);const o=this.scene.filter(t=>"point"===t.type);let s=!1;for(const t of o)if(t.pointId){const e=r.get(t.pointId);e&&(t._targetX=t.x,t._targetY=t.y,t.x=e[0],t.y=e[1],(Math.abs(e[0]-t._targetX)>.5||Math.abs(e[1]-t._targetY)>.5)&&(s=!0))}s&&(this.activeTransition={startTime:performance.now(),duration:n})}advanceTransition(t){if(!this.activeTransition)return!1;const e=A(t,this.activeTransition),i=_(e),n=this.scene.filter(t=>"point"===t.type);for(const t of n)if(null!=t._targetX&&null!=t._targetY){const e=t.y;t.x=P(t.x,t._targetX,i),t.y=P(e,t._targetY,i)}if(e>=1){for(const t of n)null!=t._targetX&&(t.x=t._targetX,t.y=t._targetY,t._targetX=void 0,t._targetY=void 0);return this.activeTransition=null,!1}return!0}}function se(t,e="#4e79a7"){return t&&"string"==typeof t?t:e}const ae=require("react-dom/server");function ce(t){return Math.round(100*t)/100+""}function le(t){var e,i,n,r;const o=t.size||[500,300],s=Object.assign(Object.assign({},{top:20,right:20,bottom:30,left:40}),t.margin),a=o[0]-s.left-s.right,c=o[1]-s.top-s.bottom,l="streaming"===t.runtimeMode||["bar","swarm","waterfall"].includes(t.chartType),u={chartType:t.chartType,windowSize:null!==(e=t.windowSize)&&void 0!==e?e:200,windowMode:null!==(i=t.windowMode)&&void 0!==i?i:"sliding",arrowOfTime:l&&null!==(n=t.arrowOfTime)&&void 0!==n?n:"right",extentPadding:null!==(r=t.extentPadding)&&void 0!==r?r:.1,xAccessor:l?void 0:t.xAccessor,yAccessor:l?void 0:t.yAccessor,timeAccessor:l?t.timeAccessor:void 0,valueAccessor:t.valueAccessor,colorAccessor:t.colorAccessor,sizeAccessor:t.sizeAccessor,groupAccessor:t.groupAccessor,categoryAccessor:t.categoryAccessor,lineDataAccessor:t.lineDataAccessor,xExtent:t.xExtent,yExtent:t.yExtent,sizeRange:t.sizeRange,binSize:t.binSize,normalize:t.normalize,boundsAccessor:t.boundsAccessor,boundsStyle:t.boundsStyle,openAccessor:t.openAccessor,highAccessor:t.highAccessor,lowAccessor:t.lowAccessor,closeAccessor:t.closeAccessor,candlestickStyle:t.candlestickStyle,lineStyle:t.lineStyle,pointStyle:t.pointStyle,areaStyle:t.areaStyle,colorScheme:t.colorScheme,barColors:t.barColors},h=new j(u);if(t.data&&h.ingest({inserts:t.data,bounded:!0}),h.computeScene({width:a,height:c}),!h.scales||0===h.scene.length)return ae.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-xy-frame",width:o[0],height:o[1]}));const d=h.scene.map((t,e)=>function(t,e){var i,n,r;switch(t.type){case"line":{const i=t;if(0===i.path.length)return null;const n="M"+i.path.map(([t,e])=>`${t},${e}`).join("L");return f.createElement("path",{key:"line-"+e,d:n,fill:"none",stroke:i.style.stroke||"#4e79a7",strokeWidth:i.style.strokeWidth||2,strokeDasharray:i.style.strokeDasharray,opacity:i.style.opacity})}case"area":{const r=t;if(0===r.topPath.length)return null;const o=r.topPath.map(([t,e])=>`${t},${e}`).join("L"),s=[...r.bottomPath].reverse().map(([t,e])=>`${t},${e}`).join("L");return f.createElement("path",{key:"area-"+e,d:`M${o}L${s}Z`,fill:se(r.style.fill),fillOpacity:null!==(n=null!==(i=r.style.fillOpacity)&&void 0!==i?i:r.style.opacity)&&void 0!==n?n:.7,stroke:r.style.stroke,strokeWidth:r.style.strokeWidth})}case"point":{const i=t;return f.createElement("circle",{key:"point-"+e,cx:i.x,cy:i.y,r:i.r,fill:se(i.style.fill),opacity:null!==(r=i.style.opacity)&&void 0!==r?r:.8,stroke:i.style.stroke,strokeWidth:i.style.strokeWidth})}case"rect":{const i=t;return f.createElement("rect",{key:"rect-"+e,x:i.x,y:i.y,width:i.w,height:i.h,fill:se(i.style.fill),opacity:i.style.opacity,stroke:i.style.stroke,strokeWidth:i.style.strokeWidth})}case"heatcell":{const i=t;if(i.showValues&&null!=i.value&&i.w>=20&&i.h>=20){const t=i.valueFormat?i.valueFormat(i.value):Number.isInteger(i.value)?i.value+"":100>Math.abs(i.value)?1>Math.abs(i.value)?i.value.toPrecision(3):i.value.toFixed(1):i.value.toFixed(0),[n,r,o]=function(t){if(t.startsWith("#")){let e=t.slice(1);if(3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),6===e.length)return[parseInt(e.slice(0,2),16),parseInt(e.slice(2,4),16),parseInt(e.slice(4,6),16)]}const e=t.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);return e?[+e[1],+e[2],+e[3]]:[128,128,128]}(i.fill),s=.299*n+.587*r+.114*o>128?"#000":"#fff",a=Math.max(10,Math.min(16,.3*Math.min(i.w,i.h)));return f.createElement("g",{key:"heatcell-"+e},f.createElement("rect",{x:i.x,y:i.y,width:i.w,height:i.h,fill:i.fill}),f.createElement("text",{x:i.x+i.w/2,y:i.y+i.h/2,textAnchor:"middle",dominantBaseline:"middle",fill:s,fontSize:a+"px"},t))}return f.createElement("rect",{key:"heatcell-"+e,x:i.x,y:i.y,width:i.w,height:i.h,fill:i.fill})}case"candlestick":{const i=t,n=Math.min(i.openY,i.closeY),r=Math.max(Math.abs(i.openY-i.closeY),1),o=i.isUp?i.upColor:i.downColor;return f.createElement("g",{key:"candle-"+e},f.createElement("line",{x1:i.x,y1:i.highY,x2:i.x,y2:i.lowY,stroke:i.wickColor,strokeWidth:i.wickWidth}),f.createElement("rect",{x:i.x-i.bodyWidth/2,y:n,width:i.bodyWidth,height:r,fill:o,stroke:o,strokeWidth:1}))}default:return null}}(t,e)).filter(Boolean),g=!1!==t.showAxes?function(t,e,i){var n,r,o,s;const a=t.x.ticks(5).map(e=>({pixel:t.x(e),label:(i.xFormat||i.tickFormatTime||ce)(e)})),c=t.y.ticks(5).map(e=>({pixel:t.y(e),label:(i.yFormat||i.tickFormatValue||ce)(e)}));return f.createElement("g",{className:"stream-axes"},f.createElement("line",{x1:0,y1:e.height,x2:e.width,y2:e.height,stroke:"#ccc",strokeWidth:1}),a.map((t,i)=>f.createElement("g",{key:"xtick-"+i,transform:`translate(${t.pixel},${e.height})`},f.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666"},t.label))),i.xLabel&&f.createElement("text",{x:e.width/2,y:e.height+40,textAnchor:"middle",fontSize:12,fill:"#333"},i.xLabel),f.createElement("line",{x1:0,y1:0,x2:0,y2:e.height,stroke:"#ccc",strokeWidth:1}),c.map((t,e)=>f.createElement("g",{key:"ytick-"+e,transform:`translate(0,${t.pixel})`},f.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666"},t.label))),i.yLabel&&f.createElement("text",{x:15-(null!==(r=null===(n=i.margin)||void 0===n?void 0:n.left)&&void 0!==r?r:40),y:e.height/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-(null!==(s=null===(o=i.margin)||void 0===o?void 0:o.left)&&void 0!==s?s:40)}, ${e.height/2})`},i.yLabel))}(h.scales,{width:a,height:c},t):null,y=t.title&&"string"==typeof t.title?f.createElement("text",{x:o[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,p=t.background?f.createElement("rect",{x:0,y:0,width:a,height:c,fill:t.background}):null,m=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-xy-frame"+(t.className?" "+t.className:""),width:o[0],height:o[1]},f.createElement("g",{transform:`translate(${s.left},${s.top})`},p,d,g),y);return ae.renderToStaticMarkup(m)}function ue(t,e){return t?"function"==typeof t?t:e=>e[t]:t=>t[e]}const he=new Set(["tree","cluster","treemap","circlepack","partition"]);function fe(t){const e=t.chartType||"force",i=t.size||[500,500],n=Object.assign(Object.assign({},{top:20,right:20,bottom:20,left:20}),t.margin),r=i[0]-n.left-n.right,o=i[1]-n.top-n.bottom,s=function(t){return Xt[t]}(e);if(!s)throw Error(`No layout plugin found for chart type: "${e}". Supported types: force, sankey, chord, tree, cluster, treemap, circlepack, partition.`);const a={chartType:e,nodeIDAccessor:t.nodeIDAccessor,sourceAccessor:t.sourceAccessor,targetAccessor:t.targetAccessor,valueAccessor:t.valueAccessor,childrenAccessor:t.childrenAccessor,hierarchySum:t.hierarchySum,orientation:t.orientation,nodeAlign:t.nodeAlign,nodePaddingRatio:t.nodePaddingRatio,nodeWidth:t.nodeWidth,iterations:t.iterations,forceStrength:t.forceStrength,padAngle:t.padAngle,groupWidth:t.groupWidth,sortGroups:t.sortGroups,edgeSort:t.edgeSort,treeOrientation:t.treeOrientation,edgeType:t.edgeType,padding:t.padding,paddingTop:t.paddingTop,nodeStyle:t.nodeStyle,edgeStyle:t.edgeStyle,nodeLabel:t.nodeLabel,showLabels:t.showLabels,colorBy:t.colorBy,colorScheme:t.colorScheme,edgeColorBy:t.edgeColorBy,edgeOpacity:t.edgeOpacity,colorByDepth:t.colorByDepth,nodeSize:t.nodeSize,nodeSizeRange:t.nodeSizeRange};let l,u;if(he.has(e)){const e=t.data||t.edges;if(!e||Array.isArray(e))return ae.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-network-frame",width:i[0],height:i[1]}));a.__hierarchyRoot=e,l=[],u=[]}else{const e=t.nodes||[],n=Array.isArray(t.edges)?t.edges:[];if(0===e.length&&0===n.length)return ae.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-network-frame",width:i[0],height:i[1]}));if(u=function(t,e){const i=ue(e.sourceAccessor,"source"),n=ue(e.targetAccessor,"target"),r=ue(e.valueAccessor,"value");return t.map(t=>({source:i(t)+"",target:n(t)+"",value:Number(r(t))||1,y0:0,y1:0,sankeyWidth:0,data:t}))}(n,a),0===e.length&&u.length>0){const t=new Set;for(const e of u){const i="string"==typeof e.target?e.target:e.target.id;t.add("string"==typeof e.source?e.source:e.source.id),t.add(i)}l=Array.from(t).map(t=>({id:t,x:0,y:0,x0:0,x1:0,y0:0,y1:0,width:0,height:0,value:0,data:{id:t}}))}else l=function(t,e){const i=ue(e.nodeIDAccessor,"id");return t.map(t=>({id:i(t)+"",x:0,y:0,x0:0,x1:0,y0:0,y1:0,width:0,height:0,value:0,data:t}))}(e,a)}s.computeLayout(l,u,a,[r,o]);const{sceneNodes:h,sceneEdges:d,labels:g}=s.buildScene(l,u,a,[r,o]),y=d.map((t,e)=>function(t,e){switch(t.type){case"line":return f.createElement("line",{key:"net-edge-"+e,x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stroke:t.style.stroke||"#999",strokeWidth:t.style.strokeWidth||1,opacity:t.style.opacity});case"bezier":{const i=t;return f.createElement("path",{key:"net-edge-"+e,d:i.pathD,fill:se(i.style.fill,"#999"),fillOpacity:i.style.fillOpacity,stroke:i.style.stroke||"none",strokeWidth:i.style.strokeWidth,opacity:i.style.opacity})}case"ribbon":{const i=t;return f.createElement("path",{key:"net-edge-"+e,d:i.pathD,fill:se(i.style.fill,"#999"),fillOpacity:i.style.fillOpacity,stroke:i.style.stroke||"none",strokeWidth:i.style.strokeWidth,opacity:i.style.opacity})}case"curved":{const i=t;return f.createElement("path",{key:"net-edge-"+e,d:i.pathD,fill:se(i.style.fill,"none"),stroke:i.style.stroke||"#999",strokeWidth:i.style.strokeWidth||1,opacity:i.style.opacity})}default:return null}}(t,e)).filter(Boolean),p=h.map((t,e)=>function(t,e){switch(t.type){case"circle":{const i=t;return f.createElement("circle",{key:"net-circle-"+e,cx:i.cx,cy:i.cy,r:i.r,fill:se(i.style.fill),stroke:i.style.stroke,strokeWidth:i.style.strokeWidth,opacity:i.style.opacity})}case"rect":{const i=t;return f.createElement("rect",{key:"net-rect-"+e,x:i.x,y:i.y,width:i.w,height:i.h,fill:se(i.style.fill),stroke:i.style.stroke,strokeWidth:i.style.strokeWidth,opacity:i.style.opacity})}case"arc":{const i=t,n=c.arc().innerRadius(i.innerR).outerRadius(i.outerR).startAngle(i.startAngle).endAngle(i.endAngle)({})||"";return f.createElement("path",{key:"net-arc-"+e,d:n,transform:`translate(${i.cx},${i.cy})`,fill:se(i.style.fill),stroke:i.style.stroke,strokeWidth:i.style.strokeWidth,opacity:i.style.opacity})}default:return null}}(t,e)).filter(Boolean),m=g.map((t,e)=>function(t,e){return f.createElement("text",{key:"net-label-"+e,x:t.x,y:t.y,textAnchor:t.anchor||"middle",dominantBaseline:t.baseline||"auto",fontSize:t.fontSize||11,fontWeight:t.fontWeight,fill:t.fill||"#333",stroke:t.stroke,strokeWidth:t.strokeWidth,paintOrder:t.paintOrder},t.text)}(t,e)).filter(Boolean),v=t.title&&"string"==typeof t.title?f.createElement("text",{x:i[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,x=t.background?f.createElement("rect",{x:0,y:0,width:r,height:o,fill:t.background}):null,b=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-network-frame"+(t.className?" "+t.className:""),width:i[0],height:i[1]},f.createElement("g",{transform:`translate(${n.left},${n.top})`},x,y,p,m),v);return ae.renderToStaticMarkup(b)}function de(t){var e,i,n;const r=t.size||[500,400],o=Object.assign(Object.assign({},{top:20,right:20,bottom:30,left:40}),t.margin),s=r[0]-o.left-o.right,a=r[1]-o.top-o.bottom,l=t.projection||"vertical",u="radial"===l,h={chartType:t.chartType,windowSize:null!==(e=t.windowSize)&&void 0!==e?e:1e4,windowMode:null!==(i=t.windowMode)&&void 0!==i?i:"sliding",extentPadding:null!==(n=t.extentPadding)&&void 0!==n?n:.05,projection:l,oAccessor:t.oAccessor,rAccessor:t.rAccessor,colorAccessor:t.colorAccessor,stackBy:t.stackBy,groupBy:t.groupBy,categoryAccessor:t.categoryAccessor,valueAccessor:t.valueAccessor,timeAccessor:t.timeAccessor,rExtent:t.rExtent,oExtent:t.oExtent,barPadding:t.barPadding,innerRadius:t.innerRadius,normalize:t.normalize,startAngle:t.startAngle,bins:t.bins,showOutliers:t.showOutliers,showIQR:t.showIQR,amplitude:t.amplitude,oSort:t.oSort,connectorAccessor:t.connectorAccessor,connectorStyle:t.connectorStyle,dynamicColumnWidth:t.dynamicColumnWidth,pieceStyle:t.pieceStyle,summaryStyle:t.summaryStyle,colorScheme:t.colorScheme,barColors:t.barColors},d=new Gt(h);if(t.data&&d.ingest({inserts:t.data,bounded:!0}),d.computeScene({width:s,height:a}),!d.scales||0===d.scene.length)return ae.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-ordinal-frame",width:r[0],height:r[1]}));const g=d.scene.map((t,e)=>function(t,e){var i,n,r,o,s;const a=t.category||t.group||"",l=i=>`ord-${t.type}-${a}-${e}-${i}`,u=`ord-${t.type}-${a}-${e}`;switch(t.type){case"rect":{const e=t;return f.createElement("rect",{key:u,x:e.x,y:e.y,width:e.w,height:e.h,fill:se(e.style.fill),opacity:e.style.opacity,stroke:e.style.stroke,strokeWidth:e.style.strokeWidth})}case"point":{const e=t;return f.createElement("circle",{key:u,cx:e.x,cy:e.y,r:e.r,fill:se(e.style.fill),opacity:null!==(i=e.style.opacity)&&void 0!==i?i:.8,stroke:e.style.stroke,strokeWidth:e.style.strokeWidth})}case"wedge":{const e=t,i=c.arc().innerRadius(e.innerRadius).outerRadius(e.outerRadius).startAngle(e.startAngle).endAngle(e.endAngle)({})||"";return f.createElement("path",{key:u,d:i,transform:`translate(${e.cx},${e.cy})`,fill:se(e.style.fill),stroke:e.style.stroke,strokeWidth:e.style.strokeWidth,opacity:e.style.opacity})}case"boxplot":{const e=t,i=e.columnWidth/2;return"vertical"===e.projection?f.createElement("g",{key:u},f.createElement("line",{x1:e.x,y1:e.minPos,x2:e.x,y2:e.maxPos,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("rect",{x:e.x-i,y:Math.min(e.q1Pos,e.q3Pos),width:e.columnWidth,height:Math.abs(e.q3Pos-e.q1Pos),fill:se(e.style.fill),fillOpacity:null!==(n=e.style.fillOpacity)&&void 0!==n?n:.6,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.x-i,y1:e.medianPos,x2:e.x+i,y2:e.medianPos,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("line",{x1:e.x-.5*i,y1:e.minPos,x2:e.x+.5*i,y2:e.minPos,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.x-.5*i,y1:e.maxPos,x2:e.x+.5*i,y2:e.maxPos,stroke:e.style.stroke||"#333",strokeWidth:1})):f.createElement("g",{key:u},f.createElement("line",{x1:e.minPos,y1:e.y,x2:e.maxPos,y2:e.y,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("rect",{x:Math.min(e.q1Pos,e.q3Pos),y:e.y-i,width:Math.abs(e.q3Pos-e.q1Pos),height:e.columnWidth,fill:se(e.style.fill),fillOpacity:null!==(r=e.style.fillOpacity)&&void 0!==r?r:.6,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.medianPos,y1:e.y-i,x2:e.medianPos,y2:e.y+i,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("line",{x1:e.minPos,y1:e.y-.5*i,x2:e.minPos,y2:e.y+.5*i,stroke:e.style.stroke||"#333",strokeWidth:1}),f.createElement("line",{x1:e.maxPos,y1:e.y-.5*i,x2:e.maxPos,y2:e.y+.5*i,stroke:e.style.stroke||"#333",strokeWidth:1}))}case"violin":{const e=t,i=[f.createElement("path",{key:l("path"),d:e.pathString,transform:e.translateX||e.translateY?`translate(${e.translateX},${e.translateY})`:void 0,fill:se(e.style.fill),fillOpacity:null!==(o=e.style.fillOpacity)&&void 0!==o?o:.6,stroke:e.style.stroke||"#333",strokeWidth:e.style.strokeWidth||1})];if(e.iqrLine&&e.bounds){const t=e.bounds,n=t.x+t.width/2,r=t.y+t.height/2;t.height>t.width?i.push(f.createElement("line",{key:l("iqr"),x1:n,y1:e.iqrLine.q1Pos,x2:n,y2:e.iqrLine.q3Pos,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("circle",{key:l("med"),cx:n,cy:e.iqrLine.medianPos,r:3,fill:"white",stroke:e.style.stroke||"#333",strokeWidth:1})):i.push(f.createElement("line",{key:l("iqr"),x1:e.iqrLine.q1Pos,y1:r,x2:e.iqrLine.q3Pos,y2:r,stroke:e.style.stroke||"#333",strokeWidth:2}),f.createElement("circle",{key:l("med"),cx:e.iqrLine.medianPos,cy:r,r:3,fill:"white",stroke:e.style.stroke||"#333",strokeWidth:1}))}return f.createElement("g",{key:u},i)}case"connector":return f.createElement("line",{key:u,x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,stroke:t.style.stroke||"#999",strokeWidth:t.style.strokeWidth||1,opacity:null!==(s=t.style.opacity)&&void 0!==s?s:.5});case"trapezoid":{const e=t,i=e.points.map(t=>`${t[0]},${t[1]}`).join(" ");return f.createElement("polygon",{key:u,points:i,fill:se(e.style.fill,"#999"),opacity:e.style.opacity,stroke:e.style.stroke,strokeWidth:e.style.strokeWidth})}default:return null}}(t,e)).filter(Boolean),y=!1!==t.showAxes?function(t,e,i){var n,r,o,s,a,c,l,u;const h=t.scales;if(!h)return null;if("radial"===h.projection)return null;const d="vertical"===h.projection,g=Object.values(t.columns).map(t=>({pixel:t.middle,label:(i.oFormat||String)(t.name)})),y=h.r.ticks(5).map(t=>({pixel:h.r(t),label:(i.rFormat||ce)(t)}));return d?f.createElement("g",{className:"ordinal-axes"},f.createElement("line",{x1:0,y1:e.height,x2:e.width,y2:e.height,stroke:"#ccc",strokeWidth:1}),g.map((t,i)=>f.createElement("g",{key:"oxtick-"+i,transform:`translate(${t.pixel},${e.height})`},f.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666"},t.label))),i.oLabel&&f.createElement("text",{x:e.width/2,y:e.height+40,textAnchor:"middle",fontSize:12,fill:"#333"},i.oLabel),f.createElement("line",{x1:0,y1:0,x2:0,y2:e.height,stroke:"#ccc",strokeWidth:1}),y.map((t,e)=>f.createElement("g",{key:"oytick-"+e,transform:`translate(0,${t.pixel})`},f.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666"},t.label))),i.rLabel&&f.createElement("text",{x:15-(null!==(r=null===(n=i.margin)||void 0===n?void 0:n.left)&&void 0!==r?r:40),y:e.height/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-(null!==(s=null===(o=i.margin)||void 0===o?void 0:o.left)&&void 0!==s?s:40)}, ${e.height/2})`},i.rLabel)):f.createElement("g",{className:"ordinal-axes"},f.createElement("line",{x1:0,y1:e.height,x2:e.width,y2:e.height,stroke:"#ccc",strokeWidth:1}),y.map((t,i)=>f.createElement("g",{key:"oxtick-"+i,transform:`translate(${t.pixel},${e.height})`},f.createElement("line",{y2:5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{y:18,textAnchor:"middle",fontSize:10,fill:"#666"},t.label))),i.rLabel&&f.createElement("text",{x:e.width/2,y:e.height+40,textAnchor:"middle",fontSize:12,fill:"#333"},i.rLabel),f.createElement("line",{x1:0,y1:0,x2:0,y2:e.height,stroke:"#ccc",strokeWidth:1}),g.map((t,e)=>f.createElement("g",{key:"oytick-"+e,transform:`translate(0,${t.pixel})`},f.createElement("line",{x2:-5,stroke:"#ccc",strokeWidth:1}),f.createElement("text",{x:-8,textAnchor:"end",dominantBaseline:"middle",fontSize:10,fill:"#666"},t.label))),i.oLabel&&f.createElement("text",{x:15-(null!==(c=null===(a=i.margin)||void 0===a?void 0:a.left)&&void 0!==c?c:40),y:e.height/2,textAnchor:"middle",fontSize:12,fill:"#333",transform:`rotate(-90, ${15-(null!==(u=null===(l=i.margin)||void 0===l?void 0:l.left)&&void 0!==u?u:40)}, ${e.height/2})`},i.oLabel))}(d,{width:s,height:a},t):null,p=t.title&&"string"==typeof t.title?f.createElement("text",{x:r[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,m=t.background?f.createElement("rect",{x:0,y:0,width:s,height:a,fill:t.background}):null,v=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-ordinal-frame"+(t.className?" "+t.className:""),width:r[0],height:r[1]},f.createElement("g",{transform:`translate(${u?o.left+s/2:o.left},${u?o.top+a/2:o.top})`},m,g,y),p);return ae.renderToStaticMarkup(v)}function ge(t){var e,i,n,r,o,s;const a=t.size||[t.width||600,t.height||400],c=Object.assign(Object.assign({},{top:10,right:10,bottom:10,left:10}),t.margin),l=a[0]-(null!==(e=c.left)&&void 0!==e?e:0)-(null!==(i=c.right)&&void 0!==i?i:0),u=a[1]-(null!==(n=c.top)&&void 0!==n?n:0)-(null!==(r=c.bottom)&&void 0!==r?r:0),h=new oe({projection:t.projection||"equalEarth",xAccessor:t.xAccessor,yAccessor:t.yAccessor,lineDataAccessor:t.lineDataAccessor,pointIdAccessor:t.pointIdAccessor,lineType:t.lineType,areaStyle:t.areaStyle,pointStyle:t.pointStyle,lineStyle:t.lineStyle,graticule:t.graticule,fitPadding:t.fitPadding,projectionTransform:t.projectionTransform});if(t.areas){if("string"==typeof t.areas)throw Error(`Geo SSR requires pre-resolved GeoJSON features. Reference string "${t.areas}" cannot be resolved synchronously. Use \`const features = await resolveReferenceGeography('${t.areas}')\` before calling renderGeoToStaticSVG.`);h.setAreas(t.areas)}if(t.points&&h.setPoints(t.points),t.lines&&h.setLines(t.lines),h.computeScene({width:l,height:u}),0===h.scene.length)return ae.renderToStaticMarkup(f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-geo-frame",width:a[0],height:a[1]}));const d=h.scene.map((t,e)=>function(t,e){var i,n,r,o,s,a;switch(t.type){case"geoarea":{const r=t;return r.pathData?f.createElement("path",{key:"geoarea-"+e,d:r.pathData,fill:se(r.style.fill,"#e0e0e0"),fillOpacity:null!==(i=r.style.fillOpacity)&&void 0!==i?i:1,stroke:r.style.stroke||"none",strokeWidth:r.style.strokeWidth||.5,strokeDasharray:r.style.strokeDasharray,opacity:null!==(n=r._decayOpacity)&&void 0!==n?n:1}):null}case"point":{const i=t;return f.createElement("circle",{key:"point-"+e,cx:i.x,cy:i.y,r:i.r,fill:se(i.style.fill),fillOpacity:null!==(r=i.style.fillOpacity)&&void 0!==r?r:.8,stroke:i.style.stroke,strokeWidth:i.style.strokeWidth,opacity:null!==(o=i._decayOpacity)&&void 0!==o?o:null!==(s=i.style.opacity)&&void 0!==s?s:1})}case"line":{const i=t;if(2>i.path.length)return null;const n="M"+i.path.map(t=>`${t[0]},${t[1]}`).join("L");return f.createElement("path",{key:"line-"+e,d:n,fill:"none",stroke:i.style.stroke||"#4e79a7",strokeWidth:i.style.strokeWidth||1.5,strokeDasharray:i.style.strokeDasharray,opacity:null!==(a=i.style.opacity)&&void 0!==a?a:1})}default:return null}}(t,e)).filter(Boolean),g=t.title&&"string"==typeof t.title?f.createElement("text",{x:a[0]/2,y:16,textAnchor:"middle",fontSize:14,fontWeight:"bold",fill:"#333"},t.title):null,y=t.background?f.createElement("rect",{x:0,y:0,width:l,height:u,fill:t.background}):null,p=f.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",className:"stream-geo-frame"+(t.className?" "+t.className:""),width:a[0],height:a[1]},f.createElement("g",{transform:`translate(${null!==(o=c.left)&&void 0!==o?o:0},${null!==(s=c.top)&&void 0!==s?s:0})`},y,d),g);return ae.renderToStaticMarkup(p)}exports.renderGeoToStaticSVG=function(t){return ge(t)},exports.renderNetworkToStaticSVG=function(t){return fe(t)},exports.renderOrdinalToStaticSVG=function(t){return de(t)},exports.renderToStaticSVG=function(t,e){switch(t){case"xy":return le(e);case"ordinal":return de(e);case"network":return fe(e);case"geo":return ge(e);default:throw Error(`Unknown frame type: ${t}. Must be "xy", "ordinal", "network", or "geo".`)}},exports.renderXYToStaticSVG=function(t){return le(t)};