@openc3/vue-common 6.3.0 → 6.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/dist/{ArrayWidget-DkjHrXsu.cjs → ArrayWidget-C7qsXQC9.cjs} +2 -2
  2. package/dist/{ArrayWidget-DkjHrXsu.cjs.map → ArrayWidget-C7qsXQC9.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-BbsN1dzF.js → ArrayWidget-CeyoPOhk.js} +4 -4
  4. package/dist/{ArrayWidget-BbsN1dzF.js.map → ArrayWidget-CeyoPOhk.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-CCKEyYIx.js → ArrayplotWidget-BEw4fJPY.js} +3 -3
  6. package/dist/{ArrayplotWidget-CCKEyYIx.js.map → ArrayplotWidget-BEw4fJPY.js.map} +1 -1
  7. package/dist/ArrayplotWidget-S4tyM6zU.cjs +2 -0
  8. package/dist/{ArrayplotWidget-COeaK_Lz.cjs.map → ArrayplotWidget-S4tyM6zU.cjs.map} +1 -1
  9. package/dist/BarColumn-B2FQVNoP.cjs +2 -0
  10. package/dist/{BarColumn-CJLW1nXy.cjs.map → BarColumn-B2FQVNoP.cjs.map} +1 -1
  11. package/dist/{BarColumn-C6p07yWK.js → BarColumn-CIWppEH6.js} +3 -3
  12. package/dist/{BarColumn-C6p07yWK.js.map → BarColumn-CIWppEH6.js.map} +1 -1
  13. package/dist/{BlockWidget-DlCHbqZX.js → BlockWidget-DRtBkPat.js} +4 -4
  14. package/dist/{BlockWidget-DlCHbqZX.js.map → BlockWidget-DRtBkPat.js.map} +1 -1
  15. package/dist/{BlockWidget-BFVYgbd_.cjs → BlockWidget-EZBTae9s.cjs} +2 -2
  16. package/dist/{BlockWidget-BFVYgbd_.cjs.map → BlockWidget-EZBTae9s.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-CtfJzCBR.js → ButtonWidget-4GORf9BG.js} +14 -14
  18. package/dist/{ButtonWidget-CtfJzCBR.js.map → ButtonWidget-4GORf9BG.js.map} +1 -1
  19. package/dist/ButtonWidget-C0UM4M51.cjs +3 -0
  20. package/dist/{ButtonWidget-HN8UHsme.cjs.map → ButtonWidget-C0UM4M51.cjs.map} +1 -1
  21. package/dist/{CanvasWidget-CHmkxxMO.cjs → CanvasWidget-77u4rg8R.cjs} +2 -2
  22. package/dist/{CanvasWidget-CHmkxxMO.cjs.map → CanvasWidget-77u4rg8R.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-CqRlXc4r.js → CanvasWidget-VW1uHIU0.js} +2 -2
  24. package/dist/{CanvasWidget-CqRlXc4r.js.map → CanvasWidget-VW1uHIU0.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-B4bUcKRc.cjs → CanvasdotWidget-B4olJsKr.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-B4bUcKRc.cjs.map → CanvasdotWidget-B4olJsKr.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget--Xr_KsZs.js → CanvasdotWidget-unc83V9l.js} +2 -2
  28. package/dist/{CanvasdotWidget--Xr_KsZs.js.map → CanvasdotWidget-unc83V9l.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-B5YozXoI.cjs → CanvasimageWidget-BPk3GdGV.cjs} +2 -2
  30. package/dist/{CanvasimageWidget-B5YozXoI.cjs.map → CanvasimageWidget-BPk3GdGV.cjs.map} +1 -1
  31. package/dist/{CanvasimageWidget-BPlj5QYK.js → CanvasimageWidget-CNPV5Ale.js} +3 -3
  32. package/dist/{CanvasimageWidget-BPlj5QYK.js.map → CanvasimageWidget-CNPV5Ale.js.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-Dx1HnbEw.cjs → CanvasimagevalueWidget-DpPDDitX.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-Dx1HnbEw.cjs.map → CanvasimagevalueWidget-DpPDDitX.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-DVFGLt8f.js → CanvasimagevalueWidget-DsQbSZt_.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-DVFGLt8f.js.map → CanvasimagevalueWidget-DsQbSZt_.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-CYNqmyP0.js → CanvaslabelWidget-B-5KAkZr.js} +2 -2
  38. package/dist/{CanvaslabelWidget-CYNqmyP0.js.map → CanvaslabelWidget-B-5KAkZr.js.map} +1 -1
  39. package/dist/{CanvaslabelWidget-DgadQD-D.cjs → CanvaslabelWidget-CjKvr47x.cjs} +2 -2
  40. package/dist/{CanvaslabelWidget-DgadQD-D.cjs.map → CanvaslabelWidget-CjKvr47x.cjs.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-C3k5gx5c.cjs → CanvaslabelvalueWidget-C0jdjHxr.cjs} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-C3k5gx5c.cjs.map → CanvaslabelvalueWidget-C0jdjHxr.cjs.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-B7yIDmsn.js → CanvaslabelvalueWidget-DX-b_55r.js} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-B7yIDmsn.js.map → CanvaslabelvalueWidget-DX-b_55r.js.map} +1 -1
  45. package/dist/{CanvaslineWidget-CYHkes0a.cjs → CanvaslineWidget-C-4EjDkj.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-CYHkes0a.cjs.map → CanvaslineWidget-C-4EjDkj.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-BICdxX0Q.js → CanvaslineWidget-DiNWzbpu.js} +2 -2
  48. package/dist/{CanvaslineWidget-BICdxX0Q.js.map → CanvaslineWidget-DiNWzbpu.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-Cq-Ddh0P.js → CanvaslinevalueWidget-Du9pwAN7.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-Cq-Ddh0P.js.map → CanvaslinevalueWidget-Du9pwAN7.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-5DzhZ22p.cjs → CanvaslinevalueWidget-x81dANpk.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-5DzhZ22p.cjs.map → CanvaslinevalueWidget-x81dANpk.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-B74AWeaW.js → CheckbuttonWidget--QM-segm.js} +2 -2
  54. package/dist/{CheckbuttonWidget-B74AWeaW.js.map → CheckbuttonWidget--QM-segm.js.map} +1 -1
  55. package/dist/{CheckbuttonWidget-BCzsXnIF.cjs → CheckbuttonWidget-LWSGbUuH.cjs} +2 -2
  56. package/dist/{CheckbuttonWidget-BCzsXnIF.cjs.map → CheckbuttonWidget-LWSGbUuH.cjs.map} +1 -1
  57. package/dist/{ComboboxWidget-CtyKbEWb.js → ComboboxWidget-BDpHIcCo.js} +2 -2
  58. package/dist/{ComboboxWidget-CtyKbEWb.js.map → ComboboxWidget-BDpHIcCo.js.map} +1 -1
  59. package/dist/{ComboboxWidget-DQgDyDAC.cjs → ComboboxWidget-DR8EmM6T.cjs} +2 -2
  60. package/dist/{ComboboxWidget-DQgDyDAC.cjs.map → ComboboxWidget-DR8EmM6T.cjs.map} +1 -1
  61. package/dist/CriticalCmdDialog-Ct5WeIW_.cjs +2 -0
  62. package/dist/CriticalCmdDialog-Ct5WeIW_.cjs.map +1 -0
  63. package/dist/{CriticalCmdDialog-DPIZOBeP.js → CriticalCmdDialog-D4-eoA3P.js} +16 -16
  64. package/dist/CriticalCmdDialog-D4-eoA3P.js.map +1 -0
  65. package/dist/{DateWidget-BEVSczU8.js → DateWidget-BCmQNavZ.js} +3 -3
  66. package/dist/{DateWidget-BEVSczU8.js.map → DateWidget-BCmQNavZ.js.map} +1 -1
  67. package/dist/{DateWidget-BB4cIuUS.cjs → DateWidget-CBzHYk5i.cjs} +2 -2
  68. package/dist/{DateWidget-BB4cIuUS.cjs.map → DateWidget-CBzHYk5i.cjs.map} +1 -1
  69. package/dist/{DetailsDialog-DmEC5BTs.js → DetailsDialog-OMd7LWdZ.js} +18 -18
  70. package/dist/DetailsDialog-OMd7LWdZ.js.map +1 -0
  71. package/dist/DetailsDialog-T9G076-B.cjs +2 -0
  72. package/dist/DetailsDialog-T9G076-B.cjs.map +1 -0
  73. package/dist/EventListDialog-COOwwkxk.cjs +2 -0
  74. package/dist/EventListDialog-COOwwkxk.cjs.map +1 -0
  75. package/dist/{EventListDialog-CSMSmCIT.js → EventListDialog-ankpCg-n.js} +520 -593
  76. package/dist/EventListDialog-ankpCg-n.js.map +1 -0
  77. package/dist/FormatvalueWidget-CPn5mDHY.js +48 -0
  78. package/dist/FormatvalueWidget-CPn5mDHY.js.map +1 -0
  79. package/dist/FormatvalueWidget-wjsl4ty0.cjs +2 -0
  80. package/dist/FormatvalueWidget-wjsl4ty0.cjs.map +1 -0
  81. package/dist/Graph-hTOB_jv2.cjs +2 -0
  82. package/dist/Graph-hTOB_jv2.cjs.map +1 -0
  83. package/dist/{Graph-Bgo0cjl3.js → Graph-vUcIyyTp.js} +666 -801
  84. package/dist/Graph-vUcIyyTp.js.map +1 -0
  85. package/dist/{GraphWidget-DurWDmpg.js → GraphWidget-Cl97QQYm.js} +2 -2
  86. package/dist/{GraphWidget-DurWDmpg.js.map → GraphWidget-Cl97QQYm.js.map} +1 -1
  87. package/dist/{GraphWidget-sid4Ws9H.cjs → GraphWidget-D3rDXvA8.cjs} +2 -2
  88. package/dist/{GraphWidget-sid4Ws9H.cjs.map → GraphWidget-D3rDXvA8.cjs.map} +1 -1
  89. package/dist/{HorizontalWidget-_6IR0cR8.cjs → HorizontalWidget-72nrDrwn.cjs} +2 -2
  90. package/dist/{HorizontalWidget-_6IR0cR8.cjs.map → HorizontalWidget-72nrDrwn.cjs.map} +1 -1
  91. package/dist/{HorizontalWidget-Cd_wl1b3.js → HorizontalWidget-CtTkQHl-.js} +2 -2
  92. package/dist/{HorizontalWidget-Cd_wl1b3.js.map → HorizontalWidget-CtTkQHl-.js.map} +1 -1
  93. package/dist/{HorizontalboxWidget-zmnurtv1.cjs → HorizontalboxWidget-C8kuEm-u.cjs} +2 -2
  94. package/dist/{HorizontalboxWidget-zmnurtv1.cjs.map → HorizontalboxWidget-C8kuEm-u.cjs.map} +1 -1
  95. package/dist/{HorizontalboxWidget-BcMTFBU-.js → HorizontalboxWidget-Dn9zVn4r.js} +5 -5
  96. package/dist/{HorizontalboxWidget-BcMTFBU-.js.map → HorizontalboxWidget-Dn9zVn4r.js.map} +1 -1
  97. package/dist/{HorizontallineWidget-CXFqHclf.js → HorizontallineWidget-BBvYWaP7.js} +2 -2
  98. package/dist/{HorizontallineWidget-CXFqHclf.js.map → HorizontallineWidget-BBvYWaP7.js.map} +1 -1
  99. package/dist/{HorizontallineWidget-CM-6WqCj.cjs → HorizontallineWidget-Bs_p5rzY.cjs} +2 -2
  100. package/dist/{HorizontallineWidget-CM-6WqCj.cjs.map → HorizontallineWidget-Bs_p5rzY.cjs.map} +1 -1
  101. package/dist/{IframeWidget-EhncMob0.cjs → IframeWidget-Bhl0G51c.cjs} +2 -2
  102. package/dist/{IframeWidget-EhncMob0.cjs.map → IframeWidget-Bhl0G51c.cjs.map} +1 -1
  103. package/dist/{IframeWidget-BPerHCCa.js → IframeWidget-BmZOip3U.js} +2 -2
  104. package/dist/{IframeWidget-BPerHCCa.js.map → IframeWidget-BmZOip3U.js.map} +1 -1
  105. package/dist/ImageLoader-CXV42ZAx.cjs +2 -0
  106. package/dist/{ImageLoader-cRmBcpU9.cjs.map → ImageLoader-CXV42ZAx.cjs.map} +1 -1
  107. package/dist/{ImageLoader-4N-7Gj61.js → ImageLoader-wYNaGuuz.js} +2 -2
  108. package/dist/{ImageLoader-4N-7Gj61.js.map → ImageLoader-wYNaGuuz.js.map} +1 -1
  109. package/dist/{ImageviewerWidget-Bv3CreXd.cjs → ImageviewerWidget-BAK_GlYK.cjs} +2 -2
  110. package/dist/{ImageviewerWidget-Bv3CreXd.cjs.map → ImageviewerWidget-BAK_GlYK.cjs.map} +1 -1
  111. package/dist/{ImageviewerWidget-Cw_H_HmZ.js → ImageviewerWidget-ByuTqBHq.js} +2 -2
  112. package/dist/{ImageviewerWidget-Cw_H_HmZ.js.map → ImageviewerWidget-ByuTqBHq.js.map} +1 -1
  113. package/dist/InterfacesTab-BbsiYwEX.js +83 -0
  114. package/dist/InterfacesTab-BbsiYwEX.js.map +1 -0
  115. package/dist/InterfacesTab-CnQLkjoz.cjs +2 -0
  116. package/dist/InterfacesTab-CnQLkjoz.cjs.map +1 -0
  117. package/dist/{LabelWidget-mMcf5S8K.cjs → LabelWidget-BP72ze-R.cjs} +2 -2
  118. package/dist/{LabelWidget-mMcf5S8K.cjs.map → LabelWidget-BP72ze-R.cjs.map} +1 -1
  119. package/dist/{LabelWidget-xrmcVeq8.js → LabelWidget-Dmb5F5j-.js} +2 -2
  120. package/dist/{LabelWidget-xrmcVeq8.js.map → LabelWidget-Dmb5F5j-.js.map} +1 -1
  121. package/dist/{LabelledWidget-BoYCuDaH.cjs → LabelledWidget-DIflzlDv.cjs} +2 -2
  122. package/dist/{LabelledWidget-BoYCuDaH.cjs.map → LabelledWidget-DIflzlDv.cjs.map} +1 -1
  123. package/dist/{LabelledWidget-D48QoyMk.js → LabelledWidget-DV1IbbPS.js} +4 -4
  124. package/dist/{LabelledWidget-D48QoyMk.js.map → LabelledWidget-DV1IbbPS.js.map} +1 -1
  125. package/dist/{LabelprogressbarWidget-DiucKsT2.cjs → LabelprogressbarWidget-B18EaMhU.cjs} +2 -2
  126. package/dist/{LabelprogressbarWidget-DiucKsT2.cjs.map → LabelprogressbarWidget-B18EaMhU.cjs.map} +1 -1
  127. package/dist/{LabelprogressbarWidget-C_950t6g.js → LabelprogressbarWidget-BHBDYVZp.js} +4 -4
  128. package/dist/{LabelprogressbarWidget-C_950t6g.js.map → LabelprogressbarWidget-BHBDYVZp.js.map} +1 -1
  129. package/dist/{LabelsparklineWidget-0KXQyPoU.js → LabelsparklineWidget-BaoIdd7s.js} +4 -4
  130. package/dist/{LabelsparklineWidget-0KXQyPoU.js.map → LabelsparklineWidget-BaoIdd7s.js.map} +1 -1
  131. package/dist/{LabelsparklineWidget-A3MTEhQc.cjs → LabelsparklineWidget-Bdft2p6Y.cjs} +2 -2
  132. package/dist/{LabelsparklineWidget-A3MTEhQc.cjs.map → LabelsparklineWidget-Bdft2p6Y.cjs.map} +1 -1
  133. package/dist/{LabelvalueWidget-DnKoz0-N.cjs → LabelvalueWidget-DiqMgePn.cjs} +2 -2
  134. package/dist/{LabelvalueWidget-DnKoz0-N.cjs.map → LabelvalueWidget-DiqMgePn.cjs.map} +1 -1
  135. package/dist/{LabelvalueWidget-CQ06wWDK.js → LabelvalueWidget-wuW55zQP.js} +4 -4
  136. package/dist/{LabelvalueWidget-CQ06wWDK.js.map → LabelvalueWidget-wuW55zQP.js.map} +1 -1
  137. package/dist/{LabelvaluedescWidget-Bo8zT01X.js → LabelvaluedescWidget-BBHwqvj4.js} +9 -9
  138. package/dist/{LabelvaluedescWidget-Bo8zT01X.js.map → LabelvaluedescWidget-BBHwqvj4.js.map} +1 -1
  139. package/dist/LabelvaluedescWidget-fN9XLm-N.cjs +2 -0
  140. package/dist/{LabelvaluedescWidget-I6ljK--Y.cjs.map → LabelvaluedescWidget-fN9XLm-N.cjs.map} +1 -1
  141. package/dist/{LabelvaluelimitsbarWidget-BucTw8Yk.js → LabelvaluelimitsbarWidget-77Rc3lCf.js} +4 -4
  142. package/dist/{LabelvaluelimitsbarWidget-BucTw8Yk.js.map → LabelvaluelimitsbarWidget-77Rc3lCf.js.map} +1 -1
  143. package/dist/{LabelvaluelimitsbarWidget-Cb6i_Ixc.cjs → LabelvaluelimitsbarWidget-Dp5qsue9.cjs} +2 -2
  144. package/dist/{LabelvaluelimitsbarWidget-Cb6i_Ixc.cjs.map → LabelvaluelimitsbarWidget-Dp5qsue9.cjs.map} +1 -1
  145. package/dist/{LabelvaluelimitscolumnWidget-Dflb1hNd.js → LabelvaluelimitscolumnWidget-nounrACl.js} +5 -5
  146. package/dist/{LabelvaluelimitscolumnWidget-Dflb1hNd.js.map → LabelvaluelimitscolumnWidget-nounrACl.js.map} +1 -1
  147. package/dist/{LabelvaluelimitscolumnWidget-ClY5OxUC.cjs → LabelvaluelimitscolumnWidget-uR4QE_cm.cjs} +2 -2
  148. package/dist/{LabelvaluelimitscolumnWidget-ClY5OxUC.cjs.map → LabelvaluelimitscolumnWidget-uR4QE_cm.cjs.map} +1 -1
  149. package/dist/{LabelvaluerangebarWidget-D8cbfXFM.js → LabelvaluerangebarWidget-B83Jj5Q1.js} +4 -4
  150. package/dist/{LabelvaluerangebarWidget-D8cbfXFM.js.map → LabelvaluerangebarWidget-B83Jj5Q1.js.map} +1 -1
  151. package/dist/{LabelvaluerangebarWidget-9S5rVZaS.cjs → LabelvaluerangebarWidget-MVkSnTVH.cjs} +2 -2
  152. package/dist/{LabelvaluerangebarWidget-9S5rVZaS.cjs.map → LabelvaluerangebarWidget-MVkSnTVH.cjs.map} +1 -1
  153. package/dist/{Layout-Tf--nruw.js → Layout-ByQC7nQ3.js} +2 -2
  154. package/dist/{Layout-Tf--nruw.js.map → Layout-ByQC7nQ3.js.map} +1 -1
  155. package/dist/Layout-CFJMHNqy.cjs +2 -0
  156. package/dist/{Layout-DuCYyOw4.cjs.map → Layout-CFJMHNqy.cjs.map} +1 -1
  157. package/dist/{LedWidget-qH_FthkK.js → LedWidget-Cccb8YTk.js} +13 -10
  158. package/dist/LedWidget-Cccb8YTk.js.map +1 -0
  159. package/dist/LedWidget-ghzR6jZJ.cjs +2 -0
  160. package/dist/LedWidget-ghzR6jZJ.cjs.map +1 -0
  161. package/dist/{LimitsbarWidget-B9lAB2RD.js → LimitsbarWidget-D1EBBwX1.js} +10 -7
  162. package/dist/LimitsbarWidget-D1EBBwX1.js.map +1 -0
  163. package/dist/LimitsbarWidget-Dg2_T5OY.cjs +2 -0
  164. package/dist/LimitsbarWidget-Dg2_T5OY.cjs.map +1 -0
  165. package/dist/{LimitscolorWidget-c6Qa6su7.js → LimitscolorWidget--1aPSNVB.js} +2 -2
  166. package/dist/{LimitscolorWidget-c6Qa6su7.js.map → LimitscolorWidget--1aPSNVB.js.map} +1 -1
  167. package/dist/{LimitscolorWidget-DORhDxRo.cjs → LimitscolorWidget-D9mHLFOs.cjs} +2 -2
  168. package/dist/{LimitscolorWidget-DORhDxRo.cjs.map → LimitscolorWidget-D9mHLFOs.cjs.map} +1 -1
  169. package/dist/{LimitscolumnWidget-C9Uyg7Fh.cjs → LimitscolumnWidget-D18x3aW-.cjs} +2 -2
  170. package/dist/{LimitscolumnWidget-C9Uyg7Fh.cjs.map → LimitscolumnWidget-D18x3aW-.cjs.map} +1 -1
  171. package/dist/{LimitscolumnWidget-CcLs_443.js → LimitscolumnWidget-swnMNApm.js} +2 -2
  172. package/dist/{LimitscolumnWidget-CcLs_443.js.map → LimitscolumnWidget-swnMNApm.js.map} +1 -1
  173. package/dist/{LinegraphWidget-BSVYLFo1.js → LinegraphWidget-BbI-wOnq.js} +4 -4
  174. package/dist/{LinegraphWidget-BSVYLFo1.js.map → LinegraphWidget-BbI-wOnq.js.map} +1 -1
  175. package/dist/LinegraphWidget-BdCc6zps.cjs +2 -0
  176. package/dist/{LinegraphWidget-Bf8DIwEn.cjs.map → LinegraphWidget-BdCc6zps.cjs.map} +1 -1
  177. package/dist/{MatrixbycolumnsWidget-DXFpZTre.js → MatrixbycolumnsWidget-Bx2qMr8P.js} +3 -3
  178. package/dist/{MatrixbycolumnsWidget-DXFpZTre.js.map → MatrixbycolumnsWidget-Bx2qMr8P.js.map} +1 -1
  179. package/dist/MatrixbycolumnsWidget-CuhTHsdb.cjs +2 -0
  180. package/dist/{MatrixbycolumnsWidget-DpdFzNeP.cjs.map → MatrixbycolumnsWidget-CuhTHsdb.cjs.map} +1 -1
  181. package/dist/MicroservicesTab-7mVRcHEj.cjs +2 -0
  182. package/dist/MicroservicesTab-7mVRcHEj.cjs.map +1 -0
  183. package/dist/MicroservicesTab-CtI7BEt0.js +219 -0
  184. package/dist/MicroservicesTab-CtI7BEt0.js.map +1 -0
  185. package/dist/Openc3Screen-B4X70CVP.cjs +5 -0
  186. package/dist/Openc3Screen-B4X70CVP.cjs.map +1 -0
  187. package/dist/Openc3Screen-DFYYhHt7.js +1704 -0
  188. package/dist/Openc3Screen-DFYYhHt7.js.map +1 -0
  189. package/dist/{OutputDialog-zVPZiZay.js → OutputDialog-CqD5uI0m.js} +66 -78
  190. package/dist/OutputDialog-CqD5uI0m.js.map +1 -0
  191. package/dist/OutputDialog-Dft9Xm4R.cjs +2 -0
  192. package/dist/OutputDialog-Dft9Xm4R.cjs.map +1 -0
  193. package/dist/PackagesTab-BxP1kiSR.cjs +2 -0
  194. package/dist/PackagesTab-BxP1kiSR.cjs.map +1 -0
  195. package/dist/PackagesTab-DhMk-fi5.js +313 -0
  196. package/dist/PackagesTab-DhMk-fi5.js.map +1 -0
  197. package/dist/PluginsTab-BKJo5vK-.cjs +6 -0
  198. package/dist/PluginsTab-BKJo5vK-.cjs.map +1 -0
  199. package/dist/{PluginsTab-B64OvayB.js → PluginsTab-DxxEqPCA.js} +205 -244
  200. package/dist/PluginsTab-DxxEqPCA.js.map +1 -0
  201. package/dist/{ProgressbarWidget-iYGw8-Dc.js → ProgressbarWidget-7rJeuX6H.js} +2 -2
  202. package/dist/{ProgressbarWidget-iYGw8-Dc.js.map → ProgressbarWidget-7rJeuX6H.js.map} +1 -1
  203. package/dist/{ProgressbarWidget-fGWa6ipm.cjs → ProgressbarWidget-DLvbQ0g-.cjs} +2 -2
  204. package/dist/{ProgressbarWidget-fGWa6ipm.cjs.map → ProgressbarWidget-DLvbQ0g-.cjs.map} +1 -1
  205. package/dist/{RadiobuttonWidget-ZEPJbOp_.cjs → RadiobuttonWidget-C15SchQH.cjs} +2 -2
  206. package/dist/{RadiobuttonWidget-ZEPJbOp_.cjs.map → RadiobuttonWidget-C15SchQH.cjs.map} +1 -1
  207. package/dist/{RadiobuttonWidget-ytmoVZ3u.js → RadiobuttonWidget-DsEw3JiU.js} +2 -2
  208. package/dist/{RadiobuttonWidget-ytmoVZ3u.js.map → RadiobuttonWidget-DsEw3JiU.js.map} +1 -1
  209. package/dist/{RadiogroupWidget-EK4rEGUC.cjs → RadiogroupWidget-BZS_MkSP.cjs} +2 -2
  210. package/dist/{RadiogroupWidget-EK4rEGUC.cjs.map → RadiogroupWidget-BZS_MkSP.cjs.map} +1 -1
  211. package/dist/{RadiogroupWidget-CusMBhKH.js → RadiogroupWidget-DhfbTvQ8.js} +2 -2
  212. package/dist/{RadiogroupWidget-CusMBhKH.js.map → RadiogroupWidget-DhfbTvQ8.js.map} +1 -1
  213. package/dist/{RangebarWidget-D_zGTtCa.js → RangebarWidget-BEGvSL_K.js} +2 -2
  214. package/dist/{RangebarWidget-D_zGTtCa.js.map → RangebarWidget-BEGvSL_K.js.map} +1 -1
  215. package/dist/{RangebarWidget-DwIs-L5k.cjs → RangebarWidget-bBSBfvHk.cjs} +2 -2
  216. package/dist/{RangebarWidget-DwIs-L5k.cjs.map → RangebarWidget-bBSBfvHk.cjs.map} +1 -1
  217. package/dist/{RedisTab-CyPo6ADN.js → RedisTab-Bq8Frctp.js} +13 -13
  218. package/dist/{RedisTab-CyPo6ADN.js.map → RedisTab-Bq8Frctp.js.map} +1 -1
  219. package/dist/RedisTab-CWYntIvy.cjs +2 -0
  220. package/dist/{RedisTab-67UcKoPf.cjs.map → RedisTab-CWYntIvy.cjs.map} +1 -1
  221. package/dist/{RollupWidget-Dolsixyt.js → RollupWidget-BZhspgWd.js} +2 -2
  222. package/dist/{RollupWidget-Dolsixyt.js.map → RollupWidget-BZhspgWd.js.map} +1 -1
  223. package/dist/{RollupWidget-DC3OIP6G.cjs → RollupWidget-BueYskqE.cjs} +2 -2
  224. package/dist/{RollupWidget-DC3OIP6G.cjs.map → RollupWidget-BueYskqE.cjs.map} +1 -1
  225. package/dist/RoutersTab-Bg6dpAXr.js +85 -0
  226. package/dist/RoutersTab-Bg6dpAXr.js.map +1 -0
  227. package/dist/RoutersTab-DOseaOsv.cjs +2 -0
  228. package/dist/RoutersTab-DOseaOsv.cjs.map +1 -0
  229. package/dist/ScriptChooser-CHkObjcT.cjs +2 -0
  230. package/dist/ScriptChooser-CHkObjcT.cjs.map +1 -0
  231. package/dist/ScriptChooser-DBkFAc6E.js +176 -0
  232. package/dist/ScriptChooser-DBkFAc6E.js.map +1 -0
  233. package/dist/{ScrollwindowWidget-BWeqSUPc.cjs → ScrollwindowWidget-CJmuGHai.cjs} +2 -2
  234. package/dist/{ScrollwindowWidget-BWeqSUPc.cjs.map → ScrollwindowWidget-CJmuGHai.cjs.map} +1 -1
  235. package/dist/{ScrollwindowWidget-DV2nZuNi.js → ScrollwindowWidget-qZ3nhhVU.js} +3 -3
  236. package/dist/{ScrollwindowWidget-DV2nZuNi.js.map → ScrollwindowWidget-qZ3nhhVU.js.map} +1 -1
  237. package/dist/SecretsTab-B49h9PhL.cjs +2 -0
  238. package/dist/SecretsTab-B49h9PhL.cjs.map +1 -0
  239. package/dist/{SecretsTab-DVyyyGlG.js → SecretsTab-vdm8oj9_.js} +39 -49
  240. package/dist/SecretsTab-vdm8oj9_.js.map +1 -0
  241. package/dist/{SettingsTab-g29K6FyC.js → SettingsTab-C05e6-Xm.js} +3 -3
  242. package/dist/{SettingsTab-g29K6FyC.js.map → SettingsTab-C05e6-Xm.js.map} +1 -1
  243. package/dist/SettingsTab-fmHVuOps.cjs +3 -0
  244. package/dist/{SettingsTab-B1LvOLG2.cjs.map → SettingsTab-fmHVuOps.cjs.map} +1 -1
  245. package/dist/{SignalWidget-d9-6h85k.js → SignalWidget-Bh14Zrch.js} +16 -18
  246. package/dist/SignalWidget-Bh14Zrch.js.map +1 -0
  247. package/dist/{SignalWidget-RvRwpE8T.cjs → SignalWidget-J3LFoUd-.cjs} +2 -2
  248. package/dist/SignalWidget-J3LFoUd-.cjs.map +1 -0
  249. package/dist/SimpleTextDialog-CSsm9IoB.cjs +2 -0
  250. package/dist/SimpleTextDialog-CSsm9IoB.cjs.map +1 -0
  251. package/dist/SimpleTextDialog-plHG7LGh.js +97 -0
  252. package/dist/SimpleTextDialog-plHG7LGh.js.map +1 -0
  253. package/dist/{SpacerWidget-7_8bpLCb.cjs → SpacerWidget-CzqLoBdY.cjs} +2 -2
  254. package/dist/{SpacerWidget-7_8bpLCb.cjs.map → SpacerWidget-CzqLoBdY.cjs.map} +1 -1
  255. package/dist/{SpacerWidget-BH0p2OLi.js → SpacerWidget-D_NE46jZ.js} +2 -2
  256. package/dist/{SpacerWidget-BH0p2OLi.js.map → SpacerWidget-D_NE46jZ.js.map} +1 -1
  257. package/dist/{SparklineWidget-coxi9r2g.js → SparklineWidget-CJEEJdZ-.js} +4 -4
  258. package/dist/{SparklineWidget-coxi9r2g.js.map → SparklineWidget-CJEEJdZ-.js.map} +1 -1
  259. package/dist/SparklineWidget-DDRhatn7.cjs +2 -0
  260. package/dist/{SparklineWidget-60jVlbHA.cjs.map → SparklineWidget-DDRhatn7.cjs.map} +1 -1
  261. package/dist/{TabbookWidget-B1XKplGH.js → TabbookWidget-C-SU65IF.js} +2 -2
  262. package/dist/{TabbookWidget-B1XKplGH.js.map → TabbookWidget-C-SU65IF.js.map} +1 -1
  263. package/dist/{TabbookWidget-D1CVT9IK.cjs → TabbookWidget-C8k2kKLX.cjs} +2 -2
  264. package/dist/{TabbookWidget-D1CVT9IK.cjs.map → TabbookWidget-C8k2kKLX.cjs.map} +1 -1
  265. package/dist/TargetsTab-DyfyM9sC.js +117 -0
  266. package/dist/TargetsTab-DyfyM9sC.js.map +1 -0
  267. package/dist/TargetsTab-pU_wu9d-.cjs +2 -0
  268. package/dist/TargetsTab-pU_wu9d-.cjs.map +1 -0
  269. package/dist/TextBoxDialog-C60jmnyN.js +98 -0
  270. package/dist/TextBoxDialog-C60jmnyN.js.map +1 -0
  271. package/dist/TextBoxDialog-DWt30tB8.cjs +2 -0
  272. package/dist/TextBoxDialog-DWt30tB8.cjs.map +1 -0
  273. package/dist/TextboxWidget-CRDu77NK.cjs +2 -0
  274. package/dist/{TextboxWidget-BDG4NxRw.cjs.map → TextboxWidget-CRDu77NK.cjs.map} +1 -1
  275. package/dist/{TextboxWidget-C-_M2M4l.js → TextboxWidget-Dn1Ds-b0.js} +4 -4
  276. package/dist/{TextboxWidget-C-_M2M4l.js.map → TextboxWidget-Dn1Ds-b0.js.map} +1 -1
  277. package/dist/{TextfieldWidget-C08N4JE8.js → TextfieldWidget-C0C7NL53.js} +2 -2
  278. package/dist/{TextfieldWidget-C08N4JE8.js.map → TextfieldWidget-C0C7NL53.js.map} +1 -1
  279. package/dist/{TextfieldWidget-BGJv9Lox.cjs → TextfieldWidget-DGdD6b_-.cjs} +2 -2
  280. package/dist/{TextfieldWidget-BGJv9Lox.cjs.map → TextfieldWidget-DGdD6b_-.cjs.map} +1 -1
  281. package/dist/{TimeWidget-DtwdEcFg.js → TimeWidget-AFOTVB4w.js} +3 -3
  282. package/dist/{TimeWidget-DtwdEcFg.js.map → TimeWidget-AFOTVB4w.js.map} +1 -1
  283. package/dist/{TimeWidget-CGCOIouj.cjs → TimeWidget-BlZoS24B.cjs} +2 -2
  284. package/dist/{TimeWidget-CGCOIouj.cjs.map → TimeWidget-BlZoS24B.cjs.map} +1 -1
  285. package/dist/{TitleWidget-CT-aLcNb.js → TitleWidget-CbS_wrQw.js} +2 -2
  286. package/dist/{TitleWidget-CT-aLcNb.js.map → TitleWidget-CbS_wrQw.js.map} +1 -1
  287. package/dist/{TitleWidget-BljFH9RB.cjs → TitleWidget-DDEnHVPP.cjs} +2 -2
  288. package/dist/{TitleWidget-BljFH9RB.cjs.map → TitleWidget-DDEnHVPP.cjs.map} +1 -1
  289. package/dist/ToolsTab-BvpoO0wt.js +1501 -0
  290. package/dist/{ToolsTab-NveeVXz2.js.map → ToolsTab-BvpoO0wt.js.map} +1 -1
  291. package/dist/ToolsTab-DCRNrlhT.cjs +7 -0
  292. package/dist/{ToolsTab-RMTst_Sy.cjs.map → ToolsTab-DCRNrlhT.cjs.map} +1 -1
  293. package/dist/{TopBar-CnJNNJlV.js → TopBar-AjYGyx8W.js} +68 -64
  294. package/dist/TopBar-AjYGyx8W.js.map +1 -0
  295. package/dist/TopBar-vznpQjGN.cjs +2 -0
  296. package/dist/TopBar-vznpQjGN.cjs.map +1 -0
  297. package/dist/UpgradeToEnterpriseDialog-1fVtqbze.cjs +2 -0
  298. package/dist/UpgradeToEnterpriseDialog-1fVtqbze.cjs.map +1 -0
  299. package/dist/UpgradeToEnterpriseDialog-CMVEjihv.js +95 -0
  300. package/dist/UpgradeToEnterpriseDialog-CMVEjihv.js.map +1 -0
  301. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B98GsSQS.cjs +1497 -0
  302. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-B98GsSQS.cjs.map +1 -0
  303. package/dist/{WidgetComponents-C1lSLZ0I.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js} +10636 -10597
  304. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js.map +1 -0
  305. package/dist/{VWidget-DQqb7NVW.js → VWidget-BlF_o-7Z.js} +3 -3
  306. package/dist/{VWidget-DQqb7NVW.js.map → VWidget-BlF_o-7Z.js.map} +1 -1
  307. package/dist/{VWidget-2N2cOosI.cjs → VWidget-CMKh-tv6.cjs} +2 -2
  308. package/dist/{VWidget-2N2cOosI.cjs.map → VWidget-CMKh-tv6.cjs.map} +1 -1
  309. package/dist/{ValueWidget-C6RanBj3.js → ValueWidget-DFUfM5tw.js} +16 -14
  310. package/dist/ValueWidget-DFUfM5tw.js.map +1 -0
  311. package/dist/ValueWidget-K7SCPEB6.cjs +2 -0
  312. package/dist/ValueWidget-K7SCPEB6.cjs.map +1 -0
  313. package/dist/{ValuelimitsbarWidget-B3bvjfxc.js → ValuelimitsbarWidget-CALgABsT.js} +4 -4
  314. package/dist/{ValuelimitsbarWidget-B3bvjfxc.js.map → ValuelimitsbarWidget-CALgABsT.js.map} +1 -1
  315. package/dist/{ValuelimitsbarWidget-C0HROxrb.cjs → ValuelimitsbarWidget-DcY2NV9X.cjs} +2 -2
  316. package/dist/{ValuelimitsbarWidget-C0HROxrb.cjs.map → ValuelimitsbarWidget-DcY2NV9X.cjs.map} +1 -1
  317. package/dist/{ValuelimitscolumnWidget-QvhI6EcE.js → ValuelimitscolumnWidget-Bs91VFLz.js} +4 -4
  318. package/dist/{ValuelimitscolumnWidget-QvhI6EcE.js.map → ValuelimitscolumnWidget-Bs91VFLz.js.map} +1 -1
  319. package/dist/{ValuelimitscolumnWidget-CWvLfg8u.cjs → ValuelimitscolumnWidget-DQKvlGap.cjs} +2 -2
  320. package/dist/{ValuelimitscolumnWidget-CWvLfg8u.cjs.map → ValuelimitscolumnWidget-DQKvlGap.cjs.map} +1 -1
  321. package/dist/{ValuerangebarWidget-Dt3K9BnC.js → ValuerangebarWidget-C7WHyR2h.js} +4 -4
  322. package/dist/{ValuerangebarWidget-Dt3K9BnC.js.map → ValuerangebarWidget-C7WHyR2h.js.map} +1 -1
  323. package/dist/{ValuerangebarWidget-DyN78cQl.cjs → ValuerangebarWidget-DnWuvusw.cjs} +2 -2
  324. package/dist/{ValuerangebarWidget-DyN78cQl.cjs.map → ValuerangebarWidget-DnWuvusw.cjs.map} +1 -1
  325. package/dist/{VerticalWidget-BIIViZgI.js → VerticalWidget-COP5oVCK.js} +2 -2
  326. package/dist/{VerticalWidget-BIIViZgI.js.map → VerticalWidget-COP5oVCK.js.map} +1 -1
  327. package/dist/{VerticalWidget-CFTOu4H8.cjs → VerticalWidget-eMN4dvxL.cjs} +2 -2
  328. package/dist/{VerticalWidget-CFTOu4H8.cjs.map → VerticalWidget-eMN4dvxL.cjs.map} +1 -1
  329. package/dist/{VerticalboxWidget-DY72fLHW.js → VerticalboxWidget-CDPoOx4C.js} +5 -5
  330. package/dist/{VerticalboxWidget-DY72fLHW.js.map → VerticalboxWidget-CDPoOx4C.js.map} +1 -1
  331. package/dist/{VerticalboxWidget-Z8-DWI8t.cjs → VerticalboxWidget-UIBpyEz_.cjs} +2 -2
  332. package/dist/{VerticalboxWidget-Z8-DWI8t.cjs.map → VerticalboxWidget-UIBpyEz_.cjs.map} +1 -1
  333. package/dist/Widget-Cg0pAxSF.cjs +2 -0
  334. package/dist/Widget-Cg0pAxSF.cjs.map +1 -0
  335. package/dist/{Widget-oyqWpFXJ.js → Widget-cmJ76_g1.js} +3 -3
  336. package/dist/Widget-cmJ76_g1.js.map +1 -0
  337. package/dist/components.cjs +3 -3
  338. package/dist/components.cjs.map +1 -1
  339. package/dist/components.js +285 -318
  340. package/dist/components.js.map +1 -1
  341. package/dist/index-DcL65Mqb.cjs +7 -0
  342. package/dist/index-DcL65Mqb.cjs.map +1 -0
  343. package/dist/{index-DwP8ryNM.js → index-qCq0L4jN.js} +332 -323
  344. package/dist/index-qCq0L4jN.js.map +1 -0
  345. package/dist/plugins.cjs +2 -2
  346. package/dist/plugins.cjs.map +1 -1
  347. package/dist/plugins.js +94 -89
  348. package/dist/plugins.js.map +1 -1
  349. package/dist/{timeFilters-CRYpYDdf.js → timeFilters-BKnCM4rv.js} +139 -136
  350. package/dist/{timeFilters-CRYpYDdf.js.map → timeFilters-BKnCM4rv.js.map} +1 -1
  351. package/dist/timeFilters-CJFxfjqN.cjs +2 -0
  352. package/dist/{timeFilters-8SaYvcH0.cjs.map → timeFilters-CJFxfjqN.cjs.map} +1 -1
  353. package/dist/tools/admin.cjs +10 -10
  354. package/dist/tools/admin.cjs.map +1 -1
  355. package/dist/tools/admin.js +380 -406
  356. package/dist/tools/admin.js.map +1 -1
  357. package/dist/tools/base.cjs +1 -1
  358. package/dist/tools/base.cjs.map +1 -1
  359. package/dist/tools/base.js +212 -215
  360. package/dist/tools/base.js.map +1 -1
  361. package/dist/tools/calendar.cjs +1 -1
  362. package/dist/tools/calendar.js +1 -1
  363. package/dist/tools/scriptrunner.cjs +7 -8
  364. package/dist/tools/scriptrunner.cjs.map +1 -1
  365. package/dist/tools/scriptrunner.js +2021 -2011
  366. package/dist/tools/scriptrunner.js.map +1 -1
  367. package/dist/util.cjs +1 -1
  368. package/dist/util.js +1 -1
  369. package/dist/vue-common.css +1 -1
  370. package/dist/widgets.cjs +1 -1
  371. package/dist/widgets.js +63 -63
  372. package/package.json +12 -12
  373. package/dist/ArrayplotWidget-COeaK_Lz.cjs +0 -2
  374. package/dist/BarColumn-CJLW1nXy.cjs +0 -2
  375. package/dist/ButtonWidget-HN8UHsme.cjs +0 -3
  376. package/dist/CriticalCmdDialog-BnxZlt7W.cjs +0 -2
  377. package/dist/CriticalCmdDialog-BnxZlt7W.cjs.map +0 -1
  378. package/dist/CriticalCmdDialog-DPIZOBeP.js.map +0 -1
  379. package/dist/DetailsDialog-DmEC5BTs.js.map +0 -1
  380. package/dist/DetailsDialog-mvxMFmgV.cjs +0 -2
  381. package/dist/DetailsDialog-mvxMFmgV.cjs.map +0 -1
  382. package/dist/EventListDialog-BHZLl28V.cjs +0 -2
  383. package/dist/EventListDialog-BHZLl28V.cjs.map +0 -1
  384. package/dist/EventListDialog-CSMSmCIT.js.map +0 -1
  385. package/dist/FormatvalueWidget-CdjCEAI7.cjs +0 -2
  386. package/dist/FormatvalueWidget-CdjCEAI7.cjs.map +0 -1
  387. package/dist/FormatvalueWidget-DN12xymS.js +0 -44
  388. package/dist/FormatvalueWidget-DN12xymS.js.map +0 -1
  389. package/dist/Graph-Bgo0cjl3.js.map +0 -1
  390. package/dist/Graph-Ujd2yaeI.cjs +0 -2
  391. package/dist/Graph-Ujd2yaeI.cjs.map +0 -1
  392. package/dist/ImageLoader-cRmBcpU9.cjs +0 -2
  393. package/dist/InterfacesTab-B4glsR9Z.js +0 -93
  394. package/dist/InterfacesTab-B4glsR9Z.js.map +0 -1
  395. package/dist/InterfacesTab-Co1Kd6Fa.cjs +0 -2
  396. package/dist/InterfacesTab-Co1Kd6Fa.cjs.map +0 -1
  397. package/dist/LabelvaluedescWidget-I6ljK--Y.cjs +0 -2
  398. package/dist/Layout-DuCYyOw4.cjs +0 -2
  399. package/dist/LedWidget-B2BcwiYF.cjs +0 -2
  400. package/dist/LedWidget-B2BcwiYF.cjs.map +0 -1
  401. package/dist/LedWidget-qH_FthkK.js.map +0 -1
  402. package/dist/LimitsbarWidget-B9lAB2RD.js.map +0 -1
  403. package/dist/LimitsbarWidget-CVCLFIhG.cjs +0 -2
  404. package/dist/LimitsbarWidget-CVCLFIhG.cjs.map +0 -1
  405. package/dist/LinegraphWidget-Bf8DIwEn.cjs +0 -2
  406. package/dist/MatrixbycolumnsWidget-DpdFzNeP.cjs +0 -2
  407. package/dist/MicroservicesTab-B5n-mN8G.cjs +0 -2
  408. package/dist/MicroservicesTab-B5n-mN8G.cjs.map +0 -1
  409. package/dist/MicroservicesTab-mCdS0v39.js +0 -264
  410. package/dist/MicroservicesTab-mCdS0v39.js.map +0 -1
  411. package/dist/Openc3Screen-BYhHaH_I.cjs +0 -5
  412. package/dist/Openc3Screen-BYhHaH_I.cjs.map +0 -1
  413. package/dist/Openc3Screen-Cud0OCFu.js +0 -1789
  414. package/dist/Openc3Screen-Cud0OCFu.js.map +0 -1
  415. package/dist/OutputDialog-DXoL9VPw.cjs +0 -2
  416. package/dist/OutputDialog-DXoL9VPw.cjs.map +0 -1
  417. package/dist/OutputDialog-zVPZiZay.js.map +0 -1
  418. package/dist/PackagesTab-CvT2JyMA.cjs +0 -2
  419. package/dist/PackagesTab-CvT2JyMA.cjs.map +0 -1
  420. package/dist/PackagesTab-SWcXumpK.js +0 -332
  421. package/dist/PackagesTab-SWcXumpK.js.map +0 -1
  422. package/dist/PluginsTab-B64OvayB.js.map +0 -1
  423. package/dist/PluginsTab-CfpwWsqv.cjs +0 -6
  424. package/dist/PluginsTab-CfpwWsqv.cjs.map +0 -1
  425. package/dist/RedisTab-67UcKoPf.cjs +0 -2
  426. package/dist/RoutersTab-BBPlFi_z.cjs +0 -2
  427. package/dist/RoutersTab-BBPlFi_z.cjs.map +0 -1
  428. package/dist/RoutersTab-Cs2dFVNA.js +0 -95
  429. package/dist/RoutersTab-Cs2dFVNA.js.map +0 -1
  430. package/dist/ScriptChooser-EV65rbWx.js +0 -199
  431. package/dist/ScriptChooser-EV65rbWx.js.map +0 -1
  432. package/dist/ScriptChooser-vyZwngrz.cjs +0 -2
  433. package/dist/ScriptChooser-vyZwngrz.cjs.map +0 -1
  434. package/dist/SecretsTab-0IFqUxNJ.cjs +0 -2
  435. package/dist/SecretsTab-0IFqUxNJ.cjs.map +0 -1
  436. package/dist/SecretsTab-DVyyyGlG.js.map +0 -1
  437. package/dist/SettingsTab-B1LvOLG2.cjs +0 -3
  438. package/dist/SignalWidget-RvRwpE8T.cjs.map +0 -1
  439. package/dist/SignalWidget-d9-6h85k.js.map +0 -1
  440. package/dist/SimpleTextDialog-Cpbt7Q-8.cjs +0 -2
  441. package/dist/SimpleTextDialog-Cpbt7Q-8.cjs.map +0 -1
  442. package/dist/SimpleTextDialog-pwN8oRy1.js +0 -107
  443. package/dist/SimpleTextDialog-pwN8oRy1.js.map +0 -1
  444. package/dist/SparklineWidget-60jVlbHA.cjs +0 -2
  445. package/dist/TargetsTab-BkBkXn9A.js +0 -129
  446. package/dist/TargetsTab-BkBkXn9A.js.map +0 -1
  447. package/dist/TargetsTab-C-m26Eqq.cjs +0 -2
  448. package/dist/TargetsTab-C-m26Eqq.cjs.map +0 -1
  449. package/dist/TextBoxDialog-DOJ5d2RM.js +0 -110
  450. package/dist/TextBoxDialog-DOJ5d2RM.js.map +0 -1
  451. package/dist/TextBoxDialog-DfMXg_5C.cjs +0 -2
  452. package/dist/TextBoxDialog-DfMXg_5C.cjs.map +0 -1
  453. package/dist/TextboxWidget-BDG4NxRw.cjs +0 -2
  454. package/dist/ToolsTab-NveeVXz2.js +0 -1521
  455. package/dist/ToolsTab-RMTst_Sy.cjs +0 -7
  456. package/dist/TopBar-CnJNNJlV.js.map +0 -1
  457. package/dist/TopBar-Cnmb6DyC.cjs +0 -2
  458. package/dist/TopBar-Cnmb6DyC.cjs.map +0 -1
  459. package/dist/UpgradeToEnterpriseDialog-BvfgoNB1.js +0 -94
  460. package/dist/UpgradeToEnterpriseDialog-BvfgoNB1.js.map +0 -1
  461. package/dist/UpgradeToEnterpriseDialog-sUipOVpB.cjs +0 -2
  462. package/dist/UpgradeToEnterpriseDialog-sUipOVpB.cjs.map +0 -1
  463. package/dist/ValueWidget-C6RanBj3.js.map +0 -1
  464. package/dist/ValueWidget-Cu7hgKja.cjs +0 -2
  465. package/dist/ValueWidget-Cu7hgKja.cjs.map +0 -1
  466. package/dist/Widget-ChoIB2dd.cjs +0 -2
  467. package/dist/Widget-ChoIB2dd.cjs.map +0 -1
  468. package/dist/Widget-oyqWpFXJ.js.map +0 -1
  469. package/dist/WidgetComponents-C1lSLZ0I.js.map +0 -1
  470. package/dist/WidgetComponents-utpQ592X.cjs +0 -1493
  471. package/dist/WidgetComponents-utpQ592X.cjs.map +0 -1
  472. package/dist/index-BX05anye.cjs +0 -7
  473. package/dist/index-BX05anye.cjs.map +0 -1
  474. package/dist/index-DwP8ryNM.js.map +0 -1
  475. package/dist/timeFilters-8SaYvcH0.cjs +0 -2
