@openc3/vue-common 7.0.1 → 7.1.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 (508) hide show
  1. package/dist/{ArrayWidget-BHjh3qLF.cjs → ArrayWidget-CQCphADm.cjs} +3 -3
  2. package/dist/{ArrayWidget-BHjh3qLF.cjs.map → ArrayWidget-CQCphADm.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-Dh6zDiC7.js → ArrayWidget-CcQFJGCA.js} +7 -6
  4. package/dist/{ArrayWidget-Dh6zDiC7.js.map → ArrayWidget-CcQFJGCA.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-CSc_TqNm.js → ArrayplotWidget-DGJEXAY0.js} +6 -5
  6. package/dist/{ArrayplotWidget-CSc_TqNm.js.map → ArrayplotWidget-DGJEXAY0.js.map} +1 -1
  7. package/dist/ArrayplotWidget-J0xWFYsb.cjs +2 -0
  8. package/dist/{ArrayplotWidget-BHD-TGQO.cjs.map → ArrayplotWidget-J0xWFYsb.cjs.map} +1 -1
  9. package/dist/BarColumn-DrvHLEts.cjs +2 -0
  10. package/dist/BarColumn-DrvHLEts.cjs.map +1 -0
  11. package/dist/{BarColumn-DmjMnw5l.js → BarColumn-DwZmAe8g.js} +11 -9
  12. package/dist/BarColumn-DwZmAe8g.js.map +1 -0
  13. package/dist/{BlockWidget-BdR_HCVc.js → BlockWidget-BHtugveV.js} +14 -13
  14. package/dist/{BlockWidget-BdR_HCVc.js.map → BlockWidget-BHtugveV.js.map} +1 -1
  15. package/dist/{BlockWidget-Bi1PfS1k.cjs → BlockWidget-_HTXwzGu.cjs} +2 -2
  16. package/dist/{BlockWidget-Bi1PfS1k.cjs.map → BlockWidget-_HTXwzGu.cjs.map} +1 -1
  17. package/dist/ButtonWidget-C_4jUjbD.cjs +3 -0
  18. package/dist/ButtonWidget-C_4jUjbD.cjs.map +1 -0
  19. package/dist/{ButtonWidget-DZ4VCNWU.js → ButtonWidget-Cc9cYsg8.js} +7 -6
  20. package/dist/ButtonWidget-Cc9cYsg8.js.map +1 -0
  21. package/dist/{CanvasWidget-DTEx-DpZ.cjs → CanvasWidget-98hvMkWl.cjs} +2 -2
  22. package/dist/{CanvasWidget-DTEx-DpZ.cjs.map → CanvasWidget-98hvMkWl.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-DuXOo3jG.js → CanvasWidget-Bn70gBcc.js} +2 -2
  24. package/dist/{CanvasWidget-DuXOo3jG.js.map → CanvasWidget-Bn70gBcc.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-bbOquK8B.cjs → CanvasdotWidget-6s1Kzzoj.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-bbOquK8B.cjs.map → CanvasdotWidget-6s1Kzzoj.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget-WoLpxI1u.js → CanvasdotWidget-CMROfW3O.js} +2 -2
  28. package/dist/{CanvasdotWidget-WoLpxI1u.js.map → CanvasdotWidget-CMROfW3O.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-tWpK5rsv.js → CanvasimageWidget-BpM05v_m.js} +3 -3
  30. package/dist/{CanvasimageWidget-tWpK5rsv.js.map → CanvasimageWidget-BpM05v_m.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-D2EqsK7w.cjs → CanvasimageWidget-Du_TULyr.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-D2EqsK7w.cjs.map → CanvasimageWidget-Du_TULyr.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-By_DiQ75.cjs → CanvasimagevalueWidget-DUiZEzwq.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-By_DiQ75.cjs.map → CanvasimagevalueWidget-DUiZEzwq.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-BVzJYz3l.js → CanvasimagevalueWidget-E6G93iGc.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-BVzJYz3l.js.map → CanvasimagevalueWidget-E6G93iGc.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-CDFf8Vll.js → CanvaslabelWidget-C074R2Fy.js} +2 -2
  38. package/dist/{CanvaslabelWidget-CDFf8Vll.js.map → CanvaslabelWidget-C074R2Fy.js.map} +1 -1
  39. package/dist/{CanvaslabelWidget-DiPxyXoX.cjs → CanvaslabelWidget-C7K2dtNN.cjs} +2 -2
  40. package/dist/{CanvaslabelWidget-DiPxyXoX.cjs.map → CanvaslabelWidget-C7K2dtNN.cjs.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-DzJKD6qs.js → CanvaslabelvalueWidget-B0nJeS4X.js} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-DzJKD6qs.js.map → CanvaslabelvalueWidget-B0nJeS4X.js.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-Cw5CCQTi.cjs → CanvaslabelvalueWidget-BuayHPZu.cjs} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-Cw5CCQTi.cjs.map → CanvaslabelvalueWidget-BuayHPZu.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-BttTXCZq.js → CanvaslineWidget-CxnNAqOX.js} +2 -2
  46. package/dist/{CanvaslineWidget-BttTXCZq.js.map → CanvaslineWidget-CxnNAqOX.js.map} +1 -1
  47. package/dist/{CanvaslineWidget-BECtKTPL.cjs → CanvaslineWidget-DaBwCmSV.cjs} +2 -2
  48. package/dist/{CanvaslineWidget-BECtKTPL.cjs.map → CanvaslineWidget-DaBwCmSV.cjs.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-i6G0JfnZ.js → CanvaslinevalueWidget-BwfFyCwH.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-i6G0JfnZ.js.map → CanvaslinevalueWidget-BwfFyCwH.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-5duJ98qu.cjs → CanvaslinevalueWidget-xSHdgNCO.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-5duJ98qu.cjs.map → CanvaslinevalueWidget-xSHdgNCO.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-CTMObPhX.cjs → CheckbuttonWidget-Bey7tHx-.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-CTMObPhX.cjs.map → CheckbuttonWidget-Bey7tHx-.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-18jtf7sh.js → CheckbuttonWidget-yAm10oX0.js} +2 -2
  56. package/dist/{CheckbuttonWidget-18jtf7sh.js.map → CheckbuttonWidget-yAm10oX0.js.map} +1 -1
  57. package/dist/{ClassificationBanners-BmnQODLn.js → ClassificationBanners-DxpE_iPX.js} +2 -2
  58. package/dist/{ClassificationBanners-BmnQODLn.js.map → ClassificationBanners-DxpE_iPX.js.map} +1 -1
  59. package/dist/ClassificationBanners-xG4DOlqJ.cjs +2 -0
  60. package/dist/{ClassificationBanners-DjGCuH-4.cjs.map → ClassificationBanners-xG4DOlqJ.cjs.map} +1 -1
  61. package/dist/{ComboboxWidget-BjaVFbD4.js → ComboboxWidget-BnWksnnp.js} +2 -2
  62. package/dist/{ComboboxWidget-BjaVFbD4.js.map → ComboboxWidget-BnWksnnp.js.map} +1 -1
  63. package/dist/{ComboboxWidget-Cc0Acq9q.cjs → ComboboxWidget-Mh6axKMv.cjs} +2 -2
  64. package/dist/{ComboboxWidget-Cc0Acq9q.cjs.map → ComboboxWidget-Mh6axKMv.cjs.map} +1 -1
  65. package/dist/{CriticalCmdDialog-CO-nvphS.js → CriticalCmdDialog-D0fIp8Tq.js} +24 -23
  66. package/dist/{CriticalCmdDialog-CO-nvphS.js.map → CriticalCmdDialog-D0fIp8Tq.js.map} +1 -1
  67. package/dist/CriticalCmdDialog-DJ3FWL0_.cjs +2 -0
  68. package/dist/{CriticalCmdDialog-eytxCQto.cjs.map → CriticalCmdDialog-DJ3FWL0_.cjs.map} +1 -1
  69. package/dist/{DateWidget-DkFAFlc8.js → DateWidget-CAiG2FIl.js} +9 -8
  70. package/dist/{DateWidget-DkFAFlc8.js.map → DateWidget-CAiG2FIl.js.map} +1 -1
  71. package/dist/DateWidget-DUYYp-Yx.cjs +2 -0
  72. package/dist/{DateWidget-Cle8FY8Q.cjs.map → DateWidget-DUYYp-Yx.cjs.map} +1 -1
  73. package/dist/DetailsDialog-D3iPUi8b.cjs +2 -0
  74. package/dist/{DetailsDialog-BcMaTfuQ.cjs.map → DetailsDialog-D3iPUi8b.cjs.map} +1 -1
  75. package/dist/{DetailsDialog-sqja4Lzq.js → DetailsDialog-q5SDzw3R.js} +72 -71
  76. package/dist/{DetailsDialog-sqja4Lzq.js.map → DetailsDialog-q5SDzw3R.js.map} +1 -1
  77. package/dist/EventListDialog-1RsuuLHZ.cjs +2 -0
  78. package/dist/EventListDialog-1RsuuLHZ.cjs.map +1 -0
  79. package/dist/{EventListDialog-DjCQAwGl.js → EventListDialog-HuEtOu3k.js} +61 -58
  80. package/dist/EventListDialog-HuEtOu3k.js.map +1 -0
  81. package/dist/FilechecksumWidget-ByVrYgzI.cjs +2 -0
  82. package/dist/{FilechecksumWidget-2ta-UvLp.cjs.map → FilechecksumWidget-ByVrYgzI.cjs.map} +1 -1
  83. package/dist/{FilechecksumWidget-DqJ_hvN4.js → FilechecksumWidget-DeW9wy5d.js} +9 -9
  84. package/dist/{FilechecksumWidget-DqJ_hvN4.js.map → FilechecksumWidget-DeW9wy5d.js.map} +1 -1
  85. package/dist/{FiledisplayWidget-CYznG_tf.js → FiledisplayWidget-C_zPFu2E.js} +7 -6
  86. package/dist/{FiledisplayWidget-CYznG_tf.js.map → FiledisplayWidget-C_zPFu2E.js.map} +1 -1
  87. package/dist/FiledisplayWidget-hYmg981k.cjs +2 -0
  88. package/dist/{FiledisplayWidget-BUKXIQir.cjs.map → FiledisplayWidget-hYmg981k.cjs.map} +1 -1
  89. package/dist/{FormatvalueWidget-BpFXnA_U.cjs → FormatvalueWidget-7VD_kwxB.cjs} +2 -2
  90. package/dist/{FormatvalueWidget-BpFXnA_U.cjs.map → FormatvalueWidget-7VD_kwxB.cjs.map} +1 -1
  91. package/dist/{FormatvalueWidget-BnVu4YGx.js → FormatvalueWidget-BrvPWwfN.js} +3 -3
  92. package/dist/{FormatvalueWidget-BnVu4YGx.js.map → FormatvalueWidget-BrvPWwfN.js.map} +1 -1
  93. package/dist/{Graph-CUFzx8Ti.js → Graph-BCvaO4yI.js} +45 -38
  94. package/dist/Graph-BCvaO4yI.js.map +1 -0
  95. package/dist/Graph-BUqdz6gu.cjs +2 -0
  96. package/dist/Graph-BUqdz6gu.cjs.map +1 -0
  97. package/dist/GraphWidget-BdP0xM_P.cjs +2 -0
  98. package/dist/{GraphWidget-BvCQHVxQ.cjs.map → GraphWidget-BdP0xM_P.cjs.map} +1 -1
  99. package/dist/{GraphWidget-DO5XbOGy.js → GraphWidget-QS-VJoes.js} +26 -31
  100. package/dist/{GraphWidget-DO5XbOGy.js.map → GraphWidget-QS-VJoes.js.map} +1 -1
  101. package/dist/{HorizontalWidget-BBQE-dP-.cjs → HorizontalWidget-B9j7DG2Q.cjs} +2 -2
  102. package/dist/{HorizontalWidget-BBQE-dP-.cjs.map → HorizontalWidget-B9j7DG2Q.cjs.map} +1 -1
  103. package/dist/{HorizontalWidget-BA9PiP3d.js → HorizontalWidget-cFSsdChw.js} +2 -2
  104. package/dist/{HorizontalWidget-BA9PiP3d.js.map → HorizontalWidget-cFSsdChw.js.map} +1 -1
  105. package/dist/{HorizontalboxWidget-CX7J8RdA.cjs → HorizontalboxWidget-C3zHRO9h.cjs} +2 -2
  106. package/dist/{HorizontalboxWidget-CX7J8RdA.cjs.map → HorizontalboxWidget-C3zHRO9h.cjs.map} +1 -1
  107. package/dist/{HorizontalboxWidget-B-7HOqgl.js → HorizontalboxWidget-CKA7rLGd.js} +5 -5
  108. package/dist/{HorizontalboxWidget-B-7HOqgl.js.map → HorizontalboxWidget-CKA7rLGd.js.map} +1 -1
  109. package/dist/{HorizontallineWidget-D-o9MGo0.js → HorizontallineWidget-BqbLK0zc.js} +2 -2
  110. package/dist/{HorizontallineWidget-D-o9MGo0.js.map → HorizontallineWidget-BqbLK0zc.js.map} +1 -1
  111. package/dist/{HorizontallineWidget-odTFoB8u.cjs → HorizontallineWidget-GGNFIo1N.cjs} +2 -2
  112. package/dist/{HorizontallineWidget-odTFoB8u.cjs.map → HorizontallineWidget-GGNFIo1N.cjs.map} +1 -1
  113. package/dist/{IframeWidget-BzOka-fX.js → IframeWidget-CITX8Es1.js} +2 -2
  114. package/dist/{IframeWidget-BzOka-fX.js.map → IframeWidget-CITX8Es1.js.map} +1 -1
  115. package/dist/{IframeWidget-cTHu_Rmp.cjs → IframeWidget-lK6Cw1Pp.cjs} +2 -2
  116. package/dist/{IframeWidget-cTHu_Rmp.cjs.map → IframeWidget-lK6Cw1Pp.cjs.map} +1 -1
  117. package/dist/ImageLoader-CkTaGfCC.cjs +2 -0
  118. package/dist/{ImageLoader-BTEOukIw.cjs.map → ImageLoader-CkTaGfCC.cjs.map} +1 -1
  119. package/dist/{ImageLoader-CstmWFM4.js → ImageLoader-DQV_11Vd.js} +2 -2
  120. package/dist/{ImageLoader-CstmWFM4.js.map → ImageLoader-DQV_11Vd.js.map} +1 -1
  121. package/dist/{ImageviewerWidget-BA9uOM1q.js → ImageviewerWidget-BIsSA7KD.js} +2 -2
  122. package/dist/{ImageviewerWidget-BA9uOM1q.js.map → ImageviewerWidget-BIsSA7KD.js.map} +1 -1
  123. package/dist/{ImageviewerWidget-CLAFwmaB.cjs → ImageviewerWidget-CvbsaXCd.cjs} +2 -2
  124. package/dist/{ImageviewerWidget-CLAFwmaB.cjs.map → ImageviewerWidget-CvbsaXCd.cjs.map} +1 -1
  125. package/dist/InterfacesTab-Cfvks-ms.cjs +2 -0
  126. package/dist/{InterfacesTab-CM0CGFVS.cjs.map → InterfacesTab-Cfvks-ms.cjs.map} +1 -1
  127. package/dist/{InterfacesTab-C3mDLkGC.js → InterfacesTab-twne_Qp4.js} +11 -10
  128. package/dist/{InterfacesTab-C3mDLkGC.js.map → InterfacesTab-twne_Qp4.js.map} +1 -1
  129. package/dist/{LabelWidget-CMmVq1mx.cjs → LabelWidget-BFWd6Vgh.cjs} +2 -2
  130. package/dist/{LabelWidget-CMmVq1mx.cjs.map → LabelWidget-BFWd6Vgh.cjs.map} +1 -1
  131. package/dist/{LabelWidget-Da2howZF.js → LabelWidget-FQI-cH_A.js} +2 -2
  132. package/dist/{LabelWidget-Da2howZF.js.map → LabelWidget-FQI-cH_A.js.map} +1 -1
  133. package/dist/{LabelledWidget-CAqH0oWs.cjs → LabelledWidget-AZifUp-f.cjs} +2 -2
  134. package/dist/{LabelledWidget-CAqH0oWs.cjs.map → LabelledWidget-AZifUp-f.cjs.map} +1 -1
  135. package/dist/{LabelledWidget-BH8y3OXT.js → LabelledWidget-KGXtQ4Zb.js} +4 -4
  136. package/dist/{LabelledWidget-BH8y3OXT.js.map → LabelledWidget-KGXtQ4Zb.js.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-Brl24F4c.js → LabelprogressbarWidget-72WyzD_Q.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-Brl24F4c.js.map → LabelprogressbarWidget-72WyzD_Q.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-BxLGmW9T.cjs → LabelprogressbarWidget-Bd2E9G7V.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-BxLGmW9T.cjs.map → LabelprogressbarWidget-Bd2E9G7V.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-D22MB7-4.js → LabelsparklineWidget-DtWNf4mK.js} +4 -4
  142. package/dist/{LabelsparklineWidget-D22MB7-4.js.map → LabelsparklineWidget-DtWNf4mK.js.map} +1 -1
  143. package/dist/{LabelsparklineWidget-BUXOpBeB.cjs → LabelsparklineWidget-__3CB0T-.cjs} +2 -2
  144. package/dist/{LabelsparklineWidget-BUXOpBeB.cjs.map → LabelsparklineWidget-__3CB0T-.cjs.map} +1 -1
  145. package/dist/LabelvalueWidget-B681T0uR.cjs +2 -0
  146. package/dist/LabelvalueWidget-B681T0uR.cjs.map +1 -0
  147. package/dist/{LabelvalueWidget-_1JPbK-K.js → LabelvalueWidget-D_JLdY7r.js} +11 -12
  148. package/dist/LabelvalueWidget-D_JLdY7r.js.map +1 -0
  149. package/dist/LabelvaluedescWidget-BppM5vGp.js +64 -0
  150. package/dist/LabelvaluedescWidget-BppM5vGp.js.map +1 -0
  151. package/dist/LabelvaluedescWidget-CiGIPdMG.cjs +2 -0
  152. package/dist/LabelvaluedescWidget-CiGIPdMG.cjs.map +1 -0
  153. package/dist/{LabelvaluelimitsbarWidget-C9PlEhWo.js → LabelvaluelimitsbarWidget-B69ogLif.js} +4 -4
  154. package/dist/{LabelvaluelimitsbarWidget-C9PlEhWo.js.map → LabelvaluelimitsbarWidget-B69ogLif.js.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-BGag8V6k.cjs → LabelvaluelimitsbarWidget-Cmb4kGcv.cjs} +2 -2
  156. package/dist/{LabelvaluelimitsbarWidget-BGag8V6k.cjs.map → LabelvaluelimitsbarWidget-Cmb4kGcv.cjs.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs → LabelvaluelimitscolumnWidget-BXdmh9So.cjs} +2 -2
  158. package/dist/{LabelvaluelimitscolumnWidget-SHVJIgGJ.cjs.map → LabelvaluelimitscolumnWidget-BXdmh9So.cjs.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-Cay6AhoZ.js → LabelvaluelimitscolumnWidget-DPYwFdgq.js} +5 -5
  160. package/dist/{LabelvaluelimitscolumnWidget-Cay6AhoZ.js.map → LabelvaluelimitscolumnWidget-DPYwFdgq.js.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-s_8IgY-C.js → LabelvaluerangebarWidget-BT0BcOoK.js} +4 -4
  162. package/dist/{LabelvaluerangebarWidget-s_8IgY-C.js.map → LabelvaluerangebarWidget-BT0BcOoK.js.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-Dbibpimv.cjs → LabelvaluerangebarWidget-cavgscEk.cjs} +2 -2
  164. package/dist/{LabelvaluerangebarWidget-Dbibpimv.cjs.map → LabelvaluerangebarWidget-cavgscEk.cjs.map} +1 -1
  165. package/dist/{Layout-DwWEea79.cjs → Layout-D1ukrMwN.cjs} +2 -2
  166. package/dist/{Layout-DwWEea79.cjs.map → Layout-D1ukrMwN.cjs.map} +1 -1
  167. package/dist/{Layout-D7RGn0Fe.js → Layout-d-vb0okO.js} +2 -2
  168. package/dist/{Layout-D7RGn0Fe.js.map → Layout-d-vb0okO.js.map} +1 -1
  169. package/dist/{LedWidget-DgMtvsiv.js → LedWidget-Cmr6eVG2.js} +7 -6
  170. package/dist/{LedWidget-DgMtvsiv.js.map → LedWidget-Cmr6eVG2.js.map} +1 -1
  171. package/dist/LedWidget-Dwrm6hTX.cjs +2 -0
  172. package/dist/{LedWidget-BaiKDozd.cjs.map → LedWidget-Dwrm6hTX.cjs.map} +1 -1
  173. package/dist/{LimitsBar-BFM38vQL.cjs → LimitsBar-Dz1lZ_81.cjs} +2 -2
  174. package/dist/{LimitsBar-BFM38vQL.cjs.map → LimitsBar-Dz1lZ_81.cjs.map} +1 -1
  175. package/dist/{LimitsBar-CcOaAw0C.js → LimitsBar-qMynDHYT.js} +2 -2
  176. package/dist/{LimitsBar-CcOaAw0C.js.map → LimitsBar-qMynDHYT.js.map} +1 -1
  177. package/dist/{LimitsbarWidget-DpmJn1Lo.js → LimitsbarWidget-CMvcwa-m.js} +3 -3
  178. package/dist/{LimitsbarWidget-DpmJn1Lo.js.map → LimitsbarWidget-CMvcwa-m.js.map} +1 -1
  179. package/dist/{LimitsbarWidget-ConP3qI5.cjs → LimitsbarWidget-vIP9AUk4.cjs} +2 -2
  180. package/dist/{LimitsbarWidget-ConP3qI5.cjs.map → LimitsbarWidget-vIP9AUk4.cjs.map} +1 -1
  181. package/dist/LimitscolorWidget-CPuknJPk.cjs +2 -0
  182. package/dist/{LimitscolorWidget-veWQ4NXl.cjs.map → LimitscolorWidget-CPuknJPk.cjs.map} +1 -1
  183. package/dist/{LimitscolorWidget-BMXiEaDm.js → LimitscolorWidget-CZ9wMtcI.js} +7 -6
  184. package/dist/{LimitscolorWidget-BMXiEaDm.js.map → LimitscolorWidget-CZ9wMtcI.js.map} +1 -1
  185. package/dist/{LimitscolumnWidget-CJABAor8.cjs → LimitscolumnWidget-r-nOETY5.cjs} +2 -2
  186. package/dist/{LimitscolumnWidget-CJABAor8.cjs.map → LimitscolumnWidget-r-nOETY5.cjs.map} +1 -1
  187. package/dist/{LimitscolumnWidget-ufFMz6R-.js → LimitscolumnWidget-r84KJGU-.js} +2 -2
  188. package/dist/{LimitscolumnWidget-ufFMz6R-.js.map → LimitscolumnWidget-r84KJGU-.js.map} +1 -1
  189. package/dist/LinegraphWidget-BMUI8q6Q.cjs +2 -0
  190. package/dist/{LinegraphWidget-3E8L5CvM.cjs.map → LinegraphWidget-BMUI8q6Q.cjs.map} +1 -1
  191. package/dist/{LinegraphWidget-BC2wVOny.js → LinegraphWidget-COGBGOjF.js} +10 -9
  192. package/dist/{LinegraphWidget-BC2wVOny.js.map → LinegraphWidget-COGBGOjF.js.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-DICgiNQo.cjs → MatrixbycolumnsWidget-BoNbbrEi.cjs} +2 -2
  194. package/dist/{MatrixbycolumnsWidget-DICgiNQo.cjs.map → MatrixbycolumnsWidget-BoNbbrEi.cjs.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-DfUAeBnO.js → MatrixbycolumnsWidget-Dx2iz0YF.js} +3 -3
  196. package/dist/{MatrixbycolumnsWidget-DfUAeBnO.js.map → MatrixbycolumnsWidget-Dx2iz0YF.js.map} +1 -1
  197. package/dist/{MicroservicesTab-B0SZVty3.js → MicroservicesTab-Bhsf1soi.js} +12 -11
  198. package/dist/{MicroservicesTab-B0SZVty3.js.map → MicroservicesTab-Bhsf1soi.js.map} +1 -1
  199. package/dist/{MicroservicesTab-snXJDoYq.cjs → MicroservicesTab-Cuj56g8-.cjs} +3 -3
  200. package/dist/{MicroservicesTab-snXJDoYq.cjs.map → MicroservicesTab-Cuj56g8-.cjs.map} +1 -1
  201. package/dist/{OpenC3TimePicker-DpkbfbgC.js → OpenC3TimePicker-C3vCnk72.js} +20 -24
  202. package/dist/OpenC3TimePicker-C3vCnk72.js.map +1 -0
  203. package/dist/OpenC3TimePicker-CVUV2cK4.cjs +2 -0
  204. package/dist/OpenC3TimePicker-CVUV2cK4.cjs.map +1 -0
  205. package/dist/Openc3Screen-Bi6NOEQM.cjs +6 -0
  206. package/dist/{Openc3Screen-D1RLlBgQ.cjs.map → Openc3Screen-Bi6NOEQM.cjs.map} +1 -1
  207. package/dist/{Openc3Screen-DbUvz-3B.js → Openc3Screen-DkhDra2o.js} +67 -66
  208. package/dist/{Openc3Screen-DbUvz-3B.js.map → Openc3Screen-DkhDra2o.js.map} +1 -1
  209. package/dist/{OutputDialog-Ds-GdGyI.js → OutputDialog-D0ifesTw.js} +11 -10
  210. package/dist/{OutputDialog-Ds-GdGyI.js.map → OutputDialog-D0ifesTw.js.map} +1 -1
  211. package/dist/OutputDialog-DR9cJem2.cjs +2 -0
  212. package/dist/{OutputDialog-ChPCaQAE.cjs.map → OutputDialog-DR9cJem2.cjs.map} +1 -1
  213. package/dist/PackagesTab-B4sG5tHo.cjs +2 -0
  214. package/dist/{PackagesTab-BgQsbXRo.cjs.map → PackagesTab-B4sG5tHo.cjs.map} +1 -1
  215. package/dist/{PackagesTab-CWplBp_I.js → PackagesTab-Bb221-aM.js} +19 -18
  216. package/dist/{PackagesTab-CWplBp_I.js.map → PackagesTab-Bb221-aM.js.map} +1 -1
  217. package/dist/PluginsTab-Cbi_R9jL.cjs +6 -0
  218. package/dist/PluginsTab-Cbi_R9jL.cjs.map +1 -0
  219. package/dist/{PluginsTab-BiiL622n.js → PluginsTab-nWngR5kY.js} +275 -234
  220. package/dist/PluginsTab-nWngR5kY.js.map +1 -0
  221. package/dist/{ProgressbarWidget-D3ndYnq_.js → ProgressbarWidget-DPbAVjdC.js} +2 -2
  222. package/dist/{ProgressbarWidget-D3ndYnq_.js.map → ProgressbarWidget-DPbAVjdC.js.map} +1 -1
  223. package/dist/{ProgressbarWidget-DludJVUf.cjs → ProgressbarWidget-cPr3o6Nv.cjs} +2 -2
  224. package/dist/{ProgressbarWidget-DludJVUf.cjs.map → ProgressbarWidget-cPr3o6Nv.cjs.map} +1 -1
  225. package/dist/{RadiobuttonWidget-DX4h94p1.cjs → RadiobuttonWidget-BQZkRFa-.cjs} +2 -2
  226. package/dist/{RadiobuttonWidget-DX4h94p1.cjs.map → RadiobuttonWidget-BQZkRFa-.cjs.map} +1 -1
  227. package/dist/{RadiobuttonWidget-CP0S9nWW.js → RadiobuttonWidget-iXI9yCDk.js} +2 -2
  228. package/dist/{RadiobuttonWidget-CP0S9nWW.js.map → RadiobuttonWidget-iXI9yCDk.js.map} +1 -1
  229. package/dist/{RadiogroupWidget-BXHfA21T.js → RadiogroupWidget-CMM_p1eA.js} +2 -2
  230. package/dist/{RadiogroupWidget-BXHfA21T.js.map → RadiogroupWidget-CMM_p1eA.js.map} +1 -1
  231. package/dist/{RadiogroupWidget-NqjBNUH6.cjs → RadiogroupWidget-D2iIQ5RU.cjs} +2 -2
  232. package/dist/{RadiogroupWidget-NqjBNUH6.cjs.map → RadiogroupWidget-D2iIQ5RU.cjs.map} +1 -1
  233. package/dist/{RangebarWidget-Bv2DqkPo.js → RangebarWidget-DJXGUHAc.js} +2 -2
  234. package/dist/{RangebarWidget-Bv2DqkPo.js.map → RangebarWidget-DJXGUHAc.js.map} +1 -1
  235. package/dist/{RangebarWidget-CRq2zpvw.cjs → RangebarWidget-DsphX-jB.cjs} +2 -2
  236. package/dist/{RangebarWidget-CRq2zpvw.cjs.map → RangebarWidget-DsphX-jB.cjs.map} +1 -1
  237. package/dist/RedisTab-BZtfqEcP.js +186 -0
  238. package/dist/RedisTab-BZtfqEcP.js.map +1 -0
  239. package/dist/RedisTab-KhsG2CCO.cjs +2 -0
  240. package/dist/RedisTab-KhsG2CCO.cjs.map +1 -0
  241. package/dist/{RollupWidget-o_huYU0x.js → RollupWidget-BbWLSsTT.js} +2 -2
  242. package/dist/{RollupWidget-o_huYU0x.js.map → RollupWidget-BbWLSsTT.js.map} +1 -1
  243. package/dist/{RollupWidget-B7_Q_boi.cjs → RollupWidget-w-SF3f-X.cjs} +2 -2
  244. package/dist/{RollupWidget-B7_Q_boi.cjs.map → RollupWidget-w-SF3f-X.cjs.map} +1 -1
  245. package/dist/{RoutersTab-DN17iBBi.js → RoutersTab-CLKIJ5cm.js} +13 -12
  246. package/dist/{RoutersTab-DN17iBBi.js.map → RoutersTab-CLKIJ5cm.js.map} +1 -1
  247. package/dist/RoutersTab-DUvOfNhU.cjs +2 -0
  248. package/dist/{RoutersTab-CAbnSGHy.cjs.map → RoutersTab-DUvOfNhU.cjs.map} +1 -1
  249. package/dist/{ScriptChooser-CzzUJ1Zj.js → ScriptChooser-BxTJKTVu.js} +20 -19
  250. package/dist/{ScriptChooser-CzzUJ1Zj.js.map → ScriptChooser-BxTJKTVu.js.map} +1 -1
  251. package/dist/ScriptChooser-YC_FfCLd.cjs +2 -0
  252. package/dist/{ScriptChooser-CggwstfT.cjs.map → ScriptChooser-YC_FfCLd.cjs.map} +1 -1
  253. package/dist/{ScrollwindowWidget-kS5QjP-v.cjs → ScrollwindowWidget-D1mtHFMa.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-kS5QjP-v.cjs.map → ScrollwindowWidget-D1mtHFMa.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-DdjaML6D.js → ScrollwindowWidget-Dxhp7yKn.js} +2 -2
  256. package/dist/{ScrollwindowWidget-DdjaML6D.js.map → ScrollwindowWidget-Dxhp7yKn.js.map} +1 -1
  257. package/dist/SecretsTab-B7oZb354.cjs +2 -0
  258. package/dist/{SecretsTab-Cn6-o85L.cjs.map → SecretsTab-B7oZb354.cjs.map} +1 -1
  259. package/dist/{SecretsTab-Cu3sx2OA.js → SecretsTab-BoBmTh63.js} +5 -5
  260. package/dist/{SecretsTab-Cu3sx2OA.js.map → SecretsTab-BoBmTh63.js.map} +1 -1
  261. package/dist/SettingsTab-2EMyS-3_.cjs +3 -0
  262. package/dist/{SettingsTab-C6zIL2D6.cjs.map → SettingsTab-2EMyS-3_.cjs.map} +1 -1
  263. package/dist/{SettingsTab-B_vvSLvt.js → SettingsTab-BL7gkaO9.js} +7 -6
  264. package/dist/{SettingsTab-B_vvSLvt.js.map → SettingsTab-BL7gkaO9.js.map} +1 -1
  265. package/dist/{SignalWidget-Dd54y28I.js → SignalWidget-65q0tiuo.js} +2 -2
  266. package/dist/{SignalWidget-Dd54y28I.js.map → SignalWidget-65q0tiuo.js.map} +1 -1
  267. package/dist/{SignalWidget-BagcB92r.cjs → SignalWidget-Cld2lVyc.cjs} +2 -2
  268. package/dist/{SignalWidget-BagcB92r.cjs.map → SignalWidget-Cld2lVyc.cjs.map} +1 -1
  269. package/dist/{SimpleTextDialog-DZv9n_kJ.js → SimpleTextDialog-ChmFtdVw.js} +2 -2
  270. package/dist/{SimpleTextDialog-DZv9n_kJ.js.map → SimpleTextDialog-ChmFtdVw.js.map} +1 -1
  271. package/dist/{SimpleTextDialog-BJ50TbWh.cjs → SimpleTextDialog-DVlqwD8O.cjs} +2 -2
  272. package/dist/{SimpleTextDialog-BJ50TbWh.cjs.map → SimpleTextDialog-DVlqwD8O.cjs.map} +1 -1
  273. package/dist/{SpacerWidget-GPFYtIG1.js → SpacerWidget-DFzbojmX.js} +2 -2
  274. package/dist/{SpacerWidget-GPFYtIG1.js.map → SpacerWidget-DFzbojmX.js.map} +1 -1
  275. package/dist/{SpacerWidget-DWjBns9r.cjs → SpacerWidget-DV0-ZfEm.cjs} +2 -2
  276. package/dist/{SpacerWidget-DWjBns9r.cjs.map → SpacerWidget-DV0-ZfEm.cjs.map} +1 -1
  277. package/dist/SparklineWidget-B1RfTxEp.cjs +2 -0
  278. package/dist/{SparklineWidget-xdPgolp3.cjs.map → SparklineWidget-B1RfTxEp.cjs.map} +1 -1
  279. package/dist/{SparklineWidget-f11nrlLS.js → SparklineWidget-Bu4I8zY0.js} +10 -9
  280. package/dist/{SparklineWidget-f11nrlLS.js.map → SparklineWidget-Bu4I8zY0.js.map} +1 -1
  281. package/dist/{TabbookWidget-DeaC27yC.js → TabbookWidget-CELMWyx7.js} +2 -2
  282. package/dist/{TabbookWidget-DeaC27yC.js.map → TabbookWidget-CELMWyx7.js.map} +1 -1
  283. package/dist/{TabbookWidget-CUIYWHRH.cjs → TabbookWidget-CLpx5e5Q.cjs} +2 -2
  284. package/dist/{TabbookWidget-CUIYWHRH.cjs.map → TabbookWidget-CLpx5e5Q.cjs.map} +1 -1
  285. package/dist/{TargetPacketItemChooser-BoBqvs3T.js → TargetPacketItemChooser-BOdVLVbe.js} +177 -153
  286. package/dist/TargetPacketItemChooser-BOdVLVbe.js.map +1 -0
  287. package/dist/TargetPacketItemChooser-xoRA3b9K.cjs +2 -0
  288. package/dist/TargetPacketItemChooser-xoRA3b9K.cjs.map +1 -0
  289. package/dist/{TargetsTab-CjVaBN9O.js → TargetsTab-BJZEtKY4.js} +11 -10
  290. package/dist/{TargetsTab-CjVaBN9O.js.map → TargetsTab-BJZEtKY4.js.map} +1 -1
  291. package/dist/TargetsTab-Dkp4VoK6.cjs +2 -0
  292. package/dist/{TargetsTab-BMcWjrZ_.cjs.map → TargetsTab-Dkp4VoK6.cjs.map} +1 -1
  293. package/dist/{TextboxWidget-tL41zWUX.js → TextboxWidget-DYsqXntS.js} +7 -6
  294. package/dist/{TextboxWidget-tL41zWUX.js.map → TextboxWidget-DYsqXntS.js.map} +1 -1
  295. package/dist/TextboxWidget-DuNmhz89.cjs +2 -0
  296. package/dist/{TextboxWidget-CXA9rR02.cjs.map → TextboxWidget-DuNmhz89.cjs.map} +1 -1
  297. package/dist/{TextfieldWidget-D1qj14Qi.js → TextfieldWidget-BIUgV9Q4.js} +2 -2
  298. package/dist/{TextfieldWidget-D1qj14Qi.js.map → TextfieldWidget-BIUgV9Q4.js.map} +1 -1
  299. package/dist/{TextfieldWidget-D-H2fOZG.cjs → TextfieldWidget-BlW-rSVv.cjs} +2 -2
  300. package/dist/{TextfieldWidget-D-H2fOZG.cjs.map → TextfieldWidget-BlW-rSVv.cjs.map} +1 -1
  301. package/dist/{TimeWidget-CSVGNong.js → TimeWidget-BPXcY1Wy.js} +7 -6
  302. package/dist/{TimeWidget-CSVGNong.js.map → TimeWidget-BPXcY1Wy.js.map} +1 -1
  303. package/dist/TimeWidget-BddmbQgt.cjs +2 -0
  304. package/dist/{TimeWidget-CGk8Ze_I.cjs.map → TimeWidget-BddmbQgt.cjs.map} +1 -1
  305. package/dist/{TitleWidget-ClhWhUf3.cjs → TitleWidget-CPqwZKUx.cjs} +2 -2
  306. package/dist/{TitleWidget-ClhWhUf3.cjs.map → TitleWidget-CPqwZKUx.cjs.map} +1 -1
  307. package/dist/{TitleWidget-CLx-tuYT.js → TitleWidget-DJ9mHRLE.js} +2 -2
  308. package/dist/{TitleWidget-CLx-tuYT.js.map → TitleWidget-DJ9mHRLE.js.map} +1 -1
  309. package/dist/ToolsTab-B4CURni4.cjs +2 -0
  310. package/dist/{ToolsTab-DTHap-Nq.cjs.map → ToolsTab-B4CURni4.cjs.map} +1 -1
  311. package/dist/{ToolsTab-lBB_KhmA.js → ToolsTab-VSCWDywf.js} +62 -61
  312. package/dist/{ToolsTab-lBB_KhmA.js.map → ToolsTab-VSCWDywf.js.map} +1 -1
  313. package/dist/{TopBar-C810rP_B.js → TopBar-B4oz2FsN.js} +2 -2
  314. package/dist/{TopBar-C810rP_B.js.map → TopBar-B4oz2FsN.js.map} +1 -1
  315. package/dist/{TopBar-Ctzx7o2k.cjs → TopBar-lcB6jpd_.cjs} +2 -2
  316. package/dist/{TopBar-Ctzx7o2k.cjs.map → TopBar-lcB6jpd_.cjs.map} +1 -1
  317. package/dist/TsdbTab-Cv8GjpoJ.js +1164 -0
  318. package/dist/TsdbTab-Cv8GjpoJ.js.map +1 -0
  319. package/dist/TsdbTab-OOO451j0.cjs +5 -0
  320. package/dist/TsdbTab-OOO451j0.cjs.map +1 -0
  321. package/dist/{UpgradeToEnterpriseDialog-D_S574Zb.js → UpgradeToEnterpriseDialog-BUuXsGPY.js} +2 -2
  322. package/dist/{UpgradeToEnterpriseDialog-D_S574Zb.js.map → UpgradeToEnterpriseDialog-BUuXsGPY.js.map} +1 -1
  323. package/dist/{UpgradeToEnterpriseDialog-XJb6gVCY.cjs → UpgradeToEnterpriseDialog-DHLK6v6f.cjs} +2 -2
  324. package/dist/{UpgradeToEnterpriseDialog-XJb6gVCY.cjs.map → UpgradeToEnterpriseDialog-DHLK6v6f.cjs.map} +1 -1
  325. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs +1477 -0
  326. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs.map +1 -0
  327. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js +26306 -0
  328. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js.map +1 -0
  329. package/dist/VWidget-B6WHN0_z.cjs +2 -0
  330. package/dist/VWidget-B6WHN0_z.cjs.map +1 -0
  331. package/dist/{VWidget-CxnaMF0w.js → VWidget-BDy0211S.js} +17 -20
  332. package/dist/VWidget-BDy0211S.js.map +1 -0
  333. package/dist/{ValueWidget-BYgpXfDo.js → ValueWidget-DzOSy7lp.js} +7 -6
  334. package/dist/{ValueWidget-BYgpXfDo.js.map → ValueWidget-DzOSy7lp.js.map} +1 -1
  335. package/dist/ValueWidget-QWzoEFXc.cjs +2 -0
  336. package/dist/{ValueWidget-Bws1qOEI.cjs.map → ValueWidget-QWzoEFXc.cjs.map} +1 -1
  337. package/dist/{ValuelimitsbarWidget-BoZSJvuq.cjs → ValuelimitsbarWidget-5AkAljK-.cjs} +2 -2
  338. package/dist/{ValuelimitsbarWidget-BoZSJvuq.cjs.map → ValuelimitsbarWidget-5AkAljK-.cjs.map} +1 -1
  339. package/dist/{ValuelimitsbarWidget-Dc9-VNZ3.js → ValuelimitsbarWidget-D5dSlW6D.js} +4 -4
  340. package/dist/{ValuelimitsbarWidget-Dc9-VNZ3.js.map → ValuelimitsbarWidget-D5dSlW6D.js.map} +1 -1
  341. package/dist/{ValuelimitscolumnWidget-b7W8K3mR.js → ValuelimitscolumnWidget-7DXCsVW_.js} +4 -4
  342. package/dist/{ValuelimitscolumnWidget-b7W8K3mR.js.map → ValuelimitscolumnWidget-7DXCsVW_.js.map} +1 -1
  343. package/dist/{ValuelimitscolumnWidget-ta9i_tiy.cjs → ValuelimitscolumnWidget-zNx9i1v7.cjs} +2 -2
  344. package/dist/{ValuelimitscolumnWidget-ta9i_tiy.cjs.map → ValuelimitscolumnWidget-zNx9i1v7.cjs.map} +1 -1
  345. package/dist/{ValuerangebarWidget-DmhczZQb.js → ValuerangebarWidget-BWjnpmyy.js} +4 -4
  346. package/dist/{ValuerangebarWidget-DmhczZQb.js.map → ValuerangebarWidget-BWjnpmyy.js.map} +1 -1
  347. package/dist/{ValuerangebarWidget-Ips-beG6.cjs → ValuerangebarWidget-EsdIz4oP.cjs} +2 -2
  348. package/dist/{ValuerangebarWidget-Ips-beG6.cjs.map → ValuerangebarWidget-EsdIz4oP.cjs.map} +1 -1
  349. package/dist/{VerticalWidget-BvsVh0Ob.js → VerticalWidget-BOtXAhxt.js} +2 -2
  350. package/dist/{VerticalWidget-BvsVh0Ob.js.map → VerticalWidget-BOtXAhxt.js.map} +1 -1
  351. package/dist/{VerticalWidget-BVt7QPjO.cjs → VerticalWidget-DVskS6fx.cjs} +2 -2
  352. package/dist/{VerticalWidget-BVt7QPjO.cjs.map → VerticalWidget-DVskS6fx.cjs.map} +1 -1
  353. package/dist/{VerticalboxWidget-CNoXT3YW.cjs → VerticalboxWidget-Bu4oHN2K.cjs} +2 -2
  354. package/dist/{VerticalboxWidget-CNoXT3YW.cjs.map → VerticalboxWidget-Bu4oHN2K.cjs.map} +1 -1
  355. package/dist/{VerticalboxWidget-ClTCDCQN.js → VerticalboxWidget-RAsXfGdI.js} +5 -5
  356. package/dist/{VerticalboxWidget-ClTCDCQN.js.map → VerticalboxWidget-RAsXfGdI.js.map} +1 -1
  357. package/dist/{Widget-DRhVdCLP.js → Widget-BDsgRxuV.js} +37 -14
  358. package/dist/{Widget-DRhVdCLP.js.map → Widget-BDsgRxuV.js.map} +1 -1
  359. package/dist/Widget-Ddu_kuTL.cjs +2 -0
  360. package/dist/{Widget-CB_BtOFw.cjs.map → Widget-Ddu_kuTL.cjs.map} +1 -1
  361. package/dist/{addMonths-Zggd7y6j.js → addMonths-BiRF9eDT.js} +2 -2
  362. package/dist/{addMonths-Zggd7y6j.js.map → addMonths-BiRF9eDT.js.map} +1 -1
  363. package/dist/{addMonths-BhOW2mOW.cjs → addMonths-Ds2ObZwt.cjs} +2 -2
  364. package/dist/{addMonths-BhOW2mOW.cjs.map → addMonths-Ds2ObZwt.cjs.map} +1 -1
  365. package/dist/components.cjs +2 -2
  366. package/dist/components.js +28 -28
  367. package/dist/format-D2pYLAIF.js +5896 -0
  368. package/dist/format-D2pYLAIF.js.map +1 -0
  369. package/dist/format-qjtPogBb.cjs +13 -0
  370. package/dist/format-qjtPogBb.cjs.map +1 -0
  371. package/dist/getDefaultOptions-DSMQojSA.cjs +2 -0
  372. package/dist/{getDefaultOptions-Cek5kGzE.cjs.map → getDefaultOptions-DSMQojSA.cjs.map} +1 -1
  373. package/dist/getDefaultOptions-v3X-F5jM.js +8 -0
  374. package/dist/{getDefaultOptions-xjgn1r-_.js.map → getDefaultOptions-v3X-F5jM.js.map} +1 -1
  375. package/dist/{index-GYAZJDxn.js → index-BJCQaZ7q.js} +63 -62
  376. package/dist/{index-GYAZJDxn.js.map → index-BJCQaZ7q.js.map} +1 -1
  377. package/dist/{index-CJcL4_a4.js → index-BjcgyMLV.js} +691 -633
  378. package/dist/index-BjcgyMLV.js.map +1 -0
  379. package/dist/{index-3sXOEKCU.cjs → index-CctPeecq.cjs} +5 -5
  380. package/dist/{index-3sXOEKCU.cjs.map → index-CctPeecq.cjs.map} +1 -1
  381. package/dist/index-_a-NnvKv.cjs +10 -0
  382. package/dist/index-_a-NnvKv.cjs.map +1 -0
  383. package/dist/{parse-BKTTGw2p.js → parse-Br4M7sX4.js} +3 -3
  384. package/dist/{parse-BKTTGw2p.js.map → parse-Br4M7sX4.js.map} +1 -1
  385. package/dist/{parse-DgZTYocC.cjs → parse-D8syXcjd.cjs} +2 -2
  386. package/dist/{parse-DgZTYocC.cjs.map → parse-D8syXcjd.cjs.map} +1 -1
  387. package/dist/plugins.cjs +1 -1
  388. package/dist/plugins.cjs.map +1 -1
  389. package/dist/plugins.js +1 -1
  390. package/dist/plugins.js.map +1 -1
  391. package/dist/purify.es-CehoGjrR.cjs +3 -0
  392. package/dist/purify.es-CehoGjrR.cjs.map +1 -0
  393. package/dist/purify.es-exIQuqhb.js +596 -0
  394. package/dist/purify.es-exIQuqhb.js.map +1 -0
  395. package/dist/settings-CWvCIKI4.cjs +2 -0
  396. package/dist/{settings-B0AhztTk.cjs.map → settings-CWvCIKI4.cjs.map} +1 -1
  397. package/dist/{settings-C2auUQwX.js → settings-Dvmurty6.js} +2 -2
  398. package/dist/{settings-C2auUQwX.js.map → settings-Dvmurty6.js.map} +1 -1
  399. package/dist/settingsCache-CGgEjlw3.js +28 -0
  400. package/dist/settingsCache-CGgEjlw3.js.map +1 -0
  401. package/dist/settingsCache-Dg7OMDJK.cjs +2 -0
  402. package/dist/settingsCache-Dg7OMDJK.cjs.map +1 -0
  403. package/dist/{timeFilters-CRNRsUsb.cjs → timeFilters-BtN2a5-O.cjs} +2 -2
  404. package/dist/{timeFilters-CRNRsUsb.cjs.map → timeFilters-BtN2a5-O.cjs.map} +1 -1
  405. package/dist/{timeFilters-DTOZtBlG.js → timeFilters-C1beMtAQ.js} +3 -3
  406. package/dist/{timeFilters-DTOZtBlG.js.map → timeFilters-C1beMtAQ.js.map} +1 -1
  407. package/dist/tools/admin.cjs +1 -1
  408. package/dist/tools/admin.js +1 -1
  409. package/dist/tools/base.cjs +1 -1
  410. package/dist/tools/base.cjs.map +1 -1
  411. package/dist/tools/base.js +51 -51
  412. package/dist/tools/calendar.cjs +1 -1
  413. package/dist/tools/calendar.js +1 -1
  414. package/dist/tools/scriptrunner.cjs +8 -8
  415. package/dist/tools/scriptrunner.cjs.map +1 -1
  416. package/dist/tools/scriptrunner.js +17 -17
  417. package/dist/tools/scriptrunner.js.map +1 -1
  418. package/dist/util.cjs +1 -1
  419. package/dist/util.js +11 -7
  420. package/dist/util.js.map +1 -1
  421. package/dist/vue-common.css +1 -1
  422. package/dist/widgets.cjs +1 -1
  423. package/dist/widgets.js +64 -64
  424. package/package.json +7 -7
  425. package/dist/ArrayplotWidget-BHD-TGQO.cjs +0 -2
  426. package/dist/BarColumn-DmjMnw5l.js.map +0 -1
  427. package/dist/BarColumn-Ym4P8YHC.cjs +0 -2
  428. package/dist/BarColumn-Ym4P8YHC.cjs.map +0 -1
  429. package/dist/ButtonWidget-70hNWuEy.cjs +0 -3
  430. package/dist/ButtonWidget-70hNWuEy.cjs.map +0 -1
  431. package/dist/ButtonWidget-DZ4VCNWU.js.map +0 -1
  432. package/dist/ClassificationBanners-DjGCuH-4.cjs +0 -2
  433. package/dist/CriticalCmdDialog-eytxCQto.cjs +0 -2
  434. package/dist/DateWidget-Cle8FY8Q.cjs +0 -2
  435. package/dist/DetailsDialog-BcMaTfuQ.cjs +0 -2
  436. package/dist/EventListDialog-DjCQAwGl.js.map +0 -1
  437. package/dist/EventListDialog-EmC7YW60.cjs +0 -2
  438. package/dist/EventListDialog-EmC7YW60.cjs.map +0 -1
  439. package/dist/FilechecksumWidget-2ta-UvLp.cjs +0 -2
  440. package/dist/FiledisplayWidget-BUKXIQir.cjs +0 -2
  441. package/dist/Graph-CUFzx8Ti.js.map +0 -1
  442. package/dist/Graph-qxF4224c.cjs +0 -2
  443. package/dist/Graph-qxF4224c.cjs.map +0 -1
  444. package/dist/GraphWidget-BvCQHVxQ.cjs +0 -2
  445. package/dist/ImageLoader-BTEOukIw.cjs +0 -2
  446. package/dist/InterfacesTab-CM0CGFVS.cjs +0 -2
  447. package/dist/LabelvalueWidget-_1JPbK-K.js.map +0 -1
  448. package/dist/LabelvalueWidget-bYqqgIGE.cjs +0 -2
  449. package/dist/LabelvalueWidget-bYqqgIGE.cjs.map +0 -1
  450. package/dist/LabelvaluedescWidget-B2dFZoDE.cjs +0 -2
  451. package/dist/LabelvaluedescWidget-B2dFZoDE.cjs.map +0 -1
  452. package/dist/LabelvaluedescWidget-BgduSJJb.js +0 -59
  453. package/dist/LabelvaluedescWidget-BgduSJJb.js.map +0 -1
  454. package/dist/LedWidget-BaiKDozd.cjs +0 -2
  455. package/dist/LimitscolorWidget-veWQ4NXl.cjs +0 -2
  456. package/dist/LinegraphWidget-3E8L5CvM.cjs +0 -2
  457. package/dist/OpenC3TimePicker-DpkbfbgC.js.map +0 -1
  458. package/dist/OpenC3TimePicker-Yl1jVi7p.cjs +0 -2
  459. package/dist/OpenC3TimePicker-Yl1jVi7p.cjs.map +0 -1
  460. package/dist/Openc3Screen-D1RLlBgQ.cjs +0 -6
  461. package/dist/OutputDialog-ChPCaQAE.cjs +0 -2
  462. package/dist/PackagesTab-BgQsbXRo.cjs +0 -2
  463. package/dist/PluginsTab-BiiL622n.js.map +0 -1
  464. package/dist/PluginsTab-RgIMk-F7.cjs +0 -6
  465. package/dist/PluginsTab-RgIMk-F7.cjs.map +0 -1
  466. package/dist/RedisTab-7TbOXFA_.js +0 -171
  467. package/dist/RedisTab-7TbOXFA_.js.map +0 -1
  468. package/dist/RedisTab-DpWPY1P0.cjs +0 -2
  469. package/dist/RedisTab-DpWPY1P0.cjs.map +0 -1
  470. package/dist/RoutersTab-CAbnSGHy.cjs +0 -2
  471. package/dist/ScriptChooser-CggwstfT.cjs +0 -2
  472. package/dist/SecretsTab-Cn6-o85L.cjs +0 -2
  473. package/dist/SettingsTab-C6zIL2D6.cjs +0 -3
  474. package/dist/SparklineWidget-xdPgolp3.cjs +0 -2
  475. package/dist/TargetPacketItemChooser-BoBqvs3T.js.map +0 -1
  476. package/dist/TargetPacketItemChooser-C0Z90rss.cjs +0 -2
  477. package/dist/TargetPacketItemChooser-C0Z90rss.cjs.map +0 -1
  478. package/dist/TargetsTab-BMcWjrZ_.cjs +0 -2
  479. package/dist/TextboxWidget-CXA9rR02.cjs +0 -2
  480. package/dist/TimeWidget-CGk8Ze_I.cjs +0 -2
  481. package/dist/ToolsTab-DTHap-Nq.cjs +0 -2
  482. package/dist/TsdbTab-7F4mRKDo.js +0 -125
  483. package/dist/TsdbTab-7F4mRKDo.js.map +0 -1
  484. package/dist/TsdbTab-DVF6n9mq.cjs +0 -2
  485. package/dist/TsdbTab-DVF6n9mq.cjs.map +0 -1
  486. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js +0 -30891
  487. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js.map +0 -1
  488. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs +0 -1485
  489. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs.map +0 -1
  490. package/dist/VWidget-CxnaMF0w.js.map +0 -1
  491. package/dist/VWidget-dEHSEvZx.cjs +0 -2
  492. package/dist/VWidget-dEHSEvZx.cjs.map +0 -1
  493. package/dist/ValueWidget-Bws1qOEI.cjs +0 -2
  494. package/dist/Widget-CB_BtOFw.cjs +0 -2
  495. package/dist/format-CJYjW-xx.js +0 -1252
  496. package/dist/format-CJYjW-xx.js.map +0 -1
  497. package/dist/format-DOZQNf-X.cjs +0 -2
  498. package/dist/format-DOZQNf-X.cjs.map +0 -1
  499. package/dist/getDefaultOptions-Cek5kGzE.cjs +0 -2
  500. package/dist/getDefaultOptions-xjgn1r-_.js +0 -8
  501. package/dist/index-B34azWgs.cjs +0 -7
  502. package/dist/index-B34azWgs.cjs.map +0 -1
  503. package/dist/index-CJcL4_a4.js.map +0 -1
  504. package/dist/purify.es-4pyphLiB.cjs +0 -3
  505. package/dist/purify.es-4pyphLiB.cjs.map +0 -1
  506. package/dist/purify.es-BPDBzHtc.js +0 -553
  507. package/dist/purify.es-BPDBzHtc.js.map +0 -1
  508. package/dist/settings-B0AhztTk.cjs +0 -2
