@openc3/vue-common 5.21.0-beta0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/package.json +16 -16
  2. package/dist/ArrayWidget-ChaMDaRA.js +0 -105
  3. package/dist/ArrayWidget-ChaMDaRA.js.map +0 -1
  4. package/dist/ArrayWidget-x7le0X73.cjs +0 -3
  5. package/dist/ArrayWidget-x7le0X73.cjs.map +0 -1
  6. package/dist/AstroStatus-CILMWL6F.cjs +0 -2
  7. package/dist/AstroStatus-CILMWL6F.cjs.map +0 -1
  8. package/dist/AstroStatus-CY9VkeTN.js +0 -40
  9. package/dist/AstroStatus-CY9VkeTN.js.map +0 -1
  10. package/dist/BarColumn-CqXfFAQ9.js +0 -106
  11. package/dist/BarColumn-CqXfFAQ9.js.map +0 -1
  12. package/dist/BarColumn-Ct4izXqV.cjs +0 -2
  13. package/dist/BarColumn-Ct4izXqV.cjs.map +0 -1
  14. package/dist/BlockWidget-BPefRY_h.cjs +0 -3
  15. package/dist/BlockWidget-BPefRY_h.cjs.map +0 -1
  16. package/dist/BlockWidget-DjiPs6ID.js +0 -111
  17. package/dist/BlockWidget-DjiPs6ID.js.map +0 -1
  18. package/dist/ButtonWidget-Dd80CjGt.js +0 -165
  19. package/dist/ButtonWidget-Dd80CjGt.js.map +0 -1
  20. package/dist/ButtonWidget-SoiP15gH.cjs +0 -3
  21. package/dist/ButtonWidget-SoiP15gH.cjs.map +0 -1
  22. package/dist/CanvasWidget-ALHiDq5o.js +0 -39
  23. package/dist/CanvasWidget-ALHiDq5o.js.map +0 -1
  24. package/dist/CanvasWidget-JapjwSXd.cjs +0 -2
  25. package/dist/CanvasWidget-JapjwSXd.cjs.map +0 -1
  26. package/dist/CanvasdotWidget-BU42MGW6.cjs +0 -2
  27. package/dist/CanvasdotWidget-BU42MGW6.cjs.map +0 -1
  28. package/dist/CanvasdotWidget-JkDXGoHm.js +0 -19
  29. package/dist/CanvasdotWidget-JkDXGoHm.js.map +0 -1
  30. package/dist/CanvasimageWidget-CQ_ZlEFj.cjs +0 -2
  31. package/dist/CanvasimageWidget-CQ_ZlEFj.cjs.map +0 -1
  32. package/dist/CanvasimageWidget-CTXlEJgA.js +0 -58
  33. package/dist/CanvasimageWidget-CTXlEJgA.js.map +0 -1
  34. package/dist/CanvasimagevalueWidget-CihOXOHH.js +0 -107
  35. package/dist/CanvasimagevalueWidget-CihOXOHH.js.map +0 -1
  36. package/dist/CanvasimagevalueWidget-DKejEVKr.cjs +0 -2
  37. package/dist/CanvasimagevalueWidget-DKejEVKr.cjs.map +0 -1
  38. package/dist/CanvaslabelWidget-2uD1FRT0.js +0 -23
  39. package/dist/CanvaslabelWidget-2uD1FRT0.js.map +0 -1
  40. package/dist/CanvaslabelWidget-zKoAOaaE.cjs +0 -2
  41. package/dist/CanvaslabelWidget-zKoAOaaE.cjs.map +0 -1
  42. package/dist/CanvaslabelvalueWidget-BCd0ssW9.js +0 -42
  43. package/dist/CanvaslabelvalueWidget-BCd0ssW9.js.map +0 -1
  44. package/dist/CanvaslabelvalueWidget-ZnyvNaVM.cjs +0 -2
  45. package/dist/CanvaslabelvalueWidget-ZnyvNaVM.cjs.map +0 -1
  46. package/dist/CanvaslineWidget-BRFrT-9r.cjs +0 -2
  47. package/dist/CanvaslineWidget-BRFrT-9r.cjs.map +0 -1
  48. package/dist/CanvaslineWidget-Cc8vj_vu.js +0 -28
  49. package/dist/CanvaslineWidget-Cc8vj_vu.js.map +0 -1
  50. package/dist/CanvaslinevalueWidget-CJTmkXEr.js +0 -44
  51. package/dist/CanvaslinevalueWidget-CJTmkXEr.js.map +0 -1
  52. package/dist/CanvaslinevalueWidget-DgIU-2d6.cjs +0 -2
  53. package/dist/CanvaslinevalueWidget-DgIU-2d6.cjs.map +0 -1
  54. package/dist/CheckbuttonWidget-BrUBiJWn.cjs +0 -2
  55. package/dist/CheckbuttonWidget-BrUBiJWn.cjs.map +0 -1
  56. package/dist/CheckbuttonWidget-lZD4wLcB.js +0 -37
  57. package/dist/CheckbuttonWidget-lZD4wLcB.js.map +0 -1
  58. package/dist/ComboboxWidget-BUMleWlR.cjs +0 -2
  59. package/dist/ComboboxWidget-BUMleWlR.cjs.map +0 -1
  60. package/dist/ComboboxWidget-D-nVY2Zf.js +0 -37
  61. package/dist/ComboboxWidget-D-nVY2Zf.js.map +0 -1
  62. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs +0 -2
  63. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs.map +0 -1
  64. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js +0 -10
  65. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js.map +0 -1
  66. package/dist/CriticalCmdDialog-BvPQYRie.cjs +0 -2
  67. package/dist/CriticalCmdDialog-BvPQYRie.cjs.map +0 -1
  68. package/dist/CriticalCmdDialog-ChYR9_7n.js +0 -270
  69. package/dist/CriticalCmdDialog-ChYR9_7n.js.map +0 -1
  70. package/dist/DateWidget-3e2qqqxw.cjs +0 -2
  71. package/dist/DateWidget-3e2qqqxw.cjs.map +0 -1
  72. package/dist/DateWidget-Bs2NufYI.js +0 -40
  73. package/dist/DateWidget-Bs2NufYI.js.map +0 -1
  74. package/dist/DetailsDialog-8ixZ1oPd.cjs +0 -2
  75. package/dist/DetailsDialog-8ixZ1oPd.cjs.map +0 -1
  76. package/dist/DetailsDialog-ScKx0N2e.js +0 -767
  77. package/dist/DetailsDialog-ScKx0N2e.js.map +0 -1
  78. package/dist/DynamicWidget-3wHr6Ng-.cjs +0 -2
  79. package/dist/DynamicWidget-3wHr6Ng-.cjs.map +0 -1
  80. package/dist/DynamicWidget-m9EliUR2.js +0 -35
  81. package/dist/DynamicWidget-m9EliUR2.js.map +0 -1
  82. package/dist/FormatvalueWidget-DEj59HDj.js +0 -44
  83. package/dist/FormatvalueWidget-DEj59HDj.js.map +0 -1
  84. package/dist/FormatvalueWidget-DK0tTvcs.cjs +0 -2
  85. package/dist/FormatvalueWidget-DK0tTvcs.cjs.map +0 -1
  86. package/dist/Graph-D2frd7mZ.js +0 -1999
  87. package/dist/Graph-D2frd7mZ.js.map +0 -1
  88. package/dist/Graph-DFEMzAGq.cjs +0 -2
  89. package/dist/Graph-DFEMzAGq.cjs.map +0 -1
  90. package/dist/GraphWidget-CbyYREVa.cjs +0 -2
  91. package/dist/GraphWidget-CbyYREVa.cjs.map +0 -1
  92. package/dist/GraphWidget-CvlfqTgn.js +0 -129
  93. package/dist/GraphWidget-CvlfqTgn.js.map +0 -1
  94. package/dist/HorizontalWidget-BEOYwm8D.js +0 -41
  95. package/dist/HorizontalWidget-BEOYwm8D.js.map +0 -1
  96. package/dist/HorizontalWidget-xEd4ZLsc.cjs +0 -2
  97. package/dist/HorizontalWidget-xEd4ZLsc.cjs.map +0 -1
  98. package/dist/HorizontalboxWidget-C2wA9_HA.js +0 -38
  99. package/dist/HorizontalboxWidget-C2wA9_HA.js.map +0 -1
  100. package/dist/HorizontalboxWidget-xwLnkDXf.cjs +0 -2
  101. package/dist/HorizontalboxWidget-xwLnkDXf.cjs.map +0 -1
  102. package/dist/HorizontallineWidget-BCKOQase.cjs +0 -2
  103. package/dist/HorizontallineWidget-BCKOQase.cjs.map +0 -1
  104. package/dist/HorizontallineWidget-BdlNB951.js +0 -11
  105. package/dist/HorizontallineWidget-BdlNB951.js.map +0 -1
  106. package/dist/IframeWidget-C42hZbe_.cjs +0 -2
  107. package/dist/IframeWidget-C42hZbe_.cjs.map +0 -1
  108. package/dist/IframeWidget-qwGlLyoS.js +0 -29
  109. package/dist/IframeWidget-qwGlLyoS.js.map +0 -1
  110. package/dist/ImageLoader-BSTQyLlJ.cjs +0 -2
  111. package/dist/ImageLoader-BSTQyLlJ.cjs.map +0 -1
  112. package/dist/ImageLoader-CQAyutzR.js +0 -36
  113. package/dist/ImageLoader-CQAyutzR.js.map +0 -1
  114. package/dist/ImageviewerWidget-B0HJk4Tf.cjs +0 -2
  115. package/dist/ImageviewerWidget-B0HJk4Tf.cjs.map +0 -1
  116. package/dist/ImageviewerWidget-CDeYB2QG.js +0 -37
  117. package/dist/ImageviewerWidget-CDeYB2QG.js.map +0 -1
  118. package/dist/InterfacesTab-D-VIrHHf.js +0 -92
  119. package/dist/InterfacesTab-D-VIrHHf.js.map +0 -1
  120. package/dist/InterfacesTab-NTrgd1dN.cjs +0 -2
  121. package/dist/InterfacesTab-NTrgd1dN.cjs.map +0 -1
  122. package/dist/LabelWidget-B1-se7_B.cjs +0 -2
  123. package/dist/LabelWidget-B1-se7_B.cjs.map +0 -1
  124. package/dist/LabelWidget-C5_cj8pA.js +0 -48
  125. package/dist/LabelWidget-C5_cj8pA.js.map +0 -1
  126. package/dist/LabelledWidget-3aDkVYzF.cjs +0 -2
  127. package/dist/LabelledWidget-3aDkVYzF.cjs.map +0 -1
  128. package/dist/LabelledWidget-DWOPmkyP.js +0 -42
  129. package/dist/LabelledWidget-DWOPmkyP.js.map +0 -1
  130. package/dist/LabelprogressbarWidget-DFPXYOTH.js +0 -43
  131. package/dist/LabelprogressbarWidget-DFPXYOTH.js.map +0 -1
  132. package/dist/LabelprogressbarWidget-Dsiw-uBJ.cjs +0 -2
  133. package/dist/LabelprogressbarWidget-Dsiw-uBJ.cjs.map +0 -1
  134. package/dist/LabelsparklineWidget-DG_Q8WOZ.js +0 -44
  135. package/dist/LabelsparklineWidget-DG_Q8WOZ.js.map +0 -1
  136. package/dist/LabelsparklineWidget-w6pdf_eu.cjs +0 -2
  137. package/dist/LabelsparklineWidget-w6pdf_eu.cjs.map +0 -1
  138. package/dist/LabelvalueWidget-CRtYLZfm.cjs +0 -2
  139. package/dist/LabelvalueWidget-CRtYLZfm.cjs.map +0 -1
  140. package/dist/LabelvalueWidget-CxL0zxQr.js +0 -58
  141. package/dist/LabelvalueWidget-CxL0zxQr.js.map +0 -1
  142. package/dist/LabelvaluedescWidget-CF9py8m9.cjs +0 -2
  143. package/dist/LabelvaluedescWidget-CF9py8m9.cjs.map +0 -1
  144. package/dist/LabelvaluedescWidget-ClWPSOeN.js +0 -59
  145. package/dist/LabelvaluedescWidget-ClWPSOeN.js.map +0 -1
  146. package/dist/LabelvaluelimitsbarWidget-DFUH0HNe.cjs +0 -2
  147. package/dist/LabelvaluelimitsbarWidget-DFUH0HNe.cjs.map +0 -1
  148. package/dist/LabelvaluelimitsbarWidget-DUyZ7KXT.js +0 -55
  149. package/dist/LabelvaluelimitsbarWidget-DUyZ7KXT.js.map +0 -1
  150. package/dist/LabelvaluelimitscolumnWidget-DdCNjIEm.js +0 -45
  151. package/dist/LabelvaluelimitscolumnWidget-DdCNjIEm.js.map +0 -1
  152. package/dist/LabelvaluelimitscolumnWidget-k0hVnMUV.cjs +0 -2
  153. package/dist/LabelvaluelimitscolumnWidget-k0hVnMUV.cjs.map +0 -1
  154. package/dist/LabelvaluerangebarWidget-CRqMQa_x.cjs +0 -2
  155. package/dist/LabelvaluerangebarWidget-CRqMQa_x.cjs.map +0 -1
  156. package/dist/LabelvaluerangebarWidget-DGJv44i4.js +0 -79
  157. package/dist/LabelvaluerangebarWidget-DGJv44i4.js.map +0 -1
  158. package/dist/Layout-C1uMy2Sd.js +0 -14
  159. package/dist/Layout-C1uMy2Sd.js.map +0 -1
  160. package/dist/Layout-C2VWUn33.cjs +0 -2
  161. package/dist/Layout-C2VWUn33.cjs.map +0 -1
  162. package/dist/LedWidget-C8LEesIO.js +0 -69
  163. package/dist/LedWidget-C8LEesIO.js.map +0 -1
  164. package/dist/LedWidget-tnHC12fA.cjs +0 -2
  165. package/dist/LedWidget-tnHC12fA.cjs.map +0 -1
  166. package/dist/LimitsbarWidget-DSJvR91d.cjs +0 -2
  167. package/dist/LimitsbarWidget-DSJvR91d.cjs.map +0 -1
  168. package/dist/LimitsbarWidget-DV94AaXX.js +0 -52
  169. package/dist/LimitsbarWidget-DV94AaXX.js.map +0 -1
  170. package/dist/LimitscolorWidget-BWfffXvj.cjs +0 -2
  171. package/dist/LimitscolorWidget-BWfffXvj.cjs.map +0 -1
  172. package/dist/LimitscolorWidget-DT_WG8Jb.js +0 -59
  173. package/dist/LimitscolorWidget-DT_WG8Jb.js.map +0 -1
  174. package/dist/LimitscolumnWidget-Ci2DqqsC.cjs +0 -2
  175. package/dist/LimitscolumnWidget-Ci2DqqsC.cjs.map +0 -1
  176. package/dist/LimitscolumnWidget-yGBCsGuc.js +0 -49
  177. package/dist/LimitscolumnWidget-yGBCsGuc.js.map +0 -1
  178. package/dist/LinegraphWidget-BG43_kkA.js +0 -38
  179. package/dist/LinegraphWidget-BG43_kkA.js.map +0 -1
  180. package/dist/LinegraphWidget-ByTUdpDj.cjs +0 -2
  181. package/dist/LinegraphWidget-ByTUdpDj.cjs.map +0 -1
  182. package/dist/MatrixbycolumnsWidget-Cfp2S5QC.js +0 -56
  183. package/dist/MatrixbycolumnsWidget-Cfp2S5QC.js.map +0 -1
  184. package/dist/MatrixbycolumnsWidget-GHZ6cCcr.cjs +0 -2
  185. package/dist/MatrixbycolumnsWidget-GHZ6cCcr.cjs.map +0 -1
  186. package/dist/MicroservicesTab-BuIftbHc.js +0 -159
  187. package/dist/MicroservicesTab-BuIftbHc.js.map +0 -1
  188. package/dist/MicroservicesTab-CdCozCVI.cjs +0 -2
  189. package/dist/MicroservicesTab-CdCozCVI.cjs.map +0 -1
  190. package/dist/OutputDialog-CjFsDUYh.js +0 -244
  191. package/dist/OutputDialog-CjFsDUYh.js.map +0 -1
  192. package/dist/OutputDialog-Dkn9Fli9.cjs +0 -2
  193. package/dist/OutputDialog-Dkn9Fli9.cjs.map +0 -1
  194. package/dist/PackagesTab-BwTViRcm.js +0 -339
  195. package/dist/PackagesTab-BwTViRcm.js.map +0 -1
  196. package/dist/PackagesTab-DPaJ_JbE.cjs +0 -2
  197. package/dist/PackagesTab-DPaJ_JbE.cjs.map +0 -1
  198. package/dist/PluginsTab-C7GizpA1.cjs +0 -6
  199. package/dist/PluginsTab-C7GizpA1.cjs.map +0 -1
  200. package/dist/PluginsTab-fld_-DT-.js +0 -598
  201. package/dist/PluginsTab-fld_-DT-.js.map +0 -1
  202. package/dist/ProgressbarWidget-BSPuQNU_.js +0 -46
  203. package/dist/ProgressbarWidget-BSPuQNU_.js.map +0 -1
  204. package/dist/ProgressbarWidget-D1wbbnow.cjs +0 -2
  205. package/dist/ProgressbarWidget-D1wbbnow.cjs.map +0 -1
  206. package/dist/RadiobuttonWidget-B4rrjT9j.js +0 -34
  207. package/dist/RadiobuttonWidget-B4rrjT9j.js.map +0 -1
  208. package/dist/RadiobuttonWidget-Bhcj3WY5.cjs +0 -2
  209. package/dist/RadiobuttonWidget-Bhcj3WY5.cjs.map +0 -1
  210. package/dist/RadiogroupWidget-CQrEv3Qs.cjs +0 -2
  211. package/dist/RadiogroupWidget-CQrEv3Qs.cjs.map +0 -1
  212. package/dist/RadiogroupWidget-VncDKxiZ.js +0 -48
  213. package/dist/RadiogroupWidget-VncDKxiZ.js.map +0 -1
  214. package/dist/RangebarWidget-Btu0oj_O.js +0 -67
  215. package/dist/RangebarWidget-Btu0oj_O.js.map +0 -1
  216. package/dist/RangebarWidget-CKmh0GEh.cjs +0 -2
  217. package/dist/RangebarWidget-CKmh0GEh.cjs.map +0 -1
  218. package/dist/RedisTab-BPFEQDx-.js +0 -135
  219. package/dist/RedisTab-BPFEQDx-.js.map +0 -1
  220. package/dist/RedisTab-DpbDcxH5.cjs +0 -2
  221. package/dist/RedisTab-DpbDcxH5.cjs.map +0 -1
  222. package/dist/RollupWidget-Bh-Gpi5l.cjs +0 -2
  223. package/dist/RollupWidget-Bh-Gpi5l.cjs.map +0 -1
  224. package/dist/RollupWidget-CIp8Akqq.js +0 -81
  225. package/dist/RollupWidget-CIp8Akqq.js.map +0 -1
  226. package/dist/RoutersTab-CTpmfcgq.js +0 -94
  227. package/dist/RoutersTab-CTpmfcgq.js.map +0 -1
  228. package/dist/RoutersTab-DLQ-_xsb.cjs +0 -2
  229. package/dist/RoutersTab-DLQ-_xsb.cjs.map +0 -1
  230. package/dist/ScriptChooser-Cku5i9C6.cjs +0 -2
  231. package/dist/ScriptChooser-Cku5i9C6.cjs.map +0 -1
  232. package/dist/ScriptChooser-Cx985GFr.js +0 -199
  233. package/dist/ScriptChooser-Cx985GFr.js.map +0 -1
  234. package/dist/ScrollwindowWidget-BIYEL78X.js +0 -45
  235. package/dist/ScrollwindowWidget-BIYEL78X.js.map +0 -1
  236. package/dist/ScrollwindowWidget-DWBLVHz1.cjs +0 -2
  237. package/dist/ScrollwindowWidget-DWBLVHz1.cjs.map +0 -1
  238. package/dist/SecretsTab-CV5WYD3N.cjs +0 -2
  239. package/dist/SecretsTab-CV5WYD3N.cjs.map +0 -1
  240. package/dist/SecretsTab-DfBaqZw2.js +0 -202
  241. package/dist/SecretsTab-DfBaqZw2.js.map +0 -1
  242. package/dist/SettingsTab-B1DNmvM5.js +0 -1282
  243. package/dist/SettingsTab-B1DNmvM5.js.map +0 -1
  244. package/dist/SettingsTab-BKD5vVwv.cjs +0 -2
  245. package/dist/SettingsTab-BKD5vVwv.cjs.map +0 -1
  246. package/dist/SignalWidget-f_2K-phy.js +0 -61
  247. package/dist/SignalWidget-f_2K-phy.js.map +0 -1
  248. package/dist/SignalWidget-vsx411XW.cjs +0 -2
  249. package/dist/SignalWidget-vsx411XW.cjs.map +0 -1
  250. package/dist/SimpleTextDialog-BLlux8b4.js +0 -108
  251. package/dist/SimpleTextDialog-BLlux8b4.js.map +0 -1
  252. package/dist/SimpleTextDialog-D2R3WQXD.cjs +0 -2
  253. package/dist/SimpleTextDialog-D2R3WQXD.cjs.map +0 -1
  254. package/dist/SpacerWidget-DGo6ZjYn.cjs +0 -2
  255. package/dist/SpacerWidget-DGo6ZjYn.cjs.map +0 -1
  256. package/dist/SpacerWidget-YhsM7srQ.js +0 -19
  257. package/dist/SpacerWidget-YhsM7srQ.js.map +0 -1
  258. package/dist/SparklineWidget-Bkx8nwqY.cjs +0 -2
  259. package/dist/SparklineWidget-Bkx8nwqY.cjs.map +0 -1
  260. package/dist/SparklineWidget-CuGChXzf.js +0 -47
  261. package/dist/SparklineWidget-CuGChXzf.js.map +0 -1
  262. package/dist/TabbookWidget-BlDW3n54.js +0 -66
  263. package/dist/TabbookWidget-BlDW3n54.js.map +0 -1
  264. package/dist/TabbookWidget-CDUj7RHp.cjs +0 -2
  265. package/dist/TabbookWidget-CDUj7RHp.cjs.map +0 -1
  266. package/dist/TargetsTab-B2Jw5Kec.js +0 -128
  267. package/dist/TargetsTab-B2Jw5Kec.js.map +0 -1
  268. package/dist/TargetsTab-fON6-iJc.cjs +0 -2
  269. package/dist/TargetsTab-fON6-iJc.cjs.map +0 -1
  270. package/dist/TextBoxDialog-CZ3h4LP-.js +0 -110
  271. package/dist/TextBoxDialog-CZ3h4LP-.js.map +0 -1
  272. package/dist/TextBoxDialog-DvUf3Cak.cjs +0 -2
  273. package/dist/TextBoxDialog-DvUf3Cak.cjs.map +0 -1
  274. package/dist/TextboxWidget-CWXCNL8K.js +0 -92
  275. package/dist/TextboxWidget-CWXCNL8K.js.map +0 -1
  276. package/dist/TextboxWidget-LhNzbjQI.cjs +0 -2
  277. package/dist/TextboxWidget-LhNzbjQI.cjs.map +0 -1
  278. package/dist/TextfieldWidget-AbalSObh.cjs +0 -2
  279. package/dist/TextfieldWidget-AbalSObh.cjs.map +0 -1
  280. package/dist/TextfieldWidget-CRVUO3wk.js +0 -37
  281. package/dist/TextfieldWidget-CRVUO3wk.js.map +0 -1
  282. package/dist/TimeWidget-BUMtokM-.cjs +0 -2
  283. package/dist/TimeWidget-BUMtokM-.cjs.map +0 -1
  284. package/dist/TimeWidget-CDo0yWlB.js +0 -40
  285. package/dist/TimeWidget-CDo0yWlB.js.map +0 -1
  286. package/dist/TitleWidget-Cvjndegg.js +0 -26
  287. package/dist/TitleWidget-Cvjndegg.js.map +0 -1
  288. package/dist/TitleWidget-DWieiIfq.cjs +0 -2
  289. package/dist/TitleWidget-DWieiIfq.cjs.map +0 -1
  290. package/dist/ToolsTab-Bu4syVrX.js +0 -1519
  291. package/dist/ToolsTab-Bu4syVrX.js.map +0 -1
  292. package/dist/ToolsTab-rS3KG7M5.cjs +0 -7
  293. package/dist/ToolsTab-rS3KG7M5.cjs.map +0 -1
  294. package/dist/TopBar-B1dOQ1W9.js +0 -253
  295. package/dist/TopBar-B1dOQ1W9.js.map +0 -1
  296. package/dist/TopBar-_j4ndwSi.cjs +0 -2
  297. package/dist/TopBar-_j4ndwSi.cjs.map +0 -1
  298. package/dist/UpgradeToEnterpriseDialog--cLHsvir.cjs +0 -2
  299. package/dist/UpgradeToEnterpriseDialog--cLHsvir.cjs.map +0 -1
  300. package/dist/UpgradeToEnterpriseDialog-CY9g4hzD.js +0 -95
  301. package/dist/UpgradeToEnterpriseDialog-CY9g4hzD.js.map +0 -1
  302. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-BrapmXxi.js +0 -25215
  303. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-BrapmXxi.js.map +0 -1
  304. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DdL5xG80.cjs +0 -1416
  305. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DdL5xG80.cjs.map +0 -1
  306. package/dist/VWidget-BRkvqAVS.cjs +0 -2
  307. package/dist/VWidget-BRkvqAVS.cjs.map +0 -1
  308. package/dist/VWidget-D9Wk0N9r.js +0 -323
  309. package/dist/VWidget-D9Wk0N9r.js.map +0 -1
  310. package/dist/ValueWidget-D3EJcN4C.js +0 -115
  311. package/dist/ValueWidget-D3EJcN4C.js.map +0 -1
  312. package/dist/ValueWidget-DxY7IZvc.cjs +0 -2
  313. package/dist/ValueWidget-DxY7IZvc.cjs.map +0 -1
  314. package/dist/ValuelimitsbarWidget-C5revcun.js +0 -39
  315. package/dist/ValuelimitsbarWidget-C5revcun.js.map +0 -1
  316. package/dist/ValuelimitsbarWidget-Dk6L7fl3.cjs +0 -2
  317. package/dist/ValuelimitsbarWidget-Dk6L7fl3.cjs.map +0 -1
  318. package/dist/ValuelimitscolumnWidget-BBEGOlON.js +0 -38
  319. package/dist/ValuelimitscolumnWidget-BBEGOlON.js.map +0 -1
  320. package/dist/ValuelimitscolumnWidget-YD_Xd3tD.cjs +0 -2
  321. package/dist/ValuelimitscolumnWidget-YD_Xd3tD.cjs.map +0 -1
  322. package/dist/ValuerangebarWidget-BtoenJky.cjs +0 -2
  323. package/dist/ValuerangebarWidget-BtoenJky.cjs.map +0 -1
  324. package/dist/ValuerangebarWidget-D70Xk8rM.js +0 -65
  325. package/dist/ValuerangebarWidget-D70Xk8rM.js.map +0 -1
  326. package/dist/VerticalWidget-Dw11Ey1R.cjs +0 -2
  327. package/dist/VerticalWidget-Dw11Ey1R.cjs.map +0 -1
  328. package/dist/VerticalWidget-RIOu-NI3.js +0 -41
  329. package/dist/VerticalWidget-RIOu-NI3.js.map +0 -1
  330. package/dist/VerticalboxWidget-BUjeAxtO.js +0 -37
  331. package/dist/VerticalboxWidget-BUjeAxtO.js.map +0 -1
  332. package/dist/VerticalboxWidget-DT-OCuyc.cjs +0 -2
  333. package/dist/VerticalboxWidget-DT-OCuyc.cjs.map +0 -1
  334. package/dist/Widget-C-EiCtmV.cjs +0 -2
  335. package/dist/Widget-C-EiCtmV.cjs.map +0 -1
  336. package/dist/Widget-C5V53T-a.js +0 -197
  337. package/dist/Widget-C5V53T-a.js.map +0 -1
  338. package/dist/addMonths-Be4oiWXO.js +0 -19
  339. package/dist/addMonths-Be4oiWXO.js.map +0 -1
  340. package/dist/addMonths-foItT0GW.cjs +0 -2
  341. package/dist/addMonths-foItT0GW.cjs.map +0 -1
  342. package/dist/axios-CXDYiOMX.js +0 -1705
  343. package/dist/axios-CXDYiOMX.js.map +0 -1
  344. package/dist/axios-tuVKNgv9.cjs +0 -7
  345. package/dist/axios-tuVKNgv9.cjs.map +0 -1
  346. package/dist/components.cjs +0 -7
  347. package/dist/components.cjs.map +0 -1
  348. package/dist/components.js +0 -2936
  349. package/dist/components.js.map +0 -1
  350. package/dist/fileIcon-BduOQcTc.cjs +0 -2
  351. package/dist/fileIcon-BduOQcTc.cjs.map +0 -1
  352. package/dist/fileIcon-DqRHb1_Z.js +0 -22
  353. package/dist/fileIcon-DqRHb1_Z.js.map +0 -1
  354. package/dist/format-BDZ4AOJt.cjs +0 -2
  355. package/dist/format-BDZ4AOJt.cjs.map +0 -1
  356. package/dist/format-Da42caYw.js +0 -1229
  357. package/dist/format-Da42caYw.js.map +0 -1
  358. package/dist/icons/status-dark.png +0 -0
  359. package/dist/icons/status-dark.xcf +0 -0
  360. package/dist/icons/status-light.png +0 -0
  361. package/dist/icons.cjs +0 -2
  362. package/dist/icons.cjs.map +0 -1
  363. package/dist/icons.js +0 -157
  364. package/dist/icons.js.map +0 -1
  365. package/dist/parse-BO9ihK1v.cjs +0 -2
  366. package/dist/parse-BO9ihK1v.cjs.map +0 -1
  367. package/dist/parse-dDr1Btat.js +0 -1556
  368. package/dist/parse-dDr1Btat.js.map +0 -1
  369. package/dist/plugins.cjs +0 -9
  370. package/dist/plugins.cjs.map +0 -1
  371. package/dist/plugins.js +0 -771
  372. package/dist/plugins.js.map +0 -1
  373. package/dist/style.css +0 -1
  374. package/dist/timeFilters-CN3Tdo2Z.js +0 -607
  375. package/dist/timeFilters-CN3Tdo2Z.js.map +0 -1
  376. package/dist/timeFilters-DwWhNG4a.cjs +0 -2
  377. package/dist/timeFilters-DwWhNG4a.cjs.map +0 -1
  378. package/dist/tools/admin.cjs +0 -13
  379. package/dist/tools/admin.cjs.map +0 -1
  380. package/dist/tools/admin.js +0 -1909
  381. package/dist/tools/admin.js.map +0 -1
  382. package/dist/tools/base.cjs +0 -2
  383. package/dist/tools/base.cjs.map +0 -1
  384. package/dist/tools/base.js +0 -1580
  385. package/dist/tools/base.js.map +0 -1
  386. package/dist/tools/calendar.cjs +0 -2
  387. package/dist/tools/calendar.cjs.map +0 -1
  388. package/dist/tools/calendar.js +0 -1591
  389. package/dist/tools/calendar.js.map +0 -1
  390. package/dist/util.cjs +0 -2
  391. package/dist/util.cjs.map +0 -1
  392. package/dist/util.js +0 -9
  393. package/dist/util.js.map +0 -1
  394. package/dist/widgets.cjs +0 -2
  395. package/dist/widgets.cjs.map +0 -1
  396. package/dist/widgets.js +0 -130
  397. package/dist/widgets.js.map +0 -1
