@openc3/vue-common 7.0.1 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ArrayWidget-BHjh3qLF.cjs → ArrayWidget-CQCphADm.cjs} +3 -3
- package/dist/{ArrayWidget-BHjh3qLF.cjs.map → ArrayWidget-CQCphADm.cjs.map} +1 -1
- package/dist/{ArrayWidget-Dh6zDiC7.js → ArrayWidget-CcQFJGCA.js} +7 -6
- package/dist/{ArrayWidget-Dh6zDiC7.js.map → ArrayWidget-CcQFJGCA.js.map} +1 -1
- package/dist/{ArrayplotWidget-CSc_TqNm.js → ArrayplotWidget-DGJEXAY0.js} +6 -5
- package/dist/{ArrayplotWidget-CSc_TqNm.js.map → ArrayplotWidget-DGJEXAY0.js.map} +1 -1
- package/dist/ArrayplotWidget-J0xWFYsb.cjs +2 -0
- package/dist/{ArrayplotWidget-BHD-TGQO.cjs.map → ArrayplotWidget-J0xWFYsb.cjs.map} +1 -1
- package/dist/BarColumn-DrvHLEts.cjs +2 -0
- package/dist/BarColumn-DrvHLEts.cjs.map +1 -0
- package/dist/{BarColumn-DmjMnw5l.js → BarColumn-DwZmAe8g.js} +11 -9
- package/dist/BarColumn-DwZmAe8g.js.map +1 -0
- package/dist/{BlockWidget-BdR_HCVc.js → BlockWidget-BHtugveV.js} +14 -13
- package/dist/{BlockWidget-BdR_HCVc.js.map → BlockWidget-BHtugveV.js.map} +1 -1
- package/dist/{BlockWidget-Bi1PfS1k.cjs → BlockWidget-_HTXwzGu.cjs} +2 -2
- package/dist/{BlockWidget-Bi1PfS1k.cjs.map → BlockWidget-_HTXwzGu.cjs.map} +1 -1
- package/dist/ButtonWidget-C_4jUjbD.cjs +3 -0
- package/dist/ButtonWidget-C_4jUjbD.cjs.map +1 -0
- package/dist/{ButtonWidget-DZ4VCNWU.js → ButtonWidget-Cc9cYsg8.js} +7 -6
- package/dist/ButtonWidget-Cc9cYsg8.js.map +1 -0
- package/dist/{CanvasWidget-DTEx-DpZ.cjs → CanvasWidget-98hvMkWl.cjs} +2 -2
- package/dist/{CanvasWidget-DTEx-DpZ.cjs.map → CanvasWidget-98hvMkWl.cjs.map} +1 -1
- package/dist/{CanvasWidget-DuXOo3jG.js → CanvasWidget-Bn70gBcc.js} +2 -2
- package/dist/{CanvasWidget-DuXOo3jG.js.map → CanvasWidget-Bn70gBcc.js.map} +1 -1
- package/dist/{CanvasdotWidget-bbOquK8B.cjs → CanvasdotWidget-6s1Kzzoj.cjs} +2 -2
- package/dist/{CanvasdotWidget-bbOquK8B.cjs.map → CanvasdotWidget-6s1Kzzoj.cjs.map} +1 -1
- package/dist/{CanvasdotWidget-WoLpxI1u.js → CanvasdotWidget-CMROfW3O.js} +2 -2
- package/dist/{CanvasdotWidget-WoLpxI1u.js.map → CanvasdotWidget-CMROfW3O.js.map} +1 -1
- package/dist/{CanvasimageWidget-tWpK5rsv.js → CanvasimageWidget-BpM05v_m.js} +3 -3
- package/dist/{CanvasimageWidget-tWpK5rsv.js.map → CanvasimageWidget-BpM05v_m.js.map} +1 -1
- package/dist/{CanvasimageWidget-D2EqsK7w.cjs → CanvasimageWidget-Du_TULyr.cjs} +2 -2
- package/dist/{CanvasimageWidget-D2EqsK7w.cjs.map → CanvasimageWidget-Du_TULyr.cjs.map} +1 -1
- package/dist/{CanvasimagevalueWidget-By_DiQ75.cjs → CanvasimagevalueWidget-DUiZEzwq.cjs} +2 -2
- package/dist/{CanvasimagevalueWidget-By_DiQ75.cjs.map → CanvasimagevalueWidget-DUiZEzwq.cjs.map} +1 -1
- package/dist/{CanvasimagevalueWidget-BVzJYz3l.js → CanvasimagevalueWidget-E6G93iGc.js} +3 -3
- package/dist/{CanvasimagevalueWidget-BVzJYz3l.js.map → CanvasimagevalueWidget-E6G93iGc.js.map} +1 -1
- package/dist/{CanvaslabelWidget-CDFf8Vll.js → CanvaslabelWidget-C074R2Fy.js} +2 -2
- package/dist/{CanvaslabelWidget-CDFf8Vll.js.map → CanvaslabelWidget-C074R2Fy.js.map} +1 -1
- package/dist/{CanvaslabelWidget-DiPxyXoX.cjs → CanvaslabelWidget-C7K2dtNN.cjs} +2 -2
- package/dist/{CanvaslabelWidget-DiPxyXoX.cjs.map → CanvaslabelWidget-C7K2dtNN.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-DzJKD6qs.js → CanvaslabelvalueWidget-B0nJeS4X.js} +2 -2
- package/dist/{CanvaslabelvalueWidget-DzJKD6qs.js.map → CanvaslabelvalueWidget-B0nJeS4X.js.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-Cw5CCQTi.cjs → CanvaslabelvalueWidget-BuayHPZu.cjs} +2 -2
- package/dist/{CanvaslabelvalueWidget-Cw5CCQTi.cjs.map → CanvaslabelvalueWidget-BuayHPZu.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-BttTXCZq.js → CanvaslineWidget-CxnNAqOX.js} +2 -2
- package/dist/{CanvaslineWidget-BttTXCZq.js.map → CanvaslineWidget-CxnNAqOX.js.map} +1 -1
- package/dist/{CanvaslineWidget-BECtKTPL.cjs → CanvaslineWidget-DaBwCmSV.cjs} +2 -2
- package/dist/{CanvaslineWidget-BECtKTPL.cjs.map → CanvaslineWidget-DaBwCmSV.cjs.map} +1 -1
- package/dist/{CanvaslinevalueWidget-i6G0JfnZ.js → CanvaslinevalueWidget-BwfFyCwH.js} +2 -2
- package/dist/{CanvaslinevalueWidget-i6G0JfnZ.js.map → CanvaslinevalueWidget-BwfFyCwH.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-5duJ98qu.cjs → CanvaslinevalueWidget-xSHdgNCO.cjs} +2 -2
- package/dist/{CanvaslinevalueWidget-5duJ98qu.cjs.map → CanvaslinevalueWidget-xSHdgNCO.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-CTMObPhX.cjs → CheckbuttonWidget-Bey7tHx-.cjs} +2 -2
- package/dist/{CheckbuttonWidget-CTMObPhX.cjs.map → CheckbuttonWidget-Bey7tHx-.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-18jtf7sh.js → CheckbuttonWidget-yAm10oX0.js} +2 -2
- package/dist/{CheckbuttonWidget-18jtf7sh.js.map → CheckbuttonWidget-yAm10oX0.js.map} +1 -1
- package/dist/{ClassificationBanners-BmnQODLn.js → ClassificationBanners-DxpE_iPX.js} +2 -2
- package/dist/{ClassificationBanners-BmnQODLn.js.map → ClassificationBanners-DxpE_iPX.js.map} +1 -1
- package/dist/ClassificationBanners-xG4DOlqJ.cjs +2 -0
- package/dist/{ClassificationBanners-DjGCuH-4.cjs.map → ClassificationBanners-xG4DOlqJ.cjs.map} +1 -1
- package/dist/{ComboboxWidget-BjaVFbD4.js → ComboboxWidget-BnWksnnp.js} +2 -2
- package/dist/{ComboboxWidget-BjaVFbD4.js.map → ComboboxWidget-BnWksnnp.js.map} +1 -1
- package/dist/{ComboboxWidget-Cc0Acq9q.cjs → ComboboxWidget-Mh6axKMv.cjs} +2 -2
- package/dist/{ComboboxWidget-Cc0Acq9q.cjs.map → ComboboxWidget-Mh6axKMv.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-CO-nvphS.js → CriticalCmdDialog-D0fIp8Tq.js} +24 -23
- package/dist/{CriticalCmdDialog-CO-nvphS.js.map → CriticalCmdDialog-D0fIp8Tq.js.map} +1 -1
- package/dist/CriticalCmdDialog-DJ3FWL0_.cjs +2 -0
- package/dist/{CriticalCmdDialog-eytxCQto.cjs.map → CriticalCmdDialog-DJ3FWL0_.cjs.map} +1 -1
- package/dist/{DateWidget-DkFAFlc8.js → DateWidget-CAiG2FIl.js} +9 -8
- package/dist/{DateWidget-DkFAFlc8.js.map → DateWidget-CAiG2FIl.js.map} +1 -1
- package/dist/DateWidget-DUYYp-Yx.cjs +2 -0
- package/dist/{DateWidget-Cle8FY8Q.cjs.map → DateWidget-DUYYp-Yx.cjs.map} +1 -1
- package/dist/DetailsDialog-D3iPUi8b.cjs +2 -0
- package/dist/{DetailsDialog-BcMaTfuQ.cjs.map → DetailsDialog-D3iPUi8b.cjs.map} +1 -1
- package/dist/{DetailsDialog-sqja4Lzq.js → DetailsDialog-q5SDzw3R.js} +72 -71
- package/dist/{DetailsDialog-sqja4Lzq.js.map → DetailsDialog-q5SDzw3R.js.map} +1 -1
- package/dist/EventListDialog-1RsuuLHZ.cjs +2 -0
- package/dist/EventListDialog-1RsuuLHZ.cjs.map +1 -0
- package/dist/{EventListDialog-DjCQAwGl.js → EventListDialog-HuEtOu3k.js} +61 -58
- package/dist/EventListDialog-HuEtOu3k.js.map +1 -0
- package/dist/FilechecksumWidget-ByVrYgzI.cjs +2 -0
- package/dist/{FilechecksumWidget-2ta-UvLp.cjs.map → FilechecksumWidget-ByVrYgzI.cjs.map} +1 -1
- package/dist/{FilechecksumWidget-DqJ_hvN4.js → FilechecksumWidget-DeW9wy5d.js} +9 -9
- package/dist/{FilechecksumWidget-DqJ_hvN4.js.map → FilechecksumWidget-DeW9wy5d.js.map} +1 -1
- package/dist/{FiledisplayWidget-CYznG_tf.js → FiledisplayWidget-C_zPFu2E.js} +7 -6
- package/dist/{FiledisplayWidget-CYznG_tf.js.map → FiledisplayWidget-C_zPFu2E.js.map} +1 -1
- package/dist/FiledisplayWidget-hYmg981k.cjs +2 -0
- package/dist/{FiledisplayWidget-BUKXIQir.cjs.map → FiledisplayWidget-hYmg981k.cjs.map} +1 -1
- package/dist/{FormatvalueWidget-BpFXnA_U.cjs → FormatvalueWidget-7VD_kwxB.cjs} +2 -2
- package/dist/{FormatvalueWidget-BpFXnA_U.cjs.map → FormatvalueWidget-7VD_kwxB.cjs.map} +1 -1
- package/dist/{FormatvalueWidget-BnVu4YGx.js → FormatvalueWidget-BrvPWwfN.js} +3 -3
- package/dist/{FormatvalueWidget-BnVu4YGx.js.map → FormatvalueWidget-BrvPWwfN.js.map} +1 -1
- package/dist/{Graph-CUFzx8Ti.js → Graph-BCvaO4yI.js} +45 -38
- package/dist/Graph-BCvaO4yI.js.map +1 -0
- package/dist/Graph-BUqdz6gu.cjs +2 -0
- package/dist/Graph-BUqdz6gu.cjs.map +1 -0
- package/dist/GraphWidget-BdP0xM_P.cjs +2 -0
- package/dist/{GraphWidget-BvCQHVxQ.cjs.map → GraphWidget-BdP0xM_P.cjs.map} +1 -1
- package/dist/{GraphWidget-DO5XbOGy.js → GraphWidget-QS-VJoes.js} +26 -31
- package/dist/{GraphWidget-DO5XbOGy.js.map → GraphWidget-QS-VJoes.js.map} +1 -1
- package/dist/{HorizontalWidget-BBQE-dP-.cjs → HorizontalWidget-B9j7DG2Q.cjs} +2 -2
- package/dist/{HorizontalWidget-BBQE-dP-.cjs.map → HorizontalWidget-B9j7DG2Q.cjs.map} +1 -1
- package/dist/{HorizontalWidget-BA9PiP3d.js → HorizontalWidget-cFSsdChw.js} +2 -2
- package/dist/{HorizontalWidget-BA9PiP3d.js.map → HorizontalWidget-cFSsdChw.js.map} +1 -1
- package/dist/{HorizontalboxWidget-CX7J8RdA.cjs → HorizontalboxWidget-C3zHRO9h.cjs} +2 -2
- package/dist/{HorizontalboxWidget-CX7J8RdA.cjs.map → HorizontalboxWidget-C3zHRO9h.cjs.map} +1 -1
- package/dist/{HorizontalboxWidget-B-7HOqgl.js → HorizontalboxWidget-CKA7rLGd.js} +5 -5
- package/dist/{HorizontalboxWidget-B-7HOqgl.js.map → HorizontalboxWidget-CKA7rLGd.js.map} +1 -1
- package/dist/{HorizontallineWidget-D-o9MGo0.js → HorizontallineWidget-BqbLK0zc.js} +2 -2
- package/dist/{HorizontallineWidget-D-o9MGo0.js.map → HorizontallineWidget-BqbLK0zc.js.map} +1 -1
- package/dist/{HorizontallineWidget-odTFoB8u.cjs → HorizontallineWidget-GGNFIo1N.cjs} +2 -2
- package/dist/{HorizontallineWidget-odTFoB8u.cjs.map → HorizontallineWidget-GGNFIo1N.cjs.map} +1 -1
- package/dist/{IframeWidget-BzOka-fX.js → IframeWidget-CITX8Es1.js} +2 -2
- package/dist/{IframeWidget-BzOka-fX.js.map → IframeWidget-CITX8Es1.js.map} +1 -1
- package/dist/{IframeWidget-cTHu_Rmp.cjs → IframeWidget-lK6Cw1Pp.cjs} +2 -2
- package/dist/{IframeWidget-cTHu_Rmp.cjs.map → IframeWidget-lK6Cw1Pp.cjs.map} +1 -1
- package/dist/ImageLoader-CkTaGfCC.cjs +2 -0
- package/dist/{ImageLoader-BTEOukIw.cjs.map → ImageLoader-CkTaGfCC.cjs.map} +1 -1
- package/dist/{ImageLoader-CstmWFM4.js → ImageLoader-DQV_11Vd.js} +2 -2
- package/dist/{ImageLoader-CstmWFM4.js.map → ImageLoader-DQV_11Vd.js.map} +1 -1
- package/dist/{ImageviewerWidget-BA9uOM1q.js → ImageviewerWidget-BIsSA7KD.js} +2 -2
- package/dist/{ImageviewerWidget-BA9uOM1q.js.map → ImageviewerWidget-BIsSA7KD.js.map} +1 -1
- package/dist/{ImageviewerWidget-CLAFwmaB.cjs → ImageviewerWidget-CvbsaXCd.cjs} +2 -2
- package/dist/{ImageviewerWidget-CLAFwmaB.cjs.map → ImageviewerWidget-CvbsaXCd.cjs.map} +1 -1
- package/dist/InterfacesTab-Cfvks-ms.cjs +2 -0
- package/dist/{InterfacesTab-CM0CGFVS.cjs.map → InterfacesTab-Cfvks-ms.cjs.map} +1 -1
- package/dist/{InterfacesTab-C3mDLkGC.js → InterfacesTab-twne_Qp4.js} +11 -10
- package/dist/{InterfacesTab-C3mDLkGC.js.map → InterfacesTab-twne_Qp4.js.map} +1 -1
- package/dist/{LabelWidget-CMmVq1mx.cjs → LabelWidget-BFWd6Vgh.cjs} +2 -2
- package/dist/{LabelWidget-CMmVq1mx.cjs.map → LabelWidget-BFWd6Vgh.cjs.map} +1 -1
- package/dist/{LabelWidget-Da2howZF.js → LabelWidget-FQI-cH_A.js} +2 -2
- package/dist/{LabelWidget-Da2howZF.js.map → LabelWidget-FQI-cH_A.js.map} +1 -1
- package/dist/{LabelledWidget-CAqH0oWs.cjs → LabelledWidget-AZifUp-f.cjs} +2 -2
- package/dist/{LabelledWidget-CAqH0oWs.cjs.map → LabelledWidget-AZifUp-f.cjs.map} +1 -1
- package/dist/{LabelledWidget-BH8y3OXT.js → LabelledWidget-KGXtQ4Zb.js} +4 -4
- package/dist/{LabelledWidget-BH8y3OXT.js.map → LabelledWidget-KGXtQ4Zb.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-Brl24F4c.js → LabelprogressbarWidget-72WyzD_Q.js} +4 -4
- package/dist/{LabelprogressbarWidget-Brl24F4c.js.map → LabelprogressbarWidget-72WyzD_Q.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-BxLGmW9T.cjs → LabelprogressbarWidget-Bd2E9G7V.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-BxLGmW9T.cjs.map → LabelprogressbarWidget-Bd2E9G7V.cjs.map} +1 -1
- package/dist/{LabelsparklineWidget-D22MB7-4.js → LabelsparklineWidget-DtWNf4mK.js} +4 -4
- package/dist/{LabelsparklineWidget-D22MB7-4.js.map → LabelsparklineWidget-DtWNf4mK.js.map} +1 -1
- package/dist/{LabelsparklineWidget-BUXOpBeB.cjs → LabelsparklineWidget-__3CB0T-.cjs} +2 -2
- package/dist/{LabelsparklineWidget-BUXOpBeB.cjs.map → LabelsparklineWidget-__3CB0T-.cjs.map} +1 -1
- package/dist/LabelvalueWidget-B681T0uR.cjs +2 -0
- package/dist/LabelvalueWidget-B681T0uR.cjs.map +1 -0
- package/dist/{LabelvalueWidget-_1JPbK-K.js → LabelvalueWidget-D_JLdY7r.js} +11 -12
- package/dist/LabelvalueWidget-D_JLdY7r.js.map +1 -0
- package/dist/LabelvaluedescWidget-BppM5vGp.js +64 -0
- package/dist/LabelvaluedescWidget-BppM5vGp.js.map +1 -0
- package/dist/LabelvaluedescWidget-CiGIPdMG.cjs +2 -0
- package/dist/LabelvaluedescWidget-CiGIPdMG.cjs.map +1 -0
- package/dist/{LabelvaluelimitsbarWidget-C9PlEhWo.js → LabelvaluelimitsbarWidget-B69ogLif.js} +4 -4
- package/dist/{LabelvaluelimitsbarWidget-C9PlEhWo.js.map → LabelvaluelimitsbarWidget-B69ogLif.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-BGag8V6k.cjs → LabelvaluelimitsbarWidget-Cmb4kGcv.cjs} +2 -2
- package/dist/{LabelvaluelimitsbarWidget-BGag8V6k.cjs.map → LabelvaluelimitsbarWidget-Cmb4kGcv.cjs.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs → LabelvaluelimitscolumnWidget-BXdmh9So.cjs} +2 -2
- package/dist/{LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs.map → LabelvaluelimitscolumnWidget-BXdmh9So.cjs.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-Cay6AhoZ.js → LabelvaluelimitscolumnWidget-DPYwFdgq.js} +5 -5
- package/dist/{LabelvaluelimitscolumnWidget-Cay6AhoZ.js.map → LabelvaluelimitscolumnWidget-DPYwFdgq.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-s_8IgY-C.js → LabelvaluerangebarWidget-BT0BcOoK.js} +4 -4
- package/dist/{LabelvaluerangebarWidget-s_8IgY-C.js.map → LabelvaluerangebarWidget-BT0BcOoK.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-Dbibpimv.cjs → LabelvaluerangebarWidget-cavgscEk.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-Dbibpimv.cjs.map → LabelvaluerangebarWidget-cavgscEk.cjs.map} +1 -1
- package/dist/{Layout-DwWEea79.cjs → Layout-D1ukrMwN.cjs} +2 -2
- package/dist/{Layout-DwWEea79.cjs.map → Layout-D1ukrMwN.cjs.map} +1 -1
- package/dist/{Layout-D7RGn0Fe.js → Layout-d-vb0okO.js} +2 -2
- package/dist/{Layout-D7RGn0Fe.js.map → Layout-d-vb0okO.js.map} +1 -1
- package/dist/{LedWidget-DgMtvsiv.js → LedWidget-Cmr6eVG2.js} +7 -6
- package/dist/{LedWidget-DgMtvsiv.js.map → LedWidget-Cmr6eVG2.js.map} +1 -1
- package/dist/LedWidget-Dwrm6hTX.cjs +2 -0
- package/dist/{LedWidget-BaiKDozd.cjs.map → LedWidget-Dwrm6hTX.cjs.map} +1 -1
- package/dist/{LimitsBar-BFM38vQL.cjs → LimitsBar-Dz1lZ_81.cjs} +2 -2
- package/dist/{LimitsBar-BFM38vQL.cjs.map → LimitsBar-Dz1lZ_81.cjs.map} +1 -1
- package/dist/{LimitsBar-CcOaAw0C.js → LimitsBar-qMynDHYT.js} +2 -2
- package/dist/{LimitsBar-CcOaAw0C.js.map → LimitsBar-qMynDHYT.js.map} +1 -1
- package/dist/{LimitsbarWidget-DpmJn1Lo.js → LimitsbarWidget-CMvcwa-m.js} +3 -3
- package/dist/{LimitsbarWidget-DpmJn1Lo.js.map → LimitsbarWidget-CMvcwa-m.js.map} +1 -1
- package/dist/{LimitsbarWidget-ConP3qI5.cjs → LimitsbarWidget-vIP9AUk4.cjs} +2 -2
- package/dist/{LimitsbarWidget-ConP3qI5.cjs.map → LimitsbarWidget-vIP9AUk4.cjs.map} +1 -1
- package/dist/LimitscolorWidget-CPuknJPk.cjs +2 -0
- package/dist/{LimitscolorWidget-veWQ4NXl.cjs.map → LimitscolorWidget-CPuknJPk.cjs.map} +1 -1
- package/dist/{LimitscolorWidget-BMXiEaDm.js → LimitscolorWidget-CZ9wMtcI.js} +7 -6
- package/dist/{LimitscolorWidget-BMXiEaDm.js.map → LimitscolorWidget-CZ9wMtcI.js.map} +1 -1
- package/dist/{LimitscolumnWidget-CJABAor8.cjs → LimitscolumnWidget-r-nOETY5.cjs} +2 -2
- package/dist/{LimitscolumnWidget-CJABAor8.cjs.map → LimitscolumnWidget-r-nOETY5.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-ufFMz6R-.js → LimitscolumnWidget-r84KJGU-.js} +2 -2
- package/dist/{LimitscolumnWidget-ufFMz6R-.js.map → LimitscolumnWidget-r84KJGU-.js.map} +1 -1
- package/dist/LinegraphWidget-BMUI8q6Q.cjs +2 -0
- package/dist/{LinegraphWidget-3E8L5CvM.cjs.map → LinegraphWidget-BMUI8q6Q.cjs.map} +1 -1
- package/dist/{LinegraphWidget-BC2wVOny.js → LinegraphWidget-COGBGOjF.js} +10 -9
- package/dist/{LinegraphWidget-BC2wVOny.js.map → LinegraphWidget-COGBGOjF.js.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-DICgiNQo.cjs → MatrixbycolumnsWidget-BoNbbrEi.cjs} +2 -2
- package/dist/{MatrixbycolumnsWidget-DICgiNQo.cjs.map → MatrixbycolumnsWidget-BoNbbrEi.cjs.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-DfUAeBnO.js → MatrixbycolumnsWidget-Dx2iz0YF.js} +3 -3
- package/dist/{MatrixbycolumnsWidget-DfUAeBnO.js.map → MatrixbycolumnsWidget-Dx2iz0YF.js.map} +1 -1
- package/dist/{MicroservicesTab-B0SZVty3.js → MicroservicesTab-Bhsf1soi.js} +12 -11
- package/dist/{MicroservicesTab-B0SZVty3.js.map → MicroservicesTab-Bhsf1soi.js.map} +1 -1
- package/dist/{MicroservicesTab-snXJDoYq.cjs → MicroservicesTab-Cuj56g8-.cjs} +3 -3
- package/dist/{MicroservicesTab-snXJDoYq.cjs.map → MicroservicesTab-Cuj56g8-.cjs.map} +1 -1
- package/dist/{OpenC3TimePicker-DpkbfbgC.js → OpenC3TimePicker-C3vCnk72.js} +20 -24
- package/dist/OpenC3TimePicker-C3vCnk72.js.map +1 -0
- package/dist/OpenC3TimePicker-CVUV2cK4.cjs +2 -0
- package/dist/OpenC3TimePicker-CVUV2cK4.cjs.map +1 -0
- package/dist/Openc3Screen-Bi6NOEQM.cjs +6 -0
- package/dist/{Openc3Screen-D1RLlBgQ.cjs.map → Openc3Screen-Bi6NOEQM.cjs.map} +1 -1
- package/dist/{Openc3Screen-DbUvz-3B.js → Openc3Screen-DkhDra2o.js} +67 -66
- package/dist/{Openc3Screen-DbUvz-3B.js.map → Openc3Screen-DkhDra2o.js.map} +1 -1
- package/dist/{OutputDialog-Ds-GdGyI.js → OutputDialog-D0ifesTw.js} +11 -10
- package/dist/{OutputDialog-Ds-GdGyI.js.map → OutputDialog-D0ifesTw.js.map} +1 -1
- package/dist/OutputDialog-DR9cJem2.cjs +2 -0
- package/dist/{OutputDialog-ChPCaQAE.cjs.map → OutputDialog-DR9cJem2.cjs.map} +1 -1
- package/dist/PackagesTab-B4sG5tHo.cjs +2 -0
- package/dist/{PackagesTab-BgQsbXRo.cjs.map → PackagesTab-B4sG5tHo.cjs.map} +1 -1
- package/dist/{PackagesTab-CWplBp_I.js → PackagesTab-Bb221-aM.js} +19 -18
- package/dist/{PackagesTab-CWplBp_I.js.map → PackagesTab-Bb221-aM.js.map} +1 -1
- package/dist/PluginsTab-Cbi_R9jL.cjs +6 -0
- package/dist/PluginsTab-Cbi_R9jL.cjs.map +1 -0
- package/dist/{PluginsTab-BiiL622n.js → PluginsTab-nWngR5kY.js} +275 -234
- package/dist/PluginsTab-nWngR5kY.js.map +1 -0
- package/dist/{ProgressbarWidget-D3ndYnq_.js → ProgressbarWidget-DPbAVjdC.js} +2 -2
- package/dist/{ProgressbarWidget-D3ndYnq_.js.map → ProgressbarWidget-DPbAVjdC.js.map} +1 -1
- package/dist/{ProgressbarWidget-DludJVUf.cjs → ProgressbarWidget-cPr3o6Nv.cjs} +2 -2
- package/dist/{ProgressbarWidget-DludJVUf.cjs.map → ProgressbarWidget-cPr3o6Nv.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-DX4h94p1.cjs → RadiobuttonWidget-BQZkRFa-.cjs} +2 -2
- package/dist/{RadiobuttonWidget-DX4h94p1.cjs.map → RadiobuttonWidget-BQZkRFa-.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-CP0S9nWW.js → RadiobuttonWidget-iXI9yCDk.js} +2 -2
- package/dist/{RadiobuttonWidget-CP0S9nWW.js.map → RadiobuttonWidget-iXI9yCDk.js.map} +1 -1
- package/dist/{RadiogroupWidget-BXHfA21T.js → RadiogroupWidget-CMM_p1eA.js} +2 -2
- package/dist/{RadiogroupWidget-BXHfA21T.js.map → RadiogroupWidget-CMM_p1eA.js.map} +1 -1
- package/dist/{RadiogroupWidget-NqjBNUH6.cjs → RadiogroupWidget-D2iIQ5RU.cjs} +2 -2
- package/dist/{RadiogroupWidget-NqjBNUH6.cjs.map → RadiogroupWidget-D2iIQ5RU.cjs.map} +1 -1
- package/dist/{RangebarWidget-Bv2DqkPo.js → RangebarWidget-DJXGUHAc.js} +2 -2
- package/dist/{RangebarWidget-Bv2DqkPo.js.map → RangebarWidget-DJXGUHAc.js.map} +1 -1
- package/dist/{RangebarWidget-CRq2zpvw.cjs → RangebarWidget-DsphX-jB.cjs} +2 -2
- package/dist/{RangebarWidget-CRq2zpvw.cjs.map → RangebarWidget-DsphX-jB.cjs.map} +1 -1
- package/dist/RedisTab-BZtfqEcP.js +186 -0
- package/dist/RedisTab-BZtfqEcP.js.map +1 -0
- package/dist/RedisTab-KhsG2CCO.cjs +2 -0
- package/dist/RedisTab-KhsG2CCO.cjs.map +1 -0
- package/dist/{RollupWidget-o_huYU0x.js → RollupWidget-BbWLSsTT.js} +2 -2
- package/dist/{RollupWidget-o_huYU0x.js.map → RollupWidget-BbWLSsTT.js.map} +1 -1
- package/dist/{RollupWidget-B7_Q_boi.cjs → RollupWidget-w-SF3f-X.cjs} +2 -2
- package/dist/{RollupWidget-B7_Q_boi.cjs.map → RollupWidget-w-SF3f-X.cjs.map} +1 -1
- package/dist/{RoutersTab-DN17iBBi.js → RoutersTab-CLKIJ5cm.js} +13 -12
- package/dist/{RoutersTab-DN17iBBi.js.map → RoutersTab-CLKIJ5cm.js.map} +1 -1
- package/dist/RoutersTab-DUvOfNhU.cjs +2 -0
- package/dist/{RoutersTab-CAbnSGHy.cjs.map → RoutersTab-DUvOfNhU.cjs.map} +1 -1
- package/dist/{ScriptChooser-CzzUJ1Zj.js → ScriptChooser-BxTJKTVu.js} +20 -19
- package/dist/{ScriptChooser-CzzUJ1Zj.js.map → ScriptChooser-BxTJKTVu.js.map} +1 -1
- package/dist/ScriptChooser-YC_FfCLd.cjs +2 -0
- package/dist/{ScriptChooser-CggwstfT.cjs.map → ScriptChooser-YC_FfCLd.cjs.map} +1 -1
- package/dist/{ScrollwindowWidget-kS5QjP-v.cjs → ScrollwindowWidget-D1mtHFMa.cjs} +2 -2
- package/dist/{ScrollwindowWidget-kS5QjP-v.cjs.map → ScrollwindowWidget-D1mtHFMa.cjs.map} +1 -1
- package/dist/{ScrollwindowWidget-DdjaML6D.js → ScrollwindowWidget-Dxhp7yKn.js} +2 -2
- package/dist/{ScrollwindowWidget-DdjaML6D.js.map → ScrollwindowWidget-Dxhp7yKn.js.map} +1 -1
- package/dist/SecretsTab-B7oZb354.cjs +2 -0
- package/dist/{SecretsTab-Cn6-o85L.cjs.map → SecretsTab-B7oZb354.cjs.map} +1 -1
- package/dist/{SecretsTab-Cu3sx2OA.js → SecretsTab-BoBmTh63.js} +5 -5
- package/dist/{SecretsTab-Cu3sx2OA.js.map → SecretsTab-BoBmTh63.js.map} +1 -1
- package/dist/SettingsTab-2EMyS-3_.cjs +3 -0
- package/dist/{SettingsTab-C6zIL2D6.cjs.map → SettingsTab-2EMyS-3_.cjs.map} +1 -1
- package/dist/{SettingsTab-B_vvSLvt.js → SettingsTab-BL7gkaO9.js} +7 -6
- package/dist/{SettingsTab-B_vvSLvt.js.map → SettingsTab-BL7gkaO9.js.map} +1 -1
- package/dist/{SignalWidget-Dd54y28I.js → SignalWidget-65q0tiuo.js} +2 -2
- package/dist/{SignalWidget-Dd54y28I.js.map → SignalWidget-65q0tiuo.js.map} +1 -1
- package/dist/{SignalWidget-BagcB92r.cjs → SignalWidget-Cld2lVyc.cjs} +2 -2
- package/dist/{SignalWidget-BagcB92r.cjs.map → SignalWidget-Cld2lVyc.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-DZv9n_kJ.js → SimpleTextDialog-ChmFtdVw.js} +2 -2
- package/dist/{SimpleTextDialog-DZv9n_kJ.js.map → SimpleTextDialog-ChmFtdVw.js.map} +1 -1
- package/dist/{SimpleTextDialog-BJ50TbWh.cjs → SimpleTextDialog-DVlqwD8O.cjs} +2 -2
- package/dist/{SimpleTextDialog-BJ50TbWh.cjs.map → SimpleTextDialog-DVlqwD8O.cjs.map} +1 -1
- package/dist/{SpacerWidget-GPFYtIG1.js → SpacerWidget-DFzbojmX.js} +2 -2
- package/dist/{SpacerWidget-GPFYtIG1.js.map → SpacerWidget-DFzbojmX.js.map} +1 -1
- package/dist/{SpacerWidget-DWjBns9r.cjs → SpacerWidget-DV0-ZfEm.cjs} +2 -2
- package/dist/{SpacerWidget-DWjBns9r.cjs.map → SpacerWidget-DV0-ZfEm.cjs.map} +1 -1
- package/dist/SparklineWidget-B1RfTxEp.cjs +2 -0
- package/dist/{SparklineWidget-xdPgolp3.cjs.map → SparklineWidget-B1RfTxEp.cjs.map} +1 -1
- package/dist/{SparklineWidget-f11nrlLS.js → SparklineWidget-Bu4I8zY0.js} +10 -9
- package/dist/{SparklineWidget-f11nrlLS.js.map → SparklineWidget-Bu4I8zY0.js.map} +1 -1
- package/dist/{TabbookWidget-DeaC27yC.js → TabbookWidget-CELMWyx7.js} +2 -2
- package/dist/{TabbookWidget-DeaC27yC.js.map → TabbookWidget-CELMWyx7.js.map} +1 -1
- package/dist/{TabbookWidget-CUIYWHRH.cjs → TabbookWidget-CLpx5e5Q.cjs} +2 -2
- package/dist/{TabbookWidget-CUIYWHRH.cjs.map → TabbookWidget-CLpx5e5Q.cjs.map} +1 -1
- package/dist/{TargetPacketItemChooser-BoBqvs3T.js → TargetPacketItemChooser-BOdVLVbe.js} +177 -153
- package/dist/TargetPacketItemChooser-BOdVLVbe.js.map +1 -0
- package/dist/TargetPacketItemChooser-xoRA3b9K.cjs +2 -0
- package/dist/TargetPacketItemChooser-xoRA3b9K.cjs.map +1 -0
- package/dist/{TargetsTab-CjVaBN9O.js → TargetsTab-BJZEtKY4.js} +11 -10
- package/dist/{TargetsTab-CjVaBN9O.js.map → TargetsTab-BJZEtKY4.js.map} +1 -1
- package/dist/TargetsTab-Dkp4VoK6.cjs +2 -0
- package/dist/{TargetsTab-BMcWjrZ_.cjs.map → TargetsTab-Dkp4VoK6.cjs.map} +1 -1
- package/dist/{TextboxWidget-tL41zWUX.js → TextboxWidget-DYsqXntS.js} +7 -6
- package/dist/{TextboxWidget-tL41zWUX.js.map → TextboxWidget-DYsqXntS.js.map} +1 -1
- package/dist/TextboxWidget-DuNmhz89.cjs +2 -0
- package/dist/{TextboxWidget-CXA9rR02.cjs.map → TextboxWidget-DuNmhz89.cjs.map} +1 -1
- package/dist/{TextfieldWidget-D1qj14Qi.js → TextfieldWidget-BIUgV9Q4.js} +2 -2
- package/dist/{TextfieldWidget-D1qj14Qi.js.map → TextfieldWidget-BIUgV9Q4.js.map} +1 -1
- package/dist/{TextfieldWidget-D-H2fOZG.cjs → TextfieldWidget-BlW-rSVv.cjs} +2 -2
- package/dist/{TextfieldWidget-D-H2fOZG.cjs.map → TextfieldWidget-BlW-rSVv.cjs.map} +1 -1
- package/dist/{TimeWidget-CSVGNong.js → TimeWidget-BPXcY1Wy.js} +7 -6
- package/dist/{TimeWidget-CSVGNong.js.map → TimeWidget-BPXcY1Wy.js.map} +1 -1
- package/dist/TimeWidget-BddmbQgt.cjs +2 -0
- package/dist/{TimeWidget-CGk8Ze_I.cjs.map → TimeWidget-BddmbQgt.cjs.map} +1 -1
- package/dist/{TitleWidget-ClhWhUf3.cjs → TitleWidget-CPqwZKUx.cjs} +2 -2
- package/dist/{TitleWidget-ClhWhUf3.cjs.map → TitleWidget-CPqwZKUx.cjs.map} +1 -1
- package/dist/{TitleWidget-CLx-tuYT.js → TitleWidget-DJ9mHRLE.js} +2 -2
- package/dist/{TitleWidget-CLx-tuYT.js.map → TitleWidget-DJ9mHRLE.js.map} +1 -1
- package/dist/ToolsTab-B4CURni4.cjs +2 -0
- package/dist/{ToolsTab-DTHap-Nq.cjs.map → ToolsTab-B4CURni4.cjs.map} +1 -1
- package/dist/{ToolsTab-lBB_KhmA.js → ToolsTab-VSCWDywf.js} +62 -61
- package/dist/{ToolsTab-lBB_KhmA.js.map → ToolsTab-VSCWDywf.js.map} +1 -1
- package/dist/{TopBar-C810rP_B.js → TopBar-B4oz2FsN.js} +2 -2
- package/dist/{TopBar-C810rP_B.js.map → TopBar-B4oz2FsN.js.map} +1 -1
- package/dist/{TopBar-Ctzx7o2k.cjs → TopBar-lcB6jpd_.cjs} +2 -2
- package/dist/{TopBar-Ctzx7o2k.cjs.map → TopBar-lcB6jpd_.cjs.map} +1 -1
- package/dist/TsdbTab-Cv8GjpoJ.js +1164 -0
- package/dist/TsdbTab-Cv8GjpoJ.js.map +1 -0
- package/dist/TsdbTab-OOO451j0.cjs +5 -0
- package/dist/TsdbTab-OOO451j0.cjs.map +1 -0
- package/dist/{UpgradeToEnterpriseDialog-D_S574Zb.js → UpgradeToEnterpriseDialog-BUuXsGPY.js} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-D_S574Zb.js.map → UpgradeToEnterpriseDialog-BUuXsGPY.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-XJb6gVCY.cjs → UpgradeToEnterpriseDialog-DHLK6v6f.cjs} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-XJb6gVCY.cjs.map → UpgradeToEnterpriseDialog-DHLK6v6f.cjs.map} +1 -1
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs +1477 -0
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs.map +1 -0
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js +26306 -0
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js.map +1 -0
- package/dist/VWidget-B6WHN0_z.cjs +2 -0
- package/dist/VWidget-B6WHN0_z.cjs.map +1 -0
- package/dist/{VWidget-CxnaMF0w.js → VWidget-BDy0211S.js} +17 -20
- package/dist/VWidget-BDy0211S.js.map +1 -0
- package/dist/{ValueWidget-BYgpXfDo.js → ValueWidget-DzOSy7lp.js} +7 -6
- package/dist/{ValueWidget-BYgpXfDo.js.map → ValueWidget-DzOSy7lp.js.map} +1 -1
- package/dist/ValueWidget-QWzoEFXc.cjs +2 -0
- package/dist/{ValueWidget-Bws1qOEI.cjs.map → ValueWidget-QWzoEFXc.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-BoZSJvuq.cjs → ValuelimitsbarWidget-5AkAljK-.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-BoZSJvuq.cjs.map → ValuelimitsbarWidget-5AkAljK-.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-Dc9-VNZ3.js → ValuelimitsbarWidget-D5dSlW6D.js} +4 -4
- package/dist/{ValuelimitsbarWidget-Dc9-VNZ3.js.map → ValuelimitsbarWidget-D5dSlW6D.js.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-b7W8K3mR.js → ValuelimitscolumnWidget-7DXCsVW_.js} +4 -4
- package/dist/{ValuelimitscolumnWidget-b7W8K3mR.js.map → ValuelimitscolumnWidget-7DXCsVW_.js.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-ta9i_tiy.cjs → ValuelimitscolumnWidget-zNx9i1v7.cjs} +2 -2
- package/dist/{ValuelimitscolumnWidget-ta9i_tiy.cjs.map → ValuelimitscolumnWidget-zNx9i1v7.cjs.map} +1 -1
- package/dist/{ValuerangebarWidget-DmhczZQb.js → ValuerangebarWidget-BWjnpmyy.js} +4 -4
- package/dist/{ValuerangebarWidget-DmhczZQb.js.map → ValuerangebarWidget-BWjnpmyy.js.map} +1 -1
- package/dist/{ValuerangebarWidget-Ips-beG6.cjs → ValuerangebarWidget-EsdIz4oP.cjs} +2 -2
- package/dist/{ValuerangebarWidget-Ips-beG6.cjs.map → ValuerangebarWidget-EsdIz4oP.cjs.map} +1 -1
- package/dist/{VerticalWidget-BvsVh0Ob.js → VerticalWidget-BOtXAhxt.js} +2 -2
- package/dist/{VerticalWidget-BvsVh0Ob.js.map → VerticalWidget-BOtXAhxt.js.map} +1 -1
- package/dist/{VerticalWidget-BVt7QPjO.cjs → VerticalWidget-DVskS6fx.cjs} +2 -2
- package/dist/{VerticalWidget-BVt7QPjO.cjs.map → VerticalWidget-DVskS6fx.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-CNoXT3YW.cjs → VerticalboxWidget-Bu4oHN2K.cjs} +2 -2
- package/dist/{VerticalboxWidget-CNoXT3YW.cjs.map → VerticalboxWidget-Bu4oHN2K.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-ClTCDCQN.js → VerticalboxWidget-RAsXfGdI.js} +5 -5
- package/dist/{VerticalboxWidget-ClTCDCQN.js.map → VerticalboxWidget-RAsXfGdI.js.map} +1 -1
- package/dist/{Widget-DRhVdCLP.js → Widget-BDsgRxuV.js} +37 -14
- package/dist/{Widget-DRhVdCLP.js.map → Widget-BDsgRxuV.js.map} +1 -1
- package/dist/Widget-Ddu_kuTL.cjs +2 -0
- package/dist/{Widget-CB_BtOFw.cjs.map → Widget-Ddu_kuTL.cjs.map} +1 -1
- package/dist/{addMonths-Zggd7y6j.js → addMonths-BiRF9eDT.js} +2 -2
- package/dist/{addMonths-Zggd7y6j.js.map → addMonths-BiRF9eDT.js.map} +1 -1
- package/dist/{addMonths-BhOW2mOW.cjs → addMonths-Ds2ObZwt.cjs} +2 -2
- package/dist/{addMonths-BhOW2mOW.cjs.map → addMonths-Ds2ObZwt.cjs.map} +1 -1
- package/dist/components.cjs +2 -2
- package/dist/components.js +28 -28
- package/dist/format-D2pYLAIF.js +5896 -0
- package/dist/format-D2pYLAIF.js.map +1 -0
- package/dist/format-qjtPogBb.cjs +13 -0
- package/dist/format-qjtPogBb.cjs.map +1 -0
- package/dist/getDefaultOptions-DSMQojSA.cjs +2 -0
- package/dist/{getDefaultOptions-Cek5kGzE.cjs.map → getDefaultOptions-DSMQojSA.cjs.map} +1 -1
- package/dist/getDefaultOptions-v3X-F5jM.js +8 -0
- package/dist/{getDefaultOptions-xjgn1r-_.js.map → getDefaultOptions-v3X-F5jM.js.map} +1 -1
- package/dist/{index-GYAZJDxn.js → index-BJCQaZ7q.js} +63 -62
- package/dist/{index-GYAZJDxn.js.map → index-BJCQaZ7q.js.map} +1 -1
- package/dist/{index-CJcL4_a4.js → index-BjcgyMLV.js} +691 -633
- package/dist/index-BjcgyMLV.js.map +1 -0
- package/dist/{index-3sXOEKCU.cjs → index-CctPeecq.cjs} +5 -5
- package/dist/{index-3sXOEKCU.cjs.map → index-CctPeecq.cjs.map} +1 -1
- package/dist/index-_a-NnvKv.cjs +10 -0
- package/dist/index-_a-NnvKv.cjs.map +1 -0
- package/dist/{parse-BKTTGw2p.js → parse-Br4M7sX4.js} +3 -3
- package/dist/{parse-BKTTGw2p.js.map → parse-Br4M7sX4.js.map} +1 -1
- package/dist/{parse-DgZTYocC.cjs → parse-D8syXcjd.cjs} +2 -2
- package/dist/{parse-DgZTYocC.cjs.map → parse-D8syXcjd.cjs.map} +1 -1
- package/dist/plugins.cjs +1 -1
- package/dist/plugins.cjs.map +1 -1
- package/dist/plugins.js +1 -1
- package/dist/plugins.js.map +1 -1
- package/dist/purify.es-CehoGjrR.cjs +3 -0
- package/dist/purify.es-CehoGjrR.cjs.map +1 -0
- package/dist/purify.es-exIQuqhb.js +596 -0
- package/dist/purify.es-exIQuqhb.js.map +1 -0
- package/dist/settings-CWvCIKI4.cjs +2 -0
- package/dist/{settings-B0AhztTk.cjs.map → settings-CWvCIKI4.cjs.map} +1 -1
- package/dist/{settings-C2auUQwX.js → settings-Dvmurty6.js} +2 -2
- package/dist/{settings-C2auUQwX.js.map → settings-Dvmurty6.js.map} +1 -1
- package/dist/settingsCache-CGgEjlw3.js +28 -0
- package/dist/settingsCache-CGgEjlw3.js.map +1 -0
- package/dist/settingsCache-Dg7OMDJK.cjs +2 -0
- package/dist/settingsCache-Dg7OMDJK.cjs.map +1 -0
- package/dist/{timeFilters-CRNRsUsb.cjs → timeFilters-BtN2a5-O.cjs} +2 -2
- package/dist/{timeFilters-CRNRsUsb.cjs.map → timeFilters-BtN2a5-O.cjs.map} +1 -1
- package/dist/{timeFilters-DTOZtBlG.js → timeFilters-C1beMtAQ.js} +3 -3
- package/dist/{timeFilters-DTOZtBlG.js.map → timeFilters-C1beMtAQ.js.map} +1 -1
- package/dist/tools/admin.cjs +1 -1
- package/dist/tools/admin.js +1 -1
- package/dist/tools/base.cjs +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.js +51 -51
- 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 +17 -17
- package/dist/tools/scriptrunner.js.map +1 -1
- package/dist/util.cjs +1 -1
- package/dist/util.js +11 -7
- package/dist/util.js.map +1 -1
- package/dist/vue-common.css +1 -1
- package/dist/widgets.cjs +1 -1
- package/dist/widgets.js +64 -64
- package/package.json +7 -7
- package/dist/ArrayplotWidget-BHD-TGQO.cjs +0 -2
- package/dist/BarColumn-DmjMnw5l.js.map +0 -1
- package/dist/BarColumn-Ym4P8YHC.cjs +0 -2
- package/dist/BarColumn-Ym4P8YHC.cjs.map +0 -1
- package/dist/ButtonWidget-70hNWuEy.cjs +0 -3
- package/dist/ButtonWidget-70hNWuEy.cjs.map +0 -1
- package/dist/ButtonWidget-DZ4VCNWU.js.map +0 -1
- package/dist/ClassificationBanners-DjGCuH-4.cjs +0 -2
- package/dist/CriticalCmdDialog-eytxCQto.cjs +0 -2
- package/dist/DateWidget-Cle8FY8Q.cjs +0 -2
- package/dist/DetailsDialog-BcMaTfuQ.cjs +0 -2
- package/dist/EventListDialog-DjCQAwGl.js.map +0 -1
- package/dist/EventListDialog-EmC7YW60.cjs +0 -2
- package/dist/EventListDialog-EmC7YW60.cjs.map +0 -1
- package/dist/FilechecksumWidget-2ta-UvLp.cjs +0 -2
- package/dist/FiledisplayWidget-BUKXIQir.cjs +0 -2
- package/dist/Graph-CUFzx8Ti.js.map +0 -1
- package/dist/Graph-qxF4224c.cjs +0 -2
- package/dist/Graph-qxF4224c.cjs.map +0 -1
- package/dist/GraphWidget-BvCQHVxQ.cjs +0 -2
- package/dist/ImageLoader-BTEOukIw.cjs +0 -2
- package/dist/InterfacesTab-CM0CGFVS.cjs +0 -2
- package/dist/LabelvalueWidget-_1JPbK-K.js.map +0 -1
- package/dist/LabelvalueWidget-bYqqgIGE.cjs +0 -2
- package/dist/LabelvalueWidget-bYqqgIGE.cjs.map +0 -1
- package/dist/LabelvaluedescWidget-B2dFZoDE.cjs +0 -2
- package/dist/LabelvaluedescWidget-B2dFZoDE.cjs.map +0 -1
- package/dist/LabelvaluedescWidget-BgduSJJb.js +0 -59
- package/dist/LabelvaluedescWidget-BgduSJJb.js.map +0 -1
- package/dist/LedWidget-BaiKDozd.cjs +0 -2
- package/dist/LimitscolorWidget-veWQ4NXl.cjs +0 -2
- package/dist/LinegraphWidget-3E8L5CvM.cjs +0 -2
- package/dist/OpenC3TimePicker-DpkbfbgC.js.map +0 -1
- package/dist/OpenC3TimePicker-Yl1jVi7p.cjs +0 -2
- package/dist/OpenC3TimePicker-Yl1jVi7p.cjs.map +0 -1
- package/dist/Openc3Screen-D1RLlBgQ.cjs +0 -6
- package/dist/OutputDialog-ChPCaQAE.cjs +0 -2
- package/dist/PackagesTab-BgQsbXRo.cjs +0 -2
- package/dist/PluginsTab-BiiL622n.js.map +0 -1
- package/dist/PluginsTab-RgIMk-F7.cjs +0 -6
- package/dist/PluginsTab-RgIMk-F7.cjs.map +0 -1
- package/dist/RedisTab-7TbOXFA_.js +0 -171
- package/dist/RedisTab-7TbOXFA_.js.map +0 -1
- package/dist/RedisTab-DpWPY1P0.cjs +0 -2
- package/dist/RedisTab-DpWPY1P0.cjs.map +0 -1
- package/dist/RoutersTab-CAbnSGHy.cjs +0 -2
- package/dist/ScriptChooser-CggwstfT.cjs +0 -2
- package/dist/SecretsTab-Cn6-o85L.cjs +0 -2
- package/dist/SettingsTab-C6zIL2D6.cjs +0 -3
- package/dist/SparklineWidget-xdPgolp3.cjs +0 -2
- package/dist/TargetPacketItemChooser-BoBqvs3T.js.map +0 -1
- package/dist/TargetPacketItemChooser-C0Z90rss.cjs +0 -2
- package/dist/TargetPacketItemChooser-C0Z90rss.cjs.map +0 -1
- package/dist/TargetsTab-BMcWjrZ_.cjs +0 -2
- package/dist/TextboxWidget-CXA9rR02.cjs +0 -2
- package/dist/TimeWidget-CGk8Ze_I.cjs +0 -2
- package/dist/ToolsTab-DTHap-Nq.cjs +0 -2
- package/dist/TsdbTab-7F4mRKDo.js +0 -125
- package/dist/TsdbTab-7F4mRKDo.js.map +0 -1
- package/dist/TsdbTab-DVF6n9mq.cjs +0 -2
- package/dist/TsdbTab-DVF6n9mq.cjs.map +0 -1
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js +0 -30891
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js.map +0 -1
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs +0 -1485
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs.map +0 -1
- package/dist/VWidget-CxnaMF0w.js.map +0 -1
- package/dist/VWidget-dEHSEvZx.cjs +0 -2
- package/dist/VWidget-dEHSEvZx.cjs.map +0 -1
- package/dist/ValueWidget-Bws1qOEI.cjs +0 -2
- package/dist/Widget-CB_BtOFw.cjs +0 -2
- package/dist/format-CJYjW-xx.js +0 -1252
- package/dist/format-CJYjW-xx.js.map +0 -1
- package/dist/format-DOZQNf-X.cjs +0 -2
- package/dist/format-DOZQNf-X.cjs.map +0 -1
- package/dist/getDefaultOptions-Cek5kGzE.cjs +0 -2
- package/dist/getDefaultOptions-xjgn1r-_.js +0 -8
- package/dist/index-B34azWgs.cjs +0 -7
- package/dist/index-B34azWgs.cjs.map +0 -1
- package/dist/index-CJcL4_a4.js.map +0 -1
- package/dist/purify.es-4pyphLiB.cjs +0 -3
- package/dist/purify.es-4pyphLiB.cjs.map +0 -1
- package/dist/purify.es-BPDBzHtc.js +0 -553
- package/dist/purify.es-BPDBzHtc.js.map +0 -1
- package/dist/settings-B0AhztTk.cjs +0 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { a as i
|
|
2
|
-
import {
|
|
1
|
+
import { a as i } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js";
|
|
2
|
+
import { R as w } from "./format-D2pYLAIF.js";
|
|
3
|
+
import { resolveComponent as r, openBlock as M, createBlock as y, withCtx as l, createVNode as s, createElementVNode as p, toDisplayString as k, createTextVNode as x } from "vue";
|
|
3
4
|
import { _ as v } from "./CustomIcon-DTR361si.js";
|
|
4
|
-
const
|
|
5
|
+
const R = {
|
|
5
6
|
methods: {
|
|
6
7
|
buildLanguageMode(t, e) {
|
|
7
8
|
let o = i.require("ace/lib/oop"), c = Object.getOwnPropertyNames(w.prototype).filter((d) => d !== "constructor").filter((d) => d !== "exec").concat([
|
|
@@ -83,8 +84,8 @@ const q = {
|
|
|
83
84
|
}).call(e.prototype), e;
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
|
-
},
|
|
87
|
-
mixins: [
|
|
87
|
+
}, q = {
|
|
88
|
+
mixins: [R],
|
|
88
89
|
props: {
|
|
89
90
|
content: {
|
|
90
91
|
type: String,
|
|
@@ -173,7 +174,7 @@ const q = {
|
|
|
173
174
|
};
|
|
174
175
|
function O(t, e, o, c, u, n) {
|
|
175
176
|
const a = r("v-spacer"), h = r("v-btn"), m = r("v-toolbar"), d = r("v-card-text"), g = r("v-card-actions"), f = r("v-card"), b = r("v-dialog");
|
|
176
|
-
return
|
|
177
|
+
return M(), y(b, {
|
|
177
178
|
modelValue: n.show,
|
|
178
179
|
"onUpdate:modelValue": e[1] || (e[1] = (_) => n.show = _),
|
|
179
180
|
width: "85vw"
|
|
@@ -228,9 +229,9 @@ function O(t, e, o, c, u, n) {
|
|
|
228
229
|
_: 1
|
|
229
230
|
}, 8, ["modelValue"]);
|
|
230
231
|
}
|
|
231
|
-
const
|
|
232
|
+
const S = /* @__PURE__ */ v(q, [["render", O], ["__scopeId", "data-v-a87eb5ef"]]);
|
|
232
233
|
export {
|
|
233
|
-
|
|
234
|
-
|
|
234
|
+
R as A,
|
|
235
|
+
S as O
|
|
235
236
|
};
|
|
236
|
-
//# sourceMappingURL=OutputDialog-
|
|
237
|
+
//# sourceMappingURL=OutputDialog-D0ifesTw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputDialog-Ds-GdGyI.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 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.\n# See LICENSE.md 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_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 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.\n# See LICENSE.md 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
|
+
{"version":3,"file":"OutputDialog-D0ifesTw.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 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.\n# See LICENSE.md 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_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 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.\n# See LICENSE.md 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":";;;;AAuBA,MAAAA,IAAe;AAAA,EACb,SAAS;AAAA,IACP,kBAAkBC,GAAgBC,GAAU;AAC1C,UAAIC,IAAMC,EAAAA,QAAY,aAAa,GAC/BC,IAAO,OAAO,oBAAoBC,EAAU,SAAS,EACtD,OAAO,CAACC,MAAMA,MAAM,aAAa,EACjC,OAAO,CAACA,MAAMA,MAAM,MAAM,EAE1B,OAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACV,CAAS,GACCC,IAAQ,IAAI,OAAO,OAAOH,EAAK,KAAK,SAAS,CAAC,MAAM,GACpDI,IAAuB,WAAY;AACrC,QAAAR,EAAe,KAAK,IAAI;AAExB,iBAASS,KAAQ,KAAK;AACpB,eAAK,OAAOA,CAAI,EAAE,QAAQ;AAAA,YACxB,OAAOF;AAAA,YACP,OAAO;AAAA,UACnB,CAAW;AAAA,MAEL;AACA,MAAAL,EAAI,SAASM,GAAsBR,CAAc;AAEjD,UAAIU,IAAuBP,EAAAA;AAAAA,QACzB;AAAA,MACR,EAAQ,sBACEQ,IAAkBR,EAAAA;AAAAA,QACpB;AAAA,MACR,EAAQ;AAQF,aAAO,CAACD,GAPG,WAAY;AACrB,aAAK,iBAAiBM,GACtB,KAAK,WAAW,IAAIE,EAAoB,GACxC,KAAK,aAAa,IAAIC,EAAe,GACrC,KAAK,eAAe,IAAIV,EAAQ,GAChC,KAAK,iBAAiB,KAAK,aAAa;AAAA,MAC1C,CACiB;AAAA,IACnB;AAAA,IACA,gBAAgB;AACd,YAAM,CAACC,GAAKU,CAAI,IAAI,KAAK;AAAA,QACvBT,EAAAA,QAAY,+BAA+B,EAAE;AAAA,QAC7CA,EAAAA,QAAY,uBAAuB,EAAE;AAAA,MAC7C;AACM,UAAIU,IAAWV,UAAY,eAAe,EAAE;AAC5C,aAAAD,EAAI,SAASU,GAAMC,CAAQ,IACzB,WAAY;AACZ,aAAK,MAAM;AAAA,MACb,GAAG,KAAKD,EAAK,SAAS,GACfA;AAAA,IACT;AAAA,IACA,kBAAkB;AAChB,YAAM,CAACV,GAAKU,CAAI,IAAI,KAAK;AAAA,QACvBT,EAAAA,QAAY,iCAAiC,EAAE;AAAA,QAC/CA,EAAAA,QAAY,2BAA2B,EAAE;AAAA,MACjD;AACM,UAAIW,IAAaX,UAAY,iBAAiB,EAAE;AAChD,aAAAD,EAAI,SAASU,GAAME,CAAU,IAC3B,WAAY;AACZ,aAAK,MAAM;AAAA,MACb,GAAG,KAAKF,EAAK,SAAS,GACfA;AAAA,IACT;AAAA,IACA,gBAAgB;AACd,YAAM,CAACV,GAAKU,CAAI,IAAI,KAAK;AAAA,QACvBT,EAAAA,QAAY,+BAA+B,EAAE;AAAA,QAC7CA,EAAAA,QAAY,uBAAuB,EAAE;AAAA,MAC7C;AACM,UAAIY,IAAWZ,UAAY,eAAe,EAAE;AAC5C,aAAAD,EAAI,SAASU,GAAMG,CAAQ,IACzB,WAAY;AACZ,aAAK,MAAM;AAAA,MACb,GAAG,KAAKH,EAAK,SAAS,GACfA;AAAA,IACT;AAAA,IACA,oBAAoB;AAClB,YAAM,CAACV,GAAKU,CAAI,IAAI,KAAK;AAAA,QACvBT,EAAAA,QAAY,mCAAmC,EAAE;AAAA,QACjDA,EAAAA,QAAY,2BAA2B,EAAE;AAAA,MACjD;AACM,UAAIa,IAAeb,UAAY,mBAAmB,EAAE;AACpD,aAAAD,EAAI,SAASU,GAAMI,CAAY,IAC7B,WAAY;AACZ,aAAK,MAAM;AAAA,MACb,GAAG,KAAKJ,EAAK,SAAS,GACfA;AAAA,IACT;AAAA,EACJ;AACA,GCjFKK,IAAU;AAAA,EACb,QAAQ,CAAClB,CAAc;AAAA,EACvB,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,UAAU;AAAA;IAEZ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,YAAY;AAAA,IACZ,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;;EAGb,OAAO,CAAC,mBAAmB;AAAA,EAC3B,OAAO;AACL,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,MAAM;AACJ,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAImB,GAAO;AACT,aAAK,MAAM,qBAAqBA,CAAK;AAAA,MACvC;AAAA;IAEF,OAAO,WAAY;AACjB,aAAO,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI;AAAA,IACnC;AAAA;EAEF,UAAU;AACR,SAAK,SAAS,IAAI,KAAK,KAAK,MAAM,MAAM,GACxC,KAAK,OAAO,SAAS,oBAAoB;AACzC,QAAIC,IAAe;AAEnB,YADsB,KAAK,WAAW,KAAK,SAAS,MAAM,GAAG,EAAE,QAAQ,OAClD;AAAA,MACnB,KAAK;AACH,cAAMJ,IAAW,KAAK,cAAa;AACnC,QAAAI,IAAe,IAAIJ,EAAQ,GAC3B,KAAK,OAAO,WAAW;AAAA,UACrB,WAAW;AAAA,SACZ;AACD;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,cAAMD,IAAa,KAAK,gBAAe;AACvC,QAAAK,IAAe,IAAIL,EAAU;AAC7B;AAAA,MACF,KAAK;AACH,cAAME,IAAe,KAAK,kBAAiB;AAC3C,QAAAG,IAAe,IAAIH,EAAY;AAC/B;AAAA,MACF;AAGE,cAAMH,IAAW,KAAK,cAAa;AACnC,QAAAM,IAAe,IAAIN,EAAQ;AAC3B;AAAA,IACJ;AACA,SAAK,OAAO,QAAQ,QAAQM,CAAY,GACxC,KAAK,OAAO,QAAQ,eAAe,EAAI,GACvC,KAAK,OAAO,kBAAkB,OAC9B,KAAK,OAAO,uBAAuB,EAAK,GACxC,KAAK,OAAO,SAAS,KAAK,OAAO,GACjC,KAAK,OAAO,eAAc,GAC1B,KAAK,OAAO,MAAK,GACjB,KAAK,OAAO,YAAY,EAAI;AAAA,EAC9B;AAAA,EACA,gBAAgB;AACd,IAAI,KAAK,UACP,KAAK,OAAO,QAAO;AAAA,EAEvB;AAAA,EACA,SAAS;AAAA,IACP,OAAO,WAAY;AACjB,WAAK,OAAO,CAAC,KAAK;AAAA,IACpB;AAAA,IACA,UAAU,WAAY;AACpB,YAAMC,IAAO,IAAI,KAAK,CAAC,KAAK,OAAO,SAAQ,CAAE,GAAG;AAAA,QAC9C,MAAM;AAAA,OACP;AAED,UAAIC,IAAW,GAAG,KAAK,KAAK,aAAa,IAAI,KAAK,KAAK,YAAW,CAAE;AACpE,MAAI,KAAK,aACPA,IAAW,KAAK;AAElB,YAAMC,IAAO,SAAS,cAAc,GAAG;AACvC,MAAAA,EAAK,OAAO,IAAI,gBAAgBF,CAAI,GACpCE,EAAK,aAAa,YAAYD,CAAQ,GACtCC,EAAK,MAAK;AAAA,IACZ;AAAA;AAEJ,wBA/HaC,IAAA,EAAA,OAAM,OAAM;EAWZ,KAAI;AAAA,EAAS,OAAM;;;;cAjB9BC,EAwBWC,GAAA;AAAA,gBAxBQC,EAAA;AAAA,kDAAAA,EAAA,OAAIC;AAAA,IAAE,OAAM;AAAA;eAC7B,MAsBS;AAAA,MAtBTC,EAsBSC,GAAA,MAAA;AAAA,mBArBP,MAaY;AAAA,UAbZD,EAaYE,GAAA,EAbD,QAAO,KAAI,GAAA;AAAA,uBACpB,MAAY;AAAA,cAAZF,EAAYG,CAAA;AAAA,cACZC,EAAuB,QAAA;AAAA,gBAAjB,aAAAC,EAAcP,EAAN,KAAK;AAAA;cACnBE,EAAYG,CAAA;AAAA,cACZC,EAQM,OARNT,GAQM;AAAA,gBAPJK,EAMEM,GAAA;AAAA,kBALA,MAAK;AAAA,kBACL,SAAQ;AAAA,kBACR,SAAQ;AAAA,kBACR,aAAU;AAAA,kBACT,SAAOR,EAAA;AAAA;;;;;UAIdE,EAEcO,GAAA,MAAA;AAAA,uBADZ,MAAuC;AAAA,cAAvCH,EAAuC,OAAvCI,GAAuC,MAAA,GAAA;AAAA;;;UAEzCR,EAGiBS,GAAA,EAHD,OAAM,iBAAgB,GAAA;AAAA,uBACpC,MAAY;AAAA,cAAZT,EAAYG,CAAA;AAAA,cACZH,EAAwDM,GAAA;AAAA,gBAAjD,SAAQ;AAAA,gBAAQ,SAAKI,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAX,MAAED,EAAA,OAAI,CAAIA,EAAA;AAAA;2BAAM,MAAI,CAAA,GAAAY,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,oBAAJ,QAAI,EAAA;AAAA;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const n=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs"),f=require("./format-qjtPogBb.cjs"),e=require("vue"),w=require("./CustomIcon-8F08upeg.cjs"),p={methods:{buildLanguageMode(o,t){let i=n.aceExports.require("ace/lib/oop"),a=Object.getOwnPropertyNames(f.Ri.prototype).filter(s=>s!=="constructor").filter(s=>s!=="exec").concat(["check","check_raw","check_formatted","check_exception","check_tolerance","check_expression","wait","wait_tolerance","wait_expression","wait_check","wait_check_tolerance","wait_check_expression","wait_packet","wait_check_packet","disable_instrumentation","set_line_delay","get_line_delay","set_max_output","get_max_output"]),l=new RegExp(`(\\b${a.join("\\b|\\b")}\\b)`),r=function(){o.call(this);for(let s in this.$rules)this.$rules[s].unshift({regex:l,token:"support.function"})};i.inherits(r,o);let d=n.aceExports.require("ace/mode/matching_brace_outdent").MatchingBraceOutdent,c=n.aceExports.require("ace/mode/behaviour/cstyle").CstyleBehaviour;return[i,function(){this.HighlightRules=r,this.$outdent=new d,this.$behaviour=new c,this.foldingRules=new t,this.indentKeywords=this.foldingRules.indentKeywords}]},buildRubyMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/ruby_highlight_rules").RubyHighlightRules,n.aceExports.require("ace/mode/folding/ruby").FoldMode);let i=n.aceExports.require("ace/mode/ruby").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t},buildPythonMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/python_highlight_rules").PythonHighlightRules,n.aceExports.require("ace/mode/folding/pythonic").FoldMode);let i=n.aceExports.require("ace/mode/python").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t},buildJsonMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/json_highlight_rules").JsonHighlightRules,n.aceExports.require("ace/mode/folding/ruby").FoldMode);let i=n.aceExports.require("ace/mode/json").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t},buildMarkdownMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/markdown_highlight_rules").MarkdownHighlightRules,n.aceExports.require("ace/mode/folding/markdown").FoldMode);let i=n.aceExports.require("ace/mode/markdown").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t}}},b={mixins:[p],props:{content:{type:String,required:!0},type:{type:String,default:null},name:{type:String,default:null},modelValue:Boolean,filename:{type:String,default:null}},emits:["update:modelValue"],data(){return{editor:null,mode:null}},computed:{show:{get(){return this.modelValue},set(o){this.$emit("update:modelValue",o)}},title:function(){return`${this.type}: ${this.name}`}},mounted(){this.editor=ace.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight");let o=null;switch(this.filename?this.filename.split(".").pop():"txt"){case"json":const i=this.buildJsonMode();o=new i,this.editor.setOptions({useWorker:!1});break;case"py":case"pyi":const a=this.buildPythonMode();o=new a;break;case"md":const l=this.buildMarkdownMode();o=new l;break;default:const r=this.buildRubyMode();o=new r;break}this.editor.session.setMode(o),this.editor.session.setUseWrapMode(!0),this.editor.$blockScrolling=1/0,this.editor.setHighlightActiveLine(!1),this.editor.setValue(this.content),this.editor.clearSelection(),this.editor.focus(),this.editor.setReadOnly(!0)},beforeUnmount(){this.editor&&this.editor.destroy()},methods:{close:function(){this.show=!this.show},download:function(){const o=new Blob([this.editor.getValue()],{type:"text/plain"});let t=`${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`;this.filename&&(t=this.filename);const i=document.createElement("a");i.href=URL.createObjectURL(o),i.setAttribute("download",t),i.click()}}},y=["textContent"],M={class:"mx-2"},x={ref:"editor",class:"editor"};function k(o,t,i,a,l,r){const d=e.resolveComponent("v-spacer"),c=e.resolveComponent("v-btn"),u=e.resolveComponent("v-toolbar"),s=e.resolveComponent("v-card-text"),_=e.resolveComponent("v-card-actions"),m=e.resolveComponent("v-card"),g=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(g,{modelValue:r.show,"onUpdate:modelValue":t[1]||(t[1]=h=>r.show=h),width:"85vw"},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(u,{height:"24"},{default:e.withCtx(()=>[e.createVNode(d),e.createElementVNode("span",{textContent:e.toDisplayString(r.title)},null,8,y),e.createVNode(d),e.createElementVNode("div",M,[e.createVNode(c,{icon:"mdi-download",variant:"text",density:"compact","data-test":"downloadIcon",onClick:r.download},null,8,["onClick"])])]),_:1}),e.createVNode(s,null,{default:e.withCtx(()=>[e.createElementVNode("pre",x,null,512)]),_:1}),e.createVNode(_,{class:"pr-6 pb-4 pt-0"},{default:e.withCtx(()=>[e.createVNode(d),e.createVNode(c,{variant:"flat",onClick:t[0]||(t[0]=h=>r.show=!r.show)},{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode(" Ok ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}const v=w._export_sfc(b,[["render",k],["__scopeId","data-v-a87eb5ef"]]);exports.AceEditorModes=p;exports.OutputDialog=v;
|
|
2
|
+
//# sourceMappingURL=OutputDialog-DR9cJem2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputDialog-ChPCaQAE.cjs","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 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.\n# See LICENSE.md 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_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 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.\n# See LICENSE.md 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
|
+
{"version":3,"file":"OutputDialog-DR9cJem2.cjs","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 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.\n# See LICENSE.md 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_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 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.\n# See LICENSE.md 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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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./format-qjtPogBb.cjs");require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs");const e=require("vue"),V=require("./CustomIcon-8F08upeg.cjs"),N=require("./timeFilters-BtN2a5-O.cjs");require("./store-CiS35N-w.cjs");require("single-spa");const y=require("./SimpleTextDialog-DVlqwD8O.cjs"),P=require("./index-CctPeecq.cjs"),D={components:{DownloadDialog:P.DownloadDialog,SimpleTextDialog:y.SimpleTextDialog},mixins:[N.TimeFilters],data(){return{showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",files:[],loadingPackage:!1,progress:0,gems:[],python:[],processes:{},timeZone:"local"}},created(){new c.Ri().get_setting("time_zone").then(l=>{l&&(this.timeZone=l)}).catch(()=>{})},mounted(){this.update(),this.updateProcesses()},methods:{showOutput:function(l){this.processOutput=l.output,this.showProcessOutput=!0},update(){c.Br.get("/openc3-api/packages").then(l=>{this.gems=l.data.ruby,this.python=l.data.python})},updateProcesses:function(){c.Br.get("/openc3-api/process_status/package_?substr=true").then(l=>{this.processes=l.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},2500)})},selectFile(){this.progress=0,this.$refs.fileInput.click()},fileChange(l){const t=l.target.files;if(t.length>0){this.loadingPackage=!0;let h=this;const g=[...t].map(n=>{const a=new FormData;return a.append("package",n,n.name),c.Br.post("/openc3-api/packages",{data:a,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(i){let s=Math.round(i.loaded*100/i.total);h.progress=s}})});Promise.all(g).then(n=>{this.$notify.normal({body:`Uploaded ${n.length} package${n.length>1?"s":""}`}),this.loadingPackage=!1,this.files=[],setTimeout(()=>{this.updateProcesses()},2500)}).catch(n=>{this.loadingPackage=!1})}},deletePackage(l){this.$dialog.confirm(`Are you sure you want to remove: ${l}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>c.Br.delete(`/openc3-api/packages/${l}`)).then(t=>{this.$notify.normal({body:`Removed package ${l}`}),setTimeout(()=>{this.updateProcesses()},2500)}).catch(t=>{this.$notify.serious({body:`Failed to remove package ${l}`})})}}},B=["textContent"],b=["textContent"];function T(l,t,h,g,n,a){const i=e.resolveComponent("v-btn"),s=e.resolveComponent("v-col"),C=e.resolveComponent("rux-progress"),d=e.resolveComponent("v-row"),u=e.resolveComponent("v-list-item-title"),x=e.resolveComponent("v-list-item-subtitle"),v=e.resolveComponent("v-tooltip"),p=e.resolveComponent("v-list-item"),m=e.resolveComponent("v-divider"),_=e.resolveComponent("v-list"),w=e.resolveComponent("download-dialog"),k=e.resolveComponent("simple-text-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(s,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(i,{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(C,{value:n.progress},null,8,["value"])]),_:1})]),_:1}),Object.keys(n.processes).length>0?(e.openBlock(),e.createBlock(_,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(d,{"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(n.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(x,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+l.formatNanoseconds(o.updated_at,n.timeZone))},null,8,b)]),_:2},1024)]),_:2},[o.state!=="Running"?{name:"append",fn:e.withCtx(()=>[e.createVNode(v,{"open-delay":600,location:"top"},{activator:e.withCtx(({props:r})=>[e.createVNode(i,e.mergeProps({ref_for:!0},r,{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(d,{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(n.gems,(o,r)=>(e.openBlock(),e.createElementBlock("div",{key:r},[e.createVNode(p,null,{append:e.withCtx(()=>[e.createVNode(i,{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(d,{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(n.python,(o,r)=>(e.openBlock(),e.createElementBlock("div",{key:r},[e.createVNode(p,null,{append:e.withCtx(()=>[e.createVNode(i,{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:n.showDownloadDialog,"onUpdate:modelValue":t[1]||(t[1]=o=>n.showDownloadDialog=o)},null,8,["modelValue"]),e.createVNode(k,{modelValue:n.showProcessOutput,"onUpdate:modelValue":t[2]||(t[2]=o=>n.showProcessOutput=o),title:"Process Output",text:n.processOutput},null,8,["modelValue","text"])])}const O=V._export_sfc(D,[["render",T],["__scopeId","data-v-e5f831d9"]]);exports.default=O;
|
|
2
|
+
//# sourceMappingURL=PackagesTab-B4sG5tHo.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackagesTab-BgQsbXRo.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 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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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\n v-text=\"\n ' Updated At: ' +\n formatNanoseconds(process.updated_at, timeZone)\n \"\n />\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 { Api, OpenC3Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\nimport { TimeFilters } from '@/util'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n mixins: [TimeFilters],\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 timeZone: 'local',\n }\n },\n created() {\n new OpenC3Api()\n .get_setting('time_zone')\n .then((response) => {\n if (response) {\n this.timeZone = response\n }\n })\n .catch(() => {\n // Do nothing\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 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</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","TimeFilters","OpenC3Api","response","process","Api","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","_ctx","_component_v_tooltip","_withCtx","props","_mergeProps","$event","_component_v_divider","_openBlock","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"uaAmIKA,EAAU,CACb,WAAY,CACV,eAAAC,EAAAA,eACA,iBAAAC,EAAAA,kBAEF,OAAQ,CAACC,EAAAA,WAAW,EACpB,MAAO,CACL,MAAO,CACL,mBAAoB,GACpB,kBAAmB,GACnB,cAAe,GACf,MAAO,CAAA,EACP,eAAgB,GAChB,SAAU,EACV,KAAM,CAAA,EACN,OAAQ,CAAA,EACR,UAAW,CAAA,EACX,SAAU,OACZ,CACF,EACA,SAAU,CACR,IAAIC,EAAAA,GAAS,EACV,YAAY,WAAW,EACvB,KAAMC,GAAa,CACdA,IACF,KAAK,SAAWA,EAEpB,CAAC,EACA,MAAM,IAAM,CAEb,CAAC,CACL,EACA,SAAU,CACR,KAAK,OAAM,EACX,KAAK,gBAAe,CACtB,EACA,QAAS,CACP,WAAY,SAAUC,EAAS,CAC7B,KAAK,cAAgBA,EAAQ,OAC7B,KAAK,kBAAoB,EAC3B,EACA,QAAS,CACPC,EAAAA,GAAI,IAAI,sBAAsB,EAAE,KAAMF,GAAa,CACjD,KAAK,KAAOA,EAAS,KAAK,KAC1B,KAAK,OAASA,EAAS,KAAK,MAC9B,CAAC,CACH,EACA,gBAAiB,UAAY,CAC3BE,KAAI,IAAI,iDAAiD,EAAE,KACxDF,GAAa,CACZ,KAAK,UAAYA,EAAS,KACtB,OAAO,KAAK,KAAK,SAAS,EAAE,OAAS,GAEvC,WAAW,IAAM,CACf,KAAK,gBAAe,EACpB,KAAK,OAAM,CACb,EAAG,IAAI,CAEX,CACF,CACF,EACA,YAAa,CACX,KAAK,SAAW,EAChB,KAAK,MAAM,UAAU,MAAK,CAC5B,EACA,WAAWG,EAAO,CAChB,MAAMC,EAAQD,EAAM,OAAO,MAC3B,GAAIC,EAAM,OAAS,EAAG,CACpB,KAAK,eAAiB,GACtB,IAAIC,EAAO,KACX,MAAMC,EAAW,CAAC,GAAGF,CAAK,EAAE,IAAKG,GAAS,CACxC,MAAMC,EAAW,IAAI,SACrB,OAAAA,EAAS,OAAO,UAAWD,EAAMA,EAAK,IAAI,EACnCL,EAAAA,GAAI,KAAK,uBAAwB,CACtC,KAAMM,EACN,QAAS,CAAE,eAAgB,uBAC3B,iBAAkB,SAAUC,EAAe,CACzC,IAAIC,EAAmB,KAAK,MACzBD,EAAc,OAAS,IAAOA,EAAc,KAC/C,EACAJ,EAAK,SAAWK,CAClB,EACD,CACH,CAAC,EACD,QAAQ,IAAIJ,CAAQ,EACjB,KAAMK,GAAc,CACnB,KAAK,QAAQ,OAAO,CAClB,KAAM,YAAYA,EAAU,MAAM,WAChCA,EAAU,OAAS,EAAI,IAAM,EAC/B,GACD,EACD,KAAK,eAAiB,GACtB,KAAK,MAAQ,CAAA,EACb,WAAW,IAAM,CACf,KAAK,gBAAe,CACtB,EAAG,IAAI,CACT,CAAC,EACA,MAAOC,GAAU,CAChB,KAAK,eAAiB,EACxB,CAAC,CACL,CACF,EACA,cAAcC,EAAK,CACjB,KAAK,QACF,QAAQ,oCAAoCA,CAAG,GAAI,CAClD,OAAQ,SACR,WAAY,SACb,EACA,KAAMC,GACEZ,EAAAA,GAAI,OAAO,wBAAwBW,CAAG,EAAE,CAChD,EACA,KAAMb,GAAa,CAClB,KAAK,QAAQ,OAAO,CAClB,KAAM,mBAAmBa,CAAG,GAC7B,EACD,WAAW,IAAM,CACf,KAAK,gBAAe,CACtB,EAAG,IAAI,CACT,CAAC,EAGA,MAAOD,GAAU,CAChB,KAAK,QAAQ,QAAQ,CACnB,KAAM,4BAA4BC,CAAG,GACtC,CACH,CAAC,CACL,EAEJ,ygBAjPEE,qBAwGM,MAAA,KAAA,CAvGJC,EAAAA,YAaQC,EAAA,CAbD,aAAA,GAAW,MAAM,SAAS,MAAM,2BACrC,IAQQ,CARRD,EAAAA,YAQQE,EAAA,CARD,MAAM,WAAW,EAAA,mBACtB,IAAkD,CAAlDF,EAAAA,YAAkDG,EAAA,CAA1C,QAAOC,EAAA,UAAU,EAAA,mBAAE,IAAe,CAAA,GAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mBAAf,kBAAe,EAAA,0BAC1CC,EAAAA,mBAKE,QAAA,CAJA,IAAI,YACJ,MAAA,CAAA,QAAA,MAAA,EACA,KAAK,OACJ,6BAAQF,EAAA,YAAAA,EAAA,WAAA,GAAAG,CAAA,sBAGbP,EAAAA,YAEQE,EAAA,CAFD,MAAM,YAAY,KAAK,wBAC5B,IAA+C,CAA/CF,cAA+CQ,EAAA,CAAhC,MAAOC,EAAA,QAAQ,EAAA,KAAA,EAAA,CAAA,OAAA,CAAA,kBAI1B,OAAO,KAAKA,EAAA,SAAS,EAAE,OAAM,iBADrCC,EAAAA,YAgDSC,EAAA,OA9CP,MAAM,OACN,YAAU,mCAEV,IAMQ,CANRX,EAAAA,YAMQC,EAAA,CAND,aAAA,GAAW,MAAM,2BACtB,IAA2C,CAA3CD,EAAAA,YAA2CE,EAAA,CAApC,MAAM,SAAS,EAAA,mBAAC,IAAY,CAAA,GAAAG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mBAAZ,eAAY,EAAA,YACnCL,EAAAA,YAGQE,EAAA,CAHD,MAAM,OAAO,EAAA,mBAElB,IAA0C,CAAA,GAAAG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAA1CC,EAAAA,mBAA0C,WAArC,kCAA+B,EAAA,qCAGxCP,EAAAA,mBAmCMa,EAAAA,SAAA,KAAAC,EAAAA,WAnCiBJ,EAAA,UAAXxB,kBAAZc,EAAAA,mBAmCM,MAAA,CAnC6B,IAAKd,EAAQ,OAC9Ce,cAgCcc,EAAA,KAAAC,cAAA,mBA/BZ,IAOoB,CAPpBf,EAAAA,YAOoBgB,EAAA,KAAA,mBANlB,IAKE,CALFV,EAAAA,mBAKE,OAAA,CAJC,MAAKW,EAAAA,eAAEhC,EAAQ,MAAM,YAAW,CAAA,cACjCiC,EAAAA,8BAAuCjC,EAAQ,YAAY,KAAKA,EAAQ,MAAM,MAAMA,EAAQ,KAAK,6BAKrGe,EAAAA,YAOuBmB,EAAA,KAAA,mBANrB,IAKE,CALFb,EAAAA,mBAKE,OAAA,aAJAY,EAAAA,gCAA2DE,EAAA,kBAAkBnC,EAAQ,WAAYwB,EAAA,QAAQ,mCAO7FxB,EAAQ,QAAK,gBAAiB,sBAC5C,IAWY,CAXZe,EAAAA,YAWYqB,EAAA,CAXA,aAAY,IAAK,SAAS,QACzB,UAASC,EAAAA,QAClB,CAME,CAPoB,MAAAC,KAAK,CAC3BvB,EAAAA,YAMEG,EANFqB,EAAAA,WAME,CAAA,QAAA,EAAA,EALQD,EAAK,CACb,KAAK,UACL,QAAQ,OACR,aAAW,cACV,QAAKE,GAAErB,EAAA,WAAWnB,CAAO,6CAG9B,IAAwB,CAAxBoB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAAAA,mBAAwB,YAAlB,cAAW,EAAA,0CAIvBN,EAAAA,YAAa0B,CAAA,iDAGjB1B,EAAAA,YAiCSW,EAAA,CAjCD,MAAM,OAAO,YAAU,kCAC7B,IAAoE,CAApEX,EAAAA,YAAoEC,EAAA,CAA7D,MAAM,MAAM,EAAA,mBAAC,IAAwC,CAAxCD,EAAAA,YAAwCE,EAAA,CAAjC,MAAM,SAAS,EAAA,mBAAC,IAAS,CAAA,GAAAG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mBAAT,YAAS,EAAA,qBACpDsB,EAAAA,UAAA,EAAA,EAAA5B,EAAAA,mBAcMa,WAAA,KAAAC,EAAAA,WAdsBJ,EAAA,KAAI,CAAnBmB,EAAKC,mBAAlB9B,EAAAA,mBAcM,MAAA,CAd6B,IAAK8B,GAAK,CAC3C7B,EAAAA,YAWcc,EAAA,KAAA,CARD,iBACT,IAKE,CALFd,EAAAA,YAKEG,EAAA,CAJA,KAAK,aACL,QAAQ,OACR,aAAW,kBACV,QAAKsB,GAAErB,EAAA,cAAcwB,CAAG,2CAP7B,IAAgD,CAAhD5B,EAAAA,YAAgDgB,EAAA,KAAA,mBAA7B,IAAS,qCAANY,CAAG,EAAA,CAAA,4BAW3B5B,EAAAA,YAAa0B,CAAA,YAEf1B,EAAAA,YAA0EC,EAAA,CAAnE,MAAM,MAAM,EAAA,mBAAC,IAA8C,CAA9CD,EAAAA,YAA8CE,EAAA,CAAvC,MAAM,SAAS,EAAA,mBAAC,IAAe,CAAA,GAAAG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mBAAf,kBAAe,EAAA,qBAC1DsB,EAAAA,UAAA,EAAA,EAAA5B,EAAAA,mBAcMa,WAAA,KAAAC,EAAAA,WAdsBJ,EAAA,OAAM,CAArBZ,EAAKgC,mBAAlB9B,EAAAA,mBAcM,MAAA,CAd+B,IAAK8B,GAAK,CAC7C7B,EAAAA,YAWcc,EAAA,KAAA,CARD,iBACT,IAKE,CALFd,EAAAA,YAKEG,EAAA,CAJA,KAAK,aACL,QAAQ,OACR,aAAW,wBACV,QAAKsB,GAAErB,EAAA,cAAcP,CAAG,2CAP7B,IAAgD,CAAhDG,EAAAA,YAAgDgB,EAAA,KAAA,mBAA7B,IAAS,qCAANnB,CAAG,EAAA,CAAA,4BAW3BG,EAAAA,YAAa0B,CAAA,oBAGjB1B,EAAAA,YAAgD8B,EAAA,YAAtBrB,EAAA,wDAAAA,EAAA,mBAAkBgB,2BAC5CzB,EAAAA,YAIE+B,EAAA,YAHStB,EAAA,uDAAAA,EAAA,kBAAiBgB,GAC1B,MAAM,iBACL,KAAMhB,EAAA"}
|
|
1
|
+
{"version":3,"file":"PackagesTab-B4sG5tHo.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 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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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\n v-text=\"\n ' Updated At: ' +\n formatNanoseconds(process.updated_at, timeZone)\n \"\n />\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 { Api, OpenC3Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\nimport { TimeFilters } from '@/util'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n mixins: [TimeFilters],\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 timeZone: 'local',\n }\n },\n created() {\n new OpenC3Api()\n .get_setting('time_zone')\n .then((response) => {\n if (response) {\n this.timeZone = response\n }\n })\n .catch(() => {\n // Do nothing\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 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</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","TimeFilters","OpenC3Api","response","process","Api","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","_ctx","_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,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { B as g, R } from "./format-D2pYLAIF.js";
|
|
2
|
+
import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js";
|
|
3
|
+
import { resolveComponent as a, openBlock as u, createElementBlock as p, createVNode as e, withCtx as t, createTextVNode as c, createElementVNode as f, createBlock as B, Fragment as x, renderList as P, createSlots as N, toDisplayString as h, normalizeClass as U, mergeProps as I, createCommentVNode as L } from "vue";
|
|
4
|
+
import { _ as $ } from "./CustomIcon-DTR361si.js";
|
|
5
|
+
import { T as Z } from "./timeFilters-C1beMtAQ.js";
|
|
5
6
|
import "./store-CO68rDJT.js";
|
|
6
7
|
import "single-spa";
|
|
7
|
-
import { S as j } from "./SimpleTextDialog-
|
|
8
|
-
import { D as z } from "./index-
|
|
8
|
+
import { S as j } from "./SimpleTextDialog-ChmFtdVw.js";
|
|
9
|
+
import { D as z } from "./index-BJCQaZ7q.js";
|
|
9
10
|
const A = {
|
|
10
11
|
components: {
|
|
11
12
|
DownloadDialog: z,
|
|
@@ -27,7 +28,7 @@ const A = {
|
|
|
27
28
|
};
|
|
28
29
|
},
|
|
29
30
|
created() {
|
|
30
|
-
new
|
|
31
|
+
new R().get_setting("time_zone").then((s) => {
|
|
31
32
|
s && (this.timeZone = s);
|
|
32
33
|
}).catch(() => {
|
|
33
34
|
});
|
|
@@ -104,7 +105,7 @@ const A = {
|
|
|
104
105
|
}
|
|
105
106
|
}, G = ["textContent"], E = ["textContent"];
|
|
106
107
|
function M(s, o, w, C, n, i) {
|
|
107
|
-
const d = a("v-btn"), r = a("v-col"), O = a("rux-progress"), _ = a("v-row"), v = a("v-list-item-title"), T = a("v-list-item-subtitle"), V = a("v-tooltip"), k = a("v-list-item"), y = a("v-divider"), b = a("v-list"),
|
|
108
|
+
const d = a("v-btn"), r = a("v-col"), O = a("rux-progress"), _ = a("v-row"), v = a("v-list-item-title"), T = a("v-list-item-subtitle"), V = a("v-tooltip"), k = a("v-list-item"), y = a("v-divider"), b = a("v-list"), S = a("download-dialog"), F = a("simple-text-dialog");
|
|
108
109
|
return u(), p("div", null, [
|
|
109
110
|
e(_, {
|
|
110
111
|
"no-gutters": "",
|
|
@@ -141,7 +142,7 @@ function M(s, o, w, C, n, i) {
|
|
|
141
142
|
]),
|
|
142
143
|
_: 1
|
|
143
144
|
}),
|
|
144
|
-
Object.keys(n.processes).length > 0 ? (u(),
|
|
145
|
+
Object.keys(n.processes).length > 0 ? (u(), B(b, {
|
|
145
146
|
key: 0,
|
|
146
147
|
class: "list",
|
|
147
148
|
"data-test": "process-list"
|
|
@@ -170,12 +171,12 @@ function M(s, o, w, C, n, i) {
|
|
|
170
171
|
(u(!0), p(x, null, P(n.processes, (l) => (u(), p("div", {
|
|
171
172
|
key: l.name
|
|
172
173
|
}, [
|
|
173
|
-
e(k, null,
|
|
174
|
+
e(k, null, N({
|
|
174
175
|
default: t(() => [
|
|
175
176
|
e(v, null, {
|
|
176
177
|
default: t(() => [
|
|
177
178
|
f("span", {
|
|
178
|
-
class:
|
|
179
|
+
class: U(l.state.toLowerCase()),
|
|
179
180
|
textContent: h(
|
|
180
181
|
`Processing ${l.process_type}: ${l.detail} - ${l.state}`
|
|
181
182
|
)
|
|
@@ -204,7 +205,7 @@ function M(s, o, w, C, n, i) {
|
|
|
204
205
|
location: "top"
|
|
205
206
|
}, {
|
|
206
207
|
activator: t(({ props: m }) => [
|
|
207
|
-
e(d,
|
|
208
|
+
e(d, I({ ref_for: !0 }, m, {
|
|
208
209
|
icon: "mdi-eye",
|
|
209
210
|
variant: "text",
|
|
210
211
|
"aria-label": "Show Output",
|
|
@@ -224,7 +225,7 @@ function M(s, o, w, C, n, i) {
|
|
|
224
225
|
]))), 128))
|
|
225
226
|
]),
|
|
226
227
|
_: 1
|
|
227
|
-
})) :
|
|
228
|
+
})) : L("", !0),
|
|
228
229
|
e(b, {
|
|
229
230
|
class: "list",
|
|
230
231
|
"data-test": "packageList"
|
|
@@ -299,11 +300,11 @@ function M(s, o, w, C, n, i) {
|
|
|
299
300
|
]),
|
|
300
301
|
_: 1
|
|
301
302
|
}),
|
|
302
|
-
e(
|
|
303
|
+
e(S, {
|
|
303
304
|
modelValue: n.showDownloadDialog,
|
|
304
305
|
"onUpdate:modelValue": o[1] || (o[1] = (l) => n.showDownloadDialog = l)
|
|
305
306
|
}, null, 8, ["modelValue"]),
|
|
306
|
-
e(
|
|
307
|
+
e(F, {
|
|
307
308
|
modelValue: n.showProcessOutput,
|
|
308
309
|
"onUpdate:modelValue": o[2] || (o[2] = (l) => n.showProcessOutput = l),
|
|
309
310
|
title: "Process Output",
|
|
@@ -311,8 +312,8 @@ function M(s, o, w, C, n, i) {
|
|
|
311
312
|
}, null, 8, ["modelValue", "text"])
|
|
312
313
|
]);
|
|
313
314
|
}
|
|
314
|
-
const
|
|
315
|
+
const te = /* @__PURE__ */ $(A, [["render", M], ["__scopeId", "data-v-e5f831d9"]]);
|
|
315
316
|
export {
|
|
316
|
-
|
|
317
|
+
te as default
|
|
317
318
|
};
|
|
318
|
-
//# sourceMappingURL=PackagesTab-
|
|
319
|
+
//# sourceMappingURL=PackagesTab-Bb221-aM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackagesTab-CWplBp_I.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 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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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\n v-text=\"\n ' Updated At: ' +\n formatNanoseconds(process.updated_at, timeZone)\n \"\n />\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 { Api, OpenC3Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\nimport { TimeFilters } from '@/util'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n mixins: [TimeFilters],\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 timeZone: 'local',\n }\n },\n created() {\n new OpenC3Api()\n .get_setting('time_zone')\n .then((response) => {\n if (response) {\n this.timeZone = response\n }\n })\n .catch(() => {\n // Do nothing\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 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</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","TimeFilters","OpenC3Api","response","process","Api","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","_ctx","_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-Bb221-aM.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 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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2026, 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\n v-text=\"\n ' Updated At: ' +\n formatNanoseconds(process.updated_at, timeZone)\n \"\n />\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 { Api, OpenC3Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\nimport { TimeFilters } from '@/util'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n mixins: [TimeFilters],\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 timeZone: 'local',\n }\n },\n created() {\n new OpenC3Api()\n .get_setting('time_zone')\n .then((response) => {\n if (response) {\n this.timeZone = response\n }\n })\n .catch(() => {\n // Do nothing\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 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</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","TimeFilters","OpenC3Api","response","process","Api","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","_ctx","_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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"}
|