watch-tail 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -0
- package/build/client/_app/immutable/assets/0.Dfts6BC4.css +2 -0
- package/build/client/_app/immutable/assets/0.Dfts6BC4.css.br +0 -0
- package/build/client/_app/immutable/assets/0.Dfts6BC4.css.gz +0 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css +1 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css.br +0 -0
- package/build/client/_app/immutable/assets/BrushContext.2tkUc39H.css.gz +0 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css +1 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css.br +0 -0
- package/build/client/_app/immutable/assets/ChartAnnotations.Bw8CGteN.css.gz +0 -0
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css +1 -0
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css.br +1 -0
- package/build/client/_app/immutable/assets/Circle.C5MKzgk2.css.gz +0 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css +1 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css.br +0 -0
- package/build/client/_app/immutable/assets/DefaultTooltip.CGOVIm3D.css.gz +0 -0
- package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css +1 -0
- package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css.br +0 -0
- package/build/client/_app/immutable/assets/EventScatter.DA5sZ1c0.css.gz +0 -0
- package/build/client/_app/immutable/assets/Labels.sEaJtb97.css +1 -0
- package/build/client/_app/immutable/assets/Labels.sEaJtb97.css.br +0 -0
- package/build/client/_app/immutable/assets/Labels.sEaJtb97.css.gz +0 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css +1 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css.br +0 -0
- package/build/client/_app/immutable/assets/Legend.DnhxhJ2I.css.gz +0 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css +1 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css.br +0 -0
- package/build/client/_app/immutable/assets/Path.B0wDzTrn.css.gz +0 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css +1 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css.br +0 -0
- package/build/client/_app/immutable/assets/TransformContext.1cjyViIk.css.gz +0 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css +1 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css.br +0 -0
- package/build/client/_app/immutable/assets/Voronoi.ce7atosu.css.gz +0 -0
- package/build/client/_app/immutable/chunks/Amq8zxdJ.js +1 -0
- package/build/client/_app/immutable/chunks/Amq8zxdJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Amq8zxdJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B3p3umIY.js +1 -0
- package/build/client/_app/immutable/chunks/B3p3umIY.js.br +0 -0
- package/build/client/_app/immutable/chunks/B3p3umIY.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B43Eeyih.js +1 -0
- package/build/client/_app/immutable/chunks/B43Eeyih.js.br +0 -0
- package/build/client/_app/immutable/chunks/B43Eeyih.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B5q6rkQ-.js +1 -0
- package/build/client/_app/immutable/chunks/B5q6rkQ-.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5q6rkQ-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BAynhd7i.js +1 -0
- package/build/client/_app/immutable/chunks/BAynhd7i.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAynhd7i.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BDlvDAqe.js +1 -0
- package/build/client/_app/immutable/chunks/BDlvDAqe.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDlvDAqe.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BGmgUZMc.js +10 -0
- package/build/client/_app/immutable/chunks/BGmgUZMc.js.br +0 -0
- package/build/client/_app/immutable/chunks/BGmgUZMc.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BJpWBbAS.js +1 -0
- package/build/client/_app/immutable/chunks/BJpWBbAS.js.br +0 -0
- package/build/client/_app/immutable/chunks/BJpWBbAS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOT2hFMn.js +1 -0
- package/build/client/_app/immutable/chunks/BOT2hFMn.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOT2hFMn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BR2LaRms.js +1 -0
- package/build/client/_app/immutable/chunks/BR2LaRms.js.br +1 -0
- package/build/client/_app/immutable/chunks/BR2LaRms.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZFYtRPj.js +1 -0
- package/build/client/_app/immutable/chunks/BZFYtRPj.js.br +0 -0
- package/build/client/_app/immutable/chunks/BZFYtRPj.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BjxZ_neZ.js +5 -0
- package/build/client/_app/immutable/chunks/BjxZ_neZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjxZ_neZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js +1 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bl052uUt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Bw_9uNRP.js → BsH4MNzX.js} +1 -1
- package/build/client/_app/immutable/chunks/BsH4MNzX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BsH4MNzX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ByhwhtiG.js +1 -0
- package/build/client/_app/immutable/chunks/ByhwhtiG.js.br +0 -0
- package/build/client/_app/immutable/chunks/ByhwhtiG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C1lycbEF.js +1 -0
- package/build/client/_app/immutable/chunks/C1lycbEF.js.br +0 -0
- package/build/client/_app/immutable/chunks/C1lycbEF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js +4 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js.br +0 -0
- package/build/client/_app/immutable/chunks/C58PZtCD.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js +1 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCch3uox.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CEU4ihsz.js +1 -0
- package/build/client/_app/immutable/chunks/CEU4ihsz.js.br +0 -0
- package/build/client/_app/immutable/chunks/CEU4ihsz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CG6rRxUy.js +2 -0
- package/build/client/_app/immutable/chunks/CG6rRxUy.js.br +0 -0
- package/build/client/_app/immutable/chunks/CG6rRxUy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CM5sQDq_.js +1 -0
- package/build/client/_app/immutable/chunks/CM5sQDq_.js.br +0 -0
- package/build/client/_app/immutable/chunks/CM5sQDq_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CT_NYh_-.js +1 -0
- package/build/client/_app/immutable/chunks/CT_NYh_-.js.br +0 -0
- package/build/client/_app/immutable/chunks/CT_NYh_-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CZIk93qi.js +1 -0
- package/build/client/_app/immutable/chunks/CZIk93qi.js.br +0 -0
- package/build/client/_app/immutable/chunks/CZIk93qi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C_aXFBl3.js +1 -0
- package/build/client/_app/immutable/chunks/C_aXFBl3.js.br +0 -0
- package/build/client/_app/immutable/chunks/C_aXFBl3.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CqWPu3PG.js +1 -0
- package/build/client/_app/immutable/chunks/CqWPu3PG.js.br +1 -0
- package/build/client/_app/immutable/chunks/CqWPu3PG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CyncJW0D.js +1 -0
- package/build/client/_app/immutable/chunks/CyncJW0D.js.br +0 -0
- package/build/client/_app/immutable/chunks/CyncJW0D.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4sC5v3c.js +1 -0
- package/build/client/_app/immutable/chunks/D4sC5v3c.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4sC5v3c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D76YLq-2.js +1 -0
- package/build/client/_app/immutable/chunks/D76YLq-2.js.br +0 -0
- package/build/client/_app/immutable/chunks/D76YLq-2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D8H_ivbb.js +1 -0
- package/build/client/_app/immutable/chunks/D8H_ivbb.js.br +0 -0
- package/build/client/_app/immutable/chunks/D8H_ivbb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DU0OQtdJ.js +1 -0
- package/build/client/_app/immutable/chunks/DU0OQtdJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/DU0OQtdJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js +1 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js.br +0 -0
- package/build/client/_app/immutable/chunks/Db0q5_zr.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js +1 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dfvzj6n2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js +1 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js.br +0 -0
- package/build/client/_app/immutable/chunks/HclGiUj8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/RobXhXPM.js +1 -0
- package/build/client/_app/immutable/chunks/RobXhXPM.js.br +1 -0
- package/build/client/_app/immutable/chunks/RobXhXPM.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js +1 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js.br +0 -0
- package/build/client/_app/immutable/chunks/Y5urAfNy.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Yk6ZJZnu.js +1 -0
- package/build/client/_app/immutable/chunks/Yk6ZJZnu.js.br +0 -0
- package/build/client/_app/immutable/chunks/Yk6ZJZnu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/jO4fmY1N.js +1 -0
- package/build/client/_app/immutable/chunks/jO4fmY1N.js.br +0 -0
- package/build/client/_app/immutable/chunks/jO4fmY1N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js +3 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js.br +0 -0
- package/build/client/_app/immutable/chunks/pqiPC7Y8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/snfmbqby.js +1 -0
- package/build/client/_app/immutable/chunks/snfmbqby.js.br +0 -0
- package/build/client/_app/immutable/chunks/snfmbqby.js.gz +0 -0
- package/build/client/_app/immutable/chunks/wx-wtMGx.js +15 -0
- package/build/client/_app/immutable/chunks/wx-wtMGx.js.br +0 -0
- package/build/client/_app/immutable/chunks/wx-wtMGx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js +1 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js.br +0 -0
- package/build/client/_app/immutable/chunks/yCfI4PCa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/zHL7lw4G.js +1 -0
- package/build/client/_app/immutable/chunks/zHL7lw4G.js.br +0 -0
- package/build/client/_app/immutable/chunks/zHL7lw4G.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.DFSifnlU.js +2 -0
- package/build/client/_app/immutable/entry/app.DFSifnlU.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DFSifnlU.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.2H5s3Lol.js +1 -0
- package/build/client/_app/immutable/entry/start.2H5s3Lol.js.br +1 -0
- package/build/client/_app/immutable/entry/start.2H5s3Lol.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BN3NguWs.js +1 -0
- package/build/client/_app/immutable/nodes/0.BN3NguWs.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BN3NguWs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Djdw1GzA.js +1 -0
- package/build/client/_app/immutable/nodes/1.Djdw1GzA.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Djdw1GzA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CjvaJDQJ.js +4 -0
- package/build/client/_app/immutable/nodes/2.CjvaJDQJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CjvaJDQJ.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +9 -7
- package/build/handler.js.map +1 -1
- package/build/index.js +9 -7
- package/build/index.js.map +1 -1
- package/build/server/chunks/chunks/Arc.canvas.js-D6g58nSp.js +701 -0
- package/build/server/chunks/chunks/Arc.canvas.js-D6g58nSp.js.map +1 -0
- package/build/server/chunks/chunks/Arc.js-D78Cf_4M.js +31 -0
- package/build/server/chunks/chunks/Arc.js-D78Cf_4M.js.map +1 -0
- package/build/server/chunks/chunks/Bar.js-Cv73T8_D.js +448 -0
- package/build/server/chunks/chunks/Bar.js-Cv73T8_D.js.map +1 -0
- package/build/server/chunks/chunks/ChartAnnotations.js-Ci22VB_6.js +983 -0
- package/build/server/chunks/chunks/ChartAnnotations.js-Ci22VB_6.js.map +1 -0
- package/build/server/chunks/chunks/Circle.html.js-BjwyNRG3.js +355 -0
- package/build/server/chunks/chunks/Circle.html.js-BjwyNRG3.js.map +1 -0
- package/build/server/chunks/chunks/ClipPath.canvas.js-CFTBDWVU.js +170 -0
- package/build/server/chunks/chunks/ClipPath.canvas.js-CFTBDWVU.js.map +1 -0
- package/build/server/chunks/chunks/DefaultTooltip.js-0r5rbE-1.js +352 -0
- package/build/server/chunks/chunks/DefaultTooltip.js-0r5rbE-1.js.map +1 -0
- package/build/server/chunks/chunks/EventScatter.js-D3Jaw_Cw.js +7308 -0
- package/build/server/chunks/chunks/EventScatter.js-D3Jaw_Cw.js.map +1 -0
- package/build/server/chunks/chunks/Labels.js-DpagpV6d.js +497 -0
- package/build/server/chunks/chunks/Labels.js-DpagpV6d.js.map +1 -0
- package/build/server/chunks/chunks/Legend.js-BOpwpe5s.js +343 -0
- package/build/server/chunks/chunks/Legend.js-BOpwpe5s.js.map +1 -0
- package/build/server/chunks/chunks/Line.html.js-BM5tR11G.js +423 -0
- package/build/server/chunks/chunks/Line.html.js-BM5tR11G.js.map +1 -0
- package/build/server/chunks/chunks/Link.canvas.js-P8ySzEAw.js +756 -0
- package/build/server/chunks/chunks/Link.canvas.js-P8ySzEAw.js.map +1 -0
- package/build/server/chunks/chunks/Path.canvas.js-DNAtnEBt.js +1259 -0
- package/build/server/chunks/chunks/Path.canvas.js-DNAtnEBt.js.map +1 -0
- package/build/server/chunks/chunks/Points.html.js-CLbHD6OP.js +228 -0
- package/build/server/chunks/chunks/Points.html.js-CLbHD6OP.js.map +1 -0
- package/build/server/chunks/chunks/Points.js-e6g0Re6H.js +14 -0
- package/build/server/chunks/chunks/Points.js-e6g0Re6H.js.map +1 -0
- package/build/server/chunks/chunks/Points2.js-BMGdkzTE.js +25 -0
- package/build/server/chunks/chunks/Points2.js-BMGdkzTE.js.map +1 -0
- package/build/server/chunks/chunks/Rect.html.js-Q3UvRwNn.js +547 -0
- package/build/server/chunks/chunks/Rect.html.js-Q3UvRwNn.js.map +1 -0
- package/build/server/chunks/chunks/Spline.js-BuZPz2PJ.js +516 -0
- package/build/server/chunks/chunks/Spline.js-BuZPz2PJ.js.map +1 -0
- package/build/server/chunks/chunks/Text.html.js-C8xO5Nz6.js +847 -0
- package/build/server/chunks/chunks/Text.html.js-C8xO5Nz6.js.map +1 -0
- package/build/server/chunks/chunks/TooltipItem.js-T0cKLjLu.js +314 -0
- package/build/server/chunks/chunks/TooltipItem.js-T0cKLjLu.js.map +1 -0
- package/build/server/chunks/chunks/Voronoi.js-DevTsXQE.js +2052 -0
- package/build/server/chunks/chunks/Voronoi.js-DevTsXQE.js.map +1 -0
- package/build/server/chunks/chunks/archive.js-C2D-5edp.js +823 -0
- package/build/server/chunks/chunks/archive.js-C2D-5edp.js.map +1 -0
- package/build/server/chunks/chunks/array.js-CBp0H4t3.js +8 -0
- package/build/server/chunks/chunks/array.js-CBp0H4t3.js.map +1 -0
- package/build/server/chunks/chunks/attributes.js-BVWo7wbg.js +25 -0
- package/build/server/chunks/chunks/attributes.js-BVWo7wbg.js.map +1 -0
- package/build/server/chunks/chunks/{env2.js-DXveJt1Y.js → aws.js-DkPqAybc.js} +2 -59
- package/build/server/chunks/chunks/aws.js-DkPqAybc.js.map +1 -0
- package/build/server/chunks/chunks/band.js-C7izXphE.js +155 -0
- package/build/server/chunks/chunks/band.js-C7izXphE.js.map +1 -0
- package/build/server/chunks/chunks/centroid.js-BnGN3LH0.js +1356 -0
- package/build/server/chunks/chunks/centroid.js-BnGN3LH0.js.map +1 -0
- package/build/server/chunks/chunks/common.js-BWQB8Die.js +5760 -0
- package/build/server/chunks/chunks/common.js-BWQB8Die.js.map +1 -0
- package/build/server/chunks/chunks/env2.js-CcIskxOZ.js +60 -0
- package/build/server/chunks/chunks/env2.js-CcIskxOZ.js.map +1 -0
- package/build/server/chunks/chunks/{exports.js-CvFPPbaH.js → exports.js-ClPPfcHj.js} +6 -1
- package/build/server/chunks/chunks/exports.js-ClPPfcHj.js.map +1 -0
- package/build/server/chunks/chunks/group.js-DBFzWAox.js +30 -0
- package/build/server/chunks/chunks/group.js-DBFzWAox.js.map +1 -0
- package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js +248 -0
- package/build/server/chunks/chunks/index-server.js-DNLOKvM0.js.map +1 -0
- package/build/server/chunks/chunks/index-server2.js-l0sNRNKZ.js +2 -0
- package/build/server/chunks/chunks/index-server2.js-l0sNRNKZ.js.map +1 -0
- package/build/server/chunks/chunks/{internal2.js-DZ8ZzzjN.js → internal.js-DZ8ZzzjN.js} +1 -1
- package/build/server/chunks/chunks/internal.js-DZ8ZzzjN.js.map +1 -0
- package/build/server/chunks/chunks/internal2.js-BPo5dcDi.js +188 -0
- package/build/server/chunks/chunks/internal2.js-BPo5dcDi.js.map +1 -0
- package/build/server/chunks/chunks/key.svelte.js-CWIvXc6L.js +695 -0
- package/build/server/chunks/chunks/key.svelte.js-CWIvXc6L.js.map +1 -0
- package/build/server/chunks/chunks/{internal.js-Cc3oBhL-.js → legacy-client.js-DJmDw3Zx.js} +13 -439
- package/build/server/chunks/chunks/legacy-client.js-DJmDw3Zx.js.map +1 -0
- package/build/server/chunks/chunks/level-filter.js-B3o2hyWD.js +313 -0
- package/build/server/chunks/chunks/level-filter.js-B3o2hyWD.js.map +1 -0
- package/build/server/chunks/chunks/lineRadial.js-Dm0GMqo3.js +126 -0
- package/build/server/chunks/chunks/lineRadial.js-Dm0GMqo3.js.map +1 -0
- package/build/server/chunks/chunks/linear.js-CTOKrHn9.js +1046 -0
- package/build/server/chunks/chunks/linear.js-CTOKrHn9.js.map +1 -0
- package/build/server/chunks/chunks/log-buffer.js-BI_gQOls.js +587 -0
- package/build/server/chunks/chunks/log-buffer.js-BI_gQOls.js.map +1 -0
- package/build/server/chunks/chunks/math.js-BqujbaBs.js +50 -0
- package/build/server/chunks/chunks/math.js-BqujbaBs.js.map +1 -0
- package/build/server/chunks/chunks/max.js-CuS0BpRI.js +11 -0
- package/build/server/chunks/chunks/max.js-CuS0BpRI.js.map +1 -0
- package/build/server/chunks/chunks/min.js-DZWt5tPl.js +11 -0
- package/build/server/chunks/chunks/min.js-DZWt5tPl.js.map +1 -0
- package/build/server/chunks/chunks/motion.svelte.js-DCHSFMu-.js +677 -0
- package/build/server/chunks/chunks/motion.svelte.js-DCHSFMu-.js.map +1 -0
- package/build/server/chunks/chunks/occlusion.js-DJ-AdK9u.js +33 -0
- package/build/server/chunks/chunks/occlusion.js-DJ-AdK9u.js.map +1 -0
- package/build/server/chunks/chunks/path.js-BizMrlzb.js +488 -0
- package/build/server/chunks/chunks/path.js-BizMrlzb.js.map +1 -0
- package/build/server/chunks/chunks/path2.js-pquT2Kg6.js +27 -0
- package/build/server/chunks/chunks/path2.js-pquT2Kg6.js.map +1 -0
- package/build/server/chunks/chunks/pointRadial.js-Deeu1LXx.js +7 -0
- package/build/server/chunks/chunks/pointRadial.js-Deeu1LXx.js.map +1 -0
- package/build/server/chunks/chunks/rect.svelte.js-zeS7FWjB.js +187 -0
- package/build/server/chunks/chunks/rect.svelte.js-zeS7FWjB.js.map +1 -0
- package/build/server/chunks/chunks/scales.svelte.js-D_1popPi.js +276 -0
- package/build/server/chunks/chunks/scales.svelte.js-D_1popPi.js.map +1 -0
- package/build/server/chunks/chunks/series-buckets.js-BjigySff.js +290 -0
- package/build/server/chunks/chunks/series-buckets.js-BjigySff.js.map +1 -0
- package/build/server/chunks/chunks/{server.js-ByNB8uti.js → server.js-CAEBuMIH.js} +167 -2
- package/build/server/chunks/chunks/server.js-CAEBuMIH.js.map +1 -0
- package/build/server/chunks/chunks/source.js-DZEVvuho.js +21 -0
- package/build/server/chunks/chunks/source.js-DZEVvuho.js.map +1 -0
- package/build/server/chunks/chunks/{state.js-9DxsWxU-.js → state.js-DgkwfYFo.js} +5 -4
- package/build/server/chunks/chunks/state.js-DgkwfYFo.js.map +1 -0
- package/build/server/chunks/chunks/types.js-x3GyGPOz.js +11 -0
- package/build/server/chunks/chunks/types.js-x3GyGPOz.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/archive/_server.ts.js-83Ch7djd.js +39 -0
- package/build/server/chunks/entries/endpoints/api/archive/_server.ts.js-83Ch7djd.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js-BOjix7GN.js → _server.ts.js-VctnBhIJ.js} +5 -4
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-VctnBhIJ.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/identity/{_server.ts.js-g13uvmrX.js → _server.ts.js-Dt540Sio.js} +4 -3
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-Dt540Sio.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/log-groups/{_server.ts.js-CmHRxdZK.js → _server.ts.js-drLgUdvB.js} +57 -8
- package/build/server/chunks/entries/endpoints/api/log-groups/_server.ts.js-drLgUdvB.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/regions/{_server.ts.js-BgUwioxp.js → _server.ts.js-CBqfN6Pg.js} +5 -4
- package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-CBqfN6Pg.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/series/_server.ts.js-DOvBhEDU.js +225 -0
- package/build/server/chunks/entries/endpoints/api/series/_server.ts.js-DOvBhEDU.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/stream/{_server.ts.js-CIYo4C-0.js → _server.ts.js-BWRHawY8.js} +324 -223
- package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-BWRHawY8.js.map +1 -0
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-CFonuZkV.js → error.svelte.js-CsCL5PMW.js} +7 -5
- package/build/server/chunks/entries/fallbacks/{error.svelte.js-CFonuZkV.js.map → error.svelte.js-CsCL5PMW.js.map} +1 -1
- package/build/server/chunks/entries/pages/{_layout.svelte.js-Dzluuq12.js → _layout.svelte.js-CBQpEToy.js} +2 -2
- package/build/server/chunks/entries/pages/{_layout.svelte.js-Dzluuq12.js.map → _layout.svelte.js-CBQpEToy.js.map} +1 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-qqtU0apo.js +1641 -0
- package/build/server/chunks/entries/pages/_page.svelte.js-qqtU0apo.js.map +1 -0
- package/build/server/chunks/{handler-DS32NMsJ.js → handler-DlfTB05m.js} +3 -3
- package/build/server/chunks/{handler-DS32NMsJ.js.map → handler-DlfTB05m.js.map} +1 -1
- package/build/server/chunks/{index.js-HHu-yOEK.js → index.js-BMrd9hfO.js} +6 -5
- package/build/server/chunks/index.js-BMrd9hfO.js.map +1 -0
- package/build/server/chunks/{manifest.js-BUrA7Zyr.js → manifest.js-D1kCuVe5.js} +24 -10
- package/build/server/chunks/manifest.js-D1kCuVe5.js.map +1 -0
- package/build/server/chunks/nodes/0.js-CNFDDPj5.js +9 -0
- package/build/server/chunks/nodes/{0.js-gSRmrAt_.js.map → 0.js-CNFDDPj5.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-B5FPLYnf.js +9 -0
- package/build/server/chunks/nodes/{1.js-D68K7Ad_.js.map → 1.js-B5FPLYnf.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-BEuxzw6b.js +9 -0
- package/build/server/chunks/nodes/2.js-BEuxzw6b.js.map +1 -0
- package/dist/cli/completions.js +6 -0
- package/dist/cli/index.js +131 -88
- package/dist/cli/options.js +28 -2
- package/dist/cli/preflight.js +30 -0
- package/dist/cli/ui.js +18 -3
- package/dist/lib/cli/aws.js +12 -4
- package/dist/lib/log-buffer.js +443 -0
- package/dist/lib/log-format.js +185 -0
- package/dist/lib/types.js +0 -4
- package/package.json +6 -2
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css +0 -2
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css.br +0 -0
- package/build/client/_app/immutable/assets/0.BPmQoXaO.css.gz +0 -0
- package/build/client/_app/immutable/chunks/Bw_9uNRP.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bw_9uNRP.js.gz +0 -0
- package/build/client/_app/immutable/chunks/De_x7GQi.js +0 -1
- package/build/client/_app/immutable/chunks/De_x7GQi.js.br +0 -0
- package/build/client/_app/immutable/chunks/De_x7GQi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/ZAD2y5xJ.js +0 -3
- package/build/client/_app/immutable/chunks/ZAD2y5xJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/ZAD2y5xJ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Be166AxG.js +0 -2
- package/build/client/_app/immutable/entry/app.Be166AxG.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Be166AxG.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.clEDpQL9.js +0 -1
- package/build/client/_app/immutable/entry/start.clEDpQL9.js.br +0 -0
- package/build/client/_app/immutable/entry/start.clEDpQL9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js +0 -1
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js.br +0 -4
- package/build/client/_app/immutable/nodes/0.BJ6Zdc8H.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js +0 -1
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.xMNWuLLz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js +0 -5
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CaxDXwmh.js.gz +0 -0
- package/build/server/chunks/chunks/env2.js-DXveJt1Y.js.map +0 -1
- package/build/server/chunks/chunks/exports.js-CvFPPbaH.js.map +0 -1
- package/build/server/chunks/chunks/internal.js-Cc3oBhL-.js.map +0 -1
- package/build/server/chunks/chunks/internal2.js-DZ8ZzzjN.js.map +0 -1
- package/build/server/chunks/chunks/server.js-ByNB8uti.js.map +0 -1
- package/build/server/chunks/chunks/state.js-9DxsWxU-.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-BOjix7GN.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/identity/_server.ts.js-g13uvmrX.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/log-groups/_server.ts.js-CmHRxdZK.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/regions/_server.ts.js-BgUwioxp.js.map +0 -1
- package/build/server/chunks/entries/endpoints/api/stream/_server.ts.js-CIYo4C-0.js.map +0 -1
- package/build/server/chunks/entries/pages/_page.svelte.js-CpwYbxbM.js +0 -1291
- package/build/server/chunks/entries/pages/_page.svelte.js-CpwYbxbM.js.map +0 -1
- package/build/server/chunks/index.js-HHu-yOEK.js.map +0 -1
- package/build/server/chunks/manifest.js-BUrA7Zyr.js.map +0 -1
- package/build/server/chunks/nodes/0.js-gSRmrAt_.js +0 -9
- package/build/server/chunks/nodes/1.js-D68K7Ad_.js +0 -9
- package/build/server/chunks/nodes/2.js-ChYsaaoC.js +0 -9
- package/build/server/chunks/nodes/2.js-ChYsaaoC.js.map +0 -1
|
@@ -0,0 +1,695 @@
|
|
|
1
|
+
import { ac as derived } from './server.js-CAEBuMIH.js';
|
|
2
|
+
import { C as Context, g as get, a as getChartContext, c as chartDataArray, o as objectId, b as cls } from './common.js-BWQB8Die.js';
|
|
3
|
+
|
|
4
|
+
//#region node_modules/.pnpm/layerchart@2.5.0_@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0__9bc60734f10d29b7556189549fab5703/node_modules/layerchart/dist/contexts/layer.js
|
|
5
|
+
var _LayerContext = new Context("LayerContext");
|
|
6
|
+
function getLayerContext() {
|
|
7
|
+
return _LayerContext.get();
|
|
8
|
+
}
|
|
9
|
+
function setLayerContext(context) {
|
|
10
|
+
return _LayerContext.set(context);
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region node_modules/.pnpm/layerchart@2.5.0_@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0__9bc60734f10d29b7556189549fab5703/node_modules/layerchart/dist/utils/dataProp.js
|
|
14
|
+
/**
|
|
15
|
+
* Returns true if the value is a data-space prop (string or function),
|
|
16
|
+
* meaning it needs scale resolution rather than being a direct pixel value.
|
|
17
|
+
*/
|
|
18
|
+
function isDataProp(value) {
|
|
19
|
+
return typeof value === "string" || typeof value === "function";
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Returns true if ANY of the provided values is a data-space prop.
|
|
23
|
+
* Used to detect whether a component should enter "data mode".
|
|
24
|
+
*/
|
|
25
|
+
function hasAnyDataProp(...values) {
|
|
26
|
+
return values.some((v) => v !== void 0 && isDataProp(v));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolves a DataProp value for a specific data item through a scale.
|
|
30
|
+
*
|
|
31
|
+
* - `number`: returned directly (pixel value, no scale)
|
|
32
|
+
* - `string`: used as property path on data item, result passed through scale
|
|
33
|
+
* - `function`: called with data item, result passed through scale
|
|
34
|
+
* - `undefined`/`null`: returns defaultValue
|
|
35
|
+
*
|
|
36
|
+
* If no scale is provided and the raw value is numeric, it passes through directly.
|
|
37
|
+
*/
|
|
38
|
+
function resolveDataProp(value, d, scale, defaultValue = 0) {
|
|
39
|
+
if (value === void 0 || value === null) return defaultValue;
|
|
40
|
+
if (typeof value === "number") return value;
|
|
41
|
+
let rawValue;
|
|
42
|
+
if (typeof value === "string") rawValue = get(d, value);
|
|
43
|
+
else if (typeof value === "function") rawValue = value(d);
|
|
44
|
+
else return defaultValue;
|
|
45
|
+
if (scale) {
|
|
46
|
+
const result = scale(rawValue);
|
|
47
|
+
return typeof result === "number" && isFinite(result) ? result : defaultValue;
|
|
48
|
+
}
|
|
49
|
+
return typeof rawValue === "number" ? rawValue : defaultValue;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Extract the raw value from a DataProp without applying any scale.
|
|
53
|
+
* Numbers pass through, strings do property lookup, functions are called.
|
|
54
|
+
*/
|
|
55
|
+
function extractRawDataValue(value, d) {
|
|
56
|
+
if (value === void 0 || value === null) return void 0;
|
|
57
|
+
if (typeof value === "number") return value;
|
|
58
|
+
if (typeof value === "string") return get(d, value);
|
|
59
|
+
if (typeof value === "function") return value(d);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve a pair of x/y DataProps through a geo projection.
|
|
63
|
+
* x = longitude, y = latitude → projection([lon, lat]) → [px, py]
|
|
64
|
+
*/
|
|
65
|
+
function resolveGeoDataPair(xProp, yProp, d, projection, defaults = [0, 0]) {
|
|
66
|
+
const rawX = extractRawDataValue(xProp, d);
|
|
67
|
+
const rawY = extractRawDataValue(yProp, d);
|
|
68
|
+
if (rawX == null || rawY == null) return defaults;
|
|
69
|
+
return projection([rawX, rawY]) ?? defaults;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolves a ColorProp for a specific data item, optionally through a color scale.
|
|
73
|
+
*
|
|
74
|
+
* - `string`: checks if `get(d, value)` is defined → data property, passed through cScale.
|
|
75
|
+
* Otherwise returns the string as a literal CSS color.
|
|
76
|
+
* - `function`: called with data item, result passed through cScale.
|
|
77
|
+
* - `undefined`/`null`: returns undefined.
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* Returns true if the string looks like a CSS color value rather than a data property name.
|
|
81
|
+
* Matches: `#hex`, and functional notation like `rgb(...)`, `hsl(...)`, `var(...)`,
|
|
82
|
+
* `url(...)`, `color-mix(...)`, etc.
|
|
83
|
+
*/
|
|
84
|
+
function isCSSColor(value) {
|
|
85
|
+
return value.startsWith("#") || value.includes("(");
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* The data property a color prop names, or `undefined` when it's a CSS color literal (or names
|
|
89
|
+
* nothing in the data).
|
|
90
|
+
*
|
|
91
|
+
* Marks that draw one shape per series use this to infer their grouping from `stroke` / `fill`,
|
|
92
|
+
* without also having to also use `z="fruit"`.
|
|
93
|
+
*/
|
|
94
|
+
function colorPropDataKey(value, d) {
|
|
95
|
+
if (typeof value !== "string" || isCSSColor(value)) return void 0;
|
|
96
|
+
return d != null && get(d, value) !== void 0 ? value : void 0;
|
|
97
|
+
}
|
|
98
|
+
function resolveColorProp(value, d, cScale, ...args) {
|
|
99
|
+
if (value === void 0 || value === null) return void 0;
|
|
100
|
+
if (typeof value === "function") {
|
|
101
|
+
const rawValue = value(d, ...args);
|
|
102
|
+
if (rawValue === void 0 || rawValue === null) return void 0;
|
|
103
|
+
if (typeof rawValue === "string" && isCSSColor(rawValue)) return rawValue;
|
|
104
|
+
return scaled(rawValue, cScale);
|
|
105
|
+
}
|
|
106
|
+
if (typeof value === "string") {
|
|
107
|
+
if (isCSSColor(value)) return value;
|
|
108
|
+
const dataValue = get(d, value);
|
|
109
|
+
if (dataValue !== void 0) return scaled(dataValue, cScale);
|
|
110
|
+
return value;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Put a value through the color scale, keeping the value itself when the scale has nothing for it.
|
|
115
|
+
* A scale derived from `series` colors only covers the series keys, so anything else — a value the
|
|
116
|
+
* chart happens to colour by, say — behaves as it would with no scale at all.
|
|
117
|
+
*/
|
|
118
|
+
function scaled(value, cScale) {
|
|
119
|
+
const result = cScale ? cScale(value) : void 0;
|
|
120
|
+
return result != null ? String(result) : String(value);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Resolves a StyleProp for a specific data item.
|
|
124
|
+
* If the value is a function, calls it with the data item.
|
|
125
|
+
* Otherwise returns the static value.
|
|
126
|
+
*/
|
|
127
|
+
function resolveStyleProp(value, d, ...args) {
|
|
128
|
+
if (value === void 0) return void 0;
|
|
129
|
+
if (typeof value === "function") return value(d, ...args);
|
|
130
|
+
return value;
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
//#region node_modules/.pnpm/layerchart@2.5.0_@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0__9bc60734f10d29b7556189549fab5703/node_modules/layerchart/dist/contexts/facet.js
|
|
134
|
+
/**
|
|
135
|
+
* The panel a component is rendering into, or `undefined` outside a faceted chart.
|
|
136
|
+
*
|
|
137
|
+
* Read during init, as with any context. Returns a getter so reads stay current as the panels
|
|
138
|
+
* are rebuilt. Marks usually want `getMarkData()` rather than this.
|
|
139
|
+
*/
|
|
140
|
+
var _FacetPanelContext = new Context("FacetPanelContext");
|
|
141
|
+
function getFacetPanel() {
|
|
142
|
+
return _FacetPanelContext.getOr(void 0) ?? void 0;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Set the panel for a subtree, or clear it with `undefined` — which is what the grid's own
|
|
146
|
+
* furniture wants, since it belongs to the whole grid rather than to any one panel.
|
|
147
|
+
*/
|
|
148
|
+
function setFacetPanel(getPanel) {
|
|
149
|
+
return _FacetPanelContext.set(getPanel);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Resolves the rows a mark should draw: its own `data` when given, else the panel it's rendering
|
|
153
|
+
* into, else the chart's.
|
|
154
|
+
*
|
|
155
|
+
* Call during init (a component's setup, or a state class field initializer) — it reads context —
|
|
156
|
+
* then call the returned resolver from wherever the data is needed, including inside a `$derived`.
|
|
157
|
+
*
|
|
158
|
+
* Marks resolve this rather than the chart context being swapped underneath them, so what a mark
|
|
159
|
+
* draws stays visible at its own call site.
|
|
160
|
+
*/
|
|
161
|
+
function getMarkData() {
|
|
162
|
+
const ctx = getChartContext();
|
|
163
|
+
const panel = getFacetPanel();
|
|
164
|
+
return (own) => chartDataArray(own ?? panel?.().data ?? ctx.data);
|
|
165
|
+
}
|
|
166
|
+
//#endregion
|
|
167
|
+
//#region node_modules/.pnpm/layerchart@2.5.0_@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0__9bc60734f10d29b7556189549fab5703/node_modules/layerchart/dist/contexts/geo.js
|
|
168
|
+
/**
|
|
169
|
+
* Access or set the current GeoContext.
|
|
170
|
+
*/
|
|
171
|
+
var _GeoContext = new Context("GeoContext");
|
|
172
|
+
function getGeoContext() {
|
|
173
|
+
return _GeoContext.getOr({ projection: void 0 });
|
|
174
|
+
}
|
|
175
|
+
function setGeoContext(geo) {
|
|
176
|
+
return _GeoContext.set(geo);
|
|
177
|
+
}
|
|
178
|
+
//#endregion
|
|
179
|
+
//#region node_modules/.pnpm/layerchart@2.5.0_@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0__9bc60734f10d29b7556189549fab5703/node_modules/layerchart/dist/utils/path.js
|
|
180
|
+
/**
|
|
181
|
+
* SVG path `d` attribute for a rectangle with per-corner rounding.
|
|
182
|
+
* Corners are ordered `[top-left, top-right, bottom-right, bottom-left]`
|
|
183
|
+
* (matching CSS `border-radius` shorthand). Path is drawn clockwise from
|
|
184
|
+
* the top-left corner.
|
|
185
|
+
*/
|
|
186
|
+
function roundedRectPath(x, y, width, height, [tl, tr, br, bl]) {
|
|
187
|
+
const topEdge = width - tl - tr;
|
|
188
|
+
const rightEdge = height - tr - br;
|
|
189
|
+
const bottomEdge = width - br - bl;
|
|
190
|
+
const leftEdge = height - bl - tl;
|
|
191
|
+
return [
|
|
192
|
+
`M${x + tl},${y}`,
|
|
193
|
+
`h${topEdge}`,
|
|
194
|
+
tr > 0 ? `a${tr},${tr} 0 0 1 ${tr},${tr}` : "",
|
|
195
|
+
`v${rightEdge}`,
|
|
196
|
+
br > 0 ? `a${br},${br} 0 0 1 ${-br},${br}` : "",
|
|
197
|
+
`h${-bottomEdge}`,
|
|
198
|
+
bl > 0 ? `a${bl},${bl} 0 0 1 ${-bl},${-bl}` : "",
|
|
199
|
+
`v${-leftEdge}`,
|
|
200
|
+
tl > 0 ? `a${tl},${tl} 0 0 1 ${tl},${-tl}` : "",
|
|
201
|
+
"z"
|
|
202
|
+
].filter(Boolean).join(" ");
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Normalize a dash-array value (CSS `stroke-dasharray`) to a numeric array.
|
|
206
|
+
* Accepts `"4 2"`, `"4,2"`, `[4, 2]`, or a single number (e.g. `4` → `[4, 4]`).
|
|
207
|
+
* Returns `null` when the input is empty or all zeros (i.e. solid stroke).
|
|
208
|
+
*/
|
|
209
|
+
function parseDashArray(value) {
|
|
210
|
+
if (value == null || value === "" || value === "none") return null;
|
|
211
|
+
let arr;
|
|
212
|
+
if (typeof value === "number") arr = [value, value];
|
|
213
|
+
else if (Array.isArray(value)) arr = value.filter((n) => Number.isFinite(n));
|
|
214
|
+
else arr = value.split(/[\s,]+/).filter((s) => s.length > 0).map((s) => Number(s.replace("px", ""))).filter((n) => Number.isFinite(n));
|
|
215
|
+
if (arr.length === 0 || arr.every((n) => n === 0)) return null;
|
|
216
|
+
if (arr.length % 2 === 1) arr = [...arr, ...arr];
|
|
217
|
+
return arr;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Build a CSS `repeating-linear-gradient` string approximating a `stroke-dasharray`
|
|
221
|
+
* pattern along a horizontal line (use with `background` on a rotated `<div>`).
|
|
222
|
+
* Alternates stops between `color` (dash) and `transparent` (gap) to match SVG.
|
|
223
|
+
*/
|
|
224
|
+
function dashArrayToGradient(dashArray, color, direction = "to right") {
|
|
225
|
+
const stops = [];
|
|
226
|
+
let offset = 0;
|
|
227
|
+
for (let i = 0; i < dashArray.length; i++) {
|
|
228
|
+
const length = dashArray[i];
|
|
229
|
+
const c = i % 2 === 0 ? color : "transparent";
|
|
230
|
+
stops.push(`${c} ${offset}px ${offset + length}px`);
|
|
231
|
+
offset += length;
|
|
232
|
+
}
|
|
233
|
+
return `repeating-linear-gradient(${direction}, ${stops.join(", ")})`;
|
|
234
|
+
}
|
|
235
|
+
/** Flatten all `y` coordinates to `0` */
|
|
236
|
+
function flattenPathData(pathData, yOverride = 0) {
|
|
237
|
+
let result = pathData;
|
|
238
|
+
result = result.replace(/([MLTQCSAZ])(-?\d*\.?\d+),(-?\d*\.?\d+)/g, (match, command, x, y) => {
|
|
239
|
+
return `${command}${x},${yOverride}`;
|
|
240
|
+
});
|
|
241
|
+
result = result.replace(/([v])(-?\d*\.?\d+)/g, (match, command, l) => {
|
|
242
|
+
return `${command}0`;
|
|
243
|
+
});
|
|
244
|
+
result = result.replace(/a(-?\d*\.?\d+),(-?\d*\.?\d+) (\d+) (\d+) (\d+) (-?\d*\.?\d+),(-?\d*\.?\d+)/g, (match, rx, ry, rot, large, sweep, dx, dy) => {
|
|
245
|
+
return `a${rx},0 ${rot} ${large} ${sweep} ${dx},0`;
|
|
246
|
+
});
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
249
|
+
//#endregion
|
|
250
|
+
//#region node_modules/.pnpm/mimic-function@5.0.1/node_modules/mimic-function/index.js
|
|
251
|
+
var copyProperty = (to, from, property, ignoreNonConfigurable) => {
|
|
252
|
+
if (property === "length" || property === "prototype") return;
|
|
253
|
+
if (property === "arguments" || property === "caller") return;
|
|
254
|
+
const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
|
|
255
|
+
const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
|
|
256
|
+
if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) return;
|
|
257
|
+
Object.defineProperty(to, property, fromDescriptor);
|
|
258
|
+
};
|
|
259
|
+
var canCopyProperty = function(toDescriptor, fromDescriptor) {
|
|
260
|
+
return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
|
|
261
|
+
};
|
|
262
|
+
var changePrototype = (to, from) => {
|
|
263
|
+
const fromPrototype = Object.getPrototypeOf(from);
|
|
264
|
+
if (fromPrototype === Object.getPrototypeOf(to)) return;
|
|
265
|
+
Object.setPrototypeOf(to, fromPrototype);
|
|
266
|
+
};
|
|
267
|
+
var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\n${fromBody}`;
|
|
268
|
+
var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
|
|
269
|
+
var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
|
|
270
|
+
var changeToString = (to, from, name) => {
|
|
271
|
+
const withName = name === "" ? "" : `with ${name.trim()}() `;
|
|
272
|
+
const newToString = wrappedToString.bind(null, withName, from.toString());
|
|
273
|
+
Object.defineProperty(newToString, "name", toStringName);
|
|
274
|
+
const { writable, enumerable, configurable } = toStringDescriptor;
|
|
275
|
+
Object.defineProperty(to, "toString", {
|
|
276
|
+
value: newToString,
|
|
277
|
+
writable,
|
|
278
|
+
enumerable,
|
|
279
|
+
configurable
|
|
280
|
+
});
|
|
281
|
+
};
|
|
282
|
+
function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
|
|
283
|
+
const { name } = to;
|
|
284
|
+
for (const property of Reflect.ownKeys(from)) copyProperty(to, from, property, ignoreNonConfigurable);
|
|
285
|
+
changePrototype(to, from);
|
|
286
|
+
changeToString(to, from, name);
|
|
287
|
+
return to;
|
|
288
|
+
}
|
|
289
|
+
//#endregion
|
|
290
|
+
//#region node_modules/.pnpm/memoize@10.2.0/node_modules/memoize/distribution/index.js
|
|
291
|
+
var maxTimeoutValue = 2147483647;
|
|
292
|
+
var cacheStore = /* @__PURE__ */ new WeakMap();
|
|
293
|
+
var cacheTimerStore = /* @__PURE__ */ new WeakMap();
|
|
294
|
+
var cacheKeyStore = /* @__PURE__ */ new WeakMap();
|
|
295
|
+
function getValidCacheItem(cache, key) {
|
|
296
|
+
const item = cache.get(key);
|
|
297
|
+
if (!item) return;
|
|
298
|
+
if (item.maxAge <= Date.now()) {
|
|
299
|
+
cache.delete(key);
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
return item;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
[Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input.
|
|
306
|
+
|
|
307
|
+
@param function_ - The function to be memoized.
|
|
308
|
+
|
|
309
|
+
@example
|
|
310
|
+
```
|
|
311
|
+
import memoize from 'memoize';
|
|
312
|
+
|
|
313
|
+
let index = 0;
|
|
314
|
+
const counter = () => ++index;
|
|
315
|
+
const memoized = memoize(counter);
|
|
316
|
+
|
|
317
|
+
memoized('foo');
|
|
318
|
+
//=> 1
|
|
319
|
+
|
|
320
|
+
// Cached as it's the same argument
|
|
321
|
+
memoized('foo');
|
|
322
|
+
//=> 1
|
|
323
|
+
|
|
324
|
+
// Not cached anymore as the arguments changed
|
|
325
|
+
memoized('bar');
|
|
326
|
+
//=> 2
|
|
327
|
+
|
|
328
|
+
memoized('bar');
|
|
329
|
+
//=> 2
|
|
330
|
+
```
|
|
331
|
+
*/
|
|
332
|
+
function memoize(function_, { cacheKey, cache = /* @__PURE__ */ new Map(), maxAge } = {}) {
|
|
333
|
+
if (maxAge === 0) return function_;
|
|
334
|
+
if (typeof maxAge === "number" && Number.isFinite(maxAge)) {
|
|
335
|
+
if (maxAge > maxTimeoutValue) throw new TypeError(`The \`maxAge\` option cannot exceed ${maxTimeoutValue}.`);
|
|
336
|
+
if (maxAge < 0) throw new TypeError("The `maxAge` option should not be a negative number.");
|
|
337
|
+
}
|
|
338
|
+
const memoized = function(...arguments_) {
|
|
339
|
+
const key = cacheKey ? cacheKey(arguments_) : arguments_[0];
|
|
340
|
+
const cacheItem = getValidCacheItem(cache, key);
|
|
341
|
+
if (cacheItem) return cacheItem.data;
|
|
342
|
+
const result = function_.apply(this, arguments_);
|
|
343
|
+
const computedMaxAge = typeof maxAge === "function" ? maxAge(...arguments_) : maxAge;
|
|
344
|
+
if (computedMaxAge !== void 0 && computedMaxAge !== Number.POSITIVE_INFINITY) {
|
|
345
|
+
if (!Number.isFinite(computedMaxAge)) throw new TypeError("The `maxAge` function must return a finite number, `0`, or `Infinity`.");
|
|
346
|
+
if (computedMaxAge <= 0) return result;
|
|
347
|
+
if (computedMaxAge > maxTimeoutValue) throw new TypeError(`The \`maxAge\` function result cannot exceed ${maxTimeoutValue}.`);
|
|
348
|
+
}
|
|
349
|
+
cache.set(key, {
|
|
350
|
+
data: result,
|
|
351
|
+
maxAge: computedMaxAge === void 0 || computedMaxAge === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : Date.now() + computedMaxAge
|
|
352
|
+
});
|
|
353
|
+
if (computedMaxAge !== void 0 && computedMaxAge !== Number.POSITIVE_INFINITY) {
|
|
354
|
+
const timer = setTimeout(() => {
|
|
355
|
+
cache.delete(key);
|
|
356
|
+
cacheTimerStore.get(memoized)?.delete(timer);
|
|
357
|
+
}, computedMaxAge);
|
|
358
|
+
timer.unref?.();
|
|
359
|
+
const timers = cacheTimerStore.get(memoized) ?? /* @__PURE__ */ new Set();
|
|
360
|
+
timers.add(timer);
|
|
361
|
+
cacheTimerStore.set(memoized, timers);
|
|
362
|
+
}
|
|
363
|
+
return result;
|
|
364
|
+
};
|
|
365
|
+
mimicFunction(memoized, function_, { ignoreNonConfigurable: true });
|
|
366
|
+
cacheStore.set(memoized, cache);
|
|
367
|
+
cacheKeyStore.set(memoized, cacheKey ?? ((arguments_) => arguments_[0]));
|
|
368
|
+
return memoized;
|
|
369
|
+
}
|
|
370
|
+
//#endregion
|
|
371
|
+
//#region node_modules/.pnpm/layerchart@2.5.0_@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0__9bc60734f10d29b7556189549fab5703/node_modules/layerchart/dist/utils/canvas.js
|
|
372
|
+
/**
|
|
373
|
+
* Returns true if the fill color is effectively invisible (none, transparent, or alpha=0).
|
|
374
|
+
* Used to skip canvas fill rendering for invisible fills.
|
|
375
|
+
*/
|
|
376
|
+
function isTransparentFill(fill) {
|
|
377
|
+
if (!fill || fill === "none" || fill === "transparent") return true;
|
|
378
|
+
return /rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*0\s*\)/.test(fill);
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Returns true if a style value cannot be assigned directly to a canvas
|
|
382
|
+
* context and must first be resolved through the hidden `<svg>` helper —
|
|
383
|
+
* specifically `var(...)` references and the `currentColor` keyword.
|
|
384
|
+
*/
|
|
385
|
+
function needsCSSResolution(value) {
|
|
386
|
+
if (typeof value !== "string") return false;
|
|
387
|
+
return value.includes("var(") || value.toLowerCase() === "currentcolor";
|
|
388
|
+
}
|
|
389
|
+
var CANVAS_STYLES_ELEMENT_ID = "__layerchart_canvas_styles_id";
|
|
390
|
+
/**
|
|
391
|
+
* Parse an inline CSS style string into a StyleOptions object.
|
|
392
|
+
* Converts kebab-case properties to camelCase (e.g., 'stroke-dasharray' -> 'strokeDasharray')
|
|
393
|
+
*/
|
|
394
|
+
function parseStyleString(styleString) {
|
|
395
|
+
if (!styleString) return {};
|
|
396
|
+
const styles = {};
|
|
397
|
+
const declarations = styleString.split(";").filter((s) => s.trim());
|
|
398
|
+
for (const declaration of declarations) {
|
|
399
|
+
const colonIndex = declaration.indexOf(":");
|
|
400
|
+
if (colonIndex === -1) continue;
|
|
401
|
+
const property = declaration.slice(0, colonIndex).trim();
|
|
402
|
+
const value = declaration.slice(colonIndex + 1).trim();
|
|
403
|
+
if (!property || !value) continue;
|
|
404
|
+
const camelProperty = property.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
405
|
+
styles[camelProperty] = value;
|
|
406
|
+
}
|
|
407
|
+
return styles;
|
|
408
|
+
}
|
|
409
|
+
var supportedStyles = [
|
|
410
|
+
"fill",
|
|
411
|
+
"fillOpacity",
|
|
412
|
+
"stroke",
|
|
413
|
+
"strokeOpacity",
|
|
414
|
+
"strokeWidth",
|
|
415
|
+
"strokeDasharray",
|
|
416
|
+
"opacity",
|
|
417
|
+
"fontWeight",
|
|
418
|
+
"fontSize",
|
|
419
|
+
"fontFamily",
|
|
420
|
+
"textAnchor",
|
|
421
|
+
"textAlign",
|
|
422
|
+
"paintOrder"
|
|
423
|
+
];
|
|
424
|
+
/**
|
|
425
|
+
* Appends or reuses `<svg>` element below `<canvas>` to resolve CSS variables and classes (ex. `stroke: var(--color-primary)` => `stroke: rgb(...)` )
|
|
426
|
+
*/
|
|
427
|
+
function _getComputedStyles(canvas, { styles, classes } = {}) {
|
|
428
|
+
if (typeof document === "undefined") {
|
|
429
|
+
const merged = { ...styles };
|
|
430
|
+
if (!merged.fontSize) merged.fontSize = "10px";
|
|
431
|
+
if (!merged.fontFamily) merged.fontFamily = "sans-serif";
|
|
432
|
+
return merged;
|
|
433
|
+
}
|
|
434
|
+
try {
|
|
435
|
+
let svg = document.getElementById(CANVAS_STYLES_ELEMENT_ID);
|
|
436
|
+
if (!svg) {
|
|
437
|
+
svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
438
|
+
svg.setAttribute("id", CANVAS_STYLES_ELEMENT_ID);
|
|
439
|
+
svg.style.display = "none";
|
|
440
|
+
canvas.after(svg);
|
|
441
|
+
}
|
|
442
|
+
svg = svg;
|
|
443
|
+
svg.removeAttribute("style");
|
|
444
|
+
svg.removeAttribute("class");
|
|
445
|
+
if (styles) Object.assign(svg.style, styles);
|
|
446
|
+
svg.style.display = "none";
|
|
447
|
+
if (classes) svg.setAttribute("class", cls(classes).split(" ").filter((s) => !s.startsWith("transition-")).join(" "));
|
|
448
|
+
return supportedStyles.reduce((acc, style) => {
|
|
449
|
+
acc[style] = window.getComputedStyle(svg)[style];
|
|
450
|
+
return acc;
|
|
451
|
+
}, {});
|
|
452
|
+
} catch (e) {
|
|
453
|
+
console.error("Unable to get computed styles", e);
|
|
454
|
+
return {};
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
function getComputedStylesKey(canvas, { styles, classes } = {}) {
|
|
458
|
+
return JSON.stringify({
|
|
459
|
+
canvasId: canvas.id,
|
|
460
|
+
styles,
|
|
461
|
+
classes
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
var getComputedStyles = memoize(_getComputedStyles, { cacheKey: ([canvas, styleOptions]) => {
|
|
465
|
+
return getComputedStylesKey(canvas, styleOptions);
|
|
466
|
+
} });
|
|
467
|
+
/** Render onto canvas context. Supports CSS variables and classes by tranferring to hidden `<svg>` element before retrieval) */
|
|
468
|
+
function render(ctx, render, styleOptions = {}, { applyText } = {}) {
|
|
469
|
+
const parsedInlineStyles = parseStyleString(styleOptions.style);
|
|
470
|
+
const mergedStyles = {
|
|
471
|
+
...styleOptions.styles,
|
|
472
|
+
...parsedInlineStyles
|
|
473
|
+
};
|
|
474
|
+
let resolvedStyles;
|
|
475
|
+
if (typeof document === "undefined" || styleOptions.classes == null && !Object.values(mergedStyles).some(needsCSSResolution)) {
|
|
476
|
+
resolvedStyles = mergedStyles;
|
|
477
|
+
if (typeof document === "undefined") {
|
|
478
|
+
if (!resolvedStyles.stroke && !resolvedStyles.fill) resolvedStyles = {
|
|
479
|
+
...resolvedStyles,
|
|
480
|
+
stroke: "black"
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
} else {
|
|
484
|
+
const { constantStyles, variableStyles } = Object.entries(mergedStyles).reduce((acc, [key, value]) => {
|
|
485
|
+
if (needsCSSResolution(value)) acc.variableStyles[key] = value;
|
|
486
|
+
else if (typeof value === "number" || typeof value === "string") acc.constantStyles[key] = value;
|
|
487
|
+
return acc;
|
|
488
|
+
}, {
|
|
489
|
+
constantStyles: {},
|
|
490
|
+
variableStyles: {}
|
|
491
|
+
});
|
|
492
|
+
resolvedStyles = {
|
|
493
|
+
...getComputedStyles(ctx.canvas, {
|
|
494
|
+
styles: variableStyles,
|
|
495
|
+
classes: styleOptions.classes
|
|
496
|
+
}),
|
|
497
|
+
...constantStyles
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
const paintOrder = resolvedStyles?.paintOrder === "stroke" ? ["stroke", "fill"] : ["fill", "stroke"];
|
|
501
|
+
if (resolvedStyles?.opacity) ctx.globalAlpha *= Number(resolvedStyles?.opacity);
|
|
502
|
+
if (applyText) {
|
|
503
|
+
const fontSize = resolvedStyles.fontSize || "10px";
|
|
504
|
+
const fontFamily = resolvedStyles.fontFamily || "sans-serif";
|
|
505
|
+
ctx.font = `${resolvedStyles.fontWeight || ""} ${fontSize} ${fontFamily}`.trim();
|
|
506
|
+
if (resolvedStyles.textAnchor === "middle") ctx.textAlign = "center";
|
|
507
|
+
else if (resolvedStyles.textAnchor === "end") ctx.textAlign = "right";
|
|
508
|
+
else if (resolvedStyles.textAnchor === "start") ctx.textAlign = "left";
|
|
509
|
+
else if (resolvedStyles.textAlign) ctx.textAlign = resolvedStyles.textAlign;
|
|
510
|
+
}
|
|
511
|
+
if (resolvedStyles.strokeDasharray && resolvedStyles.strokeDasharray !== "none") {
|
|
512
|
+
const dashArray = resolvedStyles.strokeDasharray.split(/[\s,]+/).filter((s) => s.length > 0).map((s) => Number(s.replace("px", "")));
|
|
513
|
+
if (dashArray.length > 0 && dashArray.every((n) => !isNaN(n))) ctx.setLineDash(dashArray);
|
|
514
|
+
}
|
|
515
|
+
for (const attr of paintOrder) if (attr === "fill") {
|
|
516
|
+
const fill = styleOptions.styles?.fill && (typeof CanvasGradient !== "undefined" && styleOptions.styles?.fill instanceof CanvasGradient || typeof CanvasPattern !== "undefined" && styleOptions.styles?.fill instanceof CanvasPattern || !needsCSSResolution(styleOptions.styles?.fill)) ? styleOptions.styles.fill : resolvedStyles?.fill;
|
|
517
|
+
if (fill && !isTransparentFill(fill)) {
|
|
518
|
+
const currentGlobalAlpha = ctx.globalAlpha;
|
|
519
|
+
const fillOpacity = Number(resolvedStyles?.fillOpacity);
|
|
520
|
+
ctx.globalAlpha *= isNaN(fillOpacity) ? 1 : fillOpacity;
|
|
521
|
+
ctx.fillStyle = fill;
|
|
522
|
+
render.fill(ctx);
|
|
523
|
+
ctx.globalAlpha = currentGlobalAlpha;
|
|
524
|
+
}
|
|
525
|
+
} else if (attr === "stroke") {
|
|
526
|
+
const stroke = styleOptions.styles?.stroke && (typeof CanvasGradient !== "undefined" && styleOptions.styles?.stroke instanceof CanvasGradient || !needsCSSResolution(styleOptions.styles?.stroke)) ? styleOptions.styles?.stroke : resolvedStyles?.stroke;
|
|
527
|
+
if (stroke && !["none"].includes(stroke)) {
|
|
528
|
+
const currentGlobalAlpha = ctx.globalAlpha;
|
|
529
|
+
const strokeOpacity = Number(resolvedStyles?.strokeOpacity);
|
|
530
|
+
Number(resolvedStyles?.opacity);
|
|
531
|
+
if (!isNaN(strokeOpacity) && strokeOpacity !== 1) ctx.globalAlpha *= strokeOpacity;
|
|
532
|
+
ctx.lineWidth = typeof resolvedStyles?.strokeWidth === "string" ? Number(resolvedStyles?.strokeWidth?.replace("px", "")) : resolvedStyles?.strokeWidth ?? 1;
|
|
533
|
+
ctx.strokeStyle = stroke;
|
|
534
|
+
render.stroke(ctx);
|
|
535
|
+
ctx.globalAlpha = currentGlobalAlpha;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
/** Render SVG path data onto canvas context. Supports CSS variables and classes by tranferring to hidden `<svg>` element before retrieval) */
|
|
540
|
+
function renderPathData(ctx, pathData, styleOptions = {}) {
|
|
541
|
+
const path = new Path2D(pathData ?? "");
|
|
542
|
+
render(ctx, {
|
|
543
|
+
fill: (ctx) => ctx.fill(path),
|
|
544
|
+
stroke: (ctx) => ctx.stroke(path)
|
|
545
|
+
}, styleOptions);
|
|
546
|
+
}
|
|
547
|
+
function renderText(ctx, text, coords, styleOptions = {}) {
|
|
548
|
+
if (text) render(ctx, {
|
|
549
|
+
fill: (ctx) => ctx.fillText(text.toString(), coords.x, coords.y),
|
|
550
|
+
stroke: (ctx) => ctx.strokeText(text.toString(), coords.x, coords.y)
|
|
551
|
+
}, styleOptions, { applyText: true });
|
|
552
|
+
}
|
|
553
|
+
function renderRect(ctx, coords, styleOptions = {}) {
|
|
554
|
+
const { x, y, width, height, corners } = coords;
|
|
555
|
+
const rx = coords.rx ?? 0;
|
|
556
|
+
const ry = coords.ry ?? rx;
|
|
557
|
+
if (!(corners && !corners.every((c) => c === corners[0])) && rx === 0 && ry === 0 && !corners) {
|
|
558
|
+
render(ctx, {
|
|
559
|
+
fill: (ctx) => ctx.fillRect(x, y, width, height),
|
|
560
|
+
stroke: (ctx) => ctx.strokeRect(x, y, width, height)
|
|
561
|
+
}, styleOptions);
|
|
562
|
+
return;
|
|
563
|
+
}
|
|
564
|
+
if (typeof ctx.roundRect === "function") {
|
|
565
|
+
ctx.beginPath();
|
|
566
|
+
ctx.roundRect(x, y, width, height, corners ?? [rx, ry]);
|
|
567
|
+
render(ctx, {
|
|
568
|
+
fill: (ctx) => ctx.fill(),
|
|
569
|
+
stroke: (ctx) => ctx.stroke()
|
|
570
|
+
}, styleOptions);
|
|
571
|
+
ctx.closePath();
|
|
572
|
+
return;
|
|
573
|
+
}
|
|
574
|
+
if (corners) {
|
|
575
|
+
renderPathData(ctx, roundedRectPath(x, y, width, height, corners), styleOptions);
|
|
576
|
+
return;
|
|
577
|
+
}
|
|
578
|
+
const clampedRx = Math.min(rx, width / 2);
|
|
579
|
+
const clampedRy = Math.min(ry, height / 2);
|
|
580
|
+
renderPathData(ctx, [
|
|
581
|
+
`M${x + clampedRx},${y}`,
|
|
582
|
+
`h${width - 2 * clampedRx}`,
|
|
583
|
+
`a${clampedRx},${clampedRy} 0 0 1 ${clampedRx},${clampedRy}`,
|
|
584
|
+
`v${height - 2 * clampedRy}`,
|
|
585
|
+
`a${clampedRx},${clampedRy} 0 0 1 ${-clampedRx},${clampedRy}`,
|
|
586
|
+
`h${2 * clampedRx - width}`,
|
|
587
|
+
`a${clampedRx},${clampedRy} 0 0 1 ${-clampedRx},${-clampedRy}`,
|
|
588
|
+
`v${2 * clampedRy - height}`,
|
|
589
|
+
`a${clampedRx},${clampedRy} 0 0 1 ${clampedRx},${-clampedRy}`,
|
|
590
|
+
"z"
|
|
591
|
+
].join(" "), styleOptions);
|
|
592
|
+
}
|
|
593
|
+
function renderCircle(ctx, coords, styleOptions = {}) {
|
|
594
|
+
ctx.beginPath();
|
|
595
|
+
ctx.arc(coords.cx, coords.cy, coords.r, 0, 2 * Math.PI);
|
|
596
|
+
render(ctx, {
|
|
597
|
+
fill: (ctx) => {
|
|
598
|
+
ctx.fill();
|
|
599
|
+
},
|
|
600
|
+
stroke: (ctx) => {
|
|
601
|
+
ctx.stroke();
|
|
602
|
+
}
|
|
603
|
+
}, styleOptions);
|
|
604
|
+
ctx.closePath();
|
|
605
|
+
}
|
|
606
|
+
function _createLinearGradient(ctx, x0, y0, x1, y1, stops) {
|
|
607
|
+
const gradient = ctx.createLinearGradient(x0, y0, x1, y1);
|
|
608
|
+
for (const { offset, color } of stops) gradient.addColorStop(offset, color);
|
|
609
|
+
return gradient;
|
|
610
|
+
}
|
|
611
|
+
/** Create linear gradient and memoize result to fix reactivity */
|
|
612
|
+
var createLinearGradient = memoize(_createLinearGradient, { cacheKey: (args) => JSON.stringify(args.slice(1)) });
|
|
613
|
+
function _createPattern(ctx, width, height, shapes, background) {
|
|
614
|
+
const patternCanvas = document.createElement("canvas");
|
|
615
|
+
const patternCtx = patternCanvas.getContext("2d");
|
|
616
|
+
ctx.canvas.after(patternCanvas);
|
|
617
|
+
const dpr = (typeof window !== "undefined" ? window.devicePixelRatio : 1) || 1;
|
|
618
|
+
patternCanvas.width = Math.max(1, Math.round(width * dpr));
|
|
619
|
+
patternCanvas.height = Math.max(1, Math.round(height * dpr));
|
|
620
|
+
patternCtx.scale(dpr, dpr);
|
|
621
|
+
if (background) {
|
|
622
|
+
patternCtx.fillStyle = background;
|
|
623
|
+
patternCtx.fillRect(0, 0, width, height);
|
|
624
|
+
}
|
|
625
|
+
for (const shape of shapes) {
|
|
626
|
+
patternCtx.save();
|
|
627
|
+
if (shape.type === "circle") renderCircle(patternCtx, {
|
|
628
|
+
cx: shape.cx,
|
|
629
|
+
cy: shape.cy,
|
|
630
|
+
r: shape.r
|
|
631
|
+
}, { styles: {
|
|
632
|
+
fill: shape.fill,
|
|
633
|
+
opacity: shape.opacity
|
|
634
|
+
} });
|
|
635
|
+
else if (shape.type === "line") renderPathData(patternCtx, shape.path, { styles: {
|
|
636
|
+
stroke: shape.stroke,
|
|
637
|
+
strokeWidth: shape.strokeWidth,
|
|
638
|
+
opacity: shape.opacity
|
|
639
|
+
} });
|
|
640
|
+
else if (shape.type === "rect") {
|
|
641
|
+
const rx = typeof shape.rx === "string" ? toRectCornerPx(shape.rx, shape.width) : shape.rx;
|
|
642
|
+
const ry = typeof shape.ry === "string" ? toRectCornerPx(shape.ry, shape.height) : shape.ry ?? rx;
|
|
643
|
+
renderRect(patternCtx, {
|
|
644
|
+
x: shape.x,
|
|
645
|
+
y: shape.y,
|
|
646
|
+
width: shape.width,
|
|
647
|
+
height: shape.height,
|
|
648
|
+
rx,
|
|
649
|
+
ry
|
|
650
|
+
}, { styles: {
|
|
651
|
+
fill: shape.fill,
|
|
652
|
+
opacity: shape.opacity
|
|
653
|
+
} });
|
|
654
|
+
}
|
|
655
|
+
patternCtx.restore();
|
|
656
|
+
}
|
|
657
|
+
const pattern = ctx.createPattern(patternCanvas, "repeat");
|
|
658
|
+
if (pattern) {
|
|
659
|
+
const sx = width / patternCanvas.width;
|
|
660
|
+
const sy = height / patternCanvas.height;
|
|
661
|
+
pattern.setTransform(new DOMMatrix([
|
|
662
|
+
sx,
|
|
663
|
+
0,
|
|
664
|
+
0,
|
|
665
|
+
sy,
|
|
666
|
+
0,
|
|
667
|
+
0
|
|
668
|
+
]));
|
|
669
|
+
}
|
|
670
|
+
ctx.canvas.parentElement?.removeChild(patternCanvas);
|
|
671
|
+
return pattern;
|
|
672
|
+
}
|
|
673
|
+
/** Create pattern and memoize result to fix reactivity */
|
|
674
|
+
var createPattern = memoize(_createPattern, { cacheKey: (args) => JSON.stringify(args.slice(1)) });
|
|
675
|
+
function toRectCornerPx(value, max) {
|
|
676
|
+
if (value.endsWith("%")) {
|
|
677
|
+
const pct = parseFloat(value);
|
|
678
|
+
if (!Number.isFinite(pct)) return 0;
|
|
679
|
+
return max / 2 * (pct / 100);
|
|
680
|
+
}
|
|
681
|
+
const n = parseFloat(value);
|
|
682
|
+
return Number.isFinite(n) ? n : 0;
|
|
683
|
+
}
|
|
684
|
+
//#endregion
|
|
685
|
+
//#region node_modules/.pnpm/layerchart@2.5.0_@sveltejs+kit@2.70.3_@sveltejs+vite-plugin-svelte@7.3.0_svelte@5.57.0__9bc60734f10d29b7556189549fab5703/node_modules/layerchart/dist/utils/key.svelte.js
|
|
686
|
+
function createKey(getValue) {
|
|
687
|
+
const value = derived(getValue);
|
|
688
|
+
const key = derived(() => value() && typeof value() === "object" ? objectId(value()) : value());
|
|
689
|
+
return { get current() {
|
|
690
|
+
return key();
|
|
691
|
+
} };
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
export { getMarkData as a, getGeoContext as b, resolveDataProp as c, createKey as d, renderPathData as e, flattenPathData as f, getLayerContext as g, hasAnyDataProp as h, resolveColorProp as i, resolveStyleProp as j, roundedRectPath as k, renderRect as l, memoize as m, getComputedStyles as n, renderText as o, parseDashArray as p, renderCircle as q, resolveGeoDataPair as r, dashArrayToGradient as s, setGeoContext as t, getFacetPanel as u, colorPropDataKey as v, setLayerContext as w, setFacetPanel as x, createPattern as y, createLinearGradient as z };
|
|
695
|
+
//# sourceMappingURL=key.svelte.js-CWIvXc6L.js.map
|