@@ -1,2936 +0,0 @@
1
- import { A as it, O as st } from "./OutputDialog-CjFsDUYh.js";
2
- import { n as E, i as U, a as F, r as H, W as X, l as Y, s as j } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-BrapmXxi.js";
3
- import { D as nt, b as at } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-BrapmXxi.js";
4
- import { resolveComponent as o, openBlock as w, createBlock as x, withKeys as z, withCtx as n, createVNode as i, createElementVNode as d, withModifiers as O, withDirectives as R, toDisplayString as N, vShow as L, createTextVNode as _, normalizeProps as V, guardReactiveProps as D, createElementBlock as M, Fragment as q, renderList as J, createCommentVNode as S, normalizeStyle as G } from "vue";
5
- import { _ as A } from "./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js";
6
- import { C as rt } from "./CriticalCmdDialog-ChYR9_7n.js";
7
- import { D as ct } from "./DetailsDialog-ScKx0N2e.js";
8
- import { E as mt, S as ht } from "./ScriptChooser-Cx985GFr.js";
9
- import { f as Q } from "./fileIcon-DqRHb1_Z.js";
10
- import { G as pt, a as gt, b as vt } from "./Graph-D2frd7mZ.js";
11
- import { AstroStatusColors as W, UnknownToAstroStatus as K } from "./icons.js";
12
- import { T as $ } from "./timeFilters-CN3Tdo2Z.js";
13
- import { f as ee } from "./format-Da42caYw.js";
14
- import { S as yt } from "./SimpleTextDialog-BLlux8b4.js";
15
- import { T as wt } from "./TextBoxDialog-CZ3h4LP-.js";
16
- import { T as xt } from "./TopBar-B1dOQ1W9.js";
17
- import { U as Ct } from "./UpgradeToEnterpriseDialog-CY9g4hzD.js";
18
- class te {
19
- constructor() {
20
- E.get("/openc3-api/autocomplete/data/screen").then((e) => {
21
- this.autocompleteData = e.data;
22
- }), this.api = new U();
23
- }
24
- async getCompletions(e, s, r, l, a) {
25
- var u = s.getLine(r.row), m = u.slice(0, r.column), f = m.trimStart().split(/ (?![^<]*>)/), p = this.autocompleteData;
26
- f.length > 1 && (p = p.find((c) => c.caption === f[0]));
27
- var g = {}, h = !0;
28
- if (p && p.params) {
29
- p.params.length == f.length - 1 && (h = !1);
30
- var k = p.params[f.length - 2];
31
- if (k["Target name"]) {
32
- var C = await this.api.get_target_names();
33
- p = C.reduce((c, b) => (c[b] = 1, c), {});
34
- } else if (k["Packet name"]) {
35
- var T = f[f.length - 2], y = await this.api.get_all_tlm(T);
36
- p = y.reduce(
37
- (c, b) => (c[b.packet_name] = b.description, c),
38
- {}
39
- );
40
- } else if (k["Item name"]) {
41
- var T = f[f.length - 3], v = f[f.length - 2], v = await this.api.get_tlm(T, v);
42
- p = v.items.reduce(
43
- (b, P) => (b[P.name] = P.description, b),
44
- {}
45
- );
46
- } else
47
- p = k;
48
- g = Object.keys(p || {}).map((c) => {
49
- var b = {
50
- value: c + (h ? " " : ""),
51
- // We want the autoComplete to continue right up
52
- // to the last parameter
53
- command: h && "startAutocomplete"
54
- };
55
- return typeof p[c] == "string" && (b.meta = p[c]), b;
56
- });
57
- } else
58
- g = p;
59
- a(null, g);
60
- }
61
- }
62
- const Ge = {
63
- data: {
64
- configKey: "",
65
- // Applications can set to avoid persisting default config
66
- // Useful when loading and setting existing config
67
- dontSaveDefaultConfig: !1
68
- },
69
- methods: {
70
- loadDefaultConfig: function() {
71
- return localStorage[`${this.configKey}__default`] ? JSON.parse(localStorage[`${this.configKey}__default`]) : {};
72
- },
73
- saveDefaultConfig: function(t) {
74
- this.dontSaveDefaultConfig !== !0 && (localStorage[`${this.configKey}__default`] = JSON.stringify(t));
75
- },
76
- openConfigBase: function(t, e = !1, s = null) {
77
- new U().load_config(this.configKey, t).then((r) => {
78
- r ? (this.$notify.normal({
79
- title: "Loading configuration",
80
- body: t
81
- }), s && s(JSON.parse(r)), e || this.$route.fullPath.includes(t) || this.$router.push({
82
- query: {
83
- config: t
84
- }
85
- })) : this.$notify.caution({
86
- title: "Unknown configuration",
87
- body: t
88
- });
89
- }).catch((r) => {
90
- r && this.$notify.serious({
91
- title: `Error opening configuration: ${t}`,
92
- body: r
93
- });
94
- });
95
- },
96
- saveConfigBase: function(t, e) {
97
- new U().save_config(this.configKey, t, JSON.stringify(e)).then(() => {
98
- this.$notify.normal({
99
- title: "Saved configuration",
100
- body: t
101
- });
102
- }).catch((s) => {
103
- s && this.$notify.serious({
104
- title: `Error saving configuration: ${t}`,
105
- body: s
106
- });
107
- });
108
- },
109
- resetConfigBase: function() {
110
- localStorage.removeItem(`${this.configKey}__default`);
111
- const t = { ...this.$route.query };
112
- delete t.config, this.$router.replace({ query: t });
113
- }
114
- }
115
- }, ie = {
116
- props: {
117
- configKey: String,
118
- modelValue: Boolean
119
- // modelValue is the default prop when using v-model
120
- },
121
- data() {
122
- return {
123
- configs: [],
124
- headers: [
125
- {
126
- title: "Configuration",
127
- value: "config"
128
- },
129
- {
130
- title: "Actions",
131
- value: "actions",
132
- align: "end",
133
- sortable: !1
134
- }
135
- ],
136
- search: null,
137
- selectedRows: []
138
- };
139
- },
140
- computed: {
141
- selectedItem: function() {
142
- return this.selectedRows.length ? this.configs.find(
143
- (t) => t.configId === this.selectedRows[0]
144
- ) : null;
145
- },
146
- error: function() {
147
- return this.selectedItem === "" || this.selectedItem === null ? "Must select a config" : null;
148
- },
149
- show: {
150
- get() {
151
- return this.modelValue;
152
- },
153
- set(t) {
154
- this.$emit("update:modelValue", t);
155
- }
156
- }
157
- },
158
- mounted() {
159
- let t = -1;
160
- new U().list_configs(this.configKey).then((e) => {
161
- this.configs = e.map((s) => (t += 1, { configId: t, config: s }));
162
- }).catch((e) => {
163
- this.$emit("warning", `Failed to connect to OpenC3. ${e}`);
164
- });
165
- },
166
- methods: {
167
- selectRow: function(t) {
168
- this.selectedRows = [t.item.configId];
169
- },
170
- success: function() {
171
- this.selectedItem && (this.$emit("success", this.selectedItem.config), this.show = !1, this.search = null, this.selectedRows = []);
172
- },
173
- cancel: function() {
174
- this.show = !1, this.search = null, this.selectedRows = [];
175
- },
176
- deleteConfig: function(t) {
177
- this.$dialog.confirm(`Are you sure you want to delete: ${t.config}`, {
178
- okText: "Delete",
179
- cancelText: "Cancel"
180
- }).then((e) => {
181
- var s;
182
- ((s = this.selectedItem) == null ? void 0 : s.config) === t.config && (this.selectedRows = []), this.configs.splice(this.configs.indexOf(t), 1), new U().delete_config(this.configKey, t.config);
183
- }).catch((e) => {
184
- e !== !0 && this.$emit(
185
- "warning",
186
- `Failed to delete config ${t.config} Error: ${e}`
187
- );
188
- });
189
- }
190
- }
191
- }, se = { class: "mt-4 pa-3" }, le = ["textContent"];
192
- function ne(t, e, s, r, l, a) {
193
- const u = o("v-spacer"), m = o("v-toolbar"), f = o("v-text-field"), p = o("v-row"), g = o("v-btn"), h = o("v-data-table"), k = o("v-card-text"), C = o("v-card-actions"), T = o("v-card"), y = o("v-dialog");
194
- return w(), x(y, {
195
- modelValue: a.show,
196
- "onUpdate:modelValue": e[4] || (e[4] = (v) => a.show = v),
197
- onKeydown: z(a.cancel, ["esc"]),
198
- width: "600"
199
- }, {
200
- default: n(() => [
201
- i(T, null, {
202
- default: n(() => [
203
- d("form", {
204
- onSubmit: e[3] || (e[3] = O((...v) => a.success && a.success(...v), ["prevent"]))
205
- }, [
206
- i(m, { height: "24" }, {
207
- default: n(() => [
208
- i(u),
209
- e[5] || (e[5] = d("span", null, "Open Configuration", -1)),
210
- i(u)
211
- ]),
212
- _: 1
213
- }),
214
- i(k, null, {
215
- default: n(() => [
216
- d("div", se, [
217
- i(p, { dense: "" }, {
218
- default: n(() => [
219
- i(f, {
220
- label: "search",
221
- modelValue: l.search,
222
- "onUpdate:modelValue": e[0] || (e[0] = (v) => l.search = v),
223
- type: "text",
224
- "prepend-inner-icon": "mdi-magnify",
225
- clearable: "",
226
- variant: "outlined",
227
- density: "compact",
228
- "clear-icon": "mdi-close-circle-outline",
229
- autofocus: "",
230
- "single-line": "",
231
- "hide-details": "",
232
- "data-test": "search"
233
- }, null, 8, ["modelValue"])
234
- ]),
235
- _: 1
236
- }),
237
- i(h, {
238
- modelValue: l.selectedRows,
239
- "onUpdate:modelValue": e[1] || (e[1] = (v) => l.selectedRows = v),
240
- "show-select": "",
241
- "select-strategy": "single",
242
- "item-value": "configId",
243
- search: l.search,
244
- headers: l.headers,
245
- items: l.configs,
246
- "items-per-page": 5,
247
- "items-per-page-options": [5],
248
- "onClick:row": e[2] || (e[2] = (v, c) => a.selectRow(c))
249
- }, {
250
- "item.actions": n(({ item: v }) => [
251
- i(g, {
252
- class: "mt-1",
253
- icon: "mdi-delete",
254
- variant: "text",
255
- "data-test": "item-delete",
256
- onClick: (c) => a.deleteConfig(v)
257
- }, null, 8, ["onClick"])
258
- ]),
259
- _: 1
260
- }, 8, ["modelValue", "search", "headers", "items"]),
261
- i(p, { dense: "" }, {
262
- default: n(() => [
263
- R(d("span", {
264
- class: "ma-2 text-red",
265
- textContent: N(a.error)
266
- }, null, 8, le), [
267
- [L, a.error]
268
- ])
269
- ]),
270
- _: 1
271
- })
272
- ])
273
- ]),
274
- _: 1
275
- }),
276
- i(C, { class: "px-2" }, {
277
- default: n(() => [
278
- i(u),
279
- i(g, {
280
- variant: "outlined",
281
- onClick: a.cancel,
282
- "data-test": "open-config-cancel-btn"
283
- }, {
284
- default: n(() => e[6] || (e[6] = [
285
- _(" Cancel ")
286
- ])),
287
- _: 1
288
- }, 8, ["onClick"]),
289
- i(g, {
290
- variant: "flat",
291
- onClick: O(a.success, ["prevent"]),
292
- type: "submit",
293
- "data-test": "open-config-submit-btn",
294
- disabled: !!a.error
295
- }, {
296
- default: n(() => e[7] || (e[7] = [
297
- _(" Ok ")
298
- ])),
299
- _: 1
300
- }, 8, ["onClick", "disabled"])
301
- ]),
302
- _: 1
303
- })
304
- ], 32)
305
- ]),
306
- _: 1
307
- })
308
- ]),
309
- _: 1
310
- }, 8, ["modelValue", "onKeydown"]);
311
- }
312
- const Ze = /* @__PURE__ */ A(ie, [["render", ne]]), ae = {
313
- props: {
314
- configKey: String,
315
- modelValue: Boolean
316
- // modelValue is the default prop when using v-model
317
- },
318
- data() {
319
- return {
320
- configName: "",
321
- configs: [],
322
- headers: [
323
- {
324
- title: "Configuration",
325
- value: "config"
326
- },
327
- {
328
- title: "Actions",
329
- value: "actions",
330
- align: "end",
331
- sortable: !1
332
- }
333
- ],
334
- search: null,
335
- selectedRows: []
336
- };
337
- },
338
- computed: {
339
- selectedItem: function() {
340
- return this.selectedRows.length ? this.configs.find(
341
- (t) => t.configId === this.selectedRows[0]
342
- ) : null;
343
- },
344
- error: function() {
345
- return this.configName ? null : "Config must have a name";
346
- },
347
- show: {
348
- get() {
349
- return this.modelValue;
350
- },
351
- set(t) {
352
- this.$emit("update:modelValue", t);
353
- }
354
- }
355
- },
356
- mounted() {
357
- let t = -1;
358
- new U().list_configs(this.configKey).then((e) => {
359
- this.configs = e.map((s) => (t += 1, { configId: t, config: s }));
360
- }).catch((e) => {
361
- this.$emit("warning", `Failed to connect to OpenC3. ${e}`);
362
- });
363
- },
364
- methods: {
365
- selectRow: function(t) {
366
- this.selectedRows = [t.item.configId];
367
- },
368
- success: function() {
369
- this.$emit("success", this.configName), this.show = !1, this.search = null, this.selectedRows = [], this.configName = "";
370
- },
371
- cancel: function() {
372
- this.show = !1, this.search = null, this.selectedRows = [], this.configName = "";
373
- },
374
- deleteConfig: function(t) {
375
- this.$dialog.confirm(`Are you sure you want to delete: ${t.config}`, {
376
- okText: "Delete",
377
- cancelText: "Cancel"
378
- }).then((e) => {
379
- var s;
380
- ((s = this.selectedItem) == null ? void 0 : s.config) === t.config && (this.selectedRows = [], this.configName = ""), this.configs.splice(this.configs.indexOf(t), 1), new U().delete_config(this.configKey, t.config);
381
- }).catch((e) => {
382
- e !== !0 && this.$emit(
383
- "warning",
384
- `Failed to delete config ${t.config} Error: ${e}`
385
- );
386
- });
387
- }
388
- },
389
- watch: {
390
- selectedItem: function(t) {
391
- t && (this.configName = t.config);
392
- }
393
- }
394
- }, oe = { class: "mt-4 pa-3" }, re = ["textContent"];
395
- function de(t, e, s, r, l, a) {
396
- const u = o("v-spacer"), m = o("v-toolbar"), f = o("v-text-field"), p = o("v-row"), g = o("v-btn"), h = o("v-data-table"), k = o("v-card-text"), C = o("v-card-actions"), T = o("v-card"), y = o("v-dialog");
397
- return w(), x(y, {
398
- modelValue: a.show,
399
- "onUpdate:modelValue": e[5] || (e[5] = (v) => a.show = v),
400
- onKeydown: z(a.cancel, ["esc"]),
401
- width: "600"
402
- }, {
403
- default: n(() => [
404
- i(T, null, {
405
- default: n(() => [
406
- d("form", {
407
- onSubmit: e[4] || (e[4] = O((...v) => a.success && a.success(...v), ["prevent"]))
408
- }, [
409
- i(m, { height: "24" }, {
410
- default: n(() => [
411
- i(u),
412
- e[6] || (e[6] = d("span", null, "Save Configuration", -1)),
413
- i(u)
414
- ]),
415
- _: 1
416
- }),
417
- i(k, null, {
418
- default: n(() => [
419
- d("div", oe, [
420
- i(p, { dense: "" }, {
421
- default: n(() => [
422
- i(f, {
423
- label: "search",
424
- modelValue: l.search,
425
- "onUpdate:modelValue": e[0] || (e[0] = (v) => l.search = v),
426
- type: "text",
427
- "prepend-inner-icon": "mdi-magnify",
428
- clearable: "",
429
- variant: "outlined",
430
- density: "compact",
431
- "clear-icon": "mdi-close-circle-outline",
432
- "single-line": "",
433
- "hide-details": "",
434
- "data-test": "search"
435
- }, null, 8, ["modelValue"])
436
- ]),
437
- _: 1
438
- }),
439
- i(h, {
440
- modelValue: l.selectedRows,
441
- "onUpdate:modelValue": e[1] || (e[1] = (v) => l.selectedRows = v),
442
- "show-select": "",
443
- "select-strategy": "single",
444
- "item-value": "configId",
445
- search: l.search,
446
- headers: l.headers,
447
- items: l.configs,
448
- "items-per-page": 5,
449
- "items-per-page-options": [5],
450
- "onClick:row": e[2] || (e[2] = (v, c) => a.selectRow(c))
451
- }, {
452
- "item.actions": n(({ item: v }) => [
453
- i(g, {
454
- class: "mt-1",
455
- icon: "mdi-delete",
456
- variant: "text",
457
- "data-test": "item-delete",
458
- onClick: (c) => a.deleteConfig(v)
459
- }, null, 8, ["onClick"])
460
- ]),
461
- _: 1
462
- }, 8, ["modelValue", "search", "headers", "items"]),
463
- i(p, { dense: "" }, {
464
- default: n(() => [
465
- i(f, {
466
- modelValue: l.configName,
467
- "onUpdate:modelValue": e[3] || (e[3] = (v) => l.configName = v),
468
- "hide-details": "",
469
- autofocus: "",
470
- disabled: !!a.selectedItem,
471
- label: "Configuration Name",
472
- "data-test": "name-input-save-config-dialog"
473
- }, null, 8, ["modelValue", "disabled"])
474
- ]),
475
- _: 1
476
- }),
477
- i(p, { dense: "" }, {
478
- default: n(() => [
479
- R(d("span", {
480
- class: "ma-2 text-red",
481
- textContent: N(a.error)
482
- }, null, 8, re), [
483
- [L, a.error]
484
- ])
485
- ]),
486
- _: 1
487
- })
488
- ])
489
- ]),
490
- _: 1
491
- }),
492
- i(C, { class: "px-2" }, {
493
- default: n(() => [
494
- i(u),
495
- i(g, {
496
- variant: "outlined",
497
- onClick: a.cancel
498
- }, {
499
- default: n(() => e[7] || (e[7] = [
500
- _(" Cancel ")
501
- ])),
502
- _: 1
503
- }, 8, ["onClick"]),
504
- i(g, {
505
- variant: "flat",
506
- onClick: O(a.success, ["prevent"]),
507
- type: "submit",
508
- "data-test": "save-config-submit-btn",
509
- disabled: !!a.error
510
- }, {
511
- default: n(() => e[8] || (e[8] = [
512
- _(" Ok ")
513
- ])),
514
- _: 1
515
- }, 8, ["onClick", "disabled"])
516
- ]),
517
- _: 1
518
- })
519
- ], 32)
520
- ]),
521
- _: 1
522
- })
523
- ]),
524
- _: 1
525
- }, 8, ["modelValue", "onKeydown"]);
526
- }
527
- const He = /* @__PURE__ */ A(ae, [["render", de]]), ce = {
528
- props: {
529
- modelValue: Boolean,
530
- target: {
531
- type: String,
532
- default: ""
533
- },
534
- screen: {
535
- type: String,
536
- default: ""
537
- },
538
- definition: {
539
- type: String,
540
- default: ""
541
- },
542
- keywords: {
543
- type: Array,
544
- default: () => []
545
- },
546
- errors: {
547
- type: Array,
548
- default: () => []
549
- }
550
- },
551
- data() {
552
- return {
553
- file: null,
554
- docsKeyword: "",
555
- contextMenu: !1,
556
- menuX: 0,
557
- menuY: 0
558
- };
559
- },
560
- computed: {
561
- editErrors: function() {
562
- if (this.definition === "" && !this.file)
563
- return ["Input can not be blank."];
564
- if (this.errors.length !== 0) {
565
- let t = /* @__PURE__ */ new Set(), e = [];
566
- for (const s of this.errors) {
567
- if (t.has(s.message))
568
- continue;
569
- let r = `At ${s.lineNumber}: (${s.line}) ${s.message}.`;
570
- s.usage && (r += ` Usage: ${s.usage}`), e.push(r), t.add(s.message);
571
- }
572
- return e;
573
- }
574
- return [];
575
- },
576
- show: {
577
- get() {
578
- return this.modelValue;
579
- },
580
- set(t) {
581
- this.$emit("update:modelValue", t);
582
- }
583
- }
584
- },
585
- mounted: function() {
586
- this.editor = F.edit(this.$refs.editor), this.editor.setTheme("ace/theme/twilight");
587
- const t = this.buildScreenMode();
588
- this.editor.session.setMode(new t()), 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 te()], this.editor.setHighlightActiveLine(!1), this.editor.setValue(this.definition), this.editor.clearSelection(), this.editor.focus();
589
- },
590
- beforeUnmount() {
591
- this.editor.destroy(), this.editor.container.remove();
592
- },
593
- methods: {
594
- showContextMenu: function(t) {
595
- this.menuX = t.pageX, this.menuY = t.pageY;
596
- let e = this.editor.getCursorPosition(), s = this.editor.session.getTokenAt(e.row, e.column);
597
- if (s) {
598
- let r = s.value.trim();
599
- r.includes(" ") ? this.docsKeyword = r.split(" ")[0] : this.docsKeyword = r, this.contextMenu = !0;
600
- }
601
- },
602
- openDocumentation() {
603
- window.open(
604
- `${window.location.origin}/tools/staticdocs/docs/configuration/telemetry-screens#${this.docsKeyword.toLowerCase()}`,
605
- "_blank"
606
- );
607
- },
608
- buildScreenMode() {
609
- let t = F.require("ace/lib/oop"), e = F.require(
610
- "ace/mode/text_highlight_rules"
611
- ).TextHighlightRules, s = this.keywords.join("|"), r = function() {
612
- this.$rules = {
613
- start: [
614
- {
615
- token: "comment",
616
- regex: "#.*$"
617
- },
618
- {
619
- token: "string",
620
- regex: '".*?"'
621
- },
622
- {
623
- token: "string",
624
- regex: "'.*?'"
625
- },
626
- {
627
- token: "constant.numeric",
628
- regex: "\\b\\d+(?:\\.\\d+)?\\b"
629
- },
630
- {
631
- token: "keyword",
632
- regex: new RegExp(`^\\s*(${s})\\b`)
633
- }
634
- ]
635
- }, this.normalizeRules();
636
- };
637
- t.inherits(r, e);
638
- let l = function() {
639
- this.HighlightRules = r;
640
- }, a = F.require("ace/mode/text").Mode;
641
- return t.inherits(l, a), (function() {
642
- this.$id = "ace/mode/openc3";
643
- }).call(l.prototype), l;
644
- },
645
- downloadScreen: function() {
646
- const t = new Blob([this.editor.getValue()], {
647
- type: "text/plain"
648
- }), e = document.createElement("a");
649
- e.href = URL.createObjectURL(t), e.setAttribute("download", `${this.screen.toLowerCase()}.txt`), e.click();
650
- },
651
- loadFile: function() {
652
- const t = new FileReader();
653
- t.readAsText(this.file);
654
- const e = this;
655
- t.onload = function() {
656
- e.editor.setValue(t.result), e.file = null;
657
- };
658
- },
659
- deleteScreen: function() {
660
- this.$dialog.confirm("Are you sure you want to delete this screen?!", {
661
- okText: "Delete",
662
- cancelText: "Cancel"
663
- }).then((t) => {
664
- this.$emit("delete");
665
- });
666
- }
667
- }
668
- }, ue = { class: "mx-2" }, me = { class: "mx-2" }, he = ["textContent"];
669
- function fe(t, e, s, r, l, a) {
670
- const u = o("v-icon"), m = o("v-tooltip"), f = o("v-spacer"), p = o("v-toolbar"), g = o("v-row"), h = o("v-btn"), k = o("v-file-input"), C = o("v-list-item-title"), T = o("v-list-item"), y = o("v-list"), v = o("v-menu"), c = o("v-card-text"), b = o("v-card"), P = o("v-dialog");
671
- return w(), x(P, {
672
- persistent: "",
673
- modelValue: a.show,
674
- "onUpdate:modelValue": e[5] || (e[5] = (I) => a.show = I),
675
- width: "75vw"
676
- }, {
677
- default: n(() => [
678
- i(b, null, {
679
- default: n(() => [
680
- i(p, { height: "24" }, {
681
- default: n(() => [
682
- d("div", ue, [
683
- i(m, { location: "top" }, {
684
- activator: n(({ props: I }) => [
685
- d("div", V(D(I)), [
686
- i(u, {
687
- "data-test": "delete-screen-icon",
688
- onClick: a.deleteScreen
689
- }, {
690
- default: n(() => e[6] || (e[6] = [
691
- _(" mdi-delete ")
692
- ])),
693
- _: 1
694
- }, 8, ["onClick"])
695
- ], 16)
696
- ]),
697
- default: n(() => [
698
- e[7] || (e[7] = d("span", null, " Delete Screen ", -1))
699
- ]),
700
- _: 1
701
- })
702
- ]),
703
- i(f),
704
- d("span", null, " Edit Screen: " + N(s.target) + " " + N(s.screen), 1),
705
- i(f),
706
- d("div", me, [
707
- i(m, { location: "top" }, {
708
- activator: n(({ props: I }) => [
709
- d("div", V(D(I)), [
710
- i(u, {
711
- "data-test": "download-screen-icon",
712
- onClick: a.downloadScreen
713
- }, {
714
- default: n(() => e[8] || (e[8] = [
715
- _(" mdi-download ")
716
- ])),
717
- _: 1
718
- }, 8, ["onClick"])
719
- ], 16)
720
- ]),
721
- default: n(() => [
722
- e[9] || (e[9] = d("span", null, " Download Screen ", -1))
723
- ]),
724
- _: 1
725
- })
726
- ])
727
- ]),
728
- _: 1
729
- }),
730
- i(c, null, {
731
- default: n(() => [
732
- i(g, { class: "mt-3" }, {
733
- default: n(() => e[10] || (e[10] = [
734
- _(" Upload a screen file. ")
735
- ])),
736
- _: 1
737
- }),
738
- i(g, {
739
- "no-gutters": "",
740
- align: "center"
741
- }, {
742
- default: n(() => [
743
- i(h, {
744
- onClick: a.loadFile,
745
- disabled: !l.file,
746
- color: "primary",
747
- class: "mr-3",
748
- "data-test": "edit-screen-load"
749
- }, {
750
- default: n(() => e[11] || (e[11] = [
751
- _(" Load ")
752
- ])),
753
- _: 1
754
- }, 8, ["onClick", "disabled"]),
755
- i(k, {
756
- modelValue: l.file,
757
- "onUpdate:modelValue": e[0] || (e[0] = (I) => l.file = I),
758
- "truncate-length": "15",
759
- accept: ".txt",
760
- label: "Click to select .txt screen file."
761
- }, null, 8, ["modelValue"])
762
- ]),
763
- _: 1
764
- }),
765
- i(g, { class: "mb-2" }, {
766
- default: n(() => e[12] || (e[12] = [
767
- _(" Edit the screen definition. ")
768
- ])),
769
- _: 1
770
- }),
771
- i(g, { class: "mb-2" }, {
772
- default: n(() => [
773
- d("pre", {
774
- ref: "editor",
775
- class: "editor",
776
- onContextmenu: e[1] || (e[1] = O((...I) => a.showContextMenu && a.showContextMenu(...I), ["prevent"]))
777
- }, null, 544),
778
- i(v, {
779
- modelValue: l.contextMenu,
780
- "onUpdate:modelValue": e[2] || (e[2] = (I) => l.contextMenu = I),
781
- target: [l.menuX, l.menuY]
782
- }, {
783
- default: n(() => [
784
- i(y, null, {
785
- default: n(() => [
786
- i(T, { link: "" }, {
787
- default: n(() => [
788
- i(C, { onClick: a.openDocumentation }, {
789
- default: n(() => [
790
- _(N(l.docsKeyword) + " documentation ", 1)
791
- ]),
792
- _: 1
793
- }, 8, ["onClick"])
794
- ]),
795
- _: 1
796
- })
797
- ]),
798
- _: 1
799
- })
800
- ]),
801
- _: 1
802
- }, 8, ["modelValue", "target"])
803
- ]),
804
- _: 1
805
- }),
806
- (w(!0), M(q, null, J(a.editErrors, (I, Z) => (w(), x(g, {
807
- key: Z,
808
- class: "my-3"
809
- }, {
810
- default: n(() => [
811
- d("span", {
812
- class: "text-red",
813
- textContent: N(I)
814
- }, null, 8, he)
815
- ]),
816
- _: 2
817
- }, 1024))), 128)),
818
- i(g, null, {
819
- default: n(() => [
820
- e[15] || (e[15] = d("span", null, "Ctrl-space brings up autocomplete. Right click keywords for documentation.", -1)),
821
- i(f),
822
- i(h, {
823
- onClick: e[3] || (e[3] = (I) => t.$emit("cancel")),
824
- class: "mx-2",
825
- variant: "outlined",
826
- "data-test": "edit-screen-cancel"
827
- }, {
828
- default: n(() => e[13] || (e[13] = [
829
- _(" Cancel ")
830
- ])),
831
- _: 1
832
- }),
833
- i(h, {
834
- onClick: e[4] || (e[4] = (I) => t.$emit("save", t.editor.getValue())),
835
- class: "mx-2",
836
- color: "primary",
837
- "data-test": "edit-screen-save"
838
- }, {
839
- default: n(() => e[14] || (e[14] = [
840
- _(" Save ")
841
- ])),
842
- _: 1
843
- })
844
- ]),
845
- _: 1
846
- })
847
- ]),
848
- _: 1
849
- })
850
- ]),
851
- _: 1
852
- })
853
- ]),
854
- _: 1
855
- }, 8, ["modelValue"]);
856
- }
857
- const pe = /* @__PURE__ */ A(ce, [["render", fe], ["__scopeId", "data-v-9e086b45"]]), ge = {};
858
- function ve(t, e) {
859
- return w(), M("div");
860
- }
861
- const Xe = /* @__PURE__ */ A(ge, [["render", ve]]), _e = {
862
- props: {
863
- modelValue: Boolean
864
- },
865
- data() {
866
- return {
867
- alert: "",
868
- alertType: "success",
869
- showAlert: !1,
870
- search: "",
871
- key: "",
872
- keyValue: "",
873
- environment: [],
874
- headers: [
875
- {
876
- text: "Key",
877
- value: "key"
878
- },
879
- {
880
- text: "Value",
881
- value: "value"
882
- },
883
- {
884
- text: "Actions",
885
- value: "actions",
886
- align: "end",
887
- sortable: !1
888
- }
889
- ]
890
- };
891
- },
892
- computed: {
893
- show: {
894
- get() {
895
- return this.modelValue;
896
- },
897
- set(t) {
898
- this.$emit("update:modelValue", t);
899
- }
900
- }
901
- },
902
- mounted() {
903
- this.update();
904
- },
905
- methods: {
906
- alertHandler: function(t) {
907
- this.alert = t.text, this.alertType = t.type, this.showAlert = !0;
908
- },
909
- update: function() {
910
- E.get("/openc3-api/environment").then((t) => {
911
- this.environment = t.data;
912
- }).catch((t) => {
913
- });
914
- },
915
- addEnvironment: function() {
916
- E.post("/openc3-api/environment", {
917
- data: {
918
- key: this.key.toUpperCase(),
919
- value: this.keyValue
920
- }
921
- }).then((t) => {
922
- `${t.data.name}`, this.update();
923
- }).catch((t) => {
924
- const e = {
925
- text: `Failed to add environment variable: ${t}`,
926
- type: "error"
927
- };
928
- this.alertHandler(e);
929
- }), this.key = "", this.keyValue = "";
930
- },
931
- deleteEnvironment: function(t) {
932
- this.$dialog.confirm(`Are you sure you want to delete: ${t.key}=${t.value}`, {
933
- okText: "Delete",
934
- cancelText: "Cancel"
935
- }).then((e) => E.delete(`/openc3-api/environment/${t.name}`)).then((e) => {
936
- const s = {
937
- text: `Removed environment variable: ${t.name}`,
938
- type: "success"
939
- };
940
- this.alertHandler(s), this.update();
941
- }).catch((e) => {
942
- const s = {
943
- text: `Failed to delete environment: ${e}`,
944
- type: "error"
945
- };
946
- this.alertHandler(s);
947
- });
948
- }
949
- }
950
- }, ye = { class: "pa-3" };
951
- function be(t, e, s, r, l, a) {
952
- const u = o("v-spacer"), m = o("v-toolbar"), f = o("v-text-field"), p = o("v-row"), g = o("v-icon"), h = o("v-btn"), k = o("v-data-table"), C = o("v-col"), T = o("v-card-text"), y = o("v-card"), v = o("v-dialog");
953
- return w(), x(v, {
954
- modelValue: a.show,
955
- "onUpdate:modelValue": e[4] || (e[4] = (c) => a.show = c),
956
- width: "600"
957
- }, {
958
- default: n(() => [
959
- i(y, null, {
960
- default: n(() => [
961
- d("form", {
962
- onSubmit: e[3] || (e[3] = O((...c) => a.addEnvironment && a.addEnvironment(...c), ["prevent"]))
963
- }, [
964
- i(m, { height: "24" }, {
965
- default: n(() => [
966
- i(u),
967
- e[5] || (e[5] = d("span", null, "Global Environment Variables", -1)),
968
- i(u)
969
- ]),
970
- _: 1
971
- }),
972
- i(T, null, {
973
- default: n(() => [
974
- d("div", ye, [
975
- i(p, {
976
- dense: "",
977
- class: "mb-2"
978
- }, {
979
- default: n(() => [
980
- i(f, {
981
- modelValue: l.search,
982
- "onUpdate:modelValue": e[0] || (e[0] = (c) => l.search = c),
983
- label: "search",
984
- type: "text",
985
- "data-test": "search",
986
- "prepend-inner-icon": "mdi-magnify",
987
- clearable: "",
988
- variant: "outlined",
989
- density: "compact",
990
- "clear-icon": "mdi-close-circle-outline",
991
- autofocus: "",
992
- "single-line": "",
993
- "hide-details": ""
994
- }, null, 8, ["modelValue"])
995
- ]),
996
- _: 1
997
- }),
998
- i(k, {
999
- "item-key": "name",
1000
- "hide-default-header": "",
1001
- "data-test": "env-table",
1002
- search: l.search,
1003
- headers: l.headers,
1004
- items: l.environment,
1005
- "items-per-page": 5,
1006
- "items-per-page-options": [5]
1007
- }, {
1008
- "item.actions": n(({ item: c }) => [
1009
- i(h, {
1010
- onClick: (b) => a.deleteEnvironment(c),
1011
- icon: "",
1012
- class: "mt-1",
1013
- "data-test": "item-delete"
1014
- }, {
1015
- default: n(() => [
1016
- i(g, null, {
1017
- default: n(() => e[6] || (e[6] = [
1018
- _("mdi-delete")
1019
- ])),
1020
- _: 1
1021
- })
1022
- ]),
1023
- _: 2
1024
- }, 1032, ["onClick"])
1025
- ]),
1026
- _: 1
1027
- }, 8, ["search", "headers", "items"]),
1028
- i(p, { dense: "" }, {
1029
- default: n(() => [
1030
- i(C, null, {
1031
- default: n(() => [
1032
- i(f, {
1033
- modelValue: l.key,
1034
- "onUpdate:modelValue": e[1] || (e[1] = (c) => l.key = c),
1035
- label: "Key",
1036
- "data-test": "env-key"
1037
- }, null, 8, ["modelValue"])
1038
- ]),
1039
- _: 1
1040
- }),
1041
- i(C, null, {
1042
- default: n(() => [
1043
- i(f, {
1044
- modelValue: l.keyValue,
1045
- "onUpdate:modelValue": e[2] || (e[2] = (c) => l.keyValue = c),
1046
- label: "Value",
1047
- "data-test": "env-value"
1048
- }, null, 8, ["modelValue"])
1049
- ]),
1050
- _: 1
1051
- })
1052
- ]),
1053
- _: 1
1054
- }),
1055
- i(p, { dense: "" }, {
1056
- default: n(() => [
1057
- i(h, {
1058
- onClick: O(a.addEnvironment, ["prevent"]),
1059
- block: "",
1060
- type: "submit",
1061
- color: "primary",
1062
- "data-test": "add-env",
1063
- disabled: !l.key || !l.keyValue
1064
- }, {
1065
- default: n(() => e[7] || (e[7] = [
1066
- _(" Add ")
1067
- ])),
1068
- _: 1
1069
- }, 8, ["onClick", "disabled"])
1070
- ]),
1071
- _: 1
1072
- })
1073
- ])
1074
- ]),
1075
- _: 1
1076
- })
1077
- ], 32)
1078
- ]),
1079
- _: 1
1080
- })
1081
- ]),
1082
- _: 1
1083
- }, 8, ["modelValue"]);
1084
- }
1085
- const Ye = /* @__PURE__ */ A(_e, [["render", be]]), we = {
1086
- props: {
1087
- type: {
1088
- type: String,
1089
- required: !0,
1090
- validator: function(t) {
1091
- return ["open", "save"].indexOf(t) !== -1;
1092
- }
1093
- },
1094
- apiUrl: String,
1095
- // Base API URL for use with scripts or cmd-tlm
1096
- requireTargetParentDir: Boolean,
1097
- // Require that the save filename be nested in a directory with the name of a target
1098
- inputFilename: String,
1099
- // passed if this is a 'save' dialog
1100
- modelValue: Boolean
1101
- },
1102
- data() {
1103
- return {
1104
- tree: [],
1105
- items: [],
1106
- id: 1,
1107
- search: null,
1108
- selectedFile: null,
1109
- disableButtons: !1,
1110
- targets: [],
1111
- loading: !0
1112
- };
1113
- },
1114
- computed: {
1115
- show: {
1116
- get() {
1117
- return this.modelValue;
1118
- },
1119
- set(t) {
1120
- this.$emit("update:modelValue", t);
1121
- }
1122
- },
1123
- title: function() {
1124
- return this.type === "open" ? "File Open" : "File Save As...";
1125
- },
1126
- submit: function() {
1127
- return this.type === "open" ? "OPEN" : "SAVE";
1128
- },
1129
- helpText: function() {
1130
- return this.type === "open" ? "Click on folders to open them and then click a file to select it before clicking Open. Use the search box to filter the results." : "Click on the folder to save into. Then complete the filename path with the desired name. Use the search box to filter the results.";
1131
- },
1132
- error: function() {
1133
- if (this.selectedFile === "" || this.selectedFile === null)
1134
- return "No file selected must select a file";
1135
- if (!this.selectedFile.match(this.validFilenameRegex) || this.selectedFile.match(/\.\.|\/\/|\.\/|\/\./)) {
1136
- let t = `${this.selectedFile} is not a valid filename. Must `;
1137
- return this.requireTargetParentDir && (t += "be in a target directory and "), t += `only contain alphanumeric characters (including !-_.*) and a valid extension.
1138
-
1139
- For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, t;
1140
- }
1141
- return this.type === "save" && this.selectedFile.match(/\*$/) ? `${this.selectedFile} is not a valid filename. Must not end in '*'.` : null;
1142
- },
1143
- validFilenameRegex: function() {
1144
- const t = "0-9a-zA-Z";
1145
- let s = `[${`${t}\\/\\!\\-\\_\\.\\*\\'\\(\\)`}]+\\.[${t}]+`;
1146
- return this.requireTargetParentDir && (s = `\\/?${`(${this.targets.join("|")})`}\\/${s}`), new RegExp(s);
1147
- }
1148
- },
1149
- created() {
1150
- this.loadFiles(), this.requireTargetParentDir && E.get("/openc3-api/targets").then((t) => {
1151
- this.targets = t.data, this.targets.push("__TEMP__");
1152
- });
1153
- },
1154
- methods: {
1155
- calcIcon: function(t) {
1156
- return Q(t);
1157
- },
1158
- loadFiles: function() {
1159
- E.get(this.apiUrl).then((t) => {
1160
- this.items = [], this.id = 1;
1161
- for (let e of t.data)
1162
- this.filepath = e, this.insertFile(this.items, 1, e), this.id++;
1163
- this.inputFilename && (this.selectedFile = this.inputFilename), this.loading = !1;
1164
- }).catch((t) => {
1165
- this.$emit("error", `Failed to connect to OpenC3. ${t}`);
1166
- });
1167
- },
1168
- clear: function() {
1169
- this.show = !1, this.overwrite = !1, this.disableButtons = !1;
1170
- },
1171
- activeFile: function(t) {
1172
- t.length === 0 ? this.selectedFile = null : (this.selectedFile = this.findItem(this.items, t[0]), setTimeout(() => {
1173
- this.$refs.submitBtn.$el.focus();
1174
- }, 100));
1175
- },
1176
- findItem: function(t, e) {
1177
- for (let s of t) {
1178
- if (s.id === e)
1179
- return s.path;
1180
- if (s.children) {
1181
- const r = this.findItem(s.children, e);
1182
- if (r)
1183
- return r;
1184
- }
1185
- }
1186
- return null;
1187
- },
1188
- exists: function(t, e) {
1189
- let s = !1;
1190
- for (let r of t) {
1191
- if (r.path === e || r.path.length > 1 && r.path[r.path.length - 1] === "*" && r.path.slice(0, r.path.length - 1) === e)
1192
- return !0;
1193
- r.children && (s = s || this.exists(r.children, e));
1194
- }
1195
- return s;
1196
- },
1197
- success: function() {
1198
- this.selectedFile !== null && this.error === null && (this.type === "open" ? this.openSuccess() : this.saveSuccess());
1199
- },
1200
- deleteTemp: function() {
1201
- this.$dialog.confirm("Are you sure you want to delete all the temporary files?", {
1202
- okText: "Delete",
1203
- cancelText: "Cancel"
1204
- }).then((t) => E.delete("/script-api/scripts/temp_files")).then((t) => {
1205
- this.$emit("clear-temp"), this.loadFiles();
1206
- }).catch((t) => {
1207
- this.$notify.serious({
1208
- title: "Error",
1209
- body: `Failed to remove script temporary files due to ${t}`
1210
- });
1211
- });
1212
- },
1213
- openSuccess: function() {
1214
- this.disableButtons = !0, E.get(`${this.apiUrl}/${this.selectedFile}`).then((t) => {
1215
- const e = {
1216
- name: this.selectedFile,
1217
- contents: t.data.contents
1218
- };
1219
- t.data.suites && (e.suites = JSON.parse(t.data.suites)), t.data.error && (e.error = t.data.error), t.data.success && (e.success = t.data.success);
1220
- const s = t.data.locked, r = t.data.breakpoints;
1221
- this.$emit("file", { file: e, locked: s, breakpoints: r }), this.clear();
1222
- }).catch((t) => {
1223
- this.$emit("error", `Failed to open ${this.selectedFile}. ${t}`), this.clear();
1224
- });
1225
- },
1226
- saveSuccess: function() {
1227
- this.exists(this.items, this.selectedFile) ? this.$dialog.confirm(`Are you sure you want to overwrite: ${this.selectedFile}`, {
1228
- okText: "Overwrite",
1229
- cancelText: "Cancel"
1230
- }).then((e) => {
1231
- this.$emit("filename", this.selectedFile), this.clear();
1232
- }).catch((e) => {
1233
- }) : (this.$emit("filename", this.selectedFile), this.clear());
1234
- },
1235
- insertFile: function(t, e, s) {
1236
- let r = s.split("/");
1237
- if (r.length === 1) {
1238
- t.push({
1239
- id: this.id,
1240
- title: r[0],
1241
- file: "ruby",
1242
- path: this.filepath
1243
- }), this.id++;
1244
- return;
1245
- }
1246
- const l = t.findIndex((a) => a.title === r[0]);
1247
- l === -1 ? (t.push({
1248
- id: this.id,
1249
- title: r[0],
1250
- children: [],
1251
- path: this.filepath.split("/").slice(0, e).join("/")
1252
- }), this.id++, this.insertFile(
1253
- t[t.length - 1].children,
1254
- // Start from the node we just added
1255
- e + 1,
1256
- r.slice(1).join("/")
1257
- // Strip the first part of the path
1258
- )) : this.insertFile(
1259
- t[l].children,
1260
- e + 1,
1261
- r.slice(1).join("/")
1262
- );
1263
- }
1264
- }
1265
- }, Ne = { class: "pa-3" };
1266
- function xe(t, e, s, r, l, a) {
1267
- const u = o("v-progress-circular"), m = o("v-overlay"), f = o("v-spacer"), p = o("v-toolbar"), g = o("v-row"), h = o("v-text-field"), k = o("v-icon"), C = o("v-btn"), T = o("v-treeview"), y = o("v-card-text"), v = o("v-card"), c = o("v-dialog");
1268
- return w(), x(c, {
1269
- modelValue: a.show,
1270
- "onUpdate:modelValue": e[5] || (e[5] = (b) => a.show = b),
1271
- width: "600",
1272
- scrollable: "",
1273
- onKeydown: e[6] || (e[6] = z((b) => a.success(), ["enter"]))
1274
- }, {
1275
- default: n(() => [
1276
- i(v, null, {
1277
- default: n(() => [
1278
- i(m, { "model-value": l.loading }, {
1279
- default: n(() => [
1280
- i(u, {
1281
- indeterminate: "",
1282
- absolute: "",
1283
- size: "64"
1284
- })
1285
- ]),
1286
- _: 1
1287
- }, 8, ["model-value"]),
1288
- d("form", {
1289
- onSubmit: e[4] || (e[4] = O((...b) => a.success && a.success(...b), ["prevent"]))
1290
- }, [
1291
- i(p, { height: "24" }, {
1292
- default: n(() => [
1293
- i(f),
1294
- d("span", null, N(a.title), 1),
1295
- i(f)
1296
- ]),
1297
- _: 1
1298
- }),
1299
- i(y, null, {
1300
- default: n(() => [
1301
- d("div", Ne, [
1302
- i(g, null, {
1303
- default: n(() => [
1304
- _(N(a.helpText), 1)
1305
- ]),
1306
- _: 1
1307
- }),
1308
- i(g, {
1309
- dense: "",
1310
- class: "mt-5"
1311
- }, {
1312
- default: n(() => [
1313
- i(h, {
1314
- modelValue: l.search,
1315
- "onUpdate:modelValue": e[0] || (e[0] = (b) => l.search = b),
1316
- flat: "",
1317
- autofocus: "",
1318
- "hide-details": "",
1319
- clearable: "",
1320
- label: "Search",
1321
- "prepend-inner-icon": "mdi-magnify",
1322
- density: "compact",
1323
- "data-test": "file-open-save-search"
1324
- }, null, 8, ["modelValue"])
1325
- ]),
1326
- _: 1
1327
- }),
1328
- i(g, {
1329
- dense: "",
1330
- class: "mt-2"
1331
- }, {
1332
- default: n(() => [
1333
- i(T, {
1334
- modelValue: l.tree,
1335
- "onUpdate:modelValue": e[1] || (e[1] = (b) => l.tree = b),
1336
- "onUpdate:activated": a.activeFile,
1337
- density: "compact",
1338
- activatable: "",
1339
- ref: "tree",
1340
- style: { width: "100%", "max-height": "60vh", overflow: "auto" },
1341
- "item-value": "id",
1342
- items: l.items,
1343
- search: l.search,
1344
- "open-on-click": s.type === "open",
1345
- "open-all": !!l.search
1346
- }, {
1347
- prepend: n(({ item: b, open: P }) => [
1348
- b.file ? (w(), x(k, { key: 1 }, {
1349
- default: n(() => [
1350
- _(N(a.calcIcon(b.title)), 1)
1351
- ]),
1352
- _: 2
1353
- }, 1024)) : (w(), x(k, { key: 0 }, {
1354
- default: n(() => [
1355
- _(N(P ? "mdi-folder-open" : "mdi-folder"), 1)
1356
- ]),
1357
- _: 2
1358
- }, 1024))
1359
- ]),
1360
- append: n(({ item: b }) => [
1361
- b.title === "__TEMP__" ? (w(), x(C, {
1362
- key: 0,
1363
- icon: "",
1364
- onClick: a.deleteTemp
1365
- }, {
1366
- default: n(() => [
1367
- i(k, null, {
1368
- default: n(() => e[7] || (e[7] = [
1369
- _(" mdi-delete ")
1370
- ])),
1371
- _: 1
1372
- })
1373
- ]),
1374
- _: 1
1375
- }, 8, ["onClick"])) : S("", !0)
1376
- ]),
1377
- _: 1
1378
- }, 8, ["modelValue", "onUpdate:activated", "items", "search", "open-on-click", "open-all"])
1379
- ]),
1380
- _: 1
1381
- }),
1382
- i(g, { class: "my-2" }, {
1383
- default: n(() => [
1384
- i(h, {
1385
- modelValue: l.selectedFile,
1386
- "onUpdate:modelValue": e[2] || (e[2] = (b) => l.selectedFile = b),
1387
- "hide-details": "",
1388
- label: "Filename",
1389
- "data-test": "file-open-save-filename",
1390
- disabled: s.type === "open"
1391
- }, null, 8, ["modelValue", "disabled"])
1392
- ]),
1393
- _: 1
1394
- }),
1395
- i(g, { dense: "" }, {
1396
- default: n(() => [
1397
- R(d("div", {
1398
- class: "my-2 text-red",
1399
- style: { "white-space": "pre-line" }
1400
- }, N(a.error), 513), [
1401
- [L, a.error]
1402
- ])
1403
- ]),
1404
- _: 1
1405
- }),
1406
- i(g, { class: "mt-2" }, {
1407
- default: n(() => [
1408
- i(f),
1409
- i(C, {
1410
- onClick: e[3] || (e[3] = (b) => a.show = !1),
1411
- variant: "outlined",
1412
- class: "mx-2",
1413
- "data-test": "file-open-save-cancel-btn",
1414
- disabled: l.disableButtons
1415
- }, {
1416
- default: n(() => e[8] || (e[8] = [
1417
- _(" Cancel ")
1418
- ])),
1419
- _: 1
1420
- }, 8, ["disabled"]),
1421
- i(C, {
1422
- onClick: O(a.success, ["prevent"]),
1423
- ref: "submitBtn",
1424
- type: "submit",
1425
- color: "primary",
1426
- class: "mx-2",
1427
- "data-test": "file-open-save-submit-btn",
1428
- disabled: l.disableButtons || !!a.error
1429
- }, {
1430
- default: n(() => [
1431
- _(N(a.submit), 1)
1432
- ]),
1433
- _: 1
1434
- }, 8, ["onClick", "disabled"])
1435
- ]),
1436
- _: 1
1437
- })
1438
- ])
1439
- ]),
1440
- _: 1
1441
- })
1442
- ], 32)
1443
- ]),
1444
- _: 1
1445
- })
1446
- ]),
1447
- _: 1
1448
- }, 8, ["modelValue"]);
1449
- }
1450
- const je = /* @__PURE__ */ A(we, [["render", xe]]), ke = {
1451
- props: {
1452
- historyCount: {
1453
- type: Number,
1454
- default: 200
1455
- },
1456
- timeZone: {
1457
- type: String,
1458
- default: "local"
1459
- }
1460
- },
1461
- mixins: [$],
1462
- data() {
1463
- return {
1464
- AstroStatusColors: W,
1465
- data: [],
1466
- shownData: [],
1467
- logLevels: ["DEBUG", "INFO", "WARN", "ERROR", "FATAL"],
1468
- logLevel: "INFO",
1469
- search: "",
1470
- headers: [
1471
- { title: "Time", value: "timestamp", nowrap: !0 },
1472
- { title: "Level", value: "level" },
1473
- { title: "Source", value: "microservice_name" },
1474
- { title: "Message", value: "message" }
1475
- ],
1476
- cable: new H(),
1477
- subscription: null,
1478
- paused: !1
1479
- };
1480
- },
1481
- computed: {
1482
- buttonLabel: function() {
1483
- return this.paused ? "Resume" : "Pause";
1484
- },
1485
- buttonIcon: function() {
1486
- return this.paused ? "mdi-play" : "mdi-pause";
1487
- }
1488
- },
1489
- watch: {
1490
- logLevel: function(t, e) {
1491
- this.createSubscription();
1492
- }
1493
- },
1494
- created() {
1495
- this.createSubscription();
1496
- },
1497
- unmounted() {
1498
- this.subscription && this.subscription.unsubscribe(), this.cable.disconnect();
1499
- },
1500
- methods: {
1501
- pause: function() {
1502
- this.paused = !this.paused;
1503
- },
1504
- createSubscription() {
1505
- this.subscription && (this.subscription.unsubscribe(), this.data = [], this.shownData = this.data), this.cable.createSubscription(
1506
- "MessagesChannel",
1507
- window.openc3Scope,
1508
- {
1509
- received: (t) => {
1510
- this.cable.recordPing(), t.length > this.historyCount && t.splice(0, t.length - this.historyCount), t = t.filter((e) => {
1511
- switch (this.logLevel) {
1512
- case "DEBUG":
1513
- return !0;
1514
- case "INFO":
1515
- if (e.level !== "DEBUG")
1516
- return !0;
1517
- break;
1518
- case "WARN":
1519
- if (e.level !== "DEBUG" && e.level !== "INFO")
1520
- return !0;
1521
- break;
1522
- case "ERROR":
1523
- if (e.level !== "DEBUG" && e.level !== "INFO" && e.level !== "WARN")
1524
- return !0;
1525
- break;
1526
- case "FATAL":
1527
- if (e.level !== "DEBUG" && e.level !== "INFO" && e.level !== "WARN" && e.level !== "ERROR")
1528
- return !0;
1529
- break;
1530
- }
1531
- return !1;
1532
- }), t.map((e) => {
1533
- if (e.timestamp = this.formatTimestamp(
1534
- e["@timestamp"],
1535
- this.timeZone
1536
- ), e.message.raw && e.message.json_class === "String") {
1537
- let s = "0x";
1538
- for (let r = 0; r < e.message.raw.length; r++) {
1539
- let l = e.message.raw[r].toString(16).toUpperCase();
1540
- l.length < 2 && (l = "0" + l), s += l;
1541
- }
1542
- e.message = s;
1543
- } else
1544
- e.message = e.message.replaceAll("\\n", `
1545
- `);
1546
- }), this.data = t.reverse().concat(this.data), this.data.length > this.historyCount && (this.data.length = this.historyCount), this.paused || (this.shownData = this.data);
1547
- }
1548
- },
1549
- {
1550
- // Channel parameter is history_count with underscore
1551
- history_count: this.historyCount,
1552
- types: ["log", "notification", "alert"]
1553
- }
1554
- ).then((t) => {
1555
- this.subscription = t;
1556
- });
1557
- },
1558
- getColor(t) {
1559
- return W[K[t]];
1560
- },
1561
- getStatus(t) {
1562
- return K[t];
1563
- },
1564
- downloadLog() {
1565
- const t = this.shownData.map(
1566
- (r) => (
1567
- // Other fields are available like container_name, msg_id ... probably not useful
1568
- `${r.timestamp} | ${r.level} | ${r.microservice_name} | ${r.message}`
1569
- )
1570
- ).join(`
1571
- `), e = new Blob([t], {
1572
- type: "text/plain"
1573
- }), s = document.createElement("a");
1574
- s.href = URL.createObjectURL(e), s.setAttribute(
1575
- "download",
1576
- ee(Date.now(), "yyyy_MM_dd_HH_mm_ss") + "_message_log.txt"
1577
- ), s.click();
1578
- },
1579
- clearLog: function() {
1580
- this.$dialog.confirm("Are you sure you want to clear the log?", {
1581
- okText: "Clear",
1582
- cancelText: "Cancel"
1583
- }).then((t) => {
1584
- this.data = [], this.shownData = [];
1585
- }).catch(function(t) {
1586
- });
1587
- }
1588
- }
1589
- }, Ce = { class: "d-flex align-baseline" }, Te = ["title", "datetime"], Ie = { style: { "white-space": "pre-wrap" } };
1590
- function Ve(t, e, s, r, l, a) {
1591
- const u = o("v-btn"), m = o("v-tooltip"), f = o("v-spacer"), p = o("v-select"), g = o("v-text-field"), h = o("v-card-title"), k = o("rux-status"), C = o("v-data-table"), T = o("v-card");
1592
- return w(), x(T, null, {
1593
- default: n(() => [
1594
- i(h, { class: "d-flex align-center justify-content-space-between" }, {
1595
- default: n(() => [
1596
- d("div", Ce, [
1597
- i(m, { location: "top" }, {
1598
- activator: n(({ props: y }) => [
1599
- d("div", V(D(y)), [
1600
- i(u, {
1601
- icon: "mdi-download",
1602
- variant: "text",
1603
- size: "small",
1604
- class: "mr-2",
1605
- "data-test": "download-log",
1606
- onClick: a.downloadLog
1607
- }, null, 8, ["onClick"])
1608
- ], 16)
1609
- ]),
1610
- default: n(() => [
1611
- e[2] || (e[2] = d("span", null, " Download Log ", -1))
1612
- ]),
1613
- _: 1
1614
- }),
1615
- e[3] || (e[3] = d("span", null, " Log Messages ", -1)),
1616
- i(m, { location: "top" }, {
1617
- activator: n(({ props: y }) => [
1618
- d("div", V(D(y)), [
1619
- i(u, {
1620
- icon: a.buttonIcon,
1621
- variant: "text",
1622
- "data-test": "pause",
1623
- onClick: a.pause
1624
- }, null, 8, ["icon", "onClick"])
1625
- ], 16)
1626
- ]),
1627
- default: n(() => [
1628
- d("span", null, N(a.buttonLabel), 1)
1629
- ]),
1630
- _: 1
1631
- })
1632
- ]),
1633
- i(f),
1634
- i(p, {
1635
- label: "Filter by log level",
1636
- "hide-details": "",
1637
- variant: "outlined",
1638
- density: "compact",
1639
- items: l.logLevels,
1640
- modelValue: l.logLevel,
1641
- "onUpdate:modelValue": e[0] || (e[0] = (y) => l.logLevel = y),
1642
- class: "mr-2",
1643
- style: { "max-width": "150px" },
1644
- "data-test": "log-messages-level"
1645
- }, null, 8, ["items", "modelValue"]),
1646
- i(f),
1647
- i(g, {
1648
- modelValue: l.search,
1649
- "onUpdate:modelValue": e[1] || (e[1] = (y) => l.search = y),
1650
- label: "Search",
1651
- "prepend-inner-icon": "mdi-magnify",
1652
- clearable: "",
1653
- variant: "outlined",
1654
- density: "compact",
1655
- "single-line": "",
1656
- "hide-details": "",
1657
- style: { "max-width": "300px" },
1658
- class: "search",
1659
- "data-test": "search-log-messages"
1660
- }, null, 8, ["modelValue"]),
1661
- i(m, { location: "top" }, {
1662
- activator: n(({ props: y }) => [
1663
- d("div", V(D(y)), [
1664
- i(u, {
1665
- icon: "mdi-delete",
1666
- variant: "text",
1667
- class: "ml-2",
1668
- "data-test": "clear-log",
1669
- onClick: a.clearLog
1670
- }, null, 8, ["onClick"])
1671
- ], 16)
1672
- ]),
1673
- default: n(() => [
1674
- e[4] || (e[4] = d("span", null, " Clear Log ", -1))
1675
- ]),
1676
- _: 1
1677
- })
1678
- ]),
1679
- _: 1
1680
- }),
1681
- i(C, {
1682
- headers: l.headers,
1683
- items: l.shownData,
1684
- search: l.search,
1685
- "items-per-page": -1,
1686
- "hide-default-footer": "",
1687
- "multi-sort": "",
1688
- density: "compact",
1689
- sticky: "",
1690
- hover: "",
1691
- "data-test": "log-messages"
1692
- }, {
1693
- "item.timestamp": n(({ item: y }) => [
1694
- d("time", {
1695
- title: y.timestamp,
1696
- datetime: y.timestamp
1697
- }, N(y.timestamp), 9, Te)
1698
- ]),
1699
- "item.level": n(({ item: y }) => [
1700
- d("span", {
1701
- style: G("display: inline-flex; color:" + a.getColor(y.level))
1702
- }, [
1703
- i(k, {
1704
- class: "mr-1",
1705
- status: a.getStatus(y.level)
1706
- }, null, 8, ["status"]),
1707
- _(" " + N(y.level), 1)
1708
- ], 4)
1709
- ]),
1710
- "item.message": n(({ item: y }) => [
1711
- d("div", Ie, N(y.message), 1)
1712
- ]),
1713
- _: 1
1714
- }, 8, ["headers", "items", "search"])
1715
- ]),
1716
- _: 1
1717
- });
1718
- }
1719
- const qe = /* @__PURE__ */ A(ke, [["render", Ve], ["__scopeId", "data-v-d5f1f607"]]), De = {};
1720
- function Se(t, e) {
1721
- const s = o("v-card-title"), r = o("v-card-text"), l = o("v-card");
1722
- return w(), x(l, null, {
1723
- default: n(() => [
1724
- i(s, null, {
1725
- default: n(() => e[0] || (e[0] = [
1726
- _("404 Not Found Error")
1727
- ])),
1728
- _: 1
1729
- }),
1730
- i(r, null, {
1731
- default: n(() => [
1732
- e[1] || (e[1] = _("The requested URL ")),
1733
- d("code", null, N(t.$route.fullPath), 1),
1734
- e[2] || (e[2] = _(" was not routable."))
1735
- ]),
1736
- _: 1
1737
- })
1738
- ]),
1739
- _: 1
1740
- });
1741
- }
1742
- const Je = /* @__PURE__ */ A(De, [["render", Se]]), B = 20, Ee = {
1743
- mixins: [X],
1744
- components: {
1745
- EditScreenDialog: pe
1746
- },
1747
- props: {
1748
- target: {
1749
- type: String,
1750
- default: ""
1751
- },
1752
- screen: {
1753
- type: String,
1754
- default: ""
1755
- },
1756
- definition: {
1757
- type: String,
1758
- default: ""
1759
- },
1760
- keywords: {
1761
- type: Array,
1762
- default: () => []
1763
- },
1764
- initialFloated: {
1765
- type: Boolean,
1766
- default: !1
1767
- },
1768
- initialTop: {
1769
- type: Number,
1770
- default: 0
1771
- },
1772
- initialLeft: {
1773
- type: Number,
1774
- default: 0
1775
- },
1776
- initialZ: {
1777
- type: Number,
1778
- default: 0
1779
- },
1780
- minZ: {
1781
- type: Number,
1782
- default: 0
1783
- },
1784
- fixFloated: {
1785
- type: Boolean,
1786
- default: !1
1787
- },
1788
- count: {
1789
- type: Number,
1790
- default: 0
1791
- },
1792
- showClose: {
1793
- type: Boolean,
1794
- default: !0
1795
- },
1796
- timeZone: {
1797
- type: String,
1798
- default: "local"
1799
- }
1800
- },
1801
- data() {
1802
- return {
1803
- api: null,
1804
- backup: "",
1805
- currentDefinition: this.definition,
1806
- editDialog: !1,
1807
- expand: !0,
1808
- configParser: null,
1809
- configError: !1,
1810
- currentLayout: null,
1811
- layoutStack: [],
1812
- namedWidgets: {},
1813
- dynamicWidgets: [],
1814
- width: null,
1815
- height: null,
1816
- staleTime: 30,
1817
- cacheTimeout: 0.1,
1818
- globalSettings: [],
1819
- substitute: !1,
1820
- original_target_name: null,
1821
- force_substitute: !1,
1822
- pollingPeriod: 1,
1823
- errors: [],
1824
- errorDialog: !1,
1825
- screenKey: null,
1826
- dragX: 0,
1827
- dragY: 0,
1828
- floated: this.initialFloated,
1829
- top: this.initialTop,
1830
- left: this.initialLeft,
1831
- zIndex: this.initialZ,
1832
- changeCounter: 0,
1833
- screenItems: [],
1834
- screenValues: {},
1835
- updateCounter: 0,
1836
- screenId: Y.uniqueId("openc3-screen_")
1837
- };
1838
- },
1839
- watch: {
1840
- count: {
1841
- handler(t, e) {
1842
- this.currentDefinition = this.definition, this.rerender();
1843
- }
1844
- }
1845
- },
1846
- computed: {
1847
- error: function() {
1848
- if (this.errorDialog && this.errors.length > 0) {
1849
- let t = /* @__PURE__ */ new Set(), e = "";
1850
- for (const s of this.errors) {
1851
- if (t.has(s.message))
1852
- continue;
1853
- let r = `${s.time}: (${s.type}) ${s.message}
1854
- `;
1855
- e += r, t.add(s.message);
1856
- }
1857
- return e;
1858
- }
1859
- return null;
1860
- },
1861
- computedStyle() {
1862
- let t = {};
1863
- return this.floated && (t.position = "absolute", t.top = this.top + "px", t.left = this.left + "px"), t;
1864
- }
1865
- },
1866
- // Called when an error from any descendent component is captured
1867
- // We need this because an error can occur from any of the children
1868
- // in the widget stack and are typically thrown on create()
1869
- errorCaptured(t, e, s) {
1870
- return console.log({ err: t, vm: e, info: s }), this.errors.length < B && (console.log({ errors: this.errors }), t.usage ? this.errors.push({
1871
- type: "usage",
1872
- message: t.message,
1873
- usage: t.usage,
1874
- line: t.line,
1875
- lineNumber: t.lineNumber,
1876
- time: (/* @__PURE__ */ new Date()).getTime()
1877
- }) : this.errors.push({
1878
- type: "error",
1879
- message: t,
1880
- time: (/* @__PURE__ */ new Date()).getTime()
1881
- }), this.configError = !0), !1;
1882
- },
1883
- created() {
1884
- this.api = new U(), this.configParser = new j(), this.parseDefinition(), this.screenKey = Math.floor(Math.random() * 1e6);
1885
- },
1886
- mounted() {
1887
- this.updateRefreshInterval(), this.floated && (this.$refs.bar.onmousedown = this.dragMouseDown, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex);
1888
- },
1889
- unmounted() {
1890
- this.updater != null && (clearInterval(this.updater), this.updater = null);
1891
- },
1892
- methods: {
1893
- // These are API methods that ButtonWidget uses to open and close screens
1894
- open(t, e) {
1895
- this.$parent.showScreen(t, e);
1896
- },
1897
- close(t, e) {
1898
- this.$parent.closeScreenByName(t, e);
1899
- },
1900
- closeAll() {
1901
- this.$parent.closeAll();
1902
- },
1903
- clearErrors: function() {
1904
- this.errors = [], this.configError = !1;
1905
- },
1906
- updateRefreshInterval: function() {
1907
- let t = this.pollingPeriod * 1e3;
1908
- this.updater && clearInterval(this.updater), this.updater = setInterval(() => {
1909
- this.update();
1910
- }, t);
1911
- },
1912
- parseDefinition: function() {
1913
- if (this.clearErrors(), this.namedWidgets = {}, this.layoutStack = [], this.dynamicWidgets = [], this.layoutStack.push({
1914
- type: "VerticalWidget",
1915
- parameters: [],
1916
- widgets: []
1917
- }), this.currentLayout = this.layoutStack[this.layoutStack.length - 1], this.configParser.parse_string(
1918
- this.currentDefinition,
1919
- "",
1920
- !1,
1921
- !0,
1922
- (t, e, s, r) => {
1923
- if (t)
1924
- switch (t) {
1925
- case "SCREEN":
1926
- this.configParser.verify_num_parameters(
1927
- 3,
1928
- 4,
1929
- `${t} <Width or AUTO> <Height or AUTO> <Polling Period>`
1930
- ), this.width = parseInt(e[0]), this.height = parseInt(e[1]), this.pollingPeriod = parseFloat(e[2]);
1931
- break;
1932
- case "END":
1933
- this.configParser.verify_num_parameters(0, 0, `${t}`), this.layoutStack.pop(), this.currentLayout = this.layoutStack[this.layoutStack.length - 1];
1934
- break;
1935
- case "STALE_TIME":
1936
- this.configParser.verify_num_parameters(
1937
- 1,
1938
- 1,
1939
- `${t} <Time (s)>`
1940
- ), this.staleTime = parseInt(e[0]);
1941
- break;
1942
- case "SETTING":
1943
- case "SUBSETTING":
1944
- (this.currentLayout.widgets[this.currentLayout.widgets.length - 1] ?? this.currentLayout).settings.push(e);
1945
- break;
1946
- case "GLOBAL_SETTING":
1947
- case "GLOBAL_SUBSETTING":
1948
- this.globalSettings.push(e);
1949
- break;
1950
- default:
1951
- this.processWidget(t, e, s, r);
1952
- break;
1953
- }
1954
- }
1955
- ), typeof this.layoutStack[0] > "u") {
1956
- let t = [], e = [];
1957
- for (const s of this.dynamicWidgets)
1958
- t.push(s.name), e.push(s.lineNumber);
1959
- this.errors.length < B && (this.errors.push({
1960
- type: "usage",
1961
- message: `Unknown widget! Are these widgets: ${t.join(",")}?`,
1962
- lineNumber: e.join(","),
1963
- time: (/* @__PURE__ */ new Date()).getTime()
1964
- }), this.configError = !0), this.layoutStack[0] = {
1965
- type: "VerticalWidget",
1966
- parameters: [],
1967
- widgets: []
1968
- };
1969
- } else
1970
- this.applyGlobalSettings(this.layoutStack[0].widgets);
1971
- },
1972
- openEdit: function() {
1973
- this.backup = this.currentDefinition.repeat(1), this.editDialog = !0;
1974
- },
1975
- upScreen: function() {
1976
- this.zIndex += 1, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex, this.$emit("drag-screen", [
1977
- this.floated,
1978
- this.top,
1979
- this.left,
1980
- this.zIndex
1981
- ]);
1982
- },
1983
- downScreen: function() {
1984
- this.zIndex > this.minZ && (this.zIndex -= 1, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex, this.$emit("drag-screen", [
1985
- this.floated,
1986
- this.top,
1987
- this.left,
1988
- this.zIndex
1989
- ]));
1990
- },
1991
- floatScreen: function() {
1992
- if (this.floated)
1993
- this.$refs.bar.onmousedown = null, this.$refs.bar.parentElement.parentElement.style = "z-index: 0", this.floated = !1, this.$emit("unfloat-screen", [
1994
- this.floated,
1995
- this.top,
1996
- this.left,
1997
- this.zIndex
1998
- ]);
1999
- else {
2000
- let t = this.$refs.bar.parentElement.parentElement.parentElement.getBoundingClientRect(), e = this.$refs.bar.getBoundingClientRect();
2001
- this.top = e.top - t.top - 5, this.left = e.left - t.left - 5, this.$refs.bar.onmousedown = this.dragMouseDown, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex, this.floated = !0, this.$emit("float-screen", [
2002
- this.floated,
2003
- this.top,
2004
- this.left,
2005
- this.zIndex
2006
- ]);
2007
- }
2008
- },
2009
- dragMouseDown: function(t) {
2010
- t = t || window.event, t.preventDefault(), this.dragX = t.clientX, this.dragY = t.clientY, document.onmouseup = this.closeDragElement, document.onmousemove = this.elementDrag;
2011
- },
2012
- elementDrag: function(t) {
2013
- t = t || window.event, t.preventDefault();
2014
- let e = this.dragX - t.clientX, s = this.dragY - t.clientY;
2015
- this.dragX = t.clientX, this.dragY = t.clientY, this.top = this.$refs.bar.offsetTop - s, this.left = this.$refs.bar.offsetLeft - e, this.$emit("drag-screen", [
2016
- this.floated,
2017
- this.top,
2018
- this.left,
2019
- this.zIndex
2020
- ]);
2021
- },
2022
- closeDragElement: function() {
2023
- document.onmouseup = null, document.onmousemove = null;
2024
- },
2025
- rerender: function() {
2026
- this.parseDefinition(), this.updateRefreshInterval(), this.screenKey = Math.floor(Math.random() * 1e6), this.$nextTick(function() {
2027
- this.clearErrors(), this.$emit("edit-screen");
2028
- });
2029
- },
2030
- cancelEdit: function() {
2031
- this.file = null, this.editDialog = !1, this.currentDefinition = this.backup, this.rerender();
2032
- },
2033
- saveEdit: function(t) {
2034
- this.editDialog = !1, this.currentDefinition = t, this.rerender(), this.$nextTick(function() {
2035
- E.post(
2036
- "/openc3-api/screen/",
2037
- {
2038
- data: {
2039
- scope: window.openc3Scope,
2040
- target: this.target,
2041
- screen: this.screen,
2042
- text: this.currentDefinition
2043
- }
2044
- },
2045
- 0
2046
- );
2047
- });
2048
- },
2049
- deleteScreen: function() {
2050
- this.editDialog = !1, E.delete(`/openc3-api/screen/${this.target}/${this.screen}`).then(
2051
- (t) => {
2052
- this.$emit("delete-screen");
2053
- }
2054
- );
2055
- },
2056
- minMaxTransition: function() {
2057
- this.expand = !this.expand, this.$emit("min-max-screen");
2058
- },
2059
- processWidget: function(t, e, s, r) {
2060
- let l = null;
2061
- t === "NAMED_WIDGET" && (this.configParser.verify_num_parameters(
2062
- 2,
2063
- null,
2064
- `${t} <Widget Name> <Widget Type> <Widget Settings... (optional)>`
2065
- ), l = e[0].toUpperCase(), t = e[1].toUpperCase(), e = e.slice(2, e.length));
2066
- const a = t.charAt(0).toUpperCase() + t.slice(1).toLowerCase() + "Widget";
2067
- let u = [];
2068
- if (u.push(["__SCREEN_ID__", this.screenId]), l !== null && u.push(["NAMED_WIDGET", l]), t === "VERTICAL" || t === "VERTICALBOX" || t === "HORIZONTAL" || t === "HORIZONTALBOX" || t === "MATRIXBYCOLUMNS" || t === "TABBOOK" || t === "TABITEM" || t === "CANVAS" || t === "RADIOGROUP" || t === "SCROLLWINDOW") {
2069
- const m = {
2070
- type: a,
2071
- parameters: e,
2072
- settings: u,
2073
- screenValues: this.screenValues,
2074
- screenTimeZone: this.timeZone,
2075
- widgets: []
2076
- };
2077
- this.layoutStack.push(m), this.currentLayout.widgets.push(m), this.currentLayout = m;
2078
- } else if (this.$options.components[a])
2079
- this.currentLayout.widgets.push({
2080
- type: a,
2081
- target: this.target,
2082
- parameters: e,
2083
- settings: u,
2084
- screenValues: this.screenValues,
2085
- screenTimeZone: this.timeZone,
2086
- line: s,
2087
- lineNumber: r
2088
- });
2089
- else {
2090
- let m = {
2091
- type: "DynamicWidget",
2092
- target: this.target,
2093
- parameters: e,
2094
- settings: u,
2095
- screenValues: this.screenValues,
2096
- screenTimeZone: this.timeZone,
2097
- name: a,
2098
- line: s,
2099
- lineNumber: r
2100
- };
2101
- this.currentLayout.widgets.push(m), this.dynamicWidgets.push(m);
2102
- }
2103
- },
2104
- applyGlobalSettings: function(t) {
2105
- t.forEach((e) => {
2106
- this.globalSettings.forEach((s) => {
2107
- e.type.toLowerCase() === s[0].toLowerCase() + "widget" && e.settings.push(s.slice(1));
2108
- }), e.widgets && this.applyGlobalSettings(e.widgets);
2109
- });
2110
- },
2111
- update: function() {
2112
- this.screenItems.length !== 0 && this.configError === !1 && this.api.get_tlm_values(this.screenItems, this.staleTime, this.cacheTimeout).then((t) => {
2113
- this.clearErrors(), this.updateValues(t);
2114
- }).catch((t) => {
2115
- let e = JSON.stringify(t, null, 2);
2116
- e.includes("no response received") || (this.configError = !0), this.errors.find((s) => s.message === e) || this.errors.length < B && this.errors.push({
2117
- type: "error",
2118
- message: e,
2119
- time: (/* @__PURE__ */ new Date()).getTime()
2120
- });
2121
- });
2122
- },
2123
- updateValues: function(t) {
2124
- this.updateCounter += 1;
2125
- for (let e = 0; e < t.length; e++)
2126
- t[e].push(this.updateCounter), this.screenValues[this.screenItems[e]] = t[e];
2127
- },
2128
- addItem: function(t) {
2129
- this.screenItems.push(t), this.screenValues[t] = [null, null, 0];
2130
- },
2131
- deleteItem: function(t) {
2132
- let e = this.screenItems.indexOf(t);
2133
- this.screenItems.splice(e, 1);
2134
- }
2135
- }
2136
- }, Ae = {
2137
- class: "pa-1",
2138
- style: { position: "relative" },
2139
- ref: "screen"
2140
- };
2141
- function Re(t, e, s, r, l, a) {
2142
- const u = o("v-icon"), m = o("v-tooltip"), f = o("v-spacer"), p = o("v-toolbar"), g = o("v-overlay"), h = o("vertical-widget"), k = o("v-expand-transition"), C = o("v-card"), T = o("edit-screen-dialog"), y = o("v-textarea"), v = o("v-dialog");
2143
- return w(), M("div", {
2144
- style: G(a.computedStyle),
2145
- ref: "bar"
2146
- }, [
2147
- i(C, {
2148
- "min-height": l.height,
2149
- "min-width": l.width,
2150
- style: { cursor: "default" }
2151
- }, {
2152
- default: n(() => [
2153
- i(p, { height: "24" }, {
2154
- default: n(() => [
2155
- R(d("div", null, [
2156
- i(m, { location: "top" }, {
2157
- activator: n(({ props: c }) => [
2158
- d("div", V(D(c)), [
2159
- i(u, {
2160
- "data-test": "error-graph-icon",
2161
- onClick: e[0] || (e[0] = (b) => l.errorDialog = !0)
2162
- }, {
2163
- default: n(() => e[7] || (e[7] = [
2164
- _(" mdi-alert ")
2165
- ])),
2166
- _: 1
2167
- })
2168
- ], 16)
2169
- ]),
2170
- default: n(() => [
2171
- e[8] || (e[8] = d("span", null, " Errors ", -1))
2172
- ]),
2173
- _: 1
2174
- })
2175
- ], 512), [
2176
- [L, l.errors.length !== 0]
2177
- ]),
2178
- i(m, { location: "top" }, {
2179
- activator: n(({ props: c }) => [
2180
- d("div", V(D(c)), [
2181
- i(u, {
2182
- "data-test": "edit-screen-icon",
2183
- onClick: a.openEdit
2184
- }, {
2185
- default: n(() => e[9] || (e[9] = [
2186
- _(" mdi-pencil ")
2187
- ])),
2188
- _: 1
2189
- }, 8, ["onClick"])
2190
- ], 16)
2191
- ]),
2192
- default: n(() => [
2193
- e[10] || (e[10] = d("span", null, " Edit Screen ", -1))
2194
- ]),
2195
- _: 1
2196
- }),
2197
- s.fixFloated ? S("", !0) : (w(), x(m, {
2198
- key: 0,
2199
- location: "top"
2200
- }, {
2201
- activator: n(({ props: c }) => [
2202
- d("div", V(D(c)), [
2203
- i(u, {
2204
- "data-test": "float-screen-icon",
2205
- onClick: a.floatScreen
2206
- }, {
2207
- default: n(() => [
2208
- _(N(l.floated ? "mdi-balloon" : "mdi-view-grid-outline"), 1)
2209
- ]),
2210
- _: 1
2211
- }, 8, ["onClick"])
2212
- ], 16)
2213
- ]),
2214
- default: n(() => [
2215
- d("span", null, N(l.floated ? "Unfloat Screen" : "Float Screen"), 1)
2216
- ]),
2217
- _: 1
2218
- })),
2219
- l.floated ? (w(), x(m, {
2220
- key: 1,
2221
- location: "top"
2222
- }, {
2223
- activator: n(({ props: c }) => [
2224
- d("div", V(D(c)), [
2225
- i(u, {
2226
- "data-test": "up-screen-icon",
2227
- onClick: a.upScreen
2228
- }, {
2229
- default: n(() => e[11] || (e[11] = [
2230
- _(" mdi-arrow-up ")
2231
- ])),
2232
- _: 1
2233
- }, 8, ["onClick"])
2234
- ], 16)
2235
- ]),
2236
- default: n(() => [
2237
- e[12] || (e[12] = d("span", null, " Move Screen Up ", -1))
2238
- ]),
2239
- _: 1
2240
- })) : S("", !0),
2241
- l.floated && l.zIndex > s.minZ ? (w(), x(m, {
2242
- key: 2,
2243
- location: "top"
2244
- }, {
2245
- activator: n(({ props: c }) => [
2246
- d("div", V(D(c)), [
2247
- i(u, {
2248
- "data-test": "down-screen-icon",
2249
- onClick: a.downScreen
2250
- }, {
2251
- default: n(() => e[13] || (e[13] = [
2252
- _(" mdi-arrow-down ")
2253
- ])),
2254
- _: 1
2255
- }, 8, ["onClick"])
2256
- ], 16)
2257
- ]),
2258
- default: n(() => [
2259
- e[14] || (e[14] = d("span", null, " Move Screen Down ", -1))
2260
- ]),
2261
- _: 1
2262
- })) : S("", !0),
2263
- i(f),
2264
- d("span", null, N(s.target) + " " + N(s.screen), 1),
2265
- i(f),
2266
- i(m, { location: "top" }, {
2267
- activator: n(({ props: c }) => [
2268
- d("div", V(D(c)), [
2269
- R(i(u, {
2270
- "data-test": "minimize-screen-icon",
2271
- onClick: a.minMaxTransition
2272
- }, {
2273
- default: n(() => e[15] || (e[15] = [
2274
- _(" mdi-window-minimize ")
2275
- ])),
2276
- _: 1
2277
- }, 8, ["onClick"]), [
2278
- [L, l.expand]
2279
- ]),
2280
- R(i(u, {
2281
- "data-test": "maximize-screen-icon",
2282
- onClick: a.minMaxTransition
2283
- }, {
2284
- default: n(() => e[16] || (e[16] = [
2285
- _(" mdi-window-maximize ")
2286
- ])),
2287
- _: 1
2288
- }, 8, ["onClick"]), [
2289
- [L, !l.expand]
2290
- ])
2291
- ], 16)
2292
- ]),
2293
- default: n(() => [
2294
- R(d("span", null, " Minimize Screen ", 512), [
2295
- [L, l.expand]
2296
- ]),
2297
- R(d("span", null, " Maximize Screen ", 512), [
2298
- [L, !l.expand]
2299
- ])
2300
- ]),
2301
- _: 1
2302
- }),
2303
- s.showClose ? (w(), x(m, {
2304
- key: 3,
2305
- location: "top"
2306
- }, {
2307
- activator: n(({ props: c }) => [
2308
- d("div", V(D(c)), [
2309
- i(u, {
2310
- "data-test": "close-screen-icon",
2311
- onClick: e[1] || (e[1] = (b) => t.$emit("close-screen"))
2312
- }, {
2313
- default: n(() => e[17] || (e[17] = [
2314
- _(" mdi-close-box ")
2315
- ])),
2316
- _: 1
2317
- })
2318
- ], 16)
2319
- ]),
2320
- default: n(() => [
2321
- e[18] || (e[18] = d("span", null, " Close Screen ", -1))
2322
- ]),
2323
- _: 1
2324
- })) : S("", !0)
2325
- ]),
2326
- _: 1
2327
- }),
2328
- l.editDialog ? S("", !0) : (w(), x(k, { key: 0 }, {
2329
- default: n(() => [
2330
- R(d("div", Ae, [
2331
- i(g, {
2332
- style: { "pointer-events": "none" },
2333
- "model-value": l.errors.length !== 0,
2334
- opacity: "0.8",
2335
- absolute: ""
2336
- }, null, 8, ["model-value"]),
2337
- (w(), x(h, {
2338
- key: l.screenKey,
2339
- widgets: l.layoutStack[0].widgets,
2340
- "screen-values": l.screenValues,
2341
- "screen-time-zone": s.timeZone,
2342
- onAddItem: a.addItem,
2343
- onDeleteItem: a.deleteItem,
2344
- onOpen: a.open,
2345
- onClose: a.close,
2346
- onCloseAll: a.closeAll
2347
- }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
2348
- ], 512), [
2349
- [L, l.expand]
2350
- ])
2351
- ]),
2352
- _: 1
2353
- }))
2354
- ]),
2355
- _: 1
2356
- }, 8, ["min-height", "min-width"]),
2357
- l.editDialog ? (w(), x(T, {
2358
- key: 0,
2359
- modelValue: l.editDialog,
2360
- "onUpdate:modelValue": e[2] || (e[2] = (c) => l.editDialog = c),
2361
- target: s.target,
2362
- screen: s.screen,
2363
- definition: l.currentDefinition,
2364
- keywords: s.keywords,
2365
- errors: l.errors,
2366
- onSave: e[3] || (e[3] = (c) => a.saveEdit(c)),
2367
- onCancel: e[4] || (e[4] = (c) => a.cancelEdit()),
2368
- onDelete: e[5] || (e[5] = (c) => a.deleteScreen())
2369
- }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors"])) : S("", !0),
2370
- i(v, {
2371
- modelValue: l.errorDialog,
2372
- "onUpdate:modelValue": e[6] || (e[6] = (c) => l.errorDialog = c),
2373
- "max-width": "600"
2374
- }, {
2375
- default: n(() => [
2376
- i(p, { height: "24" }, {
2377
- default: n(() => [
2378
- i(f),
2379
- d("span", null, " Screen: " + N(s.target) + " " + N(s.screen) + " Errors ", 1),
2380
- i(f)
2381
- ]),
2382
- _: 1
2383
- }),
2384
- i(C, null, {
2385
- default: n(() => [
2386
- i(y, {
2387
- class: "errors",
2388
- readonly: "",
2389
- rows: "13",
2390
- "model-value": a.error
2391
- }, null, 8, ["model-value"])
2392
- ]),
2393
- _: 1
2394
- })
2395
- ]),
2396
- _: 1
2397
- }, 8, ["modelValue"])
2398
- ], 4);
2399
- }
2400
- const Qe = /* @__PURE__ */ A(Ee, [["render", Re], ["__scopeId", "data-v-97014e16"]]), Le = {
2401
- props: {
2402
- allowAll: {
2403
- type: Boolean,
2404
- default: !1
2405
- },
2406
- allowAllTargets: {
2407
- type: Boolean,
2408
- default: !1
2409
- },
2410
- buttonText: {
2411
- type: String,
2412
- default: null
2413
- },
2414
- chooseItem: {
2415
- type: Boolean,
2416
- default: !1
2417
- },
2418
- disabled: {
2419
- type: Boolean,
2420
- default: !1
2421
- },
2422
- initialTargetName: {
2423
- type: String,
2424
- default: ""
2425
- },
2426
- initialPacketName: {
2427
- type: String,
2428
- default: ""
2429
- },
2430
- initialItemName: {
2431
- type: String,
2432
- default: ""
2433
- },
2434
- selectTypes: {
2435
- type: Boolean,
2436
- default: !1
2437
- },
2438
- mode: {
2439
- type: String,
2440
- default: "tlm",
2441
- // TODO: add validators throughout
2442
- validator: (t) => ["cmd", "tlm"].includes(t)
2443
- },
2444
- unknown: {
2445
- type: Boolean,
2446
- default: !1
2447
- },
2448
- vertical: {
2449
- type: Boolean,
2450
- default: !1
2451
- },
2452
- hidden: {
2453
- type: Boolean,
2454
- default: !1
2455
- }
2456
- },
2457
- data() {
2458
- var t, e, s;
2459
- return {
2460
- targetNames: [],
2461
- selectedTargetName: (t = this.initialTargetName) == null ? void 0 : t.toUpperCase(),
2462
- packetNames: [],
2463
- selectedPacketName: (e = this.initialPacketName) == null ? void 0 : e.toUpperCase(),
2464
- itemNames: [],
2465
- selectedItemName: (s = this.initialItemName) == null ? void 0 : s.toUpperCase(),
2466
- valueTypes: ["CONVERTED", "RAW"],
2467
- selectedValueType: "CONVERTED",
2468
- reductionModes: [
2469
- // Map NONE to DECOM for clarity
2470
- { title: "NONE", value: "DECOM" },
2471
- { title: "REDUCED_MINUTE", value: "REDUCED_MINUTE" },
2472
- { title: "REDUCED_HOUR", value: "REDUCED_HOUR" },
2473
- { title: "REDUCED_DAY", value: "REDUCED_DAY" }
2474
- ],
2475
- selectedArrayIndex: null,
2476
- selectedReduced: "DECOM",
2477
- reducedTypes: ["MIN", "MAX", "AVG", "STDDEV"],
2478
- selectedReducedType: "AVG",
2479
- description: "",
2480
- hazardous: !1,
2481
- internalDisabled: !1,
2482
- packetsDisabled: !1,
2483
- itemsDisabled: !1,
2484
- api: null,
2485
- ALL: {
2486
- label: "[ ALL ]",
2487
- value: "ALL",
2488
- description: "ALL"
2489
- },
2490
- // Constant to indicate all packets or items
2491
- UNKNOWN: {
2492
- label: "[ UNKNOWN ]",
2493
- value: "UNKNOWN",
2494
- description: "UNKNOWN"
2495
- }
2496
- };
2497
- },
2498
- created() {
2499
- this.internalDisabled = !0, this.api = new U(), this.api.get_target_names().then((t) => {
2500
- this.targetNames = t.flatMap((e) => e == "UNKNOWN" ? [] : { label: e, value: e }), this.allowAllTargets && this.targetNames.unshift(this.ALL), this.selectedTargetName ? this.updatePackets() : (this.selectedTargetName = this.targetNames[0].value, this.targetNameChanged(this.selectedTargetName)), this.unknown && this.targetNames.push(this.UNKNOWN);
2501
- });
2502
- },
2503
- computed: {
2504
- actualButtonText: function() {
2505
- return this.selectedPacketName === "ALL" ? "Add Target" : this.selectedItemName === "ALL" ? "Add Packet" : this.buttonText;
2506
- },
2507
- autocompleteDisabled: function() {
2508
- return this.disabled || this.internalDisabled;
2509
- },
2510
- buttonDisabled: function() {
2511
- return this.disabled || this.internalDisabled || this.selectedTargetName === null || this.selectedPacketName === null || this.selectedItemNameWIndex === null;
2512
- },
2513
- colSize: function() {
2514
- return this.vertical ? 12 : !1;
2515
- },
2516
- selectedItemNameWIndex: function() {
2517
- return this.itemIsArray() && this.selectedArrayIndex !== null && this.selectedArrayIndex !== this.ALL.label ? `${this.selectedItemName}[${this.selectedArrayIndex}]` : this.selectedItemName;
2518
- }
2519
- },
2520
- watch: {
2521
- mode: function(t, e) {
2522
- this.selectedPacketName = null, this.selectedItemName = null, this.targetNameChanged(this.selectedTargetName);
2523
- },
2524
- chooseItem: function(t, e) {
2525
- t ? this.updateItems() : this.itemNames = [];
2526
- }
2527
- },
2528
- methods: {
2529
- updatePackets: function() {
2530
- if (this.selectedTargetName === "UNKNOWN") {
2531
- this.packetNames = [this.UNKNOWN], this.selectedPacketName = this.packetNames[0].value, this.updatePacketDetails(this.UNKNOWN.value), this.description = "UNKNOWN";
2532
- return;
2533
- }
2534
- if (this.selectedTargetName === "ALL") {
2535
- this.packetNames = [this.ALL], this.selectedPacketName = this.packetNames[0].value, this.updatePacketDetails(this.ALL.value), this.description = "ALL";
2536
- return;
2537
- }
2538
- this.internalDisabled = !0;
2539
- const t = this.mode === "tlm" ? "get_all_tlm_names" : "get_all_cmd_names";
2540
- this.api[t](this.selectedTargetName, this.hidden).then((e) => {
2541
- this.packetNames = e.map((r) => ({
2542
- label: r,
2543
- value: r
2544
- })), this.allowAll && this.packetNames.unshift(this.ALL), this.selectedPacketName || (this.selectedPacketName = this.packetNames[0].value), this.updatePacketDetails(this.selectedPacketName), this.packetNames.find((r) => r.value === this.selectedPacketName) && this.chooseItem && this.updateItems(), this.internalDisabled = !1;
2545
- });
2546
- },
2547
- updateItems: function() {
2548
- if (this.selectedPacketName === "ALL")
2549
- return;
2550
- this.internalDisabled = !0;
2551
- const t = this.mode === "tlm" ? "get_tlm" : "get_cmd";
2552
- this.api[t](this.selectedTargetName, this.selectedPacketName).then(
2553
- (e) => {
2554
- this.itemNames = e.items.map((s) => {
2555
- let r = s.name;
2556
- return s.data_type == "DERIVED" && (r += " *"), [
2557
- {
2558
- label: r,
2559
- value: s.name,
2560
- description: s.description,
2561
- array: s.array_size / s.bit_size
2562
- }
2563
- ];
2564
- }).reduce((s, r) => s.concat(r), []), this.itemNames.sort((s, r) => s.label > r.label ? 1 : -1), this.allowAll && this.itemNames.unshift(this.ALL), this.selectedItemName || (this.selectedItemName = this.itemNames[0].value), this.description = this.itemNames[0].description, this.itemIsArray(), this.$emit("on-set", {
2565
- targetName: this.selectedTargetName,
2566
- packetName: this.selectedPacketName,
2567
- itemName: this.selectedItemNameWIndex,
2568
- valueType: this.selectedValueType,
2569
- reduced: this.selectedReduced,
2570
- reducedType: this.selectedReducedType
2571
- }), this.internalDisabled = !1;
2572
- }
2573
- );
2574
- },
2575
- itemIsArray: function() {
2576
- let t = this.itemNames.findIndex(
2577
- (e) => e.value === this.selectedItemName
2578
- );
2579
- return t === -1 ? (this.selectedArrayIndex = null, !1) : isNaN(this.itemNames[t].array) ? (this.selectedArrayIndex = null, !1) : (this.selectedArrayIndex === null && (this.selectedArrayIndex = 0), !0);
2580
- },
2581
- arrayIndexes: function() {
2582
- let t = this.itemNames.findIndex(
2583
- (s) => s.value === this.selectedItemName
2584
- ), e = [...Array(this.itemNames[t].array).keys()];
2585
- return this.allowAll && e.unshift(this.ALL.label), e;
2586
- },
2587
- targetNameChanged: function(t) {
2588
- this.selectedTargetName = t, this.selectedPacketName = "", this.selectedItemName = "", t !== null && this.updatePackets();
2589
- },
2590
- packetNameChanged: function(t) {
2591
- this.selectedItemName = "", t !== null && this.updatePacketDetails(t);
2592
- },
2593
- updatePacketDetails: function(t) {
2594
- if (t === "ALL")
2595
- this.itemsDisabled = !0, this.internalDisabled = !1;
2596
- else {
2597
- this.itemsDisabled = !1;
2598
- const e = this.packetNames.find((s) => t === s.value);
2599
- if (e) {
2600
- this.selectedPacketName = e.value;
2601
- const s = this.mode === "tlm" ? "get_tlm" : "get_cmd";
2602
- this.api[s](this.selectedTargetName, this.selectedPacketName).then(
2603
- (r) => {
2604
- this.description = r.description, this.hazardous = r.hazardous;
2605
- }
2606
- );
2607
- }
2608
- }
2609
- this.chooseItem ? this.updateItems() : this.$emit("on-set", {
2610
- targetName: this.selectedTargetName,
2611
- packetName: this.selectedPacketName,
2612
- itemName: this.selectedItemNameWIndex,
2613
- valueType: this.selectedValueType,
2614
- reduced: this.selectedReduced,
2615
- reducedType: this.selectedReducedType
2616
- });
2617
- },
2618
- itemNameChanged: function(t) {
2619
- const e = this.itemNames.find((s) => t === s.value);
2620
- e && (this.itemIsArray(), this.selectedItemName = e.value, this.description = e.description, this.$emit("on-set", {
2621
- targetName: this.selectedTargetName,
2622
- packetName: this.selectedPacketName,
2623
- itemName: this.selectedItemNameWIndex,
2624
- valueType: this.selectedValueType,
2625
- reduced: this.selectedReduced,
2626
- reducedType: this.selectedReducedType
2627
- }));
2628
- },
2629
- indexChanged: function(t) {
2630
- this.$emit("on-set", {
2631
- targetName: this.selectedTargetName,
2632
- packetName: this.selectedPacketName,
2633
- itemName: this.selectedItemNameWIndex,
2634
- valueType: this.selectedValueType,
2635
- reduced: this.selectedReduced,
2636
- reducedType: this.selectedReducedType
2637
- });
2638
- },
2639
- buttonPressed: function() {
2640
- this.selectedPacketName === "ALL" ? this.allTargetPacketItems() : this.selectedItemName === "ALL" ? this.allPacketItems() : this.chooseItem ? this.$emit("addItem", {
2641
- targetName: this.selectedTargetName,
2642
- packetName: this.selectedPacketName,
2643
- itemName: this.selectedItemNameWIndex,
2644
- valueType: this.selectedValueType,
2645
- reduced: this.selectedReduced,
2646
- reducedType: this.selectedReducedType
2647
- }) : this.$emit("addItem", {
2648
- targetName: this.selectedTargetName,
2649
- packetName: this.selectedPacketName,
2650
- valueType: this.selectedValueType,
2651
- reduced: this.selectedReduced,
2652
- reducedType: this.selectedReducedType
2653
- });
2654
- },
2655
- allTargetPacketItems: function() {
2656
- this.packetNames.forEach((t) => {
2657
- if (t === this.ALL) return;
2658
- const e = this.mode === "tlm" ? "get_tlm" : "get_cmd";
2659
- this.api[e](this.selectedTargetName, t.value).then(
2660
- (s) => {
2661
- s.items.forEach((r) => {
2662
- this.$emit("addItem", {
2663
- targetName: this.selectedTargetName,
2664
- packetName: t.value,
2665
- itemName: r.name,
2666
- valueType: this.selectedValueType,
2667
- reduced: this.selectedReduced,
2668
- reducedType: this.selectedReducedType
2669
- });
2670
- });
2671
- }
2672
- );
2673
- });
2674
- },
2675
- allPacketItems: function() {
2676
- this.itemNames.forEach((t) => {
2677
- t !== this.ALL && this.$emit("addItem", {
2678
- targetName: this.selectedTargetName,
2679
- packetName: this.selectedPacketName,
2680
- itemName: t.value,
2681
- valueType: this.selectedValueType,
2682
- reduced: this.selectedReduced,
2683
- reducedType: this.selectedReducedType
2684
- });
2685
- });
2686
- }
2687
- }
2688
- }, Ue = { class: "pt-4 pb-4" };
2689
- function Oe(t, e, s, r, l, a) {
2690
- const u = o("v-autocomplete"), m = o("v-col"), f = o("v-combobox"), p = o("v-btn"), g = o("v-row");
2691
- return w(), M("div", Ue, [
2692
- i(g, null, {
2693
- default: n(() => [
2694
- i(m, {
2695
- cols: a.colSize,
2696
- class: "select",
2697
- "data-test": "select-target"
2698
- }, {
2699
- default: n(() => [
2700
- i(u, {
2701
- label: "Select Target",
2702
- "hide-details": "",
2703
- density: "compact",
2704
- variant: "outlined",
2705
- "onUpdate:modelValue": [
2706
- a.targetNameChanged,
2707
- e[0] || (e[0] = (h) => l.selectedTargetName = h)
2708
- ],
2709
- items: l.targetNames,
2710
- "item-title": "label",
2711
- "item-value": "value",
2712
- modelValue: l.selectedTargetName
2713
- }, null, 8, ["onUpdate:modelValue", "items", "modelValue"])
2714
- ]),
2715
- _: 1
2716
- }, 8, ["cols"]),
2717
- i(m, {
2718
- cols: a.colSize,
2719
- class: "select",
2720
- "data-test": "select-packet"
2721
- }, {
2722
- default: n(() => [
2723
- i(u, {
2724
- label: "Select Packet",
2725
- "hide-details": "",
2726
- density: "compact",
2727
- variant: "outlined",
2728
- "onUpdate:modelValue": [
2729
- a.packetNameChanged,
2730
- e[1] || (e[1] = (h) => l.selectedPacketName = h)
2731
- ],
2732
- disabled: l.packetsDisabled || a.autocompleteDisabled,
2733
- items: l.packetNames,
2734
- "item-title": "label",
2735
- "item-value": "value",
2736
- modelValue: l.selectedPacketName
2737
- }, null, 8, ["onUpdate:modelValue", "disabled", "items", "modelValue"])
2738
- ]),
2739
- _: 1
2740
- }, 8, ["cols"]),
2741
- s.chooseItem ? (w(), x(m, {
2742
- key: 0,
2743
- cols: a.colSize,
2744
- class: "select",
2745
- "data-test": "select-item"
2746
- }, {
2747
- default: n(() => [
2748
- i(u, {
2749
- label: "Select Item",
2750
- "hide-details": "",
2751
- density: "compact",
2752
- variant: "outlined",
2753
- "onUpdate:modelValue": [
2754
- e[2] || (e[2] = (h) => a.itemNameChanged(h)),
2755
- e[3] || (e[3] = (h) => l.selectedItemName = h)
2756
- ],
2757
- disabled: l.itemsDisabled || a.autocompleteDisabled,
2758
- items: l.itemNames,
2759
- "item-title": "label",
2760
- "item-value": "value",
2761
- modelValue: l.selectedItemName
2762
- }, null, 8, ["disabled", "items", "modelValue"])
2763
- ]),
2764
- _: 1
2765
- }, 8, ["cols"])) : S("", !0),
2766
- s.chooseItem && a.itemIsArray() ? (w(), x(m, {
2767
- key: 1,
2768
- cols: "1",
2769
- class: "select",
2770
- "data-test": "array-index"
2771
- }, {
2772
- default: n(() => [
2773
- i(f, {
2774
- label: "Index",
2775
- "hide-details": "",
2776
- density: "compact",
2777
- variant: "outlined",
2778
- "onUpdate:modelValue": [
2779
- e[4] || (e[4] = (h) => a.indexChanged(h)),
2780
- e[5] || (e[5] = (h) => l.selectedArrayIndex = h)
2781
- ],
2782
- disabled: l.itemsDisabled || a.autocompleteDisabled,
2783
- items: a.arrayIndexes(),
2784
- "item-title": "label",
2785
- "item-value": "value",
2786
- modelValue: l.selectedArrayIndex
2787
- }, null, 8, ["disabled", "items", "modelValue"])
2788
- ]),
2789
- _: 1
2790
- })) : S("", !0),
2791
- s.buttonText ? (w(), x(m, {
2792
- key: 2,
2793
- cols: a.colSize,
2794
- style: { "max-width": "140px" }
2795
- }, {
2796
- default: n(() => [
2797
- i(p, {
2798
- disabled: a.buttonDisabled,
2799
- color: "primary",
2800
- "data-test": "select-send",
2801
- onClick: a.buttonPressed
2802
- }, {
2803
- default: n(() => [
2804
- _(N(a.actualButtonText), 1)
2805
- ]),
2806
- _: 1
2807
- }, 8, ["disabled", "onClick"])
2808
- ]),
2809
- _: 1
2810
- }, 8, ["cols"])) : S("", !0)
2811
- ]),
2812
- _: 1
2813
- }),
2814
- s.selectTypes ? (w(), x(g, { key: 0 }, {
2815
- default: n(() => [
2816
- i(m, {
2817
- cols: a.colSize,
2818
- class: "select",
2819
- "data-test": "data-type"
2820
- }, {
2821
- default: n(() => [
2822
- i(u, {
2823
- label: "Value Type",
2824
- "hide-details": "",
2825
- density: "compact",
2826
- variant: "outlined",
2827
- items: l.valueTypes,
2828
- modelValue: l.selectedValueType,
2829
- "onUpdate:modelValue": e[6] || (e[6] = (h) => l.selectedValueType = h)
2830
- }, null, 8, ["items", "modelValue"])
2831
- ]),
2832
- _: 1
2833
- }, 8, ["cols"]),
2834
- i(m, {
2835
- cols: a.colSize,
2836
- class: "select",
2837
- "data-test": "reduced"
2838
- }, {
2839
- default: n(() => [
2840
- i(u, {
2841
- label: "Reduced",
2842
- "hide-details": "",
2843
- density: "compact",
2844
- variant: "outlined",
2845
- items: l.reductionModes,
2846
- modelValue: l.selectedReduced,
2847
- "onUpdate:modelValue": e[7] || (e[7] = (h) => l.selectedReduced = h)
2848
- }, null, 8, ["items", "modelValue"])
2849
- ]),
2850
- _: 1
2851
- }, 8, ["cols"]),
2852
- i(m, {
2853
- cols: a.colSize,
2854
- class: "select",
2855
- "data-test": "reduced-type"
2856
- }, {
2857
- default: n(() => [
2858
- i(u, {
2859
- label: "Reduced Type",
2860
- "hide-details": "",
2861
- density: "compact",
2862
- variant: "outlined",
2863
- disabled: l.selectedReduced === "DECOM",
2864
- items: l.reducedTypes,
2865
- modelValue: l.selectedReducedType,
2866
- "onUpdate:modelValue": e[8] || (e[8] = (h) => l.selectedReducedType = h)
2867
- }, null, 8, ["disabled", "items", "modelValue"])
2868
- ]),
2869
- _: 1
2870
- }, 8, ["cols"]),
2871
- i(m, {
2872
- cols: a.colSize,
2873
- style: { "max-width": "140px" }
2874
- }, null, 8, ["cols"])
2875
- ]),
2876
- _: 1
2877
- })) : S("", !0),
2878
- i(g, {
2879
- "no-gutters": "",
2880
- class: "pt-3 pb-3"
2881
- }, {
2882
- default: n(() => [
2883
- l.hazardous ? (w(), x(m, {
2884
- key: 0,
2885
- cols: a.colSize,
2886
- class: "openc3-yellow"
2887
- }, {
2888
- default: n(() => [
2889
- _("Description: " + N(l.description) + " (HAZARDOUS)", 1)
2890
- ]),
2891
- _: 1
2892
- }, 8, ["cols"])) : (w(), x(m, {
2893
- key: 1,
2894
- cols: a.colSize
2895
- }, {
2896
- default: n(() => [
2897
- _("Description: " + N(l.description), 1)
2898
- ]),
2899
- _: 1
2900
- }, 8, ["cols"]))
2901
- ]),
2902
- _: 1
2903
- })
2904
- ]);
2905
- }
2906
- const $e = /* @__PURE__ */ A(Le, [["render", Oe], ["__scopeId", "data-v-c1c7e787"]]);
2907
- export {
2908
- it as AceEditorModes,
2909
- Ge as Config,
2910
- rt as CriticalCmdDialog,
2911
- nt as DataViewerComponent,
2912
- at as DataViewerHistoryComponent,
2913
- ct as DetailsDialog,
2914
- pe as EditScreenDialog,
2915
- Xe as Empty,
2916
- mt as EnvironmentChooser,
2917
- Ye as EnvironmentDialog,
2918
- je as FileOpenSaveDialog,
2919
- pt as Graph,
2920
- gt as GraphEditDialog,
2921
- vt as GraphEditItemDialog,
2922
- qe as LogMessages,
2923
- Je as NotFound,
2924
- Ze as OpenConfigDialog,
2925
- Qe as Openc3Screen,
2926
- st as OutputDialog,
2927
- He as SaveConfigDialog,
2928
- te as ScreenCompleter,
2929
- ht as ScriptChooser,
2930
- yt as SimpleTextDialog,
2931
- $e as TargetPacketItemChooser,
2932
- wt as TextBoxDialog,
2933
- xt as TopBar,
2934
- Ct as UpgradeToEnterpriseDialog
2935
- };
2936
- //# sourceMappingURL=components.js.map