@openc3/vue-common 6.2.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/dist/ArrayWidget-BIQi_bWC.cjs +3 -0
  2. package/dist/ArrayWidget-BIQi_bWC.cjs.map +1 -0
  3. package/dist/ArrayWidget-BxEO5hEG.js +106 -0
  4. package/dist/ArrayWidget-BxEO5hEG.js.map +1 -0
  5. package/dist/ArrayplotWidget-B_VPoV4v.js +199 -0
  6. package/dist/ArrayplotWidget-B_VPoV4v.js.map +1 -0
  7. package/dist/ArrayplotWidget-Donxhd8_.cjs +2 -0
  8. package/dist/ArrayplotWidget-Donxhd8_.cjs.map +1 -0
  9. package/dist/AstroStatus-CILMWL6F.cjs +2 -0
  10. package/dist/AstroStatus-CILMWL6F.cjs.map +1 -0
  11. package/dist/AstroStatus-CY9VkeTN.js +40 -0
  12. package/dist/AstroStatus-CY9VkeTN.js.map +1 -0
  13. package/dist/BarColumn-C9dkpg2O.js +108 -0
  14. package/dist/BarColumn-C9dkpg2O.js.map +1 -0
  15. package/dist/BarColumn-CyRSZHMh.cjs +2 -0
  16. package/dist/BarColumn-CyRSZHMh.cjs.map +1 -0
  17. package/dist/BlockWidget-CuefOin6.js +112 -0
  18. package/dist/BlockWidget-CuefOin6.js.map +1 -0
  19. package/dist/BlockWidget-DPLN1jgj.cjs +3 -0
  20. package/dist/BlockWidget-DPLN1jgj.cjs.map +1 -0
  21. package/dist/ButtonWidget-B6HM0Doo.js +166 -0
  22. package/dist/ButtonWidget-B6HM0Doo.js.map +1 -0
  23. package/dist/ButtonWidget-DccYzIY3.cjs +3 -0
  24. package/dist/ButtonWidget-DccYzIY3.cjs.map +1 -0
  25. package/dist/CanvasWidget-BzTU9rc9.cjs +2 -0
  26. package/dist/CanvasWidget-BzTU9rc9.cjs.map +1 -0
  27. package/dist/CanvasWidget-DZQGG-yQ.js +39 -0
  28. package/dist/CanvasWidget-DZQGG-yQ.js.map +1 -0
  29. package/dist/CanvasdotWidget-6wuCSnw_.js +19 -0
  30. package/dist/CanvasdotWidget-6wuCSnw_.js.map +1 -0
  31. package/dist/CanvasdotWidget-B7VTS1QI.cjs +2 -0
  32. package/dist/CanvasdotWidget-B7VTS1QI.cjs.map +1 -0
  33. package/dist/CanvasimageWidget-BwYpfmDE.cjs +2 -0
  34. package/dist/CanvasimageWidget-BwYpfmDE.cjs.map +1 -0
  35. package/dist/CanvasimageWidget-mhcPpAuN.js +58 -0
  36. package/dist/CanvasimageWidget-mhcPpAuN.js.map +1 -0
  37. package/dist/CanvasimagevalueWidget-Cx-dH8Gc.js +107 -0
  38. package/dist/CanvasimagevalueWidget-Cx-dH8Gc.js.map +1 -0
  39. package/dist/CanvasimagevalueWidget-E_NsZ82T.cjs +2 -0
  40. package/dist/CanvasimagevalueWidget-E_NsZ82T.cjs.map +1 -0
  41. package/dist/CanvaslabelWidget-BBDuXWfU.cjs +2 -0
  42. package/dist/CanvaslabelWidget-BBDuXWfU.cjs.map +1 -0
  43. package/dist/CanvaslabelWidget-CQZCeohU.js +23 -0
  44. package/dist/CanvaslabelWidget-CQZCeohU.js.map +1 -0
  45. package/dist/CanvaslabelvalueWidget-CwmYDCjr.js +42 -0
  46. package/dist/CanvaslabelvalueWidget-CwmYDCjr.js.map +1 -0
  47. package/dist/CanvaslabelvalueWidget-DAdu7ujn.cjs +2 -0
  48. package/dist/CanvaslabelvalueWidget-DAdu7ujn.cjs.map +1 -0
  49. package/dist/CanvaslineWidget-Bv5da1Vy.cjs +2 -0
  50. package/dist/CanvaslineWidget-Bv5da1Vy.cjs.map +1 -0
  51. package/dist/CanvaslineWidget-nTP3fJB4.js +28 -0
  52. package/dist/CanvaslineWidget-nTP3fJB4.js.map +1 -0
  53. package/dist/CanvaslinevalueWidget-BVfUB96K.cjs +2 -0
  54. package/dist/CanvaslinevalueWidget-BVfUB96K.cjs.map +1 -0
  55. package/dist/CanvaslinevalueWidget-C3sJnjLQ.js +44 -0
  56. package/dist/CanvaslinevalueWidget-C3sJnjLQ.js.map +1 -0
  57. package/dist/CheckbuttonWidget-5-8YDsQL.js +37 -0
  58. package/dist/CheckbuttonWidget-5-8YDsQL.js.map +1 -0
  59. package/dist/CheckbuttonWidget-BGqD-BGc.cjs +2 -0
  60. package/dist/CheckbuttonWidget-BGqD-BGc.cjs.map +1 -0
  61. package/dist/ComboboxWidget-DoHMlSAr.cjs +2 -0
  62. package/dist/ComboboxWidget-DoHMlSAr.cjs.map +1 -0
  63. package/dist/ComboboxWidget-DzBL8h9f.js +37 -0
  64. package/dist/ComboboxWidget-DzBL8h9f.js.map +1 -0
  65. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs +2 -0
  66. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs.map +1 -0
  67. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js +10 -0
  68. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js.map +1 -0
  69. package/dist/CriticalCmdDialog-DLEasFsx.js +270 -0
  70. package/dist/CriticalCmdDialog-DLEasFsx.js.map +1 -0
  71. package/dist/CriticalCmdDialog-DoLBrU2k.cjs +2 -0
  72. package/dist/CriticalCmdDialog-DoLBrU2k.cjs.map +1 -0
  73. package/dist/DateWidget-CW7Od7lB.js +40 -0
  74. package/dist/DateWidget-CW7Od7lB.js.map +1 -0
  75. package/dist/DateWidget-DKZz1J9J.cjs +2 -0
  76. package/dist/DateWidget-DKZz1J9J.cjs.map +1 -0
  77. package/dist/DetailsDialog-BvbziA7Y.js +767 -0
  78. package/dist/DetailsDialog-BvbziA7Y.js.map +1 -0
  79. package/dist/DetailsDialog-CiuQYvJK.cjs +2 -0
  80. package/dist/DetailsDialog-CiuQYvJK.cjs.map +1 -0
  81. package/dist/DynamicWidget-3wHr6Ng-.cjs +2 -0
  82. package/dist/DynamicWidget-3wHr6Ng-.cjs.map +1 -0
  83. package/dist/DynamicWidget-gFSYxzvT.js +35 -0
  84. package/dist/DynamicWidget-gFSYxzvT.js.map +1 -0
  85. package/dist/FormatvalueWidget-CGpnTqVH.js +44 -0
  86. package/dist/FormatvalueWidget-CGpnTqVH.js.map +1 -0
  87. package/dist/FormatvalueWidget-DFrbeKb9.cjs +2 -0
  88. package/dist/FormatvalueWidget-DFrbeKb9.cjs.map +1 -0
  89. package/dist/Graph-3rkhFP3G.js +1983 -0
  90. package/dist/Graph-3rkhFP3G.js.map +1 -0
  91. package/dist/Graph-C3vGMcos.cjs +2 -0
  92. package/dist/Graph-C3vGMcos.cjs.map +1 -0
  93. package/dist/GraphWidget-22NxFa9k.cjs +2 -0
  94. package/dist/GraphWidget-22NxFa9k.cjs.map +1 -0
  95. package/dist/GraphWidget-Dycey-mj.js +130 -0
  96. package/dist/GraphWidget-Dycey-mj.js.map +1 -0
  97. package/dist/HorizontalWidget-BBeB0eBI.cjs +2 -0
  98. package/dist/HorizontalWidget-BBeB0eBI.cjs.map +1 -0
  99. package/dist/HorizontalWidget-D31NRWy5.js +41 -0
  100. package/dist/HorizontalWidget-D31NRWy5.js.map +1 -0
  101. package/dist/HorizontalboxWidget-Br8dSVHD.js +38 -0
  102. package/dist/HorizontalboxWidget-Br8dSVHD.js.map +1 -0
  103. package/dist/HorizontalboxWidget-DsdzrCJx.cjs +2 -0
  104. package/dist/HorizontalboxWidget-DsdzrCJx.cjs.map +1 -0
  105. package/dist/HorizontallineWidget-BCKOQase.cjs +2 -0
  106. package/dist/HorizontallineWidget-BCKOQase.cjs.map +1 -0
  107. package/dist/HorizontallineWidget-CbxREBYI.js +11 -0
  108. package/dist/HorizontallineWidget-CbxREBYI.js.map +1 -0
  109. package/dist/IframeWidget-CZwsTgvX.cjs +2 -0
  110. package/dist/IframeWidget-CZwsTgvX.cjs.map +1 -0
  111. package/dist/IframeWidget-Ctj8OIcG.js +90 -0
  112. package/dist/IframeWidget-Ctj8OIcG.js.map +1 -0
  113. package/dist/ImageLoader-BrNrCBvi.js +36 -0
  114. package/dist/ImageLoader-BrNrCBvi.js.map +1 -0
  115. package/dist/ImageLoader-D_Gq-KxR.cjs +2 -0
  116. package/dist/ImageLoader-D_Gq-KxR.cjs.map +1 -0
  117. package/dist/ImageviewerWidget-DwRPFSLR.cjs +2 -0
  118. package/dist/ImageviewerWidget-DwRPFSLR.cjs.map +1 -0
  119. package/dist/ImageviewerWidget-XrsqxmLo.js +37 -0
  120. package/dist/ImageviewerWidget-XrsqxmLo.js.map +1 -0
  121. package/dist/InterfacesTab-CLaicsHA.cjs +2 -0
  122. package/dist/InterfacesTab-CLaicsHA.cjs.map +1 -0
  123. package/dist/InterfacesTab-DAeNlGlB.js +93 -0
  124. package/dist/InterfacesTab-DAeNlGlB.js.map +1 -0
  125. package/dist/LabelWidget-C-s8OVmA.cjs +2 -0
  126. package/dist/LabelWidget-C-s8OVmA.cjs.map +1 -0
  127. package/dist/LabelWidget-t7I87dp7.js +48 -0
  128. package/dist/LabelWidget-t7I87dp7.js.map +1 -0
  129. package/dist/LabelledWidget-C7TDf92M.js +42 -0
  130. package/dist/LabelledWidget-C7TDf92M.js.map +1 -0
  131. package/dist/LabelledWidget-DUpHxc9z.cjs +2 -0
  132. package/dist/LabelledWidget-DUpHxc9z.cjs.map +1 -0
  133. package/dist/LabelprogressbarWidget-D6cpayCR.cjs +2 -0
  134. package/dist/LabelprogressbarWidget-D6cpayCR.cjs.map +1 -0
  135. package/dist/LabelprogressbarWidget-wwLURt1u.js +43 -0
  136. package/dist/LabelprogressbarWidget-wwLURt1u.js.map +1 -0
  137. package/dist/LabelsparklineWidget-B3awLUyP.js +44 -0
  138. package/dist/LabelsparklineWidget-B3awLUyP.js.map +1 -0
  139. package/dist/LabelsparklineWidget-CJRnLETe.cjs +2 -0
  140. package/dist/LabelsparklineWidget-CJRnLETe.cjs.map +1 -0
  141. package/dist/LabelvalueWidget-Zx_yHCtl.js +58 -0
  142. package/dist/LabelvalueWidget-Zx_yHCtl.js.map +1 -0
  143. package/dist/LabelvalueWidget-owiMSCYl.cjs +2 -0
  144. package/dist/LabelvalueWidget-owiMSCYl.cjs.map +1 -0
  145. package/dist/LabelvaluedescWidget-BBSBh4vI.js +59 -0
  146. package/dist/LabelvaluedescWidget-BBSBh4vI.js.map +1 -0
  147. package/dist/LabelvaluedescWidget-MRmZBUc0.cjs +2 -0
  148. package/dist/LabelvaluedescWidget-MRmZBUc0.cjs.map +1 -0
  149. package/dist/LabelvaluelimitsbarWidget-BQ2XYPNE.cjs +2 -0
  150. package/dist/LabelvaluelimitsbarWidget-BQ2XYPNE.cjs.map +1 -0
  151. package/dist/LabelvaluelimitsbarWidget-CZueHYWG.js +57 -0
  152. package/dist/LabelvaluelimitsbarWidget-CZueHYWG.js.map +1 -0
  153. package/dist/LabelvaluelimitscolumnWidget-BTvzyQMq.js +47 -0
  154. package/dist/LabelvaluelimitscolumnWidget-BTvzyQMq.js.map +1 -0
  155. package/dist/LabelvaluelimitscolumnWidget-DNmVpU8J.cjs +2 -0
  156. package/dist/LabelvaluelimitscolumnWidget-DNmVpU8J.cjs.map +1 -0
  157. package/dist/LabelvaluerangebarWidget-BhYTBgDq.js +79 -0
  158. package/dist/LabelvaluerangebarWidget-BhYTBgDq.js.map +1 -0
  159. package/dist/LabelvaluerangebarWidget-DL0U8cbw.cjs +2 -0
  160. package/dist/LabelvaluerangebarWidget-DL0U8cbw.cjs.map +1 -0
  161. package/dist/Layout-Bh7VzCZd.js +14 -0
  162. package/dist/Layout-Bh7VzCZd.js.map +1 -0
  163. package/dist/Layout-DRL0EeSA.cjs +2 -0
  164. package/dist/Layout-DRL0EeSA.cjs.map +1 -0
  165. package/dist/LedWidget-B8rjFe1b.cjs +2 -0
  166. package/dist/LedWidget-B8rjFe1b.cjs.map +1 -0
  167. package/dist/LedWidget-CxJjJBBS.js +71 -0
  168. package/dist/LedWidget-CxJjJBBS.js.map +1 -0
  169. package/dist/LimitsbarWidget-CYIH8fdp.cjs +2 -0
  170. package/dist/LimitsbarWidget-CYIH8fdp.cjs.map +1 -0
  171. package/dist/LimitsbarWidget-Djui0IpK.js +69 -0
  172. package/dist/LimitsbarWidget-Djui0IpK.js.map +1 -0
  173. package/dist/LimitscolorWidget-CS0wpX9A.cjs +2 -0
  174. package/dist/LimitscolorWidget-CS0wpX9A.cjs.map +1 -0
  175. package/dist/LimitscolorWidget-DdmvKzmx.js +63 -0
  176. package/dist/LimitscolorWidget-DdmvKzmx.js.map +1 -0
  177. package/dist/LimitscolumnWidget-C_UW6xKq.cjs +2 -0
  178. package/dist/LimitscolumnWidget-C_UW6xKq.cjs.map +1 -0
  179. package/dist/LimitscolumnWidget-Cc19IEjq.js +66 -0
  180. package/dist/LimitscolumnWidget-Cc19IEjq.js.map +1 -0
  181. package/dist/LinegraphWidget-8td_PqgU.cjs +2 -0
  182. package/dist/LinegraphWidget-8td_PqgU.cjs.map +1 -0
  183. package/dist/LinegraphWidget-BtieJxeL.js +39 -0
  184. package/dist/LinegraphWidget-BtieJxeL.js.map +1 -0
  185. package/dist/MatrixbycolumnsWidget-CGOeCNW2.cjs +2 -0
  186. package/dist/MatrixbycolumnsWidget-CGOeCNW2.cjs.map +1 -0
  187. package/dist/MatrixbycolumnsWidget-DnExVRF8.js +56 -0
  188. package/dist/MatrixbycolumnsWidget-DnExVRF8.js.map +1 -0
  189. package/dist/MicroservicesTab-IbTmbPxO.js +268 -0
  190. package/dist/MicroservicesTab-IbTmbPxO.js.map +1 -0
  191. package/dist/MicroservicesTab-uMC8NebS.cjs +2 -0
  192. package/dist/MicroservicesTab-uMC8NebS.cjs.map +1 -0
  193. package/dist/OutputDialog-B4Q0QMJ1.cjs +2 -0
  194. package/dist/OutputDialog-B4Q0QMJ1.cjs.map +1 -0
  195. package/dist/OutputDialog-Ci5OT_fH.js +245 -0
  196. package/dist/OutputDialog-Ci5OT_fH.js.map +1 -0
  197. package/dist/PackagesTab-BX8YP3H1.js +332 -0
  198. package/dist/PackagesTab-BX8YP3H1.js.map +1 -0
  199. package/dist/PackagesTab-eYbk2vw7.cjs +2 -0
  200. package/dist/PackagesTab-eYbk2vw7.cjs.map +1 -0
  201. package/dist/PluginsTab-Ck3DvEGm.cjs +6 -0
  202. package/dist/PluginsTab-Ck3DvEGm.cjs.map +1 -0
  203. package/dist/PluginsTab-Ds3jk64b.js +599 -0
  204. package/dist/PluginsTab-Ds3jk64b.js.map +1 -0
  205. package/dist/ProgressbarWidget-CUIAYySg.cjs +2 -0
  206. package/dist/ProgressbarWidget-CUIAYySg.cjs.map +1 -0
  207. package/dist/ProgressbarWidget-DIfqhHRE.js +46 -0
  208. package/dist/ProgressbarWidget-DIfqhHRE.js.map +1 -0
  209. package/dist/RadiobuttonWidget-Cjk1JAP_.cjs +2 -0
  210. package/dist/RadiobuttonWidget-Cjk1JAP_.cjs.map +1 -0
  211. package/dist/RadiobuttonWidget-QzIkNP7m.js +34 -0
  212. package/dist/RadiobuttonWidget-QzIkNP7m.js.map +1 -0
  213. package/dist/RadiogroupWidget-B4lkYWaC.cjs +2 -0
  214. package/dist/RadiogroupWidget-B4lkYWaC.cjs.map +1 -0
  215. package/dist/RadiogroupWidget-Ci9sCX39.js +48 -0
  216. package/dist/RadiogroupWidget-Ci9sCX39.js.map +1 -0
  217. package/dist/RangebarWidget-CN0YuHqy.js +67 -0
  218. package/dist/RangebarWidget-CN0YuHqy.js.map +1 -0
  219. package/dist/RangebarWidget-nl0rzj93.cjs +2 -0
  220. package/dist/RangebarWidget-nl0rzj93.cjs.map +1 -0
  221. package/dist/RedisTab-CVimDkIE.js +135 -0
  222. package/dist/RedisTab-CVimDkIE.js.map +1 -0
  223. package/dist/RedisTab-DhS4GHDj.cjs +2 -0
  224. package/dist/RedisTab-DhS4GHDj.cjs.map +1 -0
  225. package/dist/RollupWidget-Bgudi_bt.cjs +2 -0
  226. package/dist/RollupWidget-Bgudi_bt.cjs.map +1 -0
  227. package/dist/RollupWidget-y4jBtJB2.js +83 -0
  228. package/dist/RollupWidget-y4jBtJB2.js.map +1 -0
  229. package/dist/RoutersTab-CzO10cVP.cjs +2 -0
  230. package/dist/RoutersTab-CzO10cVP.cjs.map +1 -0
  231. package/dist/RoutersTab-Dki_66av.js +95 -0
  232. package/dist/RoutersTab-Dki_66av.js.map +1 -0
  233. package/dist/ScriptChooser-BNm_zXxX.cjs +2 -0
  234. package/dist/ScriptChooser-BNm_zXxX.cjs.map +1 -0
  235. package/dist/ScriptChooser-l5i8c8KP.js +199 -0
  236. package/dist/ScriptChooser-l5i8c8KP.js.map +1 -0
  237. package/dist/ScrollwindowWidget-BIiV7xwi.cjs +2 -0
  238. package/dist/ScrollwindowWidget-BIiV7xwi.cjs.map +1 -0
  239. package/dist/ScrollwindowWidget-CBzYk4Y3.js +45 -0
  240. package/dist/ScrollwindowWidget-CBzYk4Y3.js.map +1 -0
  241. package/dist/SecretsTab-BSzFZ81X.cjs +2 -0
  242. package/dist/SecretsTab-BSzFZ81X.cjs.map +1 -0
  243. package/dist/SecretsTab-BjviaTxh.js +202 -0
  244. package/dist/SecretsTab-BjviaTxh.js.map +1 -0
  245. package/dist/SettingsTab-Bo_dYXgb.js +1382 -0
  246. package/dist/SettingsTab-Bo_dYXgb.js.map +1 -0
  247. package/dist/SettingsTab-DH8LAAoG.cjs +3 -0
  248. package/dist/SettingsTab-DH8LAAoG.cjs.map +1 -0
  249. package/dist/SignalWidget-CvZkvejy.cjs +2 -0
  250. package/dist/SignalWidget-CvZkvejy.cjs.map +1 -0
  251. package/dist/SignalWidget-DQ5Uc2uV.js +66 -0
  252. package/dist/SignalWidget-DQ5Uc2uV.js.map +1 -0
  253. package/dist/SimpleTextDialog-CheuP_ls.js +108 -0
  254. package/dist/SimpleTextDialog-CheuP_ls.js.map +1 -0
  255. package/dist/SimpleTextDialog-DmeNMMCR.cjs +2 -0
  256. package/dist/SimpleTextDialog-DmeNMMCR.cjs.map +1 -0
  257. package/dist/SpacerWidget-6rsc_dSM.js +19 -0
  258. package/dist/SpacerWidget-6rsc_dSM.js.map +1 -0
  259. package/dist/SpacerWidget-BBJR6HBQ.cjs +2 -0
  260. package/dist/SpacerWidget-BBJR6HBQ.cjs.map +1 -0
  261. package/dist/SparklineWidget-BxBLnjAO.cjs +2 -0
  262. package/dist/SparklineWidget-BxBLnjAO.cjs.map +1 -0
  263. package/dist/SparklineWidget-CZtvu2ss.js +48 -0
  264. package/dist/SparklineWidget-CZtvu2ss.js.map +1 -0
  265. package/dist/TabbookWidget-DNALU0jl.js +66 -0
  266. package/dist/TabbookWidget-DNALU0jl.js.map +1 -0
  267. package/dist/TabbookWidget-DyFQnA10.cjs +2 -0
  268. package/dist/TabbookWidget-DyFQnA10.cjs.map +1 -0
  269. package/dist/TargetsTab-Cd8U1aN_.js +129 -0
  270. package/dist/TargetsTab-Cd8U1aN_.js.map +1 -0
  271. package/dist/TargetsTab-DMiOliqg.cjs +2 -0
  272. package/dist/TargetsTab-DMiOliqg.cjs.map +1 -0
  273. package/dist/TextBoxDialog-DvUf3Cak.cjs +2 -0
  274. package/dist/TextBoxDialog-DvUf3Cak.cjs.map +1 -0
  275. package/dist/TextBoxDialog-fHkDTtzI.js +110 -0
  276. package/dist/TextBoxDialog-fHkDTtzI.js.map +1 -0
  277. package/dist/TextboxWidget-5hqPj74D.js +93 -0
  278. package/dist/TextboxWidget-5hqPj74D.js.map +1 -0
  279. package/dist/TextboxWidget-D6lW_dsU.cjs +2 -0
  280. package/dist/TextboxWidget-D6lW_dsU.cjs.map +1 -0
  281. package/dist/TextfieldWidget-Df0ANSiU.js +37 -0
  282. package/dist/TextfieldWidget-Df0ANSiU.js.map +1 -0
  283. package/dist/TextfieldWidget-iHN7-fyF.cjs +2 -0
  284. package/dist/TextfieldWidget-iHN7-fyF.cjs.map +1 -0
  285. package/dist/TimeWidget-C3NZqTEG.cjs +2 -0
  286. package/dist/TimeWidget-C3NZqTEG.cjs.map +1 -0
  287. package/dist/TimeWidget-C6XQMUG2.js +40 -0
  288. package/dist/TimeWidget-C6XQMUG2.js.map +1 -0
  289. package/dist/TitleWidget-B9SPUlbW.js +26 -0
  290. package/dist/TitleWidget-B9SPUlbW.js.map +1 -0
  291. package/dist/TitleWidget-CWZs33c4.cjs +2 -0
  292. package/dist/TitleWidget-CWZs33c4.cjs.map +1 -0
  293. package/dist/ToolsTab-CUpUmkZL.cjs +7 -0
  294. package/dist/ToolsTab-CUpUmkZL.cjs.map +1 -0
  295. package/dist/ToolsTab-Cgpb2nAW.js +1521 -0
  296. package/dist/ToolsTab-Cgpb2nAW.js.map +1 -0
  297. package/dist/TopBar-DuXL27iD.cjs +2 -0
  298. package/dist/TopBar-DuXL27iD.cjs.map +1 -0
  299. package/dist/TopBar-F1jHuFan.js +248 -0
  300. package/dist/TopBar-F1jHuFan.js.map +1 -0
  301. package/dist/UpgradeToEnterpriseDialog-DVcAH30Y.js +95 -0
  302. package/dist/UpgradeToEnterpriseDialog-DVcAH30Y.js.map +1 -0
  303. package/dist/UpgradeToEnterpriseDialog-DfIKahNK.cjs +2 -0
  304. package/dist/UpgradeToEnterpriseDialog-DfIKahNK.cjs.map +1 -0
  305. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DJX55UPj.cjs +1417 -0
  306. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DJX55UPj.cjs.map +1 -0
  307. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js +26941 -0
  308. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js.map +1 -0
  309. package/dist/VWidget-C2x_zSC2.cjs +2 -0
  310. package/dist/VWidget-C2x_zSC2.cjs.map +1 -0
  311. package/dist/VWidget-C4spAawK.js +323 -0
  312. package/dist/VWidget-C4spAawK.js.map +1 -0
  313. package/dist/ValueWidget-D4RrYVEK.js +116 -0
  314. package/dist/ValueWidget-D4RrYVEK.js.map +1 -0
  315. package/dist/ValueWidget-Do3Yn47P.cjs +2 -0
  316. package/dist/ValueWidget-Do3Yn47P.cjs.map +1 -0
  317. package/dist/ValuelimitsbarWidget-Bc9_Vj_f.js +41 -0
  318. package/dist/ValuelimitsbarWidget-Bc9_Vj_f.js.map +1 -0
  319. package/dist/ValuelimitsbarWidget-DJuh7FOs.cjs +2 -0
  320. package/dist/ValuelimitsbarWidget-DJuh7FOs.cjs.map +1 -0
  321. package/dist/ValuelimitscolumnWidget-BFpG-H7v.cjs +2 -0
  322. package/dist/ValuelimitscolumnWidget-BFpG-H7v.cjs.map +1 -0
  323. package/dist/ValuelimitscolumnWidget-DHKIL7sf.js +40 -0
  324. package/dist/ValuelimitscolumnWidget-DHKIL7sf.js.map +1 -0
  325. package/dist/ValuerangebarWidget-BlZSaiXo.cjs +2 -0
  326. package/dist/ValuerangebarWidget-BlZSaiXo.cjs.map +1 -0
  327. package/dist/ValuerangebarWidget-CecQRIok.js +65 -0
  328. package/dist/ValuerangebarWidget-CecQRIok.js.map +1 -0
  329. package/dist/VerticalWidget--8UErB4q.cjs +2 -0
  330. package/dist/VerticalWidget--8UErB4q.cjs.map +1 -0
  331. package/dist/VerticalWidget-D8jUFxjS.js +40 -0
  332. package/dist/VerticalWidget-D8jUFxjS.js.map +1 -0
  333. package/dist/VerticalboxWidget-B4eGUSYH.js +37 -0
  334. package/dist/VerticalboxWidget-B4eGUSYH.js.map +1 -0
  335. package/dist/VerticalboxWidget-cxHq1WKQ.cjs +2 -0
  336. package/dist/VerticalboxWidget-cxHq1WKQ.cjs.map +1 -0
  337. package/dist/Widget-DNf52jRQ.cjs +2 -0
  338. package/dist/Widget-DNf52jRQ.cjs.map +1 -0
  339. package/dist/Widget-fRCERxGf.js +197 -0
  340. package/dist/Widget-fRCERxGf.js.map +1 -0
  341. package/dist/addMonths-BtG7uZLJ.js +19 -0
  342. package/dist/addMonths-BtG7uZLJ.js.map +1 -0
  343. package/dist/addMonths-n1tnl3ab.cjs +2 -0
  344. package/dist/addMonths-n1tnl3ab.cjs.map +1 -0
  345. package/dist/components.cjs +7 -0
  346. package/dist/components.cjs.map +1 -0
  347. package/dist/components.js +2973 -0
  348. package/dist/components.js.map +1 -0
  349. package/dist/fileIcon-BduOQcTc.cjs +2 -0
  350. package/dist/fileIcon-BduOQcTc.cjs.map +1 -0
  351. package/dist/fileIcon-DqRHb1_Z.js +22 -0
  352. package/dist/fileIcon-DqRHb1_Z.js.map +1 -0
  353. package/dist/format-B22VpiOS.cjs +2 -0
  354. package/dist/format-B22VpiOS.cjs.map +1 -0
  355. package/dist/format-CVeawcIv.js +1295 -0
  356. package/dist/format-CVeawcIv.js.map +1 -0
  357. package/dist/getDefaultOptions-Batab9o8.cjs +2 -0
  358. package/dist/getDefaultOptions-Batab9o8.cjs.map +1 -0
  359. package/dist/getDefaultOptions-BhSDk-Jo.js +8 -0
  360. package/dist/getDefaultOptions-BhSDk-Jo.js.map +1 -0
  361. package/dist/icons/status-dark.png +0 -0
  362. package/dist/icons/status-dark.xcf +0 -0
  363. package/dist/icons/status-light.png +0 -0
  364. package/dist/icons.cjs +2 -0
  365. package/dist/icons.cjs.map +1 -0
  366. package/dist/icons.js +157 -0
  367. package/dist/icons.js.map +1 -0
  368. package/dist/index-Bz_jHTkl.cjs +7 -0
  369. package/dist/index-Bz_jHTkl.cjs.map +1 -0
  370. package/dist/index-CFQnWdPA.js +1705 -0
  371. package/dist/index-CFQnWdPA.js.map +1 -0
  372. package/dist/parse-DnkEsW-3.js +1603 -0
  373. package/dist/parse-DnkEsW-3.js.map +1 -0
  374. package/dist/parse-DwfgQboe.cjs +2 -0
  375. package/dist/parse-DwfgQboe.cjs.map +1 -0
  376. package/dist/plugins.cjs +9 -0
  377. package/dist/plugins.cjs.map +1 -0
  378. package/dist/plugins.js +772 -0
  379. package/dist/plugins.js.map +1 -0
  380. package/dist/timeFilters-8SaYvcH0.cjs +2 -0
  381. package/dist/timeFilters-8SaYvcH0.cjs.map +1 -0
  382. package/dist/timeFilters-CRYpYDdf.js +622 -0
  383. package/dist/timeFilters-CRYpYDdf.js.map +1 -0
  384. package/dist/tools/admin.cjs +13 -0
  385. package/dist/tools/admin.cjs.map +1 -0
  386. package/dist/tools/admin.js +1944 -0
  387. package/dist/tools/admin.js.map +1 -0
  388. package/dist/tools/base.cjs +2 -0
  389. package/dist/tools/base.cjs.map +1 -0
  390. package/dist/tools/base.js +1683 -0
  391. package/dist/tools/base.js.map +1 -0
  392. package/dist/tools/calendar.cjs +2 -0
  393. package/dist/tools/calendar.cjs.map +1 -0
  394. package/dist/tools/calendar.js +1586 -0
  395. package/dist/tools/calendar.js.map +1 -0
  396. package/dist/util.cjs +2 -0
  397. package/dist/util.cjs.map +1 -0
  398. package/dist/util.js +9 -0
  399. package/dist/util.js.map +1 -0
  400. package/dist/vue-common.css +1 -0
  401. package/dist/widgets.cjs +2 -0
  402. package/dist/widgets.cjs.map +1 -0
  403. package/dist/widgets.js +132 -0
  404. package/dist/widgets.js.map +1 -0
  405. package/package.json +2 -2
