@synnaxlabs/pluto 0.42.3 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/README.md +3 -3
  2. package/dist/{Center-D0JeI7Ta.js → Center-Bq5L7oy0.js} +2 -2
  3. package/dist/{Center-DuI3XH-Q.cjs → Center-DE_BtCCX.cjs} +1 -1
  4. package/dist/ContextMenu-BC5x7XR5.cjs +1 -0
  5. package/dist/{ContextMenu-BiNr7Gxv.js → ContextMenu-DLM5eLLG.js} +11 -11
  6. package/dist/DateTime-CdNKxVxT.js +17 -0
  7. package/dist/DateTime-DC19AIGq.cjs +1 -0
  8. package/dist/{Divider-DqEkzRIY.js → Divider-CDFHLK9U.js} +213 -215
  9. package/dist/Divider-D74_FAXn.cjs +22 -0
  10. package/dist/Dropdown-BpoU-xVd.cjs +1 -0
  11. package/dist/Dropdown-CQu3yo3v.js +327 -0
  12. package/dist/Haul-D6kpOYBa.js +124 -0
  13. package/dist/Haul-De8axVdi.cjs +1 -0
  14. package/dist/{Item-C5SQraZM.js → Item-BgUwEjzV.js} +6 -6
  15. package/dist/{Item-DSBs9VLu.cjs → Item-BrHZi6Fl.cjs} +1 -1
  16. package/dist/{Keyboard-Ca7TAAHK.cjs → Keyboard-CiNuYBa3.cjs} +1 -1
  17. package/dist/{Keyboard-Duo41pJL.js → Keyboard-DjeQa-Nx.js} +2 -2
  18. package/dist/{Link-B9ZGvoBU.cjs → Link-Bngd8rrL.cjs} +1 -1
  19. package/dist/{Link-C9GeoB0w.js → Link-y133HE5v.js} +1 -1
  20. package/dist/Pack-80N7XB5O.cjs +1 -0
  21. package/dist/Pack-BiS6QIuA.js +52 -0
  22. package/dist/Provider-B1j7nPL9.cjs +1 -0
  23. package/dist/Provider-CAR23fYq.js +464 -0
  24. package/dist/{Space-DvalhzRj.cjs → Space-ByFmfiTa.cjs} +1 -1
  25. package/dist/{Space-CyTH97CN.js → Space-DxHm2ok7.js} +1 -1
  26. package/dist/{Text-BR4FW9Hy.js → Text-B1uUpUKk.js} +125 -122
  27. package/dist/Text-CLsJyQGy.cjs +4 -0
  28. package/dist/{Text-8ps3Uw4T.js → Text-CacHYC7L.js} +4 -4
  29. package/dist/{Text-DkA06TeT.cjs → Text-DTPuORh0.cjs} +1 -1
  30. package/dist/Text-Ddc0C5JU.cjs +1 -0
  31. package/dist/{Text-sH_NOelc.js → Text-P0b041la.js} +17 -17
  32. package/dist/{Toggle-BRuUrO2N.js → Toggle-BC1o8qt5.js} +115 -109
  33. package/dist/Toggle-D-vvd8lz.cjs +1 -0
  34. package/dist/{Video-DWStbcmD.js → Video-Bq_WSdfc.js} +1 -1
  35. package/dist/{Video-DgjuFLiE.cjs → Video-BuzHLiXL.cjs} +1 -1
  36. package/dist/{WithIcon-BhR6nwRh.js → WithIcon-B7VPBqA2.js} +24 -27
  37. package/dist/WithIcon-CCnlO2LC.cjs +1 -0
  38. package/dist/align.cjs +1 -1
  39. package/dist/align.js +1 -1
  40. package/dist/array-CPtP5Oov.js +7 -0
  41. package/dist/array-CZHEGH95.cjs +1 -0
  42. package/dist/button.cjs +1 -1
  43. package/dist/button.js +1 -1
  44. package/dist/color.cjs +1 -1
  45. package/dist/color.js +1 -1
  46. package/dist/css-C7rJrqRi.cjs +38 -0
  47. package/dist/css-DjQu2Qyf.js +12511 -0
  48. package/dist/css.cjs +1 -1
  49. package/dist/css.js +11 -5
  50. package/dist/deep-BRgXTyZn.cjs +1 -0
  51. package/dist/deep-D72Fid_q.js +193 -0
  52. package/dist/{dimensions-By-vgVks.cjs → dimensions-BmlCx5q4.cjs} +1 -1
  53. package/dist/{dimensions-B6qmnzv3.js → dimensions-FnMV2fyj.js} +1 -1
  54. package/dist/dropdown.cjs +1 -1
  55. package/dist/dropdown.js +1 -1
  56. package/dist/eraser-C0Kv4_kL.cjs +11 -0
  57. package/dist/{eraser-CK8SwEJa.js → eraser-CupVBBBp.js} +246 -427
  58. package/dist/ether.cjs +1 -1
  59. package/dist/ether.js +36 -37
  60. package/dist/{external-B1YsdhS4.js → external-8zJ3fvo2.js} +122 -123
  61. package/dist/{external-_8qdWaAg.js → external-BDh272rT.js} +2 -2
  62. package/dist/{external-BnK4UIFe.js → external-BYsOdgw5.js} +3 -3
  63. package/dist/{external-DmryCcwg.cjs → external-BgKH42un.cjs} +1 -1
  64. package/dist/external-BmeMUsxr.js +399 -0
  65. package/dist/{external-DissGp_3.js → external-CKag7gXR.js} +8 -8
  66. package/dist/{external-C0X4mXVG.js → external-CVHgvs0C.js} +6 -6
  67. package/dist/{external-B8uaUKhb.cjs → external-CjTwWT6m.cjs} +1 -1
  68. package/dist/{external-BDkqwq72.js → external-Cjnx793K.js} +7901 -7839
  69. package/dist/{external-CUgPP-JD.cjs → external-D1gwMWza.cjs} +1 -1
  70. package/dist/{external-BwUa_5Vs.cjs → external-D38Y0J6S.cjs} +1 -1
  71. package/dist/{external-zbKPQ9ls.cjs → external-D8mHEAIG.cjs} +2 -2
  72. package/dist/external-DC1RT1Js.cjs +1 -0
  73. package/dist/external-DHw0SdIj.cjs +1 -0
  74. package/dist/external-DOujCKRS.cjs +1 -0
  75. package/dist/external-DlyrUZhP.cjs +1 -0
  76. package/dist/external-Ds5GDIp9.cjs +1 -0
  77. package/dist/{external-BOMdfX8_.js → external-DuvwfKLw.js} +2 -2
  78. package/dist/external-GjPk23XZ.cjs +1 -0
  79. package/dist/{external-DQwznOyH.cjs → external-IsogMmdT.cjs} +38 -38
  80. package/dist/{external-C7yPkamb.js → external-ZV7pEm55.js} +8 -8
  81. package/dist/{external-Bl8q9UBF.js → external-firJ8w9n.js} +1837 -1838
  82. package/dist/{external-bSUra-q7.js → external-l7imNJRR.js} +26 -26
  83. package/dist/external-upR9Jz-8.js +60 -0
  84. package/dist/{font-XlUAG1-r.cjs → font-C5EV9fq1.cjs} +1 -1
  85. package/dist/{font-CjYcjBiv.js → font-Cy9UYjyY.js} +2 -2
  86. package/dist/fontString-CUy7T-OR.cjs +1 -0
  87. package/dist/{fontString-BN1kd1AP.js → fontString-CynarMI1.js} +6 -5
  88. package/dist/header.cjs +1 -1
  89. package/dist/header.js +1 -1
  90. package/dist/hooks-B92WH57y.cjs +1 -0
  91. package/dist/{hooks-DjznxGgm.js → hooks-u_TgL0Xi.js} +79 -79
  92. package/dist/index.cjs +7 -7
  93. package/dist/index.js +7286 -7253
  94. package/dist/input.cjs +1 -1
  95. package/dist/input.js +1 -1
  96. package/dist/list.cjs +1 -1
  97. package/dist/list.js +1 -1
  98. package/dist/menu.cjs +1 -1
  99. package/dist/menu.js +1 -1
  100. package/dist/pluto.css +1 -1
  101. package/dist/provider-B8IM-N4g.cjs +154 -0
  102. package/dist/provider-CQqS-teQ.js +31994 -0
  103. package/dist/src/aether/aether/aether.d.ts +16 -16
  104. package/dist/src/aether/aether/aether.d.ts.map +1 -1
  105. package/dist/src/aether/aether/aether.spec.d.ts +5 -0
  106. package/dist/src/aether/aether/aether.spec.d.ts.map +1 -0
  107. package/dist/src/aether/main.d.ts +68 -19
  108. package/dist/src/aether/main.d.ts.map +1 -1
  109. package/dist/src/aether/main.spec.d.ts +2 -2
  110. package/dist/src/aether/main.spec.d.ts.map +1 -1
  111. package/dist/src/aether/message.d.ts +24 -14
  112. package/dist/src/aether/message.d.ts.map +1 -1
  113. package/dist/src/alamos/aether/alamos.d.ts +3 -3
  114. package/dist/src/alamos/aether/alamos.d.ts.map +1 -1
  115. package/dist/src/align/Pack.d.ts.map +1 -1
  116. package/dist/src/breadcrumb/Breadcrumb.d.ts.map +1 -1
  117. package/dist/src/button/Button.d.ts +1 -2
  118. package/dist/src/button/Button.d.ts.map +1 -1
  119. package/dist/src/button/color.d.ts +2 -2
  120. package/dist/src/button/color.d.ts.map +1 -1
  121. package/dist/src/channel/Select.d.ts.map +1 -1
  122. package/dist/src/color/Provider.d.ts +10 -10
  123. package/dist/src/color/Provider.d.ts.map +1 -1
  124. package/dist/src/css/color.d.ts +2 -2
  125. package/dist/src/css/color.d.ts.map +1 -1
  126. package/dist/src/divider/Divider.d.ts.map +1 -1
  127. package/dist/src/dropdown/Dropdown.d.ts.map +1 -1
  128. package/dist/src/form/Field.d.ts +3 -3
  129. package/dist/src/form/Field.d.ts.map +1 -1
  130. package/dist/src/form/Form.d.ts +42 -28
  131. package/dist/src/form/Form.d.ts.map +1 -1
  132. package/dist/src/form/synced.d.ts +8 -8
  133. package/dist/src/form/synced.d.ts.map +1 -1
  134. package/dist/src/haul/Haul.d.ts +6 -6
  135. package/dist/src/haul/Haul.d.ts.map +1 -1
  136. package/dist/src/hooks/ref.d.ts +2 -2
  137. package/dist/src/hooks/ref.d.ts.map +1 -1
  138. package/dist/src/hooks/useResize.d.ts.map +1 -1
  139. package/dist/src/index.d.ts +0 -1
  140. package/dist/src/index.d.ts.map +1 -1
  141. package/dist/src/input/HelpText.d.ts +4 -4
  142. package/dist/src/input/HelpText.d.ts.map +1 -1
  143. package/dist/src/input/Item.d.ts +1 -1
  144. package/dist/src/input/Item.d.ts.map +1 -1
  145. package/dist/src/input/Text.d.ts +2 -3
  146. package/dist/src/input/Text.d.ts.map +1 -1
  147. package/dist/src/label/Select.d.ts.map +1 -1
  148. package/dist/src/list/Selector.d.ts.map +1 -1
  149. package/dist/src/list/useSelect.d.ts.map +1 -1
  150. package/dist/src/memo/proxyMemo.d.ts.map +1 -1
  151. package/dist/src/memo/useMemoCompare.d.ts +3 -3
  152. package/dist/src/memo/useMemoCompare.d.ts.map +1 -1
  153. package/dist/src/mosaic/types.d.ts +9 -1
  154. package/dist/src/mosaic/types.d.ts.map +1 -1
  155. package/dist/src/note/Note.d.ts +2 -2
  156. package/dist/src/note/Note.d.ts.map +1 -1
  157. package/dist/src/observe/use.d.ts +2 -2
  158. package/dist/src/observe/use.d.ts.map +1 -1
  159. package/dist/src/pluto/aether/pluto.d.ts.map +1 -1
  160. package/dist/src/ranger/Select.d.ts.map +1 -1
  161. package/dist/src/select/Button.d.ts +5 -3
  162. package/dist/src/select/Button.d.ts.map +1 -1
  163. package/dist/src/select/Multiple.d.ts.map +1 -1
  164. package/dist/src/select/Single.d.ts.map +1 -1
  165. package/dist/src/state/state.d.ts +2 -1
  166. package/dist/src/state/state.d.ts.map +1 -1
  167. package/dist/src/status/Indicator.d.ts +8 -0
  168. package/dist/src/status/Indicator.d.ts.map +1 -0
  169. package/dist/src/status/Text.d.ts +2 -2
  170. package/dist/src/status/Text.d.ts.map +1 -1
  171. package/dist/src/status/aether/aggregator.d.ts +14 -17
  172. package/dist/src/status/aether/aggregator.d.ts.map +1 -1
  173. package/dist/src/status/aether/types.d.ts +5 -17
  174. package/dist/src/status/aether/types.d.ts.map +1 -1
  175. package/dist/src/status/colors.d.ts +1 -1
  176. package/dist/src/status/colors.d.ts.map +1 -1
  177. package/dist/src/status/external.d.ts +1 -1
  178. package/dist/src/status/external.d.ts.map +1 -1
  179. package/dist/src/synnax/Provider.d.ts +2 -0
  180. package/dist/src/synnax/Provider.d.ts.map +1 -1
  181. package/dist/src/synnax/aether/provider.d.ts +28 -28
  182. package/dist/src/synnax/aether/provider.d.ts.map +1 -1
  183. package/dist/src/table/Table.d.ts +1 -1
  184. package/dist/src/table/Table.d.ts.map +1 -1
  185. package/dist/src/table/aether/Table.d.ts +28 -28
  186. package/dist/src/table/aether/Table.d.ts.map +1 -1
  187. package/dist/src/table/cells/Cells.d.ts +16 -16
  188. package/dist/src/table/cells/Cells.d.ts.map +1 -1
  189. package/dist/src/table/cells/registry.d.ts +2 -2
  190. package/dist/src/table/cells/registry.d.ts.map +1 -1
  191. package/dist/src/tabs/types.d.ts +3 -3
  192. package/dist/src/tabs/types.d.ts.map +1 -1
  193. package/dist/src/telem/aether/context.d.ts +1 -1
  194. package/dist/src/telem/aether/context.d.ts.map +1 -1
  195. package/dist/src/telem/aether/pipeline.d.ts +19 -19
  196. package/dist/src/telem/aether/pipeline.d.ts.map +1 -1
  197. package/dist/src/telem/aether/provider.d.ts +4 -4
  198. package/dist/src/telem/aether/provider.d.ts.map +1 -1
  199. package/dist/src/telem/aether/remote.d.ts +27 -28
  200. package/dist/src/telem/aether/remote.d.ts.map +1 -1
  201. package/dist/src/telem/aether/static.d.ts +13 -13
  202. package/dist/src/telem/aether/static.d.ts.map +1 -1
  203. package/dist/src/telem/aether/telem.d.ts +44 -45
  204. package/dist/src/telem/aether/telem.d.ts.map +1 -1
  205. package/dist/src/telem/aether/transformers.d.ts +44 -47
  206. package/dist/src/telem/aether/transformers.d.ts.map +1 -1
  207. package/dist/src/telem/client/cache/cache.d.ts +1 -1
  208. package/dist/src/telem/client/cache/cache.d.ts.map +1 -1
  209. package/dist/src/telem/client/streamer.d.ts.map +1 -1
  210. package/dist/src/telem/control/Chip.d.ts +1 -1
  211. package/dist/src/telem/control/Chip.d.ts.map +1 -1
  212. package/dist/src/telem/control/Controller.d.ts +1 -1
  213. package/dist/src/telem/control/Controller.d.ts.map +1 -1
  214. package/dist/src/telem/control/Indicator.d.ts +1 -1
  215. package/dist/src/telem/control/Indicator.d.ts.map +1 -1
  216. package/dist/src/telem/control/StateProvider.d.ts +1 -3
  217. package/dist/src/telem/control/StateProvider.d.ts.map +1 -1
  218. package/dist/src/telem/control/aether/chip.d.ts +19 -21
  219. package/dist/src/telem/control/aether/chip.d.ts.map +1 -1
  220. package/dist/src/telem/control/aether/controller.d.ts +17 -14
  221. package/dist/src/telem/control/aether/controller.d.ts.map +1 -1
  222. package/dist/src/telem/control/aether/indicator.d.ts +25 -28
  223. package/dist/src/telem/control/aether/indicator.d.ts.map +1 -1
  224. package/dist/src/telem/control/aether/legend.d.ts +13 -13
  225. package/dist/src/telem/control/aether/legend.d.ts.map +1 -1
  226. package/dist/src/telem/control/aether/state.d.ts +8 -8
  227. package/dist/src/telem/control/aether/state.d.ts.map +1 -1
  228. package/dist/src/text/Editable.d.ts.map +1 -1
  229. package/dist/src/text/Text.d.ts +2 -2
  230. package/dist/src/text/Text.d.ts.map +1 -1
  231. package/dist/src/text/WithIcon.d.ts.map +1 -1
  232. package/dist/src/text/core/dimensions.d.ts +24 -0
  233. package/dist/src/text/core/dimensions.d.ts.map +1 -0
  234. package/dist/src/text/core/dimensions.spec.d.ts +2 -0
  235. package/dist/src/text/core/dimensions.spec.d.ts.map +1 -0
  236. package/dist/src/text/core/external.d.ts +3 -0
  237. package/dist/src/text/core/external.d.ts.map +1 -0
  238. package/dist/src/text/core/index.d.ts +1 -1
  239. package/dist/src/text/core/index.d.ts.map +1 -1
  240. package/dist/src/text/core/types.d.ts +5 -5
  241. package/dist/src/text/core/types.d.ts.map +1 -1
  242. package/dist/src/text/external.d.ts +1 -1
  243. package/dist/src/text/external.d.ts.map +1 -1
  244. package/dist/src/theming/aether/provider.d.ts +809 -809
  245. package/dist/src/theming/aether/provider.d.ts.map +1 -1
  246. package/dist/src/theming/core/theme.d.ts +423 -424
  247. package/dist/src/theming/core/theme.d.ts.map +1 -1
  248. package/dist/src/tooltip/Dialog.d.ts.map +1 -1
  249. package/dist/src/tree/Tree.d.ts.map +1 -1
  250. package/dist/src/tree/core.d.ts.map +1 -1
  251. package/dist/src/triggers/triggers.d.ts +1 -1
  252. package/dist/src/triggers/triggers.d.ts.map +1 -1
  253. package/dist/src/util/component.d.ts +1 -1
  254. package/dist/src/util/component.d.ts.map +1 -1
  255. package/dist/src/util/zod.d.ts +2 -2
  256. package/dist/src/util/zod.d.ts.map +1 -1
  257. package/dist/src/viewport/use.d.ts +1 -1
  258. package/dist/src/viewport/use.d.ts.map +1 -1
  259. package/dist/src/vis/axis/axis.d.ts +10 -10
  260. package/dist/src/vis/axis/axis.d.ts.map +1 -1
  261. package/dist/src/vis/axis/ticks.d.ts +2 -2
  262. package/dist/src/vis/axis/ticks.d.ts.map +1 -1
  263. package/dist/src/vis/button/aether/button.d.ts +25 -7
  264. package/dist/src/vis/button/aether/button.d.ts.map +1 -1
  265. package/dist/src/vis/button/use.d.ts +5 -3
  266. package/dist/src/vis/button/use.d.ts.map +1 -1
  267. package/dist/src/vis/canvas/aether/canvas.d.ts +11 -11
  268. package/dist/src/vis/canvas/aether/canvas.d.ts.map +1 -1
  269. package/dist/src/vis/diagram/Diagram.d.ts +3 -2
  270. package/dist/src/vis/diagram/Diagram.d.ts.map +1 -1
  271. package/dist/src/vis/diagram/aether/Diagram.d.ts +32 -32
  272. package/dist/src/vis/diagram/aether/Diagram.d.ts.map +1 -1
  273. package/dist/src/vis/diagram/aether/types.d.ts +19 -45
  274. package/dist/src/vis/diagram/aether/types.d.ts.map +1 -1
  275. package/dist/src/vis/diagram/align.d.ts.map +1 -1
  276. package/dist/src/vis/diagram/edge/connector/connector.d.ts +2 -2
  277. package/dist/src/vis/diagram/edge/connector/connector.d.ts.map +1 -1
  278. package/dist/src/vis/draw2d/canvas.d.ts +1 -4
  279. package/dist/src/vis/draw2d/canvas.d.ts.map +1 -1
  280. package/dist/src/vis/draw2d/index.d.ts.map +1 -1
  281. package/dist/src/vis/eraser/aether/eraser.d.ts +11 -11
  282. package/dist/src/vis/eraser/aether/eraser.d.ts.map +1 -1
  283. package/dist/src/vis/eraser/use.d.ts +1 -1
  284. package/dist/src/vis/eraser/use.d.ts.map +1 -1
  285. package/dist/src/vis/grid/grid.d.ts +3 -3
  286. package/dist/src/vis/grid/grid.d.ts.map +1 -1
  287. package/dist/src/vis/legend/Container.d.ts +7 -7
  288. package/dist/src/vis/legend/Container.d.ts.map +1 -1
  289. package/dist/src/vis/light/aether/light.d.ts +7 -8
  290. package/dist/src/vis/light/aether/light.d.ts.map +1 -1
  291. package/dist/src/vis/light/use.d.ts +2 -2
  292. package/dist/src/vis/light/use.d.ts.map +1 -1
  293. package/dist/src/vis/line/Line.d.ts +1 -1
  294. package/dist/src/vis/line/Line.d.ts.map +1 -1
  295. package/dist/src/vis/line/aether/line.d.ts +10 -10
  296. package/dist/src/vis/line/aether/line.d.ts.map +1 -1
  297. package/dist/src/vis/lineplot/Axis.d.ts +2 -2
  298. package/dist/src/vis/lineplot/Axis.d.ts.map +1 -1
  299. package/dist/src/vis/lineplot/Line.d.ts +1 -1
  300. package/dist/src/vis/lineplot/Line.d.ts.map +1 -1
  301. package/dist/src/vis/lineplot/LinePlot.d.ts +2 -2
  302. package/dist/src/vis/lineplot/LinePlot.d.ts.map +1 -1
  303. package/dist/src/vis/lineplot/aether/BoundQuerier.d.ts +7 -7
  304. package/dist/src/vis/lineplot/aether/BoundQuerier.d.ts.map +1 -1
  305. package/dist/src/vis/lineplot/aether/LinePlot.d.ts +30 -30
  306. package/dist/src/vis/lineplot/aether/LinePlot.d.ts.map +1 -1
  307. package/dist/src/vis/lineplot/aether/XAxis.d.ts +64 -64
  308. package/dist/src/vis/lineplot/aether/XAxis.d.ts.map +1 -1
  309. package/dist/src/vis/lineplot/aether/YAxis.d.ts +64 -64
  310. package/dist/src/vis/lineplot/aether/YAxis.d.ts.map +1 -1
  311. package/dist/src/vis/lineplot/aether/axis.d.ts +13 -13
  312. package/dist/src/vis/lineplot/aether/axis.d.ts.map +1 -1
  313. package/dist/src/vis/lineplot/range/Annotation.d.ts +2 -2
  314. package/dist/src/vis/lineplot/range/Annotation.d.ts.map +1 -1
  315. package/dist/src/vis/lineplot/range/Provider.d.ts +1 -1
  316. package/dist/src/vis/lineplot/range/Provider.d.ts.map +1 -1
  317. package/dist/src/vis/lineplot/range/aether/annotation.d.ts +11 -11
  318. package/dist/src/vis/lineplot/range/aether/annotation.d.ts.map +1 -1
  319. package/dist/src/vis/lineplot/range/aether/provider.d.ts +31 -29
  320. package/dist/src/vis/lineplot/range/aether/provider.d.ts.map +1 -1
  321. package/dist/src/vis/lineplot/tooltip/Tooltip.d.ts +2 -2
  322. package/dist/src/vis/lineplot/tooltip/Tooltip.d.ts.map +1 -1
  323. package/dist/src/vis/lineplot/tooltip/aether/tooltip.d.ts +29 -29
  324. package/dist/src/vis/lineplot/tooltip/aether/tooltip.d.ts.map +1 -1
  325. package/dist/src/vis/lineplot/useBoundQuerier.d.ts.map +1 -1
  326. package/dist/src/vis/log/Log.d.ts +2 -2
  327. package/dist/src/vis/log/Log.d.ts.map +1 -1
  328. package/dist/src/vis/log/aether/Log.d.ts +37 -37
  329. package/dist/src/vis/log/aether/Log.d.ts.map +1 -1
  330. package/dist/src/vis/measure/Measure.d.ts +1 -1
  331. package/dist/src/vis/measure/Measure.d.ts.map +1 -1
  332. package/dist/src/vis/measure/aether/measure.d.ts +36 -36
  333. package/dist/src/vis/measure/aether/measure.d.ts.map +1 -1
  334. package/dist/src/vis/render/context.d.ts.map +1 -1
  335. package/dist/src/vis/render/loop.d.ts +10 -15
  336. package/dist/src/vis/render/loop.d.ts.map +1 -1
  337. package/dist/src/vis/rule/Rule.d.ts +2 -2
  338. package/dist/src/vis/rule/Rule.d.ts.map +1 -1
  339. package/dist/src/vis/rule/aether/aether.d.ts +10 -10
  340. package/dist/src/vis/rule/aether/aether.d.ts.map +1 -1
  341. package/dist/src/vis/schematic/Forms.d.ts.map +1 -1
  342. package/dist/src/vis/schematic/Grid.d.ts +6 -3
  343. package/dist/src/vis/schematic/Grid.d.ts.map +1 -1
  344. package/dist/src/vis/schematic/SelectOrientation.d.ts +3 -2
  345. package/dist/src/vis/schematic/SelectOrientation.d.ts.map +1 -1
  346. package/dist/src/vis/schematic/Symbols.d.ts +108 -99
  347. package/dist/src/vis/schematic/Symbols.d.ts.map +1 -1
  348. package/dist/src/vis/schematic/external.d.ts +1 -0
  349. package/dist/src/vis/schematic/external.d.ts.map +1 -1
  350. package/dist/src/vis/schematic/primitives/Primitives.d.ts +28 -28
  351. package/dist/src/vis/schematic/primitives/Primitives.d.ts.map +1 -1
  352. package/dist/src/vis/schematic/registry.d.ts +5 -5
  353. package/dist/src/vis/schematic/registry.d.ts.map +1 -1
  354. package/dist/src/vis/setpoint/aether/setpoint.d.ts +11 -11
  355. package/dist/src/vis/setpoint/aether/setpoint.d.ts.map +1 -1
  356. package/dist/src/vis/setpoint/use.d.ts +2 -2
  357. package/dist/src/vis/setpoint/use.d.ts.map +1 -1
  358. package/dist/src/vis/text/atlas.d.ts +0 -2
  359. package/dist/src/vis/text/atlas.d.ts.map +1 -1
  360. package/dist/src/vis/text/index.d.ts.map +1 -1
  361. package/dist/src/vis/toggle/aether/toggle.d.ts +11 -12
  362. package/dist/src/vis/toggle/aether/toggle.d.ts.map +1 -1
  363. package/dist/src/vis/toggle/use.d.ts +2 -2
  364. package/dist/src/vis/toggle/use.d.ts.map +1 -1
  365. package/dist/src/vis/value/aether/value.d.ts +43 -43
  366. package/dist/src/vis/value/aether/value.d.ts.map +1 -1
  367. package/dist/src/vis/value/use.d.ts +15 -15
  368. package/dist/src/vis/value/use.d.ts.map +1 -1
  369. package/dist/state-DAFH2z9y.js +4082 -0
  370. package/dist/state-DwM4WaEw.cjs +27 -0
  371. package/dist/tabs.cjs +1 -1
  372. package/dist/tabs.js +1 -1
  373. package/dist/text.cjs +1 -1
  374. package/dist/text.js +2 -2
  375. package/dist/theming.cjs +1 -1
  376. package/dist/theming.js +2 -2
  377. package/dist/tree.cjs +1 -1
  378. package/dist/tree.js +1 -1
  379. package/dist/triggers.cjs +1 -1
  380. package/dist/triggers.js +1 -1
  381. package/dist/useClickOutside-CUa496t0.cjs +1 -0
  382. package/dist/{useClickOutside-DDCP7Fh-.js → useClickOutside-Dw3KdU3w.js} +22 -22
  383. package/dist/{useDebouncedCallback-DnwYZzjR.cjs → useDebouncedCallback-Bx-HX76R.cjs} +1 -1
  384. package/dist/{useDebouncedCallback-BG4I7mbT.js → useDebouncedCallback-Cvo_HNow.js} +1 -1
  385. package/dist/{useMemoCompare-BViQehyd.js → useMemoCompare-B5QPDK2p.js} +2 -2
  386. package/dist/{useMemoCompare-C2X7Mzx8.cjs → useMemoCompare-BDs2sKw5.cjs} +1 -1
  387. package/dist/useVirtualCursorDragWebKit-CUbBopD6.cjs +1 -0
  388. package/dist/{useVirtualCursorDragWebKit-DTU2tUmp.js → useVirtualCursorDragWebKit-CfxbToxm.js} +7 -7
  389. package/dist/value-BVL4mfhG.cjs +55 -0
  390. package/dist/value-DLy5XRhS.js +10797 -0
  391. package/dist/video.cjs +1 -1
  392. package/dist/video.js +1 -1
  393. package/package.json +24 -23
  394. package/dist/ContextMenu-HpMLd1Ht.cjs +0 -1
  395. package/dist/DateTime-BsjSfOY-.cjs +0 -1
  396. package/dist/DateTime-r6hocEmI.js +0 -17
  397. package/dist/Divider-Dut8qPee.cjs +0 -22
  398. package/dist/Dropdown-BSSe1E1e.cjs +0 -1
  399. package/dist/Dropdown-BrFL1eSc.js +0 -327
  400. package/dist/Haul-C6i2oI7z.cjs +0 -1
  401. package/dist/Haul-CEFSvdy9.js +0 -124
  402. package/dist/Pack-BozAEHBp.js +0 -48
  403. package/dist/Pack-DeZUUdJM.cjs +0 -1
  404. package/dist/Provider-B86QO9NT.js +0 -461
  405. package/dist/Provider-Cw0mSr2D.cjs +0 -1
  406. package/dist/Text-C8GBHl-F.cjs +0 -1
  407. package/dist/Text-CMTkSEWx.cjs +0 -4
  408. package/dist/Toggle-C0lZDyeo.cjs +0 -1
  409. package/dist/WithIcon-BgS5shNZ.cjs +0 -1
  410. package/dist/css-9iEiTRNL.cjs +0 -15
  411. package/dist/css-Cnb9DQMD.js +0 -4747
  412. package/dist/deep-BNa3STCp.cjs +0 -1
  413. package/dist/deep-P35D0Sz7.js +0 -112
  414. package/dist/eraser-BkqFgBRY.cjs +0 -11
  415. package/dist/external-B7NxSklQ.js +0 -60
  416. package/dist/external-BA_VOnV-.js +0 -400
  417. package/dist/external-BGBgNbe2.cjs +0 -1
  418. package/dist/external-CTc1n-JC.cjs +0 -1
  419. package/dist/external-CzTBFiv_.cjs +0 -1
  420. package/dist/external-DGJ8YAe-.cjs +0 -1
  421. package/dist/external-DiLZ1dEk.cjs +0 -1
  422. package/dist/external-Dq8-cbf3.cjs +0 -1
  423. package/dist/fontString-Ddza50DF.cjs +0 -1
  424. package/dist/hooks-B5aLaWzS.cjs +0 -1
  425. package/dist/provider-aWtsGnV8.cjs +0 -58
  426. package/dist/provider-r5Ly36FI.js +0 -12854
  427. package/dist/src/aether/aether/aether.spec.spec.d.ts +0 -5
  428. package/dist/src/aether/aether/aether.spec.spec.d.ts.map +0 -1
  429. package/dist/src/select/Modal.d.ts +0 -1
  430. package/dist/src/select/Modal.d.ts.map +0 -1
  431. package/dist/src/status/Circle.d.ts +0 -8
  432. package/dist/src/status/Circle.d.ts.map +0 -1
  433. package/dist/src/text/dimensions.d.ts +0 -4
  434. package/dist/src/text/dimensions.d.ts.map +0 -1
  435. package/dist/src/vis/performance/Performance.d.ts +0 -2
  436. package/dist/src/vis/performance/Performance.d.ts.map +0 -1
  437. package/dist/src/vis/performance/aether/index.d.ts +0 -2
  438. package/dist/src/vis/performance/aether/index.d.ts.map +0 -1
  439. package/dist/src/vis/performance/aether/performance.d.ts +0 -15
  440. package/dist/src/vis/performance/aether/performance.d.ts.map +0 -1
  441. package/dist/src/vis/performance/index.d.ts +0 -2
  442. package/dist/src/vis/performance/index.d.ts.map +0 -1
  443. package/dist/state-CjGemC7S.js +0 -88
  444. package/dist/state-_FFrG5nH.cjs +0 -1
  445. package/dist/toArray-B7nD2CTw.js +0 -5
  446. package/dist/toArray-BvVYuN_b.cjs +0 -1
  447. package/dist/units-CX_coN92.cjs +0 -1
  448. package/dist/units-Ct3Xl5nK.js +0 -11
  449. package/dist/useClickOutside-CSff8yb-.cjs +0 -1
  450. package/dist/useVirtualCursorDragWebKit-DDmXE4RW.cjs +0 -1
  451. package/dist/value-B6OlPXe1.js +0 -5974
  452. package/dist/value-Bq1w9UY8.cjs +0 -57
