@openc3/vue-common 7.0.0-rc3 → 7.0.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 (409) hide show
  1. package/dist/{ArrayWidget-B2-n1K3r.cjs → ArrayWidget-BsAUsmBz.cjs} +2 -2
  2. package/dist/{ArrayWidget-B2-n1K3r.cjs.map → ArrayWidget-BsAUsmBz.cjs.map} +1 -1
  3. package/dist/{ArrayWidget-dQWDMMrn.js → ArrayWidget-D2UrA5Db.js} +4 -4
  4. package/dist/{ArrayWidget-dQWDMMrn.js.map → ArrayWidget-D2UrA5Db.js.map} +1 -1
  5. package/dist/{ArrayplotWidget-DCnbK37q.js → ArrayplotWidget-CDNRxI2F.js} +3 -3
  6. package/dist/{ArrayplotWidget-DCnbK37q.js.map → ArrayplotWidget-CDNRxI2F.js.map} +1 -1
  7. package/dist/{ArrayplotWidget-BmBcPGUR.cjs → ArrayplotWidget-ChHMy5_L.cjs} +2 -2
  8. package/dist/{ArrayplotWidget-BmBcPGUR.cjs.map → ArrayplotWidget-ChHMy5_L.cjs.map} +1 -1
  9. package/dist/{BarColumn-CkecDAzn.cjs → BarColumn-e-sSkSvE.cjs} +2 -2
  10. package/dist/{BarColumn-CkecDAzn.cjs.map → BarColumn-e-sSkSvE.cjs.map} +1 -1
  11. package/dist/{BarColumn-DmOxuCa9.js → BarColumn-nSFR2LZF.js} +3 -3
  12. package/dist/{BarColumn-DmOxuCa9.js.map → BarColumn-nSFR2LZF.js.map} +1 -1
  13. package/dist/{BlockWidget-UejKxAxY.js → BlockWidget-C-WB0Q2m.js} +4 -4
  14. package/dist/{BlockWidget-UejKxAxY.js.map → BlockWidget-C-WB0Q2m.js.map} +1 -1
  15. package/dist/{BlockWidget-BZXHLTJt.cjs → BlockWidget-DJpyQiec.cjs} +2 -2
  16. package/dist/{BlockWidget-BZXHLTJt.cjs.map → BlockWidget-DJpyQiec.cjs.map} +1 -1
  17. package/dist/{ButtonWidget-DtAkhzCN.js → ButtonWidget-rS7sVb7m.js} +4 -4
  18. package/dist/{ButtonWidget-DtAkhzCN.js.map → ButtonWidget-rS7sVb7m.js.map} +1 -1
  19. package/dist/{ButtonWidget-CzRyY1N5.cjs → ButtonWidget-rkOE5b8G.cjs} +2 -2
  20. package/dist/{ButtonWidget-CzRyY1N5.cjs.map → ButtonWidget-rkOE5b8G.cjs.map} +1 -1
  21. package/dist/{CanvasWidget-YXQ8TLqA.js → CanvasWidget-DuWolVCW.js} +2 -2
  22. package/dist/{CanvasWidget-YXQ8TLqA.js.map → CanvasWidget-DuWolVCW.js.map} +1 -1
  23. package/dist/{CanvasWidget-cQqNxspP.cjs → CanvasWidget-Dv7_QUJY.cjs} +2 -2
  24. package/dist/{CanvasWidget-cQqNxspP.cjs.map → CanvasWidget-Dv7_QUJY.cjs.map} +1 -1
  25. package/dist/{CanvasdotWidget-BbmhHQV_.js → CanvasdotWidget-B42YizA1.js} +2 -2
  26. package/dist/{CanvasdotWidget-BbmhHQV_.js.map → CanvasdotWidget-B42YizA1.js.map} +1 -1
  27. package/dist/{CanvasdotWidget-CMIw-ga4.cjs → CanvasdotWidget-E1OgFBVZ.cjs} +2 -2
  28. package/dist/{CanvasdotWidget-CMIw-ga4.cjs.map → CanvasdotWidget-E1OgFBVZ.cjs.map} +1 -1
  29. package/dist/{CanvasimageWidget-CJf5NYEj.js → CanvasimageWidget-DMHdDTSs.js} +3 -3
  30. package/dist/{CanvasimageWidget-CJf5NYEj.js.map → CanvasimageWidget-DMHdDTSs.js.map} +1 -1
  31. package/dist/{CanvasimageWidget-DXxtYjGG.cjs → CanvasimageWidget-ysw78z4C.cjs} +2 -2
  32. package/dist/{CanvasimageWidget-DXxtYjGG.cjs.map → CanvasimageWidget-ysw78z4C.cjs.map} +1 -1
  33. package/dist/{CanvasimagevalueWidget-VPKlJrxM.cjs → CanvasimagevalueWidget-Bc-VYXe7.cjs} +2 -2
  34. package/dist/{CanvasimagevalueWidget-VPKlJrxM.cjs.map → CanvasimagevalueWidget-Bc-VYXe7.cjs.map} +1 -1
  35. package/dist/{CanvasimagevalueWidget-D86eJXbs.js → CanvasimagevalueWidget-ns-5S1HA.js} +3 -3
  36. package/dist/{CanvasimagevalueWidget-D86eJXbs.js.map → CanvasimagevalueWidget-ns-5S1HA.js.map} +1 -1
  37. package/dist/{CanvaslabelWidget-BgGRS0NS.cjs → CanvaslabelWidget-6h59qJY8.cjs} +2 -2
  38. package/dist/{CanvaslabelWidget-BgGRS0NS.cjs.map → CanvaslabelWidget-6h59qJY8.cjs.map} +1 -1
  39. package/dist/{CanvaslabelWidget-TkrVd-Dg.js → CanvaslabelWidget-DElES3gU.js} +2 -2
  40. package/dist/{CanvaslabelWidget-TkrVd-Dg.js.map → CanvaslabelWidget-DElES3gU.js.map} +1 -1
  41. package/dist/{CanvaslabelvalueWidget-BwsIN_MT.js → CanvaslabelvalueWidget-B2B5KlUm.js} +2 -2
  42. package/dist/{CanvaslabelvalueWidget-BwsIN_MT.js.map → CanvaslabelvalueWidget-B2B5KlUm.js.map} +1 -1
  43. package/dist/{CanvaslabelvalueWidget-W2QzOkQw.cjs → CanvaslabelvalueWidget-BLIgF8xi.cjs} +2 -2
  44. package/dist/{CanvaslabelvalueWidget-W2QzOkQw.cjs.map → CanvaslabelvalueWidget-BLIgF8xi.cjs.map} +1 -1
  45. package/dist/{CanvaslineWidget-yT7FUWs8.cjs → CanvaslineWidget-CxZGCwVF.cjs} +2 -2
  46. package/dist/{CanvaslineWidget-yT7FUWs8.cjs.map → CanvaslineWidget-CxZGCwVF.cjs.map} +1 -1
  47. package/dist/{CanvaslineWidget-BjBvF-vY.js → CanvaslineWidget-DaHxgGyM.js} +2 -2
  48. package/dist/{CanvaslineWidget-BjBvF-vY.js.map → CanvaslineWidget-DaHxgGyM.js.map} +1 -1
  49. package/dist/{CanvaslinevalueWidget-Dj4tsTBp.cjs → CanvaslinevalueWidget-BljeuN4S.cjs} +2 -2
  50. package/dist/{CanvaslinevalueWidget-Dj4tsTBp.cjs.map → CanvaslinevalueWidget-BljeuN4S.cjs.map} +1 -1
  51. package/dist/{CanvaslinevalueWidget-krBLp9yB.js → CanvaslinevalueWidget-CrtDsSOP.js} +2 -2
  52. package/dist/{CanvaslinevalueWidget-krBLp9yB.js.map → CanvaslinevalueWidget-CrtDsSOP.js.map} +1 -1
  53. package/dist/{CheckbuttonWidget-IMrIK9q4.js → CheckbuttonWidget-BK4SgIu7.js} +2 -2
  54. package/dist/{CheckbuttonWidget-IMrIK9q4.js.map → CheckbuttonWidget-BK4SgIu7.js.map} +1 -1
  55. package/dist/{CheckbuttonWidget-CT28NPNo.cjs → CheckbuttonWidget-By46VH2e.cjs} +2 -2
  56. package/dist/{CheckbuttonWidget-CT28NPNo.cjs.map → CheckbuttonWidget-By46VH2e.cjs.map} +1 -1
  57. package/dist/{ClassificationBanners-DC__VXBX.cjs → ClassificationBanners-CHQX3t7t.cjs} +2 -2
  58. package/dist/{ClassificationBanners-DC__VXBX.cjs.map → ClassificationBanners-CHQX3t7t.cjs.map} +1 -1
  59. package/dist/{ClassificationBanners-DiIkXqna.js → ClassificationBanners-DGl2HUKd.js} +2 -2
  60. package/dist/{ClassificationBanners-DiIkXqna.js.map → ClassificationBanners-DGl2HUKd.js.map} +1 -1
  61. package/dist/{ComboboxWidget-hFBSBFwy.cjs → ComboboxWidget-CHFTOmhZ.cjs} +2 -2
  62. package/dist/{ComboboxWidget-hFBSBFwy.cjs.map → ComboboxWidget-CHFTOmhZ.cjs.map} +1 -1
  63. package/dist/{ComboboxWidget-C9Zlc2Hy.js → ComboboxWidget-CciRWuKq.js} +2 -2
  64. package/dist/{ComboboxWidget-C9Zlc2Hy.js.map → ComboboxWidget-CciRWuKq.js.map} +1 -1
  65. package/dist/{CriticalCmdDialog-CCaStsM-.cjs → CriticalCmdDialog-BWrwpTNK.cjs} +2 -2
  66. package/dist/{CriticalCmdDialog-CCaStsM-.cjs.map → CriticalCmdDialog-BWrwpTNK.cjs.map} +1 -1
  67. package/dist/{CriticalCmdDialog-Cp-ykpQb.js → CriticalCmdDialog-C5EZDRSZ.js} +2 -2
  68. package/dist/{CriticalCmdDialog-Cp-ykpQb.js.map → CriticalCmdDialog-C5EZDRSZ.js.map} +1 -1
  69. package/dist/{DateWidget-C_QpCTxN.cjs → DateWidget-Bb6juAYs.cjs} +2 -2
  70. package/dist/{DateWidget-C_QpCTxN.cjs.map → DateWidget-Bb6juAYs.cjs.map} +1 -1
  71. package/dist/{DateWidget-Y6WAFGGt.js → DateWidget-DwgQ3Jik.js} +2 -2
  72. package/dist/{DateWidget-Y6WAFGGt.js.map → DateWidget-DwgQ3Jik.js.map} +1 -1
  73. package/dist/{DetailsDialog-DznGAE6i.js → DetailsDialog-CspQjoR5.js} +3 -3
  74. package/dist/{DetailsDialog-DznGAE6i.js.map → DetailsDialog-CspQjoR5.js.map} +1 -1
  75. package/dist/{DetailsDialog-Bq9BPuoe.cjs → DetailsDialog-D_my0nhs.cjs} +2 -2
  76. package/dist/{DetailsDialog-Bq9BPuoe.cjs.map → DetailsDialog-D_my0nhs.cjs.map} +1 -1
  77. package/dist/{EventListDialog-CktWO2jn.js → EventListDialog-DL2HHNQG.js} +9 -6
  78. package/dist/EventListDialog-DL2HHNQG.js.map +1 -0
  79. package/dist/EventListDialog-DO32zY2U.cjs +2 -0
  80. package/dist/EventListDialog-DO32zY2U.cjs.map +1 -0
  81. package/dist/{FilechecksumWidget-VbLODmHh.js → FilechecksumWidget-BS281Q0h.js} +3 -3
  82. package/dist/{FilechecksumWidget-VbLODmHh.js.map → FilechecksumWidget-BS281Q0h.js.map} +1 -1
  83. package/dist/{FilechecksumWidget-BZdmiTbb.cjs → FilechecksumWidget-DMpuLZJ5.cjs} +2 -2
  84. package/dist/{FilechecksumWidget-BZdmiTbb.cjs.map → FilechecksumWidget-DMpuLZJ5.cjs.map} +1 -1
  85. package/dist/{FiledisplayWidget-BI7GAQ4d.cjs → FiledisplayWidget-BoD7LuLP.cjs} +2 -2
  86. package/dist/{FiledisplayWidget-BI7GAQ4d.cjs.map → FiledisplayWidget-BoD7LuLP.cjs.map} +1 -1
  87. package/dist/{FiledisplayWidget-kixqcLtx.js → FiledisplayWidget-C9YdXDdv.js} +3 -3
  88. package/dist/{FiledisplayWidget-kixqcLtx.js.map → FiledisplayWidget-C9YdXDdv.js.map} +1 -1
  89. package/dist/{FormatvalueWidget-I1y_kf9t.cjs → FormatvalueWidget-DfvTVSs-.cjs} +2 -2
  90. package/dist/{FormatvalueWidget-I1y_kf9t.cjs.map → FormatvalueWidget-DfvTVSs-.cjs.map} +1 -1
  91. package/dist/{FormatvalueWidget--djAS0BE.js → FormatvalueWidget-dfmQfrNA.js} +3 -3
  92. package/dist/{FormatvalueWidget--djAS0BE.js.map → FormatvalueWidget-dfmQfrNA.js.map} +1 -1
  93. package/dist/{Graph-GhpiUBKI.js → Graph-BTtGIbYG.js} +10 -6
  94. package/dist/Graph-BTtGIbYG.js.map +1 -0
  95. package/dist/Graph-Cy2LrwoK.cjs +2 -0
  96. package/dist/Graph-Cy2LrwoK.cjs.map +1 -0
  97. package/dist/{GraphWidget-8T08osON.js → GraphWidget-CWJ4Yb26.js} +2 -2
  98. package/dist/{GraphWidget-8T08osON.js.map → GraphWidget-CWJ4Yb26.js.map} +1 -1
  99. package/dist/{GraphWidget-Bzo-klWV.cjs → GraphWidget-XjxjI3og.cjs} +2 -2
  100. package/dist/{GraphWidget-Bzo-klWV.cjs.map → GraphWidget-XjxjI3og.cjs.map} +1 -1
  101. package/dist/{HorizontalWidget-CAf9I0CU.cjs → HorizontalWidget-BeW4b13V.cjs} +2 -2
  102. package/dist/{HorizontalWidget-CAf9I0CU.cjs.map → HorizontalWidget-BeW4b13V.cjs.map} +1 -1
  103. package/dist/{HorizontalWidget-CusI1RiA.js → HorizontalWidget-DFAqF95S.js} +2 -2
  104. package/dist/{HorizontalWidget-CusI1RiA.js.map → HorizontalWidget-DFAqF95S.js.map} +1 -1
  105. package/dist/{HorizontalboxWidget-D5fIhINf.js → HorizontalboxWidget-CL1xEhDj.js} +5 -5
  106. package/dist/{HorizontalboxWidget-D5fIhINf.js.map → HorizontalboxWidget-CL1xEhDj.js.map} +1 -1
  107. package/dist/{HorizontalboxWidget-B7E5GEPu.cjs → HorizontalboxWidget-DdPv_6qb.cjs} +2 -2
  108. package/dist/{HorizontalboxWidget-B7E5GEPu.cjs.map → HorizontalboxWidget-DdPv_6qb.cjs.map} +1 -1
  109. package/dist/{HorizontallineWidget-DqLKGhdz.cjs → HorizontallineWidget-BdWOnioI.cjs} +2 -2
  110. package/dist/{HorizontallineWidget-DqLKGhdz.cjs.map → HorizontallineWidget-BdWOnioI.cjs.map} +1 -1
  111. package/dist/{HorizontallineWidget-CnRlq7hi.js → HorizontallineWidget-DPiADCAy.js} +2 -2
  112. package/dist/{HorizontallineWidget-CnRlq7hi.js.map → HorizontallineWidget-DPiADCAy.js.map} +1 -1
  113. package/dist/{IframeWidget-DtF44NYM.js → IframeWidget-BsDu4b17.js} +2 -2
  114. package/dist/{IframeWidget-DtF44NYM.js.map → IframeWidget-BsDu4b17.js.map} +1 -1
  115. package/dist/{IframeWidget-BMtv8io0.cjs → IframeWidget-Z12pG6JT.cjs} +2 -2
  116. package/dist/{IframeWidget-BMtv8io0.cjs.map → IframeWidget-Z12pG6JT.cjs.map} +1 -1
  117. package/dist/{ImageLoader-B5rGuJ_H.js → ImageLoader-CT4rnwWn.js} +2 -2
  118. package/dist/{ImageLoader-B5rGuJ_H.js.map → ImageLoader-CT4rnwWn.js.map} +1 -1
  119. package/dist/{ImageLoader-jcIDHdUq.cjs → ImageLoader-CZ0Wx_Ua.cjs} +2 -2
  120. package/dist/{ImageLoader-jcIDHdUq.cjs.map → ImageLoader-CZ0Wx_Ua.cjs.map} +1 -1
  121. package/dist/{ImageviewerWidget-Ciu80vaC.js → ImageviewerWidget-BQbrz2WL.js} +2 -2
  122. package/dist/{ImageviewerWidget-Ciu80vaC.js.map → ImageviewerWidget-BQbrz2WL.js.map} +1 -1
  123. package/dist/{ImageviewerWidget-ox5FNYVP.cjs → ImageviewerWidget-CtJzQn0e.cjs} +2 -2
  124. package/dist/{ImageviewerWidget-ox5FNYVP.cjs.map → ImageviewerWidget-CtJzQn0e.cjs.map} +1 -1
  125. package/dist/{InterfacesTab-CUM5GGWs.cjs → InterfacesTab-A0g0y1n1.cjs} +2 -2
  126. package/dist/{InterfacesTab-CUM5GGWs.cjs.map → InterfacesTab-A0g0y1n1.cjs.map} +1 -1
  127. package/dist/{InterfacesTab-C14LErLZ.js → InterfacesTab-COKNyeUu.js} +3 -3
  128. package/dist/{InterfacesTab-C14LErLZ.js.map → InterfacesTab-COKNyeUu.js.map} +1 -1
  129. package/dist/{LabelWidget-78VnL1xc.js → LabelWidget-D5-IFUYW.js} +2 -2
  130. package/dist/{LabelWidget-78VnL1xc.js.map → LabelWidget-D5-IFUYW.js.map} +1 -1
  131. package/dist/{LabelWidget-B9J1Whh0.cjs → LabelWidget-rH3SsItK.cjs} +2 -2
  132. package/dist/{LabelWidget-B9J1Whh0.cjs.map → LabelWidget-rH3SsItK.cjs.map} +1 -1
  133. package/dist/{LabelledWidget-BMtqUP-E.cjs → LabelledWidget-Bca_qNSP.cjs} +2 -2
  134. package/dist/{LabelledWidget-BMtqUP-E.cjs.map → LabelledWidget-Bca_qNSP.cjs.map} +1 -1
  135. package/dist/{LabelledWidget-Cx2PI85E.js → LabelledWidget-Dt9miRtB.js} +4 -4
  136. package/dist/{LabelledWidget-Cx2PI85E.js.map → LabelledWidget-Dt9miRtB.js.map} +1 -1
  137. package/dist/{LabelprogressbarWidget-eC7VC7lY.js → LabelprogressbarWidget-BNFgTq4D.js} +4 -4
  138. package/dist/{LabelprogressbarWidget-eC7VC7lY.js.map → LabelprogressbarWidget-BNFgTq4D.js.map} +1 -1
  139. package/dist/{LabelprogressbarWidget-Ce3PRzaA.cjs → LabelprogressbarWidget-hyK9Vqsl.cjs} +2 -2
  140. package/dist/{LabelprogressbarWidget-Ce3PRzaA.cjs.map → LabelprogressbarWidget-hyK9Vqsl.cjs.map} +1 -1
  141. package/dist/{LabelsparklineWidget-CP5rD4ob.js → LabelsparklineWidget-BByxev6X.js} +4 -4
  142. package/dist/{LabelsparklineWidget-CP5rD4ob.js.map → LabelsparklineWidget-BByxev6X.js.map} +1 -1
  143. package/dist/{LabelsparklineWidget-DuCA67yl.cjs → LabelsparklineWidget-BxkxEVwQ.cjs} +2 -2
  144. package/dist/{LabelsparklineWidget-DuCA67yl.cjs.map → LabelsparklineWidget-BxkxEVwQ.cjs.map} +1 -1
  145. package/dist/{LabelvalueWidget-PM8DFnDm.js → LabelvalueWidget-BM6L9bVw.js} +4 -4
  146. package/dist/{LabelvalueWidget-PM8DFnDm.js.map → LabelvalueWidget-BM6L9bVw.js.map} +1 -1
  147. package/dist/{LabelvalueWidget-DxEvAoHT.cjs → LabelvalueWidget-DEGmbKMG.cjs} +2 -2
  148. package/dist/{LabelvalueWidget-DxEvAoHT.cjs.map → LabelvalueWidget-DEGmbKMG.cjs.map} +1 -1
  149. package/dist/{LabelvaluedescWidget-Dy3_fdkx.cjs → LabelvaluedescWidget-B7bGqqeO.cjs} +2 -2
  150. package/dist/{LabelvaluedescWidget-Dy3_fdkx.cjs.map → LabelvaluedescWidget-B7bGqqeO.cjs.map} +1 -1
  151. package/dist/{LabelvaluedescWidget-C8OmKnu-.js → LabelvaluedescWidget-DeBRjYXs.js} +5 -5
  152. package/dist/{LabelvaluedescWidget-C8OmKnu-.js.map → LabelvaluedescWidget-DeBRjYXs.js.map} +1 -1
  153. package/dist/{LabelvaluelimitsbarWidget-DIsTQqkO.js → LabelvaluelimitsbarWidget-CqV0-c3G.js} +4 -4
  154. package/dist/{LabelvaluelimitsbarWidget-DIsTQqkO.js.map → LabelvaluelimitsbarWidget-CqV0-c3G.js.map} +1 -1
  155. package/dist/{LabelvaluelimitsbarWidget-DWvSVvXl.cjs → LabelvaluelimitsbarWidget-DzEc9ZZr.cjs} +2 -2
  156. package/dist/{LabelvaluelimitsbarWidget-DWvSVvXl.cjs.map → LabelvaluelimitsbarWidget-DzEc9ZZr.cjs.map} +1 -1
  157. package/dist/{LabelvaluelimitscolumnWidget-ld556rRi.js → LabelvaluelimitscolumnWidget-Bz0PKTIV.js} +5 -5
  158. package/dist/{LabelvaluelimitscolumnWidget-ld556rRi.js.map → LabelvaluelimitscolumnWidget-Bz0PKTIV.js.map} +1 -1
  159. package/dist/{LabelvaluelimitscolumnWidget-CyPuEz7E.cjs → LabelvaluelimitscolumnWidget-C0-v0q7a.cjs} +2 -2
  160. package/dist/{LabelvaluelimitscolumnWidget-CyPuEz7E.cjs.map → LabelvaluelimitscolumnWidget-C0-v0q7a.cjs.map} +1 -1
  161. package/dist/{LabelvaluerangebarWidget-DdqgjjUc.cjs → LabelvaluerangebarWidget-CWhsb5gm.cjs} +2 -2
  162. package/dist/{LabelvaluerangebarWidget-DdqgjjUc.cjs.map → LabelvaluerangebarWidget-CWhsb5gm.cjs.map} +1 -1
  163. package/dist/{LabelvaluerangebarWidget-nCeoujui.js → LabelvaluerangebarWidget-DKuAJHLm.js} +4 -4
  164. package/dist/{LabelvaluerangebarWidget-nCeoujui.js.map → LabelvaluerangebarWidget-DKuAJHLm.js.map} +1 -1
  165. package/dist/{Layout-BcytiBn4.js → Layout-LSeXBY_W.js} +2 -2
  166. package/dist/{Layout-BcytiBn4.js.map → Layout-LSeXBY_W.js.map} +1 -1
  167. package/dist/{Layout-JCk8r88e.cjs → Layout-QcVHlWPp.cjs} +2 -2
  168. package/dist/{Layout-JCk8r88e.cjs.map → Layout-QcVHlWPp.cjs.map} +1 -1
  169. package/dist/{LedWidget-3pWKnZsD.js → LedWidget-CH4Il9R7.js} +4 -4
  170. package/dist/{LedWidget-3pWKnZsD.js.map → LedWidget-CH4Il9R7.js.map} +1 -1
  171. package/dist/{LedWidget-BEP-sFTh.cjs → LedWidget-CJwBssHl.cjs} +2 -2
  172. package/dist/{LedWidget-BEP-sFTh.cjs.map → LedWidget-CJwBssHl.cjs.map} +1 -1
  173. package/dist/{LimitsBar-BJ_cERjE.cjs → LimitsBar-B0O6RMrG.cjs} +2 -2
  174. package/dist/{LimitsBar-BJ_cERjE.cjs.map → LimitsBar-B0O6RMrG.cjs.map} +1 -1
  175. package/dist/{LimitsBar-DCco6Rwp.js → LimitsBar-BelAQFD0.js} +2 -2
  176. package/dist/{LimitsBar-DCco6Rwp.js.map → LimitsBar-BelAQFD0.js.map} +1 -1
  177. package/dist/{LimitsbarWidget-DiAnkXID.cjs → LimitsbarWidget--AwjBbtb.cjs} +2 -2
  178. package/dist/{LimitsbarWidget-DiAnkXID.cjs.map → LimitsbarWidget--AwjBbtb.cjs.map} +1 -1
  179. package/dist/{LimitsbarWidget-_BMzxWBm.js → LimitsbarWidget-PkPqlyxL.js} +3 -3
  180. package/dist/{LimitsbarWidget-_BMzxWBm.js.map → LimitsbarWidget-PkPqlyxL.js.map} +1 -1
  181. package/dist/{LimitscolorWidget-ByfzIE_O.cjs → LimitscolorWidget-1D2myv8a.cjs} +2 -2
  182. package/dist/{LimitscolorWidget-ByfzIE_O.cjs.map → LimitscolorWidget-1D2myv8a.cjs.map} +1 -1
  183. package/dist/{LimitscolorWidget-C2gZyqtI.js → LimitscolorWidget-BlA15g4A.js} +4 -4
  184. package/dist/{LimitscolorWidget-C2gZyqtI.js.map → LimitscolorWidget-BlA15g4A.js.map} +1 -1
  185. package/dist/{LimitscolumnWidget-Cv-6FXU3.js → LimitscolumnWidget-PT917BA0.js} +2 -2
  186. package/dist/{LimitscolumnWidget-Cv-6FXU3.js.map → LimitscolumnWidget-PT917BA0.js.map} +1 -1
  187. package/dist/{LimitscolumnWidget-CZwcXbLS.cjs → LimitscolumnWidget-_QPf3cUQ.cjs} +2 -2
  188. package/dist/{LimitscolumnWidget-CZwcXbLS.cjs.map → LimitscolumnWidget-_QPf3cUQ.cjs.map} +1 -1
  189. package/dist/{LinegraphWidget-BahyhwSt.js → LinegraphWidget-BW7kS_6G.js} +4 -4
  190. package/dist/{LinegraphWidget-BahyhwSt.js.map → LinegraphWidget-BW7kS_6G.js.map} +1 -1
  191. package/dist/{LinegraphWidget-so5ohfWF.cjs → LinegraphWidget-DfXd3959.cjs} +2 -2
  192. package/dist/{LinegraphWidget-so5ohfWF.cjs.map → LinegraphWidget-DfXd3959.cjs.map} +1 -1
  193. package/dist/{MatrixbycolumnsWidget-B1Hy9but.js → MatrixbycolumnsWidget-BGNsZvjv.js} +3 -3
  194. package/dist/{MatrixbycolumnsWidget-B1Hy9but.js.map → MatrixbycolumnsWidget-BGNsZvjv.js.map} +1 -1
  195. package/dist/{MatrixbycolumnsWidget-Dma8IsO-.cjs → MatrixbycolumnsWidget-oRYGFSEt.cjs} +2 -2
  196. package/dist/{MatrixbycolumnsWidget-Dma8IsO-.cjs.map → MatrixbycolumnsWidget-oRYGFSEt.cjs.map} +1 -1
  197. package/dist/{MicroservicesTab-BSXNA_Si.js → MicroservicesTab-CiEGGavF.js} +3 -3
  198. package/dist/{MicroservicesTab-BSXNA_Si.js.map → MicroservicesTab-CiEGGavF.js.map} +1 -1
  199. package/dist/{MicroservicesTab-ARGtrfOb.cjs → MicroservicesTab-DvDK2hPW.cjs} +2 -2
  200. package/dist/{MicroservicesTab-ARGtrfOb.cjs.map → MicroservicesTab-DvDK2hPW.cjs.map} +1 -1
  201. package/dist/{OpenC3TimePicker-LN9R7V31.js → OpenC3TimePicker-CkaALgy9.js} +2 -2
  202. package/dist/{OpenC3TimePicker-LN9R7V31.js.map → OpenC3TimePicker-CkaALgy9.js.map} +1 -1
  203. package/dist/{OpenC3TimePicker-BHX9fnlR.cjs → OpenC3TimePicker-bbdbKTv_.cjs} +2 -2
  204. package/dist/{OpenC3TimePicker-BHX9fnlR.cjs.map → OpenC3TimePicker-bbdbKTv_.cjs.map} +1 -1
  205. package/dist/{Openc3Screen-BP7Ho9XC.js → Openc3Screen-BnM1bNOB.js} +11 -12
  206. package/dist/{Openc3Screen-BP7Ho9XC.js.map → Openc3Screen-BnM1bNOB.js.map} +1 -1
  207. package/dist/{Openc3Screen-CJOTF-lu.cjs → Openc3Screen-DoOAFAlJ.cjs} +4 -4
  208. package/dist/{Openc3Screen-CJOTF-lu.cjs.map → Openc3Screen-DoOAFAlJ.cjs.map} +1 -1
  209. package/dist/{OutputDialog-JdAxzpPD.js → OutputDialog-BY-TZNRl.js} +2 -2
  210. package/dist/{OutputDialog-JdAxzpPD.js.map → OutputDialog-BY-TZNRl.js.map} +1 -1
  211. package/dist/{OutputDialog-Dx5mkq19.cjs → OutputDialog-R3Xj3_yw.cjs} +2 -2
  212. package/dist/{OutputDialog-Dx5mkq19.cjs.map → OutputDialog-R3Xj3_yw.cjs.map} +1 -1
  213. package/dist/{PackagesTab-HPNAXhzf.cjs → PackagesTab-2Mu7yvxU.cjs} +2 -2
  214. package/dist/{PackagesTab-HPNAXhzf.cjs.map → PackagesTab-2Mu7yvxU.cjs.map} +1 -1
  215. package/dist/{PackagesTab-ByfVH001.js → PackagesTab-DGrqIo_Z.js} +4 -4
  216. package/dist/{PackagesTab-ByfVH001.js.map → PackagesTab-DGrqIo_Z.js.map} +1 -1
  217. package/dist/{PluginsTab-D7zpmf8s.js → PluginsTab-BXjVe_81.js} +427 -390
  218. package/dist/PluginsTab-BXjVe_81.js.map +1 -0
  219. package/dist/PluginsTab-R6i60Pih.cjs +6 -0
  220. package/dist/PluginsTab-R6i60Pih.cjs.map +1 -0
  221. package/dist/{ProgressbarWidget-mAVHKeok.js → ProgressbarWidget-Cy_ad8mb.js} +2 -2
  222. package/dist/{ProgressbarWidget-mAVHKeok.js.map → ProgressbarWidget-Cy_ad8mb.js.map} +1 -1
  223. package/dist/{ProgressbarWidget-BINuoD9p.cjs → ProgressbarWidget-XAy4iHgC.cjs} +2 -2
  224. package/dist/{ProgressbarWidget-BINuoD9p.cjs.map → ProgressbarWidget-XAy4iHgC.cjs.map} +1 -1
  225. package/dist/{RadiobuttonWidget-CL3QjTnZ.js → RadiobuttonWidget-aJBIz45y.js} +2 -2
  226. package/dist/{RadiobuttonWidget-CL3QjTnZ.js.map → RadiobuttonWidget-aJBIz45y.js.map} +1 -1
  227. package/dist/{RadiobuttonWidget-DDmgt0su.cjs → RadiobuttonWidget-fAqkUUTb.cjs} +2 -2
  228. package/dist/{RadiobuttonWidget-DDmgt0su.cjs.map → RadiobuttonWidget-fAqkUUTb.cjs.map} +1 -1
  229. package/dist/{RadiogroupWidget-q7h1v-ko.cjs → RadiogroupWidget-BuYMyBQd.cjs} +2 -2
  230. package/dist/{RadiogroupWidget-q7h1v-ko.cjs.map → RadiogroupWidget-BuYMyBQd.cjs.map} +1 -1
  231. package/dist/{RadiogroupWidget-RUwgtUTC.js → RadiogroupWidget-DNRlJnPE.js} +2 -2
  232. package/dist/{RadiogroupWidget-RUwgtUTC.js.map → RadiogroupWidget-DNRlJnPE.js.map} +1 -1
  233. package/dist/{RangebarWidget-BbPMpwMs.cjs → RangebarWidget-gcukfXnM.cjs} +2 -2
  234. package/dist/{RangebarWidget-BbPMpwMs.cjs.map → RangebarWidget-gcukfXnM.cjs.map} +1 -1
  235. package/dist/{RangebarWidget-CfDsKLZc.js → RangebarWidget-h4YItqPF.js} +2 -2
  236. package/dist/{RangebarWidget-CfDsKLZc.js.map → RangebarWidget-h4YItqPF.js.map} +1 -1
  237. package/dist/{RedisTab-dZE6KvLS.cjs → RedisTab-0V8f-hs1.cjs} +2 -2
  238. package/dist/{RedisTab-dZE6KvLS.cjs.map → RedisTab-0V8f-hs1.cjs.map} +1 -1
  239. package/dist/{RedisTab-YrX-5A3T.js → RedisTab-BmZWA0OG.js} +2 -2
  240. package/dist/{RedisTab-YrX-5A3T.js.map → RedisTab-BmZWA0OG.js.map} +1 -1
  241. package/dist/{RollupWidget-DCMoQUeJ.js → RollupWidget-CnxDQRQ0.js} +2 -2
  242. package/dist/{RollupWidget-DCMoQUeJ.js.map → RollupWidget-CnxDQRQ0.js.map} +1 -1
  243. package/dist/{RollupWidget-BmgRFIOo.cjs → RollupWidget-ZerASRD3.cjs} +2 -2
  244. package/dist/{RollupWidget-BmgRFIOo.cjs.map → RollupWidget-ZerASRD3.cjs.map} +1 -1
  245. package/dist/{RoutersTab-C6vejQrw.cjs → RoutersTab-CY-SmZd4.cjs} +2 -2
  246. package/dist/{RoutersTab-C6vejQrw.cjs.map → RoutersTab-CY-SmZd4.cjs.map} +1 -1
  247. package/dist/{RoutersTab-MA9KW_gu.js → RoutersTab-Db28gKLP.js} +3 -3
  248. package/dist/{RoutersTab-MA9KW_gu.js.map → RoutersTab-Db28gKLP.js.map} +1 -1
  249. package/dist/{ScriptChooser-DGbs03IW.js → ScriptChooser-Bl0wisob.js} +4 -4
  250. package/dist/{ScriptChooser-DGbs03IW.js.map → ScriptChooser-Bl0wisob.js.map} +1 -1
  251. package/dist/{ScriptChooser-Cm_HEyBf.cjs → ScriptChooser-CI4lAYZ1.cjs} +2 -2
  252. package/dist/{ScriptChooser-Cm_HEyBf.cjs.map → ScriptChooser-CI4lAYZ1.cjs.map} +1 -1
  253. package/dist/{ScrollwindowWidget-BbASNNcM.cjs → ScrollwindowWidget-BJkQ5uX_.cjs} +2 -2
  254. package/dist/{ScrollwindowWidget-BbASNNcM.cjs.map → ScrollwindowWidget-BJkQ5uX_.cjs.map} +1 -1
  255. package/dist/{ScrollwindowWidget-DarXe7-1.js → ScrollwindowWidget-DFkTJ2Ue.js} +2 -2
  256. package/dist/{ScrollwindowWidget-DarXe7-1.js.map → ScrollwindowWidget-DFkTJ2Ue.js.map} +1 -1
  257. package/dist/{SecretsTab-DwE3KJNI.cjs → SecretsTab-B8YTrfQ2.cjs} +2 -2
  258. package/dist/{SecretsTab-DwE3KJNI.cjs.map → SecretsTab-B8YTrfQ2.cjs.map} +1 -1
  259. package/dist/{SecretsTab-DTaPAHv3.js → SecretsTab-DTdVLi0I.js} +2 -2
  260. package/dist/{SecretsTab-DTaPAHv3.js.map → SecretsTab-DTdVLi0I.js.map} +1 -1
  261. package/dist/{SettingsTab-BhT5sui9.js → SettingsTab-CnybxvVj.js} +4 -4
  262. package/dist/{SettingsTab-BhT5sui9.js.map → SettingsTab-CnybxvVj.js.map} +1 -1
  263. package/dist/{SettingsTab-o9tfAuE4.cjs → SettingsTab-_SJLhuk0.cjs} +2 -2
  264. package/dist/{SettingsTab-o9tfAuE4.cjs.map → SettingsTab-_SJLhuk0.cjs.map} +1 -1
  265. package/dist/{SignalWidget-CO3UaFok.cjs → SignalWidget-DC7-NIOj.cjs} +2 -2
  266. package/dist/{SignalWidget-CO3UaFok.cjs.map → SignalWidget-DC7-NIOj.cjs.map} +1 -1
  267. package/dist/{SignalWidget-C-iEC5KL.js → SignalWidget-jYpXSIfD.js} +2 -2
  268. package/dist/{SignalWidget-C-iEC5KL.js.map → SignalWidget-jYpXSIfD.js.map} +1 -1
  269. package/dist/{SimpleTextDialog-B9ZurpdS.cjs → SimpleTextDialog-DLdHGmmb.cjs} +2 -2
  270. package/dist/{SimpleTextDialog-B9ZurpdS.cjs.map → SimpleTextDialog-DLdHGmmb.cjs.map} +1 -1
  271. package/dist/{SimpleTextDialog-Bqh3eT2B.js → SimpleTextDialog-Dd3BoNG-.js} +2 -2
  272. package/dist/{SimpleTextDialog-Bqh3eT2B.js.map → SimpleTextDialog-Dd3BoNG-.js.map} +1 -1
  273. package/dist/{SpacerWidget-CQh-LB4u.cjs → SpacerWidget-BwwxG8k3.cjs} +2 -2
  274. package/dist/{SpacerWidget-CQh-LB4u.cjs.map → SpacerWidget-BwwxG8k3.cjs.map} +1 -1
  275. package/dist/{SpacerWidget-FHxUhs1G.js → SpacerWidget-CUqvml6o.js} +2 -2
  276. package/dist/{SpacerWidget-FHxUhs1G.js.map → SpacerWidget-CUqvml6o.js.map} +1 -1
  277. package/dist/{SparklineWidget-BsMIozYC.cjs → SparklineWidget-05TlKC-x.cjs} +2 -2
  278. package/dist/{SparklineWidget-BsMIozYC.cjs.map → SparklineWidget-05TlKC-x.cjs.map} +1 -1
  279. package/dist/{SparklineWidget-ClT5Umm2.js → SparklineWidget-CVf1TtjV.js} +4 -4
  280. package/dist/{SparklineWidget-ClT5Umm2.js.map → SparklineWidget-CVf1TtjV.js.map} +1 -1
  281. package/dist/{TabbookWidget-D-b0v0oo.js → TabbookWidget-CTUEpDnn.js} +2 -2
  282. package/dist/{TabbookWidget-D-b0v0oo.js.map → TabbookWidget-CTUEpDnn.js.map} +1 -1
  283. package/dist/{TabbookWidget-So-oaWd4.cjs → TabbookWidget-oZre4A6Y.cjs} +2 -2
  284. package/dist/{TabbookWidget-So-oaWd4.cjs.map → TabbookWidget-oZre4A6Y.cjs.map} +1 -1
  285. package/dist/TargetPacketItemChooser-BvXBVNLj.cjs +2 -0
  286. package/dist/TargetPacketItemChooser-BvXBVNLj.cjs.map +1 -0
  287. package/dist/{TargetPacketItemChooser-DD7JgCD9.js → TargetPacketItemChooser-CS2Vvi2U.js} +22 -22
  288. package/dist/TargetPacketItemChooser-CS2Vvi2U.js.map +1 -0
  289. package/dist/{TargetsTab-BD0JGvAl.cjs → TargetsTab-Bc7-iav6.cjs} +2 -2
  290. package/dist/{TargetsTab-BD0JGvAl.cjs.map → TargetsTab-Bc7-iav6.cjs.map} +1 -1
  291. package/dist/{TargetsTab-hTLe_rba.js → TargetsTab-CGv0GwAF.js} +3 -3
  292. package/dist/{TargetsTab-hTLe_rba.js.map → TargetsTab-CGv0GwAF.js.map} +1 -1
  293. package/dist/{TextboxWidget-WM3eFUR_.js → TextboxWidget-B0Y1W7GP.js} +4 -4
  294. package/dist/{TextboxWidget-WM3eFUR_.js.map → TextboxWidget-B0Y1W7GP.js.map} +1 -1
  295. package/dist/{TextboxWidget-CF4iq315.cjs → TextboxWidget-qSbx4xxD.cjs} +2 -2
  296. package/dist/{TextboxWidget-CF4iq315.cjs.map → TextboxWidget-qSbx4xxD.cjs.map} +1 -1
  297. package/dist/{TextfieldWidget-lfc1Vg51.js → TextfieldWidget-B8TAf9oU.js} +2 -2
  298. package/dist/{TextfieldWidget-lfc1Vg51.js.map → TextfieldWidget-B8TAf9oU.js.map} +1 -1
  299. package/dist/{TextfieldWidget-D9BINKRU.cjs → TextfieldWidget-cCG7BQ25.cjs} +2 -2
  300. package/dist/{TextfieldWidget-D9BINKRU.cjs.map → TextfieldWidget-cCG7BQ25.cjs.map} +1 -1
  301. package/dist/{TimeWidget-CgtJbnnC.cjs → TimeWidget-DNkhFoZO.cjs} +2 -2
  302. package/dist/{TimeWidget-CgtJbnnC.cjs.map → TimeWidget-DNkhFoZO.cjs.map} +1 -1
  303. package/dist/{TimeWidget-B13aIVqG.js → TimeWidget-DewVXks0.js} +3 -3
  304. package/dist/{TimeWidget-B13aIVqG.js.map → TimeWidget-DewVXks0.js.map} +1 -1
  305. package/dist/{TitleWidget-CTAMgzU4.js → TitleWidget-BAq2LGJF.js} +2 -2
  306. package/dist/{TitleWidget-CTAMgzU4.js.map → TitleWidget-BAq2LGJF.js.map} +1 -1
  307. package/dist/{TitleWidget-BV2sDP_-.cjs → TitleWidget-ChGb6BJW.cjs} +2 -2
  308. package/dist/{TitleWidget-BV2sDP_-.cjs.map → TitleWidget-ChGb6BJW.cjs.map} +1 -1
  309. package/dist/{ToolsTab-DXK-L-kx.cjs → ToolsTab-CB_6hFQF.cjs} +2 -2
  310. package/dist/{ToolsTab-DXK-L-kx.cjs.map → ToolsTab-CB_6hFQF.cjs.map} +1 -1
  311. package/dist/{ToolsTab-CmhRtClS.js → ToolsTab-USmbUvDq.js} +3 -3
  312. package/dist/{ToolsTab-CmhRtClS.js.map → ToolsTab-USmbUvDq.js.map} +1 -1
  313. package/dist/{TopBar-D-lJHb6d.js → TopBar-B4RDkLs-.js} +2 -2
  314. package/dist/{TopBar-D-lJHb6d.js.map → TopBar-B4RDkLs-.js.map} +1 -1
  315. package/dist/{TopBar-BiE7GgIN.cjs → TopBar-DzL3L4ih.cjs} +2 -2
  316. package/dist/{TopBar-BiE7GgIN.cjs.map → TopBar-DzL3L4ih.cjs.map} +1 -1
  317. package/dist/TsdbTab-0aYlysh5.js +125 -0
  318. package/dist/TsdbTab-0aYlysh5.js.map +1 -0
  319. package/dist/TsdbTab-H64XGfOO.cjs +2 -0
  320. package/dist/TsdbTab-H64XGfOO.cjs.map +1 -0
  321. package/dist/{UpgradeToEnterpriseDialog-D1_viCAx.cjs → UpgradeToEnterpriseDialog-BBRXrLrL.cjs} +2 -2
  322. package/dist/{UpgradeToEnterpriseDialog-D1_viCAx.cjs.map → UpgradeToEnterpriseDialog-BBRXrLrL.cjs.map} +1 -1
  323. package/dist/{UpgradeToEnterpriseDialog-et3RrozN.js → UpgradeToEnterpriseDialog-DTmnp8xy.js} +2 -2
  324. package/dist/{UpgradeToEnterpriseDialog-et3RrozN.js.map → UpgradeToEnterpriseDialog-DTmnp8xy.js.map} +1 -1
  325. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-D0cYHPwr.js → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CDTSzdb-.js} +2 -2
  326. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-D0cYHPwr.js.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CDTSzdb-.js.map} +1 -1
  327. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-MfH160rD.cjs} +2 -2
  328. package/dist/{UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs.map → UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-MfH160rD.cjs.map} +1 -1
  329. package/dist/{VWidget-0kkhOxhV.js → VWidget-0KwtSssI.js} +3 -3
  330. package/dist/{VWidget-0kkhOxhV.js.map → VWidget-0KwtSssI.js.map} +1 -1
  331. package/dist/{VWidget-Dkji3VZ0.cjs → VWidget-SWmlQP30.cjs} +2 -2
  332. package/dist/{VWidget-Dkji3VZ0.cjs.map → VWidget-SWmlQP30.cjs.map} +1 -1
  333. package/dist/{ValueWidget-BoQfnx8U.js → ValueWidget-BGNqaaRs.js} +4 -4
  334. package/dist/{ValueWidget-BoQfnx8U.js.map → ValueWidget-BGNqaaRs.js.map} +1 -1
  335. package/dist/{ValueWidget-mkXMZvdK.cjs → ValueWidget-BfxZq1LD.cjs} +2 -2
  336. package/dist/{ValueWidget-mkXMZvdK.cjs.map → ValueWidget-BfxZq1LD.cjs.map} +1 -1
  337. package/dist/{ValuelimitsbarWidget-ZfgwDNqX.js → ValuelimitsbarWidget-B6mH4PdF.js} +4 -4
  338. package/dist/{ValuelimitsbarWidget-ZfgwDNqX.js.map → ValuelimitsbarWidget-B6mH4PdF.js.map} +1 -1
  339. package/dist/{ValuelimitsbarWidget-B8IUYgYx.cjs → ValuelimitsbarWidget-m5fBewLy.cjs} +2 -2
  340. package/dist/{ValuelimitsbarWidget-B8IUYgYx.cjs.map → ValuelimitsbarWidget-m5fBewLy.cjs.map} +1 -1
  341. package/dist/{ValuelimitscolumnWidget-B7DigaiC.cjs → ValuelimitscolumnWidget-D_5XZhiD.cjs} +2 -2
  342. package/dist/{ValuelimitscolumnWidget-B7DigaiC.cjs.map → ValuelimitscolumnWidget-D_5XZhiD.cjs.map} +1 -1
  343. package/dist/{ValuelimitscolumnWidget-B3x9DknL.js → ValuelimitscolumnWidget-DlX90_-6.js} +4 -4
  344. package/dist/{ValuelimitscolumnWidget-B3x9DknL.js.map → ValuelimitscolumnWidget-DlX90_-6.js.map} +1 -1
  345. package/dist/{ValuerangebarWidget-DA4X0MuO.cjs → ValuerangebarWidget-C3XFFRhf.cjs} +2 -2
  346. package/dist/{ValuerangebarWidget-DA4X0MuO.cjs.map → ValuerangebarWidget-C3XFFRhf.cjs.map} +1 -1
  347. package/dist/{ValuerangebarWidget-40InNHft.js → ValuerangebarWidget-C9xyLOJO.js} +4 -4
  348. package/dist/{ValuerangebarWidget-40InNHft.js.map → ValuerangebarWidget-C9xyLOJO.js.map} +1 -1
  349. package/dist/{VerticalWidget-abr1X6L7.js → VerticalWidget-0UbbE2g3.js} +2 -2
  350. package/dist/{VerticalWidget-abr1X6L7.js.map → VerticalWidget-0UbbE2g3.js.map} +1 -1
  351. package/dist/{VerticalWidget-BiFa3xbs.cjs → VerticalWidget-D-U8cue6.cjs} +2 -2
  352. package/dist/{VerticalWidget-BiFa3xbs.cjs.map → VerticalWidget-D-U8cue6.cjs.map} +1 -1
  353. package/dist/{VerticalboxWidget-Cx30rcqe.cjs → VerticalboxWidget-C4nkJhEd.cjs} +2 -2
  354. package/dist/{VerticalboxWidget-Cx30rcqe.cjs.map → VerticalboxWidget-C4nkJhEd.cjs.map} +1 -1
  355. package/dist/{VerticalboxWidget-DsbB17o-.js → VerticalboxWidget-efbeOAKE.js} +5 -5
  356. package/dist/{VerticalboxWidget-DsbB17o-.js.map → VerticalboxWidget-efbeOAKE.js.map} +1 -1
  357. package/dist/{Widget-DksaxMdD.js → Widget-CGePksBA.js} +2 -2
  358. package/dist/{Widget-DksaxMdD.js.map → Widget-CGePksBA.js.map} +1 -1
  359. package/dist/{Widget-VL9FlMQp.cjs → Widget-D0drYWOT.cjs} +2 -2
  360. package/dist/{Widget-VL9FlMQp.cjs.map → Widget-D0drYWOT.cjs.map} +1 -1
  361. package/dist/components.cjs +1 -1
  362. package/dist/components.js +16 -16
  363. package/dist/{index-BRc4sKEF.js → index-BJrYCoCB.js} +19 -13
  364. package/dist/index-BJrYCoCB.js.map +1 -0
  365. package/dist/{index-Qy49-kGB.cjs → index-Cmp6oZpm.cjs} +2 -2
  366. package/dist/index-Cmp6oZpm.cjs.map +1 -0
  367. package/dist/plugins.cjs +1 -1
  368. package/dist/plugins.cjs.map +1 -1
  369. package/dist/plugins.js +1 -1
  370. package/dist/plugins.js.map +1 -1
  371. package/dist/purify.es-4pyphLiB.cjs +3 -0
  372. package/dist/purify.es-4pyphLiB.cjs.map +1 -0
  373. package/dist/{purify.es-DcWaZU6I.js → purify.es-BPDBzHtc.js} +115 -115
  374. package/dist/purify.es-BPDBzHtc.js.map +1 -0
  375. package/dist/{settings-BDlsBCNk.js → settings-CjmDHCpE.js} +2 -2
  376. package/dist/{settings-BDlsBCNk.js.map → settings-CjmDHCpE.js.map} +1 -1
  377. package/dist/{settings-D3MxiRHY.cjs → settings-l1j_GGzu.cjs} +2 -2
  378. package/dist/{settings-D3MxiRHY.cjs.map → settings-l1j_GGzu.cjs.map} +1 -1
  379. package/dist/tools/admin.cjs +1 -1
  380. package/dist/tools/admin.js +1 -1
  381. package/dist/tools/base.cjs +1 -1
  382. package/dist/tools/base.js +4 -4
  383. package/dist/tools/calendar.cjs +1 -1
  384. package/dist/tools/calendar.js +1 -1
  385. package/dist/tools/scriptrunner.cjs +8 -8
  386. package/dist/tools/scriptrunner.cjs.map +1 -1
  387. package/dist/tools/scriptrunner.js +1477 -1067
  388. package/dist/tools/scriptrunner.js.map +1 -1
  389. package/dist/vue-common.css +1 -1
  390. package/dist/widgets.cjs +1 -1
  391. package/dist/widgets.js +64 -64
  392. package/package.json +7 -7
  393. package/dist/EventListDialog-CktWO2jn.js.map +0 -1
  394. package/dist/EventListDialog-EAGLDaHc.cjs +0 -2
  395. package/dist/EventListDialog-EAGLDaHc.cjs.map +0 -1
  396. package/dist/Graph-9_EZ9aQx.cjs +0 -2
  397. package/dist/Graph-9_EZ9aQx.cjs.map +0 -1
  398. package/dist/Graph-GhpiUBKI.js.map +0 -1
  399. package/dist/PluginsTab-D7zpmf8s.js.map +0 -1
  400. package/dist/PluginsTab-DfmpvAYa.cjs +0 -6
  401. package/dist/PluginsTab-DfmpvAYa.cjs.map +0 -1
  402. package/dist/TargetPacketItemChooser-DD7JgCD9.js.map +0 -1
  403. package/dist/TargetPacketItemChooser-PqyXKRlT.cjs +0 -2
  404. package/dist/TargetPacketItemChooser-PqyXKRlT.cjs.map +0 -1
  405. package/dist/index-BRc4sKEF.js.map +0 -1
  406. package/dist/index-Qy49-kGB.cjs.map +0 -1
  407. package/dist/purify.es-B336bjAn.cjs +0 -3
  408. package/dist/purify.es-B336bjAn.cjs.map +0 -1
  409. package/dist/purify.es-DcWaZU6I.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OpenC3TimePicker-LN9R7V31.js","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 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\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 // Normalize to HH:mm:ss format (v-time-picker doesn't handle milliseconds)\n this.tempTime = this.normalizeTime(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 // Capture current display before async call\n const previousDisplay = this.inputValue\n await this.loadTimeFormat()\n // Only update display if it hasn't been changed externally during the await\n if (this.inputValue === previousDisplay) {\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\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 = Number.parseInt(time24Match[1], 10)\n const minutes = Number.parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? Number.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 = Number.parseInt(time12Match[1], 10)\n const minutes = Number.parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? Number.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.normalizeTime(this.modelValue) || '00:00:00'\n this.menu = false\n },\n // Normalize time to HH:mm:ss format (strips milliseconds if present)\n normalizeTime(time) {\n if (!time) return ''\n const parts = time.split(':')\n if (parts.length < 2) return time\n const hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return ''\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n // Validate all parts are valid numbers\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return time24 // Return original if parsing fails\n }\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 const paddedMinutes = minutes.toString().padStart(2, '0')\n const paddedSeconds = seconds.toString().padStart(2, '0')\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds} ${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","previousDisplay","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","time","parts","ampm","paddedHours","paddedMinutes","paddedSeconds","_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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"}
