@openc3/vue-common 6.10.2 → 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 (545) hide show
  1. package/dist/{ArrayWidget-ByKRAWXn.cjs → ArrayWidget-CIMbQsGW.cjs} +3 -3
  2. package/dist/{ArrayWidget-ByKRAWXn.cjs.map → ArrayWidget-CIMbQsGW.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-CR7Wpw3N.js → ArrayWidget-DfiusKpM.js} +11 -11
  4. package/dist/{ArrayWidget-CR7Wpw3N.js.map → ArrayWidget-DfiusKpM.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-Cty7KQ_h.cjs → ArrayplotWidget-DrrqqJEu.cjs} +2 -2
  6. package/dist/{ArrayplotWidget-Cty7KQ_h.cjs.map → ArrayplotWidget-DrrqqJEu.cjs.map} +1 -1
  7. package/dist/{ArrayplotWidget-DDEd-jRJ.js → ArrayplotWidget-DsvOovu9.js} +4 -4
  8. package/dist/{ArrayplotWidget-DDEd-jRJ.js.map → ArrayplotWidget-DsvOovu9.js.map} +1 -1
  9. package/dist/BarColumn-CWgcL5w1.cjs +2 -0
  10. package/dist/BarColumn-CWgcL5w1.cjs.map +1 -0
  11. package/dist/{BarColumn-XWs-3Cwb.js → BarColumn-DHHJBR3V.js} +11 -11
  12. package/dist/BarColumn-DHHJBR3V.js.map +1 -0
  13. package/dist/{BlockWidget-BDzoqpxO.cjs → BlockWidget-7Ecn_42c.cjs} +3 -3
  14. package/dist/{BlockWidget-BDzoqpxO.cjs.map → BlockWidget-7Ecn_42c.cjs.map} +1 -1
  15. package/dist/{BlockWidget-CfFgdNSv.js → BlockWidget-BdYXWS_0.js} +14 -14
  16. package/dist/{BlockWidget-CfFgdNSv.js.map → BlockWidget-BdYXWS_0.js.map} +1 -1
  17. package/dist/{ButtonWidget-BBMDS_YF.cjs → ButtonWidget-DFxBj0MG.cjs} +3 -3
  18. package/dist/ButtonWidget-DFxBj0MG.cjs.map +1 -0
  19. package/dist/{ButtonWidget-BaSvtElA.js → ButtonWidget-zpSJmiQT.js} +15 -15
  20. package/dist/ButtonWidget-zpSJmiQT.js.map +1 -0
  21. package/dist/{CanvasWidget-CFNpgqfW.cjs → CanvasWidget-C5-iZ-YT.cjs} +2 -2
  22. package/dist/{CanvasWidget-CFNpgqfW.cjs.map → CanvasWidget-C5-iZ-YT.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-DcwDi5Zk.js → CanvasWidget-DaUB1G9X.js} +4 -4
  24. package/dist/{CanvasWidget-DcwDi5Zk.js.map → CanvasWidget-DaUB1G9X.js.map} +1 -1
  25. package/dist/{CanvasdotWidget--awMOWyz.js → CanvasdotWidget-C255aTVc.js} +3 -3
  26. package/dist/{CanvasdotWidget--awMOWyz.js.map → CanvasdotWidget-C255aTVc.js.map} +1 -1
  27. package/dist/{CanvasdotWidget-BZ9TrTvw.cjs → CanvasdotWidget-CCrgS1yO.cjs} +2 -2
  28. package/dist/{CanvasdotWidget-BZ9TrTvw.cjs.map → CanvasdotWidget-CCrgS1yO.cjs.map} +1 -1
  29. package/dist/CanvasimageWidget-B2Mm0dYq.cjs +2 -0
  30. package/dist/CanvasimageWidget-B2Mm0dYq.cjs.map +1 -0
  31. package/dist/{CanvasimageWidget-YP1pCtvb.js → CanvasimageWidget-CFlUUFqr.js} +8 -7
  32. package/dist/CanvasimageWidget-CFlUUFqr.js.map +1 -0
  33. package/dist/CanvasimagevalueWidget-B1xVa3FB.cjs +2 -0
  34. package/dist/CanvasimagevalueWidget-B1xVa3FB.cjs.map +1 -0
  35. package/dist/{CanvasimagevalueWidget-CjVHb2uj.js → CanvasimagevalueWidget-s4gR3fo5.js} +5 -4
  36. package/dist/CanvasimagevalueWidget-s4gR3fo5.js.map +1 -0
  37. package/dist/{CanvaslabelWidget-Dw1YmiY0.cjs → CanvaslabelWidget-CAtE3qq_.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-Dw1YmiY0.cjs.map → CanvaslabelWidget-CAtE3qq_.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-DoMplTTO.js → CanvaslabelWidget-CaOc-lTQ.js} +3 -3
  40. package/dist/{CanvaslabelWidget-DoMplTTO.js.map → CanvaslabelWidget-CaOc-lTQ.js.map} +1 -1
  41. package/dist/CanvaslabelvalueWidget-CvVMrZsu.cjs +2 -0
  42. package/dist/CanvaslabelvalueWidget-CvVMrZsu.cjs.map +1 -0
  43. package/dist/{CanvaslabelvalueWidget-Dyo_ogHn.js → CanvaslabelvalueWidget-hqJoPekq.js} +4 -3
  44. package/dist/CanvaslabelvalueWidget-hqJoPekq.js.map +1 -0
  45. package/dist/{CanvaslineWidget-tm194dw1.cjs → CanvaslineWidget-CjPnyDod.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-tm194dw1.cjs.map → CanvaslineWidget-CjPnyDod.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-D7W1TIxm.js → CanvaslineWidget-DebP2L43.js} +3 -3
  48. package/dist/{CanvaslineWidget-D7W1TIxm.js.map → CanvaslineWidget-DebP2L43.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-BOZyJuLE.js → CanvaslinevalueWidget-BkPG5Vtx.js} +11 -10
  50. package/dist/CanvaslinevalueWidget-BkPG5Vtx.js.map +1 -0
  51. package/dist/CanvaslinevalueWidget-Caadjtan.cjs +2 -0
  52. package/dist/CanvaslinevalueWidget-Caadjtan.cjs.map +1 -0
  53. package/dist/CheckbuttonWidget-CEOWZkt6.cjs +2 -0
  54. package/dist/{CheckbuttonWidget-BSvTWD3x.cjs.map → CheckbuttonWidget-CEOWZkt6.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-B1E4BC6v.js → CheckbuttonWidget-eQIcPATf.js} +6 -6
  56. package/dist/{CheckbuttonWidget-B1E4BC6v.js.map → CheckbuttonWidget-eQIcPATf.js.map} +1 -1
  57. package/dist/{ClassificationBanners-CzZoKcRy.cjs → ClassificationBanners--l3qMxLo.cjs} +2 -2
  58. package/dist/{ClassificationBanners-CzZoKcRy.cjs.map → ClassificationBanners--l3qMxLo.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-DQeVwmYp.js → ClassificationBanners-CFLQaZJ2.js} +2 -2
  60. package/dist/{ClassificationBanners-DQeVwmYp.js.map → ClassificationBanners-CFLQaZJ2.js.map} +1 -1
  61. package/dist/{ComboboxWidget-BExUBH57.js → ComboboxWidget-B5kzYxFk.js} +6 -6
  62. package/dist/{ComboboxWidget-BExUBH57.js.map → ComboboxWidget-B5kzYxFk.js.map} +1 -1
  63. package/dist/ComboboxWidget-BSs59QzI.cjs +2 -0
  64. package/dist/{ComboboxWidget-B_KAnIVB.cjs.map → ComboboxWidget-BSs59QzI.cjs.map} +1 -1
  65. package/dist/{CriticalCmdDialog-BtzhxuZi.js → CriticalCmdDialog-BYHZbX2w.js} +62 -52
  66. package/dist/CriticalCmdDialog-BYHZbX2w.js.map +1 -0
  67. package/dist/CriticalCmdDialog-BhjiJIo5.cjs +2 -0
  68. package/dist/CriticalCmdDialog-BhjiJIo5.cjs.map +1 -0
  69. package/dist/{CustomIcon-DTfsnDJn.js → CustomIcon-B9m73Gqm.js} +5 -4
  70. package/dist/{CustomIcon-DTfsnDJn.js.map → CustomIcon-B9m73Gqm.js.map} +1 -1
  71. package/dist/CustomIcon-CEc927h0.cjs +2 -0
  72. package/dist/{CustomIcon-eie3rPKh.cjs.map → CustomIcon-CEc927h0.cjs.map} +1 -1
  73. package/dist/{DateWidget-_ZmPsi2l.js → DateWidget-1IZOe50K.js} +3 -3
  74. package/dist/{DateWidget-_ZmPsi2l.js.map → DateWidget-1IZOe50K.js.map} +1 -1
  75. package/dist/{DateWidget-kTJBAHVp.cjs → DateWidget-DkVxE7Xj.cjs} +2 -2
  76. package/dist/{DateWidget-kTJBAHVp.cjs.map → DateWidget-DkVxE7Xj.cjs.map} +1 -1
  77. package/dist/{DetailsDialog-Bq7SS7bc.js → DetailsDialog-D-rjL4oc.js} +130 -100
  78. package/dist/DetailsDialog-D-rjL4oc.js.map +1 -0
  79. package/dist/DetailsDialog-lJG8eclU.cjs +2 -0
  80. package/dist/DetailsDialog-lJG8eclU.cjs.map +1 -0
  81. package/dist/DynamicWidget-C4V2H2VJ.cjs +2 -0
  82. package/dist/DynamicWidget-C4V2H2VJ.cjs.map +1 -0
  83. package/dist/{DynamicWidget-DHL7pbgW.js → DynamicWidget-DEHWYr8i.js} +7 -7
  84. package/dist/DynamicWidget-DEHWYr8i.js.map +1 -0
  85. package/dist/EventListDialog-5UXvnmNE.cjs +2 -0
  86. package/dist/EventListDialog-5UXvnmNE.cjs.map +1 -0
  87. package/dist/{EventListDialog-jdNF3szO.js → EventListDialog-Id3rEQKY.js} +242 -242
  88. package/dist/EventListDialog-Id3rEQKY.js.map +1 -0
  89. package/dist/FilechecksumWidget-D-5GSjyV.cjs +2 -0
  90. package/dist/FilechecksumWidget-D-5GSjyV.cjs.map +1 -0
  91. package/dist/FilechecksumWidget-F_FX1Kjx.js +158 -0
  92. package/dist/FilechecksumWidget-F_FX1Kjx.js.map +1 -0
  93. package/dist/FiledisplayWidget-BF3G22jF.js +114 -0
  94. package/dist/FiledisplayWidget-BF3G22jF.js.map +1 -0
  95. package/dist/FiledisplayWidget-BHLOY_cM.cjs +2 -0
  96. package/dist/FiledisplayWidget-BHLOY_cM.cjs.map +1 -0
  97. package/dist/{FormatvalueWidget-4C0vrL2i.js → FormatvalueWidget-BkF9iiHs.js} +4 -4
  98. package/dist/{FormatvalueWidget-4C0vrL2i.js.map → FormatvalueWidget-BkF9iiHs.js.map} +1 -1
  99. package/dist/{FormatvalueWidget-CVoJgFJA.cjs → FormatvalueWidget-DTsP7isW.cjs} +2 -2
  100. package/dist/{FormatvalueWidget-CVoJgFJA.cjs.map → FormatvalueWidget-DTsP7isW.cjs.map} +1 -1
  101. package/dist/{Graph-B7KPo9Ul.js → Graph-C-7C2Jq5.js} +194 -187
  102. package/dist/Graph-C-7C2Jq5.js.map +1 -0
  103. package/dist/Graph-YYieRGo0.cjs +2 -0
  104. package/dist/Graph-YYieRGo0.cjs.map +1 -0
  105. package/dist/{GraphWidget-D3HueIZi.cjs → GraphWidget-C7hqdqL-.cjs} +2 -2
  106. package/dist/{GraphWidget-D3HueIZi.cjs.map → GraphWidget-C7hqdqL-.cjs.map} +1 -1
  107. package/dist/{GraphWidget-BpkPpAbd.js → GraphWidget-DRkDn8za.js} +2 -2
  108. package/dist/{GraphWidget-BpkPpAbd.js.map → GraphWidget-DRkDn8za.js.map} +1 -1
  109. package/dist/HorizontalWidget-DB64wzZB.js +69 -0
  110. package/dist/HorizontalWidget-DB64wzZB.js.map +1 -0
  111. package/dist/HorizontalWidget-h-U8i3G-.cjs +2 -0
  112. package/dist/HorizontalWidget-h-U8i3G-.cjs.map +1 -0
  113. package/dist/{HorizontalboxWidget-CTomf_Iy.js → HorizontalboxWidget-BsHsGlvK.js} +6 -6
  114. package/dist/{HorizontalboxWidget-CTomf_Iy.js.map → HorizontalboxWidget-BsHsGlvK.js.map} +1 -1
  115. package/dist/{HorizontalboxWidget-ysq7slso.cjs → HorizontalboxWidget-E4LUf2eN.cjs} +2 -2
  116. package/dist/{HorizontalboxWidget-ysq7slso.cjs.map → HorizontalboxWidget-E4LUf2eN.cjs.map} +1 -1
  117. package/dist/{HorizontallineWidget-B7xx7ofY.js → HorizontallineWidget-CyiexzIu.js} +3 -3
  118. package/dist/{HorizontallineWidget-B7xx7ofY.js.map → HorizontallineWidget-CyiexzIu.js.map} +1 -1
  119. package/dist/{HorizontallineWidget-BgXZZymr.cjs → HorizontallineWidget-LibmHnAf.cjs} +2 -2
  120. package/dist/{HorizontallineWidget-BgXZZymr.cjs.map → HorizontallineWidget-LibmHnAf.cjs.map} +1 -1
  121. package/dist/{IframeWidget-DK7rbULe.js → IframeWidget-D9Vh0w2c.js} +3 -3
  122. package/dist/{IframeWidget-DK7rbULe.js.map → IframeWidget-D9Vh0w2c.js.map} +1 -1
  123. package/dist/{IframeWidget-fV9e-Nm1.cjs → IframeWidget-xeXTxP_G.cjs} +2 -2
  124. package/dist/{IframeWidget-fV9e-Nm1.cjs.map → IframeWidget-xeXTxP_G.cjs.map} +1 -1
  125. package/dist/{ImageLoader-C9rN_pSY.js → ImageLoader-B4iBPFyi.js} +2 -2
  126. package/dist/{ImageLoader-C9rN_pSY.js.map → ImageLoader-B4iBPFyi.js.map} +1 -1
  127. package/dist/{ImageLoader-CJxiBXAL.cjs → ImageLoader-Cc4-BNJv.cjs} +2 -2
  128. package/dist/{ImageLoader-CJxiBXAL.cjs.map → ImageLoader-Cc4-BNJv.cjs.map} +1 -1
  129. package/dist/{ImageviewerWidget-6d6Kl3W_.js → ImageviewerWidget-DqV4SClv.js} +10 -9
  130. package/dist/ImageviewerWidget-DqV4SClv.js.map +1 -0
  131. package/dist/ImageviewerWidget-KVt487SJ.cjs +2 -0
  132. package/dist/ImageviewerWidget-KVt487SJ.cjs.map +1 -0
  133. package/dist/{InterfacesTab-BCqTanhV.js → InterfacesTab-C310FRIP.js} +4 -4
  134. package/dist/{InterfacesTab-BCqTanhV.js.map → InterfacesTab-C310FRIP.js.map} +1 -1
  135. package/dist/{InterfacesTab-0pmK3KNu.cjs → InterfacesTab-nZwg-ByS.cjs} +2 -2
  136. package/dist/{InterfacesTab-0pmK3KNu.cjs.map → InterfacesTab-nZwg-ByS.cjs.map} +1 -1
  137. package/dist/{LabelWidget-D71FfOSw.js → LabelWidget-BDukcPet.js} +3 -3
  138. package/dist/{LabelWidget-D71FfOSw.js.map → LabelWidget-BDukcPet.js.map} +1 -1
  139. package/dist/{LabelWidget-DdZz2NWv.cjs → LabelWidget-DYfv4K8h.cjs} +2 -2
  140. package/dist/{LabelWidget-DdZz2NWv.cjs.map → LabelWidget-DYfv4K8h.cjs.map} +1 -1
  141. package/dist/{LabelledWidget-BZ319slb.cjs → LabelledWidget-Dl1x6b3p.cjs} +2 -2
  142. package/dist/{LabelledWidget-BZ319slb.cjs.map → LabelledWidget-Dl1x6b3p.cjs.map} +1 -1
  143. package/dist/{LabelledWidget-D2ir5kVU.js → LabelledWidget-tVHE426s.js} +6 -6
  144. package/dist/{LabelledWidget-D2ir5kVU.js.map → LabelledWidget-tVHE426s.js.map} +1 -1
  145. package/dist/{LabelprogressbarWidget-C4_YbROz.js → LabelprogressbarWidget-CjMDFUUv.js} +6 -6
  146. package/dist/{LabelprogressbarWidget-C4_YbROz.js.map → LabelprogressbarWidget-CjMDFUUv.js.map} +1 -1
  147. package/dist/{LabelprogressbarWidget-LyevJNuz.cjs → LabelprogressbarWidget-DcO0gRM4.cjs} +2 -2
  148. package/dist/{LabelprogressbarWidget-LyevJNuz.cjs.map → LabelprogressbarWidget-DcO0gRM4.cjs.map} +1 -1
  149. package/dist/LabelsparklineWidget-Cp2a-qlI.cjs +2 -0
  150. package/dist/LabelsparklineWidget-Cp2a-qlI.cjs.map +1 -0
  151. package/dist/{LabelsparklineWidget-CdZ_pM2B.js → LabelsparklineWidget-dZl3cGu0.js} +13 -13
  152. package/dist/LabelsparklineWidget-dZl3cGu0.js.map +1 -0
  153. package/dist/{LabelvalueWidget-DSHwAKma.cjs → LabelvalueWidget-CgP4mzP_.cjs} +2 -2
  154. package/dist/{LabelvalueWidget-DSHwAKma.cjs.map → LabelvalueWidget-CgP4mzP_.cjs.map} +1 -1
  155. package/dist/{LabelvalueWidget-BS0EPY5h.js → LabelvalueWidget-UcAc_2Ry.js} +6 -6
  156. package/dist/{LabelvalueWidget-BS0EPY5h.js.map → LabelvalueWidget-UcAc_2Ry.js.map} +1 -1
  157. package/dist/{LabelvaluedescWidget-3lwQxkKj.cjs → LabelvaluedescWidget-CXJ037Qs.cjs} +2 -2
  158. package/dist/{LabelvaluedescWidget-3lwQxkKj.cjs.map → LabelvaluedescWidget-CXJ037Qs.cjs.map} +1 -1
  159. package/dist/{LabelvaluedescWidget-Cpr8_Voq.js → LabelvaluedescWidget-Crb8udVe.js} +6 -6
  160. package/dist/{LabelvaluedescWidget-Cpr8_Voq.js.map → LabelvaluedescWidget-Crb8udVe.js.map} +1 -1
  161. package/dist/{LabelvaluelimitsbarWidget-DbO_Q5ex.cjs → LabelvaluelimitsbarWidget-B3cn7i50.cjs} +2 -2
  162. package/dist/LabelvaluelimitsbarWidget-B3cn7i50.cjs.map +1 -0
  163. package/dist/{LabelvaluelimitsbarWidget-DTcYbEQS.js → LabelvaluelimitsbarWidget-BZGUQrRt.js} +10 -10
  164. package/dist/LabelvaluelimitsbarWidget-BZGUQrRt.js.map +1 -0
  165. package/dist/LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs +2 -0
  166. package/dist/LabelvaluelimitscolumnWidget-DbBOkQ8R.cjs.map +1 -0
  167. package/dist/{LabelvaluelimitscolumnWidget-D0ltQ9Ta.js → LabelvaluelimitscolumnWidget-NNYW2aMO.js} +12 -12
  168. package/dist/LabelvaluelimitscolumnWidget-NNYW2aMO.js.map +1 -0
  169. package/dist/{LabelvaluerangebarWidget-B6_alHq4.cjs → LabelvaluerangebarWidget-B81fLpK0.cjs} +2 -2
  170. package/dist/{LabelvaluerangebarWidget-B6_alHq4.cjs.map → LabelvaluerangebarWidget-B81fLpK0.cjs.map} +1 -1
  171. package/dist/{LabelvaluerangebarWidget-O8IHjvHs.js → LabelvaluerangebarWidget-CjkVDlVJ.js} +6 -6
  172. package/dist/{LabelvaluerangebarWidget-O8IHjvHs.js.map → LabelvaluerangebarWidget-CjkVDlVJ.js.map} +1 -1
  173. package/dist/Layout-FpBx3iic.js +36 -0
  174. package/dist/Layout-FpBx3iic.js.map +1 -0
  175. package/dist/Layout-K7_I6jMV.cjs +2 -0
  176. package/dist/Layout-K7_I6jMV.cjs.map +1 -0
  177. package/dist/{LedWidget-DUvJ2v8k.js → LedWidget-Bsp1aja-.js} +46 -39
  178. package/dist/LedWidget-Bsp1aja-.js.map +1 -0
  179. package/dist/LedWidget-C19KREVz.cjs +2 -0
  180. package/dist/LedWidget-C19KREVz.cjs.map +1 -0
  181. package/dist/LimitsBar-IVv8t4FE.js +134 -0
  182. package/dist/LimitsBar-IVv8t4FE.js.map +1 -0
  183. package/dist/LimitsBar-LRiUSWd7.cjs +2 -0
  184. package/dist/LimitsBar-LRiUSWd7.cjs.map +1 -0
  185. package/dist/LimitsbarWidget-BFjMhTbA.cjs +2 -0
  186. package/dist/LimitsbarWidget-BFjMhTbA.cjs.map +1 -0
  187. package/dist/LimitsbarWidget-Bo1JAoQp.js +65 -0
  188. package/dist/LimitsbarWidget-Bo1JAoQp.js.map +1 -0
  189. package/dist/LimitscolorWidget-D214kS86.cjs +2 -0
  190. package/dist/LimitscolorWidget-D214kS86.cjs.map +1 -0
  191. package/dist/{LimitscolorWidget-FXT0ZPPH.js → LimitscolorWidget-Doq8h_g1.js} +14 -13
  192. package/dist/LimitscolorWidget-Doq8h_g1.js.map +1 -0
  193. package/dist/{LimitscolumnWidget-C5yozwf0.cjs → LimitscolumnWidget-BREF_CBr.cjs} +2 -2
  194. package/dist/{LimitscolumnWidget-C5yozwf0.cjs.map → LimitscolumnWidget-BREF_CBr.cjs.map} +1 -1
  195. package/dist/{LimitscolumnWidget-CjBy-CCI.js → LimitscolumnWidget-qasXHN7m.js} +3 -3
  196. package/dist/{LimitscolumnWidget-CjBy-CCI.js.map → LimitscolumnWidget-qasXHN7m.js.map} +1 -1
  197. package/dist/{LinegraphWidget-lmu_tFKd.js → LinegraphWidget-BNMqcr_r.js} +5 -5
  198. package/dist/{LinegraphWidget-lmu_tFKd.js.map → LinegraphWidget-BNMqcr_r.js.map} +1 -1
  199. package/dist/{LinegraphWidget-dO_B0T3E.cjs → LinegraphWidget-BhpYKxnT.cjs} +2 -2
  200. package/dist/{LinegraphWidget-dO_B0T3E.cjs.map → LinegraphWidget-BhpYKxnT.cjs.map} +1 -1
  201. package/dist/MatrixbycolumnsWidget-BKXkhATe.cjs +2 -0
  202. package/dist/MatrixbycolumnsWidget-BKXkhATe.cjs.map +1 -0
  203. package/dist/MatrixbycolumnsWidget-BlF1CyIT.js +83 -0
  204. package/dist/MatrixbycolumnsWidget-BlF1CyIT.js.map +1 -0
  205. package/dist/MicroservicesTab-BWFwBSuf.cjs +2 -0
  206. package/dist/MicroservicesTab-BWFwBSuf.cjs.map +1 -0
  207. package/dist/MicroservicesTab-xpDXKoa-.js +203 -0
  208. package/dist/MicroservicesTab-xpDXKoa-.js.map +1 -0
  209. package/dist/OpenC3TimePicker-6pE8gGCO.cjs +2 -0
  210. package/dist/OpenC3TimePicker-6pE8gGCO.cjs.map +1 -0
  211. package/dist/OpenC3TimePicker-D-_qqySI.js +219 -0
  212. package/dist/OpenC3TimePicker-D-_qqySI.js.map +1 -0
  213. package/dist/{Openc3Screen-DcIIUO63.js → Openc3Screen-DYJHNotN.js} +730 -510
  214. package/dist/Openc3Screen-DYJHNotN.js.map +1 -0
  215. package/dist/Openc3Screen-Pu1ktpS8.cjs +6 -0
  216. package/dist/Openc3Screen-Pu1ktpS8.cjs.map +1 -0
  217. package/dist/OutputDialog-BwEWPQW9.cjs +2 -0
  218. package/dist/OutputDialog-BwEWPQW9.cjs.map +1 -0
  219. package/dist/{OutputDialog-CNH74LpJ.js → OutputDialog-x4QZFAWe.js} +24 -17
  220. package/dist/OutputDialog-x4QZFAWe.js.map +1 -0
  221. package/dist/{PackagesTab-PEPT4CQu.cjs → PackagesTab-CHwfaqdP.cjs} +2 -2
  222. package/dist/{PackagesTab-PEPT4CQu.cjs.map → PackagesTab-CHwfaqdP.cjs.map} +1 -1
  223. package/dist/{PackagesTab-BE6W7Aru.js → PackagesTab-rzc4hqOb.js} +4 -4
  224. package/dist/{PackagesTab-BE6W7Aru.js.map → PackagesTab-rzc4hqOb.js.map} +1 -1
  225. package/dist/{PluginsTab-DXf9zX0h.cjs → PluginsTab-C7gLbRQn.cjs} +2 -2
  226. package/dist/PluginsTab-C7gLbRQn.cjs.map +1 -0
  227. package/dist/{PluginsTab-B_Pf2A9c.js → PluginsTab-Dff_0j26.js} +8 -8
  228. package/dist/PluginsTab-Dff_0j26.js.map +1 -0
  229. package/dist/{ProgressbarWidget-B5WN658S.js → ProgressbarWidget-DQ80NANH.js} +7 -5
  230. package/dist/ProgressbarWidget-DQ80NANH.js.map +1 -0
  231. package/dist/ProgressbarWidget-cQAtX_Q7.cjs +2 -0
  232. package/dist/ProgressbarWidget-cQAtX_Q7.cjs.map +1 -0
  233. package/dist/RadiobuttonWidget-DFrUZRaV.cjs +2 -0
  234. package/dist/{RadiobuttonWidget-DkG9GtAy.cjs.map → RadiobuttonWidget-DFrUZRaV.cjs.map} +1 -1
  235. package/dist/{RadiobuttonWidget-B_3nys46.js → RadiobuttonWidget-LD18M4IQ.js} +11 -10
  236. package/dist/{RadiobuttonWidget-B_3nys46.js.map → RadiobuttonWidget-LD18M4IQ.js.map} +1 -1
  237. package/dist/{RadiogroupWidget-BiMIL9li.js → RadiogroupWidget-D_pt2MPz.js} +6 -6
  238. package/dist/{RadiogroupWidget-BiMIL9li.js.map → RadiogroupWidget-D_pt2MPz.js.map} +1 -1
  239. package/dist/{RadiogroupWidget-BnUjXU28.cjs → RadiogroupWidget-ljP05k3g.cjs} +2 -2
  240. package/dist/{RadiogroupWidget-BnUjXU28.cjs.map → RadiogroupWidget-ljP05k3g.cjs.map} +1 -1
  241. package/dist/RangebarWidget-BsLWXvTo.cjs +2 -0
  242. package/dist/RangebarWidget-BsLWXvTo.cjs.map +1 -0
  243. package/dist/{RangebarWidget-Dn0GASdi.js → RangebarWidget-DhaWpHjB.js} +12 -11
  244. package/dist/RangebarWidget-DhaWpHjB.js.map +1 -0
  245. package/dist/{RedisTab-BsKrL4fD.js → RedisTab-C3yjh0JX.js} +3 -3
  246. package/dist/{RedisTab-BsKrL4fD.js.map → RedisTab-C3yjh0JX.js.map} +1 -1
  247. package/dist/{RedisTab-C1yaDRSt.cjs → RedisTab-DEKMLop2.cjs} +2 -2
  248. package/dist/{RedisTab-C1yaDRSt.cjs.map → RedisTab-DEKMLop2.cjs.map} +1 -1
  249. package/dist/{RollupWidget-b62qcG5K.js → RollupWidget-CMU1-HwL.js} +15 -13
  250. package/dist/RollupWidget-CMU1-HwL.js.map +1 -0
  251. package/dist/RollupWidget-sXTyo7zH.cjs +2 -0
  252. package/dist/RollupWidget-sXTyo7zH.cjs.map +1 -0
  253. package/dist/{RoutersTab-EHz4wDCn.js → RoutersTab-DaWde6np.js} +4 -4
  254. package/dist/{RoutersTab-EHz4wDCn.js.map → RoutersTab-DaWde6np.js.map} +1 -1
  255. package/dist/{RoutersTab-8wGbiPCk.cjs → RoutersTab-IKuEHQeO.cjs} +2 -2
  256. package/dist/{RoutersTab-8wGbiPCk.cjs.map → RoutersTab-IKuEHQeO.cjs.map} +1 -1
  257. package/dist/ScriptChooser-BmyV6QQD.cjs +2 -0
  258. package/dist/ScriptChooser-BmyV6QQD.cjs.map +1 -0
  259. package/dist/{ScriptChooser-DMPY3m8a.js → ScriptChooser-DCjI5aeZ.js} +118 -93
  260. package/dist/ScriptChooser-DCjI5aeZ.js.map +1 -0
  261. package/dist/ScrollwindowWidget-BcLF_bhy.cjs +2 -0
  262. package/dist/ScrollwindowWidget-BcLF_bhy.cjs.map +1 -0
  263. package/dist/ScrollwindowWidget-D7Ln-QMq.js +69 -0
  264. package/dist/ScrollwindowWidget-D7Ln-QMq.js.map +1 -0
  265. package/dist/{SecretsTab-DSMFodJM.cjs → SecretsTab-BM9HIjT_.cjs} +2 -2
  266. package/dist/{SecretsTab-DSMFodJM.cjs.map → SecretsTab-BM9HIjT_.cjs.map} +1 -1
  267. package/dist/{SecretsTab-Cbt_r-1I.js → SecretsTab-Dhal1RCq.js} +3 -3
  268. package/dist/{SecretsTab-Cbt_r-1I.js.map → SecretsTab-Dhal1RCq.js.map} +1 -1
  269. package/dist/SettingsTab-BrSkK_Fs.cjs +3 -0
  270. package/dist/SettingsTab-BrSkK_Fs.cjs.map +1 -0
  271. package/dist/{SettingsTab-L5xbCAW_.js → SettingsTab-Dtj_AlEW.js} +319 -202
  272. package/dist/SettingsTab-Dtj_AlEW.js.map +1 -0
  273. package/dist/SignalWidget-DHwveppA.cjs +2 -0
  274. package/dist/SignalWidget-DHwveppA.cjs.map +1 -0
  275. package/dist/{SignalWidget-CLi6qask.js → SignalWidget-PreTg4Mt.js} +5 -3
  276. package/dist/SignalWidget-PreTg4Mt.js.map +1 -0
  277. package/dist/SimpleTextDialog-Bdw3jul4.cjs +2 -0
  278. package/dist/SimpleTextDialog-Bdw3jul4.cjs.map +1 -0
  279. package/dist/{SimpleTextDialog-8vDPDt6X.js → SimpleTextDialog-DDIm5Znf.js} +26 -19
  280. package/dist/SimpleTextDialog-DDIm5Znf.js.map +1 -0
  281. package/dist/{SpacerWidget-BCA3gdap.js → SpacerWidget-Chy1NO28.js} +3 -3
  282. package/dist/{SpacerWidget-BCA3gdap.js.map → SpacerWidget-Chy1NO28.js.map} +1 -1
  283. package/dist/{SpacerWidget-BJpqoaeP.cjs → SpacerWidget-Cj-j_MsG.cjs} +2 -2
  284. package/dist/{SpacerWidget-BJpqoaeP.cjs.map → SpacerWidget-Cj-j_MsG.cjs.map} +1 -1
  285. package/dist/SparklineWidget-BE1LieLF.cjs +2 -0
  286. package/dist/SparklineWidget-BE1LieLF.cjs.map +1 -0
  287. package/dist/{SparklineWidget-D8mb4zLt.js → SparklineWidget-Bb-gCNNt.js} +11 -11
  288. package/dist/SparklineWidget-Bb-gCNNt.js.map +1 -0
  289. package/dist/TabbookWidget-FNbiZpjn.cjs +2 -0
  290. package/dist/TabbookWidget-FNbiZpjn.cjs.map +1 -0
  291. package/dist/TabbookWidget-a-LsBhBE.js +96 -0
  292. package/dist/TabbookWidget-a-LsBhBE.js.map +1 -0
  293. package/dist/TargetPacketItemChooser-BPRByyfB.cjs +2 -0
  294. package/dist/TargetPacketItemChooser-BPRByyfB.cjs.map +1 -0
  295. package/dist/{TargetPacketItemChooser-DGcXvdTX.js → TargetPacketItemChooser-DDqBQTWC.js} +232 -183
  296. package/dist/TargetPacketItemChooser-DDqBQTWC.js.map +1 -0
  297. package/dist/{TargetsTab-c-qMsGHh.js → TargetsTab-C7Pn5-19.js} +4 -4
  298. package/dist/{TargetsTab-c-qMsGHh.js.map → TargetsTab-C7Pn5-19.js.map} +1 -1
  299. package/dist/{TargetsTab-C4tQ1auc.cjs → TargetsTab-dndajwC_.cjs} +2 -2
  300. package/dist/{TargetsTab-C4tQ1auc.cjs.map → TargetsTab-dndajwC_.cjs.map} +1 -1
  301. package/dist/{TextBoxDialog-Xs-gitZd.js → TextBoxDialog-CJHrE2Sh.js} +29 -22
  302. package/dist/TextBoxDialog-CJHrE2Sh.js.map +1 -0
  303. package/dist/TextBoxDialog-DzCvdsJj.cjs +2 -0
  304. package/dist/TextBoxDialog-DzCvdsJj.cjs.map +1 -0
  305. package/dist/{TextboxWidget-CR05wO-t.js → TextboxWidget-DIHEOldN.js} +19 -19
  306. package/dist/{TextboxWidget-CR05wO-t.js.map → TextboxWidget-DIHEOldN.js.map} +1 -1
  307. package/dist/{TextboxWidget-BcRfHcF6.cjs → TextboxWidget-DYTNipbi.cjs} +2 -2
  308. package/dist/{TextboxWidget-BcRfHcF6.cjs.map → TextboxWidget-DYTNipbi.cjs.map} +1 -1
  309. package/dist/{TextfieldWidget-Ct1hZr2M.cjs → TextfieldWidget-BE-HpIKs.cjs} +2 -2
  310. package/dist/{TextfieldWidget-Ct1hZr2M.cjs.map → TextfieldWidget-BE-HpIKs.cjs.map} +1 -1
  311. package/dist/{TextfieldWidget-Be_Pz2bF.js → TextfieldWidget-CIBo7Dau.js} +5 -5
  312. package/dist/{TextfieldWidget-Be_Pz2bF.js.map → TextfieldWidget-CIBo7Dau.js.map} +1 -1
  313. package/dist/TimeWidget-CLuOYfPP.js +43 -0
  314. package/dist/TimeWidget-CLuOYfPP.js.map +1 -0
  315. package/dist/TimeWidget-RYL7zDoC.cjs +2 -0
  316. package/dist/TimeWidget-RYL7zDoC.cjs.map +1 -0
  317. package/dist/{TitleWidget-BcmxUDzM.js → TitleWidget-BTHKLAsb.js} +3 -3
  318. package/dist/{TitleWidget-BcmxUDzM.js.map → TitleWidget-BTHKLAsb.js.map} +1 -1
  319. package/dist/{TitleWidget-C1qzja9l.cjs → TitleWidget-DVWOhZqJ.cjs} +2 -2
  320. package/dist/{TitleWidget-C1qzja9l.cjs.map → TitleWidget-DVWOhZqJ.cjs.map} +1 -1
  321. package/dist/{ToolsTab-CbY2K86w.cjs → ToolsTab-D4LFT4tV.cjs} +2 -2
  322. package/dist/{ToolsTab-CbY2K86w.cjs.map → ToolsTab-D4LFT4tV.cjs.map} +1 -1
  323. package/dist/{ToolsTab-Buklih4C.js → ToolsTab-D5yhjVM0.js} +4 -4
  324. package/dist/{ToolsTab-Buklih4C.js.map → ToolsTab-D5yhjVM0.js.map} +1 -1
  325. package/dist/{TopBar-HxaiWynT.cjs → TopBar-DUdrFsMv.cjs} +2 -2
  326. package/dist/{TopBar-HxaiWynT.cjs.map → TopBar-DUdrFsMv.cjs.map} +1 -1
  327. package/dist/{TopBar-D4C9DJcu.js → TopBar-DzxJ69Tt.js} +3 -3
  328. package/dist/{TopBar-D4C9DJcu.js.map → TopBar-DzxJ69Tt.js.map} +1 -1
  329. package/dist/{UpgradeToEnterpriseDialog-D0AGxldj.js → UpgradeToEnterpriseDialog-Bf6rEOgp.js} +16 -13
  330. package/dist/UpgradeToEnterpriseDialog-Bf6rEOgp.js.map +1 -0
  331. package/dist/UpgradeToEnterpriseDialog-CujyHt2o.cjs +2 -0
  332. package/dist/UpgradeToEnterpriseDialog-CujyHt2o.cjs.map +1 -0
  333. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CP8T5W6m.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs} +108 -108
  334. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-CP8T5W6m.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-Bjn8x8eE.cjs.map} +1 -1
  335. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B8ikVCn7.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js} +5473 -5451
  336. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B8ikVCn7.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-NXWdTcR2.js.map} +1 -1
  337. package/dist/{VWidget-CBmUpKSV.js → VWidget-BcwkHuIT.js} +3 -3
  338. package/dist/{VWidget-CBmUpKSV.js.map → VWidget-BcwkHuIT.js.map} +1 -1
  339. package/dist/{VWidget-DhGLFGS2.cjs → VWidget-CbdjSkP3.cjs} +2 -2
  340. package/dist/{VWidget-DhGLFGS2.cjs.map → VWidget-CbdjSkP3.cjs.map} +1 -1
  341. package/dist/ValueWidget-BubIamVx.js +138 -0
  342. package/dist/ValueWidget-BubIamVx.js.map +1 -0
  343. package/dist/ValueWidget-CgAl2Av2.cjs +2 -0
  344. package/dist/ValueWidget-CgAl2Av2.cjs.map +1 -0
  345. package/dist/{ValuelimitsbarWidget-BdY02gqc.js → ValuelimitsbarWidget-DKTrV1RT.js} +11 -11
  346. package/dist/{ValuelimitsbarWidget-BdY02gqc.js.map → ValuelimitsbarWidget-DKTrV1RT.js.map} +1 -1
  347. package/dist/{ValuelimitsbarWidget-KsFz7ipK.cjs → ValuelimitsbarWidget-Dn_sS0zt.cjs} +2 -2
  348. package/dist/{ValuelimitsbarWidget-KsFz7ipK.cjs.map → ValuelimitsbarWidget-Dn_sS0zt.cjs.map} +1 -1
  349. package/dist/ValuelimitscolumnWidget-CGhifOZI.cjs +2 -0
  350. package/dist/ValuelimitscolumnWidget-CGhifOZI.cjs.map +1 -0
  351. package/dist/{ValuelimitscolumnWidget-CuJ6rqtC.js → ValuelimitscolumnWidget-D8JIK4Zi.js} +11 -11
  352. package/dist/ValuelimitscolumnWidget-D8JIK4Zi.js.map +1 -0
  353. package/dist/{ValuerangebarWidget-C5rolGDi.js → ValuerangebarWidget-D8hVKp0l.js} +6 -6
  354. package/dist/{ValuerangebarWidget-C5rolGDi.js.map → ValuerangebarWidget-D8hVKp0l.js.map} +1 -1
  355. package/dist/{ValuerangebarWidget-CDJeamPr.cjs → ValuerangebarWidget-DPtR-Dla.cjs} +2 -2
  356. package/dist/{ValuerangebarWidget-CDJeamPr.cjs.map → ValuerangebarWidget-DPtR-Dla.cjs.map} +1 -1
  357. package/dist/VerticalWidget-DMp3DXGa.js +68 -0
  358. package/dist/VerticalWidget-DMp3DXGa.js.map +1 -0
  359. package/dist/VerticalWidget-DScGTfwX.cjs +2 -0
  360. package/dist/VerticalWidget-DScGTfwX.cjs.map +1 -0
  361. package/dist/{VerticalboxWidget-D-3H1PYU.cjs → VerticalboxWidget-CIJ1c7WU.cjs} +2 -2
  362. package/dist/{VerticalboxWidget-D-3H1PYU.cjs.map → VerticalboxWidget-CIJ1c7WU.cjs.map} +1 -1
  363. package/dist/{VerticalboxWidget-CzDgveBl.js → VerticalboxWidget-CVf1d_3_.js} +6 -6
  364. package/dist/{VerticalboxWidget-CzDgveBl.js.map → VerticalboxWidget-CVf1d_3_.js.map} +1 -1
  365. package/dist/Widget-Btu2EoLT.cjs +2 -0
  366. package/dist/Widget-Btu2EoLT.cjs.map +1 -0
  367. package/dist/{Widget-VCl8Ts8s.js → Widget-D4rzBHnr.js} +27 -19
  368. package/dist/Widget-D4rzBHnr.js.map +1 -0
  369. package/dist/components.cjs +3 -3
  370. package/dist/components.cjs.map +1 -1
  371. package/dist/components.js +421 -248
  372. package/dist/components.js.map +1 -1
  373. package/dist/icons.cjs +1 -1
  374. package/dist/icons.cjs.map +1 -1
  375. package/dist/icons.js +6 -4
  376. package/dist/icons.js.map +1 -1
  377. package/dist/plugins.cjs +2 -2
  378. package/dist/plugins.cjs.map +1 -1
  379. package/dist/plugins.js +23 -17
  380. package/dist/plugins.js.map +1 -1
  381. package/dist/{settings-sg_XHXQ-.cjs → settings-B9vbjzwV.cjs} +2 -2
  382. package/dist/{settings-sg_XHXQ-.cjs.map → settings-B9vbjzwV.cjs.map} +1 -1
  383. package/dist/{settings-DlX9yvJJ.js → settings-Ctcx_wMT.js} +2 -2
  384. package/dist/{settings-DlX9yvJJ.js.map → settings-Ctcx_wMT.js.map} +1 -1
  385. package/dist/tools/admin.cjs +4 -5
  386. package/dist/tools/admin.cjs.map +1 -1
  387. package/dist/tools/admin.js +954 -833
  388. package/dist/tools/admin.js.map +1 -1
  389. package/dist/tools/base.cjs +1 -1
  390. package/dist/tools/base.cjs.map +1 -1
  391. package/dist/tools/base.js +38 -37
  392. package/dist/tools/base.js.map +1 -1
  393. package/dist/tools/calendar.cjs +1 -1
  394. package/dist/tools/calendar.js +1 -1
  395. package/dist/tools/scriptrunner.cjs +8 -8
  396. package/dist/tools/scriptrunner.cjs.map +1 -1
  397. package/dist/tools/scriptrunner.js +1121 -1134
  398. package/dist/tools/scriptrunner.js.map +1 -1
  399. package/dist/useContainerHeight-BAw05dIa.js.map +1 -1
  400. package/dist/useContainerHeight-BEd4f2Lr.cjs.map +1 -1
  401. package/dist/vue-common.css +1 -1
  402. package/dist/widgets.cjs +1 -1
  403. package/dist/widgets.js +118 -116
  404. package/dist/widgets.js.map +1 -1
  405. package/package.json +6 -6
  406. package/dist/BarColumn-BZSUr33b.cjs +0 -2
  407. package/dist/BarColumn-BZSUr33b.cjs.map +0 -1
  408. package/dist/BarColumn-XWs-3Cwb.js.map +0 -1
  409. package/dist/ButtonWidget-BBMDS_YF.cjs.map +0 -1
  410. package/dist/ButtonWidget-BaSvtElA.js.map +0 -1
  411. package/dist/CanvasimageWidget-Dk15uRRu.cjs +0 -2
  412. package/dist/CanvasimageWidget-Dk15uRRu.cjs.map +0 -1
  413. package/dist/CanvasimageWidget-YP1pCtvb.js.map +0 -1
  414. package/dist/CanvasimagevalueWidget-BQHjJCuq.cjs +0 -2
  415. package/dist/CanvasimagevalueWidget-BQHjJCuq.cjs.map +0 -1
  416. package/dist/CanvasimagevalueWidget-CjVHb2uj.js.map +0 -1
  417. package/dist/CanvaslabelvalueWidget-BYmsu9r_.cjs +0 -2
  418. package/dist/CanvaslabelvalueWidget-BYmsu9r_.cjs.map +0 -1
  419. package/dist/CanvaslabelvalueWidget-Dyo_ogHn.js.map +0 -1
  420. package/dist/CanvaslinevalueWidget-BOZyJuLE.js.map +0 -1
  421. package/dist/CanvaslinevalueWidget-DM5c-ciY.cjs +0 -2
  422. package/dist/CanvaslinevalueWidget-DM5c-ciY.cjs.map +0 -1
  423. package/dist/CheckbuttonWidget-BSvTWD3x.cjs +0 -2
  424. package/dist/ComboboxWidget-B_KAnIVB.cjs +0 -2
  425. package/dist/CriticalCmdDialog-BtzhxuZi.js.map +0 -1
  426. package/dist/CriticalCmdDialog-CeohXoAG.cjs +0 -2
  427. package/dist/CriticalCmdDialog-CeohXoAG.cjs.map +0 -1
  428. package/dist/CustomIcon-eie3rPKh.cjs +0 -2
  429. package/dist/DetailsDialog-Bc_VEG95.cjs +0 -2
  430. package/dist/DetailsDialog-Bc_VEG95.cjs.map +0 -1
  431. package/dist/DetailsDialog-Bq7SS7bc.js.map +0 -1
  432. package/dist/DynamicWidget-BNfJRfR5.cjs +0 -2
  433. package/dist/DynamicWidget-BNfJRfR5.cjs.map +0 -1
  434. package/dist/DynamicWidget-DHL7pbgW.js.map +0 -1
  435. package/dist/EventListDialog-Dycx70tY.cjs +0 -2
  436. package/dist/EventListDialog-Dycx70tY.cjs.map +0 -1
  437. package/dist/EventListDialog-jdNF3szO.js.map +0 -1
  438. package/dist/Graph-B7KPo9Ul.js.map +0 -1
  439. package/dist/Graph-C9FS6KR3.cjs +0 -2
  440. package/dist/Graph-C9FS6KR3.cjs.map +0 -1
  441. package/dist/HorizontalWidget-CN6goWHY.cjs +0 -2
  442. package/dist/HorizontalWidget-CN6goWHY.cjs.map +0 -1
  443. package/dist/HorizontalWidget-DbEQYjFC.js +0 -41
  444. package/dist/HorizontalWidget-DbEQYjFC.js.map +0 -1
  445. package/dist/ImageviewerWidget-6d6Kl3W_.js.map +0 -1
  446. package/dist/ImageviewerWidget-CULuNsiD.cjs +0 -2
  447. package/dist/ImageviewerWidget-CULuNsiD.cjs.map +0 -1
  448. package/dist/LabelsparklineWidget-Cbug97Ne.cjs +0 -2
  449. package/dist/LabelsparklineWidget-Cbug97Ne.cjs.map +0 -1
  450. package/dist/LabelsparklineWidget-CdZ_pM2B.js.map +0 -1
  451. package/dist/LabelvaluelimitsbarWidget-DTcYbEQS.js.map +0 -1
  452. package/dist/LabelvaluelimitsbarWidget-DbO_Q5ex.cjs.map +0 -1
  453. package/dist/LabelvaluelimitscolumnWidget-BMSwK1Ys.cjs +0 -2
  454. package/dist/LabelvaluelimitscolumnWidget-BMSwK1Ys.cjs.map +0 -1
  455. package/dist/LabelvaluelimitscolumnWidget-D0ltQ9Ta.js.map +0 -1
  456. package/dist/Layout-DDewLzbI.cjs +0 -2
  457. package/dist/Layout-DDewLzbI.cjs.map +0 -1
  458. package/dist/Layout-DW5yNlp7.js +0 -14
  459. package/dist/Layout-DW5yNlp7.js.map +0 -1
  460. package/dist/LedWidget-Cif7vC7q.cjs +0 -2
  461. package/dist/LedWidget-Cif7vC7q.cjs.map +0 -1
  462. package/dist/LedWidget-DUvJ2v8k.js.map +0 -1
  463. package/dist/LimitsbarWidget-BehZv0-k.js +0 -72
  464. package/dist/LimitsbarWidget-BehZv0-k.js.map +0 -1
  465. package/dist/LimitsbarWidget-BodNPbuH.cjs +0 -2
  466. package/dist/LimitsbarWidget-BodNPbuH.cjs.map +0 -1
  467. package/dist/LimitscolorWidget-DPhymKgB.cjs +0 -2
  468. package/dist/LimitscolorWidget-DPhymKgB.cjs.map +0 -1
  469. package/dist/LimitscolorWidget-FXT0ZPPH.js.map +0 -1
  470. package/dist/MatrixbycolumnsWidget-BLkwvpMk.cjs +0 -2
  471. package/dist/MatrixbycolumnsWidget-BLkwvpMk.cjs.map +0 -1
  472. package/dist/MatrixbycolumnsWidget-CCF7rCkV.js +0 -56
  473. package/dist/MatrixbycolumnsWidget-CCF7rCkV.js.map +0 -1
  474. package/dist/MicroservicesTab-rxOATXLO.js +0 -219
  475. package/dist/MicroservicesTab-rxOATXLO.js.map +0 -1
  476. package/dist/MicroservicesTab-uesXuuM4.cjs +0 -2
  477. package/dist/MicroservicesTab-uesXuuM4.cjs.map +0 -1
  478. package/dist/Openc3Screen-CzD9BB0M.cjs +0 -6
  479. package/dist/Openc3Screen-CzD9BB0M.cjs.map +0 -1
  480. package/dist/Openc3Screen-DcIIUO63.js.map +0 -1
  481. package/dist/OutputDialog-CNH74LpJ.js.map +0 -1
  482. package/dist/OutputDialog-QIabyvK1.cjs +0 -2
  483. package/dist/OutputDialog-QIabyvK1.cjs.map +0 -1
  484. package/dist/PluginsTab-B_Pf2A9c.js.map +0 -1
  485. package/dist/PluginsTab-DXf9zX0h.cjs.map +0 -1
  486. package/dist/ProgressbarWidget-B5WN658S.js.map +0 -1
  487. package/dist/ProgressbarWidget-D2NHSJny.cjs +0 -2
  488. package/dist/ProgressbarWidget-D2NHSJny.cjs.map +0 -1
  489. package/dist/RadiobuttonWidget-DkG9GtAy.cjs +0 -2
  490. package/dist/RangebarWidget-CJgtAk5z.cjs +0 -2
  491. package/dist/RangebarWidget-CJgtAk5z.cjs.map +0 -1
  492. package/dist/RangebarWidget-Dn0GASdi.js.map +0 -1
  493. package/dist/RollupWidget-B2pGGoET.cjs +0 -2
  494. package/dist/RollupWidget-B2pGGoET.cjs.map +0 -1
  495. package/dist/RollupWidget-b62qcG5K.js.map +0 -1
  496. package/dist/ScriptChooser-CtV7dDJS.cjs +0 -2
  497. package/dist/ScriptChooser-CtV7dDJS.cjs.map +0 -1
  498. package/dist/ScriptChooser-DMPY3m8a.js.map +0 -1
  499. package/dist/ScrollwindowWidget-ByJRy528.cjs +0 -2
  500. package/dist/ScrollwindowWidget-ByJRy528.cjs.map +0 -1
  501. package/dist/ScrollwindowWidget-Dn29gs-U.js +0 -45
  502. package/dist/ScrollwindowWidget-Dn29gs-U.js.map +0 -1
  503. package/dist/SettingsTab-8Zeg3G0C.cjs +0 -3
  504. package/dist/SettingsTab-8Zeg3G0C.cjs.map +0 -1
  505. package/dist/SettingsTab-L5xbCAW_.js.map +0 -1
  506. package/dist/SignalWidget-CEmQymzQ.cjs +0 -2
  507. package/dist/SignalWidget-CEmQymzQ.cjs.map +0 -1
  508. package/dist/SignalWidget-CLi6qask.js.map +0 -1
  509. package/dist/SimpleTextDialog-8vDPDt6X.js.map +0 -1
  510. package/dist/SimpleTextDialog-CJ8pLBGz.cjs +0 -2
  511. package/dist/SimpleTextDialog-CJ8pLBGz.cjs.map +0 -1
  512. package/dist/SparklineWidget-CIkMm4O-.cjs +0 -2
  513. package/dist/SparklineWidget-CIkMm4O-.cjs.map +0 -1
  514. package/dist/SparklineWidget-D8mb4zLt.js.map +0 -1
  515. package/dist/TabbookWidget-Bkt4g02d.js +0 -66
  516. package/dist/TabbookWidget-Bkt4g02d.js.map +0 -1
  517. package/dist/TabbookWidget-DqcScWwW.cjs +0 -2
  518. package/dist/TabbookWidget-DqcScWwW.cjs.map +0 -1
  519. package/dist/TargetPacketItemChooser-Cm6mQvhI.cjs +0 -2
  520. package/dist/TargetPacketItemChooser-Cm6mQvhI.cjs.map +0 -1
  521. package/dist/TargetPacketItemChooser-DGcXvdTX.js.map +0 -1
  522. package/dist/TextBoxDialog-DXG7H7kQ.cjs +0 -2
  523. package/dist/TextBoxDialog-DXG7H7kQ.cjs.map +0 -1
  524. package/dist/TextBoxDialog-Xs-gitZd.js.map +0 -1
  525. package/dist/TimeWidget-3M7CQ893.cjs +0 -2
  526. package/dist/TimeWidget-3M7CQ893.cjs.map +0 -1
  527. package/dist/TimeWidget-Dy8zpkC6.js +0 -40
  528. package/dist/TimeWidget-Dy8zpkC6.js.map +0 -1
  529. package/dist/UpgradeToEnterpriseDialog-D0AGxldj.js.map +0 -1
  530. package/dist/UpgradeToEnterpriseDialog-D8BkzmVD.cjs +0 -2
  531. package/dist/UpgradeToEnterpriseDialog-D8BkzmVD.cjs.map +0 -1
  532. package/dist/ValueWidget-BxWrHkYY.js +0 -118
  533. package/dist/ValueWidget-BxWrHkYY.js.map +0 -1
  534. package/dist/ValueWidget-yuZ8tPzG.cjs +0 -2
  535. package/dist/ValueWidget-yuZ8tPzG.cjs.map +0 -1
  536. package/dist/ValuelimitscolumnWidget-B0HGnyS5.cjs +0 -2
  537. package/dist/ValuelimitscolumnWidget-B0HGnyS5.cjs.map +0 -1
  538. package/dist/ValuelimitscolumnWidget-CuJ6rqtC.js.map +0 -1
  539. package/dist/VerticalWidget-DsnEzKZ2.js +0 -40
  540. package/dist/VerticalWidget-DsnEzKZ2.js.map +0 -1
  541. package/dist/VerticalWidget-wuRCrd7Q.cjs +0 -2
  542. package/dist/VerticalWidget-wuRCrd7Q.cjs.map +0 -1
  543. package/dist/Widget-CKianvfR.cjs +0 -2
  544. package/dist/Widget-CKianvfR.cjs.map +0 -1
  545. package/dist/Widget-VCl8Ts8s.js.map +0 -1
