@openc3/vue-common 6.5.0 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ArrayWidget-DaQV8y9D.cjs → ArrayWidget-Bb_Ldxq7.cjs} +2 -2
- package/dist/{ArrayWidget-DaQV8y9D.cjs.map → ArrayWidget-Bb_Ldxq7.cjs.map} +1 -1
- package/dist/{ArrayWidget-CC3iwyQc.js → ArrayWidget-Ck6pzAyW.js} +4 -4
- package/dist/{ArrayWidget-CC3iwyQc.js.map → ArrayWidget-Ck6pzAyW.js.map} +1 -1
- package/dist/{ArrayplotWidget-CkiRBYrb.cjs → ArrayplotWidget-DC41cpv1.cjs} +2 -2
- package/dist/{ArrayplotWidget-CkiRBYrb.cjs.map → ArrayplotWidget-DC41cpv1.cjs.map} +1 -1
- package/dist/{ArrayplotWidget-CiQdsmVy.js → ArrayplotWidget-ntRLh6-B.js} +3 -3
- package/dist/{ArrayplotWidget-CiQdsmVy.js.map → ArrayplotWidget-ntRLh6-B.js.map} +1 -1
- package/dist/AstroStatus-CILMWL6F.cjs.map +1 -1
- package/dist/AstroStatus-CY9VkeTN.js.map +1 -1
- package/dist/{BarColumn-BhjcS87D.js → BarColumn-Bgz2YJ59.js} +3 -3
- package/dist/{BarColumn-BhjcS87D.js.map → BarColumn-Bgz2YJ59.js.map} +1 -1
- package/dist/{BarColumn-Ci9fqSL1.cjs → BarColumn-DtRNuOpa.cjs} +2 -2
- package/dist/{BarColumn-Ci9fqSL1.cjs.map → BarColumn-DtRNuOpa.cjs.map} +1 -1
- package/dist/{BlockWidget-LLPHBYVU.js → BlockWidget-DGH3Zz5p.js} +4 -4
- package/dist/{BlockWidget-LLPHBYVU.js.map → BlockWidget-DGH3Zz5p.js.map} +1 -1
- package/dist/{BlockWidget-yNjXB1gO.cjs → BlockWidget-DOY5lVfa.cjs} +2 -2
- package/dist/{BlockWidget-yNjXB1gO.cjs.map → BlockWidget-DOY5lVfa.cjs.map} +1 -1
- package/dist/{ButtonWidget-C_R8sVl5.cjs → ButtonWidget-CFyZXGt6.cjs} +2 -2
- package/dist/{ButtonWidget-C_R8sVl5.cjs.map → ButtonWidget-CFyZXGt6.cjs.map} +1 -1
- package/dist/{ButtonWidget-Co0KMkIG.js → ButtonWidget-D_tupiPB.js} +4 -4
- package/dist/{ButtonWidget-Co0KMkIG.js.map → ButtonWidget-D_tupiPB.js.map} +1 -1
- package/dist/{CanvasWidget-CMVhjpJc.cjs → CanvasWidget-C6dc7mUw.cjs} +2 -2
- package/dist/{CanvasWidget-CMVhjpJc.cjs.map → CanvasWidget-C6dc7mUw.cjs.map} +1 -1
- package/dist/{CanvasWidget-DPrxnI7M.js → CanvasWidget-CzG2jYQb.js} +2 -2
- package/dist/{CanvasWidget-DPrxnI7M.js.map → CanvasWidget-CzG2jYQb.js.map} +1 -1
- package/dist/{CanvasdotWidget-s1ALDR4k.js → CanvasdotWidget-0FAaw4G2.js} +2 -2
- package/dist/{CanvasdotWidget-s1ALDR4k.js.map → CanvasdotWidget-0FAaw4G2.js.map} +1 -1
- package/dist/{CanvasdotWidget-DskyFyIC.cjs → CanvasdotWidget-9bBVHC1l.cjs} +2 -2
- package/dist/{CanvasdotWidget-DskyFyIC.cjs.map → CanvasdotWidget-9bBVHC1l.cjs.map} +1 -1
- package/dist/{CanvasimageWidget-Cs-KjdqK.js → CanvasimageWidget-CNJlzLqo.js} +3 -3
- package/dist/{CanvasimageWidget-Cs-KjdqK.js.map → CanvasimageWidget-CNJlzLqo.js.map} +1 -1
- package/dist/{CanvasimageWidget-BngTI0bl.cjs → CanvasimageWidget-DjvdDCRS.cjs} +2 -2
- package/dist/{CanvasimageWidget-BngTI0bl.cjs.map → CanvasimageWidget-DjvdDCRS.cjs.map} +1 -1
- package/dist/{CanvasimagevalueWidget-0qTn6Gb5.cjs → CanvasimagevalueWidget-C1fI-ftP.cjs} +2 -2
- package/dist/{CanvasimagevalueWidget-0qTn6Gb5.cjs.map → CanvasimagevalueWidget-C1fI-ftP.cjs.map} +1 -1
- package/dist/{CanvasimagevalueWidget-B-wBQisl.js → CanvasimagevalueWidget-DudwwOD6.js} +3 -3
- package/dist/{CanvasimagevalueWidget-B-wBQisl.js.map → CanvasimagevalueWidget-DudwwOD6.js.map} +1 -1
- package/dist/{CanvaslabelWidget-b2yvqZBZ.cjs → CanvaslabelWidget--6Sjc4E8.cjs} +2 -2
- package/dist/{CanvaslabelWidget-b2yvqZBZ.cjs.map → CanvaslabelWidget--6Sjc4E8.cjs.map} +1 -1
- package/dist/{CanvaslabelWidget-CLBK52pP.js → CanvaslabelWidget-BZQp16dH.js} +2 -2
- package/dist/{CanvaslabelWidget-CLBK52pP.js.map → CanvaslabelWidget-BZQp16dH.js.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-CAa70y_o.js → CanvaslabelvalueWidget-CHS36Te9.js} +2 -2
- package/dist/{CanvaslabelvalueWidget-CAa70y_o.js.map → CanvaslabelvalueWidget-CHS36Te9.js.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-CA03ncx0.cjs → CanvaslabelvalueWidget-DZCxsIKk.cjs} +2 -2
- package/dist/{CanvaslabelvalueWidget-CA03ncx0.cjs.map → CanvaslabelvalueWidget-DZCxsIKk.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-B-yhgIlR.cjs → CanvaslineWidget-Bn83Rb10.cjs} +2 -2
- package/dist/{CanvaslineWidget-B-yhgIlR.cjs.map → CanvaslineWidget-Bn83Rb10.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-PdwVJOQ5.js → CanvaslineWidget-nhKEAGhs.js} +2 -2
- package/dist/{CanvaslineWidget-PdwVJOQ5.js.map → CanvaslineWidget-nhKEAGhs.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-PVW-_nOk.cjs → CanvaslinevalueWidget-C6x_4Gc9.cjs} +2 -2
- package/dist/{CanvaslinevalueWidget-PVW-_nOk.cjs.map → CanvaslinevalueWidget-C6x_4Gc9.cjs.map} +1 -1
- package/dist/{CanvaslinevalueWidget-CKrp1f3Z.js → CanvaslinevalueWidget-DsyIDkJy.js} +2 -2
- package/dist/{CanvaslinevalueWidget-CKrp1f3Z.js.map → CanvaslinevalueWidget-DsyIDkJy.js.map} +1 -1
- package/dist/{CheckbuttonWidget-BItae9qq.cjs → CheckbuttonWidget-BvggsGZY.cjs} +2 -2
- package/dist/{CheckbuttonWidget-BItae9qq.cjs.map → CheckbuttonWidget-BvggsGZY.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-CTSfH4NN.js → CheckbuttonWidget-DCam7Jd0.js} +2 -2
- package/dist/{CheckbuttonWidget-CTSfH4NN.js.map → CheckbuttonWidget-DCam7Jd0.js.map} +1 -1
- package/dist/{ComboboxWidget-BFKz1kva.cjs → ComboboxWidget-BS5WSbrK.cjs} +2 -2
- package/dist/{ComboboxWidget-BFKz1kva.cjs.map → ComboboxWidget-BS5WSbrK.cjs.map} +1 -1
- package/dist/{ComboboxWidget-BQzv9zk5.js → ComboboxWidget-ZX-k-_aK.js} +2 -2
- package/dist/{ComboboxWidget-BQzv9zk5.js.map → ComboboxWidget-ZX-k-_aK.js.map} +1 -1
- package/dist/{CriticalCmdDialog-CfUGhKPh.cjs → CriticalCmdDialog-7tOK2XQk.cjs} +2 -2
- package/dist/{CriticalCmdDialog-CfUGhKPh.cjs.map → CriticalCmdDialog-7tOK2XQk.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-D5m3w1fr.js → CriticalCmdDialog-Dylpoz_4.js} +2 -2
- package/dist/{CriticalCmdDialog-D5m3w1fr.js.map → CriticalCmdDialog-Dylpoz_4.js.map} +1 -1
- package/dist/CustomIcon-Bop2mEnu.cjs.map +1 -1
- package/dist/CustomIcon-h5X7369N.js.map +1 -1
- package/dist/{DateWidget-DKXxXT1g.js → DateWidget-DuJ5uC2t.js} +2 -2
- package/dist/{DateWidget-DKXxXT1g.js.map → DateWidget-DuJ5uC2t.js.map} +1 -1
- package/dist/{DateWidget-CuUySNFb.cjs → DateWidget-jejbk2-G.cjs} +2 -2
- package/dist/{DateWidget-CuUySNFb.cjs.map → DateWidget-jejbk2-G.cjs.map} +1 -1
- package/dist/{DetailsDialog-DEjAO6yp.js → DetailsDialog-BQE0TraI.js} +2 -2
- package/dist/DetailsDialog-BQE0TraI.js.map +1 -0
- package/dist/{DetailsDialog-DlUuDdFa.cjs → DetailsDialog-DmKpPDNn.cjs} +2 -2
- package/dist/{DetailsDialog-DlUuDdFa.cjs.map → DetailsDialog-DmKpPDNn.cjs.map} +1 -1
- package/dist/DynamicWidget-BWEVCUfd.cjs.map +1 -1
- package/dist/DynamicWidget-CfMtj7H8.js.map +1 -1
- package/dist/{EventListDialog-CPYg1a2g.cjs → EventListDialog-CDcJcxy5.cjs} +2 -2
- package/dist/{EventListDialog-CPYg1a2g.cjs.map → EventListDialog-CDcJcxy5.cjs.map} +1 -1
- package/dist/{EventListDialog-CabnKWVX.js → EventListDialog-CGUFCrJF.js} +3 -3
- package/dist/{EventListDialog-CabnKWVX.js.map → EventListDialog-CGUFCrJF.js.map} +1 -1
- package/dist/{FormatvalueWidget-7Yp9jfgX.js → FormatvalueWidget-DYICPNcx.js} +3 -3
- package/dist/{FormatvalueWidget-7Yp9jfgX.js.map → FormatvalueWidget-DYICPNcx.js.map} +1 -1
- package/dist/{FormatvalueWidget-LNNT9pLh.cjs → FormatvalueWidget-wu7Q3sXu.cjs} +2 -2
- package/dist/{FormatvalueWidget-LNNT9pLh.cjs.map → FormatvalueWidget-wu7Q3sXu.cjs.map} +1 -1
- package/dist/{Graph-hzxapkW-.js → Graph-DCihpnT0.js} +2 -2
- package/dist/{Graph-hzxapkW-.js.map → Graph-DCihpnT0.js.map} +1 -1
- package/dist/{Graph-ZGEBRGOA.cjs → Graph-mSqImgca.cjs} +2 -2
- package/dist/{Graph-ZGEBRGOA.cjs.map → Graph-mSqImgca.cjs.map} +1 -1
- package/dist/{GraphWidget-caScsshg.cjs → GraphWidget-CQjKAMPR.cjs} +2 -2
- package/dist/{GraphWidget-caScsshg.cjs.map → GraphWidget-CQjKAMPR.cjs.map} +1 -1
- package/dist/{GraphWidget-Dn0ZaxHo.js → GraphWidget-cTVq29cY.js} +2 -2
- package/dist/{GraphWidget-Dn0ZaxHo.js.map → GraphWidget-cTVq29cY.js.map} +1 -1
- package/dist/{HorizontalWidget-Bt7N0bIN.cjs → HorizontalWidget--AkRJPlL.cjs} +2 -2
- package/dist/{HorizontalWidget-Bt7N0bIN.cjs.map → HorizontalWidget--AkRJPlL.cjs.map} +1 -1
- package/dist/{HorizontalWidget-BFzi3rMl.js → HorizontalWidget-v1pfd94Z.js} +2 -2
- package/dist/{HorizontalWidget-BFzi3rMl.js.map → HorizontalWidget-v1pfd94Z.js.map} +1 -1
- package/dist/{HorizontalboxWidget-DIagyace.js → HorizontalboxWidget-B06-c_n4.js} +5 -5
- package/dist/{HorizontalboxWidget-DIagyace.js.map → HorizontalboxWidget-B06-c_n4.js.map} +1 -1
- package/dist/{HorizontalboxWidget-Dv6NWovB.cjs → HorizontalboxWidget-synL-Bar.cjs} +2 -2
- package/dist/{HorizontalboxWidget-Dv6NWovB.cjs.map → HorizontalboxWidget-synL-Bar.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-BOZNWM3a.js → HorizontallineWidget-DEODVJCk.js} +2 -2
- package/dist/{HorizontallineWidget-BOZNWM3a.js.map → HorizontallineWidget-DEODVJCk.js.map} +1 -1
- package/dist/{HorizontallineWidget-CFsWevmI.cjs → HorizontallineWidget-lTr2JTFY.cjs} +2 -2
- package/dist/{HorizontallineWidget-CFsWevmI.cjs.map → HorizontallineWidget-lTr2JTFY.cjs.map} +1 -1
- package/dist/{IframeWidget-J6g6EhHh.cjs → IframeWidget-ByhwW9yG.cjs} +2 -2
- package/dist/{IframeWidget-J6g6EhHh.cjs.map → IframeWidget-ByhwW9yG.cjs.map} +1 -1
- package/dist/{IframeWidget-BU24bhc2.js → IframeWidget-n8lNXrpt.js} +2 -2
- package/dist/{IframeWidget-BU24bhc2.js.map → IframeWidget-n8lNXrpt.js.map} +1 -1
- package/dist/{ImageLoader-xxDrxPAX.js → ImageLoader-CfcErydq.js} +2 -2
- package/dist/{ImageLoader-xxDrxPAX.js.map → ImageLoader-CfcErydq.js.map} +1 -1
- package/dist/{ImageLoader-BVVI9FSl.cjs → ImageLoader-DBWVFtNu.cjs} +2 -2
- package/dist/{ImageLoader-BVVI9FSl.cjs.map → ImageLoader-DBWVFtNu.cjs.map} +1 -1
- package/dist/{ImageviewerWidget-BSTS4nPw.cjs → ImageviewerWidget-D4mU6wLX.cjs} +2 -2
- package/dist/{ImageviewerWidget-BSTS4nPw.cjs.map → ImageviewerWidget-D4mU6wLX.cjs.map} +1 -1
- package/dist/{ImageviewerWidget-YMA4CVsl.js → ImageviewerWidget-DE8fj06Z.js} +2 -2
- package/dist/{ImageviewerWidget-YMA4CVsl.js.map → ImageviewerWidget-DE8fj06Z.js.map} +1 -1
- package/dist/{InterfacesTab-Cv50gOTl.js → InterfacesTab-BF-Wx5gk.js} +3 -3
- package/dist/{InterfacesTab-Cv50gOTl.js.map → InterfacesTab-BF-Wx5gk.js.map} +1 -1
- package/dist/{InterfacesTab-DOjyTYVC.cjs → InterfacesTab-DTAAIx-y.cjs} +2 -2
- package/dist/{InterfacesTab-DOjyTYVC.cjs.map → InterfacesTab-DTAAIx-y.cjs.map} +1 -1
- package/dist/{LabelWidget-t-nltZ16.cjs → LabelWidget-DQZqRxKF.cjs} +2 -2
- package/dist/{LabelWidget-t-nltZ16.cjs.map → LabelWidget-DQZqRxKF.cjs.map} +1 -1
- package/dist/{LabelWidget-2402SA18.js → LabelWidget-iUIJLhdA.js} +2 -2
- package/dist/{LabelWidget-2402SA18.js.map → LabelWidget-iUIJLhdA.js.map} +1 -1
- package/dist/{LabelledWidget-tWrIx1sj.cjs → LabelledWidget-9HWChRmv.cjs} +2 -2
- package/dist/{LabelledWidget-tWrIx1sj.cjs.map → LabelledWidget-9HWChRmv.cjs.map} +1 -1
- package/dist/{LabelledWidget-Cbubzj_g.js → LabelledWidget-KI6fMlsr.js} +4 -4
- package/dist/{LabelledWidget-Cbubzj_g.js.map → LabelledWidget-KI6fMlsr.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-s8V7w6LJ.js → LabelprogressbarWidget-C2lzmqBH.js} +4 -4
- package/dist/{LabelprogressbarWidget-s8V7w6LJ.js.map → LabelprogressbarWidget-C2lzmqBH.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-1k8njgQG.cjs → LabelprogressbarWidget-DwzTP73u.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-1k8njgQG.cjs.map → LabelprogressbarWidget-DwzTP73u.cjs.map} +1 -1
- package/dist/{LabelsparklineWidget-qbM_OXLh.js → LabelsparklineWidget-Ci6GGm29.js} +4 -4
- package/dist/{LabelsparklineWidget-qbM_OXLh.js.map → LabelsparklineWidget-Ci6GGm29.js.map} +1 -1
- package/dist/{LabelsparklineWidget-4yoeI7gJ.cjs → LabelsparklineWidget-DMjBshq8.cjs} +2 -2
- package/dist/{LabelsparklineWidget-4yoeI7gJ.cjs.map → LabelsparklineWidget-DMjBshq8.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-CEua41bt.cjs → LabelvalueWidget-mAb0eLA8.cjs} +2 -2
- package/dist/{LabelvalueWidget-CEua41bt.cjs.map → LabelvalueWidget-mAb0eLA8.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-B5Ihc2yP.js → LabelvalueWidget-oiW-JDw6.js} +4 -4
- package/dist/{LabelvalueWidget-B5Ihc2yP.js.map → LabelvalueWidget-oiW-JDw6.js.map} +1 -1
- package/dist/{LabelvaluedescWidget-7jth-OmG.cjs → LabelvaluedescWidget-CZJ0kZN-.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-7jth-OmG.cjs.map → LabelvaluedescWidget-CZJ0kZN-.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-Cl3JHPGR.js → LabelvaluedescWidget-Ck0AJ9g0.js} +5 -5
- package/dist/{LabelvaluedescWidget-Cl3JHPGR.js.map → LabelvaluedescWidget-Ck0AJ9g0.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-BDhDe4-V.cjs → LabelvaluelimitsbarWidget-DjBqYxRr.cjs} +2 -2
- package/dist/{LabelvaluelimitsbarWidget-BDhDe4-V.cjs.map → LabelvaluelimitsbarWidget-DjBqYxRr.cjs.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-DnpfRyHl.js → LabelvaluelimitsbarWidget-aaVLaejn.js} +4 -4
- package/dist/{LabelvaluelimitsbarWidget-DnpfRyHl.js.map → LabelvaluelimitsbarWidget-aaVLaejn.js.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-d1puBx2r.cjs → LabelvaluelimitscolumnWidget-GputlDZq.cjs} +2 -2
- package/dist/{LabelvaluelimitscolumnWidget-d1puBx2r.cjs.map → LabelvaluelimitscolumnWidget-GputlDZq.cjs.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-D4L9L5oa.js → LabelvaluelimitscolumnWidget-Uur6aqOg.js} +5 -5
- package/dist/{LabelvaluelimitscolumnWidget-D4L9L5oa.js.map → LabelvaluelimitscolumnWidget-Uur6aqOg.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-BivnHCbE.js → LabelvaluerangebarWidget-Bs9locqu.js} +4 -4
- package/dist/{LabelvaluerangebarWidget-BivnHCbE.js.map → LabelvaluerangebarWidget-Bs9locqu.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-BczxhVFU.cjs → LabelvaluerangebarWidget-Ci-n_hxk.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-BczxhVFU.cjs.map → LabelvaluerangebarWidget-Ci-n_hxk.cjs.map} +1 -1
- package/dist/{Layout-B7KU2jmu.js → Layout-1z8iJV5-.js} +2 -2
- package/dist/{Layout-B7KU2jmu.js.map → Layout-1z8iJV5-.js.map} +1 -1
- package/dist/Layout-kOQnicRa.cjs +2 -0
- package/dist/{Layout-DoI_Bpyu.cjs.map → Layout-kOQnicRa.cjs.map} +1 -1
- package/dist/{LedWidget-DpdthKEd.js → LedWidget-BN8IgAxJ.js} +4 -4
- package/dist/{LedWidget-DpdthKEd.js.map → LedWidget-BN8IgAxJ.js.map} +1 -1
- package/dist/{LedWidget-BSZWv-hh.cjs → LedWidget-BUTbyEBi.cjs} +2 -2
- package/dist/{LedWidget-BSZWv-hh.cjs.map → LedWidget-BUTbyEBi.cjs.map} +1 -1
- package/dist/{LimitsbarWidget-CLyj3Kb-.js → LimitsbarWidget-BxxoKTjp.js} +2 -2
- package/dist/{LimitsbarWidget-CLyj3Kb-.js.map → LimitsbarWidget-BxxoKTjp.js.map} +1 -1
- package/dist/{LimitsbarWidget-CaBnnZR-.cjs → LimitsbarWidget-Co5GAHro.cjs} +2 -2
- package/dist/{LimitsbarWidget-CaBnnZR-.cjs.map → LimitsbarWidget-Co5GAHro.cjs.map} +1 -1
- package/dist/{LimitscolorWidget-DilOPB_Q.cjs → LimitscolorWidget-BpTcgqRC.cjs} +2 -2
- package/dist/{LimitscolorWidget-DilOPB_Q.cjs.map → LimitscolorWidget-BpTcgqRC.cjs.map} +1 -1
- package/dist/{LimitscolorWidget-ChvzYoug.js → LimitscolorWidget-DFDwf4In.js} +2 -2
- package/dist/{LimitscolorWidget-ChvzYoug.js.map → LimitscolorWidget-DFDwf4In.js.map} +1 -1
- package/dist/{LimitscolumnWidget-IOhsLFZ1.js → LimitscolumnWidget-CdBh2mJu.js} +2 -2
- package/dist/{LimitscolumnWidget-IOhsLFZ1.js.map → LimitscolumnWidget-CdBh2mJu.js.map} +1 -1
- package/dist/{LimitscolumnWidget-C8m6Sqp8.cjs → LimitscolumnWidget-CqJJKDzz.cjs} +2 -2
- package/dist/{LimitscolumnWidget-C8m6Sqp8.cjs.map → LimitscolumnWidget-CqJJKDzz.cjs.map} +1 -1
- package/dist/{LinegraphWidget-DOPBUi0Y.cjs → LinegraphWidget-Bay0EtbI.cjs} +2 -2
- package/dist/{LinegraphWidget-DOPBUi0Y.cjs.map → LinegraphWidget-Bay0EtbI.cjs.map} +1 -1
- package/dist/{LinegraphWidget-DZdqMqjw.js → LinegraphWidget-jXksfbPb.js} +4 -4
- package/dist/{LinegraphWidget-DZdqMqjw.js.map → LinegraphWidget-jXksfbPb.js.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-BzGYMhJ2.js → MatrixbycolumnsWidget-DCwxPjwS.js} +3 -3
- package/dist/{MatrixbycolumnsWidget-BzGYMhJ2.js.map → MatrixbycolumnsWidget-DCwxPjwS.js.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-BrynJcbR.cjs → MatrixbycolumnsWidget-DxRhvPGv.cjs} +2 -2
- package/dist/{MatrixbycolumnsWidget-BrynJcbR.cjs.map → MatrixbycolumnsWidget-DxRhvPGv.cjs.map} +1 -1
- package/dist/{MicroservicesTab-DrqUNTBZ.js → MicroservicesTab-B-SdMwek.js} +3 -3
- package/dist/{MicroservicesTab-DrqUNTBZ.js.map → MicroservicesTab-B-SdMwek.js.map} +1 -1
- package/dist/{MicroservicesTab-pL6PYFy5.cjs → MicroservicesTab-DGaTcj-y.cjs} +2 -2
- package/dist/{MicroservicesTab-pL6PYFy5.cjs.map → MicroservicesTab-DGaTcj-y.cjs.map} +1 -1
- package/dist/{Openc3Screen-CPknMmN8.js → Openc3Screen-BZN0Wtrm.js} +8 -4
- package/dist/Openc3Screen-BZN0Wtrm.js.map +1 -0
- package/dist/{Openc3Screen-CQkUFNEH.cjs → Openc3Screen-dtpBWZdA.cjs} +3 -3
- package/dist/Openc3Screen-dtpBWZdA.cjs.map +1 -0
- package/dist/{OutputDialog-B6i5yvkr.js → OutputDialog-CcSp-Uqo.js} +2 -2
- package/dist/{OutputDialog-B6i5yvkr.js.map → OutputDialog-CcSp-Uqo.js.map} +1 -1
- package/dist/{OutputDialog-BwBPgVHK.cjs → OutputDialog-CxKDhrg6.cjs} +2 -2
- package/dist/{OutputDialog-BwBPgVHK.cjs.map → OutputDialog-CxKDhrg6.cjs.map} +1 -1
- package/dist/{PackagesTab-DYoGxaWx.cjs → PackagesTab-B4V2n4io.cjs} +2 -2
- package/dist/{PackagesTab-DYoGxaWx.cjs.map → PackagesTab-B4V2n4io.cjs.map} +1 -1
- package/dist/{PackagesTab-CjcBp95A.js → PackagesTab-Dx25CfF0.js} +3 -3
- package/dist/{PackagesTab-CjcBp95A.js.map → PackagesTab-Dx25CfF0.js.map} +1 -1
- package/dist/{PluginsTab-UcluFu7J.cjs → PluginsTab-DHO1tK2S.cjs} +3 -3
- package/dist/PluginsTab-DHO1tK2S.cjs.map +1 -0
- package/dist/{PluginsTab-Diu6vzUR.js → PluginsTab-lHDR5v6S.js} +6 -4
- package/dist/PluginsTab-lHDR5v6S.js.map +1 -0
- package/dist/{ProgressbarWidget-BwnZ2_h4.cjs → ProgressbarWidget-C0AkbX_o.cjs} +2 -2
- package/dist/{ProgressbarWidget-BwnZ2_h4.cjs.map → ProgressbarWidget-C0AkbX_o.cjs.map} +1 -1
- package/dist/{ProgressbarWidget-Bre-0zcS.js → ProgressbarWidget-Cdu5nJC3.js} +2 -2
- package/dist/{ProgressbarWidget-Bre-0zcS.js.map → ProgressbarWidget-Cdu5nJC3.js.map} +1 -1
- package/dist/{RadiobuttonWidget-CLbfhrkc.js → RadiobuttonWidget-CZZGbvdG.js} +2 -2
- package/dist/{RadiobuttonWidget-CLbfhrkc.js.map → RadiobuttonWidget-CZZGbvdG.js.map} +1 -1
- package/dist/{RadiobuttonWidget-BzO43-f0.cjs → RadiobuttonWidget-DslmJO31.cjs} +2 -2
- package/dist/{RadiobuttonWidget-BzO43-f0.cjs.map → RadiobuttonWidget-DslmJO31.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-DvRc70_Q.js → RadiogroupWidget-CQN3v8Ip.js} +2 -2
- package/dist/{RadiogroupWidget-DvRc70_Q.js.map → RadiogroupWidget-CQN3v8Ip.js.map} +1 -1
- package/dist/{RadiogroupWidget-CCHJJuvX.cjs → RadiogroupWidget-DKgBAR9E.cjs} +2 -2
- package/dist/{RadiogroupWidget-CCHJJuvX.cjs.map → RadiogroupWidget-DKgBAR9E.cjs.map} +1 -1
- package/dist/{RangebarWidget-DbmeAM6e.cjs → RangebarWidget-Tq80I5zA.cjs} +2 -2
- package/dist/{RangebarWidget-DbmeAM6e.cjs.map → RangebarWidget-Tq80I5zA.cjs.map} +1 -1
- package/dist/{RangebarWidget-BvzVWcfZ.js → RangebarWidget-dZN9WjoZ.js} +2 -2
- package/dist/{RangebarWidget-BvzVWcfZ.js.map → RangebarWidget-dZN9WjoZ.js.map} +1 -1
- package/dist/{RedisTab-Dq_xGlhh.cjs → RedisTab-CdiSo-CO.cjs} +2 -2
- package/dist/{RedisTab-Dq_xGlhh.cjs.map → RedisTab-CdiSo-CO.cjs.map} +1 -1
- package/dist/{RedisTab-BWYQfcqX.js → RedisTab-CkSwEwTZ.js} +2 -2
- package/dist/{RedisTab-BWYQfcqX.js.map → RedisTab-CkSwEwTZ.js.map} +1 -1
- package/dist/{RollupWidget-BnhD1fw1.cjs → RollupWidget-CHdZAUCb.cjs} +2 -2
- package/dist/{RollupWidget-BnhD1fw1.cjs.map → RollupWidget-CHdZAUCb.cjs.map} +1 -1
- package/dist/{RollupWidget-KT243Ed8.js → RollupWidget-i9DnNJl6.js} +2 -2
- package/dist/{RollupWidget-KT243Ed8.js.map → RollupWidget-i9DnNJl6.js.map} +1 -1
- package/dist/{RoutersTab-DS95AQxI.cjs → RoutersTab-Cp8wM-mS.cjs} +2 -2
- package/dist/{RoutersTab-DS95AQxI.cjs.map → RoutersTab-Cp8wM-mS.cjs.map} +1 -1
- package/dist/{RoutersTab-CLwJ6J7T.js → RoutersTab-DiYEI1Nq.js} +3 -3
- package/dist/{RoutersTab-CLwJ6J7T.js.map → RoutersTab-DiYEI1Nq.js.map} +1 -1
- package/dist/{ScriptChooser-D2-VTc4T.cjs → ScriptChooser-BnTP6ucF.cjs} +2 -2
- package/dist/{ScriptChooser-D2-VTc4T.cjs.map → ScriptChooser-BnTP6ucF.cjs.map} +1 -1
- package/dist/{ScriptChooser-CA2eMEE2.js → ScriptChooser-Cua8ObYv.js} +2 -2
- package/dist/{ScriptChooser-CA2eMEE2.js.map → ScriptChooser-Cua8ObYv.js.map} +1 -1
- package/dist/{ScrollwindowWidget-DcpdXyrP.js → ScrollwindowWidget-54GU96Ve.js} +3 -3
- package/dist/{ScrollwindowWidget-DcpdXyrP.js.map → ScrollwindowWidget-54GU96Ve.js.map} +1 -1
- package/dist/{ScrollwindowWidget-vnhzeIMy.cjs → ScrollwindowWidget-C5_X-KwQ.cjs} +2 -2
- package/dist/{ScrollwindowWidget-vnhzeIMy.cjs.map → ScrollwindowWidget-C5_X-KwQ.cjs.map} +1 -1
- package/dist/{SecretsTab-HP8E21SW.cjs → SecretsTab-DY16usGc.cjs} +2 -2
- package/dist/{SecretsTab-HP8E21SW.cjs.map → SecretsTab-DY16usGc.cjs.map} +1 -1
- package/dist/{SecretsTab-CQNTFJAM.js → SecretsTab-uWRVI1EE.js} +2 -2
- package/dist/{SecretsTab-CQNTFJAM.js.map → SecretsTab-uWRVI1EE.js.map} +1 -1
- package/dist/{SettingsTab-BAOaLzuc.js → SettingsTab-BVnr4OtU.js} +3 -3
- package/dist/{SettingsTab-BAOaLzuc.js.map → SettingsTab-BVnr4OtU.js.map} +1 -1
- package/dist/{SettingsTab-CMQxLfkn.cjs → SettingsTab-BkwaDhYo.cjs} +2 -2
- package/dist/{SettingsTab-CMQxLfkn.cjs.map → SettingsTab-BkwaDhYo.cjs.map} +1 -1
- package/dist/{SignalWidget-CoTi0Uzy.js → SignalWidget-B_kA9eCJ.js} +2 -2
- package/dist/{SignalWidget-CoTi0Uzy.js.map → SignalWidget-B_kA9eCJ.js.map} +1 -1
- package/dist/{SignalWidget-DqxDT42W.cjs → SignalWidget-COL8kXSJ.cjs} +2 -2
- package/dist/{SignalWidget-DqxDT42W.cjs.map → SignalWidget-COL8kXSJ.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-BdV90ARp.cjs → SimpleTextDialog-BWUqPlTv.cjs} +2 -2
- package/dist/{SimpleTextDialog-BdV90ARp.cjs.map → SimpleTextDialog-BWUqPlTv.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-BqVdFj1n.js → SimpleTextDialog-BulqUrdH.js} +2 -2
- package/dist/{SimpleTextDialog-BqVdFj1n.js.map → SimpleTextDialog-BulqUrdH.js.map} +1 -1
- package/dist/{SpacerWidget--x9MPrff.cjs → SpacerWidget-D_Ya_b1j.cjs} +2 -2
- package/dist/{SpacerWidget--x9MPrff.cjs.map → SpacerWidget-D_Ya_b1j.cjs.map} +1 -1
- package/dist/{SpacerWidget-CTekSgNO.js → SpacerWidget-XoMPHak8.js} +2 -2
- package/dist/{SpacerWidget-CTekSgNO.js.map → SpacerWidget-XoMPHak8.js.map} +1 -1
- package/dist/{SparklineWidget-BHdwgOeC.cjs → SparklineWidget-CRzXTS5z.cjs} +2 -2
- package/dist/{SparklineWidget-BHdwgOeC.cjs.map → SparklineWidget-CRzXTS5z.cjs.map} +1 -1
- package/dist/{SparklineWidget-BxwPKrIr.js → SparklineWidget-DQNsvEj9.js} +4 -4
- package/dist/{SparklineWidget-BxwPKrIr.js.map → SparklineWidget-DQNsvEj9.js.map} +1 -1
- package/dist/{TabbookWidget-DuszE8ho.cjs → TabbookWidget-Bh-GDBXg.cjs} +2 -2
- package/dist/{TabbookWidget-DuszE8ho.cjs.map → TabbookWidget-Bh-GDBXg.cjs.map} +1 -1
- package/dist/{TabbookWidget-B6Nx3Kmt.js → TabbookWidget-_HVA72t5.js} +2 -2
- package/dist/{TabbookWidget-B6Nx3Kmt.js.map → TabbookWidget-_HVA72t5.js.map} +1 -1
- package/dist/{TargetsTab-u-6nY7FX.js → TargetsTab-BfoRYnTP.js} +3 -3
- package/dist/{TargetsTab-u-6nY7FX.js.map → TargetsTab-BfoRYnTP.js.map} +1 -1
- package/dist/{TargetsTab-B8appkxl.cjs → TargetsTab-CGE-jQAz.cjs} +2 -2
- package/dist/{TargetsTab-B8appkxl.cjs.map → TargetsTab-CGE-jQAz.cjs.map} +1 -1
- package/dist/TextBoxDialog-C60jmnyN.js.map +1 -1
- package/dist/TextBoxDialog-DWt30tB8.cjs.map +1 -1
- package/dist/{TextboxWidget-DJgAfLFU.js → TextboxWidget-0JXn4bMH.js} +4 -4
- package/dist/{TextboxWidget-DJgAfLFU.js.map → TextboxWidget-0JXn4bMH.js.map} +1 -1
- package/dist/{TextboxWidget-CBdukKN5.cjs → TextboxWidget-uDptDK_z.cjs} +2 -2
- package/dist/{TextboxWidget-CBdukKN5.cjs.map → TextboxWidget-uDptDK_z.cjs.map} +1 -1
- package/dist/{TextfieldWidget-u6w1_wqO.cjs → TextfieldWidget-B0FCskrL.cjs} +2 -2
- package/dist/{TextfieldWidget-u6w1_wqO.cjs.map → TextfieldWidget-B0FCskrL.cjs.map} +1 -1
- package/dist/{TextfieldWidget-Bc2xGs8v.js → TextfieldWidget-BXr9MkVW.js} +2 -2
- package/dist/{TextfieldWidget-Bc2xGs8v.js.map → TextfieldWidget-BXr9MkVW.js.map} +1 -1
- package/dist/{TimeWidget-DO6ZuMLO.js → TimeWidget-C67uwMGH.js} +2 -2
- package/dist/{TimeWidget-DO6ZuMLO.js.map → TimeWidget-C67uwMGH.js.map} +1 -1
- package/dist/{TimeWidget-Bmzei1k_.cjs → TimeWidget-q5tUvHC6.cjs} +2 -2
- package/dist/{TimeWidget-Bmzei1k_.cjs.map → TimeWidget-q5tUvHC6.cjs.map} +1 -1
- package/dist/{TitleWidget-B8f0Sa7B.cjs → TitleWidget-REsd7MqR.cjs} +2 -2
- package/dist/{TitleWidget-B8f0Sa7B.cjs.map → TitleWidget-REsd7MqR.cjs.map} +1 -1
- package/dist/{TitleWidget-CkZhMme1.js → TitleWidget-t_YLgUMB.js} +2 -2
- package/dist/{TitleWidget-CkZhMme1.js.map → TitleWidget-t_YLgUMB.js.map} +1 -1
- package/dist/{ToolsTab-WSIi50nR.cjs → ToolsTab-CGztf9_j.cjs} +2 -2
- package/dist/{ToolsTab-WSIi50nR.cjs.map → ToolsTab-CGztf9_j.cjs.map} +1 -1
- package/dist/{ToolsTab-BI6lImcw.js → ToolsTab-DKYeIlXu.js} +3 -3
- package/dist/{ToolsTab-BI6lImcw.js.map → ToolsTab-DKYeIlXu.js.map} +1 -1
- package/dist/{TopBar-BwdXu4vD.cjs → TopBar-B0UcAtIW.cjs} +2 -2
- package/dist/{TopBar-BwdXu4vD.cjs.map → TopBar-B0UcAtIW.cjs.map} +1 -1
- package/dist/{TopBar-h_jaZ23r.js → TopBar-BrCfgCxc.js} +2 -2
- package/dist/{TopBar-h_jaZ23r.js.map → TopBar-BrCfgCxc.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-DE2DoA0l.js → UpgradeToEnterpriseDialog-CGyR2v7U.js} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-DE2DoA0l.js.map → UpgradeToEnterpriseDialog-CGyR2v7U.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-B2LIPuO6.cjs → UpgradeToEnterpriseDialog-DJ3oth3I.cjs} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-B2LIPuO6.cjs.map → UpgradeToEnterpriseDialog-DJ3oth3I.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C_HFbtFB.cjs} +2 -2
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C_HFbtFB.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js} +2 -2
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js.map} +1 -1
- package/dist/{VWidget-DKQBzANO.cjs → VWidget-BMxLXtSO.cjs} +2 -2
- package/dist/{VWidget-DKQBzANO.cjs.map → VWidget-BMxLXtSO.cjs.map} +1 -1
- package/dist/{VWidget-DzhcRBQe.js → VWidget-j2GIGGSX.js} +6 -3
- package/dist/{VWidget-DzhcRBQe.js.map → VWidget-j2GIGGSX.js.map} +1 -1
- package/dist/{ValueWidget-tieHz2H1.js → ValueWidget-3jNtnh5i.js} +4 -4
- package/dist/{ValueWidget-tieHz2H1.js.map → ValueWidget-3jNtnh5i.js.map} +1 -1
- package/dist/{ValueWidget-BpS7e3Ks.cjs → ValueWidget-CjZeSiPQ.cjs} +2 -2
- package/dist/{ValueWidget-BpS7e3Ks.cjs.map → ValueWidget-CjZeSiPQ.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-COsc2aMd.cjs → ValuelimitsbarWidget-CkLbRP8P.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-COsc2aMd.cjs.map → ValuelimitsbarWidget-CkLbRP8P.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-oFqxZu0t.js → ValuelimitsbarWidget-JSceOzGS.js} +4 -4
- package/dist/{ValuelimitsbarWidget-oFqxZu0t.js.map → ValuelimitsbarWidget-JSceOzGS.js.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-DPmkVEuC.cjs → ValuelimitscolumnWidget-DpU4BoB7.cjs} +2 -2
- package/dist/{ValuelimitscolumnWidget-DPmkVEuC.cjs.map → ValuelimitscolumnWidget-DpU4BoB7.cjs.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-DYBv8POg.js → ValuelimitscolumnWidget-HR1TNHwQ.js} +4 -4
- package/dist/{ValuelimitscolumnWidget-DYBv8POg.js.map → ValuelimitscolumnWidget-HR1TNHwQ.js.map} +1 -1
- package/dist/{ValuerangebarWidget-D5zHCKXQ.cjs → ValuerangebarWidget-CpZYmUl_.cjs} +2 -2
- package/dist/{ValuerangebarWidget-D5zHCKXQ.cjs.map → ValuerangebarWidget-CpZYmUl_.cjs.map} +1 -1
- package/dist/{ValuerangebarWidget-m3gFyG4v.js → ValuerangebarWidget-DnZrho8S.js} +4 -4
- package/dist/{ValuerangebarWidget-m3gFyG4v.js.map → ValuerangebarWidget-DnZrho8S.js.map} +1 -1
- package/dist/{VerticalWidget-DHWIKJUB.cjs → VerticalWidget-CcJMMaK_.cjs} +2 -2
- package/dist/{VerticalWidget-DHWIKJUB.cjs.map → VerticalWidget-CcJMMaK_.cjs.map} +1 -1
- package/dist/{VerticalWidget-CcdRZmQK.js → VerticalWidget-DJvoxqLE.js} +2 -2
- package/dist/{VerticalWidget-CcdRZmQK.js.map → VerticalWidget-DJvoxqLE.js.map} +1 -1
- package/dist/{VerticalboxWidget-BHNt0RrX.cjs → VerticalboxWidget-CJR_mOLa.cjs} +2 -2
- package/dist/{VerticalboxWidget-BHNt0RrX.cjs.map → VerticalboxWidget-CJR_mOLa.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-DfsCYhrX.js → VerticalboxWidget-CYYyLBoO.js} +5 -5
- package/dist/{VerticalboxWidget-DfsCYhrX.js.map → VerticalboxWidget-CYYyLBoO.js.map} +1 -1
- package/dist/{Widget-B5HKasz2.js → Widget-Bn_S-zBo.js} +2 -2
- package/dist/{Widget-B5HKasz2.js.map → Widget-Bn_S-zBo.js.map} +1 -1
- package/dist/{Widget-CMzBJCGp.cjs → Widget-O7wkmc39.cjs} +2 -2
- package/dist/{Widget-CMzBJCGp.cjs.map → Widget-O7wkmc39.cjs.map} +1 -1
- package/dist/addMonths-BtG7uZLJ.js.map +1 -1
- package/dist/addMonths-n1tnl3ab.cjs.map +1 -1
- package/dist/components.cjs +2 -2
- package/dist/components.cjs.map +1 -1
- package/dist/components.js +13 -13
- package/dist/components.js.map +1 -1
- package/dist/fileIcon-BduOQcTc.cjs.map +1 -1
- package/dist/fileIcon-DqRHb1_Z.js.map +1 -1
- package/dist/format-B22VpiOS.cjs.map +1 -1
- package/dist/format-CVeawcIv.js.map +1 -1
- package/dist/getDefaultOptions-Batab9o8.cjs.map +1 -1
- package/dist/getDefaultOptions-BhSDk-Jo.js.map +1 -1
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js.map +1 -1
- package/dist/index-DcL65Mqb.cjs.map +1 -1
- package/dist/index-qCq0L4jN.js.map +1 -1
- package/dist/parse-DnkEsW-3.js.map +1 -1
- package/dist/parse-DwfgQboe.cjs.map +1 -1
- package/dist/plugins.cjs.map +1 -1
- package/dist/plugins.js.map +1 -1
- package/dist/timeFilters-BKnCM4rv.js.map +1 -1
- package/dist/timeFilters-CJFxfjqN.cjs.map +1 -1
- package/dist/tools/admin.cjs +1 -1
- package/dist/tools/admin.cjs.map +1 -1
- package/dist/tools/admin.js +12 -12
- package/dist/tools/admin.js.map +1 -1
- package/dist/tools/base.cjs +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.js +483 -481
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calendar.cjs +1 -1
- package/dist/tools/calendar.js +1 -1
- package/dist/tools/scriptrunner.cjs +2 -2
- package/dist/tools/scriptrunner.cjs.map +1 -1
- package/dist/tools/scriptrunner.js +10 -9
- package/dist/tools/scriptrunner.js.map +1 -1
- package/dist/vue-common.css +1 -1
- package/dist/widgets.cjs +1 -1
- package/dist/widgets.js +63 -63
- package/package.json +2 -2
- package/dist/DetailsDialog-DEjAO6yp.js.map +0 -1
- package/dist/Layout-DoI_Bpyu.cjs +0 -2
- package/dist/Openc3Screen-CPknMmN8.js.map +0 -1
- package/dist/Openc3Screen-CQkUFNEH.cjs.map +0 -1
- package/dist/PluginsTab-Diu6vzUR.js.map +0 -1
- package/dist/PluginsTab-UcluFu7J.cjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as g } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
import { l as g } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js";
|
|
2
2
|
import { resolveComponent as n, createElementBlock as p, openBlock as u, createVNode as e, createBlock as I, createCommentVNode as U, withCtx as t, createElementVNode as f, createTextVNode as c, Fragment as x, renderList as P, createSlots as L, toDisplayString as h, normalizeClass as N, mergeProps as R } from "vue";
|
|
3
3
|
import { _ as $ } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
import "single-spa";
|
|
5
|
-
import { S as B } from "./SimpleTextDialog-
|
|
5
|
+
import { S as B } from "./SimpleTextDialog-BulqUrdH.js";
|
|
6
6
|
import { DownloadDialog as M } from "./tools/admin.js";
|
|
7
7
|
import { f as j, t as A } from "./format-CVeawcIv.js";
|
|
8
8
|
const G = {
|
|
@@ -310,4 +310,4 @@ const Z = /* @__PURE__ */ $(G, [["render", E], ["__scopeId", "data-v-e97741ba"]]
|
|
|
310
310
|
export {
|
|
311
311
|
Z as default
|
|
312
312
|
};
|
|
313
|
-
//# sourceMappingURL=PackagesTab-
|
|
313
|
+
//# sourceMappingURL=PackagesTab-Dx25CfF0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackagesTab-CjcBp95A.js","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_hoisted_1","_hoisted_2","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","props","_mergeProps","$event","_component_v_divider","_createCommentVNode","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PackagesTab-Dx25CfF0.js","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_hoisted_1","_hoisted_2","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","props","_mergeProps","$event","_component_v_divider","_createCommentVNode","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C_HFbtFB.cjs"),e=require("vue"),S=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const E=require("./SimpleTextDialog-BWUqPlTv.cjs"),k=require("./tools/admin.cjs"),P=require("./format-B22VpiOS.cjs"),O={components:{PluginDialog:k.PluginDialog,ModifiedPluginDialog:k.ModifiedPluginDialog,SimpleTextDialog:E.SimpleTextDialog},data(){return{file:null,currentPlugin:null,plugins:[],targets:[],processes:{},alert:"",alertType:"success",showAlert:!1,pluginName:null,variables:{},pluginTxt:"",pluginHashTmp:null,existingPluginTxt:null,showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",showPluginDialog:!1,showModifiedPluginDialog:!1,showDefaultTools:!1,progress:0,pluginDelete:!1,defaultPlugins:["openc3-cosmos-tool-admin","openc3-cosmos-tool-bucketexplorer","openc3-cosmos-tool-cmdsender","openc3-cosmos-tool-cmdhistory","openc3-cosmos-tool-cmdtlmserver","openc3-cosmos-tool-dataextractor","openc3-cosmos-tool-dataviewer","openc3-cosmos-tool-docs","openc3-cosmos-tool-handbooks","openc3-cosmos-tool-iframe","openc3-cosmos-tool-limitsmonitor","openc3-cosmos-tool-packetviewer","openc3-cosmos-tool-scriptrunner","openc3-cosmos-tool-tablemanager","openc3-cosmos-tool-tlmgrapher","openc3-cosmos-tool-tlmviewer","openc3-cosmos-enterprise-tool-admin","openc3-cosmos-tool-autonomic","openc3-cosmos-tool-calendar","openc3-cosmos-tool-grafana","openc3-cosmos-tool-systemhealth","openc3-enterprise-tool-base","openc3-tool-base"]}},computed:{shownPlugins(){let l=[];for(let t of this.plugins){let r=t.split("__")[0].split("-");r=r.slice(0,-1);let o=r.join("-");(!this.defaultPlugins.includes(o)||this.showDefaultTools)&&l.push(t)}return l},pluginTargets(){return l=>{let t=[];for(const a in this.targets)this.targets[a].plugin===l&&t.push(this.targets[a]);return t}},isModified(){return l=>{let t=!1;for(const a in this.targets)if(this.targets[a].plugin===l&&this.targets[a].modified===!0){t=!0;break}return t}}},watch:{showPluginDialog:function(l,t){l===!1&&(this.file=null,this.$refs.fileInput.value=null)}},mounted(){this.update(),this.updateProcesses()},methods:{showOutput:function(l){this.processOutput=l.output,this.showProcessOutput=!0},update:function(){c.li.get("/openc3-api/plugins").then(l=>{this.plugins=l.data}),c.li.get("/openc3-api/targets_modified").then(l=>{this.targets=l.data})},updateProcesses:function(){c.li.get("openc3-api/process_status/plugin_?substr=true").then(l=>{this.processes=l.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},5e3)})},formatDate(l){return P.format(P.toDate(parseInt(l)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},upload:function(l=null){const t=l?"put":"post",a=l?`/openc3-api/plugins/${l}`:"/openc3-api/plugins",r=new FormData;r.append("plugin",this.file,this.file.name);let o=this;c.li[t](a,{data:r,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(i){let p=Math.round(i.loaded*100/i.total);o.progress=p}}).then(i=>{this.progress=100,this.alert="Uploaded file",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update();let p=null;i.data.existing_plugin_txt_lines!==void 0&&(p=i.data.existing_plugin_txt_lines.join(`
|
|
2
2
|
`));let d=i.data.plugin_txt_lines.join(`
|
|
3
3
|
`);this.pluginName=i.data.name,this.variables=i.data.variables,this.pluginTxt=d,this.existingPluginTxt=p,this.showPluginDialog=!0,this.file=void 0}).catch(i=>{this.currentPlugin=null,this.file=void 0})},pluginCallback:function(l){this.showPluginDialog=!1,this.currentPlugin!==null&&(l.name=this.currentPlugin),this.pluginHashTmp=l,this.isModified(this.currentPlugin)?(this.pluginDelete=!1,this.showModifiedPluginDialog=!0):this.pluginInstall()},modifiedSubmit:async function(l){if(l===!0)for(let t of this.pluginTargets(this.currentPlugin))t.modified==!0&&await c.li.post(`/openc3-api/targets/${t.name}/delete_modified`);this.pluginDelete?this.deletePlugin(this.currentPlugin):this.pluginInstall()},pluginInstall:function(){c.li.post(`/openc3-api/plugins/install/${this.pluginName}`,{data:{plugin_hash:JSON.stringify(this.pluginHashTmp)}}).then(l=>{this.alert=`Started installing plugin ${this.pluginName} ...`,this.alertType="success",this.showAlert=!0,this.currentPlugin=null,this.file=void 0,this.variables={},this.pluginTxt="",this.existingPluginTxt=null,setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3),this.update()})},downloadTarget:function(l){c.li.post(`/openc3-api/targets/${l}/download`).then(t=>{const a=window.atob(t.data.contents),r=new Uint8Array(a.length);for(let i=0;i<a.length;++i)r[i]=a.charCodeAt(i);const o=new Blob([r],{type:"application/zip"}),n=document.createElement("a");n.href=URL.createObjectURL(o),n.setAttribute("download",t.data.filename),n.click()})},downloadPlugin:function(l){c.li.post(`/openc3-api/packages/${l}/download`).then(t=>{const a=window.atob(t.data.contents),r=new Uint8Array(a.length);for(let i=0;i<a.length;++i)r[i]=a.charCodeAt(i);const o=new Blob([r],{type:"application/zip"}),n=document.createElement("a");n.href=URL.createObjectURL(o),n.setAttribute("download",t.data.filename),n.click()})},editPlugin:function(l){c.li.get(`/openc3-api/plugins/${l}`).then(t=>{let a=null;t.data.existing_plugin_txt_lines!==void 0&&(a=t.data.existing_plugin_txt_lines.join(`
|
|
4
4
|
`));let r=t.data.plugin_txt_lines.join(`
|
|
5
|
-
`);this.pluginName=t.data.name,this.variables=t.data.variables,this.pluginTxt=r,this.existingPluginTxt=a,this.showPluginDialog=!0})},deletePrompt:function(l){this.$dialog.confirm(`Are you sure you want to remove: ${l}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.isModified(l)?(this.currentPlugin=l,this.pluginDelete=!0,this.showModifiedPluginDialog=!0):this.deletePlugin(l)})},deletePlugin:function(l){this.alert=`Removing plugin ${l} ...`,this.alertType="success",this.showAlert=!0,c.li.delete(`/openc3-api/plugins/${l}`).then(t=>{setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3)}),this.update()},upgradePlugin(l){this.file=null,this.currentPlugin=l,this.progress=0,this.$refs.fileInput.click()},selectFile(){this.file=null,this.currentPlugin=null,this.progress=0,this.$refs.fileInput.click()},fileChange(l){const t=l.target.files;if(t.length>0)if(this.file=t[0],this.currentPlugin!==null)if(this.file.name.split(".gem")[0]==this.currentPlugin.split(".gem")[0])this.$dialog.confirm(`The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}).catch(a=>{});else{let a=this.file.name.split("-"),r=a.findIndex(i=>i.includes(".")),o=a.slice(0,r).join("-");a=this.currentPlugin.split("-"),r=a.findIndex(i=>i.includes("."));let n=a.slice(0,r).join("-");o!==n?this.$dialog.confirm(`The new gem base name ${o} doesn't match the existing ${n}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}):this.upload(this.currentPlugin)}else this.upload();else this.$refs.fileInput.value=null}}},A=["textContent"],I=["textContent"],U={key:0},M=["onClick"],j={key:1};function L(l,t,a,r,o,n){const i=e.resolveComponent("v-btn"),p=e.resolveComponent("v-icon"),d=e.resolveComponent("v-col"),V=e.resolveComponent("rux-progress"),m=e.resolveComponent("v-row"),N=e.resolveComponent("v-checkbox"),h=e.resolveComponent("v-divider"),T=e.resolveComponent("v-alert"),f=e.resolveComponent("v-list-item-title"),x=e.resolveComponent("v-list-item-subtitle"),y=e.resolveComponent("v-progress-circular"),_=e.resolveComponent("v-tooltip"),w=e.resolveComponent("v-list-item"),v=e.resolveComponent("v-list"),b=e.resolveComponent("plugin-dialog"),D=e.resolveComponent("modified-plugin-dialog"),B=e.resolveComponent("simple-text-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(m,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(i,{onClick:n.selectFile},{default:e.withCtx(()=>t[6]||(t[6]=[e.createTextVNode("Install New Plugin")])),_:1},8,["onClick"]),e.createElementVNode("input",{ref:"fileInput",style:{display:"none"},type:"file",onChange:t[0]||(t[0]=(...s)=>n.fileChange&&n.fileChange(...s))},null,544),t[8]||(t[8]=e.createTextVNode(" Note: Use ")),e.createVNode(p,null,{default:e.withCtx(()=>t[7]||(t[7]=[e.createTextVNode("mdi-update")])),_:1}),t[9]||(t[9]=e.createTextVNode(" to upgrade existing plugins "))]),_:1}),e.createVNode(d,{class:"ml-4 mr-2",cols:"4"},{default:e.withCtx(()=>[e.createVNode(V,{value:o.progress},null,8,["value"])]),_:1})]),_:1}),e.createVNode(m,{"no-gutters":"",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(N,{modelValue:o.showDefaultTools,"onUpdate:modelValue":t[1]||(t[1]=s=>o.showDefaultTools=s),label:"Show Default Tools",class:"mt-0","data-test":"show-default-tools"},null,8,["modelValue"])]),_:1}),e.createVNode(d,{align:"right",class:"mr-2"},{default:e.withCtx(()=>t[10]||(t[10]=[e.createElementVNode("div",null,"* indicates a modified plugin",-1),e.createElementVNode("div",null,"Click target link to download modifications",-1)])),_:1})]),_:1}),e.createVNode(h),e.createVNode(T,{modelValue:o.showAlert,"onUpdate:modelValue":t[2]||(t[2]=s=>o.showAlert=s),closable:"",type:o.alertType,"data-test":"plugin-alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),Object.keys(o.processes).length>0?(e.openBlock(),e.createBlock(v,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(m,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(d,{class:"text-h6"},{default:e.withCtx(()=>t[11]||(t[11]=[e.createTextVNode("Process List")])),_:1}),e.createVNode(d,{align:"right"},{default:e.withCtx(()=>t[12]||(t[12]=[e.createElementVNode("div",null,"Showing last 10 min of activity",-1)])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.processes,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name},[e.createVNode(w,null,{append:e.withCtx(()=>[s.state==="Running"?(e.openBlock(),e.createBlock(y,{key:0,indeterminate:"",color:"primary"})):(e.openBlock(),e.createBlock(_,{key:1,"open-delay":600,location:"top"},{activator:e.withCtx(({props:g})=>[e.createVNode(i,e.mergeProps({ref_for:!0},g,{icon:"mdi-eye",variant:"text","aria-label":"Show Output","data-test":"show-output",onClick:u=>n.showOutput(s)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[13]||(t[13]=e.createElementVNode("span",null,"Show Output",-1))]),_:2},1024))]),default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(s.state.toLowerCase()),textContent:e.toDisplayString(`Processing ${s.process_type}: ${s.detail} - ${s.state}`)},null,10,A)]),_:2},1024),e.createVNode(x,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+n.formatDate(s.updated_at))},null,8,I)]),_:2},1024)]),_:2},1024),e.createVNode(h)]))),128))]),_:1})):e.createCommentVNode("",!0),e.createVNode(v,{class:"list","data-test":"plugin-list"},{default:e.withCtx(()=>[e.createVNode(m,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(d,{class:"text-h6"},{default:e.withCtx(()=>t[14]||(t[14]=[e.createTextVNode("Plugin List")])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.shownPlugins,(s,g)=>(e.openBlock(),e.createElementBlock("div",{key:g},[e.createVNode(w,{"data-test":"plugin-list-item"},{append:e.withCtx(()=>[e.createVNode(i,{icon:"mdi-download",variant:"text","aria-label":"Download Plugin","data-test":"download-plugin",onClick:u=>n.downloadPlugin(s)},null,8,["onClick"]),e.createVNode(i,{icon:"mdi-pencil",variant:"text","aria-label":"Edit Plugin","data-test":"edit-plugin",onClick:u=>n.editPlugin(s)},null,8,["onClick"]),e.createVNode(_,{"open-delay":600,location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(i,e.mergeProps({ref_for:!0},u,{icon:"mdi-update",variant:"text","aria-label":"Upgrade Plugin","data-test":"upgrade-plugin",onClick:C=>n.upgradePlugin(s)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[15]||(t[15]=e.createElementVNode("span",null,"Upgrade Plugin",-1))]),_:2},1024),e.createVNode(i,{icon:"mdi-delete",variant:"text","aria-label":"Delete Plugin","data-test":"delete-plugin",onClick:u=>n.deletePrompt(s)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[n.isModified(s)?(e.openBlock(),e.createElementBlock("span",U,"* ")):e.createCommentVNode("",!0),e.createTextVNode(e.toDisplayString(s),1)]),_:2},1024),n.pluginTargets(s).length!==0?(e.openBlock(),e.createBlock(x,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.pluginTargets(s),(u,C)=>(e.openBlock(),e.createElementBlock("span",{key:C,class:"mr-2"},[u.modified?(e.openBlock(),e.createElementBlock("a",{key:0,onClick:e.withModifiers(q=>n.downloadTarget(u.name),["prevent"])},e.toDisplayString(u.name),9,M)):(e.openBlock(),e.createElementBlock("span",j,e.toDisplayString(u.name),1))]))),128))]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),g<o.plugins.length-1?(e.openBlock(),e.createBlock(h,{key:g})):e.createCommentVNode("",!0)]))),128))]),_:1}),o.showPluginDialog?(e.openBlock(),e.createBlock(b,{key:1,modelValue:o.showPluginDialog,"onUpdate:modelValue":t[3]||(t[3]=s=>o.showPluginDialog=s),"plugin-name":o.pluginName,variables:o.variables,"plugin-txt":o.pluginTxt,"existing-plugin-txt":o.existingPluginTxt,onCallback:n.pluginCallback},null,8,["modelValue","plugin-name","variables","plugin-txt","existing-plugin-txt","onCallback"])):e.createCommentVNode("",!0),o.showModifiedPluginDialog?(e.openBlock(),e.createBlock(D,{key:2,modelValue:o.showModifiedPluginDialog,"onUpdate:modelValue":t[4]||(t[4]=s=>o.showModifiedPluginDialog=s),"plugin-name":o.currentPlugin,targets:n.pluginTargets(o.currentPlugin),"plugin-delete":o.pluginDelete,onSubmit:n.modifiedSubmit},null,8,["modelValue","plugin-name","targets","plugin-delete","onSubmit"])):e.createCommentVNode("",!0),e.createVNode(B,{modelValue:o.showProcessOutput,"onUpdate:modelValue":t[5]||(t[5]=s=>o.showProcessOutput=s),title:"Process Output",text:o.processOutput},null,8,["modelValue","text"])])}const F=S._export_sfc(O,[["render",L],["__scopeId","data-v-
|
|
6
|
-
//# sourceMappingURL=PluginsTab-
|
|
5
|
+
`);this.pluginName=t.data.name,this.variables=t.data.variables,this.pluginTxt=r,this.existingPluginTxt=a,this.showPluginDialog=!0})},deletePrompt:function(l){this.$dialog.confirm(`Are you sure you want to remove: ${l}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.isModified(l)?(this.currentPlugin=l,this.pluginDelete=!0,this.showModifiedPluginDialog=!0):this.deletePlugin(l)})},deletePlugin:function(l){this.alert=`Removing plugin ${l} ...`,this.alertType="success",this.showAlert=!0,c.li.delete(`/openc3-api/plugins/${l}`).then(t=>{setTimeout(()=>{this.showAlert=!1,this.updateProcesses()},5e3)}),this.update()},upgradePlugin(l){this.file=null,this.currentPlugin=l,this.progress=0,this.$refs.fileInput.click()},selectFile(){this.file=null,this.currentPlugin=null,this.progress=0,this.$refs.fileInput.click()},fileChange(l){const t=l.target.files;if(t.length>0)if(this.file=t[0],this.currentPlugin!==null)if(this.file.name.split(".gem")[0]==this.currentPlugin.split(".gem")[0])this.$dialog.confirm(`The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}).catch(a=>{});else{let a=this.file.name.split("-"),r=a.findIndex(i=>i.includes(".")),o=a.slice(0,r).join("-");a=this.currentPlugin.split("-"),r=a.findIndex(i=>i.includes("."));let n=a.slice(0,r).join("-");o!==n?this.$dialog.confirm(`The new gem base name ${o} doesn't match the existing ${n}. Install?`,{okText:"Ok",cancelText:"Cancel"}).then(()=>{this.upload(this.currentPlugin)}):this.upload(this.currentPlugin)}else this.upload();else this.$refs.fileInput.value=null}}},A=["textContent"],I=["textContent"],U={key:0},M=["onClick"],j={key:1};function L(l,t,a,r,o,n){const i=e.resolveComponent("v-btn"),p=e.resolveComponent("v-icon"),d=e.resolveComponent("v-col"),V=e.resolveComponent("rux-progress"),m=e.resolveComponent("v-row"),N=e.resolveComponent("v-checkbox"),h=e.resolveComponent("v-divider"),T=e.resolveComponent("v-alert"),f=e.resolveComponent("v-list-item-title"),x=e.resolveComponent("v-list-item-subtitle"),y=e.resolveComponent("v-progress-circular"),_=e.resolveComponent("v-tooltip"),w=e.resolveComponent("v-list-item"),v=e.resolveComponent("v-list"),b=e.resolveComponent("plugin-dialog"),D=e.resolveComponent("modified-plugin-dialog"),B=e.resolveComponent("simple-text-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(m,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(i,{onClick:n.selectFile},{default:e.withCtx(()=>t[6]||(t[6]=[e.createTextVNode("Install New Plugin")])),_:1},8,["onClick"]),e.createElementVNode("input",{ref:"fileInput",style:{display:"none"},type:"file",onChange:t[0]||(t[0]=(...s)=>n.fileChange&&n.fileChange(...s))},null,544),t[8]||(t[8]=e.createTextVNode(" Note: Use ")),e.createVNode(p,null,{default:e.withCtx(()=>t[7]||(t[7]=[e.createTextVNode("mdi-update")])),_:1}),t[9]||(t[9]=e.createTextVNode(" to upgrade existing plugins "))]),_:1}),e.createVNode(d,{class:"ml-4 mr-2",cols:"4"},{default:e.withCtx(()=>[e.createVNode(V,{value:o.progress},null,8,["value"])]),_:1})]),_:1}),e.createVNode(m,{"no-gutters":"",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(N,{modelValue:o.showDefaultTools,"onUpdate:modelValue":t[1]||(t[1]=s=>o.showDefaultTools=s),label:"Show Default Tools",class:"mt-0","data-test":"show-default-tools"},null,8,["modelValue"])]),_:1}),e.createVNode(d,{align:"right",class:"mr-2"},{default:e.withCtx(()=>t[10]||(t[10]=[e.createElementVNode("div",null,"* indicates a modified plugin",-1),e.createElementVNode("div",null,"Click target link to download modifications",-1)])),_:1})]),_:1}),e.createVNode(h),e.createVNode(T,{modelValue:o.showAlert,"onUpdate:modelValue":t[2]||(t[2]=s=>o.showAlert=s),closable:"",type:o.alertType,"data-test":"plugin-alert"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),Object.keys(o.processes).length>0?(e.openBlock(),e.createBlock(v,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(m,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(d,{class:"text-h6"},{default:e.withCtx(()=>t[11]||(t[11]=[e.createTextVNode("Process List")])),_:1}),e.createVNode(d,{align:"right"},{default:e.withCtx(()=>t[12]||(t[12]=[e.createElementVNode("div",null,"Showing last 10 min of activity",-1)])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.processes,s=>(e.openBlock(),e.createElementBlock("div",{key:s.name},[e.createVNode(w,null,{append:e.withCtx(()=>[s.state==="Running"?(e.openBlock(),e.createBlock(y,{key:0,indeterminate:"",color:"primary"})):(e.openBlock(),e.createBlock(_,{key:1,"open-delay":600,location:"top"},{activator:e.withCtx(({props:g})=>[e.createVNode(i,e.mergeProps({ref_for:!0},g,{icon:"mdi-eye",variant:"text","aria-label":"Show Output","data-test":"show-output",onClick:u=>n.showOutput(s)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[13]||(t[13]=e.createElementVNode("span",null,"Show Output",-1))]),_:2},1024))]),default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(s.state.toLowerCase()),textContent:e.toDisplayString(`Processing ${s.process_type}: ${s.detail} - ${s.state}`)},null,10,A)]),_:2},1024),e.createVNode(x,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+n.formatDate(s.updated_at))},null,8,I)]),_:2},1024)]),_:2},1024),e.createVNode(h)]))),128))]),_:1})):e.createCommentVNode("",!0),e.createVNode(v,{class:"list","data-test":"plugin-list"},{default:e.withCtx(()=>[e.createVNode(m,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(d,{class:"text-h6"},{default:e.withCtx(()=>t[14]||(t[14]=[e.createTextVNode("Plugin List")])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.shownPlugins,(s,g)=>(e.openBlock(),e.createElementBlock("div",{key:g},[e.createVNode(w,{"data-test":"plugin-list-item"},{append:e.withCtx(()=>[e.createVNode(i,{icon:"mdi-download",variant:"text","aria-label":"Download Plugin","data-test":"download-plugin",onClick:u=>n.downloadPlugin(s)},null,8,["onClick"]),e.createVNode(i,{icon:"mdi-pencil",variant:"text","aria-label":"Edit Plugin","data-test":"edit-plugin",onClick:u=>n.editPlugin(s)},null,8,["onClick"]),e.createVNode(_,{"open-delay":600,location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(i,e.mergeProps({ref_for:!0},u,{icon:"mdi-update",variant:"text","aria-label":"Upgrade Plugin","data-test":"upgrade-plugin",onClick:C=>n.upgradePlugin(s)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[15]||(t[15]=e.createElementVNode("span",null,"Upgrade Plugin",-1))]),_:2},1024),e.createVNode(i,{icon:"mdi-delete",variant:"text","aria-label":"Delete Plugin","data-test":"delete-plugin",onClick:u=>n.deletePrompt(s)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(f,null,{default:e.withCtx(()=>[n.isModified(s)?(e.openBlock(),e.createElementBlock("span",U,"* ")):e.createCommentVNode("",!0),e.createTextVNode(e.toDisplayString(s),1)]),_:2},1024),n.pluginTargets(s).length!==0?(e.openBlock(),e.createBlock(x,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.pluginTargets(s),(u,C)=>(e.openBlock(),e.createElementBlock("span",{key:C,class:"mr-2"},[u.modified?(e.openBlock(),e.createElementBlock("a",{key:0,onClick:e.withModifiers(q=>n.downloadTarget(u.name),["prevent"])},e.toDisplayString(u.name),9,M)):(e.openBlock(),e.createElementBlock("span",j,e.toDisplayString(u.name),1))]))),128))]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),g<o.plugins.length-1?(e.openBlock(),e.createBlock(h,{key:g})):e.createCommentVNode("",!0)]))),128))]),_:1}),o.showPluginDialog?(e.openBlock(),e.createBlock(b,{key:1,modelValue:o.showPluginDialog,"onUpdate:modelValue":t[3]||(t[3]=s=>o.showPluginDialog=s),"plugin-name":o.pluginName,variables:o.variables,"plugin-txt":o.pluginTxt,"existing-plugin-txt":o.existingPluginTxt,onCallback:n.pluginCallback},null,8,["modelValue","plugin-name","variables","plugin-txt","existing-plugin-txt","onCallback"])):e.createCommentVNode("",!0),o.showModifiedPluginDialog?(e.openBlock(),e.createBlock(D,{key:2,modelValue:o.showModifiedPluginDialog,"onUpdate:modelValue":t[4]||(t[4]=s=>o.showModifiedPluginDialog=s),"plugin-name":o.currentPlugin,targets:n.pluginTargets(o.currentPlugin),"plugin-delete":o.pluginDelete,onSubmit:n.modifiedSubmit},null,8,["modelValue","plugin-name","targets","plugin-delete","onSubmit"])):e.createCommentVNode("",!0),e.createVNode(B,{modelValue:o.showProcessOutput,"onUpdate:modelValue":t[5]||(t[5]=s=>o.showProcessOutput=s),title:"Process Output",text:o.processOutput},null,8,["modelValue","text"])])}const F=S._export_sfc(O,[["render",L],["__scopeId","data-v-73fe8603"]]);exports.default=F;
|
|
6
|
+
//# sourceMappingURL=PluginsTab-DHO1tK2S.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginsTab-DHO1tK2S.cjs","sources":["../src/tools/admin/tabs/PluginsTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <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 New Plugin</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n Note: Use <v-icon>mdi-update</v-icon> to upgrade existing plugins\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-row no-gutters class=\"px-2\">\n <v-col>\n <v-checkbox\n v-model=\"showDefaultTools\"\n label=\"Show Default Tools\"\n class=\"mt-0\"\n data-test=\"show-default-tools\"\n />\n </v-col>\n <v-col align=\"right\" class=\"mr-2\">\n <div>* indicates a modified plugin</div>\n <div>Click target link to download modifications</div>\n </v-col>\n </v-row>\n <v-divider />\n <!-- TODO This alert shows both success and failure. Make consistent with rest of OpenC3. -->\n <v-alert\n v-model=\"showAlert\"\n closable\n :type=\"alertType\"\n data-test=\"plugin-alert\"\n >{{ alert }}</v-alert\n >\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\"\n ><v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template #append>\n <v-progress-circular\n v-if=\"process.state === 'Running'\"\n indeterminate\n color=\"primary\"\n />\n <v-tooltip v-else :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 data-test=\"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=\"plugin-list\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Plugin List</v-col></v-row>\n <div v-for=\"(plugin, index) in shownPlugins\" :key=\"index\">\n <v-list-item data-test=\"plugin-list-item\">\n <v-list-item-title\n ><span v-if=\"isModified(plugin)\">* </span\n >{{ plugin }}</v-list-item-title\n >\n <v-list-item-subtitle v-if=\"pluginTargets(plugin).length !== 0\">\n <span\n v-for=\"(target, index) in pluginTargets(plugin)\"\n :key=\"index\"\n class=\"mr-2\"\n >\n <a\n v-if=\"target.modified\"\n @click.prevent=\"downloadTarget(target.name)\"\n >{{ target.name }}\n </a>\n <span v-else>{{ target.name }} </span>\n </span>\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n aria-label=\"Download Plugin\"\n data-test=\"download-plugin\"\n @click=\"downloadPlugin(plugin)\"\n />\n <v-btn\n icon=\"mdi-pencil\"\n variant=\"text\"\n aria-label=\"Edit Plugin\"\n data-test=\"edit-plugin\"\n @click=\"editPlugin(plugin)\"\n />\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-update\"\n variant=\"text\"\n aria-label=\"Upgrade Plugin\"\n data-test=\"upgrade-plugin\"\n @click=\"upgradePlugin(plugin)\"\n />\n </template>\n <span>Upgrade Plugin</span>\n </v-tooltip>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Plugin\"\n data-test=\"delete-plugin\"\n @click=\"deletePrompt(plugin)\"\n />\n </template>\n </v-list-item>\n <v-divider v-if=\"index < plugins.length - 1\" :key=\"index\" />\n </div>\n </v-list>\n <plugin-dialog\n v-if=\"showPluginDialog\"\n v-model=\"showPluginDialog\"\n :plugin-name=\"pluginName\"\n :variables=\"variables\"\n :plugin-txt=\"pluginTxt\"\n :existing-plugin-txt=\"existingPluginTxt\"\n @callback=\"pluginCallback\"\n />\n <modified-plugin-dialog\n v-if=\"showModifiedPluginDialog\"\n v-model=\"showModifiedPluginDialog\"\n :plugin-name=\"currentPlugin\"\n :targets=\"pluginTargets(currentPlugin)\"\n :plugin-delete=\"pluginDelete\"\n @submit=\"modifiedSubmit\"\n />\n <!-- <download-dialog v-model=\"showDownloadDialog\" /> -->\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { ModifiedPluginDialog, PluginDialog } from '@/tools/admin'\n\nexport default {\n components: {\n PluginDialog,\n ModifiedPluginDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n file: null,\n currentPlugin: null,\n plugins: [],\n targets: [],\n processes: {},\n alert: '',\n alertType: 'success',\n showAlert: false,\n pluginName: null,\n variables: {},\n pluginTxt: '',\n pluginHashTmp: null,\n existingPluginTxt: null,\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n showPluginDialog: false,\n showModifiedPluginDialog: false,\n showDefaultTools: false,\n progress: 0,\n pluginDelete: false,\n // When updating update local_mode.rb, local_mode.py, plugins.spec.ts\n defaultPlugins: [\n 'openc3-cosmos-tool-admin',\n 'openc3-cosmos-tool-bucketexplorer',\n 'openc3-cosmos-tool-cmdsender',\n 'openc3-cosmos-tool-cmdhistory', // Enterprise only\n 'openc3-cosmos-tool-cmdtlmserver',\n 'openc3-cosmos-tool-dataextractor',\n 'openc3-cosmos-tool-dataviewer',\n 'openc3-cosmos-tool-docs',\n 'openc3-cosmos-tool-handbooks',\n 'openc3-cosmos-tool-iframe',\n 'openc3-cosmos-tool-limitsmonitor',\n 'openc3-cosmos-tool-packetviewer',\n 'openc3-cosmos-tool-scriptrunner',\n 'openc3-cosmos-tool-tablemanager',\n 'openc3-cosmos-tool-tlmgrapher',\n 'openc3-cosmos-tool-tlmviewer',\n 'openc3-cosmos-enterprise-tool-admin', // Enterprise only\n 'openc3-cosmos-tool-autonomic', // Enterprise only\n 'openc3-cosmos-tool-calendar', // Enterprise only\n 'openc3-cosmos-tool-grafana', // Enterprise only\n 'openc3-cosmos-tool-systemhealth', // Enterprise only\n 'openc3-enterprise-tool-base', // Enterprise only\n 'openc3-tool-base',\n ],\n }\n },\n computed: {\n shownPlugins() {\n let result = []\n for (let plugin of this.plugins) {\n let pluginNameFirst = plugin.split('__')[0]\n let pluginNameSplit = pluginNameFirst.split('-')\n pluginNameSplit = pluginNameSplit.slice(0, -1)\n let pluginName = pluginNameSplit.join('-')\n if (\n !this.defaultPlugins.includes(pluginName) ||\n this.showDefaultTools\n ) {\n result.push(plugin)\n }\n }\n return result\n },\n pluginTargets() {\n return (plugin) => {\n let result = []\n for (const target in this.targets) {\n if (this.targets[target]['plugin'] === plugin) {\n result.push(this.targets[target])\n }\n }\n return result\n }\n },\n isModified() {\n return (plugin) => {\n let result = false\n for (const target in this.targets) {\n if (\n this.targets[target]['plugin'] === plugin &&\n this.targets[target]['modified'] === true\n ) {\n result = true\n break\n }\n }\n return result\n }\n },\n },\n watch: {\n // watcher to reset the file input when the dialog is closed\n showPluginDialog: function (newValue, oldValue) {\n if (newValue === false) {\n this.file = null\n this.$refs.fileInput.value = null\n }\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: function () {\n Api.get('/openc3-api/plugins').then((response) => {\n this.plugins = response.data\n })\n Api.get('/openc3-api/targets_modified').then((response) => {\n this.targets = response.data\n })\n },\n updateProcesses: function () {\n Api.get('openc3-api/process_status/plugin_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 5000)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n upload: function (existing = null) {\n const method = existing ? 'put' : 'post'\n const path = existing\n ? `/openc3-api/plugins/${existing}`\n : '/openc3-api/plugins'\n const formData = new FormData()\n formData.append('plugin', this.file, this.file.name)\n let self = this\n const promise = Api[method](path, {\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 promise\n .then((response) => {\n this.progress = 100\n this.alert = 'Uploaded file'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt =\n response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n this.file = undefined\n })\n .catch((error) => {\n this.currentPlugin = null\n this.file = undefined\n })\n },\n pluginCallback: function (pluginHash) {\n this.showPluginDialog = false\n if (this.currentPlugin !== null) {\n pluginHash['name'] = this.currentPlugin\n }\n this.pluginHashTmp = pluginHash\n if (this.isModified(this.currentPlugin)) {\n this.pluginDelete = false\n this.showModifiedPluginDialog = true\n } else {\n this.pluginInstall()\n }\n },\n modifiedSubmit: async function (deleteModified) {\n if (deleteModified === true) {\n for (let target of this.pluginTargets(this.currentPlugin)) {\n if (target.modified == true) {\n await Api.post(`/openc3-api/targets/${target.name}/delete_modified`)\n }\n }\n }\n if (this.pluginDelete) {\n this.deletePlugin(this.currentPlugin)\n } else {\n this.pluginInstall()\n }\n },\n pluginInstall: function () {\n Api.post(`/openc3-api/plugins/install/${this.pluginName}`, {\n data: {\n plugin_hash: JSON.stringify(this.pluginHashTmp),\n },\n }).then((response) => {\n this.alert = `Started installing plugin ${this.pluginName} ...`\n this.alertType = 'success'\n this.showAlert = true\n this.currentPlugin = null\n this.file = undefined\n this.variables = {}\n this.pluginTxt = ''\n this.existingPluginTxt = null\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n this.update()\n })\n },\n downloadTarget: function (name) {\n Api.post(`/openc3-api/targets/${name}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadPlugin: function (plugin) {\n Api.post(`/openc3-api/packages/${plugin}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n editPlugin: function (plugin) {\n Api.get(`/openc3-api/plugins/${plugin}`).then((response) => {\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt = response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n })\n },\n deletePrompt: function (plugin) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${plugin}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.isModified(plugin)) {\n this.currentPlugin = plugin\n this.pluginDelete = true\n this.showModifiedPluginDialog = true\n } else {\n this.deletePlugin(plugin)\n }\n })\n },\n deletePlugin: function (plugin) {\n this.alert = `Removing plugin ${plugin} ...`\n this.alertType = 'success'\n this.showAlert = true\n Api.delete(`/openc3-api/plugins/${plugin}`).then((response) => {\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n })\n this.update()\n },\n upgradePlugin(plugin) {\n this.file = null\n this.currentPlugin = plugin\n this.progress = 0\n this.$refs.fileInput.click()\n },\n selectFile() {\n this.file = null\n this.currentPlugin = null\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.file = files[0]\n if (this.currentPlugin !== null) {\n if (\n this.file.name.split('.gem')[0] ==\n this.currentPlugin.split('.gem')[0]\n ) {\n this.$dialog\n .confirm(\n `The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n .catch((error) => {\n // do nothing\n })\n } else {\n // Split up the gem name to determine if this is an upgrade\n // or mistakenly trying to install a different gem\n // Gems are named like openc3-cosmos-demo-5.3.2.gem or\n // openc3-cosmos-pw-test-1.0.0.20230213074527.gem\n // So split on - and match everything until the first .\n let parts = this.file.name.split('-')\n let i = parts.findIndex((x) => x.includes('.'))\n let newName = parts.slice(0, i).join('-')\n parts = this.currentPlugin.split('-')\n i = parts.findIndex((x) => x.includes('.'))\n let existingName = parts.slice(0, i).join('-')\n if (newName !== existingName) {\n this.$dialog\n .confirm(\n `The new gem base name ${newName} doesn't match the existing ${existingName}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n } else {\n this.upload(this.currentPlugin)\n }\n }\n } else {\n this.upload()\n }\n } else {\n // Reset the input element\n this.$refs.fileInput.value = null\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.crashed {\n color: red;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","PluginDialog","ModifiedPluginDialog","SimpleTextDialog","result","plugin","pluginNameSplit","pluginName","target","newValue","oldValue","process","Api","response","nanoSecs","format","toDate","existing","method","path","formData","self","progressEvent","percentCompleted","existingPluginTxt","pluginTxt","error","pluginHash","deleteModified","name","decodedData","uInt8Array","blob","link","dialog","event","files","parts","i","x","newName","existingName","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_v_icon","_component_rux_progress","$data","_component_v_checkbox","$event","_component_v_divider","_component_v_alert","_toDisplayString","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_progress_circular","_component_v_tooltip","props","_mergeProps","_component_v_list_item_title","_normalizeClass","_component_v_list_item_subtitle","_createCommentVNode","index","_hoisted_3","_withModifiers","_hoisted_5","_component_plugin_dialog","_component_modified_plugin_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
import { l as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js";
|
|
2
2
|
import { resolveComponent as p, createElementBlock as m, openBlock as d, createVNode as i, createBlock as P, createCommentVNode as x, withCtx as a, createElementVNode as f, createTextVNode as _, toDisplayString as v, Fragment as y, renderList as D, normalizeClass as E, mergeProps as S, withModifiers as H } from "vue";
|
|
3
3
|
import { _ as z } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
import "single-spa";
|
|
5
|
-
import { S as J } from "./SimpleTextDialog-
|
|
5
|
+
import { S as J } from "./SimpleTextDialog-BulqUrdH.js";
|
|
6
6
|
import { ModifiedPluginDialog as q, PluginDialog as G } from "./tools/admin.js";
|
|
7
7
|
import { f as K, t as Q } from "./format-CVeawcIv.js";
|
|
8
8
|
const W = {
|
|
@@ -61,6 +61,8 @@ const W = {
|
|
|
61
61
|
// Enterprise only
|
|
62
62
|
"openc3-cosmos-tool-grafana",
|
|
63
63
|
// Enterprise only
|
|
64
|
+
"openc3-cosmos-tool-systemhealth",
|
|
65
|
+
// Enterprise only
|
|
64
66
|
"openc3-enterprise-tool-base",
|
|
65
67
|
// Enterprise only
|
|
66
68
|
"openc3-tool-base"
|
|
@@ -553,8 +555,8 @@ function et(e, t, u, r, l, s) {
|
|
|
553
555
|
}, null, 8, ["modelValue", "text"])
|
|
554
556
|
]);
|
|
555
557
|
}
|
|
556
|
-
const pt = /* @__PURE__ */ z(W, [["render", et], ["__scopeId", "data-v-
|
|
558
|
+
const pt = /* @__PURE__ */ z(W, [["render", et], ["__scopeId", "data-v-73fe8603"]]);
|
|
557
559
|
export {
|
|
558
560
|
pt as default
|
|
559
561
|
};
|
|
560
|
-
//# sourceMappingURL=PluginsTab-
|
|
562
|
+
//# sourceMappingURL=PluginsTab-lHDR5v6S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PluginsTab-lHDR5v6S.js","sources":["../src/tools/admin/tabs/PluginsTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <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 New Plugin</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n Note: Use <v-icon>mdi-update</v-icon> to upgrade existing plugins\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-row no-gutters class=\"px-2\">\n <v-col>\n <v-checkbox\n v-model=\"showDefaultTools\"\n label=\"Show Default Tools\"\n class=\"mt-0\"\n data-test=\"show-default-tools\"\n />\n </v-col>\n <v-col align=\"right\" class=\"mr-2\">\n <div>* indicates a modified plugin</div>\n <div>Click target link to download modifications</div>\n </v-col>\n </v-row>\n <v-divider />\n <!-- TODO This alert shows both success and failure. Make consistent with rest of OpenC3. -->\n <v-alert\n v-model=\"showAlert\"\n closable\n :type=\"alertType\"\n data-test=\"plugin-alert\"\n >{{ alert }}</v-alert\n >\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\"\n ><v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template #append>\n <v-progress-circular\n v-if=\"process.state === 'Running'\"\n indeterminate\n color=\"primary\"\n />\n <v-tooltip v-else :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 data-test=\"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=\"plugin-list\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Plugin List</v-col></v-row>\n <div v-for=\"(plugin, index) in shownPlugins\" :key=\"index\">\n <v-list-item data-test=\"plugin-list-item\">\n <v-list-item-title\n ><span v-if=\"isModified(plugin)\">* </span\n >{{ plugin }}</v-list-item-title\n >\n <v-list-item-subtitle v-if=\"pluginTargets(plugin).length !== 0\">\n <span\n v-for=\"(target, index) in pluginTargets(plugin)\"\n :key=\"index\"\n class=\"mr-2\"\n >\n <a\n v-if=\"target.modified\"\n @click.prevent=\"downloadTarget(target.name)\"\n >{{ target.name }}\n </a>\n <span v-else>{{ target.name }} </span>\n </span>\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n aria-label=\"Download Plugin\"\n data-test=\"download-plugin\"\n @click=\"downloadPlugin(plugin)\"\n />\n <v-btn\n icon=\"mdi-pencil\"\n variant=\"text\"\n aria-label=\"Edit Plugin\"\n data-test=\"edit-plugin\"\n @click=\"editPlugin(plugin)\"\n />\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-update\"\n variant=\"text\"\n aria-label=\"Upgrade Plugin\"\n data-test=\"upgrade-plugin\"\n @click=\"upgradePlugin(plugin)\"\n />\n </template>\n <span>Upgrade Plugin</span>\n </v-tooltip>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Plugin\"\n data-test=\"delete-plugin\"\n @click=\"deletePrompt(plugin)\"\n />\n </template>\n </v-list-item>\n <v-divider v-if=\"index < plugins.length - 1\" :key=\"index\" />\n </div>\n </v-list>\n <plugin-dialog\n v-if=\"showPluginDialog\"\n v-model=\"showPluginDialog\"\n :plugin-name=\"pluginName\"\n :variables=\"variables\"\n :plugin-txt=\"pluginTxt\"\n :existing-plugin-txt=\"existingPluginTxt\"\n @callback=\"pluginCallback\"\n />\n <modified-plugin-dialog\n v-if=\"showModifiedPluginDialog\"\n v-model=\"showModifiedPluginDialog\"\n :plugin-name=\"currentPlugin\"\n :targets=\"pluginTargets(currentPlugin)\"\n :plugin-delete=\"pluginDelete\"\n @submit=\"modifiedSubmit\"\n />\n <!-- <download-dialog v-model=\"showDownloadDialog\" /> -->\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { ModifiedPluginDialog, PluginDialog } from '@/tools/admin'\n\nexport default {\n components: {\n PluginDialog,\n ModifiedPluginDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n file: null,\n currentPlugin: null,\n plugins: [],\n targets: [],\n processes: {},\n alert: '',\n alertType: 'success',\n showAlert: false,\n pluginName: null,\n variables: {},\n pluginTxt: '',\n pluginHashTmp: null,\n existingPluginTxt: null,\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n showPluginDialog: false,\n showModifiedPluginDialog: false,\n showDefaultTools: false,\n progress: 0,\n pluginDelete: false,\n // When updating update local_mode.rb, local_mode.py, plugins.spec.ts\n defaultPlugins: [\n 'openc3-cosmos-tool-admin',\n 'openc3-cosmos-tool-bucketexplorer',\n 'openc3-cosmos-tool-cmdsender',\n 'openc3-cosmos-tool-cmdhistory', // Enterprise only\n 'openc3-cosmos-tool-cmdtlmserver',\n 'openc3-cosmos-tool-dataextractor',\n 'openc3-cosmos-tool-dataviewer',\n 'openc3-cosmos-tool-docs',\n 'openc3-cosmos-tool-handbooks',\n 'openc3-cosmos-tool-iframe',\n 'openc3-cosmos-tool-limitsmonitor',\n 'openc3-cosmos-tool-packetviewer',\n 'openc3-cosmos-tool-scriptrunner',\n 'openc3-cosmos-tool-tablemanager',\n 'openc3-cosmos-tool-tlmgrapher',\n 'openc3-cosmos-tool-tlmviewer',\n 'openc3-cosmos-enterprise-tool-admin', // Enterprise only\n 'openc3-cosmos-tool-autonomic', // Enterprise only\n 'openc3-cosmos-tool-calendar', // Enterprise only\n 'openc3-cosmos-tool-grafana', // Enterprise only\n 'openc3-cosmos-tool-systemhealth', // Enterprise only\n 'openc3-enterprise-tool-base', // Enterprise only\n 'openc3-tool-base',\n ],\n }\n },\n computed: {\n shownPlugins() {\n let result = []\n for (let plugin of this.plugins) {\n let pluginNameFirst = plugin.split('__')[0]\n let pluginNameSplit = pluginNameFirst.split('-')\n pluginNameSplit = pluginNameSplit.slice(0, -1)\n let pluginName = pluginNameSplit.join('-')\n if (\n !this.defaultPlugins.includes(pluginName) ||\n this.showDefaultTools\n ) {\n result.push(plugin)\n }\n }\n return result\n },\n pluginTargets() {\n return (plugin) => {\n let result = []\n for (const target in this.targets) {\n if (this.targets[target]['plugin'] === plugin) {\n result.push(this.targets[target])\n }\n }\n return result\n }\n },\n isModified() {\n return (plugin) => {\n let result = false\n for (const target in this.targets) {\n if (\n this.targets[target]['plugin'] === plugin &&\n this.targets[target]['modified'] === true\n ) {\n result = true\n break\n }\n }\n return result\n }\n },\n },\n watch: {\n // watcher to reset the file input when the dialog is closed\n showPluginDialog: function (newValue, oldValue) {\n if (newValue === false) {\n this.file = null\n this.$refs.fileInput.value = null\n }\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: function () {\n Api.get('/openc3-api/plugins').then((response) => {\n this.plugins = response.data\n })\n Api.get('/openc3-api/targets_modified').then((response) => {\n this.targets = response.data\n })\n },\n updateProcesses: function () {\n Api.get('openc3-api/process_status/plugin_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 5000)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n upload: function (existing = null) {\n const method = existing ? 'put' : 'post'\n const path = existing\n ? `/openc3-api/plugins/${existing}`\n : '/openc3-api/plugins'\n const formData = new FormData()\n formData.append('plugin', this.file, this.file.name)\n let self = this\n const promise = Api[method](path, {\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 promise\n .then((response) => {\n this.progress = 100\n this.alert = 'Uploaded file'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt =\n response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n this.file = undefined\n })\n .catch((error) => {\n this.currentPlugin = null\n this.file = undefined\n })\n },\n pluginCallback: function (pluginHash) {\n this.showPluginDialog = false\n if (this.currentPlugin !== null) {\n pluginHash['name'] = this.currentPlugin\n }\n this.pluginHashTmp = pluginHash\n if (this.isModified(this.currentPlugin)) {\n this.pluginDelete = false\n this.showModifiedPluginDialog = true\n } else {\n this.pluginInstall()\n }\n },\n modifiedSubmit: async function (deleteModified) {\n if (deleteModified === true) {\n for (let target of this.pluginTargets(this.currentPlugin)) {\n if (target.modified == true) {\n await Api.post(`/openc3-api/targets/${target.name}/delete_modified`)\n }\n }\n }\n if (this.pluginDelete) {\n this.deletePlugin(this.currentPlugin)\n } else {\n this.pluginInstall()\n }\n },\n pluginInstall: function () {\n Api.post(`/openc3-api/plugins/install/${this.pluginName}`, {\n data: {\n plugin_hash: JSON.stringify(this.pluginHashTmp),\n },\n }).then((response) => {\n this.alert = `Started installing plugin ${this.pluginName} ...`\n this.alertType = 'success'\n this.showAlert = true\n this.currentPlugin = null\n this.file = undefined\n this.variables = {}\n this.pluginTxt = ''\n this.existingPluginTxt = null\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n this.update()\n })\n },\n downloadTarget: function (name) {\n Api.post(`/openc3-api/targets/${name}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n downloadPlugin: function (plugin) {\n Api.post(`/openc3-api/packages/${plugin}/download`).then((response) => {\n // Decode Base64 string\n const decodedData = window.atob(response.data.contents)\n // Create UNIT8ARRAY of size same as row data length\n const uInt8Array = new Uint8Array(decodedData.length)\n // Insert all character code into uInt8Array\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n const blob = new Blob([uInt8Array], { type: 'application/zip' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', response.data.filename)\n link.click()\n })\n },\n editPlugin: function (plugin) {\n Api.get(`/openc3-api/plugins/${plugin}`).then((response) => {\n let existingPluginTxt = null\n if (response.data.existing_plugin_txt_lines !== undefined) {\n existingPluginTxt = response.data.existing_plugin_txt_lines.join('\\n')\n }\n let pluginTxt = response.data.plugin_txt_lines.join('\\n')\n ;(this.pluginName = response.data.name),\n (this.variables = response.data.variables),\n (this.pluginTxt = pluginTxt),\n (this.existingPluginTxt = existingPluginTxt)\n this.showPluginDialog = true\n })\n },\n deletePrompt: function (plugin) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${plugin}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.isModified(plugin)) {\n this.currentPlugin = plugin\n this.pluginDelete = true\n this.showModifiedPluginDialog = true\n } else {\n this.deletePlugin(plugin)\n }\n })\n },\n deletePlugin: function (plugin) {\n this.alert = `Removing plugin ${plugin} ...`\n this.alertType = 'success'\n this.showAlert = true\n Api.delete(`/openc3-api/plugins/${plugin}`).then((response) => {\n setTimeout(() => {\n this.showAlert = false\n this.updateProcesses()\n }, 5000)\n })\n this.update()\n },\n upgradePlugin(plugin) {\n this.file = null\n this.currentPlugin = plugin\n this.progress = 0\n this.$refs.fileInput.click()\n },\n selectFile() {\n this.file = null\n this.currentPlugin = null\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.file = files[0]\n if (this.currentPlugin !== null) {\n if (\n this.file.name.split('.gem')[0] ==\n this.currentPlugin.split('.gem')[0]\n ) {\n this.$dialog\n .confirm(\n `The new gem ${this.file.name} appears to be identical to the existing ${this.currentPlugin}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n .catch((error) => {\n // do nothing\n })\n } else {\n // Split up the gem name to determine if this is an upgrade\n // or mistakenly trying to install a different gem\n // Gems are named like openc3-cosmos-demo-5.3.2.gem or\n // openc3-cosmos-pw-test-1.0.0.20230213074527.gem\n // So split on - and match everything until the first .\n let parts = this.file.name.split('-')\n let i = parts.findIndex((x) => x.includes('.'))\n let newName = parts.slice(0, i).join('-')\n parts = this.currentPlugin.split('-')\n i = parts.findIndex((x) => x.includes('.'))\n let existingName = parts.slice(0, i).join('-')\n if (newName !== existingName) {\n this.$dialog\n .confirm(\n `The new gem base name ${newName} doesn't match the existing ${existingName}. Install?`,\n {\n okText: 'Ok',\n cancelText: 'Cancel',\n },\n )\n .then(() => {\n this.upload(this.currentPlugin)\n })\n } else {\n this.upload(this.currentPlugin)\n }\n }\n } else {\n this.upload()\n }\n } else {\n // Reset the input element\n this.$refs.fileInput.value = null\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.crashed {\n color: red;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","PluginDialog","ModifiedPluginDialog","SimpleTextDialog","result","plugin","pluginNameSplit","pluginName","target","newValue","oldValue","process","Api","response","nanoSecs","format","toDate","existing","method","path","formData","self","progressEvent","percentCompleted","existingPluginTxt","pluginTxt","error","pluginHash","deleteModified","name","decodedData","uInt8Array","i","blob","link","dialog","event","files","parts","x","newName","existingName","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_v_icon","_component_rux_progress","$data","_component_v_checkbox","$event","_component_v_divider","_component_v_alert","_toDisplayString","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_progress_circular","_component_v_tooltip","props","_mergeProps","_component_v_list_item_title","_normalizeClass","_component_v_list_item_subtitle","_createCommentVNode","index","_hoisted_3","_withModifiers","_hoisted_5","_component_plugin_dialog","_component_modified_plugin_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./Widget-
|
|
2
|
-
//# sourceMappingURL=ProgressbarWidget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./Widget-O7wkmc39.cjs"),t=require("vue"),i=require("./CustomIcon-Bop2mEnu.cjs"),l={mixins:[a.Widget],props:{value:{default:null}},data:function(){return{valueId:null,scaleFactor:1,width:150}},computed:{_value:function(){let e=this.value;return e===null&&(e=this.screenValues[this.valueId][0]),parseInt(parseFloat(e)*this.scaleFactor)}},created:function(){if(this.parameters[3]&&(this.scaleFactor=parseFloat(this.parameters[3])),this.width=this.setWidth(this.parameters[4],"px",this.width),this.value===null){let e="CONVERTED";this.parameters[5]&&(e=this.parameters[5]),this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${e}`,this.$emit("addItem",this.valueId)}},unmounted:function(){this.$emit("deleteItem",this.valueId)}};function u(e,n,c,d,p,s){const r=t.resolveComponent("rux-progress");return t.openBlock(),t.createBlock(r,{value:s._value,class:"progress",style:t.normalizeStyle(e.computedStyle)},null,8,["value","style"])}const o=i._export_sfc(l,[["render",u],["__scopeId","data-v-85bc2857"]]);exports.default=o;
|
|
2
|
+
//# sourceMappingURL=ProgressbarWidget-C0AkbX_o.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressbarWidget-
|
|
1
|
+
{"version":3,"file":"ProgressbarWidget-C0AkbX_o.cjs","sources":["../src/widgets/ProgressbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <rux-progress\n :value=\"_value\"\n class=\"progress\"\n :style=\"computedStyle\"\n ></rux-progress>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n scaleFactor: 1.0,\n width: 150,\n }\n },\n computed: {\n _value: function () {\n let value = this.value\n if (value === null) {\n value = this.screenValues[this.valueId][0]\n }\n return parseInt(parseFloat(value) * this.scaleFactor)\n },\n },\n created: function () {\n if (this.parameters[3]) {\n this.scaleFactor = parseFloat(this.parameters[3])\n }\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n // If they're not passing us the value we have to register\n if (this.value === null) {\n let type = 'CONVERTED'\n if (this.parameters[5]) {\n type = this.parameters[5]\n }\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n }\n },\n unmounted: function () {\n this.$emit('deleteItem', this.valueId)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.progress {\n margin: 5px;\n flex: auto !important;\n}\n</style>\n"],"names":["_sfc_main","Widget","value","type","_createBlock","_component_rux_progress","$options","_normalizeStyle","_ctx"],"mappings":"iLAiCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,QAAS,OAGb,KAAM,UAAY,CAChB,MAAO,CACL,QAAS,KACT,YAAa,EACb,MAAO,GACT,CACF,EACA,SAAU,CACR,OAAQ,UAAY,CAClB,IAAIC,EAAQ,KAAK,MACjB,OAAIA,IAAU,OACZA,EAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,GAEpC,SAAS,WAAWA,CAAK,EAAI,KAAK,WAAW,CACtD,GAEF,QAAS,UAAY,CAMnB,GALI,KAAK,WAAW,CAAC,IACnB,KAAK,YAAc,WAAW,KAAK,WAAW,CAAC,CAAC,GAElD,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAE3D,KAAK,QAAU,KAAM,CACvB,IAAIC,EAAO,YACP,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAE1B,KAAK,QAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,GAC3F,KAAK,MAAM,UAAW,KAAK,OAAO,CACpC,CACF,EACA,UAAW,UAAY,CACrB,KAAK,MAAM,aAAc,KAAK,OAAO,CACvC,CACF,0FAnDEC,EAAAA,YAIgBC,EAAA,CAHb,MAAOC,EAAA,OACR,MAAM,WACL,MA1BLC,EAAAA,eA0BYC,EAAA,aAAa"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { W as a } from "./Widget-
|
|
1
|
+
import { W as a } from "./Widget-Bn_S-zBo.js";
|
|
2
2
|
import { resolveComponent as r, createBlock as i, openBlock as l, normalizeStyle as o } from "vue";
|
|
3
3
|
import { _ as u } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
const n = {
|
|
@@ -43,4 +43,4 @@ const I = /* @__PURE__ */ u(n, [["render", p], ["__scopeId", "data-v-85bc2857"]]
|
|
|
43
43
|
export {
|
|
44
44
|
I as default
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=ProgressbarWidget-
|
|
46
|
+
//# sourceMappingURL=ProgressbarWidget-Cdu5nJC3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressbarWidget-
|
|
1
|
+
{"version":3,"file":"ProgressbarWidget-Cdu5nJC3.js","sources":["../src/widgets/ProgressbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <rux-progress\n :value=\"_value\"\n class=\"progress\"\n :style=\"computedStyle\"\n ></rux-progress>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n scaleFactor: 1.0,\n width: 150,\n }\n },\n computed: {\n _value: function () {\n let value = this.value\n if (value === null) {\n value = this.screenValues[this.valueId][0]\n }\n return parseInt(parseFloat(value) * this.scaleFactor)\n },\n },\n created: function () {\n if (this.parameters[3]) {\n this.scaleFactor = parseFloat(this.parameters[3])\n }\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n // If they're not passing us the value we have to register\n if (this.value === null) {\n let type = 'CONVERTED'\n if (this.parameters[5]) {\n type = this.parameters[5]\n }\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__${type}`\n this.$emit('addItem', this.valueId)\n }\n },\n unmounted: function () {\n this.$emit('deleteItem', this.valueId)\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.progress {\n margin: 5px;\n flex: auto !important;\n}\n</style>\n"],"names":["_sfc_main","Widget","value","type","_createBlock","_component_rux_progress","$options","_normalizeStyle","_ctx"],"mappings":";;;AAiCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA;;EAGb,MAAM,WAAY;AAChB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,aAAa;AAAA,MACb,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,WAAY;AAClB,UAAIC,IAAQ,KAAK;AACjB,aAAIA,MAAU,SACZA,IAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,IAEpC,SAAS,WAAWA,CAAK,IAAI,KAAK,WAAW;AAAA,IACtD;AAAA;EAEF,SAAS,WAAY;AAMnB,QALI,KAAK,WAAW,CAAC,MACnB,KAAK,cAAc,WAAW,KAAK,WAAW,CAAC,CAAC,IAElD,KAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAE3D,KAAK,UAAU,MAAM;AACvB,UAAIC,IAAO;AACX,MAAI,KAAK,WAAW,CAAC,MACnBA,IAAO,KAAK,WAAW,CAAC,IAE1B,KAAK,UAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAKA,CAAI,IAC3F,KAAK,MAAM,WAAW,KAAK,OAAO;AAAA,IACpC;AAAA,EACF;AAAA,EACA,WAAW,WAAY;AACrB,SAAK,MAAM,cAAc,KAAK,OAAO;AAAA,EACvC;AACF;;;cAnDEC,EAIgBC,GAAA;AAAA,IAHb,OAAOC,EAAA;AAAA,IACR,OAAM;AAAA,IACL,OA1BLC,EA0BYC,EAAA,aAAa;AAAA;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { W as l } from "./Widget-
|
|
1
|
+
import { W as l } from "./Widget-Bn_S-zBo.js";
|
|
2
2
|
import { resolveComponent as r, createBlock as n, openBlock as s, normalizeStyle as i } from "vue";
|
|
3
3
|
import { _ as c } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
const d = {
|
|
@@ -31,4 +31,4 @@ const y = /* @__PURE__ */ c(d, [["render", p]]);
|
|
|
31
31
|
export {
|
|
32
32
|
y as default
|
|
33
33
|
};
|
|
34
|
-
//# sourceMappingURL=RadiobuttonWidget-
|
|
34
|
+
//# sourceMappingURL=RadiobuttonWidget-CZZGbvdG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadiobuttonWidget-
|
|
1
|
+
{"version":3,"file":"RadiobuttonWidget-CZZGbvdG.js","sources":["../src/widgets/RadiobuttonWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-radio\n hide-details\n dense\n :label=\"label\"\n :style=\"computedStyle\"\n :value=\"value\"\n />\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n props: {\n value: {\n type: Number,\n },\n },\n mixins: [Widget],\n data() {\n return {\n label: 'Radio',\n }\n },\n created() {\n this.label = this.parameters[0]\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","_createBlock","_component_v_radio","$data","_normalizeStyle","_ctx","$props"],"mappings":";;;AAmCA,MAAKA,IAAU;AAAA,EACb,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA;;EAGV,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,UAAU;AACR,SAAK,QAAQ,KAAK,WAAW,CAAC;AAAA,EAChC;AACF;;;cA3BEC,EAMEC,GAAA;AAAA,IALA,gBAAA;AAAA,IACA,OAAA;AAAA,IACC,OAAOC,EAAA;AAAA,IACP,OA3BLC,EA2BYC,EAAA,aAAa;AAAA,IACpB,OAAOC,EAAA;AAAA;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-
|
|
2
|
-
//# sourceMappingURL=RadiobuttonWidget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-O7wkmc39.cjs"),e=require("vue"),a=require("./CustomIcon-Bop2mEnu.cjs"),s={props:{value:{type:Number}},mixins:[n.Widget],data(){return{label:"Radio"}},created(){this.label=this.parameters[0]}};function i(t,u,o,d,l,p){const r=e.resolveComponent("v-radio");return e.openBlock(),e.createBlock(r,{"hide-details":"",dense:"",label:l.label,style:e.normalizeStyle(t.computedStyle),value:o.value},null,8,["label","style","value"])}const c=a._export_sfc(s,[["render",i]]);exports.default=c;
|
|
2
|
+
//# sourceMappingURL=RadiobuttonWidget-DslmJO31.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadiobuttonWidget-
|
|
1
|
+
{"version":3,"file":"RadiobuttonWidget-DslmJO31.cjs","sources":["../src/widgets/RadiobuttonWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-radio\n hide-details\n dense\n :label=\"label\"\n :style=\"computedStyle\"\n :value=\"value\"\n />\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n props: {\n value: {\n type: Number,\n },\n },\n mixins: [Widget],\n data() {\n return {\n label: 'Radio',\n }\n },\n created() {\n this.label = this.parameters[0]\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","_createBlock","_component_v_radio","$data","_normalizeStyle","_ctx","$props"],"mappings":"iLAmCKA,EAAU,CACb,MAAO,CACL,MAAO,CACL,KAAM,SAGV,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,MAAO,OACT,CACF,EACA,SAAU,CACR,KAAK,MAAQ,KAAK,WAAW,CAAC,CAChC,CACF,qFA3BEC,EAAAA,YAMEC,EAAA,CALA,eAAA,GACA,MAAA,GACC,MAAOC,EAAA,MACP,MA3BLC,EAAAA,eA2BYC,EAAA,aAAa,EACpB,MAAOC,EAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { L as m } from "./Layout-
|
|
1
|
+
import { L as m } from "./Layout-1z8iJV5-.js";
|
|
2
2
|
import { resolveComponent as i, createBlock as a, openBlock as r, normalizeStyle as p, withCtx as d, createElementBlock as u, Fragment as c, renderList as f, resolveDynamicComponent as g, mergeProps as y } from "vue";
|
|
3
3
|
import { _ as v } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
const _ = {
|
|
@@ -45,4 +45,4 @@ const C = /* @__PURE__ */ v(_, [["render", h]]);
|
|
|
45
45
|
export {
|
|
46
46
|
C as default
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=RadiogroupWidget-
|
|
48
|
+
//# sourceMappingURL=RadiogroupWidget-CQN3v8Ip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadiogroupWidget-
|
|
1
|
+
{"version":3,"file":"RadiogroupWidget-CQN3v8Ip.js","sources":["../src/widgets/RadiogroupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-radio-group\n hide-details\n density=\"compact\"\n v-model=\"selectedIndex\"\n :style=\"computedStyle\"\n >\n <component\n v-for=\"(widget, index) in widgets\"\n v-bind=\"listeners\"\n :value=\"index\"\n :key=\"index\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :name=\"widget.name\"\n />\n </v-radio-group>\n</template>\n\n<script>\nimport Layout from './Layout'\n\nexport default {\n mixins: [Layout],\n data() {\n return {\n selectedIndex: 0,\n }\n },\n created() {\n if (this.parameters[0]) {\n this.selectedIndex = parseInt(this.parameters[0])\n }\n },\n methods: {\n selected() {\n return this.selectedIndex\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_createBlock","_component_v_radio_group","$data","_cache","$event","_normalizeStyle","_ctx","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","widget","index","_resolveDynamicComponent","_mergeProps"],"mappings":";;;AAgDA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,eAAe;AAAA,IACjB;AAAA,EACF;AAAA,EACA,UAAU;AACR,IAAI,KAAK,WAAW,CAAC,MACnB,KAAK,gBAAgB,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,EAEpD;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AACT,aAAO,KAAK;AAAA,IACd;AAAA;AAEJ;;;cA1CEC,EAmBgBC,GAAA;AAAA,IAlBd,gBAAA;AAAA,IACA,SAAQ;AAAA,IAzBZ,YA0BaC,EAAA;AAAA,IA1Bb,uBAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MA0BaF,EAAA,gBAAaE;AAAA,IACrB,OA3BLC,EA2BYC,EAAA,aAAa;AAAA;IA3BzB,SAAAC,EA8BM,MAAkC;AAAA,OADpCC,EAAA,EAAA,GAAAC,EAYEC,SAzCNC,EA8BgCL,EAAA,SA9BhC,CA8BcM,GAAQC,YADlBb,EA7BJc,EAkCWF,EAAO,IAAI,GALlBG,EAYE,EAzCN,SAAA,MA+BcT,EAAA,WAAS;AAAA,QAChB,OAAOO;AAAA,QACP,KAAKA;AAAA,QAEL,QAAQD,EAAO;AAAA,QACf,YAAYA,EAAO;AAAA,QACnB,UAAUA,EAAO;AAAA,QACjB,iBAAeN,EAAA;AAAA,QACf,oBAAkBA,EAAA;AAAA,QAClB,MAAMM,EAAO;AAAA;;IAxCpB,GAAA;AAAA;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./Layout-
|
|
2
|
-
//# sourceMappingURL=RadiogroupWidget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./Layout-kOQnicRa.cjs"),e=require("vue"),c=require("./CustomIcon-Bop2mEnu.cjs"),u={mixins:[l.Layout],data(){return{selectedIndex:0}},created(){this.parameters[0]&&(this.selectedIndex=parseInt(this.parameters[0]))},methods:{selected(){return this.selectedIndex}}};function i(r,n,d,p,s,y){const a=e.resolveComponent("v-radio-group");return e.openBlock(),e.createBlock(a,{"hide-details":"",density:"compact",modelValue:s.selectedIndex,"onUpdate:modelValue":n[0]||(n[0]=t=>s.selectedIndex=t),style:e.normalizeStyle(r.computedStyle)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.widgets,(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},r.listeners,{value:o,key:o,target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,name:t.name}),null,16,["value","target","parameters","settings","screen-values","screen-time-zone","name"]))),128))]),_:1},8,["modelValue","style"])}const m=c._export_sfc(u,[["render",i]]);exports.default=m;
|
|
2
|
+
//# sourceMappingURL=RadiogroupWidget-DKgBAR9E.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadiogroupWidget-
|
|
1
|
+
{"version":3,"file":"RadiogroupWidget-DKgBAR9E.cjs","sources":["../src/widgets/RadiogroupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license \n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-radio-group\n hide-details\n density=\"compact\"\n v-model=\"selectedIndex\"\n :style=\"computedStyle\"\n >\n <component\n v-for=\"(widget, index) in widgets\"\n v-bind=\"listeners\"\n :value=\"index\"\n :key=\"index\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :name=\"widget.name\"\n />\n </v-radio-group>\n</template>\n\n<script>\nimport Layout from './Layout'\n\nexport default {\n mixins: [Layout],\n data() {\n return {\n selectedIndex: 0,\n }\n },\n created() {\n if (this.parameters[0]) {\n this.selectedIndex = parseInt(this.parameters[0])\n }\n },\n methods: {\n selected() {\n return this.selectedIndex\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_createBlock","_component_v_radio_group","$data","_cache","$event","_normalizeStyle","_ctx","_withCtx","_openBlock","_createElementBlock","_Fragment","_renderList","widget","index","_resolveDynamicComponent","_mergeProps"],"mappings":"iLAgDKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,cAAe,CACjB,CACF,EACA,SAAU,CACJ,KAAK,WAAW,CAAC,IACnB,KAAK,cAAgB,SAAS,KAAK,WAAW,CAAC,CAAC,EAEpD,EACA,QAAS,CACP,UAAW,CACT,OAAO,KAAK,aACd,EAEJ,2FA1CEC,EAAAA,YAmBgBC,EAAA,CAlBd,eAAA,GACA,QAAQ,UAzBZ,WA0BaC,EAAA,cA1Bb,sBAAAC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GA0BaF,EAAA,cAAaE,GACrB,MA3BLC,EAAAA,eA2BYC,EAAA,aAAa,IA3BzB,QAAAC,EAAAA,QA8BM,IAAkC,EADpCC,EAAAA,UAAA,EAAA,EAAAC,EAAAA,mBAYEC,gBAzCNC,EAAAA,WA8BgCL,EAAA,QA9BhC,CA8BcM,EAAQC,mBADlBb,EAAAA,YA7BJc,EAAAA,wBAkCWF,EAAO,IAAI,EALlBG,EAAAA,WAYE,CAzCN,QAAA,IA+BcT,EAAA,UAAS,CAChB,MAAOO,EACP,IAAKA,EAEL,OAAQD,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeN,EAAA,aACf,mBAAkBA,EAAA,eAClB,KAAMM,EAAO,+GAxCpB,EAAA"}
|