@@ -1,4 +1,4 @@
1
- import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-BJxLUZhh.js";
1
+ import "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DskbVSHX.js";
2
2
  import { ref as G, resolveComponent as a, openBlock as n, createBlock as d, withCtx as t, createVNode as o, createElementBlock as b, Fragment as v, renderList as h, createTextVNode as f, toDisplayString as p, mergeProps as D, createSlots as I, normalizeStyle as U, createCommentVNode as S, Teleport as H, createElementVNode as R } from "vue";
3
3
  import { _ as Y } from "./CustomIcon-DTR361si.js";
4
4
  const $ = "openc3-ace-vim-mode-enabled", C = "ace/keyboard/vim", K = "openc3-ace-default-scripting-language", Z = {
@@ -321,4 +321,4 @@ export {
321
321
  Z as A,
322
322
  j as T
323
323
  };
324
- //# sourceMappingURL=TopBar-C810rP_B.js.map
324
+ //# sourceMappingURL=TopBar-B4oz2FsN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopBar-C810rP_B.js","sources":["../src/components/ace/AceEditorUtils.js","../src/components/TopBarMenu.vue","../src/components/TopBar.vue"],"sourcesContent":["/*\n# Copyright 2025, OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 'ace-builds/src-min-noconflict/keybinding-vim'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\n\nconst VIM_MODE_STORAGE_KEY = 'openc3-ace-vim-mode-enabled'\nconst VIM_KEYBOARD_HANDLER = 'ace/keyboard/vim'\nconst DEFAULT_LANGUAGE_STORAGE_KEY = 'openc3-ace-default-scripting-language'\n\nexport default {\n /**\n * Check if vim mode is enabled from localStorage\n * @returns {boolean} true if vim mode is enabled\n */\n isVimModeEnabled() {\n return localStorage.getItem(VIM_MODE_STORAGE_KEY) === 'true'\n },\n\n /**\n * Sets the vim mode setting in localStorage\n * @param {boolean} value - new vim mode state\n */\n setVimMode(value) {\n localStorage.setItem(VIM_MODE_STORAGE_KEY, JSON.stringify(!!value))\n },\n\n /**\n * Toggle vim mode on/off and save to localStorage\n * @param {Object} editor - Ace editor instance\n */\n toggleVimMode(editor) {\n const isEnabled = this.isVimModeEnabled()\n\n if (isEnabled) {\n // Disable vim mode\n editor.setKeyboardHandler(null)\n this.setVimMode(false)\n } else {\n // Enable vim mode\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n this.setVimMode(true)\n }\n editor.focus()\n },\n\n /**\n * Apply vim mode to editor if enabled in localStorage\n * @param {Object} editor - Ace editor instance\n */\n applyVimModeIfEnabled(editor, { saveFn } = {}) {\n if (this.isVimModeEnabled()) {\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n ace.config.loadModule(VIM_KEYBOARD_HANDLER, (module) => {\n module.CodeMirror.Vim.defineEx('write', 'w', (codeMirror) => {\n if (typeof saveFn === 'function') {\n saveFn()\n } else {\n codeMirror.ace.execCommand('save')\n }\n })\n })\n } else {\n editor.setKeyboardHandler(null)\n }\n },\n\n /**\n * Get the default scripting language from localStorage\n * @returns {string} 'ruby' or 'python', defaults to 'python'\n */\n getDefaultScriptingLanguage() {\n return localStorage.getItem(DEFAULT_LANGUAGE_STORAGE_KEY) || 'python'\n },\n\n /**\n * Set the default scripting language in localStorage\n * @param {string} language - 'ruby' or 'python'\n */\n setDefaultScriptingLanguage(language) {\n if (language === 'ruby' || language === 'python') {\n localStorage.setItem(DEFAULT_LANGUAGE_STORAGE_KEY, language)\n }\n },\n}\n","<template>\n <v-menu v-model=\"menuOpen\" :close-on-content-click=\"false\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n variant=\"outlined\"\n class=\"mx-1 menu-button\"\n :text=\"menu.label\"\n :data-test=\"formatDT(`${title} ${menu.label}`)\"\n >\n <template #append>\n <v-icon class=\"menu-button-icon\"> mdi-menu-down </v-icon>\n </template>\n </v-btn>\n </template>\n <v-list>\n <template v-for=\"(option, j) in menu.items\">\n <v-divider v-if=\"option.divider\" :key=\"j + '-divider'\" />\n <div\n v-else-if=\"option.subMenu && option.subMenu.length > 0\"\n :key=\"j + '-submenu'\"\n >\n <v-menu :key=\"j\" open-on-hover location=\"right\">\n <template #activator=\"{ props }\">\n <v-list-item v-bind=\"props\" :key=\"j\" :disabled=\"option.disabled\">\n <template v-if=\"option.icon\" #prepend>\n <v-icon :disabled=\"option.disabled\">\n {{ option.icon }}\n </v-icon>\n </template>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n <template #append>\n <v-icon> mdi-chevron-right </v-icon>\n </template>\n </v-list-item>\n </template>\n <v-list>\n <v-list-item\n v-for=\"(submenu, k) in option.subMenu\"\n :key=\"k\"\n :prepend-icon=\"submenu.icon\"\n @click=\"emits('submenu-click', submenu)\"\n >\n <v-list-item-title>{{ submenu.label }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n <v-radio-group\n v-else-if=\"option.radioGroup\"\n :key=\"j + '-radio-group'\"\n class=\"ma-0 pa-0\"\n density=\"compact\"\n hide-details\n :model-value=\"option.value\"\n @update:model-value=\"option.command\"\n >\n <v-list-item\n v-for=\"(choice, k) in option.choices\"\n :key=\"k + '-choice'\"\n >\n <v-list-item-action class=\"list-action\">\n <v-radio\n color=\"secondary\"\n :label=\"choice.label\"\n :value=\"choice.value\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n </v-list-item>\n </v-radio-group>\n <v-list-item\n v-else\n :key=\"j + '-list'\"\n :disabled=\"option.disabled\"\n :data-test=\"formatDT(`${title} ${menu.label} ${option.label}`)\"\n @click=\"\n () => {\n option.command(option)\n if (!option.checkbox) closeMenu()\n }\n \"\n >\n <template v-if=\"option.icon\" #prepend>\n <v-icon :icon=\"option.icon\" :disabled=\"option.disabled\"></v-icon>\n </template>\n <v-list-item-action v-if=\"option.checkbox\" class=\"list-action\">\n <v-checkbox\n v-model=\"option.checked\"\n :label=\"option.label\"\n color=\"secondary\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n </v-list-item>\n </template>\n </v-list>\n </v-menu>\n</template>\n\n<script setup>\nimport { ref } from 'vue'\n\ndefineProps({\n menu: { type: Object, required: true },\n title: { type: String, required: true },\n})\nconst emits = defineEmits(['submenu-click'])\n\nconst menuOpen = ref(false)\n\n/**\n * Close the menu programmatically.\n *\n * Allows setting close-on-content-click to false for the main menu to prevent closing when clicking a submenu, but\n * still close when clicking other menu item types\n */\nfunction closeMenu() {\n menuOpen.value = false\n}\n\n/**\n * Convert the string to a standard data-test format\n * @param {string} string\n */\nfunction formatDT(string) {\n return string.replaceAll(' ', '-').toLowerCase()\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <teleport to=\"#openc3-menu\">\n <v-row no-gutters>\n <v-col align-self=\"end\">\n <span class=\"app-title mr-2\">{{ title }}</span>\n </v-col>\n </v-row>\n <v-row dense class=\"flex-nowrap\">\n <TopBarMenu\n v-for=\"(menu, i) in menus\"\n :key=\"i + '-top-menu'\"\n :ref=\"'topmenu'\"\n :menu=\"menu\"\n :title=\"title\"\n @submenu-click=\"subMenuClick\"\n />\n </v-row>\n </teleport>\n</template>\n\n<script>\nimport TopBarMenu from './TopBarMenu.vue'\n\nexport default {\n components: {\n TopBarMenu,\n },\n props: {\n menus: {\n type: Array,\n default: function () {\n return []\n },\n },\n title: {\n type: String,\n default: '',\n },\n },\n mounted() {\n document.title = this.title\n },\n methods: {\n subMenuClick(submenu) {\n submenu.command(submenu)\n this.$refs.topmenu[0].isActive = false\n },\n },\n}\n</script>\n\n<style scoped>\n.app-title {\n font-size: 2rem;\n}\n/* The next three styles effectively style the button like a select drop down */\n.menu-button {\n border-color: var(--color-border-interactive-muted) !important;\n background-color: var(--color-background-base-default) !important;\n}\n.menu-button-icon {\n background-color: var(--color-background-surface-selected);\n border: 1px solid currentColor;\n border-radius: 3px;\n height: calc(var(--v-btn-height));\n width: calc(var(--v-btn-height));\n margin-top: -1px;\n margin-bottom: -1px;\n margin-left: 3px; /* parent's left margin (4px) - border (1px) */\n margin-right: -13px; /* parent's right margin (4px) - border (1px) - padding (16px) */\n}\n.list-action :deep(label) {\n color: white;\n padding-left: 20px;\n}\n.v-list :deep(.v-label) {\n margin-left: 5px;\n}\n.v-list-item-action {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item-title {\n color: white;\n}\n</style>\n"],"names":["VIM_MODE_STORAGE_KEY","VIM_KEYBOARD_HANDLER","DEFAULT_LANGUAGE_STORAGE_KEY","AceEditorUtils","value","editor","saveFn","module","codeMirror","language","emits","__emit","menuOpen","ref","closeMenu","formatDT","string","_createBlock","_component_v_menu","$event","_withCtx","props","_createVNode","_component_v_btn","_mergeProps","__props","_component_v_icon","_cache","_component_v_list","_openBlock","_createElementBlock","_Fragment","option","j","_component_v_divider","_component_v_list_item","_component_v_list_item_title","_normalizeStyle","_createTextVNode","_toDisplayString","submenu","k","_component_v_radio_group","choice","_component_v_list_item_action","_component_v_radio","_component_v_checkbox","_sfc_main","TopBarMenu","_hoisted_1","_Teleport","_component_v_row","_component_v_col","_createElementVNode","$props","_renderList","menu","i","_component_TopBarMenu","$options"],"mappings":"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"}
1
+ {"version":3,"file":"TopBar-B4oz2FsN.js","sources":["../src/components/ace/AceEditorUtils.js","../src/components/TopBarMenu.vue","../src/components/TopBar.vue"],"sourcesContent":["/*\n# Copyright 2025, OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 'ace-builds/src-min-noconflict/keybinding-vim'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\n\nconst VIM_MODE_STORAGE_KEY = 'openc3-ace-vim-mode-enabled'\nconst VIM_KEYBOARD_HANDLER = 'ace/keyboard/vim'\nconst DEFAULT_LANGUAGE_STORAGE_KEY = 'openc3-ace-default-scripting-language'\n\nexport default {\n /**\n * Check if vim mode is enabled from localStorage\n * @returns {boolean} true if vim mode is enabled\n */\n isVimModeEnabled() {\n return localStorage.getItem(VIM_MODE_STORAGE_KEY) === 'true'\n },\n\n /**\n * Sets the vim mode setting in localStorage\n * @param {boolean} value - new vim mode state\n */\n setVimMode(value) {\n localStorage.setItem(VIM_MODE_STORAGE_KEY, JSON.stringify(!!value))\n },\n\n /**\n * Toggle vim mode on/off and save to localStorage\n * @param {Object} editor - Ace editor instance\n */\n toggleVimMode(editor) {\n const isEnabled = this.isVimModeEnabled()\n\n if (isEnabled) {\n // Disable vim mode\n editor.setKeyboardHandler(null)\n this.setVimMode(false)\n } else {\n // Enable vim mode\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n this.setVimMode(true)\n }\n editor.focus()\n },\n\n /**\n * Apply vim mode to editor if enabled in localStorage\n * @param {Object} editor - Ace editor instance\n */\n applyVimModeIfEnabled(editor, { saveFn } = {}) {\n if (this.isVimModeEnabled()) {\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n ace.config.loadModule(VIM_KEYBOARD_HANDLER, (module) => {\n module.CodeMirror.Vim.defineEx('write', 'w', (codeMirror) => {\n if (typeof saveFn === 'function') {\n saveFn()\n } else {\n codeMirror.ace.execCommand('save')\n }\n })\n })\n } else {\n editor.setKeyboardHandler(null)\n }\n },\n\n /**\n * Get the default scripting language from localStorage\n * @returns {string} 'ruby' or 'python', defaults to 'python'\n */\n getDefaultScriptingLanguage() {\n return localStorage.getItem(DEFAULT_LANGUAGE_STORAGE_KEY) || 'python'\n },\n\n /**\n * Set the default scripting language in localStorage\n * @param {string} language - 'ruby' or 'python'\n */\n setDefaultScriptingLanguage(language) {\n if (language === 'ruby' || language === 'python') {\n localStorage.setItem(DEFAULT_LANGUAGE_STORAGE_KEY, language)\n }\n },\n}\n","<template>\n <v-menu v-model=\"menuOpen\" :close-on-content-click=\"false\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n variant=\"outlined\"\n class=\"mx-1 menu-button\"\n :text=\"menu.label\"\n :data-test=\"formatDT(`${title} ${menu.label}`)\"\n >\n <template #append>\n <v-icon class=\"menu-button-icon\"> mdi-menu-down </v-icon>\n </template>\n </v-btn>\n </template>\n <v-list>\n <template v-for=\"(option, j) in menu.items\">\n <v-divider v-if=\"option.divider\" :key=\"j + '-divider'\" />\n <div\n v-else-if=\"option.subMenu && option.subMenu.length > 0\"\n :key=\"j + '-submenu'\"\n >\n <v-menu :key=\"j\" open-on-hover location=\"right\">\n <template #activator=\"{ props }\">\n <v-list-item v-bind=\"props\" :key=\"j\" :disabled=\"option.disabled\">\n <template v-if=\"option.icon\" #prepend>\n <v-icon :disabled=\"option.disabled\">\n {{ option.icon }}\n </v-icon>\n </template>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n <template #append>\n <v-icon> mdi-chevron-right </v-icon>\n </template>\n </v-list-item>\n </template>\n <v-list>\n <v-list-item\n v-for=\"(submenu, k) in option.subMenu\"\n :key=\"k\"\n :prepend-icon=\"submenu.icon\"\n @click=\"emits('submenu-click', submenu)\"\n >\n <v-list-item-title>{{ submenu.label }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n <v-radio-group\n v-else-if=\"option.radioGroup\"\n :key=\"j + '-radio-group'\"\n class=\"ma-0 pa-0\"\n density=\"compact\"\n hide-details\n :model-value=\"option.value\"\n @update:model-value=\"option.command\"\n >\n <v-list-item\n v-for=\"(choice, k) in option.choices\"\n :key=\"k + '-choice'\"\n >\n <v-list-item-action class=\"list-action\">\n <v-radio\n color=\"secondary\"\n :label=\"choice.label\"\n :value=\"choice.value\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n </v-list-item>\n </v-radio-group>\n <v-list-item\n v-else\n :key=\"j + '-list'\"\n :disabled=\"option.disabled\"\n :data-test=\"formatDT(`${title} ${menu.label} ${option.label}`)\"\n @click=\"\n () => {\n option.command(option)\n if (!option.checkbox) closeMenu()\n }\n \"\n >\n <template v-if=\"option.icon\" #prepend>\n <v-icon :icon=\"option.icon\" :disabled=\"option.disabled\"></v-icon>\n </template>\n <v-list-item-action v-if=\"option.checkbox\" class=\"list-action\">\n <v-checkbox\n v-model=\"option.checked\"\n :label=\"option.label\"\n color=\"secondary\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n </v-list-item>\n </template>\n </v-list>\n </v-menu>\n</template>\n\n<script setup>\nimport { ref } from 'vue'\n\ndefineProps({\n menu: { type: Object, required: true },\n title: { type: String, required: true },\n})\nconst emits = defineEmits(['submenu-click'])\n\nconst menuOpen = ref(false)\n\n/**\n * Close the menu programmatically.\n *\n * Allows setting close-on-content-click to false for the main menu to prevent closing when clicking a submenu, but\n * still close when clicking other menu item types\n */\nfunction closeMenu() {\n menuOpen.value = false\n}\n\n/**\n * Convert the string to a standard data-test format\n * @param {string} string\n */\nfunction formatDT(string) {\n return string.replaceAll(' ', '-').toLowerCase()\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <teleport to=\"#openc3-menu\">\n <v-row no-gutters>\n <v-col align-self=\"end\">\n <span class=\"app-title mr-2\">{{ title }}</span>\n </v-col>\n </v-row>\n <v-row dense class=\"flex-nowrap\">\n <TopBarMenu\n v-for=\"(menu, i) in menus\"\n :key=\"i + '-top-menu'\"\n :ref=\"'topmenu'\"\n :menu=\"menu\"\n :title=\"title\"\n @submenu-click=\"subMenuClick\"\n />\n </v-row>\n </teleport>\n</template>\n\n<script>\nimport TopBarMenu from './TopBarMenu.vue'\n\nexport default {\n components: {\n TopBarMenu,\n },\n props: {\n menus: {\n type: Array,\n default: function () {\n return []\n },\n },\n title: {\n type: String,\n default: '',\n },\n },\n mounted() {\n document.title = this.title\n },\n methods: {\n subMenuClick(submenu) {\n submenu.command(submenu)\n this.$refs.topmenu[0].isActive = false\n },\n },\n}\n</script>\n\n<style scoped>\n.app-title {\n font-size: 2rem;\n}\n/* The next three styles effectively style the button like a select drop down */\n.menu-button {\n border-color: var(--color-border-interactive-muted) !important;\n background-color: var(--color-background-base-default) !important;\n}\n.menu-button-icon {\n background-color: var(--color-background-surface-selected);\n border: 1px solid currentColor;\n border-radius: 3px;\n height: calc(var(--v-btn-height));\n width: calc(var(--v-btn-height));\n margin-top: -1px;\n margin-bottom: -1px;\n margin-left: 3px; /* parent's left margin (4px) - border (1px) */\n margin-right: -13px; /* parent's right margin (4px) - border (1px) - padding (16px) */\n}\n.list-action :deep(label) {\n color: white;\n padding-left: 20px;\n}\n.v-list :deep(.v-label) {\n margin-left: 5px;\n}\n.v-list-item-action {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item-title {\n color: white;\n}\n</style>\n"],"names":["VIM_MODE_STORAGE_KEY","VIM_KEYBOARD_HANDLER","DEFAULT_LANGUAGE_STORAGE_KEY","AceEditorUtils","value","editor","saveFn","module","codeMirror","language","emits","__emit","menuOpen","ref","closeMenu","formatDT","string","_createBlock","_component_v_menu","$event","_withCtx","props","_createVNode","_component_v_btn","_mergeProps","__props","_component_v_icon","_cache","_component_v_list","_openBlock","_createElementBlock","_Fragment","option","j","_component_v_divider","_component_v_list_item","_component_v_list_item_title","_normalizeStyle","_createTextVNode","_toDisplayString","submenu","k","_component_v_radio_group","choice","_component_v_list_item_action","_component_v_radio","_component_v_checkbox","_sfc_main","TopBarMenu","_hoisted_1","_Teleport","_component_v_row","_component_v_col","_createElementVNode","$props","_renderList","menu","i","_component_TopBarMenu","$options"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-eKtA_EtD.cjs");const e=require("vue"),N=require("./CustomIcon-8F08upeg.cjs"),x="openc3-ace-vim-mode-enabled",v="ace/keyboard/vim",B="openc3-ace-default-scripting-language",E={isVimModeEnabled(){return localStorage.getItem(x)==="true"},setVimMode(l){localStorage.setItem(x,JSON.stringify(!!l))},toggleVimMode(l){this.isVimModeEnabled()?(l.setKeyboardHandler(null),this.setVimMode(!1)):(l.setKeyboardHandler(v),this.setVimMode(!0)),l.focus()},applyVimModeIfEnabled(l,{saveFn:c}={}){this.isVimModeEnabled()?(l.setKeyboardHandler(v),ace.config.loadModule(v,a=>{a.CodeMirror.Vim.defineEx("write","w",r=>{typeof c=="function"?c():r.ace.execCommand("save")})})):l.setKeyboardHandler(null)},getDefaultScriptingLanguage(){return localStorage.getItem(B)||"python"},setDefaultScriptingLanguage(l){(l==="ruby"||l==="python")&&localStorage.setItem(B,l)}},M={__name:"TopBarMenu",props:{menu:{type:Object,required:!0},title:{type:String,required:!0}},emits:["submenu-click"],setup(l,{emit:c}){const a=c,r=e.ref(!1);function b(){r.value=!1}function s(u){return u.replaceAll(" ","-").toLowerCase()}return(u,n)=>{const d=e.resolveComponent("v-icon"),_=e.resolveComponent("v-btn"),p=e.resolveComponent("v-divider"),k=e.resolveComponent("v-list-item-title"),m=e.resolveComponent("v-list-item"),C=e.resolveComponent("v-list"),h=e.resolveComponent("v-menu"),V=e.resolveComponent("v-radio"),y=e.resolveComponent("v-list-item-action"),g=e.resolveComponent("v-radio-group"),w=e.resolveComponent("v-checkbox");return e.openBlock(),e.createBlock(h,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=t=>r.value=t),"close-on-content-click":!1},{activator:e.withCtx(({props:t})=>[e.createVNode(_,e.mergeProps(t,{variant:"outlined",class:"mx-1 menu-button",text:l.menu.label,"data-test":s(`${l.title} ${l.menu.label}`)}),{append:e.withCtx(()=>[e.createVNode(d,{class:"menu-button-icon"},{default:e.withCtx(()=>[...n[1]||(n[1]=[e.createTextVNode(" mdi-menu-down ",-1)])]),_:1})]),_:1},16,["text","data-test"])]),default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.menu.items,(t,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.divider?(e.openBlock(),e.createBlock(p,{key:i+"-divider"})):t.subMenu&&t.subMenu.length>0?(e.openBlock(),e.createElementBlock("div",{key:i+"-submenu"},[(e.openBlock(),e.createBlock(h,{key:i,"open-on-hover":"",location:"right"},{activator:e.withCtx(({props:o})=>[(e.openBlock(),e.createBlock(m,e.mergeProps({ref_for:!0},o,{key:i,disabled:t.disabled}),e.createSlots({append:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[...n[2]||(n[2]=[e.createTextVNode(" mdi-chevron-right ",-1)])]),_:1})]),default:e.withCtx(()=>[!t.radio&&!t.checkbox?(e.openBlock(),e.createBlock(k,{key:0,style:e.normalizeStyle("cursor: pointer;"+(t.disabled?"opacity: 0.2":""))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:2},1032,["style"])):e.createCommentVNode("",!0)]),_:2},[t.icon?{name:"prepend",fn:e.withCtx(()=>[e.createVNode(d,{disabled:t.disabled},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.icon),1)]),_:2},1032,["disabled"])]),key:"0"}:void 0]),1040,["disabled"]))]),default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.subMenu,(o,f)=>(e.openBlock(),e.createBlock(m,{key:f,"prepend-icon":o.icon,onClick:L=>a("submenu-click",o)},{default:e.withCtx(()=>[e.createVNode(k,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]),_:2},1024)]),_:2},1032,["prepend-icon","onClick"]))),128))]),_:2},1024)]),_:2},1024))])):t.radioGroup?(e.openBlock(),e.createBlock(g,{key:i+"-radio-group",class:"ma-0 pa-0",density:"compact","hide-details":"","model-value":t.value,"onUpdate:modelValue":t.command},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.choices,(o,f)=>(e.openBlock(),e.createBlock(m,{key:f+"-choice"},{default:e.withCtx(()=>[e.createVNode(y,{class:"list-action"},{default:e.withCtx(()=>[e.createVNode(V,{color:"secondary",label:o.label,value:o.value,density:"compact","hide-details":""},null,8,["label","value"])]),_:2},1024)]),_:2},1024))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(m,{key:i+"-list",disabled:t.disabled,"data-test":s(`${l.title} ${l.menu.label} ${t.label}`),onClick:()=>{t.command(t),t.checkbox||b()}},e.createSlots({default:e.withCtx(()=>[t.checkbox?(e.openBlock(),e.createBlock(y,{key:0,class:"list-action"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:t.checked,"onUpdate:modelValue":o=>t.checked=o,label:t.label,color:"secondary",density:"compact","hide-details":""},null,8,["modelValue","onUpdate:modelValue","label"])]),_:2},1024)):e.createCommentVNode("",!0),!t.radio&&!t.checkbox?(e.openBlock(),e.createBlock(k,{key:1,style:e.normalizeStyle("cursor: pointer;"+(t.disabled?"opacity: 0.2":""))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:2},1032,["style"])):e.createCommentVNode("",!0)]),_:2},[t.icon?{name:"prepend",fn:e.withCtx(()=>[e.createVNode(d,{icon:t.icon,disabled:t.disabled},null,8,["icon","disabled"])]),key:"0"}:void 0]),1032,["disabled","data-test","onClick"]))],64))),256))]),_:1})]),_:1},8,["modelValue"])}}},S={components:{TopBarMenu:M},props:{menus:{type:Array,default:function(){return[]}},title:{type:String,default:""}},mounted(){document.title=this.title},methods:{subMenuClick(l){l.command(l),this.$refs.topmenu[0].isActive=!1}}},T={class:"app-title mr-2"};function A(l,c,a,r,b,s){const u=e.resolveComponent("v-col"),n=e.resolveComponent("v-row"),d=e.resolveComponent("TopBarMenu");return e.openBlock(),e.createBlock(e.Teleport,{to:"#openc3-menu"},[e.createVNode(n,{"no-gutters":""},{default:e.withCtx(()=>[e.createVNode(u,{"align-self":"end"},{default:e.withCtx(()=>[e.createElementVNode("span",T,e.toDisplayString(a.title),1)]),_:1})]),_:1}),e.createVNode(n,{dense:"",class:"flex-nowrap"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.menus,(_,p)=>(e.openBlock(),e.createBlock(d,{key:p+"-top-menu",ref_for:!0,ref:"topmenu",menu:_,title:a.title,onSubmenuClick:s.subMenuClick},null,8,["menu","title","onSubmenuClick"]))),128))]),_:1})])}const D=N._export_sfc(S,[["render",A],["__scopeId","data-v-f4fb184e"]]);exports.AceEditorUtils=E;exports.TopBar=D;
2
- //# sourceMappingURL=TopBar-Ctzx7o2k.cjs.map
1
+ "use strict";require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CTNR19Zt.cjs");const e=require("vue"),N=require("./CustomIcon-8F08upeg.cjs"),x="openc3-ace-vim-mode-enabled",v="ace/keyboard/vim",B="openc3-ace-default-scripting-language",E={isVimModeEnabled(){return localStorage.getItem(x)==="true"},setVimMode(l){localStorage.setItem(x,JSON.stringify(!!l))},toggleVimMode(l){this.isVimModeEnabled()?(l.setKeyboardHandler(null),this.setVimMode(!1)):(l.setKeyboardHandler(v),this.setVimMode(!0)),l.focus()},applyVimModeIfEnabled(l,{saveFn:c}={}){this.isVimModeEnabled()?(l.setKeyboardHandler(v),ace.config.loadModule(v,a=>{a.CodeMirror.Vim.defineEx("write","w",r=>{typeof c=="function"?c():r.ace.execCommand("save")})})):l.setKeyboardHandler(null)},getDefaultScriptingLanguage(){return localStorage.getItem(B)||"python"},setDefaultScriptingLanguage(l){(l==="ruby"||l==="python")&&localStorage.setItem(B,l)}},M={__name:"TopBarMenu",props:{menu:{type:Object,required:!0},title:{type:String,required:!0}},emits:["submenu-click"],setup(l,{emit:c}){const a=c,r=e.ref(!1);function b(){r.value=!1}function s(u){return u.replaceAll(" ","-").toLowerCase()}return(u,n)=>{const d=e.resolveComponent("v-icon"),_=e.resolveComponent("v-btn"),p=e.resolveComponent("v-divider"),k=e.resolveComponent("v-list-item-title"),m=e.resolveComponent("v-list-item"),C=e.resolveComponent("v-list"),h=e.resolveComponent("v-menu"),V=e.resolveComponent("v-radio"),y=e.resolveComponent("v-list-item-action"),g=e.resolveComponent("v-radio-group"),w=e.resolveComponent("v-checkbox");return e.openBlock(),e.createBlock(h,{modelValue:r.value,"onUpdate:modelValue":n[0]||(n[0]=t=>r.value=t),"close-on-content-click":!1},{activator:e.withCtx(({props:t})=>[e.createVNode(_,e.mergeProps(t,{variant:"outlined",class:"mx-1 menu-button",text:l.menu.label,"data-test":s(`${l.title} ${l.menu.label}`)}),{append:e.withCtx(()=>[e.createVNode(d,{class:"menu-button-icon"},{default:e.withCtx(()=>[...n[1]||(n[1]=[e.createTextVNode(" mdi-menu-down ",-1)])]),_:1})]),_:1},16,["text","data-test"])]),default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.menu.items,(t,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[t.divider?(e.openBlock(),e.createBlock(p,{key:i+"-divider"})):t.subMenu&&t.subMenu.length>0?(e.openBlock(),e.createElementBlock("div",{key:i+"-submenu"},[(e.openBlock(),e.createBlock(h,{key:i,"open-on-hover":"",location:"right"},{activator:e.withCtx(({props:o})=>[(e.openBlock(),e.createBlock(m,e.mergeProps({ref_for:!0},o,{key:i,disabled:t.disabled}),e.createSlots({append:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[...n[2]||(n[2]=[e.createTextVNode(" mdi-chevron-right ",-1)])]),_:1})]),default:e.withCtx(()=>[!t.radio&&!t.checkbox?(e.openBlock(),e.createBlock(k,{key:0,style:e.normalizeStyle("cursor: pointer;"+(t.disabled?"opacity: 0.2":""))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:2},1032,["style"])):e.createCommentVNode("",!0)]),_:2},[t.icon?{name:"prepend",fn:e.withCtx(()=>[e.createVNode(d,{disabled:t.disabled},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.icon),1)]),_:2},1032,["disabled"])]),key:"0"}:void 0]),1040,["disabled"]))]),default:e.withCtx(()=>[e.createVNode(C,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.subMenu,(o,f)=>(e.openBlock(),e.createBlock(m,{key:f,"prepend-icon":o.icon,onClick:L=>a("submenu-click",o)},{default:e.withCtx(()=>[e.createVNode(k,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]),_:2},1024)]),_:2},1032,["prepend-icon","onClick"]))),128))]),_:2},1024)]),_:2},1024))])):t.radioGroup?(e.openBlock(),e.createBlock(g,{key:i+"-radio-group",class:"ma-0 pa-0",density:"compact","hide-details":"","model-value":t.value,"onUpdate:modelValue":t.command},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.choices,(o,f)=>(e.openBlock(),e.createBlock(m,{key:f+"-choice"},{default:e.withCtx(()=>[e.createVNode(y,{class:"list-action"},{default:e.withCtx(()=>[e.createVNode(V,{color:"secondary",label:o.label,value:o.value,density:"compact","hide-details":""},null,8,["label","value"])]),_:2},1024)]),_:2},1024))),128))]),_:2},1032,["model-value","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(m,{key:i+"-list",disabled:t.disabled,"data-test":s(`${l.title} ${l.menu.label} ${t.label}`),onClick:()=>{t.command(t),t.checkbox||b()}},e.createSlots({default:e.withCtx(()=>[t.checkbox?(e.openBlock(),e.createBlock(y,{key:0,class:"list-action"},{default:e.withCtx(()=>[e.createVNode(w,{modelValue:t.checked,"onUpdate:modelValue":o=>t.checked=o,label:t.label,color:"secondary",density:"compact","hide-details":""},null,8,["modelValue","onUpdate:modelValue","label"])]),_:2},1024)):e.createCommentVNode("",!0),!t.radio&&!t.checkbox?(e.openBlock(),e.createBlock(k,{key:1,style:e.normalizeStyle("cursor: pointer;"+(t.disabled?"opacity: 0.2":""))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]),_:2},1032,["style"])):e.createCommentVNode("",!0)]),_:2},[t.icon?{name:"prepend",fn:e.withCtx(()=>[e.createVNode(d,{icon:t.icon,disabled:t.disabled},null,8,["icon","disabled"])]),key:"0"}:void 0]),1032,["disabled","data-test","onClick"]))],64))),256))]),_:1})]),_:1},8,["modelValue"])}}},S={components:{TopBarMenu:M},props:{menus:{type:Array,default:function(){return[]}},title:{type:String,default:""}},mounted(){document.title=this.title},methods:{subMenuClick(l){l.command(l),this.$refs.topmenu[0].isActive=!1}}},T={class:"app-title mr-2"};function A(l,c,a,r,b,s){const u=e.resolveComponent("v-col"),n=e.resolveComponent("v-row"),d=e.resolveComponent("TopBarMenu");return e.openBlock(),e.createBlock(e.Teleport,{to:"#openc3-menu"},[e.createVNode(n,{"no-gutters":""},{default:e.withCtx(()=>[e.createVNode(u,{"align-self":"end"},{default:e.withCtx(()=>[e.createElementVNode("span",T,e.toDisplayString(a.title),1)]),_:1})]),_:1}),e.createVNode(n,{dense:"",class:"flex-nowrap"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.menus,(_,p)=>(e.openBlock(),e.createBlock(d,{key:p+"-top-menu",ref_for:!0,ref:"topmenu",menu:_,title:a.title,onSubmenuClick:s.subMenuClick},null,8,["menu","title","onSubmenuClick"]))),128))]),_:1})])}const D=N._export_sfc(S,[["render",A],["__scopeId","data-v-f4fb184e"]]);exports.AceEditorUtils=E;exports.TopBar=D;
2
+ //# sourceMappingURL=TopBar-lcB6jpd_.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopBar-Ctzx7o2k.cjs","sources":["../src/components/ace/AceEditorUtils.js","../src/components/TopBarMenu.vue","../src/components/TopBar.vue"],"sourcesContent":["/*\n# Copyright 2025, OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 'ace-builds/src-min-noconflict/keybinding-vim'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\n\nconst VIM_MODE_STORAGE_KEY = 'openc3-ace-vim-mode-enabled'\nconst VIM_KEYBOARD_HANDLER = 'ace/keyboard/vim'\nconst DEFAULT_LANGUAGE_STORAGE_KEY = 'openc3-ace-default-scripting-language'\n\nexport default {\n /**\n * Check if vim mode is enabled from localStorage\n * @returns {boolean} true if vim mode is enabled\n */\n isVimModeEnabled() {\n return localStorage.getItem(VIM_MODE_STORAGE_KEY) === 'true'\n },\n\n /**\n * Sets the vim mode setting in localStorage\n * @param {boolean} value - new vim mode state\n */\n setVimMode(value) {\n localStorage.setItem(VIM_MODE_STORAGE_KEY, JSON.stringify(!!value))\n },\n\n /**\n * Toggle vim mode on/off and save to localStorage\n * @param {Object} editor - Ace editor instance\n */\n toggleVimMode(editor) {\n const isEnabled = this.isVimModeEnabled()\n\n if (isEnabled) {\n // Disable vim mode\n editor.setKeyboardHandler(null)\n this.setVimMode(false)\n } else {\n // Enable vim mode\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n this.setVimMode(true)\n }\n editor.focus()\n },\n\n /**\n * Apply vim mode to editor if enabled in localStorage\n * @param {Object} editor - Ace editor instance\n */\n applyVimModeIfEnabled(editor, { saveFn } = {}) {\n if (this.isVimModeEnabled()) {\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n ace.config.loadModule(VIM_KEYBOARD_HANDLER, (module) => {\n module.CodeMirror.Vim.defineEx('write', 'w', (codeMirror) => {\n if (typeof saveFn === 'function') {\n saveFn()\n } else {\n codeMirror.ace.execCommand('save')\n }\n })\n })\n } else {\n editor.setKeyboardHandler(null)\n }\n },\n\n /**\n * Get the default scripting language from localStorage\n * @returns {string} 'ruby' or 'python', defaults to 'python'\n */\n getDefaultScriptingLanguage() {\n return localStorage.getItem(DEFAULT_LANGUAGE_STORAGE_KEY) || 'python'\n },\n\n /**\n * Set the default scripting language in localStorage\n * @param {string} language - 'ruby' or 'python'\n */\n setDefaultScriptingLanguage(language) {\n if (language === 'ruby' || language === 'python') {\n localStorage.setItem(DEFAULT_LANGUAGE_STORAGE_KEY, language)\n }\n },\n}\n","<template>\n <v-menu v-model=\"menuOpen\" :close-on-content-click=\"false\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n variant=\"outlined\"\n class=\"mx-1 menu-button\"\n :text=\"menu.label\"\n :data-test=\"formatDT(`${title} ${menu.label}`)\"\n >\n <template #append>\n <v-icon class=\"menu-button-icon\"> mdi-menu-down </v-icon>\n </template>\n </v-btn>\n </template>\n <v-list>\n <template v-for=\"(option, j) in menu.items\">\n <v-divider v-if=\"option.divider\" :key=\"j + '-divider'\" />\n <div\n v-else-if=\"option.subMenu && option.subMenu.length > 0\"\n :key=\"j + '-submenu'\"\n >\n <v-menu :key=\"j\" open-on-hover location=\"right\">\n <template #activator=\"{ props }\">\n <v-list-item v-bind=\"props\" :key=\"j\" :disabled=\"option.disabled\">\n <template v-if=\"option.icon\" #prepend>\n <v-icon :disabled=\"option.disabled\">\n {{ option.icon }}\n </v-icon>\n </template>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n <template #append>\n <v-icon> mdi-chevron-right </v-icon>\n </template>\n </v-list-item>\n </template>\n <v-list>\n <v-list-item\n v-for=\"(submenu, k) in option.subMenu\"\n :key=\"k\"\n :prepend-icon=\"submenu.icon\"\n @click=\"emits('submenu-click', submenu)\"\n >\n <v-list-item-title>{{ submenu.label }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n <v-radio-group\n v-else-if=\"option.radioGroup\"\n :key=\"j + '-radio-group'\"\n class=\"ma-0 pa-0\"\n density=\"compact\"\n hide-details\n :model-value=\"option.value\"\n @update:model-value=\"option.command\"\n >\n <v-list-item\n v-for=\"(choice, k) in option.choices\"\n :key=\"k + '-choice'\"\n >\n <v-list-item-action class=\"list-action\">\n <v-radio\n color=\"secondary\"\n :label=\"choice.label\"\n :value=\"choice.value\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n </v-list-item>\n </v-radio-group>\n <v-list-item\n v-else\n :key=\"j + '-list'\"\n :disabled=\"option.disabled\"\n :data-test=\"formatDT(`${title} ${menu.label} ${option.label}`)\"\n @click=\"\n () => {\n option.command(option)\n if (!option.checkbox) closeMenu()\n }\n \"\n >\n <template v-if=\"option.icon\" #prepend>\n <v-icon :icon=\"option.icon\" :disabled=\"option.disabled\"></v-icon>\n </template>\n <v-list-item-action v-if=\"option.checkbox\" class=\"list-action\">\n <v-checkbox\n v-model=\"option.checked\"\n :label=\"option.label\"\n color=\"secondary\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n </v-list-item>\n </template>\n </v-list>\n </v-menu>\n</template>\n\n<script setup>\nimport { ref } from 'vue'\n\ndefineProps({\n menu: { type: Object, required: true },\n title: { type: String, required: true },\n})\nconst emits = defineEmits(['submenu-click'])\n\nconst menuOpen = ref(false)\n\n/**\n * Close the menu programmatically.\n *\n * Allows setting close-on-content-click to false for the main menu to prevent closing when clicking a submenu, but\n * still close when clicking other menu item types\n */\nfunction closeMenu() {\n menuOpen.value = false\n}\n\n/**\n * Convert the string to a standard data-test format\n * @param {string} string\n */\nfunction formatDT(string) {\n return string.replaceAll(' ', '-').toLowerCase()\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <teleport to=\"#openc3-menu\">\n <v-row no-gutters>\n <v-col align-self=\"end\">\n <span class=\"app-title mr-2\">{{ title }}</span>\n </v-col>\n </v-row>\n <v-row dense class=\"flex-nowrap\">\n <TopBarMenu\n v-for=\"(menu, i) in menus\"\n :key=\"i + '-top-menu'\"\n :ref=\"'topmenu'\"\n :menu=\"menu\"\n :title=\"title\"\n @submenu-click=\"subMenuClick\"\n />\n </v-row>\n </teleport>\n</template>\n\n<script>\nimport TopBarMenu from './TopBarMenu.vue'\n\nexport default {\n components: {\n TopBarMenu,\n },\n props: {\n menus: {\n type: Array,\n default: function () {\n return []\n },\n },\n title: {\n type: String,\n default: '',\n },\n },\n mounted() {\n document.title = this.title\n },\n methods: {\n subMenuClick(submenu) {\n submenu.command(submenu)\n this.$refs.topmenu[0].isActive = false\n },\n },\n}\n</script>\n\n<style scoped>\n.app-title {\n font-size: 2rem;\n}\n/* The next three styles effectively style the button like a select drop down */\n.menu-button {\n border-color: var(--color-border-interactive-muted) !important;\n background-color: var(--color-background-base-default) !important;\n}\n.menu-button-icon {\n background-color: var(--color-background-surface-selected);\n border: 1px solid currentColor;\n border-radius: 3px;\n height: calc(var(--v-btn-height));\n width: calc(var(--v-btn-height));\n margin-top: -1px;\n margin-bottom: -1px;\n margin-left: 3px; /* parent's left margin (4px) - border (1px) */\n margin-right: -13px; /* parent's right margin (4px) - border (1px) - padding (16px) */\n}\n.list-action :deep(label) {\n color: white;\n padding-left: 20px;\n}\n.v-list :deep(.v-label) {\n margin-left: 5px;\n}\n.v-list-item-action {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item-title {\n color: white;\n}\n</style>\n"],"names":["VIM_MODE_STORAGE_KEY","VIM_KEYBOARD_HANDLER","DEFAULT_LANGUAGE_STORAGE_KEY","AceEditorUtils","value","editor","saveFn","module","codeMirror","language","emits","__emit","menuOpen","ref","closeMenu","formatDT","string","_createBlock","_component_v_menu","$event","_withCtx","props","_createVNode","_component_v_btn","_mergeProps","__props","_component_v_icon","_cache","_component_v_list","_openBlock","_createElementBlock","_Fragment","option","j","_component_v_divider","_component_v_list_item","_component_v_list_item_title","_normalizeStyle","_createTextVNode","_toDisplayString","submenu","k","_component_v_radio_group","choice","_component_v_list_item_action","_component_v_radio","_component_v_checkbox","_sfc_main","TopBarMenu","_hoisted_1","_Teleport","_component_v_row","_component_v_col","_createElementVNode","$props","_renderList","menu","i","_component_TopBarMenu","$options"],"mappings":"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"}
1
+ {"version":3,"file":"TopBar-lcB6jpd_.cjs","sources":["../src/components/ace/AceEditorUtils.js","../src/components/TopBarMenu.vue","../src/components/TopBar.vue"],"sourcesContent":["/*\n# Copyright 2025, OpenC3, Inc.\n# All Rights Reserved.\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.\n# See LICENSE.md 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 'ace-builds/src-min-noconflict/keybinding-vim'\nimport 'ace-builds/src-min-noconflict/ext-searchbox'\n\nconst VIM_MODE_STORAGE_KEY = 'openc3-ace-vim-mode-enabled'\nconst VIM_KEYBOARD_HANDLER = 'ace/keyboard/vim'\nconst DEFAULT_LANGUAGE_STORAGE_KEY = 'openc3-ace-default-scripting-language'\n\nexport default {\n /**\n * Check if vim mode is enabled from localStorage\n * @returns {boolean} true if vim mode is enabled\n */\n isVimModeEnabled() {\n return localStorage.getItem(VIM_MODE_STORAGE_KEY) === 'true'\n },\n\n /**\n * Sets the vim mode setting in localStorage\n * @param {boolean} value - new vim mode state\n */\n setVimMode(value) {\n localStorage.setItem(VIM_MODE_STORAGE_KEY, JSON.stringify(!!value))\n },\n\n /**\n * Toggle vim mode on/off and save to localStorage\n * @param {Object} editor - Ace editor instance\n */\n toggleVimMode(editor) {\n const isEnabled = this.isVimModeEnabled()\n\n if (isEnabled) {\n // Disable vim mode\n editor.setKeyboardHandler(null)\n this.setVimMode(false)\n } else {\n // Enable vim mode\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n this.setVimMode(true)\n }\n editor.focus()\n },\n\n /**\n * Apply vim mode to editor if enabled in localStorage\n * @param {Object} editor - Ace editor instance\n */\n applyVimModeIfEnabled(editor, { saveFn } = {}) {\n if (this.isVimModeEnabled()) {\n editor.setKeyboardHandler(VIM_KEYBOARD_HANDLER)\n ace.config.loadModule(VIM_KEYBOARD_HANDLER, (module) => {\n module.CodeMirror.Vim.defineEx('write', 'w', (codeMirror) => {\n if (typeof saveFn === 'function') {\n saveFn()\n } else {\n codeMirror.ace.execCommand('save')\n }\n })\n })\n } else {\n editor.setKeyboardHandler(null)\n }\n },\n\n /**\n * Get the default scripting language from localStorage\n * @returns {string} 'ruby' or 'python', defaults to 'python'\n */\n getDefaultScriptingLanguage() {\n return localStorage.getItem(DEFAULT_LANGUAGE_STORAGE_KEY) || 'python'\n },\n\n /**\n * Set the default scripting language in localStorage\n * @param {string} language - 'ruby' or 'python'\n */\n setDefaultScriptingLanguage(language) {\n if (language === 'ruby' || language === 'python') {\n localStorage.setItem(DEFAULT_LANGUAGE_STORAGE_KEY, language)\n }\n },\n}\n","<template>\n <v-menu v-model=\"menuOpen\" :close-on-content-click=\"false\">\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n variant=\"outlined\"\n class=\"mx-1 menu-button\"\n :text=\"menu.label\"\n :data-test=\"formatDT(`${title} ${menu.label}`)\"\n >\n <template #append>\n <v-icon class=\"menu-button-icon\"> mdi-menu-down </v-icon>\n </template>\n </v-btn>\n </template>\n <v-list>\n <template v-for=\"(option, j) in menu.items\">\n <v-divider v-if=\"option.divider\" :key=\"j + '-divider'\" />\n <div\n v-else-if=\"option.subMenu && option.subMenu.length > 0\"\n :key=\"j + '-submenu'\"\n >\n <v-menu :key=\"j\" open-on-hover location=\"right\">\n <template #activator=\"{ props }\">\n <v-list-item v-bind=\"props\" :key=\"j\" :disabled=\"option.disabled\">\n <template v-if=\"option.icon\" #prepend>\n <v-icon :disabled=\"option.disabled\">\n {{ option.icon }}\n </v-icon>\n </template>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n <template #append>\n <v-icon> mdi-chevron-right </v-icon>\n </template>\n </v-list-item>\n </template>\n <v-list>\n <v-list-item\n v-for=\"(submenu, k) in option.subMenu\"\n :key=\"k\"\n :prepend-icon=\"submenu.icon\"\n @click=\"emits('submenu-click', submenu)\"\n >\n <v-list-item-title>{{ submenu.label }}</v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n <v-radio-group\n v-else-if=\"option.radioGroup\"\n :key=\"j + '-radio-group'\"\n class=\"ma-0 pa-0\"\n density=\"compact\"\n hide-details\n :model-value=\"option.value\"\n @update:model-value=\"option.command\"\n >\n <v-list-item\n v-for=\"(choice, k) in option.choices\"\n :key=\"k + '-choice'\"\n >\n <v-list-item-action class=\"list-action\">\n <v-radio\n color=\"secondary\"\n :label=\"choice.label\"\n :value=\"choice.value\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n </v-list-item>\n </v-radio-group>\n <v-list-item\n v-else\n :key=\"j + '-list'\"\n :disabled=\"option.disabled\"\n :data-test=\"formatDT(`${title} ${menu.label} ${option.label}`)\"\n @click=\"\n () => {\n option.command(option)\n if (!option.checkbox) closeMenu()\n }\n \"\n >\n <template v-if=\"option.icon\" #prepend>\n <v-icon :icon=\"option.icon\" :disabled=\"option.disabled\"></v-icon>\n </template>\n <v-list-item-action v-if=\"option.checkbox\" class=\"list-action\">\n <v-checkbox\n v-model=\"option.checked\"\n :label=\"option.label\"\n color=\"secondary\"\n density=\"compact\"\n hide-details\n />\n </v-list-item-action>\n <v-list-item-title\n v-if=\"!option.radio && !option.checkbox\"\n :style=\"\n 'cursor: pointer;' + (option.disabled ? 'opacity: 0.2' : '')\n \"\n >\n {{ option.label }}\n </v-list-item-title>\n </v-list-item>\n </template>\n </v-list>\n </v-menu>\n</template>\n\n<script setup>\nimport { ref } from 'vue'\n\ndefineProps({\n menu: { type: Object, required: true },\n title: { type: String, required: true },\n})\nconst emits = defineEmits(['submenu-click'])\n\nconst menuOpen = ref(false)\n\n/**\n * Close the menu programmatically.\n *\n * Allows setting close-on-content-click to false for the main menu to prevent closing when clicking a submenu, but\n * still close when clicking other menu item types\n */\nfunction closeMenu() {\n menuOpen.value = false\n}\n\n/**\n * Convert the string to a standard data-test format\n * @param {string} string\n */\nfunction formatDT(string) {\n return string.replaceAll(' ', '-').toLowerCase()\n}\n</script>\n","<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\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.\n# See LICENSE.md for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2023, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <teleport to=\"#openc3-menu\">\n <v-row no-gutters>\n <v-col align-self=\"end\">\n <span class=\"app-title mr-2\">{{ title }}</span>\n </v-col>\n </v-row>\n <v-row dense class=\"flex-nowrap\">\n <TopBarMenu\n v-for=\"(menu, i) in menus\"\n :key=\"i + '-top-menu'\"\n :ref=\"'topmenu'\"\n :menu=\"menu\"\n :title=\"title\"\n @submenu-click=\"subMenuClick\"\n />\n </v-row>\n </teleport>\n</template>\n\n<script>\nimport TopBarMenu from './TopBarMenu.vue'\n\nexport default {\n components: {\n TopBarMenu,\n },\n props: {\n menus: {\n type: Array,\n default: function () {\n return []\n },\n },\n title: {\n type: String,\n default: '',\n },\n },\n mounted() {\n document.title = this.title\n },\n methods: {\n subMenuClick(submenu) {\n submenu.command(submenu)\n this.$refs.topmenu[0].isActive = false\n },\n },\n}\n</script>\n\n<style scoped>\n.app-title {\n font-size: 2rem;\n}\n/* The next three styles effectively style the button like a select drop down */\n.menu-button {\n border-color: var(--color-border-interactive-muted) !important;\n background-color: var(--color-background-base-default) !important;\n}\n.menu-button-icon {\n background-color: var(--color-background-surface-selected);\n border: 1px solid currentColor;\n border-radius: 3px;\n height: calc(var(--v-btn-height));\n width: calc(var(--v-btn-height));\n margin-top: -1px;\n margin-bottom: -1px;\n margin-left: 3px; /* parent's left margin (4px) - border (1px) */\n margin-right: -13px; /* parent's right margin (4px) - border (1px) - padding (16px) */\n}\n.list-action :deep(label) {\n color: white;\n padding-left: 20px;\n}\n.v-list :deep(.v-label) {\n margin-left: 5px;\n}\n.v-list-item-action {\n /* For some reason the default margin-right is huge */\n margin-right: 15px !important;\n}\n.v-list-item-title {\n color: white;\n}\n</style>\n"],"names":["VIM_MODE_STORAGE_KEY","VIM_KEYBOARD_HANDLER","DEFAULT_LANGUAGE_STORAGE_KEY","AceEditorUtils","value","editor","saveFn","module","codeMirror","language","emits","__emit","menuOpen","ref","closeMenu","formatDT","string","_createBlock","_component_v_menu","$event","_withCtx","props","_createVNode","_component_v_btn","_mergeProps","__props","_component_v_icon","_cache","_component_v_list","_openBlock","_createElementBlock","_Fragment","option","j","_component_v_divider","_component_v_list_item","_component_v_list_item_title","_normalizeStyle","_createTextVNode","_toDisplayString","submenu","k","_component_v_radio_group","choice","_component_v_list_item_action","_component_v_radio","_component_v_checkbox","_sfc_main","TopBarMenu","_hoisted_1","_Teleport","_component_v_row","_component_v_col","_createElementVNode","$props","_renderList","menu","i","_component_TopBarMenu","$options"],"mappings":"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"}