@openc3/vue-common 6.4.2 → 6.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ArrayWidget-D0fKsdTb.js → ArrayWidget-CC3iwyQc.js} +4 -4
- package/dist/{ArrayWidget-D0fKsdTb.js.map → ArrayWidget-CC3iwyQc.js.map} +1 -1
- package/dist/{ArrayWidget-F8xL9dRA.cjs → ArrayWidget-DaQV8y9D.cjs} +2 -2
- package/dist/{ArrayWidget-F8xL9dRA.cjs.map → ArrayWidget-DaQV8y9D.cjs.map} +1 -1
- package/dist/{ArrayplotWidget-BmRSuGhA.js → ArrayplotWidget-CiQdsmVy.js} +3 -3
- package/dist/{ArrayplotWidget-BmRSuGhA.js.map → ArrayplotWidget-CiQdsmVy.js.map} +1 -1
- package/dist/{ArrayplotWidget-D6_PhmMa.cjs → ArrayplotWidget-CkiRBYrb.cjs} +2 -2
- package/dist/{ArrayplotWidget-D6_PhmMa.cjs.map → ArrayplotWidget-CkiRBYrb.cjs.map} +1 -1
- package/dist/{BarColumn-DtYw6Gmq.js → BarColumn-BhjcS87D.js} +3 -3
- package/dist/{BarColumn-DtYw6Gmq.js.map → BarColumn-BhjcS87D.js.map} +1 -1
- package/dist/{BarColumn-DO5zpCu2.cjs → BarColumn-Ci9fqSL1.cjs} +2 -2
- package/dist/{BarColumn-DO5zpCu2.cjs.map → BarColumn-Ci9fqSL1.cjs.map} +1 -1
- package/dist/{BlockWidget-Dpxbw455.js → BlockWidget-LLPHBYVU.js} +4 -4
- package/dist/{BlockWidget-Dpxbw455.js.map → BlockWidget-LLPHBYVU.js.map} +1 -1
- package/dist/{BlockWidget-CbuJPszc.cjs → BlockWidget-yNjXB1gO.cjs} +2 -2
- package/dist/{BlockWidget-CbuJPszc.cjs.map → BlockWidget-yNjXB1gO.cjs.map} +1 -1
- package/dist/{ButtonWidget-DB464bRo.cjs → ButtonWidget-C_R8sVl5.cjs} +2 -2
- package/dist/{ButtonWidget-DB464bRo.cjs.map → ButtonWidget-C_R8sVl5.cjs.map} +1 -1
- package/dist/{ButtonWidget-8iOpXmpp.js → ButtonWidget-Co0KMkIG.js} +4 -4
- package/dist/{ButtonWidget-8iOpXmpp.js.map → ButtonWidget-Co0KMkIG.js.map} +1 -1
- package/dist/{CanvasWidget-D4iIs915.cjs → CanvasWidget-CMVhjpJc.cjs} +2 -2
- package/dist/{CanvasWidget-D4iIs915.cjs.map → CanvasWidget-CMVhjpJc.cjs.map} +1 -1
- package/dist/{CanvasWidget-B0iU38rA.js → CanvasWidget-DPrxnI7M.js} +2 -2
- package/dist/{CanvasWidget-B0iU38rA.js.map → CanvasWidget-DPrxnI7M.js.map} +1 -1
- package/dist/{CanvasdotWidget-DG6qDFlh.cjs → CanvasdotWidget-DskyFyIC.cjs} +2 -2
- package/dist/{CanvasdotWidget-DG6qDFlh.cjs.map → CanvasdotWidget-DskyFyIC.cjs.map} +1 -1
- package/dist/{CanvasdotWidget-C9viSVBs.js → CanvasdotWidget-s1ALDR4k.js} +2 -2
- package/dist/{CanvasdotWidget-C9viSVBs.js.map → CanvasdotWidget-s1ALDR4k.js.map} +1 -1
- package/dist/{CanvasimageWidget-BJhOpZ3q.cjs → CanvasimageWidget-BngTI0bl.cjs} +2 -2
- package/dist/{CanvasimageWidget-BJhOpZ3q.cjs.map → CanvasimageWidget-BngTI0bl.cjs.map} +1 -1
- package/dist/{CanvasimageWidget-CFiCpITu.js → CanvasimageWidget-Cs-KjdqK.js} +3 -3
- package/dist/{CanvasimageWidget-CFiCpITu.js.map → CanvasimageWidget-Cs-KjdqK.js.map} +1 -1
- package/dist/{CanvasimagevalueWidget-D-4P_8Gh.cjs → CanvasimagevalueWidget-0qTn6Gb5.cjs} +2 -2
- package/dist/{CanvasimagevalueWidget-D-4P_8Gh.cjs.map → CanvasimagevalueWidget-0qTn6Gb5.cjs.map} +1 -1
- package/dist/{CanvasimagevalueWidget-fu6vbAY0.js → CanvasimagevalueWidget-B-wBQisl.js} +3 -3
- package/dist/{CanvasimagevalueWidget-fu6vbAY0.js.map → CanvasimagevalueWidget-B-wBQisl.js.map} +1 -1
- package/dist/{CanvaslabelWidget-BVqHq3Vp.js → CanvaslabelWidget-CLBK52pP.js} +2 -2
- package/dist/{CanvaslabelWidget-BVqHq3Vp.js.map → CanvaslabelWidget-CLBK52pP.js.map} +1 -1
- package/dist/{CanvaslabelWidget-1OS-a3F4.cjs → CanvaslabelWidget-b2yvqZBZ.cjs} +2 -2
- package/dist/{CanvaslabelWidget-1OS-a3F4.cjs.map → CanvaslabelWidget-b2yvqZBZ.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-C3vVvK2b.cjs → CanvaslabelvalueWidget-CA03ncx0.cjs} +2 -2
- package/dist/{CanvaslabelvalueWidget-C3vVvK2b.cjs.map → CanvaslabelvalueWidget-CA03ncx0.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-BOFa8-NU.js → CanvaslabelvalueWidget-CAa70y_o.js} +2 -2
- package/dist/{CanvaslabelvalueWidget-BOFa8-NU.js.map → CanvaslabelvalueWidget-CAa70y_o.js.map} +1 -1
- package/dist/{CanvaslineWidget-Cr8MsDUl.cjs → CanvaslineWidget-B-yhgIlR.cjs} +2 -2
- package/dist/{CanvaslineWidget-Cr8MsDUl.cjs.map → CanvaslineWidget-B-yhgIlR.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-l3ko0QXk.js → CanvaslineWidget-PdwVJOQ5.js} +2 -2
- package/dist/{CanvaslineWidget-l3ko0QXk.js.map → CanvaslineWidget-PdwVJOQ5.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-BCZoO-Z6.js → CanvaslinevalueWidget-CKrp1f3Z.js} +2 -2
- package/dist/{CanvaslinevalueWidget-BCZoO-Z6.js.map → CanvaslinevalueWidget-CKrp1f3Z.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-DRowns-E.cjs → CanvaslinevalueWidget-PVW-_nOk.cjs} +2 -2
- package/dist/{CanvaslinevalueWidget-DRowns-E.cjs.map → CanvaslinevalueWidget-PVW-_nOk.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-Cy9VUV7t.cjs → CheckbuttonWidget-BItae9qq.cjs} +2 -2
- package/dist/{CheckbuttonWidget-Cy9VUV7t.cjs.map → CheckbuttonWidget-BItae9qq.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-BN7e1d5b.js → CheckbuttonWidget-CTSfH4NN.js} +2 -2
- package/dist/{CheckbuttonWidget-BN7e1d5b.js.map → CheckbuttonWidget-CTSfH4NN.js.map} +1 -1
- package/dist/{ComboboxWidget-DbQwLEJY.cjs → ComboboxWidget-BFKz1kva.cjs} +2 -2
- package/dist/{ComboboxWidget-DbQwLEJY.cjs.map → ComboboxWidget-BFKz1kva.cjs.map} +1 -1
- package/dist/{ComboboxWidget-Bb5RGXDB.js → ComboboxWidget-BQzv9zk5.js} +2 -2
- package/dist/{ComboboxWidget-Bb5RGXDB.js.map → ComboboxWidget-BQzv9zk5.js.map} +1 -1
- package/dist/{CriticalCmdDialog-p0ZMNHpv.cjs → CriticalCmdDialog-CfUGhKPh.cjs} +2 -2
- package/dist/{CriticalCmdDialog-p0ZMNHpv.cjs.map → CriticalCmdDialog-CfUGhKPh.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-BUHsxfpO.js → CriticalCmdDialog-D5m3w1fr.js} +2 -2
- package/dist/{CriticalCmdDialog-BUHsxfpO.js.map → CriticalCmdDialog-D5m3w1fr.js.map} +1 -1
- package/dist/{DateWidget-Cv3Uzbyr.cjs → DateWidget-CuUySNFb.cjs} +2 -2
- package/dist/{DateWidget-Cv3Uzbyr.cjs.map → DateWidget-CuUySNFb.cjs.map} +1 -1
- package/dist/{DateWidget-Dggqab-F.js → DateWidget-DKXxXT1g.js} +2 -2
- package/dist/{DateWidget-Dggqab-F.js.map → DateWidget-DKXxXT1g.js.map} +1 -1
- package/dist/{DetailsDialog-BhSAQDSK.js → DetailsDialog-DEjAO6yp.js} +2 -2
- package/dist/{DetailsDialog-BhSAQDSK.js.map → DetailsDialog-DEjAO6yp.js.map} +1 -1
- package/dist/{DetailsDialog-CSUO0ibv.cjs → DetailsDialog-DlUuDdFa.cjs} +2 -2
- package/dist/{DetailsDialog-CSUO0ibv.cjs.map → DetailsDialog-DlUuDdFa.cjs.map} +1 -1
- package/dist/{EventListDialog-C7RuZnvD.cjs → EventListDialog-CPYg1a2g.cjs} +2 -2
- package/dist/{EventListDialog-C7RuZnvD.cjs.map → EventListDialog-CPYg1a2g.cjs.map} +1 -1
- package/dist/{EventListDialog-CSxz4nmr.js → EventListDialog-CabnKWVX.js} +3 -3
- package/dist/{EventListDialog-CSxz4nmr.js.map → EventListDialog-CabnKWVX.js.map} +1 -1
- package/dist/{FormatvalueWidget-B9_PbzY2.js → FormatvalueWidget-7Yp9jfgX.js} +3 -3
- package/dist/{FormatvalueWidget-B9_PbzY2.js.map → FormatvalueWidget-7Yp9jfgX.js.map} +1 -1
- package/dist/{FormatvalueWidget-VYVvrtya.cjs → FormatvalueWidget-LNNT9pLh.cjs} +2 -2
- package/dist/{FormatvalueWidget-VYVvrtya.cjs.map → FormatvalueWidget-LNNT9pLh.cjs.map} +1 -1
- package/dist/{Graph-B2Ir-2Ot.cjs → Graph-ZGEBRGOA.cjs} +2 -2
- package/dist/{Graph-B2Ir-2Ot.cjs.map → Graph-ZGEBRGOA.cjs.map} +1 -1
- package/dist/{Graph-B29y4d5A.js → Graph-hzxapkW-.js} +2 -2
- package/dist/{Graph-B29y4d5A.js.map → Graph-hzxapkW-.js.map} +1 -1
- package/dist/{GraphWidget-oBxPa3EB.js → GraphWidget-Dn0ZaxHo.js} +2 -2
- package/dist/{GraphWidget-oBxPa3EB.js.map → GraphWidget-Dn0ZaxHo.js.map} +1 -1
- package/dist/{GraphWidget-BsiCtRsJ.cjs → GraphWidget-caScsshg.cjs} +2 -2
- package/dist/{GraphWidget-BsiCtRsJ.cjs.map → GraphWidget-caScsshg.cjs.map} +1 -1
- package/dist/{HorizontalWidget-BWgZL_Oz.js → HorizontalWidget-BFzi3rMl.js} +2 -2
- package/dist/{HorizontalWidget-BWgZL_Oz.js.map → HorizontalWidget-BFzi3rMl.js.map} +1 -1
- package/dist/{HorizontalWidget-wn07kYWX.cjs → HorizontalWidget-Bt7N0bIN.cjs} +2 -2
- package/dist/{HorizontalWidget-wn07kYWX.cjs.map → HorizontalWidget-Bt7N0bIN.cjs.map} +1 -1
- package/dist/{HorizontalboxWidget-yMYUnNB8.js → HorizontalboxWidget-DIagyace.js} +5 -5
- package/dist/{HorizontalboxWidget-yMYUnNB8.js.map → HorizontalboxWidget-DIagyace.js.map} +1 -1
- package/dist/{HorizontalboxWidget-BQLGULQ-.cjs → HorizontalboxWidget-Dv6NWovB.cjs} +2 -2
- package/dist/{HorizontalboxWidget-BQLGULQ-.cjs.map → HorizontalboxWidget-Dv6NWovB.cjs.map} +1 -1
- package/dist/{HorizontallineWidget-C4zMx7z2.js → HorizontallineWidget-BOZNWM3a.js} +2 -2
- package/dist/{HorizontallineWidget-C4zMx7z2.js.map → HorizontallineWidget-BOZNWM3a.js.map} +1 -1
- package/dist/{HorizontallineWidget-CfrV_K28.cjs → HorizontallineWidget-CFsWevmI.cjs} +2 -2
- package/dist/{HorizontallineWidget-CfrV_K28.cjs.map → HorizontallineWidget-CFsWevmI.cjs.map} +1 -1
- package/dist/{IframeWidget-DA4P_mJT.js → IframeWidget-BU24bhc2.js} +2 -2
- package/dist/{IframeWidget-DA4P_mJT.js.map → IframeWidget-BU24bhc2.js.map} +1 -1
- package/dist/{IframeWidget-DeNDRzqB.cjs → IframeWidget-J6g6EhHh.cjs} +2 -2
- package/dist/{IframeWidget-DeNDRzqB.cjs.map → IframeWidget-J6g6EhHh.cjs.map} +1 -1
- package/dist/{ImageLoader-mxOVUyj1.cjs → ImageLoader-BVVI9FSl.cjs} +2 -2
- package/dist/{ImageLoader-mxOVUyj1.cjs.map → ImageLoader-BVVI9FSl.cjs.map} +1 -1
- package/dist/{ImageLoader-rvd9t-mk.js → ImageLoader-xxDrxPAX.js} +2 -2
- package/dist/{ImageLoader-rvd9t-mk.js.map → ImageLoader-xxDrxPAX.js.map} +1 -1
- package/dist/{ImageviewerWidget-CV76ouHz.cjs → ImageviewerWidget-BSTS4nPw.cjs} +2 -2
- package/dist/{ImageviewerWidget-CV76ouHz.cjs.map → ImageviewerWidget-BSTS4nPw.cjs.map} +1 -1
- package/dist/{ImageviewerWidget-B1wK0hK4.js → ImageviewerWidget-YMA4CVsl.js} +2 -2
- package/dist/{ImageviewerWidget-B1wK0hK4.js.map → ImageviewerWidget-YMA4CVsl.js.map} +1 -1
- package/dist/{InterfacesTab-CVvIDSTG.js → InterfacesTab-Cv50gOTl.js} +3 -3
- package/dist/{InterfacesTab-CVvIDSTG.js.map → InterfacesTab-Cv50gOTl.js.map} +1 -1
- package/dist/{InterfacesTab-DHoYHLxF.cjs → InterfacesTab-DOjyTYVC.cjs} +2 -2
- package/dist/{InterfacesTab-DHoYHLxF.cjs.map → InterfacesTab-DOjyTYVC.cjs.map} +1 -1
- package/dist/{LabelWidget-CY0saBoK.js → LabelWidget-2402SA18.js} +2 -2
- package/dist/{LabelWidget-CY0saBoK.js.map → LabelWidget-2402SA18.js.map} +1 -1
- package/dist/{LabelWidget-BobQDS5m.cjs → LabelWidget-t-nltZ16.cjs} +2 -2
- package/dist/{LabelWidget-BobQDS5m.cjs.map → LabelWidget-t-nltZ16.cjs.map} +1 -1
- package/dist/{LabelledWidget-B3ZOYaGy.js → LabelledWidget-Cbubzj_g.js} +4 -4
- package/dist/{LabelledWidget-B3ZOYaGy.js.map → LabelledWidget-Cbubzj_g.js.map} +1 -1
- package/dist/{LabelledWidget-Dp4fjHpu.cjs → LabelledWidget-tWrIx1sj.cjs} +2 -2
- package/dist/{LabelledWidget-Dp4fjHpu.cjs.map → LabelledWidget-tWrIx1sj.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-1BF_rNsT.cjs → LabelprogressbarWidget-1k8njgQG.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-1BF_rNsT.cjs.map → LabelprogressbarWidget-1k8njgQG.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-CmXcESTg.js → LabelprogressbarWidget-s8V7w6LJ.js} +4 -4
- package/dist/{LabelprogressbarWidget-CmXcESTg.js.map → LabelprogressbarWidget-s8V7w6LJ.js.map} +1 -1
- package/dist/{LabelsparklineWidget-DgzZAWfI.cjs → LabelsparklineWidget-4yoeI7gJ.cjs} +2 -2
- package/dist/{LabelsparklineWidget-DgzZAWfI.cjs.map → LabelsparklineWidget-4yoeI7gJ.cjs.map} +1 -1
- package/dist/{LabelsparklineWidget-D_yrQrn6.js → LabelsparklineWidget-qbM_OXLh.js} +4 -4
- package/dist/{LabelsparklineWidget-D_yrQrn6.js.map → LabelsparklineWidget-qbM_OXLh.js.map} +1 -1
- package/dist/{LabelvalueWidget-dNaNfsBE.js → LabelvalueWidget-B5Ihc2yP.js} +4 -4
- package/dist/{LabelvalueWidget-dNaNfsBE.js.map → LabelvalueWidget-B5Ihc2yP.js.map} +1 -1
- package/dist/{LabelvalueWidget-T6FC3w0l.cjs → LabelvalueWidget-CEua41bt.cjs} +2 -2
- package/dist/{LabelvalueWidget-T6FC3w0l.cjs.map → LabelvalueWidget-CEua41bt.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-Cb7UqEa-.cjs → LabelvaluedescWidget-7jth-OmG.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-Cb7UqEa-.cjs.map → LabelvaluedescWidget-7jth-OmG.cjs.map} +1 -1
- package/dist/{LabelvaluedescWidget-3vNoH6Mc.js → LabelvaluedescWidget-Cl3JHPGR.js} +5 -5
- package/dist/{LabelvaluedescWidget-3vNoH6Mc.js.map → LabelvaluedescWidget-Cl3JHPGR.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-Bi43GWx7.cjs → LabelvaluelimitsbarWidget-BDhDe4-V.cjs} +2 -2
- package/dist/{LabelvaluelimitsbarWidget-Bi43GWx7.cjs.map → LabelvaluelimitsbarWidget-BDhDe4-V.cjs.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-7VppYVIN.js → LabelvaluelimitsbarWidget-DnpfRyHl.js} +4 -4
- package/dist/{LabelvaluelimitsbarWidget-7VppYVIN.js.map → LabelvaluelimitsbarWidget-DnpfRyHl.js.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-BZ6nwifg.js → LabelvaluelimitscolumnWidget-D4L9L5oa.js} +5 -5
- package/dist/{LabelvaluelimitscolumnWidget-BZ6nwifg.js.map → LabelvaluelimitscolumnWidget-D4L9L5oa.js.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-CtTEiWPR.cjs → LabelvaluelimitscolumnWidget-d1puBx2r.cjs} +2 -2
- package/dist/{LabelvaluelimitscolumnWidget-CtTEiWPR.cjs.map → LabelvaluelimitscolumnWidget-d1puBx2r.cjs.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-C5w7sRFw.cjs → LabelvaluerangebarWidget-BczxhVFU.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-C5w7sRFw.cjs.map → LabelvaluerangebarWidget-BczxhVFU.cjs.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-IyuXLNsw.js → LabelvaluerangebarWidget-BivnHCbE.js} +4 -4
- package/dist/{LabelvaluerangebarWidget-IyuXLNsw.js.map → LabelvaluerangebarWidget-BivnHCbE.js.map} +1 -1
- package/dist/{Layout-BqMhhhws.js → Layout-B7KU2jmu.js} +2 -2
- package/dist/{Layout-BqMhhhws.js.map → Layout-B7KU2jmu.js.map} +1 -1
- package/dist/Layout-DoI_Bpyu.cjs +2 -0
- package/dist/{Layout-DUWX7PWw.cjs.map → Layout-DoI_Bpyu.cjs.map} +1 -1
- package/dist/{LedWidget-ByRkD33m.cjs → LedWidget-BSZWv-hh.cjs} +2 -2
- package/dist/{LedWidget-ByRkD33m.cjs.map → LedWidget-BSZWv-hh.cjs.map} +1 -1
- package/dist/{LedWidget-DSxpmIOK.js → LedWidget-DpdthKEd.js} +4 -4
- package/dist/{LedWidget-DSxpmIOK.js.map → LedWidget-DpdthKEd.js.map} +1 -1
- package/dist/{LimitsbarWidget-BoPTdVV5.js → LimitsbarWidget-CLyj3Kb-.js} +2 -2
- package/dist/{LimitsbarWidget-BoPTdVV5.js.map → LimitsbarWidget-CLyj3Kb-.js.map} +1 -1
- package/dist/{LimitsbarWidget-DAZA6YDH.cjs → LimitsbarWidget-CaBnnZR-.cjs} +2 -2
- package/dist/{LimitsbarWidget-DAZA6YDH.cjs.map → LimitsbarWidget-CaBnnZR-.cjs.map} +1 -1
- package/dist/{LimitscolorWidget-Bt3qOvrv.js → LimitscolorWidget-ChvzYoug.js} +2 -2
- package/dist/{LimitscolorWidget-Bt3qOvrv.js.map → LimitscolorWidget-ChvzYoug.js.map} +1 -1
- package/dist/{LimitscolorWidget-ECUDD3Yg.cjs → LimitscolorWidget-DilOPB_Q.cjs} +2 -2
- package/dist/{LimitscolorWidget-ECUDD3Yg.cjs.map → LimitscolorWidget-DilOPB_Q.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-DrsRK8l_.cjs → LimitscolumnWidget-C8m6Sqp8.cjs} +2 -2
- package/dist/{LimitscolumnWidget-DrsRK8l_.cjs.map → LimitscolumnWidget-C8m6Sqp8.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-Ce6YnUBz.js → LimitscolumnWidget-IOhsLFZ1.js} +2 -2
- package/dist/{LimitscolumnWidget-Ce6YnUBz.js.map → LimitscolumnWidget-IOhsLFZ1.js.map} +1 -1
- package/dist/{LinegraphWidget-BK03y7ev.cjs → LinegraphWidget-DOPBUi0Y.cjs} +2 -2
- package/dist/{LinegraphWidget-BK03y7ev.cjs.map → LinegraphWidget-DOPBUi0Y.cjs.map} +1 -1
- package/dist/{LinegraphWidget-XAbg0jj2.js → LinegraphWidget-DZdqMqjw.js} +4 -4
- package/dist/{LinegraphWidget-XAbg0jj2.js.map → LinegraphWidget-DZdqMqjw.js.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-Cl1-0jWU.cjs → MatrixbycolumnsWidget-BrynJcbR.cjs} +2 -2
- package/dist/{MatrixbycolumnsWidget-Cl1-0jWU.cjs.map → MatrixbycolumnsWidget-BrynJcbR.cjs.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-5MgJFZtz.js → MatrixbycolumnsWidget-BzGYMhJ2.js} +3 -3
- package/dist/{MatrixbycolumnsWidget-5MgJFZtz.js.map → MatrixbycolumnsWidget-BzGYMhJ2.js.map} +1 -1
- package/dist/{MicroservicesTab-DlnZ9h0y.js → MicroservicesTab-DrqUNTBZ.js} +3 -3
- package/dist/{MicroservicesTab-DlnZ9h0y.js.map → MicroservicesTab-DrqUNTBZ.js.map} +1 -1
- package/dist/{MicroservicesTab-DLAy8cBq.cjs → MicroservicesTab-pL6PYFy5.cjs} +2 -2
- package/dist/{MicroservicesTab-DLAy8cBq.cjs.map → MicroservicesTab-pL6PYFy5.cjs.map} +1 -1
- package/dist/{Openc3Screen-1vPogvfj.js → Openc3Screen-CPknMmN8.js} +3 -3
- package/dist/{Openc3Screen-1vPogvfj.js.map → Openc3Screen-CPknMmN8.js.map} +1 -1
- package/dist/{Openc3Screen-DERmiz3g.cjs → Openc3Screen-CQkUFNEH.cjs} +2 -2
- package/dist/{Openc3Screen-DERmiz3g.cjs.map → Openc3Screen-CQkUFNEH.cjs.map} +1 -1
- package/dist/{OutputDialog-aZe2HT6j.js → OutputDialog-B6i5yvkr.js} +2 -2
- package/dist/{OutputDialog-aZe2HT6j.js.map → OutputDialog-B6i5yvkr.js.map} +1 -1
- package/dist/{OutputDialog-BUc85qgI.cjs → OutputDialog-BwBPgVHK.cjs} +2 -2
- package/dist/{OutputDialog-BUc85qgI.cjs.map → OutputDialog-BwBPgVHK.cjs.map} +1 -1
- package/dist/{PackagesTab-D5hNxd_X.js → PackagesTab-CjcBp95A.js} +3 -3
- package/dist/{PackagesTab-D5hNxd_X.js.map → PackagesTab-CjcBp95A.js.map} +1 -1
- package/dist/{PackagesTab-D9h8f-Rc.cjs → PackagesTab-DYoGxaWx.cjs} +2 -2
- package/dist/{PackagesTab-D9h8f-Rc.cjs.map → PackagesTab-DYoGxaWx.cjs.map} +1 -1
- package/dist/{PluginsTab-BP8DYqd-.js → PluginsTab-Diu6vzUR.js} +3 -3
- package/dist/{PluginsTab-BP8DYqd-.js.map → PluginsTab-Diu6vzUR.js.map} +1 -1
- package/dist/{PluginsTab-swaGuthJ.cjs → PluginsTab-UcluFu7J.cjs} +2 -2
- package/dist/{PluginsTab-swaGuthJ.cjs.map → PluginsTab-UcluFu7J.cjs.map} +1 -1
- package/dist/{ProgressbarWidget-CDwDOFIy.js → ProgressbarWidget-Bre-0zcS.js} +2 -2
- package/dist/{ProgressbarWidget-CDwDOFIy.js.map → ProgressbarWidget-Bre-0zcS.js.map} +1 -1
- package/dist/{ProgressbarWidget-giMKlGsU.cjs → ProgressbarWidget-BwnZ2_h4.cjs} +2 -2
- package/dist/{ProgressbarWidget-giMKlGsU.cjs.map → ProgressbarWidget-BwnZ2_h4.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-CDPV19UM.cjs → RadiobuttonWidget-BzO43-f0.cjs} +2 -2
- package/dist/{RadiobuttonWidget-CDPV19UM.cjs.map → RadiobuttonWidget-BzO43-f0.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-cQ8V8LaD.js → RadiobuttonWidget-CLbfhrkc.js} +2 -2
- package/dist/{RadiobuttonWidget-cQ8V8LaD.js.map → RadiobuttonWidget-CLbfhrkc.js.map} +1 -1
- package/dist/{RadiogroupWidget-DPYowBpl.cjs → RadiogroupWidget-CCHJJuvX.cjs} +2 -2
- package/dist/{RadiogroupWidget-DPYowBpl.cjs.map → RadiogroupWidget-CCHJJuvX.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-BvRnuGA2.js → RadiogroupWidget-DvRc70_Q.js} +2 -2
- package/dist/{RadiogroupWidget-BvRnuGA2.js.map → RadiogroupWidget-DvRc70_Q.js.map} +1 -1
- package/dist/{RangebarWidget-aHmgV0qs.js → RangebarWidget-BvzVWcfZ.js} +2 -2
- package/dist/{RangebarWidget-aHmgV0qs.js.map → RangebarWidget-BvzVWcfZ.js.map} +1 -1
- package/dist/{RangebarWidget-DtjrqC3F.cjs → RangebarWidget-DbmeAM6e.cjs} +2 -2
- package/dist/{RangebarWidget-DtjrqC3F.cjs.map → RangebarWidget-DbmeAM6e.cjs.map} +1 -1
- package/dist/{RedisTab-D1-HQK-m.js → RedisTab-BWYQfcqX.js} +2 -2
- package/dist/{RedisTab-D1-HQK-m.js.map → RedisTab-BWYQfcqX.js.map} +1 -1
- package/dist/{RedisTab-DcFz87gW.cjs → RedisTab-Dq_xGlhh.cjs} +2 -2
- package/dist/{RedisTab-DcFz87gW.cjs.map → RedisTab-Dq_xGlhh.cjs.map} +1 -1
- package/dist/{RollupWidget-Dw2GIsBR.cjs → RollupWidget-BnhD1fw1.cjs} +2 -2
- package/dist/{RollupWidget-Dw2GIsBR.cjs.map → RollupWidget-BnhD1fw1.cjs.map} +1 -1
- package/dist/{RollupWidget-D1jUPrUQ.js → RollupWidget-KT243Ed8.js} +2 -2
- package/dist/{RollupWidget-D1jUPrUQ.js.map → RollupWidget-KT243Ed8.js.map} +1 -1
- package/dist/{RoutersTab-CF0ADapt.js → RoutersTab-CLwJ6J7T.js} +3 -3
- package/dist/{RoutersTab-CF0ADapt.js.map → RoutersTab-CLwJ6J7T.js.map} +1 -1
- package/dist/{RoutersTab-DJDjAIQf.cjs → RoutersTab-DS95AQxI.cjs} +2 -2
- package/dist/{RoutersTab-DJDjAIQf.cjs.map → RoutersTab-DS95AQxI.cjs.map} +1 -1
- package/dist/{ScriptChooser-IegS44oT.js → ScriptChooser-CA2eMEE2.js} +2 -2
- package/dist/{ScriptChooser-IegS44oT.js.map → ScriptChooser-CA2eMEE2.js.map} +1 -1
- package/dist/{ScriptChooser-CPzgZtTN.cjs → ScriptChooser-D2-VTc4T.cjs} +2 -2
- package/dist/{ScriptChooser-CPzgZtTN.cjs.map → ScriptChooser-D2-VTc4T.cjs.map} +1 -1
- package/dist/{ScrollwindowWidget-Cn0o3b4E.js → ScrollwindowWidget-DcpdXyrP.js} +3 -3
- package/dist/{ScrollwindowWidget-Cn0o3b4E.js.map → ScrollwindowWidget-DcpdXyrP.js.map} +1 -1
- package/dist/{ScrollwindowWidget-C79nSa0g.cjs → ScrollwindowWidget-vnhzeIMy.cjs} +2 -2
- package/dist/{ScrollwindowWidget-C79nSa0g.cjs.map → ScrollwindowWidget-vnhzeIMy.cjs.map} +1 -1
- package/dist/{SecretsTab-BAIHxgdM.js → SecretsTab-CQNTFJAM.js} +2 -2
- package/dist/{SecretsTab-BAIHxgdM.js.map → SecretsTab-CQNTFJAM.js.map} +1 -1
- package/dist/{SecretsTab-BVpqbRn5.cjs → SecretsTab-HP8E21SW.cjs} +2 -2
- package/dist/{SecretsTab-BVpqbRn5.cjs.map → SecretsTab-HP8E21SW.cjs.map} +1 -1
- package/dist/{SettingsTab-C2k0BDcX.js → SettingsTab-BAOaLzuc.js} +3 -3
- package/dist/{SettingsTab-C2k0BDcX.js.map → SettingsTab-BAOaLzuc.js.map} +1 -1
- package/dist/{SettingsTab-J1frSo-9.cjs → SettingsTab-CMQxLfkn.cjs} +2 -2
- package/dist/{SettingsTab-J1frSo-9.cjs.map → SettingsTab-CMQxLfkn.cjs.map} +1 -1
- package/dist/{SignalWidget-BQBzqdU-.js → SignalWidget-CoTi0Uzy.js} +2 -2
- package/dist/{SignalWidget-BQBzqdU-.js.map → SignalWidget-CoTi0Uzy.js.map} +1 -1
- package/dist/{SignalWidget-sAMVlO9e.cjs → SignalWidget-DqxDT42W.cjs} +2 -2
- package/dist/{SignalWidget-sAMVlO9e.cjs.map → SignalWidget-DqxDT42W.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-sOMrzIs7.cjs → SimpleTextDialog-BdV90ARp.cjs} +2 -2
- package/dist/{SimpleTextDialog-sOMrzIs7.cjs.map → SimpleTextDialog-BdV90ARp.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-3EEsXpGl.js → SimpleTextDialog-BqVdFj1n.js} +2 -2
- package/dist/{SimpleTextDialog-3EEsXpGl.js.map → SimpleTextDialog-BqVdFj1n.js.map} +1 -1
- package/dist/SpacerWidget--x9MPrff.cjs +2 -0
- package/dist/{SpacerWidget-C5x4sFAQ.cjs.map → SpacerWidget--x9MPrff.cjs.map} +1 -1
- package/dist/SpacerWidget-CTekSgNO.js +19 -0
- package/dist/{SpacerWidget-C0RmQY3t.js.map → SpacerWidget-CTekSgNO.js.map} +1 -1
- package/dist/{SparklineWidget-CfA39olv.cjs → SparklineWidget-BHdwgOeC.cjs} +2 -2
- package/dist/{SparklineWidget-CfA39olv.cjs.map → SparklineWidget-BHdwgOeC.cjs.map} +1 -1
- package/dist/{SparklineWidget-BTH9rvcX.js → SparklineWidget-BxwPKrIr.js} +4 -4
- package/dist/{SparklineWidget-BTH9rvcX.js.map → SparklineWidget-BxwPKrIr.js.map} +1 -1
- package/dist/{TabbookWidget-C-aDdEoD.js → TabbookWidget-B6Nx3Kmt.js} +2 -2
- package/dist/{TabbookWidget-C-aDdEoD.js.map → TabbookWidget-B6Nx3Kmt.js.map} +1 -1
- package/dist/{TabbookWidget-BrPTbXrU.cjs → TabbookWidget-DuszE8ho.cjs} +2 -2
- package/dist/{TabbookWidget-BrPTbXrU.cjs.map → TabbookWidget-DuszE8ho.cjs.map} +1 -1
- package/dist/{TargetsTab-BV-eELWM.cjs → TargetsTab-B8appkxl.cjs} +2 -2
- package/dist/{TargetsTab-BV-eELWM.cjs.map → TargetsTab-B8appkxl.cjs.map} +1 -1
- package/dist/{TargetsTab-DAmlfJ9Z.js → TargetsTab-u-6nY7FX.js} +3 -3
- package/dist/{TargetsTab-DAmlfJ9Z.js.map → TargetsTab-u-6nY7FX.js.map} +1 -1
- package/dist/{TextboxWidget-Lw5glGxY.cjs → TextboxWidget-CBdukKN5.cjs} +2 -2
- package/dist/{TextboxWidget-Lw5glGxY.cjs.map → TextboxWidget-CBdukKN5.cjs.map} +1 -1
- package/dist/{TextboxWidget-Dd2ccpUQ.js → TextboxWidget-DJgAfLFU.js} +4 -4
- package/dist/{TextboxWidget-Dd2ccpUQ.js.map → TextboxWidget-DJgAfLFU.js.map} +1 -1
- package/dist/{TextfieldWidget-DY3aFTnP.js → TextfieldWidget-Bc2xGs8v.js} +2 -2
- package/dist/{TextfieldWidget-DY3aFTnP.js.map → TextfieldWidget-Bc2xGs8v.js.map} +1 -1
- package/dist/{TextfieldWidget-CTsiRDIJ.cjs → TextfieldWidget-u6w1_wqO.cjs} +2 -2
- package/dist/{TextfieldWidget-CTsiRDIJ.cjs.map → TextfieldWidget-u6w1_wqO.cjs.map} +1 -1
- package/dist/{TimeWidget-CB1jqQSZ.cjs → TimeWidget-Bmzei1k_.cjs} +2 -2
- package/dist/{TimeWidget-CB1jqQSZ.cjs.map → TimeWidget-Bmzei1k_.cjs.map} +1 -1
- package/dist/{TimeWidget-C_site21.js → TimeWidget-DO6ZuMLO.js} +2 -2
- package/dist/{TimeWidget-C_site21.js.map → TimeWidget-DO6ZuMLO.js.map} +1 -1
- package/dist/{TitleWidget-E91xUafI.cjs → TitleWidget-B8f0Sa7B.cjs} +2 -2
- package/dist/{TitleWidget-E91xUafI.cjs.map → TitleWidget-B8f0Sa7B.cjs.map} +1 -1
- package/dist/{TitleWidget-Bx81VfQD.js → TitleWidget-CkZhMme1.js} +2 -2
- package/dist/{TitleWidget-Bx81VfQD.js.map → TitleWidget-CkZhMme1.js.map} +1 -1
- package/dist/{ToolsTab-CW_TQ53O.js → ToolsTab-BI6lImcw.js} +3 -3
- package/dist/{ToolsTab-CW_TQ53O.js.map → ToolsTab-BI6lImcw.js.map} +1 -1
- package/dist/{ToolsTab-Bu3XUxr9.cjs → ToolsTab-WSIi50nR.cjs} +2 -2
- package/dist/{ToolsTab-Bu3XUxr9.cjs.map → ToolsTab-WSIi50nR.cjs.map} +1 -1
- package/dist/{TopBar-CkCLoFp7.cjs → TopBar-BwdXu4vD.cjs} +2 -2
- package/dist/{TopBar-CkCLoFp7.cjs.map → TopBar-BwdXu4vD.cjs.map} +1 -1
- package/dist/{TopBar-C9ro4_7Q.js → TopBar-h_jaZ23r.js} +2 -2
- package/dist/{TopBar-C9ro4_7Q.js.map → TopBar-h_jaZ23r.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-EaQZfck4.cjs → UpgradeToEnterpriseDialog-B2LIPuO6.cjs} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-EaQZfck4.cjs.map → UpgradeToEnterpriseDialog-B2LIPuO6.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-BH0WHey-.js → UpgradeToEnterpriseDialog-DE2DoA0l.js} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-BH0WHey-.js.map → UpgradeToEnterpriseDialog-DE2DoA0l.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CHXJm9wA.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs} +4 -4
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CHXJm9wA.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-xI8cv5P5.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js} +7 -7
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-xI8cv5P5.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js.map} +1 -1
- package/dist/{VWidget-CRqTUgEv.cjs → VWidget-DKQBzANO.cjs} +2 -2
- package/dist/{VWidget-CRqTUgEv.cjs.map → VWidget-DKQBzANO.cjs.map} +1 -1
- package/dist/{VWidget-DuUens7G.js → VWidget-DzhcRBQe.js} +2 -2
- package/dist/{VWidget-DuUens7G.js.map → VWidget-DzhcRBQe.js.map} +1 -1
- package/dist/{ValueWidget-CN-B9LDi.cjs → ValueWidget-BpS7e3Ks.cjs} +2 -2
- package/dist/{ValueWidget-CN-B9LDi.cjs.map → ValueWidget-BpS7e3Ks.cjs.map} +1 -1
- package/dist/{ValueWidget-cbjxVV3B.js → ValueWidget-tieHz2H1.js} +4 -4
- package/dist/{ValueWidget-cbjxVV3B.js.map → ValueWidget-tieHz2H1.js.map} +1 -1
- package/dist/{ValuelimitsbarWidget-BLHVD0qM.cjs → ValuelimitsbarWidget-COsc2aMd.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-BLHVD0qM.cjs.map → ValuelimitsbarWidget-COsc2aMd.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-cQb2o_xH.js → ValuelimitsbarWidget-oFqxZu0t.js} +4 -4
- package/dist/{ValuelimitsbarWidget-cQb2o_xH.js.map → ValuelimitsbarWidget-oFqxZu0t.js.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-DqGxHe2k.cjs → ValuelimitscolumnWidget-DPmkVEuC.cjs} +2 -2
- package/dist/{ValuelimitscolumnWidget-DqGxHe2k.cjs.map → ValuelimitscolumnWidget-DPmkVEuC.cjs.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-BBTuSCK9.js → ValuelimitscolumnWidget-DYBv8POg.js} +4 -4
- package/dist/{ValuelimitscolumnWidget-BBTuSCK9.js.map → ValuelimitscolumnWidget-DYBv8POg.js.map} +1 -1
- package/dist/{ValuerangebarWidget-xMsUfp1H.cjs → ValuerangebarWidget-D5zHCKXQ.cjs} +2 -2
- package/dist/{ValuerangebarWidget-xMsUfp1H.cjs.map → ValuerangebarWidget-D5zHCKXQ.cjs.map} +1 -1
- package/dist/{ValuerangebarWidget-Ct7iGtu0.js → ValuerangebarWidget-m3gFyG4v.js} +4 -4
- package/dist/{ValuerangebarWidget-Ct7iGtu0.js.map → ValuerangebarWidget-m3gFyG4v.js.map} +1 -1
- package/dist/{VerticalWidget-DJn02myf.js → VerticalWidget-CcdRZmQK.js} +2 -2
- package/dist/{VerticalWidget-DJn02myf.js.map → VerticalWidget-CcdRZmQK.js.map} +1 -1
- package/dist/{VerticalWidget-DiW_FZuh.cjs → VerticalWidget-DHWIKJUB.cjs} +2 -2
- package/dist/{VerticalWidget-DiW_FZuh.cjs.map → VerticalWidget-DHWIKJUB.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-miKFocA3.cjs → VerticalboxWidget-BHNt0RrX.cjs} +2 -2
- package/dist/{VerticalboxWidget-miKFocA3.cjs.map → VerticalboxWidget-BHNt0RrX.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-DHQMxtF3.js → VerticalboxWidget-DfsCYhrX.js} +5 -5
- package/dist/{VerticalboxWidget-DHQMxtF3.js.map → VerticalboxWidget-DfsCYhrX.js.map} +1 -1
- package/dist/{Widget-CP2CtyUr.js → Widget-B5HKasz2.js} +2 -2
- package/dist/{Widget-CP2CtyUr.js.map → Widget-B5HKasz2.js.map} +1 -1
- package/dist/{Widget-BMqF6Utz.cjs → Widget-CMzBJCGp.cjs} +2 -2
- package/dist/{Widget-BMqF6Utz.cjs.map → Widget-CMzBJCGp.cjs.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +11 -11
- package/dist/tools/admin.cjs +6 -11
- package/dist/tools/admin.cjs.map +1 -1
- package/dist/tools/admin.js +1041 -1178
- package/dist/tools/admin.js.map +1 -1
- package/dist/tools/base.cjs +1 -1
- package/dist/tools/base.js +2 -2
- package/dist/tools/calendar.cjs +1 -1
- package/dist/tools/calendar.js +1 -1
- package/dist/tools/scriptrunner.cjs +6 -6
- package/dist/tools/scriptrunner.cjs.map +1 -1
- package/dist/tools/scriptrunner.js +852 -831
- package/dist/tools/scriptrunner.js.map +1 -1
- package/dist/vue-common.css +1 -1
- package/dist/widgets.cjs +1 -1
- package/dist/widgets.js +63 -63
- package/package.json +2 -2
- package/dist/Layout-DUWX7PWw.cjs +0 -2
- package/dist/SpacerWidget-C0RmQY3t.js +0 -19
- package/dist/SpacerWidget-C5x4sFAQ.cjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputDialog-aZe2HT6j.js","sources":["../src/components/ace/AceEditorModes.js","../src/components/OutputDialog.vue"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-markdown'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n methods: {\n buildLanguageMode(HighlightRules, FoldMode) {\n let oop = ace.require('ace/lib/oop')\n let apis = Object.getOwnPropertyNames(OpenC3Api.prototype)\n .filter((a) => a !== 'constructor')\n .filter((a) => a !== 'exec')\n // Add the Public apis in api_shared but not in OpenC3Api\n .concat([\n 'check',\n 'check_raw',\n 'check_formatted',\n 'check_with_units',\n 'check_exception',\n 'check_tolerance',\n 'check_expression',\n 'wait',\n 'wait_tolerance',\n 'wait_expression',\n 'wait_check',\n 'wait_check_tolerance',\n 'wait_check_expression',\n 'wait_packet',\n 'wait_check_packet',\n 'disable_instrumentation',\n 'set_line_delay',\n 'get_line_delay',\n 'set_max_output',\n 'get_max_output',\n ])\n let regex = new RegExp(`(\\\\b${apis.join('\\\\b|\\\\b')}\\\\b)`)\n let OpenC3HighlightRules = function () {\n HighlightRules.call(this)\n // add openc3 rules to the rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(OpenC3HighlightRules, HighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let Mode = function () {\n this.HighlightRules = OpenC3HighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n return [oop, Mode]\n },\n buildRubyMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/ruby_highlight_rules').RubyHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildPythonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/python_highlight_rules').PythonHighlightRules,\n ace.require('ace/mode/folding/pythonic').FoldMode,\n )\n let PythonMode = ace.require('ace/mode/python').Mode\n oop.inherits(Mode, PythonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildJsonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/json_highlight_rules').JsonHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let JsonMode = ace.require('ace/mode/json').Mode\n oop.inherits(Mode, JsonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildMarkdownMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/markdown_highlight_rules').MarkdownHighlightRules,\n ace.require('ace/mode/folding/markdown').FoldMode,\n )\n let MarkdownMode = ace.require('ace/mode/markdown').Mode\n oop.inherits(Mode, MarkdownMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"85vw\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <div class=\"mx-2\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n data-test=\"downloadIcon\"\n @click=\"download\"\n />\n </div>\n </v-toolbar>\n <v-card-text>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-card-text>\n <v-card-actions class=\"pr-6 pb-4 pt-0\">\n <v-spacer />\n <v-btn variant=\"flat\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { AceEditorModes } from './ace'\n\nexport default {\n mixins: [AceEditorModes],\n props: {\n content: {\n type: String,\n required: true,\n },\n type: String,\n name: String,\n modelValue: Boolean,\n filename: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n editor: null,\n mode: null,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n let languageMode = null\n const fileExtension = this.filename ? this.filename.split('.').pop() : 'txt'\n switch (fileExtension) {\n case 'json':\n const JsonMode = this.buildJsonMode()\n languageMode = new JsonMode()\n this.editor.setOptions({\n useWorker: false,\n })\n break\n case 'py':\n case 'pyi':\n const PythonMode = this.buildPythonMode()\n languageMode = new PythonMode()\n break\n case 'md':\n const MarkdownMode = this.buildMarkdownMode()\n languageMode = new MarkdownMode()\n break\n default:\n // Most of the COSMOS text files are best display in Ruby\n // This includes Rakefiles, Gemfiles, etc.\n const RubyMode = this.buildRubyMode()\n languageMode = new RubyMode()\n break\n }\n this.editor.session.setMode(languageMode)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n this.editor.focus()\n this.editor.setReadOnly(true)\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n methods: {\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n let filename = `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`\n if (this.filename) {\n filename = this.filename\n }\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', filename)\n link.click()\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 75vh;\n position: relative;\n font-size: 16px;\n}\n\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["AceEditorModes","HighlightRules","FoldMode","oop","ace.require","apis","OpenC3Api","a","regex","OpenC3HighlightRules","rule","MatchingBraceOutdent","CstyleBehaviour","Mode","RubyMode","PythonMode","JsonMode","MarkdownMode","_sfc_main","value","languageMode","blob","filename","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","_cache","$event","_withCtx","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_toDisplayString","_component_v_btn","_component_v_card_text","_hoisted_3","_component_v_card_actions","_createTextVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OutputDialog-B6i5yvkr.js","sources":["../src/components/ace/AceEditorModes.js","../src/components/OutputDialog.vue"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-markdown'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n methods: {\n buildLanguageMode(HighlightRules, FoldMode) {\n let oop = ace.require('ace/lib/oop')\n let apis = Object.getOwnPropertyNames(OpenC3Api.prototype)\n .filter((a) => a !== 'constructor')\n .filter((a) => a !== 'exec')\n // Add the Public apis in api_shared but not in OpenC3Api\n .concat([\n 'check',\n 'check_raw',\n 'check_formatted',\n 'check_with_units',\n 'check_exception',\n 'check_tolerance',\n 'check_expression',\n 'wait',\n 'wait_tolerance',\n 'wait_expression',\n 'wait_check',\n 'wait_check_tolerance',\n 'wait_check_expression',\n 'wait_packet',\n 'wait_check_packet',\n 'disable_instrumentation',\n 'set_line_delay',\n 'get_line_delay',\n 'set_max_output',\n 'get_max_output',\n ])\n let regex = new RegExp(`(\\\\b${apis.join('\\\\b|\\\\b')}\\\\b)`)\n let OpenC3HighlightRules = function () {\n HighlightRules.call(this)\n // add openc3 rules to the rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(OpenC3HighlightRules, HighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let Mode = function () {\n this.HighlightRules = OpenC3HighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n return [oop, Mode]\n },\n buildRubyMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/ruby_highlight_rules').RubyHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildPythonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/python_highlight_rules').PythonHighlightRules,\n ace.require('ace/mode/folding/pythonic').FoldMode,\n )\n let PythonMode = ace.require('ace/mode/python').Mode\n oop.inherits(Mode, PythonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildJsonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/json_highlight_rules').JsonHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let JsonMode = ace.require('ace/mode/json').Mode\n oop.inherits(Mode, JsonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildMarkdownMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/markdown_highlight_rules').MarkdownHighlightRules,\n ace.require('ace/mode/folding/markdown').FoldMode,\n )\n let MarkdownMode = ace.require('ace/mode/markdown').Mode\n oop.inherits(Mode, MarkdownMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"85vw\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <div class=\"mx-2\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n data-test=\"downloadIcon\"\n @click=\"download\"\n />\n </div>\n </v-toolbar>\n <v-card-text>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-card-text>\n <v-card-actions class=\"pr-6 pb-4 pt-0\">\n <v-spacer />\n <v-btn variant=\"flat\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { AceEditorModes } from './ace'\n\nexport default {\n mixins: [AceEditorModes],\n props: {\n content: {\n type: String,\n required: true,\n },\n type: String,\n name: String,\n modelValue: Boolean,\n filename: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n editor: null,\n mode: null,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n let languageMode = null\n const fileExtension = this.filename ? this.filename.split('.').pop() : 'txt'\n switch (fileExtension) {\n case 'json':\n const JsonMode = this.buildJsonMode()\n languageMode = new JsonMode()\n this.editor.setOptions({\n useWorker: false,\n })\n break\n case 'py':\n case 'pyi':\n const PythonMode = this.buildPythonMode()\n languageMode = new PythonMode()\n break\n case 'md':\n const MarkdownMode = this.buildMarkdownMode()\n languageMode = new MarkdownMode()\n break\n default:\n // Most of the COSMOS text files are best display in Ruby\n // This includes Rakefiles, Gemfiles, etc.\n const RubyMode = this.buildRubyMode()\n languageMode = new RubyMode()\n break\n }\n this.editor.session.setMode(languageMode)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n this.editor.focus()\n this.editor.setReadOnly(true)\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n methods: {\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n let filename = `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`\n if (this.filename) {\n filename = this.filename\n }\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', filename)\n link.click()\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 75vh;\n position: relative;\n font-size: 16px;\n}\n\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["AceEditorModes","HighlightRules","FoldMode","oop","ace.require","apis","OpenC3Api","a","regex","OpenC3HighlightRules","rule","MatchingBraceOutdent","CstyleBehaviour","Mode","RubyMode","PythonMode","JsonMode","MarkdownMode","_sfc_main","value","languageMode","blob","filename","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","_cache","$event","_withCtx","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_toDisplayString","_component_v_btn","_component_v_card_text","_hoisted_3","_component_v_card_actions","_createTextVNode"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
2
|
-
//# sourceMappingURL=OutputDialog-
|
|
1
|
+
"use strict";const n=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs"),e=require("vue"),w=require("./CustomIcon-Bop2mEnu.cjs"),p={methods:{buildLanguageMode(o,t){let i=n.aceExports.require("ace/lib/oop"),a=Object.getOwnPropertyNames(n.pi.prototype).filter(s=>s!=="constructor").filter(s=>s!=="exec").concat(["check","check_raw","check_formatted","check_with_units","check_exception","check_tolerance","check_expression","wait","wait_tolerance","wait_expression","wait_check","wait_check_tolerance","wait_check_expression","wait_packet","wait_check_packet","disable_instrumentation","set_line_delay","get_line_delay","set_max_output","get_max_output"]),c=new RegExp(`(\\b${a.join("\\b|\\b")}\\b)`),r=function(){o.call(this);for(let s in this.$rules)this.$rules[s].unshift({regex:c,token:"support.function"})};i.inherits(r,o);let d=n.aceExports.require("ace/mode/matching_brace_outdent").MatchingBraceOutdent,l=n.aceExports.require("ace/mode/behaviour/cstyle").CstyleBehaviour;return[i,function(){this.HighlightRules=r,this.$outdent=new d,this.$behaviour=new l,this.foldingRules=new t,this.indentKeywords=this.foldingRules.indentKeywords}]},buildRubyMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/ruby_highlight_rules").RubyHighlightRules,n.aceExports.require("ace/mode/folding/ruby").FoldMode);let i=n.aceExports.require("ace/mode/ruby").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t},buildPythonMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/python_highlight_rules").PythonHighlightRules,n.aceExports.require("ace/mode/folding/pythonic").FoldMode);let i=n.aceExports.require("ace/mode/python").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t},buildJsonMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/json_highlight_rules").JsonHighlightRules,n.aceExports.require("ace/mode/folding/ruby").FoldMode);let i=n.aceExports.require("ace/mode/json").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t},buildMarkdownMode(){const[o,t]=this.buildLanguageMode(n.aceExports.require("ace/mode/markdown_highlight_rules").MarkdownHighlightRules,n.aceExports.require("ace/mode/folding/markdown").FoldMode);let i=n.aceExports.require("ace/mode/markdown").Mode;return o.inherits(t,i),(function(){this.$id="ace/mode/openc3"}).call(t.prototype),t}}},f={mixins:[p],props:{content:{type:String,required:!0},type:String,name:String,modelValue:Boolean,filename:{type:String,required:!1}},data(){return{editor:null,mode:null}},computed:{show:{get(){return this.modelValue},set(o){this.$emit("update:modelValue",o)}},title:function(){return`${this.type}: ${this.name}`}},mounted(){this.editor=ace.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight");let o=null;switch(this.filename?this.filename.split(".").pop():"txt"){case"json":const i=this.buildJsonMode();o=new i,this.editor.setOptions({useWorker:!1});break;case"py":case"pyi":const a=this.buildPythonMode();o=new a;break;case"md":const c=this.buildMarkdownMode();o=new c;break;default:const r=this.buildRubyMode();o=new r;break}this.editor.session.setMode(o),this.editor.session.setUseWrapMode(!0),this.editor.$blockScrolling=1/0,this.editor.setHighlightActiveLine(!1),this.editor.setValue(this.content),this.editor.clearSelection(),this.editor.focus(),this.editor.setReadOnly(!0)},beforeUnmount(){this.editor&&this.editor.destroy()},methods:{close:function(){this.show=!this.show},download:function(){const o=new Blob([this.editor.getValue()],{type:"text/plain"});let t=`${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`;this.filename&&(t=this.filename);const i=document.createElement("a");i.href=URL.createObjectURL(o),i.setAttribute("download",t),i.click()}}},b=["textContent"],M={class:"mx-2"},x={ref:"editor",class:"editor"};function y(o,t,i,a,c,r){const d=e.resolveComponent("v-spacer"),l=e.resolveComponent("v-btn"),u=e.resolveComponent("v-toolbar"),s=e.resolveComponent("v-card-text"),_=e.resolveComponent("v-card-actions"),m=e.resolveComponent("v-card"),g=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(g,{modelValue:r.show,"onUpdate:modelValue":t[1]||(t[1]=h=>r.show=h),width:"85vw"},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(u,{height:"24"},{default:e.withCtx(()=>[e.createVNode(d),e.createElementVNode("span",{textContent:e.toDisplayString(r.title)},null,8,b),e.createVNode(d),e.createElementVNode("div",M,[e.createVNode(l,{icon:"mdi-download",variant:"text",density:"compact","data-test":"downloadIcon",onClick:r.download},null,8,["onClick"])])]),_:1}),e.createVNode(s,null,{default:e.withCtx(()=>[e.createElementVNode("pre",x,null,512)]),_:1}),e.createVNode(_,{class:"pr-6 pb-4 pt-0"},{default:e.withCtx(()=>[e.createVNode(d),e.createVNode(l,{variant:"flat",onClick:t[0]||(t[0]=h=>r.show=!r.show)},{default:e.withCtx(()=>t[2]||(t[2]=[e.createTextVNode(" Ok ")])),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])}const k=w._export_sfc(f,[["render",y],["__scopeId","data-v-69e71dd8"]]);exports.AceEditorModes=p;exports.OutputDialog=k;
|
|
2
|
+
//# sourceMappingURL=OutputDialog-BwBPgVHK.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutputDialog-BUc85qgI.cjs","sources":["../src/components/ace/AceEditorModes.js","../src/components/OutputDialog.vue"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-markdown'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n methods: {\n buildLanguageMode(HighlightRules, FoldMode) {\n let oop = ace.require('ace/lib/oop')\n let apis = Object.getOwnPropertyNames(OpenC3Api.prototype)\n .filter((a) => a !== 'constructor')\n .filter((a) => a !== 'exec')\n // Add the Public apis in api_shared but not in OpenC3Api\n .concat([\n 'check',\n 'check_raw',\n 'check_formatted',\n 'check_with_units',\n 'check_exception',\n 'check_tolerance',\n 'check_expression',\n 'wait',\n 'wait_tolerance',\n 'wait_expression',\n 'wait_check',\n 'wait_check_tolerance',\n 'wait_check_expression',\n 'wait_packet',\n 'wait_check_packet',\n 'disable_instrumentation',\n 'set_line_delay',\n 'get_line_delay',\n 'set_max_output',\n 'get_max_output',\n ])\n let regex = new RegExp(`(\\\\b${apis.join('\\\\b|\\\\b')}\\\\b)`)\n let OpenC3HighlightRules = function () {\n HighlightRules.call(this)\n // add openc3 rules to the rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(OpenC3HighlightRules, HighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let Mode = function () {\n this.HighlightRules = OpenC3HighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n return [oop, Mode]\n },\n buildRubyMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/ruby_highlight_rules').RubyHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildPythonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/python_highlight_rules').PythonHighlightRules,\n ace.require('ace/mode/folding/pythonic').FoldMode,\n )\n let PythonMode = ace.require('ace/mode/python').Mode\n oop.inherits(Mode, PythonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildJsonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/json_highlight_rules').JsonHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let JsonMode = ace.require('ace/mode/json').Mode\n oop.inherits(Mode, JsonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildMarkdownMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/markdown_highlight_rules').MarkdownHighlightRules,\n ace.require('ace/mode/folding/markdown').FoldMode,\n )\n let MarkdownMode = ace.require('ace/mode/markdown').Mode\n oop.inherits(Mode, MarkdownMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"85vw\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <div class=\"mx-2\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n data-test=\"downloadIcon\"\n @click=\"download\"\n />\n </div>\n </v-toolbar>\n <v-card-text>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-card-text>\n <v-card-actions class=\"pr-6 pb-4 pt-0\">\n <v-spacer />\n <v-btn variant=\"flat\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { AceEditorModes } from './ace'\n\nexport default {\n mixins: [AceEditorModes],\n props: {\n content: {\n type: String,\n required: true,\n },\n type: String,\n name: String,\n modelValue: Boolean,\n filename: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n editor: null,\n mode: null,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n let languageMode = null\n const fileExtension = this.filename ? this.filename.split('.').pop() : 'txt'\n switch (fileExtension) {\n case 'json':\n const JsonMode = this.buildJsonMode()\n languageMode = new JsonMode()\n this.editor.setOptions({\n useWorker: false,\n })\n break\n case 'py':\n case 'pyi':\n const PythonMode = this.buildPythonMode()\n languageMode = new PythonMode()\n break\n case 'md':\n const MarkdownMode = this.buildMarkdownMode()\n languageMode = new MarkdownMode()\n break\n default:\n // Most of the COSMOS text files are best display in Ruby\n // This includes Rakefiles, Gemfiles, etc.\n const RubyMode = this.buildRubyMode()\n languageMode = new RubyMode()\n break\n }\n this.editor.session.setMode(languageMode)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n this.editor.focus()\n this.editor.setReadOnly(true)\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n methods: {\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n let filename = `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`\n if (this.filename) {\n filename = this.filename\n }\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', filename)\n link.click()\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 75vh;\n position: relative;\n font-size: 16px;\n}\n\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["AceEditorModes","HighlightRules","FoldMode","oop","ace.require","apis","OpenC3Api","a","regex","OpenC3HighlightRules","rule","MatchingBraceOutdent","CstyleBehaviour","Mode","RubyMode","PythonMode","JsonMode","MarkdownMode","_sfc_main","value","languageMode","blob","filename","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","_cache","$event","_withCtx","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_toDisplayString","_component_v_btn","_component_v_card_text","_hoisted_3","_component_v_card_actions","_createTextVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OutputDialog-BwBPgVHK.cjs","sources":["../src/components/ace/AceEditorModes.js","../src/components/OutputDialog.vue"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-markdown'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n methods: {\n buildLanguageMode(HighlightRules, FoldMode) {\n let oop = ace.require('ace/lib/oop')\n let apis = Object.getOwnPropertyNames(OpenC3Api.prototype)\n .filter((a) => a !== 'constructor')\n .filter((a) => a !== 'exec')\n // Add the Public apis in api_shared but not in OpenC3Api\n .concat([\n 'check',\n 'check_raw',\n 'check_formatted',\n 'check_with_units',\n 'check_exception',\n 'check_tolerance',\n 'check_expression',\n 'wait',\n 'wait_tolerance',\n 'wait_expression',\n 'wait_check',\n 'wait_check_tolerance',\n 'wait_check_expression',\n 'wait_packet',\n 'wait_check_packet',\n 'disable_instrumentation',\n 'set_line_delay',\n 'get_line_delay',\n 'set_max_output',\n 'get_max_output',\n ])\n let regex = new RegExp(`(\\\\b${apis.join('\\\\b|\\\\b')}\\\\b)`)\n let OpenC3HighlightRules = function () {\n HighlightRules.call(this)\n // add openc3 rules to the rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(OpenC3HighlightRules, HighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let Mode = function () {\n this.HighlightRules = OpenC3HighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n return [oop, Mode]\n },\n buildRubyMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/ruby_highlight_rules').RubyHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildPythonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/python_highlight_rules').PythonHighlightRules,\n ace.require('ace/mode/folding/pythonic').FoldMode,\n )\n let PythonMode = ace.require('ace/mode/python').Mode\n oop.inherits(Mode, PythonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildJsonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/json_highlight_rules').JsonHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let JsonMode = ace.require('ace/mode/json').Mode\n oop.inherits(Mode, JsonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildMarkdownMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/markdown_highlight_rules').MarkdownHighlightRules,\n ace.require('ace/mode/folding/markdown').FoldMode,\n )\n let MarkdownMode = ace.require('ace/mode/markdown').Mode\n oop.inherits(Mode, MarkdownMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"85vw\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <div class=\"mx-2\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n density=\"compact\"\n data-test=\"downloadIcon\"\n @click=\"download\"\n />\n </div>\n </v-toolbar>\n <v-card-text>\n <pre ref=\"editor\" class=\"editor\"></pre>\n </v-card-text>\n <v-card-actions class=\"pr-6 pb-4 pt-0\">\n <v-spacer />\n <v-btn variant=\"flat\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { AceEditorModes } from './ace'\n\nexport default {\n mixins: [AceEditorModes],\n props: {\n content: {\n type: String,\n required: true,\n },\n type: String,\n name: String,\n modelValue: Boolean,\n filename: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n editor: null,\n mode: null,\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n let languageMode = null\n const fileExtension = this.filename ? this.filename.split('.').pop() : 'txt'\n switch (fileExtension) {\n case 'json':\n const JsonMode = this.buildJsonMode()\n languageMode = new JsonMode()\n this.editor.setOptions({\n useWorker: false,\n })\n break\n case 'py':\n case 'pyi':\n const PythonMode = this.buildPythonMode()\n languageMode = new PythonMode()\n break\n case 'md':\n const MarkdownMode = this.buildMarkdownMode()\n languageMode = new MarkdownMode()\n break\n default:\n // Most of the COSMOS text files are best display in Ruby\n // This includes Rakefiles, Gemfiles, etc.\n const RubyMode = this.buildRubyMode()\n languageMode = new RubyMode()\n break\n }\n this.editor.session.setMode(languageMode)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n this.editor.focus()\n this.editor.setReadOnly(true)\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n methods: {\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n let filename = `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`\n if (this.filename) {\n filename = this.filename\n }\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', filename)\n link.click()\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 75vh;\n position: relative;\n font-size: 16px;\n}\n\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["AceEditorModes","HighlightRules","FoldMode","oop","ace.require","apis","OpenC3Api","a","regex","OpenC3HighlightRules","rule","MatchingBraceOutdent","CstyleBehaviour","Mode","RubyMode","PythonMode","JsonMode","MarkdownMode","_sfc_main","value","languageMode","blob","filename","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","_cache","$event","_withCtx","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_toDisplayString","_component_v_btn","_component_v_card_text","_hoisted_3","_component_v_card_actions","_createTextVNode"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as g } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
import { l as g } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js";
|
|
2
2
|
import { resolveComponent as n, createElementBlock as p, openBlock as u, createVNode as e, createBlock as I, createCommentVNode as U, withCtx as t, createElementVNode as f, createTextVNode as c, Fragment as x, renderList as P, createSlots as L, toDisplayString as h, normalizeClass as N, mergeProps as R } from "vue";
|
|
3
3
|
import { _ as $ } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
import "single-spa";
|
|
5
|
-
import { S as B } from "./SimpleTextDialog-
|
|
5
|
+
import { S as B } from "./SimpleTextDialog-BqVdFj1n.js";
|
|
6
6
|
import { DownloadDialog as M } from "./tools/admin.js";
|
|
7
7
|
import { f as j, t as A } from "./format-CVeawcIv.js";
|
|
8
8
|
const G = {
|
|
@@ -310,4 +310,4 @@ const Z = /* @__PURE__ */ $(G, [["render", E], ["__scopeId", "data-v-e97741ba"]]
|
|
|
310
310
|
export {
|
|
311
311
|
Z as default
|
|
312
312
|
};
|
|
313
|
-
//# sourceMappingURL=PackagesTab-
|
|
313
|
+
//# sourceMappingURL=PackagesTab-CjcBp95A.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackagesTab-D5hNxd_X.js","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_hoisted_1","_hoisted_2","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","props","_mergeProps","$event","_component_v_divider","_createCommentVNode","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PackagesTab-CjcBp95A.js","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_hoisted_1","_hoisted_2","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","props","_mergeProps","$event","_component_v_divider","_createCommentVNode","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
2
|
-
//# sourceMappingURL=PackagesTab-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CKn4Dnn-.cjs"),e=require("vue"),y=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const N=require("./SimpleTextDialog-BdV90ARp.cjs"),P=require("./tools/admin.cjs"),C=require("./format-B22VpiOS.cjs"),D={components:{DownloadDialog:P.DownloadDialog,SimpleTextDialog:N.SimpleTextDialog},data(){return{showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",files:[],loadingPackage:!1,progress:0,gems:[],python:[],processes:{}}},mounted(){this.update(),this.updateProcesses()},methods:{showOutput:function(n){this.processOutput=n.output,this.showProcessOutput=!0},update(){d.li.get("/openc3-api/packages").then(n=>{this.gems=n.data.ruby,this.python=n.data.python})},updateProcesses:function(){d.li.get("/openc3-api/process_status/package_?substr=true").then(n=>{this.processes=n.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},2500)})},formatDate(n){return C.format(C.toDate(parseInt(n)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},selectFile(){this.progress=0,this.$refs.fileInput.click()},fileChange(n){const t=n.target.files;if(t.length>0){this.loadingPackage=!0;let g=this;const h=[...t].map(l=>{const a=new FormData;return a.append("package",l,l.name),d.li.post("/openc3-api/packages",{data:a,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(r){let s=Math.round(r.loaded*100/r.total);g.progress=s}})});Promise.all(h).then(l=>{this.$notify.normal({body:`Uploaded ${l.length} package${l.length>1?"s":""}`}),this.loadingPackage=!1,this.files=[],setTimeout(()=>{this.updateProcesses()},2500)}).catch(l=>{this.loadingPackage=!1})}},deletePackage(n){this.$dialog.confirm(`Are you sure you want to remove: ${n}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>d.li.delete(`/openc3-api/packages/${n}`)).then(t=>{this.$notify.normal({body:`Removed package ${n}`}),setTimeout(()=>{this.updateProcesses()},2500)}).catch(t=>{this.$notify.serious({body:`Failed to remove package ${n}`})})}}},b=["textContent"],T=["textContent"];function B(n,t,g,h,l,a){const r=e.resolveComponent("v-btn"),s=e.resolveComponent("v-col"),x=e.resolveComponent("rux-progress"),c=e.resolveComponent("v-row"),u=e.resolveComponent("v-list-item-title"),v=e.resolveComponent("v-list-item-subtitle"),k=e.resolveComponent("v-tooltip"),p=e.resolveComponent("v-list-item"),m=e.resolveComponent("v-divider"),_=e.resolveComponent("v-list"),w=e.resolveComponent("download-dialog"),V=e.resolveComponent("simple-text-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(c,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(s,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(r,{onClick:a.selectFile},{default:e.withCtx(()=>t[3]||(t[3]=[e.createTextVNode("Install Package")])),_:1},8,["onClick"]),e.createElementVNode("input",{ref:"fileInput",style:{display:"none"},type:"file",onChange:t[0]||(t[0]=(...o)=>a.fileChange&&a.fileChange(...o))},null,544)]),_:1}),e.createVNode(s,{class:"ml-4 mr-2",cols:"4"},{default:e.withCtx(()=>[e.createVNode(x,{value:l.progress},null,8,["value"])]),_:1})]),_:1}),Object.keys(l.processes).length>0?(e.openBlock(),e.createBlock(_,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(c,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>t[4]||(t[4]=[e.createTextVNode("Process List")])),_:1}),e.createVNode(s,{align:"right"},{default:e.withCtx(()=>t[5]||(t[5]=[e.createElementVNode("div",null,"Showing last 10 min of activity",-1)])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.processes,o=>(e.openBlock(),e.createElementBlock("div",{key:o.name},[e.createVNode(p,null,e.createSlots({default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(o.state.toLowerCase()),textContent:e.toDisplayString(`Processing ${o.process_type}: ${o.detail} - ${o.state}`)},null,10,b)]),_:2},1024),e.createVNode(v,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+a.formatDate(o.updated_at))},null,8,T)]),_:2},1024)]),_:2},[o.state!=="Running"?{name:"append",fn:e.withCtx(()=>[e.createVNode(k,{"open-delay":600,location:"top"},{activator:e.withCtx(({props:i})=>[e.createVNode(r,e.mergeProps({ref_for:!0},i,{icon:"mdi-eye",variant:"text","aria-label":"Show Output",onClick:f=>a.showOutput(o)}),null,16,["onClick"])]),default:e.withCtx(()=>[t[6]||(t[6]=e.createElementVNode("span",null,"Show Output",-1))]),_:2},1024)]),key:"0"}:void 0]),1024),e.createVNode(m)]))),128))]),_:1})):e.createCommentVNode("",!0),e.createVNode(_,{class:"list","data-test":"packageList"},{default:e.withCtx(()=>[e.createVNode(c,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>t[7]||(t[7]=[e.createTextVNode("Ruby Gems")])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.gems,(o,i)=>(e.openBlock(),e.createElementBlock("div",{key:i},[e.createVNode(p,null,{append:e.withCtx(()=>[e.createVNode(r,{icon:"mdi-delete",variant:"text","aria-label":"Delete Ruby Gem",onClick:f=>a.deletePackage(o)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o),1)]),_:2},1024)]),_:2},1024),e.createVNode(m)]))),128)),e.createVNode(c,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>t[8]||(t[8]=[e.createTextVNode("Python Packages")])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.python,(o,i)=>(e.openBlock(),e.createElementBlock("div",{key:i},[e.createVNode(p,null,{append:e.withCtx(()=>[e.createVNode(r,{icon:"mdi-delete",variant:"text","aria-label":"Delete Python Package",onClick:f=>a.deletePackage(o)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o),1)]),_:2},1024)]),_:2},1024),e.createVNode(m)]))),128))]),_:1}),e.createVNode(w,{modelValue:l.showDownloadDialog,"onUpdate:modelValue":t[1]||(t[1]=o=>l.showDownloadDialog=o)},null,8,["modelValue"]),e.createVNode(V,{modelValue:l.showProcessOutput,"onUpdate:modelValue":t[2]||(t[2]=o=>l.showProcessOutput=o),title:"Process Output",text:l.processOutput},null,8,["modelValue","text"])])}const S=y._export_sfc(D,[["render",B],["__scopeId","data-v-e97741ba"]]);exports.default=S;
|
|
2
|
+
//# sourceMappingURL=PackagesTab-DYoGxaWx.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackagesTab-D9h8f-Rc.cjs","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_hoisted_1","_hoisted_2","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","props","_mergeProps","$event","_component_v_divider","_createCommentVNode","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PackagesTab-DYoGxaWx.cjs","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n ref=\"fileInput\"\n style=\"display: none\"\n type=\"file\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\">\n <v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-if=\"process.state !== 'Running'\" #append>\n <v-tooltip :open-delay=\"600\" location=\"top\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n icon=\"mdi-eye\"\n variant=\"text\"\n aria-label=\"Show Output\"\n @click=\"showOutput(process)\"\n />\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Ruby Gem\"\n @click=\"deletePackage(gem)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template #append>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n aria-label=\"Delete Python Package\"\n @click=\"deletePackage(pkg)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_hoisted_1","_hoisted_2","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","props","_mergeProps","$event","_component_v_divider","_createCommentVNode","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
import { l as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Vn0OLZcG.js";
|
|
2
2
|
import { resolveComponent as p, createElementBlock as m, openBlock as d, createVNode as i, createBlock as P, createCommentVNode as x, withCtx as a, createElementVNode as f, createTextVNode as _, toDisplayString as v, Fragment as y, renderList as D, normalizeClass as E, mergeProps as S, withModifiers as H } from "vue";
|
|
3
3
|
import { _ as z } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
import "single-spa";
|
|
5
|
-
import { S as J } from "./SimpleTextDialog-
|
|
5
|
+
import { S as J } from "./SimpleTextDialog-BqVdFj1n.js";
|
|
6
6
|
import { ModifiedPluginDialog as q, PluginDialog as G } from "./tools/admin.js";
|
|
7
7
|
import { f as K, t as Q } from "./format-CVeawcIv.js";
|
|
8
8
|
const W = {
|
|
@@ -557,4 +557,4 @@ const pt = /* @__PURE__ */ z(W, [["render", et], ["__scopeId", "data-v-205c6e8a"
|
|
|
557
557
|
export {
|
|
558
558
|
pt as default
|
|
559
559
|
};
|
|
560
|
-
//# sourceMappingURL=PluginsTab-
|
|
560
|
+
//# sourceMappingURL=PluginsTab-Diu6vzUR.js.map
|