@openc3/vue-common 6.6.0 → 6.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/dist/{ArrayWidget-Ck6pzAyW.js → ArrayWidget-BSG8KEtf.js} +4 -4
  2. package/dist/{ArrayWidget-Ck6pzAyW.js.map → ArrayWidget-BSG8KEtf.js.map} +1 -1
  3. package/dist/{ArrayWidget-Bb_Ldxq7.cjs → ArrayWidget-B__t3xOt.cjs} +2 -2
  4. package/dist/{ArrayWidget-Bb_Ldxq7.cjs.map → ArrayWidget-B__t3xOt.cjs.map} +1 -1
  5. package/dist/ArrayplotWidget-BduWyJlL.cjs +2 -0
  6. package/dist/ArrayplotWidget-BduWyJlL.cjs.map +1 -0
  7. package/dist/{ArrayplotWidget-ntRLh6-B.js → ArrayplotWidget-WVu76Kqn.js} +22 -22
  8. package/dist/ArrayplotWidget-WVu76Kqn.js.map +1 -0
  9. package/dist/{BarColumn-Bgz2YJ59.js → BarColumn-Cflh9pUz.js} +3 -3
  10. package/dist/{BarColumn-Bgz2YJ59.js.map → BarColumn-Cflh9pUz.js.map} +1 -1
  11. package/dist/{BarColumn-DtRNuOpa.cjs → BarColumn-DVn9f2WO.cjs} +2 -2
  12. package/dist/{BarColumn-DtRNuOpa.cjs.map → BarColumn-DVn9f2WO.cjs.map} +1 -1
  13. package/dist/{BlockWidget-DGH3Zz5p.js → BlockWidget-B7ryWGCq.js} +4 -4
  14. package/dist/{BlockWidget-DGH3Zz5p.js.map → BlockWidget-B7ryWGCq.js.map} +1 -1
  15. package/dist/{BlockWidget-DOY5lVfa.cjs → BlockWidget-CRqA09Ve.cjs} +2 -2
  16. package/dist/{BlockWidget-DOY5lVfa.cjs.map → BlockWidget-CRqA09Ve.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-D_tupiPB.js → ButtonWidget-BKih3ix9.js} +17 -13
  18. package/dist/{ButtonWidget-D_tupiPB.js.map → ButtonWidget-BKih3ix9.js.map} +1 -1
  19. package/dist/{ButtonWidget-CFyZXGt6.cjs → ButtonWidget-Bb46aUCR.cjs} +3 -3
  20. package/dist/{ButtonWidget-CFyZXGt6.cjs.map → ButtonWidget-Bb46aUCR.cjs.map} +1 -1
  21. package/dist/{CanvasWidget-CzG2jYQb.js → CanvasWidget-DT9xMSfb.js} +2 -2
  22. package/dist/{CanvasWidget-CzG2jYQb.js.map → CanvasWidget-DT9xMSfb.js.map} +1 -1
  23. package/dist/{CanvasWidget-C6dc7mUw.cjs → CanvasWidget-DT_vPAoc.cjs} +2 -2
  24. package/dist/{CanvasWidget-C6dc7mUw.cjs.map → CanvasWidget-DT_vPAoc.cjs.map} +1 -1
  25. package/dist/{CanvasdotWidget-0FAaw4G2.js → CanvasdotWidget-7H5Hvcn-.js} +2 -2
  26. package/dist/{CanvasdotWidget-0FAaw4G2.js.map → CanvasdotWidget-7H5Hvcn-.js.map} +1 -1
  27. package/dist/{CanvasdotWidget-9bBVHC1l.cjs → CanvasdotWidget-DNSQriVo.cjs} +2 -2
  28. package/dist/{CanvasdotWidget-9bBVHC1l.cjs.map → CanvasdotWidget-DNSQriVo.cjs.map} +1 -1
  29. package/dist/{CanvasimageWidget-CNJlzLqo.js → CanvasimageWidget-BbWYx6Gj.js} +3 -3
  30. package/dist/{CanvasimageWidget-CNJlzLqo.js.map → CanvasimageWidget-BbWYx6Gj.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-DjvdDCRS.cjs → CanvasimageWidget-CfleScIF.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-DjvdDCRS.cjs.map → CanvasimageWidget-CfleScIF.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-DudwwOD6.js → CanvasimagevalueWidget-Blvoe2X4.js} +3 -3
  34. package/dist/{CanvasimagevalueWidget-DudwwOD6.js.map → CanvasimagevalueWidget-Blvoe2X4.js.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-C1fI-ftP.cjs → CanvasimagevalueWidget-ouM4DBeD.cjs} +2 -2
  36. package/dist/{CanvasimagevalueWidget-C1fI-ftP.cjs.map → CanvasimagevalueWidget-ouM4DBeD.cjs.map} +1 -1
  37. package/dist/{CanvaslabelWidget-BZQp16dH.js → CanvaslabelWidget-BPx_Rm4o.js} +2 -2
  38. package/dist/{CanvaslabelWidget-BZQp16dH.js.map → CanvaslabelWidget-BPx_Rm4o.js.map} +1 -1
  39. package/dist/{CanvaslabelWidget--6Sjc4E8.cjs → CanvaslabelWidget-DB3qox5N.cjs} +2 -2
  40. package/dist/{CanvaslabelWidget--6Sjc4E8.cjs.map → CanvaslabelWidget-DB3qox5N.cjs.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-DZCxsIKk.cjs → CanvaslabelvalueWidget-2k6TjSNj.cjs} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-DZCxsIKk.cjs.map → CanvaslabelvalueWidget-2k6TjSNj.cjs.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-CHS36Te9.js → CanvaslabelvalueWidget-DzdWvL0W.js} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-CHS36Te9.js.map → CanvaslabelvalueWidget-DzdWvL0W.js.map} +1 -1
  45. package/dist/{CanvaslineWidget-nhKEAGhs.js → CanvaslineWidget-CqskilGk.js} +2 -2
  46. package/dist/{CanvaslineWidget-nhKEAGhs.js.map → CanvaslineWidget-CqskilGk.js.map} +1 -1
  47. package/dist/{CanvaslineWidget-Bn83Rb10.cjs → CanvaslineWidget-oAoznYZP.cjs} +2 -2
  48. package/dist/{CanvaslineWidget-Bn83Rb10.cjs.map → CanvaslineWidget-oAoznYZP.cjs.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-C6x_4Gc9.cjs → CanvaslinevalueWidget-BmyIxGNz.cjs} +2 -2
  50. package/dist/{CanvaslinevalueWidget-C6x_4Gc9.cjs.map → CanvaslinevalueWidget-BmyIxGNz.cjs.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-DsyIDkJy.js → CanvaslinevalueWidget-C0JIKdvZ.js} +2 -2
  52. package/dist/{CanvaslinevalueWidget-DsyIDkJy.js.map → CanvaslinevalueWidget-C0JIKdvZ.js.map} +1 -1
  53. package/dist/{CheckbuttonWidget-BvggsGZY.cjs → CheckbuttonWidget-C548xrRy.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-BvggsGZY.cjs.map → CheckbuttonWidget-C548xrRy.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-DCam7Jd0.js → CheckbuttonWidget-C9FbJx2v.js} +2 -2
  56. package/dist/{CheckbuttonWidget-DCam7Jd0.js.map → CheckbuttonWidget-C9FbJx2v.js.map} +1 -1
  57. package/dist/ClassificationBanners-BTdLBSfy.cjs +2 -0
  58. package/dist/ClassificationBanners-BTdLBSfy.cjs.map +1 -0
  59. package/dist/ClassificationBanners-CgJiwgTp.js +35 -0
  60. package/dist/ClassificationBanners-CgJiwgTp.js.map +1 -0
  61. package/dist/{ComboboxWidget-BS5WSbrK.cjs → ComboboxWidget-AErojGw0.cjs} +2 -2
  62. package/dist/{ComboboxWidget-BS5WSbrK.cjs.map → ComboboxWidget-AErojGw0.cjs.map} +1 -1
  63. package/dist/{ComboboxWidget-ZX-k-_aK.js → ComboboxWidget-BbNKT0s8.js} +2 -2
  64. package/dist/{ComboboxWidget-ZX-k-_aK.js.map → ComboboxWidget-BbNKT0s8.js.map} +1 -1
  65. package/dist/{CriticalCmdDialog-Dylpoz_4.js → CriticalCmdDialog-CF7Sqjdm.js} +11 -8
  66. package/dist/{CriticalCmdDialog-Dylpoz_4.js.map → CriticalCmdDialog-CF7Sqjdm.js.map} +1 -1
  67. package/dist/CriticalCmdDialog-N06JxCHg.cjs +2 -0
  68. package/dist/{CriticalCmdDialog-7tOK2XQk.cjs.map → CriticalCmdDialog-N06JxCHg.cjs.map} +1 -1
  69. package/dist/CustomIcon-Bop2mEnu.cjs.map +1 -1
  70. package/dist/CustomIcon-h5X7369N.js.map +1 -1
  71. package/dist/{DateWidget-DuJ5uC2t.js → DateWidget-CBMsdRUE.js} +2 -2
  72. package/dist/{DateWidget-DuJ5uC2t.js.map → DateWidget-CBMsdRUE.js.map} +1 -1
  73. package/dist/{DateWidget-jejbk2-G.cjs → DateWidget-CCIkDM9_.cjs} +2 -2
  74. package/dist/{DateWidget-jejbk2-G.cjs.map → DateWidget-CCIkDM9_.cjs.map} +1 -1
  75. package/dist/DetailsDialog-CVYBgZll.cjs +2 -0
  76. package/dist/DetailsDialog-CVYBgZll.cjs.map +1 -0
  77. package/dist/{DetailsDialog-BQE0TraI.js → DetailsDialog-DRVahE5z.js} +129 -97
  78. package/dist/DetailsDialog-DRVahE5z.js.map +1 -0
  79. package/dist/DynamicWidget-BWEVCUfd.cjs.map +1 -1
  80. package/dist/DynamicWidget-CfMtj7H8.js.map +1 -1
  81. package/dist/EventListDialog-CjYLRdkb.cjs +2 -0
  82. package/dist/{EventListDialog-CDcJcxy5.cjs.map → EventListDialog-CjYLRdkb.cjs.map} +1 -1
  83. package/dist/{EventListDialog-CGUFCrJF.js → EventListDialog-DDWL9gIQ.js} +46 -31
  84. package/dist/{EventListDialog-CGUFCrJF.js.map → EventListDialog-DDWL9gIQ.js.map} +1 -1
  85. package/dist/{FormatvalueWidget-DYICPNcx.js → FormatvalueWidget-BLWsqhIZ.js} +3 -3
  86. package/dist/{FormatvalueWidget-DYICPNcx.js.map → FormatvalueWidget-BLWsqhIZ.js.map} +1 -1
  87. package/dist/{FormatvalueWidget-wu7Q3sXu.cjs → FormatvalueWidget-BiaqheLJ.cjs} +2 -2
  88. package/dist/{FormatvalueWidget-wu7Q3sXu.cjs.map → FormatvalueWidget-BiaqheLJ.cjs.map} +1 -1
  89. package/dist/Graph-BiU56Qj2.js +2669 -0
  90. package/dist/Graph-BiU56Qj2.js.map +1 -0
  91. package/dist/Graph-CWjf71TK.cjs +2 -0
  92. package/dist/Graph-CWjf71TK.cjs.map +1 -0
  93. package/dist/{GraphWidget-cTVq29cY.js → GraphWidget-Ga0AEfrJ.js} +31 -44
  94. package/dist/{GraphWidget-cTVq29cY.js.map → GraphWidget-Ga0AEfrJ.js.map} +1 -1
  95. package/dist/GraphWidget-cfgX_skM.cjs +2 -0
  96. package/dist/{GraphWidget-CQjKAMPR.cjs.map → GraphWidget-cfgX_skM.cjs.map} +1 -1
  97. package/dist/{HorizontalWidget-v1pfd94Z.js → HorizontalWidget-CsVhLwZO.js} +6 -6
  98. package/dist/{HorizontalWidget-v1pfd94Z.js.map → HorizontalWidget-CsVhLwZO.js.map} +1 -1
  99. package/dist/HorizontalWidget-i6aqMSRv.cjs +2 -0
  100. package/dist/{HorizontalWidget--AkRJPlL.cjs.map → HorizontalWidget-i6aqMSRv.cjs.map} +1 -1
  101. package/dist/HorizontalboxWidget-B_S8mswF.cjs +2 -0
  102. package/dist/{HorizontalboxWidget-synL-Bar.cjs.map → HorizontalboxWidget-B_S8mswF.cjs.map} +1 -1
  103. package/dist/{HorizontalboxWidget-B06-c_n4.js → HorizontalboxWidget-xC6PADl3.js} +15 -15
  104. package/dist/{HorizontalboxWidget-B06-c_n4.js.map → HorizontalboxWidget-xC6PADl3.js.map} +1 -1
  105. package/dist/{HorizontallineWidget-lTr2JTFY.cjs → HorizontallineWidget-Cpys-185.cjs} +2 -2
  106. package/dist/{HorizontallineWidget-lTr2JTFY.cjs.map → HorizontallineWidget-Cpys-185.cjs.map} +1 -1
  107. package/dist/{HorizontallineWidget-DEODVJCk.js → HorizontallineWidget-NZIxmRVN.js} +2 -2
  108. package/dist/{HorizontallineWidget-DEODVJCk.js.map → HorizontallineWidget-NZIxmRVN.js.map} +1 -1
  109. package/dist/{IframeWidget-n8lNXrpt.js → IframeWidget-BgzjSfag.js} +2 -2
  110. package/dist/{IframeWidget-n8lNXrpt.js.map → IframeWidget-BgzjSfag.js.map} +1 -1
  111. package/dist/{IframeWidget-ByhwW9yG.cjs → IframeWidget-CCdvd8rg.cjs} +2 -2
  112. package/dist/{IframeWidget-ByhwW9yG.cjs.map → IframeWidget-CCdvd8rg.cjs.map} +1 -1
  113. package/dist/{ImageLoader-DBWVFtNu.cjs → ImageLoader-BIKl6vGc.cjs} +2 -2
  114. package/dist/{ImageLoader-DBWVFtNu.cjs.map → ImageLoader-BIKl6vGc.cjs.map} +1 -1
  115. package/dist/{ImageLoader-CfcErydq.js → ImageLoader-DbFVK1Ui.js} +2 -2
  116. package/dist/{ImageLoader-CfcErydq.js.map → ImageLoader-DbFVK1Ui.js.map} +1 -1
  117. package/dist/{ImageviewerWidget-DE8fj06Z.js → ImageviewerWidget-BnT5m-nw.js} +2 -2
  118. package/dist/{ImageviewerWidget-DE8fj06Z.js.map → ImageviewerWidget-BnT5m-nw.js.map} +1 -1
  119. package/dist/{ImageviewerWidget-D4mU6wLX.cjs → ImageviewerWidget-lnralJZa.cjs} +2 -2
  120. package/dist/{ImageviewerWidget-D4mU6wLX.cjs.map → ImageviewerWidget-lnralJZa.cjs.map} +1 -1
  121. package/dist/{InterfacesTab-BF-Wx5gk.js → InterfacesTab-Cd_RITVP.js} +3 -3
  122. package/dist/{InterfacesTab-BF-Wx5gk.js.map → InterfacesTab-Cd_RITVP.js.map} +1 -1
  123. package/dist/{InterfacesTab-DTAAIx-y.cjs → InterfacesTab-DjlzjJYG.cjs} +2 -2
  124. package/dist/{InterfacesTab-DTAAIx-y.cjs.map → InterfacesTab-DjlzjJYG.cjs.map} +1 -1
  125. package/dist/{LabelWidget-DQZqRxKF.cjs → LabelWidget-CRHSFVPT.cjs} +2 -2
  126. package/dist/{LabelWidget-DQZqRxKF.cjs.map → LabelWidget-CRHSFVPT.cjs.map} +1 -1
  127. package/dist/{LabelWidget-iUIJLhdA.js → LabelWidget-DSDYmz6X.js} +2 -2
  128. package/dist/{LabelWidget-iUIJLhdA.js.map → LabelWidget-DSDYmz6X.js.map} +1 -1
  129. package/dist/{LabelledWidget-9HWChRmv.cjs → LabelledWidget-BXf9cTf_.cjs} +2 -2
  130. package/dist/{LabelledWidget-9HWChRmv.cjs.map → LabelledWidget-BXf9cTf_.cjs.map} +1 -1
  131. package/dist/{LabelledWidget-KI6fMlsr.js → LabelledWidget-DMb-myxs.js} +4 -4
  132. package/dist/{LabelledWidget-KI6fMlsr.js.map → LabelledWidget-DMb-myxs.js.map} +1 -1
  133. package/dist/{LabelprogressbarWidget-DwzTP73u.cjs → LabelprogressbarWidget-BNHaAUXq.cjs} +2 -2
  134. package/dist/{LabelprogressbarWidget-DwzTP73u.cjs.map → LabelprogressbarWidget-BNHaAUXq.cjs.map} +1 -1
  135. package/dist/{LabelprogressbarWidget-C2lzmqBH.js → LabelprogressbarWidget-CkjDJBao.js} +4 -4
  136. package/dist/{LabelprogressbarWidget-C2lzmqBH.js.map → LabelprogressbarWidget-CkjDJBao.js.map} +1 -1
  137. package/dist/{LabelsparklineWidget-DMjBshq8.cjs → LabelsparklineWidget-BpHMkt-L.cjs} +2 -2
  138. package/dist/{LabelsparklineWidget-DMjBshq8.cjs.map → LabelsparklineWidget-BpHMkt-L.cjs.map} +1 -1
  139. package/dist/{LabelsparklineWidget-Ci6GGm29.js → LabelsparklineWidget-DBYPFz3Y.js} +4 -4
  140. package/dist/{LabelsparklineWidget-Ci6GGm29.js.map → LabelsparklineWidget-DBYPFz3Y.js.map} +1 -1
  141. package/dist/{LabelvalueWidget-mAb0eLA8.cjs → LabelvalueWidget-BFHYb64m.cjs} +2 -2
  142. package/dist/{LabelvalueWidget-mAb0eLA8.cjs.map → LabelvalueWidget-BFHYb64m.cjs.map} +1 -1
  143. package/dist/{LabelvalueWidget-oiW-JDw6.js → LabelvalueWidget-DlTkJC4i.js} +4 -4
  144. package/dist/{LabelvalueWidget-oiW-JDw6.js.map → LabelvalueWidget-DlTkJC4i.js.map} +1 -1
  145. package/dist/{LabelvaluedescWidget-CZJ0kZN-.cjs → LabelvaluedescWidget-CUld9MqE.cjs} +2 -2
  146. package/dist/{LabelvaluedescWidget-CZJ0kZN-.cjs.map → LabelvaluedescWidget-CUld9MqE.cjs.map} +1 -1
  147. package/dist/{LabelvaluedescWidget-Ck0AJ9g0.js → LabelvaluedescWidget-dRqnGZub.js} +5 -5
  148. package/dist/{LabelvaluedescWidget-Ck0AJ9g0.js.map → LabelvaluedescWidget-dRqnGZub.js.map} +1 -1
  149. package/dist/{LabelvaluelimitsbarWidget-DjBqYxRr.cjs → LabelvaluelimitsbarWidget-Br_PXH0r.cjs} +2 -2
  150. package/dist/{LabelvaluelimitsbarWidget-DjBqYxRr.cjs.map → LabelvaluelimitsbarWidget-Br_PXH0r.cjs.map} +1 -1
  151. package/dist/{LabelvaluelimitsbarWidget-aaVLaejn.js → LabelvaluelimitsbarWidget-CS4NAPJ1.js} +4 -4
  152. package/dist/{LabelvaluelimitsbarWidget-aaVLaejn.js.map → LabelvaluelimitsbarWidget-CS4NAPJ1.js.map} +1 -1
  153. package/dist/{LabelvaluelimitscolumnWidget-Uur6aqOg.js → LabelvaluelimitscolumnWidget-D9x4Ppv8.js} +5 -5
  154. package/dist/{LabelvaluelimitscolumnWidget-Uur6aqOg.js.map → LabelvaluelimitscolumnWidget-D9x4Ppv8.js.map} +1 -1
  155. package/dist/{LabelvaluelimitscolumnWidget-GputlDZq.cjs → LabelvaluelimitscolumnWidget-DjLG10C5.cjs} +2 -2
  156. package/dist/{LabelvaluelimitscolumnWidget-GputlDZq.cjs.map → LabelvaluelimitscolumnWidget-DjLG10C5.cjs.map} +1 -1
  157. package/dist/{LabelvaluerangebarWidget-Ci-n_hxk.cjs → LabelvaluerangebarWidget-CsUfrGAM.cjs} +2 -2
  158. package/dist/{LabelvaluerangebarWidget-Ci-n_hxk.cjs.map → LabelvaluerangebarWidget-CsUfrGAM.cjs.map} +1 -1
  159. package/dist/{LabelvaluerangebarWidget-Bs9locqu.js → LabelvaluerangebarWidget-Dhyng4-n.js} +4 -4
  160. package/dist/{LabelvaluerangebarWidget-Bs9locqu.js.map → LabelvaluerangebarWidget-Dhyng4-n.js.map} +1 -1
  161. package/dist/Layout-DDktMnzb.cjs +2 -0
  162. package/dist/{Layout-kOQnicRa.cjs.map → Layout-DDktMnzb.cjs.map} +1 -1
  163. package/dist/{Layout-1z8iJV5-.js → Layout-mWR35VAD.js} +2 -2
  164. package/dist/{Layout-1z8iJV5-.js.map → Layout-mWR35VAD.js.map} +1 -1
  165. package/dist/LedWidget-CCQWCw80.cjs +2 -0
  166. package/dist/LedWidget-CCQWCw80.cjs.map +1 -0
  167. package/dist/{LedWidget-BN8IgAxJ.js → LedWidget-D8cq4pUv.js} +6 -6
  168. package/dist/LedWidget-D8cq4pUv.js.map +1 -0
  169. package/dist/{LimitsbarWidget-Co5GAHro.cjs → LimitsbarWidget-D4O0LWuC.cjs} +2 -2
  170. package/dist/{LimitsbarWidget-Co5GAHro.cjs.map → LimitsbarWidget-D4O0LWuC.cjs.map} +1 -1
  171. package/dist/{LimitsbarWidget-BxxoKTjp.js → LimitsbarWidget-VGJnDuVM.js} +2 -2
  172. package/dist/{LimitsbarWidget-BxxoKTjp.js.map → LimitsbarWidget-VGJnDuVM.js.map} +1 -1
  173. package/dist/{LimitscolorWidget-BpTcgqRC.cjs → LimitscolorWidget-BvxsopUs.cjs} +2 -2
  174. package/dist/{LimitscolorWidget-BpTcgqRC.cjs.map → LimitscolorWidget-BvxsopUs.cjs.map} +1 -1
  175. package/dist/{LimitscolorWidget-DFDwf4In.js → LimitscolorWidget-CG6Pqi12.js} +2 -2
  176. package/dist/{LimitscolorWidget-DFDwf4In.js.map → LimitscolorWidget-CG6Pqi12.js.map} +1 -1
  177. package/dist/{LimitscolumnWidget-CdBh2mJu.js → LimitscolumnWidget-DjovQdiT.js} +2 -2
  178. package/dist/{LimitscolumnWidget-CdBh2mJu.js.map → LimitscolumnWidget-DjovQdiT.js.map} +1 -1
  179. package/dist/{LimitscolumnWidget-CqJJKDzz.cjs → LimitscolumnWidget-Z9JnMlDS.cjs} +2 -2
  180. package/dist/{LimitscolumnWidget-CqJJKDzz.cjs.map → LimitscolumnWidget-Z9JnMlDS.cjs.map} +1 -1
  181. package/dist/LinegraphWidget-B_ECNLzU.cjs +2 -0
  182. package/dist/LinegraphWidget-B_ECNLzU.cjs.map +1 -0
  183. package/dist/{LinegraphWidget-jXksfbPb.js → LinegraphWidget-DSWAhXgZ.js} +13 -13
  184. package/dist/LinegraphWidget-DSWAhXgZ.js.map +1 -0
  185. package/dist/{MatrixbycolumnsWidget-DCwxPjwS.js → MatrixbycolumnsWidget-C3cuhRxz.js} +4 -4
  186. package/dist/{MatrixbycolumnsWidget-DCwxPjwS.js.map → MatrixbycolumnsWidget-C3cuhRxz.js.map} +1 -1
  187. package/dist/MatrixbycolumnsWidget-CPFzRQN5.cjs +2 -0
  188. package/dist/{MatrixbycolumnsWidget-DxRhvPGv.cjs.map → MatrixbycolumnsWidget-CPFzRQN5.cjs.map} +1 -1
  189. package/dist/{MicroservicesTab-DGaTcj-y.cjs → MicroservicesTab-BGgwT56M.cjs} +2 -2
  190. package/dist/{MicroservicesTab-DGaTcj-y.cjs.map → MicroservicesTab-BGgwT56M.cjs.map} +1 -1
  191. package/dist/{MicroservicesTab-B-SdMwek.js → MicroservicesTab-Dbp02UlV.js} +4 -4
  192. package/dist/{MicroservicesTab-B-SdMwek.js.map → MicroservicesTab-Dbp02UlV.js.map} +1 -1
  193. package/dist/Openc3Screen-BP2oW88G.cjs +6 -0
  194. package/dist/Openc3Screen-BP2oW88G.cjs.map +1 -0
  195. package/dist/{Openc3Screen-BZN0Wtrm.js → Openc3Screen-CkdegNDJ.js} +438 -310
  196. package/dist/Openc3Screen-CkdegNDJ.js.map +1 -0
  197. package/dist/{OutputDialog-CxKDhrg6.cjs → OutputDialog-2CmOBAEE.cjs} +2 -2
  198. package/dist/{OutputDialog-CxKDhrg6.cjs.map → OutputDialog-2CmOBAEE.cjs.map} +1 -1
  199. package/dist/{OutputDialog-CcSp-Uqo.js → OutputDialog-M5Xc_DqH.js} +12 -11
  200. package/dist/{OutputDialog-CcSp-Uqo.js.map → OutputDialog-M5Xc_DqH.js.map} +1 -1
  201. package/dist/PackagesTab-Dwp6g8W0.cjs +2 -0
  202. package/dist/{PackagesTab-B4V2n4io.cjs.map → PackagesTab-Dwp6g8W0.cjs.map} +1 -1
  203. package/dist/{PackagesTab-Dx25CfF0.js → PackagesTab-HQCOIGZK.js} +30 -24
  204. package/dist/{PackagesTab-Dx25CfF0.js.map → PackagesTab-HQCOIGZK.js.map} +1 -1
  205. package/dist/PluginsTab-COKDXShE.cjs +6 -0
  206. package/dist/PluginsTab-COKDXShE.cjs.map +1 -0
  207. package/dist/PluginsTab-CZApRILr.js +1288 -0
  208. package/dist/PluginsTab-CZApRILr.js.map +1 -0
  209. package/dist/{ProgressbarWidget-C0AkbX_o.cjs → ProgressbarWidget-BADSYuUN.cjs} +2 -2
  210. package/dist/{ProgressbarWidget-C0AkbX_o.cjs.map → ProgressbarWidget-BADSYuUN.cjs.map} +1 -1
  211. package/dist/{ProgressbarWidget-Cdu5nJC3.js → ProgressbarWidget-oCgAEFBO.js} +2 -2
  212. package/dist/{ProgressbarWidget-Cdu5nJC3.js.map → ProgressbarWidget-oCgAEFBO.js.map} +1 -1
  213. package/dist/{RadiobuttonWidget-DslmJO31.cjs → RadiobuttonWidget-Bklx2_Au.cjs} +2 -2
  214. package/dist/{RadiobuttonWidget-DslmJO31.cjs.map → RadiobuttonWidget-Bklx2_Au.cjs.map} +1 -1
  215. package/dist/{RadiobuttonWidget-CZZGbvdG.js → RadiobuttonWidget-D4Dak3lc.js} +2 -2
  216. package/dist/{RadiobuttonWidget-CZZGbvdG.js.map → RadiobuttonWidget-D4Dak3lc.js.map} +1 -1
  217. package/dist/{RadiogroupWidget-CQN3v8Ip.js → RadiogroupWidget-Dbe9T4fp.js} +2 -2
  218. package/dist/{RadiogroupWidget-CQN3v8Ip.js.map → RadiogroupWidget-Dbe9T4fp.js.map} +1 -1
  219. package/dist/{RadiogroupWidget-DKgBAR9E.cjs → RadiogroupWidget-Z2S2tgjG.cjs} +2 -2
  220. package/dist/{RadiogroupWidget-DKgBAR9E.cjs.map → RadiogroupWidget-Z2S2tgjG.cjs.map} +1 -1
  221. package/dist/{RangebarWidget-Tq80I5zA.cjs → RangebarWidget-C0TpxFDi.cjs} +2 -2
  222. package/dist/{RangebarWidget-Tq80I5zA.cjs.map → RangebarWidget-C0TpxFDi.cjs.map} +1 -1
  223. package/dist/{RangebarWidget-dZN9WjoZ.js → RangebarWidget-CIVrgqrW.js} +2 -2
  224. package/dist/{RangebarWidget-dZN9WjoZ.js.map → RangebarWidget-CIVrgqrW.js.map} +1 -1
  225. package/dist/{RedisTab-CkSwEwTZ.js → RedisTab-B8U-vEQZ.js} +19 -16
  226. package/dist/{RedisTab-CkSwEwTZ.js.map → RedisTab-B8U-vEQZ.js.map} +1 -1
  227. package/dist/RedisTab-cgicWb81.cjs +2 -0
  228. package/dist/{RedisTab-CdiSo-CO.cjs.map → RedisTab-cgicWb81.cjs.map} +1 -1
  229. package/dist/{RollupWidget-CHdZAUCb.cjs → RollupWidget-BEDf-mfg.cjs} +2 -2
  230. package/dist/{RollupWidget-CHdZAUCb.cjs.map → RollupWidget-BEDf-mfg.cjs.map} +1 -1
  231. package/dist/{RollupWidget-i9DnNJl6.js → RollupWidget-CH1-XNLV.js} +2 -2
  232. package/dist/{RollupWidget-i9DnNJl6.js.map → RollupWidget-CH1-XNLV.js.map} +1 -1
  233. package/dist/{RoutersTab-Cp8wM-mS.cjs → RoutersTab-BA-KlYIm.cjs} +2 -2
  234. package/dist/{RoutersTab-Cp8wM-mS.cjs.map → RoutersTab-BA-KlYIm.cjs.map} +1 -1
  235. package/dist/{RoutersTab-DiYEI1Nq.js → RoutersTab-WKa6K7B8.js} +3 -3
  236. package/dist/{RoutersTab-DiYEI1Nq.js.map → RoutersTab-WKa6K7B8.js.map} +1 -1
  237. package/dist/{ScriptChooser-Cua8ObYv.js → ScriptChooser-B5TkGuZ4.js} +2 -2
  238. package/dist/{ScriptChooser-Cua8ObYv.js.map → ScriptChooser-B5TkGuZ4.js.map} +1 -1
  239. package/dist/{ScriptChooser-BnTP6ucF.cjs → ScriptChooser-LsboGSgh.cjs} +2 -2
  240. package/dist/{ScriptChooser-BnTP6ucF.cjs.map → ScriptChooser-LsboGSgh.cjs.map} +1 -1
  241. package/dist/{ScrollwindowWidget-54GU96Ve.js → ScrollwindowWidget-BwFG6Wn8.js} +15 -15
  242. package/dist/ScrollwindowWidget-BwFG6Wn8.js.map +1 -0
  243. package/dist/ScrollwindowWidget-DWxDmpFB.cjs +2 -0
  244. package/dist/ScrollwindowWidget-DWxDmpFB.cjs.map +1 -0
  245. package/dist/{SecretsTab-DY16usGc.cjs → SecretsTab-DKX5gLH_.cjs} +2 -2
  246. package/dist/{SecretsTab-DY16usGc.cjs.map → SecretsTab-DKX5gLH_.cjs.map} +1 -1
  247. package/dist/{SecretsTab-uWRVI1EE.js → SecretsTab-Vtvbb_1U.js} +7 -5
  248. package/dist/{SecretsTab-uWRVI1EE.js.map → SecretsTab-Vtvbb_1U.js.map} +1 -1
  249. package/dist/SettingsTab-Ch52foLm.cjs +3 -0
  250. package/dist/SettingsTab-Ch52foLm.cjs.map +1 -0
  251. package/dist/SettingsTab-DilFIQ3K.js +1817 -0
  252. package/dist/SettingsTab-DilFIQ3K.js.map +1 -0
  253. package/dist/{SignalWidget-COL8kXSJ.cjs → SignalWidget-1WqQFVq9.cjs} +2 -2
  254. package/dist/{SignalWidget-COL8kXSJ.cjs.map → SignalWidget-1WqQFVq9.cjs.map} +1 -1
  255. package/dist/{SignalWidget-B_kA9eCJ.js → SignalWidget-Gz2gHrUm.js} +2 -2
  256. package/dist/{SignalWidget-B_kA9eCJ.js.map → SignalWidget-Gz2gHrUm.js.map} +1 -1
  257. package/dist/{SimpleTextDialog-BWUqPlTv.cjs → SimpleTextDialog-BwOVWhRY.cjs} +2 -2
  258. package/dist/{SimpleTextDialog-BWUqPlTv.cjs.map → SimpleTextDialog-BwOVWhRY.cjs.map} +1 -1
  259. package/dist/{SimpleTextDialog-BulqUrdH.js → SimpleTextDialog-Cmtrmt79.js} +10 -9
  260. package/dist/{SimpleTextDialog-BulqUrdH.js.map → SimpleTextDialog-Cmtrmt79.js.map} +1 -1
  261. package/dist/{SpacerWidget-XoMPHak8.js → SpacerWidget-Bg7VDB0k.js} +2 -2
  262. package/dist/{SpacerWidget-XoMPHak8.js.map → SpacerWidget-Bg7VDB0k.js.map} +1 -1
  263. package/dist/{SpacerWidget-D_Ya_b1j.cjs → SpacerWidget-Bzp3aI40.cjs} +2 -2
  264. package/dist/{SpacerWidget-D_Ya_b1j.cjs.map → SpacerWidget-Bzp3aI40.cjs.map} +1 -1
  265. package/dist/{SparklineWidget-DQNsvEj9.js → SparklineWidget-D_b5rfJv.js} +4 -4
  266. package/dist/{SparklineWidget-DQNsvEj9.js.map → SparklineWidget-D_b5rfJv.js.map} +1 -1
  267. package/dist/{SparklineWidget-CRzXTS5z.cjs → SparklineWidget-kMWjVDrm.cjs} +2 -2
  268. package/dist/{SparklineWidget-CRzXTS5z.cjs.map → SparklineWidget-kMWjVDrm.cjs.map} +1 -1
  269. package/dist/{TabbookWidget-_HVA72t5.js → TabbookWidget-C30f9B6z.js} +2 -2
  270. package/dist/{TabbookWidget-_HVA72t5.js.map → TabbookWidget-C30f9B6z.js.map} +1 -1
  271. package/dist/{TabbookWidget-Bh-GDBXg.cjs → TabbookWidget-DlVrU3wK.cjs} +2 -2
  272. package/dist/{TabbookWidget-Bh-GDBXg.cjs.map → TabbookWidget-DlVrU3wK.cjs.map} +1 -1
  273. package/dist/{TargetsTab-BfoRYnTP.js → TargetsTab-CEPId9dL.js} +5 -4
  274. package/dist/{TargetsTab-BfoRYnTP.js.map → TargetsTab-CEPId9dL.js.map} +1 -1
  275. package/dist/{TargetsTab-CGE-jQAz.cjs → TargetsTab-uqjueXlq.cjs} +2 -2
  276. package/dist/{TargetsTab-CGE-jQAz.cjs.map → TargetsTab-uqjueXlq.cjs.map} +1 -1
  277. package/dist/{TextBoxDialog-DWt30tB8.cjs → TextBoxDialog--uIDsNPU.cjs} +2 -2
  278. package/dist/{TextBoxDialog-DWt30tB8.cjs.map → TextBoxDialog--uIDsNPU.cjs.map} +1 -1
  279. package/dist/{TextBoxDialog-C60jmnyN.js → TextBoxDialog-BlZ6MBoW.js} +4 -3
  280. package/dist/{TextBoxDialog-C60jmnyN.js.map → TextBoxDialog-BlZ6MBoW.js.map} +1 -1
  281. package/dist/{TextboxWidget-uDptDK_z.cjs → TextboxWidget-BJka_3dT.cjs} +2 -2
  282. package/dist/{TextboxWidget-uDptDK_z.cjs.map → TextboxWidget-BJka_3dT.cjs.map} +1 -1
  283. package/dist/{TextboxWidget-0JXn4bMH.js → TextboxWidget-CDqxsgys.js} +4 -4
  284. package/dist/{TextboxWidget-0JXn4bMH.js.map → TextboxWidget-CDqxsgys.js.map} +1 -1
  285. package/dist/{TextfieldWidget-B0FCskrL.cjs → TextfieldWidget-C7_48W7n.cjs} +2 -2
  286. package/dist/{TextfieldWidget-B0FCskrL.cjs.map → TextfieldWidget-C7_48W7n.cjs.map} +1 -1
  287. package/dist/{TextfieldWidget-BXr9MkVW.js → TextfieldWidget-CAyjKJs6.js} +2 -2
  288. package/dist/{TextfieldWidget-BXr9MkVW.js.map → TextfieldWidget-CAyjKJs6.js.map} +1 -1
  289. package/dist/{TimeWidget-C67uwMGH.js → TimeWidget-BQsP0G2X.js} +2 -2
  290. package/dist/{TimeWidget-C67uwMGH.js.map → TimeWidget-BQsP0G2X.js.map} +1 -1
  291. package/dist/{TimeWidget-q5tUvHC6.cjs → TimeWidget-WPWiADCI.cjs} +2 -2
  292. package/dist/{TimeWidget-q5tUvHC6.cjs.map → TimeWidget-WPWiADCI.cjs.map} +1 -1
  293. package/dist/{TitleWidget-t_YLgUMB.js → TitleWidget-DXVba53S.js} +2 -2
  294. package/dist/{TitleWidget-t_YLgUMB.js.map → TitleWidget-DXVba53S.js.map} +1 -1
  295. package/dist/{TitleWidget-REsd7MqR.cjs → TitleWidget-DavRJ5B5.cjs} +2 -2
  296. package/dist/{TitleWidget-REsd7MqR.cjs.map → TitleWidget-DavRJ5B5.cjs.map} +1 -1
  297. package/dist/{ToolsTab-DKYeIlXu.js → ToolsTab-CSmjz1H7.js} +6 -5
  298. package/dist/{ToolsTab-DKYeIlXu.js.map → ToolsTab-CSmjz1H7.js.map} +1 -1
  299. package/dist/{ToolsTab-CGztf9_j.cjs → ToolsTab-DUwXt5hn.cjs} +3 -3
  300. package/dist/{ToolsTab-CGztf9_j.cjs.map → ToolsTab-DUwXt5hn.cjs.map} +1 -1
  301. package/dist/TopBar-C5lQcY1W.cjs +2 -0
  302. package/dist/{TopBar-B0UcAtIW.cjs.map → TopBar-C5lQcY1W.cjs.map} +1 -1
  303. package/dist/{TopBar-BrCfgCxc.js → TopBar-D_2lT9RB.js} +14 -12
  304. package/dist/{TopBar-BrCfgCxc.js.map → TopBar-D_2lT9RB.js.map} +1 -1
  305. package/dist/UpgradeToEnterpriseDialog-BHDDrj0t.cjs +2 -0
  306. package/dist/{UpgradeToEnterpriseDialog-DJ3oth3I.cjs.map → UpgradeToEnterpriseDialog-BHDDrj0t.cjs.map} +1 -1
  307. package/dist/{UpgradeToEnterpriseDialog-CGyR2v7U.js → UpgradeToEnterpriseDialog-Cvt5MMTj.js} +19 -16
  308. package/dist/{UpgradeToEnterpriseDialog-CGyR2v7U.js.map → UpgradeToEnterpriseDialog-Cvt5MMTj.js.map} +1 -1
  309. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js} +12491 -12383
  310. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js.map +1 -0
  311. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs +1498 -0
  312. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs.map +1 -0
  313. package/dist/VWidget-C7V6pKTg.cjs +2 -0
  314. package/dist/VWidget-C7V6pKTg.cjs.map +1 -0
  315. package/dist/{VWidget-j2GIGGSX.js → VWidget-CFTCukCL.js} +16 -10
  316. package/dist/VWidget-CFTCukCL.js.map +1 -0
  317. package/dist/{ValueWidget-CjZeSiPQ.cjs → ValueWidget-5ulSOrPw.cjs} +2 -2
  318. package/dist/{ValueWidget-CjZeSiPQ.cjs.map → ValueWidget-5ulSOrPw.cjs.map} +1 -1
  319. package/dist/{ValueWidget-3jNtnh5i.js → ValueWidget-B-TWLPdM.js} +4 -4
  320. package/dist/{ValueWidget-3jNtnh5i.js.map → ValueWidget-B-TWLPdM.js.map} +1 -1
  321. package/dist/{ValuelimitsbarWidget-CkLbRP8P.cjs → ValuelimitsbarWidget-CTFVDwcL.cjs} +2 -2
  322. package/dist/{ValuelimitsbarWidget-CkLbRP8P.cjs.map → ValuelimitsbarWidget-CTFVDwcL.cjs.map} +1 -1
  323. package/dist/{ValuelimitsbarWidget-JSceOzGS.js → ValuelimitsbarWidget-jsDXdPdC.js} +4 -4
  324. package/dist/{ValuelimitsbarWidget-JSceOzGS.js.map → ValuelimitsbarWidget-jsDXdPdC.js.map} +1 -1
  325. package/dist/{ValuelimitscolumnWidget-DpU4BoB7.cjs → ValuelimitscolumnWidget-Du3Baz6G.cjs} +2 -2
  326. package/dist/{ValuelimitscolumnWidget-DpU4BoB7.cjs.map → ValuelimitscolumnWidget-Du3Baz6G.cjs.map} +1 -1
  327. package/dist/{ValuelimitscolumnWidget-HR1TNHwQ.js → ValuelimitscolumnWidget-I-uwnXM2.js} +4 -4
  328. package/dist/{ValuelimitscolumnWidget-HR1TNHwQ.js.map → ValuelimitscolumnWidget-I-uwnXM2.js.map} +1 -1
  329. package/dist/{ValuerangebarWidget-CpZYmUl_.cjs → ValuerangebarWidget-BjXDCLm3.cjs} +2 -2
  330. package/dist/{ValuerangebarWidget-CpZYmUl_.cjs.map → ValuerangebarWidget-BjXDCLm3.cjs.map} +1 -1
  331. package/dist/{ValuerangebarWidget-DnZrho8S.js → ValuerangebarWidget-OyhSTScu.js} +4 -4
  332. package/dist/{ValuerangebarWidget-DnZrho8S.js.map → ValuerangebarWidget-OyhSTScu.js.map} +1 -1
  333. package/dist/VerticalWidget-CKDTGmhp.cjs +2 -0
  334. package/dist/{VerticalWidget-CcJMMaK_.cjs.map → VerticalWidget-CKDTGmhp.cjs.map} +1 -1
  335. package/dist/{VerticalWidget-DJvoxqLE.js → VerticalWidget-CkFbX1Gq.js} +13 -13
  336. package/dist/{VerticalWidget-DJvoxqLE.js.map → VerticalWidget-CkFbX1Gq.js.map} +1 -1
  337. package/dist/VerticalboxWidget-D09UbA0I.cjs +2 -0
  338. package/dist/{VerticalboxWidget-CJR_mOLa.cjs.map → VerticalboxWidget-D09UbA0I.cjs.map} +1 -1
  339. package/dist/{VerticalboxWidget-CYYyLBoO.js → VerticalboxWidget-FEQgPM9r.js} +13 -13
  340. package/dist/{VerticalboxWidget-CYYyLBoO.js.map → VerticalboxWidget-FEQgPM9r.js.map} +1 -1
  341. package/dist/{Widget-Bn_S-zBo.js → Widget-C3-TBgP7.js} +4 -4
  342. package/dist/Widget-C3-TBgP7.js.map +1 -0
  343. package/dist/{Widget-O7wkmc39.cjs → Widget-CSBtgNwA.cjs} +2 -2
  344. package/dist/{Widget-O7wkmc39.cjs.map → Widget-CSBtgNwA.cjs.map} +1 -1
  345. package/dist/components.cjs +3 -3
  346. package/dist/components.cjs.map +1 -1
  347. package/dist/components.js +257 -804
  348. package/dist/components.js.map +1 -1
  349. package/dist/icons.cjs.map +1 -1
  350. package/dist/icons.js.map +1 -1
  351. package/dist/{index-qCq0L4jN.js → index-DDjz5VQq.js} +345 -327
  352. package/dist/index-DDjz5VQq.js.map +1 -0
  353. package/dist/index-DZh4NjG5.cjs +7 -0
  354. package/dist/index-DZh4NjG5.cjs.map +1 -0
  355. package/dist/plugins.cjs +2 -2
  356. package/dist/plugins.cjs.map +1 -1
  357. package/dist/plugins.js +184 -175
  358. package/dist/plugins.js.map +1 -1
  359. package/dist/settings-BboN1VLt.cjs +2 -0
  360. package/dist/settings-BboN1VLt.cjs.map +1 -0
  361. package/dist/settings-spKii1fI.js +34 -0
  362. package/dist/settings-spKii1fI.js.map +1 -0
  363. package/dist/tools/admin.cjs +3 -3
  364. package/dist/tools/admin.cjs.map +1 -1
  365. package/dist/tools/admin.js +90 -59
  366. package/dist/tools/admin.js.map +1 -1
  367. package/dist/tools/base.cjs +1 -1
  368. package/dist/tools/base.cjs.map +1 -1
  369. package/dist/tools/base.js +530 -474
  370. package/dist/tools/base.js.map +1 -1
  371. package/dist/tools/calendar.cjs +1 -1
  372. package/dist/tools/calendar.js +1 -1
  373. package/dist/tools/scriptrunner.cjs +7 -7
  374. package/dist/tools/scriptrunner.cjs.map +1 -1
  375. package/dist/tools/scriptrunner.js +344 -293
  376. package/dist/tools/scriptrunner.js.map +1 -1
  377. package/dist/vue-common.css +1 -1
  378. package/dist/widgets.cjs +1 -1
  379. package/dist/widgets.js +63 -63
  380. package/package.json +14 -14
  381. package/dist/ArrayplotWidget-DC41cpv1.cjs +0 -2
  382. package/dist/ArrayplotWidget-DC41cpv1.cjs.map +0 -1
  383. package/dist/ArrayplotWidget-ntRLh6-B.js.map +0 -1
  384. package/dist/CriticalCmdDialog-7tOK2XQk.cjs +0 -2
  385. package/dist/DetailsDialog-BQE0TraI.js.map +0 -1
  386. package/dist/DetailsDialog-DmKpPDNn.cjs +0 -2
  387. package/dist/DetailsDialog-DmKpPDNn.cjs.map +0 -1
  388. package/dist/EventListDialog-CDcJcxy5.cjs +0 -2
  389. package/dist/Graph-DCihpnT0.js +0 -1853
  390. package/dist/Graph-DCihpnT0.js.map +0 -1
  391. package/dist/Graph-mSqImgca.cjs +0 -2
  392. package/dist/Graph-mSqImgca.cjs.map +0 -1
  393. package/dist/GraphWidget-CQjKAMPR.cjs +0 -2
  394. package/dist/HorizontalWidget--AkRJPlL.cjs +0 -2
  395. package/dist/HorizontalboxWidget-synL-Bar.cjs +0 -2
  396. package/dist/Layout-kOQnicRa.cjs +0 -2
  397. package/dist/LedWidget-BN8IgAxJ.js.map +0 -1
  398. package/dist/LedWidget-BUTbyEBi.cjs +0 -2
  399. package/dist/LedWidget-BUTbyEBi.cjs.map +0 -1
  400. package/dist/LinegraphWidget-Bay0EtbI.cjs +0 -2
  401. package/dist/LinegraphWidget-Bay0EtbI.cjs.map +0 -1
  402. package/dist/LinegraphWidget-jXksfbPb.js.map +0 -1
  403. package/dist/MatrixbycolumnsWidget-DxRhvPGv.cjs +0 -2
  404. package/dist/Openc3Screen-BZN0Wtrm.js.map +0 -1
  405. package/dist/Openc3Screen-dtpBWZdA.cjs +0 -5
  406. package/dist/Openc3Screen-dtpBWZdA.cjs.map +0 -1
  407. package/dist/PackagesTab-B4V2n4io.cjs +0 -2
  408. package/dist/PluginsTab-DHO1tK2S.cjs +0 -6
  409. package/dist/PluginsTab-DHO1tK2S.cjs.map +0 -1
  410. package/dist/PluginsTab-lHDR5v6S.js +0 -562
  411. package/dist/PluginsTab-lHDR5v6S.js.map +0 -1
  412. package/dist/RedisTab-CdiSo-CO.cjs +0 -2
  413. package/dist/ScrollwindowWidget-54GU96Ve.js.map +0 -1
  414. package/dist/ScrollwindowWidget-C5_X-KwQ.cjs +0 -2
  415. package/dist/ScrollwindowWidget-C5_X-KwQ.cjs.map +0 -1
  416. package/dist/SettingsTab-BVnr4OtU.js +0 -1445
  417. package/dist/SettingsTab-BVnr4OtU.js.map +0 -1
  418. package/dist/SettingsTab-BkwaDhYo.cjs +0 -3
  419. package/dist/SettingsTab-BkwaDhYo.cjs.map +0 -1
  420. package/dist/TopBar-B0UcAtIW.cjs +0 -2
  421. package/dist/UpgradeToEnterpriseDialog-DJ3oth3I.cjs +0 -2
  422. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C_HFbtFB.cjs +0 -1497
  423. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C_HFbtFB.cjs.map +0 -1
  424. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js.map +0 -1
  425. package/dist/VWidget-BMxLXtSO.cjs +0 -2
  426. package/dist/VWidget-BMxLXtSO.cjs.map +0 -1
  427. package/dist/VWidget-j2GIGGSX.js.map +0 -1
  428. package/dist/VerticalWidget-CcJMMaK_.cjs +0 -2
  429. package/dist/VerticalboxWidget-CJR_mOLa.cjs +0 -2
  430. package/dist/Widget-Bn_S-zBo.js.map +0 -1
  431. package/dist/index-DcL65Mqb.cjs +0 -7
  432. package/dist/index-DcL65Mqb.cjs.map +0 -1
  433. package/dist/index-qCq0L4jN.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import { G as s } from "./GraphWidget-cTVq29cY.js";
