@synnaxlabs/pluto 0.25.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Animated-DqAjXT8r.cjs → Animated-B5JgnUUd.cjs} +1 -1
- package/dist/{Animated-BpuQZROI.js → Animated-DLex_hI8.js} +2 -2
- package/dist/{Keyboard-BTyEk3pg.js → Keyboard-Dq4czdJl.js} +2 -2
- package/dist/{Keyboard-GDYsV4-x.cjs → Keyboard-cRnR69tU.cjs} +1 -1
- package/dist/{LinePlot-CQAK-dkX.js → LinePlot-CQD2Wqca.js} +2138 -2089
- package/dist/LinePlot-Co1s_Tqs.cjs +66 -0
- package/dist/{Link-BrhOiMiE.js → Link-0lZQ38cR.js} +1 -1
- package/dist/{Link-CpMcH9c1.cjs → Link-BhQ-K5io.cjs} +1 -1
- package/dist/{List-Dux7qweq.cjs → List-lSysLR6L.cjs} +1 -1
- package/dist/{List-BS57aL1n.js → List-xUwGRWFg.js} +2 -2
- package/dist/{Pack-_i2cfPYc.cjs → Pack-BM_LmeO7.cjs} +1 -1
- package/dist/{Pack-CCCsIeot.js → Pack-E_3LSkGG.js} +1 -1
- package/dist/{Toggle-DlNzb7nt.cjs → Toggle-BKoV45C3.cjs} +5 -5
- package/dist/{Toggle-CpLFBHo7.js → Toggle-BYLe2YvN.js} +4 -4
- package/dist/{Video-THwAEuOy.cjs → Video-A2NddcPS.cjs} +1 -1
- package/dist/{Video-Bi9kFIHV.js → Video-Ct4BfJzt.js} +1 -1
- package/dist/aggregator-BjcY2k2l.cjs +51 -0
- package/dist/{aggregator-CoD5WrqU.js → aggregator-ZdqEkvBK.js} +2055 -2055
- package/dist/align.cjs +1 -1
- package/dist/align.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/color.cjs +1 -1
- package/dist/color.js +1 -1
- package/dist/{css-Ce6IGevn.js → css-DEMSADUS.js} +140 -140
- package/dist/css-DY1Oedjj.cjs +1 -0
- package/dist/css.cjs +1 -1
- package/dist/css.js +2 -2
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/ether.cjs +1 -1
- package/dist/ether.js +42 -41
- package/dist/{external-CXrgzQf5.js → external--9Vu3Tvu.js} +2 -2
- package/dist/{external-B7RXnD0a.cjs → external-ARvsEsOz.cjs} +1 -1
- package/dist/{external-DShO9063.js → external-B432ukHJ.js} +3 -3
- package/dist/{external-DqnUE4mV.cjs → external-BAw0sDOf.cjs} +1 -1
- package/dist/external-BQS9le5M.cjs +1 -0
- package/dist/{external-C6v1z0ty.js → external-BlA8AVL_.js} +5 -5
- package/dist/{external-CLwP0eXe.cjs → external-Bs4ZUlV0.cjs} +1 -1
- package/dist/{external-DRvtVPhp.cjs → external-C5O8yyPx.cjs} +1 -1
- package/dist/{external-e0OPlFyY.js → external-CCaVfdMh.js} +4 -4
- package/dist/{external-Dm3eiIEN.cjs → external-CYaPBMuM.cjs} +1 -1
- package/dist/{external-DQ4EhNBA.js → external-CZ4JWSju.js} +11 -11
- package/dist/{external-C8CIAjMj.js → external-CZvU-o3e.js} +2 -2
- package/dist/{external-Cv5GChi6.js → external-Cq-09sZJ.js} +7 -7
- package/dist/{external-CUJXIrxM.cjs → external-Cq39ap_s.cjs} +1 -1
- package/dist/{external-DyTzmzSc.js → external-D3r8Iptl.js} +4 -4
- package/dist/{external-BxBMVx6g.js → external-D8t2fJPR.js} +5 -5
- package/dist/{external-DMYExlt2.cjs → external-DauKaEP3.cjs} +1 -1
- package/dist/{external-NHkWeW29.js → external-DlkO8mh4.js} +1 -1
- package/dist/{external-NeMo53nv.js → external-DluodP6q.js} +4 -4
- package/dist/{external-DU5Xqqld.cjs → external-Gp6DgYYV.cjs} +1 -1
- package/dist/{external-B815mDB0.cjs → external-aHhj9dKH.cjs} +1 -1
- package/dist/{external-DjSiwSCE.cjs → external-wfqDajHH.cjs} +1 -1
- package/dist/{external-D_WKlwCh.js → external-xFWuaTdI.js} +7 -7
- package/dist/{external-CMk1k986.cjs → external-xb_RKgNH.cjs} +1 -1
- package/dist/header.cjs +1 -1
- package/dist/header.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +4122 -4040
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/src/pluto/aether/index.d.ts +1 -1
- package/dist/src/pluto/aether/index.d.ts.map +1 -1
- package/dist/src/pluto/aether/{ pluto.d.ts → pluto.d.ts} +1 -1
- package/dist/src/pluto/aether/pluto.d.ts.map +1 -0
- package/dist/src/vis/schematic/Forms.d.ts +4 -0
- package/dist/src/vis/schematic/Forms.d.ts.map +1 -1
- package/dist/src/vis/schematic/Symbols.d.ts +14 -0
- package/dist/src/vis/schematic/Symbols.d.ts.map +1 -1
- package/dist/src/vis/schematic/primitives/Primitives.d.ts +8 -0
- package/dist/src/vis/schematic/primitives/Primitives.d.ts.map +1 -1
- package/dist/src/vis/schematic/registry.d.ts +1 -1
- package/dist/src/vis/schematic/registry.d.ts.map +1 -1
- package/dist/src/vis/setpoint/aether/index.d.ts +2 -0
- package/dist/src/vis/setpoint/aether/index.d.ts.map +1 -0
- package/dist/src/vis/setpoint/aether/setpoint.d.ts +200 -0
- package/dist/src/vis/setpoint/aether/setpoint.d.ts.map +1 -0
- package/dist/src/vis/setpoint/index.d.ts +2 -0
- package/dist/src/vis/setpoint/index.d.ts.map +1 -0
- package/dist/src/vis/setpoint/use.d.ts +11 -0
- package/dist/src/vis/setpoint/use.d.ts.map +1 -0
- package/dist/style.css +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/text.cjs +1 -1
- package/dist/text.js +2 -2
- package/dist/theming.cjs +1 -1
- package/dist/theming.js +2 -2
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/triggers.cjs +1 -1
- package/dist/triggers.js +1 -1
- package/dist/{units-DlP7zkaE.js → units-BREWRknL.js} +1 -1
- package/dist/{units-CoE6Mywf.cjs → units-DNx3byGw.cjs} +1 -1
- package/dist/video.cjs +1 -1
- package/dist/video.js +1 -1
- package/package.json +4 -4
- package/dist/LinePlot-DnLLplw_.cjs +0 -66
- package/dist/aggregator-D47lwtdn.cjs +0 -51
- package/dist/css-CC1MhhH7.cjs +0 -1
- package/dist/external-Do75w1Zt.cjs +0 -1
- package/dist/src/pluto/aether/ pluto.d.ts.map +0 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";var Zh=Object.defineProperty;var Uh=(t,e,n)=>e in t?Zh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var m=(t,e,n)=>Uh(t,typeof e!="symbol"?e+"":e,n);const T=require("./aggregator-BjcY2k2l.cjs"),E=require("zod"),f=require("./css-DY1Oedjj.cjs"),x=require("react");require("react-dom");const Hh=Object.freeze(Object.defineProperty({__proto__:null,ALIGNMENTS:f.u,ORDERS:f.d,alignment:f.D,order:f.j$1},Symbol.toStringTag,{value:"Module"}));var Vh=Object.defineProperty,Xh=(t,e,n)=>e in t?Vh(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,to=(t,e,n)=>Xh(t,typeof e!="symbol"?e+"":e,n);class Gh{constructor(e,n){to(this,"handlers"),to(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 Wh{constructor(e){to(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 ko=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:Wh,Observer:Gh},Symbol.toStringTag,{value:"Module"})),Kh=E.z.object({props:T.Mh.nullable(),state:T.Zh.connectivity.connectionStateZ.nullable()}),Mo={synnax:null,state:T.Zh.connectivity.DEFAULT};var Jt;let Rr=(Jt=class extends T.Composite{constructor(){super(...arguments);m(this,"schema",Jt.stateZ)}async afterUpdate(){var n;if(this.ctx.has(Ao)||As(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),As(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}))),As(this.ctx,this.internal))}},m(Jt,"TYPE","SynnaxProvider"),m(Jt,"stateZ",Kh),Jt);const Ao="pluto-client-context",As=(t,e)=>t.set(Ao,e),tr=t=>t.get(Ao).synnax,Ja={[Rr.TYPE]:Rr},jh=Object.freeze(Object.defineProperty({__proto__:null,Provider:Rr,REGISTRY:Ja,ZERO_CONTEXT_VALUE:Mo,use:tr},Symbol.toStringTag,{value:"Module"})),Qa="pluto-telem-context",ds=t=>t.get(Qa),tc=(t,e)=>t.set(Qa,e),ec=(t,e)=>ds(t).registerFactory(e);class ki{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 Ht=async(t,e,n)=>{var s;const r=ds(t);if(n instanceof ki){if(!n.shouldUpdate(r,e))return n;await((s=n.cleanup)==null?void 0:s.call(n))}return new ki(r.create(e),r,e)},er=async(t,e,n)=>{var s;const r=ds(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 ko.Observer{async cleanup(){}}class kr extends ve{async set(){return await Promise.resolve()}}m(kr,"TYPE","noop-boolean-sink");const ps={type:kr.TYPE,props:{},variant:"sink",valueType:"boolean"};class Mr extends ve{async set(){return await Promise.resolve()}}m(Mr,"TYPE","noop-numeric-sink");const nc={type:Mr.TYPE,props:{},variant:"sink",valueType:"number"};class Ar extends ve{async value(){return await Promise.resolve(!1)}}m(Ar,"TYPE","noop-boolean-source");const rc={type:Ar.TYPE,props:{},variant:"source",valueType:"boolean"};class Nr extends ve{async value(){return 0}}m(Nr,"TYPE","noop-numeric-source");const sc={type:Nr.TYPE,props:{},variant:"source",valueType:"number"};class Dr extends ve{async value(){return""}}m(Dr,"TYPE","noop-string-source");const oc={type:Dr.TYPE,props:{},variant:"source",valueType:"string"};class Or extends ve{async value(){return{key:"noop",variant:"disabled",message:"unknown",time:T.m.now()}}}m(Or,"TYPE","noop-status-source");const No={type:Or.TYPE,props:{},variant:"source",valueType:"status"};class zr extends ve{async value(){return f.ZERO}}m(zr,"TYPE","noop-color-source");const ic={type:zr.TYPE,props:{},variant:"source",valueType:"color"},Jh={[kr.TYPE]:kr,[Mr.TYPE]:Mr,[Ar.TYPE]:Ar,[Nr.TYPE]:Nr,[Or.TYPE]:Or,[zr.TYPE]:zr,[Dr.TYPE]:Dr};class ac{constructor(){m(this,"type","noop")}create(e){const n=Jh[e.type];return n==null?null:new n}}const Qh=E.z.instanceof(ArrayBuffer),nr=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(Qh).optional()}),re=nr.extend({variant:E.z.literal("source")}),gs=nr.extend({variant:E.z.literal("sink")}),cc=nr.extend({variant:E.z.literal("source-transformer")}),lc=nr.extend({variant:E.z.literal("sink-transformer")}),eo=re.extend({valueType:E.z.literal("series")}),uc=re.extend({valueType:E.z.literal("boolean")}),ms=gs.extend({valueType:E.z.literal("boolean")}),tf=lc.extend({valueType:E.z.literal("boolean")}),ef=cc.extend({valueType:E.z.literal("boolean")}),hc=re.extend({valueType:E.z.literal("number")}),fc=gs.extend({valueType:E.z.literal("number")}),dc=re.extend({valueType:E.z.literal("color")}),Do=re.extend({valueType:E.z.literal("status")}),pc=re.extend({valueType:E.z.literal("string")});class ys extends ko.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 ys{}class ws extends ys{}class rr 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 gc 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 mc extends ys{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 yc=E.z.object({from:E.z.string(),to:E.z.string()}),Oo=E.z.object({connections:E.z.array(yc),outlet:E.z.string(),segments:E.z.record(re)});class wc{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",Oo);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 xc=(t,e)=>({variant:"source",props:e,type:Nn.TYPE,valueType:t}),zo=E.z.object({connections:E.z.array(yc),inlet:E.z.string(),segments:E.z.record(gs)});class Dn extends ws{constructor(n,r){super(n);m(this,"schema",zo);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 Sc=(t,e)=>({variant:"sink",props:e,type:Dn.TYPE,valueType:t}),Io=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",Io);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 Lo(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 Lo=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}},nf=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",nf);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 Lo(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 rf=E.z.object({channel:E.z.number().or(E.z.string()),useIndexOfChannel:E.z.boolean().optional().default(!1),timeSpan:T.w.z,keepFor:T.w.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",rf);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 Lo(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 sf={[zn.TYPE]:zn,[In.TYPE]:In,[On.TYPE]:On};class vc{constructor(e){m(this,"type","remote");m(this,"client");this.client=e}create(e){const n=sf[e.type];return n==null?null:new n(this.client,e.props)}}const bc=t=>({type:zn.TYPE,props:t,variant:"source",valueType:"series"}),Tc=t=>({type:In.TYPE,props:t,variant:"source",valueType:"series"}),Ec=t=>({type:On.TYPE,props:t,variant:"source",valueType:"number"});class _c{constructor(){m(this,"type","static")}create(e){switch(e.type){case Ir.TYPE:return new Ir(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 $o=E.z.object({data:E.z.array(T.wt),offsets:E.z.array(E.z.number()).optional().default([])});class Ir extends _t{constructor(n){super(n);m(this,"data");m(this,"schema",$o);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(Ir,"TYPE","static-series");const Cc=$o.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",Cc);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 Pc=E.z.number();class $n extends _t{constructor(){super(...arguments);m(this,"schema",Pc)}async value(){return this.props}}m($n,"TYPE","static-numeric");const Rc=E.z.string();class Yn extends _t{constructor(){super(...arguments);m(this,"schema",Rc)}async value(){return this.props}}m(Yn,"TYPE","static-string");const of=t=>({type:Ir.TYPE,props:t,variant:"source",valueType:"series"}),af=t=>({type:Ln.TYPE,props:t,variant:"source",valueType:"series"}),cf=t=>({type:$n.TYPE,props:t,variant:"source",valueType:"number"}),lf=t=>({type:Yn.TYPE,props:t,variant:"source",valueType:"string"});class kc{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 Ge.TYPE:return new Ge(e.props);case We.TYPE:return new We(e.props)}return null}}const uf=E.z.object({truthy:E.z.number().optional().default(1),falsy:E.z.number().optional().default(0)}),Mc=t=>({props:t,type:Ue.TYPE,variant:"sink",valueType:"boolean"}),Cn=class Cn extends mc{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",uf);let Ue=Cn;const hf=E.z.object({trueBound:f.R.bounds}),Ac=t=>({props:t,type:He.TYPE,variant:"source",valueType:"boolean"}),Pn=class Pn extends rr{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",hf);let He=Pn;const Nc=E.z.object({}),Rn=class Rn extends gc{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",Nc);let Ve=Rn;const ff=t=>({props:t,type:Ve.TYPE,variant:"source",valueType:"boolean"}),Dc=E.z.object({trueVariant:T.variantZ.optional().default("success")}),kn=class kn extends rr{constructor(){super(...arguments);m(this,"schema",kn.propsZ)}transform(n){return n.variant===this.props.trueVariant}};m(kn,"TYPE","boolean-status"),m(kn,"propsZ",Dc);let Xe=kn;const df=t=>({props:t,type:Xe.TYPE,variant:"source",valueType:"boolean"}),Yo=E.z.object({precision:E.z.number().optional().default(2),prefix:E.z.string().optional().default(""),suffix:E.z.string().optional().default("")}),Mn=class Mn extends rr{constructor(){super(...arguments);m(this,"schema",Mn.propsZ)}transform(n){return`${this.props.prefix}${n.toFixed(this.props.precision)}${this.props.suffix}`}};m(Mn,"TYPE","stringify-number"),m(Mn,"propsZ",Yo);let Ge=Mn;const Oc=t=>({props:t,type:Ge.TYPE,variant:"source",valueType:"string"}),Bo=E.z.object({windowSize:E.z.number().optional().default(5)});class We extends rr{constructor(){super(...arguments);m(this,"schema",Bo);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(We,"TYPE","rolling-average"),m(We,"propsZ",Nc);const zc=t=>({props:t,type:We.TYPE,variant:"source",valueType:"number"});class Ic{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 Lc=t=>{const e=[new kc,new _c,new ac],n=new Ic(e);return t!=null&&n.add(new vc(t)),n.add(new wc(n)),n},$c=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")}),no="alamos-provider";var Qs;let ro=(Qs=class extends T.Composite{constructor(){super(...arguments);m(this,"schema",$c)}async afterUpdate(){if(this.ctx.getOptional(no)!=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(no,this.internal.ins)}},m(Qs,"TYPE","AlamosProvider"),Qs);const sr=(t,e)=>{const n=t.get(no);if(n==null)throw new Error("No instrumentation provider");return e==null?n:n.child(e)},pf={[ro.TYPE]:ro},Yc=(t,e)=>(e==null&&t.dataType.equals(T.g.TIMESTAMP)&&(e=BigInt(t.data[0])),t.convert(T.g.FLOAT32,e)),Bc=()=>({purgedSeries:0,purgedBytes:T.C$1.bytes(0)}),qc={instrumentation:T.g$1.NOOP,staleEntryThreshold:T.w.seconds(20)};class gf{constructor(e){m(this,"data",[]);m(this,"props");this.props={...qc,...e}}write(e){e.length!==0&&(e.forEach(n=>this.writeOne(Yc(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=Bc(),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 mf=100,yf=1e6,wf=1e4,xf=100;class Sf{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=Yc(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<xf)return wf;const n=f.C$1.roundToNearestMagnitude(this.avgRate*e.seconds);return Math.round(Math.max(Math.min(n,yf),mf))}close(){this.buffer=null}}class vf{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 gf(e),this.dynamic=new Sf({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 bf=T.S.seconds(60);class Tf{constructor(e){m(this,"props");m(this,"cache",new Map);m(this,"gcInterval");this.props={dynamicBufferSize:bf,gcInterval:T.S.seconds(30),...qc,...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 vf({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=Bc();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 Lr{constructor(e,n){m(this,"channel");m(this,"data");this.channel=e,this.data=n}get timeRange(){if(this.data.length===0)return T.V.ZERO;const e=this.data[0].timeRange,n=this.data[this.data.length-1].timeRange;return new T.V(e.start,n.end)}get digest(){return{channel:this.channel.key,timeRange:this.timeRange.toPrettyString(),series:this.data.map(e=>e.digest)}}}const Ns=t=>t.map(e=>e.digest);class Ef{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.w.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 Lr(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:Ns(Object.values(a)),time:T.w.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:Ns(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 Lr(l.channel,u)}return r.debug("read satisfied by fetch",()=>({tr:e.toPrettyString(),channels:n,responses:Ns(Object.values(a)),time:T.w.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.w.milliseconds(5))&&d.end.span(l.end).lessThan(T.w.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 _f{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 Lr(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 Lr(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 Cf{constructor(){m(this,"key",T.mt.id());m(this,"_client",null)}async swap(e){var n;this.key=T.mt.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 Pf{constructor({instrumentation:e,core:n}){m(this,"key",T.mt.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 Tf({channelRetriever:this.channelRetriever,instrumentation:this.ins.child("cache")}),this.reader=new Ef({cache:this.cache,readRemote:async(r,s)=>await n.read(r,s),instrumentation:this.ins.child("reader")}),this.streamer=new _f({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 qo=E.z.object({}),Le=class Le extends T.Composite{constructor(){super(...arguments);m(this,"client",new Cf);m(this,"factory",Lc(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=sr(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 Pf({core:n,instrumentation:r})),this.prevClient=n,tc(this.ctx,this))}};m(Le,"TYPE","TelemProvider"),m(Le,"stateZ",qo);let Ke=Le;const Fc={[Ke.TYPE]:Ke},Rf=Object.freeze(Object.defineProperty({__proto__:null,AbstractSink:ws,AbstractSource:_t,Base:ys,BaseProvider:Ke,BooleanStatus:Xe,ChannelData:zn,CompoundTelemFactory:Ic,FixedNumber:$n,FixedString:Yn,IterativeSeries:Ln,Mean:Ve,MultiSourceTransformer:gc,NoopFactory:ac,PipelineFactory:wc,REGISTRY:Fc,RemoteFactory:vc,RollingAverage:We,SetPoint:Ue,SinkPipeline:Dn,SourcePipeline:Nn,StaticFactory:_c,StreamChannelData:In,StreamChannelValue:On,StringifyNumber:Ge,TransformerFactory:kc,UnarySinkTransformer:mc,UnarySourceTransformer:rr,WithinBounds:He,booleanSinkSpecZ:ms,booleanSinkTransformerSpecZ:tf,booleanSourceSpecZ:uc,booleanSourceTransformerSpecZ:ef,booleanStatus:df,booleanStatusProps:Dc,channelData:bc,colorSourceSpecZ:dc,factory:Lc,fixedArray:of,fixedNumber:cf,fixedNumberPropsZ:Pc,fixedSeriesPropsZ:$o,fixedString:lf,fixedStringPropsZ:Rc,iterativeArray:af,iterativeSeriesPropsZ:Cc,mean:ff,noopBooleanSinkSpec:ps,noopBooleanSourceSpec:rc,noopColorSourceSpec:ic,noopNumericSinkSpec:nc,noopNumericSourceSpec:sc,noopStatusSourceSpec:No,noopStringSourceSpec:oc,numberSinkSpecZ:fc,numberSourceSpecZ:hc,providerStateZ:qo,registerFactory:ec,rollingAverage:zc,rollingAverageProps:Bo,seriesSourceSpecZ:eo,setProvider:tc,setpoint:Mc,sinkPipeline:Sc,sinkPipelinePropsZ:zo,sinkSpecZ:gs,sinkTransformerSpecZ:lc,sourcePipeline:xc,sourcePipelinePropsZ:Oo,sourceSpecZ:re,sourceTransformerSpecZ:cc,specZ:nr,statusSourceSpecZ:Do,streamChannelData:Tc,streamChannelValue:Ec,streamChannelValuePropsZ:Io,stringSourceSpecZ:pc,stringifyNumber:Oc,stringifyNumberProps:Yo,useProvider:ds,useSink:er,useSource:Ht,withinBounds:Ac},Symbol.toStringTag,{value:"Module"})),Zc=E.z.object({key:E.z.string(),size:E.z.number(),order:Hh.order,loc:f.J.outer});E.z.record(Zc);const fe=(t,e)=>Object.values(e).filter(({loc:n})=>n===t).sort((n,r)=>T.E.order(n.order,r.order)),kf=(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])}},Mf=(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 br(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Af(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Fo(t){let e,n,r;t.length!==2?(e=br,n=(a,c)=>br(t(a),c),r=(a,c)=>t(a)-c):(e=t===br||t===Af?t:Nf,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 Nf(){return 0}function Df(t){return t===null?NaN:+t}const Of=Fo(br),zf=Of.right;Fo(Df).center;const If=Math.sqrt(50),Lf=Math.sqrt(10),$f=Math.sqrt(2);function $r(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>=If?10:o>=Lf?5:o>=$f?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?$r(t,e,n*2):[a,c,l]}function Yf(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?$r(e,t,n):$r(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 so(t,e,n){return e=+e,t=+t,n=+n,$r(t,e,n)[2]}function oo(t,e,n){e=+e,t=+t,n=+n;const r=e<t,s=r?so(e,t,n):so(t,e,n);return(r?-1:1)*(s<0?1/-s:s)}function Uc(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function Zo(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Hc(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function or(){}var Bn=.7,Yr=1/Bn,Be="\\s*([+-]?\\d+)\\s*",qn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",It="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Bf=/^#([0-9a-f]{3,8})$/,qf=new RegExp(`^rgb\\(${Be},${Be},${Be}\\)$`),Ff=new RegExp(`^rgb\\(${It},${It},${It}\\)$`),Zf=new RegExp(`^rgba\\(${Be},${Be},${Be},${qn}\\)$`),Uf=new RegExp(`^rgba\\(${It},${It},${It},${qn}\\)$`),Hf=new RegExp(`^hsl\\(${qn},${It},${It}\\)$`),Vf=new RegExp(`^hsla\\(${qn},${It},${It},${qn}\\)$`),Ai={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};Zo(or,ye,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Ni,formatHex:Ni,formatHex8:Xf,formatHsl:Gf,formatRgb:Di,toString:Di});function Ni(){return this.rgb().formatHex()}function Xf(){return this.rgb().formatHex8()}function Gf(){return Vc(this).formatHsl()}function Di(){return this.rgb().formatRgb()}function ye(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Bf.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Oi(e):n===3?new mt(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?ur(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?ur(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=qf.exec(t))?new mt(e[1],e[2],e[3],1):(e=Ff.exec(t))?new mt(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=Zf.exec(t))?ur(e[1],e[2],e[3],e[4]):(e=Uf.exec(t))?ur(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Hf.exec(t))?Li(e[1],e[2]/100,e[3]/100,1):(e=Vf.exec(t))?Li(e[1],e[2]/100,e[3]/100,e[4]):Ai.hasOwnProperty(t)?Oi(Ai[t]):t==="transparent"?new mt(NaN,NaN,NaN,0):null}function Oi(t){return new mt(t>>16&255,t>>8&255,t&255,1)}function ur(t,e,n,r){return r<=0&&(t=e=n=NaN),new mt(t,e,n,r)}function Wf(t){return t instanceof or||(t=ye(t)),t?(t=t.rgb(),new mt(t.r,t.g,t.b,t.opacity)):new mt}function io(t,e,n,r){return arguments.length===1?Wf(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}Zo(mt,io,Hc(or,{brighter(t){return t=t==null?Yr:Math.pow(Yr,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),Br(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:zi,formatHex:zi,formatHex8:Kf,formatRgb:Ii,toString:Ii}));function zi(){return`#${de(this.r)}${de(this.g)}${de(this.b)}`}function Kf(){return`#${de(this.r)}${de(this.g)}${de(this.b)}${de((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ii(){const t=Br(this.opacity);return`${t===1?"rgb(":"rgba("}${ge(this.r)}, ${ge(this.g)}, ${ge(this.b)}${t===1?")":`, ${t})`}`}function Br(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 Li(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 Vc(t){if(t instanceof Rt)return new Rt(t.h,t.s,t.l,t.opacity);if(t instanceof or||(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 jf(t,e,n,r){return arguments.length===1?Vc(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}Zo(Rt,jf,Hc(or,{brighter(t){return t=t==null?Yr:Math.pow(Yr,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(Ds(t>=240?t-240:t+120,s,r),Ds(t,s,r),Ds(t<120?t+240:t-120,s,r),this.opacity)},clamp(){return new Rt($i(this.h),hr(this.s),hr(this.l),Br(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=Br(this.opacity);return`${t===1?"hsl(":"hsla("}${$i(this.h)}, ${hr(this.s)*100}%, ${hr(this.l)*100}%${t===1?")":`, ${t})`}`}}));function $i(t){return t=(t||0)%360,t<0?t+360:t}function hr(t){return Math.max(0,Math.min(1,t||0))}function Ds(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 Uo=t=>()=>t;function Jf(t,e){return function(n){return t+n*e}}function Qf(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 td(t){return(t=+t)==1?Xc:function(e,n){return n-e?Qf(e,n,t):Uo(isNaN(e)?n:e)}}function Xc(t,e){var n=e-t;return n?Jf(t,n):Uo(isNaN(t)?e:t)}const qr=function t(e){var n=td(e);function r(s,o){var i=n((s=io(s)).r,(o=io(o)).r),a=n(s.g,o.g),c=n(s.b,o.b),l=Xc(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 ed(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 nd(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function rd(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]=Ho(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 sd(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 od(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]=Ho(t[s],e[s]):r[s]=e[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var ao=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Os=new RegExp(ao.source,"g");function id(t){return function(){return t}}function ad(t){return function(e){return t(e)+""}}function Gc(t,e){var n=ao.lastIndex=Os.lastIndex=0,r,s,o,i=-1,a=[],c=[];for(t=t+"",e=e+"";(r=ao.exec(t))&&(s=Os.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=Os.lastIndex;return n<e.length&&(o=e.slice(n),a[i]?a[i]+=o:a[++i]=o),a.length<2?c[0]?ad(c[0].x):id(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 Ho(t,e){var n=typeof e,r;return e==null||n==="boolean"?Uo(e):(n==="number"?Pt:n==="string"?(r=ye(e))?(e=r,qr):Gc:e instanceof ye?qr:e instanceof Date?sd:nd(e)?ed:Array.isArray(e)?rd:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?od:Pt)(t,e)}function cd(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Yi=180/Math.PI,co={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Wc(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)*Yi,skewX:Math.atan(c)*Yi,scaleX:i,scaleY:a}}var fr;function ld(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?co:Wc(e.a,e.b,e.c,e.d,e.e,e.f)}function ud(t){return t==null||(fr||(fr=document.createElementNS("http://www.w3.org/2000/svg","g")),fr.setAttribute("transform",t),!(t=fr.transform.baseVal.consolidate()))?co:(t=t.matrix,Wc(t.a,t.b,t.c,t.d,t.e,t.f))}function Kc(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 hd=Kc(ld,"px, ","px)","deg)"),fd=Kc(ud,", ",")",")"),dd=1e-12;function Bi(t){return((t=Math.exp(t))+1/t)/2}function pd(t){return((t=Math.exp(t))-1/t)/2}function gd(t){return((t=Math.exp(2*t))-1)/(t+1)}const md=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<dd)S=Math.log(d/l)/e,b=function(D){return[a+D*p,c+D*w,l*Math.exp(e*D*S)]};else{var k=Math.sqrt(y),_=(d*d-l*l+r*y)/(2*l*n*k),v=(d*d-l*l-r*y)/(2*d*n*k),M=Math.log(Math.sqrt(_*_+1)-_),C=Math.log(Math.sqrt(v*v+1)-v);S=(C-M)/e,b=function(D){var $=D*S,O=Bi(M),Z=l/(n*k)*(O*gd(e*$+M)-pd(M));return[a+Z*p,c+Z*w,l*O/Bi(e*$+M)]}}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 yd(t){return function(){return t}}function wd(t){return+t}var qi=[0,1];function Oe(t){return t}function lo(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:yd(isNaN(e)?NaN:.5)}function xd(t,e){var n;return t>e&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function Sd(t,e,n){var r=t[0],s=t[1],o=e[0],i=e[1];return s<r?(r=lo(s,r),o=n(i,o)):(r=lo(r,s),o=n(o,i)),function(a){return o(r(a))}}function vd(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]=lo(t[i],t[i+1]),o[i]=n(e[i],e[i+1]);return function(a){var c=zf(t,a,1,r)-1;return o[c](s[c](a))}}function jc(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function bd(){var t=qi,e=qi,n=Ho,r,s,o,i=Oe,a,c,l;function u(){var d=Math.min(t.length,e.length);return i!==Oe&&(i=xd(t[0],t[d-1])),a=d>2?vd:Sd,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,wd),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=cd,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 Jc(){return bd()(Oe,Oe)}function Td(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Fr(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=Fr(Math.abs(t)),t?t[1]:NaN}function Ed(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 _d(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var Cd=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Zr(t){if(!(e=Cd.exec(t)))throw new Error("invalid format: "+t);var e;return new Vo({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]})}Zr.prototype=Vo.prototype;function Vo(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+""}Vo.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 Pd(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 Qc;function Rd(t,e){var n=Fr(t,e);if(!n)return t+"";var r=n[0],s=n[1],o=s-(Qc=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")+Fr(t,Math.max(0,e+o-1))[0]}function Fi(t,e){var n=Fr(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 Zi={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Td,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)=>Fi(t*100,e),r:Fi,s:Rd,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Ui(t){return t}var Hi=Array.prototype.map,Vi=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function kd(t){var e=t.grouping===void 0||t.thousands===void 0?Ui:Ed(Hi.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?Ui:_d(Hi.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=Zr(h);var d=h.fill,p=h.align,w=h.sign,y=h.symbol,b=h.zero,S=h.width,k=h.comma,_=h.precision,v=h.trim,M=h.type;M==="n"?(k=!0,M="g"):Zi[M]||(_===void 0&&(_=12),v=!0,M="g"),(b||d==="0"&&p==="=")&&(b=!0,d="0",p="=");var C=y==="$"?n:y==="#"&&/[boxX]/.test(M)?"0"+M.toLowerCase():"",D=y==="$"?r:/[%p]/.test(M)?i:"",$=Zi[M],O=/[defgprs%]/.test(M);_=_===void 0?6:/[gprs]/.test(M)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function Z(N){var U=C,Y=D,g,A,R;if(M==="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=Pd(N)),z&&+N==0&&w!=="+"&&(z=!1),U=(z?w==="("?w:a:w==="-"||w==="("?"":w)+U,Y=(M==="s"?Vi[8+Qc/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}}}k&&!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(k&&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=Zr(h),h.type="f",h)),w=Math.max(-8,Math.min(8,Math.floor(je(d)/3)))*3,y=Math.pow(10,-w),b=Vi[8+w/3];return function(S){return p(y*S)+b}}return{format:l,formatPrefix:u}}var dr,tl,el;Md({thousands:",",grouping:[3],currency:["$",""]});function Md(t){return dr=kd(t),tl=dr.format,el=dr.formatPrefix,dr}function Ad(t){return Math.max(0,-je(Math.abs(t)))}function Nd(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(je(e)/3)))*3-je(Math.abs(t)))}function Dd(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,je(e)-je(t))+1}function Od(t,e,n,r){var s=oo(t,e,n),o;switch(r=Zr(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(o=Nd(s,i))&&(r.precision=o),el(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Dd(s,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Ad(s))&&(r.precision=o-(r.type==="%")*2);break}}return tl(r)}function zd(t){var e=t.domain;return t.ticks=function(n){var r=e();return Yf(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var s=e();return Od(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=so(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 nl(){var t=Jc();return t.copy=function(){return jc(t,nl())},Uc.apply(t,arguments),zd(t)}function Id(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 zs=new Date,Is=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)=>(zs.setTime(+o),Is.setTime(+i),t(zs),t(Is),Math.floor(n(zs,Is))),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 Ur=ut(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Ur.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):Ur);Ur.range;const Ft=1e3,Tt=Ft*60,Zt=Tt*60,Vt=Zt*24,Xo=Vt*7,Xi=Vt*30,Ls=Vt*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 Go=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());Go.range;const Ld=ut(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*Tt)},(t,e)=>(e-t)/Tt,t=>t.getUTCMinutes());Ld.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 $d=ut(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Zt)},(t,e)=>(e-t)/Zt,t=>t.getUTCHours());$d.range;const ir=ut(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Tt)/Vt,t=>t.getDate()-1);ir.range;const Ko=ut(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Vt,t=>t.getUTCDate()-1);Ko.range;const Yd=ut(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/Vt,t=>Math.floor(t/Vt));Yd.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)/Xo)}const xs=be(0),Hr=be(1),Bd=be(2),qd=be(3),Je=be(4),Fd=be(5),Zd=be(6);xs.range;Hr.range;Bd.range;qd.range;Je.range;Fd.range;Zd.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)/Xo)}const rl=Te(0),Vr=Te(1),Ud=Te(2),Hd=Te(3),Qe=Te(4),Vd=Te(5),Xd=Te(6);rl.range;Vr.range;Ud.range;Hd.range;Qe.range;Vd.range;Xd.range;const jo=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());jo.range;const Gd=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());Gd.range;const Xt=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());Xt.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)});Xt.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 Wd(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,Vt],[r,2,2*Vt],[n,1,Xo],[e,1,Xi],[e,3,3*Xi],[t,1,Ls]];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=Fo(([,,b])=>b).right(i,d);if(p===i.length)return t.every(oo(l/Ls,u/Ls,h));if(p===0)return Ur.every(Math.max(oo(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[Kd,jd]=Wd(Xt,jo,xs,ir,Wo,Go);function $s(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 Ys(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 Jd(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),k=yn(c),_={a:z,A:B,b:P,B:I,c:null,d:Qi,e:Qi,f:vp,g:Ap,G:Dp,H:wp,I:xp,j:Sp,L:sl,m:bp,M:Tp,p:q,q:F,Q:na,s:ra,S:Ep,u:_p,U:Cp,V:Pp,w:Rp,W:kp,x:null,X:null,y:Mp,Y:Np,Z:Op,"%":ea},v={a:X,A:V,b:K,B:tt,c:null,d:ta,e:ta,f:$p,g:Gp,G:Kp,H:zp,I:Ip,j:Lp,L:il,m:Yp,M:Bp,p:et,q:ot,Q:na,s:ra,S:qp,u:Fp,U:Zp,V:Up,w:Hp,W:Vp,x:null,X:null,y:Xp,Y:Wp,Z:jp,"%":ea},M={a:Z,A:N,b:U,B:Y,c:g,d:ji,e:ji,f:pp,g:Ki,G:Wi,H:Ji,I:Ji,j:up,L:dp,m:lp,M:hp,p:O,q:cp,Q:mp,s:yp,S:fp,u:rp,U:sp,V:op,w:np,W:ip,x:A,X:R,y:Ki,Y:Wi,Z:ap,"%":gp};_.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,G){return function(j){var L=[],it=-1,J=0,nt=H.length,at,rt,W;for(j instanceof Date||(j=new Date(+j));++it<nt;)H.charCodeAt(it)===37&&(L.push(H.slice(J,it)),(rt=Gi[at=H.charAt(++it)])!=null?at=H.charAt(++it):rt=at==="e"?" ":"0",(W=G[at])&&(at=W(j,rt)),L.push(at),J=it+1);return L.push(H.slice(J,it)),L.join("")}}function D(H,G){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(G&&!("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=Ys(gn(L.y,0,1)),nt=J.getUTCDay(),J=nt>4||nt===0?Vr.ceil(J):Vr(J),J=Ko.offset(J,(L.V-1)*7),L.y=J.getUTCFullYear(),L.m=J.getUTCMonth(),L.d=J.getUTCDate()+(L.w+6)%7):(J=$s(gn(L.y,0,1)),nt=J.getDay(),J=nt>4||nt===0?Hr.ceil(J):Hr(J),J=ir.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?Ys(gn(L.y,0,1)).getUTCDay():$s(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,Ys(L)):$s(L)}}function $(H,G,j,L){for(var it=0,J=G.length,nt=j.length,at,rt;it<J;){if(L>=nt)return-1;if(at=G.charCodeAt(it++),at===37){if(at=G.charAt(it++),rt=M[at in Gi?G.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,G,j){var L=l.exec(G.slice(j));return L?(H.p=u.get(L[0].toLowerCase()),j+L[0].length):-1}function Z(H,G,j){var L=p.exec(G.slice(j));return L?(H.w=w.get(L[0].toLowerCase()),j+L[0].length):-1}function N(H,G,j){var L=h.exec(G.slice(j));return L?(H.w=d.get(L[0].toLowerCase()),j+L[0].length):-1}function U(H,G,j){var L=S.exec(G.slice(j));return L?(H.m=k.get(L[0].toLowerCase()),j+L[0].length):-1}function Y(H,G,j){var L=y.exec(G.slice(j));return L?(H.m=b.get(L[0].toLowerCase()),j+L[0].length):-1}function g(H,G,j){return $(H,e,G,j)}function A(H,G,j){return $(H,n,G,j)}function R(H,G,j){return $(H,r,G,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 G=C(H+="",_);return G.toString=function(){return H},G},parse:function(H){var G=D(H+="",!1);return G.toString=function(){return H},G},utcFormat:function(H){var G=C(H+="",v);return G.toString=function(){return H},G},utcParse:function(H){var G=D(H+="",!0);return G.toString=function(){return H},G}}}var Gi={"-":"",_:" ",0:"0"},ft=/^\s*\d+/,Qd=/^%/,tp=/[\\^$*+?|[\]().{}]/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 ep(t){return t.replace(tp,"\\$&")}function mn(t){return new RegExp("^(?:"+t.map(ep).join("|")+")","i")}function yn(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function np(t,e,n){var r=ft.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function rp(t,e,n){var r=ft.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function sp(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function op(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function ip(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 Ki(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 ap(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 cp(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 lp(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 ji(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function up(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 hp(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function fp(t,e,n){var r=ft.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function dp(t,e,n){var r=ft.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function pp(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 gp(t,e,n){var r=Qd.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function mp(t,e,n){var r=ft.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function yp(t,e,n){var r=ft.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function Qi(t,e){return st(t.getDate(),e,2)}function wp(t,e){return st(t.getHours(),e,2)}function xp(t,e){return st(t.getHours()%12||12,e,2)}function Sp(t,e){return st(1+ir.count(Xt(t),t),e,3)}function sl(t,e){return st(t.getMilliseconds(),e,3)}function vp(t,e){return sl(t,e)+"000"}function bp(t,e){return st(t.getMonth()+1,e,2)}function Tp(t,e){return st(t.getMinutes(),e,2)}function Ep(t,e){return st(t.getSeconds(),e,2)}function _p(t){var e=t.getDay();return e===0?7:e}function Cp(t,e){return st(xs.count(Xt(t)-1,t),e,2)}function ol(t){var e=t.getDay();return e>=4||e===0?Je(t):Je.ceil(t)}function Pp(t,e){return t=ol(t),st(Je.count(Xt(t),t)+(Xt(t).getDay()===4),e,2)}function Rp(t){return t.getDay()}function kp(t,e){return st(Hr.count(Xt(t)-1,t),e,2)}function Mp(t,e){return st(t.getFullYear()%100,e,2)}function Ap(t,e){return t=ol(t),st(t.getFullYear()%100,e,2)}function Np(t,e){return st(t.getFullYear()%1e4,e,4)}function Dp(t,e){var n=t.getDay();return t=n>=4||n===0?Je(t):Je.ceil(t),st(t.getFullYear()%1e4,e,4)}function Op(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+st(e/60|0,"0",2)+st(e%60,"0",2)}function ta(t,e){return st(t.getUTCDate(),e,2)}function zp(t,e){return st(t.getUTCHours(),e,2)}function Ip(t,e){return st(t.getUTCHours()%12||12,e,2)}function Lp(t,e){return st(1+Ko.count(we(t),t),e,3)}function il(t,e){return st(t.getUTCMilliseconds(),e,3)}function $p(t,e){return il(t,e)+"000"}function Yp(t,e){return st(t.getUTCMonth()+1,e,2)}function Bp(t,e){return st(t.getUTCMinutes(),e,2)}function qp(t,e){return st(t.getUTCSeconds(),e,2)}function Fp(t){var e=t.getUTCDay();return e===0?7:e}function Zp(t,e){return st(rl.count(we(t)-1,t),e,2)}function al(t){var e=t.getUTCDay();return e>=4||e===0?Qe(t):Qe.ceil(t)}function Up(t,e){return t=al(t),st(Qe.count(we(t),t)+(we(t).getUTCDay()===4),e,2)}function Hp(t){return t.getUTCDay()}function Vp(t,e){return st(Vr.count(we(t)-1,t),e,2)}function Xp(t,e){return st(t.getUTCFullYear()%100,e,2)}function Gp(t,e){return t=al(t),st(t.getUTCFullYear()%100,e,2)}function Wp(t,e){return st(t.getUTCFullYear()%1e4,e,4)}function Kp(t,e){var n=t.getUTCDay();return t=n>=4||n===0?Qe(t):Qe.ceil(t),st(t.getUTCFullYear()%1e4,e,4)}function jp(){return"+0000"}function ea(){return"%"}function na(t){return+t}function ra(t){return Math.floor(+t/1e3)}var ke,cl;Jp({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 Jp(t){return ke=Jd(t),cl=ke.format,ke.parse,ke.utcFormat,ke.utcParse,ke}function Qp(t){return new Date(t)}function tg(t){return t instanceof Date?+t:+new Date(+t)}function ll(t,e,n,r,s,o,i,a,c,l){var u=Jc(),h=u.invert,d=u.domain,p=l(".%L"),w=l(":%S"),y=l("%I:%M"),b=l("%I %p"),S=l("%a %d"),k=l("%b %d"),_=l("%B"),v=l("%Y");function M(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:k: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,tg)):d().map(Qp)},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?M: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(Id(D,C)):u},u.copy=function(){return jc(u,ll(t,e,n,r,s,o,i,a,c,l))},u}function eg(){return Uc.apply(ll(Kd,jd,Xt,jo,xs,ir,Wo,Go,ze,cl).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const Jo=E.z.enum(["linear","time"]),Qo=E.z.object({tickSpacing:E.z.number().default(75),type:Jo.optional().default("linear")}),uo=t=>{const e=Qo.parse(t);return sg[e.type](e)};class ng{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=eg().domain(s).range(r);return o.ticks(ul(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 rg{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=nl().domain(s).range(r),i=ul(n,this.props.tickSpacing);return o.ticks(i).map(c=>({label:this.tickLabel(c),position:o(c)}))}tickLabel(e){return e.toString()}}const ul=(t,e)=>{const n=Math.floor(t/e);return n>0?n:1},sg={linear:t=>new rg(t),time:t=>new ng(t)},ti=Qo.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 hl=class{constructor(e,n){m(this,"ctx");m(this,"state");m(this,"tickFactory");this.ctx=e,this.state=n,this.tickFactory=uo(this.state)}setState(e){this.state=T.prettyParse(ti,e),this.tickFactory=uo(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._$1.ZERO;return e.forEach(s=>{const o=T.dimensions(s.label,this.state.font,this.ctx.lower2d);r=f._$1.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 Tr=(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 Xr{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 Xr(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=Bs(this.wrapped.font,this.scale_.x.reverse());const n=this.wrapped.measureText(e);return this.wrapped.font=Bs(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=Bs(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=Tr(e,n),r.rect(...f.q.couple(f.To.topLeft(e)),...f._$1.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 sa=/(\d+(\.\d+)?)px/,Bs=(t,e)=>{var s;const n=Number((s=t.match(sa))==null?void 0:s[1]);if(n==null)return t;const r=e.dim(n);return t.replace(sa,`${r}px`)},og=`precision mediump float;
|
|
7
|
+
|
|
8
|
+
void main(void) {
|
|
9
|
+
gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
|
|
10
|
+
}
|
|
11
|
+
`,ig=`attribute vec4 a_position;
|
|
12
|
+
|
|
13
|
+
void main(void) {
|
|
14
|
+
gl_Position = a_position;
|
|
15
|
+
}
|
|
16
|
+
`,oa=t=>new Error(`failed to compile webgl program: ${t}`),ag=new Error("null shader encountered");class ei{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 oa("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 ag;if(r.shaderSource(s,e),r.compileShader(s),!r.getShaderParameter(s,r.COMPILE_STATUS)){const i=r.getShaderInfoLog(s);throw r.deleteShader(s),oa(i??"unknown")}r.attachShader(this.prog,s)}}const cg=new Float32Array([0,0,0,0,0,0]);class lg extends ei{constructor(n){super(n,ig,og);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,cg,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 ia={high:1,low:0};class fl{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=ia[e.priority]>=ia[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.w.milliseconds(s-e);o.greaterThan(T.w.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 Mt;let gt=(Mt=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 Xr(o);const i=this.upper2dCanvas.getContext("2d");if(i==null)throw new Error("Could not get 2D context");this.upper2d=new Xr(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 fl(l),this.region=f.To.ZERO,this.dpr=1,this.os==="Windows"&&(this.clearProgram=new lg(this))}static create(e,n,r,s,o){const i=new Mt(n,r,s,o);return e.set(Mt.CONTEXT_KEY,i),i}static useOptional(e){return e.getOptional(Mt.CONTEXT_KEY)}static use(e){return e.get(Mt.CONTEXT_KEY)}update(e){e.set(Mt.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=Tr(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(Tr(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=Tr(n,r);e.clearRect(...f.q.couple(f.To.topLeft(s)),...f._$1.couple(f.To.dims(s)))}},m(Mt,"CONTEXT_KEY",f.CSS.B("render-context")),Mt);const Lt="layout",ho="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),ni=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 ar=ti.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.w.z.optional().default(T.w.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}),ug=2,hg=7,dl=(t,e)=>f.R.contains({lower:t-hg,upper:t+ug},e),fg=f.R.DECIMAL,aa=T.m.now(),dg={lower:Number(aa.valueOf()),upper:Number(aa.add(T.w.HOUR).valueOf())},pl=t=>t==="linear"?fg:dg,pg=(t,e=.1,n)=>{const r=f.R.max(t.filter(f.R.isFinite));if(!f.R.isFinite(r))return pl(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}},gg=.01,mg=.1;class gl 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"?mg:gg),this.internal.core=new hl(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=kf(`${this.type}-${this.key}`,s,o),a={...e,position:i,decimalToDataScale:n,size:this.state.size+this.state.labelSize},{size:c}=r.render(a);dl(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}=ml(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=pg(h,this.state.autoBoundPadding,this.state.type)}catch(h){i=pl(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 ml=t=>typeof t=="boolean"?{lower:t,upper:t}:{lower:(t==null?void 0:t.lower)??!0,upper:(t==null?void 0:t.upper)??!0},yg=`precision lowp float;
|
|
17
|
+
uniform lowp vec4 u_color;
|
|
18
|
+
|
|
19
|
+
void main(void) {
|
|
20
|
+
gl_FragColor = u_color;
|
|
21
|
+
}
|
|
22
|
+
`,wg=`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
|
+
`,ca=T.g.FLOAT32.density.valueOf(),yl=E.z.object({x:eo,y:eo,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)}),xg=(t,e,n)=>t===-1||e===-1||t>=n.length?NaN:Number(n[t].at(e)),Sg=T.w.milliseconds(2);f.q.NAN,f.q.NAN,f.ZERO;const $e=class $e extends ei{constructor(n){super(n,wg,yg);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,ca*s,ca*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=bg(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 Gr=$e;class Fn extends T.Leaf{constructor(){super(...arguments);m(this,"schema",yl)}async afterUpdate(){if(this.deleted)return;const{internal:n}=this;n.xTelem=await Ht(this.ctx,this.state.x,n.xTelem),n.yTelem=await Ht(this.ctx,this.state.y,n.yTelem),n.instrumentation=sr(this.ctx,"line"),n.prog=Gr.use(this.ctx),n.requestRender=yt.useRequest(this.ctx),n.xTelem.onChange(()=>n.requestRender(ho)),n.yTelem.onChange(()=>n.requestRender(ho)),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,k)=>{const _=S.binarySearch(r),v=_>=0&&_<S.length;return v&&([a,c]=[_,k]),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=xg(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=Rg(l,u,c,r,Sg);this.internal.instrumentation.L.debug("render",()=>({key:this.key,downsample:r,scale:f.k.xyScaleToTransform(a),props:n.region,ops:kg(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(Cg(a,y));i.bindScale(b,w),i.draw(y,p)}),d()}}m(Fn,"TYPE","line");const vg=5e3,bg=(t,e)=>_g(Eg(t),e).map((n,r)=>Math.floor(r/Tg)*(1/(vg*t))*n),Tg=5,Eg=t=>new Float32Array([0,0,0,t,0,-t,1,0,-1,0]),_g=(t,e)=>{const n=new Float32Array(t.length*e);for(let r=0;r<e;r++)n.set(t,r*t.length);return n},Cg=(t,e)=>t.translate(t.x.dim(Number(e.x.sampleOffset)),t.y.dim(Number(e.y.sampleOffset))),Pg={[Fn.TYPE]:Fn},Rg=(t,e,n,r,s)=>{if(t.length===0||e.length===0)return[];const o=[];return t.forEach(i=>e.forEach(a=>{if(!Mg(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},kg=t=>t.map(e=>({...e,x:e.x.digest,y:e.y.digest})),Mg=(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 cr{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 ri=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",ri)}async afterUpdate(){this.internal.renderCtx=gt.use(this.ctx);const n=T.use(this.ctx);this.internal.draw=new cr(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 wl={[tn.TYPE]:tn},Ag=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:wl,Rule:tn,ruleStateZ:ri},Symbol.toStringTag,{value:"Module"})),Ng=ar.extend({location:f.J.x.optional().default("left")});class Zn extends gl{constructor(){super(...arguments);m(this,"schema",ar)}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 xl=E.z.object({start:T.m.z,end:T.m.z});class Wr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",xl)}async afterUpdate(){this.internal.render=gt.use(this.ctx),this.internal.draw=new cr(this.internal.render.upper2d,T.use(this.ctx))}async render(){}}m(Wr,"TYPE","range-annotation");const Sl=E.z.object({triggered:E.z.boolean(),status:T.specZ$1,sink:ms.optional().default(ps),source:Do.optional().default(No)});class Kr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",Sl)}async afterUpdate(){var s,o,i;const{sink:n,source:r}=this.state;this.internal.source=await Ht(this.ctx,r,this.internal.source),this.internal.sink=await er(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.Cy.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(Kr,"TYPE","Chip");const vl=E.z.object({}),la="control-state-provider",bl=T.uy.stateZ.extend({subjectColor:f.Color.z});class en extends T.Composite{constructor(){super(...arguments);m(this,"schema",vl);m(this,"colors",new Map);m(this,"tracker");m(this,"disconnectTrackerChange");m(this,"obs",new ko.Observer)}static use(n){return n.get(la)}async afterUpdate(){const{internal:n}=this;n.instrumentation=sr(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(la,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.uy.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 Tl=["acquired","released","overridden","failed"],El=E.z.enum(Tl),_l=E.z.object({name:E.z.string(),authority:E.z.number().default(0),acquireTrigger:E.z.number(),status:El.optional(),needsControlOf:T.sy.keyZ.array().optional().default([])});class jr extends T.Composite{constructor(){super(...arguments);m(this,"schema",_l);m(this,"registry",new Map);m(this,"writer")}async afterUpdate(){this.internal.instrumentation=sr(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,ec(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(jr,"TYPE","Controller");const Cl=E.z.object({channel:E.z.number()});class Un extends ws{constructor(n,r){super(r);m(this,"controller");m(this,"schema",Cl);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.cy.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 Dg=t=>({type:Un.TYPE,props:t,variant:"sink",valueType:"number"}),Pl=E.z.object({authority:E.z.number().default(T.uy.Authority.Absolute.valueOf()),channel:E.z.number()});class Hn extends ws{constructor(n,r){super(r);m(this,"controller");m(this,"schema",Pl);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 Og=t=>({type:Hn.TYPE,props:t,variant:"sink",valueType:"boolean"}),Rl=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",Rl);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 zg=t=>({type:Vn.TYPE,props:t,variant:"source",valueType:"status"}),kl=E.z.object({statusSource:Do.optional().default(No),colorSource:dc.optional().default(ic),status:T.specZ$1,color:f.Color.z.optional()});class Jr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",kl);m(this,"stopListeningStatus");m(this,"stopListeningColor")}async afterUpdate(){var r,s;const{internal:n}=this;n.statusSource=await Ht(this.ctx,this.state.statusSource,n.statusSource),n.colorSource=await Ht(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 Ml=E.z.object({needsControlOf:T.sy.keyZ.array(),states:bl.array()});class Qr extends T.Leaf{constructor(){super(...arguments);m(this,"schema",Ml)}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(Qr,"TYPE","Legend");const Ig={[jr.TYPE]:jr,[en.TYPE]:en,[Jr.TYPE]:Jr,[Kr.TYPE]:Kr,[Qr.TYPE]:Qr},Al=E.z.object({trigger:E.z.number(),sink:ms.optional().default(ps)});class ts extends T.Leaf{constructor(){super(...arguments);m(this,"schema",Al)}async afterUpdate(){const{sink:n}=this.state;this.internal.sink=await er(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(ts,"TYPE","Button");const Lg={[ts.TYPE]:ts},si=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$1.osZ});class Xn extends T.Composite{constructor(){super(...arguments);m(this,"schema",si);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),Gr.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 Nl={[Xn.TYPE]:Xn},$g=Object.freeze(Object.defineProperty({__proto__:null,Canvas:Xn,REGISTRY:Nl,canvasStateZ:si},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 fo={exports:{}},qs={},pr={exports:{}},Fs={};/**
|
|
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 ua;function Yg(){if(ua)return Fs;ua=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 Fs.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:u,Fs}var Zs={};/**
|
|
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 ha;function Bg(){return ha||(ha=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,M=new Array(v>1?v-1:0),C=1;C<v;C++)M[C-1]=arguments[C];r("error",_,M)}}function r(_,v,M){{var C=e.ReactDebugCurrentFrame,D=C.getStackAddendum();D!==""&&(v+="%s",M=M.concat([D]));var $=M.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,M){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,M=_.value;try{var C=v();return!o(M,C)}catch{return!0}}function w(_,v,M){return v()}var y=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",b=!y,S=b?w:d,k=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:S;Zs.useSyncExternalStore=k,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),Zs}var fa;function Dl(){return fa||(fa=1,process.env.NODE_ENV==="production"?pr.exports=Yg():pr.exports=Bg()),pr.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 da;function qg(){if(da)return qs;da=1;var t=x,e=Dl();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 qs.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(!k){if(k=!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 k=!1,_,v,M=h===void 0?null:h;return[function(){return S(u())},M===null?void 0:function(){return S(M())}]},[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},qs}var Us={};/**
|
|
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 pa;function Fg(){return pa||(pa=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=Dl();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 M=!1,C,D,$=function(U){if(!M){M=!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]),k=S[0],_=S[1],v=s(u,k,_);return i(function(){b.hasValue=!0,b.value=v},[v]),c(v),v}Us.useSyncExternalStoreWithSelector=l,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),Us}process.env.NODE_ENV==="production"?fo.exports=qg():fo.exports=Fg();var Zg=fo.exports;const Ug=T.getDefaultExportFromCjs(Zg);var Hg={BASE_URL:"/pluto/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const ga=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:()=>{(Hg?"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},Vg=t=>t?ga(t):ga,{useDebugValue:Xg}=x,{useSyncExternalStoreWithSelector:Gg}=Ug,Wg=t=>t;function Ol(t,e=Wg,n){const r=Gg(t.subscribe,t.getState,t.getServerState||t.getInitialState,e,n);return Xg(r),r}const ma=(t,e)=>{const n=Vg(t),r=(s,o=e)=>Ol(n,s,o);return Object.assign(r,n),r},Kg=(t,e)=>t?ma(t,e):ma;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 jg={value:()=>{}};function Ss(){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 Er(n)}function Er(t){this._=t}function Jg(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}})}Er.prototype=Ss.prototype={constructor:Er,on:function(t,e){var n=this._,r=Jg(t+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(t=r[o]).type)&&(s=Qg(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]=ya(n[s],t.name,e);else if(e==null)for(s in n)n[s]=ya(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 Er(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 Qg(t,e){for(var n=0,r=t.length,s;n<r;++n)if((s=t[n]).name===e)return s.value}function ya(t,e,n){for(var r=0,s=t.length;r<s;++r)if(t[r].name===e){t[r]=jg,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var po="http://www.w3.org/1999/xhtml";const wa={svg:"http://www.w3.org/2000/svg",xhtml:po,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function vs(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),wa.hasOwnProperty(e)?{space:wa[e],local:t}:t}function tm(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===po&&e.documentElement.namespaceURI===po?e.createElement(t):e.createElementNS(n,t)}}function em(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function zl(t){var e=vs(t);return(e.local?em:tm)(e)}function nm(){}function oi(t){return t==null?nm:function(){return this.querySelector(t)}}function rm(t){typeof t!="function"&&(t=oi(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 sm(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function om(){return[]}function Il(t){return t==null?om:function(){return this.querySelectorAll(t)}}function im(t){return function(){return sm(t.apply(this,arguments))}}function am(t){typeof t=="function"?t=im(t):t=Il(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 Ll(t){return function(){return this.matches(t)}}function $l(t){return function(e){return e.matches(t)}}var cm=Array.prototype.find;function lm(t){return function(){return cm.call(this.children,t)}}function um(){return this.firstElementChild}function hm(t){return this.select(t==null?um:lm(typeof t=="function"?t:$l(t)))}var fm=Array.prototype.filter;function dm(){return Array.from(this.children)}function pm(t){return function(){return fm.call(this.children,t)}}function gm(t){return this.selectAll(t==null?dm:pm(typeof t=="function"?t:$l(t)))}function mm(t){typeof t!="function"&&(t=Ll(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 Yl(t){return new Array(t.length)}function ym(){return new xt(this._enter||this._groups.map(Yl),this._parents)}function es(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}es.prototype={constructor:es,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 wm(t){return function(){return t}}function xm(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 es(t,o[i]);for(;i<c;++i)(a=e[i])&&(s[i]=a)}function Sm(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 es(t,o[a]);for(a=0;a<u;++a)(c=e[a])&&l.get(d[a])===c&&(s[a]=c)}function vm(t){return t.__data__}function bm(t,e){if(!arguments.length)return Array.from(this,vm);var n=e?Sm:xm,r=this._parents,s=this._groups;typeof t!="function"&&(t=wm(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=Tm(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 k=0,_=0,v,M;k<w;++k)if(v=y[k]){for(k>=_&&(_=k+1);!(M=b[_])&&++_<w;);v._next=M||null}}return i=new xt(i,r),i._enter=a,i._exit=c,i}function Tm(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Em(){return new xt(this._exit||this._groups.map(Yl),this._parents)}function _m(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 Cm(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 Pm(){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 Rm(t){t||(t=km);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 km(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Mm(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Am(){return Array.from(this)}function Nm(){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 Dm(){let t=0;for(const e of this)++t;return t}function Om(){return!this.node()}function zm(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 Im(t){return function(){this.removeAttribute(t)}}function Lm(t){return function(){this.removeAttributeNS(t.space,t.local)}}function $m(t,e){return function(){this.setAttribute(t,e)}}function Ym(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Bm(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function qm(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 Fm(t,e){var n=vs(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?Lm:Im:typeof e=="function"?n.local?qm:Bm:n.local?Ym:$m)(n,e))}function Bl(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zm(t){return function(){this.style.removeProperty(t)}}function Um(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Hm(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Vm(t,e,n){return arguments.length>1?this.each((e==null?Zm:typeof e=="function"?Hm:Um)(t,e,n??"")):nn(this.node(),t)}function nn(t,e){return t.style.getPropertyValue(e)||Bl(t).getComputedStyle(t,null).getPropertyValue(e)}function Xm(t){return function(){delete this[t]}}function Gm(t,e){return function(){this[t]=e}}function Wm(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Km(t,e){return arguments.length>1?this.each((e==null?Xm:typeof e=="function"?Wm:Gm)(t,e)):this.node()[t]}function ql(t){return t.trim().split(/^|\s+/)}function ii(t){return t.classList||new Fl(t)}function Fl(t){this._node=t,this._names=ql(t.getAttribute("class")||"")}Fl.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 Zl(t,e){for(var n=ii(t),r=-1,s=e.length;++r<s;)n.add(e[r])}function Ul(t,e){for(var n=ii(t),r=-1,s=e.length;++r<s;)n.remove(e[r])}function jm(t){return function(){Zl(this,t)}}function Jm(t){return function(){Ul(this,t)}}function Qm(t,e){return function(){(e.apply(this,arguments)?Zl:Ul)(this,t)}}function ty(t,e){var n=ql(t+"");if(arguments.length<2){for(var r=ii(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof e=="function"?Qm:e?jm:Jm)(n,e))}function ey(){this.textContent=""}function ny(t){return function(){this.textContent=t}}function ry(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function sy(t){return arguments.length?this.each(t==null?ey:(typeof t=="function"?ry:ny)(t)):this.node().textContent}function oy(){this.innerHTML=""}function iy(t){return function(){this.innerHTML=t}}function ay(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function cy(t){return arguments.length?this.each(t==null?oy:(typeof t=="function"?ay:iy)(t)):this.node().innerHTML}function ly(){this.nextSibling&&this.parentNode.appendChild(this)}function uy(){return this.each(ly)}function hy(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function fy(){return this.each(hy)}function dy(t){var e=typeof t=="function"?t:zl(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function py(){return null}function gy(t,e){var n=typeof t=="function"?t:zl(t),r=e==null?py:typeof e=="function"?e:oi(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function my(){var t=this.parentNode;t&&t.removeChild(this)}function yy(){return this.each(my)}function wy(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function xy(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Sy(t){return this.select(t?xy:wy)}function vy(t){return arguments.length?this.property("__data__",t):this.node().__data__}function by(t){return function(e){t.call(this,e,this.__data__)}}function Ty(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 Ey(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 _y(t,e,n){return function(){var r=this.__on,s,o=by(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 Cy(t,e,n){var r=Ty(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?_y:Ey,s=0;s<o;++s)this.each(a(r[s],e,n));return this}function Hl(t,e,n){var r=Bl(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 Py(t,e){return function(){return Hl(this,t,e)}}function Ry(t,e){return function(){return Hl(this,t,e.apply(this,arguments))}}function ky(t,e){return this.each((typeof e=="function"?Ry:Py)(t,e))}function*My(){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 Vl=[null];function xt(t,e){this._groups=t,this._parents=e}function lr(){return new xt([[document.documentElement]],Vl)}function Ay(){return this}xt.prototype=lr.prototype={constructor:xt,select:rm,selectAll:am,selectChild:hm,selectChildren:gm,filter:mm,data:bm,enter:ym,exit:Em,join:_m,merge:Cm,selection:Ay,order:Pm,sort:Rm,call:Mm,nodes:Am,node:Nm,size:Dm,empty:Om,each:zm,attr:Fm,style:Vm,property:Km,classed:ty,text:sy,html:cy,raise:uy,lower:fy,append:dy,insert:gy,remove:yy,clone:Sy,datum:vy,on:Cy,dispatch:ky,[Symbol.iterator]:My};function kt(t){return typeof t=="string"?new xt([[document.querySelector(t)]],[document.documentElement]):new xt([[t]],Vl)}function Ny(t){let e;for(;e=t.sourceEvent;)t=e;return t}function Ot(t,e){if(t=Ny(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 Dy={passive:!1},Gn={capture:!0,passive:!1};function Hs(t){t.stopImmediatePropagation()}function qe(t){t.preventDefault(),t.stopImmediatePropagation()}function Xl(t){var e=t.document.documentElement,n=kt(t).on("dragstart.drag",qe,Gn);"onselectstart"in e?n.on("selectstart.drag",qe,Gn):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Gl(t,e){var n=t.document.documentElement,r=kt(t).on("dragstart.drag",null);e&&(r.on("click.drag",qe,Gn),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 gr=t=>()=>t;function go(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}})}go.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Oy(t){return!t.ctrlKey&&!t.button}function zy(){return this.parentNode}function Iy(t,e){return e??{x:t.x,y:t.y}}function Ly(){return navigator.maxTouchPoints||"ontouchstart"in this}function $y(){var t=Oy,e=zy,n=Iy,r=Ly,s={},o=Ss("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,Dy).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(v,M){if(!(u||!t.call(this,v,M))){var C=_(this,e.call(this,v,M),v,M,"mouse");C&&(kt(v.view).on("mousemove.drag",w,Gn).on("mouseup.drag",y,Gn),Xl(v.view),Hs(v),l=!1,a=v.clientX,c=v.clientY,C("start",v))}}function w(v){if(qe(v),!l){var M=v.clientX-a,C=v.clientY-c;l=M*M+C*C>h}s.mouse("drag",v)}function y(v){kt(v.view).on("mousemove.drag mouseup.drag",null),Gl(v.view,l),qe(v),s.mouse("end",v)}function b(v,M){if(t.call(this,v,M)){var C=v.changedTouches,D=e.call(this,v,M),$=C.length,O,Z;for(O=0;O<$;++O)(Z=_(this,D,v,M,C[O].identifier,C[O]))&&(Hs(v),Z("start",v,C[O]))}}function S(v){var M=v.changedTouches,C=M.length,D,$;for(D=0;D<C;++D)($=s[M[D].identifier])&&(qe(v),$("drag",v,M[D]))}function k(v){var M=v.changedTouches,C=M.length,D,$;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),D=0;D<C;++D)($=s[M[D].identifier])&&(Hs(v),$("end",v,M[D]))}function _(v,M,C,D,$,O){var Z=o.copy(),N=Ot(O||C,M),U,Y,g;if((g=n.call(v,new go("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,M),I=i;break}Z.call(R,v,new go(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:gr(!!v),d):t},d.container=function(v){return arguments.length?(e=typeof v=="function"?v:gr(v),d):e},d.subject=function(v){return arguments.length?(n=typeof v=="function"?v:gr(v),d):n},d.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:gr(!!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,Wl=1e3,ns,En,rs=0,xe=0,bs=0,Wn=typeof performance=="object"&&performance.now?performance:Date,Kl=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ai(){return xe||(Kl(Yy),xe=Wn.now()+bs)}function Yy(){xe=0}function ss(){this._call=this._time=this._next=null}ss.prototype=jl.prototype={constructor:ss,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?ai():+n)+(e==null?0:+e),!this._next&&En!==this&&(En?En._next=this:ns=this,En=this),this._call=t,this._time=n,mo()},stop:function(){this._call&&(this._call=null,this._time=1/0,mo())}};function jl(t,e,n){var r=new ss;return r.restart(t,e,n),r}function By(){ai(),++rn;for(var t=ns,e;t;)(e=xe-t._time)>=0&&t._call.call(void 0,e),t=t._next;--rn}function xa(){xe=(rs=Wn.now())+bs,rn=Tn=0;try{By()}finally{rn=0,Fy(),xe=0}}function qy(){var t=Wn.now(),e=t-rs;e>Wl&&(bs-=e,rs=t)}function Fy(){for(var t,e=ns,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:ns=n);En=t,mo(r)}function mo(t){if(!rn){Tn&&(Tn=clearTimeout(Tn));var e=t-xe;e>24?(t<1/0&&(Tn=setTimeout(xa,t-Wn.now()-bs)),wn&&(wn=clearInterval(wn))):(wn||(rs=Wn.now(),wn=setInterval(qy,Wl)),rn=1,Kl(xa))}}function Sa(t,e,n){var r=new ss;return e=e==null?0:+e,r.restart(s=>{r.stop(),t(s+e)},e,n),r}var Zy=Ss("start","end","cancel","interrupt"),Uy=[],Jl=0,va=1,yo=2,_r=3,ba=4,wo=5,Cr=6;function Ts(t,e,n,r,s,o){var i=t.__transition;if(!i)t.__transition={};else if(n in i)return;Hy(t,n,{name:e,index:r,group:s,on:Zy,tween:Uy,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Jl})}function ci(t,e){var n=At(t,e);if(n.state>Jl)throw new Error("too late; already scheduled");return n}function $t(t,e){var n=At(t,e);if(n.state>_r)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 Hy(t,e,n){var r=t.__transition,s;r[e]=n,n.timer=jl(o,0,n.time);function o(l){n.state=va,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!==va)return c();for(u in r)if(p=r[u],p.name===n.name){if(p.state===_r)return Sa(i);p.state===ba?(p.state=Cr,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[u]):+u<e&&(p.state=Cr,p.timer.stop(),p.on.call("cancel",t,t.__data__,p.index,p.group),delete r[u])}if(Sa(function(){n.state===_r&&(n.state=ba,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=yo,n.on.call("start",t,t.__data__,n.index,n.group),n.state===yo){for(n.state=_r,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=wo,1),h=-1,d=s.length;++h<d;)s[h].call(t,u);n.state===wo&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){n.state=Cr,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function Pr(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>yo&&r.state<wo,r.state=Cr,r.timer.stop(),r.on.call(s?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[i]}o&&delete t.__transition}}function Vy(t){return this.each(function(){Pr(this,t)})}function Xy(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 Gy(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 Wy(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?Xy:Gy)(n,t,e))}function li(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 Ql(t,e){var n;return(typeof e=="number"?Pt:e instanceof ye?qr:(n=ye(e))?(e=n,qr):Gc)(t,e)}function Ky(t){return function(){this.removeAttribute(t)}}function jy(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Jy(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 Qy(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 t0(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 e0(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 n0(t,e){var n=vs(t),r=n==="transform"?fd:Ql;return this.attrTween(t,typeof e=="function"?(n.local?e0:t0)(n,r,li(this,"attr."+t,e)):e==null?(n.local?jy:Ky)(n):(n.local?Qy:Jy)(n,r,e))}function r0(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function s0(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function o0(t,e){var n,r;function s(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&s0(t,o)),n}return s._value=e,s}function i0(t,e){var n,r;function s(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&r0(t,o)),n}return s._value=e,s}function a0(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=vs(t);return this.tween(n,(r.local?o0:i0)(r,e))}function c0(t,e){return function(){ci(this,t).delay=+e.apply(this,arguments)}}function l0(t,e){return e=+e,function(){ci(this,t).delay=e}}function u0(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?c0:l0)(e,t)):At(this.node(),e).delay}function h0(t,e){return function(){$t(this,t).duration=+e.apply(this,arguments)}}function f0(t,e){return e=+e,function(){$t(this,t).duration=e}}function d0(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?h0:f0)(e,t)):At(this.node(),e).duration}function p0(t,e){if(typeof e!="function")throw new Error;return function(){$t(this,t).ease=e}}function g0(t){var e=this._id;return arguments.length?this.each(p0(e,t)):At(this.node(),e).ease}function m0(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;$t(this,t).ease=n}}function y0(t){if(typeof t!="function")throw new Error;return this.each(m0(this._id,t))}function w0(t){typeof t!="function"&&(t=Ll(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 Gt(r,this._parents,this._name,this._id)}function x0(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 Gt(i,this._parents,this._name,this._id)}function S0(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 v0(t,e,n){var r,s,o=S0(e)?ci:$t;return function(){var i=o(this,t),a=i.on;a!==r&&(s=(r=a).copy()).on(e,n),i.on=s}}function b0(t,e){var n=this._id;return arguments.length<2?At(this.node(),n).on.on(t):this.each(v0(n,t,e))}function T0(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function E0(){return this.on("end.remove",T0(this._id))}function _0(t){var e=this._name,n=this._id;typeof t!="function"&&(t=oi(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,Ts(l[d],e,n,d,l,At(u,n)));return new Gt(o,this._parents,e,n)}function C0(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Il(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])&&Ts(p,e,n,y,d,w);o.push(d),i.push(u)}return new Gt(o,i,e,n)}var P0=lr.prototype.constructor;function R0(){return new P0(this._groups,this._parents)}function k0(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 tu(t){return function(){this.style.removeProperty(t)}}function M0(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 A0(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 N0(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=tu(e)):void 0;(l!==n||s!==u)&&(r=(n=l).copy()).on(i,s=u),c.on=r}}function D0(t,e,n){var r=(t+="")=="transform"?hd:Ql;return e==null?this.styleTween(t,k0(t,r)).on("end.style."+t,tu(t)):typeof e=="function"?this.styleTween(t,A0(t,r,li(this,"style."+t,e))).each(N0(this._id,t)):this.styleTween(t,M0(t,r,e),n).on("end.style."+t,null)}function O0(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function z0(t,e,n){var r,s;function o(){var i=e.apply(this,arguments);return i!==s&&(r=(s=i)&&O0(t,i,n)),r}return o._value=e,o}function I0(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,z0(t,e,n??""))}function L0(t){return function(){this.textContent=t}}function $0(t){return function(){var e=t(this);this.textContent=e??""}}function Y0(t){return this.tween("text",typeof t=="function"?$0(li(this,"text",t)):L0(t==null?"":t+""))}function B0(t){return function(e){this.textContent=t.call(this,e)}}function q0(t){var e,n;function r(){var s=t.apply(this,arguments);return s!==n&&(e=(n=s)&&B0(s)),e}return r._value=t,r}function F0(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,q0(t))}function Z0(){for(var t=this._name,e=this._id,n=eu(),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);Ts(c,t,n,l,i,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Gt(r,this._parents,t,n)}function U0(){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 H0=0;function Gt(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function eu(){return++H0}var qt=lr.prototype;Gt.prototype={constructor:Gt,select:_0,selectAll:C0,selectChild:qt.selectChild,selectChildren:qt.selectChildren,filter:w0,merge:x0,selection:R0,transition:Z0,call:qt.call,nodes:qt.nodes,node:qt.node,size:qt.size,empty:qt.empty,each:qt.each,on:b0,attr:n0,attrTween:a0,style:D0,styleTween:I0,text:Y0,textTween:F0,remove:E0,tween:Wy,delay:u0,duration:d0,ease:g0,easeVarying:y0,end:U0,[Symbol.iterator]:qt[Symbol.iterator]};function V0(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var X0={time:null,delay:0,duration:250,ease:V0};function G0(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 W0(t){var e,n;t instanceof Gt?(e=t._id,t=t._name):(e=eu(),(n=X0).time=ai(),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])&&Ts(c,t,e,l,i,n||G0(c,e));return new Gt(r,this._parents,t,e)}lr.prototype.interrupt=Vy;lr.prototype.transition=W0;const mr=t=>()=>t;function K0(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 te=new Ut(1,0,0);Ut.prototype;function Vs(t){t.stopImmediatePropagation()}function xn(t){t.preventDefault(),t.stopImmediatePropagation()}function j0(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function J0(){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 Ta(){return this.__zoom||te}function Q0(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function tw(){return navigator.maxTouchPoints||"ontouchstart"in this}function ew(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 nw(){var t=j0,e=J0,n=ew,r=Q0,s=tw,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,c=md,l=Ss("start","zoom","end"),u,h,d,p=500,w=150,y=0,b=10;function S(g){g.property("__zoom",Ta).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",Ta),g!==B?M(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(_(k(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(te.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 k(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 M(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=kt(this.that).datum();l.call(g,this.that,new K0(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)],Pr(this),R.start()}xn(g),R.wheel=setTimeout(I,w),R.zoom("mouse",n(_(k(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=kt(g.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",X,!0),P=Ot(g,R),I=g.clientX,q=g.clientY;Xl(g.view),Vs(g),z.mouse=[P,this.__zoom.invert(P)],Pr(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),Gl(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(_(k(R,P),z,B),e.apply(this,A),i);xn(g),a>0?kt(this).transition().duration(a).call(M,I,z,g):kt(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(Vs(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)),Pr(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=k(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(Vs(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=kt(this).on("dblclick.zoom");q&&q.apply(this,arguments)}}}return S.wheelDelta=function(g){return arguments.length?(r=typeof g=="function"?g:mr(+g),S):r},S.filter=function(g){return arguments.length?(t=typeof g=="function"?g:mr(!!g),S):t},S.touchable=function(g){return arguments.length?(s=typeof g=="function"?g:mr(!!g),S):s},S.extent=function(g){return arguments.length?(e=typeof g=="function"?g:mr([[+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 Es=x.createContext(null),rw=Es.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.`},nu=St.error001();function lt(t,e){const n=x.useContext(Es);if(n===null)throw new Error(nu);return Ol(n,t,e)}const ht=()=>{const t=x.useContext(Es);if(t===null)throw new Error(nu);return x.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe,destroy:t.destroy}),[t])},sw=t=>t.userSelectionActive?"none":"all";function ow({position:t,children:e,className:n,style:r,...s}){const o=lt(sw),i=`${t}`.split("-");return x.createElement("div",{className:vt(["react-flow__panel",n,...i]),style:{...r,pointerEvents:o},...s},e)}function iw({proOptions:t,position:e="bottom-right"}){return t!=null&&t.hideAttribution?null:x.createElement(ow,{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 aw=({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 cw=x.memo(aw);const ui=t=>({width:t.offsetWidth,height:t.offsetHeight}),sn=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),hi=(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])}),Ea=(t,e,n)=>t<e?sn(Math.abs(t-e),1,50)/50:t>n?-sn(Math.abs(t-n),1,50)/50:0,ru=(t,e)=>{const n=Ea(t.x,35,e.width-35)*20,r=Ea(t.y,35,e.height-35)*20;return[n,r]},su=t=>{var e;return((e=t.getRootNode)==null?void 0:e.call(t))||(window==null?void 0:window.document)},lw=(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)}),fi=({x:t,y:e,width:n,height:r})=>({x:t,y:e,x2:t+n,y2:e+r}),uw=({x:t,y:e,x2:n,y2:r})=>({x:t,y:e,width:n-t,height:r-e}),_a=t=>({...t.positionAbsolute||{x:0,y:0},width:t.width||0,height:t.height||0}),xo=(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)},hw=t=>Et(t.width)&&Et(t.height)&&Et(t.x)&&Et(t.y),Et=t=>!isNaN(t)&&isFinite(t),ct=Symbol.for("internals"),ou=["Enter"," ","Escape"],os=(t,e)=>{process.env.NODE_ENV==="development"&&console.warn(`[React Flow]: ${e} Help: https://reactflow.dev/error#${t}`)},fw=t=>"nativeEvent"in t;function So(t){var s,o;const e=fw(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 iu=t=>"clientX"in t,ee=(t,e)=>{var o,i;const n=iu(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)}},is=()=>{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(cw,{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 au({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 cu({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 jt;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(jt||(jt={}));var as;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(as||(as={}));exports.Position=void 0;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(exports.Position||(exports.Position={}));function Ca({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 lu({sourceX:t,sourceY:e,sourcePosition:n=exports.Position.Bottom,targetX:r,targetY:s,targetPosition:o=exports.Position.Top}){const[i,a]=Ca({pos:n,x1:t,y1:e,x2:r,y2:s}),[c,l]=Ca({pos:o,x1:r,y1:s,x2:t,y2:e}),[u,h,d,p]=cu({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 di=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,k]=lu({sourceX:t,sourceY:e,sourcePosition:s,targetX:n,targetY:r,targetPosition:o});return x.createElement(un,{path:b,labelX:S,labelY:k,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:h,style:d,markerEnd:p,markerStart:w,interactionWidth:y})});di.displayName="SimpleBezierEdge";const Pa={[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}},dw=({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},Ra=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function pw({source:t,sourcePosition:e=exports.Position.Bottom,target:n,targetPosition:r=exports.Position.Top,center:s,offset:o}){const i=Pa[e],a=Pa[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=dw({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},[k,_,v,M]=au({sourceX:t.x,sourceY:t.y,targetX:n.x,targetY:n.y});if(i[h]*a[h]===-1){w=s.x??k,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,M]}function gw(t,e,n,r){const s=Math.min(Ra(t,e)/2,Ra(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 vo({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]=pw({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,k)=>{let _="";return k>0&&k<u.length-1?_=gw(u[k-1],S,u[k+1],i):_=`${k===0?"M":"L"}${S.x} ${S.y}`,b+=_,b},""),h,d,p,w]}const _s=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,k,_]=vo({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:k,labelY:_,label:s,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:l,style:u,markerEnd:p,markerStart:w,interactionWidth:b})});_s.displayName="SmoothStepEdge";const pi=x.memo(t=>{var e;return x.createElement(_s,{...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])})});pi.displayName="StepEdge";function mw({sourceX:t,sourceY:e,targetX:n,targetY:r}){const[s,o,i,a]=au({sourceX:t,sourceY:e,targetX:n,targetY:r});return[`M ${t},${e}L ${n},${r}`,s,o,i,a]}const gi=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]=mw({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})});gi.displayName="StraightEdge";function yr(t,e){return t>=0?.5*t:e*25*Math.sqrt(-t)}function ka({pos:t,x1:e,y1:n,x2:r,y2:s,c:o}){switch(t){case exports.Position.Left:return[e-yr(e-r,o),n];case exports.Position.Right:return[e+yr(r-e,o),n];case exports.Position.Top:return[e,n-yr(n-s,o)];case exports.Position.Bottom:return[e,n+yr(s-n,o)]}}function uu({sourceX:t,sourceY:e,sourcePosition:n=exports.Position.Bottom,targetX:r,targetY:s,targetPosition:o=exports.Position.Top,curvature:i=.25}){const[a,c]=ka({pos:n,x1:t,y1:e,x2:r,y2:s,c:i}),[l,u]=ka({pos:o,x1:r,y1:s,x2:t,y2:e,c:i}),[h,d,p,w]=cu({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 cs=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,k,_]=uu({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:k,labelY:_,label:i,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:h,style:d,markerEnd:p,markerStart:w,interactionWidth:b})});cs.displayName="BezierEdge";const mi=x.createContext(null),yw=mi.Provider;mi.Consumer;const ww=()=>x.useContext(mi),xw=t=>"id"in t&&"source"in t&&"target"in t,hu=({source:t,sourceHandle:e,target:n,targetHandle:r})=>`reactflow__edge-${t}${e||""}-${n}${r||""}`,bo=(t,e)=>typeof t>"u"?"":typeof t=="string"?t:`${e?`${e}__`:""}${Object.keys(t).sort().map(r=>`${r}=${t[r]}`).join("&")}`,Sw=(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)),fu=(t,e)=>{if(!t.source||!t.target)return os("006",St.error006()),e;let n;return xw(t)?n={...t}:n={...t,id:hu(t)},Sw(n,e)?e:e.concat(n)},vw=(t,e,n,r={shouldReplaceId:!0})=>{const{id:s,...o}=t;if(!e.source||!e.target)return os("006",St.error006()),n;if(!n.find(c=>c.id===s))return os("007",St.error007(s)),n;const a={...o,id:r.shouldReplaceId?hu(e):s,source:e.source,target:e.target,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle};return n.filter(c=>c.id!==s).concat(a)},bw=(t,e,n,r={shouldReplaceId:!0})=>(console.warn("[DEPRECATED] `updateEdge` is deprecated. Instead use `reconnectEdge` https://reactflow.dev/api-reference/utils/reconnect-edge"),vw(t,e,n,r)),To=({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},du=({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}},yi=(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 lw(r,fi({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 uw(n)},pu=(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=xo(c,b),k=typeof h>"u"||typeof d>"u"||h===null||d===null,_=o&&S>0,v=(h||0)*(d||0);(k||_||S>=v||u.dragging)&&l.push(u)}),l},gu=(t,e)=>{const n=t.map(r=>r.id);return e.filter(r=>n.includes(r.source)||n.includes(r.target))},mu=(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 Tw(t,e,n,r,s,o){const{x:i,y:a}=ee(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=wi(void 0,l),b=l.getAttribute("data-handleid"),S=o({nodeId:w,id:b,type:y});if(S){const k=s.find(_=>_.nodeId===w&&_.type===y&&_.id===b);return{handle:{id:b,type:y,nodeId:w,x:(k==null?void 0:k.x)||n.x,y:(k==null?void 0:k.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:yu()};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 Ew={source:null,target:null,sourceHandle:null,targetHandle:null},yu=()=>({handleDomNode:null,isValid:!1,connection:Ew,endHandle:null});function wu(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={...yu(),handleDomNode:c};if(c){const u=wi(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 _w({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 wi(t,e){return t||(e!=null&&e.classList.contains("target")?"target":e!=null&&e.classList.contains("source")?"source":null)}function Xs(t){t==null||t.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Cw(t,e){let n=null;return e?n="valid":t&&!e&&(n="invalid"),n}function xu({event:t,handleId:e,nodeId:n,onConnect:r,isTarget:s,getState:o,setState:i,isValidConnection:a,edgeUpdaterType:c,onReconnectEnd:l}){const u=su(t.target),{connectionMode:h,domNode:d,autoPanOnConnect:p,connectionRadius:w,onConnectStart:y,panBy:b,getNodes:S,cancelConnection:k}=o();let _=0,v;const{x:M,y:C}=ee(t),D=u==null?void 0:u.elementFromPoint(M,C),$=wi(c,D),O=d==null?void 0:d.getBoundingClientRect();if(!O||!$)return;let Z,N=ee(t,O),U=!1,Y=null,g=!1,A=null;const R=_w({nodes:S(),nodeId:n,handleId:e,handleType:$}),z=()=>{if(!p)return;const[I,q]=ru(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=ee(I,O);const{handle:F,validHandleResult:X}=Tw(I,u,To(N,q,!1,[1,1]),w,R,V=>wu(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?du({x:v.x,y:v.y},q):N,connectionStatus:Cw(!!v,g),connectionEndHandle:X.endHandle}),!v&&!g&&!A)return Xs(Z);Y.source!==Y.target&&A&&(Xs(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)),Xs(Z),k(),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 Aa=()=>!0,Pw=t=>({connectionStartHandle:t.connectionStartHandle,connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName}),Rw=(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}},Su=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=ww(),{connectOnClick:k,noPanClassName:_}=lt(Pw,pt),{connecting:v,clickConnecting:M}=lt(Rw(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(fu(A,R))}Y==null||Y(A),a==null||a(A)},D=N=>{if(!S)return;const U=iu(N);s&&(U&&N.button===0||!U)&&xu({event:N,handleId:w,nodeId:S,onConnect:C,isTarget:y,getState:b.getState,setState:b.setState,isValidConnection:n||b.getState().isValidConnection||Aa}),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=su(N.target),B=n||R||Aa,{connection:P,isValid:I}=wu({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:M,connectionindicator:r&&(s&&!v||o&&v)}]),onMouseDown:D,onTouchStart:D,onClick:k?$:void 0,ref:p,...d},c)});Su.displayName="Handle";var Kn=x.memo(Su);const vu=({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}));vu.displayName="DefaultNode";var Eo=x.memo(vu);const bu=({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}));bu.displayName="InputNode";var Tu=x.memo(bu);const Eu=({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);Eu.displayName="OutputNode";var _u=x.memo(Eu);const xi=()=>null;xi.displayName="GroupNode";const kw=t=>({selectedNodes:t.getNodes().filter(e=>e.selected),selectedEdges:t.edges.filter(e=>e.selected).map(e=>({...e}))}),wr=t=>t.id;function Mw(t,e){return pt(t.selectedNodes.map(wr),e.selectedNodes.map(wr))&&pt(t.selectedEdges.map(wr),e.selectedEdges.map(wr))}const Cu=x.memo(({onSelectionChange:t})=>{const e=ht(),{selectedNodes:n,selectedEdges:r}=lt(kw,Mw);return x.useEffect(()=>{const s={nodes:n,edges:r};t==null||t(s),e.getState().onSelectionChange.forEach(o=>o(s))},[n,r,t]),null});Cu.displayName="SelectionListener";const Aw=t=>!!t.onSelectionChange;function Nw({onSelectionChange:t}){const e=lt(Aw);return t||e?x.createElement(Cu,{onSelectionChange:t}):null}const Dw=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 Me(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 Ow=({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:k,onEdgesChange:_,elementsSelectable:v,connectionMode:M,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:G,setEdges:j,setDefaultNodesAndEdges:L,setMinZoom:it,setMaxZoom:J,setTranslateExtent:nt,setNodeExtent:at,reset:rt}=lt(Dw,pt),W=ht();return x.useEffect(()=>{const wt=r==null?void 0:r.map(se=>({...se,...Z}));return L(n,wt),()=>{rt()}},[]),Q("defaultEdgeOptions",Z,W.setState),Q("connectionMode",M,W.setState),Q("onConnect",s,W.setState),Q("onConnectStart",o,W.setState),Q("onConnectEnd",i,W.setState),Q("onClickConnectStart",a,W.setState),Q("onClickConnectEnd",c,W.setState),Q("nodesDraggable",l,W.setState),Q("nodesConnectable",u,W.setState),Q("nodesFocusable",h,W.setState),Q("edgesFocusable",d,W.setState),Q("edgesUpdatable",p,W.setState),Q("elementsSelectable",v,W.setState),Q("elevateNodesOnSelect",w,W.setState),Q("snapToGrid",D,W.setState),Q("snapGrid",C,W.setState),Q("onNodesChange",k,W.setState),Q("onEdgesChange",_,W.setState),Q("connectOnClick",O,W.setState),Q("fitViewOnInit",N,W.setState),Q("fitViewOnInitOptions",U,W.setState),Q("onNodesDelete",Y,W.setState),Q("onEdgesDelete",g,W.setState),Q("onNodeDrag",A,W.setState),Q("onNodeDragStart",R,W.setState),Q("onNodeDragStop",z,W.setState),Q("onSelectionDrag",B,W.setState),Q("onSelectionDragStart",P,W.setState),Q("onSelectionDragStop",I,W.setState),Q("noPanClassName",q,W.setState),Q("nodeOrigin",F,W.setState),Q("rfId",X,W.setState),Q("autoPanOnConnect",V,W.setState),Q("autoPanOnNodeDrag",K,W.setState),Q("onError",tt,W.setState),Q("connectionRadius",et,W.setState),Q("isValidConnection",ot,W.setState),Q("nodeDragThreshold",H,W.setState),Me(t,G),Me(e,j),Me(y,it),Me(b,J),Me($,nt),Me(S,at),null},Na={display:"none"},zw={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Pu="react-flow__node-desc",Ru="react-flow__edge-desc",Iw="react-flow__aria-live",Lw=t=>t.ariaLiveMessage;function $w({rfId:t}){const e=lt(Lw);return x.createElement("div",{id:`${Iw}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:zw},e)}function Yw({rfId:t,disableKeyboardA11y:e}){return x.createElement(x.Fragment,null,x.createElement("div",{id:`${Pu}-${t}`,style:Na},"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:`${Ru}-${t}`,style:Na},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!e&&x.createElement($w,{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)&&So(p))return!1;const y=Oa(p.code,a);o.current.add(p[y]),Da(i,o.current,!1)&&(p.preventDefault(),r(!0))},h=p=>{if((!s.current||s.current&&!e.actInsideInputWithModifier)&&So(p))return!1;const y=Oa(p.code,a);Da(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 Da(t,e,n){return t.filter(r=>n||r.length===e.size).some(r=>r.every(s=>e.has(s)))}function Oa(t,e){return e.includes(t)?"code":"key"}function ku(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 ku(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 Mu(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}=ku(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 Gs(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)}),Mu(s,n,o),s}function Au(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 k;const S=e.includeHiddenNodes?b.width&&b.height:!b.hidden;return(k=e.nodes)!=null&&k.length?S&&e.nodes.some(_=>_.id===b.id):S}),y=w.every(b=>b.width&&b.height);if(w.length>0&&y){const b=yi(w,h),{x:S,y:k,zoom:_}=mu(b,r,s,e.minZoom??o,e.maxZoom??i,e.padding??.1),v=te.translate(S,k).scale(_);return typeof e.duration=="number"&&e.duration>0?a.transform(he(c,e.duration),v):a.transform(c,v),!0}}return!1}function Bw(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 qw(t,e){return e.map(n=>{const r=t.find(s=>s.id===n.id);return r&&(n.selected=r.selected),n})}function xr({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:Bw(t,s)}),i==null||i(t)),e!=null&&e.length&&(l&&r({edges:qw(e,o)}),a==null||a(e))}const Ae=()=>{},Fw={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},Zw=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection}),Uw=()=>{const t=ht(),{d3Zoom:e,d3Selection:n}=lt(Zw,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=te.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=>Au(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=te.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}=mu(s,i,a,c,l,(o==null?void 0:o.padding)??.1),p=te.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"),To(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 To(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=du(s,o);return{x:l.x+a,y:l.y+c}},viewportInitialized:!0}:Fw,[e,n])};function Cs(){const t=Uw(),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:k,onNodesChange:_}=e.getState(),v=b(),M=typeof y=="function"?y(v):y;if(k)S(M);else if(_){const C=M.length===0?v.map(D=>({type:"remove",id:D.id})):M.map(D=>({item:D,type:"reset"}));_(C)}},[]),a=x.useCallback(y=>{const{edges:b=[],setEdges:S,hasDefaultEdges:k,onEdgesChange:_}=e.getState(),v=typeof y=="function"?y(b):y;if(k)S(v);else if(_){const M=v.length===0?b.map(C=>({type:"remove",id:C.id})):v.map(C=>({item:C,type:"reset"}));_(M)}},[]),c=x.useCallback(y=>{const b=Array.isArray(y)?y:[y],{getNodes:S,setNodes:k,hasDefaultNodes:_,onNodesChange:v}=e.getState();if(_){const C=[...S(),...b];k(C)}else if(v){const M=b.map(C=>({item:C,type:"add"}));v(M)}},[]),l=x.useCallback(y=>{const b=Array.isArray(y)?y:[y],{edges:S=[],setEdges:k,hasDefaultEdges:_,onEdgesChange:v}=e.getState();if(_)k([...S,...b]);else if(v){const M=b.map(C=>({item:C,type:"add"}));v(M)}},[]),u=x.useCallback(()=>{const{getNodes:y,edges:b=[],transform:S}=e.getState(),[k,_,v]=S;return{nodes:y().map(M=>({...M})),edges:b.map(M=>({...M})),viewport:{x:k,y:_,zoom:v}}},[]),h=x.useCallback(({nodes:y,edges:b})=>{const{nodeInternals:S,getNodes:k,edges:_,hasDefaultNodes:v,hasDefaultEdges:M,onNodesDelete:C,onEdgesDelete:D,onNodesChange:$,onEdgesChange:O}=e.getState(),Z=(y||[]).map(A=>A.id),N=(b||[]).map(A=>A.id),U=k().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=gu(U,Y),R=[...g,...A],z=R.reduce((B,P)=>(B.includes(P.id)||B.push(P.id),B),[]);if((M||v)&&(M&&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=hw(y),S=b?null:e.getState().nodeInternals.get(y.id);return!b&&!S?[null,null,b]:[b?y:_a(S),S,b]},[]),p=x.useCallback((y,b=!0,S)=>{const[k,_,v]=d(y);return k?(S||e.getState().getNodes()).filter(M=>{if(!v&&(M.id===_.id||!M.positionAbsolute))return!1;const C=_a(M),D=xo(C,k);return b&&D>0||D>=k.width*k.height}):[]},[]),w=x.useCallback((y,b,S=!0)=>{const[k]=d(y);if(!k)return!1;const _=xo(k,b);return S&&_>0||_>=k.width*k.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 Hw={actInsideInputWithModifier:!1};var Vw=({deleteKeyCode:t,multiSelectionKeyCode:e})=>{const n=ht(),{deleteElements:r}=Cs(),s=jn(t,Hw),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 Xw(t){const e=ht();x.useEffect(()=>{let n;const r=()=>{var o,i;if(!t.current)return;const s=ui(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 Si={position:"absolute",width:"100%",height:"100%",top:0,left:0},Gw=(t,e)=>t.x!==e.x||t.y!==e.y||t.zoom!==e.k,Sr=t=>({x:t.x,y:t.y,zoom:t.k}),Ne=(t,e)=>t.target.closest(`.${e}`),za=(t,e)=>e===2&&Array.isArray(t)&&t.includes(2),Ia=t=>{const e=t.ctrlKey&&is()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*e},Ww=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection,d3ZoomHandler:t.d3ZoomHandler,userSelectionActive:t.userSelectionActive}),Kw=({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:k,noWheelClassName:_,noPanClassName:v})=>{const M=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(Ww,pt),A=jn(b),R=x.useRef(0),z=x.useRef(!1),B=x.useRef();return Xw(O),x.useEffect(()=>{if(O.current){const P=O.current.getBoundingClientRect(),I=nw().scaleExtent([w,y]).translateExtent(p),q=kt(O.current).call(I),F=te.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(Ia),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=Ia(P),G=I*Math.pow(2,H);N.scaleTo(U,G,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;!is()&&P.shiftKey&&c!==pe.Vertical&&(F=P.deltaY*q,X=0),N.translateBy(U,-(F/I)*a,-(X/I)*a,{internal:!0});const V=Sr(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=Sr(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&&za(h,R.current??0)),(t||I)&&!((q=P.sourceEvent)!=null&&q.internal)){const F=Sr(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&&za(h,R.current??0)&&!$.current&&r(P.sourceEvent),$.current=!1,(n||I)&&Gw(Z.current,P.transform)){const q=Sr(P.transform);Z.current=q,clearTimeout(M.current),M.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:Si},k)},jw=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function Jw(){const{userSelectionActive:t,userSelectionRect:e}=lt(jw,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 La(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 Nu(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&&La(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&&La(r,i);break}case"remove":return r}return r.push(i),r},n)}function Du(t,e){return Nu(t,e)}function Qw(t,e){return Nu(t,e)}const Kt=(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(Kt(r.id,!0))):r.selected&&!s&&(r.selected=!1,n.push(Kt(r.id,!1))),n},[])}const Ws=(t,e)=>n=>{n.target===e.current&&(t==null||t(n))},tx=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging}),Ou=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:k,dragging:_}=lt(tx,pt),v=()=>{p.setState({userSelectionActive:!1,userSelectionRect:null}),w.current=0,y.current=0},M=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(),!k||!t||Y.button!==0||Y.target!==d.current||!b.current)return;const{x:R,y:z}=ee(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=ee(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=pu(A,K,z,e===exports.SelectionMode.Partial,!0,I),ot=gu(et,R).map(G=>G.id),H=et.map(G=>G.id);if(w.current!==H.length){w.current=H.length;const G=Ie(tt,H);G.length&&(B==null||B(G))}if(y.current!==ot.length){y.current=ot.length;const G=Ie(R,ot);G.length&&(P==null||P(G))}p.setState({userSelectionRect:K})},Z=Y=>{if(Y.button!==0)return;const{userSelectionRect:g}=p.getState();!S&&g&&Y.target===d.current&&(M==null||M(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=k&&(t||S);return x.createElement("div",{className:vt(["react-flow__pane",{dragging:_,selection:t}]),onClick:U?void 0:Ws(M,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:Si},h,x.createElement(Jw,null))});Ou.displayName="Pane";function zu(t,e){const n=t.parentNode||t.parentId;if(!n)return!1;const r=e.get(n);return r?r.selected?!0:zu(r,e):!1}function $a(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 ex(t,e,n,r){return Array.from(t.values()).filter(s=>(s.selected||s.id===r)&&(!s.parentNode||s.parentId||!zu(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 nx(t,e){return!e||e==="parent"?e:[e[0],[e[1][0]-(t.width||0),e[1][1]-(t.height||0)]]}function Iu(t,e,n,r,s=[0,0],o){const i=nx(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"?hi(e,a):e;return{position:{x:u.x-l.x,y:u.y-l.y},positionAbsolute:u}}function Ks({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 Ya=(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,...ui(c)}})};function vn(t,e,n){return n===void 0?n:r=>{const s=e().nodeInternals.get(t);s&&n(r,{...s})}}function _o({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 rx(){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 js(t){return(e,n,r)=>t==null?void 0:t(e,r)}function Lu({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),k=x.useRef(!1),_=rx();return x.useEffect(()=>{if(t!=null&&t.current){const v=kt(t.current),M=({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=yi(u.current,z);I=fi(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=Iu(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:js(U);if(q&&y.current){const[F,X]=Ks({nodeId:s,dragItems:u.current,nodeInternals:Z});q(y.current,F,X)}},C=()=>{if(!p.current)return;const[$,O]=ru(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})&&M(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:js(g);(!i||!o)&&!Z&&s&&((z=O.get(s))!=null&&z.selected||U()),s&&o&&i&&_o({id:s,store:a,nodeRef:t});const R=_($);if(h.current=R,u.current=ex(O,N,R,s),A&&u.current){const[B,P]=Ks({nodeId:s,dragItems:u.current,nodeInternals:O});A($.sourceEvent,B,P)}};if(e)v.on(".drag",null);else{const $=$y().on("start",O=>{const{domNode:Z,nodeDragThreshold:N}=a.getState();N===0&&D(O),k.current=!1;const U=_(O);h.current=U,p.current=(Z==null?void 0:Z.getBoundingClientRect())||null,w.current=ee(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&&(k.current=!0),!k.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=ee(O.sourceEvent,p.current),M(Z))}}).on("end",O=>{if(!(!S.current||k.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:js(Y);if(Z(u.current,!1,!1),g){const[A,R]=Ks({nodeId:s,dragItems:u.current,nodeInternals:N});g(O.sourceEvent,A,R)}}}).filter(O=>{const Z=O.target;return!O.button&&(!n||!$a(Z,`.${n}`,t))&&(!r||$a(Z,r,t))});return v.call($),()=>{v.on(".drag",null)}}}},[t,e,n,r,o,a,s,i,_]),c}function $u(){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(k=>k.selected&&(k.draggable||u&&typeof k.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(k=>{if(k.positionAbsolute){const _={x:k.positionAbsolute.x+y,y:k.positionAbsolute.y+b};a&&(_.x=c[0]*Math.round(_.x/c[0]),_.y=c[1]*Math.round(_.y/c[1]));const{positionAbsolute:v,position:M}=Iu(k,_,r,s,void 0,l);k.position=M,k.positionAbsolute=v}return k});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:k,isSelectable:_,isConnectable:v,isFocusable:M,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=_||k||u||h||d||p,ot=$u(),H=vn(n,q.getState,h),G=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:W}=q.getState();if(_&&(!C||!k||W>0)&&_o({id:n,store:q,nodeRef:F}),u){const wt=q.getState().nodeInternals.get(n);wt&&u(rt,{...wt})}},nt=rt=>{if(!So(rt)&&!z)if(ou.includes(rt.key)&&_){const W=rt.key==="Escape";_o({id:n,store:q,unselect:W,nodeRef:F})}else k&&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,W=V.current!==D,wt=K.current!==$;F.current&&(rt||W||wt)&&(rt&&(tt.current=r),W&&(V.current=D),wt&&(K.current=$),q.getState().updateNodeDimensions([{id:n,nodeElement:F.current,forceUpdate:!0}]))},[n,r,D,$]);const at=Lu({nodeRef:F,disabled:O||!k,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]:k},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:G,onMouseLeave:j,onContextMenu:L,onClick:J,onDoubleClick:it,onKeyDown:M?nt:void 0,tabIndex:M?0:void 0,role:M?"button":void 0,"aria-describedby":z?void 0:`${Pu}-${P}`,"aria-label":B},x.createElement(yw,{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 sx=t=>{const e=t.getNodes().filter(n=>n.selected);return{...yi(e,t.nodeOrigin),transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`,userSelectionActive:t.userSelectionActive}};function ox({onSelectionContextMenu:t,noPanClassName:e,disableKeyboardA11y:n}){const r=ht(),{width:s,height:o,x:i,y:a,transformString:c,userSelectionActive:l}=lt(sx,pt),u=$u(),h=x.useRef(null);if(x.useEffect(()=>{var w;n||(w=h.current)==null||w.focus({preventScroll:!0})},[n]),Lu({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 ix=x.memo(ox);const ax=t=>t.nodesSelectionActive,Yu=({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:k,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:M,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(ax),q=jn(h),F=jn(S),X=F||Z,V=F||C,K=q||d&&X!==!0;return Vw({deleteKeyCode:a,multiSelectionKeyCode:b}),x.createElement(Kw,{onMove:c,onMoveStart:l,onMoveEnd:u,onPaneContextMenu:o,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:M,panOnScroll:V,panOnScrollSpeed:D,panOnScrollMode:$,zoomOnDoubleClick:O,panOnDrag:!q&&X,defaultViewport:N,translateExtent:U,minZoom:Y,maxZoom:g,zoomActivationKeyCode:k,preventScrolling:A,noWheelClassName:z,noPanClassName:B},x.createElement(Ou,{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(ix,{onSelectionContextMenu:R,noPanClassName:B,disableKeyboardA11y:P})))};Yu.displayName="FlowRenderer";var cx=x.memo(Yu);function lx(t){return lt(x.useCallback(n=>t?pu(n.nodeInternals,{x:0,y:0,width:n.width,height:n.height},n.transform,!0):n.getNodes(),[t]))}function ux(t){const e={input:bn(t.input||Tu),default:bn(t.default||Eo),output:bn(t.output||_u),group:bn(t.group||xi)},n={},r=Object.keys(t).filter(s=>!["input","default","output","group"].includes(s)).reduce((s,o)=>(s[o]=bn(t[o]||Eo),s),n);return{...e,...r}}const hx=({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]},fx=t=>({nodesDraggable:t.nodesDraggable,nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,updateNodeDimensions:t.updateNodeDimensions,onError:t.onError}),Bu=t=>{const{nodesDraggable:e,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,updateNodeDimensions:o,onError:i}=lt(fx,pt),a=lx(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:Si},a.map(u=>{var M,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?hi(u.positionAbsolute,t.nodeExtent):u.positionAbsolute,k=(S==null?void 0:S.x)??0,_=(S==null?void 0:S.y)??0,v=hx({x:k,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:k,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:((M=u[ct])==null?void 0:M.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)})}))};Bu.displayName="NodeRenderer";var dx=x.memo(Bu);const px=(t,e,n)=>n===exports.Position.Left?t-e:n===exports.Position.Right?t+e:t,gx=(t,e,n)=>n===exports.Position.Top?t-e:n===exports.Position.Bottom?t+e:t,Ba="react-flow__edgeupdater",qa=({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([Ba,`${Ba}-${a}`]),cx:px(e,r,t),cy:gx(n,r,t),r,stroke:"transparent",fill:"transparent"}),mx=()=>!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:k,sourceX:_,sourceY:v,targetX:M,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 G=x.useRef(null),[j,L]=x.useState(!1),[it,J]=x.useState(!1),nt=ht(),at=x.useMemo(()=>`url('#${bo(F,X)}')`,[F,X]),rt=x.useMemo(()=>`url('#${bo(q,X)}')`,[q,X]);if(Z)return null;const W=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=G.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?k:S,Bt=(Ct?U:N)||null,Nt=Ct?"target":"source",dn=ce||mx,Rs=Ct,pn=ae.find(ue=>ue.id===n);J(!0),P==null||P(dt,pn,Nt);const ks=ue=>{J(!1),I==null||I(ue,pn,Nt)};xu({event:dt,handleId:Bt,nodeId:le,onConnect:ue=>B==null?void 0:B(pn,ue),isTarget:Rs,getState:nt.getState,setState:nt.setState,isValidConnection:dn,edgeUpdaterType:Nt,onReconnectEnd:ks})},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&&ou.includes(dt.key)&&O){const{unselectNodesAndEdges:ae,addSelectedEdges:ce,edges:le}=nt.getState();dt.key==="Escape"?((Ct=G.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:W,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 ${k}`,"aria-describedby":K?`${Ru}-${X}`:void 0,ref:G},!it&&x.createElement(t,{id:n,source:S,target:k,selected:c,animated:l,label:u,labelStyle:h,labelShowBg:d,labelBgStyle:p,labelBgPadding:w,labelBgBorderRadius:y,data:o,style:b,sourceX:_,sourceY:v,targetX:M,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(qa,{position:D,centerX:_,centerY:v,radius:z,onMouseDown:Ce,onMouseEnter:ie,onMouseOut:Pe,type:"source"}),(tt==="target"||tt===!0)&&x.createElement(qa,{position:$,centerX:M,centerY:C,radius:z,onMouseDown:oe,onMouseEnter:ie,onMouseOut:Pe,type:"target"})))};return e.displayName="EdgeWrapper",x.memo(e)};function yx(t){const e={default:De(t.default||cs),straight:De(t.bezier||gi),step:De(t.step||pi),smoothstep:De(t.step||_s),simplebezier:De(t.simplebezier||di)},n={},r=Object.keys(t).filter(s=>!["default","bezier"].includes(s)).reduce((s,o)=>(s[o]=De(t[o]||cs),s),n);return{...e,...r}}function Fa(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 Za(t,e){return t?t.length===1||!e?t[0]:e&&t.find(n=>n.id===e)||null:null}const wx=(t,e,n,r,s,o)=>{const i=Fa(n,t,e),a=Fa(o,r,s);return{sourceX:i.x,sourceY:i.y,targetX:a.x,targetY:a.y}};function xx({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=fi({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 Ua(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 Sx=[{level:0,isMaxLevel:!0,edges:[]}];function vx(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?Sx:o}function bx(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)&&xx({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 vx(r,e,n)}const Tx=({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"}),Ex=({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"}),Ha={[as.Arrow]:Tx,[as.ArrowClosed]:Ex};function _x(t){const e=ht();return x.useMemo(()=>{var s,o;return Object.prototype.hasOwnProperty.call(Ha,t)?Ha[t]:((o=(s=e.getState()).onError)==null||o.call(s,"009",St.error009(t)),null)},[t])}const Cx=({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=_x(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},Px=({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=bo(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))},qu=({defaultColor:t,rfId:e})=>{const n=lt(x.useCallback(Px({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(Cx,{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})))};qu.displayName="MarkerDefinitions";var Rx=x.memo(qu);const kx=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}),Fu=({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:k,edgesUpdatable:_,elementsSelectable:v,width:M,height:C,connectionMode:D,nodeInternals:$,onError:O}=lt(kx,pt),Z=bx(e,$,n);return M?x.createElement(x.Fragment,null,Z.map(({level:N,edges:U,isMaxLevel:Y})=>x.createElement("svg",{key:N,style:{zIndex:N},width:M,height:C,className:"react-flow__edges react-flow__container"},Y&&x.createElement(Rx,{defaultColor:t,rfId:r}),x.createElement("g",null,U.map(g=>{const[A,R,z]=Ua($.get(g.source)),[B,P,I]=Ua($.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=Za(R.source,g.sourceHandle),K=Za(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||k&&typeof g.focusable>"u"),H=g.reconnectable||g.updatable,G=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}=wx(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:G,pathOptions:"pathOptions"in g?g.pathOptions:void 0,interactionWidth:g.interactionWidth,disableKeyboardA11y:S})})))),b):null};Fu.displayName="EdgeRenderer";var Mx=x.memo(Fu);const Ax=t=>`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`;function Nx({children:t}){const e=lt(Ax);return x.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:e}},t)}function Dx(t){const e=Cs(),n=x.useRef(!1);x.useEffect(()=>{!n.current&&e.viewportInitialized&&t&&(setTimeout(()=>t(e),1),n.current=!0)},[t,e.viewportInitialized])}const Ox={[exports.Position.Left]:exports.Position.Right,[exports.Position.Right]:exports.Position.Left,[exports.Position.Top]:exports.Position.Bottom,[exports.Position.Bottom]:exports.Position.Top},Zu=({nodeId:t,handleType:e,style:n,type:r=jt.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,k=p==null?void 0:p.position,_=k?Ox[k]:null;if(!k||!_)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:k,toPosition:_,connectionStatus:o});let v="";const M={sourceX:b,sourceY:S,sourcePosition:k,targetX:c,targetY:l,targetPosition:_};return r===jt.Bezier?[v]=uu(M):r===jt.Step?[v]=vo({...M,borderRadius:0}):r===jt.SmoothStep?[v]=vo(M):r===jt.SimpleBezier?[v]=lu(M):v=`M${b},${S} ${c},${l}`,x.createElement("path",{d:v,fill:"none",className:"react-flow__connection-path",style:n})};Zu.displayName="ConnectionLine";const zx=t=>({nodeId:t.connectionNodeId,handleType:t.connectionHandleType,nodesConnectable:t.nodesConnectable,connectionStatus:t.connectionStatus,width:t.width,height:t.height});function Ix({containerStyle:t,style:e,type:n,component:r}){const{nodeId:s,handleType:o,nodesConnectable:i,width:a,height:c,connectionStatus:l}=lt(zx,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(Zu,{nodeId:s,handleType:o,style:e,type:n,CustomComponent:r,connectionStatus:l})))}function Va(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 Uu=({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:k,connectionLineComponent:_,connectionLineContainerStyle:v,selectionKeyCode:M,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:G,onPaneMouseLeave:j,onPaneScroll:L,onPaneContextMenu:it,onEdgeContextMenu:J,onEdgeMouseEnter:nt,onEdgeMouseMove:at,onEdgeMouseLeave:rt,onReconnect:W,onReconnectStart:wt,onReconnectEnd:se,reconnectRadius:hn,noDragClassName:Ee,noWheelClassName:_e,noPanClassName:Yt,elevateEdgesOnSelect:Ce,disableKeyboardA11y:oe,nodeOrigin:ie,nodeExtent:Pe,rfId:Re})=>{const fn=Va(t,ux),dt=Va(e,yx);return Dx(o),x.createElement(cx,{onPaneClick:ot,onPaneMouseEnter:H,onPaneMouseMove:G,onPaneMouseLeave:j,onPaneContextMenu:it,onPaneScroll:L,deleteKeyCode:N,selectionKeyCode:M,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(Nx,null,x.createElement(Mx,{edgeTypes:dt,onEdgeClick:a,onEdgeDoubleClick:l,onlyRenderVisibleElements:U,onEdgeContextMenu:J,onEdgeMouseEnter:nt,onEdgeMouseMove:at,onEdgeMouseLeave:rt,onReconnect:W,onReconnectStart:wt,onReconnectEnd:se,reconnectRadius:hn,defaultMarkerColor:I,noPanClassName:Yt,elevateEdgesOnSelect:!!Ce,disableKeyboardA11y:oe,rfId:Re},x.createElement(Ix,{style:k,type:S,component:_,containerStyle:v})),x.createElement("div",{className:"react-flow__edgelabel-renderer"}),x.createElement(dx,{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})))};Uu.displayName="GraphView";var Lx=x.memo(Uu);const Co=[[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:Co,nodeExtent:Co,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:os,isValidConnection:void 0},$x=()=>Kg((t,e)=>({...Wt,setNodes:n=>{const{nodeInternals:r,nodeOrigin:s,elevateNodesOnSelect:o}=e();t({nodeInternals:Gs(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?Gs(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 k=ui(b.nodeElement);!!(k.width&&k.height&&(S.width!==k.width||S.height!==k.height||b.forceUpdate))&&(s.set(S.id,{...S,[ct]:{...S[ct],handleBounds:{source:Ya(".source",b.nodeElement,d,l),target:Ya(".target",b.nodeElement,d,l)}},...k}),y.push({id:S.id,type:"dimensions",dimensions:k}))}return y},[]);Mu(s,l);const w=i||o&&!i&&Au(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=Du(n,a()),u=Gs(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=>Kt(c,!0)):(i=Ie(o(),n),a=Ie(s,[])),xr({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=>Kt(c,!0)):(i=Ie(s,n),a=Ie(o(),[])),xr({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,Kt(u.id,!1))),l=a.map(u=>Kt(u.id,!1));xr({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=>Kt(a.id,!1)),i=n.filter(a=>a.selected).map(a=>Kt(a.id,!1));xr({changedNodes:o,changedEdges:i,get:e,set:t})},setNodeExtent:n=>{const{nodeInternals:r}=e();r.forEach(s=>{s.positionAbsolute=hi(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=te.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),vi=({children:t})=>{const e=x.useRef(null);return e.current||(e.current=$x()),x.createElement(rw,{value:e.current},t)};vi.displayName="ReactFlowProvider";const Hu=({children:t})=>x.useContext(Es)?x.createElement(x.Fragment,null,t):x.createElement(vi,null,t);Hu.displayName="ReactFlowWrapper";const Yx={input:Tu,default:Eo,output:_u,group:xi},Bx={default:cs,straight:gi,step:pi,smoothstep:_s,simplebezier:di},qx=[0,0],Fx=[15,15],Zx={x:0,y:0,zoom:1},Ux={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},Vu=x.forwardRef(({nodes:t,edges:e,defaultNodes:n,defaultEdges:r,className:s,nodeTypes:o=Yx,edgeTypes:i=Bx,onNodeClick:a,onEdgeClick:c,onInit:l,onMove:u,onMoveStart:h,onMoveEnd:d,onConnect:p,onConnectStart:w,onConnectEnd:y,onClickConnectStart:b,onClickConnectEnd:S,onNodeMouseEnter:k,onNodeMouseMove:_,onNodeMouseLeave:v,onNodeContextMenu:M,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=jt.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=is()?"Meta":"Control",zoomActivationKeyCode:G=is()?"Meta":"Control",snapToGrid:j=!1,snapGrid:L=Fx,onlyRenderVisibleElements:it=!1,selectNodesOnDrag:J=!0,nodesDraggable:nt,nodesConnectable:at,nodesFocusable:rt,nodeOrigin:W=qx,edgesFocusable:wt,edgesUpdatable:se,elementsSelectable:hn,defaultViewport:Ee=Zx,minZoom:_e=.5,maxZoom:Yt=2,translateExtent:Ce=Co,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:Rs,onPaneScroll:pn,onPaneContextMenu:ks,children:_i,onEdgeContextMenu:ue,onEdgeDoubleClick:uh,onEdgeMouseEnter:hh,onEdgeMouseMove:fh,onEdgeMouseLeave:dh,onEdgeUpdate:ph,onEdgeUpdateStart:gh,onEdgeUpdateEnd:mh,onReconnect:yh,onReconnectStart:wh,onReconnectEnd:xh,reconnectRadius:Sh=10,edgeUpdaterRadius:vh=10,onNodesChange:bh,onEdgesChange:Th,noDragClassName:Eh="nodrag",noWheelClassName:_h="nowheel",noPanClassName:Ci="nopan",fitView:Ch=!1,fitViewOptions:Ph,connectOnClick:Rh=!0,attributionPosition:kh,proOptions:Mh,defaultEdgeOptions:Ah,elevateNodesOnSelect:Nh=!0,elevateEdgesOnSelect:Dh=!1,disableKeyboardA11y:Pi=!1,autoPanOnConnect:Oh=!0,autoPanOnNodeDrag:zh=!0,connectionRadius:Ih=20,isValidConnection:Lh,onError:$h,style:Yh,id:Ri,nodeDragThreshold:Bh,...qh},Fh)=>{const Ms=Ri||"1";return x.createElement("div",{...qh,style:{...Yh,...Ux},ref:Fh,className:vt(["react-flow",s]),"data-testid":"rf__wrapper",id:Ri},x.createElement(Hu,null,x.createElement(Lx,{onInit:l,onMove:u,onMoveStart:h,onMoveEnd:d,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:k,onNodeMouseMove:_,onNodeMouseLeave:v,onNodeContextMenu:M,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:G,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:Rs,onPaneScroll:pn,onPaneContextMenu:ks,onSelectionContextMenu:R,onSelectionStart:z,onSelectionEnd:B,onEdgeContextMenu:ue,onEdgeDoubleClick:uh,onEdgeMouseEnter:hh,onEdgeMouseMove:fh,onEdgeMouseLeave:dh,onReconnect:yh??ph,onReconnectStart:wh??gh,onReconnectEnd:xh??mh,reconnectRadius:Sh??vh,defaultMarkerColor:Pe,noDragClassName:Eh,noWheelClassName:_h,noPanClassName:Ci,elevateEdgesOnSelect:Dh,rfId:Ms,disableKeyboardA11y:Pi,nodeOrigin:W,nodeExtent:ie}),x.createElement(Ow,{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:Nh,minZoom:_e,maxZoom:Yt,nodeExtent:ie,onNodesChange:bh,onEdgesChange:Th,snapToGrid:j,snapGrid:L,connectionMode:P,translateExtent:Ce,connectOnClick:Rh,defaultEdgeOptions:Ah,fitView:Ch,fitViewOptions:Ph,onNodesDelete:Z,onEdgesDelete:N,onNodeDragStart:D,onNodeDrag:$,onNodeDragStop:O,onSelectionDrag:g,onSelectionDragStart:Y,onSelectionDragStop:A,noPanClassName:Ci,nodeOrigin:W,rfId:Ms,autoPanOnConnect:Oh,autoPanOnNodeDrag:zh,onError:$h,connectionRadius:Ih,isValidConnection:Lh,nodeDragThreshold:Bh}),x.createElement(Nw,{onSelectionChange:U}),_i,x.createElement(iw,{proOptions:Mh,position:kh}),x.createElement(Yw,{rfId:Ms,disableKeyboardA11y:Pi})))});Vu.displayName="ReactFlow";function Hx(){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 Vx({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 Xx=({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)},Xa=({sourceStumpTip:t,sourceOrientation:e,sourceBox:n,targetStumpTip:r,targetOrientation:s,targetBox:o})=>{if(!Wx({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)}},Po=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},Gx=(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=Ga(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=Ga(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,Ga=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",Qt=t=>me(t.direction,t.length),Wx=({sourcePos:t,targetPos:e,sourceOrientation:n})=>{const r=f.g.construct(n),s=e[r]-t[r];return Se(n,s)<0},vr=t=>({direction:f.g.construct(t),length:Se(t,bt)}),Wa={top:vr("top"),bottom:vr("bottom"),left:vr("left"),right:vr("right")},Kx=4,jx=.25,Ps=t=>Ro(Jx(Ro(t))),Jx=t=>{const e=[...t],n=t.findIndex((r,s)=>{const o=Math.abs(r.length);if(o<Kx){if(o<jx)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},Ro=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=Qt(o),l=Qt(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=Qt(r),l=Qt(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?Ro(e):e},Qx=t=>Ps(tS(t)),tS=({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=Xa({sourceStumpTip:l,sourceOrientation:o,sourceBox:t,targetStumpTip:h,targetOrientation:s,targetBox:e});p!=null&&(d.push(p),l=_n(l,p),i=Qt(p),c=p);const w=Xa({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 M=f.g.construct(i),C=(h[M]-l[M])/2;d.push({direction:M,length:C});const D=f.g.swap(M);return d.push({direction:D,length:h[D]-l[D]}),d.push({direction:M,length:C}),y(),d}const b=h[c.direction]-l[c.direction];let S=f.g.swap(c.direction);const k=l[S]-h[S];let _;me(c.direction,b)===i&&me(S,k)===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},eS=t=>Ps(nS(t)),nS=({segments:t,index:e,magnitude:n})=>{const r=[...t],s=r[e],o=f.g.swap(s.direction),i=Qt(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},rS=(t,e)=>{for(let n=t.length-1;n>=0;n--)if(e(t[n],n))return n;return-1},sS=(t,e,n=!1,...r)=>{const s=(o,i)=>!r.includes(i)&&e(o,i);return n?rS(t,s):t.findIndex(s)},oS=({delta:t,segments:e})=>Ps(Xu(t,e,!1)),iS=({delta:t,segments:e})=>Ps(Xu(t,e,!0)),Xu=(t,e,n)=>{let r=[...e];return t.x!==0&&(r=ja("x",t,r,n)),t.y!==0&&(r=ja("y",t,r,n)),r},Ka=(t,e,n)=>{if(e.direction!==t)return!1;const r={...e,length:e.length-n[t]},s=Qt(e),o=Qt(r);return Math.abs(r.length)>bt&&s===o},ja=(t,e,n,r)=>{const s=f.g.swap(t),o=r?n.length-1:0,i=n[o];if(Ka(t,i,e))return n[o]={...i,length:i.length-e[t]},n;const a=r?0:n.length-1,l=sS(n,h=>h.direction===t,r,o);if(l===a){const h=n[a];return Ka(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},aS=E.z.object({position:f.q.xy,zoom:E.z.number()}),Gu=E.z.object({color:f.crudeZ,segments:E.z.array(Po)}),cS=Gu.extend({key:E.z.string(),source:E.z.string(),target:E.z.string(),segments:E.z.array(Po),color:f.crudeZ,id:E.z.string(),data:E.z.object({segments:E.z.array(Po),color:f.crudeZ}).optional(),selected:E.z.boolean(),sourceHandle:E.z.string().nullable().optional(),targetHandle:E.z.string().nullable().optional()}),lS=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()}),Wu=t=>t.map(e=>({...e,id:e.key,type:"custom",data:{}})),Ku=t=>t.map(({segments:e,color:n,...r})=>({...r,id:r.key,data:{segments:e,color:n}})),ju=t=>t.map(e=>({key:e.id,selected:e.selected,...e})),Ju=(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}}),uS=t=>({...t.position,zoom:t.zoom}),Qu=t=>({position:f.q.construct(t),zoom:t.zoom}),hS=(t,e)=>ju(e(Wu(t))),fS=(t,e,n)=>Ju(e(Ku(t)),n),bi=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"],th=()=>{const t=Cs();return x.useRef(Qu(t.getViewport())).current},Ye=class Ye extends T.Composite{constructor(){super(...arguments);m(this,"eraser",new ni);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",bi);let on=Ye;const eh={[on.TYPE]:on},dS=Object.freeze(Object.defineProperty({__proto__:null,Diagram:on,REGISTRY:eh,diagramStateZ:bi,useInitialViewport:th},Symbol.toStringTag,{value:"Module"})),nh=E.z.object({region:f.To.box,enabled:E.z.boolean().optional().default(!1)});class ls extends T.Leaf{constructor(){super(...arguments);m(this,"schema",nh);m(this,"eraser",new ni)}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(ls,"TYPE","eraser");const pS={[ls.TYPE]:ls},Ti=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",Ti)}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 cr(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 rh={[an.TYPE]:an},gS=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:rh,Tooltip:an,tooltipStateZ:Ti},Symbol.toStringTag,{value:"Module"})),Ei=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",Ei)}async afterUpdate(){const n=gt.use(this.ctx);this.internal.theme=T.use(this.ctx),this.internal.render=n,this.internal.draw=new cr(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((k,_)=>f.q.distance(a,k.value)-f.q.distance(a,_.value))[0],S.sort((k,_)=>f.q.distance(c,k.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.w(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.w.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 sh={[cn.TYPE]:cn},mS=Object.freeze(Object.defineProperty({__proto__:null,Measure:cn,REGISTRY:sh,measureStateZ:Ei},Symbol.toStringTag,{value:"Module"})),oh=E.z.object({trigger:E.z.number(),command:E.z.number().optional(),value:E.z.number(),sink:fc.optional().default(nc),source:hc.optional().default(sc)});class us extends T.Leaf{constructor(){super(...arguments);m(this,"schema",oh)}async afterUpdate(){var c;this.internal.addStatus=T.useOptionalAggregate(this.ctx);const{sink:n,source:r,trigger:s,command:o}=this.state,{trigger:i}=this.prevState,{internal:a}=this;this.internal.source=await Ht(this.ctx,r,this.internal.source),a.sink=await er(this.ctx,n,a.sink),s!==i&&o!=null&&this.internal.sink.set(o),await this.updateValue(),(c=a.stopListening)==null||c.call(a),a.stopListening=a.source.onChange(()=>{this.updateValue().catch(this.reportError.bind(this))})}reportError(n){this.internal.addStatus({key:this.key,variant:"error",message:`Failed to update Setpoint: ${n.message}`})}async updateValue(){const n=await this.internal.source.value();n!==this.state.value&&this.setState(r=>({...r,value: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(us,"TYPE","Setpoint");const yS={[us.TYPE]:us},ih=E.z.object({triggered:E.z.boolean(),enabled:E.z.boolean(),sink:ms.optional().default(ps),source:uc.optional().default(rc)});class hs extends T.Leaf{constructor(){super(...arguments);m(this,"schema",ih)}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 Ht(this.ctx,r,this.internal.source),a.sink=await er(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(hs,"TYPE","Toggle");const wS={[hs.TYPE]:hs},xS=E.z.object({box:f.To.box,telem:pc.optional().default(oc),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 Ht(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",xS);let ln=An;const ah={[ln.TYPE]:ln},SS=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:ah,Value:ln},Symbol.toStringTag,{value:"Module"})),vS=T.Ny.payloadZ.extend({viewport:f.R.bounds}),ch=E.z.object({cursor:f.q.xy.or(E.z.null()),hovered:vS.or(E.z.null()),count:E.z.number()});class Jn extends T.Leaf{constructor(){super(...arguments);m(this,"schema",ch);m(this,"fetchedInitial",T.U.ZERO)}async afterUpdate(){const{internal:n}=this;n.render=gt.use(this.ctx),n.draw=new cr(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.w.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 k=!1;u!=null&&(k=f.R.contains({lower:b,upper:S},u)),k&&(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=>k?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 bS={[Wr.TYPE]:Wr,[Jn.TYPE]:Jn},TS=ar;class Qn extends gl{constructor(){super(...arguments);m(this,"schema",ar)}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 lh=E.z.object({container:f.To.box,viewport:f.To.box,hold:E.z.boolean().optional().default(!1),grid:E.z.record(Zc),clearOverScan:f.q.crudeZ.optional().default(f.q.ZERO)}),ES=(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 fs extends T.Composite{constructor(){super(...arguments);m(this,"schema",lh)}async afterUpdate(){this.internal.instrumentation=sr(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 ES(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 Mf(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(fs,"TYPE","LinePlot");const _S={[fs.TYPE]:fs,[Qn.TYPE]:Qn,[Zn.TYPE]:Zn};exports.AcquireChannelControl=Hn;exports.Annotation=Wr;exports.AuthoritySource=Vn;exports.BaseEdge=un;exports.BaseProvider=Ke;exports.Button=ts;exports.Canvas=hl;exports.Canvas$1=Xn;exports.Chip=Kr;exports.Context=gt;exports.Controller=yt;exports.Controller$1=jr;exports.Diagram=dS;exports.Diagram$1=on;exports.Eraser=ni;exports.Eraser$1=ls;exports.GLProgram=ei;exports.Handle$1=Kn;exports.Indicator=Jr;exports.Legend=Qr;exports.Line=Fn;exports.LinePlot=fs;exports.Loop=fl;exports.Measure=cn;exports.Provider=Rr;exports.Provider$1=Jn;exports.Provider$2=ro;exports.REASON_DATA=ho;exports.REASON_LAYOUT=Lt;exports.REASON_TOOL=ne;exports.REGISTRY=pf;exports.REGISTRY$1=Lg;exports.REGISTRY$10=wl;exports.REGISTRY$11=yS;exports.REGISTRY$12=Ja;exports.REGISTRY$13=Fc;exports.REGISTRY$14=wS;exports.REGISTRY$15=rh;exports.REGISTRY$16=ah;exports.REGISTRY$2=Nl;exports.REGISTRY$3=Ig;exports.REGISTRY$4=eh;exports.REGISTRY$5=pS;exports.REGISTRY$6=Pg;exports.REGISTRY$7=_S;exports.REGISTRY$8=sh;exports.REGISTRY$9=bS;exports.ReactFlow=Vu;exports.ReactFlowProvider=vi;exports.Rule=tn;exports.STATUSES=Tl;exports.SetChannelValue=Un;exports.Setpoint=us;exports.StateProvider=en;exports.Toggle=hs;exports.Tooltip=an;exports.Value=ln;exports.XAxis=Qn;exports.YAxis=Zn;exports.ZERO_CONTEXT_VALUE=Mo;exports.acquireChannelControl=Og;exports.acquireChannelControlPropsZ=Pl;exports.addEdge=fu;exports.aether=Ag;exports.annotationStateZ=xl;exports.applyEdgeChanges=Qw;exports.applyNodeChanges=Du;exports.authoritySource=zg;exports.authoritySourceProps=Rl;exports.axisStateZ=ti;exports.buildNew=Qx;exports.buttonStateZ=Al;exports.canvas=$g;exports.canvasStateZ=si;exports.cc=vt;exports.channelData=bc;exports.checkIntegrity=Xx;exports.chipStateZ=Sl;exports.controllerStateZ=_l;exports.coreAxisStateZ=ar;exports.diagramStateZ=bi;exports.dragSegment=eS;exports.edgeConverter=fS;exports.edgeZ=cS;exports.eraserStateZ=nh;exports.external=Rf;exports.filterGridEntries=fe;exports.indicatorStateZ=kl;exports.legendStateZ=Ml;exports.linePlotStateZ=lh;exports.measure=mS;exports.measureStateZ=Ei;exports.moveSourceNode=oS;exports.moveTargetNode=iS;exports.newTickFactory=uo;exports.nodeConverter=hS;exports.nodeZ=lS;exports.parseAutoBounds=ml;exports.provider=jh;exports.providerStateZ=ch;exports.providerStateZ$1=$c;exports.providerStateZ$2=qo;exports.rfEdgeDataZ=Gu;exports.rollingAverage=zc;exports.rollingAverageProps=Bo;exports.ruleStateZ=ri;exports.segmentsToPoints=Gx;exports.setChannelValue=Dg;exports.setChannelValuePropsZ=Cl;exports.setpoint=Mc;exports.setpointStateZ=oh;exports.shallow$1=pt;exports.sinkPipeline=Sc;exports.sinkPipelinePropsZ=zo;exports.sourcePipeline=xc;exports.sourcePipelinePropsZ=Oo;exports.stateProviderStateZ=vl;exports.stateZ=yl;exports.statusZ=El;exports.streamChannelData=Tc;exports.streamChannelValue=Ec;exports.streamChannelValuePropsZ=Io;exports.stringifyNumber=Oc;exports.stringifyNumberProps=Yo;exports.sugaredStateZ=bl;exports.tickFactoryProps=Qo;exports.tickType=Jo;exports.toggleStateZ=ih;exports.tooltip=gS;exports.tooltipStateZ=Ti;exports.translateEdgesBackward=Ju;exports.translateEdgesForward=Ku;exports.translateNodesBackward=ju;exports.translateNodesForward=Wu;exports.translateViewportBackward=Qu;exports.translateViewportForward=uS;exports.updateEdge=bw;exports.useInitialViewport=th;exports.useOnViewportChange=Vx;exports.useReactFlow=Cs;exports.useStore=lt;exports.useUpdateNodeInternals=Hx;exports.value=SS;exports.viewportZ=aS;exports.withinBounds=Ac;exports.withinSizeThreshold=dl;exports.xAxisStateZ=TS;exports.yAxisStateZ=Ng;
|