@openc3/vue-common 6.10.3 → 6.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/dist/{ArrayWidget-Bc-Awsbn.js → ArrayWidget-CB1594s3.js} +4 -4
  2. package/dist/{ArrayWidget-Bc-Awsbn.js.map → ArrayWidget-CB1594s3.js.map} +1 -1
  3. package/dist/{ArrayWidget-B35vCzAo.cjs → ArrayWidget-CKVa2jS0.cjs} +2 -2
  4. package/dist/{ArrayWidget-B35vCzAo.cjs.map → ArrayWidget-CKVa2jS0.cjs.map} +1 -1
  5. package/dist/{ArrayplotWidget-B67ip6aR.cjs → ArrayplotWidget-BTIkHdc1.cjs} +2 -2
  6. package/dist/{ArrayplotWidget-B67ip6aR.cjs.map → ArrayplotWidget-BTIkHdc1.cjs.map} +1 -1
  7. package/dist/{ArrayplotWidget-B9UGCr4-.js → ArrayplotWidget-BfauFgCc.js} +3 -3
  8. package/dist/{ArrayplotWidget-B9UGCr4-.js.map → ArrayplotWidget-BfauFgCc.js.map} +1 -1
  9. package/dist/{BarColumn-3fKM-em2.cjs → BarColumn-3M4oLg_y.cjs} +2 -2
  10. package/dist/{BarColumn-3fKM-em2.cjs.map → BarColumn-3M4oLg_y.cjs.map} +1 -1
  11. package/dist/{BarColumn-ClLBRGll.js → BarColumn-BN5j9sPr.js} +3 -3
  12. package/dist/{BarColumn-ClLBRGll.js.map → BarColumn-BN5j9sPr.js.map} +1 -1
  13. package/dist/{BlockWidget-CoQp-LZM.js → BlockWidget-C9__-7CU.js} +4 -4
  14. package/dist/{BlockWidget-CoQp-LZM.js.map → BlockWidget-C9__-7CU.js.map} +1 -1
  15. package/dist/{BlockWidget-DWexy9Dx.cjs → BlockWidget-Ur9wX3Gb.cjs} +2 -2
  16. package/dist/{BlockWidget-DWexy9Dx.cjs.map → BlockWidget-Ur9wX3Gb.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-BBpVoIzj.cjs → ButtonWidget-Cn74AwrM.cjs} +3 -3
  18. package/dist/{ButtonWidget-BBpVoIzj.cjs.map → ButtonWidget-Cn74AwrM.cjs.map} +1 -1
  19. package/dist/{ButtonWidget-CTTwpFec.js → ButtonWidget-CyixmRMa.js} +6 -6
  20. package/dist/{ButtonWidget-CTTwpFec.js.map → ButtonWidget-CyixmRMa.js.map} +1 -1
  21. package/dist/{CanvasWidget-Qlx-Mo8v.cjs → CanvasWidget-B8iqIUJ_.cjs} +2 -2
  22. package/dist/{CanvasWidget-Qlx-Mo8v.cjs.map → CanvasWidget-B8iqIUJ_.cjs.map} +1 -1
  23. package/dist/{CanvasWidget-jFarbJ3t.js → CanvasWidget-BlM9VhEb.js} +2 -2
  24. package/dist/{CanvasWidget-jFarbJ3t.js.map → CanvasWidget-BlM9VhEb.js.map} +1 -1
  25. package/dist/{CanvasdotWidget-BROyk4FH.cjs → CanvasdotWidget-CAXR5Ugc.cjs} +2 -2
  26. package/dist/{CanvasdotWidget-BROyk4FH.cjs.map → CanvasdotWidget-CAXR5Ugc.cjs.map} +1 -1
  27. package/dist/{CanvasdotWidget-BoyUcwiB.js → CanvasdotWidget-DcoLJfNd.js} +2 -2
  28. package/dist/{CanvasdotWidget-BoyUcwiB.js.map → CanvasdotWidget-DcoLJfNd.js.map} +1 -1
  29. package/dist/{CanvasimageWidget-DmyCSnuQ.js → CanvasimageWidget-BOa0--hu.js} +3 -3
  30. package/dist/{CanvasimageWidget-DmyCSnuQ.js.map → CanvasimageWidget-BOa0--hu.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-BvTJnGXu.cjs → CanvasimageWidget-DQW5IGWY.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-BvTJnGXu.cjs.map → CanvasimageWidget-DQW5IGWY.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-CzVrDo-Z.cjs → CanvasimagevalueWidget-C8PAOXth.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-CzVrDo-Z.cjs.map → CanvasimagevalueWidget-C8PAOXth.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-CmbngMqv.js → CanvasimagevalueWidget-CAnfTNIH.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-CmbngMqv.js.map → CanvasimagevalueWidget-CAnfTNIH.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-BnvwV9MA.cjs → CanvaslabelWidget-B_qS8Spc.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-BnvwV9MA.cjs.map → CanvaslabelWidget-B_qS8Spc.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-D8NzLKqi.js → CanvaslabelWidget-VhSU0ghh.js} +2 -2
  40. package/dist/{CanvaslabelWidget-D8NzLKqi.js.map → CanvaslabelWidget-VhSU0ghh.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-DVnkclHD.cjs → CanvaslabelvalueWidget-BSEbDdBo.cjs} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-DVnkclHD.cjs.map → CanvaslabelvalueWidget-BSEbDdBo.cjs.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-DOybGI9D.js → CanvaslabelvalueWidget-DLoJuMEa.js} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-DOybGI9D.js.map → CanvaslabelvalueWidget-DLoJuMEa.js.map} +1 -1
  45. package/dist/{CanvaslineWidget-D2NEei7j.js → CanvaslineWidget-COWhdPmg.js} +2 -2
  46. package/dist/{CanvaslineWidget-D2NEei7j.js.map → CanvaslineWidget-COWhdPmg.js.map} +1 -1
  47. package/dist/{CanvaslineWidget-DgbXSH1K.cjs → CanvaslineWidget-evoYrcu3.cjs} +2 -2
  48. package/dist/{CanvaslineWidget-DgbXSH1K.cjs.map → CanvaslineWidget-evoYrcu3.cjs.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-Ctvv9owf.js → CanvaslinevalueWidget-B2RUoEiO.js} +2 -2
  50. package/dist/{CanvaslinevalueWidget-Ctvv9owf.js.map → CanvaslinevalueWidget-B2RUoEiO.js.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-E3NDHyPl.cjs → CanvaslinevalueWidget-RhSLERSp.cjs} +2 -2
  52. package/dist/{CanvaslinevalueWidget-E3NDHyPl.cjs.map → CanvaslinevalueWidget-RhSLERSp.cjs.map} +1 -1
  53. package/dist/{CheckbuttonWidget-BdvWAgg_.cjs → CheckbuttonWidget-D2KHchsA.cjs} +2 -2
  54. package/dist/{CheckbuttonWidget-BdvWAgg_.cjs.map → CheckbuttonWidget-D2KHchsA.cjs.map} +1 -1
  55. package/dist/{CheckbuttonWidget-CQeR0BMF.js → CheckbuttonWidget-mMOQENwY.js} +2 -2
  56. package/dist/{CheckbuttonWidget-CQeR0BMF.js.map → CheckbuttonWidget-mMOQENwY.js.map} +1 -1
  57. package/dist/{ClassificationBanners-0BNhyyMS.cjs → ClassificationBanners-CKzacoSH.cjs} +2 -2
  58. package/dist/{ClassificationBanners-0BNhyyMS.cjs.map → ClassificationBanners-CKzacoSH.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-STI2n2yD.js → ClassificationBanners-CnKda5CL.js} +2 -2
  60. package/dist/{ClassificationBanners-STI2n2yD.js.map → ClassificationBanners-CnKda5CL.js.map} +1 -1
  61. package/dist/{ComboboxWidget-4N-MagvN.js → ComboboxWidget-BGuSLu81.js} +2 -2
  62. package/dist/{ComboboxWidget-4N-MagvN.js.map → ComboboxWidget-BGuSLu81.js.map} +1 -1
  63. package/dist/{ComboboxWidget-Dh0q9xpJ.cjs → ComboboxWidget-CuO75LNL.cjs} +2 -2
  64. package/dist/{ComboboxWidget-Dh0q9xpJ.cjs.map → ComboboxWidget-CuO75LNL.cjs.map} +1 -1
  65. package/dist/{CriticalCmdDialog-Dy1cQZxQ.cjs → CriticalCmdDialog-CW49WCHL.cjs} +2 -2
  66. package/dist/{CriticalCmdDialog-Dy1cQZxQ.cjs.map → CriticalCmdDialog-CW49WCHL.cjs.map} +1 -1
  67. package/dist/{CriticalCmdDialog-trVtKZft.js → CriticalCmdDialog-DqmsE7es.js} +6 -6
  68. package/dist/{CriticalCmdDialog-trVtKZft.js.map → CriticalCmdDialog-DqmsE7es.js.map} +1 -1
  69. package/dist/{DateWidget-DXN7u3vL.cjs → DateWidget-CC63S2BH.cjs} +2 -2
  70. package/dist/{DateWidget-DXN7u3vL.cjs.map → DateWidget-CC63S2BH.cjs.map} +1 -1
  71. package/dist/{DateWidget-rYTjwUdb.js → DateWidget-DYTNL9Nt.js} +2 -2
  72. package/dist/{DateWidget-rYTjwUdb.js.map → DateWidget-DYTNL9Nt.js.map} +1 -1
  73. package/dist/{DetailsDialog-p_vutijL.js → DetailsDialog-Bnj0flUv.js} +9 -9
  74. package/dist/{DetailsDialog-p_vutijL.js.map → DetailsDialog-Bnj0flUv.js.map} +1 -1
  75. package/dist/{DetailsDialog-CLCCuoHV.cjs → DetailsDialog-DW8hRSS6.cjs} +2 -2
  76. package/dist/{DetailsDialog-CLCCuoHV.cjs.map → DetailsDialog-DW8hRSS6.cjs.map} +1 -1
  77. package/dist/{EventListDialog-BshKrOuQ.js → EventListDialog-BV9m-oEq.js} +221 -229
  78. package/dist/EventListDialog-BV9m-oEq.js.map +1 -0
  79. package/dist/EventListDialog-CXiEoYXY.cjs +2 -0
  80. package/dist/EventListDialog-CXiEoYXY.cjs.map +1 -0
  81. package/dist/{FilechecksumWidget-Ddlm1UED.cjs → FilechecksumWidget-CCD4OHUJ.cjs} +2 -2
  82. package/dist/{FilechecksumWidget-Ddlm1UED.cjs.map → FilechecksumWidget-CCD4OHUJ.cjs.map} +1 -1
  83. package/dist/{FilechecksumWidget-gcmXxJHl.js → FilechecksumWidget-Cxu-88vM.js} +3 -3
  84. package/dist/{FilechecksumWidget-gcmXxJHl.js.map → FilechecksumWidget-Cxu-88vM.js.map} +1 -1
  85. package/dist/{FiledisplayWidget-CYX4HChi.cjs → FiledisplayWidget-BNCoMpUN.cjs} +2 -2
  86. package/dist/{FiledisplayWidget-CYX4HChi.cjs.map → FiledisplayWidget-BNCoMpUN.cjs.map} +1 -1
  87. package/dist/{FiledisplayWidget-CqM549A4.js → FiledisplayWidget-UimFPng3.js} +8 -8
  88. package/dist/{FiledisplayWidget-CqM549A4.js.map → FiledisplayWidget-UimFPng3.js.map} +1 -1
  89. package/dist/{FormatvalueWidget-BEwH0C7S.js → FormatvalueWidget-Ct3waryv.js} +13 -11
  90. package/dist/{FormatvalueWidget-BEwH0C7S.js.map → FormatvalueWidget-Ct3waryv.js.map} +1 -1
  91. package/dist/FormatvalueWidget-kOhazTdt.cjs +2 -0
  92. package/dist/{FormatvalueWidget-CpsyYKXD.cjs.map → FormatvalueWidget-kOhazTdt.cjs.map} +1 -1
  93. package/dist/Graph-BT7YHaLU.cjs +2 -0
  94. package/dist/{Graph-kmTrth08.cjs.map → Graph-BT7YHaLU.cjs.map} +1 -1
  95. package/dist/{Graph-CbjlChwf.js → Graph-Dy2y26su.js} +139 -143
  96. package/dist/{Graph-CbjlChwf.js.map → Graph-Dy2y26su.js.map} +1 -1
  97. package/dist/{GraphWidget-SamHg2AA.cjs → GraphWidget-BuLKrARk.cjs} +2 -2
  98. package/dist/{GraphWidget-SamHg2AA.cjs.map → GraphWidget-BuLKrARk.cjs.map} +1 -1
  99. package/dist/{GraphWidget-CjxnC0Dc.js → GraphWidget-CuG4jeoM.js} +2 -2
  100. package/dist/{GraphWidget-CjxnC0Dc.js.map → GraphWidget-CuG4jeoM.js.map} +1 -1
  101. package/dist/{HorizontalWidget-Dt8bkM3k.js → HorizontalWidget-C1K91iwc.js} +2 -2
  102. package/dist/{HorizontalWidget-Dt8bkM3k.js.map → HorizontalWidget-C1K91iwc.js.map} +1 -1
  103. package/dist/{HorizontalWidget-ByZjU21C.cjs → HorizontalWidget-Cg736bCD.cjs} +2 -2
  104. package/dist/{HorizontalWidget-ByZjU21C.cjs.map → HorizontalWidget-Cg736bCD.cjs.map} +1 -1
  105. package/dist/{HorizontalboxWidget-DzYz5SXs.cjs → HorizontalboxWidget-Bx1ISrig.cjs} +2 -2
  106. package/dist/{HorizontalboxWidget-DzYz5SXs.cjs.map → HorizontalboxWidget-Bx1ISrig.cjs.map} +1 -1
  107. package/dist/{HorizontalboxWidget-CdAZ5Sa6.js → HorizontalboxWidget-Db8knddI.js} +5 -5
  108. package/dist/{HorizontalboxWidget-CdAZ5Sa6.js.map → HorizontalboxWidget-Db8knddI.js.map} +1 -1
  109. package/dist/{HorizontallineWidget-C8Zhqxik.cjs → HorizontallineWidget-BRrshiSM.cjs} +2 -2
  110. package/dist/{HorizontallineWidget-C8Zhqxik.cjs.map → HorizontallineWidget-BRrshiSM.cjs.map} +1 -1
  111. package/dist/{HorizontallineWidget-CXZJTeU2.js → HorizontallineWidget-JtdiNy0r.js} +2 -2
  112. package/dist/{HorizontallineWidget-CXZJTeU2.js.map → HorizontallineWidget-JtdiNy0r.js.map} +1 -1
  113. package/dist/{IframeWidget-CrcWiAVE.js → IframeWidget-BIlFhl5W.js} +16 -16
  114. package/dist/IframeWidget-BIlFhl5W.js.map +1 -0
  115. package/dist/IframeWidget-CTwNNY_Y.cjs +2 -0
  116. package/dist/IframeWidget-CTwNNY_Y.cjs.map +1 -0
  117. package/dist/{ImageLoader-DPqax8yu.js → ImageLoader-Wgn0HO-B.js} +2 -2
  118. package/dist/{ImageLoader-DPqax8yu.js.map → ImageLoader-Wgn0HO-B.js.map} +1 -1
  119. package/dist/{ImageLoader-130w4tXJ.cjs → ImageLoader-maE53iG0.cjs} +2 -2
  120. package/dist/{ImageLoader-130w4tXJ.cjs.map → ImageLoader-maE53iG0.cjs.map} +1 -1
  121. package/dist/{ImageviewerWidget-CafLbLp2.cjs → ImageviewerWidget-CNYu5y1M.cjs} +2 -2
  122. package/dist/{ImageviewerWidget-CafLbLp2.cjs.map → ImageviewerWidget-CNYu5y1M.cjs.map} +1 -1
  123. package/dist/{ImageviewerWidget-CTEl6iPg.js → ImageviewerWidget-CsoNQsVN.js} +2 -2
  124. package/dist/{ImageviewerWidget-CTEl6iPg.js.map → ImageviewerWidget-CsoNQsVN.js.map} +1 -1
  125. package/dist/{InterfacesTab-B9ApLB5q.js → InterfacesTab-D1d6fYPx.js} +5 -5
  126. package/dist/{InterfacesTab-B9ApLB5q.js.map → InterfacesTab-D1d6fYPx.js.map} +1 -1
  127. package/dist/{InterfacesTab-wPQSLcSj.cjs → InterfacesTab-DN4Bx0jX.cjs} +2 -2
  128. package/dist/{InterfacesTab-wPQSLcSj.cjs.map → InterfacesTab-DN4Bx0jX.cjs.map} +1 -1
  129. package/dist/{LabelWidget-CPqKGMx0.js → LabelWidget-Ba4f7v6-.js} +2 -2
  130. package/dist/{LabelWidget-CPqKGMx0.js.map → LabelWidget-Ba4f7v6-.js.map} +1 -1
  131. package/dist/{LabelWidget-BfBP3Xme.cjs → LabelWidget-Mot3JRMt.cjs} +2 -2
  132. package/dist/{LabelWidget-BfBP3Xme.cjs.map → LabelWidget-Mot3JRMt.cjs.map} +1 -1
  133. package/dist/{LabelledWidget-CZvKfFNW.cjs → LabelledWidget-BUM4VRKk.cjs} +2 -2
  134. package/dist/{LabelledWidget-CZvKfFNW.cjs.map → LabelledWidget-BUM4VRKk.cjs.map} +1 -1
  135. package/dist/{LabelledWidget-BHYzRMFd.js → LabelledWidget-Cy_kY9Dr.js} +4 -4
  136. package/dist/{LabelledWidget-BHYzRMFd.js.map → LabelledWidget-Cy_kY9Dr.js.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-D9deeUo7.js → LabelprogressbarWidget-B7m4u1_T.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-D9deeUo7.js.map → LabelprogressbarWidget-B7m4u1_T.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-Bv0G5oT3.cjs → LabelprogressbarWidget-Ddv8wOiy.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-Bv0G5oT3.cjs.map → LabelprogressbarWidget-Ddv8wOiy.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-dyqEroDN.cjs → LabelsparklineWidget-BdPL_Qy6.cjs} +2 -2
  142. package/dist/{LabelsparklineWidget-dyqEroDN.cjs.map → LabelsparklineWidget-BdPL_Qy6.cjs.map} +1 -1
  143. package/dist/{LabelsparklineWidget-7mYre3CP.js → LabelsparklineWidget-CAwxzcl1.js} +4 -4
  144. package/dist/{LabelsparklineWidget-7mYre3CP.js.map → LabelsparklineWidget-CAwxzcl1.js.map} +1 -1
  145. package/dist/{LabelvalueWidget-NLsD60n4.js → LabelvalueWidget-DfkCk32l.js} +4 -4
  146. package/dist/{LabelvalueWidget-NLsD60n4.js.map → LabelvalueWidget-DfkCk32l.js.map} +1 -1
  147. package/dist/{LabelvalueWidget-Bsl7Z3wM.cjs → LabelvalueWidget-dJ_MMnTe.cjs} +2 -2
  148. package/dist/{LabelvalueWidget-Bsl7Z3wM.cjs.map → LabelvalueWidget-dJ_MMnTe.cjs.map} +1 -1
  149. package/dist/{LabelvaluedescWidget-B_Xih-c5.cjs → LabelvaluedescWidget-B1uUJbqG.cjs} +2 -2
  150. package/dist/{LabelvaluedescWidget-B_Xih-c5.cjs.map → LabelvaluedescWidget-B1uUJbqG.cjs.map} +1 -1
  151. package/dist/{LabelvaluedescWidget-DXROG4Gs.js → LabelvaluedescWidget-Dmff-Qnm.js} +5 -5
  152. package/dist/{LabelvaluedescWidget-DXROG4Gs.js.map → LabelvaluedescWidget-Dmff-Qnm.js.map} +1 -1
  153. package/dist/{LabelvaluelimitsbarWidget-DDd0RIs5.cjs → LabelvaluelimitsbarWidget-CBORsu08.cjs} +2 -2
  154. package/dist/{LabelvaluelimitsbarWidget-DDd0RIs5.cjs.map → LabelvaluelimitsbarWidget-CBORsu08.cjs.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-DqVqHF4W.js → LabelvaluelimitsbarWidget-QEB4zfXJ.js} +4 -4
  156. package/dist/{LabelvaluelimitsbarWidget-DqVqHF4W.js.map → LabelvaluelimitsbarWidget-QEB4zfXJ.js.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-BK6_31pC.js → LabelvaluelimitscolumnWidget-DxEW7ft1.js} +5 -5
  158. package/dist/{LabelvaluelimitscolumnWidget-BK6_31pC.js.map → LabelvaluelimitscolumnWidget-DxEW7ft1.js.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-C1aqkXh5.cjs → LabelvaluelimitscolumnWidget-xsju-uwF.cjs} +2 -2
  160. package/dist/{LabelvaluelimitscolumnWidget-C1aqkXh5.cjs.map → LabelvaluelimitscolumnWidget-xsju-uwF.cjs.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-a8u5LXBD.cjs → LabelvaluerangebarWidget-BxKS0aXY.cjs} +2 -2
  162. package/dist/{LabelvaluerangebarWidget-a8u5LXBD.cjs.map → LabelvaluerangebarWidget-BxKS0aXY.cjs.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-DR7C8gqw.js → LabelvaluerangebarWidget-Dc_4Eh2P.js} +4 -4
  164. package/dist/{LabelvaluerangebarWidget-DR7C8gqw.js.map → LabelvaluerangebarWidget-Dc_4Eh2P.js.map} +1 -1
  165. package/dist/{Layout-CVGghwYm.cjs → Layout-CevW0J6c.cjs} +2 -2
  166. package/dist/{Layout-CVGghwYm.cjs.map → Layout-CevW0J6c.cjs.map} +1 -1
  167. package/dist/{Layout-B_Hgw3gd.js → Layout-VFnL3qx_.js} +2 -2
  168. package/dist/{Layout-B_Hgw3gd.js.map → Layout-VFnL3qx_.js.map} +1 -1
  169. package/dist/{LedWidget-CiAVs2tj.js → LedWidget-BbBMEqh6.js} +4 -4
  170. package/dist/{LedWidget-CiAVs2tj.js.map → LedWidget-BbBMEqh6.js.map} +1 -1
  171. package/dist/{LedWidget-Cmy47xfg.cjs → LedWidget-D_mYilLS.cjs} +2 -2
  172. package/dist/{LedWidget-Cmy47xfg.cjs.map → LedWidget-D_mYilLS.cjs.map} +1 -1
  173. package/dist/{LimitsBar-_UQG-M6e.js → LimitsBar-CRNf8kCM.js} +2 -2
  174. package/dist/{LimitsBar-_UQG-M6e.js.map → LimitsBar-CRNf8kCM.js.map} +1 -1
  175. package/dist/{LimitsBar-DTtMywOw.cjs → LimitsBar-Cfi6zz4T.cjs} +2 -2
  176. package/dist/{LimitsBar-DTtMywOw.cjs.map → LimitsBar-Cfi6zz4T.cjs.map} +1 -1
  177. package/dist/{LimitsbarWidget-CIwcOhC8.js → LimitsbarWidget-BID8h8Fz.js} +3 -3
  178. package/dist/{LimitsbarWidget-CIwcOhC8.js.map → LimitsbarWidget-BID8h8Fz.js.map} +1 -1
  179. package/dist/{LimitsbarWidget-CYm_f1FN.cjs → LimitsbarWidget-Bw_M1QY6.cjs} +2 -2
  180. package/dist/{LimitsbarWidget-CYm_f1FN.cjs.map → LimitsbarWidget-Bw_M1QY6.cjs.map} +1 -1
  181. package/dist/{LimitscolorWidget-CGPfJwvT.js → LimitscolorWidget-Bm660cL9.js} +2 -2
  182. package/dist/{LimitscolorWidget-CGPfJwvT.js.map → LimitscolorWidget-Bm660cL9.js.map} +1 -1
  183. package/dist/{LimitscolorWidget-oH6NGl1C.cjs → LimitscolorWidget-CuiubDPH.cjs} +2 -2
  184. package/dist/{LimitscolorWidget-oH6NGl1C.cjs.map → LimitscolorWidget-CuiubDPH.cjs.map} +1 -1
  185. package/dist/{LimitscolumnWidget-CnGOCckG.cjs → LimitscolumnWidget-BuwnurP3.cjs} +2 -2
  186. package/dist/{LimitscolumnWidget-CnGOCckG.cjs.map → LimitscolumnWidget-BuwnurP3.cjs.map} +1 -1
  187. package/dist/{LimitscolumnWidget-Bj_UPEC8.js → LimitscolumnWidget-C_jzHXdC.js} +2 -2
  188. package/dist/{LimitscolumnWidget-Bj_UPEC8.js.map → LimitscolumnWidget-C_jzHXdC.js.map} +1 -1
  189. package/dist/{LinegraphWidget-zHs3NG-6.cjs → LinegraphWidget-Cgd3gSk8.cjs} +2 -2
  190. package/dist/{LinegraphWidget-zHs3NG-6.cjs.map → LinegraphWidget-Cgd3gSk8.cjs.map} +1 -1
  191. package/dist/{LinegraphWidget-DccnHbWa.js → LinegraphWidget-Pte5LxmO.js} +4 -4
  192. package/dist/{LinegraphWidget-DccnHbWa.js.map → LinegraphWidget-Pte5LxmO.js.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-U_NZ6aW-.js → MatrixbycolumnsWidget-j-3LkoxS.js} +3 -3
  194. package/dist/{MatrixbycolumnsWidget-U_NZ6aW-.js.map → MatrixbycolumnsWidget-j-3LkoxS.js.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-Dd-udu5V.cjs → MatrixbycolumnsWidget-tRuEujha.cjs} +2 -2
  196. package/dist/{MatrixbycolumnsWidget-Dd-udu5V.cjs.map → MatrixbycolumnsWidget-tRuEujha.cjs.map} +1 -1
  197. package/dist/{MicroservicesTab-DG3rdksb.js → MicroservicesTab-BFNyiTuf.js} +3 -3
  198. package/dist/{MicroservicesTab-DG3rdksb.js.map → MicroservicesTab-BFNyiTuf.js.map} +1 -1
  199. package/dist/{MicroservicesTab-DXgSxZ0K.cjs → MicroservicesTab-BhbOC0nm.cjs} +2 -2
  200. package/dist/{MicroservicesTab-DXgSxZ0K.cjs.map → MicroservicesTab-BhbOC0nm.cjs.map} +1 -1
  201. package/dist/OpenC3TimePicker-4kqB_Chf.cjs +2 -0
  202. package/dist/OpenC3TimePicker-4kqB_Chf.cjs.map +1 -0
  203. package/dist/OpenC3TimePicker-C9CBFp3d.js +219 -0
  204. package/dist/OpenC3TimePicker-C9CBFp3d.js.map +1 -0
  205. package/dist/{Openc3Screen-CDwAWaTl.js → Openc3Screen-BxuqrFPG.js} +714 -516
  206. package/dist/Openc3Screen-BxuqrFPG.js.map +1 -0
  207. package/dist/Openc3Screen-DuzCiS5h.cjs +6 -0
  208. package/dist/Openc3Screen-DuzCiS5h.cjs.map +1 -0
  209. package/dist/{OutputDialog-D2YCbR20.cjs → OutputDialog-C__OuTUo.cjs} +2 -2
  210. package/dist/{OutputDialog-D2YCbR20.cjs.map → OutputDialog-C__OuTUo.cjs.map} +1 -1
  211. package/dist/{OutputDialog-Di-pSmJE.js → OutputDialog-Dk3S2--J.js} +9 -9
  212. package/dist/{OutputDialog-Di-pSmJE.js.map → OutputDialog-Dk3S2--J.js.map} +1 -1
  213. package/dist/{PackagesTab-Bui5q3rX.js → PackagesTab-2UMA9TLY.js} +14 -14
  214. package/dist/{PackagesTab-Bui5q3rX.js.map → PackagesTab-2UMA9TLY.js.map} +1 -1
  215. package/dist/{PackagesTab-C-fV9yxw.cjs → PackagesTab-Ba4vRiFU.cjs} +2 -2
  216. package/dist/{PackagesTab-C-fV9yxw.cjs.map → PackagesTab-Ba4vRiFU.cjs.map} +1 -1
  217. package/dist/{PluginsTab-DxxlKeVx.cjs → PluginsTab-BSm5NCBn.cjs} +4 -4
  218. package/dist/{PluginsTab-DxxlKeVx.cjs.map → PluginsTab-BSm5NCBn.cjs.map} +1 -1
  219. package/dist/{PluginsTab-zR9eZuvc.js → PluginsTab-CS8RLv56.js} +4 -4
  220. package/dist/{PluginsTab-zR9eZuvc.js.map → PluginsTab-CS8RLv56.js.map} +1 -1
  221. package/dist/{ProgressbarWidget-Cxvwcfgn.cjs → ProgressbarWidget-D3jeqQZi.cjs} +2 -2
  222. package/dist/{ProgressbarWidget-Cxvwcfgn.cjs.map → ProgressbarWidget-D3jeqQZi.cjs.map} +1 -1
  223. package/dist/{ProgressbarWidget-D4JtVzyk.js → ProgressbarWidget-DB4g3d3i.js} +2 -2
  224. package/dist/{ProgressbarWidget-D4JtVzyk.js.map → ProgressbarWidget-DB4g3d3i.js.map} +1 -1
  225. package/dist/{RadiobuttonWidget-BUaW7pRx.js → RadiobuttonWidget-CbLLNEeT.js} +2 -2
  226. package/dist/{RadiobuttonWidget-BUaW7pRx.js.map → RadiobuttonWidget-CbLLNEeT.js.map} +1 -1
  227. package/dist/{RadiobuttonWidget-Ccgftl13.cjs → RadiobuttonWidget-DpzokVRc.cjs} +2 -2
  228. package/dist/{RadiobuttonWidget-Ccgftl13.cjs.map → RadiobuttonWidget-DpzokVRc.cjs.map} +1 -1
  229. package/dist/{RadiogroupWidget-CSxjpxCr.cjs → RadiogroupWidget-C8M7BvLR.cjs} +2 -2
  230. package/dist/{RadiogroupWidget-CSxjpxCr.cjs.map → RadiogroupWidget-C8M7BvLR.cjs.map} +1 -1
  231. package/dist/{RadiogroupWidget-NIv4CaUQ.js → RadiogroupWidget-DdTKUKGT.js} +2 -2
  232. package/dist/{RadiogroupWidget-NIv4CaUQ.js.map → RadiogroupWidget-DdTKUKGT.js.map} +1 -1
  233. package/dist/{RangebarWidget-1-CsFpcl.js → RangebarWidget-DvegNZg3.js} +2 -2
  234. package/dist/{RangebarWidget-1-CsFpcl.js.map → RangebarWidget-DvegNZg3.js.map} +1 -1
  235. package/dist/{RangebarWidget-BtxfPo-U.cjs → RangebarWidget-YWSjQavR.cjs} +2 -2
  236. package/dist/{RangebarWidget-BtxfPo-U.cjs.map → RangebarWidget-YWSjQavR.cjs.map} +1 -1
  237. package/dist/{RedisTab-DOozcC9a.cjs → RedisTab-Bs8368J6.cjs} +2 -2
  238. package/dist/{RedisTab-DOozcC9a.cjs.map → RedisTab-Bs8368J6.cjs.map} +1 -1
  239. package/dist/{RedisTab-DuO-zUV3.js → RedisTab-C2dYwa7Q.js} +5 -5
  240. package/dist/{RedisTab-DuO-zUV3.js.map → RedisTab-C2dYwa7Q.js.map} +1 -1
  241. package/dist/{RollupWidget-ChasTJYP.js → RollupWidget-BfDjRI_8.js} +2 -2
  242. package/dist/{RollupWidget-ChasTJYP.js.map → RollupWidget-BfDjRI_8.js.map} +1 -1
  243. package/dist/{RollupWidget-CQxl1mlr.cjs → RollupWidget-jZjZhJpb.cjs} +2 -2
  244. package/dist/{RollupWidget-CQxl1mlr.cjs.map → RollupWidget-jZjZhJpb.cjs.map} +1 -1
  245. package/dist/{RoutersTab-C0UHSj-S.js → RoutersTab-BDKIQfPD.js} +3 -3
  246. package/dist/{RoutersTab-C0UHSj-S.js.map → RoutersTab-BDKIQfPD.js.map} +1 -1
  247. package/dist/{RoutersTab-DgWAXGUv.cjs → RoutersTab-DtHCBbXB.cjs} +2 -2
  248. package/dist/{RoutersTab-DgWAXGUv.cjs.map → RoutersTab-DtHCBbXB.cjs.map} +1 -1
  249. package/dist/{ScriptChooser-C5HHbbcP.js → ScriptChooser-D12U4b0f.js} +13 -13
  250. package/dist/ScriptChooser-D12U4b0f.js.map +1 -0
  251. package/dist/ScriptChooser-QTzU0krS.cjs +2 -0
  252. package/dist/ScriptChooser-QTzU0krS.cjs.map +1 -0
  253. package/dist/{ScrollwindowWidget-Bkyjw0Qt.cjs → ScrollwindowWidget-BQU2wUnY.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-Bkyjw0Qt.cjs.map → ScrollwindowWidget-BQU2wUnY.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-Y2J758y6.js → ScrollwindowWidget-BdRjQVVF.js} +2 -2
  256. package/dist/{ScrollwindowWidget-Y2J758y6.js.map → ScrollwindowWidget-BdRjQVVF.js.map} +1 -1
  257. package/dist/{SecretsTab-c5g8Zk4g.js → SecretsTab-9350W-Wd.js} +4 -4
  258. package/dist/{SecretsTab-c5g8Zk4g.js.map → SecretsTab-9350W-Wd.js.map} +1 -1
  259. package/dist/{SecretsTab-Ds3kGOmd.cjs → SecretsTab-CoEChNXs.cjs} +2 -2
  260. package/dist/{SecretsTab-Ds3kGOmd.cjs.map → SecretsTab-CoEChNXs.cjs.map} +1 -1
  261. package/dist/{SettingsTab-CTd3_Ipy.js → SettingsTab-CPk_hNJp.js} +249 -136
  262. package/dist/SettingsTab-CPk_hNJp.js.map +1 -0
  263. package/dist/SettingsTab-CqYcXYBb.cjs +3 -0
  264. package/dist/SettingsTab-CqYcXYBb.cjs.map +1 -0
  265. package/dist/{SignalWidget-DFhHDicI.js → SignalWidget-BPiNqq8R.js} +2 -2
  266. package/dist/{SignalWidget-DFhHDicI.js.map → SignalWidget-BPiNqq8R.js.map} +1 -1
  267. package/dist/{SignalWidget-BkTXZpGV.cjs → SignalWidget-w0jzLGVV.cjs} +2 -2
  268. package/dist/{SignalWidget-BkTXZpGV.cjs.map → SignalWidget-w0jzLGVV.cjs.map} +1 -1
  269. package/dist/{SimpleTextDialog-CXIEKlX0.js → SimpleTextDialog-3uasUaXN.js} +2 -2
  270. package/dist/{SimpleTextDialog-CXIEKlX0.js.map → SimpleTextDialog-3uasUaXN.js.map} +1 -1
  271. package/dist/{SimpleTextDialog-Dv5ypyUQ.cjs → SimpleTextDialog-BpyUPxqT.cjs} +2 -2
  272. package/dist/{SimpleTextDialog-Dv5ypyUQ.cjs.map → SimpleTextDialog-BpyUPxqT.cjs.map} +1 -1
  273. package/dist/{SpacerWidget-D4KojaGb.js → SpacerWidget-CZGtLi7D.js} +2 -2
  274. package/dist/{SpacerWidget-D4KojaGb.js.map → SpacerWidget-CZGtLi7D.js.map} +1 -1
  275. package/dist/{SpacerWidget-HsSCc07C.cjs → SpacerWidget-D9BpT5w5.cjs} +2 -2
  276. package/dist/{SpacerWidget-HsSCc07C.cjs.map → SpacerWidget-D9BpT5w5.cjs.map} +1 -1
  277. package/dist/{SparklineWidget-DMHFzw8L.js → SparklineWidget-CjjqaZtm.js} +4 -4
  278. package/dist/{SparklineWidget-DMHFzw8L.js.map → SparklineWidget-CjjqaZtm.js.map} +1 -1
  279. package/dist/{SparklineWidget-BdRM-ymk.cjs → SparklineWidget-DXYD2dKC.cjs} +2 -2
  280. package/dist/{SparklineWidget-BdRM-ymk.cjs.map → SparklineWidget-DXYD2dKC.cjs.map} +1 -1
  281. package/dist/{TabbookWidget-NmIK-Lgf.cjs → TabbookWidget-DnCX6_eY.cjs} +2 -2
  282. package/dist/{TabbookWidget-NmIK-Lgf.cjs.map → TabbookWidget-DnCX6_eY.cjs.map} +1 -1
  283. package/dist/{TabbookWidget-NVLYMdFG.js → TabbookWidget-Dy8N2hq1.js} +2 -2
  284. package/dist/{TabbookWidget-NVLYMdFG.js.map → TabbookWidget-Dy8N2hq1.js.map} +1 -1
  285. package/dist/{TargetPacketItemChooser-D5h9Octy.js → TargetPacketItemChooser--rzU8ThE.js} +179 -146
  286. package/dist/TargetPacketItemChooser--rzU8ThE.js.map +1 -0
  287. package/dist/TargetPacketItemChooser-B3riNx-5.cjs +2 -0
  288. package/dist/TargetPacketItemChooser-B3riNx-5.cjs.map +1 -0
  289. package/dist/{TargetsTab-b35HgnRl.js → TargetsTab-DJBCaflz.js} +12 -12
  290. package/dist/{TargetsTab-b35HgnRl.js.map → TargetsTab-DJBCaflz.js.map} +1 -1
  291. package/dist/{TargetsTab-JLjpJ1wn.cjs → TargetsTab-Dqvu7l_c.cjs} +2 -2
  292. package/dist/{TargetsTab-JLjpJ1wn.cjs.map → TargetsTab-Dqvu7l_c.cjs.map} +1 -1
  293. package/dist/{TextboxWidget-CrMYPQIF.js → TextboxWidget-BSQPOr-R.js} +4 -4
  294. package/dist/{TextboxWidget-CrMYPQIF.js.map → TextboxWidget-BSQPOr-R.js.map} +1 -1
  295. package/dist/{TextboxWidget-xk3OFSUZ.cjs → TextboxWidget-DHHcXTpa.cjs} +2 -2
  296. package/dist/{TextboxWidget-xk3OFSUZ.cjs.map → TextboxWidget-DHHcXTpa.cjs.map} +1 -1
  297. package/dist/{TextfieldWidget-DnnKM6vS.cjs → TextfieldWidget-BbNHrjZB.cjs} +2 -2
  298. package/dist/{TextfieldWidget-DnnKM6vS.cjs.map → TextfieldWidget-BbNHrjZB.cjs.map} +1 -1
  299. package/dist/{TextfieldWidget-DMBQwtnb.js → TextfieldWidget-CTGnjpuY.js} +2 -2
  300. package/dist/{TextfieldWidget-DMBQwtnb.js.map → TextfieldWidget-CTGnjpuY.js.map} +1 -1
  301. package/dist/TimeWidget-B4qqIUWu.js +43 -0
  302. package/dist/TimeWidget-B4qqIUWu.js.map +1 -0
  303. package/dist/TimeWidget-BhyYijAr.cjs +2 -0
  304. package/dist/TimeWidget-BhyYijAr.cjs.map +1 -0
  305. package/dist/{TitleWidget-CfFyUkSu.cjs → TitleWidget-Dagdh8DQ.cjs} +2 -2
  306. package/dist/{TitleWidget-CfFyUkSu.cjs.map → TitleWidget-Dagdh8DQ.cjs.map} +1 -1
  307. package/dist/{TitleWidget-V1FGI8l3.js → TitleWidget-OwWpy1Jl.js} +2 -2
  308. package/dist/{TitleWidget-V1FGI8l3.js.map → TitleWidget-OwWpy1Jl.js.map} +1 -1
  309. package/dist/{ToolsTab-7qOQPnN3.js → ToolsTab-BddBK1tK.js} +248 -232
  310. package/dist/ToolsTab-BddBK1tK.js.map +1 -0
  311. package/dist/ToolsTab-BxrYmpF4.cjs +7 -0
  312. package/dist/ToolsTab-BxrYmpF4.cjs.map +1 -0
  313. package/dist/{TopBar-DdOFDiCo.cjs → TopBar-D6zYf4Ed.cjs} +2 -2
  314. package/dist/{TopBar-DdOFDiCo.cjs.map → TopBar-D6zYf4Ed.cjs.map} +1 -1
  315. package/dist/{TopBar-BkwvK0oj.js → TopBar-DcfK2Z2G.js} +2 -2
  316. package/dist/{TopBar-BkwvK0oj.js.map → TopBar-DcfK2Z2G.js.map} +1 -1
  317. package/dist/{UpgradeToEnterpriseDialog-CEUcvlkx.js → UpgradeToEnterpriseDialog-Cj0L60bW.js} +2 -2
  318. package/dist/{UpgradeToEnterpriseDialog-CEUcvlkx.js.map → UpgradeToEnterpriseDialog-Cj0L60bW.js.map} +1 -1
  319. package/dist/{UpgradeToEnterpriseDialog-CP-jJxU4.cjs → UpgradeToEnterpriseDialog-DHOqnrRc.cjs} +2 -2
  320. package/dist/{UpgradeToEnterpriseDialog-CP-jJxU4.cjs.map → UpgradeToEnterpriseDialog-DHOqnrRc.cjs.map} +1 -1
  321. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-8uBNo_8r.js} +10122 -9919
  322. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-8uBNo_8r.js.map +1 -0
  323. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-COA1HwFc.cjs +1501 -0
  324. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-COA1HwFc.cjs.map +1 -0
  325. package/dist/{VWidget-rAFU-0vj.js → VWidget-B8DTwMbX.js} +44 -11
  326. package/dist/VWidget-B8DTwMbX.js.map +1 -0
  327. package/dist/VWidget-od6gU6UT.cjs +2 -0
  328. package/dist/VWidget-od6gU6UT.cjs.map +1 -0
  329. package/dist/{ValueWidget-CwuH7beM.cjs → ValueWidget-9DW9QZ_F.cjs} +2 -2
  330. package/dist/{ValueWidget-CwuH7beM.cjs.map → ValueWidget-9DW9QZ_F.cjs.map} +1 -1
  331. package/dist/{ValueWidget-BI3uXmda.js → ValueWidget-CD-gsoJa.js} +4 -4
  332. package/dist/{ValueWidget-BI3uXmda.js.map → ValueWidget-CD-gsoJa.js.map} +1 -1
  333. package/dist/{ValuelimitsbarWidget-BGSJLpw4.js → ValuelimitsbarWidget-CKqMqplL.js} +4 -4
  334. package/dist/{ValuelimitsbarWidget-BGSJLpw4.js.map → ValuelimitsbarWidget-CKqMqplL.js.map} +1 -1
  335. package/dist/{ValuelimitsbarWidget-BSkGhA_y.cjs → ValuelimitsbarWidget-DgP-FRnw.cjs} +2 -2
  336. package/dist/{ValuelimitsbarWidget-BSkGhA_y.cjs.map → ValuelimitsbarWidget-DgP-FRnw.cjs.map} +1 -1
  337. package/dist/{ValuelimitscolumnWidget-BXdPahDO.cjs → ValuelimitscolumnWidget-DWik9H7C.cjs} +2 -2
  338. package/dist/{ValuelimitscolumnWidget-BXdPahDO.cjs.map → ValuelimitscolumnWidget-DWik9H7C.cjs.map} +1 -1
  339. package/dist/{ValuelimitscolumnWidget-CaNjHy4v.js → ValuelimitscolumnWidget-TbIlfRm8.js} +4 -4
  340. package/dist/{ValuelimitscolumnWidget-CaNjHy4v.js.map → ValuelimitscolumnWidget-TbIlfRm8.js.map} +1 -1
  341. package/dist/{ValuerangebarWidget-Do40-aaL.js → ValuerangebarWidget-CIR3qshL.js} +4 -4
  342. package/dist/{ValuerangebarWidget-Do40-aaL.js.map → ValuerangebarWidget-CIR3qshL.js.map} +1 -1
  343. package/dist/{ValuerangebarWidget-DvWGqBNM.cjs → ValuerangebarWidget-DMPQMn23.cjs} +2 -2
  344. package/dist/{ValuerangebarWidget-DvWGqBNM.cjs.map → ValuerangebarWidget-DMPQMn23.cjs.map} +1 -1
  345. package/dist/{VerticalWidget-y238HI2A.cjs → VerticalWidget-BjDRWx1I.cjs} +2 -2
  346. package/dist/{VerticalWidget-y238HI2A.cjs.map → VerticalWidget-BjDRWx1I.cjs.map} +1 -1
  347. package/dist/{VerticalWidget-DZqghqIm.js → VerticalWidget-DpMgiz2m.js} +2 -2
  348. package/dist/{VerticalWidget-DZqghqIm.js.map → VerticalWidget-DpMgiz2m.js.map} +1 -1
  349. package/dist/{VerticalboxWidget-CQ__4FcS.js → VerticalboxWidget-BznaAPyj.js} +5 -5
  350. package/dist/{VerticalboxWidget-CQ__4FcS.js.map → VerticalboxWidget-BznaAPyj.js.map} +1 -1
  351. package/dist/{VerticalboxWidget--dgKnG5Z.cjs → VerticalboxWidget-DcQvJ13j.cjs} +2 -2
  352. package/dist/{VerticalboxWidget--dgKnG5Z.cjs.map → VerticalboxWidget-DcQvJ13j.cjs.map} +1 -1
  353. package/dist/{Widget-DdxHKVWn.cjs → Widget-BUhqs-wN.cjs} +2 -2
  354. package/dist/{Widget-DdxHKVWn.cjs.map → Widget-BUhqs-wN.cjs.map} +1 -1
  355. package/dist/{Widget-6-Nvewdp.js → Widget-E_9ky7hf.js} +2 -2
  356. package/dist/{Widget-6-Nvewdp.js.map → Widget-E_9ky7hf.js.map} +1 -1
  357. package/dist/components.cjs +3 -3
  358. package/dist/components.cjs.map +1 -1
  359. package/dist/components.js +380 -215
  360. package/dist/components.js.map +1 -1
  361. package/dist/index-D-zO4ghE.cjs +10 -0
  362. package/dist/index-D-zO4ghE.cjs.map +1 -0
  363. package/dist/{index-3k1IXN1T.js → index-DCtILi4r.js} +765 -622
  364. package/dist/index-DCtILi4r.js.map +1 -0
  365. package/dist/plugins.cjs +1 -1
  366. package/dist/plugins.cjs.map +1 -1
  367. package/dist/plugins.js +1 -1
  368. package/dist/plugins.js.map +1 -1
  369. package/dist/purify.es-B9BW70-4.cjs +3 -0
  370. package/dist/purify.es-B9BW70-4.cjs.map +1 -0
  371. package/dist/{purify.es-BGaRrCfO.js → purify.es-BIuh5IAZ.js} +116 -116
  372. package/dist/purify.es-BIuh5IAZ.js.map +1 -0
  373. package/dist/{settings-CHPWZcnU.js → settings-CjEQxY67.js} +2 -2
  374. package/dist/{settings-CHPWZcnU.js.map → settings-CjEQxY67.js.map} +1 -1
  375. package/dist/{settings-BCE3SW-9.cjs → settings-J9UGWG6O.cjs} +2 -2
  376. package/dist/{settings-BCE3SW-9.cjs.map → settings-J9UGWG6O.cjs.map} +1 -1
  377. package/dist/tools/admin.cjs +4 -5
  378. package/dist/tools/admin.cjs.map +1 -1
  379. package/dist/tools/admin.js +936 -823
  380. package/dist/tools/admin.js.map +1 -1
  381. package/dist/tools/base.cjs +1 -1
  382. package/dist/tools/base.cjs.map +1 -1
  383. package/dist/tools/base.js +5 -5
  384. package/dist/tools/base.js.map +1 -1
  385. package/dist/tools/calendar.cjs +1 -1
  386. package/dist/tools/calendar.js +1 -1
  387. package/dist/tools/scriptrunner.cjs +8 -8
  388. package/dist/tools/scriptrunner.cjs.map +1 -1
  389. package/dist/tools/scriptrunner.js +1105 -1162
  390. package/dist/tools/scriptrunner.js.map +1 -1
  391. package/dist/vue-common.css +1 -1
  392. package/dist/widgets.cjs +1 -1
  393. package/dist/widgets.js +64 -64
  394. package/package.json +14 -14
  395. package/dist/EventListDialog-BshKrOuQ.js.map +0 -1
  396. package/dist/EventListDialog-D0iBpLSR.cjs +0 -2
  397. package/dist/EventListDialog-D0iBpLSR.cjs.map +0 -1
  398. package/dist/FormatvalueWidget-CpsyYKXD.cjs +0 -2
  399. package/dist/Graph-kmTrth08.cjs +0 -2
  400. package/dist/IframeWidget-BuNXXziR.cjs +0 -2
  401. package/dist/IframeWidget-BuNXXziR.cjs.map +0 -1
  402. package/dist/IframeWidget-CrcWiAVE.js.map +0 -1
  403. package/dist/Openc3Screen-CDwAWaTl.js.map +0 -1
  404. package/dist/Openc3Screen-CKs-49JN.cjs +0 -6
  405. package/dist/Openc3Screen-CKs-49JN.cjs.map +0 -1
  406. package/dist/ScriptChooser-C5HHbbcP.js.map +0 -1
  407. package/dist/ScriptChooser-D1dddugi.cjs +0 -2
  408. package/dist/ScriptChooser-D1dddugi.cjs.map +0 -1
  409. package/dist/SettingsTab-CTd3_Ipy.js.map +0 -1
  410. package/dist/SettingsTab-DMPRJELP.cjs +0 -3
  411. package/dist/SettingsTab-DMPRJELP.cjs.map +0 -1
  412. package/dist/TargetPacketItemChooser-B0IVMSib.cjs +0 -2
  413. package/dist/TargetPacketItemChooser-B0IVMSib.cjs.map +0 -1
  414. package/dist/TargetPacketItemChooser-D5h9Octy.js.map +0 -1
  415. package/dist/TimeWidget-CWLJZ2bt.js +0 -40
  416. package/dist/TimeWidget-CWLJZ2bt.js.map +0 -1
  417. package/dist/TimeWidget-W-flXfLb.cjs +0 -2
  418. package/dist/TimeWidget-W-flXfLb.cjs.map +0 -1
  419. package/dist/ToolsTab-7qOQPnN3.js.map +0 -1
  420. package/dist/ToolsTab-jUNdj09m.cjs +0 -7
  421. package/dist/ToolsTab-jUNdj09m.cjs.map +0 -1
  422. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs +0 -1498
  423. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-CX-SWpru.cjs.map +0 -1
  424. package/dist/UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-D9LFRi0t.js.map +0 -1
  425. package/dist/VWidget-BJArPtqI.cjs +0 -2
  426. package/dist/VWidget-BJArPtqI.cjs.map +0 -1
  427. package/dist/VWidget-rAFU-0vj.js.map +0 -1
  428. package/dist/index-3k1IXN1T.js.map +0 -1
  429. package/dist/index-DlWUR7vt.cjs +0 -7
  430. package/dist/index-DlWUR7vt.cjs.map +0 -1
  431. package/dist/purify.es-B608WQkR.cjs +0 -3
  432. package/dist/purify.es-B608WQkR.cjs.map +0 -1
  433. package/dist/purify.es-BGaRrCfO.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MicroservicesTab-DXgSxZ0K.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
