@synnaxlabs/pluto 0.39.1 → 0.40.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/{Center-DoAxDY5V.js → Center-CFEPOi_x.js} +2 -2
- package/dist/{Center-BjxFDxgi.cjs → Center-bD2cOjI8.cjs} +1 -1
- package/dist/{ContextMenu-DX6j7Wwi.js → ContextMenu-BXNN2_7t.js} +4 -4
- package/dist/{ContextMenu-BWGS1vXl.cjs → ContextMenu-CNSewKSD.cjs} +1 -1
- package/dist/{DateTime-DUuYjZr8.cjs → DateTime-BfnGq6C2.cjs} +1 -1
- package/dist/{DateTime-sO15tvDD.js → DateTime-Djw6pb3W.js} +3 -3
- package/dist/Divider-CJNDIsD4.cjs +22 -0
- package/dist/{Divider-C5m3c4pv.js → Divider-CMyzWvRC.js} +701 -854
- package/dist/{Dropdown-DurKTABg.cjs → Dropdown-CL7BefC8.cjs} +1 -1
- package/dist/{Dropdown-FSmdakic.js → Dropdown-D-aMufnM.js} +8 -8
- package/dist/{Haul-CoG7Jmz6.cjs → Haul-4OcHX8__.cjs} +1 -1
- package/dist/{Haul-DrdXQaTq.js → Haul-CaLW9ULm.js} +2 -2
- package/dist/{Item-CZAsnOoO.js → Item-CW2A2nuL.js} +6 -6
- package/dist/{Item-Dj7cQJ8t.cjs → Item-CpAZC-dF.cjs} +1 -1
- package/dist/{Keyboard-lwCx7plR.js → Keyboard--YA9DHRz.js} +2 -2
- package/dist/{Keyboard-D4FRdVej.cjs → Keyboard-DHGtnfsf.cjs} +1 -1
- package/dist/{Link-lleSh5eG.js → Link-BT_Kwmlr.js} +2 -2
- package/dist/{Link-BSZ-HrRf.cjs → Link-Bhto2KVL.cjs} +1 -1
- package/dist/{Pack-CzZzxA2R.cjs → Pack-C4NdZWyf.cjs} +1 -1
- package/dist/{Pack-Dlj4dZzQ.js → Pack-UzJJ9OhY.js} +2 -2
- package/dist/{Provider-CCZPt2M5.js → Provider-BH1uv6QX.js} +5 -5
- package/dist/{Provider-YIru1nvE.cjs → Provider-lJARiq5i.cjs} +1 -1
- package/dist/{Space-NNqCWFbg.cjs → Space-BrQoodma.cjs} +1 -1
- package/dist/{Space-DBmhvGQL.js → Space-I_hidXYi.js} +1 -1
- package/dist/{Text-DT2rIwXL.js → Text-B7AC8Z1e.js} +423 -390
- package/dist/{Text-B3pNXYhh.js → Text-C-o1z9sP.js} +7 -7
- package/dist/{Text-DrXyKZwR.cjs → Text-C_j_F67Q.cjs} +1 -1
- package/dist/Text-ClTuQXMF.cjs +4 -0
- package/dist/{Text-D1GKnp9s.cjs → Text-DEbr1cmH.cjs} +1 -1
- package/dist/{Text-g6btwQ6E.js → Text-DVv04lTs.js} +5 -5
- package/dist/{Toggle-BzORI5sE.cjs → Toggle-CYB9Vt6b.cjs} +1 -1
- package/dist/{Toggle-DZMcFiiI.js → Toggle-v77mEVLE.js} +5 -5
- package/dist/{Video-DPIAdJ-g.js → Video-TjJf_tXI.js} +1 -1
- package/dist/{Video-BJudMCoc.cjs → Video-hdvNT3La.cjs} +1 -1
- package/dist/{WithIcon-C6COgbZq.js → WithIcon-BnDZ-Qu7.js} +12 -12
- package/dist/{WithIcon-CJvuPkSy.cjs → WithIcon-tr8ELI3W.cjs} +1 -1
- package/dist/{aggregator-5XpEdQtr.js → aggregator-AgOKLWHz.js} +2 -2
- package/dist/{aggregator-BAdXZfPY.cjs → aggregator-QqWwGnYH.cjs} +1 -1
- 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/{deep-BjupBYvk.cjs → deep-DsH2ji6Z.cjs} +1 -1
- package/dist/{deep-ChDJVfub.js → deep-T1-57GfG.js} +1 -1
- package/dist/{dimensions-Bt1NqWz6.js → dimensions-C9PXLcE0.js} +1 -1
- package/dist/{dimensions-IEzi7AOM.cjs → dimensions-e5IPRZhn.cjs} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{eraser-CnbMvm7W.cjs → eraser-D2I1qgOg.cjs} +1 -1
- package/dist/{eraser-DKQ5u3sz.js → eraser-Dmishn8h.js} +2 -2
- package/dist/ether.cjs +1 -1
- package/dist/ether.js +8 -8
- package/dist/{external-vVwTqni5.cjs → external-B1ttDWzy.cjs} +1 -1
- package/dist/{external-C710XUvC.js → external-B9nbHICv.js} +5338 -5275
- package/dist/{external-DYUmsMj8.cjs → external-BWb18P9x.cjs} +2 -2
- package/dist/{external-DNC1e6Hi.js → external-BdxbwUpI.js} +9 -9
- package/dist/{external-BQtPGUNg.cjs → external-BpvGU0dZ.cjs} +1 -1
- package/dist/{external-D18IGHXh.js → external-C3e9emVy.js} +5 -5
- package/dist/{external-DYn3iC-U.js → external-C7Hy9XdI.js} +33 -33
- package/dist/{external-C8i1PCpN.js → external-CcIx4j5m.js} +12 -12
- package/dist/{external-Vjn4WKwt.cjs → external-ClyfPgqG.cjs} +35 -35
- package/dist/{external-CNyc2Q9k.cjs → external-CqhOyYDl.cjs} +1 -1
- package/dist/{external-DhX0dZoF.cjs → external-Cs8oKwvw.cjs} +1 -1
- package/dist/{external-Dmr3e50U.js → external-Csg4_wkz.js} +3 -3
- package/dist/{external-BJulb-Hm.cjs → external-CwvJvXL5.cjs} +1 -1
- package/dist/{external-BTGfIw_K.cjs → external-Cztvb3-K.cjs} +1 -1
- package/dist/{external-GUQ0NMxY.js → external-D12g_huj.js} +6 -6
- package/dist/{external-BOOtUi1D.js → external-DCflyFdb.js} +3 -3
- package/dist/{external-DrwngojV.cjs → external-DMEzx_kb.cjs} +1 -1
- package/dist/{external-Bxg2-RDn.js → external-DTjOTICM.js} +2 -2
- package/dist/{external-CL_RlqOT.cjs → external-D_21zZAf.cjs} +1 -1
- package/dist/{external-AOOzgEKd.cjs → external-DkQnAvKo.cjs} +1 -1
- package/dist/{external-DK_wU08V.js → external-JNlv7kxI.js} +2 -2
- package/dist/{external-BhaLdMzY.js → external-_b4lTCfZ.js} +12 -12
- package/dist/{external-CRbERCqd.cjs → external-dLVcM8tt.cjs} +1 -1
- package/dist/{external-CjZqwgDh.js → external-upiAayc4.js} +8 -8
- package/dist/{font-MRTGIokZ.cjs → font-Bas26Jn-.cjs} +1 -1
- package/dist/{font-CD9W5Tsh.js → font-CcRdsA3n.js} +2 -2
- package/dist/{fontString-MM82zgKY.cjs → fontString-C7H8Imxd.cjs} +1 -1
- package/dist/{fontString-p8gMjlA1.js → fontString-DdV9bi9l.js} +2 -2
- package/dist/header.cjs +1 -1
- package/dist/header.js +1 -1
- package/dist/{hooks-CwSxEEAh.js → hooks-B7ZV7Hz6.js} +4 -4
- package/dist/{hooks-BKLtEDxx.cjs → hooks-CJnV8Pt4.cjs} +1 -1
- package/dist/index.cjs +7 -7
- package/dist/index.js +6148 -6053
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/jsx-runtime-C5mzlN2N.js +284 -0
- package/dist/jsx-runtime-CITbqOLs.cjs +22 -0
- 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/pluto.css +1 -1
- package/dist/{provider-D3MPSb7n.cjs → provider-BrBEjlx5.cjs} +5 -5
- package/dist/{provider-DfVWtUxZ.js → provider-Dq9t3iAH.js} +40 -27
- package/dist/src/hardware/device/Select.d.ts +6 -2
- package/dist/src/hardware/device/Select.d.ts.map +1 -1
- package/dist/src/status/aether/aggregator.d.ts.map +1 -1
- package/dist/src/status/aether/types.d.ts.map +1 -1
- package/dist/src/synnax/aether/provider.d.ts.map +1 -1
- package/dist/src/table/aether/Table.d.ts.map +1 -1
- package/dist/src/table/cells/Cells.d.ts.map +1 -1
- package/dist/src/telem/aether/remote.d.ts.map +1 -1
- package/dist/src/telem/aether/transformers.d.ts.map +1 -1
- package/dist/src/telem/control/aether/chip.d.ts.map +1 -1
- package/dist/src/telem/control/aether/indicator.d.ts.map +1 -1
- package/dist/src/telem/control/aether/legend.d.ts.map +1 -1
- package/dist/src/telem/control/aether/state.d.ts.map +1 -1
- package/dist/src/viewport/Mask.d.ts.map +1 -1
- package/dist/src/viewport/SelectMode.d.ts +2 -1
- package/dist/src/viewport/SelectMode.d.ts.map +1 -1
- package/dist/src/viewport/use.d.ts +3 -3
- package/dist/src/viewport/use.d.ts.map +1 -1
- package/dist/src/vis/axis/preciseTimeScale.d.ts +102 -0
- package/dist/src/vis/axis/preciseTimeScale.d.ts.map +1 -0
- package/dist/src/vis/axis/preciseTimeScale.spec.d.ts +2 -0
- package/dist/src/vis/axis/preciseTimeScale.spec.d.ts.map +1 -0
- package/dist/src/vis/axis/ticks.d.ts.map +1 -1
- package/dist/src/vis/canvas/aether/canvas.d.ts.map +1 -1
- package/dist/src/vis/diagram/aether/Diagram.d.ts.map +1 -1
- package/dist/src/vis/diagram/aether/types.d.ts.map +1 -1
- package/dist/src/vis/eraser/aether/eraser.d.ts.map +1 -1
- package/dist/src/vis/legend/Container.d.ts.map +1 -1
- package/dist/src/vis/legend/Simple.d.ts +6 -3
- package/dist/src/vis/legend/Simple.d.ts.map +1 -1
- package/dist/src/vis/line/aether/line.d.ts +3 -1
- package/dist/src/vis/line/aether/line.d.ts.map +1 -1
- package/dist/src/vis/lineplot/Line.d.ts +1 -1
- package/dist/src/vis/lineplot/Line.d.ts.map +1 -1
- package/dist/src/vis/lineplot/LinePlot.d.ts +1 -0
- package/dist/src/vis/lineplot/LinePlot.d.ts.map +1 -1
- package/dist/src/vis/lineplot/aether/LinePlot.d.ts.map +1 -1
- package/dist/src/vis/lineplot/aether/axis.d.ts.map +1 -1
- package/dist/src/vis/lineplot/range/aether/annotation.d.ts.map +1 -1
- package/dist/src/vis/lineplot/range/aether/provider.d.ts.map +1 -1
- package/dist/src/vis/lineplot/tooltip/aether/tooltip.d.ts.map +1 -1
- package/dist/src/vis/log/aether/Log.d.ts.map +1 -1
- package/dist/src/vis/measure/aether/measure.d.ts.map +1 -1
- package/dist/src/vis/value/aether/value.d.ts.map +1 -1
- package/dist/src/vis/value/use.d.ts.map +1 -1
- package/dist/{state-w46WTrh-.js → state-CUPEHHgf.js} +116 -110
- package/dist/{state-BKyv_jWZ.cjs → state-LaBGf4_k.cjs} +4 -4
- 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/{useClickOutside-vpv_GiBw.js → useClickOutside-N6MHxbOe.js} +2 -2
- package/dist/{useClickOutside-EJHWO4Q9.cjs → useClickOutside-PFl3AvPU.cjs} +1 -1
- package/dist/{useDebouncedCallback-DDLuEZa8.js → useDebouncedCallback-D4Ec7whQ.js} +1 -1
- package/dist/{useDebouncedCallback-CVLx7N1s.cjs → useDebouncedCallback-vg2DKTH7.cjs} +1 -1
- package/dist/{useMemoCompare-ONEAVO05.cjs → useMemoCompare-BGEWpAJU.cjs} +1 -1
- package/dist/{useMemoCompare-B-Y9Ft2w.js → useMemoCompare-Cq_C2ddc.js} +2 -2
- package/dist/{useVirtualCursorDragWebKit-DFC-XFfl.js → useVirtualCursorDragWebKit-BBTGd7Xe.js} +11 -11
- package/dist/useVirtualCursorDragWebKit-Rnok8Nft.cjs +1 -0
- package/dist/value-C6JZdCF2.cjs +57 -0
- package/dist/{value-DbcZ1sQB.js → value-Dk2DJbst.js} +1528 -1399
- package/dist/video.cjs +1 -1
- package/dist/video.js +1 -1
- package/package.json +7 -7
- package/dist/Divider-MIbyu5ZH.cjs +0 -31
- package/dist/Text-Hnsb1fus.cjs +0 -4
- package/dist/jsx-runtime-CYK1ROHF.js +0 -445
- package/dist/jsx-runtime-UYeBbnYT.cjs +0 -31
- package/dist/useVirtualCursorDragWebKit-BLtwRQY7.cjs +0 -1
- package/dist/value-DQqKhQvt.cjs +0 -57
package/dist/value-DQqKhQvt.cjs
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";var Ei=Object.defineProperty;var Mi=(e,n,t)=>n in e?Ei(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var h=(e,n,t)=>Mi(e,typeof n!="symbol"?n+"":n,t);const w=require("./state-BKyv_jWZ.cjs"),f=require("zod"),y=require("./provider-D3MPSb7n.cjs"),X=require("./aggregator-BAdXZfPY.cjs"),l=require("./css-CU7tous7.cjs"),ee=require("./fontString-MM82zgKY.cjs"),ft=require("./dimensions-IEzi7AOM.cjs"),G=require("./eraser-CnbMvm7W.cjs"),Es=require("./debounce-heEWeOqL.cjs"),rr=require("./deep-BjupBYvk.cjs"),Ms=require("./toArray-DRKOku1s.cjs");var Pi=Object.defineProperty,ki=(e,n,t)=>n in e?Pi(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,je=(e,n,t)=>ki(e,typeof n!="symbol"?n+"":n,t);class Ri{constructor(n,t){je(this,"handlers"),je(this,"transform"),je(this,"closer"),this.transform=n,this.handlers=t??new Map}onChange(n){return this.handlers.set(n,null),()=>this.handlers.delete(n)}notify(n){let t=n;if(this.transform!=null){const[r,s]=this.transform(n);if(!s)return;t=r}this.handlers.forEach((r,s)=>s(t))}setCloser(n){this.closer=n}async close(){var n;return await((n=this.closer)==null?void 0:n.call(this))}}class Yi{constructor(n){je(this,"handlers"),this.handlers=n??new Map}onChange(n){return this.handlers.set(n,null),()=>this.handlers.delete(n)}notify(n){this.handlers.forEach((t,r)=>r(n))}}const sr=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:Yi,Observer:Ri},Symbol.toStringTag,{value:"Module"})),tt="layout",jn="data",st="tool";var J;let I=(J=class{constructor(n){h(this,"f");this.f=n}static control(n,t){n.set(J.CONTEXT_KEY,new J(t),!1)}static useRequest(n){return n.get(J.CONTEXT_KEY).f}static useOptionalRequest(n){var t;return((t=n.getOptional(J.CONTEXT_KEY))==null?void 0:t.f)??null}static requestRender(n,t){this.useRequest(n)(t)}},h(J,"CONTEXT_KEY","pluto-vis-renderer"),J);const zi=f.z.object({props:y.wg.nullable(),state:y.bg.connectivity.connectionStateZ.nullable()}),ar={synnax:null,state:y.bg.connectivity.DEFAULT};var lt;let Ve=(lt=class extends y.Composite{constructor(){super(...arguments);h(this,"schema",lt.stateZ)}async afterUpdate(t){var r;if(t.setPreviously(ir)||$n(t,ar),this.state.props==null){this.internal.synnax!=null&&(this.setState(s=>({...s,state:y.bg.connectivity.DEFAULT})),(r=this.internal.synnax)==null||r.close(),this.internal.synnax=null),$n(t,this.internal);return}this.prevState.props!=null&&rr.I.equal(this.state.props,this.prevState.props)&&this.internal.synnax!=null||(this.internal.synnax=new y.bg(this.state.props),this.internal.synnax.connectivity.onChange(s=>this.setState(a=>({...a,state:s}))),$n(t,this.internal))}},h(lt,"TYPE","synnax.Provider"),h(lt,"stateZ",zi),lt);const ir="pluto-client-context",$n=(e,n)=>e.set(ir,n),Oe=e=>e.get(ir).synnax,Ps={[Ve.TYPE]:Ve},Li=Object.freeze(Object.defineProperty({__proto__:null,Provider:Ve,REGISTRY:Ps,ZERO_CONTEXT_VALUE:ar,use:Oe},Symbol.toStringTag,{value:"Module"}));class ct extends sr.Observer{async cleanup(){}}class Xe extends ct{async set(){return await Promise.resolve()}}h(Xe,"TYPE","noop-boolean-sink");const Pn={type:Xe.TYPE,props:{},variant:"sink",valueType:"boolean"};class Ke extends ct{async set(){return await Promise.resolve()}}h(Ke,"TYPE","noop-numeric-sink");const ks={type:Ke.TYPE,props:{},variant:"sink",valueType:"number"};class Je extends ct{async value(){return await Promise.resolve(!1)}}h(Je,"TYPE","noop-boolean-source");const or={type:Je.TYPE,props:{},variant:"source",valueType:"boolean"};class Qe extends ct{async value(){return 0}}h(Qe,"TYPE","noop-numeric-source");const Rs={type:Qe.TYPE,props:{},variant:"source",valueType:"number"};class tn extends ct{async value(){return""}}h(tn,"TYPE","noop-string-source");const Ys={type:tn.TYPE,props:{},variant:"source",valueType:"string"};class en extends ct{async value(){return{key:"noop",variant:"disabled",message:"unknown",time:w.m.now()}}}h(en,"TYPE","noop-status-source");const lr={type:en.TYPE,props:{},variant:"source",valueType:"status"};class nn extends ct{async value(){return l.ZERO}}h(nn,"TYPE","noop-color-source");const kn={type:nn.TYPE,props:{},variant:"source",valueType:"color"};class rn extends ct{async value(){return[l.H.ZERO,[]]}}h(rn,"TYPE","noop-series");const zs={type:rn.TYPE,props:{},variant:"source",valueType:"series"},Di={[Xe.TYPE]:Xe,[Ke.TYPE]:Ke,[Je.TYPE]:Je,[Qe.TYPE]:Qe,[en.TYPE]:en,[nn.TYPE]:nn,[tn.TYPE]:tn,[rn.TYPE]:rn};class Ls{constructor(){h(this,"type","noop")}create(n){const t=Di[n.type];return t==null?null:new t}}const Oi=f.z.instanceof(ArrayBuffer),Ae=f.z.object({type:f.z.string(),variant:f.z.enum(["source","sink","source-transformer","sink-transformer"]),valueType:f.z.string(),props:f.z.any(),transfer:f.z.array(Oi).optional()}),ut=Ae.extend({variant:f.z.literal("source")}),Rn=Ae.extend({variant:f.z.literal("sink")}),Ds=Ae.extend({variant:f.z.literal("source-transformer")}),Os=Ae.extend({variant:f.z.literal("sink-transformer")}),sn=ut.extend({valueType:f.z.literal("series")}),cr=ut.extend({valueType:f.z.literal("boolean")}),Yn=Rn.extend({valueType:f.z.literal("boolean")}),Ai=Os.extend({valueType:f.z.literal("boolean")}),$i=Ds.extend({valueType:f.z.literal("boolean")}),As=ut.extend({valueType:f.z.literal("number")}),$s=Rn.extend({valueType:f.z.literal("number")}),ur=ut.extend({valueType:f.z.literal("color")}),hr=ut.extend({valueType:f.z.literal("status")}),dr=ut.extend({valueType:f.z.literal("string")});class zn extends sr.BaseObserver{constructor(t){super();h(this,"props_");h(this,"uProps_");h(this,"schema");this.uProps_=t}get props(){if(this.props_==null){const t=this._schema.safeParse(this.uProps_);if(t.success)this.props_=t.data;else throw new y.L(`[BaseTelem] - expected props to be valid, but found the following errors:
|
|
2
|
-
${t.error.message}`)}return this.props_}get _schema(){if(this.schema==null)throw new y.L(`[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 H extends zn{}class Ln extends zn{}class wt extends H{constructor(){super(...arguments);h(this,"sources",{})}get source(){const[t]=Object.values(this.sources);if(t==null)throw new y.L("[UnarySourceTransformer] - expected source to exist, but none was found.");return t}async value(){return this.transform(await this.source.value())}onChange(t){return this.source.onChange(()=>{this.source.value().then(r=>{this.shouldNotify(r)&&t()}).catch(console.error)})}setSources(t){this.sources=t}shouldNotify(t){return!0}transform(t){throw new y.L(`[UnarySourceTransformer] - expected subclass to define transform method, but none was found.
|
|
4
|
-
Make sure to define a method 'transform' on the class.`)}}class Zs extends H{constructor(){super(...arguments);h(this,"sources",{})}async value(){const t=Object.fromEntries(await Promise.all(Object.entries(this.sources).map(async([r,s])=>[r,await s.value()])));return this.transform(t)}setSources(t){this.sources={...this.sources,...t}}transform(t){throw new y.L(`[MultiSourceTransformer] - expected subclass to define transform method, but none was found.
|
|
5
|
-
Make sure to define a method 'transform' on the class.`)}}class Is extends zn{constructor(){super(...arguments);h(this,"sinks",{})}get sink(){const[t]=Object.values(this.sinks);if(t==null)throw new y.L("[UnarySinkTransformer] - expected sink to exist, but none was found.");return t}async set(t){return await this.sink.set(this.transform(t))}setSinks(t){this.sinks={...this.sinks,...t}}transform(t){throw new y.L(`[UnarySinkTransformer] - expected subclass to define transform method, but none was found.
|
|
6
|
-
Make sure to define a method 'transform' on the class.`)}}const fr=f.z.object({from:f.z.string(),to:f.z.string()}),pr=f.z.object({connections:f.z.array(fr),outlet:f.z.string(),segments:f.z.record(ut)});class gr{constructor(n){h(this,"type","pipeline");h(this,"factory");this.factory=n}create(n){switch(n.type){case de.TYPE:return new de(n.props,this.factory);case fe.TYPE:return new fe(n.props,this.factory);default:return null}}}class de extends H{constructor(t,r){super(t);h(this,"schema",pr);h(this,"sources",{});const{connections:s,segments:a}=this.props;Object.entries(a).forEach(([i,o])=>{const c=r.create(o);c!=null&&(this.sources[i]=c)}),s.forEach(({from:i,to:o})=>{const c=this.sources[i],u=this.sources[o];c==null||u==null||"setSources"in u&&u.setSources({[i]:c})})}get outlet(){const{outlet:t}=this.props,r=this.sources[t];if(r==null)throw new y.L(`[SourcePipeline] - expected source to exist at outlet '${t}', but none was found.`);return r}async value(){return await this.outlet.value()}onChange(t){return this.outlet.onChange(t)}async cleanup(){await Promise.all(Object.values(this.sources).map(async t=>{var r;return await((r=t.cleanup)==null?void 0:r.call(t))}))}}h(de,"TYPE","source-pipeline");const Ns=(e,n)=>({variant:"source",props:n,type:de.TYPE,valueType:e}),mr=f.z.object({connections:f.z.array(fr),inlet:f.z.string(),segments:f.z.record(Rn)});class fe extends Ln{constructor(t,r){super(t);h(this,"schema",mr);h(this,"sinks",{});const{connections:s,segments:a}=this.props;Object.entries(a).forEach(([i,o])=>{const c=r.create(o);c!=null&&(this.sinks[i]=c)}),s.forEach(({from:i,to:o})=>{const c=this.sinks[i],u=this.sinks[o];c==null||u==null||"setSinks"in c&&c.setSinks({[o]:u})})}get inlet(){const{inlet:t}=this.props,r=this.sinks[t];if(r==null)throw new y.L(`[SinkPipeline] - expected source to exist at inlet '${t}', but none was found.`);return r}async set(t){return await this.inlet.set(t)}async cleanup(){await Promise.all(Object.values(this.sinks).map(async t=>{var r;return await((r=t.cleanup)==null?void 0:r.call(t))}))}}h(fe,"TYPE","sink-pipeline");const Us=(e,n)=>({variant:"sink",props:n,type:fe.TYPE,valueType:e}),yr=f.z.object({channel:f.z.number().or(f.z.string())});class pe extends H{constructor(t,r){super(r);h(this,"client");h(this,"removeStreamHandler",null);h(this,"channelKey",0);h(this,"schema",yr);h(this,"leadingBuffer",null);h(this,"valid",!1);this.client=t}get testingOnlyLeadingBuffer(){return this.leadingBuffer}get testingOnlyValid(){return this.valid}async cleanup(){var t,r;await((t=this.removeStreamHandler)==null?void 0:t.call(this)),this.valid=!1,(r=this.leadingBuffer)==null||r.release(),this.leadingBuffer=null,this.removeStreamHandler=null}async value(){if(w.w(this.props.channel))return 0;if(this.channelKey===0){const t=await wr(this.client,this.props.channel,!1);if(t==null)return 0;this.channelKey=t.key}return 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 t=s=>{var o;const i=s[this.channelKey].data;if(i.length!==0){const c=i[i.length-1];c.acquire(),(o=this.leadingBuffer)==null||o.release(),this.leadingBuffer=c}this.notify()};this.removeStreamHandler=await this.client.stream(t,[this.channelKey])}}h(pe,"TYPE","stream-channel-value");const wr=async(e,n,t)=>{let r=await e.retrieveChannel(n);if(r==null)return null;if(!t||r.isIndex)return{key:r.key,dataType:r.dataType,virtual:r.virtual};if(y.Jg.isCalculated(r)){const s=await y.Jg.resolveCalculatedIndex(e.retrieveChannel.bind(e),r);if(s==null)throw new y.L("Cannot resolve calculated index");return r=await e.retrieveChannel(s),r==null?null:{key:r.key,dataType:w.g$1.TIMESTAMP,virtual:!1}}if(r.virtual)throw new y.L("Cannot plot data from virtual channels");return{key:r.index,dataType:w.g$1.TIMESTAMP,virtual:!1}},Zi=f.z.object({timeRange:w.U.z,channel:f.z.number().or(f.z.string()),useIndexOfChannel:f.z.boolean().optional().default(!1)});class ge extends H{constructor(t,r){super(r);h(this,"client");h(this,"data",[]);h(this,"valid",!1);h(this,"schema",Zi);this.client=t}async cleanup(){this.data.forEach(t=>t.release()),this.valid=!1}async value(){const{timeRange:t,channel:r,useIndexOfChannel:s}=this.props;if(t.isZero||r===0)return[l.H.ZERO,[]];const a=await wr(this.client,r,s);if(a==null)return[l.H.ZERO,[]];this.valid||await this.readFixed(a.key);let i=l.H.max(this.data.map(o=>o.bounds));return a.dataType.equals(w.g$1.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(t){const s=(await this.client.read(this.props.timeRange,[t]))[t].data;s.forEach(a=>a.acquire()),this.data=s,this.valid=!0}}h(ge,"TYPE","series-source");const Ii=f.z.object({channel:f.z.number().or(f.z.string()),useIndexOfChannel:f.z.boolean().optional().default(!1),timeSpan:w.y$1.z,keepFor:w.y$1.z.optional()});class me extends H{constructor(t,r){super(r);h(this,"client");h(this,"data",[]);h(this,"stopStreaming");h(this,"valid",!1);h(this,"schema",Ii);this.client=t}async value(){const{channel:t,useIndexOfChannel:r,timeSpan:s}=this.props;if(t===0)return[l.H.ZERO,[]];const a=w.m.now(),i=await wr(this.client,t,r);if(i==null)return[l.H.ZERO,[]];if(this.valid||await this.read(i),i.dataType.isVariable)return[l.H.ZERO,this.data];let o=l.H.max(this.data.filter(c=>c.timeRange.end.after(a.sub(s))).map(c=>c.bounds));return i.dataType.equals(w.g$1.TIMESTAMP)&&(o={upper:o.upper,lower:Math.max(o.lower,o.upper-Number(s.valueOf()))}),[o,this.data]}async read({key:t,virtual:r}){const s=w.m.now().spanRange(-this.props.timeSpan);if(!r){const i=(await this.client.read(s,[t]))[t].data;i.forEach(o=>o.acquire()),this.data.push(...i)}await this.updateStreamHandler(t),this.valid=!0}async updateStreamHandler(t){this.stopStreaming!=null&&await this.stopStreaming();const r=s=>{const a=s[t].data;a.forEach(i=>i.acquire()),this.data.push(...a),this.gcOutOfRangeData(),this.notify()};this.stopStreaming=await this.client.stream(r,[t])}gcOutOfRangeData(){const t=w.m.now().sub(this.props.keepFor??this.props.timeSpan),r=this.data.findIndex(s=>s.timeRange.end.before(t));r!==-1&&(this.data.splice(r,1).forEach(s=>s.release()),this.gcOutOfRangeData())}async cleanup(){var t;await((t=this.stopStreaming)==null?void 0:t.call(this)),this.stopStreaming=void 0,this.data.forEach(r=>r.release())}}h(me,"TYPE","dynamic-series-source");const Ni={[ge.TYPE]:ge,[me.TYPE]:me,[pe.TYPE]:pe};class Bs{constructor(n){h(this,"type","remote");h(this,"client");this.client=n}create(n){const t=Ni[n.type];return t==null?null:new t(this.client,n.props)}}const Gs=e=>({type:ge.TYPE,props:e,variant:"source",valueType:"series"}),_s=e=>({type:me.TYPE,props:e,variant:"source",valueType:"series"}),Fs=e=>({type:pe.TYPE,props:e,variant:"source",valueType:"number"});class Hs{constructor(){h(this,"type","static")}create(n){switch(n.type){case an.TYPE:return new an(n.props);case ye.TYPE:return new ye(n.props);case we.TYPE:return new we(n.props);case be.TYPE:return new be(n.props);case xe.TYPE:return new xe(n.props);default:return null}}}const br=f.z.object({data:f.z.array(w.Ct),offsets:f.z.array(f.z.number()).optional().default([])});class an extends H{constructor(t){super(t);h(this,"data");h(this,"schema",br);this.data=this.props.data.map((r,s)=>new w.Z({data:r,dataType:w.g$1.FLOAT32,timeRange:w.U.ZERO,sampleOffset:this.props.offsets[s]??0}))}async value(){return[l.H.max(this.data.map(r=>r.bounds)),this.data]}}h(an,"TYPE","static-series");const qs=br.extend({rate:w.$.z,yOffset:f.z.number().optional().default(0),scroll:f.z.number().optional().default(0),startPosition:f.z.number().optional().default(0),scrollBounds:f.z.boolean().optional().default(!1)});class ye extends H{constructor(t){super(t);h(this,"schema",qs);h(this,"position");h(this,"interval");h(this,"data");this.position=this.props.startPosition,this.start(this.props.rate),this.data=this.props.data.map((r,s)=>new w.Z({data:r,dataType:w.g$1.FLOAT32,timeRange:w.U.ZERO,sampleOffset:this.props.offsets[s]??0}))}async value(){const t=this.data.map(s=>s.slice(0,this.position));if(this.props.scrollBounds){const s=t[0].data[this.position-this.props.scroll<0?0:this.position-this.props.scroll],a=t[0].data[this.position-1];return[{lower:Number(s),upper:Number(a)},t]}return[l.H.max(t.map(s=>s.bounds)),t]}start(t){this.interval!=null&&clearInterval(this.interval),this.interval=setInterval(()=>{var r;(r=this.notify)==null||r.call(this),this.position++},t.period.milliseconds)}async cleanup(){clearInterval(this.interval),this.interval=void 0}}h(ye,"TYPE","iterative-series");const js=f.z.number();class we extends H{constructor(){super(...arguments);h(this,"schema",js)}async value(){return this.props}}h(we,"TYPE","static-numeric");const Ws=f.z.string();class be extends H{constructor(){super(...arguments);h(this,"schema",Ws)}async value(){return this.props}}h(be,"TYPE","static-string");const Vs=l.crudeZ;class xe extends H{constructor(){super(...arguments);h(this,"schema",Vs)}async value(){return new l.Color(this.props)}}h(xe,"TYPE","static-color");const Ui=e=>({type:an.TYPE,props:e,variant:"source",valueType:"series"}),Bi=e=>({type:ye.TYPE,props:e,variant:"source",valueType:"series"}),Gi=e=>({type:we.TYPE,props:e,variant:"source",valueType:"number"}),_i=e=>({type:be.TYPE,props:e,variant:"source",valueType:"string"}),Fi=e=>({type:xe.TYPE,props:e,variant:"source",valueType:"color"}),Hi=["standard","scientific","engineering"],Xs=f.z.enum(Hi),qi=(e,n,t)=>{if(Number.isNaN(e))return"NaN";if(e===1/0)return"∞";if(e===-1/0)return"-∞";if(t==="standard")return e.toFixed(n);if(e===0)return n===0?"0ᴇ0":`0.${"0".repeat(n)}ᴇ0`;let r;return t==="scientific"?r=Math.floor(Math.log10(Math.abs(e))):r=Math.floor(Math.log10(Math.abs(e))/3)*3,`${(e/10**r).toFixed(n)}ᴇ${r}`};class Ks{constructor(){h(this,"type","transformer")}create(n){switch(n.type){case zt.TYPE:return new zt(n.props);case Lt.TYPE:return new Lt(n.props);case Dt.TYPE:return new Dt(n.props);case Ot.TYPE:return new Ot(n.props);case At.TYPE:return new At(n.props);case $t.TYPE:return new $t(n.props);case Zt.TYPE:return new Zt(n.props);case It.TYPE:return new It(n.props)}return null}}const ji=f.z.object({truthy:f.z.number().optional().default(1),falsy:f.z.number().optional().default(0)}),Js=e=>({props:e,type:zt.TYPE,variant:"sink",valueType:"boolean"}),ne=class ne extends Is{constructor(){super(...arguments);h(this,"schema",ne.propsZ)}transform(t){return t?this.props.truthy:this.props.falsy}};h(ne,"TYPE","boolean-numeric-converter-sink"),h(ne,"propsZ",ji);let zt=ne;const xr=f.z.object({trueBound:l.H.bounds}),Qs=e=>({props:e,type:Lt.TYPE,variant:"source",valueType:"boolean"}),re=class re extends wt{constructor(){super(...arguments);h(this,"schema",re.propsZ);h(this,"curr",null)}shouldNotify(t){const r=l.H.contains(this.props.trueBound,t)!==this.curr;return this.curr=l.H.contains(this.props.trueBound,t),r}transform(t){return this.curr=l.H.contains(this.props.trueBound,t),this.curr}};h(re,"TYPE","boolean-source"),h(re,"propsZ",xr);let Lt=re;const ta=f.z.object({}),se=class se extends Zs{constructor(){super(...arguments);h(this,"schema",se.propsZ)}transform(t){return Object.values(t).reduce((r,s)=>r+s,0)/Object.keys(t).length}};h(se,"TYPE","mean"),h(se,"propsZ",ta);let Dt=se;const Wi=e=>({props:e,type:Dt.TYPE,variant:"source",valueType:"boolean"}),ea=f.z.object({trueVariant:X.variantZ.optional().default("success")}),ae=class ae extends wt{constructor(){super(...arguments);h(this,"schema",ae.propsZ)}transform(t){return t.variant===this.props.trueVariant}};h(ae,"TYPE","boolean-status"),h(ae,"propsZ",ea);let Ot=ae;const Vi=e=>({props:e,type:Ot.TYPE,variant:"source",valueType:"boolean"}),vr=f.z.object({precision:f.z.number().optional().default(2),prefix:f.z.string().optional().default(""),suffix:f.z.string().optional().default(""),notation:Xs.optional().default("standard")}),ie=class ie extends wt{constructor(){super(...arguments);h(this,"schema",ie.propsZ)}transform(t){return`${this.props.prefix}${qi(t,this.props.precision,this.props.notation)}${this.props.suffix}`}};h(ie,"TYPE","stringify-number"),h(ie,"propsZ",vr);let At=ie;const na=e=>({props:e,type:At.TYPE,variant:"source",valueType:"string"}),Tr=f.z.object({windowSize:f.z.number().optional().default(5)});class $t extends wt{constructor(){super(...arguments);h(this,"schema",Tr);h(this,"values",[])}transform(t){return this.props.windowSize<2?t:this.values.reduce((r,s)=>r+s,0)/this.values.length}shouldNotify(t){return this.props.windowSize<2?!0:(this.values.length>this.props.windowSize&&(this.values=[]),this.values.push(t),this.values.length===this.props.windowSize)}}h($t,"TYPE","rolling-average"),h($t,"propsZ",ta);const ra=e=>({props:e,type:$t.TYPE,variant:"source",valueType:"number"}),sa=f.z.object({gradient:l.gradientZ}),oe=class oe extends wt{constructor(){super(...arguments);h(this,"schema",oe.propsZ)}transform(t){return l.fromGradient(this.props.gradient,t)}};h(oe,"TYPE","color-gradient"),h(oe,"propsZ",sa);let Zt=oe;const aa=e=>({props:e,type:Zt.TYPE,variant:"source",valueType:"color"}),ia=f.z.object({scale:l.b.transform}),le=class le extends wt{constructor(){super(...arguments);h(this,"schema",le.propsZ)}transform(t){const{offset:r,scale:s}=this.props.scale;return t*s+r}};h(le,"TYPE","scale-number"),h(le,"propsZ",ia);let It=le;const oa=e=>({props:e,type:It.TYPE,variant:"source",valueType:"number"});class Sr{constructor(n){h(this,"factories");h(this,"type","compound");this.factories=n}add(n){this.factories=[...this.factories.filter(t=>t.type!==n.type),n]}create(n){for(const t of this.factories){const r=t.create(n);if(r!=null)return r}return null}}const la=e=>{const n=[new Ks,new Hs,new Ls],t=new Sr(n);return e!=null&&t.add(new Bs(e)),t.add(new gr(t)),t};let ca=class ua{constructor(n,t){h(this,"factory");h(this,"key");h(this,"parent");this.factory=n,this.key=w.Rt.create(),this.parent=t}child(n,t){const r=new Sr([...this.factory.factories,...Ms.A(n)]);return r.add(new gr(r)),new ua(r,t)}create(n){const t=this.factory.create(n);if(t==null)throw new y.Me(`Telemetry service could not find a source for type ${n.type}`);return t}};const Cr="pluto-telem-context",Dn=e=>e.get(Cr),ha=(e,n)=>e.set(Cr,n),da=(e,n,t)=>{var a;const r=Dn(e);if(r!=null&&t!=null&&r.key===((a=t==null?void 0:t.parent)==null?void 0:a.key))return t;const s=r.child(n,r);return e.set(Cr,s),s};class fa{constructor(n,t,r){h(this,"spec");h(this,"wrapped");h(this,"prevProv");this.wrapped=n,this.spec=r,this.prevProv=t}shouldUpdate(n,t){return this.prevProv.key!==n.key||!rr.I.equal(this.spec,t)}}class Hr extends fa{async value(){return await this.wrapped.value()}async cleanup(){var n,t;await((t=(n=this.wrapped).cleanup)==null?void 0:t.call(n))}onChange(n){return this.wrapped.onChange(n)}}class qr extends fa{async set(n){return await this.wrapped.set(n)}async cleanup(){var n,t;await((t=(n=this.wrapped).cleanup)==null?void 0:t.call(n))}}const j=async(e,n,t)=>{var s;const r=Dn(e);if(t instanceof Hr){if(!t.shouldUpdate(r,n))return t;await((s=t.cleanup)==null?void 0:s.call(t))}return new Hr(r.create(n),r,n)},$e=async(e,n,t)=>{var s;const r=Dn(e);if(t instanceof qr){if(!t.shouldUpdate(r,n))return t;await((s=t.cleanup)==null?void 0:s.call(t))}return new qr(r.create(n),r,n)},pa=f.z.object({include:f.z.string().array().optional(),exclude:f.z.string().array().optional(),level:f.z.enum(y.g.LOG_LEVELS).optional().default("info")}),Wn="alamos-provider";var qn;let Vn=(qn=class extends y.Composite{constructor(){super(...arguments);h(this,"schema",pa)}async afterUpdate(t){if(t.getOptional(Wn)!=null)return;const s=[],{include:a,exclude:i,level:o}=this.state;(a!=null||i!=null)&&s.push(y.g.logLevelKeyFiler({include:a,exclude:i})),o!=null&&s.push(y.g.logThresholdFilter(o)),s.length===0&&s.push(()=>!1),this.internal.ins=new y.g.Instrumentation({key:"aether",logger:new y.g.Logger({filters:s})}),t.set(Wn,this.internal.ins)}},h(qn,"TYPE","alamos.Provider"),qn);const Ze=(e,n)=>{const t=e.get(Wn);if(t==null)throw new Error("No instrumentation provider");return n==null?t:t.child(n)},Xi={[Vn.TYPE]:Vn},ga=(e,n)=>e.dataType.isVariable||e.dataType.equals(w.g$1.UINT8)?e:(n==null&&e.dataType.equals(w.g$1.TIMESTAMP)&&(n=BigInt(e.data[0])),e.convert(w.g$1.FLOAT32,n)),Ki=e=>e.isVariable||e.equals(w.g$1.UINT8)?e:w.g$1.FLOAT32,ma=()=>({purgedSeries:0,purgedBytes:w.x.bytes(0)}),ya={instrumentation:y.g.NOOP,staleEntryThreshold:w.y$1.seconds(20)};class Ji{constructor(n){h(this,"data",[]);h(this,"props");this.props={...ya,...n}}write(n){n.length!==0&&(n.forEach(t=>this.writeOne(ga(t))),this.checkIntegrity(n))}dirtyRead(n){const t=this.data.filter(({data:i})=>i.timeRange.overlapsWith(n)).map(({data:i})=>i);if(t.length===0)return{series:[],gaps:[n]};const r=t.map((i,o)=>o===0?w.U.ZERO:new w.U(t[o-1].timeRange.end,i.timeRange.start)).filter(i=>!i.isZero&&i.isValid),s=new w.U(n.start,t[0].timeRange.start),a=new w.U(t[t.length-1].timeRange.end,n.end);return s.isValid&&!s.isZero&&r.unshift(s),a.isValid&&!a.isZero&&r.push(a),{series:t,gaps:r}}gc(){const{staleEntryThreshold:n}=this.props,t=ma(),r=this.data.filter(s=>{const a=s.data.refCount>0||w.m.since(s.addedAt).lessThan(n);return a||(t.purgedBytes=t.purgedBytes.add(s.data.byteCapacity)),a});return t.purgedSeries=this.data.length-r.length,this.data=r,t}close(){this.data=[]}writeOne(n){const{instrumentation:{L:t}}=this.props;if(n.length===0)return;const r=l.H.buildInsertionPlan(this.data.map(c=>c.data.alignmentBounds),n.alignmentBounds);if(r===null)return t.debug("Found no viable insertion plan",{inserting:n.digest,cacheContents:this.data.map(c=>c.data.digest)});const{removeBefore:s,removeAfter:a,insertInto:i,deleteInBetween:o}=r;n=n.slice(s,n.data.length-Number(a)),n.length!==0&&this.data.splice(i,o,{data:n,addedAt:w.m.now()})}checkIntegrity(n){const{instrumentation:{L:t}}=this.props,r=this.data.map(a=>a.data.alignmentBounds);if(r.some((a,i)=>r.some((o,c)=>i===c?!1:l.H.overlapsWith(a,o))))throw t.debug("Cache is in an invalid state - bounds overlap!",()=>({write:n.map(a=>a.digest),cacheContents:this.data.map(a=>a.data.digest)})),new Error("Invalid state")}}const Qi=100,to=1e6,eo=1e4,no=100,ro=40;class so{constructor(n){h(this,"props");h(this,"counter",0);h(this,"curr");h(this,"avgRate",0);h(this,"timeOfLastWrite");h(this,"totalWrites",0);h(this,"now",()=>w.m.now());this.props=n,this.curr=null,n.testingNow!=null&&(this.now=n.testingNow),this.timeOfLastWrite=this.now()}get length(){var n;return((n=this.curr)==null?void 0:n.length)??0}get leadingBuffer(){return this.curr}write(n){const t=n.flatMap(r=>this._write(r));return{flushed:t.flatMap(r=>r.flushed),allocated:t.flatMap(r=>r.allocated)}}allocate(n,t,r){this.counter++;const s=this.props.dataType.isVariable,a=this.props.dataType.equals(w.g$1.TIMESTAMP);return w.Z.alloc({capacity:s?n*ro:n,dataType:Ki(this.props.dataType),timeRange:r.range(w.m.MAX),sampleOffset:a?BigInt(r.valueOf()):0,glBufferUsage:"dynamic",alignment:t,key:`dynamic-${this.counter}`})}_write(n){const t=this.nextBufferSize(),r={flushed:[],allocated:[]};if(this.curr==null)this.curr=this.allocate(t,n.alignment,this.now()),r.allocated.push(this.curr);else if(Math.abs(Number(this.curr.alignment+BigInt(this.curr.length)-n.alignment))>1){const c=this.now();this.curr.timeRange.end=c,r.flushed.push(this.curr),this.curr=this.allocate(t,n.alignment,c),r.allocated.push(this.curr)}const s=ga(n,this.curr.sampleOffset),a=this.curr.write(s);if(a===n.length)return this.updateAvgRate(n),r;const i=this.now();this.curr.timeRange.end=i,r.flushed.push(this.curr),this.curr=this.allocate(t,n.alignment+BigInt(a),i),r.allocated.push(this.curr);const o=this._write(n.slice(a));return r.flushed.push(...o.flushed),r.allocated.push(...o.allocated),r}updateAvgRate(n){if(typeof this.props.dynamicBufferSize=="number")return;const t=n.length/this.now().span(this.timeOfLastWrite).seconds;this.totalWrites>0&&isFinite(t)&&t>0&&(this.avgRate=(this.avgRate*(this.totalWrites-1)+t)/this.totalWrites),this.totalWrites++,this.timeOfLastWrite=this.now()}nextBufferSize(){const{dynamicBufferSize:n}=this.props;if(typeof n=="number")return n;if(this.totalWrites<no)return eo;const t=l.G$1.roundToNearestMagnitude(this.avgRate*n.seconds);return Math.round(Math.max(Math.min(t,to),Qi))}close(){this.curr=null}}class ao{constructor(n){h(this,"channel");h(this,"closed",!1);h(this,"ins");h(this,"static");h(this,"dynamic");this.channel=n.channel,this.ins=n.instrumentation??y.g.NOOP,this.static=new Ji(n),this.dynamic=new so({dynamicBufferSize:n.dynamicBufferSize,dataType:this.channel.dataType})}writeDynamic(n){if(this.closed)return this.ins.L.warn(`Ignoring attempted dynamic write to a closed cache for channel ${this.channel.name}`),[];const{flushed:t,allocated:r}=this.dynamic.write(n);return t.length>0&&this.static.write(t),r}get leadingBuffer(){return this.dynamic.leadingBuffer}writeStatic(n){if(this.closed)return this.ins.L.warn(`Ignoring attempted static write to a closed cache for channel ${this.channel.name}`);this.static.write(n)}read(n){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(n)}gc(){return this.closed?(this.ins.L.warn(`Ignoring attempted garbage collection on a closed cache for channel ${this.channel.name}`),{purgedSeries:0,purgedBytes:w.x.bytes(0)}):this.static.gc()}close(){this.closed=!0,this.dynamic.close(),this.static.close()}}const io=y.S.seconds(60);class oo{constructor(n){h(this,"props");h(this,"cache",new Map);h(this,"gcInterval");this.props={dynamicBufferSize:io,gcInterval:y.S.seconds(30),...ya,...n},this.gcInterval=setInterval(()=>this.gc(),this.props.gcInterval.milliseconds)}async populateMissing(n){const{instrumentation:t,channelRetriever:r,dynamicBufferSize:s}=this.props,a=[];for(const o of n)this.cache.has(o)||a.push(o);if(a.length===0)return;const i=await r.retrieve(a);for(const o of i){const c=new ao({channel:o,dynamicBufferSize:s,instrumentation:t.child(`cache-${o.name}-${o.key}`)});this.cache.has(o.key)||this.cache.set(o.key,c)}}get(n){const t=this.cache.get(n);if(t!=null)return t;throw new y.Me(`cache entry for ${n} not found`)}gc(){const{instrumentation:{L:n}}=this.props;n.info("starting garbage collection");const t=ma();this.cache.forEach(r=>{const s=r.gc();t.purgedSeries+=s.purgedSeries,t.purgedBytes=t.purgedBytes.add(s.purgedBytes)}),n.info("garbage collection complete",{purgedSeries:t.purgedSeries,purgedBytes:t.purgedBytes.toString()},!0)}close(){clearInterval(this.gcInterval),this.cache.forEach(n=>n.close()),this.cache.clear()}}class on{constructor(n,t){h(this,"channel");h(this,"data");this.channel=n,this.data=t}get timeRange(){if(this.data.length===0)return y.H.ZERO;const n=this.data[0].timeRange,t=this.data[this.data.length-1].timeRange;return new y.H(n.start,t.end)}get digest(){return{channel:this.channel.key,timeRange:this.timeRange.toPrettyString(),series:this.data.map(n=>n.digest)}}}const Zn=e=>e.map(n=>n.digest);class lo{constructor(n){h(this,"props");h(this,"debouncedRead");h(this,"guarded",{mu:new y.Mutex,requests:new Map});this.props={instrumentation:y.g.NOOP,batchDebounce:w.y$1.milliseconds(50),...n},this.debouncedRead=Es.o(()=>{this.batchRead()},this.props.batchDebounce.milliseconds)}async read(n,t){const{instrumentation:{L:r},cache:s}=this.props;r.debug("starting read",{tr:n.toPrettyString(),channels:t});const a=performance.now(),i=new Map,o={};await s.populateMissing(t);try{for(const d of t){const p=s.get(d),{series:g,gaps:b}=p.read(n);b.length===0&&(o[d]=new on(p.channel,g)),b.forEach(v=>{const S=i.get(v.toString());S==null?i.set(v.toString(),[v,new Set([d])]):i.set(v.toString(),[v,new Set([...S[1],d])])})}if(i.size===0)return r.debug("read satisfied by cache",()=>({tr:n.toPrettyString(),channels:t,responses:Zn(Object.values(o)),time:w.y$1.milliseconds(performance.now()-a).toString()})),o;r.debug("read cache miss",()=>({tr:n.toPrettyString(),channels:t,toFetch:Array.from(i.values()).map(([d,p])=>({timeRange:d.toPrettyString(),channels:p})),responses:Zn(Object.values(o))}));const{mu:c,requests:u}=this.guarded;for(const[,[d,p]]of i)await new Promise((g,b)=>{c.runExclusive(async()=>{u.set([d,p],{resolve:g,reject:b}),this.debouncedRead()})})}catch(c){throw r.error("read failed",{tr:n.toPrettyString(),channels:t,error:c}),c}for(const c of t){const u=s.get(c),{series:d}=u.read(n);o[c]=new on(u.channel,d)}return r.debug("read satisfied by fetch",()=>({tr:n.toPrettyString(),channels:t,responses:Zn(Object.values(o)),time:w.y$1.milliseconds(performance.now()-a).toString()})),o}async batchRead(){const{instrumentation:{L:n},readRemote:t,cache:r}=this.props,{mu:s,requests:a}=this.guarded;await s.runExclusive(async()=>{const i=[];try{a.forEach((o,c)=>{const[u,d]=c,p=i.find(([g])=>g.start.span(u.start).lessThan(w.y$1.milliseconds(5))&&g.end.span(u.end).lessThan(w.y$1.milliseconds(5)));p==null?i.push([u,d]):p[1]=new Set([...p[1],...d])}),n.debug("batch read",{toFetch:i.map(([o,c])=>({timeRange:o.toPrettyString(),channels:c}))});for(const[o,c]of i){const u=Array.from(c),d=await t(o,u);u.forEach(p=>{const g=r.get(p),b=d.get(p);g.writeStatic(b.series)})}a.forEach(o=>o.resolve())}catch(o){n.error("batch read failed",{error:o},!0),a.forEach(c=>c.reject(o))}finally{a.clear()}})}}class co{constructor(n){h(this,"props");h(this,"mu",new y.Mutex);h(this,"listeners",new Map);h(this,"streamerRunLoop",null);h(this,"streamer",null);h(this,"closed",!1);this.props={instrumentation:y.g.NOOP,...n}}async stream(n,t){const{cache:r,instrumentation:{L:s}}=this.props;return await r.populateMissing(t),await this.mu.runExclusive(async()=>{s.debug("adding stream handler",{keys:t}),this.listeners.set(n,{valid:!0,keys:t});const a={};for(const i of t){const o=r.get(i),c=o.leadingBuffer!=null?[o.leadingBuffer]:[];a[i]=new on(o.channel,c)}return n(a),await this.updateStreamer(),async()=>await this.removeStreamHandler(n)})}async removeStreamHandler(n){const{instrumentation:{L:t}}=this.props;await this.mu.runExclusive(()=>{const r=this.listeners.get(n);r!=null&&(r.valid=!1)}),setTimeout(()=>{this.mu.runExclusive(async()=>{if(t.debug("removing stream handler"),this.listeners.delete(n))return await this.updateStreamer();t.warn("attempted to remove non-existent stream handler")})},5e3)}async updateStreamer(){var a,i;if(this.closed)return;const{instrumentation:{L:n},core:t}=this.props,r=new Set;if(this.listeners.forEach(o=>o.keys.forEach(c=>r.add(c))),r.size===0){n.info("no keys to stream, closing streamer"),(a=this.streamer)==null||a.close(),this.streamerRunLoop!=null&&await this.streamerRunLoop,this.streamer=null,n.info("streamer closed successfully");return}const s=Array.from(r);if(w.F.primitiveArrays(s,((i=this.streamer)==null?void 0:i.keys)??[])===w.F.EQUAL){n.debug("streamer keys unchanged",{keys:s});return}this.streamer==null&&(n.info("creating new streamer",{keys:s}),this.streamer=await t.openStreamer(s),this.streamerRunLoop=this.runStreamer(this.streamer)),n.debug("updating streamer",{prev:this.streamer.keys,next:s});try{await this.streamer.update(s)}catch(o){throw n.error("failed to update streamer",{error:o}),o}}async runStreamer(n){const{cache:t,instrumentation:{L:r}}=this.props;try{for await(const s of n){const a=[];for(const i of s.keys){const o=s.get(i),c=t.get(i),u=c.writeDynamic(o.series);a.push(new on(c.channel,u))}this.listeners.forEach((i,o)=>{if(!i.valid)return;const c=a.filter(d=>i.keys.includes(d.channel.key));if(c.length===0)return;const u=Object.fromEntries(c.map(d=>[d.channel.key,d]));o(u)})}}catch(s){throw r.error("streamer run loop failed",{error:s},!0),s}}async close(){var n;(n=this.streamer)==null||n.close(),this.streamerRunLoop!=null&&await this.streamerRunLoop,this.closed=!0}}class uo{constructor(){h(this,"key",w.Rt.create())}async retrieveChannel(){return null}async read(){return{}}async stream(){return async()=>{}}async close(){}}class ho{constructor({instrumentation:n,core:t}){h(this,"key",w.Rt.create());h(this,"ins");h(this,"cache");h(this,"reader");h(this,"streamer");h(this,"channelRetriever");this.ins=n??y.g.NOOP,this.channelRetriever=t.channels.createDebouncedBatchRetriever(10),this.cache=new oo({channelRetriever:this.channelRetriever,instrumentation:this.ins.child("cache")}),this.reader=new lo({cache:this.cache,readRemote:async(r,s)=>await t.read(r,s),instrumentation:this.ins.child("reader")}),this.streamer=new co({cache:this.cache,core:t,instrumentation:this.ins.child("streamer")})}async retrieveChannel(n){const t=await this.channelRetriever.retrieve([n]);if(t.length===0)throw new y.ie(`channel ${n} not found`);return t[0]}async read(n,t){return await this.reader.read(n,t)}async stream(n,t){return await this.streamer.stream(n,t)}async close(){this.ins.L.info("closing client",{key:this.key}),await this.streamer.close(),this.cache.close()}}const Er=f.z.object({}),ce=class ce extends y.Composite{constructor(){super(...arguments);h(this,"schema",ce.stateZ);h(this,"prevClient",null)}async afterUpdate(t){const r=Oe(t),s=Ze(t,"telem");if(this.internal.instrumentation=s.child("provider"),!(r!==this.prevClient))return;this.prevClient=r;const i=r==null?new uo:new ho({core:r,instrumentation:s}),o=la(i),c=new ca(o);ha(t,c)}};h(ce,"TYPE","telem.Provider"),h(ce,"stateZ",Er);let Nt=ce;const wa={[Nt.TYPE]:Nt},fo=Object.freeze(Object.defineProperty({__proto__:null,AbstractSink:Ln,AbstractSource:H,Base:zn,BaseProvider:Nt,BooleanStatus:Ot,ChannelData:ge,ColorGradient:Zt,CompoundTelemFactory:Sr,Context:ca,FixedColorSource:xe,FixedNumber:we,FixedString:be,IterativeSeries:ye,Mean:Dt,MultiSourceTransformer:Zs,NoopFactory:Ls,PipelineFactory:gr,REGISTRY:wa,RemoteFactory:Bs,RollingAverage:$t,ScaleNumber:It,SetPoint:zt,SinkPipeline:fe,SourcePipeline:de,StaticFactory:Hs,StreamChannelData:me,StreamChannelValue:pe,StringifyNumber:At,TransformerFactory:Ks,UnarySinkTransformer:Is,UnarySourceTransformer:wt,WithinBounds:Lt,booleanSinkSpecZ:Yn,booleanSinkTransformerSpecZ:Ai,booleanSourceSpecZ:cr,booleanSourceTransformerSpecZ:$i,booleanStatus:Vi,booleanStatusProps:ea,channelData:Gs,colorGradient:aa,colorGradientProps:sa,colorSourceSpecZ:ur,connectionZ:fr,createFactory:la,fixedArray:Ui,fixedColor:Fi,fixedColorSourcePropsZ:Vs,fixedNumber:Gi,fixedNumberPropsZ:js,fixedSeriesPropsZ:br,fixedString:_i,fixedStringPropsZ:Ws,iterativeArray:Bi,iterativeSeriesPropsZ:qs,mean:Wi,noopBooleanSinkSpec:Pn,noopBooleanSourceSpec:or,noopColorSourceSpec:kn,noopNumericSinkSpec:ks,noopNumericSourceSpec:Rs,noopSeriesSourceSpec:zs,noopStatusSourceSpec:lr,noopStringSourceSpec:Ys,numberSinkSpecZ:$s,numberSourceSpecZ:As,providerStateZ:Er,rollingAverage:ra,rollingAverageProps:Tr,scaleNumber:oa,scaleNumberProps:ia,seriesSourceSpecZ:sn,setContext:ha,setpoint:Js,sinkPipeline:Us,sinkPipelinePropsZ:mr,sinkSpecZ:Rn,sinkTransformerSpecZ:Os,sourcePipeline:Ns,sourcePipelinePropsZ:pr,sourceSpecZ:ut,sourceTransformerSpecZ:Ds,specZ:Ae,statusSourceSpecZ:hr,streamChannelData:_s,streamChannelValue:Fs,streamChannelValuePropsZ:yr,stringSourceSpecZ:dr,stringifyNumber:na,stringifyNumberProps:vr,useChildContext:da,useContext:Dn,useSink:$e,useSource:j,withinBounds:Qs,withinBoundsProps:xr},Symbol.toStringTag,{value:"Module"})),ba=f.z.object({key:f.z.string(),size:f.z.number(),order:f.z.number(),loc:l.K.outer});f.z.record(ba);const pt=(e,n)=>Object.values(n).filter(({loc:t})=>t===e).sort((t,r)=>r.order-t.order),po=(e,n,t)=>{const r=n[e];if(r==null)return l.G.ZERO;const s=l.K.construct(r.loc),a=pt(s,n),i=l.K.construct(l.g.swap(l.K.direction(s))),o=pt(i,n),c=a.findIndex(({key:p})=>p===e),u=a.slice(0,c).reduce((p,{size:g})=>p+g,0),d=o.reduce((p,{size:g})=>p+g,0);switch(s){case"left":return l.G.translate(l.Mo.topLeft(t),[u,d]);case"right":return l.G.translate(l.Mo.topRight(t),[u-r.size,d]);case"top":return l.G.translate(l.Mo.topLeft(t),[d,u]);default:return l.G.translate(l.Mo.bottomLeft(t),[d,-u-r.size])}},go=(e,n)=>{const t=pt("left",e),r=pt("right",e),s=pt("top",e),a=pt("bottom",e),i=t.reduce((d,{size:p})=>d+p,0),o=r.reduce((d,{size:p})=>d+p,0),c=s.reduce((d,{size:p})=>d+p,0),u=a.reduce((d,{size:p})=>d+p,0);return l.Mo.construct(l.G.translate(l.Mo.topLeft(n),{x:i,y:c}),l.Mo.width(n)-i-o,l.Mo.height(n)-c-u)};function We(e,n){return e==null||n==null?NaN:e<n?-1:e>n?1:e>=n?0:NaN}function mo(e,n){return e==null||n==null?NaN:n<e?-1:n>e?1:n>=e?0:NaN}function Mr(e){let n,t,r;e.length!==2?(n=We,t=(o,c)=>We(e(o),c),r=(o,c)=>e(o)-c):(n=e===We||e===mo?e:yo,t=e,r=e);function s(o,c,u=0,d=o.length){if(u<d){if(n(c,c)!==0)return d;do{const p=u+d>>>1;t(o[p],c)<0?u=p+1:d=p}while(u<d)}return u}function a(o,c,u=0,d=o.length){if(u<d){if(n(c,c)!==0)return d;do{const p=u+d>>>1;t(o[p],c)<=0?u=p+1:d=p}while(u<d)}return u}function i(o,c,u=0,d=o.length){const p=s(o,c,u,d-1);return p>u&&r(o[p-1],c)>-r(o[p],c)?p-1:p}return{left:s,center:i,right:a}}function yo(){return 0}function wo(e){return e===null?NaN:+e}const bo=Mr(We),xo=bo.right;Mr(wo).center;const vo=Math.sqrt(50),To=Math.sqrt(10),So=Math.sqrt(2);function ln(e,n,t){const r=(n-e)/Math.max(0,t),s=Math.floor(Math.log10(r)),a=r/Math.pow(10,s),i=a>=vo?10:a>=To?5:a>=So?2:1;let o,c,u;return s<0?(u=Math.pow(10,-s)/i,o=Math.round(e*u),c=Math.round(n*u),o/u<e&&++o,c/u>n&&--c,u=-u):(u=Math.pow(10,s)*i,o=Math.round(e/u),c=Math.round(n/u),o*u<e&&++o,c*u>n&&--c),c<o&&.5<=t&&t<2?ln(e,n,t*2):[o,c,u]}function Co(e,n,t){if(n=+n,e=+e,t=+t,!(t>0))return[];if(e===n)return[e];const r=n<e,[s,a,i]=r?ln(n,e,t):ln(e,n,t);if(!(a>=s))return[];const o=a-s+1,c=new Array(o);if(r)if(i<0)for(let u=0;u<o;++u)c[u]=(a-u)/-i;else for(let u=0;u<o;++u)c[u]=(a-u)*i;else if(i<0)for(let u=0;u<o;++u)c[u]=(s+u)/-i;else for(let u=0;u<o;++u)c[u]=(s+u)*i;return c}function Xn(e,n,t){return n=+n,e=+e,t=+t,ln(e,n,t)[2]}function Kn(e,n,t){n=+n,e=+e,t=+t;const r=n<e,s=r?Xn(n,e,t):Xn(e,n,t);return(r?-1:1)*(s<0?1/-s:s)}function xa(e,n){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(n).domain(e);break}return this}function Pr(e,n,t){e.prototype=n.prototype=t,t.constructor=e}function va(e,n){var t=Object.create(e.prototype);for(var r in n)t[r]=n[r];return t}function Ie(){}var ve=.7,cn=1/ve,Yt="\\s*([+-]?\\d+)\\s*",Te="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Q="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Eo=/^#([0-9a-f]{3,8})$/,Mo=new RegExp(`^rgb\\(${Yt},${Yt},${Yt}\\)$`),Po=new RegExp(`^rgb\\(${Q},${Q},${Q}\\)$`),ko=new RegExp(`^rgba\\(${Yt},${Yt},${Yt},${Te}\\)$`),Ro=new RegExp(`^rgba\\(${Q},${Q},${Q},${Te}\\)$`),Yo=new RegExp(`^hsl\\(${Te},${Q},${Q}\\)$`),zo=new RegExp(`^hsla\\(${Te},${Q},${Q},${Te}\\)$`),jr={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};Pr(Ie,Ut,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Wr,formatHex:Wr,formatHex8:Lo,formatHsl:Do,formatRgb:Vr,toString:Vr});function Wr(){return this.rgb().formatHex()}function Lo(){return this.rgb().formatHex8()}function Do(){return Ta(this).formatHsl()}function Vr(){return this.rgb().formatRgb()}function Ut(e){var n,t;return e=(e+"").trim().toLowerCase(),(n=Eo.exec(e))?(t=n[1].length,n=parseInt(n[1],16),t===6?Xr(n):t===3?new B(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):t===8?_e(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):t===4?_e(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=Mo.exec(e))?new B(n[1],n[2],n[3],1):(n=Po.exec(e))?new B(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=ko.exec(e))?_e(n[1],n[2],n[3],n[4]):(n=Ro.exec(e))?_e(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=Yo.exec(e))?Qr(n[1],n[2]/100,n[3]/100,1):(n=zo.exec(e))?Qr(n[1],n[2]/100,n[3]/100,n[4]):jr.hasOwnProperty(e)?Xr(jr[e]):e==="transparent"?new B(NaN,NaN,NaN,0):null}function Xr(e){return new B(e>>16&255,e>>8&255,e&255,1)}function _e(e,n,t,r){return r<=0&&(e=n=t=NaN),new B(e,n,t,r)}function Oo(e){return e instanceof Ie||(e=Ut(e)),e?(e=e.rgb(),new B(e.r,e.g,e.b,e.opacity)):new B}function Jn(e,n,t,r){return arguments.length===1?Oo(e):new B(e,n,t,r??1)}function B(e,n,t,r){this.r=+e,this.g=+n,this.b=+t,this.opacity=+r}Pr(B,Jn,va(Ie,{brighter(e){return e=e==null?cn:Math.pow(cn,e),new B(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?ve:Math.pow(ve,e),new B(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new B(mt(this.r),mt(this.g),mt(this.b),un(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:Kr,formatHex:Kr,formatHex8:Ao,formatRgb:Jr,toString:Jr}));function Kr(){return`#${gt(this.r)}${gt(this.g)}${gt(this.b)}`}function Ao(){return`#${gt(this.r)}${gt(this.g)}${gt(this.b)}${gt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Jr(){const e=un(this.opacity);return`${e===1?"rgb(":"rgba("}${mt(this.r)}, ${mt(this.g)}, ${mt(this.b)}${e===1?")":`, ${e})`}`}function un(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function mt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gt(e){return e=mt(e),(e<16?"0":"")+e.toString(16)}function Qr(e,n,t,r){return r<=0?e=n=t=NaN:t<=0||t>=1?e=n=NaN:n<=0&&(e=NaN),new V(e,n,t,r)}function Ta(e){if(e instanceof V)return new V(e.h,e.s,e.l,e.opacity);if(e instanceof Ie||(e=Ut(e)),!e)return new V;if(e instanceof V)return e;e=e.rgb();var n=e.r/255,t=e.g/255,r=e.b/255,s=Math.min(n,t,r),a=Math.max(n,t,r),i=NaN,o=a-s,c=(a+s)/2;return o?(n===a?i=(t-r)/o+(t<r)*6:t===a?i=(r-n)/o+2:i=(n-t)/o+4,o/=c<.5?a+s:2-a-s,i*=60):o=c>0&&c<1?0:i,new V(i,o,c,e.opacity)}function $o(e,n,t,r){return arguments.length===1?Ta(e):new V(e,n,t,r??1)}function V(e,n,t,r){this.h=+e,this.s=+n,this.l=+t,this.opacity=+r}Pr(V,$o,va(Ie,{brighter(e){return e=e==null?cn:Math.pow(cn,e),new V(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?ve:Math.pow(ve,e),new V(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,n=isNaN(e)||isNaN(this.s)?0:this.s,t=this.l,r=t+(t<.5?t:1-t)*n,s=2*t-r;return new B(In(e>=240?e-240:e+120,s,r),In(e,s,r),In(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new V(ts(this.h),Fe(this.s),Fe(this.l),un(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 e=un(this.opacity);return`${e===1?"hsl(":"hsla("}${ts(this.h)}, ${Fe(this.s)*100}%, ${Fe(this.l)*100}%${e===1?")":`, ${e})`}`}}));function ts(e){return e=(e||0)%360,e<0?e+360:e}function Fe(e){return Math.max(0,Math.min(1,e||0))}function In(e,n,t){return(e<60?n+(t-n)*e/60:e<180?t:e<240?n+(t-n)*(240-e)/60:n)*255}const kr=e=>()=>e;function Zo(e,n){return function(t){return e+t*n}}function Io(e,n,t){return e=Math.pow(e,t),n=Math.pow(n,t)-e,t=1/t,function(r){return Math.pow(e+r*n,t)}}function No(e){return(e=+e)==1?Sa:function(n,t){return t-n?Io(n,t,e):kr(isNaN(n)?t:n)}}function Sa(e,n){var t=n-e;return t?Zo(e,t):kr(isNaN(e)?n:e)}const Qn=function e(n){var t=No(n);function r(s,a){var i=t((s=Jn(s)).r,(a=Jn(a)).r),o=t(s.g,a.g),c=t(s.b,a.b),u=Sa(s.opacity,a.opacity);return function(d){return s.r=i(d),s.g=o(d),s.b=c(d),s.opacity=u(d),s+""}}return r.gamma=e,r}(1);function Uo(e,n){n||(n=[]);var t=e?Math.min(n.length,e.length):0,r=n.slice(),s;return function(a){for(s=0;s<t;++s)r[s]=e[s]*(1-a)+n[s]*a;return r}}function Bo(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Go(e,n){var t=n?n.length:0,r=e?Math.min(t,e.length):0,s=new Array(r),a=new Array(t),i;for(i=0;i<r;++i)s[i]=Rr(e[i],n[i]);for(;i<t;++i)a[i]=n[i];return function(o){for(i=0;i<r;++i)a[i]=s[i](o);return a}}function _o(e,n){var t=new Date;return e=+e,n=+n,function(r){return t.setTime(e*(1-r)+n*r),t}}function Se(e,n){return e=+e,n=+n,function(t){return e*(1-t)+n*t}}function Fo(e,n){var t={},r={},s;(e===null||typeof e!="object")&&(e={}),(n===null||typeof n!="object")&&(n={});for(s in n)s in e?t[s]=Rr(e[s],n[s]):r[s]=n[s];return function(a){for(s in t)r[s]=t[s](a);return r}}var tr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Nn=new RegExp(tr.source,"g");function Ho(e){return function(){return e}}function qo(e){return function(n){return e(n)+""}}function Ca(e,n){var t=tr.lastIndex=Nn.lastIndex=0,r,s,a,i=-1,o=[],c=[];for(e=e+"",n=n+"";(r=tr.exec(e))&&(s=Nn.exec(n));)(a=s.index)>t&&(a=n.slice(t,a),o[i]?o[i]+=a:o[++i]=a),(r=r[0])===(s=s[0])?o[i]?o[i]+=s:o[++i]=s:(o[++i]=null,c.push({i,x:Se(r,s)})),t=Nn.lastIndex;return t<n.length&&(a=n.slice(t),o[i]?o[i]+=a:o[++i]=a),o.length<2?c[0]?qo(c[0].x):Ho(n):(n=c.length,function(u){for(var d=0,p;d<n;++d)o[(p=c[d]).i]=p.x(u);return o.join("")})}function Rr(e,n){var t=typeof n,r;return n==null||t==="boolean"?kr(n):(t==="number"?Se:t==="string"?(r=Ut(n))?(n=r,Qn):Ca:n instanceof Ut?Qn:n instanceof Date?_o:Bo(n)?Uo:Array.isArray(n)?Go:typeof n.valueOf!="function"&&typeof n.toString!="function"||isNaN(n)?Fo:Se)(e,n)}function jo(e,n){return e=+e,n=+n,function(t){return Math.round(e*(1-t)+n*t)}}function Wo(e){return function(){return e}}function Vo(e){return+e}var es=[0,1];function Et(e){return e}function er(e,n){return(n-=e=+e)?function(t){return(t-e)/n}:Wo(isNaN(n)?NaN:.5)}function Xo(e,n){var t;return e>n&&(t=e,e=n,n=t),function(r){return Math.max(e,Math.min(n,r))}}function Ko(e,n,t){var r=e[0],s=e[1],a=n[0],i=n[1];return s<r?(r=er(s,r),a=t(i,a)):(r=er(r,s),a=t(a,i)),function(o){return a(r(o))}}function Jo(e,n,t){var r=Math.min(e.length,n.length)-1,s=new Array(r),a=new Array(r),i=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),n=n.slice().reverse());++i<r;)s[i]=er(e[i],e[i+1]),a[i]=t(n[i],n[i+1]);return function(o){var c=xo(e,o,1,r)-1;return a[c](s[c](o))}}function Ea(e,n){return n.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Qo(){var e=es,n=es,t=Rr,r,s,a,i=Et,o,c,u;function d(){var g=Math.min(e.length,n.length);return i!==Et&&(i=Xo(e[0],e[g-1])),o=g>2?Jo:Ko,c=u=null,p}function p(g){return g==null||isNaN(g=+g)?a:(c||(c=o(e.map(r),n,t)))(r(i(g)))}return p.invert=function(g){return i(s((u||(u=o(n,e.map(r),Se)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Vo),d()):e.slice()},p.range=function(g){return arguments.length?(n=Array.from(g),d()):n.slice()},p.rangeRound=function(g){return n=Array.from(g),t=jo,d()},p.clamp=function(g){return arguments.length?(i=g?!0:Et,d()):i!==Et},p.interpolate=function(g){return arguments.length?(t=g,d()):t},p.unknown=function(g){return arguments.length?(a=g,p):a},function(g,b){return r=g,s=b,d()}}function Ma(){return Qo()(Et,Et)}function tl(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function hn(e,n){if((t=(e=n?e.toExponential(n-1):e.toExponential()).indexOf("e"))<0)return null;var t,r=e.slice(0,t);return[r.length>1?r[0]+r.slice(2):r,+e.slice(t+1)]}function Bt(e){return e=hn(Math.abs(e)),e?e[1]:NaN}function el(e,n){return function(t,r){for(var s=t.length,a=[],i=0,o=e[0],c=0;s>0&&o>0&&(c+o+1>r&&(o=Math.max(1,r-c)),a.push(t.substring(s-=o,s+o)),!((c+=o+1)>r));)o=e[i=(i+1)%e.length];return a.reverse().join(n)}}function nl(e){return function(n){return n.replace(/[0-9]/g,function(t){return e[+t]})}}var rl=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function dn(e){if(!(n=rl.exec(e)))throw new Error("invalid format: "+e);var n;return new Yr({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}dn.prototype=Yr.prototype;function Yr(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Yr.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 sl(e){t:for(var n=e.length,t=1,r=-1,s;t<n;++t)switch(e[t]){case".":r=s=t;break;case"0":r===0&&(r=t),s=t;break;default:if(!+e[t])break t;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(s+1):e}var Pa;function al(e,n){var t=hn(e,n);if(!t)return e+"";var r=t[0],s=t[1],a=s-(Pa=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,i=r.length;return a===i?r:a>i?r+new Array(a-i+1).join("0"):a>0?r.slice(0,a)+"."+r.slice(a):"0."+new Array(1-a).join("0")+hn(e,Math.max(0,n+a-1))[0]}function ns(e,n){var t=hn(e,n);if(!t)return e+"";var r=t[0],s=t[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 rs={"%":(e,n)=>(e*100).toFixed(n),b:e=>Math.round(e).toString(2),c:e=>e+"",d:tl,e:(e,n)=>e.toExponential(n),f:(e,n)=>e.toFixed(n),g:(e,n)=>e.toPrecision(n),o:e=>Math.round(e).toString(8),p:(e,n)=>ns(e*100,n),r:ns,s:al,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function ss(e){return e}var as=Array.prototype.map,is=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function il(e){var n=e.grouping===void 0||e.thousands===void 0?ss:el(as.call(e.grouping,Number),e.thousands+""),t=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",s=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?ss:nl(as.call(e.numerals,String)),i=e.percent===void 0?"%":e.percent+"",o=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function u(p){p=dn(p);var g=p.fill,b=p.align,v=p.sign,S=p.symbol,C=p.zero,Y=p.width,D=p.comma,P=p.precision,L=p.trim,$=p.type;$==="n"?(D=!0,$="g"):rs[$]||(P===void 0&&(P=12),L=!0,$="g"),(C||g==="0"&&b==="=")&&(C=!0,g="0",b="=");var T=S==="$"?t:S==="#"&&/[boxX]/.test($)?"0"+$.toLowerCase():"",Z=S==="$"?r:/[%p]/.test($)?i:"",ht=rs[$],An=/[defgprs%]/.test($);P=P===void 0?6:/[gprs]/.test($)?Math.max(1,Math.min(21,P)):Math.max(0,Math.min(20,P));function Be(M){var et=T,N=Z,ot,Ge,vt;if($==="c")N=ht(M)+N,M="";else{M=+M;var Tt=M<0||1/M<0;if(M=isNaN(M)?c:ht(Math.abs(M),P),L&&(M=sl(M)),Tt&&+M==0&&v!=="+"&&(Tt=!1),et=(Tt?v==="("?v:o:v==="-"||v==="("?"":v)+et,N=($==="s"?is[8+Pa/3]:"")+N+(Tt&&v==="("?")":""),An){for(ot=-1,Ge=M.length;++ot<Ge;)if(vt=M.charCodeAt(ot),48>vt||vt>57){N=(vt===46?s+M.slice(ot+1):M.slice(ot))+N,M=M.slice(0,ot);break}}}D&&!C&&(M=n(M,1/0));var St=et.length+M.length+N.length,W=St<Y?new Array(Y-St+1).join(g):"";switch(D&&C&&(M=n(W+M,W.length?Y-N.length:1/0),W=""),b){case"<":M=et+M+N+W;break;case"=":M=et+W+M+N;break;case"^":M=W.slice(0,St=W.length>>1)+et+M+N+W.slice(St);break;default:M=W+et+M+N;break}return a(M)}return Be.toString=function(){return p+""},Be}function d(p,g){var b=u((p=dn(p),p.type="f",p)),v=Math.max(-8,Math.min(8,Math.floor(Bt(g)/3)))*3,S=Math.pow(10,-v),C=is[8+v/3];return function(Y){return b(S*Y)+C}}return{format:u,formatPrefix:d}}var He,ka,Ra;ol({thousands:",",grouping:[3],currency:["$",""]});function ol(e){return He=il(e),ka=He.format,Ra=He.formatPrefix,He}function ll(e){return Math.max(0,-Bt(Math.abs(e)))}function cl(e,n){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Bt(n)/3)))*3-Bt(Math.abs(e)))}function ul(e,n){return e=Math.abs(e),n=Math.abs(n)-e,Math.max(0,Bt(n)-Bt(e))+1}function hl(e,n,t,r){var s=Kn(e,n,t),a;switch(r=dn(r??",f"),r.type){case"s":{var i=Math.max(Math.abs(e),Math.abs(n));return r.precision==null&&!isNaN(a=cl(s,i))&&(r.precision=a),Ra(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=ul(s,Math.max(Math.abs(e),Math.abs(n))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=ll(s))&&(r.precision=a-(r.type==="%")*2);break}}return ka(r)}function dl(e){var n=e.domain;return e.ticks=function(t){var r=n();return Co(r[0],r[r.length-1],t??10)},e.tickFormat=function(t,r){var s=n();return hl(s[0],s[s.length-1],t??10,r)},e.nice=function(t){t==null&&(t=10);var r=n(),s=0,a=r.length-1,i=r[s],o=r[a],c,u,d=10;for(o<i&&(u=i,i=o,o=u,u=s,s=a,a=u);d-- >0;){if(u=Xn(i,o,t),u===c)return r[s]=i,r[a]=o,n(r);if(u>0)i=Math.floor(i/u)*u,o=Math.ceil(o/u)*u;else if(u<0)i=Math.ceil(i*u)/u,o=Math.floor(o*u)/u;else break;c=u}return e},e}function Ya(){var e=Ma();return e.copy=function(){return Ea(e,Ya())},xa.apply(e,arguments),dl(e)}function fl(e,n){e=e.slice();var t=0,r=e.length-1,s=e[t],a=e[r],i;return a<s&&(i=t,t=r,r=i,i=s,s=a,a=i),e[t]=n.floor(s),e[r]=n.ceil(a),e}const Un=new Date,Bn=new Date;function O(e,n,t,r){function s(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return s.floor=a=>(e(a=new Date(+a)),a),s.ceil=a=>(e(a=new Date(a-1)),n(a,1),e(a),a),s.round=a=>{const i=s(a),o=s.ceil(a);return a-i<o-a?i:o},s.offset=(a,i)=>(n(a=new Date(+a),i==null?1:Math.floor(i)),a),s.range=(a,i,o)=>{const c=[];if(a=s.ceil(a),o=o==null?1:Math.floor(o),!(a<i)||!(o>0))return c;let u;do c.push(u=new Date(+a)),n(a,o),e(a);while(u<a&&a<i);return c},s.filter=a=>O(i=>{if(i>=i)for(;e(i),!a(i);)i.setTime(i-1)},(i,o)=>{if(i>=i)if(o<0)for(;++o<=0;)for(;n(i,-1),!a(i););else for(;--o>=0;)for(;n(i,1),!a(i););}),t&&(s.count=(a,i)=>(Un.setTime(+a),Bn.setTime(+i),e(Un),e(Bn),Math.floor(t(Un,Bn))),s.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?s.filter(r?i=>r(i)%a===0:i=>s.count(0,i)%a===0):s)),s}const fn=O(()=>{},(e,n)=>{e.setTime(+e+n)},(e,n)=>n-e);fn.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?O(n=>{n.setTime(Math.floor(n/e)*e)},(n,t)=>{n.setTime(+n+t*e)},(n,t)=>(t-n)/e):fn);fn.range;const nt=1e3,q=nt*60,rt=q*60,at=rt*24,zr=at*7,os=at*30,Gn=at*365,Mt=O(e=>{e.setTime(e-e.getMilliseconds())},(e,n)=>{e.setTime(+e+n*nt)},(e,n)=>(n-e)/nt,e=>e.getUTCSeconds());Mt.range;const Lr=O(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*nt)},(e,n)=>{e.setTime(+e+n*q)},(e,n)=>(n-e)/q,e=>e.getMinutes());Lr.range;const pl=O(e=>{e.setUTCSeconds(0,0)},(e,n)=>{e.setTime(+e+n*q)},(e,n)=>(n-e)/q,e=>e.getUTCMinutes());pl.range;const Dr=O(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*nt-e.getMinutes()*q)},(e,n)=>{e.setTime(+e+n*rt)},(e,n)=>(n-e)/rt,e=>e.getHours());Dr.range;const gl=O(e=>{e.setUTCMinutes(0,0,0)},(e,n)=>{e.setTime(+e+n*rt)},(e,n)=>(n-e)/rt,e=>e.getUTCHours());gl.range;const Ne=O(e=>e.setHours(0,0,0,0),(e,n)=>e.setDate(e.getDate()+n),(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*q)/at,e=>e.getDate()-1);Ne.range;const Or=O(e=>{e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n)},(e,n)=>(n-e)/at,e=>e.getUTCDate()-1);Or.range;const ml=O(e=>{e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n)},(e,n)=>(n-e)/at,e=>Math.floor(e/at));ml.range;function bt(e){return O(n=>{n.setDate(n.getDate()-(n.getDay()+7-e)%7),n.setHours(0,0,0,0)},(n,t)=>{n.setDate(n.getDate()+t*7)},(n,t)=>(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*q)/zr)}const On=bt(0),pn=bt(1),yl=bt(2),wl=bt(3),Gt=bt(4),bl=bt(5),xl=bt(6);On.range;pn.range;yl.range;wl.range;Gt.range;bl.range;xl.range;function xt(e){return O(n=>{n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-e)%7),n.setUTCHours(0,0,0,0)},(n,t)=>{n.setUTCDate(n.getUTCDate()+t*7)},(n,t)=>(t-n)/zr)}const za=xt(0),gn=xt(1),vl=xt(2),Tl=xt(3),_t=xt(4),Sl=xt(5),Cl=xt(6);za.range;gn.range;vl.range;Tl.range;_t.range;Sl.range;Cl.range;const Ar=O(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,n)=>{e.setMonth(e.getMonth()+n)},(e,n)=>n.getMonth()-e.getMonth()+(n.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ar.range;const El=O(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCMonth(e.getUTCMonth()+n)},(e,n)=>n.getUTCMonth()-e.getUTCMonth()+(n.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());El.range;const it=O(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n)},(e,n)=>n.getFullYear()-e.getFullYear(),e=>e.getFullYear());it.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:O(n=>{n.setFullYear(Math.floor(n.getFullYear()/e)*e),n.setMonth(0,1),n.setHours(0,0,0,0)},(n,t)=>{n.setFullYear(n.getFullYear()+t*e)});it.range;const yt=O(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n)},(e,n)=>n.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());yt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:O(n=>{n.setUTCFullYear(Math.floor(n.getUTCFullYear()/e)*e),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},(n,t)=>{n.setUTCFullYear(n.getUTCFullYear()+t*e)});yt.range;function Ml(e,n,t,r,s,a){const i=[[Mt,1,nt],[Mt,5,5*nt],[Mt,15,15*nt],[Mt,30,30*nt],[a,1,q],[a,5,5*q],[a,15,15*q],[a,30,30*q],[s,1,rt],[s,3,3*rt],[s,6,6*rt],[s,12,12*rt],[r,1,at],[r,2,2*at],[t,1,zr],[n,1,os],[n,3,3*os],[e,1,Gn]];function o(u,d,p){const g=d<u;g&&([u,d]=[d,u]);const b=p&&typeof p.range=="function"?p:c(u,d,p),v=b?b.range(u,+d+1):[];return g?v.reverse():v}function c(u,d,p){const g=Math.abs(d-u)/p,b=Mr(([,,C])=>C).right(i,g);if(b===i.length)return e.every(Kn(u/Gn,d/Gn,p));if(b===0)return fn.every(Math.max(Kn(u,d,p),1));const[v,S]=i[g/i[b-1][2]<i[b][2]/g?b-1:b];return v.every(S)}return[o,c]}const[Pl,kl]=Ml(it,Ar,On,Ne,Dr,Lr);function _n(e){if(0<=e.y&&e.y<100){var n=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return n.setFullYear(e.y),n}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Fn(e){if(0<=e.y&&e.y<100){var n=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return n.setUTCFullYear(e.y),n}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Kt(e,n,t){return{y:e,m:n,d:t,H:0,M:0,S:0,L:0}}function Rl(e){var n=e.dateTime,t=e.date,r=e.time,s=e.periods,a=e.days,i=e.shortDays,o=e.months,c=e.shortMonths,u=Jt(s),d=Qt(s),p=Jt(a),g=Qt(a),b=Jt(i),v=Qt(i),S=Jt(o),C=Qt(o),Y=Jt(c),D=Qt(c),P={a:Tt,A:St,b:W,B:mi,c:null,d:fs,e:fs,f:Jl,g:lc,G:uc,H:Vl,I:Xl,j:Kl,L:La,m:Ql,M:tc,p:yi,q:wi,Q:ms,s:ys,S:ec,u:nc,U:rc,V:sc,w:ac,W:ic,x:null,X:null,y:oc,Y:cc,Z:hc,"%":gs},L={a:bi,A:xi,b:vi,B:Ti,c:null,d:ps,e:ps,f:gc,g:Ec,G:Pc,H:dc,I:fc,j:pc,L:Oa,m:mc,M:yc,p:Si,q:Ci,Q:ms,s:ys,S:wc,u:bc,U:xc,V:vc,w:Tc,W:Sc,x:null,X:null,y:Cc,Y:Mc,Z:kc,"%":gs},$={a:Be,A:M,b:et,B:N,c:ot,d:hs,e:hs,f:Hl,g:us,G:cs,H:ds,I:ds,j:Bl,L:Fl,m:Ul,M:Gl,p:An,q:Nl,Q:jl,s:Wl,S:_l,u:Ol,U:Al,V:$l,w:Dl,W:Zl,x:Ge,X:vt,y:us,Y:cs,Z:Il,"%":ql};P.x=T(t,P),P.X=T(r,P),P.c=T(n,P),L.x=T(t,L),L.X=T(r,L),L.c=T(n,L);function T(x,E){return function(k){var m=[],U=-1,z=0,_=x.length,F,dt,Fr;for(k instanceof Date||(k=new Date(+k));++U<_;)x.charCodeAt(U)===37&&(m.push(x.slice(z,U)),(dt=ls[F=x.charAt(++U)])!=null?F=x.charAt(++U):dt=F==="e"?" ":"0",(Fr=E[F])&&(F=Fr(k,dt)),m.push(F),z=U+1);return m.push(x.slice(z,U)),m.join("")}}function Z(x,E){return function(k){var m=Kt(1900,void 0,1),U=ht(m,x,k+="",0),z,_;if(U!=k.length)return null;if("Q"in m)return new Date(m.Q);if("s"in m)return new Date(m.s*1e3+("L"in m?m.L:0));if(E&&!("Z"in m)&&(m.Z=0),"p"in m&&(m.H=m.H%12+m.p*12),m.m===void 0&&(m.m="q"in m?m.q:0),"V"in m){if(m.V<1||m.V>53)return null;"w"in m||(m.w=1),"Z"in m?(z=Fn(Kt(m.y,0,1)),_=z.getUTCDay(),z=_>4||_===0?gn.ceil(z):gn(z),z=Or.offset(z,(m.V-1)*7),m.y=z.getUTCFullYear(),m.m=z.getUTCMonth(),m.d=z.getUTCDate()+(m.w+6)%7):(z=_n(Kt(m.y,0,1)),_=z.getDay(),z=_>4||_===0?pn.ceil(z):pn(z),z=Ne.offset(z,(m.V-1)*7),m.y=z.getFullYear(),m.m=z.getMonth(),m.d=z.getDate()+(m.w+6)%7)}else("W"in m||"U"in m)&&("w"in m||(m.w="u"in m?m.u%7:"W"in m?1:0),_="Z"in m?Fn(Kt(m.y,0,1)).getUTCDay():_n(Kt(m.y,0,1)).getDay(),m.m=0,m.d="W"in m?(m.w+6)%7+m.W*7-(_+5)%7:m.w+m.U*7-(_+6)%7);return"Z"in m?(m.H+=m.Z/100|0,m.M+=m.Z%100,Fn(m)):_n(m)}}function ht(x,E,k,m){for(var U=0,z=E.length,_=k.length,F,dt;U<z;){if(m>=_)return-1;if(F=E.charCodeAt(U++),F===37){if(F=E.charAt(U++),dt=$[F in ls?E.charAt(U++):F],!dt||(m=dt(x,k,m))<0)return-1}else if(F!=k.charCodeAt(m++))return-1}return m}function An(x,E,k){var m=u.exec(E.slice(k));return m?(x.p=d.get(m[0].toLowerCase()),k+m[0].length):-1}function Be(x,E,k){var m=b.exec(E.slice(k));return m?(x.w=v.get(m[0].toLowerCase()),k+m[0].length):-1}function M(x,E,k){var m=p.exec(E.slice(k));return m?(x.w=g.get(m[0].toLowerCase()),k+m[0].length):-1}function et(x,E,k){var m=Y.exec(E.slice(k));return m?(x.m=D.get(m[0].toLowerCase()),k+m[0].length):-1}function N(x,E,k){var m=S.exec(E.slice(k));return m?(x.m=C.get(m[0].toLowerCase()),k+m[0].length):-1}function ot(x,E,k){return ht(x,n,E,k)}function Ge(x,E,k){return ht(x,t,E,k)}function vt(x,E,k){return ht(x,r,E,k)}function Tt(x){return i[x.getDay()]}function St(x){return a[x.getDay()]}function W(x){return c[x.getMonth()]}function mi(x){return o[x.getMonth()]}function yi(x){return s[+(x.getHours()>=12)]}function wi(x){return 1+~~(x.getMonth()/3)}function bi(x){return i[x.getUTCDay()]}function xi(x){return a[x.getUTCDay()]}function vi(x){return c[x.getUTCMonth()]}function Ti(x){return o[x.getUTCMonth()]}function Si(x){return s[+(x.getUTCHours()>=12)]}function Ci(x){return 1+~~(x.getUTCMonth()/3)}return{format:function(x){var E=T(x+="",P);return E.toString=function(){return x},E},parse:function(x){var E=Z(x+="",!1);return E.toString=function(){return x},E},utcFormat:function(x){var E=T(x+="",L);return E.toString=function(){return x},E},utcParse:function(x){var E=Z(x+="",!0);return E.toString=function(){return x},E}}}var ls={"-":"",_:" ",0:"0"},A=/^\s*\d+/,Yl=/^%/,zl=/[\\^$*+?|[\]().{}]/g;function R(e,n,t){var r=e<0?"-":"",s=(r?-e:e)+"",a=s.length;return r+(a<t?new Array(t-a+1).join(n)+s:s)}function Ll(e){return e.replace(zl,"\\$&")}function Jt(e){return new RegExp("^(?:"+e.map(Ll).join("|")+")","i")}function Qt(e){return new Map(e.map((n,t)=>[n.toLowerCase(),t]))}function Dl(e,n,t){var r=A.exec(n.slice(t,t+1));return r?(e.w=+r[0],t+r[0].length):-1}function Ol(e,n,t){var r=A.exec(n.slice(t,t+1));return r?(e.u=+r[0],t+r[0].length):-1}function Al(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.U=+r[0],t+r[0].length):-1}function $l(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.V=+r[0],t+r[0].length):-1}function Zl(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.W=+r[0],t+r[0].length):-1}function cs(e,n,t){var r=A.exec(n.slice(t,t+4));return r?(e.y=+r[0],t+r[0].length):-1}function us(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),t+r[0].length):-1}function Il(e,n,t){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(t,t+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),t+r[0].length):-1}function Nl(e,n,t){var r=A.exec(n.slice(t,t+1));return r?(e.q=r[0]*3-3,t+r[0].length):-1}function Ul(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.m=r[0]-1,t+r[0].length):-1}function hs(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.d=+r[0],t+r[0].length):-1}function Bl(e,n,t){var r=A.exec(n.slice(t,t+3));return r?(e.m=0,e.d=+r[0],t+r[0].length):-1}function ds(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.H=+r[0],t+r[0].length):-1}function Gl(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.M=+r[0],t+r[0].length):-1}function _l(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.S=+r[0],t+r[0].length):-1}function Fl(e,n,t){var r=A.exec(n.slice(t,t+3));return r?(e.L=+r[0],t+r[0].length):-1}function Hl(e,n,t){var r=A.exec(n.slice(t,t+6));return r?(e.L=Math.floor(r[0]/1e3),t+r[0].length):-1}function ql(e,n,t){var r=Yl.exec(n.slice(t,t+1));return r?t+r[0].length:-1}function jl(e,n,t){var r=A.exec(n.slice(t));return r?(e.Q=+r[0],t+r[0].length):-1}function Wl(e,n,t){var r=A.exec(n.slice(t));return r?(e.s=+r[0],t+r[0].length):-1}function fs(e,n){return R(e.getDate(),n,2)}function Vl(e,n){return R(e.getHours(),n,2)}function Xl(e,n){return R(e.getHours()%12||12,n,2)}function Kl(e,n){return R(1+Ne.count(it(e),e),n,3)}function La(e,n){return R(e.getMilliseconds(),n,3)}function Jl(e,n){return La(e,n)+"000"}function Ql(e,n){return R(e.getMonth()+1,n,2)}function tc(e,n){return R(e.getMinutes(),n,2)}function ec(e,n){return R(e.getSeconds(),n,2)}function nc(e){var n=e.getDay();return n===0?7:n}function rc(e,n){return R(On.count(it(e)-1,e),n,2)}function Da(e){var n=e.getDay();return n>=4||n===0?Gt(e):Gt.ceil(e)}function sc(e,n){return e=Da(e),R(Gt.count(it(e),e)+(it(e).getDay()===4),n,2)}function ac(e){return e.getDay()}function ic(e,n){return R(pn.count(it(e)-1,e),n,2)}function oc(e,n){return R(e.getFullYear()%100,n,2)}function lc(e,n){return e=Da(e),R(e.getFullYear()%100,n,2)}function cc(e,n){return R(e.getFullYear()%1e4,n,4)}function uc(e,n){var t=e.getDay();return e=t>=4||t===0?Gt(e):Gt.ceil(e),R(e.getFullYear()%1e4,n,4)}function hc(e){var n=e.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+R(n/60|0,"0",2)+R(n%60,"0",2)}function ps(e,n){return R(e.getUTCDate(),n,2)}function dc(e,n){return R(e.getUTCHours(),n,2)}function fc(e,n){return R(e.getUTCHours()%12||12,n,2)}function pc(e,n){return R(1+Or.count(yt(e),e),n,3)}function Oa(e,n){return R(e.getUTCMilliseconds(),n,3)}function gc(e,n){return Oa(e,n)+"000"}function mc(e,n){return R(e.getUTCMonth()+1,n,2)}function yc(e,n){return R(e.getUTCMinutes(),n,2)}function wc(e,n){return R(e.getUTCSeconds(),n,2)}function bc(e){var n=e.getUTCDay();return n===0?7:n}function xc(e,n){return R(za.count(yt(e)-1,e),n,2)}function Aa(e){var n=e.getUTCDay();return n>=4||n===0?_t(e):_t.ceil(e)}function vc(e,n){return e=Aa(e),R(_t.count(yt(e),e)+(yt(e).getUTCDay()===4),n,2)}function Tc(e){return e.getUTCDay()}function Sc(e,n){return R(gn.count(yt(e)-1,e),n,2)}function Cc(e,n){return R(e.getUTCFullYear()%100,n,2)}function Ec(e,n){return e=Aa(e),R(e.getUTCFullYear()%100,n,2)}function Mc(e,n){return R(e.getUTCFullYear()%1e4,n,4)}function Pc(e,n){var t=e.getUTCDay();return e=t>=4||t===0?_t(e):_t.ceil(e),R(e.getUTCFullYear()%1e4,n,4)}function kc(){return"+0000"}function gs(){return"%"}function ms(e){return+e}function ys(e){return Math.floor(+e/1e3)}var Ct,$a;Rc({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 Rc(e){return Ct=Rl(e),$a=Ct.format,Ct.parse,Ct.utcFormat,Ct.utcParse,Ct}function Yc(e){return new Date(e)}function zc(e){return e instanceof Date?+e:+new Date(+e)}function Za(e,n,t,r,s,a,i,o,c,u){var d=Ma(),p=d.invert,g=d.domain,b=u(".%L"),v=u(":%S"),S=u("%I:%M"),C=u("%I %p"),Y=u("%a %d"),D=u("%b %d"),P=u("%B"),L=u("%Y");function $(T){return(c(T)<T?b:o(T)<T?v:i(T)<T?S:a(T)<T?C:r(T)<T?s(T)<T?Y:D:t(T)<T?P:L)(T)}return d.invert=function(T){return new Date(p(T))},d.domain=function(T){return arguments.length?g(Array.from(T,zc)):g().map(Yc)},d.ticks=function(T){var Z=g();return e(Z[0],Z[Z.length-1],T??10)},d.tickFormat=function(T,Z){return Z==null?$:u(Z)},d.nice=function(T){var Z=g();return(!T||typeof T.range!="function")&&(T=n(Z[0],Z[Z.length-1],T??10)),T?g(fl(Z,T)):d},d.copy=function(){return Ea(d,Za(e,n,t,r,s,a,i,o,c,u))},d}function Lc(){return xa.apply(Za(Pl,kl,it,Ar,On,Ne,Dr,Lr,Mt,$a).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const $r=f.z.enum(["linear","time"]),Zr=f.z.object({tickSpacing:f.z.number().default(75),type:$r.optional().default("linear")}),nr=e=>{const n=Zr.parse(e);return Ac[n.type](n)};class Dc{constructor(n){h(this,"props");this.props=n}create({decimalToDataScale:n,size:t}){const r=[0,t],s=[new w.m(n.pos(0)).date(),new w.m(n.pos(1)).date()],a=Lc().domain(s).range(r);return a.ticks(Ia(t,this.props.tickSpacing)).map(o=>({label:this.tickLabel(o),position:a(o)}))}tickLabel(n){const t=new w.m(n).date();let r=`:${t.getSeconds()}`;if(t.getMilliseconds()!==0){const a=Math.round(t.getMilliseconds()).toString().padStart(3,"0").replace(/0+$/,"");r+=`.${a}`}return t.getSeconds()===0&&t.getMilliseconds()===0&&(r=`${t.getHours()}:${t.getMinutes().toString().padStart(2,"0")}`),r}}class Oc{constructor(n){h(this,"props");this.props=n}create({decimalToDataScale:n,size:t}){const r=[0,t],s=[n.pos(0),n.pos(1)],a=Ya().domain(s).range(r),i=Ia(t,this.props.tickSpacing);return a.ticks(i).map(c=>({label:this.tickLabel(c),position:a(c)}))}tickLabel(n){return n.toString()}}const Ia=(e,n)=>{const t=Math.floor(e/n);return t>0?t:1},Ac={linear:e=>new Oc(e),time:e=>new Dc(e)},Ir=Zr.extend({color:l.Color.z,type:$r.optional().default("linear"),font:f.z.string(),showGrid:f.z.boolean().optional().default(!0),location:l.K.outer,gridColor:l.Color.z}),K=4;class ws{constructor(n,t){h(this,"numberDims");h(this,"negativeWidth");h(this,"periodWidth");h(this,"colonWidth");this.numberDims=ft.dimensions("0",t,n),this.negativeWidth=ft.dimensions("-",t,n).width,this.periodWidth=ft.dimensions(".",t,n).width,this.colonWidth=ft.dimensions(":",t,n).width}get(n){const t={width:0,height:this.numberDims.height};let r=n.length;return n.includes(".")&&(t.width+=this.periodWidth,r-=1),n.startsWith("-")&&(t.width+=this.negativeWidth,r-=1),n.includes(":")&&(t.width+=this.colonWidth,r-=1),t.width+=r*this.numberDims.width,t}}let Na=class{constructor(n,t){h(this,"renderCtx");h(this,"state");h(this,"tickFactory");h(this,"dimensions");this.renderCtx=n,this.state=t,this.tickFactory=nr(this.state),this.dimensions=new ws(n.lower2d,t.font)}setState(n){this.state=y.prettyParse(Ir,n),this.tickFactory=nr(n),this.dimensions=new ws(this.renderCtx.lower2d,this.state.font)}render(n){const{lower2d:t}=this.renderCtx;switch(t.font=this.state.font,t.fillStyle=this.state.color.hex,t.lineWidth=1,this.state.location){case"left":return this.drawLeft(n);case"right":return this.drawRight(n);case"top":return this.drawTop(n);default:return this.drawBottom(n)}}drawBottom(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,s=l.Mo.width(r),a=l.Mo.height(r),i=n.position,o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.G.translate(i,"x",u.position),l.G.translate(i,{x:u.position,y:-a})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.G.translate(i,"x",s)),{size:this.drawTicks(o,(u,d)=>{t.moveTo(i.x+d.position,i.y),t.lineTo(i.x+d.position,i.y+K),t.stroke(),t.fillText(d.label,i.x+d.position-u.width/2,i.y+5+u.height)}).height+K+6}}drawTop(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,s=l.Mo.width(r),a=l.Mo.height(r),i=l.G.translate(n.position,"y",n.size),o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.G.translate(i,"x",u.position),l.G.translate(i,{x:u.position,y:a})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.G.translate(i,"x",s)),{size:this.drawTicks(o,(u,d)=>{t.moveTo(i.x+d.position,i.y),t.lineTo(i.x+d.position,i.y-K),t.stroke(),t.fillText(d.label,i.x+d.position-u.width/2,i.y-5-u.height)}).height+K}}drawLeft(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,s=l.Mo.height(r),a=l.Mo.width(r),i=l.G.translate(n.position,"x",n.size),o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.G.translate(i,"y",u.position),l.G.translate(i,{x:a,y:u.position})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.G.translate(i,"y",s)),{size:this.drawTicks(o,(u,d)=>{t.moveTo(i.x,i.y+d.position),t.lineTo(i.x-K,i.y+d.position),t.stroke(),t.fillText(d.label,i.x-u.width-K*2,i.y+d.position+u.height/3)}).width+K*2}}drawRight(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,s=l.Mo.height(r),a=l.Mo.width(r),i=n.position,o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.G.translate(i,"y",u.position),l.G.translate(i,{x:-a,y:u.position})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.G.translate(i,"y",s)),{size:this.drawTicks(o,(u,d)=>{t.moveTo(i.x,i.y+d.position),t.lineTo(i.x+K,i.y+d.position),t.stroke(),t.fillText(d.label,i.x+K+2,i.y+d.position+u.height/3)}).width+K*2}}drawLine(n,t){const{lower2d:r}=this.renderCtx;r.beginPath(),r.moveTo(...l.G.couple(n)),r.lineTo(...l.G.couple(t)),r.stroke()}drawTicks(n,t){let r=l._.ZERO;return n.forEach(s=>{const a=this.dimensions.get(s.label);r=l._.max([r,a]),t(a,s)}),r}maybeDrawGrid(n,t,r){const{showGrid:s,gridColor:a}=this.state;if(s){const i=l.H.construct(-1,1),o=l.H.construct(n-1,n+1);this.renderCtx.lower2d.strokeStyle=a.hex,t.filter(({position:c})=>!l.H.contains(i,c)&&!l.H.contains(o,c)).forEach(c=>this.drawLine(...r(c)))}}};const Ue=Ir.extend({bounds:l.H.bounds.optional(),autoBounds:f.z.object({lower:f.z.boolean().optional().default(!0),upper:f.z.boolean().optional().default(!0)}).or(f.z.boolean().optional().default(!0)),autoBoundPadding:f.z.number().optional(),autoBoundUpdateInterval:w.y$1.z.optional().default(w.y$1.seconds(10)),size:f.z.number().optional().default(0),label:f.z.string().optional().default(""),labelSize:f.z.number().optional().default(0)}).partial({color:!0,font:!0,gridColor:!0}),$c=2,Zc=7,Ua=(e,n)=>l.H.contains({lower:e-Zc,upper:e+$c},n),Ic=l.H.DECIMAL,bs=w.m.now(),Nc={lower:Number(bs.valueOf()),upper:Number(bs.add(w.y$1.HOUR).valueOf())},Ba=e=>e==="linear"?Ic:Nc,Uc=(e,n=.1,t)=>{const r=l.H.max(e.filter(l.H.isFinite));if(!l.H.isFinite(r))return Ba(t);const{lower:s,upper:a}=r;if(a===s)return{lower:s-1,upper:a+1};const i=(a-s)*n;return{lower:s-i,upper:a+i}},Bc=.01,Gc=.1;class Ga extends y.Composite{async afterUpdate(n){var r,s;this.internal.render=G.Context.use(n);const t=y.use(n);(r=this.state).autoBoundPadding??(r.autoBoundPadding=l.g.construct(this.state.location)==="x"?Gc:Bc),this.internal.core=new Na(this.internal.render,{color:t.colors.gray.l8,font:ee.fontString(t,{level:"small"}),gridColor:t.colors.gray.l1,...this.state}),I.requestRender(n,tt),(s=this.internal).updateBounds??(s.updateBounds=Es.r(a=>this.setState(i=>({...i,bounds:a})),this.state.autoBoundUpdateInterval.milliseconds))}async afterDelete(n){I.requestRender(n,tt)}renderAxis(n,t){if(!n.canvases.includes("lower2d"))return;const{core:r}=this.internal,{grid:s,container:a}=n,i=po(`${this.type}-${this.key}`,s,a),o={...n,position:i,decimalToDataScale:t,size:this.state.size+this.state.labelSize},{size:c}=r.render(o);Ua(this.state.size,c)||this.setState(u=>({...u,size:c}))}async bounds(n,t){var u,d;if(n&&this.internal.boundSnapshot!=null)return[this.internal.boundSnapshot,null];const{lower:r,upper:s}=_a(this.state.autoBounds);if(!r&&!s&&this.state.bounds!=null)return this.internal.boundSnapshot=this.state.bounds,[this.state.bounds,null];const a=p=>({upper:s||this.state.bounds==null?p.upper:this.state.bounds.upper,lower:r||this.state.bounds==null?p.lower:this.state.bounds.lower});let i,o=null;try{const p=await t();i=Uc(p,this.state.autoBoundPadding,this.state.type)}catch(p){i=Ba(this.state.type),o=p}const c=a(i);return this.internal.boundSnapshot=c,(this.state.bounds==null||r&&this.state.bounds.lower!==c.lower||s&&this.state.bounds.upper!==c.upper)&&((d=(u=this.internal).updateBounds)==null||d.call(u,c)),[c,o]}async dataToDecimalScale(n,t,r){const[s,a]=await this.bounds(n,t),i=l.g.swap(l.g.construct(this.state.location));return[l.b.Scale.scale(s).scale(1).translate(-l.Mo.root(r)[i]).magnify(1/l.Mo.dim(r,i)),a]}}const _a=e=>typeof e=="boolean"?{lower:e,upper:e}:{lower:(e==null?void 0:e.lower)??!0,upper:(e==null?void 0:e.upper)??!0},xs=`#version 300 es
|
|
7
|
-
precision lowp float;
|
|
8
|
-
|
|
9
|
-
uniform lowp vec4 u_color;
|
|
10
|
-
out vec4 fragColor;
|
|
11
|
-
|
|
12
|
-
void main(void) {
|
|
13
|
-
fragColor = u_color;
|
|
14
|
-
}
|
|
15
|
-
`,_c=`#version 300 es
|
|
16
|
-
|
|
17
|
-
// Copyright 2025 Synnax Labs, Inc.
|
|
18
|
-
//
|
|
19
|
-
// Use of this software is governed by the Business Source License included in the file
|
|
20
|
-
// licenses/BSL.txt.
|
|
21
|
-
//
|
|
22
|
-
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
23
|
-
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
24
|
-
// included in the file licenses/APL.txt.
|
|
25
|
-
|
|
26
|
-
in mediump float a_x;
|
|
27
|
-
in mediump float a_y;
|
|
28
|
-
in mediump vec2 a_translate;
|
|
29
|
-
|
|
30
|
-
uniform mediump vec2 u_scale_aggregate;
|
|
31
|
-
uniform mediump vec2 u_offset_aggregate;
|
|
32
|
-
|
|
33
|
-
void main(void) {
|
|
34
|
-
gl_Position = vec4((u_scale_aggregate * vec2(a_x, a_y) + u_offset_aggregate) + a_translate, 0.0, 1.0);
|
|
35
|
-
}
|
|
36
|
-
`,Fc=`#version 300 es
|
|
37
|
-
|
|
38
|
-
// Copyright 2025 Synnax Labs, Inc.
|
|
39
|
-
//
|
|
40
|
-
// Use of this software is governed by the Business Source License included in the file
|
|
41
|
-
// licenses/BSL.txt.
|
|
42
|
-
//
|
|
43
|
-
// As of the Change Date specified in that file, in accordance with the Business Source
|
|
44
|
-
// License, use of this software will be governed by the Apache License, Version 2.0,
|
|
45
|
-
// included in the file licenses/APL.txt.
|
|
46
|
-
|
|
47
|
-
in mediump float a_x;
|
|
48
|
-
in mediump uint a_y;
|
|
49
|
-
in mediump vec2 a_translate;
|
|
50
|
-
|
|
51
|
-
uniform mediump vec2 u_scale_aggregate;
|
|
52
|
-
uniform mediump vec2 u_offset_aggregate;
|
|
53
|
-
|
|
54
|
-
void main(void) {
|
|
55
|
-
gl_Position = vec4((u_scale_aggregate * vec2(a_x, float(a_y)) + u_offset_aggregate) + a_translate, 0.0, 1.0);
|
|
56
|
-
}
|
|
57
|
-
`,Fa=f.z.object({x:sn,y:sn,label:f.z.string().optional(),color:l.Color.z,strokeWidth:f.z.number().default(1),downsample:f.z.number().min(1).max(50).optional().default(1)}),Hc=(e,n,t)=>e===-1||n===-1||e>=t.length?NaN:Number(t[e].at(n)),qc=w.y$1.milliseconds(2);l.G.NAN,l.G.NAN;const jc=(e,n)=>n.equals(w.g$1.UINT8)?e.UNSIGNED_BYTE:e.FLOAT;class vs extends G.GLProgram{constructor(t,r,s){super(t,r,s);h(this,"translationBufferCache",new Map);h(this,"attrLocations",{});this.translationBufferCache=new Map,this.attrLocations={x:this.renderCtx.gl.getAttribLocation(this.prog,"a_x"),y:this.renderCtx.gl.getAttribLocation(this.prog,"a_y"),translate:this.renderCtx.gl.getAttribLocation(this.prog,"a_translate")}}bindState({strokeWidth:t,color:r}){return this.uniformColor("u_color",r),this.attrStrokeWidth(t)}bindScale(t,r){const s=l.G.scale(t.scale,r.scale),a=l.G.translate(l.G.scale(r.scale,t.offset),r.offset);this.uniformXY("u_scale_aggregate",s),this.uniformXY("u_offset_aggregate",a)}draw({x:t,y:r,count:s,downsample:a,xOffset:i,yOffset:o},c,u,d){const{gl:p}=this.renderCtx;this.bindAttrBuffer("x",t.glBuffer,a,i,u),this.bindAttrBuffer("y",r.glBuffer,a,o,d),p.drawArraysInstanced(p.LINE_STRIP,0,s/a,c)}bindAttrBuffer(t,r,s,a=0,i){const{gl:o}=this.renderCtx;o.bindBuffer(o.ARRAY_BUFFER,r);const c=o.getAttribLocation(this.prog,`a_${t}`),u=jc(o,i),d=i.density.valueOf();i.equals(w.g$1.UINT8)?o.vertexAttribIPointer(c,1,u,d*s,d*a):o.vertexAttribPointer(c,1,u,!1,d*s,d*a),o.enableVertexAttribArray(c)}getAndBindTranslationBuffer(t){const{gl:r}=this.renderCtx,s=`${this.renderCtx.aspect}:${t}`,a=this.translationBufferCache.get(s);if(a!=null)return r.bindBuffer(r.ARRAY_BUFFER,a.glBuffer),a;const i=r.createBuffer();if(i==null)throw new y.Me("Failed to create buffer from WebGL context");const o=Vc(this.renderCtx.aspect,t);r.bindBuffer(r.ARRAY_BUFFER,i),r.bufferData(r.ARRAY_BUFFER,o,r.DYNAMIC_DRAW);const c={glBuffer:i,jsBuffer:o};return this.translationBufferCache.set(s,c),c}attrStrokeWidth(t){const{gl:r}=this.renderCtx,{jsBuffer:s}=this.getAndBindTranslationBuffer(t),a=r.getAttribLocation(this.prog,"a_translate");return r.vertexAttribPointer(a,2,r.FLOAT,!1,0,0),r.enableVertexAttribArray(a),r.vertexAttribDivisor(a,1),s.length/2}}const Pt=class Pt{constructor(n){h(this,"uint8HybridProgram");h(this,"float32Program");this.uint8HybridProgram=new vs(n,Fc,xs),this.float32Program=new vs(n,_c,xs)}get gl(){return this.uint8HybridProgram.renderCtx.gl}getProgram(n){return n.equals(w.g$1.UINT8)?this.uint8HybridProgram:this.float32Program}static create(n,t){const r=new Pt(t);return n.set(Pt.CONTEXT_KEY,r),r}static use(n){const t=n.get(Pt.CONTEXT_KEY);if(t==null)throw new y.Me("GLProgram not found");return t}};h(Pt,"CONTEXT_KEY","pluto-line-gl-program");let mn=Pt;class Ce extends y.Leaf{constructor(){super(...arguments);h(this,"schema",Fa)}async afterUpdate(t){var s,a;if(this.deleted)return;const{internal:r}=this;r.xTelem=await j(t,this.state.x,r.xTelem),r.yTelem=await j(t,this.state.y,r.yTelem),r.instrumentation=Ze(t,"line"),r.ctx=mn.use(t),r.requestRender=I.useRequest(t),(s=r.stopListeningXTelem)==null||s.call(r),(a=r.stopListeningYTelem)==null||a.call(r),r.stopListeningXTelem=r.xTelem.onChange(()=>r.requestRender(jn)),r.stopListeningYTelem=r.yTelem.onChange(()=>r.requestRender(jn)),r.requestRender(tt)}async afterDelete(){var r,s,a,i;const{internal:t}=this;await((s=(r=t.xTelem).cleanup)==null?void 0:s.call(r)),await((i=(a=t.yTelem).cleanup)==null?void 0:i.call(a)),t.requestRender(tt)}async xBounds(){return(await this.internal.xTelem.value())[0]}async yBounds(){return(await this.internal.yTelem.value())[0]}async findByXValue(t,r){const{xTelem:s,yTelem:a}=this.internal,[,i]=await s.value();let[o,c]=[-1,-1];i.find((Y,D)=>{const P=Y.binarySearch(r),L=P>=0&&P<Y.length;return L&&([o,c]=[P,D]),L});const{key:u}=this,{color:d,label:p}=this.state,g={key:u,color:d,label:p,position:{x:0,y:0},value:{x:NaN,y:NaN}};if(o===-1||c===-1)return g;const b=i[c];g.value.x=Hc(c,o,i);const[,v]=await a.value(),S=v.find(Y=>l.H.contains(Y.alignmentBounds,b.alignment+BigInt(o)));if(S==null)return g;const C=Number(S.alignment-b.alignment);return g.value.y=Number(S.at(o-C)),g.position={x:t.dataToDecimalScale.x.pos(g.value.x),y:t.dataToDecimalScale.y.pos(g.value.y)},g}async render(t){if(this.deleted)return;const{downsample:r}=this.state,{xTelem:s,yTelem:a,ctx:i}=this.internal,{dataToDecimalScale:o,exposure:c}=t,[[,u],[,d]]=await Promise.all([s.value(),a.value()]);if(u.forEach(C=>C.updateGLBuffer(i.gl)),d.forEach(C=>C.updateGLBuffer(i.gl)),u.length===0||d.length===0)return;const p=i.getProgram(d[0].dataType),g=eu(u,d,c,r,qc);this.internal.instrumentation.L.debug("render",()=>({key:this.key,downsample:r,scale:o.transform,props:t.region,ops:nu(g)}));const b=p.setAsActive(),v=p.bindState(this.state),S=p.renderCtx.scaleRegion(t.region).transform;g.forEach(C=>{const Y=Qc(o,C).transform;p.bindScale(Y,S),p.draw(C,v,u[0].dataType,d[0].dataType)}),b()}}h(Ce,"TYPE","line");const Wc=5e3,Vc=(e,n)=>Jc(Kc(e),n).map((t,r)=>Math.floor(r/Xc)*(1/(Wc*e))*t),Xc=5,Kc=e=>new Float32Array([0,0,0,e,0,-e,1,0,-1,0]),Jc=(e,n)=>{const t=new Float32Array(e.length*n);for(let r=0;r<n;r++)t.set(e,r*e.length);return t},Qc=(e,n)=>e.translate(e.x.dim(Number(n.x.sampleOffset)),e.y.dim(Number(n.y.sampleOffset))),tu={[Ce.TYPE]:Ce},eu=(e,n,t,r,s)=>{if(e.length===0||n.length===0)return[];const a=[];return e.forEach(i=>n.forEach(o=>{if(!ru(i,o,s))return;let c=0,u=0;i.alignment<o.alignment?c=Number(o.alignment-i.alignment):o.alignment<i.alignment&&(u=Number(i.alignment-o.alignment));const d=Math.min(i.length-c,o.length-u);if(d===0)return;const p=l.Y(Math.round(t*4*d),r,51);a.push({x:i,y:o,xOffset:c,yOffset:u,count:d,downsample:p})})),a},nu=e=>e.map(n=>({...n,x:n.x.digest,y:n.y.digest})),ru=(e,n,t)=>{if(!(e._timeRange!=null&&n._timeRange!=null))throw new y.Me(`Encountered series without time range in buildDrawOperations. X series present: ${e._timeRange!=null}, Y series present: ${n._timeRange!=null}`);const s=e.timeRange.overlapsWith(n.timeRange,t),a=l.H.overlapsWith(e.alignmentBounds,n.alignmentBounds);return s&&a};class Xt{constructor(n,t){h(this,"canvas");h(this,"theme");this.canvas=n,this.theme=t}rule({direction:n,region:t,position:r,...s}){return n==="x"?this.line({start:l.G.construct(l.Mo.left(t),r),end:l.G.construct(l.Mo.right(t),r),...s}):this.line({start:l.G.construct(r,l.Mo.top(t)),end:l.G.construct(r,l.Mo.bottom(t)),...s})}line({stroke:n,lineWidth:t,lineDash:r,start:s,end:a}){const i=this.canvas;i.strokeStyle=n.hex,i.lineWidth=t,i.setLineDash([r]),i.beginPath(),i.moveTo(...l.G.couple(s)),i.lineTo(...l.G.couple(a)),i.stroke()}circle({fill:n,radius:t,position:r}){const s=this.canvas;s.fillStyle=n.hex,s.beginPath(),s.arc(...l.G.couple(r),t,0,2*Math.PI),s.fill()}resolveColor(n,t){return n==null?this.resolveColor(t):typeof n=="function"?n(this.theme):new l.Color(n)}border({region:n,color:t,width:r,radius:s,location:a}){const i=this.canvas;i.strokeStyle=this.resolveColor(t,this.theme.colors.border).hex,i.lineWidth=r??this.theme.sizes.border.width,s??(s=this.theme.sizes.border.radius),a==null||a===!0?s>0?(i.roundRect(...l.G.couple(l.Mo.topLeft(n)),...l.G.couple(l.Mo.dims(n)),s),i.stroke()):(i.rect(...l.G.couple(l.Mo.topLeft(n)),...l.G.couple(l.Mo.dims(n))),i.stroke()):Ms.A(a).forEach(o=>{const[c,u]=l.Mo.edgePoints(n,o);i.beginPath(),i.moveTo(...l.G.couple(c)),i.lineTo(...l.G.couple(u)),i.stroke()})}container({region:n,bordered:t=!0,rounded:r=!0,borderColor:s,borderRadius:a,borderWidth:i,backgroundColor:o}){a??(a=this.theme.sizes.border.radius),i??(i=1);const c=this.canvas;c.fillStyle=this.resolveColor(o,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(...l.G.couple(l.Mo.topLeft(n)),...l.G.couple(l.Mo.dims(n)),a):c.rect(...l.G.couple(l.Mo.topLeft(n)),...l.G.couple(l.Mo.dims(n))),c.fill(),t&&this.border({region:n,color:s,radius:a,width:i,location:t})}textContainer(n){const[t,r]=this.spacedTextDrawF(n);t.width+=12,t.height+=12;const{root:s=l.K.TOP_LEFT,offset:a=l.G.ZERO}=n,i={...n.position};s.x==="right"?i.x-=t.width+a.x:i.x+=a.x,s.y==="bottom"?i.y-=t.height+a.y:i.y+=a.y,this.container({region:l.Mo.construct(i,t.width,t.height),...n}),this.canvas.filter="none",r(l.G.translate(i,[6,6]))}spacedTextDrawF({text:n,direction:t,spacing:r=1,level:s="p"}){const a=ee.fontString(this.theme,{level:s}),i=n.map(u=>ft.dimensions(u,a,this.canvas)),o=this.theme.sizes.base*r,c=Math.max(...i.map(u=>u[l.g.dimension(t)]))+o;return[{[l.g.dimension(l.g.swap(t))]:Math.max(...i.map(u=>u[l.g.dimension(l.g.swap(t))])),[l.g.dimension(t)]:c*n.length-o},u=>{const d=ee.fontString(this.theme,{level:s});this.canvas.font=d,this.canvas.fillStyle=this.theme.colors.text.hex,this.canvas.textBaseline="top",n.forEach((p,g)=>{this.canvas.fillText(p,u.x,u.y+c*g)})}]}drawTextInCenter({box:n,text:t,level:r}){const s=ft.dimensions(t,this.canvas.font,this.canvas),a=l.Mo.positionInCenter(l.Mo.construct(l.G.ZERO,s),n);return this.text({text:t,position:l.Mo.topLeft(a),level:r})}text({text:n,position:t,level:r="p",weight:s,shade:a,maxWidth:i,code:o}){this.canvas.font=ee.fontString(this.theme,{level:r,weight:s,code:o}),a==null?this.canvas.fillStyle=this.theme.colors.text.hex:this.canvas.fillStyle=this.theme.colors.gray[`l${a}`].hex,this.canvas.textBaseline="top";let c;i!=null&&(c=this.canvas.scissor(l.Mo.construct(t,i,1e3))),this.canvas.fillText(n,t.x,t.y),c==null||c()}}const Nr=f.z.object({position:f.z.number().optional(),pixelPosition:f.z.number().optional(),dragging:f.z.boolean(),lineWidth:f.z.number().optional().default(1),lineDash:f.z.number().optional().default(20),color:l.Color.z}),su=3;class Ft extends y.Leaf{constructor(){super(...arguments);h(this,"schema",Nr);h(this,"lastUpdateRef",null)}async afterUpdate(t){this.internal.renderCtx=G.Context.use(t);const r=y.use(t);this.internal.draw=new Xt(this.internal.renderCtx.upper2d,r),I.requestRender(t,st)}async afterDelete(t){I.requestRender(t,st)}updatePositions({decimalToDataScale:t,plot:r}){const s=this.state.dragging,a=this.prevState.dragging&&!s;if((s||a)&&this.state.pixelPosition!=null){if(this.lastUpdateRef??(this.lastUpdateRef=this.state.pixelPosition),Math.abs(this.state.pixelPosition-this.lastUpdateRef)<su&&!a)return this.state.pixelPosition;this.lastUpdateRef=this.state.pixelPosition;const c=t.pos(this.state.pixelPosition/l.Mo.height(r));return this.setState(u=>({...u,position:c})),this.state.pixelPosition}if(this.state.position==null){const o=t.pos(.5);this.setState(c=>({...c,position:o}))}const i=t.reverse().pos(this.state.position)*l.Mo.height(r);if(!isNaN(i)){if(this.state.pixelPosition!=null&&Math.abs(i-this.state.pixelPosition)<1)return this.state.pixelPosition;this.setState(o=>({...o,pixelPosition:i}))}return i}async render(t){if(this.deleted)return;const{renderCtx:r}=this.internal,{location:s,plot:a}=t,i=l.K.direction(s),{upper2d:o}=r,c=this.internal.draw,u=this.updatePositions(t)+l.Mo.top(t.plot);c.rule({stroke:this.state.color,lineWidth:this.state.lineWidth,lineDash:this.state.lineDash,direction:i,region:a,position:u}),o.fillStyle=this.state.color.hex,o.lineJoin="round",o.lineWidth=3.5,o.lineCap="round",o.beginPath();const d=4;if(s==="left"){const p=l.Mo.left(a)-1;o.moveTo(p,u),o.lineTo(p-d,u-d),o.lineTo(p-d,u+d)}else s==="right"&&(o.moveTo(l.Mo.right(a),u),o.lineTo(l.Mo.right(a)+d,u-d),o.lineTo(l.Mo.right(a)+d,u+d));o.closePath(),o.stroke()}}h(Ft,"TYPE","Rule");const Ha={[Ft.TYPE]:Ft},au=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Ha,Rule:Ft,ruleStateZ:Nr},Symbol.toStringTag,{value:"Module"})),iu=Ue.extend({location:l.K.x.optional().default("left")}),Ts=2,ou=e=>l.Mo.signedWidth(e)<Ts||l.Mo.signedHeight(e)<Ts;class Ee extends Ga{constructor(){super(...arguments);h(this,"schema",Ue)}async xBounds(){return l.H.max((await Promise.all(this.lines.map(async t=>await t.xBounds()))).filter(t=>l.H.isFinite(t)))}async render(t){if(this.deleted)return;const[r,s]=await this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport),a=r.invert().reverse();if(this.renderAxis(t,a),await this.renderLines(t,r),await this.renderRules(t,a),s!=null)throw s}async renderLines({xDataToDecimalScale:t,plot:r,canvases:s,exposure:a},i){if(!s.includes("gl")||ou(r))return;const o={region:r,dataToDecimalScale:new l.b.XY(t,i),exposure:a};await Promise.all(this.lines.map(async c=>await c.render(o)))}async renderRules({container:t,plot:r,canvases:s},a){if(!s.includes("upper2d"))return;const{location:i}=this.state,{render:o}=this.internal,c=l.Mo.construct(l.Mo.left(t),l.Mo.top(r),l.Mo.width(t),l.Mo.height(r)),u=o.scissor(c,l.G.ZERO,["upper2d"]),d={container:t,plot:r,decimalToDataScale:a,location:i};await Promise.all(this.rules.map(async p=>await p.render(d))),u()}async findByXValue({xDataToDecimalScale:t,plot:r,viewport:s,hold:a,exposure:i},o){const[c,u]=await this.dataToDecimalScale(a,this.dataBounds.bind(this),s);if(u!=null)throw u;const d=new l.b.XY(t,c),p={region:r,dataToDecimalScale:d,exposure:i};return(await Promise.all(this.lines.map(async g=>await g.findByXValue(p,o)))).map(g=>({...g,units:this.state.label}))}async dataBounds(){return await Promise.all(this.lines.map(async t=>await t.yBounds()))}get lines(){return this.childrenOfType(Ce.TYPE)}get rules(){return this.childrenOfType(Ft.TYPE)}}h(Ee,"TYPE","YAxis");const qa=f.z.object({start:w.m.z,end:w.m.z});class yn extends y.Leaf{constructor(){super(...arguments);h(this,"schema",qa)}async afterUpdate(t){this.internal.render=G.Context.use(t),this.internal.draw=new Xt(this.internal.render.upper2d,y.use(t))}async render(){}}h(yn,"TYPE","range-annotation");const lu=y.bm.payloadZ.extend({viewport:l.H.bounds}),Ss=e=>l.Color.z.safeParse(e).success,ja=f.z.object({cursor:l.G.xy.or(f.z.null()),hovered:lu.or(f.z.null()),count:f.z.number()});class Me extends y.Leaf{constructor(){super(...arguments);h(this,"schema",ja);h(this,"fetchedInitial",w.U.ZERO)}async afterUpdate(t){const{internal:r}=this;r.render=G.Context.use(t),r.draw=new Xt(r.render.upper2d,y.use(t)),r.ranges??(r.ranges=new Map);const s=Oe(t);s!=null&&(r.client=s,r.tracker==null&&(r.tracker=await r.client.ranges.openTracker(),r.tracker.onChange(a=>{a.forEach(i=>{i.variant==="delete"?r.ranges.delete(i.key):Ss(i.value.color)&&r.ranges.set(i.key,i.value)}),I.requestRender(t,st),this.setState(i=>({...i,count:r.ranges.size}))}),I.requestRender(t,st)))}async fetchInitial(t){const{internal:r}=this;if(r.client==null||this.fetchedInitial.roughlyEquals(t,w.y$1.minutes(1)))return;this.fetchedInitial=t,(await r.client.ranges.retrieve(t)).forEach(a=>{Ss(a.color)&&r.ranges.set(a.key,a)}),this.setState(a=>({...a,count:r.ranges.size}))}async render(t){const{dataToDecimalScale:r,region:s,viewport:a,timeRange:i}=t;await this.fetchInitial(i);const{draw:o,ranges:c}=this.internal,u=r.scale(l.Mo.xBounds(s)),d=this.state.cursor==null?null:this.state.cursor.x;let p=null;const g=o.canvas.scissor(l.Mo.construct({x:l.Mo.left(s),y:l.Mo.top(s)-35},{x:l.Mo.right(s),y:l.Mo.bottom(s)}));c.forEach(b=>{const v=l.Color.z.safeParse(b.color);if(!v.success)return;const S=v.data;let C=u.pos(Number(b.timeRange.start.valueOf()));const Y=u.pos(Number(b.timeRange.end.valueOf()));if(Y<l.Mo.left(s)||C>l.Mo.right(s))return;C=l.Y(C,l.Mo.left(s)-2,l.Mo.right(s)-1);let D=!1;d!=null&&(D=l.H.contains({lower:C,upper:Y},d)),D&&(p={key:b.key,name:b.name,color:b.color,timeRange:b.timeRange,viewport:{lower:r.scale(l.Mo.xBounds(a)).pos(Number(b.timeRange.start.valueOf())),upper:r.scale(l.Mo.xBounds(a)).pos(Number(b.timeRange.end.valueOf()))}}),o.container({region:l.Mo.construct({x:C,y:l.Mo.top(s)-1},{x:Y,y:l.Mo.bottom(s)-1}),backgroundColor:S.setAlpha(.2),bordered:!1});const P=l.Mo.construct({x:C+1,y:l.Mo.top(s)-34},{x:Y-1,y:l.Mo.top(s)-12});o.container({region:P,backgroundColor:l.Mo.width(P)<20?S.setAlpha(.4):L=>D?L.colors.gray.l2:L.colors.gray.l0,bordered:!0,borderWidth:1,borderRadius:2,borderColor:S.setAlpha(.8)}),o.text({text:b.name,position:{x:C+8,y:l.Mo.top(s)-30},level:"small",shade:8,weight:500,maxWidth:Y-C-16})}),g(),p!=null?this.setState(b=>({...b,hovered:p})):this.state.hovered&&this.setState(b=>({...b,hovered:null}))}}h(Me,"TYPE","range-provider");const cu={[yn.TYPE]:yn,[Me.TYPE]:Me},uu=Ue;class Pe extends Ga{constructor(){super(...arguments);h(this,"schema",Ue)}async render(t){if(this.deleted)return;const[r,s]=await this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport);if(this.renderAxis(t,r.reverse()),await this.renderYAxes(t,r),await this.renderRangeAnnotations(t,r),s!=null)throw s}async findByXDecimal(t,r){const[s,a]=await this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport);if(a!=null)throw a;return await this.findByXValue(t,s.reverse().pos(r))}async findByXValue(t,r){const[s,a]=await this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport);if(a!=null)throw a;const i={...t,xDataToDecimalScale:s},o=this.yAxes.map(async c=>await c.findByXValue(i,r));return(await Promise.all(o)).flat()}async renderYAxes(t,r){const s={...t,xDataToDecimalScale:r};await Promise.all(this.yAxes.map(async a=>await a.render(s)))}get yAxes(){return this.childrenOfType(Ee.TYPE)}get rangeAnnotations(){return this.childrenOfType(Me.TYPE)}async renderRangeAnnotations(t,r){const[s,a]=await this.bounds(t.hold,this.dataBounds.bind(this));if(a!=null)throw a;await Promise.all(this.rangeAnnotations.map(async i=>await i.render({dataToDecimalScale:r,region:t.plot,viewport:t.viewport,timeRange:new w.U(s.lower,s.upper)})))}async dataBounds(){return await Promise.all(this.yAxes.map(async t=>await t.xBounds()))}}h(Pe,"TYPE","XAxis");const Ur=f.z.object({position:l.G.xy.or(f.z.null()),textColor:l.Color.z.optional().default(l.ZERO),backgroundColor:l.Color.z.optional().default(l.ZERO),borderColor:l.Color.z.optional().default(l.ZERO),ruleColor:l.Color.z.optional().default(l.ZERO),ruleStrokeWidth:f.z.number().optional().default(1),ruleStrokeDash:f.z.number().default(0)});class Ht extends y.Leaf{constructor(){super(...arguments);h(this,"schema",Ur)}async afterUpdate(t){const r=y.use(t);this.state.textColor.isZero&&(this.state.textColor=r.colors.text),this.state.backgroundColor.isZero&&(this.state.backgroundColor=r.colors.gray.l1),this.state.borderColor.isZero&&(this.state.borderColor=r.colors.border),this.state.ruleColor.isZero&&(this.state.ruleColor=r.colors.gray.l5),this.internal.dotColor=r.colors.text,this.internal.dotColorContrast=r.colors.textInverted,this.internal.render=G.Context.use(t),this.internal.draw=new Xt(this.internal.render.upper2d,r),I.requestRender(t,st)}async afterDelete(t){I.requestRender(t,st)}async render(t){if(this.deleted||this.state.position==null)return;const{region:r}=t,s=l.b.XY.scale(l.Mo.DECIMAL).scale(r),a=l.b.XY.scale(r).scale(l.Mo.DECIMAL),i=await t.findByXDecimal(a.x.pos(this.state.position.x)),o=i.filter(v=>l.G.isFinite(v.value)),{draw:c}=this.internal,u=o.reduce((v,S)=>v+S.position.x,0)/o.length,d=new w.m(o.reduce((v,S)=>v+S.value.x,0)/o.length),p=s.x.pos(u);if(!l.H.contains(l.Mo.xBounds(r),p))return;c.rule({stroke:this.state.ruleColor,lineWidth:this.state.ruleStrokeWidth,lineDash:this.state.ruleStrokeDash,direction:"y",region:r,position:p}),o.forEach(v=>{const S=s.pos(v.position);c.circle({fill:v.color.setAlpha(.5),radius:8,position:S}),c.circle({fill:v.color.setAlpha(.8),radius:5,position:S}),c.circle({fill:v.color.pickByContrast(this.internal.dotColor,this.internal.dotColorContrast),radius:2,position:S})});const g=i.map(v=>`${v.label??""}: ${v.value.y.toFixed(2)}`);g.unshift(`Time: ${d.fString("preciseDate","local")}`);const b=a.pos(this.state.position);c.textContainer({text:g,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:b.x>.8?"right":"left",y:b.y>.8?"top":"bottom"}})}}h(Ht,"TYPE","tooltip");const Wa={[Ht.TYPE]:Ht},hu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Wa,Tooltip:Ht,tooltipStateZ:Ur},Symbol.toStringTag,{value:"Module"})),Br=f.z.object({one:l.G.xy.nullable(),two:l.G.xy.nullable(),hover:l.G.xy.nullable(),color:f.z.union([l.Color.z,f.z.object({verticalLine:l.Color.z.optional().default(l.ZERO),horizontalLine:l.Color.z.optional().default(l.ZERO),obliqueLine:l.Color.z.optional().default(l.ZERO)})]).optional().default(l.ZERO),strokeWidth:f.z.number().optional().default(1),strokeDash:f.z.number().optional().default(2)});class qt extends y.Leaf{constructor(){super(...arguments);h(this,"schema",Br)}async afterUpdate(t){const r=G.Context.use(t);this.internal.theme=y.use(t),this.internal.renderCtx=r,this.internal.draw=new Xt(r.upper2d,this.internal.theme),I.requestRender(t,st)}async afterDelete(t){I.requestRender(t,tt)}get verticalLineColor(){return this.state.color instanceof l.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 l.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 l.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(t){const{one:r,two:s}=this.state;if(r==null||s==null)return null;const{one:a,two:i}=this.prevState,{dataOne:o,dataTwo:c}=this.internal;if(a!=null&&l.G.equals(r,a)&&i!=null&&l.G.equals(s,i)&&o!=null&&c!=null){const[C,Y]=[await t.findByXValue(o.x),await t.findByXValue(c.x)];return C.length===0||Y.length===0?null:[C.sort((D,P)=>l.G.distance(o,D.value)-l.G.distance(o,P.value))[0],Y.sort((D,P)=>l.G.distance(c,D.value)-l.G.distance(c,P.value))[0]]}const u=l.b.XY.scale(t.region).scale(l.Mo.DECIMAL),[d,p]=[u.pos(r),u.pos(s)],[g,b]=[await t.findByXDecimal(d.x),await t.findByXDecimal(p.x)];if(g.length===0||b.length===0)return null;const[v,S]=[g.sort((C,Y)=>l.G.distance(d,C.position)-l.G.distance(d,Y.position))[0],b.sort((C,Y)=>l.G.distance(p,C.position)-l.G.distance(p,Y.position))[0]];return this.internal.dataOne=v.value,this.internal.dataTwo=S.value,[v,S]}async renderHover(t){if(this.state.hover==null)return;const r=this.state.hover,s=l.b.XY.scale(t.region).scale(l.Mo.DECIMAL),a=s.pos(r),i=await t.findByXDecimal(s.pos(r).x);if(i.length===0)return;const o=i.sort((u,d)=>l.G.distance(a,u.position)-l.G.distance(a,d.position))[0],{draw:c}=this.internal;c.circle({fill:o.color.setAlpha(.5),radius:9,position:s.reverse().pos(o.position)})}async render(t){if(this.deleted)return;await this.renderHover(t);const r=await this.find(t);if(r==null)return;const[s,a]=r,{draw:i}=this.internal,{strokeDash:o,strokeWidth:c}=this.state,u=l.b.XY.scale(l.Mo.DECIMAL).scale(t.region),d=u.pos(s.position),p=u.pos(a.position),g=new w.y$1(Math.abs(s.value.x-a.value.x)),b=Math.abs(s.value.y-a.value.y),v=b/g.seconds;i.line({start:l.G.construct(d.x,d.y),end:l.G.construct(d.x,p.y),stroke:this.verticalLineColor,lineDash:o,lineWidth:c}),i.textContainer({text:[`${b.toFixed(2)} ${s.units??""}`],direction:"x",position:l.G.construct(d.x,(d.y+p.y)/2),level:"small"}),i.line({start:l.G.construct(d.x,p.y),end:l.G.construct(p.x,p.y),stroke:this.horizontalLineColor,lineDash:o,lineWidth:c}),i.textContainer({text:[g.truncate(w.y$1.MILLISECOND).toString()],direction:"x",position:l.G.construct((d.x+p.x)/2,p.y),level:"small"}),i.line({start:l.G.construct(d.x,d.y),end:l.G.construct(p.x,p.y),stroke:this.obliqueLineColor,lineDash:o,lineWidth:c}),i.textContainer({text:[`${v.toFixed(2)} ${s.units??""} / S`],direction:"x",position:l.G.construct((d.x+p.x)/2,(d.y+p.y)/2),level:"small"}),i.circle({fill:s.color.setAlpha(.5),radius:8,position:d}),i.circle({fill:s.color.setAlpha(.8),radius:5,position:d}),i.circle({fill:new l.Color("#ffffff"),radius:2,position:d}),i.circle({fill:a.color.setAlpha(.5),radius:8,position:p}),i.circle({fill:a.color.setAlpha(.8),radius:5,position:p}),i.circle({fill:new l.Color("#ffffff"),radius:2,position:p})}}h(qt,"TYPE","measure");const Va={[qt.TYPE]:qt},du=Object.freeze(Object.defineProperty({__proto__:null,Measure:qt,REGISTRY:Va,measureStateZ:Br},Symbol.toStringTag,{value:"Module"})),Xa=f.z.object({container:l.Mo.box,viewport:l.Mo.box,hold:f.z.boolean().optional().default(!1),grid:f.z.record(ba),visible:f.z.boolean().optional().default(!0),clearOverScan:l.G.crudeZ.optional().default(l.G.ZERO)}),fu=(e,n)=>{const t=l.Mo.width(e)*Math.sqrt(l.Mo.height(e)),r=l.Mo.width(n)*Math.sqrt(l.Mo.height(n));return t/r};class wn extends y.Composite{constructor(){super(...arguments);h(this,"schema",Xa)}async afterUpdate(t){this.internal.instrumentation=Ze(t,"lineplot"),this.internal.aggregate=X.useAdder(t),this.internal.renderCtx=G.Context.use(t),I.control(t,r=>this.requestRender("low",r)),this.requestRender("high",tt)}async afterDelete(t){this.internal.renderCtx=G.Context.use(t),this.requestRender("high",tt)}async findByXDecimal(t){const r={...this.state,plot:this.calculatePlot(),exposure:this.exposure},s=this.axes.flatMap(async a=>await a.findByXDecimal(r,t));return(await Promise.all(s)).flat()}async findByXValue(t){const r={...this.state,plot:this.calculatePlot(),exposure:this.exposure},s=this.axes.flatMap(async a=>await a.findByXValue(r,t));return(await Promise.all(s)).flat()}get axes(){return this.childrenOfType(Pe.TYPE)}get tooltips(){return this.childrenOfType(Ht.TYPE)}get measures(){return this.childrenOfType(qt.TYPE)}get exposure(){return fu(this.state.viewport,this.state.container)}async renderAxes(t,r){const s={...this.state,plot:t,canvases:r,exposure:this.exposure};await Promise.all(this.axes.map(async a=>await a.render(s)))}async renderTooltips(t,r){const s={findByXDecimal:this.findByXDecimal.bind(this),region:t,canvases:r};await Promise.all(this.tooltips.map(async a=>await a.render(s)))}async renderMeasures(t){const r={findByXDecimal:this.findByXDecimal.bind(this),findByXValue:this.findByXValue.bind(this),region:t};await Promise.all(this.measures.map(async s=>await s.render(r)))}calculatePlot(){return go(this.state.grid,this.state.container)}async render(t){const{renderCtx:r}=this.internal,{instrumentation:s}=this.internal;if(this.deleted){s.L.debug("deleted, skipping render",{key:this.key});return}if(!this.state.visible)return s.L.debug("not visible, skipping render",{key:this.key}),async({canvases:d})=>r.erase(this.state.container,this.state.clearOverScan,...d);const a=this.calculatePlot();s.L.debug("rendering",{key:this.key,viewport:this.state.viewport,container:this.state.container,grid:this.state.grid,plot:a,canvases:t});const i=l.G.construct(this.state.clearOverScan),o=r.scissor(this.state.container,i,t.filter(d=>d!=="gl")),c=r.scissor(a,l.G.ZERO,t.filter(d=>d==="gl"));try{await this.renderAxes(a,t),await this.renderTooltips(a,t),await this.renderMeasures(a),r.gl.finish(),r.gl.flush(),r.gl.finish()}catch(d){if(d.message.toLowerCase().includes("bigint"))return;this.internal.aggregate({key:`${this.type}-${this.key}`,variant:"error",message:d.message})}finally{o(),c()}s.L.debug("rendered",{key:this.key});const u=l.Mo.copy(this.state.container);return async({canvases:d})=>r.erase(u,this.state.clearOverScan,...d)}requestRender(t,r){const{renderCtx:s}=this.internal;let a=["upper2d","lower2d","gl"];r===st&&(a=["upper2d"]),s.loop.set({key:`${this.type}-${this.key}`,render:async()=>await this.render(a),priority:t,canvases:a})}}h(wn,"TYPE","LinePlot");const pu={[wn.TYPE]:wn,[Pe.TYPE]:Pe,[Ee.TYPE]:Ee},Gr=f.z.object({dpr:f.z.number(),region:l.Mo.box,bootstrap:f.z.boolean().optional().default(!1),bootstrapped:f.z.boolean().optional().default(!1),glCanvas:f.z.any().optional(),upper2dCanvas:f.z.any().optional(),lower2dCanvas:f.z.any().optional(),os:w.S.osZ});class ke extends y.Composite{constructor(){super(...arguments);h(this,"schema",Gr);h(this,"renderCtx",null)}async afterUpdate(t){if(this.renderCtx==null){if(!this.state.bootstrap)return;const{glCanvas:r,lower2dCanvas:s,upper2dCanvas:a,os:i}=this.state;if(r==null||s==null||a==null)throw new y.Me("[vis.worker.Canvas] - expected render context bootstrap to include all canvases");this.renderCtx=G.Context.create(t,r,s,a,i),mn.create(t,this.renderCtx),this.setState(o=>({...o,bootstrap:!1,bootstrapped:!0,glCanvas:void 0,lower2dCanvas:void 0,upper2dCanvas:void 0}))}else this.renderCtx.update(t);this.renderCtx.resize(this.state.region,this.state.dpr)}}h(ke,"TYPE","Canvas");const Ka={[ke.TYPE]:ke},gu=Object.freeze(Object.defineProperty({__proto__:null,Canvas:ke,REGISTRY:Ka,canvasStateZ:Gr},Symbol.toStringTag,{value:"Module"})),Ja=f.z.object({triggered:f.z.boolean(),status:X.specZ,sink:Yn.optional().default(Pn),source:hr.optional().default(lr)});class bn extends y.Leaf{constructor(){super(...arguments);h(this,"schema",Ja)}async afterUpdate(t){var a,i,o;const{sink:r,source:s}=this.state;this.internal.source=await j(t,s,this.internal.source),this.internal.sink=await $e(t,r,this.internal.sink),this.state.triggered&&!this.prevState.triggered&&await this.internal.sink.set(((a=this.state.status.data)==null?void 0:a.authority)!==y.Am.ABSOLUTE),await this.updateEnabledState(),(o=(i=this.internal).stopListening)==null||o.call(i),this.internal.stopListening=this.internal.source.onChange(()=>{this.updateEnabledState()})}async updateEnabledState(){const t=await this.internal.source.value();rr.I.equal(t,this.state.status)||this.setState(r=>({...r,status:t,triggered:!1}))}async afterDelete(){var t,r,s,a;this.internal.stopListening(),await((r=(t=this.internal.source).cleanup)==null?void 0:r.call(t)),await((a=(s=this.internal.sink).cleanup)==null?void 0:a.call(s))}render(){}}h(bn,"TYPE","Chip");const Qa=f.z.object({}),Cs="control-state-provider",ti=y.im.stateZ.extend({subjectColor:l.Color.z});class jt extends y.Composite{constructor(){super(...arguments);h(this,"schema",Qa);h(this,"colors",new Map);h(this,"tracker");h(this,"disconnectTrackerChange");h(this,"obs",new sr.Observer)}static use(t){return t.get(Cs)}async afterUpdate(t){const{internal:r}=this;r.instrumentation=Ze(t,"control-state");const s=y.use(t);r.palette=s.colors.visualization.palettes.default,r.defaultColor=s.colors.gray.l6;const a=Oe(t);r.client!=null&&a===r.client||(r.client=a,t.set(Cs,this),await this.maybeCloseTracker(),r.client!=null&&(this.internal.instrumentation.L.debug("starting state tracker"),await this.openTracker(r.client)))}async maybeCloseTracker(){var t;this.tracker!=null&&(this.internal.instrumentation.L.debug("stopping state tracker"),(t=this.disconnectTrackerChange)==null||t.call(this),await this.tracker.close(),this.tracker=void 0)}async afterDelete(){await this.maybeCloseTracker()}onChange(t){return this.obs.onChange(t)}get(t){return Array.isArray(t)?w.c$1.unique(t).map(r=>this.getOne(r)).filter(r=>r!=null):this.getOne(t)}getOne(t){if(this.tracker==null)return;const r=this.tracker.states.get(t);if(r!=null)return{...r,subjectColor:this.colors.get(r.subject.key)??this.internal.defaultColor}}async openTracker(t){var a;const{internal:r}=this,{instrumentation:s}=r;try{this.tracker=await t.control.openStateTracker()}catch{s.L.error("failed to open state tracker");return}(a=this.disconnectTrackerChange)==null||a.call(this),this.disconnectTrackerChange=this.tracker.onChange(i=>{if(s.L.debug("transfer",{transfers:i.map(o=>y.im.transferString(o))}),this.tracker==null)throw new y.Me("tracker is null inside it's own onChange callback!");this.updateColors(this.tracker),this.obs.notify(i)})}updateColors(t){const r=t.subjects(),s=r.map(o=>o.key),a=Array.from(this.colors.values());this.colors.forEach((o,c)=>!s.includes(c)&&this.colors.delete(c));const{palette:i}=this.internal;r.forEach(o=>{if(this.colors.has(o.key))return;const c=i.find(u=>!a.includes(u))??i[0];this.colors.set(o.key,c),a.push(c)})}}h(jt,"TYPE","StateProvider");const ei=["acquired","released","overridden","failed"],ni=f.z.enum(ei),ri=f.z.object({name:f.z.string(),authority:f.z.number().default(0),acquireTrigger:f.z.number(),status:ni.optional(),needsControlOf:y.Jg.keyZ.array().optional().default([])});class xn extends y.Composite{constructor(){super(...arguments);h(this,"schema",ri);h(this,"registry",new Map);h(this,"writer")}async afterUpdate(t){const{internal:r}=this;r.instrumentation=Ze(t),(r.prevTrigger==null||Math.abs(this.state.acquireTrigger-r.prevTrigger)>1)&&(r.prevTrigger=this.state.acquireTrigger);const s=Oe(t),a=jt.use(t);r.client=s,r.client==null&&await this.release(),r.stateProv=a,r.telemCtx=da(t,this,r.telemCtx),r.addStatus=X.useAdder(t),this.state.acquireTrigger>r.prevTrigger?await this.acquire():this.state.acquireTrigger<r.prevTrigger&&await this.release()}async afterDelete(){await this.release()}async updateNeedsControlOf(){const{client:t}=this.internal;if(t==null)return;const r=new Set([]);for(const a of this.registry.keys())(await a.needsControlOf(t)).forEach(o=>o!==0&&r.add(o));const s=Array.from(r);w.F.unorderedPrimitiveArrays(this.state.needsControlOf,s)!==w.F.EQUAL&&this.setState(a=>({...a,needsControlOf:s}))}async acquire(){this.internal.prevTrigger=this.state.acquireTrigger;const{client:t,addStatus:r}=this.internal;if(t==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"});const a=y.k.now().sub(w.y$1.milliseconds(1));this.writer=await t.openWriter({start:a,channels:s,controlSubject:{key:this.key,name:this.state.name},authorities:this.state.authority,enableAutoCommit:!0}),this.setState(i=>({...i,status:"acquired"}))}catch(s){if(this.setState(a=>({...a,status:"failed"})),!(s instanceof Error))throw s;r({variant:"error",message:`${this.state.name} failed to acquire control`,description:s.message})}}async release(){var t;this.internal.prevTrigger=this.state.acquireTrigger;try{await((t=this.writer)==null?void 0:t.close())}catch(r){this.internal.addStatus({message:`${this.state.name} failed to release control: ${r.message}`,variant:"error"})}finally{this.setState(r=>({...r,status:"released"})),this.writer=void 0}}async set(t){var r;this.writer==null&&await this.acquire(),await((r=this.writer)==null?void 0:r.write(t))}async setAuthority(t,r){var s;this.writer==null&&await this.acquire(),await((s=this.writer)==null?void 0:s.setAuthority(Object.fromEntries(t.map(a=>[a,r]))))}async releaseAuthority(t){var r;this.writer==null&&await this.acquire(),await((r=this.writer)==null?void 0:r.setAuthority(Object.fromEntries(t.map(s=>[s,this.state.authority]))))}deleteTelem(t){this.registry.delete(t),this.updateNeedsControlOf()}create(t){const s=(()=>{switch(t.type){case Re.TYPE:{const a=new Re(this,t.props);return this.registry.set(a,null),a}case ze.TYPE:{const a=new ze(this,this.internal.stateProv,t.props);return this.registry.set(a,null),a}case Ye.TYPE:return new Ye(this,t.props);default:return null}})();return s!=null&&this.updateNeedsControlOf(),s}}h(xn,"TYPE","Controller");const si=f.z.object({channel:f.z.number()});class Re extends Ln{constructor(t,r){super(r);h(this,"controller");h(this,"schema",si);this.controller=t}invalidate(){}async cleanup(){this.controller.deleteTelem(this)}async needsControlOf(t){if(this.props.channel===0)return[];const r=await t.channels.retrieve(this.props.channel),s=[r.key];return r.index!==0&&s.push(r.index),s}async set(t){const{client:r}=this.controller.internal;if(r==null)return;const s=await r.channels.retrieve(this.props.channel),a={[s.key]:t};if(s.index!==0){const i=await r.channels.retrieve(s.index);a[i.key]=y.k.now()}await this.controller.set(a)}}h(Re,"TYPE","controlled-numeric-telem-sink");const mu=e=>({type:Re.TYPE,props:e,variant:"sink",valueType:"number"}),ai=f.z.object({authority:f.z.number().default(y.im.Authority.ABSOLUTE),channel:f.z.number()});class Ye extends Ln{constructor(t,r){super(r);h(this,"controller");h(this,"schema",ai);this.controller=t}async cleanup(){this.controller.deleteTelem(this)}async needsControlOf(t){const r=await t.channels.retrieve(this.props.channel),s=[r.key];return r.index!==0&&s.push(r.index),s}async set(t){const{controller:r}=this,{client:s}=r.internal;if(s==null)return;const a=await s.channels.retrieve(this.props.channel),i=[a.key];a.index!==0&&i.push(a.index),t?await this.controller.setAuthority(i,this.props.authority):await this.controller.releaseAuthority(i)}}h(Ye,"TYPE","acquire-channel-control");const yu=e=>({type:Ye.TYPE,props:e,variant:"sink",valueType:"boolean"}),ii=f.z.object({channel:f.z.number()});class ze extends H{constructor(t,r,s){super(s);h(this,"prov");h(this,"valid",!1);h(this,"stopListening");h(this,"controller");h(this,"schema",ii);this.prov=r,this.controller=t}async needsControlOf(){return[]}maybeRevalidate(){var s;if(this.valid)return;const{channel:t}=this.props;(s=this.stopListening)==null||s.call(this);const r=w.Y.filterTransfersByChannelKey(t);this.stopListening=this.prov.onChange(a=>{var i;r(a).length!==0&&((i=this.notify)==null||i.call(this))}),this.valid=!0}async value(){this.maybeRevalidate();const t=y.k.now();if(this.props.channel===0)return{key:this.controller.key,variant:"disabled",message:"No Channel",time:t,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:t,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:t,data:{valid:!0,color:r.subjectColor,authority:r.authority}}}async cleanup(){var t;this.controller.deleteTelem(this),(t=this.stopListening)==null||t.call(this)}}h(ze,"TYPE","controlled-status-source");const wu=e=>({type:ze.TYPE,props:e,variant:"source",valueType:"status"}),oi=f.z.object({statusSource:hr.optional().default(lr),colorSource:ur.optional().default(kn),status:X.specZ,color:l.Color.z.optional()});class vn extends y.Leaf{constructor(){super(...arguments);h(this,"schema",oi);h(this,"stopListeningStatus");h(this,"stopListeningColor")}async afterUpdate(t){var i,o;const{internal:r}=this,{statusSource:s,colorSource:a}=this.state;r.statusSource=await j(t,s,r.statusSource),r.colorSource=await j(t,a,r.colorSource),await this.updateState(),(i=this.stopListeningStatus)==null||i.call(this),this.stopListeningStatus=r.statusSource.onChange(()=>{this.updateState()}),(o=this.stopListeningColor)==null||o.call(this),this.stopListeningColor=r.colorSource.onChange(()=>{this.updateState()})}async afterDelete(){var t,r,s,a;await((r=(t=this.internal.statusSource).cleanup)==null?void 0:r.call(t)),await((a=(s=this.internal.colorSource).cleanup)==null?void 0:a.call(s))}async render(){}async updateState(){const t=await this.internal.colorSource.value(),r=await this.internal.statusSource.value();t.equals(this.state.color)&&r.message===this.state.status.message||this.setState(s=>({...s,color:t,status:r}))}}h(vn,"TYPE","Indicator");const li=f.z.object({needsControlOf:y.Jg.keyZ.array(),states:ti.array()});class Tn extends y.Leaf{constructor(){super(...arguments);h(this,"schema",li)}async afterUpdate(t){var o;const{internal:r}=this;r.stateProv=jt.use(t);const s=this.state.needsControlOf;(o=r.disconnectStateProv)==null||o.call(r);const a=w.Y.filterTransfersByChannelKey(...s),i=r.stateProv.get(s);this.setState(c=>({...c,states:i})),r.disconnectStateProv=r.stateProv.onChange(c=>{if(a(c).length===0)return;const u=r.stateProv.get(s);this.setState(d=>({...d,states:u}))})}async afterDelete(){var r;const{internal:t}=this;(r=t.disconnectStateProv)==null||r.call(t)}async render(){}}h(Tn,"TYPE","Legend");const bu={[xn.TYPE]:xn,[jt.TYPE]:jt,[vn.TYPE]:vn,[bn.TYPE]:bn,[Tn.TYPE]:Tn},xu=f.z.object({region:l.Mo.box,clearOverScan:l.G.crudeZ.optional().default(0),visible:f.z.boolean().optional().default(!0)}),Hn=["upper2d","lower2d"],kt=class kt extends y.Composite{constructor(){super(...arguments);h(this,"schema",kt.stateZ)}async afterUpdate(t){const{internal:r}=this;r.renderCtx=G.Context.use(t),r.handleError=X.useErrorHandler(t),I.control(t,()=>this.requestRender("low")),this.requestRender("high")}async afterDelete(){this.requestRender("high")}async render(){if(this.deleted)return;const t=l.Mo.copy(this.state.region);if(!this.state.visible)return async()=>this.internal.renderCtx.erase(this.state.region,this.state.clearOverScan,...Hn);const{renderCtx:r,handleError:s}=this.internal,a=l.b.XY.translate(l.Mo.topLeft(this.state.region)),i=r.scissor(this.state.region,l.G.construct(this.state.clearOverScan),Hn);try{for(const o of this.children)await o.render({viewportScale:a})}catch(o){s(o,"Failed to render table")}finally{i()}return async()=>{this.internal.renderCtx.erase(t,this.state.clearOverScan)}}requestRender(t){const{renderCtx:r}=this.internal;r.loop.set({key:`${kt.TYPE}-${this.key}`,render:this.render.bind(this),priority:t,canvases:Hn})}};h(kt,"TYPE","Table"),h(kt,"stateZ",xu);let Le=kt;const vu={[Le.TYPE]:Le},ci=f.z.object({trigger:f.z.number(),sink:Yn.optional().default(Pn)});class Sn extends y.Leaf{constructor(){super(...arguments);h(this,"schema",ci)}async afterUpdate(t){var a;const{sink:r}=this.state;(a=this.internal).prevTrigger??(a.prevTrigger=this.state.trigger),this.internal.sink=await $e(t,r,this.internal.sink);const s=this.internal.prevTrigger;this.internal.prevTrigger=this.state.trigger,!(this.state.trigger<=s)&&await this.internal.sink.set(!0)}render(){}async afterDelete(){await this.internalAfterDelete()}async internalAfterDelete(){var r,s;const{internal:t}=this;await((s=(r=t.sink).cleanup)==null?void 0:s.call(r))}}h(Sn,"TYPE","Button");const Tu={[Sn.TYPE]:Sn},_r=f.z.object({position:l.G.xy,zoom:f.z.number(),region:l.Mo.box,clearOverScan:l.G.crudeZ.optional().default(10),visible:f.z.boolean().optional().default(!0)}),qe=["upper2d","lower2d"],Rt=class Rt extends y.Composite{constructor(){super(...arguments);h(this,"schema",Rt.stateZ)}async afterUpdate(t){this.internal.renderCtx=G.Context.use(t),this.internal.addStatus=X.useAdder(t),I.control(t,()=>this.requestRender("low")),this.requestRender("high")}async afterDelete(){this.requestRender("high")}async render(){if(this.deleted)return;const{renderCtx:t,addStatus:r}=this.internal,{zoom:s,position:a}=this.state,i=l.Mo.construct(this.state.region);if(!this.state.visible)return async()=>t.erase(i,this.state.clearOverScan,...qe);const o=t.scissor(i,l.G.ZERO,qe),c=l.b.XY.magnify(l.G.construct(s)).translate(l.Mo.topLeft(i)).translate(a);try{await Promise.all(this.children.map(async d=>await d.render({viewportScale:c})))}catch(d){if(!(d instanceof Error))throw d;r({variant:"error",message:"Failed to render diagram",description:d.message})}finally{o()}const u=l.Mo.copy(this.state.region);return async()=>{this.internal.renderCtx.erase(u,this.state.clearOverScan,...qe)}}requestRender(t){const{renderCtx:r}=this.internal;r.loop.set({key:`${Rt.TYPE}-${this.key}`,render:this.render.bind(this),priority:t,canvases:qe})}};h(Rt,"TYPE","Diagram"),h(Rt,"stateZ",_r);let Wt=Rt;const ui={[Wt.TYPE]:Wt},Su=Object.freeze(Object.defineProperty({__proto__:null,Diagram:Wt,REGISTRY:ui,diagramStateZ:_r},Symbol.toStringTag,{value:"Module"})),hi=f.z.object({enabled:f.z.boolean(),source:cr.optional().default(or)});class Cn extends y.Leaf{constructor(){super(...arguments);h(this,"schema",hi)}async afterUpdate(t){var a;this.internal.addStatus=X.useOptionalAdder(t);const{source:r}=this.state,{internal:s}=this;this.internal.source=await j(t,r,this.internal.source),await this.updateEnabledState(),(a=s.stopListening)==null||a.call(s),s.stopListening=s.source.onChange(()=>{this.updateEnabledState().catch(this.reportError.bind(this))})}reportError(t){this.internal.addStatus({key:this.key,variant:"error",message:`Failed to update Light: ${t.message}`})}async updateEnabledState(){const t=await this.internal.source.value();t!==this.state.enabled&&this.setState(r=>({...r,enabled:t}))}async afterDelete(){await this.internalAfterDelete()}async internalAfterDelete(){var t,r;this.internal.stopListening(),await((r=(t=this.internal.source).cleanup)==null?void 0:r.call(t))}async render(){}}h(Cn,"TYPE","Light");const Cu={[Cn.TYPE]:Cn},di=f.z.object({region:l.Mo.box,wheelPos:f.z.number(),scrolling:f.z.boolean(),empty:f.z.boolean(),visible:f.z.boolean(),telem:sn.optional().default(zs),font:w.levelZ.optional().default("p"),color:l.Color.z.optional().default(l.ZERO),overshoot:l.G.xy.optional().default({x:0,y:0})}),Eu=.98,te="lower2d",Mu={offset:0n,offsetRef:0n,scrollRef:0},ue=class ue extends y.Leaf{constructor(){super(...arguments);h(this,"schema",ue.z);h(this,"values",new w.Lt([]));h(this,"scrollState",Mu)}async afterUpdate(t){var d;const{internal:r}=this;r.render=G.Context.use(t),r.theme=y.use(t),this.state.color.isZero?this.internal.textColor=r.theme.colors.gray.l8:r.textColor=this.state.color,r.telem=await j(t,this.state.telem,r.telem);const s=X.useErrorHandler(t),{scrolling:a,wheelPos:i}=this.state;if(this.state.scrolling&&!this.prevState.scrolling){const p=this.values.alignmentBounds.upper-1n;this.scrollState={offset:p,offsetRef:p,scrollRef:this.state.wheelPos}}else if(a){const{scrollState:p,values:g}=this,b=Math.ceil((i-this.scrollState.scrollRef)/this.lineHeight);p.offset=this.values.traverseAlignment(p.offsetRef,-BigInt(b)),p.offset<g.alignmentBounds.lower+BigInt(this.visibleLineCount)&&(p.offset=g.alignmentBounds.lower,this.setState(v=>({...v,wheelPos:this.prevState.wheelPos}))),p.offset>=g.alignmentBounds.upper&&this.setState(v=>({...v,scrolling:!1}))}const[c,u]=await this.internal.telem.value();this.values=new w.Lt(u),this.checkEmpty(),(d=r.stopListeningTelem)==null||d.call(r),r.stopListeningTelem=r.telem.onChange(()=>{this.internal.telem.value().then(([p,g])=>{this.checkEmpty(),this.values=new w.Lt(g),this.requestRender()}).catch(p=>s(p,"Failed to update log"))}),this.requestRender()}checkEmpty(){const t=this.values.length===0;t!==this.state.empty&&this.setState(r=>({...r,empty:t}))}async afterDelete(){var s;const{telem:t,render:r}=this.internal;await((s=t.cleanup)==null?void 0:s.call(t)),r.erase(l.Mo.construct(this.state.region),l.G.ZERO,te)}async requestRender(){const{render:t}=this.internal;await t.loop.set({key:`${this.type}-${this.key}`,render:async()=>await this.render(),priority:"high",canvases:[te]})}get lineHeight(){return this.internal.theme.typography[this.state.font].size*this.internal.theme.sizes.base}get totalHeight(){return Math.ceil(this.values.length*this.lineHeight)}get visibleLineCount(){return Math.min(Math.floor((l.Mo.height(this.state.region)-12)/this.lineHeight),this.values.length)}async render(){const{render:t}=this.internal,r=this.state.region;if(l.Mo.areaIsZero(r))return;if(!this.state.visible)return async()=>t.erase(r,l.G.ZERO,te);let s;if(!this.state.scrolling)s=this.values.subIterator(this.values.length-this.visibleLineCount,this.values.length);else{const d=this.values.traverseAlignment(this.scrollState.offset,-BigInt(this.visibleLineCount));s=this.values.subAlignmentSpanIterator(d,this.visibleLineCount)}const a=this.state.region,i=t[te],o=new Xt(i,this.internal.theme),c=t.scissor(a,l.G.ZERO,[te]);this.renderElements(o,s),this.renderScrollbar(o),c();const u=l.Mo.copy(this.state.region);return async({canvases:d})=>t.erase(u,this.state.overshoot,...d)}renderScrollbar(t){const r=this.state.region,s=l.Mo.height(r)/this.totalHeight*l.Mo.height(r);if(s>=l.Mo.height(r)*Eu)return;let a=l.Mo.bottom(r)-s;this.state.scrolling&&(a-=Number(this.values.distance(this.values.alignmentBounds.upper,this.scrollState.offset))/this.values.length*l.Mo.height(r)),a<0&&(a=l.Mo.top(r)),t.container({region:l.Mo.construct({x:l.Mo.right(r)-6,y:a},{width:6,height:s}),bordered:!1,backgroundColor:i=>i.colors.gray.l4})}renderElements(t,r){const s=this.state.region;let a=0;for(const i of r){const o=this.values.dataType.equals(w.g$1.JSON)?JSON.stringify(i):i.toString();t.text({text:o,level:this.state.font,shade:9,position:l.G.translate(l.Mo.topLeft(s),{x:6,y:a*this.lineHeight+6}),code:!0}),a++}}};h(ue,"TYPE","log"),h(ue,"z",di);let De=ue;const Pu={[De.TYPE]:De},fi=f.z.object({trigger:f.z.number(),command:f.z.number().optional(),value:f.z.number(),sink:$s.optional().default(ks),source:As.optional().default(Rs)});class En extends y.Leaf{constructor(){super(...arguments);h(this,"schema",fi)}async afterUpdate(t){this.internal.handleError=X.useAsyncErrorHandler(t);const{sink:r,source:s,trigger:a,command:i}=this.state,{internal:o}=this;o.prevTrigger??(o.prevTrigger=a),await o.handleError(async()=>{var u;this.internal.source=await j(t,s,this.internal.source),o.sink=await $e(t,r,o.sink);const c=o.prevTrigger;o.prevTrigger=a,a>c&&i!=null&&await this.internal.sink.set(i),await this.updateValue(),(u=o.stopListening)==null||u.call(o),o.stopListening=o.source.onChange(()=>void o.handleError(async()=>await this.updateValue()))},"Failed to update Setpoint")}async updateValue(){const t=await this.internal.source.value();t!==this.state.value&&this.setState(r=>({...r,value:t,triggered:!1}))}async afterDelete(){var r,s,a,i;const{internal:t}=this;t.stopListening(),await((s=(r=t.source).cleanup)==null?void 0:s.call(r)),await((i=(a=t.sink).cleanup)==null?void 0:i.call(a))}async render(){}}h(En,"TYPE","Setpoint");const ku={[En.TYPE]:En},pi=f.z.object({triggered:f.z.boolean(),enabled:f.z.boolean(),sink:Yn.optional().default(Pn),source:cr.optional().default(or)});class Mn extends y.Leaf{constructor(){super(...arguments);h(this,"schema",pi)}async afterUpdate(t){var u;this.internal.addStatus=X.useOptionalAdder(t);const{sink:r,source:s,triggered:a,enabled:i}=this.state,{triggered:o}=this.prevState,{internal:c}=this;c.source=await j(t,s,c.source),c.sink=await $e(t,r,c.sink),a&&!o&&await c.sink.set(!i),await this.updateEnabledState(),(u=c.stopListening)==null||u.call(c),c.stopListening=c.source.onChange(()=>{this.updateEnabledState().catch(this.reportError.bind(this))})}reportError(t){this.internal.addStatus({key:this.key,variant:"error",message:`Failed to update Toggle: ${t.message}`})}async updateEnabledState(){const t=await this.internal.source.value();t!==this.state.enabled&&this.setState(r=>({...r,enabled:t,triggered:!1}))}async afterDelete(){await this.internalAfterDelete()}async internalAfterDelete(){var t,r,s,a;this.internal.stopListening(),await((r=(t=this.internal.source).cleanup)==null?void 0:r.call(t)),await((a=(s=this.internal.sink).cleanup)==null?void 0:a.call(s))}async render(){}}h(Mn,"TYPE","Toggle");const Ru={[Mn.TYPE]:Mn},Yu=f.z.object({box:l.Mo.box,telem:dr.optional().default(Ys),backgroundTelem:ur.optional().default(kn),level:w.levelZ.optional().default("p"),color:l.Color.z.optional().default(l.ZERO),precision:f.z.number().optional().default(2),minWidth:f.z.number().optional().default(60),width:f.z.number().optional(),notation:Xs.optional().default("standard"),location:l.K.xy.optional().default({x:"left",y:"center"})}),zu=["upper2d","lower2d"],he=class he extends y.Leaf{constructor(){super(...arguments);h(this,"schema",he.z)}async afterUpdate(t){var s,a;const{internal:r}=this;r.renderCtx=G.Context.use(t),r.theme=y.use(t),this.state.color.isZero?this.internal.textColor=r.theme.colors.gray.l8:r.textColor=this.state.color,r.telem=await j(t,this.state.telem,r.telem),(s=r.stopListening)==null||s.call(r),r.stopListening=this.internal.telem.onChange(()=>this.requestRender()),r.backgroundTelem=await j(t,this.state.backgroundTelem,r.backgroundTelem),(a=r.stopListeningBackground)==null||a.call(r),r.stopListeningBackground=this.internal.backgroundTelem.onChange(()=>this.requestRender()),this.internal.requestRender=I.useOptionalRequest(t),this.requestRender()}async afterDelete(){var r,s,a,i,o,c;const{internal:t}=this;(r=t.stopListening)==null||r.call(t),(s=t.stopListeningBackground)==null||s.call(t),await((i=(a=t.telem).cleanup)==null?void 0:i.call(a)),await((c=(o=t.backgroundTelem).cleanup)==null?void 0:c.call(o)),t.requestRender==null?t.renderCtx.erase(l.Mo.construct(this.state.box),l.G.ZERO,...zu):t.requestRender(tt)}requestRender(){const{requestRender:t}=this.internal;t!=null?t(tt):this.render({})}get fontHeight(){const{theme:t}=this.internal;return t.typography[this.state.level].size*t.sizes.base}maybeUpdateWidth(t){const{theme:r}=this.internal,s=t+r.sizes.base+this.fontHeight;this.state.width==null||this.state.width+this.fontHeight*.5<s||this.state.minWidth>s&&this.state.width!==this.state.minWidth?this.setState(a=>({...a,width:Math.max(s,a.minWidth)})):this.state.width-this.fontHeight>s&&this.setState(a=>({...a,width:Math.max(s,a.minWidth)}))}async render({viewportScale:t=l.b.XY.IDENTITY}){const{renderCtx:r,telem:s,backgroundTelem:a}=this.internal,i=l.Mo.construct(this.state.box);if(l.Mo.areaIsZero(i))return;const{location:o}=this.state,c=r.lower2d.applyScale(t);let u=await s.value();const d=ee.fontString(this.internal.theme,{level:this.state.level,code:!0});c.font=d;const p=this.fontHeight,g=u[0]=="-";g&&(u=u.slice(1));const{theme:b}=this.internal,v=ft.dimensions(u,d,c).width+b.sizes.base;this.internal.requestRender==null&&r.erase(l.Mo.construct(this.prevState.box)),this.maybeUpdateWidth(v);const S={...l.G.ZERO};o.x==="left"&&(S.x=6+p*.75),o.x==="center"&&(S.x=l.Mo.width(i)/2-v/2),o.y==="center"&&(S.y=l.Mo.height(i)/2);const C=l.G.translate(l.Mo.topLeft(i),S),Y=c.scissor(i,void 0);let D=!0;if(this.state.backgroundTelem.type!=kn.type){const P=r.lower2d.applyScale(t),L=await a.value();D=L.isZero,L.isZero||(P.fillStyle=L.hex,P.rect(...l.G.couple(l.Mo.topLeft(i)),l.Mo.width(i),l.Mo.height(i)),P.fill(),c.fillStyle=L.pickByContrast(b.colors.gray.l0,b.colors.gray.l9).hex)}D&&(c.fillStyle=this.internal.textColor.hex),c.textBaseline="middle",g&&c.fillText("-",...l.G.couple(l.G.translateX(C,-p*.6))),c.fillText(u,...l.G.couple(C)),Y()}};h(he,"TYPE","value"),h(he,"z",Yu);let Vt=he;const gi={[Vt.TYPE]:Vt},Lu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:gi,Value:Vt},Symbol.toStringTag,{value:"Module"}));exports.AcquireChannelControl=Ye;exports.Annotation=yn;exports.AuthoritySource=ze;exports.BaseProvider=Nt;exports.Button=Sn;exports.Canvas=Na;exports.Canvas$1=ke;exports.Chip=bn;exports.Controller=I;exports.Controller$1=xn;exports.Diagram=Su;exports.Diagram$1=Wt;exports.Indicator=vn;exports.Legend=Tn;exports.Light=Cn;exports.Line=Ce;exports.LinePlot=wn;exports.Log=De;exports.Measure=qt;exports.Provider=Ve;exports.Provider$1=Me;exports.Provider$2=Vn;exports.REASON_DATA=jn;exports.REASON_LAYOUT=tt;exports.REASON_TOOL=st;exports.REGISTRY=pu;exports.REGISTRY$1=vu;exports.REGISTRY$10=cu;exports.REGISTRY$11=Va;exports.REGISTRY$12=tu;exports.REGISTRY$13=Cu;exports.REGISTRY$14=ui;exports.REGISTRY$15=bu;exports.REGISTRY$16=Ka;exports.REGISTRY$17=Tu;exports.REGISTRY$18=Xi;exports.REGISTRY$2=Pu;exports.REGISTRY$3=gi;exports.REGISTRY$4=Wa;exports.REGISTRY$5=Ru;exports.REGISTRY$6=wa;exports.REGISTRY$7=Ps;exports.REGISTRY$8=ku;exports.REGISTRY$9=Ha;exports.Rule=Ft;exports.STATUSES=ei;exports.SetChannelValue=Re;exports.Setpoint=En;exports.StateProvider=jt;exports.Table=Le;exports.Toggle=Mn;exports.Tooltip=Ht;exports.Value=Vt;exports.XAxis=Pe;exports.YAxis=Ee;exports.ZERO_CONTEXT_VALUE=ar;exports.acquireChannelControl=yu;exports.acquireChannelControlPropsZ=ai;exports.aether=au;exports.annotationStateZ=qa;exports.authoritySource=wu;exports.authoritySourceProps=ii;exports.axisStateZ=Ir;exports.buttonStateZ=ci;exports.canvas=gu;exports.canvasStateZ=Gr;exports.channelData=Gs;exports.chipStateZ=Ja;exports.color=Ut;exports.colorGradient=aa;exports.controllerStateZ=ri;exports.coreAxisStateZ=Ue;exports.diagramStateZ=_r;exports.external=fo;exports.indicatorStateZ=oi;exports.interpolateNumber=Se;exports.interpolateRgb=Qn;exports.interpolateString=Ca;exports.legendStateZ=li;exports.lightStateZ=hi;exports.linePlotStateZ=Xa;exports.logState=di;exports.measure=du;exports.measureStateZ=Br;exports.newTickFactory=nr;exports.parseAutoBounds=_a;exports.provider=Li;exports.providerStateZ=ja;exports.providerStateZ$1=pa;exports.providerStateZ$2=Er;exports.regions=pt;exports.rollingAverage=ra;exports.rollingAverageProps=Tr;exports.ruleStateZ=Nr;exports.scaleNumber=oa;exports.setChannelValue=mu;exports.setChannelValuePropsZ=si;exports.setpoint=Js;exports.setpointStateZ=fi;exports.sinkPipeline=Us;exports.sinkPipelinePropsZ=mr;exports.sourcePipeline=Ns;exports.sourcePipelinePropsZ=pr;exports.stateProviderStateZ=Qa;exports.stateZ=Fa;exports.statusZ=ni;exports.streamChannelData=_s;exports.streamChannelValue=Fs;exports.streamChannelValuePropsZ=yr;exports.stringSourceSpecZ=dr;exports.stringifyNumber=na;exports.stringifyNumberProps=vr;exports.sugaredStateZ=ti;exports.tickFactoryProps=Zr;exports.tickType=$r;exports.toggleStateZ=pi;exports.tooltip=hu;exports.tooltipStateZ=Ur;exports.value=Lu;exports.withinBounds=Qs;exports.withinBoundsProps=xr;exports.withinSizeThreshold=Ua;exports.xAxisStateZ=uu;exports.yAxisStateZ=iu;
|