@openc3/vue-common 6.10.2 → 6.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ArrayWidget-ByKRAWXn.cjs → ArrayWidget-B35vCzAo.cjs} +3 -3
- package/dist/{ArrayWidget-ByKRAWXn.cjs.map → ArrayWidget-B35vCzAo.cjs.map} +1 -1
- package/dist/{ArrayWidget-CR7Wpw3N.js → ArrayWidget-Bc-Awsbn.js} +11 -11
- package/dist/{ArrayWidget-CR7Wpw3N.js.map → ArrayWidget-Bc-Awsbn.js.map} +1 -1
- package/dist/{ArrayplotWidget-Cty7KQ_h.cjs → ArrayplotWidget-B67ip6aR.cjs} +2 -2
- package/dist/{ArrayplotWidget-Cty7KQ_h.cjs.map → ArrayplotWidget-B67ip6aR.cjs.map} +1 -1
- package/dist/{ArrayplotWidget-DDEd-jRJ.js → ArrayplotWidget-B9UGCr4-.js} +4 -4
- package/dist/{ArrayplotWidget-DDEd-jRJ.js.map → ArrayplotWidget-B9UGCr4-.js.map} +1 -1
- package/dist/BarColumn-3fKM-em2.cjs +2 -0
- package/dist/BarColumn-3fKM-em2.cjs.map +1 -0
- package/dist/{BarColumn-XWs-3Cwb.js → BarColumn-ClLBRGll.js} +11 -11
- package/dist/BarColumn-ClLBRGll.js.map +1 -0
- package/dist/{BlockWidget-CfFgdNSv.js → BlockWidget-CoQp-LZM.js} +14 -14
- package/dist/{BlockWidget-CfFgdNSv.js.map → BlockWidget-CoQp-LZM.js.map} +1 -1
- package/dist/{BlockWidget-BDzoqpxO.cjs → BlockWidget-DWexy9Dx.cjs} +3 -3
- package/dist/{BlockWidget-BDzoqpxO.cjs.map → BlockWidget-DWexy9Dx.cjs.map} +1 -1
- package/dist/{ButtonWidget-BBMDS_YF.cjs → ButtonWidget-BBpVoIzj.cjs} +3 -3
- package/dist/ButtonWidget-BBpVoIzj.cjs.map +1 -0
- package/dist/{ButtonWidget-BaSvtElA.js → ButtonWidget-CTTwpFec.js} +15 -15
- package/dist/ButtonWidget-CTTwpFec.js.map +1 -0
- package/dist/{CanvasWidget-CFNpgqfW.cjs → CanvasWidget-Qlx-Mo8v.cjs} +2 -2
- package/dist/{CanvasWidget-CFNpgqfW.cjs.map → CanvasWidget-Qlx-Mo8v.cjs.map} +1 -1
- package/dist/{CanvasWidget-DcwDi5Zk.js → CanvasWidget-jFarbJ3t.js} +4 -4
- package/dist/{CanvasWidget-DcwDi5Zk.js.map → CanvasWidget-jFarbJ3t.js.map} +1 -1
- package/dist/{CanvasdotWidget-BZ9TrTvw.cjs → CanvasdotWidget-BROyk4FH.cjs} +2 -2
- package/dist/{CanvasdotWidget-BZ9TrTvw.cjs.map → CanvasdotWidget-BROyk4FH.cjs.map} +1 -1
- package/dist/{CanvasdotWidget--awMOWyz.js → CanvasdotWidget-BoyUcwiB.js} +3 -3
- package/dist/{CanvasdotWidget--awMOWyz.js.map → CanvasdotWidget-BoyUcwiB.js.map} +1 -1
- package/dist/CanvasimageWidget-BvTJnGXu.cjs +2 -0
- package/dist/CanvasimageWidget-BvTJnGXu.cjs.map +1 -0
- package/dist/{CanvasimageWidget-YP1pCtvb.js → CanvasimageWidget-DmyCSnuQ.js} +8 -7
- package/dist/CanvasimageWidget-DmyCSnuQ.js.map +1 -0
- package/dist/{CanvasimagevalueWidget-CjVHb2uj.js → CanvasimagevalueWidget-CmbngMqv.js} +5 -4
- package/dist/CanvasimagevalueWidget-CmbngMqv.js.map +1 -0
- package/dist/CanvasimagevalueWidget-CzVrDo-Z.cjs +2 -0
- package/dist/CanvasimagevalueWidget-CzVrDo-Z.cjs.map +1 -0
- package/dist/{CanvaslabelWidget-Dw1YmiY0.cjs → CanvaslabelWidget-BnvwV9MA.cjs} +2 -2
- package/dist/{CanvaslabelWidget-Dw1YmiY0.cjs.map → CanvaslabelWidget-BnvwV9MA.cjs.map} +1 -1
- package/dist/{CanvaslabelWidget-DoMplTTO.js → CanvaslabelWidget-D8NzLKqi.js} +3 -3
- package/dist/{CanvaslabelWidget-DoMplTTO.js.map → CanvaslabelWidget-D8NzLKqi.js.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-Dyo_ogHn.js → CanvaslabelvalueWidget-DOybGI9D.js} +4 -3
- package/dist/CanvaslabelvalueWidget-DOybGI9D.js.map +1 -0
- package/dist/CanvaslabelvalueWidget-DVnkclHD.cjs +2 -0
- package/dist/CanvaslabelvalueWidget-DVnkclHD.cjs.map +1 -0
- package/dist/{CanvaslineWidget-D7W1TIxm.js → CanvaslineWidget-D2NEei7j.js} +3 -3
- package/dist/{CanvaslineWidget-D7W1TIxm.js.map → CanvaslineWidget-D2NEei7j.js.map} +1 -1
- package/dist/{CanvaslineWidget-tm194dw1.cjs → CanvaslineWidget-DgbXSH1K.cjs} +2 -2
- package/dist/{CanvaslineWidget-tm194dw1.cjs.map → CanvaslineWidget-DgbXSH1K.cjs.map} +1 -1
- package/dist/{CanvaslinevalueWidget-BOZyJuLE.js → CanvaslinevalueWidget-Ctvv9owf.js} +11 -10
- package/dist/CanvaslinevalueWidget-Ctvv9owf.js.map +1 -0
- package/dist/CanvaslinevalueWidget-E3NDHyPl.cjs +2 -0
- package/dist/CanvaslinevalueWidget-E3NDHyPl.cjs.map +1 -0
- package/dist/CheckbuttonWidget-BdvWAgg_.cjs +2 -0
- package/dist/{CheckbuttonWidget-BSvTWD3x.cjs.map → CheckbuttonWidget-BdvWAgg_.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-B1E4BC6v.js → CheckbuttonWidget-CQeR0BMF.js} +6 -6
- package/dist/{CheckbuttonWidget-B1E4BC6v.js.map → CheckbuttonWidget-CQeR0BMF.js.map} +1 -1
- package/dist/{ClassificationBanners-CzZoKcRy.cjs → ClassificationBanners-0BNhyyMS.cjs} +2 -2
- package/dist/{ClassificationBanners-CzZoKcRy.cjs.map → ClassificationBanners-0BNhyyMS.cjs.map} +1 -1
- package/dist/{ClassificationBanners-DQeVwmYp.js → ClassificationBanners-STI2n2yD.js} +2 -2
- package/dist/{ClassificationBanners-DQeVwmYp.js.map → ClassificationBanners-STI2n2yD.js.map} +1 -1
- package/dist/{ComboboxWidget-BExUBH57.js → ComboboxWidget-4N-MagvN.js} +6 -6
- package/dist/{ComboboxWidget-BExUBH57.js.map → ComboboxWidget-4N-MagvN.js.map} +1 -1
- package/dist/ComboboxWidget-Dh0q9xpJ.cjs +2 -0
- package/dist/{ComboboxWidget-B_KAnIVB.cjs.map → ComboboxWidget-Dh0q9xpJ.cjs.map} +1 -1
- package/dist/CriticalCmdDialog-Dy1cQZxQ.cjs +2 -0
- package/dist/CriticalCmdDialog-Dy1cQZxQ.cjs.map +1 -0
- package/dist/{CriticalCmdDialog-BtzhxuZi.js → CriticalCmdDialog-trVtKZft.js} +62 -52
- package/dist/CriticalCmdDialog-trVtKZft.js.map +1 -0
- package/dist/{CustomIcon-DTfsnDJn.js → CustomIcon-B9m73Gqm.js} +5 -4
- package/dist/{CustomIcon-DTfsnDJn.js.map → CustomIcon-B9m73Gqm.js.map} +1 -1
- package/dist/CustomIcon-CEc927h0.cjs +2 -0
- package/dist/{CustomIcon-eie3rPKh.cjs.map → CustomIcon-CEc927h0.cjs.map} +1 -1
- package/dist/{DateWidget-kTJBAHVp.cjs → DateWidget-DXN7u3vL.cjs} +2 -2
- package/dist/{DateWidget-kTJBAHVp.cjs.map → DateWidget-DXN7u3vL.cjs.map} +1 -1
- package/dist/{DateWidget-_ZmPsi2l.js → DateWidget-rYTjwUdb.js} +3 -3
- package/dist/{DateWidget-_ZmPsi2l.js.map → DateWidget-rYTjwUdb.js.map} +1 -1
- package/dist/DetailsDialog-CLCCuoHV.cjs +2 -0
- package/dist/DetailsDialog-CLCCuoHV.cjs.map +1 -0
- package/dist/{DetailsDialog-Bq7SS7bc.js → DetailsDialog-p_vutijL.js} +130 -100
- package/dist/DetailsDialog-p_vutijL.js.map +1 -0
- package/dist/DynamicWidget-C4V2H2VJ.cjs +2 -0
- package/dist/DynamicWidget-C4V2H2VJ.cjs.map +1 -0
- package/dist/{DynamicWidget-DHL7pbgW.js → DynamicWidget-DEHWYr8i.js} +7 -7
- package/dist/DynamicWidget-DEHWYr8i.js.map +1 -0
- package/dist/{EventListDialog-jdNF3szO.js → EventListDialog-BshKrOuQ.js} +70 -62
- package/dist/EventListDialog-BshKrOuQ.js.map +1 -0
- package/dist/EventListDialog-D0iBpLSR.cjs +2 -0
- package/dist/EventListDialog-D0iBpLSR.cjs.map +1 -0
- package/dist/FilechecksumWidget-Ddlm1UED.cjs +2 -0
- package/dist/FilechecksumWidget-Ddlm1UED.cjs.map +1 -0
- package/dist/FilechecksumWidget-gcmXxJHl.js +158 -0
- package/dist/FilechecksumWidget-gcmXxJHl.js.map +1 -0
- package/dist/FiledisplayWidget-CYX4HChi.cjs +2 -0
- package/dist/FiledisplayWidget-CYX4HChi.cjs.map +1 -0
- package/dist/FiledisplayWidget-CqM549A4.js +114 -0
- package/dist/FiledisplayWidget-CqM549A4.js.map +1 -0
- package/dist/{FormatvalueWidget-4C0vrL2i.js → FormatvalueWidget-BEwH0C7S.js} +4 -4
- package/dist/{FormatvalueWidget-4C0vrL2i.js.map → FormatvalueWidget-BEwH0C7S.js.map} +1 -1
- package/dist/{FormatvalueWidget-CVoJgFJA.cjs → FormatvalueWidget-CpsyYKXD.cjs} +2 -2
- package/dist/{FormatvalueWidget-CVoJgFJA.cjs.map → FormatvalueWidget-CpsyYKXD.cjs.map} +1 -1
- package/dist/{Graph-B7KPo9Ul.js → Graph-CbjlChwf.js} +93 -82
- package/dist/Graph-CbjlChwf.js.map +1 -0
- package/dist/Graph-kmTrth08.cjs +2 -0
- package/dist/Graph-kmTrth08.cjs.map +1 -0
- package/dist/{GraphWidget-BpkPpAbd.js → GraphWidget-CjxnC0Dc.js} +2 -2
- package/dist/{GraphWidget-BpkPpAbd.js.map → GraphWidget-CjxnC0Dc.js.map} +1 -1
- package/dist/{GraphWidget-D3HueIZi.cjs → GraphWidget-SamHg2AA.cjs} +2 -2
- package/dist/{GraphWidget-D3HueIZi.cjs.map → GraphWidget-SamHg2AA.cjs.map} +1 -1
- package/dist/HorizontalWidget-ByZjU21C.cjs +2 -0
- package/dist/HorizontalWidget-ByZjU21C.cjs.map +1 -0
- package/dist/HorizontalWidget-Dt8bkM3k.js +69 -0
- package/dist/HorizontalWidget-Dt8bkM3k.js.map +1 -0
- package/dist/{HorizontalboxWidget-CTomf_Iy.js → HorizontalboxWidget-CdAZ5Sa6.js} +6 -6
- package/dist/{HorizontalboxWidget-CTomf_Iy.js.map → HorizontalboxWidget-CdAZ5Sa6.js.map} +1 -1
- package/dist/{HorizontalboxWidget-ysq7slso.cjs → HorizontalboxWidget-DzYz5SXs.cjs} +2 -2
- package/dist/{HorizontalboxWidget-ysq7slso.cjs.map → HorizontalboxWidget-DzYz5SXs.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-BgXZZymr.cjs → HorizontallineWidget-C8Zhqxik.cjs} +2 -2
- package/dist/{HorizontallineWidget-BgXZZymr.cjs.map → HorizontallineWidget-C8Zhqxik.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-B7xx7ofY.js → HorizontallineWidget-CXZJTeU2.js} +3 -3
- package/dist/{HorizontallineWidget-B7xx7ofY.js.map → HorizontallineWidget-CXZJTeU2.js.map} +1 -1
- package/dist/{IframeWidget-fV9e-Nm1.cjs → IframeWidget-BuNXXziR.cjs} +2 -2
- package/dist/{IframeWidget-fV9e-Nm1.cjs.map → IframeWidget-BuNXXziR.cjs.map} +1 -1
- package/dist/{IframeWidget-DK7rbULe.js → IframeWidget-CrcWiAVE.js} +3 -3
- package/dist/{IframeWidget-DK7rbULe.js.map → IframeWidget-CrcWiAVE.js.map} +1 -1
- package/dist/{ImageLoader-CJxiBXAL.cjs → ImageLoader-130w4tXJ.cjs} +2 -2
- package/dist/{ImageLoader-CJxiBXAL.cjs.map → ImageLoader-130w4tXJ.cjs.map} +1 -1
- package/dist/{ImageLoader-C9rN_pSY.js → ImageLoader-DPqax8yu.js} +2 -2
- package/dist/{ImageLoader-C9rN_pSY.js.map → ImageLoader-DPqax8yu.js.map} +1 -1
- package/dist/{ImageviewerWidget-6d6Kl3W_.js → ImageviewerWidget-CTEl6iPg.js} +10 -9
- package/dist/ImageviewerWidget-CTEl6iPg.js.map +1 -0
- package/dist/ImageviewerWidget-CafLbLp2.cjs +2 -0
- package/dist/ImageviewerWidget-CafLbLp2.cjs.map +1 -0
- package/dist/{InterfacesTab-BCqTanhV.js → InterfacesTab-B9ApLB5q.js} +4 -4
- package/dist/{InterfacesTab-BCqTanhV.js.map → InterfacesTab-B9ApLB5q.js.map} +1 -1
- package/dist/{InterfacesTab-0pmK3KNu.cjs → InterfacesTab-wPQSLcSj.cjs} +2 -2
- package/dist/{InterfacesTab-0pmK3KNu.cjs.map → InterfacesTab-wPQSLcSj.cjs.map} +1 -1
- package/dist/{LabelWidget-DdZz2NWv.cjs → LabelWidget-BfBP3Xme.cjs} +2 -2
- package/dist/{LabelWidget-DdZz2NWv.cjs.map → LabelWidget-BfBP3Xme.cjs.map} +1 -1
- package/dist/{LabelWidget-D71FfOSw.js → LabelWidget-CPqKGMx0.js} +3 -3
- package/dist/{LabelWidget-D71FfOSw.js.map → LabelWidget-CPqKGMx0.js.map} +1 -1
- package/dist/{LabelledWidget-D2ir5kVU.js → LabelledWidget-BHYzRMFd.js} +6 -6
- package/dist/{LabelledWidget-D2ir5kVU.js.map → LabelledWidget-BHYzRMFd.js.map} +1 -1
- package/dist/{LabelledWidget-BZ319slb.cjs → LabelledWidget-CZvKfFNW.cjs} +2 -2
- package/dist/{LabelledWidget-BZ319slb.cjs.map → LabelledWidget-CZvKfFNW.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-LyevJNuz.cjs → LabelprogressbarWidget-Bv0G5oT3.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-LyevJNuz.cjs.map → LabelprogressbarWidget-Bv0G5oT3.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-C4_YbROz.js → LabelprogressbarWidget-D9deeUo7.js} +6 -6
- package/dist/{LabelprogressbarWidget-C4_YbROz.js.map → LabelprogressbarWidget-D9deeUo7.js.map} +1 -1
- package/dist/{LabelsparklineWidget-CdZ_pM2B.js → LabelsparklineWidget-7mYre3CP.js} +13 -13
- package/dist/LabelsparklineWidget-7mYre3CP.js.map +1 -0
- package/dist/LabelsparklineWidget-dyqEroDN.cjs +2 -0
- package/dist/LabelsparklineWidget-dyqEroDN.cjs.map +1 -0
- package/dist/{LabelvalueWidget-DSHwAKma.cjs → LabelvalueWidget-Bsl7Z3wM.cjs} +2 -2
- package/dist/{LabelvalueWidget-DSHwAKma.cjs.map → LabelvalueWidget-Bsl7Z3wM.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-BS0EPY5h.js → LabelvalueWidget-NLsD60n4.js} +6 -6
- package/dist/{LabelvalueWidget-BS0EPY5h.js.map → LabelvalueWidget-NLsD60n4.js.map} +1 -1
- package/dist/{LabelvaluedescWidget-3lwQxkKj.cjs → LabelvaluedescWidget-B_Xih-c5.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-3lwQxkKj.cjs.map → LabelvaluedescWidget-B_Xih-c5.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-Cpr8_Voq.js → LabelvaluedescWidget-DXROG4Gs.js} +6 -6
- package/dist/{LabelvaluedescWidget-Cpr8_Voq.js.map → LabelvaluedescWidget-DXROG4Gs.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-DbO_Q5ex.cjs → LabelvaluelimitsbarWidget-DDd0RIs5.cjs} +2 -2
- package/dist/LabelvaluelimitsbarWidget-DDd0RIs5.cjs.map +1 -0
- package/dist/{LabelvaluelimitsbarWidget-DTcYbEQS.js → LabelvaluelimitsbarWidget-DqVqHF4W.js} +10 -10
- package/dist/LabelvaluelimitsbarWidget-DqVqHF4W.js.map +1 -0
- package/dist/{LabelvaluelimitscolumnWidget-D0ltQ9Ta.js → LabelvaluelimitscolumnWidget-BK6_31pC.js} +12 -12
- package/dist/LabelvaluelimitscolumnWidget-BK6_31pC.js.map +1 -0
- package/dist/LabelvaluelimitscolumnWidget-C1aqkXh5.cjs +2 -0
- package/dist/LabelvaluelimitscolumnWidget-C1aqkXh5.cjs.map +1 -0
- package/dist/{LabelvaluerangebarWidget-O8IHjvHs.js → LabelvaluerangebarWidget-DR7C8gqw.js} +6 -6
- package/dist/{LabelvaluerangebarWidget-O8IHjvHs.js.map → LabelvaluerangebarWidget-DR7C8gqw.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-B6_alHq4.cjs → LabelvaluerangebarWidget-a8u5LXBD.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-B6_alHq4.cjs.map → LabelvaluerangebarWidget-a8u5LXBD.cjs.map} +1 -1
- package/dist/Layout-B_Hgw3gd.js +36 -0
- package/dist/Layout-B_Hgw3gd.js.map +1 -0
- package/dist/Layout-CVGghwYm.cjs +2 -0
- package/dist/Layout-CVGghwYm.cjs.map +1 -0
- package/dist/{LedWidget-DUvJ2v8k.js → LedWidget-CiAVs2tj.js} +46 -39
- package/dist/LedWidget-CiAVs2tj.js.map +1 -0
- package/dist/LedWidget-Cmy47xfg.cjs +2 -0
- package/dist/LedWidget-Cmy47xfg.cjs.map +1 -0
- package/dist/LimitsBar-DTtMywOw.cjs +2 -0
- package/dist/LimitsBar-DTtMywOw.cjs.map +1 -0
- package/dist/LimitsBar-_UQG-M6e.js +134 -0
- package/dist/LimitsBar-_UQG-M6e.js.map +1 -0
- package/dist/LimitsbarWidget-CIwcOhC8.js +65 -0
- package/dist/LimitsbarWidget-CIwcOhC8.js.map +1 -0
- package/dist/LimitsbarWidget-CYm_f1FN.cjs +2 -0
- package/dist/LimitsbarWidget-CYm_f1FN.cjs.map +1 -0
- package/dist/{LimitscolorWidget-FXT0ZPPH.js → LimitscolorWidget-CGPfJwvT.js} +14 -13
- package/dist/LimitscolorWidget-CGPfJwvT.js.map +1 -0
- package/dist/LimitscolorWidget-oH6NGl1C.cjs +2 -0
- package/dist/LimitscolorWidget-oH6NGl1C.cjs.map +1 -0
- package/dist/{LimitscolumnWidget-CjBy-CCI.js → LimitscolumnWidget-Bj_UPEC8.js} +3 -3
- package/dist/{LimitscolumnWidget-CjBy-CCI.js.map → LimitscolumnWidget-Bj_UPEC8.js.map} +1 -1
- package/dist/{LimitscolumnWidget-C5yozwf0.cjs → LimitscolumnWidget-CnGOCckG.cjs} +2 -2
- package/dist/{LimitscolumnWidget-C5yozwf0.cjs.map → LimitscolumnWidget-CnGOCckG.cjs.map} +1 -1
- package/dist/{LinegraphWidget-lmu_tFKd.js → LinegraphWidget-DccnHbWa.js} +5 -5
- package/dist/{LinegraphWidget-lmu_tFKd.js.map → LinegraphWidget-DccnHbWa.js.map} +1 -1
- package/dist/{LinegraphWidget-dO_B0T3E.cjs → LinegraphWidget-zHs3NG-6.cjs} +2 -2
- package/dist/{LinegraphWidget-dO_B0T3E.cjs.map → LinegraphWidget-zHs3NG-6.cjs.map} +1 -1
- package/dist/MatrixbycolumnsWidget-Dd-udu5V.cjs +2 -0
- package/dist/MatrixbycolumnsWidget-Dd-udu5V.cjs.map +1 -0
- package/dist/MatrixbycolumnsWidget-U_NZ6aW-.js +83 -0
- package/dist/MatrixbycolumnsWidget-U_NZ6aW-.js.map +1 -0
- package/dist/MicroservicesTab-DG3rdksb.js +203 -0
- package/dist/MicroservicesTab-DG3rdksb.js.map +1 -0
- package/dist/MicroservicesTab-DXgSxZ0K.cjs +2 -0
- package/dist/MicroservicesTab-DXgSxZ0K.cjs.map +1 -0
- package/dist/{Openc3Screen-DcIIUO63.js → Openc3Screen-CDwAWaTl.js} +56 -34
- package/dist/Openc3Screen-CDwAWaTl.js.map +1 -0
- package/dist/{Openc3Screen-CzD9BB0M.cjs → Openc3Screen-CKs-49JN.cjs} +5 -5
- package/dist/Openc3Screen-CKs-49JN.cjs.map +1 -0
- package/dist/OutputDialog-D2YCbR20.cjs +2 -0
- package/dist/OutputDialog-D2YCbR20.cjs.map +1 -0
- package/dist/{OutputDialog-CNH74LpJ.js → OutputDialog-Di-pSmJE.js} +24 -17
- package/dist/OutputDialog-Di-pSmJE.js.map +1 -0
- package/dist/{PackagesTab-BE6W7Aru.js → PackagesTab-Bui5q3rX.js} +4 -4
- package/dist/{PackagesTab-BE6W7Aru.js.map → PackagesTab-Bui5q3rX.js.map} +1 -1
- package/dist/{PackagesTab-PEPT4CQu.cjs → PackagesTab-C-fV9yxw.cjs} +2 -2
- package/dist/{PackagesTab-PEPT4CQu.cjs.map → PackagesTab-C-fV9yxw.cjs.map} +1 -1
- package/dist/{PluginsTab-DXf9zX0h.cjs → PluginsTab-DxxlKeVx.cjs} +2 -2
- package/dist/PluginsTab-DxxlKeVx.cjs.map +1 -0
- package/dist/{PluginsTab-B_Pf2A9c.js → PluginsTab-zR9eZuvc.js} +8 -8
- package/dist/PluginsTab-zR9eZuvc.js.map +1 -0
- package/dist/ProgressbarWidget-Cxvwcfgn.cjs +2 -0
- package/dist/ProgressbarWidget-Cxvwcfgn.cjs.map +1 -0
- package/dist/{ProgressbarWidget-B5WN658S.js → ProgressbarWidget-D4JtVzyk.js} +7 -5
- package/dist/ProgressbarWidget-D4JtVzyk.js.map +1 -0
- package/dist/{RadiobuttonWidget-B_3nys46.js → RadiobuttonWidget-BUaW7pRx.js} +11 -10
- package/dist/{RadiobuttonWidget-B_3nys46.js.map → RadiobuttonWidget-BUaW7pRx.js.map} +1 -1
- package/dist/RadiobuttonWidget-Ccgftl13.cjs +2 -0
- package/dist/{RadiobuttonWidget-DkG9GtAy.cjs.map → RadiobuttonWidget-Ccgftl13.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-BnUjXU28.cjs → RadiogroupWidget-CSxjpxCr.cjs} +2 -2
- package/dist/{RadiogroupWidget-BnUjXU28.cjs.map → RadiogroupWidget-CSxjpxCr.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-BiMIL9li.js → RadiogroupWidget-NIv4CaUQ.js} +6 -6
- package/dist/{RadiogroupWidget-BiMIL9li.js.map → RadiogroupWidget-NIv4CaUQ.js.map} +1 -1
- package/dist/{RangebarWidget-Dn0GASdi.js → RangebarWidget-1-CsFpcl.js} +12 -11
- package/dist/RangebarWidget-1-CsFpcl.js.map +1 -0
- package/dist/RangebarWidget-BtxfPo-U.cjs +2 -0
- package/dist/RangebarWidget-BtxfPo-U.cjs.map +1 -0
- package/dist/{RedisTab-C1yaDRSt.cjs → RedisTab-DOozcC9a.cjs} +2 -2
- package/dist/{RedisTab-C1yaDRSt.cjs.map → RedisTab-DOozcC9a.cjs.map} +1 -1
- package/dist/{RedisTab-BsKrL4fD.js → RedisTab-DuO-zUV3.js} +3 -3
- package/dist/{RedisTab-BsKrL4fD.js.map → RedisTab-DuO-zUV3.js.map} +1 -1
- package/dist/RollupWidget-CQxl1mlr.cjs +2 -0
- package/dist/RollupWidget-CQxl1mlr.cjs.map +1 -0
- package/dist/{RollupWidget-b62qcG5K.js → RollupWidget-ChasTJYP.js} +15 -13
- package/dist/RollupWidget-ChasTJYP.js.map +1 -0
- package/dist/{RoutersTab-EHz4wDCn.js → RoutersTab-C0UHSj-S.js} +4 -4
- package/dist/{RoutersTab-EHz4wDCn.js.map → RoutersTab-C0UHSj-S.js.map} +1 -1
- package/dist/{RoutersTab-8wGbiPCk.cjs → RoutersTab-DgWAXGUv.cjs} +2 -2
- package/dist/{RoutersTab-8wGbiPCk.cjs.map → RoutersTab-DgWAXGUv.cjs.map} +1 -1
- package/dist/{ScriptChooser-DMPY3m8a.js → ScriptChooser-C5HHbbcP.js} +118 -93
- package/dist/ScriptChooser-C5HHbbcP.js.map +1 -0
- package/dist/ScriptChooser-D1dddugi.cjs +2 -0
- package/dist/ScriptChooser-D1dddugi.cjs.map +1 -0
- package/dist/ScrollwindowWidget-Bkyjw0Qt.cjs +2 -0
- package/dist/ScrollwindowWidget-Bkyjw0Qt.cjs.map +1 -0
- package/dist/ScrollwindowWidget-Y2J758y6.js +69 -0
- package/dist/ScrollwindowWidget-Y2J758y6.js.map +1 -0
- package/dist/{SecretsTab-DSMFodJM.cjs → SecretsTab-Ds3kGOmd.cjs} +2 -2
- package/dist/{SecretsTab-DSMFodJM.cjs.map → SecretsTab-Ds3kGOmd.cjs.map} +1 -1
- package/dist/{SecretsTab-Cbt_r-1I.js → SecretsTab-c5g8Zk4g.js} +3 -3
- package/dist/{SecretsTab-Cbt_r-1I.js.map → SecretsTab-c5g8Zk4g.js.map} +1 -1
- package/dist/{SettingsTab-L5xbCAW_.js → SettingsTab-CTd3_Ipy.js} +74 -70
- package/dist/SettingsTab-CTd3_Ipy.js.map +1 -0
- package/dist/SettingsTab-DMPRJELP.cjs +3 -0
- package/dist/SettingsTab-DMPRJELP.cjs.map +1 -0
- package/dist/SignalWidget-BkTXZpGV.cjs +2 -0
- package/dist/SignalWidget-BkTXZpGV.cjs.map +1 -0
- package/dist/{SignalWidget-CLi6qask.js → SignalWidget-DFhHDicI.js} +5 -3
- package/dist/SignalWidget-DFhHDicI.js.map +1 -0
- package/dist/{SimpleTextDialog-8vDPDt6X.js → SimpleTextDialog-CXIEKlX0.js} +26 -19
- package/dist/SimpleTextDialog-CXIEKlX0.js.map +1 -0
- package/dist/SimpleTextDialog-Dv5ypyUQ.cjs +2 -0
- package/dist/SimpleTextDialog-Dv5ypyUQ.cjs.map +1 -0
- package/dist/{SpacerWidget-BCA3gdap.js → SpacerWidget-D4KojaGb.js} +3 -3
- package/dist/{SpacerWidget-BCA3gdap.js.map → SpacerWidget-D4KojaGb.js.map} +1 -1
- package/dist/{SpacerWidget-BJpqoaeP.cjs → SpacerWidget-HsSCc07C.cjs} +2 -2
- package/dist/{SpacerWidget-BJpqoaeP.cjs.map → SpacerWidget-HsSCc07C.cjs.map} +1 -1
- package/dist/SparklineWidget-BdRM-ymk.cjs +2 -0
- package/dist/SparklineWidget-BdRM-ymk.cjs.map +1 -0
- package/dist/{SparklineWidget-D8mb4zLt.js → SparklineWidget-DMHFzw8L.js} +11 -11
- package/dist/SparklineWidget-DMHFzw8L.js.map +1 -0
- package/dist/TabbookWidget-NVLYMdFG.js +96 -0
- package/dist/TabbookWidget-NVLYMdFG.js.map +1 -0
- package/dist/TabbookWidget-NmIK-Lgf.cjs +2 -0
- package/dist/TabbookWidget-NmIK-Lgf.cjs.map +1 -0
- package/dist/TargetPacketItemChooser-B0IVMSib.cjs +2 -0
- package/dist/TargetPacketItemChooser-B0IVMSib.cjs.map +1 -0
- package/dist/{TargetPacketItemChooser-DGcXvdTX.js → TargetPacketItemChooser-D5h9Octy.js} +83 -67
- package/dist/TargetPacketItemChooser-D5h9Octy.js.map +1 -0
- package/dist/{TargetsTab-C4tQ1auc.cjs → TargetsTab-JLjpJ1wn.cjs} +2 -2
- package/dist/{TargetsTab-C4tQ1auc.cjs.map → TargetsTab-JLjpJ1wn.cjs.map} +1 -1
- package/dist/{TargetsTab-c-qMsGHh.js → TargetsTab-b35HgnRl.js} +4 -4
- package/dist/{TargetsTab-c-qMsGHh.js.map → TargetsTab-b35HgnRl.js.map} +1 -1
- package/dist/{TextBoxDialog-Xs-gitZd.js → TextBoxDialog-CJHrE2Sh.js} +29 -22
- package/dist/TextBoxDialog-CJHrE2Sh.js.map +1 -0
- package/dist/TextBoxDialog-DzCvdsJj.cjs +2 -0
- package/dist/TextBoxDialog-DzCvdsJj.cjs.map +1 -0
- package/dist/{TextboxWidget-CR05wO-t.js → TextboxWidget-CrMYPQIF.js} +19 -19
- package/dist/{TextboxWidget-CR05wO-t.js.map → TextboxWidget-CrMYPQIF.js.map} +1 -1
- package/dist/{TextboxWidget-BcRfHcF6.cjs → TextboxWidget-xk3OFSUZ.cjs} +2 -2
- package/dist/{TextboxWidget-BcRfHcF6.cjs.map → TextboxWidget-xk3OFSUZ.cjs.map} +1 -1
- package/dist/{TextfieldWidget-Be_Pz2bF.js → TextfieldWidget-DMBQwtnb.js} +5 -5
- package/dist/{TextfieldWidget-Be_Pz2bF.js.map → TextfieldWidget-DMBQwtnb.js.map} +1 -1
- package/dist/{TextfieldWidget-Ct1hZr2M.cjs → TextfieldWidget-DnnKM6vS.cjs} +2 -2
- package/dist/{TextfieldWidget-Ct1hZr2M.cjs.map → TextfieldWidget-DnnKM6vS.cjs.map} +1 -1
- package/dist/{TimeWidget-Dy8zpkC6.js → TimeWidget-CWLJZ2bt.js} +3 -3
- package/dist/{TimeWidget-Dy8zpkC6.js.map → TimeWidget-CWLJZ2bt.js.map} +1 -1
- package/dist/{TimeWidget-3M7CQ893.cjs → TimeWidget-W-flXfLb.cjs} +2 -2
- package/dist/{TimeWidget-3M7CQ893.cjs.map → TimeWidget-W-flXfLb.cjs.map} +1 -1
- package/dist/{TitleWidget-C1qzja9l.cjs → TitleWidget-CfFyUkSu.cjs} +2 -2
- package/dist/{TitleWidget-C1qzja9l.cjs.map → TitleWidget-CfFyUkSu.cjs.map} +1 -1
- package/dist/{TitleWidget-BcmxUDzM.js → TitleWidget-V1FGI8l3.js} +3 -3
- package/dist/{TitleWidget-BcmxUDzM.js.map → TitleWidget-V1FGI8l3.js.map} +1 -1
- package/dist/{ToolsTab-Buklih4C.js → ToolsTab-7qOQPnN3.js} +4 -4
- package/dist/{ToolsTab-Buklih4C.js.map → ToolsTab-7qOQPnN3.js.map} +1 -1
- package/dist/{ToolsTab-CbY2K86w.cjs → ToolsTab-jUNdj09m.cjs} +2 -2
- package/dist/{ToolsTab-CbY2K86w.cjs.map → ToolsTab-jUNdj09m.cjs.map} +1 -1
- package/dist/{TopBar-D4C9DJcu.js → TopBar-BkwvK0oj.js} +3 -3
- package/dist/{TopBar-D4C9DJcu.js.map → TopBar-BkwvK0oj.js.map} +1 -1
- package/dist/{TopBar-HxaiWynT.cjs → TopBar-DdOFDiCo.cjs} +2 -2
- package/dist/{TopBar-HxaiWynT.cjs.map → TopBar-DdOFDiCo.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-D0AGxldj.js → UpgradeToEnterpriseDialog-CEUcvlkx.js} +16 -13
- package/dist/UpgradeToEnterpriseDialog-CEUcvlkx.js.map +1 -0
- package/dist/UpgradeToEnterpriseDialog-CP-jJxU4.cjs +2 -0
- package/dist/UpgradeToEnterpriseDialog-CP-jJxU4.cjs.map +1 -0
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CP8T5W6m.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs} +77 -77
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CP8T5W6m.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B8ikVCn7.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js} +5 -5
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B8ikVCn7.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js.map} +1 -1
- package/dist/{VWidget-DhGLFGS2.cjs → VWidget-BJArPtqI.cjs} +2 -2
- package/dist/{VWidget-DhGLFGS2.cjs.map → VWidget-BJArPtqI.cjs.map} +1 -1
- package/dist/{VWidget-CBmUpKSV.js → VWidget-rAFU-0vj.js} +3 -3
- package/dist/{VWidget-CBmUpKSV.js.map → VWidget-rAFU-0vj.js.map} +1 -1
- package/dist/ValueWidget-BI3uXmda.js +138 -0
- package/dist/ValueWidget-BI3uXmda.js.map +1 -0
- package/dist/ValueWidget-CwuH7beM.cjs +2 -0
- package/dist/ValueWidget-CwuH7beM.cjs.map +1 -0
- package/dist/{ValuelimitsbarWidget-BdY02gqc.js → ValuelimitsbarWidget-BGSJLpw4.js} +11 -11
- package/dist/{ValuelimitsbarWidget-BdY02gqc.js.map → ValuelimitsbarWidget-BGSJLpw4.js.map} +1 -1
- package/dist/{ValuelimitsbarWidget-KsFz7ipK.cjs → ValuelimitsbarWidget-BSkGhA_y.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-KsFz7ipK.cjs.map → ValuelimitsbarWidget-BSkGhA_y.cjs.map} +1 -1
- package/dist/ValuelimitscolumnWidget-BXdPahDO.cjs +2 -0
- package/dist/ValuelimitscolumnWidget-BXdPahDO.cjs.map +1 -0
- package/dist/{ValuelimitscolumnWidget-CuJ6rqtC.js → ValuelimitscolumnWidget-CaNjHy4v.js} +11 -11
- package/dist/ValuelimitscolumnWidget-CaNjHy4v.js.map +1 -0
- package/dist/{ValuerangebarWidget-C5rolGDi.js → ValuerangebarWidget-Do40-aaL.js} +6 -6
- package/dist/{ValuerangebarWidget-C5rolGDi.js.map → ValuerangebarWidget-Do40-aaL.js.map} +1 -1
- package/dist/{ValuerangebarWidget-CDJeamPr.cjs → ValuerangebarWidget-DvWGqBNM.cjs} +2 -2
- package/dist/{ValuerangebarWidget-CDJeamPr.cjs.map → ValuerangebarWidget-DvWGqBNM.cjs.map} +1 -1
- package/dist/VerticalWidget-DZqghqIm.js +68 -0
- package/dist/VerticalWidget-DZqghqIm.js.map +1 -0
- package/dist/VerticalWidget-y238HI2A.cjs +2 -0
- package/dist/VerticalWidget-y238HI2A.cjs.map +1 -0
- package/dist/{VerticalboxWidget-D-3H1PYU.cjs → VerticalboxWidget--dgKnG5Z.cjs} +2 -2
- package/dist/{VerticalboxWidget-D-3H1PYU.cjs.map → VerticalboxWidget--dgKnG5Z.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-CzDgveBl.js → VerticalboxWidget-CQ__4FcS.js} +6 -6
- package/dist/{VerticalboxWidget-CzDgveBl.js.map → VerticalboxWidget-CQ__4FcS.js.map} +1 -1
- package/dist/{Widget-VCl8Ts8s.js → Widget-6-Nvewdp.js} +27 -19
- package/dist/Widget-6-Nvewdp.js.map +1 -0
- package/dist/Widget-DdxHKVWn.cjs +2 -0
- package/dist/Widget-DdxHKVWn.cjs.map +1 -0
- package/dist/components.cjs +3 -3
- package/dist/components.cjs.map +1 -1
- package/dist/components.js +96 -88
- package/dist/components.js.map +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.cjs.map +1 -1
- package/dist/icons.js +6 -4
- package/dist/icons.js.map +1 -1
- package/dist/plugins.cjs +2 -2
- package/dist/plugins.cjs.map +1 -1
- package/dist/plugins.js +23 -17
- package/dist/plugins.js.map +1 -1
- package/dist/{settings-sg_XHXQ-.cjs → settings-BCE3SW-9.cjs} +2 -2
- package/dist/{settings-sg_XHXQ-.cjs.map → settings-BCE3SW-9.cjs.map} +1 -1
- package/dist/{settings-DlX9yvJJ.js → settings-CHPWZcnU.js} +2 -2
- package/dist/{settings-DlX9yvJJ.js.map → settings-CHPWZcnU.js.map} +1 -1
- package/dist/tools/admin.cjs +1 -1
- package/dist/tools/admin.cjs.map +1 -1
- package/dist/tools/admin.js +72 -64
- package/dist/tools/admin.js.map +1 -1
- package/dist/tools/base.cjs +1 -1
- package/dist/tools/base.cjs.map +1 -1
- package/dist/tools/base.js +38 -37
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/calendar.cjs +1 -1
- package/dist/tools/calendar.js +1 -1
- package/dist/tools/scriptrunner.cjs +8 -8
- package/dist/tools/scriptrunner.cjs.map +1 -1
- package/dist/tools/scriptrunner.js +397 -339
- package/dist/tools/scriptrunner.js.map +1 -1
- package/dist/useContainerHeight-BAw05dIa.js.map +1 -1
- package/dist/useContainerHeight-BEd4f2Lr.cjs.map +1 -1
- package/dist/vue-common.css +1 -1
- package/dist/widgets.cjs +1 -1
- package/dist/widgets.js +118 -116
- package/dist/widgets.js.map +1 -1
- package/package.json +5 -5
- package/dist/BarColumn-BZSUr33b.cjs +0 -2
- package/dist/BarColumn-BZSUr33b.cjs.map +0 -1
- package/dist/BarColumn-XWs-3Cwb.js.map +0 -1
- package/dist/ButtonWidget-BBMDS_YF.cjs.map +0 -1
- package/dist/ButtonWidget-BaSvtElA.js.map +0 -1
- package/dist/CanvasimageWidget-Dk15uRRu.cjs +0 -2
- package/dist/CanvasimageWidget-Dk15uRRu.cjs.map +0 -1
- package/dist/CanvasimageWidget-YP1pCtvb.js.map +0 -1
- package/dist/CanvasimagevalueWidget-BQHjJCuq.cjs +0 -2
- package/dist/CanvasimagevalueWidget-BQHjJCuq.cjs.map +0 -1
- package/dist/CanvasimagevalueWidget-CjVHb2uj.js.map +0 -1
- package/dist/CanvaslabelvalueWidget-BYmsu9r_.cjs +0 -2
- package/dist/CanvaslabelvalueWidget-BYmsu9r_.cjs.map +0 -1
- package/dist/CanvaslabelvalueWidget-Dyo_ogHn.js.map +0 -1
- package/dist/CanvaslinevalueWidget-BOZyJuLE.js.map +0 -1
- package/dist/CanvaslinevalueWidget-DM5c-ciY.cjs +0 -2
- package/dist/CanvaslinevalueWidget-DM5c-ciY.cjs.map +0 -1
- package/dist/CheckbuttonWidget-BSvTWD3x.cjs +0 -2
- package/dist/ComboboxWidget-B_KAnIVB.cjs +0 -2
- package/dist/CriticalCmdDialog-BtzhxuZi.js.map +0 -1
- package/dist/CriticalCmdDialog-CeohXoAG.cjs +0 -2
- package/dist/CriticalCmdDialog-CeohXoAG.cjs.map +0 -1
- package/dist/CustomIcon-eie3rPKh.cjs +0 -2
- package/dist/DetailsDialog-Bc_VEG95.cjs +0 -2
- package/dist/DetailsDialog-Bc_VEG95.cjs.map +0 -1
- package/dist/DetailsDialog-Bq7SS7bc.js.map +0 -1
- package/dist/DynamicWidget-BNfJRfR5.cjs +0 -2
- package/dist/DynamicWidget-BNfJRfR5.cjs.map +0 -1
- package/dist/DynamicWidget-DHL7pbgW.js.map +0 -1
- package/dist/EventListDialog-Dycx70tY.cjs +0 -2
- package/dist/EventListDialog-Dycx70tY.cjs.map +0 -1
- package/dist/EventListDialog-jdNF3szO.js.map +0 -1
- package/dist/Graph-B7KPo9Ul.js.map +0 -1
- package/dist/Graph-C9FS6KR3.cjs +0 -2
- package/dist/Graph-C9FS6KR3.cjs.map +0 -1
- package/dist/HorizontalWidget-CN6goWHY.cjs +0 -2
- package/dist/HorizontalWidget-CN6goWHY.cjs.map +0 -1
- package/dist/HorizontalWidget-DbEQYjFC.js +0 -41
- package/dist/HorizontalWidget-DbEQYjFC.js.map +0 -1
- package/dist/ImageviewerWidget-6d6Kl3W_.js.map +0 -1
- package/dist/ImageviewerWidget-CULuNsiD.cjs +0 -2
- package/dist/ImageviewerWidget-CULuNsiD.cjs.map +0 -1
- package/dist/LabelsparklineWidget-Cbug97Ne.cjs +0 -2
- package/dist/LabelsparklineWidget-Cbug97Ne.cjs.map +0 -1
- package/dist/LabelsparklineWidget-CdZ_pM2B.js.map +0 -1
- package/dist/LabelvaluelimitsbarWidget-DTcYbEQS.js.map +0 -1
- package/dist/LabelvaluelimitsbarWidget-DbO_Q5ex.cjs.map +0 -1
- package/dist/LabelvaluelimitscolumnWidget-BMSwK1Ys.cjs +0 -2
- package/dist/LabelvaluelimitscolumnWidget-BMSwK1Ys.cjs.map +0 -1
- package/dist/LabelvaluelimitscolumnWidget-D0ltQ9Ta.js.map +0 -1
- package/dist/Layout-DDewLzbI.cjs +0 -2
- package/dist/Layout-DDewLzbI.cjs.map +0 -1
- package/dist/Layout-DW5yNlp7.js +0 -14
- package/dist/Layout-DW5yNlp7.js.map +0 -1
- package/dist/LedWidget-Cif7vC7q.cjs +0 -2
- package/dist/LedWidget-Cif7vC7q.cjs.map +0 -1
- package/dist/LedWidget-DUvJ2v8k.js.map +0 -1
- package/dist/LimitsbarWidget-BehZv0-k.js +0 -72
- package/dist/LimitsbarWidget-BehZv0-k.js.map +0 -1
- package/dist/LimitsbarWidget-BodNPbuH.cjs +0 -2
- package/dist/LimitsbarWidget-BodNPbuH.cjs.map +0 -1
- package/dist/LimitscolorWidget-DPhymKgB.cjs +0 -2
- package/dist/LimitscolorWidget-DPhymKgB.cjs.map +0 -1
- package/dist/LimitscolorWidget-FXT0ZPPH.js.map +0 -1
- package/dist/MatrixbycolumnsWidget-BLkwvpMk.cjs +0 -2
- package/dist/MatrixbycolumnsWidget-BLkwvpMk.cjs.map +0 -1
- package/dist/MatrixbycolumnsWidget-CCF7rCkV.js +0 -56
- package/dist/MatrixbycolumnsWidget-CCF7rCkV.js.map +0 -1
- package/dist/MicroservicesTab-rxOATXLO.js +0 -219
- package/dist/MicroservicesTab-rxOATXLO.js.map +0 -1
- package/dist/MicroservicesTab-uesXuuM4.cjs +0 -2
- package/dist/MicroservicesTab-uesXuuM4.cjs.map +0 -1
- package/dist/Openc3Screen-CzD9BB0M.cjs.map +0 -1
- package/dist/Openc3Screen-DcIIUO63.js.map +0 -1
- package/dist/OutputDialog-CNH74LpJ.js.map +0 -1
- package/dist/OutputDialog-QIabyvK1.cjs +0 -2
- package/dist/OutputDialog-QIabyvK1.cjs.map +0 -1
- package/dist/PluginsTab-B_Pf2A9c.js.map +0 -1
- package/dist/PluginsTab-DXf9zX0h.cjs.map +0 -1
- package/dist/ProgressbarWidget-B5WN658S.js.map +0 -1
- package/dist/ProgressbarWidget-D2NHSJny.cjs +0 -2
- package/dist/ProgressbarWidget-D2NHSJny.cjs.map +0 -1
- package/dist/RadiobuttonWidget-DkG9GtAy.cjs +0 -2
- package/dist/RangebarWidget-CJgtAk5z.cjs +0 -2
- package/dist/RangebarWidget-CJgtAk5z.cjs.map +0 -1
- package/dist/RangebarWidget-Dn0GASdi.js.map +0 -1
- package/dist/RollupWidget-B2pGGoET.cjs +0 -2
- package/dist/RollupWidget-B2pGGoET.cjs.map +0 -1
- package/dist/RollupWidget-b62qcG5K.js.map +0 -1
- package/dist/ScriptChooser-CtV7dDJS.cjs +0 -2
- package/dist/ScriptChooser-CtV7dDJS.cjs.map +0 -1
- package/dist/ScriptChooser-DMPY3m8a.js.map +0 -1
- package/dist/ScrollwindowWidget-ByJRy528.cjs +0 -2
- package/dist/ScrollwindowWidget-ByJRy528.cjs.map +0 -1
- package/dist/ScrollwindowWidget-Dn29gs-U.js +0 -45
- package/dist/ScrollwindowWidget-Dn29gs-U.js.map +0 -1
- package/dist/SettingsTab-8Zeg3G0C.cjs +0 -3
- package/dist/SettingsTab-8Zeg3G0C.cjs.map +0 -1
- package/dist/SettingsTab-L5xbCAW_.js.map +0 -1
- package/dist/SignalWidget-CEmQymzQ.cjs +0 -2
- package/dist/SignalWidget-CEmQymzQ.cjs.map +0 -1
- package/dist/SignalWidget-CLi6qask.js.map +0 -1
- package/dist/SimpleTextDialog-8vDPDt6X.js.map +0 -1
- package/dist/SimpleTextDialog-CJ8pLBGz.cjs +0 -2
- package/dist/SimpleTextDialog-CJ8pLBGz.cjs.map +0 -1
- package/dist/SparklineWidget-CIkMm4O-.cjs +0 -2
- package/dist/SparklineWidget-CIkMm4O-.cjs.map +0 -1
- package/dist/SparklineWidget-D8mb4zLt.js.map +0 -1
- package/dist/TabbookWidget-Bkt4g02d.js +0 -66
- package/dist/TabbookWidget-Bkt4g02d.js.map +0 -1
- package/dist/TabbookWidget-DqcScWwW.cjs +0 -2
- package/dist/TabbookWidget-DqcScWwW.cjs.map +0 -1
- package/dist/TargetPacketItemChooser-Cm6mQvhI.cjs +0 -2
- package/dist/TargetPacketItemChooser-Cm6mQvhI.cjs.map +0 -1
- package/dist/TargetPacketItemChooser-DGcXvdTX.js.map +0 -1
- package/dist/TextBoxDialog-DXG7H7kQ.cjs +0 -2
- package/dist/TextBoxDialog-DXG7H7kQ.cjs.map +0 -1
- package/dist/TextBoxDialog-Xs-gitZd.js.map +0 -1
- package/dist/UpgradeToEnterpriseDialog-D0AGxldj.js.map +0 -1
- package/dist/UpgradeToEnterpriseDialog-D8BkzmVD.cjs +0 -2
- package/dist/UpgradeToEnterpriseDialog-D8BkzmVD.cjs.map +0 -1
- package/dist/ValueWidget-BxWrHkYY.js +0 -118
- package/dist/ValueWidget-BxWrHkYY.js.map +0 -1
- package/dist/ValueWidget-yuZ8tPzG.cjs +0 -2
- package/dist/ValueWidget-yuZ8tPzG.cjs.map +0 -1
- package/dist/ValuelimitscolumnWidget-B0HGnyS5.cjs +0 -2
- package/dist/ValuelimitscolumnWidget-B0HGnyS5.cjs.map +0 -1
- package/dist/ValuelimitscolumnWidget-CuJ6rqtC.js.map +0 -1
- package/dist/VerticalWidget-DsnEzKZ2.js +0 -40
- package/dist/VerticalWidget-DsnEzKZ2.js.map +0 -1
- package/dist/VerticalWidget-wuRCrd7Q.cjs +0 -2
- package/dist/VerticalWidget-wuRCrd7Q.cjs.map +0 -1
- package/dist/Widget-CKianvfR.cjs +0 -2
- package/dist/Widget-CKianvfR.cjs.map +0 -1
- package/dist/Widget-VCl8Ts8s.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs"),k=require("./Widget-DdxHKVWn.cjs"),e=require("vue"),C=require("./CustomIcon-CEc927h0.cjs"),v={mixins:[k.Widget],data(){return{files:[],loading:!1}},computed:{match(){if(this.files.some(t=>t.error))return!1;if(this.files.some(t=>!t.checksum))return null;const o=this.files[0].checksum;return this.files.every(t=>t.checksum===o)},matchStatus(){return{null:{icon:"$info",color:"grey",text:"Comparing..."},true:{icon:"$success",color:"success",text:"Checksums Match"},false:{icon:"$error",color:"error",text:this.files.some(t=>t.error)?"Error loading file(s)":"Checksums Do Not Match"}}[this.match]}},created(){this.files=this.parameters.filter(o=>o).map(o=>({path:o,checksum:null,error:null,copied:!1}))},mounted(){this.files.length&&this.fetchChecksums()},methods:{getDisplayText(o){return o.error?`Error: ${o.error}`:o.checksum?o.checksum:this.loading?"Loading...":"Not loaded"},async computeChecksum(o){const c=new TextEncoder().encode(o),r=await crypto.subtle.digest("SHA-256",c);return Array.from(new Uint8Array(r)).map(n=>n.toString(16).padStart(2,"0")).join("")},async fetchFile(o){var s;const t=window.openc3Scope||"DEFAULT";let c=`${t}/targets_modified/${o}`,r=await m.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(c)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"},headers:{"Ignore-Errors":"404,500"}}).catch(()=>null);if((!r||r.status===404)&&(c=`${t}/targets/${o}`,r=await m.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(c)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"}})),(s=r==null?void 0:r.data)!=null&&s.contents)return atob(r.data.contents);throw new Error("File not found")},async copyChecksum(o){if(o.checksum)try{await navigator.clipboard.writeText(o.checksum),o.copied=!0,setTimeout(()=>o.copied=!1,2e3)}catch(t){console.error("Failed to copy checksum:",t)}},async fetchChecksums(){this.loading=!0,this.files.forEach(t=>{t.checksum=null,t.error=null}),(await Promise.all(this.files.map(t=>this.fetchFile(t.path).then(c=>this.computeChecksum(c)).catch(c=>({error:c.message||"File not found"}))))).forEach((t,c)=>{t!=null&&t.error?this.files[c].error=t.error:this.files[c].checksum=t}),this.loading=!1}}},y={class:"text-caption text-medium-emphasis font-weight-regular"},x={class:"text-caption text-medium-emphasis mb-2"},w={class:"ml-1 text-high-emphasis"},N={class:"flex-grow-1 overflow-wrap-anywhere"};function E(o,t,c,r,s,n){const h=e.resolveComponent("v-spacer"),i=e.resolveComponent("v-btn"),u=e.resolveComponent("v-card-title"),l=e.resolveComponent("v-divider"),p=e.resolveComponent("v-sheet"),_=e.resolveComponent("v-chip"),f=e.resolveComponent("v-card-text"),g=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(g,{style:e.normalizeStyle(o.computedStyle),"min-width":"400"},{default:e.withCtx(()=>[e.createVNode(u,{class:"d-flex align-center pa-2"},{default:e.withCtx(()=>[e.createElementVNode("span",y,e.toDisplayString(s.files.length===1?"File Checksum":"File Checksum Comparison"),1),e.createVNode(h),e.createVNode(i,{size:"x-small",icon:"mdi-refresh",variant:"text",loading:s.loading,onClick:n.fetchChecksums},null,8,["loading","onClick"])]),_:1}),e.createVNode(l),e.createVNode(f,{class:"pa-3"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.files,(a,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d},[e.createElementVNode("div",x,[e.createTextVNode(e.toDisplayString(s.files.length===1?"File:":`File ${d+1}:`)+" ",1),e.createElementVNode("span",w,e.toDisplayString(a.path),1)]),e.createVNode(p,{class:e.normalizeClass([a.error?"text-error":"","d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption"]),style:{"background-color":"rgba(128, 128, 128, 0.2)"}},{default:e.withCtx(()=>[e.createElementVNode("span",N,e.toDisplayString(n.getDisplayText(a)),1),e.createVNode(i,{icon:a.copied?"$success":"mdi-content-copy",color:a.copied?"success":void 0,disabled:!a.checksum,size:"x-small",variant:"plain",density:"compact",onClick:S=>n.copyChecksum(a)},null,8,["icon","color","disabled","onClick"])]),_:2},1032,["class"])],64))),128)),s.files.length>1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(l,{class:"mb-3"}),e.createVNode(_,{color:n.matchStatus.color,size:"small",variant:"tonal",label:"","prepend-icon":n.matchStatus.icon},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.matchStatus.text),1)]),_:1},8,["color","prepend-icon"])],64)):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["style"])}const b=C._export_sfc(v,[["render",E],["__scopeId","data-v-7cb83af3"]]);exports.default=b;
|
|
2
|
+
//# sourceMappingURL=FilechecksumWidget-Ddlm1UED.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilechecksumWidget-Ddlm1UED.cjs","sources":["../src/widgets/FilechecksumWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\" min-width=\"400\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ files.length === 1 ? 'File Checksum' : 'File Checksum Comparison' }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchChecksums\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-3\">\n <template v-for=\"(file, index) in files\" :key=\"index\">\n <div class=\"text-caption text-medium-emphasis mb-2\">\n {{ files.length === 1 ? 'File:' : `File ${index + 1}:` }}\n <span class=\"ml-1 text-high-emphasis\">{{ file.path }}</span>\n </div>\n <v-sheet\n :class=\"file.error ? 'text-error' : ''\"\n class=\"d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption\"\n style=\"background-color: rgba(128, 128, 128, 0.2)\"\n >\n <span class=\"flex-grow-1 overflow-wrap-anywhere\">\n {{ getDisplayText(file) }}\n </span>\n <v-btn\n :icon=\"file.copied ? '$success' : 'mdi-content-copy'\"\n :color=\"file.copied ? 'success' : undefined\"\n :disabled=\"!file.checksum\"\n size=\"x-small\"\n variant=\"plain\"\n density=\"compact\"\n @click=\"copyChecksum(file)\"\n />\n </v-sheet>\n </template>\n\n <template v-if=\"files.length > 1\">\n <v-divider class=\"mb-3\" />\n <v-chip\n :color=\"matchStatus.color\"\n size=\"small\"\n variant=\"tonal\"\n label\n :prepend-icon=\"matchStatus.icon\"\n >\n {{ matchStatus.text }}\n </v-chip>\n </template>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n files: [],\n loading: false,\n }\n },\n computed: {\n match() {\n if (this.files.some((f) => f.error)) return false\n if (this.files.some((f) => !f.checksum)) return null\n const first = this.files[0].checksum\n return this.files.every((f) => f.checksum === first)\n },\n matchStatus() {\n const states = {\n null: { icon: '$info', color: 'grey', text: 'Comparing...' },\n true: { icon: '$success', color: 'success', text: 'Checksums Match' },\n false: {\n icon: '$error',\n color: 'error',\n text: this.files.some((f) => f.error)\n ? 'Error loading file(s)'\n : 'Checksums Do Not Match',\n },\n }\n return states[this.match]\n },\n },\n created() {\n this.files = this.parameters\n .filter((p) => p)\n .map((path) => ({ path, checksum: null, error: null, copied: false }))\n },\n mounted() {\n if (this.files.length) {\n this.fetchChecksums()\n }\n },\n methods: {\n getDisplayText(file) {\n if (file.error) return `Error: ${file.error}`\n if (file.checksum) return file.checksum\n if (this.loading) return 'Loading...'\n return 'Not loaded'\n },\n async computeChecksum(content) {\n const encoder = new TextEncoder()\n const data = encoder.encode(content)\n const hashBuffer = await crypto.subtle.digest('SHA-256', data)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n },\n async fetchFile(filePath) {\n const scope = window.openc3Scope || 'DEFAULT'\n let objectPath = `${scope}/targets_modified/${filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n return atob(response.data.contents)\n }\n throw new Error('File not found')\n },\n async copyChecksum(file) {\n if (!file.checksum) return\n try {\n await navigator.clipboard.writeText(file.checksum)\n file.copied = true\n setTimeout(() => (file.copied = false), 2000)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Failed to copy checksum:', err)\n }\n },\n async fetchChecksums() {\n this.loading = true\n this.files.forEach((f) => {\n f.checksum = null\n f.error = null\n })\n\n const results = await Promise.all(\n this.files.map((file) =>\n this.fetchFile(file.path)\n .then((content) => this.computeChecksum(content))\n .catch((err) => ({ error: err.message || 'File not found' })),\n ),\n )\n\n results.forEach((result, i) => {\n if (result?.error) {\n this.files[i].error = result.error\n } else {\n this.files[i].checksum = result\n }\n })\n\n this.loading = false\n },\n },\n}\n</script>\n\n<style scoped>\n.overflow-wrap-anywhere {\n overflow-wrap: anywhere;\n}\n</style>\n"],"names":["_sfc_main","Widget","f","first","p","path","file","content","data","hashBuffer","b","filePath","scope","objectPath","response","Api","_a","err","result","i","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text","_openBlock","_createElementBlock","_Fragment","_renderList","index","_createTextVNode","_component_v_sheet","_normalizeClass","$event","_component_v_chip"],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { f as k } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
|
|
2
|
+
import { W as F } from "./Widget-6-Nvewdp.js";
|
|
3
|
+
import { resolveComponent as a, createBlock as S, openBlock as h, normalizeStyle as N, withCtx as l, createVNode as r, createElementVNode as d, toDisplayString as m, createElementBlock as u, createCommentVNode as T, Fragment as p, renderList as A, createTextVNode as y, normalizeClass as B } from "vue";
|
|
4
|
+
import { _ as I } from "./CustomIcon-B9m73Gqm.js";
|
|
5
|
+
const U = {
|
|
6
|
+
mixins: [F],
|
|
7
|
+
data() {
|
|
8
|
+
return {
|
|
9
|
+
files: [],
|
|
10
|
+
loading: !1
|
|
11
|
+
};
|
|
12
|
+
},
|
|
13
|
+
computed: {
|
|
14
|
+
match() {
|
|
15
|
+
if (this.files.some((e) => e.error)) return !1;
|
|
16
|
+
if (this.files.some((e) => !e.checksum)) return null;
|
|
17
|
+
const t = this.files[0].checksum;
|
|
18
|
+
return this.files.every((e) => e.checksum === t);
|
|
19
|
+
},
|
|
20
|
+
matchStatus() {
|
|
21
|
+
return {
|
|
22
|
+
null: { icon: "$info", color: "grey", text: "Comparing..." },
|
|
23
|
+
true: { icon: "$success", color: "success", text: "Checksums Match" },
|
|
24
|
+
false: {
|
|
25
|
+
icon: "$error",
|
|
26
|
+
color: "error",
|
|
27
|
+
text: this.files.some((e) => e.error) ? "Error loading file(s)" : "Checksums Do Not Match"
|
|
28
|
+
}
|
|
29
|
+
}[this.match];
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
created() {
|
|
33
|
+
this.files = this.parameters.filter((t) => t).map((t) => ({ path: t, checksum: null, error: null, copied: !1 }));
|
|
34
|
+
},
|
|
35
|
+
mounted() {
|
|
36
|
+
this.files.length && this.fetchChecksums();
|
|
37
|
+
},
|
|
38
|
+
methods: {
|
|
39
|
+
getDisplayText(t) {
|
|
40
|
+
return t.error ? `Error: ${t.error}` : t.checksum ? t.checksum : this.loading ? "Loading..." : "Not loaded";
|
|
41
|
+
},
|
|
42
|
+
async computeChecksum(t) {
|
|
43
|
+
const s = new TextEncoder().encode(t), o = await crypto.subtle.digest("SHA-256", s);
|
|
44
|
+
return Array.from(new Uint8Array(o)).map((n) => n.toString(16).padStart(2, "0")).join("");
|
|
45
|
+
},
|
|
46
|
+
async fetchFile(t) {
|
|
47
|
+
var c;
|
|
48
|
+
const e = window.openc3Scope || "DEFAULT";
|
|
49
|
+
let s = `${e}/targets_modified/${t}`, o = await k.get(
|
|
50
|
+
`/openc3-api/storage/download_file/${encodeURIComponent(s)}`,
|
|
51
|
+
{
|
|
52
|
+
params: { bucket: "OPENC3_CONFIG_BUCKET" },
|
|
53
|
+
headers: { "Ignore-Errors": "404,500" }
|
|
54
|
+
}
|
|
55
|
+
).catch(() => null);
|
|
56
|
+
if ((!o || o.status === 404) && (s = `${e}/targets/${t}`, o = await k.get(
|
|
57
|
+
`/openc3-api/storage/download_file/${encodeURIComponent(s)}`,
|
|
58
|
+
{ params: { bucket: "OPENC3_CONFIG_BUCKET" } }
|
|
59
|
+
)), (c = o == null ? void 0 : o.data) != null && c.contents)
|
|
60
|
+
return atob(o.data.contents);
|
|
61
|
+
throw new Error("File not found");
|
|
62
|
+
},
|
|
63
|
+
async copyChecksum(t) {
|
|
64
|
+
if (t.checksum)
|
|
65
|
+
try {
|
|
66
|
+
await navigator.clipboard.writeText(t.checksum), t.copied = !0, setTimeout(() => t.copied = !1, 2e3);
|
|
67
|
+
} catch (e) {
|
|
68
|
+
console.error("Failed to copy checksum:", e);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
async fetchChecksums() {
|
|
72
|
+
this.loading = !0, this.files.forEach((e) => {
|
|
73
|
+
e.checksum = null, e.error = null;
|
|
74
|
+
}), (await Promise.all(
|
|
75
|
+
this.files.map(
|
|
76
|
+
(e) => this.fetchFile(e.path).then((s) => this.computeChecksum(s)).catch((s) => ({ error: s.message || "File not found" }))
|
|
77
|
+
)
|
|
78
|
+
)).forEach((e, s) => {
|
|
79
|
+
e != null && e.error ? this.files[s].error = e.error : this.files[s].checksum = e;
|
|
80
|
+
}), this.loading = !1;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}, $ = { class: "text-caption text-medium-emphasis font-weight-regular" }, z = { class: "text-caption text-medium-emphasis mb-2" }, D = { class: "ml-1 text-high-emphasis" }, O = { class: "flex-grow-1 overflow-wrap-anywhere" };
|
|
84
|
+
function V(t, e, s, o, c, n) {
|
|
85
|
+
const C = a("v-spacer"), f = a("v-btn"), v = a("v-card-title"), _ = a("v-divider"), x = a("v-sheet"), w = a("v-chip"), b = a("v-card-text"), E = a("v-card");
|
|
86
|
+
return h(), S(E, {
|
|
87
|
+
style: N(t.computedStyle),
|
|
88
|
+
"min-width": "400"
|
|
89
|
+
}, {
|
|
90
|
+
default: l(() => [
|
|
91
|
+
r(v, { class: "d-flex align-center pa-2" }, {
|
|
92
|
+
default: l(() => [
|
|
93
|
+
d("span", $, m(c.files.length === 1 ? "File Checksum" : "File Checksum Comparison"), 1),
|
|
94
|
+
r(C),
|
|
95
|
+
r(f, {
|
|
96
|
+
size: "x-small",
|
|
97
|
+
icon: "mdi-refresh",
|
|
98
|
+
variant: "text",
|
|
99
|
+
loading: c.loading,
|
|
100
|
+
onClick: n.fetchChecksums
|
|
101
|
+
}, null, 8, ["loading", "onClick"])
|
|
102
|
+
]),
|
|
103
|
+
_: 1
|
|
104
|
+
}),
|
|
105
|
+
r(_),
|
|
106
|
+
r(b, { class: "pa-3" }, {
|
|
107
|
+
default: l(() => [
|
|
108
|
+
(h(!0), u(p, null, A(c.files, (i, g) => (h(), u(p, { key: g }, [
|
|
109
|
+
d("div", z, [
|
|
110
|
+
y(m(c.files.length === 1 ? "File:" : `File ${g + 1}:`) + " ", 1),
|
|
111
|
+
d("span", D, m(i.path), 1)
|
|
112
|
+
]),
|
|
113
|
+
r(x, {
|
|
114
|
+
class: B([i.error ? "text-error" : "", "d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption"]),
|
|
115
|
+
style: { "background-color": "rgba(128, 128, 128, 0.2)" }
|
|
116
|
+
}, {
|
|
117
|
+
default: l(() => [
|
|
118
|
+
d("span", O, m(n.getDisplayText(i)), 1),
|
|
119
|
+
r(f, {
|
|
120
|
+
icon: i.copied ? "$success" : "mdi-content-copy",
|
|
121
|
+
color: i.copied ? "success" : void 0,
|
|
122
|
+
disabled: !i.checksum,
|
|
123
|
+
size: "x-small",
|
|
124
|
+
variant: "plain",
|
|
125
|
+
density: "compact",
|
|
126
|
+
onClick: (L) => n.copyChecksum(i)
|
|
127
|
+
}, null, 8, ["icon", "color", "disabled", "onClick"])
|
|
128
|
+
]),
|
|
129
|
+
_: 2
|
|
130
|
+
}, 1032, ["class"])
|
|
131
|
+
], 64))), 128)),
|
|
132
|
+
c.files.length > 1 ? (h(), u(p, { key: 0 }, [
|
|
133
|
+
r(_, { class: "mb-3" }),
|
|
134
|
+
r(w, {
|
|
135
|
+
color: n.matchStatus.color,
|
|
136
|
+
size: "small",
|
|
137
|
+
variant: "tonal",
|
|
138
|
+
label: "",
|
|
139
|
+
"prepend-icon": n.matchStatus.icon
|
|
140
|
+
}, {
|
|
141
|
+
default: l(() => [
|
|
142
|
+
y(m(n.matchStatus.text), 1)
|
|
143
|
+
]),
|
|
144
|
+
_: 1
|
|
145
|
+
}, 8, ["color", "prepend-icon"])
|
|
146
|
+
], 64)) : T("", !0)
|
|
147
|
+
]),
|
|
148
|
+
_: 1
|
|
149
|
+
})
|
|
150
|
+
]),
|
|
151
|
+
_: 1
|
|
152
|
+
}, 8, ["style"]);
|
|
153
|
+
}
|
|
154
|
+
const K = /* @__PURE__ */ I(U, [["render", V], ["__scopeId", "data-v-7cb83af3"]]);
|
|
155
|
+
export {
|
|
156
|
+
K as default
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=FilechecksumWidget-gcmXxJHl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilechecksumWidget-gcmXxJHl.js","sources":["../src/widgets/FilechecksumWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\" min-width=\"400\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ files.length === 1 ? 'File Checksum' : 'File Checksum Comparison' }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchChecksums\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-3\">\n <template v-for=\"(file, index) in files\" :key=\"index\">\n <div class=\"text-caption text-medium-emphasis mb-2\">\n {{ files.length === 1 ? 'File:' : `File ${index + 1}:` }}\n <span class=\"ml-1 text-high-emphasis\">{{ file.path }}</span>\n </div>\n <v-sheet\n :class=\"file.error ? 'text-error' : ''\"\n class=\"d-flex align-center ga-2 px-2 py-1 mb-3 rounded text-caption\"\n style=\"background-color: rgba(128, 128, 128, 0.2)\"\n >\n <span class=\"flex-grow-1 overflow-wrap-anywhere\">\n {{ getDisplayText(file) }}\n </span>\n <v-btn\n :icon=\"file.copied ? '$success' : 'mdi-content-copy'\"\n :color=\"file.copied ? 'success' : undefined\"\n :disabled=\"!file.checksum\"\n size=\"x-small\"\n variant=\"plain\"\n density=\"compact\"\n @click=\"copyChecksum(file)\"\n />\n </v-sheet>\n </template>\n\n <template v-if=\"files.length > 1\">\n <v-divider class=\"mb-3\" />\n <v-chip\n :color=\"matchStatus.color\"\n size=\"small\"\n variant=\"tonal\"\n label\n :prepend-icon=\"matchStatus.icon\"\n >\n {{ matchStatus.text }}\n </v-chip>\n </template>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n files: [],\n loading: false,\n }\n },\n computed: {\n match() {\n if (this.files.some((f) => f.error)) return false\n if (this.files.some((f) => !f.checksum)) return null\n const first = this.files[0].checksum\n return this.files.every((f) => f.checksum === first)\n },\n matchStatus() {\n const states = {\n null: { icon: '$info', color: 'grey', text: 'Comparing...' },\n true: { icon: '$success', color: 'success', text: 'Checksums Match' },\n false: {\n icon: '$error',\n color: 'error',\n text: this.files.some((f) => f.error)\n ? 'Error loading file(s)'\n : 'Checksums Do Not Match',\n },\n }\n return states[this.match]\n },\n },\n created() {\n this.files = this.parameters\n .filter((p) => p)\n .map((path) => ({ path, checksum: null, error: null, copied: false }))\n },\n mounted() {\n if (this.files.length) {\n this.fetchChecksums()\n }\n },\n methods: {\n getDisplayText(file) {\n if (file.error) return `Error: ${file.error}`\n if (file.checksum) return file.checksum\n if (this.loading) return 'Loading...'\n return 'Not loaded'\n },\n async computeChecksum(content) {\n const encoder = new TextEncoder()\n const data = encoder.encode(content)\n const hashBuffer = await crypto.subtle.digest('SHA-256', data)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n },\n async fetchFile(filePath) {\n const scope = window.openc3Scope || 'DEFAULT'\n let objectPath = `${scope}/targets_modified/${filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n return atob(response.data.contents)\n }\n throw new Error('File not found')\n },\n async copyChecksum(file) {\n if (!file.checksum) return\n try {\n await navigator.clipboard.writeText(file.checksum)\n file.copied = true\n setTimeout(() => (file.copied = false), 2000)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Failed to copy checksum:', err)\n }\n },\n async fetchChecksums() {\n this.loading = true\n this.files.forEach((f) => {\n f.checksum = null\n f.error = null\n })\n\n const results = await Promise.all(\n this.files.map((file) =>\n this.fetchFile(file.path)\n .then((content) => this.computeChecksum(content))\n .catch((err) => ({ error: err.message || 'File not found' })),\n ),\n )\n\n results.forEach((result, i) => {\n if (result?.error) {\n this.files[i].error = result.error\n } else {\n this.files[i].checksum = result\n }\n })\n\n this.loading = false\n },\n },\n}\n</script>\n\n<style scoped>\n.overflow-wrap-anywhere {\n overflow-wrap: anywhere;\n}\n</style>\n"],"names":["_sfc_main","Widget","f","first","p","path","file","content","data","hashBuffer","b","filePath","scope","objectPath","response","Api","_a","err","result","i","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text","_openBlock","_createElementBlock","_Fragment","_renderList","index","_createTextVNode","_component_v_sheet","_normalizeClass","$event","_component_v_chip"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs"),m=require("./Widget-DdxHKVWn.cjs"),e=require("vue"),_=require("./CustomIcon-CEc927h0.cjs"),u={mixins:[m.Widget],data(){return{filePath:"",fileContent:"Loading...",loading:!1,width:600,height:300,editor:null}},computed:{contentStyle(){return{width:this.width+"px",height:this.height+"px"}},aceMode(){var o;const r=(o=this.filePath.split(".").pop())==null?void 0:o.toLowerCase();return{json:"ace/mode/json",rb:"ace/mode/ruby",py:"ace/mode/python",txt:"ace/mode/text"}[r]||"ace/mode/text"}},created(){this.parameters[0]&&(this.filePath=this.parameters[0]),this.parameters[1]&&(this.width=parseInt(this.parameters[1])),this.parameters[2]&&(this.height=parseInt(this.parameters[2]))},mounted(){this.editor=s.aceExports.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight"),this.editor.setReadOnly(!0),this.editor.setShowPrintMargin(!1),this.editor.setHighlightActiveLine(!1),this.editor.renderer.setShowGutter(!1),this.editor.renderer.setScrollMargin(8,8,0,0),this.editor.renderer.setPadding(8),this.editor.setValue(this.fileContent,-1),this.filePath&&this.fetchFile()},beforeUnmount(){this.editor&&(this.editor.destroy(),this.editor.container.remove())},methods:{updateEditor(){this.editor&&(this.editor.session.setMode(this.aceMode),this.editor.setValue(this.fileContent,-1))},async fetchFile(){var r;if(!this.filePath){this.fileContent='Error: No file path specified. Usage: FILEDISPLAY "TARGET/path/to/file.txt"',this.updateEditor();return}this.loading=!0;try{const i=window.openc3Scope||"DEFAULT";let o=`${i}/targets_modified/${this.filePath}`,t=await s.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(o)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"},headers:{"Ignore-Errors":"404,500"}}).catch(()=>null);(!t||t.status===404)&&(o=`${i}/targets/${this.filePath}`,t=await s.fi.get(`/openc3-api/storage/download_file/${encodeURIComponent(o)}`,{params:{bucket:"OPENC3_CONFIG_BUCKET"}})),(r=t==null?void 0:t.data)!=null&&r.contents?this.fileContent=atob(t.data.contents):this.fileContent="Error: Could not load file"}catch(i){this.fileContent=`Error: ${i.message||i}`}finally{this.loading=!1,this.updateEditor()}}}},g={class:"text-caption text-medium-emphasis font-weight-regular"};function C(r,i,o,t,n,a){const d=e.resolveComponent("v-spacer"),l=e.resolveComponent("v-btn"),c=e.resolveComponent("v-card-title"),h=e.resolveComponent("v-divider"),p=e.resolveComponent("v-card-text"),f=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(f,{style:e.normalizeStyle(r.computedStyle)},{default:e.withCtx(()=>[e.createVNode(c,{class:"d-flex align-center pa-2"},{default:e.withCtx(()=>[e.createElementVNode("span",g,e.toDisplayString(n.filePath),1),e.createVNode(d),e.createVNode(l,{size:"x-small",icon:"mdi-refresh",variant:"text",loading:n.loading,onClick:a.fetchFile},null,8,["loading","onClick"])]),_:1}),e.createVNode(h),e.createVNode(p,{class:"pa-0"},{default:e.withCtx(()=>[e.createElementVNode("div",{ref:"editor",style:e.normalizeStyle(a.contentStyle)},null,4)]),_:1})]),_:1},8,["style"])}const v=_._export_sfc(u,[["render",C]]);exports.default=v;
|
|
2
|
+
//# sourceMappingURL=FiledisplayWidget-CYX4HChi.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FiledisplayWidget-CYX4HChi.cjs","sources":["../src/widgets/FiledisplayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ filePath }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchFile\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-0\">\n <div ref=\"editor\" :style=\"contentStyle\"></div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n filePath: '',\n fileContent: 'Loading...',\n loading: false,\n width: 600,\n height: 300,\n editor: null,\n }\n },\n computed: {\n contentStyle() {\n return {\n width: this.width + 'px',\n height: this.height + 'px',\n }\n },\n aceMode() {\n const ext = this.filePath.split('.').pop()?.toLowerCase()\n const modeMap = {\n json: 'ace/mode/json',\n rb: 'ace/mode/ruby',\n py: 'ace/mode/python',\n txt: 'ace/mode/text',\n }\n return modeMap[ext] || 'ace/mode/text'\n },\n },\n created() {\n // Parameter 0: File path (required) e.g. \"INST/procedures/test.txt\"\n // Parameter 1: Width (optional, default 600)\n // Parameter 2: Height (optional, default 300)\n if (this.parameters[0]) {\n this.filePath = this.parameters[0]\n }\n if (this.parameters[1]) {\n this.width = parseInt(this.parameters[1])\n }\n if (this.parameters[2]) {\n this.height = parseInt(this.parameters[2])\n }\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.setReadOnly(true)\n this.editor.setShowPrintMargin(false)\n this.editor.setHighlightActiveLine(false)\n this.editor.renderer.setShowGutter(false)\n this.editor.renderer.setScrollMargin(8, 8, 0, 0)\n this.editor.renderer.setPadding(8)\n this.editor.setValue(this.fileContent, -1)\n\n if (this.filePath) {\n this.fetchFile()\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n this.editor.container.remove()\n }\n },\n methods: {\n updateEditor() {\n if (this.editor) {\n this.editor.session.setMode(this.aceMode)\n this.editor.setValue(this.fileContent, -1)\n }\n },\n async fetchFile() {\n if (!this.filePath) {\n this.fileContent =\n 'Error: No file path specified. Usage: FILEDISPLAY \"TARGET/path/to/file.txt\"'\n this.updateEditor()\n return\n }\n this.loading = true\n try {\n const scope = window.openc3Scope || 'DEFAULT'\n // Try targets_modified first, then fall back to targets\n // Use Ignore-Errors header to suppress toast for expected 404/500\n let objectPath = `${scope}/targets_modified/${this.filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${this.filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n this.fileContent = atob(response.data.contents)\n } else {\n this.fileContent = 'Error: Could not load file'\n }\n } catch (error) {\n this.fileContent = `Error: ${error.message || error}`\n } finally {\n this.loading = false\n this.updateEditor()\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","ext","_a","ace.edit","scope","objectPath","response","Api","error","_hoisted_1","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text"],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { f as l, a as C } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
|
|
2
|
+
import { W as v } from "./Widget-6-Nvewdp.js";
|
|
3
|
+
import { resolveComponent as s, createBlock as x, openBlock as y, normalizeStyle as h, withCtx as a, createVNode as r, createElementVNode as c, toDisplayString as w } from "vue";
|
|
4
|
+
import { _ as E } from "./CustomIcon-B9m73Gqm.js";
|
|
5
|
+
const P = {
|
|
6
|
+
mixins: [v],
|
|
7
|
+
data() {
|
|
8
|
+
return {
|
|
9
|
+
filePath: "",
|
|
10
|
+
fileContent: "Loading...",
|
|
11
|
+
loading: !1,
|
|
12
|
+
width: 600,
|
|
13
|
+
height: 300,
|
|
14
|
+
editor: null
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
computed: {
|
|
18
|
+
contentStyle() {
|
|
19
|
+
return {
|
|
20
|
+
width: this.width + "px",
|
|
21
|
+
height: this.height + "px"
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
aceMode() {
|
|
25
|
+
var i;
|
|
26
|
+
const o = (i = this.filePath.split(".").pop()) == null ? void 0 : i.toLowerCase();
|
|
27
|
+
return {
|
|
28
|
+
json: "ace/mode/json",
|
|
29
|
+
rb: "ace/mode/ruby",
|
|
30
|
+
py: "ace/mode/python",
|
|
31
|
+
txt: "ace/mode/text"
|
|
32
|
+
}[o] || "ace/mode/text";
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
created() {
|
|
36
|
+
this.parameters[0] && (this.filePath = this.parameters[0]), this.parameters[1] && (this.width = parseInt(this.parameters[1])), this.parameters[2] && (this.height = parseInt(this.parameters[2]));
|
|
37
|
+
},
|
|
38
|
+
mounted() {
|
|
39
|
+
this.editor = C.edit(this.$refs.editor), this.editor.setTheme("ace/theme/twilight"), this.editor.setReadOnly(!0), this.editor.setShowPrintMargin(!1), this.editor.setHighlightActiveLine(!1), this.editor.renderer.setShowGutter(!1), this.editor.renderer.setScrollMargin(8, 8, 0, 0), this.editor.renderer.setPadding(8), this.editor.setValue(this.fileContent, -1), this.filePath && this.fetchFile();
|
|
40
|
+
},
|
|
41
|
+
beforeUnmount() {
|
|
42
|
+
this.editor && (this.editor.destroy(), this.editor.container.remove());
|
|
43
|
+
},
|
|
44
|
+
methods: {
|
|
45
|
+
updateEditor() {
|
|
46
|
+
this.editor && (this.editor.session.setMode(this.aceMode), this.editor.setValue(this.fileContent, -1));
|
|
47
|
+
},
|
|
48
|
+
async fetchFile() {
|
|
49
|
+
var o;
|
|
50
|
+
if (!this.filePath) {
|
|
51
|
+
this.fileContent = 'Error: No file path specified. Usage: FILEDISPLAY "TARGET/path/to/file.txt"', this.updateEditor();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.loading = !0;
|
|
55
|
+
try {
|
|
56
|
+
const e = window.openc3Scope || "DEFAULT";
|
|
57
|
+
let i = `${e}/targets_modified/${this.filePath}`, t = await l.get(
|
|
58
|
+
`/openc3-api/storage/download_file/${encodeURIComponent(i)}`,
|
|
59
|
+
{
|
|
60
|
+
params: { bucket: "OPENC3_CONFIG_BUCKET" },
|
|
61
|
+
headers: { "Ignore-Errors": "404,500" }
|
|
62
|
+
}
|
|
63
|
+
).catch(() => null);
|
|
64
|
+
(!t || t.status === 404) && (i = `${e}/targets/${this.filePath}`, t = await l.get(
|
|
65
|
+
`/openc3-api/storage/download_file/${encodeURIComponent(i)}`,
|
|
66
|
+
{ params: { bucket: "OPENC3_CONFIG_BUCKET" } }
|
|
67
|
+
)), (o = t == null ? void 0 : t.data) != null && o.contents ? this.fileContent = atob(t.data.contents) : this.fileContent = "Error: Could not load file";
|
|
68
|
+
} catch (e) {
|
|
69
|
+
this.fileContent = `Error: ${e.message || e}`;
|
|
70
|
+
} finally {
|
|
71
|
+
this.loading = !1, this.updateEditor();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}, S = { class: "text-caption text-medium-emphasis font-weight-regular" };
|
|
76
|
+
function b(o, e, i, t, n, d) {
|
|
77
|
+
const p = s("v-spacer"), f = s("v-btn"), m = s("v-card-title"), _ = s("v-divider"), u = s("v-card-text"), g = s("v-card");
|
|
78
|
+
return y(), x(g, {
|
|
79
|
+
style: h(o.computedStyle)
|
|
80
|
+
}, {
|
|
81
|
+
default: a(() => [
|
|
82
|
+
r(m, { class: "d-flex align-center pa-2" }, {
|
|
83
|
+
default: a(() => [
|
|
84
|
+
c("span", S, w(n.filePath), 1),
|
|
85
|
+
r(p),
|
|
86
|
+
r(f, {
|
|
87
|
+
size: "x-small",
|
|
88
|
+
icon: "mdi-refresh",
|
|
89
|
+
variant: "text",
|
|
90
|
+
loading: n.loading,
|
|
91
|
+
onClick: d.fetchFile
|
|
92
|
+
}, null, 8, ["loading", "onClick"])
|
|
93
|
+
]),
|
|
94
|
+
_: 1
|
|
95
|
+
}),
|
|
96
|
+
r(_),
|
|
97
|
+
r(u, { class: "pa-0" }, {
|
|
98
|
+
default: a(() => [
|
|
99
|
+
c("div", {
|
|
100
|
+
ref: "editor",
|
|
101
|
+
style: h(d.contentStyle)
|
|
102
|
+
}, null, 4)
|
|
103
|
+
]),
|
|
104
|
+
_: 1
|
|
105
|
+
})
|
|
106
|
+
]),
|
|
107
|
+
_: 1
|
|
108
|
+
}, 8, ["style"]);
|
|
109
|
+
}
|
|
110
|
+
const N = /* @__PURE__ */ E(P, [["render", b]]);
|
|
111
|
+
export {
|
|
112
|
+
N as default
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=FiledisplayWidget-CqM549A4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FiledisplayWidget-CqM549A4.js","sources":["../src/widgets/FiledisplayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card :style=\"computedStyle\">\n <v-card-title class=\"d-flex align-center pa-2\">\n <span class=\"text-caption text-medium-emphasis font-weight-regular\">\n {{ filePath }}\n </span>\n <v-spacer />\n <v-btn\n size=\"x-small\"\n icon=\"mdi-refresh\"\n variant=\"text\"\n :loading=\"loading\"\n @click=\"fetchFile\"\n />\n </v-card-title>\n <v-divider />\n <v-card-text class=\"pa-0\">\n <div ref=\"editor\" :style=\"contentStyle\"></div>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-text'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport { Api } from '@openc3/js-common/services'\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n filePath: '',\n fileContent: 'Loading...',\n loading: false,\n width: 600,\n height: 300,\n editor: null,\n }\n },\n computed: {\n contentStyle() {\n return {\n width: this.width + 'px',\n height: this.height + 'px',\n }\n },\n aceMode() {\n const ext = this.filePath.split('.').pop()?.toLowerCase()\n const modeMap = {\n json: 'ace/mode/json',\n rb: 'ace/mode/ruby',\n py: 'ace/mode/python',\n txt: 'ace/mode/text',\n }\n return modeMap[ext] || 'ace/mode/text'\n },\n },\n created() {\n // Parameter 0: File path (required) e.g. \"INST/procedures/test.txt\"\n // Parameter 1: Width (optional, default 600)\n // Parameter 2: Height (optional, default 300)\n if (this.parameters[0]) {\n this.filePath = this.parameters[0]\n }\n if (this.parameters[1]) {\n this.width = parseInt(this.parameters[1])\n }\n if (this.parameters[2]) {\n this.height = parseInt(this.parameters[2])\n }\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n this.editor.setReadOnly(true)\n this.editor.setShowPrintMargin(false)\n this.editor.setHighlightActiveLine(false)\n this.editor.renderer.setShowGutter(false)\n this.editor.renderer.setScrollMargin(8, 8, 0, 0)\n this.editor.renderer.setPadding(8)\n this.editor.setValue(this.fileContent, -1)\n\n if (this.filePath) {\n this.fetchFile()\n }\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n this.editor.container.remove()\n }\n },\n methods: {\n updateEditor() {\n if (this.editor) {\n this.editor.session.setMode(this.aceMode)\n this.editor.setValue(this.fileContent, -1)\n }\n },\n async fetchFile() {\n if (!this.filePath) {\n this.fileContent =\n 'Error: No file path specified. Usage: FILEDISPLAY \"TARGET/path/to/file.txt\"'\n this.updateEditor()\n return\n }\n this.loading = true\n try {\n const scope = window.openc3Scope || 'DEFAULT'\n // Try targets_modified first, then fall back to targets\n // Use Ignore-Errors header to suppress toast for expected 404/500\n let objectPath = `${scope}/targets_modified/${this.filePath}`\n let response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n {\n params: { bucket: 'OPENC3_CONFIG_BUCKET' },\n headers: { 'Ignore-Errors': '404,500' },\n },\n ).catch(() => null)\n\n if (!response || response.status === 404) {\n objectPath = `${scope}/targets/${this.filePath}`\n response = await Api.get(\n `/openc3-api/storage/download_file/${encodeURIComponent(objectPath)}`,\n { params: { bucket: 'OPENC3_CONFIG_BUCKET' } },\n )\n }\n\n if (response?.data?.contents) {\n this.fileContent = atob(response.data.contents)\n } else {\n this.fileContent = 'Error: Could not load file'\n }\n } catch (error) {\n this.fileContent = `Error: ${error.message || error}`\n } finally {\n this.loading = false\n this.updateEditor()\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","ext","_a","ace.edit","scope","objectPath","response","Api","error","_hoisted_1","_createBlock","_component_v_card","_ctx","_createVNode","_component_v_card_title","_createElementVNode","_toDisplayString","$data","_component_v_spacer","_component_v_btn","$options","_component_v_divider","_component_v_card_text"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { W as a } from "./Widget-
|
|
2
|
-
import n from "./ValueWidget-
|
|
1
|
+
import { W as a } from "./Widget-6-Nvewdp.js";
|
|
2
|
+
import n from "./ValueWidget-BI3uXmda.js";
|
|
3
3
|
import { resolveComponent as o, createElementBlock as m, openBlock as i, normalizeStyle as p, createVNode as c, mergeProps as l } from "vue";
|
|
4
|
-
import { _ as d } from "./CustomIcon-
|
|
4
|
+
import { _ as d } from "./CustomIcon-B9m73Gqm.js";
|
|
5
5
|
const t = 4, u = {
|
|
6
6
|
components: {
|
|
7
7
|
ValueWidget: n
|
|
@@ -45,4 +45,4 @@ const y = /* @__PURE__ */ d(u, [["render", f]]);
|
|
|
45
45
|
export {
|
|
46
46
|
y as default
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=FormatvalueWidget-
|
|
48
|
+
//# sourceMappingURL=FormatvalueWidget-BEwH0C7S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormatvalueWidget-
|
|
1
|
+
{"version":3,"file":"FormatvalueWidget-BEwH0C7S.js","sources":["../src/widgets/FormatvalueWidget.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 ref=\"container\" class=\"d-flex flex-row\" :style=\"computedStyle\">\n <value-widget\n v-bind=\"$attrs\"\n :parameters=\"getParameters\"\n :settings=\"appliedSettings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :format-string=\"parameters[3]\"\n />\n </div>\n</template>\n\n<script>\n// When we apply a fixed character width we need to pad a bit since the\n// width applies to the enclosing div and not the underlying input\nconst INPUT_PADDING = 4\nimport Widget from './Widget'\nimport ValueWidget from './ValueWidget.vue'\n\nexport default {\n components: {\n ValueWidget,\n },\n mixins: [Widget],\n computed: {\n getParameters() {\n return [\n this.parameters[0],\n this.parameters[1],\n this.parameters[2],\n this.parameters[4],\n ]\n },\n },\n created() {\n this.setWidth(\n parseInt(this.parameters[5]) + INPUT_PADDING,\n 'ch',\n 12 + INPUT_PADDING,\n )\n },\n}\n</script>\n"],"names":["INPUT_PADDING","_sfc_main","ValueWidget","Widget","_createElementBlock","_ctx","_createVNode","_component_value_widget","_mergeProps","$options"],"mappings":";;;;AAsCA,MAAMA,IAAgB,GAIjBC,IAAU;AAAA,EACb,YAAY;AAAA,IACV,aAAAC;AAAA;EAEF,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,gBAAgB;AACd,aAAO;AAAA,QACL,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,QACjB,KAAK,WAAW,CAAC;AAAA,MACnB;AAAA,IACF;AAAA;EAEF,UAAU;AACR,SAAK;AAAA,MACH,SAAS,KAAK,WAAW,CAAC,CAAC,IAAIH;AAAA,MAC/B;AAAA,MACA,KAAKA;AAAA,IACP;AAAA,EACF;AACF;;;cAzCEI,EASM,OAAA;AAAA,IATD,KAAI;AAAA,IAAY,OAAM;AAAA,IAAmB,SAAOC,EAAA,aAAa;AAAA;IAChEC,EAOEC,GAPFC,EACUH,EAAA,QAAM;AAAA,MACb,YAAYI,EAAA;AAAA,MACZ,UAAUJ,EAAA;AAAA,MACV,iBAAeA,EAAA;AAAA,MACf,oBAAkBA,EAAA;AAAA,MAClB,iBAAeA,EAAA,WAAU,CAAA;AAAA;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-
|
|
2
|
-
//# sourceMappingURL=FormatvalueWidget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./Widget-DdxHKVWn.cjs"),o=require("./ValueWidget-CwuH7beM.cjs"),t=require("vue"),i=require("./CustomIcon-CEc927h0.cjs"),r=4,c={components:{ValueWidget:o.default},mixins:[n.Widget],computed:{getParameters(){return[this.parameters[0],this.parameters[1],this.parameters[2],this.parameters[4]]}},created(){this.setWidth(parseInt(this.parameters[5])+r,"ch",12+r)}};function m(e,u,p,d,g,s){const a=t.resolveComponent("value-widget");return t.openBlock(),t.createElementBlock("div",{ref:"container",class:"d-flex flex-row",style:t.normalizeStyle(e.computedStyle)},[t.createVNode(a,t.mergeProps(e.$attrs,{parameters:s.getParameters,settings:e.appliedSettings,"screen-values":e.screenValues,"screen-time-zone":e.screenTimeZone,"format-string":e.parameters[3]}),null,16,["parameters","settings","screen-values","screen-time-zone","format-string"])],4)}const l=i._export_sfc(c,[["render",m]]);exports.default=l;
|
|
2
|
+
//# sourceMappingURL=FormatvalueWidget-CpsyYKXD.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormatvalueWidget-
|
|
1
|
+
{"version":3,"file":"FormatvalueWidget-CpsyYKXD.cjs","sources":["../src/widgets/FormatvalueWidget.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 ref=\"container\" class=\"d-flex flex-row\" :style=\"computedStyle\">\n <value-widget\n v-bind=\"$attrs\"\n :parameters=\"getParameters\"\n :settings=\"appliedSettings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :format-string=\"parameters[3]\"\n />\n </div>\n</template>\n\n<script>\n// When we apply a fixed character width we need to pad a bit since the\n// width applies to the enclosing div and not the underlying input\nconst INPUT_PADDING = 4\nimport Widget from './Widget'\nimport ValueWidget from './ValueWidget.vue'\n\nexport default {\n components: {\n ValueWidget,\n },\n mixins: [Widget],\n computed: {\n getParameters() {\n return [\n this.parameters[0],\n this.parameters[1],\n this.parameters[2],\n this.parameters[4],\n ]\n },\n },\n created() {\n this.setWidth(\n parseInt(this.parameters[5]) + INPUT_PADDING,\n 'ch',\n 12 + INPUT_PADDING,\n )\n },\n}\n</script>\n"],"names":["INPUT_PADDING","_sfc_main","ValueWidget","Widget","_createElementBlock","_ctx","_createVNode","_component_value_widget","_mergeProps","$options"],"mappings":"yNAsCMA,EAAgB,EAIjBC,EAAU,CACb,WAAY,aACVC,EAAAA,SAEF,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,eAAgB,CACd,MAAO,CACL,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,EACjB,KAAK,WAAW,CAAC,CACnB,CACF,GAEF,SAAU,CACR,KAAK,SACH,SAAS,KAAK,WAAW,CAAC,CAAC,EAAIH,EAC/B,KACA,GAAKA,CACP,CACF,CACF,0FAzCEI,EAAAA,mBASM,MAAA,CATD,IAAI,YAAY,MAAM,kBAAmB,uBAAOC,EAAA,aAAa,IAChEC,EAAAA,YAOEC,EAPFC,aACUH,EAAA,OAAM,CACb,WAAYI,EAAA,cACZ,SAAUJ,EAAA,gBACV,gBAAeA,EAAA,aACf,mBAAkBA,EAAA,eAClB,gBAAeA,EAAA,WAAU,CAAA"}
|