@synnaxlabs/pluto 0.46.2 → 0.46.4

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 (87) hide show
  1. package/dist/{Toggle-Djy3iEFS.js → Toggle-BvHOvpZl.js} +1 -1
  2. package/dist/{Toggle-D7uuc8BY.cjs → Toggle-YrCaaWoP.cjs} +1 -1
  3. package/dist/{Video-Com7iIjJ.js → Video-B3mUCF7w.js} +1 -1
  4. package/dist/{Video-BgaQjOlJ.cjs → Video-PX9PWa1_.cjs} +1 -1
  5. package/dist/button.cjs +1 -1
  6. package/dist/button.js +1 -1
  7. package/dist/color.cjs +1 -1
  8. package/dist/color.js +1 -1
  9. package/dist/css-BJh3xDSW.cjs +8 -0
  10. package/dist/{css-qKD7ZG81.js → css-C24hS2UX.js} +903 -875
  11. package/dist/css.cjs +1 -1
  12. package/dist/css.js +2 -2
  13. package/dist/dialog.cjs +1 -1
  14. package/dist/dialog.js +1 -1
  15. package/dist/ether.cjs +1 -1
  16. package/dist/ether.js +6 -6
  17. package/dist/{external-CfY-kR5_.js → external-1ucYXJx8.js} +2 -2
  18. package/dist/{external-Bfddv9ir.cjs → external-BwkIuXvQ.cjs} +1 -1
  19. package/dist/{external-CG-WeHt1.js → external-C-ExavVe.js} +3 -3
  20. package/dist/{external-C0szVQZ4.js → external-CC9QgzfY.js} +3 -3
  21. package/dist/{external-BwAIT4Et.js → external-Cg3K8ETl.js} +4 -4
  22. package/dist/{external-Bp0LGk7L.cjs → external-ChJFeBx4.cjs} +1 -1
  23. package/dist/{external-BwzXukg6.js → external-ChfziUeG.js} +2 -2
  24. package/dist/{external-fThC1Pt0.js → external-Ck9vwLNn.js} +3 -3
  25. package/dist/{external-iLU86byd.cjs → external-Clg5_LVL.cjs} +1 -1
  26. package/dist/{external-BatQDwpn.cjs → external-CtPQhs2L.cjs} +1 -1
  27. package/dist/{external-R1DnhHJ8.cjs → external-D-7LQcc1.cjs} +1 -1
  28. package/dist/{external-ok-onqCX.cjs → external-D7ez6YFA.cjs} +1 -1
  29. package/dist/{external-CtIn5ns5.js → external-DSC98ftR.js} +3 -3
  30. package/dist/{external-JI_JLXE9.cjs → external-DcJjrD1A.cjs} +2 -2
  31. package/dist/{external-qAqWNZPd.cjs → external-DfxokOST.cjs} +1 -1
  32. package/dist/{external-DPsERPGZ.js → external-Dia3MCeO.js} +3 -3
  33. package/dist/external-Dxu0KYI_.cjs +1 -0
  34. package/dist/{external-BH7AW9vg.cjs → external-NOoRXXaT.cjs} +1 -1
  35. package/dist/{external-B_BNwXoG.js → external-RDyCOmKR.js} +21 -21
  36. package/dist/{external-BXAiwKcS.js → external-S4v-IR_C.js} +3 -3
  37. package/dist/{external-CaehDJtX.cjs → external-VIR_Vvod.cjs} +1 -1
  38. package/dist/{external-BqSq3_g3.js → external-mtaOrZVh.js} +2 -2
  39. package/dist/{external-DZ9ZLLOd.cjs → external-orHcg1KY.cjs} +1 -1
  40. package/dist/{external-CM-K5NTq.js → external-ree9J7kb.js} +1 -1
  41. package/dist/{external-DLIuO7_6.cjs → external-s4B9EjQm.cjs} +1 -1
  42. package/dist/{external-CwtqVaYf.js → external-wP76ag3P.js} +4 -6
  43. package/dist/flex.cjs +1 -1
  44. package/dist/flex.js +1 -1
  45. package/dist/{fontString-BpD7ezh8.cjs → fontString-BMITZjR-.cjs} +1 -1
  46. package/dist/{fontString-CpT1noV1.js → fontString-CNdpxtJg.js} +2 -2
  47. package/dist/header.cjs +1 -1
  48. package/dist/header.js +1 -1
  49. package/dist/index.cjs +12 -12
  50. package/dist/index.js +4689 -4692
  51. package/dist/input.cjs +1 -1
  52. package/dist/input.js +1 -1
  53. package/dist/list.cjs +1 -1
  54. package/dist/list.js +1 -1
  55. package/dist/{main-DCwBsS0F.js → main-9Dw_ngUE.js} +3 -3
  56. package/dist/{main-20msMsI6.cjs → main-rewFivKu.cjs} +30 -30
  57. package/dist/menu.cjs +1 -1
  58. package/dist/menu.js +1 -1
  59. package/dist/pluto.css +1 -1
  60. package/dist/{provider-B-VPfAGa.js → provider-BMcIM58p.js} +3 -3
  61. package/dist/{provider-D295Uocj.cjs → provider-CedWF-id.cjs} +3 -3
  62. package/dist/{provider-qIzR8Puy.js → provider-DXuSQEu0.js} +2816 -2791
  63. package/dist/provider-DshN-WBB.cjs +83 -0
  64. package/dist/src/color/GradientPicker.d.ts.map +1 -1
  65. package/dist/src/ontology/queries.d.ts +3 -10
  66. package/dist/src/ontology/queries.d.ts.map +1 -1
  67. package/dist/src/schematic/symbol/queries.d.ts +1 -3
  68. package/dist/src/schematic/symbol/queries.d.ts.map +1 -1
  69. package/dist/tabs.cjs +1 -1
  70. package/dist/tabs.js +1 -1
  71. package/dist/text.cjs +1 -1
  72. package/dist/text.js +2 -2
  73. package/dist/theming.cjs +1 -1
  74. package/dist/theming.js +2 -2
  75. package/dist/tree.cjs +1 -1
  76. package/dist/tree.js +1 -1
  77. package/dist/triggers.cjs +1 -1
  78. package/dist/triggers.js +1 -1
  79. package/dist/{units-WtYBE1br.js → units-BfWwpiDe.js} +1 -1
  80. package/dist/units-DOj-2MGY.cjs +1 -0
  81. package/dist/video.cjs +1 -1
  82. package/dist/video.js +1 -1
  83. package/package.json +3 -3
  84. package/dist/css-DA2F4zE4.cjs +0 -8
  85. package/dist/external-BaO1j7U1.cjs +0 -1
  86. package/dist/provider-DVqod4rl.cjs +0 -83
  87. package/dist/units-CLbZ5ejs.cjs +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";const c=require("./provider-DVqod4rl.cjs"),g=require("zod"),s=require("./css-DA2F4zE4.cjs"),Le=require("./fontString-BpD7ezh8.cjs");require("react");const Ht="pluto-vis-renderer",pt=(t,e)=>{t.set(Ht,e,!1)},gt=t=>t.get(Ht),qt=t=>t.getOptional(Ht),G=(t,e)=>gt(t)(e),us=Object.freeze(Object.defineProperty({__proto__:null,AbstractSink:c.AbstractSink,AbstractSource:c.AbstractSource,Base:c.Base,BaseProvider:c.BaseProvider,BooleanStatus:c.BooleanStatus,CONTEXT_KEY:c.CONTEXT_KEY,ChannelData:c.ChannelData,ColorGradient:c.ColorGradient,CompoundTelemFactory:c.CompoundTelemFactory,Context:c.Context$1,FixedColorSource:c.FixedColorSource,FixedNumber:c.FixedNumber,FixedString:c.FixedString,IterativeSeries:c.IterativeSeries,Mean:c.Mean,MultiSourceTransformer:c.MultiSourceTransformer,NoopFactory:c.NoopFactory,PipelineFactory:c.PipelineFactory,REGISTRY:c.REGISTRY$1,RemoteFactory:c.RemoteFactory,RollingAverage:c.RollingAverage,ScaleNumber:c.ScaleNumber,SeriesDownsampler:c.SeriesDownsampler,SetPoint:c.SetPoint,SinkPipeline:c.SinkPipeline,SourcePipeline:c.SourcePipeline,StaticFactory:c.StaticFactory,StreamChannelData:c.StreamChannelData,StreamChannelValue:c.StreamChannelValue,StringifyNumber:c.StringifyNumber,TransformerFactory:c.TransformerFactory,UnarySinkTransformer:c.UnarySinkTransformer,UnarySourceTransformer:c.UnarySourceTransformer,WithinBounds:c.WithinBounds,booleanSinkSpecZ:c.booleanSinkSpecZ,booleanSinkTransformerSpecZ:c.booleanSinkTransformerSpecZ,booleanSourceSpecZ:c.booleanSourceSpecZ,booleanSourceTransformerSpecZ:c.booleanSourceTransformerSpecZ,booleanStatus:c.booleanStatus,booleanStatusProps:c.booleanStatusProps,channelData:c.channelData,colorGradient:c.colorGradient,colorGradientProps:c.colorGradientProps,colorSourceSpecZ:c.colorSourceSpecZ,connectionZ:c.connectionZ,createFactory:c.createFactory,downsampleMode:c.downsampleMode,downsampleModeProps:c.downsampleModeProps,downsampleModeZ:c.downsampleModeZ,fixedArray:c.fixedArray,fixedColor:c.fixedColor,fixedColorSourcePropsZ:c.fixedColorSourcePropsZ,fixedNumber:c.fixedNumber,fixedNumberPropsZ:c.fixedNumberPropsZ,fixedSeriesPropsZ:c.fixedSeriesPropsZ,fixedString:c.fixedString,fixedStringPropsZ:c.fixedStringPropsZ,iterativeArray:c.iterativeArray,iterativeSeriesPropsZ:c.iterativeSeriesPropsZ,mean:c.mean,noopBooleanSinkSpec:c.noopBooleanSinkSpec,noopBooleanSourceSpec:c.noopBooleanSourceSpec,noopColorSourceSpec:c.noopColorSourceSpec,noopNumericSinkSpec:c.noopNumericSinkSpec,noopNumericSourceSpec:c.noopNumericSourceSpec,noopSeriesSourceSpec:c.noopSeriesSourceSpec,noopStatusSourceSpec:c.noopStatusSourceSpec,noopStringSourceSpec:c.noopStringSourceSpec,numberSinkSpecZ:c.numberSinkSpecZ,numberSourceSpecZ:c.numberSourceSpecZ,providerStateZ:c.providerStateZ,rollingAverage:c.rollingAverage,rollingAverageProps:c.rollingAverageProps,scaleNumber:c.scaleNumber,scaleNumberProps:c.scaleNumberProps,seriesDownsampler:c.seriesDownsampler,seriesSourceSpecZ:c.seriesSourceSpecZ,setContext:c.setContext,setpoint:c.setpoint,sinkPipeline:c.sinkPipeline,sinkPipelinePropsZ:c.sinkPipelinePropsZ,sinkSpecZ:c.sinkSpecZ,sinkTransformerSpecZ:c.sinkTransformerSpecZ,sourcePipeline:c.sourcePipeline,sourcePipelinePropsZ:c.sourcePipelinePropsZ,sourceSpecZ:c.sourceSpecZ,sourceTransformerSpecZ:c.sourceTransformerSpecZ,specZ:c.specZ$1,statusSourceSpecZ:c.statusSourceSpecZ,streamChannelData:c.streamChannelData,streamChannelValue:c.streamChannelValue,streamChannelValuePropsZ:c.streamChannelValuePropsZ,stringSourceSpecZ:c.stringSourceSpecZ,stringifyNumber:c.stringifyNumber,stringifyNumberProps:c.stringifyNumberProps,useChildContext:c.useChildContext,useContext:c.useContext,useSink:c.useSink,useSource:c.useSource,withinBounds:c.withinBounds,withinBoundsProps:c.withinBoundsProps},Symbol.toStringTag,{value:"Module"}));function Qt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function qn(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function ze(){}var De=.7,Ve=1/De,me="\\s*([+-]?\\d+)\\s*",Me="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",H="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",hs=/^#([0-9a-f]{3,8})$/,ds=new RegExp(`^rgb\\(${me},${me},${me}\\)$`),fs=new RegExp(`^rgb\\(${H},${H},${H}\\)$`),ps=new RegExp(`^rgba\\(${me},${me},${me},${Me}\\)$`),gs=new RegExp(`^rgba\\(${H},${H},${H},${Me}\\)$`),ms=new RegExp(`^hsl\\(${Me},${H},${H}\\)$`),Ss=new RegExp(`^hsla\\(${Me},${H},${H},${Me}\\)$`),fn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Qt(ze,ye,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:pn,formatHex:pn,formatHex8:ys,formatHsl:bs,formatRgb:gn,toString:gn});function pn(){return this.rgb().formatHex()}function ys(){return this.rgb().formatHex8()}function bs(){return Qn(this).formatHsl()}function gn(){return this.rgb().formatRgb()}function ye(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=hs.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?mn(e):n===3?new Y(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?qe(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?qe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=ds.exec(t))?new Y(e[1],e[2],e[3],1):(e=fs.exec(t))?new Y(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=ps.exec(t))?qe(e[1],e[2],e[3],e[4]):(e=gs.exec(t))?qe(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=ms.exec(t))?bn(e[1],e[2]/100,e[3]/100,1):(e=Ss.exec(t))?bn(e[1],e[2]/100,e[3]/100,e[4]):fn.hasOwnProperty(t)?mn(fn[t]):t==="transparent"?new Y(NaN,NaN,NaN,0):null}function mn(t){return new Y(t>>16&255,t>>8&255,t&255,1)}function qe(t,e,n,r){return r<=0&&(t=e=n=NaN),new Y(t,e,n,r)}function xs(t){return t instanceof ze||(t=ye(t)),t?(t=t.rgb(),new Y(t.r,t.g,t.b,t.opacity)):new Y}function kt(t,e,n,r){return arguments.length===1?xs(t):new Y(t,e,n,r??1)}function Y(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Qt(Y,kt,qn(ze,{brighter(t){return t=t==null?Ve:Math.pow(Ve,t),new Y(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?De:Math.pow(De,t),new Y(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Y(re(this.r),re(this.g),re(this.b),Ke(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Sn,formatHex:Sn,formatHex8:vs,formatRgb:yn,toString:yn}));function Sn(){return`#${te(this.r)}${te(this.g)}${te(this.b)}`}function vs(){return`#${te(this.r)}${te(this.g)}${te(this.b)}${te((isNaN(this.opacity)?1:this.opacity)*255)}`}function yn(){const t=Ke(this.opacity);return`${t===1?"rgb(":"rgba("}${re(this.r)}, ${re(this.g)}, ${re(this.b)}${t===1?")":`, ${t})`}`}function Ke(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function re(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function te(t){return t=re(t),(t<16?"0":"")+t.toString(16)}function bn(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new F(t,e,n,r)}function Qn(t){if(t instanceof F)return new F(t.h,t.s,t.l,t.opacity);if(t instanceof ze||(t=ye(t)),!t)return new F;if(t instanceof F)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),a=Math.max(e,n,r),i=NaN,l=a-o,h=(a+o)/2;return l?(e===a?i=(n-r)/l+(n<r)*6:n===a?i=(r-e)/l+2:i=(e-n)/l+4,l/=h<.5?a+o:2-a-o,i*=60):l=h>0&&h<1?0:i,new F(i,l,h,t.opacity)}function Ts(t,e,n,r){return arguments.length===1?Qn(t):new F(t,e,n,r??1)}function F(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Qt(F,Ts,qn(ze,{brighter(t){return t=t==null?Ve:Math.pow(Ve,t),new F(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?De:Math.pow(De,t),new F(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,o=2*n-r;return new Y(yt(t>=240?t-240:t+120,o,r),yt(t,o,r),yt(t<120?t+240:t-120,o,r),this.opacity)},clamp(){return new F(xn(this.h),Qe(this.s),Qe(this.l),Ke(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ke(this.opacity);return`${t===1?"hsl(":"hsla("}${xn(this.h)}, ${Qe(this.s)*100}%, ${Qe(this.l)*100}%${t===1?")":`, ${t})`}`}}));function xn(t){return t=(t||0)%360,t<0?t+360:t}function Qe(t){return Math.max(0,Math.min(1,t||0))}function yt(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Wt=t=>()=>t;function ws(t,e){return function(n){return t+n*e}}function Cs(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Es(t){return(t=+t)==1?Wn:function(e,n){return n-e?Cs(e,n,t):Wt(isNaN(e)?n:e)}}function Wn(t,e){var n=e-t;return n?ws(t,n):Wt(isNaN(t)?e:t)}const Rt=(function t(e){var n=Es(e);function r(o,a){var i=n((o=kt(o)).r,(a=kt(a)).r),l=n(o.g,a.g),h=n(o.b,a.b),u=Wn(o.opacity,a.opacity);return function(d){return o.r=i(d),o.g=l(d),o.b=h(d),o.opacity=u(d),o+""}}return r.gamma=t,r})(1);function ks(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),o;return function(a){for(o=0;o<n;++o)r[o]=t[o]*(1-a)+e[o]*a;return r}}function Rs(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Ps(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,o=new Array(r),a=new Array(n),i;for(i=0;i<r;++i)o[i]=mt(t[i],e[i]);for(;i<n;++i)a[i]=e[i];return function(l){for(i=0;i<r;++i)a[i]=o[i](l);return a}}function Ls(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Ae(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Ds(t,e){var n={},r={},o;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(o in e)o in t?n[o]=mt(t[o],e[o]):r[o]=e[o];return function(a){for(o in n)r[o]=n[o](a);return r}}var Pt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,bt=new RegExp(Pt.source,"g");function Ms(t){return function(){return t}}function As(t){return function(e){return t(e)+""}}function Gn(t,e){var n=Pt.lastIndex=bt.lastIndex=0,r,o,a,i=-1,l=[],h=[];for(t=t+"",e=e+"";(r=Pt.exec(t))&&(o=bt.exec(e));)(a=o.index)>n&&(a=e.slice(n,a),l[i]?l[i]+=a:l[++i]=a),(r=r[0])===(o=o[0])?l[i]?l[i]+=o:l[++i]=o:(l[++i]=null,h.push({i,x:Ae(r,o)})),n=bt.lastIndex;return n<e.length&&(a=e.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?h[0]?As(h[0].x):Ms(e):(e=h.length,function(u){for(var d=0,f;d<e;++d)l[(f=h[d]).i]=f.x(u);return l.join("")})}function mt(t,e){var n=typeof e,r;return e==null||n==="boolean"?Wt(e):(n==="number"?Ae:n==="string"?(r=ye(e))?(e=r,Rt):Gn:e instanceof ye?Rt:e instanceof Date?Ls:Rs(e)?ks:Array.isArray(e)?Ps:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Ds:Ae)(t,e)}function Os(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}const vn=`#version 300 es
1
+ "use strict";const c=require("./provider-DshN-WBB.cjs"),g=require("zod"),s=require("./css-BJh3xDSW.cjs"),Le=require("./fontString-BMITZjR-.cjs");require("react");const Ht="pluto-vis-renderer",pt=(t,e)=>{t.set(Ht,e,!1)},gt=t=>t.get(Ht),qt=t=>t.getOptional(Ht),G=(t,e)=>gt(t)(e),us=Object.freeze(Object.defineProperty({__proto__:null,AbstractSink:c.AbstractSink,AbstractSource:c.AbstractSource,Base:c.Base,BaseProvider:c.BaseProvider,BooleanStatus:c.BooleanStatus,CONTEXT_KEY:c.CONTEXT_KEY,ChannelData:c.ChannelData,ColorGradient:c.ColorGradient,CompoundTelemFactory:c.CompoundTelemFactory,Context:c.Context$1,FixedColorSource:c.FixedColorSource,FixedNumber:c.FixedNumber,FixedString:c.FixedString,IterativeSeries:c.IterativeSeries,Mean:c.Mean,MultiSourceTransformer:c.MultiSourceTransformer,NoopFactory:c.NoopFactory,PipelineFactory:c.PipelineFactory,REGISTRY:c.REGISTRY$1,RemoteFactory:c.RemoteFactory,RollingAverage:c.RollingAverage,ScaleNumber:c.ScaleNumber,SeriesDownsampler:c.SeriesDownsampler,SetPoint:c.SetPoint,SinkPipeline:c.SinkPipeline,SourcePipeline:c.SourcePipeline,StaticFactory:c.StaticFactory,StreamChannelData:c.StreamChannelData,StreamChannelValue:c.StreamChannelValue,StringifyNumber:c.StringifyNumber,TransformerFactory:c.TransformerFactory,UnarySinkTransformer:c.UnarySinkTransformer,UnarySourceTransformer:c.UnarySourceTransformer,WithinBounds:c.WithinBounds,booleanSinkSpecZ:c.booleanSinkSpecZ,booleanSinkTransformerSpecZ:c.booleanSinkTransformerSpecZ,booleanSourceSpecZ:c.booleanSourceSpecZ,booleanSourceTransformerSpecZ:c.booleanSourceTransformerSpecZ,booleanStatus:c.booleanStatus,booleanStatusProps:c.booleanStatusProps,channelData:c.channelData,colorGradient:c.colorGradient,colorGradientProps:c.colorGradientProps,colorSourceSpecZ:c.colorSourceSpecZ,connectionZ:c.connectionZ,createFactory:c.createFactory,downsampleMode:c.downsampleMode,downsampleModeProps:c.downsampleModeProps,downsampleModeZ:c.downsampleModeZ,fixedArray:c.fixedArray,fixedColor:c.fixedColor,fixedColorSourcePropsZ:c.fixedColorSourcePropsZ,fixedNumber:c.fixedNumber,fixedNumberPropsZ:c.fixedNumberPropsZ,fixedSeriesPropsZ:c.fixedSeriesPropsZ,fixedString:c.fixedString,fixedStringPropsZ:c.fixedStringPropsZ,iterativeArray:c.iterativeArray,iterativeSeriesPropsZ:c.iterativeSeriesPropsZ,mean:c.mean,noopBooleanSinkSpec:c.noopBooleanSinkSpec,noopBooleanSourceSpec:c.noopBooleanSourceSpec,noopColorSourceSpec:c.noopColorSourceSpec,noopNumericSinkSpec:c.noopNumericSinkSpec,noopNumericSourceSpec:c.noopNumericSourceSpec,noopSeriesSourceSpec:c.noopSeriesSourceSpec,noopStatusSourceSpec:c.noopStatusSourceSpec,noopStringSourceSpec:c.noopStringSourceSpec,numberSinkSpecZ:c.numberSinkSpecZ,numberSourceSpecZ:c.numberSourceSpecZ,providerStateZ:c.providerStateZ,rollingAverage:c.rollingAverage,rollingAverageProps:c.rollingAverageProps,scaleNumber:c.scaleNumber,scaleNumberProps:c.scaleNumberProps,seriesDownsampler:c.seriesDownsampler,seriesSourceSpecZ:c.seriesSourceSpecZ,setContext:c.setContext,setpoint:c.setpoint,sinkPipeline:c.sinkPipeline,sinkPipelinePropsZ:c.sinkPipelinePropsZ,sinkSpecZ:c.sinkSpecZ,sinkTransformerSpecZ:c.sinkTransformerSpecZ,sourcePipeline:c.sourcePipeline,sourcePipelinePropsZ:c.sourcePipelinePropsZ,sourceSpecZ:c.sourceSpecZ,sourceTransformerSpecZ:c.sourceTransformerSpecZ,specZ:c.specZ$1,statusSourceSpecZ:c.statusSourceSpecZ,streamChannelData:c.streamChannelData,streamChannelValue:c.streamChannelValue,streamChannelValuePropsZ:c.streamChannelValuePropsZ,stringSourceSpecZ:c.stringSourceSpecZ,stringifyNumber:c.stringifyNumber,stringifyNumberProps:c.stringifyNumberProps,useChildContext:c.useChildContext,useContext:c.useContext,useSink:c.useSink,useSource:c.useSource,withinBounds:c.withinBounds,withinBoundsProps:c.withinBoundsProps},Symbol.toStringTag,{value:"Module"}));function Qt(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function qn(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Ue(){}var De=.7,Ve=1/De,me="\\s*([+-]?\\d+)\\s*",Me="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",H="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",hs=/^#([0-9a-f]{3,8})$/,ds=new RegExp(`^rgb\\(${me},${me},${me}\\)$`),fs=new RegExp(`^rgb\\(${H},${H},${H}\\)$`),ps=new RegExp(`^rgba\\(${me},${me},${me},${Me}\\)$`),gs=new RegExp(`^rgba\\(${H},${H},${H},${Me}\\)$`),ms=new RegExp(`^hsl\\(${Me},${H},${H}\\)$`),Ss=new RegExp(`^hsla\\(${Me},${H},${H},${Me}\\)$`),fn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Qt(Ue,ye,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:pn,formatHex:pn,formatHex8:ys,formatHsl:bs,formatRgb:gn,toString:gn});function pn(){return this.rgb().formatHex()}function ys(){return this.rgb().formatHex8()}function bs(){return Qn(this).formatHsl()}function gn(){return this.rgb().formatRgb()}function ye(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=hs.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?mn(e):n===3?new Y(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?qe(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?qe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=ds.exec(t))?new Y(e[1],e[2],e[3],1):(e=fs.exec(t))?new Y(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=ps.exec(t))?qe(e[1],e[2],e[3],e[4]):(e=gs.exec(t))?qe(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=ms.exec(t))?bn(e[1],e[2]/100,e[3]/100,1):(e=Ss.exec(t))?bn(e[1],e[2]/100,e[3]/100,e[4]):fn.hasOwnProperty(t)?mn(fn[t]):t==="transparent"?new Y(NaN,NaN,NaN,0):null}function mn(t){return new Y(t>>16&255,t>>8&255,t&255,1)}function qe(t,e,n,r){return r<=0&&(t=e=n=NaN),new Y(t,e,n,r)}function xs(t){return t instanceof Ue||(t=ye(t)),t?(t=t.rgb(),new Y(t.r,t.g,t.b,t.opacity)):new Y}function Et(t,e,n,r){return arguments.length===1?xs(t):new Y(t,e,n,r??1)}function Y(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Qt(Y,Et,qn(Ue,{brighter(t){return t=t==null?Ve:Math.pow(Ve,t),new Y(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?De:Math.pow(De,t),new Y(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Y(re(this.r),re(this.g),re(this.b),Ke(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Sn,formatHex:Sn,formatHex8:vs,formatRgb:yn,toString:yn}));function Sn(){return`#${te(this.r)}${te(this.g)}${te(this.b)}`}function vs(){return`#${te(this.r)}${te(this.g)}${te(this.b)}${te((isNaN(this.opacity)?1:this.opacity)*255)}`}function yn(){const t=Ke(this.opacity);return`${t===1?"rgb(":"rgba("}${re(this.r)}, ${re(this.g)}, ${re(this.b)}${t===1?")":`, ${t})`}`}function Ke(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function re(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function te(t){return t=re(t),(t<16?"0":"")+t.toString(16)}function bn(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new F(t,e,n,r)}function Qn(t){if(t instanceof F)return new F(t.h,t.s,t.l,t.opacity);if(t instanceof Ue||(t=ye(t)),!t)return new F;if(t instanceof F)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),a=Math.max(e,n,r),i=NaN,l=a-o,h=(a+o)/2;return l?(e===a?i=(n-r)/l+(n<r)*6:n===a?i=(r-e)/l+2:i=(e-n)/l+4,l/=h<.5?a+o:2-a-o,i*=60):l=h>0&&h<1?0:i,new F(i,l,h,t.opacity)}function Ts(t,e,n,r){return arguments.length===1?Qn(t):new F(t,e,n,r??1)}function F(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Qt(F,Ts,qn(Ue,{brighter(t){return t=t==null?Ve:Math.pow(Ve,t),new F(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?De:Math.pow(De,t),new F(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,o=2*n-r;return new Y(yt(t>=240?t-240:t+120,o,r),yt(t,o,r),yt(t<120?t+240:t-120,o,r),this.opacity)},clamp(){return new F(xn(this.h),Qe(this.s),Qe(this.l),Ke(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ke(this.opacity);return`${t===1?"hsl(":"hsla("}${xn(this.h)}, ${Qe(this.s)*100}%, ${Qe(this.l)*100}%${t===1?")":`, ${t})`}`}}));function xn(t){return t=(t||0)%360,t<0?t+360:t}function Qe(t){return Math.max(0,Math.min(1,t||0))}function yt(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Wt=t=>()=>t;function ws(t,e){return function(n){return t+n*e}}function Cs(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Rs(t){return(t=+t)==1?Wn:function(e,n){return n-e?Cs(e,n,t):Wt(isNaN(e)?n:e)}}function Wn(t,e){var n=e-t;return n?ws(t,n):Wt(isNaN(t)?e:t)}const kt=(function t(e){var n=Rs(e);function r(o,a){var i=n((o=Et(o)).r,(a=Et(a)).r),l=n(o.g,a.g),h=n(o.b,a.b),u=Wn(o.opacity,a.opacity);return function(d){return o.r=i(d),o.g=l(d),o.b=h(d),o.opacity=u(d),o+""}}return r.gamma=t,r})(1);function Es(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),o;return function(a){for(o=0;o<n;++o)r[o]=t[o]*(1-a)+e[o]*a;return r}}function ks(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Ps(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,o=new Array(r),a=new Array(n),i;for(i=0;i<r;++i)o[i]=mt(t[i],e[i]);for(;i<n;++i)a[i]=e[i];return function(l){for(i=0;i<r;++i)a[i]=o[i](l);return a}}function Ls(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Ae(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Ds(t,e){var n={},r={},o;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(o in e)o in t?n[o]=mt(t[o],e[o]):r[o]=e[o];return function(a){for(o in n)r[o]=n[o](a);return r}}var Pt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,bt=new RegExp(Pt.source,"g");function Ms(t){return function(){return t}}function As(t){return function(e){return t(e)+""}}function Gn(t,e){var n=Pt.lastIndex=bt.lastIndex=0,r,o,a,i=-1,l=[],h=[];for(t=t+"",e=e+"";(r=Pt.exec(t))&&(o=bt.exec(e));)(a=o.index)>n&&(a=e.slice(n,a),l[i]?l[i]+=a:l[++i]=a),(r=r[0])===(o=o[0])?l[i]?l[i]+=o:l[++i]=o:(l[++i]=null,h.push({i,x:Ae(r,o)})),n=bt.lastIndex;return n<e.length&&(a=e.slice(n),l[i]?l[i]+=a:l[++i]=a),l.length<2?h[0]?As(h[0].x):Ms(e):(e=h.length,function(u){for(var d=0,f;d<e;++d)l[(f=h[d]).i]=f.x(u);return l.join("")})}function mt(t,e){var n=typeof e,r;return e==null||n==="boolean"?Wt(e):(n==="number"?Ae:n==="string"?(r=ye(e))?(e=r,kt):Gn:e instanceof ye?kt:e instanceof Date?Ls:ks(e)?Es:Array.isArray(e)?Ps:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?Ds:Ae)(t,e)}function Os(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}const vn=`#version 300 es
2
2
  precision lowp float;
3
3
 
4
4
  uniform lowp vec4 u_color;
@@ -28,7 +28,7 @@ uniform mediump vec2 u_offset_aggregate;
28
28
  void main(void) {
29
29
  gl_Position = vec4((u_scale_aggregate * vec2(a_x, a_y) + u_offset_aggregate) + a_translate, 0.0, 1.0);
30
30
  }
31
- `,Is=`#version 300 es
31
+ `,Zs=`#version 300 es
32
32
 
33
33
  // Copyright 2025 Synnax Labs, Inc.
34
34
  //
@@ -49,4 +49,4 @@ uniform mediump vec2 u_offset_aggregate;
49
49
  void main(void) {
50
50
  gl_Position = vec4((u_scale_aggregate * vec2(a_x, float(a_y)) + u_offset_aggregate) + a_translate, 0.0, 1.0);
51
51
  }
52
- `,Xn=g.z.object({x:c.seriesSourceSpecZ,y:c.seriesSourceSpecZ,label:g.z.string().optional(),color:s.kr.colorZ,strokeWidth:g.z.number().default(1),downsample:g.z.number().min(1).max(50).default(1),downsampleMode:c.downsampleModeZ.default("decimate"),visible:g.z.boolean().optional().default(!0)}),Zs=(t,e,n)=>t===-1||e===-1||t>=n.series.length?NaN:Number(n.series[t].at(e)),_s=s.a$1.milliseconds(2);s.Q.NAN,s.Q.NAN,s.kr.ZERO,s.H.ZERO;const Ys=(t,e)=>e.equals(s.n.UINT8)?t.UNSIGNED_BYTE:t.FLOAT;class Tn extends c.GLProgram{translationBufferCache=new Map;constructor(e,n,r){super(e,n,r),this.translationBufferCache=new Map}bindState({strokeWidth:e,color:n}){return this.uniformColor("u_color",n),this.attrStrokeWidth(e)}bindScale(e,n){const r=s.Q.scale(e.scale,n.scale),o=s.Q.translate(s.Q.scale(n.scale,e.offset),n.offset);this.uniformXY("u_scale_aggregate",r),this.uniformXY("u_offset_aggregate",o)}draw({x:e,y:n,count:r,downsample:o,xOffset:a,yOffset:i},l,h,u){const{gl:d}=this.renderCtx;this.bindAttrBuffer("x",e.glBuffer,o,a,h),this.bindAttrBuffer("y",n.glBuffer,o,i,u),d.drawArraysInstanced(d.LINE_STRIP,0,r/o,l)}bindAttrBuffer(e,n,r,o=0,a){const{gl:i}=this.renderCtx;i.bindBuffer(i.ARRAY_BUFFER,n);const l=i.getAttribLocation(this.prog,`a_${e}`),h=Ys(i,a),u=a.density.valueOf();a.equals(s.n.UINT8)?i.vertexAttribIPointer(l,1,h,u*r,u*o):i.vertexAttribPointer(l,1,h,!1,u*r,u*o),i.enableVertexAttribArray(l)}getAndBindTranslationBuffer(e){const{gl:n}=this.renderCtx,r=`${this.renderCtx.aspect}:${e}`,o=this.translationBufferCache.get(r);if(o!=null)return n.bindBuffer(n.ARRAY_BUFFER,o.glBuffer),o;const a=n.createBuffer();if(a==null)throw new c.Bt("Failed to create buffer from WebGL context");const i=zs(this.renderCtx.aspect,e);n.bindBuffer(n.ARRAY_BUFFER,a),n.bufferData(n.ARRAY_BUFFER,i,n.DYNAMIC_DRAW);const l={glBuffer:a,jsBuffer:i};return this.translationBufferCache.set(r,l),l}attrStrokeWidth(e){const{gl:n}=this.renderCtx,{jsBuffer:r}=this.getAndBindTranslationBuffer(e),o=n.getAttribLocation(this.prog,"a_translate");return n.vertexAttribPointer(o,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(o),n.vertexAttribDivisor(o,1),r.length/2}}class Se{static CONTEXT_KEY="pluto-line-gl-program";uint8HybridProgram;float32Program;constructor(e){this.uint8HybridProgram=new Tn(e,Is,vn),this.float32Program=new Tn(e,Ns,vn)}get gl(){return this.uint8HybridProgram.renderCtx.gl}getProgram(e){return e.equals(s.n.UINT8)?this.uint8HybridProgram:this.float32Program}static create(e,n){const r=new Se(n);return e.set(Se.CONTEXT_KEY,r),r}static use(e){const n=e.get(Se.CONTEXT_KEY);if(n==null)throw new c.Bt("GLProgram not found");return n}}class Je extends c.Leaf{static TYPE="line";schema=Xn;afterUpdate(e){const{internal:n}=this,r={onStatusChange:c.useAdder(e)};n.xTelem=c.useSource(e,this.state.x,n.xTelem,r),n.yTelem=c.useSource(e,this.state.y,n.yTelem,r),n.instrumentation=c.useInstrumentation(e,"line"),n.lineCtx=Se.use(e),n.requestRender=gt(e),n.stopListeningXTelem?.(),n.stopListeningYTelem?.(),n.stopListeningXTelem=n.xTelem.onChange(()=>n.requestRender("data")),n.stopListeningYTelem=n.yTelem.onChange(()=>n.requestRender("data")),n.requestRender("layout"),(n.xDownsampler?.props.mode!==this.state.downsampleMode||n.xDownsampler?.props.windowSize!==this.state.downsample)&&(n.xDownsampler=new c.SeriesDownsampler({mode:this.state.downsampleMode,windowSize:this.state.downsample}),n.yDownsampler=new c.SeriesDownsampler({mode:this.state.downsampleMode,windowSize:this.state.downsample}))}afterDelete(){const{internal:e}=this;e.xTelem.cleanup?.(),e.yTelem.cleanup?.(),e.requestRender("layout")}xBounds(){return this.internal.xTelem.value()[0]}yBounds(){return this.internal.yTelem.value()[0]}findByXValue(e,n){const{xTelem:r,yTelem:o}=this.internal;let[,a]=r.value();a=this.internal.xDownsampler.transform(a);let[i,l]=[-1,-1];a.series.find((v,E)=>{const L=v.binarySearch(n),k=L>=0&&L<v.length;return k&&([i,l]=[L,E]),k});const{key:h}=this,{color:u,label:d}=this.state,f={key:h,color:u,label:d,position:{x:0,y:0},value:{x:NaN,y:NaN},bounds:{lower:0,upper:0}};if(i===-1||l===-1||!this.state.visible)return f;const p=a.series[l];f.value.x=Zs(l,i,a);let[,S]=o.value();S=this.internal.yDownsampler.transform(S);const x=S.series.find(v=>s.H.contains(v.alignmentBounds,p.alignment+BigInt(i)));if(x==null)return f;const b=Number(x.alignment-p.alignment);return f.value.y=Number(x.at(i-b)),f.bounds={...x.bounds},f.position={x:e.dataToDecimalScale.x.pos(f.value.x),y:e.dataToDecimalScale.y.pos(f.value.y)},f}render(e){if(this.deleted||!this.state.visible)return;const{downsample:n}=this.state,{xTelem:r,yTelem:o,lineCtx:a,xDownsampler:i,yDownsampler:l}=this.internal,{dataToDecimalScale:h,exposure:u}=e;let[[,d],[,f]]=[r.value(),o.value()];if(d=i.transform(d),f=l.transform(f),d.updateGLBuffer(a.gl),f.updateGLBuffer(a.gl),d.length===0||f.length===0)return;const p=a.getProgram(f.dataType),S=qs(d,f,u,n,this.state.downsampleMode,_s);this.internal.instrumentation.L.debug("render",()=>({key:this.key,downsample:n,scale:h.transform,props:e.region,ops:Qs(S)}));const x=p.setAsActive(),b=p.bindState(this.state),v=p.renderCtx.scaleRegion(e.region).transform;S.forEach(E=>{const L=Fs(h,E).transform;p.bindScale(L,v),p.draw(E,b,d.dataType,f.dataType)}),x()}}const js=5e3,zs=(t,e)=>$s(Bs(t),e).map((n,r)=>Math.floor(r/Us)*(1/(js*t))*n),Us=5,Bs=t=>new Float32Array([0,0,0,t,0,-t,1,0,-1,0]),$s=(t,e)=>{const n=new Float32Array(t.length*e);for(let r=0;r<e;r++)n.set(t,r*t.length);return n},Fs=(t,e)=>t.translate(t.x.dim(Number(e.x.sampleOffset)),t.y.dim(Number(e.y.sampleOffset))),Hs={[Je.TYPE]:Je},qs=(t,e,n,r,o,a)=>{if(t.series.length===0||e.series.length===0)return[];const i=[];return t.series.forEach(l=>e.series.forEach(h=>{if(!Ws(l,h,a))return;let u=0n,d=0n;l.alignment<h.alignment?u=h.alignment-l.alignment:h.alignment<l.alignment&&(d=l.alignment-h.alignment);const f=s.Nr.min(s.H.span(l.alignmentBounds)-u,s.H.span(h.alignmentBounds)-d);if(f===0n)return;let p=s.R(Math.round(n*4*Number(f)),r,51);o!=="decimate"&&(p=1);const S=Number(f/l.alignmentMultiple),x=Number(u/l.alignmentMultiple),b=Number(d/h.alignmentMultiple);i.push({x:l,y:h,xOffset:x,yOffset:b,count:S,downsample:p})})),i},Qs=t=>t.map(e=>({...e,x:e.x.digest,y:e.y.digest})),Ws=(t,e,n)=>{if(t.alignmentMultiple!==e.alignmentMultiple)return console.warn("encountered two series with different alignment multiples in draw operations",{x:t.digest,y:e.digest}),!1;const r=t.timeRange.overlapsWith(e.timeRange,n),o=s.H.overlapsWith(t.alignmentBounds,e.alignmentBounds);return r&&o},Gt=g.z.object({dpr:g.z.number(),region:s.jt.box,bootstrap:g.z.boolean().optional().default(!1),bootstrapped:g.z.boolean().optional().default(!1),glCanvas:g.z.any().optional(),upper2dCanvas:g.z.any().optional(),lower2dCanvas:g.z.any().optional(),os:s.S.osZ});class et extends c.Composite{static TYPE="Canvas";schema=Gt;renderCtx=null;afterUpdate(e){if(this.renderCtx==null){if(!this.state.bootstrap)return;const{glCanvas:n,lower2dCanvas:r,upper2dCanvas:o,os:a}=this.state;if(n==null||r==null||o==null)throw new c.Bt("[vis.worker.Canvas] - expected render context bootstrap to include all canvases");this.renderCtx=c.Context.create(e,n,r,o,a),Se.create(e,this.renderCtx),this.setState(i=>({...i,bootstrap:!1,bootstrapped:!0,glCanvas:void 0,lower2dCanvas:void 0,upper2dCanvas:void 0}))}else this.renderCtx.update(e);this.renderCtx.resize(this.state.region,this.state.dpr)}}const Vn={[et.TYPE]:et},Gs=Object.freeze(Object.defineProperty({__proto__:null,Canvas:et,REGISTRY:Vn,canvasStateZ:Gt},Symbol.toStringTag,{value:"Module"})),Xt=g.z.object({position:s.Q.xy,zoom:g.z.number(),region:s.jt.box,clearOverScan:s.Q.crudeZ.optional().default(10),visible:g.z.boolean().optional().default(!0),autoRenderInterval:g.z.number().optional()}),We=["upper2d","lower2d"];class se extends c.Composite{static TYPE="Diagram";static stateZ=Xt;schema=se.stateZ;afterUpdate(e){this.internal.renderCtx=c.Context.use(e),this.internal.handleError=c.useErrorHandler(e),s.O.isNonZero(this.state.autoRenderInterval)&&(this.internal.autoRenderInterval??=setInterval(()=>{this.state.visible&&this.requestRender("low")},this.state.autoRenderInterval)),pt(e,()=>{this.state.visible&&this.requestRender("low")}),!(!this.state.visible&&!this.prevState.visible)&&(this.internal.viewportScale=s.C.XY.magnify(s.Q.construct(this.state.zoom)).translate(s.jt.topLeft(this.state.region)).translate(this.state.position),this.requestRender("high"))}afterDelete(){this.internal.autoRenderInterval!=null&&clearInterval(this.internal.autoRenderInterval),this.requestRender("high")}render(){if(this.deleted)return;const{renderCtx:e,handleError:n,viewportScale:r}=this.internal,o=s.jt.construct(this.state.region);if(!this.state.visible)return()=>e.erase(o,this.state.clearOverScan,...We);const a=e.scissor(o,s.Q.ZERO,We);try{this.children.forEach(l=>l.render?.({viewportScale:r}))}catch(l){n(l,"failed to render diagram")}finally{a()}const i=s.jt.copy(this.state.region);return()=>{e.lower2d.fillStyle=s.kr.hex(s.kr.BLACK),e.lower2d.fillRect(...s.Q.couple(s.jt.topLeft(i)),s.jt.width(i),s.jt.height(i)),e.erase(i,this.state.clearOverScan,...We)}}requestRender(e){const{renderCtx:n}=this.internal;n.loop.set({key:`${se.TYPE}-${this.key}`,render:this.render.bind(this),priority:e,canvases:We})}}const Kn={[se.TYPE]:se},Xs=Object.freeze(Object.defineProperty({__proto__:null,Diagram:se,REGISTRY:Kn,diagramStateZ:Xt},Symbol.toStringTag,{value:"Module"}));class Jn{entries=new Map;setListeners=new Map;deleteListeners=new Map;handleError;equal;constructor(e,n=()=>!1){this.handleError=e,this.equal=n}setOne(e,n,r,o){const a=this.entries.get(n),i=c.executeSetter(r,a);if(!(i==null||a!=null&&this.equal(i,a,n)))return this.entries.set(n,i),this.notifySet(e,n,i,o),()=>{a===void 0?(this.entries.delete(n),this.notifyDelete(e,n)):(this.entries.set(n,a),this.notifySet(e,n,a,o))}}set(e,n,r,o){const a=[];if(Array.isArray(n))n.forEach(i=>{const l=this.setOne(e,i.key,i,r);l!=null&&a.push(l)});else if(typeof n=="object"&&"key"in n){const i=n,l=this.setOne(e,i.key,i,r);l!=null&&a.push(l)}else{const i=this.setOne(e,n,r,o);i!=null&&a.push(i)}return()=>a.reverse().forEach(i=>i())}get(e){return typeof e=="function"?Array.from(this.entries.values()).filter(e):Array.isArray(e)?e.map(n=>this.entries.get(n)).filter(n=>n!=null):this.entries.get(e)}list(){return Array.from(this.entries.values())}has(e){return Array.isArray(e)?e.every(n=>this.entries.has(n)):this.entries.has(e)}delete(e,n,r){const o=[];return typeof n=="function"?this.entries.forEach((a,i)=>{n(a,i)&&o.push({key:i,value:a})}):s.a.toArray(n).forEach(a=>{const i=this.entries.get(a);o.push({key:a,value:i})}),o.forEach(({key:a})=>{this.entries.delete(a),this.notifyDelete(e,a)}),()=>o.forEach(({key:a,value:i})=>{i!=null&&(this.entries.set(a,i),this.notifySet(e,a,i,r))})}clear(){this.entries.clear()}onSet(e,n,r){return this.setListeners.set(n,{scope:e,key:r}),()=>this.setListeners.delete(n)}onDelete(e,n,r){return this.deleteListeners.set(n,{scope:e,key:r}),()=>this.deleteListeners.delete(n)}notifySet(e,n,r,o){this.setListeners.forEach((a,i)=>{const l=a.key==null||a.key===n,h=a.scope!==e;l&&h&&this.handleError(async()=>await i(r,o),"Failed to notify set listener")})}notifyDelete(e,n){this.deleteListeners.forEach((r,o)=>{const a=r.key==null||r.key===n,i=r.scope!==e;a&&i&&this.handleError(async()=>await o(n),"Failed to notify delete listener")})}scope(e){return{set:(n,r,o)=>this.set(e,n,r,o),get:(n=>this.get(n)),list:()=>this.list(),has:n=>this.has(n),delete:(n,r)=>this.delete(e,n,r),onSet:(n,r)=>this.onSet(e,n,r),onDelete:(n,r)=>this.onDelete(e,n,r)}}}const er=(t,e)=>Object.fromEntries(Object.entries(t).map(([n,{equal:r}])=>[n,new Jn(e,r)])),Lt=(t,e)=>Object.fromEntries(Object.entries(t).map(([n])=>[n,t[n].scope(e)])),Vs=(t,e,n)=>t.set(e,r=>r==null?void 0:{...r,...n}),Ks=(t,e)=>{const n=t.includes("delete"),r=e.includes("delete");return n&&!r?-1:!n&&r?1:0},Js=async({openStreamer:t,storeConfig:e,handleError:n,client:r,store:o})=>{const a=Object.values(e),i=s.c.unique(a.flatMap(({listeners:f})=>f.map(({channel:p})=>p))),l={};a.forEach(({listeners:f})=>f.forEach(p=>{const{channel:S}=p;l[S]=[...l[S]||[],p]}));const h=await c.SI.HardenedStreamer.open(t,i),u=new c.SI.ObservableStreamer(h),d=f=>{const p=[...f.uniqueNames];p.sort(Ks),n(async()=>{for(const S of p){const x=f.get(S),b=l[S];if(b!=null)for(const{onChange:v,schema:E}of b)await n(async()=>{let L;x.dataType.equals(s.n.JSON)?L=x.parseJSON(E):L=Array.from(x).map(k=>E.parse(k));for(const k of L)await n(()=>v({changed:k,client:r,store:o}),`Failed to handle streamer change for ${S}`,c._r)},`Failed to parse streamer change for ${S}`)}},`Failed to handle streamer change for ${s.Fr.naturalLanguageJoin(p)}`)};return u.onChange(d),u.close.bind(u)};class tr{store;streamCloser=null;client;constructor({client:e,openStreamer:n,storeConfig:r,handleError:o,handleAsyncError:a}){this.store=er(r,o),this.client=e,e!=null&&(n??=e?.openStreamer.bind(e),this.streamCloser=Js({client:e,storeConfig:r,handleError:a,store:Lt(this.store,""),openStreamer:n}))}async awaitInitialized(){this.streamCloser!=null&&await this.streamCloser}scopedStore(e){return Lt(this.store,e)}async close(){if(this.streamCloser==null)return;await(await this.streamCloser)()}}const eo=g.object({request:g.string(),bounds:g.record(g.string(),s.H.bounds)}),nr=g.object({request:g.string(),response:eo});class tt extends c.Leaf{static TYPE="Bounds";schema=nr;afterUpdate(e){this.state.request!==this.prevState.request&&this.setState(n=>({...n,response:{request:n.request,bounds:this.internal.getBounds()}}))}render(e){this.internal.getBounds=e.getBounds}}function Xe(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function to(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Vt(t){let e,n,r;t.length!==2?(e=Xe,n=(l,h)=>Xe(t(l),h),r=(l,h)=>t(l)-h):(e=t===Xe||t===to?t:no,n=t,r=t);function o(l,h,u=0,d=l.length){if(u<d){if(e(h,h)!==0)return d;do{const f=u+d>>>1;n(l[f],h)<0?u=f+1:d=f}while(u<d)}return u}function a(l,h,u=0,d=l.length){if(u<d){if(e(h,h)!==0)return d;do{const f=u+d>>>1;n(l[f],h)<=0?u=f+1:d=f}while(u<d)}return u}function i(l,h,u=0,d=l.length){const f=o(l,h,u,d-1);return f>u&&r(l[f-1],h)>-r(l[f],h)?f-1:f}return{left:o,center:i,right:a}}function no(){return 0}function ro(t){return t===null?NaN:+t}const so=Vt(Xe),oo=so.right;Vt(ro).center;const io=Math.sqrt(50),ao=Math.sqrt(10),lo=Math.sqrt(2);function nt(t,e,n){const r=(e-t)/Math.max(0,n),o=Math.floor(Math.log10(r)),a=r/Math.pow(10,o),i=a>=io?10:a>=ao?5:a>=lo?2:1;let l,h,u;return o<0?(u=Math.pow(10,-o)/i,l=Math.round(t*u),h=Math.round(e*u),l/u<t&&++l,h/u>e&&--h,u=-u):(u=Math.pow(10,o)*i,l=Math.round(t/u),h=Math.round(e/u),l*u<t&&++l,h*u>e&&--h),h<l&&.5<=n&&n<2?nt(t,e,n*2):[l,h,u]}function co(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const r=e<t,[o,a,i]=r?nt(e,t,n):nt(t,e,n);if(!(a>=o))return[];const l=a-o+1,h=new Array(l);if(r)if(i<0)for(let u=0;u<l;++u)h[u]=(a-u)/-i;else for(let u=0;u<l;++u)h[u]=(a-u)*i;else if(i<0)for(let u=0;u<l;++u)h[u]=(o+u)/-i;else for(let u=0;u<l;++u)h[u]=(o+u)*i;return h}function Dt(t,e,n){return e=+e,t=+t,n=+n,nt(t,e,n)[2]}function Mt(t,e,n){e=+e,t=+t,n=+n;const r=e<t,o=r?Dt(e,t,n):Dt(t,e,n);return(r?-1:1)*(o<0?1/-o:o)}function rr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function uo(t){return function(){return t}}function ho(t){return+t}var wn=[0,1];function pe(t){return t}function At(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:uo(isNaN(e)?NaN:.5)}function fo(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function po(t,e,n){var r=t[0],o=t[1],a=e[0],i=e[1];return o<r?(r=At(o,r),a=n(i,a)):(r=At(r,o),a=n(a,i)),function(l){return a(r(l))}}function go(t,e,n){var r=Math.min(t.length,e.length)-1,o=new Array(r),a=new Array(r),i=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++i<r;)o[i]=At(t[i],t[i+1]),a[i]=n(e[i],e[i+1]);return function(l){var h=oo(t,l,1,r)-1;return a[h](o[h](l))}}function sr(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function mo(){var t=wn,e=wn,n=mt,r,o,a,i=pe,l,h,u;function d(){var p=Math.min(t.length,e.length);return i!==pe&&(i=fo(t[0],t[p-1])),l=p>2?go:po,h=u=null,f}function f(p){return p==null||isNaN(p=+p)?a:(h||(h=l(t.map(r),e,n)))(r(i(p)))}return f.invert=function(p){return i(o((u||(u=l(e,t.map(r),Ae)))(p)))},f.domain=function(p){return arguments.length?(t=Array.from(p,ho),d()):t.slice()},f.range=function(p){return arguments.length?(e=Array.from(p),d()):e.slice()},f.rangeRound=function(p){return e=Array.from(p),n=Os,d()},f.clamp=function(p){return arguments.length?(i=p?!0:pe,d()):i!==pe},f.interpolate=function(p){return arguments.length?(n=p,d()):n},f.unknown=function(p){return arguments.length?(a=p,f):a},function(p,S){return r=p,o=S,d()}}function or(){return mo()(pe,pe)}function So(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function rt(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function be(t){return t=rt(Math.abs(t)),t?t[1]:NaN}function yo(t,e){return function(n,r){for(var o=n.length,a=[],i=0,l=t[0],h=0;o>0&&l>0&&(h+l+1>r&&(l=Math.max(1,r-h)),a.push(n.substring(o-=l,o+l)),!((h+=l+1)>r));)l=t[i=(i+1)%t.length];return a.reverse().join(e)}}function bo(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var xo=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function st(t){if(!(e=xo.exec(t)))throw new Error("invalid format: "+t);var e;return new Kt({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}st.prototype=Kt.prototype;function Kt(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Kt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function vo(t){e:for(var e=t.length,n=1,r=-1,o;n<e;++n)switch(t[n]){case".":r=o=n;break;case"0":r===0&&(r=n),o=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(o+1):t}var ir;function To(t,e){var n=rt(t,e);if(!n)return t+"";var r=n[0],o=n[1],a=o-(ir=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=r.length;return a===i?r:a>i?r+new Array(a-i+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+rt(t,Math.max(0,e+a-1))[0]}function Cn(t,e){var n=rt(t,e);if(!n)return t+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}const En={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:So,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Cn(t*100,e),r:Cn,s:To,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function kn(t){return t}var Rn=Array.prototype.map,Pn=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function wo(t){var e=t.grouping===void 0||t.thousands===void 0?kn:yo(Rn.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?kn:bo(Rn.call(t.numerals,String)),i=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"−":t.minus+"",h=t.nan===void 0?"NaN":t.nan+"";function u(f){f=st(f);var p=f.fill,S=f.align,x=f.sign,b=f.symbol,v=f.zero,E=f.width,L=f.comma,k=f.precision,M=f.trim,A=f.type;A==="n"?(L=!0,A="g"):En[A]||(k===void 0&&(k=12),M=!0,A="g"),(v||p==="0"&&S==="=")&&(v=!0,p="0",S="=");var T=b==="$"?n:b==="#"&&/[boxX]/.test(A)?"0"+A.toLowerCase():"",O=b==="$"?r:/[%p]/.test(A)?i:"",K=En[A],Ce=/[defgprs%]/.test(A);k=k===void 0?6:/[gprs]/.test(A)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function Fe(C){var q=T,Z=O,J,He,ue;if(A==="c")Z=K(C)+Z,C="";else{C=+C;var he=C<0||1/C<0;if(C=isNaN(C)?h:K(Math.abs(C),k),M&&(C=vo(C)),he&&+C==0&&x!=="+"&&(he=!1),q=(he?x==="("?x:l:x==="-"||x==="("?"":x)+q,Z=(A==="s"?Pn[8+ir/3]:"")+Z+(he&&x==="("?")":""),Ce){for(J=-1,He=C.length;++J<He;)if(ue=C.charCodeAt(J),48>ue||ue>57){Z=(ue===46?o+C.slice(J+1):C.slice(J))+Z,C=C.slice(0,J);break}}}L&&!v&&(C=e(C,1/0));var de=q.length+C.length+Z.length,$=de<E?new Array(E-de+1).join(p):"";switch(L&&v&&(C=e($+C,$.length?E-Z.length:1/0),$=""),S){case"<":C=q+C+Z+$;break;case"=":C=q+$+C+Z;break;case"^":C=$.slice(0,de=$.length>>1)+q+C+Z+$.slice(de);break;default:C=$+q+C+Z;break}return a(C)}return Fe.toString=function(){return f+""},Fe}function d(f,p){var S=u((f=st(f),f.type="f",f)),x=Math.max(-8,Math.min(8,Math.floor(be(p)/3)))*3,b=Math.pow(10,-x),v=Pn[8+x/3];return function(E){return S(b*E)+v}}return{format:u,formatPrefix:d}}var Ge,ar,lr;Co({thousands:",",grouping:[3],currency:["$",""]});function Co(t){return Ge=wo(t),ar=Ge.format,lr=Ge.formatPrefix,Ge}function Eo(t){return Math.max(0,-be(Math.abs(t)))}function ko(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(be(e)/3)))*3-be(Math.abs(t)))}function Ro(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,be(e)-be(t))+1}function Po(t,e,n,r){var o=Mt(t,e,n),a;switch(r=st(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(a=ko(o,i))&&(r.precision=a),lr(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=Ro(o,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=Eo(o))&&(r.precision=a-(r.type==="%")*2);break}}return ar(r)}function Lo(t){var e=t.domain;return t.ticks=function(n){var r=e();return co(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var o=e();return Po(o[0],o[o.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),o=0,a=r.length-1,i=r[o],l=r[a],h,u,d=10;for(l<i&&(u=i,i=l,l=u,u=o,o=a,a=u);d-- >0;){if(u=Dt(i,l,n),u===h)return r[o]=i,r[a]=l,e(r);if(u>0)i=Math.floor(i/u)*u,l=Math.ceil(l/u)*u;else if(u<0)i=Math.ceil(i*u)/u,l=Math.floor(l*u)/u;else break;h=u}return t},t}function cr(){var t=or();return t.copy=function(){return sr(t,cr())},rr.apply(t,arguments),Lo(t)}function Do(t,e){t=t.slice();var n=0,r=t.length-1,o=t[n],a=t[r],i;return a<o&&(i=n,n=r,r=i,i=o,o=a,a=i),t[n]=e.floor(o),t[r]=e.ceil(a),t}const xt=new Date,vt=new Date;function N(t,e,n,r){function o(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o.floor=a=>(t(a=new Date(+a)),a),o.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),o.round=a=>{const i=o(a),l=o.ceil(a);return a-i<l-a?i:l},o.offset=(a,i)=>(e(a=new Date(+a),i==null?1:Math.floor(i)),a),o.range=(a,i,l)=>{const h=[];if(a=o.ceil(a),l=l==null?1:Math.floor(l),!(a<i)||!(l>0))return h;let u;do h.push(u=new Date(+a)),e(a,l),t(a);while(u<a&&a<i);return h},o.filter=a=>N(i=>{if(i>=i)for(;t(i),!a(i);)i.setTime(i-1)},(i,l)=>{if(i>=i)if(l<0)for(;++l<=0;)for(;e(i,-1),!a(i););else for(;--l>=0;)for(;e(i,1),!a(i););}),n&&(o.count=(a,i)=>(xt.setTime(+a),vt.setTime(+i),t(xt),t(vt),Math.floor(n(xt,vt))),o.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?o.filter(r?i=>r(i)%a===0:i=>o.count(0,i)%a===0):o)),o}const ot=N(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ot.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?N(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):ot);ot.range;const Q=1e3,U=Q*60,W=U*60,X=W*24,Jt=X*7,Ln=X*30,Tt=X*365,ge=N(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Q)},(t,e)=>(e-t)/Q,t=>t.getUTCSeconds());ge.range;const en=N(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Q)},(t,e)=>{t.setTime(+t+e*U)},(t,e)=>(e-t)/U,t=>t.getMinutes());en.range;const Mo=N(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*U)},(t,e)=>(e-t)/U,t=>t.getUTCMinutes());Mo.range;const tn=N(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Q-t.getMinutes()*U)},(t,e)=>{t.setTime(+t+e*W)},(t,e)=>(e-t)/W,t=>t.getHours());tn.range;const Ao=N(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*W)},(t,e)=>(e-t)/W,t=>t.getUTCHours());Ao.range;const Ue=N(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*U)/X,t=>t.getDate()-1);Ue.range;const nn=N(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/X,t=>t.getUTCDate()-1);nn.range;const Oo=N(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/X,t=>Math.floor(t/X));Oo.range;function ie(t){return N(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*U)/Jt)}const St=ie(0),it=ie(1),No=ie(2),Io=ie(3),xe=ie(4),Zo=ie(5),_o=ie(6);St.range;it.range;No.range;Io.range;xe.range;Zo.range;_o.range;function ae(t){return N(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Jt)}const ur=ae(0),at=ae(1),Yo=ae(2),jo=ae(3),ve=ae(4),zo=ae(5),Uo=ae(6);ur.range;at.range;Yo.range;jo.range;ve.range;zo.range;Uo.range;const rn=N(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());rn.range;const Bo=N(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());Bo.range;const V=N(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());V.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:N(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});V.range;const oe=N(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());oe.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:N(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});oe.range;function $o(t,e,n,r,o,a){const i=[[ge,1,Q],[ge,5,5*Q],[ge,15,15*Q],[ge,30,30*Q],[a,1,U],[a,5,5*U],[a,15,15*U],[a,30,30*U],[o,1,W],[o,3,3*W],[o,6,6*W],[o,12,12*W],[r,1,X],[r,2,2*X],[n,1,Jt],[e,1,Ln],[e,3,3*Ln],[t,1,Tt]];function l(u,d,f){const p=d<u;p&&([u,d]=[d,u]);const S=f&&typeof f.range=="function"?f:h(u,d,f),x=S?S.range(u,+d+1):[];return p?x.reverse():x}function h(u,d,f){const p=Math.abs(d-u)/f,S=Vt(([,,v])=>v).right(i,p);if(S===i.length)return t.every(Mt(u/Tt,d/Tt,f));if(S===0)return ot.every(Math.max(Mt(u,d,f),1));const[x,b]=i[p/i[S-1][2]<i[S][2]/p?S-1:S];return x.every(b)}return[l,h]}const[Fo,Ho]=$o(V,rn,St,Ue,tn,en);function wt(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Ct(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ee(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function qo(t){var e=t.dateTime,n=t.date,r=t.time,o=t.periods,a=t.days,i=t.shortDays,l=t.months,h=t.shortMonths,u=ke(o),d=Re(o),f=ke(a),p=Re(a),S=ke(i),x=Re(i),b=ke(l),v=Re(l),E=ke(h),L=Re(h),k={a:he,A:de,b:$,B:ts,c:null,d:In,e:In,f:gi,g:Ei,G:Ri,H:di,I:fi,j:pi,L:hr,m:mi,M:Si,p:ns,q:rs,Q:Yn,s:jn,S:yi,u:bi,U:xi,V:vi,w:Ti,W:wi,x:null,X:null,y:Ci,Y:ki,Z:Pi,"%":_n},M={a:ss,A:os,b:is,B:as,c:null,d:Zn,e:Zn,f:Ai,g:Bi,G:Fi,H:Li,I:Di,j:Mi,L:fr,m:Oi,M:Ni,p:ls,q:cs,Q:Yn,s:jn,S:Ii,u:Zi,U:_i,V:Yi,w:ji,W:zi,x:null,X:null,y:Ui,Y:$i,Z:Hi,"%":_n},A={a:Fe,A:C,b:q,B:Z,c:J,d:On,e:On,f:li,g:An,G:Mn,H:Nn,I:Nn,j:si,L:ai,m:ri,M:oi,p:Ce,q:ni,Q:ui,s:hi,S:ii,u:Vo,U:Ko,V:Jo,w:Xo,W:ei,x:He,X:ue,y:An,Y:Mn,Z:ti,"%":ci};k.x=T(n,k),k.X=T(r,k),k.c=T(e,k),M.x=T(n,M),M.X=T(r,M),M.c=T(e,M);function T(y,w){return function(R){var m=[],_=-1,D=0,j=y.length,z,ee,dn;for(R instanceof Date||(R=new Date(+R));++_<j;)y.charCodeAt(_)===37&&(m.push(y.slice(D,_)),(ee=Dn[z=y.charAt(++_)])!=null?z=y.charAt(++_):ee=z==="e"?" ":"0",(dn=w[z])&&(z=dn(R,ee)),m.push(z),D=_+1);return m.push(y.slice(D,_)),m.join("")}}function O(y,w){return function(R){var m=Ee(1900,void 0,1),_=K(m,y,R+="",0),D,j;if(_!=R.length)return null;if("Q"in m)return new Date(m.Q);if("s"in m)return new Date(m.s*1e3+("L"in m?m.L:0));if(w&&!("Z"in m)&&(m.Z=0),"p"in m&&(m.H=m.H%12+m.p*12),m.m===void 0&&(m.m="q"in m?m.q:0),"V"in m){if(m.V<1||m.V>53)return null;"w"in m||(m.w=1),"Z"in m?(D=Ct(Ee(m.y,0,1)),j=D.getUTCDay(),D=j>4||j===0?at.ceil(D):at(D),D=nn.offset(D,(m.V-1)*7),m.y=D.getUTCFullYear(),m.m=D.getUTCMonth(),m.d=D.getUTCDate()+(m.w+6)%7):(D=wt(Ee(m.y,0,1)),j=D.getDay(),D=j>4||j===0?it.ceil(D):it(D),D=Ue.offset(D,(m.V-1)*7),m.y=D.getFullYear(),m.m=D.getMonth(),m.d=D.getDate()+(m.w+6)%7)}else("W"in m||"U"in m)&&("w"in m||(m.w="u"in m?m.u%7:"W"in m?1:0),j="Z"in m?Ct(Ee(m.y,0,1)).getUTCDay():wt(Ee(m.y,0,1)).getDay(),m.m=0,m.d="W"in m?(m.w+6)%7+m.W*7-(j+5)%7:m.w+m.U*7-(j+6)%7);return"Z"in m?(m.H+=m.Z/100|0,m.M+=m.Z%100,Ct(m)):wt(m)}}function K(y,w,R,m){for(var _=0,D=w.length,j=R.length,z,ee;_<D;){if(m>=j)return-1;if(z=w.charCodeAt(_++),z===37){if(z=w.charAt(_++),ee=A[z in Dn?w.charAt(_++):z],!ee||(m=ee(y,R,m))<0)return-1}else if(z!=R.charCodeAt(m++))return-1}return m}function Ce(y,w,R){var m=u.exec(w.slice(R));return m?(y.p=d.get(m[0].toLowerCase()),R+m[0].length):-1}function Fe(y,w,R){var m=S.exec(w.slice(R));return m?(y.w=x.get(m[0].toLowerCase()),R+m[0].length):-1}function C(y,w,R){var m=f.exec(w.slice(R));return m?(y.w=p.get(m[0].toLowerCase()),R+m[0].length):-1}function q(y,w,R){var m=E.exec(w.slice(R));return m?(y.m=L.get(m[0].toLowerCase()),R+m[0].length):-1}function Z(y,w,R){var m=b.exec(w.slice(R));return m?(y.m=v.get(m[0].toLowerCase()),R+m[0].length):-1}function J(y,w,R){return K(y,e,w,R)}function He(y,w,R){return K(y,n,w,R)}function ue(y,w,R){return K(y,r,w,R)}function he(y){return i[y.getDay()]}function de(y){return a[y.getDay()]}function $(y){return h[y.getMonth()]}function ts(y){return l[y.getMonth()]}function ns(y){return o[+(y.getHours()>=12)]}function rs(y){return 1+~~(y.getMonth()/3)}function ss(y){return i[y.getUTCDay()]}function os(y){return a[y.getUTCDay()]}function is(y){return h[y.getUTCMonth()]}function as(y){return l[y.getUTCMonth()]}function ls(y){return o[+(y.getUTCHours()>=12)]}function cs(y){return 1+~~(y.getUTCMonth()/3)}return{format:function(y){var w=T(y+="",k);return w.toString=function(){return y},w},parse:function(y){var w=O(y+="",!1);return w.toString=function(){return y},w},utcFormat:function(y){var w=T(y+="",M);return w.toString=function(){return y},w},utcParse:function(y){var w=O(y+="",!0);return w.toString=function(){return y},w}}}var Dn={"-":"",_:" ",0:"0"},I=/^\s*\d+/,Qo=/^%/,Wo=/[\\^$*+?|[\]().{}]/g;function P(t,e,n){var r=t<0?"-":"",o=(r?-t:t)+"",a=o.length;return r+(a<n?new Array(n-a+1).join(e)+o:o)}function Go(t){return t.replace(Wo,"\\$&")}function ke(t){return new RegExp("^(?:"+t.map(Go).join("|")+")","i")}function Re(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function Xo(t,e,n){var r=I.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Vo(t,e,n){var r=I.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Ko(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Jo(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function ei(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Mn(t,e,n){var r=I.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function An(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function ti(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function ni(t,e,n){var r=I.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function ri(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function On(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function si(t,e,n){var r=I.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Nn(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function oi(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function ii(t,e,n){var r=I.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function ai(t,e,n){var r=I.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function li(t,e,n){var r=I.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function ci(t,e,n){var r=Qo.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function ui(t,e,n){var r=I.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function hi(t,e,n){var r=I.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function In(t,e){return P(t.getDate(),e,2)}function di(t,e){return P(t.getHours(),e,2)}function fi(t,e){return P(t.getHours()%12||12,e,2)}function pi(t,e){return P(1+Ue.count(V(t),t),e,3)}function hr(t,e){return P(t.getMilliseconds(),e,3)}function gi(t,e){return hr(t,e)+"000"}function mi(t,e){return P(t.getMonth()+1,e,2)}function Si(t,e){return P(t.getMinutes(),e,2)}function yi(t,e){return P(t.getSeconds(),e,2)}function bi(t){var e=t.getDay();return e===0?7:e}function xi(t,e){return P(St.count(V(t)-1,t),e,2)}function dr(t){var e=t.getDay();return e>=4||e===0?xe(t):xe.ceil(t)}function vi(t,e){return t=dr(t),P(xe.count(V(t),t)+(V(t).getDay()===4),e,2)}function Ti(t){return t.getDay()}function wi(t,e){return P(it.count(V(t)-1,t),e,2)}function Ci(t,e){return P(t.getFullYear()%100,e,2)}function Ei(t,e){return t=dr(t),P(t.getFullYear()%100,e,2)}function ki(t,e){return P(t.getFullYear()%1e4,e,4)}function Ri(t,e){var n=t.getDay();return t=n>=4||n===0?xe(t):xe.ceil(t),P(t.getFullYear()%1e4,e,4)}function Pi(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+P(e/60|0,"0",2)+P(e%60,"0",2)}function Zn(t,e){return P(t.getUTCDate(),e,2)}function Li(t,e){return P(t.getUTCHours(),e,2)}function Di(t,e){return P(t.getUTCHours()%12||12,e,2)}function Mi(t,e){return P(1+nn.count(oe(t),t),e,3)}function fr(t,e){return P(t.getUTCMilliseconds(),e,3)}function Ai(t,e){return fr(t,e)+"000"}function Oi(t,e){return P(t.getUTCMonth()+1,e,2)}function Ni(t,e){return P(t.getUTCMinutes(),e,2)}function Ii(t,e){return P(t.getUTCSeconds(),e,2)}function Zi(t){var e=t.getUTCDay();return e===0?7:e}function _i(t,e){return P(ur.count(oe(t)-1,t),e,2)}function pr(t){var e=t.getUTCDay();return e>=4||e===0?ve(t):ve.ceil(t)}function Yi(t,e){return t=pr(t),P(ve.count(oe(t),t)+(oe(t).getUTCDay()===4),e,2)}function ji(t){return t.getUTCDay()}function zi(t,e){return P(at.count(oe(t)-1,t),e,2)}function Ui(t,e){return P(t.getUTCFullYear()%100,e,2)}function Bi(t,e){return t=pr(t),P(t.getUTCFullYear()%100,e,2)}function $i(t,e){return P(t.getUTCFullYear()%1e4,e,4)}function Fi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?ve(t):ve.ceil(t),P(t.getUTCFullYear()%1e4,e,4)}function Hi(){return"+0000"}function _n(){return"%"}function Yn(t){return+t}function jn(t){return Math.floor(+t/1e3)}var fe,gr;qi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function qi(t){return fe=qo(t),gr=fe.format,fe.parse,fe.utcFormat,fe.utcParse,fe}function Qi(t){return new Date(t)}function Wi(t){return t instanceof Date?+t:+new Date(+t)}function mr(t,e,n,r,o,a,i,l,h,u){var d=or(),f=d.invert,p=d.domain,S=u(".%L"),x=u(":%S"),b=u("%I:%M"),v=u("%I %p"),E=u("%a %d"),L=u("%b %d"),k=u("%B"),M=u("%Y");function A(T){return(h(T)<T?S:l(T)<T?x:i(T)<T?b:a(T)<T?v:r(T)<T?o(T)<T?E:L:n(T)<T?k:M)(T)}return d.invert=function(T){return new Date(f(T))},d.domain=function(T){return arguments.length?p(Array.from(T,Wi)):p().map(Qi)},d.ticks=function(T){var O=p();return t(O[0],O[O.length-1],T??10)},d.tickFormat=function(T,O){return O==null?A:u(O)},d.nice=function(T){var O=p();return(!T||typeof T.range!="function")&&(T=e(O[0],O[O.length-1],T??10)),T?p(Do(O,T)):d},d.copy=function(){return sr(d,mr(t,e,n,r,o,a,i,l,h,u))},d}function Gi(){return rr.apply(mr(Fo,Ho,V,rn,St,Ue,tn,en,ge,gr).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const zn=[s.a$1.NANOSECOND,s.a$1.nanoseconds(2),s.a$1.nanoseconds(5),s.a$1.nanoseconds(10),s.a$1.nanoseconds(20),s.a$1.nanoseconds(50),s.a$1.nanoseconds(100),s.a$1.nanoseconds(200),s.a$1.nanoseconds(500),s.a$1.MICROSECOND,s.a$1.microseconds(2),s.a$1.microseconds(5),s.a$1.microseconds(10),s.a$1.microseconds(20),s.a$1.microseconds(50),s.a$1.microseconds(100),s.a$1.microseconds(200),s.a$1.microseconds(500),s.a$1.MILLISECOND,s.a$1.milliseconds(2),s.a$1.milliseconds(5),s.a$1.milliseconds(10),s.a$1.milliseconds(20),s.a$1.milliseconds(50),s.a$1.milliseconds(100),s.a$1.milliseconds(200),s.a$1.milliseconds(500),s.a$1.SECOND];class Xi{_domain;_range;_span;constructor(){this._domain=[new s.r(0n),new s.r(1n)],this._range=[0,1],this._span=this._domain[1].span(this._domain[0])}domain(e){return e===void 0?this._domain:(this._domain=[new s.r(e[0]),new s.r(e[1])],this._span=this._domain[1].span(this._domain[0]),this)}range(e){return e===void 0?this._range:(this._range=e,this)}scale(e){const r=new s.r(e).valueOf(),o=this._domain[0].valueOf(),a=this._domain[1].valueOf()-o,i=this._range[1]-this._range[0];return Number(r-o)/Number(a)*i+this._range[0]}ticks(e){const n=this.calculateOptimalStep(e).valueOf(),r=this._domain[0].valueOf(),o=this._domain[1].valueOf(),a=(r+n-1n)/n*n,i=Number((o-a)/n);return Array.from({length:i+1},(l,h)=>{const u=a+BigInt(h)*n;return new s.r(u)}).filter(l=>l.afterEq(this._domain[0])&&l.beforeEq(this._domain[1]))}calculateOptimalStep(e){const n=this._span.valueOf()/BigInt(Math.ceil(e));let r=zn[0];for(const o of zn){if(o.valueOf()>n)break;r=o}return r}formatTick(e){return this._span.lessThan(s.a$1.microseconds(50))?`${e.remainder(s.a$1.MILLISECOND).microseconds.toString()}µs`:`${e.remainder(s.a$1.SECOND).milliseconds.toString()}ms`}}const Vi=()=>new Xi,sn=g.z.enum(["linear","time"]),on=g.z.object({tickSpacing:g.z.number().default(75),type:sn.optional().default("linear")}),Ot=t=>{const e=on.parse(t);return ea[e.type](e)};class Ki{props;prevScaleSize;prevDomain;currTicks;normalScale;preciseScale;constructor(e){this.props=e,this.normalScale=Gi(),this.preciseScale=Vi(),this.prevScaleSize=0,this.prevDomain=new s.m(new s.r(0),new s.r(0)),this.currTicks=[]}create({decimalToDataScale:e,size:n}){const r=new s.m(new s.r(e.pos(0)),new s.r(e.pos(1)));if(this.prevDomain.equals(r)&&this.prevScaleSize===n)return this.currTicks;if(this.prevDomain=r,this.prevScaleSize!==n){const o=[0,n];this.preciseScale.range(o),this.normalScale.range(o),this.prevScaleSize=n}if(r.span.milliseconds<5){this.preciseScale.domain([r.start,r.end]);const o=Nt(n,this.props.tickSpacing)/2,a=this.preciseScale.ticks(o);this.currTicks=a.map(i=>({label:this.preciseScale.formatTick(i),position:this.preciseScale.scale(i)}))}else{this.normalScale.domain([r.start.date(),r.end.date()]);const o=this.normalScale.ticks(Nt(n,this.props.tickSpacing));this.currTicks=o.map(a=>({label:this.normalTickLabel(a),position:this.normalScale(a)}))}return this.currTicks}normalTickLabel(e){let n=`:${e.getSeconds()}`;const r=e.getMilliseconds();if(r!==0){const o=Math.round(e.getMilliseconds()).toString().padStart(3,"0").replace(/0+$/,"");n+=`.${o}`}return e.getSeconds()===0&&r===0&&(n=`${e.getHours()}:${e.getMinutes().toString().padStart(2,"0")}`),n}}class Ji{props;prevDomain;prevScaleSize;currTicks;d3Scale;constructor(e){this.props=e,this.prevDomain=s.H.construct(0,0),this.prevScaleSize=0,this.currTicks=[],this.d3Scale=cr()}create({decimalToDataScale:e,size:n}){const r={lower:e.pos(0),upper:e.pos(1)};if(s.H.equals(this.prevDomain,r)&&this.prevScaleSize===n)return this.currTicks;s.H.equals(this.prevDomain,r)||(this.d3Scale=this.d3Scale.domain([r.lower,r.upper])),this.prevScaleSize!==n&&(this.d3Scale=this.d3Scale.range([0,n])),this.prevDomain=r,this.prevScaleSize=n;const o=Nt(n,this.props.tickSpacing),a=this.d3Scale.ticks(o);return this.currTicks=a.map(i=>({label:this.tickLabel(i),position:this.d3Scale(i)})),this.currTicks}tickLabel(e){return e.toString()}}const Nt=(t,e)=>{const n=Math.floor(t/e);return n>0?n:1},ea={linear:t=>new Ji(t),time:t=>new Ki(t)},an=on.extend({color:s.kr.colorZ,type:sn.optional().default("linear"),font:g.z.string(),showGrid:g.z.boolean().optional().default(!0),location:s.K.outer,gridColor:s.kr.colorZ}),B=5,Oe=6,Be={useAtlas:!0},ta={bottom:(t,e)=>new yr(t,e),top:(t,e)=>new br(t,e),left:(t,e)=>new na(t,e),right:(t,e)=>new xr(t,e)},Sr=(t,e,n)=>ta[t](e,n);class le{renderCtx;state;tickFactory;constructor(e,n){this.renderCtx=e,this.state=n,this.tickFactory=Ot(this.state)}setState(e){this.state=c.prettyParse(an,e),this.tickFactory=Ot(e)}drawLine(e,n){const{lower2d:r}=this.renderCtx;r.moveTo(...s.Q.couple(e)),r.lineTo(...s.Q.couple(n))}drawTicks(e,n){let r=s._.ZERO;return e.forEach(o=>{const a=this.renderCtx.lower2d.textDimensions(o.label,Be);r=s._.max([r,a]),n(a,o)}),r}static START_BOUND=s.H.construct(-1,1);maybeDrawGrid(e,n,r){const{showGrid:o,gridColor:a}=this.state;if(o){const i=le.START_BOUND,l=s.H.construct(e-1,e+1),{lower2d:h}=this.renderCtx;h.beginPath(),h.strokeStyle=s.kr.hex(a),n.forEach(u=>{s.H.contains(i,u.position)||s.H.contains(l,u.position)||this.drawLine(...r(u))}),h.stroke()}}setColor(e){const n=s.kr.hex(e);this.renderCtx.lower2d.strokeStyle=n,this.renderCtx.lower2d.fillStyle=n,this.renderCtx.lower2d.font=this.state.font}}class yr extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r,position:o}=e,{width:a,height:i}=s.jt.dims(r),l=this.tickFactory.create({...e,size:a});n.beginPath(),this.setColor(this.state.color),this.drawLine(o,s.Q.translate(o,"x",a));const h=this.drawTicks(l,(u,d)=>{this.drawLine(s.Q.translateX(o,d.position),s.Q.translate(o,{x:d.position,y:B})),n.fillText(d.label,o.x+d.position-u.width/2,o.y+B+u.height+Oe,void 0,Be)});return n.stroke(),this.maybeDrawGrid(a,l,u=>[s.Q.translate(o,"x",u.position),s.Q.translate(o,{x:u.position,y:-i})]),{size:h.height+B+Oe}}}class br extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r}=e,{width:o,height:a}=s.jt.dims(r),i=s.Q.translate(e.position,"y",e.size),l=this.tickFactory.create({...e,size:o});n.beginPath(),this.setColor(this.state.color),this.drawLine(i,s.Q.translate(i,"x",o));const h=this.drawTicks(l,(u,d)=>{this.drawLine(s.Q.translateX(i,d.position),s.Q.translate(i,{x:d.position,y:-B})),n.fillText(d.label,i.x+d.position-u.width/2,i.y-B-u.height-Oe,void 0,Be)});return n.stroke(),this.maybeDrawGrid(o,l,u=>[s.Q.translate(i,"x",u.position),s.Q.translate(i,{x:u.position,y:a})]),{size:h.height+B}}}class na extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r,position:o}=e,{height:a,width:i}=s.jt.dims(r),l=s.Q.translate(o,"x",e.size),h=this.tickFactory.create({...e,size:a});n.beginPath(),this.setColor(this.state.color),this.drawLine(l,s.Q.translate(l,"y",a));const u=this.drawTicks(h,(d,f)=>{this.drawLine(s.Q.translateY(l,f.position),s.Q.translate(l,{x:-B,y:f.position})),n.fillText(f.label,l.x-d.width-B*2,l.y+f.position+d.height/2,void 0,Be)});return n.stroke(),this.maybeDrawGrid(a,h,d=>[s.Q.translate(l,"y",d.position),s.Q.translate(l,{x:i,y:d.position})]),{size:u.width+B*2}}}class xr extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r,position:o}=e,{height:a,width:i}=s.jt.dims(r),l=this.tickFactory.create({...e,size:a});n.beginPath(),this.setColor(this.state.color),this.drawLine(o,s.Q.translateY(o,a));const h=this.drawTicks(l,(u,d)=>{this.drawLine(s.Q.translateY(o,d.position),s.Q.translate(o,{x:B,y:d.position})),n.fillText(d.label,o.x+B+Oe,o.y+d.position+u.height/2,void 0,Be)});return n.stroke(),this.maybeDrawGrid(a,l,u=>[s.Q.translateY(o,u.position),s.Q.translate(o,{x:-i,y:u.position})]),{size:h.width+B+Oe}}}const vr=g.z.object({key:g.z.string(),size:g.z.number(),order:g.z.number(),loc:s.K.outer});g.z.record(g.z.string(),vr);const ne=(t,e)=>Object.values(e).filter(({loc:n})=>n===t).sort((n,r)=>r.order-n.order),ra=(t,e,n)=>{const r=e[t];if(r==null)return s.Q.ZERO;const o=s.K.construct(r.loc),a=ne(o,e),i=s.K.construct(s.p.swap(s.K.direction(o))),l=ne(i,e),h=a.findIndex(({key:f})=>f===t),u=a.slice(0,h).reduce((f,{size:p})=>f+p,0),d=l.reduce((f,{size:p})=>f+p,0);switch(o){case"left":return s.Q.translate(s.jt.topLeft(n),[u,d]);case"right":return s.Q.translate(s.jt.topRight(n),[u-r.size,d]);case"top":return s.Q.translate(s.jt.topLeft(n),[d,u]);default:return s.Q.translate(s.jt.bottomLeft(n),[d,-u-r.size])}},sa=(t,e)=>{const n=ne("left",t),r=ne("right",t),o=ne("top",t),a=ne("bottom",t),i=n.reduce((d,{size:f})=>d+f,0),l=r.reduce((d,{size:f})=>d+f,0),h=o.reduce((d,{size:f})=>d+f,0),u=a.reduce((d,{size:f})=>d+f,0);return s.jt.construct(s.Q.translate(s.jt.topLeft(e),{x:i,y:h}),s.jt.width(e)-i-l,s.jt.height(e)-h-u)},$e=an.extend({axisKey:g.z.string().optional(),bounds:s.H.bounds.optional(),autoBounds:g.z.object({lower:g.z.boolean().optional().default(!0),upper:g.z.boolean().optional().default(!0)}).or(g.z.boolean().optional().default(!0)),autoBoundPadding:g.z.number().optional(),autoBoundUpdateInterval:s.a$1.z.optional().default(s.a$1.seconds(10)),size:g.z.number().optional().default(0),label:g.z.string().optional().default(""),labelSize:g.z.number().optional().default(0)}).partial({color:!0,font:!0,gridColor:!0}),oa=2,ia=7,Tr=(t,e)=>s.H.contains({lower:t-ia,upper:t+oa},e),aa=s.H.DECIMAL,Un=s.r.now(),la={lower:Number(Un.valueOf()),upper:Number(Un.add(s.a$1.HOUR).valueOf())},wr=t=>t==="linear"?aa:la,ca=(t,e=.1,n)=>{const r=s.H.max(t.filter(s.H.isFinite));if(!s.H.isFinite(r))return wr(n);const{lower:o,upper:a}=r;if(a===o)return{lower:o-1,upper:a+1};const i=(a-o)*e;return{lower:o-i,upper:a+i}},ua=.01,ha=.1;class Cr extends c.Composite{afterUpdate(e){const{internal:n}=this,{location:r,autoBoundUpdateInterval:o}=this.state;n.render=c.Context.use(e);const a=c.use(e),i=s.p.construct(r);this.state.autoBoundPadding??=i==="x"?ha:ua,n.core=Sr(r,n.render,{color:a.colors.gray.l10,font:Le.fontString(a,{level:"small",code:!0}),gridColor:a.colors.gray.l1,...this.state}),G(e,"layout"),n.updateBounds??=c.r(l=>this.setState(h=>({...h,bounds:l})),o.milliseconds)}afterDelete(e){G(e,"layout")}renderAxis(e,n){if(!e.canvases.includes("lower2d"))return;const{core:r}=this.internal,{grid:o,container:a}=e,i=ra(`${this.type}-${this.key}`,o,a),l={...e,position:i,decimalToDataScale:n,size:this.state.size+this.state.labelSize},{size:h}=r.render(l);Tr(this.state.size,h)||this.setState(u=>({...u,size:h}))}iBounds(e,n){if(e&&this.internal.boundSnapshot!=null)return[this.internal.boundSnapshot,null];const{lower:r,upper:o}=Er(this.state.autoBounds);if(!r&&!o&&this.state.bounds!=null)return this.internal.boundSnapshot=this.state.bounds,[this.state.bounds,null];const a=u=>({upper:o||this.state.bounds==null?u.upper:this.state.bounds.upper,lower:r||this.state.bounds==null?u.lower:this.state.bounds.lower});let i,l=null;try{const u=n();i=ca(u,this.state.autoBoundPadding,this.state.type)}catch(u){i=wr(this.state.type),l=u}const h=a(i);return this.internal.boundSnapshot=h,(this.state.bounds==null||r&&this.state.bounds.lower!==h.lower||o&&this.state.bounds.upper!==h.upper)&&this.internal.updateBounds?.(h),[h,l]}dataToDecimalScale(e,n,r){const[o,a]=this.iBounds(e,n),i=s.p.swap(s.p.construct(this.state.location));return[s.C.Scale.scale(o).scale(1).translate(-s.jt.root(r)[i]).magnify(1/s.jt.dim(r,i)),a]}}const Er=t=>typeof t=="boolean"?{lower:t,upper:t}:{lower:t?.lower??!0,upper:t?.upper??!0};class ce{canvas;theme;constructor(e,n){this.canvas=e,this.theme=n}rule({direction:e,region:n,position:r,...o}){return e==="x"?this.line({start:s.Q.construct(s.jt.left(n),r),end:s.Q.construct(s.jt.right(n),r),...o}):this.line({start:s.Q.construct(r,s.jt.top(n)),end:s.Q.construct(r,s.jt.bottom(n)),...o})}line({stroke:e,lineWidth:n,lineDash:r,start:o,end:a}){const i=this.canvas;i.strokeStyle=s.kr.hex(e),i.lineWidth=n,i.setLineDash([r]),i.beginPath(),i.moveTo(...s.Q.couple(o)),i.lineTo(...s.Q.couple(a)),i.stroke()}circle({fill:e,stroke:n,strokeWidth:r,radius:o,position:a,angle:i,lineCap:l}){const h=this.canvas;h.beginPath();const u=i?.lower??0,d=i?.upper??2*Math.PI;if(n!=null&&typeof o=="object"){const{inner:f,outer:p}=o,S=(f+p)/2,x=p-f;h.arc(...s.Q.couple(a),S,u,d,!1),h.strokeStyle=s.kr.hex(n),h.lineWidth=r??x,l&&(h.lineCap=l),h.stroke()}else if(e!=null)if(h.fillStyle=s.kr.hex(e),typeof o=="number")h.arc(...s.Q.couple(a),o,u,d),h.fill();else{const{inner:f,outer:p}=o;h.arc(...s.Q.couple(a),p,u,d,!1);const S=a.x+f*Math.cos(d),x=a.y+f*Math.sin(d);h.lineTo(S,x),h.arc(...s.Q.couple(a),f,d,u,!0),h.closePath(),h.fill()}}resolveColor(e,n){return e==null?n==null?this.theme.colors.text:this.resolveColor(n):typeof e=="function"?e(this.theme):s.kr.construct(e)}border({region:e,color:n,width:r,radius:o,location:a}){const i=this.canvas;i.strokeStyle=s.kr.hex(this.resolveColor(n,this.theme.colors.border)),i.lineWidth=r??this.theme.sizes.border.width,o??=this.theme.sizes.border.radius,a==null||a===!0?o>0?(i.roundRect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e)),o),i.stroke()):(i.rect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e))),i.stroke()):s.a.toArray(a).forEach(l=>{const[h,u]=s.jt.edgePoints(e,l);i.beginPath(),i.moveTo(...s.Q.couple(h)),i.lineTo(...s.Q.couple(u)),i.stroke()})}container({region:e,bordered:n=!0,rounded:r=!0,borderColor:o,borderRadius:a,borderWidth:i,backgroundColor:l}){a??=this.theme.sizes.border.radius,i??=1;const h=this.canvas;h.fillStyle=s.kr.hex(this.resolveColor(l,this.theme.colors.gray.l1)),h.strokeStyle=s.kr.hex(this.resolveColor(o,this.theme.colors.border)),h.setLineDash([]),h.lineWidth=1,h.beginPath(),r?h.roundRect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e)),a):h.rect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e))),h.fill(),n&&this.border({region:e,color:o,radius:a,width:i,location:n})}textContainer(e){const[n,r]=this.spacedTextDrawF(e);n.width+=12,n.height+=12;const{root:o=s.K.TOP_LEFT,offset:a=s.Q.ZERO}=e,i={...e.position};o.x==="right"?i.x-=n.width+a.x:i.x+=a.x,o.y==="bottom"?i.y-=n.height+a.y:i.y+=a.y,this.container({region:s.jt.construct(i,n.width,n.height),...e}),this.canvas.filter="none",r(s.Q.translate(i,[6,6]))}spacedTextDrawF({text:e,direction:n,spacing:r=1,level:o="p"}){const a=Le.fontString(this.theme,{level:o}),i=e.map(u=>c.dimensions(u,a,this.canvas)),l=this.theme.sizes.base*r,h=Math.max(...i.map(u=>u[s.p.dimension(n)]))+l;return[{[s.p.dimension(s.p.swap(n))]:Math.max(...i.map(u=>u[s.p.dimension(s.p.swap(n))])),[s.p.dimension(n)]:h*e.length-l},u=>{const d=Le.fontString(this.theme,{level:o});this.canvas.font=d,this.canvas.fillStyle=s.kr.hex(this.theme.colors.text),this.canvas.textBaseline="top",e.forEach((f,p)=>{this.canvas.fillText(f,u.x,u.y+h*p)})}]}list({length:e,itemHeight:n,width:r,spacing:o=0,position:a,draw:i,root:l=s.K.TOP_LEFT,offset:h=s.Q.ZERO,padding:u=s.Q.ZERO}){const d=e*n+u.y*2+o*(e-1),f=r+u.x*2,p={...a};l.x==="right"?p.x-=r+h.x*2:p.x+=h.x,l.y==="top"?p.y-=d+h.y*2:p.y+=h.y,this.container({region:s.jt.construct(p,{width:f,height:d}),backgroundColor:S=>S.colors.gray.l1});for(let S=0;S<e;S++){const x=s.jt.construct(s.Q.construct(p.x+u.x,p.y+S*n+u.y+o*S),r,n);i(S,x)}}drawTextInCenter({box:e,text:n,level:r}){const o=c.dimensions(n,this.canvas.font,this.canvas),a=s.jt.positionInCenter(s.jt.construct(s.Q.ZERO,o),e);return this.text({text:n,position:s.jt.topLeft(a),level:r})}text({text:e,position:n,level:r="p",weight:o,shade:a,maxWidth:i,code:l,justify:h="left",align:u="top",useAtlas:d,color:f}){this.canvas.font=Le.fontString(this.theme,{level:r,weight:o,code:l}),f!=null?this.canvas.fillStyle=s.kr.hex(this.resolveColor(f)):a==null?this.canvas.fillStyle=s.kr.hex(this.theme.colors.text):this.canvas.fillStyle=s.kr.hex(this.theme.colors.gray[`l${a}`]),this.canvas.textAlign=h,this.canvas.textBaseline=u;let p;i!=null&&(p=this.canvas.scissor(s.jt.construct(n,i,1e3))),this.canvas.fillText(e,n.x,n.y,void 0,{useAtlas:d}),p?.()}}const ln=g.z.object({position:g.z.number().optional(),pixelPosition:g.z.number().optional(),dragging:g.z.boolean(),lineWidth:g.z.number().optional().default(1),lineDash:g.z.number().optional().default(20),color:s.kr.colorZ}),da=3;class Ne extends c.Leaf{static TYPE="Rule";schema=ln;lastUpdateRef=null;afterUpdate(e){this.internal.renderCtx=c.Context.use(e);const n=c.use(e);this.internal.draw=new ce(this.internal.renderCtx.upper2d,n),G(e,"tool")}afterDelete(e){G(e,"tool")}updatePositions({decimalToDataScale:e,plot:n}){const r=this.state.dragging,o=this.prevState.dragging&&!r;if((r||o)&&this.state.pixelPosition!=null){if(this.lastUpdateRef??=this.state.pixelPosition,Math.abs(this.state.pixelPosition-this.lastUpdateRef)<da&&!o)return this.state.pixelPosition;this.lastUpdateRef=this.state.pixelPosition;const l=e.pos(this.state.pixelPosition/s.jt.height(n));return this.setState(h=>({...h,position:l})),this.state.pixelPosition}if(this.state.position==null){const i=e.pos(.5);this.setState(l=>({...l,position:i}))}const a=e.reverse().pos(this.state.position)*s.jt.height(n);if(!isNaN(a)){if(this.state.pixelPosition!=null&&Math.abs(a-this.state.pixelPosition)<1)return this.state.pixelPosition;this.setState(i=>({...i,pixelPosition:a}))}return a}render(e){if(this.deleted)return;const{renderCtx:n}=this.internal,{location:r,plot:o}=e,a=s.K.direction(r),{upper2d:i}=n,l=this.internal.draw,h=this.updatePositions(e)+s.jt.top(e.plot);l.rule({stroke:this.state.color,lineWidth:this.state.lineWidth,lineDash:this.state.lineDash,direction:a,region:o,position:h}),i.fillStyle=s.kr.hex(this.state.color),i.lineJoin="round",i.lineWidth=3.5,i.lineCap="round",i.beginPath();const u=4;if(r==="left"){const d=s.jt.left(o)-1;i.moveTo(d,h),i.lineTo(d-u,h-u),i.lineTo(d-u,h+u)}else r==="right"&&(i.moveTo(s.jt.right(o),h),i.lineTo(s.jt.right(o)+u,h-u),i.lineTo(s.jt.right(o)+u,h+u));i.closePath(),i.stroke()}}const kr={[Ne.TYPE]:Ne},fa=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:kr,Rule:Ne,ruleStateZ:ln},Symbol.toStringTag,{value:"Module"})),pa=$e.extend({location:s.K.x.optional().default("left")}),Bn=2,ga=t=>s.jt.signedWidth(t)<Bn||s.jt.signedHeight(t)<Bn;class lt extends Cr{static TYPE="YAxis";schema=$e;xBounds(){return s.H.max(this.lines.map(e=>e.xBounds()).filter(e=>s.H.isFinite(e)))}bounds(e){const[n,r]=this.iBounds(e,this.dataBounds.bind(this));if(r!=null)throw r;return n}render(e){if(this.deleted)return;const[n,r]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport),o=n.invert().reverse();if(this.renderAxis(e,o),this.renderLines(e,n),this.renderRules(e,o),r!=null)throw r}renderLines({xDataToDecimalScale:e,plot:n,canvases:r,exposure:o},a){if(!r.includes("gl")||ga(n))return;const i={region:n,dataToDecimalScale:new s.C.XY(e,a),exposure:o};this.lines.forEach(l=>l.render(i))}renderRules({container:e,plot:n,canvases:r},o){if(!r.includes("upper2d"))return;const{location:a}=this.state,{render:i}=this.internal,l=s.jt.construct(s.jt.left(e),s.jt.top(n),s.jt.width(e),s.jt.height(n)),h=i.scissor(l,s.Q.ZERO,["upper2d"]),u={container:e,plot:n,decimalToDataScale:o,location:a};this.rules.map(d=>d.render(u)),h()}findByXValue({xDataToDecimalScale:e,plot:n,viewport:r,hold:o,exposure:a},i){const[l,h]=this.dataToDecimalScale(o,this.dataBounds.bind(this),r);if(h!=null)throw h;const u=new s.C.XY(e,l),d={region:n,dataToDecimalScale:u,exposure:a};return this.lines.map(f=>({...f.findByXValue(d,i),units:this.state.label}))}dataBounds(){return this.lines.map(e=>e.yBounds())}get lines(){return this.childrenOfType(Je.TYPE)}get rules(){return this.childrenOfType(Ne.TYPE)}}const ma=g.z.object({start:s.r.z,end:s.r.z});class $n extends c.Leaf{static TYPE="range-annotation";schema=ma;afterUpdate(e){this.internal.render=c.Context.use(e),this.internal.draw=new ce(this.internal.render.upper2d,c.use(e))}}const Sa=c.zI.payloadZ.extend({viewport:s.H.bounds}),Rr=g.z.object({cursor:s.Q.xy.or(g.z.null()),hovered:Sa.or(g.z.null()),count:g.z.number()});class ct extends c.Leaf{static TYPE="range-provider";schema=Rr;fetchedInitial=s.m.ZERO;afterUpdate(e){const{internal:n}=this;n.render=c.Context.use(e),n.draw=new ce(n.render.upper2d,c.use(e)),n.requestRender=gt(e),n.runAsync=c.useErrorHandler(e),n.ranges??=new Map;const r=c.use$1(e);if(n.requestRender("tool"),r==null)return;n.client=r;const o=cl(e,this.key);n.removeListener?.();const a=o.ranges.onSet(l=>{n.client!=null&&(s.kr.isCrude(l.color)&&n.ranges.set(l.key,n.client.ranges.sugarOne(l)),this.setState(h=>({...h,count:n.ranges.size})),n.requestRender("tool"))}),i=o.ranges.onDelete(async l=>{n.ranges.delete(l),this.setState(h=>({...h,count:n.ranges.size})),n.requestRender("tool")});n.removeListener=()=>{a(),i()}}fetchInitial(e){const{internal:n}=this,{client:r,runAsync:o}=n;r==null||this.fetchedInitial.equals(e,s.a$1.minutes(1))||(this.fetchedInitial=e,o(async()=>{(await r.ranges.retrieve(e)).forEach(i=>{s.kr.isCrude(i.color)&&n.ranges.set(i.key,i)}),this.setState(i=>({...i,count:n.ranges.size}))},"failed to fetch initial ranges"))}render(e){const{dataToDecimalScale:n,region:r,viewport:o,timeRange:a}=e;this.fetchInitial(a);const{draw:i,ranges:l}=this.internal,h=n.scale(s.jt.xBounds(r)),u=this.state.cursor==null?null:this.state.cursor.x;let d=null;const f=i.canvas.scissor(s.jt.construct({x:s.jt.left(r),y:s.jt.top(r)-35},{x:s.jt.right(r),y:s.jt.bottom(r)}));l.forEach(p=>{const S=s.kr.colorZ.safeParse(p.color);if(!S.success)return;const x=S.data;let b=h.pos(Number(p.timeRange.start.valueOf()));const v=h.pos(Number(p.timeRange.end.valueOf()));if(v<s.jt.left(r)||b>s.jt.right(r))return;b=s.R(b,s.jt.left(r)-2,s.jt.right(r)-1);let E=!1;u!=null&&(E=s.H.contains({lower:b,upper:v},u)),E&&(d={key:p.key,parent:p.parent,name:p.name,color:p.color,labels:p.labels,timeRange:p.timeRange,viewport:{lower:n.scale(s.jt.xBounds(o)).pos(Number(p.timeRange.start.valueOf())),upper:n.scale(s.jt.xBounds(o)).pos(Number(p.timeRange.end.valueOf()))}}),i.container({region:s.jt.construct({x:b,y:s.jt.top(r)-1},{x:v,y:s.jt.bottom(r)-1}),backgroundColor:s.kr.setAlpha(x,.2),bordered:!1});const L=s.jt.construct({x:b+1,y:s.jt.top(r)-34},{x:v-1,y:s.jt.top(r)-12});i.container({region:L,backgroundColor:s.jt.width(L)<20?s.kr.setAlpha(x,.4):k=>E?k.colors.gray.l2:k.colors.gray.l0,bordered:!0,borderWidth:1,borderRadius:2,borderColor:s.kr.setAlpha(x,.8)}),i.text({text:p.name,position:{x:b+8,y:s.jt.top(r)-30},level:"small",shade:10,weight:500,maxWidth:v-b-16})}),f(),d!=null?this.setState(p=>({...p,hovered:d})):this.state.hovered&&this.setState(p=>({...p,hovered:null}))}}const ya={[$n.TYPE]:$n,[ct.TYPE]:ct},ba=$e;class ut extends Cr{static TYPE="XAxis";schema=$e;render(e){if(this.deleted)return;const[n,r]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport);if(this.renderAxis(e,n.reverse()),this.renderYAxes(e,n),this.renderRanges(e,n),r!=null)throw r}findByXDecimal(e,n){const[r,o]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport);if(o!=null)throw o;return this.findByXValue(e,r.reverse().pos(n))}findByXValue(e,n){const[r,o]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport);if(o!=null)throw o;const a={...e,xDataToDecimalScale:r};return this.yAxes.map(i=>i.findByXValue(a,n)).flat()}renderYAxes(e,n){const r={...e,xDataToDecimalScale:n};this.yAxes.forEach(o=>o.render(r))}get yAxes(){return this.childrenOfType(lt.TYPE)}get ranges(){return this.childrenOfType(ct.TYPE)}bounds(e){const[n,r]=this.iBounds(e,this.dataBounds.bind(this));if(r!=null)throw r;return n}renderRanges(e,n){const r=this.bounds(e.hold),o=s.H.min([r,s.m.MAX.numericBounds]),a=new s.m(o.lower,o.upper);this.ranges.forEach(i=>i.render({dataToDecimalScale:n,region:e.plot,viewport:e.viewport,timeRange:a}))}dataBounds(){return this.yAxes.map(e=>e.xBounds())}}const xa=s.Q.construct(12),va=3,Ta=14,wa=s.Q.construct(6),cn=g.z.object({position:s.Q.xy.or(g.z.null()),textColor:s.kr.colorZ.optional().default(s.kr.ZERO),backgroundColor:s.kr.colorZ.optional().default(s.kr.ZERO),borderColor:s.kr.colorZ.optional().default(s.kr.ZERO),ruleColor:s.kr.colorZ.optional().default(s.kr.ZERO),ruleStrokeWidth:g.z.number().optional().default(1),ruleStrokeDash:g.z.number().default(0)});class Ie extends c.Leaf{static TYPE="tooltip";schema=cn;afterUpdate(e){const n=c.use(e);s.kr.isZero(this.state.textColor)&&(this.state.textColor=n.colors.text),s.kr.isZero(this.state.backgroundColor)&&(this.state.backgroundColor=n.colors.gray.l1),s.kr.isZero(this.state.borderColor)&&(this.state.borderColor=n.colors.border),s.kr.isZero(this.state.ruleColor)&&(this.state.ruleColor=n.colors.gray.l7),this.internal.dotColor=n.colors.text,this.internal.dotColorContrast=n.colors.textInverted,this.internal.render=c.Context.use(e),this.internal.draw=new ce(this.internal.render.upper2d,n),G(e,"tool")}afterDelete(e){G(e,"tool")}render(e){if(this.deleted||this.state.position==null)return;const{region:n}=e,r=s.C.XY.scale(s.jt.DECIMAL).scale(n),o=s.C.XY.scale(n).scale(s.jt.DECIMAL),a=e.findByXDecimal(o.x.pos(this.state.position.x)),i=a.filter(b=>s.Q.isFinite(b.value)),{draw:l}=this.internal,h=i.reduce((b,v)=>b+v.position.x,0)/i.length,u=new s.r(i.reduce((b,v)=>b+v.value.x,0)/i.length),d=r.x.pos(h);if(!s.H.contains(s.jt.xBounds(n),d))return;l.rule({stroke:this.state.ruleColor,lineWidth:this.state.ruleStrokeWidth,lineDash:this.state.ruleStrokeDash,direction:"y",region:n,position:d}),i.forEach(b=>{const v=r.pos(b.position);l.circle({fill:s.kr.setAlpha(b.color,.5),radius:8,position:v}),l.circle({fill:s.kr.setAlpha(b.color,.8),radius:5,position:v}),l.circle({fill:s.kr.pickByContrast(b.color,this.internal.dotColor,this.internal.dotColorContrast),radius:2,position:v})});const f=o.pos(this.state.position),p={...s.K.TOP_LEFT};f.x>.6&&(p.x="right"),f.y>.6&&(p.y="bottom");let S=a.reduce((b,v)=>Math.max(b,v.label?.length??0),0);const x=u.toString("preciseDate","local").length;x>S&&(S=x),l.list({root:p,offset:xa,length:i.length+1,padding:wa,itemHeight:Ta,spacing:va,width:S*7+48,position:this.state.position,draw:(b,v)=>{let E="",L="",k=this.state.textColor;if(b===0)E="Time",L=u.toString("preciseDate","local");else{const M=i[b-1];E=M.label??"",L=s.Nr.roundBySpan(M.value.y,M.bounds).toString(),k=M.color}l.text({position:s.jt.topLeft(v),text:E,level:"small",weight:500,color:k}),l.text({position:s.Q.translateY(s.jt.topRight(v),-1),text:L,level:"small",justify:"right",code:!0,shade:10})}})}}const Pr={[Ie.TYPE]:Ie},Ca=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Pr,Tooltip:Ie,tooltipStateZ:cn},Symbol.toStringTag,{value:"Module"})),un=g.z.object({one:s.Q.xy.nullable(),two:s.Q.xy.nullable(),hover:s.Q.xy.nullable(),color:g.z.union([s.kr.colorZ,g.z.object({verticalLine:s.kr.colorZ.optional().default(s.kr.ZERO),horizontalLine:s.kr.colorZ.optional().default(s.kr.ZERO),obliqueLine:s.kr.colorZ.optional().default(s.kr.ZERO)})]).optional().default(s.kr.ZERO),strokeWidth:g.z.number().optional().default(1),strokeDash:g.z.number().optional().default(2)});class Ze extends c.Leaf{static TYPE="measure";schema=un;afterUpdate(e){const n=c.Context.use(e);this.internal.theme=c.use(e),this.internal.renderCtx=n,this.internal.draw=new ce(n.upper2d,this.internal.theme),G(e,"tool")}afterDelete(e){G(e,"layout")}get verticalLineColor(){return s.kr.isColor(this.state.color)?s.kr.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:s.kr.isZero(this.state.color.verticalLine)?this.internal.theme.colors.gray.l8:this.state.color.verticalLine}get horizontalLineColor(){return s.kr.isColor(this.state.color)?s.kr.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:s.kr.isZero(this.state.color.horizontalLine)?this.internal.theme.colors.gray.l8:this.state.color.horizontalLine}get obliqueLineColor(){return s.kr.isColor(this.state.color)?s.kr.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:s.kr.isZero(this.state.color.obliqueLine)?this.internal.theme.colors.gray.l8:this.state.color.obliqueLine}find(e){const{one:n,two:r}=this.state;if(n==null||r==null)return null;const{one:o,two:a}=this.prevState,{dataOne:i,dataTwo:l}=this.internal;if(o!=null&&s.Q.equals(n,o)&&a!=null&&s.Q.equals(r,a)&&i!=null&&l!=null){const[b,v]=[e.findByXValue(i.x),e.findByXValue(l.x)];return b.length===0||v.length===0?null:[b.sort((E,L)=>s.Q.distance(i,E.value)-s.Q.distance(i,L.value))[0],v.sort((E,L)=>s.Q.distance(l,E.value)-s.Q.distance(l,L.value))[0]]}const h=s.C.XY.scale(e.region).scale(s.jt.DECIMAL),[u,d]=[h.pos(n),h.pos(r)],[f,p]=[e.findByXDecimal(u.x),e.findByXDecimal(d.x)];if(f.length===0||p.length===0)return null;const[S,x]=[f.sort((b,v)=>s.Q.distance(u,b.position)-s.Q.distance(u,v.position))[0],p.sort((b,v)=>s.Q.distance(d,b.position)-s.Q.distance(d,v.position))[0]];return this.internal.dataOne=S.value,this.internal.dataTwo=x.value,[S,x]}renderHover(e){if(this.state.hover==null)return;const n=this.state.hover,r=s.C.XY.scale(e.region).scale(s.jt.DECIMAL),o=r.pos(n),a=e.findByXDecimal(r.pos(n).x);if(a.length===0)return;const i=a.sort((h,u)=>s.Q.distance(o,h.position)-s.Q.distance(o,u.position))[0],{draw:l}=this.internal;l.circle({fill:s.kr.setAlpha(i.color,.5),radius:9,position:r.reverse().pos(i.position)})}render(e){if(this.deleted)return;this.renderHover(e);const n=this.find(e);if(n==null)return;const[r,o]=n,{draw:a}=this.internal,{strokeDash:i,strokeWidth:l}=this.state,h=s.C.XY.scale(s.jt.DECIMAL).scale(e.region),u=h.pos(r.position),d=h.pos(o.position),f=new s.a$1(Math.abs(r.value.x-o.value.x)),p=Math.abs(r.value.y-o.value.y),S=p/f.seconds;a.line({start:s.Q.construct(u.x,u.y),end:s.Q.construct(u.x,d.y),stroke:this.verticalLineColor,lineDash:i,lineWidth:l}),a.textContainer({text:[`${p.toFixed(2)} ${r.units??""}`],direction:"x",position:s.Q.construct(u.x,(u.y+d.y)/2),level:"small"}),a.line({start:s.Q.construct(u.x,d.y),end:s.Q.construct(d.x,d.y),stroke:this.horizontalLineColor,lineDash:i,lineWidth:l}),a.textContainer({text:[f.truncate(s.a$1.MILLISECOND).toString()],direction:"x",position:s.Q.construct((u.x+d.x)/2,d.y),level:"small"}),a.line({start:s.Q.construct(u.x,u.y),end:s.Q.construct(d.x,d.y),stroke:this.obliqueLineColor,lineDash:i,lineWidth:l}),a.textContainer({text:[`${S.toFixed(2)} ${r.units??""} / S`],direction:"x",position:s.Q.construct((u.x+d.x)/2,(u.y+d.y)/2),level:"small"}),a.circle({fill:s.kr.setAlpha(r.color,.5),radius:8,position:u}),a.circle({fill:s.kr.setAlpha(r.color,.8),radius:5,position:u}),a.circle({fill:s.kr.WHITE,radius:2,position:u}),a.circle({fill:s.kr.setAlpha(o.color,.5),radius:8,position:d}),a.circle({fill:s.kr.setAlpha(o.color,.8),radius:5,position:d}),a.circle({fill:s.kr.WHITE,radius:2,position:d})}}const Lr={[Ze.TYPE]:Ze},Ea=Object.freeze(Object.defineProperty({__proto__:null,Measure:Ze,REGISTRY:Lr,measureStateZ:un},Symbol.toStringTag,{value:"Module"})),Dr=g.z.object({container:s.jt.box,viewport:s.jt.box,hold:g.z.boolean().optional().default(!1),grid:g.z.record(g.z.string(),vr),visible:g.z.boolean().optional().default(!0),clearOverScan:s.Q.crudeZ.optional().default(s.Q.ZERO)}),ka=(t,e)=>{const n=s.jt.width(t)*Math.sqrt(s.jt.height(t)),r=s.jt.width(e)*Math.sqrt(s.jt.height(e));return n/r},Ra=["upper2d","lower2d","gl"],Pa=["upper2d"];class It extends c.Composite{static TYPE="LinePlot";schema=Dr;afterUpdate(e){this.internal.instrumentation=c.useInstrumentation(e,"lineplot"),this.internal.handleError=c.useErrorHandler(e),this.internal.renderCtx=c.Context.use(e),pt(e,n=>{this.state.visible&&this.requestRender("low",n)}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender("high","layout")}afterDelete(e){this.internal.renderCtx=c.Context.use(e),this.requestRender("high","layout")}findByXDecimal(e){const n={...this.state,plot:this.calculatePlot(),exposure:this.exposure};return this.axes.flatMap(r=>r.findByXDecimal(n,e)).flat()}findByXValue(e){const n={...this.state,plot:this.calculatePlot(),exposure:this.exposure};return this.axes.flatMap(r=>r.findByXValue(n,e)).flat()}get axes(){return this.childrenOfType(ut.TYPE)}get tooltips(){return this.childrenOfType(Ie.TYPE)}get measures(){return this.childrenOfType(Ze.TYPE)}get bounds(){return this.childrenOfType(tt.TYPE)}get exposure(){return ka(this.state.viewport,this.state.container)}renderAxes(e,n){const r={...this.state,plot:e,canvases:n,exposure:this.exposure};this.axes.forEach(o=>o.render(r))}renderTooltips(e,n){const r={findByXDecimal:this.findByXDecimal.bind(this),region:e,canvases:n};this.tooltips.forEach(o=>o.render(r))}renderBounds(){this.bounds.forEach(e=>e.render({getBounds:()=>{const n={};return this.axes.forEach(r=>{const o=r.state.axisKey??r.key;n[o]=r.bounds(this.state.hold),r.yAxes.forEach(a=>{const i=a.state.axisKey??a.key;n[i]=a.bounds(this.state.hold)})}),n}}))}renderMeasures(e){const n={findByXDecimal:this.findByXDecimal.bind(this),findByXValue:this.findByXValue.bind(this),region:e};this.measures.forEach(r=>r.render(n))}calculatePlot(){return sa(this.state.grid,this.state.container)}render(e){const{instrumentation:n,renderCtx:r,handleError:o}=this.internal;if(this.deleted){n.L.debug("deleted, skipping render",{key:this.key});return}if(!this.state.visible)return n.L.debug("not visible, skipping render",{key:this.key}),({canvases:d})=>r.erase(this.state.container,this.state.clearOverScan,...d);const a=this.calculatePlot();n.L.debug("rendering",{key:this.key,viewport:this.state.viewport,container:this.state.container,grid:this.state.grid,plot:a,canvases:e});const i=s.Q.construct(this.state.clearOverScan),l=r.scissor(this.state.container,i,e.filter(d=>d!=="gl")),h=r.scissor(a,s.Q.ZERO,e.filter(d=>d==="gl"));try{this.renderAxes(a,e),this.renderTooltips(a,e),this.renderMeasures(a),this.renderBounds()}catch(d){o(d,"failed to render line plot")}finally{l(),h()}n.L.debug("rendered",{key:this.key});const u=s.jt.copy(this.state.container);return({canvases:d})=>r.erase(u,this.state.clearOverScan,...d)}requestRender(e,n){const{renderCtx:r}=this.internal;let o=Ra;n==="tool"&&(o=Pa),r.loop.set({key:`${this.type}-${this.key}`,render:()=>this.render(o),priority:e,canvases:o})}}const La={[It.TYPE]:It,[ut.TYPE]:ut,[lt.TYPE]:lt,[tt.TYPE]:tt},Mr=g.z.object({region:s.jt.box,wheelPos:g.z.number(),scrolling:g.z.boolean(),empty:g.z.boolean(),visible:g.z.boolean(),telem:c.seriesSourceSpecZ.optional().default(c.noopSeriesSourceSpec),font:c.levelZ.optional().default("p"),color:s.kr.colorZ.optional().default(s.kr.ZERO),overshoot:s.Q.xy.optional().default({x:0,y:0})}),Da=.98,Pe="lower2d",Ma={offset:0n,offsetRef:0n,scrollRef:0};class _e extends c.Leaf{static TYPE="log";static z=Mr;schema=_e.z;values=new s.Oe([]);scrollState=Ma;afterUpdate(e){const{internal:n}=this;n.render=c.Context.use(e),n.theme=c.use(e),s.kr.isZero(this.state.color)?this.internal.textColor=n.theme.colors.gray.l11:n.textColor=this.state.color,n.telem=c.useSource(e,this.state.telem,n.telem);const{scrolling:r,wheelPos:o}=this.state;if(this.state.scrolling&&!this.prevState.scrolling){const h=this.values.alignmentBounds.upper-1n;this.scrollState={offset:h,offsetRef:h,scrollRef:this.state.wheelPos}}else if(r){const{scrollState:h,values:u}=this,d=Math.ceil((o-this.scrollState.scrollRef)/this.lineHeight);h.offset=this.values.traverseAlignment(h.offsetRef,-BigInt(d)),h.offset<u.alignmentBounds.lower+BigInt(this.visibleLineCount)&&(h.offset=u.alignmentBounds.lower,this.setState(f=>({...f,wheelPos:this.prevState.wheelPos}))),h.offset>=u.alignmentBounds.upper&&this.setState(f=>({...f,scrolling:!1}))}const[i,l]=this.internal.telem.value();this.values=l,this.checkEmpty(),n.stopListeningTelem?.(),n.stopListeningTelem=n.telem.onChange(()=>{const[h,u]=this.internal.telem.value();this.checkEmpty(),this.values=u,this.requestRender()}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender()}checkEmpty(){const e=this.values.length===0;e!==this.state.empty&&this.setState(n=>({...n,empty:e}))}afterDelete(){const{telem:e,render:n}=this.internal;e.cleanup?.(),n.erase(s.jt.construct(this.state.region),s.Q.ZERO,Pe)}requestRender(){const{render:e}=this.internal;e.loop.set({key:`${this.type}-${this.key}`,render:()=>this.render(),priority:"high",canvases:[Pe]})}get lineHeight(){return this.internal.theme.typography[this.state.font].size*this.internal.theme.sizes.base}get totalHeight(){return Math.ceil(this.values.length*this.lineHeight)}get visibleLineCount(){return Math.min(Math.floor((s.jt.height(this.state.region)-12)/this.lineHeight),this.values.length)}render(){const{render:e}=this.internal,n=this.state.region;if(s.jt.areaIsZero(n))return;if(!this.state.visible)return()=>e.erase(n,s.Q.ZERO,Pe);let r;if(!this.state.scrolling)r=this.values.subIterator(this.values.length-this.visibleLineCount,this.values.length);else{const u=this.values.traverseAlignment(this.scrollState.offset,-BigInt(this.visibleLineCount));r=this.values.subAlignmentSpanIterator(u,this.visibleLineCount)}const o=this.state.region,a=e[Pe],i=new ce(a,this.internal.theme),l=e.scissor(o,s.Q.ZERO,[Pe]);this.renderElements(i,r),this.renderScrollbar(i),l();const h=s.jt.copy(this.state.region);return({canvases:u})=>e.erase(h,this.state.overshoot,...u)}renderScrollbar(e){const n=this.state.region,r=s.jt.height(n)/this.totalHeight*s.jt.height(n);if(r>=s.jt.height(n)*Da)return;let o=s.jt.bottom(n)-r;this.state.scrolling&&(o-=Number(this.values.distance(this.values.alignmentBounds.upper,this.scrollState.offset))/this.values.length*s.jt.height(n)),o<0&&(o=s.jt.top(n)),e.container({region:s.jt.construct({x:s.jt.right(n)-6,y:o},{width:6,height:r}),bordered:!1,backgroundColor:a=>a.colors.gray.l6})}renderElements(e,n){const r=this.state.region;let o=0;for(const a of n){const i=this.values.dataType.equals(s.n.JSON)?JSON.stringify(a):a.toString();e.text({text:i,level:this.state.font,shade:11,position:s.Q.translate(s.jt.topLeft(r),{x:6,y:o*this.lineHeight+6}),code:!0}),o++}}}const Aa={[_e.TYPE]:_e},Oa="relationships",Na="resources",Ia={channel:c.hI.RELATIONSHIP_SET_CHANNEL_NAME,schema:c.hI.relationshipZ,onChange:({store:t,changed:e})=>t.relationships.set(c.hI.relationshipToString(e),e)},Za={channel:c.hI.RELATIONSHIP_DELETE_CHANNEL_NAME,schema:c.hI.relationshipZ,onChange:({store:t,changed:e})=>{t.relationships.delete(c.hI.relationshipToString(e))}},_a={equal:(t,e)=>c.hI.idsEqual(t.from,e.from)&&c.hI.idsEqual(t.to,e.to)&&t.type===e.type,listeners:[Ia,Za]},Ya={channel:c.hI.RESOURCE_SET_CHANNEL_NAME,schema:c.hI.resourceZ,onChange:async({store:t,changed:e})=>{t.resources.set(e.key,n=>n==null?e:{...n,...e})}},ja={channel:c.hI.RESOURCE_DELETE_CHANNEL_NAME,schema:c.hI.idZ,onChange:({store:t,changed:e})=>t.resources.delete(e.key)},za={equal:(t,e)=>c.T.equal(t,e),listeners:[Ya,ja]},Ua="ranges",Ba={channel:c.zI.SET_CHANNEL_NAME,schema:c.zI.payloadZ,onChange:async({store:t,changed:e,client:n})=>{const r=n.ranges.sugarOne(e),o=t.ranges.get(e.key);let a;o?.labels==null&&(a=await r.retrieveLabels());let i=null;o?.parent==null&&(i=await r.retrieveParent()),t.ranges.set(e.key,l=>n.ranges.sugarOne({...r.payload,labels:l?.labels??a,parent:l?.parent??i}))}},$a={channel:c.zI.DELETE_CHANNEL_NAME,schema:c.zI.keyZ,onChange:({store:t,changed:e})=>t.ranges.delete(e)},Fa={equal:(t,e)=>c.T.equal(t.payload,e.payload),listeners:[Ba,$a]},Ha=g.z.object({region:s.jt.box,clearOverScan:s.Q.crudeZ.optional().default(0),visible:g.z.boolean().optional().default(!0),autoRenderInterval:g.z.number().optional().default(1e3)}),Fn=["upper2d","lower2d"];class Te extends c.Composite{static TYPE="Table";static stateZ=Ha;schema=Te.stateZ;afterUpdate(e){const{internal:n}=this;n.renderCtx=c.Context.use(e),n.handleError=c.useErrorHandler(e),n.autoRenderInterval??=setInterval(()=>this.state.visible&&this.requestRender("low"),this.state.autoRenderInterval),pt(e,()=>{this.state.visible&&this.requestRender("low")}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender("high")}afterDelete(){this.internal.autoRenderInterval!=null&&clearInterval(this.internal.autoRenderInterval),this.requestRender("high")}render(){if(this.deleted)return;const e=s.jt.copy(this.state.region);if(!this.state.visible)return()=>this.internal.renderCtx.erase(e,this.state.clearOverScan);const{renderCtx:n,handleError:r}=this.internal,o=s.C.XY.translate(s.jt.topLeft(this.state.region)),a=n.scissor(this.state.region,s.Q.construct(this.state.clearOverScan),Fn);try{for(const i of this.children)i.render({viewportScale:o})}catch(i){r(i,"Failed to render table")}finally{a()}return()=>this.internal.renderCtx.erase(e,this.state.clearOverScan)}requestRender(e){const{renderCtx:n}=this.internal;n.loop.set({key:`${Te.TYPE}-${this.key}`,render:this.render.bind(this),priority:e,canvases:Fn})}}const qa={[Te.TYPE]:Te},Ar=g.z.object({authority:s.Ar.authorityZ.optional(),valid:g.z.boolean().optional()}).default({authority:void 0,valid:!1}),Or=g.z.object({triggered:g.z.boolean(),status:s.Vr.statusZ(Ar),sink:c.booleanSinkSpecZ.optional().default(c.noopBooleanSinkSpec),source:c.statusSourceSpecZ.optional().default(c.noopStatusSourceSpec)});class Zt extends c.Leaf{static TYPE="Chip";schema=Or;afterUpdate(e){const{internal:n}=this,{sink:r,source:o}=this.state;n.source=c.useSource(e,o,n.source),n.sink=c.useSink(e,r,n.sink),this.state.triggered&&!this.prevState.triggered&&n.sink.set(this.state.status.details?.authority!==s.Ar.ABSOLUTE_AUTHORITY),this.updateEnabledState(),n.stopListening?.(),n.stopListening=n.source.onChange(()=>this.updateEnabledState())}updateEnabledState(){const e=this.internal.source.value();c.T.equal(e,this.state.status)||this.setState(n=>({...n,status:e,triggered:!1}))}afterDelete(){this.internal.stopListening(),this.internal.source.cleanup?.(),this.internal.sink.cleanup?.()}render(){}}const Nr=g.z.object({}),Hn="control-state-provider",Ir=c.kI.stateZ.extend({subjectColor:s.kr.colorZ});class Ye extends c.Composite{static TYPE="StateProvider";schema=Nr;colors=new Map;tracker;disconnectTrackerChange;obs=new c.a.Observer;static use(e){return e.get(Hn)}afterUpdate(e){const{internal:n}=this;n.instrumentation=c.useInstrumentation(e,"control-state");const r=c.use(e);n.palette=r.colors.visualization.palettes.default,n.defaultColor=r.colors.gray.l8;const o=c.use$1(e);if(n.client!=null&&o===n.client)return;n.client=o,e.set(Hn,this),c.useErrorHandler(e)(async()=>{await this.maybeCloseTracker(),n.client!=null&&(this.internal.instrumentation.L.debug("starting state tracker"),await this.openTracker(n.client))},"failed to open control state tracker")}async maybeCloseTracker(){this.tracker!=null&&(this.internal.instrumentation.L.debug("stopping state tracker"),this.disconnectTrackerChange?.(),await this.tracker.close(),this.tracker=void 0)}afterDelete(e){c.useErrorHandler(e)(async()=>{await this.maybeCloseTracker()},"failed to close control state tracker")}onChange(e){return this.obs.onChange(e)}get(e){return Array.isArray(e)?s.c.unique(e).map(n=>this.getOne(n)).filter(n=>n!=null):this.getOne(e)}getOne(e){if(this.tracker==null)return;const n=this.tracker.states.get(e);if(n!=null)return{...n,subjectColor:this.colors.get(n.subject.key)??this.internal.defaultColor}}async openTracker(e){const{internal:n}=this,{instrumentation:r}=n;try{this.tracker=await e.control.openStateTracker()}catch{r.L.error("failed to open state tracker");return}this.disconnectTrackerChange?.(),this.disconnectTrackerChange=this.tracker.onChange(o=>{if(r.L.debug("transfer",{transfers:o.map(a=>c.kI.transferString(a))}),this.tracker==null)throw new c.Bt("tracker is null inside it's own onChange callback!");this.updateColors(this.tracker),this.obs.notify(o)})}updateColors(e){const n=e.subjects(),r=n.map(i=>i.key),o=Array.from(this.colors.values());this.colors.forEach((i,l)=>!r.includes(l)&&this.colors.delete(l));const{palette:a}=this.internal;n.forEach(i=>{if(this.colors.has(i.key))return;const l=a.find(h=>!o.includes(h))??a[0];this.colors.set(i.key,l),o.push(l)})}}const Zr=["acquired","released","overridden","failed"],_r=g.z.enum(Zr),Yr=g.z.object({name:g.z.string(),authority:g.z.number().default(0),acquireTrigger:g.z.number(),status:_r.optional(),needsControlOf:c.vI.keyZ.array().optional().default([])});class _t extends c.Composite{static TYPE="Controller";schema=Yr;registry=new Map;writer;afterUpdate(e){const{internal:n}=this;n.instrumentation=c.useInstrumentation(e),n.addStatus=c.useAdder(e),n.runAsync=c.useErrorHandler(e),(n.prevTrigger==null||Math.abs(this.state.acquireTrigger-n.prevTrigger)>1)&&(n.prevTrigger=this.state.acquireTrigger);const r=c.use$1(e),o=Ye.use(e);n.stateProv=o,n.telemCtx=c.useChildContext(e,this,n.telemCtx),n.client=r,n.runAsync(async()=>{n.client==null&&await this.release(),this.state.acquireTrigger>n.prevTrigger?await this.acquire():this.state.acquireTrigger<n.prevTrigger&&await this.release()},"failed to acquire control")}afterDelete(){const{internal:e}=this;e.runAsync(async()=>await this.release(),"failed to release control")}async updateNeedsControlOf(){const{client:e}=this.internal;if(e==null)return;const n=new Set([]);for(const o of this.registry.keys())(await o.needsControlOf(e)).forEach(i=>i!==0&&n.add(i));const r=Array.from(n);s.k.unorderedPrimitiveArrays(this.state.needsControlOf,r)!==s.k.EQUAL&&this.setState(o=>({...o,needsControlOf:r}))}async acquire(){this.internal.prevTrigger=this.state.acquireTrigger;const{client:e,addStatus:n}=this.internal;if(e==null)return n({message:`Cannot acquire control on ${this.state.name} because no cluster has been connected.`,variant:"warning"});try{await this.updateNeedsControlOf();const r=this.state.needsControlOf;if(r.length===0)return n({message:`Cannot acquire control on ${this.state.name} because there are no channels to control.`,variant:"warning"});const o=c.y.now().sub(s.a$1.milliseconds(1));this.writer=await e.openWriter({start:o,channels:r,controlSubject:{key:this.key,name:this.state.name},authorities:this.state.authority,enableAutoCommit:!0}),this.setState(a=>({...a,status:"acquired"}))}catch(r){if(this.setState(o=>({...o,status:"failed"})),!(r instanceof Error))throw r;n({variant:"error",message:`${this.state.name} failed to acquire control`,description:r.message})}}async release(){this.internal.prevTrigger=this.state.acquireTrigger;try{await this.writer?.close()}catch(e){this.internal.addStatus({message:`${this.state.name} failed to release control: ${e.message}`,variant:"error"})}finally{this.setState(e=>({...e,status:"released"})),this.writer=void 0}}async set(e){this.writer==null&&await this.acquire(),await this.writer?.write(e)}async setAuthority(e,n){this.writer==null&&await this.acquire(),await this.writer?.setAuthority(Object.fromEntries(e.map(r=>[r,n])))}async releaseAuthority(e){this.writer==null&&await this.acquire(),await this.writer?.setAuthority(Object.fromEntries(e.map(n=>[n,this.state.authority])))}deleteTelem(e){this.registry.delete(e),this.updateNeedsControlOf()}create(e){const{internal:n}=this,o=(()=>{switch(e.type){case ht.TYPE:{const a=new ht(this,n.runAsync,e.props);return this.registry.set(a,null),a}case ft.TYPE:{const a=new ft(this,this.internal.stateProv,e.props);return this.registry.set(a,null),a}case dt.TYPE:return new dt(this,n.runAsync,e.props);default:return null}})();return o!=null&&this.updateNeedsControlOf(),o}}const jr=g.z.object({channel:g.z.number()});class ht extends c.AbstractSink{static TYPE="controlled-numeric-telem-sink";controller;runAsync;schema=jr;constructor(e,n,r){super(r),this.controller=e,this.runAsync=n}invalidate(){}cleanup(){this.controller.deleteTelem(this)}async needsControlOf(e){if(this.props.channel===0)return[];const n=await e.channels.retrieve(this.props.channel),r=[n.key];return n.index!==0&&r.push(n.index),r}set(...e){this.runAsync(async()=>{const{client:n}=this.controller.internal;if(n==null)throw new c.iI("No cluster connected");if(this.props.channel===0)throw new c.H("No command channel specified for actuator");const r=await n.channels.retrieve(this.props.channel),o={[r.key]:e};if(r.index!==0){const a=await n.channels.retrieve(r.index),i=c.y.now();o[a.key]=Array.from({length:e.length},(l,h)=>i.add(s.a$1.nanoseconds(h)))}await this.controller.set(o)},"Failed to command channel")}}const Qa=t=>({type:ht.TYPE,props:t,variant:"sink",valueType:"number"}),zr=g.z.object({authority:g.z.number().default(c.kI.ABSOLUTE_AUTHORITY),channel:g.z.number()});class dt extends c.AbstractSink{static TYPE="acquire-channel-control";controller;runAsync;schema=zr;constructor(e,n,r){super(r),this.controller=e,this.runAsync=n}cleanup(){this.controller.deleteTelem(this)}async needsControlOf(e){const n=await e.channels.retrieve(this.props.channel),r=[n.key];return n.index!==0&&r.push(n.index),r}set(e){this.runAsync(async()=>{const{controller:n}=this,{client:r}=n.internal;if(r==null)return;const o=await r.channels.retrieve(this.props.channel),a=[o.key];o.index!==0&&a.push(o.index),e?await this.controller.setAuthority(a,this.props.authority):await this.controller.releaseAuthority(a)},"failed to set channel authority")}}const Wa=t=>({type:dt.TYPE,props:t,variant:"sink",valueType:"boolean"}),Ur=g.z.object({channel:g.z.number()}),Ga=g.z.object({valid:g.z.boolean(),color:s.kr.colorZ.optional(),authority:g.z.number()});class ft extends c.AbstractSource{static TYPE="controlled-status-source";prov;valid=!1;stopListening;controller;schema=Ur;constructor(e,n,r){super(r),this.prov=n,this.controller=e}async needsControlOf(){return[]}maybeRevalidate(){if(this.valid)return;const{channel:e}=this.props;this.stopListening?.();const n=s.Ar.filterTransfersByChannelKey(e);this.stopListening=this.prov.onChange(r=>{n(r).length!==0&&this.notify?.()}),this.valid=!0}value(){this.maybeRevalidate();const e=c.y.now();if(this.props.channel===0)return{name:this.controller.key,key:this.controller.key,variant:"disabled",message:"No Channel",time:e,details:{valid:!1,authority:0}};const n=this.prov.get(this.props.channel);return n==null?{name:this.controller.key,key:this.controller.key,variant:"disabled",message:"Uncontrolled",time:e,details:{valid:!0,color:void 0,authority:0}}:{name:this.controller.key,key:n.subject.key,variant:n.subject.key===this.controller.key?"success":"error",message:`Controlled by ${n.subject.name}`,time:e,details:{valid:!0,color:n.subjectColor,authority:n.authority}}}cleanup(){this.controller.deleteTelem(this),this.stopListening?.()}}const Xa=t=>({type:ft.TYPE,props:t,variant:"source",valueType:"status"}),Br=g.z.object({color:s.kr.colorZ.optional()}).default({color:void 0}),$r=g.z.object({statusSource:c.statusSourceSpecZ.optional().default(c.noopStatusSourceSpec),colorSource:c.colorSourceSpecZ.optional().default(c.noopColorSourceSpec),status:s.Vr.statusZ(Br),color:s.kr.colorZ.optional()});class Yt extends c.Leaf{static TYPE="Indicator";schema=$r;stopListeningStatus;stopListeningColor;afterUpdate(e){const{internal:n}=this,{statusSource:r,colorSource:o}=this.state;n.statusSource=c.useSource(e,r,n.statusSource),n.colorSource=c.useSource(e,o,n.colorSource),this.updateState(),this.stopListeningStatus?.(),this.stopListeningColor?.(),this.stopListeningStatus=n.statusSource.onChange(this.updateState.bind(this)),this.stopListeningColor=n.colorSource.onChange(this.updateState.bind(this))}afterDelete(){this.internal.statusSource.cleanup?.(),this.internal.colorSource.cleanup?.()}render(){}updateState(){const e=this.internal.colorSource.value(),n=this.internal.statusSource.value();s.kr.equals(e,this.state.color)&&n.message===this.state.status.message||this.setState(r=>({...r,color:e,status:n}))}}const Fr=g.z.object({needsControlOf:c.vI.keyZ.array(),states:Ir.array()});class jt extends c.Leaf{static TYPE="Legend";schema=Fr;afterUpdate(e){const{internal:n}=this;n.stateProv=Ye.use(e);const r=this.state.needsControlOf;n.disconnectStateProv?.();const o=s.Ar.filterTransfersByChannelKey(...r),a=n.stateProv.get(r);this.setState(i=>({...i,states:a})),n.disconnectStateProv=n.stateProv.onChange(i=>{if(o(i).length===0)return;const l=n.stateProv.get(r);this.setState(h=>({...h,states:l}))})}afterDelete(){const{internal:e}=this;e.disconnectStateProv?.()}render(){}}const Va={[_t.TYPE]:_t,[Ye.TYPE]:Ye,[Yt.TYPE]:Yt,[Zt.TYPE]:Zt,[jt.TYPE]:jt},Hr=["fire","momentary","pulse"],Ka=g.z.enum(Hr),qr=g.z.object({trigger:g.z.number(),sink:c.booleanSinkSpecZ.optional().default(c.noopBooleanSinkSpec),mode:Ka.optional().default("fire")}),Qr=2,Wr=1;class zt extends c.Leaf{static TYPE="Button";schema=qr;afterUpdate(e){const{sink:n,mode:r,trigger:o}=this.state,{internal:a}=this;a.prevTrigger??=o,a.sink=c.useSink(e,n,a.sink);const i=a.prevTrigger;a.prevTrigger=o;const l=o===i+Qr;o===i+Wr?r=="fire"?this.internal.sink.set(!0):r=="momentary"&&this.internal.sink.set(!1):l&&(r=="momentary"?this.internal.sink.set(!0):r=="pulse"&&this.internal.sink.set(!0,!1))}afterDelete(){this.internal.sink.cleanup?.()}}const Ja={[zt.TYPE]:zt};g.z.enum(["small","medium","large","huge"]);const el=g.z.object({box:s.jt.box,telem:c.stringSourceSpecZ.optional().default(c.noopStringSourceSpec),backgroundTelem:c.colorSourceSpecZ.optional().default(c.noopColorSourceSpec),level:c.levelZ.optional().default("p"),color:s.kr.colorZ.optional().default(s.kr.ZERO),precision:g.z.number().optional().default(2),minWidth:g.z.number().optional().default(60),width:g.z.number().optional(),notation:s.zr.notationZ.optional().default("standard"),location:s.K.xy.optional().default({x:"left",y:"center"}),units:g.z.string().optional().default("RPM"),bounds:s.H.bounds.optional().default(s.H.construct(0,100)),barWidth:g.z.number().optional().default(12)}),tl=["upper2d","lower2d"];class je extends c.Leaf{static TYPE="gauge";static z=el;schema=je.z;afterUpdate(e){const{internal:n}=this;n.render=c.Context.use(e),n.theme=c.use(e),s.kr.isZero(this.state.color)?n.textColor=n.theme.colors.gray.l8:n.textColor=this.state.color,n.telem=c.useSource(e,this.state.telem,n.telem),n.stopListening?.(),n.stopListening=n.telem.onChange(()=>this.requestRender()),n.backgroundTelem=c.useSource(e,this.state.backgroundTelem,n.backgroundTelem),n.stopListeningBackground?.(),n.stopListeningBackground=n.backgroundTelem.onChange(()=>this.requestRender()),n.requestRender=qt(e),n.strokeColor=s.kr.isZero(this.state.color)?n.theme.colors.visualization.palettes.default[0]:this.state.color;const r=this.state.box,o=s.jt.width(r)/2,{barWidth:a}=this.state;n.outerRadius=o-8,n.innerRadius=n.outerRadius-a;const i=Math.PI/2;n.gaugeStartAngle=3*Math.PI/4,n.gaugeAngleRange=2*Math.PI-i,n.gaugeEndAngle=n.gaugeStartAngle+n.gaugeAngleRange,n.labelRadius=n.outerRadius+12,n.labelInwardShift=12,n.centerPos=s.jt.center(r);const l=n.centerPos.y+n.labelRadius*Math.sin(n.gaugeStartAngle)+6;n.minLabelPos=s.Q.construct(n.centerPos.x+n.labelRadius*Math.cos(n.gaugeStartAngle)+n.labelInwardShift,l),n.maxLabelPos=s.Q.construct(n.centerPos.x+n.labelRadius*Math.cos(n.gaugeEndAngle)-n.labelInwardShift,l),n.valueTextPos=s.Q.translateY(n.centerPos,-6),n.unitsTextPos=s.Q.translateY(n.centerPos,s.jt.height(r)/9),n.textLevel=this.state.level,n.labelLevel=c.downLevel(c.downLevel(n.textLevel)),this.requestRender()}afterDelete(){const{internal:e}=this;e.stopListening?.(),e.stopListeningBackground?.(),e.telem.cleanup?.(),e.backgroundTelem.cleanup?.(),e.requestRender==null?e.render.erase(s.jt.construct(this.state.box),s.Q.ZERO,...tl):e.requestRender("layout")}requestRender(){const{requestRender:e}=this.internal;e!=null?e("layout"):this.render({})}render({viewportScale:e=s.C.XY.IDENTITY}){const{internal:n}=this,r=n.render.upper2d.applyScale(e),o=new ce(r,n.theme),a=n.telem.value(),{lower:i,upper:l}=this.state.bounds,h=Number(a),u=s.H.clamp(this.state.bounds,h),d=l-i,f=d===0?0:(u-i)/d,p=n.gaugeStartAngle+f*n.gaugeAngleRange;o.text({text:a,position:n.valueTextPos,shade:10,level:n.textLevel,align:"middle",justify:"center",weight:450,code:!0,useAtlas:!0}),o.text({text:this.state.units,position:n.unitsTextPos,shade:8,level:c.downLevel(n.textLevel),align:"middle",justify:"center",code:!0,useAtlas:!0}),o.text({text:i.toString(),position:n.minLabelPos,shade:7,level:n.labelLevel,align:"middle",justify:"center",code:!0,useAtlas:!0}),o.text({text:l.toString(),position:n.maxLabelPos,shade:7,level:n.labelLevel,align:"middle",justify:"center",code:!0,useAtlas:!0}),o.circle({stroke:n.theme.colors.gray.l5,radius:{inner:n.innerRadius,outer:n.outerRadius},position:n.centerPos,angle:{lower:n.gaugeStartAngle,upper:n.gaugeEndAngle},lineCap:"round"}),o.circle({stroke:n.strokeColor,radius:{inner:n.innerRadius,outer:n.outerRadius},position:n.centerPos,angle:{lower:n.gaugeStartAngle,upper:p},lineCap:"round"})}}const nl={[je.TYPE]:je},Gr=g.z.object({enabled:g.z.boolean(),source:c.booleanSourceSpecZ.optional().default(c.noopBooleanSourceSpec)});class Ut extends c.Leaf{static TYPE="Light";schema=Gr;afterUpdate(e){const{internal:n}=this;this.internal.source=c.useSource(e,this.state.source,n.source),this.updateEnabledState(),n.stopListening?.(),n.stopListening=n.source.onChange(()=>this.updateEnabledState())}updateEnabledState(){const e=this.internal.source.value();e!==this.state.enabled&&this.setState(n=>({...n,enabled:e}))}afterDelete(){this.internal.stopListening?.(),this.internal.source.cleanup?.()}}const rl={[Ut.TYPE]:Ut},Xr=g.z.object({trigger:g.z.number(),command:g.z.number().optional(),value:g.z.number(),sink:c.numberSinkSpecZ.optional().default(c.noopNumericSinkSpec),source:c.numberSourceSpecZ.optional().default(c.noopNumericSourceSpec)});class Bt extends c.Leaf{static TYPE="Setpoint";schema=Xr;afterUpdate(e){const{sink:n,source:r,trigger:o,command:a}=this.state,{internal:i}=this;i.prevTrigger??=o,this.internal.source=c.useSource(e,r,this.internal.source),i.sink=c.useSink(e,n,i.sink);const l=i.prevTrigger;i.prevTrigger=o,o>l&&a!=null&&this.internal.sink.set(a),this.updateValue(),i.stopListening?.(),i.stopListening=i.source.onChange(()=>this.updateValue())}updateValue(){const e=this.internal.source.value();e===this.state.value||isNaN(e)||this.setState(n=>({...n,value:e,triggered:!1}))}afterDelete(){const{internal:e}=this;e.stopListening?.(),e.source.cleanup?.(),e.sink.cleanup?.()}}const sl={[Bt.TYPE]:Bt},Vr=g.z.object({triggered:g.z.boolean(),enabled:g.z.boolean(),sink:c.booleanSinkSpecZ.optional().default(c.noopBooleanSinkSpec),source:c.booleanSourceSpecZ.optional().default(c.noopBooleanSourceSpec)});class $t extends c.Leaf{static TYPE="Toggle";schema=Vr;afterUpdate(e){this.internal.addStatus=c.useOptionalAdder(e);const{sink:n,source:r,triggered:o,enabled:a}=this.state,{triggered:i}=this.prevState,{internal:l}=this;l.source=c.useSource(e,r,l.source),l.sink=c.useSink(e,n,l.sink),o&&!i&&l.sink.set(!a),this.updateEnabledState(),l.stopListening?.(),l.stopListening=l.source.onChange(()=>this.updateEnabledState())}updateEnabledState(){const e=this.internal.source.value();e!==this.state.enabled&&this.setState(n=>({...n,enabled:e,triggered:!1}))}afterDelete(){this.internal.stopListening?.(),this.internal.source.cleanup?.(),this.internal.sink.cleanup?.()}}const ol={[$t.TYPE]:$t},Et={useAtlas:!0},il=g.z.object({box:s.jt.box,telem:c.stringSourceSpecZ.optional().default(c.noopStringSourceSpec),backgroundTelem:c.colorSourceSpecZ.optional().default(c.noopColorSourceSpec),level:c.levelZ.optional().default("p"),color:s.kr.colorZ.optional().default(s.kr.ZERO),precision:g.z.number().optional().default(2),stalenessTimeout:g.z.number().optional().default(5),stalenessColor:s.kr.colorZ.optional().default(s.kr.ZERO),minWidth:g.z.number().optional().default(60),width:g.z.number().optional(),notation:s.zr.notationZ.optional().default("standard"),location:s.K.xy.optional().default({x:"left",y:"center"}),useWidthForBackground:g.z.boolean().optional().default(!1),valueBackgroundShift:s.Q.xy.optional().default(s.Q.ZERO),valueBackgroundOverScan:s.Q.xy.optional().default(s.Q.ZERO)}),al=["upper2d","lower2d"];class we extends c.Leaf{static TYPE="value";static z=il;schema=we.z;afterUpdate(e){const{internal:n}=this;n.renderCtx=c.Context.use(e),n.theme=c.use(e),n.telem=c.useSource(e,this.state.telem,n.telem),n.stopListening?.(),n.stopListening=n.telem.onChange(()=>{n.lastReceived=performance.now(),this.requestRender()}),n.fontString=Le.fontString(n.theme,{level:this.state.level,code:!0}),n.backgroundTelem=c.useSource(e,this.state.backgroundTelem,n.backgroundTelem),n.stopListeningBackground?.(),n.stopListeningBackground=n.backgroundTelem.onChange(()=>this.requestRender()),n.requestRender=qt(e),this.requestRender()}afterDelete(){const{internal:e}=this;e.stopListening?.(),e.stopListeningBackground?.(),e.telem.cleanup?.(),e.backgroundTelem.cleanup?.(),e.requestRender==null?e.renderCtx.erase(s.jt.construct(this.state.box),s.Q.ZERO,...al):e.requestRender("layout")}requestRender(){const{requestRender:e}=this.internal;e!=null?e("layout"):this.render({})}get fontHeight(){const{theme:e}=this.internal;return e.typography[this.state.level].size*e.sizes.base}maybeUpdateWidth(e){const{theme:n}=this.internal,r=e+n.sizes.base+this.fontHeight;this.state.width==null||this.state.width+this.fontHeight*.5<r||this.state.minWidth>r&&this.state.width!==this.state.minWidth?this.setState(o=>({...o,width:Math.max(r,o.minWidth)})):this.state.width-this.fontHeight>r&&this.setState(o=>({...o,width:Math.max(r,o.minWidth)}))}getTextColor(){const{theme:e}=this.internal;return performance.now()-this.internal.lastReceived>this.state.stalenessTimeout*1e3?s.kr.isZero(this.state.stalenessColor)?e.colors.warning.m1:this.state.stalenessColor:s.kr.isZero(this.state.color)?s.kr.pickByContrast(e.colors.border,e.colors.gray.l11,e.colors.gray.l0):s.kr.pickByContrast(e.colors.border,e.colors.gray.l11,this.state.color)}render({viewportScale:e=s.C.XY.IDENTITY}){const{renderCtx:n,telem:r,backgroundTelem:o,fontString:a,requestRender:i}=this.internal,{location:l,box:h}=this.state;if(s.jt.areaIsZero(h))return;const u=s.jt.topLeft(h),d=s.jt.width(h),f=s.jt.height(h),p=n.lower2d.applyScale(e);let S=r.value();p.font=a;const x=this.fontHeight,b=S[0]=="-";b&&(S=S.slice(1));const{theme:v}=this.internal,E=p.textDimensions(S,Et),L=E.width+v.sizes.base,k=E.height;i==null&&n.erase(s.jt.construct(this.prevState.box)),this.maybeUpdateWidth(L);const M={...s.Q.ZERO};l.x==="left"?M.x=6+x*.75:l.x==="center"&&(M.x=d/2-L/2),l.y==="center"&&(M.y=f/2+k/2);const A=s.Q.translate(u,M);if(this.state.backgroundTelem.type!=c.noopColorSourceSpec.type){const O=o.value();if(!s.kr.isZero(O)){p.fillStyle=s.kr.hex(O);const Ce=this.state.useWidthForBackground?this.state.width??this.state.minWidth:s.jt.width(h);p.fillRect(...s.Q.couple(s.Q.translate(u,this.state.valueBackgroundShift)),Ce+this.state.valueBackgroundOverScan.x,f+this.state.valueBackgroundOverScan.y)}}const T=this.getTextColor();p.fillStyle=s.kr.hex(T),b&&p.fillText("-",...s.Q.couple(s.Q.translateX(A,-x*.6)),void 0,Et),p.fillText(S,...s.Q.couple(A),void 0,Et)}}const Kr={[we.TYPE]:we},ll=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Kr,Value:we},Symbol.toStringTag,{value:"Module"})),Jr=g.object({}),Ft="flux-context",hn="flux.Provider",cl=(t,e)=>t.get(Ft).scopedStore(e),ul=t=>{const e=(n,r)=>{if("client"in t)return t.client;const o=c.use$1(n);return r!=null&&r?.client?.key===o?.key?r:new tr({client:o,storeConfig:t.storeConfig,handleError:c.useErrorHandler(n),handleAsyncError:c.useAsyncErrorHandler(n)})};return class es extends c.Composite{static TYPE=hn;static stateZ=Jr;schema=es.stateZ;afterUpdate(r){const{internal:o}=this;o.store=e(r,o.store),r.wasSetPreviously(Ft)||r.set(Ft,o.store)}}},hl=t=>({[hn]:ul(t)});exports.AcquireChannelControl=dt;exports.AuthoritySource=ft;exports.Base=le;exports.Bottom=yr;exports.BoundQuerier=tt;exports.Button=zt;exports.Canvas=et;exports.Chip=Zt;exports.Client=tr;exports.Controller=_t;exports.Diagram=Xs;exports.Diagram$1=se;exports.FLUX_STORE_CONFIG=Fa;exports.FLUX_STORE_KEY=Ua;exports.Gauge=je;exports.Indicator=Yt;exports.Legend=jt;exports.Light=Ut;exports.Line=Je;exports.LinePlot=It;exports.Log=_e;exports.MODES=Hr;exports.MOUSE_DOWN_INCREMENT=Qr;exports.MOUSE_UP_INCREMENT=Wr;exports.Measure=Ze;exports.PROVIDER_TYPE=hn;exports.Provider=ct;exports.REGISTRY=La;exports.REGISTRY$1=nl;exports.REGISTRY$10=Lr;exports.REGISTRY$11=Hs;exports.REGISTRY$12=rl;exports.REGISTRY$13=Kn;exports.REGISTRY$14=Va;exports.REGISTRY$15=Vn;exports.REGISTRY$16=Ja;exports.REGISTRY$2=qa;exports.REGISTRY$3=Aa;exports.REGISTRY$4=Kr;exports.REGISTRY$5=Pr;exports.REGISTRY$6=ol;exports.REGISTRY$7=sl;exports.REGISTRY$8=kr;exports.REGISTRY$9=ya;exports.RELATIONSHIPS_FLUX_STORE_KEY=Oa;exports.RELATIONSHIP_FLUX_STORE_CONFIG=_a;exports.RESOURCES_FLUX_STORE_KEY=Na;exports.RESOURCE_FLUX_STORE_CONFIG=za;exports.Right=xr;exports.Rule=Ne;exports.STATUSES=Zr;exports.ScopedUnaryStore=Jn;exports.SetChannelValue=ht;exports.Setpoint=Bt;exports.StateProvider=Ye;exports.Table=Te;exports.Toggle=$t;exports.Tooltip=Ie;exports.Top=br;exports.Value=we;exports.XAxis=ut;exports.YAxis=lt;exports.acquireChannelControl=Wa;exports.acquireChannelControlPropsZ=zr;exports.aether=fa;exports.authoritySource=Xa;exports.authoritySourceDetailsZ=Ga;exports.authoritySourceProps=Ur;exports.axisStateZ=an;exports.boundQuerierStateZ=nr;exports.buttonStateZ=qr;exports.canvas=Gs;exports.canvasStateZ=Gt;exports.chipStateZ=Or;exports.chipStatusDetailsZ=Ar;exports.color=ye;exports.control=pt;exports.controllerStateZ=Yr;exports.coreAxisStateZ=$e;exports.createRegistry=hl;exports.createStore=er;exports.diagramStateZ=Xt;exports.external=us;exports.indicatorStateZ=$r;exports.indicatorStatusDetailsZ=Br;exports.interpolate=mt;exports.interpolateNumber=Ae;exports.interpolateRgb=Rt;exports.interpolateString=Gn;exports.legendStateZ=Fr;exports.linePlotStateZ=Dr;exports.logState=Mr;exports.measure=Ea;exports.measureStateZ=un;exports.newCanvas=Sr;exports.newTickFactory=Ot;exports.parseAutoBounds=Er;exports.partialUpdate=Vs;exports.providerStateZ=Jr;exports.providerStateZ$1=Rr;exports.regions=ne;exports.request=G;exports.ruleStateZ=ln;exports.scopeStore=Lt;exports.setChannelValue=Qa;exports.setChannelValuePropsZ=jr;exports.stateProviderStateZ=Nr;exports.stateZ=Xn;exports.stateZ$1=Gr;exports.stateZ$2=Xr;exports.statusZ=_r;exports.sugaredStateZ=Ir;exports.tickFactoryProps=on;exports.tickType=sn;exports.toggleStateZ=Vr;exports.tooltip=Ca;exports.tooltipStateZ=cn;exports.useOptionalRequestor=qt;exports.useRequestor=gt;exports.value=ll;exports.withinSizeThreshold=Tr;exports.xAxisStateZ=ba;exports.yAxisStateZ=pa;
52
+ `,Xn=g.z.object({x:c.seriesSourceSpecZ,y:c.seriesSourceSpecZ,label:g.z.string().optional(),color:s.Rr.colorZ,strokeWidth:g.z.number().default(1),downsample:g.z.number().min(1).max(50).default(1),downsampleMode:c.downsampleModeZ.default("decimate"),visible:g.z.boolean().optional().default(!0)}),Is=(t,e,n)=>t===-1||e===-1||t>=n.series.length?NaN:Number(n.series[t].at(e)),_s=s.a$1.milliseconds(2);s.Q.NAN,s.Q.NAN,s.Rr.ZERO,s.H.ZERO;const Ys=(t,e)=>e.equals(s.n.UINT8)?t.UNSIGNED_BYTE:t.FLOAT;class Tn extends c.GLProgram{translationBufferCache=new Map;constructor(e,n,r){super(e,n,r),this.translationBufferCache=new Map}bindState({strokeWidth:e,color:n}){return this.uniformColor("u_color",n),this.attrStrokeWidth(e)}bindScale(e,n){const r=s.Q.scale(e.scale,n.scale),o=s.Q.translate(s.Q.scale(n.scale,e.offset),n.offset);this.uniformXY("u_scale_aggregate",r),this.uniformXY("u_offset_aggregate",o)}draw({x:e,y:n,count:r,downsample:o,xOffset:a,yOffset:i},l,h,u){const{gl:d}=this.renderCtx;this.bindAttrBuffer("x",e.glBuffer,o,a,h),this.bindAttrBuffer("y",n.glBuffer,o,i,u),d.drawArraysInstanced(d.LINE_STRIP,0,r/o,l)}bindAttrBuffer(e,n,r,o=0,a){const{gl:i}=this.renderCtx;i.bindBuffer(i.ARRAY_BUFFER,n);const l=i.getAttribLocation(this.prog,`a_${e}`),h=Ys(i,a),u=a.density.valueOf();a.equals(s.n.UINT8)?i.vertexAttribIPointer(l,1,h,u*r,u*o):i.vertexAttribPointer(l,1,h,!1,u*r,u*o),i.enableVertexAttribArray(l)}getAndBindTranslationBuffer(e){const{gl:n}=this.renderCtx,r=`${this.renderCtx.aspect}:${e}`,o=this.translationBufferCache.get(r);if(o!=null)return n.bindBuffer(n.ARRAY_BUFFER,o.glBuffer),o;const a=n.createBuffer();if(a==null)throw new c.Bt("Failed to create buffer from WebGL context");const i=Us(this.renderCtx.aspect,e);n.bindBuffer(n.ARRAY_BUFFER,a),n.bufferData(n.ARRAY_BUFFER,i,n.DYNAMIC_DRAW);const l={glBuffer:a,jsBuffer:i};return this.translationBufferCache.set(r,l),l}attrStrokeWidth(e){const{gl:n}=this.renderCtx,{jsBuffer:r}=this.getAndBindTranslationBuffer(e),o=n.getAttribLocation(this.prog,"a_translate");return n.vertexAttribPointer(o,2,n.FLOAT,!1,0,0),n.enableVertexAttribArray(o),n.vertexAttribDivisor(o,1),r.length/2}}class Se{static CONTEXT_KEY="pluto-line-gl-program";uint8HybridProgram;float32Program;constructor(e){this.uint8HybridProgram=new Tn(e,Zs,vn),this.float32Program=new Tn(e,Ns,vn)}get gl(){return this.uint8HybridProgram.renderCtx.gl}getProgram(e){return e.equals(s.n.UINT8)?this.uint8HybridProgram:this.float32Program}static create(e,n){const r=new Se(n);return e.set(Se.CONTEXT_KEY,r),r}static use(e){const n=e.get(Se.CONTEXT_KEY);if(n==null)throw new c.Bt("GLProgram not found");return n}}class Je extends c.Leaf{static TYPE="line";schema=Xn;afterUpdate(e){const{internal:n}=this,r={onStatusChange:c.useAdder(e)};n.xTelem=c.useSource(e,this.state.x,n.xTelem,r),n.yTelem=c.useSource(e,this.state.y,n.yTelem,r),n.instrumentation=c.useInstrumentation(e,"line"),n.lineCtx=Se.use(e),n.requestRender=gt(e),n.stopListeningXTelem?.(),n.stopListeningYTelem?.(),n.stopListeningXTelem=n.xTelem.onChange(()=>n.requestRender("data")),n.stopListeningYTelem=n.yTelem.onChange(()=>n.requestRender("data")),n.requestRender("layout"),(n.xDownsampler?.props.mode!==this.state.downsampleMode||n.xDownsampler?.props.windowSize!==this.state.downsample)&&(n.xDownsampler=new c.SeriesDownsampler({mode:this.state.downsampleMode,windowSize:this.state.downsample}),n.yDownsampler=new c.SeriesDownsampler({mode:this.state.downsampleMode,windowSize:this.state.downsample}))}afterDelete(){const{internal:e}=this;e.xTelem.cleanup?.(),e.yTelem.cleanup?.(),e.requestRender("layout")}xBounds(){return this.internal.xTelem.value()[0]}yBounds(){return this.internal.yTelem.value()[0]}findByXValue(e,n){const{xTelem:r,yTelem:o}=this.internal;let[,a]=r.value();a=this.internal.xDownsampler.transform(a);let[i,l]=[-1,-1];a.series.find((v,R)=>{const L=v.binarySearch(n),E=L>=0&&L<v.length;return E&&([i,l]=[L,R]),E});const{key:h}=this,{color:u,label:d}=this.state,f={key:h,color:u,label:d,position:{x:0,y:0},value:{x:NaN,y:NaN},bounds:{lower:0,upper:0}};if(i===-1||l===-1||!this.state.visible)return f;const p=a.series[l];f.value.x=Is(l,i,a);let[,S]=o.value();S=this.internal.yDownsampler.transform(S);const x=S.series.find(v=>s.H.contains(v.alignmentBounds,p.alignment+BigInt(i)));if(x==null)return f;const b=Number(x.alignment-p.alignment);return f.value.y=Number(x.at(i-b)),f.bounds={...x.bounds},f.position={x:e.dataToDecimalScale.x.pos(f.value.x),y:e.dataToDecimalScale.y.pos(f.value.y)},f}render(e){if(this.deleted||!this.state.visible)return;const{downsample:n}=this.state,{xTelem:r,yTelem:o,lineCtx:a,xDownsampler:i,yDownsampler:l}=this.internal,{dataToDecimalScale:h,exposure:u}=e;let[[,d],[,f]]=[r.value(),o.value()];if(d=i.transform(d),f=l.transform(f),d.updateGLBuffer(a.gl),f.updateGLBuffer(a.gl),d.length===0||f.length===0)return;const p=a.getProgram(f.dataType),S=qs(d,f,u,n,this.state.downsampleMode,_s);this.internal.instrumentation.L.debug("render",()=>({key:this.key,downsample:n,scale:h.transform,props:e.region,ops:Qs(S)}));const x=p.setAsActive(),b=p.bindState(this.state),v=p.renderCtx.scaleRegion(e.region).transform;S.forEach(R=>{const L=Fs(h,R).transform;p.bindScale(L,v),p.draw(R,b,d.dataType,f.dataType)}),x()}}const js=5e3,Us=(t,e)=>$s(Bs(t),e).map((n,r)=>Math.floor(r/zs)*(1/(js*t))*n),zs=5,Bs=t=>new Float32Array([0,0,0,t,0,-t,1,0,-1,0]),$s=(t,e)=>{const n=new Float32Array(t.length*e);for(let r=0;r<e;r++)n.set(t,r*t.length);return n},Fs=(t,e)=>t.translate(t.x.dim(Number(e.x.sampleOffset)),t.y.dim(Number(e.y.sampleOffset))),Hs={[Je.TYPE]:Je},qs=(t,e,n,r,o,a)=>{if(t.series.length===0||e.series.length===0)return[];const i=[];return t.series.forEach(l=>e.series.forEach(h=>{if(!Ws(l,h,a))return;let u=0n,d=0n;l.alignment<h.alignment?u=h.alignment-l.alignment:h.alignment<l.alignment&&(d=l.alignment-h.alignment);const f=s.Ar.min(s.H.span(l.alignmentBounds)-u,s.H.span(h.alignmentBounds)-d);if(f===0n)return;let p=s.R(Math.round(n*4*Number(f)),r,51);o!=="decimate"&&(p=1);const S=Number(f/l.alignmentMultiple),x=Number(u/l.alignmentMultiple),b=Number(d/h.alignmentMultiple);i.push({x:l,y:h,xOffset:x,yOffset:b,count:S,downsample:p})})),i},Qs=t=>t.map(e=>({...e,x:e.x.digest,y:e.y.digest})),Ws=(t,e,n)=>{if(t.alignmentMultiple!==e.alignmentMultiple)return console.warn("encountered two series with different alignment multiples in draw operations",{x:t.digest,y:e.digest}),!1;const r=t.timeRange.overlapsWith(e.timeRange,n),o=s.H.overlapsWith(t.alignmentBounds,e.alignmentBounds);return r&&o},Gt=g.z.object({dpr:g.z.number(),region:s.jt.box,bootstrap:g.z.boolean().optional().default(!1),bootstrapped:g.z.boolean().optional().default(!1),glCanvas:g.z.any().optional(),upper2dCanvas:g.z.any().optional(),lower2dCanvas:g.z.any().optional(),os:s.S.osZ});class et extends c.Composite{static TYPE="Canvas";schema=Gt;renderCtx=null;afterUpdate(e){if(this.renderCtx==null){if(!this.state.bootstrap)return;const{glCanvas:n,lower2dCanvas:r,upper2dCanvas:o,os:a}=this.state;if(n==null||r==null||o==null)throw new c.Bt("[vis.worker.Canvas] - expected render context bootstrap to include all canvases");this.renderCtx=c.Context.create(e,n,r,o,a),Se.create(e,this.renderCtx),this.setState(i=>({...i,bootstrap:!1,bootstrapped:!0,glCanvas:void 0,lower2dCanvas:void 0,upper2dCanvas:void 0}))}else this.renderCtx.update(e);this.renderCtx.resize(this.state.region,this.state.dpr)}}const Vn={[et.TYPE]:et},Gs=Object.freeze(Object.defineProperty({__proto__:null,Canvas:et,REGISTRY:Vn,canvasStateZ:Gt},Symbol.toStringTag,{value:"Module"})),Xt=g.z.object({position:s.Q.xy,zoom:g.z.number(),region:s.jt.box,clearOverScan:s.Q.crudeZ.optional().default(10),visible:g.z.boolean().optional().default(!0),autoRenderInterval:g.z.number().optional()}),We=["upper2d","lower2d"];class se extends c.Composite{static TYPE="Diagram";static stateZ=Xt;schema=se.stateZ;afterUpdate(e){this.internal.renderCtx=c.Context.use(e),this.internal.handleError=c.useErrorHandler(e),s.O.isNonZero(this.state.autoRenderInterval)&&(this.internal.autoRenderInterval??=setInterval(()=>{this.state.visible&&this.requestRender("low")},this.state.autoRenderInterval)),pt(e,()=>{this.state.visible&&this.requestRender("low")}),!(!this.state.visible&&!this.prevState.visible)&&(this.internal.viewportScale=s.C.XY.magnify(s.Q.construct(this.state.zoom)).translate(s.jt.topLeft(this.state.region)).translate(this.state.position),this.requestRender("high"))}afterDelete(){this.internal.autoRenderInterval!=null&&clearInterval(this.internal.autoRenderInterval),this.requestRender("high")}render(){if(this.deleted)return;const{renderCtx:e,handleError:n,viewportScale:r}=this.internal,o=s.jt.construct(this.state.region);if(!this.state.visible)return()=>e.erase(o,this.state.clearOverScan,...We);const a=e.scissor(o,s.Q.ZERO,We);try{this.children.forEach(l=>l.render?.({viewportScale:r}))}catch(l){n(l,"failed to render diagram")}finally{a()}const i=s.jt.copy(this.state.region);return()=>{e.lower2d.fillStyle=s.Rr.hex(s.Rr.BLACK),e.lower2d.fillRect(...s.Q.couple(s.jt.topLeft(i)),s.jt.width(i),s.jt.height(i)),e.erase(i,this.state.clearOverScan,...We)}}requestRender(e){const{renderCtx:n}=this.internal;n.loop.set({key:`${se.TYPE}-${this.key}`,render:this.render.bind(this),priority:e,canvases:We})}}const Kn={[se.TYPE]:se},Xs=Object.freeze(Object.defineProperty({__proto__:null,Diagram:se,REGISTRY:Kn,diagramStateZ:Xt},Symbol.toStringTag,{value:"Module"}));class Jn{entries=new Map;setListeners=new Map;deleteListeners=new Map;handleError;equal;constructor(e,n=()=>!1){this.handleError=e,this.equal=n}setOne(e,n,r,o){const a=this.entries.get(n),i=c.executeSetter(r,a);if(!(i==null||a!=null&&this.equal(i,a,n)))return this.entries.set(n,i),this.notifySet(e,n,i,o),()=>{a===void 0?(this.entries.delete(n),this.notifyDelete(e,n)):(this.entries.set(n,a),this.notifySet(e,n,a,o))}}set(e,n,r,o){const a=[];if(Array.isArray(n))n.forEach(i=>{const l=this.setOne(e,i.key,i,r);l!=null&&a.push(l)});else if(typeof n=="object"&&"key"in n){const i=n,l=this.setOne(e,i.key,i,r);l!=null&&a.push(l)}else{const i=this.setOne(e,n,r,o);i!=null&&a.push(i)}return()=>a.reverse().forEach(i=>i())}get(e){return typeof e=="function"?Array.from(this.entries.values()).filter(e):Array.isArray(e)?e.map(n=>this.entries.get(n)).filter(n=>n!=null):this.entries.get(e)}list(){return Array.from(this.entries.values())}has(e){return Array.isArray(e)?e.every(n=>this.entries.has(n)):this.entries.has(e)}delete(e,n,r){const o=[];return typeof n=="function"?this.entries.forEach((a,i)=>{n(a,i)&&o.push({key:i,value:a})}):s.a.toArray(n).forEach(a=>{const i=this.entries.get(a);o.push({key:a,value:i})}),o.forEach(({key:a})=>{this.entries.delete(a),this.notifyDelete(e,a)}),()=>o.forEach(({key:a,value:i})=>{i!=null&&(this.entries.set(a,i),this.notifySet(e,a,i,r))})}clear(){this.entries.clear()}onSet(e,n,r){return this.setListeners.set(n,{scope:e,key:r}),()=>this.setListeners.delete(n)}onDelete(e,n,r){return this.deleteListeners.set(n,{scope:e,key:r}),()=>this.deleteListeners.delete(n)}notifySet(e,n,r,o){this.setListeners.forEach((a,i)=>{const l=a.key==null||a.key===n,h=a.scope!==e;l&&h&&this.handleError(async()=>await i(r,o),"Failed to notify set listener")})}notifyDelete(e,n){this.deleteListeners.forEach((r,o)=>{const a=r.key==null||r.key===n,i=r.scope!==e;a&&i&&this.handleError(async()=>await o(n),"Failed to notify delete listener")})}scope(e){return{set:(n,r,o)=>this.set(e,n,r,o),get:(n=>this.get(n)),list:()=>this.list(),has:n=>this.has(n),delete:(n,r)=>this.delete(e,n,r),onSet:(n,r)=>this.onSet(e,n,r),onDelete:(n,r)=>this.onDelete(e,n,r)}}}const er=(t,e)=>Object.fromEntries(Object.entries(t).map(([n,{equal:r}])=>[n,new Jn(e,r)])),Lt=(t,e)=>Object.fromEntries(Object.entries(t).map(([n])=>[n,t[n].scope(e)])),Vs=(t,e,n)=>t.set(e,r=>r==null?void 0:{...r,...n}),Ks=(t,e)=>{const n=t.includes("delete"),r=e.includes("delete");return n&&!r?-1:!n&&r?1:0},Js=async({openStreamer:t,storeConfig:e,handleError:n,client:r,store:o})=>{const a=Object.values(e),i=s.c.unique(a.flatMap(({listeners:f})=>f.map(({channel:p})=>p))),l={};a.forEach(({listeners:f})=>f.forEach(p=>{const{channel:S}=p;l[S]=[...l[S]||[],p]}));const h=await c.CI.HardenedStreamer.open(t,i),u=new c.CI.ObservableStreamer(h),d=f=>{const p=[...f.uniqueNames];p.sort(Ks),n(async()=>{for(const S of p){const x=f.get(S),b=l[S];if(b!=null)for(const{onChange:v,schema:R}of b)await n(async()=>{let L;x.dataType.equals(s.n.JSON)?L=x.parseJSON(R):L=Array.from(x).map(E=>R.parse(E));for(const E of L)await n(()=>v({changed:E,client:r,store:o}),`Failed to handle streamer change for ${S}`,c.jr)},`Failed to parse streamer change for ${S}`)}},`Failed to handle streamer change for ${s.Gr.naturalLanguageJoin(p)}`)};return u.onChange(d),u.close.bind(u)};class tr{store;streamCloser=null;client;constructor({client:e,openStreamer:n,storeConfig:r,handleError:o,handleAsyncError:a}){this.store=er(r,o),this.client=e,e!=null&&(n??=e?.openStreamer.bind(e),this.streamCloser=Js({client:e,storeConfig:r,handleError:a,store:Lt(this.store,""),openStreamer:n}))}async awaitInitialized(){this.streamCloser!=null&&await this.streamCloser}scopedStore(e){return Lt(this.store,e)}async close(){if(this.streamCloser==null)return;await(await this.streamCloser)()}}const eo=g.object({request:g.string(),bounds:g.record(g.string(),s.H.bounds)}),nr=g.object({request:g.string(),response:eo});class tt extends c.Leaf{static TYPE="Bounds";schema=nr;afterUpdate(e){this.state.request!==this.prevState.request&&this.setState(n=>({...n,response:{request:n.request,bounds:this.internal.getBounds()}}))}render(e){this.internal.getBounds=e.getBounds}}function Xe(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function to(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Vt(t){let e,n,r;t.length!==2?(e=Xe,n=(l,h)=>Xe(t(l),h),r=(l,h)=>t(l)-h):(e=t===Xe||t===to?t:no,n=t,r=t);function o(l,h,u=0,d=l.length){if(u<d){if(e(h,h)!==0)return d;do{const f=u+d>>>1;n(l[f],h)<0?u=f+1:d=f}while(u<d)}return u}function a(l,h,u=0,d=l.length){if(u<d){if(e(h,h)!==0)return d;do{const f=u+d>>>1;n(l[f],h)<=0?u=f+1:d=f}while(u<d)}return u}function i(l,h,u=0,d=l.length){const f=o(l,h,u,d-1);return f>u&&r(l[f-1],h)>-r(l[f],h)?f-1:f}return{left:o,center:i,right:a}}function no(){return 0}function ro(t){return t===null?NaN:+t}const so=Vt(Xe),oo=so.right;Vt(ro).center;const io=Math.sqrt(50),ao=Math.sqrt(10),lo=Math.sqrt(2);function nt(t,e,n){const r=(e-t)/Math.max(0,n),o=Math.floor(Math.log10(r)),a=r/Math.pow(10,o),i=a>=io?10:a>=ao?5:a>=lo?2:1;let l,h,u;return o<0?(u=Math.pow(10,-o)/i,l=Math.round(t*u),h=Math.round(e*u),l/u<t&&++l,h/u>e&&--h,u=-u):(u=Math.pow(10,o)*i,l=Math.round(t/u),h=Math.round(e/u),l*u<t&&++l,h*u>e&&--h),h<l&&.5<=n&&n<2?nt(t,e,n*2):[l,h,u]}function co(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const r=e<t,[o,a,i]=r?nt(e,t,n):nt(t,e,n);if(!(a>=o))return[];const l=a-o+1,h=new Array(l);if(r)if(i<0)for(let u=0;u<l;++u)h[u]=(a-u)/-i;else for(let u=0;u<l;++u)h[u]=(a-u)*i;else if(i<0)for(let u=0;u<l;++u)h[u]=(o+u)/-i;else for(let u=0;u<l;++u)h[u]=(o+u)*i;return h}function Dt(t,e,n){return e=+e,t=+t,n=+n,nt(t,e,n)[2]}function Mt(t,e,n){e=+e,t=+t,n=+n;const r=e<t,o=r?Dt(e,t,n):Dt(t,e,n);return(r?-1:1)*(o<0?1/-o:o)}function rr(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function uo(t){return function(){return t}}function ho(t){return+t}var wn=[0,1];function pe(t){return t}function At(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:uo(isNaN(e)?NaN:.5)}function fo(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function po(t,e,n){var r=t[0],o=t[1],a=e[0],i=e[1];return o<r?(r=At(o,r),a=n(i,a)):(r=At(r,o),a=n(a,i)),function(l){return a(r(l))}}function go(t,e,n){var r=Math.min(t.length,e.length)-1,o=new Array(r),a=new Array(r),i=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++i<r;)o[i]=At(t[i],t[i+1]),a[i]=n(e[i],e[i+1]);return function(l){var h=oo(t,l,1,r)-1;return a[h](o[h](l))}}function sr(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function mo(){var t=wn,e=wn,n=mt,r,o,a,i=pe,l,h,u;function d(){var p=Math.min(t.length,e.length);return i!==pe&&(i=fo(t[0],t[p-1])),l=p>2?go:po,h=u=null,f}function f(p){return p==null||isNaN(p=+p)?a:(h||(h=l(t.map(r),e,n)))(r(i(p)))}return f.invert=function(p){return i(o((u||(u=l(e,t.map(r),Ae)))(p)))},f.domain=function(p){return arguments.length?(t=Array.from(p,ho),d()):t.slice()},f.range=function(p){return arguments.length?(e=Array.from(p),d()):e.slice()},f.rangeRound=function(p){return e=Array.from(p),n=Os,d()},f.clamp=function(p){return arguments.length?(i=p?!0:pe,d()):i!==pe},f.interpolate=function(p){return arguments.length?(n=p,d()):n},f.unknown=function(p){return arguments.length?(a=p,f):a},function(p,S){return r=p,o=S,d()}}function or(){return mo()(pe,pe)}function So(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function rt(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function be(t){return t=rt(Math.abs(t)),t?t[1]:NaN}function yo(t,e){return function(n,r){for(var o=n.length,a=[],i=0,l=t[0],h=0;o>0&&l>0&&(h+l+1>r&&(l=Math.max(1,r-h)),a.push(n.substring(o-=l,o+l)),!((h+=l+1)>r));)l=t[i=(i+1)%t.length];return a.reverse().join(e)}}function bo(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var xo=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function st(t){if(!(e=xo.exec(t)))throw new Error("invalid format: "+t);var e;return new Kt({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}st.prototype=Kt.prototype;function Kt(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Kt.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function vo(t){e:for(var e=t.length,n=1,r=-1,o;n<e;++n)switch(t[n]){case".":r=o=n;break;case"0":r===0&&(r=n),o=n;break;default:if(!+t[n])break e;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(o+1):t}var ir;function To(t,e){var n=rt(t,e);if(!n)return t+"";var r=n[0],o=n[1],a=o-(ir=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,i=r.length;return a===i?r:a>i?r+new Array(a-i+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+rt(t,Math.max(0,e+a-1))[0]}function Cn(t,e){var n=rt(t,e);if(!n)return t+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}const Rn={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:So,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Cn(t*100,e),r:Cn,s:To,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function En(t){return t}var kn=Array.prototype.map,Pn=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function wo(t){var e=t.grouping===void 0||t.thousands===void 0?En:yo(kn.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?En:bo(kn.call(t.numerals,String)),i=t.percent===void 0?"%":t.percent+"",l=t.minus===void 0?"−":t.minus+"",h=t.nan===void 0?"NaN":t.nan+"";function u(f){f=st(f);var p=f.fill,S=f.align,x=f.sign,b=f.symbol,v=f.zero,R=f.width,L=f.comma,E=f.precision,M=f.trim,A=f.type;A==="n"?(L=!0,A="g"):Rn[A]||(E===void 0&&(E=12),M=!0,A="g"),(v||p==="0"&&S==="=")&&(v=!0,p="0",S="=");var T=b==="$"?n:b==="#"&&/[boxX]/.test(A)?"0"+A.toLowerCase():"",O=b==="$"?r:/[%p]/.test(A)?i:"",K=Rn[A],Ce=/[defgprs%]/.test(A);E=E===void 0?6:/[gprs]/.test(A)?Math.max(1,Math.min(21,E)):Math.max(0,Math.min(20,E));function Fe(C){var q=T,I=O,J,He,ue;if(A==="c")I=K(C)+I,C="";else{C=+C;var he=C<0||1/C<0;if(C=isNaN(C)?h:K(Math.abs(C),E),M&&(C=vo(C)),he&&+C==0&&x!=="+"&&(he=!1),q=(he?x==="("?x:l:x==="-"||x==="("?"":x)+q,I=(A==="s"?Pn[8+ir/3]:"")+I+(he&&x==="("?")":""),Ce){for(J=-1,He=C.length;++J<He;)if(ue=C.charCodeAt(J),48>ue||ue>57){I=(ue===46?o+C.slice(J+1):C.slice(J))+I,C=C.slice(0,J);break}}}L&&!v&&(C=e(C,1/0));var de=q.length+C.length+I.length,$=de<R?new Array(R-de+1).join(p):"";switch(L&&v&&(C=e($+C,$.length?R-I.length:1/0),$=""),S){case"<":C=q+C+I+$;break;case"=":C=q+$+C+I;break;case"^":C=$.slice(0,de=$.length>>1)+q+C+I+$.slice(de);break;default:C=$+q+C+I;break}return a(C)}return Fe.toString=function(){return f+""},Fe}function d(f,p){var S=u((f=st(f),f.type="f",f)),x=Math.max(-8,Math.min(8,Math.floor(be(p)/3)))*3,b=Math.pow(10,-x),v=Pn[8+x/3];return function(R){return S(b*R)+v}}return{format:u,formatPrefix:d}}var Ge,ar,lr;Co({thousands:",",grouping:[3],currency:["$",""]});function Co(t){return Ge=wo(t),ar=Ge.format,lr=Ge.formatPrefix,Ge}function Ro(t){return Math.max(0,-be(Math.abs(t)))}function Eo(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(be(e)/3)))*3-be(Math.abs(t)))}function ko(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,be(e)-be(t))+1}function Po(t,e,n,r){var o=Mt(t,e,n),a;switch(r=st(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(a=Eo(o,i))&&(r.precision=a),lr(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=ko(o,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=Ro(o))&&(r.precision=a-(r.type==="%")*2);break}}return ar(r)}function Lo(t){var e=t.domain;return t.ticks=function(n){var r=e();return co(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var o=e();return Po(o[0],o[o.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),o=0,a=r.length-1,i=r[o],l=r[a],h,u,d=10;for(l<i&&(u=i,i=l,l=u,u=o,o=a,a=u);d-- >0;){if(u=Dt(i,l,n),u===h)return r[o]=i,r[a]=l,e(r);if(u>0)i=Math.floor(i/u)*u,l=Math.ceil(l/u)*u;else if(u<0)i=Math.ceil(i*u)/u,l=Math.floor(l*u)/u;else break;h=u}return t},t}function cr(){var t=or();return t.copy=function(){return sr(t,cr())},rr.apply(t,arguments),Lo(t)}function Do(t,e){t=t.slice();var n=0,r=t.length-1,o=t[n],a=t[r],i;return a<o&&(i=n,n=r,r=i,i=o,o=a,a=i),t[n]=e.floor(o),t[r]=e.ceil(a),t}const xt=new Date,vt=new Date;function N(t,e,n,r){function o(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return o.floor=a=>(t(a=new Date(+a)),a),o.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),o.round=a=>{const i=o(a),l=o.ceil(a);return a-i<l-a?i:l},o.offset=(a,i)=>(e(a=new Date(+a),i==null?1:Math.floor(i)),a),o.range=(a,i,l)=>{const h=[];if(a=o.ceil(a),l=l==null?1:Math.floor(l),!(a<i)||!(l>0))return h;let u;do h.push(u=new Date(+a)),e(a,l),t(a);while(u<a&&a<i);return h},o.filter=a=>N(i=>{if(i>=i)for(;t(i),!a(i);)i.setTime(i-1)},(i,l)=>{if(i>=i)if(l<0)for(;++l<=0;)for(;e(i,-1),!a(i););else for(;--l>=0;)for(;e(i,1),!a(i););}),n&&(o.count=(a,i)=>(xt.setTime(+a),vt.setTime(+i),t(xt),t(vt),Math.floor(n(xt,vt))),o.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?o.filter(r?i=>r(i)%a===0:i=>o.count(0,i)%a===0):o)),o}const ot=N(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);ot.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?N(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):ot);ot.range;const Q=1e3,z=Q*60,W=z*60,X=W*24,Jt=X*7,Ln=X*30,Tt=X*365,ge=N(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Q)},(t,e)=>(e-t)/Q,t=>t.getUTCSeconds());ge.range;const en=N(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Q)},(t,e)=>{t.setTime(+t+e*z)},(t,e)=>(e-t)/z,t=>t.getMinutes());en.range;const Mo=N(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*z)},(t,e)=>(e-t)/z,t=>t.getUTCMinutes());Mo.range;const tn=N(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Q-t.getMinutes()*z)},(t,e)=>{t.setTime(+t+e*W)},(t,e)=>(e-t)/W,t=>t.getHours());tn.range;const Ao=N(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*W)},(t,e)=>(e-t)/W,t=>t.getUTCHours());Ao.range;const ze=N(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*z)/X,t=>t.getDate()-1);ze.range;const nn=N(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/X,t=>t.getUTCDate()-1);nn.range;const Oo=N(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/X,t=>Math.floor(t/X));Oo.range;function ie(t){return N(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*z)/Jt)}const St=ie(0),it=ie(1),No=ie(2),Zo=ie(3),xe=ie(4),Io=ie(5),_o=ie(6);St.range;it.range;No.range;Zo.range;xe.range;Io.range;_o.range;function ae(t){return N(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/Jt)}const ur=ae(0),at=ae(1),Yo=ae(2),jo=ae(3),ve=ae(4),Uo=ae(5),zo=ae(6);ur.range;at.range;Yo.range;jo.range;ve.range;Uo.range;zo.range;const rn=N(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());rn.range;const Bo=N(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());Bo.range;const V=N(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());V.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:N(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});V.range;const oe=N(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());oe.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:N(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});oe.range;function $o(t,e,n,r,o,a){const i=[[ge,1,Q],[ge,5,5*Q],[ge,15,15*Q],[ge,30,30*Q],[a,1,z],[a,5,5*z],[a,15,15*z],[a,30,30*z],[o,1,W],[o,3,3*W],[o,6,6*W],[o,12,12*W],[r,1,X],[r,2,2*X],[n,1,Jt],[e,1,Ln],[e,3,3*Ln],[t,1,Tt]];function l(u,d,f){const p=d<u;p&&([u,d]=[d,u]);const S=f&&typeof f.range=="function"?f:h(u,d,f),x=S?S.range(u,+d+1):[];return p?x.reverse():x}function h(u,d,f){const p=Math.abs(d-u)/f,S=Vt(([,,v])=>v).right(i,p);if(S===i.length)return t.every(Mt(u/Tt,d/Tt,f));if(S===0)return ot.every(Math.max(Mt(u,d,f),1));const[x,b]=i[p/i[S-1][2]<i[S][2]/p?S-1:S];return x.every(b)}return[l,h]}const[Fo,Ho]=$o(V,rn,St,ze,tn,en);function wt(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Ct(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Re(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function qo(t){var e=t.dateTime,n=t.date,r=t.time,o=t.periods,a=t.days,i=t.shortDays,l=t.months,h=t.shortMonths,u=Ee(o),d=ke(o),f=Ee(a),p=ke(a),S=Ee(i),x=ke(i),b=Ee(l),v=ke(l),R=Ee(h),L=ke(h),E={a:he,A:de,b:$,B:ts,c:null,d:Zn,e:Zn,f:gi,g:Ri,G:ki,H:di,I:fi,j:pi,L:hr,m:mi,M:Si,p:ns,q:rs,Q:Yn,s:jn,S:yi,u:bi,U:xi,V:vi,w:Ti,W:wi,x:null,X:null,y:Ci,Y:Ei,Z:Pi,"%":_n},M={a:ss,A:os,b:is,B:as,c:null,d:In,e:In,f:Ai,g:Bi,G:Fi,H:Li,I:Di,j:Mi,L:fr,m:Oi,M:Ni,p:ls,q:cs,Q:Yn,s:jn,S:Zi,u:Ii,U:_i,V:Yi,w:ji,W:Ui,x:null,X:null,y:zi,Y:$i,Z:Hi,"%":_n},A={a:Fe,A:C,b:q,B:I,c:J,d:On,e:On,f:li,g:An,G:Mn,H:Nn,I:Nn,j:si,L:ai,m:ri,M:oi,p:Ce,q:ni,Q:ui,s:hi,S:ii,u:Vo,U:Ko,V:Jo,w:Xo,W:ei,x:He,X:ue,y:An,Y:Mn,Z:ti,"%":ci};E.x=T(n,E),E.X=T(r,E),E.c=T(e,E),M.x=T(n,M),M.X=T(r,M),M.c=T(e,M);function T(y,w){return function(k){var m=[],_=-1,D=0,j=y.length,U,ee,dn;for(k instanceof Date||(k=new Date(+k));++_<j;)y.charCodeAt(_)===37&&(m.push(y.slice(D,_)),(ee=Dn[U=y.charAt(++_)])!=null?U=y.charAt(++_):ee=U==="e"?" ":"0",(dn=w[U])&&(U=dn(k,ee)),m.push(U),D=_+1);return m.push(y.slice(D,_)),m.join("")}}function O(y,w){return function(k){var m=Re(1900,void 0,1),_=K(m,y,k+="",0),D,j;if(_!=k.length)return null;if("Q"in m)return new Date(m.Q);if("s"in m)return new Date(m.s*1e3+("L"in m?m.L:0));if(w&&!("Z"in m)&&(m.Z=0),"p"in m&&(m.H=m.H%12+m.p*12),m.m===void 0&&(m.m="q"in m?m.q:0),"V"in m){if(m.V<1||m.V>53)return null;"w"in m||(m.w=1),"Z"in m?(D=Ct(Re(m.y,0,1)),j=D.getUTCDay(),D=j>4||j===0?at.ceil(D):at(D),D=nn.offset(D,(m.V-1)*7),m.y=D.getUTCFullYear(),m.m=D.getUTCMonth(),m.d=D.getUTCDate()+(m.w+6)%7):(D=wt(Re(m.y,0,1)),j=D.getDay(),D=j>4||j===0?it.ceil(D):it(D),D=ze.offset(D,(m.V-1)*7),m.y=D.getFullYear(),m.m=D.getMonth(),m.d=D.getDate()+(m.w+6)%7)}else("W"in m||"U"in m)&&("w"in m||(m.w="u"in m?m.u%7:"W"in m?1:0),j="Z"in m?Ct(Re(m.y,0,1)).getUTCDay():wt(Re(m.y,0,1)).getDay(),m.m=0,m.d="W"in m?(m.w+6)%7+m.W*7-(j+5)%7:m.w+m.U*7-(j+6)%7);return"Z"in m?(m.H+=m.Z/100|0,m.M+=m.Z%100,Ct(m)):wt(m)}}function K(y,w,k,m){for(var _=0,D=w.length,j=k.length,U,ee;_<D;){if(m>=j)return-1;if(U=w.charCodeAt(_++),U===37){if(U=w.charAt(_++),ee=A[U in Dn?w.charAt(_++):U],!ee||(m=ee(y,k,m))<0)return-1}else if(U!=k.charCodeAt(m++))return-1}return m}function Ce(y,w,k){var m=u.exec(w.slice(k));return m?(y.p=d.get(m[0].toLowerCase()),k+m[0].length):-1}function Fe(y,w,k){var m=S.exec(w.slice(k));return m?(y.w=x.get(m[0].toLowerCase()),k+m[0].length):-1}function C(y,w,k){var m=f.exec(w.slice(k));return m?(y.w=p.get(m[0].toLowerCase()),k+m[0].length):-1}function q(y,w,k){var m=R.exec(w.slice(k));return m?(y.m=L.get(m[0].toLowerCase()),k+m[0].length):-1}function I(y,w,k){var m=b.exec(w.slice(k));return m?(y.m=v.get(m[0].toLowerCase()),k+m[0].length):-1}function J(y,w,k){return K(y,e,w,k)}function He(y,w,k){return K(y,n,w,k)}function ue(y,w,k){return K(y,r,w,k)}function he(y){return i[y.getDay()]}function de(y){return a[y.getDay()]}function $(y){return h[y.getMonth()]}function ts(y){return l[y.getMonth()]}function ns(y){return o[+(y.getHours()>=12)]}function rs(y){return 1+~~(y.getMonth()/3)}function ss(y){return i[y.getUTCDay()]}function os(y){return a[y.getUTCDay()]}function is(y){return h[y.getUTCMonth()]}function as(y){return l[y.getUTCMonth()]}function ls(y){return o[+(y.getUTCHours()>=12)]}function cs(y){return 1+~~(y.getUTCMonth()/3)}return{format:function(y){var w=T(y+="",E);return w.toString=function(){return y},w},parse:function(y){var w=O(y+="",!1);return w.toString=function(){return y},w},utcFormat:function(y){var w=T(y+="",M);return w.toString=function(){return y},w},utcParse:function(y){var w=O(y+="",!0);return w.toString=function(){return y},w}}}var Dn={"-":"",_:" ",0:"0"},Z=/^\s*\d+/,Qo=/^%/,Wo=/[\\^$*+?|[\]().{}]/g;function P(t,e,n){var r=t<0?"-":"",o=(r?-t:t)+"",a=o.length;return r+(a<n?new Array(n-a+1).join(e)+o:o)}function Go(t){return t.replace(Wo,"\\$&")}function Ee(t){return new RegExp("^(?:"+t.map(Go).join("|")+")","i")}function ke(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function Xo(t,e,n){var r=Z.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function Vo(t,e,n){var r=Z.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function Ko(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function Jo(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function ei(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Mn(t,e,n){var r=Z.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function An(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function ti(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function ni(t,e,n){var r=Z.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function ri(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function On(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function si(t,e,n){var r=Z.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Nn(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function oi(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function ii(t,e,n){var r=Z.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function ai(t,e,n){var r=Z.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function li(t,e,n){var r=Z.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function ci(t,e,n){var r=Qo.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function ui(t,e,n){var r=Z.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function hi(t,e,n){var r=Z.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Zn(t,e){return P(t.getDate(),e,2)}function di(t,e){return P(t.getHours(),e,2)}function fi(t,e){return P(t.getHours()%12||12,e,2)}function pi(t,e){return P(1+ze.count(V(t),t),e,3)}function hr(t,e){return P(t.getMilliseconds(),e,3)}function gi(t,e){return hr(t,e)+"000"}function mi(t,e){return P(t.getMonth()+1,e,2)}function Si(t,e){return P(t.getMinutes(),e,2)}function yi(t,e){return P(t.getSeconds(),e,2)}function bi(t){var e=t.getDay();return e===0?7:e}function xi(t,e){return P(St.count(V(t)-1,t),e,2)}function dr(t){var e=t.getDay();return e>=4||e===0?xe(t):xe.ceil(t)}function vi(t,e){return t=dr(t),P(xe.count(V(t),t)+(V(t).getDay()===4),e,2)}function Ti(t){return t.getDay()}function wi(t,e){return P(it.count(V(t)-1,t),e,2)}function Ci(t,e){return P(t.getFullYear()%100,e,2)}function Ri(t,e){return t=dr(t),P(t.getFullYear()%100,e,2)}function Ei(t,e){return P(t.getFullYear()%1e4,e,4)}function ki(t,e){var n=t.getDay();return t=n>=4||n===0?xe(t):xe.ceil(t),P(t.getFullYear()%1e4,e,4)}function Pi(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+P(e/60|0,"0",2)+P(e%60,"0",2)}function In(t,e){return P(t.getUTCDate(),e,2)}function Li(t,e){return P(t.getUTCHours(),e,2)}function Di(t,e){return P(t.getUTCHours()%12||12,e,2)}function Mi(t,e){return P(1+nn.count(oe(t),t),e,3)}function fr(t,e){return P(t.getUTCMilliseconds(),e,3)}function Ai(t,e){return fr(t,e)+"000"}function Oi(t,e){return P(t.getUTCMonth()+1,e,2)}function Ni(t,e){return P(t.getUTCMinutes(),e,2)}function Zi(t,e){return P(t.getUTCSeconds(),e,2)}function Ii(t){var e=t.getUTCDay();return e===0?7:e}function _i(t,e){return P(ur.count(oe(t)-1,t),e,2)}function pr(t){var e=t.getUTCDay();return e>=4||e===0?ve(t):ve.ceil(t)}function Yi(t,e){return t=pr(t),P(ve.count(oe(t),t)+(oe(t).getUTCDay()===4),e,2)}function ji(t){return t.getUTCDay()}function Ui(t,e){return P(at.count(oe(t)-1,t),e,2)}function zi(t,e){return P(t.getUTCFullYear()%100,e,2)}function Bi(t,e){return t=pr(t),P(t.getUTCFullYear()%100,e,2)}function $i(t,e){return P(t.getUTCFullYear()%1e4,e,4)}function Fi(t,e){var n=t.getUTCDay();return t=n>=4||n===0?ve(t):ve.ceil(t),P(t.getUTCFullYear()%1e4,e,4)}function Hi(){return"+0000"}function _n(){return"%"}function Yn(t){return+t}function jn(t){return Math.floor(+t/1e3)}var fe,gr;qi({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function qi(t){return fe=qo(t),gr=fe.format,fe.parse,fe.utcFormat,fe.utcParse,fe}function Qi(t){return new Date(t)}function Wi(t){return t instanceof Date?+t:+new Date(+t)}function mr(t,e,n,r,o,a,i,l,h,u){var d=or(),f=d.invert,p=d.domain,S=u(".%L"),x=u(":%S"),b=u("%I:%M"),v=u("%I %p"),R=u("%a %d"),L=u("%b %d"),E=u("%B"),M=u("%Y");function A(T){return(h(T)<T?S:l(T)<T?x:i(T)<T?b:a(T)<T?v:r(T)<T?o(T)<T?R:L:n(T)<T?E:M)(T)}return d.invert=function(T){return new Date(f(T))},d.domain=function(T){return arguments.length?p(Array.from(T,Wi)):p().map(Qi)},d.ticks=function(T){var O=p();return t(O[0],O[O.length-1],T??10)},d.tickFormat=function(T,O){return O==null?A:u(O)},d.nice=function(T){var O=p();return(!T||typeof T.range!="function")&&(T=e(O[0],O[O.length-1],T??10)),T?p(Do(O,T)):d},d.copy=function(){return sr(d,mr(t,e,n,r,o,a,i,l,h,u))},d}function Gi(){return rr.apply(mr(Fo,Ho,V,rn,St,ze,tn,en,ge,gr).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const Un=[s.a$1.NANOSECOND,s.a$1.nanoseconds(2),s.a$1.nanoseconds(5),s.a$1.nanoseconds(10),s.a$1.nanoseconds(20),s.a$1.nanoseconds(50),s.a$1.nanoseconds(100),s.a$1.nanoseconds(200),s.a$1.nanoseconds(500),s.a$1.MICROSECOND,s.a$1.microseconds(2),s.a$1.microseconds(5),s.a$1.microseconds(10),s.a$1.microseconds(20),s.a$1.microseconds(50),s.a$1.microseconds(100),s.a$1.microseconds(200),s.a$1.microseconds(500),s.a$1.MILLISECOND,s.a$1.milliseconds(2),s.a$1.milliseconds(5),s.a$1.milliseconds(10),s.a$1.milliseconds(20),s.a$1.milliseconds(50),s.a$1.milliseconds(100),s.a$1.milliseconds(200),s.a$1.milliseconds(500),s.a$1.SECOND];class Xi{_domain;_range;_span;constructor(){this._domain=[new s.r(0n),new s.r(1n)],this._range=[0,1],this._span=this._domain[1].span(this._domain[0])}domain(e){return e===void 0?this._domain:(this._domain=[new s.r(e[0]),new s.r(e[1])],this._span=this._domain[1].span(this._domain[0]),this)}range(e){return e===void 0?this._range:(this._range=e,this)}scale(e){const r=new s.r(e).valueOf(),o=this._domain[0].valueOf(),a=this._domain[1].valueOf()-o,i=this._range[1]-this._range[0];return Number(r-o)/Number(a)*i+this._range[0]}ticks(e){const n=this.calculateOptimalStep(e).valueOf(),r=this._domain[0].valueOf(),o=this._domain[1].valueOf(),a=(r+n-1n)/n*n,i=Number((o-a)/n);return Array.from({length:i+1},(l,h)=>{const u=a+BigInt(h)*n;return new s.r(u)}).filter(l=>l.afterEq(this._domain[0])&&l.beforeEq(this._domain[1]))}calculateOptimalStep(e){const n=this._span.valueOf()/BigInt(Math.ceil(e));let r=Un[0];for(const o of Un){if(o.valueOf()>n)break;r=o}return r}formatTick(e){return this._span.lessThan(s.a$1.microseconds(50))?`${e.remainder(s.a$1.MILLISECOND).microseconds.toString()}µs`:`${e.remainder(s.a$1.SECOND).milliseconds.toString()}ms`}}const Vi=()=>new Xi,sn=g.z.enum(["linear","time"]),on=g.z.object({tickSpacing:g.z.number().default(75),type:sn.optional().default("linear")}),Ot=t=>{const e=on.parse(t);return ea[e.type](e)};class Ki{props;prevScaleSize;prevDomain;currTicks;normalScale;preciseScale;constructor(e){this.props=e,this.normalScale=Gi(),this.preciseScale=Vi(),this.prevScaleSize=0,this.prevDomain=new s.m(new s.r(0),new s.r(0)),this.currTicks=[]}create({decimalToDataScale:e,size:n}){const r=new s.m(new s.r(e.pos(0)),new s.r(e.pos(1)));if(this.prevDomain.equals(r)&&this.prevScaleSize===n)return this.currTicks;if(this.prevDomain=r,this.prevScaleSize!==n){const o=[0,n];this.preciseScale.range(o),this.normalScale.range(o),this.prevScaleSize=n}if(r.span.milliseconds<5){this.preciseScale.domain([r.start,r.end]);const o=Nt(n,this.props.tickSpacing)/2,a=this.preciseScale.ticks(o);this.currTicks=a.map(i=>({label:this.preciseScale.formatTick(i),position:this.preciseScale.scale(i)}))}else{this.normalScale.domain([r.start.date(),r.end.date()]);const o=this.normalScale.ticks(Nt(n,this.props.tickSpacing));this.currTicks=o.map(a=>({label:this.normalTickLabel(a),position:this.normalScale(a)}))}return this.currTicks}normalTickLabel(e){let n=`:${e.getSeconds()}`;const r=e.getMilliseconds();if(r!==0){const o=Math.round(e.getMilliseconds()).toString().padStart(3,"0").replace(/0+$/,"");n+=`.${o}`}return e.getSeconds()===0&&r===0&&(n=`${e.getHours()}:${e.getMinutes().toString().padStart(2,"0")}`),n}}class Ji{props;prevDomain;prevScaleSize;currTicks;d3Scale;constructor(e){this.props=e,this.prevDomain=s.H.construct(0,0),this.prevScaleSize=0,this.currTicks=[],this.d3Scale=cr()}create({decimalToDataScale:e,size:n}){const r={lower:e.pos(0),upper:e.pos(1)};if(s.H.equals(this.prevDomain,r)&&this.prevScaleSize===n)return this.currTicks;s.H.equals(this.prevDomain,r)||(this.d3Scale=this.d3Scale.domain([r.lower,r.upper])),this.prevScaleSize!==n&&(this.d3Scale=this.d3Scale.range([0,n])),this.prevDomain=r,this.prevScaleSize=n;const o=Nt(n,this.props.tickSpacing),a=this.d3Scale.ticks(o);return this.currTicks=a.map(i=>({label:this.tickLabel(i),position:this.d3Scale(i)})),this.currTicks}tickLabel(e){return e.toString()}}const Nt=(t,e)=>{const n=Math.floor(t/e);return n>0?n:1},ea={linear:t=>new Ji(t),time:t=>new Ki(t)},an=on.extend({color:s.Rr.colorZ,type:sn.optional().default("linear"),font:g.z.string(),showGrid:g.z.boolean().optional().default(!0),location:s.K.outer,gridColor:s.Rr.colorZ}),B=5,Oe=6,Be={useAtlas:!0},ta={bottom:(t,e)=>new yr(t,e),top:(t,e)=>new br(t,e),left:(t,e)=>new na(t,e),right:(t,e)=>new xr(t,e)},Sr=(t,e,n)=>ta[t](e,n);class le{renderCtx;state;tickFactory;constructor(e,n){this.renderCtx=e,this.state=n,this.tickFactory=Ot(this.state)}setState(e){this.state=c.prettyParse(an,e),this.tickFactory=Ot(e)}drawLine(e,n){const{lower2d:r}=this.renderCtx;r.moveTo(...s.Q.couple(e)),r.lineTo(...s.Q.couple(n))}drawTicks(e,n){let r=s._.ZERO;return e.forEach(o=>{const a=this.renderCtx.lower2d.textDimensions(o.label,Be);r=s._.max([r,a]),n(a,o)}),r}static START_BOUND=s.H.construct(-1,1);maybeDrawGrid(e,n,r){const{showGrid:o,gridColor:a}=this.state;if(o){const i=le.START_BOUND,l=s.H.construct(e-1,e+1),{lower2d:h}=this.renderCtx;h.beginPath(),h.strokeStyle=s.Rr.hex(a),n.forEach(u=>{s.H.contains(i,u.position)||s.H.contains(l,u.position)||this.drawLine(...r(u))}),h.stroke()}}setColor(e){const n=s.Rr.hex(e);this.renderCtx.lower2d.strokeStyle=n,this.renderCtx.lower2d.fillStyle=n,this.renderCtx.lower2d.font=this.state.font}}class yr extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r,position:o}=e,{width:a,height:i}=s.jt.dims(r),l=this.tickFactory.create({...e,size:a});n.beginPath(),this.setColor(this.state.color),this.drawLine(o,s.Q.translate(o,"x",a));const h=this.drawTicks(l,(u,d)=>{this.drawLine(s.Q.translateX(o,d.position),s.Q.translate(o,{x:d.position,y:B})),n.fillText(d.label,o.x+d.position-u.width/2,o.y+B+u.height+Oe,void 0,Be)});return n.stroke(),this.maybeDrawGrid(a,l,u=>[s.Q.translate(o,"x",u.position),s.Q.translate(o,{x:u.position,y:-i})]),{size:h.height+B+Oe}}}class br extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r}=e,{width:o,height:a}=s.jt.dims(r),i=s.Q.translate(e.position,"y",e.size),l=this.tickFactory.create({...e,size:o});n.beginPath(),this.setColor(this.state.color),this.drawLine(i,s.Q.translate(i,"x",o));const h=this.drawTicks(l,(u,d)=>{this.drawLine(s.Q.translateX(i,d.position),s.Q.translate(i,{x:d.position,y:-B})),n.fillText(d.label,i.x+d.position-u.width/2,i.y-B-u.height-Oe,void 0,Be)});return n.stroke(),this.maybeDrawGrid(o,l,u=>[s.Q.translate(i,"x",u.position),s.Q.translate(i,{x:u.position,y:a})]),{size:h.height+B}}}class na extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r,position:o}=e,{height:a,width:i}=s.jt.dims(r),l=s.Q.translate(o,"x",e.size),h=this.tickFactory.create({...e,size:a});n.beginPath(),this.setColor(this.state.color),this.drawLine(l,s.Q.translate(l,"y",a));const u=this.drawTicks(h,(d,f)=>{this.drawLine(s.Q.translateY(l,f.position),s.Q.translate(l,{x:-B,y:f.position})),n.fillText(f.label,l.x-d.width-B*2,l.y+f.position+d.height/2,void 0,Be)});return n.stroke(),this.maybeDrawGrid(a,h,d=>[s.Q.translate(l,"y",d.position),s.Q.translate(l,{x:i,y:d.position})]),{size:u.width+B*2}}}class xr extends le{render(e){const{lower2d:n}=this.renderCtx,{plot:r,position:o}=e,{height:a,width:i}=s.jt.dims(r),l=this.tickFactory.create({...e,size:a});n.beginPath(),this.setColor(this.state.color),this.drawLine(o,s.Q.translateY(o,a));const h=this.drawTicks(l,(u,d)=>{this.drawLine(s.Q.translateY(o,d.position),s.Q.translate(o,{x:B,y:d.position})),n.fillText(d.label,o.x+B+Oe,o.y+d.position+u.height/2,void 0,Be)});return n.stroke(),this.maybeDrawGrid(a,l,u=>[s.Q.translateY(o,u.position),s.Q.translate(o,{x:-i,y:u.position})]),{size:h.width+B+Oe}}}const vr=g.z.object({key:g.z.string(),size:g.z.number(),order:g.z.number(),loc:s.K.outer});g.z.record(g.z.string(),vr);const ne=(t,e)=>Object.values(e).filter(({loc:n})=>n===t).sort((n,r)=>r.order-n.order),ra=(t,e,n)=>{const r=e[t];if(r==null)return s.Q.ZERO;const o=s.K.construct(r.loc),a=ne(o,e),i=s.K.construct(s.p.swap(s.K.direction(o))),l=ne(i,e),h=a.findIndex(({key:f})=>f===t),u=a.slice(0,h).reduce((f,{size:p})=>f+p,0),d=l.reduce((f,{size:p})=>f+p,0);switch(o){case"left":return s.Q.translate(s.jt.topLeft(n),[u,d]);case"right":return s.Q.translate(s.jt.topRight(n),[u-r.size,d]);case"top":return s.Q.translate(s.jt.topLeft(n),[d,u]);default:return s.Q.translate(s.jt.bottomLeft(n),[d,-u-r.size])}},sa=(t,e)=>{const n=ne("left",t),r=ne("right",t),o=ne("top",t),a=ne("bottom",t),i=n.reduce((d,{size:f})=>d+f,0),l=r.reduce((d,{size:f})=>d+f,0),h=o.reduce((d,{size:f})=>d+f,0),u=a.reduce((d,{size:f})=>d+f,0);return s.jt.construct(s.Q.translate(s.jt.topLeft(e),{x:i,y:h}),s.jt.width(e)-i-l,s.jt.height(e)-h-u)},$e=an.extend({axisKey:g.z.string().optional(),bounds:s.H.bounds.optional(),autoBounds:g.z.object({lower:g.z.boolean().optional().default(!0),upper:g.z.boolean().optional().default(!0)}).or(g.z.boolean().optional().default(!0)),autoBoundPadding:g.z.number().optional(),autoBoundUpdateInterval:s.a$1.z.optional().default(s.a$1.seconds(10)),size:g.z.number().optional().default(0),label:g.z.string().optional().default(""),labelSize:g.z.number().optional().default(0)}).partial({color:!0,font:!0,gridColor:!0}),oa=2,ia=7,Tr=(t,e)=>s.H.contains({lower:t-ia,upper:t+oa},e),aa=s.H.DECIMAL,zn=s.r.now(),la={lower:Number(zn.valueOf()),upper:Number(zn.add(s.a$1.HOUR).valueOf())},wr=t=>t==="linear"?aa:la,ca=(t,e=.1,n)=>{const r=s.H.max(t.filter(s.H.isFinite));if(!s.H.isFinite(r))return wr(n);const{lower:o,upper:a}=r;if(a===o)return{lower:o-1,upper:a+1};const i=(a-o)*e;return{lower:o-i,upper:a+i}},ua=.01,ha=.1;class Cr extends c.Composite{afterUpdate(e){const{internal:n}=this,{location:r,autoBoundUpdateInterval:o}=this.state;n.render=c.Context.use(e);const a=c.use(e),i=s.p.construct(r);this.state.autoBoundPadding??=i==="x"?ha:ua,n.core=Sr(r,n.render,{color:a.colors.gray.l10,font:Le.fontString(a,{level:"small",code:!0}),gridColor:a.colors.gray.l1,...this.state}),G(e,"layout"),n.updateBounds??=c.r(l=>this.setState(h=>({...h,bounds:l})),o.milliseconds)}afterDelete(e){G(e,"layout")}renderAxis(e,n){if(!e.canvases.includes("lower2d"))return;const{core:r}=this.internal,{grid:o,container:a}=e,i=ra(`${this.type}-${this.key}`,o,a),l={...e,position:i,decimalToDataScale:n,size:this.state.size+this.state.labelSize},{size:h}=r.render(l);Tr(this.state.size,h)||this.setState(u=>({...u,size:h}))}iBounds(e,n){if(e&&this.internal.boundSnapshot!=null)return[this.internal.boundSnapshot,null];const{lower:r,upper:o}=Rr(this.state.autoBounds);if(!r&&!o&&this.state.bounds!=null)return this.internal.boundSnapshot=this.state.bounds,[this.state.bounds,null];const a=u=>({upper:o||this.state.bounds==null?u.upper:this.state.bounds.upper,lower:r||this.state.bounds==null?u.lower:this.state.bounds.lower});let i,l=null;try{const u=n();i=ca(u,this.state.autoBoundPadding,this.state.type)}catch(u){i=wr(this.state.type),l=u}const h=a(i);return this.internal.boundSnapshot=h,(this.state.bounds==null||r&&this.state.bounds.lower!==h.lower||o&&this.state.bounds.upper!==h.upper)&&this.internal.updateBounds?.(h),[h,l]}dataToDecimalScale(e,n,r){const[o,a]=this.iBounds(e,n),i=s.p.swap(s.p.construct(this.state.location));return[s.C.Scale.scale(o).scale(1).translate(-s.jt.root(r)[i]).magnify(1/s.jt.dim(r,i)),a]}}const Rr=t=>typeof t=="boolean"?{lower:t,upper:t}:{lower:t?.lower??!0,upper:t?.upper??!0};class ce{canvas;theme;constructor(e,n){this.canvas=e,this.theme=n}rule({direction:e,region:n,position:r,...o}){return e==="x"?this.line({start:s.Q.construct(s.jt.left(n),r),end:s.Q.construct(s.jt.right(n),r),...o}):this.line({start:s.Q.construct(r,s.jt.top(n)),end:s.Q.construct(r,s.jt.bottom(n)),...o})}line({stroke:e,lineWidth:n,lineDash:r,start:o,end:a}){const i=this.canvas;i.strokeStyle=s.Rr.hex(e),i.lineWidth=n,i.setLineDash([r]),i.beginPath(),i.moveTo(...s.Q.couple(o)),i.lineTo(...s.Q.couple(a)),i.stroke()}circle({fill:e,stroke:n,strokeWidth:r,radius:o,position:a,angle:i,lineCap:l}){const h=this.canvas;h.beginPath();const u=i?.lower??0,d=i?.upper??2*Math.PI;if(n!=null&&typeof o=="object"){const{inner:f,outer:p}=o,S=(f+p)/2,x=p-f;h.arc(...s.Q.couple(a),S,u,d,!1),h.strokeStyle=s.Rr.hex(n),h.lineWidth=r??x,l&&(h.lineCap=l),h.stroke()}else if(e!=null)if(h.fillStyle=s.Rr.hex(e),typeof o=="number")h.arc(...s.Q.couple(a),o,u,d),h.fill();else{const{inner:f,outer:p}=o;h.arc(...s.Q.couple(a),p,u,d,!1);const S=a.x+f*Math.cos(d),x=a.y+f*Math.sin(d);h.lineTo(S,x),h.arc(...s.Q.couple(a),f,d,u,!0),h.closePath(),h.fill()}}resolveColor(e,n){return e==null?n==null?this.theme.colors.text:this.resolveColor(n):typeof e=="function"?e(this.theme):s.Rr.construct(e)}border({region:e,color:n,width:r,radius:o,location:a}){const i=this.canvas;i.strokeStyle=s.Rr.hex(this.resolveColor(n,this.theme.colors.border)),i.lineWidth=r??this.theme.sizes.border.width,o??=this.theme.sizes.border.radius,a==null||a===!0?o>0?(i.roundRect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e)),o),i.stroke()):(i.rect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e))),i.stroke()):s.a.toArray(a).forEach(l=>{const[h,u]=s.jt.edgePoints(e,l);i.beginPath(),i.moveTo(...s.Q.couple(h)),i.lineTo(...s.Q.couple(u)),i.stroke()})}container({region:e,bordered:n=!0,rounded:r=!0,borderColor:o,borderRadius:a,borderWidth:i,backgroundColor:l}){a??=this.theme.sizes.border.radius,i??=1;const h=this.canvas;h.fillStyle=s.Rr.hex(this.resolveColor(l,this.theme.colors.gray.l1)),h.strokeStyle=s.Rr.hex(this.resolveColor(o,this.theme.colors.border)),h.setLineDash([]),h.lineWidth=1,h.beginPath(),r?h.roundRect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e)),a):h.rect(...s.Q.couple(s.jt.topLeft(e)),...s.Q.couple(s.jt.dims(e))),h.fill(),n&&this.border({region:e,color:o,radius:a,width:i,location:n})}textContainer(e){const[n,r]=this.spacedTextDrawF(e);n.width+=12,n.height+=12;const{root:o=s.K.TOP_LEFT,offset:a=s.Q.ZERO}=e,i={...e.position};o.x==="right"?i.x-=n.width+a.x:i.x+=a.x,o.y==="bottom"?i.y-=n.height+a.y:i.y+=a.y,this.container({region:s.jt.construct(i,n.width,n.height),...e}),this.canvas.filter="none",r(s.Q.translate(i,[6,6]))}spacedTextDrawF({text:e,direction:n,spacing:r=1,level:o="p"}){const a=Le.fontString(this.theme,{level:o}),i=e.map(u=>c.dimensions(u,a,this.canvas)),l=this.theme.sizes.base*r,h=Math.max(...i.map(u=>u[s.p.dimension(n)]))+l;return[{[s.p.dimension(s.p.swap(n))]:Math.max(...i.map(u=>u[s.p.dimension(s.p.swap(n))])),[s.p.dimension(n)]:h*e.length-l},u=>{const d=Le.fontString(this.theme,{level:o});this.canvas.font=d,this.canvas.fillStyle=s.Rr.hex(this.theme.colors.text),this.canvas.textBaseline="top",e.forEach((f,p)=>{this.canvas.fillText(f,u.x,u.y+h*p)})}]}list({length:e,itemHeight:n,width:r,spacing:o=0,position:a,draw:i,root:l=s.K.TOP_LEFT,offset:h=s.Q.ZERO,padding:u=s.Q.ZERO}){const d=e*n+u.y*2+o*(e-1),f=r+u.x*2,p={...a};l.x==="right"?p.x-=r+h.x*2:p.x+=h.x,l.y==="top"?p.y-=d+h.y*2:p.y+=h.y,this.container({region:s.jt.construct(p,{width:f,height:d}),backgroundColor:S=>S.colors.gray.l1});for(let S=0;S<e;S++){const x=s.jt.construct(s.Q.construct(p.x+u.x,p.y+S*n+u.y+o*S),r,n);i(S,x)}}drawTextInCenter({box:e,text:n,level:r}){const o=c.dimensions(n,this.canvas.font,this.canvas),a=s.jt.positionInCenter(s.jt.construct(s.Q.ZERO,o),e);return this.text({text:n,position:s.jt.topLeft(a),level:r})}text({text:e,position:n,level:r="p",weight:o,shade:a,maxWidth:i,code:l,justify:h="left",align:u="top",useAtlas:d,color:f}){this.canvas.font=Le.fontString(this.theme,{level:r,weight:o,code:l}),f!=null?this.canvas.fillStyle=s.Rr.hex(this.resolveColor(f)):a==null?this.canvas.fillStyle=s.Rr.hex(this.theme.colors.text):this.canvas.fillStyle=s.Rr.hex(this.theme.colors.gray[`l${a}`]),this.canvas.textAlign=h,this.canvas.textBaseline=u;let p;i!=null&&(p=this.canvas.scissor(s.jt.construct(n,i,1e3))),this.canvas.fillText(e,n.x,n.y,void 0,{useAtlas:d}),p?.()}}const ln=g.z.object({position:g.z.number().optional(),pixelPosition:g.z.number().optional(),dragging:g.z.boolean(),lineWidth:g.z.number().optional().default(1),lineDash:g.z.number().optional().default(20),color:s.Rr.colorZ}),da=3;class Ne extends c.Leaf{static TYPE="Rule";schema=ln;lastUpdateRef=null;afterUpdate(e){this.internal.renderCtx=c.Context.use(e);const n=c.use(e);this.internal.draw=new ce(this.internal.renderCtx.upper2d,n),G(e,"tool")}afterDelete(e){G(e,"tool")}updatePositions({decimalToDataScale:e,plot:n}){const r=this.state.dragging,o=this.prevState.dragging&&!r;if((r||o)&&this.state.pixelPosition!=null){if(this.lastUpdateRef??=this.state.pixelPosition,Math.abs(this.state.pixelPosition-this.lastUpdateRef)<da&&!o)return this.state.pixelPosition;this.lastUpdateRef=this.state.pixelPosition;const l=e.pos(this.state.pixelPosition/s.jt.height(n));return this.setState(h=>({...h,position:l})),this.state.pixelPosition}if(this.state.position==null){const i=e.pos(.5);this.setState(l=>({...l,position:i}))}const a=e.reverse().pos(this.state.position)*s.jt.height(n);if(!isNaN(a)){if(this.state.pixelPosition!=null&&Math.abs(a-this.state.pixelPosition)<1)return this.state.pixelPosition;this.setState(i=>({...i,pixelPosition:a}))}return a}render(e){if(this.deleted)return;const{renderCtx:n}=this.internal,{location:r,plot:o}=e,a=s.K.direction(r),{upper2d:i}=n,l=this.internal.draw,h=this.updatePositions(e)+s.jt.top(e.plot);l.rule({stroke:this.state.color,lineWidth:this.state.lineWidth,lineDash:this.state.lineDash,direction:a,region:o,position:h}),i.fillStyle=s.Rr.hex(this.state.color),i.lineJoin="round",i.lineWidth=3.5,i.lineCap="round",i.beginPath();const u=4;if(r==="left"){const d=s.jt.left(o)-1;i.moveTo(d,h),i.lineTo(d-u,h-u),i.lineTo(d-u,h+u)}else r==="right"&&(i.moveTo(s.jt.right(o),h),i.lineTo(s.jt.right(o)+u,h-u),i.lineTo(s.jt.right(o)+u,h+u));i.closePath(),i.stroke()}}const Er={[Ne.TYPE]:Ne},fa=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Er,Rule:Ne,ruleStateZ:ln},Symbol.toStringTag,{value:"Module"})),pa=$e.extend({location:s.K.x.optional().default("left")}),Bn=2,ga=t=>s.jt.signedWidth(t)<Bn||s.jt.signedHeight(t)<Bn;class lt extends Cr{static TYPE="YAxis";schema=$e;xBounds(){return s.H.max(this.lines.map(e=>e.xBounds()).filter(e=>s.H.isFinite(e)))}bounds(e){const[n,r]=this.iBounds(e,this.dataBounds.bind(this));if(r!=null)throw r;return n}render(e){if(this.deleted)return;const[n,r]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport),o=n.invert().reverse();if(this.renderAxis(e,o),this.renderLines(e,n),this.renderRules(e,o),r!=null)throw r}renderLines({xDataToDecimalScale:e,plot:n,canvases:r,exposure:o},a){if(!r.includes("gl")||ga(n))return;const i={region:n,dataToDecimalScale:new s.C.XY(e,a),exposure:o};this.lines.forEach(l=>l.render(i))}renderRules({container:e,plot:n,canvases:r},o){if(!r.includes("upper2d"))return;const{location:a}=this.state,{render:i}=this.internal,l=s.jt.construct(s.jt.left(e),s.jt.top(n),s.jt.width(e),s.jt.height(n)),h=i.scissor(l,s.Q.ZERO,["upper2d"]),u={container:e,plot:n,decimalToDataScale:o,location:a};this.rules.map(d=>d.render(u)),h()}findByXValue({xDataToDecimalScale:e,plot:n,viewport:r,hold:o,exposure:a},i){const[l,h]=this.dataToDecimalScale(o,this.dataBounds.bind(this),r);if(h!=null)throw h;const u=new s.C.XY(e,l),d={region:n,dataToDecimalScale:u,exposure:a};return this.lines.map(f=>({...f.findByXValue(d,i),units:this.state.label}))}dataBounds(){return this.lines.map(e=>e.yBounds())}get lines(){return this.childrenOfType(Je.TYPE)}get rules(){return this.childrenOfType(Ne.TYPE)}}const ma=g.z.object({start:s.r.z,end:s.r.z});class $n extends c.Leaf{static TYPE="range-annotation";schema=ma;afterUpdate(e){this.internal.render=c.Context.use(e),this.internal.draw=new ce(this.internal.render.upper2d,c.use(e))}}const Sa=c.YI.payloadZ.extend({viewport:s.H.bounds}),kr=g.z.object({cursor:s.Q.xy.or(g.z.null()),hovered:Sa.or(g.z.null()),count:g.z.number()});class ct extends c.Leaf{static TYPE="range-provider";schema=kr;fetchedInitial=s.m.ZERO;afterUpdate(e){const{internal:n}=this;n.render=c.Context.use(e),n.draw=new ce(n.render.upper2d,c.use(e)),n.requestRender=gt(e),n.runAsync=c.useErrorHandler(e),n.ranges??=new Map;const r=c.use$1(e);if(n.requestRender("tool"),r==null)return;n.client=r;const o=cl(e,this.key);n.removeListener?.();const a=o.ranges.onSet(l=>{n.client!=null&&(s.Rr.isCrude(l.color)&&n.ranges.set(l.key,n.client.ranges.sugarOne(l)),this.setState(h=>({...h,count:n.ranges.size})),n.requestRender("tool"))}),i=o.ranges.onDelete(async l=>{n.ranges.delete(l),this.setState(h=>({...h,count:n.ranges.size})),n.requestRender("tool")});n.removeListener=()=>{a(),i()}}fetchInitial(e){const{internal:n}=this,{client:r,runAsync:o}=n;r==null||this.fetchedInitial.equals(e,s.a$1.minutes(1))||(this.fetchedInitial=e,o(async()=>{(await r.ranges.retrieve(e)).forEach(i=>{s.Rr.isCrude(i.color)&&n.ranges.set(i.key,i)}),this.setState(i=>({...i,count:n.ranges.size}))},"failed to fetch initial ranges"))}render(e){const{dataToDecimalScale:n,region:r,viewport:o,timeRange:a}=e;this.fetchInitial(a);const{draw:i,ranges:l}=this.internal,h=n.scale(s.jt.xBounds(r)),u=this.state.cursor==null?null:this.state.cursor.x;let d=null;const f=i.canvas.scissor(s.jt.construct({x:s.jt.left(r),y:s.jt.top(r)-35},{x:s.jt.right(r),y:s.jt.bottom(r)}));l.forEach(p=>{const S=s.Rr.colorZ.safeParse(p.color);if(!S.success)return;const x=S.data;let b=h.pos(Number(p.timeRange.start.valueOf()));const v=h.pos(Number(p.timeRange.end.valueOf()));if(v<s.jt.left(r)||b>s.jt.right(r))return;b=s.R(b,s.jt.left(r)-2,s.jt.right(r)-1);let R=!1;u!=null&&(R=s.H.contains({lower:b,upper:v},u)),R&&(d={key:p.key,parent:p.parent,name:p.name,color:p.color,labels:p.labels,timeRange:p.timeRange,viewport:{lower:n.scale(s.jt.xBounds(o)).pos(Number(p.timeRange.start.valueOf())),upper:n.scale(s.jt.xBounds(o)).pos(Number(p.timeRange.end.valueOf()))}}),i.container({region:s.jt.construct({x:b,y:s.jt.top(r)-1},{x:v,y:s.jt.bottom(r)-1}),backgroundColor:s.Rr.setAlpha(x,.2),bordered:!1});const L=s.jt.construct({x:b+1,y:s.jt.top(r)-34},{x:v-1,y:s.jt.top(r)-12});i.container({region:L,backgroundColor:s.jt.width(L)<20?s.Rr.setAlpha(x,.4):E=>R?E.colors.gray.l2:E.colors.gray.l0,bordered:!0,borderWidth:1,borderRadius:2,borderColor:s.Rr.setAlpha(x,.8)}),i.text({text:p.name,position:{x:b+8,y:s.jt.top(r)-30},level:"small",shade:10,weight:500,maxWidth:v-b-16})}),f(),d!=null?this.setState(p=>({...p,hovered:d})):this.state.hovered&&this.setState(p=>({...p,hovered:null}))}}const ya={[$n.TYPE]:$n,[ct.TYPE]:ct},ba=$e;class ut extends Cr{static TYPE="XAxis";schema=$e;render(e){if(this.deleted)return;const[n,r]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport);if(this.renderAxis(e,n.reverse()),this.renderYAxes(e,n),this.renderRanges(e,n),r!=null)throw r}findByXDecimal(e,n){const[r,o]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport);if(o!=null)throw o;return this.findByXValue(e,r.reverse().pos(n))}findByXValue(e,n){const[r,o]=this.dataToDecimalScale(e.hold,this.dataBounds.bind(this),e.viewport);if(o!=null)throw o;const a={...e,xDataToDecimalScale:r};return this.yAxes.map(i=>i.findByXValue(a,n)).flat()}renderYAxes(e,n){const r={...e,xDataToDecimalScale:n};this.yAxes.forEach(o=>o.render(r))}get yAxes(){return this.childrenOfType(lt.TYPE)}get ranges(){return this.childrenOfType(ct.TYPE)}bounds(e){const[n,r]=this.iBounds(e,this.dataBounds.bind(this));if(r!=null)throw r;return n}renderRanges(e,n){const r=this.bounds(e.hold),o=s.H.min([r,s.m.MAX.numericBounds]),a=new s.m(o.lower,o.upper);this.ranges.forEach(i=>i.render({dataToDecimalScale:n,region:e.plot,viewport:e.viewport,timeRange:a}))}dataBounds(){return this.yAxes.map(e=>e.xBounds())}}const xa=s.Q.construct(12),va=3,Ta=14,wa=s.Q.construct(6),cn=g.z.object({position:s.Q.xy.or(g.z.null()),textColor:s.Rr.colorZ.optional().default(s.Rr.ZERO),backgroundColor:s.Rr.colorZ.optional().default(s.Rr.ZERO),borderColor:s.Rr.colorZ.optional().default(s.Rr.ZERO),ruleColor:s.Rr.colorZ.optional().default(s.Rr.ZERO),ruleStrokeWidth:g.z.number().optional().default(1),ruleStrokeDash:g.z.number().default(0)});class Ze extends c.Leaf{static TYPE="tooltip";schema=cn;afterUpdate(e){const n=c.use(e);s.Rr.isZero(this.state.textColor)&&(this.state.textColor=n.colors.text),s.Rr.isZero(this.state.backgroundColor)&&(this.state.backgroundColor=n.colors.gray.l1),s.Rr.isZero(this.state.borderColor)&&(this.state.borderColor=n.colors.border),s.Rr.isZero(this.state.ruleColor)&&(this.state.ruleColor=n.colors.gray.l7),this.internal.dotColor=n.colors.text,this.internal.dotColorContrast=n.colors.textInverted,this.internal.render=c.Context.use(e),this.internal.draw=new ce(this.internal.render.upper2d,n),G(e,"tool")}afterDelete(e){G(e,"tool")}render(e){if(this.deleted||this.state.position==null)return;const{region:n}=e,r=s.C.XY.scale(s.jt.DECIMAL).scale(n),o=s.C.XY.scale(n).scale(s.jt.DECIMAL),a=e.findByXDecimal(o.x.pos(this.state.position.x)),i=a.filter(b=>s.Q.isFinite(b.value)),{draw:l}=this.internal,h=i.reduce((b,v)=>b+v.position.x,0)/i.length,u=new s.r(i.reduce((b,v)=>b+v.value.x,0)/i.length),d=r.x.pos(h);if(!s.H.contains(s.jt.xBounds(n),d))return;l.rule({stroke:this.state.ruleColor,lineWidth:this.state.ruleStrokeWidth,lineDash:this.state.ruleStrokeDash,direction:"y",region:n,position:d}),i.forEach(b=>{const v=r.pos(b.position);l.circle({fill:s.Rr.setAlpha(b.color,.5),radius:8,position:v}),l.circle({fill:s.Rr.setAlpha(b.color,.8),radius:5,position:v}),l.circle({fill:s.Rr.pickByContrast(b.color,this.internal.dotColor,this.internal.dotColorContrast),radius:2,position:v})});const f=o.pos(this.state.position),p={...s.K.TOP_LEFT};f.x>.6&&(p.x="right"),f.y>.6&&(p.y="bottom");let S=a.reduce((b,v)=>Math.max(b,v.label?.length??0),0);const x=u.toString("preciseDate","local").length;x>S&&(S=x),l.list({root:p,offset:xa,length:i.length+1,padding:wa,itemHeight:Ta,spacing:va,width:S*7+48,position:this.state.position,draw:(b,v)=>{let R="",L="",E=this.state.textColor;if(b===0)R="Time",L=u.toString("preciseDate","local");else{const M=i[b-1];R=M.label??"",L=s.Ar.roundBySpan(M.value.y,M.bounds).toString(),E=M.color}l.text({position:s.jt.topLeft(v),text:R,level:"small",weight:500,color:E}),l.text({position:s.Q.translateY(s.jt.topRight(v),-1),text:L,level:"small",justify:"right",code:!0,shade:10})}})}}const Pr={[Ze.TYPE]:Ze},Ca=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Pr,Tooltip:Ze,tooltipStateZ:cn},Symbol.toStringTag,{value:"Module"})),un=g.z.object({one:s.Q.xy.nullable(),two:s.Q.xy.nullable(),hover:s.Q.xy.nullable(),color:g.z.union([s.Rr.colorZ,g.z.object({verticalLine:s.Rr.colorZ.optional().default(s.Rr.ZERO),horizontalLine:s.Rr.colorZ.optional().default(s.Rr.ZERO),obliqueLine:s.Rr.colorZ.optional().default(s.Rr.ZERO)})]).optional().default(s.Rr.ZERO),strokeWidth:g.z.number().optional().default(1),strokeDash:g.z.number().optional().default(2)});class Ie extends c.Leaf{static TYPE="measure";schema=un;afterUpdate(e){const n=c.Context.use(e);this.internal.theme=c.use(e),this.internal.renderCtx=n,this.internal.draw=new ce(n.upper2d,this.internal.theme),G(e,"tool")}afterDelete(e){G(e,"layout")}get verticalLineColor(){return s.Rr.isColor(this.state.color)?s.Rr.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:s.Rr.isZero(this.state.color.verticalLine)?this.internal.theme.colors.gray.l8:this.state.color.verticalLine}get horizontalLineColor(){return s.Rr.isColor(this.state.color)?s.Rr.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:s.Rr.isZero(this.state.color.horizontalLine)?this.internal.theme.colors.gray.l8:this.state.color.horizontalLine}get obliqueLineColor(){return s.Rr.isColor(this.state.color)?s.Rr.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:s.Rr.isZero(this.state.color.obliqueLine)?this.internal.theme.colors.gray.l8:this.state.color.obliqueLine}find(e){const{one:n,two:r}=this.state;if(n==null||r==null)return null;const{one:o,two:a}=this.prevState,{dataOne:i,dataTwo:l}=this.internal;if(o!=null&&s.Q.equals(n,o)&&a!=null&&s.Q.equals(r,a)&&i!=null&&l!=null){const[b,v]=[e.findByXValue(i.x),e.findByXValue(l.x)];return b.length===0||v.length===0?null:[b.sort((R,L)=>s.Q.distance(i,R.value)-s.Q.distance(i,L.value))[0],v.sort((R,L)=>s.Q.distance(l,R.value)-s.Q.distance(l,L.value))[0]]}const h=s.C.XY.scale(e.region).scale(s.jt.DECIMAL),[u,d]=[h.pos(n),h.pos(r)],[f,p]=[e.findByXDecimal(u.x),e.findByXDecimal(d.x)];if(f.length===0||p.length===0)return null;const[S,x]=[f.sort((b,v)=>s.Q.distance(u,b.position)-s.Q.distance(u,v.position))[0],p.sort((b,v)=>s.Q.distance(d,b.position)-s.Q.distance(d,v.position))[0]];return this.internal.dataOne=S.value,this.internal.dataTwo=x.value,[S,x]}renderHover(e){if(this.state.hover==null)return;const n=this.state.hover,r=s.C.XY.scale(e.region).scale(s.jt.DECIMAL),o=r.pos(n),a=e.findByXDecimal(r.pos(n).x);if(a.length===0)return;const i=a.sort((h,u)=>s.Q.distance(o,h.position)-s.Q.distance(o,u.position))[0],{draw:l}=this.internal;l.circle({fill:s.Rr.setAlpha(i.color,.5),radius:9,position:r.reverse().pos(i.position)})}render(e){if(this.deleted)return;this.renderHover(e);const n=this.find(e);if(n==null)return;const[r,o]=n,{draw:a}=this.internal,{strokeDash:i,strokeWidth:l}=this.state,h=s.C.XY.scale(s.jt.DECIMAL).scale(e.region),u=h.pos(r.position),d=h.pos(o.position),f=new s.a$1(Math.abs(r.value.x-o.value.x)),p=Math.abs(r.value.y-o.value.y),S=p/f.seconds;a.line({start:s.Q.construct(u.x,u.y),end:s.Q.construct(u.x,d.y),stroke:this.verticalLineColor,lineDash:i,lineWidth:l}),a.textContainer({text:[`${p.toFixed(2)} ${r.units??""}`],direction:"x",position:s.Q.construct(u.x,(u.y+d.y)/2),level:"small"}),a.line({start:s.Q.construct(u.x,d.y),end:s.Q.construct(d.x,d.y),stroke:this.horizontalLineColor,lineDash:i,lineWidth:l}),a.textContainer({text:[f.truncate(s.a$1.MILLISECOND).toString()],direction:"x",position:s.Q.construct((u.x+d.x)/2,d.y),level:"small"}),a.line({start:s.Q.construct(u.x,u.y),end:s.Q.construct(d.x,d.y),stroke:this.obliqueLineColor,lineDash:i,lineWidth:l}),a.textContainer({text:[`${S.toFixed(2)} ${r.units??""} / S`],direction:"x",position:s.Q.construct((u.x+d.x)/2,(u.y+d.y)/2),level:"small"}),a.circle({fill:s.Rr.setAlpha(r.color,.5),radius:8,position:u}),a.circle({fill:s.Rr.setAlpha(r.color,.8),radius:5,position:u}),a.circle({fill:s.Rr.WHITE,radius:2,position:u}),a.circle({fill:s.Rr.setAlpha(o.color,.5),radius:8,position:d}),a.circle({fill:s.Rr.setAlpha(o.color,.8),radius:5,position:d}),a.circle({fill:s.Rr.WHITE,radius:2,position:d})}}const Lr={[Ie.TYPE]:Ie},Ra=Object.freeze(Object.defineProperty({__proto__:null,Measure:Ie,REGISTRY:Lr,measureStateZ:un},Symbol.toStringTag,{value:"Module"})),Dr=g.z.object({container:s.jt.box,viewport:s.jt.box,hold:g.z.boolean().optional().default(!1),grid:g.z.record(g.z.string(),vr),visible:g.z.boolean().optional().default(!0),clearOverScan:s.Q.crudeZ.optional().default(s.Q.ZERO)}),Ea=(t,e)=>{const n=s.jt.width(t)*Math.sqrt(s.jt.height(t)),r=s.jt.width(e)*Math.sqrt(s.jt.height(e));return n/r},ka=["upper2d","lower2d","gl"],Pa=["upper2d"];class Zt extends c.Composite{static TYPE="LinePlot";schema=Dr;afterUpdate(e){this.internal.instrumentation=c.useInstrumentation(e,"lineplot"),this.internal.handleError=c.useErrorHandler(e),this.internal.renderCtx=c.Context.use(e),pt(e,n=>{this.state.visible&&this.requestRender("low",n)}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender("high","layout")}afterDelete(e){this.internal.renderCtx=c.Context.use(e),this.requestRender("high","layout")}findByXDecimal(e){const n={...this.state,plot:this.calculatePlot(),exposure:this.exposure};return this.axes.flatMap(r=>r.findByXDecimal(n,e)).flat()}findByXValue(e){const n={...this.state,plot:this.calculatePlot(),exposure:this.exposure};return this.axes.flatMap(r=>r.findByXValue(n,e)).flat()}get axes(){return this.childrenOfType(ut.TYPE)}get tooltips(){return this.childrenOfType(Ze.TYPE)}get measures(){return this.childrenOfType(Ie.TYPE)}get bounds(){return this.childrenOfType(tt.TYPE)}get exposure(){return Ea(this.state.viewport,this.state.container)}renderAxes(e,n){const r={...this.state,plot:e,canvases:n,exposure:this.exposure};this.axes.forEach(o=>o.render(r))}renderTooltips(e,n){const r={findByXDecimal:this.findByXDecimal.bind(this),region:e,canvases:n};this.tooltips.forEach(o=>o.render(r))}renderBounds(){this.bounds.forEach(e=>e.render({getBounds:()=>{const n={};return this.axes.forEach(r=>{const o=r.state.axisKey??r.key;n[o]=r.bounds(this.state.hold),r.yAxes.forEach(a=>{const i=a.state.axisKey??a.key;n[i]=a.bounds(this.state.hold)})}),n}}))}renderMeasures(e){const n={findByXDecimal:this.findByXDecimal.bind(this),findByXValue:this.findByXValue.bind(this),region:e};this.measures.forEach(r=>r.render(n))}calculatePlot(){return sa(this.state.grid,this.state.container)}render(e){const{instrumentation:n,renderCtx:r,handleError:o}=this.internal;if(this.deleted){n.L.debug("deleted, skipping render",{key:this.key});return}if(!this.state.visible)return n.L.debug("not visible, skipping render",{key:this.key}),({canvases:d})=>r.erase(this.state.container,this.state.clearOverScan,...d);const a=this.calculatePlot();n.L.debug("rendering",{key:this.key,viewport:this.state.viewport,container:this.state.container,grid:this.state.grid,plot:a,canvases:e});const i=s.Q.construct(this.state.clearOverScan),l=r.scissor(this.state.container,i,e.filter(d=>d!=="gl")),h=r.scissor(a,s.Q.ZERO,e.filter(d=>d==="gl"));try{this.renderAxes(a,e),this.renderTooltips(a,e),this.renderMeasures(a),this.renderBounds()}catch(d){o(d,"failed to render line plot")}finally{l(),h()}n.L.debug("rendered",{key:this.key});const u=s.jt.copy(this.state.container);return({canvases:d})=>r.erase(u,this.state.clearOverScan,...d)}requestRender(e,n){const{renderCtx:r}=this.internal;let o=ka;n==="tool"&&(o=Pa),r.loop.set({key:`${this.type}-${this.key}`,render:()=>this.render(o),priority:e,canvases:o})}}const La={[Zt.TYPE]:Zt,[ut.TYPE]:ut,[lt.TYPE]:lt,[tt.TYPE]:tt},Mr=g.z.object({region:s.jt.box,wheelPos:g.z.number(),scrolling:g.z.boolean(),empty:g.z.boolean(),visible:g.z.boolean(),telem:c.seriesSourceSpecZ.optional().default(c.noopSeriesSourceSpec),font:c.levelZ.optional().default("p"),color:s.Rr.colorZ.optional().default(s.Rr.ZERO),overshoot:s.Q.xy.optional().default({x:0,y:0})}),Da=.98,Pe="lower2d",Ma={offset:0n,offsetRef:0n,scrollRef:0};class _e extends c.Leaf{static TYPE="log";static z=Mr;schema=_e.z;values=new s.Oe([]);scrollState=Ma;afterUpdate(e){const{internal:n}=this;n.render=c.Context.use(e),n.theme=c.use(e),s.Rr.isZero(this.state.color)?this.internal.textColor=n.theme.colors.gray.l11:n.textColor=this.state.color,n.telem=c.useSource(e,this.state.telem,n.telem);const{scrolling:r,wheelPos:o}=this.state;if(this.state.scrolling&&!this.prevState.scrolling){const h=this.values.alignmentBounds.upper-1n;this.scrollState={offset:h,offsetRef:h,scrollRef:this.state.wheelPos}}else if(r){const{scrollState:h,values:u}=this,d=Math.ceil((o-this.scrollState.scrollRef)/this.lineHeight);h.offset=this.values.traverseAlignment(h.offsetRef,-BigInt(d)),h.offset<u.alignmentBounds.lower+BigInt(this.visibleLineCount)&&(h.offset=u.alignmentBounds.lower,this.setState(f=>({...f,wheelPos:this.prevState.wheelPos}))),h.offset>=u.alignmentBounds.upper&&this.setState(f=>({...f,scrolling:!1}))}const[i,l]=this.internal.telem.value();this.values=l,this.checkEmpty(),n.stopListeningTelem?.(),n.stopListeningTelem=n.telem.onChange(()=>{const[h,u]=this.internal.telem.value();this.checkEmpty(),this.values=u,this.requestRender()}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender()}checkEmpty(){const e=this.values.length===0;e!==this.state.empty&&this.setState(n=>({...n,empty:e}))}afterDelete(){const{telem:e,render:n}=this.internal;e.cleanup?.(),n.erase(s.jt.construct(this.state.region),s.Q.ZERO,Pe)}requestRender(){const{render:e}=this.internal;e.loop.set({key:`${this.type}-${this.key}`,render:()=>this.render(),priority:"high",canvases:[Pe]})}get lineHeight(){return this.internal.theme.typography[this.state.font].size*this.internal.theme.sizes.base}get totalHeight(){return Math.ceil(this.values.length*this.lineHeight)}get visibleLineCount(){return Math.min(Math.floor((s.jt.height(this.state.region)-12)/this.lineHeight),this.values.length)}render(){const{render:e}=this.internal,n=this.state.region;if(s.jt.areaIsZero(n))return;if(!this.state.visible)return()=>e.erase(n,s.Q.ZERO,Pe);let r;if(!this.state.scrolling)r=this.values.subIterator(this.values.length-this.visibleLineCount,this.values.length);else{const u=this.values.traverseAlignment(this.scrollState.offset,-BigInt(this.visibleLineCount));r=this.values.subAlignmentSpanIterator(u,this.visibleLineCount)}const o=this.state.region,a=e[Pe],i=new ce(a,this.internal.theme),l=e.scissor(o,s.Q.ZERO,[Pe]);this.renderElements(i,r),this.renderScrollbar(i),l();const h=s.jt.copy(this.state.region);return({canvases:u})=>e.erase(h,this.state.overshoot,...u)}renderScrollbar(e){const n=this.state.region,r=s.jt.height(n)/this.totalHeight*s.jt.height(n);if(r>=s.jt.height(n)*Da)return;let o=s.jt.bottom(n)-r;this.state.scrolling&&(o-=Number(this.values.distance(this.values.alignmentBounds.upper,this.scrollState.offset))/this.values.length*s.jt.height(n)),o<0&&(o=s.jt.top(n)),e.container({region:s.jt.construct({x:s.jt.right(n)-6,y:o},{width:6,height:r}),bordered:!1,backgroundColor:a=>a.colors.gray.l6})}renderElements(e,n){const r=this.state.region;let o=0;for(const a of n){const i=this.values.dataType.equals(s.n.JSON)?JSON.stringify(a):a.toString();e.text({text:i,level:this.state.font,shade:11,position:s.Q.translate(s.jt.topLeft(r),{x:6,y:o*this.lineHeight+6}),code:!0}),o++}}}const Aa={[_e.TYPE]:_e},Oa="relationships",Na="resources",Za={channel:c.gI.RELATIONSHIP_SET_CHANNEL_NAME,schema:c.gI.relationshipZ,onChange:({store:t,changed:e})=>t.relationships.set(c.gI.relationshipToString(e),e)},Ia={channel:c.gI.RELATIONSHIP_DELETE_CHANNEL_NAME,schema:c.gI.relationshipZ,onChange:({store:t,changed:e})=>{t.relationships.delete(c.gI.relationshipToString(e))}},_a={equal:(t,e)=>c.gI.idsEqual(t.from,e.from)&&c.gI.idsEqual(t.to,e.to)&&t.type===e.type,listeners:[Za,Ia]},Ya={channel:c.gI.RESOURCE_SET_CHANNEL_NAME,schema:c.gI.resourceZ,onChange:async({store:t,changed:e})=>{t.resources.set(e.key,n=>n==null?e:{...n,...e})}},ja={channel:c.gI.RESOURCE_DELETE_CHANNEL_NAME,schema:c.gI.idZ,onChange:({store:t,changed:e})=>t.resources.delete(e.key)},Ua={equal:(t,e)=>c.T.equal(t,e),listeners:[Ya,ja]},za="ranges",Ba={channel:c.YI.SET_CHANNEL_NAME,schema:c.YI.payloadZ,onChange:async({store:t,changed:e,client:n})=>{const r=n.ranges.sugarOne(e),o=t.ranges.get(e.key);let a;o?.labels==null&&(a=await r.retrieveLabels());let i=null;o?.parent==null&&(i=await r.retrieveParent()),t.ranges.set(e.key,l=>n.ranges.sugarOne({...r.payload,labels:l?.labels??a,parent:l?.parent??i}))}},$a={channel:c.YI.DELETE_CHANNEL_NAME,schema:c.YI.keyZ,onChange:({store:t,changed:e})=>t.ranges.delete(e)},Fa={equal:(t,e)=>c.T.equal(t.payload,e.payload),listeners:[Ba,$a]},Ha=g.z.object({region:s.jt.box,clearOverScan:s.Q.crudeZ.optional().default(0),visible:g.z.boolean().optional().default(!0),autoRenderInterval:g.z.number().optional().default(1e3)}),Fn=["upper2d","lower2d"];class Te extends c.Composite{static TYPE="Table";static stateZ=Ha;schema=Te.stateZ;afterUpdate(e){const{internal:n}=this;n.renderCtx=c.Context.use(e),n.handleError=c.useErrorHandler(e),n.autoRenderInterval??=setInterval(()=>this.state.visible&&this.requestRender("low"),this.state.autoRenderInterval),pt(e,()=>{this.state.visible&&this.requestRender("low")}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender("high")}afterDelete(){this.internal.autoRenderInterval!=null&&clearInterval(this.internal.autoRenderInterval),this.requestRender("high")}render(){if(this.deleted)return;const e=s.jt.copy(this.state.region);if(!this.state.visible)return()=>this.internal.renderCtx.erase(e,this.state.clearOverScan);const{renderCtx:n,handleError:r}=this.internal,o=s.C.XY.translate(s.jt.topLeft(this.state.region)),a=n.scissor(this.state.region,s.Q.construct(this.state.clearOverScan),Fn);try{for(const i of this.children)i.render({viewportScale:o})}catch(i){r(i,"Failed to render table")}finally{a()}return()=>this.internal.renderCtx.erase(e,this.state.clearOverScan)}requestRender(e){const{renderCtx:n}=this.internal;n.loop.set({key:`${Te.TYPE}-${this.key}`,render:this.render.bind(this),priority:e,canvases:Fn})}}const qa={[Te.TYPE]:Te},Ar=g.z.object({authority:s.Zr.authorityZ.optional(),valid:g.z.boolean().optional()}).default({authority:void 0,valid:!1}),Or=g.z.object({triggered:g.z.boolean(),status:s.Xr.statusZ(Ar),sink:c.booleanSinkSpecZ.optional().default(c.noopBooleanSinkSpec),source:c.statusSourceSpecZ.optional().default(c.noopStatusSourceSpec)});class It extends c.Leaf{static TYPE="Chip";schema=Or;afterUpdate(e){const{internal:n}=this,{sink:r,source:o}=this.state;n.source=c.useSource(e,o,n.source),n.sink=c.useSink(e,r,n.sink),this.state.triggered&&!this.prevState.triggered&&n.sink.set(this.state.status.details?.authority!==s.Zr.ABSOLUTE_AUTHORITY),this.updateEnabledState(),n.stopListening?.(),n.stopListening=n.source.onChange(()=>this.updateEnabledState())}updateEnabledState(){const e=this.internal.source.value();c.T.equal(e,this.state.status)||this.setState(n=>({...n,status:e,triggered:!1}))}afterDelete(){this.internal.stopListening(),this.internal.source.cleanup?.(),this.internal.sink.cleanup?.()}render(){}}const Nr=g.z.object({}),Hn="control-state-provider",Zr=c._I.stateZ.extend({subjectColor:s.Rr.colorZ});class Ye extends c.Composite{static TYPE="StateProvider";schema=Nr;colors=new Map;tracker;disconnectTrackerChange;obs=new c.a.Observer;static use(e){return e.get(Hn)}afterUpdate(e){const{internal:n}=this;n.instrumentation=c.useInstrumentation(e,"control-state");const r=c.use(e);n.palette=r.colors.visualization.palettes.default,n.defaultColor=r.colors.gray.l8;const o=c.use$1(e);if(n.client!=null&&o===n.client)return;n.client=o,e.set(Hn,this),c.useErrorHandler(e)(async()=>{await this.maybeCloseTracker(),n.client!=null&&(this.internal.instrumentation.L.debug("starting state tracker"),await this.openTracker(n.client))},"failed to open control state tracker")}async maybeCloseTracker(){this.tracker!=null&&(this.internal.instrumentation.L.debug("stopping state tracker"),this.disconnectTrackerChange?.(),await this.tracker.close(),this.tracker=void 0)}afterDelete(e){c.useErrorHandler(e)(async()=>{await this.maybeCloseTracker()},"failed to close control state tracker")}onChange(e){return this.obs.onChange(e)}get(e){return Array.isArray(e)?s.c.unique(e).map(n=>this.getOne(n)).filter(n=>n!=null):this.getOne(e)}getOne(e){if(this.tracker==null)return;const n=this.tracker.states.get(e);if(n!=null)return{...n,subjectColor:this.colors.get(n.subject.key)??this.internal.defaultColor}}async openTracker(e){const{internal:n}=this,{instrumentation:r}=n;try{this.tracker=await e.control.openStateTracker()}catch{r.L.error("failed to open state tracker");return}this.disconnectTrackerChange?.(),this.disconnectTrackerChange=this.tracker.onChange(o=>{if(r.L.debug("transfer",{transfers:o.map(a=>c._I.transferString(a))}),this.tracker==null)throw new c.Bt("tracker is null inside it's own onChange callback!");this.updateColors(this.tracker),this.obs.notify(o)})}updateColors(e){const n=e.subjects(),r=n.map(i=>i.key),o=Array.from(this.colors.values());this.colors.forEach((i,l)=>!r.includes(l)&&this.colors.delete(l));const{palette:a}=this.internal;n.forEach(i=>{if(this.colors.has(i.key))return;const l=a.find(h=>!o.includes(h))??a[0];this.colors.set(i.key,l),o.push(l)})}}const Ir=["acquired","released","overridden","failed"],_r=g.z.enum(Ir),Yr=g.z.object({name:g.z.string(),authority:g.z.number().default(0),acquireTrigger:g.z.number(),status:_r.optional(),needsControlOf:c.SI.keyZ.array().optional().default([])});class _t extends c.Composite{static TYPE="Controller";schema=Yr;registry=new Map;writer;afterUpdate(e){const{internal:n}=this;n.instrumentation=c.useInstrumentation(e),n.addStatus=c.useAdder(e),n.runAsync=c.useErrorHandler(e),(n.prevTrigger==null||Math.abs(this.state.acquireTrigger-n.prevTrigger)>1)&&(n.prevTrigger=this.state.acquireTrigger);const r=c.use$1(e),o=Ye.use(e);n.stateProv=o,n.telemCtx=c.useChildContext(e,this,n.telemCtx),n.client=r,n.runAsync(async()=>{n.client==null&&await this.release(),this.state.acquireTrigger>n.prevTrigger?await this.acquire():this.state.acquireTrigger<n.prevTrigger&&await this.release()},"failed to acquire control")}afterDelete(){const{internal:e}=this;e.runAsync(async()=>await this.release(),"failed to release control")}async updateNeedsControlOf(){const{client:e}=this.internal;if(e==null)return;const n=new Set([]);for(const o of this.registry.keys())(await o.needsControlOf(e)).forEach(i=>i!==0&&n.add(i));const r=Array.from(n);s.k.unorderedPrimitiveArrays(this.state.needsControlOf,r)!==s.k.EQUAL&&this.setState(o=>({...o,needsControlOf:r}))}async acquire(){this.internal.prevTrigger=this.state.acquireTrigger;const{client:e,addStatus:n}=this.internal;if(e==null)return n({message:`Cannot acquire control on ${this.state.name} because no cluster has been connected.`,variant:"warning"});try{await this.updateNeedsControlOf();const r=this.state.needsControlOf;if(r.length===0)return n({message:`Cannot acquire control on ${this.state.name} because there are no channels to control.`,variant:"warning"});const o=c.y.now().sub(s.a$1.milliseconds(1));this.writer=await e.openWriter({start:o,channels:r,controlSubject:{key:this.key,name:this.state.name},authorities:this.state.authority,enableAutoCommit:!0}),this.setState(a=>({...a,status:"acquired"}))}catch(r){if(this.setState(o=>({...o,status:"failed"})),!(r instanceof Error))throw r;n({variant:"error",message:`${this.state.name} failed to acquire control`,description:r.message})}}async release(){this.internal.prevTrigger=this.state.acquireTrigger;try{await this.writer?.close()}catch(e){this.internal.addStatus({message:`${this.state.name} failed to release control: ${e.message}`,variant:"error"})}finally{this.setState(e=>({...e,status:"released"})),this.writer=void 0}}async set(e){this.writer==null&&await this.acquire(),await this.writer?.write(e)}async setAuthority(e,n){this.writer==null&&await this.acquire(),await this.writer?.setAuthority(Object.fromEntries(e.map(r=>[r,n])))}async releaseAuthority(e){this.writer==null&&await this.acquire(),await this.writer?.setAuthority(Object.fromEntries(e.map(n=>[n,this.state.authority])))}deleteTelem(e){this.registry.delete(e),this.updateNeedsControlOf()}create(e){const{internal:n}=this,o=(()=>{switch(e.type){case ht.TYPE:{const a=new ht(this,n.runAsync,e.props);return this.registry.set(a,null),a}case ft.TYPE:{const a=new ft(this,this.internal.stateProv,e.props);return this.registry.set(a,null),a}case dt.TYPE:return new dt(this,n.runAsync,e.props);default:return null}})();return o!=null&&this.updateNeedsControlOf(),o}}const jr=g.z.object({channel:g.z.number()});class ht extends c.AbstractSink{static TYPE="controlled-numeric-telem-sink";controller;runAsync;schema=jr;constructor(e,n,r){super(r),this.controller=e,this.runAsync=n}invalidate(){}cleanup(){this.controller.deleteTelem(this)}async needsControlOf(e){if(this.props.channel===0)return[];const n=await e.channels.retrieve(this.props.channel),r=[n.key];return n.index!==0&&r.push(n.index),r}set(...e){this.runAsync(async()=>{const{client:n}=this.controller.internal;if(n==null)throw new c.hI("No cluster connected");if(this.props.channel===0)throw new c.H("No command channel specified for actuator");const r=await n.channels.retrieve(this.props.channel),o={[r.key]:e};if(r.index!==0){const a=await n.channels.retrieve(r.index),i=c.y.now();o[a.key]=Array.from({length:e.length},(l,h)=>i.add(s.a$1.nanoseconds(h)))}await this.controller.set(o)},"Failed to command channel")}}const Qa=t=>({type:ht.TYPE,props:t,variant:"sink",valueType:"number"}),Ur=g.z.object({authority:g.z.number().default(c._I.ABSOLUTE_AUTHORITY),channel:g.z.number()});class dt extends c.AbstractSink{static TYPE="acquire-channel-control";controller;runAsync;schema=Ur;constructor(e,n,r){super(r),this.controller=e,this.runAsync=n}cleanup(){this.controller.deleteTelem(this)}async needsControlOf(e){const n=await e.channels.retrieve(this.props.channel),r=[n.key];return n.index!==0&&r.push(n.index),r}set(e){this.runAsync(async()=>{const{controller:n}=this,{client:r}=n.internal;if(r==null)return;const o=await r.channels.retrieve(this.props.channel),a=[o.key];o.index!==0&&a.push(o.index),e?await this.controller.setAuthority(a,this.props.authority):await this.controller.releaseAuthority(a)},"failed to set channel authority")}}const Wa=t=>({type:dt.TYPE,props:t,variant:"sink",valueType:"boolean"}),zr=g.z.object({channel:g.z.number()}),Ga=g.z.object({valid:g.z.boolean(),color:s.Rr.colorZ.optional(),authority:g.z.number()});class ft extends c.AbstractSource{static TYPE="controlled-status-source";prov;valid=!1;stopListening;controller;schema=zr;constructor(e,n,r){super(r),this.prov=n,this.controller=e}async needsControlOf(){return[]}maybeRevalidate(){if(this.valid)return;const{channel:e}=this.props;this.stopListening?.();const n=s.Zr.filterTransfersByChannelKey(e);this.stopListening=this.prov.onChange(r=>{n(r).length!==0&&this.notify?.()}),this.valid=!0}value(){this.maybeRevalidate();const e=c.y.now();if(this.props.channel===0)return{name:this.controller.key,key:this.controller.key,variant:"disabled",message:"No Channel",time:e,details:{valid:!1,authority:0}};const n=this.prov.get(this.props.channel);return n==null?{name:this.controller.key,key:this.controller.key,variant:"disabled",message:"Uncontrolled",time:e,details:{valid:!0,color:void 0,authority:0}}:{name:this.controller.key,key:n.subject.key,variant:n.subject.key===this.controller.key?"success":"error",message:`Controlled by ${n.subject.name}`,time:e,details:{valid:!0,color:n.subjectColor,authority:n.authority}}}cleanup(){this.controller.deleteTelem(this),this.stopListening?.()}}const Xa=t=>({type:ft.TYPE,props:t,variant:"source",valueType:"status"}),Br=g.z.object({color:s.Rr.colorZ.optional()}).default({color:void 0}),$r=g.z.object({statusSource:c.statusSourceSpecZ.optional().default(c.noopStatusSourceSpec),colorSource:c.colorSourceSpecZ.optional().default(c.noopColorSourceSpec),status:s.Xr.statusZ(Br),color:s.Rr.colorZ.optional()});class Yt extends c.Leaf{static TYPE="Indicator";schema=$r;stopListeningStatus;stopListeningColor;afterUpdate(e){const{internal:n}=this,{statusSource:r,colorSource:o}=this.state;n.statusSource=c.useSource(e,r,n.statusSource),n.colorSource=c.useSource(e,o,n.colorSource),this.updateState(),this.stopListeningStatus?.(),this.stopListeningColor?.(),this.stopListeningStatus=n.statusSource.onChange(this.updateState.bind(this)),this.stopListeningColor=n.colorSource.onChange(this.updateState.bind(this))}afterDelete(){this.internal.statusSource.cleanup?.(),this.internal.colorSource.cleanup?.()}render(){}updateState(){const e=this.internal.colorSource.value(),n=this.internal.statusSource.value();s.Rr.equals(e,this.state.color)&&n.message===this.state.status.message||this.setState(r=>({...r,color:e,status:n}))}}const Fr=g.z.object({needsControlOf:c.SI.keyZ.array(),states:Zr.array()});class jt extends c.Leaf{static TYPE="Legend";schema=Fr;afterUpdate(e){const{internal:n}=this;n.stateProv=Ye.use(e);const r=this.state.needsControlOf;n.disconnectStateProv?.();const o=s.Zr.filterTransfersByChannelKey(...r),a=n.stateProv.get(r);this.setState(i=>({...i,states:a})),n.disconnectStateProv=n.stateProv.onChange(i=>{if(o(i).length===0)return;const l=n.stateProv.get(r);this.setState(h=>({...h,states:l}))})}afterDelete(){const{internal:e}=this;e.disconnectStateProv?.()}render(){}}const Va={[_t.TYPE]:_t,[Ye.TYPE]:Ye,[Yt.TYPE]:Yt,[It.TYPE]:It,[jt.TYPE]:jt},Hr=["fire","momentary","pulse"],Ka=g.z.enum(Hr),qr=g.z.object({trigger:g.z.number(),sink:c.booleanSinkSpecZ.optional().default(c.noopBooleanSinkSpec),mode:Ka.optional().default("fire")}),Qr=2,Wr=1;class Ut extends c.Leaf{static TYPE="Button";schema=qr;afterUpdate(e){const{sink:n,mode:r,trigger:o}=this.state,{internal:a}=this;a.prevTrigger??=o,a.sink=c.useSink(e,n,a.sink);const i=a.prevTrigger;a.prevTrigger=o;const l=o===i+Qr;o===i+Wr?r=="fire"?this.internal.sink.set(!0):r=="momentary"&&this.internal.sink.set(!1):l&&(r=="momentary"?this.internal.sink.set(!0):r=="pulse"&&this.internal.sink.set(!0,!1))}afterDelete(){this.internal.sink.cleanup?.()}}const Ja={[Ut.TYPE]:Ut};g.z.enum(["small","medium","large","huge"]);const el=g.z.object({box:s.jt.box,telem:c.stringSourceSpecZ.optional().default(c.noopStringSourceSpec),backgroundTelem:c.colorSourceSpecZ.optional().default(c.noopColorSourceSpec),level:c.levelZ.optional().default("p"),color:s.Rr.colorZ.optional().default(s.Rr.ZERO),precision:g.z.number().optional().default(2),minWidth:g.z.number().optional().default(60),width:g.z.number().optional(),notation:s.Fr.notationZ.optional().default("standard"),location:s.K.xy.optional().default({x:"left",y:"center"}),units:g.z.string().optional().default("RPM"),bounds:s.H.bounds.optional().default(s.H.construct(0,100)),barWidth:g.z.number().optional().default(12)}),tl=["upper2d","lower2d"];class je extends c.Leaf{static TYPE="gauge";static z=el;schema=je.z;afterUpdate(e){const{internal:n}=this;n.render=c.Context.use(e),n.theme=c.use(e),s.Rr.isZero(this.state.color)?n.textColor=n.theme.colors.gray.l8:n.textColor=this.state.color,n.telem=c.useSource(e,this.state.telem,n.telem),n.stopListening?.(),n.stopListening=n.telem.onChange(()=>this.requestRender()),n.backgroundTelem=c.useSource(e,this.state.backgroundTelem,n.backgroundTelem),n.stopListeningBackground?.(),n.stopListeningBackground=n.backgroundTelem.onChange(()=>this.requestRender()),n.requestRender=qt(e),n.strokeColor=s.Rr.isZero(this.state.color)?n.theme.colors.visualization.palettes.default[0]:this.state.color;const r=this.state.box,o=s.jt.width(r)/2,{barWidth:a}=this.state;n.outerRadius=o-8,n.innerRadius=n.outerRadius-a;const i=Math.PI/2;n.gaugeStartAngle=3*Math.PI/4,n.gaugeAngleRange=2*Math.PI-i,n.gaugeEndAngle=n.gaugeStartAngle+n.gaugeAngleRange,n.labelRadius=n.outerRadius+12,n.labelInwardShift=12,n.centerPos=s.jt.center(r);const l=n.centerPos.y+n.labelRadius*Math.sin(n.gaugeStartAngle)+6;n.minLabelPos=s.Q.construct(n.centerPos.x+n.labelRadius*Math.cos(n.gaugeStartAngle)+n.labelInwardShift,l),n.maxLabelPos=s.Q.construct(n.centerPos.x+n.labelRadius*Math.cos(n.gaugeEndAngle)-n.labelInwardShift,l),n.valueTextPos=s.Q.translateY(n.centerPos,-6),n.unitsTextPos=s.Q.translateY(n.centerPos,s.jt.height(r)/9),n.textLevel=this.state.level,n.labelLevel=c.downLevel(c.downLevel(n.textLevel)),this.requestRender()}afterDelete(){const{internal:e}=this;e.stopListening?.(),e.stopListeningBackground?.(),e.telem.cleanup?.(),e.backgroundTelem.cleanup?.(),e.requestRender==null?e.render.erase(s.jt.construct(this.state.box),s.Q.ZERO,...tl):e.requestRender("layout")}requestRender(){const{requestRender:e}=this.internal;e!=null?e("layout"):this.render({})}render({viewportScale:e=s.C.XY.IDENTITY}){const{internal:n}=this,r=n.render.upper2d.applyScale(e),o=new ce(r,n.theme),a=n.telem.value(),{lower:i,upper:l}=this.state.bounds,h=Number(a),u=s.H.clamp(this.state.bounds,h),d=l-i,f=d===0?0:(u-i)/d,p=n.gaugeStartAngle+f*n.gaugeAngleRange;o.text({text:a,position:n.valueTextPos,shade:10,level:n.textLevel,align:"middle",justify:"center",weight:450,code:!0,useAtlas:!0}),o.text({text:this.state.units,position:n.unitsTextPos,shade:8,level:c.downLevel(n.textLevel),align:"middle",justify:"center",code:!0,useAtlas:!0}),o.text({text:i.toString(),position:n.minLabelPos,shade:7,level:n.labelLevel,align:"middle",justify:"center",code:!0,useAtlas:!0}),o.text({text:l.toString(),position:n.maxLabelPos,shade:7,level:n.labelLevel,align:"middle",justify:"center",code:!0,useAtlas:!0}),o.circle({stroke:n.theme.colors.gray.l5,radius:{inner:n.innerRadius,outer:n.outerRadius},position:n.centerPos,angle:{lower:n.gaugeStartAngle,upper:n.gaugeEndAngle},lineCap:"round"}),o.circle({stroke:n.strokeColor,radius:{inner:n.innerRadius,outer:n.outerRadius},position:n.centerPos,angle:{lower:n.gaugeStartAngle,upper:p},lineCap:"round"})}}const nl={[je.TYPE]:je},Gr=g.z.object({enabled:g.z.boolean(),source:c.booleanSourceSpecZ.optional().default(c.noopBooleanSourceSpec)});class zt extends c.Leaf{static TYPE="Light";schema=Gr;afterUpdate(e){const{internal:n}=this;this.internal.source=c.useSource(e,this.state.source,n.source),this.updateEnabledState(),n.stopListening?.(),n.stopListening=n.source.onChange(()=>this.updateEnabledState())}updateEnabledState(){const e=this.internal.source.value();e!==this.state.enabled&&this.setState(n=>({...n,enabled:e}))}afterDelete(){this.internal.stopListening?.(),this.internal.source.cleanup?.()}}const rl={[zt.TYPE]:zt},Xr=g.z.object({trigger:g.z.number(),command:g.z.number().optional(),value:g.z.number(),sink:c.numberSinkSpecZ.optional().default(c.noopNumericSinkSpec),source:c.numberSourceSpecZ.optional().default(c.noopNumericSourceSpec)});class Bt extends c.Leaf{static TYPE="Setpoint";schema=Xr;afterUpdate(e){const{sink:n,source:r,trigger:o,command:a}=this.state,{internal:i}=this;i.prevTrigger??=o,this.internal.source=c.useSource(e,r,this.internal.source),i.sink=c.useSink(e,n,i.sink);const l=i.prevTrigger;i.prevTrigger=o,o>l&&a!=null&&this.internal.sink.set(a),this.updateValue(),i.stopListening?.(),i.stopListening=i.source.onChange(()=>this.updateValue())}updateValue(){const e=this.internal.source.value();e===this.state.value||isNaN(e)||this.setState(n=>({...n,value:e,triggered:!1}))}afterDelete(){const{internal:e}=this;e.stopListening?.(),e.source.cleanup?.(),e.sink.cleanup?.()}}const sl={[Bt.TYPE]:Bt},Vr=g.z.object({triggered:g.z.boolean(),enabled:g.z.boolean(),sink:c.booleanSinkSpecZ.optional().default(c.noopBooleanSinkSpec),source:c.booleanSourceSpecZ.optional().default(c.noopBooleanSourceSpec)});class $t extends c.Leaf{static TYPE="Toggle";schema=Vr;afterUpdate(e){this.internal.addStatus=c.useOptionalAdder(e);const{sink:n,source:r,triggered:o,enabled:a}=this.state,{triggered:i}=this.prevState,{internal:l}=this;l.source=c.useSource(e,r,l.source),l.sink=c.useSink(e,n,l.sink),o&&!i&&l.sink.set(!a),this.updateEnabledState(),l.stopListening?.(),l.stopListening=l.source.onChange(()=>this.updateEnabledState())}updateEnabledState(){const e=this.internal.source.value();e!==this.state.enabled&&this.setState(n=>({...n,enabled:e,triggered:!1}))}afterDelete(){this.internal.stopListening?.(),this.internal.source.cleanup?.(),this.internal.sink.cleanup?.()}}const ol={[$t.TYPE]:$t},Rt={useAtlas:!0},il=g.z.object({box:s.jt.box,telem:c.stringSourceSpecZ.optional().default(c.noopStringSourceSpec),backgroundTelem:c.colorSourceSpecZ.optional().default(c.noopColorSourceSpec),level:c.levelZ.optional().default("p"),color:s.Rr.colorZ.optional().default(s.Rr.ZERO),precision:g.z.number().optional().default(2),stalenessTimeout:g.z.number().optional().default(5),stalenessColor:s.Rr.colorZ.optional().default(s.Rr.ZERO),minWidth:g.z.number().optional().default(60),width:g.z.number().optional(),notation:s.Fr.notationZ.optional().default("standard"),location:s.K.xy.optional().default({x:"left",y:"center"}),useWidthForBackground:g.z.boolean().optional().default(!1),valueBackgroundShift:s.Q.xy.optional().default(s.Q.ZERO),valueBackgroundOverScan:s.Q.xy.optional().default(s.Q.ZERO)}),al=["upper2d","lower2d"];class we extends c.Leaf{static TYPE="value";static z=il;schema=we.z;afterUpdate(e){const{internal:n}=this;n.renderCtx=c.Context.use(e),n.theme=c.use(e),n.telem=c.useSource(e,this.state.telem,n.telem),n.stopListening?.(),n.stopListening=n.telem.onChange(()=>{n.lastReceived=performance.now(),this.requestRender()}),n.fontString=Le.fontString(n.theme,{level:this.state.level,code:!0}),n.backgroundTelem=c.useSource(e,this.state.backgroundTelem,n.backgroundTelem),n.stopListeningBackground?.(),n.stopListeningBackground=n.backgroundTelem.onChange(()=>this.requestRender()),n.requestRender=qt(e),this.requestRender()}afterDelete(){const{internal:e}=this;e.stopListening?.(),e.stopListeningBackground?.(),e.telem.cleanup?.(),e.backgroundTelem.cleanup?.(),e.requestRender==null?e.renderCtx.erase(s.jt.construct(this.state.box),s.Q.ZERO,...al):e.requestRender("layout")}requestRender(){const{requestRender:e}=this.internal;e!=null?e("layout"):this.render({})}get fontHeight(){const{theme:e}=this.internal;return e.typography[this.state.level].size*e.sizes.base}maybeUpdateWidth(e){const{theme:n}=this.internal,r=e+n.sizes.base+this.fontHeight;this.state.width==null||this.state.width+this.fontHeight*.5<r||this.state.minWidth>r&&this.state.width!==this.state.minWidth?this.setState(o=>({...o,width:Math.max(r,o.minWidth)})):this.state.width-this.fontHeight>r&&this.setState(o=>({...o,width:Math.max(r,o.minWidth)}))}getTextColor(){const{theme:e}=this.internal;return performance.now()-this.internal.lastReceived>this.state.stalenessTimeout*1e3?s.Rr.isZero(this.state.stalenessColor)?e.colors.warning.m1:this.state.stalenessColor:s.Rr.isZero(this.state.color)?s.Rr.pickByContrast(e.colors.border,e.colors.gray.l11,e.colors.gray.l0):s.Rr.pickByContrast(e.colors.border,e.colors.gray.l11,this.state.color)}render({viewportScale:e=s.C.XY.IDENTITY}){const{renderCtx:n,telem:r,backgroundTelem:o,fontString:a,requestRender:i}=this.internal,{location:l,box:h}=this.state;if(s.jt.areaIsZero(h))return;const u=s.jt.topLeft(h),d=s.jt.width(h),f=s.jt.height(h),p=n.lower2d.applyScale(e);let S=r.value();p.font=a;const x=this.fontHeight,b=S[0]=="-";b&&(S=S.slice(1));const{theme:v}=this.internal,R=p.textDimensions(S,Rt),L=R.width+v.sizes.base,E=R.height;i==null&&n.erase(s.jt.construct(this.prevState.box)),this.maybeUpdateWidth(L);const M={...s.Q.ZERO};l.x==="left"?M.x=6+x*.75:l.x==="center"&&(M.x=d/2-L/2),l.y==="center"&&(M.y=f/2+E/2);const A=s.Q.translate(u,M);if(this.state.backgroundTelem.type!=c.noopColorSourceSpec.type){const O=o.value();if(!s.Rr.isZero(O)){p.fillStyle=s.Rr.hex(O);const Ce=this.state.useWidthForBackground?this.state.width??this.state.minWidth:s.jt.width(h);p.fillRect(...s.Q.couple(s.Q.translate(u,this.state.valueBackgroundShift)),Ce+this.state.valueBackgroundOverScan.x,f+this.state.valueBackgroundOverScan.y)}}const T=this.getTextColor();p.fillStyle=s.Rr.hex(T),b&&p.fillText("-",...s.Q.couple(s.Q.translateX(A,-x*.6)),void 0,Rt),p.fillText(S,...s.Q.couple(A),void 0,Rt)}}const Kr={[we.TYPE]:we},ll=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Kr,Value:we},Symbol.toStringTag,{value:"Module"})),Jr=g.object({}),Ft="flux-context",hn="flux.Provider",cl=(t,e)=>t.get(Ft).scopedStore(e),ul=t=>{const e=(n,r)=>{if("client"in t)return t.client;const o=c.use$1(n);return r!=null&&r?.client?.key===o?.key?r:new tr({client:o,storeConfig:t.storeConfig,handleError:c.useErrorHandler(n),handleAsyncError:c.useAsyncErrorHandler(n)})};return class es extends c.Composite{static TYPE=hn;static stateZ=Jr;schema=es.stateZ;afterUpdate(r){const{internal:o}=this;o.store=e(r,o.store),r.wasSetPreviously(Ft)||r.set(Ft,o.store)}}},hl=t=>({[hn]:ul(t)});exports.AcquireChannelControl=dt;exports.AuthoritySource=ft;exports.Base=le;exports.Bottom=yr;exports.BoundQuerier=tt;exports.Button=Ut;exports.Canvas=et;exports.Chip=It;exports.Client=tr;exports.Controller=_t;exports.Diagram=Xs;exports.Diagram$1=se;exports.FLUX_STORE_CONFIG=Fa;exports.FLUX_STORE_KEY=za;exports.Gauge=je;exports.Indicator=Yt;exports.Legend=jt;exports.Light=zt;exports.Line=Je;exports.LinePlot=Zt;exports.Log=_e;exports.MODES=Hr;exports.MOUSE_DOWN_INCREMENT=Qr;exports.MOUSE_UP_INCREMENT=Wr;exports.Measure=Ie;exports.PROVIDER_TYPE=hn;exports.Provider=ct;exports.REGISTRY=La;exports.REGISTRY$1=nl;exports.REGISTRY$10=Lr;exports.REGISTRY$11=Hs;exports.REGISTRY$12=rl;exports.REGISTRY$13=Kn;exports.REGISTRY$14=Va;exports.REGISTRY$15=Vn;exports.REGISTRY$16=Ja;exports.REGISTRY$2=qa;exports.REGISTRY$3=Aa;exports.REGISTRY$4=Kr;exports.REGISTRY$5=Pr;exports.REGISTRY$6=ol;exports.REGISTRY$7=sl;exports.REGISTRY$8=Er;exports.REGISTRY$9=ya;exports.RELATIONSHIPS_FLUX_STORE_KEY=Oa;exports.RELATIONSHIP_FLUX_STORE_CONFIG=_a;exports.RESOURCES_FLUX_STORE_KEY=Na;exports.RESOURCE_FLUX_STORE_CONFIG=Ua;exports.Right=xr;exports.Rule=Ne;exports.STATUSES=Ir;exports.ScopedUnaryStore=Jn;exports.SetChannelValue=ht;exports.Setpoint=Bt;exports.StateProvider=Ye;exports.Table=Te;exports.Toggle=$t;exports.Tooltip=Ze;exports.Top=br;exports.Value=we;exports.XAxis=ut;exports.YAxis=lt;exports.acquireChannelControl=Wa;exports.acquireChannelControlPropsZ=Ur;exports.aether=fa;exports.authoritySource=Xa;exports.authoritySourceDetailsZ=Ga;exports.authoritySourceProps=zr;exports.axisStateZ=an;exports.boundQuerierStateZ=nr;exports.buttonStateZ=qr;exports.canvas=Gs;exports.canvasStateZ=Gt;exports.chipStateZ=Or;exports.chipStatusDetailsZ=Ar;exports.color=ye;exports.control=pt;exports.controllerStateZ=Yr;exports.coreAxisStateZ=$e;exports.createRegistry=hl;exports.createStore=er;exports.diagramStateZ=Xt;exports.external=us;exports.indicatorStateZ=$r;exports.indicatorStatusDetailsZ=Br;exports.interpolate=mt;exports.interpolateNumber=Ae;exports.interpolateRgb=kt;exports.interpolateString=Gn;exports.legendStateZ=Fr;exports.linePlotStateZ=Dr;exports.logState=Mr;exports.measure=Ra;exports.measureStateZ=un;exports.newCanvas=Sr;exports.newTickFactory=Ot;exports.parseAutoBounds=Rr;exports.partialUpdate=Vs;exports.providerStateZ=Jr;exports.providerStateZ$1=kr;exports.regions=ne;exports.request=G;exports.ruleStateZ=ln;exports.scopeStore=Lt;exports.setChannelValue=Qa;exports.setChannelValuePropsZ=jr;exports.stateProviderStateZ=Nr;exports.stateZ=Xn;exports.stateZ$1=Gr;exports.stateZ$2=Xr;exports.statusZ=_r;exports.sugaredStateZ=Zr;exports.tickFactoryProps=on;exports.tickType=sn;exports.toggleStateZ=Vr;exports.tooltip=Ca;exports.tooltipStateZ=cn;exports.useOptionalRequestor=qt;exports.useRequestor=gt;exports.value=ll;exports.withinSizeThreshold=Tr;exports.xAxisStateZ=ba;exports.yAxisStateZ=pa;