@openc3/vue-common 6.2.1 → 6.3.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 (489) hide show
  1. package/dist/{ArrayWidget-BxEO5hEG.js → ArrayWidget-BbsN1dzF.js} +5 -5
  2. package/dist/{ArrayWidget-BxEO5hEG.js.map → ArrayWidget-BbsN1dzF.js.map} +1 -1
  3. package/dist/{ArrayWidget-BIQi_bWC.cjs → ArrayWidget-DkjHrXsu.cjs} +3 -3
  4. package/dist/{ArrayWidget-BIQi_bWC.cjs.map → ArrayWidget-DkjHrXsu.cjs.map} +1 -1
  5. package/dist/{ArrayplotWidget-B_VPoV4v.js → ArrayplotWidget-CCKEyYIx.js} +4 -4
  6. package/dist/{ArrayplotWidget-B_VPoV4v.js.map → ArrayplotWidget-CCKEyYIx.js.map} +1 -1
  7. package/dist/ArrayplotWidget-COeaK_Lz.cjs +2 -0
  8. package/dist/{ArrayplotWidget-Donxhd8_.cjs.map → ArrayplotWidget-COeaK_Lz.cjs.map} +1 -1
  9. package/dist/{BarColumn-C9dkpg2O.js → BarColumn-C6p07yWK.js} +3 -3
  10. package/dist/{BarColumn-C9dkpg2O.js.map → BarColumn-C6p07yWK.js.map} +1 -1
  11. package/dist/BarColumn-CJLW1nXy.cjs +2 -0
  12. package/dist/{BarColumn-CyRSZHMh.cjs.map → BarColumn-CJLW1nXy.cjs.map} +1 -1
  13. package/dist/BlockWidget-BFVYgbd_.cjs +3 -0
  14. package/dist/{BlockWidget-DPLN1jgj.cjs.map → BlockWidget-BFVYgbd_.cjs.map} +1 -1
  15. package/dist/{BlockWidget-CuefOin6.js → BlockWidget-DlCHbqZX.js} +5 -5
  16. package/dist/{BlockWidget-CuefOin6.js.map → BlockWidget-DlCHbqZX.js.map} +1 -1
  17. package/dist/{ButtonWidget-B6HM0Doo.js → ButtonWidget-CtfJzCBR.js} +15 -15
  18. package/dist/{ButtonWidget-B6HM0Doo.js.map → ButtonWidget-CtfJzCBR.js.map} +1 -1
  19. package/dist/ButtonWidget-HN8UHsme.cjs +3 -0
  20. package/dist/{ButtonWidget-DccYzIY3.cjs.map → ButtonWidget-HN8UHsme.cjs.map} +1 -1
  21. package/dist/CanvasWidget-CHmkxxMO.cjs +2 -0
  22. package/dist/{CanvasWidget-BzTU9rc9.cjs.map → CanvasWidget-CHmkxxMO.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-DZQGG-yQ.js → CanvasWidget-CqRlXc4r.js} +3 -3
  24. package/dist/{CanvasWidget-DZQGG-yQ.js.map → CanvasWidget-CqRlXc4r.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-6wuCSnw_.js → CanvasdotWidget--Xr_KsZs.js} +3 -3
  26. package/dist/{CanvasdotWidget-6wuCSnw_.js.map → CanvasdotWidget--Xr_KsZs.js.map} +1 -1
  27. package/dist/CanvasdotWidget-B4bUcKRc.cjs +2 -0
  28. package/dist/{CanvasdotWidget-B7VTS1QI.cjs.map → CanvasdotWidget-B4bUcKRc.cjs.map} +1 -1
  29. package/dist/CanvasimageWidget-B5YozXoI.cjs +2 -0
  30. package/dist/{CanvasimageWidget-BwYpfmDE.cjs.map → CanvasimageWidget-B5YozXoI.cjs.map} +1 -1
  31. package/dist/{CanvasimageWidget-mhcPpAuN.js → CanvasimageWidget-BPlj5QYK.js} +4 -4
  32. package/dist/{CanvasimageWidget-mhcPpAuN.js.map → CanvasimageWidget-BPlj5QYK.js.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-Cx-dH8Gc.js → CanvasimagevalueWidget-DVFGLt8f.js} +4 -4
  34. package/dist/{CanvasimagevalueWidget-Cx-dH8Gc.js.map → CanvasimagevalueWidget-DVFGLt8f.js.map} +1 -1
  35. package/dist/CanvasimagevalueWidget-Dx1HnbEw.cjs +2 -0
  36. package/dist/{CanvasimagevalueWidget-E_NsZ82T.cjs.map → CanvasimagevalueWidget-Dx1HnbEw.cjs.map} +1 -1
  37. package/dist/{CanvaslabelWidget-CQZCeohU.js → CanvaslabelWidget-CYNqmyP0.js} +3 -3
  38. package/dist/{CanvaslabelWidget-CQZCeohU.js.map → CanvaslabelWidget-CYNqmyP0.js.map} +1 -1
  39. package/dist/CanvaslabelWidget-DgadQD-D.cjs +2 -0
  40. package/dist/{CanvaslabelWidget-BBDuXWfU.cjs.map → CanvaslabelWidget-DgadQD-D.cjs.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-CwmYDCjr.js → CanvaslabelvalueWidget-B7yIDmsn.js} +3 -3
  42. package/dist/{CanvaslabelvalueWidget-CwmYDCjr.js.map → CanvaslabelvalueWidget-B7yIDmsn.js.map} +1 -1
  43. package/dist/CanvaslabelvalueWidget-C3k5gx5c.cjs +2 -0
  44. package/dist/{CanvaslabelvalueWidget-DAdu7ujn.cjs.map → CanvaslabelvalueWidget-C3k5gx5c.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-nTP3fJB4.js → CanvaslineWidget-BICdxX0Q.js} +3 -3
  46. package/dist/{CanvaslineWidget-nTP3fJB4.js.map → CanvaslineWidget-BICdxX0Q.js.map} +1 -1
  47. package/dist/CanvaslineWidget-CYHkes0a.cjs +2 -0
  48. package/dist/{CanvaslineWidget-Bv5da1Vy.cjs.map → CanvaslineWidget-CYHkes0a.cjs.map} +1 -1
  49. package/dist/CanvaslinevalueWidget-5DzhZ22p.cjs +2 -0
  50. package/dist/{CanvaslinevalueWidget-BVfUB96K.cjs.map → CanvaslinevalueWidget-5DzhZ22p.cjs.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-C3sJnjLQ.js → CanvaslinevalueWidget-Cq-Ddh0P.js} +3 -3
  52. package/dist/{CanvaslinevalueWidget-C3sJnjLQ.js.map → CanvaslinevalueWidget-Cq-Ddh0P.js.map} +1 -1
  53. package/dist/{CheckbuttonWidget-5-8YDsQL.js → CheckbuttonWidget-B74AWeaW.js} +3 -3
  54. package/dist/{CheckbuttonWidget-5-8YDsQL.js.map → CheckbuttonWidget-B74AWeaW.js.map} +1 -1
  55. package/dist/CheckbuttonWidget-BCzsXnIF.cjs +2 -0
  56. package/dist/{CheckbuttonWidget-BGqD-BGc.cjs.map → CheckbuttonWidget-BCzsXnIF.cjs.map} +1 -1
  57. package/dist/{ComboboxWidget-DzBL8h9f.js → ComboboxWidget-CtyKbEWb.js} +3 -3
  58. package/dist/{ComboboxWidget-DzBL8h9f.js.map → ComboboxWidget-CtyKbEWb.js.map} +1 -1
  59. package/dist/ComboboxWidget-DQgDyDAC.cjs +2 -0
  60. package/dist/{ComboboxWidget-DoHMlSAr.cjs.map → ComboboxWidget-DQgDyDAC.cjs.map} +1 -1
  61. package/dist/CriticalCmdDialog-BnxZlt7W.cjs +2 -0
  62. package/dist/{CriticalCmdDialog-DoLBrU2k.cjs.map → CriticalCmdDialog-BnxZlt7W.cjs.map} +1 -1
  63. package/dist/{CriticalCmdDialog-DLEasFsx.js → CriticalCmdDialog-DPIZOBeP.js} +4 -4
  64. package/dist/{CriticalCmdDialog-DLEasFsx.js.map → CriticalCmdDialog-DPIZOBeP.js.map} +1 -1
  65. package/dist/CustomIcon-Bop2mEnu.cjs +2 -0
  66. package/dist/CustomIcon-Bop2mEnu.cjs.map +1 -0
  67. package/dist/CustomIcon-h5X7369N.js +50 -0
  68. package/dist/CustomIcon-h5X7369N.js.map +1 -0
  69. package/dist/DateWidget-BB4cIuUS.cjs +2 -0
  70. package/dist/{DateWidget-DKZz1J9J.cjs.map → DateWidget-BB4cIuUS.cjs.map} +1 -1
  71. package/dist/{DateWidget-CW7Od7lB.js → DateWidget-BEVSczU8.js} +3 -3
  72. package/dist/{DateWidget-CW7Od7lB.js.map → DateWidget-BEVSczU8.js.map} +1 -1
  73. package/dist/{DetailsDialog-BvbziA7Y.js → DetailsDialog-DmEC5BTs.js} +6 -6
  74. package/dist/{DetailsDialog-BvbziA7Y.js.map → DetailsDialog-DmEC5BTs.js.map} +1 -1
  75. package/dist/DetailsDialog-mvxMFmgV.cjs +2 -0
  76. package/dist/{DetailsDialog-CiuQYvJK.cjs.map → DetailsDialog-mvxMFmgV.cjs.map} +1 -1
  77. package/dist/DynamicWidget-BWEVCUfd.cjs +2 -0
  78. package/dist/{DynamicWidget-3wHr6Ng-.cjs.map → DynamicWidget-BWEVCUfd.cjs.map} +1 -1
  79. package/dist/{DynamicWidget-gFSYxzvT.js → DynamicWidget-CfMtj7H8.js} +2 -2
  80. package/dist/{DynamicWidget-gFSYxzvT.js.map → DynamicWidget-CfMtj7H8.js.map} +1 -1
  81. package/dist/EventListDialog-BHZLl28V.cjs +2 -0
  82. package/dist/EventListDialog-BHZLl28V.cjs.map +1 -0
  83. package/dist/EventListDialog-CSMSmCIT.js +1586 -0
  84. package/dist/EventListDialog-CSMSmCIT.js.map +1 -0
  85. package/dist/FormatvalueWidget-CdjCEAI7.cjs +2 -0
  86. package/dist/{FormatvalueWidget-DFrbeKb9.cjs.map → FormatvalueWidget-CdjCEAI7.cjs.map} +1 -1
  87. package/dist/{FormatvalueWidget-CGpnTqVH.js → FormatvalueWidget-DN12xymS.js} +4 -4
  88. package/dist/{FormatvalueWidget-CGpnTqVH.js.map → FormatvalueWidget-DN12xymS.js.map} +1 -1
  89. package/dist/{Graph-3rkhFP3G.js → Graph-Bgo0cjl3.js} +214 -209
  90. package/dist/Graph-Bgo0cjl3.js.map +1 -0
  91. package/dist/Graph-Ujd2yaeI.cjs +2 -0
  92. package/dist/Graph-Ujd2yaeI.cjs.map +1 -0
  93. package/dist/{GraphWidget-Dycey-mj.js → GraphWidget-DurWDmpg.js} +2 -2
  94. package/dist/{GraphWidget-Dycey-mj.js.map → GraphWidget-DurWDmpg.js.map} +1 -1
  95. package/dist/{GraphWidget-22NxFa9k.cjs → GraphWidget-sid4Ws9H.cjs} +2 -2
  96. package/dist/{GraphWidget-22NxFa9k.cjs.map → GraphWidget-sid4Ws9H.cjs.map} +1 -1
  97. package/dist/{HorizontalWidget-D31NRWy5.js → HorizontalWidget-Cd_wl1b3.js} +3 -3
  98. package/dist/{HorizontalWidget-D31NRWy5.js.map → HorizontalWidget-Cd_wl1b3.js.map} +1 -1
  99. package/dist/HorizontalWidget-_6IR0cR8.cjs +2 -0
  100. package/dist/{HorizontalWidget-BBeB0eBI.cjs.map → HorizontalWidget-_6IR0cR8.cjs.map} +1 -1
  101. package/dist/HorizontalboxWidget-BcMTFBU-.js +47 -0
  102. package/dist/HorizontalboxWidget-BcMTFBU-.js.map +1 -0
  103. package/dist/HorizontalboxWidget-zmnurtv1.cjs +2 -0
  104. package/dist/HorizontalboxWidget-zmnurtv1.cjs.map +1 -0
  105. package/dist/HorizontallineWidget-CM-6WqCj.cjs +2 -0
  106. package/dist/{HorizontallineWidget-BCKOQase.cjs.map → HorizontallineWidget-CM-6WqCj.cjs.map} +1 -1
  107. package/dist/HorizontallineWidget-CXFqHclf.js +16 -0
  108. package/dist/{HorizontallineWidget-CbxREBYI.js.map → HorizontallineWidget-CXFqHclf.js.map} +1 -1
  109. package/dist/{IframeWidget-Ctj8OIcG.js → IframeWidget-BPerHCCa.js} +3 -3
  110. package/dist/{IframeWidget-Ctj8OIcG.js.map → IframeWidget-BPerHCCa.js.map} +1 -1
  111. package/dist/IframeWidget-EhncMob0.cjs +2 -0
  112. package/dist/{IframeWidget-CZwsTgvX.cjs.map → IframeWidget-EhncMob0.cjs.map} +1 -1
  113. package/dist/{ImageLoader-BrNrCBvi.js → ImageLoader-4N-7Gj61.js} +2 -2
  114. package/dist/{ImageLoader-BrNrCBvi.js.map → ImageLoader-4N-7Gj61.js.map} +1 -1
  115. package/dist/ImageLoader-cRmBcpU9.cjs +2 -0
  116. package/dist/{ImageLoader-D_Gq-KxR.cjs.map → ImageLoader-cRmBcpU9.cjs.map} +1 -1
  117. package/dist/ImageviewerWidget-Bv3CreXd.cjs +2 -0
  118. package/dist/{ImageviewerWidget-DwRPFSLR.cjs.map → ImageviewerWidget-Bv3CreXd.cjs.map} +1 -1
  119. package/dist/{ImageviewerWidget-XrsqxmLo.js → ImageviewerWidget-Cw_H_HmZ.js} +3 -3
  120. package/dist/{ImageviewerWidget-XrsqxmLo.js.map → ImageviewerWidget-Cw_H_HmZ.js.map} +1 -1
  121. package/dist/{InterfacesTab-DAeNlGlB.js → InterfacesTab-B4glsR9Z.js} +4 -4
  122. package/dist/{InterfacesTab-DAeNlGlB.js.map → InterfacesTab-B4glsR9Z.js.map} +1 -1
  123. package/dist/InterfacesTab-Co1Kd6Fa.cjs +2 -0
  124. package/dist/{InterfacesTab-CLaicsHA.cjs.map → InterfacesTab-Co1Kd6Fa.cjs.map} +1 -1
  125. package/dist/LabelWidget-mMcf5S8K.cjs +2 -0
  126. package/dist/LabelWidget-mMcf5S8K.cjs.map +1 -0
  127. package/dist/{LabelWidget-t7I87dp7.js → LabelWidget-xrmcVeq8.js} +5 -5
  128. package/dist/LabelWidget-xrmcVeq8.js.map +1 -0
  129. package/dist/LabelledWidget-BoYCuDaH.cjs +2 -0
  130. package/dist/{LabelledWidget-DUpHxc9z.cjs.map → LabelledWidget-BoYCuDaH.cjs.map} +1 -1
  131. package/dist/{LabelledWidget-C7TDf92M.js → LabelledWidget-D48QoyMk.js} +5 -5
  132. package/dist/{LabelledWidget-C7TDf92M.js.map → LabelledWidget-D48QoyMk.js.map} +1 -1
  133. package/dist/{LabelprogressbarWidget-wwLURt1u.js → LabelprogressbarWidget-C_950t6g.js} +5 -5
  134. package/dist/{LabelprogressbarWidget-wwLURt1u.js.map → LabelprogressbarWidget-C_950t6g.js.map} +1 -1
  135. package/dist/LabelprogressbarWidget-DiucKsT2.cjs +2 -0
  136. package/dist/{LabelprogressbarWidget-D6cpayCR.cjs.map → LabelprogressbarWidget-DiucKsT2.cjs.map} +1 -1
  137. package/dist/{LabelsparklineWidget-B3awLUyP.js → LabelsparklineWidget-0KXQyPoU.js} +5 -5
  138. package/dist/{LabelsparklineWidget-B3awLUyP.js.map → LabelsparklineWidget-0KXQyPoU.js.map} +1 -1
  139. package/dist/LabelsparklineWidget-A3MTEhQc.cjs +2 -0
  140. package/dist/{LabelsparklineWidget-CJRnLETe.cjs.map → LabelsparklineWidget-A3MTEhQc.cjs.map} +1 -1
  141. package/dist/{LabelvalueWidget-Zx_yHCtl.js → LabelvalueWidget-CQ06wWDK.js} +5 -5
  142. package/dist/{LabelvalueWidget-Zx_yHCtl.js.map → LabelvalueWidget-CQ06wWDK.js.map} +1 -1
  143. package/dist/LabelvalueWidget-DnKoz0-N.cjs +2 -0
  144. package/dist/{LabelvalueWidget-owiMSCYl.cjs.map → LabelvalueWidget-DnKoz0-N.cjs.map} +1 -1
  145. package/dist/{LabelvaluedescWidget-BBSBh4vI.js → LabelvaluedescWidget-Bo8zT01X.js} +6 -6
  146. package/dist/{LabelvaluedescWidget-BBSBh4vI.js.map → LabelvaluedescWidget-Bo8zT01X.js.map} +1 -1
  147. package/dist/LabelvaluedescWidget-I6ljK--Y.cjs +2 -0
  148. package/dist/{LabelvaluedescWidget-MRmZBUc0.cjs.map → LabelvaluedescWidget-I6ljK--Y.cjs.map} +1 -1
  149. package/dist/{LabelvaluelimitsbarWidget-CZueHYWG.js → LabelvaluelimitsbarWidget-BucTw8Yk.js} +5 -5
  150. package/dist/{LabelvaluelimitsbarWidget-CZueHYWG.js.map → LabelvaluelimitsbarWidget-BucTw8Yk.js.map} +1 -1
  151. package/dist/LabelvaluelimitsbarWidget-Cb6i_Ixc.cjs +2 -0
  152. package/dist/{LabelvaluelimitsbarWidget-BQ2XYPNE.cjs.map → LabelvaluelimitsbarWidget-Cb6i_Ixc.cjs.map} +1 -1
  153. package/dist/LabelvaluelimitscolumnWidget-ClY5OxUC.cjs +2 -0
  154. package/dist/{LabelvaluelimitscolumnWidget-DNmVpU8J.cjs.map → LabelvaluelimitscolumnWidget-ClY5OxUC.cjs.map} +1 -1
  155. package/dist/{LabelvaluelimitscolumnWidget-BTvzyQMq.js → LabelvaluelimitscolumnWidget-Dflb1hNd.js} +6 -6
  156. package/dist/{LabelvaluelimitscolumnWidget-BTvzyQMq.js.map → LabelvaluelimitscolumnWidget-Dflb1hNd.js.map} +1 -1
  157. package/dist/LabelvaluerangebarWidget-9S5rVZaS.cjs +2 -0
  158. package/dist/{LabelvaluerangebarWidget-DL0U8cbw.cjs.map → LabelvaluerangebarWidget-9S5rVZaS.cjs.map} +1 -1
  159. package/dist/{LabelvaluerangebarWidget-BhYTBgDq.js → LabelvaluerangebarWidget-D8cbfXFM.js} +5 -5
  160. package/dist/{LabelvaluerangebarWidget-BhYTBgDq.js.map → LabelvaluerangebarWidget-D8cbfXFM.js.map} +1 -1
  161. package/dist/Layout-DuCYyOw4.cjs +2 -0
  162. package/dist/{Layout-DRL0EeSA.cjs.map → Layout-DuCYyOw4.cjs.map} +1 -1
  163. package/dist/{Layout-Bh7VzCZd.js → Layout-Tf--nruw.js} +2 -2
  164. package/dist/{Layout-Bh7VzCZd.js.map → Layout-Tf--nruw.js.map} +1 -1
  165. package/dist/LedWidget-B2BcwiYF.cjs +2 -0
  166. package/dist/LedWidget-B2BcwiYF.cjs.map +1 -0
  167. package/dist/LedWidget-qH_FthkK.js +145 -0
  168. package/dist/LedWidget-qH_FthkK.js.map +1 -0
  169. package/dist/{LimitsbarWidget-Djui0IpK.js → LimitsbarWidget-B9lAB2RD.js} +3 -3
  170. package/dist/{LimitsbarWidget-Djui0IpK.js.map → LimitsbarWidget-B9lAB2RD.js.map} +1 -1
  171. package/dist/LimitsbarWidget-CVCLFIhG.cjs +2 -0
  172. package/dist/{LimitsbarWidget-CYIH8fdp.cjs.map → LimitsbarWidget-CVCLFIhG.cjs.map} +1 -1
  173. package/dist/LimitscolorWidget-DORhDxRo.cjs +2 -0
  174. package/dist/{LimitscolorWidget-CS0wpX9A.cjs.map → LimitscolorWidget-DORhDxRo.cjs.map} +1 -1
  175. package/dist/{LimitscolorWidget-DdmvKzmx.js → LimitscolorWidget-c6Qa6su7.js} +3 -3
  176. package/dist/{LimitscolorWidget-DdmvKzmx.js.map → LimitscolorWidget-c6Qa6su7.js.map} +1 -1
  177. package/dist/LimitscolumnWidget-C9Uyg7Fh.cjs +2 -0
  178. package/dist/{LimitscolumnWidget-C_UW6xKq.cjs.map → LimitscolumnWidget-C9Uyg7Fh.cjs.map} +1 -1
  179. package/dist/{LimitscolumnWidget-Cc19IEjq.js → LimitscolumnWidget-CcLs_443.js} +3 -3
  180. package/dist/{LimitscolumnWidget-Cc19IEjq.js.map → LimitscolumnWidget-CcLs_443.js.map} +1 -1
  181. package/dist/{LinegraphWidget-BtieJxeL.js → LinegraphWidget-BSVYLFo1.js} +5 -5
  182. package/dist/{LinegraphWidget-BtieJxeL.js.map → LinegraphWidget-BSVYLFo1.js.map} +1 -1
  183. package/dist/LinegraphWidget-Bf8DIwEn.cjs +2 -0
  184. package/dist/{LinegraphWidget-8td_PqgU.cjs.map → LinegraphWidget-Bf8DIwEn.cjs.map} +1 -1
  185. package/dist/{MatrixbycolumnsWidget-DnExVRF8.js → MatrixbycolumnsWidget-DXFpZTre.js} +4 -4
  186. package/dist/{MatrixbycolumnsWidget-DnExVRF8.js.map → MatrixbycolumnsWidget-DXFpZTre.js.map} +1 -1
  187. package/dist/MatrixbycolumnsWidget-DpdFzNeP.cjs +2 -0
  188. package/dist/{MatrixbycolumnsWidget-CGOeCNW2.cjs.map → MatrixbycolumnsWidget-DpdFzNeP.cjs.map} +1 -1
  189. package/dist/MicroservicesTab-B5n-mN8G.cjs +2 -0
  190. package/dist/MicroservicesTab-B5n-mN8G.cjs.map +1 -0
  191. package/dist/{MicroservicesTab-IbTmbPxO.js → MicroservicesTab-mCdS0v39.js} +17 -21
  192. package/dist/MicroservicesTab-mCdS0v39.js.map +1 -0
  193. package/dist/Openc3Screen-BYhHaH_I.cjs +5 -0
  194. package/dist/Openc3Screen-BYhHaH_I.cjs.map +1 -0
  195. package/dist/Openc3Screen-Cud0OCFu.js +1789 -0
  196. package/dist/Openc3Screen-Cud0OCFu.js.map +1 -0
  197. package/dist/{OutputDialog-B4Q0QMJ1.cjs → OutputDialog-DXoL9VPw.cjs} +2 -2
  198. package/dist/OutputDialog-DXoL9VPw.cjs.map +1 -0
  199. package/dist/{OutputDialog-Ci5OT_fH.js → OutputDialog-zVPZiZay.js} +3 -6
  200. package/dist/OutputDialog-zVPZiZay.js.map +1 -0
  201. package/dist/PackagesTab-CvT2JyMA.cjs +2 -0
  202. package/dist/{PackagesTab-eYbk2vw7.cjs.map → PackagesTab-CvT2JyMA.cjs.map} +1 -1
  203. package/dist/{PackagesTab-BX8YP3H1.js → PackagesTab-SWcXumpK.js} +4 -4
  204. package/dist/{PackagesTab-BX8YP3H1.js.map → PackagesTab-SWcXumpK.js.map} +1 -1
  205. package/dist/{PluginsTab-Ds3jk64b.js → PluginsTab-B64OvayB.js} +4 -4
  206. package/dist/{PluginsTab-Ds3jk64b.js.map → PluginsTab-B64OvayB.js.map} +1 -1
  207. package/dist/{PluginsTab-Ck3DvEGm.cjs → PluginsTab-CfpwWsqv.cjs} +4 -4
  208. package/dist/{PluginsTab-Ck3DvEGm.cjs.map → PluginsTab-CfpwWsqv.cjs.map} +1 -1
  209. package/dist/ProgressbarWidget-fGWa6ipm.cjs +2 -0
  210. package/dist/{ProgressbarWidget-CUIAYySg.cjs.map → ProgressbarWidget-fGWa6ipm.cjs.map} +1 -1
  211. package/dist/{ProgressbarWidget-DIfqhHRE.js → ProgressbarWidget-iYGw8-Dc.js} +3 -3
  212. package/dist/{ProgressbarWidget-DIfqhHRE.js.map → ProgressbarWidget-iYGw8-Dc.js.map} +1 -1
  213. package/dist/RadiobuttonWidget-ZEPJbOp_.cjs +2 -0
  214. package/dist/{RadiobuttonWidget-Cjk1JAP_.cjs.map → RadiobuttonWidget-ZEPJbOp_.cjs.map} +1 -1
  215. package/dist/{RadiobuttonWidget-QzIkNP7m.js → RadiobuttonWidget-ytmoVZ3u.js} +3 -3
  216. package/dist/{RadiobuttonWidget-QzIkNP7m.js.map → RadiobuttonWidget-ytmoVZ3u.js.map} +1 -1
  217. package/dist/{RadiogroupWidget-Ci9sCX39.js → RadiogroupWidget-CusMBhKH.js} +3 -3
  218. package/dist/{RadiogroupWidget-Ci9sCX39.js.map → RadiogroupWidget-CusMBhKH.js.map} +1 -1
  219. package/dist/RadiogroupWidget-EK4rEGUC.cjs +2 -0
  220. package/dist/{RadiogroupWidget-B4lkYWaC.cjs.map → RadiogroupWidget-EK4rEGUC.cjs.map} +1 -1
  221. package/dist/{RangebarWidget-CN0YuHqy.js → RangebarWidget-D_zGTtCa.js} +3 -3
  222. package/dist/{RangebarWidget-CN0YuHqy.js.map → RangebarWidget-D_zGTtCa.js.map} +1 -1
  223. package/dist/RangebarWidget-DwIs-L5k.cjs +2 -0
  224. package/dist/{RangebarWidget-nl0rzj93.cjs.map → RangebarWidget-DwIs-L5k.cjs.map} +1 -1
  225. package/dist/RedisTab-67UcKoPf.cjs +2 -0
  226. package/dist/{RedisTab-DhS4GHDj.cjs.map → RedisTab-67UcKoPf.cjs.map} +1 -1
  227. package/dist/{RedisTab-CVimDkIE.js → RedisTab-CyPo6ADN.js} +14 -14
  228. package/dist/{RedisTab-CVimDkIE.js.map → RedisTab-CyPo6ADN.js.map} +1 -1
  229. package/dist/RollupWidget-DC3OIP6G.cjs +2 -0
  230. package/dist/{RollupWidget-Bgudi_bt.cjs.map → RollupWidget-DC3OIP6G.cjs.map} +1 -1
  231. package/dist/{RollupWidget-y4jBtJB2.js → RollupWidget-Dolsixyt.js} +3 -3
  232. package/dist/{RollupWidget-y4jBtJB2.js.map → RollupWidget-Dolsixyt.js.map} +1 -1
  233. package/dist/RoutersTab-BBPlFi_z.cjs +2 -0
  234. package/dist/{RoutersTab-CzO10cVP.cjs.map → RoutersTab-BBPlFi_z.cjs.map} +1 -1
  235. package/dist/{RoutersTab-Dki_66av.js → RoutersTab-Cs2dFVNA.js} +4 -4
  236. package/dist/{RoutersTab-Dki_66av.js.map → RoutersTab-Cs2dFVNA.js.map} +1 -1
  237. package/dist/{ScriptChooser-l5i8c8KP.js → ScriptChooser-EV65rbWx.js} +3 -3
  238. package/dist/{ScriptChooser-l5i8c8KP.js.map → ScriptChooser-EV65rbWx.js.map} +1 -1
  239. package/dist/ScriptChooser-vyZwngrz.cjs +2 -0
  240. package/dist/{ScriptChooser-BNm_zXxX.cjs.map → ScriptChooser-vyZwngrz.cjs.map} +1 -1
  241. package/dist/ScrollwindowWidget-BWeqSUPc.cjs +2 -0
  242. package/dist/{ScrollwindowWidget-BIiV7xwi.cjs.map → ScrollwindowWidget-BWeqSUPc.cjs.map} +1 -1
  243. package/dist/{ScrollwindowWidget-CBzYk4Y3.js → ScrollwindowWidget-DV2nZuNi.js} +4 -4
  244. package/dist/{ScrollwindowWidget-CBzYk4Y3.js.map → ScrollwindowWidget-DV2nZuNi.js.map} +1 -1
  245. package/dist/SecretsTab-0IFqUxNJ.cjs +2 -0
  246. package/dist/{SecretsTab-BSzFZ81X.cjs.map → SecretsTab-0IFqUxNJ.cjs.map} +1 -1
  247. package/dist/{SecretsTab-BjviaTxh.js → SecretsTab-DVyyyGlG.js} +3 -3
  248. package/dist/{SecretsTab-BjviaTxh.js.map → SecretsTab-DVyyyGlG.js.map} +1 -1
  249. package/dist/SettingsTab-B1LvOLG2.cjs +3 -0
  250. package/dist/SettingsTab-B1LvOLG2.cjs.map +1 -0
  251. package/dist/{SettingsTab-Bo_dYXgb.js → SettingsTab-g29K6FyC.js} +198 -135
  252. package/dist/SettingsTab-g29K6FyC.js.map +1 -0
  253. package/dist/SignalWidget-RvRwpE8T.cjs +2 -0
  254. package/dist/{SignalWidget-CvZkvejy.cjs.map → SignalWidget-RvRwpE8T.cjs.map} +1 -1
  255. package/dist/{SignalWidget-DQ5Uc2uV.js → SignalWidget-d9-6h85k.js} +3 -3
  256. package/dist/{SignalWidget-DQ5Uc2uV.js.map → SignalWidget-d9-6h85k.js.map} +1 -1
  257. package/dist/SimpleTextDialog-Cpbt7Q-8.cjs +2 -0
  258. package/dist/{SimpleTextDialog-DmeNMMCR.cjs.map → SimpleTextDialog-Cpbt7Q-8.cjs.map} +1 -1
  259. package/dist/{SimpleTextDialog-CheuP_ls.js → SimpleTextDialog-pwN8oRy1.js} +9 -10
  260. package/dist/{SimpleTextDialog-CheuP_ls.js.map → SimpleTextDialog-pwN8oRy1.js.map} +1 -1
  261. package/dist/SpacerWidget-7_8bpLCb.cjs +2 -0
  262. package/dist/{SpacerWidget-BBJR6HBQ.cjs.map → SpacerWidget-7_8bpLCb.cjs.map} +1 -1
  263. package/dist/{SpacerWidget-6rsc_dSM.js → SpacerWidget-BH0p2OLi.js} +3 -3
  264. package/dist/{SpacerWidget-6rsc_dSM.js.map → SpacerWidget-BH0p2OLi.js.map} +1 -1
  265. package/dist/SparklineWidget-60jVlbHA.cjs +2 -0
  266. package/dist/{SparklineWidget-BxBLnjAO.cjs.map → SparklineWidget-60jVlbHA.cjs.map} +1 -1
  267. package/dist/{SparklineWidget-CZtvu2ss.js → SparklineWidget-coxi9r2g.js} +5 -5
  268. package/dist/{SparklineWidget-CZtvu2ss.js.map → SparklineWidget-coxi9r2g.js.map} +1 -1
  269. package/dist/{TabbookWidget-DNALU0jl.js → TabbookWidget-B1XKplGH.js} +3 -3
  270. package/dist/{TabbookWidget-DNALU0jl.js.map → TabbookWidget-B1XKplGH.js.map} +1 -1
  271. package/dist/TabbookWidget-D1CVT9IK.cjs +2 -0
  272. package/dist/{TabbookWidget-DyFQnA10.cjs.map → TabbookWidget-D1CVT9IK.cjs.map} +1 -1
  273. package/dist/{TargetsTab-Cd8U1aN_.js → TargetsTab-BkBkXn9A.js} +12 -12
  274. package/dist/{TargetsTab-Cd8U1aN_.js.map → TargetsTab-BkBkXn9A.js.map} +1 -1
  275. package/dist/TargetsTab-C-m26Eqq.cjs +2 -0
  276. package/dist/{TargetsTab-DMiOliqg.cjs.map → TargetsTab-C-m26Eqq.cjs.map} +1 -1
  277. package/dist/{TextBoxDialog-fHkDTtzI.js → TextBoxDialog-DOJ5d2RM.js} +2 -2
  278. package/dist/{TextBoxDialog-fHkDTtzI.js.map → TextBoxDialog-DOJ5d2RM.js.map} +1 -1
  279. package/dist/TextBoxDialog-DfMXg_5C.cjs +2 -0
  280. package/dist/{TextBoxDialog-DvUf3Cak.cjs.map → TextBoxDialog-DfMXg_5C.cjs.map} +1 -1
  281. package/dist/TextboxWidget-BDG4NxRw.cjs +2 -0
  282. package/dist/{TextboxWidget-D6lW_dsU.cjs.map → TextboxWidget-BDG4NxRw.cjs.map} +1 -1
  283. package/dist/{TextboxWidget-5hqPj74D.js → TextboxWidget-C-_M2M4l.js} +5 -5
  284. package/dist/{TextboxWidget-5hqPj74D.js.map → TextboxWidget-C-_M2M4l.js.map} +1 -1
  285. package/dist/TextfieldWidget-BGJv9Lox.cjs +2 -0
  286. package/dist/{TextfieldWidget-iHN7-fyF.cjs.map → TextfieldWidget-BGJv9Lox.cjs.map} +1 -1
  287. package/dist/{TextfieldWidget-Df0ANSiU.js → TextfieldWidget-C08N4JE8.js} +3 -3
  288. package/dist/{TextfieldWidget-Df0ANSiU.js.map → TextfieldWidget-C08N4JE8.js.map} +1 -1
  289. package/dist/TimeWidget-CGCOIouj.cjs +2 -0
  290. package/dist/{TimeWidget-C3NZqTEG.cjs.map → TimeWidget-CGCOIouj.cjs.map} +1 -1
  291. package/dist/{TimeWidget-C6XQMUG2.js → TimeWidget-DtwdEcFg.js} +3 -3
  292. package/dist/{TimeWidget-C6XQMUG2.js.map → TimeWidget-DtwdEcFg.js.map} +1 -1
  293. package/dist/TitleWidget-BljFH9RB.cjs +2 -0
  294. package/dist/{TitleWidget-CWZs33c4.cjs.map → TitleWidget-BljFH9RB.cjs.map} +1 -1
  295. package/dist/{TitleWidget-B9SPUlbW.js → TitleWidget-CT-aLcNb.js} +3 -3
  296. package/dist/{TitleWidget-B9SPUlbW.js.map → TitleWidget-CT-aLcNb.js.map} +1 -1
  297. package/dist/{ToolsTab-Cgpb2nAW.js → ToolsTab-NveeVXz2.js} +4 -4
  298. package/dist/{ToolsTab-Cgpb2nAW.js.map → ToolsTab-NveeVXz2.js.map} +1 -1
  299. package/dist/{ToolsTab-CUpUmkZL.cjs → ToolsTab-RMTst_Sy.cjs} +3 -3
  300. package/dist/{ToolsTab-CUpUmkZL.cjs.map → ToolsTab-RMTst_Sy.cjs.map} +1 -1
  301. package/dist/{TopBar-F1jHuFan.js → TopBar-CnJNNJlV.js} +104 -74
  302. package/dist/TopBar-CnJNNJlV.js.map +1 -0
  303. package/dist/TopBar-Cnmb6DyC.cjs +2 -0
  304. package/dist/TopBar-Cnmb6DyC.cjs.map +1 -0
  305. package/dist/{UpgradeToEnterpriseDialog-DVcAH30Y.js → UpgradeToEnterpriseDialog-BvfgoNB1.js} +9 -10
  306. package/dist/{UpgradeToEnterpriseDialog-DVcAH30Y.js.map → UpgradeToEnterpriseDialog-BvfgoNB1.js.map} +1 -1
  307. package/dist/UpgradeToEnterpriseDialog-sUipOVpB.cjs +2 -0
  308. package/dist/{UpgradeToEnterpriseDialog-DfIKahNK.cjs.map → UpgradeToEnterpriseDialog-sUipOVpB.cjs.map} +1 -1
  309. package/dist/{VWidget-C2x_zSC2.cjs → VWidget-2N2cOosI.cjs} +2 -2
  310. package/dist/{VWidget-C2x_zSC2.cjs.map → VWidget-2N2cOosI.cjs.map} +1 -1
  311. package/dist/{VWidget-C4spAawK.js → VWidget-DQqb7NVW.js} +2 -2
  312. package/dist/{VWidget-C4spAawK.js.map → VWidget-DQqb7NVW.js.map} +1 -1
  313. package/dist/{ValueWidget-D4RrYVEK.js → ValueWidget-C6RanBj3.js} +5 -5
  314. package/dist/{ValueWidget-D4RrYVEK.js.map → ValueWidget-C6RanBj3.js.map} +1 -1
  315. package/dist/ValueWidget-Cu7hgKja.cjs +2 -0
  316. package/dist/{ValueWidget-Do3Yn47P.cjs.map → ValueWidget-Cu7hgKja.cjs.map} +1 -1
  317. package/dist/{ValuelimitsbarWidget-Bc9_Vj_f.js → ValuelimitsbarWidget-B3bvjfxc.js} +5 -5
  318. package/dist/{ValuelimitsbarWidget-Bc9_Vj_f.js.map → ValuelimitsbarWidget-B3bvjfxc.js.map} +1 -1
  319. package/dist/ValuelimitsbarWidget-C0HROxrb.cjs +2 -0
  320. package/dist/{ValuelimitsbarWidget-DJuh7FOs.cjs.map → ValuelimitsbarWidget-C0HROxrb.cjs.map} +1 -1
  321. package/dist/ValuelimitscolumnWidget-CWvLfg8u.cjs +2 -0
  322. package/dist/{ValuelimitscolumnWidget-BFpG-H7v.cjs.map → ValuelimitscolumnWidget-CWvLfg8u.cjs.map} +1 -1
  323. package/dist/{ValuelimitscolumnWidget-DHKIL7sf.js → ValuelimitscolumnWidget-QvhI6EcE.js} +5 -5
  324. package/dist/{ValuelimitscolumnWidget-DHKIL7sf.js.map → ValuelimitscolumnWidget-QvhI6EcE.js.map} +1 -1
  325. package/dist/{ValuerangebarWidget-CecQRIok.js → ValuerangebarWidget-Dt3K9BnC.js} +5 -5
  326. package/dist/{ValuerangebarWidget-CecQRIok.js.map → ValuerangebarWidget-Dt3K9BnC.js.map} +1 -1
  327. package/dist/ValuerangebarWidget-DyN78cQl.cjs +2 -0
  328. package/dist/{ValuerangebarWidget-BlZSaiXo.cjs.map → ValuerangebarWidget-DyN78cQl.cjs.map} +1 -1
  329. package/dist/{VerticalWidget-D8jUFxjS.js → VerticalWidget-BIIViZgI.js} +3 -3
  330. package/dist/{VerticalWidget-D8jUFxjS.js.map → VerticalWidget-BIIViZgI.js.map} +1 -1
  331. package/dist/VerticalWidget-CFTOu4H8.cjs +2 -0
  332. package/dist/{VerticalWidget--8UErB4q.cjs.map → VerticalWidget-CFTOu4H8.cjs.map} +1 -1
  333. package/dist/VerticalboxWidget-DY72fLHW.js +46 -0
  334. package/dist/VerticalboxWidget-DY72fLHW.js.map +1 -0
  335. package/dist/VerticalboxWidget-Z8-DWI8t.cjs +2 -0
  336. package/dist/VerticalboxWidget-Z8-DWI8t.cjs.map +1 -0
  337. package/dist/Widget-ChoIB2dd.cjs +2 -0
  338. package/dist/{Widget-DNf52jRQ.cjs.map → Widget-ChoIB2dd.cjs.map} +1 -1
  339. package/dist/{Widget-fRCERxGf.js → Widget-oyqWpFXJ.js} +18 -18
  340. package/dist/{Widget-fRCERxGf.js.map → Widget-oyqWpFXJ.js.map} +1 -1
  341. package/dist/WidgetComponents-C1lSLZ0I.js +30205 -0
  342. package/dist/WidgetComponents-C1lSLZ0I.js.map +1 -0
  343. package/dist/WidgetComponents-utpQ592X.cjs +1493 -0
  344. package/dist/WidgetComponents-utpQ592X.cjs.map +1 -0
  345. package/dist/components.cjs +3 -6
  346. package/dist/components.cjs.map +1 -1
  347. package/dist/components.js +372 -1966
  348. package/dist/components.js.map +1 -1
  349. package/dist/icons.cjs +1 -1
  350. package/dist/icons.cjs.map +1 -1
  351. package/dist/icons.js +59 -52
  352. package/dist/icons.js.map +1 -1
  353. package/dist/index-BX05anye.cjs +7 -0
  354. package/dist/index-BX05anye.cjs.map +1 -0
  355. package/dist/{index-CFQnWdPA.js → index-DwP8ryNM.js} +385 -396
  356. package/dist/index-DwP8ryNM.js.map +1 -0
  357. package/dist/plugins.cjs +4 -4
  358. package/dist/plugins.cjs.map +1 -1
  359. package/dist/plugins.js +71 -67
  360. package/dist/plugins.js.map +1 -1
  361. package/dist/tools/admin.cjs +7 -7
  362. package/dist/tools/admin.cjs.map +1 -1
  363. package/dist/tools/admin.js +824 -744
  364. package/dist/tools/admin.js.map +1 -1
  365. package/dist/tools/base.cjs +1 -1
  366. package/dist/tools/base.cjs.map +1 -1
  367. package/dist/tools/base.js +10 -16
  368. package/dist/tools/base.js.map +1 -1
  369. package/dist/tools/calendar.cjs +1 -1
  370. package/dist/tools/calendar.cjs.map +1 -1
  371. package/dist/tools/calendar.js +9 -1583
  372. package/dist/tools/calendar.js.map +1 -1
  373. package/dist/tools/scriptrunner.cjs +86 -0
  374. package/dist/tools/scriptrunner.cjs.map +1 -0
  375. package/dist/tools/scriptrunner.js +4564 -0
  376. package/dist/tools/scriptrunner.js.map +1 -0
  377. package/dist/vue-common.css +1 -1
  378. package/dist/widgets.cjs +1 -1
  379. package/dist/widgets.js +64 -64
  380. package/package.json +20 -15
  381. package/dist/ArrayplotWidget-Donxhd8_.cjs +0 -2
  382. package/dist/BarColumn-CyRSZHMh.cjs +0 -2
  383. package/dist/BlockWidget-DPLN1jgj.cjs +0 -3
  384. package/dist/ButtonWidget-DccYzIY3.cjs +0 -3
  385. package/dist/CanvasWidget-BzTU9rc9.cjs +0 -2
  386. package/dist/CanvasdotWidget-B7VTS1QI.cjs +0 -2
  387. package/dist/CanvasimageWidget-BwYpfmDE.cjs +0 -2
  388. package/dist/CanvasimagevalueWidget-E_NsZ82T.cjs +0 -2
  389. package/dist/CanvaslabelWidget-BBDuXWfU.cjs +0 -2
  390. package/dist/CanvaslabelvalueWidget-DAdu7ujn.cjs +0 -2
  391. package/dist/CanvaslineWidget-Bv5da1Vy.cjs +0 -2
  392. package/dist/CanvaslinevalueWidget-BVfUB96K.cjs +0 -2
  393. package/dist/CheckbuttonWidget-BGqD-BGc.cjs +0 -2
  394. package/dist/ComboboxWidget-DoHMlSAr.cjs +0 -2
  395. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs +0 -2
  396. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs.map +0 -1
  397. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js +0 -10
  398. package/dist/CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js.map +0 -1
  399. package/dist/CriticalCmdDialog-DoLBrU2k.cjs +0 -2
  400. package/dist/DateWidget-DKZz1J9J.cjs +0 -2
  401. package/dist/DetailsDialog-CiuQYvJK.cjs +0 -2
  402. package/dist/DynamicWidget-3wHr6Ng-.cjs +0 -2
  403. package/dist/FormatvalueWidget-DFrbeKb9.cjs +0 -2
  404. package/dist/Graph-3rkhFP3G.js.map +0 -1
  405. package/dist/Graph-C3vGMcos.cjs +0 -2
  406. package/dist/Graph-C3vGMcos.cjs.map +0 -1
  407. package/dist/HorizontalWidget-BBeB0eBI.cjs +0 -2
  408. package/dist/HorizontalboxWidget-Br8dSVHD.js +0 -38
  409. package/dist/HorizontalboxWidget-Br8dSVHD.js.map +0 -1
  410. package/dist/HorizontalboxWidget-DsdzrCJx.cjs +0 -2
  411. package/dist/HorizontalboxWidget-DsdzrCJx.cjs.map +0 -1
  412. package/dist/HorizontallineWidget-BCKOQase.cjs +0 -2
  413. package/dist/HorizontallineWidget-CbxREBYI.js +0 -11
  414. package/dist/IframeWidget-CZwsTgvX.cjs +0 -2
  415. package/dist/ImageLoader-D_Gq-KxR.cjs +0 -2
  416. package/dist/ImageviewerWidget-DwRPFSLR.cjs +0 -2
  417. package/dist/InterfacesTab-CLaicsHA.cjs +0 -2
  418. package/dist/LabelWidget-C-s8OVmA.cjs +0 -2
  419. package/dist/LabelWidget-C-s8OVmA.cjs.map +0 -1
  420. package/dist/LabelWidget-t7I87dp7.js.map +0 -1
  421. package/dist/LabelledWidget-DUpHxc9z.cjs +0 -2
  422. package/dist/LabelprogressbarWidget-D6cpayCR.cjs +0 -2
  423. package/dist/LabelsparklineWidget-CJRnLETe.cjs +0 -2
  424. package/dist/LabelvalueWidget-owiMSCYl.cjs +0 -2
  425. package/dist/LabelvaluedescWidget-MRmZBUc0.cjs +0 -2
  426. package/dist/LabelvaluelimitsbarWidget-BQ2XYPNE.cjs +0 -2
  427. package/dist/LabelvaluelimitscolumnWidget-DNmVpU8J.cjs +0 -2
  428. package/dist/LabelvaluerangebarWidget-DL0U8cbw.cjs +0 -2
  429. package/dist/Layout-DRL0EeSA.cjs +0 -2
  430. package/dist/LedWidget-B8rjFe1b.cjs +0 -2
  431. package/dist/LedWidget-B8rjFe1b.cjs.map +0 -1
  432. package/dist/LedWidget-CxJjJBBS.js +0 -71
  433. package/dist/LedWidget-CxJjJBBS.js.map +0 -1
  434. package/dist/LimitsbarWidget-CYIH8fdp.cjs +0 -2
  435. package/dist/LimitscolorWidget-CS0wpX9A.cjs +0 -2
  436. package/dist/LimitscolumnWidget-C_UW6xKq.cjs +0 -2
  437. package/dist/LinegraphWidget-8td_PqgU.cjs +0 -2
  438. package/dist/MatrixbycolumnsWidget-CGOeCNW2.cjs +0 -2
  439. package/dist/MicroservicesTab-IbTmbPxO.js.map +0 -1
  440. package/dist/MicroservicesTab-uMC8NebS.cjs +0 -2
  441. package/dist/MicroservicesTab-uMC8NebS.cjs.map +0 -1
  442. package/dist/OutputDialog-B4Q0QMJ1.cjs.map +0 -1
  443. package/dist/OutputDialog-Ci5OT_fH.js.map +0 -1
  444. package/dist/PackagesTab-eYbk2vw7.cjs +0 -2
  445. package/dist/ProgressbarWidget-CUIAYySg.cjs +0 -2
  446. package/dist/RadiobuttonWidget-Cjk1JAP_.cjs +0 -2
  447. package/dist/RadiogroupWidget-B4lkYWaC.cjs +0 -2
  448. package/dist/RangebarWidget-nl0rzj93.cjs +0 -2
  449. package/dist/RedisTab-DhS4GHDj.cjs +0 -2
  450. package/dist/RollupWidget-Bgudi_bt.cjs +0 -2
  451. package/dist/RoutersTab-CzO10cVP.cjs +0 -2
  452. package/dist/ScriptChooser-BNm_zXxX.cjs +0 -2
  453. package/dist/ScrollwindowWidget-BIiV7xwi.cjs +0 -2
  454. package/dist/SecretsTab-BSzFZ81X.cjs +0 -2
  455. package/dist/SettingsTab-Bo_dYXgb.js.map +0 -1
  456. package/dist/SettingsTab-DH8LAAoG.cjs +0 -3
  457. package/dist/SettingsTab-DH8LAAoG.cjs.map +0 -1
  458. package/dist/SignalWidget-CvZkvejy.cjs +0 -2
  459. package/dist/SimpleTextDialog-DmeNMMCR.cjs +0 -2
  460. package/dist/SpacerWidget-BBJR6HBQ.cjs +0 -2
  461. package/dist/SparklineWidget-BxBLnjAO.cjs +0 -2
  462. package/dist/TabbookWidget-DyFQnA10.cjs +0 -2
  463. package/dist/TargetsTab-DMiOliqg.cjs +0 -2
  464. package/dist/TextBoxDialog-DvUf3Cak.cjs +0 -2
  465. package/dist/TextboxWidget-D6lW_dsU.cjs +0 -2
  466. package/dist/TextfieldWidget-iHN7-fyF.cjs +0 -2
  467. package/dist/TimeWidget-C3NZqTEG.cjs +0 -2
  468. package/dist/TitleWidget-CWZs33c4.cjs +0 -2
  469. package/dist/TopBar-DuXL27iD.cjs +0 -2
  470. package/dist/TopBar-DuXL27iD.cjs.map +0 -1
  471. package/dist/TopBar-F1jHuFan.js.map +0 -1
  472. package/dist/UpgradeToEnterpriseDialog-DfIKahNK.cjs +0 -2
  473. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DJX55UPj.cjs +0 -1417
  474. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DJX55UPj.cjs.map +0 -1
  475. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js +0 -26941
  476. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js.map +0 -1
  477. package/dist/ValueWidget-Do3Yn47P.cjs +0 -2
  478. package/dist/ValuelimitsbarWidget-DJuh7FOs.cjs +0 -2
  479. package/dist/ValuelimitscolumnWidget-BFpG-H7v.cjs +0 -2
  480. package/dist/ValuerangebarWidget-BlZSaiXo.cjs +0 -2
  481. package/dist/VerticalWidget--8UErB4q.cjs +0 -2
  482. package/dist/VerticalboxWidget-B4eGUSYH.js +0 -37
  483. package/dist/VerticalboxWidget-B4eGUSYH.js.map +0 -1
  484. package/dist/VerticalboxWidget-cxHq1WKQ.cjs +0 -2
  485. package/dist/VerticalboxWidget-cxHq1WKQ.cjs.map +0 -1
  486. package/dist/Widget-DNf52jRQ.cjs +0 -2
  487. package/dist/index-Bz_jHTkl.cjs +0 -7
  488. package/dist/index-Bz_jHTkl.cjs.map +0 -1
  489. package/dist/index-CFQnWdPA.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js";
