@openc3/vue-common 6.7.0 → 6.8.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 (416) hide show
  1. package/dist/{ArrayWidget-B__t3xOt.cjs → ArrayWidget-CiW5R8HE.cjs} +2 -2
  2. package/dist/{ArrayWidget-B__t3xOt.cjs.map → ArrayWidget-CiW5R8HE.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-BSG8KEtf.js → ArrayWidget-FGjLmPfG.js} +4 -4
  4. package/dist/{ArrayWidget-BSG8KEtf.js.map → ArrayWidget-FGjLmPfG.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-WVu76Kqn.js → ArrayplotWidget-Cfo18TYm.js} +7 -7
  6. package/dist/{ArrayplotWidget-WVu76Kqn.js.map → ArrayplotWidget-Cfo18TYm.js.map} +1 -1
  7. package/dist/{ArrayplotWidget-BduWyJlL.cjs → ArrayplotWidget-V5C4JRhx.cjs} +2 -2
  8. package/dist/{ArrayplotWidget-BduWyJlL.cjs.map → ArrayplotWidget-V5C4JRhx.cjs.map} +1 -1
  9. package/dist/{BarColumn-DVn9f2WO.cjs → BarColumn-B4naVXS_.cjs} +2 -2
  10. package/dist/{BarColumn-DVn9f2WO.cjs.map → BarColumn-B4naVXS_.cjs.map} +1 -1
  11. package/dist/{BarColumn-Cflh9pUz.js → BarColumn-BuJ6MTYG.js} +3 -3
  12. package/dist/{BarColumn-Cflh9pUz.js.map → BarColumn-BuJ6MTYG.js.map} +1 -1
  13. package/dist/{BlockWidget-CRqA09Ve.cjs → BlockWidget-BJWENVXd.cjs} +2 -2
  14. package/dist/{BlockWidget-CRqA09Ve.cjs.map → BlockWidget-BJWENVXd.cjs.map} +1 -1
  15. package/dist/{BlockWidget-B7ryWGCq.js → BlockWidget-B_JwY8-N.js} +4 -4
  16. package/dist/{BlockWidget-B7ryWGCq.js.map → BlockWidget-B_JwY8-N.js.map} +1 -1
  17. package/dist/{ButtonWidget-Bb46aUCR.cjs → ButtonWidget-C2IS6q9D.cjs} +3 -3
  18. package/dist/{ButtonWidget-Bb46aUCR.cjs.map → ButtonWidget-C2IS6q9D.cjs.map} +1 -1
  19. package/dist/{ButtonWidget-BKih3ix9.js → ButtonWidget-Cd4M3aBD.js} +18 -22
  20. package/dist/{ButtonWidget-BKih3ix9.js.map → ButtonWidget-Cd4M3aBD.js.map} +1 -1
  21. package/dist/{CanvasWidget-DT_vPAoc.cjs → CanvasWidget-BIIhyH_l.cjs} +2 -2
  22. package/dist/{CanvasWidget-DT_vPAoc.cjs.map → CanvasWidget-BIIhyH_l.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-DT9xMSfb.js → CanvasWidget-CpKdOgTG.js} +2 -2
  24. package/dist/{CanvasWidget-DT9xMSfb.js.map → CanvasWidget-CpKdOgTG.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-DNSQriVo.cjs → CanvasdotWidget-BVlIdbvL.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-DNSQriVo.cjs.map → CanvasdotWidget-BVlIdbvL.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget-7H5Hvcn-.js → CanvasdotWidget-zYbI5LAw.js} +2 -2
  28. package/dist/{CanvasdotWidget-7H5Hvcn-.js.map → CanvasdotWidget-zYbI5LAw.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-BbWYx6Gj.js → CanvasimageWidget--ORQEPj6.js} +3 -3
  30. package/dist/{CanvasimageWidget-BbWYx6Gj.js.map → CanvasimageWidget--ORQEPj6.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-CfleScIF.cjs → CanvasimageWidget-SNXRh4TB.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-CfleScIF.cjs.map → CanvasimageWidget-SNXRh4TB.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-Blvoe2X4.js → CanvasimagevalueWidget-CtAtYHRm.js} +3 -3
  34. package/dist/{CanvasimagevalueWidget-Blvoe2X4.js.map → CanvasimagevalueWidget-CtAtYHRm.js.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-ouM4DBeD.cjs → CanvasimagevalueWidget-DcXjMEYO.cjs} +2 -2
  36. package/dist/{CanvasimagevalueWidget-ouM4DBeD.cjs.map → CanvasimagevalueWidget-DcXjMEYO.cjs.map} +1 -1
  37. package/dist/{CanvaslabelWidget-DB3qox5N.cjs → CanvaslabelWidget-8MMfV594.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-DB3qox5N.cjs.map → CanvaslabelWidget-8MMfV594.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-BPx_Rm4o.js → CanvaslabelWidget-DWoROb6o.js} +2 -2
  40. package/dist/{CanvaslabelWidget-BPx_Rm4o.js.map → CanvaslabelWidget-DWoROb6o.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-DzdWvL0W.js → CanvaslabelvalueWidget-A4UbtwEc.js} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-DzdWvL0W.js.map → CanvaslabelvalueWidget-A4UbtwEc.js.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-2k6TjSNj.cjs → CanvaslabelvalueWidget-hDxHrErw.cjs} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-2k6TjSNj.cjs.map → CanvaslabelvalueWidget-hDxHrErw.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-CqskilGk.js → CanvaslineWidget-BBGi0nrb.js} +2 -2
  46. package/dist/{CanvaslineWidget-CqskilGk.js.map → CanvaslineWidget-BBGi0nrb.js.map} +1 -1
  47. package/dist/{CanvaslineWidget-oAoznYZP.cjs → CanvaslineWidget-grGKrpPw.cjs} +2 -2
  48. package/dist/{CanvaslineWidget-oAoznYZP.cjs.map → CanvaslineWidget-grGKrpPw.cjs.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-C0JIKdvZ.js → CanvaslinevalueWidget-C_9OkL7f.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-C0JIKdvZ.js.map → CanvaslinevalueWidget-C_9OkL7f.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-BmyIxGNz.cjs → CanvaslinevalueWidget-DMIWLqT-.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-BmyIxGNz.cjs.map → CanvaslinevalueWidget-DMIWLqT-.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-C548xrRy.cjs → CheckbuttonWidget-BMYkeGyw.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-C548xrRy.cjs.map → CheckbuttonWidget-BMYkeGyw.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-C9FbJx2v.js → CheckbuttonWidget-CTJg8Ypg.js} +2 -2
  56. package/dist/{CheckbuttonWidget-C9FbJx2v.js.map → CheckbuttonWidget-CTJg8Ypg.js.map} +1 -1
  57. package/dist/{ClassificationBanners-BTdLBSfy.cjs → ClassificationBanners-De_CDp9I.cjs} +2 -2
  58. package/dist/{ClassificationBanners-BTdLBSfy.cjs.map → ClassificationBanners-De_CDp9I.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-CgJiwgTp.js → ClassificationBanners-Dz5-_h_0.js} +2 -2
  60. package/dist/{ClassificationBanners-CgJiwgTp.js.map → ClassificationBanners-Dz5-_h_0.js.map} +1 -1
  61. package/dist/{ComboboxWidget-AErojGw0.cjs → ComboboxWidget-CZMUsBRC.cjs} +2 -2
  62. package/dist/{ComboboxWidget-AErojGw0.cjs.map → ComboboxWidget-CZMUsBRC.cjs.map} +1 -1
  63. package/dist/{ComboboxWidget-BbNKT0s8.js → ComboboxWidget-DWiMZZk8.js} +2 -2
  64. package/dist/{ComboboxWidget-BbNKT0s8.js.map → ComboboxWidget-DWiMZZk8.js.map} +1 -1
  65. package/dist/CriticalCmdDialog-ByiHBnFL.cjs +2 -0
  66. package/dist/{CriticalCmdDialog-N06JxCHg.cjs.map → CriticalCmdDialog-ByiHBnFL.cjs.map} +1 -1
  67. package/dist/{CriticalCmdDialog-CF7Sqjdm.js → CriticalCmdDialog-CD72VN-P.js} +10 -13
  68. package/dist/{CriticalCmdDialog-CF7Sqjdm.js.map → CriticalCmdDialog-CD72VN-P.js.map} +1 -1
  69. package/dist/{DateWidget-CBMsdRUE.js → DateWidget-C7GSh68_.js} +2 -2
  70. package/dist/{DateWidget-CBMsdRUE.js.map → DateWidget-C7GSh68_.js.map} +1 -1
  71. package/dist/{DateWidget-CCIkDM9_.cjs → DateWidget-CR4OfvjB.cjs} +2 -2
  72. package/dist/{DateWidget-CCIkDM9_.cjs.map → DateWidget-CR4OfvjB.cjs.map} +1 -1
  73. package/dist/{DetailsDialog-DRVahE5z.js → DetailsDialog-B2l0BNc2.js} +126 -158
  74. package/dist/{DetailsDialog-DRVahE5z.js.map → DetailsDialog-B2l0BNc2.js.map} +1 -1
  75. package/dist/DetailsDialog-CrfaoIk5.cjs +2 -0
  76. package/dist/{DetailsDialog-CVYBgZll.cjs.map → DetailsDialog-CrfaoIk5.cjs.map} +1 -1
  77. package/dist/{EventListDialog-DDWL9gIQ.js → EventListDialog-1NXp1MLg.js} +53 -68
  78. package/dist/{EventListDialog-DDWL9gIQ.js.map → EventListDialog-1NXp1MLg.js.map} +1 -1
  79. package/dist/EventListDialog-BwSJXEhw.cjs +2 -0
  80. package/dist/{EventListDialog-CjYLRdkb.cjs.map → EventListDialog-BwSJXEhw.cjs.map} +1 -1
  81. package/dist/{FormatvalueWidget-BLWsqhIZ.js → FormatvalueWidget-CZJdsUAq.js} +3 -3
  82. package/dist/{FormatvalueWidget-BLWsqhIZ.js.map → FormatvalueWidget-CZJdsUAq.js.map} +1 -1
  83. package/dist/{FormatvalueWidget-BiaqheLJ.cjs → FormatvalueWidget-zoY5Fzwr.cjs} +2 -2
  84. package/dist/{FormatvalueWidget-BiaqheLJ.cjs.map → FormatvalueWidget-zoY5Fzwr.cjs.map} +1 -1
  85. package/dist/Graph-BuKXPKyK.cjs +2 -0
  86. package/dist/Graph-BuKXPKyK.cjs.map +1 -0
  87. package/dist/{Graph-BiU56Qj2.js → Graph-DZBpdSgR.js} +384 -391
  88. package/dist/Graph-DZBpdSgR.js.map +1 -0
  89. package/dist/{GraphWidget-Ga0AEfrJ.js → GraphWidget-CHm4bhMI.js} +2 -2
  90. package/dist/{GraphWidget-Ga0AEfrJ.js.map → GraphWidget-CHm4bhMI.js.map} +1 -1
  91. package/dist/{GraphWidget-cfgX_skM.cjs → GraphWidget-P-EUkwbI.cjs} +2 -2
  92. package/dist/{GraphWidget-cfgX_skM.cjs.map → GraphWidget-P-EUkwbI.cjs.map} +1 -1
  93. package/dist/{HorizontalWidget-i6aqMSRv.cjs → HorizontalWidget-1Gd93-D7.cjs} +2 -2
  94. package/dist/{HorizontalWidget-i6aqMSRv.cjs.map → HorizontalWidget-1Gd93-D7.cjs.map} +1 -1
  95. package/dist/{HorizontalWidget-CsVhLwZO.js → HorizontalWidget-B2skpV1m.js} +2 -2
  96. package/dist/{HorizontalWidget-CsVhLwZO.js.map → HorizontalWidget-B2skpV1m.js.map} +1 -1
  97. package/dist/{HorizontalboxWidget-xC6PADl3.js → HorizontalboxWidget-BI0WZP5M.js} +5 -5
  98. package/dist/{HorizontalboxWidget-xC6PADl3.js.map → HorizontalboxWidget-BI0WZP5M.js.map} +1 -1
  99. package/dist/{HorizontalboxWidget-B_S8mswF.cjs → HorizontalboxWidget-CHFz7lCJ.cjs} +2 -2
  100. package/dist/{HorizontalboxWidget-B_S8mswF.cjs.map → HorizontalboxWidget-CHFz7lCJ.cjs.map} +1 -1
  101. package/dist/{HorizontallineWidget-NZIxmRVN.js → HorizontallineWidget-AmxVeXcU.js} +2 -2
  102. package/dist/{HorizontallineWidget-NZIxmRVN.js.map → HorizontallineWidget-AmxVeXcU.js.map} +1 -1
  103. package/dist/{HorizontallineWidget-Cpys-185.cjs → HorizontallineWidget-CCuEqHsc.cjs} +2 -2
  104. package/dist/{HorizontallineWidget-Cpys-185.cjs.map → HorizontallineWidget-CCuEqHsc.cjs.map} +1 -1
  105. package/dist/{IframeWidget-CCdvd8rg.cjs → IframeWidget-DG7yUYb3.cjs} +2 -2
  106. package/dist/{IframeWidget-CCdvd8rg.cjs.map → IframeWidget-DG7yUYb3.cjs.map} +1 -1
  107. package/dist/{IframeWidget-BgzjSfag.js → IframeWidget-DcqRMhyW.js} +2 -2
  108. package/dist/{IframeWidget-BgzjSfag.js.map → IframeWidget-DcqRMhyW.js.map} +1 -1
  109. package/dist/{ImageLoader-BIKl6vGc.cjs → ImageLoader-BaDVKIBu.cjs} +2 -2
  110. package/dist/{ImageLoader-BIKl6vGc.cjs.map → ImageLoader-BaDVKIBu.cjs.map} +1 -1
  111. package/dist/{ImageLoader-DbFVK1Ui.js → ImageLoader-ly4zoGpO.js} +2 -2
  112. package/dist/{ImageLoader-DbFVK1Ui.js.map → ImageLoader-ly4zoGpO.js.map} +1 -1
  113. package/dist/{ImageviewerWidget-lnralJZa.cjs → ImageviewerWidget-BgMpAFvG.cjs} +2 -2
  114. package/dist/{ImageviewerWidget-lnralJZa.cjs.map → ImageviewerWidget-BgMpAFvG.cjs.map} +1 -1
  115. package/dist/{ImageviewerWidget-BnT5m-nw.js → ImageviewerWidget-cmDHcmW4.js} +2 -2
  116. package/dist/{ImageviewerWidget-BnT5m-nw.js.map → ImageviewerWidget-cmDHcmW4.js.map} +1 -1
  117. package/dist/{InterfacesTab-Cd_RITVP.js → InterfacesTab-BSCFzmW1.js} +6 -6
  118. package/dist/{InterfacesTab-Cd_RITVP.js.map → InterfacesTab-BSCFzmW1.js.map} +1 -1
  119. package/dist/{InterfacesTab-DjlzjJYG.cjs → InterfacesTab-K7odu5gi.cjs} +2 -2
  120. package/dist/{InterfacesTab-DjlzjJYG.cjs.map → InterfacesTab-K7odu5gi.cjs.map} +1 -1
  121. package/dist/{LabelWidget-DSDYmz6X.js → LabelWidget-Bemw8Erq.js} +2 -2
  122. package/dist/{LabelWidget-DSDYmz6X.js.map → LabelWidget-Bemw8Erq.js.map} +1 -1
  123. package/dist/{LabelWidget-CRHSFVPT.cjs → LabelWidget-D6B4JzLR.cjs} +2 -2
  124. package/dist/{LabelWidget-CRHSFVPT.cjs.map → LabelWidget-D6B4JzLR.cjs.map} +1 -1
  125. package/dist/{LabelledWidget-DMb-myxs.js → LabelledWidget-Cb7EvtUG.js} +4 -4
  126. package/dist/{LabelledWidget-DMb-myxs.js.map → LabelledWidget-Cb7EvtUG.js.map} +1 -1
  127. package/dist/{LabelledWidget-BXf9cTf_.cjs → LabelledWidget-Dg1pZiON.cjs} +2 -2
  128. package/dist/{LabelledWidget-BXf9cTf_.cjs.map → LabelledWidget-Dg1pZiON.cjs.map} +1 -1
  129. package/dist/{LabelprogressbarWidget-BNHaAUXq.cjs → LabelprogressbarWidget-DrVVuiXa.cjs} +2 -2
  130. package/dist/{LabelprogressbarWidget-BNHaAUXq.cjs.map → LabelprogressbarWidget-DrVVuiXa.cjs.map} +1 -1
  131. package/dist/{LabelprogressbarWidget-CkjDJBao.js → LabelprogressbarWidget-qYgrGqLY.js} +4 -4
  132. package/dist/{LabelprogressbarWidget-CkjDJBao.js.map → LabelprogressbarWidget-qYgrGqLY.js.map} +1 -1
  133. package/dist/{LabelsparklineWidget-BpHMkt-L.cjs → LabelsparklineWidget-Bht80Ncq.cjs} +2 -2
  134. package/dist/{LabelsparklineWidget-BpHMkt-L.cjs.map → LabelsparklineWidget-Bht80Ncq.cjs.map} +1 -1
  135. package/dist/{LabelsparklineWidget-DBYPFz3Y.js → LabelsparklineWidget-CMklq9-f.js} +4 -4
  136. package/dist/{LabelsparklineWidget-DBYPFz3Y.js.map → LabelsparklineWidget-CMklq9-f.js.map} +1 -1
  137. package/dist/{LabelvalueWidget-BFHYb64m.cjs → LabelvalueWidget-DKx6dV8b.cjs} +2 -2
  138. package/dist/{LabelvalueWidget-BFHYb64m.cjs.map → LabelvalueWidget-DKx6dV8b.cjs.map} +1 -1
  139. package/dist/{LabelvalueWidget-DlTkJC4i.js → LabelvalueWidget-NjCMgiYL.js} +4 -4
  140. package/dist/{LabelvalueWidget-DlTkJC4i.js.map → LabelvalueWidget-NjCMgiYL.js.map} +1 -1
  141. package/dist/{LabelvaluedescWidget-CUld9MqE.cjs → LabelvaluedescWidget-D8N6KdzA.cjs} +2 -2
  142. package/dist/{LabelvaluedescWidget-CUld9MqE.cjs.map → LabelvaluedescWidget-D8N6KdzA.cjs.map} +1 -1
  143. package/dist/{LabelvaluedescWidget-dRqnGZub.js → LabelvaluedescWidget-Dflulqm7.js} +10 -10
  144. package/dist/{LabelvaluedescWidget-dRqnGZub.js.map → LabelvaluedescWidget-Dflulqm7.js.map} +1 -1
  145. package/dist/{LabelvaluelimitsbarWidget-Br_PXH0r.cjs → LabelvaluelimitsbarWidget-DbwVdsfd.cjs} +2 -2
  146. package/dist/{LabelvaluelimitsbarWidget-Br_PXH0r.cjs.map → LabelvaluelimitsbarWidget-DbwVdsfd.cjs.map} +1 -1
  147. package/dist/{LabelvaluelimitsbarWidget-CS4NAPJ1.js → LabelvaluelimitsbarWidget-M34NDk2S.js} +4 -4
  148. package/dist/{LabelvaluelimitsbarWidget-CS4NAPJ1.js.map → LabelvaluelimitsbarWidget-M34NDk2S.js.map} +1 -1
  149. package/dist/{LabelvaluelimitscolumnWidget-DjLG10C5.cjs → LabelvaluelimitscolumnWidget-1LXrtBFT.cjs} +2 -2
  150. package/dist/{LabelvaluelimitscolumnWidget-DjLG10C5.cjs.map → LabelvaluelimitscolumnWidget-1LXrtBFT.cjs.map} +1 -1
  151. package/dist/{LabelvaluelimitscolumnWidget-D9x4Ppv8.js → LabelvaluelimitscolumnWidget-Cchaw_-k.js} +5 -5
  152. package/dist/{LabelvaluelimitscolumnWidget-D9x4Ppv8.js.map → LabelvaluelimitscolumnWidget-Cchaw_-k.js.map} +1 -1
  153. package/dist/{LabelvaluerangebarWidget-Dhyng4-n.js → LabelvaluerangebarWidget-7pEykAm3.js} +4 -4
  154. package/dist/{LabelvaluerangebarWidget-Dhyng4-n.js.map → LabelvaluerangebarWidget-7pEykAm3.js.map} +1 -1
  155. package/dist/{LabelvaluerangebarWidget-CsUfrGAM.cjs → LabelvaluerangebarWidget-Ca6lJAZV.cjs} +2 -2
  156. package/dist/{LabelvaluerangebarWidget-CsUfrGAM.cjs.map → LabelvaluerangebarWidget-Ca6lJAZV.cjs.map} +1 -1
  157. package/dist/{Layout-mWR35VAD.js → Layout-BNvQKlyy.js} +2 -2
  158. package/dist/{Layout-mWR35VAD.js.map → Layout-BNvQKlyy.js.map} +1 -1
  159. package/dist/Layout-CXwcgFxa.cjs +2 -0
  160. package/dist/{Layout-DDktMnzb.cjs.map → Layout-CXwcgFxa.cjs.map} +1 -1
  161. package/dist/{LedWidget-CCQWCw80.cjs → LedWidget-CafSb6jG.cjs} +2 -2
  162. package/dist/{LedWidget-CCQWCw80.cjs.map → LedWidget-CafSb6jG.cjs.map} +1 -1
  163. package/dist/{LedWidget-D8cq4pUv.js → LedWidget-_EA7ZKM8.js} +4 -4
  164. package/dist/{LedWidget-D8cq4pUv.js.map → LedWidget-_EA7ZKM8.js.map} +1 -1
  165. package/dist/LimitsbarWidget-B4E6eQgY.cjs +2 -0
  166. package/dist/{LimitsbarWidget-D4O0LWuC.cjs.map → LimitsbarWidget-B4E6eQgY.cjs.map} +1 -1
  167. package/dist/{LimitsbarWidget-VGJnDuVM.js → LimitsbarWidget-DdoQf46y.js} +4 -4
  168. package/dist/{LimitsbarWidget-VGJnDuVM.js.map → LimitsbarWidget-DdoQf46y.js.map} +1 -1
  169. package/dist/{LimitscolorWidget-BvxsopUs.cjs → LimitscolorWidget-B-ESO_oy.cjs} +2 -2
  170. package/dist/{LimitscolorWidget-BvxsopUs.cjs.map → LimitscolorWidget-B-ESO_oy.cjs.map} +1 -1
  171. package/dist/{LimitscolorWidget-CG6Pqi12.js → LimitscolorWidget-Cv0umnVo.js} +2 -2
  172. package/dist/{LimitscolorWidget-CG6Pqi12.js.map → LimitscolorWidget-Cv0umnVo.js.map} +1 -1
  173. package/dist/{LimitscolumnWidget-DjovQdiT.js → LimitscolumnWidget-CnCQtxim.js} +4 -4
  174. package/dist/{LimitscolumnWidget-DjovQdiT.js.map → LimitscolumnWidget-CnCQtxim.js.map} +1 -1
  175. package/dist/{LimitscolumnWidget-Z9JnMlDS.cjs → LimitscolumnWidget-PbEe5NP1.cjs} +2 -2
  176. package/dist/{LimitscolumnWidget-Z9JnMlDS.cjs.map → LimitscolumnWidget-PbEe5NP1.cjs.map} +1 -1
  177. package/dist/{LinegraphWidget-B_ECNLzU.cjs → LinegraphWidget-Bto_2lSc.cjs} +2 -2
  178. package/dist/{LinegraphWidget-B_ECNLzU.cjs.map → LinegraphWidget-Bto_2lSc.cjs.map} +1 -1
  179. package/dist/{LinegraphWidget-DSWAhXgZ.js → LinegraphWidget-ekyQoR7x.js} +4 -4
  180. package/dist/{LinegraphWidget-DSWAhXgZ.js.map → LinegraphWidget-ekyQoR7x.js.map} +1 -1
  181. package/dist/{MatrixbycolumnsWidget-C3cuhRxz.js → MatrixbycolumnsWidget-IBUcGNF7.js} +3 -3
  182. package/dist/{MatrixbycolumnsWidget-C3cuhRxz.js.map → MatrixbycolumnsWidget-IBUcGNF7.js.map} +1 -1
  183. package/dist/{MatrixbycolumnsWidget-CPFzRQN5.cjs → MatrixbycolumnsWidget-bMjMlQYz.cjs} +2 -2
  184. package/dist/{MatrixbycolumnsWidget-CPFzRQN5.cjs.map → MatrixbycolumnsWidget-bMjMlQYz.cjs.map} +1 -1
  185. package/dist/{MicroservicesTab-BGgwT56M.cjs → MicroservicesTab-BXb4TPjR.cjs} +2 -2
  186. package/dist/{MicroservicesTab-BGgwT56M.cjs.map → MicroservicesTab-BXb4TPjR.cjs.map} +1 -1
  187. package/dist/{MicroservicesTab-Dbp02UlV.js → MicroservicesTab-CUqp5uFH.js} +4 -4
  188. package/dist/{MicroservicesTab-Dbp02UlV.js.map → MicroservicesTab-CUqp5uFH.js.map} +1 -1
  189. package/dist/{Openc3Screen-CkdegNDJ.js → Openc3Screen-B31-mKUZ.js} +403 -398
  190. package/dist/Openc3Screen-B31-mKUZ.js.map +1 -0
  191. package/dist/Openc3Screen-ByRi15VK.cjs +6 -0
  192. package/dist/Openc3Screen-ByRi15VK.cjs.map +1 -0
  193. package/dist/{OutputDialog-2CmOBAEE.cjs → OutputDialog-CXQ5-PgU.cjs} +2 -2
  194. package/dist/{OutputDialog-2CmOBAEE.cjs.map → OutputDialog-CXQ5-PgU.cjs.map} +1 -1
  195. package/dist/{OutputDialog-M5Xc_DqH.js → OutputDialog-wBy-sg3k.js} +12 -13
  196. package/dist/{OutputDialog-M5Xc_DqH.js.map → OutputDialog-wBy-sg3k.js.map} +1 -1
  197. package/dist/{PackagesTab-HQCOIGZK.js → PackagesTab-BSVPTVe7.js} +30 -36
  198. package/dist/{PackagesTab-HQCOIGZK.js.map → PackagesTab-BSVPTVe7.js.map} +1 -1
  199. package/dist/PackagesTab-oOtpCEIX.cjs +2 -0
  200. package/dist/{PackagesTab-Dwp6g8W0.cjs.map → PackagesTab-oOtpCEIX.cjs.map} +1 -1
  201. package/dist/PluginsTab-D2-nxcCZ.cjs +6 -0
  202. package/dist/PluginsTab-D2-nxcCZ.cjs.map +1 -0
  203. package/dist/{PluginsTab-CZApRILr.js → PluginsTab-DShjzJVP.js} +462 -410
  204. package/dist/PluginsTab-DShjzJVP.js.map +1 -0
  205. package/dist/{ProgressbarWidget-oCgAEFBO.js → ProgressbarWidget-CnveFZVh.js} +2 -2
  206. package/dist/{ProgressbarWidget-oCgAEFBO.js.map → ProgressbarWidget-CnveFZVh.js.map} +1 -1
  207. package/dist/{ProgressbarWidget-BADSYuUN.cjs → ProgressbarWidget-KBhRifXc.cjs} +2 -2
  208. package/dist/{ProgressbarWidget-BADSYuUN.cjs.map → ProgressbarWidget-KBhRifXc.cjs.map} +1 -1
  209. package/dist/{RadiobuttonWidget-Bklx2_Au.cjs → RadiobuttonWidget-Dt1lTgs1.cjs} +2 -2
  210. package/dist/{RadiobuttonWidget-Bklx2_Au.cjs.map → RadiobuttonWidget-Dt1lTgs1.cjs.map} +1 -1
  211. package/dist/{RadiobuttonWidget-D4Dak3lc.js → RadiobuttonWidget-hWLrCb8W.js} +2 -2
  212. package/dist/{RadiobuttonWidget-D4Dak3lc.js.map → RadiobuttonWidget-hWLrCb8W.js.map} +1 -1
  213. package/dist/{RadiogroupWidget-Z2S2tgjG.cjs → RadiogroupWidget-CT4otlQS.cjs} +2 -2
  214. package/dist/{RadiogroupWidget-Z2S2tgjG.cjs.map → RadiogroupWidget-CT4otlQS.cjs.map} +1 -1
  215. package/dist/{RadiogroupWidget-Dbe9T4fp.js → RadiogroupWidget-DK1fphkh.js} +2 -2
  216. package/dist/{RadiogroupWidget-Dbe9T4fp.js.map → RadiogroupWidget-DK1fphkh.js.map} +1 -1
  217. package/dist/{RangebarWidget-C0TpxFDi.cjs → RangebarWidget-DquzegM5.cjs} +2 -2
  218. package/dist/{RangebarWidget-C0TpxFDi.cjs.map → RangebarWidget-DquzegM5.cjs.map} +1 -1
  219. package/dist/{RangebarWidget-CIVrgqrW.js → RangebarWidget-vspY8CGV.js} +4 -4
  220. package/dist/{RangebarWidget-CIVrgqrW.js.map → RangebarWidget-vspY8CGV.js.map} +1 -1
  221. package/dist/RedisTab-B28s52_T.js +171 -0
  222. package/dist/RedisTab-B28s52_T.js.map +1 -0
  223. package/dist/RedisTab-DBbLlP9e.cjs +2 -0
  224. package/dist/RedisTab-DBbLlP9e.cjs.map +1 -0
  225. package/dist/{RollupWidget-CH1-XNLV.js → RollupWidget-07pNcXQV.js} +2 -2
  226. package/dist/{RollupWidget-CH1-XNLV.js.map → RollupWidget-07pNcXQV.js.map} +1 -1
  227. package/dist/{RollupWidget-BEDf-mfg.cjs → RollupWidget-CoxNKLcv.cjs} +2 -2
  228. package/dist/{RollupWidget-BEDf-mfg.cjs.map → RollupWidget-CoxNKLcv.cjs.map} +1 -1
  229. package/dist/{RoutersTab-BA-KlYIm.cjs → RoutersTab-DEtxUph7.cjs} +2 -2
  230. package/dist/{RoutersTab-BA-KlYIm.cjs.map → RoutersTab-DEtxUph7.cjs.map} +1 -1
  231. package/dist/{RoutersTab-WKa6K7B8.js → RoutersTab-DX_r6FEQ.js} +6 -6
  232. package/dist/{RoutersTab-WKa6K7B8.js.map → RoutersTab-DX_r6FEQ.js.map} +1 -1
  233. package/dist/{ScriptChooser-LsboGSgh.cjs → ScriptChooser-BZMnm4SX.cjs} +2 -2
  234. package/dist/{ScriptChooser-LsboGSgh.cjs.map → ScriptChooser-BZMnm4SX.cjs.map} +1 -1
  235. package/dist/{ScriptChooser-B5TkGuZ4.js → ScriptChooser-Ci_3uZDo.js} +2 -2
  236. package/dist/{ScriptChooser-B5TkGuZ4.js.map → ScriptChooser-Ci_3uZDo.js.map} +1 -1
  237. package/dist/{ScrollwindowWidget-BwFG6Wn8.js → ScrollwindowWidget-BcbyrYUo.js} +3 -3
  238. package/dist/{ScrollwindowWidget-BwFG6Wn8.js.map → ScrollwindowWidget-BcbyrYUo.js.map} +1 -1
  239. package/dist/{ScrollwindowWidget-DWxDmpFB.cjs → ScrollwindowWidget-Djvcd1yX.cjs} +2 -2
  240. package/dist/{ScrollwindowWidget-DWxDmpFB.cjs.map → ScrollwindowWidget-Djvcd1yX.cjs.map} +1 -1
  241. package/dist/{SecretsTab-Vtvbb_1U.js → SecretsTab-BNFEqrT1.js} +13 -15
  242. package/dist/{SecretsTab-Vtvbb_1U.js.map → SecretsTab-BNFEqrT1.js.map} +1 -1
  243. package/dist/{SecretsTab-DKX5gLH_.cjs → SecretsTab-cG1U2SyL.cjs} +2 -2
  244. package/dist/{SecretsTab-DKX5gLH_.cjs.map → SecretsTab-cG1U2SyL.cjs.map} +1 -1
  245. package/dist/{SettingsTab-DilFIQ3K.js → SettingsTab-C4T8ecIZ.js} +261 -315
  246. package/dist/{SettingsTab-DilFIQ3K.js.map → SettingsTab-C4T8ecIZ.js.map} +1 -1
  247. package/dist/SettingsTab-DvUFxNoM.cjs +3 -0
  248. package/dist/{SettingsTab-Ch52foLm.cjs.map → SettingsTab-DvUFxNoM.cjs.map} +1 -1
  249. package/dist/{SignalWidget-1WqQFVq9.cjs → SignalWidget-9IqQEM4M.cjs} +2 -2
  250. package/dist/{SignalWidget-1WqQFVq9.cjs.map → SignalWidget-9IqQEM4M.cjs.map} +1 -1
  251. package/dist/{SignalWidget-Gz2gHrUm.js → SignalWidget-BDp5sUHj.js} +2 -2
  252. package/dist/{SignalWidget-Gz2gHrUm.js.map → SignalWidget-BDp5sUHj.js.map} +1 -1
  253. package/dist/{SimpleTextDialog-BwOVWhRY.cjs → SimpleTextDialog-C1trfMSJ.cjs} +2 -2
  254. package/dist/{SimpleTextDialog-BwOVWhRY.cjs.map → SimpleTextDialog-C1trfMSJ.cjs.map} +1 -1
  255. package/dist/{SimpleTextDialog-Cmtrmt79.js → SimpleTextDialog-LQJdcAXX.js} +10 -11
  256. package/dist/{SimpleTextDialog-Cmtrmt79.js.map → SimpleTextDialog-LQJdcAXX.js.map} +1 -1
  257. package/dist/{SpacerWidget-Bzp3aI40.cjs → SpacerWidget-BS_oBLMC.cjs} +2 -2
  258. package/dist/{SpacerWidget-Bzp3aI40.cjs.map → SpacerWidget-BS_oBLMC.cjs.map} +1 -1
  259. package/dist/{SpacerWidget-Bg7VDB0k.js → SpacerWidget-DcOnQ1yI.js} +2 -2
  260. package/dist/{SpacerWidget-Bg7VDB0k.js.map → SpacerWidget-DcOnQ1yI.js.map} +1 -1
  261. package/dist/{SparklineWidget-D_b5rfJv.js → SparklineWidget-CVglnlAm.js} +4 -4
  262. package/dist/{SparklineWidget-D_b5rfJv.js.map → SparklineWidget-CVglnlAm.js.map} +1 -1
  263. package/dist/{SparklineWidget-kMWjVDrm.cjs → SparklineWidget-CciCNv5R.cjs} +2 -2
  264. package/dist/{SparklineWidget-kMWjVDrm.cjs.map → SparklineWidget-CciCNv5R.cjs.map} +1 -1
  265. package/dist/{TabbookWidget-DlVrU3wK.cjs → TabbookWidget-hCZ5AcLk.cjs} +2 -2
  266. package/dist/{TabbookWidget-DlVrU3wK.cjs.map → TabbookWidget-hCZ5AcLk.cjs.map} +1 -1
  267. package/dist/{TabbookWidget-C30f9B6z.js → TabbookWidget-p51Oa7Ru.js} +2 -2
  268. package/dist/{TabbookWidget-C30f9B6z.js.map → TabbookWidget-p51Oa7Ru.js.map} +1 -1
  269. package/dist/{TargetsTab-CEPId9dL.js → TargetsTab-CBagO3CX.js} +7 -8
  270. package/dist/{TargetsTab-CEPId9dL.js.map → TargetsTab-CBagO3CX.js.map} +1 -1
  271. package/dist/TargetsTab-CTzQTnuk.cjs +2 -0
  272. package/dist/{TargetsTab-uqjueXlq.cjs.map → TargetsTab-CTzQTnuk.cjs.map} +1 -1
  273. package/dist/{TextBoxDialog-BlZ6MBoW.js → TextBoxDialog-CdFHdj5W.js} +4 -5
  274. package/dist/{TextBoxDialog-BlZ6MBoW.js.map → TextBoxDialog-CdFHdj5W.js.map} +1 -1
  275. package/dist/{TextBoxDialog--uIDsNPU.cjs → TextBoxDialog-DbD8P4Xc.cjs} +2 -2
  276. package/dist/{TextBoxDialog--uIDsNPU.cjs.map → TextBoxDialog-DbD8P4Xc.cjs.map} +1 -1
  277. package/dist/{TextboxWidget-BJka_3dT.cjs → TextboxWidget-BhtvlFuj.cjs} +2 -2
  278. package/dist/{TextboxWidget-BJka_3dT.cjs.map → TextboxWidget-BhtvlFuj.cjs.map} +1 -1
  279. package/dist/{TextboxWidget-CDqxsgys.js → TextboxWidget-DM-XX97e.js} +4 -4
  280. package/dist/{TextboxWidget-CDqxsgys.js.map → TextboxWidget-DM-XX97e.js.map} +1 -1
  281. package/dist/{TextfieldWidget-CAyjKJs6.js → TextfieldWidget-7cYHAgH8.js} +2 -2
  282. package/dist/{TextfieldWidget-CAyjKJs6.js.map → TextfieldWidget-7cYHAgH8.js.map} +1 -1
  283. package/dist/{TextfieldWidget-C7_48W7n.cjs → TextfieldWidget-ChH9glbY.cjs} +2 -2
  284. package/dist/{TextfieldWidget-C7_48W7n.cjs.map → TextfieldWidget-ChH9glbY.cjs.map} +1 -1
  285. package/dist/{TimeWidget-WPWiADCI.cjs → TimeWidget-CUm-LMyL.cjs} +2 -2
  286. package/dist/{TimeWidget-WPWiADCI.cjs.map → TimeWidget-CUm-LMyL.cjs.map} +1 -1
  287. package/dist/{TimeWidget-BQsP0G2X.js → TimeWidget-EvQJyu6x.js} +2 -2
  288. package/dist/{TimeWidget-BQsP0G2X.js.map → TimeWidget-EvQJyu6x.js.map} +1 -1
  289. package/dist/{TitleWidget-DXVba53S.js → TitleWidget-6ddfJuqd.js} +2 -2
  290. package/dist/{TitleWidget-DXVba53S.js.map → TitleWidget-6ddfJuqd.js.map} +1 -1
  291. package/dist/{TitleWidget-DavRJ5B5.cjs → TitleWidget-Es1lfe61.cjs} +2 -2
  292. package/dist/{TitleWidget-DavRJ5B5.cjs.map → TitleWidget-Es1lfe61.cjs.map} +1 -1
  293. package/dist/{ToolsTab-CSmjz1H7.js → ToolsTab-ClJNvp8z.js} +6 -7
  294. package/dist/{ToolsTab-CSmjz1H7.js.map → ToolsTab-ClJNvp8z.js.map} +1 -1
  295. package/dist/ToolsTab-PKUy_HaM.cjs +7 -0
  296. package/dist/{ToolsTab-DUwXt5hn.cjs.map → ToolsTab-PKUy_HaM.cjs.map} +1 -1
  297. package/dist/{TopBar-D_2lT9RB.js → TopBar-CmP-ZyVe.js} +18 -20
  298. package/dist/{TopBar-D_2lT9RB.js.map → TopBar-CmP-ZyVe.js.map} +1 -1
  299. package/dist/TopBar-xyBcJsNc.cjs +2 -0
  300. package/dist/{TopBar-C5lQcY1W.cjs.map → TopBar-xyBcJsNc.cjs.map} +1 -1
  301. package/dist/UpgradeToEnterpriseDialog-CViAJs_M.cjs +2 -0
  302. package/dist/{UpgradeToEnterpriseDialog-BHDDrj0t.cjs.map → UpgradeToEnterpriseDialog-CViAJs_M.cjs.map} +1 -1
  303. package/dist/{UpgradeToEnterpriseDialog-Cvt5MMTj.js → UpgradeToEnterpriseDialog-DpWUa84S.js} +13 -16
  304. package/dist/{UpgradeToEnterpriseDialog-Cvt5MMTj.js.map → UpgradeToEnterpriseDialog-DpWUa84S.js.map} +1 -1
  305. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BuwHe3dn.js} +10089 -9899
  306. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BuwHe3dn.js.map +1 -0
  307. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NN0zFL7Z.cjs +1498 -0
  308. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NN0zFL7Z.cjs.map +1 -0
  309. package/dist/VWidget-3jbGZ8Dh.cjs +2 -0
  310. package/dist/VWidget-3jbGZ8Dh.cjs.map +1 -0
  311. package/dist/VWidget-P-X9ffkl.js +190 -0
  312. package/dist/VWidget-P-X9ffkl.js.map +1 -0
  313. package/dist/{ValueWidget-5ulSOrPw.cjs → ValueWidget-D3yaN8DJ.cjs} +2 -2
  314. package/dist/{ValueWidget-5ulSOrPw.cjs.map → ValueWidget-D3yaN8DJ.cjs.map} +1 -1
  315. package/dist/{ValueWidget-B-TWLPdM.js → ValueWidget-DAUGuQ9f.js} +4 -4
  316. package/dist/{ValueWidget-B-TWLPdM.js.map → ValueWidget-DAUGuQ9f.js.map} +1 -1
  317. package/dist/{ValuelimitsbarWidget-CTFVDwcL.cjs → ValuelimitsbarWidget-DGwtzXt6.cjs} +2 -2
  318. package/dist/{ValuelimitsbarWidget-CTFVDwcL.cjs.map → ValuelimitsbarWidget-DGwtzXt6.cjs.map} +1 -1
  319. package/dist/{ValuelimitsbarWidget-jsDXdPdC.js → ValuelimitsbarWidget-DmLUXw0I.js} +4 -4
  320. package/dist/{ValuelimitsbarWidget-jsDXdPdC.js.map → ValuelimitsbarWidget-DmLUXw0I.js.map} +1 -1
  321. package/dist/{ValuelimitscolumnWidget-Du3Baz6G.cjs → ValuelimitscolumnWidget-BRYnKfQk.cjs} +2 -2
  322. package/dist/{ValuelimitscolumnWidget-Du3Baz6G.cjs.map → ValuelimitscolumnWidget-BRYnKfQk.cjs.map} +1 -1
  323. package/dist/{ValuelimitscolumnWidget-I-uwnXM2.js → ValuelimitscolumnWidget-DDmo8wHJ.js} +4 -4
  324. package/dist/{ValuelimitscolumnWidget-I-uwnXM2.js.map → ValuelimitscolumnWidget-DDmo8wHJ.js.map} +1 -1
  325. package/dist/{ValuerangebarWidget-OyhSTScu.js → ValuerangebarWidget-CbzWSWq3.js} +4 -4
  326. package/dist/{ValuerangebarWidget-OyhSTScu.js.map → ValuerangebarWidget-CbzWSWq3.js.map} +1 -1
  327. package/dist/{ValuerangebarWidget-BjXDCLm3.cjs → ValuerangebarWidget-hi5jZvo8.cjs} +2 -2
  328. package/dist/{ValuerangebarWidget-BjXDCLm3.cjs.map → ValuerangebarWidget-hi5jZvo8.cjs.map} +1 -1
  329. package/dist/{VerticalWidget-CkFbX1Gq.js → VerticalWidget-BuKinn_c.js} +2 -2
  330. package/dist/{VerticalWidget-CkFbX1Gq.js.map → VerticalWidget-BuKinn_c.js.map} +1 -1
  331. package/dist/{VerticalWidget-CKDTGmhp.cjs → VerticalWidget-CRFI8Dq6.cjs} +2 -2
  332. package/dist/{VerticalWidget-CKDTGmhp.cjs.map → VerticalWidget-CRFI8Dq6.cjs.map} +1 -1
  333. package/dist/{VerticalboxWidget-D09UbA0I.cjs → VerticalboxWidget-1qp7u87Q.cjs} +2 -2
  334. package/dist/{VerticalboxWidget-D09UbA0I.cjs.map → VerticalboxWidget-1qp7u87Q.cjs.map} +1 -1
  335. package/dist/{VerticalboxWidget-FEQgPM9r.js → VerticalboxWidget-C0zD5h0O.js} +5 -5
  336. package/dist/{VerticalboxWidget-FEQgPM9r.js.map → VerticalboxWidget-C0zD5h0O.js.map} +1 -1
  337. package/dist/{Widget-C3-TBgP7.js → Widget-BIXl-Pk5.js} +2 -2
  338. package/dist/{Widget-C3-TBgP7.js.map → Widget-BIXl-Pk5.js.map} +1 -1
  339. package/dist/{Widget-CSBtgNwA.cjs → Widget-wEcPyNXg.cjs} +2 -2
  340. package/dist/{Widget-CSBtgNwA.cjs.map → Widget-wEcPyNXg.cjs.map} +1 -1
  341. package/dist/cmdUtilities-BMsSNjt_.js +46 -0
  342. package/dist/cmdUtilities-BMsSNjt_.js.map +1 -0
  343. package/dist/cmdUtilities-ChD8v8-7.cjs +2 -0
  344. package/dist/cmdUtilities-ChD8v8-7.cjs.map +1 -0
  345. package/dist/components.cjs +3 -3
  346. package/dist/components.cjs.map +1 -1
  347. package/dist/components.js +656 -247
  348. package/dist/components.js.map +1 -1
  349. package/dist/index-DS1ACWVr.js +1755 -0
  350. package/dist/index-DS1ACWVr.js.map +1 -0
  351. package/dist/index-Nd4O4kac.cjs +7 -0
  352. package/dist/index-Nd4O4kac.cjs.map +1 -0
  353. package/dist/plugins.cjs +2 -2
  354. package/dist/plugins.cjs.map +1 -1
  355. package/dist/plugins.js +6 -8
  356. package/dist/plugins.js.map +1 -1
  357. package/dist/{settings-BboN1VLt.cjs → settings-CUg4_VNE.cjs} +2 -2
  358. package/dist/{settings-BboN1VLt.cjs.map → settings-CUg4_VNE.cjs.map} +1 -1
  359. package/dist/{settings-spKii1fI.js → settings-DToCplG_.js} +2 -2
  360. package/dist/{settings-spKii1fI.js.map → settings-DToCplG_.js.map} +1 -1
  361. package/dist/tools/admin.cjs +2 -2
  362. package/dist/tools/admin.cjs.map +1 -1
  363. package/dist/tools/admin.js +76 -99
  364. package/dist/tools/admin.js.map +1 -1
  365. package/dist/tools/base.cjs +1 -1
  366. package/dist/tools/base.cjs.map +1 -1
  367. package/dist/tools/base.js +74 -99
  368. package/dist/tools/base.js.map +1 -1
  369. package/dist/tools/calendar.cjs +1 -1
  370. package/dist/tools/calendar.js +1 -1
  371. package/dist/tools/scriptrunner.cjs +34 -34
  372. package/dist/tools/scriptrunner.cjs.map +1 -1
  373. package/dist/tools/scriptrunner.js +853 -835
  374. package/dist/tools/scriptrunner.js.map +1 -1
  375. package/dist/util.cjs +1 -1
  376. package/dist/util.js +4 -2
  377. package/dist/util.js.map +1 -1
  378. package/dist/vue-common.css +1 -1
  379. package/dist/widgets.cjs +1 -1
  380. package/dist/widgets.js +63 -63
  381. package/package.json +9 -9
  382. package/dist/CriticalCmdDialog-N06JxCHg.cjs +0 -2
  383. package/dist/DetailsDialog-CVYBgZll.cjs +0 -2
  384. package/dist/EventListDialog-CjYLRdkb.cjs +0 -2
  385. package/dist/Graph-BiU56Qj2.js.map +0 -1
  386. package/dist/Graph-CWjf71TK.cjs +0 -2
  387. package/dist/Graph-CWjf71TK.cjs.map +0 -1
  388. package/dist/Layout-DDktMnzb.cjs +0 -2
  389. package/dist/LimitsbarWidget-D4O0LWuC.cjs +0 -2
  390. package/dist/Openc3Screen-BP2oW88G.cjs +0 -6
  391. package/dist/Openc3Screen-BP2oW88G.cjs.map +0 -1
  392. package/dist/Openc3Screen-CkdegNDJ.js.map +0 -1
  393. package/dist/PackagesTab-Dwp6g8W0.cjs +0 -2
  394. package/dist/PluginsTab-COKDXShE.cjs +0 -6
  395. package/dist/PluginsTab-COKDXShE.cjs.map +0 -1
  396. package/dist/PluginsTab-CZApRILr.js.map +0 -1
  397. package/dist/RedisTab-B8U-vEQZ.js +0 -138
  398. package/dist/RedisTab-B8U-vEQZ.js.map +0 -1
  399. package/dist/RedisTab-cgicWb81.cjs +0 -2
  400. package/dist/RedisTab-cgicWb81.cjs.map +0 -1
  401. package/dist/SettingsTab-Ch52foLm.cjs +0 -3
  402. package/dist/TargetsTab-uqjueXlq.cjs +0 -2
  403. package/dist/ToolsTab-DUwXt5hn.cjs +0 -7
  404. package/dist/TopBar-C5lQcY1W.cjs +0 -2
  405. package/dist/UpgradeToEnterpriseDialog-BHDDrj0t.cjs +0 -2
  406. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js.map +0 -1
  407. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs +0 -1498
  408. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs.map +0 -1
  409. package/dist/VWidget-C7V6pKTg.cjs +0 -2
  410. package/dist/VWidget-C7V6pKTg.cjs.map +0 -1
  411. package/dist/VWidget-CFTCukCL.js +0 -332
  412. package/dist/VWidget-CFTCukCL.js.map +0 -1
  413. package/dist/index-DDjz5VQq.js +0 -1721
  414. package/dist/index-DDjz5VQq.js.map +0 -1
  415. package/dist/index-DZh4NjG5.cjs +0 -7
  416. package/dist/index-DZh4NjG5.cjs.map +0 -1
