@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,72 +1,63 @@
1
- import { f as D, y as K, a as F, W as X, e as H, l as Y } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js";
2
- import { resolveComponent as r, createBlock as b, openBlock as f, withKeys as N, withCtx as a, createVNode as s, createElementVNode as v, toDisplayString as k, createTextVNode as T, withModifiers as A, createElementBlock as E, Fragment as R, renderList as B, ref as P, computed as j, watch as q, normalizeStyle as Z, createCommentVNode as V, withDirectives as M, vShow as L, normalizeProps as U, guardReactiveProps as W } from "vue";
3
- import { _ as O } from "./CustomIcon-B9m73Gqm.js";
1
+ import { f as V, y as q, a as M, W as Z, e as X, l as H } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js";
2
+ import { resolveComponent as d, createElementBlock as E, openBlock as f, createVNode as o, withCtx as r, createTextVNode as T, createElementVNode as _, withModifiers as O, normalizeStyle as B, toDisplayString as k, createBlock as x, withKeys as N, Fragment as L, renderList as P, ref as $, computed as Y, watch as K, createCommentVNode as I, withDirectives as F, vShow as z, normalizeProps as R, guardReactiveProps as U } from "vue";
3
+ import { _ as A } from "./CustomIcon-B9m73Gqm.js";
4
4
  import { f as J } from "./fileIcon-DqRHb1_Z.js";