1
+ import "./WidgetComponents-C1lSLZ0I.js";
2
2
  import { resolveComponent as o, createElementBlock as d, openBlock as m, createVNode as i, normalizeStyle as w, normalizeClass as y, withCtx as l, Fragment as V, renderList as C, createBlock as k, withModifiers as D, createTextVNode as M, toDisplayString as S } from "vue";
3
- import { _ as x } from "./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js";
4
- import { D as L } from "./DetailsDialog-BvbziA7Y.js";
3
+ import { _ as x } from "./CustomIcon-h5X7369N.js";
4
+ import { D as L } from "./DetailsDialog-DmEC5BTs.js";
5
5
  import "single-spa";
6
- import { V as R } from "./VWidget-C4spAawK.js";
6
+ import { V as R } from "./VWidget-DQqb7NVW.js";
7
7
  const z = {
8
8
  components: {
9
9
  DetailsDialog: L
@@ -103,4 +103,4 @@ const I = /* @__PURE__ */ x(z, [["render", B], ["__scopeId", "data-v-62b9e9e1"]]
103
103
  export {
104
104
  I as default
105
105
  };
106
- //# sourceMappingURL=ArrayWidget-BxEO5hEG.js.map
106
+ //# sourceMappingURL=ArrayWidget-BbsN1dzF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayWidget-BxEO5hEG.js","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_a","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeClass","_normalizeStyle","$options","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"ArrayWidget-BbsN1dzF.js","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_a","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeClass","_normalizeStyle","$options","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-DJX55UPj.cjs");const e=require("vue"),g=require("./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-BHFhmbuH.cjs"),f=require("./DetailsDialog-CiuQYvJK.cjs");require("single-spa");const v=require("./VWidget-C2x_zSC2.cjs"),_={components:{DetailsDialog:f.DetailsDialog},data:function(){return{width:200,height:100,itemsPerRow:4,formatter:null}},mixins:[v.VWidget],computed:{aging(){return{"--aging":this.grayLevel}}},created:function(){this.width=this.setWidth(this.parameters[3],"px",this.width),this.height=this.setHeight(this.parameters[4],"px",this.height),this.parameters[5]&&(this.formatter=this.parameters[5]),this.parameters[6]&&(this.itemsPerRow=parseInt(this.parameters[6]))},methods:{getType:function(){let t="CONVERTED";return this.parameters[7]&&(t=this.parameters[7]),t},formatValue:function(t){var a;let o="",s=" ",l=`
2
- `,r=0;if(Array.isArray(t)){for(const i of t)this.formatter&&((a=this.formatter)==null?void 0:a.toLowerCase())!=="nil"?o+=sprintf(this.formatter,i):o+=i,r+=1,r%this.itemsPerRow===0?(r=0,o+=l):o+=s;return o.trim()}else return t}}},w={class:"array-widget-container"};function y(t,o,s,l,r,a){const i=e.resolveComponent("v-textarea"),m=e.resolveComponent("v-list-item-title"),u=e.resolveComponent("v-list-item"),d=e.resolveComponent("v-list"),p=e.resolveComponent("v-menu"),c=e.resolveComponent("details-dialog");return e.openBlock(),e.createElementBlock("div",w,[e.createVNode(i,{variant:"solo",density:"compact",readonly:"","no-resize":"","auto-grow":"",rows:"2","hide-details":"","model-value":t._value,class:e.normalizeClass(t.valueClass),style:e.normalizeStyle([t.computedStyle,a.aging]),"data-test":"array-widget",onContextmenu:t.showContextMenu},null,8,["model-value","class","style","onContextmenu"]),e.createVNode(p,{modelValue:t.contextMenuShown,"onUpdate:modelValue":o[0]||(o[0]=n=>t.contextMenuShown=n),target:[t.x,t.y]},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.contextMenuOptions,(n,h)=>(e.openBlock(),e.createBlock(u,{key:h,onClick:e.withModifiers(n.action,["stop"])},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),e.createVNode(c,{"target-name":t.parameters[0],"packet-name":t.parameters[1],"item-name":t.parameters[2],modelValue:t.viewDetails,"onUpdate:modelValue":o[1]||(o[1]=n=>t.viewDetails=n)},null,8,["target-name","packet-name","item-name","modelValue"])])}const C=g._export_sfc(_,[["render",y],["__scopeId","data-v-62b9e9e1"]]);exports.default=C;
3
- //# sourceMappingURL=ArrayWidget-BIQi_bWC.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./WidgetComponents-utpQ592X.cjs");const e=require("vue"),g=require("./CustomIcon-Bop2mEnu.cjs"),f=require("./DetailsDialog-mvxMFmgV.cjs");require("single-spa");const v=require("./VWidget-2N2cOosI.cjs"),w={components:{DetailsDialog:f.DetailsDialog},data:function(){return{width:200,height:100,itemsPerRow:4,formatter:null}},mixins:[v.VWidget],computed:{aging(){return{"--aging":this.grayLevel}}},created:function(){this.width=this.setWidth(this.parameters[3],"px",this.width),this.height=this.setHeight(this.parameters[4],"px",this.height),this.parameters[5]&&(this.formatter=this.parameters[5]),this.parameters[6]&&(this.itemsPerRow=parseInt(this.parameters[6]))},methods:{getType:function(){let t="CONVERTED";return this.parameters[7]&&(t=this.parameters[7]),t},formatValue:function(t){var a;let o="",s=" ",l=`
2
+ `,r=0;if(Array.isArray(t)){for(const i of t)this.formatter&&((a=this.formatter)==null?void 0:a.toLowerCase())!=="nil"?o+=sprintf(this.formatter,i):o+=i,r+=1,r%this.itemsPerRow===0?(r=0,o+=l):o+=s;return o.trim()}else return t}}},C={class:"array-widget-container"};function _(t,o,s,l,r,a){const i=e.resolveComponent("v-textarea"),m=e.resolveComponent("v-list-item-title"),u=e.resolveComponent("v-list-item"),d=e.resolveComponent("v-list"),p=e.resolveComponent("v-menu"),c=e.resolveComponent("details-dialog");return e.openBlock(),e.createElementBlock("div",C,[e.createVNode(i,{variant:"solo",density:"compact",readonly:"","no-resize":"","auto-grow":"",rows:"2","hide-details":"","model-value":t._value,class:e.normalizeClass(t.valueClass),style:e.normalizeStyle([t.computedStyle,a.aging]),"data-test":"array-widget",onContextmenu:t.showContextMenu},null,8,["model-value","class","style","onContextmenu"]),e.createVNode(p,{modelValue:t.contextMenuShown,"onUpdate:modelValue":o[0]||(o[0]=n=>t.contextMenuShown=n),target:[t.x,t.y]},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.contextMenuOptions,(n,h)=>(e.openBlock(),e.createBlock(u,{key:h,onClick:e.withModifiers(n.action,["stop"])},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),e.createVNode(c,{"target-name":t.parameters[0],"packet-name":t.parameters[1],"item-name":t.parameters[2],modelValue:t.viewDetails,"onUpdate:modelValue":o[1]||(o[1]=n=>t.viewDetails=n)},null,8,["target-name","packet-name","item-name","modelValue"])])}const y=g._export_sfc(w,[["render",_],["__scopeId","data-v-62b9e9e1"]]);exports.default=y;
3
+ //# sourceMappingURL=ArrayWidget-DkjHrXsu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayWidget-BIQi_bWC.cjs","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_a","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeClass","_normalizeStyle","$options","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"+YAgEKA,EAAU,CACb,WAAY,eACVC,EAAa,aACd,EACD,KAAM,UAAY,CAChB,MAAO,CACL,MAAO,IACP,OAAQ,IACR,YAAa,EACb,UAAW,IACb,CACD,EACD,OAAQ,CAACC,EAAAA,OAAO,EAChB,SAAU,CACR,OAAQ,CACN,MAAO,CACL,UAAW,KAAK,SAClB,CACD,CACF,EACD,QAAS,UAAY,CACnB,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAC/D,KAAK,OAAS,KAAK,UAAU,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,MAAM,EAC9D,KAAK,WAAW,CAAC,IACnB,KAAK,UAAY,KAAK,WAAW,CAAC,GAEhC,KAAK,WAAW,CAAC,IACnB,KAAK,YAAc,SAAS,KAAK,WAAW,CAAC,CAAC,EAEjD,EACD,QAAS,CACP,QAAS,UAAY,CACnB,IAAIC,EAAO,YACX,OAAI,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAEnBA,CACR,EACD,YAAa,SAAUC,EAAM,OAC3B,IAAIC,EAAO,GACPC,EAAQ,IACRC,EAAU;AAAA,EACVC,EAAQ,EAEZ,GAAI,MAAM,QAAQJ,CAAI,EAAG,CACvB,UAAWK,KAASL,EACd,KAAK,aAAaM,EAAA,KAAK,YAAL,YAAAA,EAAgB,iBAAkB,MACtDL,GAAQ,QAAQ,KAAK,UAAWI,CAAK,EAErCJ,GAAQI,EAEVD,GAAS,EACLA,EAAQ,KAAK,cAAgB,GAC/BA,EAAQ,EACRH,GAAQE,GAERF,GAAQC,EAGZ,OAAOD,EAAK,KAAI,MAEhB,QAAOD,CAEV,CACF,CACH,EA1GOO,EAAA,CAAA,MAAM,wBAAwB,sPAAnC,OAAAC,YAAA,EAAAC,qBAiCM,MAjCNF,EAiCM,CAhCJG,EAAAA,YAaEC,EAAA,CAZA,QAAQ,OACR,QAAQ,UACR,SAAA,GACA,YAAA,GACA,YAAA,GACA,KAAK,IACL,eAAA,GACC,cAAaC,EAAM,OACnB,MAjCPC,EAAAA,eAiCcD,EAAU,UAAA,EACjB,MAlCPE,EAAA,eAAA,CAkCeF,EAAa,cAAEG,EAAK,KAAA,CAAA,EAC7B,YAAU,eACT,cAAaH,EAAe,yEAE/BF,EAAAA,YAUSM,EAAA,CAhDb,WAsCqBJ,EAAgB,iBAtCrC,sBAAAK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAsCqBN,EAAgB,iBAAAM,GAAG,OAAM,CAAGN,EAAC,EAAEA,EAAC,CAAA,IAtCrD,QAAAO,EAAA,QAuCM,IAQS,CARTT,EAQS,YAAAU,EAAA,KAAA,CA/Cf,QAAAD,EAAA,QAyCU,IAA2C,EAD7CX,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAMcY,gBA9CtBC,EAyCkC,WAAAV,EAAA,mBAzClC,CAyCkBW,EAAMC,mBADhBC,EAMc,YAAAC,EAAA,CAJX,IAAKF,EACL,QA3CXG,EAAAA,cA2CuBJ,EAAK,OAAM,CAAA,MAAA,CAAA,IA3ClC,QAAAJ,EAAA,QA6CU,IAAuD,CAAvDT,EAAuD,YAAAkB,EAAA,KAAA,CA7CjE,QAAAT,EAAA,QA6C6B,IAAgB,CA7C7CU,EAAAA,gBA6CgCC,EAAA,gBAAAP,EAAK,KAAK,EAAA,CAAA,IA7C1C,EAAA,WAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,8BAkDIb,EAAAA,YAKEqB,EAAA,CAJC,cAAanB,EAAU,WAAA,CAAA,EACvB,cAAaA,EAAU,WAAA,CAAA,EACvB,YAAWA,EAAU,WAAA,CAAA,EArD5B,WAsDeA,EAAW,YAtD1B,sBAAAK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAsDeN,EAAW,YAAAM"}
1
+ {"version":3,"file":"ArrayWidget-DkjHrXsu.cjs","sources":["../src/widgets/ArrayWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"array-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n auto-grow\n rows=\"2\"\n hide-details\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"array-widget\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 200,\n height: 100,\n itemsPerRow: 4,\n formatter: null,\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.itemsPerRow = parseInt(this.parameters[6])\n }\n },\n methods: {\n getType: function () {\n let type = 'CONVERTED'\n if (this.parameters[7]) {\n type = this.parameters[7]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n let space = ' '\n let newLine = '\\n'\n let count = 0\n\n if (Array.isArray(data)) {\n for (const value of data) {\n if (this.formatter && this.formatter?.toLowerCase() !== 'nil') {\n text += sprintf(this.formatter, value)\n } else {\n text += value\n }\n count += 1\n if (count % this.itemsPerRow === 0) {\n count = 0\n text += newLine\n } else {\n text += space\n }\n }\n return text.trim()\n } else {\n return data\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.array-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.array-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","count","value","_a","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","_ctx","_normalizeClass","_normalizeStyle","$options","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"mSAgEKA,EAAU,CACb,WAAY,eACVC,EAAa,aACd,EACD,KAAM,UAAY,CAChB,MAAO,CACL,MAAO,IACP,OAAQ,IACR,YAAa,EACb,UAAW,IACb,CACD,EACD,OAAQ,CAACC,EAAAA,OAAO,EAChB,SAAU,CACR,OAAQ,CACN,MAAO,CACL,UAAW,KAAK,SAClB,CACD,CACF,EACD,QAAS,UAAY,CACnB,KAAK,MAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,KAAK,EAC/D,KAAK,OAAS,KAAK,UAAU,KAAK,WAAW,CAAC,EAAG,KAAM,KAAK,MAAM,EAC9D,KAAK,WAAW,CAAC,IACnB,KAAK,UAAY,KAAK,WAAW,CAAC,GAEhC,KAAK,WAAW,CAAC,IACnB,KAAK,YAAc,SAAS,KAAK,WAAW,CAAC,CAAC,EAEjD,EACD,QAAS,CACP,QAAS,UAAY,CACnB,IAAIC,EAAO,YACX,OAAI,KAAK,WAAW,CAAC,IACnBA,EAAO,KAAK,WAAW,CAAC,GAEnBA,CACR,EACD,YAAa,SAAUC,EAAM,OAC3B,IAAIC,EAAO,GACPC,EAAQ,IACRC,EAAU;AAAA,EACVC,EAAQ,EAEZ,GAAI,MAAM,QAAQJ,CAAI,EAAG,CACvB,UAAWK,KAASL,EACd,KAAK,aAAaM,EAAA,KAAK,YAAL,YAAAA,EAAgB,iBAAkB,MACtDL,GAAQ,QAAQ,KAAK,UAAWI,CAAK,EAErCJ,GAAQI,EAEVD,GAAS,EACLA,EAAQ,KAAK,cAAgB,GAC/BA,EAAQ,EACRH,GAAQE,GAERF,GAAQC,EAGZ,OAAOD,EAAK,KAAI,MAEhB,QAAOD,CAEV,CACF,CACH,EA1GOO,EAAA,CAAA,MAAM,wBAAwB,sPAAnC,OAAAC,YAAA,EAAAC,qBAiCM,MAjCNF,EAiCM,CAhCJG,EAAAA,YAaEC,EAAA,CAZA,QAAQ,OACR,QAAQ,UACR,SAAA,GACA,YAAA,GACA,YAAA,GACA,KAAK,IACL,eAAA,GACC,cAAaC,EAAM,OACnB,MAjCPC,EAAAA,eAiCcD,EAAU,UAAA,EACjB,MAlCPE,EAAA,eAAA,CAkCeF,EAAa,cAAEG,EAAK,KAAA,CAAA,EAC7B,YAAU,eACT,cAAaH,EAAe,yEAE/BF,EAAAA,YAUSM,EAAA,CAhDb,WAsCqBJ,EAAgB,iBAtCrC,sBAAAK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAsCqBN,EAAgB,iBAAAM,GAAG,OAAM,CAAGN,EAAC,EAAEA,EAAC,CAAA,IAtCrD,QAAAO,EAAA,QAuCM,IAQS,CARTT,EAQS,YAAAU,EAAA,KAAA,CA/Cf,QAAAD,EAAA,QAyCU,IAA2C,EAD7CX,EAAAA,UAAA,EAAA,EAAAC,EAAA,mBAMcY,gBA9CtBC,EAyCkC,WAAAV,EAAA,mBAzClC,CAyCkBW,EAAMC,mBADhBC,EAMc,YAAAC,EAAA,CAJX,IAAKF,EACL,QA3CXG,EAAAA,cA2CuBJ,EAAK,OAAM,CAAA,MAAA,CAAA,IA3ClC,QAAAJ,EAAA,QA6CU,IAAuD,CAAvDT,EAAuD,YAAAkB,EAAA,KAAA,CA7CjE,QAAAT,EAAA,QA6C6B,IAAgB,CA7C7CU,EAAAA,gBA6CgCC,EAAA,gBAAAP,EAAK,KAAK,EAAA,CAAA,IA7C1C,EAAA,WAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,8BAkDIb,EAAAA,YAKEqB,EAAA,CAJC,cAAanB,EAAU,WAAA,CAAA,EACvB,cAAaA,EAAU,WAAA,CAAA,EACvB,YAAWA,EAAU,WAAA,CAAA,EArD5B,WAsDeA,EAAW,YAtD1B,sBAAAK,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAsDeN,EAAW,YAAAM"}
@@ -1,7 +1,7 @@
1
- import { u as c, f as d } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js";
2
- import { G as h } from "./GraphWidget-Dycey-mj.js";
1
+ import { u as c, l as d } from "./WidgetComponents-C1lSLZ0I.js";
2
+ import { G as h } from "./GraphWidget-DurWDmpg.js";
3
3
  import { createElementBlock as l, openBlock as p } from "vue";
4
- import { _ as u } from "./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js";
4
+ import { _ as u } from "./CustomIcon-h5X7369N.js";
5
5
  const f = {
6
6
  data: function() {
7
7
  return {
@@ -196,4 +196,4 @@ const y = /* @__PURE__ */ u(f, [["render", b]]);
196
196
  export {
197
197
  y as default
198
198
  };
199
- //# sourceMappingURL=ArrayplotWidget-B_VPoV4v.js.map
199
+ //# sourceMappingURL=ArrayplotWidget-CCKEyYIx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayplotWidget-B_VPoV4v.js","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\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 <div class=\"pa-1\" :id=\"`chart${id}`\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n mixins: [GraphWidget],\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: parseFloat(setting[1]),\n step: parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Cable","GraphWidget","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_hoisted_1","_createElementBlock","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"ArrayplotWidget-CCKEyYIx.js","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\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 <div class=\"pa-1\" :id=\"`chart${id}`\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n mixins: [GraphWidget],\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: parseFloat(setting[1]),\n step: parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Cable","GraphWidget","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_hoisted_1","_createElementBlock","_ctx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./WidgetComponents-utpQ592X.cjs"),h=require("./GraphWidget-sid4Ws9H.cjs"),c=require("vue"),l=require("./CustomIcon-Bop2mEnu.cjs"),u={data:function(){return{items:[],indexes:{},data:[[]],cable:new o.li,subscription:null,graph:null,xAxis:null,title:"Array Plot",colorIndex:0,colors:["#00c7cb","#938bdb","#4dacff","lime","darkorange","red","gold","hotpink","tan","cyan","maroon","blue","teal","purple","green","brown","lightblue","white","black"]}},mixins:[h.GraphWidget],created(){for(const[e,t]of this.items.entries())this.data.push([]),this.indexes[this.subscriptionKey(t)]=e+1,t.color=this.colors[this.colorIndex],this.colorIndex++;this.appliedSettings.forEach(e=>{switch(e[0]){case"TITLE":this.title=e[1];break;case"X_AXIS":this.xAxis={start:parseFloat(e[1]),step:parseFloat(e[2])};break}})},mounted(){let e=[];this.items.forEach(s=>{e.push({label:this.itemName(s),stroke:s.color,width:2,value:(n,i)=>typeof i=="string"||isNaN(i)?"NaN":i==null?"--":i.toFixed(3)})});let t={title:this.title,width:this.size.width,height:this.size.height,scales:{x:{time:!1},y:{time:!1,range:(s,n,i)=>[n,i]}},axes:[{stroke:"white",grid:{show:!0,stroke:"rgba(255, 255, 255, .1)",width:2}},{stroke:"white",grid:{show:!0,stroke:"rgba(255, 255, 255, .1)",width:2}}],series:[{label:"X Value"},...e]};this.graph=new o.uPlot(t,this.data,document.getElementById(`chart${this.id}`)),this.subscribe()},beforeUnmount:function(){this.cable.disconnect()},computed:{dataOnly(){return this.data[1]}},watch:{dataOnly:function(){this.graph&&this.graph.setData(this.data)}},methods:{subscribe:function(){this.cable.createSubscription("StreamingChannel",window.openc3Scope,{received:e=>this.received(e),connected:()=>{this.addItemsToSubscription(this.items)},disconnected:e=>{e.allowReconnect&&this.errors.push({type:"disconnected",message:"OpenC3 backend connection disconnected",time:new Date().getTime()})},rejected:()=>{this.errors.push({type:"rejected",message:"OpenC3 backend connection rejected",time:new Date().getTime()})}}).then(e=>{this.subscription=e})},received:function(e){for(let t of e){let s=[];for(const[n,i]of Object.entries(t)){n==="__time"&&(this.xAxis?s=Array.from({length:this.data[1].length},(d,a)=>this.xAxis.start+a*this.xAxis.step):s.length===0&&(s=Array.from({length:this.data[1].length},(d,a)=>a)),this.data[0]=s);let r=this.indexes[n];r&&(Array.isArray(i[0])?(this.data[r]=i[1],s=i[0]):this.data[r]=i)}}},addItemsToSubscription:function(e=this.items){this.subscription&&OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(t=>{t&&OpenC3Auth.setTokens(),this.subscription.perform("add",{scope:window.openc3Scope,token:localStorage.openc3Token,items:e.map(this.subscriptionKey),start_time:null,end_time:null})})},itemName:function(e){return`${e.targetName} ${e.packetName} ${e.itemName}`},subscriptionKey:function(e){let t=`${e.reduced}__TLM__${e.targetName}__${e.packetName}__${e.itemName}__${e.valueType}`;return(e.reduced==="REDUCED_MINUTE"||e.reduced==="REDUCED_HOUR"||e.reduced==="REDUCED_DAY")&&(t+=`__${e.reducedType}`),t}}},p=["id"];function f(e,t,s,n,i,r){return c.openBlock(),c.createElementBlock("div",{class:"pa-1",id:`chart${e.id}`},null,8,p)}const m=l._export_sfc(u,[["render",f]]);exports.default=m;
2
+ //# sourceMappingURL=ArrayplotWidget-COeaK_Lz.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayplotWidget-Donxhd8_.cjs","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\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 <div class=\"pa-1\" :id=\"`chart${id}`\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n mixins: [GraphWidget],\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: parseFloat(setting[1]),\n step: parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Cable","GraphWidget","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_hoisted_1","_createElementBlock","_ctx"],"mappings":"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"}
1
+ {"version":3,"file":"ArrayplotWidget-COeaK_Lz.cjs","sources":["../src/widgets/ArrayplotWidget.vue"],"sourcesContent":["<!--\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 <div class=\"pa-1\" :id=\"`chart${id}`\"></div>\n</template>\n\n<script>\nimport uPlot from 'uplot'\nimport 'uplot/dist/uPlot.min.css'\nimport { Cable } from '@openc3/js-common/services'\nimport GraphWidget from './GraphWidget'\n\nexport default {\n data: function () {\n return {\n items: [],\n indexes: {},\n data: [[]],\n cable: new Cable(),\n subscription: null,\n graph: null,\n xAxis: null,\n title: 'Array Plot',\n colorIndex: 0,\n colors: [\n // The first 3 are taken from the Astro css definitions for\n // --color-data-visualization-1 through 3\n '#00c7cb',\n '#938bdb',\n '#4dacff',\n 'lime',\n 'darkorange',\n 'red',\n 'gold',\n 'hotpink',\n 'tan',\n 'cyan',\n 'maroon',\n 'blue',\n 'teal',\n 'purple',\n 'green',\n 'brown',\n 'lightblue',\n 'white',\n 'black',\n ],\n }\n },\n mixins: [GraphWidget],\n created() {\n for (const [index, item] of this.items.entries()) {\n this.data.push([]) // initialize the empty data arrays\n this.indexes[this.subscriptionKey(item)] = index + 1\n item.color = this.colors[this.colorIndex]\n this.colorIndex++\n }\n\n this.appliedSettings.forEach((setting) => {\n switch (setting[0]) {\n case 'TITLE':\n this.title = setting[1]\n break\n case 'X_AXIS':\n this.xAxis = {\n start: parseFloat(setting[1]),\n step: parseFloat(setting[2]),\n }\n break\n }\n })\n },\n mounted() {\n let chartSeries = []\n this.items.forEach((item) => {\n chartSeries.push({\n label: this.itemName(item),\n stroke: item.color,\n width: 2,\n value: (self, rawValue) => {\n if (typeof rawValue === 'string' || isNaN(rawValue)) {\n return 'NaN'\n } else {\n return rawValue == null ? '--' : rawValue.toFixed(3)\n }\n },\n })\n })\n\n let chartOpts = {\n title: this.title,\n width: this.size.width,\n height: this.size.height,\n scales: {\n x: {\n time: false,\n },\n y: {\n time: false,\n range: (u, min, max) => [min, max],\n },\n },\n axes: [\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n {\n stroke: 'white',\n grid: {\n show: true,\n stroke: 'rgba(255, 255, 255, .1)',\n width: 2,\n },\n },\n ],\n series: [\n {\n label: 'X Value',\n },\n ...chartSeries,\n ],\n }\n this.graph = new uPlot(\n chartOpts,\n this.data,\n document.getElementById(`chart${this.id}`),\n )\n this.subscribe()\n },\n beforeUnmount: function () {\n this.cable.disconnect()\n },\n computed: {\n dataOnly() {\n return this.data[1] // Ignore the x axis data\n },\n },\n watch: {\n // This is always firing even when the data is the same\n // Is it because we're setting the whole array data[1]?\n dataOnly: function () {\n if (this.graph) {\n this.graph.setData(this.data)\n }\n },\n },\n methods: {\n subscribe: function () {\n this.cable\n .createSubscription('StreamingChannel', window.openc3Scope, {\n received: (data) => this.received(data),\n connected: () => {\n this.addItemsToSubscription(this.items)\n },\n disconnected: (data) => {\n // If allowReconnect is true it means we got a disconnect due to connection lost or server disconnect\n // If allowReconnect is false this is a normal server close or client close\n if (data.allowReconnect) {\n this.errors.push({\n type: 'disconnected',\n message: 'OpenC3 backend connection disconnected',\n time: new Date().getTime(),\n })\n }\n },\n rejected: () => {\n this.errors.push({\n type: 'rejected',\n message: 'OpenC3 backend connection rejected',\n time: new Date().getTime(),\n })\n },\n })\n .then((subscription) => {\n this.subscription = subscription\n })\n },\n received: function (data_array) {\n for (let data of data_array) {\n let xaxis = [] // Declare outside the loop so we can use it for the X axis values\n for (const [key, value] of Object.entries(data)) {\n // We support 2 different kind of data, a simple array of Y values\n // or an array with both X and Y values, e.g. [[x1,x2,x3...], [y1,y2,y3...]]\n if (key === '__time') {\n // Explicitly setting the X axis values always wins\n if (this.xAxis) {\n xaxis = Array.from(\n { length: this.data[1].length },\n (_, i) => this.xAxis.start + i * this.xAxis.step,\n )\n } else if (xaxis.length === 0) {\n // If we don't have an array of X values we generate them\n xaxis = Array.from({ length: this.data[1].length }, (_, i) => i)\n }\n this.data[0] = xaxis\n }\n let key_index = this.indexes[key]\n if (key_index) {\n // Check for the array of arrays case\n if (Array.isArray(value[0])) {\n this.data[key_index] = value[1]\n xaxis = value[0]\n } else {\n this.data[key_index] = value\n }\n }\n }\n }\n },\n addItemsToSubscription: function (itemArray = this.items) {\n if (this.subscription) {\n OpenC3Auth.updateToken(OpenC3Auth.defaultMinValidity).then(\n (refreshed) => {\n if (refreshed) {\n OpenC3Auth.setTokens()\n }\n this.subscription.perform('add', {\n scope: window.openc3Scope,\n token: localStorage.openc3Token,\n items: itemArray.map(this.subscriptionKey),\n start_time: null,\n end_time: null,\n })\n },\n )\n }\n },\n itemName: function (item) {\n return `${item.targetName} ${item.packetName} ${item.itemName}`\n },\n subscriptionKey: function (item) {\n let key = `${item.reduced}__TLM__${item.targetName}__${item.packetName}__${item.itemName}__${item.valueType}`\n if (\n item.reduced === 'REDUCED_MINUTE' ||\n item.reduced === 'REDUCED_HOUR' ||\n item.reduced === 'REDUCED_DAY'\n ) {\n key += `__${item.reducedType}`\n }\n return key\n },\n },\n}\n</script>\n"],"names":["_sfc_main","Cable","GraphWidget","index","item","setting","chartSeries","self","rawValue","chartOpts","u","min","max","uPlot","data","subscription","data_array","xaxis","key","value","_","i","key_index","itemArray","refreshed","_hoisted_1","_createElementBlock","_ctx"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { W as t } from "./Widget-fRCERxGf.js";
2
- import { m as a } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js";
1
+ import { W as t } from "./Widget-oyqWpFXJ.js";
2
+ import { h as a } from "./WidgetComponents-C1lSLZ0I.js";
3
3
  const l = {
4
4
  mixins: [t],
5
5
  data() {
@@ -105,4 +105,4 @@ const l = {
105
105
  export {
106
106
  l as B
107
107
  };
108
- //# sourceMappingURL=BarColumn-C9dkpg2O.js.map
108
+ //# sourceMappingURL=BarColumn-C6p07yWK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BarColumn-C9dkpg2O.js","sources":["../src/widgets/BarColumn.js"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport Widget from './Widget'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n minValue: null,\n maxValue: null,\n redLow: 0,\n yellowLow: 0,\n greenLow: 0,\n greenHigh: 0,\n yellowHigh: 0,\n redHigh: 0,\n blue: 0,\n api: null,\n limitsSettings: {\n DEFAULT: [],\n },\n currentLimitsSet: 'DEFAULT',\n currentSetRefreshInterval: null,\n }\n },\n computed: {\n cssProps: function () {\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-width': this.redLow + '%',\n '--redhigh-width': this.redHigh + '%',\n '--yellowlow-width': this.yellowLow + '%',\n '--yellowhigh-width': this.yellowHigh + '%',\n '--greenlow-width': this.greenLow + '%',\n '--greenhigh-width': this.greenHigh + '%',\n '--blue-width': this.blue + '%',\n }\n },\n selectedLimitsSet: function () {\n return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)\n ? this.currentLimitsSet\n : 'DEFAULT'\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.api\n .get_limits(this.parameters[0], this.parameters[1], this.parameters[2])\n .then((data) => {\n this.limitsSettings = data\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000,\n )\n\n this.appliedSettings.forEach((setting) => {\n if (setting[0] === 'MIN_VALUE') {\n this.minValue = parseInt(setting[1])\n }\n if (setting[0] === 'MAX_VALUE') {\n this.maxValue = parseInt(setting[1])\n }\n })\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n this.height = this.setHeight(this.parameters[5], 'px', this.height)\n // Always pass CONVERTED so we can calculate the value against the limits (in converted units)\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`\n\n this.$emit('addItem', this.valueId)\n },\n destroyed() {\n this.$emit('deleteItem', this.valueId)\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n modifyLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n // By default the red bars take 10% of the display\n this.redLow = 10\n this.redHigh = 10\n\n // Modify values to respect the user defined minimum\n if (this.minValue !== null) {\n if (limitsSettings[0] <= this.minValue) {\n limitsSettings[0] = this.minValue\n // No red low will be displayed\n this.redLow = 0\n }\n if (limitsSettings[1] <= this.minValue) {\n limitsSettings[1] = this.minValue\n }\n if (limitsSettings[2] <= this.minValue) {\n limitsSettings[2] = this.minValue\n }\n if (limitsSettings[3] <= this.minValue) {\n limitsSettings[3] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[4] <= this.minValue) {\n limitsSettings[4] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] <= this.minValue) {\n limitsSettings[5] = this.minValue\n }\n }\n if (this.maxValue !== null) {\n if (limitsSettings[0] >= this.maxValue) {\n limitsSettings[0] = this.maxValue\n }\n if (limitsSettings[1] >= this.maxValue) {\n limitsSettings[1] = this.maxValue\n }\n if (limitsSettings[2] >= this.maxValue) {\n limitsSettings[2] = this.maxValue\n }\n if (limitsSettings[3] >= this.maxValue) {\n limitsSettings[3] = this.maxValue\n // No red high will be displayed\n this.redHigh = 0\n }\n if (limitsSettings.length > 4 && limitsSettings[4] >= this.maxValue) {\n limitsSettings[4] = this.maxValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] >= this.maxValue) {\n limitsSettings[5] = this.maxValue\n }\n }\n // If the red low matches yellow low there is no yellow low\n if (limitsSettings[0] == limitsSettings[1]) {\n this.yellowLow = 0\n }\n // If the red high matches yellow high there is no yellow high\n if (limitsSettings[2] == limitsSettings[3]) {\n this.yellowHigh = 0\n }\n\n let divisor = 80\n if (this.redLow == 0) {\n divisor += 10\n }\n if (this.redHigh == 0) {\n divisor += 10\n }\n this.scale = (limitsSettings[3] - limitsSettings[0]) / divisor\n\n return limitsSettings\n },\n calcPosition(value, limitsSettings) {\n if (!value || !limitsSettings) {\n return\n }\n let lowValue = limitsSettings[0] - 10 * this.scale\n if (this.minValue && this.minValue == limitsSettings[0]) {\n lowValue = limitsSettings[0]\n }\n let highValue = limitsSettings[3] - 10 * this.scale\n if (this.maxValue && this.maxValue == limitsSettings[3]) {\n highValue = limitsSettings[3]\n }\n\n if (value.raw) {\n if (value.raw === '-Infinity') {\n return 0\n } else {\n // NaN and Infinity\n return 100\n }\n }\n if (value < this.min) {\n return 0\n } else if (value > this.max) {\n return 100\n } else {\n const result = parseInt((value - lowValue) / this.scale)\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n }\n },\n calcLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n this.yellowLow = Math.round(\n (limitsSettings[1] - limitsSettings[0]) / this.scale,\n )\n this.yellowHigh = Math.round(\n (limitsSettings[3] - limitsSettings[2]) / this.scale,\n )\n if (limitsSettings.length > 4) {\n this.greenLow = Math.round(\n (limitsSettings[4] - limitsSettings[1]) / this.scale,\n )\n this.greenHigh = Math.round(\n (limitsSettings[2] - limitsSettings[5]) / this.scale,\n )\n this.blue = Math.round(\n 100 -\n this.redLow -\n this.yellowLow -\n this.greenLow -\n this.greenHigh -\n this.yellowHigh -\n this.redHigh,\n )\n } else {\n this.greenLow = Math.round(\n 100 - this.redLow - this.yellowLow - this.yellowHigh - this.redHigh,\n )\n this.greenHigh = 0\n this.blue = 0\n }\n },\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n },\n}\n"],"names":["BarColumn","Widget","value","limits","OpenC3Api","data","setting","limitsSettings","divisor","lowValue","result"],"mappings":";;AAqBA,MAAeA,IAAA;AAAA,EACb,QAAQ,CAACC,CAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,MACL,UAAU;AAAA,MACV,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,UAAU;AAAA,MACV,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,MAAM;AAAA,MACN,KAAK;AAAA,MACL,gBAAgB;AAAA,QACd,SAAS,CAAE;AAAA,MACZ;AAAA,MACD,kBAAkB;AAAA,MAClB,2BAA2B;AAAA,IACjC;AAAA,EACG;AAAA,EACD,UAAU;AAAA,IACR,UAAU,WAAY;AACpB,UAAIC,IAAQ,KAAK,aAAa,KAAK,OAAO,EAAE,CAAC,GACzCC,IAAS,KAAK;AAAA,QAChB,KAAK,eAAe,KAAK,iBAAiB;AAAA,MAClD;AACM,kBAAK,WAAWA,CAAM,GACf;AAAA,QACL,YAAY,KAAK,SAAS;AAAA,QAC1B,WAAW,KAAK,QAAQ;AAAA,QACxB,sBAAsB,KAAK,SAAS,IAAI;AAAA,QACxC,cAAc,KAAK,aAAaD,GAAOC,CAAM,IAAI;AAAA,QACjD,kBAAkB,KAAK,SAAS;AAAA,QAChC,mBAAmB,KAAK,UAAU;AAAA,QAClC,qBAAqB,KAAK,YAAY;AAAA,QACtC,sBAAsB,KAAK,aAAa;AAAA,QACxC,oBAAoB,KAAK,WAAW;AAAA,QACpC,qBAAqB,KAAK,YAAY;AAAA,QACtC,gBAAgB,KAAK,OAAO;AAAA,MACpC;AAAA,IACK;AAAA,IACD,mBAAmB,WAAY;AAC7B,aAAO,KAAK,eAAe,eAAe,KAAK,gBAAgB,IAC3D,KAAK,mBACL;AAAA,IACL;AAAA,EACF;AAAA,EACD,UAAU;AACR,SAAK,MAAM,IAAIC,EAAS,GACxB,KAAK,IACF,WAAW,KAAK,WAAW,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,EACrE,KAAK,CAACC,MAAS;AACd,WAAK,iBAAiBA;AAAA,IACvB,CAAA,GACH,KAAK,oBAAmB,GACxB,KAAK,4BAA4B;AAAA,MAC/B,KAAK;AAAA,MACL,KAAK;AAAA,IACX,GAEI,KAAK,gBAAgB,QAAQ,CAACC,MAAY;AACxC,MAAIA,EAAQ,CAAC,MAAM,gBACjB,KAAK,WAAW,SAASA,EAAQ,CAAC,CAAC,IAEjCA,EAAQ,CAAC,MAAM,gBACjB,KAAK,WAAW,SAASA,EAAQ,CAAC,CAAC;AAAA,IAEtC,CAAA,GACD,KAAK,QAAQ,KAAK,SAAS,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,KAAK,GAC/D,KAAK,SAAS,KAAK,UAAU,KAAK,WAAW,CAAC,GAAG,MAAM,KAAK,MAAM,GAElE,KAAK,UAAU,GAAG,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,eAElF,KAAK,MAAM,WAAW,KAAK,OAAO;AAAA,EACnC;AAAA,EACD,YAAY;AACV,SAAK,MAAM,cAAc,KAAK,OAAO,GACrC,cAAc,KAAK,yBAAyB;AAAA,EAC7C;AAAA,EACD,SAAS;AAAA,IACP,aAAaC,GAAgB;AAC3B,UAAI,CAACA;AACH;AAGF,WAAK,SAAS,IACd,KAAK,UAAU,IAGX,KAAK,aAAa,SAChBA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,UAEzB,KAAK,SAAS,IAEZA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,SAAS,KAAKA,EAAe,CAAC,KAAK,KAAK,aACzDA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,SAAS,KAAKA,EAAe,CAAC,KAAK,KAAK,aACzDA,EAAe,CAAC,IAAI,KAAK,YAGzB,KAAK,aAAa,SAChBA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,CAAC,KAAK,KAAK,aAC5BA,EAAe,CAAC,IAAI,KAAK,UAEzB,KAAK,UAAU,IAEbA,EAAe,SAAS,KAAKA,EAAe,CAAC,KAAK,KAAK,aACzDA,EAAe,CAAC,IAAI,KAAK,WAEvBA,EAAe,SAAS,KAAKA,EAAe,CAAC,KAAK,KAAK,aACzDA,EAAe,CAAC,IAAI,KAAK,YAIzBA,EAAe,CAAC,KAAKA,EAAe,CAAC,MACvC,KAAK,YAAY,IAGfA,EAAe,CAAC,KAAKA,EAAe,CAAC,MACvC,KAAK,aAAa;AAGpB,UAAIC,IAAU;AACd,aAAI,KAAK,UAAU,MACjBA,KAAW,KAET,KAAK,WAAW,MAClBA,KAAW,KAEb,KAAK,SAASD,EAAe,CAAC,IAAIA,EAAe,CAAC,KAAKC,GAEhDD;AAAA,IACR;AAAA,IACD,aAAaL,GAAOK,GAAgB;AAClC,UAAI,CAACL,KAAS,CAACK;AACb;AAEF,UAAIE,IAAWF,EAAe,CAAC,IAAI,KAAK,KAAK;AAS7C,UARI,KAAK,YAAY,KAAK,YAAYA,EAAe,CAAC,MACpDE,IAAWF,EAAe,CAAC,IAEbA,EAAe,CAAC,IAAI,KAAK,KAAK,OAC1C,KAAK,YAAY,KAAK,YAAYA,EAAe,CAAC,KACxCA,EAAe,CAAC,GAG1BL,EAAM;AACR,eAAIA,EAAM,QAAQ,cACT,IAGA;AAGX,UAAIA,IAAQ,KAAK;AACf,eAAO;AACF,UAAIA,IAAQ,KAAK;AACtB,eAAO;AACF;AACL,cAAMQ,IAAS,UAAUR,IAAQO,KAAY,KAAK,KAAK;AACvD,eAAIC,IAAS,MACJ,MACEA,IAAS,IACX,IAEAA;AAAA,MAEjB;AAAA,IACK;AAAA,IACD,WAAWH,GAAgB;AACzB,MAAKA,MAGL,KAAK,YAAY,KAAK;AAAA,SACnBA,EAAe,CAAC,IAAIA,EAAe,CAAC,KAAK,KAAK;AAAA,MACvD,GACM,KAAK,aAAa,KAAK;AAAA,SACpBA,EAAe,CAAC,IAAIA,EAAe,CAAC,KAAK,KAAK;AAAA,MACvD,GACUA,EAAe,SAAS,KAC1B,KAAK,WAAW,KAAK;AAAA,SAClBA,EAAe,CAAC,IAAIA,EAAe,CAAC,KAAK,KAAK;AAAA,MACzD,GACQ,KAAK,YAAY,KAAK;AAAA,SACnBA,EAAe,CAAC,IAAIA,EAAe,CAAC,KAAK,KAAK;AAAA,MACzD,GACQ,KAAK,OAAO,KAAK;AAAA,QACf,MACE,KAAK,SACL,KAAK,YACL,KAAK,WACL,KAAK,YACL,KAAK,aACL,KAAK;AAAA,MACjB,MAEQ,KAAK,WAAW,KAAK;AAAA,QACnB,MAAM,KAAK,SAAS,KAAK,YAAY,KAAK,aAAa,KAAK;AAAA,MACtE,GACQ,KAAK,YAAY,GACjB,KAAK,OAAO;AAAA,IAEf;AAAA,IACD,qBAAqB,WAAY;AAC/B,WAAK,IAAI,eAAgB,EAAC,KAAK,CAACG,MAAW;AACzC,aAAK,mBAAmBA;AAAA,MACzB,CAAA;AAAA,IACF;AAAA,EACF;AACH;"}
1
+ {"version":3,"file":"BarColumn-C6p07yWK.js","sources":["../src/widgets/BarColumn.js"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport Widget from './Widget'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n minValue: null,\n maxValue: null,\n redLow: 0,\n yellowLow: 0,\n greenLow: 0,\n greenHigh: 0,\n yellowHigh: 0,\n redHigh: 0,\n blue: 0,\n api: null,\n limitsSettings: {\n DEFAULT: [],\n },\n currentLimitsSet: 'DEFAULT',\n currentSetRefreshInterval: null,\n }\n },\n computed: {\n cssProps: function () {\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-width': this.redLow + '%',\n '--redhigh-width': this.redHigh + '%',\n '--yellowlow-width': this.yellowLow + '%',\n '--yellowhigh-width': this.yellowHigh + '%',\n '--greenlow-width': this.greenLow + '%',\n '--greenhigh-width': this.greenHigh + '%',\n '--blue-width': this.blue + '%',\n }\n },\n selectedLimitsSet: function () {\n return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)\n ? this.currentLimitsSet\n : 'DEFAULT'\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.api\n .get_limits(this.parameters[0], this.parameters[1], this.parameters[2])\n .then((data) => {\n this.limitsSettings = data\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000,\n )\n\n this.appliedSettings.forEach((setting) => {\n if (setting[0] === 'MIN_VALUE') {\n this.minValue = parseInt(setting[1])\n }\n if (setting[0] === 'MAX_VALUE') {\n this.maxValue = parseInt(setting[1])\n }\n })\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n this.height = this.setHeight(this.parameters[5], 'px', this.height)\n // Always pass CONVERTED so we can calculate the value against the limits (in converted units)\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`\n\n this.$emit('addItem', this.valueId)\n },\n destroyed() {\n this.$emit('deleteItem', this.valueId)\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n modifyLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n // By default the red bars take 10% of the display\n this.redLow = 10\n this.redHigh = 10\n\n // Modify values to respect the user defined minimum\n if (this.minValue !== null) {\n if (limitsSettings[0] <= this.minValue) {\n limitsSettings[0] = this.minValue\n // No red low will be displayed\n this.redLow = 0\n }\n if (limitsSettings[1] <= this.minValue) {\n limitsSettings[1] = this.minValue\n }\n if (limitsSettings[2] <= this.minValue) {\n limitsSettings[2] = this.minValue\n }\n if (limitsSettings[3] <= this.minValue) {\n limitsSettings[3] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[4] <= this.minValue) {\n limitsSettings[4] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] <= this.minValue) {\n limitsSettings[5] = this.minValue\n }\n }\n if (this.maxValue !== null) {\n if (limitsSettings[0] >= this.maxValue) {\n limitsSettings[0] = this.maxValue\n }\n if (limitsSettings[1] >= this.maxValue) {\n limitsSettings[1] = this.maxValue\n }\n if (limitsSettings[2] >= this.maxValue) {\n limitsSettings[2] = this.maxValue\n }\n if (limitsSettings[3] >= this.maxValue) {\n limitsSettings[3] = this.maxValue\n // No red high will be displayed\n this.redHigh = 0\n }\n if (limitsSettings.length > 4 && limitsSettings[4] >= this.maxValue) {\n limitsSettings[4] = this.maxValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] >= this.maxValue) {\n limitsSettings[5] = this.maxValue\n }\n }\n // If the red low matches yellow low there is no yellow low\n if (limitsSettings[0] == limitsSettings[1]) {\n this.yellowLow = 0\n }\n // If the red high matches yellow high there is no yellow high\n if (limitsSettings[2] == limitsSettings[3]) {\n this.yellowHigh = 0\n }\n\n let divisor = 80\n if (this.redLow == 0) {\n divisor += 10\n }\n if (this.redHigh == 0) {\n divisor += 10\n }\n this.scale = (limitsSettings[3] - limitsSettings[0]) / divisor\n\n return limitsSettings\n },\n calcPosition(value, limitsSettings) {\n if (!value || !limitsSettings) {\n return\n }\n let lowValue = limitsSettings[0] - 10 * this.scale\n if (this.minValue && this.minValue == limitsSettings[0]) {\n lowValue = limitsSettings[0]\n }\n let highValue = limitsSettings[3] - 10 * this.scale\n if (this.maxValue && this.maxValue == limitsSettings[3]) {\n highValue = limitsSettings[3]\n }\n\n if (value.raw) {\n if (value.raw === '-Infinity') {\n return 0\n } else {\n // NaN and Infinity\n return 100\n }\n }\n if (value < this.min) {\n return 0\n } else if (value > this.max) {\n return 100\n } else {\n const result = parseInt((value - lowValue) / this.scale)\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n }\n },\n calcLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n this.yellowLow = Math.round(\n (limitsSettings[1] - limitsSettings[0]) / this.scale,\n )\n this.yellowHigh = Math.round(\n (limitsSettings[3] - limitsSettings[2]) / this.scale,\n )\n if (limitsSettings.length > 4) {\n this.greenLow = Math.round(\n (limitsSettings[4] - limitsSettings[1]) / this.scale,\n )\n this.greenHigh = Math.round(\n (limitsSettings[2] - limitsSettings[5]) / this.scale,\n )\n this.blue = Math.round(\n 100 -\n this.redLow -\n this.yellowLow -\n this.greenLow -\n this.greenHigh -\n this.yellowHigh -\n this.redHigh,\n )\n } else {\n this.greenLow = Math.round(\n 100 - this.redLow - this.yellowLow - this.yellowHigh - this.redHigh,\n )\n this.greenHigh = 0\n this.blue = 0\n }\n },\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n },\n}\n"],"names":["BarColumn","Widget","value","limits","OpenC3Api","data","setting","limitsSettings","divisor","lowValue","result"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const t=require("./Widget-ChoIB2dd.cjs"),a=require("./WidgetComponents-utpQ592X.cjs"),s={mixins:[t.Widget],data(){return{minValue:null,maxValue:null,redLow:0,yellowLow:0,greenLow:0,greenHigh:0,yellowHigh:0,redHigh:0,blue:0,api:null,limitsSettings:{DEFAULT:[]},currentLimitsSet:"DEFAULT",currentSetRefreshInterval:null}},computed:{cssProps:function(){let e=this.screenValues[this.valueId][0],h=this.modifyLimits(this.limitsSettings[this.selectedLimitsSet]);return this.calcLimits(h),{"--height":this.height+"px","--width":this.width+"px","--container-height":this.height-5+"px","--position":this.calcPosition(e,h)+"%","--redlow-width":this.redLow+"%","--redhigh-width":this.redHigh+"%","--yellowlow-width":this.yellowLow+"%","--yellowhigh-width":this.yellowHigh+"%","--greenlow-width":this.greenLow+"%","--greenhigh-width":this.greenHigh+"%","--blue-width":this.blue+"%"}},selectedLimitsSet:function(){return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)?this.currentLimitsSet:"DEFAULT"}},created(){this.api=new a.hi,this.api.get_limits(this.parameters[0],this.parameters[1],this.parameters[2]).then(e=>{this.limitsSettings=e}),this.getCurrentLimitsSet(),this.currentSetRefreshInterval=setInterval(this.getCurrentLimitsSet,60*1e3),this.appliedSettings.forEach(e=>{e[0]==="MIN_VALUE"&&(this.minValue=parseInt(e[1])),e[0]==="MAX_VALUE"&&(this.maxValue=parseInt(e[1]))}),this.width=this.setWidth(this.parameters[4],"px",this.width),this.height=this.setHeight(this.parameters[5],"px",this.height),this.valueId=`${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`,this.$emit("addItem",this.valueId)},destroyed(){this.$emit("deleteItem",this.valueId),clearInterval(this.currentSetRefreshInterval)},methods:{modifyLimits(e){if(!e)return;this.redLow=10,this.redHigh=10,this.minValue!==null&&(e[0]<=this.minValue&&(e[0]=this.minValue,this.redLow=0),e[1]<=this.minValue&&(e[1]=this.minValue),e[2]<=this.minValue&&(e[2]=this.minValue),e[3]<=this.minValue&&(e[3]=this.minValue),e.length>4&&e[4]<=this.minValue&&(e[4]=this.minValue),e.length>4&&e[5]<=this.minValue&&(e[5]=this.minValue)),this.maxValue!==null&&(e[0]>=this.maxValue&&(e[0]=this.maxValue),e[1]>=this.maxValue&&(e[1]=this.maxValue),e[2]>=this.maxValue&&(e[2]=this.maxValue),e[3]>=this.maxValue&&(e[3]=this.maxValue,this.redHigh=0),e.length>4&&e[4]>=this.maxValue&&(e[4]=this.maxValue),e.length>4&&e[5]>=this.maxValue&&(e[5]=this.maxValue)),e[0]==e[1]&&(this.yellowLow=0),e[2]==e[3]&&(this.yellowHigh=0);let h=80;return this.redLow==0&&(h+=10),this.redHigh==0&&(h+=10),this.scale=(e[3]-e[0])/h,e},calcPosition(e,h){if(!e||!h)return;let r=h[0]-10*this.scale;if(this.minValue&&this.minValue==h[0]&&(r=h[0]),h[3]-10*this.scale,this.maxValue&&this.maxValue==h[3]&&h[3],e.raw)return e.raw==="-Infinity"?0:100;if(e<this.min)return 0;if(e>this.max)return 100;{const i=parseInt((e-r)/this.scale);return i>100?100:i<0?0:i}},calcLimits(e){e&&(this.yellowLow=Math.round((e[1]-e[0])/this.scale),this.yellowHigh=Math.round((e[3]-e[2])/this.scale),e.length>4?(this.greenLow=Math.round((e[4]-e[1])/this.scale),this.greenHigh=Math.round((e[2]-e[5])/this.scale),this.blue=Math.round(100-this.redLow-this.yellowLow-this.greenLow-this.greenHigh-this.yellowHigh-this.redHigh)):(this.greenLow=Math.round(100-this.redLow-this.yellowLow-this.yellowHigh-this.redHigh),this.greenHigh=0,this.blue=0))},getCurrentLimitsSet:function(){this.api.get_limits_set().then(e=>{this.currentLimitsSet=e})}}};exports.BarColumn=s;
2
+ //# sourceMappingURL=BarColumn-CJLW1nXy.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BarColumn-CyRSZHMh.cjs","sources":["../src/widgets/BarColumn.js"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport Widget from './Widget'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n minValue: null,\n maxValue: null,\n redLow: 0,\n yellowLow: 0,\n greenLow: 0,\n greenHigh: 0,\n yellowHigh: 0,\n redHigh: 0,\n blue: 0,\n api: null,\n limitsSettings: {\n DEFAULT: [],\n },\n currentLimitsSet: 'DEFAULT',\n currentSetRefreshInterval: null,\n }\n },\n computed: {\n cssProps: function () {\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-width': this.redLow + '%',\n '--redhigh-width': this.redHigh + '%',\n '--yellowlow-width': this.yellowLow + '%',\n '--yellowhigh-width': this.yellowHigh + '%',\n '--greenlow-width': this.greenLow + '%',\n '--greenhigh-width': this.greenHigh + '%',\n '--blue-width': this.blue + '%',\n }\n },\n selectedLimitsSet: function () {\n return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)\n ? this.currentLimitsSet\n : 'DEFAULT'\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.api\n .get_limits(this.parameters[0], this.parameters[1], this.parameters[2])\n .then((data) => {\n this.limitsSettings = data\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000,\n )\n\n this.appliedSettings.forEach((setting) => {\n if (setting[0] === 'MIN_VALUE') {\n this.minValue = parseInt(setting[1])\n }\n if (setting[0] === 'MAX_VALUE') {\n this.maxValue = parseInt(setting[1])\n }\n })\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n this.height = this.setHeight(this.parameters[5], 'px', this.height)\n // Always pass CONVERTED so we can calculate the value against the limits (in converted units)\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`\n\n this.$emit('addItem', this.valueId)\n },\n destroyed() {\n this.$emit('deleteItem', this.valueId)\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n modifyLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n // By default the red bars take 10% of the display\n this.redLow = 10\n this.redHigh = 10\n\n // Modify values to respect the user defined minimum\n if (this.minValue !== null) {\n if (limitsSettings[0] <= this.minValue) {\n limitsSettings[0] = this.minValue\n // No red low will be displayed\n this.redLow = 0\n }\n if (limitsSettings[1] <= this.minValue) {\n limitsSettings[1] = this.minValue\n }\n if (limitsSettings[2] <= this.minValue) {\n limitsSettings[2] = this.minValue\n }\n if (limitsSettings[3] <= this.minValue) {\n limitsSettings[3] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[4] <= this.minValue) {\n limitsSettings[4] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] <= this.minValue) {\n limitsSettings[5] = this.minValue\n }\n }\n if (this.maxValue !== null) {\n if (limitsSettings[0] >= this.maxValue) {\n limitsSettings[0] = this.maxValue\n }\n if (limitsSettings[1] >= this.maxValue) {\n limitsSettings[1] = this.maxValue\n }\n if (limitsSettings[2] >= this.maxValue) {\n limitsSettings[2] = this.maxValue\n }\n if (limitsSettings[3] >= this.maxValue) {\n limitsSettings[3] = this.maxValue\n // No red high will be displayed\n this.redHigh = 0\n }\n if (limitsSettings.length > 4 && limitsSettings[4] >= this.maxValue) {\n limitsSettings[4] = this.maxValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] >= this.maxValue) {\n limitsSettings[5] = this.maxValue\n }\n }\n // If the red low matches yellow low there is no yellow low\n if (limitsSettings[0] == limitsSettings[1]) {\n this.yellowLow = 0\n }\n // If the red high matches yellow high there is no yellow high\n if (limitsSettings[2] == limitsSettings[3]) {\n this.yellowHigh = 0\n }\n\n let divisor = 80\n if (this.redLow == 0) {\n divisor += 10\n }\n if (this.redHigh == 0) {\n divisor += 10\n }\n this.scale = (limitsSettings[3] - limitsSettings[0]) / divisor\n\n return limitsSettings\n },\n calcPosition(value, limitsSettings) {\n if (!value || !limitsSettings) {\n return\n }\n let lowValue = limitsSettings[0] - 10 * this.scale\n if (this.minValue && this.minValue == limitsSettings[0]) {\n lowValue = limitsSettings[0]\n }\n let highValue = limitsSettings[3] - 10 * this.scale\n if (this.maxValue && this.maxValue == limitsSettings[3]) {\n highValue = limitsSettings[3]\n }\n\n if (value.raw) {\n if (value.raw === '-Infinity') {\n return 0\n } else {\n // NaN and Infinity\n return 100\n }\n }\n if (value < this.min) {\n return 0\n } else if (value > this.max) {\n return 100\n } else {\n const result = parseInt((value - lowValue) / this.scale)\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n }\n },\n calcLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n this.yellowLow = Math.round(\n (limitsSettings[1] - limitsSettings[0]) / this.scale,\n )\n this.yellowHigh = Math.round(\n (limitsSettings[3] - limitsSettings[2]) / this.scale,\n )\n if (limitsSettings.length > 4) {\n this.greenLow = Math.round(\n (limitsSettings[4] - limitsSettings[1]) / this.scale,\n )\n this.greenHigh = Math.round(\n (limitsSettings[2] - limitsSettings[5]) / this.scale,\n )\n this.blue = Math.round(\n 100 -\n this.redLow -\n this.yellowLow -\n this.greenLow -\n this.greenHigh -\n this.yellowHigh -\n this.redHigh,\n )\n } else {\n this.greenLow = Math.round(\n 100 - this.redLow - this.yellowLow - this.yellowHigh - this.redHigh,\n )\n this.greenHigh = 0\n this.blue = 0\n }\n },\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n },\n}\n"],"names":["BarColumn","Widget","value","limits","OpenC3Api","data","setting","limitsSettings","divisor","lowValue","result"],"mappings":"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"}
1
+ {"version":3,"file":"BarColumn-CJLW1nXy.cjs","sources":["../src/widgets/BarColumn.js"],"sourcesContent":["/*\n# Copyright 2024 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n*/\n\nimport Widget from './Widget'\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n mixins: [Widget],\n data() {\n return {\n minValue: null,\n maxValue: null,\n redLow: 0,\n yellowLow: 0,\n greenLow: 0,\n greenHigh: 0,\n yellowHigh: 0,\n redHigh: 0,\n blue: 0,\n api: null,\n limitsSettings: {\n DEFAULT: [],\n },\n currentLimitsSet: 'DEFAULT',\n currentSetRefreshInterval: null,\n }\n },\n computed: {\n cssProps: function () {\n let value = this.screenValues[this.valueId][0]\n let limits = this.modifyLimits(\n this.limitsSettings[this.selectedLimitsSet],\n )\n this.calcLimits(limits)\n return {\n '--height': this.height + 'px',\n '--width': this.width + 'px',\n '--container-height': this.height - 5 + 'px',\n '--position': this.calcPosition(value, limits) + '%',\n '--redlow-width': this.redLow + '%',\n '--redhigh-width': this.redHigh + '%',\n '--yellowlow-width': this.yellowLow + '%',\n '--yellowhigh-width': this.yellowHigh + '%',\n '--greenlow-width': this.greenLow + '%',\n '--greenhigh-width': this.greenHigh + '%',\n '--blue-width': this.blue + '%',\n }\n },\n selectedLimitsSet: function () {\n return this.limitsSettings.hasOwnProperty(this.currentLimitsSet)\n ? this.currentLimitsSet\n : 'DEFAULT'\n },\n },\n created() {\n this.api = new OpenC3Api()\n this.api\n .get_limits(this.parameters[0], this.parameters[1], this.parameters[2])\n .then((data) => {\n this.limitsSettings = data\n })\n this.getCurrentLimitsSet()\n this.currentSetRefreshInterval = setInterval(\n this.getCurrentLimitsSet,\n 60 * 1000,\n )\n\n this.appliedSettings.forEach((setting) => {\n if (setting[0] === 'MIN_VALUE') {\n this.minValue = parseInt(setting[1])\n }\n if (setting[0] === 'MAX_VALUE') {\n this.maxValue = parseInt(setting[1])\n }\n })\n this.width = this.setWidth(this.parameters[4], 'px', this.width)\n this.height = this.setHeight(this.parameters[5], 'px', this.height)\n // Always pass CONVERTED so we can calculate the value against the limits (in converted units)\n this.valueId = `${this.parameters[0]}__${this.parameters[1]}__${this.parameters[2]}__CONVERTED`\n\n this.$emit('addItem', this.valueId)\n },\n destroyed() {\n this.$emit('deleteItem', this.valueId)\n clearInterval(this.currentSetRefreshInterval)\n },\n methods: {\n modifyLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n // By default the red bars take 10% of the display\n this.redLow = 10\n this.redHigh = 10\n\n // Modify values to respect the user defined minimum\n if (this.minValue !== null) {\n if (limitsSettings[0] <= this.minValue) {\n limitsSettings[0] = this.minValue\n // No red low will be displayed\n this.redLow = 0\n }\n if (limitsSettings[1] <= this.minValue) {\n limitsSettings[1] = this.minValue\n }\n if (limitsSettings[2] <= this.minValue) {\n limitsSettings[2] = this.minValue\n }\n if (limitsSettings[3] <= this.minValue) {\n limitsSettings[3] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[4] <= this.minValue) {\n limitsSettings[4] = this.minValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] <= this.minValue) {\n limitsSettings[5] = this.minValue\n }\n }\n if (this.maxValue !== null) {\n if (limitsSettings[0] >= this.maxValue) {\n limitsSettings[0] = this.maxValue\n }\n if (limitsSettings[1] >= this.maxValue) {\n limitsSettings[1] = this.maxValue\n }\n if (limitsSettings[2] >= this.maxValue) {\n limitsSettings[2] = this.maxValue\n }\n if (limitsSettings[3] >= this.maxValue) {\n limitsSettings[3] = this.maxValue\n // No red high will be displayed\n this.redHigh = 0\n }\n if (limitsSettings.length > 4 && limitsSettings[4] >= this.maxValue) {\n limitsSettings[4] = this.maxValue\n }\n if (limitsSettings.length > 4 && limitsSettings[5] >= this.maxValue) {\n limitsSettings[5] = this.maxValue\n }\n }\n // If the red low matches yellow low there is no yellow low\n if (limitsSettings[0] == limitsSettings[1]) {\n this.yellowLow = 0\n }\n // If the red high matches yellow high there is no yellow high\n if (limitsSettings[2] == limitsSettings[3]) {\n this.yellowHigh = 0\n }\n\n let divisor = 80\n if (this.redLow == 0) {\n divisor += 10\n }\n if (this.redHigh == 0) {\n divisor += 10\n }\n this.scale = (limitsSettings[3] - limitsSettings[0]) / divisor\n\n return limitsSettings\n },\n calcPosition(value, limitsSettings) {\n if (!value || !limitsSettings) {\n return\n }\n let lowValue = limitsSettings[0] - 10 * this.scale\n if (this.minValue && this.minValue == limitsSettings[0]) {\n lowValue = limitsSettings[0]\n }\n let highValue = limitsSettings[3] - 10 * this.scale\n if (this.maxValue && this.maxValue == limitsSettings[3]) {\n highValue = limitsSettings[3]\n }\n\n if (value.raw) {\n if (value.raw === '-Infinity') {\n return 0\n } else {\n // NaN and Infinity\n return 100\n }\n }\n if (value < this.min) {\n return 0\n } else if (value > this.max) {\n return 100\n } else {\n const result = parseInt((value - lowValue) / this.scale)\n if (result > 100) {\n return 100\n } else if (result < 0) {\n return 0\n } else {\n return result\n }\n }\n },\n calcLimits(limitsSettings) {\n if (!limitsSettings) {\n return\n }\n this.yellowLow = Math.round(\n (limitsSettings[1] - limitsSettings[0]) / this.scale,\n )\n this.yellowHigh = Math.round(\n (limitsSettings[3] - limitsSettings[2]) / this.scale,\n )\n if (limitsSettings.length > 4) {\n this.greenLow = Math.round(\n (limitsSettings[4] - limitsSettings[1]) / this.scale,\n )\n this.greenHigh = Math.round(\n (limitsSettings[2] - limitsSettings[5]) / this.scale,\n )\n this.blue = Math.round(\n 100 -\n this.redLow -\n this.yellowLow -\n this.greenLow -\n this.greenHigh -\n this.yellowHigh -\n this.redHigh,\n )\n } else {\n this.greenLow = Math.round(\n 100 - this.redLow - this.yellowLow - this.yellowHigh - this.redHigh,\n )\n this.greenHigh = 0\n this.blue = 0\n }\n },\n getCurrentLimitsSet: function () {\n this.api.get_limits_set().then((result) => {\n this.currentLimitsSet = result\n })\n },\n },\n}\n"],"names":["BarColumn","Widget","value","limits","OpenC3Api","data","setting","limitsSettings","divisor","lowValue","result"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./WidgetComponents-utpQ592X.cjs");const e=require("vue"),g=require("./CustomIcon-Bop2mEnu.cjs"),f=require("./DetailsDialog-mvxMFmgV.cjs");require("single-spa");const w=require("./VWidget-2N2cOosI.cjs"),v={components:{DetailsDialog:f.DetailsDialog},data:function(){return{width:400,height:400,bytesPerWord:4,wordsPerRow:4,addrFormat:null,formatter:"%02X"}},mixins:[w.VWidget],computed:{aging(){return{"--aging":this.grayLevel}},rows:function(){return(this.height-16)/24}},created:function(){this.width=this.setWidth(this.parameters[3],"px",this.width),this.height=this.setHeight(this.parameters[4],"px",this.height),this.parameters[5]&&(this.formatter=this.parameters[5]),this.parameters[6]&&(this.bytesPerWord=parseInt(this.parameters[6])),this.parameters[7]&&(this.wordsPerRow=parseInt(this.parameters[7])),this.parameters[8]&&(this.addrFormat=this.parameters[8])},methods:{getType:function(){let t="RAW";return this.parameters[9]&&(t=this.parameters[9]),t},formatValue:function(t){let o="";if(t&&t.raw){let l=" ",d=`
2
+ `,r=0,i=0;const n=this.bytesPerWord*this.wordsPerRow;for(const a of t.raw)this.addrFormat&&r===0&&(o+=sprintf(this.addrFormat,i),i+=n),o+=sprintf(this.formatter,a),r+=1,r%n===0?(r=0,o+=d):r%this.bytesPerWord===0&&(o+=l)}else o=t;return o}}},y={class:"block-widget-container"};function C(t,o,l,d,r,i){const n=e.resolveComponent("v-textarea"),a=e.resolveComponent("v-list-item-title"),m=e.resolveComponent("v-list-item"),u=e.resolveComponent("v-list"),h=e.resolveComponent("v-menu"),p=e.resolveComponent("details-dialog");return e.openBlock(),e.createElementBlock("div",y,[e.createVNode(n,{variant:"solo",density:"compact",readonly:"","no-resize":"","hide-details":"",rows:i.rows,width:t.width,"model-value":t._value,class:e.normalizeClass(t.valueClass),style:e.normalizeStyle([t.computedStyle,i.aging]),"data-test":"valueText",onContextmenu:t.showContextMenu},null,8,["rows","width","model-value","class","style","onContextmenu"]),e.createVNode(h,{modelValue:t.contextMenuShown,"onUpdate:modelValue":o[0]||(o[0]=s=>t.contextMenuShown=s),target:[t.x,t.y]},{default:e.withCtx(()=>[e.createVNode(u,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.contextMenuOptions,(s,c)=>(e.openBlock(),e.createBlock(m,{key:c,onClick:e.withModifiers(s.action,["stop"])},{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.title),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["modelValue","target"]),e.createVNode(p,{"target-name":t.parameters[0],"packet-name":t.parameters[1],"item-name":t.parameters[2],modelValue:t.viewDetails,"onUpdate:modelValue":o[1]||(o[1]=s=>t.viewDetails=s)},null,8,["target-name","packet-name","item-name","modelValue"])])}const _=g._export_sfc(v,[["render",C],["__scopeId","data-v-4d4589c2"]]);exports.default=_;
3
+ //# sourceMappingURL=BlockWidget-BFVYgbd_.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockWidget-DPLN1jgj.cjs","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeClass","_normalizeStyle","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"BlockWidget-BFVYgbd_.cjs","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeClass","_normalizeStyle","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_6fa47877_lang-iq-jp8dD.js";
1
+ import "./WidgetComponents-C1lSLZ0I.js";
2
2
  import { resolveComponent as s, createElementBlock as u, openBlock as d, createVNode as a, normalizeStyle as _, normalizeClass as y, withCtx as l, Fragment as V, renderList as k, createBlock as C, withModifiers as P, createTextVNode as W, toDisplayString as b } from "vue";
3
- import { _ as D } from "./CosmosRuxIcon.vue_vue_type_style_index_0_scoped_9af48e85_lang-CHgC5LLL.js";
4
- import { D as F } from "./DetailsDialog-BvbziA7Y.js";
3
+ import { _ as D } from "./CustomIcon-h5X7369N.js";
4
+ import { D as F } from "./DetailsDialog-DmEC5BTs.js";
5
5
  import "single-spa";
6
- import { V as H } from "./VWidget-C4spAawK.js";
6
+ import { V as H } from "./VWidget-DQqb7NVW.js";
7
7
  const M = {
8
8
  components: {
9
9
  DetailsDialog: F
@@ -109,4 +109,4 @@ const N = /* @__PURE__ */ D(M, [["render", S], ["__scopeId", "data-v-4d4589c2"]]
109
109
  export {
110
110
  N as default
111
111
  };
112
- //# sourceMappingURL=BlockWidget-CuefOin6.js.map
112
+ //# sourceMappingURL=BlockWidget-DlCHbqZX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockWidget-CuefOin6.js","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeClass","_normalizeStyle","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"BlockWidget-DlCHbqZX.js","sources":["../src/widgets/BlockWidget.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2024, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div class=\"block-widget-container\">\n <v-textarea\n variant=\"solo\"\n density=\"compact\"\n readonly\n no-resize\n hide-details\n :rows=\"rows\"\n :width=\"width\"\n :model-value=\"_value\"\n :class=\"valueClass\"\n :style=\"[computedStyle, aging]\"\n data-test=\"valueText\"\n @contextmenu=\"showContextMenu\"\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 :target-name=\"parameters[0]\"\n :packet-name=\"parameters[1]\"\n :item-name=\"parameters[2]\"\n v-model=\"viewDetails\"\n />\n </div>\n</template>\n\n<script>\nimport { DetailsDialog } from '@/components'\nimport VWidget from './VWidget'\nimport 'sprintf-js'\n\nexport default {\n components: {\n DetailsDialog,\n },\n data: function () {\n return {\n width: 400,\n height: 400,\n bytesPerWord: 4,\n wordsPerRow: 4,\n addrFormat: null,\n formatter: '%02X',\n }\n },\n mixins: [VWidget],\n computed: {\n aging() {\n return {\n '--aging': this.grayLevel,\n }\n },\n rows: function () {\n // hack to set height since vuetify 3 removed the ability to set the\n // <textarea>'s height by px and I can't get styling the element to work, either\n const paddingHeight = 16 // px\n const rowHeight = 24 // px\n return (this.height - paddingHeight) / rowHeight\n },\n },\n created: function () {\n this.width = this.setWidth(this.parameters[3], 'px', this.width)\n this.height = this.setHeight(this.parameters[4], 'px', this.height)\n if (this.parameters[5]) {\n this.formatter = this.parameters[5]\n }\n if (this.parameters[6]) {\n this.bytesPerWord = parseInt(this.parameters[6])\n }\n if (this.parameters[7]) {\n this.wordsPerRow = parseInt(this.parameters[7])\n }\n if (this.parameters[8]) {\n this.addrFormat = this.parameters[8]\n }\n // parameter[9] is the type ... see getType()\n },\n methods: {\n getType: function () {\n let type = 'RAW'\n if (this.parameters[9]) {\n type = this.parameters[9]\n }\n return type\n },\n formatValue: function (data) {\n let text = ''\n if (data && data.raw) {\n let space = ' '\n let newLine = '\\n'\n\n let byteCount = 0\n let addr = 0\n const bytesPerRow = this.bytesPerWord * this.wordsPerRow\n\n for (const value of data.raw) {\n if (this.addrFormat && byteCount === 0) {\n text += sprintf(this.addrFormat, addr)\n addr += bytesPerRow\n }\n text += sprintf(this.formatter, value)\n byteCount += 1\n if (byteCount % bytesPerRow === 0) {\n byteCount = 0\n text += newLine\n } else if (byteCount % this.bytesPerWord === 0) {\n text += space\n }\n }\n } else {\n text = data\n }\n return text\n },\n },\n}\n</script>\n\n<style scoped>\n.block-widget-container :deep(.v-input__slot) {\n background: rgba(var(--aging), var(--aging), var(--aging), 1) !important;\n}\n.v-textarea :deep(textarea) {\n font-family: 'Courier New', Courier, monospace;\n}\n.value :deep(div) {\n min-height: 24px !important;\n display: flex !important;\n align-items: center !important;\n}\n.block-widget-container :deep(.v-field__loader) {\n display: none !important;\n}\n.block-widget-container :deep(textarea) {\n padding-right: 0 !important;\n padding-left: 12px !important;\n}\n.openc3-green :deep(input) {\n color: rgb(0, 200, 0);\n}\n.openc3-yellow :deep(input) {\n color: rgb(255, 220, 0);\n}\n.openc3-red :deep(input) {\n color: rgb(255, 45, 45);\n}\n.openc3-blue :deep(input) {\n color: rgb(0, 153, 255);\n}\n.openc3-purple :deep(input) {\n color: rgb(200, 0, 200);\n}\n.openc3-black :deep(input) {\n color: black;\n}\n.openc3-white :deep(input) {\n color: white;\n}\n</style>\n"],"names":["_sfc_main","DetailsDialog","VWidget","type","data","text","space","newLine","byteCount","addr","bytesPerRow","value","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_v_textarea","$options","_ctx","_normalizeClass","_normalizeStyle","_component_v_menu","_cache","$event","_withCtx","_component_v_list","_Fragment","_renderList","item","index","_createBlock","_component_v_list_item","_withModifiers","_component_v_list_item_title","_createTextVNode","_toDisplayString","_component_details_dialog"],"mappings":"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"}