@@ -0,0 +1,171 @@
1
+ import { h as E } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BuwHe3dn.js";
2
+ import { resolveComponent as s, createElementBlock as l, openBlock as a, createVNode as o, withCtx as i, createTextVNode as r, createElementVNode as p, createCommentVNode as V, Fragment as k, toDisplayString as u } from "vue";
3
+ import { _ as T } from "./CustomIcon-h5X7369N.js";
4
+ const N = {
5
+ data() {
6
+ return {
7
+ redisCommandText: "",
8
+ redisResponse: null,
9
+ redisEndpoint: "/openc3-api/redis/exec",
10
+ prettyPrint: !1,
11
+ headers: [
12
+ { text: "Redis", value: "redis", width: 150 },
13
+ { text: "Command", value: "command" },
14
+ { text: "Response", value: "response" }
15
+ ],
16
+ commands: []
17
+ };
18
+ },
19
+ computed: {
20
+ formattedResponse: function() {
21
+ let t = this.redisResponse;
22
+ if (this.redisResponse && this.prettyPrint) {
23
+ if (typeof t == "string")
24
+ try {
25
+ t = JSON.parse(t);
26
+ } catch {
27
+ }
28
+ if (Array.isArray(t)) {
29
+ for (let e = 0; e < t.length; e++)
30
+ if (typeof t[e] == "string")
31
+ try {
32
+ t[e] = JSON.parse(t[e]);
33
+ } catch {
34
+ }
35
+ }
36
+ }
37
+ return t = JSON.stringify(t, null, 2), `Response: ${t}`;
38
+ }
39
+ },
40
+ methods: {
41
+ commandKeydown: function(t) {
42
+ t.key === "Enter" && this.executeRaw();
43
+ },
44
+ executeRaw: function() {
45
+ this.redisResponse = null, E.post(this.redisEndpoint, {
46
+ data: this.redisCommandText,
47
+ headers: {
48
+ Accept: "application/json",
49
+ "Content-Type": "plain/text"
50
+ }
51
+ }).then((t) => {
52
+ this.redisResponse = t.data.result;
53
+ let e = "Ephemeral";
54
+ this.redisEndpoint === "/openc3-api/redis/exec" && (e = "Persistent"), this.commands.unshift({
55
+ redis: e,
56
+ command: this.redisCommandText,
57
+ response: this.redisResponse
58
+ });
59
+ });
60
+ }
61
+ }
62
+ }, P = ["textContent"], S = {
63
+ key: 1,
64
+ class: "monospace"
65
+ };
66
+ function A(t, e, _, K, n, c) {
67
+ const f = s("v-card-title"), h = s("v-card-subtitle"), v = s("v-text-field"), x = s("v-checkbox"), y = s("v-card-text"), R = s("v-btn"), m = s("v-radio"), b = s("v-radio-group"), g = s("v-card-actions"), C = s("v-data-table"), w = s("v-card");
68
+ return a(), l("div", null, [
69
+ o(w, null, {
70
+ default: i(() => [
71
+ o(f, null, {
72
+ default: i(() => [...e[3] || (e[3] = [
73
+ r(" Send Raw Redis Commands ", -1)
74
+ ])]),
75
+ _: 1
76
+ }),
77
+ o(h, null, {
78
+ default: i(() => [...e[4] || (e[4] = [
79
+ r(" THIS IS DANGEROUS. This allows you to interact directly with the underlying Redis database, making it easy to modify or delete data. ", -1),
80
+ p("br", null, null, -1),
81
+ p("br", null, null, -1),
82
+ r(" Enter commands like you would at the Redis cli prompt: ", -1),
83
+ p("code", null, "ping", -1),
84
+ r(" or ", -1),
85
+ p("code", null, "hget openc3__settings version", -1)
86
+ ])]),
87
+ _: 1
88
+ }),
89
+ o(y, { class: "pb-0 ml-2" }, {
90
+ default: i(() => [
91
+ o(v, {
92
+ modelValue: n.redisCommandText,
93
+ "onUpdate:modelValue": e[0] || (e[0] = (d) => n.redisCommandText = d),
94
+ "hide-details": "",
95
+ label: "Redis command",
96
+ class: "monospace",
97
+ onKeydown: c.commandKeydown
98
+ }, null, 8, ["modelValue", "onKeydown"]),
99
+ o(x, {
100
+ modelValue: n.prettyPrint,
101
+ "onUpdate:modelValue": e[1] || (e[1] = (d) => n.prettyPrint = d),
102
+ label: "Pretty print",
103
+ density: "compact",
104
+ "hide-details": "",
105
+ class: "mb-2"
106
+ }, null, 8, ["modelValue"]),
107
+ n.redisResponse ? (a(), l(k, { key: 0 }, [
108
+ n.prettyPrint ? (a(), l("pre", {
109
+ key: 0,
110
+ textContent: u(c.formattedResponse)
111
+ }, null, 8, P)) : (a(), l("span", S, " Response: " + u(n.redisResponse), 1))
112
+ ], 64)) : V("", !0)
113
+ ]),
114
+ _: 1
115
+ }),
116
+ o(g, { class: "px-2" }, {
117
+ default: i(() => [
118
+ o(R, {
119
+ disabled: !n.redisCommandText.length,
120
+ color: "success",
121
+ variant: "text",
122
+ onClick: c.executeRaw
123
+ }, {
124
+ default: i(() => [...e[5] || (e[5] = [
125
+ r(" Execute ", -1)
126
+ ])]),
127
+ _: 1
128
+ }, 8, ["disabled", "onClick"]),
129
+ o(b, {
130
+ modelValue: n.redisEndpoint,
131
+ "onUpdate:modelValue": e[2] || (e[2] = (d) => n.redisEndpoint = d),
132
+ inline: "",
133
+ "hide-details": "",
134
+ class: "mt-0"
135
+ }, {
136
+ default: i(() => [
137
+ o(m, {
138
+ label: "Persistent",
139
+ value: "/openc3-api/redis/exec",
140
+ "data-test": "persistent-radio"
141
+ }),
142
+ o(m, {
143
+ label: "Ephemeral",
144
+ value: "/openc3-api/redis/exec?ephemeral=1",
145
+ "data-test": "ephemeral-radio"
146
+ })
147
+ ]),
148
+ _: 1
149
+ }, 8, ["modelValue"])
150
+ ]),
151
+ _: 1
152
+ }),
153
+ o(C, {
154
+ headers: n.headers,
155
+ items: n.commands,
156
+ class: "monospace",
157
+ "items-per-page": -1,
158
+ "hide-default-footer": "",
159
+ density: "compact",
160
+ height: "45vh"
161
+ }, null, 8, ["headers", "items"])
162
+ ]),
163
+ _: 1
164
+ })
165
+ ]);
166
+ }
167
+ const J = /* @__PURE__ */ T(N, [["render", A], ["__scopeId", "data-v-42ef013f"]]);
168
+ export {
169
+ J as default
170
+ };
171
+ //# sourceMappingURL=RedisTab-B28s52_T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisTab-B28s52_T.js","sources":["../src/tools/admin/tabs/RedisTab.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 2023, 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-card>\n <v-card-title> Send Raw Redis Commands </v-card-title>\n <v-card-subtitle>\n THIS IS DANGEROUS. This allows you to interact directly with the\n underlying Redis database, making it easy to modify or delete data.\n <br /><br />\n Enter commands like you would at the Redis cli prompt:\n <code>ping</code> or\n <code>hget openc3__settings version</code>\n </v-card-subtitle>\n <v-card-text class=\"pb-0 ml-2\">\n <v-text-field\n v-model=\"redisCommandText\"\n hide-details\n label=\"Redis command\"\n class=\"monospace\"\n @keydown=\"commandKeydown\"\n />\n <v-checkbox\n v-model=\"prettyPrint\"\n label=\"Pretty print\"\n density=\"compact\"\n hide-details\n class=\"mb-2\"\n />\n <template v-if=\"redisResponse\">\n <pre v-if=\"prettyPrint\" v-text=\"formattedResponse\" />\n <span v-else class=\"monospace\"> Response: {{ redisResponse }} </span>\n </template>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-btn\n :disabled=\"!redisCommandText.length\"\n color=\"success\"\n variant=\"text\"\n @click=\"executeRaw\"\n >\n Execute\n </v-btn>\n <v-radio-group v-model=\"redisEndpoint\" inline hide-details class=\"mt-0\">\n <v-radio\n label=\"Persistent\"\n value=\"/openc3-api/redis/exec\"\n data-test=\"persistent-radio\"\n />\n <v-radio\n label=\"Ephemeral\"\n value=\"/openc3-api/redis/exec?ephemeral=1\"\n data-test=\"ephemeral-radio\"\n />\n </v-radio-group>\n </v-card-actions>\n\n <v-data-table\n :headers=\"headers\"\n :items=\"commands\"\n class=\"monospace\"\n :items-per-page=\"-1\"\n hide-default-footer\n density=\"compact\"\n height=\"45vh\"\n >\n </v-data-table>\n </v-card>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n data() {\n return {\n redisCommandText: '',\n redisResponse: null,\n redisEndpoint: '/openc3-api/redis/exec',\n prettyPrint: false,\n headers: [\n { text: 'Redis', value: 'redis', width: 150 },\n { text: 'Command', value: 'command' },\n { text: 'Response', value: 'response' },\n ],\n commands: [],\n }\n },\n computed: {\n formattedResponse: function () {\n let result = this.redisResponse\n if (this.redisResponse && this.prettyPrint) {\n if (typeof result === 'string') {\n try {\n result = JSON.parse(result)\n } catch (e) {\n // Oh 🐋\n }\n }\n if (Array.isArray(result)) {\n for (let i = 0; i < result.length; i++) {\n if (typeof result[i] === 'string') {\n try {\n result[i] = JSON.parse(result[i])\n } catch (e) {\n // Oh 🐋\n }\n }\n }\n }\n }\n result = JSON.stringify(result, null, 2)\n return `Response: ${result}`\n },\n },\n methods: {\n commandKeydown: function ($event) {\n $event.key === 'Enter' && this.executeRaw()\n },\n executeRaw: function () {\n this.redisResponse = null\n Api.post(this.redisEndpoint, {\n data: this.redisCommandText,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'plain/text',\n },\n }).then((response) => {\n this.redisResponse = response.data.result\n let redis = 'Ephemeral'\n if (this.redisEndpoint === '/openc3-api/redis/exec') {\n redis = 'Persistent'\n }\n this.commands.unshift({\n redis: redis,\n command: this.redisCommandText,\n response: this.redisResponse,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.monospace {\n font-family: monospace;\n font-size: 14px;\n}\n</style>\n"],"names":["_sfc_main","result","i","$event","Api","response","redis","_createElementBlock","_createVNode","_component_v_card","_component_v_card_title","_cache","_component_v_card_subtitle","_createElementVNode","_component_v_card_text","_component_v_text_field","$data","$options","_component_v_checkbox","_Fragment","_toDisplayString","_openBlock","_hoisted_2","_component_v_card_actions","_component_v_btn","_component_v_radio_group","_component_v_radio","_component_v_data_table"],"mappings":";;;AA8FA,MAAKA,IAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,eAAe;AAAA,MACf,aAAa;AAAA,MACb,SAAS;AAAA,QACP,EAAE,MAAM,SAAS,OAAO,SAAS,OAAO;QACxC,EAAE,MAAM,WAAW,OAAO;QAC1B,EAAE,MAAM,YAAY,OAAO;;MAE7B,UAAU,CAAA;AAAA,IACZ;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,mBAAmB,WAAY;AAC7B,UAAIC,IAAS,KAAK;AAClB,UAAI,KAAK,iBAAiB,KAAK,aAAa;AAC1C,YAAI,OAAOA,KAAW;AACpB,cAAI;AACF,YAAAA,IAAS,KAAK,MAAMA,CAAM;AAAA,UAC5B,QAAY;AAAA,UAEZ;AAEF,YAAI,MAAM,QAAQA,CAAM;AACtB,mBAASC,IAAI,GAAGA,IAAID,EAAO,QAAQC;AACjC,gBAAI,OAAOD,EAAOC,CAAC,KAAM;AACvB,kBAAI;AACF,gBAAAD,EAAOC,CAAC,IAAI,KAAK,MAAMD,EAAOC,CAAC,CAAC;AAAA,cAClC,QAAY;AAAA,cAEZ;AAAA;AAAA,MAIR;AACA,aAAAD,IAAS,KAAK,UAAUA,GAAQ,MAAM,CAAC,GAChC,aAAaA,CAAM;AAAA,IAC5B;AAAA;EAEF,SAAS;AAAA,IACP,gBAAgB,SAAUE,GAAQ;AAChC,MAAAA,EAAO,QAAQ,WAAW,KAAK,WAAU;AAAA,IAC3C;AAAA,IACA,YAAY,WAAY;AACtB,WAAK,gBAAgB,MACrBC,EAAI,KAAK,KAAK,eAAe;AAAA,QAC3B,MAAM,KAAK;AAAA,QACX,SAAS;AAAA,UACP,QAAQ;AAAA,UACR,gBAAgB;AAAA;MAEpB,CAAC,EAAE,KAAK,CAACC,MAAa;AACpB,aAAK,gBAAgBA,EAAS,KAAK;AACnC,YAAIC,IAAQ;AACZ,QAAI,KAAK,kBAAkB,6BACzBA,IAAQ,eAEV,KAAK,SAAS,QAAQ;AAAA,UACpB,OAAOA;AAAA,UACP,SAAS,KAAK;AAAA,UACd,UAAU,KAAK;AAAA,SAChB;AAAA,MACH,CAAC;AAAA,IACH;AAAA;AAEJ;;EA/GuB,OAAM;;;;cA5B3BC,EAiEM,OAAA,MAAA;AAAA,IAhEJC,EA+DSC,GAAA,MAAA;AAAA,iBA9DP,MAAsD;AAAA,QAAtDD,EAAsDE,GAAA,MAAA;AAAA,qBAAxC,MAAyB,CAAA,GAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,cAAzB,6BAAyB,EAAA;AAAA;;;QACvCH,EAOkBI,GAAA,MAAA;AAAA,qBAPD,MAGf,CAAA,GAAAD,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,cAHe,0IAGf,EAAA;AAAA,YAAAE,EAAM,MAAA,MAAA,MAAA,EAAA;AAAA,YAAAA,EAAM,MAAA,MAAA,MAAA,EAAA;AAAA,cAAA,4DAEZ,EAAA;AAAA,YAAAA,EAAiB,cAAX,QAAI,EAAA;AAAA,cAAO,QACjB,EAAA;AAAA,YAAAA,EAA0C,cAApC,iCAA6B,EAAA;AAAA;;;QAErCL,EAmBcM,GAAA,EAnBD,OAAM,YAAW,GAAA;AAAA,qBAC5B,MAME;AAAA,YANFN,EAMEO,GAAA;AAAA,0BALSC,EAAA;AAAA,4DAAAA,EAAA,mBAAgBb;AAAA,cACzB,gBAAA;AAAA,cACA,OAAM;AAAA,cACN,OAAM;AAAA,cACL,WAASc,EAAA;AAAA;YAEZT,EAMEU,GAAA;AAAA,0BALSF,EAAA;AAAA,4DAAAA,EAAA,cAAWb;AAAA,cACpB,OAAM;AAAA,cACN,SAAQ;AAAA,cACR,gBAAA;AAAA,cACA,OAAM;AAAA;YAEQa,EAAA,sBAAhBT,EAGWY,GAAA,EAAA,KAAA,EAAA,GAAA;AAAA,cAFEH,EAAA,oBAAXT,EAAqD,OAAA;AAAA;gBAA7B,aAAAa,EAA0BH,EAAlB,iBAAiB;AAAA,iCACjDI,EAAA,GAAAd,EAAqE,QAArEe,GAA+B,kBAAcN,EAAA,aAAa,GAAA,CAAA;AAAA;;;;QAG9DR,EAqBiBe,GAAA,EArBD,OAAM,OAAM,GAAA;AAAA,qBAC1B,MAOQ;AAAA,YAPRf,EAOQgB,GAAA;AAAA,cANL,UAAQ,CAAGR,EAAA,iBAAiB;AAAA,cAC7B,OAAM;AAAA,cACN,SAAQ;AAAA,cACP,SAAOC,EAAA;AAAA;yBACT,MAED,CAAA,GAAAN,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAFC,aAED,EAAA;AAAA;;;YACAH,EAWgBiB,GAAA;AAAA,0BAXQT,EAAA;AAAA,4DAAAA,EAAA,gBAAab;AAAA,cAAE,QAAA;AAAA,cAAO,gBAAA;AAAA,cAAa,OAAM;AAAA;yBAC/D,MAIE;AAAA,gBAJFK,EAIEkB,GAAA;AAAA,kBAHA,OAAM;AAAA,kBACN,OAAM;AAAA,kBACN,aAAU;AAAA;gBAEZlB,EAIEkB,GAAA;AAAA,kBAHA,OAAM;AAAA,kBACN,OAAM;AAAA,kBACN,aAAU;AAAA;;;;;;;QAKhBlB,EASemB,GAAA;AAAA,UARZ,SAASX,EAAA;AAAA,UACT,OAAOA,EAAA;AAAA,UACR,OAAM;AAAA,UACL,kBAAgB;AAAA,UACjB,uBAAA;AAAA,UACA,SAAQ;AAAA,UACR,QAAO;AAAA;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NN0zFL7Z.cjs"),e=require("vue"),y=require("./CustomIcon-Bop2mEnu.cjs"),C={data(){return{redisCommandText:"",redisResponse:null,redisEndpoint:"/openc3-api/redis/exec",prettyPrint:!1,headers:[{text:"Redis",value:"redis",width:150},{text:"Command",value:"command"},{text:"Response",value:"response"}],commands:[]}},computed:{formattedResponse:function(){let o=this.redisResponse;if(this.redisResponse&&this.prettyPrint){if(typeof o=="string")try{o=JSON.parse(o)}catch{}if(Array.isArray(o)){for(let t=0;t<o.length;t++)if(typeof o[t]=="string")try{o[t]=JSON.parse(o[t])}catch{}}}return o=JSON.stringify(o,null,2),`Response: ${o}`}},methods:{commandKeydown:function(o){o.key==="Enter"&&this.executeRaw()},executeRaw:function(){this.redisResponse=null,f.hi.post(this.redisEndpoint,{data:this.redisCommandText,headers:{Accept:"application/json","Content-Type":"plain/text"}}).then(o=>{this.redisResponse=o.data.result;let t="Ephemeral";this.redisEndpoint==="/openc3-api/redis/exec"&&(t="Persistent"),this.commands.unshift({redis:t,command:this.redisCommandText,response:this.redisResponse})})}}},V=["textContent"],N={key:1,class:"monospace"};function R(o,t,l,g,n,r){const i=e.resolveComponent("v-card-title"),a=e.resolveComponent("v-card-subtitle"),c=e.resolveComponent("v-text-field"),p=e.resolveComponent("v-checkbox"),m=e.resolveComponent("v-card-text"),u=e.resolveComponent("v-btn"),d=e.resolveComponent("v-radio"),_=e.resolveComponent("v-radio-group"),v=e.resolveComponent("v-card-actions"),x=e.resolveComponent("v-data-table"),h=e.resolveComponent("v-card");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(h,null,{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[...t[3]||(t[3]=[e.createTextVNode(" Send Raw Redis Commands ",-1)])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[...t[4]||(t[4]=[e.createTextVNode(" THIS IS DANGEROUS. This allows you to interact directly with the underlying Redis database, making it easy to modify or delete data. ",-1),e.createElementVNode("br",null,null,-1),e.createElementVNode("br",null,null,-1),e.createTextVNode(" Enter commands like you would at the Redis cli prompt: ",-1),e.createElementVNode("code",null,"ping",-1),e.createTextVNode(" or ",-1),e.createElementVNode("code",null,"hget openc3__settings version",-1)])]),_:1}),e.createVNode(m,{class:"pb-0 ml-2"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:n.redisCommandText,"onUpdate:modelValue":t[0]||(t[0]=s=>n.redisCommandText=s),"hide-details":"",label:"Redis command",class:"monospace",onKeydown:r.commandKeydown},null,8,["modelValue","onKeydown"]),e.createVNode(p,{modelValue:n.prettyPrint,"onUpdate:modelValue":t[1]||(t[1]=s=>n.prettyPrint=s),label:"Pretty print",density:"compact","hide-details":"",class:"mb-2"},null,8,["modelValue"]),n.redisResponse?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n.prettyPrint?(e.openBlock(),e.createElementBlock("pre",{key:0,textContent:e.toDisplayString(r.formattedResponse)},null,8,V)):(e.openBlock(),e.createElementBlock("span",N," Response: "+e.toDisplayString(n.redisResponse),1))],64)):e.createCommentVNode("",!0)]),_:1}),e.createVNode(v,{class:"px-2"},{default:e.withCtx(()=>[e.createVNode(u,{disabled:!n.redisCommandText.length,color:"success",variant:"text",onClick:r.executeRaw},{default:e.withCtx(()=>[...t[5]||(t[5]=[e.createTextVNode(" Execute ",-1)])]),_:1},8,["disabled","onClick"]),e.createVNode(_,{modelValue:n.redisEndpoint,"onUpdate:modelValue":t[2]||(t[2]=s=>n.redisEndpoint=s),inline:"","hide-details":"",class:"mt-0"},{default:e.withCtx(()=>[e.createVNode(d,{label:"Persistent",value:"/openc3-api/redis/exec","data-test":"persistent-radio"}),e.createVNode(d,{label:"Ephemeral",value:"/openc3-api/redis/exec?ephemeral=1","data-test":"ephemeral-radio"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(x,{headers:n.headers,items:n.commands,class:"monospace","items-per-page":-1,"hide-default-footer":"",density:"compact",height:"45vh"},null,8,["headers","items"])]),_:1})])}const b=y._export_sfc(C,[["render",R],["__scopeId","data-v-42ef013f"]]);exports.default=b;
2
+ //# sourceMappingURL=RedisTab-DBbLlP9e.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisTab-DBbLlP9e.cjs","sources":["../src/tools/admin/tabs/RedisTab.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 2023, 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-card>\n <v-card-title> Send Raw Redis Commands </v-card-title>\n <v-card-subtitle>\n THIS IS DANGEROUS. This allows you to interact directly with the\n underlying Redis database, making it easy to modify or delete data.\n <br /><br />\n Enter commands like you would at the Redis cli prompt:\n <code>ping</code> or\n <code>hget openc3__settings version</code>\n </v-card-subtitle>\n <v-card-text class=\"pb-0 ml-2\">\n <v-text-field\n v-model=\"redisCommandText\"\n hide-details\n label=\"Redis command\"\n class=\"monospace\"\n @keydown=\"commandKeydown\"\n />\n <v-checkbox\n v-model=\"prettyPrint\"\n label=\"Pretty print\"\n density=\"compact\"\n hide-details\n class=\"mb-2\"\n />\n <template v-if=\"redisResponse\">\n <pre v-if=\"prettyPrint\" v-text=\"formattedResponse\" />\n <span v-else class=\"monospace\"> Response: {{ redisResponse }} </span>\n </template>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-btn\n :disabled=\"!redisCommandText.length\"\n color=\"success\"\n variant=\"text\"\n @click=\"executeRaw\"\n >\n Execute\n </v-btn>\n <v-radio-group v-model=\"redisEndpoint\" inline hide-details class=\"mt-0\">\n <v-radio\n label=\"Persistent\"\n value=\"/openc3-api/redis/exec\"\n data-test=\"persistent-radio\"\n />\n <v-radio\n label=\"Ephemeral\"\n value=\"/openc3-api/redis/exec?ephemeral=1\"\n data-test=\"ephemeral-radio\"\n />\n </v-radio-group>\n </v-card-actions>\n\n <v-data-table\n :headers=\"headers\"\n :items=\"commands\"\n class=\"monospace\"\n :items-per-page=\"-1\"\n hide-default-footer\n density=\"compact\"\n height=\"45vh\"\n >\n </v-data-table>\n </v-card>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n data() {\n return {\n redisCommandText: '',\n redisResponse: null,\n redisEndpoint: '/openc3-api/redis/exec',\n prettyPrint: false,\n headers: [\n { text: 'Redis', value: 'redis', width: 150 },\n { text: 'Command', value: 'command' },\n { text: 'Response', value: 'response' },\n ],\n commands: [],\n }\n },\n computed: {\n formattedResponse: function () {\n let result = this.redisResponse\n if (this.redisResponse && this.prettyPrint) {\n if (typeof result === 'string') {\n try {\n result = JSON.parse(result)\n } catch (e) {\n // Oh 🐋\n }\n }\n if (Array.isArray(result)) {\n for (let i = 0; i < result.length; i++) {\n if (typeof result[i] === 'string') {\n try {\n result[i] = JSON.parse(result[i])\n } catch (e) {\n // Oh 🐋\n }\n }\n }\n }\n }\n result = JSON.stringify(result, null, 2)\n return `Response: ${result}`\n },\n },\n methods: {\n commandKeydown: function ($event) {\n $event.key === 'Enter' && this.executeRaw()\n },\n executeRaw: function () {\n this.redisResponse = null\n Api.post(this.redisEndpoint, {\n data: this.redisCommandText,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'plain/text',\n },\n }).then((response) => {\n this.redisResponse = response.data.result\n let redis = 'Ephemeral'\n if (this.redisEndpoint === '/openc3-api/redis/exec') {\n redis = 'Persistent'\n }\n this.commands.unshift({\n redis: redis,\n command: this.redisCommandText,\n response: this.redisResponse,\n })\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.monospace {\n font-family: monospace;\n font-size: 14px;\n}\n</style>\n"],"names":["_sfc_main","result","i","$event","Api","response","redis","_createElementBlock","_createVNode","_component_v_card","_component_v_card_title","_cache","_component_v_card_subtitle","_createElementVNode","_component_v_card_text","_component_v_text_field","$data","$options","_component_v_checkbox","_Fragment","_toDisplayString","_openBlock","_hoisted_2","_component_v_card_actions","_component_v_btn","_component_v_radio_group","_component_v_radio","_component_v_data_table"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { W as a } from "./Widget-C3-TBgP7.js";
1
+ import { W as a } from "./Widget-BIXl-Pk5.js";
2
2
  import { resolveComponent as l, createBlock as n, openBlock as c, normalizeStyle as o } from "vue";