@@ -0,0 +1,1704 @@
1
+ import { l as I, p as P, b as A, W as G, f as X, g as Y } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_2c757408_lang-BOiUmW4q.js";
2
+ import { resolveComponent as a, createBlock as b, openBlock as m, withCtx as r, createVNode as s, createElementVNode as _, toDisplayString as k, createTextVNode as C, withModifiers as D, createElementBlock as T, Fragment as z, renderList as U, ref as H, computed as j, watch as B, createCommentVNode as V, withKeys as q, withDirectives as O, vShow as M, normalizeStyle as $, normalizeProps as N, guardReactiveProps as R } from "vue";
3
+ import { _ as F } from "./CustomIcon-h5X7369N.js";
4
+ import { f as J } from "./fileIcon-DqRHb1_Z.js";
5
+ import { A as W } from "./TopBar-AjYGyx8W.js";
6
+ class Q {
7
+ constructor() {
8
+ I.get("/openc3-api/autocomplete/data/screen").then((t) => {
9
+ this.autocompleteData = t.data;
10
+ }), this.api = new P();
11
+ }
12
+ async getCompletions(t, n, o, i, l) {
13
+ let p = n.getLine(o.row).slice(0, o.column).trimStart().split(/ (?![^<]*>)/), h = this.autocompleteData;
14
+ p.length > 1 && (h = h.find((g) => g.caption === p[0]));
15
+ let d = {}, c = !0;
16
+ if (h && h.params) {
17
+ h.params.length == p.length - 1 && (c = !1);
18
+ let g = h.params[p.length - 2];
19
+ if (g["Target name"])
20
+ h = (await this.api.get_target_names()).reduce(
21
+ (S, w) => (S[w] = 1, S),
22
+ {}
23
+ );
24
+ else if (g["Packet name"]) {
25
+ let x = p[p.length - 2];
26
+ h = (await this.api.get_all_tlm(x)).reduce(
27
+ (w, y) => (w[y.packet_name] = y.description, w),
28
+ {}
29
+ );
30
+ } else if (g["Item name"]) {
31
+ let x = p[p.length - 3], S = p[p.length - 2];
32
+ h = (await this.api.get_tlm(x, S)).items.reduce(
33
+ (y, u) => (y[u.name] = u.description, y),
34
+ {}
35
+ );
36
+ } else
37
+ h = g;
38
+ d = Object.keys(h || {}).map((x) => {
39
+ let S = {
40
+ value: x + (c ? " " : ""),
41
+ // We want the autoComplete to continue right up
42
+ // to the last parameter
43
+ command: c && "startAutocomplete"
44
+ };
45
+ return typeof h[x] == "string" && (S.meta = h[x]), S;
46
+ });
47
+ } else
48
+ d = h;
49
+ l(null, d);
50
+ }
51
+ }
52
+ const ee = {
53
+ props: {
54
+ modelValue: Boolean,
55
+ target: {
56
+ type: String,
57
+ default: ""
58
+ },
59
+ screen: {
60
+ type: String,
61
+ default: ""
62
+ },
63
+ definition: {
64
+ type: String,
65
+ default: ""
66
+ },
67
+ keywords: {
68
+ type: Array,
69
+ default: () => []
70
+ },
71
+ errors: {
72
+ type: Array,
73
+ default: () => []
74
+ }
75
+ },
76
+ data() {
77
+ return {
78
+ file: null,
79
+ docsKeyword: "",
80
+ contextMenu: !1,
81
+ menuX: 0,
82
+ menuY: 0
83
+ };
84
+ },
85
+ computed: {
86
+ editErrors: function() {
87
+ if (this.definition === "" && !this.file)
88
+ return ["Input can not be blank."];
89
+ if (this.errors.length !== 0) {
90
+ let e = /* @__PURE__ */ new Set(), t = [];
91
+ const n = this.errors.toSorted(
92
+ (o, i) => o.lineNumber - i.lineNumber
93
+ );
94
+ for (const o of n) {
95
+ let i = `At ${o.lineNumber}: (${o.line}) ${o.message}.`;
96
+ o.usage && (i += ` Usage: ${o.usage}`), t.push(i), e.add(o.message);
97
+ }
98
+ return t;
99
+ }
100
+ return [];
101
+ },
102
+ show: {
103
+ get() {
104
+ return this.modelValue;
105
+ },
106
+ set(e) {
107
+ this.$emit("update:modelValue", e);
108
+ }
109
+ }
110
+ },
111
+ mounted: function() {
112
+ this.editor = A.edit(this.$refs.editor), this.editor.setTheme("ace/theme/twilight");
113
+ const e = this.buildScreenMode();
114
+ this.editor.session.setMode(new e()), this.editor.session.setTabSize(2), this.editor.session.setUseWrapMode(!0), this.editor.$blockScrolling = 1 / 0, this.editor.setOption("enableBasicAutocompletion", !0), this.editor.setOption("enableLiveAutocompletion", !0), this.editor.completers = [new Q()], this.editor.setHighlightActiveLine(!1), this.editor.setValue(this.definition), this.editor.clearSelection(), W.applyVimModeIfEnabled(this.editor), this.editor.focus();
115
+ },
116
+ beforeUnmount() {
117
+ this.editor.destroy(), this.editor.container.remove();
118
+ },
119
+ methods: {
120
+ toggleVimMode: function() {
121
+ W.toggleVimMode(this.editor);
122
+ },
123
+ showContextMenu: function(e) {
124
+ this.menuX = e.pageX, this.menuY = e.pageY;
125
+ let t = this.editor.getCursorPosition(), n = this.editor.session.getTokenAt(t.row, t.column);
126
+ if (n) {
127
+ let o = n.value.trim();
128
+ o.includes(" ") ? this.docsKeyword = o.split(" ")[0] : this.docsKeyword = o, this.contextMenu = !0;
129
+ }
130
+ },
131
+ openDocumentation() {
132
+ window.open(
133
+ `${window.location.origin}/tools/staticdocs/docs/configuration/telemetry-screens#${this.docsKeyword.toLowerCase()}`,
134
+ "_blank"
135
+ );
136
+ },
137
+ buildScreenMode() {
138
+ let e = A.require("ace/lib/oop"), t = A.require(
139
+ "ace/mode/text_highlight_rules"
140
+ ).TextHighlightRules, n = this.keywords.join("|"), o = function() {
141
+ this.$rules = {
142
+ start: [
143
+ {
144
+ token: "comment",
145
+ regex: "#.*$"
146
+ },
147
+ {
148
+ token: "string",
149
+ regex: '".*?"'
150
+ },
151
+ {
152
+ token: "string",
153
+ regex: "'.*?'"
154
+ },
155
+ {
156
+ token: "constant.numeric",
157
+ regex: "\\b\\d+(?:\\.\\d+)?\\b"
158
+ },
159
+ {
160
+ token: "keyword",
161
+ regex: new RegExp(`^\\s*(${n})\\b`)
162
+ }
163
+ ]
164
+ }, this.normalizeRules();
165
+ };
166
+ e.inherits(o, t);
167
+ let i = function() {
168
+ this.HighlightRules = o;
169
+ }, l = A.require("ace/mode/text").Mode;
170
+ return e.inherits(i, l), (function() {
171
+ this.$id = "ace/mode/openc3";
172
+ }).call(i.prototype), i;
173
+ },
174
+ downloadScreen: function() {
175
+ const e = new Blob([this.editor.getValue()], {
176
+ type: "text/plain"
177
+ }), t = document.createElement("a");
178
+ t.href = URL.createObjectURL(e), t.setAttribute("download", `${this.screen.toLowerCase()}.txt`), t.click();
179
+ },
180
+ loadFile: function() {
181
+ const e = new FileReader();
182
+ e.readAsText(this.file);
183
+ const t = this;
184
+ e.onload = function() {
185
+ t.editor.setValue(e.result), t.file = null;
186
+ };
187
+ },
188
+ deleteScreen: function() {
189
+ this.$dialog.confirm("Are you sure you want to delete this screen?!", {
190
+ okText: "Delete",
191
+ cancelText: "Cancel"
192
+ }).then((e) => {
193
+ this.$emit("delete");
194
+ });
195
+ }
196
+ }
197
+ }, te = ["textContent"];
198
+ function ne(e, t, n, o, i, l) {
199
+ const f = a("v-btn"), v = a("v-spacer"), p = a("v-toolbar"), h = a("v-row"), d = a("v-file-input"), c = a("v-list-item-title"), g = a("v-list-item"), x = a("v-divider"), S = a("v-list"), w = a("v-menu"), y = a("v-card-text"), u = a("v-card"), Z = a("v-dialog");
200
+ return m(), b(Z, {
201
+ modelValue: l.show,
202
+ "onUpdate:modelValue": t[5] || (t[5] = (E) => l.show = E),
203
+ persistent: "",
204
+ width: "75vw"
205
+ }, {
206
+ default: r(() => [
207
+ s(u, null, {
208
+ default: r(() => [
209
+ s(p, { height: "24" }, {
210
+ default: r(() => [
211
+ s(f, {
212
+ class: "mx-2",
213
+ icon: "mdi-delete",
214
+ variant: "text",
215
+ density: "compact",
216
+ "data-test": "delete-screen-icon",
217
+ onClick: l.deleteScreen
218
+ }, null, 8, ["onClick"]),
219
+ s(v),
220
+ _("span", null, " Edit Screen: " + k(n.target) + " " + k(n.screen), 1),
221
+ s(v),
222
+ s(f, {
223
+ class: "mx-2",
224
+ icon: "mdi-download",
225
+ variant: "text",
226
+ density: "compact",
227
+ "data-test": "download-screen-icon",
228
+ onClick: l.downloadScreen
229
+ }, null, 8, ["onClick"])
230
+ ]),
231
+ _: 1
232
+ }),
233
+ s(y, { style: { "max-height": "90vh" } }, {
234
+ default: r(() => [
235
+ s(h, { class: "mt-3" }, {
236
+ default: r(() => t[6] || (t[6] = [
237
+ C(" Upload a screen file. ")
238
+ ])),
239
+ _: 1
240
+ }),
241
+ s(h, {
242
+ "no-gutters": "",
243
+ align: "center"
244
+ }, {
245
+ default: r(() => [
246
+ s(f, {
247
+ disabled: !i.file,
248
+ color: "primary",
249
+ class: "mr-3",
250
+ "data-test": "edit-screen-load",
251
+ onClick: l.loadFile
252
+ }, {
253
+ default: r(() => t[7] || (t[7] = [
254
+ C(" Load ")
255
+ ])),
256
+ _: 1
257
+ }, 8, ["disabled", "onClick"]),
258
+ s(d, {
259
+ modelValue: i.file,
260
+ "onUpdate:modelValue": t[0] || (t[0] = (E) => i.file = E),
261
+ "truncate-length": "15",
262
+ accept: ".txt",
263
+ label: "Click to select .txt screen file."
264
+ }, null, 8, ["modelValue"])
265
+ ]),
266
+ _: 1
267
+ }),
268
+ s(h, { class: "mb-2" }, {
269
+ default: r(() => t[8] || (t[8] = [
270
+ C(" Edit the screen definition. ")
271
+ ])),
272
+ _: 1
273
+ }),
274
+ s(h, { class: "mb-2" }, {
275
+ default: r(() => [
276
+ _("pre", {
277
+ ref: "editor",
278
+ class: "editor",
279
+ onContextmenu: t[1] || (t[1] = D((...E) => l.showContextMenu && l.showContextMenu(...E), ["prevent"]))
280
+ }, null, 544),
281
+ s(w, {
282
+ modelValue: i.contextMenu,
283
+ "onUpdate:modelValue": t[2] || (t[2] = (E) => i.contextMenu = E),
284
+ target: [i.menuX, i.menuY]
285
+ }, {
286
+ default: r(() => [
287
+ s(S, null, {
288
+ default: r(() => [
289
+ s(g, { link: "" }, {
290
+ default: r(() => [
291
+ s(c, { onClick: l.openDocumentation }, {
292
+ default: r(() => [
293
+ C(k(i.docsKeyword) + " documentation ", 1)
294
+ ]),
295
+ _: 1
296
+ }, 8, ["onClick"])
297
+ ]),
298
+ _: 1
299
+ }),
300
+ s(x),
301
+ s(g, {
302
+ title: "Toggle Vim mode",
303
+ "prepend-icon": "extras:vim",
304
+ onClick: l.toggleVimMode
305
+ }, null, 8, ["onClick"])
306
+ ]),
307
+ _: 1
308
+ })
309
+ ]),
310
+ _: 1
311
+ }, 8, ["modelValue", "target"])
312
+ ]),
313
+ _: 1
314
+ }),
315
+ s(h, { style: { "max-height": "120px", "overflow-y": "auto" } }, {
316
+ default: r(() => [
317
+ (m(!0), T(z, null, U(l.editErrors, (E, K) => (m(), T("div", { key: K }, [
318
+ _("span", {
319
+ class: "text-red",
320
+ textContent: k(E)
321
+ }, null, 8, te)
322
+ ]))), 128))
323
+ ]),
324
+ _: 1
325
+ }),
326
+ s(h, { class: "mt-5" }, {
327
+ default: r(() => [
328
+ t[11] || (t[11] = _("span", null, "Ctrl-space brings up autocomplete. Right click keywords for documentation.", -1)),
329
+ s(v),
330
+ s(f, {
331
+ class: "mx-2",
332
+ variant: "outlined",
333
+ "data-test": "edit-screen-cancel",
334
+ onClick: t[3] || (t[3] = (E) => e.$emit("cancel"))
335
+ }, {
336
+ default: r(() => t[9] || (t[9] = [
337
+ C(" Cancel ")
338
+ ])),
339
+ _: 1
340
+ }),
341
+ s(f, {
342
+ class: "mx-2",
343
+ color: "primary",
344
+ "data-test": "edit-screen-save",
345
+ onClick: t[4] || (t[4] = (E) => e.$emit("save", e.editor.getValue()))
346
+ }, {
347
+ default: r(() => t[10] || (t[10] = [
348
+ C(" Save ")
349
+ ])),
350
+ _: 1
351
+ })
352
+ ]),
353
+ _: 1
354
+ })
355
+ ]),
356
+ _: 1
357
+ })
358
+ ]),
359
+ _: 1
360
+ })
361
+ ]),
362
+ _: 1
363
+ }, 8, ["modelValue"]);
364
+ }
365
+ const ie = /* @__PURE__ */ F(ee, [["render", ne], ["__scopeId", "data-v-0caab967"]]), se = {
366
+ props: {
367
+ modelValue: Boolean
368
+ },
369
+ data() {
370
+ return {
371
+ alert: "",
372
+ alertType: "success",
373
+ showAlert: !1,
374
+ search: "",
375
+ key: "",
376
+ keyValue: "",
377
+ environment: [],
378
+ headers: [
379
+ {
380
+ text: "Key",
381
+ value: "key"
382
+ },
383
+ {
384
+ text: "Value",
385
+ value: "value"
386
+ },
387
+ {
388
+ text: "Actions",
389
+ value: "actions",
390
+ align: "end",
391
+ sortable: !1
392
+ }
393
+ ]
394
+ };
395
+ },
396
+ computed: {
397
+ show: {
398
+ get() {
399
+ return this.modelValue;
400
+ },
401
+ set(e) {
402
+ this.$emit("update:modelValue", e);
403
+ }
404
+ }
405
+ },
406
+ mounted() {
407
+ this.update();
408
+ },
409
+ methods: {
410
+ alertHandler: function(e) {
411
+ this.alert = e.text, this.alertType = e.type, this.showAlert = !0;
412
+ },
413
+ update: function() {
414
+ I.get("/openc3-api/environment").then((e) => {
415
+ this.environment = e.data;
416
+ }).catch((e) => {
417
+ });
418
+ },
419
+ addEnvironment: function() {
420
+ I.post("/openc3-api/environment", {
421
+ data: {
422
+ key: this.key.toUpperCase(),
423
+ value: this.keyValue
424
+ }
425
+ }).then((e) => {
426
+ `${e.data.name}`, this.update();
427
+ }).catch((e) => {
428
+ const t = {
429
+ text: `Failed to add environment variable: ${e}`,
430
+ type: "error"
431
+ };
432
+ this.alertHandler(t);
433
+ }), this.key = "", this.keyValue = "";
434
+ },
435
+ deleteEnvironment: function(e) {
436
+ this.$dialog.confirm(`Are you sure you want to delete: ${e.key}=${e.value}`, {
437
+ okText: "Delete",
438
+ cancelText: "Cancel"
439
+ }).then((t) => I.delete(`/openc3-api/environment/${e.name}`)).then((t) => {
440
+ const n = {
441
+ text: `Removed environment variable: ${e.name}`,
442
+ type: "success"
443
+ };
444
+ this.alertHandler(n), this.update();
445
+ }).catch((t) => {
446
+ const n = {
447
+ text: `Failed to delete environment: ${t}`,
448
+ type: "error"
449
+ };
450
+ this.alertHandler(n);
451
+ });
452
+ }
453
+ }
454
+ }, le = { class: "pa-3" };
455
+ function oe(e, t, n, o, i, l) {
456
+ const f = a("v-spacer"), v = a("v-toolbar"), p = a("v-text-field"), h = a("v-row"), d = a("v-btn"), c = a("v-data-table"), g = a("v-col"), x = a("v-card-text"), S = a("v-card"), w = a("v-dialog");
457
+ return m(), b(w, {
458
+ modelValue: l.show,
459
+ "onUpdate:modelValue": t[4] || (t[4] = (y) => l.show = y),
460
+ width: "600"
461
+ }, {
462
+ default: r(() => [
463
+ s(S, null, {
464
+ default: r(() => [
465
+ _("form", {
466
+ onSubmit: t[3] || (t[3] = D((...y) => l.addEnvironment && l.addEnvironment(...y), ["prevent"]))
467
+ }, [
468
+ s(v, { height: "24" }, {
469
+ default: r(() => [
470
+ s(f),
471
+ t[5] || (t[5] = _("span", null, "Global Environment Variables", -1)),
472
+ s(f)
473
+ ]),
474
+ _: 1
475
+ }),
476
+ s(x, null, {
477
+ default: r(() => [
478
+ _("div", le, [
479
+ s(h, {
480
+ dense: "",
481
+ class: "mb-2"
482
+ }, {
483
+ default: r(() => [
484
+ s(p, {
485
+ modelValue: i.search,
486
+ "onUpdate:modelValue": t[0] || (t[0] = (y) => i.search = y),
487
+ label: "search",
488
+ type: "text",
489
+ "data-test": "search",
490
+ "prepend-inner-icon": "mdi-magnify",
491
+ clearable: "",
492
+ variant: "outlined",
493
+ density: "compact",
494
+ "clear-icon": "mdi-close-circle-outline",
495
+ autofocus: "",
496
+ "single-line": "",
497
+ "hide-details": ""
498
+ }, null, 8, ["modelValue"])
499
+ ]),
500
+ _: 1
501
+ }),
502
+ s(c, {
503
+ "item-key": "name",
504
+ "hide-default-header": "",
505
+ "data-test": "env-table",
506
+ search: i.search,
507
+ headers: i.headers,
508
+ items: i.environment,
509
+ "items-per-page": 5,
510
+ "items-per-page-options": [5]
511
+ }, {
512
+ "item.actions": r(({ item: y }) => [
513
+ s(d, {
514
+ icon: "mdi-delete",
515
+ variant: "text",
516
+ class: "mt-1",
517
+ "data-test": "item-delete",
518
+ "aria-label": "Delete Environment Variable",
519
+ onClick: (u) => l.deleteEnvironment(y)
520
+ }, null, 8, ["onClick"])
521
+ ]),
522
+ _: 1
523
+ }, 8, ["search", "headers", "items"]),
524
+ s(h, { dense: "" }, {
525
+ default: r(() => [
526
+ s(g, null, {
527
+ default: r(() => [
528
+ s(p, {
529
+ modelValue: i.key,
530
+ "onUpdate:modelValue": t[1] || (t[1] = (y) => i.key = y),
531
+ label: "Key",
532
+ "data-test": "env-key"
533
+ }, null, 8, ["modelValue"])
534
+ ]),
535
+ _: 1
536
+ }),
537
+ s(g, null, {
538
+ default: r(() => [
539
+ s(p, {
540
+ modelValue: i.keyValue,
541
+ "onUpdate:modelValue": t[2] || (t[2] = (y) => i.keyValue = y),
542
+ label: "Value",
543
+ "data-test": "env-value"
544
+ }, null, 8, ["modelValue"])
545
+ ]),
546
+ _: 1
547
+ })
548
+ ]),
549
+ _: 1
550
+ }),
551
+ s(h, { dense: "" }, {
552
+ default: r(() => [
553
+ s(d, {
554
+ block: "",
555
+ type: "submit",
556
+ color: "primary",
557
+ "data-test": "add-env",
558
+ disabled: !i.key || !i.keyValue,
559
+ onClick: D(l.addEnvironment, ["prevent"])
560
+ }, {
561
+ default: r(() => t[6] || (t[6] = [
562
+ C(" Add ")
563
+ ])),
564
+ _: 1
565
+ }, 8, ["disabled", "onClick"])
566
+ ]),
567
+ _: 1
568
+ })
569
+ ])
570
+ ]),
571
+ _: 1
572
+ })
573
+ ], 32)
574
+ ]),
575
+ _: 1
576
+ })
577
+ ]),
578
+ _: 1
579
+ }, 8, ["modelValue"]);
580
+ }
581
+ const Ve = /* @__PURE__ */ F(se, [["render", oe]]), re = { class: "tree-node" }, ae = { class: "content-wrapper" }, de = ["tabindex"], ce = { key: 1 }, ue = {
582
+ key: 2,
583
+ class: "children"
584
+ }, he = {
585
+ __name: "TreeNode",
586
+ props: {
587
+ node: {
588
+ type: Object,
589
+ required: !0
590
+ },
591
+ search: {
592
+ type: String,
593
+ default: ""
594
+ },
595
+ type: {
596
+ type: String,
597
+ default: "open"
598
+ }
599
+ },
600
+ emits: ["nodeToggled", "request"],
601
+ setup(e, { emit: t }) {
602
+ const n = e, o = H(n.node.isOpen || !1), i = j(() => {
603
+ const d = (c) => {
604
+ var g;
605
+ return !n.search || c.path.toLowerCase().includes(n.search.toLowerCase()) ? !0 : !!((g = c.children) != null && g.some(d));
606
+ };
607
+ return d(n.node);
608
+ });
609
+ B(
610
+ () => n.node.isOpen,
611
+ (d) => {
612
+ o.value = d;
613
+ }
614
+ ), B(
615
+ () => n.search,
616
+ (d) => {
617
+ d ? n.node.isOpen || v() : n.node.isOpen && v();
618
+ }
619
+ );
620
+ const l = t, f = (d) => {
621
+ d.children ? (v(), n.type === "save" && l("request", d)) : l("request", d);
622
+ }, v = () => {
623
+ n.node.children && (o.value = !o.value, n.node.isOpen = o.value, l("nodeToggled", n.node.id, o.value));
624
+ }, p = (d, c) => {
625
+ l("nodeToggled", d, c);
626
+ }, h = (d) => {
627
+ l("request", d);
628
+ };
629
+ return (d, c) => {
630
+ const g = a("v-icon"), x = a("v-btn"), S = a("tree-node", !0);
631
+ return m(), T("div", re, [
632
+ i.value ? (m(), T("div", {
633
+ key: 0,
634
+ class: "node-content",
635
+ onClick: c[2] || (c[2] = (w) => f(e.node))
636
+ }, [
637
+ _("div", ae, [
638
+ e.node.children ? (m(), b(g, {
639
+ key: 0,
640
+ class: "toggle-icon",
641
+ style: { "padding-right": "10px" }
642
+ }, {
643
+ default: r(() => [
644
+ C(k(e.node.isOpen ? "mdi-menu-down" : "mdi-menu-right"), 1)
645
+ ]),
646
+ _: 1
647
+ })) : V("", !0),
648
+ e.node.children ? (m(), b(g, {
649
+ key: 1,
650
+ size: "small",
651
+ style: { "padding-right": "10px" }
652
+ }, {
653
+ default: r(() => c[3] || (c[3] = [
654
+ C(k("mdi-folder"))
655
+ ])),
656
+ _: 1
657
+ })) : e.node.title.includes(".rb") ? (m(), b(g, {
658
+ key: 2,
659
+ size: "small",
660
+ style: { "padding-right": "10px" }
661
+ }, {
662
+ default: r(() => c[4] || (c[4] = [
663
+ C(k("mdi-language-ruby"))
664
+ ])),
665
+ _: 1
666
+ })) : e.node.title.includes(".py") ? (m(), b(g, {
667
+ key: 3,
668
+ size: "small",
669
+ style: { "padding-right": "10px" }
670
+ }, {
671
+ default: r(() => c[5] || (c[5] = [
672
+ C(k("mdi-language-python"))
673
+ ])),
674
+ _: 1
675
+ })) : (m(), b(g, {
676
+ key: 4,
677
+ size: "small",
678
+ style: { "padding-right": "10px" }
679
+ }, {
680
+ default: r(() => c[6] || (c[6] = [
681
+ C(k("mdi-file-document"))
682
+ ])),
683
+ _: 1
684
+ })),
685
+ _("span", {
686
+ class: "title",
687
+ tabindex: e.node.children ? -1 : 0,
688
+ onKeyup: c[0] || (c[0] = q((w) => f(e.node), ["enter"]))
689
+ }, k(e.node.title), 41, de),
690
+ e.node.title === "__TEMP__" ? (m(), b(x, {
691
+ key: 5,
692
+ icon: "mdi-delete",
693
+ variant: "text",
694
+ style: { "margin-left": "auto" },
695
+ "aria-label": "Delete",
696
+ onClick: c[1] || (c[1] = (w) => l("delete"))
697
+ })) : V("", !0)
698
+ ])
699
+ ])) : (m(), T("div", ce)),
700
+ e.node.children && e.node.isOpen ? (m(), T("div", ue, [
701
+ (m(!0), T(z, null, U(e.node.children, (w) => (m(), b(S, {
702
+ key: w.id,
703
+ node: w,
704
+ search: e.search,
705
+ type: e.type,
706
+ onNodeToggled: p,
707
+ onRequest: h
708
+ }, null, 8, ["node", "search", "type"]))), 128))
709
+ ])) : V("", !0)
710
+ ]);
711
+ };
712
+ }
713
+ }, me = /* @__PURE__ */ F(he, [["__scopeId", "data-v-74233c4c"]]), fe = {
714
+ components: {
715
+ TreeNode: me
716
+ },
717
+ props: {
718
+ type: {
719
+ type: String,
720
+ required: !0,
721
+ validator: function(e) {
722
+ return ["open", "save"].indexOf(e) !== -1;
723
+ }
724
+ },
725
+ apiUrl: String,
726
+ // Base API URL for use with scripts or cmd-tlm
727
+ requireTargetParentDir: Boolean,
728
+ // Require that the save filename be nested in a directory with the name of a target
729
+ inputFilename: String,
730
+ // passed if this is a 'save' dialog
731
+ modelValue: Boolean
732
+ },
733
+ data() {
734
+ return {
735
+ tree: [],
736
+ items: [],
737
+ search: null,
738
+ selectedFile: null,
739
+ disableButtons: !1,
740
+ targets: [],
741
+ targetsRetrieved: [],
742
+ loading: !0
743
+ };
744
+ },
745
+ computed: {
746
+ show: {
747
+ get() {
748
+ return this.modelValue;
749
+ },
750
+ set(e) {
751
+ this.$emit("update:modelValue", e);
752
+ }
753
+ },
754
+ title: function() {
755
+ return this.type === "open" ? "File Open" : "File Save As...";
756
+ },
757
+ submit: function() {
758
+ return this.type === "open" ? "OPEN" : "SAVE";
759
+ },
760
+ helpText: function() {
761
+ return this.type === "open" ? "Click on folders to open them and then click a file to select it before clicking Open. Use the search box to filter the results. You can also Tab to the files and Enter to select." : "Click on the folder to save into. Then complete the filename path with the desired name. Use the search box to filter the results.";
762
+ },
763
+ error: function() {
764
+ if (this.selectedFile === "" || this.selectedFile === null)
765
+ return "No file selected must select a file";
766
+ if (!this.selectedFile.match(this.validFilenameRegex) || this.selectedFile.match(/\.\.|\/\/|\.\/|\/\./)) {
767
+ let e = `${this.selectedFile} is not a valid filename. Must `;
768
+ return this.requireTargetParentDir && (e += "be in a target directory and "), e += `only contain alphanumeric characters (including !-_.*) and a valid extension.
769
+
770
+ For example: TGT1/procedures/test.py or TGT2/lib/inst.rb`, e;
771
+ }
772
+ return this.type === "save" && this.selectedFile.match(/\*$/) ? `${this.selectedFile} is not a valid filename. Must not end in '*'.` : null;
773
+ },
774
+ validFilenameRegex: function() {
775
+ const e = "0-9a-zA-Z";
776
+ let n = `[${`${e}\\/\\!\\-\\_\\.\\*\\'\\(\\)`}]+\\.[${e}]+`;
777
+ return this.requireTargetParentDir && (n = `\\/?${`(${this.targets.join("|")})`}\\/${n}`), new RegExp(n);
778
+ }
779
+ },
780
+ created() {
781
+ I.get("/openc3-api/targets").then((e) => {
782
+ this.targets = e.data, this.targets.push("__TEMP__"), this.targets.forEach((t) => {
783
+ this.items.push({
784
+ id: t,
785
+ disabled: !0,
786
+ title: t,
787
+ children: [],
788
+ path: t
789
+ }), this.loadFiles(t);
790
+ }), this.loading = !1;
791
+ });
792
+ },
793
+ methods: {
794
+ calcIcon: function(e) {
795
+ return J(e);
796
+ },
797
+ loadFiles: function(e) {
798
+ I.get(this.apiUrl, { params: { target: e } }).then((t) => {
799
+ if (t.data.length === 0) {
800
+ this.items = this.items.filter((o) => o.id !== e);
801
+ return;
802
+ }
803
+ for (let o of t.data.sort())
804
+ this.filepath = o, this.insertFile(this.items, 2, o);
805
+ this.inputFilename && (this.selectedFile = this.inputFilename);
806
+ const n = this.items.findIndex((o) => o.id === e);
807
+ n !== -1 && (this.items[n].disabled = !1);
808
+ }).catch((t) => {
809
+ this.$emit("error", `Failed to connect to OpenC3. ${t}`);
810
+ });
811
+ },
812
+ clear: function() {
813
+ this.show = !1, this.overwrite = !1, this.disableButtons = !1;
814
+ },
815
+ activeFile: function(e) {
816
+ e.length === 0 ? this.selectedFile = null : (this.selectedFile = this.findItem(this.items, e.id), setTimeout(() => {
817
+ this.$refs.submitBtn.$el.focus();
818
+ }, 100));
819
+ },
820
+ findItem: function(e, t) {
821
+ for (let n of e) {
822
+ if (n.id === t)
823
+ return n.path;
824
+ if (n.children) {
825
+ const o = this.findItem(n.children, t);
826
+ if (o)
827
+ return o;
828
+ }
829
+ }
830
+ return null;
831
+ },
832
+ exists: function(e, t) {
833
+ let n = !1;
834
+ for (let o of e) {
835
+ if (o.path === t || o.path.length > 1 && o.path[o.path.length - 1] === "*" && o.path.slice(0, o.path.length - 1) === t)
836
+ return !0;
837
+ o.children && (n = n || this.exists(o.children, t));
838
+ }
839
+ return n;
840
+ },
841
+ success: function() {
842
+ this.selectedFile !== null && this.error === null && (this.type === "open" ? this.openSuccess() : this.saveSuccess());
843
+ },
844
+ deleteTemp: function() {
845
+ this.$dialog.confirm("Are you sure you want to delete all the temporary files?", {
846
+ okText: "Delete",
847
+ cancelText: "Cancel"
848
+ }).then((e) => I.delete("/script-api/scripts/temp_files")).then((e) => {
849
+ this.$emit("clear-temp"), this.loadFiles("__TEMP__");
850
+ }).catch((e) => {
851
+ this.$notify.serious({
852
+ title: "Error",
853
+ body: `Failed to remove script temporary files due to ${e}`
854
+ });
855
+ });
856
+ },
857
+ openSuccess: function() {
858
+ this.disableButtons = !0, I.get(`${this.apiUrl}/${this.selectedFile}`).then((e) => {
859
+ const t = {
860
+ name: this.selectedFile,
861
+ contents: e.data.contents
862
+ };
863
+ e.data.suites && (t.suites = JSON.parse(e.data.suites)), e.data.error && (t.error = e.data.error), e.data.success && (t.success = e.data.success);
864
+ const n = e.data.locked, o = e.data.breakpoints;
865
+ this.$emit("file", { file: t, locked: n, breakpoints: o }), this.clear();
866
+ }).catch((e) => {
867
+ this.$emit("error", `Failed to open ${this.selectedFile}. ${e}`), this.clear();
868
+ });
869
+ },
870
+ saveSuccess: function() {
871
+ this.exists(this.items, this.selectedFile) ? this.$dialog.confirm(`Are you sure you want to overwrite: ${this.selectedFile}`, {
872
+ okText: "Overwrite",
873
+ cancelText: "Cancel"
874
+ }).then((t) => {
875
+ this.$emit("filename", this.selectedFile), this.clear();
876
+ }).catch((t) => {
877
+ }) : (this.$emit("filename", this.selectedFile), this.clear());
878
+ },
879
+ insertFile: function(e, t, n) {
880
+ let o = n.split("/");
881
+ if (o.length === 1) {
882
+ e.push({
883
+ id: this.filepath,
884
+ title: o[0],
885
+ file: "ruby",
886
+ path: this.filepath
887
+ });
888
+ return;
889
+ }
890
+ const i = e.findIndex((l) => l.title === o[0]);
891
+ i === -1 ? (e.push({
892
+ id: this.filepath.split("/").slice(0, t - 1).join("/"),
893
+ title: o[0],
894
+ children: [],
895
+ path: this.filepath.split("/").slice(0, t - 1).join("/")
896
+ }), this.insertFile(
897
+ e[e.length - 1].children,
898
+ // Start from the node we just added
899
+ t + 1,
900
+ o.slice(1).join("/")
901
+ // Strip the first part of the path
902
+ )) : this.insertFile(
903
+ e[i].children,
904
+ t + 1,
905
+ o.slice(1).join("/")
906
+ );
907
+ }
908
+ }
909
+ }, pe = { class: "pa-3" }, ge = { class: "overflow-y-auto tree-container" };
910
+ function ve(e, t, n, o, i, l) {
911
+ const f = a("v-progress-circular"), v = a("v-overlay"), p = a("v-spacer"), h = a("v-toolbar"), d = a("v-row"), c = a("v-text-field"), g = a("tree-node"), x = a("v-btn"), S = a("v-card-text"), w = a("v-card"), y = a("v-dialog");
912
+ return m(), b(y, {
913
+ modelValue: l.show,
914
+ "onUpdate:modelValue": t[4] || (t[4] = (u) => l.show = u),
915
+ width: "600",
916
+ onKeydown: t[5] || (t[5] = q((u) => l.success(), ["enter"]))
917
+ }, {
918
+ default: r(() => [
919
+ s(w, null, {
920
+ default: r(() => [
921
+ s(v, { "model-value": i.loading }, {
922
+ default: r(() => [
923
+ s(f, {
924
+ indeterminate: "",
925
+ absolute: "",
926
+ size: "64"
927
+ })
928
+ ]),
929
+ _: 1
930
+ }, 8, ["model-value"]),
931
+ _("form", {
932
+ onSubmit: t[3] || (t[3] = D((...u) => l.success && l.success(...u), ["prevent"]))
933
+ }, [
934
+ s(h, { height: "24" }, {
935
+ default: r(() => [
936
+ s(p),
937
+ _("span", null, k(l.title), 1),
938
+ s(p)
939
+ ]),
940
+ _: 1
941
+ }),
942
+ s(S, null, {
943
+ default: r(() => [
944
+ _("div", pe, [
945
+ s(d, null, {
946
+ default: r(() => [
947
+ C(k(l.helpText), 1)
948
+ ]),
949
+ _: 1
950
+ }),
951
+ s(d, {
952
+ dense: "",
953
+ class: "mt-5"
954
+ }, {
955
+ default: r(() => [
956
+ s(c, {
957
+ modelValue: i.search,
958
+ "onUpdate:modelValue": t[0] || (t[0] = (u) => i.search = u),
959
+ flat: "",
960
+ autofocus: "",
961
+ "hide-details": "",
962
+ clearable: "",
963
+ label: "Search",
964
+ "prepend-inner-icon": "mdi-magnify",
965
+ density: "compact",
966
+ "data-test": "file-open-save-search"
967
+ }, null, 8, ["modelValue"])
968
+ ]),
969
+ _: 1
970
+ }),
971
+ _("div", ge, [
972
+ (m(!0), T(z, null, U(i.items, (u) => (m(), b(g, {
973
+ key: `${u.id}`,
974
+ node: u,
975
+ search: i.search,
976
+ type: n.type,
977
+ onRequest: l.activeFile,
978
+ onDelete: l.deleteTemp
979
+ }, null, 8, ["node", "search", "type", "onRequest", "onDelete"]))), 128))
980
+ ]),
981
+ s(d, { class: "my-2" }, {
982
+ default: r(() => [
983
+ s(c, {
984
+ modelValue: i.selectedFile,
985
+ "onUpdate:modelValue": t[1] || (t[1] = (u) => i.selectedFile = u),
986
+ "hide-details": "",
987
+ label: "Filename",
988
+ "data-test": "file-open-save-filename",
989
+ disabled: n.type === "open"
990
+ }, null, 8, ["modelValue", "disabled"])
991
+ ]),
992
+ _: 1
993
+ }),
994
+ s(d, { dense: "" }, {
995
+ default: r(() => [
996
+ O(_("div", {
997
+ class: "my-2 text-red",
998
+ style: { "white-space": "pre-line" }
999
+ }, k(l.error), 513), [
1000
+ [M, l.error]
1001
+ ])
1002
+ ]),
1003
+ _: 1
1004
+ }),
1005
+ s(d, { class: "mt-2" }, {
1006
+ default: r(() => [
1007
+ s(p),
1008
+ s(x, {
1009
+ variant: "outlined",
1010
+ class: "mx-2",
1011
+ "data-test": "file-open-save-cancel-btn",
1012
+ disabled: i.disableButtons,
1013
+ onClick: t[2] || (t[2] = (u) => l.show = !1)
1014
+ }, {
1015
+ default: r(() => t[6] || (t[6] = [
1016
+ C(" Cancel ")
1017
+ ])),
1018
+ _: 1
1019
+ }, 8, ["disabled"]),
1020
+ s(x, {
1021
+ ref: "submitBtn",
1022
+ type: "submit",
1023
+ color: "primary",
1024
+ class: "mx-2",
1025
+ "data-test": "file-open-save-submit-btn",
1026
+ disabled: i.disableButtons || !!l.error,
1027
+ onClick: D(l.success, ["prevent"])
1028
+ }, {
1029
+ default: r(() => [
1030
+ C(k(l.submit), 1)
1031
+ ]),
1032
+ _: 1
1033
+ }, 8, ["disabled", "onClick"])
1034
+ ]),
1035
+ _: 1
1036
+ })
1037
+ ])
1038
+ ]),
1039
+ _: 1
1040
+ })
1041
+ ], 32)
1042
+ ]),
1043
+ _: 1
1044
+ })
1045
+ ]),
1046
+ _: 1
1047
+ }, 8, ["modelValue"]);
1048
+ }
1049
+ const Te = /* @__PURE__ */ F(fe, [["render", ve]]), L = 20, ye = {
1050
+ components: {
1051
+ EditScreenDialog: ie
1052
+ },
1053
+ mixins: [G],
1054
+ props: {
1055
+ target: {
1056
+ type: String,
1057
+ default: ""
1058
+ },
1059
+ screen: {
1060
+ type: String,
1061
+ default: ""
1062
+ },
1063
+ definition: {
1064
+ type: String,
1065
+ default: ""
1066
+ },
1067
+ keywords: {
1068
+ type: Array,
1069
+ default: () => []
1070
+ },
1071
+ initialFloated: {
1072
+ type: Boolean,
1073
+ default: !1
1074
+ },
1075
+ initialTop: {
1076
+ type: Number,
1077
+ default: 0
1078
+ },
1079
+ initialLeft: {
1080
+ type: Number,
1081
+ default: 0
1082
+ },
1083
+ initialZ: {
1084
+ type: Number,
1085
+ default: 0
1086
+ },
1087
+ minZ: {
1088
+ type: Number,
1089
+ default: 0
1090
+ },
1091
+ fixFloated: {
1092
+ type: Boolean,
1093
+ default: !1
1094
+ },
1095
+ count: {
1096
+ type: Number,
1097
+ default: 0
1098
+ },
1099
+ showClose: {
1100
+ type: Boolean,
1101
+ default: !0
1102
+ },
1103
+ timeZone: {
1104
+ type: String,
1105
+ default: "local"
1106
+ },
1107
+ inline: {
1108
+ type: Boolean,
1109
+ default: !1
1110
+ }
1111
+ },
1112
+ data() {
1113
+ return {
1114
+ api: null,
1115
+ backup: "",
1116
+ currentDefinition: this.definition,
1117
+ editDialog: !1,
1118
+ expand: !0,
1119
+ configParser: null,
1120
+ configError: !1,
1121
+ currentLayout: null,
1122
+ layoutStack: [],
1123
+ namedWidgets: {},
1124
+ dynamicWidgets: [],
1125
+ width: null,
1126
+ height: null,
1127
+ staleTime: 30,
1128
+ cacheTimeout: 0.1,
1129
+ globalSettings: [],
1130
+ substitute: !1,
1131
+ original_target_name: null,
1132
+ force_substitute: !1,
1133
+ pollingPeriod: 1,
1134
+ errors: [],
1135
+ errorDialog: !1,
1136
+ screenKey: null,
1137
+ dragX: 0,
1138
+ dragY: 0,
1139
+ floated: this.initialFloated,
1140
+ top: this.initialTop,
1141
+ left: this.initialLeft,
1142
+ zIndex: this.initialZ,
1143
+ changeCounter: 0,
1144
+ screenItems: [],
1145
+ screenValues: {},
1146
+ updateCounter: 0,
1147
+ screenId: Y.uniqueId("openc3-screen_")
1148
+ };
1149
+ },
1150
+ computed: {
1151
+ error: function() {
1152
+ if (this.errorDialog && this.errors.length > 0) {
1153
+ let e = /* @__PURE__ */ new Set(), t = "";
1154
+ for (const n of this.errors) {
1155
+ if (e.has(n.message))
1156
+ continue;
1157
+ let o = `${n.time}: (${n.type}) ${n.message}
1158
+ `;
1159
+ t += o, e.add(n.message);
1160
+ }
1161
+ return t;
1162
+ }
1163
+ return null;
1164
+ },
1165
+ computedStyle() {
1166
+ var n;
1167
+ let e = {};
1168
+ const t = this.width || ((n = this.$refs.bar) == null ? void 0 : n.clientWidth);
1169
+ return this.floated && (e.position = "absolute", e.top = this.top + "px", e.left = this.left + "px", e.width = t + "px"), e;
1170
+ }
1171
+ },
1172
+ watch: {
1173
+ count: {
1174
+ handler(e, t) {
1175
+ this.currentDefinition = this.definition, this.rerender();
1176
+ }
1177
+ }
1178
+ },
1179
+ // Called when an error from any descendent component is captured
1180
+ // We need this because an error can occur from any of the children
1181
+ // in the widget stack and are typically thrown on create()
1182
+ errorCaptured(e, t, n) {
1183
+ return this.errors.length < L && (e.usage ? this.errors.push({
1184
+ type: "usage",
1185
+ message: e.message,
1186
+ usage: e.usage,
1187
+ line: e.line,
1188
+ lineNumber: e.lineNumber,
1189
+ time: (/* @__PURE__ */ new Date()).getTime()
1190
+ }) : this.errors.push({
1191
+ type: "error",
1192
+ message: e,
1193
+ time: (/* @__PURE__ */ new Date()).getTime()
1194
+ }), console.log(this.errors), this.configError = !0), !1;
1195
+ },
1196
+ created() {
1197
+ this.api = new P(), this.configParser = new X(), this.parseDefinition(), this.screenKey = Math.floor(Math.random() * 1e6);
1198
+ },
1199
+ mounted() {
1200
+ this.updateRefreshInterval(), this.floated && (this.$refs.bar.onmousedown = this.dragMouseDown, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex);
1201
+ },
1202
+ unmounted() {
1203
+ this.updater != null && (clearInterval(this.updater), this.updater = null);
1204
+ },
1205
+ methods: {
1206
+ // These are API methods that ButtonWidget uses to open and close screens
1207
+ open(e, t) {
1208
+ this.$parent.showScreen(e, t);
1209
+ },
1210
+ close(e, t) {
1211
+ this.$parent.closeScreenByName(e, t);
1212
+ },
1213
+ closeAll() {
1214
+ this.$parent.closeAll();
1215
+ },
1216
+ clearErrors: function() {
1217
+ this.errors = [], this.configError = !1;
1218
+ },
1219
+ updateRefreshInterval: function() {
1220
+ let e = this.pollingPeriod * 1e3;
1221
+ this.updater && clearInterval(this.updater), this.updater = setInterval(() => {
1222
+ this.update();
1223
+ }, e);
1224
+ },
1225
+ parseDefinition: function() {
1226
+ if (this.clearErrors(), this.namedWidgets = {}, this.layoutStack = [], this.dynamicWidgets = [], this.layoutStack.push({
1227
+ type: "VerticalWidget",
1228
+ parameters: [],
1229
+ widgets: []
1230
+ }), this.currentLayout = this.layoutStack[this.layoutStack.length - 1], this.configParser.parse_string(
1231
+ this.currentDefinition,
1232
+ "",
1233
+ !1,
1234
+ !0,
1235
+ (e, t, n, o) => {
1236
+ if (e)
1237
+ switch (e) {
1238
+ case "SCREEN":
1239
+ this.configParser.verify_num_parameters(
1240
+ 3,
1241
+ 4,
1242
+ `${e} <Width or AUTO> <Height or AUTO> <Polling Period>`
1243
+ ), this.width = parseInt(t[0]), this.height = parseInt(t[1]), this.pollingPeriod = parseFloat(t[2]);
1244
+ break;
1245
+ case "END":
1246
+ this.configParser.verify_num_parameters(0, 0, `${e}`), this.layoutStack.pop(), this.currentLayout = this.layoutStack[this.layoutStack.length - 1];
1247
+ break;
1248
+ case "STALE_TIME":
1249
+ this.configParser.verify_num_parameters(
1250
+ 1,
1251
+ 1,
1252
+ `${e} <Time (s)>`
1253
+ ), this.staleTime = parseInt(t[0]);
1254
+ break;
1255
+ case "SETTING":
1256
+ case "SUBSETTING":
1257
+ (this.currentLayout.widgets[this.currentLayout.widgets.length - 1] ?? this.currentLayout).settings.push(t);
1258
+ break;
1259
+ case "GLOBAL_SETTING":
1260
+ case "GLOBAL_SUBSETTING":
1261
+ this.globalSettings.push(t);
1262
+ break;
1263
+ default:
1264
+ this.processWidget(e, t, n, o);
1265
+ break;
1266
+ }
1267
+ }
1268
+ ), typeof this.layoutStack[0] > "u") {
1269
+ let e = [], t = [];
1270
+ for (const n of this.dynamicWidgets)
1271
+ e.push(n.name), t.push(n.lineNumber);
1272
+ this.errors.length < L && (this.errors.push({
1273
+ type: "usage",
1274
+ message: `Unknown widget! Are these widgets: ${e.join(",")}?`,
1275
+ lineNumber: t.join(","),
1276
+ time: (/* @__PURE__ */ new Date()).getTime()
1277
+ }), this.configError = !0), this.layoutStack[0] = {
1278
+ type: "VerticalWidget",
1279
+ parameters: [],
1280
+ widgets: []
1281
+ };
1282
+ } else
1283
+ this.applyGlobalSettings(this.layoutStack[0].widgets);
1284
+ },
1285
+ openEdit: function() {
1286
+ this.backup = this.currentDefinition.repeat(1), this.editDialog = !0;
1287
+ },
1288
+ upScreen: function() {
1289
+ this.zIndex += 1, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex, this.$emit("drag-screen", [
1290
+ this.floated,
1291
+ this.top,
1292
+ this.left,
1293
+ this.zIndex
1294
+ ]);
1295
+ },
1296
+ downScreen: function() {
1297
+ this.zIndex > this.minZ && (this.zIndex -= 1, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex, this.$emit("drag-screen", [
1298
+ this.floated,
1299
+ this.top,
1300
+ this.left,
1301
+ this.zIndex
1302
+ ]));
1303
+ },
1304
+ floatScreen: function() {
1305
+ if (this.floated)
1306
+ this.$refs.bar.onmousedown = null, this.$refs.bar.parentElement.parentElement.style = "z-index: 0", this.floated = !1, this.$emit("unfloat-screen", [
1307
+ this.floated,
1308
+ this.top,
1309
+ this.left,
1310
+ this.zIndex
1311
+ ]);
1312
+ else {
1313
+ let e = this.$refs.bar.parentElement.parentElement.parentElement.getBoundingClientRect(), t = this.$refs.bar.getBoundingClientRect();
1314
+ this.top = t.top - e.top - 5, this.left = t.left - e.left - 5, this.$refs.bar.onmousedown = this.dragMouseDown, this.$refs.bar.parentElement.parentElement.style = "z-index: " + this.zIndex, this.floated = !0, this.$emit("float-screen", [
1315
+ this.floated,
1316
+ this.top,
1317
+ this.left,
1318
+ this.zIndex
1319
+ ]);
1320
+ }
1321
+ },
1322
+ dragMouseDown: function(e) {
1323
+ e = e || window.event, e.preventDefault(), this.dragX = e.clientX, this.dragY = e.clientY, document.onmouseup = this.closeDragElement, document.onmousemove = this.elementDrag;
1324
+ },
1325
+ elementDrag: function(e) {
1326
+ e = e || window.event, e.preventDefault();
1327
+ let t = this.dragX - e.clientX, n = this.dragY - e.clientY;
1328
+ this.dragX = e.clientX, this.dragY = e.clientY, this.top = this.$refs.bar.offsetTop - n, this.left = this.$refs.bar.offsetLeft - t, this.$emit("drag-screen", [
1329
+ this.floated,
1330
+ this.top,
1331
+ this.left,
1332
+ this.zIndex
1333
+ ]);
1334
+ },
1335
+ closeDragElement: function() {
1336
+ document.onmouseup = null, document.onmousemove = null;
1337
+ },
1338
+ rerender: function() {
1339
+ this.parseDefinition(), this.updateRefreshInterval(), this.screenKey = Math.floor(Math.random() * 1e6), this.$nextTick(function() {
1340
+ this.clearErrors(), this.$emit("edit-screen");
1341
+ });
1342
+ },
1343
+ cancelEdit: function() {
1344
+ this.file = null, this.editDialog = !1, this.currentDefinition = this.backup, this.rerender();
1345
+ },
1346
+ saveEdit: function(e) {
1347
+ this.editDialog = !1, this.currentDefinition = e, this.rerender(), this.$nextTick(function() {
1348
+ I.post(
1349
+ "/openc3-api/screen/",
1350
+ {
1351
+ data: {
1352
+ scope: window.openc3Scope,
1353
+ target: this.target,
1354
+ screen: this.screen,
1355
+ text: this.currentDefinition
1356
+ }
1357
+ },
1358
+ 0
1359
+ );
1360
+ });
1361
+ },
1362
+ deleteScreen: function() {
1363
+ this.editDialog = !1, I.delete(`/openc3-api/screen/${this.target}/${this.screen}`).then(
1364
+ (e) => {
1365
+ this.$emit("delete-screen");
1366
+ }
1367
+ );
1368
+ },
1369
+ minMaxTransition: function() {
1370
+ this.expand = !this.expand, this.$emit("min-max-screen");
1371
+ },
1372
+ processWidget: function(e, t, n, o) {
1373
+ let i = null;
1374
+ e === "NAMED_WIDGET" && (this.configParser.verify_num_parameters(
1375
+ 2,
1376
+ null,
1377
+ `${e} <Widget Name> <Widget Type> <Widget Settings... (optional)>`
1378
+ ), i = t[0].toUpperCase(), e = t[1].toUpperCase(), t = t.slice(2, t.length));
1379
+ const l = e.charAt(0).toUpperCase() + e.slice(1).toLowerCase() + "Widget";
1380
+ let f = [];
1381
+ if (f.push(["__SCREEN_ID__", this.screenId]), i !== null && f.push(["NAMED_WIDGET", i]), e === "VERTICAL" || e === "VERTICALBOX" || e === "HORIZONTAL" || e === "HORIZONTALBOX" || e === "MATRIXBYCOLUMNS" || e === "TABBOOK" || e === "TABITEM" || e === "CANVAS" || e === "RADIOGROUP" || e === "SCROLLWINDOW") {
1382
+ const v = {
1383
+ type: l,
1384
+ parameters: t,
1385
+ settings: f,
1386
+ screenValues: this.screenValues,
1387
+ screenTimeZone: this.timeZone,
1388
+ widgets: []
1389
+ };
1390
+ this.layoutStack.push(v), this.currentLayout.widgets.push(v), this.currentLayout = v;
1391
+ } else if (this.$options.components[l])
1392
+ this.currentLayout.widgets.push({
1393
+ type: l,
1394
+ target: this.target,
1395
+ parameters: t,
1396
+ settings: f,
1397
+ screenValues: this.screenValues,
1398
+ screenTimeZone: this.timeZone,
1399
+ line: n,
1400
+ lineNumber: o
1401
+ });
1402
+ else {
1403
+ let v = {
1404
+ type: "DynamicWidget",
1405
+ target: this.target,
1406
+ parameters: t,
1407
+ settings: f,
1408
+ screenValues: this.screenValues,
1409
+ screenTimeZone: this.timeZone,
1410
+ name: l,
1411
+ line: n,
1412
+ lineNumber: o
1413
+ };
1414
+ this.currentLayout.widgets.push(v), this.dynamicWidgets.push(v);
1415
+ }
1416
+ },
1417
+ applyGlobalSettings: function(e) {
1418
+ e.forEach((t) => {
1419
+ this.globalSettings.forEach((n) => {
1420
+ t.type.toLowerCase() === n[0].toLowerCase() + "widget" && (t.settings.find(
1421
+ (i) => i[0] === n[1]
1422
+ ) || t.settings.push(n.slice(1)));
1423
+ }), t.widgets && this.applyGlobalSettings(t.widgets);
1424
+ });
1425
+ },
1426
+ update: function() {
1427
+ this.screenItems.length !== 0 && this.configError === !1 && this.api.get_tlm_values(this.screenItems, this.staleTime, this.cacheTimeout).then((e) => {
1428
+ this.clearErrors(), this.updateValues(e);
1429
+ }).catch((e) => {
1430
+ let t = JSON.stringify(e, null, 2);
1431
+ t.includes("no response received") || (this.configError = !0), this.errors.find((n) => n.message === t) || this.errors.length < L && this.errors.push({
1432
+ type: "error",
1433
+ message: t,
1434
+ time: (/* @__PURE__ */ new Date()).getTime()
1435
+ });
1436
+ });
1437
+ },
1438
+ updateValues: function(e) {
1439
+ this.updateCounter += 1;
1440
+ for (let t = 0; t < e.length; t++)
1441
+ e[t].push(this.updateCounter), this.screenValues[this.screenItems[t]] = e[t];
1442
+ },
1443
+ addItem: function(e) {
1444
+ this.screenItems.push(e), this.screenValues[e] = [null, null, 0];
1445
+ },
1446
+ deleteItem: function(e) {
1447
+ let t = this.screenItems.indexOf(e);
1448
+ this.screenItems.splice(t, 1);
1449
+ }
1450
+ }
1451
+ }, _e = {
1452
+ ref: "screen",
1453
+ class: "pa-1",
1454
+ style: { position: "relative" }
1455
+ }, be = {
1456
+ key: 1,
1457
+ class: "pa-1",
1458
+ style: { position: "relative" }
1459
+ };
1460
+ function xe(e, t, n, o, i, l) {
1461
+ const f = a("v-btn"), v = a("v-tooltip"), p = a("v-spacer"), h = a("v-toolbar"), d = a("v-overlay"), c = a("vertical-widget"), g = a("v-expand-transition"), x = a("v-card"), S = a("edit-screen-dialog"), w = a("v-textarea"), y = a("v-dialog");
1462
+ return m(), T("div", {
1463
+ ref: "bar",
1464
+ style: $(l.computedStyle)
1465
+ }, [
1466
+ n.inline ? V("", !0) : (m(), b(x, {
1467
+ key: 0,
1468
+ "min-height": i.height,
1469
+ "min-width": i.width,
1470
+ style: { cursor: "default" }
1471
+ }, {
1472
+ default: r(() => [
1473
+ s(h, { height: "24" }, {
1474
+ default: r(() => [
1475
+ O(s(f, {
1476
+ icon: "mdi-alert",
1477
+ variant: "text",
1478
+ density: "compact",
1479
+ "data-test": "error-graph-icon",
1480
+ "aria-label": "Show Errors",
1481
+ onClick: t[0] || (t[0] = () => {
1482
+ i.errorDialog = !0;
1483
+ })
1484
+ }, null, 512), [
1485
+ [M, i.errors.length !== 0]
1486
+ ]),
1487
+ s(f, {
1488
+ icon: "mdi-pencil",
1489
+ variant: "text",
1490
+ density: "compact",
1491
+ "data-test": "edit-screen-icon",
1492
+ "aria-label": "Edit Screen",
1493
+ onClick: l.openEdit
1494
+ }, null, 8, ["onClick"]),
1495
+ n.fixFloated ? V("", !0) : (m(), b(v, {
1496
+ key: 0,
1497
+ "open-delay": 600,
1498
+ location: "top"
1499
+ }, {
1500
+ activator: r(({ props: u }) => [
1501
+ _("div", N(R(u)), [
1502
+ s(f, {
1503
+ icon: i.floated ? "mdi-balloon" : "mdi-view-grid-outline",
1504
+ variant: "text",
1505
+ "data-test": "float-screen-icon",
1506
+ "aria-label": i.floated ? "Unfloat Screen" : "Float Screen",
1507
+ onClick: l.floatScreen
1508
+ }, null, 8, ["icon", "aria-label", "onClick"])
1509
+ ], 16)
1510
+ ]),
1511
+ default: r(() => [
1512
+ _("span", null, k(i.floated ? "Unfloat Screen" : "Float Screen"), 1)
1513
+ ]),
1514
+ _: 1
1515
+ })),
1516
+ i.floated ? (m(), b(v, {
1517
+ key: 1,
1518
+ "open-delay": 600,
1519
+ location: "top"
1520
+ }, {
1521
+ activator: r(({ props: u }) => [
1522
+ _("div", N(R(u)), [
1523
+ s(f, {
1524
+ icon: "mdi-arrow-up",
1525
+ variant: "text",
1526
+ "data-test": "up-screen-icon",
1527
+ "aria-label": "Move Screen Up",
1528
+ onClick: l.upScreen
1529
+ }, null, 8, ["onClick"])
1530
+ ], 16)
1531
+ ]),
1532
+ default: r(() => [
1533
+ t[8] || (t[8] = _("span", null, " Move Screen Up ", -1))
1534
+ ]),
1535
+ _: 1
1536
+ })) : V("", !0),
1537
+ i.floated && i.zIndex > n.minZ ? (m(), b(v, {
1538
+ key: 2,
1539
+ "open-delay": 600,
1540
+ location: "top"
1541
+ }, {
1542
+ activator: r(({ props: u }) => [
1543
+ _("div", N(R(u)), [
1544
+ s(f, {
1545
+ icon: "mdi-arrow-down",
1546
+ variant: "text",
1547
+ "data-test": "down-screen-icon",
1548
+ "aria-label": "Move Screen Down",
1549
+ onClick: l.downScreen
1550
+ }, null, 8, ["onClick"])
1551
+ ], 16)
1552
+ ]),
1553
+ default: r(() => [
1554
+ t[9] || (t[9] = _("span", null, " Move Screen Down ", -1))
1555
+ ]),
1556
+ _: 1
1557
+ })) : V("", !0),
1558
+ s(p),
1559
+ _("span", null, k(n.target) + " " + k(n.screen), 1),
1560
+ s(p),
1561
+ i.expand ? (m(), b(f, {
1562
+ key: 3,
1563
+ icon: "mdi-window-minimize",
1564
+ variant: "text",
1565
+ density: "compact",
1566
+ "data-test": "minimize-screen-icon",
1567
+ "aria-label": "Minimize Screen",
1568
+ onClick: l.minMaxTransition
1569
+ }, null, 8, ["onClick"])) : (m(), b(f, {
1570
+ key: 4,
1571
+ icon: "mdi-window-maximize",
1572
+ variant: "text",
1573
+ "data-test": "maximize-screen-icon",
1574
+ "aria-label": "Maximize Screen",
1575
+ onClick: l.minMaxTransition
1576
+ }, null, 8, ["onClick"])),
1577
+ n.showClose ? (m(), b(f, {
1578
+ key: 5,
1579
+ icon: "mdi-close-box",
1580
+ variant: "text",
1581
+ density: "compact",
1582
+ "data-test": "close-screen-icon",
1583
+ "aria-label": "Close Screen",
1584
+ onClick: t[1] || (t[1] = (u) => e.$emit("close-screen"))
1585
+ })) : V("", !0)
1586
+ ]),
1587
+ _: 1
1588
+ }),
1589
+ i.editDialog ? V("", !0) : (m(), b(g, { key: 0 }, {
1590
+ default: r(() => [
1591
+ O(_("div", _e, [
1592
+ s(d, {
1593
+ style: { "pointer-events": "none" },
1594
+ "model-value": i.errors.length !== 0,
1595
+ opacity: "0.8",
1596
+ absolute: "",
1597
+ attach: "",
1598
+ "scroll-strategy": "none"
1599
+ }, null, 8, ["model-value"]),
1600
+ (m(), b(c, {
1601
+ key: i.screenKey,
1602
+ widgets: i.layoutStack[0].widgets,
1603
+ "screen-values": i.screenValues,
1604
+ "screen-time-zone": n.timeZone,
1605
+ onAddItem: l.addItem,
1606
+ onDeleteItem: l.deleteItem,
1607
+ onOpen: l.open,
1608
+ onClose: l.close,
1609
+ onCloseAll: l.closeAll
1610
+ }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
1611
+ ], 512), [
1612
+ [M, i.expand]
1613
+ ])
1614
+ ]),
1615
+ _: 1
1616
+ }))
1617
+ ]),
1618
+ _: 1
1619
+ }, 8, ["min-height", "min-width"])),
1620
+ n.inline ? (m(), T("div", be, [
1621
+ s(d, {
1622
+ style: { "pointer-events": "none" },
1623
+ "model-value": i.errors.length !== 0,
1624
+ opacity: "0.8",
1625
+ absolute: "",
1626
+ attach: "",
1627
+ "scroll-strategy": "none"
1628
+ }, null, 8, ["model-value"]),
1629
+ O(s(f, {
1630
+ icon: "mdi-alert",
1631
+ variant: "text",
1632
+ density: "compact",
1633
+ "data-test": "error-graph-icon",
1634
+ "aria-label": "Show Errors",
1635
+ onClick: t[2] || (t[2] = () => {
1636
+ i.errorDialog = !0;
1637
+ })
1638
+ }, null, 512), [
1639
+ [M, i.errors.length !== 0]
1640
+ ]),
1641
+ (m(), b(c, {
1642
+ key: i.screenKey,
1643
+ widgets: i.layoutStack[0].widgets,
1644
+ "screen-values": i.screenValues,
1645
+ "screen-time-zone": n.timeZone,
1646
+ onAddItem: l.addItem,
1647
+ onDeleteItem: l.deleteItem,
1648
+ onOpen: l.open,
1649
+ onClose: l.close,
1650
+ onCloseAll: l.closeAll
1651
+ }, null, 8, ["widgets", "screen-values", "screen-time-zone", "onAddItem", "onDeleteItem", "onOpen", "onClose", "onCloseAll"]))
1652
+ ])) : V("", !0),
1653
+ i.editDialog ? (m(), b(S, {
1654
+ key: 2,
1655
+ modelValue: i.editDialog,
1656
+ "onUpdate:modelValue": t[3] || (t[3] = (u) => i.editDialog = u),
1657
+ target: n.target,
1658
+ screen: n.screen,
1659
+ definition: i.currentDefinition,
1660
+ keywords: n.keywords,
1661
+ errors: i.errors,
1662
+ onSave: t[4] || (t[4] = (u) => l.saveEdit(u)),
1663
+ onCancel: t[5] || (t[5] = (u) => l.cancelEdit()),
1664
+ onDelete: t[6] || (t[6] = (u) => l.deleteScreen())
1665
+ }, null, 8, ["modelValue", "target", "screen", "definition", "keywords", "errors"])) : V("", !0),
1666
+ s(y, {
1667
+ modelValue: i.errorDialog,
1668
+ "onUpdate:modelValue": t[7] || (t[7] = (u) => i.errorDialog = u),
1669
+ width: "60vw"
1670
+ }, {
1671
+ default: r(() => [
1672
+ s(h, { height: "24" }, {
1673
+ default: r(() => [
1674
+ s(p),
1675
+ _("span", null, " Screen: " + k(n.target) + " " + k(n.screen) + " Errors ", 1),
1676
+ s(p)
1677
+ ]),
1678
+ _: 1
1679
+ }),
1680
+ s(x, null, {
1681
+ default: r(() => [
1682
+ s(w, {
1683
+ class: "errors",
1684
+ readonly: "",
1685
+ rows: "13",
1686
+ "model-value": l.error
1687
+ }, null, 8, ["model-value"])
1688
+ ]),
1689
+ _: 1
1690
+ })
1691
+ ]),
1692
+ _: 1
1693
+ }, 8, ["modelValue"])
1694
+ ], 4);
1695
+ }
1696
+ const Ie = /* @__PURE__ */ F(ye, [["render", xe], ["__scopeId", "data-v-b9a096c9"]]);
1697
+ export {
1698
+ ie as E,
1699
+ Te as F,
1700
+ Ie as O,
1701
+ Q as S,
1702
+ Ve as a
1703
+ };
1704
+ //# sourceMappingURL=Openc3Screen-DFYYhHt7.js.map