@@ -1,72 +1,63 @@
1
- import { f as D, y as K, b as M, W as $, e as H, l as Y } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B8ikVCn7.js";
2
- import { resolveComponent as r, createBlock as b, openBlock as f, withKeys as R, withCtx as a, createVNode as s, createElementVNode as v, toDisplayString as k, createTextVNode as T, withModifiers as A, createElementBlock as E, Fragment as L, renderList as B, ref as P, computed as j, watch as q, normalizeStyle as Z, createCommentVNode as V, withDirectives as O, vShow as N, normalizeProps as U, guardReactiveProps as W } from "vue";
3
- import { _ as F } from "./CustomIcon-DTfsnDJn.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-D4C9DJcu.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 = M.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
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;
166
+ this.HighlightRules = s;
176
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: ""
194
318
  },
319
+ definition: {
320
+ type: String,
321
+ default: ""
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] = R((_) => 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(L, null, B(l.editErrors, (_, X) => (f(), E("div", { key: X }, [
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,10 +464,83 @@ function ne(e, t, n, o, i, l) {
370
464
  _: 1
371
465
  }, 8, ["modelValue"]);
372
466
  }
373
- const ie = /* @__PURE__ */ F(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
  },
543
+ emits: ["update:modelValue"],
377
544
  data() {
378
545
  return {
379
546
  alert: "",
@@ -419,13 +586,13 @@ const ie = /* @__PURE__ */ F(ee, [["render", ne], ["__scopeId", "data-v-00a228d0
419
586
  this.alert = e.text, this.alertType = e.type, this.showAlert = !0;
420
587
  },
421
588
  update: function() {
422
- D.get("/openc3-api/environment").then((e) => {
589
+ V.get("/openc3-api/environment").then((e) => {
423
590
  this.environment = e.data;
424
591
  }).catch((e) => {
425
592
  });
426
593
  },
427
594
  addEnvironment: function() {
428
- D.post("/openc3-api/environment", {
595
+ V.post("/openc3-api/environment", {
429
596
  data: {
430
597
  key: this.key.toUpperCase(),
431
598
  value: this.keyValue
@@ -444,7 +611,7 @@ const ie = /* @__PURE__ */ F(ee, [["render", ne], ["__scopeId", "data-v-00a228d0
444
611
  this.$dialog.confirm(`Are you sure you want to delete: ${e.key}=${e.value}`, {
445
612
  okText: "Delete",
446
613
  cancelText: "Cancel"
447
- }).then((t) => D.delete(`/openc3-api/environment/${e.name}`)).then((t) => {
614
+ }).then((t) => V.delete(`/openc3-api/environment/${e.name}`)).then((t) => {
448
615
  const n = {
449
616
  text: `Removed environment variable: ${e.name}`,
450
617
  type: "success"
@@ -459,39 +626,39 @@ const ie = /* @__PURE__ */ F(ee, [["render", ne], ["__scopeId", "data-v-00a228d0
459
626
  });
460
627
  }
461
628
  }
462
- }, se = { class: "pa-3" };
463
- function oe(e, t, n, o, i, l) {
464
- 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");
465
- 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, {
466
633
  modelValue: l.show,
467
- "onUpdate:modelValue": t[4] || (t[4] = (m) => l.show = m),
634
+ "onUpdate:modelValue": t[4] || (t[4] = (p) => l.show = p),
468
635
  width: "600"
469
636
  }, {
470
- default: a(() => [
471
- s(d, null, {
472
- default: a(() => [
473
- v("form", {
474
- 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"]))
475
642
  }, [
476
- s(x, { height: "24" }, {
477
- default: a(() => [
478
- s(c),
479
- t[5] || (t[5] = v("span", null, "Global Environment Variables", -1)),
480
- 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)
481
648
  ]),
482
649
  _: 1
483
650
  }),
484
- s(u, null, {
485
- default: a(() => [
486
- v("div", se, [
487
- s(h, {
651
+ o(u, null, {
652
+ default: r(() => [
653
+ _("div", he, [
654
+ o(m, {
488
655
  dense: "",
489
656
  class: "mb-2"
490
657
  }, {
491
- default: a(() => [
492
- s(p, {
658
+ default: r(() => [
659
+ o(h, {
493
660
  modelValue: i.search,
494
- "onUpdate:modelValue": t[0] || (t[0] = (m) => i.search = m),
661
+ "onUpdate:modelValue": t[0] || (t[0] = (p) => i.search = p),
495
662
  label: "search",
496
663
  type: "text",
497
664
  "data-test": "search",
@@ -507,7 +674,7 @@ function oe(e, t, n, o, i, l) {
507
674
  ]),
508
675
  _: 1
509
676
  }),
510
- s(C, {
677
+ o(S, {
511
678
  "item-key": "name",
512
679
  "hide-default-header": "",
513
680
  "data-test": "env-table",
@@ -517,36 +684,36 @@ function oe(e, t, n, o, i, l) {
517
684
  "items-per-page": 5,
518
685
  "items-per-page-options": [5]
519
686
  }, {
520
- "item.actions": a(({ item: m }) => [
521
- s(w, {
687
+ "item.actions": r(({ item: p }) => [
688
+ o(y, {
522
689
  icon: "mdi-delete",
523
690
  variant: "text",
524
691
  class: "mt-1",
525
692
  "data-test": "item-delete",
526
693
  "aria-label": "Delete Environment Variable",
527
- onClick: (g) => l.deleteEnvironment(m)
694
+ onClick: (b) => l.deleteEnvironment(p)
528
695
  }, null, 8, ["onClick"])
529
696
  ]),
530
697
  _: 1
531
698
  }, 8, ["search", "headers", "items"]),
532
- s(h, { dense: "" }, {
533
- default: a(() => [
534
- s(S, null, {
535
- default: a(() => [
536
- s(p, {
699
+ o(m, { dense: "" }, {
700
+ default: r(() => [
701
+ o(w, null, {
702
+ default: r(() => [
703
+ o(h, {
537
704
  modelValue: i.key,
538
- "onUpdate:modelValue": t[1] || (t[1] = (m) => i.key = m),
705
+ "onUpdate:modelValue": t[1] || (t[1] = (p) => i.key = p),
539
706
  label: "Key",
540
707
  "data-test": "env-key"
541
708
  }, null, 8, ["modelValue"])
542
709
  ]),
543
710
  _: 1
544
711
  }),
545
- s(S, null, {
546
- default: a(() => [
547
- s(p, {
712
+ o(w, null, {
713
+ default: r(() => [
714
+ o(h, {
548
715
  modelValue: i.keyValue,
549
- "onUpdate:modelValue": t[2] || (t[2] = (m) => i.keyValue = m),
716
+ "onUpdate:modelValue": t[2] || (t[2] = (p) => i.keyValue = p),
550
717
  label: "Value",
551
718
  "data-test": "env-value"
552
719
  }, null, 8, ["modelValue"])
@@ -556,17 +723,17 @@ function oe(e, t, n, o, i, l) {
556
723
  ]),
557
724
  _: 1
558
725
  }),
559
- s(h, { dense: "" }, {
560
- default: a(() => [
561
- s(w, {
726
+ o(m, { dense: "" }, {
727
+ default: r(() => [
728
+ o(y, {
562
729
  block: "",
563
730
  type: "submit",
564
731
  color: "primary",
565
732
  "data-test": "add-env",
566
733
  disabled: !i.key || !i.keyValue,
567
- onClick: A(l.addEnvironment, ["prevent"])
734
+ onClick: O(l.addEnvironment, ["prevent"])
568
735
  }, {
569
- default: a(() => [...t[6] || (t[6] = [
736
+ default: r(() => [...t[6] || (t[6] = [
570
737
  T(" Add ", -1)
571
738
  ])]),
572
739
  _: 1
@@ -586,10 +753,10 @@ function oe(e, t, n, o, i, l) {
586
753
  _: 1
587
754
  }, 8, ["modelValue"]);
588
755
  }
589
- const Ie = /* @__PURE__ */ F(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 = {
590
757
  key: 2,
591
758
  class: "children"
592
- }, he = {
759
+ }, _e = {
593
760
  __name: "TreeNode",
594
761
  props: {
595
762
  node: {
@@ -605,144 +772,144 @@ const Ie = /* @__PURE__ */ F(le, [["render", oe]]), ae = { class: "tree-node" },
605
772
  default: "open"
606
773
  }
607
774
  },
608
- emits: ["nodeToggled", "request"],
775
+ emits: ["nodeToggled", "request", "delete"],
609
776
  setup(e, { emit: t }) {
610
- const n = e, o = P(n.node.isOpen || !1), i = j(() => {
611
- const u = (d) => {
612
- var y;
613
- 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));
614
781
  };
615
782
  return u(n.node);
616
783
  });
617
- q(
784
+ K(
618
785
  () => n.node.isOpen,
619
786
  (u) => {
620
- o.value = u;
787
+ s.value = u;
621
788
  }
622
- ), q(
789
+ ), K(
623
790
  () => n.search,
624
791
  (u) => {
625
- u ? n.node.isOpen || w() : n.node.isOpen && w();
792
+ u ? n.node.isOpen || y() : n.node.isOpen && y();
626
793
  }
627
794
  );
628
- const l = t, c = P({
795
+ const l = t, c = $({
629
796
  show: !1,
630
797
  text: "",
631
798
  x: 0,
632
799
  y: 0
633
- }), x = (u, d) => {
634
- if (!d || d.length <= 50) return;
635
- const y = u.target.getBoundingClientRect(), m = y.left, g = y.top;
636
- c.value.text = d, c.value.x = m, c.value.y = g - 40, c.value.show = !0;
637
- }, 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 = () => {
638
805
  c.value.show = !1;
639
- }, h = (u) => {
640
- u.children ? (w(), n.type === "save" && l("request", u)) : l("request", u);
641
- }, w = () => {
642
- n.node.children && (o.value = !o.value, n.node.isOpen = o.value, l("nodeToggled", n.node.id, o.value));
643
- }, C = (u, d) => {
644
- l("nodeToggled", u, d);
645
- }, 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) => {
646
813
  l("request", u);
647
814
  };
648
- return (u, d) => {
649
- const y = r("v-tooltip"), m = r("v-icon"), g = r("v-btn"), I = r("tree-node", !0);
815
+ return (u, a) => {
816
+ const g = d("v-tooltip"), p = d("v-icon"), b = d("v-btn"), C = d("tree-node", !0);
650
817
  return f(), E(L, null, [
651
- s(y, {
818
+ o(g, {
652
819
  modelValue: c.value.show,
653
- "onUpdate:modelValue": d[0] || (d[0] = (_) => c.value.show = _),
820
+ "onUpdate:modelValue": a[0] || (a[0] = (D) => c.value.show = D),
654
821
  text: c.value.text,
655
822
  location: "top",
656
- 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;`)
657
824
  }, null, 8, ["modelValue", "text", "style"]),
658
- v("div", ae, [
825
+ _("div", fe, [
659
826
  i.value ? (f(), E("div", {
660
827
  key: 0,
661
828
  class: "node-content",
662
- onClick: d[4] || (d[4] = (_) => h(e.node))
829
+ onClick: a[4] || (a[4] = (D) => m(e.node))
663
830
  }, [
664
- v("div", re, [
665
- e.node.children ? (f(), b(m, {
831
+ _("div", pe, [
832
+ e.node.children ? (f(), x(p, {
666
833
  key: 0,
667
834
  class: "toggle-icon",
668
835
  style: { "padding-right": "10px" }
669
836
  }, {
670
- default: a(() => [
837
+ default: r(() => [
671
838
  T(k(e.node.isOpen ? "mdi-menu-down" : "mdi-menu-right"), 1)
672
839
  ]),
673
840
  _: 1
674
- })) : V("", !0),
675
- e.node.children ? (f(), b(m, {
841
+ })) : I("", !0),
842
+ e.node.children ? (f(), x(p, {
676
843
  key: 1,
677
844
  size: "small",
678
845
  style: { "padding-right": "10px" }
679
846
  }, {
680
- default: a(() => [...d[5] || (d[5] = [
847
+ default: r(() => [...a[5] || (a[5] = [
681
848
  T(k("mdi-folder"), -1)
682
849
  ])]),
683
850
  _: 1
684
- })) : e.node.title.includes(".rb") ? (f(), b(m, {
851
+ })) : e.node.title.includes(".rb") ? (f(), x(p, {
685
852
  key: 2,
686
853
  size: "small",
687
854
  style: { "padding-right": "10px" }
688
855
  }, {
689
- default: a(() => [...d[6] || (d[6] = [
856
+ default: r(() => [...a[6] || (a[6] = [
690
857
  T(k("mdi-language-ruby"), -1)
691
858
  ])]),
692
859
  _: 1
693
- })) : e.node.title.includes(".py") ? (f(), b(m, {
860
+ })) : e.node.title.includes(".py") ? (f(), x(p, {
694
861
  key: 3,
695
862
  size: "small",
696
863
  style: { "padding-right": "10px" }
697
864
  }, {
698
- default: a(() => [...d[7] || (d[7] = [
865
+ default: r(() => [...a[7] || (a[7] = [
699
866
  T(k("mdi-language-python"), -1)
700
867
  ])]),
701
868
  _: 1
702
- })) : (f(), b(m, {
869
+ })) : (f(), x(p, {
703
870
  key: 4,
704
871
  size: "small",
705
872
  style: { "padding-right": "10px" }
706
873
  }, {
707
- default: a(() => [...d[8] || (d[8] = [
874
+ default: r(() => [...a[8] || (a[8] = [
708
875
  T(k("mdi-file-document"), -1)
709
876
  ])]),
710
877
  _: 1
711
878
  })),
712
- v("span", {
879
+ _("span", {
713
880
  class: "text-h6",
714
881
  tabindex: e.node.children ? -1 : 0,
715
- onKeyup: d[1] || (d[1] = R((_) => h(e.node), ["enter"])),
716
- onMouseenter: d[2] || (d[2] = (_) => x(_, e.node.title)),
717
- onMouseleave: p
718
- }, k(e.node.title), 41, de),
719
- 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, {
720
887
  key: 5,
721
888
  icon: "mdi-delete",
722
889
  variant: "text",
723
890
  style: { "margin-left": "auto" },
724
891
  "aria-label": "Delete",
725
- onClick: d[3] || (d[3] = (_) => l("delete"))
726
- })) : V("", !0)
892
+ onClick: a[3] || (a[3] = (D) => l("delete"))
893
+ })) : I("", !0)
727
894
  ])
728
- ])) : (f(), E("div", ce)),
729
- e.node.children && e.node.isOpen ? (f(), E("div", ue, [
730
- (f(!0), E(L, null, B(e.node.children, (_) => (f(), b(I, {
731
- key: _.id,
732
- 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,
733
900
  search: e.search,
734
901
  type: e.type,
735
- onNodeToggled: C,
736
- onRequest: S
902
+ onNodeToggled: S,
903
+ onRequest: w
737
904
  }, null, 8, ["node", "search", "type"]))), 128))
738
- ])) : V("", !0)
905
+ ])) : I("", !0)
739
906
  ])
740
907
  ], 64);
741
908
  };
742
909
  }
743
- }, me = /* @__PURE__ */ F(he, [["__scopeId", "data-v-953cd2ec"]]), fe = {
910
+ }, be = /* @__PURE__ */ A(_e, [["__scopeId", "data-v-c9e90a15"]]), xe = {
744
911
  components: {
745
- TreeNode: me
912
+ TreeNode: be
746
913
  },
747
914
  props: {
748
915
  type: {
@@ -752,16 +919,26 @@ const Ie = /* @__PURE__ */ F(le, [["render", oe]]), ae = { class: "tree-node" },
752
919
  return ["open", "save"].indexOf(e) !== -1;
753
920
  }
754
921
  },
755
- apiUrl: String,
922
+ apiUrl: {
923
+ type: String,
924
+ default: null
925
+ },
756
926
  // Base API URL for use with scripts or cmd-tlm
757
927
  requireTargetParentDir: Boolean,
758
928
  // Require that the save filename be nested in a directory with the name of a target
759
- inputFilename: String,
929
+ inputFilename: {
930
+ type: String,
931
+ default: null
932
+ },
760
933
  // passed if this is a 'save' dialog
761
934
  modelValue: Boolean,
762
- customHelpText: String
935
+ customHelpText: {
936
+ type: String,
937
+ default: null
938
+ }
763
939
  // Optional custom help text to display
764
940
  },
941
+ emits: ["update:modelValue", "error", "clear-temp", "file", "filename"],
765
942
  data() {
766
943
  return {
767
944
  tree: [],
@@ -810,7 +987,7 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
810
987
  }
811
988
  },
812
989
  created() {
813
- D.get("/openc3-api/targets").then((e) => {
990
+ V.get("/openc3-api/targets").then((e) => {
814
991
  this.targets = e.data, this.targets.push("__TEMP__"), this.targets.forEach((t) => {
815
992
  this.items.push({
816
993
  id: t,
@@ -827,15 +1004,15 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
827
1004
  return J(e);
828
1005
  },
829
1006
  loadFiles: function(e) {
830
- D.get(this.apiUrl, { params: { target: e } }).then((t) => {
1007
+ V.get(this.apiUrl, { params: { target: e } }).then((t) => {
831
1008
  if (t.data.length === 0) {
832
- this.items = this.items.filter((o) => o.id !== e);
1009
+ this.items = this.items.filter((s) => s.id !== e);
833
1010
  return;
834
1011
  }
835
- for (let o of t.data.sort())
836
- 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);
837
1014
  this.inputFilename && (this.selectedFile = this.inputFilename);
838
- const n = this.items.findIndex((o) => o.id === e);
1015
+ const n = this.items.findIndex((s) => s.id === e);
839
1016
  n !== -1 && (this.items[n].disabled = !1);
840
1017
  }).catch((t) => {
841
1018
  this.$emit("error", `Failed to connect to OpenC3. ${t}`);
@@ -854,19 +1031,19 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
854
1031
  if (n.id === t)
855
1032
  return n.path;
856
1033
  if (n.children) {
857
- const o = this.findItem(n.children, t);
858
- if (o)
859
- return o;
1034
+ const s = this.findItem(n.children, t);
1035
+ if (s)
1036
+ return s;
860
1037
  }
861
1038
  }
862
1039
  return null;
863
1040
  },
864
1041
  exists: function(e, t) {
865
1042
  let n = !1;
866
- for (let o of e) {
867
- 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)
868
1045
  return !0;
869
- o.children && (n = n || this.exists(o.children, t));
1046
+ s.children && (n = n || this.exists(s.children, t));
870
1047
  }
871
1048
  return n;
872
1049
  },
@@ -877,7 +1054,7 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
877
1054
  this.$dialog.confirm("Are you sure you want to delete all the temporary files?", {
878
1055
  okText: "Delete",
879
1056
  cancelText: "Cancel"
880
- }).then((e) => D.delete("/script-api/scripts/temp_files")).then((e) => {
1057
+ }).then((e) => V.delete("/script-api/scripts/temp_files")).then((e) => {
881
1058
  this.$emit("clear-temp"), this.loadFiles("__TEMP__");
882
1059
  }).catch((e) => {
883
1060
  this.$notify.serious({
@@ -887,14 +1064,14 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
887
1064
  });
888
1065
  },
889
1066
  openSuccess: function() {
890
- this.disableButtons = !0, D.get(`${this.apiUrl}/${this.selectedFile}`).then((e) => {
1067
+ this.disableButtons = !0, V.get(`${this.apiUrl}/${this.selectedFile}`).then((e) => {
891
1068
  const t = {
892
1069
  name: this.selectedFile,
893
1070
  contents: e.data.contents
894
1071
  };
895
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);
896
- const n = e.data.locked, o = e.data.breakpoints;
897
- 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();
898
1075
  }).catch((e) => {
899
1076
  this.$emit("error", `Failed to open ${this.selectedFile}. ${e}`), this.clear();
900
1077
  });
@@ -909,54 +1086,54 @@ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
909
1086
  }) : (this.$emit("filename", this.selectedFile), this.clear());
910
1087
  },
911
1088
  insertFile: function(e, t, n) {
912
- let o = n.split("/");
913
- if (o.length === 1) {
1089
+ let s = n.split("/");
1090
+ if (s.length === 1) {
914
1091
  e.push({
915
1092
  id: this.filepath,
916
- title: o[0],
1093
+ title: s[0],
917
1094
  file: "ruby",
918
1095
  path: this.filepath
919
1096
  });
920
1097
  return;
921
1098
  }
922
- const i = e.findIndex((l) => l.title === o[0]);
1099
+ const i = e.findIndex((l) => l.title === s[0]);
923
1100
  i === -1 ? (e.push({
924
1101
  id: this.filepath.split("/").slice(0, t - 1).join("/"),
925
- title: o[0],
1102
+ title: s[0],
926
1103
  children: [],
927
1104
  path: this.filepath.split("/").slice(0, t - 1).join("/")
928
1105
  }), this.insertFile(
929
1106
  e[e.length - 1].children,
930
1107
  // Start from the node we just added
931
1108
  t + 1,
932
- o.slice(1).join("/")
1109
+ s.slice(1).join("/")
933
1110
  // Strip the first part of the path
934
1111
  )) : this.insertFile(
935
1112
  e[i].children,
936
1113
  t + 1,
937
- o.slice(1).join("/")
1114
+ s.slice(1).join("/")
938
1115
  );
939
1116
  }
940
1117
  }
941
- }, pe = { class: "pa-3" }, ge = { class: "overflow-y-auto tree-container" };
942
- function ve(e, t, n, o, i, l) {
943
- 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");
944
- 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, {
945
1122
  modelValue: l.show,
946
- "onUpdate:modelValue": t[4] || (t[4] = (g) => l.show = g),
1123
+ "onUpdate:modelValue": t[4] || (t[4] = (b) => l.show = b),
947
1124
  persistent: "",
948
1125
  width: "800",
949
1126
  onKeydown: [
950
- t[5] || (t[5] = R((g) => l.success(), ["enter"])),
951
- t[6] || (t[6] = R((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"]))
952
1129
  ]
953
1130
  }, {
954
- default: a(() => [
955
- s(y, null, {
956
- default: a(() => [
957
- s(x, { "model-value": i.loading }, {
958
- default: a(() => [
959
- 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, {
960
1137
  indeterminate: "",
961
1138
  absolute: "",
962
1139
  size: "64"
@@ -964,34 +1141,34 @@ function ve(e, t, n, o, i, l) {
964
1141
  ]),
965
1142
  _: 1
966
1143
  }, 8, ["model-value"]),
967
- v("form", {
968
- 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"]))
969
1146
  }, [
970
- s(h, { height: "24" }, {
971
- default: a(() => [
972
- s(p),
973
- v("span", null, k(l.title), 1),
974
- s(p)
1147
+ o(m, { height: "24" }, {
1148
+ default: r(() => [
1149
+ o(h),
1150
+ _("span", null, k(l.title), 1),
1151
+ o(h)
975
1152
  ]),
976
1153
  _: 1
977
1154
  }),
978
- s(d, null, {
979
- default: a(() => [
980
- v("div", pe, [
981
- s(w, null, {
982
- default: a(() => [
1155
+ o(a, null, {
1156
+ default: r(() => [
1157
+ _("div", we, [
1158
+ o(y, null, {
1159
+ default: r(() => [
983
1160
  T(k(l.helpText), 1)
984
1161
  ]),
985
1162
  _: 1
986
1163
  }),
987
- s(w, {
1164
+ o(y, {
988
1165
  dense: "",
989
1166
  class: "mt-5"
990
1167
  }, {
991
- default: a(() => [
992
- s(C, {
1168
+ default: r(() => [
1169
+ o(S, {
993
1170
  modelValue: i.search,
994
- "onUpdate:modelValue": t[0] || (t[0] = (g) => i.search = g),
1171
+ "onUpdate:modelValue": t[0] || (t[0] = (b) => i.search = b),
995
1172
  flat: "",
996
1173
  autofocus: "",
997
1174
  "hide-details": "",
@@ -1004,21 +1181,21 @@ function ve(e, t, n, o, i, l) {
1004
1181
  ]),
1005
1182
  _: 1
1006
1183
  }),
1007
- v("div", ge, [
1008
- (f(!0), E(L, null, B(i.items, (g) => (f(), b(S, {
1009
- key: `${g.id}`,
1010
- 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,
1011
1188
  search: i.search,
1012
1189
  type: n.type,
1013
1190
  onRequest: l.activeFile,
1014
1191
  onDelete: l.deleteTemp
1015
1192
  }, null, 8, ["node", "search", "type", "onRequest", "onDelete"]))), 128))
1016
1193
  ]),
1017
- s(w, { class: "my-2" }, {
1018
- default: a(() => [
1019
- s(C, {
1194
+ o(y, { class: "my-2" }, {
1195
+ default: r(() => [
1196
+ o(S, {
1020
1197
  modelValue: i.selectedFile,
1021
- "onUpdate:modelValue": t[1] || (t[1] = (g) => i.selectedFile = g),
1198
+ "onUpdate:modelValue": t[1] || (t[1] = (b) => i.selectedFile = b),
1022
1199
  "hide-details": "",
1023
1200
  label: "Filename",
1024
1201
  "data-test": "file-open-save-filename",
@@ -1027,42 +1204,42 @@ function ve(e, t, n, o, i, l) {
1027
1204
  ]),
1028
1205
  _: 1
1029
1206
  }),
1030
- s(w, { dense: "" }, {
1031
- default: a(() => [
1032
- O(v("div", {
1207
+ o(y, { dense: "" }, {
1208
+ default: r(() => [
1209
+ F(_("div", {
1033
1210
  class: "my-2 text-red",
1034
1211
  style: { "white-space": "pre-line" }
1035
1212
  }, k(l.error), 513), [
1036
- [N, l.error]
1213
+ [z, l.error]
1037
1214
  ])
1038
1215
  ]),
1039
1216
  _: 1
1040
1217
  }),
1041
- s(w, { class: "mt-2" }, {
1042
- default: a(() => [
1043
- s(p),
1044
- s(u, {
1218
+ o(y, { class: "mt-2" }, {
1219
+ default: r(() => [
1220
+ o(h),
1221
+ o(u, {
1045
1222
  variant: "outlined",
1046
1223
  class: "mx-2",
1047
1224
  "data-test": "file-open-save-cancel-btn",
1048
1225
  disabled: i.disableButtons,
1049
- onClick: t[2] || (t[2] = (g) => l.show = !1)
1226
+ onClick: t[2] || (t[2] = (b) => l.show = !1)
1050
1227
  }, {
1051
- default: a(() => [...t[7] || (t[7] = [
1228
+ default: r(() => [...t[7] || (t[7] = [
1052
1229
  T(" Cancel ", -1)
1053
1230
  ])]),
1054
1231
  _: 1
1055
1232
  }, 8, ["disabled"]),
1056
- s(u, {
1233
+ o(u, {
1057
1234
  ref: "submitBtn",
1058
1235
  type: "submit",
1059
1236
  color: "primary",
1060
1237
  class: "mx-2",
1061
1238
  "data-test": "file-open-save-submit-btn",
1062
1239
  disabled: i.disableButtons || !!l.error,
1063
- onClick: A(l.success, ["prevent"])
1240
+ onClick: O(l.success, ["prevent"])
1064
1241
  }, {
1065
- default: a(() => [
1242
+ default: r(() => [
1066
1243
  T(k(l.submit), 1)
1067
1244
  ]),
1068
1245
  _: 1
@@ -1082,11 +1259,11 @@ function ve(e, t, n, o, i, l) {
1082
1259
  _: 1
1083
1260
  }, 8, ["modelValue"]);
1084
1261
  }
1085
- const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1262
+ const Re = /* @__PURE__ */ A(xe, [["render", Se]]), W = 20, Te = {
1086
1263
  components: {
1087
- EditScreenDialog: ie
1264
+ EditScreenDialog: re
1088
1265
  },
1089
- mixins: [$],
1266
+ mixins: [Z],
1090
1267
  props: {
1091
1268
  target: {
1092
1269
  type: String,
@@ -1151,6 +1328,14 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1151
1328
  playbackDateTime: {
1152
1329
  type: Date,
1153
1330
  default: null
1331
+ },
1332
+ frozen: {
1333
+ type: Boolean,
1334
+ default: !1
1335
+ },
1336
+ frozenValues: {
1337
+ type: Object,
1338
+ default: null
1154
1339
  }
1155
1340
  },
1156
1341
  emits: [
@@ -1198,7 +1383,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1198
1383
  screenValues: {},
1199
1384
  updateCounter: 0,
1200
1385
  updater: null,
1201
- screenId: Y.uniqueId("openc3-screen_"),
1386
+ screenId: H.uniqueId("openc3-screen_"),
1202
1387
  tlmAvailableTimeout: null
1203
1388
  };
1204
1389
  },
@@ -1209,9 +1394,9 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1209
1394
  for (const n of this.errors) {
1210
1395
  if (e.has(n.message))
1211
1396
  continue;
1212
- let o = `${n.time}: (${n.type}) ${n.message}
1397
+ let s = `${n.time}: (${n.type}) ${n.message}
1213
1398
  `;
1214
- t += o, e.add(n.message);
1399
+ t += s, e.add(n.message);
1215
1400
  }
1216
1401
  return t;
1217
1402
  }
@@ -1239,13 +1424,24 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1239
1424
  handler(e, t) {
1240
1425
  e === "realtime" ? this.updateRefreshInterval() : (clearInterval(this.updater), this.updater = null);
1241
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
+ }
1242
1438
  }
1243
1439
  },
1244
1440
  // Called when an error from any descendent component is captured
1245
1441
  // We need this because an error can occur from any of the children
1246
1442
  // in the widget stack and are typically thrown on create()
1247
1443
  errorCaptured(e, t, n) {
1248
- return this.errors.length < z && (e.usage ? this.errors.push({
1444
+ return this.errors.length < W && (e.usage ? this.errors.push({
1249
1445
  type: "usage",
1250
1446
  message: e.message,
1251
1447
  usage: e.usage,
@@ -1259,10 +1455,12 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1259
1455
  })), !1;
1260
1456
  },
1261
1457
  created() {
1262
- 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);
1263
1459
  },
1264
1460
  mounted() {
1265
- 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);
1266
1464
  },
1267
1465
  unmounted() {
1268
1466
  this.updater != null && (clearInterval(this.updater), this.updater = null), this.tlmAvailableTimeout != null && (clearTimeout(this.tlmAvailableTimeout), this.tlmAvailableTimeout = null);
@@ -1297,7 +1495,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1297
1495
  "",
1298
1496
  !1,
1299
1497
  !0,
1300
- (e, t, n, o) => {
1498
+ (e, t, n, s) => {
1301
1499
  if (e)
1302
1500
  switch (e) {
1303
1501
  case "SCREEN":
@@ -1330,6 +1528,17 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1330
1528
  `${e} <Widget Type> <Widget Settings...>`
1331
1529
  ), t[0] === "RAW" && (t[0] = "RAW__" + t[1].toLowerCase()), (this.currentLayout.widgets[this.currentLayout.widgets.length - 1] ?? this.currentLayout).settings.push(t);
1332
1530
  break;
1531
+ case "TOOLTIP":
1532
+ this.configParser.verify_num_parameters(
1533
+ 1,
1534
+ 2,
1535
+ `${e} <Tooltip Text> <Delay (ms)>`
1536
+ ), (this.currentLayout.widgets[this.currentLayout.widgets.length - 1] ?? this.currentLayout).settings.push([
1537
+ "TOOLTIP",
1538
+ t[0],
1539
+ t[1]
1540
+ ]);
1541
+ break;
1333
1542
  case "GLOBAL_SUBSETTING":
1334
1543
  this.configParser.verify_num_parameters(
1335
1544
  3,
@@ -1344,7 +1553,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1344
1553
  ), t[1] === "RAW" && (t[1] = "RAW__" + t[2].toLowerCase()), this.globalSettings.push(t);
1345
1554
  break;
1346
1555
  default:
1347
- this.processWidget(e, t, n, o);
1556
+ this.processWidget(e, t, n, s);
1348
1557
  break;
1349
1558
  }
1350
1559
  }
@@ -1352,7 +1561,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1352
1561
  let e = [], t = [];
1353
1562
  for (const n of this.dynamicWidgets)
1354
1563
  e.push(n.name), t.push(n.lineNumber);
1355
- this.errors.length < z && this.errors.push({
1564
+ this.errors.length < W && this.errors.push({
1356
1565
  type: "usage",
1357
1566
  message: `Unknown widget! Are these widgets: ${e.join(",")}?`,
1358
1567
  lineNumber: t.join(","),
@@ -1428,7 +1637,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1428
1637
  },
1429
1638
  saveEdit: function(e) {
1430
1639
  this.editDialog = !1, this.currentDefinition = e, this.rerender(), this.$nextTick(function() {
1431
- D.post(
1640
+ V.post(
1432
1641
  "/openc3-api/screen/",
1433
1642
  {
1434
1643
  data: {
@@ -1443,7 +1652,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1443
1652
  });
1444
1653
  },
1445
1654
  deleteScreen: function() {
1446
- 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(
1447
1656
  (e) => {
1448
1657
  this.$emit("delete-screen");
1449
1658
  }
@@ -1452,7 +1661,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1452
1661
  minMaxTransition: function() {
1453
1662
  this.expand = !this.expand, this.$emit("min-max-screen");
1454
1663
  },
1455
- processWidget: function(e, t, n, o) {
1664
+ processWidget: function(e, t, n, s) {
1456
1665
  let i = null;
1457
1666
  e === "NAMED_WIDGET" && (this.configParser.verify_num_parameters(
1458
1667
  2,
@@ -1462,7 +1671,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1462
1671
  const l = e.charAt(0).toUpperCase() + e.slice(1).toLowerCase() + "Widget";
1463
1672
  let c = [];
1464
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") {
1465
- const x = {
1674
+ const v = {
1466
1675
  type: l,
1467
1676
  parameters: t,
1468
1677
  settings: c,
@@ -1470,7 +1679,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1470
1679
  screenTimeZone: this.timeZone,
1471
1680
  widgets: []
1472
1681
  };
1473
- 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;
1474
1683
  } else if (this.$options.components[l])
1475
1684
  this.currentLayout.widgets.push({
1476
1685
  type: l,
@@ -1480,10 +1689,10 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1480
1689
  screenValues: this.screenValues,
1481
1690
  screenTimeZone: this.timeZone,
1482
1691
  line: n,
1483
- lineNumber: o
1692
+ lineNumber: s
1484
1693
  });
1485
1694
  else {
1486
- let x = {
1695
+ let v = {
1487
1696
  type: "DynamicWidget",
1488
1697
  target: this.target,
1489
1698
  parameters: t,
@@ -1492,9 +1701,9 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1492
1701
  screenTimeZone: this.timeZone,
1493
1702
  name: l,
1494
1703
  line: n,
1495
- lineNumber: o
1704
+ lineNumber: s
1496
1705
  };
1497
- this.currentLayout.widgets.push(x), this.dynamicWidgets.push(x);
1706
+ this.currentLayout.widgets.push(v), this.dynamicWidgets.push(v);
1498
1707
  }
1499
1708
  },
1500
1709
  applyGlobalSettings: function(e) {
@@ -1507,6 +1716,8 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1507
1716
  });
1508
1717
  },
1509
1718
  update: function() {
1719
+ if (this.frozen)
1720
+ return;
1510
1721
  let e = this.playbackMode === "playback" ? this.playbackDateTime : null;
1511
1722
  this.actualScreenItems.length !== 0 && this.api.get_tlm_values(
1512
1723
  this.actualScreenItems,
@@ -1517,7 +1728,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1517
1728
  t && t.length > 0 && this.updateValues(t);
1518
1729
  }).catch((t) => {
1519
1730
  let n = JSON.stringify(t, null, 2);
1520
- 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({
1521
1732
  type: "error",
1522
1733
  message: n,
1523
1734
  time: (/* @__PURE__ */ new Date()).getTime()
@@ -1537,7 +1748,7 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1537
1748
  e[t].push(this.updateCounter), this.screenValues[this.screenItems[t]] = e[t];
1538
1749
  },
1539
1750
  debouncedUpdateTlmAvailable: function() {
1540
- this.tlmAvailableTimeout != null && clearTimeout(this.tlmAvailableTimeout), this.tlmAvailableTimeout = setTimeout(() => {
1751
+ this.frozen || (this.tlmAvailableTimeout != null && clearTimeout(this.tlmAvailableTimeout), this.tlmAvailableTimeout = setTimeout(() => {
1541
1752
  this.api.get_tlm_available(this.screenItems).then((e) => {
1542
1753
  if (this.actualScreenItems = e, this.screenItems.length != e.length)
1543
1754
  console.log(
@@ -1548,14 +1759,14 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1548
1759
  else
1549
1760
  for (let t = 0; t < this.actualScreenItems.length; t++)
1550
1761
  if (this.actualScreenItems[t] === null) {
1551
- const n = this.screenItems[t].split("__"), o = this.currentDefinition.split(`
1552
- `), i = o.findIndex(
1762
+ const n = this.screenItems[t].split("__"), s = this.currentDefinition.split(`
1763
+ `), i = s.findIndex(
1553
1764
  (l) => l.includes(n[0]) && l.includes(n[1]) && l.includes(n[2])
1554
1765
  ) + 1;
1555
1766
  i > 0 ? this.errors.push({
1556
1767
  type: "usage",
1557
1768
  message: `Null for ${n.join(" ")}! Does it exist?`,
1558
- line: o[i - 1],
1769
+ line: s[i - 1],
1559
1770
  // 0-based line array
1560
1771
  lineNumber: i,
1561
1772
  time: (/* @__PURE__ */ new Date()).getTime()
@@ -1568,41 +1779,45 @@ const Ve = /* @__PURE__ */ F(fe, [["render", ve]]), z = 20, ye = {
1568
1779
  }).catch((e) => {
1569
1780
  console.log("Error getting tlm available", e), this.actualScreenItems = this.screenItems;
1570
1781
  }), this.tlmAvailableTimeout = null;
1571
- }, 100);
1782
+ }, 100));
1572
1783
  },
1573
1784
  addItem: function(e) {
1574
- 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();
1575
1786
  },
1576
1787
  deleteItem: function(e) {
1577
1788
  let t = this.screenItems.indexOf(e);
1578
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));
1579
1794
  }
1580
1795
  }
1581
- }, _e = {
1796
+ }, Ce = {
1582
1797
  ref: "screen",
1583
1798
  class: "pa-1",
1584
1799
  style: { position: "relative" }
1585
- }, be = {
1800
+ }, Ve = {
1586
1801
  key: 1,
1587
1802
  class: "pa-1",
1588
1803
  style: { position: "relative" }
1589
1804
  };
1590
- function xe(e, t, n, o, i, l) {
1591
- 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");
1592
1807
  return f(), E("div", {
1593
1808
  ref: "bar",
1594
- style: Z(l.computedStyle)
1809
+ style: B(l.computedStyle)
1595
1810
  }, [
1596
- n.inline ? V("", !0) : (f(), b(u, {
1811
+ n.inline ? I("", !0) : (f(), x(u, {
1597
1812
  key: 0,
1598
1813
  "min-height": i.height,
1599
1814
  "min-width": i.width,
1600
1815
  style: { cursor: "default" }
1601
1816
  }, {
1602
- default: a(() => [
1603
- s(h, { height: "24" }, {
1604
- default: a(() => [
1605
- O(s(c, {
1817
+ default: r(() => [
1818
+ o(m, { height: "24" }, {
1819
+ default: r(() => [
1820
+ F(o(c, {
1606
1821
  icon: "mdi-alert",
1607
1822
  variant: "text",
1608
1823
  density: "compact",
@@ -1612,9 +1827,9 @@ function xe(e, t, n, o, i, l) {
1612
1827
  i.errorDialog = !0;
1613
1828
  })
1614
1829
  }, null, 512), [
1615
- [N, i.errors.length !== 0]
1830
+ [z, i.errors.length !== 0]
1616
1831
  ]),
1617
- s(c, {
1832
+ o(c, {
1618
1833
  icon: "mdi-pencil",
1619
1834
  variant: "text",
1620
1835
  density: "compact",
@@ -1622,14 +1837,14 @@ function xe(e, t, n, o, i, l) {
1622
1837
  "aria-label": "Edit Screen",
1623
1838
  onClick: l.openEdit
1624
1839
  }, null, 8, ["onClick"]),
1625
- n.fixFloated ? V("", !0) : (f(), b(x, {
1840
+ n.fixFloated ? I("", !0) : (f(), x(v, {
1626
1841
  key: 0,
1627
1842
  "open-delay": 600,
1628
1843
  location: "top"
1629
1844
  }, {
1630
- activator: a(({ props: I }) => [
1631
- v("div", U(W(I)), [
1632
- s(c, {
1845
+ activator: r(({ props: C }) => [
1846
+ _("div", R(U(C)), [
1847
+ o(c, {
1633
1848
  icon: i.floated ? "mdi-balloon" : "mdi-view-grid-outline",
1634
1849
  variant: "text",
1635
1850
  density: "compact",
@@ -1639,19 +1854,19 @@ function xe(e, t, n, o, i, l) {
1639
1854
  }, null, 8, ["icon", "aria-label", "onClick"])
1640
1855
  ], 16)
1641
1856
  ]),
1642
- default: a(() => [
1643
- 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)
1644
1859
  ]),
1645
1860
  _: 1
1646
1861
  })),
1647
- i.floated ? (f(), b(x, {
1862
+ i.floated ? (f(), x(v, {
1648
1863
  key: 1,
1649
1864
  "open-delay": 600,
1650
1865
  location: "top"
1651
1866
  }, {
1652
- activator: a(({ props: I }) => [
1653
- v("div", U(W(I)), [
1654
- s(c, {
1867
+ activator: r(({ props: C }) => [
1868
+ _("div", R(U(C)), [
1869
+ o(c, {
1655
1870
  icon: "mdi-arrow-up",
1656
1871
  variant: "text",
1657
1872
  density: "compact",
@@ -1661,19 +1876,19 @@ function xe(e, t, n, o, i, l) {
1661
1876
  }, null, 8, ["onClick"])
1662
1877
  ], 16)
1663
1878
  ]),
1664
- default: a(() => [
1665
- 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))
1666
1881
  ]),
1667
1882
  _: 1
1668
- })) : V("", !0),
1669
- i.floated && i.zIndex > n.minZ ? (f(), b(x, {
1883
+ })) : I("", !0),
1884
+ i.floated && i.zIndex > n.minZ ? (f(), x(v, {
1670
1885
  key: 2,
1671
1886
  "open-delay": 600,
1672
1887
  location: "top"
1673
1888
  }, {
1674
- activator: a(({ props: I }) => [
1675
- v("div", U(W(I)), [
1676
- s(c, {
1889
+ activator: r(({ props: C }) => [
1890
+ _("div", R(U(C)), [
1891
+ o(c, {
1677
1892
  icon: "mdi-arrow-down",
1678
1893
  variant: "text",
1679
1894
  density: "compact",
@@ -1683,15 +1898,15 @@ function xe(e, t, n, o, i, l) {
1683
1898
  }, null, 8, ["onClick"])
1684
1899
  ], 16)
1685
1900
  ]),
1686
- default: a(() => [
1687
- 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))
1688
1903
  ]),
1689
1904
  _: 1
1690
- })) : V("", !0),
1691
- s(p),
1692
- v("span", null, k(n.target) + " " + k(n.screen), 1),
1693
- s(p),
1694
- 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, {
1695
1910
  key: 3,
1696
1911
  icon: "mdi-window-minimize",
1697
1912
  variant: "text",
@@ -1699,7 +1914,7 @@ function xe(e, t, n, o, i, l) {
1699
1914
  "data-test": "minimize-screen-icon",
1700
1915
  "aria-label": "Minimize Screen",
1701
1916
  onClick: l.minMaxTransition
1702
- }, null, 8, ["onClick"])) : (f(), b(c, {
1917
+ }, null, 8, ["onClick"])) : (f(), x(c, {
1703
1918
  key: 4,
1704
1919
  icon: "mdi-window-maximize",
1705
1920
  variant: "text",
@@ -1708,22 +1923,22 @@ function xe(e, t, n, o, i, l) {
1708
1923
  "aria-label": "Maximize Screen",
1709
1924
  onClick: l.minMaxTransition
1710
1925
  }, null, 8, ["onClick"])),
1711
- n.showClose ? (f(), b(c, {
1926
+ n.showClose ? (f(), x(c, {
1712
1927
  key: 5,
1713
1928
  icon: "mdi-close-box",
1714
1929
  variant: "text",
1715
1930
  density: "compact",
1716
1931
  "data-test": "close-screen-icon",
1717
1932
  "aria-label": "Close Screen",
1718
- onClick: t[1] || (t[1] = (I) => e.$emit("close-screen"))
1719
- })) : V("", !0)
1933
+ onClick: t[1] || (t[1] = (C) => e.$emit("close-screen"))
1934
+ })) : I("", !0)
1720
1935
  ]),
1721
1936
  _: 1
1722
1937
  }),
1723
- i.editDialog ? V("", !0) : (f(), b(S, { key: 0 }, {
1724
- default: a(() => [
1725
- O(v("div", _e, [
1726
- s(w, {
1938
+ i.editDialog ? I("", !0) : (f(), x(w, { key: 0 }, {
1939
+ default: r(() => [
1940
+ F(_("div", Ce, [
1941
+ o(y, {
1727
1942
  style: { "pointer-events": "none" },
1728
1943
  "model-value": i.errors.length !== 0,
1729
1944
  opacity: "0.8",
@@ -1731,7 +1946,7 @@ function xe(e, t, n, o, i, l) {
1731
1946
  attach: "",
1732
1947
  "scroll-strategy": "none"
1733
1948
  }, null, 8, ["model-value"]),
1734
- (f(), b(C, {
1949
+ (f(), x(S, {
1735
1950
  key: i.screenKey,
1736
1951
  widgets: i.layoutStack[0].widgets,
1737
1952
  "screen-values": i.screenValues,
@@ -1743,7 +1958,7 @@ function xe(e, t, n, o, i, l) {
1743
1958
  onCloseAll: l.closeAll
1744
1959
  }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
1745
1960
  ], 512), [
1746
- [N, i.expand]
1961
+ [z, i.expand]
1747
1962
  ])
1748
1963
  ]),
1749
1964
  _: 1
@@ -1751,8 +1966,8 @@ function xe(e, t, n, o, i, l) {
1751
1966
  ]),
1752
1967
  _: 1
1753
1968
  }, 8, ["min-height", "min-width"])),
1754
- n.inline ? (f(), E("div", be, [
1755
- s(w, {
1969
+ n.inline ? (f(), E("div", Ve, [
1970
+ o(y, {
1756
1971
  style: { "pointer-events": "none" },
1757
1972
  "model-value": i.errors.length !== 0,
1758
1973
  opacity: "0.8",
@@ -1760,7 +1975,7 @@ function xe(e, t, n, o, i, l) {
1760
1975
  attach: "",
1761
1976
  "scroll-strategy": "none"
1762
1977
  }, null, 8, ["model-value"]),
1763
- O(s(c, {
1978
+ F(o(c, {
1764
1979
  icon: "mdi-alert",
1765
1980
  variant: "text",
1766
1981
  density: "compact",
@@ -1770,9 +1985,9 @@ function xe(e, t, n, o, i, l) {
1770
1985
  i.errorDialog = !0;
1771
1986
  })
1772
1987
  }, null, 512), [
1773
- [N, i.errors.length !== 0]
1988
+ [z, i.errors.length !== 0]
1774
1989
  ]),
1775
- (f(), b(C, {
1990
+ (f(), x(S, {
1776
1991
  key: i.screenKey,
1777
1992
  widgets: i.layoutStack[0].widgets,
1778
1993
  "screen-values": i.screenValues,
@@ -1783,11 +1998,11 @@ function xe(e, t, n, o, i, l) {
1783
1998
  onClose: l.close,
1784
1999
  onCloseAll: l.closeAll
1785
2000
  }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
1786
- ])) : V("", !0),
1787
- i.editDialog ? (f(), b(d, {
2001
+ ])) : I("", !0),
2002
+ i.editDialog ? (f(), x(a, {
1788
2003
  key: 2,
1789
2004
  modelValue: i.editDialog,
1790
- "onUpdate:modelValue": t[3] || (t[3] = (I) => i.editDialog = I),
2005
+ "onUpdate:modelValue": t[3] || (t[3] = (C) => i.editDialog = C),
1791
2006
  target: n.target,
1792
2007
  screen: n.screen,
1793
2008
  definition: i.currentDefinition,
@@ -1796,48 +2011,48 @@ function xe(e, t, n, o, i, l) {
1796
2011
  onSave: l.saveEdit,
1797
2012
  onCancel: l.cancelEdit,
1798
2013
  onDelete: l.deleteScreen
1799
- }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors", "onSave", "onCancel", "onDelete"])) : V("", !0),
1800
- s(g, {
2014
+ }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors", "onSave", "onCancel", "onDelete"])) : I("", !0),
2015
+ o(b, {
1801
2016
  modelValue: i.errorDialog,
1802
- "onUpdate:modelValue": t[5] || (t[5] = (I) => i.errorDialog = I),
2017
+ "onUpdate:modelValue": t[5] || (t[5] = (C) => i.errorDialog = C),
1803
2018
  width: "60vw"
1804
2019
  }, {
1805
- default: a(() => [
1806
- s(h, { height: "24" }, {
1807
- default: a(() => [
1808
- s(p),
1809
- v("span", null, " Screen: " + k(n.target) + " " + k(n.screen) + " Errors ", 1),
1810
- 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)
1811
2026
  ]),
1812
2027
  _: 1
1813
2028
  }),
1814
- s(u, null, {
1815
- default: a(() => [
1816
- s(y, {
2029
+ o(u, null, {
2030
+ default: r(() => [
2031
+ o(g, {
1817
2032
  class: "errors",
1818
2033
  readonly: "",
1819
2034
  rows: "13",
1820
2035
  "model-value": l.error
1821
2036
  }, null, 8, ["model-value"]),
1822
- s(m, { class: "pb-5" }, {
1823
- default: a(() => [
1824
- s(p),
1825
- s(c, {
2037
+ o(p, { class: "pb-5" }, {
2038
+ default: r(() => [
2039
+ o(h),
2040
+ o(c, {
1826
2041
  variant: "outlined",
1827
2042
  class: "mr-2",
1828
2043
  onClick: l.clearErrors
1829
2044
  }, {
1830
- default: a(() => [...t[8] || (t[8] = [
2045
+ default: r(() => [...t[8] || (t[8] = [
1831
2046
  T(" Clear Errors ", -1)
1832
2047
  ])]),
1833
2048
  _: 1
1834
2049
  }, 8, ["onClick"]),
1835
- s(c, {
2050
+ o(c, {
1836
2051
  variant: "flat",
1837
2052
  class: "mr-2",
1838
- onClick: t[4] || (t[4] = (I) => i.errorDialog = !1)
2053
+ onClick: t[4] || (t[4] = (C) => i.errorDialog = !1)
1839
2054
  }, {
1840
- default: a(() => [...t[9] || (t[9] = [
2055
+ default: r(() => [...t[9] || (t[9] = [
1841
2056
  T(" Close ", -1)
1842
2057
  ])]),
1843
2058
  _: 1
@@ -1853,12 +2068,17 @@ function xe(e, t, n, o, i, l) {
1853
2068
  }, 8, ["modelValue"])
1854
2069
  ], 4);
1855
2070
  }
1856
- const Ee = /* @__PURE__ */ F(ye, [["render", xe], ["__scopeId", "data-v-dca85517"]]);
2071
+ const Ue = /* @__PURE__ */ A(Te, [["render", Ie], ["__scopeId", "data-v-5ff10871"]]);
1857
2072
  export {
1858
- ie as E,
1859
- Ve as F,
1860
- Ee as O,
2073
+ ze as C,
2074
+ re as E,
2075
+ Re as F,
2076
+ Ue as O,
1861
2077
  Q as S,
1862
- Ie as a
2078
+ Ne as T,
2079
+ ie as a,
2080
+ Le as b,
2081
+ Fe as c,
2082
+ ae as g
1863
2083
  };
1864
- //# sourceMappingURL=Openc3Screen-DcIIUO63.js.map
2084
+ //# sourceMappingURL=Openc3Screen-DYJHNotN.js.map