5
- import { A as G } from "./TopBar-BkwvK0oj.js";
5
+ import { A as j } from "./TopBar-DzxJ69Tt.js";
6
6
  class Q {
7
7
  constructor() {
8
- D.get("/openc3-api/autocomplete/data/screen").then((t) => {
8
+ V.get("/openc3-api/autocomplete/data/screen").then((t) => {
9
9
  this.autocompleteData = t.data;
10
- }), this.api = new K();
10
+ }), this.api = new q();
11
11
  }
12
- async getCompletions(t, n, o, i, l) {
13
- let p = n.getLine(o.row).slice(0, o.column).trimStart().split(/ (?![^<]*>)/), h = this.autocompleteData;
14
- p.length > 1 && (h = h.find((S) => S.caption === p[0]));
15
- let w = {}, C = !0;
16
- if (h && h.params) {
17
- h.params.length == p.length - 1 && (C = !1);
18
- let S = h.params[p.length - 2];
19
- if (S["Target name"])
20
- h = (await this.api.get_target_names()).reduce(
21
- (d, y) => (d[y] = 1, d),
12
+ async getCompletions(t, n, s, i, l) {
13
+ let h = n.getLine(s.row).slice(0, s.column).trimStart().split(/ (?![^<]*>)/), m = this.autocompleteData;
14
+ h.length > 1 && (m = m.find((w) => w.caption === h[0]));
15
+ let y = {}, S = !0;
16
+ if (m && m.params) {
17
+ m.params.length == h.length - 1 && (S = !1);
18
+ let w = m.params[h.length - 2];
19
+ if (w["Target name"])
20
+ m = (await this.api.get_target_names()).reduce(
21
+ (a, g) => (a[g] = 1, a),
22
22
  {}
23
23
  );
24
- else if (S["Packet name"]) {
25
- let u = p[p.length - 2];
26
- h = (await this.api.get_all_tlm(u)).reduce(
27
- (y, m) => (y[m.packet_name] = m.description, y),
24
+ else if (w["Packet name"]) {
25
+ let u = h[h.length - 2];
26
+ m = (await this.api.get_all_tlm(u)).reduce(
27
+ (g, p) => (g[p.packet_name] = p.description, g),
28
28
  {}
29
- ), h.LATEST = "LATEST values from all packets";
30
- } else if (S["Item name"]) {
31
- let u = p[p.length - 3], d = p[p.length - 2];
32
- if (d === "LATEST") {
33
- let y = await this.api.get_all_tlm_item_names(u);
34
- h = {}, y.forEach((m) => {
35
- h[m] = `LATEST ${m}`;
29
+ ), m.LATEST = "LATEST values from all packets";
30
+ } else if (w["Item name"]) {
31
+ let u = h[h.length - 3], a = h[h.length - 2];
32
+ if (a === "LATEST") {
33
+ let g = await this.api.get_all_tlm_item_names(u);
34
+ m = {}, g.forEach((p) => {
35
+ m[p] = `LATEST ${p}`;
36
36
  });
37
37
  } else
38
- h = (await this.api.get_tlm(u, d)).items.reduce(
39
- (m, g) => (m[g.name] = g.description, m),
38
+ m = (await this.api.get_tlm(u, a)).items.reduce(
39
+ (p, b) => (p[b.name] = b.description, p),
40
40
  {}
41
41
  );
42
42
  } else
43
- h = S;
44
- w = Object.keys(h || {}).map((u) => {
45
- let d = {
46
- value: u + (C ? " " : ""),
43
+ m = w;
44
+ y = Object.keys(m || {}).map((u) => {
45
+ let a = {
46
+ value: u + (S ? " " : ""),
47
47
  // We want the autoComplete to continue right up
48
48
  // to the last parameter
49
- command: C && "startAutocomplete"
49
+ command: S && "startAutocomplete"
50
50
  };
51
- return typeof h[u] == "string" && (d.meta = h[u]), d;
51
+ return typeof m[u] == "string" && (a.meta = m[u]), a;
52
52
  });
53
53
  } else
54
- w = h;
55
- l(null, w);
54
+ y = m;
55
+ l(null, y);
56
56
  }
57
57
  }
58
58
  const ee = {
59
59
  props: {
60
- modelValue: Boolean,
61
- target: {
62
- type: String,
63
- default: ""
64
- },
65
- screen: {
66
- type: String,
67
- default: ""
68
- },
69
- definition: {
60
+ modelValue: {
70
61
  type: String,
71
62
  default: ""
72
63
  },
@@ -74,15 +65,21 @@ const ee = {
74
65
  type: Array,
75
66
  default: () => []
76
67
  },
77
- errors: {
78
- type: Array,
79
- default: () => []
68
+ height: {
69
+ type: String,
70
+ default: "45vh"
71
+ },
72
+ filename: {
73
+ type: String,
74
+ default: "screen.txt"
80
75
  }
81
76
  },
82
- emits: ["cancel", "delete", "save", "update:modelValue"],
77
+ emits: ["update:modelValue"],
83
78
  data() {
84
79
  return {
80
+ editor: null,
85
81
  file: null,
82
+ loadedKeywords: [],
86
83
  docsKeyword: "",
87
84
  contextMenu: !1,
88
85
  menuX: 0,
@@ -90,61 +87,55 @@ const ee = {
90
87
  };
91
88
  },
92
89
  computed: {
93
- editErrors: function() {
94
- if (this.definition === "" && !this.file)
95
- return ["Input can not be blank."];
96
- if (this.errors.length !== 0) {
97
- let e = /* @__PURE__ */ new Set(), t = [];
98
- const n = this.errors.toSorted(
99
- (o, i) => o.lineNumber - i.lineNumber
100
- );
101
- for (const o of n) {
102
- let i = `At ${o.lineNumber}: (${o.line}) ${o.message}.`;
103
- o.usage && (i += ` Usage: ${o.usage}`), t.push(i), e.add(o.message);
104
- }
105
- return t;
106
- }
107
- return [];
90
+ effectiveKeywords() {
91
+ return this.keywords.length > 0 ? this.keywords : this.loadedKeywords;
92
+ }
93
+ },
94
+ watch: {
95
+ modelValue(e) {
96
+ this.editor && this.editor.getValue() !== e && (this.editor.setValue(e), this.editor.clearSelection());
108
97
  },
109
- show: {
110
- get() {
111
- return this.modelValue;
112
- },
113
- set(e) {
114
- this.$emit("update:modelValue", e);
98
+ effectiveKeywords() {
99
+ if (this.editor) {
100
+ const e = this.buildScreenMode();
101
+ this.editor.session.setMode(new e());
115
102
  }
116
103
  }
117
104
  },
118
- mounted: function() {
119
- this.editor = F.edit(this.$refs.editor), this.editor.setTheme("ace/theme/twilight");
120
- const e = this.buildScreenMode();
121
- this.editor.session.setMode(new e()), this.editor.session.setTabSize(2), this.editor.session.setUseWrapMode(!0), this.editor.$blockScrolling = 1 / 0, this.editor.setOption("enableBasicAutocompletion", !0), this.editor.setOption("enableLiveAutocompletion", !0), this.editor.completers = [new Q()], this.editor.setHighlightActiveLine(!1), this.editor.setValue(this.definition), this.editor.clearSelection(), G.applyVimModeIfEnabled(this.editor), this.editor.focus();
105
+ created() {
106
+ this.keywords.length === 0 && this.loadKeywords();
107
+ },
108
+ mounted() {
109
+ this.initEditor();
122
110
  },
123
111
  beforeUnmount() {
124
- this.editor.destroy(), this.editor.container.remove();
112
+ this.editor && (this.editor.destroy(), this.editor.container.remove());
125
113
  },
126
114
  methods: {
127
- toggleVimMode: function() {
128
- G.toggleVimMode(this.editor);
129
- },
130
- showContextMenu: function(e) {
131
- this.menuX = e.pageX, this.menuY = e.pageY;
132
- let t = this.editor.getCursorPosition(), n = this.editor.session.getTokenAt(t.row, t.column);
133
- if (n) {
134
- let o = n.value.trim();
135
- o.includes(" ") ? this.docsKeyword = o.split(" ")[0] : this.docsKeyword = o, this.contextMenu = !0;
115
+ async loadKeywords() {
116
+ try {
117
+ const e = await V.get(
118
+ "/openc3-api/autocomplete/keywords/screen"
119
+ );
120
+ this.loadedKeywords = e.data;
121
+ } catch (e) {
122
+ console.error("Error loading screen keywords:", e);
136
123
  }
137
124
  },
138
- openDocumentation() {
139
- window.open(
140
- `${window.location.origin}/tools/staticdocs/docs/configuration/telemetry-screens#${this.docsKeyword.toLowerCase()}`,
141
- "_blank"
142
- );
125
+ initEditor() {
126
+ this.editor = M.edit(this.$refs.editor), this.editor.setTheme("ace/theme/twilight");
127
+ const e = this.buildScreenMode();
128
+ this.editor.session.setMode(new e()), this.editor.session.setTabSize(2), this.editor.session.setUseWrapMode(!0), this.editor.$blockScrolling = 1 / 0, this.editor.setOption("enableBasicAutocompletion", !0), this.editor.setOption("enableLiveAutocompletion", !0), this.editor.completers = [new Q()], this.editor.setHighlightActiveLine(!1), this.editor.setValue(this.modelValue), this.editor.clearSelection(), j.applyVimModeIfEnabled(this.editor), this.editor.focus(), this.editor.session.on("change", () => {
129
+ this.$emit("update:modelValue", this.editor.getValue());
130
+ });
131
+ },
132
+ getValue() {
133
+ return this.editor ? this.editor.getValue() : this.modelValue;
143
134
  },
144
135
  buildScreenMode() {
145
- let e = F.require("ace/lib/oop"), t = F.require(
136
+ let e = M.require("ace/lib/oop"), t = M.require(
146
137
  "ace/mode/text_highlight_rules"
147
- ).TextHighlightRules, n = this.keywords.join("|"), o = function() {
138
+ ).TextHighlightRules, n = this.effectiveKeywords.join("|"), s = function() {
148
139
  this.$rules = {
149
140
  start: [
150
141
  {
@@ -165,33 +156,217 @@ const ee = {
165
156
  },
166
157
  {
167
158
  token: "keyword",
168
- regex: new RegExp(`^\\s*(${n})\\b`)
159
+ regex: n ? new RegExp(`^\\s*(${n})\\b`) : /(?!)/
169
160
  }
170
161
  ]
171
162
  }, this.normalizeRules();
172
163
  };
173
- e.inherits(o, t);
164
+ e.inherits(s, t);
174
165
  let i = function() {
175
- this.HighlightRules = o;
176
- }, l = F.require("ace/mode/text").Mode;
166
+ this.HighlightRules = s;
167
+ }, l = M.require("ace/mode/text").Mode;
177
168
  return e.inherits(i, l), (function() {
178
169
  this.$id = "ace/mode/openc3";
179
170
  }).call(i.prototype), i;
180
171
  },
181
- downloadScreen: function() {
172
+ toggleVimMode() {
173
+ j.toggleVimMode(this.editor);
174
+ },
175
+ showContextMenu(e) {
176
+ this.menuX = e.pageX, this.menuY = e.pageY;
177
+ let t = this.editor.getCursorPosition(), n = this.editor.session.getTokenAt(t.row, t.column);
178
+ if (n) {
179
+ let s = n.value.trim();
180
+ s.includes(" ") ? this.docsKeyword = s.split(" ")[0] : this.docsKeyword = s, this.contextMenu = !0;
181
+ }
182
+ },
183
+ openDocumentation() {
184
+ window.open(
185
+ `${window.location.origin}/tools/staticdocs/docs/configuration/telemetry-screens#${this.docsKeyword.toLowerCase()}`,
186
+ "_blank"
187
+ );
188
+ },
189
+ downloadContent() {
182
190
  const e = new Blob([this.editor.getValue()], {
183
191
  type: "text/plain"
184
192
  }), t = document.createElement("a");
185
- t.href = URL.createObjectURL(e), t.setAttribute("download", `${this.screen.toLowerCase()}.txt`), t.click();
193
+ t.href = URL.createObjectURL(e), t.setAttribute("download", this.filename), t.click();
186
194
  },
187
- loadFile: function() {
195
+ loadFile() {
188
196
  const e = new FileReader();
189
197
  e.readAsText(this.file);
190
198
  const t = this;
191
199
  e.onload = function() {
192
- t.editor.setValue(e.result), t.file = null;
200
+ t.editor.setValue(e.result), t.editor.clearSelection(), t.file = null;
193
201
  };
202
+ }
203
+ }
204
+ }, te = { class: "screen-editor-container" };
205
+ function ne(e, t, n, s, i, l) {
206
+ const c = d("v-btn"), v = d("v-file-input"), h = d("v-spacer"), m = d("v-row"), y = d("v-list-item-title"), S = d("v-list-item"), w = d("v-divider"), u = d("v-list"), a = d("v-menu");
207
+ return f(), E("div", te, [
208
+ o(m, {
209
+ "no-gutters": "",
210
+ align: "center",
211
+ class: "mb-2"
212
+ }, {
213
+ default: r(() => [
214
+ o(c, {
215
+ disabled: !i.file,
216
+ color: "primary",
217
+ size: "small",
218
+ class: "mr-3",
219
+ "data-test": "screen-editor-load",
220
+ onClick: l.loadFile
221
+ }, {
222
+ default: r(() => [...t[3] || (t[3] = [
223
+ T(" Load ", -1)
224
+ ])]),
225
+ _: 1
226
+ }, 8, ["disabled", "onClick"]),
227
+ o(v, {
228
+ modelValue: i.file,
229
+ "onUpdate:modelValue": t[0] || (t[0] = (g) => i.file = g),
230
+ "truncate-length": "15",
231
+ accept: ".txt",
232
+ label: "Click to select .txt screen file.",
233
+ density: "compact",
234
+ "hide-details": "",
235
+ style: { "max-width": "300px" }
236
+ }, null, 8, ["modelValue"]),
237
+ o(h),
238
+ o(c, {
239
+ icon: "mdi-download",
240
+ variant: "text",
241
+ density: "compact",
242
+ title: "Download",
243
+ "data-test": "download-screen-icon",
244
+ onClick: l.downloadContent
245
+ }, null, 8, ["onClick"])
246
+ ]),
247
+ _: 1
248
+ }),
249
+ o(m, {
250
+ "no-gutters": "",
251
+ class: "mb-2"
252
+ }, {
253
+ default: r(() => [
254
+ _("pre", {
255
+ ref: "editor",
256
+ class: "screen-editor",
257
+ style: B({ height: n.height, width: "100%" }),
258
+ onContextmenu: t[1] || (t[1] = O((...g) => l.showContextMenu && l.showContextMenu(...g), ["prevent"]))
259
+ }, null, 36),
260
+ o(a, {
261
+ modelValue: i.contextMenu,
262
+ "onUpdate:modelValue": t[2] || (t[2] = (g) => i.contextMenu = g),
263
+ target: [i.menuX, i.menuY]
264
+ }, {
265
+ default: r(() => [
266
+ o(u, null, {
267
+ default: r(() => [
268
+ o(S, {
269
+ link: "",
270
+ onClick: l.openDocumentation
271
+ }, {
272
+ default: r(() => [
273
+ o(y, null, {
274
+ default: r(() => [
275
+ T(k(i.docsKeyword) + " documentation ", 1)
276
+ ]),
277
+ _: 1
278
+ })
279
+ ]),
280
+ _: 1
281
+ }, 8, ["onClick"]),
282
+ o(w),
283
+ o(S, {
284
+ title: "Toggle Vim mode",
285
+ "prepend-icon": "extras:vim",
286
+ onClick: l.toggleVimMode
287
+ }, null, 8, ["onClick"])
288
+ ]),
289
+ _: 1
290
+ })
291
+ ]),
292
+ _: 1
293
+ }, 8, ["modelValue", "target"])
294
+ ]),
295
+ _: 1
296
+ }),
297
+ o(m, { "no-gutters": "" }, {
298
+ default: r(() => [...t[4] || (t[4] = [
299
+ _("span", { class: "text-caption text-grey" }, " Ctrl-space brings up autocomplete. Right click keywords for documentation. ", -1)
300
+ ])]),
301
+ _: 1
302
+ })
303
+ ]);
304
+ }
305
+ const ie = /* @__PURE__ */ A(ee, [["render", ne], ["__scopeId", "data-v-9458690b"]]), se = {
306
+ components: {
307
+ ScreenEditor: ie
308
+ },
309
+ props: {
310
+ modelValue: Boolean,
311
+ target: {
312
+ type: String,
313
+ default: ""
314
+ },
315
+ screen: {
316
+ type: String,
317
+ default: ""
318
+ },
319
+ definition: {
320
+ type: String,
321
+ default: ""
194
322
  },
323
+ keywords: {
324
+ type: Array,
325
+ default: () => []
326
+ },
327
+ errors: {
328
+ type: Array,
329
+ default: () => []
330
+ }
331
+ },
332
+ emits: ["cancel", "delete", "save", "update:modelValue"],
333
+ data() {
334
+ return {
335
+ editorContent: this.definition
336
+ };
337
+ },
338
+ computed: {
339
+ editErrors: function() {
340
+ if (this.editorContent === "")
341
+ return ["Input can not be blank."];
342
+ if (this.errors.length !== 0) {
343
+ let e = /* @__PURE__ */ new Set(), t = [];
344
+ const n = this.errors.toSorted(
345
+ (s, i) => s.lineNumber - i.lineNumber
346
+ );
347
+ for (const s of n) {
348
+ let i = `At ${s.lineNumber}: (${s.line}) ${s.message}.`;
349
+ s.usage && (i += ` Usage: ${s.usage}`), t.push(i), e.add(s.message);
350
+ }
351
+ return t;
352
+ }
353
+ return [];
354
+ },
355
+ show: {
356
+ get() {
357
+ return this.modelValue;
358
+ },
359
+ set(e) {
360
+ this.$emit("update:modelValue", e);
361
+ }
362
+ }
363
+ },
364
+ watch: {
365
+ definition(e) {
366
+ this.editorContent = e;
367
+ }
368
+ },
369
+ methods: {
195
370
  deleteScreen: function() {
196
371
  this.$dialog.confirm("Are you sure you want to delete this screen?!", {
197
372
  okText: "Delete",
@@ -201,22 +376,22 @@ const ee = {
201
376
  });
202
377
  }
203
378
  }
204
- }, te = ["textContent"];
205
- function ne(e, t, n, o, i, l) {
206
- const c = r("v-btn"), x = r("v-spacer"), p = r("v-toolbar"), h = r("v-row"), w = r("v-file-input"), C = r("v-list-item-title"), S = r("v-list-item"), u = r("v-divider"), d = r("v-list"), y = r("v-menu"), m = r("v-card-text"), g = r("v-card"), I = r("v-dialog");
207
- return f(), b(I, {
379
+ }, le = ["textContent"];
380
+ function oe(e, t, n, s, i, l) {
381
+ const c = d("v-btn"), v = d("v-spacer"), h = d("v-toolbar"), m = d("screen-editor"), y = d("v-row"), S = d("v-card-text"), w = d("v-card"), u = d("v-dialog");
382
+ return f(), x(u, {
208
383
  modelValue: l.show,
209
- "onUpdate:modelValue": t[5] || (t[5] = (_) => l.show = _),
384
+ "onUpdate:modelValue": t[3] || (t[3] = (a) => l.show = a),
210
385
  persistent: "",
211
386
  width: "75vw",
212
- onKeydown: t[6] || (t[6] = N((_) => e.$emit("cancel"), ["esc"]))
387
+ onKeydown: t[4] || (t[4] = N((a) => e.$emit("cancel"), ["esc"]))
213
388
  }, {
214
- default: a(() => [
215
- s(g, null, {
216
- default: a(() => [
217
- s(p, { height: "24" }, {
218
- default: a(() => [
219
- s(c, {
389
+ default: r(() => [
390
+ o(w, null, {
391
+ default: r(() => [
392
+ o(h, { height: "24" }, {
393
+ default: r(() => [
394
+ o(c, {
220
395
  class: "mx-2",
221
396
  icon: "mdi-delete",
222
397
  variant: "text",
@@ -224,135 +399,54 @@ function ne(e, t, n, o, i, l) {
224
399
  "data-test": "delete-screen-icon",
225
400
  onClick: l.deleteScreen
226
401
  }, null, 8, ["onClick"]),
227
- s(x),
228
- v("span", null, " Edit Screen: " + k(n.target) + " " + k(n.screen), 1),
229
- s(x),
230
- s(c, {
231
- class: "mx-2",
232
- icon: "mdi-download",
233
- variant: "text",
234
- density: "compact",
235
- "data-test": "download-screen-icon",
236
- onClick: l.downloadScreen
237
- }, null, 8, ["onClick"])
402
+ o(v),
403
+ _("span", null, " Edit Screen: " + k(n.target) + " " + k(n.screen), 1),
404
+ o(v)
238
405
  ]),
239
406
  _: 1
240
407
  }),
241
- s(m, { style: { "max-height": "90vh" } }, {
242
- default: a(() => [
243
- s(h, { class: "mt-3" }, {
244
- default: a(() => [...t[7] || (t[7] = [
245
- T(" Upload a screen file. ", -1)
246
- ])]),
247
- _: 1
248
- }),
249
- s(h, {
250
- "no-gutters": "",
251
- align: "center"
252
- }, {
253
- default: a(() => [
254
- s(c, {
255
- disabled: !i.file,
256
- color: "primary",
257
- class: "mr-3",
258
- "data-test": "edit-screen-load",
259
- onClick: l.loadFile
260
- }, {
261
- default: a(() => [...t[8] || (t[8] = [
262
- T(" Load ", -1)
263
- ])]),
264
- _: 1
265
- }, 8, ["disabled", "onClick"]),
266
- s(w, {
267
- modelValue: i.file,
268
- "onUpdate:modelValue": t[0] || (t[0] = (_) => i.file = _),
269
- "truncate-length": "15",
270
- accept: ".txt",
271
- label: "Click to select .txt screen file."
272
- }, null, 8, ["modelValue"])
273
- ]),
274
- _: 1
275
- }),
276
- s(h, { class: "mb-2" }, {
277
- default: a(() => [...t[9] || (t[9] = [
278
- T(" Edit the screen definition. ", -1)
279
- ])]),
280
- _: 1
281
- }),
282
- s(h, { class: "mb-2" }, {
283
- default: a(() => [
284
- v("pre", {
285
- ref: "editor",
286
- class: "editor",
287
- onContextmenu: t[1] || (t[1] = A((..._) => l.showContextMenu && l.showContextMenu(..._), ["prevent"]))
288
- }, null, 544),
289
- s(y, {
290
- modelValue: i.contextMenu,
291
- "onUpdate:modelValue": t[2] || (t[2] = (_) => i.contextMenu = _),
292
- target: [i.menuX, i.menuY]
293
- }, {
294
- default: a(() => [
295
- s(d, null, {
296
- default: a(() => [
297
- s(S, { link: "" }, {
298
- default: a(() => [
299
- s(C, { onClick: l.openDocumentation }, {
300
- default: a(() => [
301
- T(k(i.docsKeyword) + " documentation ", 1)
302
- ]),
303
- _: 1
304
- }, 8, ["onClick"])
305
- ]),
306
- _: 1
307
- }),
308
- s(u),
309
- s(S, {
310
- title: "Toggle Vim mode",
311
- "prepend-icon": "extras:vim",
312
- onClick: l.toggleVimMode
313
- }, null, 8, ["onClick"])
314
- ]),
315
- _: 1
316
- })
317
- ]),
318
- _: 1
319
- }, 8, ["modelValue", "target"])
320
- ]),
321
- _: 1
322
- }),
323
- s(h, { style: { "max-height": "120px", "overflow-y": "auto" } }, {
324
- default: a(() => [
325
- (f(!0), E(R, null, B(l.editErrors, (_, $) => (f(), E("div", { key: $ }, [
326
- v("span", {
408
+ o(S, { style: { "max-height": "90vh" } }, {
409
+ default: r(() => [
410
+ o(m, {
411
+ ref: "screenEditor",
412
+ modelValue: i.editorContent,
413
+ "onUpdate:modelValue": t[0] || (t[0] = (a) => i.editorContent = a),
414
+ keywords: n.keywords,
415
+ filename: `${n.screen.toLowerCase()}.txt`,
416
+ height: "45vh"
417
+ }, null, 8, ["modelValue", "keywords", "filename"]),
418
+ o(y, { style: { "max-height": "120px", "overflow-y": "auto" } }, {
419
+ default: r(() => [
420
+ (f(!0), E(L, null, P(l.editErrors, (a, g) => (f(), E("div", { key: g }, [
421
+ _("span", {
327
422
  class: "text-red",
328
- textContent: k(_)
329
- }, null, 8, te)
423
+ textContent: k(a)
424
+ }, null, 8, le)
330
425
  ]))), 128))
331
426
  ]),
332
427
  _: 1
333
428
  }),
334
- s(h, { class: "mt-5" }, {
335
- default: a(() => [
336
- t[12] || (t[12] = v("span", null, " Ctrl-space brings up autocomplete. Right click keywords for documentation. ", -1)),
337
- s(x),
338
- s(c, {
429
+ o(y, { class: "mt-3" }, {
430
+ default: r(() => [
431
+ o(v),
432
+ o(c, {
339
433
  class: "mx-2",
340
434
  variant: "outlined",
341
435
  "data-test": "edit-screen-cancel",
342
- onClick: t[3] || (t[3] = (_) => e.$emit("cancel"))
436
+ onClick: t[1] || (t[1] = (a) => e.$emit("cancel"))
343
437
  }, {
344
- default: a(() => [...t[10] || (t[10] = [
438
+ default: r(() => [...t[5] || (t[5] = [
345
439
  T(" Cancel ", -1)
346
440
  ])]),
347
441
  _: 1
348
442
  }),
349
- s(c, {
443
+ o(c, {
350
444
  class: "mx-2",
351
445
  color: "primary",
352
446
  "data-test": "edit-screen-save",
353
- onClick: t[4] || (t[4] = (_) => e.$emit("save", e.editor.getValue()))
447
+ onClick: t[2] || (t[2] = (a) => e.$emit("save", i.editorContent))
354
448
  }, {
355
- default: a(() => [...t[11] || (t[11] = [
449
+ default: r(() => [...t[6] || (t[6] = [
356
450
  T(" Save ", -1)
357
451
  ])]),
358
452
  _: 1
@@ -370,7 +464,79 @@ function ne(e, t, n, o, i, l) {
370
464
  _: 1
371
465
  }, 8, ["modelValue"]);
372
466
  }
373
- const ie = /* @__PURE__ */ O(ee, [["render", ne], ["__scopeId", "data-v-00a228d0"]]), le = {
467
+ const re = /* @__PURE__ */ A(se, [["render", oe]]), ae = (e) => V.get(`/openc3-api/autocomplete/keywords/${e}`), de = (e) => V.get(`/openc3-api/autocomplete/data/${e}`), Fe = (e, t) => e.reduce((n, s) => {
468
+ const i = t(s);
469
+ return n[i] ? n[i].push(s) : n[i] = [s], n;
470
+ }, {}), ce = (e) => {
471
+ const t = "(^|[{\\(\\s])", n = `[\\s\\(]f?['"]`, s = "(\\S+\\s?){0,3}";
472
+ return new RegExp(`${t}${e}${n}${s}$`);
473
+ };
474
+ class G {
475
+ constructor(t, n = () => {
476
+ }, s = () => {
477
+ }) {
478
+ this.keywordExpressions = [], this.autocompleteData = [], ae(t).then((i) => {
479
+ this.keywordExpressions = i.data.map(ce), s();
480
+ }), de(t).then((i) => {
481
+ this.autocompleteData = i.data, n();
482
+ });
483
+ }
484
+ getCompletions(t, n, s, i, l) {
485
+ let c = [];
486
+ const v = n.doc.$lines[s.row].slice(
487
+ 0,
488
+ s.column
489
+ );
490
+ this.keywordExpressions.some((h) => v.match(h)) && (c = this.autocompleteData), l(null, [
491
+ ...c
492
+ // Uncomment to also return the built-in autocomplete words (but I found they're not very good and just get in the way when using live autocomplete)
493
+ // ...session.$mode.$highlightRules.$keywordList.map((word) => ({
494
+ // caption: word,
495
+ // value: word,
496
+ // meta: 'keyword',
497
+ // })),
498
+ ]);
499
+ }
500
+ }
501
+ class ze extends G {
502
+ constructor() {
503
+ super("cmd");
504
+ }
505
+ }
506
+ class Ne extends G {
507
+ constructor() {
508
+ super("tlm", () => {
509
+ this.groupedPacketData = this.autocompleteData.reduce((t, n) => {
510
+ const s = n.caption.match(/\S+\s\S+/)[0], i = n.snippet.replace(`${s} `, ""), l = {
511
+ caption: i,
512
+ snippet: i,
513
+ meta: "item"
514
+ };
515
+ return t[s] ? t[s].push(l) : t[s] = [l], t;
516
+ }, {}), this.packets = Object.keys(this.groupedPacketData).map((t) => ({
517
+ caption: t,
518
+ snippet: t,
519
+ meta: "packet"
520
+ }));
521
+ });
522
+ }
523
+ // Override the parent's getCompletions to take advantage of the grouping by packet done in the constructor
524
+ getCompletions(t, n, s, i, l) {
525
+ let c = [];
526
+ const v = n.doc.$lines[s.row].slice(
527
+ 0,
528
+ s.column
529
+ );
530
+ if (this.keywordExpressions.some((h) => v.match(h))) {
531
+ const h = Object.keys(this.groupedPacketData).find(
532
+ (m) => v.includes(m)
533
+ );
534
+ h ? c = this.groupedPacketData[h] : c = this.packets;
535
+ }
536
+ l(null, c);
537
+ }
538
+ }
539
+ const ue = {
374
540
  props: {
375
541
  modelValue: Boolean
376
542
  },
@@ -420,13 +586,13 @@ const ie = /* @__PURE__ */ O(ee, [["render", ne], ["__scopeId", "data-v-00a228d0
420
586
  this.alert = e.text, this.alertType = e.type, this.showAlert = !0;
421
587
  },
422
588
  update: function() {
423
- D.get("/openc3-api/environment").then((e) => {
589
+ V.get("/openc3-api/environment").then((e) => {
424
590
  this.environment = e.data;
425
591
  }).catch((e) => {
426
592
  });
427
593
  },
428
594
  addEnvironment: function() {
429
- D.post("/openc3-api/environment", {
595
+ V.post("/openc3-api/environment", {
430
596
  data: {
431
597
  key: this.key.toUpperCase(),
432
598
  value: this.keyValue
@@ -445,7 +611,7 @@ const ie = /* @__PURE__ */ O(ee, [["render", ne], ["__scopeId", "data-v-00a228d0
445
611
  this.$dialog.confirm(`Are you sure you want to delete: ${e.key}=${e.value}`, {
446
612
  okText: "Delete",
447
613
  cancelText: "Cancel"
448
- }).then((t) => D.delete(`/openc3-api/environment/${e.name}`)).then((t) => {
614
+ }).then((t) => V.delete(`/openc3-api/environment/${e.name}`)).then((t) => {
449
615
  const n = {
450
616
  text: `Removed environment variable: ${e.name}`,
451
617
  type: "success"
@@ -460,39 +626,39 @@ const ie = /* @__PURE__ */ O(ee, [["render", ne], ["__scopeId", "data-v-00a228d0
460
626
  });
461
627
  }
462
628
  }
463
- }, se = { class: "pa-3" };
464
- function oe(e, t, n, o, i, l) {
465
- const c = r("v-spacer"), x = r("v-toolbar"), p = r("v-text-field"), h = r("v-row"), w = r("v-btn"), C = r("v-data-table"), S = r("v-col"), u = r("v-card-text"), d = r("v-card"), y = r("v-dialog");
466
- return f(), b(y, {
629
+ }, he = { class: "pa-3" };
630
+ function me(e, t, n, s, i, l) {
631
+ const c = d("v-spacer"), v = d("v-toolbar"), h = d("v-text-field"), m = d("v-row"), y = d("v-btn"), S = d("v-data-table"), w = d("v-col"), u = d("v-card-text"), a = d("v-card"), g = d("v-dialog");
632
+ return f(), x(g, {
467
633
  modelValue: l.show,
468
- "onUpdate:modelValue": t[4] || (t[4] = (m) => l.show = m),
634
+ "onUpdate:modelValue": t[4] || (t[4] = (p) => l.show = p),
469
635
  width: "600"
470
636
  }, {
471
- default: a(() => [
472
- s(d, null, {
473
- default: a(() => [
474
- v("form", {
475
- onSubmit: t[3] || (t[3] = A((...m) => l.addEnvironment && l.addEnvironment(...m), ["prevent"]))
637
+ default: r(() => [
638
+ o(a, null, {
639
+ default: r(() => [
640
+ _("form", {
641
+ onSubmit: t[3] || (t[3] = O((...p) => l.addEnvironment && l.addEnvironment(...p), ["prevent"]))
476
642
  }, [
477
- s(x, { height: "24" }, {
478
- default: a(() => [
479
- s(c),
480
- t[5] || (t[5] = v("span", null, "Global Environment Variables", -1)),
481
- s(c)
643
+ o(v, { height: "24" }, {
644
+ default: r(() => [
645
+ o(c),
646
+ t[5] || (t[5] = _("span", null, "Global Environment Variables", -1)),
647
+ o(c)
482
648
  ]),
483
649
  _: 1
484
650
  }),
485
- s(u, null, {
486
- default: a(() => [
487
- v("div", se, [
488
- s(h, {
651
+ o(u, null, {
652
+ default: r(() => [
653
+ _("div", he, [
654
+ o(m, {
489
655
  dense: "",
490
656
  class: "mb-2"
491
657
  }, {
492
- default: a(() => [
493
- s(p, {
658
+ default: r(() => [
659
+ o(h, {
494
660
  modelValue: i.search,
495
- "onUpdate:modelValue": t[0] || (t[0] = (m) => i.search = m),
661
+ "onUpdate:modelValue": t[0] || (t[0] = (p) => i.search = p),
496
662
  label: "search",
497
663
  type: "text",
498
664
  "data-test": "search",
@@ -508,7 +674,7 @@ function oe(e, t, n, o, i, l) {
508
674
  ]),
509
675
  _: 1
510
676
  }),
511
- s(C, {
677
+ o(S, {
512
678
  "item-key": "name",
513
679
  "hide-default-header": "",
514
680
  "data-test": "env-table",
@@ -518,36 +684,36 @@ function oe(e, t, n, o, i, l) {
518
684
  "items-per-page": 5,
519
685
  "items-per-page-options": [5]
520
686
  }, {
521
- "item.actions": a(({ item: m }) => [
522
- s(w, {
687
+ "item.actions": r(({ item: p }) => [
688
+ o(y, {
523
689
  icon: "mdi-delete",
524
690
  variant: "text",
525
691
  class: "mt-1",
526
692
  "data-test": "item-delete",
527
693
  "aria-label": "Delete Environment Variable",
528
- onClick: (g) => l.deleteEnvironment(m)
694
+ onClick: (b) => l.deleteEnvironment(p)
529
695
  }, null, 8, ["onClick"])
530
696
  ]),
531
697
  _: 1
532
698
  }, 8, ["search", "headers", "items"]),
533
- s(h, { dense: "" }, {
534
- default: a(() => [
535
- s(S, null, {
536
- default: a(() => [
537
- s(p, {
699
+ o(m, { dense: "" }, {
700
+ default: r(() => [
701
+ o(w, null, {
702
+ default: r(() => [
703
+ o(h, {
538
704
  modelValue: i.key,
539
- "onUpdate:modelValue": t[1] || (t[1] = (m) => i.key = m),
705
+ "onUpdate:modelValue": t[1] || (t[1] = (p) => i.key = p),
540
706
  label: "Key",
541
707
  "data-test": "env-key"
542
708
  }, null, 8, ["modelValue"])
543
709
  ]),
544
710
  _: 1
545
711
  }),
546
- s(S, null, {
547
- default: a(() => [
548
- s(p, {
712
+ o(w, null, {
713
+ default: r(() => [
714
+ o(h, {
549
715
  modelValue: i.keyValue,
550
- "onUpdate:modelValue": t[2] || (t[2] = (m) => i.keyValue = m),
716
+ "onUpdate:modelValue": t[2] || (t[2] = (p) => i.keyValue = p),
551
717
  label: "Value",
552
718
  "data-test": "env-value"
553
719
  }, null, 8, ["modelValue"])
@@ -557,17 +723,17 @@ function oe(e, t, n, o, i, l) {
557
723
  ]),
558
724
  _: 1
559
725
  }),
560
- s(h, { dense: "" }, {
561
- default: a(() => [
562
- s(w, {
726
+ o(m, { dense: "" }, {
727
+ default: r(() => [
728
+ o(y, {
563
729
  block: "",
564
730
  type: "submit",
565
731
  color: "primary",
566
732
  "data-test": "add-env",
567
733
  disabled: !i.key || !i.keyValue,
568
- onClick: A(l.addEnvironment, ["prevent"])
734
+ onClick: O(l.addEnvironment, ["prevent"])
569
735
  }, {
570
- default: a(() => [...t[6] || (t[6] = [
736
+ default: r(() => [...t[6] || (t[6] = [
571
737
  T(" Add ", -1)
572
738
  ])]),
573
739
  _: 1
@@ -587,10 +753,10 @@ function oe(e, t, n, o, i, l) {
587
753
  _: 1
588
754
  }, 8, ["modelValue"]);
589
755
  }
590
- const Ie = /* @__PURE__ */ O(le, [["render", oe]]), ae = { class: "tree-node" }, re = { class: "content-wrapper" }, de = ["tabindex"], ce = { key: 1 }, ue = {
756
+ const Le = /* @__PURE__ */ A(ue, [["render", me]]), fe = { class: "tree-node" }, pe = { class: "content-wrapper" }, ge = ["tabindex"], ve = { key: 1 }, ye = {
591
757
  key: 2,
592
758
  class: "children"
593
- }, he = {
759
+ }, _e = {
594
760
  __name: "TreeNode",
595
761
  props: {
596
762
  node: {
@@ -608,142 +774,142 @@ const Ie = /* @__PURE__ */ O(le, [["render", oe]]), ae = { class: "tree-node" },
608
774
  },
609
775
  emits: ["nodeToggled", "request", "delete"],
610
776
  setup(e, { emit: t }) {
611
- const n = e, o = P(n.node.isOpen || !1), i = j(() => {
612
- const u = (d) => {
613
- var y;
614
- return !n.search || d.path.toLowerCase().includes(n.search.toLowerCase()) ? !0 : !!((y = d.children) != null && y.some(u));
777
+ const n = e, s = $(n.node.isOpen || !1), i = Y(() => {
778
+ const u = (a) => {
779
+ var g;
780
+ return !n.search || a.path.toLowerCase().includes(n.search.toLowerCase()) ? !0 : !!((g = a.children) != null && g.some(u));
615
781
  };
616
782
  return u(n.node);
617
783
  });
618
- q(
784
+ K(
619
785
  () => n.node.isOpen,
620
786
  (u) => {
621
- o.value = u;
787
+ s.value = u;
622
788
  }
623
- ), q(
789
+ ), K(
624
790
  () => n.search,
625
791
  (u) => {
626
- u ? n.node.isOpen || w() : n.node.isOpen && w();
792
+ u ? n.node.isOpen || y() : n.node.isOpen && y();
627
793
  }
628
794
  );
629
- const l = t, c = P({
795
+ const l = t, c = $({
630
796
  show: !1,
631
797
  text: "",
632
798
  x: 0,
633
799
  y: 0
634
- }), x = (u, d) => {
635
- if (!d || d.length <= 50) return;
636
- const y = u.target.getBoundingClientRect(), m = y.left, g = y.top;
637
- c.value.text = d, c.value.x = m, c.value.y = g - 40, c.value.show = !0;
638
- }, p = () => {
800
+ }), v = (u, a) => {
801
+ if (!a || a.length <= 50) return;
802
+ const g = u.target.getBoundingClientRect(), p = g.left, b = g.top;
803
+ c.value.text = a, c.value.x = p, c.value.y = b - 40, c.value.show = !0;
804
+ }, h = () => {
639
805
  c.value.show = !1;
640
- }, h = (u) => {
641
- u.children ? (w(), n.type === "save" && l("request", u)) : l("request", u);
642
- }, w = () => {
643
- n.node.children && (o.value = !o.value, n.node.isOpen = o.value, l("nodeToggled", n.node.id, o.value));
644
- }, C = (u, d) => {
645
- l("nodeToggled", u, d);
646
- }, S = (u) => {
806
+ }, m = (u) => {
807
+ u.children ? (y(), n.type === "save" && l("request", u)) : l("request", u);
808
+ }, y = () => {
809
+ n.node.children && (s.value = !s.value, n.node.isOpen = s.value, l("nodeToggled", n.node.id, s.value));
810
+ }, S = (u, a) => {
811
+ l("nodeToggled", u, a);
812
+ }, w = (u) => {
647
813
  l("request", u);
648
814
  };
649
- return (u, d) => {
650
- const y = r("v-tooltip"), m = r("v-icon"), g = r("v-btn"), I = r("tree-node", !0);
651
- return f(), E(R, null, [
652
- s(y, {
815
+ return (u, a) => {
816
+ const g = d("v-tooltip"), p = d("v-icon"), b = d("v-btn"), C = d("tree-node", !0);
817
+ return f(), E(L, null, [
818
+ o(g, {
653
819
  modelValue: c.value.show,
654
- "onUpdate:modelValue": d[0] || (d[0] = (_) => c.value.show = _),
820
+ "onUpdate:modelValue": a[0] || (a[0] = (D) => c.value.show = D),
655
821
  text: c.value.text,
656
822
  location: "top",
657
- style: Z(`position: fixed; left: ${c.value.x}px; top: ${c.value.y}px; pointer-events: none;`)
823
+ style: B(`position: fixed; left: ${c.value.x}px; top: ${c.value.y}px; pointer-events: none;`)
658
824
  }, null, 8, ["modelValue", "text", "style"]),
659
- v("div", ae, [
825
+ _("div", fe, [
660
826
  i.value ? (f(), E("div", {
661
827
  key: 0,
662
828
  class: "node-content",
663
- onClick: d[4] || (d[4] = (_) => h(e.node))
829
+ onClick: a[4] || (a[4] = (D) => m(e.node))
664
830
  }, [
665
- v("div", re, [
666
- e.node.children ? (f(), b(m, {
831
+ _("div", pe, [
832
+ e.node.children ? (f(), x(p, {
667
833
  key: 0,
668
834
  class: "toggle-icon",
669
835
  style: { "padding-right": "10px" }
670
836
  }, {
671
- default: a(() => [
837
+ default: r(() => [
672
838
  T(k(e.node.isOpen ? "mdi-menu-down" : "mdi-menu-right"), 1)
673
839
  ]),
674
840
  _: 1
675
- })) : V("", !0),
676
- e.node.children ? (f(), b(m, {
841
+ })) : I("", !0),
842
+ e.node.children ? (f(), x(p, {
677
843
  key: 1,
678
844
  size: "small",
679
845
  style: { "padding-right": "10px" }
680
846
  }, {
681
- default: a(() => [...d[5] || (d[5] = [
847
+ default: r(() => [...a[5] || (a[5] = [
682
848
  T(k("mdi-folder"), -1)
683
849
  ])]),
684
850
  _: 1
685
- })) : e.node.title.includes(".rb") ? (f(), b(m, {
851
+ })) : e.node.title.includes(".rb") ? (f(), x(p, {
686
852
  key: 2,
687
853
  size: "small",
688
854
  style: { "padding-right": "10px" }
689
855
  }, {
690
- default: a(() => [...d[6] || (d[6] = [
856
+ default: r(() => [...a[6] || (a[6] = [
691
857
  T(k("mdi-language-ruby"), -1)
692
858
  ])]),
693
859
  _: 1
694
- })) : e.node.title.includes(".py") ? (f(), b(m, {
860
+ })) : e.node.title.includes(".py") ? (f(), x(p, {
695
861
  key: 3,
696
862
  size: "small",
697
863
  style: { "padding-right": "10px" }
698
864
  }, {
699
- default: a(() => [...d[7] || (d[7] = [
865
+ default: r(() => [...a[7] || (a[7] = [
700
866
  T(k("mdi-language-python"), -1)
701
867
  ])]),
702
868
  _: 1
703
- })) : (f(), b(m, {
869
+ })) : (f(), x(p, {
704
870
  key: 4,
705
871
  size: "small",
706
872
  style: { "padding-right": "10px" }
707
873
  }, {
708
- default: a(() => [...d[8] || (d[8] = [
874
+ default: r(() => [...a[8] || (a[8] = [
709
875
  T(k("mdi-file-document"), -1)
710
876
  ])]),
711
877
  _: 1
712
878
  })),
713
- v("span", {
879
+ _("span", {
714
880
  class: "text-h6",
715
881
  tabindex: e.node.children ? -1 : 0,
716
- onKeyup: d[1] || (d[1] = N((_) => h(e.node), ["enter"])),
717
- onMouseenter: d[2] || (d[2] = (_) => x(_, e.node.title)),
718
- onMouseleave: p
719
- }, k(e.node.title), 41, de),
720
- e.node.title === "__TEMP__" ? (f(), b(g, {
882
+ onKeyup: a[1] || (a[1] = N((D) => m(e.node), ["enter"])),
883
+ onMouseenter: a[2] || (a[2] = (D) => v(D, e.node.title)),
884
+ onMouseleave: h
885
+ }, k(e.node.title), 41, ge),
886
+ e.node.title === "__TEMP__" ? (f(), x(b, {
721
887
  key: 5,
722
888
  icon: "mdi-delete",
723
889
  variant: "text",
724
890
  style: { "margin-left": "auto" },
725
891
  "aria-label": "Delete",
726
- onClick: d[3] || (d[3] = (_) => l("delete"))
727
- })) : V("", !0)
892
+ onClick: a[3] || (a[3] = (D) => l("delete"))
893
+ })) : I("", !0)
728
894
  ])
729
- ])) : (f(), E("div", ce)),
730
- e.node.children && e.node.isOpen ? (f(), E("div", ue, [
731
- (f(!0), E(R, null, B(e.node.children, (_) => (f(), b(I, {
732
- key: _.id,
733
- node: _,
895
+ ])) : (f(), E("div", ve)),
896
+ e.node.children && e.node.isOpen ? (f(), E("div", ye, [
897
+ (f(!0), E(L, null, P(e.node.children, (D) => (f(), x(C, {
898
+ key: D.id,
899
+ node: D,
734
900
  search: e.search,
735
901
  type: e.type,
736
- onNodeToggled: C,
737
- onRequest: S
902
+ onNodeToggled: S,
903
+ onRequest: w
738
904
  }, null, 8, ["node", "search", "type"]))), 128))
739
- ])) : V("", !0)
905
+ ])) : I("", !0)
740
906
  ])
741
907
  ], 64);
742
908
  };
743
909
  }
744
- }, me = /* @__PURE__ */ O(he, [["__scopeId", "data-v-c9e90a15"]]), fe = {
910
+ }, be = /* @__PURE__ */ A(_e, [["__scopeId", "data-v-c9e90a15"]]), xe = {
745
911
  components: {
746
- TreeNode: me
912
+ TreeNode: be
747
913
  },
748
914
  props: {
749
915
  type: {
@@ -821,7 +987,7 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
821
987
  }
822
988
  },
823
989
  created() {
824
- D.get("/openc3-api/targets").then((e) => {
990
+ V.get("/openc3-api/targets").then((e) => {
825
991
  this.targets = e.data, this.targets.push("__TEMP__"), this.targets.forEach((t) => {
826
992
  this.items.push({
827
993
  id: t,
@@ -838,15 +1004,15 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
838
1004
  return J(e);
839
1005
  },
840
1006
  loadFiles: function(e) {
841
- D.get(this.apiUrl, { params: { target: e } }).then((t) => {
1007
+ V.get(this.apiUrl, { params: { target: e } }).then((t) => {
842
1008
  if (t.data.length === 0) {
843
- this.items = this.items.filter((o) => o.id !== e);
1009
+ this.items = this.items.filter((s) => s.id !== e);
844
1010
  return;
845
1011
  }
846
- for (let o of t.data.sort())
847
- this.filepath = o, this.insertFile(this.items, 2, o);
1012
+ for (let s of t.data.sort())
1013
+ this.filepath = s, this.insertFile(this.items, 2, s);
848
1014
  this.inputFilename && (this.selectedFile = this.inputFilename);
849
- const n = this.items.findIndex((o) => o.id === e);
1015
+ const n = this.items.findIndex((s) => s.id === e);
850
1016
  n !== -1 && (this.items[n].disabled = !1);
851
1017
  }).catch((t) => {
852
1018
  this.$emit("error", `Failed to connect to OpenC3. ${t}`);
@@ -865,19 +1031,19 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
865
1031
  if (n.id === t)
866
1032
  return n.path;
867
1033
  if (n.children) {
868
- const o = this.findItem(n.children, t);
869
- if (o)
870
- return o;
1034
+ const s = this.findItem(n.children, t);
1035
+ if (s)
1036
+ return s;
871
1037
  }
872
1038
  }
873
1039
  return null;
874
1040
  },
875
1041
  exists: function(e, t) {
876
1042
  let n = !1;
877
- for (let o of e) {
878
- if (o.path === t || o.path.length > 1 && o.path[o.path.length - 1] === "*" && o.path.slice(0, o.path.length - 1) === t)
1043
+ for (let s of e) {
1044
+ if (s.path === t || s.path.length > 1 && s.path[s.path.length - 1] === "*" && s.path.slice(0, s.path.length - 1) === t)
879
1045
  return !0;
880
- o.children && (n = n || this.exists(o.children, t));
1046
+ s.children && (n = n || this.exists(s.children, t));
881
1047
  }
882
1048
  return n;
883
1049
  },
@@ -888,7 +1054,7 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
888
1054
  this.$dialog.confirm("Are you sure you want to delete all the temporary files?", {
889
1055
  okText: "Delete",
890
1056
  cancelText: "Cancel"
891
- }).then((e) => D.delete("/script-api/scripts/temp_files")).then((e) => {
1057
+ }).then((e) => V.delete("/script-api/scripts/temp_files")).then((e) => {
892
1058
  this.$emit("clear-temp"), this.loadFiles("__TEMP__");
893
1059
  }).catch((e) => {
894
1060
  this.$notify.serious({
@@ -898,14 +1064,14 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
898
1064
  });
899
1065
  },
900
1066
  openSuccess: function() {
901
- this.disableButtons = !0, D.get(`${this.apiUrl}/${this.selectedFile}`).then((e) => {
1067
+ this.disableButtons = !0, V.get(`${this.apiUrl}/${this.selectedFile}`).then((e) => {
902
1068
  const t = {
903
1069
  name: this.selectedFile,
904
1070
  contents: e.data.contents
905
1071
  };
906
1072
  e.data.suites && (t.suites = JSON.parse(e.data.suites)), e.data.error && (t.error = e.data.error), e.data.success && (t.success = e.data.success);
907
- const n = e.data.locked, o = e.data.breakpoints;
908
- this.$emit("file", { file: t, locked: n, breakpoints: o }), this.clear();
1073
+ const n = e.data.locked, s = e.data.breakpoints;
1074
+ this.$emit("file", { file: t, locked: n, breakpoints: s }), this.clear();
909
1075
  }).catch((e) => {
910
1076
  this.$emit("error", `Failed to open ${this.selectedFile}. ${e}`), this.clear();
911
1077
  });
@@ -920,54 +1086,54 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
920
1086
  }) : (this.$emit("filename", this.selectedFile), this.clear());
921
1087
  },
922
1088
  insertFile: function(e, t, n) {
923
- let o = n.split("/");
924
- if (o.length === 1) {
1089
+ let s = n.split("/");
1090
+ if (s.length === 1) {
925
1091
  e.push({
926
1092
  id: this.filepath,
927
- title: o[0],
1093
+ title: s[0],
928
1094
  file: "ruby",
929
1095
  path: this.filepath
930
1096
  });
931
1097
  return;
932
1098
  }
933
- const i = e.findIndex((l) => l.title === o[0]);
1099
+ const i = e.findIndex((l) => l.title === s[0]);
934
1100
  i === -1 ? (e.push({
935
1101
  id: this.filepath.split("/").slice(0, t - 1).join("/"),
936
- title: o[0],
1102
+ title: s[0],
937
1103
  children: [],
938
1104
  path: this.filepath.split("/").slice(0, t - 1).join("/")
939
1105
  }), this.insertFile(
940
1106
  e[e.length - 1].children,
941
1107
  // Start from the node we just added
942
1108
  t + 1,
943
- o.slice(1).join("/")
1109
+ s.slice(1).join("/")
944
1110
  // Strip the first part of the path
945
1111
  )) : this.insertFile(
946
1112
  e[i].children,
947
1113
  t + 1,
948
- o.slice(1).join("/")
1114
+ s.slice(1).join("/")
949
1115
  );
950
1116
  }
951
1117
  }
952
- }, pe = { class: "pa-3" }, ge = { class: "overflow-y-auto tree-container" };
953
- function ve(e, t, n, o, i, l) {
954
- const c = r("v-progress-circular"), x = r("v-overlay"), p = r("v-spacer"), h = r("v-toolbar"), w = r("v-row"), C = r("v-text-field"), S = r("tree-node"), u = r("v-btn"), d = r("v-card-text"), y = r("v-card"), m = r("v-dialog");
955
- return f(), b(m, {
1118
+ }, we = { class: "pa-3" }, ke = { class: "overflow-y-auto tree-container" };
1119
+ function Se(e, t, n, s, i, l) {
1120
+ const c = d("v-progress-circular"), v = d("v-overlay"), h = d("v-spacer"), m = d("v-toolbar"), y = d("v-row"), S = d("v-text-field"), w = d("tree-node"), u = d("v-btn"), a = d("v-card-text"), g = d("v-card"), p = d("v-dialog");
1121
+ return f(), x(p, {
956
1122
  modelValue: l.show,
957
- "onUpdate:modelValue": t[4] || (t[4] = (g) => l.show = g),
1123
+ "onUpdate:modelValue": t[4] || (t[4] = (b) => l.show = b),
958
1124
  persistent: "",
959
1125
  width: "800",
960
1126
  onKeydown: [
961
- t[5] || (t[5] = N((g) => l.success(), ["enter"])),
962
- t[6] || (t[6] = N((g) => i.disableButtons ? null : l.show = !1, ["esc"]))
1127
+ t[5] || (t[5] = N((b) => l.success(), ["enter"])),
1128
+ t[6] || (t[6] = N((b) => i.disableButtons ? null : l.show = !1, ["esc"]))
963
1129
  ]
964
1130
  }, {
965
- default: a(() => [
966
- s(y, null, {
967
- default: a(() => [
968
- s(x, { "model-value": i.loading }, {
969
- default: a(() => [
970
- s(c, {
1131
+ default: r(() => [
1132
+ o(g, null, {
1133
+ default: r(() => [
1134
+ o(v, { "model-value": i.loading }, {
1135
+ default: r(() => [
1136
+ o(c, {
971
1137
  indeterminate: "",
972
1138
  absolute: "",
973
1139
  size: "64"
@@ -975,34 +1141,34 @@ function ve(e, t, n, o, i, l) {
975
1141
  ]),
976
1142
  _: 1
977
1143
  }, 8, ["model-value"]),
978
- v("form", {
979
- onSubmit: t[3] || (t[3] = A((...g) => l.success && l.success(...g), ["prevent"]))
1144
+ _("form", {
1145
+ onSubmit: t[3] || (t[3] = O((...b) => l.success && l.success(...b), ["prevent"]))
980
1146
  }, [
981
- s(h, { height: "24" }, {
982
- default: a(() => [
983
- s(p),
984
- v("span", null, k(l.title), 1),
985
- s(p)
1147
+ o(m, { height: "24" }, {
1148
+ default: r(() => [
1149
+ o(h),
1150
+ _("span", null, k(l.title), 1),
1151
+ o(h)
986
1152
  ]),
987
1153
  _: 1
988
1154
  }),
989
- s(d, null, {
990
- default: a(() => [
991
- v("div", pe, [
992
- s(w, null, {
993
- default: a(() => [
1155
+ o(a, null, {
1156
+ default: r(() => [
1157
+ _("div", we, [
1158
+ o(y, null, {
1159
+ default: r(() => [
994
1160
  T(k(l.helpText), 1)
995
1161
  ]),
996
1162
  _: 1
997
1163
  }),
998
- s(w, {
1164
+ o(y, {
999
1165
  dense: "",
1000
1166
  class: "mt-5"
1001
1167
  }, {
1002
- default: a(() => [
1003
- s(C, {
1168
+ default: r(() => [
1169
+ o(S, {
1004
1170
  modelValue: i.search,
1005
- "onUpdate:modelValue": t[0] || (t[0] = (g) => i.search = g),
1171
+ "onUpdate:modelValue": t[0] || (t[0] = (b) => i.search = b),
1006
1172
  flat: "",
1007
1173
  autofocus: "",
1008
1174
  "hide-details": "",
@@ -1015,21 +1181,21 @@ function ve(e, t, n, o, i, l) {
1015
1181
  ]),
1016
1182
  _: 1
1017
1183
  }),
1018
- v("div", ge, [
1019
- (f(!0), E(R, null, B(i.items, (g) => (f(), b(S, {
1020
- key: `${g.id}`,
1021
- node: g,
1184
+ _("div", ke, [
1185
+ (f(!0), E(L, null, P(i.items, (b) => (f(), x(w, {
1186
+ key: `${b.id}`,
1187
+ node: b,
1022
1188
  search: i.search,
1023
1189
  type: n.type,
1024
1190
  onRequest: l.activeFile,
1025
1191
  onDelete: l.deleteTemp
1026
1192
  }, null, 8, ["node", "search", "type", "onRequest", "onDelete"]))), 128))
1027
1193
  ]),
1028
- s(w, { class: "my-2" }, {
1029
- default: a(() => [
1030
- s(C, {
1194
+ o(y, { class: "my-2" }, {
1195
+ default: r(() => [
1196
+ o(S, {
1031
1197
  modelValue: i.selectedFile,
1032
- "onUpdate:modelValue": t[1] || (t[1] = (g) => i.selectedFile = g),
1198
+ "onUpdate:modelValue": t[1] || (t[1] = (b) => i.selectedFile = b),
1033
1199
  "hide-details": "",
1034
1200
  label: "Filename",
1035
1201
  "data-test": "file-open-save-filename",
@@ -1038,42 +1204,42 @@ function ve(e, t, n, o, i, l) {
1038
1204
  ]),
1039
1205
  _: 1
1040
1206
  }),
1041
- s(w, { dense: "" }, {
1042
- default: a(() => [
1043
- M(v("div", {
1207
+ o(y, { dense: "" }, {
1208
+ default: r(() => [
1209
+ F(_("div", {
1044
1210
  class: "my-2 text-red",
1045
1211
  style: { "white-space": "pre-line" }
1046
1212
  }, k(l.error), 513), [
1047
- [L, l.error]
1213
+ [z, l.error]
1048
1214
  ])
1049
1215
  ]),
1050
1216
  _: 1
1051
1217
  }),
1052
- s(w, { class: "mt-2" }, {
1053
- default: a(() => [
1054
- s(p),
1055
- s(u, {
1218
+ o(y, { class: "mt-2" }, {
1219
+ default: r(() => [
1220
+ o(h),
1221
+ o(u, {
1056
1222
  variant: "outlined",
1057
1223
  class: "mx-2",
1058
1224
  "data-test": "file-open-save-cancel-btn",
1059
1225
  disabled: i.disableButtons,
1060
- onClick: t[2] || (t[2] = (g) => l.show = !1)
1226
+ onClick: t[2] || (t[2] = (b) => l.show = !1)
1061
1227
  }, {
1062
- default: a(() => [...t[7] || (t[7] = [
1228
+ default: r(() => [...t[7] || (t[7] = [
1063
1229
  T(" Cancel ", -1)
1064
1230
  ])]),
1065
1231
  _: 1
1066
1232
  }, 8, ["disabled"]),
1067
- s(u, {
1233
+ o(u, {
1068
1234
  ref: "submitBtn",
1069
1235
  type: "submit",
1070
1236
  color: "primary",
1071
1237
  class: "mx-2",
1072
1238
  "data-test": "file-open-save-submit-btn",
1073
1239
  disabled: i.disableButtons || !!l.error,
1074
- onClick: A(l.success, ["prevent"])
1240
+ onClick: O(l.success, ["prevent"])
1075
1241
  }, {
1076
- default: a(() => [
1242
+ default: r(() => [
1077
1243
  T(k(l.submit), 1)
1078
1244
  ]),
1079
1245
  _: 1
@@ -1093,11 +1259,11 @@ function ve(e, t, n, o, i, l) {
1093
1259
  _: 1
1094
1260
  }, 8, ["modelValue"]);
1095
1261
  }
1096
- const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1262
+ const Re = /* @__PURE__ */ A(xe, [["render", Se]]), W = 20, Te = {
1097
1263
  components: {
1098
- EditScreenDialog: ie
1264
+ EditScreenDialog: re
1099
1265
  },
1100
- mixins: [X],
1266
+ mixins: [Z],
1101
1267
  props: {
1102
1268
  target: {
1103
1269
  type: String,
@@ -1162,6 +1328,14 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1162
1328
  playbackDateTime: {
1163
1329
  type: Date,
1164
1330
  default: null
1331
+ },
1332
+ frozen: {
1333
+ type: Boolean,
1334
+ default: !1
1335
+ },
1336
+ frozenValues: {
1337
+ type: Object,
1338
+ default: null
1165
1339
  }
1166
1340
  },
1167
1341
  emits: [
@@ -1209,7 +1383,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1209
1383
  screenValues: {},
1210
1384
  updateCounter: 0,
1211
1385
  updater: null,
1212
- screenId: Y.uniqueId("openc3-screen_"),
1386
+ screenId: H.uniqueId("openc3-screen_"),
1213
1387
  tlmAvailableTimeout: null
1214
1388
  };
1215
1389
  },
@@ -1220,9 +1394,9 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1220
1394
  for (const n of this.errors) {
1221
1395
  if (e.has(n.message))
1222
1396
  continue;
1223
- let o = `${n.time}: (${n.type}) ${n.message}
1397
+ let s = `${n.time}: (${n.type}) ${n.message}
1224
1398
  `;
1225
- t += o, e.add(n.message);
1399
+ t += s, e.add(n.message);
1226
1400
  }
1227
1401
  return t;
1228
1402
  }
@@ -1250,13 +1424,24 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1250
1424
  handler(e, t) {
1251
1425
  e === "realtime" ? this.updateRefreshInterval() : (clearInterval(this.updater), this.updater = null);
1252
1426
  }
1427
+ },
1428
+ frozen: {
1429
+ handler(e) {
1430
+ e ? this.updater && (clearInterval(this.updater), this.updater = null) : this.playbackMode === "realtime" && this.updateRefreshInterval();
1431
+ }
1432
+ },
1433
+ frozenValues: {
1434
+ immediate: !0,
1435
+ handler(e) {
1436
+ e && this.frozen && Object.assign(this.screenValues, e);
1437
+ }
1253
1438
  }
1254
1439
  },
1255
1440
  // Called when an error from any descendent component is captured
1256
1441
  // We need this because an error can occur from any of the children
1257
1442
  // in the widget stack and are typically thrown on create()
1258
1443
  errorCaptured(e, t, n) {
1259
- return this.errors.length < z && (e.usage ? this.errors.push({
1444
+ return this.errors.length < W && (e.usage ? this.errors.push({
1260
1445
  type: "usage",
1261
1446
  message: e.message,
1262
1447
  usage: e.usage,
@@ -1270,10 +1455,12 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1270
1455
  })), !1;
1271
1456
  },
1272
1457
  created() {
1273
- this.api = new K(), this.configParser = new H(), this.parseDefinition(), this.screenKey = Math.floor(Math.random() * 1e6);
1458
+ this.api = new q(), this.configParser = new X(), this.parseDefinition(), this.screenKey = Math.floor(Math.random() * 1e6);
1274
1459
  },
1275
1460
  mounted() {
1276
- this.playbackMode === "realtime" && this.updateRefreshInterval(), this.floated && (this.$refs.bar.onmousedown = this.dragMouseDown, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex);
1461
+ this.playbackMode === "realtime" && !this.frozen && this.updateRefreshInterval(), this.frozen && this.frozenValues && this.$nextTick(() => {
1462
+ Object.assign(this.screenValues, this.frozenValues);
1463
+ }), this.floated && (this.$refs.bar.onmousedown = this.dragMouseDown, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex);
1277
1464
  },
1278
1465
  unmounted() {
1279
1466
  this.updater != null && (clearInterval(this.updater), this.updater = null), this.tlmAvailableTimeout != null && (clearTimeout(this.tlmAvailableTimeout), this.tlmAvailableTimeout = null);
@@ -1308,7 +1495,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1308
1495
  "",
1309
1496
  !1,
1310
1497
  !0,
1311
- (e, t, n, o) => {
1498
+ (e, t, n, s) => {
1312
1499
  if (e)
1313
1500
  switch (e) {
1314
1501
  case "SCREEN":
@@ -1366,7 +1553,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1366
1553
  ), t[1] === "RAW" && (t[1] = "RAW__" + t[2].toLowerCase()), this.globalSettings.push(t);
1367
1554
  break;
1368
1555
  default:
1369
- this.processWidget(e, t, n, o);
1556
+ this.processWidget(e, t, n, s);
1370
1557
  break;
1371
1558
  }
1372
1559
  }
@@ -1374,7 +1561,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1374
1561
  let e = [], t = [];
1375
1562
  for (const n of this.dynamicWidgets)
1376
1563
  e.push(n.name), t.push(n.lineNumber);
1377
- this.errors.length < z && this.errors.push({
1564
+ this.errors.length < W && this.errors.push({
1378
1565
  type: "usage",
1379
1566
  message: `Unknown widget! Are these widgets: ${e.join(",")}?`,
1380
1567
  lineNumber: t.join(","),
@@ -1450,7 +1637,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1450
1637
  },
1451
1638
  saveEdit: function(e) {
1452
1639
  this.editDialog = !1, this.currentDefinition = e, this.rerender(), this.$nextTick(function() {
1453
- D.post(
1640
+ V.post(
1454
1641
  "/openc3-api/screen/",
1455
1642
  {
1456
1643
  data: {
@@ -1465,7 +1652,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1465
1652
  });
1466
1653
  },
1467
1654
  deleteScreen: function() {
1468
- this.editDialog = !1, D.delete(`/openc3-api/screen/${this.target}/${this.screen}`).then(
1655
+ this.editDialog = !1, V.delete(`/openc3-api/screen/${this.target}/${this.screen}`).then(
1469
1656
  (e) => {
1470
1657
  this.$emit("delete-screen");
1471
1658
  }
@@ -1474,7 +1661,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1474
1661
  minMaxTransition: function() {
1475
1662
  this.expand = !this.expand, this.$emit("min-max-screen");
1476
1663
  },
1477
- processWidget: function(e, t, n, o) {
1664
+ processWidget: function(e, t, n, s) {
1478
1665
  let i = null;
1479
1666
  e === "NAMED_WIDGET" && (this.configParser.verify_num_parameters(
1480
1667
  2,
@@ -1484,7 +1671,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1484
1671
  const l = e.charAt(0).toUpperCase() + e.slice(1).toLowerCase() + "Widget";
1485
1672
  let c = [];
1486
1673
  if (c.push(["__SCREEN_ID__", this.screenId]), i !== null && c.push(["NAMED_WIDGET", i]), e === "VERTICAL" || e === "VERTICALBOX" || e === "HORIZONTAL" || e === "HORIZONTALBOX" || e === "MATRIXBYCOLUMNS" || e === "TABBOOK" || e === "TABITEM" || e === "CANVAS" || e === "RADIOGROUP" || e === "SCROLLWINDOW") {
1487
- const x = {
1674
+ const v = {
1488
1675
  type: l,
1489
1676
  parameters: t,
1490
1677
  settings: c,
@@ -1492,7 +1679,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1492
1679
  screenTimeZone: this.timeZone,
1493
1680
  widgets: []
1494
1681
  };
1495
- this.layoutStack.push(x), this.currentLayout.widgets.push(x), this.currentLayout = x;
1682
+ this.layoutStack.push(v), this.currentLayout.widgets.push(v), this.currentLayout = v;
1496
1683
  } else if (this.$options.components[l])
1497
1684
  this.currentLayout.widgets.push({
1498
1685
  type: l,
@@ -1502,10 +1689,10 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1502
1689
  screenValues: this.screenValues,
1503
1690
  screenTimeZone: this.timeZone,
1504
1691
  line: n,
1505
- lineNumber: o
1692
+ lineNumber: s
1506
1693
  });
1507
1694
  else {
1508
- let x = {
1695
+ let v = {
1509
1696
  type: "DynamicWidget",
1510
1697
  target: this.target,
1511
1698
  parameters: t,
@@ -1514,9 +1701,9 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1514
1701
  screenTimeZone: this.timeZone,
1515
1702
  name: l,
1516
1703
  line: n,
1517
- lineNumber: o
1704
+ lineNumber: s
1518
1705
  };
1519
- this.currentLayout.widgets.push(x), this.dynamicWidgets.push(x);
1706
+ this.currentLayout.widgets.push(v), this.dynamicWidgets.push(v);
1520
1707
  }
1521
1708
  },
1522
1709
  applyGlobalSettings: function(e) {
@@ -1529,6 +1716,8 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1529
1716
  });
1530
1717
  },
1531
1718
  update: function() {
1719
+ if (this.frozen)
1720
+ return;
1532
1721
  let e = this.playbackMode === "playback" ? this.playbackDateTime : null;
1533
1722
  this.actualScreenItems.length !== 0 && this.api.get_tlm_values(
1534
1723
  this.actualScreenItems,
@@ -1539,7 +1728,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1539
1728
  t && t.length > 0 && this.updateValues(t);
1540
1729
  }).catch((t) => {
1541
1730
  let n = JSON.stringify(t, null, 2);
1542
- this.errors.find((o) => o.message === n) || this.errors.length < z && this.errors.push({
1731
+ this.errors.find((s) => s.message === n) || this.errors.length < W && this.errors.push({
1543
1732
  type: "error",
1544
1733
  message: n,
1545
1734
  time: (/* @__PURE__ */ new Date()).getTime()
@@ -1559,7 +1748,7 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1559
1748
  e[t].push(this.updateCounter), this.screenValues[this.screenItems[t]] = e[t];
1560
1749
  },
1561
1750
  debouncedUpdateTlmAvailable: function() {
1562
- this.tlmAvailableTimeout != null && clearTimeout(this.tlmAvailableTimeout), this.tlmAvailableTimeout = setTimeout(() => {
1751
+ this.frozen || (this.tlmAvailableTimeout != null && clearTimeout(this.tlmAvailableTimeout), this.tlmAvailableTimeout = setTimeout(() => {
1563
1752
  this.api.get_tlm_available(this.screenItems).then((e) => {
1564
1753
  if (this.actualScreenItems = e, this.screenItems.length != e.length)
1565
1754
  console.log(
@@ -1570,14 +1759,14 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1570
1759
  else
1571
1760
  for (let t = 0; t < this.actualScreenItems.length; t++)
1572
1761
  if (this.actualScreenItems[t] === null) {
1573
- const n = this.screenItems[t].split("__"), o = this.currentDefinition.split(`
1574
- `), i = o.findIndex(
1762
+ const n = this.screenItems[t].split("__"), s = this.currentDefinition.split(`
1763
+ `), i = s.findIndex(
1575
1764
  (l) => l.includes(n[0]) && l.includes(n[1]) && l.includes(n[2])
1576
1765
  ) + 1;
1577
1766
  i > 0 ? this.errors.push({
1578
1767
  type: "usage",
1579
1768
  message: `Null for ${n.join(" ")}! Does it exist?`,
1580
- line: o[i - 1],
1769
+ line: s[i - 1],
1581
1770
  // 0-based line array
1582
1771
  lineNumber: i,
1583
1772
  time: (/* @__PURE__ */ new Date()).getTime()
@@ -1590,41 +1779,45 @@ const Ve = /* @__PURE__ */ O(fe, [["render", ve]]), z = 20, ye = {
1590
1779
  }).catch((e) => {
1591
1780
  console.log("Error getting tlm available", e), this.actualScreenItems = this.screenItems;
1592
1781
  }), this.tlmAvailableTimeout = null;
1593
- }, 100);
1782
+ }, 100));
1594
1783
  },
1595
1784
  addItem: function(e) {
1596
- this.screenItems.push(e), this.screenValues[e] = [null, null, 0], this.debouncedUpdateTlmAvailable();
1785
+ this.screenItems.push(e), this.frozen && this.frozenValues && this.frozenValues[e] ? this.screenValues[e] = this.frozenValues[e] : this.screenValues[e] = [null, null, 0], this.debouncedUpdateTlmAvailable();
1597
1786
  },
1598
1787
  deleteItem: function(e) {
1599
1788
  let t = this.screenItems.indexOf(e);
1600
1789
  this.screenItems.splice(t, 1), this.debouncedUpdateTlmAvailable();
1790
+ },
1791
+ // Get current screen values for saving (used by notebooks)
1792
+ getScreenValues: function() {
1793
+ return JSON.parse(JSON.stringify(this.screenValues));
1601
1794
  }
1602
1795
  }
1603
- }, _e = {
1796
+ }, Ce = {
1604
1797
  ref: "screen",
1605
1798
  class: "pa-1",
1606
1799
  style: { position: "relative" }
1607
- }, be = {
1800
+ }, Ve = {
1608
1801
  key: 1,
1609
1802
  class: "pa-1",
1610
1803
  style: { position: "relative" }
1611
1804
  };
1612
- function xe(e, t, n, o, i, l) {
1613
- const c = r("v-btn"), x = r("v-tooltip"), p = r("v-spacer"), h = r("v-toolbar"), w = r("v-overlay"), C = r("vertical-widget"), S = r("v-expand-transition"), u = r("v-card"), d = r("edit-screen-dialog"), y = r("v-textarea"), m = r("v-card-actions"), g = r("v-dialog");
1805
+ function Ie(e, t, n, s, i, l) {
1806
+ const c = d("v-btn"), v = d("v-tooltip"), h = d("v-spacer"), m = d("v-toolbar"), y = d("v-overlay"), S = d("vertical-widget"), w = d("v-expand-transition"), u = d("v-card"), a = d("edit-screen-dialog"), g = d("v-textarea"), p = d("v-card-actions"), b = d("v-dialog");
1614
1807
  return f(), E("div", {
1615
1808
  ref: "bar",
1616
- style: Z(l.computedStyle)
1809
+ style: B(l.computedStyle)
1617
1810
  }, [
1618
- n.inline ? V("", !0) : (f(), b(u, {
1811
+ n.inline ? I("", !0) : (f(), x(u, {
1619
1812
  key: 0,
1620
1813
  "min-height": i.height,
1621
1814
  "min-width": i.width,
1622
1815
  style: { cursor: "default" }
1623
1816
  }, {
1624
- default: a(() => [
1625
- s(h, { height: "24" }, {
1626
- default: a(() => [
1627
- M(s(c, {
1817
+ default: r(() => [
1818
+ o(m, { height: "24" }, {
1819
+ default: r(() => [
1820
+ F(o(c, {
1628
1821
  icon: "mdi-alert",
1629
1822
  variant: "text",
1630
1823
  density: "compact",
@@ -1634,9 +1827,9 @@ function xe(e, t, n, o, i, l) {
1634
1827
  i.errorDialog = !0;
1635
1828
  })
1636
1829
  }, null, 512), [
1637
- [L, i.errors.length !== 0]
1830
+ [z, i.errors.length !== 0]
1638
1831
  ]),
1639
- s(c, {
1832
+ o(c, {
1640
1833
  icon: "mdi-pencil",
1641
1834
  variant: "text",
1642
1835
  density: "compact",
@@ -1644,14 +1837,14 @@ function xe(e, t, n, o, i, l) {
1644
1837
  "aria-label": "Edit Screen",
1645
1838
  onClick: l.openEdit
1646
1839
  }, null, 8, ["onClick"]),
1647
- n.fixFloated ? V("", !0) : (f(), b(x, {
1840
+ n.fixFloated ? I("", !0) : (f(), x(v, {
1648
1841
  key: 0,
1649
1842
  "open-delay": 600,
1650
1843
  location: "top"
1651
1844
  }, {
1652
- activator: a(({ props: I }) => [
1653
- v("div", U(W(I)), [
1654
- s(c, {
1845
+ activator: r(({ props: C }) => [
1846
+ _("div", R(U(C)), [
1847
+ o(c, {
1655
1848
  icon: i.floated ? "mdi-balloon" : "mdi-view-grid-outline",
1656
1849
  variant: "text",
1657
1850
  density: "compact",
@@ -1661,19 +1854,19 @@ function xe(e, t, n, o, i, l) {
1661
1854
  }, null, 8, ["icon", "aria-label", "onClick"])
1662
1855
  ], 16)
1663
1856
  ]),
1664
- default: a(() => [
1665
- v("span", null, k(i.floated ? "Unfloat Screen" : "Float Screen"), 1)
1857
+ default: r(() => [
1858
+ _("span", null, k(i.floated ? "Unfloat Screen" : "Float Screen"), 1)
1666
1859
  ]),
1667
1860
  _: 1
1668
1861
  })),
1669
- i.floated ? (f(), b(x, {
1862
+ i.floated ? (f(), x(v, {
1670
1863
  key: 1,
1671
1864
  "open-delay": 600,
1672
1865
  location: "top"
1673
1866
  }, {
1674
- activator: a(({ props: I }) => [
1675
- v("div", U(W(I)), [
1676
- s(c, {
1867
+ activator: r(({ props: C }) => [
1868
+ _("div", R(U(C)), [
1869
+ o(c, {
1677
1870
  icon: "mdi-arrow-up",
1678
1871
  variant: "text",
1679
1872
  density: "compact",
@@ -1683,19 +1876,19 @@ function xe(e, t, n, o, i, l) {
1683
1876
  }, null, 8, ["onClick"])
1684
1877
  ], 16)
1685
1878
  ]),
1686
- default: a(() => [
1687
- t[6] || (t[6] = v("span", null, " Move Screen Up ", -1))
1879
+ default: r(() => [
1880
+ t[6] || (t[6] = _("span", null, " Move Screen Up ", -1))
1688
1881
  ]),
1689
1882
  _: 1
1690
- })) : V("", !0),
1691
- i.floated && i.zIndex > n.minZ ? (f(), b(x, {
1883
+ })) : I("", !0),
1884
+ i.floated && i.zIndex > n.minZ ? (f(), x(v, {
1692
1885
  key: 2,
1693
1886
  "open-delay": 600,
1694
1887
  location: "top"
1695
1888
  }, {
1696
- activator: a(({ props: I }) => [
1697
- v("div", U(W(I)), [
1698
- s(c, {
1889
+ activator: r(({ props: C }) => [
1890
+ _("div", R(U(C)), [
1891
+ o(c, {
1699
1892
  icon: "mdi-arrow-down",
1700
1893
  variant: "text",
1701
1894
  density: "compact",
@@ -1705,15 +1898,15 @@ function xe(e, t, n, o, i, l) {
1705
1898
  }, null, 8, ["onClick"])
1706
1899
  ], 16)
1707
1900
  ]),
1708
- default: a(() => [
1709
- t[7] || (t[7] = v("span", null, " Move Screen Down ", -1))
1901
+ default: r(() => [
1902
+ t[7] || (t[7] = _("span", null, " Move Screen Down ", -1))
1710
1903
  ]),
1711
1904
  _: 1
1712
- })) : V("", !0),
1713
- s(p),
1714
- v("span", null, k(n.target) + " " + k(n.screen), 1),
1715
- s(p),
1716
- i.expand ? (f(), b(c, {
1905
+ })) : I("", !0),
1906
+ o(h),
1907
+ _("span", null, k(n.target) + " " + k(n.screen), 1),
1908
+ o(h),
1909
+ i.expand ? (f(), x(c, {
1717
1910
  key: 3,
1718
1911
  icon: "mdi-window-minimize",
1719
1912
  variant: "text",
@@ -1721,7 +1914,7 @@ function xe(e, t, n, o, i, l) {
1721
1914
  "data-test": "minimize-screen-icon",
1722
1915
  "aria-label": "Minimize Screen",
1723
1916
  onClick: l.minMaxTransition
1724
- }, null, 8, ["onClick"])) : (f(), b(c, {
1917
+ }, null, 8, ["onClick"])) : (f(), x(c, {
1725
1918
  key: 4,
1726
1919
  icon: "mdi-window-maximize",
1727
1920
  variant: "text",
@@ -1730,22 +1923,22 @@ function xe(e, t, n, o, i, l) {
1730
1923
  "aria-label": "Maximize Screen",
1731
1924
  onClick: l.minMaxTransition
1732
1925
  }, null, 8, ["onClick"])),
1733
- n.showClose ? (f(), b(c, {
1926
+ n.showClose ? (f(), x(c, {
1734
1927
  key: 5,
1735
1928
  icon: "mdi-close-box",
1736
1929
  variant: "text",
1737
1930
  density: "compact",
1738
1931
  "data-test": "close-screen-icon",
1739
1932
  "aria-label": "Close Screen",
1740
- onClick: t[1] || (t[1] = (I) => e.$emit("close-screen"))
1741
- })) : V("", !0)
1933
+ onClick: t[1] || (t[1] = (C) => e.$emit("close-screen"))
1934
+ })) : I("", !0)
1742
1935
  ]),
1743
1936
  _: 1
1744
1937
  }),
1745
- i.editDialog ? V("", !0) : (f(), b(S, { key: 0 }, {
1746
- default: a(() => [
1747
- M(v("div", _e, [
1748
- s(w, {
1938
+ i.editDialog ? I("", !0) : (f(), x(w, { key: 0 }, {
1939
+ default: r(() => [
1940
+ F(_("div", Ce, [
1941
+ o(y, {
1749
1942
  style: { "pointer-events": "none" },
1750
1943
  "model-value": i.errors.length !== 0,
1751
1944
  opacity: "0.8",
@@ -1753,7 +1946,7 @@ function xe(e, t, n, o, i, l) {
1753
1946
  attach: "",
1754
1947
  "scroll-strategy": "none"
1755
1948
  }, null, 8, ["model-value"]),
1756
- (f(), b(C, {
1949
+ (f(), x(S, {
1757
1950
  key: i.screenKey,
1758
1951
  widgets: i.layoutStack[0].widgets,
1759
1952
  "screen-values": i.screenValues,
@@ -1765,7 +1958,7 @@ function xe(e, t, n, o, i, l) {
1765
1958
  onCloseAll: l.closeAll
1766
1959
  }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
1767
1960
  ], 512), [
1768
- [L, i.expand]
1961
+ [z, i.expand]
1769
1962
  ])
1770
1963
  ]),
1771
1964
  _: 1
@@ -1773,8 +1966,8 @@ function xe(e, t, n, o, i, l) {
1773
1966
  ]),
1774
1967
  _: 1
1775
1968
  }, 8, ["min-height", "min-width"])),
1776
- n.inline ? (f(), E("div", be, [
1777
- s(w, {
1969
+ n.inline ? (f(), E("div", Ve, [
1970
+ o(y, {
1778
1971
  style: { "pointer-events": "none" },
1779
1972
  "model-value": i.errors.length !== 0,
1780
1973
  opacity: "0.8",
@@ -1782,7 +1975,7 @@ function xe(e, t, n, o, i, l) {
1782
1975
  attach: "",
1783
1976
  "scroll-strategy": "none"
1784
1977
  }, null, 8, ["model-value"]),
1785
- M(s(c, {
1978
+ F(o(c, {
1786
1979
  icon: "mdi-alert",
1787
1980
  variant: "text",
1788
1981
  density: "compact",
@@ -1792,9 +1985,9 @@ function xe(e, t, n, o, i, l) {
1792
1985
  i.errorDialog = !0;
1793
1986
  })
1794
1987
  }, null, 512), [
1795
- [L, i.errors.length !== 0]
1988
+ [z, i.errors.length !== 0]
1796
1989
  ]),
1797
- (f(), b(C, {
1990
+ (f(), x(S, {
1798
1991
  key: i.screenKey,
1799
1992
  widgets: i.layoutStack[0].widgets,
1800
1993
  "screen-values": i.screenValues,
@@ -1805,11 +1998,11 @@ function xe(e, t, n, o, i, l) {
1805
1998
  onClose: l.close,
1806
1999
  onCloseAll: l.closeAll
1807
2000
  }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
1808
- ])) : V("", !0),
1809
- i.editDialog ? (f(), b(d, {
2001
+ ])) : I("", !0),
2002
+ i.editDialog ? (f(), x(a, {
1810
2003
  key: 2,
1811
2004
  modelValue: i.editDialog,
1812
- "onUpdate:modelValue": t[3] || (t[3] = (I) => i.editDialog = I),
2005
+ "onUpdate:modelValue": t[3] || (t[3] = (C) => i.editDialog = C),
1813
2006
  target: n.target,
1814
2007
  screen: n.screen,
1815
2008
  definition: i.currentDefinition,
@@ -1818,48 +2011,48 @@ function xe(e, t, n, o, i, l) {
1818
2011
  onSave: l.saveEdit,
1819
2012
  onCancel: l.cancelEdit,
1820
2013
  onDelete: l.deleteScreen
1821
- }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors", "onSave", "onCancel", "onDelete"])) : V("", !0),
1822
- s(g, {
2014
+ }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors", "onSave", "onCancel", "onDelete"])) : I("", !0),
2015
+ o(b, {
1823
2016
  modelValue: i.errorDialog,
1824
- "onUpdate:modelValue": t[5] || (t[5] = (I) => i.errorDialog = I),
2017
+ "onUpdate:modelValue": t[5] || (t[5] = (C) => i.errorDialog = C),
1825
2018
  width: "60vw"
1826
2019
  }, {
1827
- default: a(() => [
1828
- s(h, { height: "24" }, {
1829
- default: a(() => [
1830
- s(p),
1831
- v("span", null, " Screen: " + k(n.target) + " " + k(n.screen) + " Errors ", 1),
1832
- s(p)
2020
+ default: r(() => [
2021
+ o(m, { height: "24" }, {
2022
+ default: r(() => [
2023
+ o(h),
2024
+ _("span", null, " Screen: " + k(n.target) + " " + k(n.screen) + " Errors ", 1),
2025
+ o(h)
1833
2026
  ]),
1834
2027
  _: 1
1835
2028
  }),
1836
- s(u, null, {
1837
- default: a(() => [
1838
- s(y, {
2029
+ o(u, null, {
2030
+ default: r(() => [
2031
+ o(g, {
1839
2032
  class: "errors",
1840
2033
  readonly: "",
1841
2034
  rows: "13",
1842
2035
  "model-value": l.error
1843
2036
  }, null, 8, ["model-value"]),
1844
- s(m, { class: "pb-5" }, {
1845
- default: a(() => [
1846
- s(p),
1847
- s(c, {
2037
+ o(p, { class: "pb-5" }, {
2038
+ default: r(() => [
2039
+ o(h),
2040
+ o(c, {
1848
2041
  variant: "outlined",
1849
2042
  class: "mr-2",
1850
2043
  onClick: l.clearErrors
1851
2044
  }, {
1852
- default: a(() => [...t[8] || (t[8] = [
2045
+ default: r(() => [...t[8] || (t[8] = [
1853
2046
  T(" Clear Errors ", -1)
1854
2047
  ])]),
1855
2048
  _: 1
1856
2049
  }, 8, ["onClick"]),
1857
- s(c, {
2050
+ o(c, {
1858
2051
  variant: "flat",
1859
2052
  class: "mr-2",
1860
- onClick: t[4] || (t[4] = (I) => i.errorDialog = !1)
2053
+ onClick: t[4] || (t[4] = (C) => i.errorDialog = !1)
1861
2054
  }, {
1862
- default: a(() => [...t[9] || (t[9] = [
2055
+ default: r(() => [...t[9] || (t[9] = [
1863
2056
  T(" Close ", -1)
1864
2057
  ])]),
1865
2058
  _: 1
@@ -1875,12 +2068,17 @@ function xe(e, t, n, o, i, l) {
1875
2068
  }, 8, ["modelValue"])
1876
2069
  ], 4);
1877
2070
  }
1878
- const Ee = /* @__PURE__ */ O(ye, [["render", xe], ["__scopeId", "data-v-9e7135e1"]]);
2071
+ const Ue = /* @__PURE__ */ A(Te, [["render", Ie], ["__scopeId", "data-v-5ff10871"]]);
1879
2072
  export {
1880
- ie as E,
1881
- Ve as F,
1882
- Ee as O,
2073
+ ze as C,
2074
+ re as E,
2075
+ Re as F,
2076
+ Ue as O,
1883
2077
  Q as S,
1884
- Ie as a
2078
+ Ne as T,
2079
+ ie as a,
2080
+ Le as b,
2081
+ Fe as c,
2082
+ ae as g
1885
2083
  };
1886
- //# sourceMappingURL=Openc3Screen-CDwAWaTl.js.map
2084
+ //# sourceMappingURL=Openc3Screen-DYJHNotN.js.map