3
3
  import { _ as u } from "./CustomIcon-h5X7369N.js";
4
4
  const m = {
@@ -80,4 +80,4 @@ const E = /* @__PURE__ */ u(m, [["render", h]]);
80
80
  export {
81
81
  E as default
82
82
  };
83
- //# sourceMappingURL=RollupWidget-CH1-XNLV.js.map
83
+ //# sourceMappingURL=RollupWidget-07pNcXQV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RollupWidget-CH1-XNLV.js","sources":["../src/widgets/RollupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <rux-monitoring-icon\n class=\"rux-icon\"\n :style=\"[pointerStyle, computedStyle]\"\n :icon=\"icon\"\n :status=\"status\"\n :label=\"label\"\n :sublabel=\"subLabel\"\n @click=\"clickHandler\"\n ></rux-monitoring-icon>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n icon: '',\n label: '',\n subLabel: '',\n items: [],\n screenTarget: null,\n screenName: null,\n }\n },\n computed: {\n status: function () {\n let state = 'off'\n // Calculate the overall state of all the items we care about\n for (const item of this.items) {\n let limitsState = this.screenValues[item][1]\n if (limitsState) {\n if (\n (limitsState.includes('BLUE') || limitsState.includes('GREEN')) &&\n state != 'caution' &&\n state != 'critical'\n ) {\n state = 'normal'\n }\n if (limitsState.includes('YELLOW') && state != 'critical') {\n state = 'caution'\n }\n if (limitsState.includes('RED')) {\n state = 'critical'\n }\n }\n }\n return state\n },\n pointerStyle() {\n if (this.screenTarget && this.screenName) {\n return {\n cursor: 'pointer',\n }\n } else {\n return {\n cursor: 'default',\n }\n }\n },\n },\n created: function () {\n this.icon = this.parameters[0]\n this.label = this.parameters[1]\n this.subLabel = this.parameters[2]\n\n // This was an attempt at dynamically importing the rux icon they requested.\n // However, webpack looks at the import line and tries to process all the files.\n // Good discussion here: https://github.com/webpack/webpack/issues/6680\n // and here: https://github.com/webpack/webpack/issues/4175\n // Perhaps there's a way to ignore stuff but we'd still be importing ALL\n // the files which is a LOT. Instead we just import all the icons we need in\n // openc3-cosmos-init/plugins/openc3-tool-base/src/plugins/vuetify.js\n\n // import(\n // `@astrouxds/astro-web-components/dist/components/rux-icon-${this.icon}`\n // ).then((module) => {\n // // First key of the module is the name of the class\n // let name = Object.keys(module)[0]\n // try {\n // customElements.define(`rux-icon-${this.icon}`, module[name])\n // } catch (e) {\n // // Catch the fact that the icon probably already exists and move on\n // }\n // })\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0].toUpperCase()) {\n // Create a link to an existing screen\n case 'SCREEN':\n this.screenTarget = setting[1]\n this.screenName = setting[2]\n break\n\n // Create the list of rollup telemetry\n case 'TLM':\n let type = 'CONVERTED'\n if (setting[4]) {\n type = setting[4]\n }\n let item = `${setting[1]}__${setting[2]}__${setting[3]}__${type}`\n this.items.push(item)\n this.$emit('addItem', item)\n break\n }\n })\n },\n unmounted: function () {\n this.items.forEach((item) => {\n this.$emit('deleteItem', item)\n })\n },\n methods: {\n clickHandler() {\n if (this.screenTarget && this.screenName) {\n this.$emit('open', this.screenTarget, this.screenName)\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","state","item","limitsState","setting","type","_createBlock","_component_rux_monitoring_icon","_normalizeStyle","$options","_ctx"],"mappings":";;;AAiCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA;;EAGb,MAAM,WAAY;AAChB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO,CAAA;AAAA,MACP,cAAc;AAAA,MACd,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,WAAY;AAClB,UAAIC,IAAQ;AAEZ,iBAAWC,KAAQ,KAAK,OAAO;AAC7B,YAAIC,IAAc,KAAK,aAAaD,CAAI,EAAE,CAAC;AAC3C,QAAIC,OAECA,EAAY,SAAS,MAAM,KAAKA,EAAY,SAAS,OAAO,MAC7DF,KAAS,aACTA,KAAS,eAETA,IAAQ,WAENE,EAAY,SAAS,QAAQ,KAAKF,KAAS,eAC7CA,IAAQ,YAENE,EAAY,SAAS,KAAK,MAC5BF,IAAQ;AAAA,MAGd;AACA,aAAOA;AAAA,IACT;AAAA,IACA,eAAe;AACb,aAAI,KAAK,gBAAgB,KAAK,aACrB;AAAA,QACL,QAAQ;AAAA,MACV,IAEO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IAEJ;AAAA;EAEF,SAAS,WAAY;AACnB,SAAK,OAAO,KAAK,WAAW,CAAC,GAC7B,KAAK,QAAQ,KAAK,WAAW,CAAC,GAC9B,KAAK,WAAW,KAAK,WAAW,CAAC,GAsBjC,KAAK,gBAAgB,QAAQ,CAACG,MAAY;AACxC,cAAQA,EAAQ,CAAC,EAAE,YAAW,GAAE;AAAA;AAAA,QAE9B,KAAK;AACH,eAAK,eAAeA,EAAQ,CAAC,GAC7B,KAAK,aAAaA,EAAQ,CAAC;AAC3B;AAAA;AAAA,QAGF,KAAK;AACH,cAAIC,IAAO;AACX,UAAID,EAAQ,CAAC,MACXC,IAAOD,EAAQ,CAAC;AAElB,cAAIF,IAAO,GAAGE,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKC,CAAI;AAC/D,eAAK,MAAM,KAAKH,CAAI,GACpB,KAAK,MAAM,WAAWA,CAAI;AAC1B;AAAA,MACJ;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,WAAW,WAAY;AACrB,SAAK,MAAM,QAAQ,CAACA,MAAS;AAC3B,WAAK,MAAM,cAAcA,CAAI;AAAA,IAC/B,CAAC;AAAA,EACH;AAAA,EACA,SAAS;AAAA,IACP,eAAe;AACb,MAAI,KAAK,gBAAgB,KAAK,cAC5B,KAAK,MAAM,QAAQ,KAAK,cAAc,KAAK,UAAU;AAAA,IAEzD;AAAA;AAEJ;;;cA9HEI,EAQuBC,GAAA;AAAA,IAPrB,OAAM;AAAA,IACL,OAAKC,EAAA,CAAGC,EAAA,cAAcC,EAAA,aAAa,CAAA;AAAA,IACnC,MAAMA,EAAA;AAAA,IACN,QAAQD,EAAA;AAAA,IACR,OAAOC,EAAA;AAAA,IACP,UAAUA,EAAA;AAAA,IACV,SAAOD,EAAA;AAAA;;;"}
1
+ {"version":3,"file":"RollupWidget-07pNcXQV.js","sources":["../src/widgets/RollupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <rux-monitoring-icon\n class=\"rux-icon\"\n :style=\"[pointerStyle, computedStyle]\"\n :icon=\"icon\"\n :status=\"status\"\n :label=\"label\"\n :sublabel=\"subLabel\"\n @click=\"clickHandler\"\n ></rux-monitoring-icon>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n icon: '',\n label: '',\n subLabel: '',\n items: [],\n screenTarget: null,\n screenName: null,\n }\n },\n computed: {\n status: function () {\n let state = 'off'\n // Calculate the overall state of all the items we care about\n for (const item of this.items) {\n let limitsState = this.screenValues[item][1]\n if (limitsState) {\n if (\n (limitsState.includes('BLUE') || limitsState.includes('GREEN')) &&\n state != 'caution' &&\n state != 'critical'\n ) {\n state = 'normal'\n }\n if (limitsState.includes('YELLOW') && state != 'critical') {\n state = 'caution'\n }\n if (limitsState.includes('RED')) {\n state = 'critical'\n }\n }\n }\n return state\n },\n pointerStyle() {\n if (this.screenTarget && this.screenName) {\n return {\n cursor: 'pointer',\n }\n } else {\n return {\n cursor: 'default',\n }\n }\n },\n },\n created: function () {\n this.icon = this.parameters[0]\n this.label = this.parameters[1]\n this.subLabel = this.parameters[2]\n\n // This was an attempt at dynamically importing the rux icon they requested.\n // However, webpack looks at the import line and tries to process all the files.\n // Good discussion here: https://github.com/webpack/webpack/issues/6680\n // and here: https://github.com/webpack/webpack/issues/4175\n // Perhaps there's a way to ignore stuff but we'd still be importing ALL\n // the files which is a LOT. Instead we just import all the icons we need in\n // openc3-cosmos-init/plugins/openc3-tool-base/src/plugins/vuetify.js\n\n // import(\n // `@astrouxds/astro-web-components/dist/components/rux-icon-${this.icon}`\n // ).then((module) => {\n // // First key of the module is the name of the class\n // let name = Object.keys(module)[0]\n // try {\n // customElements.define(`rux-icon-${this.icon}`, module[name])\n // } catch (e) {\n // // Catch the fact that the icon probably already exists and move on\n // }\n // })\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0].toUpperCase()) {\n // Create a link to an existing screen\n case 'SCREEN':\n this.screenTarget = setting[1]\n this.screenName = setting[2]\n break\n\n // Create the list of rollup telemetry\n case 'TLM':\n let type = 'CONVERTED'\n if (setting[4]) {\n type = setting[4]\n }\n let item = `${setting[1]}__${setting[2]}__${setting[3]}__${type}`\n this.items.push(item)\n this.$emit('addItem', item)\n break\n }\n })\n },\n unmounted: function () {\n this.items.forEach((item) => {\n this.$emit('deleteItem', item)\n })\n },\n methods: {\n clickHandler() {\n if (this.screenTarget && this.screenName) {\n this.$emit('open', this.screenTarget, this.screenName)\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","state","item","limitsState","setting","type","_createBlock","_component_rux_monitoring_icon","_normalizeStyle","$options","_ctx"],"mappings":";;;AAiCA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AAAA,IACL,OAAO;AAAA,MACL,SAAS;AAAA;;EAGb,MAAM,WAAY;AAChB,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO,CAAA;AAAA,MACP,cAAc;AAAA,MACd,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,QAAQ,WAAY;AAClB,UAAIC,IAAQ;AAEZ,iBAAWC,KAAQ,KAAK,OAAO;AAC7B,YAAIC,IAAc,KAAK,aAAaD,CAAI,EAAE,CAAC;AAC3C,QAAIC,OAECA,EAAY,SAAS,MAAM,KAAKA,EAAY,SAAS,OAAO,MAC7DF,KAAS,aACTA,KAAS,eAETA,IAAQ,WAENE,EAAY,SAAS,QAAQ,KAAKF,KAAS,eAC7CA,IAAQ,YAENE,EAAY,SAAS,KAAK,MAC5BF,IAAQ;AAAA,MAGd;AACA,aAAOA;AAAA,IACT;AAAA,IACA,eAAe;AACb,aAAI,KAAK,gBAAgB,KAAK,aACrB;AAAA,QACL,QAAQ;AAAA,MACV,IAEO;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,IAEJ;AAAA;EAEF,SAAS,WAAY;AACnB,SAAK,OAAO,KAAK,WAAW,CAAC,GAC7B,KAAK,QAAQ,KAAK,WAAW,CAAC,GAC9B,KAAK,WAAW,KAAK,WAAW,CAAC,GAsBjC,KAAK,gBAAgB,QAAQ,CAACG,MAAY;AACxC,cAAQA,EAAQ,CAAC,EAAE,YAAW,GAAE;AAAA;AAAA,QAE9B,KAAK;AACH,eAAK,eAAeA,EAAQ,CAAC,GAC7B,KAAK,aAAaA,EAAQ,CAAC;AAC3B;AAAA;AAAA,QAGF,KAAK;AACH,cAAIC,IAAO;AACX,UAAID,EAAQ,CAAC,MACXC,IAAOD,EAAQ,CAAC;AAElB,cAAIF,IAAO,GAAGE,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKC,CAAI;AAC/D,eAAK,MAAM,KAAKH,CAAI,GACpB,KAAK,MAAM,WAAWA,CAAI;AAC1B;AAAA,MACJ;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EACA,WAAW,WAAY;AACrB,SAAK,MAAM,QAAQ,CAACA,MAAS;AAC3B,WAAK,MAAM,cAAcA,CAAI;AAAA,IAC/B,CAAC;AAAA,EACH;AAAA,EACA,SAAS;AAAA,IACP,eAAe;AACb,MAAI,KAAK,gBAAgB,KAAK,cAC5B,KAAK,MAAM,QAAQ,KAAK,cAAc,KAAK,UAAU;AAAA,IAEzD;AAAA;AAEJ;;;cA9HEI,EAQuBC,GAAA;AAAA,IAPrB,OAAM;AAAA,IACL,OAAKC,EAAA,CAAGC,EAAA,cAAcC,EAAA,aAAa,CAAA;AAAA,IACnC,MAAMA,EAAA;AAAA,IACN,QAAQD,EAAA;AAAA,IACR,OAAOC,EAAA;AAAA,IACP,UAAUA,EAAA;AAAA,IACV,SAAOD,EAAA;AAAA;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./Widget-CSBtgNwA.cjs"),s=require("vue"),c=require("./CustomIcon-Bop2mEnu.cjs"),a={mixins:[l.Widget],props:{value:{default:null}},data:function(){return{valueId:null,icon:"",label:"",subLabel:"",items:[],screenTarget:null,screenName:null}},computed:{status:function(){let e="off";for(const i of this.items){let t=this.screenValues[i][1];t&&((t.includes("BLUE")||t.includes("GREEN"))&&e!="caution"&&e!="critical"&&(e="normal"),t.includes("YELLOW")&&e!="critical"&&(e="caution"),t.includes("RED")&&(e="critical"))}return e},pointerStyle(){return this.screenTarget&&this.screenName?{cursor:"pointer"}:{cursor:"default"}}},created:function(){this.icon=this.parameters[0],this.label=this.parameters[1],this.subLabel=this.parameters[2],this.appliedSettings.forEach(e=>{switch(e[0].toUpperCase()){case"SCREEN":this.screenTarget=e[1],this.screenName=e[2];break;case"TLM":let i="CONVERTED";e[4]&&(i=e[4]);let t=`${e[1]}__${e[2]}__${e[3]}__${i}`;this.items.push(t),this.$emit("addItem",t);break}})},unmounted:function(){this.items.forEach(e=>{this.$emit("deleteItem",e)})},methods:{clickHandler(){this.screenTarget&&this.screenName&&this.$emit("open",this.screenTarget,this.screenName)}}};function o(e,i,t,m,d,r){const n=s.resolveComponent("rux-monitoring-icon");return s.openBlock(),s.createBlock(n,{class:"rux-icon",style:s.normalizeStyle([r.pointerStyle,e.computedStyle]),icon:e.icon,status:r.status,label:e.label,sublabel:e.subLabel,onClick:r.clickHandler},null,8,["style","icon","status","label","sublabel","onClick"])}const u=c._export_sfc(a,[["render",o]]);exports.default=u;
2
- //# sourceMappingURL=RollupWidget-BEDf-mfg.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./Widget-wEcPyNXg.cjs"),s=require("vue"),c=require("./CustomIcon-Bop2mEnu.cjs"),a={mixins:[l.Widget],props:{value:{default:null}},data:function(){return{valueId:null,icon:"",label:"",subLabel:"",items:[],screenTarget:null,screenName:null}},computed:{status:function(){let e="off";for(const i of this.items){let t=this.screenValues[i][1];t&&((t.includes("BLUE")||t.includes("GREEN"))&&e!="caution"&&e!="critical"&&(e="normal"),t.includes("YELLOW")&&e!="critical"&&(e="caution"),t.includes("RED")&&(e="critical"))}return e},pointerStyle(){return this.screenTarget&&this.screenName?{cursor:"pointer"}:{cursor:"default"}}},created:function(){this.icon=this.parameters[0],this.label=this.parameters[1],this.subLabel=this.parameters[2],this.appliedSettings.forEach(e=>{switch(e[0].toUpperCase()){case"SCREEN":this.screenTarget=e[1],this.screenName=e[2];break;case"TLM":let i="CONVERTED";e[4]&&(i=e[4]);let t=`${e[1]}__${e[2]}__${e[3]}__${i}`;this.items.push(t),this.$emit("addItem",t);break}})},unmounted:function(){this.items.forEach(e=>{this.$emit("deleteItem",e)})},methods:{clickHandler(){this.screenTarget&&this.screenName&&this.$emit("open",this.screenTarget,this.screenName)}}};function o(e,i,t,m,d,r){const n=s.resolveComponent("rux-monitoring-icon");return s.openBlock(),s.createBlock(n,{class:"rux-icon",style:s.normalizeStyle([r.pointerStyle,e.computedStyle]),icon:e.icon,status:r.status,label:e.label,sublabel:e.subLabel,onClick:r.clickHandler},null,8,["style","icon","status","label","sublabel","onClick"])}const u=c._export_sfc(a,[["render",o]]);exports.default=u;
2
+ //# sourceMappingURL=RollupWidget-CoxNKLcv.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RollupWidget-BEDf-mfg.cjs","sources":["../src/widgets/RollupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <rux-monitoring-icon\n class=\"rux-icon\"\n :style=\"[pointerStyle, computedStyle]\"\n :icon=\"icon\"\n :status=\"status\"\n :label=\"label\"\n :sublabel=\"subLabel\"\n @click=\"clickHandler\"\n ></rux-monitoring-icon>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n icon: '',\n label: '',\n subLabel: '',\n items: [],\n screenTarget: null,\n screenName: null,\n }\n },\n computed: {\n status: function () {\n let state = 'off'\n // Calculate the overall state of all the items we care about\n for (const item of this.items) {\n let limitsState = this.screenValues[item][1]\n if (limitsState) {\n if (\n (limitsState.includes('BLUE') || limitsState.includes('GREEN')) &&\n state != 'caution' &&\n state != 'critical'\n ) {\n state = 'normal'\n }\n if (limitsState.includes('YELLOW') && state != 'critical') {\n state = 'caution'\n }\n if (limitsState.includes('RED')) {\n state = 'critical'\n }\n }\n }\n return state\n },\n pointerStyle() {\n if (this.screenTarget && this.screenName) {\n return {\n cursor: 'pointer',\n }\n } else {\n return {\n cursor: 'default',\n }\n }\n },\n },\n created: function () {\n this.icon = this.parameters[0]\n this.label = this.parameters[1]\n this.subLabel = this.parameters[2]\n\n // This was an attempt at dynamically importing the rux icon they requested.\n // However, webpack looks at the import line and tries to process all the files.\n // Good discussion here: https://github.com/webpack/webpack/issues/6680\n // and here: https://github.com/webpack/webpack/issues/4175\n // Perhaps there's a way to ignore stuff but we'd still be importing ALL\n // the files which is a LOT. Instead we just import all the icons we need in\n // openc3-cosmos-init/plugins/openc3-tool-base/src/plugins/vuetify.js\n\n // import(\n // `@astrouxds/astro-web-components/dist/components/rux-icon-${this.icon}`\n // ).then((module) => {\n // // First key of the module is the name of the class\n // let name = Object.keys(module)[0]\n // try {\n // customElements.define(`rux-icon-${this.icon}`, module[name])\n // } catch (e) {\n // // Catch the fact that the icon probably already exists and move on\n // }\n // })\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0].toUpperCase()) {\n // Create a link to an existing screen\n case 'SCREEN':\n this.screenTarget = setting[1]\n this.screenName = setting[2]\n break\n\n // Create the list of rollup telemetry\n case 'TLM':\n let type = 'CONVERTED'\n if (setting[4]) {\n type = setting[4]\n }\n let item = `${setting[1]}__${setting[2]}__${setting[3]}__${type}`\n this.items.push(item)\n this.$emit('addItem', item)\n break\n }\n })\n },\n unmounted: function () {\n this.items.forEach((item) => {\n this.$emit('deleteItem', item)\n })\n },\n methods: {\n clickHandler() {\n if (this.screenTarget && this.screenName) {\n this.$emit('open', this.screenTarget, this.screenName)\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","state","item","limitsState","setting","type","_createBlock","_component_rux_monitoring_icon","_normalizeStyle","$options","_ctx"],"mappings":"iLAiCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,QAAS,OAGb,KAAM,UAAY,CAChB,MAAO,CACL,QAAS,KACT,KAAM,GACN,MAAO,GACP,SAAU,GACV,MAAO,CAAA,EACP,aAAc,KACd,WAAY,IACd,CACF,EACA,SAAU,CACR,OAAQ,UAAY,CAClB,IAAIC,EAAQ,MAEZ,UAAWC,KAAQ,KAAK,MAAO,CAC7B,IAAIC,EAAc,KAAK,aAAaD,CAAI,EAAE,CAAC,EACvCC,KAECA,EAAY,SAAS,MAAM,GAAKA,EAAY,SAAS,OAAO,IAC7DF,GAAS,WACTA,GAAS,aAETA,EAAQ,UAENE,EAAY,SAAS,QAAQ,GAAKF,GAAS,aAC7CA,EAAQ,WAENE,EAAY,SAAS,KAAK,IAC5BF,EAAQ,YAGd,CACA,OAAOA,CACT,EACA,cAAe,CACb,OAAI,KAAK,cAAgB,KAAK,WACrB,CACL,OAAQ,SACV,EAEO,CACL,OAAQ,SACV,CAEJ,GAEF,QAAS,UAAY,CACnB,KAAK,KAAO,KAAK,WAAW,CAAC,EAC7B,KAAK,MAAQ,KAAK,WAAW,CAAC,EAC9B,KAAK,SAAW,KAAK,WAAW,CAAC,EAsBjC,KAAK,gBAAgB,QAASG,GAAY,CACxC,OAAQA,EAAQ,CAAC,EAAE,YAAW,EAAE,CAE9B,IAAK,SACH,KAAK,aAAeA,EAAQ,CAAC,EAC7B,KAAK,WAAaA,EAAQ,CAAC,EAC3B,MAGF,IAAK,MACH,IAAIC,EAAO,YACPD,EAAQ,CAAC,IACXC,EAAOD,EAAQ,CAAC,GAElB,IAAIF,EAAO,GAAGE,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKC,CAAI,GAC/D,KAAK,MAAM,KAAKH,CAAI,EACpB,KAAK,MAAM,UAAWA,CAAI,EAC1B,KACJ,CACF,CAAC,CACH,EACA,UAAW,UAAY,CACrB,KAAK,MAAM,QAASA,GAAS,CAC3B,KAAK,MAAM,aAAcA,CAAI,CAC/B,CAAC,CACH,EACA,QAAS,CACP,cAAe,CACT,KAAK,cAAgB,KAAK,YAC5B,KAAK,MAAM,OAAQ,KAAK,aAAc,KAAK,UAAU,CAEzD,EAEJ,iGA9HEI,EAAAA,YAQuBC,EAAA,CAPrB,MAAM,WACL,MAAKC,EAAAA,eAAA,CAAGC,EAAA,aAAcC,EAAA,aAAa,CAAA,EACnC,KAAMA,EAAA,KACN,OAAQD,EAAA,OACR,MAAOC,EAAA,MACP,SAAUA,EAAA,SACV,QAAOD,EAAA"}
1
+ {"version":3,"file":"RollupWidget-CoxNKLcv.cjs","sources":["../src/widgets/RollupWidget.vue"],"sourcesContent":["<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <rux-monitoring-icon\n class=\"rux-icon\"\n :style=\"[pointerStyle, computedStyle]\"\n :icon=\"icon\"\n :status=\"status\"\n :label=\"label\"\n :sublabel=\"subLabel\"\n @click=\"clickHandler\"\n ></rux-monitoring-icon>\n</template>\n\n<script>\nimport Widget from './Widget'\n\nexport default {\n mixins: [Widget],\n props: {\n value: {\n default: null,\n },\n },\n data: function () {\n return {\n valueId: null,\n icon: '',\n label: '',\n subLabel: '',\n items: [],\n screenTarget: null,\n screenName: null,\n }\n },\n computed: {\n status: function () {\n let state = 'off'\n // Calculate the overall state of all the items we care about\n for (const item of this.items) {\n let limitsState = this.screenValues[item][1]\n if (limitsState) {\n if (\n (limitsState.includes('BLUE') || limitsState.includes('GREEN')) &&\n state != 'caution' &&\n state != 'critical'\n ) {\n state = 'normal'\n }\n if (limitsState.includes('YELLOW') && state != 'critical') {\n state = 'caution'\n }\n if (limitsState.includes('RED')) {\n state = 'critical'\n }\n }\n }\n return state\n },\n pointerStyle() {\n if (this.screenTarget && this.screenName) {\n return {\n cursor: 'pointer',\n }\n } else {\n return {\n cursor: 'default',\n }\n }\n },\n },\n created: function () {\n this.icon = this.parameters[0]\n this.label = this.parameters[1]\n this.subLabel = this.parameters[2]\n\n // This was an attempt at dynamically importing the rux icon they requested.\n // However, webpack looks at the import line and tries to process all the files.\n // Good discussion here: https://github.com/webpack/webpack/issues/6680\n // and here: https://github.com/webpack/webpack/issues/4175\n // Perhaps there's a way to ignore stuff but we'd still be importing ALL\n // the files which is a LOT. Instead we just import all the icons we need in\n // openc3-cosmos-init/plugins/openc3-tool-base/src/plugins/vuetify.js\n\n // import(\n // `@astrouxds/astro-web-components/dist/components/rux-icon-${this.icon}`\n // ).then((module) => {\n // // First key of the module is the name of the class\n // let name = Object.keys(module)[0]\n // try {\n // customElements.define(`rux-icon-${this.icon}`, module[name])\n // } catch (e) {\n // // Catch the fact that the icon probably already exists and move on\n // }\n // })\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0].toUpperCase()) {\n // Create a link to an existing screen\n case 'SCREEN':\n this.screenTarget = setting[1]\n this.screenName = setting[2]\n break\n\n // Create the list of rollup telemetry\n case 'TLM':\n let type = 'CONVERTED'\n if (setting[4]) {\n type = setting[4]\n }\n let item = `${setting[1]}__${setting[2]}__${setting[3]}__${type}`\n this.items.push(item)\n this.$emit('addItem', item)\n break\n }\n })\n },\n unmounted: function () {\n this.items.forEach((item) => {\n this.$emit('deleteItem', item)\n })\n },\n methods: {\n clickHandler() {\n if (this.screenTarget && this.screenName) {\n this.$emit('open', this.screenTarget, this.screenName)\n }\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Widget","state","item","limitsState","setting","type","_createBlock","_component_rux_monitoring_icon","_normalizeStyle","$options","_ctx"],"mappings":"iLAiCKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,MAAO,CACL,MAAO,CACL,QAAS,OAGb,KAAM,UAAY,CAChB,MAAO,CACL,QAAS,KACT,KAAM,GACN,MAAO,GACP,SAAU,GACV,MAAO,CAAA,EACP,aAAc,KACd,WAAY,IACd,CACF,EACA,SAAU,CACR,OAAQ,UAAY,CAClB,IAAIC,EAAQ,MAEZ,UAAWC,KAAQ,KAAK,MAAO,CAC7B,IAAIC,EAAc,KAAK,aAAaD,CAAI,EAAE,CAAC,EACvCC,KAECA,EAAY,SAAS,MAAM,GAAKA,EAAY,SAAS,OAAO,IAC7DF,GAAS,WACTA,GAAS,aAETA,EAAQ,UAENE,EAAY,SAAS,QAAQ,GAAKF,GAAS,aAC7CA,EAAQ,WAENE,EAAY,SAAS,KAAK,IAC5BF,EAAQ,YAGd,CACA,OAAOA,CACT,EACA,cAAe,CACb,OAAI,KAAK,cAAgB,KAAK,WACrB,CACL,OAAQ,SACV,EAEO,CACL,OAAQ,SACV,CAEJ,GAEF,QAAS,UAAY,CACnB,KAAK,KAAO,KAAK,WAAW,CAAC,EAC7B,KAAK,MAAQ,KAAK,WAAW,CAAC,EAC9B,KAAK,SAAW,KAAK,WAAW,CAAC,EAsBjC,KAAK,gBAAgB,QAASG,GAAY,CACxC,OAAQA,EAAQ,CAAC,EAAE,YAAW,EAAE,CAE9B,IAAK,SACH,KAAK,aAAeA,EAAQ,CAAC,EAC7B,KAAK,WAAaA,EAAQ,CAAC,EAC3B,MAGF,IAAK,MACH,IAAIC,EAAO,YACPD,EAAQ,CAAC,IACXC,EAAOD,EAAQ,CAAC,GAElB,IAAIF,EAAO,GAAGE,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKA,EAAQ,CAAC,CAAC,KAAKC,CAAI,GAC/D,KAAK,MAAM,KAAKH,CAAI,EACpB,KAAK,MAAM,UAAWA,CAAI,EAC1B,KACJ,CACF,CAAC,CACH,EACA,UAAW,UAAY,CACrB,KAAK,MAAM,QAASA,GAAS,CAC3B,KAAK,MAAM,aAAcA,CAAI,CAC/B,CAAC,CACH,EACA,QAAS,CACP,cAAe,CACT,KAAK,cAAgB,KAAK,YAC5B,KAAK,MAAM,OAAQ,KAAK,aAAc,KAAK,UAAU,CAEzD,EAEJ,iGA9HEI,EAAAA,YAQuBC,EAAA,CAPrB,MAAM,WACL,MAAKC,EAAAA,eAAA,CAAGC,EAAA,aAAcC,EAAA,aAAa,CAAA,EACnC,KAAMA,EAAA,KACN,OAAQD,EAAA,OACR,MAAOC,EAAA,MACP,SAAUA,EAAA,SACV,QAAOD,EAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs"),e=require("vue"),m=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const v=require("./OutputDialog-2CmOBAEE.cjs"),g={components:{OutputDialog:v.OutputDialog},data(){return{routers:[],jsonContent:"",dialogTitle:"",showDialog:!1}},mounted(){this.update()},methods:{update(){r.ci.get("/openc3-api/routers").then(t=>{this.routers=t.data})},add(){},showRouter(t){r.ci.get(`/openc3-api/routers/${t}`).then(n=>{this.jsonContent=JSON.stringify(n.data,null," "),this.dialogTitle=t,this.showDialog=!0})},dialogCallback(t){this.showDialog=!1}}};function h(t,n,k,w,o,i){const s=e.resolveComponent("v-list-item-title"),a=e.resolveComponent("v-btn"),c=e.resolveComponent("v-list-item"),u=e.resolveComponent("v-divider"),d=e.resolveComponent("v-list"),p=e.resolveComponent("output-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,{class:"list","data-test":"routerList"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.routers,(l,_)=>(e.openBlock(),e.createElementBlock("div",{key:_},[e.createVNode(c,null,{append:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Show Router Details",icon:"mdi-eye",variant:"text",onClick:f=>i.showRouter(l)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(s,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l),1)]),_:2},1024)]),_:2},1024),e.createVNode(u)]))),128))]),_:1}),o.showDialog?(e.openBlock(),e.createBlock(p,{key:0,modelValue:o.showDialog,"onUpdate:modelValue":n[0]||(n[0]=l=>o.showDialog=l),content:o.jsonContent,type:"Router",name:o.dialogTitle,onSubmit:i.dialogCallback},null,8,["modelValue","content","name","onSubmit"])):e.createCommentVNode("",!0)])}const C=m._export_sfc(g,[["render",h],["__scopeId","data-v-400627ab"]]);exports.default=C;
2
- //# sourceMappingURL=RoutersTab-BA-KlYIm.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NN0zFL7Z.cjs"),e=require("vue"),m=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const v=require("./OutputDialog-CXQ5-PgU.cjs"),g={components:{OutputDialog:v.OutputDialog},data(){return{routers:[],jsonContent:"",dialogTitle:"",showDialog:!1}},mounted(){this.update()},methods:{update(){r.hi.get("/openc3-api/routers").then(t=>{this.routers=t.data})},add(){},showRouter(t){r.hi.get(`/openc3-api/routers/${t}`).then(n=>{this.jsonContent=JSON.stringify(n.data,null," "),this.dialogTitle=t,this.showDialog=!0})},dialogCallback(t){this.showDialog=!1}}};function h(t,n,k,w,o,i){const s=e.resolveComponent("v-list-item-title"),a=e.resolveComponent("v-btn"),u=e.resolveComponent("v-list-item"),c=e.resolveComponent("v-divider"),d=e.resolveComponent("v-list"),p=e.resolveComponent("output-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,{class:"list","data-test":"routerList"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.routers,(l,_)=>(e.openBlock(),e.createElementBlock("div",{key:_},[e.createVNode(u,null,{append:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Show Router Details",icon:"mdi-eye",variant:"text",onClick:f=>i.showRouter(l)},null,8,["onClick"])]),default:e.withCtx(()=>[e.createVNode(s,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l),1)]),_:2},1024)]),_:2},1024),e.createVNode(c)]))),128))]),_:1}),o.showDialog?(e.openBlock(),e.createBlock(p,{key:0,modelValue:o.showDialog,"onUpdate:modelValue":n[0]||(n[0]=l=>o.showDialog=l),content:o.jsonContent,type:"Router",name:o.dialogTitle,onSubmit:i.dialogCallback},null,8,["modelValue","content","name","onSubmit"])):e.createCommentVNode("",!0)])}const C=m._export_sfc(g,[["render",h],["__scopeId","data-v-400627ab"]]);exports.default=C;
2
+ //# sourceMappingURL=RoutersTab-DEtxUph7.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoutersTab-BA-KlYIm.cjs","sources":["../src/tools/admin/tabs/RoutersTab.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 2024, 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-list class=\"list\" data-test=\"routerList\">\n <div v-for=\"(router, index) in routers\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ router }}</v-list-item-title>\n\n <template #append>\n <v-btn\n aria-label=\"Show Router Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showRouter(router)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Router\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog } from '@/components'\n\nexport default {\n components: { OutputDialog },\n data() {\n return {\n routers: [],\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get('/openc3-api/routers').then((response) => {\n this.routers = response.data\n })\n },\n add() {},\n showRouter(name) {\n Api.get(`/openc3-api/routers/${name}`).then((response) => {\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.dialogTitle = name\n this.showDialog = true\n })\n },\n dialogCallback(content) {\n this.showDialog = false\n },\n },\n}\n</script>\n\n<style scoped>\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","OutputDialog","Api","response","name","content","_createElementBlock","_createVNode","_component_v_list","_openBlock","_Fragment","_renderList","$data","router","index","_component_v_list_item","_component_v_btn","$event","$options","_component_v_list_item_title","_component_v_divider","_createBlock","_component_output_dialog"],"mappings":"yTAwDKA,EAAU,CACb,WAAY,CAAA,aAAEC,EAAAA,YAAW,EACzB,MAAO,CACL,MAAO,CACL,QAAS,CAAA,EACT,YAAa,GACb,YAAa,GACb,WAAY,EACd,CACF,EACA,SAAU,CACR,KAAK,OAAM,CACb,EACA,QAAS,CACP,QAAS,CACPC,EAAAA,GAAI,IAAI,qBAAqB,EAAE,KAAMC,GAAa,CAChD,KAAK,QAAUA,EAAS,IAC1B,CAAC,CACH,EACA,KAAM,CAAC,EACP,WAAWC,EAAM,CACfF,KAAI,IAAI,uBAAuBE,CAAI,EAAE,EAAE,KAAMD,GAAa,CACxD,KAAK,YAAc,KAAK,UAAUA,EAAS,KAAM,KAAM,GAAI,EAC3D,KAAK,YAAcC,EACnB,KAAK,WAAa,EACpB,CAAC,CACH,EACA,eAAeC,EAAS,CACtB,KAAK,WAAa,EACpB,EAEJ,wQAhEEC,qBA0BM,MAAA,KAAA,CAzBJC,EAAAA,YAgBSC,EAAA,CAhBD,MAAM,OAAO,YAAU,iCACxB,IAAkC,EAAvCC,EAAAA,UAAA,EAAA,EAAAH,EAAAA,mBAcMI,WAAA,KAAAC,EAAAA,WAdyBC,EAAA,QAAO,CAAzBC,EAAQC,mBAArBR,EAAAA,mBAcM,MAAA,CAdmC,IAAKQ,GAAK,CACjDP,EAAAA,YAWcQ,EAAA,KAAA,CARD,iBACT,IAKE,CALFR,EAAAA,YAKES,EAAA,CAJA,aAAW,sBACX,KAAK,UACL,QAAQ,OACP,QAAKC,GAAEC,EAAA,WAAWL,CAAM,2CAP7B,IAAmD,CAAnDN,EAAAA,YAAmDY,EAAA,KAAA,mBAAhC,IAAY,qCAATN,CAAM,EAAA,CAAA,4BAW9BN,EAAAA,YAAaa,CAAA,oBAITR,EAAA,0BADRS,EAAAA,YAOEC,EAAA,kBALSV,EAAA,gDAAAA,EAAA,WAAUK,GAClB,QAASL,EAAA,YACV,KAAK,SACJ,KAAMA,EAAA,YACN,SAAQM,EAAA"}
1
+ {"version":3,"file":"RoutersTab-DEtxUph7.cjs","sources":["../src/tools/admin/tabs/RoutersTab.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 2024, 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-list class=\"list\" data-test=\"routerList\">\n <div v-for=\"(router, index) in routers\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ router }}</v-list-item-title>\n\n <template #append>\n <v-btn\n aria-label=\"Show Router Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showRouter(router)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Router\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog } from '@/components'\n\nexport default {\n components: { OutputDialog },\n data() {\n return {\n routers: [],\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get('/openc3-api/routers').then((response) => {\n this.routers = response.data\n })\n },\n add() {},\n showRouter(name) {\n Api.get(`/openc3-api/routers/${name}`).then((response) => {\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.dialogTitle = name\n this.showDialog = true\n })\n },\n dialogCallback(content) {\n this.showDialog = false\n },\n },\n}\n</script>\n\n<style scoped>\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","OutputDialog","Api","response","name","content","_createElementBlock","_createVNode","_component_v_list","_openBlock","_Fragment","_renderList","$data","router","index","_component_v_list_item","_component_v_btn","$event","$options","_component_v_list_item_title","_component_v_divider","_createBlock","_component_output_dialog"],"mappings":"yTAwDKA,EAAU,CACb,WAAY,CAAA,aAAEC,EAAAA,YAAW,EACzB,MAAO,CACL,MAAO,CACL,QAAS,CAAA,EACT,YAAa,GACb,YAAa,GACb,WAAY,EACd,CACF,EACA,SAAU,CACR,KAAK,OAAM,CACb,EACA,QAAS,CACP,QAAS,CACPC,EAAAA,GAAI,IAAI,qBAAqB,EAAE,KAAMC,GAAa,CAChD,KAAK,QAAUA,EAAS,IAC1B,CAAC,CACH,EACA,KAAM,CAAC,EACP,WAAWC,EAAM,CACfF,KAAI,IAAI,uBAAuBE,CAAI,EAAE,EAAE,KAAMD,GAAa,CACxD,KAAK,YAAc,KAAK,UAAUA,EAAS,KAAM,KAAM,GAAI,EAC3D,KAAK,YAAcC,EACnB,KAAK,WAAa,EACpB,CAAC,CACH,EACA,eAAeC,EAAS,CACtB,KAAK,WAAa,EACpB,EAEJ,wQAhEEC,qBA0BM,MAAA,KAAA,CAzBJC,EAAAA,YAgBSC,EAAA,CAhBD,MAAM,OAAO,YAAU,iCACxB,IAAkC,EAAvCC,EAAAA,UAAA,EAAA,EAAAH,EAAAA,mBAcMI,WAAA,KAAAC,EAAAA,WAdyBC,EAAA,QAAO,CAAzBC,EAAQC,mBAArBR,EAAAA,mBAcM,MAAA,CAdmC,IAAKQ,GAAK,CACjDP,EAAAA,YAWcQ,EAAA,KAAA,CARD,iBACT,IAKE,CALFR,EAAAA,YAKES,EAAA,CAJA,aAAW,sBACX,KAAK,UACL,QAAQ,OACP,QAAKC,GAAEC,EAAA,WAAWL,CAAM,2CAP7B,IAAmD,CAAnDN,EAAAA,YAAmDY,EAAA,KAAA,mBAAhC,IAAY,qCAATN,CAAM,EAAA,CAAA,4BAW9BN,EAAAA,YAAaa,CAAA,oBAITR,EAAA,0BADRS,EAAAA,YAOEC,EAAA,kBALSV,EAAA,gDAAAA,EAAA,WAAUK,GAClB,QAASL,EAAA,YACV,KAAK,SACJ,KAAMA,EAAA,YACN,SAAQM,EAAA"}
@@ -1,8 +1,8 @@
1
- import { c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js";
1
+ import { h as c } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BuwHe3dn.js";
2
2
  import { resolveComponent as o, createElementBlock as r, openBlock as s, createVNode as n, createBlock as f, createCommentVNode as w, withCtx as a, Fragment as C, renderList as b, createTextVNode as k, toDisplayString as D } from "vue";
3
3
  import { _ as x } from "./CustomIcon-h5X7369N.js";
4
4
  import "single-spa";
5
- import { O as y } from "./OutputDialog-M5Xc_DqH.js";
5
+ import { O as y } from "./OutputDialog-wBy-sg3k.js";
6
6
  const V = {
7
7
  components: { OutputDialog: y },
8
8
  data() {
@@ -35,9 +35,9 @@ const V = {
35
35
  }
36
36
  };
37
37
  function R(t, l, S, T, e, u) {
38
- const d = o("v-list-item-title"), m = o("v-btn"), p = o("v-list-item"), _ = o("v-divider"), g = o("v-list"), h = o("output-dialog");
38
+ const d = o("v-list-item-title"), m = o("v-btn"), p = o("v-list-item"), _ = o("v-divider"), h = o("v-list"), g = o("output-dialog");
39
39
  return s(), r("div", null, [
40
- n(g, {
40
+ n(h, {
41
41
  class: "list",
42
42
  "data-test": "routerList"
43
43
  }, {
@@ -67,7 +67,7 @@ function R(t, l, S, T, e, u) {
67
67
  ]),
68
68
  _: 1
69
69
  }),
70
- e.showDialog ? (s(), f(h, {
70
+ e.showDialog ? (s(), f(g, {
71
71
  key: 0,
72
72
  modelValue: e.showDialog,
73
73
  "onUpdate:modelValue": l[0] || (l[0] = (i) => e.showDialog = i),
@@ -82,4 +82,4 @@ const F = /* @__PURE__ */ x(V, [["render", R], ["__scopeId", "data-v-400627ab"]]
82
82
  export {
83
83
  F as default
84
84
  };
85
- //# sourceMappingURL=RoutersTab-WKa6K7B8.js.map
85
+ //# sourceMappingURL=RoutersTab-DX_r6FEQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoutersTab-WKa6K7B8.js","sources":["../src/tools/admin/tabs/RoutersTab.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 2024, 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-list class=\"list\" data-test=\"routerList\">\n <div v-for=\"(router, index) in routers\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ router }}</v-list-item-title>\n\n <template #append>\n <v-btn\n aria-label=\"Show Router Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showRouter(router)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Router\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog } from '@/components'\n\nexport default {\n components: { OutputDialog },\n data() {\n return {\n routers: [],\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get('/openc3-api/routers').then((response) => {\n this.routers = response.data\n })\n },\n add() {},\n showRouter(name) {\n Api.get(`/openc3-api/routers/${name}`).then((response) => {\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.dialogTitle = name\n this.showDialog = true\n })\n },\n dialogCallback(content) {\n this.showDialog = false\n },\n },\n}\n</script>\n\n<style scoped>\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","OutputDialog","Api","response","name","content","_createElementBlock","_createVNode","_component_v_list","_openBlock","_Fragment","_renderList","$data","router","index","_component_v_list_item","_component_v_btn","$event","$options","_component_v_list_item_title","_component_v_divider","_createBlock","_component_output_dialog"],"mappings":";;;;;AAwDA,MAAKA,IAAU;AAAA,EACb,YAAY,EAAE,cAAAC,EAAW;AAAA,EACzB,OAAO;AACL,WAAO;AAAA,MACL,SAAS,CAAA;AAAA,MACT,aAAa;AAAA,MACb,aAAa;AAAA,MACb,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,UAAU;AACR,SAAK,OAAM;AAAA,EACb;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AACPC,MAAAA,EAAI,IAAI,qBAAqB,EAAE,KAAK,CAACC,MAAa;AAChD,aAAK,UAAUA,EAAS;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,IACA,MAAM;AAAA,IAAC;AAAA,IACP,WAAWC,GAAM;AACfF,MAAAA,EAAI,IAAI,uBAAuBE,CAAI,EAAE,EAAE,KAAK,CAACD,MAAa;AACxD,aAAK,cAAc,KAAK,UAAUA,EAAS,MAAM,MAAM,GAAI,GAC3D,KAAK,cAAcC,GACnB,KAAK,aAAa;AAAA,MACpB,CAAC;AAAA,IACH;AAAA,IACA,eAAeC,GAAS;AACtB,WAAK,aAAa;AAAA,IACpB;AAAA;AAEJ;;;cAhEEC,EA0BM,OAAA,MAAA;AAAA,IAzBJC,EAgBSC,GAAA;AAAA,MAhBD,OAAM;AAAA,MAAO,aAAU;AAAA;iBACxB,MAAkC;AAAA,SAAvCC,EAAA,EAAA,GAAAH,EAcMI,GAAA,MAAAC,EAdyBC,EAAA,SAAO,CAAzBC,GAAQC,YAArBR,EAcM,OAAA,EAdmC,KAAKQ,KAAK;AAAA,UACjDP,EAWcQ,GAAA,MAAA;AAAA,YARD,UACT,MAKE;AAAA,cALFR,EAKES,GAAA;AAAA,gBAJA,cAAW;AAAA,gBACX,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACP,SAAK,CAAAC,MAAEC,EAAA,WAAWL,CAAM;AAAA;;uBAP7B,MAAmD;AAAA,cAAnDN,EAAmDY,GAAA,MAAA;AAAA,2BAAhC,MAAY;AAAA,sBAATN,CAAM,GAAA,CAAA;AAAA;;;;;;UAW9BN,EAAaa,CAAA;AAAA;;;;IAITR,EAAA,mBADRS,EAOEC,GAAA;AAAA;kBALSV,EAAA;AAAA,oDAAAA,EAAA,aAAUK;AAAA,MAClB,SAASL,EAAA;AAAA,MACV,MAAK;AAAA,MACJ,MAAMA,EAAA;AAAA,MACN,UAAQM,EAAA;AAAA;;;;"}
1
+ {"version":3,"file":"RoutersTab-DX_r6FEQ.js","sources":["../src/tools/admin/tabs/RoutersTab.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 2024, 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-list class=\"list\" data-test=\"routerList\">\n <div v-for=\"(router, index) in routers\" :key=\"index\">\n <v-list-item>\n <v-list-item-title>{{ router }}</v-list-item-title>\n\n <template #append>\n <v-btn\n aria-label=\"Show Router Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showRouter(router)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Router\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog } from '@/components'\n\nexport default {\n components: { OutputDialog },\n data() {\n return {\n routers: [],\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n }\n },\n mounted() {\n this.update()\n },\n methods: {\n update() {\n Api.get('/openc3-api/routers').then((response) => {\n this.routers = response.data\n })\n },\n add() {},\n showRouter(name) {\n Api.get(`/openc3-api/routers/${name}`).then((response) => {\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.dialogTitle = name\n this.showDialog = true\n })\n },\n dialogCallback(content) {\n this.showDialog = false\n },\n },\n}\n</script>\n\n<style scoped>\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","OutputDialog","Api","response","name","content","_createElementBlock","_createVNode","_component_v_list","_openBlock","_Fragment","_renderList","$data","router","index","_component_v_list_item","_component_v_btn","$event","$options","_component_v_list_item_title","_component_v_divider","_createBlock","_component_output_dialog"],"mappings":";;;;;AAwDA,MAAKA,IAAU;AAAA,EACb,YAAY,EAAE,cAAAC,EAAW;AAAA,EACzB,OAAO;AACL,WAAO;AAAA,MACL,SAAS,CAAA;AAAA,MACT,aAAa;AAAA,MACb,aAAa;AAAA,MACb,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,UAAU;AACR,SAAK,OAAM;AAAA,EACb;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AACPC,MAAAA,EAAI,IAAI,qBAAqB,EAAE,KAAK,CAACC,MAAa;AAChD,aAAK,UAAUA,EAAS;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,IACA,MAAM;AAAA,IAAC;AAAA,IACP,WAAWC,GAAM;AACfF,MAAAA,EAAI,IAAI,uBAAuBE,CAAI,EAAE,EAAE,KAAK,CAACD,MAAa;AACxD,aAAK,cAAc,KAAK,UAAUA,EAAS,MAAM,MAAM,GAAI,GAC3D,KAAK,cAAcC,GACnB,KAAK,aAAa;AAAA,MACpB,CAAC;AAAA,IACH;AAAA,IACA,eAAeC,GAAS;AACtB,WAAK,aAAa;AAAA,IACpB;AAAA;AAEJ;;;cAhEEC,EA0BM,OAAA,MAAA;AAAA,IAzBJC,EAgBSC,GAAA;AAAA,MAhBD,OAAM;AAAA,MAAO,aAAU;AAAA;iBACxB,MAAkC;AAAA,SAAvCC,EAAA,EAAA,GAAAH,EAcMI,GAAA,MAAAC,EAdyBC,EAAA,SAAO,CAAzBC,GAAQC,YAArBR,EAcM,OAAA,EAdmC,KAAKQ,KAAK;AAAA,UACjDP,EAWcQ,GAAA,MAAA;AAAA,YARD,UACT,MAKE;AAAA,cALFR,EAKES,GAAA;AAAA,gBAJA,cAAW;AAAA,gBACX,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACP,SAAK,CAAAC,MAAEC,EAAA,WAAWL,CAAM;AAAA;;uBAP7B,MAAmD;AAAA,cAAnDN,EAAmDY,GAAA,MAAA;AAAA,2BAAhC,MAAY;AAAA,sBAATN,CAAM,GAAA,CAAA;AAAA;;;;;;UAW9BN,EAAaa,CAAA;AAAA;;;;IAITR,EAAA,mBADRS,EAOEC,GAAA;AAAA;kBALSV,EAAA;AAAA,oDAAAA,EAAA,aAAUK;AAAA,MAClB,SAASL,EAAA;AAAA,MACV,MAAK;AAAA,MACJ,MAAMA,EAAA;AAAA,MACN,UAAQM,EAAA;AAAA;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("vue"),u=require("./CustomIcon-Bop2mEnu.cjs"),h=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs"),V={props:{modelValue:{type:Array,required:!0}},computed:{selected:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{addEnvVar:function(){this.selected.push({key:"",value:""})},delEnvVar:function(t){this.selected.splice(t,1)}}},_={scope:"col",class:"text-right",width:"52px"};function v(t,o,m,p,l,d){const a=e.resolveComponent("v-btn"),c=e.resolveComponent("v-text-field"),s=e.resolveComponent("v-table");return e.openBlock(),e.createElementBlock("div",null,[o[2]||(o[2]=e.createElementVNode("span",null," Add environment variables (optional)",-1)),e.createVNode(s,{density:"compact"},{default:e.withCtx(()=>[e.createElementVNode("tbody",null,[e.createElementVNode("tr",null,[o[0]||(o[0]=e.createElementVNode("th",{scope:"col",class:"text-left"},"Key",-1)),o[1]||(o[1]=e.createElementVNode("th",{scope:"col",class:"text-left"},"Value",-1)),e.createElementVNode("th",_,[e.createVNode(a,{icon:"mdi-plus",variant:"text","data-test":"new-metadata-icon",onClick:d.addEnvVar},null,8,["onClick"])])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.selected,(n,r)=>(e.openBlock(),e.createElementBlock("tr",{key:`tr-${r}`},[e.createElementVNode("td",null,[e.createVNode(c,{modelValue:n.key,"onUpdate:modelValue":i=>n.key=i,density:"compact",type:"text","hide-details":"",readonly:n.readonly,"data-test":`key-${r}`},null,8,["modelValue","onUpdate:modelValue","readonly","data-test"])]),e.createElementVNode("td",null,[e.createVNode(c,{modelValue:n.value,"onUpdate:modelValue":i=>n.value=i,density:"compact",type:"text","hide-details":"",readonly:n.readonly,"data-test":`value-${r}`},null,8,["modelValue","onUpdate:modelValue","readonly","data-test"])]),e.createElementVNode("td",null,[e.createVNode(a,{icon:"mdi-delete",variant:"text","data-test":`remove-env-icon-${r}`,onClick:i=>d.delEnvVar(r)},null,8,["data-test","onClick"])])]))),128))])]),_:1})])}const y=u._export_sfc(V,[["render",v]]),f={props:{modelValue:String},data(){return{loading:!1,search:"",selected:this.modelValue,scripts:[],items:[]}},created(){this.loading=!0,h.ci.get("/script-api/scripts").then(t=>{this.scripts=t.data.filter(o=>o.includes(".rb")||o.includes(".py")),this.items=this.scripts}).catch(t=>{this.$emit("error",{type:"error",text:`Failed to connect to OpenC3. ${t}`,error:t})}),this.selected=this.modelValue?this.modelValue:null,this.loading=!1},watch:{selected(t,o){t!==o&&(t.slice(-1)==="*"?this.$emit("file",t.substring(0,t.length-1)):this.$emit("file",t))},search(t){t&&t!==this.selected&&this.querySelections(t)}},methods:{querySelections:function(t){this.loading=!0,setTimeout(()=>{this.items=this.scripts.filter(o=>(o||"").toLowerCase().indexOf((t||"").toLowerCase())>-1),this.loading=!1},500)}}};function E(t,o,m,p,l,d){const a=e.resolveComponent("v-autocomplete"),c=e.resolveComponent("v-row");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(c,null,{default:e.withCtx(()=>[e.createVNode(a,{modelValue:l.selected,"onUpdate:modelValue":o[0]||(o[0]=s=>l.selected=s),density:"compact",variant:"outlined","hide-no-data":"","hide-details":"",class:"mb-5",label:"Select script",loading:l.loading,items:l.items,search:l.search,"onUpdate:search":o[1]||(o[1]=s=>l.search=s),"data-test":"select-script"},null,8,["modelValue","loading","items","search"])]),_:1})])}const x=u._export_sfc(f,[["render",E]]);exports.EnvironmentChooser=y;exports.ScriptChooser=x;
2
- //# sourceMappingURL=ScriptChooser-LsboGSgh.cjs.map
1
+ "use strict";const e=require("vue"),u=require("./CustomIcon-Bop2mEnu.cjs"),h=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NN0zFL7Z.cjs"),V={props:{modelValue:{type:Array,required:!0}},computed:{selected:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{addEnvVar:function(){this.selected.push({key:"",value:""})},delEnvVar:function(t){this.selected.splice(t,1)}}},_={scope:"col",class:"text-right",width:"52px"};function v(t,o,m,p,l,d){const a=e.resolveComponent("v-btn"),i=e.resolveComponent("v-text-field"),s=e.resolveComponent("v-table");return e.openBlock(),e.createElementBlock("div",null,[o[2]||(o[2]=e.createElementVNode("span",null," Add environment variables (optional)",-1)),e.createVNode(s,{density:"compact"},{default:e.withCtx(()=>[e.createElementVNode("tbody",null,[e.createElementVNode("tr",null,[o[0]||(o[0]=e.createElementVNode("th",{scope:"col",class:"text-left"},"Key",-1)),o[1]||(o[1]=e.createElementVNode("th",{scope:"col",class:"text-left"},"Value",-1)),e.createElementVNode("th",_,[e.createVNode(a,{icon:"mdi-plus",variant:"text","data-test":"new-metadata-icon",onClick:d.addEnvVar},null,8,["onClick"])])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.selected,(n,r)=>(e.openBlock(),e.createElementBlock("tr",{key:`tr-${r}`},[e.createElementVNode("td",null,[e.createVNode(i,{modelValue:n.key,"onUpdate:modelValue":c=>n.key=c,density:"compact",type:"text","hide-details":"",readonly:n.readonly,"data-test":`key-${r}`},null,8,["modelValue","onUpdate:modelValue","readonly","data-test"])]),e.createElementVNode("td",null,[e.createVNode(i,{modelValue:n.value,"onUpdate:modelValue":c=>n.value=c,density:"compact",type:"text","hide-details":"",readonly:n.readonly,"data-test":`value-${r}`},null,8,["modelValue","onUpdate:modelValue","readonly","data-test"])]),e.createElementVNode("td",null,[e.createVNode(a,{icon:"mdi-delete",variant:"text","data-test":`remove-env-icon-${r}`,onClick:c=>d.delEnvVar(r)},null,8,["data-test","onClick"])])]))),128))])]),_:1})])}const y=u._export_sfc(V,[["render",v]]),f={props:{modelValue:String},data(){return{loading:!1,search:"",selected:this.modelValue,scripts:[],items:[]}},created(){this.loading=!0,h.hi.get("/script-api/scripts").then(t=>{this.scripts=t.data.filter(o=>o.includes(".rb")||o.includes(".py")),this.items=this.scripts}).catch(t=>{this.$emit("error",{type:"error",text:`Failed to connect to OpenC3. ${t}`,error:t})}),this.selected=this.modelValue?this.modelValue:null,this.loading=!1},watch:{selected(t,o){t!==o&&(t.slice(-1)==="*"?this.$emit("file",t.substring(0,t.length-1)):this.$emit("file",t))},search(t){t&&t!==this.selected&&this.querySelections(t)}},methods:{querySelections:function(t){this.loading=!0,setTimeout(()=>{this.items=this.scripts.filter(o=>(o||"").toLowerCase().indexOf((t||"").toLowerCase())>-1),this.loading=!1},500)}}};function E(t,o,m,p,l,d){const a=e.resolveComponent("v-autocomplete"),i=e.resolveComponent("v-row");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(a,{modelValue:l.selected,"onUpdate:modelValue":o[0]||(o[0]=s=>l.selected=s),density:"compact",variant:"outlined","hide-no-data":"","hide-details":"",class:"mb-5",label:"Select script",loading:l.loading,items:l.items,search:l.search,"onUpdate:search":o[1]||(o[1]=s=>l.search=s),"data-test":"select-script"},null,8,["modelValue","loading","items","search"])]),_:1})])}const x=u._export_sfc(f,[["render",E]]);exports.EnvironmentChooser=y;exports.ScriptChooser=x;
2
+ //# sourceMappingURL=ScriptChooser-BZMnm4SX.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptChooser-LsboGSgh.cjs","sources":["../src/components/EnvironmentChooser.vue","../src/components/ScriptChooser.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 2023, 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 <span> Add environment variables (optional)</span>\n <v-table density=\"compact\">\n <tbody>\n <tr>\n <th scope=\"col\" class=\"text-left\">Key</th>\n <th scope=\"col\" class=\"text-left\">Value</th>\n <th scope=\"col\" class=\"text-right\" width=\"52px\">\n <v-btn\n icon=\"mdi-plus\"\n variant=\"text\"\n data-test=\"new-metadata-icon\"\n @click=\"addEnvVar\"\n />\n </th>\n </tr>\n <tr v-for=\"(env, i) in selected\" :key=\"`tr-${i}`\">\n <td>\n <v-text-field\n v-model=\"env.key\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`key-${i}`\"\n />\n </td>\n <td>\n <v-text-field\n v-model=\"env.value\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`value-${i}`\"\n />\n </td>\n <td>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n :data-test=\"`remove-env-icon-${i}`\"\n @click=\"delEnvVar(i)\"\n />\n </td>\n </tr>\n </tbody>\n </v-table>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: {\n type: Array,\n required: true,\n },\n },\n computed: {\n selected: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n methods: {\n addEnvVar: function () {\n this.selected.push({\n key: '',\n value: '',\n })\n },\n delEnvVar: function (index) {\n this.selected.splice(index, 1)\n },\n },\n}\n</script>\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 2023, 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>\n <v-autocomplete\n v-model=\"selected\"\n density=\"compact\"\n variant=\"outlined\"\n hide-no-data\n hide-details\n class=\"mb-5\"\n label=\"Select script\"\n :loading=\"loading\"\n :items=\"items\"\n v-model:search=\"search\"\n data-test=\"select-script\"\n />\n </v-row>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n // TODO: cache items\n // this was previously handled by Vuetify and the `cache-items` prop on `v-autocomplete`, but that feature was\n // dropped in Vuetify 3\n props: {\n modelValue: String, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n loading: false,\n search: '',\n selected: this.modelValue,\n scripts: [],\n items: [],\n }\n },\n created() {\n this.loading = true\n Api.get('/script-api/scripts')\n .then((response) => {\n this.scripts = response.data.filter((filename) => {\n return filename.includes('.rb') || filename.includes('.py')\n })\n this.items = this.scripts\n })\n .catch((error) => {\n this.$emit('error', {\n type: 'error',\n text: `Failed to connect to OpenC3. ${error}`,\n error: error,\n })\n })\n this.selected = this.modelValue ? this.modelValue : null\n this.loading = false\n },\n watch: {\n selected(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal.slice(-1) === '*') {\n // Remove the * before returning\n this.$emit('file', newVal.substring(0, newVal.length - 1))\n } else {\n this.$emit('file', newVal)\n }\n }\n },\n search(val) {\n val && val !== this.selected && this.querySelections(val)\n },\n },\n methods: {\n querySelections: function (v) {\n this.loading = true\n // Simulated ajax query\n setTimeout(() => {\n this.items = this.scripts.filter((e) => {\n return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1\n })\n this.loading = false\n }, 500)\n },\n },\n}\n</script>\n"],"names":["_sfc_main","value","index","_createElementBlock","_cache","_createElementVNode","_createVNode","_component_v_table","_hoisted_1","_component_v_btn","$options","_openBlock","_Fragment","_renderList","env","i","_component_v_text_field","$event","Api","response","filename","error","newVal","oldVal","val","v","e","_component_v_row","_component_v_autocomplete","$data"],"mappings":"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"}
1
+ {"version":3,"file":"ScriptChooser-BZMnm4SX.cjs","sources":["../src/components/EnvironmentChooser.vue","../src/components/ScriptChooser.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 2023, 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 <span> Add environment variables (optional)</span>\n <v-table density=\"compact\">\n <tbody>\n <tr>\n <th scope=\"col\" class=\"text-left\">Key</th>\n <th scope=\"col\" class=\"text-left\">Value</th>\n <th scope=\"col\" class=\"text-right\" width=\"52px\">\n <v-btn\n icon=\"mdi-plus\"\n variant=\"text\"\n data-test=\"new-metadata-icon\"\n @click=\"addEnvVar\"\n />\n </th>\n </tr>\n <tr v-for=\"(env, i) in selected\" :key=\"`tr-${i}`\">\n <td>\n <v-text-field\n v-model=\"env.key\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`key-${i}`\"\n />\n </td>\n <td>\n <v-text-field\n v-model=\"env.value\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`value-${i}`\"\n />\n </td>\n <td>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n :data-test=\"`remove-env-icon-${i}`\"\n @click=\"delEnvVar(i)\"\n />\n </td>\n </tr>\n </tbody>\n </v-table>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: {\n type: Array,\n required: true,\n },\n },\n computed: {\n selected: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n methods: {\n addEnvVar: function () {\n this.selected.push({\n key: '',\n value: '',\n })\n },\n delEnvVar: function (index) {\n this.selected.splice(index, 1)\n },\n },\n}\n</script>\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 2023, 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>\n <v-autocomplete\n v-model=\"selected\"\n density=\"compact\"\n variant=\"outlined\"\n hide-no-data\n hide-details\n class=\"mb-5\"\n label=\"Select script\"\n :loading=\"loading\"\n :items=\"items\"\n v-model:search=\"search\"\n data-test=\"select-script\"\n />\n </v-row>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n // TODO: cache items\n // this was previously handled by Vuetify and the `cache-items` prop on `v-autocomplete`, but that feature was\n // dropped in Vuetify 3\n props: {\n modelValue: String, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n loading: false,\n search: '',\n selected: this.modelValue,\n scripts: [],\n items: [],\n }\n },\n created() {\n this.loading = true\n Api.get('/script-api/scripts')\n .then((response) => {\n this.scripts = response.data.filter((filename) => {\n return filename.includes('.rb') || filename.includes('.py')\n })\n this.items = this.scripts\n })\n .catch((error) => {\n this.$emit('error', {\n type: 'error',\n text: `Failed to connect to OpenC3. ${error}`,\n error: error,\n })\n })\n this.selected = this.modelValue ? this.modelValue : null\n this.loading = false\n },\n watch: {\n selected(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal.slice(-1) === '*') {\n // Remove the * before returning\n this.$emit('file', newVal.substring(0, newVal.length - 1))\n } else {\n this.$emit('file', newVal)\n }\n }\n },\n search(val) {\n val && val !== this.selected && this.querySelections(val)\n },\n },\n methods: {\n querySelections: function (v) {\n this.loading = true\n // Simulated ajax query\n setTimeout(() => {\n this.items = this.scripts.filter((e) => {\n return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1\n })\n this.loading = false\n }, 500)\n },\n },\n}\n</script>\n"],"names":["_sfc_main","value","index","_createElementBlock","_cache","_createElementVNode","_createVNode","_component_v_table","_hoisted_1","_component_v_btn","$options","_openBlock","_Fragment","_renderList","env","i","_component_v_text_field","$event","Api","response","filename","error","newVal","oldVal","val","v","e","_component_v_row","_component_v_autocomplete","$data"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { resolveComponent as d, createElementBlock as p, openBlock as h, createElementVNode as l, createVNode as o, withCtx as f, Fragment as V, renderList as x } from "vue";
2
2
  import { _ as y } from "./CustomIcon-h5X7369N.js";
3
- import { c as g } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js";
3
+ import { h as g } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BuwHe3dn.js";
4
4
  const k = {
5
5
  props: {
6
6
  modelValue: {
@@ -173,4 +173,4 @@ export {
173
173
  q as E,
174
174
  L as S
175
175
  };
176
- //# sourceMappingURL=ScriptChooser-B5TkGuZ4.js.map
176
+ //# sourceMappingURL=ScriptChooser-Ci_3uZDo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptChooser-B5TkGuZ4.js","sources":["../src/components/EnvironmentChooser.vue","../src/components/ScriptChooser.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 2023, 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 <span> Add environment variables (optional)</span>\n <v-table density=\"compact\">\n <tbody>\n <tr>\n <th scope=\"col\" class=\"text-left\">Key</th>\n <th scope=\"col\" class=\"text-left\">Value</th>\n <th scope=\"col\" class=\"text-right\" width=\"52px\">\n <v-btn\n icon=\"mdi-plus\"\n variant=\"text\"\n data-test=\"new-metadata-icon\"\n @click=\"addEnvVar\"\n />\n </th>\n </tr>\n <tr v-for=\"(env, i) in selected\" :key=\"`tr-${i}`\">\n <td>\n <v-text-field\n v-model=\"env.key\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`key-${i}`\"\n />\n </td>\n <td>\n <v-text-field\n v-model=\"env.value\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`value-${i}`\"\n />\n </td>\n <td>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n :data-test=\"`remove-env-icon-${i}`\"\n @click=\"delEnvVar(i)\"\n />\n </td>\n </tr>\n </tbody>\n </v-table>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: {\n type: Array,\n required: true,\n },\n },\n computed: {\n selected: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n methods: {\n addEnvVar: function () {\n this.selected.push({\n key: '',\n value: '',\n })\n },\n delEnvVar: function (index) {\n this.selected.splice(index, 1)\n },\n },\n}\n</script>\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 2023, 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>\n <v-autocomplete\n v-model=\"selected\"\n density=\"compact\"\n variant=\"outlined\"\n hide-no-data\n hide-details\n class=\"mb-5\"\n label=\"Select script\"\n :loading=\"loading\"\n :items=\"items\"\n v-model:search=\"search\"\n data-test=\"select-script\"\n />\n </v-row>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n // TODO: cache items\n // this was previously handled by Vuetify and the `cache-items` prop on `v-autocomplete`, but that feature was\n // dropped in Vuetify 3\n props: {\n modelValue: String, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n loading: false,\n search: '',\n selected: this.modelValue,\n scripts: [],\n items: [],\n }\n },\n created() {\n this.loading = true\n Api.get('/script-api/scripts')\n .then((response) => {\n this.scripts = response.data.filter((filename) => {\n return filename.includes('.rb') || filename.includes('.py')\n })\n this.items = this.scripts\n })\n .catch((error) => {\n this.$emit('error', {\n type: 'error',\n text: `Failed to connect to OpenC3. ${error}`,\n error: error,\n })\n })\n this.selected = this.modelValue ? this.modelValue : null\n this.loading = false\n },\n watch: {\n selected(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal.slice(-1) === '*') {\n // Remove the * before returning\n this.$emit('file', newVal.substring(0, newVal.length - 1))\n } else {\n this.$emit('file', newVal)\n }\n }\n },\n search(val) {\n val && val !== this.selected && this.querySelections(val)\n },\n },\n methods: {\n querySelections: function (v) {\n this.loading = true\n // Simulated ajax query\n setTimeout(() => {\n this.items = this.scripts.filter((e) => {\n return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1\n })\n this.loading = false\n }, 500)\n },\n },\n}\n</script>\n"],"names":["_sfc_main","value","index","_createElementBlock","_cache","_createElementVNode","_createVNode","_component_v_table","_hoisted_1","_component_v_btn","$options","_openBlock","_Fragment","_renderList","env","i","_component_v_text_field","$event","Api","response","filename","error","newVal","oldVal","val","v","e","_component_v_row","_component_v_autocomplete","$data"],"mappings":"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"}
1
+ {"version":3,"file":"ScriptChooser-Ci_3uZDo.js","sources":["../src/components/EnvironmentChooser.vue","../src/components/ScriptChooser.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 2023, 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 <span> Add environment variables (optional)</span>\n <v-table density=\"compact\">\n <tbody>\n <tr>\n <th scope=\"col\" class=\"text-left\">Key</th>\n <th scope=\"col\" class=\"text-left\">Value</th>\n <th scope=\"col\" class=\"text-right\" width=\"52px\">\n <v-btn\n icon=\"mdi-plus\"\n variant=\"text\"\n data-test=\"new-metadata-icon\"\n @click=\"addEnvVar\"\n />\n </th>\n </tr>\n <tr v-for=\"(env, i) in selected\" :key=\"`tr-${i}`\">\n <td>\n <v-text-field\n v-model=\"env.key\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`key-${i}`\"\n />\n </td>\n <td>\n <v-text-field\n v-model=\"env.value\"\n density=\"compact\"\n type=\"text\"\n hide-details\n :readonly=\"env.readonly\"\n :data-test=\"`value-${i}`\"\n />\n </td>\n <td>\n <v-btn\n icon=\"mdi-delete\"\n variant=\"text\"\n :data-test=\"`remove-env-icon-${i}`\"\n @click=\"delEnvVar(i)\"\n />\n </td>\n </tr>\n </tbody>\n </v-table>\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: {\n type: Array,\n required: true,\n },\n },\n computed: {\n selected: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value)\n },\n },\n },\n methods: {\n addEnvVar: function () {\n this.selected.push({\n key: '',\n value: '',\n })\n },\n delEnvVar: function (index) {\n this.selected.splice(index, 1)\n },\n },\n}\n</script>\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 2023, 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>\n <v-autocomplete\n v-model=\"selected\"\n density=\"compact\"\n variant=\"outlined\"\n hide-no-data\n hide-details\n class=\"mb-5\"\n label=\"Select script\"\n :loading=\"loading\"\n :items=\"items\"\n v-model:search=\"search\"\n data-test=\"select-script\"\n />\n </v-row>\n </div>\n</template>\n\n<script>\nimport { Api } from '@openc3/js-common/services'\n\nexport default {\n // TODO: cache items\n // this was previously handled by Vuetify and the `cache-items` prop on `v-autocomplete`, but that feature was\n // dropped in Vuetify 3\n props: {\n modelValue: String, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n loading: false,\n search: '',\n selected: this.modelValue,\n scripts: [],\n items: [],\n }\n },\n created() {\n this.loading = true\n Api.get('/script-api/scripts')\n .then((response) => {\n this.scripts = response.data.filter((filename) => {\n return filename.includes('.rb') || filename.includes('.py')\n })\n this.items = this.scripts\n })\n .catch((error) => {\n this.$emit('error', {\n type: 'error',\n text: `Failed to connect to OpenC3. ${error}`,\n error: error,\n })\n })\n this.selected = this.modelValue ? this.modelValue : null\n this.loading = false\n },\n watch: {\n selected(newVal, oldVal) {\n if (newVal !== oldVal) {\n if (newVal.slice(-1) === '*') {\n // Remove the * before returning\n this.$emit('file', newVal.substring(0, newVal.length - 1))\n } else {\n this.$emit('file', newVal)\n }\n }\n },\n search(val) {\n val && val !== this.selected && this.querySelections(val)\n },\n },\n methods: {\n querySelections: function (v) {\n this.loading = true\n // Simulated ajax query\n setTimeout(() => {\n this.items = this.scripts.filter((e) => {\n return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1\n })\n this.loading = false\n }, 500)\n },\n },\n}\n</script>\n"],"names":["_sfc_main","value","index","_createElementBlock","_cache","_createElementVNode","_createVNode","_component_v_table","_hoisted_1","_component_v_btn","$options","_openBlock","_Fragment","_renderList","env","i","_component_v_text_field","$event","Api","response","filename","error","newVal","oldVal","val","v","e","_component_v_row","_component_v_autocomplete","$data"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { L as m } from "./Layout-mWR35VAD.js";
2
- import l from "./VerticalWidget-CkFbX1Gq.js";
1
+ import { L as m } from "./Layout-BNvQKlyy.js";
2
+ import l from "./VerticalWidget-BuKinn_c.js";
3
3
  import { createElementBlock as o, openBlock as n, normalizeStyle as c, Fragment as p, renderList as u, createBlock as f, resolveDynamicComponent as d, mergeProps as h } from "vue";
4
4
  import { _ as g } from "./CustomIcon-h5X7369N.js";
5
5
  const y = {
@@ -42,4 +42,4 @@ const $ = /* @__PURE__ */ g(y, [["render", v]]);
42
42
  export {
43
43
  $ as default
44
44
  };
45
- //# sourceMappingURL=ScrollwindowWidget-BwFG6Wn8.js.map
45
+ //# sourceMappingURL=ScrollwindowWidget-BcbyrYUo.js.map