@synnaxlabs/pluto 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Center-DoAxDY5V.js → Center-Dr9Np3yZ.js} +4 -4
- package/dist/Center-sJghNsrv.cjs +1 -0
- package/dist/ContextMenu-DCxj35_j.cjs +1 -0
- package/dist/ContextMenu-GUed89mt.js +96 -0
- package/dist/DateTime-D6J8sRSH.cjs +1 -0
- package/dist/{DateTime-sO15tvDD.js → DateTime-DEbT6v4l.js} +3 -3
- package/dist/{Divider-C5m3c4pv.js → Divider-Bpe7zJig.js} +804 -878
- package/dist/Divider-CloQr3vQ.cjs +22 -0
- package/dist/Dropdown-4Cti-bbQ.js +328 -0
- package/dist/Dropdown-C7Im-qW-.cjs +1 -0
- package/dist/{Haul-DrdXQaTq.js → Haul-Bw54Yj6J.js} +9 -9
- package/dist/{Haul-CoG7Jmz6.cjs → Haul-hv7TLQ7N.cjs} +1 -1
- package/dist/Item-9WCCzBv2.js +110 -0
- package/dist/Item-piF6rFAm.cjs +1 -0
- package/dist/{Keyboard-lwCx7plR.js → Keyboard-634856lT.js} +11 -9
- package/dist/Keyboard-CZFi6COK.cjs +1 -0
- package/dist/{Link-lleSh5eG.js → Link-BEheZd26.js} +2 -2
- package/dist/{Link-BSZ-HrRf.cjs → Link-fkoogssj.cjs} +1 -1
- package/dist/Pack-D6Z6WuZl.cjs +1 -0
- package/dist/Pack-DhZO_rza.js +48 -0
- package/dist/Provider-DNTq46b0.cjs +1 -0
- package/dist/Provider-UAXPVomG.js +452 -0
- package/dist/Space-BtaH1buB.cjs +1 -0
- package/dist/Space-DunsWl06.js +100 -0
- package/dist/Text-3PiRcn8q.js +1246 -0
- package/dist/Text-BTEov6di.cjs +1 -0
- package/dist/Text-CaRMYy3U.js +135 -0
- package/dist/Text-DNspRcte.js +36 -0
- package/dist/Text-DylGoRKw.cjs +4 -0
- package/dist/Text-X_BHez8W.cjs +1 -0
- package/dist/Toggle-BKKBcuTj.cjs +1 -0
- package/dist/Toggle-CZd8L4GI.js +379 -0
- package/dist/{Video-DPIAdJ-g.js → Video-4XQ1qozd.js} +2 -2
- package/dist/{Video-BJudMCoc.cjs → Video-BM9uJLaQ.cjs} +1 -1
- package/dist/WithIcon-CC-RSx6r.js +93 -0
- package/dist/WithIcon-Dn8eAoMj.cjs +1 -0
- package/dist/{aggregator-Dd6-VUPG.cjs → aggregator-74jWxDne.cjs} +1 -1
- package/dist/{aggregator-Bo5bXe2h.js → aggregator-DMvP8cai.js} +6 -6
- package/dist/align.cjs +1 -1
- package/dist/align.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/color.cjs +1 -1
- package/dist/color.js +1 -1
- package/dist/css-Cj2UCGXB.cjs +1 -0
- package/dist/{css-rxwBYwM1.js → css-Dyt-QnKy.js} +467 -462
- package/dist/css.cjs +1 -1
- package/dist/css.js +2 -2
- package/dist/{deep-ChDJVfub.js → deep-Cvb4bVYY.js} +1 -1
- package/dist/{deep-BjupBYvk.cjs → deep-ICSlPm58.cjs} +1 -1
- package/dist/{dimensions-Bt1NqWz6.js → dimensions-Cc0z-IDd.js} +1 -1
- package/dist/dimensions-Djqdrqi0.cjs +1 -0
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{eraser-BsY8Ilvt.cjs → eraser-9-LOWZvk.cjs} +3 -3
- package/dist/{eraser-B8b1ORvV.js → eraser-BjtEI-1I.js} +10 -10
- package/dist/ether.cjs +1 -1
- package/dist/ether.js +32 -31
- package/dist/{external-DhX0dZoF.cjs → external-B-Cao-ae.cjs} +1 -1
- package/dist/external-B-UNCzPY.cjs +1 -0
- package/dist/external-B18FBGpk.cjs +1 -0
- package/dist/{external-DNUUgDyq.js → external-BCUxzSzk.js} +33 -32
- package/dist/{external-cFoSk0PK.js → external-BFOrrNde.js} +3 -3
- package/dist/external-BG1mV1W8.cjs +1 -0
- package/dist/{external-CGxC3uw1.js → external-BIwhkj24.js} +456 -454
- package/dist/external-BWeX0nyq.js +399 -0
- package/dist/{external-C8i1PCpN.js → external-BY2AjzRx.js} +15 -15
- package/dist/external-BbmpRAH3.cjs +1 -0
- package/dist/{external-DK_wU08V.js → external-BbrPEGJw.js} +2 -2
- package/dist/external-BlUic3Vz.js +29 -0
- package/dist/{external-D18IGHXh.js → external-C0ZRdtdj.js} +21 -20
- package/dist/{external-GUQ0NMxY.js → external-CH66YjTZ.js} +19 -18
- package/dist/{external-Bxg2-RDn.js → external-CVGidiDt.js} +2 -2
- package/dist/{external-BmbDPHD3.cjs → external-CnxSp7fm.cjs} +1 -1
- package/dist/{external-CSKJSiQJ.cjs → external-D2vS6j9c.cjs} +2 -2
- package/dist/external-DHmQqAfL.js +435 -0
- package/dist/{external-BtHnb3Sp.js → external-DNF8yEwq.js} +5485 -5443
- package/dist/{external-AOOzgEKd.cjs → external-DRGfSFQT.cjs} +1 -1
- package/dist/{external-CRbERCqd.cjs → external-DVajt6X6.cjs} +1 -1
- package/dist/external-DX4m-5qT.cjs +1 -0
- package/dist/external-DlywBW-S.cjs +1 -0
- package/dist/{external-CKvBpFrE.cjs → external-kZf9CjYn.cjs} +35 -35
- package/dist/{font-BBeEt9tk.js → font-BXKdXsr5.js} +2 -2
- package/dist/{font-DshP3AG2.cjs → font-DCE90lco.cjs} +1 -1
- package/dist/fontString-BBvH9Ypy.cjs +1 -0
- package/dist/fontString-C7Q9Laqk.js +28 -0
- package/dist/header.cjs +1 -1
- package/dist/header.js +1 -1
- package/dist/hooks-BQJQyGWV.js +293 -0
- package/dist/hooks-ClXSlga9.cjs +1 -0
- package/dist/{state-w46WTrh-.js → index-CSKP1UPN.js} +385 -441
- package/dist/index-Ch3utIMa.cjs +15 -0
- package/dist/index.cjs +7 -7
- package/dist/index.js +8088 -7071
- 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-BsPH6eua.js → provider-CH0eoGfz.js} +2143 -2085
- package/dist/provider-D054LCpB.cjs +53 -0
- package/dist/src/aether/main.d.ts +48 -0
- package/dist/src/aether/main.d.ts.map +1 -1
- package/dist/src/align/Center.d.ts +2 -2
- package/dist/src/align/Center.d.ts.map +1 -1
- package/dist/src/align/Pack.d.ts +3 -3
- package/dist/src/align/Pack.d.ts.map +1 -1
- package/dist/src/align/Space.d.ts +25 -10
- package/dist/src/align/Space.d.ts.map +1 -1
- package/dist/src/align/Stack.d.ts +7 -0
- package/dist/src/align/Stack.d.ts.map +1 -0
- package/dist/src/align/external.d.ts +1 -0
- package/dist/src/align/external.d.ts.map +1 -1
- package/dist/src/breadcrumb/Breadcrumb.d.ts +2 -2
- package/dist/src/breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/src/button/Button.d.ts +2 -4
- package/dist/src/button/Button.d.ts.map +1 -1
- package/dist/src/button/Icon.d.ts +4 -1
- package/dist/src/button/Icon.d.ts.map +1 -1
- package/dist/src/button/Toggle.d.ts +0 -1
- package/dist/src/button/Toggle.d.ts.map +1 -1
- package/dist/src/caret/Animated.d.ts +3 -2
- package/dist/src/caret/Animated.d.ts.map +1 -1
- package/dist/src/channel/LinePlot.d.ts +1 -1
- package/dist/src/channel/LinePlot.d.ts.map +1 -1
- package/dist/src/channel/Select.d.ts +3 -3
- package/dist/src/channel/Select.d.ts.map +1 -1
- package/dist/src/color/Picker.d.ts.map +1 -1
- package/dist/src/css/css.d.ts +2 -1
- package/dist/src/css/css.d.ts.map +1 -1
- package/dist/src/divider/Divider.d.ts +4 -4
- package/dist/src/divider/Divider.d.ts.map +1 -1
- package/dist/src/dropdown/Dropdown.d.ts +2 -1
- package/dist/src/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/src/generic/Generic.d.ts +4 -5
- package/dist/src/generic/Generic.d.ts.map +1 -1
- package/dist/src/hardware/device/Select.d.ts.map +1 -1
- package/dist/src/icon/Icon.d.ts.map +1 -1
- package/dist/src/input/DateTime.d.ts.map +1 -1
- package/dist/src/input/Item.d.ts +1 -1
- package/dist/src/input/Item.d.ts.map +1 -1
- package/dist/src/input/Text.d.ts +1 -1
- package/dist/src/input/Text.d.ts.map +1 -1
- package/dist/src/input/types.d.ts +0 -1
- package/dist/src/input/types.d.ts.map +1 -1
- package/dist/src/list/Column.d.ts +3 -3
- package/dist/src/list/Column.d.ts.map +1 -1
- package/dist/src/list/Core.d.ts +1 -1
- package/dist/src/list/Core.d.ts.map +1 -1
- package/dist/src/list/Hover.d.ts +3 -2
- package/dist/src/list/Hover.d.ts.map +1 -1
- package/dist/src/list/Item.d.ts +1 -1
- package/dist/src/list/Item.d.ts.map +1 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/menu/ContextMenu.d.ts +5 -3
- package/dist/src/menu/ContextMenu.d.ts.map +1 -1
- package/dist/src/menu/Item.d.ts.map +1 -1
- package/dist/src/menu/Menu.d.ts +3 -2
- package/dist/src/menu/Menu.d.ts.map +1 -1
- package/dist/src/modal/Modal.d.ts +7 -3
- package/dist/src/modal/Modal.d.ts.map +1 -1
- package/dist/src/mosaic/Mosaic.d.ts +5 -3
- package/dist/src/mosaic/Mosaic.d.ts.map +1 -1
- package/dist/src/mosaic/tree.d.ts +4 -3
- package/dist/src/mosaic/tree.d.ts.map +1 -1
- package/dist/src/mosaic/types.d.ts +6 -6
- package/dist/src/nav/Bar.d.ts +2 -1
- package/dist/src/nav/Bar.d.ts.map +1 -1
- package/dist/src/nav/Drawer.d.ts +3 -2
- package/dist/src/nav/Drawer.d.ts.map +1 -1
- package/dist/src/notation/Select.d.ts +2 -3
- package/dist/src/notation/Select.d.ts.map +1 -1
- package/dist/src/notation/index.d.ts +1 -1
- package/dist/src/notation/index.d.ts.map +1 -1
- package/dist/src/os/Controls/Windows.d.ts +1 -1
- package/dist/src/os/Controls/Windows.d.ts.map +1 -1
- package/dist/src/os/Controls/types.d.ts +2 -0
- package/dist/src/os/Controls/types.d.ts.map +1 -1
- package/dist/src/ranger/TimeRangeChip.d.ts +2 -1
- package/dist/src/ranger/TimeRangeChip.d.ts.map +1 -1
- package/dist/src/resize/Core.d.ts +5 -4
- package/dist/src/resize/Core.d.ts.map +1 -1
- package/dist/src/resize/Multiple.d.ts.map +1 -1
- package/dist/src/resize/Single.d.ts.map +1 -1
- package/dist/src/select/Button.d.ts.map +1 -1
- package/dist/src/select/List.d.ts.map +1 -1
- package/dist/src/select/Multiple.d.ts.map +1 -1
- package/dist/src/status/Notification.d.ts.map +1 -1
- package/dist/src/status/aether/aggregator.d.ts +8 -8
- package/dist/src/status/aether/aggregator.d.ts.map +1 -1
- package/dist/src/status/aether/types.d.ts +2 -2
- package/dist/src/status/aether/types.d.ts.map +1 -1
- package/dist/src/status/colors.d.ts +1 -1
- package/dist/src/status/colors.d.ts.map +1 -1
- package/dist/src/synnax/aether/provider.d.ts.map +1 -1
- package/dist/src/table/aether/Table.d.ts +3 -3
- package/dist/src/table/aether/Table.d.ts.map +1 -1
- package/dist/src/table/cells/Cells.d.ts +2 -2
- package/dist/src/table/cells/Cells.d.ts.map +1 -1
- package/dist/src/tabs/Selector.d.ts +5 -2
- package/dist/src/tabs/Selector.d.ts.map +1 -1
- package/dist/src/tabs/Tabs.d.ts +2 -3
- package/dist/src/tabs/Tabs.d.ts.map +1 -1
- package/dist/src/tabs/types.d.ts +4 -4
- package/dist/src/tag/Tag.d.ts.map +1 -1
- package/dist/src/telem/aether/remote.d.ts.map +1 -1
- package/dist/src/telem/aether/transformers.d.ts +6 -6
- package/dist/src/telem/aether/transformers.d.ts.map +1 -1
- package/dist/src/telem/control/aether/chip.d.ts +8 -8
- package/dist/src/telem/control/aether/chip.d.ts.map +1 -1
- package/dist/src/telem/control/aether/indicator.d.ts +8 -8
- 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/text/Editable.d.ts.map +1 -1
- package/dist/src/text/Keyboard.d.ts +1 -1
- package/dist/src/text/Keyboard.d.ts.map +1 -1
- package/dist/src/text/WithIcon.d.ts +3 -2
- package/dist/src/text/WithIcon.d.ts.map +1 -1
- package/dist/src/text/core/types.d.ts.map +1 -1
- package/dist/src/theming/Provider.d.ts.map +1 -1
- package/dist/src/theming/aether/provider.d.ts +650 -530
- package/dist/src/theming/aether/provider.d.ts.map +1 -1
- package/dist/src/theming/core/fontString.d.ts.map +1 -1
- package/dist/src/theming/core/theme.d.ts +229 -187
- package/dist/src/theming/core/theme.d.ts.map +1 -1
- package/dist/src/theming/css.d.ts +1 -1
- package/dist/src/theming/css.d.ts.map +1 -1
- package/dist/src/theming/static/generate.d.ts +2 -0
- package/dist/src/theming/static/generate.d.ts.map +1 -0
- package/dist/src/tooltip/Dialog.d.ts.map +1 -1
- package/dist/src/tree/Tree.d.ts +1 -1
- package/dist/src/tree/Tree.d.ts.map +1 -1
- package/dist/src/tree/core.d.ts +2 -2
- package/dist/src/tree/core.d.ts.map +1 -1
- package/dist/src/triggers/Provider.d.ts.map +1 -1
- package/dist/src/triggers/Text.d.ts.map +1 -1
- package/dist/src/triggers/hooks.d.ts +1 -0
- package/dist/src/triggers/hooks.d.ts.map +1 -1
- package/dist/src/util/component.d.ts +2 -2
- package/dist/src/util/component.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/Diagram.d.ts.map +1 -1
- package/dist/src/vis/diagram/aether/Diagram.d.ts +3 -3
- package/dist/src/vis/diagram/aether/Diagram.d.ts.map +1 -1
- package/dist/src/vis/diagram/aether/types.d.ts +8 -8
- package/dist/src/vis/diagram/aether/types.d.ts.map +1 -1
- package/dist/src/vis/draw2d/index.d.ts +16 -1
- package/dist/src/vis/draw2d/index.d.ts.map +1 -1
- package/dist/src/vis/eraser/aether/eraser.d.ts.map +1 -1
- package/dist/src/vis/eraser/use.d.ts +2 -2
- package/dist/src/vis/eraser/use.d.ts.map +1 -1
- package/dist/src/vis/legend/Container.d.ts +6 -6
- package/dist/src/vis/legend/Container.d.ts.map +1 -1
- package/dist/src/vis/legend/Simple.d.ts +14 -3
- package/dist/src/vis/legend/Simple.d.ts.map +1 -1
- package/dist/src/vis/line/aether/line.d.ts +4 -1
- package/dist/src/vis/line/aether/line.d.ts.map +1 -1
- package/dist/src/vis/lineplot/Legend.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/XAxis.d.ts +6 -6
- package/dist/src/vis/lineplot/aether/YAxis.d.ts +6 -6
- package/dist/src/vis/lineplot/aether/axis.d.ts +3 -3
- package/dist/src/vis/lineplot/aether/axis.d.ts.map +1 -1
- package/dist/src/vis/lineplot/range/Provider.d.ts.map +1 -1
- package/dist/src/vis/lineplot/range/aether/annotation.d.ts +6 -6
- 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/Log.d.ts.map +1 -1
- package/dist/src/vis/log/aether/Log.d.ts +12 -12
- 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/rule/Rule.d.ts.map +1 -1
- package/dist/src/vis/schematic/Forms.d.ts +7 -1
- package/dist/src/vis/schematic/Forms.d.ts.map +1 -1
- package/dist/src/vis/schematic/Symbols.d.ts +54 -5
- package/dist/src/vis/schematic/Symbols.d.ts.map +1 -1
- package/dist/src/vis/schematic/primitives/Primitives.d.ts +41 -1
- package/dist/src/vis/schematic/primitives/Primitives.d.ts.map +1 -1
- package/dist/src/vis/schematic/registry.d.ts +1 -1
- package/dist/src/vis/schematic/registry.d.ts.map +1 -1
- package/dist/src/vis/value/Form.d.ts.map +1 -1
- package/dist/src/vis/value/aether/value.d.ts +6 -6
- package/dist/src/vis/value/aether/value.d.ts.map +1 -1
- package/dist/src/vis/value/use.d.ts +2 -2
- package/dist/src/vis/value/use.d.ts.map +1 -1
- package/dist/state-Bd_8X2jl.cjs +1 -0
- package/dist/state-CjGemC7S.js +88 -0
- 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/theme.css +1600 -0
- package/dist/theming.cjs +1 -1
- package/dist/theming.js +2 -2
- package/dist/{transformColorsToHex-B2Bui-Wf.cjs → transformColorsToHex-DE7uEs1w.cjs} +1 -1
- package/dist/{transformColorsToHex-B6dG2LA6.js → transformColorsToHex-UBrryWh5.js} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/triggers.cjs +1 -1
- package/dist/triggers.js +1 -1
- package/dist/{units-CvIf5nF_.cjs → units-DjoHPrqM.cjs} +1 -1
- package/dist/{units-D7qkgH-s.js → units-MBd0L3ff.js} +1 -1
- package/dist/useClickOutside-4k9PAT_i.cjs +1 -0
- package/dist/{useClickOutside-vpv_GiBw.js → useClickOutside-BYjsXGgb.js} +28 -28
- package/dist/{useDebouncedCallback-CVLx7N1s.cjs → useDebouncedCallback-BBsAgC9k.cjs} +1 -1
- package/dist/{useDebouncedCallback-DDLuEZa8.js → useDebouncedCallback-Dg4BDGP-.js} +1 -1
- package/dist/{useMemoCompare-B-Y9Ft2w.js → useMemoCompare-BEDaTIXL.js} +2 -2
- package/dist/useMemoCompare-DORTZbzY.cjs +1 -0
- package/dist/useVirtualCursorDragWebKit-BSafZVD_.cjs +1 -0
- package/dist/{useVirtualCursorDragWebKit-DFC-XFfl.js → useVirtualCursorDragWebKit-BixysrXI.js} +28 -27
- package/dist/{value-C9u1Km9t.js → value-CudL8z5e.js} +1891 -1716
- package/dist/value-DT0qJqgQ.cjs +57 -0
- package/dist/video.cjs +1 -1
- package/dist/video.js +1 -1
- package/package.json +22 -20
- package/dist/Center-BjxFDxgi.cjs +0 -1
- package/dist/ContextMenu-BWGS1vXl.cjs +0 -1
- package/dist/ContextMenu-DX6j7Wwi.js +0 -101
- package/dist/DateTime-DUuYjZr8.cjs +0 -1
- package/dist/Divider-MIbyu5ZH.cjs +0 -31
- package/dist/Dropdown-DurKTABg.cjs +0 -1
- package/dist/Dropdown-FSmdakic.js +0 -261
- package/dist/Item-CZAsnOoO.js +0 -108
- package/dist/Item-Dj7cQJ8t.cjs +0 -1
- package/dist/Keyboard-D4FRdVej.cjs +0 -1
- package/dist/Pack-CzZzxA2R.cjs +0 -1
- package/dist/Pack-Dlj4dZzQ.js +0 -46
- package/dist/Provider-CvqYCQ-c.js +0 -436
- package/dist/Provider-DdzMK2ly.cjs +0 -1
- package/dist/Space-DBmhvGQL.js +0 -76
- package/dist/Space-NNqCWFbg.cjs +0 -1
- package/dist/Text-BBAivtcq.js +0 -124
- package/dist/Text-BpgvgYm9.cjs +0 -1
- package/dist/Text-D1GKnp9s.cjs +0 -1
- package/dist/Text-DKpfyuCy.js +0 -1199
- package/dist/Text-Kq93-h4G.cjs +0 -4
- package/dist/Text-g6btwQ6E.js +0 -32
- package/dist/Toggle-BzORI5sE.cjs +0 -1
- package/dist/Toggle-DZMcFiiI.js +0 -356
- package/dist/WithIcon-C6COgbZq.js +0 -92
- package/dist/WithIcon-CJvuPkSy.cjs +0 -1
- package/dist/css-CU7tous7.cjs +0 -1
- package/dist/dimensions-IEzi7AOM.cjs +0 -1
- package/dist/external-BCMlN9UI.cjs +0 -1
- package/dist/external-BJulb-Hm.cjs +0 -1
- package/dist/external-BQtPGUNg.cjs +0 -1
- package/dist/external-BTGfIw_K.cjs +0 -1
- package/dist/external-CqR7Yk0z.js +0 -418
- package/dist/external-D3IjVlS7.cjs +0 -1
- package/dist/external-DNC1e6Hi.js +0 -343
- package/dist/external-Dmr3e50U.js +0 -15
- package/dist/external-DrwngojV.cjs +0 -1
- package/dist/fontString-CWcKYJNb.cjs +0 -1
- package/dist/fontString-DKZUOJ6f.js +0 -12
- package/dist/hooks-BKLtEDxx.cjs +0 -1
- package/dist/hooks-CwSxEEAh.js +0 -293
- package/dist/jsx-runtime-CYK1ROHF.js +0 -445
- package/dist/jsx-runtime-UYeBbnYT.cjs +0 -31
- package/dist/provider-BaehOXWw.cjs +0 -53
- package/dist/src/notation/external.d.ts +0 -3
- package/dist/src/notation/external.d.ts.map +0 -1
- package/dist/src/notation/notation.d.ts +0 -33
- package/dist/src/notation/notation.d.ts.map +0 -1
- package/dist/src/notation/notation.spec.d.ts +0 -2
- package/dist/src/notation/notation.spec.d.ts.map +0 -1
- package/dist/state-BKyv_jWZ.cjs +0 -15
- package/dist/useClickOutside-EJHWO4Q9.cjs +0 -1
- package/dist/useMemoCompare-ONEAVO05.cjs +0 -1
- package/dist/useVirtualCursorDragWebKit-BLtwRQY7.cjs +0 -1
- package/dist/value-C_xE_NRc.cjs +0 -57
- /package/dist/{Pack-BbwDtaE6.cjs → Stack-BbwDtaE6.cjs} +0 -0
- /package/dist/{Pack-D50qN0Vu.js → Stack-D50qN0Vu.js} +0 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";var Pi=Object.defineProperty;var ki=(e,n,t)=>n in e?Pi(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var h=(e,n,t)=>ki(e,typeof n!="symbol"?n+"":n,t);const g=require("./index-Ch3utIMa.cjs"),p=require("zod"),w=require("./provider-D054LCpB.cjs"),V=require("./aggregator-74jWxDne.cjs"),l=require("./css-Cj2UCGXB.cjs"),ee=require("./fontString-BBvH9Ypy.cjs"),ft=require("./dimensions-Djqdrqi0.cjs"),B=require("./eraser-9-LOWZvk.cjs"),ks=require("./debounce-heEWeOqL.cjs"),Rs=require("./state-Bd_8X2jl.cjs"),sr=require("./deep-ICSlPm58.cjs"),$s=require("./toArray-DRKOku1s.cjs");var Ri=Object.defineProperty,$i=(e,n,t)=>n in e?Ri(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,He=(e,n,t)=>$i(e,typeof n!="symbol"?n+"":n,t);class Mi{constructor(n,t){He(this,"handlers"),He(this,"transform"),He(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){He(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 ar=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:Yi,Observer:Mi},Symbol.toStringTag,{value:"Module"})),tt="layout",Hn="data",st="tool";var K;let I=(K=class{constructor(n){h(this,"f");this.f=n}static control(n,t){n.set(K.CONTEXT_KEY,new K(t),!1)}static useRequest(n){return n.get(K.CONTEXT_KEY).f}static useOptionalRequest(n){var t;return((t=n.getOptional(K.CONTEXT_KEY))==null?void 0:t.f)??null}static requestRender(n,t){this.useRequest(n)(t)}},h(K,"CONTEXT_KEY","pluto-vis-renderer"),K);const Oi=p.z.object({props:w.Ip.nullable(),state:w.$p.connectivity.connectionStateZ.nullable()}),ir={synnax:null,state:w.$p.connectivity.DEFAULT};var lt;let We=(lt=class extends w.Composite{constructor(){super(...arguments);h(this,"schema",lt.stateZ)}async afterUpdate(t){var r;if(t.setPreviously(or)||An(t,ir),this.state.props==null){this.internal.synnax!=null&&(this.setState(s=>({...s,state:w.$p.connectivity.DEFAULT})),(r=this.internal.synnax)==null||r.close(),this.internal.synnax=null),An(t,this.internal);return}this.prevState.props!=null&&sr.I.equal(this.state.props,this.prevState.props)&&this.internal.synnax!=null||(this.internal.synnax=new w.$p(this.state.props),this.internal.synnax.connectivity.onChange(s=>this.setState(a=>({...a,state:s}))),An(t,this.internal))}},h(lt,"TYPE","synnax.Provider"),h(lt,"stateZ",Oi),lt);const or="pluto-client-context",An=(e,n)=>e.set(or,n),Le=e=>e.get(or).synnax,Ms={[We.TYPE]:We},zi=Object.freeze(Object.defineProperty({__proto__:null,Provider:We,REGISTRY:Ms,ZERO_CONTEXT_VALUE:ir,use:Le},Symbol.toStringTag,{value:"Module"}));class ct extends ar.Observer{async cleanup(){}}class Ve extends ct{async set(){return await Promise.resolve()}}h(Ve,"TYPE","noop-boolean-sink");const kn={type:Ve.TYPE,props:{},variant:"sink",valueType:"boolean"};class Xe extends ct{async set(){return await Promise.resolve()}}h(Xe,"TYPE","noop-numeric-sink");const Ys={type:Xe.TYPE,props:{},variant:"sink",valueType:"number"};class Ke extends ct{async value(){return await Promise.resolve(!1)}}h(Ke,"TYPE","noop-boolean-source");const lr={type:Ke.TYPE,props:{},variant:"source",valueType:"boolean"};class Qe extends ct{async value(){return 0}}h(Qe,"TYPE","noop-numeric-source");const Os={type:Qe.TYPE,props:{},variant:"source",valueType:"number"};class tn extends ct{async value(){return""}}h(tn,"TYPE","noop-string-source");const zs={type:tn.TYPE,props:{},variant:"source",valueType:"string"};class en extends ct{async value(){return{key:"noop",variant:"disabled",message:"unknown",time:g.m.now()}}}h(en,"TYPE","noop-status-source");const cr={type:en.TYPE,props:{},variant:"source",valueType:"status"};class nn extends ct{async value(){return l.ZERO}}h(nn,"TYPE","noop-color-source");const Rn={type:nn.TYPE,props:{},variant:"source",valueType:"color"};class rn extends ct{async value(){return[l.G.ZERO,[]]}}h(rn,"TYPE","noop-series");const Ls={type:rn.TYPE,props:{},variant:"source",valueType:"series"},Li={[Ve.TYPE]:Ve,[Xe.TYPE]:Xe,[Ke.TYPE]:Ke,[Qe.TYPE]:Qe,[en.TYPE]:en,[nn.TYPE]:nn,[tn.TYPE]:tn,[rn.TYPE]:rn};class Ds{constructor(){h(this,"type","noop")}create(n){const t=Li[n.type];return t==null?null:new t}}const Di=p.z.instanceof(ArrayBuffer),De=p.z.object({type:p.z.string(),variant:p.z.enum(["source","sink","source-transformer","sink-transformer"]),valueType:p.z.string(),props:p.z.any(),transfer:p.z.array(Di).optional()}),ut=De.extend({variant:p.z.literal("source")}),$n=De.extend({variant:p.z.literal("sink")}),As=De.extend({variant:p.z.literal("source-transformer")}),Zs=De.extend({variant:p.z.literal("sink-transformer")}),sn=ut.extend({valueType:p.z.literal("series")}),ur=ut.extend({valueType:p.z.literal("boolean")}),Mn=$n.extend({valueType:p.z.literal("boolean")}),Ai=Zs.extend({valueType:p.z.literal("boolean")}),Zi=As.extend({valueType:p.z.literal("boolean")}),Is=ut.extend({valueType:p.z.literal("number")}),Ns=$n.extend({valueType:p.z.literal("number")}),hr=ut.extend({valueType:p.z.literal("color")}),dr=ut.extend({valueType:p.z.literal("status")}),fr=ut.extend({valueType:p.z.literal("string")});class Yn extends ar.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 w.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 w.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 G extends Yn{}class On extends Yn{}class wt extends G{constructor(){super(...arguments);h(this,"sources",{})}get source(){const[t]=Object.values(this.sources);if(t==null)throw new w.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 w.L(`[UnarySourceTransformer] - expected subclass to define transform method, but none was found.
|
|
4
|
+
Make sure to define a method 'transform' on the class.`)}}class Us extends G{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 w.L(`[MultiSourceTransformer] - expected subclass to define transform method, but none was found.
|
|
5
|
+
Make sure to define a method 'transform' on the class.`)}}class _s extends Yn{constructor(){super(...arguments);h(this,"sinks",{})}get sink(){const[t]=Object.values(this.sinks);if(t==null)throw new w.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 w.L(`[UnarySinkTransformer] - expected subclass to define transform method, but none was found.
|
|
6
|
+
Make sure to define a method 'transform' on the class.`)}}const pr=p.z.object({from:p.z.string(),to:p.z.string()}),gr=p.z.object({connections:p.z.array(pr),outlet:p.z.string(),segments:p.z.record(ut)});class mr{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 G{constructor(t,r){super(t);h(this,"schema",gr);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 w.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 Bs=(e,n)=>({variant:"source",props:n,type:de.TYPE,valueType:e}),yr=p.z.object({connections:p.z.array(pr),inlet:p.z.string(),segments:p.z.record($n)});class fe extends On{constructor(t,r){super(t);h(this,"schema",yr);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 w.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 Fs=(e,n)=>({variant:"sink",props:n,type:fe.TYPE,valueType:e}),wr=p.z.object({channel:p.z.number().or(p.z.string())});class pe extends G{constructor(t,r){super(r);h(this,"client");h(this,"removeStreamHandler",null);h(this,"channelKey",0);h(this,"schema",wr);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(g.w$1(this.props.channel))return 0;if(this.channelKey===0){const t=await br(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 br=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(w.nm.isCalculated(r)){const s=await w.nm.resolveCalculatedIndex(e.retrieveChannel.bind(e),r);if(s==null)throw new w.L("Cannot resolve calculated index");return r=await e.retrieveChannel(s),r==null?null:{key:r.key,dataType:g.g$1.TIMESTAMP,virtual:!1}}if(r.virtual)throw new w.L("Cannot plot data from virtual channels");return{key:r.index,dataType:g.g$1.TIMESTAMP,virtual:!1}},Ii=p.z.object({timeRange:g.U.z,channel:p.z.number().or(p.z.string()),useIndexOfChannel:p.z.boolean().optional().default(!1)});class ge extends G{constructor(t,r){super(r);h(this,"client");h(this,"data",[]);h(this,"valid",!1);h(this,"schema",Ii);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.G.ZERO,[]];const a=await br(this.client,r,s);if(a==null)return[l.G.ZERO,[]];this.valid||await this.readFixed(a.key);let i=l.G.max(this.data.map(o=>o.bounds));return a.dataType.equals(g.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 Ni=p.z.object({channel:p.z.number().or(p.z.string()),useIndexOfChannel:p.z.boolean().optional().default(!1),timeSpan:g.w.z,keepFor:g.w.z.optional()});class me extends G{constructor(t,r){super(r);h(this,"client");h(this,"data",[]);h(this,"stopStreaming");h(this,"valid",!1);h(this,"schema",Ni);this.client=t}async value(){const{channel:t,useIndexOfChannel:r,timeSpan:s}=this.props;if(t===0)return[l.G.ZERO,[]];const a=g.m.now(),i=await br(this.client,t,r);if(i==null)return[l.G.ZERO,[]];if(this.valid||await this.read(i),i.dataType.isVariable)return[l.G.ZERO,this.data];let o=l.G.max(this.data.filter(c=>c.timeRange.end.after(a.sub(s))).map(c=>c.bounds));return i.dataType.equals(g.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=g.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=g.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 Ui={[ge.TYPE]:ge,[me.TYPE]:me,[pe.TYPE]:pe};class qs{constructor(n){h(this,"type","remote");h(this,"client");this.client=n}create(n){const t=Ui[n.type];return t==null?null:new t(this.client,n.props)}}const Gs=e=>({type:ge.TYPE,props:e,variant:"source",valueType:"series"}),js=e=>({type:me.TYPE,props:e,variant:"source",valueType:"series"}),Hs=e=>({type:pe.TYPE,props:e,variant:"source",valueType:"number"});class Js{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 ve.TYPE:return new ve(n.props);default:return null}}}const vr=p.z.object({data:p.z.array(g.Lt),offsets:p.z.array(p.z.number()).optional().default([])});class an extends G{constructor(t){super(t);h(this,"data");h(this,"schema",vr);this.data=this.props.data.map((r,s)=>new g.k({data:r,dataType:g.g$1.FLOAT32,timeRange:g.U.ZERO,sampleOffset:this.props.offsets[s]??0}))}async value(){return[l.G.max(this.data.map(r=>r.bounds)),this.data]}}h(an,"TYPE","static-series");const Ws=vr.extend({rate:g.$.z,yOffset:p.z.number().optional().default(0),scroll:p.z.number().optional().default(0),startPosition:p.z.number().optional().default(0),scrollBounds:p.z.boolean().optional().default(!1)});class ye extends G{constructor(t){super(t);h(this,"schema",Ws);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 g.k({data:r,dataType:g.g$1.FLOAT32,timeRange:g.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.G.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 Vs=p.z.number();class we extends G{constructor(){super(...arguments);h(this,"schema",Vs)}async value(){return this.props}}h(we,"TYPE","static-numeric");const Xs=p.z.string();class be extends G{constructor(){super(...arguments);h(this,"schema",Xs)}async value(){return this.props}}h(be,"TYPE","static-string");const Ks=l.crudeZ;class ve extends G{constructor(){super(...arguments);h(this,"schema",Ks)}async value(){return new l.Color(this.props)}}h(ve,"TYPE","static-color");const _i=e=>({type:an.TYPE,props:e,variant:"source",valueType:"series"}),Bi=e=>({type:ye.TYPE,props:e,variant:"source",valueType:"series"}),Fi=e=>({type:we.TYPE,props:e,variant:"source",valueType:"number"}),qi=e=>({type:be.TYPE,props:e,variant:"source",valueType:"string"}),Gi=e=>({type:ve.TYPE,props:e,variant:"source",valueType:"color"});class Qs{constructor(){h(this,"type","transformer")}create(n){switch(n.type){case Yt.TYPE:return new Yt(n.props);case Ot.TYPE:return new Ot(n.props);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 At.TYPE:return new At(n.props);case Zt.TYPE:return new Zt(n.props);case It.TYPE:return new It(n.props)}return null}}const ji=p.z.object({truthy:p.z.number().optional().default(1),falsy:p.z.number().optional().default(0)}),ta=e=>({props:e,type:Yt.TYPE,variant:"sink",valueType:"boolean"}),ne=class ne extends _s{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 Yt=ne;const xr=p.z.object({trueBound:l.G.bounds}),ea=e=>({props:e,type:Ot.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.G.contains(this.props.trueBound,t)!==this.curr;return this.curr=l.G.contains(this.props.trueBound,t),r}transform(t){return this.curr=l.G.contains(this.props.trueBound,t),this.curr}};h(re,"TYPE","boolean-source"),h(re,"propsZ",xr);let Ot=re;const na=p.z.object({}),se=class se extends Us{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",na);let zt=se;const Hi=e=>({props:e,type:zt.TYPE,variant:"source",valueType:"boolean"}),ra=p.z.object({trueVariant:V.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",ra);let Lt=ae;const Ji=e=>({props:e,type:Lt.TYPE,variant:"source",valueType:"boolean"}),Tr=p.z.object({precision:p.z.number().optional().default(2),prefix:p.z.string().optional().default(""),suffix:p.z.string().optional().default(""),notation:g.Te.notationZ.optional().default("standard")}),ie=class ie extends wt{constructor(){super(...arguments);h(this,"schema",ie.propsZ)}transform(t){const{precision:r,prefix:s,suffix:a,notation:i}=this.props;return`${s}${g.Te.stringifyNumber(t,r,i)}${a}`}};h(ie,"TYPE","stringify-number"),h(ie,"propsZ",Tr);let Dt=ie;const sa=e=>({props:e,type:Dt.TYPE,variant:"source",valueType:"string"}),Sr=p.z.object({windowSize:p.z.number().optional().default(5)});class At extends wt{constructor(){super(...arguments);h(this,"schema",Sr);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(At,"TYPE","rolling-average"),h(At,"propsZ",na);const aa=e=>({props:e,type:At.TYPE,variant:"source",valueType:"number"}),ia=p.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",ia);let Zt=oe;const oa=e=>({props:e,type:Zt.TYPE,variant:"source",valueType:"color"}),la=p.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",la);let It=le;const ca=e=>({props:e,type:It.TYPE,variant:"source",valueType:"number"});class Cr{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 ua=e=>{const n=[new Qs,new Js,new Ds],t=new Cr(n);return e!=null&&t.add(new qs(e)),t.add(new mr(t)),t};let ha=class da{constructor(n,t){h(this,"factory");h(this,"key");h(this,"parent");this.factory=n,this.key=g.Ct.create(),this.parent=t}child(n,t){const r=new Cr([...this.factory.factories,...$s.A(n)]);return r.add(new mr(r)),new da(r,t)}create(n){const t=this.factory.create(n);if(t==null)throw new w.Ze(`Telemetry service could not find a source for type ${n.type}`);return t}};const Er="pluto-telem-context",zn=e=>e.get(Er),fa=(e,n)=>e.set(Er,n),pa=(e,n,t)=>{var a;const r=zn(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(Er,s),s};class ga{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||!sr.I.equal(this.spec,t)}}class jr extends ga{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 Hr extends ga{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 H=async(e,n,t)=>{var s;const r=zn(e);if(t instanceof jr){if(!t.shouldUpdate(r,n))return t;await((s=t.cleanup)==null?void 0:s.call(t))}return new jr(r.create(n),r,n)},Ae=async(e,n,t)=>{var s;const r=zn(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)},ma=p.z.object({include:p.z.string().array().optional(),exclude:p.z.string().array().optional(),level:p.z.enum(w.g.LOG_LEVELS).optional().default("info")}),Jn="alamos-provider";var jn;let Wn=(jn=class extends w.Composite{constructor(){super(...arguments);h(this,"schema",ma)}async afterUpdate(t){if(t.getOptional(Jn)!=null)return;const s=[],{include:a,exclude:i,level:o}=this.state;(a!=null||i!=null)&&s.push(w.g.logLevelKeyFiler({include:a,exclude:i})),o!=null&&s.push(w.g.logThresholdFilter(o)),s.length===0&&s.push(()=>!1),this.internal.ins=new w.g.Instrumentation({key:"aether",logger:new w.g.Logger({filters:s})}),t.set(Jn,this.internal.ins)}},h(jn,"TYPE","alamos.Provider"),jn);const Ze=(e,n)=>{const t=e.get(Jn);if(t==null)throw new Error("No instrumentation provider");return n==null?t:t.child(n)},Wi={[Wn.TYPE]:Wn},ya=(e,n)=>e.dataType.isVariable||e.dataType.equals(g.g$1.UINT8)?e:(n==null&&e.dataType.equals(g.g$1.TIMESTAMP)&&(n=BigInt(e.data[0])),e.convert(g.g$1.FLOAT32,n)),Vi=e=>e.isVariable||e.equals(g.g$1.UINT8)?e:g.g$1.FLOAT32,wa=()=>({purgedSeries:0,purgedBytes:g.C.bytes(0)}),ba={instrumentation:w.g.NOOP,staleEntryThreshold:g.w.seconds(20)};class Xi{constructor(n){h(this,"data",[]);h(this,"props");this.props={...ba,...n}}write(n){n.length!==0&&(n.forEach(t=>this.writeOne(ya(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?g.U.ZERO:new g.U(t[o-1].timeRange.end,i.timeRange.start)).filter(i=>!i.isZero&&i.isValid),s=new g.U(n.start,t[0].timeRange.start),a=new g.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=wa(),r=this.data.filter(s=>{const a=s.data.refCount>0||g.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.G.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:g.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.G.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 Ki=100,Qi=1e6,to=1e4,eo=100,no=40;class ro{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",()=>g.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(g.g$1.TIMESTAMP);return g.k.alloc({capacity:s?n*no:n,dataType:Vi(this.props.dataType),timeRange:r.range(g.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=ya(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<eo)return to;const t=g.be.roundToNearestMagnitude(this.avgRate*n.seconds);return Math.round(Math.max(Math.min(t,Qi),Ki))}close(){this.curr=null}}class so{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??w.g.NOOP,this.static=new Xi(n),this.dynamic=new ro({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:g.C.bytes(0)}):this.static.gc()}close(){this.closed=!0,this.dynamic.close(),this.static.close()}}const ao=w.S.seconds(60);class io{constructor(n){h(this,"props");h(this,"cache",new Map);h(this,"gcInterval");this.props={dynamicBufferSize:ao,gcInterval:w.S.seconds(30),...ba,...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 so({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 w.Ze(`cache entry for ${n} not found`)}gc(){const{instrumentation:{L:n}}=this.props;n.info("starting garbage collection");const t=wa();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 w.H.ZERO;const n=this.data[0].timeRange,t=this.data[this.data.length-1].timeRange;return new w.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 oo{constructor(n){h(this,"props");h(this,"debouncedRead");h(this,"guarded",{mu:new w.Mutex,requests:new Map});this.props={instrumentation:w.g.NOOP,batchDebounce:g.w.milliseconds(50),...n},this.debouncedRead=ks.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 f=s.get(d),{series:m,gaps:b}=f.read(n);b.length===0&&(o[d]=new on(f.channel,m)),b.forEach(T=>{const E=i.get(T.toString());E==null?i.set(T.toString(),[T,new Set([d])]):i.set(T.toString(),[T,new Set([...E[1],d])])})}if(i.size===0)return r.debug("read satisfied by cache",()=>({tr:n.toPrettyString(),channels:t,responses:Zn(Object.values(o)),time:g.w.milliseconds(performance.now()-a).toString()})),o;r.debug("read cache miss",()=>({tr:n.toPrettyString(),channels:t,toFetch:Array.from(i.values()).map(([d,f])=>({timeRange:d.toPrettyString(),channels:f})),responses:Zn(Object.values(o))}));const{mu:c,requests:u}=this.guarded;for(const[,[d,f]]of i)await new Promise((m,b)=>{c.runExclusive(async()=>{u.set([d,f],{resolve:m,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:g.w.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,f=i.find(([m])=>m.start.span(u.start).lessThan(g.w.milliseconds(5))&&m.end.span(u.end).lessThan(g.w.milliseconds(5)));f==null?i.push([u,d]):f[1]=new Set([...f[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(f=>{const m=r.get(f),b=d.get(f);m.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 lo{constructor(n){h(this,"props");h(this,"mu",new w.Mutex);h(this,"listeners",new Map);h(this,"streamerRunLoop",null);h(this,"streamer",null);h(this,"closed",!1);this.props={instrumentation:w.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(g.F.primitiveArrays(s,((i=this.streamer)==null?void 0:i.keys)??[])===g.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 co{constructor(){h(this,"key",g.Ct.create())}async retrieveChannel(){return null}async read(){return{}}async stream(){return async()=>{}}async close(){}}class uo{constructor({instrumentation:n,core:t}){h(this,"key",g.Ct.create());h(this,"ins");h(this,"cache");h(this,"reader");h(this,"streamer");h(this,"channelRetriever");this.ins=n??w.g.NOOP,this.channelRetriever=t.channels.createDebouncedBatchRetriever(10),this.cache=new io({channelRetriever:this.channelRetriever,instrumentation:this.ins.child("cache")}),this.reader=new oo({cache:this.cache,readRemote:async(r,s)=>await t.read(r,s),instrumentation:this.ins.child("reader")}),this.streamer=new lo({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 w.ae(`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 Pr=p.z.object({}),ce=class ce extends w.Composite{constructor(){super(...arguments);h(this,"schema",ce.stateZ);h(this,"prevClient",null)}async afterUpdate(t){const r=Le(t),s=Ze(t,"telem");if(this.internal.instrumentation=s.child("provider"),!(r!==this.prevClient))return;this.prevClient=r;const i=r==null?new co:new uo({core:r,instrumentation:s}),o=ua(i),c=new ha(o);fa(t,c)}};h(ce,"TYPE","telem.Provider"),h(ce,"stateZ",Pr);let Nt=ce;const va={[Nt.TYPE]:Nt},ho=Object.freeze(Object.defineProperty({__proto__:null,AbstractSink:On,AbstractSource:G,Base:Yn,BaseProvider:Nt,BooleanStatus:Lt,ChannelData:ge,ColorGradient:Zt,CompoundTelemFactory:Cr,Context:ha,FixedColorSource:ve,FixedNumber:we,FixedString:be,IterativeSeries:ye,Mean:zt,MultiSourceTransformer:Us,NoopFactory:Ds,PipelineFactory:mr,REGISTRY:va,RemoteFactory:qs,RollingAverage:At,ScaleNumber:It,SetPoint:Yt,SinkPipeline:fe,SourcePipeline:de,StaticFactory:Js,StreamChannelData:me,StreamChannelValue:pe,StringifyNumber:Dt,TransformerFactory:Qs,UnarySinkTransformer:_s,UnarySourceTransformer:wt,WithinBounds:Ot,booleanSinkSpecZ:Mn,booleanSinkTransformerSpecZ:Ai,booleanSourceSpecZ:ur,booleanSourceTransformerSpecZ:Zi,booleanStatus:Ji,booleanStatusProps:ra,channelData:Gs,colorGradient:oa,colorGradientProps:ia,colorSourceSpecZ:hr,connectionZ:pr,createFactory:ua,fixedArray:_i,fixedColor:Gi,fixedColorSourcePropsZ:Ks,fixedNumber:Fi,fixedNumberPropsZ:Vs,fixedSeriesPropsZ:vr,fixedString:qi,fixedStringPropsZ:Xs,iterativeArray:Bi,iterativeSeriesPropsZ:Ws,mean:Hi,noopBooleanSinkSpec:kn,noopBooleanSourceSpec:lr,noopColorSourceSpec:Rn,noopNumericSinkSpec:Ys,noopNumericSourceSpec:Os,noopSeriesSourceSpec:Ls,noopStatusSourceSpec:cr,noopStringSourceSpec:zs,numberSinkSpecZ:Ns,numberSourceSpecZ:Is,providerStateZ:Pr,rollingAverage:aa,rollingAverageProps:Sr,scaleNumber:ca,scaleNumberProps:la,seriesSourceSpecZ:sn,setContext:fa,setpoint:ta,sinkPipeline:Fs,sinkPipelinePropsZ:yr,sinkSpecZ:$n,sinkTransformerSpecZ:Zs,sourcePipeline:Bs,sourcePipelinePropsZ:gr,sourceSpecZ:ut,sourceTransformerSpecZ:As,specZ:De,statusSourceSpecZ:dr,streamChannelData:js,streamChannelValue:Hs,streamChannelValuePropsZ:wr,stringSourceSpecZ:fr,stringifyNumber:sa,stringifyNumberProps:Tr,useChildContext:pa,useContext:zn,useSink:Ae,useSource:H,withinBounds:ea,withinBoundsProps:xr},Symbol.toStringTag,{value:"Module"})),xa=p.z.object({key:p.z.string(),size:p.z.number(),order:p.z.number(),loc:l.K.outer});p.z.record(xa);const pt=(e,n)=>Object.values(n).filter(({loc:t})=>t===e).sort((t,r)=>r.order-t.order),fo=(e,n,t)=>{const r=n[e];if(r==null)return l.J.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:f})=>f===e),u=a.slice(0,c).reduce((f,{size:m})=>f+m,0),d=o.reduce((f,{size:m})=>f+m,0);switch(s){case"left":return l.J.translate(l.$t.topLeft(t),[u,d]);case"right":return l.J.translate(l.$t.topRight(t),[u-r.size,d]);case"top":return l.J.translate(l.$t.topLeft(t),[d,u]);default:return l.J.translate(l.$t.bottomLeft(t),[d,-u-r.size])}},po=(e,n)=>{const t=pt("left",e),r=pt("right",e),s=pt("top",e),a=pt("bottom",e),i=t.reduce((d,{size:f})=>d+f,0),o=r.reduce((d,{size:f})=>d+f,0),c=s.reduce((d,{size:f})=>d+f,0),u=a.reduce((d,{size:f})=>d+f,0);return l.$t.construct(l.J.translate(l.$t.topLeft(n),{x:i,y:c}),l.$t.width(n)-i-o,l.$t.height(n)-c-u)};function Je(e,n){return e==null||n==null?NaN:e<n?-1:e>n?1:e>=n?0:NaN}function go(e,n){return e==null||n==null?NaN:n<e?-1:n>e?1:n>=e?0:NaN}function kr(e){let n,t,r;e.length!==2?(n=Je,t=(o,c)=>Je(e(o),c),r=(o,c)=>e(o)-c):(n=e===Je||e===go?e:mo,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 f=u+d>>>1;t(o[f],c)<0?u=f+1:d=f}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 f=u+d>>>1;t(o[f],c)<=0?u=f+1:d=f}while(u<d)}return u}function i(o,c,u=0,d=o.length){const f=s(o,c,u,d-1);return f>u&&r(o[f-1],c)>-r(o[f],c)?f-1:f}return{left:s,center:i,right:a}}function mo(){return 0}function yo(e){return e===null?NaN:+e}const wo=kr(Je),bo=wo.right;kr(yo).center;const vo=Math.sqrt(50),xo=Math.sqrt(10),To=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>=xo?5:a>=To?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 So(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 Vn(e,n,t){return n=+n,e=+e,t=+t,ln(e,n,t)[2]}function Xn(e,n,t){n=+n,e=+e,t=+t;const r=n<e,s=r?Vn(n,e,t):Vn(e,n,t);return(r?-1:1)*(s<0?1/-s:s)}function Ta(e,n){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(n).domain(e);break}return this}function Rr(e,n,t){e.prototype=n.prototype=t,t.constructor=e}function Sa(e,n){var t=Object.create(e.prototype);for(var r in n)t[r]=n[r];return t}function Ie(){}var xe=.7,cn=1/xe,Mt="\\s*([+-]?\\d+)\\s*",Te="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Q="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Co=/^#([0-9a-f]{3,8})$/,Eo=new RegExp(`^rgb\\(${Mt},${Mt},${Mt}\\)$`),Po=new RegExp(`^rgb\\(${Q},${Q},${Q}\\)$`),ko=new RegExp(`^rgba\\(${Mt},${Mt},${Mt},${Te}\\)$`),Ro=new RegExp(`^rgba\\(${Q},${Q},${Q},${Te}\\)$`),$o=new RegExp(`^hsl\\(${Te},${Q},${Q}\\)$`),Mo=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};Rr(Ie,Ut,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Wr,formatHex:Wr,formatHex8:Yo,formatHsl:Oo,formatRgb:Vr,toString:Vr});function Wr(){return this.rgb().formatHex()}function Yo(){return this.rgb().formatHex8()}function Oo(){return Ca(this).formatHsl()}function Vr(){return this.rgb().formatRgb()}function Ut(e){var n,t;return e=(e+"").trim().toLowerCase(),(n=Co.exec(e))?(t=n[1].length,n=parseInt(n[1],16),t===6?Xr(n):t===3?new _(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):t===8?Fe(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):t===4?Fe(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=Eo.exec(e))?new _(n[1],n[2],n[3],1):(n=Po.exec(e))?new _(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=ko.exec(e))?Fe(n[1],n[2],n[3],n[4]):(n=Ro.exec(e))?Fe(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=$o.exec(e))?ts(n[1],n[2]/100,n[3]/100,1):(n=Mo.exec(e))?ts(n[1],n[2]/100,n[3]/100,n[4]):Jr.hasOwnProperty(e)?Xr(Jr[e]):e==="transparent"?new _(NaN,NaN,NaN,0):null}function Xr(e){return new _(e>>16&255,e>>8&255,e&255,1)}function Fe(e,n,t,r){return r<=0&&(e=n=t=NaN),new _(e,n,t,r)}function zo(e){return e instanceof Ie||(e=Ut(e)),e?(e=e.rgb(),new _(e.r,e.g,e.b,e.opacity)):new _}function Kn(e,n,t,r){return arguments.length===1?zo(e):new _(e,n,t,r??1)}function _(e,n,t,r){this.r=+e,this.g=+n,this.b=+t,this.opacity=+r}Rr(_,Kn,Sa(Ie,{brighter(e){return e=e==null?cn:Math.pow(cn,e),new _(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?xe:Math.pow(xe,e),new _(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new _(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:Lo,formatRgb:Qr,toString:Qr}));function Kr(){return`#${gt(this.r)}${gt(this.g)}${gt(this.b)}`}function Lo(){return`#${gt(this.r)}${gt(this.g)}${gt(this.b)}${gt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Qr(){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 ts(e,n,t,r){return r<=0?e=n=t=NaN:t<=0||t>=1?e=n=NaN:n<=0&&(e=NaN),new W(e,n,t,r)}function Ca(e){if(e instanceof W)return new W(e.h,e.s,e.l,e.opacity);if(e instanceof Ie||(e=Ut(e)),!e)return new W;if(e instanceof W)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 W(i,o,c,e.opacity)}function Do(e,n,t,r){return arguments.length===1?Ca(e):new W(e,n,t,r??1)}function W(e,n,t,r){this.h=+e,this.s=+n,this.l=+t,this.opacity=+r}Rr(W,Do,Sa(Ie,{brighter(e){return e=e==null?cn:Math.pow(cn,e),new W(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?xe:Math.pow(xe,e),new W(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 _(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 W(es(this.h),qe(this.s),qe(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("}${es(this.h)}, ${qe(this.s)*100}%, ${qe(this.l)*100}%${e===1?")":`, ${e})`}`}}));function es(e){return e=(e||0)%360,e<0?e+360:e}function qe(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 $r=e=>()=>e;function Ao(e,n){return function(t){return e+t*n}}function Zo(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 Io(e){return(e=+e)==1?Ea:function(n,t){return t-n?Zo(n,t,e):$r(isNaN(n)?t:n)}}function Ea(e,n){var t=n-e;return t?Ao(e,t):$r(isNaN(e)?n:e)}const Qn=function e(n){var t=Io(n);function r(s,a){var i=t((s=Kn(s)).r,(a=Kn(a)).r),o=t(s.g,a.g),c=t(s.b,a.b),u=Ea(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 No(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 Uo(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function _o(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]=Mr(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 Bo(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]=Mr(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 qo(e){return function(){return e}}function Go(e){return function(n){return e(n)+""}}function Pa(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]?Go(c[0].x):qo(n):(n=c.length,function(u){for(var d=0,f;d<n;++d)o[(f=c[d]).i]=f.x(u);return o.join("")})}function Mr(e,n){var t=typeof n,r;return n==null||t==="boolean"?$r(n):(t==="number"?Se:t==="string"?(r=Ut(n))?(n=r,Qn):Pa:n instanceof Ut?Qn:n instanceof Date?Bo:Uo(n)?No:Array.isArray(n)?_o: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 Ho(e){return function(){return e}}function Jo(e){return+e}var ns=[0,1];function Et(e){return e}function er(e,n){return(n-=e=+e)?function(t){return(t-e)/n}:Ho(isNaN(n)?NaN:.5)}function Wo(e,n){var t;return e>n&&(t=e,e=n,n=t),function(r){return Math.max(e,Math.min(n,r))}}function Vo(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 Xo(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=bo(e,o,1,r)-1;return a[c](s[c](o))}}function ka(e,n){return n.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Ko(){var e=ns,n=ns,t=Mr,r,s,a,i=Et,o,c,u;function d(){var m=Math.min(e.length,n.length);return i!==Et&&(i=Wo(e[0],e[m-1])),o=m>2?Xo:Vo,c=u=null,f}function f(m){return m==null||isNaN(m=+m)?a:(c||(c=o(e.map(r),n,t)))(r(i(m)))}return f.invert=function(m){return i(s((u||(u=o(n,e.map(r),Se)))(m)))},f.domain=function(m){return arguments.length?(e=Array.from(m,Jo),d()):e.slice()},f.range=function(m){return arguments.length?(n=Array.from(m),d()):n.slice()},f.rangeRound=function(m){return n=Array.from(m),t=jo,d()},f.clamp=function(m){return arguments.length?(i=m?!0:Et,d()):i!==Et},f.interpolate=function(m){return arguments.length?(t=m,d()):t},f.unknown=function(m){return arguments.length?(a=m,f):a},function(m,b){return r=m,s=b,d()}}function Ra(){return Ko()(Et,Et)}function Qo(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 _t(e){return e=hn(Math.abs(e)),e?e[1]:NaN}function tl(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 el(e){return function(n){return n.replace(/[0-9]/g,function(t){return e[+t]})}}var nl=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function dn(e){if(!(n=nl.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 rl(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 $a;function sl(e,n){var t=hn(e,n);if(!t)return e+"";var r=t[0],s=t[1],a=s-($a=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 rs(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 ss={"%":(e,n)=>(e*100).toFixed(n),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Qo,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)=>rs(e*100,n),r:rs,s:sl,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function as(e){return e}var is=Array.prototype.map,os=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function al(e){var n=e.grouping===void 0||e.thousands===void 0?as:tl(is.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?as:el(is.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(f){f=dn(f);var m=f.fill,b=f.align,T=f.sign,E=f.symbol,x=f.zero,S=f.width,Y=f.comma,P=f.precision,O=f.trim,L=f.type;L==="n"?(Y=!0,L="g"):ss[L]||(P===void 0&&(P=12),O=!0,L="g"),(x||m==="0"&&b==="=")&&(x=!0,m="0",b="=");var C=E==="$"?t:E==="#"&&/[boxX]/.test(L)?"0"+L.toLowerCase():"",Z=E==="$"?r:/[%p]/.test(L)?i:"",ht=ss[L],Dn=/[defgprs%]/.test(L);P=P===void 0?6:/[gprs]/.test(L)?Math.max(1,Math.min(21,P)):Math.max(0,Math.min(20,P));function _e(R){var et=C,N=Z,ot,Be,xt;if(L==="c")N=ht(R)+N,R="";else{R=+R;var Tt=R<0||1/R<0;if(R=isNaN(R)?c:ht(Math.abs(R),P),O&&(R=rl(R)),Tt&&+R==0&&T!=="+"&&(Tt=!1),et=(Tt?T==="("?T:o:T==="-"||T==="("?"":T)+et,N=(L==="s"?os[8+$a/3]:"")+N+(Tt&&T==="("?")":""),Dn){for(ot=-1,Be=R.length;++ot<Be;)if(xt=R.charCodeAt(ot),48>xt||xt>57){N=(xt===46?s+R.slice(ot+1):R.slice(ot))+N,R=R.slice(0,ot);break}}}Y&&!x&&(R=n(R,1/0));var St=et.length+R.length+N.length,J=St<S?new Array(S-St+1).join(m):"";switch(Y&&x&&(R=n(J+R,J.length?S-N.length:1/0),J=""),b){case"<":R=et+R+N+J;break;case"=":R=et+J+R+N;break;case"^":R=J.slice(0,St=J.length>>1)+et+R+N+J.slice(St);break;default:R=J+et+R+N;break}return a(R)}return _e.toString=function(){return f+""},_e}function d(f,m){var b=u((f=dn(f),f.type="f",f)),T=Math.max(-8,Math.min(8,Math.floor(_t(m)/3)))*3,E=Math.pow(10,-T),x=os[8+T/3];return function(S){return b(E*S)+x}}return{format:u,formatPrefix:d}}var Ge,Ma,Ya;il({thousands:",",grouping:[3],currency:["$",""]});function il(e){return Ge=al(e),Ma=Ge.format,Ya=Ge.formatPrefix,Ge}function ol(e){return Math.max(0,-_t(Math.abs(e)))}function ll(e,n){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(_t(n)/3)))*3-_t(Math.abs(e)))}function cl(e,n){return e=Math.abs(e),n=Math.abs(n)-e,Math.max(0,_t(n)-_t(e))+1}function ul(e,n,t,r){var s=Xn(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=ll(s,i))&&(r.precision=a),Ya(r,i)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(a=cl(s,Math.max(Math.abs(e),Math.abs(n))))&&(r.precision=a-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(a=ol(s))&&(r.precision=a-(r.type==="%")*2);break}}return Ma(r)}function hl(e){var n=e.domain;return e.ticks=function(t){var r=n();return So(r[0],r[r.length-1],t??10)},e.tickFormat=function(t,r){var s=n();return ul(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=Vn(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 Oa(){var e=Ra();return e.copy=function(){return ka(e,Oa())},Ta.apply(e,arguments),hl(e)}function dl(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,_n=new Date;function D(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=>D(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),_n.setTime(+i),e(Un),e(_n),Math.floor(t(Un,_n))),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=D(()=>{},(e,n)=>{e.setTime(+e+n)},(e,n)=>n-e);fn.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?D(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,j=nt*60,rt=j*60,at=rt*24,Or=at*7,ls=at*30,Bn=at*365,Pt=D(e=>{e.setTime(e-e.getMilliseconds())},(e,n)=>{e.setTime(+e+n*nt)},(e,n)=>(n-e)/nt,e=>e.getUTCSeconds());Pt.range;const zr=D(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*nt)},(e,n)=>{e.setTime(+e+n*j)},(e,n)=>(n-e)/j,e=>e.getMinutes());zr.range;const fl=D(e=>{e.setUTCSeconds(0,0)},(e,n)=>{e.setTime(+e+n*j)},(e,n)=>(n-e)/j,e=>e.getUTCMinutes());fl.range;const Lr=D(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*nt-e.getMinutes()*j)},(e,n)=>{e.setTime(+e+n*rt)},(e,n)=>(n-e)/rt,e=>e.getHours());Lr.range;const pl=D(e=>{e.setUTCMinutes(0,0,0)},(e,n)=>{e.setTime(+e+n*rt)},(e,n)=>(n-e)/rt,e=>e.getUTCHours());pl.range;const Ne=D(e=>e.setHours(0,0,0,0),(e,n)=>e.setDate(e.getDate()+n),(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*j)/at,e=>e.getDate()-1);Ne.range;const Dr=D(e=>{e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n)},(e,n)=>(n-e)/at,e=>e.getUTCDate()-1);Dr.range;const gl=D(e=>{e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n)},(e,n)=>(n-e)/at,e=>Math.floor(e/at));gl.range;function bt(e){return D(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())*j)/Or)}const Ln=bt(0),pn=bt(1),ml=bt(2),yl=bt(3),Bt=bt(4),wl=bt(5),bl=bt(6);Ln.range;pn.range;ml.range;yl.range;Bt.range;wl.range;bl.range;function vt(e){return D(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)/Or)}const za=vt(0),gn=vt(1),vl=vt(2),xl=vt(3),Ft=vt(4),Tl=vt(5),Sl=vt(6);za.range;gn.range;vl.range;xl.range;Ft.range;Tl.range;Sl.range;const Ar=D(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 Cl=D(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());Cl.range;const it=D(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:D(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=D(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:D(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 El(e,n,t,r,s,a){const i=[[Pt,1,nt],[Pt,5,5*nt],[Pt,15,15*nt],[Pt,30,30*nt],[a,1,j],[a,5,5*j],[a,15,15*j],[a,30,30*j],[s,1,rt],[s,3,3*rt],[s,6,6*rt],[s,12,12*rt],[r,1,at],[r,2,2*at],[t,1,Or],[n,1,ls],[n,3,3*ls],[e,1,Bn]];function o(u,d,f){const m=d<u;m&&([u,d]=[d,u]);const b=f&&typeof f.range=="function"?f:c(u,d,f),T=b?b.range(u,+d+1):[];return m?T.reverse():T}function c(u,d,f){const m=Math.abs(d-u)/f,b=kr(([,,x])=>x).right(i,m);if(b===i.length)return e.every(Xn(u/Bn,d/Bn,f));if(b===0)return fn.every(Math.max(Xn(u,d,f),1));const[T,E]=i[m/i[b-1][2]<i[b][2]/m?b-1:b];return T.every(E)}return[o,c]}const[Pl,kl]=El(it,Ar,Ln,Ne,Lr,zr);function Fn(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 qn(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 Xt(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=Kt(s),d=Qt(s),f=Kt(a),m=Qt(a),b=Kt(i),T=Qt(i),E=Kt(o),x=Qt(o),S=Kt(c),Y=Qt(c),P={a:Tt,A:St,b:J,B:yi,c:null,d:ps,e:ps,f:Xl,g:oc,G:cc,H:Jl,I:Wl,j:Vl,L:La,m:Kl,M:Ql,p:wi,q:bi,Q:ys,s:ws,S:tc,u:ec,U:nc,V:rc,w:sc,W:ac,x:null,X:null,y:ic,Y:lc,Z:uc,"%":ms},O={a:vi,A:xi,b:Ti,B:Si,c:null,d:gs,e:gs,f:pc,g:Cc,G:Pc,H:hc,I:dc,j:fc,L:Aa,m:gc,M:mc,p:Ci,q:Ei,Q:ys,s:ws,S:yc,u:wc,U:bc,V:vc,w:xc,W:Tc,x:null,X:null,y:Sc,Y:Ec,Z:kc,"%":ms},L={a:_e,A:R,b:et,B:N,c:ot,d:ds,e:ds,f:ql,g:hs,G:us,H:fs,I:fs,j:Ul,L:Fl,m:Nl,M:_l,p:Dn,q:Il,Q:jl,s:Hl,S:Bl,u:zl,U:Ll,V:Dl,w:Ol,W:Al,x:Be,X:xt,y:hs,Y:us,Z:Zl,"%":Gl};P.x=C(t,P),P.X=C(r,P),P.c=C(n,P),O.x=C(t,O),O.X=C(r,O),O.c=C(n,O);function C(v,k){return function($){var y=[],U=-1,z=0,F=v.length,q,dt,Gr;for($ instanceof Date||($=new Date(+$));++U<F;)v.charCodeAt(U)===37&&(y.push(v.slice(z,U)),(dt=cs[q=v.charAt(++U)])!=null?q=v.charAt(++U):dt=q==="e"?" ":"0",(Gr=k[q])&&(q=Gr($,dt)),y.push(q),z=U+1);return y.push(v.slice(z,U)),y.join("")}}function Z(v,k){return function($){var y=Xt(1900,void 0,1),U=ht(y,v,$+="",0),z,F;if(U!=$.length)return null;if("Q"in y)return new Date(y.Q);if("s"in y)return new Date(y.s*1e3+("L"in y?y.L:0));if(k&&!("Z"in y)&&(y.Z=0),"p"in y&&(y.H=y.H%12+y.p*12),y.m===void 0&&(y.m="q"in y?y.q:0),"V"in y){if(y.V<1||y.V>53)return null;"w"in y||(y.w=1),"Z"in y?(z=qn(Xt(y.y,0,1)),F=z.getUTCDay(),z=F>4||F===0?gn.ceil(z):gn(z),z=Dr.offset(z,(y.V-1)*7),y.y=z.getUTCFullYear(),y.m=z.getUTCMonth(),y.d=z.getUTCDate()+(y.w+6)%7):(z=Fn(Xt(y.y,0,1)),F=z.getDay(),z=F>4||F===0?pn.ceil(z):pn(z),z=Ne.offset(z,(y.V-1)*7),y.y=z.getFullYear(),y.m=z.getMonth(),y.d=z.getDate()+(y.w+6)%7)}else("W"in y||"U"in y)&&("w"in y||(y.w="u"in y?y.u%7:"W"in y?1:0),F="Z"in y?qn(Xt(y.y,0,1)).getUTCDay():Fn(Xt(y.y,0,1)).getDay(),y.m=0,y.d="W"in y?(y.w+6)%7+y.W*7-(F+5)%7:y.w+y.U*7-(F+6)%7);return"Z"in y?(y.H+=y.Z/100|0,y.M+=y.Z%100,qn(y)):Fn(y)}}function ht(v,k,$,y){for(var U=0,z=k.length,F=$.length,q,dt;U<z;){if(y>=F)return-1;if(q=k.charCodeAt(U++),q===37){if(q=k.charAt(U++),dt=L[q in cs?k.charAt(U++):q],!dt||(y=dt(v,$,y))<0)return-1}else if(q!=$.charCodeAt(y++))return-1}return y}function Dn(v,k,$){var y=u.exec(k.slice($));return y?(v.p=d.get(y[0].toLowerCase()),$+y[0].length):-1}function _e(v,k,$){var y=b.exec(k.slice($));return y?(v.w=T.get(y[0].toLowerCase()),$+y[0].length):-1}function R(v,k,$){var y=f.exec(k.slice($));return y?(v.w=m.get(y[0].toLowerCase()),$+y[0].length):-1}function et(v,k,$){var y=S.exec(k.slice($));return y?(v.m=Y.get(y[0].toLowerCase()),$+y[0].length):-1}function N(v,k,$){var y=E.exec(k.slice($));return y?(v.m=x.get(y[0].toLowerCase()),$+y[0].length):-1}function ot(v,k,$){return ht(v,n,k,$)}function Be(v,k,$){return ht(v,t,k,$)}function xt(v,k,$){return ht(v,r,k,$)}function Tt(v){return i[v.getDay()]}function St(v){return a[v.getDay()]}function J(v){return c[v.getMonth()]}function yi(v){return o[v.getMonth()]}function wi(v){return s[+(v.getHours()>=12)]}function bi(v){return 1+~~(v.getMonth()/3)}function vi(v){return i[v.getUTCDay()]}function xi(v){return a[v.getUTCDay()]}function Ti(v){return c[v.getUTCMonth()]}function Si(v){return o[v.getUTCMonth()]}function Ci(v){return s[+(v.getUTCHours()>=12)]}function Ei(v){return 1+~~(v.getUTCMonth()/3)}return{format:function(v){var k=C(v+="",P);return k.toString=function(){return v},k},parse:function(v){var k=Z(v+="",!1);return k.toString=function(){return v},k},utcFormat:function(v){var k=C(v+="",O);return k.toString=function(){return v},k},utcParse:function(v){var k=Z(v+="",!0);return k.toString=function(){return v},k}}}var cs={"-":"",_:" ",0:"0"},A=/^\s*\d+/,$l=/^%/,Ml=/[\\^$*+?|[\]().{}]/g;function M(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 Yl(e){return e.replace(Ml,"\\$&")}function Kt(e){return new RegExp("^(?:"+e.map(Yl).join("|")+")","i")}function Qt(e){return new Map(e.map((n,t)=>[n.toLowerCase(),t]))}function Ol(e,n,t){var r=A.exec(n.slice(t,t+1));return r?(e.w=+r[0],t+r[0].length):-1}function zl(e,n,t){var r=A.exec(n.slice(t,t+1));return r?(e.u=+r[0],t+r[0].length):-1}function Ll(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.U=+r[0],t+r[0].length):-1}function Dl(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.V=+r[0],t+r[0].length):-1}function Al(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.W=+r[0],t+r[0].length):-1}function us(e,n,t){var r=A.exec(n.slice(t,t+4));return r?(e.y=+r[0],t+r[0].length):-1}function hs(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 Zl(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 Il(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 Nl(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 ds(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.d=+r[0],t+r[0].length):-1}function Ul(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 fs(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.H=+r[0],t+r[0].length):-1}function _l(e,n,t){var r=A.exec(n.slice(t,t+2));return r?(e.M=+r[0],t+r[0].length):-1}function Bl(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 ql(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 Gl(e,n,t){var r=$l.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 Hl(e,n,t){var r=A.exec(n.slice(t));return r?(e.s=+r[0],t+r[0].length):-1}function ps(e,n){return M(e.getDate(),n,2)}function Jl(e,n){return M(e.getHours(),n,2)}function Wl(e,n){return M(e.getHours()%12||12,n,2)}function Vl(e,n){return M(1+Ne.count(it(e),e),n,3)}function La(e,n){return M(e.getMilliseconds(),n,3)}function Xl(e,n){return La(e,n)+"000"}function Kl(e,n){return M(e.getMonth()+1,n,2)}function Ql(e,n){return M(e.getMinutes(),n,2)}function tc(e,n){return M(e.getSeconds(),n,2)}function ec(e){var n=e.getDay();return n===0?7:n}function nc(e,n){return M(Ln.count(it(e)-1,e),n,2)}function Da(e){var n=e.getDay();return n>=4||n===0?Bt(e):Bt.ceil(e)}function rc(e,n){return e=Da(e),M(Bt.count(it(e),e)+(it(e).getDay()===4),n,2)}function sc(e){return e.getDay()}function ac(e,n){return M(pn.count(it(e)-1,e),n,2)}function ic(e,n){return M(e.getFullYear()%100,n,2)}function oc(e,n){return e=Da(e),M(e.getFullYear()%100,n,2)}function lc(e,n){return M(e.getFullYear()%1e4,n,4)}function cc(e,n){var t=e.getDay();return e=t>=4||t===0?Bt(e):Bt.ceil(e),M(e.getFullYear()%1e4,n,4)}function uc(e){var n=e.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+M(n/60|0,"0",2)+M(n%60,"0",2)}function gs(e,n){return M(e.getUTCDate(),n,2)}function hc(e,n){return M(e.getUTCHours(),n,2)}function dc(e,n){return M(e.getUTCHours()%12||12,n,2)}function fc(e,n){return M(1+Dr.count(yt(e),e),n,3)}function Aa(e,n){return M(e.getUTCMilliseconds(),n,3)}function pc(e,n){return Aa(e,n)+"000"}function gc(e,n){return M(e.getUTCMonth()+1,n,2)}function mc(e,n){return M(e.getUTCMinutes(),n,2)}function yc(e,n){return M(e.getUTCSeconds(),n,2)}function wc(e){var n=e.getUTCDay();return n===0?7:n}function bc(e,n){return M(za.count(yt(e)-1,e),n,2)}function Za(e){var n=e.getUTCDay();return n>=4||n===0?Ft(e):Ft.ceil(e)}function vc(e,n){return e=Za(e),M(Ft.count(yt(e),e)+(yt(e).getUTCDay()===4),n,2)}function xc(e){return e.getUTCDay()}function Tc(e,n){return M(gn.count(yt(e)-1,e),n,2)}function Sc(e,n){return M(e.getUTCFullYear()%100,n,2)}function Cc(e,n){return e=Za(e),M(e.getUTCFullYear()%100,n,2)}function Ec(e,n){return M(e.getUTCFullYear()%1e4,n,4)}function Pc(e,n){var t=e.getUTCDay();return e=t>=4||t===0?Ft(e):Ft.ceil(e),M(e.getUTCFullYear()%1e4,n,4)}function kc(){return"+0000"}function ms(){return"%"}function ys(e){return+e}function ws(e){return Math.floor(+e/1e3)}var Ct,Ia;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),Ia=Ct.format,Ct.parse,Ct.utcFormat,Ct.utcParse,Ct}function $c(e){return new Date(e)}function Mc(e){return e instanceof Date?+e:+new Date(+e)}function Na(e,n,t,r,s,a,i,o,c,u){var d=Ra(),f=d.invert,m=d.domain,b=u(".%L"),T=u(":%S"),E=u("%I:%M"),x=u("%I %p"),S=u("%a %d"),Y=u("%b %d"),P=u("%B"),O=u("%Y");function L(C){return(c(C)<C?b:o(C)<C?T:i(C)<C?E:a(C)<C?x:r(C)<C?s(C)<C?S:Y:t(C)<C?P:O)(C)}return d.invert=function(C){return new Date(f(C))},d.domain=function(C){return arguments.length?m(Array.from(C,Mc)):m().map($c)},d.ticks=function(C){var Z=m();return e(Z[0],Z[Z.length-1],C??10)},d.tickFormat=function(C,Z){return Z==null?L:u(Z)},d.nice=function(C){var Z=m();return(!C||typeof C.range!="function")&&(C=n(Z[0],Z[Z.length-1],C??10)),C?m(dl(Z,C)):d},d.copy=function(){return ka(d,Na(e,n,t,r,s,a,i,o,c,u))},d}function Yc(){return Ta.apply(Na(Pl,kl,it,Ar,Ln,Ne,Lr,zr,Pt,Ia).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const bs=[g.w.NANOSECOND,g.w.nanoseconds(2),g.w.nanoseconds(5),g.w.nanoseconds(10),g.w.nanoseconds(20),g.w.nanoseconds(50),g.w.nanoseconds(100),g.w.nanoseconds(200),g.w.nanoseconds(500),g.w.MICROSECOND,g.w.microseconds(2),g.w.microseconds(5),g.w.microseconds(10),g.w.microseconds(20),g.w.microseconds(50),g.w.microseconds(100),g.w.microseconds(200),g.w.microseconds(500),g.w.MILLISECOND,g.w.milliseconds(2),g.w.milliseconds(5),g.w.milliseconds(10),g.w.milliseconds(20),g.w.milliseconds(50),g.w.milliseconds(100),g.w.milliseconds(200),g.w.milliseconds(500),g.w.SECOND];class Oc{constructor(){h(this,"_domain");h(this,"_range");h(this,"_span");this._domain=[new g.m(0n),new g.m(1n)],this._range=[0,1],this._span=this._domain[1].span(this._domain[0])}domain(n){return n===void 0?this._domain:(this._domain=[new g.m(n[0]),new g.m(n[1])],this._span=this._domain[1].span(this._domain[0]),this)}range(n){return n===void 0?this._range:(this._range=n,this)}scale(n){const r=new g.m(n).valueOf(),s=this._domain[0].valueOf(),a=this._domain[1].valueOf()-s,i=this._range[1]-this._range[0];return Number(r-s)/Number(a)*i+this._range[0]}ticks(n){const t=this.calculateOptimalStep(n).valueOf(),r=this._domain[0].valueOf(),s=this._domain[1].valueOf(),a=(r+t-1n)/t*t,i=Number((s-a)/t);return Array.from({length:i+1},(o,c)=>{const u=a+BigInt(c)*t;return new g.m(u)}).filter(o=>o.afterEq(this._domain[0])&&o.beforeEq(this._domain[1]))}calculateOptimalStep(n){const t=this._span.valueOf()/BigInt(Math.ceil(n));let r=bs[0];for(const s of bs){if(s.valueOf()>t)break;r=s}return r}formatTick(n){return this._span.lessThan(g.w.microseconds(50))?`${n.remainder(g.w.MILLISECOND).microseconds.toString()}µs`:`${n.remainder(g.w.SECOND).milliseconds.toString()}ms`}}const zc=()=>new Oc,Zr=p.z.enum(["linear","time"]),Ir=p.z.object({tickSpacing:p.z.number().default(75),type:Zr.optional().default("linear")}),nr=e=>{const n=Ir.parse(e);return Ac[n.type](n)};class Lc{constructor(n){h(this,"props");this.props=n}create({decimalToDataScale:n,size:t}){const r=[0,t],s=new g.m(n.pos(0)),a=new g.m(n.pos(1));if(new g.w(a.sub(s)).milliseconds<5){const d=[s,a],f=zc().domain(d).range(r),m=rr(t,this.props.tickSpacing)/2;return f.ticks(m).map(T=>({label:f.formatTick(T),position:f.scale(T)}))}const o=[s.date(),a.date()],c=Yc().domain(o).range(r);return c.ticks(rr(t,this.props.tickSpacing)).map(d=>({label:this.tickLabel(d),position:c(d)}))}tickLabel(n){const t=new g.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 Dc{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=Oa().domain(s).range(r),i=rr(t,this.props.tickSpacing);return a.ticks(i).map(c=>({label:this.tickLabel(c),position:a(c)}))}tickLabel(n){return n.toString()}}const rr=(e,n)=>{const t=Math.floor(e/n);return t>0?t:1},Ac={linear:e=>new Dc(e),time:e=>new Lc(e)},Nr=Ir.extend({color:l.Color.z,type:Zr.optional().default("linear"),font:p.z.string(),showGrid:p.z.boolean().optional().default(!0),location:l.K.outer,gridColor:l.Color.z}),X=5;class vs{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 Ua=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 vs(n.lower2d,t.font)}setState(n){this.state=w.prettyParse(Nr,n),this.tickFactory=nr(n),this.dimensions=new vs(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.$t.width(r),a=l.$t.height(r),i=n.position,o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.J.translate(i,"x",u.position),l.J.translate(i,{x:u.position,y:-a})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.J.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+X),t.stroke(),t.fillText(d.label,i.x+d.position-u.width/2,i.y+10+u.height)}).height+X+6}}drawTop(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,s=l.$t.width(r),a=l.$t.height(r),i=l.J.translate(n.position,"y",n.size),o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.J.translate(i,"x",u.position),l.J.translate(i,{x:u.position,y:a})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.J.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-X),t.stroke(),t.fillText(d.label,i.x+d.position-u.width/2,i.y-5-u.height)}).height+X}}drawLeft(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,s=l.$t.height(r),a=l.$t.width(r),i=l.J.translate(n.position,"x",n.size),o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.J.translate(i,"y",u.position),l.J.translate(i,{x:a,y:u.position})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.J.translate(i,"y",s)),{size:this.drawTicks(o,(u,d)=>{t.moveTo(i.x,i.y+d.position),t.lineTo(i.x-X,i.y+d.position),t.stroke(),t.fillText(d.label,i.x-u.width-X*2,i.y+d.position+u.height/3)}).width+X*2}}drawRight(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,s=l.$t.height(r),a=l.$t.width(r),i=n.position,o=this.tickFactory.create({...n,size:s});return this.maybeDrawGrid(s,o,u=>[l.J.translate(i,"y",u.position),l.J.translate(i,{x:-a,y:u.position})]),t.strokeStyle=this.state.color.hex,this.drawLine(i,l.J.translate(i,"y",s)),{size:this.drawTicks(o,(u,d)=>{t.moveTo(i.x,i.y+d.position),t.lineTo(i.x+X,i.y+d.position),t.stroke(),t.fillText(d.label,i.x+X+2,i.y+d.position+u.height/3)}).width+X*2}}drawLine(n,t){const{lower2d:r}=this.renderCtx;r.beginPath(),r.moveTo(...l.J.couple(n)),r.lineTo(...l.J.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.G.construct(-1,1),o=l.G.construct(n-1,n+1);this.renderCtx.lower2d.strokeStyle=a.hex,t.filter(({position:c})=>!l.G.contains(i,c)&&!l.G.contains(o,c)).forEach(c=>this.drawLine(...r(c)))}}};const Ue=Nr.extend({bounds:l.G.bounds.optional(),autoBounds:p.z.object({lower:p.z.boolean().optional().default(!0),upper:p.z.boolean().optional().default(!0)}).or(p.z.boolean().optional().default(!0)),autoBoundPadding:p.z.number().optional(),autoBoundUpdateInterval:g.w.z.optional().default(g.w.seconds(10)),size:p.z.number().optional().default(0),label:p.z.string().optional().default(""),labelSize:p.z.number().optional().default(0)}).partial({color:!0,font:!0,gridColor:!0}),Zc=2,Ic=7,_a=(e,n)=>l.G.contains({lower:e-Ic,upper:e+Zc},n),Nc=l.G.DECIMAL,xs=g.m.now(),Uc={lower:Number(xs.valueOf()),upper:Number(xs.add(g.w.HOUR).valueOf())},Ba=e=>e==="linear"?Nc:Uc,_c=(e,n=.1,t)=>{const r=l.G.max(e.filter(l.G.isFinite));if(!l.G.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,Fc=.1;class Fa extends w.Composite{async afterUpdate(n){var r,s;this.internal.render=B.Context.use(n);const t=w.use(n);(r=this.state).autoBoundPadding??(r.autoBoundPadding=l.g.construct(this.state.location)==="x"?Fc:Bc),this.internal.core=new Ua(this.internal.render,{color:t.colors.gray.l10,font:ee.fontString(t,{level:"small",code:!0}),gridColor:t.colors.gray.l1,...this.state}),I.requestRender(n,tt),(s=this.internal).updateBounds??(s.updateBounds=ks.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=fo(`${this.type}-${this.key}`,s,a),o={...n,position:i,decimalToDataScale:t,size:this.state.size+this.state.labelSize},{size:c}=r.render(o);_a(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}=qa(this.state.autoBounds);if(!r&&!s&&this.state.bounds!=null)return this.internal.boundSnapshot=this.state.bounds,[this.state.bounds,null];const a=f=>({upper:s||this.state.bounds==null?f.upper:this.state.bounds.upper,lower:r||this.state.bounds==null?f.lower:this.state.bounds.lower});let i,o=null;try{const f=await t();i=_c(f,this.state.autoBoundPadding,this.state.type)}catch(f){i=Ba(this.state.type),o=f}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.$t.root(r)[i]).magnify(1/l.$t.dim(r,i)),a]}}const qa=e=>typeof e=="boolean"?{lower:e,upper:e}:{lower:(e==null?void 0:e.lower)??!0,upper:(e==null?void 0:e.upper)??!0},Ts=`#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
|
+
`,qc=`#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
|
+
`,Gc=`#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
|
+
`,Ga=p.z.object({x:sn,y:sn,label:p.z.string().optional(),color:l.Color.z,strokeWidth:p.z.number().default(1),downsample:p.z.number().min(1).max(50).optional().default(1),visible:p.z.boolean().optional().default(!0)}),jc=(e,n,t)=>e===-1||n===-1||e>=t.length?NaN:Number(t[e].at(n)),Hc=g.w.milliseconds(2);l.J.NAN,l.J.NAN,l.G.ZERO;const Jc=(e,n)=>n.equals(g.g$1.UINT8)?e.UNSIGNED_BYTE:e.FLOAT;class Ss extends B.GLProgram{constructor(t,r,s){super(t,r,s);h(this,"translationBufferCache",new Map);this.translationBufferCache=new Map}bindState({strokeWidth:t,color:r}){return this.uniformColor("u_color",r),this.attrStrokeWidth(t)}bindScale(t,r){const s=l.J.scale(t.scale,r.scale),a=l.J.translate(l.J.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:f}=this.renderCtx;this.bindAttrBuffer("x",t.glBuffer,a,i,u),this.bindAttrBuffer("y",r.glBuffer,a,o,d),f.drawArraysInstanced(f.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(g.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 w.Ze("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 kt=class kt{constructor(n){h(this,"uint8HybridProgram");h(this,"float32Program");this.uint8HybridProgram=new Ss(n,Gc,Ts),this.float32Program=new Ss(n,qc,Ts)}get gl(){return this.uint8HybridProgram.renderCtx.gl}getProgram(n){return n.equals(g.g$1.UINT8)?this.uint8HybridProgram:this.float32Program}static create(n,t){const r=new kt(t);return n.set(kt.CONTEXT_KEY,r),r}static use(n){const t=n.get(kt.CONTEXT_KEY);if(t==null)throw new w.Ze("GLProgram not found");return t}};h(kt,"CONTEXT_KEY","pluto-line-gl-program");let mn=kt;class Ce extends w.Leaf{constructor(){super(...arguments);h(this,"schema",Ga)}async afterUpdate(t){var s,a;if(this.deleted)return;const{internal:r}=this;r.xTelem=await H(t,this.state.x,r.xTelem),r.yTelem=await H(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(Hn)),r.stopListeningYTelem=r.yTelem.onChange(()=>r.requestRender(Hn)),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((S,Y)=>{const P=S.binarySearch(r),O=P>=0&&P<S.length;return O&&([o,c]=[P,Y]),O});const{key:u}=this,{color:d,label:f}=this.state,m={key:u,color:d,label:f,position:{x:0,y:0},value:{x:NaN,y:NaN},bounds:{lower:0,upper:0}};if(o===-1||c===-1||!this.state.visible)return m;const b=i[c];m.value.x=jc(c,o,i);const[,T]=await a.value(),E=T.find(S=>l.G.contains(S.alignmentBounds,b.alignment+BigInt(o)));if(E==null)return m;const x=Number(E.alignment-b.alignment);return m.value.y=Number(E.at(o-x)),m.bounds={...E.bounds},m.position={x:t.dataToDecimalScale.x.pos(m.value.x),y:t.dataToDecimalScale.y.pos(m.value.y)},m}async render(t){if(this.deleted||!this.state.visible)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(x=>x.updateGLBuffer(i.gl)),d.forEach(x=>x.updateGLBuffer(i.gl)),u.length===0||d.length===0)return;const f=i.getProgram(d[0].dataType),m=nu(u,d,c,r,Hc);this.internal.instrumentation.L.debug("render",()=>({key:this.key,downsample:r,scale:o.transform,props:t.region,ops:ru(m)}));const b=f.setAsActive(),T=f.bindState(this.state),E=f.renderCtx.scaleRegion(t.region).transform;m.forEach(x=>{const S=tu(o,x).transform;f.bindScale(S,E),f.draw(x,T,u[0].dataType,d[0].dataType)}),b()}}h(Ce,"TYPE","line");const Wc=5e3,Vc=(e,n)=>Qc(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]),Qc=(e,n)=>{const t=new Float32Array(e.length*n);for(let r=0;r<n;r++)t.set(e,r*e.length);return t},tu=(e,n)=>e.translate(e.x.dim(Number(n.x.sampleOffset)),e.y.dim(Number(n.y.sampleOffset))),eu={[Ce.TYPE]:Ce},nu=(e,n,t,r,s)=>{if(e.length===0||n.length===0)return[];const a=[];return e.forEach(i=>n.forEach(o=>{if(!su(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 f=l.Y(Math.round(t*4*d),r,51);a.push({x:i,y:o,xOffset:c,yOffset:u,count:d,downsample:f})})),a},ru=e=>e.map(n=>({...n,x:n.x.digest,y:n.y.digest})),su=(e,n,t)=>{if(!(e._timeRange!=null&&n._timeRange!=null))throw new w.Ze(`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.G.overlapsWith(e.alignmentBounds,n.alignmentBounds);return s&&a};class Vt{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.J.construct(l.$t.left(t),r),end:l.J.construct(l.$t.right(t),r),...s}):this.line({start:l.J.construct(r,l.$t.top(t)),end:l.J.construct(r,l.$t.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.J.couple(s)),i.lineTo(...l.J.couple(a)),i.stroke()}circle({fill:n,radius:t,position:r}){const s=this.canvas;s.fillStyle=n.hex,s.beginPath(),s.arc(...l.J.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.J.couple(l.$t.topLeft(n)),...l.J.couple(l.$t.dims(n)),s),i.stroke()):(i.rect(...l.J.couple(l.$t.topLeft(n)),...l.J.couple(l.$t.dims(n))),i.stroke()):$s.A(a).forEach(o=>{const[c,u]=l.$t.edgePoints(n,o);i.beginPath(),i.moveTo(...l.J.couple(c)),i.lineTo(...l.J.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.J.couple(l.$t.topLeft(n)),...l.J.couple(l.$t.dims(n)),a):c.rect(...l.J.couple(l.$t.topLeft(n)),...l.J.couple(l.$t.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.J.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.$t.construct(i,t.width,t.height),...n}),this.canvas.filter="none",r(l.J.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((f,m)=>{this.canvas.fillText(f,u.x,u.y+c*m)})}]}list({length:n,itemHeight:t,width:r,spacing:s=0,position:a,draw:i,root:o=l.K.TOP_LEFT,offset:c=l.J.ZERO,padding:u=l.J.ZERO}){const d=n*t+u.y*2+s*(n-1),f=r+u.x*2,m={...a};o.x==="right"?m.x-=r+c.x*2:m.x+=c.x,o.y==="top"?m.y-=d+c.y*2:m.y+=c.y,this.container({region:l.$t.construct(m,{width:f,height:d}),backgroundColor:b=>b.colors.gray.l1});for(let b=0;b<n;b++){const T=l.$t.construct(l.J.construct(m.x+u.x,m.y+b*t+u.y+s*b),r,t);i(b,T)}}drawTextInCenter({box:n,text:t,level:r}){const s=ft.dimensions(t,this.canvas.font,this.canvas),a=l.$t.positionInCenter(l.$t.construct(l.J.ZERO,s),n);return this.text({text:t,position:l.$t.topLeft(a),level:r})}text({text:n,position:t,level:r="p",weight:s,shade:a,maxWidth:i,code:o,justify:c="left",align:u="top",color:d}){this.canvas.font=ee.fontString(this.theme,{level:r,weight:s,code:o}),d!=null?this.canvas.fillStyle=this.resolveColor(d).hex:a==null?this.canvas.fillStyle=this.theme.colors.text.hex:this.canvas.fillStyle=this.theme.colors.gray[`l${a}`].hex,this.canvas.textAlign=c,this.canvas.textBaseline=u;let f;i!=null&&(f=this.canvas.scissor(l.$t.construct(t,i,1e3))),this.canvas.fillText(n,t.x,t.y),f==null||f()}}const Ur=p.z.object({position:p.z.number().optional(),pixelPosition:p.z.number().optional(),dragging:p.z.boolean(),lineWidth:p.z.number().optional().default(1),lineDash:p.z.number().optional().default(20),color:l.Color.z}),au=3;class qt extends w.Leaf{constructor(){super(...arguments);h(this,"schema",Ur);h(this,"lastUpdateRef",null)}async afterUpdate(t){this.internal.renderCtx=B.Context.use(t);const r=w.use(t);this.internal.draw=new Vt(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)<au&&!a)return this.state.pixelPosition;this.lastUpdateRef=this.state.pixelPosition;const c=t.pos(this.state.pixelPosition/l.$t.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.$t.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.$t.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 f=l.$t.left(a)-1;o.moveTo(f,u),o.lineTo(f-d,u-d),o.lineTo(f-d,u+d)}else s==="right"&&(o.moveTo(l.$t.right(a),u),o.lineTo(l.$t.right(a)+d,u-d),o.lineTo(l.$t.right(a)+d,u+d));o.closePath(),o.stroke()}}h(qt,"TYPE","Rule");const ja={[qt.TYPE]:qt},iu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:ja,Rule:qt,ruleStateZ:Ur},Symbol.toStringTag,{value:"Module"})),ou=Ue.extend({location:l.K.x.optional().default("left")}),Cs=2,lu=e=>l.$t.signedWidth(e)<Cs||l.$t.signedHeight(e)<Cs;class Ee extends Fa{constructor(){super(...arguments);h(this,"schema",Ue)}async xBounds(){return l.G.max((await Promise.all(this.lines.map(async t=>await t.xBounds()))).filter(t=>l.G.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")||lu(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.$t.construct(l.$t.left(t),l.$t.top(r),l.$t.width(t),l.$t.height(r)),u=o.scissor(c,l.J.ZERO,["upper2d"]),d={container:t,plot:r,decimalToDataScale:a,location:i};await Promise.all(this.rules.map(async f=>await f.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),f={region:r,dataToDecimalScale:d,exposure:i};return(await Promise.all(this.lines.map(async m=>await m.findByXValue(f,o)))).map(m=>({...m,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(qt.TYPE)}}h(Ee,"TYPE","YAxis");const Ha=p.z.object({start:g.m.z,end:g.m.z});class yn extends w.Leaf{constructor(){super(...arguments);h(this,"schema",Ha)}async afterUpdate(t){this.internal.render=B.Context.use(t),this.internal.draw=new Vt(this.internal.render.upper2d,w.use(t))}async render(){}}h(yn,"TYPE","range-annotation");const cu=w.$m.payloadZ.extend({viewport:l.G.bounds}),Es=e=>l.Color.z.safeParse(e).success,Ja=p.z.object({cursor:l.J.xy.or(p.z.null()),hovered:cu.or(p.z.null()),count:p.z.number()});class Pe extends w.Leaf{constructor(){super(...arguments);h(this,"schema",Ja);h(this,"fetchedInitial",g.U.ZERO)}async afterUpdate(t){const{internal:r}=this;r.render=B.Context.use(t),r.draw=new Vt(r.render.upper2d,w.use(t)),r.ranges??(r.ranges=new Map);const s=Le(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):Es(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,g.w.minutes(1)))return;this.fetchedInitial=t,(await r.client.ranges.retrieve(t)).forEach(a=>{Es(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.$t.xBounds(s)),d=this.state.cursor==null?null:this.state.cursor.x;let f=null;const m=o.canvas.scissor(l.$t.construct({x:l.$t.left(s),y:l.$t.top(s)-35},{x:l.$t.right(s),y:l.$t.bottom(s)}));c.forEach(b=>{const T=l.Color.z.safeParse(b.color);if(!T.success)return;const E=T.data;let x=u.pos(Number(b.timeRange.start.valueOf()));const S=u.pos(Number(b.timeRange.end.valueOf()));if(S<l.$t.left(s)||x>l.$t.right(s))return;x=l.Y(x,l.$t.left(s)-2,l.$t.right(s)-1);let Y=!1;d!=null&&(Y=l.G.contains({lower:x,upper:S},d)),Y&&(f={key:b.key,name:b.name,color:b.color,timeRange:b.timeRange,viewport:{lower:r.scale(l.$t.xBounds(a)).pos(Number(b.timeRange.start.valueOf())),upper:r.scale(l.$t.xBounds(a)).pos(Number(b.timeRange.end.valueOf()))}}),o.container({region:l.$t.construct({x,y:l.$t.top(s)-1},{x:S,y:l.$t.bottom(s)-1}),backgroundColor:E.setAlpha(.2),bordered:!1});const P=l.$t.construct({x:x+1,y:l.$t.top(s)-34},{x:S-1,y:l.$t.top(s)-12});o.container({region:P,backgroundColor:l.$t.width(P)<20?E.setAlpha(.4):O=>Y?O.colors.gray.l2:O.colors.gray.l0,bordered:!0,borderWidth:1,borderRadius:2,borderColor:E.setAlpha(.8)}),o.text({text:b.name,position:{x:x+8,y:l.$t.top(s)-30},level:"small",shade:8,weight:500,maxWidth:S-x-16})}),m(),f!=null?this.setState(b=>({...b,hovered:f})):this.state.hovered&&this.setState(b=>({...b,hovered:null}))}}h(Pe,"TYPE","range-provider");const uu={[yn.TYPE]:yn,[Pe.TYPE]:Pe},hu=Ue;class ke extends Fa{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(Pe.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 g.U(s.lower,s.upper)})))}async dataBounds(){return await Promise.all(this.yAxes.map(async t=>await t.xBounds()))}}h(ke,"TYPE","XAxis");const du=l.J.construct(12),fu=3,pu=14,gu=l.J.construct(6),_r=p.z.object({position:l.J.xy.or(p.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:p.z.number().optional().default(1),ruleStrokeDash:p.z.number().default(0)});class Gt extends w.Leaf{constructor(){super(...arguments);h(this,"schema",_r)}async afterUpdate(t){const r=w.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.l7),this.internal.dotColor=r.colors.text,this.internal.dotColorContrast=r.colors.textInverted,this.internal.render=B.Context.use(t),this.internal.draw=new Vt(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.$t.DECIMAL).scale(r),a=l.b.XY.scale(r).scale(l.$t.DECIMAL),i=await t.findByXDecimal(a.x.pos(this.state.position.x)),o=i.filter(x=>l.J.isFinite(x.value)),{draw:c}=this.internal,u=o.reduce((x,S)=>x+S.position.x,0)/o.length,d=new g.m(o.reduce((x,S)=>x+S.value.x,0)/o.length),f=s.x.pos(u);if(!l.G.contains(l.$t.xBounds(r),f))return;c.rule({stroke:this.state.ruleColor,lineWidth:this.state.ruleStrokeWidth,lineDash:this.state.ruleStrokeDash,direction:"y",region:r,position:f}),o.forEach(x=>{const S=s.pos(x.position);c.circle({fill:x.color.setAlpha(.5),radius:8,position:S}),c.circle({fill:x.color.setAlpha(.8),radius:5,position:S}),c.circle({fill:x.color.pickByContrast(this.internal.dotColor,this.internal.dotColorContrast),radius:2,position:S})});const m=a.pos(this.state.position),b={...l.K.TOP_LEFT};m.x>.6&&(b.x="right"),m.y>.6&&(b.y="bottom");let T=i.reduce((x,S)=>{var Y;return Math.max(x,((Y=S.label)==null?void 0:Y.length)??0)},0);const E=d.fString("preciseDate","local").length;E>T&&(T=E),c.list({root:b,offset:du,length:o.length+1,padding:gu,itemHeight:pu,spacing:fu,width:T*7+48,position:this.state.position,draw:(x,S)=>{let Y="",P="",O=this.state.textColor;if(x===0)Y="Time",P=d.fString("preciseDate","local");else{const L=o[x-1];Y=L.label??"",P=g.be.roundBySpan(L.value.y,L.bounds).toString(),O=L.color}c.text({position:l.$t.topLeft(S),text:Y,level:"small",weight:500,color:O}),c.text({position:l.J.translateY(l.$t.topRight(S),-1),text:P,level:"small",justify:"right",code:!0,shade:10})}})}}h(Gt,"TYPE","tooltip");const Wa={[Gt.TYPE]:Gt},mu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Wa,Tooltip:Gt,tooltipStateZ:_r},Symbol.toStringTag,{value:"Module"})),Br=p.z.object({one:l.J.xy.nullable(),two:l.J.xy.nullable(),hover:l.J.xy.nullable(),color:p.z.union([l.Color.z,p.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:p.z.number().optional().default(1),strokeDash:p.z.number().optional().default(2)});class jt extends w.Leaf{constructor(){super(...arguments);h(this,"schema",Br)}async afterUpdate(t){const r=B.Context.use(t);this.internal.theme=w.use(t),this.internal.renderCtx=r,this.internal.draw=new Vt(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.l8:this.state.color:this.state.color.verticalLine.isZero?this.internal.theme.colors.gray.l8:this.state.color.verticalLine}get horizontalLineColor(){return this.state.color instanceof l.Color?this.state.color.isZero?this.internal.theme.colors.gray.l8:this.state.color:this.state.color.horizontalLine.isZero?this.internal.theme.colors.gray.l8:this.state.color.horizontalLine}get obliqueLineColor(){return this.state.color instanceof l.Color?this.state.color.isZero?this.internal.theme.colors.gray.l8:this.state.color:this.state.color.obliqueLine.isZero?this.internal.theme.colors.gray.l8: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.J.equals(r,a)&&i!=null&&l.J.equals(s,i)&&o!=null&&c!=null){const[x,S]=[await t.findByXValue(o.x),await t.findByXValue(c.x)];return x.length===0||S.length===0?null:[x.sort((Y,P)=>l.J.distance(o,Y.value)-l.J.distance(o,P.value))[0],S.sort((Y,P)=>l.J.distance(c,Y.value)-l.J.distance(c,P.value))[0]]}const u=l.b.XY.scale(t.region).scale(l.$t.DECIMAL),[d,f]=[u.pos(r),u.pos(s)],[m,b]=[await t.findByXDecimal(d.x),await t.findByXDecimal(f.x)];if(m.length===0||b.length===0)return null;const[T,E]=[m.sort((x,S)=>l.J.distance(d,x.position)-l.J.distance(d,S.position))[0],b.sort((x,S)=>l.J.distance(f,x.position)-l.J.distance(f,S.position))[0]];return this.internal.dataOne=T.value,this.internal.dataTwo=E.value,[T,E]}async renderHover(t){if(this.state.hover==null)return;const r=this.state.hover,s=l.b.XY.scale(t.region).scale(l.$t.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.J.distance(a,u.position)-l.J.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.$t.DECIMAL).scale(t.region),d=u.pos(s.position),f=u.pos(a.position),m=new g.w(Math.abs(s.value.x-a.value.x)),b=Math.abs(s.value.y-a.value.y),T=b/m.seconds;i.line({start:l.J.construct(d.x,d.y),end:l.J.construct(d.x,f.y),stroke:this.verticalLineColor,lineDash:o,lineWidth:c}),i.textContainer({text:[`${b.toFixed(2)} ${s.units??""}`],direction:"x",position:l.J.construct(d.x,(d.y+f.y)/2),level:"small"}),i.line({start:l.J.construct(d.x,f.y),end:l.J.construct(f.x,f.y),stroke:this.horizontalLineColor,lineDash:o,lineWidth:c}),i.textContainer({text:[m.truncate(g.w.MILLISECOND).toString()],direction:"x",position:l.J.construct((d.x+f.x)/2,f.y),level:"small"}),i.line({start:l.J.construct(d.x,d.y),end:l.J.construct(f.x,f.y),stroke:this.obliqueLineColor,lineDash:o,lineWidth:c}),i.textContainer({text:[`${T.toFixed(2)} ${s.units??""} / S`],direction:"x",position:l.J.construct((d.x+f.x)/2,(d.y+f.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:f}),i.circle({fill:a.color.setAlpha(.8),radius:5,position:f}),i.circle({fill:new l.Color("#ffffff"),radius:2,position:f})}}h(jt,"TYPE","measure");const Va={[jt.TYPE]:jt},yu=Object.freeze(Object.defineProperty({__proto__:null,Measure:jt,REGISTRY:Va,measureStateZ:Br},Symbol.toStringTag,{value:"Module"})),Xa=p.z.object({container:l.$t.box,viewport:l.$t.box,hold:p.z.boolean().optional().default(!1),grid:p.z.record(xa),visible:p.z.boolean().optional().default(!0),clearOverScan:l.J.crudeZ.optional().default(l.J.ZERO)}),wu=(e,n)=>{const t=l.$t.width(e)*Math.sqrt(l.$t.height(e)),r=l.$t.width(n)*Math.sqrt(l.$t.height(n));return t/r};class wn extends w.Composite{constructor(){super(...arguments);h(this,"schema",Xa)}async afterUpdate(t){this.internal.instrumentation=Ze(t,"lineplot"),this.internal.aggregate=V.useAdder(t),this.internal.renderCtx=B.Context.use(t),I.control(t,r=>this.requestRender("low",r)),this.requestRender("high",tt)}async afterDelete(t){this.internal.renderCtx=B.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(ke.TYPE)}get tooltips(){return this.childrenOfType(Gt.TYPE)}get measures(){return this.childrenOfType(jt.TYPE)}get exposure(){return wu(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 po(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.J.construct(this.state.clearOverScan),o=r.scissor(this.state.container,i,t.filter(d=>d!=="gl")),c=r.scissor(a,l.J.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.$t.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 bu={[wn.TYPE]:wn,[ke.TYPE]:ke,[Ee.TYPE]:Ee},Fr=p.z.object({dpr:p.z.number(),region:l.$t.box,bootstrap:p.z.boolean().optional().default(!1),bootstrapped:p.z.boolean().optional().default(!1),glCanvas:p.z.any().optional(),upper2dCanvas:p.z.any().optional(),lower2dCanvas:p.z.any().optional(),os:g.S.osZ});class Re extends w.Composite{constructor(){super(...arguments);h(this,"schema",Fr);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 w.Ze("[vis.worker.Canvas] - expected render context bootstrap to include all canvases");this.renderCtx=B.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(Re,"TYPE","Canvas");const Ka={[Re.TYPE]:Re},vu=Object.freeze(Object.defineProperty({__proto__:null,Canvas:Re,REGISTRY:Ka,canvasStateZ:Fr},Symbol.toStringTag,{value:"Module"})),Qa=p.z.object({triggered:p.z.boolean(),status:V.specZ,sink:Mn.optional().default(kn),source:dr.optional().default(cr)});class bn extends w.Leaf{constructor(){super(...arguments);h(this,"schema",Qa)}async afterUpdate(t){var a,i,o;const{sink:r,source:s}=this.state;this.internal.source=await H(t,s,this.internal.source),this.internal.sink=await Ae(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)!==w.Bm.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();sr.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 ti=p.z.object({}),Ps="control-state-provider",ei=w.fm.stateZ.extend({subjectColor:l.Color.z});class Ht extends w.Composite{constructor(){super(...arguments);h(this,"schema",ti);h(this,"colors",new Map);h(this,"tracker");h(this,"disconnectTrackerChange");h(this,"obs",new ar.Observer)}static use(t){return t.get(Ps)}async afterUpdate(t){const{internal:r}=this;r.instrumentation=Ze(t,"control-state");const s=w.use(t);r.palette=s.colors.visualization.palettes.default,r.defaultColor=s.colors.gray.l8;const a=Le(t);r.client!=null&&a===r.client||(r.client=a,t.set(Ps,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)?g.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=>w.fm.transferString(o))}),this.tracker==null)throw new w.Ze("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(Ht,"TYPE","StateProvider");const ni=["acquired","released","overridden","failed"],ri=p.z.enum(ni),si=p.z.object({name:p.z.string(),authority:p.z.number().default(0),acquireTrigger:p.z.number(),status:ri.optional(),needsControlOf:w.nm.keyZ.array().optional().default([])});class vn extends w.Composite{constructor(){super(...arguments);h(this,"schema",si);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=Le(t),a=Ht.use(t);r.client=s,r.client==null&&await this.release(),r.stateProv=a,r.telemCtx=pa(t,this,r.telemCtx),r.addStatus=V.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);g.F.unorderedPrimitiveArrays(this.state.needsControlOf,s)!==g.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=w.$.now().sub(g.w.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 $e.TYPE:{const a=new $e(this,t.props);return this.registry.set(a,null),a}case Ye.TYPE:{const a=new Ye(this,this.internal.stateProv,t.props);return this.registry.set(a,null),a}case Me.TYPE:return new Me(this,t.props);default:return null}})();return s!=null&&this.updateNeedsControlOf(),s}}h(vn,"TYPE","Controller");const ai=p.z.object({channel:p.z.number()});class $e extends On{constructor(t,r){super(r);h(this,"controller");h(this,"schema",ai);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]=w.$.now()}await this.controller.set(a)}}h($e,"TYPE","controlled-numeric-telem-sink");const xu=e=>({type:$e.TYPE,props:e,variant:"sink",valueType:"number"}),ii=p.z.object({authority:p.z.number().default(w.fm.Authority.ABSOLUTE),channel:p.z.number()});class Me extends On{constructor(t,r){super(r);h(this,"controller");h(this,"schema",ii);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(Me,"TYPE","acquire-channel-control");const Tu=e=>({type:Me.TYPE,props:e,variant:"sink",valueType:"boolean"}),oi=p.z.object({channel:p.z.number()});class Ye extends G{constructor(t,r,s){super(s);h(this,"prov");h(this,"valid",!1);h(this,"stopListening");h(this,"controller");h(this,"schema",oi);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=g.xe.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=w.$.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(Ye,"TYPE","controlled-status-source");const Su=e=>({type:Ye.TYPE,props:e,variant:"source",valueType:"status"}),li=p.z.object({statusSource:dr.optional().default(cr),colorSource:hr.optional().default(Rn),status:V.specZ,color:l.Color.z.optional()});class xn extends w.Leaf{constructor(){super(...arguments);h(this,"schema",li);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 H(t,s,r.statusSource),r.colorSource=await H(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(xn,"TYPE","Indicator");const ci=p.z.object({needsControlOf:w.nm.keyZ.array(),states:ei.array()});class Tn extends w.Leaf{constructor(){super(...arguments);h(this,"schema",ci)}async afterUpdate(t){var o;const{internal:r}=this;r.stateProv=Ht.use(t);const s=this.state.needsControlOf;(o=r.disconnectStateProv)==null||o.call(r);const a=g.xe.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 Cu={[vn.TYPE]:vn,[Ht.TYPE]:Ht,[xn.TYPE]:xn,[bn.TYPE]:bn,[Tn.TYPE]:Tn},Eu=p.z.object({region:l.$t.box,clearOverScan:l.J.crudeZ.optional().default(0),visible:p.z.boolean().optional().default(!0)}),Gn=["upper2d","lower2d"],Rt=class Rt extends w.Composite{constructor(){super(...arguments);h(this,"schema",Rt.stateZ)}async afterUpdate(t){const{internal:r}=this;r.renderCtx=B.Context.use(t),r.handleError=V.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.$t.copy(this.state.region);if(!this.state.visible)return async()=>this.internal.renderCtx.erase(this.state.region,this.state.clearOverScan,...Gn);const{renderCtx:r,handleError:s}=this.internal,a=l.b.XY.translate(l.$t.topLeft(this.state.region)),i=r.scissor(this.state.region,l.J.construct(this.state.clearOverScan),Gn);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:`${Rt.TYPE}-${this.key}`,render:this.render.bind(this),priority:t,canvases:Gn})}};h(Rt,"TYPE","Table"),h(Rt,"stateZ",Eu);let Oe=Rt;const Pu={[Oe.TYPE]:Oe},ui=p.z.object({trigger:p.z.number(),sink:Mn.optional().default(kn)});class Sn extends w.Leaf{constructor(){super(...arguments);h(this,"schema",ui)}async afterUpdate(t){var a;const{sink:r}=this.state;(a=this.internal).prevTrigger??(a.prevTrigger=this.state.trigger),this.internal.sink=await Ae(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 ku={[Sn.TYPE]:Sn},qr=p.z.object({position:l.J.xy,zoom:p.z.number(),region:l.$t.box,clearOverScan:l.J.crudeZ.optional().default(10),visible:p.z.boolean().optional().default(!0)}),je=["upper2d","lower2d"],$t=class $t extends w.Composite{constructor(){super(...arguments);h(this,"schema",$t.stateZ)}async afterUpdate(t){this.internal.renderCtx=B.Context.use(t),this.internal.addStatus=V.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.$t.construct(this.state.region);if(!this.state.visible)return async()=>t.erase(i,this.state.clearOverScan,...je);const o=t.scissor(i,l.J.ZERO,je),c=l.b.XY.magnify(l.J.construct(s)).translate(l.$t.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.$t.copy(this.state.region);return async()=>{this.internal.renderCtx.erase(u,this.state.clearOverScan,...je)}}requestRender(t){const{renderCtx:r}=this.internal;r.loop.set({key:`${$t.TYPE}-${this.key}`,render:this.render.bind(this),priority:t,canvases:je})}};h($t,"TYPE","Diagram"),h($t,"stateZ",qr);let Jt=$t;const hi={[Jt.TYPE]:Jt},Ru=Object.freeze(Object.defineProperty({__proto__:null,Diagram:Jt,REGISTRY:hi,diagramStateZ:qr},Symbol.toStringTag,{value:"Module"})),di=p.z.object({enabled:p.z.boolean(),source:ur.optional().default(lr)});class Cn extends w.Leaf{constructor(){super(...arguments);h(this,"schema",di)}async afterUpdate(t){var a;this.internal.addStatus=V.useOptionalAdder(t);const{source:r}=this.state,{internal:s}=this;this.internal.source=await H(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 $u={[Cn.TYPE]:Cn},fi=p.z.object({region:l.$t.box,wheelPos:p.z.number(),scrolling:p.z.boolean(),empty:p.z.boolean(),visible:p.z.boolean(),telem:sn.optional().default(Ls),font:Rs.levelZ.optional().default("p"),color:l.Color.z.optional().default(l.ZERO),overshoot:l.J.xy.optional().default({x:0,y:0})}),Mu=.98,te="lower2d",Yu={offset:0n,offsetRef:0n,scrollRef:0},ue=class ue extends w.Leaf{constructor(){super(...arguments);h(this,"schema",ue.z);h(this,"values",new g.Dt([]));h(this,"scrollState",Yu)}async afterUpdate(t){var d;const{internal:r}=this;r.render=B.Context.use(t),r.theme=w.use(t),this.state.color.isZero?this.internal.textColor=r.theme.colors.gray.l11:r.textColor=this.state.color,r.telem=await H(t,this.state.telem,r.telem);const s=V.useErrorHandler(t),{scrolling:a,wheelPos:i}=this.state;if(this.state.scrolling&&!this.prevState.scrolling){const f=this.values.alignmentBounds.upper-1n;this.scrollState={offset:f,offsetRef:f,scrollRef:this.state.wheelPos}}else if(a){const{scrollState:f,values:m}=this,b=Math.ceil((i-this.scrollState.scrollRef)/this.lineHeight);f.offset=this.values.traverseAlignment(f.offsetRef,-BigInt(b)),f.offset<m.alignmentBounds.lower+BigInt(this.visibleLineCount)&&(f.offset=m.alignmentBounds.lower,this.setState(T=>({...T,wheelPos:this.prevState.wheelPos}))),f.offset>=m.alignmentBounds.upper&&this.setState(T=>({...T,scrolling:!1}))}const[c,u]=await this.internal.telem.value();this.values=new g.Dt(u),this.checkEmpty(),(d=r.stopListeningTelem)==null||d.call(r),r.stopListeningTelem=r.telem.onChange(()=>{this.internal.telem.value().then(([f,m])=>{this.checkEmpty(),this.values=new g.Dt(m),this.requestRender()}).catch(f=>s(f,"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.$t.construct(this.state.region),l.J.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.$t.height(this.state.region)-12)/this.lineHeight),this.values.length)}async render(){const{render:t}=this.internal,r=this.state.region;if(l.$t.areaIsZero(r))return;if(!this.state.visible)return async()=>t.erase(r,l.J.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 Vt(i,this.internal.theme),c=t.scissor(a,l.J.ZERO,[te]);this.renderElements(o,s),this.renderScrollbar(o),c();const u=l.$t.copy(this.state.region);return async({canvases:d})=>t.erase(u,this.state.overshoot,...d)}renderScrollbar(t){const r=this.state.region,s=l.$t.height(r)/this.totalHeight*l.$t.height(r);if(s>=l.$t.height(r)*Mu)return;let a=l.$t.bottom(r)-s;this.state.scrolling&&(a-=Number(this.values.distance(this.values.alignmentBounds.upper,this.scrollState.offset))/this.values.length*l.$t.height(r)),a<0&&(a=l.$t.top(r)),t.container({region:l.$t.construct({x:l.$t.right(r)-6,y:a},{width:6,height:s}),bordered:!1,backgroundColor:i=>i.colors.gray.l6})}renderElements(t,r){const s=this.state.region;let a=0;for(const i of r){const o=this.values.dataType.equals(g.g$1.JSON)?JSON.stringify(i):i.toString();t.text({text:o,level:this.state.font,shade:11,position:l.J.translate(l.$t.topLeft(s),{x:6,y:a*this.lineHeight+6}),code:!0}),a++}}};h(ue,"TYPE","log"),h(ue,"z",fi);let ze=ue;const Ou={[ze.TYPE]:ze},pi=p.z.object({trigger:p.z.number(),command:p.z.number().optional(),value:p.z.number(),sink:Ns.optional().default(Ys),source:Is.optional().default(Os)});class En extends w.Leaf{constructor(){super(...arguments);h(this,"schema",pi)}async afterUpdate(t){this.internal.handleError=V.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 H(t,s,this.internal.source),o.sink=await Ae(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 zu={[En.TYPE]:En},gi=p.z.object({triggered:p.z.boolean(),enabled:p.z.boolean(),sink:Mn.optional().default(kn),source:ur.optional().default(lr)});class Pn extends w.Leaf{constructor(){super(...arguments);h(this,"schema",gi)}async afterUpdate(t){var u;this.internal.addStatus=V.useOptionalAdder(t);const{sink:r,source:s,triggered:a,enabled:i}=this.state,{triggered:o}=this.prevState,{internal:c}=this;c.source=await H(t,s,c.source),c.sink=await Ae(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(Pn,"TYPE","Toggle");const Lu={[Pn.TYPE]:Pn},Du=p.z.object({box:l.$t.box,telem:fr.optional().default(zs),backgroundTelem:hr.optional().default(Rn),level:Rs.levelZ.optional().default("p"),color:l.Color.z.optional().default(l.ZERO),precision:p.z.number().optional().default(2),minWidth:p.z.number().optional().default(60),width:p.z.number().optional(),notation:g.Te.notationZ.optional().default("standard"),location:l.K.xy.optional().default({x:"left",y:"center"})}),Au=["upper2d","lower2d"],he=class he extends w.Leaf{constructor(){super(...arguments);h(this,"schema",he.z)}async afterUpdate(t){var s,a;const{internal:r}=this;r.renderCtx=B.Context.use(t),r.theme=w.use(t),this.state.color.isZero?this.internal.textColor=r.theme.colors.gray.l10:r.textColor=this.state.color,r.telem=await H(t,this.state.telem,r.telem),(s=r.stopListening)==null||s.call(r),r.stopListening=this.internal.telem.onChange(()=>this.requestRender()),r.backgroundTelem=await H(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.$t.construct(this.state.box),l.J.ZERO,...Au):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.$t.construct(this.state.box);if(l.$t.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 f=this.fontHeight,m=u[0]=="-";m&&(u=u.slice(1));const{theme:b}=this.internal,T=ft.dimensions(u,d,c).width+b.sizes.base;this.internal.requestRender==null&&r.erase(l.$t.construct(this.prevState.box)),this.maybeUpdateWidth(T);const E={...l.J.ZERO};o.x==="left"&&(E.x=6+f*.75),o.x==="center"&&(E.x=l.$t.width(i)/2-T/2),o.y==="center"&&(E.y=l.$t.height(i)/2);const x=l.J.translate(l.$t.topLeft(i),E),S=c.scissor(i,void 0);let Y=!0;if(this.state.backgroundTelem.type!=Rn.type){const P=r.lower2d.applyScale(t),O=await a.value();Y=O.isZero,O.isZero||(P.fillStyle=O.hex,P.rect(...l.J.couple(l.$t.topLeft(i)),l.$t.width(i),l.$t.height(i)),P.fill(),c.fillStyle=O.pickByContrast(b.colors.gray.l0,b.colors.gray.l11).hex)}Y&&(c.fillStyle=this.internal.textColor.hex),c.textBaseline="middle",m&&c.fillText("-",...l.J.couple(l.J.translateX(x,-f*.6))),c.fillText(u,...l.J.couple(x)),S()}};h(he,"TYPE","value"),h(he,"z",Du);let Wt=he;const mi={[Wt.TYPE]:Wt},Zu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:mi,Value:Wt},Symbol.toStringTag,{value:"Module"}));exports.AcquireChannelControl=Me;exports.Annotation=yn;exports.AuthoritySource=Ye;exports.BaseProvider=Nt;exports.Button=Sn;exports.Canvas=Ua;exports.Canvas$1=Re;exports.Chip=bn;exports.Controller=I;exports.Controller$1=vn;exports.Diagram=Ru;exports.Diagram$1=Jt;exports.Indicator=xn;exports.Legend=Tn;exports.Light=Cn;exports.Line=Ce;exports.LinePlot=wn;exports.Log=ze;exports.Measure=jt;exports.Provider=We;exports.Provider$1=Pe;exports.Provider$2=Wn;exports.REASON_DATA=Hn;exports.REASON_LAYOUT=tt;exports.REASON_TOOL=st;exports.REGISTRY=bu;exports.REGISTRY$1=Pu;exports.REGISTRY$10=uu;exports.REGISTRY$11=Va;exports.REGISTRY$12=eu;exports.REGISTRY$13=$u;exports.REGISTRY$14=hi;exports.REGISTRY$15=Cu;exports.REGISTRY$16=Ka;exports.REGISTRY$17=ku;exports.REGISTRY$18=Wi;exports.REGISTRY$2=Ou;exports.REGISTRY$3=mi;exports.REGISTRY$4=Wa;exports.REGISTRY$5=Lu;exports.REGISTRY$6=va;exports.REGISTRY$7=Ms;exports.REGISTRY$8=zu;exports.REGISTRY$9=ja;exports.Rule=qt;exports.STATUSES=ni;exports.SetChannelValue=$e;exports.Setpoint=En;exports.StateProvider=Ht;exports.Table=Oe;exports.Toggle=Pn;exports.Tooltip=Gt;exports.Value=Wt;exports.XAxis=ke;exports.YAxis=Ee;exports.ZERO_CONTEXT_VALUE=ir;exports.acquireChannelControl=Tu;exports.acquireChannelControlPropsZ=ii;exports.aether=iu;exports.annotationStateZ=Ha;exports.authoritySource=Su;exports.authoritySourceProps=oi;exports.axisStateZ=Nr;exports.buttonStateZ=ui;exports.canvas=vu;exports.canvasStateZ=Fr;exports.channelData=Gs;exports.chipStateZ=Qa;exports.color=Ut;exports.colorGradient=oa;exports.controllerStateZ=si;exports.coreAxisStateZ=Ue;exports.diagramStateZ=qr;exports.external=ho;exports.indicatorStateZ=li;exports.interpolateNumber=Se;exports.interpolateRgb=Qn;exports.interpolateString=Pa;exports.legendStateZ=ci;exports.lightStateZ=di;exports.linePlotStateZ=Xa;exports.logState=fi;exports.measure=yu;exports.measureStateZ=Br;exports.newTickFactory=nr;exports.parseAutoBounds=qa;exports.provider=zi;exports.providerStateZ=Ja;exports.providerStateZ$1=ma;exports.providerStateZ$2=Pr;exports.regions=pt;exports.rollingAverage=aa;exports.rollingAverageProps=Sr;exports.ruleStateZ=Ur;exports.scaleNumber=ca;exports.setChannelValue=xu;exports.setChannelValuePropsZ=ai;exports.setpoint=ta;exports.setpointStateZ=pi;exports.sinkPipeline=Fs;exports.sinkPipelinePropsZ=yr;exports.sourcePipeline=Bs;exports.sourcePipelinePropsZ=gr;exports.stateProviderStateZ=ti;exports.stateZ=Ga;exports.statusZ=ri;exports.streamChannelData=js;exports.streamChannelValue=Hs;exports.streamChannelValuePropsZ=wr;exports.stringSourceSpecZ=fr;exports.stringifyNumber=sa;exports.stringifyNumberProps=Tr;exports.sugaredStateZ=ei;exports.tickFactoryProps=Ir;exports.tickType=Zr;exports.toggleStateZ=gi;exports.tooltip=mu;exports.tooltipStateZ=_r;exports.value=Zu;exports.withinBounds=ea;exports.withinBoundsProps=xr;exports.withinSizeThreshold=_a;exports.xAxisStateZ=hu;exports.yAxisStateZ=ou;
|
package/dist/video.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Video-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./Video-BM9uJLaQ.cjs");exports.Video=e.Video;
|
package/dist/video.js
CHANGED
package/package.json
CHANGED
|
@@ -1,50 +1,51 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synnaxlabs/pluto",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@fontsource-variable/inter": "^5.2.5",
|
|
7
7
|
"@fontsource/geist-mono": "^5.2.5",
|
|
8
|
-
"@
|
|
9
|
-
"@
|
|
8
|
+
"@fontsource/inter": "^5.2.5",
|
|
9
|
+
"@tanstack/react-virtual": "^3.13.6",
|
|
10
|
+
"@xyflow/react": "^12.5.5",
|
|
10
11
|
"async-mutex": "^0.5.0",
|
|
11
12
|
"clsx": "^2.1.1",
|
|
12
13
|
"compromise": "^14.14.4",
|
|
13
14
|
"compromise-dates": "^3.7.1",
|
|
14
15
|
"d3-scale": "^4.0.2",
|
|
15
16
|
"fuse.js": "^7.1.0",
|
|
16
|
-
"mathjs": "^14.
|
|
17
|
+
"mathjs": "^14.4.0",
|
|
17
18
|
"proxy-memoize": "2.0.3",
|
|
18
|
-
"react": "^19.
|
|
19
|
+
"react": "^19.1.0",
|
|
19
20
|
"react-color": "^2.19.3",
|
|
20
21
|
"zod": "^3.24.2",
|
|
21
|
-
"@synnaxlabs/alamos": "0.
|
|
22
|
-
"@synnaxlabs/
|
|
23
|
-
"@synnaxlabs/
|
|
24
|
-
"@synnaxlabs/
|
|
22
|
+
"@synnaxlabs/alamos": "0.41.0",
|
|
23
|
+
"@synnaxlabs/client": "0.41.0",
|
|
24
|
+
"@synnaxlabs/media": "0.41.0",
|
|
25
|
+
"@synnaxlabs/x": "0.41.0"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"@juggle/resize-observer": "^3.4.0",
|
|
28
|
-
"@testing-library/react": "^16.
|
|
29
|
+
"@testing-library/react": "^16.3.0",
|
|
29
30
|
"@testing-library/user-event": "^14.6.1",
|
|
30
31
|
"@types/d3-scale": "^4.0.9",
|
|
31
32
|
"@types/offscreencanvas": "^2019.7.3",
|
|
32
|
-
"@types/react": "^19.0
|
|
33
|
+
"@types/react": "^19.1.0",
|
|
33
34
|
"@types/react-color": "^3.0.13",
|
|
34
|
-
"@types/react-dom": "^19.
|
|
35
|
+
"@types/react-dom": "^19.1.1",
|
|
35
36
|
"@types/webgl2": "^0.0.11",
|
|
36
37
|
"@vitejs/plugin-react": "^4.3.4",
|
|
37
|
-
"eslint": "^9.
|
|
38
|
+
"eslint": "^9.24.0",
|
|
38
39
|
"jsdom": "^26.0.0",
|
|
39
40
|
"madge": "^8.0.0",
|
|
40
|
-
"react-dom": "^19.
|
|
41
|
-
"typescript": "^5.8.
|
|
42
|
-
"vite": "^6.2.
|
|
43
|
-
"vitest": "^
|
|
44
|
-
"@synnaxlabs/vite-plugin": "0.0.1",
|
|
41
|
+
"react-dom": "^19.1.0",
|
|
42
|
+
"typescript": "^5.8.3",
|
|
43
|
+
"vite": "^6.2.5",
|
|
44
|
+
"vitest": "^3.1.1",
|
|
45
45
|
"@synnaxlabs/tsconfig": "0.0.2",
|
|
46
46
|
"eslint-config-synnaxlabs": "0.0.1",
|
|
47
|
-
"stylelint-config-synnaxlabs": "0.0.1"
|
|
47
|
+
"stylelint-config-synnaxlabs": "0.0.1",
|
|
48
|
+
"@synnaxlabs/vite-plugin": "0.0.1"
|
|
48
49
|
},
|
|
49
50
|
"files": [
|
|
50
51
|
"dist"
|
|
@@ -160,6 +161,7 @@
|
|
|
160
161
|
"lint": "eslint --cache",
|
|
161
162
|
"fix": "eslint --cache --fix",
|
|
162
163
|
"preview": "vite preview",
|
|
163
|
-
"madge": "madge --circular src"
|
|
164
|
+
"madge": "madge --circular src",
|
|
165
|
+
"generate-theme": "tsx src/theming/static/generate.ts"
|
|
164
166
|
}
|
|
165
167
|
}
|
package/dist/Center-BjxFDxgi.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const n=require("./jsx-runtime-UYeBbnYT.cjs");require("./Pack-BbwDtaE6.cjs");const i=require("./Space-NNqCWFbg.cjs"),e=require("./css-CU7tous7.cjs"),u=({className:r,justify:s="center",align:t="center",...c})=>n.jsxRuntimeExports.jsx(i.Space,{justify:s,align:t,className:e.CSS(e.CSS.BM("space","centered"),r),...c});exports.Center=u;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const E=require("./jsx-runtime-UYeBbnYT.cjs"),M=require("./state-BKyv_jWZ.cjs"),S=require("react"),O=require("react-dom");require("./Pack-BbwDtaE6.cjs");const q=require("./Space-NNqCWFbg.cjs"),e=require("./css-CU7tous7.cjs"),T=require("./useClickOutside-EJHWO4Q9.cjs"),p={visible:!1,position:e.G.ZERO,cursor:e.G.ZERO,keys:[]},x=e.CSS.BM("context","selected"),C=e.CSS.BE("context","target"),m=e.CSS.BE("menu-context","container"),N=o=>{let t=o;for(;!t.classList.contains(C);){if(t.classList.contains(m)||t.parentElement==null)return o;t=t.parentElement}return t.classList.contains(C)?t:o},R=o=>{var c;const t=N(o);if(t==null)return[];const r=Array.from(((c=t.parentElement)==null?void 0:c.querySelectorAll(`.${x}`))??[]);return r.includes(t)?r:[t]},h=()=>{const o=S.useRef(null),[t,r]=S.useState(p),c=(n,s)=>{const i=e.G.construct(n);if(typeof n=="object"&&"preventDefault"in n){n.preventDefault(),n.stopPropagation();const u=R(n.target);s??(s=M.c$1.unique(u.map(l=>l.id).filter(l=>l.length>0)))}else s=[];r({visible:!0,keys:s,position:i,cursor:i})},d=n=>{o.current=n,n!=null&&r(s=>{if(!s.visible)return s;const{adjustedDialog:i}=T.H.dialog({container:e.Mo.construct(0,0,window.innerWidth,window.innerHeight),dialog:e.Mo.construct(n),target:e.Mo.construct(s.cursor,0,0),prefer:[{y:"bottom"}]}),u=e.Mo.topLeft(i);return e.G.equals(s.position,u)?s:{...s,position:u}})},a=()=>r(p);return T.useClickOutside({ref:o,onClickOutside:a}),{...t,close:a,open:c,ref:d}},b=({ref:o,children:t,menu:r,visible:c,open:d,close:a,position:n,keys:s,className:i,cursor:u,...l})=>{const f=c?r==null?void 0:r({keys:s}):null;return E.jsxRuntimeExports.jsxs("div",{className:e.CSS(m,i,e.CSS.inheritDims()),onContextMenu:d,...l,children:[t,f!=null&&O.createPortal(E.jsxRuntimeExports.jsx(q.Space,{className:e.CSS(e.CSS.B("menu-context"),e.CSS.bordered()),ref:o,style:{left:n.x,top:n.y},onClick:a,size:1/2,children:f}),document.body)]})};exports.CONTEXT_SELECTED=x;exports.CONTEXT_TARGET=C;exports.ContextMenu=b;exports.useContextMenu=h;
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { j as E } from "./jsx-runtime-CYK1ROHF.js";
|
|
2
|
-
import { e as S } from "./state-w46WTrh-.js";
|
|
3
|
-
import { useRef as b, useState as h } from "react";
|
|
4
|
-
import { createPortal as M } from "react-dom";
|
|
5
|
-
import "./Pack-D50qN0Vu.js";
|
|
6
|
-
import { S as N } from "./Space-DBmhvGQL.js";
|
|
7
|
-
import { G as d, C as r, M as f } from "./css-rxwBYwM1.js";
|
|
8
|
-
import { u as O, H as g } from "./useClickOutside-vpv_GiBw.js";
|
|
9
|
-
const C = {
|
|
10
|
-
visible: !1,
|
|
11
|
-
position: d.ZERO,
|
|
12
|
-
cursor: d.ZERO,
|
|
13
|
-
keys: []
|
|
14
|
-
}, R = r.BM("context", "selected"), T = r.BE("context", "target"), x = r.BE("menu-context", "container"), j = (o) => {
|
|
15
|
-
let t = o;
|
|
16
|
-
for (; !t.classList.contains(T); ) {
|
|
17
|
-
if (t.classList.contains(x) || t.parentElement == null) return o;
|
|
18
|
-
t = t.parentElement;
|
|
19
|
-
}
|
|
20
|
-
return t.classList.contains(T) ? t : o;
|
|
21
|
-
}, A = (o) => {
|
|
22
|
-
var i;
|
|
23
|
-
const t = j(o);
|
|
24
|
-
if (t == null) return [];
|
|
25
|
-
const s = Array.from(
|
|
26
|
-
((i = t.parentElement) == null ? void 0 : i.querySelectorAll(`.${R}`)) ?? []
|
|
27
|
-
);
|
|
28
|
-
return s.includes(t) ? s : [t];
|
|
29
|
-
}, q = () => {
|
|
30
|
-
const o = b(null), [t, s] = h(C), i = (e, n) => {
|
|
31
|
-
const c = d.construct(e);
|
|
32
|
-
if (typeof e == "object" && "preventDefault" in e) {
|
|
33
|
-
e.preventDefault(), e.stopPropagation();
|
|
34
|
-
const l = A(e.target);
|
|
35
|
-
n ?? (n = S.unique(l.map((u) => u.id).filter((u) => u.length > 0)));
|
|
36
|
-
} else n = [];
|
|
37
|
-
s({ visible: !0, keys: n, position: c, cursor: c });
|
|
38
|
-
}, m = (e) => {
|
|
39
|
-
o.current = e, e != null && s((n) => {
|
|
40
|
-
if (!n.visible) return n;
|
|
41
|
-
const { adjustedDialog: c } = g.dialog({
|
|
42
|
-
container: f.construct(0, 0, window.innerWidth, window.innerHeight),
|
|
43
|
-
dialog: f.construct(e),
|
|
44
|
-
target: f.construct(n.cursor, 0, 0),
|
|
45
|
-
prefer: [{ y: "bottom" }]
|
|
46
|
-
}), l = f.topLeft(c);
|
|
47
|
-
return d.equals(n.position, l) ? n : { ...n, position: l };
|
|
48
|
-
});
|
|
49
|
-
}, a = () => s(C);
|
|
50
|
-
return O({ ref: o, onClickOutside: a }), {
|
|
51
|
-
...t,
|
|
52
|
-
close: a,
|
|
53
|
-
open: i,
|
|
54
|
-
ref: m
|
|
55
|
-
};
|
|
56
|
-
}, P = ({
|
|
57
|
-
ref: o,
|
|
58
|
-
children: t,
|
|
59
|
-
menu: s,
|
|
60
|
-
visible: i,
|
|
61
|
-
open: m,
|
|
62
|
-
close: a,
|
|
63
|
-
position: e,
|
|
64
|
-
keys: n,
|
|
65
|
-
className: c,
|
|
66
|
-
cursor: l,
|
|
67
|
-
...u
|
|
68
|
-
}) => {
|
|
69
|
-
const p = i ? s == null ? void 0 : s({ keys: n }) : null;
|
|
70
|
-
return /* @__PURE__ */ E.jsxs(
|
|
71
|
-
"div",
|
|
72
|
-
{
|
|
73
|
-
className: r(x, c, r.inheritDims()),
|
|
74
|
-
onContextMenu: m,
|
|
75
|
-
...u,
|
|
76
|
-
children: [
|
|
77
|
-
t,
|
|
78
|
-
p != null && M(
|
|
79
|
-
/* @__PURE__ */ E.jsx(
|
|
80
|
-
N,
|
|
81
|
-
{
|
|
82
|
-
className: r(r.B("menu-context"), r.bordered()),
|
|
83
|
-
ref: o,
|
|
84
|
-
style: { left: e.x, top: e.y },
|
|
85
|
-
onClick: a,
|
|
86
|
-
size: 1 / 2,
|
|
87
|
-
children: p
|
|
88
|
-
}
|
|
89
|
-
),
|
|
90
|
-
document.body
|
|
91
|
-
)
|
|
92
|
-
]
|
|
93
|
-
}
|
|
94
|
-
);
|
|
95
|
-
};
|
|
96
|
-
export {
|
|
97
|
-
R as C,
|
|
98
|
-
T as a,
|
|
99
|
-
P as b,
|
|
100
|
-
q as u
|
|
101
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const c=require("./jsx-runtime-UYeBbnYT.cjs"),m=require("./state-BKyv_jWZ.cjs"),o=require("./Divider-MIbyu5ZH.cjs"),u=({ref:e,format:t="dateTime",suppliedTZ:i="UTC",displayTZ:r="local",children:s,...n})=>c.jsxRuntimeExports.jsx(o.Text,{ref:e,...n,children:new m.m(s,i).fString(t,r)});exports.DateTime=u;
|