@openc3/vue-common 6.10.3 → 6.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ArrayWidget-B35vCzAo.cjs → ArrayWidget-CIMbQsGW.cjs} +2 -2
- package/dist/{ArrayWidget-B35vCzAo.cjs.map → ArrayWidget-CIMbQsGW.cjs.map} +1 -1
- package/dist/{ArrayWidget-Bc-Awsbn.js → ArrayWidget-DfiusKpM.js} +4 -4
- package/dist/{ArrayWidget-Bc-Awsbn.js.map → ArrayWidget-DfiusKpM.js.map} +1 -1
- package/dist/{ArrayplotWidget-B67ip6aR.cjs → ArrayplotWidget-DrrqqJEu.cjs} +2 -2
- package/dist/{ArrayplotWidget-B67ip6aR.cjs.map → ArrayplotWidget-DrrqqJEu.cjs.map} +1 -1
- package/dist/{ArrayplotWidget-B9UGCr4-.js → ArrayplotWidget-DsvOovu9.js} +3 -3
- package/dist/{ArrayplotWidget-B9UGCr4-.js.map → ArrayplotWidget-DsvOovu9.js.map} +1 -1
- package/dist/{BarColumn-3fKM-em2.cjs → BarColumn-CWgcL5w1.cjs} +2 -2
- package/dist/{BarColumn-3fKM-em2.cjs.map → BarColumn-CWgcL5w1.cjs.map} +1 -1
- package/dist/{BarColumn-ClLBRGll.js → BarColumn-DHHJBR3V.js} +3 -3
- package/dist/{BarColumn-ClLBRGll.js.map → BarColumn-DHHJBR3V.js.map} +1 -1
- package/dist/{BlockWidget-DWexy9Dx.cjs → BlockWidget-7Ecn_42c.cjs} +2 -2
- package/dist/{BlockWidget-DWexy9Dx.cjs.map → BlockWidget-7Ecn_42c.cjs.map} +1 -1
- package/dist/{BlockWidget-CoQp-LZM.js → BlockWidget-BdYXWS_0.js} +4 -4
- package/dist/{BlockWidget-CoQp-LZM.js.map → BlockWidget-BdYXWS_0.js.map} +1 -1
- package/dist/{ButtonWidget-BBpVoIzj.cjs → ButtonWidget-DFxBj0MG.cjs} +2 -2
- package/dist/{ButtonWidget-BBpVoIzj.cjs.map → ButtonWidget-DFxBj0MG.cjs.map} +1 -1
- package/dist/{ButtonWidget-CTTwpFec.js → ButtonWidget-zpSJmiQT.js} +4 -4
- package/dist/{ButtonWidget-CTTwpFec.js.map → ButtonWidget-zpSJmiQT.js.map} +1 -1
- package/dist/{CanvasWidget-Qlx-Mo8v.cjs → CanvasWidget-C5-iZ-YT.cjs} +2 -2
- package/dist/{CanvasWidget-Qlx-Mo8v.cjs.map → CanvasWidget-C5-iZ-YT.cjs.map} +1 -1
- package/dist/{CanvasWidget-jFarbJ3t.js → CanvasWidget-DaUB1G9X.js} +2 -2
- package/dist/{CanvasWidget-jFarbJ3t.js.map → CanvasWidget-DaUB1G9X.js.map} +1 -1
- package/dist/{CanvasdotWidget-BoyUcwiB.js → CanvasdotWidget-C255aTVc.js} +2 -2
- package/dist/{CanvasdotWidget-BoyUcwiB.js.map → CanvasdotWidget-C255aTVc.js.map} +1 -1
- package/dist/{CanvasdotWidget-BROyk4FH.cjs → CanvasdotWidget-CCrgS1yO.cjs} +2 -2
- package/dist/{CanvasdotWidget-BROyk4FH.cjs.map → CanvasdotWidget-CCrgS1yO.cjs.map} +1 -1
- package/dist/{CanvasimageWidget-BvTJnGXu.cjs → CanvasimageWidget-B2Mm0dYq.cjs} +2 -2
- package/dist/{CanvasimageWidget-BvTJnGXu.cjs.map → CanvasimageWidget-B2Mm0dYq.cjs.map} +1 -1
- package/dist/{CanvasimageWidget-DmyCSnuQ.js → CanvasimageWidget-CFlUUFqr.js} +3 -3
- package/dist/{CanvasimageWidget-DmyCSnuQ.js.map → CanvasimageWidget-CFlUUFqr.js.map} +1 -1
- package/dist/{CanvasimagevalueWidget-CzVrDo-Z.cjs → CanvasimagevalueWidget-B1xVa3FB.cjs} +2 -2
- package/dist/{CanvasimagevalueWidget-CzVrDo-Z.cjs.map → CanvasimagevalueWidget-B1xVa3FB.cjs.map} +1 -1
- package/dist/{CanvasimagevalueWidget-CmbngMqv.js → CanvasimagevalueWidget-s4gR3fo5.js} +3 -3
- package/dist/{CanvasimagevalueWidget-CmbngMqv.js.map → CanvasimagevalueWidget-s4gR3fo5.js.map} +1 -1
- package/dist/{CanvaslabelWidget-BnvwV9MA.cjs → CanvaslabelWidget-CAtE3qq_.cjs} +2 -2
- package/dist/{CanvaslabelWidget-BnvwV9MA.cjs.map → CanvaslabelWidget-CAtE3qq_.cjs.map} +1 -1
- package/dist/{CanvaslabelWidget-D8NzLKqi.js → CanvaslabelWidget-CaOc-lTQ.js} +2 -2
- package/dist/{CanvaslabelWidget-D8NzLKqi.js.map → CanvaslabelWidget-CaOc-lTQ.js.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-DVnkclHD.cjs → CanvaslabelvalueWidget-CvVMrZsu.cjs} +2 -2
- package/dist/{CanvaslabelvalueWidget-DVnkclHD.cjs.map → CanvaslabelvalueWidget-CvVMrZsu.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-DOybGI9D.js → CanvaslabelvalueWidget-hqJoPekq.js} +2 -2
- package/dist/{CanvaslabelvalueWidget-DOybGI9D.js.map → CanvaslabelvalueWidget-hqJoPekq.js.map} +1 -1
- package/dist/{CanvaslineWidget-DgbXSH1K.cjs → CanvaslineWidget-CjPnyDod.cjs} +2 -2
- package/dist/{CanvaslineWidget-DgbXSH1K.cjs.map → CanvaslineWidget-CjPnyDod.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-D2NEei7j.js → CanvaslineWidget-DebP2L43.js} +2 -2
- package/dist/{CanvaslineWidget-D2NEei7j.js.map → CanvaslineWidget-DebP2L43.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-Ctvv9owf.js → CanvaslinevalueWidget-BkPG5Vtx.js} +2 -2
- package/dist/{CanvaslinevalueWidget-Ctvv9owf.js.map → CanvaslinevalueWidget-BkPG5Vtx.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-E3NDHyPl.cjs → CanvaslinevalueWidget-Caadjtan.cjs} +2 -2
- package/dist/{CanvaslinevalueWidget-E3NDHyPl.cjs.map → CanvaslinevalueWidget-Caadjtan.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-BdvWAgg_.cjs → CheckbuttonWidget-CEOWZkt6.cjs} +2 -2
- package/dist/{CheckbuttonWidget-BdvWAgg_.cjs.map → CheckbuttonWidget-CEOWZkt6.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-CQeR0BMF.js → CheckbuttonWidget-eQIcPATf.js} +2 -2
- package/dist/{CheckbuttonWidget-CQeR0BMF.js.map → CheckbuttonWidget-eQIcPATf.js.map} +1 -1
- package/dist/{ClassificationBanners-0BNhyyMS.cjs → ClassificationBanners--l3qMxLo.cjs} +2 -2
- package/dist/{ClassificationBanners-0BNhyyMS.cjs.map → ClassificationBanners--l3qMxLo.cjs.map} +1 -1
- package/dist/{ClassificationBanners-STI2n2yD.js → ClassificationBanners-CFLQaZJ2.js} +2 -2
- package/dist/{ClassificationBanners-STI2n2yD.js.map → ClassificationBanners-CFLQaZJ2.js.map} +1 -1
- package/dist/{ComboboxWidget-4N-MagvN.js → ComboboxWidget-B5kzYxFk.js} +2 -2
- package/dist/{ComboboxWidget-4N-MagvN.js.map → ComboboxWidget-B5kzYxFk.js.map} +1 -1
- package/dist/{ComboboxWidget-Dh0q9xpJ.cjs → ComboboxWidget-BSs59QzI.cjs} +2 -2
- package/dist/{ComboboxWidget-Dh0q9xpJ.cjs.map → ComboboxWidget-BSs59QzI.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-trVtKZft.js → CriticalCmdDialog-BYHZbX2w.js} +2 -2
- package/dist/{CriticalCmdDialog-trVtKZft.js.map → CriticalCmdDialog-BYHZbX2w.js.map} +1 -1
- package/dist/{CriticalCmdDialog-Dy1cQZxQ.cjs → CriticalCmdDialog-BhjiJIo5.cjs} +2 -2
- package/dist/{CriticalCmdDialog-Dy1cQZxQ.cjs.map → CriticalCmdDialog-BhjiJIo5.cjs.map} +1 -1
- package/dist/{DateWidget-rYTjwUdb.js → DateWidget-1IZOe50K.js} +2 -2
- package/dist/{DateWidget-rYTjwUdb.js.map → DateWidget-1IZOe50K.js.map} +1 -1
- package/dist/{DateWidget-DXN7u3vL.cjs → DateWidget-DkVxE7Xj.cjs} +2 -2
- package/dist/{DateWidget-DXN7u3vL.cjs.map → DateWidget-DkVxE7Xj.cjs.map} +1 -1
- package/dist/{DetailsDialog-p_vutijL.js → DetailsDialog-D-rjL4oc.js} +3 -3
- package/dist/{DetailsDialog-p_vutijL.js.map → DetailsDialog-D-rjL4oc.js.map} +1 -1
- package/dist/{DetailsDialog-CLCCuoHV.cjs → DetailsDialog-lJG8eclU.cjs} +2 -2
- package/dist/{DetailsDialog-CLCCuoHV.cjs.map → DetailsDialog-lJG8eclU.cjs.map} +1 -1
- package/dist/EventListDialog-5UXvnmNE.cjs +2 -0
- package/dist/EventListDialog-5UXvnmNE.cjs.map +1 -0
- package/dist/{EventListDialog-BshKrOuQ.js → EventListDialog-Id3rEQKY.js} +221 -229
- package/dist/EventListDialog-Id3rEQKY.js.map +1 -0
- package/dist/{FilechecksumWidget-Ddlm1UED.cjs → FilechecksumWidget-D-5GSjyV.cjs} +2 -2
- package/dist/{FilechecksumWidget-Ddlm1UED.cjs.map → FilechecksumWidget-D-5GSjyV.cjs.map} +1 -1
- package/dist/{FilechecksumWidget-gcmXxJHl.js → FilechecksumWidget-F_FX1Kjx.js} +3 -3
- package/dist/{FilechecksumWidget-gcmXxJHl.js.map → FilechecksumWidget-F_FX1Kjx.js.map} +1 -1
- package/dist/{FiledisplayWidget-CqM549A4.js → FiledisplayWidget-BF3G22jF.js} +3 -3
- package/dist/{FiledisplayWidget-CqM549A4.js.map → FiledisplayWidget-BF3G22jF.js.map} +1 -1
- package/dist/{FiledisplayWidget-CYX4HChi.cjs → FiledisplayWidget-BHLOY_cM.cjs} +2 -2
- package/dist/{FiledisplayWidget-CYX4HChi.cjs.map → FiledisplayWidget-BHLOY_cM.cjs.map} +1 -1
- package/dist/{FormatvalueWidget-BEwH0C7S.js → FormatvalueWidget-BkF9iiHs.js} +3 -3
- package/dist/{FormatvalueWidget-BEwH0C7S.js.map → FormatvalueWidget-BkF9iiHs.js.map} +1 -1
- package/dist/{FormatvalueWidget-CpsyYKXD.cjs → FormatvalueWidget-DTsP7isW.cjs} +2 -2
- package/dist/{FormatvalueWidget-CpsyYKXD.cjs.map → FormatvalueWidget-DTsP7isW.cjs.map} +1 -1
- package/dist/{Graph-CbjlChwf.js → Graph-C-7C2Jq5.js} +139 -143
- package/dist/{Graph-CbjlChwf.js.map → Graph-C-7C2Jq5.js.map} +1 -1
- package/dist/Graph-YYieRGo0.cjs +2 -0
- package/dist/{Graph-kmTrth08.cjs.map → Graph-YYieRGo0.cjs.map} +1 -1
- package/dist/{GraphWidget-SamHg2AA.cjs → GraphWidget-C7hqdqL-.cjs} +2 -2
- package/dist/{GraphWidget-SamHg2AA.cjs.map → GraphWidget-C7hqdqL-.cjs.map} +1 -1
- package/dist/{GraphWidget-CjxnC0Dc.js → GraphWidget-DRkDn8za.js} +2 -2
- package/dist/{GraphWidget-CjxnC0Dc.js.map → GraphWidget-DRkDn8za.js.map} +1 -1
- package/dist/{HorizontalWidget-Dt8bkM3k.js → HorizontalWidget-DB64wzZB.js} +2 -2
- package/dist/{HorizontalWidget-Dt8bkM3k.js.map → HorizontalWidget-DB64wzZB.js.map} +1 -1
- package/dist/{HorizontalWidget-ByZjU21C.cjs → HorizontalWidget-h-U8i3G-.cjs} +2 -2
- package/dist/{HorizontalWidget-ByZjU21C.cjs.map → HorizontalWidget-h-U8i3G-.cjs.map} +1 -1
- package/dist/{HorizontalboxWidget-CdAZ5Sa6.js → HorizontalboxWidget-BsHsGlvK.js} +5 -5
- package/dist/{HorizontalboxWidget-CdAZ5Sa6.js.map → HorizontalboxWidget-BsHsGlvK.js.map} +1 -1
- package/dist/{HorizontalboxWidget-DzYz5SXs.cjs → HorizontalboxWidget-E4LUf2eN.cjs} +2 -2
- package/dist/{HorizontalboxWidget-DzYz5SXs.cjs.map → HorizontalboxWidget-E4LUf2eN.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-CXZJTeU2.js → HorizontallineWidget-CyiexzIu.js} +2 -2
- package/dist/{HorizontallineWidget-CXZJTeU2.js.map → HorizontallineWidget-CyiexzIu.js.map} +1 -1
- package/dist/{HorizontallineWidget-C8Zhqxik.cjs → HorizontallineWidget-LibmHnAf.cjs} +2 -2
- package/dist/{HorizontallineWidget-C8Zhqxik.cjs.map → HorizontallineWidget-LibmHnAf.cjs.map} +1 -1
- package/dist/{IframeWidget-CrcWiAVE.js → IframeWidget-D9Vh0w2c.js} +2 -2
- package/dist/{IframeWidget-CrcWiAVE.js.map → IframeWidget-D9Vh0w2c.js.map} +1 -1
- package/dist/{IframeWidget-BuNXXziR.cjs → IframeWidget-xeXTxP_G.cjs} +2 -2
- package/dist/{IframeWidget-BuNXXziR.cjs.map → IframeWidget-xeXTxP_G.cjs.map} +1 -1
- package/dist/{ImageLoader-DPqax8yu.js → ImageLoader-B4iBPFyi.js} +2 -2
- package/dist/{ImageLoader-DPqax8yu.js.map → ImageLoader-B4iBPFyi.js.map} +1 -1
- package/dist/{ImageLoader-130w4tXJ.cjs → ImageLoader-Cc4-BNJv.cjs} +2 -2
- package/dist/{ImageLoader-130w4tXJ.cjs.map → ImageLoader-Cc4-BNJv.cjs.map} +1 -1
- package/dist/{ImageviewerWidget-CTEl6iPg.js → ImageviewerWidget-DqV4SClv.js} +2 -2
- package/dist/{ImageviewerWidget-CTEl6iPg.js.map → ImageviewerWidget-DqV4SClv.js.map} +1 -1
- package/dist/{ImageviewerWidget-CafLbLp2.cjs → ImageviewerWidget-KVt487SJ.cjs} +2 -2
- package/dist/{ImageviewerWidget-CafLbLp2.cjs.map → ImageviewerWidget-KVt487SJ.cjs.map} +1 -1
- package/dist/{InterfacesTab-B9ApLB5q.js → InterfacesTab-C310FRIP.js} +3 -3
- package/dist/{InterfacesTab-B9ApLB5q.js.map → InterfacesTab-C310FRIP.js.map} +1 -1
- package/dist/{InterfacesTab-wPQSLcSj.cjs → InterfacesTab-nZwg-ByS.cjs} +2 -2
- package/dist/{InterfacesTab-wPQSLcSj.cjs.map → InterfacesTab-nZwg-ByS.cjs.map} +1 -1
- package/dist/{LabelWidget-CPqKGMx0.js → LabelWidget-BDukcPet.js} +2 -2
- package/dist/{LabelWidget-CPqKGMx0.js.map → LabelWidget-BDukcPet.js.map} +1 -1
- package/dist/{LabelWidget-BfBP3Xme.cjs → LabelWidget-DYfv4K8h.cjs} +2 -2
- package/dist/{LabelWidget-BfBP3Xme.cjs.map → LabelWidget-DYfv4K8h.cjs.map} +1 -1
- package/dist/{LabelledWidget-CZvKfFNW.cjs → LabelledWidget-Dl1x6b3p.cjs} +2 -2
- package/dist/{LabelledWidget-CZvKfFNW.cjs.map → LabelledWidget-Dl1x6b3p.cjs.map} +1 -1
- package/dist/{LabelledWidget-BHYzRMFd.js → LabelledWidget-tVHE426s.js} +4 -4
- package/dist/{LabelledWidget-BHYzRMFd.js.map → LabelledWidget-tVHE426s.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-D9deeUo7.js → LabelprogressbarWidget-CjMDFUUv.js} +4 -4
- package/dist/{LabelprogressbarWidget-D9deeUo7.js.map → LabelprogressbarWidget-CjMDFUUv.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-Bv0G5oT3.cjs → LabelprogressbarWidget-DcO0gRM4.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-Bv0G5oT3.cjs.map → LabelprogressbarWidget-DcO0gRM4.cjs.map} +1 -1
- package/dist/{LabelsparklineWidget-dyqEroDN.cjs → LabelsparklineWidget-Cp2a-qlI.cjs} +2 -2
- package/dist/{LabelsparklineWidget-dyqEroDN.cjs.map → LabelsparklineWidget-Cp2a-qlI.cjs.map} +1 -1
- package/dist/{LabelsparklineWidget-7mYre3CP.js → LabelsparklineWidget-dZl3cGu0.js} +4 -4
- package/dist/{LabelsparklineWidget-7mYre3CP.js.map → LabelsparklineWidget-dZl3cGu0.js.map} +1 -1
- package/dist/{LabelvalueWidget-Bsl7Z3wM.cjs → LabelvalueWidget-CgP4mzP_.cjs} +2 -2
- package/dist/{LabelvalueWidget-Bsl7Z3wM.cjs.map → LabelvalueWidget-CgP4mzP_.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-NLsD60n4.js → LabelvalueWidget-UcAc_2Ry.js} +4 -4
- package/dist/{LabelvalueWidget-NLsD60n4.js.map → LabelvalueWidget-UcAc_2Ry.js.map} +1 -1
- package/dist/{LabelvaluedescWidget-B_Xih-c5.cjs → LabelvaluedescWidget-CXJ037Qs.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-B_Xih-c5.cjs.map → LabelvaluedescWidget-CXJ037Qs.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-DXROG4Gs.js → LabelvaluedescWidget-Crb8udVe.js} +5 -5
- package/dist/{LabelvaluedescWidget-DXROG4Gs.js.map → LabelvaluedescWidget-Crb8udVe.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-DDd0RIs5.cjs → LabelvaluelimitsbarWidget-B3cn7i50.cjs} +2 -2
- package/dist/{LabelvaluelimitsbarWidget-DDd0RIs5.cjs.map → LabelvaluelimitsbarWidget-B3cn7i50.cjs.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-DqVqHF4W.js → LabelvaluelimitsbarWidget-BZGUQrRt.js} +4 -4
- package/dist/{LabelvaluelimitsbarWidget-DqVqHF4W.js.map → LabelvaluelimitsbarWidget-BZGUQrRt.js.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-C1aqkXh5.cjs → LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs} +2 -2
- package/dist/{LabelvaluelimitscolumnWidget-C1aqkXh5.cjs.map → LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-BK6_31pC.js → LabelvaluelimitscolumnWidget-NNYW2aMO.js} +5 -5
- package/dist/{LabelvaluelimitscolumnWidget-BK6_31pC.js.map → LabelvaluelimitscolumnWidget-NNYW2aMO.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-a8u5LXBD.cjs → LabelvaluerangebarWidget-B81fLpK0.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-a8u5LXBD.cjs.map → LabelvaluerangebarWidget-B81fLpK0.cjs.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-DR7C8gqw.js → LabelvaluerangebarWidget-CjkVDlVJ.js} +4 -4
- package/dist/{LabelvaluerangebarWidget-DR7C8gqw.js.map → LabelvaluerangebarWidget-CjkVDlVJ.js.map} +1 -1
- package/dist/{Layout-B_Hgw3gd.js → Layout-FpBx3iic.js} +2 -2
- package/dist/{Layout-B_Hgw3gd.js.map → Layout-FpBx3iic.js.map} +1 -1
- package/dist/{Layout-CVGghwYm.cjs → Layout-K7_I6jMV.cjs} +2 -2
- package/dist/{Layout-CVGghwYm.cjs.map → Layout-K7_I6jMV.cjs.map} +1 -1
- package/dist/{LedWidget-CiAVs2tj.js → LedWidget-Bsp1aja-.js} +4 -4
- package/dist/{LedWidget-CiAVs2tj.js.map → LedWidget-Bsp1aja-.js.map} +1 -1
- package/dist/{LedWidget-Cmy47xfg.cjs → LedWidget-C19KREVz.cjs} +2 -2
- package/dist/{LedWidget-Cmy47xfg.cjs.map → LedWidget-C19KREVz.cjs.map} +1 -1
- package/dist/{LimitsBar-_UQG-M6e.js → LimitsBar-IVv8t4FE.js} +2 -2
- package/dist/{LimitsBar-_UQG-M6e.js.map → LimitsBar-IVv8t4FE.js.map} +1 -1
- package/dist/{LimitsBar-DTtMywOw.cjs → LimitsBar-LRiUSWd7.cjs} +2 -2
- package/dist/{LimitsBar-DTtMywOw.cjs.map → LimitsBar-LRiUSWd7.cjs.map} +1 -1
- package/dist/{LimitsbarWidget-CYm_f1FN.cjs → LimitsbarWidget-BFjMhTbA.cjs} +2 -2
- package/dist/{LimitsbarWidget-CYm_f1FN.cjs.map → LimitsbarWidget-BFjMhTbA.cjs.map} +1 -1
- package/dist/{LimitsbarWidget-CIwcOhC8.js → LimitsbarWidget-Bo1JAoQp.js} +3 -3
- package/dist/{LimitsbarWidget-CIwcOhC8.js.map → LimitsbarWidget-Bo1JAoQp.js.map} +1 -1
- package/dist/{LimitscolorWidget-oH6NGl1C.cjs → LimitscolorWidget-D214kS86.cjs} +2 -2
- package/dist/{LimitscolorWidget-oH6NGl1C.cjs.map → LimitscolorWidget-D214kS86.cjs.map} +1 -1
- package/dist/{LimitscolorWidget-CGPfJwvT.js → LimitscolorWidget-Doq8h_g1.js} +2 -2
- package/dist/{LimitscolorWidget-CGPfJwvT.js.map → LimitscolorWidget-Doq8h_g1.js.map} +1 -1
- package/dist/{LimitscolumnWidget-CnGOCckG.cjs → LimitscolumnWidget-BREF_CBr.cjs} +2 -2
- package/dist/{LimitscolumnWidget-CnGOCckG.cjs.map → LimitscolumnWidget-BREF_CBr.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-Bj_UPEC8.js → LimitscolumnWidget-qasXHN7m.js} +2 -2
- package/dist/{LimitscolumnWidget-Bj_UPEC8.js.map → LimitscolumnWidget-qasXHN7m.js.map} +1 -1
- package/dist/{LinegraphWidget-DccnHbWa.js → LinegraphWidget-BNMqcr_r.js} +4 -4
- package/dist/{LinegraphWidget-DccnHbWa.js.map → LinegraphWidget-BNMqcr_r.js.map} +1 -1
- package/dist/{LinegraphWidget-zHs3NG-6.cjs → LinegraphWidget-BhpYKxnT.cjs} +2 -2
- package/dist/{LinegraphWidget-zHs3NG-6.cjs.map → LinegraphWidget-BhpYKxnT.cjs.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-Dd-udu5V.cjs → MatrixbycolumnsWidget-BKXkhATe.cjs} +2 -2
- package/dist/{MatrixbycolumnsWidget-Dd-udu5V.cjs.map → MatrixbycolumnsWidget-BKXkhATe.cjs.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-U_NZ6aW-.js → MatrixbycolumnsWidget-BlF1CyIT.js} +3 -3
- package/dist/{MatrixbycolumnsWidget-U_NZ6aW-.js.map → MatrixbycolumnsWidget-BlF1CyIT.js.map} +1 -1
- package/dist/{MicroservicesTab-DXgSxZ0K.cjs → MicroservicesTab-BWFwBSuf.cjs} +2 -2
- package/dist/{MicroservicesTab-DXgSxZ0K.cjs.map → MicroservicesTab-BWFwBSuf.cjs.map} +1 -1
- package/dist/{MicroservicesTab-DG3rdksb.js → MicroservicesTab-xpDXKoa-.js} +3 -3
- package/dist/{MicroservicesTab-DG3rdksb.js.map → MicroservicesTab-xpDXKoa-.js.map} +1 -1
- package/dist/OpenC3TimePicker-6pE8gGCO.cjs +2 -0
- package/dist/OpenC3TimePicker-6pE8gGCO.cjs.map +1 -0
- package/dist/OpenC3TimePicker-D-_qqySI.js +219 -0
- package/dist/OpenC3TimePicker-D-_qqySI.js.map +1 -0
- package/dist/{Openc3Screen-CDwAWaTl.js → Openc3Screen-DYJHNotN.js} +707 -509
- package/dist/Openc3Screen-DYJHNotN.js.map +1 -0
- package/dist/Openc3Screen-Pu1ktpS8.cjs +6 -0
- package/dist/Openc3Screen-Pu1ktpS8.cjs.map +1 -0
- package/dist/{OutputDialog-D2YCbR20.cjs → OutputDialog-BwEWPQW9.cjs} +2 -2
- package/dist/{OutputDialog-D2YCbR20.cjs.map → OutputDialog-BwEWPQW9.cjs.map} +1 -1
- package/dist/{OutputDialog-Di-pSmJE.js → OutputDialog-x4QZFAWe.js} +2 -2
- package/dist/{OutputDialog-Di-pSmJE.js.map → OutputDialog-x4QZFAWe.js.map} +1 -1
- package/dist/{PackagesTab-C-fV9yxw.cjs → PackagesTab-CHwfaqdP.cjs} +2 -2
- package/dist/{PackagesTab-C-fV9yxw.cjs.map → PackagesTab-CHwfaqdP.cjs.map} +1 -1
- package/dist/{PackagesTab-Bui5q3rX.js → PackagesTab-rzc4hqOb.js} +3 -3
- package/dist/{PackagesTab-Bui5q3rX.js.map → PackagesTab-rzc4hqOb.js.map} +1 -1
- package/dist/{PluginsTab-DxxlKeVx.cjs → PluginsTab-C7gLbRQn.cjs} +2 -2
- package/dist/{PluginsTab-DxxlKeVx.cjs.map → PluginsTab-C7gLbRQn.cjs.map} +1 -1
- package/dist/{PluginsTab-zR9eZuvc.js → PluginsTab-Dff_0j26.js} +4 -4
- package/dist/{PluginsTab-zR9eZuvc.js.map → PluginsTab-Dff_0j26.js.map} +1 -1
- package/dist/{ProgressbarWidget-D4JtVzyk.js → ProgressbarWidget-DQ80NANH.js} +2 -2
- package/dist/{ProgressbarWidget-D4JtVzyk.js.map → ProgressbarWidget-DQ80NANH.js.map} +1 -1
- package/dist/{ProgressbarWidget-Cxvwcfgn.cjs → ProgressbarWidget-cQAtX_Q7.cjs} +2 -2
- package/dist/{ProgressbarWidget-Cxvwcfgn.cjs.map → ProgressbarWidget-cQAtX_Q7.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-Ccgftl13.cjs → RadiobuttonWidget-DFrUZRaV.cjs} +2 -2
- package/dist/{RadiobuttonWidget-Ccgftl13.cjs.map → RadiobuttonWidget-DFrUZRaV.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-BUaW7pRx.js → RadiobuttonWidget-LD18M4IQ.js} +2 -2
- package/dist/{RadiobuttonWidget-BUaW7pRx.js.map → RadiobuttonWidget-LD18M4IQ.js.map} +1 -1
- package/dist/{RadiogroupWidget-NIv4CaUQ.js → RadiogroupWidget-D_pt2MPz.js} +2 -2
- package/dist/{RadiogroupWidget-NIv4CaUQ.js.map → RadiogroupWidget-D_pt2MPz.js.map} +1 -1
- package/dist/{RadiogroupWidget-CSxjpxCr.cjs → RadiogroupWidget-ljP05k3g.cjs} +2 -2
- package/dist/{RadiogroupWidget-CSxjpxCr.cjs.map → RadiogroupWidget-ljP05k3g.cjs.map} +1 -1
- package/dist/{RangebarWidget-BtxfPo-U.cjs → RangebarWidget-BsLWXvTo.cjs} +2 -2
- package/dist/{RangebarWidget-BtxfPo-U.cjs.map → RangebarWidget-BsLWXvTo.cjs.map} +1 -1
- package/dist/{RangebarWidget-1-CsFpcl.js → RangebarWidget-DhaWpHjB.js} +2 -2
- package/dist/{RangebarWidget-1-CsFpcl.js.map → RangebarWidget-DhaWpHjB.js.map} +1 -1
- package/dist/{RedisTab-DuO-zUV3.js → RedisTab-C3yjh0JX.js} +2 -2
- package/dist/{RedisTab-DuO-zUV3.js.map → RedisTab-C3yjh0JX.js.map} +1 -1
- package/dist/{RedisTab-DOozcC9a.cjs → RedisTab-DEKMLop2.cjs} +2 -2
- package/dist/{RedisTab-DOozcC9a.cjs.map → RedisTab-DEKMLop2.cjs.map} +1 -1
- package/dist/{RollupWidget-ChasTJYP.js → RollupWidget-CMU1-HwL.js} +2 -2
- package/dist/{RollupWidget-ChasTJYP.js.map → RollupWidget-CMU1-HwL.js.map} +1 -1
- package/dist/{RollupWidget-CQxl1mlr.cjs → RollupWidget-sXTyo7zH.cjs} +2 -2
- package/dist/{RollupWidget-CQxl1mlr.cjs.map → RollupWidget-sXTyo7zH.cjs.map} +1 -1
- package/dist/{RoutersTab-C0UHSj-S.js → RoutersTab-DaWde6np.js} +3 -3
- package/dist/{RoutersTab-C0UHSj-S.js.map → RoutersTab-DaWde6np.js.map} +1 -1
- package/dist/{RoutersTab-DgWAXGUv.cjs → RoutersTab-IKuEHQeO.cjs} +2 -2
- package/dist/{RoutersTab-DgWAXGUv.cjs.map → RoutersTab-IKuEHQeO.cjs.map} +1 -1
- package/dist/{ScriptChooser-D1dddugi.cjs → ScriptChooser-BmyV6QQD.cjs} +2 -2
- package/dist/{ScriptChooser-D1dddugi.cjs.map → ScriptChooser-BmyV6QQD.cjs.map} +1 -1
- package/dist/{ScriptChooser-C5HHbbcP.js → ScriptChooser-DCjI5aeZ.js} +4 -4
- package/dist/{ScriptChooser-C5HHbbcP.js.map → ScriptChooser-DCjI5aeZ.js.map} +1 -1
- package/dist/{ScrollwindowWidget-Bkyjw0Qt.cjs → ScrollwindowWidget-BcLF_bhy.cjs} +2 -2
- package/dist/{ScrollwindowWidget-Bkyjw0Qt.cjs.map → ScrollwindowWidget-BcLF_bhy.cjs.map} +1 -1
- package/dist/{ScrollwindowWidget-Y2J758y6.js → ScrollwindowWidget-D7Ln-QMq.js} +2 -2
- package/dist/{ScrollwindowWidget-Y2J758y6.js.map → ScrollwindowWidget-D7Ln-QMq.js.map} +1 -1
- package/dist/{SecretsTab-Ds3kGOmd.cjs → SecretsTab-BM9HIjT_.cjs} +2 -2
- package/dist/{SecretsTab-Ds3kGOmd.cjs.map → SecretsTab-BM9HIjT_.cjs.map} +1 -1
- package/dist/{SecretsTab-c5g8Zk4g.js → SecretsTab-Dhal1RCq.js} +2 -2
- package/dist/{SecretsTab-c5g8Zk4g.js.map → SecretsTab-Dhal1RCq.js.map} +1 -1
- package/dist/SettingsTab-BrSkK_Fs.cjs +3 -0
- package/dist/SettingsTab-BrSkK_Fs.cjs.map +1 -0
- package/dist/{SettingsTab-CTd3_Ipy.js → SettingsTab-Dtj_AlEW.js} +249 -136
- package/dist/SettingsTab-Dtj_AlEW.js.map +1 -0
- package/dist/{SignalWidget-BkTXZpGV.cjs → SignalWidget-DHwveppA.cjs} +2 -2
- package/dist/{SignalWidget-BkTXZpGV.cjs.map → SignalWidget-DHwveppA.cjs.map} +1 -1
- package/dist/{SignalWidget-DFhHDicI.js → SignalWidget-PreTg4Mt.js} +2 -2
- package/dist/{SignalWidget-DFhHDicI.js.map → SignalWidget-PreTg4Mt.js.map} +1 -1
- package/dist/{SimpleTextDialog-Dv5ypyUQ.cjs → SimpleTextDialog-Bdw3jul4.cjs} +2 -2
- package/dist/{SimpleTextDialog-Dv5ypyUQ.cjs.map → SimpleTextDialog-Bdw3jul4.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-CXIEKlX0.js → SimpleTextDialog-DDIm5Znf.js} +2 -2
- package/dist/{SimpleTextDialog-CXIEKlX0.js.map → SimpleTextDialog-DDIm5Znf.js.map} +1 -1
- package/dist/{SpacerWidget-D4KojaGb.js → SpacerWidget-Chy1NO28.js} +2 -2
- package/dist/{SpacerWidget-D4KojaGb.js.map → SpacerWidget-Chy1NO28.js.map} +1 -1
- package/dist/{SpacerWidget-HsSCc07C.cjs → SpacerWidget-Cj-j_MsG.cjs} +2 -2
- package/dist/{SpacerWidget-HsSCc07C.cjs.map → SpacerWidget-Cj-j_MsG.cjs.map} +1 -1
- package/dist/{SparklineWidget-BdRM-ymk.cjs → SparklineWidget-BE1LieLF.cjs} +2 -2
- package/dist/{SparklineWidget-BdRM-ymk.cjs.map → SparklineWidget-BE1LieLF.cjs.map} +1 -1
- package/dist/{SparklineWidget-DMHFzw8L.js → SparklineWidget-Bb-gCNNt.js} +4 -4
- package/dist/{SparklineWidget-DMHFzw8L.js.map → SparklineWidget-Bb-gCNNt.js.map} +1 -1
- package/dist/{TabbookWidget-NmIK-Lgf.cjs → TabbookWidget-FNbiZpjn.cjs} +2 -2
- package/dist/{TabbookWidget-NmIK-Lgf.cjs.map → TabbookWidget-FNbiZpjn.cjs.map} +1 -1
- package/dist/{TabbookWidget-NVLYMdFG.js → TabbookWidget-a-LsBhBE.js} +2 -2
- package/dist/{TabbookWidget-NVLYMdFG.js.map → TabbookWidget-a-LsBhBE.js.map} +1 -1
- package/dist/TargetPacketItemChooser-BPRByyfB.cjs +2 -0
- package/dist/TargetPacketItemChooser-BPRByyfB.cjs.map +1 -0
- package/dist/{TargetPacketItemChooser-D5h9Octy.js → TargetPacketItemChooser-DDqBQTWC.js} +179 -146
- package/dist/TargetPacketItemChooser-DDqBQTWC.js.map +1 -0
- package/dist/{TargetsTab-b35HgnRl.js → TargetsTab-C7Pn5-19.js} +3 -3
- package/dist/{TargetsTab-b35HgnRl.js.map → TargetsTab-C7Pn5-19.js.map} +1 -1
- package/dist/{TargetsTab-JLjpJ1wn.cjs → TargetsTab-dndajwC_.cjs} +2 -2
- package/dist/{TargetsTab-JLjpJ1wn.cjs.map → TargetsTab-dndajwC_.cjs.map} +1 -1
- package/dist/{TextboxWidget-CrMYPQIF.js → TextboxWidget-DIHEOldN.js} +4 -4
- package/dist/{TextboxWidget-CrMYPQIF.js.map → TextboxWidget-DIHEOldN.js.map} +1 -1
- package/dist/{TextboxWidget-xk3OFSUZ.cjs → TextboxWidget-DYTNipbi.cjs} +2 -2
- package/dist/{TextboxWidget-xk3OFSUZ.cjs.map → TextboxWidget-DYTNipbi.cjs.map} +1 -1
- package/dist/{TextfieldWidget-DnnKM6vS.cjs → TextfieldWidget-BE-HpIKs.cjs} +2 -2
- package/dist/{TextfieldWidget-DnnKM6vS.cjs.map → TextfieldWidget-BE-HpIKs.cjs.map} +1 -1
- package/dist/{TextfieldWidget-DMBQwtnb.js → TextfieldWidget-CIBo7Dau.js} +2 -2
- package/dist/{TextfieldWidget-DMBQwtnb.js.map → TextfieldWidget-CIBo7Dau.js.map} +1 -1
- package/dist/TimeWidget-CLuOYfPP.js +43 -0
- package/dist/TimeWidget-CLuOYfPP.js.map +1 -0
- package/dist/TimeWidget-RYL7zDoC.cjs +2 -0
- package/dist/TimeWidget-RYL7zDoC.cjs.map +1 -0
- package/dist/{TitleWidget-V1FGI8l3.js → TitleWidget-BTHKLAsb.js} +2 -2
- package/dist/{TitleWidget-V1FGI8l3.js.map → TitleWidget-BTHKLAsb.js.map} +1 -1
- package/dist/{TitleWidget-CfFyUkSu.cjs → TitleWidget-DVWOhZqJ.cjs} +2 -2
- package/dist/{TitleWidget-CfFyUkSu.cjs.map → TitleWidget-DVWOhZqJ.cjs.map} +1 -1
- package/dist/{ToolsTab-jUNdj09m.cjs → ToolsTab-D4LFT4tV.cjs} +2 -2
- package/dist/{ToolsTab-jUNdj09m.cjs.map → ToolsTab-D4LFT4tV.cjs.map} +1 -1
- package/dist/{ToolsTab-7qOQPnN3.js → ToolsTab-D5yhjVM0.js} +3 -3
- package/dist/{ToolsTab-7qOQPnN3.js.map → ToolsTab-D5yhjVM0.js.map} +1 -1
- package/dist/{TopBar-DdOFDiCo.cjs → TopBar-DUdrFsMv.cjs} +2 -2
- package/dist/{TopBar-DdOFDiCo.cjs.map → TopBar-DUdrFsMv.cjs.map} +1 -1
- package/dist/{TopBar-BkwvK0oj.js → TopBar-DzxJ69Tt.js} +2 -2
- package/dist/{TopBar-BkwvK0oj.js.map → TopBar-DzxJ69Tt.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-CEUcvlkx.js → UpgradeToEnterpriseDialog-Bf6rEOgp.js} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-CEUcvlkx.js.map → UpgradeToEnterpriseDialog-Bf6rEOgp.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-CP-jJxU4.cjs → UpgradeToEnterpriseDialog-CujyHt2o.cjs} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-CP-jJxU4.cjs.map → UpgradeToEnterpriseDialog-CujyHt2o.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs} +77 -77
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js} +5471 -5449
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js.map} +1 -1
- package/dist/{VWidget-rAFU-0vj.js → VWidget-BcwkHuIT.js} +3 -3
- package/dist/{VWidget-rAFU-0vj.js.map → VWidget-BcwkHuIT.js.map} +1 -1
- package/dist/{VWidget-BJArPtqI.cjs → VWidget-CbdjSkP3.cjs} +2 -2
- package/dist/{VWidget-BJArPtqI.cjs.map → VWidget-CbdjSkP3.cjs.map} +1 -1
- package/dist/{ValueWidget-BI3uXmda.js → ValueWidget-BubIamVx.js} +4 -4
- package/dist/{ValueWidget-BI3uXmda.js.map → ValueWidget-BubIamVx.js.map} +1 -1
- package/dist/{ValueWidget-CwuH7beM.cjs → ValueWidget-CgAl2Av2.cjs} +2 -2
- package/dist/{ValueWidget-CwuH7beM.cjs.map → ValueWidget-CgAl2Av2.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-BGSJLpw4.js → ValuelimitsbarWidget-DKTrV1RT.js} +4 -4
- package/dist/{ValuelimitsbarWidget-BGSJLpw4.js.map → ValuelimitsbarWidget-DKTrV1RT.js.map} +1 -1
- package/dist/{ValuelimitsbarWidget-BSkGhA_y.cjs → ValuelimitsbarWidget-Dn_sS0zt.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-BSkGhA_y.cjs.map → ValuelimitsbarWidget-Dn_sS0zt.cjs.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-BXdPahDO.cjs → ValuelimitscolumnWidget-CGhifOZI.cjs} +2 -2
- package/dist/{ValuelimitscolumnWidget-BXdPahDO.cjs.map → ValuelimitscolumnWidget-CGhifOZI.cjs.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-CaNjHy4v.js → ValuelimitscolumnWidget-D8JIK4Zi.js} +4 -4
- package/dist/{ValuelimitscolumnWidget-CaNjHy4v.js.map → ValuelimitscolumnWidget-D8JIK4Zi.js.map} +1 -1
- package/dist/{ValuerangebarWidget-Do40-aaL.js → ValuerangebarWidget-D8hVKp0l.js} +4 -4
- package/dist/{ValuerangebarWidget-Do40-aaL.js.map → ValuerangebarWidget-D8hVKp0l.js.map} +1 -1
- package/dist/{ValuerangebarWidget-DvWGqBNM.cjs → ValuerangebarWidget-DPtR-Dla.cjs} +2 -2
- package/dist/{ValuerangebarWidget-DvWGqBNM.cjs.map → ValuerangebarWidget-DPtR-Dla.cjs.map} +1 -1
- package/dist/{VerticalWidget-DZqghqIm.js → VerticalWidget-DMp3DXGa.js} +2 -2
- package/dist/{VerticalWidget-DZqghqIm.js.map → VerticalWidget-DMp3DXGa.js.map} +1 -1
- package/dist/{VerticalWidget-y238HI2A.cjs → VerticalWidget-DScGTfwX.cjs} +2 -2
- package/dist/{VerticalWidget-y238HI2A.cjs.map → VerticalWidget-DScGTfwX.cjs.map} +1 -1
- package/dist/{VerticalboxWidget--dgKnG5Z.cjs → VerticalboxWidget-CIJ1c7WU.cjs} +2 -2
- package/dist/{VerticalboxWidget--dgKnG5Z.cjs.map → VerticalboxWidget-CIJ1c7WU.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-CQ__4FcS.js → VerticalboxWidget-CVf1d_3_.js} +5 -5
- package/dist/{VerticalboxWidget-CQ__4FcS.js.map → VerticalboxWidget-CVf1d_3_.js.map} +1 -1
- package/dist/{Widget-DdxHKVWn.cjs → Widget-Btu2EoLT.cjs} +2 -2
- package/dist/{Widget-DdxHKVWn.cjs.map → Widget-Btu2EoLT.cjs.map} +1 -1
- package/dist/{Widget-6-Nvewdp.js → Widget-D4rzBHnr.js} +2 -2
- package/dist/{Widget-6-Nvewdp.js.map → Widget-D4rzBHnr.js.map} +1 -1
- package/dist/components.cjs +3 -3
- package/dist/components.cjs.map +1 -1
- package/dist/components.js +383 -218
- package/dist/components.js.map +1 -1
- package/dist/plugins.cjs.map +1 -1
- package/dist/plugins.js.map +1 -1
- package/dist/{settings-BCE3SW-9.cjs → settings-B9vbjzwV.cjs} +2 -2
- package/dist/{settings-BCE3SW-9.cjs.map → settings-B9vbjzwV.cjs.map} +1 -1
- package/dist/{settings-CHPWZcnU.js → settings-Ctcx_wMT.js} +2 -2
- package/dist/{settings-CHPWZcnU.js.map → settings-Ctcx_wMT.js.map} +1 -1
- package/dist/tools/admin.cjs +4 -5
- package/dist/tools/admin.cjs.map +1 -1
- package/dist/tools/admin.js +936 -823
- package/dist/tools/admin.js.map +1 -1
- package/dist/tools/base.cjs +1 -1
- package/dist/tools/base.js +3 -3
- package/dist/tools/calendar.cjs +1 -1
- package/dist/tools/calendar.js +1 -1
- package/dist/tools/scriptrunner.cjs +8 -8
- package/dist/tools/scriptrunner.cjs.map +1 -1
- package/dist/tools/scriptrunner.js +905 -976
- package/dist/tools/scriptrunner.js.map +1 -1
- package/dist/vue-common.css +1 -1
- package/dist/widgets.cjs +1 -1
- package/dist/widgets.js +64 -64
- package/package.json +4 -4
- package/dist/EventListDialog-BshKrOuQ.js.map +0 -1
- package/dist/EventListDialog-D0iBpLSR.cjs +0 -2
- package/dist/EventListDialog-D0iBpLSR.cjs.map +0 -1
- package/dist/Graph-kmTrth08.cjs +0 -2
- package/dist/Openc3Screen-CDwAWaTl.js.map +0 -1
- package/dist/Openc3Screen-CKs-49JN.cjs +0 -6
- package/dist/Openc3Screen-CKs-49JN.cjs.map +0 -1
- package/dist/SettingsTab-CTd3_Ipy.js.map +0 -1
- package/dist/SettingsTab-DMPRJELP.cjs +0 -3
- package/dist/SettingsTab-DMPRJELP.cjs.map +0 -1
- package/dist/TargetPacketItemChooser-B0IVMSib.cjs +0 -2
- package/dist/TargetPacketItemChooser-B0IVMSib.cjs.map +0 -1
- package/dist/TargetPacketItemChooser-D5h9Octy.js.map +0 -1
- package/dist/TimeWidget-CWLJZ2bt.js +0 -40
- package/dist/TimeWidget-CWLJZ2bt.js.map +0 -1
- package/dist/TimeWidget-W-flXfLb.cjs +0 -2
- package/dist/TimeWidget-W-flXfLb.cjs.map +0 -1
package/dist/components.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.cjs","sources":["../src/components/config/Config.js","../src/components/config/OpenConfigDialog.vue","../src/components/config/SaveConfigDialog.vue","../src/components/LogMessages.vue","../src/components/NotFound.vue"],"sourcesContent":["/*\n# Copyright 2023 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n data: {\n configKey: '',\n // Applications can set to avoid persisting default config\n // Useful when loading and setting existing config\n dontSaveDefaultConfig: false,\n },\n methods: {\n loadDefaultConfig: function () {\n if (localStorage[`${this.configKey}__default`]) {\n return JSON.parse(localStorage[`${this.configKey}__default`])\n } else {\n return {}\n }\n },\n saveDefaultConfig: function (config) {\n if (this.dontSaveDefaultConfig === true) {\n return\n }\n localStorage[`${this.configKey}__default`] = JSON.stringify(config)\n },\n openConfigBase: function (name, routed = false, callback = null) {\n new OpenC3Api()\n .load_config(this.configKey, name)\n .then((response) => {\n if (response) {\n this.$notify.normal({\n title: 'Loading configuration',\n body: name,\n })\n if (callback) callback(JSON.parse(response))\n if (!routed) {\n if (!this.$route.fullPath.includes(name)) {\n this.$router.push({\n query: {\n config: name,\n },\n })\n }\n }\n } else {\n this.$notify.caution({\n title: 'Unknown configuration',\n body: name,\n })\n }\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error opening configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n saveConfigBase: function (name, config) {\n new OpenC3Api()\n .save_config(this.configKey, name, JSON.stringify(config))\n .then(() => {\n this.$notify.normal({\n title: 'Saved configuration',\n body: name,\n })\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error saving configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n resetConfigBase: function () {\n localStorage.removeItem(`${this.configKey}__default`)\n\n const query = { ...this.$route.query }\n delete query.config\n this.$router.replace({ query })\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Open Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n autofocus\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"open-config-cancel-btn\"\n @click=\"cancel\"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"open-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: {\n type: String,\n default: null,\n },\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n emits: ['update:modelValue', 'warning', 'success'],\n data() {\n return {\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (this.selectedItem === '' || this.selectedItem === null) {\n return 'Must select a config'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n if (!this.selectedItem) return\n this.$emit('success', this.selectedItem.config)\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Save Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <v-text-field\n v-model=\"configName\"\n hide-details\n autofocus\n :disabled=\"!!selectedItem\"\n label=\"Configuration Name\"\n data-test=\"name-input-save-config-dialog\"\n />\n </v-row>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn variant=\"outlined\" @click=\"cancel\"> Cancel </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"save-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: {\n type: String,\n default: null,\n },\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n emits: ['update:modelValue', 'warning', 'success'],\n data() {\n return {\n configName: '',\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (!this.configName) {\n return 'Config must have a name'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n watch: {\n selectedItem: function (val) {\n if (val) {\n this.configName = val.config\n }\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n this.$emit('success', this.configName)\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n this.configName = ''\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title class=\"d-flex align-center justify-content-space-between\">\n <div class=\"d-flex align-baseline\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n size=\"small\"\n class=\"mr-2\"\n data-test=\"download-log\"\n @click=\"downloadLog\"\n />\n <span> Log Messages </span>\n <v-btn\n :icon=\"buttonIcon\"\n variant=\"text\"\n data-test=\"pause\"\n @click=\"pause\"\n />\n </div>\n <v-spacer />\n <v-select\n v-model=\"logLevel\"\n label=\"Filter by log level\"\n hide-details\n variant=\"outlined\"\n density=\"compact\"\n :items=\"logLevels\"\n class=\"mr-2\"\n style=\"max-width: 150px\"\n data-test=\"log-messages-level\"\n />\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n single-line\n hide-details\n style=\"max-width: 300px\"\n class=\"search\"\n data-test=\"search-log-messages\"\n />\n <v-btn\n icon=\"mdi-delete-sweep\"\n variant=\"text\"\n class=\"ml-2\"\n data-test=\"clear-log\"\n @click=\"clearLog\"\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"shownData\"\n :search=\"search\"\n :items-per-page=\"-1\"\n hide-default-footer\n :sort-by=\"[{ key: 'time', order: 'desc' }]\"\n density=\"compact\"\n fixed-header\n hover\n data-test=\"log-messages\"\n >\n <template #item.timestamp=\"{ item }\">\n <time :title=\"item.timestamp\" :datetime=\"item.timestamp\">\n {{ item.timestamp }}\n </time>\n </template>\n <template #item.level=\"{ item }\">\n <span :style=\"'display: inline-flex; color:' + getColor(item.level)\">\n <rux-status class=\"mr-1\" :status=\"getStatus(item.level)\"></rux-status>\n {{ item.level }}</span\n >\n </template>\n <template #item.message=\"{ item }\">\n <div style=\"white-space: pre-wrap\">{{ item.message }}</div>\n </template>\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport { format } from 'date-fns'\nimport { Cable } from '@openc3/js-common/services'\nimport { AstroStatusColors, UnknownToAstroStatus } from '@/icons'\nimport { TimeFilters } from '@/util'\n\nexport default {\n mixins: [TimeFilters],\n props: {\n historyCount: {\n type: Number,\n default: 200,\n },\n timeZone: {\n type: String,\n default: 'local',\n },\n },\n data() {\n return {\n AstroStatusColors,\n data: [],\n shownData: [],\n logLevels: ['DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL'],\n logLevel: 'INFO',\n search: '',\n headers: [\n { title: 'Time', value: 'timestamp', nowrap: true },\n { title: 'Level', value: 'level' },\n { title: 'Source', value: 'microservice_name' },\n { title: 'Message', value: 'message' },\n ],\n cable: new Cable(),\n subscription: null,\n paused: false,\n }\n },\n computed: {\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n },\n watch: {\n logLevel: function (newVal, oldVal) {\n this.createSubscription()\n },\n },\n created() {\n this.createSubscription()\n },\n unmounted() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n methods: {\n pause: function () {\n this.paused = !this.paused\n },\n createSubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n this.data = []\n this.shownData = this.data\n }\n this.cable\n .createSubscription(\n 'MessagesChannel',\n window.openc3Scope,\n {\n received: (messages) => {\n this.cable.recordPing()\n if (messages.length > this.historyCount) {\n messages.splice(0, messages.length - this.historyCount)\n }\n // Filter messages before they're added to the table\n // This prevents a bunch of invisible 'INFO' messages from pushing\n // off the 'WARN' or 'ERROR' messages if we filter inside the data-table\n messages = messages.filter((message) => {\n switch (this.logLevel) {\n case 'DEBUG':\n return true\n case 'INFO':\n if (message.level !== 'DEBUG') {\n return true\n }\n break\n case 'WARN':\n if (message.level !== 'DEBUG' && message.level !== 'INFO') {\n return true\n }\n break\n case 'ERROR':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN'\n ) {\n return true\n }\n break\n case 'FATAL':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN' &&\n message.level !== 'ERROR'\n ) {\n return true\n }\n break\n }\n return false\n })\n messages.map((message) => {\n message.timestamp = this.formatTimestamp(\n message['@timestamp'],\n this.timeZone,\n )\n if (\n message.message.raw &&\n message.message.json_class === 'String'\n ) {\n // This is binary data, display in hex.\n let result = '0x'\n for (let i = 0; i < message.message.raw.length; i++) {\n result += message.message.raw[i]\n .toString(16)\n .padStart(2, '0')\n .toUpperCase()\n }\n message.message = result\n } else {\n message.message = message.message.replaceAll('\\\\n', '\\n')\n }\n })\n this.data = messages.reverse().concat(this.data)\n if (this.data.length > this.historyCount) {\n this.data.length = this.historyCount\n }\n if (!this.paused) {\n this.shownData = this.data\n }\n },\n },\n {\n // Channel parameter is history_count with underscore\n history_count: this.historyCount,\n types: ['log', 'notification', 'alert'],\n },\n )\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n getColor(level) {\n return AstroStatusColors[UnknownToAstroStatus[level]]\n },\n getStatus(level) {\n return UnknownToAstroStatus[level]\n },\n downloadLog() {\n const output = this.shownData\n .sort((a, b) => a.time - b.time)\n .map(\n (entry) =>\n // Other fields are available like container_name, msg_id ... probably not useful\n `${entry.timestamp} | ${entry.level} | ${entry.microservice_name} | ${entry.message}`,\n )\n .join('\\n')\n const blob = new Blob([output], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n format(Date.now(), 'yyyy_MM_dd_HH_mm_ss') + '_message_log.txt',\n )\n link.click()\n },\n clearLog: function () {\n this.$dialog\n .confirm('Are you sure you want to clear the log?', {\n okText: 'Clear',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n this.data = []\n this.shownData = []\n })\n .catch(function (err) {\n // Canceling the dialog forces catch and sets err to true\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-card {\n /* take up any remaining vertical space\n (e.g. whatever is left after the tabs in cmdtlmserver)\n */\n flex-grow: 1;\n\n /* flex so the table can grow without making the card itself scroll */\n display: flex;\n flex-direction: column;\n}\n.v-data-table {\n height: 25vh; /* give it at least a bit of height to start with */\n flex-grow: 1; /* and then grow to fill all the space it can */\n}\n</style>\n","<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card v-if=\"show\">\n <v-card-title> 404 Not Found </v-card-title>\n <v-card-text class=\"d-flex align-center mt-3\">\n The requested URL\n <code class=\"mx-1\"> {{ $route.fullPath }} </code>\n was not routable.\n <span class=\"text-h3 mx-1\"> 🦄 </span>\n </v-card-text>\n </v-card>\n <div v-if=\"showSpinner\" class=\"d-flex justify-center align-center\">\n <v-progress-circular indeterminate />\n </div>\n</template>\n\n<script>\nimport { getMountedApps } from 'single-spa'\n\nconst POLL_INTERVAL_MS = 50\nconst NOT_FOUND_TIMEOUT_MS = 2000\nconst SINGLE_SPA_APP_CHANGE_EVENT = 'single-spa:app-change'\n\n// This component is actually always loaded for every route other than /login\n// because of the catch-all path in tool-base's router, so we need logic to\n// hide it when a tool is loaded.\nexport default {\n data() {\n return {\n appsMounted: false,\n show: false,\n hideSpinner: false,\n pollInterval: null,\n }\n },\n computed: {\n showSpinner: function () {\n return !this.hideSpinner && !this.show\n },\n },\n created() {\n window.addEventListener(SINGLE_SPA_APP_CHANGE_EVENT, this.handleAppChange)\n },\n mounted() {\n this.pollForMountedApps()\n // This gives some time to allow slow connections to find the apps before flashing the 404\n setTimeout(() => {\n if (!this.appsMounted) {\n this.show = true\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n }\n }\n }, NOT_FOUND_TIMEOUT_MS)\n },\n unmounted() {\n window.removeEventListener(\n SINGLE_SPA_APP_CHANGE_EVENT,\n this.handleAppChange,\n )\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n }\n },\n methods: {\n handleAppChange: function (event) {\n this.show = !event.detail.appsByNewStatus.MOUNTED\n this.hideSpinner = true\n },\n pollForMountedApps: function () {\n // Check to see if there are single-spa apps that matched the route.\n // The app-change event doesn't cover this case...\n this.pollInterval = setInterval(() => {\n this.appsMounted = getMountedApps().length > 0\n if (getMountedApps().length > 0) {\n this.hideSpinner = true\n clearInterval(this.pollInterval)\n }\n }, POLL_INTERVAL_MS)\n },\n },\n}\n</script>\n"],"names":["Config","config","name","routed","callback","OpenC3Api","response","error","query","_sfc_main","value","configId","row","item","dialog","_a","_hoisted_1","_createBlock","_component_v_dialog","$options","$event","_createVNode","_component_v_card","_createElementVNode","args","_component_v_toolbar","_component_v_spacer","_cache","_component_v_card_text","_component_v_row","_component_v_text_field","$data","_component_v_data_table","_withCtx","_component_v_btn","_toDisplayString","_component_v_card_actions","val","TimeFilters","AstroStatusColors","Cable","newVal","oldVal","messages","message","result","i","subscription","level","UnknownToAstroStatus","output","b","entry","blob","link","format","err","_hoisted_3","_component_v_card_title","_component_v_select","_hoisted_2","_normalizeStyle","_component_rux_status","POLL_INTERVAL_MS","NOT_FOUND_TIMEOUT_MS","SINGLE_SPA_APP_CHANGE_EVENT","event","getMountedApps","_ctx","_openBlock","_createElementBlock","_component_v_progress_circular"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.cjs","sources":["../src/components/config/Config.js","../src/components/config/OpenConfigDialog.vue","../src/components/config/SaveConfigDialog.vue","../src/components/ScriptEditor.vue","../src/components/LogMessages.vue","../src/components/NotFound.vue"],"sourcesContent":["/*\n# Copyright 2023 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n data: {\n configKey: '',\n // Applications can set to avoid persisting default config\n // Useful when loading and setting existing config\n dontSaveDefaultConfig: false,\n },\n methods: {\n loadDefaultConfig: function () {\n if (localStorage[`${this.configKey}__default`]) {\n return JSON.parse(localStorage[`${this.configKey}__default`])\n } else {\n return {}\n }\n },\n saveDefaultConfig: function (config) {\n if (this.dontSaveDefaultConfig === true) {\n return\n }\n localStorage[`${this.configKey}__default`] = JSON.stringify(config)\n },\n openConfigBase: function (name, routed = false, callback = null) {\n new OpenC3Api()\n .load_config(this.configKey, name)\n .then((response) => {\n if (response) {\n this.$notify.normal({\n title: 'Loading configuration',\n body: name,\n })\n if (callback) callback(JSON.parse(response))\n if (!routed) {\n if (!this.$route.fullPath.includes(name)) {\n this.$router.push({\n query: {\n config: name,\n },\n })\n }\n }\n } else {\n this.$notify.caution({\n title: 'Unknown configuration',\n body: name,\n })\n }\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error opening configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n saveConfigBase: function (name, config) {\n new OpenC3Api()\n .save_config(this.configKey, name, JSON.stringify(config))\n .then(() => {\n this.$notify.normal({\n title: 'Saved configuration',\n body: name,\n })\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error saving configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n resetConfigBase: function () {\n localStorage.removeItem(`${this.configKey}__default`)\n\n const query = { ...this.$route.query }\n delete query.config\n this.$router.replace({ query })\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Open Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n autofocus\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"open-config-cancel-btn\"\n @click=\"cancel\"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"open-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: {\n type: String,\n default: null,\n },\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n emits: ['update:modelValue', 'warning', 'success'],\n data() {\n return {\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (this.selectedItem === '' || this.selectedItem === null) {\n return 'Must select a config'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n if (!this.selectedItem) return\n this.$emit('success', this.selectedItem.config)\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" persistent width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Save Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <v-text-field\n v-model=\"configName\"\n hide-details\n autofocus\n :disabled=\"!!selectedItem\"\n label=\"Configuration Name\"\n data-test=\"name-input-save-config-dialog\"\n />\n </v-row>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn variant=\"outlined\" @click=\"cancel\"> Cancel </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"save-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: {\n type: String,\n default: null,\n },\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n emits: ['update:modelValue', 'warning', 'success'],\n data() {\n return {\n configName: '',\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (!this.configName) {\n return 'Config must have a name'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n watch: {\n selectedItem: function (val) {\n if (val) {\n this.configName = val.config\n }\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n this.$emit('success', this.configName)\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n this.configName = ''\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"script-editor-container\">\n <v-row no-gutters align=\"center\" class=\"mb-2\">\n <v-btn-toggle v-model=\"language\" mandatory density=\"compact\" class=\"mr-3\">\n <v-btn value=\"ruby\" size=\"small\">Ruby</v-btn>\n <v-btn value=\"python\" size=\"small\">Python</v-btn>\n </v-btn-toggle>\n <v-spacer />\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n title=\"Download\"\n data-test=\"script-editor-download\"\n @click=\"downloadContent\"\n />\n </v-row>\n <v-row no-gutters class=\"mb-2\">\n <pre\n ref=\"editor\"\n class=\"script-editor\"\n :style=\"{ height: height, width: '100%' }\"\n @contextmenu.prevent=\"showContextMenu\"\n ></pre>\n <v-menu v-model=\"contextMenu\" :target=\"[menuX, menuY]\">\n <v-list>\n <v-list-item\n title=\"Toggle Vim mode\"\n prepend-icon=\"extras:vim\"\n @click=\"toggleVimMode\"\n />\n </v-list>\n </v-menu>\n </v-row>\n <v-row no-gutters>\n <span class=\"text-caption text-grey\">\n Ctrl-space brings up autocomplete.\n </span>\n </v-row>\n </div>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { AceEditorModes, AceEditorUtils } from './ace'\nimport { CmdCompleter, TlmCompleter } from '../tools/scriptrunner/autocomplete'\n\nexport default {\n mixins: [AceEditorModes],\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n height: {\n type: String,\n default: '300px',\n },\n filename: {\n type: String,\n default: 'script',\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n editor: null,\n language: AceEditorUtils.getDefaultScriptingLanguage() || 'ruby',\n rubyMode: null,\n pythonMode: null,\n contextMenu: false,\n menuX: 0,\n menuY: 0,\n }\n },\n watch: {\n modelValue(newValue) {\n if (this.editor && this.editor.getValue() !== newValue) {\n this.editor.setValue(newValue)\n this.editor.clearSelection()\n }\n },\n language(newValue) {\n if (this.editor) {\n if (newValue === 'python') {\n this.editor.session.setMode(this.pythonMode)\n } else {\n this.editor.session.setMode(this.rubyMode)\n }\n }\n },\n },\n mounted() {\n this.initEditor()\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n this.editor.container.remove()\n }\n },\n methods: {\n initEditor() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n\n // Build modes using the mixin methods\n const RubyMode = this.buildRubyMode()\n const PythonMode = this.buildPythonMode()\n this.rubyMode = new RubyMode()\n this.pythonMode = new PythonMode()\n\n // Set initial mode based on language\n if (this.language === 'python') {\n this.editor.session.setMode(this.pythonMode)\n } else {\n this.editor.session.setMode(this.rubyMode)\n }\n\n this.editor.session.setTabSize(2)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setOption('enableBasicAutocompletion', true)\n this.editor.setOption('enableLiveAutocompletion', true)\n this.editor.completers = [new CmdCompleter(), new TlmCompleter()]\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.modelValue)\n this.editor.clearSelection()\n AceEditorUtils.applyVimModeIfEnabled(this.editor)\n this.editor.focus()\n\n this.editor.session.on('change', () => {\n this.$emit('update:modelValue', this.editor.getValue())\n })\n },\n getValue() {\n return this.editor ? this.editor.getValue() : this.modelValue\n },\n toggleVimMode() {\n AceEditorUtils.toggleVimMode(this.editor)\n },\n showContextMenu(event) {\n this.menuX = event.pageX\n this.menuY = event.pageY\n this.contextMenu = true\n },\n downloadContent() {\n const ext = this.language === 'python' ? '.py' : '.rb'\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', `${this.filename}${ext}`)\n link.click()\n },\n },\n}\n</script>\n\n<style scoped>\n.script-editor-container {\n width: 100%;\n}\n\n.script-editor {\n width: 100%;\n position: relative;\n font-size: 16px;\n}\n</style>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title class=\"d-flex align-center justify-content-space-between\">\n <div class=\"d-flex align-baseline\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n size=\"small\"\n class=\"mr-2\"\n data-test=\"download-log\"\n @click=\"downloadLog\"\n />\n <span> Log Messages </span>\n <v-btn\n :icon=\"buttonIcon\"\n variant=\"text\"\n data-test=\"pause\"\n @click=\"pause\"\n />\n </div>\n <v-spacer />\n <v-select\n v-model=\"logLevel\"\n label=\"Filter by log level\"\n hide-details\n variant=\"outlined\"\n density=\"compact\"\n :items=\"logLevels\"\n class=\"mr-2\"\n style=\"max-width: 150px\"\n data-test=\"log-messages-level\"\n />\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n single-line\n hide-details\n style=\"max-width: 300px\"\n class=\"search\"\n data-test=\"search-log-messages\"\n />\n <v-btn\n icon=\"mdi-delete-sweep\"\n variant=\"text\"\n class=\"ml-2\"\n data-test=\"clear-log\"\n @click=\"clearLog\"\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"shownData\"\n :search=\"search\"\n :items-per-page=\"-1\"\n hide-default-footer\n :sort-by=\"[{ key: 'time', order: 'desc' }]\"\n density=\"compact\"\n fixed-header\n hover\n data-test=\"log-messages\"\n >\n <template #item.timestamp=\"{ item }\">\n <time :title=\"item.timestamp\" :datetime=\"item.timestamp\">\n {{ item.timestamp }}\n </time>\n </template>\n <template #item.level=\"{ item }\">\n <span :style=\"'display: inline-flex; color:' + getColor(item.level)\">\n <rux-status class=\"mr-1\" :status=\"getStatus(item.level)\"></rux-status>\n {{ item.level }}</span\n >\n </template>\n <template #item.message=\"{ item }\">\n <div style=\"white-space: pre-wrap\">{{ item.message }}</div>\n </template>\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport { format } from 'date-fns'\nimport { Cable } from '@openc3/js-common/services'\nimport { AstroStatusColors, UnknownToAstroStatus } from '@/icons'\nimport { TimeFilters } from '@/util'\n\nexport default {\n mixins: [TimeFilters],\n props: {\n historyCount: {\n type: Number,\n default: 200,\n },\n timeZone: {\n type: String,\n default: 'local',\n },\n },\n data() {\n return {\n AstroStatusColors,\n data: [],\n shownData: [],\n logLevels: ['DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL'],\n logLevel: 'INFO',\n search: '',\n headers: [\n { title: 'Time', value: 'timestamp', nowrap: true },\n { title: 'Level', value: 'level' },\n { title: 'Source', value: 'microservice_name' },\n { title: 'Message', value: 'message' },\n ],\n cable: new Cable(),\n subscription: null,\n paused: false,\n }\n },\n computed: {\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n },\n watch: {\n logLevel: function (newVal, oldVal) {\n this.createSubscription()\n },\n },\n created() {\n this.createSubscription()\n },\n unmounted() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n methods: {\n pause: function () {\n this.paused = !this.paused\n },\n createSubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n this.data = []\n this.shownData = this.data\n }\n this.cable\n .createSubscription(\n 'MessagesChannel',\n window.openc3Scope,\n {\n received: (messages) => {\n this.cable.recordPing()\n if (messages.length > this.historyCount) {\n messages.splice(0, messages.length - this.historyCount)\n }\n // Filter messages before they're added to the table\n // This prevents a bunch of invisible 'INFO' messages from pushing\n // off the 'WARN' or 'ERROR' messages if we filter inside the data-table\n messages = messages.filter((message) => {\n switch (this.logLevel) {\n case 'DEBUG':\n return true\n case 'INFO':\n if (message.level !== 'DEBUG') {\n return true\n }\n break\n case 'WARN':\n if (message.level !== 'DEBUG' && message.level !== 'INFO') {\n return true\n }\n break\n case 'ERROR':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN'\n ) {\n return true\n }\n break\n case 'FATAL':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN' &&\n message.level !== 'ERROR'\n ) {\n return true\n }\n break\n }\n return false\n })\n messages.map((message) => {\n message.timestamp = this.formatTimestamp(\n message['@timestamp'],\n this.timeZone,\n )\n if (\n message.message.raw &&\n message.message.json_class === 'String'\n ) {\n // This is binary data, display in hex.\n let result = '0x'\n for (let i = 0; i < message.message.raw.length; i++) {\n result += message.message.raw[i]\n .toString(16)\n .padStart(2, '0')\n .toUpperCase()\n }\n message.message = result\n } else {\n message.message = message.message.replaceAll('\\\\n', '\\n')\n }\n })\n this.data = messages.reverse().concat(this.data)\n if (this.data.length > this.historyCount) {\n this.data.length = this.historyCount\n }\n if (!this.paused) {\n this.shownData = this.data\n }\n },\n },\n {\n // Channel parameter is history_count with underscore\n history_count: this.historyCount,\n types: ['log', 'notification', 'alert'],\n },\n )\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n getColor(level) {\n return AstroStatusColors[UnknownToAstroStatus[level]]\n },\n getStatus(level) {\n return UnknownToAstroStatus[level]\n },\n downloadLog() {\n const output = this.shownData\n .sort((a, b) => a.time - b.time)\n .map(\n (entry) =>\n // Other fields are available like container_name, msg_id ... probably not useful\n `${entry.timestamp} | ${entry.level} | ${entry.microservice_name} | ${entry.message}`,\n )\n .join('\\n')\n const blob = new Blob([output], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n format(Date.now(), 'yyyy_MM_dd_HH_mm_ss') + '_message_log.txt',\n )\n link.click()\n },\n clearLog: function () {\n this.$dialog\n .confirm('Are you sure you want to clear the log?', {\n okText: 'Clear',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n this.data = []\n this.shownData = []\n })\n .catch(function (err) {\n // Canceling the dialog forces catch and sets err to true\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-card {\n /* take up any remaining vertical space\n (e.g. whatever is left after the tabs in cmdtlmserver)\n */\n flex-grow: 1;\n\n /* flex so the table can grow without making the card itself scroll */\n display: flex;\n flex-direction: column;\n}\n.v-data-table {\n height: 25vh; /* give it at least a bit of height to start with */\n flex-grow: 1; /* and then grow to fill all the space it can */\n}\n</style>\n","<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card v-if=\"show\">\n <v-card-title> 404 Not Found </v-card-title>\n <v-card-text class=\"d-flex align-center mt-3\">\n The requested URL\n <code class=\"mx-1\"> {{ $route.fullPath }} </code>\n was not routable.\n <span class=\"text-h3 mx-1\"> 🦄 </span>\n </v-card-text>\n </v-card>\n <div v-if=\"showSpinner\" class=\"d-flex justify-center align-center\">\n <v-progress-circular indeterminate />\n </div>\n</template>\n\n<script>\nimport { getMountedApps } from 'single-spa'\n\nconst POLL_INTERVAL_MS = 50\nconst NOT_FOUND_TIMEOUT_MS = 2000\nconst SINGLE_SPA_APP_CHANGE_EVENT = 'single-spa:app-change'\n\n// This component is actually always loaded for every route other than /login\n// because of the catch-all path in tool-base's router, so we need logic to\n// hide it when a tool is loaded.\nexport default {\n data() {\n return {\n appsMounted: false,\n show: false,\n hideSpinner: false,\n pollInterval: null,\n }\n },\n computed: {\n showSpinner: function () {\n return !this.hideSpinner && !this.show\n },\n },\n created() {\n window.addEventListener(SINGLE_SPA_APP_CHANGE_EVENT, this.handleAppChange)\n },\n mounted() {\n this.pollForMountedApps()\n // This gives some time to allow slow connections to find the apps before flashing the 404\n setTimeout(() => {\n if (!this.appsMounted) {\n this.show = true\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n }\n }\n }, NOT_FOUND_TIMEOUT_MS)\n },\n unmounted() {\n window.removeEventListener(\n SINGLE_SPA_APP_CHANGE_EVENT,\n this.handleAppChange,\n )\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n }\n },\n methods: {\n handleAppChange: function (event) {\n this.show = !event.detail.appsByNewStatus.MOUNTED\n this.hideSpinner = true\n },\n pollForMountedApps: function () {\n // Check to see if there are single-spa apps that matched the route.\n // The app-change event doesn't cover this case...\n this.pollInterval = setInterval(() => {\n this.appsMounted = getMountedApps().length > 0\n if (getMountedApps().length > 0) {\n this.hideSpinner = true\n clearInterval(this.pollInterval)\n }\n }, POLL_INTERVAL_MS)\n },\n },\n}\n</script>\n"],"names":["Config","config","name","routed","callback","OpenC3Api","response","error","query","_sfc_main","value","configId","row","item","dialog","_a","_hoisted_1","_createBlock","_component_v_dialog","$options","$event","_createVNode","_component_v_card","_createElementVNode","args","_component_v_toolbar","_component_v_spacer","_cache","_component_v_card_text","_component_v_row","_component_v_text_field","$data","_component_v_data_table","_withCtx","_component_v_btn","_toDisplayString","_component_v_card_actions","val","AceEditorModes","AceEditorUtils","newValue","ace.edit","RubyMode","PythonMode","CmdCompleter","TlmCompleter","event","ext","blob","link","_openBlock","_createElementBlock","_component_v_btn_toggle","$props","_component_v_menu","_component_v_list","_component_v_list_item","TimeFilters","AstroStatusColors","Cable","newVal","oldVal","messages","message","result","i","subscription","level","UnknownToAstroStatus","output","a","b","entry","format","err","_hoisted_3","_component_v_card_title","_component_v_select","_hoisted_2","_normalizeStyle","_component_rux_status","POLL_INTERVAL_MS","NOT_FOUND_TIMEOUT_MS","SINGLE_SPA_APP_CHANGE_EVENT","getMountedApps","_ctx","_component_v_progress_circular"],"mappings":"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"}
|