@synnaxlabs/pluto 0.25.0 → 0.26.0

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 (110) hide show
  1. package/README.md +4 -3
  2. package/dist/{Animated-BpuQZROI.js → Animated-DNVDjbp5.js} +2 -2
  3. package/dist/{Animated-DqAjXT8r.cjs → Animated-zwHonFIj.cjs} +1 -1
  4. package/dist/{Keyboard-GDYsV4-x.cjs → Keyboard-CK96wQ5G.cjs} +1 -1
  5. package/dist/{Keyboard-BTyEk3pg.js → Keyboard-DIqjeZSO.js} +2 -2
  6. package/dist/LinePlot-Cm6T-Agy.cjs +66 -0
  7. package/dist/{LinePlot-CQAK-dkX.js → LinePlot-Cvi3y24D.js} +2138 -2089
  8. package/dist/{Link-CpMcH9c1.cjs → Link-CRvZcIvR.cjs} +1 -1
  9. package/dist/{Link-BrhOiMiE.js → Link-CfU1takx.js} +1 -1
  10. package/dist/{List-BS57aL1n.js → List-B6hlZNwe.js} +2 -2
  11. package/dist/{List-Dux7qweq.cjs → List-CBMm9BLf.cjs} +1 -1
  12. package/dist/{Pack-_i2cfPYc.cjs → Pack-BM_LmeO7.cjs} +1 -1
  13. package/dist/{Pack-CCCsIeot.js → Pack-E_3LSkGG.js} +1 -1
  14. package/dist/{Toggle-DlNzb7nt.cjs → Toggle-YiHP9pVf.cjs} +5 -5
  15. package/dist/{Toggle-CpLFBHo7.js → Toggle-_SGawcap.js} +4 -4
  16. package/dist/{Video-THwAEuOy.cjs → Video-A2NddcPS.cjs} +1 -1
  17. package/dist/{Video-Bi9kFIHV.js → Video-Ct4BfJzt.js} +1 -1
  18. package/dist/aggregator-D9ExX_tt.cjs +51 -0
  19. package/dist/{aggregator-CoD5WrqU.js → aggregator-DaNTqAB0.js} +2658 -2597
  20. package/dist/align.cjs +1 -1
  21. package/dist/align.js +1 -1
  22. package/dist/button.cjs +1 -1
  23. package/dist/button.js +1 -1
  24. package/dist/color.cjs +1 -1
  25. package/dist/color.js +1 -1
  26. package/dist/{css-Ce6IGevn.js → css-DEMSADUS.js} +140 -140
  27. package/dist/css-DY1Oedjj.cjs +1 -0
  28. package/dist/css.cjs +1 -1
  29. package/dist/css.js +2 -2
  30. package/dist/dropdown.cjs +1 -1
  31. package/dist/dropdown.js +1 -1
  32. package/dist/ether.cjs +1 -1
  33. package/dist/ether.js +42 -41
  34. package/dist/{external-DRvtVPhp.cjs → external-9st6X3mL.cjs} +1 -1
  35. package/dist/{external-DqnUE4mV.cjs → external-BAw0sDOf.cjs} +1 -1
  36. package/dist/{external-DU5Xqqld.cjs → external-BgW4t-2y.cjs} +1 -1
  37. package/dist/{external-C6v1z0ty.js → external-BxUqbUsk.js} +5 -5
  38. package/dist/{external-e0OPlFyY.js → external-C4w_40JS.js} +4 -4
  39. package/dist/{external-DQ4EhNBA.js → external-C86d--c3.js} +11 -11
  40. package/dist/{external-B7RXnD0a.cjs → external-CE4wgFJ7.cjs} +1 -1
  41. package/dist/{external-CXrgzQf5.js → external-CJOE_TDI.js} +2 -2
  42. package/dist/{external-BxBMVx6g.js → external-CS2UIUPR.js} +5 -5
  43. package/dist/{external-CUJXIrxM.cjs → external-ChI4-3Am.cjs} +1 -1
  44. package/dist/{external-NeMo53nv.js → external-ChYLNmOM.js} +4 -4
  45. package/dist/{external-CMk1k986.cjs → external-Cja9j84T.cjs} +1 -1
  46. package/dist/{external-Cv5GChi6.js → external-CsAw5Bqm.js} +7 -7
  47. package/dist/{external-DyTzmzSc.js → external-D23hMpey.js} +4 -4
  48. package/dist/{external-B815mDB0.cjs → external-DG3L9UDo.cjs} +1 -1
  49. package/dist/{external-DMYExlt2.cjs → external-DOZ21f-5.cjs} +1 -1
  50. package/dist/{external-CLwP0eXe.cjs → external-DSc2y4PB.cjs} +1 -1
  51. package/dist/{external-Dm3eiIEN.cjs → external-DZohHxSv.cjs} +1 -1
  52. package/dist/{external-C8CIAjMj.js → external-D_dAdIZX.js} +2 -2
  53. package/dist/{external-DShO9063.js → external-DfwQACwH.js} +3 -3
  54. package/dist/{external-NHkWeW29.js → external-DlkO8mh4.js} +1 -1
  55. package/dist/{external-D_WKlwCh.js → external-TgztmPvP.js} +7 -7
  56. package/dist/external-r0ozQhkY.cjs +1 -0
  57. package/dist/{external-DjSiwSCE.cjs → external-rzy59VM1.cjs} +1 -1
  58. package/dist/header.cjs +1 -1
  59. package/dist/header.js +1 -1
  60. package/dist/index.cjs +1 -1
  61. package/dist/index.js +4122 -4040
  62. package/dist/input.cjs +1 -1
  63. package/dist/input.js +1 -1
  64. package/dist/list.cjs +1 -1
  65. package/dist/list.js +1 -1
  66. package/dist/menu.cjs +1 -1
  67. package/dist/menu.js +1 -1
  68. package/dist/src/hardware/device/Select.d.ts.map +1 -1
  69. package/dist/src/pluto/aether/index.d.ts +1 -1
  70. package/dist/src/pluto/aether/index.d.ts.map +1 -1
  71. package/dist/src/pluto/aether/{ pluto.d.ts → pluto.d.ts} +1 -1
  72. package/dist/src/pluto/aether/pluto.d.ts.map +1 -0
  73. package/dist/src/vis/diagram/edge/Edge.d.ts.map +1 -1
  74. package/dist/src/vis/schematic/Forms.d.ts +4 -0
  75. package/dist/src/vis/schematic/Forms.d.ts.map +1 -1
  76. package/dist/src/vis/schematic/Symbols.d.ts +14 -0
  77. package/dist/src/vis/schematic/Symbols.d.ts.map +1 -1
  78. package/dist/src/vis/schematic/primitives/Primitives.d.ts +8 -0
  79. package/dist/src/vis/schematic/primitives/Primitives.d.ts.map +1 -1
  80. package/dist/src/vis/schematic/registry.d.ts +1 -1
  81. package/dist/src/vis/schematic/registry.d.ts.map +1 -1
  82. package/dist/src/vis/setpoint/aether/index.d.ts +2 -0
  83. package/dist/src/vis/setpoint/aether/index.d.ts.map +1 -0
  84. package/dist/src/vis/setpoint/aether/setpoint.d.ts +200 -0
  85. package/dist/src/vis/setpoint/aether/setpoint.d.ts.map +1 -0
  86. package/dist/src/vis/setpoint/index.d.ts +2 -0
  87. package/dist/src/vis/setpoint/index.d.ts.map +1 -0
  88. package/dist/src/vis/setpoint/use.d.ts +11 -0
  89. package/dist/src/vis/setpoint/use.d.ts.map +1 -0
  90. package/dist/style.css +1 -1
  91. package/dist/tabs.cjs +1 -1
  92. package/dist/tabs.js +1 -1
  93. package/dist/text.cjs +1 -1
  94. package/dist/text.js +2 -2
  95. package/dist/theming.cjs +1 -1
  96. package/dist/theming.js +2 -2
  97. package/dist/tree.cjs +1 -1
  98. package/dist/tree.js +1 -1
  99. package/dist/triggers.cjs +1 -1
  100. package/dist/triggers.js +1 -1
  101. package/dist/{units-DlP7zkaE.js → units-BREWRknL.js} +1 -1
  102. package/dist/{units-CoE6Mywf.cjs → units-DNx3byGw.cjs} +1 -1
  103. package/dist/video.cjs +1 -1
  104. package/dist/video.js +1 -1
  105. package/package.json +5 -5
  106. package/dist/LinePlot-DnLLplw_.cjs +0 -66
  107. package/dist/aggregator-D47lwtdn.cjs +0 -51
  108. package/dist/css-CC1MhhH7.cjs +0 -1
  109. package/dist/external-Do75w1Zt.cjs +0 -1
  110. package/dist/src/pluto/aether/ pluto.d.ts.map +0 -1
@@ -1,66 +0,0 @@
1
- "use strict";var Lh=Object.defineProperty;var $h=(t,e,n)=>e in t?Lh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var m=(t,e,n)=>$h(t,typeof e!="symbol"?e+"":e,n);const T=require("./aggregator-D47lwtdn.cjs"),E=require("zod"),f=require("./css-CC1MhhH7.cjs"),x=require("react");require("react-dom");const Yh=Object.freeze(Object.defineProperty({__proto__:null,ALIGNMENTS:f.u,ORDERS:f.d,alignment:f.D,order:f.j$1},Symbol.toStringTag,{value:"Module"}));var Bh=Object.defineProperty,qh=(t,e,n)=>e in t?Bh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Qs=(t,e,n)=>qh(t,typeof e!="symbol"?e+"":e,n);class Fh{constructor(e,n){Qs(this,"handlers"),Qs(this,"transform"),this.transform=e,this.handlers=n??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){let n=e;if(this.transform!=null){const[r,s]=this.transform(e);if(!s)return;n=r}this.handlers.forEach((r,s)=>s(n))}}class Zh{constructor(e){Qs(this,"handlers"),this.handlers=e??new Map}onChange(e){return this.handlers.set(e,null),()=>this.handlers.delete(e)}notify(e){this.handlers.forEach((n,r)=>r(e))}}const Ro=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:Zh,Observer:Fh},Symbol.toStringTag,{value:"Module"})),Uh=E.z.object({props:T.Mh.nullable(),state:T.Zh.connectivity.connectionStateZ.nullable()}),Mo={synnax:null,state:T.Zh.connectivity.DEFAULT};var jt;let Pr=(jt=class extends T.Composite{constructor(){super(...arguments);m(this,"schema",jt.stateZ)}async afterUpdate(){var n;if(this.ctx.has(ko)||ks(this.ctx,Mo),this.state.props==null){this.internal.synnax!=null&&(this.setState(r=>({...r,state:T.Zh.connectivity.DEFAULT})),(n=this.internal.synnax)==null||n.close(),this.internal.synnax=null),ks(this.ctx,this.internal);return}this.prevState.props!=null&&T._.equal(this.state.props,this.prevState.props)&&this.internal.synnax!=null||(this.internal.synnax=new T.Zh(this.state.props),this.internal.synnax.connectivity.onChange(r=>this.setState(s=>({...s,state:r}))),ks(this.ctx,this.internal))}},m(jt,"TYPE","SynnaxProvider"),m(jt,"stateZ",Uh),jt);const ko="pluto-client-context",ks=(t,e)=>t.set(ko,e),tr=t=>t.get(ko).synnax,ja={[Pr.TYPE]:Pr},Hh=Object.freeze(Object.defineProperty({__proto__:null,Provider:Pr,REGISTRY:ja,ZERO_CONTEXT_VALUE:Mo,use:tr},Symbol.toStringTag,{value:"Module"})),Ja="pluto-telem-context",hs=t=>t.get(Ja),Qa=(t,e)=>t.set(Ja,e),tc=(t,e)=>hs(t).registerFactory(e);class Ri{constructor(e,n,r){m(this,"spec");m(this,"wrapped");m(this,"prevKey");this.wrapped=e,this.spec=r,this.prevKey=n.clusterKey}async value(){return await this.wrapped.value()}async cleanup(){var e,n;await((n=(e=this.wrapped).cleanup)==null?void 0:n.call(e))}onChange(e){return this.wrapped.onChange(e)}shouldUpdate(e,n){return this.prevKey!==e.clusterKey||!T._.equal(this.spec,n)}}class Mi{constructor(e,n,r){m(this,"spec");m(this,"prov");m(this,"prevKey");m(this,"wrapped");this.wrapped=e,this.spec=r,this.prov=n,this.prevKey=n.clusterKey}async set(e){return await this.wrapped.set(e)}async cleanup(){var e,n;await((n=(e=this.wrapped).cleanup)==null?void 0:n.call(e))}shouldUpdate(e,n){return this.prevKey!==e.clusterKey||!T._.equal(this.spec,n)}}const ee=async(t,e,n)=>{var s;const r=hs(t);if(n instanceof Ri){if(!n.shouldUpdate(r,e))return n;await((s=n.cleanup)==null?void 0:s.call(n))}return new Ri(r.create(e),r,e)},fs=async(t,e,n)=>{var s;const r=hs(t);if(n instanceof Mi){if(!n.shouldUpdate(r,e))return n;await((s=n.cleanup)==null?void 0:s.call(n))}return new Mi(r.create(e),r,e)};class ve extends Ro.Observer{async cleanup(){}}class Rr extends ve{async set(){return await Promise.resolve()}}m(Rr,"TYPE","noop-boolean-sink");const ds={type:Rr.TYPE,props:{},variant:"sink",valueType:"boolean"};class Mr extends ve{async set(){return await Promise.resolve()}}m(Mr,"TYPE","noop-numeric-sink");const Vh={type:Mr.TYPE,props:{},variant:"sink",valueType:"number"};class kr extends ve{async value(){return await Promise.resolve(!1)}}m(kr,"TYPE","noop-boolean-source");const ec={type:kr.TYPE,props:{},variant:"source",valueType:"boolean"};class Ar extends ve{async value(){return 0}}m(Ar,"TYPE","noop-numeric-source");const Xh={type:Ar.TYPE,props:{},variant:"source",valueType:"number"};class Nr extends ve{async value(){return""}}m(Nr,"TYPE","noop-string-source");const nc={type:Nr.TYPE,props:{},variant:"source",valueType:"string"};class Dr extends ve{async value(){return{key:"noop",variant:"disabled",message:"unknown",time:T.m.now()}}}m(Dr,"TYPE","noop-status-source");const Ao={type:Dr.TYPE,props:{},variant:"source",valueType:"status"};class Or extends ve{async value(){return f.ZERO}}m(Or,"TYPE","noop-color-source");const rc={type:Or.TYPE,props:{},variant:"source",valueType:"color"},Wh={[Rr.TYPE]:Rr,[Mr.TYPE]:Mr,[kr.TYPE]:kr,[Ar.TYPE]:Ar,[Dr.TYPE]:Dr,[Or.TYPE]:Or,[Nr.TYPE]:Nr};class sc{constructor(){m(this,"type","noop")}create(e){const n=Wh[e.type];return n==null?null:new n}}const Gh=E.z.instanceof(ArrayBuffer),er=E.z.object({type:E.z.string(),variant:E.z.enum(["source","sink","source-transformer","sink-transformer"]),valueType:E.z.string(),props:E.z.any(),transfer:E.z.array(Gh).optional()}),re=er.extend({variant:E.z.literal("source")}),ps=er.extend({variant:E.z.literal("sink")}),oc=er.extend({variant:E.z.literal("source-transformer")}),ic=er.extend({variant:E.z.literal("sink-transformer")}),to=re.extend({valueType:E.z.literal("series")}),ac=re.extend({valueType:E.z.literal("boolean")}),gs=ps.extend({valueType:E.z.literal("boolean")}),Kh=ic.extend({valueType:E.z.literal("boolean")}),jh=oc.extend({valueType:E.z.literal("boolean")}),Jh=re.extend({valueType:E.z.literal("number")}),Qh=ps.extend({valueType:E.z.literal("number")}),cc=re.extend({valueType:E.z.literal("color")}),No=re.extend({valueType:E.z.literal("status")}),lc=re.extend({valueType:E.z.literal("string")});class ms extends Ro.BaseObserver{constructor(n){super();m(this,"props_");m(this,"uProps_");m(this,"schema");this.uProps_=n}get props(){if(this.props_==null){const n=this._schema.safeParse(this.uProps_);if(n.success)this.props_=n.data;else throw new T.P(`[BaseTelem] - expected props to be valid, but found the following errors:
2
- ${n.error.message}`)}return this.props_}get _schema(){if(this.schema==null)throw new T.P(`[BaseTelem] - expected subclass to define props schema, but none was found.
3
- Make sure to define a property 'schema' on the class.`);return this.schema}async cleanup(){}}class _t extends ms{}class ys extends ms{}class nr extends _t{constructor(){super(...arguments);m(this,"sources",{})}get source(){const[n]=Object.values(this.sources);if(n==null)throw new T.P("[UnarySourceTransformer] - expected source to exist, but none was found.");return n}async value(){return this.transform(await this.source.value())}onChange(n){return this.source.onChange(()=>{this.source.value().then(r=>{this.shouldNotify(r)&&n()}).catch(console.error)})}setSources(n){this.sources=n}shouldNotify(n){return!0}transform(n){throw new T.P(`[UnarySourceTransformer] - expected subclass to define transform method, but none was found.
4
- Make sure to define a method 'transform' on the class.`)}}class uc extends _t{constructor(){super(...arguments);m(this,"sources",{})}async value(){const n=Object.fromEntries(await Promise.all(Object.entries(this.sources).map(async([r,s])=>[r,await s.value()])));return this.transform(n)}setSources(n){this.sources={...this.sources,...n}}transform(n){throw new T.P(`[MultiSourceTransformer] - expected subclass to define transform method, but none was found.
5
- Make sure to define a method 'transform' on the class.`)}}class hc extends ms{constructor(){super(...arguments);m(this,"sinks",{})}get sink(){const[n]=Object.values(this.sinks);if(n==null)throw new T.P("[UnarySinkTransformer] - expected sink to exist, but none was found.");return n}async set(n){return await this.sink.set(this.transform(n))}setSinks(n){this.sinks={...this.sinks,...n}}transform(n){throw new T.P(`[UnarySinkTransformer] - expected subclass to define transform method, but none was found.
6
- Make sure to define a method 'transform' on the class.`)}}const fc=E.z.object({from:E.z.string(),to:E.z.string()}),Do=E.z.object({connections:E.z.array(fc),outlet:E.z.string(),segments:E.z.record(re)});class dc{constructor(e){m(this,"type","pipeline");m(this,"factory");this.factory=e}create(e){switch(e.type){case Nn.TYPE:return new Nn(e.props,this.factory);case Dn.TYPE:return new Dn(e.props,this.factory);default:return null}}}class Nn extends _t{constructor(n,r){super(n);m(this,"schema",Do);m(this,"sources",{});const{connections:s,segments:o}=this.props;Object.entries(o).forEach(([i,a])=>{const c=r.create(a);c!=null&&(this.sources[i]=c)}),s.forEach(({from:i,to:a})=>{const c=this.sources[i],l=this.sources[a];c==null||l==null||"setSources"in l&&l.setSources({[i]:c})})}get outlet(){const{outlet:n}=this.props,r=this.sources[n];if(r==null)throw new T.P(`[SourcePipeline] - expected source to exist at outlet '${n}', but none was found.`);return r}async value(){return await this.outlet.value()}onChange(n){return this.outlet.onChange(n)}async cleanup(){await Promise.all(Object.values(this.sources).map(async n=>{var r;return await((r=n.cleanup)==null?void 0:r.call(n))}))}}m(Nn,"TYPE","source-pipeline");const pc=(t,e)=>({variant:"source",props:e,type:Nn.TYPE,valueType:t}),Oo=E.z.object({connections:E.z.array(fc),inlet:E.z.string(),segments:E.z.record(ps)});class Dn extends ys{constructor(n,r){super(n);m(this,"schema",Oo);m(this,"sinks",{});const{connections:s,segments:o}=this.props;Object.entries(o).forEach(([i,a])=>{const c=r.create(a);c!=null&&(this.sinks[i]=c)}),s.forEach(({from:i,to:a})=>{const c=this.sinks[i],l=this.sinks[a];c==null||l==null||"setSinks"in c&&c.setSinks({[a]:l})})}get inlet(){const{inlet:n}=this.props,r=this.sinks[n];if(r==null)throw new T.P(`[SinkPipeline] - expected source to exist at inlet '${n}', but none was found.`);return r}async set(n){return await this.inlet.set(n)}async cleanup(){await Promise.all(Object.values(this.sinks).map(async n=>{var r;return await((r=n.cleanup)==null?void 0:r.call(n))}))}}m(Dn,"TYPE","sink-pipeline");const gc=(t,e)=>({variant:"sink",props:e,type:Dn.TYPE,valueType:t}),zo=E.z.object({channel:E.z.number().or(E.z.string())});class On extends _t{constructor(n,r){super(r);m(this,"client");m(this,"removeStreamHandler",null);m(this,"channelKey",0);m(this,"schema",zo);m(this,"leadingBuffer",null);m(this,"valid",!1);this.client=n}get testingOnlyLeadingBuffer(){return this.leadingBuffer}get testingOnlyValid(){return this.valid}async cleanup(){var n,r;await((n=this.removeStreamHandler)==null?void 0:n.call(this)),this.valid=!1,(r=this.leadingBuffer)==null||r.release(),this.leadingBuffer=null,this.removeStreamHandler=null}async value(){return T.S$1(this.props.channel)||(this.channelKey===0&&(this.channelKey=(await Io(this.client,this.props.channel,!1)).key),this.valid||await this.read(),this.leadingBuffer==null||this.leadingBuffer.length===0)?0:this.leadingBuffer.at(-1,!0)}async read(){this.valid=!0,await this.updateStreamHandler()}async updateStreamHandler(){var r;await((r=this.removeStreamHandler)==null?void 0:r.call(this));const n=s=>{var a;const i=s[this.channelKey].data;if(i.length!==0){const c=i[i.length-1];c.acquire(),(a=this.leadingBuffer)==null||a.release(),this.leadingBuffer=c}this.notify()};this.removeStreamHandler=await this.client.stream(n,[this.channelKey])}}m(On,"TYPE","stream-channel-value");const Io=async(t,e,n)=>{const r=await t.retrieveChannel(e);return!n||r.isIndex?{key:r.key,dataType:r.dataType}:{key:r.index,dataType:T.g.TIMESTAMP}},tf=E.z.object({timeRange:T.U.z,channel:E.z.number().or(E.z.string()),useIndexOfChannel:E.z.boolean().optional().default(!1)});class zn extends _t{constructor(n,r){super(r);m(this,"client");m(this,"data",[]);m(this,"valid",!1);m(this,"schema",tf);this.client=n}async cleanup(){this.data.forEach(n=>n.release()),this.valid=!1}async value(){const{timeRange:n,channel:r,useIndexOfChannel:s}=this.props;if(n.isZero||r===0)return[f.R.ZERO,[]];const o=await Io(this.client,r,s);this.valid||await this.readFixed(o.key);let i=f.R.max(this.data.map(a=>a.bounds));return o.dataType.equals(T.g.TIMESTAMP)&&(i={upper:Math.min(i.upper,Number(this.props.timeRange.end.valueOf())),lower:Math.max(i.lower,Number(this.props.timeRange.start.valueOf()))}),[i,this.data]}async readFixed(n){const s=(await this.client.read(this.props.timeRange,[n]))[n].data;s.forEach(o=>o.acquire()),this.data=s,this.valid=!0}}m(zn,"TYPE","series-source");const ef=E.z.object({channel:E.z.number().or(E.z.string()),useIndexOfChannel:E.z.boolean().optional().default(!1),timeSpan:T.y.z,keepFor:T.y.z.optional()});class In extends _t{constructor(n,r){super(r);m(this,"client");m(this,"data",[]);m(this,"stopStreaming");m(this,"valid",!1);m(this,"schema",ef);this.client=n}async value(){const{channel:n,useIndexOfChannel:r,timeSpan:s}=this.props;if(n===0)return[f.R.ZERO,[]];const o=T.m.now(),i=await Io(this.client,n,r);this.valid||await this.read(i.key);let a=f.R.max(this.data.filter(c=>c.timeRange.end.after(o.sub(s))).map(c=>c.bounds));return i.dataType.equals(T.g.TIMESTAMP)&&(a={upper:a.upper,lower:Math.max(a.lower,a.upper-Number(s.valueOf()))}),[a,this.data]}async read(n){const r=T.m.now().spanRange(-this.props.timeSpan),o=(await this.client.read(r,[n]))[n].data;o.forEach(i=>i.acquire()),this.data.push(...o),await this.updateStreamHandler(n),this.valid=!0}async updateStreamHandler(n){this.stopStreaming!=null&&await this.stopStreaming();const r=s=>{const o=s[n].data;o.forEach(i=>i.acquire()),this.data.push(...o),this.gcOutOfRangeData(),this.notify()};this.stopStreaming=await this.client.stream(r,[n])}gcOutOfRangeData(){const n=T.m.now().sub(this.props.keepFor??this.props.timeSpan),r=this.data.findIndex(s=>s.timeRange.end.before(n));r!==-1&&(this.data.splice(r,1).forEach(s=>s.release()),this.gcOutOfRangeData())}async cleanup(){var n;await((n=this.stopStreaming)==null?void 0:n.call(this)),this.stopStreaming=void 0,this.data.forEach(r=>r.release())}}m(In,"TYPE","dynamic-series-source");const nf={[zn.TYPE]:zn,[In.TYPE]:In,[On.TYPE]:On};class mc{constructor(e){m(this,"type","remote");m(this,"client");this.client=e}create(e){const n=nf[e.type];return n==null?null:new n(this.client,e.props)}}const yc=t=>({type:zn.TYPE,props:t,variant:"source",valueType:"series"}),wc=t=>({type:In.TYPE,props:t,variant:"source",valueType:"series"}),xc=t=>({type:On.TYPE,props:t,variant:"source",valueType:"number"});class Sc{constructor(){m(this,"type","static")}create(e){switch(e.type){case zr.TYPE:return new zr(e.props);case Ln.TYPE:return new Ln(e.props);case $n.TYPE:return new $n(e.props);case Yn.TYPE:return new Yn(e.props);default:return null}}}const Lo=E.z.object({data:E.z.array(T.Ot),offsets:E.z.array(E.z.number()).optional().default([])});class zr extends _t{constructor(n){super(n);m(this,"data");m(this,"schema",Lo);this.data=this.props.data.map((r,s)=>new T.N({data:r,dataType:T.g.FLOAT32,timeRange:T.U.ZERO,sampleOffset:this.props.offsets[s]??0}))}async value(){return[f.R.max(this.data.map(r=>r.bounds)),this.data]}}m(zr,"TYPE","static-series");const vc=Lo.extend({rate:T.$.z,yOffset:E.z.number().optional().default(0),scroll:E.z.number().optional().default(0),startPosition:E.z.number().optional().default(0),scrollBounds:E.z.boolean().optional().default(!1)});class Ln extends _t{constructor(n){super(n);m(this,"schema",vc);m(this,"position");m(this,"interval");m(this,"data");this.position=this.props.startPosition,this.start(this.props.rate),this.data=this.props.data.map((r,s)=>new T.N({data:r,dataType:T.g.FLOAT32,timeRange:T.U.ZERO,sampleOffset:this.props.offsets[s]??0}))}async value(){const n=this.data.map(s=>s.slice(0,this.position));if(this.props.scrollBounds){const s=n[0].data[this.position-this.props.scroll<0?0:this.position-this.props.scroll],o=n[0].data[this.position-1];return[{lower:Number(s),upper:Number(o)},n]}return[f.R.max(n.map(s=>s.bounds)),n]}start(n){this.interval!=null&&clearInterval(this.interval),this.interval=setInterval(()=>{var r;(r=this.notify)==null||r.call(this),this.position++},n.period.milliseconds)}async cleanup(){clearInterval(this.interval),this.interval=void 0}}m(Ln,"TYPE","iterative-series");const bc=E.z.number();class $n extends _t{constructor(){super(...arguments);m(this,"schema",bc)}async value(){return this.props}}m($n,"TYPE","static-numeric");const Tc=E.z.string();class Yn extends _t{constructor(){super(...arguments);m(this,"schema",Tc)}async value(){return this.props}}m(Yn,"TYPE","static-string");const rf=t=>({type:zr.TYPE,props:t,variant:"source",valueType:"series"}),sf=t=>({type:Ln.TYPE,props:t,variant:"source",valueType:"series"}),of=t=>({type:$n.TYPE,props:t,variant:"source",valueType:"number"}),af=t=>({type:Yn.TYPE,props:t,variant:"source",valueType:"string"});class Ec{constructor(){m(this,"type","transformer")}create(e){switch(e.type){case Ue.TYPE:return new Ue(e.props);case He.TYPE:return new He(e.props);case Ve.TYPE:return new Ve(e.props);case Xe.TYPE:return new Xe(e.props);case We.TYPE:return new We(e.props);case Ge.TYPE:return new Ge(e.props)}return null}}const cf=E.z.object({truthy:E.z.number().optional().default(1),falsy:E.z.number().optional().default(0)}),_c=t=>({props:t,type:Ue.TYPE,variant:"sink",valueType:"boolean"}),Cn=class Cn extends hc{constructor(){super(...arguments);m(this,"schema",Cn.propsZ)}transform(n){return n?this.props.truthy:this.props.falsy}};m(Cn,"TYPE","boolean-numeric-converter-sink"),m(Cn,"propsZ",cf);let Ue=Cn;const lf=E.z.object({trueBound:f.R.bounds}),Cc=t=>({props:t,type:He.TYPE,variant:"source",valueType:"boolean"}),Pn=class Pn extends nr{constructor(){super(...arguments);m(this,"schema",Pn.propsZ);m(this,"curr",null)}shouldNotify(n){const r=f.R.contains(this.props.trueBound,n)!==this.curr;return this.curr=f.R.contains(this.props.trueBound,n),r}transform(n){return this.curr=f.R.contains(this.props.trueBound,n),this.curr}};m(Pn,"TYPE","boolean-source"),m(Pn,"propsZ",lf);let He=Pn;const Pc=E.z.object({}),Rn=class Rn extends uc{constructor(){super(...arguments);m(this,"schema",Rn.propsZ)}transform(n){return Object.values(n).reduce((r,s)=>r+s,0)/Object.keys(n).length}};m(Rn,"TYPE","mean"),m(Rn,"propsZ",Pc);let Ve=Rn;const uf=t=>({props:t,type:Ve.TYPE,variant:"source",valueType:"boolean"}),Rc=E.z.object({trueVariant:T.variantZ.optional().default("success")}),Mn=class Mn extends nr{constructor(){super(...arguments);m(this,"schema",Mn.propsZ)}transform(n){return n.variant===this.props.trueVariant}};m(Mn,"TYPE","boolean-status"),m(Mn,"propsZ",Rc);let Xe=Mn;const hf=t=>({props:t,type:Xe.TYPE,variant:"source",valueType:"boolean"}),$o=E.z.object({precision:E.z.number().optional().default(2),prefix:E.z.string().optional().default(""),suffix:E.z.string().optional().default("")}),kn=class kn extends nr{constructor(){super(...arguments);m(this,"schema",kn.propsZ)}transform(n){return`${this.props.prefix}${n.toFixed(this.props.precision)}${this.props.suffix}`}};m(kn,"TYPE","stringify-number"),m(kn,"propsZ",$o);let We=kn;const Mc=t=>({props:t,type:We.TYPE,variant:"source",valueType:"string"}),Yo=E.z.object({windowSize:E.z.number().optional().default(5)});class Ge extends nr{constructor(){super(...arguments);m(this,"schema",Yo);m(this,"values",[])}transform(n){return this.props.windowSize<2?n:this.values.reduce((r,s)=>r+s,0)/this.values.length}shouldNotify(n){return this.props.windowSize<2?!0:(this.values.length>this.props.windowSize&&(this.values=[]),this.values.push(n),this.values.length===this.props.windowSize)}}m(Ge,"TYPE","rolling-average"),m(Ge,"propsZ",Pc);const kc=t=>({props:t,type:Ge.TYPE,variant:"source",valueType:"number"});class Ac{constructor(e){m(this,"factories");m(this,"type","compound");this.factories=e}add(e){this.factories=[...this.factories.filter(n=>n.type!==e.type),e]}create(e){for(const n of this.factories){const r=n.create(e);if(r!=null)return r}return null}}const Nc=t=>{const e=[new Ec,new Sc,new sc],n=new Ac(e);return t!=null&&n.add(new mc(t)),n.add(new dc(n)),n},Dc=E.z.object({include:E.z.string().array().optional(),exclude:E.z.string().array().optional(),level:E.z.enum(T.g$1.LOG_LEVELS).optional().default("info")}),eo="alamos-provider";var Js;let no=(Js=class extends T.Composite{constructor(){super(...arguments);m(this,"schema",Dc)}async afterUpdate(){if(this.ctx.getOptional(eo)!=null)return;const r=[],{include:s,exclude:o,level:i}=this.state;(s!=null||o!=null)&&r.push(T.g$1.logLevelKeyFiler({include:s,exclude:o})),i!=null&&r.push(T.g$1.logThresholdFilter(i)),r.length===0&&r.push(()=>!1),this.internal.ins=new T.g$1.Instrumentation({key:"aether",logger:new T.g$1.Logger({filters:r})}),this.ctx.set(eo,this.internal.ins)}},m(Js,"TYPE","AlamosProvider"),Js);const rr=(t,e)=>{const n=t.get(eo);if(n==null)throw new Error("No instrumentation provider");return e==null?n:n.child(e)},ff={[no.TYPE]:no},Oc=(t,e)=>(e==null&&t.dataType.equals(T.g.TIMESTAMP)&&(e=BigInt(t.data[0])),t.convert(T.g.FLOAT32,e)),zc=()=>({purgedSeries:0,purgedBytes:T.C$1.bytes(0)}),Ic={instrumentation:T.g$1.NOOP,staleEntryThreshold:T.y.seconds(20)};class df{constructor(e){m(this,"data",[]);m(this,"props");this.props={...Ic,...e}}write(e){e.length!==0&&(e.forEach(n=>this.writeOne(Oc(n))),this.checkIntegrity(e))}dirtyRead(e){const n=this.data.filter(({data:i})=>i.timeRange.overlapsWith(e)).map(({data:i})=>i);if(n.length===0)return{series:[],gaps:[e]};const r=n.map((i,a)=>a===0?T.U.ZERO:new T.U(n[a-1].timeRange.end,i.timeRange.start)).filter(i=>!i.isZero&&i.isValid),s=new T.U(e.start,n[0].timeRange.start),o=new T.U(n[n.length-1].timeRange.end,e.end);return s.isValid&&!s.isZero&&r.unshift(s),o.isValid&&!o.isZero&&r.push(o),{series:n,gaps:r}}gc(){const{staleEntryThreshold:e}=this.props,n=zc(),r=this.data.filter(s=>{const o=s.data.refCount>0||T.m.since(s.addedAt).lessThan(e);return o||(n.purgedBytes=n.purgedBytes.add(s.data.byteCapacity)),o});return n.purgedSeries=this.data.length-r.length,this.data=r,n}close(){this.data=[]}writeOne(e){const{instrumentation:{L:n}}=this.props;if(e.length===0)return;const r=f.R.buildInsertionPlan(this.data.map(c=>c.data.alignmentBounds),e.alignmentBounds);if(r===null)return n.debug("Found no viable insertion plan",{inserting:e.digest,cacheContents:this.data.map(c=>c.data.digest)});const{removeBefore:s,removeAfter:o,insertInto:i,deleteInBetween:a}=r;e=e.slice(s,e.data.length-Number(o)),e.length!==0&&this.data.splice(i,a,{data:e,addedAt:T.m.now()})}checkIntegrity(e){const{instrumentation:{L:n}}=this.props,r=this.data.map(o=>o.data.alignmentBounds);if(r.some((o,i)=>r.some((a,c)=>i===c?!1:f.R.overlapsWith(o,a))))throw n.debug("Cache is in an invalid state - bounds overlap!",()=>({write:e.map(o=>o.digest),cacheContents:this.data.map(o=>o.data.digest)})),new Error("Invalid state")}}const pf=100,gf=1e6,mf=1e4,yf=100;class wf{constructor(e){m(this,"props");m(this,"counter",0);m(this,"buffer");m(this,"avgRate",0);m(this,"timeOfLastWrite");m(this,"totalWrites",0);m(this,"now",()=>T.m.now());this.props=e,this.buffer=null,e.testingNow!=null&&(this.now=e.testingNow),this.timeOfLastWrite=this.now()}get length(){var e;return((e=this.buffer)==null?void 0:e.length)??0}get leadingBuffer(){return this.buffer}write(e){const n=e.flatMap(r=>this._write(r));return{flushed:n.flatMap(r=>r.flushed),allocated:n.flatMap(r=>r.allocated)}}allocate(e,n,r){return this.counter++,T.N.alloc({capacity:e,dataType:T.g.FLOAT32,timeRange:r.range(T.m.MAX),sampleOffset:this.props.dataType.equals(T.g.TIMESTAMP)?BigInt(r.valueOf()):0,glBufferUsage:"dynamic",alignment:n,key:`dynamic-${this.counter}`})}_write(e){const n=this.nextBufferSize(),r={flushed:[],allocated:[]};if(this.buffer==null)this.buffer=this.allocate(n,e.alignment,this.now()),r.allocated.push(this.buffer);else if(Math.abs(Number(this.buffer.alignment+BigInt(this.buffer.length)-e.alignment))>1){const c=this.now();this.buffer.timeRange.end=c,r.flushed.push(this.buffer),this.buffer=this.allocate(n,e.alignment,c),r.allocated.push(this.buffer)}const s=Oc(e,this.buffer.sampleOffset),o=this.buffer.write(s);if(o===e.length)return this.updateAvgRate(e),r;const i=this.now();this.buffer.timeRange.end=i,r.flushed.push(this.buffer),this.buffer=this.allocate(n,e.alignment+BigInt(o),i),r.allocated.push(this.buffer);const a=this._write(e.slice(o));return r.flushed.push(...a.flushed),r.allocated.push(...a.allocated),r}updateAvgRate(e){if(typeof this.props.dynamicBufferSize=="number")return;const n=e.length/this.now().span(this.timeOfLastWrite).seconds;this.totalWrites>0&&isFinite(n)&&n>0&&(this.avgRate=(this.avgRate*(this.totalWrites-1)+n)/this.totalWrites),this.totalWrites++,this.timeOfLastWrite=this.now()}nextBufferSize(){const{dynamicBufferSize:e}=this.props;if(typeof e=="number")return e;if(this.totalWrites<yf)return mf;const n=f.C.roundToNearestMagnitude(this.avgRate*e.seconds);return Math.round(Math.max(Math.min(n,gf),pf))}close(){this.buffer=null}}class xf{constructor(e){m(this,"channel");m(this,"closed",!1);m(this,"ins");m(this,"static");m(this,"dynamic");this.channel=e.channel,this.ins=e.instrumentation??T.g$1.NOOP,this.static=new df(e),this.dynamic=new wf({dynamicBufferSize:e.dynamicBufferSize,dataType:this.channel.dataType})}writeDynamic(e){if(this.closed)return this.ins.L.warn(`Ignoring attempted dynamic write to a closed cache for channel ${this.channel.name}`),[];const{flushed:n,allocated:r}=this.dynamic.write(e);return n.length>0&&this.static.write(n),r}get leadingBuffer(){return this.dynamic.leadingBuffer}writeStatic(e){if(this.closed)return this.ins.L.warn(`Ignoring attempted static write to a closed cache for channel ${this.channel.name}`);this.static.write(e)}read(e){return this.closed?(this.ins.L.warn(`Ignoring attempted dirty read from a closed cache for channel ${this.channel.name}`),{series:[],gaps:[]}):this.static.dirtyRead(e)}gc(){return this.closed?(this.ins.L.warn(`Ignoring attempted garbage collection on a closed cache for channel ${this.channel.name}`),{purgedSeries:0,purgedBytes:T.C$1.bytes(0)}):this.static.gc()}close(){this.closed=!0,this.dynamic.close(),this.static.close()}}const Sf=T.S.seconds(60);class vf{constructor(e){m(this,"props");m(this,"cache",new Map);m(this,"gcInterval");this.props={dynamicBufferSize:Sf,gcInterval:T.S.seconds(30),...Ic,...e},this.gcInterval=setInterval(()=>this.gc(),this.props.gcInterval.milliseconds)}async populateMissing(e){const{instrumentation:n,channelRetriever:r,dynamicBufferSize:s}=this.props,o=[];for(const a of e)this.cache.has(a)||o.push(a);if(o.length===0)return;const i=await r.retrieve(o);for(const a of i){const c=new xf({channel:a,dynamicBufferSize:s,instrumentation:n.child(`cache-${a.name}-${a.key}`)});this.cache.has(a.key)||this.cache.set(a.key,c)}}get(e){const n=this.cache.get(e);if(n!=null)return n;throw new T.Ee(`cache entry for ${e} not found`)}gc(){const{instrumentation:{L:e}}=this.props;e.info("starting garbage collection");const n=zc();this.cache.forEach(r=>{const s=r.gc();n.purgedSeries+=s.purgedSeries,n.purgedBytes=n.purgedBytes.add(s.purgedBytes)}),e.info("garbage collection complete",{purgedSeries:n.purgedSeries,purgedBytes:n.purgedBytes.toString()},!0)}close(){clearInterval(this.gcInterval),this.cache.forEach(e=>e.close()),this.cache.clear()}}class Ir{constructor(e,n){m(this,"channel");m(this,"data");this.channel=e,this.data=n}get timeRange(){if(this.data.length===0)return T.J.ZERO;const e=this.data[0].timeRange,n=this.data[this.data.length-1].timeRange;return new T.J(e.start,n.end)}get digest(){return{channel:this.channel.key,timeRange:this.timeRange.toPrettyString(),series:this.data.map(e=>e.digest)}}}const As=t=>t.map(e=>e.digest);class bf{constructor(e){m(this,"props");m(this,"debouncedRead");m(this,"guarded",{mu:new T.Mutex,requests:new Map});this.props={instrumentation:T.g$1.NOOP,batchDebounce:T.y.milliseconds(50),...e},this.debouncedRead=T.o$1(()=>{this.batchRead()},this.props.batchDebounce.milliseconds)}async read(e,n){const{instrumentation:{L:r},cache:s}=this.props;r.debug("starting read",{tr:e.toPrettyString(),channels:n});const o=performance.now(),i=new Map,a={};await s.populateMissing(n);try{for(const u of n){const h=s.get(u),{series:d,gaps:p}=h.read(e);p.length===0&&(a[u]=new Ir(h.channel,d)),p.forEach(w=>{const y=i.get(w.toString());y==null?i.set(w.toString(),[w,new Set([u])]):i.set(w.toString(),[w,new Set([...y[1],u])])})}if(i.size===0)return r.debug("read satisfied by cache",()=>({tr:e.toPrettyString(),channels:n,responses:As(Object.values(a)),time:T.y.milliseconds(performance.now()-o).toString()})),a;r.debug("read cache miss",()=>({tr:e.toPrettyString(),channels:n,toFetch:Array.from(i.values()).map(([u,h])=>({timeRange:u.toPrettyString(),channels:h})),responses:As(Object.values(a))}));const{mu:c,requests:l}=this.guarded;for(const[,[u,h]]of i)await new Promise((d,p)=>{c.runExclusive(async()=>{l.set([u,h],{resolve:d,reject:p}),this.debouncedRead()})})}catch(c){throw r.error("read failed",{tr:e.toPrettyString(),channels:n,error:c}),c}for(const c of n){const l=s.get(c),{series:u}=l.read(e);a[c]=new Ir(l.channel,u)}return r.debug("read satisfied by fetch",()=>({tr:e.toPrettyString(),channels:n,responses:As(Object.values(a)),time:T.y.milliseconds(performance.now()-o).toString()})),a}async batchRead(){const{instrumentation:{L:e},readRemote:n,cache:r}=this.props,{mu:s,requests:o}=this.guarded;await s.runExclusive(async()=>{const i=[];try{o.forEach((a,c)=>{const[l,u]=c,h=i.find(([d])=>d.start.span(l.start).lessThan(T.y.milliseconds(5))&&d.end.span(l.end).lessThan(T.y.milliseconds(5)));h==null?i.push([l,u]):h[1]=new Set([...h[1],...u])}),e.debug("batch read",{toFetch:i.map(([a,c])=>({timeRange:a.toPrettyString(),channels:c}))});for(const[a,c]of i){const l=Array.from(c),u=await n(a,l);l.forEach(h=>{const d=r.get(h),p=u.get(h);d.writeStatic(p.series)})}o.forEach(a=>a.resolve())}catch(a){e.error("batch read failed",{error:a},!0),o.forEach(c=>c.reject(a))}finally{o.clear()}})}}class Tf{constructor(e){m(this,"props");m(this,"mu",new T.Mutex);m(this,"listeners",new Map);m(this,"streamerRunLoop",null);m(this,"streamer",null);m(this,"closed",!1);this.props={instrumentation:T.g$1.NOOP,...e}}async stream(e,n){const{cache:r,instrumentation:{L:s}}=this.props;return await r.populateMissing(n),await this.mu.runExclusive(async()=>{s.debug("adding stream handler",{keys:n}),this.listeners.set(e,{valid:!0,keys:n});const o={};for(const i of n){const a=r.get(i),c=a.leadingBuffer!=null?[a.leadingBuffer]:[];o[i]=new Ir(a.channel,c)}return e(o),await this.updateStreamer(),async()=>await this.removeStreamHandler(e)})}async removeStreamHandler(e){const{instrumentation:{L:n}}=this.props;await this.mu.runExclusive(()=>{const r=this.listeners.get(e);r!=null&&(r.valid=!1)}),setTimeout(()=>{this.mu.runExclusive(async()=>{if(n.debug("removing stream handler"),this.listeners.delete(e))return await this.updateStreamer();n.warn("attempted to remove non-existent stream handler")})},5e3)}async updateStreamer(){var o,i;if(this.closed)return;const{instrumentation:{L:e},core:n}=this.props,r=new Set;if(this.listeners.forEach(a=>a.keys.forEach(c=>r.add(c))),r.size===0){e.info("no keys to stream, closing streamer"),(o=this.streamer)==null||o.close(),this.streamerRunLoop!=null&&await this.streamerRunLoop,this.streamer=null,e.info("streamer closed successfully");return}const s=Array.from(r);if(T.E.primitiveArrays(s,((i=this.streamer)==null?void 0:i.keys)??[])===T.E.EQUAL){e.debug("streamer keys unchanged",{keys:s});return}this.streamer==null&&(e.info("creating new streamer",{keys:s}),this.streamer=await n.openStreamer(s),this.streamerRunLoop=this.runStreamer(this.streamer)),e.debug("updating streamer",{prev:this.streamer.keys,next:s});try{await this.streamer.update(s)}catch(a){throw e.error("failed to update streamer",{error:a}),a}}async runStreamer(e){const{cache:n,instrumentation:{L:r}}=this.props;try{for await(const s of e){const o=[];for(const i of s.keys){const a=s.get(i),c=n.get(i),l=c.writeDynamic(a.series);o.push(new Ir(c.channel,l))}this.listeners.forEach((i,a)=>{if(!i.valid)return;const c=o.filter(u=>i.keys.includes(u.channel.key));if(c.length===0)return;const l=Object.fromEntries(c.map(u=>[u.channel.key,u]));a(l)})}}catch(s){throw r.error("streamer run loop failed",{error:s},!0),s}}async close(){var e;(e=this.streamer)==null||e.close(),this.streamerRunLoop!=null&&await this.streamerRunLoop,this.closed=!0}}class Ef{constructor(){m(this,"key",T.gt.id());m(this,"_client",null)}async swap(e){var n;this.key=T.gt.id(),await((n=this._client)==null?void 0:n.close()),this._client=e}async retrieveChannel(e){return await this.client.retrieveChannel(e)}async read(e,n){return await this.client.read(e,n)}async stream(e,n){return await this.client.stream(e,n)}async close(){await this.client.close()}get client(){if(this._client==null)throw new T.X("No cluster has been connected");return this._client}}class _f{constructor({instrumentation:e,core:n}){m(this,"key",T.gt.id());m(this,"ins");m(this,"cache");m(this,"reader");m(this,"streamer");m(this,"channelRetriever");this.ins=e??T.g$1.NOOP,this.channelRetriever=n.channels.createDebouncedBatchRetriever(10),this.cache=new vf({channelRetriever:this.channelRetriever,instrumentation:this.ins.child("cache")}),this.reader=new bf({cache:this.cache,readRemote:async(r,s)=>await n.read(r,s),instrumentation:this.ins.child("reader")}),this.streamer=new Tf({cache:this.cache,core:n,instrumentation:this.ins.child("streamer")})}async retrieveChannel(e){const n=await this.channelRetriever.retrieve([e]);if(n.length===0)throw new T.X(`channel ${e} not found`);return n[0]}async read(e,n){return await this.reader.read(e,n)}async stream(e,n){return await this.streamer.stream(e,n)}async close(){this.ins.L.info("closing client",{key:this.key}),await this.streamer.close(),this.cache.close()}}const Bo=E.z.object({}),Le=class Le extends T.Composite{constructor(){super(...arguments);m(this,"client",new Ef);m(this,"factory",Nc(this.client));m(this,"schema",Le.stateZ);m(this,"prevClient",null)}create(n){const{instrumentation:r}=this.internal;r.L.debug("creating telem",{spec:n});const s=this.factory.create(n);if(s==null)throw new T.Ee(`Telemetry service could not find a source for type ${n.type}`);return s}get clusterKey(){return this.client.key}registerFactory(n){this.factory.add(n)}equals(n){return n instanceof Le?this.client._client===n.client._client:!1}async afterUpdate(){const n=tr(this.ctx),r=rr(this.ctx,"telem");this.internal.instrumentation=r.child("provider"),n!==this.prevClient&&(r.L.info("swapping client",{client:n}),n==null?await this.client.swap(null):await this.client.swap(new _f({core:n,instrumentation:r})),this.prevClient=n,Qa(this.ctx,this))}};m(Le,"TYPE","TelemProvider"),m(Le,"stateZ",Bo);let Ke=Le;const Lc={[Ke.TYPE]:Ke},Cf=Object.freeze(Object.defineProperty({__proto__:null,AbstractSink:ys,AbstractSource:_t,Base:ms,BaseProvider:Ke,BooleanStatus:Xe,ChannelData:zn,CompoundTelemFactory:Ac,FixedNumber:$n,FixedString:Yn,IterativeSeries:Ln,Mean:Ve,MultiSourceTransformer:uc,NoopFactory:sc,PipelineFactory:dc,REGISTRY:Lc,RemoteFactory:mc,RollingAverage:Ge,SetPoint:Ue,SinkPipeline:Dn,SourcePipeline:Nn,StaticFactory:Sc,StreamChannelData:In,StreamChannelValue:On,StringifyNumber:We,TransformerFactory:Ec,UnarySinkTransformer:hc,UnarySourceTransformer:nr,WithinBounds:He,booleanSinkSpecZ:gs,booleanSinkTransformerSpecZ:Kh,booleanSourceSpecZ:ac,booleanSourceTransformerSpecZ:jh,booleanStatus:hf,booleanStatusProps:Rc,channelData:yc,colorSourceSpecZ:cc,factory:Nc,fixedArray:rf,fixedNumber:of,fixedNumberPropsZ:bc,fixedSeriesPropsZ:Lo,fixedString:af,fixedStringPropsZ:Tc,iterativeArray:sf,iterativeSeriesPropsZ:vc,mean:uf,noopBooleanSinkSpec:ds,noopBooleanSourceSpec:ec,noopColorSourceSpec:rc,noopNumericSinkSpec:Vh,noopNumericSourceSpec:Xh,noopStatusSourceSpec:Ao,noopStringSourceSpec:nc,numberSinkSpecZ:Qh,numberSourceSpecZ:Jh,providerStateZ:Bo,registerFactory:tc,rollingAverage:kc,rollingAverageProps:Yo,seriesSourceSpecZ:to,setProvider:Qa,setpoint:_c,sinkPipeline:gc,sinkPipelinePropsZ:Oo,sinkSpecZ:ps,sinkTransformerSpecZ:ic,sourcePipeline:pc,sourcePipelinePropsZ:Do,sourceSpecZ:re,sourceTransformerSpecZ:oc,specZ:er,statusSourceSpecZ:No,streamChannelData:wc,streamChannelValue:xc,streamChannelValuePropsZ:zo,stringSourceSpecZ:lc,stringifyNumber:Mc,stringifyNumberProps:$o,useProvider:hs,useSink:fs,useSource:ee,withinBounds:Cc},Symbol.toStringTag,{value:"Module"})),$c=E.z.object({key:E.z.string(),size:E.z.number(),order:Yh.order,loc:f.J.outer});E.z.record($c);const fe=(t,e)=>Object.values(e).filter(({loc:n})=>n===t).sort((n,r)=>T.E.order(n.order,r.order)),Pf=(t,e,n)=>{const r=e[t];if(r==null)return f.q.ZERO;const s=f.J.construct(r.loc),o=fe(s,e),i=f.J.construct(f.g.swap(f.J.direction(s))),a=fe(i,e),c=o.findIndex(({key:h})=>h===t),l=o.slice(0,c).reduce((h,{size:d})=>h+d,0),u=a.reduce((h,{size:d})=>h+d,0);switch(s){case"left":return f.q.translate(f.To.topLeft(n),[l,u]);case"right":return f.q.translate(f.To.topRight(n),[l-r.size,u]);case"top":return f.q.translate(f.To.topLeft(n),[l,u]);default:return f.q.translate(f.To.bottomLeft(n),[u,l-r.size])}},Rf=(t,e)=>{const n=fe("left",t),r=fe("right",t),s=fe("top",t),o=fe("bottom",t),i=n.reduce((u,{size:h})=>u+h,0),a=r.reduce((u,{size:h})=>u+h,0),c=s.reduce((u,{size:h})=>u+h,0),l=o.reduce((u,{size:h})=>u+h,0);return f.To.construct(f.q.translate(f.To.topLeft(e),{x:i,y:c}),f.To.width(e)-i-a,f.To.height(e)-c-l)};function vr(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Mf(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function qo(t){let e,n,r;t.length!==2?(e=vr,n=(a,c)=>vr(t(a),c),r=(a,c)=>t(a)-c):(e=t===vr||t===Mf?t:kf,n=t,r=t);function s(a,c,l=0,u=a.length){if(l<u){if(e(c,c)!==0)return u;do{const h=l+u>>>1;n(a[h],c)<0?l=h+1:u=h}while(l<u)}return l}function o(a,c,l=0,u=a.length){if(l<u){if(e(c,c)!==0)return u;do{const h=l+u>>>1;n(a[h],c)<=0?l=h+1:u=h}while(l<u)}return l}function i(a,c,l=0,u=a.length){const h=s(a,c,l,u-1);return h>l&&r(a[h-1],c)>-r(a[h],c)?h-1:h}return{left:s,center:i,right:o}}function kf(){return 0}function Af(t){return t===null?NaN:+t}const Nf=qo(vr),Df=Nf.right;qo(Af).center;const Of=Math.sqrt(50),zf=Math.sqrt(10),If=Math.sqrt(2);function Lr(t,e,n){const r=(e-t)/Math.max(0,n),s=Math.floor(Math.log10(r)),o=r/Math.pow(10,s),i=o>=Of?10:o>=zf?5:o>=If?2:1;let a,c,l;return s<0?(l=Math.pow(10,-s)/i,a=Math.round(t*l),c=Math.round(e*l),a/l<t&&++a,c/l>e&&--c,l=-l):(l=Math.pow(10,s)*i,a=Math.round(t/l),c=Math.round(e/l),a*l<t&&++a,c*l>e&&--c),c<a&&.5<=n&&n<2?Lr(t,e,n*2):[a,c,l]}function Lf(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const r=e<t,[s,o,i]=r?Lr(e,t,n):Lr(t,e,n);if(!(o>=s))return[];const a=o-s+1,c=new Array(a);if(r)if(i<0)for(let l=0;l<a;++l)c[l]=(o-l)/-i;else for(let l=0;l<a;++l)c[l]=(o-l)*i;else if(i<0)for(let l=0;l<a;++l)c[l]=(s+l)/-i;else for(let l=0;l<a;++l)c[l]=(s+l)*i;return c}function ro(t,e,n){return e=+e,t=+t,n=+n,Lr(t,e,n)[2]}function so(t,e,n){e=+e,t=+t,n=+n;const r=e<t,s=r?ro(e,t,n):ro(t,e,n);return(r?-1:1)*(s<0?1/-s:s)}function Yc(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Fo(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Bc(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function sr(){}var Bn=.7,$r=1/Bn,Be="\\s*([+-]?\\d+)\\s*",qn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",It="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",$f=/^#([0-9a-f]{3,8})$/,Yf=new RegExp(`^rgb\\(${Be},${Be},${Be}\\)$`),Bf=new RegExp(`^rgb\\(${It},${It},${It}\\)$`),qf=new RegExp(`^rgba\\(${Be},${Be},${Be},${qn}\\)$`),Ff=new RegExp(`^rgba\\(${It},${It},${It},${qn}\\)$`),Zf=new RegExp(`^hsl\\(${qn},${It},${It}\\)$`),Uf=new RegExp(`^hsla\\(${qn},${It},${It},${qn}\\)$`),ki={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};Fo(sr,ye,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ai,formatHex:Ai,formatHex8:Hf,formatHsl:Vf,formatRgb:Ni,toString:Ni});function Ai(){return this.rgb().formatHex()}function Hf(){return this.rgb().formatHex8()}function Vf(){return qc(this).formatHsl()}function Ni(){return this.rgb().formatRgb()}function ye(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=$f.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Di(e):n===3?new mt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?lr(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?lr(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=Yf.exec(t))?new mt(e[1],e[2],e[3],1):(e=Bf.exec(t))?new mt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=qf.exec(t))?lr(e[1],e[2],e[3],e[4]):(e=Ff.exec(t))?lr(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Zf.exec(t))?Ii(e[1],e[2]/100,e[3]/100,1):(e=Uf.exec(t))?Ii(e[1],e[2]/100,e[3]/100,e[4]):ki.hasOwnProperty(t)?Di(ki[t]):t==="transparent"?new mt(NaN,NaN,NaN,0):null}function Di(t){return new mt(t>>16&255,t>>8&255,t&255,1)}function lr(t,e,n,r){return r<=0&&(t=e=n=NaN),new mt(t,e,n,r)}function Xf(t){return t instanceof sr||(t=ye(t)),t?(t=t.rgb(),new mt(t.r,t.g,t.b,t.opacity)):new mt}function oo(t,e,n,r){return arguments.length===1?Xf(t):new mt(t,e,n,r??1)}function mt(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}Fo(mt,oo,Bc(sr,{brighter(t){return t=t==null?$r:Math.pow($r,t),new mt(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Bn:Math.pow(Bn,t),new mt(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new mt(ge(this.r),ge(this.g),ge(this.b),Yr(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:Oi,formatHex:Oi,formatHex8:Wf,formatRgb:zi,toString:zi}));function Oi(){return`#${de(this.r)}${de(this.g)}${de(this.b)}`}function Wf(){return`#${de(this.r)}${de(this.g)}${de(this.b)}${de((isNaN(this.opacity)?1:this.opacity)*255)}`}function zi(){const t=Yr(this.opacity);return`${t===1?"rgb(":"rgba("}${ge(this.r)}, ${ge(this.g)}, ${ge(this.b)}${t===1?")":`, ${t})`}`}function Yr(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function ge(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function de(t){return t=ge(t),(t<16?"0":"")+t.toString(16)}function Ii(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Rt(t,e,n,r)}function qc(t){if(t instanceof Rt)return new Rt(t.h,t.s,t.l,t.opacity);if(t instanceof sr||(t=ye(t)),!t)return new Rt;if(t instanceof Rt)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,s=Math.min(e,n,r),o=Math.max(e,n,r),i=NaN,a=o-s,c=(o+s)/2;return a?(e===o?i=(n-r)/a+(n<r)*6:n===o?i=(r-e)/a+2:i=(e-n)/a+4,a/=c<.5?o+s:2-o-s,i*=60):a=c>0&&c<1?0:i,new Rt(i,a,c,t.opacity)}function Gf(t,e,n,r){return arguments.length===1?qc(t):new Rt(t,e,n,r??1)}function Rt(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}Fo(Rt,Gf,Bc(sr,{brighter(t){return t=t==null?$r:Math.pow($r,t),new Rt(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Bn:Math.pow(Bn,t),new Rt(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,s=2*n-r;return new mt(Ns(t>=240?t-240:t+120,s,r),Ns(t,s,r),Ns(t<120?t+240:t-120,s,r),this.opacity)},clamp(){return new Rt(Li(this.h),ur(this.s),ur(this.l),Yr(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=Yr(this.opacity);return`${t===1?"hsl(":"hsla("}${Li(this.h)}, ${ur(this.s)*100}%, ${ur(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Li(t){return t=(t||0)%360,t<0?t+360:t}function ur(t){return Math.max(0,Math.min(1,t||0))}function Ns(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 Zo=t=>()=>t;function Kf(t,e){return function(n){return t+n*e}}function jf(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 Jf(t){return(t=+t)==1?Fc:function(e,n){return n-e?jf(e,n,t):Zo(isNaN(e)?n:e)}}function Fc(t,e){var n=e-t;return n?Kf(t,n):Zo(isNaN(t)?e:t)}const Br=function t(e){var n=Jf(e);function r(s,o){var i=n((s=oo(s)).r,(o=oo(o)).r),a=n(s.g,o.g),c=n(s.b,o.b),l=Fc(s.opacity,o.opacity);return function(u){return s.r=i(u),s.g=a(u),s.b=c(u),s.opacity=l(u),s+""}}return r.gamma=t,r}(1);function Qf(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,r=e.slice(),s;return function(o){for(s=0;s<n;++s)r[s]=t[s]*(1-o)+e[s]*o;return r}}function td(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ed(t,e){var n=e?e.length:0,r=t?Math.min(n,t.length):0,s=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)s[i]=Uo(t[i],e[i]);for(;i<n;++i)o[i]=e[i];return function(a){for(i=0;i<r;++i)o[i]=s[i](a);return o}}function nd(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function Pt(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function rd(t,e){var n={},r={},s;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(s in e)s in t?n[s]=Uo(t[s],e[s]):r[s]=e[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var io=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ds=new RegExp(io.source,"g");function sd(t){return function(){return t}}function od(t){return function(e){return t(e)+""}}function Zc(t,e){var n=io.lastIndex=Ds.lastIndex=0,r,s,o,i=-1,a=[],c=[];for(t=t+"",e=e+"";(r=io.exec(t))&&(s=Ds.exec(e));)(o=s.index)>n&&(o=e.slice(n,o),a[i]?a[i]+=o:a[++i]=o),(r=r[0])===(s=s[0])?a[i]?a[i]+=s:a[++i]=s:(a[++i]=null,c.push({i,x:Pt(r,s)})),n=Ds.lastIndex;return n<e.length&&(o=e.slice(n),a[i]?a[i]+=o:a[++i]=o),a.length<2?c[0]?od(c[0].x):sd(e):(e=c.length,function(l){for(var u=0,h;u<e;++u)a[(h=c[u]).i]=h.x(l);return a.join("")})}function Uo(t,e){var n=typeof e,r;return e==null||n==="boolean"?Zo(e):(n==="number"?Pt:n==="string"?(r=ye(e))?(e=r,Br):Zc:e instanceof ye?Br:e instanceof Date?nd:td(e)?Qf:Array.isArray(e)?ed:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?rd:Pt)(t,e)}function id(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var $i=180/Math.PI,ao={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Uc(t,e,n,r,s,o){var i,a,c;return(i=Math.sqrt(t*t+e*e))&&(t/=i,e/=i),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,c/=a),t*r<e*n&&(t=-t,e=-e,c=-c,i=-i),{translateX:s,translateY:o,rotate:Math.atan2(e,t)*$i,skewX:Math.atan(c)*$i,scaleX:i,scaleY:a}}var hr;function ad(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?ao:Uc(e.a,e.b,e.c,e.d,e.e,e.f)}function cd(t){return t==null||(hr||(hr=document.createElementNS("http://www.w3.org/2000/svg","g")),hr.setAttribute("transform",t),!(t=hr.transform.baseVal.consolidate()))?ao:(t=t.matrix,Uc(t.a,t.b,t.c,t.d,t.e,t.f))}function Hc(t,e,n,r){function s(l){return l.length?l.pop()+" ":""}function o(l,u,h,d,p,w){if(l!==h||u!==d){var y=p.push("translate(",null,e,null,n);w.push({i:y-4,x:Pt(l,h)},{i:y-2,x:Pt(u,d)})}else(h||d)&&p.push("translate("+h+e+d+n)}function i(l,u,h,d){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),d.push({i:h.push(s(h)+"rotate(",null,r)-2,x:Pt(l,u)})):u&&h.push(s(h)+"rotate("+u+r)}function a(l,u,h,d){l!==u?d.push({i:h.push(s(h)+"skewX(",null,r)-2,x:Pt(l,u)}):u&&h.push(s(h)+"skewX("+u+r)}function c(l,u,h,d,p,w){if(l!==h||u!==d){var y=p.push(s(p)+"scale(",null,",",null,")");w.push({i:y-4,x:Pt(l,h)},{i:y-2,x:Pt(u,d)})}else(h!==1||d!==1)&&p.push(s(p)+"scale("+h+","+d+")")}return function(l,u){var h=[],d=[];return l=t(l),u=t(u),o(l.translateX,l.translateY,u.translateX,u.translateY,h,d),i(l.rotate,u.rotate,h,d),a(l.skewX,u.skewX,h,d),c(l.scaleX,l.scaleY,u.scaleX,u.scaleY,h,d),l=u=null,function(p){for(var w=-1,y=d.length,b;++w<y;)h[(b=d[w]).i]=b.x(p);return h.join("")}}}var ld=Hc(ad,"px, ","px)","deg)"),ud=Hc(cd,", ",")",")"),hd=1e-12;function Yi(t){return((t=Math.exp(t))+1/t)/2}function fd(t){return((t=Math.exp(t))-1/t)/2}function dd(t){return((t=Math.exp(2*t))-1)/(t+1)}const pd=function t(e,n,r){function s(o,i){var a=o[0],c=o[1],l=o[2],u=i[0],h=i[1],d=i[2],p=u-a,w=h-c,y=p*p+w*w,b,S;if(y<hd)S=Math.log(d/l)/e,b=function(D){return[a+D*p,c+D*w,l*Math.exp(e*D*S)]};else{var M=Math.sqrt(y),_=(d*d-l*l+r*y)/(2*l*n*M),v=(d*d-l*l-r*y)/(2*d*n*M),k=Math.log(Math.sqrt(_*_+1)-_),C=Math.log(Math.sqrt(v*v+1)-v);S=(C-k)/e,b=function(D){var $=D*S,O=Yi(k),Z=l/(n*M)*(O*dd(e*$+k)-fd(k));return[a+Z*p,c+Z*w,l*O/Yi(e*$+k)]}}return b.duration=S*1e3*e/Math.SQRT2,b}return s.rho=function(o){var i=Math.max(.001,+o),a=i*i,c=a*a;return t(i,a,c)},s}(Math.SQRT2,2,4);function gd(t){return function(){return t}}function md(t){return+t}var Bi=[0,1];function Oe(t){return t}function co(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:gd(isNaN(e)?NaN:.5)}function yd(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function wd(t,e,n){var r=t[0],s=t[1],o=e[0],i=e[1];return s<r?(r=co(s,r),o=n(i,o)):(r=co(r,s),o=n(o,i)),function(a){return o(r(a))}}function xd(t,e,n){var r=Math.min(t.length,e.length)-1,s=new Array(r),o=new Array(r),i=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++i<r;)s[i]=co(t[i],t[i+1]),o[i]=n(e[i],e[i+1]);return function(a){var c=Df(t,a,1,r)-1;return o[c](s[c](a))}}function Vc(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Sd(){var t=Bi,e=Bi,n=Uo,r,s,o,i=Oe,a,c,l;function u(){var d=Math.min(t.length,e.length);return i!==Oe&&(i=yd(t[0],t[d-1])),a=d>2?xd:wd,c=l=null,h}function h(d){return d==null||isNaN(d=+d)?o:(c||(c=a(t.map(r),e,n)))(r(i(d)))}return h.invert=function(d){return i(s((l||(l=a(e,t.map(r),Pt)))(d)))},h.domain=function(d){return arguments.length?(t=Array.from(d,md),u()):t.slice()},h.range=function(d){return arguments.length?(e=Array.from(d),u()):e.slice()},h.rangeRound=function(d){return e=Array.from(d),n=id,u()},h.clamp=function(d){return arguments.length?(i=d?!0:Oe,u()):i!==Oe},h.interpolate=function(d){return arguments.length?(n=d,u()):n},h.unknown=function(d){return arguments.length?(o=d,h):o},function(d,p){return r=d,s=p,u()}}function Xc(){return Sd()(Oe,Oe)}function vd(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function qr(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 je(t){return t=qr(Math.abs(t)),t?t[1]:NaN}function bd(t,e){return function(n,r){for(var s=n.length,o=[],i=0,a=t[0],c=0;s>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(n.substring(s-=a,s+a)),!((c+=a+1)>r));)a=t[i=(i+1)%t.length];return o.reverse().join(e)}}function Td(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var Ed=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Fr(t){if(!(e=Ed.exec(t)))throw new Error("invalid format: "+t);var e;return new Ho({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]})}Fr.prototype=Ho.prototype;function Ho(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+""}Ho.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 _d(t){t:for(var e=t.length,n=1,r=-1,s;n<e;++n)switch(t[n]){case".":r=s=n;break;case"0":r===0&&(r=n),s=n;break;default:if(!+t[n])break t;r>0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(s+1):t}var Wc;function Cd(t,e){var n=qr(t,e);if(!n)return t+"";var r=n[0],s=n[1],o=s-(Wc=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,i=r.length;return o===i?r:o>i?r+new Array(o-i+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+qr(t,Math.max(0,e+o-1))[0]}function qi(t,e){var n=qr(t,e);if(!n)return t+"";var r=n[0],s=n[1];return s<0?"0."+new Array(-s).join("0")+r:r.length>s+1?r.slice(0,s+1)+"."+r.slice(s+1):r+new Array(s-r.length+2).join("0")}const Fi={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:vd,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)=>qi(t*100,e),r:qi,s:Cd,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Zi(t){return t}var Ui=Array.prototype.map,Hi=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Pd(t){var e=t.grouping===void 0||t.thousands===void 0?Zi:bd(Ui.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",s=t.decimal===void 0?".":t.decimal+"",o=t.numerals===void 0?Zi:Td(Ui.call(t.numerals,String)),i=t.percent===void 0?"%":t.percent+"",a=t.minus===void 0?"−":t.minus+"",c=t.nan===void 0?"NaN":t.nan+"";function l(h){h=Fr(h);var d=h.fill,p=h.align,w=h.sign,y=h.symbol,b=h.zero,S=h.width,M=h.comma,_=h.precision,v=h.trim,k=h.type;k==="n"?(M=!0,k="g"):Fi[k]||(_===void 0&&(_=12),v=!0,k="g"),(b||d==="0"&&p==="=")&&(b=!0,d="0",p="=");var C=y==="$"?n:y==="#"&&/[boxX]/.test(k)?"0"+k.toLowerCase():"",D=y==="$"?r:/[%p]/.test(k)?i:"",$=Fi[k],O=/[defgprs%]/.test(k);_=_===void 0?6:/[gprs]/.test(k)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function Z(N){var U=C,Y=D,g,A,R;if(k==="c")Y=$(N)+Y,N="";else{N=+N;var z=N<0||1/N<0;if(N=isNaN(N)?c:$(Math.abs(N),_),v&&(N=_d(N)),z&&+N==0&&w!=="+"&&(z=!1),U=(z?w==="("?w:a:w==="-"||w==="("?"":w)+U,Y=(k==="s"?Hi[8+Wc/3]:"")+Y+(z&&w==="("?")":""),O){for(g=-1,A=N.length;++g<A;)if(R=N.charCodeAt(g),48>R||R>57){Y=(R===46?s+N.slice(g+1):N.slice(g))+Y,N=N.slice(0,g);break}}}M&&!b&&(N=e(N,1/0));var B=U.length+N.length+Y.length,P=B<S?new Array(S-B+1).join(d):"";switch(M&&b&&(N=e(P+N,P.length?S-Y.length:1/0),P=""),p){case"<":N=U+N+Y+P;break;case"=":N=U+P+N+Y;break;case"^":N=P.slice(0,B=P.length>>1)+U+N+Y+P.slice(B);break;default:N=P+U+N+Y;break}return o(N)}return Z.toString=function(){return h+""},Z}function u(h,d){var p=l((h=Fr(h),h.type="f",h)),w=Math.max(-8,Math.min(8,Math.floor(je(d)/3)))*3,y=Math.pow(10,-w),b=Hi[8+w/3];return function(S){return p(y*S)+b}}return{format:l,formatPrefix:u}}var fr,Gc,Kc;Rd({thousands:",",grouping:[3],currency:["$",""]});function Rd(t){return fr=Pd(t),Gc=fr.format,Kc=fr.formatPrefix,fr}function Md(t){return Math.max(0,-je(Math.abs(t)))}function kd(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(je(e)/3)))*3-je(Math.abs(t)))}function Ad(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,je(e)-je(t))+1}function Nd(t,e,n,r){var s=so(t,e,n),o;switch(r=Fr(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=kd(s,i))&&(r.precision=o),Kc(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Ad(s,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Md(s))&&(r.precision=o-(r.type==="%")*2);break}}return Gc(r)}function Dd(t){var e=t.domain;return t.ticks=function(n){var r=e();return Lf(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var s=e();return Nd(s[0],s[s.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),s=0,o=r.length-1,i=r[s],a=r[o],c,l,u=10;for(a<i&&(l=i,i=a,a=l,l=s,s=o,o=l);u-- >0;){if(l=ro(i,a,n),l===c)return r[s]=i,r[o]=a,e(r);if(l>0)i=Math.floor(i/l)*l,a=Math.ceil(a/l)*l;else if(l<0)i=Math.ceil(i*l)/l,a=Math.floor(a*l)/l;else break;c=l}return t},t}function jc(){var t=Xc();return t.copy=function(){return Vc(t,jc())},Yc.apply(t,arguments),Dd(t)}function Od(t,e){t=t.slice();var n=0,r=t.length-1,s=t[n],o=t[r],i;return o<s&&(i=n,n=r,r=i,i=s,s=o,o=i),t[n]=e.floor(s),t[r]=e.ceil(o),t}const Os=new Date,zs=new Date;function ut(t,e,n,r){function s(o){return t(o=arguments.length===0?new Date:new Date(+o)),o}return s.floor=o=>(t(o=new Date(+o)),o),s.ceil=o=>(t(o=new Date(o-1)),e(o,1),t(o),o),s.round=o=>{const i=s(o),a=s.ceil(o);return o-i<a-o?i:a},s.offset=(o,i)=>(e(o=new Date(+o),i==null?1:Math.floor(i)),o),s.range=(o,i,a)=>{const c=[];if(o=s.ceil(o),a=a==null?1:Math.floor(a),!(o<i)||!(a>0))return c;let l;do c.push(l=new Date(+o)),e(o,a),t(o);while(l<o&&o<i);return c},s.filter=o=>ut(i=>{if(i>=i)for(;t(i),!o(i);)i.setTime(i-1)},(i,a)=>{if(i>=i)if(a<0)for(;++a<=0;)for(;e(i,-1),!o(i););else for(;--a>=0;)for(;e(i,1),!o(i););}),n&&(s.count=(o,i)=>(Os.setTime(+o),zs.setTime(+i),t(Os),t(zs),Math.floor(n(Os,zs))),s.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?s.filter(r?i=>r(i)%o===0:i=>s.count(0,i)%o===0):s)),s}const Zr=ut(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Zr.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?ut(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Zr);Zr.range;const Ft=1e3,Tt=Ft*60,Zt=Tt*60,Ht=Zt*24,Vo=Ht*7,Vi=Ht*30,Is=Ht*365,ze=ut(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*Ft)},(t,e)=>(e-t)/Ft,t=>t.getUTCSeconds());ze.range;const Xo=ut(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ft)},(t,e)=>{t.setTime(+t+e*Tt)},(t,e)=>(e-t)/Tt,t=>t.getMinutes());Xo.range;const zd=ut(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*Tt)},(t,e)=>(e-t)/Tt,t=>t.getUTCMinutes());zd.range;const Wo=ut(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Ft-t.getMinutes()*Tt)},(t,e)=>{t.setTime(+t+e*Zt)},(t,e)=>(e-t)/Zt,t=>t.getHours());Wo.range;const Id=ut(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Zt)},(t,e)=>(e-t)/Zt,t=>t.getUTCHours());Id.range;const or=ut(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Tt)/Ht,t=>t.getDate()-1);or.range;const Go=ut(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Ht,t=>t.getUTCDate()-1);Go.range;const Ld=ut(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Ht,t=>Math.floor(t/Ht));Ld.range;function be(t){return ut(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())*Tt)/Vo)}const ws=be(0),Ur=be(1),$d=be(2),Yd=be(3),Je=be(4),Bd=be(5),qd=be(6);ws.range;Ur.range;$d.range;Yd.range;Je.range;Bd.range;qd.range;function Te(t){return ut(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)/Vo)}const Jc=Te(0),Hr=Te(1),Fd=Te(2),Zd=Te(3),Qe=Te(4),Ud=Te(5),Hd=Te(6);Jc.range;Hr.range;Fd.range;Zd.range;Qe.range;Ud.range;Hd.range;const Ko=ut(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());Ko.range;const Vd=ut(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());Vd.range;const Vt=ut(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());Vt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ut(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)});Vt.range;const we=ut(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());we.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:ut(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)});we.range;function Xd(t,e,n,r,s,o){const i=[[ze,1,Ft],[ze,5,5*Ft],[ze,15,15*Ft],[ze,30,30*Ft],[o,1,Tt],[o,5,5*Tt],[o,15,15*Tt],[o,30,30*Tt],[s,1,Zt],[s,3,3*Zt],[s,6,6*Zt],[s,12,12*Zt],[r,1,Ht],[r,2,2*Ht],[n,1,Vo],[e,1,Vi],[e,3,3*Vi],[t,1,Is]];function a(l,u,h){const d=u<l;d&&([l,u]=[u,l]);const p=h&&typeof h.range=="function"?h:c(l,u,h),w=p?p.range(l,+u+1):[];return d?w.reverse():w}function c(l,u,h){const d=Math.abs(u-l)/h,p=qo(([,,b])=>b).right(i,d);if(p===i.length)return t.every(so(l/Is,u/Is,h));if(p===0)return Zr.every(Math.max(so(l,u,h),1));const[w,y]=i[d/i[p-1][2]<i[p][2]/d?p-1:p];return w.every(y)}return[a,c]}const[Wd,Gd]=Xd(Vt,Ko,ws,or,Wo,Xo);function Ls(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 $s(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 gn(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Kd(t){var e=t.dateTime,n=t.date,r=t.time,s=t.periods,o=t.days,i=t.shortDays,a=t.months,c=t.shortMonths,l=mn(s),u=yn(s),h=mn(o),d=yn(o),p=mn(i),w=yn(i),y=mn(a),b=yn(a),S=mn(c),M=yn(c),_={a:z,A:B,b:P,B:I,c:null,d:Ji,e:Ji,f:xp,g:Mp,G:Ap,H:mp,I:yp,j:wp,L:Qc,m:Sp,M:vp,p:q,q:F,Q:ea,s:na,S:bp,u:Tp,U:Ep,V:_p,w:Cp,W:Pp,x:null,X:null,y:Rp,Y:kp,Z:Np,"%":ta},v={a:X,A:V,b:K,B:tt,c:null,d:Qi,e:Qi,f:Ip,g:Vp,G:Wp,H:Dp,I:Op,j:zp,L:el,m:Lp,M:$p,p:et,q:ot,Q:ea,s:na,S:Yp,u:Bp,U:qp,V:Fp,w:Zp,W:Up,x:null,X:null,y:Hp,Y:Xp,Z:Gp,"%":ta},k={a:Z,A:N,b:U,B:Y,c:g,d:Ki,e:Ki,f:fp,g:Gi,G:Wi,H:ji,I:ji,j:cp,L:hp,m:ap,M:lp,p:O,q:ip,Q:pp,s:gp,S:up,u:ep,U:np,V:rp,w:tp,W:sp,x:A,X:R,y:Gi,Y:Wi,Z:op,"%":dp};_.x=C(n,_),_.X=C(r,_),_.c=C(e,_),v.x=C(n,v),v.X=C(r,v),v.c=C(e,v);function C(H,W){return function(j){var L=[],it=-1,J=0,nt=H.length,at,rt,G;for(j instanceof Date||(j=new Date(+j));++it<nt;)H.charCodeAt(it)===37&&(L.push(H.slice(J,it)),(rt=Xi[at=H.charAt(++it)])!=null?at=H.charAt(++it):rt=at==="e"?" ":"0",(G=W[at])&&(at=G(j,rt)),L.push(at),J=it+1);return L.push(H.slice(J,it)),L.join("")}}function D(H,W){return function(j){var L=gn(1900,void 0,1),it=$(L,H,j+="",0),J,nt;if(it!=j.length)return null;if("Q"in L)return new Date(L.Q);if("s"in L)return new Date(L.s*1e3+("L"in L?L.L:0));if(W&&!("Z"in L)&&(L.Z=0),"p"in L&&(L.H=L.H%12+L.p*12),L.m===void 0&&(L.m="q"in L?L.q:0),"V"in L){if(L.V<1||L.V>53)return null;"w"in L||(L.w=1),"Z"in L?(J=$s(gn(L.y,0,1)),nt=J.getUTCDay(),J=nt>4||nt===0?Hr.ceil(J):Hr(J),J=Go.offset(J,(L.V-1)*7),L.y=J.getUTCFullYear(),L.m=J.getUTCMonth(),L.d=J.getUTCDate()+(L.w+6)%7):(J=Ls(gn(L.y,0,1)),nt=J.getDay(),J=nt>4||nt===0?Ur.ceil(J):Ur(J),J=or.offset(J,(L.V-1)*7),L.y=J.getFullYear(),L.m=J.getMonth(),L.d=J.getDate()+(L.w+6)%7)}else("W"in L||"U"in L)&&("w"in L||(L.w="u"in L?L.u%7:"W"in L?1:0),nt="Z"in L?$s(gn(L.y,0,1)).getUTCDay():Ls(gn(L.y,0,1)).getDay(),L.m=0,L.d="W"in L?(L.w+6)%7+L.W*7-(nt+5)%7:L.w+L.U*7-(nt+6)%7);return"Z"in L?(L.H+=L.Z/100|0,L.M+=L.Z%100,$s(L)):Ls(L)}}function $(H,W,j,L){for(var it=0,J=W.length,nt=j.length,at,rt;it<J;){if(L>=nt)return-1;if(at=W.charCodeAt(it++),at===37){if(at=W.charAt(it++),rt=k[at in Xi?W.charAt(it++):at],!rt||(L=rt(H,j,L))<0)return-1}else if(at!=j.charCodeAt(L++))return-1}return L}function O(H,W,j){var L=l.exec(W.slice(j));return L?(H.p=u.get(L[0].toLowerCase()),j+L[0].length):-1}function Z(H,W,j){var L=p.exec(W.slice(j));return L?(H.w=w.get(L[0].toLowerCase()),j+L[0].length):-1}function N(H,W,j){var L=h.exec(W.slice(j));return L?(H.w=d.get(L[0].toLowerCase()),j+L[0].length):-1}function U(H,W,j){var L=S.exec(W.slice(j));return L?(H.m=M.get(L[0].toLowerCase()),j+L[0].length):-1}function Y(H,W,j){var L=y.exec(W.slice(j));return L?(H.m=b.get(L[0].toLowerCase()),j+L[0].length):-1}function g(H,W,j){return $(H,e,W,j)}function A(H,W,j){return $(H,n,W,j)}function R(H,W,j){return $(H,r,W,j)}function z(H){return i[H.getDay()]}function B(H){return o[H.getDay()]}function P(H){return c[H.getMonth()]}function I(H){return a[H.getMonth()]}function q(H){return s[+(H.getHours()>=12)]}function F(H){return 1+~~(H.getMonth()/3)}function X(H){return i[H.getUTCDay()]}function V(H){return o[H.getUTCDay()]}function K(H){return c[H.getUTCMonth()]}function tt(H){return a[H.getUTCMonth()]}function et(H){return s[+(H.getUTCHours()>=12)]}function ot(H){return 1+~~(H.getUTCMonth()/3)}return{format:function(H){var W=C(H+="",_);return W.toString=function(){return H},W},parse:function(H){var W=D(H+="",!1);return W.toString=function(){return H},W},utcFormat:function(H){var W=C(H+="",v);return W.toString=function(){return H},W},utcParse:function(H){var W=D(H+="",!0);return W.toString=function(){return H},W}}}var Xi={"-":"",_:" ",0:"0"},ft=/^\s*\d+/,jd=/^%/,Jd=/[\\^$*+?|[\]().{}]/g;function st(t,e,n){var r=t<0?"-":"",s=(r?-t:t)+"",o=s.length;return r+(o<n?new Array(n-o+1).join(e)+s:s)}function Qd(t){return t.replace(Jd,"\\$&")}function mn(t){return new RegExp("^(?:"+t.map(Qd).join("|")+")","i")}function yn(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function tp(t,e,n){var r=ft.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function ep(t,e,n){var r=ft.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function np(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function rp(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function sp(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Wi(t,e,n){var r=ft.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function Gi(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function op(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 ip(t,e,n){var r=ft.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function ap(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ki(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function cp(t,e,n){var r=ft.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function ji(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function lp(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function up(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function hp(t,e,n){var r=ft.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function fp(t,e,n){var r=ft.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function dp(t,e,n){var r=jd.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function pp(t,e,n){var r=ft.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function gp(t,e,n){var r=ft.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Ji(t,e){return st(t.getDate(),e,2)}function mp(t,e){return st(t.getHours(),e,2)}function yp(t,e){return st(t.getHours()%12||12,e,2)}function wp(t,e){return st(1+or.count(Vt(t),t),e,3)}function Qc(t,e){return st(t.getMilliseconds(),e,3)}function xp(t,e){return Qc(t,e)+"000"}function Sp(t,e){return st(t.getMonth()+1,e,2)}function vp(t,e){return st(t.getMinutes(),e,2)}function bp(t,e){return st(t.getSeconds(),e,2)}function Tp(t){var e=t.getDay();return e===0?7:e}function Ep(t,e){return st(ws.count(Vt(t)-1,t),e,2)}function tl(t){var e=t.getDay();return e>=4||e===0?Je(t):Je.ceil(t)}function _p(t,e){return t=tl(t),st(Je.count(Vt(t),t)+(Vt(t).getDay()===4),e,2)}function Cp(t){return t.getDay()}function Pp(t,e){return st(Ur.count(Vt(t)-1,t),e,2)}function Rp(t,e){return st(t.getFullYear()%100,e,2)}function Mp(t,e){return t=tl(t),st(t.getFullYear()%100,e,2)}function kp(t,e){return st(t.getFullYear()%1e4,e,4)}function Ap(t,e){var n=t.getDay();return t=n>=4||n===0?Je(t):Je.ceil(t),st(t.getFullYear()%1e4,e,4)}function Np(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+st(e/60|0,"0",2)+st(e%60,"0",2)}function Qi(t,e){return st(t.getUTCDate(),e,2)}function Dp(t,e){return st(t.getUTCHours(),e,2)}function Op(t,e){return st(t.getUTCHours()%12||12,e,2)}function zp(t,e){return st(1+Go.count(we(t),t),e,3)}function el(t,e){return st(t.getUTCMilliseconds(),e,3)}function Ip(t,e){return el(t,e)+"000"}function Lp(t,e){return st(t.getUTCMonth()+1,e,2)}function $p(t,e){return st(t.getUTCMinutes(),e,2)}function Yp(t,e){return st(t.getUTCSeconds(),e,2)}function Bp(t){var e=t.getUTCDay();return e===0?7:e}function qp(t,e){return st(Jc.count(we(t)-1,t),e,2)}function nl(t){var e=t.getUTCDay();return e>=4||e===0?Qe(t):Qe.ceil(t)}function Fp(t,e){return t=nl(t),st(Qe.count(we(t),t)+(we(t).getUTCDay()===4),e,2)}function Zp(t){return t.getUTCDay()}function Up(t,e){return st(Hr.count(we(t)-1,t),e,2)}function Hp(t,e){return st(t.getUTCFullYear()%100,e,2)}function Vp(t,e){return t=nl(t),st(t.getUTCFullYear()%100,e,2)}function Xp(t,e){return st(t.getUTCFullYear()%1e4,e,4)}function Wp(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Qe(t):Qe.ceil(t),st(t.getUTCFullYear()%1e4,e,4)}function Gp(){return"+0000"}function ta(){return"%"}function ea(t){return+t}function na(t){return Math.floor(+t/1e3)}var Me,rl;Kp({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 Kp(t){return Me=Kd(t),rl=Me.format,Me.parse,Me.utcFormat,Me.utcParse,Me}function jp(t){return new Date(t)}function Jp(t){return t instanceof Date?+t:+new Date(+t)}function sl(t,e,n,r,s,o,i,a,c,l){var u=Xc(),h=u.invert,d=u.domain,p=l(".%L"),w=l(":%S"),y=l("%I:%M"),b=l("%I %p"),S=l("%a %d"),M=l("%b %d"),_=l("%B"),v=l("%Y");function k(C){return(c(C)<C?p:a(C)<C?w:i(C)<C?y:o(C)<C?b:r(C)<C?s(C)<C?S:M:n(C)<C?_:v)(C)}return u.invert=function(C){return new Date(h(C))},u.domain=function(C){return arguments.length?d(Array.from(C,Jp)):d().map(jp)},u.ticks=function(C){var D=d();return t(D[0],D[D.length-1],C??10)},u.tickFormat=function(C,D){return D==null?k:l(D)},u.nice=function(C){var D=d();return(!C||typeof C.range!="function")&&(C=e(D[0],D[D.length-1],C??10)),C?d(Od(D,C)):u},u.copy=function(){return Vc(u,sl(t,e,n,r,s,o,i,a,c,l))},u}function Qp(){return Yc.apply(sl(Wd,Gd,Vt,Ko,ws,or,Wo,Xo,ze,rl).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const jo=E.z.enum(["linear","time"]),Jo=E.z.object({tickSpacing:E.z.number().default(75),type:jo.optional().default("linear")}),lo=t=>{const e=Jo.parse(t);return ng[e.type](e)};class tg{constructor(e){m(this,"props");this.props=e}generate({decimalToDataScale:e,size:n}){const r=[0,n],s=[new T.m(e.pos(0)).date(),new T.m(e.pos(1)).date()],o=Qp().domain(s).range(r);return o.ticks(ol(n,this.props.tickSpacing)).map(a=>({label:this.tickLabel(a),position:o(a)}))}tickLabel(e){const n=new T.m(e).date();let r=`:${n.getSeconds()}`;if(n.getMilliseconds()!==0){const o=Math.round(n.getMilliseconds()).toString().padStart(3,"0").replace(/0+$/,"");r+=`.${o}`}return n.getSeconds()===0&&n.getMilliseconds()===0&&(r=`${n.getHours()}:${n.getMinutes().toString().padStart(2,"0")}`),r}}class eg{constructor(e){m(this,"props");this.props=e}generate({decimalToDataScale:e,size:n}){const r=[0,n],s=[e.pos(0),e.pos(1)],o=jc().domain(s).range(r),i=ol(n,this.props.tickSpacing);return o.ticks(i).map(c=>({label:this.tickLabel(c),position:o(c)}))}tickLabel(e){return e.toString()}}const ol=(t,e)=>{const n=Math.floor(t/e);return n>0?n:1},ng={linear:t=>new eg(t),time:t=>new tg(t)},Qo=Jo.extend({color:f.Color.z,type:jo.optional().default("linear"),font:E.z.string(),showGrid:E.z.boolean().optional().default(!0),location:f.J.outer,gridColor:f.Color.z}),Dt=4;let il=class{constructor(e,n){m(this,"ctx");m(this,"state");m(this,"tickFactory");this.ctx=e,this.state=n,this.tickFactory=lo(this.state)}setState(e){this.state=T.prettyParse(Qo,e),this.tickFactory=lo(e)}render(e){const{lower2d:n}=this.ctx;switch(n.font=this.state.font,n.fillStyle=this.state.color.hex,n.lineWidth=1,this.state.location){case"left":return this.drawLeft(e);case"right":return this.drawRight(e);case"top":return this.drawTop(e);default:return this.drawBottom(e)}}drawBottom(e){const{lower2d:n}=this.ctx,{plot:r}=e,s=f.To.width(r),o=f.To.height(r),i=e.position,a=this.tickFactory.generate({...e,size:s});return this.maybeDrawGrid(s,a,l=>[f.q.translate(i,"x",l.position),f.q.translate(i,{x:l.position,y:-o})]),n.strokeStyle=this.state.color.hex,this.drawLine(i,f.q.translate(i,"x",s)),{size:this.drawTicks(a,(l,u)=>{n.moveTo(i.x+u.position,i.y),n.lineTo(i.x+u.position,i.y+Dt),n.stroke(),n.fillText(u.label,i.x+u.position-l.width/2,i.y+5+l.height)}).height+Dt}}drawTop(e){const{lower2d:n}=this.ctx,{plot:r}=e,s=f.To.width(r),o=f.To.height(r),i=f.q.translate(e.position,"y",e.size),a=this.tickFactory.generate({...e,size:s});return this.maybeDrawGrid(s,a,l=>[f.q.translate(i,"x",l.position),f.q.translate(i,{x:l.position,y:o})]),n.strokeStyle=this.state.color.hex,this.drawLine(i,f.q.translate(i,"x",s)),{size:this.drawTicks(a,(l,u)=>{n.moveTo(i.x+u.position,i.y),n.lineTo(i.x+u.position,i.y-Dt),n.stroke(),n.fillText(u.label,i.x+u.position-l.width/2,i.y-5-l.height)}).height+Dt}}drawLeft(e){const{lower2d:n}=this.ctx,{plot:r}=e,s=f.To.height(r),o=f.To.width(r),i=f.q.translate(e.position,"x",e.size),a=this.tickFactory.generate({...e,size:s});return this.maybeDrawGrid(s,a,l=>[f.q.translate(i,"y",l.position),f.q.translate(i,{x:o,y:l.position})]),n.strokeStyle=this.state.color.hex,this.drawLine(i,f.q.translate(i,"y",s)),{size:this.drawTicks(a,(l,u)=>{n.moveTo(i.x,i.y+u.position),n.lineTo(i.x-Dt,i.y+u.position),n.stroke(),n.fillText(u.label,i.x-l.width-Dt*2,i.y+u.position+l.height/3)}).width+Dt*2}}drawRight(e){const{lower2d:n}=this.ctx,{plot:r}=e,s=f.To.height(r),o=f.To.width(r),i=e.position,a=this.tickFactory.generate({...e,size:s});return this.maybeDrawGrid(s,a,l=>[f.q.translate(i,"y",l.position),f.q.translate(i,{x:-o,y:l.position})]),n.strokeStyle=this.state.color.hex,this.drawLine(i,f.q.translate(i,"y",s)),{size:this.drawTicks(a,(l,u)=>{n.moveTo(i.x,i.y+u.position),n.lineTo(i.x+Dt,i.y+u.position),n.stroke(),n.fillText(u.label,i.x+Dt+2,i.y+u.position+l.height/3)}).width+Dt*2}}drawLine(e,n){const{lower2d:r}=this.ctx;r.beginPath(),r.moveTo(...f.q.couple(e)),r.lineTo(...f.q.couple(n)),r.stroke()}drawTicks(e,n){let r=f._.ZERO;return e.forEach(s=>{const o=T.dimensions(s.label,this.state.font,this.ctx.lower2d);r=f._.max([r,o]),n(o,s)}),r}maybeDrawGrid(e,n,r){const{showGrid:s,gridColor:o}=this.state;if(s){const i=f.R.construct(-1,1),a=f.R.construct(e-1,e+1);this.ctx.lower2d.strokeStyle=o.hex,n.filter(({position:c})=>!f.R.contains(i,c)&&!f.R.contains(a,c)).forEach(c=>this.drawLine(...r(c)))}}};const br=(t,e)=>f.To.construct(f.To.left(t)-e.x,f.To.top(t)-e.y,f.To.width(t)+e.x*2,f.To.height(t)+e.y*2);class Vr{constructor(e,n=f.k.XY.IDENTITY){m(this,"scale_");m(this,"wrapped");this.wrapped=e,this.scale_=n}get fontStretch(){return this.wrapped.fontStretch}set fontStretch(e){this.wrapped.fontStretch=e}get fontVariantCaps(){return this.wrapped.fontVariantCaps}set fontVariantCaps(e){this.wrapped.fontVariantCaps=e}get wordSpacing(){return this.wrapped.wordSpacing}set wordSpacing(e){this.wrapped.wordSpacing=e}get letterSpacing(){return this.wrapped.letterSpacing}set letterSpacing(e){this.wrapped.letterSpacing=e}get textRendering(){return this.wrapped.textRendering}set textRendering(e){this.wrapped.textRendering=e}reset(){this.wrapped.reset()}applyScale(e){return new Vr(this,e)}get canvas(){return this.wrapped.canvas}get miterLimit(){return this.wrapped.miterLimit}set miterLimit(e){this.wrapped.miterLimit=this.scale_.x.dim(e)}get globalAlpha(){return this.wrapped.globalAlpha}set globalAlpha(e){this.wrapped.globalAlpha=e}get globalCompositeOperation(){return this.wrapped.globalCompositeOperation}set globalCompositeOperation(e){this.wrapped.globalCompositeOperation=e}get fillStyle(){return this.wrapped.fillStyle}set fillStyle(e){this.wrapped.fillStyle=e}get strokeStyle(){return this.wrapped.strokeStyle}set strokeStyle(e){this.wrapped.strokeStyle=e}commit(){this.wrapped.commit()}drawImage(e,n,r,s,o,i,a,c,l){this.wrapped.drawImage(e,n,r,s,o,i,a,c,l)}beginPath(){this.wrapped.beginPath()}clip(e,n){this.wrapped.clip(e,n)}fill(e,n){if(e==null)return this.wrapped.fill();this.wrapped.fill(e,n)}isPointInPath(e,n,r,s){return this.wrapped.isPointInPath(e,n,r,s)}isPointInStroke(e,n,r){return this.wrapped.isPointInStroke(e,n,r)}stroke(e){if(e==null)return this.wrapped.stroke();this.wrapped.stroke(e)}createConicGradient(e,n,r){return this.wrapped.createConicGradient(e,n,r)}createLinearGradient(e,n,r,s){return this.wrapped.createLinearGradient(e,n,r,s)}createPattern(e,n){return this.wrapped.createPattern(e,n)}createRadialGradient(e,n,r,s,o,i){return this.wrapped.createRadialGradient(e,n,r,s,o,i)}get filter(){return this.wrapped.filter}set filter(e){this.wrapped.filter=e}createImageData(e,n,r){return this.wrapped.createImageData(e,n,r)}getImageData(e,n,r,s,o){return this.wrapped.getImageData(e,n,r,s,o)}putImageData(e,n,r,s,o,i,a){this.wrapped.putImageData(e,n,r,s,o,i,a)}get imageSmoothingEnabled(){return this.wrapped.imageSmoothingEnabled}set imageSmoothingEnabled(e){this.wrapped.imageSmoothingEnabled=e}get imageSmoothingQuality(){return this.wrapped.imageSmoothingQuality}set imageSmoothingQuality(e){this.wrapped.imageSmoothingQuality=e}arc(e,n,r,s,o,i){this.wrapped.arc(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.dim(r),s,o,i)}arcTo(e,n,r,s,o){this.wrapped.arcTo(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.pos(r),this.scale_.y.pos(s),this.scale_.x.dim(o))}bezierCurveTo(e,n,r,s,o,i){this.wrapped.bezierCurveTo(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.pos(r),this.scale_.y.pos(s),this.scale_.x.pos(o),this.scale_.y.pos(i))}closePath(){this.wrapped.closePath()}ellipse(e,n,r,s,o,i,a,c){this.wrapped.ellipse(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.dim(r),this.scale_.y.dim(s),o,i,a,c)}lineTo(e,n){this.wrapped.lineTo(this.scale_.x.pos(e),this.scale_.y.pos(n))}moveTo(e,n){this.wrapped.moveTo(this.scale_.x.pos(e),this.scale_.y.pos(n))}quadraticCurveTo(e,n,r,s){this.wrapped.quadraticCurveTo(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.pos(r),this.scale_.y.pos(s))}rect(e,n,r,s){this.wrapped.rect(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.dim(r),this.scale_.y.dim(s))}roundRect(e,n,r,s,o){this.wrapped.roundRect(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.dim(r),this.scale_.y.dim(s),typeof o=="number"?this.scale_.x.dim(o):o)}get lineCap(){return this.wrapped.lineCap}set lineCap(e){this.wrapped.lineCap=e}get lineDashOffset(){return this.wrapped.lineDashOffset}set lineDashOffset(e){this.wrapped.lineDashOffset=this.scale_.x.dim(e)}get lineJoin(){return this.wrapped.lineJoin}set lineJoin(e){this.wrapped.lineJoin=e}get lineWidth(){return this.wrapped.lineWidth}set lineWidth(e){this.wrapped.lineWidth=this.scale_.x.dim(e)}getLineDash(){return this.wrapped.getLineDash()}setLineDash(e){const n=Array.from(e).map(r=>this.scale_.x.dim(r));this.wrapped.setLineDash(n)}clearRect(e,n,r,s){this.wrapped.clearRect(e,n,r,s)}fillRect(e,n,r,s){this.wrapped.fillRect(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.dim(r),this.scale_.y.dim(s))}strokeRect(e,n,r,s){this.wrapped.strokeRect(this.scale_.x.pos(e),this.scale_.y.pos(n),this.scale_.x.dim(r),this.scale_.y.dim(s))}get shadowBlur(){return this.wrapped.shadowBlur}set shadowBlur(e){this.wrapped.shadowBlur=e}get shadowColor(){return this.wrapped.shadowColor}set shadowColor(e){this.wrapped.shadowColor=e}get shadowOffsetX(){return this.wrapped.shadowOffsetX}set shadowOffsetX(e){this.wrapped.shadowOffsetX=e}get shadowOffsetY(){return this.wrapped.shadowOffsetY}restore(){this.wrapped.restore()}save(){this.wrapped.save()}fillText(e,n,r,s){this.wrapped.fillText(e,this.scale_.x.pos(n),this.scale_.y.pos(r),s!=null?this.scale_.x.dim(s):void 0)}measureText(e){this.wrapped.font=Ys(this.wrapped.font,this.scale_.x.reverse());const n=this.wrapped.measureText(e);return this.wrapped.font=Ys(this.wrapped.font,this.scale_.x),n}strokeText(e,n,r,s){this.wrapped.strokeText(e,this.scale_.x.pos(n),this.scale_.y.pos(r),s!=null?this.scale_.x.dim(s):void 0)}get direction(){return this.wrapped.direction}set direction(e){this.wrapped.direction=e}get font(){return this.wrapped.font}set font(e){this.wrapped.font=Ys(e,this.scale_.x)}get fontKerning(){return this.wrapped.fontKerning}set fontKerning(e){this.wrapped.fontKerning=e}get textAlign(){return this.wrapped.textAlign}set textAlign(e){this.wrapped.textAlign=e}get textBaseline(){return this.wrapped.textBaseline}set textBaseline(e){this.wrapped.textBaseline=e}getTransform(){return this.wrapped.getTransform()}resetTransform(){this.wrapped.resetTransform()}rotate(e){this.wrapped.rotate(e)}scale(e,n){this.wrapped.scale(e,n)}scissor(e,n=f.q.ZERO){const r=new Path2D;return e=br(e,n),r.rect(...f.q.couple(f.To.topLeft(e)),...f._.couple(f.To.dims(e))),this.save(),this.clip(r),()=>this.restore()}setTransform(e,n,r,s,o,i){this.wrapped.setTransform(e,n,r,s,o,i)}transform(e,n,r,s,o,i){this.wrapped.transform(e,n,r,s,o,i)}translate(e,n){this.wrapped.translate(e,n)}}const ra=/(\d+(\.\d+)?)px/,Ys=(t,e)=>{var s;const n=Number((s=t.match(ra))==null?void 0:s[1]);if(n==null)return t;const r=e.dim(n);return t.replace(ra,`${r}px`)},rg=`precision mediump float;
7
-
8
- void main(void) {
9
- gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
10
- }
11
- `,sg=`attribute vec4 a_position;
12
-
13
- void main(void) {
14
- gl_Position = a_position;
15
- }
16
- `,sa=t=>new Error(`failed to compile webgl program: ${t}`),og=new Error("null shader encountered");class ti{constructor(e,n,r){m(this,"ctx");m(this,"prog");m(this,"vertShader");m(this,"fragShader");m(this,"uniformLocCache",new Map);this.ctx=e;const s=e.gl.createProgram();if(s==null)throw sa("failed to create program");this.prog=s,this.vertShader=n,this.fragShader=r,this.compile()}setAsActive(){return this.ctx.gl.useProgram(this.prog),()=>this.ctx.gl.useProgram(null)}uniformXY(e,n){this.ctx.gl.uniform2fv(this.getUniformLoc(e),f.q.couple(f.q.construct(n)))}uniformColor(e,n){this.ctx.gl.uniform4fv(this.getUniformLoc(e),n.rgba1)}getUniformLoc(e){const n=this.uniformLocCache.get(e);if(n!=null)return n;const r=this.ctx.gl.getUniformLocation(this.prog,e);if(r==null)throw new Error(`unexpected missing uniform ${e}`);return this.uniformLocCache.set(e,r),r}compile(){const e=this.ctx.gl;this.compileShader(this.vertShader,e.VERTEX_SHADER),this.compileShader(this.fragShader,e.FRAGMENT_SHADER),e.linkProgram(this.prog)}compileShader(e,n){const r=this.ctx.gl,s=r.createShader(n);if(s==null)throw og;if(r.shaderSource(s,e),r.compileShader(s),!r.getShaderParameter(s,r.COMPILE_STATUS)){const i=r.getShaderInfoLog(s);throw r.deleteShader(s),sa(i??"unknown")}r.attachShader(this.prog,s)}}const ig=new Float32Array([0,0,0,0,0,0]);class ag extends ti{constructor(n){super(n,sg,rg);m(this,"positionBuffer");const r=n.gl.createBuffer();if(r==null)throw new T.Ee("webgl: failed to create buffer");this.positionBuffer=r,n.gl.bindBuffer(n.gl.ARRAY_BUFFER,this.positionBuffer),n.gl.bufferData(n.gl.ARRAY_BUFFER,ig,n.gl.STATIC_DRAW)}exec(){const{gl:n}=this.ctx,r=n.getAttribLocation(this.prog,"a_position");n.bindBuffer(n.ARRAY_BUFFER,this.positionBuffer);const s=n.createVertexArray();n.bindVertexArray(s),n.enableVertexAttribArray(r),n.vertexAttribPointer(r,2,n.FLOAT,!1,0,0),this.setAsActive(),n.drawArrays(n.TRIANGLES,0,3)}}const oa={high:1,low:0};class al{constructor(e){m(this,"mutex",new T.Mutex);m(this,"requests",new Map);m(this,"cleanup",new Map);m(this,"afterRender");this.start(),this.afterRender=e}async set(e){let n;e.priority==="high"&&(n=await this.mutex.acquire());const r=this.requests.get(e.key);if(r==null)this.requests.set(e.key,e);else{const s=oa[e.priority]>=oa[r.priority],o=e.canvases.length>=r.canvases.length;s&&o&&this.requests.set(e.key,e)}n==null||n()}async render(){await this.mutex.runExclusive(async()=>{var i;const e=performance.now();if(this.requests.size===0)return;const{requests:n,cleanup:r}=this;for(const[a,c]of r.entries()){const l=n.get(a);l!=null&&(await c(l),r.delete(a))}for(const a of n.values())try{const c=await a.render();c!=null&&this.cleanup.set(a.key,c)}catch(c){console.error(c)}const s=performance.now(),o=T.y.milliseconds(s-e);o.greaterThan(T.y.milliseconds(25))&&console.warn(`Render loop for ${this.requests.size} took longer than 16ms to execute: ${o.milliseconds}`),this.requests.clear(),(i=this.afterRender)==null||i.call(this)})}async start(){do{try{await this.render()}catch(e){console.error(e)}await this.sleep()}while(!0)}async sleep(){return await new Promise(requestAnimationFrame)}}var kt;let gt=(kt=class{constructor(e,n,r,s){m(this,"glCanvas");m(this,"upper2dCanvas");m(this,"lower2dCanvas");m(this,"gl");m(this,"lower2d");m(this,"upper2d");m(this,"region");m(this,"dpr");m(this,"loop");m(this,"clearProgram");m(this,"os");this.upper2dCanvas=r,this.lower2dCanvas=n,this.glCanvas=e,this.os=s;const o=this.lower2dCanvas.getContext("2d");if(o==null)throw new Error("Could not get 2D context");this.lower2d=new Vr(o);const i=this.upper2dCanvas.getContext("2d");if(i==null)throw new Error("Could not get 2D context");this.upper2d=new Vr(i);const a={preserveDrawingBuffer:!0,powerPreference:"high-performance",stencil:!1,depth:!1},c=this.glCanvas.getContext("webgl2",a);if(c==null)throw new Error("Could not get WebGL context");c.disable(c.DEPTH_TEST),c.disable(c.STENCIL_TEST),c.disable(c.CULL_FACE),c.disable(c.DITHER),this.gl=c,this.glCanvas.oncontextlost=console.log;const l=()=>{this.gl.flush(),this.gl.finish()};this.loop=new al(l),this.region=f.To.ZERO,this.dpr=1,this.os==="Windows"&&(this.clearProgram=new ag(this))}static create(e,n,r,s,o){const i=new kt(n,r,s,o);return e.set(kt.CONTEXT_KEY,i),i}static useOptional(e){return e.getOptional(kt.CONTEXT_KEY)}static use(e){return e.get(kt.CONTEXT_KEY)}update(e){e.set(kt.CONTEXT_KEY,this)}resize(e,n){f.To.equals(this.region,e)&&this.dpr===n||(this.region=e,this.dpr=n,this.resizeCanvas(this.glCanvas),this.resizeCanvas(this.upper2dCanvas),this.resizeCanvas(this.lower2dCanvas),this.lower2d.scale(this.dpr,this.dpr),this.upper2d.scale(this.dpr,this.dpr),this.gl.viewport(0,0,f.To.width(e)*n,f.To.height(e)*n))}resizeCanvas(e){e.width=f.To.width(this.region)*this.dpr,e.height=f.To.height(this.region)*this.dpr}get aspect(){return f.To.aspect(this.region)}scaleRegion(e){return new f.k.XY(f.k.Scale.scale(0,1).scale(f.To.width(e)).translate(f.To.left(e)).reBound(f.To.width(this.region)).scale(-1,1),f.k.Scale.scale(0,1).scale(f.To.height(e)).invert().translate(f.To.top(e)).reBound(f.To.height(this.region)).scale(-1,1).invert())}scissor(e,n=f.q.ZERO,r){const s=[];return r.includes("upper2d")&&s.push(this.upper2d.scissor(e,n)),r.includes("lower2d")&&s.push(this.lower2d.scissor(e,n)),r.includes("gl")&&s.push(this.scissorGL(e,n)),()=>s.forEach(o=>o())}scissorGL(e,n=f.q.ZERO){return this.gl.enable(this.gl.SCISSOR_TEST),e=br(e,n),this.gl.scissor(f.To.left(e)*this.dpr,(f.To.height(this.region)-f.To.bottom(e))*this.dpr,f.To.width(e)*this.dpr,f.To.height(e)*this.dpr),()=>this.gl.disable(this.gl.SCISSOR_TEST)}erase(e,n=f.q.ZERO,...r){n=f.q.construct(n),r.length===0&&(r=["upper2d","lower2d","gl"]),r.includes("upper2d")&&this.eraseCanvas(this.upper2d,e,n),r.includes("lower2d")&&this.eraseCanvas(this.lower2d,e,n),r.includes("gl")&&this.eraseGL(e,n)}eraseGL(e,n=f.q.ZERO){var o;const{gl:r}=this,s=this.scissorGL(br(e,n));r.clearColor(...f.ZERO.rgba1),r.clear(r.COLOR_BUFFER_BIT),this.os==="Windows"&&((o=this.clearProgram)==null||o.exec()),s()}eraseCanvas(e,n,r=f.q.ZERO){const s=br(n,r);e.clearRect(...f.q.couple(f.To.topLeft(s)),...f._.couple(f.To.dims(s)))}},m(kt,"CONTEXT_KEY",f.CSS.B("render-context")),kt);const Lt="layout",uo="data",ne="tool";var zt;let yt=(zt=class{constructor(e){m(this,"f");this.f=e}static control(e,n){e.set(zt.CONTEXT_KEY,new zt(n),!1)}static useRequest(e){return e.get(zt.CONTEXT_KEY).f}static useOptionalRequest(e){var n;return((n=e.getOptional(zt.CONTEXT_KEY))==null?void 0:n.f)??null}static requestRender(e,n){this.useRequest(e)(n)}},m(zt,"CONTEXT_KEY","pluto-vis-renderer"),zt),ei=class{constructor(){m(this,"prevErase",f.To.ZERO)}erase(e,n,r,s,o){!f.To.equals(r,n)&&!f.To.equals(this.prevErase,r)?(e.erase(r,s,...o),this.prevErase=r):e.erase(n,s,...o)}};const ir=Qo.extend({bounds:f.R.bounds.optional(),autoBounds:E.z.object({lower:E.z.boolean().optional().default(!0),upper:E.z.boolean().optional().default(!0)}).or(E.z.boolean().optional().default(!0)),autoBoundPadding:E.z.number().optional(),autoBoundUpdateInterval:T.y.z.optional().default(T.y.seconds(2)),size:E.z.number().optional().default(0),label:E.z.string().optional().default(""),labelSize:E.z.number().optional().default(0)}).partial({color:!0,font:!0,gridColor:!0}),cg=2,lg=7,cl=(t,e)=>f.R.contains({lower:t-lg,upper:t+cg},e),ug=f.R.DECIMAL,ia=T.m.now(),hg={lower:Number(ia.valueOf()),upper:Number(ia.add(T.y.HOUR).valueOf())},ll=t=>t==="linear"?ug:hg,fg=(t,e=.1,n)=>{const r=f.R.max(t.filter(f.R.isFinite));if(!f.R.isFinite(r))return ll(n);const{lower:s,upper:o}=r;if(o===s)return{lower:s-1,upper:o+1};const i=(o-s)*e;return{lower:s-i,upper:o+i}},dg=.01,pg=.1;class ul extends T.Composite{async afterUpdate(){var n;this.internal.render=gt.use(this.ctx);const e=T.use(this.ctx);(n=this.state).autoBoundPadding??(n.autoBoundPadding=f.g.construct(this.state.location)==="x"?pg:dg),this.internal.core=new il(this.internal.render,{color:e.colors.gray.l8,font:T.fontString(e,"small"),gridColor:e.colors.gray.l2,...this.state}),yt.requestRender(this.ctx,Lt),this.internal.updateBounds==null&&(this.internal.updateBounds=T.r(r=>{this.setState(s=>({...s,bounds:r}))},this.state.autoBoundUpdateInterval.milliseconds))}async afterDelete(){yt.requestRender(this.ctx,Lt)}renderAxis(e,n){if(!e.canvases.includes("lower2d"))return;const{core:r}=this.internal,{grid:s,container:o}=e,i=Pf(`${this.type}-${this.key}`,s,o),a={...e,position:i,decimalToDataScale:n,size:this.state.size+this.state.labelSize},{size:c}=r.render(a);cl(this.state.size,c)||this.setState(l=>({...l,size:c}))}async bounds(e,n){var l,u;if(e&&this.internal.boundSnapshot!=null)return[this.internal.boundSnapshot,null];const{lower:r,upper:s}=hl(this.state.autoBounds);if(!r&&!s&&this.state.bounds!=null)return this.internal.boundSnapshot=this.state.bounds,[this.state.bounds,null];const o=h=>({upper:s||this.state.bounds==null?h.upper:this.state.bounds.upper,lower:r||this.state.bounds==null?h.lower:this.state.bounds.lower});let i,a=null;try{const h=await n();i=fg(h,this.state.autoBoundPadding,this.state.type)}catch(h){i=ll(this.state.type),a=h}const c=o(i);return this.internal.boundSnapshot=c,(this.state.bounds==null||r&&this.state.bounds.lower!==c.lower||s&&this.state.bounds.upper!==c.upper)&&((u=(l=this.internal).updateBounds)==null||u.call(l,c)),[c,a]}async dataToDecimalScale(e,n,r){const[s,o]=await this.bounds(e,n),i=f.g.swap(f.g.construct(this.state.location));return[f.k.Scale.scale(s).scale(1).translate(-f.To.root(r)[i]).magnify(1/f.To.dim(r,i)),o]}}const hl=t=>typeof t=="boolean"?{lower:t,upper:t}:{lower:(t==null?void 0:t.lower)??!0,upper:(t==null?void 0:t.upper)??!0},gg=`precision lowp float;
17
- uniform lowp vec4 u_color;
18
-
19
- void main(void) {
20
- gl_FragColor = u_color;
21
- }
22
- `,mg=`attribute float a_x;
23
- attribute float a_y;
24
- attribute lowp vec2 a_translate;
25
-
26
- uniform lowp vec2 u_scale_aggregate;
27
- uniform lowp vec2 u_offset_aggregate;
28
-
29
- void main(void) {
30
- vec2 transformed = u_scale_aggregate * vec2(a_x,a_y) + u_offset_aggregate;
31
- transformed = transformed + a_translate;
32
- gl_Position = vec4(transformed, 0.0, 1.0);
33
- }
34
- `,aa=T.g.FLOAT32.density.valueOf(),fl=E.z.object({x:to,y:to,label:E.z.string().optional(),color:f.Color.z,strokeWidth:E.z.number().default(1),downsample:E.z.number().min(1).max(50).optional().default(1)}),yg=(t,e,n)=>t===-1||e===-1||t>=n.length?NaN:Number(n[t].at(e)),wg=T.y.milliseconds(2);f.q.NAN,f.q.NAN,f.ZERO;const $e=class $e extends ti{constructor(n){super(n,mg,gg);m(this,"translationBufferCache",new Map);this.translationBufferCache=new Map}bindState({strokeWidth:n,color:r}){return this.uniformColor("u_color",r),this.attrStrokeWidth(n)}bindScale(n,r){const s=f.q.scale(n.scale,r.scale),o=f.q.translate(f.q.scale(r.scale,n.offset),r.offset);this.uniformXY("u_scale_aggregate",s),this.uniformXY("u_offset_aggregate",o)}draw({x:n,y:r,count:s,downsample:o,xOffset:i,yOffset:a},c){const{gl:l}=this.ctx;this.bindAttrBuffer("x",n.glBuffer,o,i),this.bindAttrBuffer("y",r.glBuffer,o,a),l.drawArraysInstanced(l.LINE_STRIP,0,s/o,c)}static create(n){const r=gt.use(n),s=new $e(r);return n.set($e.CONTEXT_KEY,s),s}static use(n){return n.get($e.CONTEXT_KEY)}bindAttrBuffer(n,r,s,o=0){const{gl:i}=this.ctx;i.bindBuffer(i.ARRAY_BUFFER,r);const a=i.getAttribLocation(this.prog,`a_${n}`);i.vertexAttribPointer(a,1,i.FLOAT,!1,aa*s,aa*o),i.enableVertexAttribArray(a)}getAndBindTranslationBuffer(n){const{gl:r}=this.ctx,s=`${this.ctx.aspect}:${n}`,o=this.translationBufferCache.get(s);if(o!=null)return r.bindBuffer(r.ARRAY_BUFFER,o.glBuffer),o;const i=r.createBuffer();if(i==null)throw new T.Ee("Failed to create buffer from WebGL context");const a=Sg(this.ctx.aspect,n);r.bindBuffer(r.ARRAY_BUFFER,i),r.bufferData(r.ARRAY_BUFFER,a,r.DYNAMIC_DRAW);const c={glBuffer:i,jsBuffer:a};return this.translationBufferCache.set(s,c),c}attrStrokeWidth(n){const{gl:r}=this.ctx,{jsBuffer:s}=this.getAndBindTranslationBuffer(n),o=r.getAttribLocation(this.prog,"a_translate");return r.vertexAttribPointer(o,2,r.FLOAT,!1,0,0),r.enableVertexAttribArray(o),r.vertexAttribDivisor(o,1),s.length/2}};m($e,"CONTEXT_KEY","pluto-line-gl-program");let Xr=$e;class Fn extends T.Leaf{constructor(){super(...arguments);m(this,"schema",fl)}async afterUpdate(){if(this.deleted)return;const{internal:n}=this;n.xTelem=await ee(this.ctx,this.state.x,n.xTelem),n.yTelem=await ee(this.ctx,this.state.y,n.yTelem),n.instrumentation=rr(this.ctx,"line"),n.prog=Xr.use(this.ctx),n.requestRender=yt.useRequest(this.ctx),n.xTelem.onChange(()=>n.requestRender(uo)),n.yTelem.onChange(()=>n.requestRender(uo)),n.requestRender(Lt)}async afterDelete(){var r,s,o,i;const{internal:n}=this;await((s=(r=n.xTelem).cleanup)==null?void 0:s.call(r)),await((i=(o=n.yTelem).cleanup)==null?void 0:i.call(o)),n.requestRender(Lt)}async xBounds(){return(await this.internal.xTelem.value())[0]}async yBounds(){return(await this.internal.yTelem.value())[0]}async findByXValue(n,r){const{xTelem:s,yTelem:o}=this.internal,[,i]=await s.value();let[a,c]=[-1,-1];i.find((S,M)=>{const _=S.binarySearch(r),v=_>=0&&_<S.length;return v&&([a,c]=[_,M]),v});const{key:l}=this,{color:u,label:h}=this.state,d={key:l,color:u,label:h,position:{x:0,y:0},value:{x:NaN,y:NaN}};if(a===-1||c===-1)return d;const p=i[c];d.value.x=yg(c,a,i);const[,w]=await o.value(),y=w.find(S=>f.R.contains(S.alignmentBounds,p.alignment+BigInt(a)));if(y==null)return d;const b=Number(y.alignment-p.alignment);return d.value.y=Number(y.at(a-b)),d.position={x:n.dataToDecimalScale.x.pos(d.value.x),y:n.dataToDecimalScale.y.pos(d.value.y)},d}async render(n){if(this.deleted)return;const{downsample:r}=this.state,{xTelem:s,yTelem:o,prog:i}=this.internal,{dataToDecimalScale:a,exposure:c}=n,[[,l],[,u]]=await Promise.all([s.value(),o.value()]);l.forEach(y=>y.updateGLBuffer(i.ctx.gl)),u.forEach(y=>y.updateGLBuffer(i.ctx.gl));const h=Cg(l,u,c,r,wg);this.internal.instrumentation.L.debug("render",()=>({key:this.key,downsample:r,scale:f.k.xyScaleToTransform(a),props:n.region,ops:Pg(h)}));const d=i.setAsActive(),p=i.bindState(this.state),w=f.k.xyScaleToTransform(i.ctx.scaleRegion(n.region));h.forEach(y=>{const b=f.k.xyScaleToTransform(Eg(a,y));i.bindScale(b,w),i.draw(y,p)}),d()}}m(Fn,"TYPE","line");const xg=5e3,Sg=(t,e)=>Tg(bg(t),e).map((n,r)=>Math.floor(r/vg)*(1/(xg*t))*n),vg=5,bg=t=>new Float32Array([0,0,0,t,0,-t,1,0,-1,0]),Tg=(t,e)=>{const n=new Float32Array(t.length*e);for(let r=0;r<e;r++)n.set(t,r*t.length);return n},Eg=(t,e)=>t.translate(t.x.dim(Number(e.x.sampleOffset)),t.y.dim(Number(e.y.sampleOffset))),_g={[Fn.TYPE]:Fn},Cg=(t,e,n,r,s)=>{if(t.length===0||e.length===0)return[];const o=[];return t.forEach(i=>e.forEach(a=>{if(!Rg(i,a,s))return;let c=0,l=0;i.alignment<a.alignment?c=Number(a.alignment-i.alignment):a.alignment<i.alignment&&(l=Number(i.alignment-a.alignment));const u=Math.min(i.length-c,a.length-l);if(u===0)return;const h=f.j(Math.round(n*4*u),r,51);o.push({x:i,y:a,xOffset:c,yOffset:l,count:u,downsample:h})})),o},Pg=t=>t.map(e=>({...e,x:e.x.digest,y:e.y.digest})),Rg=(t,e,n)=>{if(!(t._timeRange!=null&&e._timeRange!=null))throw new T.Ee(`Encountered series without time range in buildDrawOperations. X series present: ${t._timeRange!=null}, Y series present: ${e._timeRange!=null}`);const s=t.timeRange.overlapsWith(e.timeRange,n),o=f.R.overlapsWith(t.alignmentBounds,e.alignmentBounds);return s&&o};class ar{constructor(e,n){m(this,"canvas");m(this,"theme");this.canvas=e,this.theme=n}rule({direction:e,region:n,position:r,...s}){return e==="x"?this.line({start:f.q.construct(f.To.left(n),r),end:f.q.construct(f.To.right(n),r),...s}):this.line({start:f.q.construct(r,f.To.top(n)),end:f.q.construct(r,f.To.bottom(n)),...s})}line({stroke:e,lineWidth:n,lineDash:r,start:s,end:o}){const i=this.canvas;i.strokeStyle=e.hex,i.lineWidth=n,i.setLineDash([r]),i.beginPath(),i.moveTo(...f.q.couple(s)),i.lineTo(...f.q.couple(o)),i.stroke()}circle({fill:e,radius:n,position:r}){const s=this.canvas;s.fillStyle=e.hex,s.beginPath(),s.arc(...f.q.couple(r),n,0,2*Math.PI),s.fill()}resolveColor(e,n){return e==null?this.resolveColor(n):typeof e=="function"?e(this.theme):new f.Color(e)}border({region:e,color:n,width:r,radius:s,location:o}){const i=this.canvas;i.strokeStyle=this.resolveColor(n,this.theme.colors.border).hex,i.lineWidth=r??this.theme.sizes.border.width,s??(s=this.theme.sizes.border.radius),o==null||o===!0?s>0?(i.roundRect(...f.q.couple(f.To.topLeft(e)),...f.q.couple(f.To.dims(e)),s),i.stroke()):(i.rect(...f.q.couple(f.To.topLeft(e)),...f.q.couple(f.To.dims(e))),i.stroke()):T.A(o).forEach(a=>{const[c,l]=f.To.edgePoints(e,a);i.beginPath(),i.moveTo(...f.q.couple(c)),i.lineTo(...f.q.couple(l)),i.stroke()})}container({region:e,bordered:n=!0,rounded:r=!0,borderColor:s,borderRadius:o,borderWidth:i,backgroundColor:a}){o==null&&(o=this.theme.sizes.border.radius),i==null&&(i=1);const c=this.canvas;c.fillStyle=this.resolveColor(a,this.theme.colors.gray.l1).hex,c.strokeStyle=this.resolveColor(s,this.theme.colors.border).hex,c.setLineDash([]),c.lineWidth=1,c.beginPath(),r?c.roundRect(...f.q.couple(f.To.topLeft(e)),...f.q.couple(f.To.dims(e)),o):c.rect(...f.q.couple(f.To.topLeft(e)),...f.q.couple(f.To.dims(e))),c.fill(),n&&this.border({region:e,color:s,radius:o,width:i,location:n})}textContainer(e){const[n,r]=this.spacedTextDrawF(e);n.width+=12,n.height+=12;const{root:s=f.J.TOP_LEFT,offset:o=f.q.ZERO}=e,i={...e.position};s.x==="right"?i.x-=n.width+o.x:i.x+=o.x,s.y==="bottom"?i.y-=n.height+o.y:i.y+=o.y,this.container({region:f.To.construct(i,n.width,n.height),...e}),this.canvas.filter="none",r(f.q.translate(i,[6,6]))}spacedTextDrawF({text:e,direction:n,spacing:r=1,level:s="p"}){const o=T.fontString(this.theme,s),i=e.map(l=>T.dimensions(l,o,this.canvas)),a=this.theme.sizes.base*r,c=Math.max(...i.map(l=>l[f.g.dimension(n)]))+a;return[{[f.g.dimension(f.g.swap(n))]:Math.max(...i.map(l=>l[f.g.dimension(f.g.swap(n))])),[f.g.dimension(n)]:c*e.length-a},l=>{const u=T.fontString(this.theme,s);this.canvas.font=u,this.canvas.fillStyle=this.theme.colors.text.hex,this.canvas.textBaseline="top",e.forEach((h,d)=>{this.canvas.fillText(h,l.x,l.y+c*d)})}]}drawTextInCenter({box:e,text:n,level:r}){const s=T.dimensions(n,this.canvas.font,this.canvas),o=f.To.positionInCenter(f.To.construct(f.q.ZERO,s),e);return this.text({text:n,position:f.To.topLeft(o),level:r})}text({text:e,position:n,level:r="p",weight:s,shade:o,maxWidth:i}){this.canvas.font=T.fontString(this.theme,r,s),o==null?this.canvas.fillStyle=this.theme.colors.text.hex:this.canvas.fillStyle=this.theme.colors.gray[`l${o}`].hex,this.canvas.textBaseline="top";let a;i!=null&&(a=this.canvas.scissor(f.To.construct(n,i,1e3))),this.canvas.fillText(e,n.x,n.y),a==null||a()}}const ni=E.z.object({position:E.z.number().optional(),pixelPosition:E.z.number().optional(),dragging:E.z.boolean(),lineWidth:E.z.number().optional().default(1),lineDash:E.z.number().optional().default(20),color:f.Color.z});class tn extends T.Leaf{constructor(){super(...arguments);m(this,"schema",ni)}async afterUpdate(){this.internal.renderCtx=gt.use(this.ctx);const n=T.use(this.ctx);this.internal.draw=new ar(this.internal.renderCtx.upper2d,n),yt.requestRender(this.ctx,ne)}async afterDelete(){yt.requestRender(this.ctx,ne)}updatePositions({decimalToDataScale:n,plot:r,container:s}){if(this.state.dragging&&this.state.pixelPosition!=null){const i=n.pos((this.state.pixelPosition-f.To.top(r)+f.To.top(s))/f.To.height(r));return this.setState(a=>({...a,position:i})),this.state.pixelPosition}if(this.state.position==null){const i=n.pos(.5);this.setState(a=>({...a,position:i}))}const o=n.reverse().pos(this.state.position)*f.To.height(r)+f.To.top(r)-f.To.top(s);return isNaN(o)||this.setState(i=>({...i,pixelPosition:o})),o}async render(n){if(this.deleted)return;const{renderCtx:r}=this.internal,{location:s,plot:o}=n,i=f.J.direction(s),{upper2d:a}=r,c=this.internal.draw;let l=this.updatePositions(n);l+=f.To.top(n.container),c.rule({stroke:this.state.color,lineWidth:this.state.lineWidth,lineDash:this.state.lineDash,direction:i,region:o,position:l}),a.fillStyle=this.state.color.hex,a.beginPath(),s==="left"?(a.moveTo(f.To.left(o),l),a.lineTo(f.To.left(o)-5,l-5),a.lineTo(f.To.left(o)-5,l+5)):s==="right"&&(a.moveTo(f.To.right(o),l),a.lineTo(f.To.right(o)+5,l-5),a.lineTo(f.To.right(o)+5,l+5)),a.closePath(),a.fill()}}m(tn,"TYPE","Rule");const dl={[tn.TYPE]:tn},Mg=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:dl,Rule:tn,ruleStateZ:ni},Symbol.toStringTag,{value:"Module"})),kg=ir.extend({location:f.J.x.optional().default("left")});class Zn extends ul{constructor(){super(...arguments);m(this,"schema",ir)}async xBounds(){return f.R.max(await Promise.all(this.lines.map(async n=>await n.xBounds())))}async render(n){if(this.deleted)return;const[r,s]=await this.dataToDecimalScale(n.hold,this.dataBounds.bind(this),n.viewport),o=r.invert().reverse();if(this.renderAxis(n,o),await this.renderLines(n,r),await this.renderRules(n,o),s!=null)throw s}async renderLines({xDataToDecimalScale:n,plot:r,canvases:s,exposure:o},i){if(!s.includes("gl"))return;const a={region:r,dataToDecimalScale:new f.k.XY(n,i),exposure:o};await Promise.all(this.lines.map(async c=>await c.render(a)))}async renderRules({container:n,plot:r,canvases:s},o){if(!s.includes("upper2d"))return;const{location:i}=this.state,{render:a}=this.internal,c=f.To.construct(f.To.left(n),f.To.top(r),f.To.width(n),f.To.height(r)),l=a.scissor(c,f.q.ZERO,["upper2d"]),u={container:n,plot:r,decimalToDataScale:o,location:i};await Promise.all(this.rules.map(async h=>await h.render(u))),l()}async findByXValue({xDataToDecimalScale:n,plot:r,viewport:s,hold:o,exposure:i},a){const[c,l]=await this.dataToDecimalScale(o,this.dataBounds.bind(this),s);if(l!=null)throw l;const u=new f.k.XY(n,c),h={region:r,dataToDecimalScale:u,exposure:i};return(await Promise.all(this.lines.map(async d=>await d.findByXValue(h,a)))).map(d=>({...d,units:this.state.label}))}async dataBounds(){return await Promise.all(this.lines.map(async n=>await n.yBounds()))}get lines(){return this.childrenOfType(Fn.TYPE)}get rules(){return this.childrenOfType(tn.TYPE)}}m(Zn,"TYPE","YAxis");const pl=E.z.object({start:T.m.z,end:T.m.z});class Wr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",pl)}async afterUpdate(){this.internal.render=gt.use(this.ctx),this.internal.draw=new ar(this.internal.render.upper2d,T.use(this.ctx))}async render(){}}m(Wr,"TYPE","range-annotation");const gl=E.z.object({triggered:E.z.boolean(),status:T.specZ$1,sink:gs.optional().default(ds),source:No.optional().default(Ao)});class Gr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",gl)}async afterUpdate(){var s,o,i;const{sink:n,source:r}=this.state;this.internal.source=await ee(this.ctx,r,this.internal.source),this.internal.sink=await fs(this.ctx,n,this.internal.sink),this.state.triggered&&!this.prevState.triggered&&this.internal.sink.set(((s=this.state.status.data)==null?void 0:s.authority)!==T.xy.Absolute.valueOf()).catch(console.error),await this.updateEnabledState(),(i=(o=this.internal).stopListening)==null||i.call(o),this.internal.stopListening=this.internal.source.onChange(()=>{this.updateEnabledState()})}async updateEnabledState(){const n=await this.internal.source.value();n.time.equals(this.state.status.time)||this.setState(r=>({...r,status:n,triggered:!1}))}async afterDelete(){this.asyncAfterDelete().catch(console.error)}async asyncAfterDelete(){var n,r,s,o;this.internal.stopListening(),await((r=(n=this.internal.source).cleanup)==null?void 0:r.call(n)),await((o=(s=this.internal.sink).cleanup)==null?void 0:o.call(s))}render(){}}m(Gr,"TYPE","Chip");const ml=E.z.object({}),ca="control-state-provider",yl=T.ly.stateZ.extend({subjectColor:f.Color.z});class en extends T.Composite{constructor(){super(...arguments);m(this,"schema",ml);m(this,"colors",new Map);m(this,"tracker");m(this,"disconnectTrackerChange");m(this,"obs",new Ro.Observer)}static use(n){return n.get(ca)}async afterUpdate(){const{internal:n}=this;n.instrumentation=rr(this.ctx,"control-state");const r=T.use(this.ctx);n.palette=r.colors.visualization.palettes.default,n.defaultColor=r.colors.gray.l6;const s=tr(this.ctx);n.client!=null&&s===n.client||(n.client=s,this.ctx.set(ca,this),await this.maybeCloseTracker(),n.client!=null&&(this.internal.instrumentation.L.debug("starting state tracker"),await this.openTracker(n.client)))}async maybeCloseTracker(){var n;this.tracker!=null&&(this.internal.instrumentation.L.debug("stopping state tracker"),(n=this.disconnectTrackerChange)==null||n.call(this),await this.tracker.close(),this.tracker=void 0)}async afterDelete(){await this.maybeCloseTracker()}onChange(n){return this.obs.onChange(n)}get(n){return Array.isArray(n)?T.n(n).map(r=>this.getOne(r)).filter(r=>r!=null):this.getOne(n)}getOne(n){if(this.tracker==null)return;const r=this.tracker.states.get(n);if(r!=null)return{...r,subjectColor:this.colors.get(r.subject.key)??this.internal.defaultColor}}async openTracker(n){var o;const{internal:r}=this,{instrumentation:s}=r;try{this.tracker=await n.control.openStateTracker()}catch{s.L.error("failed to open state tracker");return}(o=this.disconnectTrackerChange)==null||o.call(this),this.disconnectTrackerChange=this.tracker.onChange(i=>{if(s.L.debug("transfer",{transfers:i.map(a=>T.ly.transferString(a))}),this.tracker==null)throw new T.Ee("tracker is null inside it's own onChange callback!");this.updateColors(this.tracker),this.obs.notify(i)})}updateColors(n){const r=n.subjects(),s=r.map(a=>a.key),o=Array.from(this.colors.values());this.colors.forEach((a,c)=>!s.includes(c)&&this.colors.delete(c));const{palette:i}=this.internal;r.forEach(a=>{if(this.colors.has(a.key))return;const c=i.find(l=>!o.includes(l))??i[0];this.colors.set(a.key,c),o.push(c)})}}m(en,"TYPE","StateProvider");const wl=["acquired","released","overridden","failed"],xl=E.z.enum(wl),Sl=E.z.object({name:E.z.string(),authority:E.z.number().default(0),acquireTrigger:E.z.number(),status:xl.optional(),needsControlOf:T.ny.keyZ.array().optional().default([])});class Kr extends T.Composite{constructor(){super(...arguments);m(this,"schema",Sl);m(this,"registry",new Map);m(this,"writer")}async afterUpdate(){this.internal.instrumentation=rr(this.ctx),(this.internal.prevTrigger==null||Math.abs(this.state.acquireTrigger-this.internal.prevTrigger)>1)&&(this.internal.prevTrigger=this.state.acquireTrigger);const n=tr(this.ctx),r=en.use(this.ctx);this.internal.client=n,this.internal.client==null&&await this.release(),this.internal.stateProv=r,tc(this.ctx,this),this.internal.addStatus=T.useAggregate(this.ctx),this.state.acquireTrigger>this.internal.prevTrigger?(this.acquire(),this.internal.prevTrigger=this.state.acquireTrigger):this.state.acquireTrigger<this.internal.prevTrigger&&(this.release(),this.internal.prevTrigger=this.state.acquireTrigger)}async afterDelete(){await this.release()}async updateNeedsControlOf(){if(this.internal.client==null)throw new T.Ee("No cluster connected but channelKeys were requested");const n=new Set([]);for(const s of this.registry.keys())(await s.needsControlOf(this.internal.client)).forEach(i=>i!==0&&n.add(i));const r=Array.from(n);T.E.unorderedPrimitiveArrays(this.state.needsControlOf,r)!==T.E.EQUAL&&this.setState(s=>({...s,needsControlOf:r}))}async acquire(){const{client:n,addStatus:r}=this.internal;if(n==null)return r({message:`Cannot acquire control on ${this.state.name} because no cluster has been connected.`,variant:"warning"});try{await this.updateNeedsControlOf();const s=this.state.needsControlOf;if(s.length===0)return r({message:`Cannot acquire control on ${this.state.name} because there are no channels to control.`,variant:"warning"});this.writer=await n.openWriter({start:T.O.now(),channels:s,controlSubject:{key:this.key,name:this.state.name},authorities:this.state.authority}),this.setState(o=>({...o,status:"acquired"})),r({message:`Acquired control on ${this.state.name}`,variant:"success"})}catch(s){this.setState(o=>({...o,status:"failed"})),r({message:`${this.state.name} failed to acquire control: ${s.message}`,variant:"error"})}}async release(){var n;await((n=this.writer)==null?void 0:n.close()),this.setState(r=>({...r,status:"released"})),this.writer!=null&&this.internal.addStatus({message:`Released control on ${this.state.name}.`,variant:"success"}),this.writer=void 0}async set(n){var r;this.writer==null&&await this.acquire(),await((r=this.writer)==null?void 0:r.write(n))}async setAuthority(n,r){var s;this.writer==null&&await this.acquire(),await((s=this.writer)==null?void 0:s.setAuthority(Object.fromEntries(n.map(o=>[o,r]))))}async releaseAuthority(n){var r;this.writer==null&&await this.acquire(),await((r=this.writer)==null?void 0:r.setAuthority(Object.fromEntries(n.map(s=>[s,this.state.authority]))))}deleteTelem(n){this.registry.delete(n),this.updateNeedsControlOf()}create(n){const s=(()=>{switch(n.type){case Un.TYPE:{const o=new Un(this,n.props);return this.registry.set(o,null),o}case Vn.TYPE:{const o=new Vn(this,this.internal.stateProv,n.props);return this.registry.set(o,null),o}case Hn.TYPE:return new Hn(this,n.props);default:return null}})();return s!=null&&this.updateNeedsControlOf(),s}}m(Kr,"TYPE","Controller");const vl=E.z.object({channel:E.z.number()});class Un extends ys{constructor(n,r){super(r);m(this,"controller");m(this,"schema",vl);this.controller=n}invalidate(){}async cleanup(){this.controller.deleteTelem(this)}async needsControlOf(n){if(this.props.channel===0)return[];const r=await n.channels.retrieve(this.props.channel),s=[r.key];return r.index!==0&&s.push(r.index),s}async set(n){const{client:r}=this.controller.internal;if(r==null)return;const s=await r.channels.retrieve(this.props.channel),o=await r.channels.retrieve(s.index),i=new T.oy.Frame([s.key,o.key],[new T.Ie({data:new s.dataType.Array([n])}),new T.Ie({data:new o.dataType.Array([BigInt(T.O.now())])})]);await this.controller.set(i)}}m(Un,"TYPE","controlled-numeric-telem-sink");const Ag=t=>({type:Un.TYPE,props:t,variant:"sink",valueType:"number"}),bl=E.z.object({authority:E.z.number().default(T.ly.Authority.Absolute.valueOf()),channel:E.z.number()});class Hn extends ys{constructor(n,r){super(r);m(this,"controller");m(this,"schema",bl);this.controller=n}async cleanup(){this.controller.deleteTelem(this)}async needsControlOf(n){const r=await n.channels.retrieve(this.props.channel),s=[r.key];return r.index!==0&&s.push(r.index),s}async set(n){const{controller:r}=this,{client:s}=r.internal;if(s==null)return;const o=await s.channels.retrieve(this.props.channel),i=[o.key];o.index!==0&&i.push(o.index),n?await this.controller.setAuthority(i,this.props.authority):await this.controller.releaseAuthority(i)}}m(Hn,"TYPE","acquire-channel-control");const Ng=t=>({type:Hn.TYPE,props:t,variant:"sink",valueType:"boolean"}),Tl=E.z.object({channel:E.z.number()});class Vn extends _t{constructor(n,r,s){super(s);m(this,"prov");m(this,"valid",!1);m(this,"stopListening");m(this,"controller");m(this,"schema",Tl);this.prov=r,this.controller=n}async needsControlOf(){return[]}maybeRevalidate(){var s;if(this.valid)return;const{channel:n}=this.props;(s=this.stopListening)==null||s.call(this);const r=T.N$1.filterTransfersByChannelKey(n);this.stopListening=this.prov.onChange(o=>{var i;r(o).length!==0&&((i=this.notify)==null||i.call(this))}),this.valid=!0}async value(){this.maybeRevalidate();const n=T.O.now();if(this.props.channel===0)return{key:this.controller.key,variant:"disabled",message:"No Channel",time:n,data:{valid:!1,authority:0}};const r=this.prov.get(this.props.channel);return r==null?{key:this.controller.key,variant:"disabled",message:"Uncontrolled",time:n,data:{valid:!0,color:void 0,authority:0}}:{key:r.subject.key,variant:r.subject.key===this.controller.key?"success":"error",message:`Controlled by ${r.subject.name}`,time:n,data:{valid:!0,color:r.subjectColor,authority:r.authority}}}async cleanup(){var n;this.controller.deleteTelem(this),(n=this.stopListening)==null||n.call(this)}}m(Vn,"TYPE","controlled-status-source");const Dg=t=>({type:Vn.TYPE,props:t,variant:"source",valueType:"status"}),El=E.z.object({statusSource:No.optional().default(Ao),colorSource:cc.optional().default(rc),status:T.specZ$1,color:f.Color.z.optional()});class jr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",El);m(this,"stopListeningStatus");m(this,"stopListeningColor")}async afterUpdate(){var r,s;const{internal:n}=this;n.statusSource=await ee(this.ctx,this.state.statusSource,n.statusSource),n.colorSource=await ee(this.ctx,this.state.colorSource,n.colorSource),await this.updateState(),(r=this.stopListeningStatus)==null||r.call(this),this.stopListeningStatus=n.statusSource.onChange(()=>{this.updateState()}),(s=this.stopListeningColor)==null||s.call(this),this.stopListeningColor=n.colorSource.onChange(()=>{this.updateState()})}async afterDelete(){this.internalAfterDelete().catch(console.error)}async internalAfterDelete(){var n,r,s,o;await((r=(n=this.internal.statusSource).cleanup)==null?void 0:r.call(n)),await((o=(s=this.internal.colorSource).cleanup)==null?void 0:o.call(s))}async render(){}async updateState(){const n=await this.internal.colorSource.value(),r=await this.internal.statusSource.value();n.equals(this.state.color)&&r.message===this.state.status.message||this.setState(s=>({...s,color:n,status:r}))}}m(jr,"TYPE","Indicator");const _l=E.z.object({needsControlOf:T.ny.keyZ.array(),states:yl.array()});class Jr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",_l)}async afterUpdate(){var i;const{internal:n}=this;n.stateProv=en.use(this.ctx);const r=this.state.needsControlOf;(i=n.disconnectStateProv)==null||i.call(n);const s=T.N$1.filterTransfersByChannelKey(...r),o=n.stateProv.get(r);this.setState(a=>({...a,states:o})),n.disconnectStateProv=n.stateProv.onChange(a=>{if(s(a).length===0)return;const c=n.stateProv.get(r);this.setState(l=>({...l,states:c}))})}async afterDelete(){var r;const{internal:n}=this;(r=n.disconnectStateProv)==null||r.call(n)}async render(){}}m(Jr,"TYPE","Legend");const Og={[Kr.TYPE]:Kr,[en.TYPE]:en,[jr.TYPE]:jr,[Gr.TYPE]:Gr,[Jr.TYPE]:Jr},Cl=E.z.object({trigger:E.z.number(),sink:gs.optional().default(ds)});class Qr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",Cl)}async afterUpdate(){const{sink:n}=this.state;this.internal.sink=await fs(this.ctx,n,this.internal.sink),this.state.trigger>this.prevState.trigger&&this.internal.sink.set(!0).catch(console.error)}render(){}async afterDelete(){await this.internalAfterDelete()}async internalAfterDelete(){var r,s;const{internal:n}=this;await((s=(r=n.sink).cleanup)==null?void 0:s.call(r))}}m(Qr,"TYPE","Button");const zg={[Qr.TYPE]:Qr},ri=E.z.object({dpr:E.z.number(),region:f.To.box,bootstrap:E.z.boolean().optional().default(!1),bootstrapped:E.z.boolean().optional().default(!1),glCanvas:E.z.any().optional(),upper2dCanvas:E.z.any().optional(),lower2dCanvas:E.z.any().optional(),os:T.w.osZ});class Xn extends T.Composite{constructor(){super(...arguments);m(this,"schema",ri);m(this,"renderContextSet",!1)}async afterUpdate(){let n=gt.useOptional(this.ctx);if(n==null){if(this.renderContextSet)throw new T.Ee("[vis.worker.Canvas] - expected render context to be set");if(!this.state.bootstrap)return;const{glCanvas:r,lower2dCanvas:s,upper2dCanvas:o,os:i}=this.state;if(r==null||s==null||o==null)throw new T.Ee("[vis.worker.Canvas] - expected render context bootstrap to include all canvases");n=gt.create(this.ctx,r,s,o,i),Xr.create(this.ctx),this.setState(a=>({...a,bootstrap:!1,bootstrapped:!0,glCanvas:void 0,lower2dCanvas:void 0,upper2dCanvas:void 0}))}else n.update(this.ctx);n.resize(this.state.region,this.state.dpr)}}m(Xn,"TYPE","Canvas");const Pl={[Xn.TYPE]:Xn},Ig=Object.freeze(Object.defineProperty({__proto__:null,Canvas:Xn,REGISTRY:Pl,canvasStateZ:ri},Symbol.toStringTag,{value:"Module"}));function vt(t){if(typeof t=="string"||typeof t=="number")return""+t;let e="";if(Array.isArray(t))for(let n=0,r;n<t.length;n++)(r=vt(t[n]))!==""&&(e+=(e&&" ")+r);else for(let n in t)t[n]&&(e+=(e&&" ")+n);return e}var ho={exports:{}},Bs={},dr={exports:{}},qs={};/**
35
- * @license React
36
- * use-sync-external-store-shim.production.min.js
37
- *
38
- * Copyright (c) Facebook, Inc. and its affiliates.
39
- *
40
- * This source code is licensed under the MIT license found in the
41
- * LICENSE file in the root directory of this source tree.
42
- */var la;function Lg(){if(la)return qs;la=1;var t=x;function e(h,d){return h===d&&(h!==0||1/h===1/d)||h!==h&&d!==d}var n=typeof Object.is=="function"?Object.is:e,r=t.useState,s=t.useEffect,o=t.useLayoutEffect,i=t.useDebugValue;function a(h,d){var p=d(),w=r({inst:{value:p,getSnapshot:d}}),y=w[0].inst,b=w[1];return o(function(){y.value=p,y.getSnapshot=d,c(y)&&b({inst:y})},[h,p,d]),s(function(){return c(y)&&b({inst:y}),h(function(){c(y)&&b({inst:y})})},[h]),i(p),p}function c(h){var d=h.getSnapshot;h=h.value;try{var p=d();return!n(h,p)}catch{return!0}}function l(h,d){return d()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?l:a;return qs.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:u,qs}var Fs={};/**
43
- * @license React
44
- * use-sync-external-store-shim.development.js
45
- *
46
- * Copyright (c) Facebook, Inc. and its affiliates.
47
- *
48
- * This source code is licensed under the MIT license found in the
49
- * LICENSE file in the root directory of this source tree.
50
- */var ua;function $g(){return ua||(ua=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var t=x,e=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function n(_){{for(var v=arguments.length,k=new Array(v>1?v-1:0),C=1;C<v;C++)k[C-1]=arguments[C];r("error",_,k)}}function r(_,v,k){{var C=e.ReactDebugCurrentFrame,D=C.getStackAddendum();D!==""&&(v+="%s",k=k.concat([D]));var $=k.map(function(O){return String(O)});$.unshift("Warning: "+v),Function.prototype.apply.call(console[_],console,$)}}function s(_,v){return _===v&&(_!==0||1/_===1/v)||_!==_&&v!==v}var o=typeof Object.is=="function"?Object.is:s,i=t.useState,a=t.useEffect,c=t.useLayoutEffect,l=t.useDebugValue,u=!1,h=!1;function d(_,v,k){u||t.startTransition!==void 0&&(u=!0,n("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var C=v();if(!h){var D=v();o(C,D)||(n("The result of getSnapshot should be cached to avoid an infinite loop"),h=!0)}var $=i({inst:{value:C,getSnapshot:v}}),O=$[0].inst,Z=$[1];return c(function(){O.value=C,O.getSnapshot=v,p(O)&&Z({inst:O})},[_,C,v]),a(function(){p(O)&&Z({inst:O});var N=function(){p(O)&&Z({inst:O})};return _(N)},[_]),l(C),C}function p(_){var v=_.getSnapshot,k=_.value;try{var C=v();return!o(k,C)}catch{return!0}}function w(_,v,k){return v()}var y=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",b=!y,S=b?w:d,M=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:S;Fs.useSyncExternalStore=M,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),Fs}var ha;function Rl(){return ha||(ha=1,process.env.NODE_ENV==="production"?dr.exports=Lg():dr.exports=$g()),dr.exports}/**
51
- * @license React
52
- * use-sync-external-store-shim/with-selector.production.min.js
53
- *
54
- * Copyright (c) Facebook, Inc. and its affiliates.
55
- *
56
- * This source code is licensed under the MIT license found in the
57
- * LICENSE file in the root directory of this source tree.
58
- */var fa;function Yg(){if(fa)return Bs;fa=1;var t=x,e=Rl();function n(l,u){return l===u&&(l!==0||1/l===1/u)||l!==l&&u!==u}var r=typeof Object.is=="function"?Object.is:n,s=e.useSyncExternalStore,o=t.useRef,i=t.useEffect,a=t.useMemo,c=t.useDebugValue;return Bs.useSyncExternalStoreWithSelector=function(l,u,h,d,p){var w=o(null);if(w.current===null){var y={hasValue:!1,value:null};w.current=y}else y=w.current;w=a(function(){function S(C){if(!M){if(M=!0,_=C,C=d(C),p!==void 0&&y.hasValue){var D=y.value;if(p(D,C))return v=D}return v=C}if(D=v,r(_,C))return D;var $=d(C);return p!==void 0&&p(D,$)?D:(_=C,v=$)}var M=!1,_,v,k=h===void 0?null:h;return[function(){return S(u())},k===null?void 0:function(){return S(k())}]},[u,h,d,p]);var b=s(l,w[0],w[1]);return i(function(){y.hasValue=!0,y.value=b},[b]),c(b),b},Bs}var Zs={};/**
59
- * @license React
60
- * use-sync-external-store-shim/with-selector.development.js
61
- *
62
- * Copyright (c) Facebook, Inc. and its affiliates.
63
- *
64
- * This source code is licensed under the MIT license found in the
65
- * LICENSE file in the root directory of this source tree.
66
- */var da;function Bg(){return da||(da=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var t=x,e=Rl();function n(u,h){return u===h&&(u!==0||1/u===1/h)||u!==u&&h!==h}var r=typeof Object.is=="function"?Object.is:n,s=e.useSyncExternalStore,o=t.useRef,i=t.useEffect,a=t.useMemo,c=t.useDebugValue;function l(u,h,d,p,w){var y=o(null),b;y.current===null?(b={hasValue:!1,value:null},y.current=b):b=y.current;var S=a(function(){var k=!1,C,D,$=function(U){if(!k){k=!0,C=U;var Y=p(U);if(w!==void 0&&b.hasValue){var g=b.value;if(w(g,Y))return D=g,g}return D=Y,Y}var A=C,R=D;if(r(A,U))return R;var z=p(U);return w!==void 0&&w(R,z)?R:(C=U,D=z,z)},O=d===void 0?null:d,Z=function(){return $(h())},N=O===null?void 0:function(){return $(O())};return[Z,N]},[h,d,p,w]),M=S[0],_=S[1],v=s(u,M,_);return i(function(){b.hasValue=!0,b.value=v},[v]),c(v),v}Zs.useSyncExternalStoreWithSelector=l,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),Zs}process.env.NODE_ENV==="production"?ho.exports=Yg():ho.exports=Bg();var qg=ho.exports;const Fg=T.getDefaultExportFromCjs(qg);var Zg={BASE_URL:"/pluto/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const pa=t=>{let e;const n=new Set,r=(u,h)=>{const d=typeof u=="function"?u(e):u;if(!Object.is(d,e)){const p=e;e=h??(typeof d!="object"||d===null)?d:Object.assign({},e,d),n.forEach(w=>w(e,p))}},s=()=>e,c={setState:r,getState:s,getInitialState:()=>l,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{(Zg?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=e=t(r,s,c);return c},Ug=t=>t?pa(t):pa,{useDebugValue:Hg}=x,{useSyncExternalStoreWithSelector:Vg}=Fg,Xg=t=>t;function Ml(t,e=Xg,n){const r=Vg(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return Hg(r),r}const ga=(t,e)=>{const n=Ug(t),r=(s,o=e)=>Ml(n,s,o);return Object.assign(r,n),r},Wg=(t,e)=>t?ga(t,e):ga;function pt(t,e){if(Object.is(t,e))return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(const[r,s]of t)if(!Object.is(s,e.get(r)))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(const r of t)if(!e.has(r))return!1;return!0}const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(t[r],e[r]))return!1;return!0}var Gg={value:()=>{}};function xs(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Tr(n)}function Tr(t){this._=t}function Kg(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Tr.prototype=xs.prototype={constructor:Tr,on:function(t,e){var n=this._,r=Kg(t+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(t=r[o]).type)&&(s=jg(n[s],t.name)))return s;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++o<i;)if(s=(t=r[o]).type)n[s]=ma(n[s],t.name,e);else if(e==null)for(s in n)n[s]=ma(n[s],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Tr(t)},call:function(t,e){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,o;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,s=o.length;r<s;++r)o[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],s=0,o=r.length;s<o;++s)r[s].value.apply(e,n)}};function jg(t,e){for(var n=0,r=t.length,s;n<r;++n)if((s=t[n]).name===e)return s.value}function ma(t,e,n){for(var r=0,s=t.length;r<s;++r)if(t[r].name===e){t[r]=Gg,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var fo="http://www.w3.org/1999/xhtml";const ya={svg:"http://www.w3.org/2000/svg",xhtml:fo,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ss(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),ya.hasOwnProperty(e)?{space:ya[e],local:t}:t}function Jg(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===fo&&e.documentElement.namespaceURI===fo?e.createElement(t):e.createElementNS(n,t)}}function Qg(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function kl(t){var e=Ss(t);return(e.local?Qg:Jg)(e)}function tm(){}function si(t){return t==null?tm:function(){return this.querySelector(t)}}function em(t){typeof t!="function"&&(t=si(t));for(var e=this._groups,n=e.length,r=new Array(n),s=0;s<n;++s)for(var o=e[s],i=o.length,a=r[s]=new Array(i),c,l,u=0;u<i;++u)(c=o[u])&&(l=t.call(c,c.__data__,u,o))&&("__data__"in c&&(l.__data__=c.__data__),a[u]=l);return new xt(r,this._parents)}function nm(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function rm(){return[]}function Al(t){return t==null?rm:function(){return this.querySelectorAll(t)}}function sm(t){return function(){return nm(t.apply(this,arguments))}}function om(t){typeof t=="function"?t=sm(t):t=Al(t);for(var e=this._groups,n=e.length,r=[],s=[],o=0;o<n;++o)for(var i=e[o],a=i.length,c,l=0;l<a;++l)(c=i[l])&&(r.push(t.call(c,c.__data__,l,i)),s.push(c));return new xt(r,s)}function Nl(t){return function(){return this.matches(t)}}function Dl(t){return function(e){return e.matches(t)}}var im=Array.prototype.find;function am(t){return function(){return im.call(this.children,t)}}function cm(){return this.firstElementChild}function lm(t){return this.select(t==null?cm:am(typeof t=="function"?t:Dl(t)))}var um=Array.prototype.filter;function hm(){return Array.from(this.children)}function fm(t){return function(){return um.call(this.children,t)}}function dm(t){return this.selectAll(t==null?hm:fm(typeof t=="function"?t:Dl(t)))}function pm(t){typeof t!="function"&&(t=Nl(t));for(var e=this._groups,n=e.length,r=new Array(n),s=0;s<n;++s)for(var o=e[s],i=o.length,a=r[s]=[],c,l=0;l<i;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&a.push(c);return new xt(r,this._parents)}function Ol(t){return new Array(t.length)}function gm(){return new xt(this._enter||this._groups.map(Ol),this._parents)}function ts(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}ts.prototype={constructor:ts,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function mm(t){return function(){return t}}function ym(t,e,n,r,s,o){for(var i=0,a,c=e.length,l=o.length;i<l;++i)(a=e[i])?(a.__data__=o[i],r[i]=a):n[i]=new ts(t,o[i]);for(;i<c;++i)(a=e[i])&&(s[i]=a)}function wm(t,e,n,r,s,o,i){var a,c,l=new Map,u=e.length,h=o.length,d=new Array(u),p;for(a=0;a<u;++a)(c=e[a])&&(d[a]=p=i.call(c,c.__data__,a,e)+"",l.has(p)?s[a]=c:l.set(p,c));for(a=0;a<h;++a)p=i.call(t,o[a],a,o)+"",(c=l.get(p))?(r[a]=c,c.__data__=o[a],l.delete(p)):n[a]=new ts(t,o[a]);for(a=0;a<u;++a)(c=e[a])&&l.get(d[a])===c&&(s[a]=c)}function xm(t){return t.__data__}function Sm(t,e){if(!arguments.length)return Array.from(this,xm);var n=e?wm:ym,r=this._parents,s=this._groups;typeof t!="function"&&(t=mm(t));for(var o=s.length,i=new Array(o),a=new Array(o),c=new Array(o),l=0;l<o;++l){var u=r[l],h=s[l],d=h.length,p=vm(t.call(u,u&&u.__data__,l,r)),w=p.length,y=a[l]=new Array(w),b=i[l]=new Array(w),S=c[l]=new Array(d);n(u,h,y,b,S,p,e);for(var M=0,_=0,v,k;M<w;++M)if(v=y[M]){for(M>=_&&(_=M+1);!(k=b[_])&&++_<w;);v._next=k||null}}return i=new xt(i,r),i._enter=a,i._exit=c,i}function vm(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function bm(){return new xt(this._exit||this._groups.map(Ol),this._parents)}function Tm(t,e,n){var r=this.enter(),s=this,o=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(s=e(s),s&&(s=s.selection())),n==null?o.remove():n(o),r&&s?r.merge(s).order():s}function Em(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,s=n.length,o=r.length,i=Math.min(s,o),a=new Array(s),c=0;c<i;++c)for(var l=n[c],u=r[c],h=l.length,d=a[c]=new Array(h),p,w=0;w<h;++w)(p=l[w]||u[w])&&(d[w]=p);for(;c<s;++c)a[c]=n[c];return new xt(a,this._parents)}function _m(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],s=r.length-1,o=r[s],i;--s>=0;)(i=r[s])&&(o&&i.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(i,o),o=i);return this}function Cm(t){t||(t=Pm);function e(h,d){return h&&d?t(h.__data__,d.__data__):!h-!d}for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o){for(var i=n[o],a=i.length,c=s[o]=new Array(a),l,u=0;u<a;++u)(l=i[u])&&(c[u]=l);c.sort(e)}return new xt(s,this._parents).order()}function Pm(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Rm(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Mm(){return Array.from(this)}function km(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],s=0,o=r.length;s<o;++s){var i=r[s];if(i)return i}return null}function Am(){let t=0;for(const e of this)++t;return t}function Nm(){return!this.node()}function Dm(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var s=e[n],o=0,i=s.length,a;o<i;++o)(a=s[o])&&t.call(a,a.__data__,o,s);return this}function Om(t){return function(){this.removeAttribute(t)}}function zm(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Im(t,e){return function(){this.setAttribute(t,e)}}function Lm(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function $m(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Ym(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Bm(t,e){var n=Ss(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?zm:Om:typeof e=="function"?n.local?Ym:$m:n.local?Lm:Im)(n,e))}function zl(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function qm(t){return function(){this.style.removeProperty(t)}}function Fm(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Zm(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Um(t,e,n){return arguments.length>1?this.each((e==null?qm:typeof e=="function"?Zm:Fm)(t,e,n??"")):nn(this.node(),t)}function nn(t,e){return t.style.getPropertyValue(e)||zl(t).getComputedStyle(t,null).getPropertyValue(e)}function Hm(t){return function(){delete this[t]}}function Vm(t,e){return function(){this[t]=e}}function Xm(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Wm(t,e){return arguments.length>1?this.each((e==null?Hm:typeof e=="function"?Xm:Vm)(t,e)):this.node()[t]}function Il(t){return t.trim().split(/^|\s+/)}function oi(t){return t.classList||new Ll(t)}function Ll(t){this._node=t,this._names=Il(t.getAttribute("class")||"")}Ll.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function $l(t,e){for(var n=oi(t),r=-1,s=e.length;++r<s;)n.add(e[r])}function Yl(t,e){for(var n=oi(t),r=-1,s=e.length;++r<s;)n.remove(e[r])}function Gm(t){return function(){$l(this,t)}}function Km(t){return function(){Yl(this,t)}}function jm(t,e){return function(){(e.apply(this,arguments)?$l:Yl)(this,t)}}function Jm(t,e){var n=Il(t+"");if(arguments.length<2){for(var r=oi(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof e=="function"?jm:e?Gm:Km)(n,e))}function Qm(){this.textContent=""}function ty(t){return function(){this.textContent=t}}function ey(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function ny(t){return arguments.length?this.each(t==null?Qm:(typeof t=="function"?ey:ty)(t)):this.node().textContent}function ry(){this.innerHTML=""}function sy(t){return function(){this.innerHTML=t}}function oy(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function iy(t){return arguments.length?this.each(t==null?ry:(typeof t=="function"?oy:sy)(t)):this.node().innerHTML}function ay(){this.nextSibling&&this.parentNode.appendChild(this)}function cy(){return this.each(ay)}function ly(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function uy(){return this.each(ly)}function hy(t){var e=typeof t=="function"?t:kl(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function fy(){return null}function dy(t,e){var n=typeof t=="function"?t:kl(t),r=e==null?fy:typeof e=="function"?e:si(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function py(){var t=this.parentNode;t&&t.removeChild(this)}function gy(){return this.each(py)}function my(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function yy(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function wy(t){return this.select(t?yy:my)}function xy(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Sy(t){return function(e){t.call(this,e,this.__data__)}}function vy(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function by(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,s=e.length,o;n<s;++n)o=e[n],(!t.type||o.type===t.type)&&o.name===t.name?this.removeEventListener(o.type,o.listener,o.options):e[++r]=o;++r?e.length=r:delete this.__on}}}function Ty(t,e,n){return function(){var r=this.__on,s,o=Sy(e);if(r){for(var i=0,a=r.length;i<a;++i)if((s=r[i]).type===t.type&&s.name===t.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=o,s.options=n),s.value=e;return}}this.addEventListener(t.type,o,n),s={type:t.type,name:t.name,value:e,listener:o,options:n},r?r.push(s):this.__on=[s]}}function Ey(t,e,n){var r=vy(t+""),s,o=r.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,l=a.length,u;c<l;++c)for(s=0,u=a[c];s<o;++s)if((i=r[s]).type===u.type&&i.name===u.name)return u.value}return}for(a=e?Ty:by,s=0;s<o;++s)this.each(a(r[s],e,n));return this}function Bl(t,e,n){var r=zl(t),s=r.CustomEvent;typeof s=="function"?s=new s(e,n):(s=r.document.createEvent("Event"),n?(s.initEvent(e,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(e,!1,!1)),t.dispatchEvent(s)}function _y(t,e){return function(){return Bl(this,t,e)}}function Cy(t,e){return function(){return Bl(this,t,e.apply(this,arguments))}}function Py(t,e){return this.each((typeof e=="function"?Cy:_y)(t,e))}function*Ry(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],s=0,o=r.length,i;s<o;++s)(i=r[s])&&(yield i)}var ql=[null];function xt(t,e){this._groups=t,this._parents=e}function cr(){return new xt([[document.documentElement]],ql)}function My(){return this}xt.prototype=cr.prototype={constructor:xt,select:em,selectAll:om,selectChild:lm,selectChildren:dm,filter:pm,data:Sm,enter:gm,exit:bm,join:Tm,merge:Em,selection:My,order:_m,sort:Cm,call:Rm,nodes:Mm,node:km,size:Am,empty:Nm,each:Dm,attr:Bm,style:Um,property:Wm,classed:Jm,text:ny,html:iy,raise:cy,lower:uy,append:hy,insert:dy,remove:gy,clone:wy,datum:xy,on:Ey,dispatch:Py,[Symbol.iterator]:Ry};function Mt(t){return typeof t=="string"?new xt([[document.querySelector(t)]],[document.documentElement]):new xt([[t]],ql)}function ky(t){let e;for(;e=t.sourceEvent;)t=e;return t}function Ot(t,e){if(t=ky(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var s=e.getBoundingClientRect();return[t.clientX-s.left-e.clientLeft,t.clientY-s.top-e.clientTop]}}return[t.pageX,t.pageY]}const Ay={passive:!1},Wn={capture:!0,passive:!1};function Us(t){t.stopImmediatePropagation()}function qe(t){t.preventDefault(),t.stopImmediatePropagation()}function Fl(t){var e=t.document.documentElement,n=Mt(t).on("dragstart.drag",qe,Wn);"onselectstart"in e?n.on("selectstart.drag",qe,Wn):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Zl(t,e){var n=t.document.documentElement,r=Mt(t).on("dragstart.drag",null);e&&(r.on("click.drag",qe,Wn),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const pr=t=>()=>t;function po(t,{sourceEvent:e,subject:n,target:r,identifier:s,active:o,x:i,y:a,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}po.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Ny(t){return!t.ctrlKey&&!t.button}function Dy(){return this.parentNode}function Oy(t,e){return e??{x:t.x,y:t.y}}function zy(){return navigator.maxTouchPoints||"ontouchstart"in this}function Iy(){var t=Ny,e=Dy,n=Oy,r=zy,s={},o=xs("start","drag","end"),i=0,a,c,l,u,h=0;function d(v){v.on("mousedown.drag",p).filter(r).on("touchstart.drag",b).on("touchmove.drag",S,Ay).on("touchend.drag touchcancel.drag",M).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,k){if(!(u||!t.call(this,v,k))){var C=_(this,e.call(this,v,k),v,k,"mouse");C&&(Mt(v.view).on("mousemove.drag",w,Wn).on("mouseup.drag",y,Wn),Fl(v.view),Us(v),l=!1,a=v.clientX,c=v.clientY,C("start",v))}}function w(v){if(qe(v),!l){var k=v.clientX-a,C=v.clientY-c;l=k*k+C*C>h}s.mouse("drag",v)}function y(v){Mt(v.view).on("mousemove.drag mouseup.drag",null),Zl(v.view,l),qe(v),s.mouse("end",v)}function b(v,k){if(t.call(this,v,k)){var C=v.changedTouches,D=e.call(this,v,k),$=C.length,O,Z;for(O=0;O<$;++O)(Z=_(this,D,v,k,C[O].identifier,C[O]))&&(Us(v),Z("start",v,C[O]))}}function S(v){var k=v.changedTouches,C=k.length,D,$;for(D=0;D<C;++D)($=s[k[D].identifier])&&(qe(v),$("drag",v,k[D]))}function M(v){var k=v.changedTouches,C=k.length,D,$;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),D=0;D<C;++D)($=s[k[D].identifier])&&(Us(v),$("end",v,k[D]))}function _(v,k,C,D,$,O){var Z=o.copy(),N=Ot(O||C,k),U,Y,g;if((g=n.call(v,new po("beforestart",{sourceEvent:C,target:d,identifier:$,active:i,x:N[0],y:N[1],dx:0,dy:0,dispatch:Z}),D))!=null)return U=g.x-N[0]||0,Y=g.y-N[1]||0,function A(R,z,B){var P=N,I;switch(R){case"start":s[$]=A,I=i++;break;case"end":delete s[$],--i;case"drag":N=Ot(B||z,k),I=i;break}Z.call(R,v,new po(R,{sourceEvent:z,subject:g,target:d,identifier:$,active:I,x:N[0]+U,y:N[1]+Y,dx:N[0]-P[0],dy:N[1]-P[1],dispatch:Z}),D)}}return d.filter=function(v){return arguments.length?(t=typeof v=="function"?v:pr(!!v),d):t},d.container=function(v){return arguments.length?(e=typeof v=="function"?v:pr(v),d):e},d.subject=function(v){return arguments.length?(n=typeof v=="function"?v:pr(v),d):n},d.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:pr(!!v),d):r},d.on=function(){var v=o.on.apply(o,arguments);return v===o?d:v},d.clickDistance=function(v){return arguments.length?(h=(v=+v)*v,d):Math.sqrt(h)},d}var rn=0,Tn=0,wn=0,Ul=1e3,es,En,ns=0,xe=0,vs=0,Gn=typeof performance=="object"&&performance.now?performance:Date,Hl=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ii(){return xe||(Hl(Ly),xe=Gn.now()+vs)}function Ly(){xe=0}function rs(){this._call=this._time=this._next=null}rs.prototype=Vl.prototype={constructor:rs,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?ii():+n)+(e==null?0:+e),!this._next&&En!==this&&(En?En._next=this:es=this,En=this),this._call=t,this._time=n,go()},stop:function(){this._call&&(this._call=null,this._time=1/0,go())}};function Vl(t,e,n){var r=new rs;return r.restart(t,e,n),r}function $y(){ii(),++rn;for(var t=es,e;t;)(e=xe-t._time)>=0&&t._call.call(void 0,e),t=t._next;--rn}function wa(){xe=(ns=Gn.now())+vs,rn=Tn=0;try{$y()}finally{rn=0,By(),xe=0}}function Yy(){var t=Gn.now(),e=t-ns;e>Ul&&(vs-=e,ns=t)}function By(){for(var t,e=es,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:es=n);En=t,go(r)}function go(t){if(!rn){Tn&&(Tn=clearTimeout(Tn));var e=t-xe;e>24?(t<1/0&&(Tn=setTimeout(wa,t-Gn.now()-vs)),wn&&(wn=clearInterval(wn))):(wn||(ns=Gn.now(),wn=setInterval(Yy,Ul)),rn=1,Hl(wa))}}function xa(t,e,n){var r=new rs;return e=e==null?0:+e,r.restart(s=>{r.stop(),t(s+e)},e,n),r}var qy=xs("start","end","cancel","interrupt"),Fy=[],Xl=0,Sa=1,mo=2,Er=3,va=4,yo=5,_r=6;function bs(t,e,n,r,s,o){var i=t.__transition;if(!i)t.__transition={};else if(n in i)return;Zy(t,n,{name:e,index:r,group:s,on:qy,tween:Fy,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Xl})}function ai(t,e){var n=At(t,e);if(n.state>Xl)throw new Error("too late; already scheduled");return n}function $t(t,e){var n=At(t,e);if(n.state>Er)throw new Error("too late; already running");return n}function At(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Zy(t,e,n){var r=t.__transition,s;r[e]=n,n.timer=Vl(o,0,n.time);function o(l){n.state=Sa,n.timer.restart(i,n.delay,n.time),n.delay<=l&&i(l-n.delay)}function i(l){var u,h,d,p;if(n.state!==Sa)return c();for(u in r)if(p=r[u],p.name===n.name){if(p.state===Er)return xa(i);p.state===va?(p.state=_r,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[u]):+u<e&&(p.state=_r,p.timer.stop(),p.on.call("cancel",t,t.__data__,p.index,p.group),delete r[u])}if(xa(function(){n.state===Er&&(n.state=va,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=mo,n.on.call("start",t,t.__data__,n.index,n.group),n.state===mo){for(n.state=Er,s=new Array(d=n.tween.length),u=0,h=-1;u<d;++u)(p=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(s[++h]=p);s.length=h+1}}function a(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=yo,1),h=-1,d=s.length;++h<d;)s[h].call(t,u);n.state===yo&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=_r,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function Cr(t,e){var n=t.__transition,r,s,o=!0,i;if(n){e=e==null?null:e+"";for(i in n){if((r=n[i]).name!==e){o=!1;continue}s=r.state>mo&&r.state<yo,r.state=_r,r.timer.stop(),r.on.call(s?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[i]}o&&delete t.__transition}}function Uy(t){return this.each(function(){Cr(this,t)})}function Hy(t,e){var n,r;return function(){var s=$t(this,t),o=s.tween;if(o!==n){r=n=o;for(var i=0,a=r.length;i<a;++i)if(r[i].name===e){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function Vy(t,e,n){var r,s;if(typeof n!="function")throw new Error;return function(){var o=$t(this,t),i=o.tween;if(i!==r){s=(r=i).slice();for(var a={name:e,value:n},c=0,l=s.length;c<l;++c)if(s[c].name===e){s[c]=a;break}c===l&&s.push(a)}o.tween=s}}function Xy(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=At(this.node(),n).tween,s=0,o=r.length,i;s<o;++s)if((i=r[s]).name===t)return i.value;return null}return this.each((e==null?Hy:Vy)(n,t,e))}function ci(t,e,n){var r=t._id;return t.each(function(){var s=$t(this,r);(s.value||(s.value={}))[e]=n.apply(this,arguments)}),function(s){return At(s,r).value[e]}}function Wl(t,e){var n;return(typeof e=="number"?Pt:e instanceof ye?Br:(n=ye(e))?(e=n,Br):Zc)(t,e)}function Wy(t){return function(){this.removeAttribute(t)}}function Gy(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ky(t,e,n){var r,s=n+"",o;return function(){var i=this.getAttribute(t);return i===s?null:i===r?o:o=e(r=i,n)}}function jy(t,e,n){var r,s=n+"",o;return function(){var i=this.getAttributeNS(t.space,t.local);return i===s?null:i===r?o:o=e(r=i,n)}}function Jy(t,e,n){var r,s,o;return function(){var i,a=n(this),c;return a==null?void this.removeAttribute(t):(i=this.getAttribute(t),c=a+"",i===c?null:i===r&&c===s?o:(s=c,o=e(r=i,a)))}}function Qy(t,e,n){var r,s,o;return function(){var i,a=n(this),c;return a==null?void this.removeAttributeNS(t.space,t.local):(i=this.getAttributeNS(t.space,t.local),c=a+"",i===c?null:i===r&&c===s?o:(s=c,o=e(r=i,a)))}}function t0(t,e){var n=Ss(t),r=n==="transform"?ud:Wl;return this.attrTween(t,typeof e=="function"?(n.local?Qy:Jy)(n,r,ci(this,"attr."+t,e)):e==null?(n.local?Gy:Wy)(n):(n.local?jy:Ky)(n,r,e))}function e0(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function n0(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function r0(t,e){var n,r;function s(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&n0(t,o)),n}return s._value=e,s}function s0(t,e){var n,r;function s(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&e0(t,o)),n}return s._value=e,s}function o0(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=Ss(t);return this.tween(n,(r.local?r0:s0)(r,e))}function i0(t,e){return function(){ai(this,t).delay=+e.apply(this,arguments)}}function a0(t,e){return e=+e,function(){ai(this,t).delay=e}}function c0(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?i0:a0)(e,t)):At(this.node(),e).delay}function l0(t,e){return function(){$t(this,t).duration=+e.apply(this,arguments)}}function u0(t,e){return e=+e,function(){$t(this,t).duration=e}}function h0(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?l0:u0)(e,t)):At(this.node(),e).duration}function f0(t,e){if(typeof e!="function")throw new Error;return function(){$t(this,t).ease=e}}function d0(t){var e=this._id;return arguments.length?this.each(f0(e,t)):At(this.node(),e).ease}function p0(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;$t(this,t).ease=n}}function g0(t){if(typeof t!="function")throw new Error;return this.each(p0(this._id,t))}function m0(t){typeof t!="function"&&(t=Nl(t));for(var e=this._groups,n=e.length,r=new Array(n),s=0;s<n;++s)for(var o=e[s],i=o.length,a=r[s]=[],c,l=0;l<i;++l)(c=o[l])&&t.call(c,c.__data__,l,o)&&a.push(c);return new Xt(r,this._parents,this._name,this._id)}function y0(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,s=n.length,o=Math.min(r,s),i=new Array(r),a=0;a<o;++a)for(var c=e[a],l=n[a],u=c.length,h=i[a]=new Array(u),d,p=0;p<u;++p)(d=c[p]||l[p])&&(h[p]=d);for(;a<r;++a)i[a]=e[a];return new Xt(i,this._parents,this._name,this._id)}function w0(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function x0(t,e,n){var r,s,o=w0(e)?ai:$t;return function(){var i=o(this,t),a=i.on;a!==r&&(s=(r=a).copy()).on(e,n),i.on=s}}function S0(t,e){var n=this._id;return arguments.length<2?At(this.node(),n).on.on(t):this.each(x0(n,t,e))}function v0(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function b0(){return this.on("end.remove",v0(this._id))}function T0(t){var e=this._name,n=this._id;typeof t!="function"&&(t=si(t));for(var r=this._groups,s=r.length,o=new Array(s),i=0;i<s;++i)for(var a=r[i],c=a.length,l=o[i]=new Array(c),u,h,d=0;d<c;++d)(u=a[d])&&(h=t.call(u,u.__data__,d,a))&&("__data__"in u&&(h.__data__=u.__data__),l[d]=h,bs(l[d],e,n,d,l,At(u,n)));return new Xt(o,this._parents,e,n)}function E0(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Al(t));for(var r=this._groups,s=r.length,o=[],i=[],a=0;a<s;++a)for(var c=r[a],l=c.length,u,h=0;h<l;++h)if(u=c[h]){for(var d=t.call(u,u.__data__,h,c),p,w=At(u,n),y=0,b=d.length;y<b;++y)(p=d[y])&&bs(p,e,n,y,d,w);o.push(d),i.push(u)}return new Xt(o,i,e,n)}var _0=cr.prototype.constructor;function C0(){return new _0(this._groups,this._parents)}function P0(t,e){var n,r,s;return function(){var o=nn(this,t),i=(this.style.removeProperty(t),nn(this,t));return o===i?null:o===n&&i===r?s:s=e(n=o,r=i)}}function Gl(t){return function(){this.style.removeProperty(t)}}function R0(t,e,n){var r,s=n+"",o;return function(){var i=nn(this,t);return i===s?null:i===r?o:o=e(r=i,n)}}function M0(t,e,n){var r,s,o;return function(){var i=nn(this,t),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(t),nn(this,t))),i===c?null:i===r&&c===s?o:(s=c,o=e(r=i,a))}}function k0(t,e){var n,r,s,o="style."+e,i="end."+o,a;return function(){var c=$t(this,t),l=c.on,u=c.value[o]==null?a||(a=Gl(e)):void 0;(l!==n||s!==u)&&(r=(n=l).copy()).on(i,s=u),c.on=r}}function A0(t,e,n){var r=(t+="")=="transform"?ld:Wl;return e==null?this.styleTween(t,P0(t,r)).on("end.style."+t,Gl(t)):typeof e=="function"?this.styleTween(t,M0(t,r,ci(this,"style."+t,e))).each(k0(this._id,t)):this.styleTween(t,R0(t,r,e),n).on("end.style."+t,null)}function N0(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function D0(t,e,n){var r,s;function o(){var i=e.apply(this,arguments);return i!==s&&(r=(s=i)&&N0(t,i,n)),r}return o._value=e,o}function O0(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,D0(t,e,n??""))}function z0(t){return function(){this.textContent=t}}function I0(t){return function(){var e=t(this);this.textContent=e??""}}function L0(t){return this.tween("text",typeof t=="function"?I0(ci(this,"text",t)):z0(t==null?"":t+""))}function $0(t){return function(e){this.textContent=t.call(this,e)}}function Y0(t){var e,n;function r(){var s=t.apply(this,arguments);return s!==n&&(e=(n=s)&&$0(s)),e}return r._value=t,r}function B0(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,Y0(t))}function q0(){for(var t=this._name,e=this._id,n=Kl(),r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,c,l=0;l<a;++l)if(c=i[l]){var u=At(c,e);bs(c,t,n,l,i,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Xt(r,this._parents,t,n)}function F0(){var t,e,n=this,r=n._id,s=n.size();return new Promise(function(o,i){var a={value:i},c={value:function(){--s===0&&o()}};n.each(function(){var l=$t(this,r),u=l.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(a),e._.interrupt.push(a),e._.end.push(c)),l.on=e}),s===0&&o()})}var Z0=0;function Xt(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function Kl(){return++Z0}var qt=cr.prototype;Xt.prototype={constructor:Xt,select:T0,selectAll:E0,selectChild:qt.selectChild,selectChildren:qt.selectChildren,filter:m0,merge:y0,selection:C0,transition:q0,call:qt.call,nodes:qt.nodes,node:qt.node,size:qt.size,empty:qt.empty,each:qt.each,on:S0,attr:t0,attrTween:o0,style:A0,styleTween:O0,text:L0,textTween:B0,remove:b0,tween:Xy,delay:c0,duration:h0,ease:d0,easeVarying:g0,end:F0,[Symbol.iterator]:qt[Symbol.iterator]};function U0(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var H0={time:null,delay:0,duration:250,ease:U0};function V0(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function X0(t){var e,n;t instanceof Xt?(e=t._id,t=t._name):(e=Kl(),(n=H0).time=ii(),t=t==null?null:t+"");for(var r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,c,l=0;l<a;++l)(c=i[l])&&bs(c,t,e,l,i,n||V0(c,e));return new Xt(r,this._parents,t,e)}cr.prototype.interrupt=Uy;cr.prototype.transition=X0;const gr=t=>()=>t;function W0(t,{sourceEvent:e,target:n,transform:r,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:s}})}function Ut(t,e,n){this.k=t,this.x=e,this.y=n}Ut.prototype={constructor:Ut,scale:function(t){return t===1?this:new Ut(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new Ut(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Qt=new Ut(1,0,0);Ut.prototype;function Hs(t){t.stopImmediatePropagation()}function xn(t){t.preventDefault(),t.stopImmediatePropagation()}function G0(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function K0(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function ba(){return this.__zoom||Qt}function j0(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function J0(){return navigator.maxTouchPoints||"ontouchstart"in this}function Q0(t,e,n){var r=t.invertX(e[0][0])-n[0][0],s=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],i=t.invertY(e[1][1])-n[1][1];return t.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i))}function tw(){var t=G0,e=K0,n=Q0,r=j0,s=J0,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,c=pd,l=xs("start","zoom","end"),u,h,d,p=500,w=150,y=0,b=10;function S(g){g.property("__zoom",ba).on("wheel.zoom",$,{passive:!1}).on("mousedown.zoom",O).on("dblclick.zoom",Z).filter(s).on("touchstart.zoom",N).on("touchmove.zoom",U).on("touchend.zoom touchcancel.zoom",Y).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}S.transform=function(g,A,R,z){var B=g.selection?g.selection():g;B.property("__zoom",ba),g!==B?k(g,A,R,z):B.interrupt().each(function(){C(this,arguments).event(z).start().zoom(null,typeof A=="function"?A.apply(this,arguments):A).end()})},S.scaleBy=function(g,A,R,z){S.scaleTo(g,function(){var B=this.__zoom.k,P=typeof A=="function"?A.apply(this,arguments):A;return B*P},R,z)},S.scaleTo=function(g,A,R,z){S.transform(g,function(){var B=e.apply(this,arguments),P=this.__zoom,I=R==null?v(B):typeof R=="function"?R.apply(this,arguments):R,q=P.invert(I),F=typeof A=="function"?A.apply(this,arguments):A;return n(_(M(P,F),I,q),B,i)},R,z)},S.translateBy=function(g,A,R,z){S.transform(g,function(){return n(this.__zoom.translate(typeof A=="function"?A.apply(this,arguments):A,typeof R=="function"?R.apply(this,arguments):R),e.apply(this,arguments),i)},null,z)},S.translateTo=function(g,A,R,z,B){S.transform(g,function(){var P=e.apply(this,arguments),I=this.__zoom,q=z==null?v(P):typeof z=="function"?z.apply(this,arguments):z;return n(Qt.translate(q[0],q[1]).scale(I.k).translate(typeof A=="function"?-A.apply(this,arguments):-A,typeof R=="function"?-R.apply(this,arguments):-R),P,i)},z,B)};function M(g,A){return A=Math.max(o[0],Math.min(o[1],A)),A===g.k?g:new Ut(A,g.x,g.y)}function _(g,A,R){var z=A[0]-R[0]*g.k,B=A[1]-R[1]*g.k;return z===g.x&&B===g.y?g:new Ut(g.k,z,B)}function v(g){return[(+g[0][0]+ +g[1][0])/2,(+g[0][1]+ +g[1][1])/2]}function k(g,A,R,z){g.on("start.zoom",function(){C(this,arguments).event(z).start()}).on("interrupt.zoom end.zoom",function(){C(this,arguments).event(z).end()}).tween("zoom",function(){var B=this,P=arguments,I=C(B,P).event(z),q=e.apply(B,P),F=R==null?v(q):typeof R=="function"?R.apply(B,P):R,X=Math.max(q[1][0]-q[0][0],q[1][1]-q[0][1]),V=B.__zoom,K=typeof A=="function"?A.apply(B,P):A,tt=c(V.invert(F).concat(X/V.k),K.invert(F).concat(X/K.k));return function(et){if(et===1)et=K;else{var ot=tt(et),H=X/ot[2];et=new Ut(H,F[0]-ot[0]*H,F[1]-ot[1]*H)}I.zoom(null,et)}})}function C(g,A,R){return!R&&g.__zooming||new D(g,A)}function D(g,A){this.that=g,this.args=A,this.active=0,this.sourceEvent=null,this.extent=e.apply(g,A),this.taps=0}D.prototype={event:function(g){return g&&(this.sourceEvent=g),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(g,A){return this.mouse&&g!=="mouse"&&(this.mouse[1]=A.invert(this.mouse[0])),this.touch0&&g!=="touch"&&(this.touch0[1]=A.invert(this.touch0[0])),this.touch1&&g!=="touch"&&(this.touch1[1]=A.invert(this.touch1[0])),this.that.__zoom=A,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(g){var A=Mt(this.that).datum();l.call(g,this.that,new W0(g,{sourceEvent:this.sourceEvent,target:S,type:g,transform:this.that.__zoom,dispatch:l}),A)}};function $(g,...A){if(!t.apply(this,arguments))return;var R=C(this,A).event(g),z=this.__zoom,B=Math.max(o[0],Math.min(o[1],z.k*Math.pow(2,r.apply(this,arguments)))),P=Ot(g);if(R.wheel)(R.mouse[0][0]!==P[0]||R.mouse[0][1]!==P[1])&&(R.mouse[1]=z.invert(R.mouse[0]=P)),clearTimeout(R.wheel);else{if(z.k===B)return;R.mouse=[P,z.invert(P)],Cr(this),R.start()}xn(g),R.wheel=setTimeout(I,w),R.zoom("mouse",n(_(M(z,B),R.mouse[0],R.mouse[1]),R.extent,i));function I(){R.wheel=null,R.end()}}function O(g,...A){if(d||!t.apply(this,arguments))return;var R=g.currentTarget,z=C(this,A,!0).event(g),B=Mt(g.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",X,!0),P=Ot(g,R),I=g.clientX,q=g.clientY;Fl(g.view),Hs(g),z.mouse=[P,this.__zoom.invert(P)],Cr(this),z.start();function F(V){if(xn(V),!z.moved){var K=V.clientX-I,tt=V.clientY-q;z.moved=K*K+tt*tt>y}z.event(V).zoom("mouse",n(_(z.that.__zoom,z.mouse[0]=Ot(V,R),z.mouse[1]),z.extent,i))}function X(V){B.on("mousemove.zoom mouseup.zoom",null),Zl(V.view,z.moved),xn(V),z.event(V).end()}}function Z(g,...A){if(t.apply(this,arguments)){var R=this.__zoom,z=Ot(g.changedTouches?g.changedTouches[0]:g,this),B=R.invert(z),P=R.k*(g.shiftKey?.5:2),I=n(_(M(R,P),z,B),e.apply(this,A),i);xn(g),a>0?Mt(this).transition().duration(a).call(k,I,z,g):Mt(this).call(S.transform,I,z,g)}}function N(g,...A){if(t.apply(this,arguments)){var R=g.touches,z=R.length,B=C(this,A,g.changedTouches.length===z).event(g),P,I,q,F;for(Hs(g),I=0;I<z;++I)q=R[I],F=Ot(q,this),F=[F,this.__zoom.invert(F),q.identifier],B.touch0?!B.touch1&&B.touch0[2]!==F[2]&&(B.touch1=F,B.taps=0):(B.touch0=F,P=!0,B.taps=1+!!u);u&&(u=clearTimeout(u)),P&&(B.taps<2&&(h=F[0],u=setTimeout(function(){u=null},p)),Cr(this),B.start())}}function U(g,...A){if(this.__zooming){var R=C(this,A).event(g),z=g.changedTouches,B=z.length,P,I,q,F;for(xn(g),P=0;P<B;++P)I=z[P],q=Ot(I,this),R.touch0&&R.touch0[2]===I.identifier?R.touch0[0]=q:R.touch1&&R.touch1[2]===I.identifier&&(R.touch1[0]=q);if(I=R.that.__zoom,R.touch1){var X=R.touch0[0],V=R.touch0[1],K=R.touch1[0],tt=R.touch1[1],et=(et=K[0]-X[0])*et+(et=K[1]-X[1])*et,ot=(ot=tt[0]-V[0])*ot+(ot=tt[1]-V[1])*ot;I=M(I,Math.sqrt(et/ot)),q=[(X[0]+K[0])/2,(X[1]+K[1])/2],F=[(V[0]+tt[0])/2,(V[1]+tt[1])/2]}else if(R.touch0)q=R.touch0[0],F=R.touch0[1];else return;R.zoom("touch",n(_(I,q,F),R.extent,i))}}function Y(g,...A){if(this.__zooming){var R=C(this,A).event(g),z=g.changedTouches,B=z.length,P,I;for(Hs(g),d&&clearTimeout(d),d=setTimeout(function(){d=null},p),P=0;P<B;++P)I=z[P],R.touch0&&R.touch0[2]===I.identifier?delete R.touch0:R.touch1&&R.touch1[2]===I.identifier&&delete R.touch1;if(R.touch1&&!R.touch0&&(R.touch0=R.touch1,delete R.touch1),R.touch0)R.touch0[1]=this.__zoom.invert(R.touch0[0]);else if(R.end(),R.taps===2&&(I=Ot(I,this),Math.hypot(h[0]-I[0],h[1]-I[1])<b)){var q=Mt(this).on("dblclick.zoom");q&&q.apply(this,arguments)}}}return S.wheelDelta=function(g){return arguments.length?(r=typeof g=="function"?g:gr(+g),S):r},S.filter=function(g){return arguments.length?(t=typeof g=="function"?g:gr(!!g),S):t},S.touchable=function(g){return arguments.length?(s=typeof g=="function"?g:gr(!!g),S):s},S.extent=function(g){return arguments.length?(e=typeof g=="function"?g:gr([[+g[0][0],+g[0][1]],[+g[1][0],+g[1][1]]]),S):e},S.scaleExtent=function(g){return arguments.length?(o[0]=+g[0],o[1]=+g[1],S):[o[0],o[1]]},S.translateExtent=function(g){return arguments.length?(i[0][0]=+g[0][0],i[1][0]=+g[1][0],i[0][1]=+g[0][1],i[1][1]=+g[1][1],S):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},S.constrain=function(g){return arguments.length?(n=g,S):n},S.duration=function(g){return arguments.length?(a=+g,S):a},S.interpolate=function(g){return arguments.length?(c=g,S):c},S.on=function(){var g=l.on.apply(l,arguments);return g===l?S:g},S.clickDistance=function(g){return arguments.length?(y=(g=+g)*g,S):Math.sqrt(y)},S.tapDistance=function(g){return arguments.length?(b=+g,S):b},S}const Ts=x.createContext(null),ew=Ts.Provider,St={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,e)=>`Couldn't create edge for ${t?"target":"source"} handle id: "${t?e.targetHandle:e.sourceHandle}", edge id: ${e.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},jl=St.error001();function lt(t,e){const n=x.useContext(Ts);if(n===null)throw new Error(jl);return Ml(n,t,e)}const ht=()=>{const t=x.useContext(Ts);if(t===null)throw new Error(jl);return x.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe,destroy:t.destroy}),[t])},nw=t=>t.userSelectionActive?"none":"all";function rw({position:t,children:e,className:n,style:r,...s}){const o=lt(nw),i=`${t}`.split("-");return x.createElement("div",{className:vt(["react-flow__panel",n,...i]),style:{...r,pointerEvents:o},...s},e)}function sw({proOptions:t,position:e="bottom-right"}){return t!=null&&t.hideAttribution?null:x.createElement(rw,{position:e,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},x.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const ow=({x:t,y:e,label:n,labelStyle:r={},labelShowBg:s=!0,labelBgStyle:o={},labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:c,className:l,...u})=>{const h=x.useRef(null),[d,p]=x.useState({x:0,y:0,width:0,height:0}),w=vt(["react-flow__edge-textwrapper",l]);return x.useEffect(()=>{if(h.current){const y=h.current.getBBox();p({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),typeof n>"u"||!n?null:x.createElement("g",{transform:`translate(${t-d.width/2} ${e-d.height/2})`,className:w,visibility:d.width?"visible":"hidden",...u},s&&x.createElement("rect",{width:d.width+2*i[0],x:-i[0],y:-i[1],height:d.height+2*i[1],className:"react-flow__edge-textbg",style:o,rx:a,ry:a}),x.createElement("text",{className:"react-flow__edge-text",y:d.height/2,dy:"0.3em",ref:h,style:r},n),c)};var iw=x.memo(ow);const li=t=>({width:t.offsetWidth,height:t.offsetHeight}),sn=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),ui=(t={x:0,y:0},e)=>({x:sn(t.x,e[0][0],e[1][0]),y:sn(t.y,e[0][1],e[1][1])}),Ta=(t,e,n)=>t<e?sn(Math.abs(t-e),1,50)/50:t>n?-sn(Math.abs(t-n),1,50)/50:0,Jl=(t,e)=>{const n=Ta(t.x,35,e.width-35)*20,r=Ta(t.y,35,e.height-35)*20;return[n,r]},Ql=t=>{var e;return((e=t.getRootNode)==null?void 0:e.call(t))||(window==null?void 0:window.document)},aw=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),hi=({x:t,y:e,width:n,height:r})=>({x:t,y:e,x2:t+n,y2:e+r}),cw=({x:t,y:e,x2:n,y2:r})=>({x:t,y:e,width:n-t,height:r-e}),Ea=t=>({...t.positionAbsolute||{x:0,y:0},width:t.width||0,height:t.height||0}),wo=(t,e)=>{const n=Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x)),r=Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y));return Math.ceil(n*r)},lw=t=>Et(t.width)&&Et(t.height)&&Et(t.x)&&Et(t.y),Et=t=>!isNaN(t)&&isFinite(t),ct=Symbol.for("internals"),tu=["Enter"," ","Escape"],ss=(t,e)=>{process.env.NODE_ENV==="development"&&console.warn(`[React Flow]: ${e} Help: https://reactflow.dev/error#${t}`)},uw=t=>"nativeEvent"in t;function xo(t){var s,o;const e=uw(t)?t.nativeEvent:t,n=((o=(s=e.composedPath)==null?void 0:s.call(e))==null?void 0:o[0])||t.target;return["INPUT","SELECT","TEXTAREA"].includes(n==null?void 0:n.nodeName)||(n==null?void 0:n.hasAttribute("contenteditable"))||!!(n!=null&&n.closest(".nokey"))}const eu=t=>"clientX"in t,te=(t,e)=>{var o,i;const n=eu(t),r=n?t.clientX:(o=t.touches)==null?void 0:o[0].clientX,s=n?t.clientY:(i=t.touches)==null?void 0:i[0].clientY;return{x:r-((e==null?void 0:e.left)??0),y:s-((e==null?void 0:e.top)??0)}},os=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0},un=({id:t,path:e,labelX:n,labelY:r,label:s,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:h,markerStart:d,interactionWidth:p=20})=>x.createElement(x.Fragment,null,x.createElement("path",{id:t,style:u,d:e,fill:"none",className:"react-flow__edge-path",markerEnd:h,markerStart:d}),p&&x.createElement("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:p,className:"react-flow__edge-interaction"}),s&&Et(n)&&Et(r)?x.createElement(iw,{x:n,y:r,label:s,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l}):null);un.displayName="BaseEdge";function Sn(t,e,n){return n===void 0?n:r=>{const s=e().edges.find(o=>o.id===t);s&&n(r,{...s})}}function nu({sourceX:t,sourceY:e,targetX:n,targetY:r}){const s=Math.abs(n-t)/2,o=n<t?n+s:n-s,i=Math.abs(r-e)/2,a=r<e?r+i:r-i;return[o,a,s,i]}function ru({sourceX:t,sourceY:e,targetX:n,targetY:r,sourceControlX:s,sourceControlY:o,targetControlX:i,targetControlY:a}){const c=t*.125+s*.375+i*.375+n*.125,l=e*.125+o*.375+a*.375+r*.125,u=Math.abs(c-t),h=Math.abs(l-e);return[c,l,u,h]}exports.ConnectionMode=void 0;(function(t){t.Strict="strict",t.Loose="loose"})(exports.ConnectionMode||(exports.ConnectionMode={}));var pe;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(pe||(pe={}));exports.SelectionMode=void 0;(function(t){t.Partial="partial",t.Full="full"})(exports.SelectionMode||(exports.SelectionMode={}));var Kt;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Kt||(Kt={}));var is;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(is||(is={}));exports.Position=void 0;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(exports.Position||(exports.Position={}));function _a({pos:t,x1:e,y1:n,x2:r,y2:s}){return t===exports.Position.Left||t===exports.Position.Right?[.5*(e+r),n]:[e,.5*(n+s)]}function su({sourceX:t,sourceY:e,sourcePosition:n=exports.Position.Bottom,targetX:r,targetY:s,targetPosition:o=exports.Position.Top}){const[i,a]=_a({pos:n,x1:t,y1:e,x2:r,y2:s}),[c,l]=_a({pos:o,x1:r,y1:s,x2:t,y2:e}),[u,h,d,p]=ru({sourceX:t,sourceY:e,targetX:r,targetY:s,sourceControlX:i,sourceControlY:a,targetControlX:c,targetControlY:l});return[`M${t},${e} C${i},${a} ${c},${l} ${r},${s}`,u,h,d,p]}const fi=x.memo(({sourceX:t,sourceY:e,targetX:n,targetY:r,sourcePosition:s=exports.Position.Bottom,targetPosition:o=exports.Position.Top,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:h,style:d,markerEnd:p,markerStart:w,interactionWidth:y})=>{const[b,S,M]=su({sourceX:t,sourceY:e,sourcePosition:s,targetX:n,targetY:r,targetPosition:o});return x.createElement(un,{path:b,labelX:S,labelY:M,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:h,style:d,markerEnd:p,markerStart:w,interactionWidth:y})});fi.displayName="SimpleBezierEdge";const Ca={[exports.Position.Left]:{x:-1,y:0},[exports.Position.Right]:{x:1,y:0},[exports.Position.Top]:{x:0,y:-1},[exports.Position.Bottom]:{x:0,y:1}},hw=({source:t,sourcePosition:e=exports.Position.Bottom,target:n})=>e===exports.Position.Left||e===exports.Position.Right?t.x<n.x?{x:1,y:0}:{x:-1,y:0}:t.y<n.y?{x:0,y:1}:{x:0,y:-1},Pa=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function fw({source:t,sourcePosition:e=exports.Position.Bottom,target:n,targetPosition:r=exports.Position.Top,center:s,offset:o}){const i=Ca[e],a=Ca[r],c={x:t.x+i.x*o,y:t.y+i.y*o},l={x:n.x+a.x*o,y:n.y+a.y*o},u=hw({source:c,sourcePosition:e,target:l}),h=u.x!==0?"x":"y",d=u[h];let p=[],w,y;const b={x:0,y:0},S={x:0,y:0},[M,_,v,k]=nu({sourceX:t.x,sourceY:t.y,targetX:n.x,targetY:n.y});if(i[h]*a[h]===-1){w=s.x??M,y=s.y??_;const D=[{x:w,y:c.y},{x:w,y:l.y}],$=[{x:c.x,y},{x:l.x,y}];i[h]===d?p=h==="x"?D:$:p=h==="x"?$:D}else{const D=[{x:c.x,y:l.y}],$=[{x:l.x,y:c.y}];if(h==="x"?p=i.x===d?$:D:p=i.y===d?D:$,e===r){const Y=Math.abs(t[h]-n[h]);if(Y<=o){const g=Math.min(o-1,o-Y);i[h]===d?b[h]=(c[h]>t[h]?-1:1)*g:S[h]=(l[h]>n[h]?-1:1)*g}}if(e!==r){const Y=h==="x"?"y":"x",g=i[h]===a[Y],A=c[Y]>l[Y],R=c[Y]<l[Y];(i[h]===1&&(!g&&A||g&&R)||i[h]!==1&&(!g&&R||g&&A))&&(p=h==="x"?D:$)}const O={x:c.x+b.x,y:c.y+b.y},Z={x:l.x+S.x,y:l.y+S.y},N=Math.max(Math.abs(O.x-p[0].x),Math.abs(Z.x-p[0].x)),U=Math.max(Math.abs(O.y-p[0].y),Math.abs(Z.y-p[0].y));N>=U?(w=(O.x+Z.x)/2,y=p[0].y):(w=p[0].x,y=(O.y+Z.y)/2)}return[[t,{x:c.x+b.x,y:c.y+b.y},...p,{x:l.x+S.x,y:l.y+S.y},n],w,y,v,k]}function dw(t,e,n,r){const s=Math.min(Pa(t,e)/2,Pa(e,n)/2,r),{x:o,y:i}=e;if(t.x===o&&o===n.x||t.y===i&&i===n.y)return`L${o} ${i}`;if(t.y===i){const l=t.x<n.x?-1:1,u=t.y<n.y?1:-1;return`L ${o+s*l},${i}Q ${o},${i} ${o},${i+s*u}`}const a=t.x<n.x?1:-1,c=t.y<n.y?-1:1;return`L ${o},${i+s*c}Q ${o},${i} ${o+s*a},${i}`}function So({sourceX:t,sourceY:e,sourcePosition:n=exports.Position.Bottom,targetX:r,targetY:s,targetPosition:o=exports.Position.Top,borderRadius:i=5,centerX:a,centerY:c,offset:l=20}){const[u,h,d,p,w]=fw({source:{x:t,y:e},sourcePosition:n,target:{x:r,y:s},targetPosition:o,center:{x:a,y:c},offset:l});return[u.reduce((b,S,M)=>{let _="";return M>0&&M<u.length-1?_=dw(u[M-1],S,u[M+1],i):_=`${M===0?"M":"L"}${S.x} ${S.y}`,b+=_,b},""),h,d,p,w]}const Es=x.memo(({sourceX:t,sourceY:e,targetX:n,targetY:r,label:s,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,sourcePosition:h=exports.Position.Bottom,targetPosition:d=exports.Position.Top,markerEnd:p,markerStart:w,pathOptions:y,interactionWidth:b})=>{const[S,M,_]=So({sourceX:t,sourceY:e,sourcePosition:h,targetX:n,targetY:r,targetPosition:d,borderRadius:y==null?void 0:y.borderRadius,offset:y==null?void 0:y.offset});return x.createElement(un,{path:S,labelX:M,labelY:_,label:s,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:p,markerStart:w,interactionWidth:b})});Es.displayName="SmoothStepEdge";const di=x.memo(t=>{var e;return x.createElement(Es,{...t,pathOptions:x.useMemo(()=>{var n;return{borderRadius:0,offset:(n=t.pathOptions)==null?void 0:n.offset}},[(e=t.pathOptions)==null?void 0:e.offset])})});di.displayName="StepEdge";function pw({sourceX:t,sourceY:e,targetX:n,targetY:r}){const[s,o,i,a]=nu({sourceX:t,sourceY:e,targetX:n,targetY:r});return[`M ${t},${e}L ${n},${r}`,s,o,i,a]}const pi=x.memo(({sourceX:t,sourceY:e,targetX:n,targetY:r,label:s,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:h,markerStart:d,interactionWidth:p})=>{const[w,y,b]=pw({sourceX:t,sourceY:e,targetX:n,targetY:r});return x.createElement(un,{path:w,labelX:y,labelY:b,label:s,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:h,markerStart:d,interactionWidth:p})});pi.displayName="StraightEdge";function mr(t,e){return t>=0?.5*t:e*25*Math.sqrt(-t)}function Ra({pos:t,x1:e,y1:n,x2:r,y2:s,c:o}){switch(t){case exports.Position.Left:return[e-mr(e-r,o),n];case exports.Position.Right:return[e+mr(r-e,o),n];case exports.Position.Top:return[e,n-mr(n-s,o)];case exports.Position.Bottom:return[e,n+mr(s-n,o)]}}function ou({sourceX:t,sourceY:e,sourcePosition:n=exports.Position.Bottom,targetX:r,targetY:s,targetPosition:o=exports.Position.Top,curvature:i=.25}){const[a,c]=Ra({pos:n,x1:t,y1:e,x2:r,y2:s,c:i}),[l,u]=Ra({pos:o,x1:r,y1:s,x2:t,y2:e,c:i}),[h,d,p,w]=ru({sourceX:t,sourceY:e,targetX:r,targetY:s,sourceControlX:a,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${t},${e} C${a},${c} ${l},${u} ${r},${s}`,h,d,p,w]}const as=x.memo(({sourceX:t,sourceY:e,targetX:n,targetY:r,sourcePosition:s=exports.Position.Bottom,targetPosition:o=exports.Position.Top,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:h,style:d,markerEnd:p,markerStart:w,pathOptions:y,interactionWidth:b})=>{const[S,M,_]=ou({sourceX:t,sourceY:e,sourcePosition:s,targetX:n,targetY:r,targetPosition:o,curvature:y==null?void 0:y.curvature});return x.createElement(un,{path:S,labelX:M,labelY:_,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:h,style:d,markerEnd:p,markerStart:w,interactionWidth:b})});as.displayName="BezierEdge";const gi=x.createContext(null),gw=gi.Provider;gi.Consumer;const mw=()=>x.useContext(gi),yw=t=>"id"in t&&"source"in t&&"target"in t,iu=({source:t,sourceHandle:e,target:n,targetHandle:r})=>`reactflow__edge-${t}${e||""}-${n}${r||""}`,vo=(t,e)=>typeof t>"u"?"":typeof t=="string"?t:`${e?`${e}__`:""}${Object.keys(t).sort().map(r=>`${r}=${t[r]}`).join("&")}`,ww=(t,e)=>e.some(n=>n.source===t.source&&n.target===t.target&&(n.sourceHandle===t.sourceHandle||!n.sourceHandle&&!t.sourceHandle)&&(n.targetHandle===t.targetHandle||!n.targetHandle&&!t.targetHandle)),au=(t,e)=>{if(!t.source||!t.target)return ss("006",St.error006()),e;let n;return yw(t)?n={...t}:n={...t,id:iu(t)},ww(n,e)?e:e.concat(n)},xw=(t,e,n,r={shouldReplaceId:!0})=>{const{id:s,...o}=t;if(!e.source||!e.target)return ss("006",St.error006()),n;if(!n.find(c=>c.id===s))return ss("007",St.error007(s)),n;const a={...o,id:r.shouldReplaceId?iu(e):s,source:e.source,target:e.target,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle};return n.filter(c=>c.id!==s).concat(a)},Sw=(t,e,n,r={shouldReplaceId:!0})=>(console.warn("[DEPRECATED] `updateEdge` is deprecated. Instead use `reconnectEdge` https://reactflow.dev/api-reference/utils/reconnect-edge"),xw(t,e,n,r)),bo=({x:t,y:e},[n,r,s],o,[i,a])=>{const c={x:(t-n)/s,y:(e-r)/s};return o?{x:i*Math.round(c.x/i),y:a*Math.round(c.y/a)}:c},cu=({x:t,y:e},[n,r,s])=>({x:t*s+n,y:e*s+r}),Fe=(t,e=[0,0])=>{if(!t)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(t.width??0)*e[0],r=(t.height??0)*e[1],s={x:t.position.x-n,y:t.position.y-r};return{...s,positionAbsolute:t.positionAbsolute?{x:t.positionAbsolute.x-n,y:t.positionAbsolute.y-r}:s}},mi=(t,e=[0,0])=>{if(t.length===0)return{x:0,y:0,width:0,height:0};const n=t.reduce((r,s)=>{const{x:o,y:i}=Fe(s,e).positionAbsolute;return aw(r,hi({x:o,y:i,width:s.width||0,height:s.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return cw(n)},lu=(t,e,[n,r,s]=[0,0,1],o=!1,i=!1,a=[0,0])=>{const c={x:(e.x-n)/s,y:(e.y-r)/s,width:e.width/s,height:e.height/s},l=[];return t.forEach(u=>{const{width:h,height:d,selectable:p=!0,hidden:w=!1}=u;if(i&&!p||w)return!1;const{positionAbsolute:y}=Fe(u,a),b={x:y.x,y:y.y,width:h||0,height:d||0},S=wo(c,b),M=typeof h>"u"||typeof d>"u"||h===null||d===null,_=o&&S>0,v=(h||0)*(d||0);(M||_||S>=v||u.dragging)&&l.push(u)}),l},uu=(t,e)=>{const n=t.map(r=>r.id);return e.filter(r=>n.includes(r.source)||n.includes(r.target))},hu=(t,e,n,r,s,o=.1)=>{const i=e/(t.width*(1+o)),a=n/(t.height*(1+o)),c=Math.min(i,a),l=sn(c,r,s),u=t.x+t.width/2,h=t.y+t.height/2,d=e/2-u*l,p=n/2-h*l;return{x:d,y:p,zoom:l}},he=(t,e=0)=>t.transition().duration(e);function Ma(t,e,n,r){return(e[n]||[]).reduce((s,o)=>{var i,a;return`${t.id}-${o.id}-${n}`!==r&&s.push({id:o.id||null,type:n,nodeId:t.id,x:(((i=t.positionAbsolute)==null?void 0:i.x)??0)+o.x+o.width/2,y:(((a=t.positionAbsolute)==null?void 0:a.y)??0)+o.y+o.height/2}),s},[])}function vw(t,e,n,r,s,o){const{x:i,y:a}=te(t),l=e.elementsFromPoint(i,a).find(w=>w.classList.contains("react-flow__handle"));if(l){const w=l.getAttribute("data-nodeid");if(w){const y=yi(void 0,l),b=l.getAttribute("data-handleid"),S=o({nodeId:w,id:b,type:y});if(S){const M=s.find(_=>_.nodeId===w&&_.type===y&&_.id===b);return{handle:{id:b,type:y,nodeId:w,x:(M==null?void 0:M.x)||n.x,y:(M==null?void 0:M.y)||n.y},validHandleResult:S}}}}let u=[],h=1/0;if(s.forEach(w=>{const y=Math.sqrt((w.x-n.x)**2+(w.y-n.y)**2);if(y<=r){const b=o(w);y<=h&&(y<h?u=[{handle:w,validHandleResult:b}]:y===h&&u.push({handle:w,validHandleResult:b}),h=y)}}),!u.length)return{handle:null,validHandleResult:fu()};if(u.length===1)return u[0];const d=u.some(({validHandleResult:w})=>w.isValid),p=u.some(({handle:w})=>w.type==="target");return u.find(({handle:w,validHandleResult:y})=>p?w.type==="target":d?y.isValid:!0)||u[0]}const bw={source:null,target:null,sourceHandle:null,targetHandle:null},fu=()=>({handleDomNode:null,isValid:!1,connection:bw,endHandle:null});function du(t,e,n,r,s,o,i){const a=s==="target",c=i.querySelector(`.react-flow__handle[data-id="${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`),l={...fu(),handleDomNode:c};if(c){const u=yi(void 0,c),h=c.getAttribute("data-nodeid"),d=c.getAttribute("data-handleid"),p=c.classList.contains("connectable"),w=c.classList.contains("connectableend"),y={source:a?h:n,sourceHandle:a?d:r,target:a?n:h,targetHandle:a?r:d};l.connection=y,p&&w&&(e===exports.ConnectionMode.Strict?a&&u==="source"||!a&&u==="target":h!==n||d!==r)&&(l.endHandle={nodeId:h,handleId:d,type:u},l.isValid=o(y))}return l}function Tw({nodes:t,nodeId:e,handleId:n,handleType:r}){return t.reduce((s,o)=>{if(o[ct]){const{handleBounds:i}=o[ct];let a=[],c=[];i&&(a=Ma(o,i,"source",`${e}-${n}-${r}`),c=Ma(o,i,"target",`${e}-${n}-${r}`)),s.push(...a,...c)}return s},[])}function yi(t,e){return t||(e!=null&&e.classList.contains("target")?"target":e!=null&&e.classList.contains("source")?"source":null)}function Vs(t){t==null||t.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Ew(t,e){let n=null;return e?n="valid":t&&!e&&(n="invalid"),n}function pu({event:t,handleId:e,nodeId:n,onConnect:r,isTarget:s,getState:o,setState:i,isValidConnection:a,edgeUpdaterType:c,onReconnectEnd:l}){const u=Ql(t.target),{connectionMode:h,domNode:d,autoPanOnConnect:p,connectionRadius:w,onConnectStart:y,panBy:b,getNodes:S,cancelConnection:M}=o();let _=0,v;const{x:k,y:C}=te(t),D=u==null?void 0:u.elementFromPoint(k,C),$=yi(c,D),O=d==null?void 0:d.getBoundingClientRect();if(!O||!$)return;let Z,N=te(t,O),U=!1,Y=null,g=!1,A=null;const R=Tw({nodes:S(),nodeId:n,handleId:e,handleType:$}),z=()=>{if(!p)return;const[I,q]=Jl(N,O);b({x:I,y:q}),_=requestAnimationFrame(z)};i({connectionPosition:N,connectionStatus:null,connectionNodeId:n,connectionHandleId:e,connectionHandleType:$,connectionStartHandle:{nodeId:n,handleId:e,type:$},connectionEndHandle:null}),y==null||y(t,{nodeId:n,handleId:e,handleType:$});function B(I){const{transform:q}=o();N=te(I,O);const{handle:F,validHandleResult:X}=vw(I,u,bo(N,q,!1,[1,1]),w,R,V=>du(V,h,n,e,s?"target":"source",a,u));if(v=F,U||(z(),U=!0),A=X.handleDomNode,Y=X.connection,g=X.isValid,i({connectionPosition:v&&g?cu({x:v.x,y:v.y},q):N,connectionStatus:Ew(!!v,g),connectionEndHandle:X.endHandle}),!v&&!g&&!A)return Vs(Z);Y.source!==Y.target&&A&&(Vs(Z),Z=A,A.classList.add("connecting","react-flow__handle-connecting"),A.classList.toggle("valid",g),A.classList.toggle("react-flow__handle-valid",g))}function P(I){var q,F;(v||A)&&Y&&g&&(r==null||r(Y)),(F=(q=o()).onConnectEnd)==null||F.call(q,I),c&&(l==null||l(I)),Vs(Z),M(),cancelAnimationFrame(_),U=!1,g=!1,Y=null,A=null,u.removeEventListener("mousemove",B),u.removeEventListener("mouseup",P),u.removeEventListener("touchmove",B),u.removeEventListener("touchend",P)}u.addEventListener("mousemove",B),u.addEventListener("mouseup",P),u.addEventListener("touchmove",B),u.addEventListener("touchend",P)}const ka=()=>!0,_w=t=>({connectionStartHandle:t.connectionStartHandle,connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName}),Cw=(t,e,n)=>r=>{const{connectionStartHandle:s,connectionEndHandle:o,connectionClickStartHandle:i}=r;return{connecting:(s==null?void 0:s.nodeId)===t&&(s==null?void 0:s.handleId)===e&&(s==null?void 0:s.type)===n||(o==null?void 0:o.nodeId)===t&&(o==null?void 0:o.handleId)===e&&(o==null?void 0:o.type)===n,clickConnecting:(i==null?void 0:i.nodeId)===t&&(i==null?void 0:i.handleId)===e&&(i==null?void 0:i.type)===n}},gu=x.forwardRef(({type:t="source",position:e=exports.Position.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:s=!0,isConnectableEnd:o=!0,id:i,onConnect:a,children:c,className:l,onMouseDown:u,onTouchStart:h,...d},p)=>{var O,Z;const w=i||null,y=t==="target",b=ht(),S=mw(),{connectOnClick:M,noPanClassName:_}=lt(_w,pt),{connecting:v,clickConnecting:k}=lt(Cw(S,w,t),pt);S||(Z=(O=b.getState()).onError)==null||Z.call(O,"010",St.error010());const C=N=>{const{defaultEdgeOptions:U,onConnect:Y,hasDefaultEdges:g}=b.getState(),A={...U,...N};if(g){const{edges:R,setEdges:z}=b.getState();z(au(A,R))}Y==null||Y(A),a==null||a(A)},D=N=>{if(!S)return;const U=eu(N);s&&(U&&N.button===0||!U)&&pu({event:N,handleId:w,nodeId:S,onConnect:C,isTarget:y,getState:b.getState,setState:b.setState,isValidConnection:n||b.getState().isValidConnection||ka}),U?u==null||u(N):h==null||h(N)},$=N=>{const{onClickConnectStart:U,onClickConnectEnd:Y,connectionClickStartHandle:g,connectionMode:A,isValidConnection:R}=b.getState();if(!S||!g&&!s)return;if(!g){U==null||U(N,{nodeId:S,handleId:w,handleType:t}),b.setState({connectionClickStartHandle:{nodeId:S,type:t,handleId:w}});return}const z=Ql(N.target),B=n||R||ka,{connection:P,isValid:I}=du({nodeId:S,id:w,type:t},A,g.nodeId,g.handleId||null,g.type,B,z);I&&C(P),Y==null||Y(N),b.setState({connectionClickStartHandle:null})};return x.createElement("div",{"data-handleid":w,"data-nodeid":S,"data-handlepos":e,"data-id":`${S}-${w}-${t}`,className:vt(["react-flow__handle",`react-flow__handle-${e}`,"nodrag",_,l,{source:!y,target:y,connectable:r,connectablestart:s,connectableend:o,connecting:k,connectionindicator:r&&(s&&!v||o&&v)}]),onMouseDown:D,onTouchStart:D,onClick:M?$:void 0,ref:p,...d},c)});gu.displayName="Handle";var Kn=x.memo(gu);const mu=({data:t,isConnectable:e,targetPosition:n=exports.Position.Top,sourcePosition:r=exports.Position.Bottom})=>x.createElement(x.Fragment,null,x.createElement(Kn,{type:"target",position:n,isConnectable:e}),t==null?void 0:t.label,x.createElement(Kn,{type:"source",position:r,isConnectable:e}));mu.displayName="DefaultNode";var To=x.memo(mu);const yu=({data:t,isConnectable:e,sourcePosition:n=exports.Position.Bottom})=>x.createElement(x.Fragment,null,t==null?void 0:t.label,x.createElement(Kn,{type:"source",position:n,isConnectable:e}));yu.displayName="InputNode";var wu=x.memo(yu);const xu=({data:t,isConnectable:e,targetPosition:n=exports.Position.Top})=>x.createElement(x.Fragment,null,x.createElement(Kn,{type:"target",position:n,isConnectable:e}),t==null?void 0:t.label);xu.displayName="OutputNode";var Su=x.memo(xu);const wi=()=>null;wi.displayName="GroupNode";const Pw=t=>({selectedNodes:t.getNodes().filter(e=>e.selected),selectedEdges:t.edges.filter(e=>e.selected).map(e=>({...e}))}),yr=t=>t.id;function Rw(t,e){return pt(t.selectedNodes.map(yr),e.selectedNodes.map(yr))&&pt(t.selectedEdges.map(yr),e.selectedEdges.map(yr))}const vu=x.memo(({onSelectionChange:t})=>{const e=ht(),{selectedNodes:n,selectedEdges:r}=lt(Pw,Rw);return x.useEffect(()=>{const s={nodes:n,edges:r};t==null||t(s),e.getState().onSelectionChange.forEach(o=>o(s))},[n,r,t]),null});vu.displayName="SelectionListener";const Mw=t=>!!t.onSelectionChange;function kw({onSelectionChange:t}){const e=lt(Mw);return t||e?x.createElement(vu,{onSelectionChange:t}):null}const Aw=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset});function ke(t,e){x.useEffect(()=>{typeof t<"u"&&e(t)},[t])}function Q(t,e,n){x.useEffect(()=>{typeof e<"u"&&n({[t]:e})},[e])}const Nw=({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,onConnect:s,onConnectStart:o,onConnectEnd:i,onClickConnectStart:a,onClickConnectEnd:c,nodesDraggable:l,nodesConnectable:u,nodesFocusable:h,edgesFocusable:d,edgesUpdatable:p,elevateNodesOnSelect:w,minZoom:y,maxZoom:b,nodeExtent:S,onNodesChange:M,onEdgesChange:_,elementsSelectable:v,connectionMode:k,snapGrid:C,snapToGrid:D,translateExtent:$,connectOnClick:O,defaultEdgeOptions:Z,fitView:N,fitViewOptions:U,onNodesDelete:Y,onEdgesDelete:g,onNodeDrag:A,onNodeDragStart:R,onNodeDragStop:z,onSelectionDrag:B,onSelectionDragStart:P,onSelectionDragStop:I,noPanClassName:q,nodeOrigin:F,rfId:X,autoPanOnConnect:V,autoPanOnNodeDrag:K,onError:tt,connectionRadius:et,isValidConnection:ot,nodeDragThreshold:H})=>{const{setNodes:W,setEdges:j,setDefaultNodesAndEdges:L,setMinZoom:it,setMaxZoom:J,setTranslateExtent:nt,setNodeExtent:at,reset:rt}=lt(Aw,pt),G=ht();return x.useEffect(()=>{const wt=r==null?void 0:r.map(se=>({...se,...Z}));return L(n,wt),()=>{rt()}},[]),Q("defaultEdgeOptions",Z,G.setState),Q("connectionMode",k,G.setState),Q("onConnect",s,G.setState),Q("onConnectStart",o,G.setState),Q("onConnectEnd",i,G.setState),Q("onClickConnectStart",a,G.setState),Q("onClickConnectEnd",c,G.setState),Q("nodesDraggable",l,G.setState),Q("nodesConnectable",u,G.setState),Q("nodesFocusable",h,G.setState),Q("edgesFocusable",d,G.setState),Q("edgesUpdatable",p,G.setState),Q("elementsSelectable",v,G.setState),Q("elevateNodesOnSelect",w,G.setState),Q("snapToGrid",D,G.setState),Q("snapGrid",C,G.setState),Q("onNodesChange",M,G.setState),Q("onEdgesChange",_,G.setState),Q("connectOnClick",O,G.setState),Q("fitViewOnInit",N,G.setState),Q("fitViewOnInitOptions",U,G.setState),Q("onNodesDelete",Y,G.setState),Q("onEdgesDelete",g,G.setState),Q("onNodeDrag",A,G.setState),Q("onNodeDragStart",R,G.setState),Q("onNodeDragStop",z,G.setState),Q("onSelectionDrag",B,G.setState),Q("onSelectionDragStart",P,G.setState),Q("onSelectionDragStop",I,G.setState),Q("noPanClassName",q,G.setState),Q("nodeOrigin",F,G.setState),Q("rfId",X,G.setState),Q("autoPanOnConnect",V,G.setState),Q("autoPanOnNodeDrag",K,G.setState),Q("onError",tt,G.setState),Q("connectionRadius",et,G.setState),Q("isValidConnection",ot,G.setState),Q("nodeDragThreshold",H,G.setState),ke(t,W),ke(e,j),ke(y,it),ke(b,J),ke($,nt),ke(S,at),null},Aa={display:"none"},Dw={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},bu="react-flow__node-desc",Tu="react-flow__edge-desc",Ow="react-flow__aria-live",zw=t=>t.ariaLiveMessage;function Iw({rfId:t}){const e=lt(zw);return x.createElement("div",{id:`${Ow}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:Dw},e)}function Lw({rfId:t,disableKeyboardA11y:e}){return x.createElement(x.Fragment,null,x.createElement("div",{id:`${bu}-${t}`,style:Aa},"Press enter or space to select a node.",!e&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),x.createElement("div",{id:`${Tu}-${t}`,style:Aa},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!e&&x.createElement(Iw,{rfId:t}))}var jn=(t=null,e={actInsideInputWithModifier:!0})=>{const[n,r]=x.useState(!1),s=x.useRef(!1),o=x.useRef(new Set([])),[i,a]=x.useMemo(()=>{if(t!==null){const l=(Array.isArray(t)?t:[t]).filter(h=>typeof h=="string").map(h=>h.split("+")),u=l.reduce((h,d)=>h.concat(...d),[]);return[l,u]}return[[],[]]},[t]);return x.useEffect(()=>{const c=typeof document<"u"?document:null,l=(e==null?void 0:e.target)||c;if(t!==null){const u=p=>{if(s.current=p.ctrlKey||p.metaKey||p.shiftKey,(!s.current||s.current&&!e.actInsideInputWithModifier)&&xo(p))return!1;const y=Da(p.code,a);o.current.add(p[y]),Na(i,o.current,!1)&&(p.preventDefault(),r(!0))},h=p=>{if((!s.current||s.current&&!e.actInsideInputWithModifier)&&xo(p))return!1;const y=Da(p.code,a);Na(i,o.current,!0)?(r(!1),o.current.clear()):o.current.delete(p[y]),p.key==="Meta"&&o.current.clear(),s.current=!1},d=()=>{o.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",u),l==null||l.addEventListener("keyup",h),window.addEventListener("blur",d),()=>{l==null||l.removeEventListener("keydown",u),l==null||l.removeEventListener("keyup",h),window.removeEventListener("blur",d)}}},[t,r]),n};function Na(t,e,n){return t.filter(r=>n||r.length===e.size).some(r=>r.every(s=>e.has(s)))}function Da(t,e){return e.includes(t)?"code":"key"}function Eu(t,e,n,r){var a,c;const s=t.parentNode||t.parentId;if(!s)return n;const o=e.get(s),i=Fe(o,r);return Eu(o,e,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(((a=o[ct])==null?void 0:a.z)??0)>(n.z??0)?((c=o[ct])==null?void 0:c.z)??0:n.z??0},r)}function _u(t,e,n){t.forEach(r=>{var o;const s=r.parentNode||r.parentId;if(s&&!t.has(s))throw new Error(`Parent node ${s} not found`);if(s||n!=null&&n[r.id]){const{x:i,y:a,z:c}=Eu(r,t,{...r.position,z:((o=r[ct])==null?void 0:o.z)??0},e);r.positionAbsolute={x:i,y:a},r[ct].z=c,n!=null&&n[r.id]&&(r[ct].isParent=!0)}})}function Xs(t,e,n,r){const s=new Map,o={},i=r?1e3:0;return t.forEach(a=>{var p;const c=(Et(a.zIndex)?a.zIndex:0)+(a.selected?i:0),l=e.get(a.id),u={...a,positionAbsolute:{x:a.position.x,y:a.position.y}},h=a.parentNode||a.parentId;h&&(o[h]=!0);const d=(l==null?void 0:l.type)&&(l==null?void 0:l.type)!==a.type;Object.defineProperty(u,ct,{enumerable:!1,value:{handleBounds:d||(p=l==null?void 0:l[ct])==null?void 0:p.handleBounds,z:c}}),s.set(a.id,u)}),_u(s,n,o),s}function Cu(t,e={}){const{getNodes:n,width:r,height:s,minZoom:o,maxZoom:i,d3Zoom:a,d3Selection:c,fitViewOnInitDone:l,fitViewOnInit:u,nodeOrigin:h}=t(),d=e.initial&&!l&&u;if(a&&c&&(d||!e.initial)){const w=n().filter(b=>{var M;const S=e.includeHiddenNodes?b.width&&b.height:!b.hidden;return(M=e.nodes)!=null&&M.length?S&&e.nodes.some(_=>_.id===b.id):S}),y=w.every(b=>b.width&&b.height);if(w.length>0&&y){const b=mi(w,h),{x:S,y:M,zoom:_}=hu(b,r,s,e.minZoom??o,e.maxZoom??i,e.padding??.1),v=Qt.translate(S,M).scale(_);return typeof e.duration=="number"&&e.duration>0?a.transform(he(c,e.duration),v):a.transform(c,v),!0}}return!1}function $w(t,e){return t.forEach(n=>{const r=e.get(n.id);r&&e.set(r.id,{...r,[ct]:r[ct],selected:n.selected})}),new Map(e)}function Yw(t,e){return e.map(n=>{const r=t.find(s=>s.id===n.id);return r&&(n.selected=r.selected),n})}function wr({changedNodes:t,changedEdges:e,get:n,set:r}){const{nodeInternals:s,edges:o,onNodesChange:i,onEdgesChange:a,hasDefaultNodes:c,hasDefaultEdges:l}=n();t!=null&&t.length&&(c&&r({nodeInternals:$w(t,s)}),i==null||i(t)),e!=null&&e.length&&(l&&r({edges:Yw(e,o)}),a==null||a(e))}const Ae=()=>{},Bw={zoomIn:Ae,zoomOut:Ae,zoomTo:Ae,getZoom:()=>1,setViewport:Ae,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:Ae,fitBounds:Ae,project:t=>t,screenToFlowPosition:t=>t,flowToScreenPosition:t=>t,viewportInitialized:!1},qw=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection}),Fw=()=>{const t=ht(),{d3Zoom:e,d3Selection:n}=lt(qw,pt);return x.useMemo(()=>n&&e?{zoomIn:s=>e.scaleBy(he(n,s==null?void 0:s.duration),1.2),zoomOut:s=>e.scaleBy(he(n,s==null?void 0:s.duration),1/1.2),zoomTo:(s,o)=>e.scaleTo(he(n,o==null?void 0:o.duration),s),getZoom:()=>t.getState().transform[2],setViewport:(s,o)=>{const[i,a,c]=t.getState().transform,l=Qt.translate(s.x??i,s.y??a).scale(s.zoom??c);e.transform(he(n,o==null?void 0:o.duration),l)},getViewport:()=>{const[s,o,i]=t.getState().transform;return{x:s,y:o,zoom:i}},fitView:s=>Cu(t.getState,s),setCenter:(s,o,i)=>{const{width:a,height:c,maxZoom:l}=t.getState(),u=typeof(i==null?void 0:i.zoom)<"u"?i.zoom:l,h=a/2-s*u,d=c/2-o*u,p=Qt.translate(h,d).scale(u);e.transform(he(n,i==null?void 0:i.duration),p)},fitBounds:(s,o)=>{const{width:i,height:a,minZoom:c,maxZoom:l}=t.getState(),{x:u,y:h,zoom:d}=hu(s,i,a,c,l,(o==null?void 0:o.padding)??.1),p=Qt.translate(u,h).scale(d);e.transform(he(n,o==null?void 0:o.duration),p)},project:s=>{const{transform:o,snapToGrid:i,snapGrid:a}=t.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),bo(s,o,i,a)},screenToFlowPosition:s=>{const{transform:o,snapToGrid:i,snapGrid:a,domNode:c}=t.getState();if(!c)return s;const{x:l,y:u}=c.getBoundingClientRect(),h={x:s.x-l,y:s.y-u};return bo(h,o,i,a)},flowToScreenPosition:s=>{const{transform:o,domNode:i}=t.getState();if(!i)return s;const{x:a,y:c}=i.getBoundingClientRect(),l=cu(s,o);return{x:l.x+a,y:l.y+c}},viewportInitialized:!0}:Bw,[e,n])};function _s(){const t=Fw(),e=ht(),n=x.useCallback(()=>e.getState().getNodes().map(y=>({...y})),[]),r=x.useCallback(y=>e.getState().nodeInternals.get(y),[]),s=x.useCallback(()=>{const{edges:y=[]}=e.getState();return y.map(b=>({...b}))},[]),o=x.useCallback(y=>{const{edges:b=[]}=e.getState();return b.find(S=>S.id===y)},[]),i=x.useCallback(y=>{const{getNodes:b,setNodes:S,hasDefaultNodes:M,onNodesChange:_}=e.getState(),v=b(),k=typeof y=="function"?y(v):y;if(M)S(k);else if(_){const C=k.length===0?v.map(D=>({type:"remove",id:D.id})):k.map(D=>({item:D,type:"reset"}));_(C)}},[]),a=x.useCallback(y=>{const{edges:b=[],setEdges:S,hasDefaultEdges:M,onEdgesChange:_}=e.getState(),v=typeof y=="function"?y(b):y;if(M)S(v);else if(_){const k=v.length===0?b.map(C=>({type:"remove",id:C.id})):v.map(C=>({item:C,type:"reset"}));_(k)}},[]),c=x.useCallback(y=>{const b=Array.isArray(y)?y:[y],{getNodes:S,setNodes:M,hasDefaultNodes:_,onNodesChange:v}=e.getState();if(_){const C=[...S(),...b];M(C)}else if(v){const k=b.map(C=>({item:C,type:"add"}));v(k)}},[]),l=x.useCallback(y=>{const b=Array.isArray(y)?y:[y],{edges:S=[],setEdges:M,hasDefaultEdges:_,onEdgesChange:v}=e.getState();if(_)M([...S,...b]);else if(v){const k=b.map(C=>({item:C,type:"add"}));v(k)}},[]),u=x.useCallback(()=>{const{getNodes:y,edges:b=[],transform:S}=e.getState(),[M,_,v]=S;return{nodes:y().map(k=>({...k})),edges:b.map(k=>({...k})),viewport:{x:M,y:_,zoom:v}}},[]),h=x.useCallback(({nodes:y,edges:b})=>{const{nodeInternals:S,getNodes:M,edges:_,hasDefaultNodes:v,hasDefaultEdges:k,onNodesDelete:C,onEdgesDelete:D,onNodesChange:$,onEdgesChange:O}=e.getState(),Z=(y||[]).map(A=>A.id),N=(b||[]).map(A=>A.id),U=M().reduce((A,R)=>{const z=R.parentNode||R.parentId,B=!Z.includes(R.id)&&z&&A.find(I=>I.id===z);return(typeof R.deletable=="boolean"?R.deletable:!0)&&(Z.includes(R.id)||B)&&A.push(R),A},[]),Y=_.filter(A=>typeof A.deletable=="boolean"?A.deletable:!0),g=Y.filter(A=>N.includes(A.id));if(U||g){const A=uu(U,Y),R=[...g,...A],z=R.reduce((B,P)=>(B.includes(P.id)||B.push(P.id),B),[]);if((k||v)&&(k&&e.setState({edges:_.filter(B=>!z.includes(B.id))}),v&&(U.forEach(B=>{S.delete(B.id)}),e.setState({nodeInternals:new Map(S)}))),z.length>0&&(D==null||D(R),O&&O(z.map(B=>({id:B,type:"remove"})))),U.length>0&&(C==null||C(U),$)){const B=U.map(P=>({id:P.id,type:"remove"}));$(B)}}},[]),d=x.useCallback(y=>{const b=lw(y),S=b?null:e.getState().nodeInternals.get(y.id);return!b&&!S?[null,null,b]:[b?y:Ea(S),S,b]},[]),p=x.useCallback((y,b=!0,S)=>{const[M,_,v]=d(y);return M?(S||e.getState().getNodes()).filter(k=>{if(!v&&(k.id===_.id||!k.positionAbsolute))return!1;const C=Ea(k),D=wo(C,M);return b&&D>0||D>=M.width*M.height}):[]},[]),w=x.useCallback((y,b,S=!0)=>{const[M]=d(y);if(!M)return!1;const _=wo(M,b);return S&&_>0||_>=M.width*M.height},[]);return x.useMemo(()=>({...t,getNodes:n,getNode:r,getEdges:s,getEdge:o,setNodes:i,setEdges:a,addNodes:c,addEdges:l,toObject:u,deleteElements:h,getIntersectingNodes:p,isNodeIntersecting:w}),[t,n,r,s,o,i,a,c,l,u,h,p,w])}const Zw={actInsideInputWithModifier:!1};var Uw=({deleteKeyCode:t,multiSelectionKeyCode:e})=>{const n=ht(),{deleteElements:r}=_s(),s=jn(t,Zw),o=jn(e);x.useEffect(()=>{if(s){const{edges:i,getNodes:a}=n.getState(),c=a().filter(u=>u.selected),l=i.filter(u=>u.selected);r({nodes:c,edges:l}),n.setState({nodesSelectionActive:!1})}},[s]),x.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])};function Hw(t){const e=ht();x.useEffect(()=>{let n;const r=()=>{var o,i;if(!t.current)return;const s=li(t.current);(s.height===0||s.width===0)&&((i=(o=e.getState()).onError)==null||i.call(o,"004",St.error004())),e.setState({width:s.width||500,height:s.height||500})};return r(),window.addEventListener("resize",r),t.current&&(n=new ResizeObserver(()=>r()),n.observe(t.current)),()=>{window.removeEventListener("resize",r),n&&t.current&&n.unobserve(t.current)}},[])}const xi={position:"absolute",width:"100%",height:"100%",top:0,left:0},Vw=(t,e)=>t.x!==e.x||t.y!==e.y||t.zoom!==e.k,xr=t=>({x:t.x,y:t.y,zoom:t.k}),Ne=(t,e)=>t.target.closest(`.${e}`),Oa=(t,e)=>e===2&&Array.isArray(t)&&t.includes(2),za=t=>{const e=t.ctrlKey&&os()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*e},Xw=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection,d3ZoomHandler:t.d3ZoomHandler,userSelectionActive:t.userSelectionActive}),Ww=({onMove:t,onMoveStart:e,onMoveEnd:n,onPaneContextMenu:r,zoomOnScroll:s=!0,zoomOnPinch:o=!0,panOnScroll:i=!1,panOnScrollSpeed:a=.5,panOnScrollMode:c=pe.Free,zoomOnDoubleClick:l=!0,elementsSelectable:u,panOnDrag:h=!0,defaultViewport:d,translateExtent:p,minZoom:w,maxZoom:y,zoomActivationKeyCode:b,preventScrolling:S=!0,children:M,noWheelClassName:_,noPanClassName:v})=>{const k=x.useRef(),C=ht(),D=x.useRef(!1),$=x.useRef(!1),O=x.useRef(null),Z=x.useRef({x:0,y:0,zoom:0}),{d3Zoom:N,d3Selection:U,d3ZoomHandler:Y,userSelectionActive:g}=lt(Xw,pt),A=jn(b),R=x.useRef(0),z=x.useRef(!1),B=x.useRef();return Hw(O),x.useEffect(()=>{if(O.current){const P=O.current.getBoundingClientRect(),I=tw().scaleExtent([w,y]).translateExtent(p),q=Mt(O.current).call(I),F=Qt.translate(d.x,d.y).scale(sn(d.zoom,w,y)),X=[[0,0],[P.width,P.height]],V=I.constrain()(F,X,p);I.transform(q,V),I.wheelDelta(za),C.setState({d3Zoom:I,d3Selection:q,d3ZoomHandler:q.on("wheel.zoom"),transform:[V.x,V.y,V.k],domNode:O.current.closest(".react-flow")})}},[]),x.useEffect(()=>{U&&N&&(i&&!A&&!g?U.on("wheel.zoom",P=>{if(Ne(P,_))return!1;P.preventDefault(),P.stopImmediatePropagation();const I=U.property("__zoom").k||1;if(P.ctrlKey&&o){const ot=Ot(P),H=za(P),W=I*Math.pow(2,H);N.scaleTo(U,W,ot,P);return}const q=P.deltaMode===1?20:1;let F=c===pe.Vertical?0:P.deltaX*q,X=c===pe.Horizontal?0:P.deltaY*q;!os()&&P.shiftKey&&c!==pe.Vertical&&(F=P.deltaY*q,X=0),N.translateBy(U,-(F/I)*a,-(X/I)*a,{internal:!0});const V=xr(U.property("__zoom")),{onViewportChangeStart:K,onViewportChange:tt,onViewportChangeEnd:et}=C.getState();clearTimeout(B.current),z.current||(z.current=!0,e==null||e(P,V),K==null||K(V)),z.current&&(t==null||t(P,V),tt==null||tt(V),B.current=setTimeout(()=>{n==null||n(P,V),et==null||et(V),z.current=!1},150))},{passive:!1}):typeof Y<"u"&&U.on("wheel.zoom",function(P,I){if(!S&&P.type==="wheel"&&!P.ctrlKey||Ne(P,_))return null;P.preventDefault(),Y.call(this,P,I)},{passive:!1}))},[g,i,c,U,N,Y,A,o,S,_,e,t,n]),x.useEffect(()=>{N&&N.on("start",P=>{var F,X;if(!P.sourceEvent||P.sourceEvent.internal)return null;R.current=(F=P.sourceEvent)==null?void 0:F.button;const{onViewportChangeStart:I}=C.getState(),q=xr(P.transform);D.current=!0,Z.current=q,((X=P.sourceEvent)==null?void 0:X.type)==="mousedown"&&C.setState({paneDragging:!0}),I==null||I(q),e==null||e(P.sourceEvent,q)})},[N,e]),x.useEffect(()=>{N&&(g&&!D.current?N.on("zoom",null):g||N.on("zoom",P=>{var q;const{onViewportChange:I}=C.getState();if(C.setState({transform:[P.transform.x,P.transform.y,P.transform.k]}),$.current=!!(r&&Oa(h,R.current??0)),(t||I)&&!((q=P.sourceEvent)!=null&&q.internal)){const F=xr(P.transform);I==null||I(F),t==null||t(P.sourceEvent,F)}}))},[g,N,t,h,r]),x.useEffect(()=>{N&&N.on("end",P=>{if(!P.sourceEvent||P.sourceEvent.internal)return null;const{onViewportChangeEnd:I}=C.getState();if(D.current=!1,C.setState({paneDragging:!1}),r&&Oa(h,R.current??0)&&!$.current&&r(P.sourceEvent),$.current=!1,(n||I)&&Vw(Z.current,P.transform)){const q=xr(P.transform);Z.current=q,clearTimeout(k.current),k.current=setTimeout(()=>{I==null||I(q),n==null||n(P.sourceEvent,q)},i?150:0)}})},[N,i,h,n,r]),x.useEffect(()=>{N&&N.filter(P=>{const I=A||s,q=o&&P.ctrlKey;if((h===!0||Array.isArray(h)&&h.includes(1))&&P.button===1&&P.type==="mousedown"&&(Ne(P,"react-flow__node")||Ne(P,"react-flow__edge")))return!0;if(!h&&!I&&!i&&!l&&!o||g||!l&&P.type==="dblclick"||Ne(P,_)&&P.type==="wheel"||Ne(P,v)&&(P.type!=="wheel"||i&&P.type==="wheel"&&!A)||!o&&P.ctrlKey&&P.type==="wheel"||!I&&!i&&!q&&P.type==="wheel"||!h&&(P.type==="mousedown"||P.type==="touchstart")||Array.isArray(h)&&!h.includes(P.button)&&P.type==="mousedown")return!1;const F=Array.isArray(h)&&h.includes(P.button)||!P.button||P.button<=1;return(!P.ctrlKey||P.type==="wheel")&&F})},[g,N,s,o,i,l,h,u,A]),x.createElement("div",{className:"react-flow__renderer",ref:O,style:xi},M)},Gw=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function Kw(){const{userSelectionActive:t,userSelectionRect:e}=lt(Gw,pt);return t&&e?x.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:e.width,height:e.height,transform:`translate(${e.x}px, ${e.y}px)`}}):null}function Ia(t,e){const n=e.parentNode||e.parentId,r=t.find(s=>s.id===n);if(r){const s=e.position.x+e.width-r.width,o=e.position.y+e.height-r.height;if(s>0||o>0||e.position.x<0||e.position.y<0){if(r.style={...r.style},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,s>0&&(r.style.width+=s),o>0&&(r.style.height+=o),e.position.x<0){const i=Math.abs(e.position.x);r.position.x=r.position.x-i,r.style.width+=i,e.position.x=0}if(e.position.y<0){const i=Math.abs(e.position.y);r.position.y=r.position.y-i,r.style.height+=i,e.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function Pu(t,e){if(t.some(r=>r.type==="reset"))return t.filter(r=>r.type==="reset").map(r=>r.item);const n=t.filter(r=>r.type==="add").map(r=>r.item);return e.reduce((r,s)=>{const o=t.filter(a=>a.id===s.id);if(o.length===0)return r.push(s),r;const i={...s};for(const a of o)if(a)switch(a.type){case"select":{i.selected=a.selected;break}case"position":{typeof a.position<"u"&&(i.position=a.position),typeof a.positionAbsolute<"u"&&(i.positionAbsolute=a.positionAbsolute),typeof a.dragging<"u"&&(i.dragging=a.dragging),i.expandParent&&Ia(r,i);break}case"dimensions":{typeof a.dimensions<"u"&&(i.width=a.dimensions.width,i.height=a.dimensions.height),typeof a.updateStyle<"u"&&(i.style={...i.style||{},...a.dimensions}),typeof a.resizing=="boolean"&&(i.resizing=a.resizing),i.expandParent&&Ia(r,i);break}case"remove":return r}return r.push(i),r},n)}function Ru(t,e){return Pu(t,e)}function jw(t,e){return Pu(t,e)}const Gt=(t,e)=>({id:t,type:"select",selected:e});function Ie(t,e){return t.reduce((n,r)=>{const s=e.includes(r.id);return!r.selected&&s?(r.selected=!0,n.push(Gt(r.id,!0))):r.selected&&!s&&(r.selected=!1,n.push(Gt(r.id,!1))),n},[])}const Ws=(t,e)=>n=>{n.target===e.current&&(t==null||t(n))},Jw=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging}),Mu=x.memo(({isSelecting:t,selectionMode:e=exports.SelectionMode.Full,panOnDrag:n,onSelectionStart:r,onSelectionEnd:s,onPaneClick:o,onPaneContextMenu:i,onPaneScroll:a,onPaneMouseEnter:c,onPaneMouseMove:l,onPaneMouseLeave:u,children:h})=>{const d=x.useRef(null),p=ht(),w=x.useRef(0),y=x.useRef(0),b=x.useRef(),{userSelectionActive:S,elementsSelectable:M,dragging:_}=lt(Jw,pt),v=()=>{p.setState({userSelectionActive:!1,userSelectionRect:null}),w.current=0,y.current=0},k=Y=>{o==null||o(Y),p.getState().resetSelectedElements(),p.setState({nodesSelectionActive:!1})},C=Y=>{if(Array.isArray(n)&&(n!=null&&n.includes(2))){Y.preventDefault();return}i==null||i(Y)},D=a?Y=>a(Y):void 0,$=Y=>{const{resetSelectedElements:g,domNode:A}=p.getState();if(b.current=A==null?void 0:A.getBoundingClientRect(),!M||!t||Y.button!==0||Y.target!==d.current||!b.current)return;const{x:R,y:z}=te(Y,b.current);g(),p.setState({userSelectionRect:{width:0,height:0,startX:R,startY:z,x:R,y:z}}),r==null||r(Y)},O=Y=>{const{userSelectionRect:g,nodeInternals:A,edges:R,transform:z,onNodesChange:B,onEdgesChange:P,nodeOrigin:I,getNodes:q}=p.getState();if(!t||!b.current||!g)return;p.setState({userSelectionActive:!0,nodesSelectionActive:!1});const F=te(Y,b.current),X=g.startX??0,V=g.startY??0,K={...g,x:F.x<X?F.x:X,y:F.y<V?F.y:V,width:Math.abs(F.x-X),height:Math.abs(F.y-V)},tt=q(),et=lu(A,K,z,e===exports.SelectionMode.Partial,!0,I),ot=uu(et,R).map(W=>W.id),H=et.map(W=>W.id);if(w.current!==H.length){w.current=H.length;const W=Ie(tt,H);W.length&&(B==null||B(W))}if(y.current!==ot.length){y.current=ot.length;const W=Ie(R,ot);W.length&&(P==null||P(W))}p.setState({userSelectionRect:K})},Z=Y=>{if(Y.button!==0)return;const{userSelectionRect:g}=p.getState();!S&&g&&Y.target===d.current&&(k==null||k(Y)),p.setState({nodesSelectionActive:w.current>0}),v(),s==null||s(Y)},N=Y=>{S&&(p.setState({nodesSelectionActive:w.current>0}),s==null||s(Y)),v()},U=M&&(t||S);return x.createElement("div",{className:vt(["react-flow__pane",{dragging:_,selection:t}]),onClick:U?void 0:Ws(k,d),onContextMenu:Ws(C,d),onWheel:Ws(D,d),onMouseEnter:U?void 0:c,onMouseDown:U?$:void 0,onMouseMove:U?O:l,onMouseUp:U?Z:void 0,onMouseLeave:U?N:u,ref:d,style:xi},h,x.createElement(Kw,null))});Mu.displayName="Pane";function ku(t,e){const n=t.parentNode||t.parentId;if(!n)return!1;const r=e.get(n);return r?r.selected?!0:ku(r,e):!1}function La(t,e,n){let r=t;do{if(r!=null&&r.matches(e))return!0;if(r===n.current)return!1;r=r.parentElement}while(r);return!1}function Qw(t,e,n,r){return Array.from(t.values()).filter(s=>(s.selected||s.id===r)&&(!s.parentNode||s.parentId||!ku(s,t))&&(s.draggable||e&&typeof s.draggable>"u")).map(s=>{var o,i;return{id:s.id,position:s.position||{x:0,y:0},positionAbsolute:s.positionAbsolute||{x:0,y:0},distance:{x:n.x-(((o=s.positionAbsolute)==null?void 0:o.x)??0),y:n.y-(((i=s.positionAbsolute)==null?void 0:i.y)??0)},delta:{x:0,y:0},extent:s.extent,parentNode:s.parentNode||s.parentId,parentId:s.parentNode||s.parentId,width:s.width,height:s.height,expandParent:s.expandParent}})}function tx(t,e){return!e||e==="parent"?e:[e[0],[e[1][0]-(t.width||0),e[1][1]-(t.height||0)]]}function Au(t,e,n,r,s=[0,0],o){const i=tx(t,t.extent||r);let a=i;const c=t.parentNode||t.parentId;if(t.extent==="parent"&&!t.expandParent)if(c&&t.width&&t.height){const h=n.get(c),{x:d,y:p}=Fe(h,s).positionAbsolute;a=h&&Et(d)&&Et(p)&&Et(h.width)&&Et(h.height)?[[d+t.width*s[0],p+t.height*s[1]],[d+h.width-t.width+t.width*s[0],p+h.height-t.height+t.height*s[1]]]:a}else o==null||o("005",St.error005()),a=i;else if(t.extent&&c&&t.extent!=="parent"){const h=n.get(c),{x:d,y:p}=Fe(h,s).positionAbsolute;a=[[t.extent[0][0]+d,t.extent[0][1]+p],[t.extent[1][0]+d,t.extent[1][1]+p]]}let l={x:0,y:0};if(c){const h=n.get(c);l=Fe(h,s).positionAbsolute}const u=a&&a!=="parent"?ui(e,a):e;return{position:{x:u.x-l.x,y:u.y-l.y},positionAbsolute:u}}function Gs({nodeId:t,dragItems:e,nodeInternals:n}){const r=e.map(s=>({...n.get(s.id),position:s.position,positionAbsolute:s.positionAbsolute}));return[t?r.find(s=>s.id===t):r[0],r]}const $a=(t,e,n,r)=>{const s=e.querySelectorAll(t);if(!s||!s.length)return null;const o=Array.from(s),i=e.getBoundingClientRect(),a={x:i.width*r[0],y:i.height*r[1]};return o.map(c=>{const l=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),position:c.getAttribute("data-handlepos"),x:(l.left-i.left-a.x)/n,y:(l.top-i.top-a.y)/n,...li(c)}})};function vn(t,e,n){return n===void 0?n:r=>{const s=e().nodeInternals.get(t);s&&n(r,{...s})}}function Eo({id:t,store:e,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:s,unselectNodesAndEdges:o,multiSelectionActive:i,nodeInternals:a,onError:c}=e.getState(),l=a.get(t);if(!l){c==null||c("012",St.error012(t));return}e.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&i)&&(o({nodes:[l],edges:[]}),requestAnimationFrame(()=>{var u;return(u=r==null?void 0:r.current)==null?void 0:u.blur()})):s([t])}function ex(){const t=ht();return x.useCallback(({sourceEvent:n})=>{const{transform:r,snapGrid:s,snapToGrid:o}=t.getState(),i=n.touches?n.touches[0].clientX:n.clientX,a=n.touches?n.touches[0].clientY:n.clientY,c={x:(i-r[0])/r[2],y:(a-r[1])/r[2]};return{xSnapped:o?s[0]*Math.round(c.x/s[0]):c.x,ySnapped:o?s[1]*Math.round(c.y/s[1]):c.y,...c}},[])}function Ks(t){return(e,n,r)=>t==null?void 0:t(e,r)}function Nu({nodeRef:t,disabled:e=!1,noDragClassName:n,handleSelector:r,nodeId:s,isSelectable:o,selectNodesOnDrag:i}){const a=ht(),[c,l]=x.useState(!1),u=x.useRef([]),h=x.useRef({x:null,y:null}),d=x.useRef(0),p=x.useRef(null),w=x.useRef({x:0,y:0}),y=x.useRef(null),b=x.useRef(!1),S=x.useRef(!1),M=x.useRef(!1),_=ex();return x.useEffect(()=>{if(t!=null&&t.current){const v=Mt(t.current),k=({x:$,y:O})=>{const{nodeInternals:Z,onNodeDrag:N,onSelectionDrag:U,updateNodePositions:Y,nodeExtent:g,snapGrid:A,snapToGrid:R,nodeOrigin:z,onError:B}=a.getState();h.current={x:$,y:O};let P=!1,I={x:0,y:0,x2:0,y2:0};if(u.current.length>1&&g){const F=mi(u.current,z);I=hi(F)}if(u.current=u.current.map(F=>{const X={x:$-F.distance.x,y:O-F.distance.y};R&&(X.x=A[0]*Math.round(X.x/A[0]),X.y=A[1]*Math.round(X.y/A[1]));const V=[[g[0][0],g[0][1]],[g[1][0],g[1][1]]];u.current.length>1&&g&&!F.extent&&(V[0][0]=F.positionAbsolute.x-I.x+g[0][0],V[1][0]=F.positionAbsolute.x+(F.width??0)-I.x2+g[1][0],V[0][1]=F.positionAbsolute.y-I.y+g[0][1],V[1][1]=F.positionAbsolute.y+(F.height??0)-I.y2+g[1][1]);const K=Au(F,X,Z,V,z,B);return P=P||F.position.x!==K.position.x||F.position.y!==K.position.y,F.position=K.position,F.positionAbsolute=K.positionAbsolute,F}),!P)return;Y(u.current,!0,!0),l(!0);const q=s?N:Ks(U);if(q&&y.current){const[F,X]=Gs({nodeId:s,dragItems:u.current,nodeInternals:Z});q(y.current,F,X)}},C=()=>{if(!p.current)return;const[$,O]=Jl(w.current,p.current);if($!==0||O!==0){const{transform:Z,panBy:N}=a.getState();h.current.x=(h.current.x??0)-$/Z[2],h.current.y=(h.current.y??0)-O/Z[2],N({x:$,y:O})&&k(h.current)}d.current=requestAnimationFrame(C)},D=$=>{var z;const{nodeInternals:O,multiSelectionActive:Z,nodesDraggable:N,unselectNodesAndEdges:U,onNodeDragStart:Y,onSelectionDragStart:g}=a.getState();S.current=!0;const A=s?Y:Ks(g);(!i||!o)&&!Z&&s&&((z=O.get(s))!=null&&z.selected||U()),s&&o&&i&&Eo({id:s,store:a,nodeRef:t});const R=_($);if(h.current=R,u.current=Qw(O,N,R,s),A&&u.current){const[B,P]=Gs({nodeId:s,dragItems:u.current,nodeInternals:O});A($.sourceEvent,B,P)}};if(e)v.on(".drag",null);else{const $=Iy().on("start",O=>{const{domNode:Z,nodeDragThreshold:N}=a.getState();N===0&&D(O),M.current=!1;const U=_(O);h.current=U,p.current=(Z==null?void 0:Z.getBoundingClientRect())||null,w.current=te(O.sourceEvent,p.current)}).on("drag",O=>{var Y,g;const Z=_(O),{autoPanOnNodeDrag:N,nodeDragThreshold:U}=a.getState();if(O.sourceEvent.type==="touchmove"&&O.sourceEvent.touches.length>1&&(M.current=!0),!M.current){if(!b.current&&S.current&&N&&(b.current=!0,C()),!S.current){const A=Z.xSnapped-(((Y=h==null?void 0:h.current)==null?void 0:Y.x)??0),R=Z.ySnapped-(((g=h==null?void 0:h.current)==null?void 0:g.y)??0);Math.sqrt(A*A+R*R)>U&&D(O)}(h.current.x!==Z.xSnapped||h.current.y!==Z.ySnapped)&&u.current&&S.current&&(y.current=O.sourceEvent,w.current=te(O.sourceEvent,p.current),k(Z))}}).on("end",O=>{if(!(!S.current||M.current)&&(l(!1),b.current=!1,S.current=!1,cancelAnimationFrame(d.current),u.current)){const{updateNodePositions:Z,nodeInternals:N,onNodeDragStop:U,onSelectionDragStop:Y}=a.getState(),g=s?U:Ks(Y);if(Z(u.current,!1,!1),g){const[A,R]=Gs({nodeId:s,dragItems:u.current,nodeInternals:N});g(O.sourceEvent,A,R)}}}).filter(O=>{const Z=O.target;return!O.button&&(!n||!La(Z,`.${n}`,t))&&(!r||La(Z,r,t))});return v.call($),()=>{v.on(".drag",null)}}}},[t,e,n,r,o,a,s,i,_]),c}function Du(){const t=ht();return x.useCallback(n=>{const{nodeInternals:r,nodeExtent:s,updateNodePositions:o,getNodes:i,snapToGrid:a,snapGrid:c,onError:l,nodesDraggable:u}=t.getState(),h=i().filter(M=>M.selected&&(M.draggable||u&&typeof M.draggable>"u")),d=a?c[0]:5,p=a?c[1]:5,w=n.isShiftPressed?4:1,y=n.x*d*w,b=n.y*p*w,S=h.map(M=>{if(M.positionAbsolute){const _={x:M.positionAbsolute.x+y,y:M.positionAbsolute.y+b};a&&(_.x=c[0]*Math.round(_.x/c[0]),_.y=c[1]*Math.round(_.y/c[1]));const{positionAbsolute:v,position:k}=Au(M,_,r,s,void 0,l);M.position=k,M.positionAbsolute=v}return M});o(S,!0,!1)},[])}const Ze={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var bn=t=>{const e=({id:n,type:r,data:s,xPos:o,yPos:i,xPosOrigin:a,yPosOrigin:c,selected:l,onClick:u,onMouseEnter:h,onMouseMove:d,onMouseLeave:p,onContextMenu:w,onDoubleClick:y,style:b,className:S,isDraggable:M,isSelectable:_,isConnectable:v,isFocusable:k,selectNodesOnDrag:C,sourcePosition:D,targetPosition:$,hidden:O,resizeObserver:Z,dragHandle:N,zIndex:U,isParent:Y,noDragClassName:g,noPanClassName:A,initialized:R,disableKeyboardA11y:z,ariaLabel:B,rfId:P,hasHandleBounds:I})=>{const q=ht(),F=x.useRef(null),X=x.useRef(null),V=x.useRef(D),K=x.useRef($),tt=x.useRef(r),et=_||M||u||h||d||p,ot=Du(),H=vn(n,q.getState,h),W=vn(n,q.getState,d),j=vn(n,q.getState,p),L=vn(n,q.getState,w),it=vn(n,q.getState,y),J=rt=>{const{nodeDragThreshold:G}=q.getState();if(_&&(!C||!M||G>0)&&Eo({id:n,store:q,nodeRef:F}),u){const wt=q.getState().nodeInternals.get(n);wt&&u(rt,{...wt})}},nt=rt=>{if(!xo(rt)&&!z)if(tu.includes(rt.key)&&_){const G=rt.key==="Escape";Eo({id:n,store:q,unselect:G,nodeRef:F})}else M&&l&&Object.prototype.hasOwnProperty.call(Ze,rt.key)&&(q.setState({ariaLiveMessage:`Moved selected node ${rt.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~o}, y: ${~~i}`}),ot({x:Ze[rt.key].x,y:Ze[rt.key].y,isShiftPressed:rt.shiftKey}))};x.useEffect(()=>()=>{X.current&&(Z==null||Z.unobserve(X.current),X.current=null)},[]),x.useEffect(()=>{if(F.current&&!O){const rt=F.current;(!R||!I||X.current!==rt)&&(X.current&&(Z==null||Z.unobserve(X.current)),Z==null||Z.observe(rt),X.current=rt)}},[O,R,I]),x.useEffect(()=>{const rt=tt.current!==r,G=V.current!==D,wt=K.current!==$;F.current&&(rt||G||wt)&&(rt&&(tt.current=r),G&&(V.current=D),wt&&(K.current=$),q.getState().updateNodeDimensions([{id:n,nodeElement:F.current,forceUpdate:!0}]))},[n,r,D,$]);const at=Nu({nodeRef:F,disabled:O||!M,noDragClassName:g,handleSelector:N,nodeId:n,isSelectable:_,selectNodesOnDrag:C});return O?null:x.createElement("div",{className:vt(["react-flow__node",`react-flow__node-${r}`,{[A]:M},S,{selected:l,selectable:_,parent:Y,dragging:at}]),ref:F,style:{zIndex:U,transform:`translate(${a}px,${c}px)`,pointerEvents:et?"all":"none",visibility:R?"visible":"hidden",...b},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:H,onMouseMove:W,onMouseLeave:j,onContextMenu:L,onClick:J,onDoubleClick:it,onKeyDown:k?nt:void 0,tabIndex:k?0:void 0,role:k?"button":void 0,"aria-describedby":z?void 0:`${bu}-${P}`,"aria-label":B},x.createElement(gw,{value:n},x.createElement(t,{id:n,data:s,type:r,xPos:o,yPos:i,selected:l,isConnectable:v,sourcePosition:D,targetPosition:$,dragging:at,dragHandle:N,zIndex:U})))};return e.displayName="NodeWrapper",x.memo(e)};const nx=t=>{const e=t.getNodes().filter(n=>n.selected);return{...mi(e,t.nodeOrigin),transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`,userSelectionActive:t.userSelectionActive}};function rx({onSelectionContextMenu:t,noPanClassName:e,disableKeyboardA11y:n}){const r=ht(),{width:s,height:o,x:i,y:a,transformString:c,userSelectionActive:l}=lt(nx,pt),u=Du(),h=x.useRef(null);if(x.useEffect(()=>{var w;n||(w=h.current)==null||w.focus({preventScroll:!0})},[n]),Nu({nodeRef:h}),l||!s||!o)return null;const d=t?w=>{const y=r.getState().getNodes().filter(b=>b.selected);t(w,y)}:void 0,p=w=>{Object.prototype.hasOwnProperty.call(Ze,w.key)&&u({x:Ze[w.key].x,y:Ze[w.key].y,isShiftPressed:w.shiftKey})};return x.createElement("div",{className:vt(["react-flow__nodesselection","react-flow__container",e]),style:{transform:c}},x.createElement("div",{ref:h,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:p,style:{width:s,height:o,top:a,left:i}}))}var sx=x.memo(rx);const ox=t=>t.nodesSelectionActive,Ou=({children:t,onPaneClick:e,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,deleteKeyCode:a,onMove:c,onMoveStart:l,onMoveEnd:u,selectionKeyCode:h,selectionOnDrag:d,selectionMode:p,onSelectionStart:w,onSelectionEnd:y,multiSelectionKeyCode:b,panActivationKeyCode:S,zoomActivationKeyCode:M,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:k,panOnScroll:C,panOnScrollSpeed:D,panOnScrollMode:$,zoomOnDoubleClick:O,panOnDrag:Z,defaultViewport:N,translateExtent:U,minZoom:Y,maxZoom:g,preventScrolling:A,onSelectionContextMenu:R,noWheelClassName:z,noPanClassName:B,disableKeyboardA11y:P})=>{const I=lt(ox),q=jn(h),F=jn(S),X=F||Z,V=F||C,K=q||d&&X!==!0;return Uw({deleteKeyCode:a,multiSelectionKeyCode:b}),x.createElement(Ww,{onMove:c,onMoveStart:l,onMoveEnd:u,onPaneContextMenu:o,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:k,panOnScroll:V,panOnScrollSpeed:D,panOnScrollMode:$,zoomOnDoubleClick:O,panOnDrag:!q&&X,defaultViewport:N,translateExtent:U,minZoom:Y,maxZoom:g,zoomActivationKeyCode:M,preventScrolling:A,noWheelClassName:z,noPanClassName:B},x.createElement(Mu,{onSelectionStart:w,onSelectionEnd:y,onPaneClick:e,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,panOnDrag:X,isSelecting:!!K,selectionMode:p},t,I&&x.createElement(sx,{onSelectionContextMenu:R,noPanClassName:B,disableKeyboardA11y:P})))};Ou.displayName="FlowRenderer";var ix=x.memo(Ou);function ax(t){return lt(x.useCallback(n=>t?lu(n.nodeInternals,{x:0,y:0,width:n.width,height:n.height},n.transform,!0):n.getNodes(),[t]))}function cx(t){const e={input:bn(t.input||wu),default:bn(t.default||To),output:bn(t.output||Su),group:bn(t.group||wi)},n={},r=Object.keys(t).filter(s=>!["input","default","output","group"].includes(s)).reduce((s,o)=>(s[o]=bn(t[o]||To),s),n);return{...e,...r}}const lx=({x:t,y:e,width:n,height:r,origin:s})=>!n||!r?{x:t,y:e}:s[0]<0||s[1]<0||s[0]>1||s[1]>1?{x:t,y:e}:{x:t-n*s[0],y:e-r*s[1]},ux=t=>({nodesDraggable:t.nodesDraggable,nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,updateNodeDimensions:t.updateNodeDimensions,onError:t.onError}),zu=t=>{const{nodesDraggable:e,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,updateNodeDimensions:o,onError:i}=lt(ux,pt),a=ax(t.onlyRenderVisibleElements),c=x.useRef(),l=x.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const u=new ResizeObserver(h=>{const d=h.map(p=>({id:p.target.getAttribute("data-id"),nodeElement:p.target,forceUpdate:!0}));o(d)});return c.current=u,u},[]);return x.useEffect(()=>()=>{var u;(u=c==null?void 0:c.current)==null||u.disconnect()},[]),x.createElement("div",{className:"react-flow__nodes",style:xi},a.map(u=>{var k,C,D;let h=u.type||"default";t.nodeTypes[h]||(i==null||i("003",St.error003(h)),h="default");const d=t.nodeTypes[h]||t.nodeTypes.default,p=!!(u.draggable||e&&typeof u.draggable>"u"),w=!!(u.selectable||s&&typeof u.selectable>"u"),y=!!(u.connectable||n&&typeof u.connectable>"u"),b=!!(u.focusable||r&&typeof u.focusable>"u"),S=t.nodeExtent?ui(u.positionAbsolute,t.nodeExtent):u.positionAbsolute,M=(S==null?void 0:S.x)??0,_=(S==null?void 0:S.y)??0,v=lx({x:M,y:_,width:u.width??0,height:u.height??0,origin:t.nodeOrigin});return x.createElement(d,{key:u.id,id:u.id,className:u.className,style:u.style,type:h,data:u.data,sourcePosition:u.sourcePosition||exports.Position.Bottom,targetPosition:u.targetPosition||exports.Position.Top,hidden:u.hidden,xPos:M,yPos:_,xPosOrigin:v.x,yPosOrigin:v.y,selectNodesOnDrag:t.selectNodesOnDrag,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,selected:!!u.selected,isDraggable:p,isSelectable:w,isConnectable:y,isFocusable:b,resizeObserver:l,dragHandle:u.dragHandle,zIndex:((k=u[ct])==null?void 0:k.z)??0,isParent:!!((C=u[ct])!=null&&C.isParent),noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,initialized:!!u.width&&!!u.height,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,ariaLabel:u.ariaLabel,hasHandleBounds:!!((D=u[ct])!=null&&D.handleBounds)})}))};zu.displayName="NodeRenderer";var hx=x.memo(zu);const fx=(t,e,n)=>n===exports.Position.Left?t-e:n===exports.Position.Right?t+e:t,dx=(t,e,n)=>n===exports.Position.Top?t-e:n===exports.Position.Bottom?t+e:t,Ya="react-flow__edgeupdater",Ba=({position:t,centerX:e,centerY:n,radius:r=10,onMouseDown:s,onMouseEnter:o,onMouseOut:i,type:a})=>x.createElement("circle",{onMouseDown:s,onMouseEnter:o,onMouseOut:i,className:vt([Ya,`${Ya}-${a}`]),cx:fx(e,r,t),cy:dx(n,r,t),r,stroke:"transparent",fill:"transparent"}),px=()=>!0;var De=t=>{const e=({id:n,className:r,type:s,data:o,onClick:i,onEdgeDoubleClick:a,selected:c,animated:l,label:u,labelStyle:h,labelShowBg:d,labelBgStyle:p,labelBgPadding:w,labelBgBorderRadius:y,style:b,source:S,target:M,sourceX:_,sourceY:v,targetX:k,targetY:C,sourcePosition:D,targetPosition:$,elementsSelectable:O,hidden:Z,sourceHandleId:N,targetHandleId:U,onContextMenu:Y,onMouseEnter:g,onMouseMove:A,onMouseLeave:R,reconnectRadius:z,onReconnect:B,onReconnectStart:P,onReconnectEnd:I,markerEnd:q,markerStart:F,rfId:X,ariaLabel:V,isFocusable:K,isReconnectable:tt,pathOptions:et,interactionWidth:ot,disableKeyboardA11y:H})=>{const W=x.useRef(null),[j,L]=x.useState(!1),[it,J]=x.useState(!1),nt=ht(),at=x.useMemo(()=>`url('#${vo(F,X)}')`,[F,X]),rt=x.useMemo(()=>`url('#${vo(q,X)}')`,[q,X]);if(Z)return null;const G=dt=>{var Nt;const{edges:Ct,addSelectedEdges:ae,unselectNodesAndEdges:ce,multiSelectionActive:le}=nt.getState(),Bt=Ct.find(dn=>dn.id===n);Bt&&(O&&(nt.setState({nodesSelectionActive:!1}),Bt.selected&&le?(ce({nodes:[],edges:[Bt]}),(Nt=W.current)==null||Nt.blur()):ae([n])),i&&i(dt,Bt))},wt=Sn(n,nt.getState,a),se=Sn(n,nt.getState,Y),hn=Sn(n,nt.getState,g),Ee=Sn(n,nt.getState,A),_e=Sn(n,nt.getState,R),Yt=(dt,Ct)=>{if(dt.button!==0)return;const{edges:ae,isValidConnection:ce}=nt.getState(),le=Ct?M:S,Bt=(Ct?U:N)||null,Nt=Ct?"target":"source",dn=ce||px,Ps=Ct,pn=ae.find(ue=>ue.id===n);J(!0),P==null||P(dt,pn,Nt);const Rs=ue=>{J(!1),I==null||I(ue,pn,Nt)};pu({event:dt,handleId:Bt,nodeId:le,onConnect:ue=>B==null?void 0:B(pn,ue),isTarget:Ps,getState:nt.getState,setState:nt.setState,isValidConnection:dn,edgeUpdaterType:Nt,onReconnectEnd:Rs})},Ce=dt=>Yt(dt,!0),oe=dt=>Yt(dt,!1),ie=()=>L(!0),Pe=()=>L(!1),Re=!O&&!i,fn=dt=>{var Ct;if(!H&&tu.includes(dt.key)&&O){const{unselectNodesAndEdges:ae,addSelectedEdges:ce,edges:le}=nt.getState();dt.key==="Escape"?((Ct=W.current)==null||Ct.blur(),ae({edges:[le.find(Nt=>Nt.id===n)]})):ce([n])}};return x.createElement("g",{className:vt(["react-flow__edge",`react-flow__edge-${s}`,r,{selected:c,animated:l,inactive:Re,updating:j}]),onClick:G,onDoubleClick:wt,onContextMenu:se,onMouseEnter:hn,onMouseMove:Ee,onMouseLeave:_e,onKeyDown:K?fn:void 0,tabIndex:K?0:void 0,role:K?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":V===null?void 0:V||`Edge from ${S} to ${M}`,"aria-describedby":K?`${Tu}-${X}`:void 0,ref:W},!it&&x.createElement(t,{id:n,source:S,target:M,selected:c,animated:l,label:u,labelStyle:h,labelShowBg:d,labelBgStyle:p,labelBgPadding:w,labelBgBorderRadius:y,data:o,style:b,sourceX:_,sourceY:v,targetX:k,targetY:C,sourcePosition:D,targetPosition:$,sourceHandleId:N,targetHandleId:U,markerStart:at,markerEnd:rt,pathOptions:et,interactionWidth:ot}),tt&&x.createElement(x.Fragment,null,(tt==="source"||tt===!0)&&x.createElement(Ba,{position:D,centerX:_,centerY:v,radius:z,onMouseDown:Ce,onMouseEnter:ie,onMouseOut:Pe,type:"source"}),(tt==="target"||tt===!0)&&x.createElement(Ba,{position:$,centerX:k,centerY:C,radius:z,onMouseDown:oe,onMouseEnter:ie,onMouseOut:Pe,type:"target"})))};return e.displayName="EdgeWrapper",x.memo(e)};function gx(t){const e={default:De(t.default||as),straight:De(t.bezier||pi),step:De(t.step||di),smoothstep:De(t.step||Es),simplebezier:De(t.simplebezier||fi)},n={},r=Object.keys(t).filter(s=>!["default","bezier"].includes(s)).reduce((s,o)=>(s[o]=De(t[o]||as),s),n);return{...e,...r}}function qa(t,e,n=null){const r=((n==null?void 0:n.x)||0)+e.x,s=((n==null?void 0:n.y)||0)+e.y,o=(n==null?void 0:n.width)||e.width,i=(n==null?void 0:n.height)||e.height;switch(t){case exports.Position.Top:return{x:r+o/2,y:s};case exports.Position.Right:return{x:r+o,y:s+i/2};case exports.Position.Bottom:return{x:r+o/2,y:s+i};case exports.Position.Left:return{x:r,y:s+i/2}}}function Fa(t,e){return t?t.length===1||!e?t[0]:e&&t.find(n=>n.id===e)||null:null}const mx=(t,e,n,r,s,o)=>{const i=qa(n,t,e),a=qa(o,r,s);return{sourceX:i.x,sourceY:i.y,targetX:a.x,targetY:a.y}};function yx({sourcePos:t,targetPos:e,sourceWidth:n,sourceHeight:r,targetWidth:s,targetHeight:o,width:i,height:a,transform:c}){const l={x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x+n,e.x+s),y2:Math.max(t.y+r,e.y+o)};l.x===l.x2&&(l.x2+=1),l.y===l.y2&&(l.y2+=1);const u=hi({x:(0-c[0])/c[2],y:(0-c[1])/c[2],width:i/c[2],height:a/c[2]}),h=Math.max(0,Math.min(u.x2,l.x2)-Math.max(u.x,l.x)),d=Math.max(0,Math.min(u.y2,l.y2)-Math.max(u.y,l.y));return Math.ceil(h*d)>0}function Za(t){var r,s,o,i,a;const e=((r=t==null?void 0:t[ct])==null?void 0:r.handleBounds)||null,n=e&&(t==null?void 0:t.width)&&(t==null?void 0:t.height)&&typeof((s=t==null?void 0:t.positionAbsolute)==null?void 0:s.x)<"u"&&typeof((o=t==null?void 0:t.positionAbsolute)==null?void 0:o.y)<"u";return[{x:((i=t==null?void 0:t.positionAbsolute)==null?void 0:i.x)||0,y:((a=t==null?void 0:t.positionAbsolute)==null?void 0:a.y)||0,width:(t==null?void 0:t.width)||0,height:(t==null?void 0:t.height)||0},e,!!n]}const wx=[{level:0,isMaxLevel:!0,edges:[]}];function xx(t,e,n=!1){let r=-1;const s=t.reduce((i,a)=>{var u,h;const c=Et(a.zIndex);let l=c?a.zIndex:0;if(n){const d=e.get(a.target),p=e.get(a.source),w=a.selected||(d==null?void 0:d.selected)||(p==null?void 0:p.selected),y=Math.max(((u=p==null?void 0:p[ct])==null?void 0:u.z)||0,((h=d==null?void 0:d[ct])==null?void 0:h.z)||0,1e3);l=(c?a.zIndex:0)+(w?y:0)}return i[l]?i[l].push(a):i[l]=[a],r=l>r?l:r,i},{}),o=Object.entries(s).map(([i,a])=>{const c=+i;return{edges:a,level:c,isMaxLevel:c===r}});return o.length===0?wx:o}function Sx(t,e,n){const r=lt(x.useCallback(s=>t?s.edges.filter(o=>{const i=e.get(o.source),a=e.get(o.target);return(i==null?void 0:i.width)&&(i==null?void 0:i.height)&&(a==null?void 0:a.width)&&(a==null?void 0:a.height)&&yx({sourcePos:i.positionAbsolute||{x:0,y:0},targetPos:a.positionAbsolute||{x:0,y:0},sourceWidth:i.width,sourceHeight:i.height,targetWidth:a.width,targetHeight:a.height,width:s.width,height:s.height,transform:s.transform})}):s.edges,[t,e]));return xx(r,e,n)}const vx=({color:t="none",strokeWidth:e=1})=>x.createElement("polyline",{style:{stroke:t,strokeWidth:e},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),bx=({color:t="none",strokeWidth:e=1})=>x.createElement("polyline",{style:{stroke:t,fill:t,strokeWidth:e},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Ua={[is.Arrow]:vx,[is.ArrowClosed]:bx};function Tx(t){const e=ht();return x.useMemo(()=>{var s,o;return Object.prototype.hasOwnProperty.call(Ua,t)?Ua[t]:((o=(s=e.getState()).onError)==null||o.call(s,"009",St.error009(t)),null)},[t])}const Ex=({id:t,type:e,color:n,width:r=12.5,height:s=12.5,markerUnits:o="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const c=Tx(e);return c?x.createElement("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${r}`,markerHeight:`${s}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:a,refX:"0",refY:"0"},x.createElement(c,{color:n,strokeWidth:i})):null},_x=({defaultColor:t,rfId:e})=>n=>{const r=[];return n.edges.reduce((s,o)=>([o.markerStart,o.markerEnd].forEach(i=>{if(i&&typeof i=="object"){const a=vo(i,e);r.includes(a)||(s.push({id:a,color:i.color||t,...i}),r.push(a))}}),s),[]).sort((s,o)=>s.id.localeCompare(o.id))},Iu=({defaultColor:t,rfId:e})=>{const n=lt(x.useCallback(_x({defaultColor:t,rfId:e}),[t,e]),(r,s)=>!(r.length!==s.length||r.some((o,i)=>o.id!==s[i].id)));return x.createElement("defs",null,n.map(r=>x.createElement(Ex,{id:r.id,key:r.id,type:r.type,color:r.color,width:r.width,height:r.height,markerUnits:r.markerUnits,strokeWidth:r.strokeWidth,orient:r.orient})))};Iu.displayName="MarkerDefinitions";var Cx=x.memo(Iu);const Px=t=>({nodesConnectable:t.nodesConnectable,edgesFocusable:t.edgesFocusable,edgesUpdatable:t.edgesUpdatable,elementsSelectable:t.elementsSelectable,width:t.width,height:t.height,connectionMode:t.connectionMode,nodeInternals:t.nodeInternals,onError:t.onError}),Lu=({defaultMarkerColor:t,onlyRenderVisibleElements:e,elevateEdgesOnSelect:n,rfId:r,edgeTypes:s,noPanClassName:o,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,onEdgeDoubleClick:h,onReconnect:d,onReconnectStart:p,onReconnectEnd:w,reconnectRadius:y,children:b,disableKeyboardA11y:S})=>{const{edgesFocusable:M,edgesUpdatable:_,elementsSelectable:v,width:k,height:C,connectionMode:D,nodeInternals:$,onError:O}=lt(Px,pt),Z=Sx(e,$,n);return k?x.createElement(x.Fragment,null,Z.map(({level:N,edges:U,isMaxLevel:Y})=>x.createElement("svg",{key:N,style:{zIndex:N},width:k,height:C,className:"react-flow__edges react-flow__container"},Y&&x.createElement(Cx,{defaultColor:t,rfId:r}),x.createElement("g",null,U.map(g=>{const[A,R,z]=Za($.get(g.source)),[B,P,I]=Za($.get(g.target));if(!z||!I)return null;let q=g.type||"default";s[q]||(O==null||O("011",St.error011(q)),q="default");const F=s[q]||s.default,X=D===exports.ConnectionMode.Strict?P.target:(P.target??[]).concat(P.source??[]),V=Fa(R.source,g.sourceHandle),K=Fa(X,g.targetHandle),tt=(V==null?void 0:V.position)||exports.Position.Bottom,et=(K==null?void 0:K.position)||exports.Position.Top,ot=!!(g.focusable||M&&typeof g.focusable>"u"),H=g.reconnectable||g.updatable,W=typeof d<"u"&&(H||_&&typeof H>"u");if(!V||!K)return O==null||O("008",St.error008(V,g)),null;const{sourceX:j,sourceY:L,targetX:it,targetY:J}=mx(A,V,tt,B,K,et);return x.createElement(F,{key:g.id,id:g.id,className:vt([g.className,o]),type:q,data:g.data,selected:!!g.selected,animated:!!g.animated,hidden:!!g.hidden,label:g.label,labelStyle:g.labelStyle,labelShowBg:g.labelShowBg,labelBgStyle:g.labelBgStyle,labelBgPadding:g.labelBgPadding,labelBgBorderRadius:g.labelBgBorderRadius,style:g.style,source:g.source,target:g.target,sourceHandleId:g.sourceHandle,targetHandleId:g.targetHandle,markerEnd:g.markerEnd,markerStart:g.markerStart,sourceX:j,sourceY:L,targetX:it,targetY:J,sourcePosition:tt,targetPosition:et,elementsSelectable:v,onContextMenu:i,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,onClick:u,onEdgeDoubleClick:h,onReconnect:d,onReconnectStart:p,onReconnectEnd:w,reconnectRadius:y,rfId:r,ariaLabel:g.ariaLabel,isFocusable:ot,isReconnectable:W,pathOptions:"pathOptions"in g?g.pathOptions:void 0,interactionWidth:g.interactionWidth,disableKeyboardA11y:S})})))),b):null};Lu.displayName="EdgeRenderer";var Rx=x.memo(Lu);const Mx=t=>`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`;function kx({children:t}){const e=lt(Mx);return x.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:e}},t)}function Ax(t){const e=_s(),n=x.useRef(!1);x.useEffect(()=>{!n.current&&e.viewportInitialized&&t&&(setTimeout(()=>t(e),1),n.current=!0)},[t,e.viewportInitialized])}const Nx={[exports.Position.Left]:exports.Position.Right,[exports.Position.Right]:exports.Position.Left,[exports.Position.Top]:exports.Position.Bottom,[exports.Position.Bottom]:exports.Position.Top},$u=({nodeId:t,handleType:e,style:n,type:r=Kt.Bezier,CustomComponent:s,connectionStatus:o})=>{var C,D,$;const{fromNode:i,handleId:a,toX:c,toY:l,connectionMode:u}=lt(x.useCallback(O=>({fromNode:O.nodeInternals.get(t),handleId:O.connectionHandleId,toX:(O.connectionPosition.x-O.transform[0])/O.transform[2],toY:(O.connectionPosition.y-O.transform[1])/O.transform[2],connectionMode:O.connectionMode}),[t]),pt),h=(C=i==null?void 0:i[ct])==null?void 0:C.handleBounds;let d=h==null?void 0:h[e];if(u===exports.ConnectionMode.Loose&&(d=d||(h==null?void 0:h[e==="source"?"target":"source"])),!i||!d)return null;const p=a?d.find(O=>O.id===a):d[0],w=p?p.x+p.width/2:(i.width??0)/2,y=p?p.y+p.height/2:i.height??0,b=(((D=i.positionAbsolute)==null?void 0:D.x)??0)+w,S=((($=i.positionAbsolute)==null?void 0:$.y)??0)+y,M=p==null?void 0:p.position,_=M?Nx[M]:null;if(!M||!_)return null;if(s)return x.createElement(s,{connectionLineType:r,connectionLineStyle:n,fromNode:i,fromHandle:p,fromX:b,fromY:S,toX:c,toY:l,fromPosition:M,toPosition:_,connectionStatus:o});let v="";const k={sourceX:b,sourceY:S,sourcePosition:M,targetX:c,targetY:l,targetPosition:_};return r===Kt.Bezier?[v]=ou(k):r===Kt.Step?[v]=So({...k,borderRadius:0}):r===Kt.SmoothStep?[v]=So(k):r===Kt.SimpleBezier?[v]=su(k):v=`M${b},${S} ${c},${l}`,x.createElement("path",{d:v,fill:"none",className:"react-flow__connection-path",style:n})};$u.displayName="ConnectionLine";const Dx=t=>({nodeId:t.connectionNodeId,handleType:t.connectionHandleType,nodesConnectable:t.nodesConnectable,connectionStatus:t.connectionStatus,width:t.width,height:t.height});function Ox({containerStyle:t,style:e,type:n,component:r}){const{nodeId:s,handleType:o,nodesConnectable:i,width:a,height:c,connectionStatus:l}=lt(Dx,pt);return!(s&&o&&a&&i)?null:x.createElement("svg",{style:t,width:a,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},x.createElement("g",{className:vt(["react-flow__connection",l])},x.createElement($u,{nodeId:s,handleType:o,style:e,type:n,CustomComponent:r,connectionStatus:l})))}function Ha(t,e){const n=x.useRef(null),r=ht();return x.useMemo(()=>{var o,i;if(process.env.NODE_ENV==="development"){const a=Object.keys(t);pt(n.current,a)&&((i=(o=r.getState()).onError)==null||i.call(o,"002",St.error002())),n.current=a}return e(t)},[t])}const Yu=({nodeTypes:t,edgeTypes:e,onMove:n,onMoveStart:r,onMoveEnd:s,onInit:o,onNodeClick:i,onEdgeClick:a,onNodeDoubleClick:c,onEdgeDoubleClick:l,onNodeMouseEnter:u,onNodeMouseMove:h,onNodeMouseLeave:d,onNodeContextMenu:p,onSelectionContextMenu:w,onSelectionStart:y,onSelectionEnd:b,connectionLineType:S,connectionLineStyle:M,connectionLineComponent:_,connectionLineContainerStyle:v,selectionKeyCode:k,selectionOnDrag:C,selectionMode:D,multiSelectionKeyCode:$,panActivationKeyCode:O,zoomActivationKeyCode:Z,deleteKeyCode:N,onlyRenderVisibleElements:U,elementsSelectable:Y,selectNodesOnDrag:g,defaultViewport:A,translateExtent:R,minZoom:z,maxZoom:B,preventScrolling:P,defaultMarkerColor:I,zoomOnScroll:q,zoomOnPinch:F,panOnScroll:X,panOnScrollSpeed:V,panOnScrollMode:K,zoomOnDoubleClick:tt,panOnDrag:et,onPaneClick:ot,onPaneMouseEnter:H,onPaneMouseMove:W,onPaneMouseLeave:j,onPaneScroll:L,onPaneContextMenu:it,onEdgeContextMenu:J,onEdgeMouseEnter:nt,onEdgeMouseMove:at,onEdgeMouseLeave:rt,onReconnect:G,onReconnectStart:wt,onReconnectEnd:se,reconnectRadius:hn,noDragClassName:Ee,noWheelClassName:_e,noPanClassName:Yt,elevateEdgesOnSelect:Ce,disableKeyboardA11y:oe,nodeOrigin:ie,nodeExtent:Pe,rfId:Re})=>{const fn=Ha(t,cx),dt=Ha(e,gx);return Ax(o),x.createElement(ix,{onPaneClick:ot,onPaneMouseEnter:H,onPaneMouseMove:W,onPaneMouseLeave:j,onPaneContextMenu:it,onPaneScroll:L,deleteKeyCode:N,selectionKeyCode:k,selectionOnDrag:C,selectionMode:D,onSelectionStart:y,onSelectionEnd:b,multiSelectionKeyCode:$,panActivationKeyCode:O,zoomActivationKeyCode:Z,elementsSelectable:Y,onMove:n,onMoveStart:r,onMoveEnd:s,zoomOnScroll:q,zoomOnPinch:F,zoomOnDoubleClick:tt,panOnScroll:X,panOnScrollSpeed:V,panOnScrollMode:K,panOnDrag:et,defaultViewport:A,translateExtent:R,minZoom:z,maxZoom:B,onSelectionContextMenu:w,preventScrolling:P,noDragClassName:Ee,noWheelClassName:_e,noPanClassName:Yt,disableKeyboardA11y:oe},x.createElement(kx,null,x.createElement(Rx,{edgeTypes:dt,onEdgeClick:a,onEdgeDoubleClick:l,onlyRenderVisibleElements:U,onEdgeContextMenu:J,onEdgeMouseEnter:nt,onEdgeMouseMove:at,onEdgeMouseLeave:rt,onReconnect:G,onReconnectStart:wt,onReconnectEnd:se,reconnectRadius:hn,defaultMarkerColor:I,noPanClassName:Yt,elevateEdgesOnSelect:!!Ce,disableKeyboardA11y:oe,rfId:Re},x.createElement(Ox,{style:M,type:S,component:_,containerStyle:v})),x.createElement("div",{className:"react-flow__edgelabel-renderer"}),x.createElement(hx,{nodeTypes:fn,onNodeClick:i,onNodeDoubleClick:c,onNodeMouseEnter:u,onNodeMouseMove:h,onNodeMouseLeave:d,onNodeContextMenu:p,selectNodesOnDrag:g,onlyRenderVisibleElements:U,noPanClassName:Yt,noDragClassName:Ee,disableKeyboardA11y:oe,nodeOrigin:ie,nodeExtent:Pe,rfId:Re})))};Yu.displayName="GraphView";var zx=x.memo(Yu);const _o=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Wt={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:_o,nodeExtent:_o,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:exports.ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:ss,isValidConnection:void 0},Ix=()=>Wg((t,e)=>({...Wt,setNodes:n=>{const{nodeInternals:r,nodeOrigin:s,elevateNodesOnSelect:o}=e();t({nodeInternals:Xs(n,r,s,o)})},getNodes:()=>Array.from(e().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:r={}}=e();t({edges:n.map(s=>({...r,...s}))})},setDefaultNodesAndEdges:(n,r)=>{const s=typeof n<"u",o=typeof r<"u",i=s?Xs(n,new Map,e().nodeOrigin,e().elevateNodesOnSelect):new Map;t({nodeInternals:i,edges:o?r:[],hasDefaultNodes:s,hasDefaultEdges:o})},updateNodeDimensions:n=>{const{onNodesChange:r,nodeInternals:s,fitViewOnInit:o,fitViewOnInitDone:i,fitViewOnInitOptions:a,domNode:c,nodeOrigin:l}=e(),u=c==null?void 0:c.querySelector(".react-flow__viewport");if(!u)return;const h=window.getComputedStyle(u),{m22:d}=new window.DOMMatrixReadOnly(h.transform),p=n.reduce((y,b)=>{const S=s.get(b.id);if(S!=null&&S.hidden)s.set(S.id,{...S,[ct]:{...S[ct],handleBounds:void 0}});else if(S){const M=li(b.nodeElement);!!(M.width&&M.height&&(S.width!==M.width||S.height!==M.height||b.forceUpdate))&&(s.set(S.id,{...S,[ct]:{...S[ct],handleBounds:{source:$a(".source",b.nodeElement,d,l),target:$a(".target",b.nodeElement,d,l)}},...M}),y.push({id:S.id,type:"dimensions",dimensions:M}))}return y},[]);_u(s,l);const w=i||o&&!i&&Cu(e,{initial:!0,...a});t({nodeInternals:new Map(s),fitViewOnInitDone:w}),(p==null?void 0:p.length)>0&&(r==null||r(p))},updateNodePositions:(n,r=!0,s=!1)=>{const{triggerNodeChanges:o}=e(),i=n.map(a=>{const c={id:a.id,type:"position",dragging:s};return r&&(c.positionAbsolute=a.positionAbsolute,c.position=a.position),c});o(i)},triggerNodeChanges:n=>{const{onNodesChange:r,nodeInternals:s,hasDefaultNodes:o,nodeOrigin:i,getNodes:a,elevateNodesOnSelect:c}=e();if(n!=null&&n.length){if(o){const l=Ru(n,a()),u=Xs(l,s,i,c);t({nodeInternals:u})}r==null||r(n)}},addSelectedNodes:n=>{const{multiSelectionActive:r,edges:s,getNodes:o}=e();let i,a=null;r?i=n.map(c=>Gt(c,!0)):(i=Ie(o(),n),a=Ie(s,[])),wr({changedNodes:i,changedEdges:a,get:e,set:t})},addSelectedEdges:n=>{const{multiSelectionActive:r,edges:s,getNodes:o}=e();let i,a=null;r?i=n.map(c=>Gt(c,!0)):(i=Ie(s,n),a=Ie(o(),[])),wr({changedNodes:a,changedEdges:i,get:e,set:t})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:s,getNodes:o}=e(),i=n||o(),a=r||s,c=i.map(u=>(u.selected=!1,Gt(u.id,!1))),l=a.map(u=>Gt(u.id,!1));wr({changedNodes:c,changedEdges:l,get:e,set:t})},setMinZoom:n=>{const{d3Zoom:r,maxZoom:s}=e();r==null||r.scaleExtent([n,s]),t({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:r,minZoom:s}=e();r==null||r.scaleExtent([s,n]),t({maxZoom:n})},setTranslateExtent:n=>{var r;(r=e().d3Zoom)==null||r.translateExtent(n),t({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:r}=e(),o=r().filter(a=>a.selected).map(a=>Gt(a.id,!1)),i=n.filter(a=>a.selected).map(a=>Gt(a.id,!1));wr({changedNodes:o,changedEdges:i,get:e,set:t})},setNodeExtent:n=>{const{nodeInternals:r}=e();r.forEach(s=>{s.positionAbsolute=ui(s.position,n)}),t({nodeExtent:n,nodeInternals:new Map(r)})},panBy:n=>{const{transform:r,width:s,height:o,d3Zoom:i,d3Selection:a,translateExtent:c}=e();if(!i||!a||!n.x&&!n.y)return!1;const l=Qt.translate(r[0]+n.x,r[1]+n.y).scale(r[2]),u=[[0,0],[s,o]],h=i==null?void 0:i.constrain()(l,u,c);return i.transform(a,h),r[0]!==h.x||r[1]!==h.y||r[2]!==h.k},cancelConnection:()=>t({connectionNodeId:Wt.connectionNodeId,connectionHandleId:Wt.connectionHandleId,connectionHandleType:Wt.connectionHandleType,connectionStatus:Wt.connectionStatus,connectionStartHandle:Wt.connectionStartHandle,connectionEndHandle:Wt.connectionEndHandle}),reset:()=>t({...Wt})}),Object.is),Si=({children:t})=>{const e=x.useRef(null);return e.current||(e.current=Ix()),x.createElement(ew,{value:e.current},t)};Si.displayName="ReactFlowProvider";const Bu=({children:t})=>x.useContext(Ts)?x.createElement(x.Fragment,null,t):x.createElement(Si,null,t);Bu.displayName="ReactFlowWrapper";const Lx={input:wu,default:To,output:Su,group:wi},$x={default:as,straight:pi,step:di,smoothstep:Es,simplebezier:fi},Yx=[0,0],Bx=[15,15],qx={x:0,y:0,zoom:1},Fx={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},qu=x.forwardRef(({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,className:s,nodeTypes:o=Lx,edgeTypes:i=$x,onNodeClick:a,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:h,onMoveEnd:d,onConnect:p,onConnectStart:w,onConnectEnd:y,onClickConnectStart:b,onClickConnectEnd:S,onNodeMouseEnter:M,onNodeMouseMove:_,onNodeMouseLeave:v,onNodeContextMenu:k,onNodeDoubleClick:C,onNodeDragStart:D,onNodeDrag:$,onNodeDragStop:O,onNodesDelete:Z,onEdgesDelete:N,onSelectionChange:U,onSelectionDragStart:Y,onSelectionDrag:g,onSelectionDragStop:A,onSelectionContextMenu:R,onSelectionStart:z,onSelectionEnd:B,connectionMode:P=exports.ConnectionMode.Strict,connectionLineType:I=Kt.Bezier,connectionLineStyle:q,connectionLineComponent:F,connectionLineContainerStyle:X,deleteKeyCode:V="Backspace",selectionKeyCode:K="Shift",selectionOnDrag:tt=!1,selectionMode:et=exports.SelectionMode.Full,panActivationKeyCode:ot="Space",multiSelectionKeyCode:H=os()?"Meta":"Control",zoomActivationKeyCode:W=os()?"Meta":"Control",snapToGrid:j=!1,snapGrid:L=Bx,onlyRenderVisibleElements:it=!1,selectNodesOnDrag:J=!0,nodesDraggable:nt,nodesConnectable:at,nodesFocusable:rt,nodeOrigin:G=Yx,edgesFocusable:wt,edgesUpdatable:se,elementsSelectable:hn,defaultViewport:Ee=qx,minZoom:_e=.5,maxZoom:Yt=2,translateExtent:Ce=_o,preventScrolling:oe=!0,nodeExtent:ie,defaultMarkerColor:Pe="#b1b1b7",zoomOnScroll:Re=!0,zoomOnPinch:fn=!0,panOnScroll:dt=!1,panOnScrollSpeed:Ct=.5,panOnScrollMode:ae=pe.Free,zoomOnDoubleClick:ce=!0,panOnDrag:le=!0,onPaneClick:Bt,onPaneMouseEnter:Nt,onPaneMouseMove:dn,onPaneMouseLeave:Ps,onPaneScroll:pn,onPaneContextMenu:Rs,children:Ei,onEdgeContextMenu:ue,onEdgeDoubleClick:sh,onEdgeMouseEnter:oh,onEdgeMouseMove:ih,onEdgeMouseLeave:ah,onEdgeUpdate:ch,onEdgeUpdateStart:lh,onEdgeUpdateEnd:uh,onReconnect:hh,onReconnectStart:fh,onReconnectEnd:dh,reconnectRadius:ph=10,edgeUpdaterRadius:gh=10,onNodesChange:mh,onEdgesChange:yh,noDragClassName:wh="nodrag",noWheelClassName:xh="nowheel",noPanClassName:_i="nopan",fitView:Sh=!1,fitViewOptions:vh,connectOnClick:bh=!0,attributionPosition:Th,proOptions:Eh,defaultEdgeOptions:_h,elevateNodesOnSelect:Ch=!0,elevateEdgesOnSelect:Ph=!1,disableKeyboardA11y:Ci=!1,autoPanOnConnect:Rh=!0,autoPanOnNodeDrag:Mh=!0,connectionRadius:kh=20,isValidConnection:Ah,onError:Nh,style:Dh,id:Pi,nodeDragThreshold:Oh,...zh},Ih)=>{const Ms=Pi||"1";return x.createElement("div",{...zh,style:{...Dh,...Fx},ref:Ih,className:vt(["react-flow",s]),"data-testid":"rf__wrapper",id:Pi},x.createElement(Bu,null,x.createElement(zx,{onInit:l,onMove:u,onMoveStart:h,onMoveEnd:d,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:M,onNodeMouseMove:_,onNodeMouseLeave:v,onNodeContextMenu:k,onNodeDoubleClick:C,nodeTypes:o,edgeTypes:i,connectionLineType:I,connectionLineStyle:q,connectionLineComponent:F,connectionLineContainerStyle:X,selectionKeyCode:K,selectionOnDrag:tt,selectionMode:et,deleteKeyCode:V,multiSelectionKeyCode:H,panActivationKeyCode:ot,zoomActivationKeyCode:W,onlyRenderVisibleElements:it,selectNodesOnDrag:J,defaultViewport:Ee,translateExtent:Ce,minZoom:_e,maxZoom:Yt,preventScrolling:oe,zoomOnScroll:Re,zoomOnPinch:fn,zoomOnDoubleClick:ce,panOnScroll:dt,panOnScrollSpeed:Ct,panOnScrollMode:ae,panOnDrag:le,onPaneClick:Bt,onPaneMouseEnter:Nt,onPaneMouseMove:dn,onPaneMouseLeave:Ps,onPaneScroll:pn,onPaneContextMenu:Rs,onSelectionContextMenu:R,onSelectionStart:z,onSelectionEnd:B,onEdgeContextMenu:ue,onEdgeDoubleClick:sh,onEdgeMouseEnter:oh,onEdgeMouseMove:ih,onEdgeMouseLeave:ah,onReconnect:hh??ch,onReconnectStart:fh??lh,onReconnectEnd:dh??uh,reconnectRadius:ph??gh,defaultMarkerColor:Pe,noDragClassName:wh,noWheelClassName:xh,noPanClassName:_i,elevateEdgesOnSelect:Ph,rfId:Ms,disableKeyboardA11y:Ci,nodeOrigin:G,nodeExtent:ie}),x.createElement(Nw,{nodes:t,edges:e,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:w,onConnectEnd:y,onClickConnectStart:b,onClickConnectEnd:S,nodesDraggable:nt,nodesConnectable:at,nodesFocusable:rt,edgesFocusable:wt,edgesUpdatable:se,elementsSelectable:hn,elevateNodesOnSelect:Ch,minZoom:_e,maxZoom:Yt,nodeExtent:ie,onNodesChange:mh,onEdgesChange:yh,snapToGrid:j,snapGrid:L,connectionMode:P,translateExtent:Ce,connectOnClick:bh,defaultEdgeOptions:_h,fitView:Sh,fitViewOptions:vh,onNodesDelete:Z,onEdgesDelete:N,onNodeDragStart:D,onNodeDrag:$,onNodeDragStop:O,onSelectionDrag:g,onSelectionDragStart:Y,onSelectionDragStop:A,noPanClassName:_i,nodeOrigin:G,rfId:Ms,autoPanOnConnect:Rh,autoPanOnNodeDrag:Mh,onError:Nh,connectionRadius:kh,isValidConnection:Ah,nodeDragThreshold:Oh}),x.createElement(kw,{onSelectionChange:U}),Ei,x.createElement(sw,{proOptions:Eh,position:Th}),x.createElement(Lw,{rfId:Ms,disableKeyboardA11y:Ci})))});qu.displayName="ReactFlow";function Zx(){const t=ht();return x.useCallback(e=>{const{domNode:n,updateNodeDimensions:r}=t.getState(),o=(Array.isArray(e)?e:[e]).reduce((i,a)=>{const c=n==null?void 0:n.querySelector(`.react-flow__node[data-id="${a}"]`);return c&&i.push({id:a,nodeElement:c,forceUpdate:!0}),i},[]);requestAnimationFrame(()=>r(o))},[])}function Ux({onStart:t,onChange:e,onEnd:n}){const r=ht();x.useEffect(()=>{r.setState({onViewportChangeStart:t})},[t]),x.useEffect(()=>{r.setState({onViewportChange:e})},[e]),x.useEffect(()=>{r.setState({onViewportChangeEnd:n})},[n])}const Hx=({sourcePos:t,targetPos:e,next:n,prev:r})=>{const s=_n(t,...n);return f.q.distance(s,e)<1?!0:(console.warn("Connector is out of sync with target"),console.log("Theoretical target",s),console.log("Actual target",e),console.log("Segments",n),console.log("Prev segments",r),!1)},Va=({sourceStumpTip:t,sourceOrientation:e,sourceBox:n,targetStumpTip:r,targetOrientation:s,targetBox:o})=>{if(!Xx({sourcePos:t,sourceOrientation:e,targetPos:r}))return;const i=f.g.construct(e),a=f.g.swap(i);let c=me(a,r[a]-t[a]);const l=f.To.loc(n,c);if(f.J.swap(e)===s){const u=f.To.loc(o,f.J.swap(c));Math.abs(l-u)<bt&&(c=f.J.swap(c))}return{direction:a,length:l-t[a]+Se(c,bt)}},Co=E.z.object({direction:f.g.direction,length:E.z.number()}),_n=(t,...e)=>{let n=t;for(const r of e)n=f.q.translate(n,r.direction,r.length);return n},Vx=(t,e,n,r)=>{try{let s=t;const o=[t,...e.map(d=>(s=f.q.translate(s,d.direction,d.length),s))];if(!r)return o;const i=e[0],a=me(i.direction,i.length),c=Xa(a);o[0]=f.q.translate(o[0],{[i.direction]:-1*c*4*n,[f.g.swap(i.direction)]:0});const l=e[e.length-1],u=me(l.direction,l.length),h=Xa(u);return o[o.length-1]=f.q.translate(o[o.length-1],{[l.direction]:h*4*n,[f.g.swap(l.direction)]:0}),o}catch{return[]}},bt=10,Xa=t=>t==="top"||t==="left"?-1:1,Se=(t,e)=>t==="top"||t==="left"?-e:e,me=(t,e)=>t==="x"?e>0?"right":"left":e>0?"bottom":"top",Jt=t=>me(t.direction,t.length),Xx=({sourcePos:t,targetPos:e,sourceOrientation:n})=>{const r=f.g.construct(n),s=e[r]-t[r];return Se(n,s)<0},Sr=t=>({direction:f.g.construct(t),length:Se(t,bt)}),Wa={top:Sr("top"),bottom:Sr("bottom"),left:Sr("left"),right:Sr("right")},Wx=4,Gx=.25,Cs=t=>Po(Kx(Po(t))),Kx=t=>{const e=[...t],n=t.findIndex((r,s)=>{const o=Math.abs(r.length);if(o<Wx){if(o<Gx)return!0;if(s===0||s===t.length-1||t.length<=3)return!1;if(s+2<t.length){const i=e[s+2];if(i.direction!==r.direction)return!1;e[s+2]={...i,length:i.length+r.length}}else{const i=e[s-2];if(i.direction!==r.direction)return!1;e[s-2]={...i,length:i.length+r.length}}return!0}return!1});return n!==-1&&e.splice(n,1),e},Po=t=>{const e=[...t];return t.findIndex((r,s)=>{const o=e[s-1];if(s===0||r.direction!==o.direction)return!1;if(s===1){const i=s-1,a=s,c=Jt(o),l=Jt(r);if(c===l)return e[s-1]={direction:e[s-1].direction,length:e[s-1].length+e[s].length},e.splice(s,1),!0;if(Math.abs(o.length)===bt)return!1;const u=Se(c,bt),h=e[i].length-u,d=e[a].length+h;return Math.abs(d)<bt?!1:(e[i]={...e[i],length:u},e[a]={...e[a],length:d},!0)}if(s===t.length-1){const i=s,a=s-1,c=Jt(r),l=Jt(o);if(c===l)return e[s-1]={direction:e[s-1].direction,length:e[s-1].length+e[s].length},e.splice(s,1),!0;if(Math.abs(r.length)===bt)return!1;const u=Se(c,bt),h=e[i].length-u,d=e[a].length+h;return Math.abs(d)<bt?!1:(e[i]={...e[i],length:u},e[a]={...e[a],length:d},!0)}return e[s-1]={direction:e[s-1].direction,length:e[s-1].length+e[s].length},e.splice(s,1),!0})!==-1?Po(e):e},jx=t=>Cs(Jx(t)),Jx=({sourceBox:t,targetBox:e,sourcePos:n,targetPos:r,targetOrientation:s,sourceOrientation:o})=>{let i=o,a=s,c={...Wa[o]},l=_n(n,c);const u={...Wa[s]};let h=_n(r,u);const d=[c],p=Va({sourceStumpTip:l,sourceOrientation:o,sourceBox:t,targetStumpTip:h,targetOrientation:s,targetBox:e});p!=null&&(d.push(p),l=_n(l,p),i=Jt(p),c=p);const w=Va({sourceStumpTip:h,sourceOrientation:a,sourceBox:e,targetStumpTip:l,targetOrientation:i,targetBox:t});w!=null&&(h=_n(h,w),a=me(w.direction,w.length));const y=()=>{w!=null&&(w.length*=-1,d.push(w)),u.length*=-1,d.push(u)};if(f.J.swap(i)===s){const k=f.g.construct(i),C=(h[k]-l[k])/2;d.push({direction:k,length:C});const D=f.g.swap(k);return d.push({direction:D,length:h[D]-l[D]}),d.push({direction:k,length:C}),y(),d}const b=h[c.direction]-l[c.direction];let S=f.g.swap(c.direction);const M=l[S]-h[S];let _;me(c.direction,b)===i&&me(S,M)===a?_={direction:c.direction,length:b}:(_={direction:S,length:h[S]-l[S]},S=f.g.swap(S)),d.push(_);const v={direction:S,length:h[S]-l[S]};return d.push(v),y(),d},Qx=t=>Cs(tS(t)),tS=({segments:t,index:e,magnitude:n})=>{const r=[...t],s=r[e],o=f.g.swap(s.direction),i=Jt(s);if(e===0){r.unshift({direction:o,length:n});const a=Se(i,bt);r.unshift({direction:s.direction,length:a}),e+=2,r[e]={...r[e],length:r[e].length-a}}else r[e-1]={direction:r[e-1].direction,length:r[e-1].length+n};if(e===r.length-1){r.push({direction:o,length:-n});const a=Se(i,bt);r.push({direction:s.direction,length:a}),r[e]={...r[e],length:r[e].length-a}}else r[e+1]={direction:r[e+1].direction,length:r[e+1].length-n};return r},eS=(t,e)=>{for(let n=t.length-1;n>=0;n--)if(e(t[n],n))return n;return-1},nS=(t,e,n=!1,...r)=>{const s=(o,i)=>!r.includes(i)&&e(o,i);return n?eS(t,s):t.findIndex(s)},rS=({delta:t,segments:e})=>Cs(Fu(t,e,!1)),sS=({delta:t,segments:e})=>Cs(Fu(t,e,!0)),Fu=(t,e,n)=>{let r=[...e];return t.x!==0&&(r=Ka("x",t,r,n)),t.y!==0&&(r=Ka("y",t,r,n)),r},Ga=(t,e,n)=>{if(e.direction!==t)return!1;const r={...e,length:e.length-n[t]},s=Jt(e),o=Jt(r);return Math.abs(r.length)>bt&&s===o},Ka=(t,e,n,r)=>{const s=f.g.swap(t),o=r?n.length-1:0,i=n[o];if(Ga(t,i,e))return n[o]={...i,length:i.length-e[t]},n;const a=r?0:n.length-1,l=nS(n,h=>h.direction===t,r,o);if(l===a){const h=n[a];return Ga(t,h,e)?(n[a]={...h,length:h.length-e[t]},n):(i.direction===t?n[o]={...i,length:i.length-e[t]}:n[a]={...h,length:h.length-e[t]},n)}if(l===-1)return n.length===1?n[0].direction===t?[{direction:t,length:n[0].length-e[t]}]:[{direction:s,length:n[0].length/2},{direction:t,length:-e[t]},{direction:s,length:n[0].length/2}]:i.direction===t?(n[o]={...i,length:i.length-e[t]},n):[{direction:s,length:n[0].length},{direction:t,length:-e[t]},...n.slice(1)];const u=n[l];return n[l]={...u,length:u.length-e[t]},n},oS=E.z.object({position:f.q.xy,zoom:E.z.number()}),Zu=E.z.object({color:f.crudeZ,segments:E.z.array(Co)}),iS=Zu.extend({key:E.z.string(),source:E.z.string(),target:E.z.string(),segments:E.z.array(Co),color:f.crudeZ,id:E.z.string(),data:E.z.object({segments:E.z.array(Co),color:f.crudeZ}).optional(),selected:E.z.boolean(),sourceHandle:E.z.string().nullable().optional(),targetHandle:E.z.string().nullable().optional()}),aS=E.z.object({key:E.z.string(),position:f.q.xy,selected:E.z.boolean().optional(),zIndex:E.z.number().optional(),id:E.z.string().optional(),type:E.z.string().optional(),data:E.z.unknown().optional(),width:E.z.number().optional().nullable(),height:E.z.number().optional().nullable()}),Uu=t=>t.map(e=>({...e,id:e.key,type:"custom",data:{}})),Hu=t=>t.map(({segments:e,color:n,...r})=>({...r,id:r.key,data:{segments:e,color:n}})),Vu=t=>t.map(e=>({key:e.id,selected:e.selected,...e})),Xu=(t,e)=>t.map(n=>{var r,s;return n.data==null&&(n.data={segments:[],color:e}),{key:n.id,segments:((r=n.data)==null?void 0:r.segments)??[],selected:n.selected??!1,color:((s=n.data)==null?void 0:s.color)??e,...n}}),cS=t=>({...t.position,zoom:t.zoom}),Wu=t=>({position:f.q.construct(t),zoom:t.zoom}),lS=(t,e)=>Vu(e(Uu(t))),uS=(t,e,n)=>Xu(e(Hu(t)),n),vi=E.z.object({position:f.q.xy,zoom:E.z.number(),region:f.To.box,clearOverScan:f.q.crudeZ.optional().default(10)}),js=["upper2d","lower2d"],Gu=()=>{const t=_s();return x.useRef(Wu(t.getViewport())).current},Ye=class Ye extends T.Composite{constructor(){super(...arguments);m(this,"eraser",new ei);m(this,"schema",Ye.stateZ)}async afterUpdate(){this.internal.renderCtx=gt.use(this.ctx),this.internal.addStatus=T.useAggregate(this.ctx),yt.control(this.ctx,()=>this.requestRender("low")),this.requestRender("high")}async afterDelete(){this.requestRender("high")}async render(){if(this.deleted)return;const{renderCtx:n,addStatus:r}=this.internal,{zoom:s,position:o}=this.state,i=f.To.construct(this.state.region),a=n.scissor(i,f.q.ZERO,js),c=f.k.XY.magnify(f.q.construct(s)).translate(f.To.topLeft(i)).translate(o);try{await Promise.all(this.children.map(async u=>await u.render({viewportScale:c})))}catch(u){r({variant:"error",message:u.message})}finally{a()}const l=f.To.copy(this.state.region);return async()=>{this.internal.renderCtx.erase(l,this.state.clearOverScan,...js)}}requestRender(n){const{renderCtx:r}=this.internal;r.loop.set({key:`${Ye.TYPE}-${this.key}`,render:async()=>await this.render(),priority:n,canvases:js})}};m(Ye,"TYPE","Diagram"),m(Ye,"stateZ",vi);let on=Ye;const Ku={[on.TYPE]:on},hS=Object.freeze(Object.defineProperty({__proto__:null,Diagram:on,REGISTRY:Ku,diagramStateZ:vi,useInitialViewport:Gu},Symbol.toStringTag,{value:"Module"})),ju=E.z.object({region:f.To.box,enabled:E.z.boolean().optional().default(!1)});class cs extends T.Leaf{constructor(){super(...arguments);m(this,"schema",ju);m(this,"eraser",new ei)}async afterUpdate(){this.deleted||(this.internal.render=gt.use(this.ctx),await this.internal.render.loop.set({key:`${this.type}-${this.key}`,render:this.render.bind(this),priority:"high",canvases:["gl","lower2d","upper2d"]}))}async afterDelete(){await this.internal.render.loop.set({key:`${this.type}-${this.key}`,render:this.render.bind(this),priority:"high",canvases:["gl","lower2d","upper2d"]})}async render(){this.deleted||!this.state.enabled||this.internal.render.erase(this.state.region,f.q.construct(0),"gl","lower2d","upper2d")}}m(cs,"TYPE","eraser");const fS={[cs.TYPE]:cs},bi=E.z.object({position:f.q.xy.or(E.z.null()),textColor:f.Color.z.optional().default(f.ZERO),backgroundColor:f.Color.z.optional().default(f.ZERO),borderColor:f.Color.z.optional().default(f.ZERO),ruleColor:f.Color.z.optional().default(f.ZERO),ruleStrokeWidth:E.z.number().optional().default(1),ruleStrokeDash:E.z.number().default(0)});class an extends T.Leaf{constructor(){super(...arguments);m(this,"schema",bi)}async afterUpdate(){const n=T.use(this.ctx);this.state.textColor.isZero&&(this.state.textColor=n.colors.text),this.state.backgroundColor.isZero&&(this.state.backgroundColor=n.colors.gray.l1),this.state.borderColor.isZero&&(this.state.borderColor=n.colors.border),this.state.ruleColor.isZero&&(this.state.ruleColor=n.colors.gray.l5),this.internal.dotColor=n.colors.text,this.internal.dotColorContrast=n.colors.textInverted,this.internal.render=gt.use(this.ctx),this.internal.draw=new ar(this.internal.render.upper2d,n),yt.requestRender(this.ctx,ne)}async afterDelete(){yt.requestRender(this.ctx,ne)}async render(n){if(this.deleted||this.state.position==null)return;const{region:r}=n,s=f.k.XY.scale(f.To.DECIMAL).scale(r),o=f.k.XY.scale(r).scale(f.To.DECIMAL),i=await n.findByXDecimal(o.x.pos(this.state.position.x)),a=i.filter(w=>f.q.isFinite(w.value)),{draw:c}=this.internal,l=a.reduce((w,y)=>w+y.position.x,0)/a.length,u=new T.m(a.reduce((w,y)=>w+y.value.x,0)/a.length),h=s.x.pos(l);if(!f.R.contains(f.To.xBounds(r),h))return;c.rule({stroke:this.state.ruleColor,lineWidth:this.state.ruleStrokeWidth,lineDash:this.state.ruleStrokeDash,direction:"y",region:r,position:h}),a.forEach(w=>{const y=s.pos(w.position);c.circle({fill:w.color.setAlpha(.5),radius:8,position:y}),c.circle({fill:w.color.setAlpha(.8),radius:5,position:y}),c.circle({fill:w.color.pickByContrast(this.internal.dotColor,this.internal.dotColorContrast),radius:2,position:y})});const d=i.map(w=>`${w.label??""}: ${w.value.y.toFixed(2)}`);d.unshift(`Time: ${u.fString("preciseDate","local")}`);const p=o.pos(this.state.position);c.textContainer({text:d,backgroundColor:this.state.backgroundColor,borderColor:this.state.borderColor,position:this.state.position,direction:"y",level:"small",spacing:.5,offset:{x:12,y:12},root:{x:p.x>.8?"right":"left",y:p.y>.8?"top":"bottom"}})}}m(an,"TYPE","tooltip");const Ju={[an.TYPE]:an},dS=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Ju,Tooltip:an,tooltipStateZ:bi},Symbol.toStringTag,{value:"Module"})),Ti=E.z.object({one:f.q.xy.nullable(),two:f.q.xy.nullable(),hover:f.q.xy.nullable(),color:E.z.union([f.Color.z,E.z.object({verticalLine:f.Color.z.optional().default(f.ZERO),horizontalLine:f.Color.z.optional().default(f.ZERO),obliqueLine:f.Color.z.optional().default(f.ZERO)})]).optional().default(f.ZERO),strokeWidth:E.z.number().optional().default(1),strokeDash:E.z.number().optional().default(2)});class cn extends T.Leaf{constructor(){super(...arguments);m(this,"schema",Ti)}async afterUpdate(){const n=gt.use(this.ctx);this.internal.theme=T.use(this.ctx),this.internal.render=n,this.internal.draw=new ar(n.upper2d,this.internal.theme),yt.requestRender(this.ctx,ne)}async afterDelete(){yt.requestRender(this.ctx,Lt)}get verticalLineColor(){return this.state.color instanceof f.Color?this.state.color.isZero?this.internal.theme.colors.gray.l6:this.state.color:this.state.color.verticalLine.isZero?this.internal.theme.colors.gray.l6:this.state.color.verticalLine}get horizontalLineColor(){return this.state.color instanceof f.Color?this.state.color.isZero?this.internal.theme.colors.gray.l6:this.state.color:this.state.color.horizontalLine.isZero?this.internal.theme.colors.gray.l6:this.state.color.horizontalLine}get obliqueLineColor(){return this.state.color instanceof f.Color?this.state.color.isZero?this.internal.theme.colors.gray.l6:this.state.color:this.state.color.obliqueLine.isZero?this.internal.theme.colors.gray.l6:this.state.color.obliqueLine}async find(n){const{one:r,two:s}=this.state;if(r==null||s==null)return null;const{one:o,two:i}=this.prevState,{dataOne:a,dataTwo:c}=this.internal;if(o!=null&&f.q.equals(r,o)&&i!=null&&f.q.equals(s,i)&&a!=null&&c!=null){const[b,S]=[await n.findByXValue(a.x),await n.findByXValue(c.x)];return b.length===0||S.length===0?null:[b.sort((M,_)=>f.q.distance(a,M.value)-f.q.distance(a,_.value))[0],S.sort((M,_)=>f.q.distance(c,M.value)-f.q.distance(c,_.value))[0]]}const l=f.k.XY.scale(n.region).scale(f.To.DECIMAL),[u,h]=[l.pos(r),l.pos(s)],[d,p]=[await n.findByXDecimal(u.x),await n.findByXDecimal(h.x)];if(d.length===0||p.length===0)return null;const[w,y]=[d.sort((b,S)=>f.q.distance(u,b.position)-f.q.distance(u,S.position))[0],p.sort((b,S)=>f.q.distance(h,b.position)-f.q.distance(h,S.position))[0]];return this.internal.dataOne=w.value,this.internal.dataTwo=y.value,[w,y]}async renderHover(n){if(this.state.hover==null)return;const r=this.state.hover,s=f.k.XY.scale(n.region).scale(f.To.DECIMAL),o=s.pos(r),i=await n.findByXDecimal(s.pos(r).x);if(i.length===0)return;const a=i.sort((l,u)=>f.q.distance(o,l.position)-f.q.distance(o,u.position))[0],{draw:c}=this.internal;c.circle({fill:a.color.setAlpha(.5),radius:9,position:s.reverse().pos(a.position)})}async render(n){if(this.deleted)return;await this.renderHover(n);const r=await this.find(n);if(r==null)return;const[s,o]=r,{draw:i}=this.internal,{strokeDash:a,strokeWidth:c}=this.state,l=f.k.XY.scale(f.To.DECIMAL).scale(n.region),u=l.pos(s.position),h=l.pos(o.position),d=new T.y(Math.abs(s.value.x-o.value.x)),p=Math.abs(s.value.y-o.value.y),w=p/d.seconds;i.line({start:f.q.construct(u.x,u.y),end:f.q.construct(u.x,h.y),stroke:this.verticalLineColor,lineDash:a,lineWidth:c}),i.textContainer({text:[`${p.toFixed(2)} ${s.units??""}`],direction:"x",position:f.q.construct(u.x,(u.y+h.y)/2),level:"small"}),i.line({start:f.q.construct(u.x,h.y),end:f.q.construct(h.x,h.y),stroke:this.horizontalLineColor,lineDash:a,lineWidth:c}),i.textContainer({text:[d.truncate(T.y.MILLISECOND).toString()],direction:"x",position:f.q.construct((u.x+h.x)/2,h.y),level:"small"}),i.line({start:f.q.construct(u.x,u.y),end:f.q.construct(h.x,h.y),stroke:this.obliqueLineColor,lineDash:a,lineWidth:c}),i.textContainer({text:[`${w.toFixed(2)} ${s.units??""} / S`],direction:"x",position:f.q.construct((u.x+h.x)/2,(u.y+h.y)/2),level:"small"}),i.circle({fill:s.color.setAlpha(.5),radius:8,position:u}),i.circle({fill:s.color.setAlpha(.8),radius:5,position:u}),i.circle({fill:new f.Color("#ffffff"),radius:2,position:u}),i.circle({fill:o.color.setAlpha(.5),radius:8,position:h}),i.circle({fill:o.color.setAlpha(.8),radius:5,position:h}),i.circle({fill:new f.Color("#ffffff"),radius:2,position:h})}}m(cn,"TYPE","measure");const Qu={[cn.TYPE]:cn},pS=Object.freeze(Object.defineProperty({__proto__:null,Measure:cn,REGISTRY:Qu,measureStateZ:Ti},Symbol.toStringTag,{value:"Module"})),th=E.z.object({triggered:E.z.boolean(),enabled:E.z.boolean(),sink:gs.optional().default(ds),source:ac.optional().default(ec)});class ls extends T.Leaf{constructor(){super(...arguments);m(this,"schema",th)}async afterUpdate(){var c;this.internal.addStatus=T.useOptionalAggregate(this.ctx);const{sink:n,source:r,triggered:s,enabled:o}=this.state,{triggered:i}=this.prevState,{internal:a}=this;this.internal.source=await ee(this.ctx,r,this.internal.source),a.sink=await fs(this.ctx,n,a.sink),s&&!i&&await a.sink.set(!o),await this.updateEnabledState(),(c=a.stopListening)==null||c.call(a),a.stopListening=a.source.onChange(()=>{this.updateEnabledState().catch(this.reportError.bind(this))})}reportError(n){this.internal.addStatus({key:this.key,variant:"error",message:`Failed to update Toggle: ${n.message}`})}async updateEnabledState(){const n=await this.internal.source.value();n!==this.state.enabled&&this.setState(r=>({...r,enabled:n,triggered:!1}))}async afterDelete(){await this.internalAfterDelete()}async internalAfterDelete(){var n,r,s,o;this.internal.stopListening(),await((r=(n=this.internal.source).cleanup)==null?void 0:r.call(n)),await((o=(s=this.internal.sink).cleanup)==null?void 0:o.call(s))}async render(){}}m(ls,"TYPE","Toggle");const gS={[ls.TYPE]:ls},mS=E.z.object({box:f.To.box,telem:lc.optional().default(nc),font:T.levelZ.optional().default("p"),color:f.Color.z.optional().default(f.ZERO),precision:E.z.number().optional().default(2),minWidth:E.z.number().optional().default(60),width:E.z.number().optional()}),An=class An extends T.Leaf{constructor(){super(...arguments);m(this,"schema",An.z)}async afterUpdate(){const{internal:n}=this;n.render=gt.use(this.ctx),n.theme=T.use(this.ctx),this.state.color.isZero?this.internal.textColor=n.theme.colors.gray.l8:n.textColor=this.state.color,n.telem=await ee(this.ctx,this.state.telem,n.telem),this.internal.telem.onChange(()=>this.requestRender()),this.internal.requestRender=yt.useOptionalRequest(this.ctx),this.requestRender()}async afterDelete(){var o;const{requestRender:n,telem:r,render:s}=this.internal;await((o=r.cleanup)==null?void 0:o.call(r)),n==null?s.erase(f.To.construct(this.state.box),f.q.ZERO,"upper2d"):n(Lt)}requestRender(){const{requestRender:n}=this.internal;n!=null?n(Lt):this.render({})}async render({viewportScale:n=f.k.XY.IDENTITY}){const{render:r,telem:s,theme:o}=this.internal,i=f.To.construct(this.state.box);if(f.To.areaIsZero(i))return;const a=r.upper2d.applyScale(n),c=await s.value();a.font=this.state.font;const l=o.typography[this.state.font].size*o.sizes.base,u=T.dimensions(c,T.fontString(this.internal.theme,this.state.font),a).width;this.internal.requestRender==null&&r.erase(f.To.construct(this.prevState.box));const h=u+o.sizes.base*4;(this.state.width==null||this.state.width<h||this.state.minWidth>h&&this.state.width!==this.state.minWidth)&&this.setState(p=>({...p,width:Math.max(h,p.minWidth)}));const d=f.q.couple(f.q.translate(f.To.topLeft(i),{x:0,y:f.To.height(i)/2},{y:l/2,x:12}));a.fillStyle=this.internal.textColor.hex,a.fillText(c,...d)}};m(An,"TYPE","value"),m(An,"z",mS);let ln=An;const eh={[ln.TYPE]:ln},yS=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:eh,Value:ln},Symbol.toStringTag,{value:"Module"})),wS=T.Sy.payloadZ.extend({viewport:f.R.bounds}),nh=E.z.object({cursor:f.q.xy.or(E.z.null()),hovered:wS.or(E.z.null()),count:E.z.number()});class Jn extends T.Leaf{constructor(){super(...arguments);m(this,"schema",nh);m(this,"fetchedInitial",T.U.ZERO)}async afterUpdate(){const{internal:n}=this;n.render=gt.use(this.ctx),n.draw=new ar(n.render.upper2d,T.use(this.ctx)),n.ranges==null&&(n.ranges=new Map);const r=tr(this.ctx);r!=null&&(n.client=r,n.tracker==null&&(n.tracker=await n.client.ranges.openTracker(),n.tracker.onChange(async s=>{s.forEach(async o=>{o.variant==="delete"?n.ranges.delete(o.key):n.ranges.set(o.key,o.value)}),yt.requestRender(this.ctx,ne),this.setState(o=>({...o,count:n.ranges.size}))})))}async fetchInitial(n){const{internal:r}=this;if(r.client==null||this.fetchedInitial.roughlyEquals(n,T.y.minutes(1)))return;this.fetchedInitial=n,(await r.client.ranges.retrieve(n)).forEach(o=>r.ranges.set(o.key,o)),this.setState(o=>({...o,count:r.ranges.size}))}async render(n){const{dataToDecimalScale:r,region:s,viewport:o,timeRange:i}=n;await this.fetchInitial(i);const{draw:a,ranges:c}=this.internal,l=r.scale(f.To.xBounds(s)),u=this.state.cursor==null?null:this.state.cursor.x;let h=null;const d=a.canvas.scissor(f.To.construct({x:f.To.left(s),y:f.To.top(s)-35},{x:f.To.right(s),y:f.To.bottom(s)}));c.forEach(p=>{const w=f.Color.z.safeParse(p.color);if(!w.success)return;const y=w.data;let b=l.pos(Number(p.timeRange.start.valueOf()));const S=l.pos(Number(p.timeRange.end.valueOf()));if(S<f.To.left(s)||b>f.To.right(s))return;b=f.j(b,f.To.left(s)-2,f.To.right(s)-1);let M=!1;u!=null&&(M=f.R.contains({lower:b,upper:S},u)),M&&(h={key:p.key,name:p.name,color:p.color,timeRange:p.timeRange,viewport:{lower:r.scale(f.To.xBounds(o)).pos(Number(p.timeRange.start.valueOf())),upper:r.scale(f.To.xBounds(o)).pos(Number(p.timeRange.end.valueOf()))}}),a.container({region:f.To.construct({x:b,y:f.To.top(s)-1},{x:S,y:f.To.bottom(s)-1}),backgroundColor:y.setAlpha(.07),bordered:!1});const _=f.To.construct({x:b+1,y:f.To.top(s)-34},{x:S-1,y:f.To.top(s)-12});a.container({region:_,backgroundColor:f.To.width(_)<20?y.setAlpha(.4):v=>M?v.colors.gray.l2:v.colors.gray.l0,bordered:!0,borderWidth:1,borderRadius:2,borderColor:y.setAlpha(.8)}),a.text({text:p.name,position:{x:b+8,y:f.To.top(s)-30},level:"small",shade:8,weight:500,maxWidth:S-b-16})}),d(),h!=null?this.setState(p=>({...p,hovered:h})):this.state.hovered&&this.setState(p=>({...p,hovered:null}))}}m(Jn,"TYPE","range-provider");const xS={[Wr.TYPE]:Wr,[Jn.TYPE]:Jn},SS=ir;class Qn extends ul{constructor(){super(...arguments);m(this,"schema",ir)}async render(n){if(this.deleted)return;const[r,s]=await this.dataToDecimalScale(n.hold,this.dataBounds.bind(this),n.viewport);if(this.renderAxis(n,r.reverse()),await this.renderYAxes(n,r),await this.renderRangeAnnotations(n,r),s!=null)throw s}async findByXDecimal(n,r){const[s,o]=await this.dataToDecimalScale(n.hold,this.dataBounds.bind(this),n.viewport);if(o!=null)throw o;return await this.findByXValue(n,s.reverse().pos(r))}async findByXValue(n,r){const[s,o]=await this.dataToDecimalScale(n.hold,this.dataBounds.bind(this),n.viewport);if(o!=null)throw o;const i={...n,xDataToDecimalScale:s},a=this.yAxes.map(async c=>await c.findByXValue(i,r));return(await Promise.all(a)).flat()}async renderYAxes(n,r){const s={...n,xDataToDecimalScale:r};await Promise.all(this.yAxes.map(async o=>await o.render(s)))}get yAxes(){return this.childrenOfType(Zn.TYPE)}get rangeAnnotations(){return this.childrenOfType(Jn.TYPE)}async renderRangeAnnotations(n,r){const[s,o]=await this.bounds(n.hold,this.dataBounds.bind(this));if(o!=null)throw o;await Promise.all(this.rangeAnnotations.map(async i=>await i.render({dataToDecimalScale:r,region:n.plot,viewport:n.viewport,timeRange:new T.U(s.lower,s.upper)})))}async dataBounds(){return await Promise.all(this.yAxes.map(async n=>await n.xBounds()))}}m(Qn,"TYPE","XAxis");const rh=E.z.object({container:f.To.box,viewport:f.To.box,hold:E.z.boolean().optional().default(!1),grid:E.z.record($c),clearOverScan:f.q.crudeZ.optional().default(f.q.ZERO)}),vS=(t,e)=>{const n=f.To.width(t)*Math.sqrt(f.To.height(t)),r=f.To.width(e)*Math.sqrt(f.To.height(e));return n/r};class us extends T.Composite{constructor(){super(...arguments);m(this,"schema",rh)}async afterUpdate(){this.internal.instrumentation=rr(this.ctx,"lineplot"),this.internal.aggregate=T.useAggregate(this.ctx),this.internal.renderCtx=gt.use(this.ctx),yt.control(this.ctx,n=>this.requestRender("low",n)),this.requestRender("high",Lt)}async afterDelete(){this.internal.renderCtx=gt.use(this.ctx),this.requestRender("high",Lt)}async findByXDecimal(n){const r={...this.state,plot:this.calculatePlot(),exposure:this.exposure},s=this.axes.flatMap(async o=>await o.findByXDecimal(r,n));return(await Promise.all(s)).flat()}async findByXValue(n){const r={...this.state,plot:this.calculatePlot(),exposure:this.exposure},s=this.axes.flatMap(async o=>await o.findByXValue(r,n));return(await Promise.all(s)).flat()}get axes(){return this.childrenOfType(Qn.TYPE)}get tooltips(){return this.childrenOfType(an.TYPE)}get measures(){return this.childrenOfType(cn.TYPE)}get exposure(){return vS(this.state.viewport,this.state.container)}async renderAxes(n,r){const s={...this.state,plot:n,canvases:r,exposure:this.exposure};await Promise.all(this.axes.map(async o=>await o.render(s)))}async renderTooltips(n,r){const s={findByXDecimal:this.findByXDecimal.bind(this),region:n,canvases:r};await Promise.all(this.tooltips.map(async o=>await o.render(s)))}async renderMeasures(n,r){const s={findByXDecimal:this.findByXDecimal.bind(this),findByXValue:this.findByXValue.bind(this),region:n,canvases:r};await Promise.all(this.measures.map(async o=>await o.render(s)))}calculatePlot(){return Rf(this.state.grid,this.state.container)}async render(n){const{renderCtx:r}=this.internal,{instrumentation:s}=this.internal;if(this.deleted){s.L.debug("deleted, skipping render",{key:this.key});return}const o=this.calculatePlot();s.L.debug("rendering",{key:this.key,viewport:this.state.viewport,container:this.state.container,grid:this.state.grid,plot:o,canvases:n});const i=f.q.construct(this.state.clearOverScan),a=r.scissor(this.state.container,i,n.filter(u=>u!=="gl")),c=r.scissor(o,f.q.ZERO,n.filter(u=>u==="gl"));try{await this.renderAxes(o,n),await this.renderTooltips(o,n),await this.renderMeasures(o,n),r.gl.finish(),r.gl.flush(),r.gl.finish()}catch(u){if(u.message.toLowerCase().includes("bigint"))return;this.internal.aggregate({key:`${this.type}-${this.key}`,variant:"error",message:u.message})}finally{a(),c()}s.L.debug("rendered",{key:this.key});const l=f.To.copy(this.state.container);return async({canvases:u})=>r.erase(l,this.state.clearOverScan,...u)}requestRender(n,r){const{renderCtx:s}=this.internal;let o=["upper2d","lower2d","gl"];r===ne&&(o=["upper2d"]),s.loop.set({key:`${this.type}-${this.key}`,render:async()=>await this.render(o),priority:n,canvases:o})}}m(us,"TYPE","LinePlot");const bS={[us.TYPE]:us,[Qn.TYPE]:Qn,[Zn.TYPE]:Zn};exports.AcquireChannelControl=Hn;exports.Annotation=Wr;exports.AuthoritySource=Vn;exports.BaseEdge=un;exports.BaseProvider=Ke;exports.Button=Qr;exports.Canvas=il;exports.Canvas$1=Xn;exports.Chip=Gr;exports.Context=gt;exports.Controller=yt;exports.Controller$1=Kr;exports.Diagram=hS;exports.Diagram$1=on;exports.Eraser=ei;exports.Eraser$1=cs;exports.GLProgram=ti;exports.Handle$1=Kn;exports.Indicator=jr;exports.Legend=Jr;exports.Line=Fn;exports.LinePlot=us;exports.Loop=al;exports.Measure=cn;exports.Provider=Pr;exports.Provider$1=Jn;exports.Provider$2=no;exports.REASON_DATA=uo;exports.REASON_LAYOUT=Lt;exports.REASON_TOOL=ne;exports.REGISTRY=bS;exports.REGISTRY$1=Pl;exports.REGISTRY$10=Qu;exports.REGISTRY$11=Og;exports.REGISTRY$12=zg;exports.REGISTRY$13=ff;exports.REGISTRY$14=fS;exports.REGISTRY$15=xS;exports.REGISTRY$2=ja;exports.REGISTRY$3=Lc;exports.REGISTRY$4=_g;exports.REGISTRY$5=eh;exports.REGISTRY$6=gS;exports.REGISTRY$7=Ku;exports.REGISTRY$8=dl;exports.REGISTRY$9=Ju;exports.ReactFlow=qu;exports.ReactFlowProvider=Si;exports.Rule=tn;exports.STATUSES=wl;exports.SetChannelValue=Un;exports.StateProvider=en;exports.Toggle=ls;exports.Tooltip=an;exports.Value=ln;exports.XAxis=Qn;exports.YAxis=Zn;exports.ZERO_CONTEXT_VALUE=Mo;exports.acquireChannelControl=Ng;exports.acquireChannelControlPropsZ=bl;exports.addEdge=au;exports.aether=Mg;exports.annotationStateZ=pl;exports.applyEdgeChanges=jw;exports.applyNodeChanges=Ru;exports.authoritySource=Dg;exports.authoritySourceProps=Tl;exports.axisStateZ=Qo;exports.buildNew=jx;exports.buttonStateZ=Cl;exports.canvas=Ig;exports.canvasStateZ=ri;exports.cc=vt;exports.channelData=yc;exports.checkIntegrity=Hx;exports.chipStateZ=gl;exports.controllerStateZ=Sl;exports.coreAxisStateZ=ir;exports.diagramStateZ=vi;exports.dragSegment=Qx;exports.edgeConverter=uS;exports.edgeZ=iS;exports.eraserStateZ=ju;exports.external=Cf;exports.filterGridEntries=fe;exports.indicatorStateZ=El;exports.legendStateZ=_l;exports.linePlotStateZ=rh;exports.measure=pS;exports.measureStateZ=Ti;exports.moveSourceNode=rS;exports.moveTargetNode=sS;exports.newTickFactory=lo;exports.nodeConverter=lS;exports.nodeZ=aS;exports.parseAutoBounds=hl;exports.provider=Hh;exports.providerStateZ=nh;exports.providerStateZ$1=Dc;exports.providerStateZ$2=Bo;exports.rfEdgeDataZ=Zu;exports.rollingAverage=kc;exports.rollingAverageProps=Yo;exports.ruleStateZ=ni;exports.segmentsToPoints=Vx;exports.setChannelValue=Ag;exports.setChannelValuePropsZ=vl;exports.setpoint=_c;exports.shallow$1=pt;exports.sinkPipeline=gc;exports.sinkPipelinePropsZ=Oo;exports.sourcePipeline=pc;exports.sourcePipelinePropsZ=Do;exports.stateProviderStateZ=ml;exports.stateZ=fl;exports.statusZ=xl;exports.streamChannelData=wc;exports.streamChannelValue=xc;exports.streamChannelValuePropsZ=zo;exports.stringifyNumber=Mc;exports.stringifyNumberProps=$o;exports.sugaredStateZ=yl;exports.tickFactoryProps=Jo;exports.tickType=jo;exports.toggleStateZ=th;exports.tooltip=dS;exports.tooltipStateZ=bi;exports.translateEdgesBackward=Xu;exports.translateEdgesForward=Hu;exports.translateNodesBackward=Vu;exports.translateNodesForward=Uu;exports.translateViewportBackward=Wu;exports.translateViewportForward=cS;exports.updateEdge=Sw;exports.useInitialViewport=Gu;exports.useOnViewportChange=Ux;exports.useReactFlow=_s;exports.useStore=lt;exports.useUpdateNodeInternals=Zx;exports.value=yS;exports.viewportZ=oS;exports.withinBounds=Cc;exports.withinSizeThreshold=cl;exports.xAxisStateZ=SS;exports.yAxisStateZ=kg;