1
+ {"version":3,"file":"OpenC3TimePicker-CkaALgy9.js","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 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\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 // Normalize to HH:mm:ss format (v-time-picker doesn't handle milliseconds)\n this.tempTime = this.normalizeTime(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 // Capture current display before async call\n const previousDisplay = this.inputValue\n await this.loadTimeFormat()\n // Only update display if it hasn't been changed externally during the await\n if (this.inputValue === previousDisplay) {\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\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 = Number.parseInt(time24Match[1], 10)\n const minutes = Number.parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? Number.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 = Number.parseInt(time12Match[1], 10)\n const minutes = Number.parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? Number.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.normalizeTime(this.modelValue) || '00:00:00'\n this.menu = false\n },\n // Normalize time to HH:mm:ss format (strips milliseconds if present)\n normalizeTime(time) {\n if (!time) return ''\n const parts = time.split(':')\n if (parts.length < 2) return time\n const hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return ''\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n // Validate all parts are valid numbers\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return time24 // Return original if parsing fails\n }\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 const paddedMinutes = minutes.toString().padStart(2, '0')\n const paddedSeconds = seconds.toString().padStart(2, '0')\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds} ${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","previousDisplay","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","time","parts","ampm","paddedHours","paddedMinutes","paddedSeconds","_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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"}
@@ -1,2 +1,2 @@
1
- "use strict";const V=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-DtL207xP.cjs"),r=require("vue"),y=require("./CustomIcon-8F08upeg.cjs"),_={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(e=>()=>e(this.modelValue))}},watch:{modelValue:{immediate:!0,handler(e){this.menu||(this.inputValue=this.formatForDisplay(e))}},inputValue(e){e===""&&this.modelValue!==""&&this.$emit("update:modelValue","")},menu(e){e&&(this.tempTime=this.normalizeTime(this.modelValue)||"00:00:00")},tempTime(e){this.menu&&e&&(this.inputValue=this.formatForDisplay(e))}},async created(){const e=this.inputValue;await this.loadTimeFormat(),this.inputValue===e&&(this.inputValue=this.formatForDisplay(this.modelValue))},methods:{async loadTimeFormat(){try{const t=await new V.yi().get_setting("time_format");t&&(this.timeFormat=t)}catch{this.timeFormat="ampm"}},formatForDisplay(e){return e?this.timeFormat==="24hr"?e:this.convertTo12Hour(e):""},handleBlur(){const e=this.parseTimeInput(this.inputValue);e?(this.$emit("update:modelValue",e),this.inputValue=this.formatForDisplay(e)):this.inputValue===""?this.$emit("update:modelValue",""):this.inputValue=this.formatForDisplay(this.modelValue)},parseTimeInput(e){if(!e||e.trim()==="")return"";const t=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(t){const n=Number.parseInt(t[1],10),i=Number.parseInt(t[2],10),s=t[3]?Number.parseInt(t[3],10):0;if(n>=0&&n<=23&&i>=0&&i<=59&&s>=0&&s<=59)return`${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}`}const a=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)$/i);if(a){let n=Number.parseInt(a[1],10);const i=Number.parseInt(a[2],10),s=a[3]?Number.parseInt(a[3],10):0,l=a[4].toUpperCase();if(n>=1&&n<=12&&i>=0&&i<=59&&s>=0&&s<=59)return l==="AM"?n===12&&(n=0):n!==12&&(n+=12),`${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}:${s.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.normalizeTime(this.modelValue)||"00:00:00",this.menu=!1},normalizeTime(e){if(!e)return"";const t=e.split(":");if(t.length<2)return e;const a=Number.parseInt(t[0],10),n=Number.parseInt(t[1],10),i=t.length>2?Number.parseInt(t[2],10):0;return Number.isNaN(a)||Number.isNaN(n)||Number.isNaN(i)?"":`${a.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`},convertTo12Hour(e){if(!e)return"";const t=e.split(":");if(t.length<2)return e;let a=Number.parseInt(t[0],10);const n=Number.parseInt(t[1],10),i=t.length>2?Number.parseInt(t[2],10):0;if(Number.isNaN(a)||Number.isNaN(n)||Number.isNaN(i))return e;const s=a>=12?"PM":"AM";a=a%12,a=a||12;const l=a.toString().padStart(2,"0"),u=n.toString().padStart(2,"0"),m=i.toString().padStart(2,"0");return`${l}:${u}:${m} ${s}`}}};function N(e,t,a,n,i,s){const l=r.resolveComponent("v-icon"),u=r.resolveComponent("v-time-picker"),m=r.resolveComponent("v-spacer"),d=r.resolveComponent("v-btn"),p=r.resolveComponent("v-card-actions"),c=r.resolveComponent("v-card"),h=r.resolveComponent("v-menu"),f=r.resolveComponent("v-text-field");return r.openBlock(),r.createBlock(f,{modelValue:i.inputValue,"onUpdate:modelValue":t[2]||(t[2]=o=>i.inputValue=o),label:a.label,rules:s.computedRules,"hide-details":a.hideDetails,variant:a.variant,density:a.density,style:r.normalizeStyle(s.computedStyle),class:r.normalizeClass(a.textFieldClass),disabled:a.disabled,"data-test":a.dataTest,onBlur:s.handleBlur,onKeydown:r.withKeys(s.handleBlur,["enter"])},{"prepend-inner":r.withCtx(()=>[r.createVNode(h,{modelValue:i.menu,"onUpdate:modelValue":t[1]||(t[1]=o=>i.menu=o),"close-on-content-click":!1,transition:"scale-transition",offset:"16"},{activator:r.withCtx(({props:o})=>[r.createVNode(l,r.mergeProps(o,{class:"cursor-pointer"}),{default:r.withCtx(()=>[...t[3]||(t[3]=[r.createTextVNode(" mdi-clock-outline ",-1)])]),_:1},16)]),default:r.withCtx(()=>[r.createVNode(c,{class:"time-picker-card"},{default:r.withCtx(()=>[r.createVNode(u,{modelValue:i.tempTime,"onUpdate:modelValue":t[0]||(t[0]=o=>i.tempTime=o),format:i.timeFormat,scrollable:"","use-seconds":"","hide-header":""},null,8,["modelValue","format"]),r.createVNode(p,null,{default:r.withCtx(()=>[r.createVNode(m),r.createVNode(d,{variant:"text",onClick:s.cancel},{default:r.withCtx(()=>[...t[4]||(t[4]=[r.createTextVNode("Cancel",-1)])]),_:1},8,["onClick"]),r.createVNode(d,{color:"primary",variant:"text",onClick:s.save},{default:r.withCtx(()=>[...t[5]||(t[5]=[r.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 v=y._export_sfc(_,[["render",N],["__scopeId","data-v-5606bec3"]]);exports.OpenC3TimePicker=v;
2
- //# sourceMappingURL=OpenC3TimePicker-BHX9fnlR.cjs.map
1
+ "use strict";const V=require("./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-MfH160rD.cjs"),r=require("vue"),y=require("./CustomIcon-8F08upeg.cjs"),_={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(e=>()=>e(this.modelValue))}},watch:{modelValue:{immediate:!0,handler(e){this.menu||(this.inputValue=this.formatForDisplay(e))}},inputValue(e){e===""&&this.modelValue!==""&&this.$emit("update:modelValue","")},menu(e){e&&(this.tempTime=this.normalizeTime(this.modelValue)||"00:00:00")},tempTime(e){this.menu&&e&&(this.inputValue=this.formatForDisplay(e))}},async created(){const e=this.inputValue;await this.loadTimeFormat(),this.inputValue===e&&(this.inputValue=this.formatForDisplay(this.modelValue))},methods:{async loadTimeFormat(){try{const t=await new V.yi().get_setting("time_format");t&&(this.timeFormat=t)}catch{this.timeFormat="ampm"}},formatForDisplay(e){return e?this.timeFormat==="24hr"?e:this.convertTo12Hour(e):""},handleBlur(){const e=this.parseTimeInput(this.inputValue);e?(this.$emit("update:modelValue",e),this.inputValue=this.formatForDisplay(e)):this.inputValue===""?this.$emit("update:modelValue",""):this.inputValue=this.formatForDisplay(this.modelValue)},parseTimeInput(e){if(!e||e.trim()==="")return"";const t=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(t){const n=Number.parseInt(t[1],10),i=Number.parseInt(t[2],10),s=t[3]?Number.parseInt(t[3],10):0;if(n>=0&&n<=23&&i>=0&&i<=59&&s>=0&&s<=59)return`${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}:${s.toString().padStart(2,"0")}`}const a=e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)$/i);if(a){let n=Number.parseInt(a[1],10);const i=Number.parseInt(a[2],10),s=a[3]?Number.parseInt(a[3],10):0,l=a[4].toUpperCase();if(n>=1&&n<=12&&i>=0&&i<=59&&s>=0&&s<=59)return l==="AM"?n===12&&(n=0):n!==12&&(n+=12),`${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}:${s.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.normalizeTime(this.modelValue)||"00:00:00",this.menu=!1},normalizeTime(e){if(!e)return"";const t=e.split(":");if(t.length<2)return e;const a=Number.parseInt(t[0],10),n=Number.parseInt(t[1],10),i=t.length>2?Number.parseInt(t[2],10):0;return Number.isNaN(a)||Number.isNaN(n)||Number.isNaN(i)?"":`${a.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`},convertTo12Hour(e){if(!e)return"";const t=e.split(":");if(t.length<2)return e;let a=Number.parseInt(t[0],10);const n=Number.parseInt(t[1],10),i=t.length>2?Number.parseInt(t[2],10):0;if(Number.isNaN(a)||Number.isNaN(n)||Number.isNaN(i))return e;const s=a>=12?"PM":"AM";a=a%12,a=a||12;const l=a.toString().padStart(2,"0"),u=n.toString().padStart(2,"0"),m=i.toString().padStart(2,"0");return`${l}:${u}:${m} ${s}`}}};function N(e,t,a,n,i,s){const l=r.resolveComponent("v-icon"),u=r.resolveComponent("v-time-picker"),m=r.resolveComponent("v-spacer"),d=r.resolveComponent("v-btn"),p=r.resolveComponent("v-card-actions"),c=r.resolveComponent("v-card"),h=r.resolveComponent("v-menu"),f=r.resolveComponent("v-text-field");return r.openBlock(),r.createBlock(f,{modelValue:i.inputValue,"onUpdate:modelValue":t[2]||(t[2]=o=>i.inputValue=o),label:a.label,rules:s.computedRules,"hide-details":a.hideDetails,variant:a.variant,density:a.density,style:r.normalizeStyle(s.computedStyle),class:r.normalizeClass(a.textFieldClass),disabled:a.disabled,"data-test":a.dataTest,onBlur:s.handleBlur,onKeydown:r.withKeys(s.handleBlur,["enter"])},{"prepend-inner":r.withCtx(()=>[r.createVNode(h,{modelValue:i.menu,"onUpdate:modelValue":t[1]||(t[1]=o=>i.menu=o),"close-on-content-click":!1,transition:"scale-transition",offset:"16"},{activator:r.withCtx(({props:o})=>[r.createVNode(l,r.mergeProps(o,{class:"cursor-pointer"}),{default:r.withCtx(()=>[...t[3]||(t[3]=[r.createTextVNode(" mdi-clock-outline ",-1)])]),_:1},16)]),default:r.withCtx(()=>[r.createVNode(c,{class:"time-picker-card"},{default:r.withCtx(()=>[r.createVNode(u,{modelValue:i.tempTime,"onUpdate:modelValue":t[0]||(t[0]=o=>i.tempTime=o),format:i.timeFormat,scrollable:"","use-seconds":"","hide-header":""},null,8,["modelValue","format"]),r.createVNode(p,null,{default:r.withCtx(()=>[r.createVNode(m),r.createVNode(d,{variant:"text",onClick:s.cancel},{default:r.withCtx(()=>[...t[4]||(t[4]=[r.createTextVNode("Cancel",-1)])]),_:1},8,["onClick"]),r.createVNode(d,{color:"primary",variant:"text",onClick:s.save},{default:r.withCtx(()=>[...t[5]||(t[5]=[r.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 v=y._export_sfc(_,[["render",N],["__scopeId","data-v-5606bec3"]]);exports.OpenC3TimePicker=v;
2
+ //# sourceMappingURL=OpenC3TimePicker-bbdbKTv_.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenC3TimePicker-BHX9fnlR.cjs","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 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\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 // Normalize to HH:mm:ss format (v-time-picker doesn't handle milliseconds)\n this.tempTime = this.normalizeTime(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 // Capture current display before async call\n const previousDisplay = this.inputValue\n await this.loadTimeFormat()\n // Only update display if it hasn't been changed externally during the await\n if (this.inputValue === previousDisplay) {\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\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 = Number.parseInt(time24Match[1], 10)\n const minutes = Number.parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? Number.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 = Number.parseInt(time12Match[1], 10)\n const minutes = Number.parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? Number.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.normalizeTime(this.modelValue) || '00:00:00'\n this.menu = false\n },\n // Normalize time to HH:mm:ss format (strips milliseconds if present)\n normalizeTime(time) {\n if (!time) return ''\n const parts = time.split(':')\n if (parts.length < 2) return time\n const hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return ''\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n // Validate all parts are valid numbers\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return time24 // Return original if parsing fails\n }\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 const paddedMinutes = minutes.toString().padStart(2, '0')\n const paddedSeconds = seconds.toString().padStart(2, '0')\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds} ${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","previousDisplay","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","time","parts","ampm","paddedHours","paddedMinutes","paddedSeconds","_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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"}
1
+ {"version":3,"file":"OpenC3TimePicker-bbdbKTv_.cjs","sources":["../src/components/OpenC3TimePicker.vue"],"sourcesContent":["<!--\n# Copyright 2026 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\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 // Normalize to HH:mm:ss format (v-time-picker doesn't handle milliseconds)\n this.tempTime = this.normalizeTime(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 // Capture current display before async call\n const previousDisplay = this.inputValue\n await this.loadTimeFormat()\n // Only update display if it hasn't been changed externally during the await\n if (this.inputValue === previousDisplay) {\n this.inputValue = this.formatForDisplay(this.modelValue)\n }\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 = Number.parseInt(time24Match[1], 10)\n const minutes = Number.parseInt(time24Match[2], 10)\n const seconds = time24Match[3] ? Number.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 = Number.parseInt(time12Match[1], 10)\n const minutes = Number.parseInt(time12Match[2], 10)\n const seconds = time12Match[3] ? Number.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.normalizeTime(this.modelValue) || '00:00:00'\n this.menu = false\n },\n // Normalize time to HH:mm:ss format (strips milliseconds if present)\n normalizeTime(time) {\n if (!time) return ''\n const parts = time.split(':')\n if (parts.length < 2) return time\n const hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return ''\n }\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n },\n convertTo12Hour(time24) {\n if (!time24) return ''\n const parts = time24.split(':')\n if (parts.length < 2) return time24\n let hours = Number.parseInt(parts[0], 10)\n const minutes = Number.parseInt(parts[1], 10)\n // Strip milliseconds from seconds (e.g., \"45.123\" -> 45)\n const seconds = parts.length > 2 ? Number.parseInt(parts[2], 10) : 0\n // Validate all parts are valid numbers\n if (\n Number.isNaN(hours) ||\n Number.isNaN(minutes) ||\n Number.isNaN(seconds)\n ) {\n return time24 // Return original if parsing fails\n }\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 const paddedMinutes = minutes.toString().padStart(2, '0')\n const paddedSeconds = seconds.toString().padStart(2, '0')\n return `${paddedHours}:${paddedMinutes}:${paddedSeconds} ${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","previousDisplay","response","OpenC3Api","time24","parsed","input","time24Match","hours","minutes","seconds","time12Match","period","time","parts","ampm","paddedHours","paddedMinutes","paddedSeconds","_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":"iLA8DKA,EAAU,CACb,aAAc,GACd,MAAO,CACL,WAAY,CACV,KAAM,OACN,QAAS,IAEX,MAAO,CACL,KAAM,OACN,QAAS,QAEX,MAAO,CACL,KAAM,MACN,QAAS,IAAM,CAAA,GAEjB,YAAa,CACX,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IAEX,QAAS,CACP,KAAM,OACN,QAAS,UAEX,QAAS,CACP,KAAM,OACN,QAAS,WAEX,MAAO,CACL,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,IAEX,eAAgB,CACd,KAAM,OACN,QAAS,IAEX,SAAU,CACR,KAAM,OACN,QAAS,IAEX,SAAU,CACR,KAAM,QACN,QAAS,KAGb,MAAO,CAAC,mBAAmB,EAC3B,MAAO,CACL,MAAO,CACL,KAAM,GACN,WAAY,OACZ,SAAU,KACV,WAAY,EACd,CACF,EACA,SAAU,CACR,eAAgB,CACd,OAAI,OAAO,KAAK,OAAU,SACjB,KAAK,MAEP,KAAK,KACd,EACA,eAAgB,CAEd,OAAO,KAAK,MAAM,IAAKC,GACd,IACEA,EAAK,KAAK,UAAU,CAE9B,CACH,GAEF,MAAO,CACL,WAAY,CACV,UAAW,GACX,QAAQC,EAAQ,CAET,KAAK,OACR,KAAK,WAAa,KAAK,iBAAiBA,CAAM,EAElD,GAEF,WAAWA,EAAQ,CAEbA,IAAW,IAAM,KAAK,aAAe,IACvC,KAAK,MAAM,oBAAqB,EAAE,CAEtC,EACA,KAAKA,EAAQ,CACPA,IAGF,KAAK,SAAW,KAAK,cAAc,KAAK,UAAU,GAAK,WAE3D,EACA,SAASA,EAAQ,CAEX,KAAK,MAAQA,IACf,KAAK,WAAa,KAAK,iBAAiBA,CAAM,EAElD,GAEF,MAAM,SAAU,CAEd,MAAMC,EAAkB,KAAK,WAC7B,MAAM,KAAK,eAAc,EAErB,KAAK,aAAeA,IACtB,KAAK,WAAa,KAAK,iBAAiB,KAAK,UAAU,EAE3D,EACA,QAAS,CACP,MAAM,gBAAiB,CACrB,GAAI,CAEF,MAAMC,EAAW,MADL,IAAIC,EAAAA,GAAS,EACE,YAAY,aAAa,EAChDD,IACF,KAAK,WAAaA,EAEtB,MAAgB,CAEd,KAAK,WAAa,MACpB,CACF,EACA,iBAAiBE,EAAQ,CACvB,OAAKA,EACD,KAAK,aAAe,OACfA,EAEF,KAAK,gBAAgBA,CAAM,EAJd,EAKtB,EACA,YAAa,CAEX,MAAMC,EAAS,KAAK,eAAe,KAAK,UAAU,EAC9CA,GACF,KAAK,MAAM,oBAAqBA,CAAM,EACtC,KAAK,WAAa,KAAK,iBAAiBA,CAAM,GACrC,KAAK,aAAe,GAC7B,KAAK,MAAM,oBAAqB,EAAE,EAGlC,KAAK,WAAa,KAAK,iBAAiB,KAAK,UAAU,CAE3D,EACA,eAAeC,EAAO,CACpB,GAAI,CAACA,GAASA,EAAM,KAAI,IAAO,GAAI,MAAO,GAG1C,MAAMC,EAAcD,EAAM,MAAM,kCAAkC,EAClE,GAAIC,EAAa,CACf,MAAMC,EAAQ,OAAO,SAASD,EAAY,CAAC,EAAG,EAAE,EAC1CE,EAAU,OAAO,SAASF,EAAY,CAAC,EAAG,EAAE,EAC5CG,EAAUH,EAAY,CAAC,EAAI,OAAO,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EACvE,GACEC,GAAS,GACTA,GAAS,IACTC,GAAW,GACXA,GAAW,IACXC,GAAW,GACXA,GAAW,GAEX,MAAO,GAAGF,EAAM,WAAW,SAAS,EAAG,GAAG,CAAC,IAAIC,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,IAAIC,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAE7H,CAGA,MAAMC,EAAcL,EAAM,MACxB,mDACF,EACA,GAAIK,EAAa,CACf,IAAIH,EAAQ,OAAO,SAASG,EAAY,CAAC,EAAG,EAAE,EAC9C,MAAMF,EAAU,OAAO,SAASE,EAAY,CAAC,EAAG,EAAE,EAC5CD,EAAUC,EAAY,CAAC,EAAI,OAAO,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EACjEC,EAASD,EAAY,CAAC,EAAE,YAAW,EAEzC,GACEH,GAAS,GACTA,GAAS,IACTC,GAAW,GACXA,GAAW,IACXC,GAAW,GACXA,GAAW,GAGX,OAAIE,IAAW,KACTJ,IAAU,KAAIA,EAAQ,GAEtBA,IAAU,KAAIA,GAAS,IAEtB,GAAGA,EAAM,WAAW,SAAS,EAAG,GAAG,CAAC,IAAIC,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,IAAIC,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAE7H,CAEA,OAAO,IACT,EACA,MAAO,CACL,KAAK,MAAM,oBAAqB,KAAK,QAAQ,EAC7C,KAAK,WAAa,KAAK,iBAAiB,KAAK,QAAQ,EACrD,KAAK,KAAO,EACd,EACA,QAAS,CACP,KAAK,SAAW,KAAK,cAAc,KAAK,UAAU,GAAK,WACvD,KAAK,KAAO,EACd,EAEA,cAAcG,EAAM,CAClB,GAAI,CAACA,EAAM,MAAO,GAClB,MAAMC,EAAQD,EAAK,MAAM,GAAG,EAC5B,GAAIC,EAAM,OAAS,EAAG,OAAOD,EAC7B,MAAML,EAAQ,OAAO,SAASM,EAAM,CAAC,EAAG,EAAE,EACpCL,EAAU,OAAO,SAASK,EAAM,CAAC,EAAG,EAAE,EAEtCJ,EAAUI,EAAM,OAAS,EAAI,OAAO,SAASA,EAAM,CAAC,EAAG,EAAE,EAAI,EACnE,OACE,OAAO,MAAMN,CAAK,GAClB,OAAO,MAAMC,CAAO,GACpB,OAAO,MAAMC,CAAO,EAEb,GAEF,GAAGF,EAAM,WAAW,SAAS,EAAG,GAAG,CAAC,IAAIC,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,IAAIC,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,CAAC,EAC3H,EACA,gBAAgBN,EAAQ,CACtB,GAAI,CAACA,EAAQ,MAAO,GACpB,MAAMU,EAAQV,EAAO,MAAM,GAAG,EAC9B,GAAIU,EAAM,OAAS,EAAG,OAAOV,EAC7B,IAAII,EAAQ,OAAO,SAASM,EAAM,CAAC,EAAG,EAAE,EACxC,MAAML,EAAU,OAAO,SAASK,EAAM,CAAC,EAAG,EAAE,EAEtCJ,EAAUI,EAAM,OAAS,EAAI,OAAO,SAASA,EAAM,CAAC,EAAG,EAAE,EAAI,EAEnE,GACE,OAAO,MAAMN,CAAK,GAClB,OAAO,MAAMC,CAAO,GACpB,OAAO,MAAMC,CAAO,EAEpB,OAAON,EAET,MAAMW,EAAOP,GAAS,GAAK,KAAO,KAClCA,EAAQA,EAAQ,GAChBA,EAAQA,GAAgB,GACxB,MAAMQ,EAAcR,EAAM,SAAQ,EAAG,SAAS,EAAG,GAAG,EAC9CS,EAAgBR,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,EAClDS,EAAgBR,EAAQ,SAAQ,EAAG,SAAS,EAAG,GAAG,EACxD,MAAO,GAAGM,CAAW,IAAIC,CAAa,IAAIC,CAAa,IAAIH,CAAI,EACjE,EAEJ,mUApSEI,EAAAA,YA0CeC,EAAA,YAzCJC,EAAA,gDAAAA,EAAA,WAAUC,GAClB,MAAOC,EAAA,MACP,MAAOC,EAAA,cACP,eAAcD,EAAA,YACd,QAASA,EAAA,QACT,QAASA,EAAA,QACT,uBAAOC,EAAA,aAAa,EACpB,uBAAOD,EAAA,cAAc,EACrB,SAAUA,EAAA,SACV,YAAWA,EAAA,SACX,OAAMC,EAAA,WACN,qBAAeA,EAAA,WAAU,CAAA,OAAA,CAAA,IAEf,0BACT,IAyBS,CAzBTC,EAAAA,YAyBSC,EAAA,YAxBEL,EAAA,0CAAAA,EAAA,KAAIC,GACZ,yBAAwB,GACzB,WAAW,mBACX,OAAO,OAEI,UAASK,EAAAA,QAClB,CAES,CAAA,MAHoBC,CAAS,IAAA,CACtCH,EAAAA,YAESI,EAFTC,aAAgBF,EAAS,CAAE,MAAM,gBAAgB,CAAA,EAAA,mBAAC,IAElD,CAAA,GAAAG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mBAFkD,sBAElD,EAAA,mCAEF,IAaS,CAbTN,EAAAA,YAaSO,EAAA,CAbD,MAAM,kBAAkB,EAAA,mBAC9B,IAME,CANFP,EAAAA,YAMEQ,EAAA,YALSZ,EAAA,8CAAAA,EAAA,SAAQC,GAChB,OAAQD,EAAA,WACT,WAAA,GACA,cAAA,GACA,cAAA,oCAEFI,EAAAA,YAIiBS,EAAA,KAAA,mBAHf,IAAY,CAAZT,EAAAA,YAAYU,CAAA,EACZV,EAAAA,YAAoDW,EAAA,CAA7C,QAAQ,OAAQ,QAAOZ,EAAA,2BAAQ,IAAM,CAAA,GAAAO,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mBAAN,SAAM,EAAA,0BAC5CN,EAAAA,YAA8DW,EAAA,CAAvD,MAAM,UAAU,QAAQ,OAAQ,QAAOZ,EAAA,yBAAM,IAAE,CAAA,GAAAO,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mBAAF,KAAE,EAAA"}
@@ -1,13 +1,13 @@
1
- import { F as C, y as H, a as F, W as X, c as N, f as Z, l as Y } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-D0cYHPwr.js";
1
+ import { F as C, y as q, a as F, W as X, c as N, f as Z, l as Y } from "./UpgradeToEnterpriseDialog.vue_vue_type_style_index_0_scoped_c790a82f_lang-CDTSzdb-.js";
2
2
  import { resolveComponent as d, createElementBlock as E, openBlock as p, createVNode as o, withCtx as r, createTextVNode as T, createElementVNode as y, withModifiers as O, normalizeStyle as W, toDisplayString as w, createBlock as _, withKeys as U, Fragment as z, renderList as $, ref as K, computed as J, watch as j, createCommentVNode as V, withDirectives as M, vShow as R, normalizeClass as Q, normalizeProps as L, guardReactiveProps as P } from "vue";
3
3
  import { _ as A } from "./CustomIcon-Cg3jCA_l.js";
4
4
  import { f as ee } from "./fileIcon-DqRHb1_Z.js";
5
- import { A as q } from "./TopBar-D-lJHb6d.js";
5
+ import { A as H } from "./TopBar-B4RDkLs-.js";
6
6
  class te {
7
7
  constructor() {
8
8
  C.get("/openc3-api/autocomplete/data/screen").then((t) => {
9
9
  this.autocompleteData = t.data;
10
- }), this.api = new H();
10
+ }), this.api = new q();
11
11
  }
12
12
  async getCompletions(t, i, s, n, l) {
13
13
  if (!this.autocompleteData) return l(null, []);
@@ -126,7 +126,7 @@ const ie = {
126
126
  initEditor() {
127
127
  this.editor = F.edit(this.$refs.editor), this.editor.setTheme("ace/theme/twilight");
128
128
  const e = this.buildScreenMode();
129
- this.editor.session.setMode(new e()), this.editor.session.setTabSize(2), this.editor.session.setUseWrapMode(!0), this.editor.$blockScrolling = 1 / 0, this.editor.setOption("enableBasicAutocompletion", !0), this.editor.setOption("enableLiveAutocompletion", !0), this.editor.completers = [new te()], this.editor.setHighlightActiveLine(!1), this.editor.setValue(this.modelValue), this.editor.clearSelection(), q.applyVimModeIfEnabled(this.editor), this.editor.focus(), this.editor.session.on("change", () => {
129
+ this.editor.session.setMode(new e()), this.editor.session.setTabSize(2), this.editor.session.setUseWrapMode(!0), this.editor.$blockScrolling = 1 / 0, this.editor.setOption("enableBasicAutocompletion", !0), this.editor.setOption("enableLiveAutocompletion", !0), this.editor.completers = [new te()], this.editor.setHighlightActiveLine(!1), this.editor.setValue(this.modelValue), this.editor.clearSelection(), H.applyVimModeIfEnabled(this.editor), this.editor.focus(), this.editor.session.on("change", () => {
130
130
  this.$emit("update:modelValue", this.editor.getValue());
131
131
  });
132
132
  },
@@ -171,7 +171,7 @@ const ie = {
171
171
  }).call(n.prototype), n;
172
172
  },
173
173
  toggleVimMode() {
174
- q.toggleVimMode(this.editor);
174
+ H.toggleVimMode(this.editor);
175
175
  },
176
176
  showContextMenu(e) {
177
177
  this.menuX = e.pageX, this.menuY = e.pageY;
@@ -1452,7 +1452,7 @@ const Pe = /* @__PURE__ */ A(ke, [["render", Ce]]), B = 20, Ve = {
1452
1452
  })), !1;
1453
1453
  },
1454
1454
  created() {
1455
- this.api = new H(), this.configParser = new Z(), this.parseDefinition(), this.screenKey = Math.floor(Math.random() * 1e6);
1455
+ this.api = new q(), this.configParser = new Z(), this.parseDefinition(), this.screenKey = Math.floor(Math.random() * 1e6);
1456
1456
  },
1457
1457
  mounted() {
1458
1458
  this.playbackMode === "realtime" && !this.frozen && this.updateRefreshInterval(), this.frozen && this.frozenValues && this.$nextTick(() => {
@@ -1779,15 +1779,14 @@ const Pe = /* @__PURE__ */ A(ke, [["render", Ce]]), B = 20, Ve = {
1779
1779
  this.cacheTimeout,
1780
1780
  e
1781
1781
  ).then((t) => {
1782
- t && t.length > 0 && (this.updateValues(t), this.errors = this.errors.filter(
1783
- (i) => i.type !== "error" || !i.message.includes("Request error")
1784
- ));
1782
+ t && t.length > 0 && (this.updateValues(t), this.errors = this.errors.filter((i) => !i.transient));
1785
1783
  }).catch((t) => {
1786
1784
  let i = JSON.stringify(t, null, 2);
1787
1785
  this.errors.find((s) => s.message === i) || this.errors.length < B && this.errors.push({
1788
1786
  type: "error",
1789
1787
  message: i,
1790
- time: (/* @__PURE__ */ new Date()).getTime()
1788
+ time: (/* @__PURE__ */ new Date()).getTime(),
1789
+ transient: !0
1791
1790
  });
1792
1791
  });
1793
1792
  },
@@ -2125,7 +2124,7 @@ function De(e, t, i, s, n, l) {
2125
2124
  }, 8, ["modelValue"])
2126
2125
  ], 4);
2127
2126
  }
2128
- const Be = /* @__PURE__ */ A(Ve, [["render", De], ["__scopeId", "data-v-74b070ee"]]);
2127
+ const Be = /* @__PURE__ */ A(Ve, [["render", De], ["__scopeId", "data-v-d702c86d"]]);
2129
2128
  export {
2130
2129
  Ue as C,
2131
2130
  de as E,
@@ -2138,4 +2137,4 @@ export {
2138
2137
  Re as c,
2139
2138
  ce as g
2140
2139
  };
2141
- //# sourceMappingURL=Openc3Screen-BP7Ho9XC.js.map
2140
+ //# sourceMappingURL=Openc3Screen-BnM1bNOB.js.map