@openc3/vue-common 6.10.2 → 6.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ArrayWidget-ByKRAWXn.cjs → ArrayWidget-CIMbQsGW.cjs} +3 -3
- package/dist/{ArrayWidget-ByKRAWXn.cjs.map → ArrayWidget-CIMbQsGW.cjs.map} +1 -1
- package/dist/{ArrayWidget-CR7Wpw3N.js → ArrayWidget-DfiusKpM.js} +11 -11
- package/dist/{ArrayWidget-CR7Wpw3N.js.map → ArrayWidget-DfiusKpM.js.map} +1 -1
- package/dist/{ArrayplotWidget-Cty7KQ_h.cjs → ArrayplotWidget-DrrqqJEu.cjs} +2 -2
- package/dist/{ArrayplotWidget-Cty7KQ_h.cjs.map → ArrayplotWidget-DrrqqJEu.cjs.map} +1 -1
- package/dist/{ArrayplotWidget-DDEd-jRJ.js → ArrayplotWidget-DsvOovu9.js} +4 -4
- package/dist/{ArrayplotWidget-DDEd-jRJ.js.map → ArrayplotWidget-DsvOovu9.js.map} +1 -1
- package/dist/BarColumn-CWgcL5w1.cjs +2 -0
- package/dist/BarColumn-CWgcL5w1.cjs.map +1 -0
- package/dist/{BarColumn-XWs-3Cwb.js → BarColumn-DHHJBR3V.js} +11 -11
- package/dist/BarColumn-DHHJBR3V.js.map +1 -0
- package/dist/{BlockWidget-BDzoqpxO.cjs → BlockWidget-7Ecn_42c.cjs} +3 -3
- package/dist/{BlockWidget-BDzoqpxO.cjs.map → BlockWidget-7Ecn_42c.cjs.map} +1 -1
- package/dist/{BlockWidget-CfFgdNSv.js → BlockWidget-BdYXWS_0.js} +14 -14
- package/dist/{BlockWidget-CfFgdNSv.js.map → BlockWidget-BdYXWS_0.js.map} +1 -1
- package/dist/{ButtonWidget-BBMDS_YF.cjs → ButtonWidget-DFxBj0MG.cjs} +3 -3
- package/dist/ButtonWidget-DFxBj0MG.cjs.map +1 -0
- package/dist/{ButtonWidget-BaSvtElA.js → ButtonWidget-zpSJmiQT.js} +15 -15
- package/dist/ButtonWidget-zpSJmiQT.js.map +1 -0
- package/dist/{CanvasWidget-CFNpgqfW.cjs → CanvasWidget-C5-iZ-YT.cjs} +2 -2
- package/dist/{CanvasWidget-CFNpgqfW.cjs.map → CanvasWidget-C5-iZ-YT.cjs.map} +1 -1
- package/dist/{CanvasWidget-DcwDi5Zk.js → CanvasWidget-DaUB1G9X.js} +4 -4
- package/dist/{CanvasWidget-DcwDi5Zk.js.map → CanvasWidget-DaUB1G9X.js.map} +1 -1
- package/dist/{CanvasdotWidget--awMOWyz.js → CanvasdotWidget-C255aTVc.js} +3 -3
- package/dist/{CanvasdotWidget--awMOWyz.js.map → CanvasdotWidget-C255aTVc.js.map} +1 -1
- package/dist/{CanvasdotWidget-BZ9TrTvw.cjs → CanvasdotWidget-CCrgS1yO.cjs} +2 -2
- package/dist/{CanvasdotWidget-BZ9TrTvw.cjs.map → CanvasdotWidget-CCrgS1yO.cjs.map} +1 -1
- package/dist/CanvasimageWidget-B2Mm0dYq.cjs +2 -0
- package/dist/CanvasimageWidget-B2Mm0dYq.cjs.map +1 -0
- package/dist/{CanvasimageWidget-YP1pCtvb.js → CanvasimageWidget-CFlUUFqr.js} +8 -7
- package/dist/CanvasimageWidget-CFlUUFqr.js.map +1 -0
- package/dist/CanvasimagevalueWidget-B1xVa3FB.cjs +2 -0
- package/dist/CanvasimagevalueWidget-B1xVa3FB.cjs.map +1 -0
- package/dist/{CanvasimagevalueWidget-CjVHb2uj.js → CanvasimagevalueWidget-s4gR3fo5.js} +5 -4
- package/dist/CanvasimagevalueWidget-s4gR3fo5.js.map +1 -0
- package/dist/{CanvaslabelWidget-Dw1YmiY0.cjs → CanvaslabelWidget-CAtE3qq_.cjs} +2 -2
- package/dist/{CanvaslabelWidget-Dw1YmiY0.cjs.map → CanvaslabelWidget-CAtE3qq_.cjs.map} +1 -1
- package/dist/{CanvaslabelWidget-DoMplTTO.js → CanvaslabelWidget-CaOc-lTQ.js} +3 -3
- package/dist/{CanvaslabelWidget-DoMplTTO.js.map → CanvaslabelWidget-CaOc-lTQ.js.map} +1 -1
- package/dist/CanvaslabelvalueWidget-CvVMrZsu.cjs +2 -0
- package/dist/CanvaslabelvalueWidget-CvVMrZsu.cjs.map +1 -0
- package/dist/{CanvaslabelvalueWidget-Dyo_ogHn.js → CanvaslabelvalueWidget-hqJoPekq.js} +4 -3
- package/dist/CanvaslabelvalueWidget-hqJoPekq.js.map +1 -0
- package/dist/{CanvaslineWidget-tm194dw1.cjs → CanvaslineWidget-CjPnyDod.cjs} +2 -2
- package/dist/{CanvaslineWidget-tm194dw1.cjs.map → CanvaslineWidget-CjPnyDod.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-D7W1TIxm.js → CanvaslineWidget-DebP2L43.js} +3 -3
- package/dist/{CanvaslineWidget-D7W1TIxm.js.map → CanvaslineWidget-DebP2L43.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-BOZyJuLE.js → CanvaslinevalueWidget-BkPG5Vtx.js} +11 -10
- package/dist/CanvaslinevalueWidget-BkPG5Vtx.js.map +1 -0
- package/dist/CanvaslinevalueWidget-Caadjtan.cjs +2 -0
- package/dist/CanvaslinevalueWidget-Caadjtan.cjs.map +1 -0
- package/dist/CheckbuttonWidget-CEOWZkt6.cjs +2 -0
- package/dist/{CheckbuttonWidget-BSvTWD3x.cjs.map → CheckbuttonWidget-CEOWZkt6.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-B1E4BC6v.js → CheckbuttonWidget-eQIcPATf.js} +6 -6
- package/dist/{CheckbuttonWidget-B1E4BC6v.js.map → CheckbuttonWidget-eQIcPATf.js.map} +1 -1
- package/dist/{ClassificationBanners-CzZoKcRy.cjs → ClassificationBanners--l3qMxLo.cjs} +2 -2
- package/dist/{ClassificationBanners-CzZoKcRy.cjs.map → ClassificationBanners--l3qMxLo.cjs.map} +1 -1
- package/dist/{ClassificationBanners-DQeVwmYp.js → ClassificationBanners-CFLQaZJ2.js} +2 -2
- package/dist/{ClassificationBanners-DQeVwmYp.js.map → ClassificationBanners-CFLQaZJ2.js.map} +1 -1
- package/dist/{ComboboxWidget-BExUBH57.js → ComboboxWidget-B5kzYxFk.js} +6 -6
- package/dist/{ComboboxWidget-BExUBH57.js.map → ComboboxWidget-B5kzYxFk.js.map} +1 -1
- package/dist/ComboboxWidget-BSs59QzI.cjs +2 -0
- package/dist/{ComboboxWidget-B_KAnIVB.cjs.map → ComboboxWidget-BSs59QzI.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-BtzhxuZi.js → CriticalCmdDialog-BYHZbX2w.js} +62 -52
- package/dist/CriticalCmdDialog-BYHZbX2w.js.map +1 -0
- package/dist/CriticalCmdDialog-BhjiJIo5.cjs +2 -0
- package/dist/CriticalCmdDialog-BhjiJIo5.cjs.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-_ZmPsi2l.js → DateWidget-1IZOe50K.js} +3 -3
- package/dist/{DateWidget-_ZmPsi2l.js.map → DateWidget-1IZOe50K.js.map} +1 -1
- package/dist/{DateWidget-kTJBAHVp.cjs → DateWidget-DkVxE7Xj.cjs} +2 -2
- package/dist/{DateWidget-kTJBAHVp.cjs.map → DateWidget-DkVxE7Xj.cjs.map} +1 -1
- package/dist/{DetailsDialog-Bq7SS7bc.js → DetailsDialog-D-rjL4oc.js} +130 -100
- package/dist/DetailsDialog-D-rjL4oc.js.map +1 -0
- package/dist/DetailsDialog-lJG8eclU.cjs +2 -0
- package/dist/DetailsDialog-lJG8eclU.cjs.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-5UXvnmNE.cjs +2 -0
- package/dist/EventListDialog-5UXvnmNE.cjs.map +1 -0
- package/dist/{EventListDialog-jdNF3szO.js → EventListDialog-Id3rEQKY.js} +242 -242
- package/dist/EventListDialog-Id3rEQKY.js.map +1 -0
- package/dist/FilechecksumWidget-D-5GSjyV.cjs +2 -0
- package/dist/FilechecksumWidget-D-5GSjyV.cjs.map +1 -0
- package/dist/FilechecksumWidget-F_FX1Kjx.js +158 -0
- package/dist/FilechecksumWidget-F_FX1Kjx.js.map +1 -0
- package/dist/FiledisplayWidget-BF3G22jF.js +114 -0
- package/dist/FiledisplayWidget-BF3G22jF.js.map +1 -0
- package/dist/FiledisplayWidget-BHLOY_cM.cjs +2 -0
- package/dist/FiledisplayWidget-BHLOY_cM.cjs.map +1 -0
- package/dist/{FormatvalueWidget-4C0vrL2i.js → FormatvalueWidget-BkF9iiHs.js} +4 -4
- package/dist/{FormatvalueWidget-4C0vrL2i.js.map → FormatvalueWidget-BkF9iiHs.js.map} +1 -1
- package/dist/{FormatvalueWidget-CVoJgFJA.cjs → FormatvalueWidget-DTsP7isW.cjs} +2 -2
- package/dist/{FormatvalueWidget-CVoJgFJA.cjs.map → FormatvalueWidget-DTsP7isW.cjs.map} +1 -1
- package/dist/{Graph-B7KPo9Ul.js → Graph-C-7C2Jq5.js} +194 -187
- package/dist/Graph-C-7C2Jq5.js.map +1 -0
- package/dist/Graph-YYieRGo0.cjs +2 -0
- package/dist/Graph-YYieRGo0.cjs.map +1 -0
- package/dist/{GraphWidget-D3HueIZi.cjs → GraphWidget-C7hqdqL-.cjs} +2 -2
- package/dist/{GraphWidget-D3HueIZi.cjs.map → GraphWidget-C7hqdqL-.cjs.map} +1 -1
- package/dist/{GraphWidget-BpkPpAbd.js → GraphWidget-DRkDn8za.js} +2 -2
- package/dist/{GraphWidget-BpkPpAbd.js.map → GraphWidget-DRkDn8za.js.map} +1 -1
- package/dist/HorizontalWidget-DB64wzZB.js +69 -0
- package/dist/HorizontalWidget-DB64wzZB.js.map +1 -0
- package/dist/HorizontalWidget-h-U8i3G-.cjs +2 -0
- package/dist/HorizontalWidget-h-U8i3G-.cjs.map +1 -0
- package/dist/{HorizontalboxWidget-CTomf_Iy.js → HorizontalboxWidget-BsHsGlvK.js} +6 -6
- package/dist/{HorizontalboxWidget-CTomf_Iy.js.map → HorizontalboxWidget-BsHsGlvK.js.map} +1 -1
- package/dist/{HorizontalboxWidget-ysq7slso.cjs → HorizontalboxWidget-E4LUf2eN.cjs} +2 -2
- package/dist/{HorizontalboxWidget-ysq7slso.cjs.map → HorizontalboxWidget-E4LUf2eN.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-B7xx7ofY.js → HorizontallineWidget-CyiexzIu.js} +3 -3
- package/dist/{HorizontallineWidget-B7xx7ofY.js.map → HorizontallineWidget-CyiexzIu.js.map} +1 -1
- package/dist/{HorizontallineWidget-BgXZZymr.cjs → HorizontallineWidget-LibmHnAf.cjs} +2 -2
- package/dist/{HorizontallineWidget-BgXZZymr.cjs.map → HorizontallineWidget-LibmHnAf.cjs.map} +1 -1
- package/dist/{IframeWidget-DK7rbULe.js → IframeWidget-D9Vh0w2c.js} +3 -3
- package/dist/{IframeWidget-DK7rbULe.js.map → IframeWidget-D9Vh0w2c.js.map} +1 -1
- package/dist/{IframeWidget-fV9e-Nm1.cjs → IframeWidget-xeXTxP_G.cjs} +2 -2
- package/dist/{IframeWidget-fV9e-Nm1.cjs.map → IframeWidget-xeXTxP_G.cjs.map} +1 -1
- package/dist/{ImageLoader-C9rN_pSY.js → ImageLoader-B4iBPFyi.js} +2 -2
- package/dist/{ImageLoader-C9rN_pSY.js.map → ImageLoader-B4iBPFyi.js.map} +1 -1
- package/dist/{ImageLoader-CJxiBXAL.cjs → ImageLoader-Cc4-BNJv.cjs} +2 -2
- package/dist/{ImageLoader-CJxiBXAL.cjs.map → ImageLoader-Cc4-BNJv.cjs.map} +1 -1
- package/dist/{ImageviewerWidget-6d6Kl3W_.js → ImageviewerWidget-DqV4SClv.js} +10 -9
- package/dist/ImageviewerWidget-DqV4SClv.js.map +1 -0
- package/dist/ImageviewerWidget-KVt487SJ.cjs +2 -0
- package/dist/ImageviewerWidget-KVt487SJ.cjs.map +1 -0
- package/dist/{InterfacesTab-BCqTanhV.js → InterfacesTab-C310FRIP.js} +4 -4
- package/dist/{InterfacesTab-BCqTanhV.js.map → InterfacesTab-C310FRIP.js.map} +1 -1
- package/dist/{InterfacesTab-0pmK3KNu.cjs → InterfacesTab-nZwg-ByS.cjs} +2 -2
- package/dist/{InterfacesTab-0pmK3KNu.cjs.map → InterfacesTab-nZwg-ByS.cjs.map} +1 -1
- package/dist/{LabelWidget-D71FfOSw.js → LabelWidget-BDukcPet.js} +3 -3
- package/dist/{LabelWidget-D71FfOSw.js.map → LabelWidget-BDukcPet.js.map} +1 -1
- package/dist/{LabelWidget-DdZz2NWv.cjs → LabelWidget-DYfv4K8h.cjs} +2 -2
- package/dist/{LabelWidget-DdZz2NWv.cjs.map → LabelWidget-DYfv4K8h.cjs.map} +1 -1
- package/dist/{LabelledWidget-BZ319slb.cjs → LabelledWidget-Dl1x6b3p.cjs} +2 -2
- package/dist/{LabelledWidget-BZ319slb.cjs.map → LabelledWidget-Dl1x6b3p.cjs.map} +1 -1
- package/dist/{LabelledWidget-D2ir5kVU.js → LabelledWidget-tVHE426s.js} +6 -6
- package/dist/{LabelledWidget-D2ir5kVU.js.map → LabelledWidget-tVHE426s.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-C4_YbROz.js → LabelprogressbarWidget-CjMDFUUv.js} +6 -6
- package/dist/{LabelprogressbarWidget-C4_YbROz.js.map → LabelprogressbarWidget-CjMDFUUv.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-LyevJNuz.cjs → LabelprogressbarWidget-DcO0gRM4.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-LyevJNuz.cjs.map → LabelprogressbarWidget-DcO0gRM4.cjs.map} +1 -1
- package/dist/LabelsparklineWidget-Cp2a-qlI.cjs +2 -0
- package/dist/LabelsparklineWidget-Cp2a-qlI.cjs.map +1 -0
- package/dist/{LabelsparklineWidget-CdZ_pM2B.js → LabelsparklineWidget-dZl3cGu0.js} +13 -13
- package/dist/LabelsparklineWidget-dZl3cGu0.js.map +1 -0
- package/dist/{LabelvalueWidget-DSHwAKma.cjs → LabelvalueWidget-CgP4mzP_.cjs} +2 -2
- package/dist/{LabelvalueWidget-DSHwAKma.cjs.map → LabelvalueWidget-CgP4mzP_.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-BS0EPY5h.js → LabelvalueWidget-UcAc_2Ry.js} +6 -6
- package/dist/{LabelvalueWidget-BS0EPY5h.js.map → LabelvalueWidget-UcAc_2Ry.js.map} +1 -1
- package/dist/{LabelvaluedescWidget-3lwQxkKj.cjs → LabelvaluedescWidget-CXJ037Qs.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-3lwQxkKj.cjs.map → LabelvaluedescWidget-CXJ037Qs.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-Cpr8_Voq.js → LabelvaluedescWidget-Crb8udVe.js} +6 -6
- package/dist/{LabelvaluedescWidget-Cpr8_Voq.js.map → LabelvaluedescWidget-Crb8udVe.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-DbO_Q5ex.cjs → LabelvaluelimitsbarWidget-B3cn7i50.cjs} +2 -2
- package/dist/LabelvaluelimitsbarWidget-B3cn7i50.cjs.map +1 -0
- package/dist/{LabelvaluelimitsbarWidget-DTcYbEQS.js → LabelvaluelimitsbarWidget-BZGUQrRt.js} +10 -10
- package/dist/LabelvaluelimitsbarWidget-BZGUQrRt.js.map +1 -0
- package/dist/LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs +2 -0
- package/dist/LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs.map +1 -0
- package/dist/{LabelvaluelimitscolumnWidget-D0ltQ9Ta.js → LabelvaluelimitscolumnWidget-NNYW2aMO.js} +12 -12
- package/dist/LabelvaluelimitscolumnWidget-NNYW2aMO.js.map +1 -0
- package/dist/{LabelvaluerangebarWidget-B6_alHq4.cjs → LabelvaluerangebarWidget-B81fLpK0.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-B6_alHq4.cjs.map → LabelvaluerangebarWidget-B81fLpK0.cjs.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-O8IHjvHs.js → LabelvaluerangebarWidget-CjkVDlVJ.js} +6 -6
- package/dist/{LabelvaluerangebarWidget-O8IHjvHs.js.map → LabelvaluerangebarWidget-CjkVDlVJ.js.map} +1 -1
- package/dist/Layout-FpBx3iic.js +36 -0
- package/dist/Layout-FpBx3iic.js.map +1 -0
- package/dist/Layout-K7_I6jMV.cjs +2 -0
- package/dist/Layout-K7_I6jMV.cjs.map +1 -0
- package/dist/{LedWidget-DUvJ2v8k.js → LedWidget-Bsp1aja-.js} +46 -39
- package/dist/LedWidget-Bsp1aja-.js.map +1 -0
- package/dist/LedWidget-C19KREVz.cjs +2 -0
- package/dist/LedWidget-C19KREVz.cjs.map +1 -0
- package/dist/LimitsBar-IVv8t4FE.js +134 -0
- package/dist/LimitsBar-IVv8t4FE.js.map +1 -0
- package/dist/LimitsBar-LRiUSWd7.cjs +2 -0
- package/dist/LimitsBar-LRiUSWd7.cjs.map +1 -0
- package/dist/LimitsbarWidget-BFjMhTbA.cjs +2 -0
- package/dist/LimitsbarWidget-BFjMhTbA.cjs.map +1 -0
- package/dist/LimitsbarWidget-Bo1JAoQp.js +65 -0
- package/dist/LimitsbarWidget-Bo1JAoQp.js.map +1 -0
- package/dist/LimitscolorWidget-D214kS86.cjs +2 -0
- package/dist/LimitscolorWidget-D214kS86.cjs.map +1 -0
- package/dist/{LimitscolorWidget-FXT0ZPPH.js → LimitscolorWidget-Doq8h_g1.js} +14 -13
- package/dist/LimitscolorWidget-Doq8h_g1.js.map +1 -0
- package/dist/{LimitscolumnWidget-C5yozwf0.cjs → LimitscolumnWidget-BREF_CBr.cjs} +2 -2
- package/dist/{LimitscolumnWidget-C5yozwf0.cjs.map → LimitscolumnWidget-BREF_CBr.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-CjBy-CCI.js → LimitscolumnWidget-qasXHN7m.js} +3 -3
- package/dist/{LimitscolumnWidget-CjBy-CCI.js.map → LimitscolumnWidget-qasXHN7m.js.map} +1 -1
- package/dist/{LinegraphWidget-lmu_tFKd.js → LinegraphWidget-BNMqcr_r.js} +5 -5
- package/dist/{LinegraphWidget-lmu_tFKd.js.map → LinegraphWidget-BNMqcr_r.js.map} +1 -1
- package/dist/{LinegraphWidget-dO_B0T3E.cjs → LinegraphWidget-BhpYKxnT.cjs} +2 -2
- package/dist/{LinegraphWidget-dO_B0T3E.cjs.map → LinegraphWidget-BhpYKxnT.cjs.map} +1 -1
- package/dist/MatrixbycolumnsWidget-BKXkhATe.cjs +2 -0
- package/dist/MatrixbycolumnsWidget-BKXkhATe.cjs.map +1 -0
- package/dist/MatrixbycolumnsWidget-BlF1CyIT.js +83 -0
- package/dist/MatrixbycolumnsWidget-BlF1CyIT.js.map +1 -0
- package/dist/MicroservicesTab-BWFwBSuf.cjs +2 -0
- package/dist/MicroservicesTab-BWFwBSuf.cjs.map +1 -0
- package/dist/MicroservicesTab-xpDXKoa-.js +203 -0
- package/dist/MicroservicesTab-xpDXKoa-.js.map +1 -0
- package/dist/OpenC3TimePicker-6pE8gGCO.cjs +2 -0
- package/dist/OpenC3TimePicker-6pE8gGCO.cjs.map +1 -0
- package/dist/OpenC3TimePicker-D-_qqySI.js +219 -0
- package/dist/OpenC3TimePicker-D-_qqySI.js.map +1 -0
- package/dist/{Openc3Screen-DcIIUO63.js → Openc3Screen-DYJHNotN.js} +730 -510
- package/dist/Openc3Screen-DYJHNotN.js.map +1 -0
- package/dist/Openc3Screen-Pu1ktpS8.cjs +6 -0
- package/dist/Openc3Screen-Pu1ktpS8.cjs.map +1 -0
- package/dist/OutputDialog-BwEWPQW9.cjs +2 -0
- package/dist/OutputDialog-BwEWPQW9.cjs.map +1 -0
- package/dist/{OutputDialog-CNH74LpJ.js → OutputDialog-x4QZFAWe.js} +24 -17
- package/dist/OutputDialog-x4QZFAWe.js.map +1 -0
- package/dist/{PackagesTab-PEPT4CQu.cjs → PackagesTab-CHwfaqdP.cjs} +2 -2
- package/dist/{PackagesTab-PEPT4CQu.cjs.map → PackagesTab-CHwfaqdP.cjs.map} +1 -1
- package/dist/{PackagesTab-BE6W7Aru.js → PackagesTab-rzc4hqOb.js} +4 -4
- package/dist/{PackagesTab-BE6W7Aru.js.map → PackagesTab-rzc4hqOb.js.map} +1 -1
- package/dist/{PluginsTab-DXf9zX0h.cjs → PluginsTab-C7gLbRQn.cjs} +2 -2
- package/dist/PluginsTab-C7gLbRQn.cjs.map +1 -0
- package/dist/{PluginsTab-B_Pf2A9c.js → PluginsTab-Dff_0j26.js} +8 -8
- package/dist/PluginsTab-Dff_0j26.js.map +1 -0
- package/dist/{ProgressbarWidget-B5WN658S.js → ProgressbarWidget-DQ80NANH.js} +7 -5
- package/dist/ProgressbarWidget-DQ80NANH.js.map +1 -0
- package/dist/ProgressbarWidget-cQAtX_Q7.cjs +2 -0
- package/dist/ProgressbarWidget-cQAtX_Q7.cjs.map +1 -0
- package/dist/RadiobuttonWidget-DFrUZRaV.cjs +2 -0
- package/dist/{RadiobuttonWidget-DkG9GtAy.cjs.map → RadiobuttonWidget-DFrUZRaV.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-B_3nys46.js → RadiobuttonWidget-LD18M4IQ.js} +11 -10
- package/dist/{RadiobuttonWidget-B_3nys46.js.map → RadiobuttonWidget-LD18M4IQ.js.map} +1 -1
- package/dist/{RadiogroupWidget-BiMIL9li.js → RadiogroupWidget-D_pt2MPz.js} +6 -6
- package/dist/{RadiogroupWidget-BiMIL9li.js.map → RadiogroupWidget-D_pt2MPz.js.map} +1 -1
- package/dist/{RadiogroupWidget-BnUjXU28.cjs → RadiogroupWidget-ljP05k3g.cjs} +2 -2
- package/dist/{RadiogroupWidget-BnUjXU28.cjs.map → RadiogroupWidget-ljP05k3g.cjs.map} +1 -1
- package/dist/RangebarWidget-BsLWXvTo.cjs +2 -0
- package/dist/RangebarWidget-BsLWXvTo.cjs.map +1 -0
- package/dist/{RangebarWidget-Dn0GASdi.js → RangebarWidget-DhaWpHjB.js} +12 -11
- package/dist/RangebarWidget-DhaWpHjB.js.map +1 -0
- package/dist/{RedisTab-BsKrL4fD.js → RedisTab-C3yjh0JX.js} +3 -3
- package/dist/{RedisTab-BsKrL4fD.js.map → RedisTab-C3yjh0JX.js.map} +1 -1
- package/dist/{RedisTab-C1yaDRSt.cjs → RedisTab-DEKMLop2.cjs} +2 -2
- package/dist/{RedisTab-C1yaDRSt.cjs.map → RedisTab-DEKMLop2.cjs.map} +1 -1
- package/dist/{RollupWidget-b62qcG5K.js → RollupWidget-CMU1-HwL.js} +15 -13
- package/dist/RollupWidget-CMU1-HwL.js.map +1 -0
- package/dist/RollupWidget-sXTyo7zH.cjs +2 -0
- package/dist/RollupWidget-sXTyo7zH.cjs.map +1 -0
- package/dist/{RoutersTab-EHz4wDCn.js → RoutersTab-DaWde6np.js} +4 -4
- package/dist/{RoutersTab-EHz4wDCn.js.map → RoutersTab-DaWde6np.js.map} +1 -1
- package/dist/{RoutersTab-8wGbiPCk.cjs → RoutersTab-IKuEHQeO.cjs} +2 -2
- package/dist/{RoutersTab-8wGbiPCk.cjs.map → RoutersTab-IKuEHQeO.cjs.map} +1 -1
- package/dist/ScriptChooser-BmyV6QQD.cjs +2 -0
- package/dist/ScriptChooser-BmyV6QQD.cjs.map +1 -0
- package/dist/{ScriptChooser-DMPY3m8a.js → ScriptChooser-DCjI5aeZ.js} +118 -93
- package/dist/ScriptChooser-DCjI5aeZ.js.map +1 -0
- package/dist/ScrollwindowWidget-BcLF_bhy.cjs +2 -0
- package/dist/ScrollwindowWidget-BcLF_bhy.cjs.map +1 -0
- package/dist/ScrollwindowWidget-D7Ln-QMq.js +69 -0
- package/dist/ScrollwindowWidget-D7Ln-QMq.js.map +1 -0
- package/dist/{SecretsTab-DSMFodJM.cjs → SecretsTab-BM9HIjT_.cjs} +2 -2
- package/dist/{SecretsTab-DSMFodJM.cjs.map → SecretsTab-BM9HIjT_.cjs.map} +1 -1
- package/dist/{SecretsTab-Cbt_r-1I.js → SecretsTab-Dhal1RCq.js} +3 -3
- package/dist/{SecretsTab-Cbt_r-1I.js.map → SecretsTab-Dhal1RCq.js.map} +1 -1
- package/dist/SettingsTab-BrSkK_Fs.cjs +3 -0
- package/dist/SettingsTab-BrSkK_Fs.cjs.map +1 -0
- package/dist/{SettingsTab-L5xbCAW_.js → SettingsTab-Dtj_AlEW.js} +319 -202
- package/dist/SettingsTab-Dtj_AlEW.js.map +1 -0
- package/dist/SignalWidget-DHwveppA.cjs +2 -0
- package/dist/SignalWidget-DHwveppA.cjs.map +1 -0
- package/dist/{SignalWidget-CLi6qask.js → SignalWidget-PreTg4Mt.js} +5 -3
- package/dist/SignalWidget-PreTg4Mt.js.map +1 -0
- package/dist/SimpleTextDialog-Bdw3jul4.cjs +2 -0
- package/dist/SimpleTextDialog-Bdw3jul4.cjs.map +1 -0
- package/dist/{SimpleTextDialog-8vDPDt6X.js → SimpleTextDialog-DDIm5Znf.js} +26 -19
- package/dist/SimpleTextDialog-DDIm5Znf.js.map +1 -0
- package/dist/{SpacerWidget-BCA3gdap.js → SpacerWidget-Chy1NO28.js} +3 -3
- package/dist/{SpacerWidget-BCA3gdap.js.map → SpacerWidget-Chy1NO28.js.map} +1 -1
- package/dist/{SpacerWidget-BJpqoaeP.cjs → SpacerWidget-Cj-j_MsG.cjs} +2 -2
- package/dist/{SpacerWidget-BJpqoaeP.cjs.map → SpacerWidget-Cj-j_MsG.cjs.map} +1 -1
- package/dist/SparklineWidget-BE1LieLF.cjs +2 -0
- package/dist/SparklineWidget-BE1LieLF.cjs.map +1 -0
- package/dist/{SparklineWidget-D8mb4zLt.js → SparklineWidget-Bb-gCNNt.js} +11 -11
- package/dist/SparklineWidget-Bb-gCNNt.js.map +1 -0
- package/dist/TabbookWidget-FNbiZpjn.cjs +2 -0
- package/dist/TabbookWidget-FNbiZpjn.cjs.map +1 -0
- package/dist/TabbookWidget-a-LsBhBE.js +96 -0
- package/dist/TabbookWidget-a-LsBhBE.js.map +1 -0
- package/dist/TargetPacketItemChooser-BPRByyfB.cjs +2 -0
- package/dist/TargetPacketItemChooser-BPRByyfB.cjs.map +1 -0
- package/dist/{TargetPacketItemChooser-DGcXvdTX.js → TargetPacketItemChooser-DDqBQTWC.js} +232 -183
- package/dist/TargetPacketItemChooser-DDqBQTWC.js.map +1 -0
- package/dist/{TargetsTab-c-qMsGHh.js → TargetsTab-C7Pn5-19.js} +4 -4
- package/dist/{TargetsTab-c-qMsGHh.js.map → TargetsTab-C7Pn5-19.js.map} +1 -1
- package/dist/{TargetsTab-C4tQ1auc.cjs → TargetsTab-dndajwC_.cjs} +2 -2
- package/dist/{TargetsTab-C4tQ1auc.cjs.map → TargetsTab-dndajwC_.cjs.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-DIHEOldN.js} +19 -19
- package/dist/{TextboxWidget-CR05wO-t.js.map → TextboxWidget-DIHEOldN.js.map} +1 -1
- package/dist/{TextboxWidget-BcRfHcF6.cjs → TextboxWidget-DYTNipbi.cjs} +2 -2
- package/dist/{TextboxWidget-BcRfHcF6.cjs.map → TextboxWidget-DYTNipbi.cjs.map} +1 -1
- package/dist/{TextfieldWidget-Ct1hZr2M.cjs → TextfieldWidget-BE-HpIKs.cjs} +2 -2
- package/dist/{TextfieldWidget-Ct1hZr2M.cjs.map → TextfieldWidget-BE-HpIKs.cjs.map} +1 -1
- package/dist/{TextfieldWidget-Be_Pz2bF.js → TextfieldWidget-CIBo7Dau.js} +5 -5
- package/dist/{TextfieldWidget-Be_Pz2bF.js.map → TextfieldWidget-CIBo7Dau.js.map} +1 -1
- package/dist/TimeWidget-CLuOYfPP.js +43 -0
- package/dist/TimeWidget-CLuOYfPP.js.map +1 -0
- package/dist/TimeWidget-RYL7zDoC.cjs +2 -0
- package/dist/TimeWidget-RYL7zDoC.cjs.map +1 -0
- package/dist/{TitleWidget-BcmxUDzM.js → TitleWidget-BTHKLAsb.js} +3 -3
- package/dist/{TitleWidget-BcmxUDzM.js.map → TitleWidget-BTHKLAsb.js.map} +1 -1
- package/dist/{TitleWidget-C1qzja9l.cjs → TitleWidget-DVWOhZqJ.cjs} +2 -2
- package/dist/{TitleWidget-C1qzja9l.cjs.map → TitleWidget-DVWOhZqJ.cjs.map} +1 -1
- package/dist/{ToolsTab-CbY2K86w.cjs → ToolsTab-D4LFT4tV.cjs} +2 -2
- package/dist/{ToolsTab-CbY2K86w.cjs.map → ToolsTab-D4LFT4tV.cjs.map} +1 -1
- package/dist/{ToolsTab-Buklih4C.js → ToolsTab-D5yhjVM0.js} +4 -4
- package/dist/{ToolsTab-Buklih4C.js.map → ToolsTab-D5yhjVM0.js.map} +1 -1
- package/dist/{TopBar-HxaiWynT.cjs → TopBar-DUdrFsMv.cjs} +2 -2
- package/dist/{TopBar-HxaiWynT.cjs.map → TopBar-DUdrFsMv.cjs.map} +1 -1
- package/dist/{TopBar-D4C9DJcu.js → TopBar-DzxJ69Tt.js} +3 -3
- package/dist/{TopBar-D4C9DJcu.js.map → TopBar-DzxJ69Tt.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-D0AGxldj.js → UpgradeToEnterpriseDialog-Bf6rEOgp.js} +16 -13
- package/dist/UpgradeToEnterpriseDialog-Bf6rEOgp.js.map +1 -0
- package/dist/UpgradeToEnterpriseDialog-CujyHt2o.cjs +2 -0
- package/dist/UpgradeToEnterpriseDialog-CujyHt2o.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-Bjn8x8eE.cjs} +108 -108
- 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-Bjn8x8eE.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-NXWdTcR2.js} +5473 -5451
- 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-NXWdTcR2.js.map} +1 -1
- package/dist/{VWidget-CBmUpKSV.js → VWidget-BcwkHuIT.js} +3 -3
- package/dist/{VWidget-CBmUpKSV.js.map → VWidget-BcwkHuIT.js.map} +1 -1
- package/dist/{VWidget-DhGLFGS2.cjs → VWidget-CbdjSkP3.cjs} +2 -2
- package/dist/{VWidget-DhGLFGS2.cjs.map → VWidget-CbdjSkP3.cjs.map} +1 -1
- package/dist/ValueWidget-BubIamVx.js +138 -0
- package/dist/ValueWidget-BubIamVx.js.map +1 -0
- package/dist/ValueWidget-CgAl2Av2.cjs +2 -0
- package/dist/ValueWidget-CgAl2Av2.cjs.map +1 -0
- package/dist/{ValuelimitsbarWidget-BdY02gqc.js → ValuelimitsbarWidget-DKTrV1RT.js} +11 -11
- package/dist/{ValuelimitsbarWidget-BdY02gqc.js.map → ValuelimitsbarWidget-DKTrV1RT.js.map} +1 -1
- package/dist/{ValuelimitsbarWidget-KsFz7ipK.cjs → ValuelimitsbarWidget-Dn_sS0zt.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-KsFz7ipK.cjs.map → ValuelimitsbarWidget-Dn_sS0zt.cjs.map} +1 -1
- package/dist/ValuelimitscolumnWidget-CGhifOZI.cjs +2 -0
- package/dist/ValuelimitscolumnWidget-CGhifOZI.cjs.map +1 -0
- package/dist/{ValuelimitscolumnWidget-CuJ6rqtC.js → ValuelimitscolumnWidget-D8JIK4Zi.js} +11 -11
- package/dist/ValuelimitscolumnWidget-D8JIK4Zi.js.map +1 -0
- package/dist/{ValuerangebarWidget-C5rolGDi.js → ValuerangebarWidget-D8hVKp0l.js} +6 -6
- package/dist/{ValuerangebarWidget-C5rolGDi.js.map → ValuerangebarWidget-D8hVKp0l.js.map} +1 -1
- package/dist/{ValuerangebarWidget-CDJeamPr.cjs → ValuerangebarWidget-DPtR-Dla.cjs} +2 -2
- package/dist/{ValuerangebarWidget-CDJeamPr.cjs.map → ValuerangebarWidget-DPtR-Dla.cjs.map} +1 -1
- package/dist/VerticalWidget-DMp3DXGa.js +68 -0
- package/dist/VerticalWidget-DMp3DXGa.js.map +1 -0
- package/dist/VerticalWidget-DScGTfwX.cjs +2 -0
- package/dist/VerticalWidget-DScGTfwX.cjs.map +1 -0
- package/dist/{VerticalboxWidget-D-3H1PYU.cjs → VerticalboxWidget-CIJ1c7WU.cjs} +2 -2
- package/dist/{VerticalboxWidget-D-3H1PYU.cjs.map → VerticalboxWidget-CIJ1c7WU.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-CzDgveBl.js → VerticalboxWidget-CVf1d_3_.js} +6 -6
- package/dist/{VerticalboxWidget-CzDgveBl.js.map → VerticalboxWidget-CVf1d_3_.js.map} +1 -1
- package/dist/Widget-Btu2EoLT.cjs +2 -0
- package/dist/Widget-Btu2EoLT.cjs.map +1 -0
- package/dist/{Widget-VCl8Ts8s.js → Widget-D4rzBHnr.js} +27 -19
- package/dist/Widget-D4rzBHnr.js.map +1 -0
- package/dist/components.cjs +3 -3
- package/dist/components.cjs.map +1 -1
- package/dist/components.js +421 -248
- 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-B9vbjzwV.cjs} +2 -2
- package/dist/{settings-sg_XHXQ-.cjs.map → settings-B9vbjzwV.cjs.map} +1 -1
- package/dist/{settings-DlX9yvJJ.js → settings-Ctcx_wMT.js} +2 -2
- package/dist/{settings-DlX9yvJJ.js.map → settings-Ctcx_wMT.js.map} +1 -1
- package/dist/tools/admin.cjs +4 -5
- package/dist/tools/admin.cjs.map +1 -1
- package/dist/tools/admin.js +954 -833
- 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 +1121 -1134
- 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 +6 -6
- 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 +0 -6
- 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/TimeWidget-3M7CQ893.cjs +0 -2
- package/dist/TimeWidget-3M7CQ893.cjs.map +0 -1
- package/dist/TimeWidget-Dy8zpkC6.js +0 -40
- package/dist/TimeWidget-Dy8zpkC6.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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptChooser-CtV7dDJS.cjs","sources":["../src/components/CommandParameterEditor.vue","../src/components/CommandEditor.vue","../src/components/EnvironmentChooser.vue","../src/components/ScriptChooser.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-text-field\n v-if=\"!states\"\n :model-value=\"textFieldValue\"\n hide-details\n density=\"compact\"\n variant=\"filled\"\n data-test=\"cmd-param-value\"\n @update:model-value=\"handleChange\"\n />\n <div v-else class=\"d-flex align-center\">\n <v-select\n :items=\"stateOptions\"\n :model-value=\"selectValue\"\n item-title=\"label\"\n :class=\"stateClass\"\n hide-details\n density=\"compact\"\n variant=\"outlined\"\n placeholder=\"Select...\"\n min-width=\"120px\"\n data-test=\"cmd-param-select\"\n @update:model-value=\"handleChange\"\n />\n <v-text-field\n :model-value=\"stateValue\"\n disabled\n hide-details\n density=\"compact\"\n variant=\"outlined\"\n min-width=\"60px\"\n data-test=\"cmd-param-value\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport { CmdUtilities } from '../util'\nexport default {\n name: 'CommandParameterEditor',\n mixins: [CmdUtilities],\n props: {\n modelValue: {\n type: [String, Number],\n default: undefined,\n },\n states: {\n type: Object,\n default: () => null,\n },\n statesInHex: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n computed: {\n textFieldValue() {\n return this.convertToString(this.modelValue)\n },\n stateValue() {\n if (this.statesInHex) {\n return '0x' + this.modelValue.toString(16)\n } else {\n return this.modelValue\n }\n },\n selectValue() {\n // this makes the placeholder prop work\n return this.modelValue === '' ? null : this.modelValue\n },\n stateOptions() {\n if (!this.states) {\n return null\n }\n return Object.keys(this.states).map((label) => {\n return {\n label,\n ...this.states[label],\n }\n })\n },\n hazardous() {\n return (\n Object.entries(this.states)\n .find(([label, state]) => state.value === this.modelValue)\n ?.at(1)?.hazardous !== undefined\n )\n },\n stateClass() {\n return this.hazardous ? 'hazardous mr-4' : 'mr-4'\n },\n },\n methods: {\n handleChange(value) {\n this.$emit('update:modelValue', value)\n },\n },\n}\n</script>\n<style scoped>\n/* This allows Value or State selection to be wider and show state names */\n.container :deep(.v-select__selections) {\n width: auto;\n}\n.v-overflow-btn {\n margin-top: 0px;\n}\n.container {\n padding: 0px;\n}\n.hazardous :deep(.v-select__selection-text) {\n color: rgb(255, 220, 0) !important;\n}\n</style>\n","<!--\n# Copyright 2025, OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <div style=\"padding: 10px\">\n <target-packet-item-chooser\n :initial-target-name=\"targetName\"\n :initial-packet-name=\"commandName\"\n :disabled=\"sendDisabled\"\n :button-text=\"showCommandButton ? 'Send' : null\"\n :show-queue-select=\"showQueueSelect\"\n mode=\"cmd\"\n @on-set=\"commandChanged($event)\"\n @add-item=\"buildCmd($event)\"\n />\n </div>\n\n <v-card v-if=\"computedRows.length !== 0\">\n <v-card-title class=\"d-flex align-center justify-content-space-between\">\n Parameters\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n single-line\n hide-details\n class=\"search\"\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"computedRows\"\n :search=\"search\"\n :items-per-page=\"-1\"\n hide-default-footer\n multi-sort\n density=\"compact\"\n @contextmenu:row=\"showContextMenu\"\n >\n <template #item.val=\"{ item }\">\n <slot\n name=\"parameter-editor\"\n :item=\"item\"\n :states-in-hex=\"statesInHex\"\n >\n <!-- Default parameter editor if slot not provided -->\n <command-parameter-editor\n v-model=\"item.val\"\n :states=\"item.states\"\n :states-in-hex=\"statesInHex\"\n />\n </slot>\n </template>\n </v-data-table>\n </v-card>\n\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"targetName\"\n :packet-name=\"commandName\"\n :item-name=\"parameterName\"\n :type=\"'cmd'\"\n />\n </v-card>\n</template>\n\n<script>\nimport 'sprintf-js'\nimport { OpenC3Api } from '@openc3/js-common/services'\nimport TargetPacketItemChooser from './TargetPacketItemChooser.vue'\nimport CommandParameterEditor from './CommandParameterEditor.vue'\nimport DetailsDialog from './DetailsDialog.vue'\nimport { CmdUtilities } from '../util'\n\nexport default {\n name: 'CommandEditor',\n components: {\n TargetPacketItemChooser,\n CommandParameterEditor,\n DetailsDialog,\n },\n mixins: [CmdUtilities],\n props: {\n initialTargetName: {\n type: String,\n default: null,\n },\n initialPacketName: {\n type: String,\n default: null,\n },\n cmdString: {\n type: String,\n default: null,\n },\n sendDisabled: {\n type: Boolean,\n default: false,\n },\n statesInHex: {\n type: Boolean,\n default: false,\n },\n showIgnoredParams: {\n type: Boolean,\n default: false,\n },\n cmdRaw: {\n type: Boolean,\n default: false,\n },\n showCommandButton: {\n type: Boolean,\n default: true,\n },\n showQueueSelect: {\n type: Boolean,\n default: true,\n },\n },\n emits: ['command-changed', 'build-cmd'],\n data() {\n return {\n search: '',\n headers: [\n { title: 'Name', value: 'parameter_name' },\n { title: 'Value or State', value: 'val' },\n { title: 'Units', value: 'units' },\n { title: 'Range', value: 'range' },\n { title: 'Description', value: 'description' },\n ],\n api: null,\n targetName: '',\n commandName: '',\n commandDescription: '',\n ignoredParams: [],\n computedRows: [],\n reservedItemNames: [\n 'PACKET_TIMESECONDS',\n 'PACKET_TIMEFORMATTED',\n 'RECEIVED_TIMESECONDS',\n 'RECEIVED_TIMEFORMATTED',\n 'RECEIVED_COUNT',\n ],\n contextMenuShown: false,\n viewDetails: false,\n parameterName: '',\n x: 0,\n y: 0,\n contextMenuOptions: [\n {\n title: 'Details',\n action: () => {\n this.contextMenuShown = false\n this.viewDetails = true\n },\n },\n ],\n }\n },\n created() {\n this.api = new OpenC3Api()\n if (this.cmdString) {\n this.processCmdString()\n } else {\n this.targetName = this.initialTargetName\n this.commandName = this.initialPacketName\n this.updateCmdParams()\n }\n },\n methods: {\n commandChanged(event) {\n if (\n this.targetName !== event.targetName ||\n this.commandName !== event.packetName\n ) {\n this.targetName = event.targetName\n this.commandName = event.packetName\n this.updateCmdParams()\n }\n this.$emit('command-changed', event)\n },\n buildCmd(event) {\n this.$emit('build-cmd', event)\n },\n showContextMenu(event, row) {\n event.preventDefault()\n this.parameterName = row.item.parameter_name\n this.contextMenuShown = false\n this.x = event.clientX\n this.y = event.clientY\n this.$nextTick(() => {\n this.contextMenuShown = true\n })\n },\n updateCmdParams() {\n this.ignoredParams = []\n this.computedRows = []\n if (this.targetName && this.commandName) {\n this.api\n .get_target(this.targetName)\n .then(\n (target) => {\n this.ignoredParams = target.ignored_parameters\n return this.api.get_cmd(this.targetName, this.commandName)\n },\n (error) => {\n // eslint-disable-next-line no-console\n console.error('Error getting ignored parameters:', error)\n },\n )\n .then(\n (command) => {\n if (command) {\n command.items.forEach((parameter) => {\n if (this.reservedItemNames.includes(parameter.name)) return\n if (\n !parameter.hidden &&\n (!this.ignoredParams.includes(parameter.name) ||\n this.showIgnoredParams)\n ) {\n let val = parameter.default\n if (\n !parameter.states &&\n parameter.data_type === 'STRING' &&\n typeof parameter.default === 'string'\n ) {\n val = `'${val}'`\n }\n if (parameter.required) {\n val = null // Special marker for required parameters\n }\n if (parameter.format_string && parameter.default) {\n val = sprintf(parameter.format_string, parameter.default)\n }\n if (\n Object.prototype.toString.call(val).slice(8, -1) ===\n 'Object'\n ) {\n val = this.convertToString(val)\n }\n let range = 'N/A'\n if (\n parameter.minimum != null &&\n parameter.maximum != null\n ) {\n if (parameter.data_type === 'FLOAT') {\n if (parameter.minimum < -1e6) {\n parameter.minimum = parameter.minimum.toExponential(3)\n }\n if (parameter.maximum > 1e6) {\n parameter.maximum = parameter.maximum.toExponential(3)\n }\n }\n range = `${parameter.minimum}..${parameter.maximum}`\n }\n this.computedRows.push({\n parameter_name: parameter.name,\n val: val,\n states: parameter.states,\n description: parameter.description,\n range: range,\n units: parameter.units,\n type: parameter.data_type,\n })\n }\n })\n this.commandDescription = command.description\n\n // Populate with parsed parameters if available\n this.populateParametersFromParsed()\n }\n },\n (error) => {\n // eslint-disable-next-line no-console\n console.error('Error getting command parameters:', error)\n },\n )\n }\n },\n triggerUpdateCmdParams() {\n this.updateCmdParams()\n },\n getRows() {\n return this.computedRows\n },\n getCmdString() {\n let cmd = `${this.targetName} ${this.commandName}`\n if (this.computedRows.length === 0) return cmd\n cmd += ' with'\n for (const row of this.computedRows) {\n // null value indicates required parameter not set, see updateCmdParams\n if (row.val === null) {\n throw new Error(`Required parameter ${row.parameter_name} not set`)\n }\n if (row.val !== null && row.val !== undefined && row.val !== '') {\n if (row.states) {\n // If states exist, find the state name for the value\n const stateEntry = Object.entries(row.states).find(\n ([, state]) => state.value === row.val,\n )\n if (stateEntry) {\n // Although not always necessary, always quote states\n cmd += ` ${row.parameter_name} '${stateEntry[0]}',`\n continue\n }\n }\n // We only put the param value in quotes if it is a string with spaces\n // Check for array syntax because we do NOT quote arrays\n let value = this.convertToString(row.val)\n if (value.includes(' ') && !this.isArray(value)) {\n cmd += ` ${row.parameter_name} '${value}',`\n } else {\n cmd += ` ${row.parameter_name} ${value},`\n }\n }\n }\n // Remove trailing comma\n return cmd.slice(0, -1)\n },\n parseCmdString(cmdString) {\n // Parse commands in format: \"TARGET COMMAND with PARAM1 value1, PARAM2 value2\"\n const parts = cmdString.split(' ')\n if (parts.length < 2) return { target: '', command: '', params: {} }\n if (parts.length === 2) {\n return { target: parts[0], command: parts[1], params: {} }\n }\n // Check for a malformed command string that doesn't have 'with'\n if (parts[2] !== 'with') return { target: '', command: '', params: {} }\n\n const target = parts[0]\n const command = parts[1]\n let params = {}\n\n const paramsString = cmdString.split(' with ')[1]\n let paramPairs = []\n let bracketLevel = 0\n let current = ''\n // Parse the params char by char to handle commas inside brackets\n for (let char of paramsString) {\n if (char === '[') {\n bracketLevel++\n current += char\n } else if (char === ']') {\n bracketLevel--\n current += char\n } else if (char === ',' && bracketLevel === 0) {\n paramPairs.push(current.trim())\n current = ''\n } else {\n current += char\n }\n }\n if (current.trim() !== '') {\n paramPairs.push(current.trim())\n }\n\n for (let pair of paramPairs) {\n let firstSpace = pair.indexOf(' ')\n if (firstSpace > 0) {\n let key = pair.substring(0, firstSpace).trim()\n let value = pair.substring(firstSpace + 1).trim()\n params[key] = value\n }\n }\n return { target: target, command: command, params: params }\n },\n processCmdString() {\n const parsed = this.parseCmdString(this.cmdString)\n if (parsed.target && parsed.command) {\n this.targetName = parsed.target\n this.commandName = parsed.command\n this.parsedParameters = parsed.params\n this.updateCmdParams()\n }\n },\n populateParametersFromParsed() {\n // Populate parameters after command parameters are loaded\n if (\n !this.parsedParameters ||\n Object.keys(this.parsedParameters).length === 0\n ) {\n return\n }\n\n this.$nextTick(() => {\n // Give time for parameters to load\n setTimeout(() => {\n this.computedRows.forEach((row) => {\n if (this.parsedParameters.hasOwnProperty(row.parameter_name)) {\n const value = this.parsedParameters[row.parameter_name]\n // Set the value based on parameter type\n if (row.states && typeof value === 'string') {\n // For state parameters, try to match the state name\n const stateKey = Object.keys(row.states).find(\n (key) =>\n key === value || key.toLowerCase() === value.toLowerCase(),\n )\n if (stateKey) {\n row.val = row.states[stateKey].value\n } else {\n row.val = value\n }\n } else if (row.type === 'STRING' && typeof value === 'string') {\n // For string parameters, add quotes if not present\n row.val =\n value.startsWith(\"'\") || value.startsWith('\"')\n ? value\n : `'${value}'`\n } else {\n row.val = value\n }\n }\n })\n }, 100) // Shorter delay since we're already in the component\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, 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 <span> Add environment variables (optional)</span>\n <v-table density=\"compact\">\n <tbody>\n <tr>\n <th scope=\"col\" class=\"text-left\">Key</th>\n <th scope=\"col\" class=\"text-left\">Value</th>\n <th scope=\"col\" class=\"text-right\" width=\"52px\">\n <v-btn\n icon=\"mdi-plus\"\n variant=\"text\"\n data-test=\"new-metadata-icon\"\n @click=\"addEnvVar\"\n />\n </th>\n </tr>\n <tr v-for=\"(env, i) in selected\" :key=\"`tr-${i}`\">\n <td>\n <v-text-field\n v-model=\"env.key\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`key-${i}`\"\n />\n </td>\n <td>\n <v-text-field\n v-model=\"env.value\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`value-${i}`\"\n />\n </td>\n <td>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n :data-test=\"`remove-env-icon-${i}`\"\n @click=\"delEnvVar(i)\"\n />\n </td>\n </tr>\n </tbody>\n </v-table>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: {\n type: Array,\n required: true,\n },\n },\n computed: {\n selected: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n methods: {\n addEnvVar: function () {\n this.selected.push({\n key: '',\n value: '',\n })\n },\n delEnvVar: function (index) {\n this.selected.splice(index, 1)\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, 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>\n <v-autocomplete\n v-model=\"selected\"\n v-model:search=\"search\"\n density=\"compact\"\n variant=\"outlined\"\n hide-no-data\n hide-details\n class=\"mb-5\"\n label=\"Select script\"\n :loading=\"loading\"\n :items=\"items\"\n data-test=\"select-script\"\n />\n </v-row>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n // TODO: cache items\n // this was previously handled by Vuetify and the `cache-items` prop on `v-autocomplete`, but that feature was\n // dropped in Vuetify 3\n props: {\n modelValue: String, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n loading: false,\n search: '',\n selected: this.modelValue,\n scripts: [],\n items: [],\n }\n },\n watch: {\n selected(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal && newVal.slice(-1) === '*') {\n // Remove the * before returning\n this.$emit('file', newVal.substring(0, newVal.length - 1))\n } else {\n this.$emit('file', newVal)\n }\n }\n },\n search(val) {\n val && val !== this.selected && this.querySelections(val)\n },\n },\n created() {\n this.loading = true\n Api.get('/script-api/scripts')\n .then((response) => {\n this.scripts = response.data.filter((filename) => {\n return filename.includes('.rb') || filename.includes('.py')\n })\n this.items = this.scripts\n })\n .catch((error) => {\n this.$emit('error', {\n type: 'error',\n text: `Failed to connect to OpenC3. ${error}`,\n error: error,\n })\n })\n this.selected = this.modelValue ? this.modelValue : null\n this.loading = false\n },\n methods: {\n querySelections: function (v) {\n this.loading = true\n // Simulated ajax query\n setTimeout(() => {\n this.items = this.scripts.filter((e) => {\n return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1\n })\n this.loading = false\n }, 500)\n },\n },\n}\n</script>\n"],"names":["_sfc_main","CmdUtilities","label","_b","_a","state","value","_createElementBlock","$props","_openBlock","_hoisted_1","_createVNode","_component_v_select","$options","_component_v_text_field","_createBlock","TargetPacketItemChooser","CommandParameterEditor","DetailsDialog","OpenC3Api","event","row","target","error","command","parameter","val","range","cmd","stateEntry","cmdString","parts","params","paramsString","paramPairs","bracketLevel","current","char","pair","firstSpace","key","parsed","stateKey","_component_v_card","_createElementVNode","_component_target_packet_item_chooser","$data","_cache","$event","_component_v_card_title","_component_v_spacer","_component_v_data_table","_withCtx","item","_renderSlot","_ctx","_component_command_parameter_editor","_component_v_menu","_component_v_list","_Fragment","_renderList","index","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog","_component_v_table","_component_v_btn","env","i","newVal","oldVal","Api","response","filename","v","_component_v_row","_component_v_autocomplete"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptChooser-DMPY3m8a.js","sources":["../src/components/CommandParameterEditor.vue","../src/components/CommandEditor.vue","../src/components/EnvironmentChooser.vue","../src/components/ScriptChooser.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-text-field\n v-if=\"!states\"\n :model-value=\"textFieldValue\"\n hide-details\n density=\"compact\"\n variant=\"filled\"\n data-test=\"cmd-param-value\"\n @update:model-value=\"handleChange\"\n />\n <div v-else class=\"d-flex align-center\">\n <v-select\n :items=\"stateOptions\"\n :model-value=\"selectValue\"\n item-title=\"label\"\n :class=\"stateClass\"\n hide-details\n density=\"compact\"\n variant=\"outlined\"\n placeholder=\"Select...\"\n min-width=\"120px\"\n data-test=\"cmd-param-select\"\n @update:model-value=\"handleChange\"\n />\n <v-text-field\n :model-value=\"stateValue\"\n disabled\n hide-details\n density=\"compact\"\n variant=\"outlined\"\n min-width=\"60px\"\n data-test=\"cmd-param-value\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport { CmdUtilities } from '../util'\nexport default {\n name: 'CommandParameterEditor',\n mixins: [CmdUtilities],\n props: {\n modelValue: {\n type: [String, Number],\n default: undefined,\n },\n states: {\n type: Object,\n default: () => null,\n },\n statesInHex: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n computed: {\n textFieldValue() {\n return this.convertToString(this.modelValue)\n },\n stateValue() {\n if (this.statesInHex) {\n return '0x' + this.modelValue.toString(16)\n } else {\n return this.modelValue\n }\n },\n selectValue() {\n // this makes the placeholder prop work\n return this.modelValue === '' ? null : this.modelValue\n },\n stateOptions() {\n if (!this.states) {\n return null\n }\n return Object.keys(this.states).map((label) => {\n return {\n label,\n ...this.states[label],\n }\n })\n },\n hazardous() {\n return (\n Object.entries(this.states)\n .find(([label, state]) => state.value === this.modelValue)\n ?.at(1)?.hazardous !== undefined\n )\n },\n stateClass() {\n return this.hazardous ? 'hazardous mr-4' : 'mr-4'\n },\n },\n methods: {\n handleChange(value) {\n this.$emit('update:modelValue', value)\n },\n },\n}\n</script>\n<style scoped>\n/* This allows Value or State selection to be wider and show state names */\n.container :deep(.v-select__selections) {\n width: auto;\n}\n.v-overflow-btn {\n margin-top: 0px;\n}\n.container {\n padding: 0px;\n}\n.hazardous :deep(.v-select__selection-text) {\n color: rgb(255, 220, 0) !important;\n}\n</style>\n","<!--\n# Copyright 2025, OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <div style=\"padding: 10px\">\n <target-packet-item-chooser\n :initial-target-name=\"targetName\"\n :initial-packet-name=\"commandName\"\n :disabled=\"sendDisabled\"\n :button-text=\"showCommandButton ? 'Send' : null\"\n :show-queue-select=\"showQueueSelect\"\n mode=\"cmd\"\n @on-set=\"commandChanged($event)\"\n @add-item=\"buildCmd($event)\"\n />\n </div>\n\n <v-card v-if=\"computedRows.length !== 0\">\n <v-card-title class=\"d-flex align-center justify-content-space-between\">\n Parameters\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n single-line\n hide-details\n class=\"search\"\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"computedRows\"\n :search=\"search\"\n :items-per-page=\"-1\"\n hide-default-footer\n multi-sort\n density=\"compact\"\n @contextmenu:row=\"showContextMenu\"\n >\n <template #item.val=\"{ item }\">\n <slot\n name=\"parameter-editor\"\n :item=\"item\"\n :states-in-hex=\"statesInHex\"\n >\n <!-- Default parameter editor if slot not provided -->\n <command-parameter-editor\n v-model=\"item.val\"\n :states=\"item.states\"\n :states-in-hex=\"statesInHex\"\n />\n </slot>\n </template>\n </v-data-table>\n </v-card>\n\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"targetName\"\n :packet-name=\"commandName\"\n :item-name=\"parameterName\"\n :type=\"'cmd'\"\n />\n </v-card>\n</template>\n\n<script>\nimport 'sprintf-js'\nimport { OpenC3Api } from '@openc3/js-common/services'\nimport TargetPacketItemChooser from './TargetPacketItemChooser.vue'\nimport CommandParameterEditor from './CommandParameterEditor.vue'\nimport DetailsDialog from './DetailsDialog.vue'\nimport { CmdUtilities } from '../util'\n\nexport default {\n name: 'CommandEditor',\n components: {\n TargetPacketItemChooser,\n CommandParameterEditor,\n DetailsDialog,\n },\n mixins: [CmdUtilities],\n props: {\n initialTargetName: {\n type: String,\n default: null,\n },\n initialPacketName: {\n type: String,\n default: null,\n },\n cmdString: {\n type: String,\n default: null,\n },\n sendDisabled: {\n type: Boolean,\n default: false,\n },\n statesInHex: {\n type: Boolean,\n default: false,\n },\n showIgnoredParams: {\n type: Boolean,\n default: false,\n },\n cmdRaw: {\n type: Boolean,\n default: false,\n },\n showCommandButton: {\n type: Boolean,\n default: true,\n },\n showQueueSelect: {\n type: Boolean,\n default: true,\n },\n },\n emits: ['command-changed', 'build-cmd'],\n data() {\n return {\n search: '',\n headers: [\n { title: 'Name', value: 'parameter_name' },\n { title: 'Value or State', value: 'val' },\n { title: 'Units', value: 'units' },\n { title: 'Range', value: 'range' },\n { title: 'Description', value: 'description' },\n ],\n api: null,\n targetName: '',\n commandName: '',\n commandDescription: '',\n ignoredParams: [],\n computedRows: [],\n reservedItemNames: [\n 'PACKET_TIMESECONDS',\n 'PACKET_TIMEFORMATTED',\n 'RECEIVED_TIMESECONDS',\n 'RECEIVED_TIMEFORMATTED',\n 'RECEIVED_COUNT',\n ],\n contextMenuShown: false,\n viewDetails: false,\n parameterName: '',\n x: 0,\n y: 0,\n contextMenuOptions: [\n {\n title: 'Details',\n action: () => {\n this.contextMenuShown = false\n this.viewDetails = true\n },\n },\n ],\n }\n },\n created() {\n this.api = new OpenC3Api()\n if (this.cmdString) {\n this.processCmdString()\n } else {\n this.targetName = this.initialTargetName\n this.commandName = this.initialPacketName\n this.updateCmdParams()\n }\n },\n methods: {\n commandChanged(event) {\n if (\n this.targetName !== event.targetName ||\n this.commandName !== event.packetName\n ) {\n this.targetName = event.targetName\n this.commandName = event.packetName\n this.updateCmdParams()\n }\n this.$emit('command-changed', event)\n },\n buildCmd(event) {\n this.$emit('build-cmd', event)\n },\n showContextMenu(event, row) {\n event.preventDefault()\n this.parameterName = row.item.parameter_name\n this.contextMenuShown = false\n this.x = event.clientX\n this.y = event.clientY\n this.$nextTick(() => {\n this.contextMenuShown = true\n })\n },\n updateCmdParams() {\n this.ignoredParams = []\n this.computedRows = []\n if (this.targetName && this.commandName) {\n this.api\n .get_target(this.targetName)\n .then(\n (target) => {\n this.ignoredParams = target.ignored_parameters\n return this.api.get_cmd(this.targetName, this.commandName)\n },\n (error) => {\n // eslint-disable-next-line no-console\n console.error('Error getting ignored parameters:', error)\n },\n )\n .then(\n (command) => {\n if (command) {\n command.items.forEach((parameter) => {\n if (this.reservedItemNames.includes(parameter.name)) return\n if (\n !parameter.hidden &&\n (!this.ignoredParams.includes(parameter.name) ||\n this.showIgnoredParams)\n ) {\n let val = parameter.default\n if (\n !parameter.states &&\n parameter.data_type === 'STRING' &&\n typeof parameter.default === 'string'\n ) {\n val = `'${val}'`\n }\n if (parameter.required) {\n val = null // Special marker for required parameters\n }\n if (parameter.format_string && parameter.default) {\n val = sprintf(parameter.format_string, parameter.default)\n }\n if (\n Object.prototype.toString.call(val).slice(8, -1) ===\n 'Object'\n ) {\n val = this.convertToString(val)\n }\n let range = 'N/A'\n if (\n parameter.minimum != null &&\n parameter.maximum != null\n ) {\n if (parameter.data_type === 'FLOAT') {\n if (parameter.minimum < -1e6) {\n parameter.minimum = parameter.minimum.toExponential(3)\n }\n if (parameter.maximum > 1e6) {\n parameter.maximum = parameter.maximum.toExponential(3)\n }\n }\n range = `${parameter.minimum}..${parameter.maximum}`\n }\n this.computedRows.push({\n parameter_name: parameter.name,\n val: val,\n states: parameter.states,\n description: parameter.description,\n range: range,\n units: parameter.units,\n type: parameter.data_type,\n })\n }\n })\n this.commandDescription = command.description\n\n // Populate with parsed parameters if available\n this.populateParametersFromParsed()\n }\n },\n (error) => {\n // eslint-disable-next-line no-console\n console.error('Error getting command parameters:', error)\n },\n )\n }\n },\n triggerUpdateCmdParams() {\n this.updateCmdParams()\n },\n getRows() {\n return this.computedRows\n },\n getCmdString() {\n let cmd = `${this.targetName} ${this.commandName}`\n if (this.computedRows.length === 0) return cmd\n cmd += ' with'\n for (const row of this.computedRows) {\n // null value indicates required parameter not set, see updateCmdParams\n if (row.val === null) {\n throw new Error(`Required parameter ${row.parameter_name} not set`)\n }\n if (row.val !== null && row.val !== undefined && row.val !== '') {\n if (row.states) {\n // If states exist, find the state name for the value\n const stateEntry = Object.entries(row.states).find(\n ([, state]) => state.value === row.val,\n )\n if (stateEntry) {\n // Although not always necessary, always quote states\n cmd += ` ${row.parameter_name} '${stateEntry[0]}',`\n continue\n }\n }\n // We only put the param value in quotes if it is a string with spaces\n // Check for array syntax because we do NOT quote arrays\n let value = this.convertToString(row.val)\n if (value.includes(' ') && !this.isArray(value)) {\n cmd += ` ${row.parameter_name} '${value}',`\n } else {\n cmd += ` ${row.parameter_name} ${value},`\n }\n }\n }\n // Remove trailing comma\n return cmd.slice(0, -1)\n },\n parseCmdString(cmdString) {\n // Parse commands in format: \"TARGET COMMAND with PARAM1 value1, PARAM2 value2\"\n const parts = cmdString.split(' ')\n if (parts.length < 2) return { target: '', command: '', params: {} }\n if (parts.length === 2) {\n return { target: parts[0], command: parts[1], params: {} }\n }\n // Check for a malformed command string that doesn't have 'with'\n if (parts[2] !== 'with') return { target: '', command: '', params: {} }\n\n const target = parts[0]\n const command = parts[1]\n let params = {}\n\n const paramsString = cmdString.split(' with ')[1]\n let paramPairs = []\n let bracketLevel = 0\n let current = ''\n // Parse the params char by char to handle commas inside brackets\n for (let char of paramsString) {\n if (char === '[') {\n bracketLevel++\n current += char\n } else if (char === ']') {\n bracketLevel--\n current += char\n } else if (char === ',' && bracketLevel === 0) {\n paramPairs.push(current.trim())\n current = ''\n } else {\n current += char\n }\n }\n if (current.trim() !== '') {\n paramPairs.push(current.trim())\n }\n\n for (let pair of paramPairs) {\n let firstSpace = pair.indexOf(' ')\n if (firstSpace > 0) {\n let key = pair.substring(0, firstSpace).trim()\n let value = pair.substring(firstSpace + 1).trim()\n params[key] = value\n }\n }\n return { target: target, command: command, params: params }\n },\n processCmdString() {\n const parsed = this.parseCmdString(this.cmdString)\n if (parsed.target && parsed.command) {\n this.targetName = parsed.target\n this.commandName = parsed.command\n this.parsedParameters = parsed.params\n this.updateCmdParams()\n }\n },\n populateParametersFromParsed() {\n // Populate parameters after command parameters are loaded\n if (\n !this.parsedParameters ||\n Object.keys(this.parsedParameters).length === 0\n ) {\n return\n }\n\n this.$nextTick(() => {\n // Give time for parameters to load\n setTimeout(() => {\n this.computedRows.forEach((row) => {\n if (this.parsedParameters.hasOwnProperty(row.parameter_name)) {\n const value = this.parsedParameters[row.parameter_name]\n // Set the value based on parameter type\n if (row.states && typeof value === 'string') {\n // For state parameters, try to match the state name\n const stateKey = Object.keys(row.states).find(\n (key) =>\n key === value || key.toLowerCase() === value.toLowerCase(),\n )\n if (stateKey) {\n row.val = row.states[stateKey].value\n } else {\n row.val = value\n }\n } else if (row.type === 'STRING' && typeof value === 'string') {\n // For string parameters, add quotes if not present\n row.val =\n value.startsWith(\"'\") || value.startsWith('\"')\n ? value\n : `'${value}'`\n } else {\n row.val = value\n }\n }\n })\n }, 100) // Shorter delay since we're already in the component\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, 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 <span> Add environment variables (optional)</span>\n <v-table density=\"compact\">\n <tbody>\n <tr>\n <th scope=\"col\" class=\"text-left\">Key</th>\n <th scope=\"col\" class=\"text-left\">Value</th>\n <th scope=\"col\" class=\"text-right\" width=\"52px\">\n <v-btn\n icon=\"mdi-plus\"\n variant=\"text\"\n data-test=\"new-metadata-icon\"\n @click=\"addEnvVar\"\n />\n </th>\n </tr>\n <tr v-for=\"(env, i) in selected\" :key=\"`tr-${i}`\">\n <td>\n <v-text-field\n v-model=\"env.key\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`key-${i}`\"\n />\n </td>\n <td>\n <v-text-field\n v-model=\"env.value\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`value-${i}`\"\n />\n </td>\n <td>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n :data-test=\"`remove-env-icon-${i}`\"\n @click=\"delEnvVar(i)\"\n />\n </td>\n </tr>\n </tbody>\n </v-table>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: {\n type: Array,\n required: true,\n },\n },\n computed: {\n selected: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n methods: {\n addEnvVar: function () {\n this.selected.push({\n key: '',\n value: '',\n })\n },\n delEnvVar: function (index) {\n this.selected.splice(index, 1)\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, 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>\n <v-autocomplete\n v-model=\"selected\"\n v-model:search=\"search\"\n density=\"compact\"\n variant=\"outlined\"\n hide-no-data\n hide-details\n class=\"mb-5\"\n label=\"Select script\"\n :loading=\"loading\"\n :items=\"items\"\n data-test=\"select-script\"\n />\n </v-row>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n // TODO: cache items\n // this was previously handled by Vuetify and the `cache-items` prop on `v-autocomplete`, but that feature was\n // dropped in Vuetify 3\n props: {\n modelValue: String, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n loading: false,\n search: '',\n selected: this.modelValue,\n scripts: [],\n items: [],\n }\n },\n watch: {\n selected(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal && newVal.slice(-1) === '*') {\n // Remove the * before returning\n this.$emit('file', newVal.substring(0, newVal.length - 1))\n } else {\n this.$emit('file', newVal)\n }\n }\n },\n search(val) {\n val && val !== this.selected && this.querySelections(val)\n },\n },\n created() {\n this.loading = true\n Api.get('/script-api/scripts')\n .then((response) => {\n this.scripts = response.data.filter((filename) => {\n return filename.includes('.rb') || filename.includes('.py')\n })\n this.items = this.scripts\n })\n .catch((error) => {\n this.$emit('error', {\n type: 'error',\n text: `Failed to connect to OpenC3. ${error}`,\n error: error,\n })\n })\n this.selected = this.modelValue ? this.modelValue : null\n this.loading = false\n },\n methods: {\n querySelections: function (v) {\n this.loading = true\n // Simulated ajax query\n setTimeout(() => {\n this.items = this.scripts.filter((e) => {\n return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1\n })\n this.loading = false\n }, 500)\n },\n },\n}\n</script>\n"],"names":["_sfc_main","CmdUtilities","label","_b","_a","state","value","_createElementBlock","$props","_openBlock","_hoisted_1","_createVNode","_component_v_select","$options","_component_v_text_field","_createBlock","TargetPacketItemChooser","CommandParameterEditor","DetailsDialog","OpenC3Api","event","row","target","error","command","parameter","val","range","cmd","stateEntry","cmdString","parts","params","paramsString","paramPairs","bracketLevel","current","char","pair","firstSpace","key","parsed","stateKey","_component_v_card","_createElementVNode","_component_target_packet_item_chooser","$data","_cache","$event","_component_v_card_title","_component_v_spacer","_component_v_data_table","_withCtx","item","_renderSlot","_ctx","_component_command_parameter_editor","_component_v_menu","_component_v_list","_Fragment","_renderList","index","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog","_component_v_table","_component_v_btn","env","i","newVal","oldVal","Api","response","filename","v","_component_v_row","_component_v_autocomplete"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./Layout-DDewLzbI.cjs"),l=require("./VerticalWidget-wuRCrd7Q.cjs"),e=require("vue"),c=require("./CustomIcon-eie3rPKh.cjs"),u={components:{VerticalWidget:l.default},mixins:[i.Layout],created:function(){if(this.setHeight(this.parameters[0],"px",200),this.parameters[1]){let r=this.parameters[1];this.widgets.forEach(s=>{s.settings.find(n=>n[0]==="MARGIN"||n[0].startsWith("RAW")&&n[1].toUpperCase().includes("MARGIN"))===void 0&&s.settings.push(["MARGIN",r])})}}};function m(r,s,o,n,f,d){return e.openBlock(),e.createElementBlock("div",{ref:"container",style:e.normalizeStyle(r.computedStyle),class:"overflow-y-auto"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.widgets,(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},r.listeners,{key:a,target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":r.screenValues,"screen-time-zone":r.screenTimeZone,widgets:t.widgets,name:t.name,line:t.line,"line-number":t.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))),128))],4)}const p=c._export_sfc(u,[["render",m]]);exports.default=p;
|
|
2
|
-
//# sourceMappingURL=ScrollwindowWidget-ByJRy528.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollwindowWidget-ByJRy528.cjs","sources":["../src/widgets/ScrollwindowWidget.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\" :style=\"computedStyle\" class=\"overflow-y-auto\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n v-for=\"(widget, index) in widgets\"\n :key=\"index\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </div>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport VerticalWidget from './VerticalWidget.vue'\n\nexport default {\n components: {\n VerticalWidget,\n },\n mixins: [Layout],\n created: function () {\n this.setHeight(this.parameters[0], 'px', 200)\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n // Don't push MARGIN on a widget that's already defined it\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","VerticalWidget","Layout","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","index","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":"4NA8CKA,EAAU,CACb,WAAY,CACV,eAAAC,EAAAA,SAEF,OAAQ,CAACC,EAAAA,MAAM,EACf,QAAS,UAAY,CAEnB,GADA,KAAK,UAAU,KAAK,WAAW,CAAC,EAAG,KAAM,GAAG,EACxC,KAAK,WAAW,CAAC,EAAG,CACtB,IAAIC,EAAS,KAAK,WAAW,CAAC,EAC9B,KAAK,QAAQ,QAASC,GAAW,CAEjBA,EAAO,SAAS,KAC3BC,GACCA,EAAQ,CAAC,IAAM,UACdA,EAAQ,CAAC,EAAE,WAAW,KAAK,GAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ,CAChD,IACc,QACZD,EAAO,SAAS,KAAK,CAAC,SAAUD,CAAM,CAAC,CAE3C,CAAC,CACH,CACF,CACF,+CA9CEG,EAAAA,mBAgBM,MAAA,CAhBD,IAAI,YAAa,uBAAOC,EAAA,aAAa,EAAE,MAAM,qBAChDC,EAAAA,UAAA,EAAA,EAAAF,EAAAA,mBAcEG,WAAA,KAAAC,EAAAA,WAX0BH,EAAA,QAAO,CAAzBH,EAAQO,KAHlBH,EAAAA,UAAA,EAAAI,EAAAA,YAcEC,EAAAA,wBAZKT,EAAO,IAAI,EAFlBU,EAAAA,WAcE,aAbQP,EAAA,UAAS,CAGhB,IAAKI,EACL,OAAQP,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeG,EAAA,aACf,mBAAkBA,EAAA,eAClB,QAASH,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { L as m } from "./Layout-DW5yNlp7.js";
|
|
2
|
-
import l from "./VerticalWidget-DsnEzKZ2.js";
|
|
3
|
-
import { createElementBlock as o, openBlock as n, normalizeStyle as c, Fragment as p, renderList as u, createBlock as f, resolveDynamicComponent as d, mergeProps as h } from "vue";
|
|
4
|
-
import { _ as g } from "./CustomIcon-DTfsnDJn.js";
|
|
5
|
-
const y = {
|
|
6
|
-
components: {
|
|
7
|
-
VerticalWidget: l
|
|
8
|
-
},
|
|
9
|
-
mixins: [m],
|
|
10
|
-
created: function() {
|
|
11
|
-
if (this.setHeight(this.parameters[0], "px", 200), this.parameters[1]) {
|
|
12
|
-
let r = this.parameters[1];
|
|
13
|
-
this.widgets.forEach((s) => {
|
|
14
|
-
s.settings.find(
|
|
15
|
-
(t) => t[0] === "MARGIN" || t[0].startsWith("RAW") && t[1].toUpperCase().includes("MARGIN")
|
|
16
|
-
) === void 0 && s.settings.push(["MARGIN", r]);
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
function v(r, s, a, t, _, k) {
|
|
22
|
-
return n(), o("div", {
|
|
23
|
-
ref: "container",
|
|
24
|
-
style: c(r.computedStyle),
|
|
25
|
-
class: "overflow-y-auto"
|
|
26
|
-
}, [
|
|
27
|
-
(n(!0), o(p, null, u(r.widgets, (e, i) => (n(), f(d(e.type), h({ ref_for: !0 }, r.listeners, {
|
|
28
|
-
key: i,
|
|
29
|
-
target: e.target,
|
|
30
|
-
parameters: e.parameters,
|
|
31
|
-
settings: e.settings,
|
|
32
|
-
"screen-values": r.screenValues,
|
|
33
|
-
"screen-time-zone": r.screenTimeZone,
|
|
34
|
-
widgets: e.widgets,
|
|
35
|
-
name: e.name,
|
|
36
|
-
line: e.line,
|
|
37
|
-
"line-number": e.lineNumber
|
|
38
|
-
}), null, 16, ["target", "parameters", "settings", "screen-values", "screen-time-zone", "widgets", "name", "line", "line-number"]))), 128))
|
|
39
|
-
], 4);
|
|
40
|
-
}
|
|
41
|
-
const $ = /* @__PURE__ */ g(y, [["render", v]]);
|
|
42
|
-
export {
|
|
43
|
-
$ as default
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=ScrollwindowWidget-Dn29gs-U.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollwindowWidget-Dn29gs-U.js","sources":["../src/widgets/ScrollwindowWidget.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\" :style=\"computedStyle\" class=\"overflow-y-auto\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n v-for=\"(widget, index) in widgets\"\n :key=\"index\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </div>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport VerticalWidget from './VerticalWidget.vue'\n\nexport default {\n components: {\n VerticalWidget,\n },\n mixins: [Layout],\n created: function () {\n this.setHeight(this.parameters[0], 'px', 200)\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n // Don't push MARGIN on a widget that's already defined it\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","VerticalWidget","Layout","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","index","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":";;;;AA8CA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,gBAAAC;AAAA;EAEF,QAAQ,CAACC,CAAM;AAAA,EACf,SAAS,WAAY;AAEnB,QADA,KAAK,UAAU,KAAK,WAAW,CAAC,GAAG,MAAM,GAAG,GACxC,KAAK,WAAW,CAAC,GAAG;AACtB,UAAIC,IAAS,KAAK,WAAW,CAAC;AAC9B,WAAK,QAAQ,QAAQ,CAACC,MAAW;AAQ/B,QANcA,EAAO,SAAS;AAAA,UAC5B,CAACC,MACCA,EAAQ,CAAC,MAAM,YACdA,EAAQ,CAAC,EAAE,WAAW,KAAK,KAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ;AAAA,QAChD,MACc,UACZD,EAAO,SAAS,KAAK,CAAC,UAAUD,CAAM,CAAC;AAAA,MAE3C,CAAC;AAAA,IACH;AAAA,EACF;AACF;;cA9CEG,EAgBM,OAAA;AAAA,IAhBD,KAAI;AAAA,IAAa,SAAOC,EAAA,aAAa;AAAA,IAAE,OAAM;AAAA;KAChDC,EAAA,EAAA,GAAAF,EAcEG,GAAA,MAAAC,EAX0BH,EAAA,SAAO,CAAzBH,GAAQO,OAHlBH,EAAA,GAAAI,EAcEC,EAZKT,EAAO,IAAI,GAFlBU,EAcE,iBAbQP,EAAA,WAAS;AAAA,MAGhB,KAAKI;AAAA,MACL,QAAQP,EAAO;AAAA,MACf,YAAYA,EAAO;AAAA,MACnB,UAAUA,EAAO;AAAA,MACjB,iBAAeG,EAAA;AAAA,MACf,oBAAkBA,EAAA;AAAA,MAClB,SAASH,EAAO;AAAA,MAChB,MAAMA,EAAO;AAAA,MACb,MAAMA,EAAO;AAAA,MACb,eAAaA,EAAO;AAAA;;;;"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),f=require("./CustomIcon-eie3rPKh.cjs");require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CP8T5W6m.cjs");const S=require("./TopBar-HxaiWynT.cjs"),_=require("./settings-sg_XHXQ-.cjs"),D={data(){return{suppressedWarnings:[],selectedSuppressedWarnings:[],selectAllSuppressedWarnings:!1}},watch:{selectAllSuppressedWarnings:function(o){o?this.selectedSuppressedWarnings=this.suppressedWarnings.map(t=>t.key):this.selectedSuppressedWarnings=[]}},created(){this.loadSuppressedWarnings()},methods:{loadSuppressedWarnings:function(){this.suppressedWarnings=Object.keys(localStorage).filter(o=>o.startsWith("suppresswarning__")).map(this.localStorageKeyToDisplayObject),this.selectedSuppressedWarnings=[]},localStorageKeyToDisplayObject:function(o){const t=o.split("__")[1].replaceAll("_"," ");return{key:o,text:t.charAt(0).toUpperCase()+t.slice(1),value:localStorage[o]}},resetSuppressedWarnings:function(){this.deleteLocalStorageKeys(this.selectedSuppressedWarnings),this.loadSuppressedWarnings()},deleteLocalStorageKeys:function(o){for(const t of o)delete localStorage[t]}}};function A(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-checkbox"),i=e.resolveComponent("v-card-text"),d=e.resolveComponent("v-btn"),c=e.resolveComponent("v-card-actions"),v=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(v,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode("Reset suppressed warnings",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode(` This resets "don't show this again" dialogs on this browser `,-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[n.suppressedWarnings.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(s,{modelValue:n.selectAllSuppressedWarnings,"onUpdate:modelValue":t[0]||(t[0]=r=>n.selectAllSuppressedWarnings=r),label:"Select All Warnings",density:"compact"},null,8,["modelValue"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.suppressedWarnings,r=>(e.openBlock(),e.createBlock(s,{key:r.key,modelValue:n.selectedSuppressedWarnings,"onUpdate:modelValue":t[1]||(t[1]=l=>n.selectedSuppressedWarnings=l),label:r.text,value:r.key,density:"compact","hide-details":""},null,8,["modelValue","label","value"]))),128))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" No warnings to reset ")],64))]),_:1}),e.createVNode(c,{class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,{disabled:!n.selectedSuppressedWarnings.length,onClick:m.resetSuppressedWarnings,color:"warning",variant:"text","data-test":"reset-suppressed-warnings"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" Reset ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const O=f._export_sfc(D,[["render",A]]),H={data(){return{lastConfigs:[],selectedLastConfigs:[],selectAllLastConfigs:!1}},watch:{selectAllLastConfigs:function(o){o?this.selectedLastConfigs=this.lastConfigs.map(t=>t.key):this.selectedLastConfigs=[]}},created(){this.loadLastConfigs()},methods:{loadLastConfigs:function(){this.lastConfigs=Object.keys(localStorage).filter(o=>o.endsWith("__default")).map(o=>{const t=o.split("__")[0].replaceAll("_"," ");return{key:o,text:t.charAt(0).toUpperCase()+t.slice(1)}}),this.selectedLastConfigs=[]},clearLastConfigs:function(){this.deleteLocalStorageKeys(this.selectedLastConfigs),this.loadLastConfigs()},deleteLocalStorageKeys:function(o){for(const t of o)delete localStorage[t]}}};function R(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-checkbox"),i=e.resolveComponent("v-card-text"),d=e.resolveComponent("v-btn"),c=e.resolveComponent("v-card-actions"),v=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(v,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode(" Clear default configs ",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode(" This clears the default tool configs on this browser ",-1)])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[n.lastConfigs.length?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(s,{modelValue:n.selectAllLastConfigs,"onUpdate:modelValue":t[0]||(t[0]=r=>n.selectAllLastConfigs=r),label:"Select All Configs",density:"compact"},null,8,["modelValue"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.lastConfigs,r=>(e.openBlock(),e.createBlock(s,{key:r.key,modelValue:n.selectedLastConfigs,"onUpdate:modelValue":t[1]||(t[1]=l=>n.selectedLastConfigs=l),label:r.text,value:r.key,"hide-details":"",density:"compact"},null,8,["modelValue","label","value"]))),128))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" No configs to clear ")],64))]),_:1}),e.createVNode(c,{class:"px-2"},{default:e.withCtx(()=>[e.createVNode(d,{disabled:!n.selectedLastConfigs.length,onClick:m.clearLastConfigs,color:"warning",variant:"text","data-test":"clear-default-configs"},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" Clear ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const q=f._export_sfc(H,[["render",R]]),M={data(){return{vimMode:S.AceEditorUtils.isVimModeEnabled(),defaultLanguage:S.AceEditorUtils.getDefaultScriptingLanguage(),languageOptions:[{text:"Ruby",value:"ruby"},{text:"Python",value:"python"}]}},methods:{save:function(){S.AceEditorUtils.setVimMode(this.vimMode),S.AceEditorUtils.setDefaultScriptingLanguage(this.defaultLanguage)}}};function P(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-select"),i=e.resolveComponent("v-switch"),d=e.resolveComponent("v-card-text"),c=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),r=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[2]||(t[2]=[e.createTextVNode(" Code Editor Settings ",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode(" Settings for the code editors built into COSMOS (e.g. in Script Runner) ",-1)])]),_:1}),e.createVNode(d,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(s,{modelValue:n.defaultLanguage,"onUpdate:modelValue":t[0]||(t[0]=l=>n.defaultLanguage=l),label:"Default scripting language",items:n.languageOptions,"item-title":"text","item-value":"value",color:"primary",class:"mt-4","data-test":"default-language"},null,8,["modelValue","items"]),e.createVNode(i,{modelValue:n.vimMode,"onUpdate:modelValue":t[1]||(t[1]=l=>n.vimMode=l),label:"Vim mode",color:"primary"},null,8,["modelValue"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(c,{color:"success",variant:"text","data-test":"save-editor-settings",onClick:m.save},{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const j=f._export_sfc(M,[["render",P]]),y="astro",Z={mixins:[_.Settings],data(){return{hideClock:!1}},created(){this.loadSetting(y)},methods:{save(){this.saveSetting(y,JSON.stringify({hideClock:this.hideClock}))},parseSetting:function(o){if(o){let t=JSON.parse(o);this.hideClock=t.hideClock}}}};function z(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-alert"),s=e.resolveComponent("v-switch"),i=e.resolveComponent("v-card-text"),d=e.resolveComponent("v-btn"),c=e.resolveComponent("v-card-actions"),v=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(v,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Astro Settings",-1)])]),_:1}),e.createVNode(a,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=r=>o.errorLoading=r),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(a,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=r=>o.errorSaving=r),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(a,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=r=>o.successSaving=r),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(i,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(s,{label:"Hide Astro Clock",modelValue:n.hideClock,"onUpdate:modelValue":t[3]||(t[3]=r=>n.hideClock=r),color:"primary"},null,8,["modelValue"])]),_:1}),e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(d,{onClick:m.save,color:"success",variant:"text","data-test":"save-astro-settings"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const J=f._export_sfc(Z,[["render",z]]),k="classification_banner",K={mixins:[_.Settings],data(){return{text:"",displayTopBanner:!1,displayBottomBanner:!1,topHeight:0,bottomHeight:0,selectedBackgroundColor:"red",customBackgroundColor:"",selectedFontColor:"white",customFontColor:"",customColorHint:"Enter a 3 or 6-digit hex color code",colors:[{text:"Yellow",value:"yellow"},{text:"Orange",value:"orange"},{text:"Red",value:"red"},{text:"Purple",value:"purple"},{text:"Blue",value:"blue"},{text:"Green",value:"green"},{text:"Black",value:"black"},{text:"White",value:"white"},{text:"Custom",value:!1}],rules:{customColor:o=>/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(o)||this.customColorHint}}},computed:{saveObj:function(){return JSON.stringify({text:this.text,fontColor:this.selectedFontColor||this.customFontColor,backgroundColor:this.selectedBackgroundColor||this.customBackgroundColor,topHeight:this.displayTopBanner?this.topHeight:0,bottomHeight:this.displayBottomBanner?this.bottomHeight:0})},formValid:function(){return(this.selectedFontColor||this.rules.customColor(this.customFontColor)===!0)&&(this.selectedBackgroundColor||this.rules.customColor(this.customBackgroundColor)===!0)}},watch:{displayTopBanner:function(o){o?this.topHeight=20:this.topHeight=0},displayBottomBanner:function(o){o?this.bottomHeight=20:this.bottomHeight=0},customFontColor:function(o){o&&o.length&&!o.startsWith("#")&&(this.customFontColor=`#${o}`)},customBackgroundColor:function(o){o&&o.length&&!o.startsWith("#")&&(this.customBackgroundColor=`#${o}`)}},created(){this.loadSetting(k)},methods:{save(){this.saveSetting(k,this.saveObj)},parseSetting:function(o){if(o){const t=JSON.parse(o);this.text=t.text,this.topHeight=t.topHeight,this.bottomHeight=t.bottomHeight,this.displayTopBanner=t.topHeight!==0,this.displayBottomBanner=t.bottomHeight!==0,t.backgroundColor&&t.backgroundColor.startsWith("#")?(this.customBackgroundColor=t.backgroundColor,this.selectedBackgroundColor=!1):this.selectedBackgroundColor=t.backgroundColor,t.fontColor&&t.fontColor.startsWith("#")?(this.customFontColor=t.fontColor,this.selectedFontColor=!1):this.selectedFontColor=t.fontColor}}}};function G(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-alert"),s=e.resolveComponent("v-text-field"),i=e.resolveComponent("v-col"),d=e.resolveComponent("v-row"),c=e.resolveComponent("v-icon"),v=e.resolveComponent("v-list-item"),r=e.resolveComponent("v-select"),l=e.resolveComponent("v-switch"),N=e.resolveComponent("v-card-text"),h=e.resolveComponent("v-btn"),b=e.resolveComponent("v-card-actions"),w=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(w,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode("Classification Banner Settings",-1)])]),_:1}),e.createVNode(a,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=u=>o.errorLoading=u),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(a,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=u=>o.errorSaving=u),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(a,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=u=>o.successSaving=u),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(N,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(s,{label:"Text",modelValue:n.text,"onUpdate:modelValue":t[3]||(t[3]=u=>n.text=u),"data-test":"classification-banner-text"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,{label:"Background color",items:n.colors,"item-title":"text",modelValue:n.selectedBackgroundColor,"onUpdate:modelValue":t[4]||(t[4]=u=>n.selectedBackgroundColor=u),"data-test":"classification-banner-background-color"},e.createSlots({item:e.withCtx(({props:u,item:p})=>[e.createVNode(v,e.mergeProps(u,{value:p.text}),{prepend:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(c,{key:0,color:p.value},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"])):e.createCommentVNode("",!0)]),_:2},1040,["value"])]),_:2},[n.selectedBackgroundColor?{name:"prepend-inner",fn:e.withCtx(()=>[e.createVNode(c,{color:n.selectedBackgroundColor},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"])]),key:"0"}:void 0]),1032,["items","modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(s,{label:"Custom background color",hint:n.customColorHint,disabled:n.selectedBackgroundColor!==!1,modelValue:n.customBackgroundColor,"onUpdate:modelValue":t[5]||(t[5]=u=>n.customBackgroundColor=u),rules:[n.rules.customColor],"data-test":"classification-banner-custom-background-color"},{"prepend-inner":e.withCtx(()=>[e.withDirectives(e.createVNode(c,{color:n.customBackgroundColor},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"]),[[e.vShow,!n.selectedBackgroundColor]])]),_:1},8,["hint","disabled","modelValue","rules"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(r,{label:"Font color",items:n.colors,"item-title":"text",modelValue:n.selectedFontColor,"onUpdate:modelValue":t[6]||(t[6]=u=>n.selectedFontColor=u),"data-test":"classification-banner-font-color"},e.createSlots({item:e.withCtx(({props:u,item:p})=>[e.createVNode(v,e.mergeProps(u,{value:p.text}),{prepend:e.withCtx(()=>[p.value?(e.openBlock(),e.createBlock(c,{key:0,color:p.value},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"])):e.createCommentVNode("",!0)]),_:2},1040,["value"])]),_:2},[n.selectedFontColor?{name:"prepend-inner",fn:e.withCtx(()=>[e.withDirectives(e.createVNode(c,{color:n.selectedFontColor},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"]),[[e.vShow,n.selectedFontColor]])]),key:"0"}:void 0]),1032,["items","modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(s,{label:"Custom font color",hint:n.customColorHint,disabled:n.selectedFontColor!==!1,modelValue:n.customFontColor,"onUpdate:modelValue":t[7]||(t[7]=u=>n.customFontColor=u),rules:[n.rules.customColor],"data-test":"classification-banner-custom-font-color"},{"prepend-inner":e.withCtx(()=>[e.withDirectives(e.createVNode(c,{color:n.customFontColor},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"]),[[e.vShow,!n.selectedFontColor]])]),_:1},8,["hint","disabled","modelValue","rules"])]),_:1})]),_:1}),e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(l,{label:"Display top banner",modelValue:n.displayTopBanner,"onUpdate:modelValue":t[8]||(t[8]=u=>n.displayTopBanner=u),color:"primary","data-test":"display-top-banner"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(s,{label:"Top height",disabled:!n.displayTopBanner,type:"number",suffix:"px",modelValue:n.topHeight,"onUpdate:modelValue":t[9]||(t[9]=u=>n.topHeight=u),"data-test":"classification-banner-top-height"},null,8,["disabled","modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(l,{label:"Display bottom banner",modelValue:n.displayBottomBanner,"onUpdate:modelValue":t[10]||(t[10]=u=>n.displayBottomBanner=u),color:"primary","data-test":"display-bottom-banner"},null,8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(s,{label:"Bottom height",disabled:!n.displayBottomBanner,type:"number",suffix:"px",modelValue:n.bottomHeight,"onUpdate:modelValue":t[11]||(t[11]=u=>n.bottomHeight=u),"data-test":"classification-banner-bottom-height"},null,8,["disabled","modelValue"])]),_:1})]),_:1})]),_:1}),e.createVNode(b,null,{default:e.withCtx(()=>[e.createVNode(h,{disabled:!m.formValid,onClick:m.save,color:"success",variant:"text","data-test":"save-classification-banner"},{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const I=f._export_sfc(K,[["render",G]]),T="time_zone",Y={mixins:[_.Settings],data(){return{timeZones:["local","UTC"],timeZone:"local"}},created(){this.loadSetting(T)},methods:{save(){this.saveSetting(T,this.timeZone)},parseSetting:function(o){o&&(this.timeZone=o)}}};function Q(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-alert"),i=e.resolveComponent("v-select"),d=e.resolveComponent("v-card-text"),c=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),r=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Time Zone",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" The time zone to use in all COSMOS tools (graphs, time choosers, log messages, etc). Anywhere a date / time is displayed, it will be in the chosen time zone. (Note: All timestamps are UTC in the backend). ",-1)])]),_:1}),e.createVNode(s,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=l=>o.errorLoading=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=l=>o.errorSaving=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=l=>o.successSaving=l),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i,{modelValue:n.timeZone,"onUpdate:modelValue":t[3]||(t[3]=l=>n.timeZone=l),items:n.timeZones,label:"Select time display","hide-details":"","prepend-icon":"mdi-map-clock","single-line":"","data-test":"time-zone"},null,8,["modelValue","items"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(c,{onClick:m.save,color:"success",variant:"text","data-test":"save-time-zone"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const X=f._export_sfc(Y,[["render",Q]]),B="news_feed",$={mixins:[_.Settings],data(){return{newsFeed:!0}},created(){this.loadSetting(B)},methods:{save(){this.saveSetting(B,this.newsFeed),this.newsFeed&&this.api.update_news()},parseSetting:function(o){this.newsFeed=o}}};function ee(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-alert"),s=e.resolveComponent("v-switch"),i=e.resolveComponent("v-card-text"),d=e.resolveComponent("v-btn"),c=e.resolveComponent("v-card-actions"),v=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(v,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("News Feed Settings",-1)])]),_:1}),e.createVNode(a,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=r=>o.errorLoading=r),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(a,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=r=>o.errorSaving=r),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(a,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=r=>o.successSaving=r),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(i,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(s,{label:`Allow COSMOS backend to pull the news feed from the COSMOS external news site.
|
|
2
|
-
This is a low bandwidth poll which only happens every 12 hrs. To immediately update the news feed, click the 'Refresh' in the User Menu.`,modelValue:n.newsFeed,"onUpdate:modelValue":t[3]||(t[3]=r=>n.newsFeed=r),color:"primary"},null,8,["modelValue"])]),_:1}),e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(d,{onClick:m.save,color:"success",variant:"text","data-test":"save-news-feed"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const te=f._export_sfc($,[["render",ee]]),U="subtitle",oe={mixins:[_.Settings],data(){return{subtitle:""}},created(){this.loadSetting(U)},methods:{save(){this.saveSetting(U,this.subtitle)},parseSetting:function(o){o&&(this.subtitle=o)}}};function ne(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-alert"),i=e.resolveComponent("v-text-field"),d=e.resolveComponent("v-card-text"),c=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),r=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode("Subtitle",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" This sets a subtitle to display below the COSMOS logo in the Navigation bar. ",-1)])]),_:1}),e.createVNode(s,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=l=>o.errorLoading=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=l=>o.errorSaving=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=l=>o.successSaving=l),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(d,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(i,{label:"Subtitle",modelValue:n.subtitle,"onUpdate:modelValue":t[3]||(t[3]=l=>n.subtitle=l),"data-test":"subtitle"},null,8,["modelValue"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(c,{onClick:m.save,color:"success",variant:"text","data-test":"save-subtitle"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const le=f._export_sfc(oe,[["render",ne]]),F="source_url",re={mixins:[_.Settings],data(){return{sourceUrl:"https://github.com/OpenC3/cosmos"}},created(){this.loadSetting(F)},methods:{save(){this.saveSetting(F,this.sourceUrl)},parseSetting:function(o){o&&(this.sourceUrl=o)}}};function se(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-alert"),i=e.resolveComponent("v-text-field"),d=e.resolveComponent("v-card-text"),c=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),r=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" Source code URL ",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(' This sets the URL for the "Source" link in the footer. This is required under the AGPL license. ',-1)])]),_:1}),e.createVNode(s,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=l=>o.errorLoading=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=l=>o.errorSaving=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=l=>o.successSaving=l),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(d,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(i,{label:"Source URL",modelValue:n.sourceUrl,"onUpdate:modelValue":t[3]||(t[3]=l=>n.sourceUrl=l),"data-test":"source-url"},null,8,["modelValue"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(c,{onClick:m.save,color:"success",variant:"text","data-test":"save-source-url"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const ae=f._export_sfc(re,[["render",se]]),L="rubygems_url",ie={mixins:[_.Settings],data(){return{rubygemsUrl:"https://rubygems.org"}},created(){this.loadSetting(L)},methods:{save(){this.saveSetting(L,this.rubygemsUrl)},parseSetting:function(o){o&&(this.rubygemsUrl=o)}}};function de(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-alert"),i=e.resolveComponent("v-text-field"),d=e.resolveComponent("v-card-text"),c=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),r=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" Rubygems URL ",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" This sets the URL for installing dependency rubygems. Also used for rubygem discovery. ",-1)])]),_:1}),e.createVNode(s,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=l=>o.errorLoading=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=l=>o.errorSaving=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=l=>o.successSaving=l),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(d,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(i,{label:"Rubygems URL",modelValue:n.rubygemsUrl,"onUpdate:modelValue":t[3]||(t[3]=l=>n.rubygemsUrl=l),"data-test":"rubygems-url"},null,8,["modelValue"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(c,{onClick:m.save,color:"success",variant:"text","data-test":"save-rubygems-url"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const ce=f._export_sfc(ie,[["render",de]]),E="pypi_url",ue={mixins:[_.Settings],data(){return{pypiUrl:"https://pypi.org"}},created(){this.loadSetting(E)},methods:{save(){this.saveSetting(E,this.pypiUrl)},parseSetting:function(o){o&&(this.pypiUrl=o)}}};function pe(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-alert"),i=e.resolveComponent("v-text-field"),d=e.resolveComponent("v-card-text"),c=e.resolveComponent("v-btn"),v=e.resolveComponent("v-card-actions"),r=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(r,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" Pypi URL ",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" This sets the URL for installing dependency python packages. Also used for package discovery. ",-1)])]),_:1}),e.createVNode(s,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=l=>o.errorLoading=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=l=>o.errorSaving=l),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=l=>o.successSaving=l),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[6]||(t[6]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(d,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(i,{label:"Pypi URL",modelValue:n.pypiUrl,"onUpdate:modelValue":t[3]||(t[3]=l=>n.pypiUrl=l),"data-test":"pypi-url"},null,8,["modelValue"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(c,{onClick:m.save,color:"success",variant:"text","data-test":"save-pypi-url"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})}const me=f._export_sfc(ue,[["render",pe]]),W="context_tag",ve={mixins:[_.Settings],data(){return{text:"",displayContextTag:!1,selectedBackgroundColor:"#009fa3",customBackgroundColor:"",selectedFontColor:"white",customFontColor:"",customColorHint:"Enter a 3 or 6-digit hex color code",colors:[{text:"Teal",value:"#009fa3"},{text:"Purple",value:"#6058a8"},{text:"Pink",value:"#81009a"},{text:"Orange",value:"#af420a"},{text:"Black",value:"black"},{text:"White",value:"white"},{text:"Custom",value:!1}],rules:{customColor:o=>/^#(?:[0-9a-fA-F]{3}){1,2}$/.test(o)||this.customColorHint}}},computed:{saveObj:function(){return JSON.stringify({text:this.text,fontColor:this.selectedFontColor||this.customFontColor,backgroundColor:this.selectedBackgroundColor||this.customBackgroundColor})},formValid:function(){return(this.selectedFontColor||this.rules.customColor(this.customFontColor)===!0)&&(this.selectedBackgroundColor||this.rules.customColor(this.customBackgroundColor)===!0)}},watch:{displayContextTag:function(o){o?this.text||(this.text="REPLACEME"):this.text=null},customFontColor:function(o){o&&o.length&&!o.startsWith("#")&&(this.customFontColor=`#${o}`)},customBackgroundColor:function(o){o&&o.length&&!o.startsWith("#")&&(this.customBackgroundColor=`#${o}`)}},created(){this.loadSetting(W)},methods:{save(){this.saveSetting(W,this.saveObj)},parseSetting:function(o){if(o){const t=JSON.parse(o);this.text=t.text,this.displayContextTag=!!t.text,t.backgroundColor&&(this.colors.some(g=>g.value===t.backgroundColor)?this.selectedBackgroundColor=t.backgroundColor:(this.customBackgroundColor=t.backgroundColor,this.selectedBackgroundColor=!1)),t.fontColor&&(this.colors.some(g=>g.value===t.fontColor)?this.selectedFontColor=t.fontColor:(this.customFontColor=t.fontColor,this.selectedFontColor=!1))}}}};function Ce(o,t,V,g,n,m){const C=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),s=e.resolveComponent("v-alert"),i=e.resolveComponent("v-text-field"),d=e.resolveComponent("v-col"),c=e.resolveComponent("v-row"),v=e.resolveComponent("v-switch"),r=e.resolveComponent("v-icon"),l=e.resolveComponent("v-list-item"),N=e.resolveComponent("v-select"),h=e.resolveComponent("v-card-text"),b=e.resolveComponent("v-btn"),w=e.resolveComponent("v-card-actions"),u=e.resolveComponent("v-card");return e.openBlock(),e.createBlock(u,null,{default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[...t[9]||(t[9]=[e.createTextVNode("Context Tag Settings",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode(" When enabled this displays a Context Tag on the top right of the screen with custom colors and text. This can help differentiate environments. ",-1)])]),_:1}),e.createVNode(s,{modelValue:o.errorLoading,"onUpdate:modelValue":t[0]||(t[0]=p=>o.errorLoading=p),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error loading previous configuration due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.errorSaving,"onUpdate:modelValue":t[1]||(t[1]=p=>o.errorSaving=p),type:"error",closable:"",density:"compact"},{default:e.withCtx(()=>[e.createTextVNode(" Error saving due to "+e.toDisplayString(o.errorText),1)]),_:1},8,["modelValue"]),e.createVNode(s,{modelValue:o.successSaving,"onUpdate:modelValue":t[2]||(t[2]=p=>o.successSaving=p),type:"success",closable:"",density:"compact"},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode(" Saved! (Refresh the page to see changes) ",-1)])]),_:1},8,["modelValue"]),e.createVNode(h,{class:"pb-0"},{default:e.withCtx(()=>[e.createVNode(c,{dense:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i,{label:"Text",modelValue:n.text,"onUpdate:modelValue":t[3]||(t[3]=p=>n.text=p),"data-test":"context-tag-text",disabled:!n.displayContextTag},null,8,["modelValue","disabled"])]),_:1})]),_:1}),e.createVNode(c,{dense:""},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(v,{label:"Display context tag",modelValue:n.displayContextTag,"onUpdate:modelValue":t[4]||(t[4]=p=>n.displayContextTag=p),color:"primary","data-test":"display-context-tag"},null,8,["modelValue"])]),_:1}),e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(N,{label:"Background color",items:n.colors,"item-title":"text",modelValue:n.selectedBackgroundColor,"onUpdate:modelValue":t[5]||(t[5]=p=>n.selectedBackgroundColor=p),"data-test":"context-tag-background-color"},e.createSlots({item:e.withCtx(({props:p,item:x})=>[e.createVNode(l,e.mergeProps(p,{value:x.text}),{prepend:e.withCtx(()=>[x.value?(e.openBlock(),e.createBlock(r,{key:0,color:x.value},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"])):e.createCommentVNode("",!0)]),_:2},1040,["value"])]),_:2},[n.selectedBackgroundColor?{name:"prepend-inner",fn:e.withCtx(()=>[e.createVNode(r,{color:n.selectedBackgroundColor},{default:e.withCtx(()=>[...t[12]||(t[12]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"])]),key:"0"}:void 0]),1032,["items","modelValue"])]),_:1}),e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i,{label:"Custom background color",hint:n.customColorHint,disabled:n.selectedBackgroundColor!==!1,modelValue:n.customBackgroundColor,"onUpdate:modelValue":t[6]||(t[6]=p=>n.customBackgroundColor=p),rules:[n.rules.customColor],"data-test":"context-tag-custom-background-color"},{"prepend-inner":e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:n.customBackgroundColor},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"]),[[e.vShow,!n.selectedBackgroundColor]])]),_:1},8,["hint","disabled","modelValue","rules"])]),_:1}),e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(N,{label:"Font color",items:n.colors,"item-title":"text",modelValue:n.selectedFontColor,"onUpdate:modelValue":t[7]||(t[7]=p=>n.selectedFontColor=p),"data-test":"context-tag-font-color"},e.createSlots({item:e.withCtx(({props:p,item:x})=>[e.createVNode(l,e.mergeProps(p,{value:x.text}),{prepend:e.withCtx(()=>[x.value?(e.openBlock(),e.createBlock(r,{key:0,color:x.value},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"])):e.createCommentVNode("",!0)]),_:2},1040,["value"])]),_:2},[n.selectedFontColor?{name:"prepend-inner",fn:e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:n.selectedFontColor},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"]),[[e.vShow,n.selectedFontColor]])]),key:"0"}:void 0]),1032,["items","modelValue"])]),_:1}),e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i,{label:"Custom font color",hint:n.customColorHint,disabled:n.selectedFontColor!==!1,modelValue:n.customFontColor,"onUpdate:modelValue":t[8]||(t[8]=p=>n.customFontColor=p),rules:[n.rules.customColor],"data-test":"context-tag-custom-font-color"},{"prepend-inner":e.withCtx(()=>[e.withDirectives(e.createVNode(r,{color:n.customFontColor},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode(" mdi-square ",-1)])]),_:1},8,["color"]),[[e.vShow,!n.selectedFontColor]])]),_:1},8,["hint","disabled","modelValue","rules"])]),_:1})]),_:1})]),_:1}),e.createVNode(w,null,{default:e.withCtx(()=>[e.createVNode(b,{disabled:!m.formValid,onClick:m.save,color:"success",variant:"text","data-test":"save-context-tag"},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode(" Save ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})]),_:1})}const ge=f._export_sfc(ve,[["render",Ce]]),Ve={components:{SuppressedSettings:O,DefaultConfigSettings:q,EditorSettings:j,AstroSettings:J,ClassificationBannerSettings:I,TimeZoneSettings:X,NewsFeedSettings:te,SubtitleSettings:le,SourceCodeSettings:ae,RubyGemsSettings:ce,PypiSettings:me,ContextTagSettings:ge}};function fe(o,t,V,g,n,m){const C=e.resolveComponent("suppressed-settings"),a=e.resolveComponent("v-divider"),s=e.resolveComponent("default-config-settings"),i=e.resolveComponent("editor-settings"),d=e.resolveComponent("astro-settings"),c=e.resolveComponent("time-zone-settings"),v=e.resolveComponent("news-feed-settings"),r=e.resolveComponent("classification-banner-settings"),l=e.resolveComponent("subtitle-settings"),N=e.resolveComponent("source-code-settings"),h=e.resolveComponent("ruby-gems-settings"),b=e.resolveComponent("pypi-settings"),w=e.resolveComponent("context-tag-settings");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(C),e.createVNode(a),e.createVNode(s),e.createVNode(a),e.createVNode(i),e.createVNode(a),e.createVNode(d),e.createVNode(a),e.createVNode(c),e.createVNode(a),e.createVNode(v),e.createVNode(a),e.createVNode(r),e.createVNode(a),e.createVNode(l),e.createVNode(a),e.createVNode(N),e.createVNode(a),e.createVNode(h),e.createVNode(a),e.createVNode(b),e.createVNode(a),e.createVNode(w)])}const _e=f._export_sfc(Ve,[["render",fe]]);exports.default=_e;
|
|
3
|
-
//# sourceMappingURL=SettingsTab-8Zeg3G0C.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsTab-8Zeg3G0C.cjs","sources":["../src/tools/admin/tabs/settings/SuppressedSettings.vue","../src/tools/admin/tabs/settings/DefaultConfigSettings.vue","../src/tools/admin/tabs/settings/EditorSettings.vue","../src/tools/admin/tabs/settings/AstroSettings.vue","../src/tools/admin/tabs/settings/ClassificationBannerSettings.vue","../src/tools/admin/tabs/settings/TimeZoneSettings.vue","../src/tools/admin/tabs/settings/NewsFeedSettings.vue","../src/tools/admin/tabs/settings/SubtitleSettings.vue","../src/tools/admin/tabs/settings/SourceCodeSettings.vue","../src/tools/admin/tabs/settings/RubyGemsSettings.vue","../src/tools/admin/tabs/settings/PypiSettings.vue","../src/tools/admin/tabs/settings/ContextTagSettings.vue","../src/tools/admin/tabs/SettingsTab.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>\n <v-card-title>Reset suppressed warnings</v-card-title>\n <v-card-subtitle>\n This resets \"don't show this again\" dialogs on this browser\n </v-card-subtitle>\n <v-card-text>\n <template v-if=\"suppressedWarnings.length\">\n <v-checkbox\n v-model=\"selectAllSuppressedWarnings\"\n label=\"Select All Warnings\"\n density=\"compact\"\n />\n <v-checkbox\n v-for=\"warning in suppressedWarnings\"\n :key=\"warning.key\"\n v-model=\"selectedSuppressedWarnings\"\n :label=\"warning.text\"\n :value=\"warning.key\"\n density=\"compact\"\n hide-details\n />\n </template>\n <template v-else> No warnings to reset </template>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-btn\n :disabled=\"!selectedSuppressedWarnings.length\"\n @click=\"resetSuppressedWarnings\"\n color=\"warning\"\n variant=\"text\"\n data-test=\"reset-suppressed-warnings\"\n >\n Reset\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n suppressedWarnings: [],\n selectedSuppressedWarnings: [],\n selectAllSuppressedWarnings: false,\n }\n },\n watch: {\n selectAllSuppressedWarnings: function (val) {\n if (val) {\n this.selectedSuppressedWarnings = this.suppressedWarnings.map(\n (warning) => warning.key,\n )\n } else {\n this.selectedSuppressedWarnings = []\n }\n },\n },\n created() {\n this.loadSuppressedWarnings()\n },\n methods: {\n loadSuppressedWarnings: function () {\n this.suppressedWarnings = Object.keys(localStorage)\n .filter((key) => {\n return key.startsWith('suppresswarning__')\n })\n .map(this.localStorageKeyToDisplayObject)\n this.selectedSuppressedWarnings = []\n },\n localStorageKeyToDisplayObject: function (key) {\n const name = key.split('__')[1].replaceAll('_', ' ')\n return {\n key,\n text: name.charAt(0).toUpperCase() + name.slice(1),\n value: localStorage[key],\n }\n },\n resetSuppressedWarnings: function () {\n this.deleteLocalStorageKeys(this.selectedSuppressedWarnings)\n this.loadSuppressedWarnings()\n },\n deleteLocalStorageKeys: function (keys) {\n for (const key of keys) {\n delete localStorage[key]\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title> Clear default configs </v-card-title>\n <v-card-subtitle>\n This clears the default tool configs on this browser\n </v-card-subtitle>\n <v-card-text>\n <template v-if=\"lastConfigs.length\">\n <v-checkbox\n v-model=\"selectAllLastConfigs\"\n label=\"Select All Configs\"\n density=\"compact\"\n />\n <v-checkbox\n v-for=\"config in lastConfigs\"\n :key=\"config.key\"\n v-model=\"selectedLastConfigs\"\n :label=\"config.text\"\n :value=\"config.key\"\n hide-details\n density=\"compact\"\n />\n </template>\n <template v-else> No configs to clear </template>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-btn\n :disabled=\"!selectedLastConfigs.length\"\n @click=\"clearLastConfigs\"\n color=\"warning\"\n variant=\"text\"\n data-test=\"clear-default-configs\"\n >\n Clear\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n lastConfigs: [],\n selectedLastConfigs: [],\n selectAllLastConfigs: false,\n }\n },\n watch: {\n selectAllLastConfigs: function (val) {\n if (val) {\n this.selectedLastConfigs = this.lastConfigs.map((config) => config.key)\n } else {\n this.selectedLastConfigs = []\n }\n },\n },\n created() {\n this.loadLastConfigs()\n },\n methods: {\n loadLastConfigs: function () {\n this.lastConfigs = Object.keys(localStorage)\n .filter((key) => {\n return key.endsWith('__default')\n })\n .map((key) => {\n const name = key.split('__')[0].replaceAll('_', ' ')\n return {\n key,\n text: name.charAt(0).toUpperCase() + name.slice(1),\n }\n })\n this.selectedLastConfigs = []\n },\n clearLastConfigs: function () {\n this.deleteLocalStorageKeys(this.selectedLastConfigs)\n this.loadLastConfigs()\n },\n deleteLocalStorageKeys: function (keys) {\n for (const key of keys) {\n delete localStorage[key]\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title> Code Editor Settings </v-card-title>\n <v-card-subtitle>\n Settings for the code editors built into COSMOS (e.g. in Script Runner)\n </v-card-subtitle>\n <v-card-text class=\"pb-0\">\n <v-select\n v-model=\"defaultLanguage\"\n label=\"Default scripting language\"\n :items=\"languageOptions\"\n item-title=\"text\"\n item-value=\"value\"\n color=\"primary\"\n class=\"mt-4\"\n data-test=\"default-language\"\n />\n <v-switch v-model=\"vimMode\" label=\"Vim mode\" color=\"primary\" />\n </v-card-text>\n <v-card-actions>\n <v-btn\n color=\"success\"\n variant=\"text\"\n data-test=\"save-editor-settings\"\n @click=\"save\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport { AceEditorUtils } from '@/components/ace'\n\nexport default {\n data() {\n return {\n vimMode: AceEditorUtils.isVimModeEnabled(),\n defaultLanguage: AceEditorUtils.getDefaultScriptingLanguage(),\n languageOptions: [\n { text: 'Ruby', value: 'ruby' },\n { text: 'Python', value: 'python' },\n ],\n }\n },\n methods: {\n save: function () {\n AceEditorUtils.setVimMode(this.vimMode)\n AceEditorUtils.setDefaultScriptingLanguage(this.defaultLanguage)\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title>Astro Settings</v-card-title>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-switch label=\"Hide Astro Clock\" v-model=\"hideClock\" color=\"primary\" />\n </v-card-text>\n <v-card-actions>\n <v-btn\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-astro-settings\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'astro'\nexport default {\n mixins: [Settings],\n data() {\n return {\n hideClock: false,\n }\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(\n settingName,\n // Hashify the setting to allow for future settings\n // Update AppNav when adding new settings\n JSON.stringify({ hideClock: this.hideClock }),\n )\n },\n parseSetting: function (response) {\n if (response) {\n let parsed = JSON.parse(response)\n this.hideClock = parsed.hideClock\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title>Classification Banner Settings</v-card-title>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-row dense>\n <v-col>\n <v-text-field\n label=\"Text\"\n v-model=\"text\"\n data-test=\"classification-banner-text\"\n />\n </v-col>\n </v-row>\n <v-row dense>\n <v-col>\n <v-select\n label=\"Background color\"\n :items=\"colors\"\n item-title=\"text\"\n v-model=\"selectedBackgroundColor\"\n data-test=\"classification-banner-background-color\"\n >\n <template v-slot:prepend-inner v-if=\"selectedBackgroundColor\">\n <v-icon :color=\"selectedBackgroundColor\"> mdi-square </v-icon>\n </template>\n <template v-slot:item=\"{ props, item }\">\n <v-list-item v-bind=\"props\" :value=\"item.text\">\n <template v-slot:prepend>\n <v-icon :color=\"item.value\" v-if=\"item.value\">\n mdi-square\n </v-icon>\n </template>\n </v-list-item>\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label=\"Custom background color\"\n :hint=\"customColorHint\"\n :disabled=\"selectedBackgroundColor !== false\"\n v-model=\"customBackgroundColor\"\n :rules=\"[rules.customColor]\"\n data-test=\"classification-banner-custom-background-color\"\n >\n <template v-slot:prepend-inner>\n <v-icon\n v-show=\"!selectedBackgroundColor\"\n :color=\"customBackgroundColor\"\n >\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n <v-col>\n <v-select\n label=\"Font color\"\n :items=\"colors\"\n item-title=\"text\"\n v-model=\"selectedFontColor\"\n data-test=\"classification-banner-font-color\"\n >\n <template v-slot:prepend-inner v-if=\"selectedFontColor\">\n <v-icon v-show=\"selectedFontColor\" :color=\"selectedFontColor\">\n mdi-square\n </v-icon>\n </template>\n <template v-slot:item=\"{ props, item }\">\n <v-list-item v-bind=\"props\" :value=\"item.text\">\n <template v-slot:prepend>\n <v-icon :color=\"item.value\" v-if=\"item.value\">\n mdi-square\n </v-icon>\n </template>\n </v-list-item>\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label=\"Custom font color\"\n :hint=\"customColorHint\"\n :disabled=\"selectedFontColor !== false\"\n v-model=\"customFontColor\"\n :rules=\"[rules.customColor]\"\n data-test=\"classification-banner-custom-font-color\"\n >\n <template v-slot:prepend-inner>\n <v-icon v-show=\"!selectedFontColor\" :color=\"customFontColor\">\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n </v-row>\n <v-row dense>\n <v-col>\n <v-switch\n label=\"Display top banner\"\n v-model=\"displayTopBanner\"\n color=\"primary\"\n data-test=\"display-top-banner\"\n />\n </v-col>\n <v-col>\n <v-text-field\n label=\"Top height\"\n :disabled=\"!displayTopBanner\"\n type=\"number\"\n suffix=\"px\"\n v-model=\"topHeight\"\n data-test=\"classification-banner-top-height\"\n />\n </v-col>\n <v-col>\n <v-switch\n label=\"Display bottom banner\"\n v-model=\"displayBottomBanner\"\n color=\"primary\"\n data-test=\"display-bottom-banner\"\n />\n </v-col>\n <v-col>\n <v-text-field\n label=\"Bottom height\"\n :disabled=\"!displayBottomBanner\"\n type=\"number\"\n suffix=\"px\"\n v-model=\"bottomHeight\"\n data-test=\"classification-banner-bottom-height\"\n />\n </v-col>\n </v-row>\n </v-card-text>\n <v-card-actions>\n <v-btn\n :disabled=\"!formValid\"\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-classification-banner\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'classification_banner'\nexport default {\n mixins: [Settings],\n data() {\n return {\n text: '',\n displayTopBanner: false,\n displayBottomBanner: false,\n topHeight: 0,\n bottomHeight: 0,\n selectedBackgroundColor: 'red',\n customBackgroundColor: '',\n selectedFontColor: 'white',\n customFontColor: '',\n customColorHint: 'Enter a 3 or 6-digit hex color code',\n colors: [\n {\n text: 'Yellow',\n value: 'yellow',\n },\n {\n text: 'Orange',\n value: 'orange',\n },\n {\n text: 'Red',\n value: 'red',\n },\n {\n text: 'Purple',\n value: 'purple',\n },\n {\n text: 'Blue',\n value: 'blue',\n },\n {\n text: 'Green',\n value: 'green',\n },\n {\n text: 'Black',\n value: 'black',\n },\n {\n text: 'White',\n value: 'white',\n },\n {\n text: 'Custom',\n value: false,\n },\n ],\n rules: {\n customColor: (value) => {\n return (\n /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value) || this.customColorHint\n )\n },\n },\n }\n },\n computed: {\n saveObj: function () {\n return JSON.stringify({\n text: this.text,\n fontColor: this.selectedFontColor || this.customFontColor,\n backgroundColor:\n this.selectedBackgroundColor || this.customBackgroundColor,\n topHeight: this.displayTopBanner ? this.topHeight : 0,\n bottomHeight: this.displayBottomBanner ? this.bottomHeight : 0,\n })\n },\n formValid: function () {\n return (\n (this.selectedFontColor ||\n this.rules.customColor(this.customFontColor) === true) &&\n (this.selectedBackgroundColor ||\n this.rules.customColor(this.customBackgroundColor) === true)\n )\n },\n },\n watch: {\n displayTopBanner: function (val) {\n if (val) {\n this.topHeight = 20\n } else {\n this.topHeight = 0\n }\n },\n displayBottomBanner: function (val) {\n if (val) {\n this.bottomHeight = 20\n } else {\n this.bottomHeight = 0\n }\n },\n customFontColor: function (val) {\n if (val && val.length && !val.startsWith('#')) {\n this.customFontColor = `#${val}`\n }\n },\n customBackgroundColor: function (val) {\n if (val && val.length && !val.startsWith('#')) {\n this.customBackgroundColor = `#${val}`\n }\n },\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.saveObj)\n },\n parseSetting: function (response) {\n if (response) {\n const parsed = JSON.parse(response)\n this.text = parsed.text\n this.topHeight = parsed.topHeight\n this.bottomHeight = parsed.bottomHeight\n this.displayTopBanner = parsed.topHeight !== 0\n this.displayBottomBanner = parsed.bottomHeight !== 0\n if (parsed.backgroundColor && parsed.backgroundColor.startsWith('#')) {\n this.customBackgroundColor = parsed.backgroundColor\n this.selectedBackgroundColor = false\n } else {\n this.selectedBackgroundColor = parsed.backgroundColor\n }\n if (parsed.fontColor && parsed.fontColor.startsWith('#')) {\n this.customFontColor = parsed.fontColor\n this.selectedFontColor = false\n } else {\n this.selectedFontColor = parsed.fontColor\n }\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title>Time Zone</v-card-title>\n <v-card-subtitle>\n The time zone to use in all COSMOS tools (graphs, time choosers, log\n messages, etc). Anywhere a date / time is displayed, it will be in the\n chosen time zone. (Note: All timestamps are UTC in the backend).\n </v-card-subtitle>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text>\n <v-select\n v-model=\"timeZone\"\n :items=\"timeZones\"\n label=\"Select time display\"\n hide-details\n prepend-icon=\"mdi-map-clock\"\n single-line\n data-test=\"time-zone\"\n />\n </v-card-text>\n <v-card-actions>\n <v-btn\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-time-zone\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'time_zone'\nexport default {\n mixins: [Settings],\n data() {\n return {\n timeZones: ['local', 'UTC'],\n timeZone: 'local',\n }\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.timeZone)\n },\n parseSetting: function (response) {\n if (response) {\n this.timeZone = response\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title>News Feed Settings</v-card-title>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-switch\n label=\"Allow COSMOS backend to pull the news feed from the COSMOS external news site.\n This is a low bandwidth poll which only happens every 12 hrs. To immediately update the news feed, click the 'Refresh' in the User Menu.\"\n v-model=\"newsFeed\"\n color=\"primary\"\n />\n </v-card-text>\n <v-card-actions>\n <v-btn\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-news-feed\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'news_feed'\nexport default {\n mixins: [Settings],\n data() {\n return {\n newsFeed: true,\n }\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.newsFeed)\n if (this.newsFeed) {\n this.api.update_news()\n }\n },\n parseSetting: function (response) {\n this.newsFeed = response\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title>Subtitle</v-card-title>\n <v-card-subtitle>\n This sets a subtitle to display below the COSMOS logo in the Navigation\n bar.\n </v-card-subtitle>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-text-field label=\"Subtitle\" v-model=\"subtitle\" data-test=\"subtitle\" />\n </v-card-text>\n <v-card-actions>\n <v-btn\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-subtitle\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'subtitle'\nexport default {\n mixins: [Settings],\n data() {\n return {\n subtitle: '',\n }\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.subtitle)\n },\n parseSetting: function (response) {\n if (response) {\n this.subtitle = response\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title> Source code URL </v-card-title>\n <v-card-subtitle>\n This sets the URL for the \"Source\" link in the footer. This is required\n under the AGPL license.\n </v-card-subtitle>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-text-field\n label=\"Source URL\"\n v-model=\"sourceUrl\"\n data-test=\"source-url\"\n />\n </v-card-text>\n <v-card-actions>\n <v-btn\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-source-url\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'source_url'\nexport default {\n mixins: [Settings],\n data() {\n return {\n sourceUrl: 'https://github.com/OpenC3/cosmos',\n }\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.sourceUrl)\n },\n parseSetting: function (response) {\n if (response) {\n this.sourceUrl = response\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title> Rubygems URL </v-card-title>\n <v-card-subtitle>\n This sets the URL for installing dependency rubygems. Also used for\n rubygem discovery.\n </v-card-subtitle>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-text-field\n label=\"Rubygems URL\"\n v-model=\"rubygemsUrl\"\n data-test=\"rubygems-url\"\n />\n </v-card-text>\n <v-card-actions>\n <v-btn\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-rubygems-url\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'rubygems_url'\nexport default {\n mixins: [Settings],\n data() {\n return {\n rubygemsUrl: 'https://rubygems.org',\n }\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.rubygemsUrl)\n },\n parseSetting: function (response) {\n if (response) {\n this.rubygemsUrl = response\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title> Pypi URL </v-card-title>\n <v-card-subtitle>\n This sets the URL for installing dependency python packages. Also used for\n package discovery.\n </v-card-subtitle>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-text-field label=\"Pypi URL\" v-model=\"pypiUrl\" data-test=\"pypi-url\" />\n </v-card-text>\n <v-card-actions>\n <v-btn\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-pypi-url\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'pypi_url'\nexport default {\n mixins: [Settings],\n data() {\n return {\n pypiUrl: 'https://pypi.org',\n }\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.pypiUrl)\n },\n parseSetting: function (response) {\n if (response) {\n this.pypiUrl = response\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title>Context Tag Settings</v-card-title>\n <v-card-subtitle>\n When enabled this displays a Context Tag on the top right of the screen with custom colors and text. \n This can help differentiate environments.\n </v-card-subtitle>\n <v-alert v-model=\"errorLoading\" type=\"error\" closable density=\"compact\">\n Error loading previous configuration due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"errorSaving\" type=\"error\" closable density=\"compact\">\n Error saving due to {{ errorText }}\n </v-alert>\n <v-alert v-model=\"successSaving\" type=\"success\" closable density=\"compact\">\n Saved! (Refresh the page to see changes)\n </v-alert>\n <v-card-text class=\"pb-0\">\n <v-row dense>\n <v-col>\n <v-text-field\n label=\"Text\"\n v-model=\"text\"\n data-test=\"context-tag-text\"\n :disabled=\"!displayContextTag\"\n />\n </v-col>\n </v-row>\n <v-row dense>\n <v-col>\n <v-switch\n label=\"Display context tag\"\n v-model=\"displayContextTag\"\n color=\"primary\"\n data-test=\"display-context-tag\"\n />\n </v-col>\n <v-col>\n <v-select\n label=\"Background color\"\n :items=\"colors\"\n item-title=\"text\"\n v-model=\"selectedBackgroundColor\"\n data-test=\"context-tag-background-color\"\n >\n <template v-slot:prepend-inner v-if=\"selectedBackgroundColor\">\n <v-icon :color=\"selectedBackgroundColor\"> mdi-square </v-icon>\n </template>\n <template v-slot:item=\"{ props, item }\">\n <v-list-item v-bind=\"props\" :value=\"item.text\">\n <template v-slot:prepend>\n <v-icon :color=\"item.value\" v-if=\"item.value\">\n mdi-square\n </v-icon>\n </template>\n </v-list-item>\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label=\"Custom background color\"\n :hint=\"customColorHint\"\n :disabled=\"selectedBackgroundColor !== false\"\n v-model=\"customBackgroundColor\"\n :rules=\"[rules.customColor]\"\n data-test=\"context-tag-custom-background-color\"\n >\n <template v-slot:prepend-inner>\n <v-icon\n v-show=\"!selectedBackgroundColor\"\n :color=\"customBackgroundColor\"\n >\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n <v-col>\n <v-select\n label=\"Font color\"\n :items=\"colors\"\n item-title=\"text\"\n v-model=\"selectedFontColor\"\n data-test=\"context-tag-font-color\"\n >\n <template v-slot:prepend-inner v-if=\"selectedFontColor\">\n <v-icon v-show=\"selectedFontColor\" :color=\"selectedFontColor\">\n mdi-square\n </v-icon>\n </template>\n <template v-slot:item=\"{ props, item }\">\n <v-list-item v-bind=\"props\" :value=\"item.text\">\n <template v-slot:prepend>\n <v-icon :color=\"item.value\" v-if=\"item.value\">\n mdi-square\n </v-icon>\n </template>\n </v-list-item>\n </template>\n </v-select>\n </v-col>\n <v-col>\n <v-text-field\n label=\"Custom font color\"\n :hint=\"customColorHint\"\n :disabled=\"selectedFontColor !== false\"\n v-model=\"customFontColor\"\n :rules=\"[rules.customColor]\"\n data-test=\"context-tag-custom-font-color\"\n >\n <template v-slot:prepend-inner>\n <v-icon v-show=\"!selectedFontColor\" :color=\"customFontColor\">\n mdi-square\n </v-icon>\n </template>\n </v-text-field>\n </v-col>\n </v-row>\n </v-card-text>\n <v-card-actions>\n <v-btn\n :disabled=\"!formValid\"\n @click=\"save\"\n color=\"success\"\n variant=\"text\"\n data-test=\"save-context-tag\"\n >\n Save\n </v-btn>\n </v-card-actions>\n </v-card>\n</template>\n\n<script>\nimport Settings from './settings.js'\n\nconst settingName = 'context_tag'\nexport default {\n mixins: [Settings],\n data() {\n return {\n text: '',\n displayContextTag: false,\n selectedBackgroundColor: '#009fa3',\n customBackgroundColor: '',\n selectedFontColor: 'white',\n customFontColor: '',\n customColorHint: 'Enter a 3 or 6-digit hex color code',\n colors: [\n {\n text: 'Teal',\n value: '#009fa3',\n },\n {\n text: 'Purple',\n value: '#6058a8',\n },\n {\n text: 'Pink',\n value: '#81009a',\n },\n {\n text: 'Orange',\n value: '#af420a',\n },\n {\n text: 'Black',\n value: 'black',\n },\n {\n text: 'White',\n value: 'white',\n },\n {\n text: 'Custom',\n value: false,\n },\n ],\n rules: {\n customColor: (value) => {\n return (\n /^#(?:[0-9a-fA-F]{3}){1,2}$/.test(value) || this.customColorHint\n )\n },\n },\n }\n },\n computed: {\n saveObj: function () {\n return JSON.stringify({\n text: this.text,\n fontColor: this.selectedFontColor || this.customFontColor,\n backgroundColor:\n this.selectedBackgroundColor || this.customBackgroundColor,\n })\n },\n formValid: function () {\n return (\n (this.selectedFontColor ||\n this.rules.customColor(this.customFontColor) === true) &&\n (this.selectedBackgroundColor ||\n this.rules.customColor(this.customBackgroundColor) === true)\n )\n },\n },\n watch: {\n displayContextTag: function (val) {\n if (val) {\n if (!this.text) this.text = 'REPLACEME'\n } else {\n this.text = null\n }\n },\n customFontColor: function (val) {\n if (val && val.length && !val.startsWith('#')) {\n this.customFontColor = `#${val}`\n }\n },\n customBackgroundColor: function (val) {\n if (val && val.length && !val.startsWith('#')) {\n this.customBackgroundColor = `#${val}`\n }\n },\n },\n created() {\n this.loadSetting(settingName)\n },\n methods: {\n save() {\n this.saveSetting(settingName, this.saveObj)\n },\n parseSetting: function (response) {\n if (response) {\n const parsed = JSON.parse(response)\n this.text = parsed.text\n this.displayContextTag = !!parsed.text\n if (parsed.backgroundColor) {\n const colorExists = this.colors.some(color => color.value === parsed.backgroundColor)\n if (colorExists) {\n this.selectedBackgroundColor = parsed.backgroundColor\n } else {\n this.customBackgroundColor = parsed.backgroundColor\n this.selectedBackgroundColor = false\n }\n }\n if (parsed.fontColor) {\n const colorExists = this.colors.some(color => color.value === parsed.fontColor)\n if (colorExists) {\n this.selectedFontColor = parsed.fontColor\n } else {\n this.customFontColor = parsed.fontColor\n this.selectedFontColor = false\n }\n }\n }\n },\n },\n}\n</script>\n","<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <suppressed-settings />\n <v-divider />\n <default-config-settings />\n <v-divider />\n <editor-settings />\n <v-divider />\n <astro-settings />\n <v-divider />\n <time-zone-settings />\n <v-divider />\n <news-feed-settings />\n <v-divider />\n <classification-banner-settings />\n <v-divider />\n <subtitle-settings />\n <v-divider />\n <source-code-settings />\n <v-divider />\n <ruby-gems-settings />\n <v-divider />\n <pypi-settings />\n <v-divider />\n <context-tag-settings />\n </div>\n</template>\n\n<script>\nimport SuppressedSettings from './settings/SuppressedSettings.vue'\nimport DefaultConfigSettings from './settings/DefaultConfigSettings.vue'\nimport EditorSettings from './settings/EditorSettings.vue'\nimport AstroSettings from './settings/AstroSettings.vue'\nimport ClassificationBannerSettings from './settings/ClassificationBannerSettings.vue'\nimport TimeZoneSettings from './settings/TimeZoneSettings.vue'\nimport NewsFeedSettings from './settings/NewsFeedSettings.vue'\nimport SubtitleSettings from './settings/SubtitleSettings.vue'\nimport SourceCodeSettings from './settings/SourceCodeSettings.vue'\nimport RubyGemsSettings from './settings/RubyGemsSettings.vue'\nimport PypiSettings from './settings/PypiSettings.vue'\nimport ContextTagSettings from './settings/ContextTagSettings.vue'\n\nexport default {\n components: {\n SuppressedSettings,\n DefaultConfigSettings,\n EditorSettings,\n AstroSettings,\n ClassificationBannerSettings,\n TimeZoneSettings,\n NewsFeedSettings,\n SubtitleSettings,\n SourceCodeSettings,\n RubyGemsSettings,\n PypiSettings,\n ContextTagSettings,\n },\n}\n</script>\n"],"names":["_sfc_main","val","warning","key","name","keys","_createBlock","_component_v_card","_createVNode","_component_v_card_title","_cache","_component_v_card_subtitle","_component_v_card_text","$data","_createElementBlock","_Fragment","_component_v_checkbox","$event","_renderList","_component_v_card_actions","_component_v_btn","$options","config","AceEditorUtils","_component_v_select","_component_v_switch","settingName","Settings","response","parsed","_component_v_alert","_ctx","_createTextVNode","value","_component_v_row","_component_v_col","_component_v_text_field","_withCtx","props","item","_component_v_list_item","_mergeProps","_component_v_icon","color","SuppressedSettings","DefaultConfigSettings","EditorSettings","AstroSettings","ClassificationBannerSettings","TimeZoneSettings","NewsFeedSettings","SubtitleSettings","SourceCodeSettings","RubyGemsSettings","PypiSettings","ContextTagSettings","_component_suppressed_settings","_component_v_divider","_component_default_config_settings","_component_editor_settings","_component_astro_settings","_component_time_zone_settings","_component_news_feed_settings","_component_classification_banner_settings","_component_subtitle_settings","_component_source_code_settings","_component_ruby_gems_settings","_component_pypi_settings","_component_context_tag_settings"],"mappings":"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"}
|