@openc3/vue-common 6.10.3 → 6.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/dist/{ArrayWidget-B35vCzAo.cjs → ArrayWidget-CIMbQsGW.cjs} +2 -2
  2. package/dist/{ArrayWidget-B35vCzAo.cjs.map → ArrayWidget-CIMbQsGW.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-Bc-Awsbn.js → ArrayWidget-DfiusKpM.js} +4 -4
  4. package/dist/{ArrayWidget-Bc-Awsbn.js.map → ArrayWidget-DfiusKpM.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-B67ip6aR.cjs → ArrayplotWidget-DrrqqJEu.cjs} +2 -2
  6. package/dist/{ArrayplotWidget-B67ip6aR.cjs.map → ArrayplotWidget-DrrqqJEu.cjs.map} +1 -1
  7. package/dist/{ArrayplotWidget-B9UGCr4-.js → ArrayplotWidget-DsvOovu9.js} +3 -3
  8. package/dist/{ArrayplotWidget-B9UGCr4-.js.map → ArrayplotWidget-DsvOovu9.js.map} +1 -1
  9. package/dist/{BarColumn-3fKM-em2.cjs → BarColumn-CWgcL5w1.cjs} +2 -2
  10. package/dist/{BarColumn-3fKM-em2.cjs.map → BarColumn-CWgcL5w1.cjs.map} +1 -1
  11. package/dist/{BarColumn-ClLBRGll.js → BarColumn-DHHJBR3V.js} +3 -3
  12. package/dist/{BarColumn-ClLBRGll.js.map → BarColumn-DHHJBR3V.js.map} +1 -1
  13. package/dist/{BlockWidget-DWexy9Dx.cjs → BlockWidget-7Ecn_42c.cjs} +2 -2
  14. package/dist/{BlockWidget-DWexy9Dx.cjs.map → BlockWidget-7Ecn_42c.cjs.map} +1 -1
  15. package/dist/{BlockWidget-CoQp-LZM.js → BlockWidget-BdYXWS_0.js} +4 -4
  16. package/dist/{BlockWidget-CoQp-LZM.js.map → BlockWidget-BdYXWS_0.js.map} +1 -1
  17. package/dist/{ButtonWidget-BBpVoIzj.cjs → ButtonWidget-DFxBj0MG.cjs} +2 -2
  18. package/dist/{ButtonWidget-BBpVoIzj.cjs.map → ButtonWidget-DFxBj0MG.cjs.map} +1 -1
  19. package/dist/{ButtonWidget-CTTwpFec.js → ButtonWidget-zpSJmiQT.js} +4 -4
  20. package/dist/{ButtonWidget-CTTwpFec.js.map → ButtonWidget-zpSJmiQT.js.map} +1 -1
  21. package/dist/{CanvasWidget-Qlx-Mo8v.cjs → CanvasWidget-C5-iZ-YT.cjs} +2 -2
  22. package/dist/{CanvasWidget-Qlx-Mo8v.cjs.map → CanvasWidget-C5-iZ-YT.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-jFarbJ3t.js → CanvasWidget-DaUB1G9X.js} +2 -2
  24. package/dist/{CanvasWidget-jFarbJ3t.js.map → CanvasWidget-DaUB1G9X.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-BoyUcwiB.js → CanvasdotWidget-C255aTVc.js} +2 -2
  26. package/dist/{CanvasdotWidget-BoyUcwiB.js.map → CanvasdotWidget-C255aTVc.js.map} +1 -1
  27. package/dist/{CanvasdotWidget-BROyk4FH.cjs → CanvasdotWidget-CCrgS1yO.cjs} +2 -2
  28. package/dist/{CanvasdotWidget-BROyk4FH.cjs.map → CanvasdotWidget-CCrgS1yO.cjs.map} +1 -1
  29. package/dist/{CanvasimageWidget-BvTJnGXu.cjs → CanvasimageWidget-B2Mm0dYq.cjs} +2 -2
  30. package/dist/{CanvasimageWidget-BvTJnGXu.cjs.map → CanvasimageWidget-B2Mm0dYq.cjs.map} +1 -1
  31. package/dist/{CanvasimageWidget-DmyCSnuQ.js → CanvasimageWidget-CFlUUFqr.js} +3 -3
  32. package/dist/{CanvasimageWidget-DmyCSnuQ.js.map → CanvasimageWidget-CFlUUFqr.js.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-CzVrDo-Z.cjs → CanvasimagevalueWidget-B1xVa3FB.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-CzVrDo-Z.cjs.map → CanvasimagevalueWidget-B1xVa3FB.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-CmbngMqv.js → CanvasimagevalueWidget-s4gR3fo5.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-CmbngMqv.js.map → CanvasimagevalueWidget-s4gR3fo5.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-BnvwV9MA.cjs → CanvaslabelWidget-CAtE3qq_.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-BnvwV9MA.cjs.map → CanvaslabelWidget-CAtE3qq_.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-D8NzLKqi.js → CanvaslabelWidget-CaOc-lTQ.js} +2 -2
  40. package/dist/{CanvaslabelWidget-D8NzLKqi.js.map → CanvaslabelWidget-CaOc-lTQ.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-DVnkclHD.cjs → CanvaslabelvalueWidget-CvVMrZsu.cjs} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-DVnkclHD.cjs.map → CanvaslabelvalueWidget-CvVMrZsu.cjs.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-DOybGI9D.js → CanvaslabelvalueWidget-hqJoPekq.js} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-DOybGI9D.js.map → CanvaslabelvalueWidget-hqJoPekq.js.map} +1 -1
  45. package/dist/{CanvaslineWidget-DgbXSH1K.cjs → CanvaslineWidget-CjPnyDod.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-DgbXSH1K.cjs.map → CanvaslineWidget-CjPnyDod.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-D2NEei7j.js → CanvaslineWidget-DebP2L43.js} +2 -2
  48. package/dist/{CanvaslineWidget-D2NEei7j.js.map → CanvaslineWidget-DebP2L43.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-Ctvv9owf.js → CanvaslinevalueWidget-BkPG5Vtx.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-Ctvv9owf.js.map → CanvaslinevalueWidget-BkPG5Vtx.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-E3NDHyPl.cjs → CanvaslinevalueWidget-Caadjtan.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-E3NDHyPl.cjs.map → CanvaslinevalueWidget-Caadjtan.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-BdvWAgg_.cjs → CheckbuttonWidget-CEOWZkt6.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-BdvWAgg_.cjs.map → CheckbuttonWidget-CEOWZkt6.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-CQeR0BMF.js → CheckbuttonWidget-eQIcPATf.js} +2 -2
  56. package/dist/{CheckbuttonWidget-CQeR0BMF.js.map → CheckbuttonWidget-eQIcPATf.js.map} +1 -1
  57. package/dist/{ClassificationBanners-0BNhyyMS.cjs → ClassificationBanners--l3qMxLo.cjs} +2 -2
  58. package/dist/{ClassificationBanners-0BNhyyMS.cjs.map → ClassificationBanners--l3qMxLo.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-STI2n2yD.js → ClassificationBanners-CFLQaZJ2.js} +2 -2
  60. package/dist/{ClassificationBanners-STI2n2yD.js.map → ClassificationBanners-CFLQaZJ2.js.map} +1 -1
  61. package/dist/{ComboboxWidget-4N-MagvN.js → ComboboxWidget-B5kzYxFk.js} +2 -2
  62. package/dist/{ComboboxWidget-4N-MagvN.js.map → ComboboxWidget-B5kzYxFk.js.map} +1 -1
  63. package/dist/{ComboboxWidget-Dh0q9xpJ.cjs → ComboboxWidget-BSs59QzI.cjs} +2 -2
  64. package/dist/{ComboboxWidget-Dh0q9xpJ.cjs.map → ComboboxWidget-BSs59QzI.cjs.map} +1 -1
  65. package/dist/{CriticalCmdDialog-trVtKZft.js → CriticalCmdDialog-BYHZbX2w.js} +2 -2
  66. package/dist/{CriticalCmdDialog-trVtKZft.js.map → CriticalCmdDialog-BYHZbX2w.js.map} +1 -1
  67. package/dist/{CriticalCmdDialog-Dy1cQZxQ.cjs → CriticalCmdDialog-BhjiJIo5.cjs} +2 -2
  68. package/dist/{CriticalCmdDialog-Dy1cQZxQ.cjs.map → CriticalCmdDialog-BhjiJIo5.cjs.map} +1 -1
  69. package/dist/{DateWidget-rYTjwUdb.js → DateWidget-1IZOe50K.js} +2 -2
  70. package/dist/{DateWidget-rYTjwUdb.js.map → DateWidget-1IZOe50K.js.map} +1 -1
  71. package/dist/{DateWidget-DXN7u3vL.cjs → DateWidget-DkVxE7Xj.cjs} +2 -2
  72. package/dist/{DateWidget-DXN7u3vL.cjs.map → DateWidget-DkVxE7Xj.cjs.map} +1 -1
  73. package/dist/{DetailsDialog-p_vutijL.js → DetailsDialog-D-rjL4oc.js} +3 -3
  74. package/dist/{DetailsDialog-p_vutijL.js.map → DetailsDialog-D-rjL4oc.js.map} +1 -1
  75. package/dist/{DetailsDialog-CLCCuoHV.cjs → DetailsDialog-lJG8eclU.cjs} +2 -2
  76. package/dist/{DetailsDialog-CLCCuoHV.cjs.map → DetailsDialog-lJG8eclU.cjs.map} +1 -1
  77. package/dist/EventListDialog-5UXvnmNE.cjs +2 -0
  78. package/dist/EventListDialog-5UXvnmNE.cjs.map +1 -0
  79. package/dist/{EventListDialog-BshKrOuQ.js → EventListDialog-Id3rEQKY.js} +221 -229
  80. package/dist/EventListDialog-Id3rEQKY.js.map +1 -0
  81. package/dist/{FilechecksumWidget-Ddlm1UED.cjs → FilechecksumWidget-D-5GSjyV.cjs} +2 -2
  82. package/dist/{FilechecksumWidget-Ddlm1UED.cjs.map → FilechecksumWidget-D-5GSjyV.cjs.map} +1 -1
  83. package/dist/{FilechecksumWidget-gcmXxJHl.js → FilechecksumWidget-F_FX1Kjx.js} +3 -3
  84. package/dist/{FilechecksumWidget-gcmXxJHl.js.map → FilechecksumWidget-F_FX1Kjx.js.map} +1 -1
  85. package/dist/{FiledisplayWidget-CqM549A4.js → FiledisplayWidget-BF3G22jF.js} +3 -3
  86. package/dist/{FiledisplayWidget-CqM549A4.js.map → FiledisplayWidget-BF3G22jF.js.map} +1 -1
  87. package/dist/{FiledisplayWidget-CYX4HChi.cjs → FiledisplayWidget-BHLOY_cM.cjs} +2 -2
  88. package/dist/{FiledisplayWidget-CYX4HChi.cjs.map → FiledisplayWidget-BHLOY_cM.cjs.map} +1 -1
  89. package/dist/{FormatvalueWidget-BEwH0C7S.js → FormatvalueWidget-BkF9iiHs.js} +3 -3
  90. package/dist/{FormatvalueWidget-BEwH0C7S.js.map → FormatvalueWidget-BkF9iiHs.js.map} +1 -1
  91. package/dist/{FormatvalueWidget-CpsyYKXD.cjs → FormatvalueWidget-DTsP7isW.cjs} +2 -2
  92. package/dist/{FormatvalueWidget-CpsyYKXD.cjs.map → FormatvalueWidget-DTsP7isW.cjs.map} +1 -1
  93. package/dist/{Graph-CbjlChwf.js → Graph-C-7C2Jq5.js} +139 -143
  94. package/dist/{Graph-CbjlChwf.js.map → Graph-C-7C2Jq5.js.map} +1 -1
  95. package/dist/Graph-YYieRGo0.cjs +2 -0
  96. package/dist/{Graph-kmTrth08.cjs.map → Graph-YYieRGo0.cjs.map} +1 -1
  97. package/dist/{GraphWidget-SamHg2AA.cjs → GraphWidget-C7hqdqL-.cjs} +2 -2
  98. package/dist/{GraphWidget-SamHg2AA.cjs.map → GraphWidget-C7hqdqL-.cjs.map} +1 -1
  99. package/dist/{GraphWidget-CjxnC0Dc.js → GraphWidget-DRkDn8za.js} +2 -2
  100. package/dist/{GraphWidget-CjxnC0Dc.js.map → GraphWidget-DRkDn8za.js.map} +1 -1
  101. package/dist/{HorizontalWidget-Dt8bkM3k.js → HorizontalWidget-DB64wzZB.js} +2 -2
  102. package/dist/{HorizontalWidget-Dt8bkM3k.js.map → HorizontalWidget-DB64wzZB.js.map} +1 -1
  103. package/dist/{HorizontalWidget-ByZjU21C.cjs → HorizontalWidget-h-U8i3G-.cjs} +2 -2
  104. package/dist/{HorizontalWidget-ByZjU21C.cjs.map → HorizontalWidget-h-U8i3G-.cjs.map} +1 -1
  105. package/dist/{HorizontalboxWidget-CdAZ5Sa6.js → HorizontalboxWidget-BsHsGlvK.js} +5 -5
  106. package/dist/{HorizontalboxWidget-CdAZ5Sa6.js.map → HorizontalboxWidget-BsHsGlvK.js.map} +1 -1
  107. package/dist/{HorizontalboxWidget-DzYz5SXs.cjs → HorizontalboxWidget-E4LUf2eN.cjs} +2 -2
  108. package/dist/{HorizontalboxWidget-DzYz5SXs.cjs.map → HorizontalboxWidget-E4LUf2eN.cjs.map} +1 -1
  109. package/dist/{HorizontallineWidget-CXZJTeU2.js → HorizontallineWidget-CyiexzIu.js} +2 -2
  110. package/dist/{HorizontallineWidget-CXZJTeU2.js.map → HorizontallineWidget-CyiexzIu.js.map} +1 -1
  111. package/dist/{HorizontallineWidget-C8Zhqxik.cjs → HorizontallineWidget-LibmHnAf.cjs} +2 -2
  112. package/dist/{HorizontallineWidget-C8Zhqxik.cjs.map → HorizontallineWidget-LibmHnAf.cjs.map} +1 -1
  113. package/dist/{IframeWidget-CrcWiAVE.js → IframeWidget-D9Vh0w2c.js} +2 -2
  114. package/dist/{IframeWidget-CrcWiAVE.js.map → IframeWidget-D9Vh0w2c.js.map} +1 -1
  115. package/dist/{IframeWidget-BuNXXziR.cjs → IframeWidget-xeXTxP_G.cjs} +2 -2
  116. package/dist/{IframeWidget-BuNXXziR.cjs.map → IframeWidget-xeXTxP_G.cjs.map} +1 -1
  117. package/dist/{ImageLoader-DPqax8yu.js → ImageLoader-B4iBPFyi.js} +2 -2
  118. package/dist/{ImageLoader-DPqax8yu.js.map → ImageLoader-B4iBPFyi.js.map} +1 -1
  119. package/dist/{ImageLoader-130w4tXJ.cjs → ImageLoader-Cc4-BNJv.cjs} +2 -2
  120. package/dist/{ImageLoader-130w4tXJ.cjs.map → ImageLoader-Cc4-BNJv.cjs.map} +1 -1
  121. package/dist/{ImageviewerWidget-CTEl6iPg.js → ImageviewerWidget-DqV4SClv.js} +2 -2
  122. package/dist/{ImageviewerWidget-CTEl6iPg.js.map → ImageviewerWidget-DqV4SClv.js.map} +1 -1
  123. package/dist/{ImageviewerWidget-CafLbLp2.cjs → ImageviewerWidget-KVt487SJ.cjs} +2 -2
  124. package/dist/{ImageviewerWidget-CafLbLp2.cjs.map → ImageviewerWidget-KVt487SJ.cjs.map} +1 -1
  125. package/dist/{InterfacesTab-B9ApLB5q.js → InterfacesTab-C310FRIP.js} +3 -3
  126. package/dist/{InterfacesTab-B9ApLB5q.js.map → InterfacesTab-C310FRIP.js.map} +1 -1
  127. package/dist/{InterfacesTab-wPQSLcSj.cjs → InterfacesTab-nZwg-ByS.cjs} +2 -2
  128. package/dist/{InterfacesTab-wPQSLcSj.cjs.map → InterfacesTab-nZwg-ByS.cjs.map} +1 -1
  129. package/dist/{LabelWidget-CPqKGMx0.js → LabelWidget-BDukcPet.js} +2 -2
  130. package/dist/{LabelWidget-CPqKGMx0.js.map → LabelWidget-BDukcPet.js.map} +1 -1
  131. package/dist/{LabelWidget-BfBP3Xme.cjs → LabelWidget-DYfv4K8h.cjs} +2 -2
  132. package/dist/{LabelWidget-BfBP3Xme.cjs.map → LabelWidget-DYfv4K8h.cjs.map} +1 -1
  133. package/dist/{LabelledWidget-CZvKfFNW.cjs → LabelledWidget-Dl1x6b3p.cjs} +2 -2
  134. package/dist/{LabelledWidget-CZvKfFNW.cjs.map → LabelledWidget-Dl1x6b3p.cjs.map} +1 -1
  135. package/dist/{LabelledWidget-BHYzRMFd.js → LabelledWidget-tVHE426s.js} +4 -4
  136. package/dist/{LabelledWidget-BHYzRMFd.js.map → LabelledWidget-tVHE426s.js.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-D9deeUo7.js → LabelprogressbarWidget-CjMDFUUv.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-D9deeUo7.js.map → LabelprogressbarWidget-CjMDFUUv.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-Bv0G5oT3.cjs → LabelprogressbarWidget-DcO0gRM4.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-Bv0G5oT3.cjs.map → LabelprogressbarWidget-DcO0gRM4.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-dyqEroDN.cjs → LabelsparklineWidget-Cp2a-qlI.cjs} +2 -2
  142. package/dist/{LabelsparklineWidget-dyqEroDN.cjs.map → LabelsparklineWidget-Cp2a-qlI.cjs.map} +1 -1
  143. package/dist/{LabelsparklineWidget-7mYre3CP.js → LabelsparklineWidget-dZl3cGu0.js} +4 -4
  144. package/dist/{LabelsparklineWidget-7mYre3CP.js.map → LabelsparklineWidget-dZl3cGu0.js.map} +1 -1
  145. package/dist/{LabelvalueWidget-Bsl7Z3wM.cjs → LabelvalueWidget-CgP4mzP_.cjs} +2 -2
  146. package/dist/{LabelvalueWidget-Bsl7Z3wM.cjs.map → LabelvalueWidget-CgP4mzP_.cjs.map} +1 -1
  147. package/dist/{LabelvalueWidget-NLsD60n4.js → LabelvalueWidget-UcAc_2Ry.js} +4 -4
  148. package/dist/{LabelvalueWidget-NLsD60n4.js.map → LabelvalueWidget-UcAc_2Ry.js.map} +1 -1
  149. package/dist/{LabelvaluedescWidget-B_Xih-c5.cjs → LabelvaluedescWidget-CXJ037Qs.cjs} +2 -2
  150. package/dist/{LabelvaluedescWidget-B_Xih-c5.cjs.map → LabelvaluedescWidget-CXJ037Qs.cjs.map} +1 -1
  151. package/dist/{LabelvaluedescWidget-DXROG4Gs.js → LabelvaluedescWidget-Crb8udVe.js} +5 -5
  152. package/dist/{LabelvaluedescWidget-DXROG4Gs.js.map → LabelvaluedescWidget-Crb8udVe.js.map} +1 -1
  153. package/dist/{LabelvaluelimitsbarWidget-DDd0RIs5.cjs → LabelvaluelimitsbarWidget-B3cn7i50.cjs} +2 -2
  154. package/dist/{LabelvaluelimitsbarWidget-DDd0RIs5.cjs.map → LabelvaluelimitsbarWidget-B3cn7i50.cjs.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-DqVqHF4W.js → LabelvaluelimitsbarWidget-BZGUQrRt.js} +4 -4
  156. package/dist/{LabelvaluelimitsbarWidget-DqVqHF4W.js.map → LabelvaluelimitsbarWidget-BZGUQrRt.js.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-C1aqkXh5.cjs → LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs} +2 -2
  158. package/dist/{LabelvaluelimitscolumnWidget-C1aqkXh5.cjs.map → LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-BK6_31pC.js → LabelvaluelimitscolumnWidget-NNYW2aMO.js} +5 -5
  160. package/dist/{LabelvaluelimitscolumnWidget-BK6_31pC.js.map → LabelvaluelimitscolumnWidget-NNYW2aMO.js.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-a8u5LXBD.cjs → LabelvaluerangebarWidget-B81fLpK0.cjs} +2 -2
  162. package/dist/{LabelvaluerangebarWidget-a8u5LXBD.cjs.map → LabelvaluerangebarWidget-B81fLpK0.cjs.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-DR7C8gqw.js → LabelvaluerangebarWidget-CjkVDlVJ.js} +4 -4
  164. package/dist/{LabelvaluerangebarWidget-DR7C8gqw.js.map → LabelvaluerangebarWidget-CjkVDlVJ.js.map} +1 -1
  165. package/dist/{Layout-B_Hgw3gd.js → Layout-FpBx3iic.js} +2 -2
  166. package/dist/{Layout-B_Hgw3gd.js.map → Layout-FpBx3iic.js.map} +1 -1
  167. package/dist/{Layout-CVGghwYm.cjs → Layout-K7_I6jMV.cjs} +2 -2
  168. package/dist/{Layout-CVGghwYm.cjs.map → Layout-K7_I6jMV.cjs.map} +1 -1
  169. package/dist/{LedWidget-CiAVs2tj.js → LedWidget-Bsp1aja-.js} +4 -4
  170. package/dist/{LedWidget-CiAVs2tj.js.map → LedWidget-Bsp1aja-.js.map} +1 -1
  171. package/dist/{LedWidget-Cmy47xfg.cjs → LedWidget-C19KREVz.cjs} +2 -2
  172. package/dist/{LedWidget-Cmy47xfg.cjs.map → LedWidget-C19KREVz.cjs.map} +1 -1
  173. package/dist/{LimitsBar-_UQG-M6e.js → LimitsBar-IVv8t4FE.js} +2 -2
  174. package/dist/{LimitsBar-_UQG-M6e.js.map → LimitsBar-IVv8t4FE.js.map} +1 -1
  175. package/dist/{LimitsBar-DTtMywOw.cjs → LimitsBar-LRiUSWd7.cjs} +2 -2
  176. package/dist/{LimitsBar-DTtMywOw.cjs.map → LimitsBar-LRiUSWd7.cjs.map} +1 -1
  177. package/dist/{LimitsbarWidget-CYm_f1FN.cjs → LimitsbarWidget-BFjMhTbA.cjs} +2 -2
  178. package/dist/{LimitsbarWidget-CYm_f1FN.cjs.map → LimitsbarWidget-BFjMhTbA.cjs.map} +1 -1
  179. package/dist/{LimitsbarWidget-CIwcOhC8.js → LimitsbarWidget-Bo1JAoQp.js} +3 -3
  180. package/dist/{LimitsbarWidget-CIwcOhC8.js.map → LimitsbarWidget-Bo1JAoQp.js.map} +1 -1
  181. package/dist/{LimitscolorWidget-oH6NGl1C.cjs → LimitscolorWidget-D214kS86.cjs} +2 -2
  182. package/dist/{LimitscolorWidget-oH6NGl1C.cjs.map → LimitscolorWidget-D214kS86.cjs.map} +1 -1
  183. package/dist/{LimitscolorWidget-CGPfJwvT.js → LimitscolorWidget-Doq8h_g1.js} +2 -2
  184. package/dist/{LimitscolorWidget-CGPfJwvT.js.map → LimitscolorWidget-Doq8h_g1.js.map} +1 -1
  185. package/dist/{LimitscolumnWidget-CnGOCckG.cjs → LimitscolumnWidget-BREF_CBr.cjs} +2 -2
  186. package/dist/{LimitscolumnWidget-CnGOCckG.cjs.map → LimitscolumnWidget-BREF_CBr.cjs.map} +1 -1
  187. package/dist/{LimitscolumnWidget-Bj_UPEC8.js → LimitscolumnWidget-qasXHN7m.js} +2 -2
  188. package/dist/{LimitscolumnWidget-Bj_UPEC8.js.map → LimitscolumnWidget-qasXHN7m.js.map} +1 -1
  189. package/dist/{LinegraphWidget-DccnHbWa.js → LinegraphWidget-BNMqcr_r.js} +4 -4
  190. package/dist/{LinegraphWidget-DccnHbWa.js.map → LinegraphWidget-BNMqcr_r.js.map} +1 -1
  191. package/dist/{LinegraphWidget-zHs3NG-6.cjs → LinegraphWidget-BhpYKxnT.cjs} +2 -2
  192. package/dist/{LinegraphWidget-zHs3NG-6.cjs.map → LinegraphWidget-BhpYKxnT.cjs.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-Dd-udu5V.cjs → MatrixbycolumnsWidget-BKXkhATe.cjs} +2 -2
  194. package/dist/{MatrixbycolumnsWidget-Dd-udu5V.cjs.map → MatrixbycolumnsWidget-BKXkhATe.cjs.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-U_NZ6aW-.js → MatrixbycolumnsWidget-BlF1CyIT.js} +3 -3
  196. package/dist/{MatrixbycolumnsWidget-U_NZ6aW-.js.map → MatrixbycolumnsWidget-BlF1CyIT.js.map} +1 -1
  197. package/dist/{MicroservicesTab-DXgSxZ0K.cjs → MicroservicesTab-BWFwBSuf.cjs} +2 -2
  198. package/dist/{MicroservicesTab-DXgSxZ0K.cjs.map → MicroservicesTab-BWFwBSuf.cjs.map} +1 -1
  199. package/dist/{MicroservicesTab-DG3rdksb.js → MicroservicesTab-xpDXKoa-.js} +3 -3
  200. package/dist/{MicroservicesTab-DG3rdksb.js.map → MicroservicesTab-xpDXKoa-.js.map} +1 -1
  201. package/dist/OpenC3TimePicker-6pE8gGCO.cjs +2 -0
  202. package/dist/OpenC3TimePicker-6pE8gGCO.cjs.map +1 -0
  203. package/dist/OpenC3TimePicker-D-_qqySI.js +219 -0
  204. package/dist/OpenC3TimePicker-D-_qqySI.js.map +1 -0
  205. package/dist/{Openc3Screen-CDwAWaTl.js → Openc3Screen-DYJHNotN.js} +707 -509
  206. package/dist/Openc3Screen-DYJHNotN.js.map +1 -0
  207. package/dist/Openc3Screen-Pu1ktpS8.cjs +6 -0
  208. package/dist/Openc3Screen-Pu1ktpS8.cjs.map +1 -0
  209. package/dist/{OutputDialog-D2YCbR20.cjs → OutputDialog-BwEWPQW9.cjs} +2 -2
  210. package/dist/{OutputDialog-D2YCbR20.cjs.map → OutputDialog-BwEWPQW9.cjs.map} +1 -1
  211. package/dist/{OutputDialog-Di-pSmJE.js → OutputDialog-x4QZFAWe.js} +2 -2
  212. package/dist/{OutputDialog-Di-pSmJE.js.map → OutputDialog-x4QZFAWe.js.map} +1 -1
  213. package/dist/{PackagesTab-C-fV9yxw.cjs → PackagesTab-CHwfaqdP.cjs} +2 -2
  214. package/dist/{PackagesTab-C-fV9yxw.cjs.map → PackagesTab-CHwfaqdP.cjs.map} +1 -1
  215. package/dist/{PackagesTab-Bui5q3rX.js → PackagesTab-rzc4hqOb.js} +3 -3
  216. package/dist/{PackagesTab-Bui5q3rX.js.map → PackagesTab-rzc4hqOb.js.map} +1 -1
  217. package/dist/{PluginsTab-DxxlKeVx.cjs → PluginsTab-C7gLbRQn.cjs} +2 -2
  218. package/dist/{PluginsTab-DxxlKeVx.cjs.map → PluginsTab-C7gLbRQn.cjs.map} +1 -1
  219. package/dist/{PluginsTab-zR9eZuvc.js → PluginsTab-Dff_0j26.js} +4 -4
  220. package/dist/{PluginsTab-zR9eZuvc.js.map → PluginsTab-Dff_0j26.js.map} +1 -1
  221. package/dist/{ProgressbarWidget-D4JtVzyk.js → ProgressbarWidget-DQ80NANH.js} +2 -2
  222. package/dist/{ProgressbarWidget-D4JtVzyk.js.map → ProgressbarWidget-DQ80NANH.js.map} +1 -1
  223. package/dist/{ProgressbarWidget-Cxvwcfgn.cjs → ProgressbarWidget-cQAtX_Q7.cjs} +2 -2
  224. package/dist/{ProgressbarWidget-Cxvwcfgn.cjs.map → ProgressbarWidget-cQAtX_Q7.cjs.map} +1 -1
  225. package/dist/{RadiobuttonWidget-Ccgftl13.cjs → RadiobuttonWidget-DFrUZRaV.cjs} +2 -2
  226. package/dist/{RadiobuttonWidget-Ccgftl13.cjs.map → RadiobuttonWidget-DFrUZRaV.cjs.map} +1 -1
  227. package/dist/{RadiobuttonWidget-BUaW7pRx.js → RadiobuttonWidget-LD18M4IQ.js} +2 -2
  228. package/dist/{RadiobuttonWidget-BUaW7pRx.js.map → RadiobuttonWidget-LD18M4IQ.js.map} +1 -1
  229. package/dist/{RadiogroupWidget-NIv4CaUQ.js → RadiogroupWidget-D_pt2MPz.js} +2 -2
  230. package/dist/{RadiogroupWidget-NIv4CaUQ.js.map → RadiogroupWidget-D_pt2MPz.js.map} +1 -1
  231. package/dist/{RadiogroupWidget-CSxjpxCr.cjs → RadiogroupWidget-ljP05k3g.cjs} +2 -2
  232. package/dist/{RadiogroupWidget-CSxjpxCr.cjs.map → RadiogroupWidget-ljP05k3g.cjs.map} +1 -1
  233. package/dist/{RangebarWidget-BtxfPo-U.cjs → RangebarWidget-BsLWXvTo.cjs} +2 -2
  234. package/dist/{RangebarWidget-BtxfPo-U.cjs.map → RangebarWidget-BsLWXvTo.cjs.map} +1 -1
  235. package/dist/{RangebarWidget-1-CsFpcl.js → RangebarWidget-DhaWpHjB.js} +2 -2
  236. package/dist/{RangebarWidget-1-CsFpcl.js.map → RangebarWidget-DhaWpHjB.js.map} +1 -1
  237. package/dist/{RedisTab-DuO-zUV3.js → RedisTab-C3yjh0JX.js} +2 -2
  238. package/dist/{RedisTab-DuO-zUV3.js.map → RedisTab-C3yjh0JX.js.map} +1 -1
  239. package/dist/{RedisTab-DOozcC9a.cjs → RedisTab-DEKMLop2.cjs} +2 -2
  240. package/dist/{RedisTab-DOozcC9a.cjs.map → RedisTab-DEKMLop2.cjs.map} +1 -1
  241. package/dist/{RollupWidget-ChasTJYP.js → RollupWidget-CMU1-HwL.js} +2 -2
  242. package/dist/{RollupWidget-ChasTJYP.js.map → RollupWidget-CMU1-HwL.js.map} +1 -1
  243. package/dist/{RollupWidget-CQxl1mlr.cjs → RollupWidget-sXTyo7zH.cjs} +2 -2
  244. package/dist/{RollupWidget-CQxl1mlr.cjs.map → RollupWidget-sXTyo7zH.cjs.map} +1 -1
  245. package/dist/{RoutersTab-C0UHSj-S.js → RoutersTab-DaWde6np.js} +3 -3
  246. package/dist/{RoutersTab-C0UHSj-S.js.map → RoutersTab-DaWde6np.js.map} +1 -1
  247. package/dist/{RoutersTab-DgWAXGUv.cjs → RoutersTab-IKuEHQeO.cjs} +2 -2
  248. package/dist/{RoutersTab-DgWAXGUv.cjs.map → RoutersTab-IKuEHQeO.cjs.map} +1 -1
  249. package/dist/{ScriptChooser-D1dddugi.cjs → ScriptChooser-BmyV6QQD.cjs} +2 -2
  250. package/dist/{ScriptChooser-D1dddugi.cjs.map → ScriptChooser-BmyV6QQD.cjs.map} +1 -1
  251. package/dist/{ScriptChooser-C5HHbbcP.js → ScriptChooser-DCjI5aeZ.js} +4 -4
  252. package/dist/{ScriptChooser-C5HHbbcP.js.map → ScriptChooser-DCjI5aeZ.js.map} +1 -1
  253. package/dist/{ScrollwindowWidget-Bkyjw0Qt.cjs → ScrollwindowWidget-BcLF_bhy.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-Bkyjw0Qt.cjs.map → ScrollwindowWidget-BcLF_bhy.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-Y2J758y6.js → ScrollwindowWidget-D7Ln-QMq.js} +2 -2
  256. package/dist/{ScrollwindowWidget-Y2J758y6.js.map → ScrollwindowWidget-D7Ln-QMq.js.map} +1 -1
  257. package/dist/{SecretsTab-Ds3kGOmd.cjs → SecretsTab-BM9HIjT_.cjs} +2 -2
  258. package/dist/{SecretsTab-Ds3kGOmd.cjs.map → SecretsTab-BM9HIjT_.cjs.map} +1 -1
  259. package/dist/{SecretsTab-c5g8Zk4g.js → SecretsTab-Dhal1RCq.js} +2 -2
  260. package/dist/{SecretsTab-c5g8Zk4g.js.map → SecretsTab-Dhal1RCq.js.map} +1 -1
  261. package/dist/SettingsTab-BrSkK_Fs.cjs +3 -0
  262. package/dist/SettingsTab-BrSkK_Fs.cjs.map +1 -0
  263. package/dist/{SettingsTab-CTd3_Ipy.js → SettingsTab-Dtj_AlEW.js} +249 -136
  264. package/dist/SettingsTab-Dtj_AlEW.js.map +1 -0
  265. package/dist/{SignalWidget-BkTXZpGV.cjs → SignalWidget-DHwveppA.cjs} +2 -2
  266. package/dist/{SignalWidget-BkTXZpGV.cjs.map → SignalWidget-DHwveppA.cjs.map} +1 -1
  267. package/dist/{SignalWidget-DFhHDicI.js → SignalWidget-PreTg4Mt.js} +2 -2
  268. package/dist/{SignalWidget-DFhHDicI.js.map → SignalWidget-PreTg4Mt.js.map} +1 -1
  269. package/dist/{SimpleTextDialog-Dv5ypyUQ.cjs → SimpleTextDialog-Bdw3jul4.cjs} +2 -2
  270. package/dist/{SimpleTextDialog-Dv5ypyUQ.cjs.map → SimpleTextDialog-Bdw3jul4.cjs.map} +1 -1
  271. package/dist/{SimpleTextDialog-CXIEKlX0.js → SimpleTextDialog-DDIm5Znf.js} +2 -2
  272. package/dist/{SimpleTextDialog-CXIEKlX0.js.map → SimpleTextDialog-DDIm5Znf.js.map} +1 -1
  273. package/dist/{SpacerWidget-D4KojaGb.js → SpacerWidget-Chy1NO28.js} +2 -2
  274. package/dist/{SpacerWidget-D4KojaGb.js.map → SpacerWidget-Chy1NO28.js.map} +1 -1
  275. package/dist/{SpacerWidget-HsSCc07C.cjs → SpacerWidget-Cj-j_MsG.cjs} +2 -2
  276. package/dist/{SpacerWidget-HsSCc07C.cjs.map → SpacerWidget-Cj-j_MsG.cjs.map} +1 -1
  277. package/dist/{SparklineWidget-BdRM-ymk.cjs → SparklineWidget-BE1LieLF.cjs} +2 -2
  278. package/dist/{SparklineWidget-BdRM-ymk.cjs.map → SparklineWidget-BE1LieLF.cjs.map} +1 -1
  279. package/dist/{SparklineWidget-DMHFzw8L.js → SparklineWidget-Bb-gCNNt.js} +4 -4
  280. package/dist/{SparklineWidget-DMHFzw8L.js.map → SparklineWidget-Bb-gCNNt.js.map} +1 -1
  281. package/dist/{TabbookWidget-NmIK-Lgf.cjs → TabbookWidget-FNbiZpjn.cjs} +2 -2
  282. package/dist/{TabbookWidget-NmIK-Lgf.cjs.map → TabbookWidget-FNbiZpjn.cjs.map} +1 -1
  283. package/dist/{TabbookWidget-NVLYMdFG.js → TabbookWidget-a-LsBhBE.js} +2 -2
  284. package/dist/{TabbookWidget-NVLYMdFG.js.map → TabbookWidget-a-LsBhBE.js.map} +1 -1
  285. package/dist/TargetPacketItemChooser-BPRByyfB.cjs +2 -0
  286. package/dist/TargetPacketItemChooser-BPRByyfB.cjs.map +1 -0
  287. package/dist/{TargetPacketItemChooser-D5h9Octy.js → TargetPacketItemChooser-DDqBQTWC.js} +179 -146
  288. package/dist/TargetPacketItemChooser-DDqBQTWC.js.map +1 -0
  289. package/dist/{TargetsTab-b35HgnRl.js → TargetsTab-C7Pn5-19.js} +3 -3
  290. package/dist/{TargetsTab-b35HgnRl.js.map → TargetsTab-C7Pn5-19.js.map} +1 -1
  291. package/dist/{TargetsTab-JLjpJ1wn.cjs → TargetsTab-dndajwC_.cjs} +2 -2
  292. package/dist/{TargetsTab-JLjpJ1wn.cjs.map → TargetsTab-dndajwC_.cjs.map} +1 -1
  293. package/dist/{TextboxWidget-CrMYPQIF.js → TextboxWidget-DIHEOldN.js} +4 -4
  294. package/dist/{TextboxWidget-CrMYPQIF.js.map → TextboxWidget-DIHEOldN.js.map} +1 -1
  295. package/dist/{TextboxWidget-xk3OFSUZ.cjs → TextboxWidget-DYTNipbi.cjs} +2 -2
  296. package/dist/{TextboxWidget-xk3OFSUZ.cjs.map → TextboxWidget-DYTNipbi.cjs.map} +1 -1
  297. package/dist/{TextfieldWidget-DnnKM6vS.cjs → TextfieldWidget-BE-HpIKs.cjs} +2 -2
  298. package/dist/{TextfieldWidget-DnnKM6vS.cjs.map → TextfieldWidget-BE-HpIKs.cjs.map} +1 -1
  299. package/dist/{TextfieldWidget-DMBQwtnb.js → TextfieldWidget-CIBo7Dau.js} +2 -2
  300. package/dist/{TextfieldWidget-DMBQwtnb.js.map → TextfieldWidget-CIBo7Dau.js.map} +1 -1
  301. package/dist/TimeWidget-CLuOYfPP.js +43 -0
  302. package/dist/TimeWidget-CLuOYfPP.js.map +1 -0
  303. package/dist/TimeWidget-RYL7zDoC.cjs +2 -0
  304. package/dist/TimeWidget-RYL7zDoC.cjs.map +1 -0
  305. package/dist/{TitleWidget-V1FGI8l3.js → TitleWidget-BTHKLAsb.js} +2 -2
  306. package/dist/{TitleWidget-V1FGI8l3.js.map → TitleWidget-BTHKLAsb.js.map} +1 -1
  307. package/dist/{TitleWidget-CfFyUkSu.cjs → TitleWidget-DVWOhZqJ.cjs} +2 -2
  308. package/dist/{TitleWidget-CfFyUkSu.cjs.map → TitleWidget-DVWOhZqJ.cjs.map} +1 -1
  309. package/dist/{ToolsTab-jUNdj09m.cjs → ToolsTab-D4LFT4tV.cjs} +2 -2
  310. package/dist/{ToolsTab-jUNdj09m.cjs.map → ToolsTab-D4LFT4tV.cjs.map} +1 -1
  311. package/dist/{ToolsTab-7qOQPnN3.js → ToolsTab-D5yhjVM0.js} +3 -3
  312. package/dist/{ToolsTab-7qOQPnN3.js.map → ToolsTab-D5yhjVM0.js.map} +1 -1
  313. package/dist/{TopBar-DdOFDiCo.cjs → TopBar-DUdrFsMv.cjs} +2 -2
  314. package/dist/{TopBar-DdOFDiCo.cjs.map → TopBar-DUdrFsMv.cjs.map} +1 -1
  315. package/dist/{TopBar-BkwvK0oj.js → TopBar-DzxJ69Tt.js} +2 -2
  316. package/dist/{TopBar-BkwvK0oj.js.map → TopBar-DzxJ69Tt.js.map} +1 -1
  317. package/dist/{UpgradeToEnterpriseDialog-CEUcvlkx.js → UpgradeToEnterpriseDialog-Bf6rEOgp.js} +2 -2
  318. package/dist/{UpgradeToEnterpriseDialog-CEUcvlkx.js.map → UpgradeToEnterpriseDialog-Bf6rEOgp.js.map} +1 -1
  319. package/dist/{UpgradeToEnterpriseDialog-CP-jJxU4.cjs → UpgradeToEnterpriseDialog-CujyHt2o.cjs} +2 -2
  320. package/dist/{UpgradeToEnterpriseDialog-CP-jJxU4.cjs.map → UpgradeToEnterpriseDialog-CujyHt2o.cjs.map} +1 -1
  321. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs} +77 -77
  322. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs.map} +1 -1
  323. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js} +5471 -5449
  324. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js.map} +1 -1
  325. package/dist/{VWidget-rAFU-0vj.js → VWidget-BcwkHuIT.js} +3 -3
  326. package/dist/{VWidget-rAFU-0vj.js.map → VWidget-BcwkHuIT.js.map} +1 -1
  327. package/dist/{VWidget-BJArPtqI.cjs → VWidget-CbdjSkP3.cjs} +2 -2
  328. package/dist/{VWidget-BJArPtqI.cjs.map → VWidget-CbdjSkP3.cjs.map} +1 -1
  329. package/dist/{ValueWidget-BI3uXmda.js → ValueWidget-BubIamVx.js} +4 -4
  330. package/dist/{ValueWidget-BI3uXmda.js.map → ValueWidget-BubIamVx.js.map} +1 -1
  331. package/dist/{ValueWidget-CwuH7beM.cjs → ValueWidget-CgAl2Av2.cjs} +2 -2
  332. package/dist/{ValueWidget-CwuH7beM.cjs.map → ValueWidget-CgAl2Av2.cjs.map} +1 -1
  333. package/dist/{ValuelimitsbarWidget-BGSJLpw4.js → ValuelimitsbarWidget-DKTrV1RT.js} +4 -4
  334. package/dist/{ValuelimitsbarWidget-BGSJLpw4.js.map → ValuelimitsbarWidget-DKTrV1RT.js.map} +1 -1
  335. package/dist/{ValuelimitsbarWidget-BSkGhA_y.cjs → ValuelimitsbarWidget-Dn_sS0zt.cjs} +2 -2
  336. package/dist/{ValuelimitsbarWidget-BSkGhA_y.cjs.map → ValuelimitsbarWidget-Dn_sS0zt.cjs.map} +1 -1
  337. package/dist/{ValuelimitscolumnWidget-BXdPahDO.cjs → ValuelimitscolumnWidget-CGhifOZI.cjs} +2 -2
  338. package/dist/{ValuelimitscolumnWidget-BXdPahDO.cjs.map → ValuelimitscolumnWidget-CGhifOZI.cjs.map} +1 -1
  339. package/dist/{ValuelimitscolumnWidget-CaNjHy4v.js → ValuelimitscolumnWidget-D8JIK4Zi.js} +4 -4
  340. package/dist/{ValuelimitscolumnWidget-CaNjHy4v.js.map → ValuelimitscolumnWidget-D8JIK4Zi.js.map} +1 -1
  341. package/dist/{ValuerangebarWidget-Do40-aaL.js → ValuerangebarWidget-D8hVKp0l.js} +4 -4
  342. package/dist/{ValuerangebarWidget-Do40-aaL.js.map → ValuerangebarWidget-D8hVKp0l.js.map} +1 -1
  343. package/dist/{ValuerangebarWidget-DvWGqBNM.cjs → ValuerangebarWidget-DPtR-Dla.cjs} +2 -2
  344. package/dist/{ValuerangebarWidget-DvWGqBNM.cjs.map → ValuerangebarWidget-DPtR-Dla.cjs.map} +1 -1
  345. package/dist/{VerticalWidget-DZqghqIm.js → VerticalWidget-DMp3DXGa.js} +2 -2
  346. package/dist/{VerticalWidget-DZqghqIm.js.map → VerticalWidget-DMp3DXGa.js.map} +1 -1
  347. package/dist/{VerticalWidget-y238HI2A.cjs → VerticalWidget-DScGTfwX.cjs} +2 -2
  348. package/dist/{VerticalWidget-y238HI2A.cjs.map → VerticalWidget-DScGTfwX.cjs.map} +1 -1
  349. package/dist/{VerticalboxWidget--dgKnG5Z.cjs → VerticalboxWidget-CIJ1c7WU.cjs} +2 -2
  350. package/dist/{VerticalboxWidget--dgKnG5Z.cjs.map → VerticalboxWidget-CIJ1c7WU.cjs.map} +1 -1
  351. package/dist/{VerticalboxWidget-CQ__4FcS.js → VerticalboxWidget-CVf1d_3_.js} +5 -5
  352. package/dist/{VerticalboxWidget-CQ__4FcS.js.map → VerticalboxWidget-CVf1d_3_.js.map} +1 -1
  353. package/dist/{Widget-DdxHKVWn.cjs → Widget-Btu2EoLT.cjs} +2 -2
  354. package/dist/{Widget-DdxHKVWn.cjs.map → Widget-Btu2EoLT.cjs.map} +1 -1
  355. package/dist/{Widget-6-Nvewdp.js → Widget-D4rzBHnr.js} +2 -2
  356. package/dist/{Widget-6-Nvewdp.js.map → Widget-D4rzBHnr.js.map} +1 -1
  357. package/dist/components.cjs +3 -3
  358. package/dist/components.cjs.map +1 -1
  359. package/dist/components.js +383 -218
  360. package/dist/components.js.map +1 -1
  361. package/dist/plugins.cjs.map +1 -1
  362. package/dist/plugins.js.map +1 -1
  363. package/dist/{settings-BCE3SW-9.cjs → settings-B9vbjzwV.cjs} +2 -2
  364. package/dist/{settings-BCE3SW-9.cjs.map → settings-B9vbjzwV.cjs.map} +1 -1
  365. package/dist/{settings-CHPWZcnU.js → settings-Ctcx_wMT.js} +2 -2
  366. package/dist/{settings-CHPWZcnU.js.map → settings-Ctcx_wMT.js.map} +1 -1
  367. package/dist/tools/admin.cjs +4 -5
  368. package/dist/tools/admin.cjs.map +1 -1
  369. package/dist/tools/admin.js +936 -823
  370. package/dist/tools/admin.js.map +1 -1
  371. package/dist/tools/base.cjs +1 -1
  372. package/dist/tools/base.js +3 -3
  373. package/dist/tools/calendar.cjs +1 -1
  374. package/dist/tools/calendar.js +1 -1
  375. package/dist/tools/scriptrunner.cjs +8 -8
  376. package/dist/tools/scriptrunner.cjs.map +1 -1
  377. package/dist/tools/scriptrunner.js +905 -976
  378. package/dist/tools/scriptrunner.js.map +1 -1
  379. package/dist/vue-common.css +1 -1
  380. package/dist/widgets.cjs +1 -1
  381. package/dist/widgets.js +64 -64
  382. package/package.json +4 -4
  383. package/dist/EventListDialog-BshKrOuQ.js.map +0 -1
  384. package/dist/EventListDialog-D0iBpLSR.cjs +0 -2
  385. package/dist/EventListDialog-D0iBpLSR.cjs.map +0 -1
  386. package/dist/Graph-kmTrth08.cjs +0 -2
  387. package/dist/Openc3Screen-CDwAWaTl.js.map +0 -1
  388. package/dist/Openc3Screen-CKs-49JN.cjs +0 -6
  389. package/dist/Openc3Screen-CKs-49JN.cjs.map +0 -1
  390. package/dist/SettingsTab-CTd3_Ipy.js.map +0 -1
  391. package/dist/SettingsTab-DMPRJELP.cjs +0 -3
  392. package/dist/SettingsTab-DMPRJELP.cjs.map +0 -1
  393. package/dist/TargetPacketItemChooser-B0IVMSib.cjs +0 -2
  394. package/dist/TargetPacketItemChooser-B0IVMSib.cjs.map +0 -1
  395. package/dist/TargetPacketItemChooser-D5h9Octy.js.map +0 -1
  396. package/dist/TimeWidget-CWLJZ2bt.js +0 -40
  397. package/dist/TimeWidget-CWLJZ2bt.js.map +0 -1
  398. package/dist/TimeWidget-W-flXfLb.cjs +0 -2
  399. package/dist/TimeWidget-W-flXfLb.cjs.map +0 -1