@@ -0,0 +1,245 @@
1
+ import { c as i, m as k } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js";
2
+ import { resolveComponent as r, createBlock as v, openBlock as x, withCtx as d, createVNode as s, createElementVNode as c, toDisplayString as q, normalizeProps as R, guardReactiveProps as $, createTextVNode as g } from "vue";
3
+ import { _ as C } from "./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js";
4
+ const O = {
5
+ data: {
6
+ configKey: ""
7
+ },
8
+ methods: {
9
+ buildLanguageMode(t, e) {
10
+ let o = i.require("ace/lib/oop"), u = Object.getOwnPropertyNames(k.prototype).filter((l) => l !== "constructor").filter((l) => l !== "exec").concat([
11
+ "check",
12
+ "check_raw",
13
+ "check_formatted",
14
+ "check_with_units",
15
+ "check_exception",
16
+ "check_tolerance",
17
+ "check_expression",
18
+ "wait",
19
+ "wait_tolerance",
20
+ "wait_expression",
21
+ "wait_check",
22
+ "wait_check_tolerance",
23
+ "wait_check_expression",
24
+ "wait_packet",
25
+ "wait_check_packet",
26
+ "disable_instrumentation",
27
+ "set_line_delay",
28
+ "get_line_delay",
29
+ "set_max_output",
30
+ "get_max_output"
31
+ ]), h = new RegExp(`(\\b${u.join("\\b|\\b")}\\b)`), n = function() {
32
+ t.call(this);
33
+ for (let l in this.$rules)
34
+ this.$rules[l].unshift({
35
+ regex: h,
36
+ token: "support.function"
37
+ });
38
+ };
39
+ o.inherits(n, t);
40
+ let a = i.require(
41
+ "ace/mode/matching_brace_outdent"
42
+ ).MatchingBraceOutdent, _ = i.require(
43
+ "ace/mode/behaviour/cstyle"
44
+ ).CstyleBehaviour;
45
+ return [o, function() {
46
+ this.HighlightRules = n, this.$outdent = new a(), this.$behaviour = new _(), this.foldingRules = new e(), this.indentKeywords = this.foldingRules.indentKeywords;
47
+ }];
48
+ },
49
+ buildRubyMode() {
50
+ const [t, e] = this.buildLanguageMode(
51
+ i.require("ace/mode/ruby_highlight_rules").RubyHighlightRules,
52
+ i.require("ace/mode/folding/ruby").FoldMode
53
+ );
54
+ let o = i.require("ace/mode/ruby").Mode;
55
+ return t.inherits(e, o), (function() {
56
+ this.$id = "ace/mode/openc3";
57
+ }).call(e.prototype), e;
58
+ },
59
+ buildPythonMode() {
60
+ const [t, e] = this.buildLanguageMode(
61
+ i.require("ace/mode/python_highlight_rules").PythonHighlightRules,
62
+ i.require("ace/mode/folding/pythonic").FoldMode
63
+ );
64
+ let o = i.require("ace/mode/python").Mode;
65
+ return t.inherits(e, o), (function() {
66
+ this.$id = "ace/mode/openc3";
67
+ }).call(e.prototype), e;
68
+ },
69
+ buildJsonMode() {
70
+ const [t, e] = this.buildLanguageMode(
71
+ i.require("ace/mode/json_highlight_rules").JsonHighlightRules,
72
+ i.require("ace/mode/folding/ruby").FoldMode
73
+ );
74
+ let o = i.require("ace/mode/json").Mode;
75
+ return t.inherits(e, o), (function() {
76
+ this.$id = "ace/mode/openc3";
77
+ }).call(e.prototype), e;
78
+ },
79
+ buildMarkdownMode() {
80
+ const [t, e] = this.buildLanguageMode(
81
+ i.require("ace/mode/markdown_highlight_rules").MarkdownHighlightRules,
82
+ i.require("ace/mode/folding/markdown").FoldMode
83
+ );
84
+ let o = i.require("ace/mode/markdown").Mode;
85
+ return t.inherits(e, o), (function() {
86
+ this.$id = "ace/mode/openc3";
87
+ }).call(e.prototype), e;
88
+ }
89
+ }
90
+ }, V = {
91
+ props: {
92
+ content: {
93
+ type: String,
94
+ required: !0
95
+ },
96
+ type: String,
97
+ name: String,
98
+ modelValue: Boolean,
99
+ filename: {
100
+ type: String,
101
+ required: !1
102
+ }
103
+ },
104
+ mixins: [O],
105
+ data() {
106
+ return {
107
+ editor: null,
108
+ mode: null
109
+ };
110
+ },
111
+ mounted() {
112
+ this.editor = ace.edit(this.$refs.editor), this.editor.setTheme("ace/theme/twilight");
113
+ let t = null;
114
+ switch (this.filename ? this.filename.split(".").pop() : "txt") {
115
+ case "json":
116
+ const o = this.buildJsonMode();
117
+ t = new o(), this.editor.setOptions({
118
+ useWorker: !1
119
+ });
120
+ break;
121
+ case "py":
122
+ case "pyi":
123
+ const u = this.buildPythonMode();
124
+ t = new u();
125
+ break;
126
+ case "md":
127
+ const h = this.buildMarkdownMode();
128
+ t = new h();
129
+ break;
130
+ default:
131
+ const n = this.buildRubyMode();
132
+ t = new n();
133
+ break;
134
+ }
135
+ this.editor.session.setMode(t), this.editor.session.setUseWrapMode(!0), this.editor.$blockScrolling = 1 / 0, this.editor.setHighlightActiveLine(!1), this.editor.setValue(this.content), this.editor.clearSelection(), this.editor.focus(), this.editor.setReadOnly(!0);
136
+ },
137
+ beforeUnmount() {
138
+ this.editor && this.editor.destroy();
139
+ },
140
+ computed: {
141
+ show: {
142
+ get() {
143
+ return this.modelValue;
144
+ },
145
+ set(t) {
146
+ this.$emit("update:modelValue", t);
147
+ }
148
+ },
149
+ title: function() {
150
+ return `${this.type}: ${this.name}`;
151
+ }
152
+ },
153
+ methods: {
154
+ close: function() {
155
+ this.show = !this.show;
156
+ },
157
+ download: function() {
158
+ const t = new Blob([this.editor.getValue()], {
159
+ type: "text/plain"
160
+ });
161
+ let e = `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`;
162
+ this.filename && (e = this.filename);
163
+ const o = document.createElement("a");
164
+ o.href = URL.createObjectURL(t), o.setAttribute("download", e), o.click();
165
+ }
166
+ }
167
+ }, L = ["textContent"], B = { class: "mx-2" }, P = {
168
+ class: "editor",
169
+ ref: "editor"
170
+ };
171
+ function j(t, e, o, u, h, n) {
172
+ const a = r("v-spacer"), _ = r("v-icon"), m = r("v-tooltip"), l = r("v-toolbar"), f = r("v-card-text"), w = r("v-btn"), b = r("v-card-actions"), M = r("v-card"), y = r("v-dialog");
173
+ return x(), v(y, {
174
+ modelValue: n.show,
175
+ "onUpdate:modelValue": e[1] || (e[1] = (p) => n.show = p),
176
+ width: "85vw"
177
+ }, {
178
+ default: d(() => [
179
+ s(M, null, {
180
+ default: d(() => [
181
+ s(l, { height: "24" }, {
182
+ default: d(() => [
183
+ s(a),
184
+ c("span", {
185
+ textContent: q(n.title)
186
+ }, null, 8, L),
187
+ s(a),
188
+ c("div", B, [
189
+ s(m, { location: "top" }, {
190
+ activator: d(({ props: p }) => [
191
+ c("div", R($(p)), [
192
+ s(_, {
193
+ "data-test": "downloadIcon",
194
+ onClick: n.download
195
+ }, {
196
+ default: d(() => e[2] || (e[2] = [
197
+ g(" mdi-download ")
198
+ ])),
199
+ _: 1
200
+ }, 8, ["onClick"])
201
+ ], 16)
202
+ ]),
203
+ default: d(() => [
204
+ e[3] || (e[3] = c("span", null, " Download ", -1))
205
+ ]),
206
+ _: 1
207
+ })
208
+ ])
209
+ ]),
210
+ _: 1
211
+ }),
212
+ s(f, null, {
213
+ default: d(() => [
214
+ c("pre", P, null, 512)
215
+ ]),
216
+ _: 1
217
+ }),
218
+ s(b, { class: "pr-6 pb-4 pt-0" }, {
219
+ default: d(() => [
220
+ s(a),
221
+ s(w, {
222
+ variant: "flat",
223
+ onClick: e[0] || (e[0] = (p) => n.show = !n.show)
224
+ }, {
225
+ default: d(() => e[4] || (e[4] = [
226
+ g(" Ok ")
227
+ ])),
228
+ _: 1
229
+ })
230
+ ]),
231
+ _: 1
232
+ })
233
+ ]),
234
+ _: 1
235
+ })
236
+ ]),
237
+ _: 1
238
+ }, 8, ["modelValue"]);
239
+ }
240
+ const J = /* @__PURE__ */ C(V, [["render", j], ["__scopeId", "data-v-35a62559"]]);
241
+ export {
242
+ O as A,
243
+ J as O
244
+ };
245
+ //# sourceMappingURL=OutputDialog-Ci5OT_fH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OutputDialog-Ci5OT_fH.js","sources":["../src/components/ace/AceEditorModes.js","../src/components/OutputDialog.vue"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport * as ace from 'ace-builds'\nimport 'ace-builds/src-min-noconflict/mode-ruby'\nimport 'ace-builds/src-min-noconflict/mode-python'\nimport 'ace-builds/src-min-noconflict/mode-json'\nimport 'ace-builds/src-min-noconflict/mode-markdown'\nimport 'ace-builds/src-min-noconflict/theme-twilight'\nimport 'ace-builds/src-min-noconflict/ext-language_tools'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n data: {\n configKey: '',\n },\n methods: {\n buildLanguageMode(HighlightRules, FoldMode) {\n let oop = ace.require('ace/lib/oop')\n let apis = Object.getOwnPropertyNames(OpenC3Api.prototype)\n .filter((a) => a !== 'constructor')\n .filter((a) => a !== 'exec')\n // Add the Public apis in api_shared but not in OpenC3Api\n .concat([\n 'check',\n 'check_raw',\n 'check_formatted',\n 'check_with_units',\n 'check_exception',\n 'check_tolerance',\n 'check_expression',\n 'wait',\n 'wait_tolerance',\n 'wait_expression',\n 'wait_check',\n 'wait_check_tolerance',\n 'wait_check_expression',\n 'wait_packet',\n 'wait_check_packet',\n 'disable_instrumentation',\n 'set_line_delay',\n 'get_line_delay',\n 'set_max_output',\n 'get_max_output',\n ])\n let regex = new RegExp(`(\\\\b${apis.join('\\\\b|\\\\b')}\\\\b)`)\n let OpenC3HighlightRules = function () {\n HighlightRules.call(this)\n // add openc3 rules to the rules\n for (let rule in this.$rules) {\n this.$rules[rule].unshift({\n regex: regex,\n token: 'support.function',\n })\n }\n }\n oop.inherits(OpenC3HighlightRules, HighlightRules)\n\n let MatchingBraceOutdent = ace.require(\n 'ace/mode/matching_brace_outdent',\n ).MatchingBraceOutdent\n let CstyleBehaviour = ace.require(\n 'ace/mode/behaviour/cstyle',\n ).CstyleBehaviour\n let Mode = function () {\n this.HighlightRules = OpenC3HighlightRules\n this.$outdent = new MatchingBraceOutdent()\n this.$behaviour = new CstyleBehaviour()\n this.foldingRules = new FoldMode()\n this.indentKeywords = this.foldingRules.indentKeywords\n }\n return [oop, Mode]\n },\n buildRubyMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/ruby_highlight_rules').RubyHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let RubyMode = ace.require('ace/mode/ruby').Mode\n oop.inherits(Mode, RubyMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildPythonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/python_highlight_rules').PythonHighlightRules,\n ace.require('ace/mode/folding/pythonic').FoldMode,\n )\n let PythonMode = ace.require('ace/mode/python').Mode\n oop.inherits(Mode, PythonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildJsonMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/json_highlight_rules').JsonHighlightRules,\n ace.require('ace/mode/folding/ruby').FoldMode,\n )\n let JsonMode = ace.require('ace/mode/json').Mode\n oop.inherits(Mode, JsonMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n buildMarkdownMode() {\n const [oop, Mode] = this.buildLanguageMode(\n ace.require('ace/mode/markdown_highlight_rules').MarkdownHighlightRules,\n ace.require('ace/mode/folding/markdown').FoldMode,\n )\n let MarkdownMode = ace.require('ace/mode/markdown').Mode\n oop.inherits(Mode, MarkdownMode)\n ;(function () {\n this.$id = 'ace/mode/openc3'\n }).call(Mode.prototype)\n return Mode\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-dialog v-model=\"show\" width=\"85vw\">\n <v-card>\n <v-toolbar height=\"24\">\n <v-spacer />\n <span v-text=\"title\" />\n <v-spacer />\n <div class=\"mx-2\">\n <v-tooltip location=\"top\">\n <template v-slot:activator=\"{ props }\">\n <div v-bind=\"props\">\n <v-icon data-test=\"downloadIcon\" @click=\"download\">\n mdi-download\n </v-icon>\n </div>\n </template>\n <span> Download </span>\n </v-tooltip>\n </div>\n </v-toolbar>\n <v-card-text>\n <pre class=\"editor\" ref=\"editor\"></pre>\n </v-card-text>\n <v-card-actions class=\"pr-6 pb-4 pt-0\">\n <v-spacer />\n <v-btn variant=\"flat\" @click=\"show = !show\"> Ok </v-btn>\n </v-card-actions>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { AceEditorModes } from './ace'\n\nexport default {\n props: {\n content: {\n type: String,\n required: true,\n },\n type: String,\n name: String,\n modelValue: Boolean,\n filename: {\n type: String,\n required: false,\n },\n },\n mixins: [AceEditorModes],\n data() {\n return {\n editor: null,\n mode: null,\n }\n },\n mounted() {\n this.editor = ace.edit(this.$refs.editor)\n this.editor.setTheme('ace/theme/twilight')\n let languageMode = null\n const fileExtension = this.filename ? this.filename.split('.').pop() : 'txt'\n switch (fileExtension) {\n case 'json':\n const JsonMode = this.buildJsonMode()\n languageMode = new JsonMode()\n this.editor.setOptions({\n useWorker: false,\n })\n break\n case 'py':\n case 'pyi':\n const PythonMode = this.buildPythonMode()\n languageMode = new PythonMode()\n break\n case 'md':\n const MarkdownMode = this.buildMarkdownMode()\n languageMode = new MarkdownMode()\n break\n default:\n // Most of the COSMOS text files are best display in Ruby\n // This includes Rakefiles, Gemfiles, etc.\n const RubyMode = this.buildRubyMode()\n languageMode = new RubyMode()\n break\n }\n this.editor.session.setMode(languageMode)\n this.editor.session.setUseWrapMode(true)\n this.editor.$blockScrolling = Infinity\n this.editor.setHighlightActiveLine(false)\n this.editor.setValue(this.content)\n this.editor.clearSelection()\n this.editor.focus()\n this.editor.setReadOnly(true)\n },\n beforeUnmount() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n computed: {\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n title: function () {\n return `${this.type}: ${this.name}`\n },\n },\n methods: {\n close: function () {\n this.show = !this.show\n },\n download: function () {\n const blob = new Blob([this.editor.getValue()], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n let filename = `${this.type.toLowerCase()}_${this.name.toLowerCase()}.json`\n if (this.filename) {\n filename = this.filename\n }\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute('download', filename)\n link.click()\n },\n },\n}\n</script>\n\n<style scoped>\n.editor {\n height: 75vh;\n position: relative;\n font-size: 16px;\n}\n.v-textarea :deep(textarea) {\n padding: 5px;\n}\n</style>\n"],"names":["AceEditorModes","HighlightRules","FoldMode","oop","ace.require","apis","OpenC3Api","a","regex","OpenC3HighlightRules","rule","MatchingBraceOutdent","CstyleBehaviour","Mode","RubyMode","PythonMode","JsonMode","MarkdownMode","_sfc_main","languageMode","value","blob","filename","link","_hoisted_1","_hoisted_2","_createBlock","_component_v_dialog","$options","_cache","$event","_withCtx","_createVNode","_component_v_card","_component_v_toolbar","_component_v_spacer","_createElementVNode","_toDisplayString","_component_v_tooltip","props","_normalizeProps","_guardReactiveProps","_component_v_icon","_createTextVNode","_component_v_card_text","_hoisted_3","_component_v_card_actions","_component_v_btn"],"mappings":"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"}
@@ -0,0 +1,332 @@
1
+ import { a as v } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js";
2
+ import { resolveComponent as a, createElementBlock as p, openBlock as d, createVNode as o, createBlock as N, createCommentVNode as $, withCtx as e, createElementVNode as c, createTextVNode as r, Fragment as w, renderList as D, createSlots as B, toDisplayString as h, normalizeClass as M, mergeProps as b } from "vue";
3
+ import { _ as R } from "./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js";
4
+ import "single-spa";
5
+ import { S as j } from "./SimpleTextDialog-CheuP_ls.js";
6
+ import { DownloadDialog as A } from "./tools/admin.js";
7
+ import { f as H, t as z } from "./format-CVeawcIv.js";
8
+ const E = {
9
+ components: {
10
+ DownloadDialog: A,
11
+ SimpleTextDialog: j
12
+ },
13
+ data() {
14
+ return {
15
+ showDownloadDialog: !1,
16
+ showProcessOutput: !1,
17
+ processOutput: "",
18
+ files: [],
19
+ loadingPackage: !1,
20
+ progress: 0,
21
+ gems: [],
22
+ python: [],
23
+ processes: {}
24
+ };
25
+ },
26
+ mounted() {
27
+ this.update(), this.updateProcesses();
28
+ },
29
+ methods: {
30
+ showOutput: function(n) {
31
+ this.processOutput = n.output, this.showProcessOutput = !0;
32
+ },
33
+ update() {
34
+ v.get("/openc3-api/packages").then((n) => {
35
+ this.gems = n.data.ruby, this.python = n.data.python;
36
+ });
37
+ },
38
+ updateProcesses: function() {
39
+ v.get("/openc3-api/process_status/package_?substr=true").then(
40
+ (n) => {
41
+ this.processes = n.data, Object.keys(this.processes).length > 0 && setTimeout(() => {
42
+ this.updateProcesses(), this.update();
43
+ }, 2500);
44
+ }
45
+ );
46
+ },
47
+ formatDate(n) {
48
+ return H(
49
+ z(parseInt(n) / 1e6),
50
+ "yyyy-MM-dd HH:mm:ss.SSS"
51
+ );
52
+ },
53
+ selectFile() {
54
+ this.progress = 0, this.$refs.fileInput.click();
55
+ },
56
+ fileChange(n) {
57
+ const t = n.target.files;
58
+ if (t.length > 0) {
59
+ this.loadingPackage = !0;
60
+ let O = this;
61
+ const V = [...t].map((l) => {
62
+ const i = new FormData();
63
+ return i.append("package", l, l.name), v.post("/openc3-api/packages", {
64
+ data: i,
65
+ headers: { "Content-Type": "multipart/form-data" },
66
+ onUploadProgress: function(f) {
67
+ let u = Math.round(
68
+ f.loaded * 100 / f.total
69
+ );
70
+ O.progress = u;
71
+ }
72
+ });
73
+ });
74
+ Promise.all(V).then((l) => {
75
+ this.$notify.normal({
76
+ body: `Uploaded ${l.length} package${l.length > 1 ? "s" : ""}`
77
+ }), this.loadingPackage = !1, this.files = [], setTimeout(() => {
78
+ this.updateProcesses();
79
+ }, 2500);
80
+ }).catch((l) => {
81
+ this.loadingPackage = !1;
82
+ });
83
+ }
84
+ },
85
+ deletePackage(n) {
86
+ this.$dialog.confirm(`Are you sure you want to remove: ${n}`, {
87
+ okText: "Delete",
88
+ cancelText: "Cancel"
89
+ }).then((t) => v.delete(`/openc3-api/packages/${n}`)).then((t) => {
90
+ this.$notify.normal({
91
+ body: `Removed package ${n}`
92
+ }), setTimeout(() => {
93
+ this.updateProcesses();
94
+ }, 2500);
95
+ }).catch((t) => {
96
+ this.$notify.serious({
97
+ body: `Failed to remove package ${n}`
98
+ });
99
+ });
100
+ }
101
+ }
102
+ }, G = ["textContent"], q = ["textContent"];
103
+ function J(n, t, O, V, l, i) {
104
+ const f = a("v-btn"), u = a("v-col"), T = a("rux-progress"), _ = a("v-row"), k = a("v-list-item-title"), F = a("v-list-item-subtitle"), y = a("v-icon"), P = a("v-tooltip"), x = a("v-list-item"), C = a("v-divider"), S = a("v-list"), I = a("download-dialog"), U = a("simple-text-dialog");
105
+ return d(), p("div", null, [
106
+ o(_, {
107
+ "no-gutters": "",
108
+ align: "center",
109
+ class: "px-2"
110
+ }, {
111
+ default: e(() => [
112
+ o(u, { class: "pa-2 mt-2" }, {
113
+ default: e(() => [
114
+ o(f, { onClick: i.selectFile }, {
115
+ default: e(() => t[3] || (t[3] = [
116
+ r("Install Package")
117
+ ])),
118
+ _: 1
119
+ }, 8, ["onClick"]),
120
+ c("input", {
121
+ style: { display: "none" },
122
+ type: "file",
123
+ ref: "fileInput",
124
+ onChange: t[0] || (t[0] = (...s) => i.fileChange && i.fileChange(...s))
125
+ }, null, 544)
126
+ ]),
127
+ _: 1
128
+ }),
129
+ o(u, {
130
+ class: "ml-4 mr-2",
131
+ cols: "4"
132
+ }, {
133
+ default: e(() => [
134
+ o(T, { value: l.progress }, null, 8, ["value"])
135
+ ]),
136
+ _: 1
137
+ })
138
+ ]),
139
+ _: 1
140
+ }),
141
+ Object.keys(l.processes).length > 0 ? (d(), N(S, {
142
+ key: 0,
143
+ class: "list",
144
+ "data-test": "process-list"
145
+ }, {
146
+ default: e(() => [
147
+ o(_, {
148
+ "no-gutters": "",
149
+ class: "px-4"
150
+ }, {
151
+ default: e(() => [
152
+ o(u, { class: "text-h6" }, {
153
+ default: e(() => t[4] || (t[4] = [
154
+ r("Process List")
155
+ ])),
156
+ _: 1
157
+ }),
158
+ o(u, { align: "right" }, {
159
+ default: e(() => t[5] || (t[5] = [
160
+ c("div", null, "Showing last 10 min of activity", -1)
161
+ ])),
162
+ _: 1
163
+ })
164
+ ]),
165
+ _: 1
166
+ }),
167
+ (d(!0), p(w, null, D(l.processes, (s) => (d(), p("div", {
168
+ key: s.name
169
+ }, [
170
+ o(x, null, B({
171
+ default: e(() => [
172
+ o(k, null, {
173
+ default: e(() => [
174
+ c("span", {
175
+ class: M(s.state.toLowerCase()),
176
+ textContent: h(
177
+ `Processing ${s.process_type}: ${s.detail} - ${s.state}`
178
+ )
179
+ }, null, 10, G)
180
+ ]),
181
+ _: 2
182
+ }, 1024),
183
+ o(F, null, {
184
+ default: e(() => [
185
+ c("span", {
186
+ textContent: h(" Updated At: " + i.formatDate(s.updated_at))
187
+ }, null, 8, q)
188
+ ]),
189
+ _: 2
190
+ }, 1024)
191
+ ]),
192
+ _: 2
193
+ }, [
194
+ s.state !== "Running" ? {
195
+ name: "append",
196
+ fn: e(() => [
197
+ o(P, { location: "top" }, {
198
+ activator: e(({ props: m }) => [
199
+ o(y, b({ ref_for: !0 }, m, {
200
+ onClick: (g) => i.showOutput(s)
201
+ }), {
202
+ default: e(() => t[6] || (t[6] = [
203
+ r(" mdi-eye ")
204
+ ])),
205
+ _: 2
206
+ }, 1040, ["onClick"])
207
+ ]),
208
+ default: e(() => [
209
+ t[7] || (t[7] = c("span", null, "Show Output", -1))
210
+ ]),
211
+ _: 2
212
+ }, 1024)
213
+ ]),
214
+ key: "0"
215
+ } : void 0
216
+ ]), 1024),
217
+ o(C)
218
+ ]))), 128))
219
+ ]),
220
+ _: 1
221
+ })) : $("", !0),
222
+ o(S, {
223
+ class: "list",
224
+ "data-test": "packageList"
225
+ }, {
226
+ default: e(() => [
227
+ o(_, { class: "px-4" }, {
228
+ default: e(() => [
229
+ o(u, { class: "text-h6" }, {
230
+ default: e(() => t[8] || (t[8] = [
231
+ r("Ruby Gems")
232
+ ])),
233
+ _: 1
234
+ })
235
+ ]),
236
+ _: 1
237
+ }),
238
+ (d(!0), p(w, null, D(l.gems, (s, m) => (d(), p("div", { key: m }, [
239
+ o(x, null, {
240
+ append: e(() => [
241
+ o(P, { location: "top" }, {
242
+ activator: e(({ props: g }) => [
243
+ o(y, b({ ref_for: !0 }, g, {
244
+ onClick: (L) => i.deletePackage(s)
245
+ }), {
246
+ default: e(() => t[9] || (t[9] = [
247
+ r(" mdi-delete ")
248
+ ])),
249
+ _: 2
250
+ }, 1040, ["onClick"])
251
+ ]),
252
+ default: e(() => [
253
+ t[10] || (t[10] = c("span", null, "Delete Package", -1))
254
+ ]),
255
+ _: 2
256
+ }, 1024)
257
+ ]),
258
+ default: e(() => [
259
+ o(k, null, {
260
+ default: e(() => [
261
+ r(h(s), 1)
262
+ ]),
263
+ _: 2
264
+ }, 1024)
265
+ ]),
266
+ _: 2
267
+ }, 1024),
268
+ o(C)
269
+ ]))), 128)),
270
+ o(_, { class: "px-4" }, {
271
+ default: e(() => [
272
+ o(u, { class: "text-h6" }, {
273
+ default: e(() => t[11] || (t[11] = [
274
+ r("Python Packages")
275
+ ])),
276
+ _: 1
277
+ })
278
+ ]),
279
+ _: 1
280
+ }),
281
+ (d(!0), p(w, null, D(l.python, (s, m) => (d(), p("div", { key: m }, [
282
+ o(x, null, {
283
+ append: e(() => [
284
+ o(P, { location: "top" }, {
285
+ activator: e(({ props: g }) => [
286
+ o(y, b({ ref_for: !0 }, g, {
287
+ onClick: (L) => i.deletePackage(s)
288
+ }), {
289
+ default: e(() => t[12] || (t[12] = [
290
+ r(" mdi-delete ")
291
+ ])),
292
+ _: 2
293
+ }, 1040, ["onClick"])
294
+ ]),
295
+ default: e(() => [
296
+ t[13] || (t[13] = c("span", null, "Delete Package", -1))
297
+ ]),
298
+ _: 2
299
+ }, 1024)
300
+ ]),
301
+ default: e(() => [
302
+ o(k, null, {
303
+ default: e(() => [
304
+ r(h(s), 1)
305
+ ]),
306
+ _: 2
307
+ }, 1024)
308
+ ]),
309
+ _: 2
310
+ }, 1024),
311
+ o(C)
312
+ ]))), 128))
313
+ ]),
314
+ _: 1
315
+ }),
316
+ o(I, {
317
+ modelValue: l.showDownloadDialog,
318
+ "onUpdate:modelValue": t[1] || (t[1] = (s) => l.showDownloadDialog = s)
319
+ }, null, 8, ["modelValue"]),
320
+ o(U, {
321
+ modelValue: l.showProcessOutput,
322
+ "onUpdate:modelValue": t[2] || (t[2] = (s) => l.showProcessOutput = s),
323
+ title: "Process Output",
324
+ text: l.processOutput
325
+ }, null, 8, ["modelValue", "text"])
326
+ ]);
327
+ }
328
+ const et = /* @__PURE__ */ R(E, [["render", J], ["__scopeId", "data-v-a9a7750b"]]);
329
+ export {
330
+ et as default
331
+ };
332
+ //# sourceMappingURL=PackagesTab-BX8YP3H1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackagesTab-BX8YP3H1.js","sources":["../src/tools/admin/tabs/PackagesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-row no-gutters align=\"center\" class=\"px-2\">\n <v-col class=\"pa-2 mt-2\">\n <v-btn @click=\"selectFile\">Install Package</v-btn>\n <input\n style=\"display: none\"\n type=\"file\"\n ref=\"fileInput\"\n @change=\"fileChange\"\n />\n </v-col>\n <v-col class=\"ml-4 mr-2\" cols=\"4\">\n <rux-progress :value=\"progress\"></rux-progress>\n </v-col>\n </v-row>\n <v-list\n v-if=\"Object.keys(processes).length > 0\"\n class=\"list\"\n data-test=\"process-list\"\n >\n <v-row no-gutters class=\"px-4\"\n ><v-col class=\"text-h6\">Process List</v-col>\n <v-col align=\"right\">\n <!-- See openc3/lib/openc3/utilities/process_manager.rb CLEANUP_CYCLE_SECONDS -->\n <div>Showing last 10 min of activity</div>\n </v-col>\n </v-row>\n <div v-for=\"process in processes\" :key=\"process.name\">\n <v-list-item>\n <v-list-item-title>\n <span\n :class=\"process.state.toLowerCase()\"\n v-text=\"\n `Processing ${process.process_type}: ${process.detail} - ${process.state}`\n \"\n />\n </v-list-item-title>\n <v-list-item-subtitle>\n <span v-text=\"' Updated At: ' + formatDate(process.updated_at)\" />\n </v-list-item-subtitle>\n\n <template v-slot:append v-if=\"process.state !== 'Running'\">\n <v-tooltip location=\"top\">\n <template v-slot:activator=\"{ props }\">\n <v-icon v-bind=\"props\" @click=\"showOutput(process)\">\n mdi-eye\n </v-icon>\n </template>\n <span>Show Output</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <v-list class=\"list\" data-test=\"packageList\">\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Ruby Gems</v-col></v-row>\n <div v-for=\"(gem, index) in gems\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ gem }}</v-list-item-title>\n\n <template v-slot:append>\n <v-tooltip location=\"top\">\n <template v-slot:activator=\"{ props }\">\n <v-icon v-bind=\"props\" @click=\"deletePackage(gem)\">\n mdi-delete\n </v-icon>\n </template>\n <span>Delete Package</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n <v-row class=\"px-4\"><v-col class=\"text-h6\">Python Packages</v-col></v-row>\n <div v-for=\"(pkg, index) in python\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ pkg }}</v-list-item-title>\n\n <template v-slot:append>\n <v-tooltip location=\"top\">\n <template v-slot:activator=\"{ props }\">\n <v-icon v-bind=\"props\" @click=\"deletePackage(pkg)\">\n mdi-delete\n </v-icon>\n </template>\n <span>Delete Package</span>\n </v-tooltip>\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <download-dialog v-model=\"showDownloadDialog\" />\n <simple-text-dialog\n v-model=\"showProcessOutput\"\n title=\"Process Output\"\n :text=\"processOutput\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { SimpleTextDialog } from '@/components'\nimport { DownloadDialog } from '@/tools/admin'\n\nexport default {\n components: {\n DownloadDialog,\n SimpleTextDialog,\n },\n data() {\n return {\n showDownloadDialog: false,\n showProcessOutput: false,\n processOutput: '',\n files: [],\n loadingPackage: false,\n progress: 0,\n gems: [],\n python: [],\n processes: {},\n }\n },\n mounted() {\n this.update()\n this.updateProcesses()\n },\n methods: {\n showOutput: function (process) {\n this.processOutput = process.output\n this.showProcessOutput = true\n },\n update() {\n Api.get('/openc3-api/packages').then((response) => {\n this.gems = response.data.ruby\n this.python = response.data.python\n })\n },\n updateProcesses: function () {\n Api.get('/openc3-api/process_status/package_?substr=true').then(\n (response) => {\n this.processes = response.data\n if (Object.keys(this.processes).length > 0) {\n // process_manager.rb script operates on a 5 second cycle\n setTimeout(() => {\n this.updateProcesses()\n this.update()\n }, 2500)\n }\n },\n )\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n selectFile() {\n this.progress = 0\n this.$refs.fileInput.click()\n },\n fileChange(event) {\n const files = event.target.files\n if (files.length > 0) {\n this.loadingPackage = true\n let self = this\n const promises = [...files].map((file) => {\n const formData = new FormData()\n formData.append('package', file, file.name)\n return Api.post('/openc3-api/packages', {\n data: formData,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: function (progressEvent) {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n )\n self.progress = percentCompleted\n },\n })\n })\n Promise.all(promises)\n .then((responses) => {\n this.$notify.normal({\n body: `Uploaded ${responses.length} package${\n responses.length > 1 ? 's' : ''\n }`,\n })\n this.loadingPackage = false\n this.files = []\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n .catch((error) => {\n this.loadingPackage = false\n })\n }\n },\n deletePackage(pkg) {\n this.$dialog\n .confirm(`Are you sure you want to remove: ${pkg}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n return Api.delete(`/openc3-api/packages/${pkg}`)\n })\n .then((response) => {\n this.$notify.normal({\n body: `Removed package ${pkg}`,\n })\n setTimeout(() => {\n this.updateProcesses()\n }, 2500)\n })\n // Error will probably never happen because we spawn the package removal\n // and then wait for the response which happens in the background\n .catch((error) => {\n this.$notify.serious({\n body: `Failed to remove package ${pkg}`,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-subheader {\n font-size: 1rem;\n}\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","DownloadDialog","SimpleTextDialog","process","Api","response","nanoSecs","format","toDate","event","files","self","promises","file","formData","progressEvent","percentCompleted","responses","error","pkg","dialog","_hoisted_1","_hoisted_2","_createElementBlock","_createVNode","_component_v_row","_withCtx","_component_v_col","_component_v_btn","$options","_cache","_createTextVNode","_createElementVNode","args","_component_rux_progress","$data","_createBlock","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_createSlots","_component_v_list_item_title","_normalizeClass","_toDisplayString","_component_v_list_item_subtitle","_component_v_tooltip","props","_component_v_icon","_mergeProps","$event","_component_v_divider","_createCommentVNode","gem","index","_component_download_dialog","_component_simple_text_dialog"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DJX55UPj.cjs"),e=require("vue"),P=require("./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs");require("single-spa");const D=require("./SimpleTextDialog-DmeNMMCR.cjs"),T=require("./tools/admin.cjs"),v=require("./format-B22VpiOS.cjs"),b={components:{DownloadDialog:T.DownloadDialog,SimpleTextDialog:D.SimpleTextDialog},data(){return{showDownloadDialog:!1,showProcessOutput:!1,processOutput:"",files:[],loadingPackage:!1,progress:0,gems:[],python:[],processes:{}}},mounted(){this.update(),this.updateProcesses()},methods:{showOutput:function(n){this.processOutput=n.output,this.showProcessOutput=!0},update(){u.ui.get("/openc3-api/packages").then(n=>{this.gems=n.data.ruby,this.python=n.data.python})},updateProcesses:function(){u.ui.get("/openc3-api/process_status/package_?substr=true").then(n=>{this.processes=n.data,Object.keys(this.processes).length>0&&setTimeout(()=>{this.updateProcesses(),this.update()},2500)})},formatDate(n){return v.format(v.toDate(parseInt(n)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},selectFile(){this.progress=0,this.$refs.fileInput.click()},fileChange(n){const t=n.target.files;if(t.length>0){this.loadingPackage=!0;let h=this;const x=[...t].map(l=>{const a=new FormData;return a.append("package",l,l.name),u.ui.post("/openc3-api/packages",{data:a,headers:{"Content-Type":"multipart/form-data"},onUploadProgress:function(i){let s=Math.round(i.loaded*100/i.total);h.progress=s}})});Promise.all(x).then(l=>{this.$notify.normal({body:`Uploaded ${l.length} package${l.length>1?"s":""}`}),this.loadingPackage=!1,this.files=[],setTimeout(()=>{this.updateProcesses()},2500)}).catch(l=>{this.loadingPackage=!1})}},deletePackage(n){this.$dialog.confirm(`Are you sure you want to remove: ${n}`,{okText:"Delete",cancelText:"Cancel"}).then(t=>u.ui.delete(`/openc3-api/packages/${n}`)).then(t=>{this.$notify.normal({body:`Removed package ${n}`}),setTimeout(()=>{this.updateProcesses()},2500)}).catch(t=>{this.$notify.serious({body:`Failed to remove package ${n}`})})}}},B=["textContent"],S=["textContent"];function E(n,t,h,x,l,a){const i=e.resolveComponent("v-btn"),s=e.resolveComponent("v-col"),w=e.resolveComponent("rux-progress"),d=e.resolveComponent("v-row"),p=e.resolveComponent("v-list-item-title"),V=e.resolveComponent("v-list-item-subtitle"),m=e.resolveComponent("v-icon"),_=e.resolveComponent("v-tooltip"),g=e.resolveComponent("v-list-item"),f=e.resolveComponent("v-divider"),C=e.resolveComponent("v-list"),k=e.resolveComponent("download-dialog"),N=e.resolveComponent("simple-text-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,{"no-gutters":"",align:"center",class:"px-2"},{default:e.withCtx(()=>[e.createVNode(s,{class:"pa-2 mt-2"},{default:e.withCtx(()=>[e.createVNode(i,{onClick:a.selectFile},{default:e.withCtx(()=>t[3]||(t[3]=[e.createTextVNode("Install Package")])),_:1},8,["onClick"]),e.createElementVNode("input",{style:{display:"none"},type:"file",ref:"fileInput",onChange:t[0]||(t[0]=(...o)=>a.fileChange&&a.fileChange(...o))},null,544)]),_:1}),e.createVNode(s,{class:"ml-4 mr-2",cols:"4"},{default:e.withCtx(()=>[e.createVNode(w,{value:l.progress},null,8,["value"])]),_:1})]),_:1}),Object.keys(l.processes).length>0?(e.openBlock(),e.createBlock(C,{key:0,class:"list","data-test":"process-list"},{default:e.withCtx(()=>[e.createVNode(d,{"no-gutters":"",class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>t[4]||(t[4]=[e.createTextVNode("Process List")])),_:1}),e.createVNode(s,{align:"right"},{default:e.withCtx(()=>t[5]||(t[5]=[e.createElementVNode("div",null,"Showing last 10 min of activity",-1)])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.processes,o=>(e.openBlock(),e.createElementBlock("div",{key:o.name},[e.createVNode(g,null,e.createSlots({default:e.withCtx(()=>[e.createVNode(p,null,{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(o.state.toLowerCase()),textContent:e.toDisplayString(`Processing ${o.process_type}: ${o.detail} - ${o.state}`)},null,10,B)]),_:2},1024),e.createVNode(V,null,{default:e.withCtx(()=>[e.createElementVNode("span",{textContent:e.toDisplayString(" Updated At: "+a.formatDate(o.updated_at))},null,8,S)]),_:2},1024)]),_:2},[o.state!=="Running"?{name:"append",fn:e.withCtx(()=>[e.createVNode(_,{location:"top"},{activator:e.withCtx(({props:r})=>[e.createVNode(m,e.mergeProps({ref_for:!0},r,{onClick:c=>a.showOutput(o)}),{default:e.withCtx(()=>t[6]||(t[6]=[e.createTextVNode(" mdi-eye ")])),_:2},1040,["onClick"])]),default:e.withCtx(()=>[t[7]||(t[7]=e.createElementVNode("span",null,"Show Output",-1))]),_:2},1024)]),key:"0"}:void 0]),1024),e.createVNode(f)]))),128))]),_:1})):e.createCommentVNode("",!0),e.createVNode(C,{class:"list","data-test":"packageList"},{default:e.withCtx(()=>[e.createVNode(d,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>t[8]||(t[8]=[e.createTextVNode("Ruby Gems")])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.gems,(o,r)=>(e.openBlock(),e.createElementBlock("div",{key:r},[e.createVNode(g,null,{append:e.withCtx(()=>[e.createVNode(_,{location:"top"},{activator:e.withCtx(({props:c})=>[e.createVNode(m,e.mergeProps({ref_for:!0},c,{onClick:y=>a.deletePackage(o)}),{default:e.withCtx(()=>t[9]||(t[9]=[e.createTextVNode(" mdi-delete ")])),_:2},1040,["onClick"])]),default:e.withCtx(()=>[t[10]||(t[10]=e.createElementVNode("span",null,"Delete Package",-1))]),_:2},1024)]),default:e.withCtx(()=>[e.createVNode(p,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o),1)]),_:2},1024)]),_:2},1024),e.createVNode(f)]))),128)),e.createVNode(d,{class:"px-4"},{default:e.withCtx(()=>[e.createVNode(s,{class:"text-h6"},{default:e.withCtx(()=>t[11]||(t[11]=[e.createTextVNode("Python Packages")])),_:1})]),_:1}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.python,(o,r)=>(e.openBlock(),e.createElementBlock("div",{key:r},[e.createVNode(g,null,{append:e.withCtx(()=>[e.createVNode(_,{location:"top"},{activator:e.withCtx(({props:c})=>[e.createVNode(m,e.mergeProps({ref_for:!0},c,{onClick:y=>a.deletePackage(o)}),{default:e.withCtx(()=>t[12]||(t[12]=[e.createTextVNode(" mdi-delete ")])),_:2},1040,["onClick"])]),default:e.withCtx(()=>[t[13]||(t[13]=e.createElementVNode("span",null,"Delete Package",-1))]),_:2},1024)]),default:e.withCtx(()=>[e.createVNode(p,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o),1)]),_:2},1024)]),_:2},1024),e.createVNode(f)]))),128))]),_:1}),e.createVNode(k,{modelValue:l.showDownloadDialog,"onUpdate:modelValue":t[1]||(t[1]=o=>l.showDownloadDialog=o)},null,8,["modelValue"]),e.createVNode(N,{modelValue:l.showProcessOutput,"onUpdate:modelValue":t[2]||(t[2]=o=>l.showProcessOutput=o),title:"Process Output",text:l.processOutput},null,8,["modelValue","text"])])}const O=P._export_sfc(b,[["render",E],["__scopeId","data-v-a9a7750b"]]);exports.default=O;
2
+ //# sourceMappingURL=PackagesTab-eYbk2vw7.cjs.map