@@ -1,57 +0,0 @@
1
- "use strict";var Ra=Object.defineProperty;var $a=(e,n,t)=>n in e?Ra(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var h=(e,n,t)=>$a(e,typeof n!="symbol"?n+"":n,t);const f=require("zod"),g=require("./provider-aWtsGnV8.cjs"),a=require("./css-9iEiTRNL.cjs"),L=require("./eraser-BkqFgBRY.cjs"),Qn=require("./deep-BNa3STCp.cjs"),Es=require("./state-_FFrG5nH.cjs"),Kt=require("./fontString-Ddza50DF.cjs"),Ps=require("./debounce-heEWeOqL.cjs"),qr=require("./dimensions-By-vgVks.cjs"),tr=require("./toArray-BvVYuN_b.cjs");var Oa=Object.defineProperty,Ya=(e,n,t)=>n in e?Oa(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Ge=(e,n,t)=>Ya(e,typeof n!="symbol"?n+"":n,t);class Ma{constructor(n,t){Ge(this,"handlers"),Ge(this,"transform"),Ge(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 La{constructor(n){Ge(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 er=Object.freeze(Object.defineProperty({__proto__:null,BaseObserver:La,Observer:Ma},Symbol.toStringTag,{value:"Module"})),nr="pluto-vis-renderer",Pn=(e,n)=>{e.set(nr,n,!1)},kn=e=>e.get(nr),ks=e=>e.getOptional(nr),tt=(e,n)=>kn(e)(n),za=f.z.object({props:g.ev.nullable(),state:g.tv.connectivity.connectionStateZ.nullable()}),rr={client:null};var it;let Je=(it=class extends g.Composite{constructor(){super(...arguments);h(this,"schema",it.stateZ)}afterUpdate(t){var r;if(t.wasSetPreviously(sr)||An(t,rr),this.state.props==null){this.internal.client!=null&&((r=this.internal.client)==null||r.close(),this.internal.client=null),An(t,this.internal);return}this.prevState.props!=null&&Qn.x.equal(this.state.props,this.prevState.props)&&this.internal.client!=null||(this.internal.client=new g.tv(this.state.props),An(t,this.internal))}},h(it,"TYPE","synnax.Provider"),h(it,"stateZ",za),it);const sr="pluto-client-context",An=(e,n)=>e.set(sr,n),Me=e=>e.get(sr).client,Ds={[Je.TYPE]:Je},Aa=Object.freeze(Object.defineProperty({__proto__:null,Provider:Je,REGISTRY:Ds,ZERO_CONTEXT_VALUE:rr,use:Me},Symbol.toStringTag,{value:"Module"}));class at extends er.Observer{cleanup(){}}class je extends at{set(){}}h(je,"TYPE","noop-boolean-sink");const Dn={type:je.TYPE,props:{},variant:"sink",valueType:"boolean"};class We extends at{set(){}}h(We,"TYPE","noop-numeric-sink");const Rs={type:We.TYPE,props:{},variant:"sink",valueType:"number"};class Ve extends at{value(){return!1}}h(Ve,"TYPE","noop-boolean-source");const ir={type:Ve.TYPE,props:{},variant:"source",valueType:"boolean"};class Xe extends at{value(){return 0}}h(Xe,"TYPE","noop-numeric-source");const $s={type:Xe.TYPE,props:{},variant:"source",valueType:"number"};class Ke extends at{value(){return""}}h(Ke,"TYPE","noop-string-source");const Os={type:Ke.TYPE,props:{},variant:"source",valueType:"string"};class Qe extends at{value(){return{key:"noop",variant:"disabled",message:"unknown",time:a.m.now()}}}h(Qe,"TYPE","noop-status-source");const ar={type:Qe.TYPE,props:{},variant:"source",valueType:"status"};class tn extends at{value(){return a.Dt.ZERO}}h(tn,"TYPE","noop-color-source");const Rn={type:tn.TYPE,props:{},variant:"source",valueType:"color"};class en extends at{value(){return[a.G.ZERO,new a.$t$1([])]}}h(en,"TYPE","noop-series");const Ys={type:en.TYPE,props:{},variant:"source",valueType:"series"},Za={[je.TYPE]:je,[We.TYPE]:We,[Ve.TYPE]:Ve,[Xe.TYPE]:Xe,[Qe.TYPE]:Qe,[tn.TYPE]:tn,[Ke.TYPE]:Ke,[en.TYPE]:en};class Ms{constructor(){h(this,"type","noop")}create(n){const t=Za[n.type];return t==null?null:new t}}const Ia=f.z.instanceof(ArrayBuffer),Le=f.z.object({type:f.z.string(),variant:f.z.enum(["source","sink","source-transformer","sink-transformer"]),valueType:f.z.string(),props:f.z.any(),transfer:f.z.array(Ia).optional()}),ot=Le.extend({variant:f.z.literal("source")}),$n=Le.extend({variant:f.z.literal("sink")}),Ls=Le.extend({variant:f.z.literal("source-transformer")}),zs=Le.extend({variant:f.z.literal("sink-transformer")}),nn=ot.extend({valueType:f.z.literal("series")}),or=ot.extend({valueType:f.z.literal("boolean")}),On=$n.extend({valueType:f.z.literal("boolean")}),Na=zs.extend({valueType:f.z.literal("boolean")}),Ba=Ls.extend({valueType:f.z.literal("boolean")}),As=ot.extend({valueType:f.z.literal("number")}),Zs=$n.extend({valueType:f.z.literal("number")}),lr=ot.extend({valueType:f.z.literal("color")}),cr=ot.extend({valueType:f.z.literal("status")}),ur=ot.extend({valueType:f.z.literal("string")});let Yn=class extends er.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 g.F(`[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 g.F(`[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}cleanup(){}};class F extends Yn{}class Mn extends Yn{}class pt extends F{constructor(){super(...arguments);h(this,"source_")}get source(){if(this.source_==null)throw new g.F("[UnarySourceTransformer] - expected source to exist, but none was found.");return this.source_}value(){return this.transform(this.source.value())}onChange(t){return this.source.onChange(()=>{this.shouldNotify(this.source.value())&&t()})}setSources(t){this.source_=Object.values(t)[0]}shouldNotify(t){return!0}transform(t){throw new g.F(`[UnarySourceTransformer] - expected subclass to define transform method, but none was found.
4
- Make sure to define a method 'transform' on the class.`)}}class Is extends F{constructor(){super(...arguments);h(this,"sources",{})}value(){const t=Object.fromEntries(Object.entries(this.sources).map(([r,s])=>[r,s.value()]));return this.transform(t)}setSources(t){this.sources={...this.sources,...t}}transform(t){throw new g.F(`[MultiSourceTransformer] - expected subclass to define transform method, but none was found.
5
- Make sure to define a method 'transform' on the class.`)}}class Ns extends Yn{constructor(){super(...arguments);h(this,"sinks",{})}get sink(){const[t]=Object.values(this.sinks);if(t==null)throw new g.F("[UnarySinkTransformer] - expected sink to exist, but none was found.");return t}set(t){return this.sink.set(this.transform(t))}setSinks(t){this.sinks={...this.sinks,...t}}transform(t){throw new g.F(`[UnarySinkTransformer] - expected subclass to define transform method, but none was found.
6
- Make sure to define a method 'transform' on the class.`)}}const hr=f.z.object({from:f.z.string(),to:f.z.string()}),dr=f.z.object({connections:f.z.array(hr),outlet:f.z.string(),segments:f.z.record(f.z.string(),ot)});class fr{constructor(n){h(this,"type","pipeline");h(this,"factory");this.factory=n}create(n){switch(n.type){case ce.TYPE:return new ce(n.props,this.factory);case ue.TYPE:return new ue(n.props,this.factory);default:return null}}}class ce extends F{constructor(t,r){super(t);h(this,"schema",dr);h(this,"sources",{});const{connections:s,segments:i}=this.props;Object.entries(i).forEach(([o,l])=>{const c=r.create(l);c!=null&&(this.sources[o]=c)}),s.forEach(({from:o,to:l})=>{const c=this.sources[o],u=this.sources[l];c==null||u==null||"setSources"in u&&u.setSources({[o]:c})})}get outlet(){const{outlet:t}=this.props,r=this.sources[t];if(r==null)throw new g.F(`[SourcePipeline] - expected source to exist at outlet '${t}', but none was found.`);return r}value(){return this.outlet.value()}onChange(t){return this.outlet.onChange(t)}cleanup(){Object.values(this.sources).forEach(t=>{var r;return(r=t.cleanup)==null?void 0:r.call(t)})}}h(ce,"TYPE","source-pipeline");const Bs=(e,n)=>({variant:"source",props:n,type:ce.TYPE,valueType:e}),pr=f.z.object({connections:f.z.array(hr),inlet:f.z.string(),segments:f.z.record(f.z.string(),$n)});class ue extends Mn{constructor(t,r){super(t);h(this,"schema",pr);h(this,"sinks",{});const{connections:s,segments:i}=this.props;Object.entries(i).forEach(([o,l])=>{const c=r.create(l);c!=null&&(this.sinks[o]=c)}),s.forEach(({from:o,to:l})=>{const c=this.sinks[o],u=this.sinks[l];c==null||u==null||"setSinks"in c&&c.setSinks({[l]:u})})}get inlet(){const{inlet:t}=this.props,r=this.sinks[t];if(r==null)throw new g.F(`[SinkPipeline] - expected source to exist at inlet '${t}', but none was found.`);return r}set(t){return this.inlet.set(t)}cleanup(){Object.values(this.sinks).forEach(t=>{var r;return(r=t.cleanup)==null?void 0:r.call(t)})}}h(ue,"TYPE","sink-pipeline");const Us=(e,n)=>({variant:"sink",props:n,type:ue.TYPE,valueType:e}),gr=f.z.object({channel:f.z.number().or(f.z.string())}),mr={variant:"loading",message:"loading data"},yr={variant:"success",message:"data loaded"};class he extends F{constructor(t,r,s){super(r);h(this,"schema",gr);h(this,"client");h(this,"removeStreamHandler",null);h(this,"channelKey",0);h(this,"leadingBuffer",null);h(this,"valid",!1);h(this,"onStatusChange");this.client=t,this.onStatusChange=s==null?void 0:s.onStatusChange}get testingOnlyLeadingBuffer(){return this.leadingBuffer}get testingOnlyValid(){return this.valid}cleanup(){var t,r;(t=this.removeStreamHandler)==null||t.call(this),this.valid=!1,(r=this.leadingBuffer)==null||r.release(),this.leadingBuffer=null,this.removeStreamHandler=null}value(){return a.w$2(this.props.channel)||(this.valid||this.read(),this.leadingBuffer==null||this.leadingBuffer.length===0)?0:this.leadingBuffer.at(-1,!0)}async read(){var t,r,s,i;try{this.valid=!0,(t=this.onStatusChange)==null||t.call(this,mr),(r=this.removeStreamHandler)==null||r.call(this);const o=await this.client.retrieveChannel(this.props.channel),l=c=>{var p;const u=c.get(o.key);if(u==null)return;const d=u.series.at(-1);d!=null&&(d.acquire(),(p=this.leadingBuffer)==null||p.release(),this.leadingBuffer=d),this.notify()};this.removeStreamHandler=await this.client.stream(l,[o.key]),this.notify(),(s=this.onStatusChange)==null||s.call(this,yr)}catch(o){this.valid=!1,(i=this.onStatusChange)==null||i.call(this,g.fromException(o))}}}h(he,"TYPE","stream-channel-value");const _s=async(e,n,t)=>{const r=await e.retrieveChannel(n),s=g.jv.isCalculated(r);if(!t||r.isIndex)return{key:r.key,dataType:r.dataType,virtual:r.virtual,isCalculated:s};if(s){const i=await g.jv.resolveCalculatedIndex(e.retrieveChannel.bind(e),r);if(i==null)throw new g.vt("Failed to resolve calculated index");return{key:(await e.retrieveChannel(i)).key,dataType:a.g$2.TIMESTAMP,virtual:!1,isCalculated:s}}if(r.virtual)throw new g.vt("cannot use virtual channels as a data source");return{key:r.index,dataType:a.g$2.TIMESTAMP,virtual:!1,isCalculated:s}},Ua=f.z.object({timeRange:a.A.z,channel:f.z.number().or(f.z.string()),useIndexOfChannel:f.z.boolean().optional().default(!1)});class de extends F{constructor(t,r,s){super(r);h(this,"client");h(this,"schema",Ua);h(this,"data",new a.$t$1);h(this,"valid",!1);h(this,"channel",null);h(this,"onStatusChange");this.client=t,this.onStatusChange=s==null?void 0:s.onStatusChange}cleanup(){this.data.release(),this.valid=!1,this.channel=null}value(){const{channel:t,timeRange:r}=this.props;if(r.isZero||t===0)return[a.G.ZERO,this.data];this.valid||this.read();const{channel:s,data:i}=this;if(s==null)return[a.G.ZERO,this.data];let o=a.G.max(i.series.map(l=>l.bounds));return s.dataType.equals(a.g$2.TIMESTAMP)&&(o=a.G.min([o,r.numericBounds])),[o,i]}async read(){var t,r,s;try{this.valid=!0,(t=this.onStatusChange)==null||t.call(this,mr);const{timeRange:i,channel:o,useIndexOfChannel:l}=this.props;this.channel=await _s(this.client,o,l);const c=await this.client.read(i,this.channel.key);c.acquire(),this.data=c,this.notify(),(r=this.onStatusChange)==null||r.call(this,yr)}catch(i){this.valid=!1,(s=this.onStatusChange)==null||s.call(this,g.fromException(i))}}}h(de,"TYPE","series-source");const _a=f.z.object({channel:f.z.number().or(f.z.string()),useIndexOfChannel:f.z.boolean().optional().default(!1),timeSpan:a.O.z,keepFor:a.O.z.optional()});class fe extends F{constructor(t,r,s,i=()=>a.m.now()){super(r);h(this,"client");h(this,"data",new a.$t$1([]));h(this,"now");h(this,"onStatusChange");h(this,"channel",null);h(this,"stopStreaming");h(this,"valid",!1);h(this,"schema",_a);this.client=t,this.now=i,this.onStatusChange=s==null?void 0:s.onStatusChange}value(){const{channel:t,timeSpan:r}=this.props;if(t===0)return[a.G.ZERO,this.data];this.valid||this.read();const{data:s,channel:i}=this,o=this.now();if(i!=null&&i.dataType.isVariable)return[a.G.ZERO,this.data];const l=s.series.filter(u=>u.timeRange.end.after(o.sub(r))).map(u=>u.bounds),c=a.G.max(l);return i!=null&&i.dataType.equals(a.g$2.TIMESTAMP)&&(c.lower=Math.max(c.lower,c.upper-Number(r.valueOf()))),[c,this.data]}async read(){var t,r,s,i;try{this.valid=!0,(t=this.onStatusChange)==null||t.call(this,mr);const{channel:o,useIndexOfChannel:l,timeSpan:c}=this.props;this.channel=await _s(this.client,o,l);const u=this.now().spanRange(-c);if(!this.channel.virtual||this.channel.isCalculated){const p=await this.client.read(u,this.channel.key);p.acquire(),this.data.push(p)}(r=this.stopStreaming)==null||r.call(this);const d=p=>{if(this.channel==null)return;const m=p.get(this.channel.key);m!=null&&(m.acquire(),this.data.push(m),this.notify(),this.gcOutOfRangeData())};this.stopStreaming=await this.client.stream(d,[this.channel.key]),this.notify(),(s=this.onStatusChange)==null||s.call(this,yr)}catch(o){this.valid=!1,(i=this.onStatusChange)==null||i.call(this,g.fromException(o))}}gcOutOfRangeData(){const t=this.now().sub(this.props.keepFor??this.props.timeSpan),r=this.data.series.findIndex(s=>s.timeRange.end.before(t));r!==-1&&(this.data.series.splice(r,1).forEach(s=>s.release()),this.gcOutOfRangeData())}cleanup(){var t;(t=this.stopStreaming)==null||t.call(this),this.stopStreaming=void 0,this.data.release(),this.valid=!1}}h(fe,"TYPE","dynamic-series-source");const Fa={[de.TYPE]:de,[fe.TYPE]:fe,[he.TYPE]:he};class Fs{constructor(n){h(this,"type","remote");h(this,"client");this.client=n}create(n,t){const r=Fa[n.type];return r==null?null:new r(this.client,n.props,t)}}const qs=e=>({type:de.TYPE,props:e,variant:"source",valueType:"series"}),Gs=e=>({type:fe.TYPE,props:e,variant:"source",valueType:"series"}),Hs=e=>({type:he.TYPE,props:e,variant:"source",valueType:"number"});class Js{constructor(){h(this,"type","static")}create(n){switch(n.type){case rn.TYPE:return new rn(n.props);case pe.TYPE:return new pe(n.props);case ge.TYPE:return new ge(n.props);case me.TYPE:return new me(n.props);case ye.TYPE:return new ye(n.props);default:return null}}}const vr=f.z.object({data:f.z.array(a.qt),offsets:f.z.array(f.z.number()).optional().default([])});class rn extends F{constructor(t){super(t);h(this,"data");h(this,"schema",vr);this.data=this.props.data.map((r,s)=>new a.k({data:r,dataType:a.g$2.FLOAT32,timeRange:a.A.ZERO,sampleOffset:this.props.offsets[s]??0}))}async value(){return[a.G.max(this.data.map(r=>r.bounds)),this.data]}}h(rn,"TYPE","static-series");const js=vr.extend({rate:a.$$1.z,yOffset:f.z.number().optional().default(0),scroll:f.z.number().optional().default(0),startPosition:f.z.number().optional().default(0),scrollBounds:f.z.boolean().optional().default(!1)});class pe extends F{constructor(t){super(t);h(this,"schema",js);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 a.k({data:r,dataType:a.g$2.FLOAT32,timeRange:a.A.ZERO,sampleOffset:this.props.offsets[s]??0}))}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],i=t[0].data[this.position-1];return[{lower:Number(s),upper:Number(i)},new a.$t$1(t)]}return[a.G.max(t.map(s=>s.bounds)),new a.$t$1(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)}cleanup(){clearInterval(this.interval),this.interval=void 0}}h(pe,"TYPE","iterative-series");const Ws=f.z.number();class ge extends F{constructor(){super(...arguments);h(this,"schema",Ws)}value(){return this.props}}h(ge,"TYPE","static-numeric");const Vs=f.z.string();class me extends F{constructor(){super(...arguments);h(this,"schema",Vs)}value(){return this.props}}h(me,"TYPE","static-string");const Xs=a.Dt.crudeZ;class ye extends F{constructor(){super(...arguments);h(this,"schema",Xs)}value(){return a.Dt.construct(this.props)}}h(ye,"TYPE","static-color");const qa=e=>({type:rn.TYPE,props:e,variant:"source",valueType:"series"}),Ga=e=>({type:pe.TYPE,props:e,variant:"source",valueType:"series"}),Ha=e=>({type:ge.TYPE,props:e,variant:"source",valueType:"number"}),Ja=e=>({type:me.TYPE,props:e,variant:"source",valueType:"string"}),ja=e=>({type:ye.TYPE,props:e,variant:"source",valueType:"color"});class Ks{constructor(){h(this,"type","transformer")}create(n){switch(n.type){case Dt.TYPE:return new Dt(n.props);case Rt.TYPE:return new Rt(n.props);case $t.TYPE:return new $t(n.props);case Ot.TYPE:return new Ot(n.props);case Yt.TYPE:return new Yt(n.props);case Mt.TYPE:return new Mt(n.props);case Lt.TYPE:return new Lt(n.props);case zt.TYPE:return new zt(n.props)}return null}}const Wa=f.z.object({truthy:f.z.number().optional().default(1),falsy:f.z.number().optional().default(0)}),Qs=e=>({props:e,type:Dt.TYPE,variant:"sink",valueType:"boolean"}),Qt=class Qt extends Ns{constructor(){super(...arguments);h(this,"schema",Qt.propsZ)}transform(t){return t?this.props.truthy:this.props.falsy}};h(Qt,"TYPE","boolean-numeric-converter-sink"),h(Qt,"propsZ",Wa);let Dt=Qt;const br=f.z.object({trueBound:a.G.bounds}),ti=e=>({props:e,type:Rt.TYPE,variant:"source",valueType:"boolean"}),te=class te extends pt{constructor(){super(...arguments);h(this,"schema",te.propsZ);h(this,"curr",null)}shouldNotify(t){const r=a.G.contains(this.props.trueBound,t)!==this.curr;return this.curr=a.G.contains(this.props.trueBound,t),r}transform(t){return this.curr=a.G.contains(this.props.trueBound,t),this.curr}};h(te,"TYPE","boolean-source"),h(te,"propsZ",br);let Rt=te;const ei=f.z.object({}),ee=class ee extends Is{constructor(){super(...arguments);h(this,"schema",ee.propsZ)}transform(t){return Object.values(t).reduce((r,s)=>r+s,0)/Object.keys(t).length}};h(ee,"TYPE","mean"),h(ee,"propsZ",ei);let $t=ee;const Va=e=>({props:e,type:$t.TYPE,variant:"source",valueType:"boolean"}),ni=f.z.object({trueVariant:g.variantZ.optional().default("success")}),ne=class ne extends pt{constructor(){super(...arguments);h(this,"schema",ne.propsZ)}transform(t){return t.variant===this.props.trueVariant}};h(ne,"TYPE","boolean-status"),h(ne,"propsZ",ni);let Ot=ne;const Xa=e=>({props:e,type:Ot.TYPE,variant:"source",valueType:"boolean"}),xr=f.z.object({precision:f.z.number().optional().default(2),prefix:f.z.string().optional().default(""),suffix:f.z.string().optional().default(""),notation:a.Yt.notationZ.optional().default("standard")}),re=class re extends pt{constructor(){super(...arguments);h(this,"schema",re.propsZ)}transform(t){const{precision:r,prefix:s,suffix:i,notation:o}=this.props;return`${s}${a.Yt.stringifyNumber(t,r,o)}${i}`}};h(re,"TYPE","stringify-number"),h(re,"propsZ",xr);let Yt=re;const ri=e=>({props:e,type:Yt.TYPE,variant:"source",valueType:"string"}),Tr=f.z.object({windowSize:f.z.number().optional().default(5)});class Mt extends pt{constructor(){super(...arguments);h(this,"schema",Tr);h(this,"values",[])}transform(t){return this.props.windowSize<2?t:this.values.reduce((r,s)=>r+s,0)/this.values.length}shouldNotify(t){return this.props.windowSize<2?!0:(this.values.length>this.props.windowSize&&(this.values=[]),this.values.push(t),this.values.length===this.props.windowSize)}}h(Mt,"TYPE","rolling-average"),h(Mt,"propsZ",ei);const si=e=>({props:e,type:Mt.TYPE,variant:"source",valueType:"number"}),ii=f.z.object({gradient:a.Dt.gradientZ}),se=class se extends pt{constructor(){super(...arguments);h(this,"schema",se.propsZ)}transform(t){return a.Dt.fromGradient(this.props.gradient,t)}};h(se,"TYPE","color-gradient"),h(se,"propsZ",ii);let Lt=se;const ai=e=>({props:e,type:Lt.TYPE,variant:"source",valueType:"color"}),oi=f.z.object({scale:a.b.transform}),ie=class ie extends pt{constructor(){super(...arguments);h(this,"schema",ie.propsZ)}transform(t){const{offset:r,scale:s}=this.props.scale;return t*s+r}};h(ie,"TYPE","scale-number"),h(ie,"propsZ",oi);let zt=ie;const li=e=>({props:e,type:zt.TYPE,variant:"source",valueType:"number"});class Sr{constructor(n){h(this,"factories");h(this,"type","compound");this.factories=n}add(n){this.factories=[...this.factories.filter(t=>t.type!==n.type),n]}create(n,t){for(const r of this.factories){const s=r.create(n,t);if(s!=null)return s}return null}}const ci=e=>{const n=[new Ks,new Js,new Ms],t=new Sr(n);return e!=null&&t.add(new Fs(e)),t.add(new fr(t)),t};let ui=class hi{constructor(n,t){h(this,"factory");h(this,"key");h(this,"parent");this.factory=n,this.key=a.Lt.create(),this.parent=t}child(n,t){const r=new Sr([...this.factory.factories,...tr.A(n)]);return r.add(new fr(r)),new hi(r,t)}create(n,t){const r=this.factory.create(n,t);if(r==null)throw new g.Qt(`Telemetry service could not find a source for type ${n.type}`);return r}};const wr="pluto-telem-context",Ln=e=>e.get(wr),di=(e,n)=>e.set(wr,n),fi=(e,n,t)=>{var i;const r=Ln(e);if(r!=null&&t!=null&&r.key===((i=t==null?void 0:t.parent)==null?void 0:i.key))return t;const s=r.child(n,r);return e.set(wr,s),s};class pi{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||!Qn.x.equal(this.spec,t)}}class Gr extends pi{value(){return this.wrapped.value()}cleanup(){var n,t;(t=(n=this.wrapped).cleanup)==null||t.call(n)}onChange(n){return this.wrapped.onChange(n)}}class Hr extends pi{set(n){this.wrapped.set(n)}cleanup(){var n,t;(t=(n=this.wrapped).cleanup)==null||t.call(n)}}const G=(e,n,t,r)=>{var i;const s=Ln(e);if(t instanceof Gr){if(!t.shouldUpdate(s,n))return t;(i=t.cleanup)==null||i.call(t)}return new Gr(s.create(n,r),s,n)},ze=(e,n,t,r)=>{var i;const s=Ln(e);if(t instanceof Hr){if(!t.shouldUpdate(s,n))return t;(i=t.cleanup)==null||i.call(t)}return new Hr(s.create(n,r),s,n)},gi=(e,n)=>e.dataType.isVariable||e.dataType.equals(a.g$2.UINT8)?e:(n==null&&e.dataType.equals(a.g$2.TIMESTAMP)&&(n=BigInt(e.data[0])),e.convert(a.g$2.FLOAT32,n)),Ka=e=>e.isVariable||e.equals(a.g$2.UINT8)?e:a.g$2.FLOAT32,mi=()=>({purgedSeries:0,purgedBytes:a.R.bytes(0)}),yi={instrumentation:g.g.NOOP,staleEntryThreshold:a.O.seconds(20)};class Qa{constructor(n){h(this,"data",[]);h(this,"props");this.props={...yi,...n}}write(n){n.length!==0&&(n.series.forEach(t=>this.writeOne(gi(t))),this.checkIntegrity(n))}dirtyRead(n){const t=this.data.filter(({data:o})=>o.timeRange.overlapsWith(n)).map(({data:o})=>o);if(t.length===0)return{series:new a.$t$1([]),gaps:[n]};const r=t.map((o,l)=>l===0?a.A.ZERO:new a.A(t[l-1].timeRange.end,o.timeRange.start)).filter(o=>!o.isZero&&o.isValid),s=new a.A(n.start,t[0].timeRange.start),i=new a.A(t[t.length-1].timeRange.end,n.end);return s.isValid&&!s.isZero&&r.unshift(s),i.isValid&&!i.isZero&&r.push(i),{series:new a.$t$1(t),gaps:r}}gc(){const{staleEntryThreshold:n}=this.props,t=mi(),r=this.data.filter(s=>{const i=s.data.refCount>0||a.m.since(s.addedAt).lessThan(n);return i||(t.purgedBytes=t.purgedBytes.add(s.data.byteCapacity)),i});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=a.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:i,insertInto:o,deleteInBetween:l}=r;n=n.slice(s,n.data.length-Number(i)),n.length!==0&&this.data.splice(o,l,{data:n,addedAt:a.m.now()})}checkIntegrity(n){const{instrumentation:{L:t}}=this.props,r=this.data.map(i=>i.data.alignmentBounds);if(r.some((i,o)=>r.some((l,c)=>o===c?!1:a.G.overlapsWith(i,l))))throw t.debug("Cache is in an invalid state - bounds overlap!",()=>({write:n.series.map(i=>i.digest),cacheContents:this.data.map(i=>i.data.digest)})),new Error("Invalid state")}}const to=100,eo=1e6,no=1e4,ro=100,so=40;class io{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",()=>a.m.now());this.props=n,this.curr=null,n.now!=null&&(this.now=n.now),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.series.flatMap(r=>this._write(r));return{flushed:new a.$t$1(t.flatMap(r=>r.flushed.series)),allocated:new a.$t$1(t.flatMap(r=>r.allocated.series))}}allocate(n,t,r){this.counter++;const s=this.props.dataType.isVariable,i=this.props.dataType.equals(a.g$2.TIMESTAMP);return a.k.alloc({capacity:s?n*so:n,dataType:Ka(this.props.dataType),timeRange:r.range(a.m.MAX),sampleOffset:i?BigInt(r.valueOf()):0,glBufferUsage:"dynamic",alignment:t,key:`dynamic-${this.counter}`})}_write(n){const t=this.nextBufferSize(),r={flushed:new a.$t$1([]),allocated:new a.$t$1([])};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=gi(n,this.curr.sampleOffset),i=this.curr.write(s);if(i===n.length)return this.updateAvgRate(n),r;const o=this.now();this.curr.timeRange.end=o,r.flushed.push(this.curr),this.curr=this.allocate(t,n.alignment+BigInt(i),o),r.allocated.push(this.curr);const l=this._write(n.slice(i));return r.flushed.push(l.flushed),r.allocated.push(l.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<ro)return no;const t=a.Wt.roundToNearestMagnitude(this.avgRate*n.seconds);return Math.round(Math.max(Math.min(t,eo),to))}close(){this.curr=null}}class ao{constructor(n){h(this,"channel");h(this,"closed",!1);h(this,"ins");h(this,"static");h(this,"dynamic");this.channel=n.channel,this.ins=n.instrumentation??g.g.NOOP,this.static=new Qa(n),this.dynamic=new io({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}`),new a.$t$1([]);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:new a.$t$1([]),gaps:[n]}):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:a.R.bytes(0)}):this.static.gc()}close(){this.closed=!0,this.dynamic.close(),this.static.close()}}const oo=g.S.seconds(60);class lo{constructor(n){h(this,"props");h(this,"cache",new Map);h(this,"gcInterval");this.props={dynamicBufferSize:oo,gcInterval:g.S.seconds(30),...yi,...n},this.gcInterval=setInterval(()=>this.gc(),this.props.gcInterval.milliseconds)}async populateMissing(n){const{instrumentation:t,channelRetriever:r,dynamicBufferSize:s}=this.props,i=[];for(const l of n)this.cache.has(l)||i.push(l);if(i.length===0)return!0;let o=[];try{o=await r.retrieve(i)}catch{return!1}return o.forEach(l=>{if(this.cache.has(l.key))return;const c=new ao({channel:l,dynamicBufferSize:s,instrumentation:t.child(`cache-${l.name}-${l.key}`)});this.cache.set(l.key,c)}),!0}get(n){const t=this.cache.get(n);if(t!=null)return t;throw new g.Qt(`cache entry for ${n} not found`)}gc(){const{instrumentation:{L:n}}=this.props;n.info("starting garbage collection");const t=mi();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 co{constructor(n){h(this,"args");h(this,"debouncedRead");h(this,"mu",a.Xt.newMutex({requests:new Set,closed:!1}));this.args={...n,instrumentation:n.instrumentation??g.g.NOOP,batchDebounce:n.batchDebounce??a.O.milliseconds(50),overlapThreshold:n.overlapThreshold??a.O.milliseconds(5)};const t=this.args.batchDebounce.milliseconds;this.debouncedRead=Ps.o(()=>void this.batchRead(),t)}async read(n,t){const{cache:r}=this.args;await r.populateMissing([t]);const s=r.get(t),{series:i,gaps:o}=s.read(n);if(o.length===0)return i;const{mu:l}=this;return await new Promise((c,u)=>{l.runExclusive(async()=>{l.closed||l.requests.add({channel:t,gaps:o,resolve:c,reject:u})}),this.debouncedRead()}),s.read(n).series}async batchRead(){const{readRemote:n,cache:t,overlapThreshold:r}=this.args,{mu:s}=this;await s.runExclusive(async()=>{const i=o=>s.requests.forEach(({resolve:l,reject:c})=>o==null?l():c(o));try{if(s.closed)return i();const o=[];s.requests.forEach(({channel:l,gaps:c})=>c.forEach(u=>{const d=o.find(p=>p.gap.equals(u,r));d==null?o.push({gap:u,channels:new Set([l])}):(d.channels.add(l),d.gap=a.A.max(d.gap,u))})),await Promise.all(o.map(async({gap:l,channels:c})=>{const u=await n(l,Array.from(c));c.forEach(d=>t.get(d).writeStatic(u.get(d)))})),i()}catch(o){i(o)}finally{s.requests.clear()}})}async close(){await this.mu.runExclusive(async()=>{this.mu.closed=!0})}}class uo{constructor(n){h(this,"props");h(this,"mu",new L.Mutex);h(this,"listeners",new Map);h(this,"streamerRunLoop",null);h(this,"streamer",null);h(this,"closed",!1);this.props={instrumentation:g.g.NOOP,...n,streamUpdateDelay:new a.O(n.streamUpdateDelay??a.O.seconds(5))}}async stream(n,t){const{cache:r,instrumentation:s}=this.props;return!await r.populateMissing(t)||this.closed?()=>{}:await this.mu.runExclusive(async()=>{s.L.debug("adding stream handler",{keys:t}),this.listeners.set(n,{valid:!0,keys:new Set(t)});const i=new Map(t.map(o=>{const l=r.get(o);return[o,new a.$t$1(tr.o(l.leadingBuffer))]}));return n(i),await this.updateStreamer(),()=>this.removeStreamHandler(n)})}removeStreamHandler(n){const{instrumentation:t}=this.props;this.mu.runExclusive(()=>{const r=this.listeners.get(n);r!=null&&(r.valid=!1)}),setTimeout(()=>{this.mu.runExclusive(async()=>{if(t.L.debug("removing stream handler"),this.listeners.delete(n))return await this.updateStreamer();t.L.warn("attempted to remove non-existent stream handler")})},this.props.streamUpdateDelay.milliseconds)}async updateStreamer(){var t,r;if(this.closed)return;const{instrumentation:n}=this.props;try{const s=new Set;if(this.listeners.forEach(l=>l.keys.forEach(c=>s.add(c))),s.size===0){n.L.info("no keys to stream, closing streamer"),(t=this.streamer)==null||t.close(),this.streamerRunLoop!=null&&await this.streamerRunLoop,this.streamer=null,n.L.info("streamer closed successfully");return}const i=Array.from(s);if(a.F.primitiveArrays(i,((r=this.streamer)==null?void 0:r.keys)??[])===a.F.EQUAL){n.L.debug("streamer keys unchanged",{keys:i});return}this.streamer==null&&(n.L.info("creating new streamer",{keys:i}),this.streamer=await this.props.openStreamer(i),this.streamerRunLoop=this.runStreamer(this.streamer)),n.L.debug("updating streamer",{prev:this.streamer.keys,next:i}),await this.streamer.update(i)}catch(s){throw console.error("failed to update streamer",{error:s}),s}}async runStreamer(n){const{cache:t}=this.props;try{for await(const r of n){const s=new Map;for(const i of r.keys){const o=r.get(i),c=t.get(i).writeDynamic(o);s.set(i,c)}s.size!==0&&this.listeners.forEach(({valid:i},o)=>i&&o(s))}}catch(r){throw console.error("streamer run loop failed",{error:r},!0),r}}async close(){var n;try{(n=this.streamer)==null||n.close(),this.streamerRunLoop!=null&&await this.streamerRunLoop}catch(t){console.error("failed to close streamer",{error:t})}this.closed=!0}}class ho{async retrieveChannel(){throw new g.vt("NoopClient does not support retrieving channels")}async read(){return new a.$t$1([])}async stream(){return async()=>{}}async close(){}}class fo{constructor({instrumentation:n,core:t}){h(this,"ins");h(this,"cache");h(this,"reader");h(this,"streamer");h(this,"channelRetriever");this.ins=n,this.channelRetriever=t.channels.createDebouncedBatchRetriever(10),this.cache=new lo({channelRetriever:this.channelRetriever,instrumentation:this.ins.child("cache")}),this.reader=new co({cache:this.cache,readRemote:t.read.bind(t),instrumentation:this.ins.child("reader")}),this.streamer=new uo({cache:this.cache,openStreamer:async r=>g.Wv.HardenedStreamer.open(t.openStreamer.bind(t),r),instrumentation:this.ins.child("streamer")})}async retrieveChannel(n){const t=await this.channelRetriever.retrieve([n]);if(t.length===0)throw new g.Fe(`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"),await this.streamer.close(),await this.reader.close(),this.cache.close()}}const Cr=f.z.object({}),ae=class ae extends g.Composite{constructor(){super(...arguments);h(this,"schema",ae.stateZ);h(this,"prevCore",null);h(this,"client",null)}afterUpdate(t){const r=Me(t),s=L.useInstrumentation(t,"telem");if(this.internal.instrumentation=s.child("provider"),!(r!==this.prevCore))return;this.prevCore=r,this.client!=null&&this.client.close(),this.client=r==null?new ho:new fo({core:r,instrumentation:s});const o=ci(this.client),l=new ui(o);di(t,l)}};h(ae,"TYPE","telem.Provider"),h(ae,"stateZ",Cr);let At=ae;const vi={[At.TYPE]:At},po=Object.freeze(Object.defineProperty({__proto__:null,AbstractSink:Mn,AbstractSource:F,Base:Yn,BaseProvider:At,BooleanStatus:Ot,ChannelData:de,ColorGradient:Lt,CompoundTelemFactory:Sr,Context:ui,FixedColorSource:ye,FixedNumber:ge,FixedString:me,IterativeSeries:pe,Mean:$t,MultiSourceTransformer:Is,NoopFactory:Ms,PipelineFactory:fr,REGISTRY:vi,RemoteFactory:Fs,RollingAverage:Mt,ScaleNumber:zt,SetPoint:Dt,SinkPipeline:ue,SourcePipeline:ce,StaticFactory:Js,StreamChannelData:fe,StreamChannelValue:he,StringifyNumber:Yt,TransformerFactory:Ks,UnarySinkTransformer:Ns,UnarySourceTransformer:pt,WithinBounds:Rt,booleanSinkSpecZ:On,booleanSinkTransformerSpecZ:Na,booleanSourceSpecZ:or,booleanSourceTransformerSpecZ:Ba,booleanStatus:Xa,booleanStatusProps:ni,channelData:qs,colorGradient:ai,colorGradientProps:ii,colorSourceSpecZ:lr,connectionZ:hr,createFactory:ci,fixedArray:qa,fixedColor:ja,fixedColorSourcePropsZ:Xs,fixedNumber:Ha,fixedNumberPropsZ:Ws,fixedSeriesPropsZ:vr,fixedString:Ja,fixedStringPropsZ:Vs,iterativeArray:Ga,iterativeSeriesPropsZ:js,mean:Va,noopBooleanSinkSpec:Dn,noopBooleanSourceSpec:ir,noopColorSourceSpec:Rn,noopNumericSinkSpec:Rs,noopNumericSourceSpec:$s,noopSeriesSourceSpec:Ys,noopStatusSourceSpec:ar,noopStringSourceSpec:Os,numberSinkSpecZ:Zs,numberSourceSpecZ:As,providerStateZ:Cr,rollingAverage:si,rollingAverageProps:Tr,scaleNumber:li,scaleNumberProps:oi,seriesSourceSpecZ:nn,setContext:di,setpoint:Qs,sinkPipeline:Us,sinkPipelinePropsZ:pr,sinkSpecZ:$n,sinkTransformerSpecZ:zs,sourcePipeline:Bs,sourcePipelinePropsZ:dr,sourceSpecZ:ot,sourceTransformerSpecZ:Ls,specZ:Le,statusSourceSpecZ:cr,streamChannelData:Gs,streamChannelValue:Hs,streamChannelValuePropsZ:gr,stringSourceSpecZ:ur,stringifyNumber:ri,stringifyNumberProps:xr,useChildContext:fi,useContext:Ln,useSink:ze,useSource:G,withinBounds:ti,withinBoundsProps:br},Symbol.toStringTag,{value:"Module"})),go=f.object({request:f.string(),bounds:f.record(f.string(),a.G.bounds)}),bi=f.object({request:f.string(),response:go});class ve extends g.Leaf{constructor(){super(...arguments);h(this,"schema",bi)}afterUpdate(t){this.state.request!==this.prevState.request&&this.setState(r=>({...r,response:{request:r.request,bounds:this.internal.getBounds()}}))}render(t){this.internal.getBounds=t.getBounds}}h(ve,"TYPE","Bounds");const xi=f.z.object({key:f.z.string(),size:f.z.number(),order:f.z.number(),loc:a.K.outer});f.z.record(f.z.string(),xi);const ct=(e,n)=>Object.values(n).filter(({loc:t})=>t===e).sort((t,r)=>r.order-t.order),mo=(e,n,t)=>{const r=n[e];if(r==null)return a.J.ZERO;const s=a.K.construct(r.loc),i=ct(s,n),o=a.K.construct(a.g.swap(a.K.direction(s))),l=ct(o,n),c=i.findIndex(({key:p})=>p===e),u=i.slice(0,c).reduce((p,{size:m})=>p+m,0),d=l.reduce((p,{size:m})=>p+m,0);switch(s){case"left":return a.J.translate(a.$t.topLeft(t),[u,d]);case"right":return a.J.translate(a.$t.topRight(t),[u-r.size,d]);case"top":return a.J.translate(a.$t.topLeft(t),[d,u]);default:return a.J.translate(a.$t.bottomLeft(t),[d,-u-r.size])}},yo=(e,n)=>{const t=ct("left",e),r=ct("right",e),s=ct("top",e),i=ct("bottom",e),o=t.reduce((d,{size:p})=>d+p,0),l=r.reduce((d,{size:p})=>d+p,0),c=s.reduce((d,{size:p})=>d+p,0),u=i.reduce((d,{size:p})=>d+p,0);return a.$t.construct(a.J.translate(a.$t.topLeft(n),{x:o,y:c}),a.$t.width(n)-o-l,a.$t.height(n)-c-u)};function He(e,n){return e==null||n==null?NaN:e<n?-1:e>n?1:e>=n?0:NaN}function vo(e,n){return e==null||n==null?NaN:n<e?-1:n>e?1:n>=e?0:NaN}function Er(e){let n,t,r;e.length!==2?(n=He,t=(l,c)=>He(e(l),c),r=(l,c)=>e(l)-c):(n=e===He||e===vo?e:bo,t=e,r=e);function s(l,c,u=0,d=l.length){if(u<d){if(n(c,c)!==0)return d;do{const p=u+d>>>1;t(l[p],c)<0?u=p+1:d=p}while(u<d)}return u}function i(l,c,u=0,d=l.length){if(u<d){if(n(c,c)!==0)return d;do{const p=u+d>>>1;t(l[p],c)<=0?u=p+1:d=p}while(u<d)}return u}function o(l,c,u=0,d=l.length){const p=s(l,c,u,d-1);return p>u&&r(l[p-1],c)>-r(l[p],c)?p-1:p}return{left:s,center:o,right:i}}function bo(){return 0}function xo(e){return e===null?NaN:+e}const To=Er(He),So=To.right;Er(xo).center;const wo=Math.sqrt(50),Co=Math.sqrt(10),Eo=Math.sqrt(2);function sn(e,n,t){const r=(n-e)/Math.max(0,t),s=Math.floor(Math.log10(r)),i=r/Math.pow(10,s),o=i>=wo?10:i>=Co?5:i>=Eo?2:1;let l,c,u;return s<0?(u=Math.pow(10,-s)/o,l=Math.round(e*u),c=Math.round(n*u),l/u<e&&++l,c/u>n&&--c,u=-u):(u=Math.pow(10,s)*o,l=Math.round(e/u),c=Math.round(n/u),l*u<e&&++l,c*u>n&&--c),c<l&&.5<=t&&t<2?sn(e,n,t*2):[l,c,u]}function Po(e,n,t){if(n=+n,e=+e,t=+t,!(t>0))return[];if(e===n)return[e];const r=n<e,[s,i,o]=r?sn(n,e,t):sn(e,n,t);if(!(i>=s))return[];const l=i-s+1,c=new Array(l);if(r)if(o<0)for(let u=0;u<l;++u)c[u]=(i-u)/-o;else for(let u=0;u<l;++u)c[u]=(i-u)*o;else if(o<0)for(let u=0;u<l;++u)c[u]=(s+u)/-o;else for(let u=0;u<l;++u)c[u]=(s+u)*o;return c}function Gn(e,n,t){return n=+n,e=+e,t=+t,sn(e,n,t)[2]}function Hn(e,n,t){n=+n,e=+e,t=+t;const r=n<e,s=r?Gn(n,e,t):Gn(e,n,t);return(r?-1:1)*(s<0?1/-s:s)}function Ti(e,n){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(n).domain(e);break}return this}function Pr(e,n,t){e.prototype=n.prototype=t,t.constructor=e}function Si(e,n){var t=Object.create(e.prototype);for(var r in n)t[r]=n[r];return t}function Ae(){}var be=.7,an=1/be,kt="\\s*([+-]?\\d+)\\s*",xe="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",W="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ko=/^#([0-9a-f]{3,8})$/,Do=new RegExp(`^rgb\\(${kt},${kt},${kt}\\)$`),Ro=new RegExp(`^rgb\\(${W},${W},${W}\\)$`),$o=new RegExp(`^rgba\\(${kt},${kt},${kt},${xe}\\)$`),Oo=new RegExp(`^rgba\\(${W},${W},${W},${xe}\\)$`),Yo=new RegExp(`^hsl\\(${xe},${W},${W}\\)$`),Mo=new RegExp(`^hsla\\(${xe},${W},${W},${xe}\\)$`),Jr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Pr(Ae,Zt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:jr,formatHex:jr,formatHex8:Lo,formatHsl:zo,formatRgb:Wr,toString:Wr});function jr(){return this.rgb().formatHex()}function Lo(){return this.rgb().formatHex8()}function zo(){return wi(this).formatHsl()}function Wr(){return this.rgb().formatRgb()}function Zt(e){var n,t;return e=(e+"").trim().toLowerCase(),(n=ko.exec(e))?(t=n[1].length,n=parseInt(n[1],16),t===6?Vr(n):t===3?new B(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):t===8?Ue(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):t===4?Ue(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=Do.exec(e))?new B(n[1],n[2],n[3],1):(n=Ro.exec(e))?new B(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=$o.exec(e))?Ue(n[1],n[2],n[3],n[4]):(n=Oo.exec(e))?Ue(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=Yo.exec(e))?Qr(n[1],n[2]/100,n[3]/100,1):(n=Mo.exec(e))?Qr(n[1],n[2]/100,n[3]/100,n[4]):Jr.hasOwnProperty(e)?Vr(Jr[e]):e==="transparent"?new B(NaN,NaN,NaN,0):null}function Vr(e){return new B(e>>16&255,e>>8&255,e&255,1)}function Ue(e,n,t,r){return r<=0&&(e=n=t=NaN),new B(e,n,t,r)}function Ao(e){return e instanceof Ae||(e=Zt(e)),e?(e=e.rgb(),new B(e.r,e.g,e.b,e.opacity)):new B}function Jn(e,n,t,r){return arguments.length===1?Ao(e):new B(e,n,t,r??1)}function B(e,n,t,r){this.r=+e,this.g=+n,this.b=+t,this.opacity=+r}Pr(B,Jn,Si(Ae,{brighter(e){return e=e==null?an:Math.pow(an,e),new B(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?be:Math.pow(be,e),new B(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new B(ht(this.r),ht(this.g),ht(this.b),on(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:Xr,formatHex:Xr,formatHex8:Zo,formatRgb:Kr,toString:Kr}));function Xr(){return`#${ut(this.r)}${ut(this.g)}${ut(this.b)}`}function Zo(){return`#${ut(this.r)}${ut(this.g)}${ut(this.b)}${ut((isNaN(this.opacity)?1:this.opacity)*255)}`}function Kr(){const e=on(this.opacity);return`${e===1?"rgb(":"rgba("}${ht(this.r)}, ${ht(this.g)}, ${ht(this.b)}${e===1?")":`, ${e})`}`}function on(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ht(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ut(e){return e=ht(e),(e<16?"0":"")+e.toString(16)}function Qr(e,n,t,r){return r<=0?e=n=t=NaN:t<=0||t>=1?e=n=NaN:n<=0&&(e=NaN),new j(e,n,t,r)}function wi(e){if(e instanceof j)return new j(e.h,e.s,e.l,e.opacity);if(e instanceof Ae||(e=Zt(e)),!e)return new j;if(e instanceof j)return e;e=e.rgb();var n=e.r/255,t=e.g/255,r=e.b/255,s=Math.min(n,t,r),i=Math.max(n,t,r),o=NaN,l=i-s,c=(i+s)/2;return l?(n===i?o=(t-r)/l+(t<r)*6:t===i?o=(r-n)/l+2:o=(n-t)/l+4,l/=c<.5?i+s:2-i-s,o*=60):l=c>0&&c<1?0:o,new j(o,l,c,e.opacity)}function Io(e,n,t,r){return arguments.length===1?wi(e):new j(e,n,t,r??1)}function j(e,n,t,r){this.h=+e,this.s=+n,this.l=+t,this.opacity=+r}Pr(j,Io,Si(Ae,{brighter(e){return e=e==null?an:Math.pow(an,e),new j(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?be:Math.pow(be,e),new j(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,n=isNaN(e)||isNaN(this.s)?0:this.s,t=this.l,r=t+(t<.5?t:1-t)*n,s=2*t-r;return new B(Zn(e>=240?e-240:e+120,s,r),Zn(e,s,r),Zn(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new j(ts(this.h),_e(this.s),_e(this.l),on(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=on(this.opacity);return`${e===1?"hsl(":"hsla("}${ts(this.h)}, ${_e(this.s)*100}%, ${_e(this.l)*100}%${e===1?")":`, ${e})`}`}}));function ts(e){return e=(e||0)%360,e<0?e+360:e}function _e(e){return Math.max(0,Math.min(1,e||0))}function Zn(e,n,t){return(e<60?n+(t-n)*e/60:e<180?t:e<240?n+(t-n)*(240-e)/60:n)*255}const kr=e=>()=>e;function No(e,n){return function(t){return e+t*n}}function Bo(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 Uo(e){return(e=+e)==1?Ci:function(n,t){return t-n?Bo(n,t,e):kr(isNaN(n)?t:n)}}function Ci(e,n){var t=n-e;return t?No(e,t):kr(isNaN(e)?n:e)}const jn=function e(n){var t=Uo(n);function r(s,i){var o=t((s=Jn(s)).r,(i=Jn(i)).r),l=t(s.g,i.g),c=t(s.b,i.b),u=Ci(s.opacity,i.opacity);return function(d){return s.r=o(d),s.g=l(d),s.b=c(d),s.opacity=u(d),s+""}}return r.gamma=e,r}(1);function _o(e,n){n||(n=[]);var t=e?Math.min(n.length,e.length):0,r=n.slice(),s;return function(i){for(s=0;s<t;++s)r[s]=e[s]*(1-i)+n[s]*i;return r}}function Fo(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function qo(e,n){var t=n?n.length:0,r=e?Math.min(t,e.length):0,s=new Array(r),i=new Array(t),o;for(o=0;o<r;++o)s[o]=Dr(e[o],n[o]);for(;o<t;++o)i[o]=n[o];return function(l){for(o=0;o<r;++o)i[o]=s[o](l);return i}}function Go(e,n){var t=new Date;return e=+e,n=+n,function(r){return t.setTime(e*(1-r)+n*r),t}}function Te(e,n){return e=+e,n=+n,function(t){return e*(1-t)+n*t}}function Ho(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]=Dr(e[s],n[s]):r[s]=n[s];return function(i){for(s in t)r[s]=t[s](i);return r}}var Wn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,In=new RegExp(Wn.source,"g");function Jo(e){return function(){return e}}function jo(e){return function(n){return e(n)+""}}function Ei(e,n){var t=Wn.lastIndex=In.lastIndex=0,r,s,i,o=-1,l=[],c=[];for(e=e+"",n=n+"";(r=Wn.exec(e))&&(s=In.exec(n));)(i=s.index)>t&&(i=n.slice(t,i),l[o]?l[o]+=i:l[++o]=i),(r=r[0])===(s=s[0])?l[o]?l[o]+=s:l[++o]=s:(l[++o]=null,c.push({i:o,x:Te(r,s)})),t=In.lastIndex;return t<n.length&&(i=n.slice(t),l[o]?l[o]+=i:l[++o]=i),l.length<2?c[0]?jo(c[0].x):Jo(n):(n=c.length,function(u){for(var d=0,p;d<n;++d)l[(p=c[d]).i]=p.x(u);return l.join("")})}function Dr(e,n){var t=typeof n,r;return n==null||t==="boolean"?kr(n):(t==="number"?Te:t==="string"?(r=Zt(n))?(n=r,jn):Ei:n instanceof Zt?jn:n instanceof Date?Go:Fo(n)?_o:Array.isArray(n)?qo:typeof n.valueOf!="function"&&typeof n.toString!="function"||isNaN(n)?Ho:Te)(e,n)}function Wo(e,n){return e=+e,n=+n,function(t){return Math.round(e*(1-t)+n*t)}}function Vo(e){return function(){return e}}function Xo(e){return+e}var es=[0,1];function St(e){return e}function Vn(e,n){return(n-=e=+e)?function(t){return(t-e)/n}:Vo(isNaN(n)?NaN:.5)}function Ko(e,n){var t;return e>n&&(t=e,e=n,n=t),function(r){return Math.max(e,Math.min(n,r))}}function Qo(e,n,t){var r=e[0],s=e[1],i=n[0],o=n[1];return s<r?(r=Vn(s,r),i=t(o,i)):(r=Vn(r,s),i=t(i,o)),function(l){return i(r(l))}}function tl(e,n,t){var r=Math.min(e.length,n.length)-1,s=new Array(r),i=new Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),n=n.slice().reverse());++o<r;)s[o]=Vn(e[o],e[o+1]),i[o]=t(n[o],n[o+1]);return function(l){var c=So(e,l,1,r)-1;return i[c](s[c](l))}}function Pi(e,n){return n.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function el(){var e=es,n=es,t=Dr,r,s,i,o=St,l,c,u;function d(){var m=Math.min(e.length,n.length);return o!==St&&(o=Ko(e[0],e[m-1])),l=m>2?tl:Qo,c=u=null,p}function p(m){return m==null||isNaN(m=+m)?i:(c||(c=l(e.map(r),n,t)))(r(o(m)))}return p.invert=function(m){return o(s((u||(u=l(n,e.map(r),Te)))(m)))},p.domain=function(m){return arguments.length?(e=Array.from(m,Xo),d()):e.slice()},p.range=function(m){return arguments.length?(n=Array.from(m),d()):n.slice()},p.rangeRound=function(m){return n=Array.from(m),t=Wo,d()},p.clamp=function(m){return arguments.length?(o=m?!0:St,d()):o!==St},p.interpolate=function(m){return arguments.length?(t=m,d()):t},p.unknown=function(m){return arguments.length?(i=m,p):i},function(m,v){return r=m,s=v,d()}}function ki(){return el()(St,St)}function nl(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function ln(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 It(e){return e=ln(Math.abs(e)),e?e[1]:NaN}function rl(e,n){return function(t,r){for(var s=t.length,i=[],o=0,l=e[0],c=0;s>0&&l>0&&(c+l+1>r&&(l=Math.max(1,r-c)),i.push(t.substring(s-=l,s+l)),!((c+=l+1)>r));)l=e[o=(o+1)%e.length];return i.reverse().join(n)}}function sl(e){return function(n){return n.replace(/[0-9]/g,function(t){return e[+t]})}}var il=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function cn(e){if(!(n=il.exec(e)))throw new Error("invalid format: "+e);var n;return new Rr({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]})}cn.prototype=Rr.prototype;function Rr(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+""}Rr.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 al(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 Di;function ol(e,n){var t=ln(e,n);if(!t)return e+"";var r=t[0],s=t[1],i=s-(Di=Math.max(-8,Math.min(8,Math.floor(s/3)))*3)+1,o=r.length;return i===o?r:i>o?r+new Array(i-o+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+ln(e,Math.max(0,n+i-1))[0]}function ns(e,n){var t=ln(e,n);if(!t)return e+"";var r=t[0],s=t[1];return s<0?"0."+new Array(-s).join("0")+r:r.length>s+1?r.slice(0,s+1)+"."+r.slice(s+1):r+new Array(s-r.length+2).join("0")}const rs={"%":(e,n)=>(e*100).toFixed(n),b:e=>Math.round(e).toString(2),c:e=>e+"",d:nl,e:(e,n)=>e.toExponential(n),f:(e,n)=>e.toFixed(n),g:(e,n)=>e.toPrecision(n),o:e=>Math.round(e).toString(8),p:(e,n)=>ns(e*100,n),r:ns,s:ol,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function ss(e){return e}var is=Array.prototype.map,as=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ll(e){var n=e.grouping===void 0||e.thousands===void 0?ss:rl(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+"",i=e.numerals===void 0?ss:sl(is.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function u(p){p=cn(p);var m=p.fill,v=p.align,w=p.sign,R=p.symbol,x=p.zero,T=p.width,$=p.comma,E=p.precision,M=p.trim,O=p.type;O==="n"?($=!0,O="g"):rs[O]||(E===void 0&&(E=12),M=!0,O="g"),(x||m==="0"&&v==="=")&&(x=!0,m="0",v="=");var S=R==="$"?t:R==="#"&&/[boxX]/.test(O)?"0"+O.toLowerCase():"",z=R==="$"?r:/[%p]/.test(O)?o:"",H=rs[O],yt=/[defgprs%]/.test(O);E=E===void 0?6:/[gprs]/.test(O)?Math.max(1,Math.min(21,E)):Math.max(0,Math.min(20,E));function rt(P){var X=S,I=z,st,Be,vt;if(O==="c")I=H(P)+I,P="";else{P=+P;var bt=P<0||1/P<0;if(P=isNaN(P)?c:H(Math.abs(P),E),M&&(P=al(P)),bt&&+P==0&&w!=="+"&&(bt=!1),X=(bt?w==="("?w:l:w==="-"||w==="("?"":w)+X,I=(O==="s"?as[8+Di/3]:"")+I+(bt&&w==="("?")":""),yt){for(st=-1,Be=P.length;++st<Be;)if(vt=P.charCodeAt(st),48>vt||vt>57){I=(vt===46?s+P.slice(st+1):P.slice(st))+I,P=P.slice(0,st);break}}}$&&!x&&(P=n(P,1/0));var xt=X.length+P.length+I.length,J=xt<T?new Array(T-xt+1).join(m):"";switch($&&x&&(P=n(J+P,J.length?T-I.length:1/0),J=""),v){case"<":P=X+P+I+J;break;case"=":P=X+J+P+I;break;case"^":P=J.slice(0,xt=J.length>>1)+X+P+I+J.slice(xt);break;default:P=J+X+P+I;break}return i(P)}return rt.toString=function(){return p+""},rt}function d(p,m){var v=u((p=cn(p),p.type="f",p)),w=Math.max(-8,Math.min(8,Math.floor(It(m)/3)))*3,R=Math.pow(10,-w),x=as[8+w/3];return function(T){return v(R*T)+x}}return{format:u,formatPrefix:d}}var Fe,Ri,$i;cl({thousands:",",grouping:[3],currency:["$",""]});function cl(e){return Fe=ll(e),Ri=Fe.format,$i=Fe.formatPrefix,Fe}function ul(e){return Math.max(0,-It(Math.abs(e)))}function hl(e,n){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(It(n)/3)))*3-It(Math.abs(e)))}function dl(e,n){return e=Math.abs(e),n=Math.abs(n)-e,Math.max(0,It(n)-It(e))+1}function fl(e,n,t,r){var s=Hn(e,n,t),i;switch(r=cn(r??",f"),r.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(n));return r.precision==null&&!isNaN(i=hl(s,o))&&(r.precision=i),$i(r,o)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(i=dl(s,Math.max(Math.abs(e),Math.abs(n))))&&(r.precision=i-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(i=ul(s))&&(r.precision=i-(r.type==="%")*2);break}}return Ri(r)}function pl(e){var n=e.domain;return e.ticks=function(t){var r=n();return Po(r[0],r[r.length-1],t??10)},e.tickFormat=function(t,r){var s=n();return fl(s[0],s[s.length-1],t??10,r)},e.nice=function(t){t==null&&(t=10);var r=n(),s=0,i=r.length-1,o=r[s],l=r[i],c,u,d=10;for(l<o&&(u=o,o=l,l=u,u=s,s=i,i=u);d-- >0;){if(u=Gn(o,l,t),u===c)return r[s]=o,r[i]=l,n(r);if(u>0)o=Math.floor(o/u)*u,l=Math.ceil(l/u)*u;else if(u<0)o=Math.ceil(o*u)/u,l=Math.floor(l*u)/u;else break;c=u}return e},e}function Oi(){var e=ki();return e.copy=function(){return Pi(e,Oi())},Ti.apply(e,arguments),pl(e)}function gl(e,n){e=e.slice();var t=0,r=e.length-1,s=e[t],i=e[r],o;return i<s&&(o=t,t=r,r=o,o=s,s=i,i=o),e[t]=n.floor(s),e[r]=n.ceil(i),e}const Nn=new Date,Bn=new Date;function A(e,n,t,r){function s(i){return e(i=arguments.length===0?new Date:new Date(+i)),i}return s.floor=i=>(e(i=new Date(+i)),i),s.ceil=i=>(e(i=new Date(i-1)),n(i,1),e(i),i),s.round=i=>{const o=s(i),l=s.ceil(i);return i-o<l-i?o:l},s.offset=(i,o)=>(n(i=new Date(+i),o==null?1:Math.floor(o)),i),s.range=(i,o,l)=>{const c=[];if(i=s.ceil(i),l=l==null?1:Math.floor(l),!(i<o)||!(l>0))return c;let u;do c.push(u=new Date(+i)),n(i,l),e(i);while(u<i&&i<o);return c},s.filter=i=>A(o=>{if(o>=o)for(;e(o),!i(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;n(o,-1),!i(o););else for(;--l>=0;)for(;n(o,1),!i(o););}),t&&(s.count=(i,o)=>(Nn.setTime(+i),Bn.setTime(+o),e(Nn),e(Bn),Math.floor(t(Nn,Bn))),s.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?s.filter(r?o=>r(o)%i===0:o=>s.count(0,o)%i===0):s)),s}const un=A(()=>{},(e,n)=>{e.setTime(+e+n)},(e,n)=>n-e);un.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?A(n=>{n.setTime(Math.floor(n/e)*e)},(n,t)=>{n.setTime(+n+t*e)},(n,t)=>(t-n)/e):un);un.range;const K=1e3,q=K*60,Q=q*60,et=Q*24,$r=et*7,os=et*30,Un=et*365,wt=A(e=>{e.setTime(e-e.getMilliseconds())},(e,n)=>{e.setTime(+e+n*K)},(e,n)=>(n-e)/K,e=>e.getUTCSeconds());wt.range;const Or=A(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*K)},(e,n)=>{e.setTime(+e+n*q)},(e,n)=>(n-e)/q,e=>e.getMinutes());Or.range;const ml=A(e=>{e.setUTCSeconds(0,0)},(e,n)=>{e.setTime(+e+n*q)},(e,n)=>(n-e)/q,e=>e.getUTCMinutes());ml.range;const Yr=A(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*K-e.getMinutes()*q)},(e,n)=>{e.setTime(+e+n*Q)},(e,n)=>(n-e)/Q,e=>e.getHours());Yr.range;const yl=A(e=>{e.setUTCMinutes(0,0,0)},(e,n)=>{e.setTime(+e+n*Q)},(e,n)=>(n-e)/Q,e=>e.getUTCHours());yl.range;const Ze=A(e=>e.setHours(0,0,0,0),(e,n)=>e.setDate(e.getDate()+n),(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*q)/et,e=>e.getDate()-1);Ze.range;const Mr=A(e=>{e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n)},(e,n)=>(n-e)/et,e=>e.getUTCDate()-1);Mr.range;const vl=A(e=>{e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n)},(e,n)=>(n-e)/et,e=>Math.floor(e/et));vl.range;function gt(e){return A(n=>{n.setDate(n.getDate()-(n.getDay()+7-e)%7),n.setHours(0,0,0,0)},(n,t)=>{n.setDate(n.getDate()+t*7)},(n,t)=>(t-n-(t.getTimezoneOffset()-n.getTimezoneOffset())*q)/$r)}const zn=gt(0),hn=gt(1),bl=gt(2),xl=gt(3),Nt=gt(4),Tl=gt(5),Sl=gt(6);zn.range;hn.range;bl.range;xl.range;Nt.range;Tl.range;Sl.range;function mt(e){return A(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)/$r)}const Yi=mt(0),dn=mt(1),wl=mt(2),Cl=mt(3),Bt=mt(4),El=mt(5),Pl=mt(6);Yi.range;dn.range;wl.range;Cl.range;Bt.range;El.range;Pl.range;const Lr=A(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());Lr.range;const kl=A(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());kl.range;const nt=A(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());nt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:A(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)});nt.range;const dt=A(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());dt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:A(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)});dt.range;function Dl(e,n,t,r,s,i){const o=[[wt,1,K],[wt,5,5*K],[wt,15,15*K],[wt,30,30*K],[i,1,q],[i,5,5*q],[i,15,15*q],[i,30,30*q],[s,1,Q],[s,3,3*Q],[s,6,6*Q],[s,12,12*Q],[r,1,et],[r,2,2*et],[t,1,$r],[n,1,os],[n,3,3*os],[e,1,Un]];function l(u,d,p){const m=d<u;m&&([u,d]=[d,u]);const v=p&&typeof p.range=="function"?p:c(u,d,p),w=v?v.range(u,+d+1):[];return m?w.reverse():w}function c(u,d,p){const m=Math.abs(d-u)/p,v=Er(([,,x])=>x).right(o,m);if(v===o.length)return e.every(Hn(u/Un,d/Un,p));if(v===0)return un.every(Math.max(Hn(u,d,p),1));const[w,R]=o[m/o[v-1][2]<o[v][2]/m?v-1:v];return w.every(R)}return[l,c]}const[Rl,$l]=Dl(nt,Lr,zn,Ze,Yr,Or);function _n(e){if(0<=e.y&&e.y<100){var n=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return n.setFullYear(e.y),n}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Fn(e){if(0<=e.y&&e.y<100){var n=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return n.setUTCFullYear(e.y),n}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function jt(e,n,t){return{y:e,m:n,d:t,H:0,M:0,S:0,L:0}}function Ol(e){var n=e.dateTime,t=e.date,r=e.time,s=e.periods,i=e.days,o=e.shortDays,l=e.months,c=e.shortMonths,u=Wt(s),d=Vt(s),p=Wt(i),m=Vt(i),v=Wt(o),w=Vt(o),R=Wt(l),x=Vt(l),T=Wt(c),$=Vt(c),E={a:bt,A:xt,b:J,B:xa,c:null,d:fs,e:fs,f:tc,g:uc,G:dc,H:Xl,I:Kl,j:Ql,L:Mi,m:ec,M:nc,p:Ta,q:Sa,Q:ms,s:ys,S:rc,u:sc,U:ic,V:ac,w:oc,W:lc,x:null,X:null,y:cc,Y:hc,Z:fc,"%":gs},M={a:wa,A:Ca,b:Ea,B:Pa,c:null,d:ps,e:ps,f:yc,g:kc,G:Rc,H:pc,I:gc,j:mc,L:zi,m:vc,M:bc,p:ka,q:Da,Q:ms,s:ys,S:xc,u:Tc,U:Sc,V:wc,w:Cc,W:Ec,x:null,X:null,y:Pc,Y:Dc,Z:$c,"%":gs},O={a:rt,A:P,b:X,B:I,c:st,d:hs,e:hs,f:Jl,g:us,G:cs,H:ds,I:ds,j:Fl,L:Hl,m:_l,M:ql,p:yt,q:Ul,Q:Wl,s:Vl,S:Gl,u:Al,U:Zl,V:Il,w:zl,W:Nl,x:Be,X:vt,y:us,Y:cs,Z:Bl,"%":jl};E.x=S(t,E),E.X=S(r,E),E.c=S(n,E),M.x=S(t,M),M.X=S(r,M),M.c=S(n,M);function S(b,C){return function(k){var y=[],N=-1,Y=0,U=b.length,_,lt,Fr;for(k instanceof Date||(k=new Date(+k));++N<U;)b.charCodeAt(N)===37&&(y.push(b.slice(Y,N)),(lt=ls[_=b.charAt(++N)])!=null?_=b.charAt(++N):lt=_==="e"?" ":"0",(Fr=C[_])&&(_=Fr(k,lt)),y.push(_),Y=N+1);return y.push(b.slice(Y,N)),y.join("")}}function z(b,C){return function(k){var y=jt(1900,void 0,1),N=H(y,b,k+="",0),Y,U;if(N!=k.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(C&&!("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?(Y=Fn(jt(y.y,0,1)),U=Y.getUTCDay(),Y=U>4||U===0?dn.ceil(Y):dn(Y),Y=Mr.offset(Y,(y.V-1)*7),y.y=Y.getUTCFullYear(),y.m=Y.getUTCMonth(),y.d=Y.getUTCDate()+(y.w+6)%7):(Y=_n(jt(y.y,0,1)),U=Y.getDay(),Y=U>4||U===0?hn.ceil(Y):hn(Y),Y=Ze.offset(Y,(y.V-1)*7),y.y=Y.getFullYear(),y.m=Y.getMonth(),y.d=Y.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),U="Z"in y?Fn(jt(y.y,0,1)).getUTCDay():_n(jt(y.y,0,1)).getDay(),y.m=0,y.d="W"in y?(y.w+6)%7+y.W*7-(U+5)%7:y.w+y.U*7-(U+6)%7);return"Z"in y?(y.H+=y.Z/100|0,y.M+=y.Z%100,Fn(y)):_n(y)}}function H(b,C,k,y){for(var N=0,Y=C.length,U=k.length,_,lt;N<Y;){if(y>=U)return-1;if(_=C.charCodeAt(N++),_===37){if(_=C.charAt(N++),lt=O[_ in ls?C.charAt(N++):_],!lt||(y=lt(b,k,y))<0)return-1}else if(_!=k.charCodeAt(y++))return-1}return y}function yt(b,C,k){var y=u.exec(C.slice(k));return y?(b.p=d.get(y[0].toLowerCase()),k+y[0].length):-1}function rt(b,C,k){var y=v.exec(C.slice(k));return y?(b.w=w.get(y[0].toLowerCase()),k+y[0].length):-1}function P(b,C,k){var y=p.exec(C.slice(k));return y?(b.w=m.get(y[0].toLowerCase()),k+y[0].length):-1}function X(b,C,k){var y=T.exec(C.slice(k));return y?(b.m=$.get(y[0].toLowerCase()),k+y[0].length):-1}function I(b,C,k){var y=R.exec(C.slice(k));return y?(b.m=x.get(y[0].toLowerCase()),k+y[0].length):-1}function st(b,C,k){return H(b,n,C,k)}function Be(b,C,k){return H(b,t,C,k)}function vt(b,C,k){return H(b,r,C,k)}function bt(b){return o[b.getDay()]}function xt(b){return i[b.getDay()]}function J(b){return c[b.getMonth()]}function xa(b){return l[b.getMonth()]}function Ta(b){return s[+(b.getHours()>=12)]}function Sa(b){return 1+~~(b.getMonth()/3)}function wa(b){return o[b.getUTCDay()]}function Ca(b){return i[b.getUTCDay()]}function Ea(b){return c[b.getUTCMonth()]}function Pa(b){return l[b.getUTCMonth()]}function ka(b){return s[+(b.getUTCHours()>=12)]}function Da(b){return 1+~~(b.getUTCMonth()/3)}return{format:function(b){var C=S(b+="",E);return C.toString=function(){return b},C},parse:function(b){var C=z(b+="",!1);return C.toString=function(){return b},C},utcFormat:function(b){var C=S(b+="",M);return C.toString=function(){return b},C},utcParse:function(b){var C=z(b+="",!0);return C.toString=function(){return b},C}}}var ls={"-":"",_:" ",0:"0"},Z=/^\s*\d+/,Yl=/^%/,Ml=/[\\^$*+?|[\]().{}]/g;function D(e,n,t){var r=e<0?"-":"",s=(r?-e:e)+"",i=s.length;return r+(i<t?new Array(t-i+1).join(n)+s:s)}function Ll(e){return e.replace(Ml,"\\$&")}function Wt(e){return new RegExp("^(?:"+e.map(Ll).join("|")+")","i")}function Vt(e){return new Map(e.map((n,t)=>[n.toLowerCase(),t]))}function zl(e,n,t){var r=Z.exec(n.slice(t,t+1));return r?(e.w=+r[0],t+r[0].length):-1}function Al(e,n,t){var r=Z.exec(n.slice(t,t+1));return r?(e.u=+r[0],t+r[0].length):-1}function Zl(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.U=+r[0],t+r[0].length):-1}function Il(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.V=+r[0],t+r[0].length):-1}function Nl(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.W=+r[0],t+r[0].length):-1}function cs(e,n,t){var r=Z.exec(n.slice(t,t+4));return r?(e.y=+r[0],t+r[0].length):-1}function us(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),t+r[0].length):-1}function Bl(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 Ul(e,n,t){var r=Z.exec(n.slice(t,t+1));return r?(e.q=r[0]*3-3,t+r[0].length):-1}function _l(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.m=r[0]-1,t+r[0].length):-1}function hs(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.d=+r[0],t+r[0].length):-1}function Fl(e,n,t){var r=Z.exec(n.slice(t,t+3));return r?(e.m=0,e.d=+r[0],t+r[0].length):-1}function ds(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.H=+r[0],t+r[0].length):-1}function ql(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.M=+r[0],t+r[0].length):-1}function Gl(e,n,t){var r=Z.exec(n.slice(t,t+2));return r?(e.S=+r[0],t+r[0].length):-1}function Hl(e,n,t){var r=Z.exec(n.slice(t,t+3));return r?(e.L=+r[0],t+r[0].length):-1}function Jl(e,n,t){var r=Z.exec(n.slice(t,t+6));return r?(e.L=Math.floor(r[0]/1e3),t+r[0].length):-1}function jl(e,n,t){var r=Yl.exec(n.slice(t,t+1));return r?t+r[0].length:-1}function Wl(e,n,t){var r=Z.exec(n.slice(t));return r?(e.Q=+r[0],t+r[0].length):-1}function Vl(e,n,t){var r=Z.exec(n.slice(t));return r?(e.s=+r[0],t+r[0].length):-1}function fs(e,n){return D(e.getDate(),n,2)}function Xl(e,n){return D(e.getHours(),n,2)}function Kl(e,n){return D(e.getHours()%12||12,n,2)}function Ql(e,n){return D(1+Ze.count(nt(e),e),n,3)}function Mi(e,n){return D(e.getMilliseconds(),n,3)}function tc(e,n){return Mi(e,n)+"000"}function ec(e,n){return D(e.getMonth()+1,n,2)}function nc(e,n){return D(e.getMinutes(),n,2)}function rc(e,n){return D(e.getSeconds(),n,2)}function sc(e){var n=e.getDay();return n===0?7:n}function ic(e,n){return D(zn.count(nt(e)-1,e),n,2)}function Li(e){var n=e.getDay();return n>=4||n===0?Nt(e):Nt.ceil(e)}function ac(e,n){return e=Li(e),D(Nt.count(nt(e),e)+(nt(e).getDay()===4),n,2)}function oc(e){return e.getDay()}function lc(e,n){return D(hn.count(nt(e)-1,e),n,2)}function cc(e,n){return D(e.getFullYear()%100,n,2)}function uc(e,n){return e=Li(e),D(e.getFullYear()%100,n,2)}function hc(e,n){return D(e.getFullYear()%1e4,n,4)}function dc(e,n){var t=e.getDay();return e=t>=4||t===0?Nt(e):Nt.ceil(e),D(e.getFullYear()%1e4,n,4)}function fc(e){var n=e.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+D(n/60|0,"0",2)+D(n%60,"0",2)}function ps(e,n){return D(e.getUTCDate(),n,2)}function pc(e,n){return D(e.getUTCHours(),n,2)}function gc(e,n){return D(e.getUTCHours()%12||12,n,2)}function mc(e,n){return D(1+Mr.count(dt(e),e),n,3)}function zi(e,n){return D(e.getUTCMilliseconds(),n,3)}function yc(e,n){return zi(e,n)+"000"}function vc(e,n){return D(e.getUTCMonth()+1,n,2)}function bc(e,n){return D(e.getUTCMinutes(),n,2)}function xc(e,n){return D(e.getUTCSeconds(),n,2)}function Tc(e){var n=e.getUTCDay();return n===0?7:n}function Sc(e,n){return D(Yi.count(dt(e)-1,e),n,2)}function Ai(e){var n=e.getUTCDay();return n>=4||n===0?Bt(e):Bt.ceil(e)}function wc(e,n){return e=Ai(e),D(Bt.count(dt(e),e)+(dt(e).getUTCDay()===4),n,2)}function Cc(e){return e.getUTCDay()}function Ec(e,n){return D(dn.count(dt(e)-1,e),n,2)}function Pc(e,n){return D(e.getUTCFullYear()%100,n,2)}function kc(e,n){return e=Ai(e),D(e.getUTCFullYear()%100,n,2)}function Dc(e,n){return D(e.getUTCFullYear()%1e4,n,4)}function Rc(e,n){var t=e.getUTCDay();return e=t>=4||t===0?Bt(e):Bt.ceil(e),D(e.getUTCFullYear()%1e4,n,4)}function $c(){return"+0000"}function gs(){return"%"}function ms(e){return+e}function ys(e){return Math.floor(+e/1e3)}var Tt,Zi;Oc({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 Oc(e){return Tt=Ol(e),Zi=Tt.format,Tt.parse,Tt.utcFormat,Tt.utcParse,Tt}function Yc(e){return new Date(e)}function Mc(e){return e instanceof Date?+e:+new Date(+e)}function Ii(e,n,t,r,s,i,o,l,c,u){var d=ki(),p=d.invert,m=d.domain,v=u(".%L"),w=u(":%S"),R=u("%I:%M"),x=u("%I %p"),T=u("%a %d"),$=u("%b %d"),E=u("%B"),M=u("%Y");function O(S){return(c(S)<S?v:l(S)<S?w:o(S)<S?R:i(S)<S?x:r(S)<S?s(S)<S?T:$:t(S)<S?E:M)(S)}return d.invert=function(S){return new Date(p(S))},d.domain=function(S){return arguments.length?m(Array.from(S,Mc)):m().map(Yc)},d.ticks=function(S){var z=m();return e(z[0],z[z.length-1],S??10)},d.tickFormat=function(S,z){return z==null?O:u(z)},d.nice=function(S){var z=m();return(!S||typeof S.range!="function")&&(S=n(z[0],z[z.length-1],S??10)),S?m(gl(z,S)):d},d.copy=function(){return Pi(d,Ii(e,n,t,r,s,i,o,l,c,u))},d}function Lc(){return Ti.apply(Ii(Rl,$l,nt,Lr,zn,Ze,Yr,Or,wt,Zi).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}const vs=[a.O.NANOSECOND,a.O.nanoseconds(2),a.O.nanoseconds(5),a.O.nanoseconds(10),a.O.nanoseconds(20),a.O.nanoseconds(50),a.O.nanoseconds(100),a.O.nanoseconds(200),a.O.nanoseconds(500),a.O.MICROSECOND,a.O.microseconds(2),a.O.microseconds(5),a.O.microseconds(10),a.O.microseconds(20),a.O.microseconds(50),a.O.microseconds(100),a.O.microseconds(200),a.O.microseconds(500),a.O.MILLISECOND,a.O.milliseconds(2),a.O.milliseconds(5),a.O.milliseconds(10),a.O.milliseconds(20),a.O.milliseconds(50),a.O.milliseconds(100),a.O.milliseconds(200),a.O.milliseconds(500),a.O.SECOND];class zc{constructor(){h(this,"_domain");h(this,"_range");h(this,"_span");this._domain=[new a.m(0n),new a.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 a.m(n[0]),new a.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 a.m(n).valueOf(),s=this._domain[0].valueOf(),i=this._domain[1].valueOf()-s,o=this._range[1]-this._range[0];return Number(r-s)/Number(i)*o+this._range[0]}ticks(n){const t=this.calculateOptimalStep(n).valueOf(),r=this._domain[0].valueOf(),s=this._domain[1].valueOf(),i=(r+t-1n)/t*t,o=Number((s-i)/t);return Array.from({length:o+1},(l,c)=>{const u=i+BigInt(c)*t;return new a.m(u)}).filter(l=>l.afterEq(this._domain[0])&&l.beforeEq(this._domain[1]))}calculateOptimalStep(n){const t=this._span.valueOf()/BigInt(Math.ceil(n));let r=vs[0];for(const s of vs){if(s.valueOf()>t)break;r=s}return r}formatTick(n){return this._span.lessThan(a.O.microseconds(50))?`${n.remainder(a.O.MILLISECOND).microseconds.toString()}µs`:`${n.remainder(a.O.SECOND).milliseconds.toString()}ms`}}const Ac=()=>new zc,zr=f.z.enum(["linear","time"]),Ar=f.z.object({tickSpacing:f.z.number().default(75),type:zr.optional().default("linear")}),Xn=e=>{const n=Ar.parse(e);return Nc[n.type](n)};class Zc{constructor(n){h(this,"props");h(this,"prevScaleSize");h(this,"prevDomain");h(this,"currTicks");h(this,"normalScale");h(this,"preciseScale");this.props=n,this.normalScale=Lc(),this.preciseScale=Ac(),this.prevScaleSize=0,this.prevDomain=new a.A(new a.m(0),new a.m(0)),this.currTicks=[]}create({decimalToDataScale:n,size:t}){const r=new a.A(new a.m(n.pos(0)),new a.m(n.pos(1)));if(this.prevDomain.equals(r)&&this.prevScaleSize===t)return this.currTicks;if(this.prevDomain=r,this.prevScaleSize!==t){const s=[0,t];this.preciseScale.range(s),this.normalScale.range(s),this.prevScaleSize=t}if(r.span.milliseconds<5){this.preciseScale.domain([r.start,r.end]);const s=Kn(t,this.props.tickSpacing)/2,i=this.preciseScale.ticks(s);this.currTicks=i.map(o=>({label:this.preciseScale.formatTick(o),position:this.preciseScale.scale(o)}))}else{this.normalScale.domain([r.start.date(),r.end.date()]);const s=this.normalScale.ticks(Kn(t,this.props.tickSpacing));this.currTicks=s.map(i=>({label:this.normalTickLabel(i),position:this.normalScale(i)}))}return this.currTicks}normalTickLabel(n){let t=`:${n.getSeconds()}`;const r=n.getMilliseconds();if(r!==0){const s=Math.round(n.getMilliseconds()).toString().padStart(3,"0").replace(/0+$/,"");t+=`.${s}`}return n.getSeconds()===0&&r===0&&(t=`${n.getHours()}:${n.getMinutes().toString().padStart(2,"0")}`),t}}class Ic{constructor(n){h(this,"props");h(this,"prevDomain");h(this,"prevScaleSize");h(this,"currTicks");h(this,"d3Scale");this.props=n,this.prevDomain=a.G.construct(0,0),this.prevScaleSize=0,this.currTicks=[],this.d3Scale=Oi()}create({decimalToDataScale:n,size:t}){const r={lower:n.pos(0),upper:n.pos(1)};if(a.G.equals(this.prevDomain,r)&&this.prevScaleSize===t)return this.currTicks;a.G.equals(this.prevDomain,r)||(this.d3Scale=this.d3Scale.domain([r.lower,r.upper])),this.prevScaleSize!==t&&(this.d3Scale=this.d3Scale.range([0,t])),this.prevDomain=r,this.prevScaleSize=t;const s=Kn(t,this.props.tickSpacing),i=this.d3Scale.ticks(s);return this.currTicks=i.map(o=>({label:this.tickLabel(o),position:this.d3Scale(o)})),this.currTicks}tickLabel(n){return n.toString()}}const Kn=(e,n)=>{const t=Math.floor(e/n);return t>0?t:1},Nc={linear:e=>new Ic(e),time:e=>new Zc(e)},Zr=Ar.extend({color:a.Dt.colorZ,type:zr.optional().default("linear"),font:f.z.string(),showGrid:f.z.boolean().optional().default(!0),location:a.K.outer,gridColor:a.Dt.colorZ}),V=5,Se=6,Ie={useAtlas:!0},Bc={bottom:(e,n)=>new Bi(e,n),top:(e,n)=>new Ui(e,n),left:(e,n)=>new Uc(e,n),right:(e,n)=>new _i(e,n)},Ni=(e,n,t)=>Bc[e](n,t),En=class En{constructor(n,t){h(this,"renderCtx");h(this,"state");h(this,"tickFactory");this.renderCtx=n,this.state=t,this.tickFactory=Xn(this.state)}setState(n){this.state=g.prettyParse(Zr,n),this.tickFactory=Xn(n)}drawLine(n,t){const{lower2d:r}=this.renderCtx;r.moveTo(...a.J.couple(n)),r.lineTo(...a.J.couple(t))}drawTicks(n,t){let r=a._.ZERO;return n.forEach(s=>{const i=this.renderCtx.lower2d.textDimensions(s.label,Ie);r=a._.max([r,i]),t(i,s)}),r}maybeDrawGrid(n,t,r){const{showGrid:s,gridColor:i}=this.state;if(s){const o=En.START_BOUND,l=a.G.construct(n-1,n+1),{lower2d:c}=this.renderCtx;c.beginPath(),c.strokeStyle=a.Dt.hex(i),t.forEach(u=>{a.G.contains(o,u.position)||a.G.contains(l,u.position)||this.drawLine(...r(u))}),c.stroke()}}setColor(n){const t=a.Dt.hex(n);this.renderCtx.lower2d.strokeStyle=t,this.renderCtx.lower2d.fillStyle=t,this.renderCtx.lower2d.font=this.state.font}};h(En,"START_BOUND",a.G.construct(-1,1));let ft=En;class Bi extends ft{render(n){const{lower2d:t}=this.renderCtx,{plot:r,position:s}=n,{width:i,height:o}=a.$t.dims(r),l=this.tickFactory.create({...n,size:i});t.beginPath(),this.setColor(this.state.color),this.drawLine(s,a.J.translate(s,"x",i));const c=this.drawTicks(l,(u,d)=>{this.drawLine(a.J.translateX(s,d.position),a.J.translate(s,{x:d.position,y:V})),t.fillText(d.label,s.x+d.position-u.width/2,s.y+V+u.height+Se,void 0,Ie)});return t.stroke(),this.maybeDrawGrid(i,l,u=>[a.J.translate(s,"x",u.position),a.J.translate(s,{x:u.position,y:-o})]),{size:c.height+V+Se}}}class Ui extends ft{render(n){const{lower2d:t}=this.renderCtx,{plot:r}=n,{width:s,height:i}=a.$t.dims(r),o=a.J.translate(n.position,"y",n.size),l=this.tickFactory.create({...n,size:s});t.beginPath(),this.setColor(this.state.color),this.drawLine(o,a.J.translate(o,"x",s));const c=this.drawTicks(l,(u,d)=>{this.drawLine(a.J.translateX(o,d.position),a.J.translate(o,{x:d.position,y:-5})),t.fillText(d.label,o.x+d.position-u.width/2,o.y-V-u.height-Se,void 0,Ie)});return t.stroke(),this.maybeDrawGrid(s,l,u=>[a.J.translate(o,"x",u.position),a.J.translate(o,{x:u.position,y:i})]),{size:c.height+V}}}class Uc extends ft{render(n){const{lower2d:t}=this.renderCtx,{plot:r,position:s}=n,{height:i,width:o}=a.$t.dims(r),l=a.J.translate(s,"x",n.size),c=this.tickFactory.create({...n,size:i});t.beginPath(),this.setColor(this.state.color),this.drawLine(l,a.J.translate(l,"y",i));const u=this.drawTicks(c,(d,p)=>{this.drawLine(a.J.translateY(l,p.position),a.J.translate(l,{x:-5,y:p.position})),t.fillText(p.label,l.x-d.width-V*2,l.y+p.position+d.height/2,void 0,Ie)});return t.stroke(),this.maybeDrawGrid(i,c,d=>[a.J.translate(l,"y",d.position),a.J.translate(l,{x:o,y:d.position})]),{size:u.width+V*2}}}class _i extends ft{render(n){const{lower2d:t}=this.renderCtx,{plot:r,position:s}=n,{height:i,width:o}=a.$t.dims(r),l=this.tickFactory.create({...n,size:i});t.beginPath(),this.setColor(this.state.color),this.drawLine(s,a.J.translateY(s,i));const c=this.drawTicks(l,(u,d)=>{this.drawLine(a.J.translateY(s,d.position),a.J.translate(s,{x:V,y:d.position})),t.fillText(d.label,s.x+V+Se,s.y+d.position+u.height/2,void 0,Ie)});return t.stroke(),this.maybeDrawGrid(i,l,u=>[a.J.translateY(s,u.position),a.J.translate(s,{x:-o,y:u.position})]),{size:c.width+V+Se}}}const Ne=Zr.extend({axisKey:f.z.string().optional(),bounds:a.G.bounds.optional(),autoBounds:f.z.object({lower:f.z.boolean().optional().default(!0),upper:f.z.boolean().optional().default(!0)}).or(f.z.boolean().optional().default(!0)),autoBoundPadding:f.z.number().optional(),autoBoundUpdateInterval:a.O.z.optional().default(a.O.seconds(10)),size:f.z.number().optional().default(0),label:f.z.string().optional().default(""),labelSize:f.z.number().optional().default(0)}).partial({color:!0,font:!0,gridColor:!0}),_c=2,Fc=7,Fi=(e,n)=>a.G.contains({lower:e-Fc,upper:e+_c},n),qc=a.G.DECIMAL,bs=a.m.now(),Gc={lower:Number(bs.valueOf()),upper:Number(bs.add(a.O.HOUR).valueOf())},qi=e=>e==="linear"?qc:Gc,Hc=(e,n=.1,t)=>{const r=a.G.max(e.filter(a.G.isFinite));if(!a.G.isFinite(r))return qi(t);const{lower:s,upper:i}=r;if(i===s)return{lower:s-1,upper:i+1};const o=(i-s)*n;return{lower:s-o,upper:i+o}},Jc=.01,jc=.1;class Gi extends g.Composite{afterUpdate(n){var l;const{internal:t}=this,{location:r,autoBoundUpdateInterval:s}=this.state;t.render=L.Context.use(n);const i=g.use(n),o=a.g.construct(r);(l=this.state).autoBoundPadding??(l.autoBoundPadding=o==="x"?jc:Jc),t.core=Ni(r,t.render,{color:i.colors.gray.l10,font:Kt.fontString(i,{level:"small",code:!0}),gridColor:i.colors.gray.l1,...this.state}),tt(n,"layout"),t.updateBounds??(t.updateBounds=Ps.r(c=>this.setState(u=>({...u,bounds:c})),s.milliseconds))}afterDelete(n){tt(n,"layout")}renderAxis(n,t){if(!n.canvases.includes("lower2d"))return;const{core:r}=this.internal,{grid:s,container:i}=n,o=mo(`${this.type}-${this.key}`,s,i),l={...n,position:o,decimalToDataScale:t,size:this.state.size+this.state.labelSize},{size:c}=r.render(l);Fi(this.state.size,c)||this.setState(u=>({...u,size:c}))}iBounds(n,t){var u,d;if(n&&this.internal.boundSnapshot!=null)return[this.internal.boundSnapshot,null];const{lower:r,upper:s}=Hi(this.state.autoBounds);if(!r&&!s&&this.state.bounds!=null)return this.internal.boundSnapshot=this.state.bounds,[this.state.bounds,null];const i=p=>({upper:s||this.state.bounds==null?p.upper:this.state.bounds.upper,lower:r||this.state.bounds==null?p.lower:this.state.bounds.lower});let o,l=null;try{const p=t();o=Hc(p,this.state.autoBoundPadding,this.state.type)}catch(p){o=qi(this.state.type),l=p}const c=i(o);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,l]}dataToDecimalScale(n,t,r){const[s,i]=this.iBounds(n,t),o=a.g.swap(a.g.construct(this.state.location));return[a.b.Scale.scale(s).scale(1).translate(-a.$t.root(r)[o]).magnify(1/a.$t.dim(r,o)),i]}}const Hi=e=>typeof e=="boolean"?{lower:e,upper:e}:{lower:(e==null?void 0:e.lower)??!0,upper:(e==null?void 0:e.upper)??!0},xs=`#version 300 es
7
- precision lowp float;
8
-
9
- uniform lowp vec4 u_color;
10
- out vec4 fragColor;
11
-
12
- void main(void) {
13
- fragColor = u_color;
14
- }
15
- `,Wc=`#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
- `,Vc=`#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
- `,Ji=f.z.object({x:nn,y:nn,label:f.z.string().optional(),color:a.Dt.colorZ,strokeWidth:f.z.number().default(1),downsample:f.z.number().min(1).max(50).optional().default(1),visible:f.z.boolean().optional().default(!0)}),Xc=(e,n,t)=>e===-1||n===-1||e>=t.series.length?NaN:Number(t.series[e].at(n)),Kc=a.O.milliseconds(2);a.J.NAN,a.J.NAN,a.Dt.ZERO,a.G.ZERO;const Qc=(e,n)=>n.equals(a.g$2.UINT8)?e.UNSIGNED_BYTE:e.FLOAT;class Ts extends L.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=a.J.scale(t.scale,r.scale),i=a.J.translate(a.J.scale(r.scale,t.offset),r.offset);this.uniformXY("u_scale_aggregate",s),this.uniformXY("u_offset_aggregate",i)}draw({x:t,y:r,count:s,downsample:i,xOffset:o,yOffset:l},c,u,d){const{gl:p}=this.renderCtx;this.bindAttrBuffer("x",t.glBuffer,i,o,u),this.bindAttrBuffer("y",r.glBuffer,i,l,d),p.drawArraysInstanced(p.LINE_STRIP,0,s/i,c)}bindAttrBuffer(t,r,s,i=0,o){const{gl:l}=this.renderCtx;l.bindBuffer(l.ARRAY_BUFFER,r);const c=l.getAttribLocation(this.prog,`a_${t}`),u=Qc(l,o),d=o.density.valueOf();o.equals(a.g$2.UINT8)?l.vertexAttribIPointer(c,1,u,d*s,d*i):l.vertexAttribPointer(c,1,u,!1,d*s,d*i),l.enableVertexAttribArray(c)}getAndBindTranslationBuffer(t){const{gl:r}=this.renderCtx,s=`${this.renderCtx.aspect}:${t}`,i=this.translationBufferCache.get(s);if(i!=null)return r.bindBuffer(r.ARRAY_BUFFER,i.glBuffer),i;const o=r.createBuffer();if(o==null)throw new g.Qt("Failed to create buffer from WebGL context");const l=eu(this.renderCtx.aspect,t);r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,l,r.DYNAMIC_DRAW);const c={glBuffer:o,jsBuffer:l};return this.translationBufferCache.set(s,c),c}attrStrokeWidth(t){const{gl:r}=this.renderCtx,{jsBuffer:s}=this.getAndBindTranslationBuffer(t),i=r.getAttribLocation(this.prog,"a_translate");return r.vertexAttribPointer(i,2,r.FLOAT,!1,0,0),r.enableVertexAttribArray(i),r.vertexAttribDivisor(i,1),s.length/2}}const Ct=class Ct{constructor(n){h(this,"uint8HybridProgram");h(this,"float32Program");this.uint8HybridProgram=new Ts(n,Vc,xs),this.float32Program=new Ts(n,Wc,xs)}get gl(){return this.uint8HybridProgram.renderCtx.gl}getProgram(n){return n.equals(a.g$2.UINT8)?this.uint8HybridProgram:this.float32Program}static create(n,t){const r=new Ct(t);return n.set(Ct.CONTEXT_KEY,r),r}static use(n){const t=n.get(Ct.CONTEXT_KEY);if(t==null)throw new g.Qt("GLProgram not found");return t}};h(Ct,"CONTEXT_KEY","pluto-line-gl-program");let fn=Ct;class we extends g.Leaf{constructor(){super(...arguments);h(this,"schema",Ji)}afterUpdate(t){var i,o;const{internal:r}=this,s={onStatusChange:g.useAdder(t)};r.xTelem=G(t,this.state.x,r.xTelem,s),r.yTelem=G(t,this.state.y,r.yTelem,s),r.instrumentation=L.useInstrumentation(t,"line"),r.lineCtx=fn.use(t),r.requestRender=kn(t),(i=r.stopListeningXTelem)==null||i.call(r),(o=r.stopListeningYTelem)==null||o.call(r),r.stopListeningXTelem=r.xTelem.onChange(()=>r.requestRender("data")),r.stopListeningYTelem=r.yTelem.onChange(()=>r.requestRender("data")),r.requestRender("layout")}afterDelete(){var r,s,i,o;const{internal:t}=this;(s=(r=t.xTelem).cleanup)==null||s.call(r),(o=(i=t.yTelem).cleanup)==null||o.call(i),t.requestRender("layout")}xBounds(){return this.internal.xTelem.value()[0]}yBounds(){return this.internal.yTelem.value()[0]}findByXValue(t,r){const{xTelem:s,yTelem:i}=this.internal,[,o]=s.value();let[l,c]=[-1,-1];o.series.find((T,$)=>{const E=T.binarySearch(r),M=E>=0&&E<T.length;return M&&([l,c]=[E,$]),M});const{key:u}=this,{color:d,label:p}=this.state,m={key:u,color:d,label:p,position:{x:0,y:0},value:{x:NaN,y:NaN},bounds:{lower:0,upper:0}};if(l===-1||c===-1||!this.state.visible)return m;const v=o.series[c];m.value.x=Xc(c,l,o);const[,w]=i.value(),R=w.series.find(T=>a.G.contains(T.alignmentBounds,v.alignment+BigInt(l)));if(R==null)return m;const x=Number(R.alignment-v.alignment);return m.value.y=Number(R.at(l-x)),m.bounds={...R.bounds},m.position={x:t.dataToDecimalScale.x.pos(m.value.x),y:t.dataToDecimalScale.y.pos(m.value.y)},m}render(t){if(this.deleted||!this.state.visible)return;const{downsample:r}=this.state,{xTelem:s,yTelem:i,lineCtx:o}=this.internal,{dataToDecimalScale:l,exposure:c}=t,[[,u],[,d]]=[s.value(),i.value()];if(u.updateGLBuffer(o.gl),d.updateGLBuffer(o.gl),u.length===0||d.length===0)return;const p=o.getProgram(d.dataType),m=ou(u,d,c,r,Kc);this.internal.instrumentation.L.debug("render",()=>({key:this.key,downsample:r,scale:l.transform,props:t.region,ops:lu(m)}));const v=p.setAsActive(),w=p.bindState(this.state),R=p.renderCtx.scaleRegion(t.region).transform;m.forEach(x=>{const T=iu(l,x).transform;p.bindScale(T,R),p.draw(x,w,u.dataType,d.dataType)}),v()}}h(we,"TYPE","line");const tu=5e3,eu=(e,n)=>su(ru(e),n).map((t,r)=>Math.floor(r/nu)*(1/(tu*e))*t),nu=5,ru=e=>new Float32Array([0,0,0,e,0,-e,1,0,-1,0]),su=(e,n)=>{const t=new Float32Array(e.length*n);for(let r=0;r<n;r++)t.set(e,r*e.length);return t},iu=(e,n)=>e.translate(e.x.dim(Number(n.x.sampleOffset)),e.y.dim(Number(n.y.sampleOffset))),au={[we.TYPE]:we},ou=(e,n,t,r,s)=>{if(e.series.length===0||n.series.length===0)return[];const i=[];return e.series.forEach(o=>n.series.forEach(l=>{if(!cu(o,l,s))return;let c=0,u=0;o.alignment<l.alignment?c=Number(l.alignment-o.alignment):l.alignment<o.alignment&&(u=Number(o.alignment-l.alignment));const d=Math.min(o.length-c,l.length-u);if(d===0)return;const p=a.Y(Math.round(t*4*d),r,51);i.push({x:o,y:l,xOffset:c,yOffset:u,count:d,downsample:p})})),i},lu=e=>e.map(n=>({...n,x:n.x.digest,y:n.y.digest})),cu=(e,n,t)=>{const r=e.timeRange.overlapsWith(n.timeRange,t),s=a.G.overlapsWith(e.alignmentBounds,n.alignmentBounds);return r&&s};class Jt{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:a.J.construct(a.$t.left(t),r),end:a.J.construct(a.$t.right(t),r),...s}):this.line({start:a.J.construct(r,a.$t.top(t)),end:a.J.construct(r,a.$t.bottom(t)),...s})}line({stroke:n,lineWidth:t,lineDash:r,start:s,end:i}){const o=this.canvas;o.strokeStyle=a.Dt.hex(n),o.lineWidth=t,o.setLineDash([r]),o.beginPath(),o.moveTo(...a.J.couple(s)),o.lineTo(...a.J.couple(i)),o.stroke()}circle({fill:n,radius:t,position:r}){const s=this.canvas;s.fillStyle=a.Dt.hex(n),s.beginPath(),s.arc(...a.J.couple(r),t,0,2*Math.PI),s.fill()}resolveColor(n,t){return n==null?t==null?this.theme.colors.text:this.resolveColor(t):typeof n=="function"?n(this.theme):a.Dt.construct(n)}border({region:n,color:t,width:r,radius:s,location:i}){const o=this.canvas;o.strokeStyle=a.Dt.hex(this.resolveColor(t,this.theme.colors.border)),o.lineWidth=r??this.theme.sizes.border.width,s??(s=this.theme.sizes.border.radius),i==null||i===!0?s>0?(o.roundRect(...a.J.couple(a.$t.topLeft(n)),...a.J.couple(a.$t.dims(n)),s),o.stroke()):(o.rect(...a.J.couple(a.$t.topLeft(n)),...a.J.couple(a.$t.dims(n))),o.stroke()):tr.A(i).forEach(l=>{const[c,u]=a.$t.edgePoints(n,l);o.beginPath(),o.moveTo(...a.J.couple(c)),o.lineTo(...a.J.couple(u)),o.stroke()})}container({region:n,bordered:t=!0,rounded:r=!0,borderColor:s,borderRadius:i,borderWidth:o,backgroundColor:l}){i??(i=this.theme.sizes.border.radius),o??(o=1);const c=this.canvas;c.fillStyle=a.Dt.hex(this.resolveColor(l,this.theme.colors.gray.l1)),c.strokeStyle=a.Dt.hex(this.resolveColor(s,this.theme.colors.border)),c.setLineDash([]),c.lineWidth=1,c.beginPath(),r?c.roundRect(...a.J.couple(a.$t.topLeft(n)),...a.J.couple(a.$t.dims(n)),i):c.rect(...a.J.couple(a.$t.topLeft(n)),...a.J.couple(a.$t.dims(n))),c.fill(),t&&this.border({region:n,color:s,radius:i,width:o,location:t})}textContainer(n){const[t,r]=this.spacedTextDrawF(n);t.width+=12,t.height+=12;const{root:s=a.K.TOP_LEFT,offset:i=a.J.ZERO}=n,o={...n.position};s.x==="right"?o.x-=t.width+i.x:o.x+=i.x,s.y==="bottom"?o.y-=t.height+i.y:o.y+=i.y,this.container({region:a.$t.construct(o,t.width,t.height),...n}),this.canvas.filter="none",r(a.J.translate(o,[6,6]))}spacedTextDrawF({text:n,direction:t,spacing:r=1,level:s="p"}){const i=Kt.fontString(this.theme,{level:s}),o=n.map(u=>qr.dimensions(u,i,this.canvas)),l=this.theme.sizes.base*r,c=Math.max(...o.map(u=>u[a.g.dimension(t)]))+l;return[{[a.g.dimension(a.g.swap(t))]:Math.max(...o.map(u=>u[a.g.dimension(a.g.swap(t))])),[a.g.dimension(t)]:c*n.length-l},u=>{const d=Kt.fontString(this.theme,{level:s});this.canvas.font=d,this.canvas.fillStyle=a.Dt.hex(this.theme.colors.text),this.canvas.textBaseline="top",n.forEach((p,m)=>{this.canvas.fillText(p,u.x,u.y+c*m)})}]}list({length:n,itemHeight:t,width:r,spacing:s=0,position:i,draw:o,root:l=a.K.TOP_LEFT,offset:c=a.J.ZERO,padding:u=a.J.ZERO}){const d=n*t+u.y*2+s*(n-1),p=r+u.x*2,m={...i};l.x==="right"?m.x-=r+c.x*2:m.x+=c.x,l.y==="top"?m.y-=d+c.y*2:m.y+=c.y,this.container({region:a.$t.construct(m,{width:p,height:d}),backgroundColor:v=>v.colors.gray.l1});for(let v=0;v<n;v++){const w=a.$t.construct(a.J.construct(m.x+u.x,m.y+v*t+u.y+s*v),r,t);o(v,w)}}drawTextInCenter({box:n,text:t,level:r}){const s=qr.dimensions(t,this.canvas.font,this.canvas),i=a.$t.positionInCenter(a.$t.construct(a.J.ZERO,s),n);return this.text({text:t,position:a.$t.topLeft(i),level:r})}text({text:n,position:t,level:r="p",weight:s,shade:i,maxWidth:o,code:l,justify:c="left",align:u="top",color:d}){this.canvas.font=Kt.fontString(this.theme,{level:r,weight:s,code:l}),d!=null?this.canvas.fillStyle=a.Dt.hex(this.resolveColor(d)):i==null?this.canvas.fillStyle=a.Dt.hex(this.theme.colors.text):this.canvas.fillStyle=a.Dt.hex(this.theme.colors.gray[`l${i}`]),this.canvas.textAlign=c,this.canvas.textBaseline=u;let p;o!=null&&(p=this.canvas.scissor(a.$t.construct(t,o,1e3))),this.canvas.fillText(n,t.x,t.y),p==null||p()}}const Ir=f.z.object({position:f.z.number().optional(),pixelPosition:f.z.number().optional(),dragging:f.z.boolean(),lineWidth:f.z.number().optional().default(1),lineDash:f.z.number().optional().default(20),color:a.Dt.colorZ}),uu=3;class Ut extends g.Leaf{constructor(){super(...arguments);h(this,"schema",Ir);h(this,"lastUpdateRef",null)}afterUpdate(t){this.internal.renderCtx=L.Context.use(t);const r=g.use(t);this.internal.draw=new Jt(this.internal.renderCtx.upper2d,r),tt(t,"tool")}afterDelete(t){tt(t,"tool")}updatePositions({decimalToDataScale:t,plot:r}){const s=this.state.dragging,i=this.prevState.dragging&&!s;if((s||i)&&this.state.pixelPosition!=null){if(this.lastUpdateRef??(this.lastUpdateRef=this.state.pixelPosition),Math.abs(this.state.pixelPosition-this.lastUpdateRef)<uu&&!i)return this.state.pixelPosition;this.lastUpdateRef=this.state.pixelPosition;const c=t.pos(this.state.pixelPosition/a.$t.height(r));return this.setState(u=>({...u,position:c})),this.state.pixelPosition}if(this.state.position==null){const l=t.pos(.5);this.setState(c=>({...c,position:l}))}const o=t.reverse().pos(this.state.position)*a.$t.height(r);if(!isNaN(o)){if(this.state.pixelPosition!=null&&Math.abs(o-this.state.pixelPosition)<1)return this.state.pixelPosition;this.setState(l=>({...l,pixelPosition:o}))}return o}render(t){if(this.deleted)return;const{renderCtx:r}=this.internal,{location:s,plot:i}=t,o=a.K.direction(s),{upper2d:l}=r,c=this.internal.draw,u=this.updatePositions(t)+a.$t.top(t.plot);c.rule({stroke:this.state.color,lineWidth:this.state.lineWidth,lineDash:this.state.lineDash,direction:o,region:i,position:u}),l.fillStyle=a.Dt.hex(this.state.color),l.lineJoin="round",l.lineWidth=3.5,l.lineCap="round",l.beginPath();const d=4;if(s==="left"){const p=a.$t.left(i)-1;l.moveTo(p,u),l.lineTo(p-d,u-d),l.lineTo(p-d,u+d)}else s==="right"&&(l.moveTo(a.$t.right(i),u),l.lineTo(a.$t.right(i)+d,u-d),l.lineTo(a.$t.right(i)+d,u+d));l.closePath(),l.stroke()}}h(Ut,"TYPE","Rule");const ji={[Ut.TYPE]:Ut},hu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:ji,Rule:Ut,ruleStateZ:Ir},Symbol.toStringTag,{value:"Module"})),du=Ne.extend({location:a.K.x.optional().default("left")}),Ss=2,fu=e=>a.$t.signedWidth(e)<Ss||a.$t.signedHeight(e)<Ss;class Ce extends Gi{constructor(){super(...arguments);h(this,"schema",Ne)}xBounds(){return a.G.max(this.lines.map(t=>t.xBounds()).filter(t=>a.G.isFinite(t)))}bounds(t){const[r,s]=this.iBounds(t,this.dataBounds.bind(this));if(s!=null)throw s;return r}render(t){if(this.deleted)return;const[r,s]=this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport),i=r.invert().reverse();if(this.renderAxis(t,i),this.renderLines(t,r),this.renderRules(t,i),s!=null)throw s}renderLines({xDataToDecimalScale:t,plot:r,canvases:s,exposure:i},o){if(!s.includes("gl")||fu(r))return;const l={region:r,dataToDecimalScale:new a.b.XY(t,o),exposure:i};this.lines.forEach(c=>c.render(l))}renderRules({container:t,plot:r,canvases:s},i){if(!s.includes("upper2d"))return;const{location:o}=this.state,{render:l}=this.internal,c=a.$t.construct(a.$t.left(t),a.$t.top(r),a.$t.width(t),a.$t.height(r)),u=l.scissor(c,a.J.ZERO,["upper2d"]),d={container:t,plot:r,decimalToDataScale:i,location:o};this.rules.map(p=>p.render(d)),u()}findByXValue({xDataToDecimalScale:t,plot:r,viewport:s,hold:i,exposure:o},l){const[c,u]=this.dataToDecimalScale(i,this.dataBounds.bind(this),s);if(u!=null)throw u;const d=new a.b.XY(t,c),p={region:r,dataToDecimalScale:d,exposure:o};return this.lines.map(m=>m.findByXValue(p,l)).map(m=>({...m,units:this.state.label}))}dataBounds(){return this.lines.map(t=>t.yBounds())}get lines(){return this.childrenOfType(we.TYPE)}get rules(){return this.childrenOfType(Ut.TYPE)}}h(Ce,"TYPE","YAxis");const Wi=f.z.object({start:a.m.z,end:a.m.z});class pn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",Wi)}afterUpdate(t){this.internal.render=L.Context.use(t),this.internal.draw=new Jt(this.internal.render.upper2d,g.use(t))}}h(pn,"TYPE","range-annotation");const pu=g.cT.payloadZ.extend({viewport:a.G.bounds}),Vi=f.z.object({cursor:a.J.xy.or(f.z.null()),hovered:pu.or(f.z.null()),count:f.z.number()});class Ee extends g.Leaf{constructor(){super(...arguments);h(this,"schema",Vi);h(this,"fetchedInitial",a.A.ZERO)}afterUpdate(t){const{internal:r}=this;r.render=L.Context.use(t),r.draw=new Jt(r.render.upper2d,g.use(t));const s=g.useErrorHandler(t);r.requestRender=kn(t),r.ranges??(r.ranges=new Map);const i=Me(t);i!=null&&(r.client=i,r.tracker==null&&s(async()=>{r.tracker=await i.ranges.openTracker(),r.tracker.onChange(o=>{o.forEach(l=>{l.variant==="delete"?r.ranges.delete(l.key):a.Dt.isCrude(l.value.color)&&r.ranges.set(l.key,l.value)}),r.requestRender("tool"),this.setState(l=>({...l,count:r.ranges.size}))}),r.requestRender("tool")}))}async fetchInitial(t){const{internal:r}=this;if(r.client==null||this.fetchedInitial.equals(t,a.O.minutes(1)))return;this.fetchedInitial=t,(await r.client.ranges.retrieve(t)).forEach(i=>{a.Dt.isCrude(i.color)&&r.ranges.set(i.key,i)}),this.setState(i=>({...i,count:r.ranges.size}))}render(t){const{dataToDecimalScale:r,region:s,viewport:i,timeRange:o}=t;this.fetchInitial(o);const{draw:l,ranges:c}=this.internal,u=r.scale(a.$t.xBounds(s)),d=this.state.cursor==null?null:this.state.cursor.x;let p=null;const m=l.canvas.scissor(a.$t.construct({x:a.$t.left(s),y:a.$t.top(s)-35},{x:a.$t.right(s),y:a.$t.bottom(s)}));c.forEach(v=>{const w=a.Dt.colorZ.safeParse(v.color);if(!w.success)return;const R=w.data;let x=u.pos(Number(v.timeRange.start.valueOf()));const T=u.pos(Number(v.timeRange.end.valueOf()));if(T<a.$t.left(s)||x>a.$t.right(s))return;x=a.Y(x,a.$t.left(s)-2,a.$t.right(s)-1);let $=!1;d!=null&&($=a.G.contains({lower:x,upper:T},d)),$&&(p={key:v.key,name:v.name,color:v.color,timeRange:v.timeRange,viewport:{lower:r.scale(a.$t.xBounds(i)).pos(Number(v.timeRange.start.valueOf())),upper:r.scale(a.$t.xBounds(i)).pos(Number(v.timeRange.end.valueOf()))}}),l.container({region:a.$t.construct({x,y:a.$t.top(s)-1},{x:T,y:a.$t.bottom(s)-1}),backgroundColor:a.Dt.setAlpha(R,.2),bordered:!1});const E=a.$t.construct({x:x+1,y:a.$t.top(s)-34},{x:T-1,y:a.$t.top(s)-12});l.container({region:E,backgroundColor:a.$t.width(E)<20?a.Dt.setAlpha(R,.4):M=>$?M.colors.gray.l2:M.colors.gray.l0,bordered:!0,borderWidth:1,borderRadius:2,borderColor:a.Dt.setAlpha(R,.8)}),l.text({text:v.name,position:{x:x+8,y:a.$t.top(s)-30},level:"small",shade:10,weight:500,maxWidth:T-x-16})}),m(),p!=null?this.setState(v=>({...v,hovered:p})):this.state.hovered&&this.setState(v=>({...v,hovered:null}))}}h(Ee,"TYPE","range-provider");const gu={[pn.TYPE]:pn,[Ee.TYPE]:Ee},mu=Ne;class Pe extends Gi{constructor(){super(...arguments);h(this,"schema",Ne)}render(t){if(this.deleted)return;const[r,s]=this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport);if(this.renderAxis(t,r.reverse()),this.renderYAxes(t,r),this.renderRangeAnnotations(t,r),s!=null)throw s}findByXDecimal(t,r){const[s,i]=this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport);if(i!=null)throw i;return this.findByXValue(t,s.reverse().pos(r))}findByXValue(t,r){const[s,i]=this.dataToDecimalScale(t.hold,this.dataBounds.bind(this),t.viewport);if(i!=null)throw i;const o={...t,xDataToDecimalScale:s};return this.yAxes.map(l=>l.findByXValue(o,r)).flat()}renderYAxes(t,r){const s={...t,xDataToDecimalScale:r};this.yAxes.forEach(i=>i.render(s))}get yAxes(){return this.childrenOfType(Ce.TYPE)}get rangeAnnotations(){return this.childrenOfType(Ee.TYPE)}bounds(t){const[r,s]=this.iBounds(t,this.dataBounds.bind(this));if(s!=null)throw s;return r}renderRangeAnnotations(t,r){const s=this.bounds(t.hold);this.rangeAnnotations.forEach(i=>i.render({dataToDecimalScale:r,region:t.plot,viewport:t.viewport,timeRange:new a.A(s.lower,s.upper)}))}dataBounds(){return this.yAxes.map(t=>t.xBounds())}}h(Pe,"TYPE","XAxis");const yu=a.J.construct(12),vu=3,bu=14,xu=a.J.construct(6),Nr=f.z.object({position:a.J.xy.or(f.z.null()),textColor:a.Dt.colorZ.optional().default(a.Dt.ZERO),backgroundColor:a.Dt.colorZ.optional().default(a.Dt.ZERO),borderColor:a.Dt.colorZ.optional().default(a.Dt.ZERO),ruleColor:a.Dt.colorZ.optional().default(a.Dt.ZERO),ruleStrokeWidth:f.z.number().optional().default(1),ruleStrokeDash:f.z.number().default(0)});class _t extends g.Leaf{constructor(){super(...arguments);h(this,"schema",Nr)}afterUpdate(t){const r=g.use(t);a.Dt.isZero(this.state.textColor)&&(this.state.textColor=r.colors.text),a.Dt.isZero(this.state.backgroundColor)&&(this.state.backgroundColor=r.colors.gray.l1),a.Dt.isZero(this.state.borderColor)&&(this.state.borderColor=r.colors.border),a.Dt.isZero(this.state.ruleColor)&&(this.state.ruleColor=r.colors.gray.l7),this.internal.dotColor=r.colors.text,this.internal.dotColorContrast=r.colors.textInverted,this.internal.render=L.Context.use(t),this.internal.draw=new Jt(this.internal.render.upper2d,r),tt(t,"tool")}afterDelete(t){tt(t,"tool")}render(t){if(this.deleted||this.state.position==null)return;const{region:r}=t,s=a.b.XY.scale(a.$t.DECIMAL).scale(r),i=a.b.XY.scale(r).scale(a.$t.DECIMAL),o=t.findByXDecimal(i.x.pos(this.state.position.x)),l=o.filter(x=>a.J.isFinite(x.value)),{draw:c}=this.internal,u=l.reduce((x,T)=>x+T.position.x,0)/l.length,d=new a.m(l.reduce((x,T)=>x+T.value.x,0)/l.length),p=s.x.pos(u);if(!a.G.contains(a.$t.xBounds(r),p))return;c.rule({stroke:this.state.ruleColor,lineWidth:this.state.ruleStrokeWidth,lineDash:this.state.ruleStrokeDash,direction:"y",region:r,position:p}),l.forEach(x=>{const T=s.pos(x.position);c.circle({fill:a.Dt.setAlpha(x.color,.5),radius:8,position:T}),c.circle({fill:a.Dt.setAlpha(x.color,.8),radius:5,position:T}),c.circle({fill:a.Dt.pickByContrast(x.color,this.internal.dotColor,this.internal.dotColorContrast),radius:2,position:T})});const m=i.pos(this.state.position),v={...a.K.TOP_LEFT};m.x>.6&&(v.x="right"),m.y>.6&&(v.y="bottom");let w=o.reduce((x,T)=>{var $;return Math.max(x,(($=T.label)==null?void 0:$.length)??0)},0);const R=d.fString("preciseDate","local").length;R>w&&(w=R),c.list({root:v,offset:yu,length:l.length+1,padding:xu,itemHeight:bu,spacing:vu,width:w*7+48,position:this.state.position,draw:(x,T)=>{let $="",E="",M=this.state.textColor;if(x===0)$="Time",E=d.fString("preciseDate","local");else{const O=l[x-1];$=O.label??"",E=a.Wt.roundBySpan(O.value.y,O.bounds).toString(),M=O.color}c.text({position:a.$t.topLeft(T),text:$,level:"small",weight:500,color:M}),c.text({position:a.J.translateY(a.$t.topRight(T),-1),text:E,level:"small",justify:"right",code:!0,shade:10})}})}}h(_t,"TYPE","tooltip");const Xi={[_t.TYPE]:_t},Tu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:Xi,Tooltip:_t,tooltipStateZ:Nr},Symbol.toStringTag,{value:"Module"})),Br=f.z.object({one:a.J.xy.nullable(),two:a.J.xy.nullable(),hover:a.J.xy.nullable(),color:f.z.union([a.Dt.colorZ,f.z.object({verticalLine:a.Dt.colorZ.optional().default(a.Dt.ZERO),horizontalLine:a.Dt.colorZ.optional().default(a.Dt.ZERO),obliqueLine:a.Dt.colorZ.optional().default(a.Dt.ZERO)})]).optional().default(a.Dt.ZERO),strokeWidth:f.z.number().optional().default(1),strokeDash:f.z.number().optional().default(2)});class Ft extends g.Leaf{constructor(){super(...arguments);h(this,"schema",Br)}afterUpdate(t){const r=L.Context.use(t);this.internal.theme=g.use(t),this.internal.renderCtx=r,this.internal.draw=new Jt(r.upper2d,this.internal.theme),tt(t,"tool")}afterDelete(t){tt(t,"layout")}get verticalLineColor(){return a.Dt.isColor(this.state.color)?a.Dt.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:a.Dt.isZero(this.state.color.verticalLine)?this.internal.theme.colors.gray.l8:this.state.color.verticalLine}get horizontalLineColor(){return a.Dt.isColor(this.state.color)?a.Dt.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:a.Dt.isZero(this.state.color.horizontalLine)?this.internal.theme.colors.gray.l8:this.state.color.horizontalLine}get obliqueLineColor(){return a.Dt.isColor(this.state.color)?a.Dt.isZero(this.state.color)?this.internal.theme.colors.gray.l8:this.state.color:a.Dt.isZero(this.state.color.obliqueLine)?this.internal.theme.colors.gray.l8:this.state.color.obliqueLine}find(t){const{one:r,two:s}=this.state;if(r==null||s==null)return null;const{one:i,two:o}=this.prevState,{dataOne:l,dataTwo:c}=this.internal;if(i!=null&&a.J.equals(r,i)&&o!=null&&a.J.equals(s,o)&&l!=null&&c!=null){const[x,T]=[t.findByXValue(l.x),t.findByXValue(c.x)];return x.length===0||T.length===0?null:[x.sort(($,E)=>a.J.distance(l,$.value)-a.J.distance(l,E.value))[0],T.sort(($,E)=>a.J.distance(c,$.value)-a.J.distance(c,E.value))[0]]}const u=a.b.XY.scale(t.region).scale(a.$t.DECIMAL),[d,p]=[u.pos(r),u.pos(s)],[m,v]=[t.findByXDecimal(d.x),t.findByXDecimal(p.x)];if(m.length===0||v.length===0)return null;const[w,R]=[m.sort((x,T)=>a.J.distance(d,x.position)-a.J.distance(d,T.position))[0],v.sort((x,T)=>a.J.distance(p,x.position)-a.J.distance(p,T.position))[0]];return this.internal.dataOne=w.value,this.internal.dataTwo=R.value,[w,R]}renderHover(t){if(this.state.hover==null)return;const r=this.state.hover,s=a.b.XY.scale(t.region).scale(a.$t.DECIMAL),i=s.pos(r),o=t.findByXDecimal(s.pos(r).x);if(o.length===0)return;const l=o.sort((u,d)=>a.J.distance(i,u.position)-a.J.distance(i,d.position))[0],{draw:c}=this.internal;c.circle({fill:a.Dt.setAlpha(l.color,.5),radius:9,position:s.reverse().pos(l.position)})}render(t){if(this.deleted)return;this.renderHover(t);const r=this.find(t);if(r==null)return;const[s,i]=r,{draw:o}=this.internal,{strokeDash:l,strokeWidth:c}=this.state,u=a.b.XY.scale(a.$t.DECIMAL).scale(t.region),d=u.pos(s.position),p=u.pos(i.position),m=new a.O(Math.abs(s.value.x-i.value.x)),v=Math.abs(s.value.y-i.value.y),w=v/m.seconds;o.line({start:a.J.construct(d.x,d.y),end:a.J.construct(d.x,p.y),stroke:this.verticalLineColor,lineDash:l,lineWidth:c}),o.textContainer({text:[`${v.toFixed(2)} ${s.units??""}`],direction:"x",position:a.J.construct(d.x,(d.y+p.y)/2),level:"small"}),o.line({start:a.J.construct(d.x,p.y),end:a.J.construct(p.x,p.y),stroke:this.horizontalLineColor,lineDash:l,lineWidth:c}),o.textContainer({text:[m.truncate(a.O.MILLISECOND).toString()],direction:"x",position:a.J.construct((d.x+p.x)/2,p.y),level:"small"}),o.line({start:a.J.construct(d.x,d.y),end:a.J.construct(p.x,p.y),stroke:this.obliqueLineColor,lineDash:l,lineWidth:c}),o.textContainer({text:[`${w.toFixed(2)} ${s.units??""} / S`],direction:"x",position:a.J.construct((d.x+p.x)/2,(d.y+p.y)/2),level:"small"}),o.circle({fill:a.Dt.setAlpha(s.color,.5),radius:8,position:d}),o.circle({fill:a.Dt.setAlpha(s.color,.8),radius:5,position:d}),o.circle({fill:a.Dt.construct("#ffffff"),radius:2,position:d}),o.circle({fill:a.Dt.setAlpha(i.color,.5),radius:8,position:p}),o.circle({fill:a.Dt.setAlpha(i.color,.8),radius:5,position:p}),o.circle({fill:a.Dt.construct("#ffffff"),radius:2,position:p})}}h(Ft,"TYPE","measure");const Ki={[Ft.TYPE]:Ft},Su=Object.freeze(Object.defineProperty({__proto__:null,Measure:Ft,REGISTRY:Ki,measureStateZ:Br},Symbol.toStringTag,{value:"Module"})),Qi=f.z.object({container:a.$t.box,viewport:a.$t.box,hold:f.z.boolean().optional().default(!1),grid:f.z.record(f.z.string(),xi),visible:f.z.boolean().optional().default(!0),clearOverScan:a.J.crudeZ.optional().default(a.J.ZERO)}),wu=(e,n)=>{const t=a.$t.width(e)*Math.sqrt(a.$t.height(e)),r=a.$t.width(n)*Math.sqrt(a.$t.height(n));return t/r},Cu=["upper2d","lower2d","gl"],Eu=["upper2d"];class gn extends g.Composite{constructor(){super(...arguments);h(this,"schema",Qi)}afterUpdate(t){this.internal.instrumentation=L.useInstrumentation(t,"lineplot"),this.internal.aggregate=g.useAdder(t),this.internal.renderCtx=L.Context.use(t),g.useInterceptor(t,()=>null),Pn(t,r=>{this.state.visible&&this.requestRender("low",r)}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender("high","layout")}afterDelete(t){this.internal.renderCtx=L.Context.use(t),this.requestRender("high","layout")}findByXDecimal(t){const r={...this.state,plot:this.calculatePlot(),exposure:this.exposure};return this.axes.flatMap(s=>s.findByXDecimal(r,t)).flat()}findByXValue(t){const r={...this.state,plot:this.calculatePlot(),exposure:this.exposure};return this.axes.flatMap(s=>s.findByXValue(r,t)).flat()}get axes(){return this.childrenOfType(Pe.TYPE)}get tooltips(){return this.childrenOfType(_t.TYPE)}get measures(){return this.childrenOfType(Ft.TYPE)}get bounds(){return this.childrenOfType(ve.TYPE)}get exposure(){return wu(this.state.viewport,this.state.container)}renderAxes(t,r){const s={...this.state,plot:t,canvases:r,exposure:this.exposure};this.axes.forEach(i=>i.render(s))}renderTooltips(t,r){const s={findByXDecimal:this.findByXDecimal.bind(this),region:t,canvases:r};this.tooltips.forEach(i=>i.render(s))}renderBounds(){this.bounds.forEach(t=>t.render({getBounds:()=>{const r={};return this.axes.forEach(s=>{const i=s.state.axisKey??s.key;r[i]=s.bounds(this.state.hold),s.yAxes.forEach(o=>{const l=o.state.axisKey??o.key;r[l]=o.bounds(this.state.hold)})}),r}}))}renderMeasures(t){const r={findByXDecimal:this.findByXDecimal.bind(this),findByXValue:this.findByXValue.bind(this),region:t};this.measures.forEach(s=>s.render(r))}calculatePlot(){return yo(this.state.grid,this.state.container)}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}),({canvases:d})=>r.erase(this.state.container,this.state.clearOverScan,...d);const i=this.calculatePlot();s.L.debug("rendering",{key:this.key,viewport:this.state.viewport,container:this.state.container,grid:this.state.grid,plot:i,canvases:t});const o=a.J.construct(this.state.clearOverScan),l=r.scissor(this.state.container,o,t.filter(d=>d!=="gl")),c=r.scissor(i,a.J.ZERO,t.filter(d=>d==="gl"));try{this.renderAxes(i,t),this.renderTooltips(i,t),this.renderMeasures(i),this.renderBounds()}catch(d){if(d.message.toLowerCase().includes("bigint"))return;this.internal.aggregate({key:`${this.type}-${this.key}`,variant:"error",message:d.message})}finally{l(),c()}s.L.debug("rendered",{key:this.key});const u=a.$t.copy(this.state.container);return({canvases:d})=>r.erase(u,this.state.clearOverScan,...d)}requestRender(t,r){const{renderCtx:s}=this.internal;let i=Cu;r==="tool"&&(i=Eu),s.loop.set({key:`${this.type}-${this.key}`,render:()=>this.render(i),priority:t,canvases:i})}}h(gn,"TYPE","LinePlot");const Pu={[gn.TYPE]:gn,[Pe.TYPE]:Pe,[Ce.TYPE]:Ce,[ve.TYPE]:ve},Ur=f.z.object({dpr:f.z.number(),region:a.$t.box,bootstrap:f.z.boolean().optional().default(!1),bootstrapped:f.z.boolean().optional().default(!1),glCanvas:f.z.any().optional(),upper2dCanvas:f.z.any().optional(),lower2dCanvas:f.z.any().optional(),os:a.S.osZ});class ke extends g.Composite{constructor(){super(...arguments);h(this,"schema",Ur);h(this,"renderCtx",null)}afterUpdate(t){if(this.renderCtx==null){if(!this.state.bootstrap)return;const{glCanvas:r,lower2dCanvas:s,upper2dCanvas:i,os:o}=this.state;if(r==null||s==null||i==null)throw new g.Qt("[vis.worker.Canvas] - expected render context bootstrap to include all canvases");this.renderCtx=L.Context.create(t,r,s,i,o),fn.create(t,this.renderCtx),this.setState(l=>({...l,bootstrap:!1,bootstrapped:!0,glCanvas:void 0,lower2dCanvas:void 0,upper2dCanvas:void 0}))}else this.renderCtx.update(t);this.renderCtx.resize(this.state.region,this.state.dpr)}}h(ke,"TYPE","Canvas");const ta={[ke.TYPE]:ke},ku=Object.freeze(Object.defineProperty({__proto__:null,Canvas:ke,REGISTRY:ta,canvasStateZ:Ur},Symbol.toStringTag,{value:"Module"})),ea=f.z.object({triggered:f.z.boolean(),status:g.specZ,sink:On.optional().default(Dn),source:cr.optional().default(ar)});class mn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",ea)}afterUpdate(t){var i,o,l;const{sink:r,source:s}=this.state;this.internal.source=G(t,s,this.internal.source),this.internal.sink=ze(t,r,this.internal.sink),this.state.triggered&&!this.prevState.triggered&&this.internal.sink.set(((i=this.state.status.data)==null?void 0:i.authority)!==a.Ft.ABSOLUTE_AUTHORITY),this.updateEnabledState(),(l=(o=this.internal).stopListening)==null||l.call(o),this.internal.stopListening=this.internal.source.onChange(()=>this.updateEnabledState())}updateEnabledState(){const t=this.internal.source.value();Qn.x.equal(t,this.state.status)||this.setState(r=>({...r,status:t,triggered:!1}))}afterDelete(){var t,r,s,i;this.internal.stopListening(),(r=(t=this.internal.source).cleanup)==null||r.call(t),(i=(s=this.internal.sink).cleanup)==null||i.call(s)}render(){}}h(mn,"TYPE","Chip");const na=f.z.object({}),ws="control-state-provider",ra=g.Gv.stateZ.extend({subjectColor:a.Dt.colorZ});class qt extends g.Composite{constructor(){super(...arguments);h(this,"schema",na);h(this,"colors",new Map);h(this,"tracker");h(this,"disconnectTrackerChange");h(this,"obs",new er.Observer)}static use(t){return t.get(ws)}afterUpdate(t){const{internal:r}=this;r.instrumentation=L.useInstrumentation(t,"control-state");const s=g.use(t);r.palette=s.colors.visualization.palettes.default,r.defaultColor=s.colors.gray.l8;const i=Me(t);if(r.client!=null&&i===r.client)return;r.client=i,t.set(ws,this),g.useErrorHandler(t)(async()=>{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)}afterDelete(t){g.useErrorHandler(t)(async()=>{await this.maybeCloseTracker()})}onChange(t){return this.obs.onChange(t)}get(t){return Array.isArray(t)?a.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 i;const{internal:r}=this,{instrumentation:s}=r;try{this.tracker=await t.control.openStateTracker()}catch{s.L.error("failed to open state tracker");return}(i=this.disconnectTrackerChange)==null||i.call(this),this.disconnectTrackerChange=this.tracker.onChange(o=>{if(s.L.debug("transfer",{transfers:o.map(l=>g.Gv.transferString(l))}),this.tracker==null)throw new g.Qt("tracker is null inside it's own onChange callback!");this.updateColors(this.tracker),this.obs.notify(o)})}updateColors(t){const r=t.subjects(),s=r.map(l=>l.key),i=Array.from(this.colors.values());this.colors.forEach((l,c)=>!s.includes(c)&&this.colors.delete(c));const{palette:o}=this.internal;r.forEach(l=>{if(this.colors.has(l.key))return;const c=o.find(u=>!i.includes(u))??o[0];this.colors.set(l.key,c),i.push(c)})}}h(qt,"TYPE","StateProvider");const sa=["acquired","released","overridden","failed"],ia=f.z.enum(sa),aa=f.z.object({name:f.z.string(),authority:f.z.number().default(0),acquireTrigger:f.z.number(),status:ia.optional(),needsControlOf:g.jv.keyZ.array().optional().default([])});class yn extends g.Composite{constructor(){super(...arguments);h(this,"schema",aa);h(this,"registry",new Map);h(this,"writer")}afterUpdate(t){const{internal:r}=this;r.instrumentation=L.useInstrumentation(t),(r.prevTrigger==null||Math.abs(this.state.acquireTrigger-r.prevTrigger)>1)&&(r.prevTrigger=this.state.acquireTrigger);const s=Me(t),i=qt.use(t);g.useErrorHandler(t)(async()=>{r.client=s,r.client==null&&await this.release(),r.stateProv=i,r.telemCtx=fi(t,this,r.telemCtx),r.addStatus=g.useAdder(t),this.state.acquireTrigger>r.prevTrigger?await this.acquire():this.state.acquireTrigger<r.prevTrigger&&await this.release()})}afterDelete(t){g.useErrorHandler(t)(async()=>{await this.release()})}async updateNeedsControlOf(){const{client:t}=this.internal;if(t==null)return;const r=new Set([]);for(const i of this.registry.keys())(await i.needsControlOf(t)).forEach(l=>l!==0&&r.add(l));const s=Array.from(r);a.F.unorderedPrimitiveArrays(this.state.needsControlOf,s)!==a.F.EQUAL&&this.setState(i=>({...i,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 i=g.x.now().sub(a.O.milliseconds(1));this.writer=await t.openWriter({start:i,channels:s,controlSubject:{key:this.key,name:this.state.name},authorities:this.state.authority,enableAutoCommit:!0}),this.setState(o=>({...o,status:"acquired"}))}catch(s){if(this.setState(i=>({...i,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(i=>[i,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 De.TYPE:{const i=new De(this,t.props);return this.registry.set(i,null),i}case $e.TYPE:{const i=new $e(this,this.internal.stateProv,t.props);return this.registry.set(i,null),i}case Re.TYPE:return new Re(this,t.props);default:return null}})();return s!=null&&this.updateNeedsControlOf(),s}}h(yn,"TYPE","Controller");const oa=f.z.object({channel:f.z.number()});class De extends Mn{constructor(t,r){super(r);h(this,"controller");h(this,"schema",oa);this.controller=t}invalidate(){}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}set(t){(async()=>{const{client:r}=this.controller.internal;if(r==null)return;const s=await r.channels.retrieve(this.props.channel),i={[s.key]:t};if(s.index!==0){const o=await r.channels.retrieve(s.index);i[o.key]=g.x.now()}await this.controller.set(i)})()}}h(De,"TYPE","controlled-numeric-telem-sink");const Du=e=>({type:De.TYPE,props:e,variant:"sink",valueType:"number"}),la=f.z.object({authority:f.z.number().default(g.Gv.ABSOLUTE_AUTHORITY),channel:f.z.number()});class Re extends Mn{constructor(t,r){super(r);h(this,"controller");h(this,"schema",la);this.controller=t}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}set(t){(async()=>{const{controller:r}=this,{client:s}=r.internal;if(s==null)return;const i=await s.channels.retrieve(this.props.channel),o=[i.key];i.index!==0&&o.push(i.index),t?await this.controller.setAuthority(o,this.props.authority):await this.controller.releaseAuthority(o)})()}}h(Re,"TYPE","acquire-channel-control");const Ru=e=>({type:Re.TYPE,props:e,variant:"sink",valueType:"boolean"}),ca=f.z.object({channel:f.z.number()});class $e extends F{constructor(t,r,s){super(s);h(this,"prov");h(this,"valid",!1);h(this,"stopListening");h(this,"controller");h(this,"schema",ca);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=a.Ft.filterTransfersByChannelKey(t);this.stopListening=this.prov.onChange(i=>{var o;r(i).length!==0&&((o=this.notify)==null||o.call(this))}),this.valid=!0}value(){this.maybeRevalidate();const t=g.x.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}}}cleanup(){var t;this.controller.deleteTelem(this),(t=this.stopListening)==null||t.call(this)}}h($e,"TYPE","controlled-status-source");const $u=e=>({type:$e.TYPE,props:e,variant:"source",valueType:"status"}),ua=f.z.object({statusSource:cr.optional().default(ar),colorSource:lr.optional().default(Rn),status:g.specZ,color:a.Dt.colorZ.optional()});class vn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",ua);h(this,"stopListeningStatus");h(this,"stopListeningColor")}afterUpdate(t){var o,l;const{internal:r}=this,{statusSource:s,colorSource:i}=this.state;r.statusSource=G(t,s,r.statusSource),r.colorSource=G(t,i,r.colorSource),this.updateState(),(o=this.stopListeningStatus)==null||o.call(this),(l=this.stopListeningColor)==null||l.call(this),this.stopListeningStatus=r.statusSource.onChange(()=>{this.updateState()}),this.stopListeningColor=r.colorSource.onChange(()=>{this.updateState()})}afterDelete(){var t,r,s,i;(r=(t=this.internal.statusSource).cleanup)==null||r.call(t),(i=(s=this.internal.colorSource).cleanup)==null||i.call(s)}render(){}updateState(){const t=this.internal.colorSource.value(),r=this.internal.statusSource.value();a.Dt.equals(t,this.state.color)&&r.message===this.state.status.message||this.setState(s=>({...s,color:t,status:r}))}}h(vn,"TYPE","Indicator");const ha=f.z.object({needsControlOf:g.jv.keyZ.array(),states:ra.array()});class bn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",ha)}afterUpdate(t){var l;const{internal:r}=this;r.stateProv=qt.use(t);const s=this.state.needsControlOf;(l=r.disconnectStateProv)==null||l.call(r);const i=a.Ft.filterTransfersByChannelKey(...s),o=r.stateProv.get(s);this.setState(c=>({...c,states:o})),r.disconnectStateProv=r.stateProv.onChange(c=>{if(i(c).length===0)return;const u=r.stateProv.get(s);this.setState(d=>({...d,states:u}))})}afterDelete(){var r;const{internal:t}=this;(r=t.disconnectStateProv)==null||r.call(t)}render(){}}h(bn,"TYPE","Legend");const Ou={[yn.TYPE]:yn,[qt.TYPE]:qt,[vn.TYPE]:vn,[mn.TYPE]:mn,[bn.TYPE]:bn},Yu=f.z.object({region:a.$t.box,clearOverScan:a.J.crudeZ.optional().default(0),visible:f.z.boolean().optional().default(!0)}),Cs=["upper2d","lower2d"],Et=class Et extends g.Composite{constructor(){super(...arguments);h(this,"schema",Et.stateZ)}afterUpdate(t){const{internal:r}=this;r.renderCtx=L.Context.use(t),r.handleError=g.useErrorHandler(t),Pn(t,()=>{this.state.visible&&this.requestRender("low")}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender("high")}afterDelete(){this.requestRender("high")}render(){if(this.deleted)return;const t=a.$t.copy(this.state.region);if(!this.state.visible)return()=>this.internal.renderCtx.erase(t,this.state.clearOverScan);const{renderCtx:r,handleError:s}=this.internal,i=a.b.XY.translate(a.$t.topLeft(this.state.region)),o=r.scissor(this.state.region,a.J.construct(this.state.clearOverScan),Cs);try{for(const l of this.children)l.render({viewportScale:i})}catch(l){s(l,"Failed to render table")}finally{o()}return()=>this.internal.renderCtx.erase(t,this.state.clearOverScan)}requestRender(t){const{renderCtx:r}=this.internal;r.loop.set({key:`${Et.TYPE}-${this.key}`,render:this.render.bind(this),priority:t,canvases:Cs})}};h(Et,"TYPE","Table"),h(Et,"stateZ",Yu);let Oe=Et;const Mu={[Oe.TYPE]:Oe},da=f.z.object({trigger:f.z.number(),sink:On.optional().default(Dn)});class xn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",da)}afterUpdate(t){var o;const{sink:r}=this.state;(o=this.internal).prevTrigger??(o.prevTrigger=this.state.trigger),this.internal.sink=ze(t,r,this.internal.sink);const s=this.internal.prevTrigger;if(this.internal.prevTrigger=this.state.trigger,this.state.trigger<=s)return;g.useErrorHandler(t)(async()=>{this.internal.sink.set(!0)})}afterDelete(){var t,r;(r=(t=this.internal.sink).cleanup)==null||r.call(t)}}h(xn,"TYPE","Button");const Lu={[xn.TYPE]:xn},_r=f.z.object({position:a.J.xy,zoom:f.z.number(),region:a.$t.box,clearOverScan:a.J.crudeZ.optional().default(10),visible:f.z.boolean().optional().default(!0)}),qe=["upper2d","lower2d"],Pt=class Pt extends g.Composite{constructor(){super(...arguments);h(this,"schema",Pt.stateZ)}afterUpdate(t){this.internal.renderCtx=L.Context.use(t),this.internal.addStatus=g.useAdder(t),Pn(t,()=>{this.state.visible&&this.requestRender("low")}),!(!this.state.visible&&!this.prevState.visible)&&(this.internal.viewportScale=a.b.XY.magnify(a.J.construct(this.state.zoom)).translate(a.$t.topLeft(this.state.region)).translate(this.state.position),this.requestRender("high"))}afterDelete(){this.requestRender("high")}render(){if(this.deleted)return;const{renderCtx:t,addStatus:r,viewportScale:s}=this.internal,i=a.$t.construct(this.state.region);if(!this.state.visible)return()=>t.erase(i,this.state.clearOverScan,...qe);const o=t.scissor(i,a.J.ZERO,qe);try{this.children.forEach(c=>{var u;return(u=c.render)==null?void 0:u.call(c,{viewportScale:s})})}catch(c){if(!(c instanceof Error))throw c;r({variant:"error",message:"Failed to render diagram",description:c.message})}finally{o()}const l=a.$t.copy(this.state.region);return()=>t.erase(l,this.state.clearOverScan,...qe)}requestRender(t){const{renderCtx:r}=this.internal;r.loop.set({key:`${Pt.TYPE}-${this.key}`,render:this.render.bind(this),priority:t,canvases:qe})}};h(Pt,"TYPE","Diagram"),h(Pt,"stateZ",_r);let Gt=Pt;const fa={[Gt.TYPE]:Gt},zu=Object.freeze(Object.defineProperty({__proto__:null,Diagram:Gt,REGISTRY:fa,diagramStateZ:_r},Symbol.toStringTag,{value:"Module"})),pa=f.z.object({enabled:f.z.boolean(),source:or.optional().default(ir)});class Tn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",pa)}afterUpdate(t){this.internal.addStatus=g.useOptionalAdder(t);const{source:r}=this.state,{internal:s}=this;this.internal.source=G(t,r,this.internal.source),g.useErrorHandler(t)(async()=>{var o;await this.updateEnabledState(),(o=s.stopListening)==null||o.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=this.internal.source.value();t!==this.state.enabled&&this.setState(r=>({...r,enabled:t}))}afterDelete(){var t,r;this.internal.stopListening(),(r=(t=this.internal.source).cleanup)==null||r.call(t)}}h(Tn,"TYPE","Light");const Au={[Tn.TYPE]:Tn},ga=f.z.object({region:a.$t.box,wheelPos:f.z.number(),scrolling:f.z.boolean(),empty:f.z.boolean(),visible:f.z.boolean(),telem:nn.optional().default(Ys),font:Es.levelZ.optional().default("p"),color:a.Dt.colorZ.optional().default(a.Dt.ZERO),overshoot:a.J.xy.optional().default({x:0,y:0})}),Zu=.98,Xt="lower2d",Iu={offset:0n,offsetRef:0n,scrollRef:0},oe=class oe extends g.Leaf{constructor(){super(...arguments);h(this,"schema",oe.z);h(this,"values",new a.$t$1([]));h(this,"scrollState",Iu)}afterUpdate(t){var u;const{internal:r}=this;r.render=L.Context.use(t),r.theme=g.use(t),a.Dt.isZero(this.state.color)?this.internal.textColor=r.theme.colors.gray.l11:r.textColor=this.state.color,r.telem=G(t,this.state.telem,r.telem);const{scrolling:s,wheelPos:i}=this.state;if(this.state.scrolling&&!this.prevState.scrolling){const d=this.values.alignmentBounds.upper-1n;this.scrollState={offset:d,offsetRef:d,scrollRef:this.state.wheelPos}}else if(s){const{scrollState:d,values:p}=this,m=Math.ceil((i-this.scrollState.scrollRef)/this.lineHeight);d.offset=this.values.traverseAlignment(d.offsetRef,-BigInt(m)),d.offset<p.alignmentBounds.lower+BigInt(this.visibleLineCount)&&(d.offset=p.alignmentBounds.lower,this.setState(v=>({...v,wheelPos:this.prevState.wheelPos}))),d.offset>=p.alignmentBounds.upper&&this.setState(v=>({...v,scrolling:!1}))}const[l,c]=this.internal.telem.value();this.values=c,this.checkEmpty(),(u=r.stopListeningTelem)==null||u.call(r),r.stopListeningTelem=r.telem.onChange(()=>{const[d,p]=this.internal.telem.value();this.checkEmpty(),this.values=p,this.requestRender()}),!(!this.state.visible&&!this.prevState.visible)&&this.requestRender()}checkEmpty(){const t=this.values.length===0;t!==this.state.empty&&this.setState(r=>({...r,empty:t}))}afterDelete(){var s;const{telem:t,render:r}=this.internal;(s=t.cleanup)==null||s.call(t),r.erase(a.$t.construct(this.state.region),a.J.ZERO,Xt)}async requestRender(){const{render:t}=this.internal;t.loop.set({key:`${this.type}-${this.key}`,render:()=>this.render(),priority:"high",canvases:[Xt]})}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((a.$t.height(this.state.region)-12)/this.lineHeight),this.values.length)}render(){const{render:t}=this.internal,r=this.state.region;if(a.$t.areaIsZero(r))return;if(!this.state.visible)return()=>t.erase(r,a.J.ZERO,Xt);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 i=this.state.region,o=t[Xt],l=new Jt(o,this.internal.theme),c=t.scissor(i,a.J.ZERO,[Xt]);this.renderElements(l,s),this.renderScrollbar(l),c();const u=a.$t.copy(this.state.region);return({canvases:d})=>t.erase(u,this.state.overshoot,...d)}renderScrollbar(t){const r=this.state.region,s=a.$t.height(r)/this.totalHeight*a.$t.height(r);if(s>=a.$t.height(r)*Zu)return;let i=a.$t.bottom(r)-s;this.state.scrolling&&(i-=Number(this.values.distance(this.values.alignmentBounds.upper,this.scrollState.offset))/this.values.length*a.$t.height(r)),i<0&&(i=a.$t.top(r)),t.container({region:a.$t.construct({x:a.$t.right(r)-6,y:i},{width:6,height:s}),bordered:!1,backgroundColor:o=>o.colors.gray.l6})}renderElements(t,r){const s=this.state.region;let i=0;for(const o of r){const l=this.values.dataType.equals(a.g$2.JSON)?JSON.stringify(o):o.toString();t.text({text:l,level:this.state.font,shade:11,position:a.J.translate(a.$t.topLeft(s),{x:6,y:i*this.lineHeight+6}),code:!0}),i++}}};h(oe,"TYPE","log"),h(oe,"z",ga);let Ye=oe;const Nu={[Ye.TYPE]:Ye},ma=f.z.object({fps:f.z.number()});class Sn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",ma);h(this,"interval",null)}afterUpdate(){this.interval!=null&&clearInterval(this.interval),this.interval=setInterval(()=>{const t=performance.getEntriesByName("alamos.trace.duration.render-cycle");if(t.length===0)return;const r=t.reduce((i,o)=>i+o.duration,0)/t.length,s=Math.round(1e3/r);performance.clearMarks(),performance.clearMeasures(),this.setState(i=>({...i,fps:s}))},1e3)}}h(Sn,"TYPE","performance");const Bu={[Sn.TYPE]:Sn},ya=f.z.object({trigger:f.z.number(),command:f.z.number().optional(),value:f.z.number(),sink:Zs.optional().default(Rs),source:As.optional().default($s)});class wn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",ya)}afterUpdate(t){const{sink:r,source:s,trigger:i,command:o}=this.state,{internal:l}=this;l.prevTrigger??(l.prevTrigger=i),(async()=>{var u;this.internal.source=G(t,s,this.internal.source),l.sink=ze(t,r,l.sink);const c=l.prevTrigger;l.prevTrigger=i,i>c&&o!=null&&this.internal.sink.set(o),this.updateValue(),(u=l.stopListening)==null||u.call(l),l.stopListening=l.source.onChange(()=>this.updateValue())})()}updateValue(){const t=this.internal.source.value();t!==this.state.value&&this.setState(r=>({...r,value:t,triggered:!1}))}afterDelete(){var r,s,i,o;const{internal:t}=this;t.stopListening(),(s=(r=t.source).cleanup)==null||s.call(r),(o=(i=t.sink).cleanup)==null||o.call(i)}}h(wn,"TYPE","Setpoint");const Uu={[wn.TYPE]:wn},va=f.z.object({triggered:f.z.boolean(),enabled:f.z.boolean(),sink:On.optional().default(Dn),source:or.optional().default(ir)});class Cn extends g.Leaf{constructor(){super(...arguments);h(this,"schema",va)}afterUpdate(t){var u;this.internal.addStatus=g.useOptionalAdder(t);const{sink:r,source:s,triggered:i,enabled:o}=this.state,{triggered:l}=this.prevState,{internal:c}=this;c.source=G(t,s,c.source),c.sink=ze(t,r,c.sink),i&&!l&&c.sink.set(!o),this.updateEnabledState(),(u=c.stopListening)==null||u.call(c),c.stopListening=c.source.onChange(()=>this.updateEnabledState())}reportError(t){this.internal.addStatus({key:this.key,variant:"error",message:`Failed to update Toggle: ${t.message}`})}updateEnabledState(){const t=this.internal.source.value();t!==this.state.enabled&&this.setState(r=>({...r,enabled:t,triggered:!1}))}afterDelete(){var t,r,s,i;this.internal.stopListening(),(r=(t=this.internal.source).cleanup)==null||r.call(t),(i=(s=this.internal.sink).cleanup)==null||i.call(s)}}h(Cn,"TYPE","Toggle");const _u={[Cn.TYPE]:Cn},qn={useAtlas:!0},Fu=f.z.object({box:a.$t.box,telem:ur.optional().default(Os),backgroundTelem:lr.optional().default(Rn),level:Es.levelZ.optional().default("p"),color:a.Dt.colorZ.optional().default(a.Dt.ZERO),precision:f.z.number().optional().default(2),minWidth:f.z.number().optional().default(60),width:f.z.number().optional(),notation:a.Yt.notationZ.optional().default("standard"),location:a.K.xy.optional().default({x:"left",y:"center"})}),qu=["upper2d","lower2d"],le=class le extends g.Leaf{constructor(){super(...arguments);h(this,"schema",le.z)}afterUpdate(t){var s,i;const{internal:r}=this;r.renderCtx=L.Context.use(t),r.theme=g.use(t),a.Dt.isZero(this.state.color)?r.textColor=r.theme.colors.gray.l10:r.textColor=this.state.color,r.telem=G(t,this.state.telem,r.telem),(s=r.stopListening)==null||s.call(r),r.stopListening=r.telem.onChange(()=>this.requestRender()),r.fontString=Kt.fontString(r.theme,{level:this.state.level,code:!0}),r.backgroundTelem=G(t,this.state.backgroundTelem,r.backgroundTelem),(i=r.stopListeningBackground)==null||i.call(r),r.stopListeningBackground=r.backgroundTelem.onChange(()=>this.requestRender()),r.requestRender=ks(t),this.requestRender()}afterDelete(){var r,s,i,o,l,c;const{internal:t}=this;(r=t.stopListening)==null||r.call(t),(s=t.stopListeningBackground)==null||s.call(t),(o=(i=t.telem).cleanup)==null||o.call(i),(c=(l=t.backgroundTelem).cleanup)==null||c.call(l),t.requestRender==null?t.renderCtx.erase(a.$t.construct(this.state.box),a.J.ZERO,...qu):t.requestRender("layout")}requestRender(){const{requestRender:t}=this.internal;t!=null?t("layout"):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(i=>({...i,width:Math.max(s,i.minWidth)})):this.state.width-this.fontHeight>s&&this.setState(i=>({...i,width:Math.max(s,i.minWidth)}))}render({viewportScale:t=a.b.XY.IDENTITY}){const{renderCtx:r,telem:s,backgroundTelem:i,fontString:o,requestRender:l}=this.internal,{location:c,box:u}=this.state;if(a.$t.areaIsZero(u))return;const d=a.$t.topLeft(u),p=a.$t.width(u),m=a.$t.height(u),v=r.lower2d.applyScale(t);let w=s.value();v.font=o;const R=this.fontHeight,x=w[0]=="-";x&&(w=w.slice(1));const{theme:T}=this.internal,$=v.textDimensions(w,qn),E=$.width+T.sizes.base,M=$.height;l==null&&r.erase(a.$t.construct(this.prevState.box)),this.maybeUpdateWidth(E);const O={...a.J.ZERO};c.x==="left"?O.x=6+R*.75:c.x==="center"&&(O.x=p/2-E/2),c.y==="center"&&(O.y=m/2+M/2);const S=a.J.translate(d,O);let z=!0;if(this.state.backgroundTelem.type!=Rn.type){const H=i.value(),yt=a.Dt.isZero(H);if(z=yt,!yt){const rt=r.lower2d.applyScale(t);rt.fillStyle=a.Dt.hex(H),rt.rect(...a.J.couple(d),p,m),rt.fill(),v.fillStyle=a.Dt.hex(a.Dt.pickByContrast(H,T.colors.gray.l0,T.colors.gray.l11))}}z&&(v.fillStyle=a.Dt.hex(this.internal.textColor)),x&&v.fillText("-",...a.J.couple(a.J.translateX(S,-R*.6)),void 0,qn),v.fillText(w,...a.J.couple(S),void 0,qn)}};h(le,"TYPE","value"),h(le,"z",Fu);let Ht=le;const ba={[Ht.TYPE]:Ht},Gu=Object.freeze(Object.defineProperty({__proto__:null,REGISTRY:ba,Value:Ht},Symbol.toStringTag,{value:"Module"}));exports.AcquireChannelControl=Re;exports.Annotation=pn;exports.AuthoritySource=$e;exports.Base=ft;exports.BaseProvider=At;exports.Bottom=Bi;exports.BoundQuerier=ve;exports.Button=xn;exports.Canvas=ke;exports.Chip=mn;exports.Controller=yn;exports.Diagram=zu;exports.Diagram$1=Gt;exports.Indicator=vn;exports.Legend=bn;exports.Light=Tn;exports.Line=we;exports.LinePlot=gn;exports.Log=Ye;exports.Measure=Ft;exports.Performance=Sn;exports.Provider=Je;exports.Provider$1=Ee;exports.REGISTRY=Pu;exports.REGISTRY$1=Bu;exports.REGISTRY$10=ji;exports.REGISTRY$11=gu;exports.REGISTRY$12=Ki;exports.REGISTRY$13=au;exports.REGISTRY$14=Au;exports.REGISTRY$15=fa;exports.REGISTRY$16=Ou;exports.REGISTRY$17=ta;exports.REGISTRY$18=Lu;exports.REGISTRY$2=Mu;exports.REGISTRY$3=Nu;exports.REGISTRY$4=ba;exports.REGISTRY$5=Xi;exports.REGISTRY$6=_u;exports.REGISTRY$7=vi;exports.REGISTRY$8=Ds;exports.REGISTRY$9=Uu;exports.Right=_i;exports.Rule=Ut;exports.STATUSES=sa;exports.SetChannelValue=De;exports.Setpoint=wn;exports.StateProvider=qt;exports.Table=Oe;exports.Toggle=Cn;exports.Tooltip=_t;exports.Top=Ui;exports.Value=Ht;exports.XAxis=Pe;exports.YAxis=Ce;exports.ZERO_CONTEXT_VALUE=rr;exports.acquireChannelControl=Ru;exports.acquireChannelControlPropsZ=la;exports.aether=hu;exports.annotationStateZ=Wi;exports.authoritySource=$u;exports.authoritySourceProps=ca;exports.axisStateZ=Zr;exports.boundQuerierStateZ=bi;exports.buttonStateZ=da;exports.canvas=ku;exports.canvasStateZ=Ur;exports.channelData=qs;exports.chipStateZ=ea;exports.color=Zt;exports.colorGradient=ai;exports.control=Pn;exports.controllerStateZ=aa;exports.coreAxisStateZ=Ne;exports.diagramStateZ=_r;exports.external=po;exports.indicatorStateZ=ua;exports.interpolateNumber=Te;exports.interpolateRgb=jn;exports.interpolateString=Ei;exports.legendStateZ=ha;exports.lightStateZ=pa;exports.linePlotStateZ=Qi;exports.logState=ga;exports.measure=Su;exports.measureStateZ=Br;exports.newCanvas=Ni;exports.newTickFactory=Xn;exports.parseAutoBounds=Hi;exports.performanceStateZ=ma;exports.provider=Aa;exports.providerStateZ=Vi;exports.providerStateZ$1=Cr;exports.regions=ct;exports.request=tt;exports.rollingAverage=si;exports.rollingAverageProps=Tr;exports.ruleStateZ=Ir;exports.scaleNumber=li;exports.setChannelValue=Du;exports.setChannelValuePropsZ=oa;exports.setpoint=Qs;exports.setpointStateZ=ya;exports.sinkPipeline=Us;exports.sinkPipelinePropsZ=pr;exports.sourcePipeline=Bs;exports.sourcePipelinePropsZ=dr;exports.stateProviderStateZ=na;exports.stateZ=Ji;exports.statusZ=ia;exports.streamChannelData=Gs;exports.streamChannelValue=Hs;exports.streamChannelValuePropsZ=gr;exports.stringSourceSpecZ=ur;exports.stringifyNumber=ri;exports.stringifyNumberProps=xr;exports.sugaredStateZ=ra;exports.tickFactoryProps=Ar;exports.tickType=zr;exports.toggleStateZ=va;exports.tooltip=Tu;exports.tooltipStateZ=Nr;exports.useOptionalRequestor=ks;exports.useRequestor=kn;exports.value=Gu;exports.withinBounds=ti;exports.withinBoundsProps=br;exports.withinSizeThreshold=Fi;exports.xAxisStateZ=mu;exports.yAxisStateZ=du;