@openc3/vue-common 6.7.0 → 6.8.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 (406) hide show
  1. package/dist/{ArrayWidget-B__t3xOt.cjs → ArrayWidget-DaONH8Iv.cjs} +2 -2
  2. package/dist/{ArrayWidget-B__t3xOt.cjs.map → ArrayWidget-DaONH8Iv.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-BSG8KEtf.js → ArrayWidget-j3ncPuPx.js} +4 -4
  4. package/dist/{ArrayWidget-BSG8KEtf.js.map → ArrayWidget-j3ncPuPx.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-BduWyJlL.cjs → ArrayplotWidget-DPMVlst7.cjs} +2 -2
  6. package/dist/{ArrayplotWidget-BduWyJlL.cjs.map → ArrayplotWidget-DPMVlst7.cjs.map} +1 -1
  7. package/dist/{ArrayplotWidget-WVu76Kqn.js → ArrayplotWidget-DuLaiGa9.js} +3 -3
  8. package/dist/{ArrayplotWidget-WVu76Kqn.js.map → ArrayplotWidget-DuLaiGa9.js.map} +1 -1
  9. package/dist/{BarColumn-Cflh9pUz.js → BarColumn-BWJ0Dd4O.js} +3 -3
  10. package/dist/{BarColumn-Cflh9pUz.js.map → BarColumn-BWJ0Dd4O.js.map} +1 -1
  11. package/dist/{BarColumn-DVn9f2WO.cjs → BarColumn-CchXr_ex.cjs} +2 -2
  12. package/dist/{BarColumn-DVn9f2WO.cjs.map → BarColumn-CchXr_ex.cjs.map} +1 -1
  13. package/dist/{BlockWidget-B7ryWGCq.js → BlockWidget-Bf5Dd6Cr.js} +4 -4
  14. package/dist/{BlockWidget-B7ryWGCq.js.map → BlockWidget-Bf5Dd6Cr.js.map} +1 -1
  15. package/dist/{BlockWidget-CRqA09Ve.cjs → BlockWidget-CeDueZQ0.cjs} +2 -2
  16. package/dist/{BlockWidget-CRqA09Ve.cjs.map → BlockWidget-CeDueZQ0.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-Bb46aUCR.cjs → ButtonWidget-BZulfQct.cjs} +3 -3
  18. package/dist/{ButtonWidget-Bb46aUCR.cjs.map → ButtonWidget-BZulfQct.cjs.map} +1 -1
  19. package/dist/{ButtonWidget-BKih3ix9.js → ButtonWidget-bl_mGFYh.js} +16 -20
  20. package/dist/{ButtonWidget-BKih3ix9.js.map → ButtonWidget-bl_mGFYh.js.map} +1 -1
  21. package/dist/{CanvasWidget-DT_vPAoc.cjs → CanvasWidget-DwAXTAyn.cjs} +2 -2
  22. package/dist/{CanvasWidget-DT_vPAoc.cjs.map → CanvasWidget-DwAXTAyn.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-DT9xMSfb.js → CanvasWidget-boDemgx1.js} +2 -2
  24. package/dist/{CanvasWidget-DT9xMSfb.js.map → CanvasWidget-boDemgx1.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-7H5Hvcn-.js → CanvasdotWidget-BZBbJcER.js} +2 -2
  26. package/dist/{CanvasdotWidget-7H5Hvcn-.js.map → CanvasdotWidget-BZBbJcER.js.map} +1 -1
  27. package/dist/{CanvasdotWidget-DNSQriVo.cjs → CanvasdotWidget-ByJp9ZIa.cjs} +2 -2
  28. package/dist/{CanvasdotWidget-DNSQriVo.cjs.map → CanvasdotWidget-ByJp9ZIa.cjs.map} +1 -1
  29. package/dist/{CanvasimageWidget-BbWYx6Gj.js → CanvasimageWidget-6ywvT5jd.js} +3 -3
  30. package/dist/{CanvasimageWidget-BbWYx6Gj.js.map → CanvasimageWidget-6ywvT5jd.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-CfleScIF.cjs → CanvasimageWidget-BDprHuH3.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-CfleScIF.cjs.map → CanvasimageWidget-BDprHuH3.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-ouM4DBeD.cjs → CanvasimagevalueWidget-Cl_EuzNC.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-ouM4DBeD.cjs.map → CanvasimagevalueWidget-Cl_EuzNC.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-Blvoe2X4.js → CanvasimagevalueWidget-DjWrA3gX.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-Blvoe2X4.js.map → CanvasimagevalueWidget-DjWrA3gX.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-BPx_Rm4o.js → CanvaslabelWidget-Bq4V2BQh.js} +2 -2
  38. package/dist/{CanvaslabelWidget-BPx_Rm4o.js.map → CanvaslabelWidget-Bq4V2BQh.js.map} +1 -1
  39. package/dist/{CanvaslabelWidget-DB3qox5N.cjs → CanvaslabelWidget-aalWFBxK.cjs} +2 -2
  40. package/dist/{CanvaslabelWidget-DB3qox5N.cjs.map → CanvaslabelWidget-aalWFBxK.cjs.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-DzdWvL0W.js → CanvaslabelvalueWidget-C8oNcFLi.js} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-DzdWvL0W.js.map → CanvaslabelvalueWidget-C8oNcFLi.js.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-2k6TjSNj.cjs → CanvaslabelvalueWidget-DIO0fADo.cjs} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-2k6TjSNj.cjs.map → CanvaslabelvalueWidget-DIO0fADo.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-oAoznYZP.cjs → CanvaslineWidget-CqNOzV_A.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-oAoznYZP.cjs.map → CanvaslineWidget-CqNOzV_A.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-CqskilGk.js → CanvaslineWidget-nvbL2GoL.js} +2 -2
  48. package/dist/{CanvaslineWidget-CqskilGk.js.map → CanvaslineWidget-nvbL2GoL.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-BmyIxGNz.cjs → CanvaslinevalueWidget-D0kOhxXn.cjs} +2 -2
  50. package/dist/{CanvaslinevalueWidget-BmyIxGNz.cjs.map → CanvaslinevalueWidget-D0kOhxXn.cjs.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-C0JIKdvZ.js → CanvaslinevalueWidget-ZACQedKx.js} +2 -2
  52. package/dist/{CanvaslinevalueWidget-C0JIKdvZ.js.map → CanvaslinevalueWidget-ZACQedKx.js.map} +1 -1
  53. package/dist/{CheckbuttonWidget-C9FbJx2v.js → CheckbuttonWidget-B82UE8AB.js} +2 -2
  54. package/dist/{CheckbuttonWidget-C9FbJx2v.js.map → CheckbuttonWidget-B82UE8AB.js.map} +1 -1
  55. package/dist/{CheckbuttonWidget-C548xrRy.cjs → CheckbuttonWidget-L9xyRwfS.cjs} +2 -2
  56. package/dist/{CheckbuttonWidget-C548xrRy.cjs.map → CheckbuttonWidget-L9xyRwfS.cjs.map} +1 -1
  57. package/dist/{ClassificationBanners-BTdLBSfy.cjs → ClassificationBanners-ZF9Ab7D0.cjs} +2 -2
  58. package/dist/{ClassificationBanners-BTdLBSfy.cjs.map → ClassificationBanners-ZF9Ab7D0.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-CgJiwgTp.js → ClassificationBanners-jiqWjTAZ.js} +2 -2
  60. package/dist/{ClassificationBanners-CgJiwgTp.js.map → ClassificationBanners-jiqWjTAZ.js.map} +1 -1
  61. package/dist/{ComboboxWidget-BbNKT0s8.js → ComboboxWidget-4OFiSkI6.js} +2 -2
  62. package/dist/{ComboboxWidget-BbNKT0s8.js.map → ComboboxWidget-4OFiSkI6.js.map} +1 -1
  63. package/dist/{ComboboxWidget-AErojGw0.cjs → ComboboxWidget-6hmnB_mK.cjs} +2 -2
  64. package/dist/{ComboboxWidget-AErojGw0.cjs.map → ComboboxWidget-6hmnB_mK.cjs.map} +1 -1
  65. package/dist/{CriticalCmdDialog-N06JxCHg.cjs → CriticalCmdDialog-C-UGhtjE.cjs} +2 -2
  66. package/dist/{CriticalCmdDialog-N06JxCHg.cjs.map → CriticalCmdDialog-C-UGhtjE.cjs.map} +1 -1
  67. package/dist/{CriticalCmdDialog-CF7Sqjdm.js → CriticalCmdDialog-FhXDdBn4.js} +9 -12
  68. package/dist/{CriticalCmdDialog-CF7Sqjdm.js.map → CriticalCmdDialog-FhXDdBn4.js.map} +1 -1
  69. package/dist/{DateWidget-CBMsdRUE.js → DateWidget-BmwtdirF.js} +2 -2
  70. package/dist/{DateWidget-CBMsdRUE.js.map → DateWidget-BmwtdirF.js.map} +1 -1
  71. package/dist/{DateWidget-CCIkDM9_.cjs → DateWidget-CmSp7svA.cjs} +2 -2
  72. package/dist/{DateWidget-CCIkDM9_.cjs.map → DateWidget-CmSp7svA.cjs.map} +1 -1
  73. package/dist/{DetailsDialog-DRVahE5z.js → DetailsDialog-CLKEfU0s.js} +126 -158
  74. package/dist/{DetailsDialog-DRVahE5z.js.map → DetailsDialog-CLKEfU0s.js.map} +1 -1
  75. package/dist/DetailsDialog-DEicfRO1.cjs +2 -0
  76. package/dist/{DetailsDialog-CVYBgZll.cjs.map → DetailsDialog-DEicfRO1.cjs.map} +1 -1
  77. package/dist/{EventListDialog-DDWL9gIQ.js → EventListDialog-BvSMSn7J.js} +53 -68
  78. package/dist/{EventListDialog-DDWL9gIQ.js.map → EventListDialog-BvSMSn7J.js.map} +1 -1
  79. package/dist/EventListDialog-Em1RcH7I.cjs +2 -0
  80. package/dist/{EventListDialog-CjYLRdkb.cjs.map → EventListDialog-Em1RcH7I.cjs.map} +1 -1
  81. package/dist/{FormatvalueWidget-BLWsqhIZ.js → FormatvalueWidget-C8exC3bj.js} +3 -3
  82. package/dist/{FormatvalueWidget-BLWsqhIZ.js.map → FormatvalueWidget-C8exC3bj.js.map} +1 -1
  83. package/dist/{FormatvalueWidget-BiaqheLJ.cjs → FormatvalueWidget-auKALSPC.cjs} +2 -2
  84. package/dist/{FormatvalueWidget-BiaqheLJ.cjs.map → FormatvalueWidget-auKALSPC.cjs.map} +1 -1
  85. package/dist/Graph-BJqtVAaV.cjs +2 -0
  86. package/dist/Graph-BJqtVAaV.cjs.map +1 -0
  87. package/dist/{Graph-BiU56Qj2.js → Graph-CWcrowaT.js} +384 -391
  88. package/dist/Graph-CWcrowaT.js.map +1 -0
  89. package/dist/{GraphWidget-cfgX_skM.cjs → GraphWidget-BroqS0SO.cjs} +2 -2
  90. package/dist/{GraphWidget-cfgX_skM.cjs.map → GraphWidget-BroqS0SO.cjs.map} +1 -1
  91. package/dist/{GraphWidget-Ga0AEfrJ.js → GraphWidget-CvzxZYVx.js} +2 -2
  92. package/dist/{GraphWidget-Ga0AEfrJ.js.map → GraphWidget-CvzxZYVx.js.map} +1 -1
  93. package/dist/{HorizontalWidget-CsVhLwZO.js → HorizontalWidget-Ck151zVw.js} +2 -2
  94. package/dist/{HorizontalWidget-CsVhLwZO.js.map → HorizontalWidget-Ck151zVw.js.map} +1 -1
  95. package/dist/{HorizontalWidget-i6aqMSRv.cjs → HorizontalWidget-DBeyBZCp.cjs} +2 -2
  96. package/dist/{HorizontalWidget-i6aqMSRv.cjs.map → HorizontalWidget-DBeyBZCp.cjs.map} +1 -1
  97. package/dist/{HorizontalboxWidget-B_S8mswF.cjs → HorizontalboxWidget-CuWtYdgh.cjs} +2 -2
  98. package/dist/{HorizontalboxWidget-B_S8mswF.cjs.map → HorizontalboxWidget-CuWtYdgh.cjs.map} +1 -1
  99. package/dist/{HorizontalboxWidget-xC6PADl3.js → HorizontalboxWidget-D3P-cl9V.js} +5 -5
  100. package/dist/{HorizontalboxWidget-xC6PADl3.js.map → HorizontalboxWidget-D3P-cl9V.js.map} +1 -1
  101. package/dist/{HorizontallineWidget-NZIxmRVN.js → HorizontallineWidget-BE1TjPU8.js} +2 -2
  102. package/dist/{HorizontallineWidget-NZIxmRVN.js.map → HorizontallineWidget-BE1TjPU8.js.map} +1 -1
  103. package/dist/{HorizontallineWidget-Cpys-185.cjs → HorizontallineWidget-QUFjdOSu.cjs} +2 -2
  104. package/dist/{HorizontallineWidget-Cpys-185.cjs.map → HorizontallineWidget-QUFjdOSu.cjs.map} +1 -1
  105. package/dist/{IframeWidget-BgzjSfag.js → IframeWidget-BgJCgues.js} +2 -2
  106. package/dist/{IframeWidget-BgzjSfag.js.map → IframeWidget-BgJCgues.js.map} +1 -1
  107. package/dist/{IframeWidget-CCdvd8rg.cjs → IframeWidget-DOZ1YyS2.cjs} +2 -2
  108. package/dist/{IframeWidget-CCdvd8rg.cjs.map → IframeWidget-DOZ1YyS2.cjs.map} +1 -1
  109. package/dist/{ImageLoader-BIKl6vGc.cjs → ImageLoader-AGF0VbZ5.cjs} +2 -2
  110. package/dist/{ImageLoader-BIKl6vGc.cjs.map → ImageLoader-AGF0VbZ5.cjs.map} +1 -1
  111. package/dist/{ImageLoader-DbFVK1Ui.js → ImageLoader-CWn-PLOk.js} +2 -2
  112. package/dist/{ImageLoader-DbFVK1Ui.js.map → ImageLoader-CWn-PLOk.js.map} +1 -1
  113. package/dist/{ImageviewerWidget-BnT5m-nw.js → ImageviewerWidget-BlhFZD2f.js} +2 -2
  114. package/dist/{ImageviewerWidget-BnT5m-nw.js.map → ImageviewerWidget-BlhFZD2f.js.map} +1 -1
  115. package/dist/{ImageviewerWidget-lnralJZa.cjs → ImageviewerWidget-DnmhYP68.cjs} +2 -2
  116. package/dist/{ImageviewerWidget-lnralJZa.cjs.map → ImageviewerWidget-DnmhYP68.cjs.map} +1 -1
  117. package/dist/{InterfacesTab-DjlzjJYG.cjs → InterfacesTab-76UJTIwF.cjs} +2 -2
  118. package/dist/{InterfacesTab-DjlzjJYG.cjs.map → InterfacesTab-76UJTIwF.cjs.map} +1 -1
  119. package/dist/{InterfacesTab-Cd_RITVP.js → InterfacesTab-Cwz-zG7j.js} +3 -3
  120. package/dist/{InterfacesTab-Cd_RITVP.js.map → InterfacesTab-Cwz-zG7j.js.map} +1 -1
  121. package/dist/{LabelWidget-CRHSFVPT.cjs → LabelWidget-C0DhD9Mn.cjs} +2 -2
  122. package/dist/{LabelWidget-CRHSFVPT.cjs.map → LabelWidget-C0DhD9Mn.cjs.map} +1 -1
  123. package/dist/{LabelWidget-DSDYmz6X.js → LabelWidget-Cwosk4x2.js} +2 -2
  124. package/dist/{LabelWidget-DSDYmz6X.js.map → LabelWidget-Cwosk4x2.js.map} +1 -1
  125. package/dist/{LabelledWidget-BXf9cTf_.cjs → LabelledWidget-D8-aKfA_.cjs} +2 -2
  126. package/dist/{LabelledWidget-BXf9cTf_.cjs.map → LabelledWidget-D8-aKfA_.cjs.map} +1 -1
  127. package/dist/{LabelledWidget-DMb-myxs.js → LabelledWidget-Dl6rAFTQ.js} +4 -4
  128. package/dist/{LabelledWidget-DMb-myxs.js.map → LabelledWidget-Dl6rAFTQ.js.map} +1 -1
  129. package/dist/{LabelprogressbarWidget-BNHaAUXq.cjs → LabelprogressbarWidget-DosPhvaY.cjs} +2 -2
  130. package/dist/{LabelprogressbarWidget-BNHaAUXq.cjs.map → LabelprogressbarWidget-DosPhvaY.cjs.map} +1 -1
  131. package/dist/{LabelprogressbarWidget-CkjDJBao.js → LabelprogressbarWidget-MuAKesOz.js} +4 -4
  132. package/dist/{LabelprogressbarWidget-CkjDJBao.js.map → LabelprogressbarWidget-MuAKesOz.js.map} +1 -1
  133. package/dist/{LabelsparklineWidget-DBYPFz3Y.js → LabelsparklineWidget-6LA6Ox3d.js} +4 -4
  134. package/dist/{LabelsparklineWidget-DBYPFz3Y.js.map → LabelsparklineWidget-6LA6Ox3d.js.map} +1 -1
  135. package/dist/{LabelsparklineWidget-BpHMkt-L.cjs → LabelsparklineWidget-CLU8722I.cjs} +2 -2
  136. package/dist/{LabelsparklineWidget-BpHMkt-L.cjs.map → LabelsparklineWidget-CLU8722I.cjs.map} +1 -1
  137. package/dist/{LabelvalueWidget-DlTkJC4i.js → LabelvalueWidget-BxAXx-Tf.js} +4 -4
  138. package/dist/{LabelvalueWidget-DlTkJC4i.js.map → LabelvalueWidget-BxAXx-Tf.js.map} +1 -1
  139. package/dist/{LabelvalueWidget-BFHYb64m.cjs → LabelvalueWidget-WP4gK29n.cjs} +2 -2
  140. package/dist/{LabelvalueWidget-BFHYb64m.cjs.map → LabelvalueWidget-WP4gK29n.cjs.map} +1 -1
  141. package/dist/{LabelvaluedescWidget-CUld9MqE.cjs → LabelvaluedescWidget-BQ-6OXHc.cjs} +2 -2
  142. package/dist/{LabelvaluedescWidget-CUld9MqE.cjs.map → LabelvaluedescWidget-BQ-6OXHc.cjs.map} +1 -1
  143. package/dist/{LabelvaluedescWidget-dRqnGZub.js → LabelvaluedescWidget-Dwwlnd1g.js} +5 -5
  144. package/dist/{LabelvaluedescWidget-dRqnGZub.js.map → LabelvaluedescWidget-Dwwlnd1g.js.map} +1 -1
  145. package/dist/{LabelvaluelimitsbarWidget-CS4NAPJ1.js → LabelvaluelimitsbarWidget-Dv8Qk8kK.js} +4 -4
  146. package/dist/{LabelvaluelimitsbarWidget-CS4NAPJ1.js.map → LabelvaluelimitsbarWidget-Dv8Qk8kK.js.map} +1 -1
  147. package/dist/{LabelvaluelimitsbarWidget-Br_PXH0r.cjs → LabelvaluelimitsbarWidget-Z_7ARnvo.cjs} +2 -2
  148. package/dist/{LabelvaluelimitsbarWidget-Br_PXH0r.cjs.map → LabelvaluelimitsbarWidget-Z_7ARnvo.cjs.map} +1 -1
  149. package/dist/{LabelvaluelimitscolumnWidget-D9x4Ppv8.js → LabelvaluelimitscolumnWidget-D-_gl6fq.js} +5 -5
  150. package/dist/{LabelvaluelimitscolumnWidget-D9x4Ppv8.js.map → LabelvaluelimitscolumnWidget-D-_gl6fq.js.map} +1 -1
  151. package/dist/{LabelvaluelimitscolumnWidget-DjLG10C5.cjs → LabelvaluelimitscolumnWidget-DiO1b01N.cjs} +2 -2
  152. package/dist/{LabelvaluelimitscolumnWidget-DjLG10C5.cjs.map → LabelvaluelimitscolumnWidget-DiO1b01N.cjs.map} +1 -1
  153. package/dist/{LabelvaluerangebarWidget-Dhyng4-n.js → LabelvaluerangebarWidget-B3MKT-3Y.js} +4 -4
  154. package/dist/{LabelvaluerangebarWidget-Dhyng4-n.js.map → LabelvaluerangebarWidget-B3MKT-3Y.js.map} +1 -1
  155. package/dist/{LabelvaluerangebarWidget-CsUfrGAM.cjs → LabelvaluerangebarWidget-DtajHP0b.cjs} +2 -2
  156. package/dist/{LabelvaluerangebarWidget-CsUfrGAM.cjs.map → LabelvaluerangebarWidget-DtajHP0b.cjs.map} +1 -1
  157. package/dist/{Layout-mWR35VAD.js → Layout-Bkb6VP3e.js} +2 -2
  158. package/dist/{Layout-mWR35VAD.js.map → Layout-Bkb6VP3e.js.map} +1 -1
  159. package/dist/Layout-CSbYbZWA.cjs +2 -0
  160. package/dist/{Layout-DDktMnzb.cjs.map → Layout-CSbYbZWA.cjs.map} +1 -1
  161. package/dist/{LedWidget-D8cq4pUv.js → LedWidget-DOuDD8LI.js} +4 -4
  162. package/dist/{LedWidget-D8cq4pUv.js.map → LedWidget-DOuDD8LI.js.map} +1 -1
  163. package/dist/{LedWidget-CCQWCw80.cjs → LedWidget-DeREi8-u.cjs} +2 -2
  164. package/dist/{LedWidget-CCQWCw80.cjs.map → LedWidget-DeREi8-u.cjs.map} +1 -1
  165. package/dist/LimitsbarWidget-BHr3IcIx.cjs +2 -0
  166. package/dist/{LimitsbarWidget-D4O0LWuC.cjs.map → LimitsbarWidget-BHr3IcIx.cjs.map} +1 -1
  167. package/dist/{LimitsbarWidget-VGJnDuVM.js → LimitsbarWidget-D1U6SvVL.js} +4 -4
  168. package/dist/{LimitsbarWidget-VGJnDuVM.js.map → LimitsbarWidget-D1U6SvVL.js.map} +1 -1
  169. package/dist/{LimitscolorWidget-BvxsopUs.cjs → LimitscolorWidget-BUkKRrSL.cjs} +2 -2
  170. package/dist/{LimitscolorWidget-BvxsopUs.cjs.map → LimitscolorWidget-BUkKRrSL.cjs.map} +1 -1
  171. package/dist/{LimitscolorWidget-CG6Pqi12.js → LimitscolorWidget-iSMGusqt.js} +2 -2
  172. package/dist/{LimitscolorWidget-CG6Pqi12.js.map → LimitscolorWidget-iSMGusqt.js.map} +1 -1
  173. package/dist/{LimitscolumnWidget-Z9JnMlDS.cjs → LimitscolumnWidget-COfNnb6f.cjs} +2 -2
  174. package/dist/{LimitscolumnWidget-Z9JnMlDS.cjs.map → LimitscolumnWidget-COfNnb6f.cjs.map} +1 -1
  175. package/dist/{LimitscolumnWidget-DjovQdiT.js → LimitscolumnWidget-DjxZTt_r.js} +4 -4
  176. package/dist/{LimitscolumnWidget-DjovQdiT.js.map → LimitscolumnWidget-DjxZTt_r.js.map} +1 -1
  177. package/dist/{LinegraphWidget-DSWAhXgZ.js → LinegraphWidget-BHKU6zlT.js} +4 -4
  178. package/dist/{LinegraphWidget-DSWAhXgZ.js.map → LinegraphWidget-BHKU6zlT.js.map} +1 -1
  179. package/dist/{LinegraphWidget-B_ECNLzU.cjs → LinegraphWidget-RleSRWKa.cjs} +2 -2
  180. package/dist/{LinegraphWidget-B_ECNLzU.cjs.map → LinegraphWidget-RleSRWKa.cjs.map} +1 -1
  181. package/dist/{MatrixbycolumnsWidget-C3cuhRxz.js → MatrixbycolumnsWidget-BKO-A2QD.js} +3 -3
  182. package/dist/{MatrixbycolumnsWidget-C3cuhRxz.js.map → MatrixbycolumnsWidget-BKO-A2QD.js.map} +1 -1
  183. package/dist/{MatrixbycolumnsWidget-CPFzRQN5.cjs → MatrixbycolumnsWidget-DWouVj7A.cjs} +2 -2
  184. package/dist/{MatrixbycolumnsWidget-CPFzRQN5.cjs.map → MatrixbycolumnsWidget-DWouVj7A.cjs.map} +1 -1
  185. package/dist/{MicroservicesTab-BGgwT56M.cjs → MicroservicesTab-L6qMAy4x.cjs} +2 -2
  186. package/dist/{MicroservicesTab-BGgwT56M.cjs.map → MicroservicesTab-L6qMAy4x.cjs.map} +1 -1
  187. package/dist/{MicroservicesTab-Dbp02UlV.js → MicroservicesTab-xLup6THU.js} +4 -4
  188. package/dist/{MicroservicesTab-Dbp02UlV.js.map → MicroservicesTab-xLup6THU.js.map} +1 -1
  189. package/dist/{Openc3Screen-CkdegNDJ.js → Openc3Screen-1rQ_Dbp4.js} +403 -398
  190. package/dist/Openc3Screen-1rQ_Dbp4.js.map +1 -0
  191. package/dist/Openc3Screen-BHHnSEoI.cjs +6 -0
  192. package/dist/Openc3Screen-BHHnSEoI.cjs.map +1 -0
  193. package/dist/{OutputDialog-2CmOBAEE.cjs → OutputDialog-DgM7aoa-.cjs} +2 -2
  194. package/dist/{OutputDialog-2CmOBAEE.cjs.map → OutputDialog-DgM7aoa-.cjs.map} +1 -1
  195. package/dist/{OutputDialog-M5Xc_DqH.js → OutputDialog-Ut5cXGxQ.js} +5 -6
  196. package/dist/{OutputDialog-M5Xc_DqH.js.map → OutputDialog-Ut5cXGxQ.js.map} +1 -1
  197. package/dist/{PackagesTab-HQCOIGZK.js → PackagesTab-ChJDyU3Z.js} +30 -36
  198. package/dist/{PackagesTab-HQCOIGZK.js.map → PackagesTab-ChJDyU3Z.js.map} +1 -1
  199. package/dist/PackagesTab-jqsRJEcJ.cjs +2 -0
  200. package/dist/{PackagesTab-Dwp6g8W0.cjs.map → PackagesTab-jqsRJEcJ.cjs.map} +1 -1
  201. package/dist/{PluginsTab-CZApRILr.js → PluginsTab-CayzDij0.js} +462 -410
  202. package/dist/PluginsTab-CayzDij0.js.map +1 -0
  203. package/dist/PluginsTab-DYEv8EPg.cjs +6 -0
  204. package/dist/PluginsTab-DYEv8EPg.cjs.map +1 -0
  205. package/dist/{ProgressbarWidget-BADSYuUN.cjs → ProgressbarWidget-Xba7gDbW.cjs} +2 -2
  206. package/dist/{ProgressbarWidget-BADSYuUN.cjs.map → ProgressbarWidget-Xba7gDbW.cjs.map} +1 -1
  207. package/dist/{ProgressbarWidget-oCgAEFBO.js → ProgressbarWidget-fbr2qu_N.js} +2 -2
  208. package/dist/{ProgressbarWidget-oCgAEFBO.js.map → ProgressbarWidget-fbr2qu_N.js.map} +1 -1
  209. package/dist/{RadiobuttonWidget-Bklx2_Au.cjs → RadiobuttonWidget-CdpKw7jr.cjs} +2 -2
  210. package/dist/{RadiobuttonWidget-Bklx2_Au.cjs.map → RadiobuttonWidget-CdpKw7jr.cjs.map} +1 -1
  211. package/dist/{RadiobuttonWidget-D4Dak3lc.js → RadiobuttonWidget-DL08zcQT.js} +2 -2
  212. package/dist/{RadiobuttonWidget-D4Dak3lc.js.map → RadiobuttonWidget-DL08zcQT.js.map} +1 -1
  213. package/dist/{RadiogroupWidget-Z2S2tgjG.cjs → RadiogroupWidget-DSA8ENmw.cjs} +2 -2
  214. package/dist/{RadiogroupWidget-Z2S2tgjG.cjs.map → RadiogroupWidget-DSA8ENmw.cjs.map} +1 -1
  215. package/dist/{RadiogroupWidget-Dbe9T4fp.js → RadiogroupWidget-DW9Xpj3c.js} +2 -2
  216. package/dist/{RadiogroupWidget-Dbe9T4fp.js.map → RadiogroupWidget-DW9Xpj3c.js.map} +1 -1
  217. package/dist/{RangebarWidget-C0TpxFDi.cjs → RangebarWidget-B4oRyUwG.cjs} +2 -2
  218. package/dist/{RangebarWidget-C0TpxFDi.cjs.map → RangebarWidget-B4oRyUwG.cjs.map} +1 -1
  219. package/dist/{RangebarWidget-CIVrgqrW.js → RangebarWidget-o9q55kjc.js} +4 -4
  220. package/dist/{RangebarWidget-CIVrgqrW.js.map → RangebarWidget-o9q55kjc.js.map} +1 -1
  221. package/dist/RedisTab-BGz2ZN9T.js +171 -0
  222. package/dist/RedisTab-BGz2ZN9T.js.map +1 -0
  223. package/dist/RedisTab-Uqcfgux1.cjs +2 -0
  224. package/dist/RedisTab-Uqcfgux1.cjs.map +1 -0
  225. package/dist/{RollupWidget-BEDf-mfg.cjs → RollupWidget-43v3NX_Z.cjs} +2 -2
  226. package/dist/{RollupWidget-BEDf-mfg.cjs.map → RollupWidget-43v3NX_Z.cjs.map} +1 -1
  227. package/dist/{RollupWidget-CH1-XNLV.js → RollupWidget-BHnjj-DF.js} +2 -2
  228. package/dist/{RollupWidget-CH1-XNLV.js.map → RollupWidget-BHnjj-DF.js.map} +1 -1
  229. package/dist/{RoutersTab-BA-KlYIm.cjs → RoutersTab-Be53r61Y.cjs} +2 -2
  230. package/dist/{RoutersTab-BA-KlYIm.cjs.map → RoutersTab-Be53r61Y.cjs.map} +1 -1
  231. package/dist/{RoutersTab-WKa6K7B8.js → RoutersTab-CCEPlZ_Y.js} +3 -3
  232. package/dist/{RoutersTab-WKa6K7B8.js.map → RoutersTab-CCEPlZ_Y.js.map} +1 -1
  233. package/dist/{ScriptChooser-LsboGSgh.cjs → ScriptChooser-B6TGFTBN.cjs} +2 -2
  234. package/dist/{ScriptChooser-LsboGSgh.cjs.map → ScriptChooser-B6TGFTBN.cjs.map} +1 -1
  235. package/dist/{ScriptChooser-B5TkGuZ4.js → ScriptChooser-CXjcm3bN.js} +2 -2
  236. package/dist/{ScriptChooser-B5TkGuZ4.js.map → ScriptChooser-CXjcm3bN.js.map} +1 -1
  237. package/dist/{ScrollwindowWidget-BwFG6Wn8.js → ScrollwindowWidget-D-QVwztC.js} +3 -3
  238. package/dist/{ScrollwindowWidget-BwFG6Wn8.js.map → ScrollwindowWidget-D-QVwztC.js.map} +1 -1
  239. package/dist/{ScrollwindowWidget-DWxDmpFB.cjs → ScrollwindowWidget-D6ZHZr3o.cjs} +2 -2
  240. package/dist/{ScrollwindowWidget-DWxDmpFB.cjs.map → ScrollwindowWidget-D6ZHZr3o.cjs.map} +1 -1
  241. package/dist/{SecretsTab-DKX5gLH_.cjs → SecretsTab-DDZ1VoUf.cjs} +2 -2
  242. package/dist/{SecretsTab-DKX5gLH_.cjs.map → SecretsTab-DDZ1VoUf.cjs.map} +1 -1
  243. package/dist/{SecretsTab-Vtvbb_1U.js → SecretsTab-vVy356vr.js} +8 -10
  244. package/dist/{SecretsTab-Vtvbb_1U.js.map → SecretsTab-vVy356vr.js.map} +1 -1
  245. package/dist/{SettingsTab-DilFIQ3K.js → SettingsTab-CbWrf7U9.js} +261 -315
  246. package/dist/{SettingsTab-DilFIQ3K.js.map → SettingsTab-CbWrf7U9.js.map} +1 -1
  247. package/dist/SettingsTab-DsIVE5UL.cjs +3 -0
  248. package/dist/{SettingsTab-Ch52foLm.cjs.map → SettingsTab-DsIVE5UL.cjs.map} +1 -1
  249. package/dist/{SignalWidget-Gz2gHrUm.js → SignalWidget-CsWuufdx.js} +2 -2
  250. package/dist/{SignalWidget-Gz2gHrUm.js.map → SignalWidget-CsWuufdx.js.map} +1 -1
  251. package/dist/{SignalWidget-1WqQFVq9.cjs → SignalWidget-CysAE9ZG.cjs} +2 -2
  252. package/dist/{SignalWidget-1WqQFVq9.cjs.map → SignalWidget-CysAE9ZG.cjs.map} +1 -1
  253. package/dist/{SimpleTextDialog-BwOVWhRY.cjs → SimpleTextDialog-CU6G5CBY.cjs} +2 -2
  254. package/dist/{SimpleTextDialog-BwOVWhRY.cjs.map → SimpleTextDialog-CU6G5CBY.cjs.map} +1 -1
  255. package/dist/{SimpleTextDialog-Cmtrmt79.js → SimpleTextDialog-ChV5vRcV.js} +10 -11
  256. package/dist/{SimpleTextDialog-Cmtrmt79.js.map → SimpleTextDialog-ChV5vRcV.js.map} +1 -1
  257. package/dist/{SpacerWidget-Bzp3aI40.cjs → SpacerWidget-ChNk5TFU.cjs} +2 -2
  258. package/dist/{SpacerWidget-Bzp3aI40.cjs.map → SpacerWidget-ChNk5TFU.cjs.map} +1 -1
  259. package/dist/{SpacerWidget-Bg7VDB0k.js → SpacerWidget-Di9-qunj.js} +2 -2
  260. package/dist/{SpacerWidget-Bg7VDB0k.js.map → SpacerWidget-Di9-qunj.js.map} +1 -1
  261. package/dist/{SparklineWidget-D_b5rfJv.js → SparklineWidget-B6-zhdPW.js} +4 -4
  262. package/dist/{SparklineWidget-D_b5rfJv.js.map → SparklineWidget-B6-zhdPW.js.map} +1 -1
  263. package/dist/{SparklineWidget-kMWjVDrm.cjs → SparklineWidget-D1tVqSRL.cjs} +2 -2
  264. package/dist/{SparklineWidget-kMWjVDrm.cjs.map → SparklineWidget-D1tVqSRL.cjs.map} +1 -1
  265. package/dist/{TabbookWidget-C30f9B6z.js → TabbookWidget-B1E1_mzA.js} +2 -2
  266. package/dist/{TabbookWidget-C30f9B6z.js.map → TabbookWidget-B1E1_mzA.js.map} +1 -1
  267. package/dist/{TabbookWidget-DlVrU3wK.cjs → TabbookWidget-Btg-Axid.cjs} +2 -2
  268. package/dist/{TabbookWidget-DlVrU3wK.cjs.map → TabbookWidget-Btg-Axid.cjs.map} +1 -1
  269. package/dist/{TargetsTab-CEPId9dL.js → TargetsTab-DbbQcBuK.js} +4 -5
  270. package/dist/{TargetsTab-CEPId9dL.js.map → TargetsTab-DbbQcBuK.js.map} +1 -1
  271. package/dist/{TargetsTab-uqjueXlq.cjs → TargetsTab-pbmAAkOA.cjs} +2 -2
  272. package/dist/{TargetsTab-uqjueXlq.cjs.map → TargetsTab-pbmAAkOA.cjs.map} +1 -1
  273. package/dist/{TextBoxDialog-BlZ6MBoW.js → TextBoxDialog-CdFHdj5W.js} +4 -5
  274. package/dist/{TextBoxDialog-BlZ6MBoW.js.map → TextBoxDialog-CdFHdj5W.js.map} +1 -1
  275. package/dist/{TextBoxDialog--uIDsNPU.cjs → TextBoxDialog-DbD8P4Xc.cjs} +2 -2
  276. package/dist/{TextBoxDialog--uIDsNPU.cjs.map → TextBoxDialog-DbD8P4Xc.cjs.map} +1 -1
  277. package/dist/{TextboxWidget-CDqxsgys.js → TextboxWidget-CBVEXPw_.js} +4 -4
  278. package/dist/{TextboxWidget-CDqxsgys.js.map → TextboxWidget-CBVEXPw_.js.map} +1 -1
  279. package/dist/{TextboxWidget-BJka_3dT.cjs → TextboxWidget-CHXcR8lA.cjs} +2 -2
  280. package/dist/{TextboxWidget-BJka_3dT.cjs.map → TextboxWidget-CHXcR8lA.cjs.map} +1 -1
  281. package/dist/{TextfieldWidget-CAyjKJs6.js → TextfieldWidget-DZMHrtQa.js} +2 -2
  282. package/dist/{TextfieldWidget-CAyjKJs6.js.map → TextfieldWidget-DZMHrtQa.js.map} +1 -1
  283. package/dist/{TextfieldWidget-C7_48W7n.cjs → TextfieldWidget-vSJ9CtKs.cjs} +2 -2
  284. package/dist/{TextfieldWidget-C7_48W7n.cjs.map → TextfieldWidget-vSJ9CtKs.cjs.map} +1 -1
  285. package/dist/{TimeWidget-WPWiADCI.cjs → TimeWidget-ClkxS_oo.cjs} +2 -2
  286. package/dist/{TimeWidget-WPWiADCI.cjs.map → TimeWidget-ClkxS_oo.cjs.map} +1 -1
  287. package/dist/{TimeWidget-BQsP0G2X.js → TimeWidget-K4MNmJ7J.js} +2 -2
  288. package/dist/{TimeWidget-BQsP0G2X.js.map → TimeWidget-K4MNmJ7J.js.map} +1 -1
  289. package/dist/{TitleWidget-DXVba53S.js → TitleWidget-8IcwweFE.js} +2 -2
  290. package/dist/{TitleWidget-DXVba53S.js.map → TitleWidget-8IcwweFE.js.map} +1 -1
  291. package/dist/{TitleWidget-DavRJ5B5.cjs → TitleWidget-DJJ17ATm.cjs} +2 -2
  292. package/dist/{TitleWidget-DavRJ5B5.cjs.map → TitleWidget-DJJ17ATm.cjs.map} +1 -1
  293. package/dist/ToolsTab-BkabqeR_.cjs +7 -0
  294. package/dist/{ToolsTab-DUwXt5hn.cjs.map → ToolsTab-BkabqeR_.cjs.map} +1 -1
  295. package/dist/{ToolsTab-CSmjz1H7.js → ToolsTab-tkganPCk.js} +6 -7
  296. package/dist/{ToolsTab-CSmjz1H7.js.map → ToolsTab-tkganPCk.js.map} +1 -1
  297. package/dist/{TopBar-D_2lT9RB.js → TopBar-BoI8SRaF.js} +18 -20
  298. package/dist/{TopBar-D_2lT9RB.js.map → TopBar-BoI8SRaF.js.map} +1 -1
  299. package/dist/TopBar-zJvwq8pr.cjs +2 -0
  300. package/dist/{TopBar-C5lQcY1W.cjs.map → TopBar-zJvwq8pr.cjs.map} +1 -1
  301. package/dist/{UpgradeToEnterpriseDialog-Cvt5MMTj.js → UpgradeToEnterpriseDialog-BYz9YoyY.js} +13 -16
  302. package/dist/{UpgradeToEnterpriseDialog-Cvt5MMTj.js.map → UpgradeToEnterpriseDialog-BYz9YoyY.js.map} +1 -1
  303. package/dist/UpgradeToEnterpriseDialog-BxHUptQB.cjs +2 -0
  304. package/dist/{UpgradeToEnterpriseDialog-BHDDrj0t.cjs.map → UpgradeToEnterpriseDialog-BxHUptQB.cjs.map} +1 -1
  305. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BflJrsRh.cjs +1498 -0
  306. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BflJrsRh.cjs.map +1 -0
  307. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-quWsUlLr.js} +7475 -7319
  308. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-quWsUlLr.js.map +1 -0
  309. package/dist/VWidget-3ziiUuPM.cjs +2 -0
  310. package/dist/VWidget-3ziiUuPM.cjs.map +1 -0
  311. package/dist/VWidget-CoIgX3hM.js +190 -0
  312. package/dist/VWidget-CoIgX3hM.js.map +1 -0
  313. package/dist/{ValueWidget-B-TWLPdM.js → ValueWidget-BvT1ASar.js} +4 -4
  314. package/dist/{ValueWidget-B-TWLPdM.js.map → ValueWidget-BvT1ASar.js.map} +1 -1
  315. package/dist/{ValueWidget-5ulSOrPw.cjs → ValueWidget-RU-vFOh9.cjs} +2 -2
  316. package/dist/{ValueWidget-5ulSOrPw.cjs.map → ValueWidget-RU-vFOh9.cjs.map} +1 -1
  317. package/dist/{ValuelimitsbarWidget-CTFVDwcL.cjs → ValuelimitsbarWidget-B5UtwjJW.cjs} +2 -2
  318. package/dist/{ValuelimitsbarWidget-CTFVDwcL.cjs.map → ValuelimitsbarWidget-B5UtwjJW.cjs.map} +1 -1
  319. package/dist/{ValuelimitsbarWidget-jsDXdPdC.js → ValuelimitsbarWidget-C5lBnUmB.js} +4 -4
  320. package/dist/{ValuelimitsbarWidget-jsDXdPdC.js.map → ValuelimitsbarWidget-C5lBnUmB.js.map} +1 -1
  321. package/dist/{ValuelimitscolumnWidget-Du3Baz6G.cjs → ValuelimitscolumnWidget-BruOZb26.cjs} +2 -2
  322. package/dist/{ValuelimitscolumnWidget-Du3Baz6G.cjs.map → ValuelimitscolumnWidget-BruOZb26.cjs.map} +1 -1
  323. package/dist/{ValuelimitscolumnWidget-I-uwnXM2.js → ValuelimitscolumnWidget-DHYI0WBL.js} +4 -4
  324. package/dist/{ValuelimitscolumnWidget-I-uwnXM2.js.map → ValuelimitscolumnWidget-DHYI0WBL.js.map} +1 -1
  325. package/dist/{ValuerangebarWidget-OyhSTScu.js → ValuerangebarWidget-BSszZhlE.js} +4 -4
  326. package/dist/{ValuerangebarWidget-OyhSTScu.js.map → ValuerangebarWidget-BSszZhlE.js.map} +1 -1
  327. package/dist/{ValuerangebarWidget-BjXDCLm3.cjs → ValuerangebarWidget-BhQVRHhm.cjs} +2 -2
  328. package/dist/{ValuerangebarWidget-BjXDCLm3.cjs.map → ValuerangebarWidget-BhQVRHhm.cjs.map} +1 -1
  329. package/dist/{VerticalWidget-CkFbX1Gq.js → VerticalWidget-1GhgYrC3.js} +2 -2
  330. package/dist/{VerticalWidget-CkFbX1Gq.js.map → VerticalWidget-1GhgYrC3.js.map} +1 -1
  331. package/dist/{VerticalWidget-CKDTGmhp.cjs → VerticalWidget-XZrIw9zV.cjs} +2 -2
  332. package/dist/{VerticalWidget-CKDTGmhp.cjs.map → VerticalWidget-XZrIw9zV.cjs.map} +1 -1
  333. package/dist/{VerticalboxWidget-D09UbA0I.cjs → VerticalboxWidget-BV-onQ8m.cjs} +2 -2
  334. package/dist/{VerticalboxWidget-D09UbA0I.cjs.map → VerticalboxWidget-BV-onQ8m.cjs.map} +1 -1
  335. package/dist/{VerticalboxWidget-FEQgPM9r.js → VerticalboxWidget-DYHJqEzd.js} +5 -5
  336. package/dist/{VerticalboxWidget-FEQgPM9r.js.map → VerticalboxWidget-DYHJqEzd.js.map} +1 -1
  337. package/dist/{Widget-C3-TBgP7.js → Widget-B8t93Oid.js} +2 -2
  338. package/dist/{Widget-C3-TBgP7.js.map → Widget-B8t93Oid.js.map} +1 -1
  339. package/dist/{Widget-CSBtgNwA.cjs → Widget-Blq-k5SB.cjs} +2 -2
  340. package/dist/{Widget-CSBtgNwA.cjs.map → Widget-Blq-k5SB.cjs.map} +1 -1
  341. package/dist/cmdUtilities-BMsSNjt_.js +46 -0
  342. package/dist/cmdUtilities-BMsSNjt_.js.map +1 -0
  343. package/dist/cmdUtilities-ChD8v8-7.cjs +2 -0
  344. package/dist/cmdUtilities-ChD8v8-7.cjs.map +1 -0
  345. package/dist/components.cjs +3 -3
  346. package/dist/components.cjs.map +1 -1
  347. package/dist/components.js +656 -247
  348. package/dist/components.js.map +1 -1
  349. package/dist/plugins.cjs +2 -2
  350. package/dist/plugins.cjs.map +1 -1
  351. package/dist/plugins.js +6 -8
  352. package/dist/plugins.js.map +1 -1
  353. package/dist/{settings-BboN1VLt.cjs → settings-DyvFSj59.cjs} +2 -2
  354. package/dist/{settings-BboN1VLt.cjs.map → settings-DyvFSj59.cjs.map} +1 -1
  355. package/dist/{settings-spKii1fI.js → settings-UZsgbUSr.js} +2 -2
  356. package/dist/{settings-spKii1fI.js.map → settings-UZsgbUSr.js.map} +1 -1
  357. package/dist/tools/admin.cjs +2 -2
  358. package/dist/tools/admin.cjs.map +1 -1
  359. package/dist/tools/admin.js +75 -98
  360. package/dist/tools/admin.js.map +1 -1
  361. package/dist/tools/base.cjs +1 -1
  362. package/dist/tools/base.cjs.map +1 -1
  363. package/dist/tools/base.js +73 -98
  364. package/dist/tools/base.js.map +1 -1
  365. package/dist/tools/calendar.cjs +1 -1
  366. package/dist/tools/calendar.js +1 -1
  367. package/dist/tools/scriptrunner.cjs +33 -33
  368. package/dist/tools/scriptrunner.cjs.map +1 -1
  369. package/dist/tools/scriptrunner.js +852 -834
  370. package/dist/tools/scriptrunner.js.map +1 -1
  371. package/dist/util.cjs +1 -1
  372. package/dist/util.js +4 -2
  373. package/dist/util.js.map +1 -1
  374. package/dist/vue-common.css +1 -1
  375. package/dist/widgets.cjs +1 -1
  376. package/dist/widgets.js +63 -63
  377. package/package.json +8 -8
  378. package/dist/DetailsDialog-CVYBgZll.cjs +0 -2
  379. package/dist/EventListDialog-CjYLRdkb.cjs +0 -2
  380. package/dist/Graph-BiU56Qj2.js.map +0 -1
  381. package/dist/Graph-CWjf71TK.cjs +0 -2
  382. package/dist/Graph-CWjf71TK.cjs.map +0 -1
  383. package/dist/Layout-DDktMnzb.cjs +0 -2
  384. package/dist/LimitsbarWidget-D4O0LWuC.cjs +0 -2
  385. package/dist/Openc3Screen-BP2oW88G.cjs +0 -6
  386. package/dist/Openc3Screen-BP2oW88G.cjs.map +0 -1
  387. package/dist/Openc3Screen-CkdegNDJ.js.map +0 -1
  388. package/dist/PackagesTab-Dwp6g8W0.cjs +0 -2
  389. package/dist/PluginsTab-COKDXShE.cjs +0 -6
  390. package/dist/PluginsTab-COKDXShE.cjs.map +0 -1
  391. package/dist/PluginsTab-CZApRILr.js.map +0 -1
  392. package/dist/RedisTab-B8U-vEQZ.js +0 -138
  393. package/dist/RedisTab-B8U-vEQZ.js.map +0 -1
  394. package/dist/RedisTab-cgicWb81.cjs +0 -2
  395. package/dist/RedisTab-cgicWb81.cjs.map +0 -1
  396. package/dist/SettingsTab-Ch52foLm.cjs +0 -3
  397. package/dist/ToolsTab-DUwXt5hn.cjs +0 -7
  398. package/dist/TopBar-C5lQcY1W.cjs +0 -2
  399. package/dist/UpgradeToEnterpriseDialog-BHDDrj0t.cjs +0 -2
  400. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-DWYRspHE.js.map +0 -1
  401. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs +0 -1498
  402. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-mEnslAi4.cjs.map +0 -1
  403. package/dist/VWidget-C7V6pKTg.cjs +0 -2
  404. package/dist/VWidget-C7V6pKTg.cjs.map +0 -1
  405. package/dist/VWidget-CFTCukCL.js +0 -332
  406. package/dist/VWidget-CFTCukCL.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../src/components/config/Config.js","../src/components/config/OpenConfigDialog.vue","../src/components/config/SaveConfigDialog.vue","../src/components/LogMessages.vue","../src/components/NotFound.vue"],"sourcesContent":["/*\n# Copyright 2023 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n data: {\n configKey: '',\n // Applications can set to avoid persisting default config\n // Useful when loading and setting existing config\n dontSaveDefaultConfig: false,\n },\n methods: {\n loadDefaultConfig: function () {\n if (localStorage[`${this.configKey}__default`]) {\n return JSON.parse(localStorage[`${this.configKey}__default`])\n } else {\n return {}\n }\n },\n saveDefaultConfig: function (config) {\n if (this.dontSaveDefaultConfig === true) {\n return\n }\n localStorage[`${this.configKey}__default`] = JSON.stringify(config)\n },\n openConfigBase: function (name, routed = false, callback = null) {\n new OpenC3Api()\n .load_config(this.configKey, name)\n .then((response) => {\n if (response) {\n this.$notify.normal({\n title: 'Loading configuration',\n body: name,\n })\n if (callback) callback(JSON.parse(response))\n if (!routed) {\n if (!this.$route.fullPath.includes(name)) {\n this.$router.push({\n query: {\n config: name,\n },\n })\n }\n }\n } else {\n this.$notify.caution({\n title: 'Unknown configuration',\n body: name,\n })\n }\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error opening configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n saveConfigBase: function (name, config) {\n new OpenC3Api()\n .save_config(this.configKey, name, JSON.stringify(config))\n .then(() => {\n this.$notify.normal({\n title: 'Saved configuration',\n body: name,\n })\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error saving configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n resetConfigBase: function () {\n localStorage.removeItem(`${this.configKey}__default`)\n\n const query = { ...this.$route.query }\n delete query.config\n this.$router.replace({ query })\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 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 <v-dialog v-model=\"show\" width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Open Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n autofocus\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"open-config-cancel-btn\"\n @click=\"cancel\"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"open-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: String,\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (this.selectedItem === '' || this.selectedItem === null) {\n return 'Must select a config'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n if (!this.selectedItem) return\n this.$emit('success', this.selectedItem.config)\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 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 <v-dialog v-model=\"show\" width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Save Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <v-text-field\n v-model=\"configName\"\n hide-details\n autofocus\n :disabled=\"!!selectedItem\"\n label=\"Configuration Name\"\n data-test=\"name-input-save-config-dialog\"\n />\n </v-row>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn variant=\"outlined\" @click=\"cancel\"> Cancel </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"save-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: String,\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n configName: '',\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (!this.configName) {\n return 'Config must have a name'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n watch: {\n selectedItem: function (val) {\n if (val) {\n this.configName = val.config\n }\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n this.$emit('success', this.configName)\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n this.configName = ''\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title class=\"d-flex align-center justify-content-space-between\">\n <div class=\"d-flex align-baseline\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n size=\"small\"\n class=\"mr-2\"\n data-test=\"download-log\"\n @click=\"downloadLog\"\n />\n <span> Log Messages </span>\n <v-btn\n :icon=\"buttonIcon\"\n variant=\"text\"\n data-test=\"pause\"\n @click=\"pause\"\n />\n </div>\n <v-spacer />\n <v-select\n v-model=\"logLevel\"\n label=\"Filter by log level\"\n hide-details\n variant=\"outlined\"\n density=\"compact\"\n :items=\"logLevels\"\n class=\"mr-2\"\n style=\"max-width: 150px\"\n data-test=\"log-messages-level\"\n />\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n single-line\n hide-details\n style=\"max-width: 300px\"\n class=\"search\"\n data-test=\"search-log-messages\"\n />\n <v-btn\n icon=\"mdi-delete-sweep\"\n variant=\"text\"\n class=\"ml-2\"\n data-test=\"clear-log\"\n @click=\"clearLog\"\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"shownData\"\n :search=\"search\"\n :items-per-page=\"-1\"\n hide-default-footer\n multi-sort\n density=\"compact\"\n sticky\n hover\n data-test=\"log-messages\"\n >\n <template #item.timestamp=\"{ item }\">\n <time :title=\"item.timestamp\" :datetime=\"item.timestamp\">\n {{ item.timestamp }}\n </time>\n </template>\n <template #item.level=\"{ item }\">\n <span :style=\"'display: inline-flex; color:' + getColor(item.level)\">\n <rux-status class=\"mr-1\" :status=\"getStatus(item.level)\"></rux-status>\n {{ item.level }}</span\n >\n </template>\n <template #item.message=\"{ item }\">\n <div style=\"white-space: pre-wrap\">{{ item.message }}</div>\n </template>\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport { format } from 'date-fns'\nimport { Cable } from '@openc3/js-common/services'\nimport { AstroStatusColors, UnknownToAstroStatus } from '@/icons'\nimport { TimeFilters } from '@/util'\n\nexport default {\n mixins: [TimeFilters],\n props: {\n historyCount: {\n type: Number,\n default: 200,\n },\n timeZone: {\n type: String,\n default: 'local',\n },\n },\n data() {\n return {\n AstroStatusColors,\n data: [],\n shownData: [],\n logLevels: ['DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL'],\n logLevel: 'INFO',\n search: '',\n headers: [\n { title: 'Time', value: 'timestamp', nowrap: true },\n { title: 'Level', value: 'level' },\n { title: 'Source', value: 'microservice_name' },\n { title: 'Message', value: 'message' },\n ],\n cable: new Cable(),\n subscription: null,\n paused: false,\n }\n },\n computed: {\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n },\n watch: {\n logLevel: function (newVal, oldVal) {\n this.createSubscription()\n },\n },\n created() {\n this.createSubscription()\n },\n unmounted() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n methods: {\n pause: function () {\n this.paused = !this.paused\n },\n createSubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n this.data = []\n this.shownData = this.data\n }\n this.cable\n .createSubscription(\n 'MessagesChannel',\n window.openc3Scope,\n {\n received: (messages) => {\n this.cable.recordPing()\n if (messages.length > this.historyCount) {\n messages.splice(0, messages.length - this.historyCount)\n }\n // Filter messages before they're added to the table\n // This prevents a bunch of invisible 'INFO' messages from pushing\n // off the 'WARN' or 'ERROR' messages if we filter inside the data-table\n messages = messages.filter((message) => {\n switch (this.logLevel) {\n case 'DEBUG':\n return true\n case 'INFO':\n if (message.level !== 'DEBUG') {\n return true\n }\n break\n case 'WARN':\n if (message.level !== 'DEBUG' && message.level !== 'INFO') {\n return true\n }\n break\n case 'ERROR':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN'\n ) {\n return true\n }\n break\n case 'FATAL':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN' &&\n message.level !== 'ERROR'\n ) {\n return true\n }\n break\n }\n return false\n })\n messages.map((message) => {\n message.timestamp = this.formatTimestamp(\n message['@timestamp'],\n this.timeZone,\n )\n if (\n message.message.raw &&\n message.message.json_class === 'String'\n ) {\n // This is binary data, display in hex.\n let result = '0x'\n for (let i = 0; i < message.message.raw.length; i++) {\n let nibble = message.message.raw[i]\n .toString(16)\n .toUpperCase()\n if (nibble.length < 2) {\n nibble = '0' + nibble\n }\n result += nibble\n }\n message.message = result\n } else {\n message.message = message.message.replaceAll('\\\\n', '\\n')\n }\n })\n this.data = messages.reverse().concat(this.data)\n if (this.data.length > this.historyCount) {\n this.data.length = this.historyCount\n }\n if (!this.paused) {\n this.shownData = this.data\n }\n },\n },\n {\n // Channel parameter is history_count with underscore\n history_count: this.historyCount,\n types: ['log', 'notification', 'alert'],\n },\n )\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n getColor(level) {\n return AstroStatusColors[UnknownToAstroStatus[level]]\n },\n getStatus(level) {\n return UnknownToAstroStatus[level]\n },\n downloadLog() {\n const output = this.shownData\n .map(\n (entry) =>\n // Other fields are available like container_name, msg_id ... probably not useful\n `${entry.timestamp} | ${entry.level} | ${entry.microservice_name} | ${entry.message}`,\n )\n .join('\\n')\n const blob = new Blob([output], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n format(Date.now(), 'yyyy_MM_dd_HH_mm_ss') + '_message_log.txt',\n )\n link.click()\n },\n clearLog: function () {\n this.$dialog\n .confirm('Are you sure you want to clear the log?', {\n okText: 'Clear',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n this.data = []\n this.shownData = []\n })\n .catch(function (err) {\n // Canceling the dialog forces catch and sets err to true\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-card {\n /* take up any remaining vertical space\n (e.g. whatever is left after the tabs in cmdtlmserver)\n */\n flex-grow: 1;\n\n /* flex so the table can grow without making the card itself scroll */\n display: flex;\n flex-direction: column;\n}\n.v-data-table {\n height: 25vh; /* give it at least a bit of height to start with */\n flex-grow: 1; /* and then grow to fill all the space it can */\n}\n</style>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card v-if=\"show\">\n <v-card-title> 404 Not Found </v-card-title>\n <v-card-text class=\"d-flex align-center mt-3\">\n The requested URL\n <code class=\"mx-1\"> {{ $route.fullPath }} </code>\n was not routable.\n <span class=\"text-h3 mx-1\"> 🦄 </span>\n </v-card-text>\n </v-card>\n</template>\n\n<script>\nimport { getMountedApps } from 'single-spa'\n\nconst SINGLE_SPA_APP_CHANGE_EVENT = 'single-spa:app-change'\n\n// This component is actually always loaded for every route other than /login\n// because of the catch-all path in tool-base's router, so we need logic to\n// hide it when a tool is loaded.\nexport default {\n data() {\n return {\n show: false,\n }\n },\n created() {\n window.addEventListener(SINGLE_SPA_APP_CHANGE_EVENT, this.handleAppChange)\n },\n mounted() {\n // Give single-spa some time to get an app mounted to avoid flashing this\n setTimeout(() => {\n this.show = getMountedApps().length === 0\n }, 150)\n },\n unmounted() {\n window.removeEventListener(\n SINGLE_SPA_APP_CHANGE_EVENT,\n this.handleAppChange,\n )\n },\n methods: {\n handleAppChange: function (event) {\n this.show = !event.detail.appsByNewStatus.MOUNTED\n },\n },\n}\n</script>\n"],"names":["Config","config","name","routed","callback","OpenC3Api","response","error","query","_sfc_main","value","configId","row","item","dialog","_a","_hoisted_1","_createBlock","_component_v_dialog","$options","$event","_createVNode","_component_v_card","_createElementVNode","args","_component_v_toolbar","_component_v_spacer","_cache","_component_v_card_text","_component_v_row","_component_v_text_field","$data","_component_v_data_table","_withCtx","_component_v_btn","_toDisplayString","_component_v_card_actions","val","TimeFilters","AstroStatusColors","Cable","newVal","oldVal","messages","message","result","i","nibble","subscription","level","UnknownToAstroStatus","output","entry","blob","link","format","err","_hoisted_3","_component_v_card_title","_component_v_select","_hoisted_2","_normalizeStyle","_component_rux_status","SINGLE_SPA_APP_CHANGE_EVENT","getMountedApps","event","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sources":["../src/components/config/Config.js","../src/components/config/OpenConfigDialog.vue","../src/components/config/SaveConfigDialog.vue","../src/components/CommandParameterEditor.vue","../src/components/CommandEditor.vue","../src/components/LogMessages.vue","../src/components/NotFound.vue"],"sourcesContent":["/*\n# Copyright 2023 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n data: {\n configKey: '',\n // Applications can set to avoid persisting default config\n // Useful when loading and setting existing config\n dontSaveDefaultConfig: false,\n },\n methods: {\n loadDefaultConfig: function () {\n if (localStorage[`${this.configKey}__default`]) {\n return JSON.parse(localStorage[`${this.configKey}__default`])\n } else {\n return {}\n }\n },\n saveDefaultConfig: function (config) {\n if (this.dontSaveDefaultConfig === true) {\n return\n }\n localStorage[`${this.configKey}__default`] = JSON.stringify(config)\n },\n openConfigBase: function (name, routed = false, callback = null) {\n new OpenC3Api()\n .load_config(this.configKey, name)\n .then((response) => {\n if (response) {\n this.$notify.normal({\n title: 'Loading configuration',\n body: name,\n })\n if (callback) callback(JSON.parse(response))\n if (!routed) {\n if (!this.$route.fullPath.includes(name)) {\n this.$router.push({\n query: {\n config: name,\n },\n })\n }\n }\n } else {\n this.$notify.caution({\n title: 'Unknown configuration',\n body: name,\n })\n }\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error opening configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n saveConfigBase: function (name, config) {\n new OpenC3Api()\n .save_config(this.configKey, name, JSON.stringify(config))\n .then(() => {\n this.$notify.normal({\n title: 'Saved configuration',\n body: name,\n })\n })\n .catch((error) => {\n if (error) {\n this.$notify.serious({\n title: `Error saving configuration: ${name}`,\n body: error,\n })\n }\n })\n },\n resetConfigBase: function () {\n localStorage.removeItem(`${this.configKey}__default`)\n\n const query = { ...this.$route.query }\n delete query.config\n this.$router.replace({ query })\n },\n },\n}\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 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 <v-dialog v-model=\"show\" width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Open Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n autofocus\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn\n variant=\"outlined\"\n data-test=\"open-config-cancel-btn\"\n @click=\"cancel\"\n >\n Cancel\n </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"open-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: String,\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (this.selectedItem === '' || this.selectedItem === null) {\n return 'Must select a config'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n if (!this.selectedItem) return\n this.$emit('success', this.selectedItem.config)\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 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 <v-dialog v-model=\"show\" width=\"600\" @keydown.esc=\"cancel\">\n <v-card>\n <form @submit.prevent=\"success\">\n <v-toolbar height=\"24\">\n <v-spacer />\n <span>Save Configuration</span>\n <v-spacer />\n </v-toolbar>\n\n <v-card-text>\n <div class=\"mt-4 pa-3\">\n <v-row dense>\n <v-text-field\n v-model=\"search\"\n label=\"search\"\n type=\"text\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n clear-icon=\"mdi-close-circle-outline\"\n single-line\n hide-details\n data-test=\"search\"\n />\n </v-row>\n <v-data-table\n v-model=\"selectedRows\"\n show-select\n select-strategy=\"single\"\n item-value=\"configId\"\n :search=\"search\"\n :headers=\"headers\"\n :items=\"configs\"\n :items-per-page=\"5\"\n :items-per-page-options=\"[5]\"\n @click:row=\"($event, row) => selectRow(row)\"\n >\n <template #item.actions=\"{ item }\">\n <v-btn\n class=\"mt-1\"\n icon=\"mdi-delete\"\n variant=\"text\"\n data-test=\"item-delete\"\n @click=\"deleteConfig(item)\"\n />\n </template>\n </v-data-table>\n <v-row dense>\n <v-text-field\n v-model=\"configName\"\n hide-details\n autofocus\n :disabled=\"!!selectedItem\"\n label=\"Configuration Name\"\n data-test=\"name-input-save-config-dialog\"\n />\n </v-row>\n <v-row dense>\n <span v-show=\"error\" class=\"ma-2 text-red\" v-text=\"error\" />\n </v-row>\n </div>\n </v-card-text>\n <v-card-actions class=\"px-2\">\n <v-spacer />\n <v-btn variant=\"outlined\" @click=\"cancel\"> Cancel </v-btn>\n <v-btn\n variant=\"flat\"\n type=\"submit\"\n data-test=\"save-config-submit-btn\"\n :disabled=\"!!error\"\n @click.prevent=\"success\"\n >\n Ok\n </v-btn>\n </v-card-actions>\n </form>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n props: {\n configKey: String,\n modelValue: Boolean, // modelValue is the default prop when using v-model\n },\n data() {\n return {\n configName: '',\n configs: [],\n headers: [\n {\n title: 'Configuration',\n value: 'config',\n },\n {\n title: 'Actions',\n value: 'actions',\n align: 'end',\n sortable: false,\n },\n ],\n search: null,\n selectedRows: [],\n }\n },\n computed: {\n selectedItem: function () {\n if (this.selectedRows.length) {\n return this.configs.find(\n (config) => config.configId === this.selectedRows[0],\n )\n }\n return null\n },\n error: function () {\n if (!this.configName) {\n return 'Config must have a name'\n }\n return null\n },\n show: {\n get() {\n return this.modelValue\n },\n set(value) {\n this.$emit('update:modelValue', value) // update is the default event when using v-model\n },\n },\n },\n watch: {\n selectedItem: function (val) {\n if (val) {\n this.configName = val.config\n }\n },\n },\n mounted() {\n let configId = -1\n new OpenC3Api()\n .list_configs(this.configKey)\n .then((response) => {\n this.configs = response.map((config) => {\n configId += 1\n return { configId, config }\n })\n })\n .catch((error) => {\n this.$emit('warning', `Failed to connect to OpenC3. ${error}`)\n })\n },\n methods: {\n selectRow: function (row) {\n this.selectedRows = [row.item.configId]\n },\n success: function () {\n this.$emit('success', this.configName)\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n cancel: function () {\n this.show = false\n this.search = null\n this.selectedRows = []\n this.configName = ''\n },\n deleteConfig: function (item) {\n this.$dialog\n .confirm(`Are you sure you want to delete: ${item.config}`, {\n okText: 'Delete',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n if (this.selectedItem?.config === item.config) {\n this.selectedRows = []\n this.configName = ''\n }\n this.configs.splice(this.configs.indexOf(item), 1)\n new OpenC3Api().delete_config(this.configKey, item.config)\n })\n .catch((error) => {\n if (error !== true) {\n this.$emit(\n 'warning',\n `Failed to delete config ${item.config} Error: ${error}`,\n )\n }\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 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-text-field\n v-if=\"!states\"\n :model-value=\"textFieldValue\"\n hide-details\n density=\"compact\"\n variant=\"filled\"\n data-test=\"cmd-param-value\"\n @update:model-value=\"handleChange\"\n />\n <div v-else class=\"d-flex align-center\">\n <v-select\n :items=\"stateOptions\"\n :model-value=\"selectValue\"\n item-title=\"label\"\n :class=\"stateClass\"\n hide-details\n density=\"compact\"\n variant=\"outlined\"\n placeholder=\"Select...\"\n min-width=\"120px\"\n data-test=\"cmd-param-select\"\n @update:model-value=\"handleChange\"\n />\n <v-text-field\n :model-value=\"stateValue\"\n disabled\n hide-details\n density=\"compact\"\n variant=\"outlined\"\n min-width=\"60px\"\n data-test=\"cmd-param-value\"\n />\n </div>\n </div>\n</template>\n\n<script>\nimport { CmdUtilities } from '../util'\nexport default {\n name: 'CommandParameterEditor',\n mixins: [CmdUtilities],\n props: {\n modelValue: {\n type: [String, Number],\n default: undefined,\n },\n states: {\n type: Object,\n default: () => null,\n },\n statesInHex: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n computed: {\n textFieldValue() {\n return this.convertToString(this.modelValue)\n },\n stateValue() {\n if (this.statesInHex) {\n return '0x' + this.modelValue.toString(16)\n } else {\n return this.modelValue\n }\n },\n selectValue() {\n // this makes the placeholder prop work\n return this.modelValue === '' ? null : this.modelValue\n },\n stateOptions() {\n if (!this.states) {\n return null\n }\n return Object.keys(this.states).map((label) => {\n return {\n label,\n ...this.states[label],\n }\n })\n },\n hazardous() {\n return (\n Object.entries(this.states)\n .find(([label, state]) => state.value === this.modelValue)\n ?.at(1)?.hazardous !== undefined\n )\n },\n stateClass() {\n return this.hazardous ? 'hazardous mr-4' : 'mr-4'\n },\n },\n methods: {\n handleChange(value) {\n this.$emit('update:modelValue', value)\n },\n },\n}\n</script>\n<style scoped>\n/* This allows Value or State selection to be wider and show state names */\n.container :deep(.v-select__selections) {\n width: auto;\n}\n.v-overflow-btn {\n margin-top: 0px;\n}\n.container {\n padding: 0px;\n}\n.hazardous :deep(.v-select__selection-text) {\n color: rgb(255, 220, 0) !important;\n}\n</style>\n","<!--\n# Copyright 2025, OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <div style=\"padding: 10px\">\n <target-packet-item-chooser\n :initial-target-name=\"targetName\"\n :initial-packet-name=\"commandName\"\n :disabled=\"sendDisabled\"\n :button-text=\"showCommandButton ? 'Send' : null\"\n mode=\"cmd\"\n @on-set=\"commandChanged($event)\"\n @add-item=\"buildCmd($event)\"\n />\n </div>\n\n <v-card v-if=\"computedRows.length !== 0\">\n <v-card-title class=\"d-flex align-center justify-content-space-between\">\n Parameters\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n single-line\n hide-details\n class=\"search\"\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"computedRows\"\n :search=\"search\"\n :items-per-page=\"-1\"\n hide-default-footer\n multi-sort\n density=\"compact\"\n @contextmenu:row=\"showContextMenu\"\n >\n <template #item.val=\"{ item }\">\n <slot\n name=\"parameter-editor\"\n :item=\"item\"\n :states-in-hex=\"statesInHex\"\n >\n <!-- Default parameter editor if slot not provided -->\n <command-parameter-editor\n v-model=\"item.val\"\n :states=\"item.states\"\n :states-in-hex=\"statesInHex\"\n />\n </slot>\n </template>\n </v-data-table>\n </v-card>\n\n <v-menu v-model=\"contextMenuShown\" :target=\"[x, y]\">\n <v-list>\n <v-list-item\n v-for=\"(item, index) in contextMenuOptions\"\n :key=\"index\"\n @click.stop=\"item.action\"\n >\n <v-list-item-title>{{ item.title }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <details-dialog\n v-model=\"viewDetails\"\n :target-name=\"targetName\"\n :packet-name=\"commandName\"\n :item-name=\"parameterName\"\n :type=\"'cmd'\"\n />\n </v-card>\n</template>\n\n<script>\nimport 'sprintf-js'\nimport { OpenC3Api } from '@openc3/js-common/services'\nimport TargetPacketItemChooser from './TargetPacketItemChooser.vue'\nimport CommandParameterEditor from './CommandParameterEditor.vue'\nimport DetailsDialog from './DetailsDialog.vue'\nimport { CmdUtilities } from '../util'\n\nexport default {\n name: 'CommandEditor',\n components: {\n TargetPacketItemChooser,\n CommandParameterEditor,\n DetailsDialog,\n },\n mixins: [CmdUtilities],\n props: {\n initialTargetName: {\n type: String,\n default: null,\n },\n initialPacketName: {\n type: String,\n default: null,\n },\n cmdString: {\n type: String,\n default: null,\n },\n sendDisabled: {\n type: Boolean,\n default: false,\n },\n statesInHex: {\n type: Boolean,\n default: false,\n },\n showIgnoredParams: {\n type: Boolean,\n default: false,\n },\n cmdRaw: {\n type: Boolean,\n default: false,\n },\n showCommandButton: {\n type: Boolean,\n default: true,\n },\n },\n emits: ['command-changed', 'build-cmd'],\n data() {\n return {\n search: '',\n headers: [\n { title: 'Name', value: 'parameter_name' },\n { title: 'Value or State', value: 'val' },\n { title: 'Units', value: 'units' },\n { title: 'Range', value: 'range' },\n { title: 'Description', value: 'description' },\n ],\n api: null,\n targetName: '',\n commandName: '',\n commandDescription: '',\n ignoredParams: [],\n computedRows: [],\n reservedItemNames: [\n 'PACKET_TIMESECONDS',\n 'PACKET_TIMEFORMATTED',\n 'RECEIVED_TIMESECONDS',\n 'RECEIVED_TIMEFORMATTED',\n 'RECEIVED_COUNT',\n ],\n contextMenuShown: false,\n viewDetails: false,\n parameterName: '',\n x: 0,\n y: 0,\n contextMenuOptions: [\n {\n title: 'Details',\n action: () => {\n this.contextMenuShown = false\n this.viewDetails = true\n },\n },\n ],\n }\n },\n created() {\n this.api = new OpenC3Api()\n if (this.cmdString) {\n this.processCmdString()\n } else {\n this.targetName = this.initialTargetName\n this.commandName = this.initialPacketName\n this.updateCmdParams()\n }\n },\n methods: {\n commandChanged(event) {\n if (\n this.targetName !== event.targetName ||\n this.commandName !== event.packetName\n ) {\n this.targetName = event.targetName\n this.commandName = event.packetName\n this.updateCmdParams()\n }\n this.$emit('command-changed', event)\n },\n buildCmd(event) {\n this.$emit('build-cmd', event)\n },\n showContextMenu(event, row) {\n event.preventDefault()\n this.parameterName = row.item.parameter_name\n this.contextMenuShown = false\n this.x = event.clientX\n this.y = event.clientY\n this.$nextTick(() => {\n this.contextMenuShown = true\n })\n },\n updateCmdParams() {\n this.ignoredParams = []\n this.computedRows = []\n if (this.targetName && this.commandName) {\n this.api\n .get_target(this.targetName)\n .then(\n (target) => {\n this.ignoredParams = target.ignored_parameters\n return this.api.get_cmd(this.targetName, this.commandName)\n },\n (error) => {\n // eslint-disable-next-line no-console\n console.error('Error getting ignored parameters:', error)\n },\n )\n .then(\n (command) => {\n if (command) {\n command.items.forEach((parameter) => {\n if (this.reservedItemNames.includes(parameter.name)) return\n if (\n !this.ignoredParams.includes(parameter.name) ||\n this.showIgnoredParams\n ) {\n let val = parameter.default\n if (\n !parameter.states &&\n parameter.data_type === 'STRING' &&\n typeof parameter.default === 'string'\n ) {\n val = `'${val}'`\n }\n if (parameter.required) {\n val = null // Special marker for required parameters\n }\n if (parameter.format_string && parameter.default) {\n val = sprintf(parameter.format_string, parameter.default)\n }\n let range = 'N/A'\n if (\n parameter.minimum != null &&\n parameter.maximum != null\n ) {\n if (parameter.data_type === 'FLOAT') {\n if (parameter.minimum < -1e6) {\n if (Number.isSafeInteger(parameter.minimum)) {\n parameter.minimum =\n parameter.minimum.toExponential(3)\n }\n }\n if (parameter.maximum > 1e6) {\n if (Number.isSafeInteger(parameter.maximum)) {\n parameter.maximum =\n parameter.maximum.toExponential(3)\n }\n }\n }\n range = `${parameter.minimum}..${parameter.maximum}`\n }\n this.computedRows.push({\n parameter_name: parameter.name,\n val: val,\n states: parameter.states,\n description: parameter.description,\n range: range,\n units: parameter.units,\n type: parameter.data_type,\n })\n }\n })\n this.commandDescription = command.description\n\n // Populate with parsed parameters if available\n this.populateParametersFromParsed()\n }\n },\n (error) => {\n // eslint-disable-next-line no-console\n console.error('Error getting command parameters:', error)\n },\n )\n }\n },\n triggerUpdateCmdParams() {\n this.updateCmdParams()\n },\n getRows() {\n return this.computedRows\n },\n getCmdString() {\n let cmd = `${this.targetName} ${this.commandName}`\n if (this.computedRows.length === 0) return cmd\n cmd += ' with '\n for (const row of this.computedRows) {\n // null value indicates required parameter not set, see updateCmdParams\n if (row.val === null) {\n throw new Error(`Required parameter ${row.parameter_name} not set`)\n }\n if (row.val !== null && row.val !== undefined && row.val !== '') {\n if (row.states) {\n // If states exist, find the state name for the value\n const stateEntry = Object.entries(row.states).find(\n ([, state]) => state.value === row.val,\n )\n if (stateEntry) {\n // Although not always necessary, always quote states\n cmd += ` ${row.parameter_name} '${stateEntry[0]}',`\n continue\n }\n }\n // We only put the param value in quotes if it is a string with spaces\n // Check for array syntax because we do NOT quote arrays\n let value = this.convertToString(row.val)\n if (value.includes(' ') && !this.isArray(value)) {\n cmd += ` ${row.parameter_name} '${value}',`\n } else {\n cmd += ` ${row.parameter_name} ${value},`\n }\n }\n }\n // Remove trailing comma\n return cmd.slice(0, -1)\n },\n parseCmdString(cmdString) {\n // Parse commands in format: \"TARGET COMMAND with PARAM1 value1, PARAM2 value2\"\n const parts = cmdString.split(' ')\n if (parts.length < 2) return { target: '', command: '', params: {} }\n if (parts.length === 2) {\n return { target: parts[0], command: parts[1], params: {} }\n }\n // Check for a malformed command string that doesn't have 'with'\n if (parts[2] !== 'with') return { target: '', command: '', params: {} }\n\n const target = parts[0]\n const command = parts[1]\n let params = {}\n\n const paramsString = cmdString.split(' with ')[1]\n let paramPairs = []\n let bracketLevel = 0\n let current = ''\n // Parse the params char by char to handle commas inside brackets\n for (let char of paramsString) {\n if (char === '[') {\n bracketLevel++\n current += char\n } else if (char === ']') {\n bracketLevel--\n current += char\n } else if (char === ',' && bracketLevel === 0) {\n paramPairs.push(current.trim())\n current = ''\n } else {\n current += char\n }\n }\n if (current.trim() !== '') {\n paramPairs.push(current.trim())\n }\n\n for (let pair of paramPairs) {\n let firstSpace = pair.indexOf(' ')\n if (firstSpace > 0) {\n let key = pair.substring(0, firstSpace).trim()\n let value = pair.substring(firstSpace + 1).trim()\n params[key] = value\n }\n }\n return { target: target, command: command, params: params }\n },\n processCmdString() {\n const parsed = this.parseCmdString(this.cmdString)\n if (parsed.target && parsed.command) {\n this.targetName = parsed.target\n this.commandName = parsed.command\n this.parsedParameters = parsed.params\n this.updateCmdParams()\n }\n },\n populateParametersFromParsed() {\n // Populate parameters after command parameters are loaded\n if (\n !this.parsedParameters ||\n Object.keys(this.parsedParameters).length === 0\n ) {\n return\n }\n\n this.$nextTick(() => {\n // Give time for parameters to load\n setTimeout(() => {\n this.computedRows.forEach((row) => {\n if (this.parsedParameters.hasOwnProperty(row.parameter_name)) {\n const value = this.parsedParameters[row.parameter_name]\n // Set the value based on parameter type\n if (row.states && typeof value === 'string') {\n // For state parameters, try to match the state name\n const stateKey = Object.keys(row.states).find(\n (key) =>\n key === value || key.toLowerCase() === value.toLowerCase(),\n )\n if (stateKey) {\n row.val = row.states[stateKey].value\n } else {\n row.val = value\n }\n } else if (row.type === 'STRING' && typeof value === 'string') {\n // For string parameters, add quotes if not present\n row.val =\n value.startsWith(\"'\") || value.startsWith('\"')\n ? value\n : `'${value}'`\n } else {\n row.val = value\n }\n }\n })\n }, 100) // Shorter delay since we're already in the component\n })\n },\n },\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card>\n <v-card-title class=\"d-flex align-center justify-content-space-between\">\n <div class=\"d-flex align-baseline\">\n <v-btn\n icon=\"mdi-download\"\n variant=\"text\"\n size=\"small\"\n class=\"mr-2\"\n data-test=\"download-log\"\n @click=\"downloadLog\"\n />\n <span> Log Messages </span>\n <v-btn\n :icon=\"buttonIcon\"\n variant=\"text\"\n data-test=\"pause\"\n @click=\"pause\"\n />\n </div>\n <v-spacer />\n <v-select\n v-model=\"logLevel\"\n label=\"Filter by log level\"\n hide-details\n variant=\"outlined\"\n density=\"compact\"\n :items=\"logLevels\"\n class=\"mr-2\"\n style=\"max-width: 150px\"\n data-test=\"log-messages-level\"\n />\n <v-spacer />\n <v-text-field\n v-model=\"search\"\n label=\"Search\"\n prepend-inner-icon=\"mdi-magnify\"\n clearable\n variant=\"outlined\"\n density=\"compact\"\n single-line\n hide-details\n style=\"max-width: 300px\"\n class=\"search\"\n data-test=\"search-log-messages\"\n />\n <v-btn\n icon=\"mdi-delete-sweep\"\n variant=\"text\"\n class=\"ml-2\"\n data-test=\"clear-log\"\n @click=\"clearLog\"\n />\n </v-card-title>\n <v-data-table\n :headers=\"headers\"\n :items=\"shownData\"\n :search=\"search\"\n :items-per-page=\"-1\"\n hide-default-footer\n multi-sort\n density=\"compact\"\n sticky\n hover\n data-test=\"log-messages\"\n >\n <template #item.timestamp=\"{ item }\">\n <time :title=\"item.timestamp\" :datetime=\"item.timestamp\">\n {{ item.timestamp }}\n </time>\n </template>\n <template #item.level=\"{ item }\">\n <span :style=\"'display: inline-flex; color:' + getColor(item.level)\">\n <rux-status class=\"mr-1\" :status=\"getStatus(item.level)\"></rux-status>\n {{ item.level }}</span\n >\n </template>\n <template #item.message=\"{ item }\">\n <div style=\"white-space: pre-wrap\">{{ item.message }}</div>\n </template>\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport { format } from 'date-fns'\nimport { Cable } from '@openc3/js-common/services'\nimport { AstroStatusColors, UnknownToAstroStatus } from '@/icons'\nimport { TimeFilters } from '@/util'\n\nexport default {\n mixins: [TimeFilters],\n props: {\n historyCount: {\n type: Number,\n default: 200,\n },\n timeZone: {\n type: String,\n default: 'local',\n },\n },\n data() {\n return {\n AstroStatusColors,\n data: [],\n shownData: [],\n logLevels: ['DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL'],\n logLevel: 'INFO',\n search: '',\n headers: [\n { title: 'Time', value: 'timestamp', nowrap: true },\n { title: 'Level', value: 'level' },\n { title: 'Source', value: 'microservice_name' },\n { title: 'Message', value: 'message' },\n ],\n cable: new Cable(),\n subscription: null,\n paused: false,\n }\n },\n computed: {\n buttonIcon: function () {\n if (this.paused) {\n return 'mdi-play'\n } else {\n return 'mdi-pause'\n }\n },\n },\n watch: {\n logLevel: function (newVal, oldVal) {\n this.createSubscription()\n },\n },\n created() {\n this.createSubscription()\n },\n unmounted() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n }\n this.cable.disconnect()\n },\n methods: {\n pause: function () {\n this.paused = !this.paused\n },\n createSubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe()\n this.data = []\n this.shownData = this.data\n }\n this.cable\n .createSubscription(\n 'MessagesChannel',\n window.openc3Scope,\n {\n received: (messages) => {\n this.cable.recordPing()\n if (messages.length > this.historyCount) {\n messages.splice(0, messages.length - this.historyCount)\n }\n // Filter messages before they're added to the table\n // This prevents a bunch of invisible 'INFO' messages from pushing\n // off the 'WARN' or 'ERROR' messages if we filter inside the data-table\n messages = messages.filter((message) => {\n switch (this.logLevel) {\n case 'DEBUG':\n return true\n case 'INFO':\n if (message.level !== 'DEBUG') {\n return true\n }\n break\n case 'WARN':\n if (message.level !== 'DEBUG' && message.level !== 'INFO') {\n return true\n }\n break\n case 'ERROR':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN'\n ) {\n return true\n }\n break\n case 'FATAL':\n if (\n message.level !== 'DEBUG' &&\n message.level !== 'INFO' &&\n message.level !== 'WARN' &&\n message.level !== 'ERROR'\n ) {\n return true\n }\n break\n }\n return false\n })\n messages.map((message) => {\n message.timestamp = this.formatTimestamp(\n message['@timestamp'],\n this.timeZone,\n )\n if (\n message.message.raw &&\n message.message.json_class === 'String'\n ) {\n // This is binary data, display in hex.\n let result = '0x'\n for (let i = 0; i < message.message.raw.length; i++) {\n let nibble = message.message.raw[i]\n .toString(16)\n .toUpperCase()\n if (nibble.length < 2) {\n nibble = '0' + nibble\n }\n result += nibble\n }\n message.message = result\n } else {\n message.message = message.message.replaceAll('\\\\n', '\\n')\n }\n })\n this.data = messages.reverse().concat(this.data)\n if (this.data.length > this.historyCount) {\n this.data.length = this.historyCount\n }\n if (!this.paused) {\n this.shownData = this.data\n }\n },\n },\n {\n // Channel parameter is history_count with underscore\n history_count: this.historyCount,\n types: ['log', 'notification', 'alert'],\n },\n )\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n getColor(level) {\n return AstroStatusColors[UnknownToAstroStatus[level]]\n },\n getStatus(level) {\n return UnknownToAstroStatus[level]\n },\n downloadLog() {\n const output = this.shownData\n .map(\n (entry) =>\n // Other fields are available like container_name, msg_id ... probably not useful\n `${entry.timestamp} | ${entry.level} | ${entry.microservice_name} | ${entry.message}`,\n )\n .join('\\n')\n const blob = new Blob([output], {\n type: 'text/plain',\n })\n // Make a link and then 'click' on it to start the download\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.setAttribute(\n 'download',\n format(Date.now(), 'yyyy_MM_dd_HH_mm_ss') + '_message_log.txt',\n )\n link.click()\n },\n clearLog: function () {\n this.$dialog\n .confirm('Are you sure you want to clear the log?', {\n okText: 'Clear',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n this.data = []\n this.shownData = []\n })\n .catch(function (err) {\n // Canceling the dialog forces catch and sets err to true\n })\n },\n },\n}\n</script>\n\n<style scoped>\n.v-card {\n /* take up any remaining vertical space\n (e.g. whatever is left after the tabs in cmdtlmserver)\n */\n flex-grow: 1;\n\n /* flex so the table can grow without making the card itself scroll */\n display: flex;\n flex-direction: column;\n}\n.v-data-table {\n height: 25vh; /* give it at least a bit of height to start with */\n flex-grow: 1; /* and then grow to fill all the space it can */\n}\n</style>\n","<!--\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-card v-if=\"show\">\n <v-card-title> 404 Not Found </v-card-title>\n <v-card-text class=\"d-flex align-center mt-3\">\n The requested URL\n <code class=\"mx-1\"> {{ $route.fullPath }} </code>\n was not routable.\n <span class=\"text-h3 mx-1\"> 🦄 </span>\n </v-card-text>\n </v-card>\n <div v-if=\"showSpinner\" class=\"d-flex justify-center align-center\">\n <v-progress-circular indeterminate />\n </div>\n</template>\n\n<script>\nimport { getMountedApps } from 'single-spa'\n\nconst POLL_INTERVAL_MS = 50\nconst NOT_FOUND_TIMEOUT_MS = 2000\nconst SINGLE_SPA_APP_CHANGE_EVENT = 'single-spa:app-change'\n\n// This component is actually always loaded for every route other than /login\n// because of the catch-all path in tool-base's router, so we need logic to\n// hide it when a tool is loaded.\nexport default {\n data() {\n return {\n appsMounted: false,\n show: false,\n hideSpinner: false,\n pollInterval: null,\n }\n },\n computed: {\n showSpinner: function () {\n return !this.hideSpinner && !this.show\n },\n },\n created() {\n window.addEventListener(SINGLE_SPA_APP_CHANGE_EVENT, this.handleAppChange)\n },\n mounted() {\n this.pollForMountedApps()\n // This gives some time to allow slow connections to find the apps before flashing the 404\n setTimeout(() => {\n if (!this.appsMounted) {\n this.show = true\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n }\n }\n }, NOT_FOUND_TIMEOUT_MS)\n },\n unmounted() {\n window.removeEventListener(\n SINGLE_SPA_APP_CHANGE_EVENT,\n this.handleAppChange,\n )\n if (this.pollInterval) {\n clearInterval(this.pollInterval)\n }\n },\n methods: {\n handleAppChange: function (event) {\n this.show = !event.detail.appsByNewStatus.MOUNTED\n },\n pollForMountedApps: function () {\n // Check to see if there are single-spa apps that matched the route.\n // The app-change event doesn't cover this case...\n this.pollInterval = setInterval(() => {\n this.appsMounted = getMountedApps().length > 0\n if (getMountedApps().length > 0) {\n this.hideSpinner = true\n clearInterval(this.pollInterval)\n }\n }, POLL_INTERVAL_MS)\n },\n },\n}\n</script>\n"],"names":["Config","config","name","routed","callback","OpenC3Api","response","error","query","_sfc_main","value","configId","row","item","dialog","_a","_hoisted_1","_createBlock","_component_v_dialog","$options","$event","_createVNode","_component_v_card","_createElementVNode","args","_component_v_toolbar","_component_v_spacer","_cache","_component_v_card_text","_component_v_row","_component_v_text_field","$data","_component_v_data_table","_withCtx","_component_v_btn","_toDisplayString","_component_v_card_actions","val","CmdUtilities","label","_b","state","_createElementBlock","$props","_openBlock","_component_v_select","TargetPacketItemChooser","CommandParameterEditor","DetailsDialog","event","target","command","parameter","range","cmd","stateEntry","cmdString","parts","params","paramsString","paramPairs","bracketLevel","current","char","pair","firstSpace","key","parsed","stateKey","_component_target_packet_item_chooser","_component_v_card_title","_renderSlot","_ctx","_component_command_parameter_editor","_component_v_menu","_component_v_list","_Fragment","_renderList","index","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_component_details_dialog","TimeFilters","AstroStatusColors","Cable","newVal","oldVal","messages","message","result","i","nibble","subscription","level","UnknownToAstroStatus","output","entry","blob","link","format","err","_hoisted_3","_hoisted_2","_normalizeStyle","_component_rux_status","POLL_INTERVAL_MS","NOT_FOUND_TIMEOUT_MS","SINGLE_SPA_APP_CHANGE_EVENT","getMountedApps","_component_v_progress_circular"],"mappings":"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"}
package/dist/plugins.cjs CHANGED
@@ -1,9 +1,9 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),V=require("./CustomIcon-Bop2mEnu.cjs"),B=require("vuex"),E=require("vuetify"),C=require("./icons.cjs"),b={dark:!0,colors:{primary:"#005A8F",secondary:"#4DACFF",tertiary:"#BBC1C9","openc3-green":"#56f000","openc3-yellow":"#fce83a","openc3-red":"#ff3838","openc3-blue":"#2dccff","openc3-purple":"#c800c8","openc3-black":"#ffffff","openc3-white":"#ffffff"}},I={data:function(){return{show:!1,params:{title:"Title",text:"The text that is displayed",okText:"Ok",okClass:"primary",validateText:"CONFIRM",cancelText:"Cancel",html:!1},resolve:null,reject:null,validationText:null,rules:{required:e=>!!e||"Required.",match:e=>e===this.params.validateText||"Value mismatch."}}},computed:{dataTestOk:function(){return`confirm-dialog-${this.params.okText.toLowerCase()}`},dataTestCancel:function(){return`confirm-dialog-${this.params.cancelText.toLowerCase()}`}},methods:{dialog:function(e,o,n){this.params=e,this.show=!0,this.resolve=o,this.reject=n},ok:function(){(!this.params.validateText||this.params.validateText===this.validationText)&&(this.show=!1,this.resolve(!0),this.refresh())},cancel:function(){this.show=!1,this.reject(!0),this.refresh()},refresh:function(){this.validationText=""}}},P=["innerHTML"],j={key:2},F={key:3,class:"validate mt-4"};function H(e,o,n,a,s,i){const r=t.resolveComponent("v-spacer"),c=t.resolveComponent("v-toolbar"),l=t.resolveComponent("v-icon"),u=t.resolveComponent("v-text-field"),d=t.resolveComponent("v-card-text"),m=t.resolveComponent("v-btn"),h=t.resolveComponent("v-card-actions"),y=t.resolveComponent("v-card"),g=t.resolveComponent("v-dialog"),v=t.resolveComponent("v-app");return t.openBlock(),t.createBlock(v,null,{default:t.withCtx(()=>[t.createVNode(g,{modelValue:e.show,"onUpdate:modelValue":o[1]||(o[1]=f=>e.show=f),width:"600"},{default:t.withCtx(()=>[t.createVNode(y,null,{default:t.withCtx(()=>[t.createVNode(c,{height:"24"},{default:t.withCtx(()=>[t.createVNode(r),t.createElementVNode("span",null,t.toDisplayString(e.params.title),1),t.createVNode(r)]),_:1}),t.createVNode(d,{class:"mt-4 pa-3"},{default:t.withCtx(()=>[e.params.validateText?(t.openBlock(),t.createBlock(l,{key:0,class:"mr-2"},{default:t.withCtx(()=>o[2]||(o[2]=[t.createTextVNode(" mdi-alert ",-1)])),_:1,__:[2]})):t.createCommentVNode("",!0),e.params.html?(t.openBlock(),t.createElementBlock("span",{key:1,innerHTML:e.params.text},null,8,P)):(t.openBlock(),t.createElementBlock("span",j,t.toDisplayString(e.params.text),1)),e.params.validateText?(t.openBlock(),t.createElementBlock("div",F,[t.createTextVNode(" Enter "+t.toDisplayString(e.params.validateText)+" to confirm! ",1),t.createVNode(u,{modelValue:e.validationText,"onUpdate:modelValue":o[0]||(o[0]=f=>e.validationText=f),variant:"solo",density:"compact","single-line":"",rules:[e.rules.required,e.rules.match],"data-test":"confirm-dialog-validate"},null,8,["modelValue","rules"])])):t.createCommentVNode("",!0)]),_:1}),t.createVNode(h,{class:"px-2"},{default:t.withCtx(()=>[t.createVNode(r),e.params.cancelText?(t.openBlock(),t.createBlock(m,{key:0,variant:"outlined","data-test":i.dataTestCancel,onClick:i.cancel},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.params.cancelText),1)]),_:1},8,["data-test","onClick"])):t.createCommentVNode("",!0),t.createVNode(m,{variant:"flat",color:e.params.okClass,"data-test":i.dataTestOk,onClick:i.ok},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.params.okText),1)]),_:1},8,["color","data-test","onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})}const q=V._export_sfc(I,[["render",H],["__scopeId","data-v-de532a0f"]]);class R{constructor(){this.mounted=!1,this.$root=null}mount(){if(this.mounted)return;const o=window.Vue.createApp(q);o.use(N);const n=document.createElement("div");document.querySelector("#openc3-app-toolbar > div").appendChild(n),this.$root=o.mount(n),this.mounted=!0}open({title:o,text:n,okText:a,okClass:s,validateText:i,cancelText:r,html:c}){return this.mount(),new Promise((l,u)=>{this.$root.dialog({title:o,text:n,okText:a,okClass:s,validateText:i,cancelText:r,html:c},l,u)})}confirm(o,{okText:n="Ok",cancelText:a="Cancel",okClass:s="primary"}){return this.open({title:"Confirm",text:o,okText:n,okClass:s,validateText:null,cancelText:a,html:!1})}alert(o,{okText:n="Ok",html:a=!1,okClass:s="primary"}){return this.open({title:"Alert",text:o,okText:n,okClass:s,validateText:null,cancelText:null,html:a})}validate(o,{okText:n="Ok",validateText:a="CONFIRM",cancelText:s="Cancel",okClass:i="primary"}){return this.open({title:"Confirm",text:o,okText:n,okClass:i,validateText:a,cancelText:s,html:!1})}}const W={install(e,o){const n=new R;e.provide("dialog",n),e.config.globalProperties.hasOwnProperty("$dialog")||(e.config.globalProperties.$dialog=n)}},M={data:function(){return{showToast:!1,expanded:!1,toastNotification:{title:"Title here",body:"This is the notification body",message:"Overall message here"},timeout:null,noToastPaths:["/login"]}},computed:{toastNotificationIcon:function(){switch(this.toastNotification.type){case"notification":return"mdi-bell";case"alert":default:return"mdi-alert-box"}},toastStyle:function(){return`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),V=require("./CustomIcon-Bop2mEnu.cjs"),B=require("vuex"),E=require("vuetify"),C=require("./icons.cjs"),b={dark:!0,colors:{primary:"#005A8F",secondary:"#4DACFF",tertiary:"#BBC1C9","openc3-green":"#56f000","openc3-yellow":"#fce83a","openc3-red":"#ff3838","openc3-blue":"#2dccff","openc3-purple":"#c800c8","openc3-black":"#ffffff","openc3-white":"#ffffff"}},I={data:function(){return{show:!1,params:{title:"Title",text:"The text that is displayed",okText:"Ok",okClass:"primary",validateText:"CONFIRM",cancelText:"Cancel",html:!1},resolve:null,reject:null,validationText:null,rules:{required:e=>!!e||"Required.",match:e=>e===this.params.validateText||"Value mismatch."}}},computed:{dataTestOk:function(){return`confirm-dialog-${this.params.okText.toLowerCase()}`},dataTestCancel:function(){return`confirm-dialog-${this.params.cancelText.toLowerCase()}`}},methods:{dialog:function(e,o,n){this.params=e,this.show=!0,this.resolve=o,this.reject=n},ok:function(){(!this.params.validateText||this.params.validateText===this.validationText)&&(this.show=!1,this.resolve(!0),this.refresh())},cancel:function(){this.show=!1,this.reject(!0),this.refresh()},refresh:function(){this.validationText=""}}},P=["innerHTML"],j={key:2},F={key:3,class:"validate mt-4"};function H(e,o,n,a,s,i){const r=t.resolveComponent("v-spacer"),c=t.resolveComponent("v-toolbar"),l=t.resolveComponent("v-icon"),u=t.resolveComponent("v-text-field"),d=t.resolveComponent("v-card-text"),m=t.resolveComponent("v-btn"),h=t.resolveComponent("v-card-actions"),y=t.resolveComponent("v-card"),g=t.resolveComponent("v-dialog"),v=t.resolveComponent("v-app");return t.openBlock(),t.createBlock(v,null,{default:t.withCtx(()=>[t.createVNode(g,{modelValue:e.show,"onUpdate:modelValue":o[1]||(o[1]=f=>e.show=f),width:"600"},{default:t.withCtx(()=>[t.createVNode(y,null,{default:t.withCtx(()=>[t.createVNode(c,{height:"24"},{default:t.withCtx(()=>[t.createVNode(r),t.createElementVNode("span",null,t.toDisplayString(e.params.title),1),t.createVNode(r)]),_:1}),t.createVNode(d,{class:"mt-4 pa-3"},{default:t.withCtx(()=>[e.params.validateText?(t.openBlock(),t.createBlock(l,{key:0,class:"mr-2"},{default:t.withCtx(()=>[...o[2]||(o[2]=[t.createTextVNode(" mdi-alert ",-1)])]),_:1})):t.createCommentVNode("",!0),e.params.html?(t.openBlock(),t.createElementBlock("span",{key:1,innerHTML:e.params.text},null,8,P)):(t.openBlock(),t.createElementBlock("span",j,t.toDisplayString(e.params.text),1)),e.params.validateText?(t.openBlock(),t.createElementBlock("div",F,[t.createTextVNode(" Enter "+t.toDisplayString(e.params.validateText)+" to confirm! ",1),t.createVNode(u,{modelValue:e.validationText,"onUpdate:modelValue":o[0]||(o[0]=f=>e.validationText=f),variant:"solo",density:"compact","single-line":"",rules:[e.rules.required,e.rules.match],"data-test":"confirm-dialog-validate"},null,8,["modelValue","rules"])])):t.createCommentVNode("",!0)]),_:1}),t.createVNode(h,{class:"px-2"},{default:t.withCtx(()=>[t.createVNode(r),e.params.cancelText?(t.openBlock(),t.createBlock(m,{key:0,variant:"outlined","data-test":i.dataTestCancel,onClick:i.cancel},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.params.cancelText),1)]),_:1},8,["data-test","onClick"])):t.createCommentVNode("",!0),t.createVNode(m,{variant:"flat",color:e.params.okClass,"data-test":i.dataTestOk,onClick:i.ok},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.params.okText),1)]),_:1},8,["color","data-test","onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})}const q=V._export_sfc(I,[["render",H],["__scopeId","data-v-de532a0f"]]);class R{constructor(){this.mounted=!1,this.$root=null}mount(){if(this.mounted)return;const o=window.Vue.createApp(q);o.use(N);const n=document.createElement("div");document.querySelector("#openc3-app-toolbar > div").appendChild(n),this.$root=o.mount(n),this.mounted=!0}open({title:o,text:n,okText:a,okClass:s,validateText:i,cancelText:r,html:c}){return this.mount(),new Promise((l,u)=>{this.$root.dialog({title:o,text:n,okText:a,okClass:s,validateText:i,cancelText:r,html:c},l,u)})}confirm(o,{okText:n="Ok",cancelText:a="Cancel",okClass:s="primary"}){return this.open({title:"Confirm",text:o,okText:n,okClass:s,validateText:null,cancelText:a,html:!1})}alert(o,{okText:n="Ok",html:a=!1,okClass:s="primary"}){return this.open({title:"Alert",text:o,okText:n,okClass:s,validateText:null,cancelText:null,html:a})}validate(o,{okText:n="Ok",validateText:a="CONFIRM",cancelText:s="Cancel",okClass:i="primary"}){return this.open({title:"Confirm",text:o,okText:n,okClass:i,validateText:a,cancelText:s,html:!1})}}const W={install(e,o){const n=new R;e.provide("dialog",n),e.config.globalProperties.hasOwnProperty("$dialog")||(e.config.globalProperties.$dialog=n)}},M={data:function(){return{showToast:!1,expanded:!1,toastNotification:{title:"Title here",body:"This is the notification body",message:"Overall message here"},timeout:null,noToastPaths:["/login"]}},computed:{toastNotificationIcon:function(){switch(this.toastNotification.type){case"notification":return"mdi-bell";case"alert":default:return"mdi-alert-box"}},toastStyle:function(){return`
2
2
  --toast-bg-color:${C.AstroStatusColors[this.toastNotification.level]};
3
3
  --toast-fg-color:${C.getStatusColorContrast(this.toastNotification.level)};
4
4
  `},contentStyle:function(){return`
5
5
  white-space: ${this.expanded?"normal":"nowrap"};
6
6
  overflow-x: ${this.expanded?"visible":"hidden"};
7
7
  text-overflow: ${this.expanded?"unset":"ellipsis"};
8
- `}},methods:{toast:function(e,o){this.noToastPaths.includes(window.location.pathname)||(o===void 0&&(o=5e3),this.toastNotification=e,this.showToast=!0,this.cancelAutohide(),o&&(this.timeout=setTimeout(()=>{this.hide()},o)))},hide:function(){this.cancelAutohide(),this.showToast=!1},cancelAutohide:function(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},expand:function(){this.cancelAutohide(),this.expanded=!0}}},L={key:0,class:"text-subtitle-1 mr-1 notification-text"},U={key:1,class:"text-body-2 notification-text"},z={key:2,class:"text-body-2 notification-text"};function G(e,o,n,a,s,i){const r=t.resolveComponent("v-icon"),c=t.resolveComponent("v-spacer"),l=t.resolveComponent("v-btn"),u=t.resolveComponent("v-sheet"),d=t.resolveComponent("v-slide-y-transition");return t.openBlock(),t.createBlock(d,null,{default:t.withCtx(()=>[t.withDirectives(t.createVNode(u,{style:t.normalizeStyle(i.toastStyle),class:"toast-notification",onClick:i.expand},{default:t.withCtx(()=>[t.createVNode(r,{class:"mr-1 notification-text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.toastNotificationIcon),1)]),_:1}),t.createElementVNode("div",{class:"toast-content",style:t.normalizeStyle(i.contentStyle)},[e.toastNotification.title?(t.openBlock(),t.createElementBlock("span",L,[e.toastNotification.body||e.toastNotification.message?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(e.toastNotification.title)+": ",1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.toastNotification.title),1)],64))])):t.createCommentVNode("",!0),e.toastNotification.body?(t.openBlock(),t.createElementBlock("span",U,t.toDisplayString(e.toastNotification.body),1)):t.createCommentVNode("",!0),e.toastNotification.message?(t.openBlock(),t.createElementBlock("span",z,t.toDisplayString(e.toastNotification.message),1)):t.createCommentVNode("",!0)],4),t.createVNode(c),t.createVNode(l,{variant:"text",class:"notification-text",onClick:t.withModifiers(i.hide,["stop"])},{default:t.withCtx(()=>o[0]||(o[0]=[t.createTextVNode(" Dismiss ",-1)])),_:1,__:[0]},8,["onClick"])]),_:1},8,["style","onClick"]),[[t.vShow,e.showToast]])]),_:1})}const K=V._export_sfc(M,[["render",G],["__scopeId","data-v-84833581"]]);class Y{constructor(o={}){var n;this.$store=o.store,this.mounted=!1,this.$root=null,(n=window.$cosmosNotify)!=null&&n.$root?(this.mounted=!0,this.$root=window.$cosmosNotify.$root):window.$cosmosNotify=this}mount(){if(this.mounted)return;const o=t.createApp(K);o.use(N);const n=document.createElement("div");document.querySelector("#openc3-app-toolbar > div").appendChild(n),this.$root=o.mount(n),this.mounted=!0}open({method:o,title:n,body:a,message:s,level:i,duration:r,type:c="alert",logToConsole:l=!1,saveToHistory:u=!0}){this.mount(),l&&console.log(s?`${i.toUpperCase()} - ${s}`:`${i.toUpperCase()} - ${n}: ${a}`),u&&this.$store.commit("notifyAddHistory",{title:n,body:a,message:s,level:i}),this[o]({title:n,body:a,message:s,level:i,duration:r,type:c})}toast({title:o,body:n,message:a,level:s,duration:i,type:r}){this.$root.toast({title:o,body:n,message:a,level:s,type:r},i)}critical({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"critical",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}FATAL(o){this.critical(o)}ERROR(o){this.critical(o)}serious({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"serious",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}caution({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"caution",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}WARN(o){this.caution(o)}normal({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"normal",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}INFO(o){this.normal(o)}DEBUG(o){this.normal(o)}standby({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"standby",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}off({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"off",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}}const X={install(e,o){const n=new Y(o);e.provide("notify",n),e.config.globalProperties.hasOwnProperty("$notify")||(e.config.globalProperties.$notify=n)}},x=100,Z=B.createStore({state(){return{notifyHistory:[],namedWidgets:{},playback:{playbackMode:null,playbackDateTime:null,playbackStep:1}}},getters:{namedWidget:e=>o=>e.namedWidgets[o]},mutations:{notifyAddHistory(e,o){e.notifyHistory.length>=x&&(e.notifyHistory.length=x-1),e.notifyHistory.unshift(o)},notifyClearHistory(e){e.notifyHistory=[]},setNamedWidget(e,o){Object.assign(e.namedWidgets,o)},clearNamedWidget(e,o){delete e.namedWidgets[o]},playback(e,o){Object.assign(e.playback,o)}},modules:{}});function T(e){let o;return e!==null&&typeof e=="object"&&((o=Object.getPrototypeOf(e))===Object.prototype||o===null)}function J(e,o){const n={};for(const a of o)Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n}function $(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const a={};for(const s in e)a[s]=e[s];for(const s in o){const i=e[s],r=o[s];if(T(i)&&T(r)){a[s]=$(i,r,n);continue}if(n&&Array.isArray(i)&&Array.isArray(r)){a[s]=n(i,r);continue}a[s]=r}return a}function p(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(p.cache.has(e))return p.cache.get(e);const o=e.replace(/[^a-z]/gi,"-").replace(/\B([A-Z])/g,"-$1").toLowerCase();return p.cache.set(e,o),o}p.cache=new Map;function Q(e){t.warn(`Vuetify: ${e}`)}function S(e,o){return n=>Object.keys(e).reduce((a,s)=>{const r=typeof e[s]=="object"&&e[s]!=null&&!Array.isArray(e[s])?e[s]:{type:e[s]};return n&&s in n?a[s]={...r,default:n[s]}:a[s]=r,o&&!a[s].source&&(a[s].source=o),a},{})}function D(e,o){const n=t.getCurrentInstance();if(!n)throw new Error(`[Vuetify] ${e} must be called from inside a setup function`);return n}function ee(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:D("injectSelf");const{provides:n}=o;if(n&&e in n)return n[e]}const w=Symbol.for("vuetify:defaults");function O(){const e=t.inject(w);if(!e)throw new Error("[Vuetify] Could not find defaults instance");return e}function te(e,o){return e.props&&(typeof e.props[o]<"u"||typeof e.props[p(o)]<"u")}function oe(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:O();const a=D("useDefaults");if(o=o??a.type.name??a.type.__name,!o)throw new Error("[Vuetify] Could not determine component name");const s=t.computed(()=>{var l;return(l=n.value)==null?void 0:l[e._as??o]}),i=new Proxy(e,{get(l,u){var y,g,v,f;const d=Reflect.get(l,u);if(u==="class"||u==="style")return[(y=s.value)==null?void 0:y[u],d].filter(A=>A!=null);if(te(a.vnode,u))return d;const m=(g=s.value)==null?void 0:g[u];if(m!==void 0)return m;const h=(f=(v=n.value)==null?void 0:v.global)==null?void 0:f[u];return h!==void 0?h:d}}),r=t.shallowRef();t.watchEffect(()=>{if(s.value){const l=Object.entries(s.value).filter(u=>{let[d]=u;return d.startsWith(d[0].toUpperCase())});r.value=l.length?Object.fromEntries(l):void 0}else r.value=void 0});function c(){const l=ee(w,a);t.provide(w,t.computed(()=>r.value?$((l==null?void 0:l.value)??{},r.value):l==null?void 0:l.value))}return{props:i,provideSubDefaults:c}}function _(e){if(e._setup=e._setup??e.setup,!e.name)return Q("The component is missing an explicit name, unable to generate default prop value"),e;if(e._setup){e.props=S(e.props??{},e.name)();const o=Object.keys(e.props).filter(n=>n!=="class"&&n!=="style");e.filterProps=function(a){return J(a,o)},e.props._as=String,e.setup=function(a,s){const i=O();if(!i.value)return e._setup(a,s);const{props:r,provideSubDefaults:c}=oe(a,a._as??e.name,i),l=e._setup(r,s);return c(),l}}return e}function ne(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return o=>(e?_:t.defineComponent)(o)}const ae=[String,Function,Object,Array],k=S({icon:{type:ae},tag:{type:[String,Object,Function],required:!0}},"icon");ne()({name:"VComponentIcon",props:k(),setup(e,o){let{slots:n}=o;return()=>{const a=e.icon;return t.createVNode(e.tag,null,{default:()=>{var s;return[e.icon?t.createVNode(a,null,null):(s=n.default)==null?void 0:s.call(n)]}})}}});_({name:"VSvgIcon",inheritAttrs:!1,props:k(),setup(e,o){let{attrs:n}=o;return()=>t.createVNode(e.tag,t.mergeProps(n,{style:null}),{default:()=>[t.createElementVNode("svg",{class:"v-icon__svg",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":"true"},[Array.isArray(e.icon)?e.icon.map(a=>Array.isArray(a)?t.createElementVNode("path",{d:a[0],"fill-opacity":a[1]},null):t.createElementVNode("path",{d:a},null)):t.createElementVNode("path",{d:e.icon},null)])]})}});_({name:"VLigatureIcon",props:k(),setup(e){return()=>t.createVNode(e.tag,null,{default:()=>[e.icon]})}});const se=_({name:"VClassIcon",props:k(),setup(e){return()=>t.createVNode(e.tag,{class:t.normalizeClass(e.icon)},null)}}),ie={component:e=>t.h(se,{...e,class:"mdi"})},N=E.createVuetify({theme:{defaultTheme:"cosmosDark",themes:{cosmosDark:b}},icons:{defaultSet:"mdi",sets:{mdi:ie,...C.AstroIconVuetifySets,...C.CustomIconSet}}});exports.Dialog=W;exports.Notify=X;exports.cosmosThemeDark=b;exports.store=Z;exports.vuetify=N;
8
+ `}},methods:{toast:function(e,o){this.noToastPaths.includes(window.location.pathname)||(o===void 0&&(o=5e3),this.toastNotification=e,this.showToast=!0,this.cancelAutohide(),o&&(this.timeout=setTimeout(()=>{this.hide()},o)))},hide:function(){this.cancelAutohide(),this.showToast=!1},cancelAutohide:function(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},expand:function(){this.cancelAutohide(),this.expanded=!0}}},L={key:0,class:"text-subtitle-1 mr-1 notification-text"},U={key:1,class:"text-body-2 notification-text"},z={key:2,class:"text-body-2 notification-text"};function G(e,o,n,a,s,i){const r=t.resolveComponent("v-icon"),c=t.resolveComponent("v-spacer"),l=t.resolveComponent("v-btn"),u=t.resolveComponent("v-sheet"),d=t.resolveComponent("v-slide-y-transition");return t.openBlock(),t.createBlock(d,null,{default:t.withCtx(()=>[t.withDirectives(t.createVNode(u,{style:t.normalizeStyle(i.toastStyle),class:"toast-notification",onClick:i.expand},{default:t.withCtx(()=>[t.createVNode(r,{class:"mr-1 notification-text"},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(i.toastNotificationIcon),1)]),_:1}),t.createElementVNode("div",{class:"toast-content",style:t.normalizeStyle(i.contentStyle)},[e.toastNotification.title?(t.openBlock(),t.createElementBlock("span",L,[e.toastNotification.body||e.toastNotification.message?(t.openBlock(),t.createElementBlock(t.Fragment,{key:0},[t.createTextVNode(t.toDisplayString(e.toastNotification.title)+": ",1)],64)):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createTextVNode(t.toDisplayString(e.toastNotification.title),1)],64))])):t.createCommentVNode("",!0),e.toastNotification.body?(t.openBlock(),t.createElementBlock("span",U,t.toDisplayString(e.toastNotification.body),1)):t.createCommentVNode("",!0),e.toastNotification.message?(t.openBlock(),t.createElementBlock("span",z,t.toDisplayString(e.toastNotification.message),1)):t.createCommentVNode("",!0)],4),t.createVNode(c),t.createVNode(l,{variant:"text",class:"notification-text",onClick:t.withModifiers(i.hide,["stop"])},{default:t.withCtx(()=>[...o[0]||(o[0]=[t.createTextVNode(" Dismiss ",-1)])]),_:1},8,["onClick"])]),_:1},8,["style","onClick"]),[[t.vShow,e.showToast]])]),_:1})}const K=V._export_sfc(M,[["render",G],["__scopeId","data-v-84833581"]]);class Y{constructor(o={}){var n;this.$store=o.store,this.mounted=!1,this.$root=null,(n=window.$cosmosNotify)!=null&&n.$root?(this.mounted=!0,this.$root=window.$cosmosNotify.$root):window.$cosmosNotify=this}mount(){if(this.mounted)return;const o=t.createApp(K);o.use(N);const n=document.createElement("div");document.querySelector("#openc3-app-toolbar > div").appendChild(n),this.$root=o.mount(n),this.mounted=!0}open({method:o,title:n,body:a,message:s,level:i,duration:r,type:c="alert",logToConsole:l=!1,saveToHistory:u=!0}){this.mount(),l&&console.log(s?`${i.toUpperCase()} - ${s}`:`${i.toUpperCase()} - ${n}: ${a}`),u&&this.$store.commit("notifyAddHistory",{title:n,body:a,message:s,level:i}),this[o]({title:n,body:a,message:s,level:i,duration:r,type:c})}toast({title:o,body:n,message:a,level:s,duration:i,type:r}){this.$root.toast({title:o,body:n,message:a,level:s,type:r},i)}critical({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"critical",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}FATAL(o){this.critical(o)}ERROR(o){this.critical(o)}serious({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"serious",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}caution({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"caution",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}WARN(o){this.caution(o)}normal({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"normal",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}INFO(o){this.normal(o)}DEBUG(o){this.normal(o)}standby({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"standby",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}off({title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c}){this.open({method:"toast",level:"off",title:o,body:n,message:a,type:s,duration:i,logToConsole:r,saveToHistory:c})}}const X={install(e,o){const n=new Y(o);e.provide("notify",n),e.config.globalProperties.hasOwnProperty("$notify")||(e.config.globalProperties.$notify=n)}},x=100,Z=B.createStore({state(){return{notifyHistory:[],namedWidgets:{},playback:{playbackMode:null,playbackDateTime:null,playbackStep:1}}},getters:{namedWidget:e=>o=>e.namedWidgets[o]},mutations:{notifyAddHistory(e,o){e.notifyHistory.length>=x&&(e.notifyHistory.length=x-1),e.notifyHistory.unshift(o)},notifyClearHistory(e){e.notifyHistory=[]},setNamedWidget(e,o){Object.assign(e.namedWidgets,o)},clearNamedWidget(e,o){delete e.namedWidgets[o]},playback(e,o){Object.assign(e.playback,o)}},modules:{}});function T(e){let o;return e!==null&&typeof e=="object"&&((o=Object.getPrototypeOf(e))===Object.prototype||o===null)}function J(e,o){const n={};for(const a of o)Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n}function $(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const a={};for(const s in e)a[s]=e[s];for(const s in o){const i=e[s],r=o[s];if(T(i)&&T(r)){a[s]=$(i,r,n);continue}if(n&&Array.isArray(i)&&Array.isArray(r)){a[s]=n(i,r);continue}a[s]=r}return a}function p(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(p.cache.has(e))return p.cache.get(e);const o=e.replace(/[^a-z]/gi,"-").replace(/\B([A-Z])/g,"-$1").toLowerCase();return p.cache.set(e,o),o}p.cache=new Map;function Q(e){t.warn(`Vuetify: ${e}`)}function S(e,o){return n=>Object.keys(e).reduce((a,s)=>{const r=typeof e[s]=="object"&&e[s]!=null&&!Array.isArray(e[s])?e[s]:{type:e[s]};return n&&s in n?a[s]={...r,default:n[s]}:a[s]=r,o&&!a[s].source&&(a[s].source=o),a},{})}function D(e,o){const n=t.getCurrentInstance();if(!n)throw new Error(`[Vuetify] ${e} must be called from inside a setup function`);return n}function ee(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:D("injectSelf");const{provides:n}=o;if(n&&e in n)return n[e]}const w=Symbol.for("vuetify:defaults");function O(){const e=t.inject(w);if(!e)throw new Error("[Vuetify] Could not find defaults instance");return e}function te(e,o){return e.props&&(typeof e.props[o]<"u"||typeof e.props[p(o)]<"u")}function oe(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:O();const a=D("useDefaults");if(o=o??a.type.name??a.type.__name,!o)throw new Error("[Vuetify] Could not determine component name");const s=t.computed(()=>{var l;return(l=n.value)==null?void 0:l[e._as??o]}),i=new Proxy(e,{get(l,u){var y,g,v,f;const d=Reflect.get(l,u);if(u==="class"||u==="style")return[(y=s.value)==null?void 0:y[u],d].filter(A=>A!=null);if(te(a.vnode,u))return d;const m=(g=s.value)==null?void 0:g[u];if(m!==void 0)return m;const h=(f=(v=n.value)==null?void 0:v.global)==null?void 0:f[u];return h!==void 0?h:d}}),r=t.shallowRef();t.watchEffect(()=>{if(s.value){const l=Object.entries(s.value).filter(u=>{let[d]=u;return d.startsWith(d[0].toUpperCase())});r.value=l.length?Object.fromEntries(l):void 0}else r.value=void 0});function c(){const l=ee(w,a);t.provide(w,t.computed(()=>r.value?$((l==null?void 0:l.value)??{},r.value):l==null?void 0:l.value))}return{props:i,provideSubDefaults:c}}function _(e){if(e._setup=e._setup??e.setup,!e.name)return Q("The component is missing an explicit name, unable to generate default prop value"),e;if(e._setup){e.props=S(e.props??{},e.name)();const o=Object.keys(e.props).filter(n=>n!=="class"&&n!=="style");e.filterProps=function(a){return J(a,o)},e.props._as=String,e.setup=function(a,s){const i=O();if(!i.value)return e._setup(a,s);const{props:r,provideSubDefaults:c}=oe(a,a._as??e.name,i),l=e._setup(r,s);return c(),l}}return e}function ne(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return o=>(e?_:t.defineComponent)(o)}const ae=[String,Function,Object,Array],k=S({icon:{type:ae},tag:{type:[String,Object,Function],required:!0}},"icon");ne()({name:"VComponentIcon",props:k(),setup(e,o){let{slots:n}=o;return()=>{const a=e.icon;return t.createVNode(e.tag,null,{default:()=>{var s;return[e.icon?t.createVNode(a,null,null):(s=n.default)==null?void 0:s.call(n)]}})}}});_({name:"VSvgIcon",inheritAttrs:!1,props:k(),setup(e,o){let{attrs:n}=o;return()=>t.createVNode(e.tag,t.mergeProps(n,{style:null}),{default:()=>[t.createElementVNode("svg",{class:"v-icon__svg",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":"true"},[Array.isArray(e.icon)?e.icon.map(a=>Array.isArray(a)?t.createElementVNode("path",{d:a[0],"fill-opacity":a[1]},null):t.createElementVNode("path",{d:a},null)):t.createElementVNode("path",{d:e.icon},null)])]})}});_({name:"VLigatureIcon",props:k(),setup(e){return()=>t.createVNode(e.tag,null,{default:()=>[e.icon]})}});const se=_({name:"VClassIcon",props:k(),setup(e){return()=>t.createVNode(e.tag,{class:t.normalizeClass(e.icon)},null)}}),ie={component:e=>t.h(se,{...e,class:"mdi"})},N=E.createVuetify({theme:{defaultTheme:"cosmosDark",themes:{cosmosDark:b}},icons:{defaultSet:"mdi",sets:{mdi:ie,...C.AstroIconVuetifySets,...C.CustomIconSet}}});exports.Dialog=W;exports.Notify=X;exports.cosmosThemeDark=b;exports.store=Z;exports.vuetify=N;
9
9
  //# sourceMappingURL=plugins.cjs.map