@openc3/vue-common 6.10.1 → 6.10.3
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-DvCX-1Om.cjs → ArrayWidget-B35vCzAo.cjs} +3 -3
- package/dist/{ArrayWidget-DvCX-1Om.cjs.map → ArrayWidget-B35vCzAo.cjs.map} +1 -1
- package/dist/{ArrayWidget-DQRQ7dPa.js → ArrayWidget-Bc-Awsbn.js} +11 -11
- package/dist/{ArrayWidget-DQRQ7dPa.js.map → ArrayWidget-Bc-Awsbn.js.map} +1 -1
- package/dist/{ArrayplotWidget-DA4SCxEg.cjs → ArrayplotWidget-B67ip6aR.cjs} +2 -2
- package/dist/{ArrayplotWidget-DA4SCxEg.cjs.map → ArrayplotWidget-B67ip6aR.cjs.map} +1 -1
- package/dist/{ArrayplotWidget-BeSfz3MR.js → ArrayplotWidget-B9UGCr4-.js} +4 -4
- package/dist/{ArrayplotWidget-BeSfz3MR.js.map → ArrayplotWidget-B9UGCr4-.js.map} +1 -1
- package/dist/BarColumn-3fKM-em2.cjs +2 -0
- package/dist/BarColumn-3fKM-em2.cjs.map +1 -0
- package/dist/{BarColumn-BdIaQfOz.js → BarColumn-ClLBRGll.js} +11 -11
- package/dist/BarColumn-ClLBRGll.js.map +1 -0
- package/dist/{BlockWidget-DSFKrUxl.js → BlockWidget-CoQp-LZM.js} +14 -14
- package/dist/{BlockWidget-DSFKrUxl.js.map → BlockWidget-CoQp-LZM.js.map} +1 -1
- package/dist/{BlockWidget-C33RBqR2.cjs → BlockWidget-DWexy9Dx.cjs} +3 -3
- package/dist/{BlockWidget-C33RBqR2.cjs.map → BlockWidget-DWexy9Dx.cjs.map} +1 -1
- package/dist/{ButtonWidget-DV33-G5z.cjs → ButtonWidget-BBpVoIzj.cjs} +3 -3
- package/dist/ButtonWidget-BBpVoIzj.cjs.map +1 -0
- package/dist/{ButtonWidget-CFbjdxSr.js → ButtonWidget-CTTwpFec.js} +15 -15
- package/dist/ButtonWidget-CTTwpFec.js.map +1 -0
- package/dist/{CanvasWidget-CO5Ql5FM.cjs → CanvasWidget-Qlx-Mo8v.cjs} +2 -2
- package/dist/{CanvasWidget-CO5Ql5FM.cjs.map → CanvasWidget-Qlx-Mo8v.cjs.map} +1 -1
- package/dist/{CanvasWidget-BloYxuKE.js → CanvasWidget-jFarbJ3t.js} +4 -4
- package/dist/{CanvasWidget-BloYxuKE.js.map → CanvasWidget-jFarbJ3t.js.map} +1 -1
- package/dist/{CanvasdotWidget-v73CXaR2.cjs → CanvasdotWidget-BROyk4FH.cjs} +2 -2
- package/dist/{CanvasdotWidget-v73CXaR2.cjs.map → CanvasdotWidget-BROyk4FH.cjs.map} +1 -1
- package/dist/{CanvasdotWidget-CZxUOPRd.js → CanvasdotWidget-BoyUcwiB.js} +3 -3
- package/dist/{CanvasdotWidget-CZxUOPRd.js.map → CanvasdotWidget-BoyUcwiB.js.map} +1 -1
- package/dist/CanvasimageWidget-BvTJnGXu.cjs +2 -0
- package/dist/CanvasimageWidget-BvTJnGXu.cjs.map +1 -0
- package/dist/{CanvasimageWidget-ULQq3nqZ.js → CanvasimageWidget-DmyCSnuQ.js} +8 -7
- package/dist/CanvasimageWidget-DmyCSnuQ.js.map +1 -0
- package/dist/{CanvasimagevalueWidget-jFCVXYhi.js → CanvasimagevalueWidget-CmbngMqv.js} +5 -4
- package/dist/CanvasimagevalueWidget-CmbngMqv.js.map +1 -0
- package/dist/CanvasimagevalueWidget-CzVrDo-Z.cjs +2 -0
- package/dist/CanvasimagevalueWidget-CzVrDo-Z.cjs.map +1 -0
- package/dist/{CanvaslabelWidget-XfEANCQ-.cjs → CanvaslabelWidget-BnvwV9MA.cjs} +2 -2
- package/dist/{CanvaslabelWidget-XfEANCQ-.cjs.map → CanvaslabelWidget-BnvwV9MA.cjs.map} +1 -1
- package/dist/{CanvaslabelWidget-DQhBI1vZ.js → CanvaslabelWidget-D8NzLKqi.js} +3 -3
- package/dist/{CanvaslabelWidget-DQhBI1vZ.js.map → CanvaslabelWidget-D8NzLKqi.js.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-C4REgztL.js → CanvaslabelvalueWidget-DOybGI9D.js} +4 -3
- package/dist/CanvaslabelvalueWidget-DOybGI9D.js.map +1 -0
- package/dist/CanvaslabelvalueWidget-DVnkclHD.cjs +2 -0
- package/dist/CanvaslabelvalueWidget-DVnkclHD.cjs.map +1 -0
- package/dist/{CanvaslineWidget-S4PCEvZM.js → CanvaslineWidget-D2NEei7j.js} +3 -3
- package/dist/{CanvaslineWidget-S4PCEvZM.js.map → CanvaslineWidget-D2NEei7j.js.map} +1 -1
- package/dist/{CanvaslineWidget-DycxDsyJ.cjs → CanvaslineWidget-DgbXSH1K.cjs} +2 -2
- package/dist/{CanvaslineWidget-DycxDsyJ.cjs.map → CanvaslineWidget-DgbXSH1K.cjs.map} +1 -1
- package/dist/{CanvaslinevalueWidget-597khOSA.js → CanvaslinevalueWidget-Ctvv9owf.js} +11 -10
- package/dist/CanvaslinevalueWidget-Ctvv9owf.js.map +1 -0
- package/dist/CanvaslinevalueWidget-E3NDHyPl.cjs +2 -0
- package/dist/CanvaslinevalueWidget-E3NDHyPl.cjs.map +1 -0
- package/dist/CheckbuttonWidget-BdvWAgg_.cjs +2 -0
- package/dist/{CheckbuttonWidget-BwDttJTf.cjs.map → CheckbuttonWidget-BdvWAgg_.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-BcblKat3.js → CheckbuttonWidget-CQeR0BMF.js} +6 -6
- package/dist/{CheckbuttonWidget-BcblKat3.js.map → CheckbuttonWidget-CQeR0BMF.js.map} +1 -1
- package/dist/{ClassificationBanners-CEzDn5cM.cjs → ClassificationBanners-0BNhyyMS.cjs} +2 -2
- package/dist/{ClassificationBanners-CEzDn5cM.cjs.map → ClassificationBanners-0BNhyyMS.cjs.map} +1 -1
- package/dist/{ClassificationBanners-CS4GUeYv.js → ClassificationBanners-STI2n2yD.js} +2 -2
- package/dist/{ClassificationBanners-CS4GUeYv.js.map → ClassificationBanners-STI2n2yD.js.map} +1 -1
- package/dist/{ComboboxWidget-BMcHS4g5.js → ComboboxWidget-4N-MagvN.js} +6 -6
- package/dist/{ComboboxWidget-BMcHS4g5.js.map → ComboboxWidget-4N-MagvN.js.map} +1 -1
- package/dist/ComboboxWidget-Dh0q9xpJ.cjs +2 -0
- package/dist/{ComboboxWidget-DkBtLQ41.cjs.map → ComboboxWidget-Dh0q9xpJ.cjs.map} +1 -1
- package/dist/CriticalCmdDialog-Dy1cQZxQ.cjs +2 -0
- package/dist/CriticalCmdDialog-Dy1cQZxQ.cjs.map +1 -0
- package/dist/{CriticalCmdDialog-CVLyYtng.js → CriticalCmdDialog-trVtKZft.js} +62 -52
- package/dist/CriticalCmdDialog-trVtKZft.js.map +1 -0
- package/dist/{CustomIcon-DTfsnDJn.js → CustomIcon-B9m73Gqm.js} +5 -4
- package/dist/{CustomIcon-DTfsnDJn.js.map → CustomIcon-B9m73Gqm.js.map} +1 -1
- package/dist/CustomIcon-CEc927h0.cjs +2 -0
- package/dist/{CustomIcon-eie3rPKh.cjs.map → CustomIcon-CEc927h0.cjs.map} +1 -1
- package/dist/{DateWidget-CRFiLyxD.cjs → DateWidget-DXN7u3vL.cjs} +2 -2
- package/dist/{DateWidget-CRFiLyxD.cjs.map → DateWidget-DXN7u3vL.cjs.map} +1 -1
- package/dist/{DateWidget-BpnMzSBn.js → DateWidget-rYTjwUdb.js} +3 -3
- package/dist/{DateWidget-BpnMzSBn.js.map → DateWidget-rYTjwUdb.js.map} +1 -1
- package/dist/DetailsDialog-CLCCuoHV.cjs +2 -0
- package/dist/DetailsDialog-CLCCuoHV.cjs.map +1 -0
- package/dist/{DetailsDialog-q9piPmHq.js → DetailsDialog-p_vutijL.js} +130 -100
- package/dist/DetailsDialog-p_vutijL.js.map +1 -0
- package/dist/DynamicWidget-C4V2H2VJ.cjs +2 -0
- package/dist/DynamicWidget-C4V2H2VJ.cjs.map +1 -0
- package/dist/{DynamicWidget-DHL7pbgW.js → DynamicWidget-DEHWYr8i.js} +7 -7
- package/dist/DynamicWidget-DEHWYr8i.js.map +1 -0
- package/dist/{EventListDialog-BlcxcO8a.js → EventListDialog-BshKrOuQ.js} +70 -62
- package/dist/EventListDialog-BshKrOuQ.js.map +1 -0
- package/dist/EventListDialog-D0iBpLSR.cjs +2 -0
- package/dist/EventListDialog-D0iBpLSR.cjs.map +1 -0
- package/dist/FilechecksumWidget-Ddlm1UED.cjs +2 -0
- package/dist/FilechecksumWidget-Ddlm1UED.cjs.map +1 -0
- package/dist/FilechecksumWidget-gcmXxJHl.js +158 -0
- package/dist/FilechecksumWidget-gcmXxJHl.js.map +1 -0
- package/dist/FiledisplayWidget-CYX4HChi.cjs +2 -0
- package/dist/FiledisplayWidget-CYX4HChi.cjs.map +1 -0
- package/dist/FiledisplayWidget-CqM549A4.js +114 -0
- package/dist/FiledisplayWidget-CqM549A4.js.map +1 -0
- package/dist/{FormatvalueWidget-Cm-HmAmw.js → FormatvalueWidget-BEwH0C7S.js} +4 -4
- package/dist/{FormatvalueWidget-Cm-HmAmw.js.map → FormatvalueWidget-BEwH0C7S.js.map} +1 -1
- package/dist/{FormatvalueWidget-AXH-VW-A.cjs → FormatvalueWidget-CpsyYKXD.cjs} +2 -2
- package/dist/{FormatvalueWidget-AXH-VW-A.cjs.map → FormatvalueWidget-CpsyYKXD.cjs.map} +1 -1
- package/dist/{Graph-BEodMaxQ.js → Graph-CbjlChwf.js} +93 -82
- package/dist/Graph-CbjlChwf.js.map +1 -0
- package/dist/Graph-kmTrth08.cjs +2 -0
- package/dist/Graph-kmTrth08.cjs.map +1 -0
- package/dist/{GraphWidget-CAADBFV-.js → GraphWidget-CjxnC0Dc.js} +2 -2
- package/dist/{GraphWidget-CAADBFV-.js.map → GraphWidget-CjxnC0Dc.js.map} +1 -1
- package/dist/{GraphWidget-B878ArE1.cjs → GraphWidget-SamHg2AA.cjs} +2 -2
- package/dist/{GraphWidget-B878ArE1.cjs.map → GraphWidget-SamHg2AA.cjs.map} +1 -1
- package/dist/HorizontalWidget-ByZjU21C.cjs +2 -0
- package/dist/HorizontalWidget-ByZjU21C.cjs.map +1 -0
- package/dist/HorizontalWidget-Dt8bkM3k.js +69 -0
- package/dist/HorizontalWidget-Dt8bkM3k.js.map +1 -0
- package/dist/{HorizontalboxWidget-CW9XX4uH.js → HorizontalboxWidget-CdAZ5Sa6.js} +6 -6
- package/dist/{HorizontalboxWidget-CW9XX4uH.js.map → HorizontalboxWidget-CdAZ5Sa6.js.map} +1 -1
- package/dist/{HorizontalboxWidget-BGzl7-Rt.cjs → HorizontalboxWidget-DzYz5SXs.cjs} +2 -2
- package/dist/{HorizontalboxWidget-BGzl7-Rt.cjs.map → HorizontalboxWidget-DzYz5SXs.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-x2u6MQNz.cjs → HorizontallineWidget-C8Zhqxik.cjs} +2 -2
- package/dist/{HorizontallineWidget-x2u6MQNz.cjs.map → HorizontallineWidget-C8Zhqxik.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-Cu2dDt7k.js → HorizontallineWidget-CXZJTeU2.js} +3 -3
- package/dist/{HorizontallineWidget-Cu2dDt7k.js.map → HorizontallineWidget-CXZJTeU2.js.map} +1 -1
- package/dist/{IframeWidget-B5simCWn.cjs → IframeWidget-BuNXXziR.cjs} +2 -2
- package/dist/{IframeWidget-B5simCWn.cjs.map → IframeWidget-BuNXXziR.cjs.map} +1 -1
- package/dist/{IframeWidget-BBU3MkSq.js → IframeWidget-CrcWiAVE.js} +3 -3
- package/dist/{IframeWidget-BBU3MkSq.js.map → IframeWidget-CrcWiAVE.js.map} +1 -1
- package/dist/{ImageLoader-Dj3MZVq9.cjs → ImageLoader-130w4tXJ.cjs} +2 -2
- package/dist/{ImageLoader-Dj3MZVq9.cjs.map → ImageLoader-130w4tXJ.cjs.map} +1 -1
- package/dist/{ImageLoader-XAGgjKkq.js → ImageLoader-DPqax8yu.js} +2 -2
- package/dist/{ImageLoader-XAGgjKkq.js.map → ImageLoader-DPqax8yu.js.map} +1 -1
- package/dist/{ImageviewerWidget-UByjeO63.js → ImageviewerWidget-CTEl6iPg.js} +10 -9
- package/dist/ImageviewerWidget-CTEl6iPg.js.map +1 -0
- package/dist/ImageviewerWidget-CafLbLp2.cjs +2 -0
- package/dist/ImageviewerWidget-CafLbLp2.cjs.map +1 -0
- package/dist/{InterfacesTab-6hli9fcg.js → InterfacesTab-B9ApLB5q.js} +4 -4
- package/dist/{InterfacesTab-6hli9fcg.js.map → InterfacesTab-B9ApLB5q.js.map} +1 -1
- package/dist/{InterfacesTab-B1CwBWFu.cjs → InterfacesTab-wPQSLcSj.cjs} +2 -2
- package/dist/{InterfacesTab-B1CwBWFu.cjs.map → InterfacesTab-wPQSLcSj.cjs.map} +1 -1
- package/dist/{LabelWidget-X4cBbl5N.cjs → LabelWidget-BfBP3Xme.cjs} +2 -2
- package/dist/{LabelWidget-X4cBbl5N.cjs.map → LabelWidget-BfBP3Xme.cjs.map} +1 -1
- package/dist/{LabelWidget-BsOpolUL.js → LabelWidget-CPqKGMx0.js} +3 -3
- package/dist/{LabelWidget-BsOpolUL.js.map → LabelWidget-CPqKGMx0.js.map} +1 -1
- package/dist/{LabelledWidget-DVOGpgZ-.js → LabelledWidget-BHYzRMFd.js} +6 -6
- package/dist/{LabelledWidget-DVOGpgZ-.js.map → LabelledWidget-BHYzRMFd.js.map} +1 -1
- package/dist/{LabelledWidget-DaHqSURc.cjs → LabelledWidget-CZvKfFNW.cjs} +2 -2
- package/dist/{LabelledWidget-DaHqSURc.cjs.map → LabelledWidget-CZvKfFNW.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-Cz3nXacL.cjs → LabelprogressbarWidget-Bv0G5oT3.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-Cz3nXacL.cjs.map → LabelprogressbarWidget-Bv0G5oT3.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-BeE9fDs6.js → LabelprogressbarWidget-D9deeUo7.js} +6 -6
- package/dist/{LabelprogressbarWidget-BeE9fDs6.js.map → LabelprogressbarWidget-D9deeUo7.js.map} +1 -1
- package/dist/{LabelsparklineWidget-Bj7trKML.js → LabelsparklineWidget-7mYre3CP.js} +13 -13
- package/dist/LabelsparklineWidget-7mYre3CP.js.map +1 -0
- package/dist/LabelsparklineWidget-dyqEroDN.cjs +2 -0
- package/dist/LabelsparklineWidget-dyqEroDN.cjs.map +1 -0
- package/dist/{LabelvalueWidget-D-sncwem.cjs → LabelvalueWidget-Bsl7Z3wM.cjs} +2 -2
- package/dist/{LabelvalueWidget-D-sncwem.cjs.map → LabelvalueWidget-Bsl7Z3wM.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-Dwqsh5o2.js → LabelvalueWidget-NLsD60n4.js} +6 -6
- package/dist/{LabelvalueWidget-Dwqsh5o2.js.map → LabelvalueWidget-NLsD60n4.js.map} +1 -1
- package/dist/{LabelvaluedescWidget-DmqG8dzJ.cjs → LabelvaluedescWidget-B_Xih-c5.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-DmqG8dzJ.cjs.map → LabelvaluedescWidget-B_Xih-c5.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-Cfu2vuja.js → LabelvaluedescWidget-DXROG4Gs.js} +6 -6
- package/dist/{LabelvaluedescWidget-Cfu2vuja.js.map → LabelvaluedescWidget-DXROG4Gs.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-_l7xjrX9.cjs → LabelvaluelimitsbarWidget-DDd0RIs5.cjs} +2 -2
- package/dist/LabelvaluelimitsbarWidget-DDd0RIs5.cjs.map +1 -0
- package/dist/{LabelvaluelimitsbarWidget-DYV68AJ_.js → LabelvaluelimitsbarWidget-DqVqHF4W.js} +10 -10
- package/dist/LabelvaluelimitsbarWidget-DqVqHF4W.js.map +1 -0
- package/dist/{LabelvaluelimitscolumnWidget-CtaoTixt.js → LabelvaluelimitscolumnWidget-BK6_31pC.js} +12 -12
- package/dist/LabelvaluelimitscolumnWidget-BK6_31pC.js.map +1 -0
- package/dist/LabelvaluelimitscolumnWidget-C1aqkXh5.cjs +2 -0
- package/dist/LabelvaluelimitscolumnWidget-C1aqkXh5.cjs.map +1 -0
- package/dist/{LabelvaluerangebarWidget-3EaUB6E6.js → LabelvaluerangebarWidget-DR7C8gqw.js} +6 -6
- package/dist/{LabelvaluerangebarWidget-3EaUB6E6.js.map → LabelvaluerangebarWidget-DR7C8gqw.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-BZTEfPQh.cjs → LabelvaluerangebarWidget-a8u5LXBD.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-BZTEfPQh.cjs.map → LabelvaluerangebarWidget-a8u5LXBD.cjs.map} +1 -1
- package/dist/Layout-B_Hgw3gd.js +36 -0
- package/dist/Layout-B_Hgw3gd.js.map +1 -0
- package/dist/Layout-CVGghwYm.cjs +2 -0
- package/dist/Layout-CVGghwYm.cjs.map +1 -0
- package/dist/{LedWidget-Gi6GXtrW.js → LedWidget-CiAVs2tj.js} +46 -39
- package/dist/LedWidget-CiAVs2tj.js.map +1 -0
- package/dist/LedWidget-Cmy47xfg.cjs +2 -0
- package/dist/LedWidget-Cmy47xfg.cjs.map +1 -0
- package/dist/LimitsBar-DTtMywOw.cjs +2 -0
- package/dist/LimitsBar-DTtMywOw.cjs.map +1 -0
- package/dist/LimitsBar-_UQG-M6e.js +134 -0
- package/dist/LimitsBar-_UQG-M6e.js.map +1 -0
- package/dist/LimitsbarWidget-CIwcOhC8.js +65 -0
- package/dist/LimitsbarWidget-CIwcOhC8.js.map +1 -0
- package/dist/LimitsbarWidget-CYm_f1FN.cjs +2 -0
- package/dist/LimitsbarWidget-CYm_f1FN.cjs.map +1 -0
- package/dist/{LimitscolorWidget-CFnmvlrA.js → LimitscolorWidget-CGPfJwvT.js} +14 -13
- package/dist/LimitscolorWidget-CGPfJwvT.js.map +1 -0
- package/dist/LimitscolorWidget-oH6NGl1C.cjs +2 -0
- package/dist/LimitscolorWidget-oH6NGl1C.cjs.map +1 -0
- package/dist/{LimitscolumnWidget-DSsz36tT.js → LimitscolumnWidget-Bj_UPEC8.js} +3 -3
- package/dist/{LimitscolumnWidget-DSsz36tT.js.map → LimitscolumnWidget-Bj_UPEC8.js.map} +1 -1
- package/dist/{LimitscolumnWidget-CXzLYznR.cjs → LimitscolumnWidget-CnGOCckG.cjs} +2 -2
- package/dist/{LimitscolumnWidget-CXzLYznR.cjs.map → LimitscolumnWidget-CnGOCckG.cjs.map} +1 -1
- package/dist/{LinegraphWidget-CeBijgDo.js → LinegraphWidget-DccnHbWa.js} +5 -5
- package/dist/{LinegraphWidget-CeBijgDo.js.map → LinegraphWidget-DccnHbWa.js.map} +1 -1
- package/dist/{LinegraphWidget-WVSJOuTE.cjs → LinegraphWidget-zHs3NG-6.cjs} +2 -2
- package/dist/{LinegraphWidget-WVSJOuTE.cjs.map → LinegraphWidget-zHs3NG-6.cjs.map} +1 -1
- package/dist/MatrixbycolumnsWidget-Dd-udu5V.cjs +2 -0
- package/dist/MatrixbycolumnsWidget-Dd-udu5V.cjs.map +1 -0
- package/dist/MatrixbycolumnsWidget-U_NZ6aW-.js +83 -0
- package/dist/MatrixbycolumnsWidget-U_NZ6aW-.js.map +1 -0
- package/dist/MicroservicesTab-DG3rdksb.js +203 -0
- package/dist/MicroservicesTab-DG3rdksb.js.map +1 -0
- package/dist/MicroservicesTab-DXgSxZ0K.cjs +2 -0
- package/dist/MicroservicesTab-DXgSxZ0K.cjs.map +1 -0
- package/dist/{Openc3Screen-iW_gaikc.js → Openc3Screen-CDwAWaTl.js} +56 -34
- package/dist/Openc3Screen-CDwAWaTl.js.map +1 -0
- package/dist/{Openc3Screen-DIN4KVsw.cjs → Openc3Screen-CKs-49JN.cjs} +5 -5
- package/dist/Openc3Screen-CKs-49JN.cjs.map +1 -0
- package/dist/OutputDialog-D2YCbR20.cjs +2 -0
- package/dist/OutputDialog-D2YCbR20.cjs.map +1 -0
- package/dist/{OutputDialog-BMzp6wy3.js → OutputDialog-Di-pSmJE.js} +24 -17
- package/dist/OutputDialog-Di-pSmJE.js.map +1 -0
- package/dist/{PackagesTab-BascLTCK.js → PackagesTab-Bui5q3rX.js} +4 -4
- package/dist/{PackagesTab-BascLTCK.js.map → PackagesTab-Bui5q3rX.js.map} +1 -1
- package/dist/{PackagesTab-D_1kbMkk.cjs → PackagesTab-C-fV9yxw.cjs} +2 -2
- package/dist/{PackagesTab-D_1kbMkk.cjs.map → PackagesTab-C-fV9yxw.cjs.map} +1 -1
- package/dist/{PluginsTab-CjYoMrbj.cjs → PluginsTab-DxxlKeVx.cjs} +2 -2
- package/dist/PluginsTab-DxxlKeVx.cjs.map +1 -0
- package/dist/{PluginsTab-Yz9HZqpp.js → PluginsTab-zR9eZuvc.js} +8 -8
- package/dist/PluginsTab-zR9eZuvc.js.map +1 -0
- package/dist/ProgressbarWidget-Cxvwcfgn.cjs +2 -0
- package/dist/ProgressbarWidget-Cxvwcfgn.cjs.map +1 -0
- package/dist/{ProgressbarWidget-DJepvOip.js → ProgressbarWidget-D4JtVzyk.js} +7 -5
- package/dist/ProgressbarWidget-D4JtVzyk.js.map +1 -0
- package/dist/{RadiobuttonWidget-4e8ROIfg.js → RadiobuttonWidget-BUaW7pRx.js} +11 -10
- package/dist/{RadiobuttonWidget-4e8ROIfg.js.map → RadiobuttonWidget-BUaW7pRx.js.map} +1 -1
- package/dist/RadiobuttonWidget-Ccgftl13.cjs +2 -0
- package/dist/{RadiobuttonWidget-D4Fka1eN.cjs.map → RadiobuttonWidget-Ccgftl13.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-DU9G6qLq.cjs → RadiogroupWidget-CSxjpxCr.cjs} +2 -2
- package/dist/{RadiogroupWidget-DU9G6qLq.cjs.map → RadiogroupWidget-CSxjpxCr.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-CUucj6aT.js → RadiogroupWidget-NIv4CaUQ.js} +6 -6
- package/dist/{RadiogroupWidget-CUucj6aT.js.map → RadiogroupWidget-NIv4CaUQ.js.map} +1 -1
- package/dist/{RangebarWidget-Bu4rqlrx.js → RangebarWidget-1-CsFpcl.js} +12 -11
- package/dist/RangebarWidget-1-CsFpcl.js.map +1 -0
- package/dist/RangebarWidget-BtxfPo-U.cjs +2 -0
- package/dist/RangebarWidget-BtxfPo-U.cjs.map +1 -0
- package/dist/{RedisTab-Dz4m_JfV.cjs → RedisTab-DOozcC9a.cjs} +2 -2
- package/dist/{RedisTab-Dz4m_JfV.cjs.map → RedisTab-DOozcC9a.cjs.map} +1 -1
- package/dist/{RedisTab-C00rFmdl.js → RedisTab-DuO-zUV3.js} +3 -3
- package/dist/{RedisTab-C00rFmdl.js.map → RedisTab-DuO-zUV3.js.map} +1 -1
- package/dist/RollupWidget-CQxl1mlr.cjs +2 -0
- package/dist/RollupWidget-CQxl1mlr.cjs.map +1 -0
- package/dist/{RollupWidget-ByLvEEau.js → RollupWidget-ChasTJYP.js} +15 -13
- package/dist/RollupWidget-ChasTJYP.js.map +1 -0
- package/dist/{RoutersTab-CEe4oS0x.js → RoutersTab-C0UHSj-S.js} +4 -4
- package/dist/{RoutersTab-CEe4oS0x.js.map → RoutersTab-C0UHSj-S.js.map} +1 -1
- package/dist/{RoutersTab-CyjPaVVb.cjs → RoutersTab-DgWAXGUv.cjs} +2 -2
- package/dist/{RoutersTab-CyjPaVVb.cjs.map → RoutersTab-DgWAXGUv.cjs.map} +1 -1
- package/dist/{ScriptChooser-CbVbI0x-.js → ScriptChooser-C5HHbbcP.js} +118 -93
- package/dist/ScriptChooser-C5HHbbcP.js.map +1 -0
- package/dist/ScriptChooser-D1dddugi.cjs +2 -0
- package/dist/ScriptChooser-D1dddugi.cjs.map +1 -0
- package/dist/ScrollwindowWidget-Bkyjw0Qt.cjs +2 -0
- package/dist/ScrollwindowWidget-Bkyjw0Qt.cjs.map +1 -0
- package/dist/ScrollwindowWidget-Y2J758y6.js +69 -0
- package/dist/ScrollwindowWidget-Y2J758y6.js.map +1 -0
- package/dist/{SecretsTab-B07A5MeK.cjs → SecretsTab-Ds3kGOmd.cjs} +2 -2
- package/dist/{SecretsTab-B07A5MeK.cjs.map → SecretsTab-Ds3kGOmd.cjs.map} +1 -1
- package/dist/{SecretsTab-DFrxV8Q8.js → SecretsTab-c5g8Zk4g.js} +3 -3
- package/dist/{SecretsTab-DFrxV8Q8.js.map → SecretsTab-c5g8Zk4g.js.map} +1 -1
- package/dist/{SettingsTab-CpLxrjTc.js → SettingsTab-CTd3_Ipy.js} +74 -70
- package/dist/SettingsTab-CTd3_Ipy.js.map +1 -0
- package/dist/SettingsTab-DMPRJELP.cjs +3 -0
- package/dist/SettingsTab-DMPRJELP.cjs.map +1 -0
- package/dist/SignalWidget-BkTXZpGV.cjs +2 -0
- package/dist/SignalWidget-BkTXZpGV.cjs.map +1 -0
- package/dist/{SignalWidget-qvL2YZJA.js → SignalWidget-DFhHDicI.js} +5 -3
- package/dist/SignalWidget-DFhHDicI.js.map +1 -0
- package/dist/{SimpleTextDialog--iSWgPgq.js → SimpleTextDialog-CXIEKlX0.js} +26 -19
- package/dist/SimpleTextDialog-CXIEKlX0.js.map +1 -0
- package/dist/SimpleTextDialog-Dv5ypyUQ.cjs +2 -0
- package/dist/SimpleTextDialog-Dv5ypyUQ.cjs.map +1 -0
- package/dist/{SpacerWidget-CaWx41K7.js → SpacerWidget-D4KojaGb.js} +3 -3
- package/dist/{SpacerWidget-CaWx41K7.js.map → SpacerWidget-D4KojaGb.js.map} +1 -1
- package/dist/{SpacerWidget-CUrYZDLP.cjs → SpacerWidget-HsSCc07C.cjs} +2 -2
- package/dist/{SpacerWidget-CUrYZDLP.cjs.map → SpacerWidget-HsSCc07C.cjs.map} +1 -1
- package/dist/SparklineWidget-BdRM-ymk.cjs +2 -0
- package/dist/SparklineWidget-BdRM-ymk.cjs.map +1 -0
- package/dist/{SparklineWidget-BkNSRypJ.js → SparklineWidget-DMHFzw8L.js} +11 -11
- package/dist/SparklineWidget-DMHFzw8L.js.map +1 -0
- package/dist/TabbookWidget-NVLYMdFG.js +96 -0
- package/dist/TabbookWidget-NVLYMdFG.js.map +1 -0
- package/dist/TabbookWidget-NmIK-Lgf.cjs +2 -0
- package/dist/TabbookWidget-NmIK-Lgf.cjs.map +1 -0
- package/dist/TargetPacketItemChooser-B0IVMSib.cjs +2 -0
- package/dist/TargetPacketItemChooser-B0IVMSib.cjs.map +1 -0
- package/dist/{TargetPacketItemChooser-oSQHf8Ht.js → TargetPacketItemChooser-D5h9Octy.js} +83 -67
- package/dist/TargetPacketItemChooser-D5h9Octy.js.map +1 -0
- package/dist/{TargetsTab-DwFb3_1K.cjs → TargetsTab-JLjpJ1wn.cjs} +2 -2
- package/dist/{TargetsTab-DwFb3_1K.cjs.map → TargetsTab-JLjpJ1wn.cjs.map} +1 -1
- package/dist/{TargetsTab-B6tf2hKl.js → TargetsTab-b35HgnRl.js} +4 -4
- package/dist/{TargetsTab-B6tf2hKl.js.map → TargetsTab-b35HgnRl.js.map} +1 -1
- package/dist/{TextBoxDialog-Xs-gitZd.js → TextBoxDialog-CJHrE2Sh.js} +29 -22
- package/dist/TextBoxDialog-CJHrE2Sh.js.map +1 -0
- package/dist/TextBoxDialog-DzCvdsJj.cjs +2 -0
- package/dist/TextBoxDialog-DzCvdsJj.cjs.map +1 -0
- package/dist/{TextboxWidget-DbwpPVGB.js → TextboxWidget-CrMYPQIF.js} +19 -19
- package/dist/{TextboxWidget-DbwpPVGB.js.map → TextboxWidget-CrMYPQIF.js.map} +1 -1
- package/dist/{TextboxWidget-CPmQEhMm.cjs → TextboxWidget-xk3OFSUZ.cjs} +2 -2
- package/dist/{TextboxWidget-CPmQEhMm.cjs.map → TextboxWidget-xk3OFSUZ.cjs.map} +1 -1
- package/dist/{TextfieldWidget-DzMlTMYW.js → TextfieldWidget-DMBQwtnb.js} +5 -5
- package/dist/{TextfieldWidget-DzMlTMYW.js.map → TextfieldWidget-DMBQwtnb.js.map} +1 -1
- package/dist/{TextfieldWidget-BzaNs7J4.cjs → TextfieldWidget-DnnKM6vS.cjs} +2 -2
- package/dist/{TextfieldWidget-BzaNs7J4.cjs.map → TextfieldWidget-DnnKM6vS.cjs.map} +1 -1
- package/dist/{TimeWidget-BHybAfg8.js → TimeWidget-CWLJZ2bt.js} +3 -3
- package/dist/{TimeWidget-BHybAfg8.js.map → TimeWidget-CWLJZ2bt.js.map} +1 -1
- package/dist/{TimeWidget-DksEVe5c.cjs → TimeWidget-W-flXfLb.cjs} +2 -2
- package/dist/{TimeWidget-DksEVe5c.cjs.map → TimeWidget-W-flXfLb.cjs.map} +1 -1
- package/dist/{TitleWidget-C7_pj0lU.cjs → TitleWidget-CfFyUkSu.cjs} +2 -2
- package/dist/{TitleWidget-C7_pj0lU.cjs.map → TitleWidget-CfFyUkSu.cjs.map} +1 -1
- package/dist/{TitleWidget-DL_sE5YE.js → TitleWidget-V1FGI8l3.js} +3 -3
- package/dist/{TitleWidget-DL_sE5YE.js.map → TitleWidget-V1FGI8l3.js.map} +1 -1
- package/dist/{ToolsTab-CXoxIck8.js → ToolsTab-7qOQPnN3.js} +4 -4
- package/dist/{ToolsTab-CXoxIck8.js.map → ToolsTab-7qOQPnN3.js.map} +1 -1
- package/dist/{ToolsTab-DTL8ujgd.cjs → ToolsTab-jUNdj09m.cjs} +2 -2
- package/dist/{ToolsTab-DTL8ujgd.cjs.map → ToolsTab-jUNdj09m.cjs.map} +1 -1
- package/dist/{TopBar-B8LJESUg.js → TopBar-BkwvK0oj.js} +3 -3
- package/dist/{TopBar-B8LJESUg.js.map → TopBar-BkwvK0oj.js.map} +1 -1
- package/dist/{TopBar-CGSMcenK.cjs → TopBar-DdOFDiCo.cjs} +2 -2
- package/dist/{TopBar-CGSMcenK.cjs.map → TopBar-DdOFDiCo.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-CqnhQ8So.js → UpgradeToEnterpriseDialog-CEUcvlkx.js} +16 -13
- package/dist/UpgradeToEnterpriseDialog-CEUcvlkx.js.map +1 -0
- package/dist/UpgradeToEnterpriseDialog-CP-jJxU4.cjs +2 -0
- package/dist/UpgradeToEnterpriseDialog-CP-jJxU4.cjs.map +1 -0
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-RGlL9jUF.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs} +70 -70
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-RGlL9jUF.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C3WTK6F-.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js} +9 -9
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js.map +1 -0
- package/dist/{VWidget-CTcOKw09.cjs → VWidget-BJArPtqI.cjs} +2 -2
- package/dist/{VWidget-CTcOKw09.cjs.map → VWidget-BJArPtqI.cjs.map} +1 -1
- package/dist/{VWidget-D06LY-Yc.js → VWidget-rAFU-0vj.js} +3 -3
- package/dist/{VWidget-D06LY-Yc.js.map → VWidget-rAFU-0vj.js.map} +1 -1
- package/dist/ValueWidget-BI3uXmda.js +138 -0
- package/dist/ValueWidget-BI3uXmda.js.map +1 -0
- package/dist/ValueWidget-CwuH7beM.cjs +2 -0
- package/dist/ValueWidget-CwuH7beM.cjs.map +1 -0
- package/dist/{ValuelimitsbarWidget-CmpyPO-1.js → ValuelimitsbarWidget-BGSJLpw4.js} +11 -11
- package/dist/{ValuelimitsbarWidget-CmpyPO-1.js.map → ValuelimitsbarWidget-BGSJLpw4.js.map} +1 -1
- package/dist/{ValuelimitsbarWidget-_lEKCmQl.cjs → ValuelimitsbarWidget-BSkGhA_y.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-_lEKCmQl.cjs.map → ValuelimitsbarWidget-BSkGhA_y.cjs.map} +1 -1
- package/dist/ValuelimitscolumnWidget-BXdPahDO.cjs +2 -0
- package/dist/ValuelimitscolumnWidget-BXdPahDO.cjs.map +1 -0
- package/dist/{ValuelimitscolumnWidget-jzxrQd-f.js → ValuelimitscolumnWidget-CaNjHy4v.js} +11 -11
- package/dist/ValuelimitscolumnWidget-CaNjHy4v.js.map +1 -0
- package/dist/{ValuerangebarWidget-C8ckuAeh.js → ValuerangebarWidget-Do40-aaL.js} +6 -6
- package/dist/{ValuerangebarWidget-C8ckuAeh.js.map → ValuerangebarWidget-Do40-aaL.js.map} +1 -1
- package/dist/{ValuerangebarWidget-lXHRe4YZ.cjs → ValuerangebarWidget-DvWGqBNM.cjs} +2 -2
- package/dist/{ValuerangebarWidget-lXHRe4YZ.cjs.map → ValuerangebarWidget-DvWGqBNM.cjs.map} +1 -1
- package/dist/VerticalWidget-DZqghqIm.js +68 -0
- package/dist/VerticalWidget-DZqghqIm.js.map +1 -0
- package/dist/VerticalWidget-y238HI2A.cjs +2 -0
- package/dist/VerticalWidget-y238HI2A.cjs.map +1 -0
- package/dist/{VerticalboxWidget-1FHkgmf0.cjs → VerticalboxWidget--dgKnG5Z.cjs} +2 -2
- package/dist/{VerticalboxWidget-1FHkgmf0.cjs.map → VerticalboxWidget--dgKnG5Z.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-CiJZDlHJ.js → VerticalboxWidget-CQ__4FcS.js} +6 -6
- package/dist/{VerticalboxWidget-CiJZDlHJ.js.map → VerticalboxWidget-CQ__4FcS.js.map} +1 -1
- package/dist/{Widget-DXvVFSH5.js → Widget-6-Nvewdp.js} +27 -19
- package/dist/Widget-6-Nvewdp.js.map +1 -0
- package/dist/Widget-DdxHKVWn.cjs +2 -0
- package/dist/Widget-DdxHKVWn.cjs.map +1 -0
- package/dist/components.cjs +3 -3
- package/dist/components.cjs.map +1 -1
- package/dist/components.js +96 -88
- package/dist/components.js.map +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +6 -4
- package/dist/icons.js.map +1 -1
- package/dist/plugins.cjs +2 -2
- package/dist/plugins.cjs.map +1 -1
- package/dist/plugins.js +24 -18
- package/dist/plugins.js.map +1 -1
- package/dist/purify.es-B608WQkR.cjs +3 -0
- package/dist/purify.es-B608WQkR.cjs.map +1 -0
- package/dist/{purify.es-BuxjWxA2.js → purify.es-BGaRrCfO.js} +144 -144
- package/dist/purify.es-BGaRrCfO.js.map +1 -0
- package/dist/{settings-s8NuYKD-.cjs → settings-BCE3SW-9.cjs} +2 -2
- package/dist/{settings-s8NuYKD-.cjs.map → settings-BCE3SW-9.cjs.map} +1 -1
- package/dist/{settings-DRNFiuf0.js → settings-CHPWZcnU.js} +2 -2
- package/dist/{settings-DRNFiuf0.js.map → settings-CHPWZcnU.js.map} +1 -1
- package/dist/tools/admin.cjs +1 -1
- package/dist/tools/admin.cjs.map +1 -1
- package/dist/tools/admin.js +72 -64
- package/dist/tools/admin.js.map +1 -1
- package/dist/tools/base.cjs +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.js +39 -38
- package/dist/tools/base.js.map +1 -1
- 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 +1054 -994
- package/dist/tools/scriptrunner.js.map +1 -1
- package/dist/useContainerHeight-BAw05dIa.js.map +1 -1
- package/dist/useContainerHeight-BEd4f2Lr.cjs.map +1 -1
- package/dist/vue-common.css +1 -1
- package/dist/widgets.cjs +1 -1
- package/dist/widgets.js +118 -116
- package/dist/widgets.js.map +1 -1
- package/package.json +8 -8
- package/dist/BarColumn-BdIaQfOz.js.map +0 -1
- package/dist/BarColumn-C5VfAEOx.cjs +0 -2
- package/dist/BarColumn-C5VfAEOx.cjs.map +0 -1
- package/dist/ButtonWidget-CFbjdxSr.js.map +0 -1
- package/dist/ButtonWidget-DV33-G5z.cjs.map +0 -1
- package/dist/CanvasimageWidget-CCwRuLep.cjs +0 -2
- package/dist/CanvasimageWidget-CCwRuLep.cjs.map +0 -1
- package/dist/CanvasimageWidget-ULQq3nqZ.js.map +0 -1
- package/dist/CanvasimagevalueWidget-NZYl_3mA.cjs +0 -2
- package/dist/CanvasimagevalueWidget-NZYl_3mA.cjs.map +0 -1
- package/dist/CanvasimagevalueWidget-jFCVXYhi.js.map +0 -1
- package/dist/CanvaslabelvalueWidget-C4REgztL.js.map +0 -1
- package/dist/CanvaslabelvalueWidget-CJCZdHId.cjs +0 -2
- package/dist/CanvaslabelvalueWidget-CJCZdHId.cjs.map +0 -1
- package/dist/CanvaslinevalueWidget-597khOSA.js.map +0 -1
- package/dist/CanvaslinevalueWidget-bChpy38C.cjs +0 -2
- package/dist/CanvaslinevalueWidget-bChpy38C.cjs.map +0 -1
- package/dist/CheckbuttonWidget-BwDttJTf.cjs +0 -2
- package/dist/ComboboxWidget-DkBtLQ41.cjs +0 -2
- package/dist/CriticalCmdDialog-C4DRtDnA.cjs +0 -2
- package/dist/CriticalCmdDialog-C4DRtDnA.cjs.map +0 -1
- package/dist/CriticalCmdDialog-CVLyYtng.js.map +0 -1
- package/dist/CustomIcon-eie3rPKh.cjs +0 -2
- package/dist/DetailsDialog-Brv3nVs3.cjs +0 -2
- package/dist/DetailsDialog-Brv3nVs3.cjs.map +0 -1
- package/dist/DetailsDialog-q9piPmHq.js.map +0 -1
- package/dist/DynamicWidget-BNfJRfR5.cjs +0 -2
- package/dist/DynamicWidget-BNfJRfR5.cjs.map +0 -1
- package/dist/DynamicWidget-DHL7pbgW.js.map +0 -1
- package/dist/EventListDialog-BlcxcO8a.js.map +0 -1
- package/dist/EventListDialog-DXIYmkWb.cjs +0 -2
- package/dist/EventListDialog-DXIYmkWb.cjs.map +0 -1
- package/dist/Graph-BEodMaxQ.js.map +0 -1
- package/dist/Graph-wDFY6Kd7.cjs +0 -2
- package/dist/Graph-wDFY6Kd7.cjs.map +0 -1
- package/dist/HorizontalWidget-D2lXnQqQ.cjs +0 -2
- package/dist/HorizontalWidget-D2lXnQqQ.cjs.map +0 -1
- package/dist/HorizontalWidget-NcXIXxh7.js +0 -41
- package/dist/HorizontalWidget-NcXIXxh7.js.map +0 -1
- package/dist/ImageviewerWidget-BtuiORhN.cjs +0 -2
- package/dist/ImageviewerWidget-BtuiORhN.cjs.map +0 -1
- package/dist/ImageviewerWidget-UByjeO63.js.map +0 -1
- package/dist/LabelsparklineWidget-Bj7trKML.js.map +0 -1
- package/dist/LabelsparklineWidget-Bns8kwBj.cjs +0 -2
- package/dist/LabelsparklineWidget-Bns8kwBj.cjs.map +0 -1
- package/dist/LabelvaluelimitsbarWidget-DYV68AJ_.js.map +0 -1
- package/dist/LabelvaluelimitsbarWidget-_l7xjrX9.cjs.map +0 -1
- package/dist/LabelvaluelimitscolumnWidget-CtaoTixt.js.map +0 -1
- package/dist/LabelvaluelimitscolumnWidget-D0WEVZMc.cjs +0 -2
- package/dist/LabelvaluelimitscolumnWidget-D0WEVZMc.cjs.map +0 -1
- package/dist/Layout-DNR3xnku.js +0 -14
- package/dist/Layout-DNR3xnku.js.map +0 -1
- package/dist/Layout-U0MXDxLO.cjs +0 -2
- package/dist/Layout-U0MXDxLO.cjs.map +0 -1
- package/dist/LedWidget-Gi6GXtrW.js.map +0 -1
- package/dist/LedWidget-MAyRDM2n.cjs +0 -2
- package/dist/LedWidget-MAyRDM2n.cjs.map +0 -1
- package/dist/LimitsbarWidget-BTZQY9XQ.js +0 -72
- package/dist/LimitsbarWidget-BTZQY9XQ.js.map +0 -1
- package/dist/LimitsbarWidget-ytyfCphX.cjs +0 -2
- package/dist/LimitsbarWidget-ytyfCphX.cjs.map +0 -1
- package/dist/LimitscolorWidget-CFnmvlrA.js.map +0 -1
- package/dist/LimitscolorWidget-CeZYYSQn.cjs +0 -2
- package/dist/LimitscolorWidget-CeZYYSQn.cjs.map +0 -1
- package/dist/MatrixbycolumnsWidget-COWMt_-r.cjs +0 -2
- package/dist/MatrixbycolumnsWidget-COWMt_-r.cjs.map +0 -1
- package/dist/MatrixbycolumnsWidget-DX9uhjAv.js +0 -56
- package/dist/MatrixbycolumnsWidget-DX9uhjAv.js.map +0 -1
- package/dist/MicroservicesTab-BSSCh5Ss.js +0 -219
- package/dist/MicroservicesTab-BSSCh5Ss.js.map +0 -1
- package/dist/MicroservicesTab-Btw8r_9N.cjs +0 -2
- package/dist/MicroservicesTab-Btw8r_9N.cjs.map +0 -1
- package/dist/Openc3Screen-DIN4KVsw.cjs.map +0 -1
- package/dist/Openc3Screen-iW_gaikc.js.map +0 -1
- package/dist/OutputDialog-BMzp6wy3.js.map +0 -1
- package/dist/OutputDialog-CKObLICh.cjs +0 -2
- package/dist/OutputDialog-CKObLICh.cjs.map +0 -1
- package/dist/PluginsTab-CjYoMrbj.cjs.map +0 -1
- package/dist/PluginsTab-Yz9HZqpp.js.map +0 -1
- package/dist/ProgressbarWidget-BUSOhcZ3.cjs +0 -2
- package/dist/ProgressbarWidget-BUSOhcZ3.cjs.map +0 -1
- package/dist/ProgressbarWidget-DJepvOip.js.map +0 -1
- package/dist/RadiobuttonWidget-D4Fka1eN.cjs +0 -2
- package/dist/RangebarWidget-Bu4rqlrx.js.map +0 -1
- package/dist/RangebarWidget-DlMJo2o3.cjs +0 -2
- package/dist/RangebarWidget-DlMJo2o3.cjs.map +0 -1
- package/dist/RollupWidget-ByLvEEau.js.map +0 -1
- package/dist/RollupWidget-D-Dx6Dkx.cjs +0 -2
- package/dist/RollupWidget-D-Dx6Dkx.cjs.map +0 -1
- package/dist/ScriptChooser-B83Pgq2H.cjs +0 -2
- package/dist/ScriptChooser-B83Pgq2H.cjs.map +0 -1
- package/dist/ScriptChooser-CbVbI0x-.js.map +0 -1
- package/dist/ScrollwindowWidget-0UcfntpY.cjs +0 -2
- package/dist/ScrollwindowWidget-0UcfntpY.cjs.map +0 -1
- package/dist/ScrollwindowWidget-CXJ9QGN1.js +0 -45
- package/dist/ScrollwindowWidget-CXJ9QGN1.js.map +0 -1
- package/dist/SettingsTab-CDaG6VS1.cjs +0 -3
- package/dist/SettingsTab-CDaG6VS1.cjs.map +0 -1
- package/dist/SettingsTab-CpLxrjTc.js.map +0 -1
- package/dist/SignalWidget-DhS8nGJu.cjs +0 -2
- package/dist/SignalWidget-DhS8nGJu.cjs.map +0 -1
- package/dist/SignalWidget-qvL2YZJA.js.map +0 -1
- package/dist/SimpleTextDialog--iSWgPgq.js.map +0 -1
- package/dist/SimpleTextDialog-tZ7qO1zq.cjs +0 -2
- package/dist/SimpleTextDialog-tZ7qO1zq.cjs.map +0 -1
- package/dist/SparklineWidget-BOnHnJOh.cjs +0 -2
- package/dist/SparklineWidget-BOnHnJOh.cjs.map +0 -1
- package/dist/SparklineWidget-BkNSRypJ.js.map +0 -1
- package/dist/TabbookWidget-BTvyYn7i.cjs +0 -2
- package/dist/TabbookWidget-BTvyYn7i.cjs.map +0 -1
- package/dist/TabbookWidget-MsrRG1vn.js +0 -66
- package/dist/TabbookWidget-MsrRG1vn.js.map +0 -1
- package/dist/TargetPacketItemChooser-CmjEcxN3.cjs +0 -2
- package/dist/TargetPacketItemChooser-CmjEcxN3.cjs.map +0 -1
- package/dist/TargetPacketItemChooser-oSQHf8Ht.js.map +0 -1
- package/dist/TextBoxDialog-DXG7H7kQ.cjs +0 -2
- package/dist/TextBoxDialog-DXG7H7kQ.cjs.map +0 -1
- package/dist/TextBoxDialog-Xs-gitZd.js.map +0 -1
- package/dist/UpgradeToEnterpriseDialog-CqnhQ8So.js.map +0 -1
- package/dist/UpgradeToEnterpriseDialog-Dv_egyCM.cjs +0 -2
- package/dist/UpgradeToEnterpriseDialog-Dv_egyCM.cjs.map +0 -1
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C3WTK6F-.js.map +0 -1
- package/dist/ValueWidget-C2qn7lVq.cjs +0 -2
- package/dist/ValueWidget-C2qn7lVq.cjs.map +0 -1
- package/dist/ValueWidget-CGT0LV_n.js +0 -118
- package/dist/ValueWidget-CGT0LV_n.js.map +0 -1
- package/dist/ValuelimitscolumnWidget-0urjo-hR.cjs +0 -2
- package/dist/ValuelimitscolumnWidget-0urjo-hR.cjs.map +0 -1
- package/dist/ValuelimitscolumnWidget-jzxrQd-f.js.map +0 -1
- package/dist/VerticalWidget-XBSrdA2c.cjs +0 -2
- package/dist/VerticalWidget-XBSrdA2c.cjs.map +0 -1
- package/dist/VerticalWidget-qN82km_m.js +0 -40
- package/dist/VerticalWidget-qN82km_m.js.map +0 -1
- package/dist/Widget-BwvnfXRa.cjs +0 -2
- package/dist/Widget-BwvnfXRa.cjs.map +0 -1
- package/dist/Widget-DXvVFSH5.js.map +0 -1
- package/dist/purify.es-BuxjWxA2.js.map +0 -1
- package/dist/purify.es-d7tb6jjJ.cjs +0 -3
- package/dist/purify.es-d7tb6jjJ.cjs.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { resolveComponent as
|
|
3
|
-
import { _ as v } from "./CustomIcon-
|
|
1
|
+
import { a as i, y as w } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
|
|
2
|
+
import { resolveComponent as r, createBlock as y, openBlock as M, withCtx as l, createVNode as s, createElementVNode as p, toDisplayString as k, createTextVNode as x } from "vue";
|
|
3
|
+
import { _ as v } from "./CustomIcon-B9m73Gqm.js";
|
|
4
4
|
const q = {
|
|
5
5
|
methods: {
|
|
6
6
|
buildLanguageMode(t, e) {
|
|
7
|
-
let o = i.require("ace/lib/oop"), c = Object.getOwnPropertyNames(w.prototype).filter((
|
|
7
|
+
let o = i.require("ace/lib/oop"), c = Object.getOwnPropertyNames(w.prototype).filter((d) => d !== "constructor").filter((d) => d !== "exec").concat([
|
|
8
8
|
"check",
|
|
9
9
|
"check_raw",
|
|
10
10
|
"check_formatted",
|
|
@@ -27,8 +27,8 @@ const q = {
|
|
|
27
27
|
"get_max_output"
|
|
28
28
|
]), u = new RegExp(`(\\b${c.join("\\b|\\b")}\\b)`), n = function() {
|
|
29
29
|
t.call(this);
|
|
30
|
-
for (let
|
|
31
|
-
this.$rules[
|
|
30
|
+
for (let d in this.$rules)
|
|
31
|
+
this.$rules[d].unshift({
|
|
32
32
|
regex: u,
|
|
33
33
|
token: "support.function"
|
|
34
34
|
});
|
|
@@ -91,14 +91,21 @@ const q = {
|
|
|
91
91
|
type: String,
|
|
92
92
|
required: !0
|
|
93
93
|
},
|
|
94
|
-
type:
|
|
95
|
-
|
|
94
|
+
type: {
|
|
95
|
+
type: String,
|
|
96
|
+
default: null
|
|
97
|
+
},
|
|
98
|
+
name: {
|
|
99
|
+
type: String,
|
|
100
|
+
default: null
|
|
101
|
+
},
|
|
96
102
|
modelValue: Boolean,
|
|
97
103
|
filename: {
|
|
98
104
|
type: String,
|
|
99
|
-
|
|
105
|
+
default: null
|
|
100
106
|
}
|
|
101
107
|
},
|
|
108
|
+
emits: ["update:modelValue"],
|
|
102
109
|
data() {
|
|
103
110
|
return {
|
|
104
111
|
editor: null,
|
|
@@ -161,13 +168,13 @@ const q = {
|
|
|
161
168
|
o.href = URL.createObjectURL(t), o.setAttribute("download", e), o.click();
|
|
162
169
|
}
|
|
163
170
|
}
|
|
164
|
-
}, $ = ["textContent"], C = { class: "mx-2" },
|
|
171
|
+
}, $ = ["textContent"], C = { class: "mx-2" }, V = {
|
|
165
172
|
ref: "editor",
|
|
166
173
|
class: "editor"
|
|
167
174
|
};
|
|
168
|
-
function
|
|
169
|
-
const a =
|
|
170
|
-
return
|
|
175
|
+
function O(t, e, o, c, u, n) {
|
|
176
|
+
const a = r("v-spacer"), h = r("v-btn"), _ = r("v-toolbar"), d = r("v-card-text"), g = r("v-card-actions"), f = r("v-card"), b = r("v-dialog");
|
|
177
|
+
return M(), y(b, {
|
|
171
178
|
modelValue: n.show,
|
|
172
179
|
"onUpdate:modelValue": e[1] || (e[1] = (m) => n.show = m),
|
|
173
180
|
width: "85vw"
|
|
@@ -194,9 +201,9 @@ function V(t, e, o, c, u, n) {
|
|
|
194
201
|
]),
|
|
195
202
|
_: 1
|
|
196
203
|
}),
|
|
197
|
-
s(
|
|
204
|
+
s(d, null, {
|
|
198
205
|
default: l(() => [
|
|
199
|
-
p("pre",
|
|
206
|
+
p("pre", V, null, 512)
|
|
200
207
|
]),
|
|
201
208
|
_: 1
|
|
202
209
|
}),
|
|
@@ -222,9 +229,9 @@ function V(t, e, o, c, u, n) {
|
|
|
222
229
|
_: 1
|
|
223
230
|
}, 8, ["modelValue"]);
|
|
224
231
|
}
|
|
225
|
-
const E = /* @__PURE__ */ v(R, [["render",
|
|
232
|
+
const E = /* @__PURE__ */ v(R, [["render", O], ["__scopeId", "data-v-e0692b60"]]);
|
|
226
233
|
export {
|
|
227
234
|
q as A,
|
|
228
235
|
E as O
|
|
229
236
|
};
|
|
230
|
-
//# sourceMappingURL=OutputDialog-
|
|
237
|
+
//# sourceMappingURL=OutputDialog-Di-pSmJE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutputDialog-Di-pSmJE.js","sources":["../src/components/ace/AceEditorModes.js","../src/components/OutputDialog.vue"],"sourcesContent":["/*\n# Copyright 2024 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 * 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/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-markdown'\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 { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n methods: {\n buildLanguageMode(HighlightRules, FoldMode) {\n let oop = ace.require('ace/lib/oop')\n let apis = Object.getOwnPropertyNames(OpenC3Api.prototype)\n .filter((a) => a !== 'constructor')\n .filter((a) => a !== 'exec')\n // Add the Public apis in api_shared but not in OpenC3Api\n .concat([\n 'check',\n 'check_raw',\n 'check_formatted',\n 'check_with_units',\n 'check_exception',\n 'check_tolerance',\n 'check_expression',\n 'wait',\n 'wait_tolerance',\n 'wait_expression',\n 'wait_check',\n 'wait_check_tolerance',\n 'wait_check_expression',\n 'wait_packet',\n 'wait_check_packet',\n 'disable_instrumentation',\n 'set_line_delay',\n 'get_line_delay',\n 'set_max_output',\n 'get_max_output',\n ])\n let regex = new RegExp(`(\\\\b${apis.join('\\\\b|\\\\b')}\\\\b)`)\n let OpenC3HighlightRules = function () {\n HighlightRules.call(this)\n // add openc3 rules to the rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(OpenC3HighlightRules, HighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let Mode = function () {\n this.HighlightRules = OpenC3HighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n return [oop, Mode]\n },\n buildRubyMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/ruby_highlight_rules').RubyHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildPythonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/python_highlight_rules').PythonHighlightRules,\n ace.require('ace/mode/folding/pythonic').FoldMode,\n )\n let PythonMode = ace.require('ace/mode/python').Mode\n oop.inherits(Mode, PythonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildJsonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/json_highlight_rules').JsonHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let JsonMode = ace.require('ace/mode/json').Mode\n oop.inherits(Mode, JsonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildMarkdownMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/markdown_highlight_rules').MarkdownHighlightRules,\n ace.require('ace/mode/folding/markdown').FoldMode,\n )\n let MarkdownMode = ace.require('ace/mode/markdown').Mode\n oop.inherits(Mode, MarkdownMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\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 2025, 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\" width=\"85vw\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <div class=\"mx-2\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n data-test=\"downloadIcon\"\n @click=\"download\"\n />\n </div>\n </v-toolbar>\n <v-card-text>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-card-text>\n <v-card-actions class=\"pr-6 pb-4 pt-0\">\n <v-spacer />\n <v-btn variant=\"flat\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { AceEditorModes } from './ace'\n\nexport default {\n mixins: [AceEditorModes],\n props: {\n content: {\n type: String,\n required: true,\n },\n type: {\n type: String,\n default: null,\n },\n name: {\n type: String,\n default: null,\n },\n modelValue: Boolean,\n filename: {\n type: String,\n default: null,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n editor: null,\n mode: null,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n let languageMode = null\n const fileExtension = this.filename ? this.filename.split('.').pop() : 'txt'\n switch (fileExtension) {\n case 'json':\n const JsonMode = this.buildJsonMode()\n languageMode = new JsonMode()\n this.editor.setOptions({\n useWorker: false,\n })\n break\n case 'py':\n case 'pyi':\n const PythonMode = this.buildPythonMode()\n languageMode = new PythonMode()\n break\n case 'md':\n const MarkdownMode = this.buildMarkdownMode()\n languageMode = new MarkdownMode()\n break\n default:\n // Most of the COSMOS text files are best display in Ruby\n // This includes Rakefiles, Gemfiles, etc.\n const RubyMode = this.buildRubyMode()\n languageMode = new RubyMode()\n break\n }\n this.editor.session.setMode(languageMode)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n this.editor.focus()\n this.editor.setReadOnly(true)\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n methods: {\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n let filename = `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`\n if (this.filename) {\n filename = this.filename\n }\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', filename)\n link.click()\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 75vh;\n position: relative;\n font-size: 16px;\n}\n\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["AceEditorModes","HighlightRules","FoldMode","oop","ace.require","apis","OpenC3Api","a","regex","OpenC3HighlightRules","rule","MatchingBraceOutdent","CstyleBehaviour","Mode","RubyMode","PythonMode","JsonMode","MarkdownMode","_sfc_main","value","languageMode","blob","filename","link","_hoisted_2","_createBlock","_component_v_dialog","$options","$event","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_toDisplayString","_component_v_btn","_component_v_card_text","_hoisted_3","_component_v_card_actions","_cache"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { f as g } from "./UpgradeToEnterpriseDialog.
|
|
1
|
+
import { f as g } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
|
|
2
2
|
import { resolveComponent as n, createElementBlock as p, openBlock as u, createVNode as e, createBlock as I, createCommentVNode as U, withCtx as t, createElementVNode as f, createTextVNode as c, Fragment as x, renderList as P, createSlots as L, toDisplayString as h, normalizeClass as N, mergeProps as R } from "vue";
|
|
3
|
-
import { _ as $ } from "./CustomIcon-
|
|
3
|
+
import { _ as $ } from "./CustomIcon-B9m73Gqm.js";
|
|
4
4
|
import "single-spa";
|
|
5
|
-
import { S as B } from "./SimpleTextDialog
|
|
5
|
+
import { S as B } from "./SimpleTextDialog-CXIEKlX0.js";
|
|
6
6
|
import { DownloadDialog as M } from "./tools/admin.js";
|
|
7
7
|
import { f as j, t as A } from "./format-CVeawcIv.js";
|
|
8
8
|
const G = {
|
|
@@ -310,4 +310,4 @@ const Z = /* @__PURE__ */ $(G, [["render", E], ["__scopeId", "data-v-e97741ba"]]
|
|
|
310
310
|
export {
|
|
311
311
|
Z as default
|
|
312
312
|
};
|
|
313
|
-
//# sourceMappingURL=PackagesTab-
|
|
313
|
+
//# sourceMappingURL=PackagesTab-Bui5q3rX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackagesTab-BascLTCK.js","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\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 2025, 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 <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_createElementBlock","_createVNode","_component_v_row","_component_v_col","_component_v_btn","$options","_cache","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","_withCtx","props","_mergeProps","$event","_component_v_divider","_openBlock","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PackagesTab-Bui5q3rX.js","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\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 2025, 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 <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_createElementBlock","_createVNode","_component_v_row","_component_v_col","_component_v_btn","$options","_cache","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","_withCtx","props","_mergeProps","$event","_component_v_divider","_openBlock","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./UpgradeToEnterpriseDialog.
|
|
2
|
-
//# sourceMappingURL=PackagesTab-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs"),e=require("vue"),y=require("./CustomIcon-CEc927h0.cjs");require("single-spa");const N=require("./SimpleTextDialog-Dv5ypyUQ.cjs"),P=require("./tools/admin.cjs"),C=require("./format-B22VpiOS.cjs"),D={components:{DownloadDialog:P.DownloadDialog,SimpleTextDialog:N.SimpleTextDialog},data(){return{showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",files:[],loadingPackage:!1,progress:0,gems:[],python:[],processes:{}}},mounted(){this.update(),this.updateProcesses()},methods:{showOutput:function(n){this.processOutput=n.output,this.showProcessOutput=!0},update(){d.fi.get("/openc3-api/packages").then(n=>{this.gems=n.data.ruby,this.python=n.data.python})},updateProcesses:function(){d.fi.get("/openc3-api/process_status/package_?substr=true").then(n=>{this.processes=n.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},2500)})},formatDate(n){return C.format(C.toDate(parseInt(n)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},selectFile(){this.progress=0,this.$refs.fileInput.click()},fileChange(n){const t=n.target.files;if(t.length>0){this.loadingPackage=!0;let g=this;const h=[...t].map(l=>{const a=new FormData;return a.append("package",l,l.name),d.fi.post("/openc3-api/packages",{data:a,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(r){let s=Math.round(r.loaded*100/r.total);g.progress=s}})});Promise.all(h).then(l=>{this.$notify.normal({body:`Uploaded ${l.length} package${l.length>1?"s":""}`}),this.loadingPackage=!1,this.files=[],setTimeout(()=>{this.updateProcesses()},2500)}).catch(l=>{this.loadingPackage=!1})}},deletePackage(n){this.$dialog.confirm(`Are you sure you want to remove: ${n}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>d.fi.delete(`/openc3-api/packages/${n}`)).then(t=>{this.$notify.normal({body:`Removed package ${n}`}),setTimeout(()=>{this.updateProcesses()},2500)}).catch(t=>{this.$notify.serious({body:`Failed to remove package ${n}`})})}}},b=["textContent"],T=["textContent"];function B(n,t,g,h,l,a){const r=e.resolveComponent("v-btn"),s=e.resolveComponent("v-col"),x=e.resolveComponent("rux-progress"),c=e.resolveComponent("v-row"),u=e.resolveComponent("v-list-item-title"),v=e.resolveComponent("v-list-item-subtitle"),k=e.resolveComponent("v-tooltip"),p=e.resolveComponent("v-list-item"),m=e.resolveComponent("v-divider"),_=e.resolveComponent("v-list"),w=e.resolveComponent("download-dialog"),V=e.resolveComponent("simple-text-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(c,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(s,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(r,{onClick:a.selectFile},{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode("Install Package",-1)])]),_:1},8,["onClick"]),e.createElementVNode("input",{ref:"fileInput",style:{display:"none"},type:"file",onChange:t[0]||(t[0]=(...o)=>a.fileChange&&a.fileChange(...o))},null,544)]),_:1}),e.createVNode(s,{class:"ml-4 mr-2",cols:"4"},{default:e.withCtx(()=>[e.createVNode(x,{value:l.progress},null,8,["value"])]),_:1})]),_:1}),Object.keys(l.processes).length>0?(e.openBlock(),e.createBlock(_,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(c,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Process List",-1)])]),_:1}),e.createVNode(s,{align:"right"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createElementVNode("div",null,"Showing last 10 min of activity",-1)])]),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.processes,o=>(e.openBlock(),e.createElementBlock("div",{key:o.name},[e.createVNode(p,null,e.createSlots({default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(o.state.toLowerCase()),textContent:e.toDisplayString(`Processing ${o.process_type}: ${o.detail} - ${o.state}`)},null,10,b)]),_:2},1024),e.createVNode(v,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+a.formatDate(o.updated_at))},null,8,T)]),_:2},1024)]),_:2},[o.state!=="Running"?{name:"append",fn:e.withCtx(()=>[e.createVNode(k,{"open-delay":600,location:"top"},{activator:e.withCtx(({props:i})=>[e.createVNode(r,e.mergeProps({ref_for:!0},i,{icon:"mdi-eye",variant:"text","aria-label":"Show Output",onClick:f=>a.showOutput(o)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[6]||(t[6]=e.createElementVNode("span",null,"Show Output",-1))]),_:2},1024)]),key:"0"}:void 0]),1024),e.createVNode(m)]))),128))]),_:1})):e.createCommentVNode("",!0),e.createVNode(_,{class:"list","data-test":"packageList"},{default:e.withCtx(()=>[e.createVNode(c,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode("Ruby Gems",-1)])]),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.gems,(o,i)=>(e.openBlock(),e.createElementBlock("div",{key:i},[e.createVNode(p,null,{append:e.withCtx(()=>[e.createVNode(r,{icon:"mdi-delete",variant:"text","aria-label":"Delete Ruby Gem",onClick:f=>a.deletePackage(o)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o),1)]),_:2},1024)]),_:2},1024),e.createVNode(m)]))),128)),e.createVNode(c,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>[...t[8]||(t[8]=[e.createTextVNode("Python Packages",-1)])]),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.python,(o,i)=>(e.openBlock(),e.createElementBlock("div",{key:i},[e.createVNode(p,null,{append:e.withCtx(()=>[e.createVNode(r,{icon:"mdi-delete",variant:"text","aria-label":"Delete Python Package",onClick:f=>a.deletePackage(o)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o),1)]),_:2},1024)]),_:2},1024),e.createVNode(m)]))),128))]),_:1}),e.createVNode(w,{modelValue:l.showDownloadDialog,"onUpdate:modelValue":t[1]||(t[1]=o=>l.showDownloadDialog=o)},null,8,["modelValue"]),e.createVNode(V,{modelValue:l.showProcessOutput,"onUpdate:modelValue":t[2]||(t[2]=o=>l.showProcessOutput=o),title:"Process Output",text:l.processOutput},null,8,["modelValue","text"])])}const S=y._export_sfc(D,[["render",B],["__scopeId","data-v-e97741ba"]]);exports.default=S;
|
|
2
|
+
//# sourceMappingURL=PackagesTab-C-fV9yxw.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackagesTab-D_1kbMkk.cjs","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\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 2025, 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 <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_createElementBlock","_createVNode","_component_v_row","_component_v_col","_component_v_btn","$options","_cache","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","_withCtx","props","_mergeProps","$event","_component_v_divider","_openBlock","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PackagesTab-C-fV9yxw.cjs","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\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 2025, 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 <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_createElementBlock","_createVNode","_component_v_row","_component_v_col","_component_v_btn","$options","_cache","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","_withCtx","props","_mergeProps","$event","_component_v_divider","_openBlock","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-RGlL9jUF.cjs"),e=require("vue"),x=require("./CustomIcon-eie3rPKh.cjs");require("single-spa");const M=require("./SimpleTextDialog-tZ7qO1zq.cjs"),y=require("./tools/admin.cjs"),A=require("./settings-s8NuYKD-.cjs"),P=require("./format-B22VpiOS.cjs"),j="store_url",N={props:{id:Number,name:String,title:String,author:String,description:String,keywords:Array,img_path:String,image_url:String,licenses:Array,verified:Boolean,homepage:String,repository:String,gem_url:String,checksum:String},data:function(){return{_api:new g.yi,_storeUrl:"",imageContents:null}},computed:{plugin:function(){return{id:this.id,name:this.name,title:this.title,author:this.author,description:this.description,keywords:this.keywords,img_path:this.img_path,image_url:this.image_url,licenses:this.licenses,verified:this.verified,homepage:this.homepage,repository:this.repository,gem_url:this.gem_url,checksum:this.checksum}},imageContentsWithMimeType:function(){if(this.imageContents){const t={"image/bmp":[66,77],"image/jpeg":[255,216,255],"image/png":[137,80,78,71],"image/gif":[71,73,70,56],"image/webp":[82,73,70,70]},o=new TextEncoder().encode(globalThis.atob(this.imageContents.slice(0,6))).slice(1),i=Object.entries(t).find(([c,n])=>n.every((l,r)=>l===o[r]));if(i){const[c]=i;return`data:${c};base64,${this.imageContents}`}}},storeLink:function(){return this.hasStoreListing?new URL(`/cosmos_plugins/${this.id}`,this._storeUrl):null},hasStoreListing:function(){return!!this.id},hasDetails:function(){return this.hasStoreListing?!0:!!this.title&&!!this.description},isPluginInstalled:function(){return!!this.name}},created:async function(){const t="https://store.openc3.com";try{this._storeUrl=await this._api.get_setting(j)||t}catch{this._storeUrl=t}if(this.img_path)try{const o=new URLSearchParams({volume:"OPENC3_GEMS_VOLUME",scope:globalThis.openc3Scope}),{data:i}=await g.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(this.img_path)}?${o}`);this.imageContents=i.contents}catch{}}},z={mixins:[N],props:{modelValue:Boolean},emits:["triggerInstall","triggerUninstall","update:modelValue"],data(){return{showDialog:!1,showCopiedTooltip:!1}},computed:{isDialogOpen:{get:function(){return this.modelValue||this.showDialog},set:function(t){this.showDialog=t,this.$emit("update:modelValue",t)}}},methods:{openDialog:function(){this.isDialogOpen=!0},closeDialog:function(){this.isDialogOpen=!1},install:function(){this.$emit("triggerInstall",this.gemUrl)},uninstall:function(){this.$emit("triggerUninstall",this.gemUrl)},copyChecksum:function(){navigator.clipboard.writeText(this.checksum),this.showCopiedTooltip=!0,setTimeout(()=>{this.showCopiedTooltip=!1},1e3)}}},F=["textContent"],R={key:0},q=["textContent"],H={class:"mt-3 text-caption"},W={key:1,class:"font-italic"},G={class:"mt-3 text-caption font-italic"};function $(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-btn"),s=e.resolveComponent("v-tooltip"),_=e.resolveComponent("v-toolbar"),h=e.resolveComponent("v-badge"),C=e.resolveComponent("v-card-subtitle"),v=e.resolveComponent("v-img"),d=e.resolveComponent("v-chip"),w=e.resolveComponent("v-text-field"),p=e.resolveComponent("v-card-text"),V=e.resolveComponent("v-card-actions"),f=e.resolveComponent("v-card"),k=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(t.$slots,"activator",{props:{onClick:l.openDialog}}),e.createVNode(k,{modelValue:l.isDialogOpen,"onUpdate:modelValue":o[2]||(o[2]=m=>l.isDialogOpen=m),"max-width":"500"},{default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[e.createVNode(_,{height:"24"},{default:e.withCtx(()=>[e.createVNode(r),e.createElementVNode("span",{textContent:e.toDisplayString(t.title)},null,8,F),e.createVNode(r),e.createVNode(s,{location:"top"},{activator:e.withCtx(({props:m})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(m)),[e.createVNode(a,{href:t.storeLink,target:"_blank",icon:"mdi-open-in-new",size:"small",variant:"plain"},null,8,["href"])],16)]),default:e.withCtx(()=>[o[3]||(o[3]=e.createElementVNode("span",null," View at store.openc3.com ",-1))]),_:1}),e.createVNode(a,{icon:"mdi-close-box",variant:"text",density:"compact",onClick:l.closeDialog},null,8,["onClick"])]),_:1}),e.createVNode(C,{class:"d-flex align-center justify-content-space-between"},{default:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(t.author),1),e.createVNode(r),t.verified?(e.openBlock(),e.createElementBlock("div",R,[o[4]||(o[4]=e.createTextVNode(" Verified ",-1)),e.createVNode(h,{inline:"",icon:"mdi-shield-check",color:"success"})])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(p,null,{default:e.withCtx(()=>[t.image_url?(e.openBlock(),e.createBlock(v,{key:0,src:t.image_url},null,8,["src"])):e.createCommentVNode("",!0),t.imageContentsWithMimeType?(e.openBlock(),e.createBlock(v,{key:1,src:t.imageContentsWithMimeType},null,8,["src"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"mt-3",textContent:e.toDisplayString(t.description)},null,8,q),e.createElementVNode("div",H,[o[5]||(o[5]=e.createTextVNode(" Keywords: ",-1)),t.keywords?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.keywords,m=>(e.openBlock(),e.createBlock(d,{key:m,variant:"flat",color:"primary",size:"x-small",class:"ml-1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m),1)]),_:2},1024))),128)):(e.openBlock(),e.createElementBlock("span",W," none "))]),e.createElementVNode("div",G,[o[6]||(o[6]=e.createTextVNode(" Licenses: ",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.licenses,m=>(e.openBlock(),e.createBlock(d,{key:m,size:"x-small",class:"ml-1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m),1)]),_:2},1024))),128))]),e.createVNode(w,{modelValue:t.checksum,"onUpdate:modelValue":o[1]||(o[1]=m=>t.checksum=m),class:"mt-3",label:"SHA256",variant:"solo",density:"compact","hide-details":"",readonly:""},{append:e.withCtx(()=>[e.createVNode(s,{modelValue:n.showCopiedTooltip,"onUpdate:modelValue":o[0]||(o[0]=m=>n.showCopiedTooltip=m),location:"top","open-on-hover":!1},{activator:e.withCtx(({props:m})=>[e.createVNode(a,e.mergeProps(m,{icon:"mdi-content-copy",variant:"text",density:"compact",onClick:l.copyChecksum}),null,16,["onClick"])]),default:e.withCtx(()=>[o[7]||(o[7]=e.createElementVNode("span",null,"Copied!",-1))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(V,{class:"justify-start px-6"},{default:e.withCtx(()=>[t.isPluginInstalled?(e.openBlock(),e.createBlock(a,{key:0,text:"Uninstall","append-icon":"mdi-puzzle-remove",variant:"outlined",color:"red",onClick:l.uninstall},null,8,["onClick"])):(e.openBlock(),e.createBlock(a,{key:1,text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",onClick:l.install},null,8,["onClick"])),t.repository?(e.openBlock(),e.createBlock(a,{key:2,text:"Repository","append-icon":"mdi-open-in-new",variant:"outlined",href:t.repository,target:"_blank"},null,8,["href"])):e.createCommentVNode("",!0),t.homepage?(e.openBlock(),e.createBlock(a,{key:3,text:"Homepage","append-icon":"mdi-open-in-new",variant:"outlined",href:t.homepage,target:"_blank"},null,8,["href"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}const S=x._export_sfc(z,[["render",$]]),J={components:{PluginDetailsDialog:S},mixins:[N],emits:["triggerInstall"],methods:{install:function(){this.$emit("triggerInstall",this.plugin)}}},K=["textContent"];function Q(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-badge"),s=e.resolveComponent("v-card-title"),_=e.resolveComponent("v-card-subtitle"),h=e.resolveComponent("v-img"),C=e.resolveComponent("v-card-text"),v=e.resolveComponent("v-btn"),d=e.resolveComponent("v-card-actions"),w=e.resolveComponent("v-card"),p=e.resolveComponent("plugin-details-dialog");return e.openBlock(),e.createBlock(p,e.mergeProps(t.plugin,{onTriggerInstall:l.install}),{activator:e.withCtx(({props:V})=>[e.createVNode(w,e.mergeProps(V,{height:"350",class:"d-flex flex-column"}),{default:e.withCtx(()=>[e.createVNode(s,{class:"d-flex align-center justify-content-space-between"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title)+" ",1),e.createVNode(r),t.verified?(e.openBlock(),e.createBlock(a,{key:0,inline:"",icon:"mdi-shield-check",color:"success"})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(_,{class:"d-flex align-center justify-content-space-between"},{default:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(t.author),1)]),_:1}),e.createVNode(C,null,{default:e.withCtx(()=>[t.image_url?(e.openBlock(),e.createBlock(h,{key:0,src:t.image_url,"max-height":"160"},null,8,["src"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"truncate-description":!0,"truncate-2":!!t.image_url,"truncate-10":!t.image_url}),textContent:e.toDisplayString(t.description)},null,10,K)]),_:1}),e.createVNode(r),e.createVNode(d,{class:"flex-wrap"},{default:e.withCtx(()=>[e.createVNode(v,{text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",onClick:e.withModifiers(l.install,["stop"])},null,8,["onClick"])]),_:1})]),_:1},16)]),_:1},16,["onTriggerInstall"])}const X=x._export_sfc(J,[["render",Q],["__scopeId","data-v-83d9d7a7"]]),b="store_url",T="DEFAULT",Y={mixins:[A.Settings],props:{modelValue:Boolean},emits:["update:modelValue","update:storeUrl"],data(){return{showDialog:!1,storeUrl:"",rules:{required:t=>!!t||"Required",url:t=>{try{new URL(t)}catch{return"Not a valid URL"}return!0}}}},watch:{modelValue:function(t){t&&(this.showDialog=t)},showDialog:function(t){t||this.$emit("update:modelValue",t)}},created:function(){this.loadSetting(b,{scope:T})},methods:{save(){this.saveSetting(b,this.storeUrl,{scope:T}),this.$emit("update:storeUrl",this.storeUrl),this.showDialog=!1},parseSetting:function(t){t?this.storeUrl=t:this.storeUrl="https://store.openc3.com"}}};function Z(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-toolbar"),s=e.resolveComponent("v-alert"),_=e.resolveComponent("v-text-field"),h=e.resolveComponent("v-card-text"),C=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),d=e.resolveComponent("v-card"),w=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(w,{modelValue:n.showDialog,"onUpdate:modelValue":o[4]||(o[4]=p=>n.showDialog=p),width:"600"},{default:e.withCtx(()=>[e.createVNode(a,{height:"24"},{default:e.withCtx(()=>[e.createVNode(r),o[5]||(o[5]=e.createElementVNode("span",null,"Plugin Store Settings",-1)),e.createVNode(r)]),_:1}),e.createVNode(d,{class:"pa-3"},{default:e.withCtx(()=>[e.createVNode(s,{modelValue:t.errorLoading,"onUpdate:modelValue":o[0]||(o[0]=p=>t.errorLoading=p),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(t.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:t.errorSaving,"onUpdate:modelValue":o[1]||(o[1]=p=>t.errorSaving=p),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(t.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:t.successSaving,"onUpdate:modelValue":o[2]||(o[2]=p=>t.successSaving=p),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...o[6]||(o[6]=[e.createTextVNode(" Saved! ",-1)])]),_:1},8,["modelValue"]),e.createVNode(h,null,{default:e.withCtx(()=>[e.createVNode(_,{modelValue:n.storeUrl,"onUpdate:modelValue":o[3]||(o[3]=p=>n.storeUrl=p),label:"Store URL",rules:[n.rules.required,n.rules.url]},null,8,["modelValue","rules"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(C,{color:"success",variant:"text",text:"Save","data-test":"save-store-settings-btn",onClick:l.save},null,8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}const ee=x._export_sfc(Y,[["render",Z]]),te={components:{PluginCard:X,PluginStoreSettingsDialog:ee},emits:["close","triggerInstall"],data(){return{api:new g.yi,search:"",verifiedOnly:!1,showSettingsDialog:!1,plugins:[]}},computed:{filteredPlugins:function(){let t=this.plugins;return this.verifiedOnly&&(t=t.filter(o=>o.verified)),this.search.length&&(t=t.filter(o=>o.title.toLowerCase().includes(this.search.toLowerCase()))),t}},mounted:function(){this.fetchPluginStoreData()},methods:{fetchPluginStoreData:function(){g.fi.get("/openc3-api/pluginstore").then(t=>{this.plugins=t.data})},close:function(){this.$emit("close")},install:function(t){this.$emit("triggerInstall",t),this.close()},openSettings:function(){this.showSettingsDialog=!0},updatePluginStore:function(){this.api.update_plugin_store().then(t=>{this.fetchPluginStoreData()})}}},oe={class:"d-flex justify-content-space-between"},ne={class:"d-inline-flex align-center w-100"};function le(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-btn"),s=e.resolveComponent("v-tooltip"),_=e.resolveComponent("v-text-field"),h=e.resolveComponent("v-switch"),C=e.resolveComponent("plugin-card"),v=e.resolveComponent("v-col"),d=e.resolveComponent("v-row"),w=e.resolveComponent("v-container"),p=e.resolveComponent("v-sheet"),V=e.resolveComponent("plugin-store-settings-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(p,{class:"pb-11 pt-8 px-8",height:"100%"},{default:e.withCtx(()=>[e.createElementVNode("div",oe,[o[4]||(o[4]=e.createElementVNode("div",null,[e.createElementVNode("div",{class:"text-h3 mb-3"},"OpenC3 Plugin Store"),e.createElementVNode("div",{class:"text-subtitle-1"}," Browse plugins made by OpenC3 and the COSMOS community ")],-1)),e.createVNode(r),e.createVNode(a,{icon:"mdi-cog",variant:"text",onClick:l.openSettings},null,8,["onClick"]),e.createVNode(s,{location:"top"},{activator:e.withCtx(({props:f})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(f)),[e.createVNode(a,{href:"https://store.openc3.com",target:"_blank",icon:"mdi-open-in-new",variant:"text",class:"mx-2"})],16)]),default:e.withCtx(()=>[o[3]||(o[3]=e.createElementVNode("span",null," Open store.openc3.com ",-1))]),_:1}),e.createVNode(a,{icon:"mdi-close",variant:"text",onClick:l.close},null,8,["onClick"])]),e.createElementVNode("div",ne,[e.createVNode(_,{modelValue:n.search,"onUpdate:modelValue":o[0]||(o[0]=f=>n.search=f),label:"Search","prepend-inner-icon":"mdi-magnify",clearable:"",variant:"outlined",density:"compact","single-line":"","hide-details":"","data-test":"search-plugin-store"},null,8,["modelValue"]),e.createVNode(h,{modelValue:n.verifiedOnly,"onUpdate:modelValue":o[1]||(o[1]=f=>n.verifiedOnly=f),label:"Verified only",density:"compact","hide-details":"",class:"ml-4"},null,8,["modelValue"])]),e.createVNode(r),o[5]||(o[5]=e.createElementVNode("span",{class:""}," Click on a plugin to see more information about it ",-1)),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.filteredPlugins,f=>(e.openBlock(),e.createBlock(v,{key:f.id,cols:"4"},{default:e.withCtx(()=>[e.createVNode(C,e.mergeProps({ref_for:!0},f,{onTriggerInstall:l.install}),null,16,["onTriggerInstall"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),e.createVNode(V,{modelValue:n.showSettingsDialog,"onUpdate:modelValue":o[2]||(o[2]=f=>n.showSettingsDialog=f),"onUpdate:storeUrl":l.updatePluginStore},null,8,["modelValue","onUpdate:storeUrl"])],64)}const ie=x._export_sfc(te,[["render",le]]),se={components:{PluginDetailsDialog:S},mixins:[N],props:{targets:{type:Array,default:()=>[]},isModified:Boolean},emits:["edit","delete","upgrade"],data(){return{showCard:!1}},computed:{displayTitle:function(){return this.title?this.title:this.name.replace(/^openc3-cosmos-/,"").replace(/-?\d+\.\d+\.\d+(?:\.pre\.beta\d+\.\d+)?\.gem(?:__\d+)?$/,"")}},methods:{openDetails:function(){this.hasDetails&&(this.showCard=!0)},downloadPlugin:function(){g.fi.post(`/openc3-api/packages/${this.name}/download`).then(t=>{const o=window.atob(t.data.contents),i=new Uint8Array(o.length);for(let l=0;l<o.length;++l)i[l]=o.charCodeAt(l);const c=new Blob([i],{type:"application/zip"}),n=document.createElement("a");n.href=URL.createObjectURL(c),n.setAttribute("download",t.data.filename),n.click()})},downloadTarget:function(t){g.fi.post(`/openc3-api/targets/${t}/download`).then(o=>{const i=window.atob(o.data.contents),c=new Uint8Array(i.length);for(let r=0;r<i.length;++r)c[r]=i.charCodeAt(r);const n=new Blob([c],{type:"application/zip"}),l=document.createElement("a");l.href=URL.createObjectURL(n),l.setAttribute("download",o.data.filename),l.click()})},edit:function(){this.$emit("edit")},upgrade:function(){this.$emit("upgrade")},deletePrompt:function(){this.showCard=!1,this.$emit("delete")}}},re=["textContent"],ae={class:"text-subtitle-2 v-list-item-subtitle pl-0"},ce={key:0},ue=["onClick","textContent"],de=["textContent"];function pe(t,o,i,c,n,l){var v;const r=e.resolveComponent("v-img"),a=e.resolveComponent("v-icon"),s=e.resolveComponent("v-list-item"),_=e.resolveComponent("v-list"),h=e.resolveComponent("v-menu"),C=e.resolveComponent("plugin-details-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("tr",{class:e.normalizeClass({"cursor-pointer":t.hasDetails}),"data-test":"plugin-list-item"},[e.createElementVNode("td",null,[t.imageContentsWithMimeType?(e.openBlock(),e.createBlock(r,{key:0,src:t.imageContentsWithMimeType,"max-height":"56","min-width":"56"},null,8,["src"])):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,[e.createElementVNode("div",{class:"text-h6",textContent:e.toDisplayString(l.displayTitle),onClick:o[0]||(o[0]=(...d)=>l.openDetails&&l.openDetails(...d))},null,8,re),e.createElementVNode("div",ae,[i.isModified?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" * ")],64)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(t.name),1)]),(v=i.targets)!=null&&v.length?(e.openBlock(),e.createElementBlock("div",ce,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.targets,(d,w)=>(e.openBlock(),e.createElementBlock("span",{key:w,class:"mr-2"},[d.modified?(e.openBlock(),e.createElementBlock("a",{key:0,style:{cursor:"pointer"},onClick:e.withModifiers(p=>l.downloadTarget(d.name),["prevent"]),textContent:e.toDisplayString(d.name)},null,8,ue)):(e.openBlock(),e.createElementBlock("span",{key:1,textContent:e.toDisplayString(d.name)},null,8,de))]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,[e.createVNode(h,null,{activator:e.withCtx(({props:d})=>[e.createVNode(a,e.mergeProps(d,{icon:"mdi-dots-horizontal","data-test":"plugin-actions"}),null,16)]),default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(s,{title:"Download","prepend-icon":"mdi-download","data-test":"download-plugin",onClick:l.downloadPlugin},null,8,["onClick"]),e.createVNode(s,{title:"Edit Details","prepend-icon":"mdi-pencil","data-test":"edit-plugin",onClick:l.edit},null,8,["onClick"]),e.createVNode(s,{title:"Upgrade","prepend-icon":"mdi-update","data-test":"upgrade-plugin",onClick:l.upgrade},null,8,["onClick"]),e.createVNode(s,{title:"Delete","prepend-icon":"mdi-delete","data-test":"delete-plugin",onClick:l.deletePrompt},null,8,["onClick"])]),_:1})]),_:1})])],2),e.createVNode(C,e.mergeProps({modelValue:n.showCard,"onUpdate:modelValue":o[1]||(o[1]=d=>n.showCard=d)},t.plugin,{onTriggerUninstall:l.deletePrompt}),null,16,["modelValue","onTriggerUninstall"])],64)}const me=x._export_sfc(se,[["render",pe]]),ge={components:{PluginListItem:me},props:{plugins:{type:Array,required:!0},targets:{type:Object,required:!0},showDefaultTools:{type:Boolean,default:!1},defaultPlugins:{type:Array,required:!0}},emits:["edit","delete","upgrade"],data(){return{showPluginDetails:!1,detailPlugin:null}},computed:{shownPlugins(){const t=[],o=[];return this.plugins.forEach(i=>{const l=i.name.split("__")[0].split("-").slice(0,-1).join("-");this.defaultPlugins.includes(l)?o.push(i):t.push(i)}),t.sort((i,c)=>i.name<c.name?-1:i.name>c.name?1:0),this.showDefaultTools?(o.sort((i,c)=>i.name<c.name?-1:i.name>c.name?1:0),t.concat(o)):t}},methods:{showDetails:function(t){this.detailPlugin=t,this.showPluginDetails=!0},pluginTargets:function(t){let o=[];for(const i in this.targets)this.targets[i].plugin===t&&o.push(this.targets[i]);return o},isModified:function(t){return Object.entries(this.targets).some(([o,i])=>i.plugin===t&&i.modified===!0)},editPlugin:function(t){this.$emit("edit",t)},upgradePlugin(t){this.$emit("upgrade",t)},deletePrompt:function(t){this.$emit("delete",t)}}};function he(t,o,i,c,n,l){const r=e.resolveComponent("plugin-list-item"),a=e.resolveComponent("v-data-table");return e.openBlock(),e.createBlock(a,{headers:[],items:l.shownPlugins,density:"compact",class:"list","data-test":"plugin-list"},{item:e.withCtx(({item:s})=>[e.createVNode(r,e.mergeProps(s,{targets:l.pluginTargets(s.name),"is-modified":l.isModified(s.name),onEdit:()=>l.editPlugin(s.name),onUpgrade:()=>l.upgradePlugin(s.name),onDelete:()=>l.deletePrompt(s.name)}),null,16,["targets","is-modified","onEdit","onUpgrade","onDelete"])]),_:1},8,["items"])}const fe=x._export_sfc(ge,[["render",he],["__scopeId","data-v-94f3dd91"]]),_e={components:{PluginDialog:y.PluginDialog,PluginList:fe,PluginStore:ie,ModifiedPluginDialog:y.ModifiedPluginDialog,SimpleTextDialog:M.SimpleTextDialog},data(){return{pluginName:null,variables:{},storeId:null,pluginTxt:"",file:null,currentPlugin:null,pluginHashTmp:null,existingPluginTxt:null,progress:0,pluginDelete:!1,api:new g.yi,plugins:[],targets:{},processes:{},alert:"",alertType:"success",showAlert:!1,showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",showPluginStore:!1,showPluginDialog:!1,showModifiedPluginDialog:!1,showDefaultTools:!1,defaultPlugins:["openc3-cosmos-tool-admin","openc3-cosmos-tool-bucketexplorer","openc3-cosmos-tool-cmdsender","openc3-cosmos-tool-cmdqueue","openc3-cosmos-tool-cmdhistory","openc3-cosmos-tool-cmdtlmserver","openc3-cosmos-tool-dataextractor","openc3-cosmos-tool-dataviewer","openc3-cosmos-tool-docs","openc3-cosmos-tool-handbooks","openc3-cosmos-tool-iframe","openc3-cosmos-tool-limitsmonitor","openc3-cosmos-tool-packetviewer","openc3-cosmos-tool-scriptrunner","openc3-cosmos-tool-tablemanager","openc3-cosmos-tool-tlmgrapher","openc3-cosmos-tool-tlmviewer","openc3-cosmos-enterprise-tool-admin","openc3-cosmos-tool-autonomic","openc3-cosmos-tool-calendar","openc3-cosmos-tool-grafana","openc3-cosmos-tool-systemhealth","openc3-cosmos-tool-logexplorer","openc3-enterprise-tool-base","openc3-tool-base"]}},watch:{showPluginDialog:function(t,o){t===!1&&(this.file=null,this.$refs.fileInput.value=null)}},created(){this.api.update_plugin_store()},mounted(){this.update(),this.updateProcesses();const t=this;window.onpopstate=function(){t.showPluginStore&&(t.showPluginStore=!1,history.go(1))}},methods:{resetControlState:function(){this.pluginName=null,this.variables={},this.storeId=null,this.pluginTxt="",this.file=null,this.currentPlugin=null,this.pluginHashTmp=null,this.existingPluginTxt=null,this.progress=0,this.pluginDelete=!1},pluginTargets:function(t){let o=[];for(const i in this.targets)this.targets[i].plugin===t&&o.push(this.targets[i]);return o},isModified:function(t){return Object.entries(this.targets).some(([o,i])=>i.plugin===t&&i.modified===!0)},showOutput:function(t){this.processOutput=t.output,this.showProcessOutput=!0},update:function(){g.fi.get("/openc3-api/plugins/all").then(t=>{this.plugins=Object.entries(t.data).map(([o,i])=>i)}),g.fi.get("/openc3-api/targets_modified").then(t=>{this.targets=t.data})},updateProcesses:function(){g.fi.get("openc3-api/process_status/plugin_?substr=true").then(t=>{this.processes=t.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},5e3)})},formatDate(t){return P.format(P.toDate(parseInt(t)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},upload:function(t=null,o=null){const i=t?"put":"post",c=t?`/openc3-api/plugins/${t}`:"/openc3-api/plugins",n=new FormData;o===null?n.append("plugin",this.file,this.file.name):n.append("store_id",o.id);let l=this;g.fi[i](c,{data:n,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(a){let s=Math.round(a.loaded*100/a.total);l.progress=s}}).then(a=>{this.progress=100,this.alert="Uploaded file",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update();let s=null;a.data.existing_plugin_txt_lines!==void 0&&(s=a.data.existing_plugin_txt_lines.join(`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs"),e=require("vue"),x=require("./CustomIcon-CEc927h0.cjs");require("single-spa");const M=require("./SimpleTextDialog-Dv5ypyUQ.cjs"),y=require("./tools/admin.cjs"),A=require("./settings-BCE3SW-9.cjs"),P=require("./format-B22VpiOS.cjs"),j="store_url",N={props:{id:Number,name:String,title:String,author:String,description:String,keywords:Array,img_path:String,image_url:String,licenses:Array,verified:Boolean,homepage:String,repository:String,gem_url:String,checksum:String},data:function(){return{_api:new g.yi,_storeUrl:"",imageContents:null}},computed:{plugin:function(){return{id:this.id,name:this.name,title:this.title,author:this.author,description:this.description,keywords:this.keywords,img_path:this.img_path,image_url:this.image_url,licenses:this.licenses,verified:this.verified,homepage:this.homepage,repository:this.repository,gem_url:this.gem_url,checksum:this.checksum}},imageContentsWithMimeType:function(){if(this.imageContents){const t={"image/bmp":[66,77],"image/jpeg":[255,216,255],"image/png":[137,80,78,71],"image/gif":[71,73,70,56],"image/webp":[82,73,70,70]},o=new TextEncoder().encode(globalThis.atob(this.imageContents.slice(0,6))).slice(1),i=Object.entries(t).find(([c,n])=>n.every((l,r)=>l===o[r]));if(i){const[c]=i;return`data:${c};base64,${this.imageContents}`}}},storeLink:function(){return this.hasStoreListing?new URL(`/cosmos_plugins/${this.id}`,this._storeUrl):null},hasStoreListing:function(){return!!this.id},hasDetails:function(){return this.hasStoreListing?!0:!!this.title&&!!this.description},isPluginInstalled:function(){return!!this.name}},created:async function(){const t="https://store.openc3.com";try{this._storeUrl=await this._api.get_setting(j)||t}catch{this._storeUrl=t}if(this.img_path)try{const o=new URLSearchParams({volume:"OPENC3_GEMS_VOLUME",scope:globalThis.openc3Scope}),{data:i}=await g.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(this.img_path)}?${o}`);this.imageContents=i.contents}catch{}}},z={mixins:[N],props:{modelValue:Boolean},emits:["triggerInstall","triggerUninstall","update:modelValue"],data(){return{showDialog:!1,showCopiedTooltip:!1}},computed:{isDialogOpen:{get:function(){return this.modelValue||this.showDialog},set:function(t){this.showDialog=t,this.$emit("update:modelValue",t)}}},methods:{openDialog:function(){this.isDialogOpen=!0},closeDialog:function(){this.isDialogOpen=!1},install:function(){this.$emit("triggerInstall",this.gemUrl)},uninstall:function(){this.$emit("triggerUninstall",this.gemUrl)},copyChecksum:function(){navigator.clipboard.writeText(this.checksum),this.showCopiedTooltip=!0,setTimeout(()=>{this.showCopiedTooltip=!1},1e3)}}},F=["textContent"],R={key:0},q=["textContent"],H={class:"mt-3 text-caption"},W={key:1,class:"font-italic"},G={class:"mt-3 text-caption font-italic"};function $(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-btn"),s=e.resolveComponent("v-tooltip"),_=e.resolveComponent("v-toolbar"),h=e.resolveComponent("v-badge"),C=e.resolveComponent("v-card-subtitle"),v=e.resolveComponent("v-img"),d=e.resolveComponent("v-chip"),w=e.resolveComponent("v-text-field"),p=e.resolveComponent("v-card-text"),V=e.resolveComponent("v-card-actions"),f=e.resolveComponent("v-card"),k=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(t.$slots,"activator",{props:{onClick:l.openDialog}}),e.createVNode(k,{modelValue:l.isDialogOpen,"onUpdate:modelValue":o[2]||(o[2]=m=>l.isDialogOpen=m),"max-width":"500"},{default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[e.createVNode(_,{height:"24"},{default:e.withCtx(()=>[e.createVNode(r),e.createElementVNode("span",{textContent:e.toDisplayString(t.title)},null,8,F),e.createVNode(r),e.createVNode(s,{location:"top"},{activator:e.withCtx(({props:m})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(m)),[e.createVNode(a,{href:t.storeLink,target:"_blank",icon:"mdi-open-in-new",size:"small",variant:"plain"},null,8,["href"])],16)]),default:e.withCtx(()=>[o[3]||(o[3]=e.createElementVNode("span",null," View at store.openc3.com ",-1))]),_:1}),e.createVNode(a,{icon:"mdi-close-box",variant:"text",density:"compact",onClick:l.closeDialog},null,8,["onClick"])]),_:1}),e.createVNode(C,{class:"d-flex align-center justify-content-space-between"},{default:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(t.author),1),e.createVNode(r),t.verified?(e.openBlock(),e.createElementBlock("div",R,[o[4]||(o[4]=e.createTextVNode(" Verified ",-1)),e.createVNode(h,{inline:"",icon:"mdi-shield-check",color:"success"})])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(p,null,{default:e.withCtx(()=>[t.image_url?(e.openBlock(),e.createBlock(v,{key:0,src:t.image_url},null,8,["src"])):e.createCommentVNode("",!0),t.imageContentsWithMimeType?(e.openBlock(),e.createBlock(v,{key:1,src:t.imageContentsWithMimeType},null,8,["src"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"mt-3",textContent:e.toDisplayString(t.description)},null,8,q),e.createElementVNode("div",H,[o[5]||(o[5]=e.createTextVNode(" Keywords: ",-1)),t.keywords?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.keywords,m=>(e.openBlock(),e.createBlock(d,{key:m,variant:"flat",color:"primary",size:"x-small",class:"ml-1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m),1)]),_:2},1024))),128)):(e.openBlock(),e.createElementBlock("span",W," none "))]),e.createElementVNode("div",G,[o[6]||(o[6]=e.createTextVNode(" Licenses: ",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.licenses,m=>(e.openBlock(),e.createBlock(d,{key:m,size:"x-small",class:"ml-1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m),1)]),_:2},1024))),128))]),e.createVNode(w,{modelValue:t.checksum,"onUpdate:modelValue":o[1]||(o[1]=m=>t.checksum=m),class:"mt-3",label:"SHA256",variant:"solo",density:"compact","hide-details":"",readonly:""},{append:e.withCtx(()=>[e.createVNode(s,{modelValue:n.showCopiedTooltip,"onUpdate:modelValue":o[0]||(o[0]=m=>n.showCopiedTooltip=m),location:"top","open-on-hover":!1},{activator:e.withCtx(({props:m})=>[e.createVNode(a,e.mergeProps(m,{icon:"mdi-content-copy",variant:"text",density:"compact",onClick:l.copyChecksum}),null,16,["onClick"])]),default:e.withCtx(()=>[o[7]||(o[7]=e.createElementVNode("span",null,"Copied!",-1))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(V,{class:"justify-start px-6"},{default:e.withCtx(()=>[t.isPluginInstalled?(e.openBlock(),e.createBlock(a,{key:0,text:"Uninstall","append-icon":"mdi-puzzle-remove",variant:"outlined",color:"red",onClick:l.uninstall},null,8,["onClick"])):(e.openBlock(),e.createBlock(a,{key:1,text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",onClick:l.install},null,8,["onClick"])),t.repository?(e.openBlock(),e.createBlock(a,{key:2,text:"Repository","append-icon":"mdi-open-in-new",variant:"outlined",href:t.repository,target:"_blank"},null,8,["href"])):e.createCommentVNode("",!0),t.homepage?(e.openBlock(),e.createBlock(a,{key:3,text:"Homepage","append-icon":"mdi-open-in-new",variant:"outlined",href:t.homepage,target:"_blank"},null,8,["href"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}const S=x._export_sfc(z,[["render",$]]),J={components:{PluginDetailsDialog:S},mixins:[N],emits:["triggerInstall"],methods:{install:function(){this.$emit("triggerInstall",this.plugin)}}},K=["textContent"];function Q(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-badge"),s=e.resolveComponent("v-card-title"),_=e.resolveComponent("v-card-subtitle"),h=e.resolveComponent("v-img"),C=e.resolveComponent("v-card-text"),v=e.resolveComponent("v-btn"),d=e.resolveComponent("v-card-actions"),w=e.resolveComponent("v-card"),p=e.resolveComponent("plugin-details-dialog");return e.openBlock(),e.createBlock(p,e.mergeProps(t.plugin,{onTriggerInstall:l.install}),{activator:e.withCtx(({props:V})=>[e.createVNode(w,e.mergeProps(V,{height:"350",class:"d-flex flex-column"}),{default:e.withCtx(()=>[e.createVNode(s,{class:"d-flex align-center justify-content-space-between"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.title)+" ",1),e.createVNode(r),t.verified?(e.openBlock(),e.createBlock(a,{key:0,inline:"",icon:"mdi-shield-check",color:"success"})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(_,{class:"d-flex align-center justify-content-space-between"},{default:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(t.author),1)]),_:1}),e.createVNode(C,null,{default:e.withCtx(()=>[t.image_url?(e.openBlock(),e.createBlock(h,{key:0,src:t.image_url,"max-height":"160"},null,8,["src"])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass({"truncate-description":!0,"truncate-2":!!t.image_url,"truncate-10":!t.image_url}),textContent:e.toDisplayString(t.description)},null,10,K)]),_:1}),e.createVNode(r),e.createVNode(d,{class:"flex-wrap"},{default:e.withCtx(()=>[e.createVNode(v,{text:"Install","append-icon":"mdi-puzzle-plus",variant:"elevated",onClick:e.withModifiers(l.install,["stop"])},null,8,["onClick"])]),_:1})]),_:1},16)]),_:1},16,["onTriggerInstall"])}const X=x._export_sfc(J,[["render",Q],["__scopeId","data-v-83d9d7a7"]]),b="store_url",T="DEFAULT",Y={mixins:[A.Settings],props:{modelValue:Boolean},emits:["update:modelValue","update:storeUrl"],data(){return{showDialog:!1,storeUrl:"",rules:{required:t=>!!t||"Required",url:t=>{try{new URL(t)}catch{return"Not a valid URL"}return!0}}}},watch:{modelValue:function(t){t&&(this.showDialog=t)},showDialog:function(t){t||this.$emit("update:modelValue",t)}},created:function(){this.loadSetting(b,{scope:T})},methods:{save(){this.saveSetting(b,this.storeUrl,{scope:T}),this.$emit("update:storeUrl",this.storeUrl),this.showDialog=!1},parseSetting:function(t){t?this.storeUrl=t:this.storeUrl="https://store.openc3.com"}}};function Z(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-toolbar"),s=e.resolveComponent("v-alert"),_=e.resolveComponent("v-text-field"),h=e.resolveComponent("v-card-text"),C=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),d=e.resolveComponent("v-card"),w=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(w,{modelValue:n.showDialog,"onUpdate:modelValue":o[4]||(o[4]=p=>n.showDialog=p),width:"600"},{default:e.withCtx(()=>[e.createVNode(a,{height:"24"},{default:e.withCtx(()=>[e.createVNode(r),o[5]||(o[5]=e.createElementVNode("span",null,"Plugin Store Settings",-1)),e.createVNode(r)]),_:1}),e.createVNode(d,{class:"pa-3"},{default:e.withCtx(()=>[e.createVNode(s,{modelValue:t.errorLoading,"onUpdate:modelValue":o[0]||(o[0]=p=>t.errorLoading=p),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(t.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:t.errorSaving,"onUpdate:modelValue":o[1]||(o[1]=p=>t.errorSaving=p),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(t.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:t.successSaving,"onUpdate:modelValue":o[2]||(o[2]=p=>t.successSaving=p),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...o[6]||(o[6]=[e.createTextVNode(" Saved! ",-1)])]),_:1},8,["modelValue"]),e.createVNode(h,null,{default:e.withCtx(()=>[e.createVNode(_,{modelValue:n.storeUrl,"onUpdate:modelValue":o[3]||(o[3]=p=>n.storeUrl=p),label:"Store URL",rules:[n.rules.required,n.rules.url]},null,8,["modelValue","rules"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(C,{color:"success",variant:"text",text:"Save","data-test":"save-store-settings-btn",onClick:l.save},null,8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}const ee=x._export_sfc(Y,[["render",Z]]),te={components:{PluginCard:X,PluginStoreSettingsDialog:ee},emits:["close","triggerInstall"],data(){return{api:new g.yi,search:"",verifiedOnly:!1,showSettingsDialog:!1,plugins:[]}},computed:{filteredPlugins:function(){let t=this.plugins;return this.verifiedOnly&&(t=t.filter(o=>o.verified)),this.search.length&&(t=t.filter(o=>o.title.toLowerCase().includes(this.search.toLowerCase()))),t}},mounted:function(){this.fetchPluginStoreData()},methods:{fetchPluginStoreData:function(){g.fi.get("/openc3-api/pluginstore").then(t=>{this.plugins=t.data})},close:function(){this.$emit("close")},install:function(t){this.$emit("triggerInstall",t),this.close()},openSettings:function(){this.showSettingsDialog=!0},updatePluginStore:function(){this.api.update_plugin_store().then(t=>{this.fetchPluginStoreData()})}}},oe={class:"d-flex justify-content-space-between"},ne={class:"d-inline-flex align-center w-100"};function le(t,o,i,c,n,l){const r=e.resolveComponent("v-spacer"),a=e.resolveComponent("v-btn"),s=e.resolveComponent("v-tooltip"),_=e.resolveComponent("v-text-field"),h=e.resolveComponent("v-switch"),C=e.resolveComponent("plugin-card"),v=e.resolveComponent("v-col"),d=e.resolveComponent("v-row"),w=e.resolveComponent("v-container"),p=e.resolveComponent("v-sheet"),V=e.resolveComponent("plugin-store-settings-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(p,{class:"pb-11 pt-8 px-8",height:"100%"},{default:e.withCtx(()=>[e.createElementVNode("div",oe,[o[4]||(o[4]=e.createElementVNode("div",null,[e.createElementVNode("div",{class:"text-h3 mb-3"},"OpenC3 Plugin Store"),e.createElementVNode("div",{class:"text-subtitle-1"}," Browse plugins made by OpenC3 and the COSMOS community ")],-1)),e.createVNode(r),e.createVNode(a,{icon:"mdi-cog",variant:"text",onClick:l.openSettings},null,8,["onClick"]),e.createVNode(s,{location:"top"},{activator:e.withCtx(({props:f})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(f)),[e.createVNode(a,{href:"https://store.openc3.com",target:"_blank",icon:"mdi-open-in-new",variant:"text",class:"mx-2"})],16)]),default:e.withCtx(()=>[o[3]||(o[3]=e.createElementVNode("span",null," Open store.openc3.com ",-1))]),_:1}),e.createVNode(a,{icon:"mdi-close",variant:"text",onClick:l.close},null,8,["onClick"])]),e.createElementVNode("div",ne,[e.createVNode(_,{modelValue:n.search,"onUpdate:modelValue":o[0]||(o[0]=f=>n.search=f),label:"Search","prepend-inner-icon":"mdi-magnify",clearable:"",variant:"outlined",density:"compact","single-line":"","hide-details":"","data-test":"search-plugin-store"},null,8,["modelValue"]),e.createVNode(h,{modelValue:n.verifiedOnly,"onUpdate:modelValue":o[1]||(o[1]=f=>n.verifiedOnly=f),label:"Verified only",density:"compact","hide-details":"",class:"ml-4"},null,8,["modelValue"])]),e.createVNode(r),o[5]||(o[5]=e.createElementVNode("span",{class:""}," Click on a plugin to see more information about it ",-1)),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.filteredPlugins,f=>(e.openBlock(),e.createBlock(v,{key:f.id,cols:"4"},{default:e.withCtx(()=>[e.createVNode(C,e.mergeProps({ref_for:!0},f,{onTriggerInstall:l.install}),null,16,["onTriggerInstall"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),e.createVNode(V,{modelValue:n.showSettingsDialog,"onUpdate:modelValue":o[2]||(o[2]=f=>n.showSettingsDialog=f),"onUpdate:storeUrl":l.updatePluginStore},null,8,["modelValue","onUpdate:storeUrl"])],64)}const ie=x._export_sfc(te,[["render",le]]),se={components:{PluginDetailsDialog:S},mixins:[N],props:{targets:{type:Array,default:()=>[]},isModified:Boolean},emits:["edit","delete","upgrade"],data(){return{showCard:!1}},computed:{displayTitle:function(){return this.title?this.title:this.name.replace(/^openc3-cosmos-/,"").replace(/-?\d+\.\d+\.\d+(?:\.pre\.beta\d+\.\d+)?\.gem(?:__\d+)?$/,"")}},methods:{openDetails:function(){this.hasDetails&&(this.showCard=!0)},downloadPlugin:function(){g.fi.post(`/openc3-api/packages/${this.name}/download`).then(t=>{const o=window.atob(t.data.contents),i=new Uint8Array(o.length);for(let l=0;l<o.length;++l)i[l]=o.charCodeAt(l);const c=new Blob([i],{type:"application/zip"}),n=document.createElement("a");n.href=URL.createObjectURL(c),n.setAttribute("download",t.data.filename),n.click()})},downloadTarget:function(t){g.fi.post(`/openc3-api/targets/${t}/download`).then(o=>{const i=window.atob(o.data.contents),c=new Uint8Array(i.length);for(let r=0;r<i.length;++r)c[r]=i.charCodeAt(r);const n=new Blob([c],{type:"application/zip"}),l=document.createElement("a");l.href=URL.createObjectURL(n),l.setAttribute("download",o.data.filename),l.click()})},edit:function(){this.$emit("edit")},upgrade:function(){this.$emit("upgrade")},deletePrompt:function(){this.showCard=!1,this.$emit("delete")}}},re=["textContent"],ae={class:"text-subtitle-2 v-list-item-subtitle pl-0"},ce={key:0},ue=["onClick","textContent"],de=["textContent"];function pe(t,o,i,c,n,l){var v;const r=e.resolveComponent("v-img"),a=e.resolveComponent("v-icon"),s=e.resolveComponent("v-list-item"),_=e.resolveComponent("v-list"),h=e.resolveComponent("v-menu"),C=e.resolveComponent("plugin-details-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("tr",{class:e.normalizeClass({"cursor-pointer":t.hasDetails}),"data-test":"plugin-list-item"},[e.createElementVNode("td",null,[t.imageContentsWithMimeType?(e.openBlock(),e.createBlock(r,{key:0,src:t.imageContentsWithMimeType,"max-height":"56","min-width":"56"},null,8,["src"])):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,[e.createElementVNode("div",{class:"text-h6",onClick:o[0]||(o[0]=(...d)=>l.openDetails&&l.openDetails(...d)),textContent:e.toDisplayString(l.displayTitle)},null,8,re),e.createElementVNode("div",ae,[i.isModified?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(" * ")],64)):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(t.name),1)]),(v=i.targets)!=null&&v.length?(e.openBlock(),e.createElementBlock("div",ce,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.targets,(d,w)=>(e.openBlock(),e.createElementBlock("span",{key:w,class:"mr-2"},[d.modified?(e.openBlock(),e.createElementBlock("a",{key:0,style:{cursor:"pointer"},onClick:e.withModifiers(p=>l.downloadTarget(d.name),["prevent"]),textContent:e.toDisplayString(d.name)},null,8,ue)):(e.openBlock(),e.createElementBlock("span",{key:1,textContent:e.toDisplayString(d.name)},null,8,de))]))),128))])):e.createCommentVNode("",!0)]),e.createElementVNode("td",null,[e.createVNode(h,null,{activator:e.withCtx(({props:d})=>[e.createVNode(a,e.mergeProps(d,{icon:"mdi-dots-horizontal","data-test":"plugin-actions"}),null,16)]),default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(s,{title:"Download","prepend-icon":"mdi-download","data-test":"download-plugin",onClick:l.downloadPlugin},null,8,["onClick"]),e.createVNode(s,{title:"Edit Details","prepend-icon":"mdi-pencil","data-test":"edit-plugin",onClick:l.edit},null,8,["onClick"]),e.createVNode(s,{title:"Upgrade","prepend-icon":"mdi-update","data-test":"upgrade-plugin",onClick:l.upgrade},null,8,["onClick"]),e.createVNode(s,{title:"Delete","prepend-icon":"mdi-delete","data-test":"delete-plugin",onClick:l.deletePrompt},null,8,["onClick"])]),_:1})]),_:1})])],2),e.createVNode(C,e.mergeProps({modelValue:n.showCard,"onUpdate:modelValue":o[1]||(o[1]=d=>n.showCard=d)},t.plugin,{onTriggerUninstall:l.deletePrompt}),null,16,["modelValue","onTriggerUninstall"])],64)}const me=x._export_sfc(se,[["render",pe]]),ge={components:{PluginListItem:me},props:{plugins:{type:Array,required:!0},targets:{type:Object,required:!0},showDefaultTools:{type:Boolean,default:!1},defaultPlugins:{type:Array,required:!0}},emits:["edit","delete","upgrade"],data(){return{showPluginDetails:!1,detailPlugin:null}},computed:{shownPlugins(){const t=[],o=[];return this.plugins.forEach(i=>{const l=i.name.split("__")[0].split("-").slice(0,-1).join("-");this.defaultPlugins.includes(l)?o.push(i):t.push(i)}),t.sort((i,c)=>i.name<c.name?-1:i.name>c.name?1:0),this.showDefaultTools?(o.sort((i,c)=>i.name<c.name?-1:i.name>c.name?1:0),t.concat(o)):t}},methods:{showDetails:function(t){this.detailPlugin=t,this.showPluginDetails=!0},pluginTargets:function(t){let o=[];for(const i in this.targets)this.targets[i].plugin===t&&o.push(this.targets[i]);return o},isModified:function(t){return Object.entries(this.targets).some(([o,i])=>i.plugin===t&&i.modified===!0)},editPlugin:function(t){this.$emit("edit",t)},upgradePlugin(t){this.$emit("upgrade",t)},deletePrompt:function(t){this.$emit("delete",t)}}};function he(t,o,i,c,n,l){const r=e.resolveComponent("plugin-list-item"),a=e.resolveComponent("v-data-table");return e.openBlock(),e.createBlock(a,{headers:[],items:l.shownPlugins,density:"compact",class:"list","data-test":"plugin-list"},{item:e.withCtx(({item:s})=>[e.createVNode(r,e.mergeProps(s,{targets:l.pluginTargets(s.name),"is-modified":l.isModified(s.name),onEdit:()=>l.editPlugin(s.name),onUpgrade:()=>l.upgradePlugin(s.name),onDelete:()=>l.deletePrompt(s.name)}),null,16,["targets","is-modified","onEdit","onUpgrade","onDelete"])]),_:1},8,["items"])}const fe=x._export_sfc(ge,[["render",he],["__scopeId","data-v-774343d7"]]),_e={components:{PluginDialog:y.PluginDialog,PluginList:fe,PluginStore:ie,ModifiedPluginDialog:y.ModifiedPluginDialog,SimpleTextDialog:M.SimpleTextDialog},data(){return{pluginName:null,variables:{},storeId:null,pluginTxt:"",file:null,currentPlugin:null,pluginHashTmp:null,existingPluginTxt:null,progress:0,pluginDelete:!1,api:new g.yi,plugins:[],targets:{},processes:{},alert:"",alertType:"success",showAlert:!1,showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",showPluginStore:!1,showPluginDialog:!1,showModifiedPluginDialog:!1,showDefaultTools:!1,defaultPlugins:["openc3-cosmos-tool-admin","openc3-cosmos-tool-bucketexplorer","openc3-cosmos-tool-cmdsender","openc3-cosmos-tool-cmdqueue","openc3-cosmos-tool-cmdhistory","openc3-cosmos-tool-cmdtlmserver","openc3-cosmos-tool-dataextractor","openc3-cosmos-tool-dataviewer","openc3-cosmos-tool-docs","openc3-cosmos-tool-handbooks","openc3-cosmos-tool-iframe","openc3-cosmos-tool-limitsmonitor","openc3-cosmos-tool-packetviewer","openc3-cosmos-tool-scriptrunner","openc3-cosmos-tool-tablemanager","openc3-cosmos-tool-tlmgrapher","openc3-cosmos-tool-tlmviewer","openc3-cosmos-enterprise-tool-admin","openc3-cosmos-tool-autonomic","openc3-cosmos-tool-calendar","openc3-cosmos-tool-grafana","openc3-cosmos-tool-systemhealth","openc3-cosmos-tool-logexplorer","openc3-enterprise-tool-base","openc3-tool-base"]}},watch:{showPluginDialog:function(t,o){t===!1&&(this.file=null,this.$refs.fileInput.value=null)}},created(){this.api.update_plugin_store()},mounted(){this.update(),this.updateProcesses();const t=this;window.onpopstate=function(){t.showPluginStore&&(t.showPluginStore=!1,history.go(1))}},methods:{resetControlState:function(){this.pluginName=null,this.variables={},this.storeId=null,this.pluginTxt="",this.file=null,this.currentPlugin=null,this.pluginHashTmp=null,this.existingPluginTxt=null,this.progress=0,this.pluginDelete=!1},pluginTargets:function(t){let o=[];for(const i in this.targets)this.targets[i].plugin===t&&o.push(this.targets[i]);return o},isModified:function(t){return Object.entries(this.targets).some(([o,i])=>i.plugin===t&&i.modified===!0)},showOutput:function(t){this.processOutput=t.output,this.showProcessOutput=!0},update:function(){g.fi.get("/openc3-api/plugins/all").then(t=>{this.plugins=Object.entries(t.data).map(([o,i])=>i)}),g.fi.get("/openc3-api/targets_modified").then(t=>{this.targets=t.data})},updateProcesses:function(){g.fi.get("openc3-api/process_status/plugin_?substr=true").then(t=>{this.processes=t.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},5e3)})},formatDate(t){return P.format(P.toDate(parseInt(t)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},upload:function(t=null,o=null){const i=t?"put":"post",c=t?`/openc3-api/plugins/${t}`:"/openc3-api/plugins",n=new FormData;o===null?n.append("plugin",this.file,this.file.name):n.append("store_id",o.id);let l=this;g.fi[i](c,{data:n,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(a){let s=Math.round(a.loaded*100/a.total);l.progress=s}}).then(a=>{this.progress=100,this.alert="Uploaded file",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update();let s=null;a.data.existing_plugin_txt_lines!==void 0&&(s=a.data.existing_plugin_txt_lines.join(`
|
|
2
2
|
`));let _=a.data.plugin_txt_lines.join(`
|
|
3
3
|
`);this.pluginName=a.data.name,this.variables=a.data.variables,this.storeId=a.data.store_id,this.pluginTxt=_,this.existingPluginTxt=s,this.showPluginDialog=!0,this.file=void 0}).catch(a=>{this.currentPlugin=null,this.file=void 0})},pluginCallback:function(t){this.showPluginDialog=!1,this.currentPlugin!==null&&(t.name=this.currentPlugin),this.pluginHashTmp=t,this.isModified(this.currentPlugin)?(this.pluginDelete=!1,this.showModifiedPluginDialog=!0):this.pluginInstall()},modifiedSubmit:async function(t){if(t===!0)for(let o of this.pluginTargets(this.currentPlugin))o.modified==!0&&await g.fi.post(`/openc3-api/targets/${o.name}/delete_modified`);this.pluginDelete?this.deletePlugin(this.currentPlugin):this.pluginInstall()},pluginInstall:function(){g.fi.post(`/openc3-api/plugins/install/${this.pluginName}`,{data:{plugin_hash:JSON.stringify(this.pluginHashTmp)}}).then(t=>{this.alert=`Started installing plugin ${this.pluginName} ...`,this.alertType="success",this.showAlert=!0,this.currentPlugin=null,this.file=void 0,this.variables={},this.pluginTxt="",this.existingPluginTxt=null,this.storeId=null,setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3),this.update()})},editPlugin:function(t){this.resetControlState(),g.fi.get(`/openc3-api/plugins/${t}`).then(o=>{let i=null;o.data.existing_plugin_txt_lines!==void 0&&(i=o.data.existing_plugin_txt_lines.join(`
|
|
4
4
|
`)),this.pluginName=o.data.name,this.variables=o.data.variables,this.pluginTxt=o.data.plugin_txt_lines.join(`
|
|
5
5
|
`),this.existingPluginTxt=i,this.showPluginDialog=!0})},deletePrompt:function(t){this.resetControlState(),this.$dialog.confirm(`Are you sure you want to remove: ${t}`,{okText:"Delete",cancelText:"Cancel"}).then(o=>{this.isModified(t)?(this.currentPlugin=t,this.pluginDelete=!0,this.showModifiedPluginDialog=!0):this.deletePlugin(t)})},deletePlugin:function(t){this.alert=`Removing plugin ${t} ...`,this.alertType="success",this.showAlert=!0,g.fi.delete(`/openc3-api/plugins/${t}`).then(o=>{setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3)}),this.update()},upgradePlugin(t){this.resetControlState(),this.currentPlugin=t,this.$refs.fileInput.click()},selectFile(){this.resetControlState(),this.$refs.fileInput.click()},fileChange(t){const o=t.target.files;if(o.length>0)if(this.file=o[0],this.currentPlugin!==null)if(this.file.name.split(".gem")[0]==this.currentPlugin.split(".gem")[0])this.$dialog.confirm(`The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}).catch(i=>{});else{let i=this.file.name.split("-"),c=i.findIndex(r=>r.includes(".")),n=i.slice(0,c).join("-");i=this.currentPlugin.split("-"),c=i.findIndex(r=>r.includes("."));let l=i.slice(0,c).join("-");n!==l?this.$dialog.confirm(`The new gem base name ${n} doesn't match the existing ${l}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}):this.upload(this.currentPlugin)}else this.upload();else this.$refs.fileInput.value=null},openStore(){this.resetControlState(),this.showPluginStore=!0}}},ve={class:"mt-2"},Ce=["textContent"],we=["textContent"];function Ve(t,o,i,c,n,l){const r=e.resolveComponent("v-btn"),a=e.resolveComponent("v-icon"),s=e.resolveComponent("v-col"),_=e.resolveComponent("rux-progress"),h=e.resolveComponent("v-row"),C=e.resolveComponent("v-divider"),v=e.resolveComponent("v-alert"),d=e.resolveComponent("v-list-item-title"),w=e.resolveComponent("v-list-item-subtitle"),p=e.resolveComponent("v-progress-circular"),V=e.resolveComponent("v-tooltip"),f=e.resolveComponent("v-list-item"),k=e.resolveComponent("v-list"),m=e.resolveComponent("v-switch"),D=e.resolveComponent("plugin-list"),B=e.resolveComponent("plugin-dialog"),E=e.resolveComponent("modified-plugin-dialog"),U=e.resolveComponent("simple-text-dialog"),I=e.resolveComponent("plugin-store"),O=e.resolveComponent("v-bottom-sheet");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(h,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(s,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(r,{"append-icon":"mdi-store",onClick:l.openStore},{default:e.withCtx(()=>[...o[9]||(o[9]=[e.createTextVNode(" Browse Plugins ",-1)])]),_:1},8,["onClick"]),e.createVNode(r,{"append-icon":"mdi-paperclip",class:"mx-2",onClick:l.selectFile},{default:e.withCtx(()=>[...o[10]||(o[10]=[e.createTextVNode(" Install From File ",-1)])]),_:1},8,["onClick"]),e.createElementVNode("input",{ref:"fileInput",accept:".gem",style:{display:"none"},type:"file",onChange:o[0]||(o[0]=(...u)=>l.fileChange&&l.fileChange(...u))},null,544),o[14]||(o[14]=e.createElementVNode("br",null,null,-1)),e.createElementVNode("p",ve,[o[12]||(o[12]=e.createTextVNode(" Note: Use ",-1)),e.createVNode(a,null,{default:e.withCtx(()=>[...o[11]||(o[11]=[e.createTextVNode(" mdi-dots-horizontal ",-1)])]),_:1}),o[13]||(o[13]=e.createTextVNode(" in the Installed Plugins list to upgrade existing plugins ",-1))])]),_:1}),e.createVNode(s,{class:"ml-4 mr-2",cols:"4"},{default:e.withCtx(()=>[e.createVNode(_,{value:n.progress},null,8,["value"])]),_:1})]),_:1}),e.createVNode(h,{"no-gutters":"",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(s,{align:"right",class:"mr-2"},{default:e.withCtx(()=>[...o[15]||(o[15]=[e.createElementVNode("div",null,"* indicates a modified plugin",-1),e.createElementVNode("div",null,"Click target link to download modifications",-1)])]),_:1})]),_:1}),e.createVNode(C),e.createVNode(v,{modelValue:n.showAlert,"onUpdate:modelValue":o[1]||(o[1]=u=>n.showAlert=u),closable:"",type:n.alertType,text:n.alert,"data-test":"plugin-alert"},null,8,["modelValue","type","text"]),Object.keys(n.processes).length>0?(e.openBlock(),e.createBlock(k,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(h,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h5"},{default:e.withCtx(()=>[...o[16]||(o[16]=[e.createTextVNode(" Process List ",-1)])]),_:1}),e.createVNode(s,{align:"right"},{default:e.withCtx(()=>[...o[17]||(o[17]=[e.createElementVNode("div",null,"Showing last 10 min of activity",-1)])]),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.processes,u=>(e.openBlock(),e.createElementBlock("div",{key:u.name},[e.createVNode(f,null,{append:e.withCtx(()=>[u.state==="Running"?(e.openBlock(),e.createBlock(p,{key:0,indeterminate:"",color:"primary"})):(e.openBlock(),e.createBlock(V,{key:1,"open-delay":600,location:"top"},{activator:e.withCtx(({props:L})=>[e.createVNode(r,e.mergeProps({ref_for:!0},L,{icon:"mdi-eye",variant:"text","aria-label":"Show Output","data-test":"show-output",onClick:ke=>l.showOutput(u)}),null,16,["onClick"])]),default:e.withCtx(()=>[o[18]||(o[18]=e.createElementVNode("span",null," Show Output ",-1))]),_:2},1024))]),default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(u.state.toLowerCase()),textContent:e.toDisplayString(`Processing ${u.process_type}: ${u.detail} - ${u.state}`)},null,10,Ce)]),_:2},1024),e.createVNode(w,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+l.formatDate(u.updated_at))},null,8,we)]),_:2},1024)]),_:2},1024),e.createVNode(C)]))),128))]),_:1})):e.createCommentVNode("",!0),e.createVNode(h,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h5"},{default:e.withCtx(()=>[...o[19]||(o[19]=[e.createTextVNode(" Installed Plugins ",-1)])]),_:1}),e.createVNode(s,{class:"v-col-auto"},{default:e.withCtx(()=>[e.createVNode(m,{modelValue:n.showDefaultTools,"onUpdate:modelValue":o[2]||(o[2]=u=>n.showDefaultTools=u),label:"Show Default Tools",density:"compact","hide-details":"","data-test":"show-default-tools"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(D,{plugins:n.plugins,targets:n.targets,"show-default-tools":n.showDefaultTools,"default-plugins":n.defaultPlugins,onEdit:l.editPlugin,onUpgrade:l.upgradePlugin,onDelete:l.deletePrompt},null,8,["plugins","targets","show-default-tools","default-plugins","onEdit","onUpgrade","onDelete"]),n.showPluginDialog?(e.openBlock(),e.createBlock(B,{key:1,modelValue:n.showPluginDialog,"onUpdate:modelValue":o[3]||(o[3]=u=>n.showPluginDialog=u),"plugin-name":n.pluginName,variables:n.variables,"plugin-txt":n.pluginTxt,"existing-plugin-txt":n.existingPluginTxt,"store-id":n.storeId,onCallback:l.pluginCallback},null,8,["modelValue","plugin-name","variables","plugin-txt","existing-plugin-txt","store-id","onCallback"])):e.createCommentVNode("",!0),n.showModifiedPluginDialog?(e.openBlock(),e.createBlock(E,{key:2,modelValue:n.showModifiedPluginDialog,"onUpdate:modelValue":o[4]||(o[4]=u=>n.showModifiedPluginDialog=u),"plugin-name":n.currentPlugin,targets:l.pluginTargets(n.currentPlugin),"plugin-delete":n.pluginDelete,onSubmit:l.modifiedSubmit},null,8,["modelValue","plugin-name","targets","plugin-delete","onSubmit"])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:n.showProcessOutput,"onUpdate:modelValue":o[5]||(o[5]=u=>n.showProcessOutput=u),title:"Process Output",text:n.processOutput},null,8,["modelValue","text"]),e.createVNode(O,{modelValue:n.showPluginStore,"onUpdate:modelValue":o[8]||(o[8]=u=>n.showPluginStore=u),fullscreen:""},{default:e.withCtx(()=>[e.createVNode(I,{onClose:o[6]||(o[6]=()=>n.showPluginStore=!1),onTriggerInstall:o[7]||(o[7]=u=>l.upload(null,u))})]),_:1},8,["modelValue"])])}const xe=x._export_sfc(_e,[["render",Ve],["__scopeId","data-v-eb302876"]]);exports.default=xe;
|
|
6
|
-
//# sourceMappingURL=PluginsTab-
|
|
6
|
+
//# sourceMappingURL=PluginsTab-DxxlKeVx.cjs.map
|