@openc3/vue-common 7.0.0-rc3 → 7.0.1
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-B2-n1K3r.cjs → ArrayWidget-BHjh3qLF.cjs} +2 -2
- package/dist/{ArrayWidget-B2-n1K3r.cjs.map → ArrayWidget-BHjh3qLF.cjs.map} +1 -1
- package/dist/{ArrayWidget-dQWDMMrn.js → ArrayWidget-Dh6zDiC7.js} +6 -6
- package/dist/{ArrayWidget-dQWDMMrn.js.map → ArrayWidget-Dh6zDiC7.js.map} +1 -1
- package/dist/{ArrayplotWidget-BmBcPGUR.cjs → ArrayplotWidget-BHD-TGQO.cjs} +2 -2
- package/dist/{ArrayplotWidget-BmBcPGUR.cjs.map → ArrayplotWidget-BHD-TGQO.cjs.map} +1 -1
- package/dist/{ArrayplotWidget-DCnbK37q.js → ArrayplotWidget-CSc_TqNm.js} +6 -6
- package/dist/{ArrayplotWidget-DCnbK37q.js.map → ArrayplotWidget-CSc_TqNm.js.map} +1 -1
- package/dist/{BarColumn-DmOxuCa9.js → BarColumn-DmjMnw5l.js} +3 -3
- package/dist/{BarColumn-DmOxuCa9.js.map → BarColumn-DmjMnw5l.js.map} +1 -1
- package/dist/{BarColumn-CkecDAzn.cjs → BarColumn-Ym4P8YHC.cjs} +2 -2
- package/dist/{BarColumn-CkecDAzn.cjs.map → BarColumn-Ym4P8YHC.cjs.map} +1 -1
- package/dist/{BlockWidget-UejKxAxY.js → BlockWidget-BdR_HCVc.js} +6 -6
- package/dist/{BlockWidget-UejKxAxY.js.map → BlockWidget-BdR_HCVc.js.map} +1 -1
- package/dist/{BlockWidget-BZXHLTJt.cjs → BlockWidget-Bi1PfS1k.cjs} +2 -2
- package/dist/{BlockWidget-BZXHLTJt.cjs.map → BlockWidget-Bi1PfS1k.cjs.map} +1 -1
- package/dist/{ButtonWidget-CzRyY1N5.cjs → ButtonWidget-70hNWuEy.cjs} +2 -2
- package/dist/{ButtonWidget-CzRyY1N5.cjs.map → ButtonWidget-70hNWuEy.cjs.map} +1 -1
- package/dist/{ButtonWidget-DtAkhzCN.js → ButtonWidget-DZ4VCNWU.js} +6 -6
- package/dist/{ButtonWidget-DtAkhzCN.js.map → ButtonWidget-DZ4VCNWU.js.map} +1 -1
- package/dist/{CanvasWidget-cQqNxspP.cjs → CanvasWidget-DTEx-DpZ.cjs} +2 -2
- package/dist/{CanvasWidget-cQqNxspP.cjs.map → CanvasWidget-DTEx-DpZ.cjs.map} +1 -1
- package/dist/{CanvasWidget-YXQ8TLqA.js → CanvasWidget-DuXOo3jG.js} +4 -4
- package/dist/{CanvasWidget-YXQ8TLqA.js.map → CanvasWidget-DuXOo3jG.js.map} +1 -1
- package/dist/{CanvasdotWidget-BbmhHQV_.js → CanvasdotWidget-WoLpxI1u.js} +5 -5
- package/dist/{CanvasdotWidget-BbmhHQV_.js.map → CanvasdotWidget-WoLpxI1u.js.map} +1 -1
- package/dist/{CanvasdotWidget-CMIw-ga4.cjs → CanvasdotWidget-bbOquK8B.cjs} +2 -2
- package/dist/{CanvasdotWidget-CMIw-ga4.cjs.map → CanvasdotWidget-bbOquK8B.cjs.map} +1 -1
- package/dist/{CanvasimageWidget-DXxtYjGG.cjs → CanvasimageWidget-D2EqsK7w.cjs} +2 -2
- package/dist/{CanvasimageWidget-DXxtYjGG.cjs.map → CanvasimageWidget-D2EqsK7w.cjs.map} +1 -1
- package/dist/{CanvasimageWidget-CJf5NYEj.js → CanvasimageWidget-tWpK5rsv.js} +8 -8
- package/dist/{CanvasimageWidget-CJf5NYEj.js.map → CanvasimageWidget-tWpK5rsv.js.map} +1 -1
- package/dist/{CanvasimagevalueWidget-D86eJXbs.js → CanvasimagevalueWidget-BVzJYz3l.js} +9 -9
- package/dist/{CanvasimagevalueWidget-D86eJXbs.js.map → CanvasimagevalueWidget-BVzJYz3l.js.map} +1 -1
- package/dist/{CanvasimagevalueWidget-VPKlJrxM.cjs → CanvasimagevalueWidget-By_DiQ75.cjs} +2 -2
- package/dist/{CanvasimagevalueWidget-VPKlJrxM.cjs.map → CanvasimagevalueWidget-By_DiQ75.cjs.map} +1 -1
- package/dist/{CanvaslabelWidget-TkrVd-Dg.js → CanvaslabelWidget-CDFf8Vll.js} +5 -5
- package/dist/{CanvaslabelWidget-TkrVd-Dg.js.map → CanvaslabelWidget-CDFf8Vll.js.map} +1 -1
- package/dist/{CanvaslabelWidget-BgGRS0NS.cjs → CanvaslabelWidget-DiPxyXoX.cjs} +2 -2
- package/dist/{CanvaslabelWidget-BgGRS0NS.cjs.map → CanvaslabelWidget-DiPxyXoX.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-W2QzOkQw.cjs → CanvaslabelvalueWidget-Cw5CCQTi.cjs} +2 -2
- package/dist/{CanvaslabelvalueWidget-W2QzOkQw.cjs.map → CanvaslabelvalueWidget-Cw5CCQTi.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-BwsIN_MT.js → CanvaslabelvalueWidget-DzJKD6qs.js} +5 -5
- package/dist/{CanvaslabelvalueWidget-BwsIN_MT.js.map → CanvaslabelvalueWidget-DzJKD6qs.js.map} +1 -1
- package/dist/{CanvaslineWidget-yT7FUWs8.cjs → CanvaslineWidget-BECtKTPL.cjs} +2 -2
- package/dist/{CanvaslineWidget-yT7FUWs8.cjs.map → CanvaslineWidget-BECtKTPL.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-BjBvF-vY.js → CanvaslineWidget-BttTXCZq.js} +5 -5
- package/dist/{CanvaslineWidget-BjBvF-vY.js.map → CanvaslineWidget-BttTXCZq.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-Dj4tsTBp.cjs → CanvaslinevalueWidget-5duJ98qu.cjs} +2 -2
- package/dist/{CanvaslinevalueWidget-Dj4tsTBp.cjs.map → CanvaslinevalueWidget-5duJ98qu.cjs.map} +1 -1
- package/dist/{CanvaslinevalueWidget-krBLp9yB.js → CanvaslinevalueWidget-i6G0JfnZ.js} +5 -5
- package/dist/{CanvaslinevalueWidget-krBLp9yB.js.map → CanvaslinevalueWidget-i6G0JfnZ.js.map} +1 -1
- package/dist/{CheckbuttonWidget-IMrIK9q4.js → CheckbuttonWidget-18jtf7sh.js} +5 -5
- package/dist/{CheckbuttonWidget-IMrIK9q4.js.map → CheckbuttonWidget-18jtf7sh.js.map} +1 -1
- package/dist/{CheckbuttonWidget-CT28NPNo.cjs → CheckbuttonWidget-CTMObPhX.cjs} +2 -2
- package/dist/{CheckbuttonWidget-CT28NPNo.cjs.map → CheckbuttonWidget-CTMObPhX.cjs.map} +1 -1
- package/dist/{ClassificationBanners-DiIkXqna.js → ClassificationBanners-BmnQODLn.js} +2 -2
- package/dist/{ClassificationBanners-DiIkXqna.js.map → ClassificationBanners-BmnQODLn.js.map} +1 -1
- package/dist/{ClassificationBanners-DC__VXBX.cjs → ClassificationBanners-DjGCuH-4.cjs} +2 -2
- package/dist/{ClassificationBanners-DC__VXBX.cjs.map → ClassificationBanners-DjGCuH-4.cjs.map} +1 -1
- package/dist/{ComboboxWidget-C9Zlc2Hy.js → ComboboxWidget-BjaVFbD4.js} +5 -5
- package/dist/{ComboboxWidget-C9Zlc2Hy.js.map → ComboboxWidget-BjaVFbD4.js.map} +1 -1
- package/dist/{ComboboxWidget-hFBSBFwy.cjs → ComboboxWidget-Cc0Acq9q.cjs} +2 -2
- package/dist/{ComboboxWidget-hFBSBFwy.cjs.map → ComboboxWidget-Cc0Acq9q.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-Cp-ykpQb.js → CriticalCmdDialog-CO-nvphS.js} +8 -8
- package/dist/{CriticalCmdDialog-Cp-ykpQb.js.map → CriticalCmdDialog-CO-nvphS.js.map} +1 -1
- package/dist/{CriticalCmdDialog-CCaStsM-.cjs → CriticalCmdDialog-eytxCQto.cjs} +2 -2
- package/dist/{CriticalCmdDialog-CCaStsM-.cjs.map → CriticalCmdDialog-eytxCQto.cjs.map} +1 -1
- package/dist/{CustomIcon-Cg3jCA_l.js → CustomIcon-DTR361si.js} +4 -4
- package/dist/{CustomIcon-Cg3jCA_l.js.map → CustomIcon-DTR361si.js.map} +1 -1
- package/dist/{DateWidget-C_QpCTxN.cjs → DateWidget-Cle8FY8Q.cjs} +2 -2
- package/dist/{DateWidget-C_QpCTxN.cjs.map → DateWidget-Cle8FY8Q.cjs.map} +1 -1
- package/dist/{DateWidget-Y6WAFGGt.js → DateWidget-DkFAFlc8.js} +5 -5
- package/dist/{DateWidget-Y6WAFGGt.js.map → DateWidget-DkFAFlc8.js.map} +1 -1
- package/dist/{DetailsDialog-Bq9BPuoe.cjs → DetailsDialog-BcMaTfuQ.cjs} +2 -2
- package/dist/{DetailsDialog-Bq9BPuoe.cjs.map → DetailsDialog-BcMaTfuQ.cjs.map} +1 -1
- package/dist/{DetailsDialog-DznGAE6i.js → DetailsDialog-sqja4Lzq.js} +5 -5
- package/dist/{DetailsDialog-DznGAE6i.js.map → DetailsDialog-sqja4Lzq.js.map} +1 -1
- package/dist/{DynamicWidget-Bym87woV.js → DynamicWidget-BuSbQVhf.js} +4 -4
- package/dist/{DynamicWidget-Bym87woV.js.map → DynamicWidget-BuSbQVhf.js.map} +1 -1
- package/dist/{EventListDialog-CktWO2jn.js → EventListDialog-DjCQAwGl.js} +17 -14
- package/dist/EventListDialog-DjCQAwGl.js.map +1 -0
- package/dist/EventListDialog-EmC7YW60.cjs +2 -0
- package/dist/EventListDialog-EmC7YW60.cjs.map +1 -0
- package/dist/{FilechecksumWidget-BZdmiTbb.cjs → FilechecksumWidget-2ta-UvLp.cjs} +2 -2
- package/dist/{FilechecksumWidget-BZdmiTbb.cjs.map → FilechecksumWidget-2ta-UvLp.cjs.map} +1 -1
- package/dist/{FilechecksumWidget-VbLODmHh.js → FilechecksumWidget-DqJ_hvN4.js} +8 -8
- package/dist/{FilechecksumWidget-VbLODmHh.js.map → FilechecksumWidget-DqJ_hvN4.js.map} +1 -1
- package/dist/{FiledisplayWidget-BI7GAQ4d.cjs → FiledisplayWidget-BUKXIQir.cjs} +2 -2
- package/dist/{FiledisplayWidget-BI7GAQ4d.cjs.map → FiledisplayWidget-BUKXIQir.cjs.map} +1 -1
- package/dist/{FiledisplayWidget-kixqcLtx.js → FiledisplayWidget-CYznG_tf.js} +6 -6
- package/dist/{FiledisplayWidget-kixqcLtx.js.map → FiledisplayWidget-CYznG_tf.js.map} +1 -1
- package/dist/{FormatvalueWidget--djAS0BE.js → FormatvalueWidget-BnVu4YGx.js} +6 -6
- package/dist/{FormatvalueWidget--djAS0BE.js.map → FormatvalueWidget-BnVu4YGx.js.map} +1 -1
- package/dist/{FormatvalueWidget-I1y_kf9t.cjs → FormatvalueWidget-BpFXnA_U.cjs} +2 -2
- package/dist/{FormatvalueWidget-I1y_kf9t.cjs.map → FormatvalueWidget-BpFXnA_U.cjs.map} +1 -1
- package/dist/{Graph-GhpiUBKI.js → Graph-CUFzx8Ti.js} +289 -281
- package/dist/Graph-CUFzx8Ti.js.map +1 -0
- package/dist/Graph-qxF4224c.cjs +2 -0
- package/dist/Graph-qxF4224c.cjs.map +1 -0
- package/dist/{GraphWidget-Bzo-klWV.cjs → GraphWidget-BvCQHVxQ.cjs} +2 -2
- package/dist/{GraphWidget-Bzo-klWV.cjs.map → GraphWidget-BvCQHVxQ.cjs.map} +1 -1
- package/dist/{GraphWidget-8T08osON.js → GraphWidget-DO5XbOGy.js} +2 -2
- package/dist/{GraphWidget-8T08osON.js.map → GraphWidget-DO5XbOGy.js.map} +1 -1
- package/dist/{HorizontalWidget-CusI1RiA.js → HorizontalWidget-BA9PiP3d.js} +4 -4
- package/dist/{HorizontalWidget-CusI1RiA.js.map → HorizontalWidget-BA9PiP3d.js.map} +1 -1
- package/dist/{HorizontalWidget-CAf9I0CU.cjs → HorizontalWidget-BBQE-dP-.cjs} +2 -2
- package/dist/{HorizontalWidget-CAf9I0CU.cjs.map → HorizontalWidget-BBQE-dP-.cjs.map} +1 -1
- package/dist/{HorizontalboxWidget-D5fIhINf.js → HorizontalboxWidget-B-7HOqgl.js} +7 -7
- package/dist/{HorizontalboxWidget-D5fIhINf.js.map → HorizontalboxWidget-B-7HOqgl.js.map} +1 -1
- package/dist/{HorizontalboxWidget-B7E5GEPu.cjs → HorizontalboxWidget-CX7J8RdA.cjs} +2 -2
- package/dist/{HorizontalboxWidget-B7E5GEPu.cjs.map → HorizontalboxWidget-CX7J8RdA.cjs.map} +1 -1
- package/dist/HorizontallineWidget-D-o9MGo0.js +16 -0
- package/dist/{HorizontallineWidget-CnRlq7hi.js.map → HorizontallineWidget-D-o9MGo0.js.map} +1 -1
- package/dist/{HorizontallineWidget-DqLKGhdz.cjs → HorizontallineWidget-odTFoB8u.cjs} +2 -2
- package/dist/{HorizontallineWidget-DqLKGhdz.cjs.map → HorizontallineWidget-odTFoB8u.cjs.map} +1 -1
- package/dist/{IframeWidget-DtF44NYM.js → IframeWidget-BzOka-fX.js} +5 -5
- package/dist/{IframeWidget-DtF44NYM.js.map → IframeWidget-BzOka-fX.js.map} +1 -1
- package/dist/{IframeWidget-BMtv8io0.cjs → IframeWidget-cTHu_Rmp.cjs} +2 -2
- package/dist/{IframeWidget-BMtv8io0.cjs.map → IframeWidget-cTHu_Rmp.cjs.map} +1 -1
- package/dist/{ImageLoader-jcIDHdUq.cjs → ImageLoader-BTEOukIw.cjs} +2 -2
- package/dist/{ImageLoader-jcIDHdUq.cjs.map → ImageLoader-BTEOukIw.cjs.map} +1 -1
- package/dist/{ImageLoader-B5rGuJ_H.js → ImageLoader-CstmWFM4.js} +2 -2
- package/dist/{ImageLoader-B5rGuJ_H.js.map → ImageLoader-CstmWFM4.js.map} +1 -1
- package/dist/{ImageviewerWidget-Ciu80vaC.js → ImageviewerWidget-BA9uOM1q.js} +5 -5
- package/dist/{ImageviewerWidget-Ciu80vaC.js.map → ImageviewerWidget-BA9uOM1q.js.map} +1 -1
- package/dist/{ImageviewerWidget-ox5FNYVP.cjs → ImageviewerWidget-CLAFwmaB.cjs} +2 -2
- package/dist/{ImageviewerWidget-ox5FNYVP.cjs.map → ImageviewerWidget-CLAFwmaB.cjs.map} +1 -1
- package/dist/{InterfacesTab-C14LErLZ.js → InterfacesTab-C3mDLkGC.js} +9 -9
- package/dist/{InterfacesTab-C14LErLZ.js.map → InterfacesTab-C3mDLkGC.js.map} +1 -1
- package/dist/{InterfacesTab-CUM5GGWs.cjs → InterfacesTab-CM0CGFVS.cjs} +2 -2
- package/dist/{InterfacesTab-CUM5GGWs.cjs.map → InterfacesTab-CM0CGFVS.cjs.map} +1 -1
- package/dist/{LabelWidget-B9J1Whh0.cjs → LabelWidget-CMmVq1mx.cjs} +2 -2
- package/dist/{LabelWidget-B9J1Whh0.cjs.map → LabelWidget-CMmVq1mx.cjs.map} +1 -1
- package/dist/{LabelWidget-78VnL1xc.js → LabelWidget-Da2howZF.js} +5 -5
- package/dist/{LabelWidget-78VnL1xc.js.map → LabelWidget-Da2howZF.js.map} +1 -1
- package/dist/{LabelledWidget-Cx2PI85E.js → LabelledWidget-BH8y3OXT.js} +7 -7
- package/dist/{LabelledWidget-Cx2PI85E.js.map → LabelledWidget-BH8y3OXT.js.map} +1 -1
- package/dist/{LabelledWidget-BMtqUP-E.cjs → LabelledWidget-CAqH0oWs.cjs} +2 -2
- package/dist/{LabelledWidget-BMtqUP-E.cjs.map → LabelledWidget-CAqH0oWs.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-eC7VC7lY.js → LabelprogressbarWidget-Brl24F4c.js} +7 -7
- package/dist/{LabelprogressbarWidget-eC7VC7lY.js.map → LabelprogressbarWidget-Brl24F4c.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-Ce3PRzaA.cjs → LabelprogressbarWidget-BxLGmW9T.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-Ce3PRzaA.cjs.map → LabelprogressbarWidget-BxLGmW9T.cjs.map} +1 -1
- package/dist/{LabelsparklineWidget-DuCA67yl.cjs → LabelsparklineWidget-BUXOpBeB.cjs} +2 -2
- package/dist/{LabelsparklineWidget-DuCA67yl.cjs.map → LabelsparklineWidget-BUXOpBeB.cjs.map} +1 -1
- package/dist/{LabelsparklineWidget-CP5rD4ob.js → LabelsparklineWidget-D22MB7-4.js} +7 -7
- package/dist/{LabelsparklineWidget-CP5rD4ob.js.map → LabelsparklineWidget-D22MB7-4.js.map} +1 -1
- package/dist/{LabelvalueWidget-PM8DFnDm.js → LabelvalueWidget-_1JPbK-K.js} +7 -7
- package/dist/{LabelvalueWidget-PM8DFnDm.js.map → LabelvalueWidget-_1JPbK-K.js.map} +1 -1
- package/dist/{LabelvalueWidget-DxEvAoHT.cjs → LabelvalueWidget-bYqqgIGE.cjs} +2 -2
- package/dist/{LabelvalueWidget-DxEvAoHT.cjs.map → LabelvalueWidget-bYqqgIGE.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-Dy3_fdkx.cjs → LabelvaluedescWidget-B2dFZoDE.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-Dy3_fdkx.cjs.map → LabelvaluedescWidget-B2dFZoDE.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-C8OmKnu-.js → LabelvaluedescWidget-BgduSJJb.js} +8 -8
- package/dist/{LabelvaluedescWidget-C8OmKnu-.js.map → LabelvaluedescWidget-BgduSJJb.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-DWvSVvXl.cjs → LabelvaluelimitsbarWidget-BGag8V6k.cjs} +2 -2
- package/dist/{LabelvaluelimitsbarWidget-DWvSVvXl.cjs.map → LabelvaluelimitsbarWidget-BGag8V6k.cjs.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-DIsTQqkO.js → LabelvaluelimitsbarWidget-C9PlEhWo.js} +7 -7
- package/dist/{LabelvaluelimitsbarWidget-DIsTQqkO.js.map → LabelvaluelimitsbarWidget-C9PlEhWo.js.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-ld556rRi.js → LabelvaluelimitscolumnWidget-Cay6AhoZ.js} +8 -8
- package/dist/{LabelvaluelimitscolumnWidget-ld556rRi.js.map → LabelvaluelimitscolumnWidget-Cay6AhoZ.js.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-CyPuEz7E.cjs → LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs} +2 -2
- package/dist/{LabelvaluelimitscolumnWidget-CyPuEz7E.cjs.map → LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-DdqgjjUc.cjs → LabelvaluerangebarWidget-Dbibpimv.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-DdqgjjUc.cjs.map → LabelvaluerangebarWidget-Dbibpimv.cjs.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-nCeoujui.js → LabelvaluerangebarWidget-s_8IgY-C.js} +7 -7
- package/dist/{LabelvaluerangebarWidget-nCeoujui.js.map → LabelvaluerangebarWidget-s_8IgY-C.js.map} +1 -1
- package/dist/{Layout-BcytiBn4.js → Layout-D7RGn0Fe.js} +2 -2
- package/dist/{Layout-BcytiBn4.js.map → Layout-D7RGn0Fe.js.map} +1 -1
- package/dist/{Layout-JCk8r88e.cjs → Layout-DwWEea79.cjs} +2 -2
- package/dist/{Layout-JCk8r88e.cjs.map → Layout-DwWEea79.cjs.map} +1 -1
- package/dist/{LedWidget-BEP-sFTh.cjs → LedWidget-BaiKDozd.cjs} +2 -2
- package/dist/{LedWidget-BEP-sFTh.cjs.map → LedWidget-BaiKDozd.cjs.map} +1 -1
- package/dist/{LedWidget-3pWKnZsD.js → LedWidget-DgMtvsiv.js} +6 -6
- package/dist/{LedWidget-3pWKnZsD.js.map → LedWidget-DgMtvsiv.js.map} +1 -1
- package/dist/{LimitsBar-BJ_cERjE.cjs → LimitsBar-BFM38vQL.cjs} +2 -2
- package/dist/{LimitsBar-BJ_cERjE.cjs.map → LimitsBar-BFM38vQL.cjs.map} +1 -1
- package/dist/{LimitsBar-DCco6Rwp.js → LimitsBar-CcOaAw0C.js} +7 -7
- package/dist/{LimitsBar-DCco6Rwp.js.map → LimitsBar-CcOaAw0C.js.map} +1 -1
- package/dist/{LimitsbarWidget-DiAnkXID.cjs → LimitsbarWidget-ConP3qI5.cjs} +2 -2
- package/dist/{LimitsbarWidget-DiAnkXID.cjs.map → LimitsbarWidget-ConP3qI5.cjs.map} +1 -1
- package/dist/{LimitsbarWidget-_BMzxWBm.js → LimitsbarWidget-DpmJn1Lo.js} +7 -7
- package/dist/{LimitsbarWidget-_BMzxWBm.js.map → LimitsbarWidget-DpmJn1Lo.js.map} +1 -1
- package/dist/{LimitscolorWidget-C2gZyqtI.js → LimitscolorWidget-BMXiEaDm.js} +20 -20
- package/dist/{LimitscolorWidget-C2gZyqtI.js.map → LimitscolorWidget-BMXiEaDm.js.map} +1 -1
- package/dist/{LimitscolorWidget-ByfzIE_O.cjs → LimitscolorWidget-veWQ4NXl.cjs} +2 -2
- package/dist/{LimitscolorWidget-ByfzIE_O.cjs.map → LimitscolorWidget-veWQ4NXl.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-CZwcXbLS.cjs → LimitscolumnWidget-CJABAor8.cjs} +2 -2
- package/dist/{LimitscolumnWidget-CZwcXbLS.cjs.map → LimitscolumnWidget-CJABAor8.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-Cv-6FXU3.js → LimitscolumnWidget-ufFMz6R-.js} +5 -5
- package/dist/{LimitscolumnWidget-Cv-6FXU3.js.map → LimitscolumnWidget-ufFMz6R-.js.map} +1 -1
- package/dist/{LinegraphWidget-so5ohfWF.cjs → LinegraphWidget-3E8L5CvM.cjs} +2 -2
- package/dist/{LinegraphWidget-so5ohfWF.cjs.map → LinegraphWidget-3E8L5CvM.cjs.map} +1 -1
- package/dist/{LinegraphWidget-BahyhwSt.js → LinegraphWidget-BC2wVOny.js} +7 -7
- package/dist/{LinegraphWidget-BahyhwSt.js.map → LinegraphWidget-BC2wVOny.js.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-Dma8IsO-.cjs → MatrixbycolumnsWidget-DICgiNQo.cjs} +2 -2
- package/dist/{MatrixbycolumnsWidget-Dma8IsO-.cjs.map → MatrixbycolumnsWidget-DICgiNQo.cjs.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-B1Hy9but.js → MatrixbycolumnsWidget-DfUAeBnO.js} +5 -5
- package/dist/{MatrixbycolumnsWidget-B1Hy9but.js.map → MatrixbycolumnsWidget-DfUAeBnO.js.map} +1 -1
- package/dist/{MicroservicesTab-BSXNA_Si.js → MicroservicesTab-B0SZVty3.js} +67 -62
- package/dist/MicroservicesTab-B0SZVty3.js.map +1 -0
- package/dist/MicroservicesTab-snXJDoYq.cjs +4 -0
- package/dist/MicroservicesTab-snXJDoYq.cjs.map +1 -0
- package/dist/{OpenC3TimePicker-LN9R7V31.js → OpenC3TimePicker-DpkbfbgC.js} +5 -5
- package/dist/{OpenC3TimePicker-LN9R7V31.js.map → OpenC3TimePicker-DpkbfbgC.js.map} +1 -1
- package/dist/{OpenC3TimePicker-BHX9fnlR.cjs → OpenC3TimePicker-Yl1jVi7p.cjs} +2 -2
- package/dist/{OpenC3TimePicker-BHX9fnlR.cjs.map → OpenC3TimePicker-Yl1jVi7p.cjs.map} +1 -1
- package/dist/{Openc3Screen-CJOTF-lu.cjs → Openc3Screen-D1RLlBgQ.cjs} +5 -5
- package/dist/Openc3Screen-D1RLlBgQ.cjs.map +1 -0
- package/dist/{Openc3Screen-BP7Ho9XC.js → Openc3Screen-DbUvz-3B.js} +254 -254
- package/dist/Openc3Screen-DbUvz-3B.js.map +1 -0
- package/dist/{OutputDialog-Dx5mkq19.cjs → OutputDialog-ChPCaQAE.cjs} +2 -2
- package/dist/{OutputDialog-Dx5mkq19.cjs.map → OutputDialog-ChPCaQAE.cjs.map} +1 -1
- package/dist/{OutputDialog-JdAxzpPD.js → OutputDialog-Ds-GdGyI.js} +5 -5
- package/dist/{OutputDialog-JdAxzpPD.js.map → OutputDialog-Ds-GdGyI.js.map} +1 -1
- package/dist/PackagesTab-BgQsbXRo.cjs +2 -0
- package/dist/PackagesTab-BgQsbXRo.cjs.map +1 -0
- package/dist/{PackagesTab-ByfVH001.js → PackagesTab-CWplBp_I.js} +70 -66
- package/dist/PackagesTab-CWplBp_I.js.map +1 -0
- package/dist/{PluginsTab-D7zpmf8s.js → PluginsTab-BiiL622n.js} +486 -448
- package/dist/PluginsTab-BiiL622n.js.map +1 -0
- package/dist/PluginsTab-RgIMk-F7.cjs +6 -0
- package/dist/PluginsTab-RgIMk-F7.cjs.map +1 -0
- package/dist/{ProgressbarWidget-mAVHKeok.js → ProgressbarWidget-D3ndYnq_.js} +5 -5
- package/dist/{ProgressbarWidget-mAVHKeok.js.map → ProgressbarWidget-D3ndYnq_.js.map} +1 -1
- package/dist/{ProgressbarWidget-BINuoD9p.cjs → ProgressbarWidget-DludJVUf.cjs} +2 -2
- package/dist/{ProgressbarWidget-BINuoD9p.cjs.map → ProgressbarWidget-DludJVUf.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-CL3QjTnZ.js → RadiobuttonWidget-CP0S9nWW.js} +5 -5
- package/dist/{RadiobuttonWidget-CL3QjTnZ.js.map → RadiobuttonWidget-CP0S9nWW.js.map} +1 -1
- package/dist/{RadiobuttonWidget-DDmgt0su.cjs → RadiobuttonWidget-DX4h94p1.cjs} +2 -2
- package/dist/{RadiobuttonWidget-DDmgt0su.cjs.map → RadiobuttonWidget-DX4h94p1.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-RUwgtUTC.js → RadiogroupWidget-BXHfA21T.js} +4 -4
- package/dist/{RadiogroupWidget-RUwgtUTC.js.map → RadiogroupWidget-BXHfA21T.js.map} +1 -1
- package/dist/{RadiogroupWidget-q7h1v-ko.cjs → RadiogroupWidget-NqjBNUH6.cjs} +2 -2
- package/dist/{RadiogroupWidget-q7h1v-ko.cjs.map → RadiogroupWidget-NqjBNUH6.cjs.map} +1 -1
- package/dist/{RangebarWidget-CfDsKLZc.js → RangebarWidget-Bv2DqkPo.js} +5 -5
- package/dist/{RangebarWidget-CfDsKLZc.js.map → RangebarWidget-Bv2DqkPo.js.map} +1 -1
- package/dist/{RangebarWidget-BbPMpwMs.cjs → RangebarWidget-CRq2zpvw.cjs} +2 -2
- package/dist/{RangebarWidget-BbPMpwMs.cjs.map → RangebarWidget-CRq2zpvw.cjs.map} +1 -1
- package/dist/{RedisTab-YrX-5A3T.js → RedisTab-7TbOXFA_.js} +9 -9
- package/dist/{RedisTab-YrX-5A3T.js.map → RedisTab-7TbOXFA_.js.map} +1 -1
- package/dist/{RedisTab-dZE6KvLS.cjs → RedisTab-DpWPY1P0.cjs} +2 -2
- package/dist/{RedisTab-dZE6KvLS.cjs.map → RedisTab-DpWPY1P0.cjs.map} +1 -1
- package/dist/{RollupWidget-BmgRFIOo.cjs → RollupWidget-B7_Q_boi.cjs} +2 -2
- package/dist/{RollupWidget-BmgRFIOo.cjs.map → RollupWidget-B7_Q_boi.cjs.map} +1 -1
- package/dist/{RollupWidget-DCMoQUeJ.js → RollupWidget-o_huYU0x.js} +5 -5
- package/dist/{RollupWidget-DCMoQUeJ.js.map → RollupWidget-o_huYU0x.js.map} +1 -1
- package/dist/{RoutersTab-C6vejQrw.cjs → RoutersTab-CAbnSGHy.cjs} +2 -2
- package/dist/{RoutersTab-C6vejQrw.cjs.map → RoutersTab-CAbnSGHy.cjs.map} +1 -1
- package/dist/{RoutersTab-MA9KW_gu.js → RoutersTab-DN17iBBi.js} +9 -9
- package/dist/{RoutersTab-MA9KW_gu.js.map → RoutersTab-DN17iBBi.js.map} +1 -1
- package/dist/{ScriptChooser-Cm_HEyBf.cjs → ScriptChooser-CggwstfT.cjs} +2 -2
- package/dist/{ScriptChooser-Cm_HEyBf.cjs.map → ScriptChooser-CggwstfT.cjs.map} +1 -1
- package/dist/{ScriptChooser-DGbs03IW.js → ScriptChooser-CzzUJ1Zj.js} +6 -6
- package/dist/{ScriptChooser-DGbs03IW.js.map → ScriptChooser-CzzUJ1Zj.js.map} +1 -1
- package/dist/{ScrollwindowWidget-DarXe7-1.js → ScrollwindowWidget-DdjaML6D.js} +4 -4
- package/dist/{ScrollwindowWidget-DarXe7-1.js.map → ScrollwindowWidget-DdjaML6D.js.map} +1 -1
- package/dist/{ScrollwindowWidget-BbASNNcM.cjs → ScrollwindowWidget-kS5QjP-v.cjs} +2 -2
- package/dist/{ScrollwindowWidget-BbASNNcM.cjs.map → ScrollwindowWidget-kS5QjP-v.cjs.map} +1 -1
- package/dist/{SecretsTab-DwE3KJNI.cjs → SecretsTab-Cn6-o85L.cjs} +2 -2
- package/dist/{SecretsTab-DwE3KJNI.cjs.map → SecretsTab-Cn6-o85L.cjs.map} +1 -1
- package/dist/{SecretsTab-DTaPAHv3.js → SecretsTab-Cu3sx2OA.js} +4 -4
- package/dist/{SecretsTab-DTaPAHv3.js.map → SecretsTab-Cu3sx2OA.js.map} +1 -1
- package/dist/{SettingsTab-BhT5sui9.js → SettingsTab-B_vvSLvt.js} +6 -6
- package/dist/{SettingsTab-BhT5sui9.js.map → SettingsTab-B_vvSLvt.js.map} +1 -1
- package/dist/{SettingsTab-o9tfAuE4.cjs → SettingsTab-C6zIL2D6.cjs} +2 -2
- package/dist/{SettingsTab-o9tfAuE4.cjs.map → SettingsTab-C6zIL2D6.cjs.map} +1 -1
- package/dist/{SignalWidget-CO3UaFok.cjs → SignalWidget-BagcB92r.cjs} +2 -2
- package/dist/{SignalWidget-CO3UaFok.cjs.map → SignalWidget-BagcB92r.cjs.map} +1 -1
- package/dist/{SignalWidget-C-iEC5KL.js → SignalWidget-Dd54y28I.js} +5 -5
- package/dist/{SignalWidget-C-iEC5KL.js.map → SignalWidget-Dd54y28I.js.map} +1 -1
- package/dist/{SimpleTextDialog-B9ZurpdS.cjs → SimpleTextDialog-BJ50TbWh.cjs} +2 -2
- package/dist/{SimpleTextDialog-B9ZurpdS.cjs.map → SimpleTextDialog-BJ50TbWh.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-Bqh3eT2B.js → SimpleTextDialog-DZv9n_kJ.js} +5 -5
- package/dist/{SimpleTextDialog-Bqh3eT2B.js.map → SimpleTextDialog-DZv9n_kJ.js.map} +1 -1
- package/dist/{SpacerWidget-CQh-LB4u.cjs → SpacerWidget-DWjBns9r.cjs} +2 -2
- package/dist/{SpacerWidget-CQh-LB4u.cjs.map → SpacerWidget-DWjBns9r.cjs.map} +1 -1
- package/dist/{SpacerWidget-FHxUhs1G.js → SpacerWidget-GPFYtIG1.js} +5 -5
- package/dist/{SpacerWidget-FHxUhs1G.js.map → SpacerWidget-GPFYtIG1.js.map} +1 -1
- package/dist/{SparklineWidget-ClT5Umm2.js → SparklineWidget-f11nrlLS.js} +7 -7
- package/dist/{SparklineWidget-ClT5Umm2.js.map → SparklineWidget-f11nrlLS.js.map} +1 -1
- package/dist/{SparklineWidget-BsMIozYC.cjs → SparklineWidget-xdPgolp3.cjs} +2 -2
- package/dist/{SparklineWidget-BsMIozYC.cjs.map → SparklineWidget-xdPgolp3.cjs.map} +1 -1
- package/dist/{TabbookWidget-So-oaWd4.cjs → TabbookWidget-CUIYWHRH.cjs} +2 -2
- package/dist/{TabbookWidget-So-oaWd4.cjs.map → TabbookWidget-CUIYWHRH.cjs.map} +1 -1
- package/dist/{TabbookWidget-D-b0v0oo.js → TabbookWidget-DeaC27yC.js} +4 -4
- package/dist/{TabbookWidget-D-b0v0oo.js.map → TabbookWidget-DeaC27yC.js.map} +1 -1
- package/dist/{TargetPacketItemChooser-DD7JgCD9.js → TargetPacketItemChooser-BoBqvs3T.js} +23 -23
- package/dist/TargetPacketItemChooser-BoBqvs3T.js.map +1 -0
- package/dist/TargetPacketItemChooser-C0Z90rss.cjs +2 -0
- package/dist/TargetPacketItemChooser-C0Z90rss.cjs.map +1 -0
- package/dist/{TargetsTab-BD0JGvAl.cjs → TargetsTab-BMcWjrZ_.cjs} +2 -2
- package/dist/{TargetsTab-BD0JGvAl.cjs.map → TargetsTab-BMcWjrZ_.cjs.map} +1 -1
- package/dist/{TargetsTab-hTLe_rba.js → TargetsTab-CjVaBN9O.js} +11 -11
- package/dist/{TargetsTab-hTLe_rba.js.map → TargetsTab-CjVaBN9O.js.map} +1 -1
- package/dist/{TextBoxDialog-BRwZOtzT.js → TextBoxDialog-R6GC8pMa.js} +4 -4
- package/dist/{TextBoxDialog-BRwZOtzT.js.map → TextBoxDialog-R6GC8pMa.js.map} +1 -1
- package/dist/{TextboxWidget-CF4iq315.cjs → TextboxWidget-CXA9rR02.cjs} +2 -2
- package/dist/{TextboxWidget-CF4iq315.cjs.map → TextboxWidget-CXA9rR02.cjs.map} +1 -1
- package/dist/{TextboxWidget-WM3eFUR_.js → TextboxWidget-tL41zWUX.js} +6 -6
- package/dist/{TextboxWidget-WM3eFUR_.js.map → TextboxWidget-tL41zWUX.js.map} +1 -1
- package/dist/{TextfieldWidget-D9BINKRU.cjs → TextfieldWidget-D-H2fOZG.cjs} +2 -2
- package/dist/{TextfieldWidget-D9BINKRU.cjs.map → TextfieldWidget-D-H2fOZG.cjs.map} +1 -1
- package/dist/{TextfieldWidget-lfc1Vg51.js → TextfieldWidget-D1qj14Qi.js} +5 -5
- package/dist/{TextfieldWidget-lfc1Vg51.js.map → TextfieldWidget-D1qj14Qi.js.map} +1 -1
- package/dist/{TimeWidget-CgtJbnnC.cjs → TimeWidget-CGk8Ze_I.cjs} +2 -2
- package/dist/{TimeWidget-CgtJbnnC.cjs.map → TimeWidget-CGk8Ze_I.cjs.map} +1 -1
- package/dist/{TimeWidget-B13aIVqG.js → TimeWidget-CSVGNong.js} +6 -6
- package/dist/{TimeWidget-B13aIVqG.js.map → TimeWidget-CSVGNong.js.map} +1 -1
- package/dist/{TitleWidget-CTAMgzU4.js → TitleWidget-CLx-tuYT.js} +5 -5
- package/dist/{TitleWidget-CTAMgzU4.js.map → TitleWidget-CLx-tuYT.js.map} +1 -1
- package/dist/{TitleWidget-BV2sDP_-.cjs → TitleWidget-ClhWhUf3.cjs} +2 -2
- package/dist/{TitleWidget-BV2sDP_-.cjs.map → TitleWidget-ClhWhUf3.cjs.map} +1 -1
- package/dist/{ToolsTab-DXK-L-kx.cjs → ToolsTab-DTHap-Nq.cjs} +2 -2
- package/dist/{ToolsTab-DXK-L-kx.cjs.map → ToolsTab-DTHap-Nq.cjs.map} +1 -1
- package/dist/{ToolsTab-CmhRtClS.js → ToolsTab-lBB_KhmA.js} +10 -10
- package/dist/{ToolsTab-CmhRtClS.js.map → ToolsTab-lBB_KhmA.js.map} +1 -1
- package/dist/{TopBar-D-lJHb6d.js → TopBar-C810rP_B.js} +4 -4
- package/dist/{TopBar-D-lJHb6d.js.map → TopBar-C810rP_B.js.map} +1 -1
- package/dist/{TopBar-BiE7GgIN.cjs → TopBar-Ctzx7o2k.cjs} +2 -2
- package/dist/{TopBar-BiE7GgIN.cjs.map → TopBar-Ctzx7o2k.cjs.map} +1 -1
- package/dist/TsdbTab-7F4mRKDo.js +125 -0
- package/dist/TsdbTab-7F4mRKDo.js.map +1 -0
- package/dist/TsdbTab-DVF6n9mq.cjs +2 -0
- package/dist/TsdbTab-DVF6n9mq.cjs.map +1 -0
- package/dist/{UpgradeToEnterpriseDialog-et3RrozN.js → UpgradeToEnterpriseDialog-D_S574Zb.js} +6 -6
- package/dist/{UpgradeToEnterpriseDialog-et3RrozN.js.map → UpgradeToEnterpriseDialog-D_S574Zb.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-D1_viCAx.cjs → UpgradeToEnterpriseDialog-XJb6gVCY.cjs} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-D1_viCAx.cjs.map → UpgradeToEnterpriseDialog-XJb6gVCY.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-D0cYHPwr.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js} +11973 -11975
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js.map +1 -0
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs +1485 -0
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs.map +1 -0
- package/dist/{VWidget-0kkhOxhV.js → VWidget-CxnaMF0w.js} +3 -3
- package/dist/{VWidget-0kkhOxhV.js.map → VWidget-CxnaMF0w.js.map} +1 -1
- package/dist/{VWidget-Dkji3VZ0.cjs → VWidget-dEHSEvZx.cjs} +2 -2
- package/dist/{VWidget-Dkji3VZ0.cjs.map → VWidget-dEHSEvZx.cjs.map} +1 -1
- package/dist/{ValueWidget-BoQfnx8U.js → ValueWidget-BYgpXfDo.js} +6 -6
- package/dist/{ValueWidget-BoQfnx8U.js.map → ValueWidget-BYgpXfDo.js.map} +1 -1
- package/dist/{ValueWidget-mkXMZvdK.cjs → ValueWidget-Bws1qOEI.cjs} +2 -2
- package/dist/{ValueWidget-mkXMZvdK.cjs.map → ValueWidget-Bws1qOEI.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-B8IUYgYx.cjs → ValuelimitsbarWidget-BoZSJvuq.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-B8IUYgYx.cjs.map → ValuelimitsbarWidget-BoZSJvuq.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-ZfgwDNqX.js → ValuelimitsbarWidget-Dc9-VNZ3.js} +7 -7
- package/dist/{ValuelimitsbarWidget-ZfgwDNqX.js.map → ValuelimitsbarWidget-Dc9-VNZ3.js.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-B3x9DknL.js → ValuelimitscolumnWidget-b7W8K3mR.js} +7 -7
- package/dist/{ValuelimitscolumnWidget-B3x9DknL.js.map → ValuelimitscolumnWidget-b7W8K3mR.js.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-B7DigaiC.cjs → ValuelimitscolumnWidget-ta9i_tiy.cjs} +2 -2
- package/dist/{ValuelimitscolumnWidget-B7DigaiC.cjs.map → ValuelimitscolumnWidget-ta9i_tiy.cjs.map} +1 -1
- package/dist/{ValuerangebarWidget-40InNHft.js → ValuerangebarWidget-DmhczZQb.js} +7 -7
- package/dist/{ValuerangebarWidget-40InNHft.js.map → ValuerangebarWidget-DmhczZQb.js.map} +1 -1
- package/dist/{ValuerangebarWidget-DA4X0MuO.cjs → ValuerangebarWidget-Ips-beG6.cjs} +2 -2
- package/dist/{ValuerangebarWidget-DA4X0MuO.cjs.map → ValuerangebarWidget-Ips-beG6.cjs.map} +1 -1
- package/dist/{VerticalWidget-BiFa3xbs.cjs → VerticalWidget-BVt7QPjO.cjs} +2 -2
- package/dist/{VerticalWidget-BiFa3xbs.cjs.map → VerticalWidget-BVt7QPjO.cjs.map} +1 -1
- package/dist/{VerticalWidget-abr1X6L7.js → VerticalWidget-BvsVh0Ob.js} +4 -4
- package/dist/{VerticalWidget-abr1X6L7.js.map → VerticalWidget-BvsVh0Ob.js.map} +1 -1
- package/dist/{VerticalboxWidget-Cx30rcqe.cjs → VerticalboxWidget-CNoXT3YW.cjs} +2 -2
- package/dist/{VerticalboxWidget-Cx30rcqe.cjs.map → VerticalboxWidget-CNoXT3YW.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-DsbB17o-.js → VerticalboxWidget-ClTCDCQN.js} +7 -7
- package/dist/{VerticalboxWidget-DsbB17o-.js.map → VerticalboxWidget-ClTCDCQN.js.map} +1 -1
- package/dist/{Widget-VL9FlMQp.cjs → Widget-CB_BtOFw.cjs} +2 -2
- package/dist/{Widget-VL9FlMQp.cjs.map → Widget-CB_BtOFw.cjs.map} +1 -1
- package/dist/{Widget-DksaxMdD.js → Widget-DRhVdCLP.js} +2 -2
- package/dist/{Widget-DksaxMdD.js.map → Widget-DRhVdCLP.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +19 -19
- package/dist/icons.js +2 -2
- package/dist/{index-Qy49-kGB.cjs → index-3sXOEKCU.cjs} +4 -4
- package/dist/index-3sXOEKCU.cjs.map +1 -0
- package/dist/{index-DqKiZufS.cjs → index-B34azWgs.cjs} +4 -4
- package/dist/index-B34azWgs.cjs.map +1 -0
- package/dist/{index-C7Uj4U87.js → index-CJcL4_a4.js} +6 -6
- package/dist/index-CJcL4_a4.js.map +1 -0
- package/dist/{index-BRc4sKEF.js → index-GYAZJDxn.js} +75 -69
- package/dist/index-GYAZJDxn.js.map +1 -0
- package/dist/plugins.cjs +1 -1
- package/dist/plugins.cjs.map +1 -1
- package/dist/plugins.js +3 -3
- package/dist/plugins.js.map +1 -1
- package/dist/purify.es-4pyphLiB.cjs +3 -0
- package/dist/purify.es-4pyphLiB.cjs.map +1 -0
- package/dist/{purify.es-DcWaZU6I.js → purify.es-BPDBzHtc.js} +115 -115
- package/dist/purify.es-BPDBzHtc.js.map +1 -0
- package/dist/{settings-D3MxiRHY.cjs → settings-B0AhztTk.cjs} +2 -2
- package/dist/{settings-D3MxiRHY.cjs.map → settings-B0AhztTk.cjs.map} +1 -1
- package/dist/{settings-BDlsBCNk.js → settings-C2auUQwX.js} +2 -2
- package/dist/{settings-BDlsBCNk.js.map → settings-C2auUQwX.js.map} +1 -1
- package/dist/tools/admin.cjs +1 -1
- package/dist/tools/admin.js +1 -1
- package/dist/tools/base.cjs +1 -1
- package/dist/tools/base.js +9 -9
- 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 +3185 -2986
- package/dist/tools/scriptrunner.js.map +1 -1
- package/dist/vue-common.css +1 -1
- package/dist/widgets.cjs +1 -1
- package/dist/widgets.js +65 -65
- package/package.json +10 -10
- package/dist/EventListDialog-CktWO2jn.js.map +0 -1
- package/dist/EventListDialog-EAGLDaHc.cjs +0 -2
- package/dist/EventListDialog-EAGLDaHc.cjs.map +0 -1
- package/dist/Graph-9_EZ9aQx.cjs +0 -2
- package/dist/Graph-9_EZ9aQx.cjs.map +0 -1
- package/dist/Graph-GhpiUBKI.js.map +0 -1
- package/dist/HorizontallineWidget-CnRlq7hi.js +0 -16
- package/dist/MicroservicesTab-ARGtrfOb.cjs +0 -4
- package/dist/MicroservicesTab-ARGtrfOb.cjs.map +0 -1
- package/dist/MicroservicesTab-BSXNA_Si.js.map +0 -1
- package/dist/Openc3Screen-BP7Ho9XC.js.map +0 -1
- package/dist/Openc3Screen-CJOTF-lu.cjs.map +0 -1
- package/dist/PackagesTab-ByfVH001.js.map +0 -1
- package/dist/PackagesTab-HPNAXhzf.cjs +0 -2
- package/dist/PackagesTab-HPNAXhzf.cjs.map +0 -1
- package/dist/PluginsTab-D7zpmf8s.js.map +0 -1
- package/dist/PluginsTab-DfmpvAYa.cjs +0 -6
- package/dist/PluginsTab-DfmpvAYa.cjs.map +0 -1
- package/dist/TargetPacketItemChooser-DD7JgCD9.js.map +0 -1
- package/dist/TargetPacketItemChooser-PqyXKRlT.cjs +0 -2
- package/dist/TargetPacketItemChooser-PqyXKRlT.cjs.map +0 -1
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-D0cYHPwr.js.map +0 -1
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs +0 -1485
- package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs.map +0 -1
- package/dist/index-BRc4sKEF.js.map +0 -1
- package/dist/index-C7Uj4U87.js.map +0 -1
- package/dist/index-DqKiZufS.cjs.map +0 -1
- package/dist/index-Qy49-kGB.cjs.map +0 -1
- package/dist/purify.es-B336bjAn.cjs +0 -3
- package/dist/purify.es-B336bjAn.cjs.map +0 -1
- package/dist/purify.es-DcWaZU6I.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const V=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-
|
|
2
|
-
//# sourceMappingURL=OpenC3TimePicker-
|
|
1
|
+
"use strict";const V=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs"),r=require("vue"),y=require("./CustomIcon-8F08upeg.cjs"),_={inheritAttrs:!1,props:{modelValue:{type:String,default:""},label:{type:String,default:"Time"},rules:{type:Array,default:()=>[]},hideDetails:{type:[Boolean,String],default:!1},variant:{type:String,default:"filled"},density:{type:String,default:"default"},style:{type:[String,Object],default:""},textFieldClass:{type:String,default:""},dataTest:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{menu:!1,timeFormat:"ampm",tempTime:null,inputValue:""}},computed:{computedStyle(){return typeof this.style=="string"?this.style:this.style},computedRules(){return this.rules.map(e=>()=>e(this.modelValue))}},watch:{modelValue:{immediate:!0,handler(e){this.menu||(this.inputValue=this.formatForDisplay(e))}},inputValue(e){e===""&&this.modelValue!==""&&this.$emit("update:modelValue","")},menu(e){e&&(this.tempTime=this.normalizeTime(this.modelValue)||"00:00:00")},tempTime(e){this.menu&&e&&(this.inputValue=this.formatForDisplay(e))}},async created(){const e=this.inputValue;await this.loadTimeFormat(),this.inputValue===e&&(this.inputValue=this.formatForDisplay(this.modelValue))},methods:{async loadTimeFormat(){try{const t=await new V.yi().get_setting("time_format");t&&(this.timeFormat=t)}catch{this.timeFormat="ampm"}},formatForDisplay(e){return e?this.timeFormat==="24hr"?e:this.convertTo12Hour(e):""},handleBlur(){const e=this.parseTimeInput(this.inputValue);e?(this.$emit("update:modelValue",e),this.inputValue=this.formatForDisplay(e)):this.inputValue===""?this.$emit("update:modelValue",""):this.inputValue=this.formatForDisplay(this.modelValue)},parseTimeInput(e){if(!e||e.trim()==="")return"";const t=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(t){const n=Number.parseInt(t[1],10),i=Number.parseInt(t[2],10),s=t[3]?Number.parseInt(t[3],10):0;if(n>=0&&n<=23&&i>=0&&i<=59&&s>=0&&s<=59)return`${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}`}const a=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)$/i);if(a){let n=Number.parseInt(a[1],10);const i=Number.parseInt(a[2],10),s=a[3]?Number.parseInt(a[3],10):0,l=a[4].toUpperCase();if(n>=1&&n<=12&&i>=0&&i<=59&&s>=0&&s<=59)return l==="AM"?n===12&&(n=0):n!==12&&(n+=12),`${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}`}return null},save(){this.$emit("update:modelValue",this.tempTime),this.inputValue=this.formatForDisplay(this.tempTime),this.menu=!1},cancel(){this.tempTime=this.normalizeTime(this.modelValue)||"00:00:00",this.menu=!1},normalizeTime(e){if(!e)return"";const t=e.split(":");if(t.length<2)return e;const a=Number.parseInt(t[0],10),n=Number.parseInt(t[1],10),i=t.length>2?Number.parseInt(t[2],10):0;return Number.isNaN(a)||Number.isNaN(n)||Number.isNaN(i)?"":`${a.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`},convertTo12Hour(e){if(!e)return"";const t=e.split(":");if(t.length<2)return e;let a=Number.parseInt(t[0],10);const n=Number.parseInt(t[1],10),i=t.length>2?Number.parseInt(t[2],10):0;if(Number.isNaN(a)||Number.isNaN(n)||Number.isNaN(i))return e;const s=a>=12?"PM":"AM";a=a%12,a=a||12;const l=a.toString().padStart(2,"0"),u=n.toString().padStart(2,"0"),m=i.toString().padStart(2,"0");return`${l}:${u}:${m} ${s}`}}};function N(e,t,a,n,i,s){const l=r.resolveComponent("v-icon"),u=r.resolveComponent("v-time-picker"),m=r.resolveComponent("v-spacer"),d=r.resolveComponent("v-btn"),p=r.resolveComponent("v-card-actions"),c=r.resolveComponent("v-card"),h=r.resolveComponent("v-menu"),f=r.resolveComponent("v-text-field");return r.openBlock(),r.createBlock(f,{modelValue:i.inputValue,"onUpdate:modelValue":t[2]||(t[2]=o=>i.inputValue=o),label:a.label,rules:s.computedRules,"hide-details":a.hideDetails,variant:a.variant,density:a.density,style:r.normalizeStyle(s.computedStyle),class:r.normalizeClass(a.textFieldClass),disabled:a.disabled,"data-test":a.dataTest,onBlur:s.handleBlur,onKeydown:r.withKeys(s.handleBlur,["enter"])},{"prepend-inner":r.withCtx(()=>[r.createVNode(h,{modelValue:i.menu,"onUpdate:modelValue":t[1]||(t[1]=o=>i.menu=o),"close-on-content-click":!1,transition:"scale-transition",offset:"16"},{activator:r.withCtx(({props:o})=>[r.createVNode(l,r.mergeProps(o,{class:"cursor-pointer"}),{default:r.withCtx(()=>[...t[3]||(t[3]=[r.createTextVNode(" mdi-clock-outline ",-1)])]),_:1},16)]),default:r.withCtx(()=>[r.createVNode(c,{class:"time-picker-card"},{default:r.withCtx(()=>[r.createVNode(u,{modelValue:i.tempTime,"onUpdate:modelValue":t[0]||(t[0]=o=>i.tempTime=o),format:i.timeFormat,scrollable:"","use-seconds":"","hide-header":""},null,8,["modelValue","format"]),r.createVNode(p,null,{default:r.withCtx(()=>[r.createVNode(m),r.createVNode(d,{variant:"text",onClick:s.cancel},{default:r.withCtx(()=>[...t[4]||(t[4]=[r.createTextVNode("Cancel",-1)])]),_:1},8,["onClick"]),r.createVNode(d,{color:"primary",variant:"text",onClick:s.save},{default:r.withCtx(()=>[...t[5]||(t[5]=[r.createTextVNode("OK",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue","label","rules","hide-details","variant","density","style","class","disabled","data-test","onBlur","onKeydown"])}const v=y._export_sfc(_,[["render",N],["__scopeId","data-v-5606bec3"]]);exports.OpenC3TimePicker=v;
|
|
2
|
+
//# sourceMappingURL=OpenC3TimePicker-Yl1jVi7p.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenC3TimePicker-BHX9fnlR.cjs","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See LICENSE.md for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n // Normalize to HH:mm:ss format (v-time-picker doesn't handle milliseconds)\n this.tempTime = this.normalizeTime(this.modelValue) || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n // Capture current display before async call\n const previousDisplay = this.inputValue\n await this.loadTimeFormat()\n // Only update display if it hasn't been changed externally during the await\n if (this.inputValue === previousDisplay) {\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = Number.parseInt(time24Match[1], 10)\n const minutes = Number.parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? Number.parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = Number.parseInt(time12Match[1], 10)\n const minutes = Number.parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? Number.parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.normalizeTime(this.modelValue) || '00:00:00'\n this.menu = false\n },\n // Normalize time to HH:mm:ss format (strips milliseconds if present)\n normalizeTime(time) {\n if (!time) return ''\n const parts = time.split(':')\n if (parts.length < 2) return time\n const hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return ''\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n // Validate all parts are valid numbers\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return time24 // Return original if parsing fails\n }\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n const paddedMinutes = minutes.toString().padStart(2, '0')\n const paddedSeconds = seconds.toString().padStart(2, '0')\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","previousDisplay","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","time","parts","ampm","paddedHours","paddedMinutes","paddedSeconds","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OpenC3TimePicker-Yl1jVi7p.cjs","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n# See LICENSE.md for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n // Normalize to HH:mm:ss format (v-time-picker doesn't handle milliseconds)\n this.tempTime = this.normalizeTime(this.modelValue) || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n // Capture current display before async call\n const previousDisplay = this.inputValue\n await this.loadTimeFormat()\n // Only update display if it hasn't been changed externally during the await\n if (this.inputValue === previousDisplay) {\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = Number.parseInt(time24Match[1], 10)\n const minutes = Number.parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? Number.parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = Number.parseInt(time12Match[1], 10)\n const minutes = Number.parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? Number.parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.normalizeTime(this.modelValue) || '00:00:00'\n this.menu = false\n },\n // Normalize time to HH:mm:ss format (strips milliseconds if present)\n normalizeTime(time) {\n if (!time) return ''\n const parts = time.split(':')\n if (parts.length < 2) return time\n const hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return ''\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n // Validate all parts are valid numbers\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return time24 // Return original if parsing fails\n }\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n const paddedMinutes = minutes.toString().padStart(2, '0')\n const paddedSeconds = seconds.toString().padStart(2, '0')\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","previousDisplay","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","time","parts","ampm","paddedHours","paddedMinutes","paddedSeconds","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";const p=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs"),e=require("vue"),C=require("./CustomIcon-8F08upeg.cjs"),D=require("./fileIcon-BduOQcTc.cjs"),V=require("./TopBar-BiE7GgIN.cjs");class k{constructor(){p.Fr.get("/openc3-api/autocomplete/data/screen").then(n=>{this.autocompleteData=n.data}),this.api=new p.yi}async getCompletions(n,i,l,o,s){if(!this.autocompleteData)return s(null,[]);let h=i.getLine(l.row).slice(0,l.column).trimStart().split(/ (?![^<]*>)/),d=this.autocompleteData;h.length>1&&(d=d.find(v=>v.caption===h[0]));let g={},y=!0;if(d&&d.params){d.params.length==h.length-1&&(y=!1);let v=d.params[h.length-2];if(v["Target name"])d=(await this.api.get_target_names()).reduce((r,f)=>(r[f]=1,r),{});else if(v["Packet name"]){let u=h[h.length-2];d=(await this.api.get_all_tlm(u)).reduce((f,c)=>(f[c.packet_name]=c.description,f),{}),d.LATEST="LATEST values from all packets"}else if(v["Item name"]){let u=h[h.length-3],r=h[h.length-2];if(r==="LATEST"){let f=await this.api.get_all_tlm_item_names(u);d={},f.forEach(c=>{d[c]=`LATEST ${c}`})}else d=(await this.api.get_tlm(u,r)).items.reduce((c,_)=>(c[_.name]=_.description,c),{})}else d=v;g=Object.keys(d||{}).map(u=>{let r={value:u+(y?" ":""),command:y&&"startAutocomplete"};return typeof d[u]=="string"&&(r.meta=d[u]),r})}else g=d;s(null,g)}}const I={props:{modelValue:{type:String,default:""},keywords:{type:Array,default:()=>[]},height:{type:String,default:"45vh"},filename:{type:String,default:"screen.txt"}},emits:["update:modelValue"],data(){return{editor:null,file:null,loadedKeywords:[],docsKeyword:"",contextMenu:!1,menuX:0,menuY:0}},computed:{effectiveKeywords(){return this.keywords.length>0?this.keywords:this.loadedKeywords}},watch:{modelValue(t){this.editor&&this.editor.getValue()!==t&&(this.editor.setValue(t),this.editor.clearSelection())},effectiveKeywords(){if(this.editor){const t=this.buildScreenMode();this.editor.session.setMode(new t)}}},created(){this.keywords.length===0&&this.loadKeywords()},mounted(){this.initEditor()},beforeUnmount(){this.editor&&(this.editor.destroy(),this.editor.container.remove())},methods:{async loadKeywords(){try{const t=await p.Fr.get("/openc3-api/autocomplete/keywords/screen");this.loadedKeywords=t.data}catch(t){console.error("Error loading screen keywords:",t)}},initEditor(){this.editor=p.aceExports.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight");const t=this.buildScreenMode();this.editor.session.setMode(new t),this.editor.session.setTabSize(2),this.editor.session.setUseWrapMode(!0),this.editor.$blockScrolling=1/0,this.editor.setOption("enableBasicAutocompletion",!0),this.editor.setOption("enableLiveAutocompletion",!0),this.editor.completers=[new k],this.editor.setHighlightActiveLine(!1),this.editor.setValue(this.modelValue),this.editor.clearSelection(),V.AceEditorUtils.applyVimModeIfEnabled(this.editor),this.editor.focus(),this.editor.session.on("change",()=>{this.$emit("update:modelValue",this.editor.getValue())})},getValue(){return this.editor?this.editor.getValue():this.modelValue},buildScreenMode(){let t=p.aceExports.require("ace/lib/oop"),n=p.aceExports.require("ace/mode/text_highlight_rules").TextHighlightRules,i=this.effectiveKeywords.join("|"),l=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"\\b\\d+(?:\\.\\d+)?\\b"},{token:"keyword",regex:i?new RegExp(`^\\s*(${i})\\b`):/(?!)/}]},this.normalizeRules()};t.inherits(l,n);let o=function(){this.HighlightRules=l},s=p.aceExports.require("ace/mode/text").Mode;return t.inherits(o,s),(function(){this.$id="ace/mode/openc3"}).call(o.prototype),o},toggleVimMode(){V.AceEditorUtils.toggleVimMode(this.editor)},showContextMenu(t){this.menuX=t.pageX,this.menuY=t.pageY;let n=this.editor.getCursorPosition(),i=this.editor.session.getTokenAt(n.row,n.column);if(i){let l=i.value.trim();l.includes(" ")?this.docsKeyword=l.split(" ")[0]:this.docsKeyword=l,this.contextMenu=!0}},openDocumentation(){window.open(`${window.location.origin}/tools/staticdocs/docs/configuration/telemetry-screens#${this.docsKeyword.toLowerCase()}`,"_blank")},downloadContent(){const t=new Blob([this.editor.getValue()],{type:"text/plain"}),n=document.createElement("a");n.href=URL.createObjectURL(t),n.setAttribute("download",this.filename),n.click()},loadFile(){const t=new FileReader;t.readAsText(this.file);const n=this;t.onload=function(){n.editor.setValue(t.result),n.editor.clearSelection(),n.file=null}}}},B={class:"screen-editor-container"};function A(t,n,i,l,o,s){const a=e.resolveComponent("v-btn"),m=e.resolveComponent("v-file-input"),h=e.resolveComponent("v-spacer"),d=e.resolveComponent("v-row"),g=e.resolveComponent("v-list-item-title"),y=e.resolveComponent("v-list-item"),v=e.resolveComponent("v-divider"),u=e.resolveComponent("v-list"),r=e.resolveComponent("v-menu");return e.openBlock(),e.createElementBlock("div",B,[e.createVNode(d,{"no-gutters":"",align:"center",class:"mb-2"},{default:e.withCtx(()=>[e.createVNode(a,{disabled:!o.file,color:"primary",size:"small",class:"mr-3","data-test":"screen-editor-load",onClick:s.loadFile},{default:e.withCtx(()=>[...n[3]||(n[3]=[e.createTextVNode(" Load ",-1)])]),_:1},8,["disabled","onClick"]),e.createVNode(m,{modelValue:o.file,"onUpdate:modelValue":n[0]||(n[0]=f=>o.file=f),"truncate-length":"15",accept:".txt",label:"Click to select .txt screen file.",density:"compact","hide-details":"",style:{"max-width":"300px"}},null,8,["modelValue"]),e.createVNode(h),e.createVNode(a,{icon:"mdi-download",variant:"text",density:"compact",title:"Download","data-test":"download-screen-icon",onClick:s.downloadContent},null,8,["onClick"])]),_:1}),e.createVNode(d,{"no-gutters":"",class:"mb-2"},{default:e.withCtx(()=>[e.createElementVNode("pre",{ref:"editor",class:"screen-editor",style:e.normalizeStyle({height:i.height,width:"100%"}),onContextmenu:n[1]||(n[1]=e.withModifiers((...f)=>s.showContextMenu&&s.showContextMenu(...f),["prevent"]))},null,36),e.createVNode(r,{modelValue:o.contextMenu,"onUpdate:modelValue":n[2]||(n[2]=f=>o.contextMenu=f),target:[o.menuX,o.menuY]},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(y,{link:"",onClick:s.openDocumentation},{default:e.withCtx(()=>[e.createVNode(g,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.docsKeyword)+" documentation ",1)]),_:1})]),_:1},8,["onClick"]),e.createVNode(v),e.createVNode(y,{title:"Toggle Vim mode","prepend-icon":"extras:vim",onClick:s.toggleVimMode},null,8,["onClick"])]),_:1})]),_:1},8,["modelValue","target"])]),_:1}),e.createVNode(d,{"no-gutters":""},{default:e.withCtx(()=>[...n[4]||(n[4]=[e.createElementVNode("span",{class:"text-caption text-grey"}," Ctrl-space brings up autocomplete. Right click keywords for documentation. ",-1)])]),_:1})])}const N=C._export_sfc(I,[["render",A],["__scopeId","data-v-f2442c42"]]),O={components:{ScreenEditor:N},props:{modelValue:Boolean,target:{type:String,default:""},screen:{type:String,default:""},definition:{type:String,default:""},keywords:{type:Array,default:()=>[]},errors:{type:Array,default:()=>[]}},emits:["cancel","delete","save","update:modelValue"],data(){return{editorContent:this.definition}},computed:{editErrors:function(){if(this.editorContent==="")return["Input can not be blank."];if(this.errors.length!==0){let t=new Set,n=[];const i=this.errors.toSorted((l,o)=>l.lineNumber-o.lineNumber);for(const l of i){let o=`At ${l.lineNumber}: (${l.line}) ${l.message}.`;l.usage&&(o+=` Usage: ${l.usage}`),n.push(o),t.add(l.message)}return n}return[]},show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},watch:{definition(t){this.editorContent=t}},methods:{deleteScreen:function(){this.$dialog.confirm("Are you sure you want to delete this screen?!",{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.$emit("delete")})}}},F=["textContent"];function M(t,n,i,l,o,s){const a=e.resolveComponent("v-btn"),m=e.resolveComponent("v-spacer"),h=e.resolveComponent("v-toolbar"),d=e.resolveComponent("screen-editor"),g=e.resolveComponent("v-row"),y=e.resolveComponent("v-card-text"),v=e.resolveComponent("v-card"),u=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(u,{modelValue:s.show,"onUpdate:modelValue":n[3]||(n[3]=r=>s.show=r),persistent:"",width:"75vw",onKeydown:n[4]||(n[4]=e.withKeys(r=>t.$emit("cancel"),["esc"]))},{default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(h,{height:"24"},{default:e.withCtx(()=>[e.createVNode(a,{class:"mx-2",icon:"mdi-delete",variant:"text",density:"compact","data-test":"delete-screen-icon",onClick:s.deleteScreen},null,8,["onClick"]),e.createVNode(m),e.createElementVNode("span",null," Edit Screen: "+e.toDisplayString(i.target)+" "+e.toDisplayString(i.screen),1),e.createVNode(m)]),_:1}),e.createVNode(y,{style:{"max-height":"90vh"}},{default:e.withCtx(()=>[e.createVNode(d,{ref:"screenEditor",modelValue:o.editorContent,"onUpdate:modelValue":n[0]||(n[0]=r=>o.editorContent=r),keywords:i.keywords,filename:`${i.screen.toLowerCase()}.txt`,height:"45vh"},null,8,["modelValue","keywords","filename"]),e.createVNode(g,{class:"ma-3",style:{"max-height":"120px","overflow-y":"auto"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.editErrors,(r,f)=>(e.openBlock(),e.createElementBlock("div",{key:f},[e.createElementVNode("span",{class:"text-red",textContent:e.toDisplayString(r)},null,8,F)]))),128))]),_:1}),e.createVNode(g,{class:"mt-3"},{default:e.withCtx(()=>[e.createVNode(m),e.createVNode(a,{class:"mx-2",variant:"outlined","data-test":"edit-screen-cancel",onClick:n[1]||(n[1]=r=>t.$emit("cancel"))},{default:e.withCtx(()=>[...n[5]||(n[5]=[e.createTextVNode(" Cancel ",-1)])]),_:1}),e.createVNode(a,{class:"mx-2",color:"primary","data-test":"edit-screen-save",onClick:n[2]||(n[2]=r=>t.$emit("save",o.editorContent))},{default:e.withCtx(()=>[...n[6]||(n[6]=[e.createTextVNode(" Save ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}const S=C._export_sfc(O,[["render",M]]),T=t=>p.Fr.get(`/openc3-api/autocomplete/keywords/${t}`),R=t=>p.Fr.get(`/openc3-api/autocomplete/data/${t}`),z=(t,n)=>t.reduce((i,l)=>{const o=n(l);return i[o]?i[o].push(l):i[o]=[l],i},{}),U=t=>{const n="(^|[{\\(\\s])",i=`[\\s\\(]f?['"]`,l="(\\S+\\s?){0,3}";return new RegExp(`${n}${t}${i}${l}$`)};class E{constructor(n,i=()=>{},l=()=>{}){this.keywordExpressions=[],this.autocompleteData=[],T(n).then(o=>{this.keywordExpressions=o.data.map(U),l()}),R(n).then(o=>{this.autocompleteData=o.data,i()})}getCompletions(n,i,l,o,s){let a=[];const m=i.doc.$lines[l.row].slice(0,l.column);this.keywordExpressions.some(h=>m.match(h))&&(a=this.autocompleteData),s(null,[...a])}}class L extends E{constructor(){super("cmd")}}class P extends E{constructor(){super("tlm",()=>{this.groupedPacketData=this.autocompleteData.reduce((n,i)=>{const l=i.caption.match(/\S+\s\S+/)[0],o=i.snippet.replace(`${l} `,""),s={caption:o,snippet:o,meta:"item"};return n[l]?n[l].push(s):n[l]=[s],n},{}),this.packets=Object.keys(this.groupedPacketData).map(n=>({caption:n,snippet:n,meta:"packet"}))})}getCompletions(n,i,l,o,s){let a=[];const m=i.doc.$lines[l.row].slice(0,l.column);if(this.keywordExpressions.some(h=>m.match(h))){const h=Object.keys(this.groupedPacketData).find(d=>m.includes(d));h?a=this.groupedPacketData[h]:a=this.packets}s(null,a)}}const W={props:{modelValue:Boolean},emits:["update:modelValue"],data(){return{alert:"",alertType:"success",showAlert:!1,search:"",key:"",keyValue:"",environment:[],headers:[{text:"Key",value:"key"},{text:"Value",value:"value"},{text:"Actions",value:"actions",align:"end",sortable:!1}]}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},mounted(){this.update()},methods:{alertHandler:function(t){this.alert=t.text,this.alertType=t.type,this.showAlert=!0},update:function(){p.Fr.get("/openc3-api/environment").then(t=>{this.environment=t.data}).catch(t=>{})},addEnvironment:function(){p.Fr.post("/openc3-api/environment",{data:{key:this.key.toUpperCase(),value:this.keyValue}}).then(t=>{`${t.data.name}`,this.update()}).catch(t=>{const n={text:`Failed to add environment variable: ${t}`,type:"error"};this.alertHandler(n)}),this.key="",this.keyValue=""},deleteEnvironment:function(t){this.$dialog.confirm(`Are you sure you want to delete: ${t.key}=${t.value}`,{okText:"Delete",cancelText:"Cancel"}).then(n=>p.Fr.delete(`/openc3-api/environment/${t.name}`)).then(n=>{const i={text:`Removed environment variable: ${t.name}`,type:"success"};this.alertHandler(i),this.update()}).catch(n=>{const i={text:`Failed to delete environment: ${n}`,type:"error"};this.alertHandler(i)})}}},$={class:"pa-3"};function K(t,n,i,l,o,s){const a=e.resolveComponent("v-spacer"),m=e.resolveComponent("v-toolbar"),h=e.resolveComponent("v-text-field"),d=e.resolveComponent("v-row"),g=e.resolveComponent("v-btn"),y=e.resolveComponent("v-data-table"),v=e.resolveComponent("v-col"),u=e.resolveComponent("v-card-text"),r=e.resolveComponent("v-card"),f=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(f,{modelValue:s.show,"onUpdate:modelValue":n[4]||(n[4]=c=>s.show=c),width:"600"},{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[e.createElementVNode("form",{onSubmit:n[3]||(n[3]=e.withModifiers((...c)=>s.addEnvironment&&s.addEnvironment(...c),["prevent"]))},[e.createVNode(m,{height:"24"},{default:e.withCtx(()=>[e.createVNode(a),n[5]||(n[5]=e.createElementVNode("span",null,"Global Environment Variables",-1)),e.createVNode(a)]),_:1}),e.createVNode(u,null,{default:e.withCtx(()=>[e.createElementVNode("div",$,[e.createVNode(d,{dense:"",class:"mb-2"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:o.search,"onUpdate:modelValue":n[0]||(n[0]=c=>o.search=c),label:"search",type:"text","data-test":"search","prepend-inner-icon":"mdi-magnify",clearable:"",variant:"outlined",density:"compact","clear-icon":"mdi-close-circle-outline",autofocus:"","single-line":"","hide-details":""},null,8,["modelValue"])]),_:1}),e.createVNode(y,{"item-key":"name","hide-default-header":"","data-test":"env-table",search:o.search,headers:o.headers,items:o.environment,"items-per-page":5,"items-per-page-options":[5]},{"item.actions":e.withCtx(({item:c})=>[e.createVNode(g,{icon:"mdi-delete",variant:"text",class:"mt-1","data-test":"item-delete","aria-label":"Delete Environment Variable",onClick:_=>s.deleteEnvironment(c)},null,8,["onClick"])]),_:1},8,["search","headers","items"]),e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(h,{modelValue:o.key,"onUpdate:modelValue":n[1]||(n[1]=c=>o.key=c),label:"Key","data-test":"env-key"},null,8,["modelValue"])]),_:1}),e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(h,{modelValue:o.keyValue,"onUpdate:modelValue":n[2]||(n[2]=c=>o.keyValue=c),label:"Value","data-test":"env-value"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(g,{block:"",type:"submit",color:"primary","data-test":"add-env",disabled:!o.key||!o.keyValue,onClick:e.withModifiers(s.addEnvironment,["prevent"])},{default:e.withCtx(()=>[...n[6]||(n[6]=[e.createTextVNode(" Add ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})])]),_:1})],32)]),_:1})]),_:1},8,["modelValue"])}const q=C._export_sfc(W,[["render",K]]),j={class:"tree-node"},H={class:"content-wrapper"},G=["tabindex"],X={key:1},Z={key:2,class:"children"},Y={__name:"TreeNode",props:{node:{type:Object,required:!0},search:{type:String,default:""},type:{type:String,default:"open"}},emits:["nodeToggled","request","delete"],setup(t,{emit:n}){const i=t,l=e.ref(i.node.isOpen||!1),o=e.computed(()=>{const u=r=>!i.search||r.path.toLowerCase().includes(i.search.toLowerCase())?!0:!!r.children?.some(u);return u(i.node)});e.watch(()=>i.node.isOpen,u=>{l.value=u}),e.watch(()=>i.search,u=>{u?i.node.isOpen||g():i.node.isOpen&&g()});const s=n,a=e.ref({show:!1,text:"",x:0,y:0}),m=(u,r)=>{if(!r||r.length<=50)return;const f=u.target.getBoundingClientRect(),c=f.left,_=f.top;a.value.text=r,a.value.x=c,a.value.y=_-40,a.value.show=!0},h=()=>{a.value.show=!1},d=u=>{u.children?(g(),i.type==="save"&&s("request",u)):s("request",u)},g=()=>{i.node.children&&(l.value=!l.value,i.node.isOpen=l.value,s("nodeToggled",i.node.id,l.value))},y=(u,r)=>{s("nodeToggled",u,r)},v=u=>{s("request",u)};return(u,r)=>{const f=e.resolveComponent("v-tooltip"),c=e.resolveComponent("v-icon"),_=e.resolveComponent("v-btn"),x=e.resolveComponent("tree-node",!0);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(f,{modelValue:a.value.show,"onUpdate:modelValue":r[0]||(r[0]=w=>a.value.show=w),text:a.value.text,location:"top",style:e.normalizeStyle(`position: fixed; left: ${a.value.x}px; top: ${a.value.y}px; pointer-events: none;`)},null,8,["modelValue","text","style"]),e.createElementVNode("div",j,[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"node-content",onClick:r[4]||(r[4]=w=>d(t.node))},[e.createElementVNode("div",H,[t.node.children?(e.openBlock(),e.createBlock(c,{key:0,class:"toggle-icon",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.node.isOpen||t.search?"mdi-menu-down":"mdi-menu-right"),1)]),_:1})):e.createCommentVNode("",!0),t.node.children?(e.openBlock(),e.createBlock(c,{key:1,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[5]||(r[5]=[e.createTextVNode(e.toDisplayString("mdi-folder"),-1)])]),_:1})):t.node.title.includes(".rb")?(e.openBlock(),e.createBlock(c,{key:2,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[6]||(r[6]=[e.createTextVNode(e.toDisplayString("mdi-language-ruby"),-1)])]),_:1})):t.node.title.includes(".py")?(e.openBlock(),e.createBlock(c,{key:3,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[7]||(r[7]=[e.createTextVNode(e.toDisplayString("mdi-language-python"),-1)])]),_:1})):(e.openBlock(),e.createBlock(c,{key:4,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[8]||(r[8]=[e.createTextVNode(e.toDisplayString("mdi-file-document"),-1)])]),_:1})),e.createElementVNode("span",{class:"text-h6",tabindex:t.node.children?-1:0,onKeyup:r[1]||(r[1]=e.withKeys(w=>d(t.node),["enter"])),onMouseenter:r[2]||(r[2]=w=>m(w,t.node.title)),onMouseleave:h},e.toDisplayString(t.node.title),41,G),t.node.title==="__TEMP__"?(e.openBlock(),e.createBlock(_,{key:5,icon:"mdi-delete",variant:"text",style:{"margin-left":"auto"},"aria-label":"Delete",onClick:r[3]||(r[3]=w=>s("delete"))})):e.createCommentVNode("",!0)])])):(e.openBlock(),e.createElementBlock("div",X)),t.node.children&&(t.node.isOpen||t.search)?(e.openBlock(),e.createElementBlock("div",Z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,w=>(e.openBlock(),e.createBlock(x,{key:w.id,node:w,search:t.search,type:t.type,onNodeToggled:y,onRequest:v},null,8,["node","search","type"]))),128))])):e.createCommentVNode("",!0)])],64)}}},J=C._export_sfc(Y,[["__scopeId","data-v-83f7a088"]]),Q={components:{TreeNode:J},props:{type:{type:String,required:!0,validator:function(t){return["open","save"].indexOf(t)!==-1}},apiUrl:{type:String,default:null},requireTargetParentDir:Boolean,inputFilename:{type:String,default:null},modelValue:Boolean,customHelpText:{type:String,default:null}},emits:["update:modelValue","error","clear-temp","file","filename"],data(){return{tree:[],items:[],search:null,selectedFile:null,disableButtons:!0,targets:[],targetsRetrieved:[]}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},title:function(){return this.type==="open"?"File Open":"File Save As..."},submit:function(){return this.type==="open"?"OPEN":"SAVE"},helpText:function(){return this.customHelpText?this.customHelpText:this.type==="open"?"Click on folders to open them and then click a file to select it before clicking Open. Use the search box to filter the results. You can also Tab to the files and Enter to select.":"Click on the folder to save into. Then complete the filename path with the desired name. Use the search box to filter the results."},error:function(){if(this.selectedFile===""||this.selectedFile===null)return"No file selected must select a file";if(!this.selectedFile.match(this.validFilenameRegex)||this.selectedFile.match(/\.\.|\/\/|\.\/|\/\./)){let t=`${this.selectedFile} is not a valid filename. Must `;return this.requireTargetParentDir&&(t+="be in a target directory and "),t+=`only contain alphanumeric characters (including !-_.*) and a valid extension.
|
|
1
|
+
"use strict";const p=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs"),e=require("vue"),C=require("./CustomIcon-8F08upeg.cjs"),D=require("./fileIcon-BduOQcTc.cjs"),V=require("./TopBar-Ctzx7o2k.cjs");class k{constructor(){p.Fr.get("/openc3-api/autocomplete/data/screen").then(n=>{this.autocompleteData=n.data}),this.api=new p.yi}async getCompletions(n,i,l,o,s){if(!this.autocompleteData)return s(null,[]);let u=i.getLine(l.row).slice(0,l.column).trimStart().split(/ (?![^<]*>)/),c=this.autocompleteData;u.length>1&&(c=c.find(y=>y.caption===u[0]));let v={},x=!0;if(c&&c.params){c.params.length==u.length-1&&(x=!1);let y=c.params[u.length-2];if(y["Target name"])c=(await this.api.get_target_names()).reduce((r,f)=>(r[f]=1,r),{});else if(y["Packet name"]){let d=u[u.length-2];c=(await this.api.get_all_tlm(d)).reduce((f,h)=>(f[h.packet_name]=h.description,f),{}),c.LATEST="LATEST values from all packets"}else if(y["Item name"]){let d=u[u.length-3],r=u[u.length-2];if(r==="LATEST"){let f=await this.api.get_all_tlm_item_names(d);c={},f.forEach(h=>{c[h]=`LATEST ${h}`})}else c=(await this.api.get_tlm(d,r)).items.reduce((h,g)=>(h[g.name]=g.description,h),{})}else c=y;v=Object.keys(c||{}).map(d=>{let r={value:d+(x?" ":""),command:x&&"startAutocomplete"};return typeof c[d]=="string"&&(r.meta=c[d]),r})}else v=c;s(null,v)}}const I={props:{modelValue:{type:String,default:""},keywords:{type:Array,default:()=>[]},height:{type:String,default:"45vh"},filename:{type:String,default:"screen.txt"}},emits:["update:modelValue"],data(){return{editor:null,file:null,loadedKeywords:[],docsKeyword:"",contextMenu:!1,menuX:0,menuY:0}},computed:{effectiveKeywords(){return this.keywords.length>0?this.keywords:this.loadedKeywords}},watch:{modelValue(t){this.editor&&this.editor.getValue()!==t&&(this.editor.setValue(t),this.editor.clearSelection())},effectiveKeywords(){if(this.editor){const t=this.buildScreenMode();this.editor.session.setMode(new t)}}},created(){this.keywords.length===0&&this.loadKeywords()},mounted(){this.initEditor()},beforeUnmount(){this.editor&&(this.editor.destroy(),this.editor.container.remove())},methods:{async loadKeywords(){try{const t=await p.Fr.get("/openc3-api/autocomplete/keywords/screen");this.loadedKeywords=t.data}catch(t){console.error("Error loading screen keywords:",t)}},initEditor(){this.editor=p.aceExports.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight");const t=this.buildScreenMode();this.editor.session.setMode(new t),this.editor.session.setTabSize(2),this.editor.session.setUseWrapMode(!0),this.editor.$blockScrolling=1/0,this.editor.setOption("enableBasicAutocompletion",!0),this.editor.setOption("enableLiveAutocompletion",!0),this.editor.completers=[new k],this.editor.setHighlightActiveLine(!1),this.editor.setValue(this.modelValue),this.editor.clearSelection(),V.AceEditorUtils.applyVimModeIfEnabled(this.editor),this.editor.focus(),this.editor.session.on("change",()=>{this.$emit("update:modelValue",this.editor.getValue())})},getValue(){return this.editor?this.editor.getValue():this.modelValue},buildScreenMode(){let t=p.aceExports.require("ace/lib/oop"),n=p.aceExports.require("ace/mode/text_highlight_rules").TextHighlightRules,i=this.effectiveKeywords.join("|"),l=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"\\b\\d+(?:\\.\\d+)?\\b"},{token:"keyword",regex:i?new RegExp(`^\\s*(${i})\\b`):/(?!)/}]},this.normalizeRules()};t.inherits(l,n);let o=function(){this.HighlightRules=l},s=p.aceExports.require("ace/mode/text").Mode;return t.inherits(o,s),(function(){this.$id="ace/mode/openc3"}).call(o.prototype),o},toggleVimMode(){V.AceEditorUtils.toggleVimMode(this.editor)},showContextMenu(t){this.menuX=t.pageX,this.menuY=t.pageY;let n=this.editor.getCursorPosition(),i=this.editor.session.getTokenAt(n.row,n.column);if(i){let l=i.value.trim();l.includes(" ")?this.docsKeyword=l.split(" ")[0]:this.docsKeyword=l,this.contextMenu=!0}},openDocumentation(){window.open(`${window.location.origin}/tools/staticdocs/docs/configuration/telemetry-screens#${this.docsKeyword.toLowerCase()}`,"_blank")},downloadContent(){const t=new Blob([this.editor.getValue()],{type:"text/plain"}),n=document.createElement("a");n.href=URL.createObjectURL(t),n.setAttribute("download",this.filename),n.click()},loadFile(){const t=new FileReader;t.readAsText(this.file);const n=this;t.onload=function(){n.editor.setValue(t.result),n.editor.clearSelection(),n.file=null}}}},B={class:"screen-editor-container"};function A(t,n,i,l,o,s){const a=e.resolveComponent("v-btn"),m=e.resolveComponent("v-file-input"),u=e.resolveComponent("v-spacer"),c=e.resolveComponent("v-row"),v=e.resolveComponent("v-list-item-title"),x=e.resolveComponent("v-list-item"),y=e.resolveComponent("v-divider"),d=e.resolveComponent("v-list"),r=e.resolveComponent("v-menu");return e.openBlock(),e.createElementBlock("div",B,[e.createVNode(c,{"no-gutters":"",align:"center",class:"mb-2"},{default:e.withCtx(()=>[e.createVNode(a,{disabled:!o.file,color:"primary",size:"small",class:"mr-3","data-test":"screen-editor-load",onClick:s.loadFile},{default:e.withCtx(()=>[...n[3]||(n[3]=[e.createTextVNode(" Load ",-1)])]),_:1},8,["disabled","onClick"]),e.createVNode(m,{modelValue:o.file,"onUpdate:modelValue":n[0]||(n[0]=f=>o.file=f),"truncate-length":"15",accept:".txt",label:"Click to select .txt screen file.",density:"compact","hide-details":"",style:{"max-width":"300px"}},null,8,["modelValue"]),e.createVNode(u),e.createVNode(a,{icon:"mdi-download",variant:"text",density:"compact",title:"Download","data-test":"download-screen-icon",onClick:s.downloadContent},null,8,["onClick"])]),_:1}),e.createVNode(c,{"no-gutters":"",class:"mb-2"},{default:e.withCtx(()=>[e.createElementVNode("pre",{ref:"editor",class:"screen-editor",style:e.normalizeStyle({height:i.height,width:"100%"}),onContextmenu:n[1]||(n[1]=e.withModifiers((...f)=>s.showContextMenu&&s.showContextMenu(...f),["prevent"]))},null,36),e.createVNode(r,{modelValue:o.contextMenu,"onUpdate:modelValue":n[2]||(n[2]=f=>o.contextMenu=f),target:[o.menuX,o.menuY]},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(x,{link:"",onClick:s.openDocumentation},{default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.docsKeyword)+" documentation ",1)]),_:1})]),_:1},8,["onClick"]),e.createVNode(y),e.createVNode(x,{title:"Toggle Vim mode","prepend-icon":"extras:vim",onClick:s.toggleVimMode},null,8,["onClick"])]),_:1})]),_:1},8,["modelValue","target"])]),_:1}),e.createVNode(c,{"no-gutters":""},{default:e.withCtx(()=>[...n[4]||(n[4]=[e.createElementVNode("span",{class:"text-caption text-grey"}," Ctrl-space brings up autocomplete. Right click keywords for documentation. ",-1)])]),_:1})])}const N=C._export_sfc(I,[["render",A],["__scopeId","data-v-f2442c42"]]),O={components:{ScreenEditor:N},props:{modelValue:Boolean,target:{type:String,default:""},screen:{type:String,default:""},definition:{type:String,default:""},keywords:{type:Array,default:()=>[]},errors:{type:Array,default:()=>[]}},emits:["cancel","delete","save","update:modelValue"],data(){return{editorContent:this.definition}},computed:{editErrors:function(){if(this.editorContent==="")return["Input can not be blank."];if(this.errors.length!==0){let t=new Set,n=[];const i=this.errors.toSorted((l,o)=>l.lineNumber-o.lineNumber);for(const l of i){let o=`At ${l.lineNumber}: (${l.line}) ${l.message}.`;l.usage&&(o+=` Usage: ${l.usage}`),n.push(o),t.add(l.message)}return n}return[]},show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},watch:{definition(t){this.editorContent=t}},methods:{deleteScreen:function(){this.$dialog.confirm("Are you sure you want to delete this screen?!",{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.$emit("delete")})}}},F=["textContent"];function M(t,n,i,l,o,s){const a=e.resolveComponent("v-btn"),m=e.resolveComponent("v-spacer"),u=e.resolveComponent("v-toolbar"),c=e.resolveComponent("screen-editor"),v=e.resolveComponent("v-row"),x=e.resolveComponent("v-card-text"),y=e.resolveComponent("v-card"),d=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(d,{modelValue:s.show,"onUpdate:modelValue":n[3]||(n[3]=r=>s.show=r),persistent:"",width:"75vw",onKeydown:n[4]||(n[4]=e.withKeys(r=>t.$emit("cancel"),["esc"]))},{default:e.withCtx(()=>[e.createVNode(y,null,{default:e.withCtx(()=>[e.createVNode(u,{height:"24"},{default:e.withCtx(()=>[e.createVNode(a,{class:"mx-2",icon:"mdi-delete",variant:"text",density:"compact","data-test":"delete-screen-icon",onClick:s.deleteScreen},null,8,["onClick"]),e.createVNode(m),e.createElementVNode("span",null," Edit Screen: "+e.toDisplayString(i.target)+" "+e.toDisplayString(i.screen),1),e.createVNode(m)]),_:1}),e.createVNode(x,{style:{"max-height":"90vh"}},{default:e.withCtx(()=>[e.createVNode(c,{ref:"screenEditor",modelValue:o.editorContent,"onUpdate:modelValue":n[0]||(n[0]=r=>o.editorContent=r),keywords:i.keywords,filename:`${i.screen.toLowerCase()}.txt`,height:"45vh"},null,8,["modelValue","keywords","filename"]),e.createVNode(v,{class:"ma-3",style:{"max-height":"120px","overflow-y":"auto"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.editErrors,(r,f)=>(e.openBlock(),e.createElementBlock("div",{key:f},[e.createElementVNode("span",{class:"text-red",textContent:e.toDisplayString(r)},null,8,F)]))),128))]),_:1}),e.createVNode(v,{class:"mt-3"},{default:e.withCtx(()=>[e.createVNode(m),e.createVNode(a,{class:"mx-2",variant:"outlined","data-test":"edit-screen-cancel",onClick:n[1]||(n[1]=r=>t.$emit("cancel"))},{default:e.withCtx(()=>[...n[5]||(n[5]=[e.createTextVNode(" Cancel ",-1)])]),_:1}),e.createVNode(a,{class:"mx-2",color:"primary","data-test":"edit-screen-save",onClick:n[2]||(n[2]=r=>t.$emit("save",o.editorContent))},{default:e.withCtx(()=>[...n[6]||(n[6]=[e.createTextVNode(" Save ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}const S=C._export_sfc(O,[["render",M]]),T=t=>p.Fr.get(`/openc3-api/autocomplete/keywords/${t}`),R=t=>p.Fr.get(`/openc3-api/autocomplete/data/${t}`),z=(t,n)=>t.reduce((i,l)=>{const o=n(l);return i[o]?i[o].push(l):i[o]=[l],i},{}),U=t=>{const n="(^|[{\\(\\s])",i=`[\\s\\(]f?['"]`,l="(\\S+\\s?){0,3}";return new RegExp(`${n}${t}${i}${l}$`)};class E{constructor(n,i=()=>{},l=()=>{}){this.keywordExpressions=[],this.autocompleteData=[],T(n).then(o=>{this.keywordExpressions=o.data.map(U),l()}),R(n).then(o=>{this.autocompleteData=o.data,i()})}getCompletions(n,i,l,o,s){let a=[];const m=i.doc.$lines[l.row].slice(0,l.column);this.keywordExpressions.some(u=>m.match(u))&&(a=this.autocompleteData),s(null,[...a])}}class L extends E{constructor(){super("cmd")}}class P extends E{constructor(){super("tlm",()=>{this.groupedPacketData=this.autocompleteData.reduce((n,i)=>{const l=i.caption.match(/\S+\s\S+/)[0],o=i.snippet.replace(`${l} `,""),s={caption:o,snippet:o,meta:"item"};return n[l]?n[l].push(s):n[l]=[s],n},{}),this.packets=Object.keys(this.groupedPacketData).map(n=>({caption:n,snippet:n,meta:"packet"}))})}getCompletions(n,i,l,o,s){let a=[];const m=i.doc.$lines[l.row].slice(0,l.column);if(this.keywordExpressions.some(u=>m.match(u))){const u=Object.keys(this.groupedPacketData).find(c=>m.includes(c));u?a=this.groupedPacketData[u]:a=this.packets}s(null,a)}}const W={props:{modelValue:Boolean},emits:["update:modelValue"],data(){return{alert:"",alertType:"success",showAlert:!1,search:"",key:"",keyValue:"",environment:[],headers:[{text:"Key",value:"key"},{text:"Value",value:"value"},{text:"Actions",value:"actions",align:"end",sortable:!1}]}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},mounted(){this.update()},methods:{alertHandler:function(t){this.alert=t.text,this.alertType=t.type,this.showAlert=!0},update:function(){p.Fr.get("/openc3-api/environment").then(t=>{this.environment=t.data}).catch(t=>{})},addEnvironment:function(){p.Fr.post("/openc3-api/environment",{data:{key:this.key.toUpperCase(),value:this.keyValue}}).then(t=>{`${t.data.name}`,this.update()}).catch(t=>{const n={text:`Failed to add environment variable: ${t}`,type:"error"};this.alertHandler(n)}),this.key="",this.keyValue=""},deleteEnvironment:function(t){this.$dialog.confirm(`Are you sure you want to delete: ${t.key}=${t.value}`,{okText:"Delete",cancelText:"Cancel"}).then(n=>p.Fr.delete(`/openc3-api/environment/${t.name}`)).then(n=>{const i={text:`Removed environment variable: ${t.name}`,type:"success"};this.alertHandler(i),this.update()}).catch(n=>{const i={text:`Failed to delete environment: ${n}`,type:"error"};this.alertHandler(i)})}}},$={class:"pa-3"};function K(t,n,i,l,o,s){const a=e.resolveComponent("v-spacer"),m=e.resolveComponent("v-toolbar"),u=e.resolveComponent("v-text-field"),c=e.resolveComponent("v-row"),v=e.resolveComponent("v-btn"),x=e.resolveComponent("v-data-table"),y=e.resolveComponent("v-col"),d=e.resolveComponent("v-card-text"),r=e.resolveComponent("v-card"),f=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(f,{modelValue:s.show,"onUpdate:modelValue":n[4]||(n[4]=h=>s.show=h),width:"600"},{default:e.withCtx(()=>[e.createVNode(r,null,{default:e.withCtx(()=>[e.createElementVNode("form",{onSubmit:n[3]||(n[3]=e.withModifiers((...h)=>s.addEnvironment&&s.addEnvironment(...h),["prevent"]))},[e.createVNode(m,{height:"24"},{default:e.withCtx(()=>[e.createVNode(a),n[5]||(n[5]=e.createElementVNode("span",null,"Global Environment Variables",-1)),e.createVNode(a)]),_:1}),e.createVNode(d,null,{default:e.withCtx(()=>[e.createElementVNode("div",$,[e.createVNode(c,{dense:"",class:"mb-2"},{default:e.withCtx(()=>[e.createVNode(u,{modelValue:o.search,"onUpdate:modelValue":n[0]||(n[0]=h=>o.search=h),label:"search",type:"text","data-test":"search","prepend-inner-icon":"mdi-magnify",clearable:"",variant:"outlined",density:"compact","clear-icon":"mdi-close-circle-outline",autofocus:"","single-line":"","hide-details":""},null,8,["modelValue"])]),_:1}),e.createVNode(x,{"item-key":"name","hide-default-header":"","data-test":"env-table",search:o.search,headers:o.headers,items:o.environment,"items-per-page":5,"items-per-page-options":[5]},{"item.actions":e.withCtx(({item:h})=>[e.createVNode(v,{icon:"mdi-delete",variant:"text",class:"mt-1","data-test":"item-delete","aria-label":"Delete Environment Variable",onClick:g=>s.deleteEnvironment(h)},null,8,["onClick"])]),_:1},8,["search","headers","items"]),e.createVNode(c,{dense:""},{default:e.withCtx(()=>[e.createVNode(y,null,{default:e.withCtx(()=>[e.createVNode(u,{modelValue:o.key,"onUpdate:modelValue":n[1]||(n[1]=h=>o.key=h),label:"Key","data-test":"env-key"},null,8,["modelValue"])]),_:1}),e.createVNode(y,null,{default:e.withCtx(()=>[e.createVNode(u,{modelValue:o.keyValue,"onUpdate:modelValue":n[2]||(n[2]=h=>o.keyValue=h),label:"Value","data-test":"env-value"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(c,{dense:""},{default:e.withCtx(()=>[e.createVNode(v,{block:"",type:"submit",color:"primary","data-test":"add-env",disabled:!o.key||!o.keyValue,onClick:e.withModifiers(s.addEnvironment,["prevent"])},{default:e.withCtx(()=>[...n[6]||(n[6]=[e.createTextVNode(" Add ",-1)])]),_:1},8,["disabled","onClick"])]),_:1})])]),_:1})],32)]),_:1})]),_:1},8,["modelValue"])}const q=C._export_sfc(W,[["render",K]]),j={class:"tree-node"},H={class:"content-wrapper"},G=["tabindex"],X={key:1},Z={key:2,class:"children"},Y={__name:"TreeNode",props:{node:{type:Object,required:!0},search:{type:String,default:""},type:{type:String,default:"open"}},emits:["nodeToggled","request","delete"],setup(t,{emit:n}){const i=t,l=e.ref(i.node.isOpen||!1),o=e.computed(()=>{const d=r=>!i.search||r.path.toLowerCase().includes(i.search.toLowerCase())?!0:!!r.children?.some(d);return d(i.node)});e.watch(()=>i.node.isOpen,d=>{l.value=d}),e.watch(()=>i.search,d=>{d?i.node.isOpen||v():i.node.isOpen&&v()});const s=n,a=e.ref({show:!1,text:"",x:0,y:0}),m=(d,r)=>{if(!r||r.length<=50)return;const f=d.target.getBoundingClientRect(),h=f.left,g=f.top;a.value.text=r,a.value.x=h,a.value.y=g-40,a.value.show=!0},u=()=>{a.value.show=!1},c=d=>{d.children?(v(),i.type==="save"&&s("request",d)):s("request",d)},v=()=>{i.node.children&&(l.value=!l.value,i.node.isOpen=l.value,s("nodeToggled",i.node.id,l.value))},x=(d,r)=>{s("nodeToggled",d,r)},y=d=>{s("request",d)};return(d,r)=>{const f=e.resolveComponent("v-tooltip"),h=e.resolveComponent("v-icon"),g=e.resolveComponent("v-btn"),_=e.resolveComponent("tree-node",!0);return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(f,{modelValue:a.value.show,"onUpdate:modelValue":r[0]||(r[0]=w=>a.value.show=w),text:a.value.text,location:"top",style:e.normalizeStyle(`position: fixed; left: ${a.value.x}px; top: ${a.value.y}px; pointer-events: none;`)},null,8,["modelValue","text","style"]),e.createElementVNode("div",j,[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"node-content",onClick:r[4]||(r[4]=w=>c(t.node))},[e.createElementVNode("div",H,[t.node.children?(e.openBlock(),e.createBlock(h,{key:0,class:"toggle-icon",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.node.isOpen||t.search?"mdi-menu-down":"mdi-menu-right"),1)]),_:1})):e.createCommentVNode("",!0),t.node.children?(e.openBlock(),e.createBlock(h,{key:1,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[5]||(r[5]=[e.createTextVNode(e.toDisplayString("mdi-folder"),-1)])]),_:1})):t.node.title.includes(".rb")?(e.openBlock(),e.createBlock(h,{key:2,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[6]||(r[6]=[e.createTextVNode(e.toDisplayString("mdi-language-ruby"),-1)])]),_:1})):t.node.title.includes(".py")?(e.openBlock(),e.createBlock(h,{key:3,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[7]||(r[7]=[e.createTextVNode(e.toDisplayString("mdi-language-python"),-1)])]),_:1})):(e.openBlock(),e.createBlock(h,{key:4,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[...r[8]||(r[8]=[e.createTextVNode(e.toDisplayString("mdi-file-document"),-1)])]),_:1})),e.createElementVNode("span",{class:"text-h6",tabindex:t.node.children?-1:0,onKeyup:r[1]||(r[1]=e.withKeys(w=>c(t.node),["enter"])),onMouseenter:r[2]||(r[2]=w=>m(w,t.node.title)),onMouseleave:u},e.toDisplayString(t.node.title),41,G),t.node.title==="__TEMP__"?(e.openBlock(),e.createBlock(g,{key:5,icon:"mdi-delete",variant:"text",style:{"margin-left":"auto"},"aria-label":"Delete",onClick:r[3]||(r[3]=w=>s("delete"))})):e.createCommentVNode("",!0)])])):(e.openBlock(),e.createElementBlock("div",X)),t.node.children&&(t.node.isOpen||t.search)?(e.openBlock(),e.createElementBlock("div",Z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,w=>(e.openBlock(),e.createBlock(_,{key:w.id,node:w,search:t.search,type:t.type,onNodeToggled:x,onRequest:y},null,8,["node","search","type"]))),128))])):e.createCommentVNode("",!0)])],64)}}},J=C._export_sfc(Y,[["__scopeId","data-v-83f7a088"]]),Q={components:{TreeNode:J},props:{type:{type:String,required:!0,validator:function(t){return["open","save"].indexOf(t)!==-1}},apiUrl:{type:String,default:null},requireTargetParentDir:Boolean,inputFilename:{type:String,default:null},modelValue:Boolean,customHelpText:{type:String,default:null}},emits:["update:modelValue","error","clear-temp","file","filename"],data(){return{tree:[],items:[],search:null,selectedFile:null,disableButtons:!0,targets:[],targetsRetrieved:[]}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},title:function(){return this.type==="open"?"File Open":"File Save As..."},submit:function(){return this.type==="open"?"OPEN":"SAVE"},helpText:function(){return this.customHelpText?this.customHelpText:this.type==="open"?"Click on folders to open them and then click a file to select it before clicking Open. Use the search box to filter the results. You can also Tab to the files and Enter to select.":"Click on the folder to save into. Then complete the filename path with the desired name. Use the search box to filter the results."},error:function(){if(this.selectedFile===""||this.selectedFile===null)return"No file selected must select a file";if(!this.selectedFile.match(this.validFilenameRegex)||this.selectedFile.match(/\.\.|\/\/|\.\/|\/\./)){let t=`${this.selectedFile} is not a valid filename. Must `;return this.requireTargetParentDir&&(t+="be in a target directory and "),t+=`only contain alphanumeric characters (including !-_.*) and a valid extension.
|
|
2
2
|
|
|
3
|
-
For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`,t}return this.type==="save"&&this.selectedFile.match(/\*$/)?`${this.selectedFile} is not a valid filename. Must not end in '*'.`:null},validFilenameRegex:function(){const t="0-9a-zA-Z";let i=`[${`${t}\\/\\!\\-\\_\\.\\*\\'\\(\\)`}]+\\.[${t}]+`;return this.requireTargetParentDir&&(i=`\\/?${`(${this.targets.join("|")})`}\\/${i}`),new RegExp(i)}},created(){p.Fr.get("/openc3-api/targets").then(t=>{this.targets=t.data,this.targets.push("__TEMP__");const n=this.targets.map(i=>(this.items.push({id:i,disabled:!0,title:i,children:[],path:i}),this.loadFiles(i)));Promise.all(n).then(()=>{this.disableButtons=!1})})},methods:{calcIcon:function(t){return D.fileIcon(t)},loadFiles:function(t){return p.Fr.get(this.apiUrl,{params:{target:t}}).then(n=>{if(n.data.length===0){this.items=this.items.filter(l=>l.id!==t);return}for(let l of n.data.sort())this.filepath=l,this.insertFile(this.items,2,l);this.inputFilename&&(this.selectedFile=this.inputFilename);const i=this.items.findIndex(l=>l.id===t);i!==-1&&(this.items[i].disabled=!1)}).catch(n=>{this.$emit("error",`Failed to connect to OpenC3. ${n}`)})},clear:function(){this.show=!1,this.overwrite=!1,this.disableButtons=!1},activeFile:function(t){t.length===0?this.selectedFile=null:(this.selectedFile=this.findItem(this.items,t.id),setTimeout(()=>{this.$refs.submitBtn.$el.focus()},100))},findItem:function(t,n){for(let i of t){if(i.id===n)return i.path;if(i.children){const l=this.findItem(i.children,n);if(l)return l}}return null},exists:function(t,n){let i=!1;for(let l of t){if(l.path===n||l.path.length>1&&l.path[l.path.length-1]==="*"&&l.path.slice(0,l.path.length-1)===n)return!0;l.children&&(i=i||this.exists(l.children,n))}return i},success:function(){this.selectedFile!==null&&this.error===null&&!this.disableButtons&&(this.type==="open"?this.openSuccess():this.saveSuccess())},deleteTemp:function(){this.$dialog.confirm("Are you sure you want to delete all the temporary files?",{okText:"Delete",cancelText:"Cancel"}).then(t=>p.Fr.delete("/script-api/scripts/temp_files")).then(t=>{this.$emit("clear-temp"),this.loadFiles("__TEMP__")}).catch(t=>{this.$notify.serious({title:"Error",body:`Failed to remove script temporary files due to ${t}`})})},openSuccess:function(){this.disableButtons=!0,p.Fr.get(`${this.apiUrl}/${this.selectedFile}`).then(t=>{const n={name:this.selectedFile,contents:t.data.contents};t.data.suites&&(n.suites=JSON.parse(t.data.suites)),t.data.error&&(n.error=t.data.error),t.data.success&&(n.success=t.data.success);const i=t.data.locked,l=t.data.breakpoints;this.$emit("file",{file:n,locked:i,breakpoints:l}),this.clear()}).catch(t=>{this.$emit("error",`Failed to open ${this.selectedFile}. ${t}`),this.clear()})},saveSuccess:function(){this.exists(this.items,this.selectedFile)?this.$dialog.confirm(`Are you sure you want to overwrite: ${this.selectedFile}`,{okText:"Overwrite",cancelText:"Cancel"}).then(n=>{this.$emit("filename",this.selectedFile),this.clear()}).catch(n=>{}):(this.$emit("filename",this.selectedFile),this.clear())},insertFile:function(t,n,i){let l=i.split("/");if(l.length===1){t.push({id:this.filepath,title:l[0],file:"ruby",path:this.filepath});return}const o=t.findIndex(s=>s.title===l[0]);o===-1?(t.push({id:this.filepath.split("/").slice(0,n-1).join("/"),title:l[0],children:[],path:this.filepath.split("/").slice(0,n-1).join("/")}),this.insertFile(t[t.length-1].children,n+1,l.slice(1).join("/"))):this.insertFile(t[o].children,n+1,l.slice(1).join("/"))}}},ee={class:"pa-3"},te={class:"overflow-y-auto tree-container"};function ne(t,n,i,l,o,s){const a=e.resolveComponent("v-spacer"),m=e.resolveComponent("v-progress-linear"),
|
|
4
|
-
`;n+=l,t.add(i.message)}return n}return null},computedStyle(){let t={};const n=this.width||this.$refs.bar?.clientWidth;return this.floated&&(t.position="absolute",t.top=this.top+"px",t.left=this.left+"px",t.width=n+"px"),t}},watch:{count:{handler(t,n){this.currentDefinition=this.definition,this.rerender()}},playbackDateTime:{handler(t,n){this.playbackMode==="playback"&&t&&this.update()}},playbackMode:{handler(t,n){t==="realtime"?this.updateRefreshInterval():(clearInterval(this.updater),this.updater=null)}},frozen:{handler(t){t?this.updater&&(clearInterval(this.updater),this.updater=null):this.playbackMode==="realtime"&&this.updateRefreshInterval()}},frozenValues:{immediate:!0,handler(t){t&&this.frozen&&Object.assign(this.screenValues,t)}}},errorCaptured(t,n,i){return this.errors.length<b&&(t.usage?this.errors.push({type:"usage",message:t.message,usage:t.usage,line:t.line,lineNumber:t.lineNumber,time:new Date().getTime()}):this.errors.push({type:"error",message:t,time:new Date().getTime()})),!1},created(){this.api=new p.yi,this.configParser=new p._i,this.parseDefinition(),this.screenKey=Math.floor(Math.random()*1e6)},mounted(){this.playbackMode==="realtime"&&!this.frozen&&this.updateRefreshInterval(),this.frozen&&this.frozenValues&&this.$nextTick(()=>{Object.assign(this.screenValues,this.frozenValues)}),this.floated&&(this.$refs.bar.onmousedown=this.dragMouseDown,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex)},unmounted(){this.updater!=null&&(clearInterval(this.updater),this.updater=null),this.tlmAvailableTimeout!=null&&(clearTimeout(this.tlmAvailableTimeout),this.tlmAvailableTimeout=null)},methods:{open(t,n){this.$parent.showScreen(t,n)},close(t,n){this.$parent.closeScreenByName(t,n)},closeAll(){this.$parent.closeAll()},clearErrors:function(){this.errors=[]},updateRefreshInterval:function(){if(this.updater&&(clearInterval(this.updater),this.updater=null),this.pollingPeriod===0)return;let t=this.pollingPeriod*1e3;this.updater=setInterval(()=>{this.update()},t)},parseDefinition:function(){if(this.clearErrors(),this.screenItems=[],this.namedWidgets={},this.layoutStack=[],this.dynamicWidgets=[],this.layoutStack.push({type:"VerticalWidget",parameters:[],widgets:[]}),this.currentLayout=this.layoutStack[this.layoutStack.length-1],this.configParser.parse_string(this.currentDefinition,"",!1,!0,(t,n,i,l)=>{if(t)switch(t){case"SCREEN":{if(this.configParser.verify_num_parameters(3,4,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`),n[0].toUpperCase()==="AUTO")this.width=null;else if(Number.isFinite(Number.parseInt(n[0])))this.width=Number.parseInt(n[0]);else throw new p.yt(this.configParser,`SCREEN width must be a number or AUTO, got '${n[0]}'`,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`);if(n[1].toUpperCase()==="AUTO")this.height=null;else if(Number.isFinite(Number.parseInt(n[1])))this.height=Number.parseInt(n[1]);else throw new p.yt(this.configParser,`SCREEN height must be a number or AUTO, got '${n[1]}'`,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`);const o=Number.parseFloat(n[2]);if(Number.isNaN(o)||o<0||o>0&&o<.1)throw new p.yt(this.configParser,`SCREEN polling period must be a number 0 or >= 0.1, got '${n[2]}'`,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`);this.pollingPeriod=o;break}case"END":this.configParser.verify_num_parameters(0,0,`${t}`),this.layoutStack.pop(),this.currentLayout=this.layoutStack[this.layoutStack.length-1];break;case"STALE_TIME":if(this.configParser.verify_num_parameters(1,1,`${t} <Time (s)>`),this.staleTime=Number.parseInt(n[0]),Number.isNaN(this.staleTime))throw new p.yt(this.configParser,`SCREEN stale time must be a number, got '${n[0]}'`,`${t} <Time (s)>`);break;case"SUBSETTING":this.configParser.verify_num_parameters(3,null,`${t} <Index> <Widget Type> <Widget Settings...>`),n[1]==="RAW"&&(n[1]="RAW__"+n[2].toLowerCase());case"SETTING":{this.configParser.verify_num_parameters(2,null,`${t} <Widget Type> <Widget Settings...>`),n[0]==="RAW"&&(n[0]="RAW__"+n[1].toLowerCase()),(this.currentLayout.widgets[this.currentLayout.widgets.length-1]??this.currentLayout).settings.push(n);break}case"TOOLTIP":{this.configParser.verify_num_parameters(1,2,`${t} <Tooltip Text> <Delay (ms)>`);let o=600;if(n[1]!==void 0&&(o=Number.parseInt(n[1]),Number.isNaN(o)))throw new p.yt(this.configParser,`SCREEN tooltip delay must be a number, got '${n[1]}'`,`${t} <Tooltip Text> <Delay (ms)>`);(this.currentLayout.widgets[this.currentLayout.widgets.length-1]??this.currentLayout).settings.push(["TOOLTIP",n[0],o]);break}case"GLOBAL_SUBSETTING":this.configParser.verify_num_parameters(3,null,`${t} <Index> <Widget Type> <Widget Settings...>`),n[2]==="RAW"&&(n[2]="RAW__"+n[3].toLowerCase());case"GLOBAL_SETTING":this.configParser.verify_num_parameters(2,null,`${t} <Widget Type> <Widget Settings...>`),n[1]==="RAW"&&(n[1]="RAW__"+n[2].toLowerCase()),this.globalSettings.push(n);break;default:this.processWidget(t,n,i,l);break}}),typeof this.layoutStack[0]>"u"){let t=[],n=[];for(const i of this.dynamicWidgets)t.push(i.name),n.push(i.lineNumber);this.errors.length<b&&this.errors.push({type:"usage",message:`Unknown widget! Are these widgets: ${t.join(",")}?`,lineNumber:n.join(","),time:new Date().getTime()}),this.layoutStack[0]={type:"VerticalWidget",parameters:[],widgets:[]}}else this.applyGlobalSettings(this.layoutStack[0].widgets)},openEdit:function(){this.backup=this.currentDefinition.repeat(1),this.editDialog=!0},upScreen:function(){this.zIndex+=1,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex])},downScreen:function(){this.zIndex>this.minZ&&(this.zIndex-=1,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex]))},floatScreen:function(){if(this.floated)this.$refs.bar.onmousedown=null,this.$refs.bar.parentElement.parentElement.style="z-index: 0",this.floated=!1,this.$emit("unfloat-screen",[this.floated,this.top,this.left,this.zIndex]);else{let t=this.$refs.bar.parentElement.parentElement.parentElement.getBoundingClientRect(),n=this.$refs.bar.getBoundingClientRect();this.top=n.top-t.top-5,this.left=n.left-t.left-5,this.$refs.bar.onmousedown=this.dragMouseDown,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.floated=!0,this.$emit("float-screen",[this.floated,this.top,this.left,this.zIndex])}},dragMouseDown:function(t){t=t||window.event;const n=t.target;if(!n.closest(".v-toolbar"))return;const l=["INPUT","TEXTAREA","BUTTON","SELECT"],o=["button",".v-btn","input","textarea",".v-text-field",".v-select",".v-combobox",".v-autocomplete"];l.includes(n.tagName)||o.some(a=>n.closest(a))||(t.preventDefault(),this.dragX=t.clientX,this.dragY=t.clientY,document.onmouseup=this.closeDragElement,document.onmousemove=this.elementDrag)},elementDrag:function(t){t=t||window.event,t.preventDefault();let n=this.dragX-t.clientX,i=this.dragY-t.clientY;this.dragX=t.clientX,this.dragY=t.clientY,this.top=this.$refs.bar.offsetTop-i,this.left=this.$refs.bar.offsetLeft-n,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex])},closeDragElement:function(){document.onmouseup=null,document.onmousemove=null},rerender:function(){this.parseDefinition(),this.updateRefreshInterval(),this.screenKey=Math.floor(Math.random()*1e6),this.$nextTick(function(){this.clearErrors(),this.$emit("edit-screen")})},cancelEdit:function(){this.file=null,this.editDialog=!1,this.currentDefinition=this.backup,this.rerender()},saveEdit:function(t){this.editDialog=!1,this.currentDefinition=t,this.rerender(),this.$nextTick(function(){p.Fr.post("/openc3-api/screen/",{data:{scope:window.openc3Scope,target:this.target,screen:this.screen,text:this.currentDefinition}},0)})},deleteScreen:function(){this.editDialog=!1,p.Fr.delete(`/openc3-api/screen/${this.target}/${this.screen}`).then(t=>{this.$emit("delete-screen")})},minMaxTransition:function(){this.expand=!this.expand,this.$emit("min-max-screen")},processWidget:function(t,n,i,l){let o=null;t==="NAMED_WIDGET"&&(this.configParser.verify_num_parameters(2,null,`${t} <Widget Name> <Widget Type> <Widget Settings... (optional)>`),o=n[0].toUpperCase(),t=n[1].toUpperCase(),n=n.slice(2,n.length));const s=t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()+"Widget";let a=[];if(a.push(["__SCREEN_ID__",this.screenId]),o!==null&&a.push(["NAMED_WIDGET",o]),t==="VERTICAL"||t==="VERTICALBOX"||t==="HORIZONTAL"||t==="HORIZONTALBOX"||t==="MATRIXBYCOLUMNS"||t==="TABBOOK"||t==="TABITEM"||t==="CANVAS"||t==="RADIOGROUP"||t==="SCROLLWINDOW"){const m={type:s,parameters:n,settings:a,screenValues:this.screenValues,screenTimeZone:this.timeZone,widgets:[]};this.layoutStack.push(m),this.currentLayout.widgets.push(m),this.currentLayout=m}else if(this.$options.components[s])this.currentLayout.widgets.push({type:s,target:this.target,parameters:n,settings:a,screenValues:this.screenValues,screenTimeZone:this.timeZone,line:i,lineNumber:l});else{let m={type:"DynamicWidget",target:this.target,parameters:n,settings:a,screenValues:this.screenValues,screenTimeZone:this.timeZone,name:s,line:i,lineNumber:l};this.currentLayout.widgets.push(m),this.dynamicWidgets.push(m)}},applyGlobalSettings:function(t){t.forEach(n=>{this.globalSettings.forEach(i=>{n.type.toLowerCase()===i[0].toLowerCase()+"widget"&&(n.settings.find(o=>o[0]===i[1])||n.settings.push(i.slice(1)))}),n.widgets&&this.applyGlobalSettings(n.widgets)})},update:function(){if(this.frozen)return;let t=this.playbackMode==="playback"?this.playbackDateTime:null;this.actualScreenItems.length!==0&&this.api.get_tlm_values(this.actualScreenItems,this.staleTime,this.cacheTimeout,t).then(n=>{n&&n.length>0&&(this.updateValues(n),this.errors=this.errors.filter(i=>i.type!=="error"||!i.message.includes("Request error")))}).catch(n=>{let i=JSON.stringify(n,null,2);this.errors.find(l=>l.message===i)||this.errors.length<b&&this.errors.push({type:"error",message:i,time:new Date().getTime()})})},updateValues:function(t){if(this.updateCounter+=1,t.length!=this.screenItems.length||t.length!=this.actualScreenItems.length)console.log(`get_tlm_values mismatch: data.length: ${t.length}, screenItems.length: ${this.screenItems.length}, actualScreenItems.length: ${this.actualScreenItems.length}`,JSON.stringify(t),JSON.stringify(this.screenItems),JSON.stringify(this.actualScreenItems));else for(let n=0;n<t.length;n++)t[n].push(this.updateCounter),this.screenValues[this.screenItems[n]]=t[n]},debouncedUpdateTlmAvailable:function(){this.frozen||(this.tlmAvailableTimeout!=null&&clearTimeout(this.tlmAvailableTimeout),this.tlmAvailableTimeout=setTimeout(()=>{this.api.get_tlm_available(this.screenItems).then(t=>{if(this.actualScreenItems=t,this.screenItems.length!=t.length)console.log("Error getting tlm available",this.screenItems,this.actualScreenItems);else for(let n=0;n<this.actualScreenItems.length;n++)if(this.actualScreenItems[n]===null){const i=this.screenItems[n].split("__"),l=this.currentDefinition.split(`
|
|
5
|
-
`),o=l.findIndex(s=>s.includes(i[0])&&s.includes(i[1])&&s.includes(i[2]))+1;o>0?this.errors.push({type:"usage",message:`Null for ${i.join(" ")}! Does it exist?`,line:l[o-1],lineNumber:o,time:new Date().getTime()}):this.errors.push({type:"error",message:`Null for ${i.join(" ")}! Does it exist?`,time:new Date().getTime()})}}).catch(t=>{console.log("Error getting tlm available",t),this.actualScreenItems=this.screenItems}),this.tlmAvailableTimeout=null},100))},addItem:function(t){this.screenItems.push(t),this.frozen&&this.frozenValues&&this.frozenValues[t]?this.screenValues[t]=this.frozenValues[t]:this.screenValues[t]=[null,null,0],this.debouncedUpdateTlmAvailable()},deleteItem:function(t){let n=this.screenItems.indexOf(t);this.screenItems.splice(n,1),this.debouncedUpdateTlmAvailable()},getScreenValues:function(){return JSON.parse(JSON.stringify(this.screenValues))}}},le={ref:"screen",class:"pa-1",style:{position:"relative"}},se={key:1,class:"pa-1",style:{position:"relative"}};function re(t,n,i,l,o,s){const a=e.resolveComponent("v-btn"),m=e.resolveComponent("v-tooltip"),
|
|
6
|
-
//# sourceMappingURL=Openc3Screen-
|
|
3
|
+
For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`,t}return this.type==="save"&&this.selectedFile.match(/\*$/)?`${this.selectedFile} is not a valid filename. Must not end in '*'.`:null},validFilenameRegex:function(){const t="0-9a-zA-Z";let i=`[${`${t}\\/\\!\\-\\_\\.\\*\\'\\(\\)`}]+\\.[${t}]+`;return this.requireTargetParentDir&&(i=`\\/?${`(${this.targets.join("|")})`}\\/${i}`),new RegExp(i)}},created(){p.Fr.get("/openc3-api/targets").then(t=>{this.targets=t.data,this.targets.push("__TEMP__");const n=this.targets.map(i=>(this.items.push({id:i,disabled:!0,title:i,children:[],path:i}),this.loadFiles(i)));Promise.all(n).then(()=>{this.disableButtons=!1})})},methods:{calcIcon:function(t){return D.fileIcon(t)},loadFiles:function(t){return p.Fr.get(this.apiUrl,{params:{target:t}}).then(n=>{if(n.data.length===0){this.items=this.items.filter(l=>l.id!==t);return}for(let l of n.data.sort())this.filepath=l,this.insertFile(this.items,2,l);this.inputFilename&&(this.selectedFile=this.inputFilename);const i=this.items.findIndex(l=>l.id===t);i!==-1&&(this.items[i].disabled=!1)}).catch(n=>{this.$emit("error",`Failed to connect to OpenC3. ${n}`)})},clear:function(){this.show=!1,this.overwrite=!1,this.disableButtons=!1},activeFile:function(t){t.length===0?this.selectedFile=null:(this.selectedFile=this.findItem(this.items,t.id),setTimeout(()=>{this.$refs.submitBtn.$el.focus()},100))},findItem:function(t,n){for(let i of t){if(i.id===n)return i.path;if(i.children){const l=this.findItem(i.children,n);if(l)return l}}return null},exists:function(t,n){let i=!1;for(let l of t){if(l.path===n||l.path.length>1&&l.path[l.path.length-1]==="*"&&l.path.slice(0,l.path.length-1)===n)return!0;l.children&&(i=i||this.exists(l.children,n))}return i},success:function(){this.selectedFile!==null&&this.error===null&&!this.disableButtons&&(this.type==="open"?this.openSuccess():this.saveSuccess())},deleteTemp:function(){this.$dialog.confirm("Are you sure you want to delete all the temporary files?",{okText:"Delete",cancelText:"Cancel"}).then(t=>p.Fr.delete("/script-api/scripts/temp_files")).then(t=>{this.$emit("clear-temp"),this.loadFiles("__TEMP__")}).catch(t=>{this.$notify.serious({title:"Error",body:`Failed to remove script temporary files due to ${t}`})})},openSuccess:function(){this.disableButtons=!0,p.Fr.get(`${this.apiUrl}/${this.selectedFile}`).then(t=>{const n={name:this.selectedFile,contents:t.data.contents};t.data.suites&&(n.suites=JSON.parse(t.data.suites)),t.data.error&&(n.error=t.data.error),t.data.success&&(n.success=t.data.success);const i=t.data.locked,l=t.data.breakpoints;this.$emit("file",{file:n,locked:i,breakpoints:l}),this.clear()}).catch(t=>{this.$emit("error",`Failed to open ${this.selectedFile}. ${t}`),this.clear()})},saveSuccess:function(){this.exists(this.items,this.selectedFile)?this.$dialog.confirm(`Are you sure you want to overwrite: ${this.selectedFile}`,{okText:"Overwrite",cancelText:"Cancel"}).then(n=>{this.$emit("filename",this.selectedFile),this.clear()}).catch(n=>{}):(this.$emit("filename",this.selectedFile),this.clear())},insertFile:function(t,n,i){let l=i.split("/");if(l.length===1){t.push({id:this.filepath,title:l[0],file:"ruby",path:this.filepath});return}const o=t.findIndex(s=>s.title===l[0]);o===-1?(t.push({id:this.filepath.split("/").slice(0,n-1).join("/"),title:l[0],children:[],path:this.filepath.split("/").slice(0,n-1).join("/")}),this.insertFile(t[t.length-1].children,n+1,l.slice(1).join("/"))):this.insertFile(t[o].children,n+1,l.slice(1).join("/"))}}},ee={class:"pa-3"},te={class:"overflow-y-auto tree-container"};function ne(t,n,i,l,o,s){const a=e.resolveComponent("v-spacer"),m=e.resolveComponent("v-progress-linear"),u=e.resolveComponent("v-toolbar"),c=e.resolveComponent("v-row"),v=e.resolveComponent("v-text-field"),x=e.resolveComponent("tree-node"),y=e.resolveComponent("v-card-text"),d=e.resolveComponent("v-btn"),r=e.resolveComponent("v-card-actions"),f=e.resolveComponent("v-card"),h=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(h,{modelValue:s.show,"onUpdate:modelValue":n[4]||(n[4]=g=>s.show=g),persistent:"",width:"800",onKeydown:[n[5]||(n[5]=e.withKeys(g=>o.disableButtons?null:s.success(),["enter"])),n[6]||(n[6]=e.withKeys(g=>o.disableButtons?null:s.show=!1,["esc"]))]},{default:e.withCtx(()=>[e.createVNode(f,{class:"file-open-save-card d-flex flex-column"},{default:e.withCtx(()=>[e.createElementVNode("form",{class:"d-flex flex-column",onSubmit:n[3]||(n[3]=e.withModifiers((...g)=>s.success&&s.success(...g),["prevent"]))},[e.createVNode(u,{height:"24"},{default:e.withCtx(()=>[e.createVNode(a),e.createElementVNode("span",null,e.toDisplayString(s.title),1),e.createVNode(a),e.createVNode(m,{active:o.disableButtons,indeterminate:"",location:"bottom",absolute:""},null,8,["active"])]),_:1}),e.createVNode(y,{class:"overflow-y-auto"},{default:e.withCtx(()=>[e.createElementVNode("div",ee,[e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.helpText),1)]),_:1}),e.createVNode(c,{dense:"",class:"mt-5"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:o.search,"onUpdate:modelValue":n[0]||(n[0]=g=>o.search=g),flat:"",autofocus:"","hide-details":"",clearable:"",label:"Search","prepend-inner-icon":"mdi-magnify",density:"compact","data-test":"file-open-save-search"},null,8,["modelValue"])]),_:1}),e.createElementVNode("div",te,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,g=>(e.openBlock(),e.createBlock(x,{key:`${g.id}`,node:g,search:o.search,type:i.type,onRequest:s.activeFile,onDelete:s.deleteTemp},null,8,["node","search","type","onRequest","onDelete"]))),128))]),e.createVNode(c,{class:"my-2"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:o.selectedFile,"onUpdate:modelValue":n[1]||(n[1]=g=>o.selectedFile=g),"hide-details":"",label:"Filename","data-test":"file-open-save-filename",disabled:o.disableButtons||i.type==="open"},null,8,["modelValue","disabled"])]),_:1}),e.createVNode(c,{dense:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:"my-2 text-red overflow-y-auto error-container",style:{"white-space":"pre-line"}},e.toDisplayString(s.error),513),[[e.vShow,s.error]])]),_:1})])]),_:1}),e.createVNode(r,null,{default:e.withCtx(()=>[e.createVNode(a),e.createVNode(d,{variant:"outlined",class:"mx-2","data-test":"file-open-save-cancel-btn",disabled:o.disableButtons,onClick:n[2]||(n[2]=g=>s.show=!1)},{default:e.withCtx(()=>[...n[7]||(n[7]=[e.createTextVNode(" Cancel ",-1)])]),_:1},8,["disabled"]),e.createVNode(d,{ref:"submitBtn",type:"submit",color:"primary",class:"mx-2","data-test":"file-open-save-submit-btn",disabled:o.disableButtons||!!s.error,onClick:e.withModifiers(s.success,["prevent"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.submit),1)]),_:1},8,["disabled","onClick"])]),_:1})],32)]),_:1})]),_:1},8,["modelValue"])}const ie=C._export_sfc(Q,[["render",ne]]),b=20,oe={components:{EditScreenDialog:S},mixins:[p.WidgetComponents],props:{target:{type:String,default:""},screen:{type:String,default:""},definition:{type:String,default:""},keywords:{type:Array,default:()=>[]},initialFloated:{type:Boolean,default:!1},initialTop:{type:Number,default:0},initialLeft:{type:Number,default:0},initialZ:{type:Number,default:0},minZ:{type:Number,default:0},fixFloated:{type:Boolean,default:!1},count:{type:Number,default:0},showClose:{type:Boolean,default:!0},timeZone:{type:String,default:"local"},inline:{type:Boolean,default:!1},playbackMode:{type:String,default:"realtime"},playbackDateTime:{type:Date,default:null},frozen:{type:Boolean,default:!1},frozenValues:{type:Object,default:null}},emits:["close-screen","delete-screen","drag-screen","edit-screen","float-screen","min-max-screen","unfloat-screen"],data(){return{api:null,backup:"",currentDefinition:this.definition,editDialog:!1,expand:!0,configParser:null,currentLayout:null,layoutStack:[],namedWidgets:{},dynamicWidgets:[],width:null,height:null,staleTime:30,cacheTimeout:.1,globalSettings:[],substitute:!1,original_target_name:null,force_substitute:!1,pollingPeriod:1,errors:[],errorDialog:!1,screenKey:null,dragX:0,dragY:0,floated:this.initialFloated,top:this.initialTop,left:this.initialLeft,zIndex:this.initialZ,changeCounter:0,screenItems:[],actualScreenItems:[],screenValues:{},updateCounter:0,updater:null,screenId:p.lodashExports.uniqueId("openc3-screen_"),tlmAvailableTimeout:null}},computed:{error:function(){if(this.errorDialog&&this.errors.length>0){let t=new Set,n="";for(const i of this.errors){if(t.has(i.message))continue;let l=`${i.time}: (${i.type}) ${i.message}
|
|
4
|
+
`;n+=l,t.add(i.message)}return n}return null},computedStyle(){let t={};const n=this.width||this.$refs.bar?.clientWidth;return this.floated&&(t.position="absolute",t.top=this.top+"px",t.left=this.left+"px",t.width=n+"px"),t}},watch:{count:{handler(t,n){this.currentDefinition=this.definition,this.rerender()}},playbackDateTime:{handler(t,n){this.playbackMode==="playback"&&t&&this.update()}},playbackMode:{handler(t,n){t==="realtime"?this.updateRefreshInterval():(clearInterval(this.updater),this.updater=null)}},frozen:{handler(t){t?this.updater&&(clearInterval(this.updater),this.updater=null):this.playbackMode==="realtime"&&this.updateRefreshInterval()}},frozenValues:{immediate:!0,handler(t){t&&this.frozen&&Object.assign(this.screenValues,t)}}},errorCaptured(t,n,i){return this.errors.length<b&&(t.usage?this.errors.push({type:"usage",message:t.message,usage:t.usage,line:t.line,lineNumber:t.lineNumber,time:new Date().getTime()}):this.errors.push({type:"error",message:t,time:new Date().getTime()})),!1},created(){this.api=new p.yi,this.configParser=new p._i,this.parseDefinition(),this.screenKey=Math.floor(Math.random()*1e6)},mounted(){this.playbackMode==="realtime"&&!this.frozen&&this.updateRefreshInterval(),this.frozen&&this.frozenValues&&this.$nextTick(()=>{Object.assign(this.screenValues,this.frozenValues)}),this.floated&&(this.$refs.bar.onmousedown=this.dragMouseDown,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex)},unmounted(){this.updater!=null&&(clearInterval(this.updater),this.updater=null),this.tlmAvailableTimeout!=null&&(clearTimeout(this.tlmAvailableTimeout),this.tlmAvailableTimeout=null)},methods:{open(t,n){this.$parent.showScreen(t,n)},close(t,n){this.$parent.closeScreenByName(t,n)},closeAll(){this.$parent.closeAll()},clearErrors:function(){this.errors=[]},updateRefreshInterval:function(){if(this.updater&&(clearInterval(this.updater),this.updater=null),this.pollingPeriod===0)return;let t=this.pollingPeriod*1e3;this.updater=setInterval(()=>{this.update()},t)},parseDefinition:function(){if(this.clearErrors(),this.screenItems=[],this.namedWidgets={},this.layoutStack=[],this.dynamicWidgets=[],this.layoutStack.push({type:"VerticalWidget",parameters:[],widgets:[]}),this.currentLayout=this.layoutStack[this.layoutStack.length-1],this.configParser.parse_string(this.currentDefinition,"",!1,!0,(t,n,i,l)=>{if(t)switch(t){case"SCREEN":{if(this.configParser.verify_num_parameters(3,4,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`),n[0].toUpperCase()==="AUTO")this.width=null;else if(Number.isFinite(Number.parseInt(n[0])))this.width=Number.parseInt(n[0]);else throw new p.yt(this.configParser,`SCREEN width must be a number or AUTO, got '${n[0]}'`,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`);if(n[1].toUpperCase()==="AUTO")this.height=null;else if(Number.isFinite(Number.parseInt(n[1])))this.height=Number.parseInt(n[1]);else throw new p.yt(this.configParser,`SCREEN height must be a number or AUTO, got '${n[1]}'`,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`);const o=Number.parseFloat(n[2]);if(Number.isNaN(o)||o<0||o>0&&o<.1)throw new p.yt(this.configParser,`SCREEN polling period must be a number 0 or >= 0.1, got '${n[2]}'`,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`);this.pollingPeriod=o;break}case"END":this.configParser.verify_num_parameters(0,0,`${t}`),this.layoutStack.pop(),this.currentLayout=this.layoutStack[this.layoutStack.length-1];break;case"STALE_TIME":if(this.configParser.verify_num_parameters(1,1,`${t} <Time (s)>`),this.staleTime=Number.parseInt(n[0]),Number.isNaN(this.staleTime))throw new p.yt(this.configParser,`SCREEN stale time must be a number, got '${n[0]}'`,`${t} <Time (s)>`);break;case"SUBSETTING":this.configParser.verify_num_parameters(3,null,`${t} <Index> <Widget Type> <Widget Settings...>`),n[1]==="RAW"&&(n[1]="RAW__"+n[2].toLowerCase());case"SETTING":{this.configParser.verify_num_parameters(2,null,`${t} <Widget Type> <Widget Settings...>`),n[0]==="RAW"&&(n[0]="RAW__"+n[1].toLowerCase()),(this.currentLayout.widgets[this.currentLayout.widgets.length-1]??this.currentLayout).settings.push(n);break}case"TOOLTIP":{this.configParser.verify_num_parameters(1,2,`${t} <Tooltip Text> <Delay (ms)>`);let o=600;if(n[1]!==void 0&&(o=Number.parseInt(n[1]),Number.isNaN(o)))throw new p.yt(this.configParser,`SCREEN tooltip delay must be a number, got '${n[1]}'`,`${t} <Tooltip Text> <Delay (ms)>`);(this.currentLayout.widgets[this.currentLayout.widgets.length-1]??this.currentLayout).settings.push(["TOOLTIP",n[0],o]);break}case"GLOBAL_SUBSETTING":this.configParser.verify_num_parameters(3,null,`${t} <Index> <Widget Type> <Widget Settings...>`),n[2]==="RAW"&&(n[2]="RAW__"+n[3].toLowerCase());case"GLOBAL_SETTING":this.configParser.verify_num_parameters(2,null,`${t} <Widget Type> <Widget Settings...>`),n[1]==="RAW"&&(n[1]="RAW__"+n[2].toLowerCase()),this.globalSettings.push(n);break;default:this.processWidget(t,n,i,l);break}}),typeof this.layoutStack[0]>"u"){let t=[],n=[];for(const i of this.dynamicWidgets)t.push(i.name),n.push(i.lineNumber);this.errors.length<b&&this.errors.push({type:"usage",message:`Unknown widget! Are these widgets: ${t.join(",")}?`,lineNumber:n.join(","),time:new Date().getTime()}),this.layoutStack[0]={type:"VerticalWidget",parameters:[],widgets:[]}}else this.applyGlobalSettings(this.layoutStack[0].widgets)},openEdit:function(){this.backup=this.currentDefinition.repeat(1),this.editDialog=!0},upScreen:function(){this.zIndex+=1,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex])},downScreen:function(){this.zIndex>this.minZ&&(this.zIndex-=1,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex]))},floatScreen:function(){if(this.floated)this.$refs.bar.onmousedown=null,this.$refs.bar.parentElement.parentElement.style="z-index: 0",this.floated=!1,this.$emit("unfloat-screen",[this.floated,this.top,this.left,this.zIndex]);else{let t=this.$refs.bar.parentElement.parentElement.parentElement.getBoundingClientRect(),n=this.$refs.bar.getBoundingClientRect();this.top=n.top-t.top-5,this.left=n.left-t.left-5,this.$refs.bar.onmousedown=this.dragMouseDown,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.floated=!0,this.$emit("float-screen",[this.floated,this.top,this.left,this.zIndex])}},dragMouseDown:function(t){t=t||window.event;const n=t.target;if(!n.closest(".v-toolbar"))return;const l=["INPUT","TEXTAREA","BUTTON","SELECT"],o=["button",".v-btn","input","textarea",".v-text-field",".v-select",".v-combobox",".v-autocomplete"];l.includes(n.tagName)||o.some(a=>n.closest(a))||(t.preventDefault(),this.dragX=t.clientX,this.dragY=t.clientY,document.onmouseup=this.closeDragElement,document.onmousemove=this.elementDrag)},elementDrag:function(t){t=t||window.event,t.preventDefault();let n=this.dragX-t.clientX,i=this.dragY-t.clientY;this.dragX=t.clientX,this.dragY=t.clientY,this.top=this.$refs.bar.offsetTop-i,this.left=this.$refs.bar.offsetLeft-n,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex])},closeDragElement:function(){document.onmouseup=null,document.onmousemove=null},rerender:function(){this.parseDefinition(),this.updateRefreshInterval(),this.screenKey=Math.floor(Math.random()*1e6),this.$nextTick(function(){this.clearErrors(),this.$emit("edit-screen")})},cancelEdit:function(){this.file=null,this.editDialog=!1,this.currentDefinition=this.backup,this.rerender()},saveEdit:function(t){this.editDialog=!1,this.currentDefinition=t,this.rerender(),this.$nextTick(function(){p.Fr.post("/openc3-api/screen/",{data:{scope:window.openc3Scope,target:this.target,screen:this.screen,text:this.currentDefinition}},0)})},deleteScreen:function(){this.editDialog=!1,p.Fr.delete(`/openc3-api/screen/${this.target}/${this.screen}`).then(t=>{this.$emit("delete-screen")})},minMaxTransition:function(){this.expand=!this.expand,this.$emit("min-max-screen")},processWidget:function(t,n,i,l){let o=null;t==="NAMED_WIDGET"&&(this.configParser.verify_num_parameters(2,null,`${t} <Widget Name> <Widget Type> <Widget Settings... (optional)>`),o=n[0].toUpperCase(),t=n[1].toUpperCase(),n=n.slice(2,n.length));const s=t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()+"Widget";let a=[];if(a.push(["__SCREEN_ID__",this.screenId]),o!==null&&a.push(["NAMED_WIDGET",o]),t==="VERTICAL"||t==="VERTICALBOX"||t==="HORIZONTAL"||t==="HORIZONTALBOX"||t==="MATRIXBYCOLUMNS"||t==="TABBOOK"||t==="TABITEM"||t==="CANVAS"||t==="RADIOGROUP"||t==="SCROLLWINDOW"){const m={type:s,parameters:n,settings:a,screenValues:this.screenValues,screenTimeZone:this.timeZone,widgets:[]};this.layoutStack.push(m),this.currentLayout.widgets.push(m),this.currentLayout=m}else if(this.$options.components[s])this.currentLayout.widgets.push({type:s,target:this.target,parameters:n,settings:a,screenValues:this.screenValues,screenTimeZone:this.timeZone,line:i,lineNumber:l});else{let m={type:"DynamicWidget",target:this.target,parameters:n,settings:a,screenValues:this.screenValues,screenTimeZone:this.timeZone,name:s,line:i,lineNumber:l};this.currentLayout.widgets.push(m),this.dynamicWidgets.push(m)}},applyGlobalSettings:function(t){t.forEach(n=>{this.globalSettings.forEach(i=>{n.type.toLowerCase()===i[0].toLowerCase()+"widget"&&(n.settings.find(o=>o[0]===i[1])||n.settings.push(i.slice(1)))}),n.widgets&&this.applyGlobalSettings(n.widgets)})},update:function(){if(this.frozen)return;let t=this.playbackMode==="playback"?this.playbackDateTime:null;this.actualScreenItems.length!==0&&this.api.get_tlm_values(this.actualScreenItems,this.staleTime,this.cacheTimeout,t).then(n=>{n&&n.length>0&&(this.updateValues(n),this.errors=this.errors.filter(i=>!i.transient))}).catch(n=>{let i=JSON.stringify(n,null,2);this.errors.find(l=>l.message===i)||this.errors.length<b&&this.errors.push({type:"error",message:i,time:new Date().getTime(),transient:!0})})},updateValues:function(t){if(this.updateCounter+=1,t.length!=this.screenItems.length||t.length!=this.actualScreenItems.length)console.log(`get_tlm_values mismatch: data.length: ${t.length}, screenItems.length: ${this.screenItems.length}, actualScreenItems.length: ${this.actualScreenItems.length}`,JSON.stringify(t),JSON.stringify(this.screenItems),JSON.stringify(this.actualScreenItems));else for(let n=0;n<t.length;n++)t[n].push(this.updateCounter),this.screenValues[this.screenItems[n]]=t[n]},debouncedUpdateTlmAvailable:function(){this.frozen||(this.tlmAvailableTimeout!=null&&clearTimeout(this.tlmAvailableTimeout),this.tlmAvailableTimeout=setTimeout(()=>{this.api.get_tlm_available(this.screenItems).then(t=>{if(this.actualScreenItems=t,this.screenItems.length!=t.length)console.log("Error getting tlm available",this.screenItems,this.actualScreenItems);else for(let n=0;n<this.actualScreenItems.length;n++)if(this.actualScreenItems[n]===null){const i=this.screenItems[n].split("__"),l=this.currentDefinition.split(`
|
|
5
|
+
`),o=l.findIndex(s=>s.includes(i[0])&&s.includes(i[1])&&s.includes(i[2]))+1;o>0?this.errors.push({type:"usage",message:`Null for ${i.join(" ")}! Does it exist?`,line:l[o-1],lineNumber:o,time:new Date().getTime()}):this.errors.push({type:"error",message:`Null for ${i.join(" ")}! Does it exist?`,time:new Date().getTime()})}}).catch(t=>{console.log("Error getting tlm available",t),this.actualScreenItems=this.screenItems}),this.tlmAvailableTimeout=null},100))},addItem:function(t){this.screenItems.push(t),this.frozen&&this.frozenValues&&this.frozenValues[t]?this.screenValues[t]=this.frozenValues[t]:this.screenValues[t]=[null,null,0],this.debouncedUpdateTlmAvailable()},deleteItem:function(t){let n=this.screenItems.indexOf(t);this.screenItems.splice(n,1),this.debouncedUpdateTlmAvailable()},getScreenValues:function(){return JSON.parse(JSON.stringify(this.screenValues))}}},le={ref:"screen",class:"pa-1",style:{position:"relative"}},se={key:1,class:"pa-1",style:{position:"relative"}};function re(t,n,i,l,o,s){const a=e.resolveComponent("v-btn"),m=e.resolveComponent("v-tooltip"),u=e.resolveComponent("v-spacer"),c=e.resolveComponent("v-toolbar"),v=e.resolveComponent("v-overlay"),x=e.resolveComponent("vertical-widget"),y=e.resolveComponent("v-expand-transition"),d=e.resolveComponent("v-card"),r=e.resolveComponent("edit-screen-dialog"),f=e.resolveComponent("v-textarea"),h=e.resolveComponent("v-card-actions"),g=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock("div",{ref:"bar",style:e.normalizeStyle(s.computedStyle)},[i.inline?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(d,{key:0,"min-height":o.height,"min-width":o.width,style:{cursor:"default"}},{default:e.withCtx(()=>[e.createVNode(c,{height:"24",class:e.normalizeClass({"floated-toolbar":o.floated})},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(a,{icon:"mdi-alert",variant:"text",density:"compact","data-test":"error-graph-icon","aria-label":"Show Errors",onClick:n[0]||(n[0]=()=>{o.errorDialog=!0})},null,512),[[e.vShow,o.errors.length!==0]]),e.createVNode(a,{icon:"mdi-pencil",variant:"text",density:"compact","data-test":"edit-screen-icon","aria-label":"Edit Screen",onClick:s.openEdit},null,8,["onClick"]),i.fixFloated?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(m,{key:0,"open-delay":600,location:"top"},{activator:e.withCtx(({props:_})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(_)),[e.createVNode(a,{icon:o.floated?"mdi-balloon":"mdi-view-grid-outline",variant:"text",density:"compact","data-test":"float-screen-icon","aria-label":o.floated?"Unfloat Screen":"Float Screen",onClick:s.floatScreen},null,8,["icon","aria-label","onClick"])],16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(o.floated?"Unfloat Screen":"Float Screen"),1)]),_:1})),o.floated?(e.openBlock(),e.createBlock(m,{key:1,"open-delay":600,location:"top"},{activator:e.withCtx(({props:_})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(_)),[e.createVNode(a,{icon:"mdi-arrow-up",variant:"text",density:"compact","data-test":"up-screen-icon","aria-label":"Move Screen Up",onClick:s.upScreen},null,8,["onClick"])],16)]),default:e.withCtx(()=>[n[6]||(n[6]=e.createElementVNode("span",null," Move Screen Up ",-1))]),_:1})):e.createCommentVNode("",!0),o.floated&&o.zIndex>i.minZ?(e.openBlock(),e.createBlock(m,{key:2,"open-delay":600,location:"top"},{activator:e.withCtx(({props:_})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(_)),[e.createVNode(a,{icon:"mdi-arrow-down",variant:"text",density:"compact","data-test":"down-screen-icon","aria-label":"Move Screen Down",onClick:s.downScreen},null,8,["onClick"])],16)]),default:e.withCtx(()=>[n[7]||(n[7]=e.createElementVNode("span",null," Move Screen Down ",-1))]),_:1})):e.createCommentVNode("",!0),e.createVNode(u),e.createElementVNode("span",null,e.toDisplayString(i.target)+" "+e.toDisplayString(i.screen),1),e.createVNode(u),o.expand?(e.openBlock(),e.createBlock(a,{key:3,icon:"mdi-window-minimize",variant:"text",density:"compact","data-test":"minimize-screen-icon","aria-label":"Minimize Screen",onClick:s.minMaxTransition},null,8,["onClick"])):(e.openBlock(),e.createBlock(a,{key:4,icon:"mdi-window-maximize",variant:"text",density:"compact","data-test":"maximize-screen-icon","aria-label":"Maximize Screen",onClick:s.minMaxTransition},null,8,["onClick"])),i.showClose?(e.openBlock(),e.createBlock(a,{key:5,icon:"mdi-close-box",variant:"text",density:"compact","data-test":"close-screen-icon","aria-label":"Close Screen",onClick:n[1]||(n[1]=_=>t.$emit("close-screen"))})):e.createCommentVNode("",!0)]),_:1},8,["class"]),o.editDialog?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(y,{key:0},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",le,[e.createVNode(v,{style:{"pointer-events":"none"},"model-value":o.errors.length!==0,opacity:"0.8",contained:"","scroll-strategy":"none"},null,8,["model-value"]),(e.openBlock(),e.createBlock(x,{key:o.screenKey,widgets:o.layoutStack[0].widgets,"screen-values":o.screenValues,"screen-time-zone":i.timeZone,onAddItem:s.addItem,onDeleteItem:s.deleteItem,onOpen:s.open,onClose:s.close,onCloseAll:s.closeAll},null,8,["widgets","screen-values","screen-time-zone","onAddItem","onDeleteItem","onOpen","onClose","onCloseAll"]))],512),[[e.vShow,o.expand]])]),_:1}))]),_:1},8,["min-height","min-width"])),i.inline?(e.openBlock(),e.createElementBlock("div",se,[e.createVNode(v,{style:{"pointer-events":"none"},"model-value":o.errors.length!==0,opacity:"0.8",contained:"","scroll-strategy":"none"},null,8,["model-value"]),e.withDirectives(e.createVNode(a,{icon:"mdi-alert",variant:"text",density:"compact","data-test":"error-graph-icon","aria-label":"Show Errors",onClick:n[2]||(n[2]=()=>{o.errorDialog=!0})},null,512),[[e.vShow,o.errors.length!==0]]),(e.openBlock(),e.createBlock(x,{key:o.screenKey,widgets:o.layoutStack[0].widgets,"screen-values":o.screenValues,"screen-time-zone":i.timeZone,onAddItem:s.addItem,onDeleteItem:s.deleteItem,onOpen:s.open,onClose:s.close,onCloseAll:s.closeAll},null,8,["widgets","screen-values","screen-time-zone","onAddItem","onDeleteItem","onOpen","onClose","onCloseAll"]))])):e.createCommentVNode("",!0),o.editDialog?(e.openBlock(),e.createBlock(r,{key:2,modelValue:o.editDialog,"onUpdate:modelValue":n[3]||(n[3]=_=>o.editDialog=_),target:i.target,screen:i.screen,definition:o.currentDefinition,keywords:i.keywords,errors:o.errors,onSave:s.saveEdit,onCancel:s.cancelEdit,onDelete:s.deleteScreen},null,8,["modelValue","target","screen","definition","keywords","errors","onSave","onCancel","onDelete"])):e.createCommentVNode("",!0),e.createVNode(g,{modelValue:o.errorDialog,"onUpdate:modelValue":n[5]||(n[5]=_=>o.errorDialog=_),width:"60vw"},{default:e.withCtx(()=>[e.createVNode(c,{height:"24"},{default:e.withCtx(()=>[e.createVNode(u),e.createElementVNode("span",null," Screen: "+e.toDisplayString(i.target)+" "+e.toDisplayString(i.screen)+" Errors ",1),e.createVNode(u)]),_:1}),e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(f,{class:"errors",readonly:"",rows:"13","model-value":s.error},null,8,["model-value"]),e.createVNode(h,{class:"pb-5"},{default:e.withCtx(()=>[e.createVNode(u),e.createVNode(a,{variant:"outlined",class:"mr-2",onClick:s.clearErrors},{default:e.withCtx(()=>[...n[8]||(n[8]=[e.createTextVNode(" Clear Errors ",-1)])]),_:1},8,["onClick"]),e.createVNode(a,{variant:"flat",class:"mr-2",onClick:n[4]||(n[4]=_=>o.errorDialog=!1)},{default:e.withCtx(()=>[...n[9]||(n[9]=[e.createTextVNode(" Close ",-1)])]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])],4)}const ae=C._export_sfc(oe,[["render",re],["__scopeId","data-v-d702c86d"]]);exports.CmdCompleter=L;exports.EditScreenDialog=S;exports.EnvironmentDialog=q;exports.FileOpenSaveDialog=ie;exports.Openc3Screen=ae;exports.ScreenCompleter=k;exports.ScreenEditor=N;exports.TlmCompleter=P;exports.getKeywords=T;exports.groupBy=z;
|
|
6
|
+
//# sourceMappingURL=Openc3Screen-D1RLlBgQ.cjs.map
|