1
+ {"version":3,"file":"MicroservicesTab-BhbOC0nm.cjs","sources":["../src/tools/admin/tabs/MicroservicesTab.vue"],"sourcesContent":["<!--\n# Copyright 2022 Ball Aerospace & Technologies Corp.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# Modified by OpenC3, Inc.\n# All changes Copyright 2025, OpenC3, Inc.\n# All Rights Reserved\n#\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <div>\n <v-alert v-model=\"showAlert\" closable :type=\"alertType\">{{\n alert\n }}</v-alert>\n <v-list class=\"list\" data-test=\"microserviceList\">\n <div v-for=\"microservice in microservices\" :key=\"microservice\">\n <v-list-item>\n <v-list-item-title>{{ microservice.name }}</v-list-item-title>\n <v-list-item-subtitle v-if=\"microservice_status[microservice.name]\">\n Updated:\n {{ formatDate(microservice_status[microservice.name].updated_at) }},\n State: {{ microservice_status[microservice.name].state }}, Enabled:\n {{ microservice.enabled === false ? 'False' : 'True' }}, Count:\n {{ microservice_status[microservice.name].count }}\n </v-list-item-subtitle>\n\n <template #append>\n <v-btn\n v-show=\"microservice_status[microservice.name]?.error\"\n icon=\"mdi-alert\"\n variant=\"text\"\n @click=\"showMicroserviceError(microservice.name)\"\n />\n <v-btn\n aria-label=\"Start Microservice\"\n icon=\"mdi-play\"\n variant=\"text\"\n @click=\"startMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Stop Microservice\"\n icon=\"mdi-stop\"\n variant=\"text\"\n @click=\"stopMicroservice(microservice.name)\"\n />\n <v-btn\n aria-label=\"Show Microservice Details\"\n icon=\"mdi-eye\"\n variant=\"text\"\n @click=\"showMicroservice(microservice.name)\"\n />\n </template>\n </v-list-item>\n <v-divider />\n </div>\n </v-list>\n <output-dialog\n v-if=\"showDialog\"\n v-model=\"showDialog\"\n :content=\"jsonContent\"\n type=\"Microservice\"\n :name=\"dialogTitle\"\n @submit=\"dialogCallback\"\n />\n <text-box-dialog\n v-if=\"showError\"\n v-model=\"showError\"\n :text=\"jsonContent\"\n :title=\"dialogTitle\"\n />\n </div>\n</template>\n\n<script>\nimport { toDate, format } from 'date-fns'\nimport { Api } from '@openc3/js-common/services'\nimport { OutputDialog, TextBoxDialog } from '@/components'\n\nexport default {\n components: {\n OutputDialog,\n TextBoxDialog,\n },\n data() {\n return {\n microservices: [],\n microservice_status: {},\n microservice_id: null,\n jsonContent: '',\n dialogTitle: '',\n showDialog: false,\n showError: false,\n alert: '',\n alertType: 'success',\n showAlert: false,\n updater: null,\n }\n },\n mounted() {\n this.update()\n this.updater = setInterval(() => {\n this.update()\n }, 2000)\n },\n beforeUnmount() {\n clearInterval(this.updater)\n this.updater = null\n },\n methods: {\n update: function () {\n Api.get('/openc3-api/microservice_status/all').then((response) => {\n this.microservice_status = response.data\n })\n Api.get('/openc3-api/microservices/all').then((response) => {\n // Convert hash of microservices to array of microservices\n let microservices = []\n for (const [microservice_name, microservice] of Object.entries(\n response.data,\n )) {\n microservices.push(microservice)\n }\n microservices.sort((a, b) => a.name.localeCompare(b.name))\n this.microservices = microservices\n })\n },\n startMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to restart microservice: ${name}?`, {\n okText: 'Start',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/start`)\n .then((response) => {\n this.alert = `Started ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n stopMicroservice: function (name) {\n this.$dialog\n .confirm(`Are you sure you want to stop microservice: ${name}?`, {\n okText: 'Stop',\n cancelText: 'Cancel',\n })\n .then((dialog) => {\n Api.post(`/openc3-api/microservices/${name}/stop`)\n .then((response) => {\n this.alert = `Stopped ${name}`\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n })\n .then(() => {\n this.update()\n })\n })\n },\n showMicroservice: function (name) {\n Api.get(`/openc3-api/microservices/${name}`).then((response) => {\n this.microservice_id = name\n this.dialogTitle = name\n this.jsonContent = JSON.stringify(response.data, null, '\\t')\n this.showDialog = true\n })\n },\n showMicroserviceError: function (name) {\n this.dialogTitle = name\n const e = this.microservice_status[name].error\n this.jsonContent = JSON.stringify(e, null, '\\t')\n this.showError = true\n },\n formatDate(nanoSecs) {\n return format(\n toDate(parseInt(nanoSecs) / 1000000),\n 'yyyy-MM-dd HH:mm:ss.SSS',\n )\n },\n dialogCallback: function (content) {\n this.showDialog = false\n if (content !== null) {\n let parsed = JSON.parse(content)\n let method = 'put'\n let url = `/openc3-api/microservices/${this.microservice_id}`\n if (parsed['name'] !== this.microservice_id) {\n method = 'post'\n url = '/openc3-api/microservices'\n }\n\n Api[method](url, {\n data: {\n json: content,\n },\n }).then((response) => {\n this.alert = 'Modified Microservice'\n this.alertType = 'success'\n this.showAlert = true\n setTimeout(() => {\n this.showAlert = false\n }, 5000)\n this.update()\n })\n }\n },\n },\n}\n</script>\n\n<style scoped>\n.list {\n background-color: var(--color-background-surface-default) !important;\n overflow-x: hidden;\n}\n.v-theme--cosmosDark.v-list div:nth-child(odd) .v-list-item {\n background-color: var(--color-background-base-selected) !important;\n}\n</style>\n"],"names":["_sfc_main","OutputDialog","TextBoxDialog","Api","response","microservices","microservice_name","microservice","a","b","name","dialog","e","nanoSecs","format","toDate","content","parsed","method","url","_createElementBlock","_createVNode","_component_v_alert","$data","$event","_component_v_list","_Fragment","_renderList","_component_v_list_item","_component_v_btn","$options","_vShow","_a","_component_v_list_item_title","_createTextVNode","_toDisplayString","_createBlock","_component_v_list_item_subtitle","_component_v_divider","_component_output_dialog","_component_text_box_dialog"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const V=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-COA1HwFc.cjs"),e=require("vue"),_=require("./CustomIcon-CEc927h0.cjs"),y={inheritAttrs:!1,props:{modelValue:{type:String,default:""},label:{type:String,default:"Time"},rules:{type:Array,default:()=>[]},hideDetails:{type:[Boolean,String],default:!1},variant:{type:String,default:"filled"},density:{type:String,default:"default"},style:{type:[String,Object],default:""},textFieldClass:{type:String,default:""},dataTest:{type:String,default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{menu:!1,timeFormat:"ampm",tempTime:null,inputValue:""}},computed:{computedStyle(){return typeof this.style=="string"?this.style:this.style},computedRules(){return this.rules.map(t=>()=>t(this.modelValue))}},watch:{modelValue:{immediate:!0,handler(t){this.menu||(this.inputValue=this.formatForDisplay(t))}},inputValue(t){t===""&&this.modelValue!==""&&this.$emit("update:modelValue","")},menu(t){t&&(this.tempTime=this.modelValue||"00:00:00")},tempTime(t){this.menu&&t&&(this.inputValue=this.formatForDisplay(t))}},async created(){await this.loadTimeFormat(),this.inputValue=this.formatForDisplay(this.modelValue)},methods:{async loadTimeFormat(){try{const a=await new V.Oi().get_setting("time_format");a&&(this.timeFormat=a)}catch{this.timeFormat="ampm"}},formatForDisplay(t){return t?this.timeFormat==="24hr"?t:this.convertTo12Hour(t):""},handleBlur(){const t=this.parseTimeInput(this.inputValue);t?(this.$emit("update:modelValue",t),this.inputValue=this.formatForDisplay(t)):this.inputValue===""?this.$emit("update:modelValue",""):this.inputValue=this.formatForDisplay(this.modelValue)},parseTimeInput(t){if(!t||t.trim()==="")return"";const a=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(a){const s=parseInt(a[1],10),n=parseInt(a[2],10),o=a[3]?parseInt(a[3],10):0;if(s>=0&&s<=23&&n>=0&&n<=59&&o>=0&&o<=59)return`${s.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}const i=t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)$/i);if(i){let s=parseInt(i[1],10);const n=parseInt(i[2],10),o=i[3]?parseInt(i[3],10):0,l=i[4].toUpperCase();if(s>=1&&s<=12&&n>=0&&n<=59&&o>=0&&o<=59)return l==="AM"?s===12&&(s=0):s!==12&&(s+=12),`${s.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}return null},save(){this.$emit("update:modelValue",this.tempTime),this.inputValue=this.formatForDisplay(this.tempTime),this.menu=!1},cancel(){this.tempTime=this.modelValue||"00:00:00",this.menu=!1},convertTo12Hour(t){if(!t)return"";const a=t.split(":");if(a.length<2)return t;let i=parseInt(a[0],10);const s=a[1],n=a.length>2?a[2]:"00",o=i>=12?"PM":"AM";return i=i%12,i=i||12,`${i.toString().padStart(2,"0")}:${s}:${n} ${o}`}}};function v(t,a,i,s,n,o){const l=e.resolveComponent("v-icon"),u=e.resolveComponent("v-time-picker"),m=e.resolveComponent("v-spacer"),d=e.resolveComponent("v-btn"),p=e.resolveComponent("v-card-actions"),c=e.resolveComponent("v-card"),f=e.resolveComponent("v-menu"),h=e.resolveComponent("v-text-field");return e.openBlock(),e.createBlock(h,{modelValue:n.inputValue,"onUpdate:modelValue":a[2]||(a[2]=r=>n.inputValue=r),label:i.label,rules:o.computedRules,"hide-details":i.hideDetails,variant:i.variant,density:i.density,style:e.normalizeStyle(o.computedStyle),class:e.normalizeClass(i.textFieldClass),disabled:i.disabled,"data-test":i.dataTest,onBlur:o.handleBlur,onKeydown:e.withKeys(o.handleBlur,["enter"])},{"prepend-inner":e.withCtx(()=>[e.createVNode(f,{modelValue:n.menu,"onUpdate:modelValue":a[1]||(a[1]=r=>n.menu=r),"close-on-content-click":!1,transition:"scale-transition",offset:"16"},{activator:e.withCtx(({props:r})=>[e.createVNode(l,e.mergeProps(r,{class:"cursor-pointer"}),{default:e.withCtx(()=>[...a[3]||(a[3]=[e.createTextVNode(" mdi-clock-outline ",-1)])]),_:1},16)]),default:e.withCtx(()=>[e.createVNode(c,{class:"time-picker-card"},{default:e.withCtx(()=>[e.createVNode(u,{modelValue:n.tempTime,"onUpdate:modelValue":a[0]||(a[0]=r=>n.tempTime=r),format:n.timeFormat,scrollable:"","use-seconds":"","hide-header":""},null,8,["modelValue","format"]),e.createVNode(p,null,{default:e.withCtx(()=>[e.createVNode(m),e.createVNode(d,{variant:"text",onClick:o.cancel},{default:e.withCtx(()=>[...a[4]||(a[4]=[e.createTextVNode("Cancel",-1)])]),_:1},8,["onClick"]),e.createVNode(d,{color:"primary",variant:"text",onClick:o.save},{default:e.withCtx(()=>[...a[5]||(a[5]=[e.createTextVNode("OK",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue","label","rules","hide-details","variant","density","style","class","disabled","data-test","onBlur","onKeydown"])}const C=_._export_sfc(y,[["render",v],["__scopeId","data-v-6afa73b6"]]);exports.OpenC3TimePicker=C;
2
+ //# sourceMappingURL=OpenC3TimePicker-4kqB_Chf.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenC3TimePicker-4kqB_Chf.cjs","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n this.tempTime = this.modelValue || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n await this.loadTimeFormat()\n // Update display after loading time format\n this.inputValue = this.formatForDisplay(this.modelValue)\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = parseInt(time24Match[1], 10)\n const minutes = parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = parseInt(time12Match[1], 10)\n const minutes = parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.modelValue || '00:00:00'\n this.menu = false\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = parseInt(parts[0], 10)\n const minutes = parts[1]\n const seconds = parts.length > 2 ? parts[2] : '00'\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n return `${paddedHours}:${minutes}:${seconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","parts","ampm","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ import { O as v } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_dda5adfc_lang-8uBNo_8r.js";
2
+ import { resolveComponent as n, createBlock as S, openBlock as g, withKeys as T, normalizeClass as F, normalizeStyle as b, withCtx as r, createVNode as o, createTextVNode as d, mergeProps as k } from "vue";
3
+ import { _ as C } from "./CustomIcon-B9m73Gqm.js";
4
+ const x = {
5
+ inheritAttrs: !1,
6
+ props: {
7
+ modelValue: {
8
+ type: String,
9
+ default: ""
10
+ },
11
+ label: {
12
+ type: String,
13
+ default: "Time"
14
+ },
15
+ rules: {
16
+ type: Array,
17
+ default: () => []
18
+ },
19
+ hideDetails: {
20
+ type: [Boolean, String],
21
+ default: !1
22
+ },
23
+ variant: {
24
+ type: String,
25
+ default: "filled"
26
+ },
27
+ density: {
28
+ type: String,
29
+ default: "default"
30
+ },
31
+ style: {
32
+ type: [String, Object],
33
+ default: ""
34
+ },
35
+ textFieldClass: {
36
+ type: String,
37
+ default: ""
38
+ },
39
+ dataTest: {
40
+ type: String,
41
+ default: ""
42
+ },
43
+ disabled: {
44
+ type: Boolean,
45
+ default: !1
46
+ }
47
+ },
48
+ emits: ["update:modelValue"],
49
+ data() {
50
+ return {
51
+ menu: !1,
52
+ timeFormat: "ampm",
53
+ tempTime: null,
54
+ inputValue: ""
55
+ };
56
+ },
57
+ computed: {
58
+ computedStyle() {
59
+ return typeof this.style == "string" ? this.style : this.style;
60
+ },
61
+ computedRules() {
62
+ return this.rules.map((t) => () => t(this.modelValue));
63
+ }
64
+ },
65
+ watch: {
66
+ modelValue: {
67
+ immediate: !0,
68
+ handler(t) {
69
+ this.menu || (this.inputValue = this.formatForDisplay(t));
70
+ }
71
+ },
72
+ inputValue(t) {
73
+ t === "" && this.modelValue !== "" && this.$emit("update:modelValue", "");
74
+ },
75
+ menu(t) {
76
+ t && (this.tempTime = this.modelValue || "00:00:00");
77
+ },
78
+ tempTime(t) {
79
+ this.menu && t && (this.inputValue = this.formatForDisplay(t));
80
+ }
81
+ },
82
+ async created() {
83
+ await this.loadTimeFormat(), this.inputValue = this.formatForDisplay(this.modelValue);
84
+ },
85
+ methods: {
86
+ async loadTimeFormat() {
87
+ try {
88
+ const e = await new v().get_setting("time_format");
89
+ e && (this.timeFormat = e);
90
+ } catch {
91
+ this.timeFormat = "ampm";
92
+ }
93
+ },
94
+ formatForDisplay(t) {
95
+ return t ? this.timeFormat === "24hr" ? t : this.convertTo12Hour(t) : "";
96
+ },
97
+ handleBlur() {
98
+ const t = this.parseTimeInput(this.inputValue);
99
+ t ? (this.$emit("update:modelValue", t), this.inputValue = this.formatForDisplay(t)) : this.inputValue === "" ? this.$emit("update:modelValue", "") : this.inputValue = this.formatForDisplay(this.modelValue);
100
+ },
101
+ parseTimeInput(t) {
102
+ if (!t || t.trim() === "") return "";
103
+ const e = t.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);
104
+ if (e) {
105
+ const l = parseInt(e[1], 10), i = parseInt(e[2], 10), s = e[3] ? parseInt(e[3], 10) : 0;
106
+ if (l >= 0 && l <= 23 && i >= 0 && i <= 59 && s >= 0 && s <= 59)
107
+ return `${l.toString().padStart(2, "0")}:${i.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")}`;
108
+ }
109
+ const a = t.match(
110
+ /^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)$/i
111
+ );
112
+ if (a) {
113
+ let l = parseInt(a[1], 10);
114
+ const i = parseInt(a[2], 10), s = a[3] ? parseInt(a[3], 10) : 0, m = a[4].toUpperCase();
115
+ if (l >= 1 && l <= 12 && i >= 0 && i <= 59 && s >= 0 && s <= 59)
116
+ return m === "AM" ? l === 12 && (l = 0) : l !== 12 && (l += 12), `${l.toString().padStart(2, "0")}:${i.toString().padStart(2, "0")}:${s.toString().padStart(2, "0")}`;
117
+ }
118
+ return null;
119
+ },
120
+ save() {
121
+ this.$emit("update:modelValue", this.tempTime), this.inputValue = this.formatForDisplay(this.tempTime), this.menu = !1;
122
+ },
123
+ cancel() {
124
+ this.tempTime = this.modelValue || "00:00:00", this.menu = !1;
125
+ },
126
+ convertTo12Hour(t) {
127
+ if (!t) return "";
128
+ const e = t.split(":");
129
+ if (e.length < 2) return t;
130
+ let a = parseInt(e[0], 10);
131
+ const l = e[1], i = e.length > 2 ? e[2] : "00", s = a >= 12 ? "PM" : "AM";
132
+ return a = a % 12, a = a || 12, `${a.toString().padStart(2, "0")}:${l}:${i} ${s}`;
133
+ }
134
+ }
135
+ };
136
+ function I(t, e, a, l, i, s) {
137
+ const m = n("v-icon"), c = n("v-time-picker"), f = n("v-spacer"), p = n("v-btn"), h = n("v-card-actions"), y = n("v-card"), V = n("v-menu"), _ = n("v-text-field");
138
+ return g(), S(_, {
139
+ modelValue: i.inputValue,
140
+ "onUpdate:modelValue": e[2] || (e[2] = (u) => i.inputValue = u),
141
+ label: a.label,
142
+ rules: s.computedRules,
143
+ "hide-details": a.hideDetails,
144
+ variant: a.variant,
145
+ density: a.density,
146
+ style: b(s.computedStyle),
147
+ class: F(a.textFieldClass),
148
+ disabled: a.disabled,
149
+ "data-test": a.dataTest,
150
+ onBlur: s.handleBlur,
151
+ onKeydown: T(s.handleBlur, ["enter"])
152
+ }, {
153
+ "prepend-inner": r(() => [
154
+ o(V, {
155
+ modelValue: i.menu,
156
+ "onUpdate:modelValue": e[1] || (e[1] = (u) => i.menu = u),
157
+ "close-on-content-click": !1,
158
+ transition: "scale-transition",
159
+ offset: "16"
160
+ }, {
161
+ activator: r(({ props: u }) => [
162
+ o(m, k(u, { class: "cursor-pointer" }), {
163
+ default: r(() => [...e[3] || (e[3] = [
164
+ d(" mdi-clock-outline ", -1)
165
+ ])]),
166
+ _: 1
167
+ }, 16)
168
+ ]),
169
+ default: r(() => [
170
+ o(y, { class: "time-picker-card" }, {
171
+ default: r(() => [
172
+ o(c, {
173
+ modelValue: i.tempTime,
174
+ "onUpdate:modelValue": e[0] || (e[0] = (u) => i.tempTime = u),
175
+ format: i.timeFormat,
176
+ scrollable: "",
177
+ "use-seconds": "",
178
+ "hide-header": ""
179
+ }, null, 8, ["modelValue", "format"]),
180
+ o(h, null, {
181
+ default: r(() => [
182
+ o(f),
183
+ o(p, {
184
+ variant: "text",
185
+ onClick: s.cancel
186
+ }, {
187
+ default: r(() => [...e[4] || (e[4] = [
188
+ d("Cancel", -1)
189
+ ])]),
190
+ _: 1
191
+ }, 8, ["onClick"]),
192
+ o(p, {
193
+ color: "primary",
194
+ variant: "text",
195
+ onClick: s.save
196
+ }, {
197
+ default: r(() => [...e[5] || (e[5] = [
198
+ d("OK", -1)
199
+ ])]),
200
+ _: 1
201
+ }, 8, ["onClick"])
202
+ ]),
203
+ _: 1
204
+ })
205
+ ]),
206
+ _: 1
207
+ })
208
+ ]),
209
+ _: 1
210
+ }, 8, ["modelValue"])
211
+ ]),
212
+ _: 1
213
+ }, 8, ["modelValue", "label", "rules", "hide-details", "variant", "density", "style", "class", "disabled", "data-test", "onBlur", "onKeydown"]);
214
+ }
215
+ const M = /* @__PURE__ */ C(x, [["render", I], ["__scopeId", "data-v-6afa73b6"]]);
216
+ export {
217
+ M as O
218
+ };
219
+ //# sourceMappingURL=OpenC3TimePicker-C9CBFp3d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenC3TimePicker-C9CBFp3d.js","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 OpenC3, Inc.\n# All Rights Reserved.\n#\n# This program is free software; you can modify and/or redistribute it\n# under the terms of the GNU Affero General Public License\n# as published by the Free Software Foundation; version 3 with\n# attribution addendums as found in the LICENSE.txt\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU Affero General Public License for more details.\n\n# This file may also be used under the terms of a commercial license\n# if purchased from OpenC3, Inc.\n-->\n\n<template>\n <v-text-field\n v-model=\"inputValue\"\n :label=\"label\"\n :rules=\"computedRules\"\n :hide-details=\"hideDetails\"\n :variant=\"variant\"\n :density=\"density\"\n :style=\"computedStyle\"\n :class=\"textFieldClass\"\n :disabled=\"disabled\"\n :data-test=\"dataTest\"\n @blur=\"handleBlur\"\n @keydown.enter=\"handleBlur\"\n >\n <template #prepend-inner>\n <v-menu\n v-model=\"menu\"\n :close-on-content-click=\"false\"\n transition=\"scale-transition\"\n offset=\"16\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-icon v-bind=\"menuProps\" class=\"cursor-pointer\">\n mdi-clock-outline\n </v-icon>\n </template>\n <v-card class=\"time-picker-card\">\n <v-time-picker\n v-model=\"tempTime\"\n :format=\"timeFormat\"\n scrollable\n use-seconds\n hide-header\n />\n <v-card-actions>\n <v-spacer />\n <v-btn variant=\"text\" @click=\"cancel\">Cancel</v-btn>\n <v-btn color=\"primary\" variant=\"text\" @click=\"save\">OK</v-btn>\n </v-card-actions>\n </v-card>\n </v-menu>\n </template>\n </v-text-field>\n</template>\n\n<script>\nimport { OpenC3Api } from '@openc3/js-common/services'\n\nexport default {\n inheritAttrs: false,\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n label: {\n type: String,\n default: 'Time',\n },\n rules: {\n type: Array,\n default: () => [],\n },\n hideDetails: {\n type: [Boolean, String],\n default: false,\n },\n variant: {\n type: String,\n default: 'filled',\n },\n density: {\n type: String,\n default: 'default',\n },\n style: {\n type: [String, Object],\n default: '',\n },\n textFieldClass: {\n type: String,\n default: '',\n },\n dataTest: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['update:modelValue'],\n data() {\n return {\n menu: false,\n timeFormat: 'ampm',\n tempTime: null,\n inputValue: '',\n }\n },\n computed: {\n computedStyle() {\n if (typeof this.style === 'string') {\n return this.style\n }\n return this.style\n },\n computedRules() {\n // Wrap the passed rules to validate against the 24-hour modelValue\n return this.rules.map((rule) => {\n return () => {\n return rule(this.modelValue)\n }\n })\n },\n },\n watch: {\n modelValue: {\n immediate: true,\n handler(newVal) {\n // Update input display when modelValue changes externally\n if (!this.menu) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n inputValue(newVal) {\n // Immediately emit empty value when input is cleared for instant validation\n if (newVal === '' && this.modelValue !== '') {\n this.$emit('update:modelValue', '')\n }\n },\n menu(newVal) {\n if (newVal) {\n // When menu opens, initialize tempTime with current value\n this.tempTime = this.modelValue || '00:00:00'\n }\n },\n tempTime(newVal) {\n // Update input display in real-time when using the time picker\n if (this.menu && newVal) {\n this.inputValue = this.formatForDisplay(newVal)\n }\n },\n },\n async created() {\n await this.loadTimeFormat()\n // Update display after loading time format\n this.inputValue = this.formatForDisplay(this.modelValue)\n },\n methods: {\n async loadTimeFormat() {\n try {\n const api = new OpenC3Api()\n const response = await api.get_setting('time_format')\n if (response) {\n this.timeFormat = response\n }\n } catch (error) {\n // Default to 'ampm' if setting is not found\n this.timeFormat = 'ampm'\n }\n },\n formatForDisplay(time24) {\n if (!time24) return ''\n if (this.timeFormat === '24hr') {\n return time24\n }\n return this.convertTo12Hour(time24)\n },\n handleBlur() {\n // Parse input and update modelValue\n const parsed = this.parseTimeInput(this.inputValue)\n if (parsed) {\n this.$emit('update:modelValue', parsed)\n this.inputValue = this.formatForDisplay(parsed)\n } else if (this.inputValue === '') {\n this.$emit('update:modelValue', '')\n } else {\n // Invalid input, revert to current modelValue display\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\n },\n parseTimeInput(input) {\n if (!input || input.trim() === '') return ''\n\n // Try to parse 24-hour format: HH:mm:ss or HH:mm\n const time24Match = input.match(/^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?$/)\n if (time24Match) {\n const hours = parseInt(time24Match[1], 10)\n const minutes = parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? parseInt(time24Match[3], 10) : 0\n if (\n hours >= 0 &&\n hours <= 23 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n // Try to parse 12-hour format: HH:mm:ss AM/PM or HH:mm AM/PM\n const time12Match = input.match(\n /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)$/i,\n )\n if (time12Match) {\n let hours = parseInt(time12Match[1], 10)\n const minutes = parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? parseInt(time12Match[3], 10) : 0\n const period = time12Match[4].toUpperCase()\n\n if (\n hours >= 1 &&\n hours <= 12 &&\n minutes >= 0 &&\n minutes <= 59 &&\n seconds >= 0 &&\n seconds <= 59\n ) {\n // Convert to 24-hour format\n if (period === 'AM') {\n if (hours === 12) hours = 0\n } else {\n if (hours !== 12) hours += 12\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n }\n\n return null // Invalid format\n },\n save() {\n this.$emit('update:modelValue', this.tempTime)\n this.inputValue = this.formatForDisplay(this.tempTime)\n this.menu = false\n },\n cancel() {\n this.tempTime = this.modelValue || '00:00:00'\n this.menu = false\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = parseInt(parts[0], 10)\n const minutes = parts[1]\n const seconds = parts.length > 2 ? parts[2] : '00'\n const ampm = hours >= 12 ? 'PM' : 'AM'\n hours = hours % 12\n hours = hours ? hours : 12 // 0 should be 12\n const paddedHours = hours.toString().padStart(2, '0')\n return `${paddedHours}:${minutes}:${seconds} ${ampm}`\n },\n },\n}\n</script>\n\n<style scoped>\n.time-picker-card {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock__container) {\n background-color: var(--color-background-surface-default);\n}\n.time-picker-card :deep(.v-time-picker-clock) {\n background-color: var(--color-background-base-default);\n}\n.time-picker-card :deep(.v-picker__header) {\n background-color: var(--color-background-surface-header);\n}\n.time-picker-card :deep(.v-picker-title) {\n background-color: var(--color-background-surface-header);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","rule","newVal","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","parts","ampm","_createBlock","_component_v_text_field","$data","$event","$props","$options","_createVNode","_component_v_menu","_withCtx","menuProps","_component_v_icon","_mergeProps","_cache","_component_v_card","_component_v_time_picker","_component_v_card_actions","_component_v_spacer","_component_v_btn"],"mappings":"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"}