2
- import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js";
1
+ import { G as s } from "./GraphWidget-Ga0AEfrJ.js";
2
+ import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js";
3
3
  import { resolveComponent as o, createBlock as r, openBlock as a, normalizeStyle as n } from "vue";
4
4
  import { _ as p } from "./CustomIcon-h5X7369N.js";
5
- import { G as d } from "./Graph-DCihpnT0.js";
5
+ import { G as d } from "./Graph-BiU56Qj2.js";
6
6
  import "single-spa";
7
7
  const m = {
8
8
  components: {
@@ -13,11 +13,11 @@ const m = {
13
13
  function h(e, t, l, g, f, u) {
14
14
  const i = o("graph");
15
15
  return a(), r(i, {
16
- ref: "graph" + e.id,
17
16
  id: e.id,
17
+ ref: "graph" + e.id,
18
18
  state: e.state,
19
19
  "selected-graph-id": e.id,
20
- startTime: e.startTime,
20
+ "start-time": e.startTime,
21
21
  "seconds-graphed": e.secondsGraphed,
22
22
  "points-saved": e.pointsSaved,
23
23
  "points-graphed": e.pointsGraphed,
@@ -25,15 +25,15 @@ function h(e, t, l, g, f, u) {
25
25
  height: e.size.height,
26
26
  width: e.size.width,
27
27
  style: n(e.computedStyle),
28
- "time-zone": this.screenTimeZone,
29
- onPause: t[0] || (t[0] = () => e.state = "pause"),
30
- onStart: t[1] || (t[1] = () => e.state = "start"),
28
+ "time-zone": e.screenTimeZone,
31
29
  "hide-toolbar": "",
32
- "hide-overview": ""
33
- }, null, 8, ["id", "state", "selected-graph-id", "startTime", "seconds-graphed", "points-saved", "points-graphed", "initial-items", "height", "width", "style", "time-zone"]);
30
+ "hide-overview": "",
31
+ onPause: t[0] || (t[0] = () => e.state = "pause"),
32
+ onStart: t[1] || (t[1] = () => e.state = "start")
33
+ }, null, 8, ["id", "state", "selected-graph-id", "start-time", "seconds-graphed", "points-saved", "points-graphed", "initial-items", "height", "width", "style", "time-zone"]);
34
34
  }
35
- const T = /* @__PURE__ */ p(m, [["render", h]]);
35
+ const $ = /* @__PURE__ */ p(m, [["render", h]]);
36
36
  export {
37
- T as default
37
+ $ as default
38
38
  };
39
- //# sourceMappingURL=LinegraphWidget-jXksfbPb.js.map
39
+ //# sourceMappingURL=LinegraphWidget-DSWAhXgZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinegraphWidget-DSWAhXgZ.js","sources":["../src/widgets/LinegraphWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <graph\n :id=\"id\"\n :ref=\"'graph' + id\"\n :state=\"state\"\n :selected-graph-id=\"id\"\n :start-time=\"startTime\"\n :seconds-graphed=\"secondsGraphed\"\n :points-saved=\"pointsSaved\"\n :points-graphed=\"pointsGraphed\"\n :initial-items=\"items\"\n :height=\"size.height\"\n :width=\"size.width\"\n :style=\"computedStyle\"\n :time-zone=\"screenTimeZone\"\n hide-toolbar\n hide-overview\n @pause=\"() => (state = 'pause')\"\n @start=\"() => (state = 'start')\"\n />\n</template>\n\n<script>\nimport GraphWidget from './GraphWidget'\nimport { Graph } from '@/components'\n\nexport default {\n components: {\n Graph,\n },\n mixins: [GraphWidget],\n}\n</script>\n"],"names":["_sfc_main","Graph","GraphWidget","_createBlock","_component_graph","_ctx"],"mappings":";;;;;;AAgDA,MAAKA,IAAU;AAAA,EACb,YAAY;AAAA,IACV,OAAAC;AAAA;EAEF,QAAQ,CAACC,CAAW;AACtB;;;cA9BEC,EAkBEC,GAAA;AAAA,IAjBC,IAAIC,EAAA;AAAA,IACJ,eAAeA,EAAA;AAAA,IACf,OAAOA,EAAA;AAAA,IACP,qBAAmBA,EAAA;AAAA,IACnB,cAAYA,EAAA;AAAA,IACZ,mBAAiBA,EAAA;AAAA,IACjB,gBAAcA,EAAA;AAAA,IACd,kBAAgBA,EAAA;AAAA,IAChB,iBAAeA,EAAA;AAAA,IACf,QAAQA,EAAA,KAAK;AAAA,IACb,OAAOA,EAAA,KAAK;AAAA,IACZ,SAAOA,EAAA,aAAa;AAAA,IACpB,aAAWA,EAAA;AAAA,IACZ,gBAAA;AAAA,IACA,iBAAA;AAAA,IACC,+BAAcA,EAAA,QAAK;AAAA,IACnB,+BAAcA,EAAA,QAAK;AAAA;;;"}
@@ -1,5 +1,5 @@
1
- import { L as f } from "./Layout-1z8iJV5-.js";
2
- import { _ as d } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js";
1
+ import { L as f } from "./Layout-mWR35VAD.js";
2
+ import { _ as d } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js";
3
3
  import { createElementBlock as n, openBlock as t, normalizeStyle as h, Fragment as o, renderList as i, createBlock as g, resolveDynamicComponent as y, mergeProps as k } from "vue";
4
4
  import { _ } from "./CustomIcon-h5X7369N.js";
5
5
  const b = {
@@ -17,7 +17,7 @@ const b = {
17
17
  let r = this.parameters[1];
18
18
  this.widgets.forEach((a) => {
19
19
  a.settings.find(
20
- (s) => s[0] === "MARGIN" || s[0] === "RAW" && s[1].toUpperCase().includes("MARGIN")
20
+ (s) => s[0] === "MARGIN" || s[0].startsWith("RAW") && s[1].toUpperCase().includes("MARGIN")
21
21
  ) === void 0 && a.settings.push(["MARGIN", r]);
22
22
  });
23
23
  }
@@ -53,4 +53,4 @@ const v = /* @__PURE__ */ _(b, [["render", A]]);
53
53
  export {
54
54
  v as default
55
55
  };
56
- //# sourceMappingURL=MatrixbycolumnsWidget-DCwxPjwS.js.map
56
+ //# sourceMappingURL=MatrixbycolumnsWidget-C3cuhRxz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MatrixbycolumnsWidget-DCwxPjwS.js","sources":["../src/widgets/MatrixbycolumnsWidget.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 2022, 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 <table :style=\"computedStyle\" role=\"presentation\">\n <tr v-for=\"(chunk, rindex) in widgetChunks\" :key=\"'r' + rindex\">\n <td v-for=\"(widget, cindex) in chunk\" :key=\"'c' + cindex\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </td>\n </tr>\n </table>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport _ from 'lodash'\nexport default {\n mixins: [Layout],\n computed: {\n columns() {\n return parseInt(this.parameters[0])\n },\n widgetChunks() {\n return _.chunk(this.widgets, this.columns)\n },\n },\n created: function () {\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0] === 'RAW' &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_normalizeStyle","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":";;;;AA+CA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,UAAU;AACR,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACpC;AAAA,IACA,eAAe;AACb,aAAOC,EAAE,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,IAC3C;AAAA;EAEF,SAAS,WAAY;AACnB,QAAI,KAAK,WAAW,CAAC,GAAG;AACtB,UAAIC,IAAS,KAAK,WAAW,CAAC;AAC9B,WAAK,QAAQ,QAAQ,CAACC,MAAW;AAO/B,QANcA,EAAO,SAAS;AAAA,UAC5B,CAACC,MACCA,EAAQ,CAAC,MAAM,YACdA,EAAQ,CAAC,MAAM,SACdA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ;AAAA,QAChD,MACc,UACZD,EAAO,SAAS,KAAK,CAAC,UAAUD,CAAM,CAAC;AAAA,MAE3C,CAAC;AAAA,IACH;AAAA,EACF;AACF;;cAlDEG,EAkBQ,SAAA;AAAA,IAlBA,OAvBVC,EAuBiBC,EAAA,aAAa;AAAA,IAAE,MAAK;AAAA;KACjCC,EAAA,EAAA,GAAAH,EAgBKI,SAxCTC,EAwBkCC,EAAA,cAxBlC,CAwBgBC,GAAOC,YAAnBR,EAgBK,MAAA;AAAA,MAhBwC,WAAWQ;AAAA;OACtDL,EAAA,EAAA,GAAAH,EAcKI,SAvCXC,EAyBqCE,GAzBrC,CAyBkBT,GAAQW,YAApBT,EAcK,MAAA;AAAA,QAdkC,WAAWS;AAAA;cAChDC,EA1BRC,EA4Beb,EAAO,IAAI,GAFlBc,EAYE,EAtCV,SAAA,MA2BkBV,EAAA,WAAS;AAAA,UAEhB,QAAQJ,EAAO;AAAA,UACf,YAAYA,EAAO;AAAA,UACnB,UAAUA,EAAO;AAAA,UACjB,iBAAeI,EAAA;AAAA,UACf,oBAAkBA,EAAA;AAAA,UAClB,SAASJ,EAAO;AAAA,UAChB,MAAMA,EAAO;AAAA,UACb,MAAMA,EAAO;AAAA,UACb,eAAaA,EAAO;AAAA;;;;;;"}
1
+ {"version":3,"file":"MatrixbycolumnsWidget-C3cuhRxz.js","sources":["../src/widgets/MatrixbycolumnsWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <table :style=\"computedStyle\" role=\"presentation\">\n <tr v-for=\"(chunk, rindex) in widgetChunks\" :key=\"'r' + rindex\">\n <td v-for=\"(widget, cindex) in chunk\" :key=\"'c' + cindex\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </td>\n </tr>\n </table>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport _ from 'lodash'\nexport default {\n mixins: [Layout],\n computed: {\n columns() {\n return parseInt(this.parameters[0])\n },\n widgetChunks() {\n return _.chunk(this.widgets, this.columns)\n },\n },\n created: function () {\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":";;;;AA+CA,MAAKA,IAAU;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,UAAU;AAAA,IACR,UAAU;AACR,aAAO,SAAS,KAAK,WAAW,CAAC,CAAC;AAAA,IACpC;AAAA,IACA,eAAe;AACb,aAAOC,EAAE,MAAM,KAAK,SAAS,KAAK,OAAO;AAAA,IAC3C;AAAA;EAEF,SAAS,WAAY;AACnB,QAAI,KAAK,WAAW,CAAC,GAAG;AACtB,UAAIC,IAAS,KAAK,WAAW,CAAC;AAC9B,WAAK,QAAQ,QAAQ,CAACC,MAAW;AAO/B,QANcA,EAAO,SAAS;AAAA,UAC5B,CAACC,MACCA,EAAQ,CAAC,MAAM,YACdA,EAAQ,CAAC,EAAE,WAAW,KAAK,KAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ;AAAA,QAChD,MACc,UACZD,EAAO,SAAS,KAAK,CAAC,UAAUD,CAAM,CAAC;AAAA,MAE3C,CAAC;AAAA,IACH;AAAA,EACF;AACF;;cAlDEG,EAkBQ,SAAA;AAAA,IAlBA,SAAOC,EAAA,aAAa;AAAA,IAAE,MAAK;AAAA;KACjCC,EAAA,EAAA,GAAAF,EAgBKG,GAAA,MAAAC,EAhByBC,EAAA,cAAY,CAA9BC,GAAOC,YAAnBP,EAgBK,MAAA;AAAA,MAhBwC,WAAWO;AAAA;OACtDL,EAAA,EAAA,GAAAF,EAcKG,GAAA,MAAAC,EAd0BE,GAAK,CAAxBR,GAAQU,YAApBR,EAcK,MAAA;AAAA,QAdkC,WAAWQ;AAAA;SAChDN,KAAAO,EAYEC,EAVKZ,EAAO,IAAI,GAFlBa,EAYE,iBAXQV,EAAA,WAAS;AAAA,UAEhB,QAAQH,EAAO;AAAA,UACf,YAAYA,EAAO;AAAA,UACnB,UAAUA,EAAO;AAAA,UACjB,iBAAeG,EAAA;AAAA,UACf,oBAAkBA,EAAA;AAAA,UAClB,SAASH,EAAO;AAAA,UAChB,MAAMA,EAAO;AAAA,UACb,MAAMA,EAAO;AAAA,UACb,eAAaA,EAAO;AAAA;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./Layout-DDktMnzb.cjs"),m=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs"),e=require("vue"),p=require("./CustomIcon-Bop2mEnu.cjs"),d={mixins:[u.Layout],computed:{columns(){return parseInt(this.parameters[0])},widgetChunks(){return m._.chunk(this.widgets,this.columns)}},created:function(){if(this.parameters[1]){let n=this.parameters[1];this.widgets.forEach(s=>{s.settings.find(r=>r[0]==="MARGIN"||r[0].startsWith("RAW")&&r[1].toUpperCase().includes("MARGIN"))===void 0&&s.settings.push(["MARGIN",n])})}}};function k(n,s,o,r,g,a){return e.openBlock(),e.createElementBlock("table",{style:e.normalizeStyle(n.computedStyle),role:"presentation"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.widgetChunks,(l,c)=>(e.openBlock(),e.createElementBlock("tr",{key:"r"+c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l,(t,i)=>(e.openBlock(),e.createElementBlock("td",{key:"c"+i},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.type),e.mergeProps({ref_for:!0},n.listeners,{target:t.target,parameters:t.parameters,settings:t.settings,"screen-values":n.screenValues,"screen-time-zone":n.screenTimeZone,widgets:t.widgets,name:t.name,line:t.line,"line-number":t.lineNumber}),null,16,["target","parameters","settings","screen-values","screen-time-zone","widgets","name","line","line-number"]))]))),128))]))),128))],4)}const f=p._export_sfc(d,[["render",k]]);exports.default=f;
2
+ //# sourceMappingURL=MatrixbycolumnsWidget-CPFzRQN5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MatrixbycolumnsWidget-DxRhvPGv.cjs","sources":["../src/widgets/MatrixbycolumnsWidget.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 2022, 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 <table :style=\"computedStyle\" role=\"presentation\">\n <tr v-for=\"(chunk, rindex) in widgetChunks\" :key=\"'r' + rindex\">\n <td v-for=\"(widget, cindex) in chunk\" :key=\"'c' + cindex\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </td>\n </tr>\n </table>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport _ from 'lodash'\nexport default {\n mixins: [Layout],\n computed: {\n columns() {\n return parseInt(this.parameters[0])\n },\n widgetChunks() {\n return _.chunk(this.widgets, this.columns)\n },\n },\n created: function () {\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0] === 'RAW' &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_normalizeStyle","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":"uRA+CKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,SAAU,CACR,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACpC,EACA,cAAe,CACb,OAAOC,EAAAA,EAAE,MAAM,KAAK,QAAS,KAAK,OAAO,CAC3C,GAEF,QAAS,UAAY,CACnB,GAAI,KAAK,WAAW,CAAC,EAAG,CACtB,IAAIC,EAAS,KAAK,WAAW,CAAC,EAC9B,KAAK,QAAQ,QAASC,GAAW,CACjBA,EAAO,SAAS,KAC3BC,GACCA,EAAQ,CAAC,IAAM,UACdA,EAAQ,CAAC,IAAM,OACdA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ,CAChD,IACc,QACZD,EAAO,SAAS,KAAK,CAAC,SAAUD,CAAM,CAAC,CAE3C,CAAC,CACH,CACF,CACF,+CAlDEG,EAAAA,mBAkBQ,QAAA,CAlBA,MAvBVC,EAAAA,eAuBiBC,EAAA,aAAa,EAAE,KAAK,kBACjCC,EAAAA,UAAA,EAAA,EAAAH,EAAAA,mBAgBKI,gBAxCTC,EAAAA,WAwBkCC,EAAA,aAxBlC,CAwBgBC,EAAOC,mBAAnBR,EAAAA,mBAgBK,KAAA,CAhBwC,QAAWQ,KACtDL,YAAA,EAAA,EAAAH,EAAAA,mBAcKI,EAAAA,cAvCXC,EAAAA,WAyBqCE,EAzBrC,CAyBkBT,EAAQW,mBAApBT,EAAAA,mBAcK,KAAA,CAdkC,QAAWS,mBAChDC,EAAAA,YA1BRC,EAAAA,wBA4Beb,EAAO,IAAI,EAFlBc,EAAAA,WAYE,CAtCV,QAAA,IA2BkBV,EAAA,UAAS,CAEhB,OAAQJ,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeI,EAAA,aACf,mBAAkBA,EAAA,eAClB,QAASJ,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO"}
1
+ {"version":3,"file":"MatrixbycolumnsWidget-CPFzRQN5.cjs","sources":["../src/widgets/MatrixbycolumnsWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <table :style=\"computedStyle\" role=\"presentation\">\n <tr v-for=\"(chunk, rindex) in widgetChunks\" :key=\"'r' + rindex\">\n <td v-for=\"(widget, cindex) in chunk\" :key=\"'c' + cindex\">\n <component\n v-bind=\"listeners\"\n :is=\"widget.type\"\n :target=\"widget.target\"\n :parameters=\"widget.parameters\"\n :settings=\"widget.settings\"\n :screen-values=\"screenValues\"\n :screen-time-zone=\"screenTimeZone\"\n :widgets=\"widget.widgets\"\n :name=\"widget.name\"\n :line=\"widget.line\"\n :line-number=\"widget.lineNumber\"\n />\n </td>\n </tr>\n </table>\n</template>\n\n<script>\nimport Layout from './Layout'\nimport _ from 'lodash'\nexport default {\n mixins: [Layout],\n computed: {\n columns() {\n return parseInt(this.parameters[0])\n },\n widgetChunks() {\n return _.chunk(this.widgets, this.columns)\n },\n },\n created: function () {\n if (this.parameters[1]) {\n let margin = this.parameters[1]\n this.widgets.forEach((widget) => {\n const found = widget.settings.find(\n (setting) =>\n setting[0] === 'MARGIN' ||\n (setting[0].startsWith('RAW') &&\n setting[1].toUpperCase().includes('MARGIN')),\n )\n if (found === undefined) {\n widget.settings.push(['MARGIN', margin])\n }\n })\n }\n },\n}\n</script>\n"],"names":["_sfc_main","Layout","_","margin","widget","setting","_createElementBlock","_ctx","_openBlock","_Fragment","_renderList","$options","chunk","rindex","cindex","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":"uRA+CKA,EAAU,CACb,OAAQ,CAACC,EAAAA,MAAM,EACf,SAAU,CACR,SAAU,CACR,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CACpC,EACA,cAAe,CACb,OAAOC,EAAAA,EAAE,MAAM,KAAK,QAAS,KAAK,OAAO,CAC3C,GAEF,QAAS,UAAY,CACnB,GAAI,KAAK,WAAW,CAAC,EAAG,CACtB,IAAIC,EAAS,KAAK,WAAW,CAAC,EAC9B,KAAK,QAAQ,QAASC,GAAW,CACjBA,EAAO,SAAS,KAC3BC,GACCA,EAAQ,CAAC,IAAM,UACdA,EAAQ,CAAC,EAAE,WAAW,KAAK,GAC1BA,EAAQ,CAAC,EAAE,YAAW,EAAG,SAAS,QAAQ,CAChD,IACc,QACZD,EAAO,SAAS,KAAK,CAAC,SAAUD,CAAM,CAAC,CAE3C,CAAC,CACH,CACF,CACF,+CAlDEG,EAAAA,mBAkBQ,QAAA,CAlBA,uBAAOC,EAAA,aAAa,EAAE,KAAK,kBACjCC,EAAAA,UAAA,EAAA,EAAAF,EAAAA,mBAgBKG,WAAA,KAAAC,EAAAA,WAhByBC,EAAA,aAAY,CAA9BC,EAAOC,mBAAnBP,EAAAA,mBAgBK,KAAA,CAhBwC,QAAWO,KACtDL,YAAA,EAAA,EAAAF,EAAAA,mBAcKG,EAAAA,SAAA,KAAAC,EAAAA,WAd0BE,EAAK,CAAxBR,EAAQU,mBAApBR,EAAAA,mBAcK,KAAA,CAdkC,QAAWQ,KAChDN,EAAAA,YAAAO,EAAAA,YAYEC,EAAAA,wBAVKZ,EAAO,IAAI,EAFlBa,EAAAA,WAYE,aAXQV,EAAA,UAAS,CAEhB,OAAQH,EAAO,OACf,WAAYA,EAAO,WACnB,SAAUA,EAAO,SACjB,gBAAeG,EAAA,aACf,mBAAkBA,EAAA,eAClB,QAASH,EAAO,QAChB,KAAMA,EAAO,KACb,KAAMA,EAAO,KACb,cAAaA,EAAO"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-C_HFbtFB.cjs"),e=require("vue"),y=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const k=require("./OutputDialog-CxKDhrg6.cjs"),T=require("./TextBoxDialog-DWt30tB8.cjs"),d=require("./format-B22VpiOS.cjs"),V={components:{OutputDialog:k.OutputDialog,TextBoxDialog:T.TextBoxDialog},data(){return{microservices:[],microservice_status:{},microservice_id:null,jsonContent:"",dialogTitle:"",showDialog:!1,showError:!1,alert:"",alertType:"success",showAlert:!1,updater:null}},mounted(){this.update(),this.updater=setInterval(()=>{this.update()},2e3)},beforeUnmount(){clearInterval(this.updater),this.updater=null},methods:{update:function(){c.li.get("/openc3-api/microservice_status/all").then(t=>{this.microservice_status=t.data}),c.li.get("/openc3-api/microservices/all").then(t=>{let i=[];for(const[r,l]of Object.entries(t.data))i.push(l);i.sort((r,l)=>r.name.localeCompare(l.name)),this.microservices=i})},startMicroservice:function(t){this.$dialog.confirm(`Are you sure you want to restart microservice: ${t}?`,{okText:"Start",cancelText:"Cancel"}).then(i=>{c.li.post(`/openc3-api/microservices/${t}/start`).then(r=>{this.alert=`Started ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},stopMicroservice:function(t){this.$dialog.confirm(`Are you sure you want to stop microservice: ${t}?`,{okText:"Stop",cancelText:"Cancel"}).then(i=>{c.li.post(`/openc3-api/microservices/${t}/stop`).then(r=>{this.alert=`Stopped ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},showMicroservice:function(t){c.li.get(`/openc3-api/microservices/${t}`).then(i=>{this.microservice_id=t,this.dialogTitle=t,this.jsonContent=JSON.stringify(i.data,null," "),this.showDialog=!0})},showMicroserviceError:function(t){this.dialogTitle=t;const i=this.microservice_status[t].error;this.jsonContent=JSON.stringify(i,null," "),this.showError=!0},formatDate(t){return d.format(d.toDate(parseInt(t)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},dialogCallback:function(t){if(this.showDialog=!1,t!==null){let i=JSON.parse(t),r="put",l=`/openc3-api/microservices/${this.microservice_id}`;i.name!==this.microservice_id&&(r="post",l="/openc3-api/microservices"),c.li[r](l,{data:{json:t}}).then(o=>{this.alert="Modified Microservice",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update()})}}}};function S(t,i,r,l,o,n){const h=e.resolveComponent("v-alert"),v=e.resolveComponent("v-list-item-title"),_=e.resolveComponent("v-list-item-subtitle"),a=e.resolveComponent("v-btn"),u=e.resolveComponent("v-list-item-icon"),g=e.resolveComponent("v-list-item"),f=e.resolveComponent("v-divider"),C=e.resolveComponent("v-list"),w=e.resolveComponent("output-dialog"),x=e.resolveComponent("text-box-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(h,{modelValue:o.showAlert,"onUpdate:modelValue":i[0]||(i[0]=s=>o.showAlert=s),dismissible:"",transition:"scale-transition",type:o.alertType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),e.createVNode(C,{class:"list","data-test":"microserviceList"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.microservices,s=>(e.openBlock(),e.createElementBlock("div",{key:s},[e.createVNode(g,null,{append:e.withCtx(()=>{var m;return[e.withDirectives(e.createVNode(a,{icon:"mdi-alert",variant:"text",onClick:p=>n.showMicroserviceError(s.name)},null,8,["onClick"]),[[e.vShow,(m=o.microservice_status[s.name])==null?void 0:m.error]]),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Start Microservice",icon:"mdi-play",variant:"text",onClick:p=>n.startMicroservice(s.name)},null,8,["onClick"])]),_:2},1024),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Stop Microservice",icon:"mdi-stop",variant:"text",onClick:p=>n.stopMicroservice(s.name)},null,8,["onClick"])]),_:2},1024),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Show Microservice Details",icon:"mdi-eye",variant:"text",onClick:p=>n.showMicroservice(s.name)},null,8,["onClick"])]),_:2},1024)]}),default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.name),1)]),_:2},1024),o.microservice_status[s.name]?(e.openBlock(),e.createBlock(_,{key:0},{default:e.withCtx(()=>[e.createTextVNode(" Updated: "+e.toDisplayString(n.formatDate(o.microservice_status[s.name].updated_at))+", State: "+e.toDisplayString(o.microservice_status[s.name].state)+", Enabled: "+e.toDisplayString(s.enabled===!1?"False":"True")+", Count: "+e.toDisplayString(o.microservice_status[s.name].count),1)]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(f)]))),128))]),_:1}),o.showDialog?(e.openBlock(),e.createBlock(w,{key:0,modelValue:o.showDialog,"onUpdate:modelValue":i[1]||(i[1]=s=>o.showDialog=s),content:o.jsonContent,type:"Microservice",name:o.dialogTitle,onSubmit:n.dialogCallback},null,8,["modelValue","content","name","onSubmit"])):e.createCommentVNode("",!0),o.showError?(e.openBlock(),e.createBlock(x,{key:1,modelValue:o.showError,"onUpdate:modelValue":i[2]||(i[2]=s=>o.showError=s),text:o.jsonContent,title:o.dialogTitle},null,8,["modelValue","text","title"])):e.createCommentVNode("",!0)])}const D=y._export_sfc(V,[["render",S],["__scopeId","data-v-61eec86a"]]);exports.default=D;
2
- //# sourceMappingURL=MicroservicesTab-DGaTcj-y.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs"),e=require("vue"),y=require("./CustomIcon-Bop2mEnu.cjs");require("single-spa");const k=require("./OutputDialog-2CmOBAEE.cjs"),T=require("./TextBoxDialog--uIDsNPU.cjs"),d=require("./format-B22VpiOS.cjs"),V={components:{OutputDialog:k.OutputDialog,TextBoxDialog:T.TextBoxDialog},data(){return{microservices:[],microservice_status:{},microservice_id:null,jsonContent:"",dialogTitle:"",showDialog:!1,showError:!1,alert:"",alertType:"success",showAlert:!1,updater:null}},mounted(){this.update(),this.updater=setInterval(()=>{this.update()},2e3)},beforeUnmount(){clearInterval(this.updater),this.updater=null},methods:{update:function(){c.ci.get("/openc3-api/microservice_status/all").then(t=>{this.microservice_status=t.data}),c.ci.get("/openc3-api/microservices/all").then(t=>{let i=[];for(const[r,l]of Object.entries(t.data))i.push(l);i.sort((r,l)=>r.name.localeCompare(l.name)),this.microservices=i})},startMicroservice:function(t){this.$dialog.confirm(`Are you sure you want to restart microservice: ${t}?`,{okText:"Start",cancelText:"Cancel"}).then(i=>{c.ci.post(`/openc3-api/microservices/${t}/start`).then(r=>{this.alert=`Started ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},stopMicroservice:function(t){this.$dialog.confirm(`Are you sure you want to stop microservice: ${t}?`,{okText:"Stop",cancelText:"Cancel"}).then(i=>{c.ci.post(`/openc3-api/microservices/${t}/stop`).then(r=>{this.alert=`Stopped ${t}`,this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3)}).then(()=>{this.update()})})},showMicroservice:function(t){c.ci.get(`/openc3-api/microservices/${t}`).then(i=>{this.microservice_id=t,this.dialogTitle=t,this.jsonContent=JSON.stringify(i.data,null," "),this.showDialog=!0})},showMicroserviceError:function(t){this.dialogTitle=t;const i=this.microservice_status[t].error;this.jsonContent=JSON.stringify(i,null," "),this.showError=!0},formatDate(t){return d.format(d.toDate(parseInt(t)/1e6),"yyyy-MM-dd HH:mm:ss.SSS")},dialogCallback:function(t){if(this.showDialog=!1,t!==null){let i=JSON.parse(t),r="put",l=`/openc3-api/microservices/${this.microservice_id}`;i.name!==this.microservice_id&&(r="post",l="/openc3-api/microservices"),c.ci[r](l,{data:{json:t}}).then(o=>{this.alert="Modified Microservice",this.alertType="success",this.showAlert=!0,setTimeout(()=>{this.showAlert=!1},5e3),this.update()})}}}};function S(t,i,r,l,o,n){const h=e.resolveComponent("v-alert"),v=e.resolveComponent("v-list-item-title"),_=e.resolveComponent("v-list-item-subtitle"),a=e.resolveComponent("v-btn"),u=e.resolveComponent("v-list-item-icon"),g=e.resolveComponent("v-list-item"),f=e.resolveComponent("v-divider"),C=e.resolveComponent("v-list"),w=e.resolveComponent("output-dialog"),x=e.resolveComponent("text-box-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(h,{modelValue:o.showAlert,"onUpdate:modelValue":i[0]||(i[0]=s=>o.showAlert=s),dismissible:"",transition:"scale-transition",type:o.alertType},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.alert),1)]),_:1},8,["modelValue","type"]),e.createVNode(C,{class:"list","data-test":"microserviceList"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.microservices,s=>(e.openBlock(),e.createElementBlock("div",{key:s},[e.createVNode(g,null,{append:e.withCtx(()=>{var m;return[e.withDirectives(e.createVNode(a,{icon:"mdi-alert",variant:"text",onClick:p=>n.showMicroserviceError(s.name)},null,8,["onClick"]),[[e.vShow,(m=o.microservice_status[s.name])==null?void 0:m.error]]),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Start Microservice",icon:"mdi-play",variant:"text",onClick:p=>n.startMicroservice(s.name)},null,8,["onClick"])]),_:2},1024),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Stop Microservice",icon:"mdi-stop",variant:"text",onClick:p=>n.stopMicroservice(s.name)},null,8,["onClick"])]),_:2},1024),e.createVNode(u,null,{default:e.withCtx(()=>[e.createVNode(a,{"aria-label":"Show Microservice Details",icon:"mdi-eye",variant:"text",onClick:p=>n.showMicroservice(s.name)},null,8,["onClick"])]),_:2},1024)]}),default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.name),1)]),_:2},1024),o.microservice_status[s.name]?(e.openBlock(),e.createBlock(_,{key:0},{default:e.withCtx(()=>[e.createTextVNode(" Updated: "+e.toDisplayString(n.formatDate(o.microservice_status[s.name].updated_at))+", State: "+e.toDisplayString(o.microservice_status[s.name].state)+", Enabled: "+e.toDisplayString(s.enabled===!1?"False":"True")+", Count: "+e.toDisplayString(o.microservice_status[s.name].count),1)]),_:2},1024)):e.createCommentVNode("",!0)]),_:2},1024),e.createVNode(f)]))),128))]),_:1}),o.showDialog?(e.openBlock(),e.createBlock(w,{key:0,modelValue:o.showDialog,"onUpdate:modelValue":i[1]||(i[1]=s=>o.showDialog=s),content:o.jsonContent,type:"Microservice",name:o.dialogTitle,onSubmit:n.dialogCallback},null,8,["modelValue","content","name","onSubmit"])):e.createCommentVNode("",!0),o.showError?(e.openBlock(),e.createBlock(x,{key:1,modelValue:o.showError,"onUpdate:modelValue":i[2]||(i[2]=s=>o.showError=s),text:o.jsonContent,title:o.dialogTitle},null,8,["modelValue","text","title"])):e.createCommentVNode("",!0)])}const D=y._export_sfc(V,[["render",S],["__scopeId","data-v-61eec86a"]]);exports.default=D;
2
+ //# sourceMappingURL=MicroservicesTab-BGgwT56M.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MicroservicesTab-DGaTcj-y.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\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=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\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","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","_cache","$event","_withCtx","_createTextVNode","_toDisplayString","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createBlock","_component_v_list_item_subtitle","_createCommentVNode","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"MicroservicesTab-BGgwT56M.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\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=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\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","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { l as u } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-NIAkCgU6.js";
1
+ import { c as u } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js";
2
2
  import { resolveComponent as r, createElementBlock as v, openBlock as m, createVNode as s, createBlock as f, createCommentVNode as g, withCtx as l, createTextVNode as w, toDisplayString as p, Fragment as V, renderList as A, withDirectives as E, vShow as j } from "vue";
3
3
  import { _ as N } from "./CustomIcon-h5X7369N.js";
4
4
  import "single-spa";
5
- import { O } from "./OutputDialog-CcSp-Uqo.js";
6
- import { T as U } from "./TextBoxDialog-C60jmnyN.js";
5
+ import { O } from "./OutputDialog-M5Xc_DqH.js";
6
+ import { T as U } from "./TextBoxDialog-BlZ6MBoW.js";
7
7
  import { f as B, t as I } from "./format-CVeawcIv.js";
8
8
  const J = {
9
9
  components: {
@@ -216,4 +216,4 @@ const Q = /* @__PURE__ */ N(J, [["render", F], ["__scopeId", "data-v-61eec86a"]]
216
216
  export {
217
217
  Q as default
218
218
  };
219
- //# sourceMappingURL=MicroservicesTab-B-SdMwek.js.map
219
+ //# sourceMappingURL=MicroservicesTab-Dbp02UlV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MicroservicesTab-B-SdMwek.js","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\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=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\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","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","_cache","$event","_withCtx","_createTextVNode","_toDisplayString","_component_v_list","_openBlock","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createBlock","_component_v_list_item_subtitle","_createCommentVNode","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"MicroservicesTab-Dbp02UlV.js","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert\n v-model=\"showAlert\"\n dismissible\n transition=\"scale-transition\"\n :type=\"alertType\"\n >{{ alert }}</v-alert\n >\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-list-item-icon>\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\n <v-list-item-icon>\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </v-list-item-icon>\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=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\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","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_icon","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ "use strict";const _=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs"),e=require("vue"),w=require("./CustomIcon-Bop2mEnu.cjs"),T=require("./fileIcon-BduOQcTc.cjs"),b=require("./TopBar-C5lQcY1W.cjs");class k{constructor(){_.ci.get("/openc3-api/autocomplete/data/screen").then(n=>{this.autocompleteData=n.data}),this.api=new _.di}async getCompletions(n,i,s,o,l){let u=i.getLine(s.row).slice(0,s.column).trimStart().split(/ (?![^<]*>)/),d=this.autocompleteData;u.length>1&&(d=d.find(m=>m.caption===u[0]));let r={},a=!0;if(d&&d.params){d.params.length==u.length-1&&(a=!1);let m=d.params[u.length-2];if(m["Target name"])d=(await this.api.get_target_names()).reduce((y,v)=>(y[v]=1,y),{});else if(m["Packet name"]){let f=u[u.length-2];d=(await this.api.get_all_tlm(f)).reduce((v,p)=>(v[p.packet_name]=p.description,v),{})}else if(m["Item name"]){let f=u[u.length-3],y=u[u.length-2];d=(await this.api.get_tlm(f,y)).items.reduce((p,g)=>(p[g.name]=g.description,p),{})}else d=m;r=Object.keys(d||{}).map(f=>{let y={value:f+(a?" ":""),command:a&&"startAutocomplete"};return typeof d[f]=="string"&&(y.meta=d[f]),y})}else r=d;l(null,r)}}const E={props:{modelValue:Boolean,target:{type:String,default:""},screen:{type:String,default:""},definition:{type:String,default:""},keywords:{type:Array,default:()=>[]},errors:{type:Array,default:()=>[]}},emits:["cancel","delete","save","update:modelValue"],data(){return{file:null,docsKeyword:"",contextMenu:!1,menuX:0,menuY:0}},computed:{editErrors:function(){if(this.definition===""&&!this.file)return["Input can not be blank."];if(this.errors.length!==0){let t=new Set,n=[];const i=this.errors.toSorted((s,o)=>s.lineNumber-o.lineNumber);for(const s of i){let o=`At ${s.lineNumber}: (${s.line}) ${s.message}.`;s.usage&&(o+=` Usage: ${s.usage}`),n.push(o),t.add(s.message)}return n}return[]},show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},mounted:function(){this.editor=_.aceExports.edit(this.$refs.editor),this.editor.setTheme("ace/theme/twilight");const t=this.buildScreenMode();this.editor.session.setMode(new t),this.editor.session.setTabSize(2),this.editor.session.setUseWrapMode(!0),this.editor.$blockScrolling=1/0,this.editor.setOption("enableBasicAutocompletion",!0),this.editor.setOption("enableLiveAutocompletion",!0),this.editor.completers=[new k],this.editor.setHighlightActiveLine(!1),this.editor.setValue(this.definition),this.editor.clearSelection(),b.AceEditorUtils.applyVimModeIfEnabled(this.editor),this.editor.focus()},beforeUnmount(){this.editor.destroy(),this.editor.container.remove()},methods:{toggleVimMode:function(){b.AceEditorUtils.toggleVimMode(this.editor)},showContextMenu:function(t){this.menuX=t.pageX,this.menuY=t.pageY;let n=this.editor.getCursorPosition(),i=this.editor.session.getTokenAt(n.row,n.column);if(i){let s=i.value.trim();s.includes(" ")?this.docsKeyword=s.split(" ")[0]:this.docsKeyword=s,this.contextMenu=!0}},openDocumentation(){window.open(`${window.location.origin}/tools/staticdocs/docs/configuration/telemetry-screens#${this.docsKeyword.toLowerCase()}`,"_blank")},buildScreenMode(){let t=_.aceExports.require("ace/lib/oop"),n=_.aceExports.require("ace/mode/text_highlight_rules").TextHighlightRules,i=this.keywords.join("|"),s=function(){this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"\\b\\d+(?:\\.\\d+)?\\b"},{token:"keyword",regex:new RegExp(`^\\s*(${i})\\b`)}]},this.normalizeRules()};t.inherits(s,n);let o=function(){this.HighlightRules=s},l=_.aceExports.require("ace/mode/text").Mode;return t.inherits(o,l),(function(){this.$id="ace/mode/openc3"}).call(o.prototype),o},downloadScreen:function(){const t=new Blob([this.editor.getValue()],{type:"text/plain"}),n=document.createElement("a");n.href=URL.createObjectURL(t),n.setAttribute("download",`${this.screen.toLowerCase()}.txt`),n.click()},loadFile:function(){const t=new FileReader;t.readAsText(this.file);const n=this;t.onload=function(){n.editor.setValue(t.result),n.file=null}},deleteScreen:function(){this.$dialog.confirm("Are you sure you want to delete this screen?!",{okText:"Delete",cancelText:"Cancel"}).then(t=>{this.$emit("delete")})}}},D=["textContent"];function I(t,n,i,s,o,l){const c=e.resolveComponent("v-btn"),h=e.resolveComponent("v-spacer"),u=e.resolveComponent("v-toolbar"),d=e.resolveComponent("v-row"),r=e.resolveComponent("v-file-input"),a=e.resolveComponent("v-list-item-title"),m=e.resolveComponent("v-list-item"),f=e.resolveComponent("v-divider"),y=e.resolveComponent("v-list"),v=e.resolveComponent("v-menu"),p=e.resolveComponent("v-card-text"),g=e.resolveComponent("v-card"),x=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(x,{modelValue:l.show,"onUpdate:modelValue":n[5]||(n[5]=C=>l.show=C),persistent:"",width:"75vw"},{default:e.withCtx(()=>[e.createVNode(g,null,{default:e.withCtx(()=>[e.createVNode(u,{height:"24"},{default:e.withCtx(()=>[e.createVNode(c,{class:"mx-2",icon:"mdi-delete",variant:"text",density:"compact","data-test":"delete-screen-icon",onClick:l.deleteScreen},null,8,["onClick"]),e.createVNode(h),e.createElementVNode("span",null," Edit Screen: "+e.toDisplayString(i.target)+" "+e.toDisplayString(i.screen),1),e.createVNode(h),e.createVNode(c,{class:"mx-2",icon:"mdi-download",variant:"text",density:"compact","data-test":"download-screen-icon",onClick:l.downloadScreen},null,8,["onClick"])]),_:1}),e.createVNode(p,{style:{"max-height":"90vh"}},{default:e.withCtx(()=>[e.createVNode(d,{class:"mt-3"},{default:e.withCtx(()=>n[6]||(n[6]=[e.createTextVNode(" Upload a screen file. ",-1)])),_:1,__:[6]}),e.createVNode(d,{"no-gutters":"",align:"center"},{default:e.withCtx(()=>[e.createVNode(c,{disabled:!o.file,color:"primary",class:"mr-3","data-test":"edit-screen-load",onClick:l.loadFile},{default:e.withCtx(()=>n[7]||(n[7]=[e.createTextVNode(" Load ",-1)])),_:1,__:[7]},8,["disabled","onClick"]),e.createVNode(r,{modelValue:o.file,"onUpdate:modelValue":n[0]||(n[0]=C=>o.file=C),"truncate-length":"15",accept:".txt",label:"Click to select .txt screen file."},null,8,["modelValue"])]),_:1}),e.createVNode(d,{class:"mb-2"},{default:e.withCtx(()=>n[8]||(n[8]=[e.createTextVNode(" Edit the screen definition. ",-1)])),_:1,__:[8]}),e.createVNode(d,{class:"mb-2"},{default:e.withCtx(()=>[e.createElementVNode("pre",{ref:"editor",class:"editor",onContextmenu:n[1]||(n[1]=e.withModifiers((...C)=>l.showContextMenu&&l.showContextMenu(...C),["prevent"]))},null,544),e.createVNode(v,{modelValue:o.contextMenu,"onUpdate:modelValue":n[2]||(n[2]=C=>o.contextMenu=C),target:[o.menuX,o.menuY]},{default:e.withCtx(()=>[e.createVNode(y,null,{default:e.withCtx(()=>[e.createVNode(m,{link:""},{default:e.withCtx(()=>[e.createVNode(a,{onClick:l.openDocumentation},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.docsKeyword)+" documentation ",1)]),_:1},8,["onClick"])]),_:1}),e.createVNode(f),e.createVNode(m,{title:"Toggle Vim mode","prepend-icon":"extras:vim",onClick:l.toggleVimMode},null,8,["onClick"])]),_:1})]),_:1},8,["modelValue","target"])]),_:1}),e.createVNode(d,{style:{"max-height":"120px","overflow-y":"auto"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.editErrors,(C,S)=>(e.openBlock(),e.createElementBlock("div",{key:S},[e.createElementVNode("span",{class:"text-red",textContent:e.toDisplayString(C)},null,8,D)]))),128))]),_:1}),e.createVNode(d,{class:"mt-5"},{default:e.withCtx(()=>[n[11]||(n[11]=e.createElementVNode("span",null," Ctrl-space brings up autocomplete. Right click keywords for documentation. ",-1)),e.createVNode(h),e.createVNode(c,{class:"mx-2",variant:"outlined","data-test":"edit-screen-cancel",onClick:n[3]||(n[3]=C=>t.$emit("cancel"))},{default:e.withCtx(()=>n[9]||(n[9]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[9]}),e.createVNode(c,{class:"mx-2",color:"primary","data-test":"edit-screen-save",onClick:n[4]||(n[4]=C=>t.$emit("save",t.editor.getValue()))},{default:e.withCtx(()=>n[10]||(n[10]=[e.createTextVNode(" Save ",-1)])),_:1,__:[10]})]),_:1,__:[11]})]),_:1})]),_:1})]),_:1},8,["modelValue"])}const N=w._export_sfc(E,[["render",I],["__scopeId","data-v-65b25a74"]]),B={props:{modelValue:Boolean},data(){return{alert:"",alertType:"success",showAlert:!1,search:"",key:"",keyValue:"",environment:[],headers:[{text:"Key",value:"key"},{text:"Value",value:"value"},{text:"Actions",value:"actions",align:"end",sortable:!1}]}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},mounted(){this.update()},methods:{alertHandler:function(t){this.alert=t.text,this.alertType=t.type,this.showAlert=!0},update:function(){_.ci.get("/openc3-api/environment").then(t=>{this.environment=t.data}).catch(t=>{})},addEnvironment:function(){_.ci.post("/openc3-api/environment",{data:{key:this.key.toUpperCase(),value:this.keyValue}}).then(t=>{`${t.data.name}`,this.update()}).catch(t=>{const n={text:`Failed to add environment variable: ${t}`,type:"error"};this.alertHandler(n)}),this.key="",this.keyValue=""},deleteEnvironment:function(t){this.$dialog.confirm(`Are you sure you want to delete: ${t.key}=${t.value}`,{okText:"Delete",cancelText:"Cancel"}).then(n=>_.ci.delete(`/openc3-api/environment/${t.name}`)).then(n=>{const i={text:`Removed environment variable: ${t.name}`,type:"success"};this.alertHandler(i),this.update()}).catch(n=>{const i={text:`Failed to delete environment: ${n}`,type:"error"};this.alertHandler(i)})}}},A={class:"pa-3"};function F(t,n,i,s,o,l){const c=e.resolveComponent("v-spacer"),h=e.resolveComponent("v-toolbar"),u=e.resolveComponent("v-text-field"),d=e.resolveComponent("v-row"),r=e.resolveComponent("v-btn"),a=e.resolveComponent("v-data-table"),m=e.resolveComponent("v-col"),f=e.resolveComponent("v-card-text"),y=e.resolveComponent("v-card"),v=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(v,{modelValue:l.show,"onUpdate:modelValue":n[4]||(n[4]=p=>l.show=p),width:"600"},{default:e.withCtx(()=>[e.createVNode(y,null,{default:e.withCtx(()=>[e.createElementVNode("form",{onSubmit:n[3]||(n[3]=e.withModifiers((...p)=>l.addEnvironment&&l.addEnvironment(...p),["prevent"]))},[e.createVNode(h,{height:"24"},{default:e.withCtx(()=>[e.createVNode(c),n[5]||(n[5]=e.createElementVNode("span",null,"Global Environment Variables",-1)),e.createVNode(c)]),_:1,__:[5]}),e.createVNode(f,null,{default:e.withCtx(()=>[e.createElementVNode("div",A,[e.createVNode(d,{dense:"",class:"mb-2"},{default:e.withCtx(()=>[e.createVNode(u,{modelValue:o.search,"onUpdate:modelValue":n[0]||(n[0]=p=>o.search=p),label:"search",type:"text","data-test":"search","prepend-inner-icon":"mdi-magnify",clearable:"",variant:"outlined",density:"compact","clear-icon":"mdi-close-circle-outline",autofocus:"","single-line":"","hide-details":""},null,8,["modelValue"])]),_:1}),e.createVNode(a,{"item-key":"name","hide-default-header":"","data-test":"env-table",search:o.search,headers:o.headers,items:o.environment,"items-per-page":5,"items-per-page-options":[5]},{"item.actions":e.withCtx(({item:p})=>[e.createVNode(r,{icon:"mdi-delete",variant:"text",class:"mt-1","data-test":"item-delete","aria-label":"Delete Environment Variable",onClick:g=>l.deleteEnvironment(p)},null,8,["onClick"])]),_:1},8,["search","headers","items"]),e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(u,{modelValue:o.key,"onUpdate:modelValue":n[1]||(n[1]=p=>o.key=p),label:"Key","data-test":"env-key"},null,8,["modelValue"])]),_:1}),e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(u,{modelValue:o.keyValue,"onUpdate:modelValue":n[2]||(n[2]=p=>o.keyValue=p),label:"Value","data-test":"env-value"},null,8,["modelValue"])]),_:1})]),_:1}),e.createVNode(d,{dense:""},{default:e.withCtx(()=>[e.createVNode(r,{block:"",type:"submit",color:"primary","data-test":"add-env",disabled:!o.key||!o.keyValue,onClick:e.withModifiers(l.addEnvironment,["prevent"])},{default:e.withCtx(()=>n[6]||(n[6]=[e.createTextVNode(" Add ",-1)])),_:1,__:[6]},8,["disabled","onClick"])]),_:1})])]),_:1})],32)]),_:1})]),_:1},8,["modelValue"])}const M=w._export_sfc(B,[["render",F]]),O={class:"tree-node"},R={class:"content-wrapper"},L=["tabindex"],U={key:1},z={key:2,class:"children"},W={__name:"TreeNode",props:{node:{type:Object,required:!0},search:{type:String,default:""},type:{type:String,default:"open"}},emits:["nodeToggled","request"],setup(t,{emit:n}){const i=t,s=e.ref(i.node.isOpen||!1),o=e.computed(()=>{const r=a=>{var m;return!i.search||a.path.toLowerCase().includes(i.search.toLowerCase())?!0:!!((m=a.children)!=null&&m.some(r))};return r(i.node)});e.watch(()=>i.node.isOpen,r=>{s.value=r}),e.watch(()=>i.search,r=>{r?i.node.isOpen||h():i.node.isOpen&&h()});const l=n,c=r=>{r.children?(h(),i.type==="save"&&l("request",r)):l("request",r)},h=()=>{i.node.children&&(s.value=!s.value,i.node.isOpen=s.value,l("nodeToggled",i.node.id,s.value))},u=(r,a)=>{l("nodeToggled",r,a)},d=r=>{l("request",r)};return(r,a)=>{const m=e.resolveComponent("v-icon"),f=e.resolveComponent("v-btn"),y=e.resolveComponent("tree-node",!0);return e.openBlock(),e.createElementBlock("div",O,[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"node-content",onClick:a[2]||(a[2]=v=>c(t.node))},[e.createElementVNode("div",R,[t.node.children?(e.openBlock(),e.createBlock(m,{key:0,class:"toggle-icon",style:{"padding-right":"10px"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.node.isOpen?"mdi-menu-down":"mdi-menu-right"),1)]),_:1})):e.createCommentVNode("",!0),t.node.children?(e.openBlock(),e.createBlock(m,{key:1,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>a[3]||(a[3]=[e.createTextVNode(e.toDisplayString("mdi-folder"),-1)])),_:1,__:[3]})):t.node.title.includes(".rb")?(e.openBlock(),e.createBlock(m,{key:2,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>a[4]||(a[4]=[e.createTextVNode(e.toDisplayString("mdi-language-ruby"),-1)])),_:1,__:[4]})):t.node.title.includes(".py")?(e.openBlock(),e.createBlock(m,{key:3,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>a[5]||(a[5]=[e.createTextVNode(e.toDisplayString("mdi-language-python"),-1)])),_:1,__:[5]})):(e.openBlock(),e.createBlock(m,{key:4,size:"small",style:{"padding-right":"10px"}},{default:e.withCtx(()=>a[6]||(a[6]=[e.createTextVNode(e.toDisplayString("mdi-file-document"),-1)])),_:1,__:[6]})),e.createElementVNode("span",{class:"title",tabindex:t.node.children?-1:0,onKeyup:a[0]||(a[0]=e.withKeys(v=>c(t.node),["enter"]))},e.toDisplayString(t.node.title),41,L),t.node.title==="__TEMP__"?(e.openBlock(),e.createBlock(f,{key:5,icon:"mdi-delete",variant:"text",style:{"margin-left":"auto"},"aria-label":"Delete",onClick:a[1]||(a[1]=v=>l("delete"))})):e.createCommentVNode("",!0)])])):(e.openBlock(),e.createElementBlock("div",U)),t.node.children&&t.node.isOpen?(e.openBlock(),e.createElementBlock("div",z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,v=>(e.openBlock(),e.createBlock(y,{key:v.id,node:v,search:t.search,type:t.type,onNodeToggled:u,onRequest:d},null,8,["node","search","type"]))),128))])):e.createCommentVNode("",!0)])}}},P=w._export_sfc(W,[["__scopeId","data-v-74233c4c"]]),q={components:{TreeNode:P},props:{type:{type:String,required:!0,validator:function(t){return["open","save"].indexOf(t)!==-1}},apiUrl:String,requireTargetParentDir:Boolean,inputFilename:String,modelValue:Boolean},data(){return{tree:[],items:[],search:null,selectedFile:null,disableButtons:!1,targets:[],targetsRetrieved:[],loading:!0}},computed:{show:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},title:function(){return this.type==="open"?"File Open":"File Save As..."},submit:function(){return this.type==="open"?"OPEN":"SAVE"},helpText:function(){return this.type==="open"?"Click on folders to open them and then click a file to select it before clicking Open. Use the search box to filter the results. You can also Tab to the files and Enter to select.":"Click on the folder to save into. Then complete the filename path with the desired name. Use the search box to filter the results."},error:function(){if(this.selectedFile===""||this.selectedFile===null)return"No file selected must select a file";if(!this.selectedFile.match(this.validFilenameRegex)||this.selectedFile.match(/\.\.|\/\/|\.\/|\/\./)){let t=`${this.selectedFile} is not a valid filename. Must `;return this.requireTargetParentDir&&(t+="be in a target directory and "),t+=`only contain alphanumeric characters (including !-_.*) and a valid extension.
2
+
3
+ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`,t}return this.type==="save"&&this.selectedFile.match(/\*$/)?`${this.selectedFile} is not a valid filename. Must not end in '*'.`:null},validFilenameRegex:function(){const t="0-9a-zA-Z";let i=`[${`${t}\\/\\!\\-\\_\\.\\*\\'\\(\\)`}]+\\.[${t}]+`;return this.requireTargetParentDir&&(i=`\\/?${`(${this.targets.join("|")})`}\\/${i}`),new RegExp(i)}},created(){_.ci.get("/openc3-api/targets").then(t=>{this.targets=t.data,this.targets.push("__TEMP__"),this.targets.forEach(n=>{this.items.push({id:n,disabled:!0,title:n,children:[],path:n}),this.loadFiles(n)}),this.loading=!1})},methods:{calcIcon:function(t){return T.fileIcon(t)},loadFiles:function(t){_.ci.get(this.apiUrl,{params:{target:t}}).then(n=>{if(n.data.length===0){this.items=this.items.filter(s=>s.id!==t);return}for(let s of n.data.sort())this.filepath=s,this.insertFile(this.items,2,s);this.inputFilename&&(this.selectedFile=this.inputFilename);const i=this.items.findIndex(s=>s.id===t);i!==-1&&(this.items[i].disabled=!1)}).catch(n=>{this.$emit("error",`Failed to connect to OpenC3. ${n}`)})},clear:function(){this.show=!1,this.overwrite=!1,this.disableButtons=!1},activeFile:function(t){t.length===0?this.selectedFile=null:(this.selectedFile=this.findItem(this.items,t.id),setTimeout(()=>{this.$refs.submitBtn.$el.focus()},100))},findItem:function(t,n){for(let i of t){if(i.id===n)return i.path;if(i.children){const s=this.findItem(i.children,n);if(s)return s}}return null},exists:function(t,n){let i=!1;for(let s of t){if(s.path===n||s.path.length>1&&s.path[s.path.length-1]==="*"&&s.path.slice(0,s.path.length-1)===n)return!0;s.children&&(i=i||this.exists(s.children,n))}return i},success:function(){this.selectedFile!==null&&this.error===null&&(this.type==="open"?this.openSuccess():this.saveSuccess())},deleteTemp:function(){this.$dialog.confirm("Are you sure you want to delete all the temporary files?",{okText:"Delete",cancelText:"Cancel"}).then(t=>_.ci.delete("/script-api/scripts/temp_files")).then(t=>{this.$emit("clear-temp"),this.loadFiles("__TEMP__")}).catch(t=>{this.$notify.serious({title:"Error",body:`Failed to remove script temporary files due to ${t}`})})},openSuccess:function(){this.disableButtons=!0,_.ci.get(`${this.apiUrl}/${this.selectedFile}`).then(t=>{const n={name:this.selectedFile,contents:t.data.contents};t.data.suites&&(n.suites=JSON.parse(t.data.suites)),t.data.error&&(n.error=t.data.error),t.data.success&&(n.success=t.data.success);const i=t.data.locked,s=t.data.breakpoints;this.$emit("file",{file:n,locked:i,breakpoints:s}),this.clear()}).catch(t=>{this.$emit("error",`Failed to open ${this.selectedFile}. ${t}`),this.clear()})},saveSuccess:function(){this.exists(this.items,this.selectedFile)?this.$dialog.confirm(`Are you sure you want to overwrite: ${this.selectedFile}`,{okText:"Overwrite",cancelText:"Cancel"}).then(n=>{this.$emit("filename",this.selectedFile),this.clear()}).catch(n=>{}):(this.$emit("filename",this.selectedFile),this.clear())},insertFile:function(t,n,i){let s=i.split("/");if(s.length===1){t.push({id:this.filepath,title:s[0],file:"ruby",path:this.filepath});return}const o=t.findIndex(l=>l.title===s[0]);o===-1?(t.push({id:this.filepath.split("/").slice(0,n-1).join("/"),title:s[0],children:[],path:this.filepath.split("/").slice(0,n-1).join("/")}),this.insertFile(t[t.length-1].children,n+1,s.slice(1).join("/"))):this.insertFile(t[o].children,n+1,s.slice(1).join("/"))}}},K={class:"pa-3"},Z={class:"overflow-y-auto tree-container"};function G(t,n,i,s,o,l){const c=e.resolveComponent("v-progress-circular"),h=e.resolveComponent("v-overlay"),u=e.resolveComponent("v-spacer"),d=e.resolveComponent("v-toolbar"),r=e.resolveComponent("v-row"),a=e.resolveComponent("v-text-field"),m=e.resolveComponent("tree-node"),f=e.resolveComponent("v-btn"),y=e.resolveComponent("v-card-text"),v=e.resolveComponent("v-card"),p=e.resolveComponent("v-dialog");return e.openBlock(),e.createBlock(p,{modelValue:l.show,"onUpdate:modelValue":n[4]||(n[4]=g=>l.show=g),width:"600",onKeydown:n[5]||(n[5]=e.withKeys(g=>l.success(),["enter"]))},{default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[e.createVNode(h,{"model-value":o.loading},{default:e.withCtx(()=>[e.createVNode(c,{indeterminate:"",absolute:"",size:"64"})]),_:1},8,["model-value"]),e.createElementVNode("form",{onSubmit:n[3]||(n[3]=e.withModifiers((...g)=>l.success&&l.success(...g),["prevent"]))},[e.createVNode(d,{height:"24"},{default:e.withCtx(()=>[e.createVNode(u),e.createElementVNode("span",null,e.toDisplayString(l.title),1),e.createVNode(u)]),_:1}),e.createVNode(y,null,{default:e.withCtx(()=>[e.createElementVNode("div",K,[e.createVNode(r,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.helpText),1)]),_:1}),e.createVNode(r,{dense:"",class:"mt-5"},{default:e.withCtx(()=>[e.createVNode(a,{modelValue:o.search,"onUpdate:modelValue":n[0]||(n[0]=g=>o.search=g),flat:"",autofocus:"","hide-details":"",clearable:"",label:"Search","prepend-inner-icon":"mdi-magnify",density:"compact","data-test":"file-open-save-search"},null,8,["modelValue"])]),_:1}),e.createElementVNode("div",Z,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,g=>(e.openBlock(),e.createBlock(m,{key:`${g.id}`,node:g,search:o.search,type:i.type,onRequest:l.activeFile,onDelete:l.deleteTemp},null,8,["node","search","type","onRequest","onDelete"]))),128))]),e.createVNode(r,{class:"my-2"},{default:e.withCtx(()=>[e.createVNode(a,{modelValue:o.selectedFile,"onUpdate:modelValue":n[1]||(n[1]=g=>o.selectedFile=g),"hide-details":"",label:"Filename","data-test":"file-open-save-filename",disabled:i.type==="open"},null,8,["modelValue","disabled"])]),_:1}),e.createVNode(r,{dense:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:"my-2 text-red",style:{"white-space":"pre-line"}},e.toDisplayString(l.error),513),[[e.vShow,l.error]])]),_:1}),e.createVNode(r,{class:"mt-2"},{default:e.withCtx(()=>[e.createVNode(u),e.createVNode(f,{variant:"outlined",class:"mx-2","data-test":"file-open-save-cancel-btn",disabled:o.disableButtons,onClick:n[2]||(n[2]=g=>l.show=!1)},{default:e.withCtx(()=>n[6]||(n[6]=[e.createTextVNode(" Cancel ",-1)])),_:1,__:[6]},8,["disabled"]),e.createVNode(f,{ref:"submitBtn",type:"submit",color:"primary",class:"mx-2","data-test":"file-open-save-submit-btn",disabled:o.disableButtons||!!l.error,onClick:e.withModifiers(l.success,["prevent"])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(l.submit),1)]),_:1},8,["disabled","onClick"])]),_:1})])]),_:1})],32)]),_:1})]),_:1},8,["modelValue"])}const X=w._export_sfc(q,[["render",G]]),V=20,j={components:{EditScreenDialog:N},mixins:[_.WidgetComponents],props:{target:{type:String,default:""},screen:{type:String,default:""},definition:{type:String,default:""},keywords:{type:Array,default:()=>[]},initialFloated:{type:Boolean,default:!1},initialTop:{type:Number,default:0},initialLeft:{type:Number,default:0},initialZ:{type:Number,default:0},minZ:{type:Number,default:0},fixFloated:{type:Boolean,default:!1},count:{type:Number,default:0},showClose:{type:Boolean,default:!0},timeZone:{type:String,default:"local"},inline:{type:Boolean,default:!1},playbackMode:{type:String,default:"realtime"},playbackDateTime:{type:Date,default:null}},emits:["close-screen","delete-screen","drag-screen","edit-screen","float-screen","min-max-screen","unfloat-screen"],data(){return{api:null,backup:"",currentDefinition:this.definition,editDialog:!1,expand:!0,configParser:null,currentLayout:null,layoutStack:[],namedWidgets:{},dynamicWidgets:[],width:null,height:null,staleTime:30,cacheTimeout:.1,globalSettings:[],substitute:!1,original_target_name:null,force_substitute:!1,pollingPeriod:1,errors:[],errorDialog:!1,screenKey:null,dragX:0,dragY:0,floated:this.initialFloated,top:this.initialTop,left:this.initialLeft,zIndex:this.initialZ,changeCounter:0,screenItems:[],actualScreenItems:[],screenValues:{},updateCounter:0,updater:null,screenId:_.lodashExports.uniqueId("openc3-screen_"),tlmAvailableTimeout:null}},computed:{error:function(){if(this.errorDialog&&this.errors.length>0){let t=new Set,n="";for(const i of this.errors){if(t.has(i.message))continue;let s=`${i.time}: (${i.type}) ${i.message}
4
+ `;n+=s,t.add(i.message)}return n}return null},computedStyle(){var i;let t={};const n=this.width||((i=this.$refs.bar)==null?void 0:i.clientWidth);return this.floated&&(t.position="absolute",t.top=this.top+"px",t.left=this.left+"px",t.width=n+"px"),t}},watch:{count:{handler(t,n){this.currentDefinition=this.definition,this.rerender()}},playbackDateTime:{handler(t,n){this.playbackMode==="playback"&&t&&this.update()}},playbackMode:{handler(t,n){t==="realtime"?this.updateRefreshInterval():(clearInterval(this.updater),this.updater=null)}}},errorCaptured(t,n,i){return this.errors.length<V&&(t.usage?this.errors.push({type:"usage",message:t.message,usage:t.usage,line:t.line,lineNumber:t.lineNumber,time:new Date().getTime()}):this.errors.push({type:"error",message:t,time:new Date().getTime()})),!1},created(){this.api=new _.di,this.configParser=new _.hi,this.parseDefinition(),this.screenKey=Math.floor(Math.random()*1e6)},mounted(){this.playbackMode==="realtime"&&this.updateRefreshInterval(),this.floated&&(this.$refs.bar.onmousedown=this.dragMouseDown,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex)},unmounted(){this.updater!=null&&(clearInterval(this.updater),this.updater=null),this.tlmAvailableTimeout!=null&&(clearTimeout(this.tlmAvailableTimeout),this.tlmAvailableTimeout=null)},methods:{open(t,n){this.$parent.showScreen(t,n)},close(t,n){this.$parent.closeScreenByName(t,n)},closeAll(){this.$parent.closeAll()},clearErrors:function(){this.errors=[]},updateRefreshInterval:function(){let t=this.pollingPeriod*1e3;this.updater&&clearInterval(this.updater),this.updater=setInterval(()=>{this.update()},t)},parseDefinition:function(){if(this.clearErrors(),this.screenItems=[],this.namedWidgets={},this.layoutStack=[],this.dynamicWidgets=[],this.layoutStack.push({type:"VerticalWidget",parameters:[],widgets:[]}),this.currentLayout=this.layoutStack[this.layoutStack.length-1],this.configParser.parse_string(this.currentDefinition,"",!1,!0,(t,n,i,s)=>{if(t)switch(t){case"SCREEN":this.configParser.verify_num_parameters(3,4,`${t} <Width or AUTO> <Height or AUTO> <Polling Period>`),this.width=parseInt(n[0]),this.height=parseInt(n[1]),this.pollingPeriod=parseFloat(n[2]);break;case"END":this.configParser.verify_num_parameters(0,0,`${t}`),this.layoutStack.pop(),this.currentLayout=this.layoutStack[this.layoutStack.length-1];break;case"STALE_TIME":this.configParser.verify_num_parameters(1,1,`${t} <Time (s)>`),this.staleTime=parseInt(n[0]);break;case"SUBSETTING":this.configParser.verify_num_parameters(3,null,`${t} <Index> <Widget Type> <Widget Settings...>`),n[1]==="RAW"&&(n[1]="RAW__"+n[2].toLowerCase());case"SETTING":this.configParser.verify_num_parameters(2,null,`${t} <Widget Type> <Widget Settings...>`),n[0]==="RAW"&&(n[0]="RAW__"+n[1].toLowerCase()),(this.currentLayout.widgets[this.currentLayout.widgets.length-1]??this.currentLayout).settings.push(n);break;case"GLOBAL_SUBSETTING":this.configParser.verify_num_parameters(3,null,`${t} <Index> <Widget Type> <Widget Settings...>`),n[2]==="RAW"&&(n[2]="RAW__"+n[3].toLowerCase());case"GLOBAL_SETTING":this.configParser.verify_num_parameters(2,null,`${t} <Widget Type> <Widget Settings...>`),n[1]==="RAW"&&(n[1]="RAW__"+n[2].toLowerCase()),this.globalSettings.push(n);break;default:this.processWidget(t,n,i,s);break}}),typeof this.layoutStack[0]>"u"){let t=[],n=[];for(const i of this.dynamicWidgets)t.push(i.name),n.push(i.lineNumber);this.errors.length<V&&this.errors.push({type:"usage",message:`Unknown widget! Are these widgets: ${t.join(",")}?`,lineNumber:n.join(","),time:new Date().getTime()}),this.layoutStack[0]={type:"VerticalWidget",parameters:[],widgets:[]}}else this.applyGlobalSettings(this.layoutStack[0].widgets)},openEdit:function(){this.backup=this.currentDefinition.repeat(1),this.editDialog=!0},upScreen:function(){this.zIndex+=1,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex])},downScreen:function(){this.zIndex>this.minZ&&(this.zIndex-=1,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex]))},floatScreen:function(){if(this.floated)this.$refs.bar.onmousedown=null,this.$refs.bar.parentElement.parentElement.style="z-index: 0",this.floated=!1,this.$emit("unfloat-screen",[this.floated,this.top,this.left,this.zIndex]);else{let t=this.$refs.bar.parentElement.parentElement.parentElement.getBoundingClientRect(),n=this.$refs.bar.getBoundingClientRect();this.top=n.top-t.top-5,this.left=n.left-t.left-5,this.$refs.bar.onmousedown=this.dragMouseDown,this.$refs.bar.parentElement.parentElement.style="z-index: "+this.zIndex,this.floated=!0,this.$emit("float-screen",[this.floated,this.top,this.left,this.zIndex])}},dragMouseDown:function(t){t=t||window.event,t.preventDefault(),this.dragX=t.clientX,this.dragY=t.clientY,document.onmouseup=this.closeDragElement,document.onmousemove=this.elementDrag},elementDrag:function(t){t=t||window.event,t.preventDefault();let n=this.dragX-t.clientX,i=this.dragY-t.clientY;this.dragX=t.clientX,this.dragY=t.clientY,this.top=this.$refs.bar.offsetTop-i,this.left=this.$refs.bar.offsetLeft-n,this.$emit("drag-screen",[this.floated,this.top,this.left,this.zIndex])},closeDragElement:function(){document.onmouseup=null,document.onmousemove=null},rerender:function(){this.parseDefinition(),this.updateRefreshInterval(),this.screenKey=Math.floor(Math.random()*1e6),this.$nextTick(function(){this.clearErrors(),this.$emit("edit-screen")})},cancelEdit:function(){this.file=null,this.editDialog=!1,this.currentDefinition=this.backup,this.rerender()},saveEdit:function(t){this.editDialog=!1,this.currentDefinition=t,this.rerender(),this.$nextTick(function(){_.ci.post("/openc3-api/screen/",{data:{scope:window.openc3Scope,target:this.target,screen:this.screen,text:this.currentDefinition}},0)})},deleteScreen:function(){this.editDialog=!1,_.ci.delete(`/openc3-api/screen/${this.target}/${this.screen}`).then(t=>{this.$emit("delete-screen")})},minMaxTransition:function(){this.expand=!this.expand,this.$emit("min-max-screen")},processWidget:function(t,n,i,s){let o=null;t==="NAMED_WIDGET"&&(this.configParser.verify_num_parameters(2,null,`${t} <Widget Name> <Widget Type> <Widget Settings... (optional)>`),o=n[0].toUpperCase(),t=n[1].toUpperCase(),n=n.slice(2,n.length));const l=t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()+"Widget";let c=[];if(c.push(["__SCREEN_ID__",this.screenId]),o!==null&&c.push(["NAMED_WIDGET",o]),t==="VERTICAL"||t==="VERTICALBOX"||t==="HORIZONTAL"||t==="HORIZONTALBOX"||t==="MATRIXBYCOLUMNS"||t==="TABBOOK"||t==="TABITEM"||t==="CANVAS"||t==="RADIOGROUP"||t==="SCROLLWINDOW"){const h={type:l,parameters:n,settings:c,screenValues:this.screenValues,screenTimeZone:this.timeZone,widgets:[]};this.layoutStack.push(h),this.currentLayout.widgets.push(h),this.currentLayout=h}else if(this.$options.components[l])this.currentLayout.widgets.push({type:l,target:this.target,parameters:n,settings:c,screenValues:this.screenValues,screenTimeZone:this.timeZone,line:i,lineNumber:s});else{let h={type:"DynamicWidget",target:this.target,parameters:n,settings:c,screenValues:this.screenValues,screenTimeZone:this.timeZone,name:l,line:i,lineNumber:s};this.currentLayout.widgets.push(h),this.dynamicWidgets.push(h)}},applyGlobalSettings:function(t){t.forEach(n=>{this.globalSettings.forEach(i=>{n.type.toLowerCase()===i[0].toLowerCase()+"widget"&&(n.settings.find(o=>o[0]===i[1])||n.settings.push(i.slice(1)))}),n.widgets&&this.applyGlobalSettings(n.widgets)})},update:function(){let t=this.playbackMode==="playback"?this.playbackDateTime:null;this.actualScreenItems.length!==0&&this.api.get_tlm_values(this.actualScreenItems,this.staleTime,this.cacheTimeout,t).then(n=>{n&&n.length>0&&this.updateValues(n)}).catch(n=>{let i=JSON.stringify(n,null,2);this.errors.find(s=>s.message===i)||this.errors.length<V&&this.errors.push({type:"error",message:i,time:new Date().getTime()})})},updateValues:function(t){if(this.updateCounter+=1,t.length!=this.screenItems.length||t.length!=this.actualScreenItems.length)console.log(`get_tlm_values mismatch: data.length: ${t.length}, screenItems.length: ${this.screenItems.length}, actualScreenItems.length: ${this.actualScreenItems.length}`,JSON.stringify(t),JSON.stringify(this.screenItems),JSON.stringify(this.actualScreenItems));else for(let n=0;n<t.length;n++)t[n].push(this.updateCounter),this.screenValues[this.screenItems[n]]=t[n]},debouncedUpdateTlmAvailable:function(){this.tlmAvailableTimeout!=null&&clearTimeout(this.tlmAvailableTimeout),this.tlmAvailableTimeout=setTimeout(()=>{this.api.get_tlm_available(this.screenItems).then(t=>{if(this.actualScreenItems=t,this.screenItems.length!=t.length)console.log("Error getting tlm available",this.screenItems,this.actualScreenItems);else for(let n=0;n<this.actualScreenItems.length;n++)if(this.actualScreenItems[n]===null){const i=this.screenItems[n].split("__"),s=this.currentDefinition.split(`
5
+ `),o=s.findIndex(l=>l.includes(i[0])&&l.includes(i[1])&&l.includes(i[2]))+1;o>0?this.errors.push({type:"usage",message:`Null for ${i.join(" ")}! Does it exist?`,line:s[o-1],lineNumber:o,time:new Date().getTime()}):this.errors.push({type:"error",message:`Null for ${i.join(" ")}! Does it exist?`,time:new Date().getTime()})}}).catch(t=>{console.log("Error getting tlm available",t),this.actualScreenItems=this.screenItems}),this.tlmAvailableTimeout=null},100)},addItem:function(t){this.screenItems.push(t),this.screenValues[t]=[null,null,0],this.debouncedUpdateTlmAvailable()},deleteItem:function(t){let n=this.screenItems.indexOf(t);this.screenItems.splice(n,1),this.debouncedUpdateTlmAvailable()}}},Y={ref:"screen",class:"pa-1",style:{position:"relative"}},H={key:1,class:"pa-1",style:{position:"relative"}};function $(t,n,i,s,o,l){const c=e.resolveComponent("v-btn"),h=e.resolveComponent("v-tooltip"),u=e.resolveComponent("v-spacer"),d=e.resolveComponent("v-toolbar"),r=e.resolveComponent("v-overlay"),a=e.resolveComponent("vertical-widget"),m=e.resolveComponent("v-expand-transition"),f=e.resolveComponent("v-card"),y=e.resolveComponent("edit-screen-dialog"),v=e.resolveComponent("v-textarea"),p=e.resolveComponent("v-card-actions"),g=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock("div",{ref:"bar",style:e.normalizeStyle(l.computedStyle)},[i.inline?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(f,{key:0,"min-height":o.height,"min-width":o.width,style:{cursor:"default"}},{default:e.withCtx(()=>[e.createVNode(d,{height:"24"},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(c,{icon:"mdi-alert",variant:"text",density:"compact","data-test":"error-graph-icon","aria-label":"Show Errors",onClick:n[0]||(n[0]=()=>{o.errorDialog=!0})},null,512),[[e.vShow,o.errors.length!==0]]),e.createVNode(c,{icon:"mdi-pencil",variant:"text",density:"compact","data-test":"edit-screen-icon","aria-label":"Edit Screen",onClick:l.openEdit},null,8,["onClick"]),i.fixFloated?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(h,{key:0,"open-delay":600,location:"top"},{activator:e.withCtx(({props:x})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(x)),[e.createVNode(c,{icon:o.floated?"mdi-balloon":"mdi-view-grid-outline",variant:"text",density:"compact","data-test":"float-screen-icon","aria-label":o.floated?"Unfloat Screen":"Float Screen",onClick:l.floatScreen},null,8,["icon","aria-label","onClick"])],16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(o.floated?"Unfloat Screen":"Float Screen"),1)]),_:1})),o.floated?(e.openBlock(),e.createBlock(h,{key:1,"open-delay":600,location:"top"},{activator:e.withCtx(({props:x})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(x)),[e.createVNode(c,{icon:"mdi-arrow-up",variant:"text",density:"compact","data-test":"up-screen-icon","aria-label":"Move Screen Up",onClick:l.upScreen},null,8,["onClick"])],16)]),default:e.withCtx(()=>[n[6]||(n[6]=e.createElementVNode("span",null," Move Screen Up ",-1))]),_:1,__:[6]})):e.createCommentVNode("",!0),o.floated&&o.zIndex>i.minZ?(e.openBlock(),e.createBlock(h,{key:2,"open-delay":600,location:"top"},{activator:e.withCtx(({props:x})=>[e.createElementVNode("div",e.normalizeProps(e.guardReactiveProps(x)),[e.createVNode(c,{icon:"mdi-arrow-down",variant:"text",density:"compact","data-test":"down-screen-icon","aria-label":"Move Screen Down",onClick:l.downScreen},null,8,["onClick"])],16)]),default:e.withCtx(()=>[n[7]||(n[7]=e.createElementVNode("span",null," Move Screen Down ",-1))]),_:1,__:[7]})):e.createCommentVNode("",!0),e.createVNode(u),e.createElementVNode("span",null,e.toDisplayString(i.target)+" "+e.toDisplayString(i.screen),1),e.createVNode(u),o.expand?(e.openBlock(),e.createBlock(c,{key:3,icon:"mdi-window-minimize",variant:"text",density:"compact","data-test":"minimize-screen-icon","aria-label":"Minimize Screen",onClick:l.minMaxTransition},null,8,["onClick"])):(e.openBlock(),e.createBlock(c,{key:4,icon:"mdi-window-maximize",variant:"text",density:"compact","data-test":"maximize-screen-icon","aria-label":"Maximize Screen",onClick:l.minMaxTransition},null,8,["onClick"])),i.showClose?(e.openBlock(),e.createBlock(c,{key:5,icon:"mdi-close-box",variant:"text",density:"compact","data-test":"close-screen-icon","aria-label":"Close Screen",onClick:n[1]||(n[1]=x=>t.$emit("close-screen"))})):e.createCommentVNode("",!0)]),_:1}),o.editDialog?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(m,{key:0},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Y,[e.createVNode(r,{style:{"pointer-events":"none"},"model-value":o.errors.length!==0,opacity:"0.8",absolute:"",attach:"","scroll-strategy":"none"},null,8,["model-value"]),(e.openBlock(),e.createBlock(a,{key:o.screenKey,widgets:o.layoutStack[0].widgets,"screen-values":o.screenValues,"screen-time-zone":i.timeZone,onAddItem:l.addItem,onDeleteItem:l.deleteItem,onOpen:l.open,onClose:l.close,onCloseAll:l.closeAll},null,8,["widgets","screen-values","screen-time-zone","onAddItem","onDeleteItem","onOpen","onClose","onCloseAll"]))],512),[[e.vShow,o.expand]])]),_:1}))]),_:1},8,["min-height","min-width"])),i.inline?(e.openBlock(),e.createElementBlock("div",H,[e.createVNode(r,{style:{"pointer-events":"none"},"model-value":o.errors.length!==0,opacity:"0.8",absolute:"",attach:"","scroll-strategy":"none"},null,8,["model-value"]),e.withDirectives(e.createVNode(c,{icon:"mdi-alert",variant:"text",density:"compact","data-test":"error-graph-icon","aria-label":"Show Errors",onClick:n[2]||(n[2]=()=>{o.errorDialog=!0})},null,512),[[e.vShow,o.errors.length!==0]]),(e.openBlock(),e.createBlock(a,{key:o.screenKey,widgets:o.layoutStack[0].widgets,"screen-values":o.screenValues,"screen-time-zone":i.timeZone,onAddItem:l.addItem,onDeleteItem:l.deleteItem,onOpen:l.open,onClose:l.close,onCloseAll:l.closeAll},null,8,["widgets","screen-values","screen-time-zone","onAddItem","onDeleteItem","onOpen","onClose","onCloseAll"]))])):e.createCommentVNode("",!0),o.editDialog?(e.openBlock(),e.createBlock(y,{key:2,modelValue:o.editDialog,"onUpdate:modelValue":n[3]||(n[3]=x=>o.editDialog=x),target:i.target,screen:i.screen,definition:o.currentDefinition,keywords:i.keywords,errors:o.errors,onSave:l.saveEdit,onCancel:l.cancelEdit,onDelete:l.deleteScreen},null,8,["modelValue","target","screen","definition","keywords","errors","onSave","onCancel","onDelete"])):e.createCommentVNode("",!0),e.createVNode(g,{modelValue:o.errorDialog,"onUpdate:modelValue":n[5]||(n[5]=x=>o.errorDialog=x),width:"60vw"},{default:e.withCtx(()=>[e.createVNode(d,{height:"24"},{default:e.withCtx(()=>[e.createVNode(u),e.createElementVNode("span",null," Screen: "+e.toDisplayString(i.target)+" "+e.toDisplayString(i.screen)+" Errors ",1),e.createVNode(u)]),_:1}),e.createVNode(f,null,{default:e.withCtx(()=>[e.createVNode(v,{class:"errors",readonly:"",rows:"13","model-value":l.error},null,8,["model-value"]),e.createVNode(p,{class:"pb-5"},{default:e.withCtx(()=>[e.createVNode(u),e.createVNode(c,{variant:"outlined",class:"mr-2",onClick:l.clearErrors},{default:e.withCtx(()=>n[8]||(n[8]=[e.createTextVNode(" Clear Errors ",-1)])),_:1,__:[8]},8,["onClick"]),e.createVNode(c,{variant:"flat",class:"mr-2",onClick:n[4]||(n[4]=x=>o.errorDialog=!1)},{default:e.withCtx(()=>n[9]||(n[9]=[e.createTextVNode(" Close ",-1)])),_:1,__:[9]})]),_:1})]),_:1})]),_:1},8,["modelValue"])],4)}const J=w._export_sfc(j,[["render",$],["__scopeId","data-v-95e4a143"]]);exports.EditScreenDialog=N;exports.EnvironmentDialog=M;exports.FileOpenSaveDialog=X;exports.Openc3Screen=J;exports.ScreenCompleter=k;
6
+ //# sourceMappingURL=Openc3Screen-BP2oW88G.cjs.map