@openc3/vue-common 6.4.0 → 6.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ArrayWidget-Ba-YDfZB.cjs → ArrayWidget-C7qsXQC9.cjs} +2 -2
- package/dist/{ArrayWidget-Ba-YDfZB.cjs.map → ArrayWidget-C7qsXQC9.cjs.map} +1 -1
- package/dist/{ArrayWidget-DAZApfkV.js → ArrayWidget-CeyoPOhk.js} +4 -4
- package/dist/{ArrayWidget-DAZApfkV.js.map → ArrayWidget-CeyoPOhk.js.map} +1 -1
- package/dist/{ArrayplotWidget-BfsxDplv.js → ArrayplotWidget-BEw4fJPY.js} +3 -3
- package/dist/{ArrayplotWidget-BfsxDplv.js.map → ArrayplotWidget-BEw4fJPY.js.map} +1 -1
- package/dist/{ArrayplotWidget-Ckm4lmSc.cjs → ArrayplotWidget-S4tyM6zU.cjs} +2 -2
- package/dist/{ArrayplotWidget-Ckm4lmSc.cjs.map → ArrayplotWidget-S4tyM6zU.cjs.map} +1 -1
- package/dist/{BarColumn-Cp7oEFJR.cjs → BarColumn-B2FQVNoP.cjs} +2 -2
- package/dist/{BarColumn-Cp7oEFJR.cjs.map → BarColumn-B2FQVNoP.cjs.map} +1 -1
- package/dist/{BarColumn-q0nAsvrd.js → BarColumn-CIWppEH6.js} +3 -3
- package/dist/{BarColumn-q0nAsvrd.js.map → BarColumn-CIWppEH6.js.map} +1 -1
- package/dist/{BlockWidget-SDCUWcMQ.js → BlockWidget-DRtBkPat.js} +4 -4
- package/dist/{BlockWidget-SDCUWcMQ.js.map → BlockWidget-DRtBkPat.js.map} +1 -1
- package/dist/{BlockWidget-DRB-TDL_.cjs → BlockWidget-EZBTae9s.cjs} +2 -2
- package/dist/{BlockWidget-DRB-TDL_.cjs.map → BlockWidget-EZBTae9s.cjs.map} +1 -1
- package/dist/{ButtonWidget-BVMjwC19.js → ButtonWidget-4GORf9BG.js} +4 -4
- package/dist/{ButtonWidget-BVMjwC19.js.map → ButtonWidget-4GORf9BG.js.map} +1 -1
- package/dist/{ButtonWidget-yJ70adEU.cjs → ButtonWidget-C0UM4M51.cjs} +2 -2
- package/dist/{ButtonWidget-yJ70adEU.cjs.map → ButtonWidget-C0UM4M51.cjs.map} +1 -1
- package/dist/{CanvasWidget-DXkxnt1x.cjs → CanvasWidget-77u4rg8R.cjs} +2 -2
- package/dist/{CanvasWidget-DXkxnt1x.cjs.map → CanvasWidget-77u4rg8R.cjs.map} +1 -1
- package/dist/{CanvasWidget-bVkufjRQ.js → CanvasWidget-VW1uHIU0.js} +2 -2
- package/dist/{CanvasWidget-bVkufjRQ.js.map → CanvasWidget-VW1uHIU0.js.map} +1 -1
- package/dist/{CanvasdotWidget-Bi3nZh7g.cjs → CanvasdotWidget-B4olJsKr.cjs} +2 -2
- package/dist/{CanvasdotWidget-Bi3nZh7g.cjs.map → CanvasdotWidget-B4olJsKr.cjs.map} +1 -1
- package/dist/{CanvasdotWidget-DpniFfca.js → CanvasdotWidget-unc83V9l.js} +2 -2
- package/dist/{CanvasdotWidget-DpniFfca.js.map → CanvasdotWidget-unc83V9l.js.map} +1 -1
- package/dist/{CanvasimageWidget-C-aBl-by.cjs → CanvasimageWidget-BPk3GdGV.cjs} +2 -2
- package/dist/{CanvasimageWidget-C-aBl-by.cjs.map → CanvasimageWidget-BPk3GdGV.cjs.map} +1 -1
- package/dist/{CanvasimageWidget-DHOSz-dJ.js → CanvasimageWidget-CNPV5Ale.js} +3 -3
- package/dist/{CanvasimageWidget-DHOSz-dJ.js.map → CanvasimageWidget-CNPV5Ale.js.map} +1 -1
- package/dist/{CanvasimagevalueWidget-DAbbV-LB.cjs → CanvasimagevalueWidget-DpPDDitX.cjs} +2 -2
- package/dist/{CanvasimagevalueWidget-DAbbV-LB.cjs.map → CanvasimagevalueWidget-DpPDDitX.cjs.map} +1 -1
- package/dist/{CanvasimagevalueWidget-zrURWWUL.js → CanvasimagevalueWidget-DsQbSZt_.js} +3 -3
- package/dist/{CanvasimagevalueWidget-zrURWWUL.js.map → CanvasimagevalueWidget-DsQbSZt_.js.map} +1 -1
- package/dist/{CanvaslabelWidget-D-XAMifp.js → CanvaslabelWidget-B-5KAkZr.js} +2 -2
- package/dist/{CanvaslabelWidget-D-XAMifp.js.map → CanvaslabelWidget-B-5KAkZr.js.map} +1 -1
- package/dist/{CanvaslabelWidget-82bf_Awf.cjs → CanvaslabelWidget-CjKvr47x.cjs} +2 -2
- package/dist/{CanvaslabelWidget-82bf_Awf.cjs.map → CanvaslabelWidget-CjKvr47x.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-DgDzwLdi.cjs → CanvaslabelvalueWidget-C0jdjHxr.cjs} +2 -2
- package/dist/{CanvaslabelvalueWidget-DgDzwLdi.cjs.map → CanvaslabelvalueWidget-C0jdjHxr.cjs.map} +1 -1
- package/dist/{CanvaslabelvalueWidget-BsIdBtEb.js → CanvaslabelvalueWidget-DX-b_55r.js} +2 -2
- package/dist/{CanvaslabelvalueWidget-BsIdBtEb.js.map → CanvaslabelvalueWidget-DX-b_55r.js.map} +1 -1
- package/dist/{CanvaslineWidget-BRRPuuqS.cjs → CanvaslineWidget-C-4EjDkj.cjs} +2 -2
- package/dist/{CanvaslineWidget-BRRPuuqS.cjs.map → CanvaslineWidget-C-4EjDkj.cjs.map} +1 -1
- package/dist/{CanvaslineWidget-CA2aPGRg.js → CanvaslineWidget-DiNWzbpu.js} +2 -2
- package/dist/{CanvaslineWidget-CA2aPGRg.js.map → CanvaslineWidget-DiNWzbpu.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-J7epKRlo.js → CanvaslinevalueWidget-Du9pwAN7.js} +2 -2
- package/dist/{CanvaslinevalueWidget-J7epKRlo.js.map → CanvaslinevalueWidget-Du9pwAN7.js.map} +1 -1
- package/dist/{CanvaslinevalueWidget-BYjWr2gq.cjs → CanvaslinevalueWidget-x81dANpk.cjs} +2 -2
- package/dist/{CanvaslinevalueWidget-BYjWr2gq.cjs.map → CanvaslinevalueWidget-x81dANpk.cjs.map} +1 -1
- package/dist/{CheckbuttonWidget-ByH-PDRG.js → CheckbuttonWidget--QM-segm.js} +2 -2
- package/dist/{CheckbuttonWidget-ByH-PDRG.js.map → CheckbuttonWidget--QM-segm.js.map} +1 -1
- package/dist/{CheckbuttonWidget-DkoFFTcM.cjs → CheckbuttonWidget-LWSGbUuH.cjs} +2 -2
- package/dist/{CheckbuttonWidget-DkoFFTcM.cjs.map → CheckbuttonWidget-LWSGbUuH.cjs.map} +1 -1
- package/dist/{ComboboxWidget-Bdm_fMzW.js → ComboboxWidget-BDpHIcCo.js} +2 -2
- package/dist/{ComboboxWidget-Bdm_fMzW.js.map → ComboboxWidget-BDpHIcCo.js.map} +1 -1
- package/dist/{ComboboxWidget-Dq28F4bs.cjs → ComboboxWidget-DR8EmM6T.cjs} +2 -2
- package/dist/{ComboboxWidget-Dq28F4bs.cjs.map → ComboboxWidget-DR8EmM6T.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-CLF7hYKu.cjs → CriticalCmdDialog-Ct5WeIW_.cjs} +2 -2
- package/dist/{CriticalCmdDialog-CLF7hYKu.cjs.map → CriticalCmdDialog-Ct5WeIW_.cjs.map} +1 -1
- package/dist/{CriticalCmdDialog-Bcq8PGag.js → CriticalCmdDialog-D4-eoA3P.js} +2 -2
- package/dist/{CriticalCmdDialog-Bcq8PGag.js.map → CriticalCmdDialog-D4-eoA3P.js.map} +1 -1
- package/dist/{DateWidget-BaQqthC7.js → DateWidget-BCmQNavZ.js} +2 -2
- package/dist/{DateWidget-BaQqthC7.js.map → DateWidget-BCmQNavZ.js.map} +1 -1
- package/dist/{DateWidget-DCayVS3o.cjs → DateWidget-CBzHYk5i.cjs} +2 -2
- package/dist/{DateWidget-DCayVS3o.cjs.map → DateWidget-CBzHYk5i.cjs.map} +1 -1
- package/dist/{DetailsDialog-C5jf8o0K.js → DetailsDialog-OMd7LWdZ.js} +2 -2
- package/dist/{DetailsDialog-C5jf8o0K.js.map → DetailsDialog-OMd7LWdZ.js.map} +1 -1
- package/dist/{DetailsDialog-CangkVuF.cjs → DetailsDialog-T9G076-B.cjs} +2 -2
- package/dist/{DetailsDialog-CangkVuF.cjs.map → DetailsDialog-T9G076-B.cjs.map} +1 -1
- package/dist/EventListDialog-COOwwkxk.cjs +2 -0
- package/dist/EventListDialog-COOwwkxk.cjs.map +1 -0
- package/dist/{EventListDialog-Bniar26O.js → EventListDialog-ankpCg-n.js} +58 -54
- package/dist/EventListDialog-ankpCg-n.js.map +1 -0
- package/dist/{FormatvalueWidget--H5B9i_Y.js → FormatvalueWidget-CPn5mDHY.js} +3 -3
- package/dist/{FormatvalueWidget--H5B9i_Y.js.map → FormatvalueWidget-CPn5mDHY.js.map} +1 -1
- package/dist/{FormatvalueWidget-CDh1rF5P.cjs → FormatvalueWidget-wjsl4ty0.cjs} +2 -2
- package/dist/{FormatvalueWidget-CDh1rF5P.cjs.map → FormatvalueWidget-wjsl4ty0.cjs.map} +1 -1
- package/dist/{Graph-DIR-5tJu.cjs → Graph-hTOB_jv2.cjs} +2 -2
- package/dist/{Graph-DIR-5tJu.cjs.map → Graph-hTOB_jv2.cjs.map} +1 -1
- package/dist/{Graph-M382Zo8o.js → Graph-vUcIyyTp.js} +2 -2
- package/dist/{Graph-M382Zo8o.js.map → Graph-vUcIyyTp.js.map} +1 -1
- package/dist/{GraphWidget-_YOGDD1U.js → GraphWidget-Cl97QQYm.js} +2 -2
- package/dist/{GraphWidget-_YOGDD1U.js.map → GraphWidget-Cl97QQYm.js.map} +1 -1
- package/dist/{GraphWidget-CNUOLw5-.cjs → GraphWidget-D3rDXvA8.cjs} +2 -2
- package/dist/{GraphWidget-CNUOLw5-.cjs.map → GraphWidget-D3rDXvA8.cjs.map} +1 -1
- package/dist/{HorizontalWidget-Bix4q7It.cjs → HorizontalWidget-72nrDrwn.cjs} +2 -2
- package/dist/{HorizontalWidget-Bix4q7It.cjs.map → HorizontalWidget-72nrDrwn.cjs.map} +1 -1
- package/dist/{HorizontalWidget-D_gzrOWs.js → HorizontalWidget-CtTkQHl-.js} +2 -2
- package/dist/{HorizontalWidget-D_gzrOWs.js.map → HorizontalWidget-CtTkQHl-.js.map} +1 -1
- package/dist/{HorizontalboxWidget-B8a4-h2J.cjs → HorizontalboxWidget-C8kuEm-u.cjs} +2 -2
- package/dist/{HorizontalboxWidget-B8a4-h2J.cjs.map → HorizontalboxWidget-C8kuEm-u.cjs.map} +1 -1
- package/dist/{HorizontalboxWidget-GDcjO-UB.js → HorizontalboxWidget-Dn9zVn4r.js} +5 -5
- package/dist/{HorizontalboxWidget-GDcjO-UB.js.map → HorizontalboxWidget-Dn9zVn4r.js.map} +1 -1
- package/dist/{HorizontallineWidget-DZvOYFxf.js → HorizontallineWidget-BBvYWaP7.js} +2 -2
- package/dist/{HorizontallineWidget-DZvOYFxf.js.map → HorizontallineWidget-BBvYWaP7.js.map} +1 -1
- package/dist/{HorizontallineWidget-BD6dqVhE.cjs → HorizontallineWidget-Bs_p5rzY.cjs} +2 -2
- package/dist/{HorizontallineWidget-BD6dqVhE.cjs.map → HorizontallineWidget-Bs_p5rzY.cjs.map} +1 -1
- package/dist/{IframeWidget-DL_CET3B.cjs → IframeWidget-Bhl0G51c.cjs} +2 -2
- package/dist/{IframeWidget-DL_CET3B.cjs.map → IframeWidget-Bhl0G51c.cjs.map} +1 -1
- package/dist/{IframeWidget-CuUav9b3.js → IframeWidget-BmZOip3U.js} +2 -2
- package/dist/{IframeWidget-CuUav9b3.js.map → IframeWidget-BmZOip3U.js.map} +1 -1
- package/dist/{ImageLoader-DaWMqoJS.cjs → ImageLoader-CXV42ZAx.cjs} +2 -2
- package/dist/{ImageLoader-DaWMqoJS.cjs.map → ImageLoader-CXV42ZAx.cjs.map} +1 -1
- package/dist/{ImageLoader-3KLKJ5mV.js → ImageLoader-wYNaGuuz.js} +2 -2
- package/dist/{ImageLoader-3KLKJ5mV.js.map → ImageLoader-wYNaGuuz.js.map} +1 -1
- package/dist/{ImageviewerWidget-_0YopZ1s.cjs → ImageviewerWidget-BAK_GlYK.cjs} +2 -2
- package/dist/{ImageviewerWidget-_0YopZ1s.cjs.map → ImageviewerWidget-BAK_GlYK.cjs.map} +1 -1
- package/dist/{ImageviewerWidget-BMZ6REN4.js → ImageviewerWidget-ByuTqBHq.js} +2 -2
- package/dist/{ImageviewerWidget-BMZ6REN4.js.map → ImageviewerWidget-ByuTqBHq.js.map} +1 -1
- package/dist/{InterfacesTab-DTixVrGo.js → InterfacesTab-BbsiYwEX.js} +3 -3
- package/dist/{InterfacesTab-DTixVrGo.js.map → InterfacesTab-BbsiYwEX.js.map} +1 -1
- package/dist/{InterfacesTab-DGrLsTA0.cjs → InterfacesTab-CnQLkjoz.cjs} +2 -2
- package/dist/{InterfacesTab-DGrLsTA0.cjs.map → InterfacesTab-CnQLkjoz.cjs.map} +1 -1
- package/dist/{LabelWidget-DkZvBxYg.cjs → LabelWidget-BP72ze-R.cjs} +2 -2
- package/dist/{LabelWidget-DkZvBxYg.cjs.map → LabelWidget-BP72ze-R.cjs.map} +1 -1
- package/dist/{LabelWidget-oh6FIG6s.js → LabelWidget-Dmb5F5j-.js} +2 -2
- package/dist/{LabelWidget-oh6FIG6s.js.map → LabelWidget-Dmb5F5j-.js.map} +1 -1
- package/dist/{LabelledWidget-D7nm73kj.cjs → LabelledWidget-DIflzlDv.cjs} +2 -2
- package/dist/{LabelledWidget-D7nm73kj.cjs.map → LabelledWidget-DIflzlDv.cjs.map} +1 -1
- package/dist/{LabelledWidget-Bic36les.js → LabelledWidget-DV1IbbPS.js} +4 -4
- package/dist/{LabelledWidget-Bic36les.js.map → LabelledWidget-DV1IbbPS.js.map} +1 -1
- package/dist/{LabelprogressbarWidget-DY0Xd2c2.cjs → LabelprogressbarWidget-B18EaMhU.cjs} +2 -2
- package/dist/{LabelprogressbarWidget-DY0Xd2c2.cjs.map → LabelprogressbarWidget-B18EaMhU.cjs.map} +1 -1
- package/dist/{LabelprogressbarWidget-CqIiGoDb.js → LabelprogressbarWidget-BHBDYVZp.js} +4 -4
- package/dist/{LabelprogressbarWidget-CqIiGoDb.js.map → LabelprogressbarWidget-BHBDYVZp.js.map} +1 -1
- package/dist/{LabelsparklineWidget-DLhmqO02.js → LabelsparklineWidget-BaoIdd7s.js} +4 -4
- package/dist/{LabelsparklineWidget-DLhmqO02.js.map → LabelsparklineWidget-BaoIdd7s.js.map} +1 -1
- package/dist/{LabelsparklineWidget-DZ5-iEcK.cjs → LabelsparklineWidget-Bdft2p6Y.cjs} +2 -2
- package/dist/{LabelsparklineWidget-DZ5-iEcK.cjs.map → LabelsparklineWidget-Bdft2p6Y.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-D-u38nLh.cjs → LabelvalueWidget-DiqMgePn.cjs} +2 -2
- package/dist/{LabelvalueWidget-D-u38nLh.cjs.map → LabelvalueWidget-DiqMgePn.cjs.map} +1 -1
- package/dist/{LabelvalueWidget-BefwSSVq.js → LabelvalueWidget-wuW55zQP.js} +4 -4
- package/dist/{LabelvalueWidget-BefwSSVq.js.map → LabelvalueWidget-wuW55zQP.js.map} +1 -1
- package/dist/{LabelvaluedescWidget-NxrCzznm.js → LabelvaluedescWidget-BBHwqvj4.js} +5 -5
- package/dist/{LabelvaluedescWidget-NxrCzznm.js.map → LabelvaluedescWidget-BBHwqvj4.js.map} +1 -1
- package/dist/{LabelvaluedescWidget-DMuBCLM8.cjs → LabelvaluedescWidget-fN9XLm-N.cjs} +2 -2
- package/dist/{LabelvaluedescWidget-DMuBCLM8.cjs.map → LabelvaluedescWidget-fN9XLm-N.cjs.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-pq7qoolL.js → LabelvaluelimitsbarWidget-77Rc3lCf.js} +4 -4
- package/dist/{LabelvaluelimitsbarWidget-pq7qoolL.js.map → LabelvaluelimitsbarWidget-77Rc3lCf.js.map} +1 -1
- package/dist/{LabelvaluelimitsbarWidget-BY212bgc.cjs → LabelvaluelimitsbarWidget-Dp5qsue9.cjs} +2 -2
- package/dist/{LabelvaluelimitsbarWidget-BY212bgc.cjs.map → LabelvaluelimitsbarWidget-Dp5qsue9.cjs.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-edkpogsl.js → LabelvaluelimitscolumnWidget-nounrACl.js} +5 -5
- package/dist/{LabelvaluelimitscolumnWidget-edkpogsl.js.map → LabelvaluelimitscolumnWidget-nounrACl.js.map} +1 -1
- package/dist/{LabelvaluelimitscolumnWidget-DVLGU6ja.cjs → LabelvaluelimitscolumnWidget-uR4QE_cm.cjs} +2 -2
- package/dist/{LabelvaluelimitscolumnWidget-DVLGU6ja.cjs.map → LabelvaluelimitscolumnWidget-uR4QE_cm.cjs.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-DpJNv9dh.js → LabelvaluerangebarWidget-B83Jj5Q1.js} +4 -4
- package/dist/{LabelvaluerangebarWidget-DpJNv9dh.js.map → LabelvaluerangebarWidget-B83Jj5Q1.js.map} +1 -1
- package/dist/{LabelvaluerangebarWidget-CA_7kTS2.cjs → LabelvaluerangebarWidget-MVkSnTVH.cjs} +2 -2
- package/dist/{LabelvaluerangebarWidget-CA_7kTS2.cjs.map → LabelvaluerangebarWidget-MVkSnTVH.cjs.map} +1 -1
- package/dist/{Layout-B0hvhBQO.js → Layout-ByQC7nQ3.js} +2 -2
- package/dist/{Layout-B0hvhBQO.js.map → Layout-ByQC7nQ3.js.map} +1 -1
- package/dist/Layout-CFJMHNqy.cjs +2 -0
- package/dist/{Layout-BLADjt_A.cjs.map → Layout-CFJMHNqy.cjs.map} +1 -1
- package/dist/{LedWidget--4eSxBnn.js → LedWidget-Cccb8YTk.js} +4 -4
- package/dist/{LedWidget--4eSxBnn.js.map → LedWidget-Cccb8YTk.js.map} +1 -1
- package/dist/{LedWidget-BoZKOBZg.cjs → LedWidget-ghzR6jZJ.cjs} +2 -2
- package/dist/{LedWidget-BoZKOBZg.cjs.map → LedWidget-ghzR6jZJ.cjs.map} +1 -1
- package/dist/{LimitsbarWidget-BQaumgRt.js → LimitsbarWidget-D1EBBwX1.js} +2 -2
- package/dist/{LimitsbarWidget-BQaumgRt.js.map → LimitsbarWidget-D1EBBwX1.js.map} +1 -1
- package/dist/{LimitsbarWidget-CyHbbNx3.cjs → LimitsbarWidget-Dg2_T5OY.cjs} +2 -2
- package/dist/{LimitsbarWidget-CyHbbNx3.cjs.map → LimitsbarWidget-Dg2_T5OY.cjs.map} +1 -1
- package/dist/{LimitscolorWidget-BBF9sRtF.js → LimitscolorWidget--1aPSNVB.js} +2 -2
- package/dist/{LimitscolorWidget-BBF9sRtF.js.map → LimitscolorWidget--1aPSNVB.js.map} +1 -1
- package/dist/{LimitscolorWidget-CsuRoqxm.cjs → LimitscolorWidget-D9mHLFOs.cjs} +2 -2
- package/dist/{LimitscolorWidget-CsuRoqxm.cjs.map → LimitscolorWidget-D9mHLFOs.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-Cr1qFT8M.cjs → LimitscolumnWidget-D18x3aW-.cjs} +2 -2
- package/dist/{LimitscolumnWidget-Cr1qFT8M.cjs.map → LimitscolumnWidget-D18x3aW-.cjs.map} +1 -1
- package/dist/{LimitscolumnWidget-DZZtSoXw.js → LimitscolumnWidget-swnMNApm.js} +2 -2
- package/dist/{LimitscolumnWidget-DZZtSoXw.js.map → LimitscolumnWidget-swnMNApm.js.map} +1 -1
- package/dist/{LinegraphWidget-DTLZmyWs.js → LinegraphWidget-BbI-wOnq.js} +4 -4
- package/dist/{LinegraphWidget-DTLZmyWs.js.map → LinegraphWidget-BbI-wOnq.js.map} +1 -1
- package/dist/{LinegraphWidget-Cw9vua8K.cjs → LinegraphWidget-BdCc6zps.cjs} +2 -2
- package/dist/{LinegraphWidget-Cw9vua8K.cjs.map → LinegraphWidget-BdCc6zps.cjs.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-dpgZz4wR.js → MatrixbycolumnsWidget-Bx2qMr8P.js} +3 -3
- package/dist/{MatrixbycolumnsWidget-dpgZz4wR.js.map → MatrixbycolumnsWidget-Bx2qMr8P.js.map} +1 -1
- package/dist/{MatrixbycolumnsWidget-Digh2kY7.cjs → MatrixbycolumnsWidget-CuhTHsdb.cjs} +2 -2
- package/dist/{MatrixbycolumnsWidget-Digh2kY7.cjs.map → MatrixbycolumnsWidget-CuhTHsdb.cjs.map} +1 -1
- package/dist/{MicroservicesTab-BQywJ_ya.cjs → MicroservicesTab-7mVRcHEj.cjs} +2 -2
- package/dist/{MicroservicesTab-BQywJ_ya.cjs.map → MicroservicesTab-7mVRcHEj.cjs.map} +1 -1
- package/dist/{MicroservicesTab-DbL48MBc.js → MicroservicesTab-CtI7BEt0.js} +3 -3
- package/dist/{MicroservicesTab-DbL48MBc.js.map → MicroservicesTab-CtI7BEt0.js.map} +1 -1
- package/dist/{Openc3Screen-COi4u-9k.cjs → Openc3Screen-B4X70CVP.cjs} +3 -3
- package/dist/Openc3Screen-B4X70CVP.cjs.map +1 -0
- package/dist/{Openc3Screen-CtwGKfq-.js → Openc3Screen-DFYYhHt7.js} +178 -164
- package/dist/Openc3Screen-DFYYhHt7.js.map +1 -0
- package/dist/{OutputDialog-B5qHVyck.js → OutputDialog-CqD5uI0m.js} +2 -2
- package/dist/{OutputDialog-B5qHVyck.js.map → OutputDialog-CqD5uI0m.js.map} +1 -1
- package/dist/{OutputDialog-CFhG2RY9.cjs → OutputDialog-Dft9Xm4R.cjs} +2 -2
- package/dist/{OutputDialog-CFhG2RY9.cjs.map → OutputDialog-Dft9Xm4R.cjs.map} +1 -1
- package/dist/{PackagesTab-DXSowjd4.cjs → PackagesTab-BxP1kiSR.cjs} +2 -2
- package/dist/{PackagesTab-DXSowjd4.cjs.map → PackagesTab-BxP1kiSR.cjs.map} +1 -1
- package/dist/{PackagesTab-Bw34RkLc.js → PackagesTab-DhMk-fi5.js} +3 -3
- package/dist/{PackagesTab-Bw34RkLc.js.map → PackagesTab-DhMk-fi5.js.map} +1 -1
- package/dist/{PluginsTab-CPaBGJMa.cjs → PluginsTab-BKJo5vK-.cjs} +2 -2
- package/dist/{PluginsTab-CPaBGJMa.cjs.map → PluginsTab-BKJo5vK-.cjs.map} +1 -1
- package/dist/{PluginsTab-C9t0-QVm.js → PluginsTab-DxxEqPCA.js} +3 -3
- package/dist/{PluginsTab-C9t0-QVm.js.map → PluginsTab-DxxEqPCA.js.map} +1 -1
- package/dist/{ProgressbarWidget-7cYr8136.js → ProgressbarWidget-7rJeuX6H.js} +2 -2
- package/dist/{ProgressbarWidget-7cYr8136.js.map → ProgressbarWidget-7rJeuX6H.js.map} +1 -1
- package/dist/{ProgressbarWidget-CdOWGViG.cjs → ProgressbarWidget-DLvbQ0g-.cjs} +2 -2
- package/dist/{ProgressbarWidget-CdOWGViG.cjs.map → ProgressbarWidget-DLvbQ0g-.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-5t4ofYx3.cjs → RadiobuttonWidget-C15SchQH.cjs} +2 -2
- package/dist/{RadiobuttonWidget-5t4ofYx3.cjs.map → RadiobuttonWidget-C15SchQH.cjs.map} +1 -1
- package/dist/{RadiobuttonWidget-DTfn-7F2.js → RadiobuttonWidget-DsEw3JiU.js} +2 -2
- package/dist/{RadiobuttonWidget-DTfn-7F2.js.map → RadiobuttonWidget-DsEw3JiU.js.map} +1 -1
- package/dist/{RadiogroupWidget-emxyymRZ.cjs → RadiogroupWidget-BZS_MkSP.cjs} +2 -2
- package/dist/{RadiogroupWidget-emxyymRZ.cjs.map → RadiogroupWidget-BZS_MkSP.cjs.map} +1 -1
- package/dist/{RadiogroupWidget-DWvTpw94.js → RadiogroupWidget-DhfbTvQ8.js} +2 -2
- package/dist/{RadiogroupWidget-DWvTpw94.js.map → RadiogroupWidget-DhfbTvQ8.js.map} +1 -1
- package/dist/{RangebarWidget-CG2Y7eYp.js → RangebarWidget-BEGvSL_K.js} +2 -2
- package/dist/{RangebarWidget-CG2Y7eYp.js.map → RangebarWidget-BEGvSL_K.js.map} +1 -1
- package/dist/{RangebarWidget-CLMKfbiT.cjs → RangebarWidget-bBSBfvHk.cjs} +2 -2
- package/dist/{RangebarWidget-CLMKfbiT.cjs.map → RangebarWidget-bBSBfvHk.cjs.map} +1 -1
- package/dist/{RedisTab-CvPLS0Qe.js → RedisTab-Bq8Frctp.js} +2 -2
- package/dist/{RedisTab-CvPLS0Qe.js.map → RedisTab-Bq8Frctp.js.map} +1 -1
- package/dist/{RedisTab-PbizvHjY.cjs → RedisTab-CWYntIvy.cjs} +2 -2
- package/dist/{RedisTab-PbizvHjY.cjs.map → RedisTab-CWYntIvy.cjs.map} +1 -1
- package/dist/{RollupWidget-C6HKTfCR.js → RollupWidget-BZhspgWd.js} +2 -2
- package/dist/{RollupWidget-C6HKTfCR.js.map → RollupWidget-BZhspgWd.js.map} +1 -1
- package/dist/{RollupWidget-CHKUdXMx.cjs → RollupWidget-BueYskqE.cjs} +2 -2
- package/dist/{RollupWidget-CHKUdXMx.cjs.map → RollupWidget-BueYskqE.cjs.map} +1 -1
- package/dist/{RoutersTab-D-ex_yMO.js → RoutersTab-Bg6dpAXr.js} +3 -3
- package/dist/{RoutersTab-D-ex_yMO.js.map → RoutersTab-Bg6dpAXr.js.map} +1 -1
- package/dist/{RoutersTab-zkaML-Xt.cjs → RoutersTab-DOseaOsv.cjs} +2 -2
- package/dist/{RoutersTab-zkaML-Xt.cjs.map → RoutersTab-DOseaOsv.cjs.map} +1 -1
- package/dist/{ScriptChooser-Dkf84RzQ.cjs → ScriptChooser-CHkObjcT.cjs} +2 -2
- package/dist/{ScriptChooser-Dkf84RzQ.cjs.map → ScriptChooser-CHkObjcT.cjs.map} +1 -1
- package/dist/{ScriptChooser-qiC2xQ_W.js → ScriptChooser-DBkFAc6E.js} +2 -2
- package/dist/{ScriptChooser-qiC2xQ_W.js.map → ScriptChooser-DBkFAc6E.js.map} +1 -1
- package/dist/{ScrollwindowWidget-CVc9EXW2.cjs → ScrollwindowWidget-CJmuGHai.cjs} +2 -2
- package/dist/{ScrollwindowWidget-CVc9EXW2.cjs.map → ScrollwindowWidget-CJmuGHai.cjs.map} +1 -1
- package/dist/{ScrollwindowWidget-DvhBCYd2.js → ScrollwindowWidget-qZ3nhhVU.js} +3 -3
- package/dist/{ScrollwindowWidget-DvhBCYd2.js.map → ScrollwindowWidget-qZ3nhhVU.js.map} +1 -1
- package/dist/{SecretsTab-Clw9ErBz.cjs → SecretsTab-B49h9PhL.cjs} +2 -2
- package/dist/{SecretsTab-Clw9ErBz.cjs.map → SecretsTab-B49h9PhL.cjs.map} +1 -1
- package/dist/{SecretsTab-CLkJfzf-.js → SecretsTab-vdm8oj9_.js} +2 -2
- package/dist/{SecretsTab-CLkJfzf-.js.map → SecretsTab-vdm8oj9_.js.map} +1 -1
- package/dist/{SettingsTab-CysOMBFu.js → SettingsTab-C05e6-Xm.js} +3 -3
- package/dist/{SettingsTab-CysOMBFu.js.map → SettingsTab-C05e6-Xm.js.map} +1 -1
- package/dist/{SettingsTab-BJ9mrQ8U.cjs → SettingsTab-fmHVuOps.cjs} +2 -2
- package/dist/{SettingsTab-BJ9mrQ8U.cjs.map → SettingsTab-fmHVuOps.cjs.map} +1 -1
- package/dist/{SignalWidget-BZIoGjam.js → SignalWidget-Bh14Zrch.js} +2 -2
- package/dist/{SignalWidget-BZIoGjam.js.map → SignalWidget-Bh14Zrch.js.map} +1 -1
- package/dist/{SignalWidget-DpNUpQNW.cjs → SignalWidget-J3LFoUd-.cjs} +2 -2
- package/dist/{SignalWidget-DpNUpQNW.cjs.map → SignalWidget-J3LFoUd-.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-P2KPhVHq.cjs → SimpleTextDialog-CSsm9IoB.cjs} +2 -2
- package/dist/{SimpleTextDialog-P2KPhVHq.cjs.map → SimpleTextDialog-CSsm9IoB.cjs.map} +1 -1
- package/dist/{SimpleTextDialog-CGStqYvO.js → SimpleTextDialog-plHG7LGh.js} +2 -2
- package/dist/{SimpleTextDialog-CGStqYvO.js.map → SimpleTextDialog-plHG7LGh.js.map} +1 -1
- package/dist/{SpacerWidget-CHuv4qDR.cjs → SpacerWidget-CzqLoBdY.cjs} +2 -2
- package/dist/{SpacerWidget-CHuv4qDR.cjs.map → SpacerWidget-CzqLoBdY.cjs.map} +1 -1
- package/dist/{SpacerWidget-YBS8RZIE.js → SpacerWidget-D_NE46jZ.js} +2 -2
- package/dist/{SpacerWidget-YBS8RZIE.js.map → SpacerWidget-D_NE46jZ.js.map} +1 -1
- package/dist/{SparklineWidget-BMhY9vYe.js → SparklineWidget-CJEEJdZ-.js} +4 -4
- package/dist/{SparklineWidget-BMhY9vYe.js.map → SparklineWidget-CJEEJdZ-.js.map} +1 -1
- package/dist/{SparklineWidget-qWQGTMwn.cjs → SparklineWidget-DDRhatn7.cjs} +2 -2
- package/dist/{SparklineWidget-qWQGTMwn.cjs.map → SparklineWidget-DDRhatn7.cjs.map} +1 -1
- package/dist/{TabbookWidget-RfET19pq.js → TabbookWidget-C-SU65IF.js} +2 -2
- package/dist/{TabbookWidget-RfET19pq.js.map → TabbookWidget-C-SU65IF.js.map} +1 -1
- package/dist/{TabbookWidget-C4jdzkQl.cjs → TabbookWidget-C8k2kKLX.cjs} +2 -2
- package/dist/{TabbookWidget-C4jdzkQl.cjs.map → TabbookWidget-C8k2kKLX.cjs.map} +1 -1
- package/dist/{TargetsTab-CfBt-dZW.js → TargetsTab-DyfyM9sC.js} +3 -3
- package/dist/{TargetsTab-CfBt-dZW.js.map → TargetsTab-DyfyM9sC.js.map} +1 -1
- package/dist/{TargetsTab-CVZR_Bp6.cjs → TargetsTab-pU_wu9d-.cjs} +2 -2
- package/dist/{TargetsTab-CVZR_Bp6.cjs.map → TargetsTab-pU_wu9d-.cjs.map} +1 -1
- package/dist/{TextboxWidget-Cm7-yWTZ.cjs → TextboxWidget-CRDu77NK.cjs} +2 -2
- package/dist/{TextboxWidget-Cm7-yWTZ.cjs.map → TextboxWidget-CRDu77NK.cjs.map} +1 -1
- package/dist/{TextboxWidget-M8vFBSxS.js → TextboxWidget-Dn1Ds-b0.js} +4 -4
- package/dist/{TextboxWidget-M8vFBSxS.js.map → TextboxWidget-Dn1Ds-b0.js.map} +1 -1
- package/dist/{TextfieldWidget-Dev7lCsT.js → TextfieldWidget-C0C7NL53.js} +2 -2
- package/dist/{TextfieldWidget-Dev7lCsT.js.map → TextfieldWidget-C0C7NL53.js.map} +1 -1
- package/dist/{TextfieldWidget-Bfk2NPtC.cjs → TextfieldWidget-DGdD6b_-.cjs} +2 -2
- package/dist/{TextfieldWidget-Bfk2NPtC.cjs.map → TextfieldWidget-DGdD6b_-.cjs.map} +1 -1
- package/dist/{TimeWidget-CQzn13rQ.js → TimeWidget-AFOTVB4w.js} +2 -2
- package/dist/{TimeWidget-CQzn13rQ.js.map → TimeWidget-AFOTVB4w.js.map} +1 -1
- package/dist/{TimeWidget-BqkZJdg7.cjs → TimeWidget-BlZoS24B.cjs} +2 -2
- package/dist/{TimeWidget-BqkZJdg7.cjs.map → TimeWidget-BlZoS24B.cjs.map} +1 -1
- package/dist/{TitleWidget-C4zbSian.js → TitleWidget-CbS_wrQw.js} +2 -2
- package/dist/{TitleWidget-C4zbSian.js.map → TitleWidget-CbS_wrQw.js.map} +1 -1
- package/dist/{TitleWidget-DW0hJ0FE.cjs → TitleWidget-DDEnHVPP.cjs} +2 -2
- package/dist/{TitleWidget-DW0hJ0FE.cjs.map → TitleWidget-DDEnHVPP.cjs.map} +1 -1
- package/dist/{ToolsTab-CnhhRS3J.js → ToolsTab-BvpoO0wt.js} +3 -3
- package/dist/{ToolsTab-CnhhRS3J.js.map → ToolsTab-BvpoO0wt.js.map} +1 -1
- package/dist/{ToolsTab-CKeFb94Y.cjs → ToolsTab-DCRNrlhT.cjs} +2 -2
- package/dist/{ToolsTab-CKeFb94Y.cjs.map → ToolsTab-DCRNrlhT.cjs.map} +1 -1
- package/dist/{TopBar-BQhv8Jcc.js → TopBar-AjYGyx8W.js} +2 -2
- package/dist/{TopBar-BQhv8Jcc.js.map → TopBar-AjYGyx8W.js.map} +1 -1
- package/dist/{TopBar-4zZ-wYMY.cjs → TopBar-vznpQjGN.cjs} +2 -2
- package/dist/{TopBar-4zZ-wYMY.cjs.map → TopBar-vznpQjGN.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-C0MA3Uc-.cjs → UpgradeToEnterpriseDialog-1fVtqbze.cjs} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-C0MA3Uc-.cjs.map → UpgradeToEnterpriseDialog-1fVtqbze.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog-c6twungI.js → UpgradeToEnterpriseDialog-CMVEjihv.js} +2 -2
- package/dist/{UpgradeToEnterpriseDialog-c6twungI.js.map → UpgradeToEnterpriseDialog-CMVEjihv.js.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Bowkx8lp.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B98GsSQS.cjs} +21 -21
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-Bowkx8lp.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B98GsSQS.cjs.map} +1 -1
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CVrrWDJ_.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js} +446 -446
- package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CVrrWDJ_.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js.map} +1 -1
- package/dist/{VWidget-iASFPjdx.js → VWidget-BlF_o-7Z.js} +2 -2
- package/dist/{VWidget-iASFPjdx.js.map → VWidget-BlF_o-7Z.js.map} +1 -1
- package/dist/{VWidget-iTwRH6Qq.cjs → VWidget-CMKh-tv6.cjs} +2 -2
- package/dist/{VWidget-iTwRH6Qq.cjs.map → VWidget-CMKh-tv6.cjs.map} +1 -1
- package/dist/{ValueWidget-BVI6uUVX.js → ValueWidget-DFUfM5tw.js} +4 -4
- package/dist/{ValueWidget-BVI6uUVX.js.map → ValueWidget-DFUfM5tw.js.map} +1 -1
- package/dist/{ValueWidget-CPuSUgn9.cjs → ValueWidget-K7SCPEB6.cjs} +2 -2
- package/dist/{ValueWidget-CPuSUgn9.cjs.map → ValueWidget-K7SCPEB6.cjs.map} +1 -1
- package/dist/{ValuelimitsbarWidget-BiIcery0.js → ValuelimitsbarWidget-CALgABsT.js} +4 -4
- package/dist/{ValuelimitsbarWidget-BiIcery0.js.map → ValuelimitsbarWidget-CALgABsT.js.map} +1 -1
- package/dist/{ValuelimitsbarWidget-CNdyobcf.cjs → ValuelimitsbarWidget-DcY2NV9X.cjs} +2 -2
- package/dist/{ValuelimitsbarWidget-CNdyobcf.cjs.map → ValuelimitsbarWidget-DcY2NV9X.cjs.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-BiRI8GbI.js → ValuelimitscolumnWidget-Bs91VFLz.js} +4 -4
- package/dist/{ValuelimitscolumnWidget-BiRI8GbI.js.map → ValuelimitscolumnWidget-Bs91VFLz.js.map} +1 -1
- package/dist/{ValuelimitscolumnWidget-Db0K4OjQ.cjs → ValuelimitscolumnWidget-DQKvlGap.cjs} +2 -2
- package/dist/{ValuelimitscolumnWidget-Db0K4OjQ.cjs.map → ValuelimitscolumnWidget-DQKvlGap.cjs.map} +1 -1
- package/dist/{ValuerangebarWidget-CtMFQu9-.js → ValuerangebarWidget-C7WHyR2h.js} +4 -4
- package/dist/{ValuerangebarWidget-CtMFQu9-.js.map → ValuerangebarWidget-C7WHyR2h.js.map} +1 -1
- package/dist/{ValuerangebarWidget-DAEr-D_E.cjs → ValuerangebarWidget-DnWuvusw.cjs} +2 -2
- package/dist/{ValuerangebarWidget-DAEr-D_E.cjs.map → ValuerangebarWidget-DnWuvusw.cjs.map} +1 -1
- package/dist/{VerticalWidget-CRmcpQBn.js → VerticalWidget-COP5oVCK.js} +2 -2
- package/dist/{VerticalWidget-CRmcpQBn.js.map → VerticalWidget-COP5oVCK.js.map} +1 -1
- package/dist/{VerticalWidget-YG3auPJa.cjs → VerticalWidget-eMN4dvxL.cjs} +2 -2
- package/dist/{VerticalWidget-YG3auPJa.cjs.map → VerticalWidget-eMN4dvxL.cjs.map} +1 -1
- package/dist/{VerticalboxWidget-C-qChjug.js → VerticalboxWidget-CDPoOx4C.js} +5 -5
- package/dist/{VerticalboxWidget-C-qChjug.js.map → VerticalboxWidget-CDPoOx4C.js.map} +1 -1
- package/dist/{VerticalboxWidget-DX8-gFay.cjs → VerticalboxWidget-UIBpyEz_.cjs} +2 -2
- package/dist/{VerticalboxWidget-DX8-gFay.cjs.map → VerticalboxWidget-UIBpyEz_.cjs.map} +1 -1
- package/dist/{Widget-EsyLQi_8.cjs → Widget-Cg0pAxSF.cjs} +2 -2
- package/dist/{Widget-EsyLQi_8.cjs.map → Widget-Cg0pAxSF.cjs.map} +1 -1
- package/dist/{Widget-CFEnOKms.js → Widget-cmJ76_g1.js} +2 -2
- package/dist/{Widget-CFEnOKms.js.map → Widget-cmJ76_g1.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +11 -11
- package/dist/tools/admin.cjs +1 -1
- package/dist/tools/admin.js +12 -12
- 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 +3 -3
- package/dist/tools/scriptrunner.cjs.map +1 -1
- package/dist/tools/scriptrunner.js +14 -14
- 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/EventListDialog-Bniar26O.js.map +0 -1
- package/dist/EventListDialog-D_KXhGDO.cjs +0 -2
- package/dist/EventListDialog-D_KXhGDO.cjs.map +0 -1
- package/dist/Layout-BLADjt_A.cjs +0 -2
- package/dist/Openc3Screen-COi4u-9k.cjs.map +0 -1
- package/dist/Openc3Screen-CtwGKfq-.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LimitscolumnWidget-
|
|
1
|
+
{"version":3,"file":"LimitscolumnWidget-D18x3aW-.cjs","sources":["../src/widgets/LimitscolumnWidget.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\n<template>\n <div class=\"limitsbar\" :style=\"[cssProps, computedStyle]\">\n <div class=\"limitsbar__container\">\n <div class=\"limitsbar__redlow\" />\n <div class=\"limitsbar__redhigh\" />\n <div class=\"limitsbar__yellowlow\" />\n <div class=\"limitsbar__yellowhigh\" />\n <div class=\"limitsbar__greenlow\" />\n <div class=\"limitsbar__greenhigh\" />\n <div class=\"limitsbar__blue\" />\n\n <div class=\"limitsbar__line\" />\n <div class=\"limitsbar__arrow\" />\n </div>\n </div>\n</template>\n\n<script>\nimport BarColumn from './BarColumn'\n\nexport default {\n mixins: [BarColumn],\n data() {\n return {\n width: 22, // px\n height: 120, // users will override with px\n }\n },\n computed: {\n // TODO: Not sure why we have to reimplement this from BarColumn\n // strangely enough LimitsbarWidget.vue works fine without it\n cssProps: function () {\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n if (limits) {\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-width': this.width - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-height': this.redLow + '%',\n '--redhigh-height': this.redHigh + '%',\n '--yellowlow-height': this.yellowLow + '%',\n '--yellowhigh-height': this.yellowHigh + '%',\n '--greenlow-height': this.greenLow + '%',\n '--greenhigh-height': this.greenHigh + '%',\n '--blue-height': this.blue + '%',\n }\n } else {\n // See errorCaptured in Openc3Screen.vue for how this is parsed\n throw {\n line: this.line,\n lineNumber: this.lineNumber,\n keyword: 'LIMITSCOLUMN',\n parameters: this.parameters,\n message: 'Item has no limits settings',\n usage: 'Only items with limits',\n }\n }\n },\n },\n created() {\n this.verifyNumParams(\n 'LIMITSCOLUMN',\n 3,\n 6,\n 'LIMITSCOLUMN <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH> <HEIGHT>',\n )\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.limitsbar {\n cursor: default;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 5px;\n height: var(--height);\n margin-right: 5px;\n}\n.limitsbar__container {\n position: relative;\n flex: 1 1 100%;\n width: var(--container-width);\n border: 1px solid black;\n background-color: white;\n}\n.limitsbar__redlow {\n position: absolute;\n bottom: 0px;\n width: var(--container-width);\n height: var(--redlow-height);\n background-color: rgb(255, 45, 45);\n}\n.limitsbar__redhigh {\n position: absolute;\n top: 0px;\n width: var(--container-width);\n height: var(--redhigh-height);\n background-color: rgb(255, 45, 45);\n}\n.limitsbar__yellowlow {\n position: absolute;\n bottom: var(--redlow-height);\n height: var(--yellowlow-height);\n width: var(--container-width);\n background-color: rgb(255, 220, 0);\n}\n.limitsbar__yellowhigh {\n position: absolute;\n top: var(--redhigh-height);\n height: var(--yellowhigh-height);\n width: var(--container-width);\n background-color: rgb(255, 220, 0);\n}\n.limitsbar__greenlow {\n position: absolute;\n bottom: calc(var(--redlow-height) + var(--yellowlow-height));\n width: var(--container-width);\n height: var(--greenlow-height);\n background-color: rgb(0, 200, 0);\n}\n.limitsbar__greenhigh {\n position: absolute;\n top: calc(var(--redhigh-height) + var(--yellowhigh-height));\n width: var(--container-width);\n height: var(--greenhigh-height);\n background-color: rgb(0, 200, 0);\n}\n.limitsbar__blue {\n position: absolute;\n bottom: calc(\n var(--redlow-height) + var(--yellowlow-height) + var(--greenlow-height)\n );\n width: var(--container-width);\n height: var(--blue-height);\n background-color: rgb(0, 153, 255);\n}\n.limitsbar__line {\n position: absolute;\n bottom: var(--position);\n width: var(--container-width);\n height: 1px;\n background-color: rgb(128, 128, 128);\n}\n$arrow-size: 5px;\n.limitsbar__arrow {\n position: absolute;\n bottom: var(--position);\n left: var(--container-width);\n width: 0;\n height: 0;\n transform: translateY($arrow-size); // Transform so it sits over the line\n border-top: $arrow-size solid transparent;\n border-bottom: $arrow-size solid transparent;\n border-right: $arrow-size solid rgb(128, 128, 128);\n}\n</style>\n"],"names":["_sfc_main","BarColumn","value","limits","_createElementBlock","_normalizeStyle","$options","_ctx","_createStaticVNode"],"mappings":"oLAsCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,SAAS,EAClB,MAAO,CACL,MAAO,CACL,MAAO,GACP,OAAQ,GACV,CACD,EACD,SAAU,CAGR,SAAU,UAAY,CACpB,IAAIC,EAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,EACzCC,EAAS,KAAK,aAChB,KAAK,eAAe,KAAK,iBAAiB,CAC5C,EACA,GAAIA,EACF,YAAK,WAAWA,CAAM,EACf,CACL,WAAY,KAAK,OAAS,KAC1B,UAAW,KAAK,MAAQ,KACxB,oBAAqB,KAAK,MAAQ,EAAI,KACtC,aAAc,KAAK,aAAaD,EAAOC,CAAM,EAAI,IACjD,kBAAmB,KAAK,OAAS,IACjC,mBAAoB,KAAK,QAAU,IACnC,qBAAsB,KAAK,UAAY,IACvC,sBAAuB,KAAK,WAAa,IACzC,oBAAqB,KAAK,SAAW,IACrC,qBAAsB,KAAK,UAAY,IACvC,gBAAiB,KAAK,KAAO,GAC/B,EAGA,KAAM,CACJ,KAAM,KAAK,KACX,WAAY,KAAK,WACjB,QAAS,eACT,WAAY,KAAK,WACjB,QAAS,8BACT,MAAO,wBACT,CAEH,CACF,EACD,SAAU,CACR,KAAK,gBACH,eACA,EACA,EACA,+DACF,CACD,CACH,+CAvEEC,EAaM,mBAAA,MAAA,CAbD,MAAM,YAAa,MAnB1BC,EAAA,eAAA,CAmBkCC,EAAQ,SAAEC,EAAa,aAAA,CAAA,gBAnBzDC,EAAA,kBAAA,giBAAA,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as e } from "./BarColumn-
|
|
1
|
+
import { B as e } from "./BarColumn-CIWppEH6.js";
|
|
2
2
|
import { createElementBlock as s, openBlock as l, normalizeStyle as r, createStaticVNode as h } from "vue";
|
|
3
3
|
import { _ as d } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
const o = {
|
|
@@ -63,4 +63,4 @@ const w = /* @__PURE__ */ d(o, [["render", m], ["__scopeId", "data-v-a4a8f4ab"]]
|
|
|
63
63
|
export {
|
|
64
64
|
w as default
|
|
65
65
|
};
|
|
66
|
-
//# sourceMappingURL=LimitscolumnWidget-
|
|
66
|
+
//# sourceMappingURL=LimitscolumnWidget-swnMNApm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LimitscolumnWidget-
|
|
1
|
+
{"version":3,"file":"LimitscolumnWidget-swnMNApm.js","sources":["../src/widgets/LimitscolumnWidget.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\n<template>\n <div class=\"limitsbar\" :style=\"[cssProps, computedStyle]\">\n <div class=\"limitsbar__container\">\n <div class=\"limitsbar__redlow\" />\n <div class=\"limitsbar__redhigh\" />\n <div class=\"limitsbar__yellowlow\" />\n <div class=\"limitsbar__yellowhigh\" />\n <div class=\"limitsbar__greenlow\" />\n <div class=\"limitsbar__greenhigh\" />\n <div class=\"limitsbar__blue\" />\n\n <div class=\"limitsbar__line\" />\n <div class=\"limitsbar__arrow\" />\n </div>\n </div>\n</template>\n\n<script>\nimport BarColumn from './BarColumn'\n\nexport default {\n mixins: [BarColumn],\n data() {\n return {\n width: 22, // px\n height: 120, // users will override with px\n }\n },\n computed: {\n // TODO: Not sure why we have to reimplement this from BarColumn\n // strangely enough LimitsbarWidget.vue works fine without it\n cssProps: function () {\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n if (limits) {\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-width': this.width - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-height': this.redLow + '%',\n '--redhigh-height': this.redHigh + '%',\n '--yellowlow-height': this.yellowLow + '%',\n '--yellowhigh-height': this.yellowHigh + '%',\n '--greenlow-height': this.greenLow + '%',\n '--greenhigh-height': this.greenHigh + '%',\n '--blue-height': this.blue + '%',\n }\n } else {\n // See errorCaptured in Openc3Screen.vue for how this is parsed\n throw {\n line: this.line,\n lineNumber: this.lineNumber,\n keyword: 'LIMITSCOLUMN',\n parameters: this.parameters,\n message: 'Item has no limits settings',\n usage: 'Only items with limits',\n }\n }\n },\n },\n created() {\n this.verifyNumParams(\n 'LIMITSCOLUMN',\n 3,\n 6,\n 'LIMITSCOLUMN <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH> <HEIGHT>',\n )\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.limitsbar {\n cursor: default;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 5px;\n height: var(--height);\n margin-right: 5px;\n}\n.limitsbar__container {\n position: relative;\n flex: 1 1 100%;\n width: var(--container-width);\n border: 1px solid black;\n background-color: white;\n}\n.limitsbar__redlow {\n position: absolute;\n bottom: 0px;\n width: var(--container-width);\n height: var(--redlow-height);\n background-color: rgb(255, 45, 45);\n}\n.limitsbar__redhigh {\n position: absolute;\n top: 0px;\n width: var(--container-width);\n height: var(--redhigh-height);\n background-color: rgb(255, 45, 45);\n}\n.limitsbar__yellowlow {\n position: absolute;\n bottom: var(--redlow-height);\n height: var(--yellowlow-height);\n width: var(--container-width);\n background-color: rgb(255, 220, 0);\n}\n.limitsbar__yellowhigh {\n position: absolute;\n top: var(--redhigh-height);\n height: var(--yellowhigh-height);\n width: var(--container-width);\n background-color: rgb(255, 220, 0);\n}\n.limitsbar__greenlow {\n position: absolute;\n bottom: calc(var(--redlow-height) + var(--yellowlow-height));\n width: var(--container-width);\n height: var(--greenlow-height);\n background-color: rgb(0, 200, 0);\n}\n.limitsbar__greenhigh {\n position: absolute;\n top: calc(var(--redhigh-height) + var(--yellowhigh-height));\n width: var(--container-width);\n height: var(--greenhigh-height);\n background-color: rgb(0, 200, 0);\n}\n.limitsbar__blue {\n position: absolute;\n bottom: calc(\n var(--redlow-height) + var(--yellowlow-height) + var(--greenlow-height)\n );\n width: var(--container-width);\n height: var(--blue-height);\n background-color: rgb(0, 153, 255);\n}\n.limitsbar__line {\n position: absolute;\n bottom: var(--position);\n width: var(--container-width);\n height: 1px;\n background-color: rgb(128, 128, 128);\n}\n$arrow-size: 5px;\n.limitsbar__arrow {\n position: absolute;\n bottom: var(--position);\n left: var(--container-width);\n width: 0;\n height: 0;\n transform: translateY($arrow-size); // Transform so it sits over the line\n border-top: $arrow-size solid transparent;\n border-bottom: $arrow-size solid transparent;\n border-right: $arrow-size solid rgb(128, 128, 128);\n}\n</style>\n"],"names":["_sfc_main","BarColumn","value","limits","_createElementBlock","_normalizeStyle","$options","_ctx","_createStaticVNode"],"mappings":";;;AAsCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAS;AAAA,EAClB,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA;AAAA,MACP,QAAQ;AAAA;AAAA,IACV;AAAA,EACD;AAAA,EACD,UAAU;AAAA;AAAA;AAAA,IAGR,UAAU,WAAY;AACpB,UAAIC,IAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,GACzCC,IAAS,KAAK;AAAA,QAChB,KAAK,eAAe,KAAK,iBAAiB;AAAA,MAC5C;AACA,UAAIA;AACF,oBAAK,WAAWA,CAAM,GACf;AAAA,UACL,YAAY,KAAK,SAAS;AAAA,UAC1B,WAAW,KAAK,QAAQ;AAAA,UACxB,qBAAqB,KAAK,QAAQ,IAAI;AAAA,UACtC,cAAc,KAAK,aAAaD,GAAOC,CAAM,IAAI;AAAA,UACjD,mBAAmB,KAAK,SAAS;AAAA,UACjC,oBAAoB,KAAK,UAAU;AAAA,UACnC,sBAAsB,KAAK,YAAY;AAAA,UACvC,uBAAuB,KAAK,aAAa;AAAA,UACzC,qBAAqB,KAAK,WAAW;AAAA,UACrC,sBAAsB,KAAK,YAAY;AAAA,UACvC,iBAAiB,KAAK,OAAO;AAAA,QAC/B;AAGA,YAAM;AAAA,QACJ,MAAM,KAAK;AAAA,QACX,YAAY,KAAK;AAAA,QACjB,SAAS;AAAA,QACT,YAAY,KAAK;AAAA,QACjB,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IAEH;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACD;AACH;;cAvEEC,EAaM,OAAA;AAAA,IAbD,OAAM;AAAA,IAAa,OAnB1BC,EAAA,CAmBkCC,EAAQ,UAAEC,EAAa,aAAA,CAAA;AAAA;IAnBzDC,EAAA,iiBAAA,CAAA;AAAA;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { G as s } from "./GraphWidget-
|
|
2
|
-
import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
import { G as s } from "./GraphWidget-Cl97QQYm.js";
|
|
2
|
+
import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js";
|
|
3
3
|
import { resolveComponent as o, createBlock as r, openBlock as a, normalizeStyle as n } from "vue";
|
|
4
4
|
import { _ as p } from "./CustomIcon-h5X7369N.js";
|
|
5
|
-
import { G as d } from "./Graph-
|
|
5
|
+
import { G as d } from "./Graph-vUcIyyTp.js";
|
|
6
6
|
import "single-spa";
|
|
7
7
|
const m = {
|
|
8
8
|
components: {
|
|
@@ -36,4 +36,4 @@ const T = /* @__PURE__ */ p(m, [["render", h]]);
|
|
|
36
36
|
export {
|
|
37
37
|
T as default
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=LinegraphWidget-
|
|
39
|
+
//# sourceMappingURL=LinegraphWidget-BbI-wOnq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinegraphWidget-
|
|
1
|
+
{"version":3,"file":"LinegraphWidget-BbI-wOnq.js","sources":["../src/widgets/LinegraphWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <graph\n :ref=\"'graph' + id\"\n :id=\"id\"\n :state=\"state\"\n :selected-graph-id=\"id\"\n :startTime=\"startTime\"\n :seconds-graphed=\"secondsGraphed\"\n :points-saved=\"pointsSaved\"\n :points-graphed=\"pointsGraphed\"\n :initial-items=\"items\"\n :height=\"size.height\"\n :width=\"size.width\"\n :style=\"computedStyle\"\n :time-zone=\"this.screenTimeZone\"\n @pause=\"() => (state = 'pause')\"\n @start=\"() => (state = 'start')\"\n hide-toolbar\n hide-overview\n />\n</template>\n\n<script>\nimport GraphWidget from './GraphWidget'\nimport { Graph } from '@/components'\n\nexport default {\n components: {\n Graph,\n },\n mixins: [GraphWidget],\n}\n</script>\n"],"names":["_sfc_main","Graph","GraphWidget","_createBlock","_component_graph","_ctx","_normalizeStyle"],"mappings":";;;;;;AAgDA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,OAAAC;AAAA,EACD;AAAA,EACD,QAAQ,CAACC,CAAW;AACtB;;;cA9BEC,EAkBEC,GAAA;AAAA,IAjBC,eAAeC,EAAE;AAAA,IACjB,IAAIA,EAAE;AAAA,IACN,OAAOA,EAAK;AAAA,IACZ,qBAAmBA,EAAE;AAAA,IACrB,WAAWA,EAAS;AAAA,IACpB,mBAAiBA,EAAc;AAAA,IAC/B,gBAAcA,EAAW;AAAA,IACzB,kBAAgBA,EAAa;AAAA,IAC7B,iBAAeA,EAAK;AAAA,IACpB,QAAQA,EAAI,KAAC;AAAA,IACb,OAAOA,EAAI,KAAC;AAAA,IACZ,OAnCLC,EAmCYD,EAAa,aAAA;AAAA,IACpB,kBAAgB;AAAA,IAChB,+BAAcA,EAAK,QAAA;AAAA,IACnB,+BAAcA,EAAK,QAAA;AAAA,IACpB,gBAAA;AAAA,IACA,iBAAA;AAAA;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./GraphWidget-
|
|
2
|
-
//# sourceMappingURL=LinegraphWidget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./GraphWidget-D3rDXvA8.cjs");require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B98GsSQS.cjs");const i=require("vue"),o=require("./CustomIcon-Bop2mEnu.cjs"),n=require("./Graph-hTOB_jv2.cjs");require("single-spa");const a={components:{Graph:n.Graph},mixins:[r.GraphWidget]};function d(e,t,h,l,u,g){const s=i.resolveComponent("graph");return i.openBlock(),i.createBlock(s,{ref:"graph"+e.id,id:e.id,state:e.state,"selected-graph-id":e.id,startTime:e.startTime,"seconds-graphed":e.secondsGraphed,"points-saved":e.pointsSaved,"points-graphed":e.pointsGraphed,"initial-items":e.items,height:e.size.height,width:e.size.width,style:i.normalizeStyle(e.computedStyle),"time-zone":this.screenTimeZone,onPause:t[0]||(t[0]=()=>e.state="pause"),onStart:t[1]||(t[1]=()=>e.state="start"),"hide-toolbar":"","hide-overview":""},null,8,["id","state","selected-graph-id","startTime","seconds-graphed","points-saved","points-graphed","initial-items","height","width","style","time-zone"])}const p=o._export_sfc(a,[["render",d]]);exports.default=p;
|
|
2
|
+
//# sourceMappingURL=LinegraphWidget-BdCc6zps.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinegraphWidget-
|
|
1
|
+
{"version":3,"file":"LinegraphWidget-BdCc6zps.cjs","sources":["../src/widgets/LinegraphWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <graph\n :ref=\"'graph' + id\"\n :id=\"id\"\n :state=\"state\"\n :selected-graph-id=\"id\"\n :startTime=\"startTime\"\n :seconds-graphed=\"secondsGraphed\"\n :points-saved=\"pointsSaved\"\n :points-graphed=\"pointsGraphed\"\n :initial-items=\"items\"\n :height=\"size.height\"\n :width=\"size.width\"\n :style=\"computedStyle\"\n :time-zone=\"this.screenTimeZone\"\n @pause=\"() => (state = 'pause')\"\n @start=\"() => (state = 'start')\"\n hide-toolbar\n hide-overview\n />\n</template>\n\n<script>\nimport GraphWidget from './GraphWidget'\nimport { Graph } from '@/components'\n\nexport default {\n components: {\n Graph,\n },\n mixins: [GraphWidget],\n}\n</script>\n"],"names":["_sfc_main","Graph","GraphWidget","_createBlock","_component_graph","_ctx","_normalizeStyle"],"mappings":"wVAgDA,MAAKA,EAAU,CACb,WAAY,OACVC,EAAK,KACN,EACD,OAAQ,CAACC,EAAAA,WAAW,CACtB,mFA9BEC,EAkBE,YAAAC,EAAA,CAjBC,YAAeC,EAAE,GACjB,GAAIA,EAAE,GACN,MAAOA,EAAK,MACZ,oBAAmBA,EAAE,GACrB,UAAWA,EAAS,UACpB,kBAAiBA,EAAc,eAC/B,eAAcA,EAAW,YACzB,iBAAgBA,EAAa,cAC7B,gBAAeA,EAAK,MACpB,OAAQA,EAAI,KAAC,OACb,MAAOA,EAAI,KAAC,MACZ,MAnCLC,EAAAA,eAmCYD,EAAa,aAAA,EACpB,iBAAgB,eAChB,wBAAcA,EAAK,MAAA,SACnB,wBAAcA,EAAK,MAAA,SACpB,eAAA,GACA,gBAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as f } from "./Layout-
|
|
2
|
-
import { _ as d } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
import { L as f } from "./Layout-ByQC7nQ3.js";
|
|
2
|
+
import { _ as d } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js";
|
|
3
3
|
import { createElementBlock as n, openBlock as t, normalizeStyle as h, Fragment as o, renderList as i, createBlock as g, resolveDynamicComponent as y, mergeProps as k } from "vue";
|
|
4
4
|
import { _ } from "./CustomIcon-h5X7369N.js";
|
|
5
5
|
const b = {
|
|
@@ -53,4 +53,4 @@ const v = /* @__PURE__ */ _(b, [["render", A]]);
|
|
|
53
53
|
export {
|
|
54
54
|
v as default
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=MatrixbycolumnsWidget-
|
|
56
|
+
//# sourceMappingURL=MatrixbycolumnsWidget-Bx2qMr8P.js.map
|
package/dist/{MatrixbycolumnsWidget-dpgZz4wR.js.map → MatrixbycolumnsWidget-Bx2qMr8P.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatrixbycolumnsWidget-
|
|
1
|
+
{"version":3,"file":"MatrixbycolumnsWidget-Bx2qMr8P.js","sources":["../src/widgets/MatrixbycolumnsWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <table :style=\"computedStyle\" role=\"presentation\">\n <tr v-for=\"(chunk, rindex) in widgetChunks\" :key=\"'r' + rindex\">\n <td v-for=\"(widget, cindex) in chunk\" :key=\"'c' + cindex\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </td>\n </tr>\n </table>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport _ from 'lodash'\nexport default {\n mixins: [Layout],\n computed: {\n columns() {\n return parseInt(this.parameters[0])\n },\n widgetChunks() {\n return _.chunk(this.widgets, this.columns)\n },\n },\n created: function () {\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0] === 'RAW' &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_normalizeStyle","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":";;;;AA+CA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,UAAU;AACR,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACnC;AAAA,IACD,eAAe;AACb,aAAOC,EAAE,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,IAC1C;AAAA,EACF;AAAA,EACD,SAAS,WAAY;AACnB,QAAI,KAAK,WAAW,CAAC,GAAG;AACtB,UAAIC,IAAS,KAAK,WAAW,CAAC;AAC9B,WAAK,QAAQ,QAAQ,CAACC,MAAW;AAO/B,QANcA,EAAO,SAAS;AAAA,UAC5B,CAACC,MACCA,EAAQ,CAAC,MAAM,YACdA,EAAQ,CAAC,MAAM,SACdA,EAAQ,CAAC,EAAE,YAAa,EAAC,SAAS,QAAQ;AAAA,QAChD,MACc,UACZD,EAAO,SAAS,KAAK,CAAC,UAAUD,CAAM,CAAC;AAAA,MAE1C,CAAA;AAAA,IACH;AAAA,EACD;AACH;;cAlDEG,EAkBQ,SAAA;AAAA,IAlBA,OAvBVC,EAuBiBC,EAAa,aAAA;AAAA,IAAE,MAAK;AAAA;KACjCC,EAAA,EAAA,GAAAH,EAgBKI,SAxCTC,EAwBkCC,EAAA,cAxBlC,CAwBgBC,GAAOC,YAAnBR,EAgBK,MAAA;AAAA,MAhBwC,WAAWQ;AAAA;OACtDL,EAAA,EAAA,GAAAH,EAcKI,SAvCXC,EAyBqCE,GAzBrC,CAyBkBT,GAAQW,YAApBT,EAcK,MAAA;AAAA,QAdkC,WAAWS;AAAA;cAChDC,EA1BRC,EA4Beb,EAAO,IAAI,GAFlBc,EAYE,EAtCV,SAAA,MA2BkBV,EAAS,WAAA;AAAA,UAEhB,QAAQJ,EAAO;AAAA,UACf,YAAYA,EAAO;AAAA,UACnB,UAAUA,EAAO;AAAA,UACjB,iBAAeI,EAAY;AAAA,UAC3B,oBAAkBA,EAAc;AAAA,UAChC,SAASJ,EAAO;AAAA,UAChB,MAAMA,EAAO;AAAA,UACb,MAAMA,EAAO;AAAA,UACb,eAAaA,EAAO;AAAA;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./Layout-
|
|
2
|
-
//# sourceMappingURL=MatrixbycolumnsWidget-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./Layout-CFJMHNqy.cjs"),m=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B98GsSQS.cjs"),e=require("vue"),p=require("./CustomIcon-Bop2mEnu.cjs"),d={mixins:[i.Layout],computed:{columns(){return parseInt(this.parameters[0])},widgetChunks(){return m._.chunk(this.widgets,this.columns)}},created:function(){if(this.parameters[1]){let n=this.parameters[1];this.widgets.forEach(s=>{s.settings.find(r=>r[0]==="MARGIN"||r[0]==="RAW"&&r[1].toUpperCase().includes("MARGIN"))===void 0&&s.settings.push(["MARGIN",n])})}}};function k(n,s,o,r,g,l){return e.openBlock(),e.createElementBlock("table",{style:e.normalizeStyle(n.computedStyle),role:"presentation"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.widgetChunks,(a,c)=>(e.openBlock(),e.createElementBlock("tr",{key:"r"+c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a,(t,u)=>(e.openBlock(),e.createElementBlock("td",{key:"c"+u},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},n.listeners,{target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,widgets:t.widgets,name:t.name,line:t.line,"line-number":t.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))]))),128))]))),128))],4)}const f=p._export_sfc(d,[["render",k]]);exports.default=f;
|
|
2
|
+
//# sourceMappingURL=MatrixbycolumnsWidget-CuhTHsdb.cjs.map
|
package/dist/{MatrixbycolumnsWidget-Digh2kY7.cjs.map → MatrixbycolumnsWidget-CuhTHsdb.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatrixbycolumnsWidget-
|
|
1
|
+
{"version":3,"file":"MatrixbycolumnsWidget-CuhTHsdb.cjs","sources":["../src/widgets/MatrixbycolumnsWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2022, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <table :style=\"computedStyle\" role=\"presentation\">\n <tr v-for=\"(chunk, rindex) in widgetChunks\" :key=\"'r' + rindex\">\n <td v-for=\"(widget, cindex) in chunk\" :key=\"'c' + cindex\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </td>\n </tr>\n </table>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport _ from 'lodash'\nexport default {\n mixins: [Layout],\n computed: {\n columns() {\n return parseInt(this.parameters[0])\n },\n widgetChunks() {\n return _.chunk(this.widgets, this.columns)\n },\n },\n created: function () {\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0] === 'RAW' &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_normalizeStyle","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":"uRA+CKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,SAAU,CACR,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACnC,EACD,cAAe,CACb,OAAOC,EAAC,EAAC,MAAM,KAAK,QAAS,KAAK,OAAO,CAC1C,CACF,EACD,QAAS,UAAY,CACnB,GAAI,KAAK,WAAW,CAAC,EAAG,CACtB,IAAIC,EAAS,KAAK,WAAW,CAAC,EAC9B,KAAK,QAAQ,QAASC,GAAW,CACjBA,EAAO,SAAS,KAC3BC,GACCA,EAAQ,CAAC,IAAM,UACdA,EAAQ,CAAC,IAAM,OACdA,EAAQ,CAAC,EAAE,YAAa,EAAC,SAAS,QAAQ,CAChD,IACc,QACZD,EAAO,SAAS,KAAK,CAAC,SAAUD,CAAM,CAAC,CAE1C,CAAA,CACH,CACD,CACH,+CAlDEG,EAkBQ,mBAAA,QAAA,CAlBA,MAvBVC,EAAAA,eAuBiBC,EAAa,aAAA,EAAE,KAAK,kBACjCC,EAAAA,UAAA,EAAA,EAAAH,EAAA,mBAgBKI,gBAxCTC,EAwBkC,WAAAC,EAAA,aAxBlC,CAwBgBC,EAAOC,mBAAnBR,EAgBK,mBAAA,KAAA,CAhBwC,QAAWQ,KACtDL,YAAA,EAAA,EAAAH,EAAAA,mBAcKI,gBAvCXC,EAAAA,WAyBqCE,EAzBrC,CAyBkBT,EAAQW,mBAApBT,EAcK,mBAAA,KAAA,CAdkC,QAAWS,mBAChDC,EAAAA,YA1BRC,EA4Be,wBAAAb,EAAO,IAAI,EAFlBc,EAYE,WAAA,CAtCV,QAAA,IA2BkBV,EAAS,UAAA,CAEhB,OAAQJ,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeI,EAAY,aAC3B,mBAAkBA,EAAc,eAChC,QAASJ,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
2
|
-
//# sourceMappingURL=MicroservicesTab-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B98GsSQS.cjs"),e=require("vue"),y=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const k=require("./OutputDialog-Dft9Xm4R.cjs"),T=require("./TextBoxDialog-DWt30tB8.cjs"),d=require("./format-B22VpiOS.cjs"),V={components:{OutputDialog:k.OutputDialog,TextBoxDialog:T.TextBoxDialog},data(){return{microservices:[],microservice_status:{},microservice_id:null,jsonContent:"",dialogTitle:"",showDialog:!1,showError:!1,alert:"",alertType:"success",showAlert:!1,updater:null}},mounted(){this.update(),this.updater=setInterval(()=>{this.update()},2e3)},beforeUnmount(){clearInterval(this.updater),this.updater=null},methods:{update:function(){c.li.get("/openc3-api/microservice_status/all").then(t=>{this.microservice_status=t.data}),c.li.get("/openc3-api/microservices/all").then(t=>{let i=[];for(const[r,l]of Object.entries(t.data))i.push(l);i.sort((r,l)=>r.name.localeCompare(l.name)),this.microservices=i})},startMicroservice:function(t){this.$dialog.confirm(`Are you sure you want to restart microservice: ${t}?`,{okText:"Start",cancelText:"Cancel"}).then(i=>{c.li.post(`/openc3-api/microservices/${t}/start`).then(r=>{this.alert=`Started ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},stopMicroservice:function(t){this.$dialog.confirm(`Are you sure you want to stop microservice: ${t}?`,{okText:"Stop",cancelText:"Cancel"}).then(i=>{c.li.post(`/openc3-api/microservices/${t}/stop`).then(r=>{this.alert=`Stopped ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},showMicroservice:function(t){c.li.get(`/openc3-api/microservices/${t}`).then(i=>{this.microservice_id=t,this.dialogTitle=t,this.jsonContent=JSON.stringify(i.data,null," "),this.showDialog=!0})},showMicroserviceError:function(t){this.dialogTitle=t;const i=this.microservice_status[t].error;this.jsonContent=JSON.stringify(i,null," "),this.showError=!0},formatDate(t){return d.format(d.toDate(parseInt(t)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},dialogCallback:function(t){if(this.showDialog=!1,t!==null){let i=JSON.parse(t),r="put",l=`/openc3-api/microservices/${this.microservice_id}`;i.name!==this.microservice_id&&(r="post",l="/openc3-api/microservices"),c.li[r](l,{data:{json:t}}).then(o=>{this.alert="Modified Microservice",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update()})}}}};function S(t,i,r,l,o,n){const h=e.resolveComponent("v-alert"),v=e.resolveComponent("v-list-item-title"),_=e.resolveComponent("v-list-item-subtitle"),a=e.resolveComponent("v-btn"),u=e.resolveComponent("v-list-item-icon"),g=e.resolveComponent("v-list-item"),f=e.resolveComponent("v-divider"),C=e.resolveComponent("v-list"),w=e.resolveComponent("output-dialog"),x=e.resolveComponent("text-box-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(h,{modelValue:o.showAlert,"onUpdate:modelValue":i[0]||(i[0]=s=>o.showAlert=s),dismissible:"",transition:"scale-transition",type:o.alertType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),e.createVNode(C,{class:"list","data-test":"microserviceList"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.microservices,s=>(e.openBlock(),e.createElementBlock("div",{key:s},[e.createVNode(g,null,{append:e.withCtx(()=>{var m;return[e.withDirectives(e.createVNode(a,{icon:"mdi-alert",variant:"text",onClick:p=>n.showMicroserviceError(s.name)},null,8,["onClick"]),[[e.vShow,(m=o.microservice_status[s.name])==null?void 0:m.error]]),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Start Microservice",icon:"mdi-play",variant:"text",onClick:p=>n.startMicroservice(s.name)},null,8,["onClick"])]),_:2},1024),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Stop Microservice",icon:"mdi-stop",variant:"text",onClick:p=>n.stopMicroservice(s.name)},null,8,["onClick"])]),_:2},1024),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Show Microservice Details",icon:"mdi-eye",variant:"text",onClick:p=>n.showMicroservice(s.name)},null,8,["onClick"])]),_:2},1024)]}),default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.name),1)]),_:2},1024),o.microservice_status[s.name]?(e.openBlock(),e.createBlock(_,{key:0},{default:e.withCtx(()=>[e.createTextVNode(" Updated: "+e.toDisplayString(n.formatDate(o.microservice_status[s.name].updated_at))+", State: "+e.toDisplayString(o.microservice_status[s.name].state)+", Enabled: "+e.toDisplayString(s.enabled===!1?"False":"True")+", Count: "+e.toDisplayString(o.microservice_status[s.name].count),1)]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(f)]))),128))]),_:1}),o.showDialog?(e.openBlock(),e.createBlock(w,{key:0,modelValue:o.showDialog,"onUpdate:modelValue":i[1]||(i[1]=s=>o.showDialog=s),content:o.jsonContent,type:"Microservice",name:o.dialogTitle,onSubmit:n.dialogCallback},null,8,["modelValue","content","name","onSubmit"])):e.createCommentVNode("",!0),o.showError?(e.openBlock(),e.createBlock(x,{key:1,modelValue:o.showError,"onUpdate:modelValue":i[2]||(i[2]=s=>o.showError=s),text:o.jsonContent,title:o.dialogTitle},null,8,["modelValue","text","title"])):e.createCommentVNode("",!0)])}const D=y._export_sfc(V,[["render",S],["__scopeId","data-v-61eec86a"]]);exports.default=D;
|
|
2
|
+
//# sourceMappingURL=MicroservicesTab-7mVRcHEj.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MicroservicesTab-BQywJ_ya.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.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-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\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","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","_cache","$event","_withCtx","_createTextVNode","_toDisplayString","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createBlock","_component_v_list_item_subtitle","_createCommentVNode","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MicroservicesTab-7mVRcHEj.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.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-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\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","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","_cache","$event","_withCtx","_createTextVNode","_toDisplayString","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createBlock","_component_v_list_item_subtitle","_createCommentVNode","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as u } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-
|
|
1
|
+
import { l as u } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js";
|
|
2
2
|
import { resolveComponent as r, createElementBlock as v, openBlock as m, createVNode as s, createBlock as f, createCommentVNode as g, withCtx as l, createTextVNode as w, toDisplayString as p, Fragment as V, renderList as A, withDirectives as E, vShow as j } from "vue";
|
|
3
3
|
import { _ as N } from "./CustomIcon-h5X7369N.js";
|
|
4
4
|
import "single-spa";
|
|
5
|
-
import { O } from "./OutputDialog-
|
|
5
|
+
import { O } from "./OutputDialog-CqD5uI0m.js";
|
|
6
6
|
import { T as U } from "./TextBoxDialog-C60jmnyN.js";
|
|
7
7
|
import { f as B, t as I } from "./format-CVeawcIv.js";
|
|
8
8
|
const J = {
|
|
@@ -216,4 +216,4 @@ const Q = /* @__PURE__ */ N(J, [["render", F], ["__scopeId", "data-v-61eec86a"]]
|
|
|
216
216
|
export {
|
|
217
217
|
Q as default
|
|
218
218
|
};
|
|
219
|
-
//# sourceMappingURL=MicroservicesTab-
|
|
219
|
+
//# sourceMappingURL=MicroservicesTab-CtI7BEt0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MicroservicesTab-DbL48MBc.js","sources":["../src/tools/admin/tabs/MicroservicesTab.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-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\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","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","_cache","$event","_withCtx","_createTextVNode","_toDisplayString","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createBlock","_component_v_list_item_subtitle","_createCommentVNode","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MicroservicesTab-CtI7BEt0.js","sources":["../src/tools/admin/tabs/MicroservicesTab.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-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\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","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","_cache","$event","_withCtx","_createTextVNode","_toDisplayString","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createBlock","_component_v_list_item_subtitle","_createCommentVNode","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
|