@@ -1,5 +1,5 @@
1
- import { B as s } from "./BarColumn-ClLBRGll.js";
2
- import { L as l } from "./LimitsBar-_UQG-M6e.js";
1
+ import { B as s } from "./BarColumn-DHHJBR3V.js";
2
+ import { L as l } from "./LimitsBar-IVv8t4FE.js";
3
3
  import { resolveComponent as m, createBlock as h, createCommentVNode as o, openBlock as n } from "vue";
4
4
  import { _ as a } from "./CustomIcon-B9m73Gqm.js";
5
5
  const d = {
@@ -62,4 +62,4 @@ const B = /* @__PURE__ */ a(d, [["render", c]]);
62
62
  export {
63
63
  B as default
64
64
  };
65
- //# sourceMappingURL=LimitsbarWidget-CIwcOhC8.js.map
65
+ //# sourceMappingURL=LimitsbarWidget-Bo1JAoQp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LimitsbarWidget-CIwcOhC8.js","sources":["../src/widgets/LimitsbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <LimitsBar\n v-if=\"limits\"\n :red-low=\"limits[0]\"\n :yellow-low=\"limits[1]\"\n :yellow-high=\"limits[2]\"\n :red-high=\"limits[3]\"\n :green-low=\"limits[4]\"\n :green-high=\"limits[5]\"\n :width=\"width\"\n :height=\"height\"\n :computed-style=\"mergedStyle\"\n :hide-tooltip=\"!!tooltipText\"\n />\n</template>\n\n<script>\nimport BarColumn from './BarColumn'\nimport LimitsBar from '../components/LimitsBar.vue'\n\nexport default {\n components: {\n LimitsBar,\n },\n mixins: [BarColumn],\n data() {\n return {\n width: 160, // px\n height: 22, // px\n }\n },\n computed: {\n limits() {\n let values = this.limitsSettings[this.selectedLimitsSet]\n if (values) {\n return values\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: 'LIMITSBAR',\n parameters: this.parameters,\n message: 'Item has no limits settings',\n usage: 'Only items with limits',\n }\n }\n },\n mergedStyle() {\n // Merge cssProps from BarColumn with computedStyle from Widget\n return { ...this.cssProps, ...this.computedStyle }\n },\n },\n created() {\n this.verifyNumParams(\n 'LIMITSBAR',\n 3,\n 6,\n 'LIMITSBAR <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH> <HEIGHT>',\n )\n },\n}\n</script>\n"],"names":["_sfc_main","LimitsBar","BarColumn","values","$options","_createBlock","_component_LimitsBar","$data","_ctx"],"mappings":";;;;AAsCA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,WAAAC;AAAA;EAEF,QAAQ,CAACC,CAAS;AAAA,EAClB,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA;AAAA,MACP,QAAQ;AAAA;AAAA,IACV;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AACP,UAAIC,IAAS,KAAK,eAAe,KAAK,iBAAiB;AACvD,UAAIA;AACF,eAAOA;AAGP,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,IAEJ;AAAA,IACA,cAAc;AAEZ,aAAO,EAAE,GAAG,KAAK,UAAU,GAAG,KAAK,cAAY;AAAA,IACjD;AAAA;EAEF,UAAU;AACR,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;SA3DUC,EAAA,eADRC,EAYEC,GAAA;AAAA;IAVC,WAASF,EAAA,OAAM,CAAA;AAAA,IACf,cAAYA,EAAA,OAAM,CAAA;AAAA,IAClB,eAAaA,EAAA,OAAM,CAAA;AAAA,IACnB,YAAUA,EAAA,OAAM,CAAA;AAAA,IAChB,aAAWA,EAAA,OAAM,CAAA;AAAA,IACjB,cAAYA,EAAA,OAAM,CAAA;AAAA,IAClB,OAAOG,EAAA;AAAA,IACP,QAAQA,EAAA;AAAA,IACR,kBAAgBH,EAAA;AAAA,IAChB,kBAAgBI,EAAA;AAAA;;;"}
1
+ {"version":3,"file":"LimitsbarWidget-Bo1JAoQp.js","sources":["../src/widgets/LimitsbarWidget.vue"],"sourcesContent":["<!--\n# Copyright 2025 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <LimitsBar\n v-if=\"limits\"\n :red-low=\"limits[0]\"\n :yellow-low=\"limits[1]\"\n :yellow-high=\"limits[2]\"\n :red-high=\"limits[3]\"\n :green-low=\"limits[4]\"\n :green-high=\"limits[5]\"\n :width=\"width\"\n :height=\"height\"\n :computed-style=\"mergedStyle\"\n :hide-tooltip=\"!!tooltipText\"\n />\n</template>\n\n<script>\nimport BarColumn from './BarColumn'\nimport LimitsBar from '../components/LimitsBar.vue'\n\nexport default {\n components: {\n LimitsBar,\n },\n mixins: [BarColumn],\n data() {\n return {\n width: 160, // px\n height: 22, // px\n }\n },\n computed: {\n limits() {\n let values = this.limitsSettings[this.selectedLimitsSet]\n if (values) {\n return values\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: 'LIMITSBAR',\n parameters: this.parameters,\n message: 'Item has no limits settings',\n usage: 'Only items with limits',\n }\n }\n },\n mergedStyle() {\n // Merge cssProps from BarColumn with computedStyle from Widget\n return { ...this.cssProps, ...this.computedStyle }\n },\n },\n created() {\n this.verifyNumParams(\n 'LIMITSBAR',\n 3,\n 6,\n 'LIMITSBAR <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH> <HEIGHT>',\n )\n },\n}\n</script>\n"],"names":["_sfc_main","LimitsBar","BarColumn","values","$options","_createBlock","_component_LimitsBar","$data","_ctx"],"mappings":";;;;AAsCA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,WAAAC;AAAA;EAEF,QAAQ,CAACC,CAAS;AAAA,EAClB,OAAO;AACL,WAAO;AAAA,MACL,OAAO;AAAA;AAAA,MACP,QAAQ;AAAA;AAAA,IACV;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AACP,UAAIC,IAAS,KAAK,eAAe,KAAK,iBAAiB;AACvD,UAAIA;AACF,eAAOA;AAGP,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,IAEJ;AAAA,IACA,cAAc;AAEZ,aAAO,EAAE,GAAG,KAAK,UAAU,GAAG,KAAK,cAAY;AAAA,IACjD;AAAA;EAEF,UAAU;AACR,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;SA3DUC,EAAA,eADRC,EAYEC,GAAA;AAAA;IAVC,WAASF,EAAA,OAAM,CAAA;AAAA,IACf,cAAYA,EAAA,OAAM,CAAA;AAAA,IAClB,eAAaA,EAAA,OAAM,CAAA;AAAA,IACnB,YAAUA,EAAA,OAAM,CAAA;AAAA,IAChB,aAAWA,EAAA,OAAM,CAAA;AAAA,IACjB,cAAYA,EAAA,OAAM,CAAA;AAAA,IAClB,OAAOG,EAAA;AAAA,IACP,QAAQA,EAAA;AAAA,IACR,kBAAgBH,EAAA;AAAA,IAChB,kBAAgBI,EAAA;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./VWidget-BJArPtqI.cjs"),e=require("vue"),i=require("./CustomIcon-CEc927h0.cjs"),o={mixins:[l.VWidget],data(){return{radius:15,fullLabelDisplay:!1,displayLabel:!0}},computed:{labelName(){return this.fullLabelDisplay?[this.parameters[0]+" "+this.parameters[1]+" "+this.parameters[2]]:[this.parameters[2]]},cssProps(){return{"--height":this.radius+"px","--width":this.radius+"px"}},myComputedStyle(){const t={...this.computedStyle};return delete t.flex,t}},created(){this.parameters[4]&&(this.radius=parseInt(this.parameters[4])),this.parameters[5]&&(this.parameters[5].toLowerCase()==="true"?this.fullLabelDisplay=!0:this.parameters[5].toLowerCase()==="nil"?this.displayLabel=!1:this.parameters[5].toLowerCase()==="none"&&(this.displayLabel=!1))},methods:{getType(){let t="CONVERTED";return this.parameters[3]&&(t=this.parameters[3]),t}}};function n(t,m,d,u,r,s){const a=e.resolveComponent("label-widget");return e.openBlock(),e.createElementBlock("div",{ref:"container",class:"d-flex flex-row",style:e.normalizeStyle(s.myComputedStyle)},[e.createElementVNode("div",{class:e.normalizeClass(`led align-self-center ${t.limitsColor}`),style:e.normalizeStyle(s.cssProps)},null,6),r.displayLabel?(e.openBlock(),e.createBlock(a,{key:0,parameters:s.labelName,settings:t.appliedSettings,style:e.normalizeStyle(t.computedStyle),"widget-index":1},null,8,["parameters","settings","style"])):e.createCommentVNode("",!0)],4)}const p=i._export_sfc(o,[["render",n],["__scopeId","data-v-2908b131"]]);exports.default=p;
2
- //# sourceMappingURL=LimitscolorWidget-oH6NGl1C.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./VWidget-CbdjSkP3.cjs"),e=require("vue"),i=require("./CustomIcon-CEc927h0.cjs"),o={mixins:[l.VWidget],data(){return{radius:15,fullLabelDisplay:!1,displayLabel:!0}},computed:{labelName(){return this.fullLabelDisplay?[this.parameters[0]+" "+this.parameters[1]+" "+this.parameters[2]]:[this.parameters[2]]},cssProps(){return{"--height":this.radius+"px","--width":this.radius+"px"}},myComputedStyle(){const t={...this.computedStyle};return delete t.flex,t}},created(){this.parameters[4]&&(this.radius=parseInt(this.parameters[4])),this.parameters[5]&&(this.parameters[5].toLowerCase()==="true"?this.fullLabelDisplay=!0:this.parameters[5].toLowerCase()==="nil"?this.displayLabel=!1:this.parameters[5].toLowerCase()==="none"&&(this.displayLabel=!1))},methods:{getType(){let t="CONVERTED";return this.parameters[3]&&(t=this.parameters[3]),t}}};function n(t,m,d,u,r,s){const a=e.resolveComponent("label-widget");return e.openBlock(),e.createElementBlock("div",{ref:"container",class:"d-flex flex-row",style:e.normalizeStyle(s.myComputedStyle)},[e.createElementVNode("div",{class:e.normalizeClass(`led align-self-center ${t.limitsColor}`),style:e.normalizeStyle(s.cssProps)},null,6),r.displayLabel?(e.openBlock(),e.createBlock(a,{key:0,parameters:s.labelName,settings:t.appliedSettings,style:e.normalizeStyle(t.computedStyle),"widget-index":1},null,8,["parameters","settings","style"])):e.createCommentVNode("",!0)],4)}const p=i._export_sfc(o,[["render",n],["__scopeId","data-v-2908b131"]]);exports.default=p;
2
+ //# sourceMappingURL=LimitscolorWidget-D214kS86.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"LimitscolorWidget-oH6NGl1C.cjs","sources":["../src/widgets/LimitscolorWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"myComputedStyle\">\n <div\n :class=\"`led align-self-center ${limitsColor}`\"\n :style=\"cssProps\"\n ></div>\n <label-widget\n v-if=\"displayLabel\"\n :parameters=\"labelName\"\n :settings=\"appliedSettings\"\n :style=\"computedStyle\"\n :widget-index=\"1\"\n />\n </div>\n</template>\n\n<script>\nimport VWidget from './VWidget'\nexport default {\n mixins: [VWidget],\n data() {\n return {\n radius: 15,\n fullLabelDisplay: false,\n displayLabel: true,\n }\n },\n computed: {\n labelName() {\n // LabelWidget uses index 0 from the parameters prop\n // so create an array with the label text in the first position\n if (this.fullLabelDisplay) {\n return [\n this.parameters[0] +\n ' ' +\n this.parameters[1] +\n ' ' +\n this.parameters[2],\n ]\n } else {\n return [this.parameters[2]]\n }\n },\n cssProps() {\n return {\n '--height': this.radius + 'px',\n '--width': this.radius + 'px',\n }\n },\n myComputedStyle() {\n // Remove the flex property from the computedStyle object\n // because if they choose not to display the label\n // the flex property makes it difficult to line up a custom LABEL widget\n const style = { ...this.computedStyle }\n delete style.flex\n return style\n },\n },\n created() {\n if (this.parameters[4]) {\n this.radius = parseInt(this.parameters[4])\n }\n if (this.parameters[5]) {\n if (this.parameters[5].toLowerCase() === 'true') {\n this.fullLabelDisplay = true\n } else if (this.parameters[5].toLowerCase() === 'nil') {\n this.displayLabel = false\n } else if (this.parameters[5].toLowerCase() === 'none') {\n this.displayLabel = false\n }\n }\n },\n methods: {\n getType() {\n let type = 'CONVERTED'\n if (this.parameters[3]) {\n type = this.parameters[3]\n }\n return type\n },\n },\n}\n</script>\n\n<style scoped>\n.led {\n height: var(--height);\n width: var(--width);\n background-color: var(--color);\n border-radius: 50%;\n}\n/* The background-colors match the values in LimitsbarWidget.vue */\n.red {\n background-color: rgb(255, 45, 45);\n}\n.yellow {\n background-color: rgb(255, 220, 0);\n}\n.green {\n background-color: rgb(0, 200, 0);\n}\n.blue {\n background-color: rgb(0, 153, 255);\n}\n</style>\n"],"names":["_sfc_main","VWidget","style","type","_createElementBlock","$options","_createElementVNode","_ctx","$data","_createBlock","_component_label_widget"],"mappings":"kLAwCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,OAAO,EAChB,MAAO,CACL,MAAO,CACL,OAAQ,GACR,iBAAkB,GAClB,aAAc,EAChB,CACF,EACA,SAAU,CACR,WAAY,CAGV,OAAI,KAAK,iBACA,CACL,KAAK,WAAW,CAAC,EACf,IACA,KAAK,WAAW,CAAC,EACjB,IACA,KAAK,WAAW,CAAC,CACrB,EAEO,CAAC,KAAK,WAAW,CAAC,CAAC,CAE9B,EACA,UAAW,CACT,MAAO,CACL,WAAY,KAAK,OAAS,KAC1B,UAAW,KAAK,OAAS,IAC3B,CACF,EACA,iBAAkB,CAIhB,MAAMC,EAAQ,CAAE,GAAG,KAAK,aAAY,EACpC,cAAOA,EAAM,KACNA,CACT,GAEF,SAAU,CACJ,KAAK,WAAW,CAAC,IACnB,KAAK,OAAS,SAAS,KAAK,WAAW,CAAC,CAAC,GAEvC,KAAK,WAAW,CAAC,IACf,KAAK,WAAW,CAAC,EAAE,YAAW,IAAO,OACvC,KAAK,iBAAmB,GACf,KAAK,WAAW,CAAC,EAAE,YAAW,IAAO,MAC9C,KAAK,aAAe,GACX,KAAK,WAAW,CAAC,EAAE,YAAW,IAAO,SAC9C,KAAK,aAAe,IAG1B,EACA,QAAS,CACP,SAAU,CACR,IAAIC,EAAO,YACX,OAAI,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAEnBA,CACT,EAEJ,0FAhFEC,EAAAA,mBAYM,MAAA,CAZD,IAAI,YAAY,MAAM,kBAAmB,uBAAOC,EAAA,eAAe,IAClEC,EAAAA,mBAGO,MAAA,CAFJ,gDAAgCC,EAAA,WAAW,EAAA,EAC3C,uBAAOF,EAAA,QAAQ,WAGVG,EAAA,4BADRC,EAAAA,YAMEC,EAAA,OAJC,WAAYL,EAAA,UACZ,SAAUE,EAAA,gBACV,uBAAOA,EAAA,aAAa,EACpB,eAAc"}
1
+ {"version":3,"file":"LimitscolorWidget-D214kS86.cjs","sources":["../src/widgets/LimitscolorWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"myComputedStyle\">\n <div\n :class=\"`led align-self-center ${limitsColor}`\"\n :style=\"cssProps\"\n ></div>\n <label-widget\n v-if=\"displayLabel\"\n :parameters=\"labelName\"\n :settings=\"appliedSettings\"\n :style=\"computedStyle\"\n :widget-index=\"1\"\n />\n </div>\n</template>\n\n<script>\nimport VWidget from './VWidget'\nexport default {\n mixins: [VWidget],\n data() {\n return {\n radius: 15,\n fullLabelDisplay: false,\n displayLabel: true,\n }\n },\n computed: {\n labelName() {\n // LabelWidget uses index 0 from the parameters prop\n // so create an array with the label text in the first position\n if (this.fullLabelDisplay) {\n return [\n this.parameters[0] +\n ' ' +\n this.parameters[1] +\n ' ' +\n this.parameters[2],\n ]\n } else {\n return [this.parameters[2]]\n }\n },\n cssProps() {\n return {\n '--height': this.radius + 'px',\n '--width': this.radius + 'px',\n }\n },\n myComputedStyle() {\n // Remove the flex property from the computedStyle object\n // because if they choose not to display the label\n // the flex property makes it difficult to line up a custom LABEL widget\n const style = { ...this.computedStyle }\n delete style.flex\n return style\n },\n },\n created() {\n if (this.parameters[4]) {\n this.radius = parseInt(this.parameters[4])\n }\n if (this.parameters[5]) {\n if (this.parameters[5].toLowerCase() === 'true') {\n this.fullLabelDisplay = true\n } else if (this.parameters[5].toLowerCase() === 'nil') {\n this.displayLabel = false\n } else if (this.parameters[5].toLowerCase() === 'none') {\n this.displayLabel = false\n }\n }\n },\n methods: {\n getType() {\n let type = 'CONVERTED'\n if (this.parameters[3]) {\n type = this.parameters[3]\n }\n return type\n },\n },\n}\n</script>\n\n<style scoped>\n.led {\n height: var(--height);\n width: var(--width);\n background-color: var(--color);\n border-radius: 50%;\n}\n/* The background-colors match the values in LimitsbarWidget.vue */\n.red {\n background-color: rgb(255, 45, 45);\n}\n.yellow {\n background-color: rgb(255, 220, 0);\n}\n.green {\n background-color: rgb(0, 200, 0);\n}\n.blue {\n background-color: rgb(0, 153, 255);\n}\n</style>\n"],"names":["_sfc_main","VWidget","style","type","_createElementBlock","$options","_createElementVNode","_ctx","$data","_createBlock","_component_label_widget"],"mappings":"kLAwCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,OAAO,EAChB,MAAO,CACL,MAAO,CACL,OAAQ,GACR,iBAAkB,GAClB,aAAc,EAChB,CACF,EACA,SAAU,CACR,WAAY,CAGV,OAAI,KAAK,iBACA,CACL,KAAK,WAAW,CAAC,EACf,IACA,KAAK,WAAW,CAAC,EACjB,IACA,KAAK,WAAW,CAAC,CACrB,EAEO,CAAC,KAAK,WAAW,CAAC,CAAC,CAE9B,EACA,UAAW,CACT,MAAO,CACL,WAAY,KAAK,OAAS,KAC1B,UAAW,KAAK,OAAS,IAC3B,CACF,EACA,iBAAkB,CAIhB,MAAMC,EAAQ,CAAE,GAAG,KAAK,aAAY,EACpC,cAAOA,EAAM,KACNA,CACT,GAEF,SAAU,CACJ,KAAK,WAAW,CAAC,IACnB,KAAK,OAAS,SAAS,KAAK,WAAW,CAAC,CAAC,GAEvC,KAAK,WAAW,CAAC,IACf,KAAK,WAAW,CAAC,EAAE,YAAW,IAAO,OACvC,KAAK,iBAAmB,GACf,KAAK,WAAW,CAAC,EAAE,YAAW,IAAO,MAC9C,KAAK,aAAe,GACX,KAAK,WAAW,CAAC,EAAE,YAAW,IAAO,SAC9C,KAAK,aAAe,IAG1B,EACA,QAAS,CACP,SAAU,CACR,IAAIC,EAAO,YACX,OAAI,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAEnBA,CACT,EAEJ,0FAhFEC,EAAAA,mBAYM,MAAA,CAZD,IAAI,YAAY,MAAM,kBAAmB,uBAAOC,EAAA,eAAe,IAClEC,EAAAA,mBAGO,MAAA,CAFJ,gDAAgCC,EAAA,WAAW,EAAA,EAC3C,uBAAOF,EAAA,QAAQ,WAGVG,EAAA,4BADRC,EAAAA,YAMEC,EAAA,OAJC,WAAYL,EAAA,UACZ,SAAUE,EAAA,gBACV,uBAAOA,EAAA,aAAa,EACpB,eAAc"}
@@ -1,4 +1,4 @@
1
- import { V as i } from "./VWidget-rAFU-0vj.js";
1
+ import { V as i } from "./VWidget-BcwkHuIT.js";
2
2
  import { resolveComponent as o, createElementBlock as p, openBlock as r, normalizeStyle as s, createElementVNode as m, createBlock as n, createCommentVNode as d, normalizeClass as c } from "vue";
3
3
  import { _ as u } from "./CustomIcon-B9m73Gqm.js";
4
4
  const f = {
@@ -61,4 +61,4 @@ const w = /* @__PURE__ */ u(f, [["render", h], ["__scopeId", "data-v-2908b131"]]
61
61
  export {
62
62
  w as default
63
63
  };
64
- //# sourceMappingURL=LimitscolorWidget-CGPfJwvT.js.map
64
+ //# sourceMappingURL=LimitscolorWidget-Doq8h_g1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LimitscolorWidget-CGPfJwvT.js","sources":["../src/widgets/LimitscolorWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"myComputedStyle\">\n <div\n :class=\"`led align-self-center ${limitsColor}`\"\n :style=\"cssProps\"\n ></div>\n <label-widget\n v-if=\"displayLabel\"\n :parameters=\"labelName\"\n :settings=\"appliedSettings\"\n :style=\"computedStyle\"\n :widget-index=\"1\"\n />\n </div>\n</template>\n\n<script>\nimport VWidget from './VWidget'\nexport default {\n mixins: [VWidget],\n data() {\n return {\n radius: 15,\n fullLabelDisplay: false,\n displayLabel: true,\n }\n },\n computed: {\n labelName() {\n // LabelWidget uses index 0 from the parameters prop\n // so create an array with the label text in the first position\n if (this.fullLabelDisplay) {\n return [\n this.parameters[0] +\n ' ' +\n this.parameters[1] +\n ' ' +\n this.parameters[2],\n ]\n } else {\n return [this.parameters[2]]\n }\n },\n cssProps() {\n return {\n '--height': this.radius + 'px',\n '--width': this.radius + 'px',\n }\n },\n myComputedStyle() {\n // Remove the flex property from the computedStyle object\n // because if they choose not to display the label\n // the flex property makes it difficult to line up a custom LABEL widget\n const style = { ...this.computedStyle }\n delete style.flex\n return style\n },\n },\n created() {\n if (this.parameters[4]) {\n this.radius = parseInt(this.parameters[4])\n }\n if (this.parameters[5]) {\n if (this.parameters[5].toLowerCase() === 'true') {\n this.fullLabelDisplay = true\n } else if (this.parameters[5].toLowerCase() === 'nil') {\n this.displayLabel = false\n } else if (this.parameters[5].toLowerCase() === 'none') {\n this.displayLabel = false\n }\n }\n },\n methods: {\n getType() {\n let type = 'CONVERTED'\n if (this.parameters[3]) {\n type = this.parameters[3]\n }\n return type\n },\n },\n}\n</script>\n\n<style scoped>\n.led {\n height: var(--height);\n width: var(--width);\n background-color: var(--color);\n border-radius: 50%;\n}\n/* The background-colors match the values in LimitsbarWidget.vue */\n.red {\n background-color: rgb(255, 45, 45);\n}\n.yellow {\n background-color: rgb(255, 220, 0);\n}\n.green {\n background-color: rgb(0, 200, 0);\n}\n.blue {\n background-color: rgb(0, 153, 255);\n}\n</style>\n"],"names":["_sfc_main","VWidget","style","type","_createElementBlock","$options","_createElementVNode","_ctx","$data","_createBlock","_component_label_widget"],"mappings":";;;AAwCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAO;AAAA,EAChB,OAAO;AACL,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,kBAAkB;AAAA,MAClB,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,YAAY;AAGV,aAAI,KAAK,mBACA;AAAA,QACL,KAAK,WAAW,CAAC,IACf,MACA,KAAK,WAAW,CAAC,IACjB,MACA,KAAK,WAAW,CAAC;AAAA,MACrB,IAEO,CAAC,KAAK,WAAW,CAAC,CAAC;AAAA,IAE9B;AAAA,IACA,WAAW;AACT,aAAO;AAAA,QACL,YAAY,KAAK,SAAS;AAAA,QAC1B,WAAW,KAAK,SAAS;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,kBAAkB;AAIhB,YAAMC,IAAQ,EAAE,GAAG,KAAK,cAAY;AACpC,oBAAOA,EAAM,MACNA;AAAA,IACT;AAAA;EAEF,UAAU;AACR,IAAI,KAAK,WAAW,CAAC,MACnB,KAAK,SAAS,SAAS,KAAK,WAAW,CAAC,CAAC,IAEvC,KAAK,WAAW,CAAC,MACf,KAAK,WAAW,CAAC,EAAE,YAAW,MAAO,SACvC,KAAK,mBAAmB,KACf,KAAK,WAAW,CAAC,EAAE,YAAW,MAAO,QAC9C,KAAK,eAAe,KACX,KAAK,WAAW,CAAC,EAAE,YAAW,MAAO,WAC9C,KAAK,eAAe;AAAA,EAG1B;AAAA,EACA,SAAS;AAAA,IACP,UAAU;AACR,UAAIC,IAAO;AACX,aAAI,KAAK,WAAW,CAAC,MACnBA,IAAO,KAAK,WAAW,CAAC,IAEnBA;AAAA,IACT;AAAA;AAEJ;;;cAhFEC,EAYM,OAAA;AAAA,IAZD,KAAI;AAAA,IAAY,OAAM;AAAA,IAAmB,SAAOC,EAAA,eAAe;AAAA;IAClEC,EAGO,OAAA;AAAA,MAFJ,kCAAgCC,EAAA,WAAW,EAAA;AAAA,MAC3C,SAAOF,EAAA,QAAQ;AAAA;IAGVG,EAAA,qBADRC,EAMEC,GAAA;AAAA;MAJC,YAAYL,EAAA;AAAA,MACZ,UAAUE,EAAA;AAAA,MACV,SAAOA,EAAA,aAAa;AAAA,MACpB,gBAAc;AAAA;;;;"}
1
+ {"version":3,"file":"LimitscolorWidget-Doq8h_g1.js","sources":["../src/widgets/LimitscolorWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div ref=\"container\" class=\"d-flex flex-row\" :style=\"myComputedStyle\">\n <div\n :class=\"`led align-self-center ${limitsColor}`\"\n :style=\"cssProps\"\n ></div>\n <label-widget\n v-if=\"displayLabel\"\n :parameters=\"labelName\"\n :settings=\"appliedSettings\"\n :style=\"computedStyle\"\n :widget-index=\"1\"\n />\n </div>\n</template>\n\n<script>\nimport VWidget from './VWidget'\nexport default {\n mixins: [VWidget],\n data() {\n return {\n radius: 15,\n fullLabelDisplay: false,\n displayLabel: true,\n }\n },\n computed: {\n labelName() {\n // LabelWidget uses index 0 from the parameters prop\n // so create an array with the label text in the first position\n if (this.fullLabelDisplay) {\n return [\n this.parameters[0] +\n ' ' +\n this.parameters[1] +\n ' ' +\n this.parameters[2],\n ]\n } else {\n return [this.parameters[2]]\n }\n },\n cssProps() {\n return {\n '--height': this.radius + 'px',\n '--width': this.radius + 'px',\n }\n },\n myComputedStyle() {\n // Remove the flex property from the computedStyle object\n // because if they choose not to display the label\n // the flex property makes it difficult to line up a custom LABEL widget\n const style = { ...this.computedStyle }\n delete style.flex\n return style\n },\n },\n created() {\n if (this.parameters[4]) {\n this.radius = parseInt(this.parameters[4])\n }\n if (this.parameters[5]) {\n if (this.parameters[5].toLowerCase() === 'true') {\n this.fullLabelDisplay = true\n } else if (this.parameters[5].toLowerCase() === 'nil') {\n this.displayLabel = false\n } else if (this.parameters[5].toLowerCase() === 'none') {\n this.displayLabel = false\n }\n }\n },\n methods: {\n getType() {\n let type = 'CONVERTED'\n if (this.parameters[3]) {\n type = this.parameters[3]\n }\n return type\n },\n },\n}\n</script>\n\n<style scoped>\n.led {\n height: var(--height);\n width: var(--width);\n background-color: var(--color);\n border-radius: 50%;\n}\n/* The background-colors match the values in LimitsbarWidget.vue */\n.red {\n background-color: rgb(255, 45, 45);\n}\n.yellow {\n background-color: rgb(255, 220, 0);\n}\n.green {\n background-color: rgb(0, 200, 0);\n}\n.blue {\n background-color: rgb(0, 153, 255);\n}\n</style>\n"],"names":["_sfc_main","VWidget","style","type","_createElementBlock","$options","_createElementVNode","_ctx","$data","_createBlock","_component_label_widget"],"mappings":";;;AAwCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAO;AAAA,EAChB,OAAO;AACL,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,kBAAkB;AAAA,MAClB,cAAc;AAAA,IAChB;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,YAAY;AAGV,aAAI,KAAK,mBACA;AAAA,QACL,KAAK,WAAW,CAAC,IACf,MACA,KAAK,WAAW,CAAC,IACjB,MACA,KAAK,WAAW,CAAC;AAAA,MACrB,IAEO,CAAC,KAAK,WAAW,CAAC,CAAC;AAAA,IAE9B;AAAA,IACA,WAAW;AACT,aAAO;AAAA,QACL,YAAY,KAAK,SAAS;AAAA,QAC1B,WAAW,KAAK,SAAS;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,kBAAkB;AAIhB,YAAMC,IAAQ,EAAE,GAAG,KAAK,cAAY;AACpC,oBAAOA,EAAM,MACNA;AAAA,IACT;AAAA;EAEF,UAAU;AACR,IAAI,KAAK,WAAW,CAAC,MACnB,KAAK,SAAS,SAAS,KAAK,WAAW,CAAC,CAAC,IAEvC,KAAK,WAAW,CAAC,MACf,KAAK,WAAW,CAAC,EAAE,YAAW,MAAO,SACvC,KAAK,mBAAmB,KACf,KAAK,WAAW,CAAC,EAAE,YAAW,MAAO,QAC9C,KAAK,eAAe,KACX,KAAK,WAAW,CAAC,EAAE,YAAW,MAAO,WAC9C,KAAK,eAAe;AAAA,EAG1B;AAAA,EACA,SAAS;AAAA,IACP,UAAU;AACR,UAAIC,IAAO;AACX,aAAI,KAAK,WAAW,CAAC,MACnBA,IAAO,KAAK,WAAW,CAAC,IAEnBA;AAAA,IACT;AAAA;AAEJ;;;cAhFEC,EAYM,OAAA;AAAA,IAZD,KAAI;AAAA,IAAY,OAAM;AAAA,IAAmB,SAAOC,EAAA,eAAe;AAAA;IAClEC,EAGO,OAAA;AAAA,MAFJ,kCAAgCC,EAAA,WAAW,EAAA;AAAA,MAC3C,SAAOF,EAAA,QAAQ;AAAA;IAGVG,EAAA,qBADRC,EAMEC,GAAA;AAAA;MAJC,YAAYL,EAAA;AAAA,MACZ,UAAUE,EAAA;AAAA,MACV,SAAOA,EAAA,aAAa;AAAA,MACpB,gBAAc;AAAA;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./BarColumn-3fKM-em2.cjs"),t=require("vue"),l=require("./CustomIcon-CEc927h0.cjs"),r={mixins:[s.BarColumn],data(){return{width:22,height:120}},computed:{cssProps:function(){let e=this.screenValues[this.valueId][0],i=this.modifyLimits(this.limitsSettings[this.selectedLimitsSet]);if(i)return this.calcLimits(i),{"--height":this.height+"px","--width":this.width+"px","--container-width":this.width-5+"px","--position":this.calcPosition(e,i)+"%","--redlow-height":this.redLow+"%","--redhigh-height":this.redHigh+"%","--yellowlow-height":this.yellowLow+"%","--yellowhigh-height":this.yellowHigh+"%","--greenlow-height":this.greenLow+"%","--greenhigh-height":this.greenHigh+"%","--blue-height":this.blue+"%"};throw{line:this.line,lineNumber:this.lineNumber,keyword:"LIMITSCOLUMN",parameters:this.parameters,message:"Item has no limits settings",usage:"Only items with limits"}}},created(){this.verifyNumParams("LIMITSCOLUMN",3,6,"LIMITSCOLUMN <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH> <HEIGHT>")}};function h(e,i,o,n,c,a){return t.openBlock(),t.createElementBlock("div",{class:"limitsbar",style:t.normalizeStyle([a.cssProps,e.computedStyle])},[...i[0]||(i[0]=[t.createStaticVNode('<div class="limitsbar__container" data-v-a4a8f4ab><div class="limitsbar__redlow" data-v-a4a8f4ab></div><div class="limitsbar__redhigh" data-v-a4a8f4ab></div><div class="limitsbar__yellowlow" data-v-a4a8f4ab></div><div class="limitsbar__yellowhigh" data-v-a4a8f4ab></div><div class="limitsbar__greenlow" data-v-a4a8f4ab></div><div class="limitsbar__greenhigh" data-v-a4a8f4ab></div><div class="limitsbar__blue" data-v-a4a8f4ab></div><div class="limitsbar__line" data-v-a4a8f4ab></div><div class="limitsbar__arrow" data-v-a4a8f4ab></div></div>',1)])],4)}const d=l._export_sfc(r,[["render",h],["__scopeId","data-v-a4a8f4ab"]]);exports.default=d;
2
- //# sourceMappingURL=LimitscolumnWidget-CnGOCckG.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./BarColumn-CWgcL5w1.cjs"),t=require("vue"),l=require("./CustomIcon-CEc927h0.cjs"),r={mixins:[s.BarColumn],data(){return{width:22,height:120}},computed:{cssProps:function(){let e=this.screenValues[this.valueId][0],i=this.modifyLimits(this.limitsSettings[this.selectedLimitsSet]);if(i)return this.calcLimits(i),{"--height":this.height+"px","--width":this.width+"px","--container-width":this.width-5+"px","--position":this.calcPosition(e,i)+"%","--redlow-height":this.redLow+"%","--redhigh-height":this.redHigh+"%","--yellowlow-height":this.yellowLow+"%","--yellowhigh-height":this.yellowHigh+"%","--greenlow-height":this.greenLow+"%","--greenhigh-height":this.greenHigh+"%","--blue-height":this.blue+"%"};throw{line:this.line,lineNumber:this.lineNumber,keyword:"LIMITSCOLUMN",parameters:this.parameters,message:"Item has no limits settings",usage:"Only items with limits"}}},created(){this.verifyNumParams("LIMITSCOLUMN",3,6,"LIMITSCOLUMN <TARGET> <PACKET> <ITEM> <TYPE> <WIDTH> <HEIGHT>")}};function h(e,i,o,n,c,a){return t.openBlock(),t.createElementBlock("div",{class:"limitsbar",style:t.normalizeStyle([a.cssProps,e.computedStyle])},[...i[0]||(i[0]=[t.createStaticVNode('<div class="limitsbar__container" data-v-a4a8f4ab><div class="limitsbar__redlow" data-v-a4a8f4ab></div><div class="limitsbar__redhigh" data-v-a4a8f4ab></div><div class="limitsbar__yellowlow" data-v-a4a8f4ab></div><div class="limitsbar__yellowhigh" data-v-a4a8f4ab></div><div class="limitsbar__greenlow" data-v-a4a8f4ab></div><div class="limitsbar__greenhigh" data-v-a4a8f4ab></div><div class="limitsbar__blue" data-v-a4a8f4ab></div><div class="limitsbar__line" data-v-a4a8f4ab></div><div class="limitsbar__arrow" data-v-a4a8f4ab></div></div>',1)])],4)}const d=l._export_sfc(r,[["render",h],["__scopeId","data-v-a4a8f4ab"]]);exports.default=d;
2
+ //# sourceMappingURL=LimitscolumnWidget-BREF_CBr.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"LimitscolumnWidget-CnGOCckG.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"],"mappings":"oLAsCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,SAAS,EAClB,MAAO,CACL,MAAO,CACL,MAAO,GACP,OAAQ,GACV,CACF,EACA,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,CAEJ,GAEF,SAAU,CACR,KAAK,gBACH,eACA,EACA,EACA,+DACF,CACF,CACF,+CAvEEC,EAAAA,mBAaM,MAAA,CAbD,MAAM,YAAa,MAAKC,EAAAA,eAAA,CAAGC,EAAA,SAAUC,EAAA,aAAa,CAAA"}
1
+ {"version":3,"file":"LimitscolumnWidget-BREF_CBr.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"],"mappings":"oLAsCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,SAAS,EAClB,MAAO,CACL,MAAO,CACL,MAAO,GACP,OAAQ,GACV,CACF,EACA,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,CAEJ,GAEF,SAAU,CACR,KAAK,gBACH,eACA,EACA,EACA,+DACF,CACF,CACF,+CAvEEC,EAAAA,mBAaM,MAAA,CAbD,MAAM,YAAa,MAAKC,EAAAA,eAAA,CAAGC,EAAA,SAAUC,EAAA,aAAa,CAAA"}
@@ -1,4 +1,4 @@
1
- import { B as e } from "./BarColumn-ClLBRGll.js";
1
+ import { B as e } from "./BarColumn-DHHJBR3V.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-B9m73Gqm.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-Bj_UPEC8.js.map
66
+ //# sourceMappingURL=LimitscolumnWidget-qasXHN7m.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LimitscolumnWidget-Bj_UPEC8.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"],"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,EACF;AAAA,EACA,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,IAEJ;AAAA;EAEF,UAAU;AACR,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;cAvEEC,EAaM,OAAA;AAAA,IAbD,OAAM;AAAA,IAAa,OAAKC,EAAA,CAAGC,EAAA,UAAUC,EAAA,aAAa,CAAA;AAAA;;;;;"}
1
+ {"version":3,"file":"LimitscolumnWidget-qasXHN7m.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"],"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,EACF;AAAA,EACA,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,IAEJ;AAAA;EAEF,UAAU;AACR,SAAK;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;cAvEEC,EAaM,OAAA;AAAA,IAbD,OAAM;AAAA,IAAa,OAAKC,EAAA,CAAGC,EAAA,UAAUC,EAAA,aAAa,CAAA;AAAA;;;;;"}
@@ -1,8 +1,8 @@
1
- import { G as s } from "./GraphWidget-CjxnC0Dc.js";
2
- import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
1
+ import { G as s } from "./GraphWidget-DRkDn8za.js";
2
+ import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.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-B9m73Gqm.js";
5
- import { G as d } from "./Graph-CbjlChwf.js";
5
+ import { G as d } from "./Graph-C-7C2Jq5.js";
6
6
  import "single-spa";
7
7
  const m = {
8
8
  components: {
@@ -36,4 +36,4 @@ const $ = /* @__PURE__ */ p(m, [["render", h]]);
36
36
  export {
37
37
  $ as default
38
38
  };
39
- //# sourceMappingURL=LinegraphWidget-DccnHbWa.js.map
39
+ //# sourceMappingURL=LinegraphWidget-BNMqcr_r.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinegraphWidget-DccnHbWa.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 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 <graph\n :id=\"id\"\n :ref=\"'graph' + id\"\n :state=\"state\"\n :selected-graph-id=\"id\"\n :start-time=\"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=\"screenTimeZone\"\n hide-toolbar\n hide-overview\n @pause=\"() => (state = 'pause')\"\n @start=\"() => (state = 'start')\"\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"],"mappings":";;;;;;AAgDA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,OAAAC;AAAA;EAEF,QAAQ,CAACC,CAAW;AACtB;;;cA9BEC,EAkBEC,GAAA;AAAA,IAjBC,IAAIC,EAAA;AAAA,IACJ,eAAeA,EAAA;AAAA,IACf,OAAOA,EAAA;AAAA,IACP,qBAAmBA,EAAA;AAAA,IACnB,cAAYA,EAAA;AAAA,IACZ,mBAAiBA,EAAA;AAAA,IACjB,gBAAcA,EAAA;AAAA,IACd,kBAAgBA,EAAA;AAAA,IAChB,iBAAeA,EAAA;AAAA,IACf,QAAQA,EAAA,KAAK;AAAA,IACb,OAAOA,EAAA,KAAK;AAAA,IACZ,SAAOA,EAAA,aAAa;AAAA,IACpB,aAAWA,EAAA;AAAA,IACZ,gBAAA;AAAA,IACA,iBAAA;AAAA,IACC,+BAAcA,EAAA,QAAK;AAAA,IACnB,+BAAcA,EAAA,QAAK;AAAA;;;"}
1
+ {"version":3,"file":"LinegraphWidget-BNMqcr_r.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 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 <graph\n :id=\"id\"\n :ref=\"'graph' + id\"\n :state=\"state\"\n :selected-graph-id=\"id\"\n :start-time=\"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=\"screenTimeZone\"\n hide-toolbar\n hide-overview\n @pause=\"() => (state = 'pause')\"\n @start=\"() => (state = 'start')\"\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"],"mappings":";;;;;;AAgDA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,OAAAC;AAAA;EAEF,QAAQ,CAACC,CAAW;AACtB;;;cA9BEC,EAkBEC,GAAA;AAAA,IAjBC,IAAIC,EAAA;AAAA,IACJ,eAAeA,EAAA;AAAA,IACf,OAAOA,EAAA;AAAA,IACP,qBAAmBA,EAAA;AAAA,IACnB,cAAYA,EAAA;AAAA,IACZ,mBAAiBA,EAAA;AAAA,IACjB,gBAAcA,EAAA;AAAA,IACd,kBAAgBA,EAAA;AAAA,IAChB,iBAAeA,EAAA;AAAA,IACf,QAAQA,EAAA,KAAK;AAAA,IACb,OAAOA,EAAA,KAAK;AAAA,IACZ,SAAOA,EAAA,aAAa;AAAA,IACpB,aAAWA,EAAA;AAAA,IACZ,gBAAA;AAAA,IACA,iBAAA;AAAA,IACC,+BAAcA,EAAA,QAAK;AAAA,IACnB,+BAAcA,EAAA,QAAK;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./GraphWidget-SamHg2AA.cjs");require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs");const i=require("vue"),o=require("./CustomIcon-CEc927h0.cjs"),n=require("./Graph-kmTrth08.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,{id:e.id,ref:"graph"+e.id,state:e.state,"selected-graph-id":e.id,"start-time":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":e.screenTimeZone,"hide-toolbar":"","hide-overview":"",onPause:t[0]||(t[0]=()=>e.state="pause"),onStart:t[1]||(t[1]=()=>e.state="start")},null,8,["id","state","selected-graph-id","start-time","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-zHs3NG-6.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./GraphWidget-C7hqdqL-.cjs");require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs");const i=require("vue"),o=require("./CustomIcon-CEc927h0.cjs"),n=require("./Graph-YYieRGo0.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,{id:e.id,ref:"graph"+e.id,state:e.state,"selected-graph-id":e.id,"start-time":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":e.screenTimeZone,"hide-toolbar":"","hide-overview":"",onPause:t[0]||(t[0]=()=>e.state="pause"),onStart:t[1]||(t[1]=()=>e.state="start")},null,8,["id","state","selected-graph-id","start-time","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-BhpYKxnT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinegraphWidget-zHs3NG-6.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 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 <graph\n :id=\"id\"\n :ref=\"'graph' + id\"\n :state=\"state\"\n :selected-graph-id=\"id\"\n :start-time=\"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=\"screenTimeZone\"\n hide-toolbar\n hide-overview\n @pause=\"() => (state = 'pause')\"\n @start=\"() => (state = 'start')\"\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"],"mappings":"wVAgDA,MAAKA,EAAU,CACb,WAAY,OACVC,EAAAA,OAEF,OAAQ,CAACC,EAAAA,WAAW,CACtB,mFA9BEC,EAAAA,YAkBEC,EAAA,CAjBC,GAAIC,EAAA,GACJ,YAAeA,EAAA,GACf,MAAOA,EAAA,MACP,oBAAmBA,EAAA,GACnB,aAAYA,EAAA,UACZ,kBAAiBA,EAAA,eACjB,eAAcA,EAAA,YACd,iBAAgBA,EAAA,cAChB,gBAAeA,EAAA,MACf,OAAQA,EAAA,KAAK,OACb,MAAOA,EAAA,KAAK,MACZ,uBAAOA,EAAA,aAAa,EACpB,YAAWA,EAAA,eACZ,eAAA,GACA,gBAAA,GACC,wBAAcA,EAAA,MAAK,SACnB,wBAAcA,EAAA,MAAK"}
1
+ {"version":3,"file":"LinegraphWidget-BhpYKxnT.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 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 <graph\n :id=\"id\"\n :ref=\"'graph' + id\"\n :state=\"state\"\n :selected-graph-id=\"id\"\n :start-time=\"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=\"screenTimeZone\"\n hide-toolbar\n hide-overview\n @pause=\"() => (state = 'pause')\"\n @start=\"() => (state = 'start')\"\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"],"mappings":"wVAgDA,MAAKA,EAAU,CACb,WAAY,OACVC,EAAAA,OAEF,OAAQ,CAACC,EAAAA,WAAW,CACtB,mFA9BEC,EAAAA,YAkBEC,EAAA,CAjBC,GAAIC,EAAA,GACJ,YAAeA,EAAA,GACf,MAAOA,EAAA,MACP,oBAAmBA,EAAA,GACnB,aAAYA,EAAA,UACZ,kBAAiBA,EAAA,eACjB,eAAcA,EAAA,YACd,iBAAgBA,EAAA,cAChB,gBAAeA,EAAA,MACf,OAAQA,EAAA,KAAK,OACb,MAAOA,EAAA,KAAK,MACZ,uBAAOA,EAAA,aAAa,EACpB,YAAWA,EAAA,eACZ,eAAA,GACA,gBAAA,GACC,wBAAcA,EAAA,MAAK,SACnB,wBAAcA,EAAA,MAAK"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./Layout-CVGghwYm.cjs"),k=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs"),e=require("vue"),y=require("./CustomIcon-CEc927h0.cjs"),f={mixins:[m.Layout],computed:{columns(){return parseInt(this.parameters[0])},widgetChunks(){return k._.chunk(this.widgets,this.columns)}},created:function(){if(this.parameters[1]){let n=this.parameters[1];this.widgets.forEach(o=>{o.settings.find(r=>r[0]==="MARGIN"||r[0].startsWith("RAW")&&r[1].toUpperCase().includes("MARGIN"))===void 0&&o.settings.push(["MARGIN",n])})}}};function d(n,o,s,r,v,a){const l=e.resolveComponent("v-tooltip");return e.openBlock(),e.createElementBlock("table",{style:e.normalizeStyle(n.computedStyle),role:"presentation"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.widgetChunks,(i,c)=>(e.openBlock(),e.createElementBlock("tr",{key:"r"+c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i,(t,p)=>(e.openBlock(),e.createElementBlock("td",{key:"c"+p},[n.getTooltipText(t)?(e.openBlock(),e.createBlock(l,{key:0,"open-delay":n.getTooltipDelay(t),location:"top","activator-props":n.getTooltipActivatorProps(t)},{activator:e.withCtx(({props:u})=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},{...n.listeners,...u},{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"]))]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(n.getTooltipText(t)),1)]),_:2},1032,["open-delay","activator-props"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({key:1,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 g=y._export_sfc(f,[["render",d]]);exports.default=g;
2
- //# sourceMappingURL=MatrixbycolumnsWidget-Dd-udu5V.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("./Layout-K7_I6jMV.cjs"),k=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs"),e=require("vue"),y=require("./CustomIcon-CEc927h0.cjs"),f={mixins:[m.Layout],computed:{columns(){return parseInt(this.parameters[0])},widgetChunks(){return k._.chunk(this.widgets,this.columns)}},created:function(){if(this.parameters[1]){let n=this.parameters[1];this.widgets.forEach(o=>{o.settings.find(r=>r[0]==="MARGIN"||r[0].startsWith("RAW")&&r[1].toUpperCase().includes("MARGIN"))===void 0&&o.settings.push(["MARGIN",n])})}}};function d(n,o,s,r,v,a){const l=e.resolveComponent("v-tooltip");return e.openBlock(),e.createElementBlock("table",{style:e.normalizeStyle(n.computedStyle),role:"presentation"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.widgetChunks,(i,c)=>(e.openBlock(),e.createElementBlock("tr",{key:"r"+c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i,(t,p)=>(e.openBlock(),e.createElementBlock("td",{key:"c"+p},[n.getTooltipText(t)?(e.openBlock(),e.createBlock(l,{key:0,"open-delay":n.getTooltipDelay(t),location:"top","activator-props":n.getTooltipActivatorProps(t)},{activator:e.withCtx(({props:u})=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},{...n.listeners,...u},{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"]))]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(n.getTooltipText(t)),1)]),_:2},1032,["open-delay","activator-props"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({key:1,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 g=y._export_sfc(f,[["render",d]]);exports.default=g;
2
+ //# sourceMappingURL=MatrixbycolumnsWidget-BKXkhATe.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MatrixbycolumnsWidget-Dd-udu5V.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 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 <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 <v-tooltip\n v-if=\"getTooltipText(widget)\"\n :open-delay=\"getTooltipDelay(widget)\"\n location=\"top\"\n :activator-props=\"getTooltipActivatorProps(widget)\"\n >\n <template #activator=\"{ props }\">\n <component\n :is=\"widget.type\"\n v-bind=\"{ ...listeners, ...props }\"\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 </template>\n <span>{{ getTooltipText(widget) }}</span>\n </v-tooltip>\n <component\n :is=\"widget.type\"\n v-else\n v-bind=\"listeners\"\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].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_component_v_tooltip","_withCtx","props","_resolveDynamicComponent","_mergeProps","_createElementVNode","_toDisplayString"],"mappings":"uRAuEKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,SAAU,CACR,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACpC,EACA,cAAe,CACb,OAAOC,EAAAA,EAAE,MAAM,KAAK,QAAS,KAAK,OAAO,CAC3C,GAEF,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,EAAE,WAAW,KAAK,GAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ,CAChD,IACc,QACZD,EAAO,SAAS,KAAK,CAAC,SAAUD,CAAM,CAAC,CAE3C,CAAC,CACH,CACF,CACF,uFA1EEG,EAAAA,mBA0CQ,QAAA,CA1CA,uBAAOC,EAAA,aAAa,EAAE,KAAK,kBACjCC,EAAAA,UAAA,EAAA,EAAAF,EAAAA,mBAwCKG,WAAA,KAAAC,EAAAA,WAxCyBC,EAAA,aAAY,CAA9BC,EAAOC,mBAAnBP,EAAAA,mBAwCK,KAAA,CAxCwC,QAAWO,KACtDL,YAAA,EAAA,EAAAF,EAAAA,mBAsCKG,EAAAA,SAAA,KAAAC,EAAAA,WAtC0BE,EAAK,CAAxBR,EAAQU,mBAApBR,EAAAA,mBAsCK,KAAA,CAtCkC,QAAWQ,IAExCP,EAAA,eAAeH,CAAM,iBAD7BW,EAAAA,YAsBYC,EAAA,OApBT,aAAYT,EAAA,gBAAgBH,CAAM,EACnC,SAAS,MACR,kBAAiBG,EAAA,yBAAyBH,CAAM,IAEtC,UAASa,EAAAA,QAClB,CAYE,CAboB,MAAAC,KAAK,gBAC3BH,EAAAA,YAYEI,EAAAA,wBAXKf,EAAO,IAAI,EADlBgB,EAAAA,WAYE,CAAA,QAAA,EAAA,EAAA,CAAA,GAVab,EAAA,UAAS,GAAKW,GAAK,CAC/B,OAAQd,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeG,EAAA,aACf,mBAAkBA,EAAA,eAClB,QAASH,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO,uJAGzB,IAAyC,CAAzCiB,qBAAyC,OAAA,KAAAC,EAAAA,gBAAhCf,EAAA,eAAeH,CAAM,CAAA,EAAA,CAAA,kDAEhCI,EAAAA,UAAA,EAAAO,EAAAA,YAaEI,EAAAA,wBAZKf,EAAO,IAAI,EADlBgB,aAaE,mBAVQb,EAAA,UAAS,CAChB,OAAQH,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeG,EAAA,aACf,mBAAkBA,EAAA,eAClB,QAASH,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO"}
1
+ {"version":3,"file":"MatrixbycolumnsWidget-BKXkhATe.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 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 <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 <v-tooltip\n v-if=\"getTooltipText(widget)\"\n :open-delay=\"getTooltipDelay(widget)\"\n location=\"top\"\n :activator-props=\"getTooltipActivatorProps(widget)\"\n >\n <template #activator=\"{ props }\">\n <component\n :is=\"widget.type\"\n v-bind=\"{ ...listeners, ...props }\"\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 </template>\n <span>{{ getTooltipText(widget) }}</span>\n </v-tooltip>\n <component\n :is=\"widget.type\"\n v-else\n v-bind=\"listeners\"\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].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_component_v_tooltip","_withCtx","props","_resolveDynamicComponent","_mergeProps","_createElementVNode","_toDisplayString"],"mappings":"uRAuEKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,SAAU,CACR,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACpC,EACA,cAAe,CACb,OAAOC,EAAAA,EAAE,MAAM,KAAK,QAAS,KAAK,OAAO,CAC3C,GAEF,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,EAAE,WAAW,KAAK,GAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ,CAChD,IACc,QACZD,EAAO,SAAS,KAAK,CAAC,SAAUD,CAAM,CAAC,CAE3C,CAAC,CACH,CACF,CACF,uFA1EEG,EAAAA,mBA0CQ,QAAA,CA1CA,uBAAOC,EAAA,aAAa,EAAE,KAAK,kBACjCC,EAAAA,UAAA,EAAA,EAAAF,EAAAA,mBAwCKG,WAAA,KAAAC,EAAAA,WAxCyBC,EAAA,aAAY,CAA9BC,EAAOC,mBAAnBP,EAAAA,mBAwCK,KAAA,CAxCwC,QAAWO,KACtDL,YAAA,EAAA,EAAAF,EAAAA,mBAsCKG,EAAAA,SAAA,KAAAC,EAAAA,WAtC0BE,EAAK,CAAxBR,EAAQU,mBAApBR,EAAAA,mBAsCK,KAAA,CAtCkC,QAAWQ,IAExCP,EAAA,eAAeH,CAAM,iBAD7BW,EAAAA,YAsBYC,EAAA,OApBT,aAAYT,EAAA,gBAAgBH,CAAM,EACnC,SAAS,MACR,kBAAiBG,EAAA,yBAAyBH,CAAM,IAEtC,UAASa,EAAAA,QAClB,CAYE,CAboB,MAAAC,KAAK,gBAC3BH,EAAAA,YAYEI,EAAAA,wBAXKf,EAAO,IAAI,EADlBgB,EAAAA,WAYE,CAAA,QAAA,EAAA,EAAA,CAAA,GAVab,EAAA,UAAS,GAAKW,GAAK,CAC/B,OAAQd,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeG,EAAA,aACf,mBAAkBA,EAAA,eAClB,QAASH,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO,uJAGzB,IAAyC,CAAzCiB,qBAAyC,OAAA,KAAAC,EAAAA,gBAAhCf,EAAA,eAAeH,CAAM,CAAA,EAAA,CAAA,kDAEhCI,EAAAA,UAAA,EAAAO,EAAAA,YAaEI,EAAAA,wBAZKf,EAAO,IAAI,EADlBgB,aAaE,mBAVQb,EAAA,UAAS,CAChB,OAAQH,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeG,EAAA,aACf,mBAAkBA,EAAA,eAClB,QAASH,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO"}
@@ -1,5 +1,5 @@
1
- import { L as k } from "./Layout-B_Hgw3gd.js";
2
- import { _ as b } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
1
+ import { L as k } from "./Layout-FpBx3iic.js";
2
+ import { _ as b } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js";
3
3
  import { resolveComponent as T, createElementBlock as n, openBlock as r, normalizeStyle as C, Fragment as l, renderList as i, createBlock as a, withCtx as m, createElementVNode as N, toDisplayString as z, resolveDynamicComponent as p, mergeProps as u } from "vue";
4
4
  import { _ as A } from "./CustomIcon-B9m73Gqm.js";
5
5
  const _ = {
@@ -80,4 +80,4 @@ const G = /* @__PURE__ */ A(_, [["render", I]]);
80
80
  export {
81
81
  G as default
82
82
  };
83
- //# sourceMappingURL=MatrixbycolumnsWidget-U_NZ6aW-.js.map
83
+ //# sourceMappingURL=MatrixbycolumnsWidget-BlF1CyIT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MatrixbycolumnsWidget-U_NZ6aW-.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 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 <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 <v-tooltip\n v-if=\"getTooltipText(widget)\"\n :open-delay=\"getTooltipDelay(widget)\"\n location=\"top\"\n :activator-props=\"getTooltipActivatorProps(widget)\"\n >\n <template #activator=\"{ props }\">\n <component\n :is=\"widget.type\"\n v-bind=\"{ ...listeners, ...props }\"\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 </template>\n <span>{{ getTooltipText(widget) }}</span>\n </v-tooltip>\n <component\n :is=\"widget.type\"\n v-else\n v-bind=\"listeners\"\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].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_component_v_tooltip","_withCtx","props","_resolveDynamicComponent","_mergeProps","_createElementVNode","_toDisplayString"],"mappings":";;;;AAuEA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,UAAU;AACR,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACpC;AAAA,IACA,eAAe;AACb,aAAOC,EAAE,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,IAC3C;AAAA;EAEF,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,EAAE,WAAW,KAAK,KAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ;AAAA,QAChD,MACc,UACZD,EAAO,SAAS,KAAK,CAAC,UAAUD,CAAM,CAAC;AAAA,MAE3C,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;cA1EEG,EA0CQ,SAAA;AAAA,IA1CA,SAAOC,EAAA,aAAa;AAAA,IAAE,MAAK;AAAA;KACjCC,EAAA,EAAA,GAAAF,EAwCKG,GAAA,MAAAC,EAxCyBC,EAAA,cAAY,CAA9BC,GAAOC,YAAnBP,EAwCK,MAAA;AAAA,MAxCwC,WAAWO;AAAA;OACtDL,EAAA,EAAA,GAAAF,EAsCKG,GAAA,MAAAC,EAtC0BE,GAAK,CAAxBR,GAAQU,YAApBR,EAsCK,MAAA;AAAA,QAtCkC,WAAWQ;AAAA;QAExCP,EAAA,eAAeH,CAAM,UAD7BW,EAsBYC,GAAA;AAAA;UApBT,cAAYT,EAAA,gBAAgBH,CAAM;AAAA,UACnC,UAAS;AAAA,UACR,mBAAiBG,EAAA,yBAAyBH,CAAM;AAAA;UAEtC,WAASa,EAClB,CAYE,EAboB,OAAAC,QAAK;AAAA,kBAC3BH,EAYEI,EAXKf,EAAO,IAAI,GADlBgB,EAYE,EAAA,SAAA,GAAA,GAAA,EAAA,GAVab,EAAA,WAAS,GAAKW,KAAK;AAAA,cAC/B,QAAQd,EAAO;AAAA,cACf,YAAYA,EAAO;AAAA,cACnB,UAAUA,EAAO;AAAA,cACjB,iBAAeG,EAAA;AAAA,cACf,oBAAkBA,EAAA;AAAA,cAClB,SAASH,EAAO;AAAA,cAChB,MAAMA,EAAO;AAAA,cACb,MAAMA,EAAO;AAAA,cACb,eAAaA,EAAO;AAAA;;qBAGzB,MAAyC;AAAA,YAAzCiB,EAAyC,QAAA,MAAAC,EAAhCf,EAAA,eAAeH,CAAM,CAAA,GAAA,CAAA;AAAA;;wDAEhCI,EAAA,GAAAO,EAaEI,EAZKf,EAAO,IAAI,GADlBgB,EAaE;AAAA;;WAVQb,EAAA,WAAS;AAAA,UAChB,QAAQH,EAAO;AAAA,UACf,YAAYA,EAAO;AAAA,UACnB,UAAUA,EAAO;AAAA,UACjB,iBAAeG,EAAA;AAAA,UACf,oBAAkBA,EAAA;AAAA,UAClB,SAASH,EAAO;AAAA,UAChB,MAAMA,EAAO;AAAA,UACb,MAAMA,EAAO;AAAA,UACb,eAAaA,EAAO;AAAA;;;;;;"}
1
+ {"version":3,"file":"MatrixbycolumnsWidget-BlF1CyIT.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 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 <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 <v-tooltip\n v-if=\"getTooltipText(widget)\"\n :open-delay=\"getTooltipDelay(widget)\"\n location=\"top\"\n :activator-props=\"getTooltipActivatorProps(widget)\"\n >\n <template #activator=\"{ props }\">\n <component\n :is=\"widget.type\"\n v-bind=\"{ ...listeners, ...props }\"\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 </template>\n <span>{{ getTooltipText(widget) }}</span>\n </v-tooltip>\n <component\n :is=\"widget.type\"\n v-else\n v-bind=\"listeners\"\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].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_component_v_tooltip","_withCtx","props","_resolveDynamicComponent","_mergeProps","_createElementVNode","_toDisplayString"],"mappings":";;;;AAuEA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,UAAU;AACR,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACpC;AAAA,IACA,eAAe;AACb,aAAOC,EAAE,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,IAC3C;AAAA;EAEF,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,EAAE,WAAW,KAAK,KAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ;AAAA,QAChD,MACc,UACZD,EAAO,SAAS,KAAK,CAAC,UAAUD,CAAM,CAAC;AAAA,MAE3C,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;cA1EEG,EA0CQ,SAAA;AAAA,IA1CA,SAAOC,EAAA,aAAa;AAAA,IAAE,MAAK;AAAA;KACjCC,EAAA,EAAA,GAAAF,EAwCKG,GAAA,MAAAC,EAxCyBC,EAAA,cAAY,CAA9BC,GAAOC,YAAnBP,EAwCK,MAAA;AAAA,MAxCwC,WAAWO;AAAA;OACtDL,EAAA,EAAA,GAAAF,EAsCKG,GAAA,MAAAC,EAtC0BE,GAAK,CAAxBR,GAAQU,YAApBR,EAsCK,MAAA;AAAA,QAtCkC,WAAWQ;AAAA;QAExCP,EAAA,eAAeH,CAAM,UAD7BW,EAsBYC,GAAA;AAAA;UApBT,cAAYT,EAAA,gBAAgBH,CAAM;AAAA,UACnC,UAAS;AAAA,UACR,mBAAiBG,EAAA,yBAAyBH,CAAM;AAAA;UAEtC,WAASa,EAClB,CAYE,EAboB,OAAAC,QAAK;AAAA,kBAC3BH,EAYEI,EAXKf,EAAO,IAAI,GADlBgB,EAYE,EAAA,SAAA,GAAA,GAAA,EAAA,GAVab,EAAA,WAAS,GAAKW,KAAK;AAAA,cAC/B,QAAQd,EAAO;AAAA,cACf,YAAYA,EAAO;AAAA,cACnB,UAAUA,EAAO;AAAA,cACjB,iBAAeG,EAAA;AAAA,cACf,oBAAkBA,EAAA;AAAA,cAClB,SAASH,EAAO;AAAA,cAChB,MAAMA,EAAO;AAAA,cACb,MAAMA,EAAO;AAAA,cACb,eAAaA,EAAO;AAAA;;qBAGzB,MAAyC;AAAA,YAAzCiB,EAAyC,QAAA,MAAAC,EAAhCf,EAAA,eAAeH,CAAM,CAAA,GAAA,CAAA;AAAA;;wDAEhCI,EAAA,GAAAO,EAaEI,EAZKf,EAAO,IAAI,GADlBgB,EAaE;AAAA;;WAVQb,EAAA,WAAS;AAAA,UAChB,QAAQH,EAAO;AAAA,UACf,YAAYA,EAAO;AAAA,UACnB,UAAUA,EAAO;AAAA,UACjB,iBAAeG,EAAA;AAAA,UACf,oBAAkBA,EAAA;AAAA,UAClB,SAASH,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 c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs"),e=require("vue"),y=require("./CustomIcon-CEc927h0.cjs");require("single-spa");const x=require("./OutputDialog-D2YCbR20.cjs"),k=require("./TextBoxDialog-DzCvdsJj.cjs"),m=require("./format-B22VpiOS.cjs"),T={components:{OutputDialog:x.OutputDialog,TextBoxDialog:k.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.fi.get("/openc3-api/microservice_status/all").then(t=>{this.microservice_status=t.data}),c.fi.get("/openc3-api/microservices/all").then(t=>{let i=[];for(const[s,l]of Object.entries(t.data))i.push(l);i.sort((s,l)=>s.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.fi.post(`/openc3-api/microservices/${t}/start`).then(s=>{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.fi.post(`/openc3-api/microservices/${t}/stop`).then(s=>{this.alert=`Stopped ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},showMicroservice:function(t){c.fi.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 m.format(m.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),s="put",l=`/openc3-api/microservices/${this.microservice_id}`;i.name!==this.microservice_id&&(s="post",l="/openc3-api/microservices"),c.fi[s](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,s,l,o,n){const d=e.resolveComponent("v-alert"),h=e.resolveComponent("v-list-item-title"),v=e.resolveComponent("v-list-item-subtitle"),a=e.resolveComponent("v-btn"),_=e.resolveComponent("v-list-item"),f=e.resolveComponent("v-divider"),g=e.resolveComponent("v-list"),C=e.resolveComponent("output-dialog"),w=e.resolveComponent("text-box-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,{modelValue:o.showAlert,"onUpdate:modelValue":i[0]||(i[0]=r=>o.showAlert=r),closable:"",type:o.alertType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),e.createVNode(g,{class:"list","data-test":"microserviceList"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.microservices,r=>(e.openBlock(),e.createElementBlock("div",{key:r},[e.createVNode(_,null,{append:e.withCtx(()=>{var p;return[e.withDirectives(e.createVNode(a,{icon:"mdi-alert",variant:"text",onClick:u=>n.showMicroserviceError(r.name)},null,8,["onClick"]),[[e.vShow,(p=o.microservice_status[r.name])==null?void 0:p.error]]),e.createVNode(a,{"aria-label":"Start Microservice",icon:"mdi-play",variant:"text",onClick:u=>n.startMicroservice(r.name)},null,8,["onClick"]),e.createVNode(a,{"aria-label":"Stop Microservice",icon:"mdi-stop",variant:"text",onClick:u=>n.stopMicroservice(r.name)},null,8,["onClick"]),e.createVNode(a,{"aria-label":"Show Microservice Details",icon:"mdi-eye",variant:"text",onClick:u=>n.showMicroservice(r.name)},null,8,["onClick"])]}),default:e.withCtx(()=>[e.createVNode(h,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.name),1)]),_:2},1024),o.microservice_status[r.name]?(e.openBlock(),e.createBlock(v,{key:0},{default:e.withCtx(()=>[e.createTextVNode(" Updated: "+e.toDisplayString(n.formatDate(o.microservice_status[r.name].updated_at))+", State: "+e.toDisplayString(o.microservice_status[r.name].state)+", Enabled: "+e.toDisplayString(r.enabled===!1?"False":"True")+", Count: "+e.toDisplayString(o.microservice_status[r.name].count),1)]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(f)]))),128))]),_:1}),o.showDialog?(e.openBlock(),e.createBlock(C,{key:0,modelValue:o.showDialog,"onUpdate:modelValue":i[1]||(i[1]=r=>o.showDialog=r),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(w,{key:1,modelValue:o.showError,"onUpdate:modelValue":i[2]||(i[2]=r=>o.showError=r),text:o.jsonContent,title:o.dialogTitle},null,8,["modelValue","text","title"])):e.createCommentVNode("",!0)])}const D=y._export_sfc(T,[["render",S],["__scopeId","data-v-71cd70be"]]);exports.default=D;
2
- //# sourceMappingURL=MicroservicesTab-DXgSxZ0K.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs"),e=require("vue"),y=require("./CustomIcon-CEc927h0.cjs");require("single-spa");const x=require("./OutputDialog-BwEWPQW9.cjs"),k=require("./TextBoxDialog-DzCvdsJj.cjs"),m=require("./format-B22VpiOS.cjs"),T={components:{OutputDialog:x.OutputDialog,TextBoxDialog:k.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.fi.get("/openc3-api/microservice_status/all").then(t=>{this.microservice_status=t.data}),c.fi.get("/openc3-api/microservices/all").then(t=>{let i=[];for(const[s,l]of Object.entries(t.data))i.push(l);i.sort((s,l)=>s.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.fi.post(`/openc3-api/microservices/${t}/start`).then(s=>{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.fi.post(`/openc3-api/microservices/${t}/stop`).then(s=>{this.alert=`Stopped ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},showMicroservice:function(t){c.fi.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 m.format(m.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),s="put",l=`/openc3-api/microservices/${this.microservice_id}`;i.name!==this.microservice_id&&(s="post",l="/openc3-api/microservices"),c.fi[s](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,s,l,o,n){const d=e.resolveComponent("v-alert"),h=e.resolveComponent("v-list-item-title"),v=e.resolveComponent("v-list-item-subtitle"),a=e.resolveComponent("v-btn"),_=e.resolveComponent("v-list-item"),f=e.resolveComponent("v-divider"),g=e.resolveComponent("v-list"),C=e.resolveComponent("output-dialog"),w=e.resolveComponent("text-box-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,{modelValue:o.showAlert,"onUpdate:modelValue":i[0]||(i[0]=r=>o.showAlert=r),closable:"",type:o.alertType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),e.createVNode(g,{class:"list","data-test":"microserviceList"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.microservices,r=>(e.openBlock(),e.createElementBlock("div",{key:r},[e.createVNode(_,null,{append:e.withCtx(()=>{var p;return[e.withDirectives(e.createVNode(a,{icon:"mdi-alert",variant:"text",onClick:u=>n.showMicroserviceError(r.name)},null,8,["onClick"]),[[e.vShow,(p=o.microservice_status[r.name])==null?void 0:p.error]]),e.createVNode(a,{"aria-label":"Start Microservice",icon:"mdi-play",variant:"text",onClick:u=>n.startMicroservice(r.name)},null,8,["onClick"]),e.createVNode(a,{"aria-label":"Stop Microservice",icon:"mdi-stop",variant:"text",onClick:u=>n.stopMicroservice(r.name)},null,8,["onClick"]),e.createVNode(a,{"aria-label":"Show Microservice Details",icon:"mdi-eye",variant:"text",onClick:u=>n.showMicroservice(r.name)},null,8,["onClick"])]}),default:e.withCtx(()=>[e.createVNode(h,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.name),1)]),_:2},1024),o.microservice_status[r.name]?(e.openBlock(),e.createBlock(v,{key:0},{default:e.withCtx(()=>[e.createTextVNode(" Updated: "+e.toDisplayString(n.formatDate(o.microservice_status[r.name].updated_at))+", State: "+e.toDisplayString(o.microservice_status[r.name].state)+", Enabled: "+e.toDisplayString(r.enabled===!1?"False":"True")+", Count: "+e.toDisplayString(o.microservice_status[r.name].count),1)]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(f)]))),128))]),_:1}),o.showDialog?(e.openBlock(),e.createBlock(C,{key:0,modelValue:o.showDialog,"onUpdate:modelValue":i[1]||(i[1]=r=>o.showDialog=r),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(w,{key:1,modelValue:o.showError,"onUpdate:modelValue":i[2]||(i[2]=r=>o.showError=r),text:o.jsonContent,title:o.dialogTitle},null,8,["modelValue","text","title"])):e.createCommentVNode("",!0)])}const D=y._export_sfc(T,[["render",S],["__scopeId","data-v-71cd70be"]]);exports.default=D;
2
+ //# sourceMappingURL=MicroservicesTab-BWFwBSuf.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MicroservicesTab-DXgSxZ0K.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 v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\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-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\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","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"MicroservicesTab-BWFwBSuf.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 v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\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-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\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","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { f as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
1
+ import { f as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js";
2
2
  import { resolveComponent as i, createElementBlock as v, openBlock as u, createVNode as r, createBlock as _, createCommentVNode as f, withCtx as m, createTextVNode as g, toDisplayString as p, Fragment as D, renderList as V, withDirectives as A, vShow as E } from "vue";
3
3
  import { _ as j } from "./CustomIcon-B9m73Gqm.js";
4
4
  import "single-spa";
5
- import { O as N } from "./OutputDialog-Di-pSmJE.js";
5
+ import { O as N } from "./OutputDialog-x4QZFAWe.js";
6
6
  import { T as O } from "./TextBoxDialog-CJHrE2Sh.js";
7
7
  import { f as U, t as B } from "./format-CVeawcIv.js";
8
8
  const I = {
@@ -200,4 +200,4 @@ const P = /* @__PURE__ */ j(I, [["render", J], ["__scopeId", "data-v-71cd70be"]]
200
200
  export {
201
201
  P as default
202
202
  };
203
- //# sourceMappingURL=MicroservicesTab-DG3rdksb.js.map
203
+ //# sourceMappingURL=MicroservicesTab-xpDXKoa-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MicroservicesTab-DG3rdksb.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 v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\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-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\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","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"MicroservicesTab-xpDXKoa-.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 v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\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-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\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","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}