@getontime/cli 4.4.1 → 4.4.2

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 (333) hide show
  1. package/client/assets/{Backstage-BY9GL_rk.js → Backstage-BdrcXNr9.js} +2 -2
  2. package/client/assets/Backstage-BdrcXNr9.js.br +0 -0
  3. package/client/assets/Backstage-BdrcXNr9.js.gz +0 -0
  4. package/client/assets/{Backstage-BY9GL_rk.js.map → Backstage-BdrcXNr9.js.map} +1 -1
  5. package/client/assets/{Countdown-CXFgDHND.js → Countdown-DQM2ppPg.js} +2 -2
  6. package/client/assets/Countdown-DQM2ppPg.js.br +0 -0
  7. package/client/assets/Countdown-DQM2ppPg.js.gz +0 -0
  8. package/client/assets/{Countdown-CXFgDHND.js.map → Countdown-DQM2ppPg.js.map} +1 -1
  9. package/client/assets/{CuesheetTable-BLICUNky.js → CuesheetTable-B5LQVh5m.js} +2 -2
  10. package/client/assets/CuesheetTable-B5LQVh5m.js.br +0 -0
  11. package/client/assets/CuesheetTable-B5LQVh5m.js.gz +0 -0
  12. package/client/assets/{CuesheetTable-BLICUNky.js.map → CuesheetTable-B5LQVh5m.js.map} +1 -1
  13. package/client/assets/{CustomTranslationModal-4PVZBtkC.js → CustomTranslationModal-CML7Vsot.js} +2 -2
  14. package/client/assets/CustomTranslationModal-CML7Vsot.js.br +0 -0
  15. package/client/assets/CustomTranslationModal-CML7Vsot.js.gz +0 -0
  16. package/client/assets/{CustomTranslationModal-4PVZBtkC.js.map → CustomTranslationModal-CML7Vsot.js.map} +1 -1
  17. package/client/assets/{DelayIndicator-DUbpd6DG.js → DelayIndicator-DKS6mZdB.js} +2 -2
  18. package/client/assets/DelayIndicator-DKS6mZdB.js.br +0 -0
  19. package/client/assets/DelayIndicator-DKS6mZdB.js.gz +0 -0
  20. package/client/assets/{DelayIndicator-DUbpd6DG.js.map → DelayIndicator-DKS6mZdB.js.map} +1 -1
  21. package/client/assets/{EditorFeatureWrapper-CV_zaDoG.js → EditorFeatureWrapper-C1vLQxiy.js} +2 -2
  22. package/client/assets/EditorFeatureWrapper-C1vLQxiy.js.br +0 -0
  23. package/client/assets/EditorFeatureWrapper-C1vLQxiy.js.gz +0 -0
  24. package/client/assets/{EditorFeatureWrapper-CV_zaDoG.js.map → EditorFeatureWrapper-C1vLQxiy.js.map} +1 -1
  25. package/client/assets/{EditorUtils-CLBWDP4k.js → EditorUtils-BLcTuWz1.js} +2 -2
  26. package/client/assets/EditorUtils-BLcTuWz1.js.br +0 -0
  27. package/client/assets/EditorUtils-BLcTuWz1.js.gz +0 -0
  28. package/client/assets/{EditorUtils-CLBWDP4k.js.map → EditorUtils-BLcTuWz1.js.map} +1 -1
  29. package/client/assets/{EmptyPage-DmpOAg7R.js → EmptyPage-CYVrjOvI.js} +2 -2
  30. package/client/assets/EmptyPage-CYVrjOvI.js.br +0 -0
  31. package/client/assets/EmptyPage-CYVrjOvI.js.gz +0 -0
  32. package/client/assets/{EmptyPage-DmpOAg7R.js.map → EmptyPage-CYVrjOvI.js.map} +1 -1
  33. package/client/assets/{FollowButton-CAUWz5Ma.js → FollowButton-DcSbb4R_.js} +2 -2
  34. package/client/assets/FollowButton-DcSbb4R_.js.br +0 -0
  35. package/client/assets/FollowButton-DcSbb4R_.js.gz +0 -0
  36. package/client/assets/{FollowButton-CAUWz5Ma.js.map → FollowButton-DcSbb4R_.js.map} +1 -1
  37. package/client/assets/{MessageControlExport-Dm8IjSr4.js → MessageControlExport-BgT9JaXk.js} +3 -3
  38. package/client/assets/MessageControlExport-BgT9JaXk.js.br +0 -0
  39. package/client/assets/MessageControlExport-BgT9JaXk.js.gz +0 -0
  40. package/client/assets/{MessageControlExport-Dm8IjSr4.js.map → MessageControlExport-BgT9JaXk.js.map} +1 -1
  41. package/client/assets/{MultiPartProgressBar-Fp-sTN2u.js → MultiPartProgressBar-W2a-JWPY.js} +2 -2
  42. package/client/assets/MultiPartProgressBar-W2a-JWPY.js.br +0 -0
  43. package/client/assets/MultiPartProgressBar-W2a-JWPY.js.gz +0 -0
  44. package/client/assets/{MultiPartProgressBar-Fp-sTN2u.js.map → MultiPartProgressBar-W2a-JWPY.js.map} +1 -1
  45. package/client/assets/{OperatorExport-CE4ajLPS.js → OperatorExport-CbWojpp6.js} +2 -2
  46. package/client/assets/OperatorExport-CbWojpp6.js.br +0 -0
  47. package/client/assets/OperatorExport-CbWojpp6.js.gz +0 -0
  48. package/client/assets/{OperatorExport-CE4ajLPS.js.map → OperatorExport-CbWojpp6.js.map} +1 -1
  49. package/client/assets/{OverviewWrapper-BNnAIUP1.js → OverviewWrapper-B2i8d3rt.js} +2 -2
  50. package/client/assets/OverviewWrapper-B2i8d3rt.js.br +0 -0
  51. package/client/assets/OverviewWrapper-B2i8d3rt.js.gz +0 -0
  52. package/client/assets/{OverviewWrapper-BNnAIUP1.js.map → OverviewWrapper-B2i8d3rt.js.map} +1 -1
  53. package/client/assets/{PipHost-CbNFsfqp.js → PipHost-Dz2oy7XG.js} +2 -2
  54. package/client/assets/PipHost-Dz2oy7XG.js.br +0 -0
  55. package/client/assets/PipHost-Dz2oy7XG.js.gz +0 -0
  56. package/client/assets/{PipHost-CbNFsfqp.js.map → PipHost-Dz2oy7XG.js.map} +1 -1
  57. package/client/assets/{ProjectInfo-Bf5z4Xsv.js → ProjectInfo-BR_7Hp5u.js} +2 -2
  58. package/client/assets/ProjectInfo-BR_7Hp5u.js.br +0 -0
  59. package/client/assets/ProjectInfo-BR_7Hp5u.js.gz +0 -0
  60. package/client/assets/{ProjectInfo-Bf5z4Xsv.js.map → ProjectInfo-BR_7Hp5u.js.map} +1 -1
  61. package/client/assets/{ProtectRoute-CCHzyy0I.js → ProtectRoute-Bxq6q7ba.js} +2 -2
  62. package/client/assets/ProtectRoute-Bxq6q7ba.js.br +0 -0
  63. package/client/assets/ProtectRoute-Bxq6q7ba.js.gz +0 -0
  64. package/client/assets/{ProtectRoute-CCHzyy0I.js.map → ProtectRoute-Bxq6q7ba.js.map} +1 -1
  65. package/client/assets/{ProtectedCuesheet-COI1W_V3.js → ProtectedCuesheet-C7AqD2dy.js} +2 -2
  66. package/client/assets/ProtectedCuesheet-C7AqD2dy.js.br +0 -0
  67. package/client/assets/ProtectedCuesheet-C7AqD2dy.js.gz +0 -0
  68. package/client/assets/{ProtectedCuesheet-COI1W_V3.js.map → ProtectedCuesheet-C7AqD2dy.js.map} +1 -1
  69. package/client/assets/{ProtectedEditor-BvTFmv-F.js → ProtectedEditor-CsfvVyOU.js} +3 -3
  70. package/client/assets/ProtectedEditor-CsfvVyOU.js.br +0 -0
  71. package/client/assets/ProtectedEditor-CsfvVyOU.js.gz +0 -0
  72. package/client/assets/{ProtectedEditor-BvTFmv-F.js.map → ProtectedEditor-CsfvVyOU.js.map} +1 -1
  73. package/client/assets/{RundownExport-C_q3KYN_.js → RundownExport-25orDQIW.js} +2 -2
  74. package/client/assets/RundownExport-25orDQIW.js.br +0 -0
  75. package/client/assets/RundownExport-25orDQIW.js.gz +0 -0
  76. package/client/assets/{RundownExport-C_q3KYN_.js.map → RundownExport-25orDQIW.js.map} +1 -1
  77. package/client/assets/{Select-DQwYPDyI.js → Select-BnGTAeXJ.js} +2 -2
  78. package/client/assets/Select-BnGTAeXJ.js.br +0 -0
  79. package/client/assets/Select-BnGTAeXJ.js.gz +0 -0
  80. package/client/assets/{Select-DQwYPDyI.js.map → Select-BnGTAeXJ.js.map} +1 -1
  81. package/client/assets/{Studio-DzXTmBx4.js → Studio-BK2Klo_K.js} +2 -2
  82. package/client/assets/Studio-BK2Klo_K.js.br +0 -0
  83. package/client/assets/Studio-BK2Klo_K.js.gz +0 -0
  84. package/client/assets/{Studio-DzXTmBx4.js.map → Studio-BK2Klo_K.js.map} +1 -1
  85. package/client/assets/{StyleEditor-ClMEMaWh.js → StyleEditor-DIHQ1PUV.js} +2 -2
  86. package/client/assets/StyleEditor-DIHQ1PUV.js.br +0 -0
  87. package/client/assets/StyleEditor-DIHQ1PUV.js.gz +0 -0
  88. package/client/assets/{StyleEditor-ClMEMaWh.js.map → StyleEditor-DIHQ1PUV.js.map} +1 -1
  89. package/client/assets/{SuperscriptPeriod-CBiZU34J.js → SuperscriptPeriod-EEedc9rG.js} +2 -2
  90. package/client/assets/SuperscriptPeriod-EEedc9rG.js.br +0 -0
  91. package/client/assets/SuperscriptPeriod-EEedc9rG.js.gz +0 -0
  92. package/client/assets/{SuperscriptPeriod-CBiZU34J.js.map → SuperscriptPeriod-EEedc9rG.js.map} +1 -1
  93. package/client/assets/{SuperscriptTime-DP1CDlOX.js → SuperscriptTime-BVanhNvd.js} +2 -2
  94. package/client/assets/SuperscriptTime-BVanhNvd.js.br +0 -0
  95. package/client/assets/SuperscriptTime-BVanhNvd.js.gz +0 -0
  96. package/client/assets/{SuperscriptTime-DP1CDlOX.js.map → SuperscriptTime-BVanhNvd.js.map} +1 -1
  97. package/client/assets/{SwatchPicker-Dyxkxf3_.js → SwatchPicker-Ckpchvjo.js} +2 -2
  98. package/client/assets/SwatchPicker-Ckpchvjo.js.br +0 -0
  99. package/client/assets/SwatchPicker-Ckpchvjo.js.gz +0 -0
  100. package/client/assets/{SwatchPicker-Dyxkxf3_.js.map → SwatchPicker-Ckpchvjo.js.map} +1 -1
  101. package/client/assets/{TimeElements-pDYJeFbV.js → TimeElements-CYIgGk0T.js} +2 -2
  102. package/client/assets/TimeElements-CYIgGk0T.js.br +0 -0
  103. package/client/assets/TimeElements-CYIgGk0T.js.gz +0 -0
  104. package/client/assets/{TimeElements-pDYJeFbV.js.map → TimeElements-CYIgGk0T.js.map} +1 -1
  105. package/client/assets/{TimeInput-DTWDnaum.js → TimeInput-Cwl9vLWA.js} +2 -2
  106. package/client/assets/TimeInput-Cwl9vLWA.js.br +0 -0
  107. package/client/assets/TimeInput-Cwl9vLWA.js.gz +0 -0
  108. package/client/assets/{TimeInput-DTWDnaum.js.map → TimeInput-Cwl9vLWA.js.map} +1 -1
  109. package/client/assets/{TimelinePage-DbLt9rQi.js → TimelinePage-D4QNdk-Z.js} +2 -2
  110. package/client/assets/TimelinePage-D4QNdk-Z.js.br +0 -0
  111. package/client/assets/TimelinePage-D4QNdk-Z.js.gz +0 -0
  112. package/client/assets/{TimelinePage-DbLt9rQi.js.map → TimelinePage-D4QNdk-Z.js.map} +1 -1
  113. package/client/assets/{Timer-BfyVKQ8U.js → Timer-BJQKNHfo.js} +2 -2
  114. package/client/assets/Timer-BJQKNHfo.js.br +0 -0
  115. package/client/assets/Timer-BJQKNHfo.js.gz +0 -0
  116. package/client/assets/{Timer-BfyVKQ8U.js.map → Timer-BJQKNHfo.js.map} +1 -1
  117. package/client/assets/{TimerControlExport-BJfhJc07.js → TimerControlExport-Ba1vifNg.js} +2 -2
  118. package/client/assets/TimerControlExport-Ba1vifNg.js.br +0 -0
  119. package/client/assets/TimerControlExport-Ba1vifNg.js.gz +0 -0
  120. package/client/assets/{TimerControlExport-BJfhJc07.js.map → TimerControlExport-Ba1vifNg.js.map} +1 -1
  121. package/client/assets/{TimerDisplay-Dgmbqf65.js → TimerDisplay-tVcUk9j3.js} +2 -2
  122. package/client/assets/TimerDisplay-tVcUk9j3.js.br +0 -0
  123. package/client/assets/TimerDisplay-tVcUk9j3.js.gz +0 -0
  124. package/client/assets/{TimerDisplay-Dgmbqf65.js.map → TimerDisplay-tVcUk9j3.js.map} +1 -1
  125. package/client/assets/{TitleCard-MUurHeZ7.js → TitleCard-BNjv58eq.js} +2 -2
  126. package/client/assets/TitleCard-BNjv58eq.js.br +0 -0
  127. package/client/assets/TitleCard-BNjv58eq.js.gz +0 -0
  128. package/client/assets/{TitleCard-MUurHeZ7.js.map → TitleCard-BNjv58eq.js.map} +1 -1
  129. package/client/assets/{Tooltip-DXph8P8p.js → Tooltip-DZJ7u9gm.js} +2 -2
  130. package/client/assets/Tooltip-DZJ7u9gm.js.br +4 -0
  131. package/client/assets/Tooltip-DZJ7u9gm.js.gz +0 -0
  132. package/client/assets/{Tooltip-DXph8P8p.js.map → Tooltip-DZJ7u9gm.js.map} +1 -1
  133. package/client/assets/{ViewLogo-Ckp7i75x.js → ViewLogo-2I7w5Yms.js} +2 -2
  134. package/client/assets/ViewLogo-2I7w5Yms.js.br +0 -0
  135. package/client/assets/ViewLogo-2I7w5Yms.js.gz +0 -0
  136. package/client/assets/{ViewLogo-Ckp7i75x.js.map → ViewLogo-2I7w5Yms.js.map} +1 -1
  137. package/client/assets/{ViewParamsEditor-Cxngd15h.js → ViewParamsEditor-BX2RM8sx.js} +2 -2
  138. package/client/assets/ViewParamsEditor-BX2RM8sx.js.br +0 -0
  139. package/client/assets/ViewParamsEditor-BX2RM8sx.js.gz +0 -0
  140. package/client/assets/{ViewParamsEditor-Cxngd15h.js.map → ViewParamsEditor-BX2RM8sx.js.map} +1 -1
  141. package/client/assets/{editorSettings-D4jfu68W.js → editorSettings-_x6YKRfR.js} +2 -2
  142. package/client/assets/editorSettings-_x6YKRfR.js.br +6 -0
  143. package/client/assets/editorSettings-_x6YKRfR.js.gz +0 -0
  144. package/client/assets/{editorSettings-D4jfu68W.js.map → editorSettings-_x6YKRfR.js.map} +1 -1
  145. package/client/assets/{getProgress-B9UANc25.js → getProgress-ZUTmCn_v.js} +2 -2
  146. package/client/assets/getProgress-ZUTmCn_v.js.br +0 -0
  147. package/client/assets/getProgress-ZUTmCn_v.js.gz +0 -0
  148. package/client/assets/{getProgress-B9UANc25.js.map → getProgress-ZUTmCn_v.js.map} +1 -1
  149. package/client/assets/{index-2lQ-45a9.js → index-Dm-4OTmY.js} +3 -3
  150. package/client/assets/index-Dm-4OTmY.js.br +0 -0
  151. package/client/assets/index-Dm-4OTmY.js.gz +0 -0
  152. package/client/assets/{index-2lQ-45a9.js.map → index-Dm-4OTmY.js.map} +1 -1
  153. package/client/assets/{offset-DAyBfv5b.js → offset-VthsmtrO.js} +2 -2
  154. package/client/assets/offset-VthsmtrO.js.br +0 -0
  155. package/client/assets/offset-VthsmtrO.js.gz +0 -0
  156. package/client/assets/{offset-DAyBfv5b.js.map → offset-VthsmtrO.js.map} +1 -1
  157. package/client/assets/{parseUserTime-WkVNjkkE.js → parseUserTime-sZbEBi61.js} +2 -2
  158. package/client/assets/parseUserTime-sZbEBi61.js.br +0 -0
  159. package/client/assets/parseUserTime-sZbEBi61.js.gz +0 -0
  160. package/client/assets/{parseUserTime-WkVNjkkE.js.map → parseUserTime-sZbEBi61.js.map} +1 -1
  161. package/client/assets/{playbackstate-znZk3SSJ.js → playbackstate-Dl_ZJABT.js} +2 -2
  162. package/client/assets/playbackstate-Dl_ZJABT.js.br +0 -0
  163. package/client/assets/playbackstate-Dl_ZJABT.js.gz +0 -0
  164. package/client/assets/{playbackstate-znZk3SSJ.js.map → playbackstate-Dl_ZJABT.js.map} +1 -1
  165. package/client/assets/{presentation.utils-CjjYs5II.js → presentation.utils-Z61KykAH.js} +2 -2
  166. package/client/assets/presentation.utils-Z61KykAH.js.br +0 -0
  167. package/client/assets/presentation.utils-Z61KykAH.js.gz +0 -0
  168. package/client/assets/{presentation.utils-CjjYs5II.js.map → presentation.utils-Z61KykAH.js.map} +1 -1
  169. package/client/assets/{rundownUtils-BTQ3EeqN.js → rundownUtils-CXZRD6yP.js} +2 -2
  170. package/client/assets/rundownUtils-CXZRD6yP.js.br +0 -0
  171. package/client/assets/rundownUtils-CXZRD6yP.js.gz +0 -0
  172. package/client/assets/{rundownUtils-BTQ3EeqN.js.map → rundownUtils-CXZRD6yP.js.map} +1 -1
  173. package/client/assets/timer.utils-B4bvsns3.js +2 -0
  174. package/client/assets/timer.utils-B4bvsns3.js.br +0 -0
  175. package/client/assets/timer.utils-B4bvsns3.js.gz +0 -0
  176. package/client/assets/{timer.utils-B-Ui91P7.js.map → timer.utils-B4bvsns3.js.map} +1 -1
  177. package/client/assets/{useCustomFields-zr9SUl5o.js → useCustomFields-BBE4LBBr.js} +2 -2
  178. package/client/assets/useCustomFields-BBE4LBBr.js.br +0 -0
  179. package/client/assets/useCustomFields-BBE4LBBr.js.gz +0 -0
  180. package/client/assets/{useCustomFields-zr9SUl5o.js.map → useCustomFields-BBE4LBBr.js.map} +1 -1
  181. package/client/assets/{useEventSelection-B9mbj1cM.js → useEventSelection-Bpbu89c7.js} +2 -2
  182. package/client/assets/useEventSelection-Bpbu89c7.js.br +0 -0
  183. package/client/assets/useEventSelection-Bpbu89c7.js.gz +0 -0
  184. package/client/assets/{useEventSelection-B9mbj1cM.js.map → useEventSelection-Bpbu89c7.js.map} +1 -1
  185. package/client/assets/{useProjectData-DD_BQ9eJ.js → useProjectData-C110zIXC.js} +2 -2
  186. package/client/assets/useProjectData-C110zIXC.js.br +0 -0
  187. package/client/assets/useProjectData-C110zIXC.js.gz +0 -0
  188. package/client/assets/{useProjectData-DD_BQ9eJ.js.map → useProjectData-C110zIXC.js.map} +1 -1
  189. package/client/assets/{useReport-DozG5uz5.js → useReport-DqSBq4MG.js} +2 -2
  190. package/client/assets/useReport-DqSBq4MG.js.br +0 -0
  191. package/client/assets/useReport-DqSBq4MG.js.gz +0 -0
  192. package/client/assets/{useReport-DozG5uz5.js.map → useReport-DqSBq4MG.js.map} +1 -1
  193. package/client/assets/{useRundown-D6vokFHi.js → useRundown-DAo6huE4.js} +2 -2
  194. package/client/assets/useRundown-DAo6huE4.js.br +0 -0
  195. package/client/assets/useRundown-DAo6huE4.js.gz +0 -0
  196. package/client/assets/{useRundown-D6vokFHi.js.map → useRundown-DAo6huE4.js.map} +1 -1
  197. package/client/assets/{useSelectAndRevealEntry-Dd6MpVHe.js → useSelectAndRevealEntry-DTg0hmxA.js} +2 -2
  198. package/client/assets/useSelectAndRevealEntry-DTg0hmxA.js.br +0 -0
  199. package/client/assets/useSelectAndRevealEntry-DTg0hmxA.js.gz +0 -0
  200. package/client/assets/{useSelectAndRevealEntry-Dd6MpVHe.js.map → useSelectAndRevealEntry-DTg0hmxA.js.map} +1 -1
  201. package/client/assets/{useWindowTitle-bg-fLPOk.js → useWindowTitle-DM8dIp8L.js} +2 -2
  202. package/client/assets/useWindowTitle-DM8dIp8L.js.br +0 -0
  203. package/client/assets/useWindowTitle-DM8dIp8L.js.gz +0 -0
  204. package/client/assets/{useWindowTitle-bg-fLPOk.js.map → useWindowTitle-DM8dIp8L.js.map} +1 -1
  205. package/client/assets/{validateEvent-BUgLWn7x.js → validateEvent-GnPt-e9-.js} +2 -2
  206. package/client/assets/validateEvent-GnPt-e9-.js.br +0 -0
  207. package/client/assets/validateEvent-GnPt-e9-.js.gz +0 -0
  208. package/client/assets/{validateEvent-BUgLWn7x.js.map → validateEvent-GnPt-e9-.js.map} +1 -1
  209. package/client/assets/{vendor-CKDP5hij.js → vendor-BKUJ0_Du.js} +2 -2
  210. package/client/assets/vendor-BKUJ0_Du.js.br +0 -0
  211. package/client/assets/{vendor-CKDP5hij.js.gz → vendor-BKUJ0_Du.js.gz} +0 -0
  212. package/client/assets/{vendor-CKDP5hij.js.map → vendor-BKUJ0_Du.js.map} +1 -1
  213. package/client/assets/{viewLoader.utils-Bn5zu5sz.js → viewLoader.utils-4lL4PiNI.js} +2 -2
  214. package/client/assets/viewLoader.utils-4lL4PiNI.js.br +0 -0
  215. package/client/assets/viewLoader.utils-4lL4PiNI.js.gz +0 -0
  216. package/client/assets/{viewLoader.utils-Bn5zu5sz.js.map → viewLoader.utils-4lL4PiNI.js.map} +1 -1
  217. package/client/assets/{viewUtils-DQFwr7hm.js → viewUtils-29a3Mmiu.js} +2 -2
  218. package/client/assets/viewUtils-29a3Mmiu.js.br +0 -0
  219. package/client/assets/viewUtils-29a3Mmiu.js.gz +0 -0
  220. package/client/assets/{viewUtils-DQFwr7hm.js.map → viewUtils-29a3Mmiu.js.map} +1 -1
  221. package/client/index.html +2 -2
  222. package/package.json +1 -1
  223. package/server/index.cjs +1 -1
  224. package/client/assets/Backstage-BY9GL_rk.js.br +0 -0
  225. package/client/assets/Backstage-BY9GL_rk.js.gz +0 -0
  226. package/client/assets/Countdown-CXFgDHND.js.br +0 -0
  227. package/client/assets/Countdown-CXFgDHND.js.gz +0 -0
  228. package/client/assets/CuesheetTable-BLICUNky.js.br +0 -0
  229. package/client/assets/CuesheetTable-BLICUNky.js.gz +0 -0
  230. package/client/assets/CustomTranslationModal-4PVZBtkC.js.br +0 -0
  231. package/client/assets/CustomTranslationModal-4PVZBtkC.js.gz +0 -0
  232. package/client/assets/DelayIndicator-DUbpd6DG.js.br +0 -0
  233. package/client/assets/DelayIndicator-DUbpd6DG.js.gz +0 -0
  234. package/client/assets/EditorFeatureWrapper-CV_zaDoG.js.br +0 -0
  235. package/client/assets/EditorFeatureWrapper-CV_zaDoG.js.gz +0 -0
  236. package/client/assets/EditorUtils-CLBWDP4k.js.br +0 -0
  237. package/client/assets/EditorUtils-CLBWDP4k.js.gz +0 -0
  238. package/client/assets/EmptyPage-DmpOAg7R.js.br +0 -2
  239. package/client/assets/EmptyPage-DmpOAg7R.js.gz +0 -0
  240. package/client/assets/FollowButton-CAUWz5Ma.js.br +0 -0
  241. package/client/assets/FollowButton-CAUWz5Ma.js.gz +0 -0
  242. package/client/assets/MessageControlExport-Dm8IjSr4.js.br +0 -0
  243. package/client/assets/MessageControlExport-Dm8IjSr4.js.gz +0 -0
  244. package/client/assets/MultiPartProgressBar-Fp-sTN2u.js.br +0 -0
  245. package/client/assets/MultiPartProgressBar-Fp-sTN2u.js.gz +0 -0
  246. package/client/assets/OperatorExport-CE4ajLPS.js.br +0 -0
  247. package/client/assets/OperatorExport-CE4ajLPS.js.gz +0 -0
  248. package/client/assets/OverviewWrapper-BNnAIUP1.js.br +0 -0
  249. package/client/assets/OverviewWrapper-BNnAIUP1.js.gz +0 -0
  250. package/client/assets/PipHost-CbNFsfqp.js.br +0 -0
  251. package/client/assets/PipHost-CbNFsfqp.js.gz +0 -0
  252. package/client/assets/ProjectInfo-Bf5z4Xsv.js.br +0 -0
  253. package/client/assets/ProjectInfo-Bf5z4Xsv.js.gz +0 -0
  254. package/client/assets/ProtectRoute-CCHzyy0I.js.br +0 -0
  255. package/client/assets/ProtectRoute-CCHzyy0I.js.gz +0 -0
  256. package/client/assets/ProtectedCuesheet-COI1W_V3.js.br +0 -0
  257. package/client/assets/ProtectedCuesheet-COI1W_V3.js.gz +0 -0
  258. package/client/assets/ProtectedEditor-BvTFmv-F.js.br +0 -0
  259. package/client/assets/ProtectedEditor-BvTFmv-F.js.gz +0 -0
  260. package/client/assets/RundownExport-C_q3KYN_.js.br +0 -0
  261. package/client/assets/RundownExport-C_q3KYN_.js.gz +0 -0
  262. package/client/assets/Select-DQwYPDyI.js.br +0 -0
  263. package/client/assets/Select-DQwYPDyI.js.gz +0 -0
  264. package/client/assets/Studio-DzXTmBx4.js.br +0 -0
  265. package/client/assets/Studio-DzXTmBx4.js.gz +0 -0
  266. package/client/assets/StyleEditor-ClMEMaWh.js.br +0 -0
  267. package/client/assets/StyleEditor-ClMEMaWh.js.gz +0 -0
  268. package/client/assets/SuperscriptPeriod-CBiZU34J.js.br +0 -0
  269. package/client/assets/SuperscriptPeriod-CBiZU34J.js.gz +0 -0
  270. package/client/assets/SuperscriptTime-DP1CDlOX.js.br +0 -0
  271. package/client/assets/SuperscriptTime-DP1CDlOX.js.gz +0 -0
  272. package/client/assets/SwatchPicker-Dyxkxf3_.js.br +0 -0
  273. package/client/assets/SwatchPicker-Dyxkxf3_.js.gz +0 -0
  274. package/client/assets/TimeElements-pDYJeFbV.js.br +0 -0
  275. package/client/assets/TimeElements-pDYJeFbV.js.gz +0 -0
  276. package/client/assets/TimeInput-DTWDnaum.js.br +0 -0
  277. package/client/assets/TimeInput-DTWDnaum.js.gz +0 -0
  278. package/client/assets/TimelinePage-DbLt9rQi.js.br +0 -0
  279. package/client/assets/TimelinePage-DbLt9rQi.js.gz +0 -0
  280. package/client/assets/Timer-BfyVKQ8U.js.br +0 -0
  281. package/client/assets/Timer-BfyVKQ8U.js.gz +0 -0
  282. package/client/assets/TimerControlExport-BJfhJc07.js.br +0 -0
  283. package/client/assets/TimerControlExport-BJfhJc07.js.gz +0 -0
  284. package/client/assets/TimerDisplay-Dgmbqf65.js.br +0 -0
  285. package/client/assets/TimerDisplay-Dgmbqf65.js.gz +0 -0
  286. package/client/assets/TitleCard-MUurHeZ7.js.br +0 -0
  287. package/client/assets/TitleCard-MUurHeZ7.js.gz +0 -0
  288. package/client/assets/Tooltip-DXph8P8p.js.br +0 -0
  289. package/client/assets/Tooltip-DXph8P8p.js.gz +0 -0
  290. package/client/assets/ViewLogo-Ckp7i75x.js.br +0 -0
  291. package/client/assets/ViewLogo-Ckp7i75x.js.gz +0 -0
  292. package/client/assets/ViewParamsEditor-Cxngd15h.js.br +0 -0
  293. package/client/assets/ViewParamsEditor-Cxngd15h.js.gz +0 -0
  294. package/client/assets/editorSettings-D4jfu68W.js.br +0 -0
  295. package/client/assets/editorSettings-D4jfu68W.js.gz +0 -0
  296. package/client/assets/getProgress-B9UANc25.js.br +0 -0
  297. package/client/assets/getProgress-B9UANc25.js.gz +0 -0
  298. package/client/assets/index-2lQ-45a9.js.br +0 -0
  299. package/client/assets/index-2lQ-45a9.js.gz +0 -0
  300. package/client/assets/offset-DAyBfv5b.js.br +0 -4
  301. package/client/assets/offset-DAyBfv5b.js.gz +0 -0
  302. package/client/assets/parseUserTime-WkVNjkkE.js.br +0 -0
  303. package/client/assets/parseUserTime-WkVNjkkE.js.gz +0 -0
  304. package/client/assets/playbackstate-znZk3SSJ.js.br +0 -0
  305. package/client/assets/playbackstate-znZk3SSJ.js.gz +0 -0
  306. package/client/assets/presentation.utils-CjjYs5II.js.br +0 -0
  307. package/client/assets/presentation.utils-CjjYs5II.js.gz +0 -0
  308. package/client/assets/rundownUtils-BTQ3EeqN.js.br +0 -0
  309. package/client/assets/rundownUtils-BTQ3EeqN.js.gz +0 -0
  310. package/client/assets/timer.utils-B-Ui91P7.js +0 -2
  311. package/client/assets/timer.utils-B-Ui91P7.js.br +0 -0
  312. package/client/assets/timer.utils-B-Ui91P7.js.gz +0 -0
  313. package/client/assets/useCustomFields-zr9SUl5o.js.br +0 -0
  314. package/client/assets/useCustomFields-zr9SUl5o.js.gz +0 -0
  315. package/client/assets/useEventSelection-B9mbj1cM.js.br +0 -0
  316. package/client/assets/useEventSelection-B9mbj1cM.js.gz +0 -0
  317. package/client/assets/useProjectData-DD_BQ9eJ.js.br +0 -0
  318. package/client/assets/useProjectData-DD_BQ9eJ.js.gz +0 -0
  319. package/client/assets/useReport-DozG5uz5.js.br +0 -0
  320. package/client/assets/useReport-DozG5uz5.js.gz +0 -0
  321. package/client/assets/useRundown-D6vokFHi.js.br +0 -0
  322. package/client/assets/useRundown-D6vokFHi.js.gz +0 -0
  323. package/client/assets/useSelectAndRevealEntry-Dd6MpVHe.js.br +0 -0
  324. package/client/assets/useSelectAndRevealEntry-Dd6MpVHe.js.gz +0 -0
  325. package/client/assets/useWindowTitle-bg-fLPOk.js.br +0 -0
  326. package/client/assets/useWindowTitle-bg-fLPOk.js.gz +0 -0
  327. package/client/assets/validateEvent-BUgLWn7x.js.br +0 -0
  328. package/client/assets/validateEvent-BUgLWn7x.js.gz +0 -0
  329. package/client/assets/vendor-CKDP5hij.js.br +0 -0
  330. package/client/assets/viewLoader.utils-Bn5zu5sz.js.br +0 -0
  331. package/client/assets/viewLoader.utils-Bn5zu5sz.js.gz +0 -0
  332. package/client/assets/viewUtils-DQFwr7hm.js.br +0 -0
  333. package/client/assets/viewUtils-DQFwr7hm.js.gz +0 -0
@@ -1,2 +1,2 @@
1
- import{j as n,y as c,cn as l}from"./vendor-CKDP5hij.js";import{e as a}from"./index-2lQ-45a9.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="08985b9b-bb0c-41a6-90af-27c73a494556",e._sentryDebugIdIdentifier="sentry-dbid-08985b9b-bb0c-41a6-90af-27c73a494556")}catch{}})();const i="_blink_cv4kp_1",_="_fourtyfive_cv4kp_13",f="_arrow_cv4kp_17",p="_corner_cv4kp_21",u="_offsetCorner_cv4kp_39",b="_header_cv4kp_43",d="_title_cv4kp_47",v="_label_cv4kp_55",k="_separator_cv4kp_63",y="_horizontal_cv4kp_66",m="_vertical_cv4kp_70",x="_panel_cv4kp_75",t={blink:i,fourtyfive:_,arrow:f,corner:p,offsetCorner:u,header:b,title:d,label:v,separator:k,horizontal:y,vertical:m,panel:x};function j({className:e,...r}){return n.jsx(c,{className:a([t.corner,t.arrow,e]),...r})}function g({className:e,...r}){return n.jsx(l,{className:a([t.corner,t.offsetCorner,e]),...r})}function C({className:e,pipElement:r,onExtractClick:o}){return n.jsxs(n.Fragment,{children:[n.jsx(c,{className:a([t.corner,t.arrow,e]),onClick:o}),r]})}function I({children:e,className:r,...o}){const s=a([t.title,r]);return n.jsx("h3",{className:s,...o,children:e})}function N({children:e,className:r,...o}){const s=a([t.label,r]);return n.jsx("label",{className:s,...o,children:e})}function P({className:e,orientation:r="vertical",...o}){return n.jsx("div",{className:a([t.separator,t[r],e]),role:"separator",...o})}function T({className:e,...r}){return n.jsx("div",{className:a([t.panel,e]),...r})}export{j as C,N as L,T as P,P as S,I as T,C as a,g as b};
2
- //# sourceMappingURL=EditorUtils-CLBWDP4k.js.map
1
+ import{j as n,y as c,cn as l}from"./vendor-BKUJ0_Du.js";import{e as a}from"./index-Dm-4OTmY.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new e.Error().stack;r&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[r]="08985b9b-bb0c-41a6-90af-27c73a494556",e._sentryDebugIdIdentifier="sentry-dbid-08985b9b-bb0c-41a6-90af-27c73a494556")}catch{}})();const i="_blink_cv4kp_1",_="_fourtyfive_cv4kp_13",f="_arrow_cv4kp_17",p="_corner_cv4kp_21",u="_offsetCorner_cv4kp_39",b="_header_cv4kp_43",d="_title_cv4kp_47",v="_label_cv4kp_55",k="_separator_cv4kp_63",y="_horizontal_cv4kp_66",m="_vertical_cv4kp_70",x="_panel_cv4kp_75",t={blink:i,fourtyfive:_,arrow:f,corner:p,offsetCorner:u,header:b,title:d,label:v,separator:k,horizontal:y,vertical:m,panel:x};function j({className:e,...r}){return n.jsx(c,{className:a([t.corner,t.arrow,e]),...r})}function g({className:e,...r}){return n.jsx(l,{className:a([t.corner,t.offsetCorner,e]),...r})}function C({className:e,pipElement:r,onExtractClick:o}){return n.jsxs(n.Fragment,{children:[n.jsx(c,{className:a([t.corner,t.arrow,e]),onClick:o}),r]})}function I({children:e,className:r,...o}){const s=a([t.title,r]);return n.jsx("h3",{className:s,...o,children:e})}function N({children:e,className:r,...o}){const s=a([t.label,r]);return n.jsx("label",{className:s,...o,children:e})}function P({className:e,orientation:r="vertical",...o}){return n.jsx("div",{className:a([t.separator,t[r],e]),role:"separator",...o})}function T({className:e,...r}){return n.jsx("div",{className:a([t.panel,e]),...r})}export{j as C,N as L,T as P,P as S,I as T,C as a,g as b};
2
+ //# sourceMappingURL=EditorUtils-BLcTuWz1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorUtils-CLBWDP4k.js","sources":["../../src/common/components/editor-utils/EditorUtils.tsx"],"sourcesContent":["import type { HTMLAttributes, JSX, LabelHTMLAttributes, MouseEventHandler } from 'react';\nimport { IconBaseProps } from 'react-icons';\nimport { IoArrowUp } from 'react-icons/io5';\nimport { TbPictureInPictureOff } from 'react-icons/tb';\n\nimport { cx } from '../../utils/styleUtils';\n\nimport style from './EditorUtils.module.scss';\n\nexport function CornerExtract({ className, ...elementProps }: IconBaseProps) {\n return <IoArrowUp className={cx([style.corner, style.arrow, className])} {...elementProps} />;\n}\n\nexport function CornerPipButton({ className, ...elementProps }: IconBaseProps) {\n return <TbPictureInPictureOff className={cx([style.corner, style.offsetCorner, className])} {...elementProps} />;\n}\n\ninterface ExtractAndPip extends IconBaseProps {\n onExtractClick: MouseEventHandler<SVGElement>;\n pipElement: JSX.Element;\n}\n\nexport function CornerWithPip({ className, pipElement, onExtractClick }: ExtractAndPip) {\n return (\n <>\n <IoArrowUp className={cx([style.corner, style.arrow, className])} onClick={onExtractClick} />\n {/* the pip element returns the icon button */}\n {pipElement}\n </>\n );\n}\n\nexport function Title({ children, className, ...elementProps }: HTMLAttributes<HTMLHeadingElement>) {\n const classes = cx([style.title, className]);\n return (\n <h3 className={classes} {...elementProps}>\n {children}\n </h3>\n );\n}\n\nexport function Label({ children, className, ...elementProps }: LabelHTMLAttributes<HTMLLabelElement>) {\n const classes = cx([style.label, className]);\n return (\n <label className={classes} {...elementProps}>\n {children}\n </label>\n );\n}\n\ninterface SeparatorProps extends HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport function Separator({ className, orientation = 'vertical', ...elementProps }: SeparatorProps) {\n return <div className={cx([style.separator, style[orientation], className])} role='separator' {...elementProps} />;\n}\n\nexport function Panel({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cx([style.panel, className])} {...props} />;\n}\n"],"names":["CornerExtract","className","elementProps","jsx","IoArrowUp","cx","style","corner","arrow","CornerPipButton","TbPictureInPictureOff","offsetCorner","CornerWithPip","pipElement","onExtractClick","jsxs","Fragment","Title","children","classes","title","Label","label","Separator","orientation","separator","Panel","props","panel"],"mappings":"u0BASO,SAASA,EAAc,CAAEC,UAAAA,EAAW,GAAGC,CAA4B,EAAG,CAC3E,OAAQC,EAAA,IAAAC,EAAA,CAAU,UAAWC,EAAG,CAACC,EAAMC,OAAQD,EAAME,MAAOP,CAAS,CAAC,EAAG,GAAIC,CAAgB,CAAA,CAC/F,CAEO,SAASO,EAAgB,CAAER,UAAAA,EAAW,GAAGC,CAA4B,EAAG,CAC7E,OAAQC,EAAA,IAAAO,EAAA,CAAsB,UAAWL,EAAG,CAACC,EAAMC,OAAQD,EAAMK,aAAcV,CAAS,CAAC,EAAG,GAAIC,CAAgB,CAAA,CAClH,CAOO,SAASU,EAAc,CAAEX,UAAAA,EAAWY,WAAAA,EAAYC,eAAAA,CAA8B,EAAG,CACtF,OAEIC,EAAA,KAAAC,WAAA,CAAA,SAAA,CAAAb,EAAAA,IAACC,EAAU,CAAA,UAAWC,EAAG,CAACC,EAAMC,OAAQD,EAAME,MAAOP,CAAS,CAAC,EAAG,QAASa,CAAe,CAAA,EAEzFD,CAAAA,EACH,CAEJ,CAEO,SAASI,EAAM,CAAEC,SAAAA,EAAUjB,UAAAA,EAAW,GAAGC,CAAiD,EAAG,CAClG,MAAMiB,EAAUd,EAAG,CAACC,EAAMc,MAAOnB,CAAS,CAAC,EAC3C,aACG,KAAG,CAAA,UAAWkB,EAAajB,GAAAA,EACzBgB,SAAAA,EACH,CAEJ,CAEO,SAASG,EAAM,CAAEH,SAAAA,EAAUjB,UAAAA,EAAW,GAAGC,CAAoD,EAAG,CACrG,MAAMiB,EAAUd,EAAG,CAACC,EAAMgB,MAAOrB,CAAS,CAAC,EAC3C,aACG,QAAM,CAAA,UAAWkB,EAAajB,GAAAA,EAC5BgB,SAAAA,EACH,CAEJ,CAMO,SAASK,EAAU,CAAEtB,UAAAA,EAAWuB,YAAAA,EAAc,WAAY,GAAGtB,CAA6B,EAAG,CAClG,aAAQ,MAAI,CAAA,UAAWG,EAAG,CAACC,EAAMmB,UAAWnB,EAAMkB,CAAW,EAAGvB,CAAS,CAAC,EAAG,KAAK,YAAgBC,GAAAA,EAAgB,CACpH,CAEO,SAASwB,EAAM,CAAEzB,UAAAA,EAAW,GAAG0B,CAAsC,EAAG,CACtE,OAAAxB,MAAC,MAAI,CAAA,UAAWE,EAAG,CAACC,EAAMsB,MAAO3B,CAAS,CAAC,EAAG,GAAI0B,CAAS,CAAA,CACpE"}
1
+ {"version":3,"file":"EditorUtils-BLcTuWz1.js","sources":["../../src/common/components/editor-utils/EditorUtils.tsx"],"sourcesContent":["import type { HTMLAttributes, JSX, LabelHTMLAttributes, MouseEventHandler } from 'react';\nimport { IconBaseProps } from 'react-icons';\nimport { IoArrowUp } from 'react-icons/io5';\nimport { TbPictureInPictureOff } from 'react-icons/tb';\n\nimport { cx } from '../../utils/styleUtils';\n\nimport style from './EditorUtils.module.scss';\n\nexport function CornerExtract({ className, ...elementProps }: IconBaseProps) {\n return <IoArrowUp className={cx([style.corner, style.arrow, className])} {...elementProps} />;\n}\n\nexport function CornerPipButton({ className, ...elementProps }: IconBaseProps) {\n return <TbPictureInPictureOff className={cx([style.corner, style.offsetCorner, className])} {...elementProps} />;\n}\n\ninterface ExtractAndPip extends IconBaseProps {\n onExtractClick: MouseEventHandler<SVGElement>;\n pipElement: JSX.Element;\n}\n\nexport function CornerWithPip({ className, pipElement, onExtractClick }: ExtractAndPip) {\n return (\n <>\n <IoArrowUp className={cx([style.corner, style.arrow, className])} onClick={onExtractClick} />\n {/* the pip element returns the icon button */}\n {pipElement}\n </>\n );\n}\n\nexport function Title({ children, className, ...elementProps }: HTMLAttributes<HTMLHeadingElement>) {\n const classes = cx([style.title, className]);\n return (\n <h3 className={classes} {...elementProps}>\n {children}\n </h3>\n );\n}\n\nexport function Label({ children, className, ...elementProps }: LabelHTMLAttributes<HTMLLabelElement>) {\n const classes = cx([style.label, className]);\n return (\n <label className={classes} {...elementProps}>\n {children}\n </label>\n );\n}\n\ninterface SeparatorProps extends HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport function Separator({ className, orientation = 'vertical', ...elementProps }: SeparatorProps) {\n return <div className={cx([style.separator, style[orientation], className])} role='separator' {...elementProps} />;\n}\n\nexport function Panel({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return <div className={cx([style.panel, className])} {...props} />;\n}\n"],"names":["CornerExtract","className","elementProps","jsx","IoArrowUp","cx","style","corner","arrow","CornerPipButton","TbPictureInPictureOff","offsetCorner","CornerWithPip","pipElement","onExtractClick","jsxs","Fragment","Title","children","classes","title","Label","label","Separator","orientation","separator","Panel","props","panel"],"mappings":"u0BASO,SAASA,EAAc,CAAEC,UAAAA,EAAW,GAAGC,CAA4B,EAAG,CAC3E,OAAQC,EAAA,IAAAC,EAAA,CAAU,UAAWC,EAAG,CAACC,EAAMC,OAAQD,EAAME,MAAOP,CAAS,CAAC,EAAG,GAAIC,CAAgB,CAAA,CAC/F,CAEO,SAASO,EAAgB,CAAER,UAAAA,EAAW,GAAGC,CAA4B,EAAG,CAC7E,OAAQC,EAAA,IAAAO,EAAA,CAAsB,UAAWL,EAAG,CAACC,EAAMC,OAAQD,EAAMK,aAAcV,CAAS,CAAC,EAAG,GAAIC,CAAgB,CAAA,CAClH,CAOO,SAASU,EAAc,CAAEX,UAAAA,EAAWY,WAAAA,EAAYC,eAAAA,CAA8B,EAAG,CACtF,OAEIC,EAAA,KAAAC,WAAA,CAAA,SAAA,CAAAb,EAAAA,IAACC,EAAU,CAAA,UAAWC,EAAG,CAACC,EAAMC,OAAQD,EAAME,MAAOP,CAAS,CAAC,EAAG,QAASa,CAAe,CAAA,EAEzFD,CAAAA,EACH,CAEJ,CAEO,SAASI,EAAM,CAAEC,SAAAA,EAAUjB,UAAAA,EAAW,GAAGC,CAAiD,EAAG,CAClG,MAAMiB,EAAUd,EAAG,CAACC,EAAMc,MAAOnB,CAAS,CAAC,EAC3C,aACG,KAAG,CAAA,UAAWkB,EAAajB,GAAAA,EACzBgB,SAAAA,EACH,CAEJ,CAEO,SAASG,EAAM,CAAEH,SAAAA,EAAUjB,UAAAA,EAAW,GAAGC,CAAoD,EAAG,CACrG,MAAMiB,EAAUd,EAAG,CAACC,EAAMgB,MAAOrB,CAAS,CAAC,EAC3C,aACG,QAAM,CAAA,UAAWkB,EAAajB,GAAAA,EAC5BgB,SAAAA,EACH,CAEJ,CAMO,SAASK,EAAU,CAAEtB,UAAAA,EAAWuB,YAAAA,EAAc,WAAY,GAAGtB,CAA6B,EAAG,CAClG,aAAQ,MAAI,CAAA,UAAWG,EAAG,CAACC,EAAMmB,UAAWnB,EAAMkB,CAAW,EAAGvB,CAAS,CAAC,EAAG,KAAK,YAAgBC,GAAAA,EAAgB,CACpH,CAEO,SAASwB,EAAM,CAAEzB,UAAAA,EAAW,GAAG0B,CAAsC,EAAG,CACtE,OAAAxB,MAAC,MAAI,CAAA,UAAWE,EAAG,CAACC,EAAMsB,MAAO3B,CAAS,CAAC,EAAG,GAAI0B,CAAS,CAAA,CACpE"}
@@ -1,2 +1,2 @@
1
- import{j as s}from"./vendor-CKDP5hij.js";import{e as d,bE as o}from"./index-2lQ-45a9.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7ba8bd2a-998b-4959-9ad7-cadc4c7d3eac",e._sentryDebugIdIdentifier="sentry-dbid-7ba8bd2a-998b-4959-9ad7-cadc4c7d3eac")}catch{}})();const i="_emptyContainer_xiuvv_17",r="_empty_xiuvv_17",c="_text_xiuvv_26",n={emptyContainer:i,empty:r,text:c};function p({text:e,className:t,injectedStyles:a}){return s.jsxs("div",{className:d([n.emptyContainer,t]),style:a,children:[s.jsx(o,{className:n.empty}),e&&s.jsx("span",{className:n.text,children:e})]})}const y="_page_27rqx_22",l={page:y};function b({text:e,injectedStyles:t}){return s.jsx("div",{className:l.page,children:s.jsx(p,{text:e,injectedStyles:t})})}export{b as E,p as a};
2
- //# sourceMappingURL=EmptyPage-DmpOAg7R.js.map
1
+ import{j as s}from"./vendor-BKUJ0_Du.js";import{e as d,bE as o}from"./index-Dm-4OTmY.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="7ba8bd2a-998b-4959-9ad7-cadc4c7d3eac",e._sentryDebugIdIdentifier="sentry-dbid-7ba8bd2a-998b-4959-9ad7-cadc4c7d3eac")}catch{}})();const i="_emptyContainer_xiuvv_17",r="_empty_xiuvv_17",c="_text_xiuvv_26",n={emptyContainer:i,empty:r,text:c};function p({text:e,className:t,injectedStyles:a}){return s.jsxs("div",{className:d([n.emptyContainer,t]),style:a,children:[s.jsx(o,{className:n.empty}),e&&s.jsx("span",{className:n.text,children:e})]})}const y="_page_27rqx_22",l={page:y};function b({text:e,injectedStyles:t}){return s.jsx("div",{className:l.page,children:s.jsx(p,{text:e,injectedStyles:t})})}export{b as E,p as a};
2
+ //# sourceMappingURL=EmptyPage-CYVrjOvI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyPage-DmpOAg7R.js","sources":["../../src/common/components/state/Empty.tsx","../../src/common/components/state/EmptyPage.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\n\nimport EmptyImage from '../../../assets/images/empty.svg?react';\nimport { cx } from '../../utils/styleUtils';\n\nimport style from './Empty.module.scss';\n\ninterface EmptyProps {\n text?: string;\n injectedStyles?: CSSProperties;\n className?: string;\n}\n\nexport default function Empty({ text, className, injectedStyles }: EmptyProps) {\n return (\n <div className={cx([style.emptyContainer, className])} style={injectedStyles}>\n <EmptyImage className={style.empty} />\n {text && <span className={style.text}>{text}</span>}\n </div>\n );\n}\n","import { CSSProperties } from 'react';\n\nimport Empty from './Empty';\n\nimport style from './EmptyPage.module.scss';\n\ninterface EmptyPageProps {\n text?: string;\n injectedStyles?: CSSProperties;\n}\n\nexport default function EmptyPage({ text, injectedStyles }: EmptyPageProps) {\n return (\n <div className={style.page}>\n <Empty text={text} injectedStyles={injectedStyles} />\n </div>\n );\n}\n"],"names":["Empty","text","className","injectedStyles","jsxs","cx","style","emptyContainer","jsx","EmptyImage","empty","EmptyPage","page"],"mappings":"iiBAaA,SAAwBA,EAAM,CAAEC,KAAAA,EAAMC,UAAAA,EAAWC,eAAAA,CAA2B,EAAG,CAE3E,OAAAC,EAAA,KAAC,MAAI,CAAA,UAAWC,EAAG,CAACC,EAAMC,eAAgBL,CAAS,CAAC,EAAG,MAAOC,EAC5D,SAAA,CAACK,EAAAA,IAAAC,EAAA,CAAW,UAAWH,EAAMI,KAAM,CAAA,EAClCT,GAASO,EAAAA,IAAA,OAAA,CAAK,UAAWF,EAAML,KAAOA,SAAKA,CAAA,CAAA,CAAA,EAC9C,CAEJ,qCCTA,SAAwBU,EAAU,CAAEV,KAAAA,EAAME,eAAAA,CAA+B,EAAG,CAExE,OAAAK,EAAA,IAAC,OAAI,UAAWF,EAAMM,KACpB,SAACJ,EAAAA,IAAAR,EAAA,CAAM,KAAAC,EAAY,eAAAE,CAAA,CAA+B,CACpD,CAAA,CAEJ"}
1
+ {"version":3,"file":"EmptyPage-CYVrjOvI.js","sources":["../../src/common/components/state/Empty.tsx","../../src/common/components/state/EmptyPage.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\n\nimport EmptyImage from '../../../assets/images/empty.svg?react';\nimport { cx } from '../../utils/styleUtils';\n\nimport style from './Empty.module.scss';\n\ninterface EmptyProps {\n text?: string;\n injectedStyles?: CSSProperties;\n className?: string;\n}\n\nexport default function Empty({ text, className, injectedStyles }: EmptyProps) {\n return (\n <div className={cx([style.emptyContainer, className])} style={injectedStyles}>\n <EmptyImage className={style.empty} />\n {text && <span className={style.text}>{text}</span>}\n </div>\n );\n}\n","import { CSSProperties } from 'react';\n\nimport Empty from './Empty';\n\nimport style from './EmptyPage.module.scss';\n\ninterface EmptyPageProps {\n text?: string;\n injectedStyles?: CSSProperties;\n}\n\nexport default function EmptyPage({ text, injectedStyles }: EmptyPageProps) {\n return (\n <div className={style.page}>\n <Empty text={text} injectedStyles={injectedStyles} />\n </div>\n );\n}\n"],"names":["Empty","text","className","injectedStyles","jsxs","cx","style","emptyContainer","jsx","EmptyImage","empty","EmptyPage","page"],"mappings":"iiBAaA,SAAwBA,EAAM,CAAEC,KAAAA,EAAMC,UAAAA,EAAWC,eAAAA,CAA2B,EAAG,CAE3E,OAAAC,EAAA,KAAC,MAAI,CAAA,UAAWC,EAAG,CAACC,EAAMC,eAAgBL,CAAS,CAAC,EAAG,MAAOC,EAC5D,SAAA,CAACK,EAAAA,IAAAC,EAAA,CAAW,UAAWH,EAAMI,KAAM,CAAA,EAClCT,GAASO,EAAAA,IAAA,OAAA,CAAK,UAAWF,EAAML,KAAOA,SAAKA,CAAA,CAAA,CAAA,EAC9C,CAEJ,qCCTA,SAAwBU,EAAU,CAAEV,KAAAA,EAAME,eAAAA,CAA+B,EAAG,CAExE,OAAAK,EAAA,IAAC,OAAI,UAAWF,EAAMM,KACpB,SAACJ,EAAAA,IAAAR,EAAA,CAAM,KAAAC,EAAY,eAAAE,CAAA,CAA+B,CACpD,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{h as d,j as c,aM as m}from"./vendor-CKDP5hij.js";import{e as y}from"./index-2lQ-45a9.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new n.Error().stack;t&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[t]="00ae744c-1980-4648-88c2-8d2b608eb3bd",n._sentryDebugIdIdentifier="sentry-dbid-00ae744c-1980-4648-88c2-8d2b608eb3bd")}catch{}})();function b(n,t,u){if(!n.current||!t.current)return;const o=n.current.getBoundingClientRect(),e=t.current.getBoundingClientRect(),i=o.top-e.top+t.current.scrollTop-u;t.current.scrollTo({top:i,behavior:"smooth"})}function B({followRef:n,scrollRef:t,doFollow:u,topOffset:o=100,setScrollFlag:e,followTrigger:i}){return d.useEffect(()=>{!u||!i||n.current&&t.current&&(e==null||e(!0),window.requestAnimationFrame(()=>{b(n,t,o),e==null||e(!1)}))},[i,u,n,t,e,o]),d.useCallback((r=n,s=t,p=o)=>{r&&s&&b(r,s,p)},[n,t,o])}const h="_followButton_58wqq_17",w="_hidden_58wqq_38",a={followButton:h,hidden:w};function I(n){const{isVisible:t,onClickHandler:u}=n,o=y([a.followButton,!t&&a.hidden]);return c.jsxs("button",{className:o,onClick:u,type:"button",children:[c.jsx(m,{}),"Follow"]})}export{I as F,B as u};
2
- //# sourceMappingURL=FollowButton-CAUWz5Ma.js.map
1
+ import{h as d,j as c,aM as m}from"./vendor-BKUJ0_Du.js";import{e as y}from"./index-Dm-4OTmY.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new n.Error().stack;t&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[t]="00ae744c-1980-4648-88c2-8d2b608eb3bd",n._sentryDebugIdIdentifier="sentry-dbid-00ae744c-1980-4648-88c2-8d2b608eb3bd")}catch{}})();function b(n,t,u){if(!n.current||!t.current)return;const o=n.current.getBoundingClientRect(),e=t.current.getBoundingClientRect(),i=o.top-e.top+t.current.scrollTop-u;t.current.scrollTo({top:i,behavior:"smooth"})}function B({followRef:n,scrollRef:t,doFollow:u,topOffset:o=100,setScrollFlag:e,followTrigger:i}){return d.useEffect(()=>{!u||!i||n.current&&t.current&&(e==null||e(!0),window.requestAnimationFrame(()=>{b(n,t,o),e==null||e(!1)}))},[i,u,n,t,e,o]),d.useCallback((r=n,s=t,p=o)=>{r&&s&&b(r,s,p)},[n,t,o])}const h="_followButton_58wqq_17",w="_hidden_58wqq_38",a={followButton:h,hidden:w};function I(n){const{isVisible:t,onClickHandler:u}=n,o=y([a.followButton,!t&&a.hidden]);return c.jsxs("button",{className:o,onClick:u,type:"button",children:[c.jsx(m,{}),"Follow"]})}export{I as F,B as u};
2
+ //# sourceMappingURL=FollowButton-DcSbb4R_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FollowButton-CAUWz5Ma.js","sources":["../../src/common/hooks/useFollowComponent.ts","../../src/features/operator/follow-button/FollowButton.tsx"],"sourcesContent":["import { RefObject, useCallback, useEffect } from 'react';\nimport { MaybeString } from 'ontime-types';\n\nfunction scrollToComponent<ComponentRef extends HTMLElement, ScrollRef extends HTMLElement>(\n componentRef: RefObject<ComponentRef>,\n scrollRef: RefObject<ScrollRef>,\n topOffset: number,\n) {\n if (!componentRef.current || !scrollRef.current) {\n return;\n }\n\n const componentRect = componentRef.current.getBoundingClientRect();\n const scrollRect = scrollRef.current.getBoundingClientRect();\n const top = componentRect.top - scrollRect.top + scrollRef.current.scrollTop - topOffset;\n\n scrollRef.current.scrollTo({ top, behavior: 'smooth' });\n}\n\ninterface UseFollowComponentProps {\n followRef: RefObject<HTMLElement | null>;\n scrollRef: RefObject<HTMLElement | null>;\n doFollow: boolean;\n topOffset?: number;\n setScrollFlag?: (newValue: boolean) => void;\n followTrigger?: MaybeString; // this would be an entry id or null\n}\n\nexport default function useFollowComponent({\n followRef,\n scrollRef,\n doFollow,\n topOffset = 100,\n setScrollFlag,\n followTrigger,\n}: UseFollowComponentProps) {\n // when trigger moves, view should follow\n useEffect(() => {\n if (!doFollow || !followTrigger) {\n return;\n }\n\n if (followRef.current && scrollRef.current) {\n setScrollFlag?.(true);\n // Use requestAnimationFrame to ensure the component is fully loaded\n window.requestAnimationFrame(() => {\n scrollToComponent(followRef as RefObject<HTMLElement>, scrollRef as RefObject<HTMLElement>, topOffset);\n setScrollFlag?.(false);\n });\n }\n }, [followTrigger, doFollow, followRef, scrollRef, setScrollFlag, topOffset]);\n\n const scrollToRefComponent = useCallback(\n (componentRef = followRef, containerRef = scrollRef, offset = topOffset) => {\n if (componentRef && containerRef) {\n // @ts-expect-error -- we know this are not null\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n scrollToComponent(componentRef!, containerRef!, offset);\n }\n },\n [followRef, scrollRef, topOffset],\n );\n\n return scrollToRefComponent;\n}\n","import { IoLocate } from 'react-icons/io5';\n\nimport { cx } from '../../../common/utils/styleUtils';\n\nimport style from './FollowButton.module.scss';\n\ninterface FollowButtonProps {\n isVisible: boolean;\n onClickHandler: () => void;\n}\n\nexport default function FollowButton(props: FollowButtonProps) {\n const { isVisible, onClickHandler } = props;\n\n const classes = cx([style.followButton, !isVisible && style.hidden]);\n\n return (\n <button className={classes} onClick={onClickHandler} type='button'>\n <IoLocate />\n Follow\n </button>\n );\n}\n"],"names":["scrollToComponent","componentRef","scrollRef","topOffset","current","componentRect","getBoundingClientRect","scrollRect","top","scrollTop","scrollTo","behavior","useFollowComponent","followRef","doFollow","setScrollFlag","followTrigger","useEffect","window","requestAnimationFrame","useCallback","containerRef","offset","FollowButton","props","isVisible","onClickHandler","classes","cx","style","followButton","hidden","jsx","IoLocate"],"mappings":"0bAGA,SAASA,EACPC,EACAC,EACAC,EACA,CACA,GAAI,CAACF,EAAaG,SAAW,CAACF,EAAUE,QACtC,OAGIC,MAAAA,EAAgBJ,EAAaG,QAAQE,sBAAsB,EAC3DC,EAAaL,EAAUE,QAAQE,sBAAsB,EACrDE,EAAMH,EAAcG,IAAMD,EAAWC,IAAMN,EAAUE,QAAQK,UAAYN,EAE/ED,EAAUE,QAAQM,SAAS,CAAEF,IAAAA,EAAKG,SAAU,QAAA,CAAU,CACxD,CAWA,SAAwBC,EAAmB,CACzCC,UAAAA,EACAX,UAAAA,EACAY,SAAAA,EACAX,UAAAA,EAAY,IACZY,cAAAA,EACAC,cAAAA,CACuB,EAAG,CAE1BC,OAAAA,EAAAA,UAAU,IAAM,CACV,CAACH,GAAY,CAACE,GAIdH,EAAUT,SAAWF,EAAUE,UACjCW,GAAAA,MAAAA,EAAgB,IAEhBG,OAAOC,sBAAsB,IAAM,CACfN,EAAAA,EAAqCX,EAAqCC,CAAS,EACrGY,GAAAA,MAAAA,EAAgB,GAAK,CACtB,EACH,EACC,CAACC,EAAeF,EAAUD,EAAWX,EAAWa,EAAeZ,CAAS,CAAC,EAE/CiB,cAC3B,CAACnB,EAAeY,EAAWQ,EAAenB,EAAWoB,EAASnB,IAAc,CACtEF,GAAgBoB,GAGApB,EAAAA,EAAeoB,EAAeC,CAAM,CAG1D,EAAA,CAACT,EAAWX,EAAWC,CAAS,CAClC,CAGF,mFCrDA,SAAwBoB,EAAaC,EAA0B,CACvD,KAAA,CAAEC,UAAAA,EAAWC,eAAAA,CAAAA,EAAmBF,EAEhCG,EAAUC,EAAG,CAACC,EAAMC,aAAc,CAACL,GAAaI,EAAME,MAAM,CAAC,EAEnE,cACG,SAAO,CAAA,UAAWJ,EAAS,QAASD,EAAgB,KAAK,SACxD,SAAA,CAAAM,EAAA,IAACC,EAAQ,EAAA,EAAA,QAAA,EAEX,CAEJ"}
1
+ {"version":3,"file":"FollowButton-DcSbb4R_.js","sources":["../../src/common/hooks/useFollowComponent.ts","../../src/features/operator/follow-button/FollowButton.tsx"],"sourcesContent":["import { RefObject, useCallback, useEffect } from 'react';\nimport { MaybeString } from 'ontime-types';\n\nfunction scrollToComponent<ComponentRef extends HTMLElement, ScrollRef extends HTMLElement>(\n componentRef: RefObject<ComponentRef>,\n scrollRef: RefObject<ScrollRef>,\n topOffset: number,\n) {\n if (!componentRef.current || !scrollRef.current) {\n return;\n }\n\n const componentRect = componentRef.current.getBoundingClientRect();\n const scrollRect = scrollRef.current.getBoundingClientRect();\n const top = componentRect.top - scrollRect.top + scrollRef.current.scrollTop - topOffset;\n\n scrollRef.current.scrollTo({ top, behavior: 'smooth' });\n}\n\ninterface UseFollowComponentProps {\n followRef: RefObject<HTMLElement | null>;\n scrollRef: RefObject<HTMLElement | null>;\n doFollow: boolean;\n topOffset?: number;\n setScrollFlag?: (newValue: boolean) => void;\n followTrigger?: MaybeString; // this would be an entry id or null\n}\n\nexport default function useFollowComponent({\n followRef,\n scrollRef,\n doFollow,\n topOffset = 100,\n setScrollFlag,\n followTrigger,\n}: UseFollowComponentProps) {\n // when trigger moves, view should follow\n useEffect(() => {\n if (!doFollow || !followTrigger) {\n return;\n }\n\n if (followRef.current && scrollRef.current) {\n setScrollFlag?.(true);\n // Use requestAnimationFrame to ensure the component is fully loaded\n window.requestAnimationFrame(() => {\n scrollToComponent(followRef as RefObject<HTMLElement>, scrollRef as RefObject<HTMLElement>, topOffset);\n setScrollFlag?.(false);\n });\n }\n }, [followTrigger, doFollow, followRef, scrollRef, setScrollFlag, topOffset]);\n\n const scrollToRefComponent = useCallback(\n (componentRef = followRef, containerRef = scrollRef, offset = topOffset) => {\n if (componentRef && containerRef) {\n // @ts-expect-error -- we know this are not null\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n scrollToComponent(componentRef!, containerRef!, offset);\n }\n },\n [followRef, scrollRef, topOffset],\n );\n\n return scrollToRefComponent;\n}\n","import { IoLocate } from 'react-icons/io5';\n\nimport { cx } from '../../../common/utils/styleUtils';\n\nimport style from './FollowButton.module.scss';\n\ninterface FollowButtonProps {\n isVisible: boolean;\n onClickHandler: () => void;\n}\n\nexport default function FollowButton(props: FollowButtonProps) {\n const { isVisible, onClickHandler } = props;\n\n const classes = cx([style.followButton, !isVisible && style.hidden]);\n\n return (\n <button className={classes} onClick={onClickHandler} type='button'>\n <IoLocate />\n Follow\n </button>\n );\n}\n"],"names":["scrollToComponent","componentRef","scrollRef","topOffset","current","componentRect","getBoundingClientRect","scrollRect","top","scrollTop","scrollTo","behavior","useFollowComponent","followRef","doFollow","setScrollFlag","followTrigger","useEffect","window","requestAnimationFrame","useCallback","containerRef","offset","FollowButton","props","isVisible","onClickHandler","classes","cx","style","followButton","hidden","jsx","IoLocate"],"mappings":"0bAGA,SAASA,EACPC,EACAC,EACAC,EACA,CACA,GAAI,CAACF,EAAaG,SAAW,CAACF,EAAUE,QACtC,OAGIC,MAAAA,EAAgBJ,EAAaG,QAAQE,sBAAsB,EAC3DC,EAAaL,EAAUE,QAAQE,sBAAsB,EACrDE,EAAMH,EAAcG,IAAMD,EAAWC,IAAMN,EAAUE,QAAQK,UAAYN,EAE/ED,EAAUE,QAAQM,SAAS,CAAEF,IAAAA,EAAKG,SAAU,QAAA,CAAU,CACxD,CAWA,SAAwBC,EAAmB,CACzCC,UAAAA,EACAX,UAAAA,EACAY,SAAAA,EACAX,UAAAA,EAAY,IACZY,cAAAA,EACAC,cAAAA,CACuB,EAAG,CAE1BC,OAAAA,EAAAA,UAAU,IAAM,CACV,CAACH,GAAY,CAACE,GAIdH,EAAUT,SAAWF,EAAUE,UACjCW,GAAAA,MAAAA,EAAgB,IAEhBG,OAAOC,sBAAsB,IAAM,CACfN,EAAAA,EAAqCX,EAAqCC,CAAS,EACrGY,GAAAA,MAAAA,EAAgB,GAAK,CACtB,EACH,EACC,CAACC,EAAeF,EAAUD,EAAWX,EAAWa,EAAeZ,CAAS,CAAC,EAE/CiB,cAC3B,CAACnB,EAAeY,EAAWQ,EAAenB,EAAWoB,EAASnB,IAAc,CACtEF,GAAgBoB,GAGApB,EAAAA,EAAeoB,EAAeC,CAAM,CAG1D,EAAA,CAACT,EAAWX,EAAWC,CAAS,CAClC,CAGF,mFCrDA,SAAwBoB,EAAaC,EAA0B,CACvD,KAAA,CAAEC,UAAAA,EAAWC,eAAAA,CAAAA,EAAmBF,EAEhCG,EAAUC,EAAG,CAACC,EAAMC,aAAc,CAACL,GAAaI,EAAME,MAAM,CAAC,EAEnE,cACG,SAAO,CAAA,UAAWJ,EAAS,QAASD,EAAgB,KAAK,SACxD,SAAA,CAAAM,EAAA,IAACC,EAAQ,EAAA,EAAA,QAAA,EAEX,CAEJ"}
@@ -1,3 +1,3 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PipHost-CbNFsfqp.js","./vendor-CKDP5hij.js","./vendor-4xP-6xVS.css","./EditorUtils-CLBWDP4k.js","./index-2lQ-45a9.js","./index-Cm69j2Ld.css","./EditorUtils-L4Sg72o_.css","./timer.utils-B-Ui91P7.js","./viewUtils-DQFwr7hm.js","./playbackstate-znZk3SSJ.js","./MultiPartProgressBar-Fp-sTN2u.js","./getProgress-B9UANc25.js","./MultiPartProgressBar-1_EFIx1M.css","./presentation.utils-CjjYs5II.js","./PipHost-DEhjTbGT.css"])))=>i.map(i=>d[i]);
2
- import{h as o,j as e,$ as M,av as A,y as L,bi as R,bj as B,bg as D,c6 as k,c7 as w}from"./vendor-CKDP5hij.js";import{a as V,S as q,P as F,C as O}from"./EditorUtils-CLBWDP4k.js";import{e as S,ah as $,bQ as H,a as U,T as d,bk as z,y as j,ax as I,bR as T,B as h,bS as i,bT as W,ak as P,bU as Q,bA as G,be as J,bB as K}from"./index-2lQ-45a9.js";import{P as X}from"./ProtectRoute-CCHzyy0I.js";import{S as Y}from"./Select-DQwYPDyI.js";import{T as f}from"./Tooltip-DXph8P8p.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new n.Error().stack;t&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[t]="b84d454b-2f21-4f36-889b-c34ef81ea0b5",n._sentryDebugIdIdentifier="sentry-dbid-b84d454b-2f21-4f36-889b-c34ef81ea0b5")}catch{}})();const Z="_inputItems_13jx0_17",ee="_label_13jx0_24",te="_active_13jx0_28",v={inputItems:Z,label:ee,active:te};function E(n){const{label:t,placeholder:a,text:s,visible:l,changeHandler:b,children:u}=n,[m,x]=o.useState(s),c=o.useRef(null),p=o.useRef(0);o.useEffect(()=>{c.current&&c.current!==document.activeElement&&(c.current.selectionStart=p.current,c.current.selectionEnd=p.current)},[s]),o.useEffect(()=>{c.current!==document.activeElement&&x(s)},[s]);const y=g=>{p.current=g.target.selectionStart??0,x(g.target.value),b(g.target.value)};return e.jsxs("div",{children:[e.jsx("label",{className:S([v.label,l??v.active]),htmlFor:t,children:t}),e.jsxs("div",{className:v.inputItems,children:[e.jsx($,{id:t,ref:c,value:m,onChange:y,placeholder:a}),u]})]})}const ne="documentPictureInPicture"in window,se=o.lazy(()=>M(()=>import("./PipHost-CbNFsfqp.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)),ae=o.memo(re);function re(){return ne?e.jsx(o.Suspense,{fallback:null,children:e.jsx(se,{})}):null}const oe="_blink_k96dq_1",ie="_preview_k96dq_17",ce="_mainContent_k96dq_25",le="_secondaryContent_k96dq_41",ue="_blackout_k96dq_45",de="_eventStatus_k96dq_49",me="_statusIcon_k96dq_58",r={blink:oe,preview:ie,mainContent:ce,secondaryContent:le,blackout:ue,eventStatus:de,statusIcon:me},xe={aux1:"Aux 1",aux2:"Aux 2",aux3:"Aux 3",secondary:"Secondary message"};function pe(){const{blink:n,blackout:t,countToEnd:a,phase:s,secondarySource:l,showTimerMessage:b,timerType:u}=H(),{data:m}=U(),x=b?"Message":u===d.None?z:s===j.Pending?"Standby to start":s===j.Overtime?"Timer Overtime":u===d.Clock?"Clock":a?"Count to End":"Timer",c=b||!l?null:xe[l],p=s===j.Warning?m.warningColor??"#ffa528":s===j.Danger?m.dangerColor??"#ff7300":m.normalColor??"#FFFC",y=x=="Timer",g=S([n&&r.blink,t&&r.blackout]);return e.jsxs("div",{className:r.preview,children:[e.jsx(V,{onExtractClick:N=>I("timer",N),pipElement:e.jsx(ae,{})}),e.jsxs("div",{className:g,children:[e.jsx("div",{className:r.mainContent,"data-phase":y&&s,style:y?{"--override-colour":p}:{},children:x}),c!==null&&e.jsx("div",{className:r.secondaryContent,children:c})]}),e.jsxs("div",{className:r.eventStatus,children:[e.jsx(f,{text:"Time type: Count down",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.CountDown,children:e.jsx(A,{})}),e.jsx(f,{text:"Time type: Count up",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.CountUp,children:e.jsx(L,{})}),e.jsx(f,{text:"Time type: Clock",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.Clock,children:e.jsx(R,{})}),e.jsx(f,{text:"Time type: None",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.None,children:e.jsx(B,{})}),e.jsx(f,{text:a?"Count to end":"Count duration",render:e.jsx("span",{}),className:r.statusIcon,"data-active":a,children:e.jsx(D,{})})]})]})}const ge="_previewContainer_ytrng_17",fe="_options_ytrng_23",_={previewContainer:ge,options:fe};function be(){const{blackout:n,blink:t}=T();return e.jsxs("div",{className:_.previewContainer,children:[e.jsx(pe,{}),e.jsxs("div",{className:_.options,children:[e.jsx(ye,{}),e.jsx(q,{orientation:"horizontal"}),e.jsx(h,{variant:t?"primary":"subtle",fluid:!0,onClick:()=>i.timerBlink(!t),"data-testid":"toggle timer blink",children:"Blink"}),e.jsx(h,{variant:n?"primary":"subtle",fluid:!0,onClick:()=>i.timerBlackout(!n),"data-testid":"toggle timer blackout",children:"Blackout screen"})]})]})}function ye(){const{secondarySource:n}=T(),[t,a]=o.useState("aux1");o.useEffect(()=>{n!==null&&a(n)},[n]);const s=()=>{n===t?i.timerSecondarySource(null):i.timerSecondarySource(t)};return e.jsxs(e.Fragment,{children:[e.jsx(Y,{value:t,options:[{value:"aux1",label:"Aux 1"},{value:"aux2",label:"Aux 2"},{value:"aux3",label:"Aux 3"},{value:"secondary",label:"Secondary message"}],onValueChange:l=>{l!==null&&(n!==null&&i.timerSecondarySource(l),a(l))}}),e.jsx(h,{variant:n!==null?"primary":"subtle",fluid:!0,onClick:s,"data-testid":"toggle secondary",children:"Show secondary"})]})}function je(){return e.jsxs(e.Fragment,{children:[e.jsx(be,{}),e.jsx(ve,{}),e.jsx(he,{})]})}function ve(){const{text:n,visible:t}=W();return e.jsx(E,{label:"Timer Message",placeholder:"Message shown fullscreen in stage timer",text:n,visible:t,changeHandler:a=>i.timerText(a),children:e.jsx(P,{"aria-label":"Toggle timer message visibility",onClick:()=>i.timerVisible(!t),variant:t?"primary":"subtle",children:t?e.jsx(k,{}):e.jsx(w,{})})})}function he(){const{text:n,visible:t}=Q(),a=()=>{t?i.timerSecondarySource(null):i.timerSecondarySource("secondary")};return e.jsx(E,{label:"Secondary Message",placeholder:"Message shown as secondary text in stage timer",text:n,visible:t,changeHandler:s=>i.secondaryMessage(s),children:e.jsx(P,{"aria-label":"Toggle secondary message visibility",onClick:a,variant:t?"primary":"subtle",children:t?e.jsx(k,{}):e.jsx(w,{})})})}const _e="_growPanel_9ahya_17",Ce="_contentLayout_9ahya_21",C={growPanel:_e,contentLayout:Ce},Ne=o.memo(ke);function ke(){const n=window.location.pathname.includes("/messagecontrol");return e.jsx(X,{permission:"editor",children:e.jsxs(F,{className:C.growPanel,"data-testid":"panel-messages-control",children:[!n&&e.jsx(O,{onClick:t=>I("messagecontrol",t)}),n&&e.jsx(G,{suppressSettings:!0,isNavigationLocked:J()}),e.jsx("div",{className:C.contentLayout,children:e.jsx(K,{children:e.jsx(je,{})})})]})})}export{Ne as default};
3
- //# sourceMappingURL=MessageControlExport-Dm8IjSr4.js.map
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PipHost-Dz2oy7XG.js","./vendor-BKUJ0_Du.js","./vendor-4xP-6xVS.css","./EditorUtils-BLcTuWz1.js","./index-Dm-4OTmY.js","./index-Cm69j2Ld.css","./EditorUtils-L4Sg72o_.css","./timer.utils-B4bvsns3.js","./viewUtils-29a3Mmiu.js","./playbackstate-Dl_ZJABT.js","./MultiPartProgressBar-W2a-JWPY.js","./getProgress-ZUTmCn_v.js","./MultiPartProgressBar-1_EFIx1M.css","./presentation.utils-Z61KykAH.js","./PipHost-DEhjTbGT.css"])))=>i.map(i=>d[i]);
2
+ import{h as o,j as e,$ as M,av as A,y as L,bi as R,bj as B,bg as D,c6 as k,c7 as w}from"./vendor-BKUJ0_Du.js";import{a as V,S as q,P as F,C as O}from"./EditorUtils-BLcTuWz1.js";import{e as S,ah as $,bQ as H,a as U,T as d,bk as z,y as j,ax as I,bR as T,B as h,bS as i,bT as W,ak as P,bU as Q,bA as G,be as J,bB as K}from"./index-Dm-4OTmY.js";import{P as X}from"./ProtectRoute-Bxq6q7ba.js";import{S as Y}from"./Select-BnGTAeXJ.js";import{T as f}from"./Tooltip-DZJ7u9gm.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new n.Error().stack;t&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[t]="b84d454b-2f21-4f36-889b-c34ef81ea0b5",n._sentryDebugIdIdentifier="sentry-dbid-b84d454b-2f21-4f36-889b-c34ef81ea0b5")}catch{}})();const Z="_inputItems_13jx0_17",ee="_label_13jx0_24",te="_active_13jx0_28",v={inputItems:Z,label:ee,active:te};function E(n){const{label:t,placeholder:a,text:s,visible:l,changeHandler:b,children:u}=n,[m,x]=o.useState(s),c=o.useRef(null),p=o.useRef(0);o.useEffect(()=>{c.current&&c.current!==document.activeElement&&(c.current.selectionStart=p.current,c.current.selectionEnd=p.current)},[s]),o.useEffect(()=>{c.current!==document.activeElement&&x(s)},[s]);const y=g=>{p.current=g.target.selectionStart??0,x(g.target.value),b(g.target.value)};return e.jsxs("div",{children:[e.jsx("label",{className:S([v.label,l??v.active]),htmlFor:t,children:t}),e.jsxs("div",{className:v.inputItems,children:[e.jsx($,{id:t,ref:c,value:m,onChange:y,placeholder:a}),u]})]})}const ne="documentPictureInPicture"in window,se=o.lazy(()=>M(()=>import("./PipHost-Dz2oy7XG.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)),ae=o.memo(re);function re(){return ne?e.jsx(o.Suspense,{fallback:null,children:e.jsx(se,{})}):null}const oe="_blink_k96dq_1",ie="_preview_k96dq_17",ce="_mainContent_k96dq_25",le="_secondaryContent_k96dq_41",ue="_blackout_k96dq_45",de="_eventStatus_k96dq_49",me="_statusIcon_k96dq_58",r={blink:oe,preview:ie,mainContent:ce,secondaryContent:le,blackout:ue,eventStatus:de,statusIcon:me},xe={aux1:"Aux 1",aux2:"Aux 2",aux3:"Aux 3",secondary:"Secondary message"};function pe(){const{blink:n,blackout:t,countToEnd:a,phase:s,secondarySource:l,showTimerMessage:b,timerType:u}=H(),{data:m}=U(),x=b?"Message":u===d.None?z:s===j.Pending?"Standby to start":s===j.Overtime?"Timer Overtime":u===d.Clock?"Clock":a?"Count to End":"Timer",c=b||!l?null:xe[l],p=s===j.Warning?m.warningColor??"#ffa528":s===j.Danger?m.dangerColor??"#ff7300":m.normalColor??"#FFFC",y=x=="Timer",g=S([n&&r.blink,t&&r.blackout]);return e.jsxs("div",{className:r.preview,children:[e.jsx(V,{onExtractClick:N=>I("timer",N),pipElement:e.jsx(ae,{})}),e.jsxs("div",{className:g,children:[e.jsx("div",{className:r.mainContent,"data-phase":y&&s,style:y?{"--override-colour":p}:{},children:x}),c!==null&&e.jsx("div",{className:r.secondaryContent,children:c})]}),e.jsxs("div",{className:r.eventStatus,children:[e.jsx(f,{text:"Time type: Count down",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.CountDown,children:e.jsx(A,{})}),e.jsx(f,{text:"Time type: Count up",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.CountUp,children:e.jsx(L,{})}),e.jsx(f,{text:"Time type: Clock",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.Clock,children:e.jsx(R,{})}),e.jsx(f,{text:"Time type: None",render:e.jsx("span",{}),className:r.statusIcon,"data-active":u===d.None,children:e.jsx(B,{})}),e.jsx(f,{text:a?"Count to end":"Count duration",render:e.jsx("span",{}),className:r.statusIcon,"data-active":a,children:e.jsx(D,{})})]})]})}const ge="_previewContainer_ytrng_17",fe="_options_ytrng_23",_={previewContainer:ge,options:fe};function be(){const{blackout:n,blink:t}=T();return e.jsxs("div",{className:_.previewContainer,children:[e.jsx(pe,{}),e.jsxs("div",{className:_.options,children:[e.jsx(ye,{}),e.jsx(q,{orientation:"horizontal"}),e.jsx(h,{variant:t?"primary":"subtle",fluid:!0,onClick:()=>i.timerBlink(!t),"data-testid":"toggle timer blink",children:"Blink"}),e.jsx(h,{variant:n?"primary":"subtle",fluid:!0,onClick:()=>i.timerBlackout(!n),"data-testid":"toggle timer blackout",children:"Blackout screen"})]})]})}function ye(){const{secondarySource:n}=T(),[t,a]=o.useState("aux1");o.useEffect(()=>{n!==null&&a(n)},[n]);const s=()=>{n===t?i.timerSecondarySource(null):i.timerSecondarySource(t)};return e.jsxs(e.Fragment,{children:[e.jsx(Y,{value:t,options:[{value:"aux1",label:"Aux 1"},{value:"aux2",label:"Aux 2"},{value:"aux3",label:"Aux 3"},{value:"secondary",label:"Secondary message"}],onValueChange:l=>{l!==null&&(n!==null&&i.timerSecondarySource(l),a(l))}}),e.jsx(h,{variant:n!==null?"primary":"subtle",fluid:!0,onClick:s,"data-testid":"toggle secondary",children:"Show secondary"})]})}function je(){return e.jsxs(e.Fragment,{children:[e.jsx(be,{}),e.jsx(ve,{}),e.jsx(he,{})]})}function ve(){const{text:n,visible:t}=W();return e.jsx(E,{label:"Timer Message",placeholder:"Message shown fullscreen in stage timer",text:n,visible:t,changeHandler:a=>i.timerText(a),children:e.jsx(P,{"aria-label":"Toggle timer message visibility",onClick:()=>i.timerVisible(!t),variant:t?"primary":"subtle",children:t?e.jsx(k,{}):e.jsx(w,{})})})}function he(){const{text:n,visible:t}=Q(),a=()=>{t?i.timerSecondarySource(null):i.timerSecondarySource("secondary")};return e.jsx(E,{label:"Secondary Message",placeholder:"Message shown as secondary text in stage timer",text:n,visible:t,changeHandler:s=>i.secondaryMessage(s),children:e.jsx(P,{"aria-label":"Toggle secondary message visibility",onClick:a,variant:t?"primary":"subtle",children:t?e.jsx(k,{}):e.jsx(w,{})})})}const _e="_growPanel_9ahya_17",Ce="_contentLayout_9ahya_21",C={growPanel:_e,contentLayout:Ce},Ne=o.memo(ke);function ke(){const n=window.location.pathname.includes("/messagecontrol");return e.jsx(X,{permission:"editor",children:e.jsxs(F,{className:C.growPanel,"data-testid":"panel-messages-control",children:[!n&&e.jsx(O,{onClick:t=>I("messagecontrol",t)}),n&&e.jsx(G,{suppressSettings:!0,isNavigationLocked:J()}),e.jsx("div",{className:C.contentLayout,children:e.jsx(K,{children:e.jsx(je,{})})})]})})}export{Ne as default};
3
+ //# sourceMappingURL=MessageControlExport-BgT9JaXk.js.map
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":["InputRow","props","label","placeholder","text","visible","changeHandler","children","value","setValue","useState","inputRef","useRef","cursorPositionRef","useEffect","current","document","activeElement","selectionStart","selectionEnd","handleInputChange","event","target","jsx","cx","style","active","jsxs","inputItems","Input","isPipSupported","window","PipTimerHost","lazy","__vitePreload","memo","PipRoot","Suspense","secondarySourceLabels","aux1","aux2","aux3","secondary","TimerPreview","blink","blackout","countToEnd","phase","secondarySource","showTimerMessage","timerType","useMessagePreview","data","useViewSettings","main","TimerType","None","timerPlaceholder","TimerPhase","Pending","Overtime","Clock","overrideColour","Warning","warningColor","Danger","dangerColor","normalColor","showColourOverride","contentClasses","preview","CornerWithPip","handleLinks","mainContent","secondaryContent","eventStatus","Tooltip","statusIcon","CountDown","IoArrowDown","CountUp","IoArrowUp","IoTime","IoBan","LuArrowDownToLine","TimerControlsPreview","useTimerViewControl","previewContainer","options","SecondarySourceControl","Editor.Separator","Button","setMessage","timerBlink","timerBlackout","toggleSecondary","timerSecondarySource","Fragment","Select","MessageControl","TimerMessageInput","SecondaryInput","useTimerMessageInput","newValue","timerText","IconButton","timerVisible","IoEye","IoEyeOffOutline","useSecondaryMessageInput","secondaryMessage","MessageControlExport","isExtracted","location","pathname","includes","ProtectRoute","Editor.Panel","growPanel","Editor.CornerExtract","ViewNavigationMenu","getIsNavigationLocked","contentLayout","ErrorBoundary"],"ignoreList":[],"sources":["../../src/features/control/message/InputRow.tsx","../../src/views/editor/pip-timer/pip.utils.ts","../../src/views/editor/pip-timer/PipRoot.tsx","../../src/features/control/message/TimerPreview.tsx","../../src/features/control/message/TimerViewControl.tsx","../../src/features/control/message/MessageControl.tsx","../../src/features/control/message/MessageControlExport.tsx"],"sourcesContent":["import { PropsWithChildren, useEffect, useRef, useState } from 'react';\n\nimport Input from '../../../common/components/input/input/Input';\nimport { cx } from '../../../common/utils/styleUtils';\n\nimport style from './InputRow.module.scss';\n\ninterface InputRowProps {\n label: string;\n placeholder: string;\n text: string;\n visible: boolean;\n changeHandler: (newValue: string) => void;\n}\n\nexport default function InputRow(props: PropsWithChildren<InputRowProps>) {\n const { label, placeholder, text, visible, changeHandler, children } = props;\n\n const [value, setValue] = useState(text);\n const inputRef = useRef<HTMLInputElement>(null);\n const cursorPositionRef = useRef(0);\n\n // sync cursor position with text\n useEffect(() => {\n if (inputRef.current && inputRef.current !== document.activeElement) {\n inputRef.current.selectionStart = cursorPositionRef.current;\n inputRef.current.selectionEnd = cursorPositionRef.current;\n }\n }, [text]);\n\n // synchronise external text\n useEffect(() => {\n if (inputRef.current !== document.activeElement) {\n setValue(text);\n }\n }, [text]);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n cursorPositionRef.current = event.target.selectionStart ?? 0;\n setValue(event.target.value);\n changeHandler(event.target.value);\n };\n\n return (\n <div>\n <label className={cx([style.label, visible ?? style.active])} htmlFor={label}>\n {label}\n </label>\n <div className={style.inputItems}>\n <Input id={label} ref={inputRef} value={value} onChange={handleInputChange} placeholder={placeholder} />\n {children}\n </div>\n </div>\n );\n}\n","export const isPipSupported = 'documentPictureInPicture' in window;\n","import { lazy, memo, Suspense } from 'react';\n\nimport { isPipSupported } from './pip.utils';\n\nconst PipTimerHost = lazy(() => import('./PipHost'));\n\nexport default memo(PipRoot);\nfunction PipRoot() {\n if (!isPipSupported) {\n return null;\n }\n\n return (\n <Suspense fallback={null}>\n <PipTimerHost />\n </Suspense>\n );\n}\n","import { IoArrowDown, IoArrowUp, IoBan, IoTime } from 'react-icons/io5';\nimport { LuArrowDownToLine } from 'react-icons/lu';\nimport { TimerPhase, TimerType } from 'ontime-types';\n\nimport { CornerWithPip } from '../../../common/components/editor-utils/EditorUtils';\nimport Tooltip from '../../../common/components/tooltip/Tooltip';\nimport { useMessagePreview } from '../../../common/hooks/useSocket';\nimport useViewSettings from '../../../common/hooks-query/useViewSettings';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { cx, timerPlaceholder } from '../../../common/utils/styleUtils';\nimport PipRoot from '../../../views/editor/pip-timer/PipRoot';\n\nimport style from './TimerPreview.module.scss';\n\nconst secondarySourceLabels: Record<string, string> = {\n aux1: 'Aux 1',\n aux2: 'Aux 2',\n aux3: 'Aux 3',\n secondary: 'Secondary message',\n};\n\nexport default function TimerPreview() {\n const { blink, blackout, countToEnd, phase, secondarySource, showTimerMessage, timerType } = useMessagePreview();\n const { data } = useViewSettings();\n\n const main = (() => {\n if (showTimerMessage) return 'Message';\n if (timerType === TimerType.None) return timerPlaceholder;\n if (phase === TimerPhase.Pending) return 'Standby to start';\n if (phase === TimerPhase.Overtime) return 'Timer Overtime';\n if (timerType === TimerType.Clock) return 'Clock';\n if (countToEnd) return 'Count to End';\n return 'Timer';\n })();\n\n const secondary = (() => {\n // message is a fullscreen overlay or secondary is not active\n if (showTimerMessage || !secondarySource) return null;\n\n // we need to check aux first since it takes priority\n return secondarySourceLabels[secondarySource];\n })();\n\n const overrideColour = (() => {\n // override fallback colours from starter project\n if (phase === TimerPhase.Warning) return data.warningColor ?? '#ffa528';\n if (phase === TimerPhase.Danger) return data.dangerColor ?? '#ff7300';\n return data.normalColor ?? '#FFFC';\n })();\n\n const showColourOverride = main == 'Timer';\n const contentClasses = cx([blink && style.blink, blackout && style.blackout]);\n\n return (\n <div className={style.preview}>\n <CornerWithPip onExtractClick={(event) => handleLinks('timer', event)} pipElement={<PipRoot />} />\n <div className={contentClasses}>\n <div\n className={style.mainContent}\n data-phase={showColourOverride && phase}\n style={showColourOverride ? { '--override-colour': overrideColour } : {}}\n >\n {main}\n </div>\n {secondary !== null && <div className={style.secondaryContent}>{secondary}</div>}\n </div>\n <div className={style.eventStatus}>\n <Tooltip\n text='Time type: Count down'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountDown}\n >\n <IoArrowDown />\n </Tooltip>\n <Tooltip\n text='Time type: Count up'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountUp}\n >\n <IoArrowUp />\n </Tooltip>\n <Tooltip\n text='Time type: Clock'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.Clock}\n >\n <IoTime />\n </Tooltip>\n <Tooltip\n text='Time type: None'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.None}\n >\n <IoBan />\n </Tooltip>\n <Tooltip\n text={countToEnd ? 'Count to end' : 'Count duration'}\n render={<span />}\n className={style.statusIcon}\n data-active={countToEnd}\n >\n <LuArrowDownToLine />\n </Tooltip>\n </div>\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport { SecondarySource } from 'ontime-types';\n\nimport Button from '../../../common/components/buttons/Button';\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport Select from '../../../common/components/select/Select';\nimport { setMessage, useTimerViewControl } from '../../../common/hooks/useSocket';\n\nimport TimerPreview from './TimerPreview';\n\nimport style from './TimerViewControl.module.scss';\n\nexport default function TimerControlsPreview() {\n const { blackout, blink } = useTimerViewControl();\n\n return (\n <div className={style.previewContainer}>\n <TimerPreview />\n <div className={style.options}>\n <SecondarySourceControl />\n\n <Editor.Separator orientation='horizontal' />\n\n <Button\n variant={blink ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlink(!blink)}\n data-testid='toggle timer blink'\n >\n Blink\n </Button>\n <Button\n variant={blackout ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlackout(!blackout)}\n data-testid='toggle timer blackout'\n >\n Blackout screen\n </Button>\n </div>\n </div>\n );\n}\n\nfunction SecondarySourceControl() {\n const { secondarySource } = useTimerViewControl();\n const [value, setValue] = useState<SecondarySource>('aux1');\n\n // sync secondary source with external changes\n useEffect(() => {\n if (secondarySource !== null) {\n setValue(secondarySource);\n }\n }, [secondarySource]);\n\n const toggleSecondary = () => {\n if (secondarySource === value) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource(value);\n }\n };\n\n return (\n <>\n <Select\n value={value}\n options={[\n { value: 'aux1', label: 'Aux 1' },\n { value: 'aux2', label: 'Aux 2' },\n { value: 'aux3', label: 'Aux 3' },\n { value: 'secondary', label: 'Secondary message' },\n ]}\n onValueChange={(value: SecondarySource | null) => {\n if (value === null) return;\n // we can only update the remote if it is enabled\n if (secondarySource !== null) {\n setMessage.timerSecondarySource(value);\n }\n setValue(value);\n }}\n />\n <Button\n variant={secondarySource !== null ? 'primary' : 'subtle'}\n fluid\n onClick={toggleSecondary}\n data-testid='toggle secondary'\n >\n Show secondary\n </Button>\n </>\n );\n}\n","import { IoEye, IoEyeOffOutline } from 'react-icons/io5';\n\nimport IconButton from '../../../common/components/buttons/IconButton';\nimport {\n setMessage,\n useExternalMessageInput as useSecondaryMessageInput,\n useTimerMessageInput,\n} from '../../../common/hooks/useSocket';\n\nimport InputRow from './InputRow';\nimport TimerControlsPreview from './TimerViewControl';\n\nexport default function MessageControl() {\n return (\n <>\n <TimerControlsPreview />\n <TimerMessageInput />\n <SecondaryInput />\n </>\n );\n}\n\nfunction TimerMessageInput() {\n const { text, visible } = useTimerMessageInput();\n\n return (\n <InputRow\n label='Timer Message'\n placeholder='Message shown fullscreen in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.timerText(newValue)}\n >\n <IconButton\n aria-label='Toggle timer message visibility'\n onClick={() => setMessage.timerVisible(!visible)}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n\nfunction SecondaryInput() {\n const { text, visible } = useSecondaryMessageInput();\n\n const toggleSecondary = () => {\n if (visible) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource('secondary');\n }\n };\n\n return (\n <InputRow\n label='Secondary Message'\n placeholder='Message shown as secondary text in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.secondaryMessage(newValue)}\n >\n <IconButton\n aria-label='Toggle secondary message visibility'\n onClick={toggleSecondary}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n","import { memo } from 'react';\n\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport ErrorBoundary from '../../../common/components/error-boundary/ErrorBoundary';\nimport ViewNavigationMenu from '../../../common/components/navigation-menu/ViewNavigationMenu';\nimport ProtectRoute from '../../../common/components/protect-route/ProtectRoute';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { getIsNavigationLocked } from '../../../externals';\n\nimport MessageControl from './MessageControl';\n\nimport style from './MessageControlExport.module.scss';\n\nexport default memo(MessageControlExport);\nfunction MessageControlExport() {\n const isExtracted = window.location.pathname.includes('/messagecontrol');\n\n return (\n <ProtectRoute permission='editor'>\n <Editor.Panel className={style.growPanel} data-testid='panel-messages-control'>\n {!isExtracted && <Editor.CornerExtract onClick={(event) => handleLinks('messagecontrol', event)} />}\n {isExtracted && <ViewNavigationMenu suppressSettings isNavigationLocked={getIsNavigationLocked()} />}\n\n <div className={style.contentLayout}>\n <ErrorBoundary>\n <MessageControl />\n </ErrorBoundary>\n </div>\n </Editor.Panel>\n </ProtectRoute>\n );\n}\n"],"file":"assets/MessageControlExport-Dm8IjSr4.js"}
1
+ {"version":3,"mappings":";+5BAeA,SAAwBA,EAASC,EAAyC,CAClE,MAAEC,QAAOC,cAAaC,OAAMC,UAASC,gBAAeC,YAAaN,EAEjE,CAACO,EAAOC,CAAQ,EAAIC,WAASN,CAAI,EACjCO,EAAWC,SAAyB,IAAI,EACxCC,EAAoBD,SAAO,CAAC,EAGlCE,YAAU,IAAM,CACVH,EAASI,SAAWJ,EAASI,UAAYC,SAASC,gBAC3CF,UAAQG,eAAiBL,EAAkBE,QAC3CA,UAAQI,aAAeN,EAAkBE,QACpD,EACC,CAACX,CAAI,CAAC,EAGTU,YAAU,IAAM,CACVH,EAASI,UAAYC,SAASC,eAChCR,EAASL,CAAI,CACf,EACC,CAACA,CAAI,CAAC,EAEHgB,QAAqBC,GAA+C,CACtDN,UAAUM,EAAMC,OAAOJ,gBAAkB,EAClDG,IAAMC,OAAOd,KAAK,EACba,IAAMC,OAAOd,KAAK,CAClC,EAEA,cACG,MACC,WAAAe,EAAA,IAAC,QAAM,WAAWC,EAAG,CAACC,EAAMvB,MAAOG,GAAWoB,EAAMC,MAAM,CAAC,EAAG,QAASxB,EACpEA,SACHA,EAAA,EACCyB,EAAA,YAAI,UAAWF,EAAMG,WACpB,UAACL,MAAAM,EAAA,CAAM,GAAI3B,EAAO,IAAKS,EAAU,MAAAH,EAAc,SAAUY,EAAmB,YAAAjB,CAAyB,GACpGI,EACH,IACF,CAEJ,CCtDO,MAAMuB,GAAiB,6BAA8BC,OCItDC,GAAeC,OAAK,IAAMC,EAAA,WAAO,uBAAW,wEAAC,EAEpCC,UAAKC,EAAO,EAC3B,SAASA,IAAU,CACjB,OAAKN,SAKFO,WAAS,UAAU,KAClB,SAAAd,MAACS,IAAY,GACf,EANO,IAQX,8RCHMM,GAAgD,CACpDC,KAAM,QACNC,KAAM,QACNC,KAAM,QACNC,UAAW,mBACb,EAEA,SAAwBC,IAAe,CAC/B,MAAEC,QAAOC,WAAUC,aAAYC,QAAOC,kBAAiBC,mBAAkBC,aAAcC,EAAkB,EACzG,CAAEC,QAASC,EAAgB,EAE3BC,EACAL,EAAyB,UACzBC,IAAcK,EAAUC,KAAaC,EACrCV,IAAUW,EAAWC,QAAgB,mBACrCZ,IAAUW,EAAWE,SAAiB,iBACtCV,IAAcK,EAAUM,MAAc,QACtCf,EAAmB,eAChB,QAGHJ,EAEAO,GAAoB,CAACD,EAAwB,KAG1CV,GAAsBU,CAAe,EAGxCc,EAEAf,IAAUW,EAAWK,QAAgBX,EAAKY,cAAgB,UAC1DjB,IAAUW,EAAWO,OAAeb,EAAKc,aAAe,UACrDd,EAAKe,aAAe,QAGvBC,EAAqBd,GAAQ,QAC7Be,EAAiB7C,EAAG,CAACoB,GAASnB,EAAMmB,MAAOC,GAAYpB,EAAMoB,QAAQ,CAAC,EAE5E,OACGlB,OAAA,OAAI,UAAWF,EAAM6C,QACpB,UAAC/C,MAAAgD,EAAA,CAAc,eAAiBlD,GAAUmD,EAAY,QAASnD,CAAK,EAAG,WAAaE,MAAAa,GAAA,EAAO,CAAI,GAC/FT,OAAC,MAAI,WAAW0C,EACd,UAAC9C,MAAA,OACC,UAAWE,EAAMgD,YACjB,aAAYL,GAAsBrB,EAClC,MAAOqB,EAAqB,CAAE,oBAAqBN,GAAmB,CAAC,EAEtER,SACHA,EAAA,EACCZ,IAAc,MAAQnB,EAAA,IAAC,OAAI,UAAWE,EAAMiD,iBAAmBhC,SAAUA,CAAA,IAC5E,EACCf,EAAA,YAAI,UAAWF,EAAMkD,YACpB,UAAApD,MAACqD,GACC,KAAK,wBACL,OAAQrD,MAAC,WACT,UAAWE,EAAMoD,WACjB,cAAa3B,IAAcK,EAAUuB,UAErC,SAAAvD,MAACwD,GAAW,GACd,QACCH,EACC,MAAK,sBACL,aAAS,WACT,UAAWnD,EAAMoD,WACjB,cAAa3B,IAAcK,EAAUyB,QAErC,SAAAzD,MAAC0D,GAAS,GACZ,QACCL,EACC,MAAK,mBACL,aAAS,WACT,UAAWnD,EAAMoD,WACjB,cAAa3B,IAAcK,EAAUM,MAErC,SAAAtC,MAAC2D,GAAM,GACT,QACCN,EACC,MAAK,kBACL,aAAS,WACT,UAAWnD,EAAMoD,WACjB,cAAa3B,IAAcK,EAAUC,KAErC,SAAAjC,MAAC4D,GAAK,GACR,QACCP,EACC,MAAM9B,EAAa,eAAiB,iBACpC,OAAQvB,EAAA,IAAC,OAAO,IAChB,UAAWE,EAAMoD,WACjB,cAAa/B,EAEb,SAAAvB,EAAA,IAAC6D,IAAiB,CACpB,GACF,IACF,CAEJ,iGClGA,SAAwBC,IAAuB,CACvC,MAAExC,WAAUD,SAAU0C,EAAoB,EAEhD,OACG3D,OAAA,OAAI,UAAWF,EAAM8D,iBACpB,UAAAhE,EAAA,IAACoB,GAAY,IACZhB,EAAA,YAAI,UAAWF,EAAM+D,QACpB,UAAAjE,EAAA,IAACkE,GAAsB,IAEtBlE,MAAAmE,EAAA,CAAiB,YAAY,YAAY,SAEzCC,EACC,SAAS/C,EAAQ,UAAY,SAC7B,MAAK,GACL,QAAS,IAAMgD,EAAWC,WAAW,CAACjD,CAAK,EAC3C,cAAY,qBAAoB,SAGlC,gBACC+C,EACC,SAAS9C,EAAW,UAAY,SAChC,MAAK,GACL,QAAS,IAAM+C,EAAWE,cAAc,CAACjD,CAAQ,EACjD,cAAY,wBAAuB,SAGrC,oBACF,IACF,CAEJ,CAEA,SAAS4C,IAAyB,CAC1B,MAAEzC,mBAAoBsC,EAAoB,EAC1C,CAAC9E,EAAOC,CAAQ,EAAIC,WAA0B,MAAM,EAG1DI,YAAU,IAAM,CACVkC,IAAoB,MACtBvC,EAASuC,CAAe,CAC1B,EACC,CAACA,CAAe,CAAC,EAEpB,MAAM+C,EAAkBA,IAAM,CACxB/C,IAAoBxC,EACtBoF,EAAWI,qBAAqB,IAAI,EAEpCJ,EAAWI,qBAAqBxF,CAAK,CAEzC,EAEA,OAEImB,EAAA,KAAAsE,WAAA,WAAC1E,MAAA2E,EAAA,CACC,MAAA1F,EACA,QAAS,CACP,CAAEA,MAAO,OAAQN,MAAO,SACxB,CAAEM,MAAO,OAAQN,MAAO,SACxB,CAAEM,MAAO,OAAQN,MAAO,SACxB,CAAEM,MAAO,YAAaN,MAAO,oBAAqB,EAEpD,cAAgBM,GAAkC,CAC5CA,IAAU,OAEVwC,IAAoB,MACtB4C,EAAWI,qBAAqBxF,CAAK,EAEvCC,EAASD,CAAK,IACd,EAEHe,EAAA,IAAAoE,EAAA,CACC,QAAS3C,IAAoB,KAAO,UAAY,SAChD,MAAK,GACL,QAAS+C,EACT,cAAY,mBAAkB,SAGhC,oBACF,CAEJ,CChFA,SAAwBI,IAAiB,CACvC,OAEIxE,EAAA,KAAAsE,WAAA,WAAA1E,EAAA,IAAC8D,GAAoB,UACpBe,GAAiB,UACjBC,GAAc,KACjB,CAEJ,CAEA,SAASD,IAAoB,CACrB,MAAEhG,OAAMC,WAAYiG,EAAqB,EAE/C,aACGtG,EACC,OAAM,gBACN,YAAY,0CACZ,KAAAI,EACA,QAAAC,EACA,cAAgBkG,GAAaX,EAAWY,UAAUD,CAAQ,EAE1D,SAAAhF,EAAA,IAACkF,GACC,aAAW,kCACX,QAAS,IAAMb,EAAWc,aAAa,CAACrG,CAAO,EAC/C,QAASA,EAAU,UAAY,SAE9BA,iBAAWsG,EAAQ,IAAIpF,EAAA,IAAAqF,EAAA,EAAkB,CAC5C,GACF,CAEJ,CAEA,SAASP,IAAiB,CAClB,MAAEjG,OAAMC,WAAYwG,EAAyB,EAE7Cd,EAAkBA,IAAM,CACxB1F,EACFuF,EAAWI,qBAAqB,IAAI,EAEpCJ,EAAWI,qBAAqB,WAAW,CAE/C,EAEA,OACGzE,MAAAvB,EAAA,CACC,MAAM,oBACN,YAAY,iDACZ,KAAAI,EACA,QAAAC,EACA,cAAgBkG,GAAaX,EAAWkB,iBAAiBP,CAAQ,EAEjE,SAAAhF,MAACkF,EACC,cAAW,sCACX,QAASV,EACT,QAAS1F,EAAU,UAAY,SAE9BA,SAAUA,EAAAkB,MAACoF,EAAQ,IAAIpF,MAAAqF,EAAA,CAAkB,EAC5C,GACF,CAEJ,+FC3DezE,UAAK4E,EAAoB,EACxC,SAASA,IAAuB,CAC9B,MAAMC,EAAcjF,OAAOkF,SAASC,SAASC,SAAS,iBAAiB,EAEvE,OACG5F,MAAA6F,EAAA,CAAa,WAAW,SACvB,SAACzF,EAAA,KAAA0F,EAAA,CAAa,UAAW5F,EAAM6F,UAAW,cAAY,yBACnD,UAACN,IAAgBzF,MAAAgG,EAAA,CAAqB,QAAoB/C,KAAY,iBAAkBnD,CAAK,EAAK,EAClG2F,GAAgBzF,MAAAiG,EAAA,CAAmB,iBAAgB,GAAC,mBAAoBC,IAA2B,EAEpGlG,EAAA,IAAC,MAAI,WAAWE,EAAMiG,cACpB,eAACC,EACC,UAAApG,EAAA,IAAC4E,GAAc,GACjB,EACF,IACF,CACF,EAEJ","names":["InputRow","props","label","placeholder","text","visible","changeHandler","children","value","setValue","useState","inputRef","useRef","cursorPositionRef","useEffect","current","document","activeElement","selectionStart","selectionEnd","handleInputChange","event","target","jsx","cx","style","active","jsxs","inputItems","Input","isPipSupported","window","PipTimerHost","lazy","__vitePreload","memo","PipRoot","Suspense","secondarySourceLabels","aux1","aux2","aux3","secondary","TimerPreview","blink","blackout","countToEnd","phase","secondarySource","showTimerMessage","timerType","useMessagePreview","data","useViewSettings","main","TimerType","None","timerPlaceholder","TimerPhase","Pending","Overtime","Clock","overrideColour","Warning","warningColor","Danger","dangerColor","normalColor","showColourOverride","contentClasses","preview","CornerWithPip","handleLinks","mainContent","secondaryContent","eventStatus","Tooltip","statusIcon","CountDown","IoArrowDown","CountUp","IoArrowUp","IoTime","IoBan","LuArrowDownToLine","TimerControlsPreview","useTimerViewControl","previewContainer","options","SecondarySourceControl","Editor.Separator","Button","setMessage","timerBlink","timerBlackout","toggleSecondary","timerSecondarySource","Fragment","Select","MessageControl","TimerMessageInput","SecondaryInput","useTimerMessageInput","newValue","timerText","IconButton","timerVisible","IoEye","IoEyeOffOutline","useSecondaryMessageInput","secondaryMessage","MessageControlExport","isExtracted","location","pathname","includes","ProtectRoute","Editor.Panel","growPanel","Editor.CornerExtract","ViewNavigationMenu","getIsNavigationLocked","contentLayout","ErrorBoundary"],"ignoreList":[],"sources":["../../src/features/control/message/InputRow.tsx","../../src/views/editor/pip-timer/pip.utils.ts","../../src/views/editor/pip-timer/PipRoot.tsx","../../src/features/control/message/TimerPreview.tsx","../../src/features/control/message/TimerViewControl.tsx","../../src/features/control/message/MessageControl.tsx","../../src/features/control/message/MessageControlExport.tsx"],"sourcesContent":["import { PropsWithChildren, useEffect, useRef, useState } from 'react';\n\nimport Input from '../../../common/components/input/input/Input';\nimport { cx } from '../../../common/utils/styleUtils';\n\nimport style from './InputRow.module.scss';\n\ninterface InputRowProps {\n label: string;\n placeholder: string;\n text: string;\n visible: boolean;\n changeHandler: (newValue: string) => void;\n}\n\nexport default function InputRow(props: PropsWithChildren<InputRowProps>) {\n const { label, placeholder, text, visible, changeHandler, children } = props;\n\n const [value, setValue] = useState(text);\n const inputRef = useRef<HTMLInputElement>(null);\n const cursorPositionRef = useRef(0);\n\n // sync cursor position with text\n useEffect(() => {\n if (inputRef.current && inputRef.current !== document.activeElement) {\n inputRef.current.selectionStart = cursorPositionRef.current;\n inputRef.current.selectionEnd = cursorPositionRef.current;\n }\n }, [text]);\n\n // synchronise external text\n useEffect(() => {\n if (inputRef.current !== document.activeElement) {\n setValue(text);\n }\n }, [text]);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n cursorPositionRef.current = event.target.selectionStart ?? 0;\n setValue(event.target.value);\n changeHandler(event.target.value);\n };\n\n return (\n <div>\n <label className={cx([style.label, visible ?? style.active])} htmlFor={label}>\n {label}\n </label>\n <div className={style.inputItems}>\n <Input id={label} ref={inputRef} value={value} onChange={handleInputChange} placeholder={placeholder} />\n {children}\n </div>\n </div>\n );\n}\n","export const isPipSupported = 'documentPictureInPicture' in window;\n","import { lazy, memo, Suspense } from 'react';\n\nimport { isPipSupported } from './pip.utils';\n\nconst PipTimerHost = lazy(() => import('./PipHost'));\n\nexport default memo(PipRoot);\nfunction PipRoot() {\n if (!isPipSupported) {\n return null;\n }\n\n return (\n <Suspense fallback={null}>\n <PipTimerHost />\n </Suspense>\n );\n}\n","import { IoArrowDown, IoArrowUp, IoBan, IoTime } from 'react-icons/io5';\nimport { LuArrowDownToLine } from 'react-icons/lu';\nimport { TimerPhase, TimerType } from 'ontime-types';\n\nimport { CornerWithPip } from '../../../common/components/editor-utils/EditorUtils';\nimport Tooltip from '../../../common/components/tooltip/Tooltip';\nimport { useMessagePreview } from '../../../common/hooks/useSocket';\nimport useViewSettings from '../../../common/hooks-query/useViewSettings';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { cx, timerPlaceholder } from '../../../common/utils/styleUtils';\nimport PipRoot from '../../../views/editor/pip-timer/PipRoot';\n\nimport style from './TimerPreview.module.scss';\n\nconst secondarySourceLabels: Record<string, string> = {\n aux1: 'Aux 1',\n aux2: 'Aux 2',\n aux3: 'Aux 3',\n secondary: 'Secondary message',\n};\n\nexport default function TimerPreview() {\n const { blink, blackout, countToEnd, phase, secondarySource, showTimerMessage, timerType } = useMessagePreview();\n const { data } = useViewSettings();\n\n const main = (() => {\n if (showTimerMessage) return 'Message';\n if (timerType === TimerType.None) return timerPlaceholder;\n if (phase === TimerPhase.Pending) return 'Standby to start';\n if (phase === TimerPhase.Overtime) return 'Timer Overtime';\n if (timerType === TimerType.Clock) return 'Clock';\n if (countToEnd) return 'Count to End';\n return 'Timer';\n })();\n\n const secondary = (() => {\n // message is a fullscreen overlay or secondary is not active\n if (showTimerMessage || !secondarySource) return null;\n\n // we need to check aux first since it takes priority\n return secondarySourceLabels[secondarySource];\n })();\n\n const overrideColour = (() => {\n // override fallback colours from starter project\n if (phase === TimerPhase.Warning) return data.warningColor ?? '#ffa528';\n if (phase === TimerPhase.Danger) return data.dangerColor ?? '#ff7300';\n return data.normalColor ?? '#FFFC';\n })();\n\n const showColourOverride = main == 'Timer';\n const contentClasses = cx([blink && style.blink, blackout && style.blackout]);\n\n return (\n <div className={style.preview}>\n <CornerWithPip onExtractClick={(event) => handleLinks('timer', event)} pipElement={<PipRoot />} />\n <div className={contentClasses}>\n <div\n className={style.mainContent}\n data-phase={showColourOverride && phase}\n style={showColourOverride ? { '--override-colour': overrideColour } : {}}\n >\n {main}\n </div>\n {secondary !== null && <div className={style.secondaryContent}>{secondary}</div>}\n </div>\n <div className={style.eventStatus}>\n <Tooltip\n text='Time type: Count down'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountDown}\n >\n <IoArrowDown />\n </Tooltip>\n <Tooltip\n text='Time type: Count up'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountUp}\n >\n <IoArrowUp />\n </Tooltip>\n <Tooltip\n text='Time type: Clock'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.Clock}\n >\n <IoTime />\n </Tooltip>\n <Tooltip\n text='Time type: None'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.None}\n >\n <IoBan />\n </Tooltip>\n <Tooltip\n text={countToEnd ? 'Count to end' : 'Count duration'}\n render={<span />}\n className={style.statusIcon}\n data-active={countToEnd}\n >\n <LuArrowDownToLine />\n </Tooltip>\n </div>\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport { SecondarySource } from 'ontime-types';\n\nimport Button from '../../../common/components/buttons/Button';\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport Select from '../../../common/components/select/Select';\nimport { setMessage, useTimerViewControl } from '../../../common/hooks/useSocket';\n\nimport TimerPreview from './TimerPreview';\n\nimport style from './TimerViewControl.module.scss';\n\nexport default function TimerControlsPreview() {\n const { blackout, blink } = useTimerViewControl();\n\n return (\n <div className={style.previewContainer}>\n <TimerPreview />\n <div className={style.options}>\n <SecondarySourceControl />\n\n <Editor.Separator orientation='horizontal' />\n\n <Button\n variant={blink ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlink(!blink)}\n data-testid='toggle timer blink'\n >\n Blink\n </Button>\n <Button\n variant={blackout ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlackout(!blackout)}\n data-testid='toggle timer blackout'\n >\n Blackout screen\n </Button>\n </div>\n </div>\n );\n}\n\nfunction SecondarySourceControl() {\n const { secondarySource } = useTimerViewControl();\n const [value, setValue] = useState<SecondarySource>('aux1');\n\n // sync secondary source with external changes\n useEffect(() => {\n if (secondarySource !== null) {\n setValue(secondarySource);\n }\n }, [secondarySource]);\n\n const toggleSecondary = () => {\n if (secondarySource === value) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource(value);\n }\n };\n\n return (\n <>\n <Select\n value={value}\n options={[\n { value: 'aux1', label: 'Aux 1' },\n { value: 'aux2', label: 'Aux 2' },\n { value: 'aux3', label: 'Aux 3' },\n { value: 'secondary', label: 'Secondary message' },\n ]}\n onValueChange={(value: SecondarySource | null) => {\n if (value === null) return;\n // we can only update the remote if it is enabled\n if (secondarySource !== null) {\n setMessage.timerSecondarySource(value);\n }\n setValue(value);\n }}\n />\n <Button\n variant={secondarySource !== null ? 'primary' : 'subtle'}\n fluid\n onClick={toggleSecondary}\n data-testid='toggle secondary'\n >\n Show secondary\n </Button>\n </>\n );\n}\n","import { IoEye, IoEyeOffOutline } from 'react-icons/io5';\n\nimport IconButton from '../../../common/components/buttons/IconButton';\nimport {\n setMessage,\n useExternalMessageInput as useSecondaryMessageInput,\n useTimerMessageInput,\n} from '../../../common/hooks/useSocket';\n\nimport InputRow from './InputRow';\nimport TimerControlsPreview from './TimerViewControl';\n\nexport default function MessageControl() {\n return (\n <>\n <TimerControlsPreview />\n <TimerMessageInput />\n <SecondaryInput />\n </>\n );\n}\n\nfunction TimerMessageInput() {\n const { text, visible } = useTimerMessageInput();\n\n return (\n <InputRow\n label='Timer Message'\n placeholder='Message shown fullscreen in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.timerText(newValue)}\n >\n <IconButton\n aria-label='Toggle timer message visibility'\n onClick={() => setMessage.timerVisible(!visible)}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n\nfunction SecondaryInput() {\n const { text, visible } = useSecondaryMessageInput();\n\n const toggleSecondary = () => {\n if (visible) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource('secondary');\n }\n };\n\n return (\n <InputRow\n label='Secondary Message'\n placeholder='Message shown as secondary text in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.secondaryMessage(newValue)}\n >\n <IconButton\n aria-label='Toggle secondary message visibility'\n onClick={toggleSecondary}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n","import { memo } from 'react';\n\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport ErrorBoundary from '../../../common/components/error-boundary/ErrorBoundary';\nimport ViewNavigationMenu from '../../../common/components/navigation-menu/ViewNavigationMenu';\nimport ProtectRoute from '../../../common/components/protect-route/ProtectRoute';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { getIsNavigationLocked } from '../../../externals';\n\nimport MessageControl from './MessageControl';\n\nimport style from './MessageControlExport.module.scss';\n\nexport default memo(MessageControlExport);\nfunction MessageControlExport() {\n const isExtracted = window.location.pathname.includes('/messagecontrol');\n\n return (\n <ProtectRoute permission='editor'>\n <Editor.Panel className={style.growPanel} data-testid='panel-messages-control'>\n {!isExtracted && <Editor.CornerExtract onClick={(event) => handleLinks('messagecontrol', event)} />}\n {isExtracted && <ViewNavigationMenu suppressSettings isNavigationLocked={getIsNavigationLocked()} />}\n\n <div className={style.contentLayout}>\n <ErrorBoundary>\n <MessageControl />\n </ErrorBoundary>\n </div>\n </Editor.Panel>\n </ProtectRoute>\n );\n}\n"],"file":"assets/MessageControlExport-BgT9JaXk.js"}
@@ -1,2 +1,2 @@
1
- import{j as r}from"./vendor-CKDP5hij.js";import{g as a}from"./getProgress-B9UANc25.js";import{e as l}from"./index-2lQ-45a9.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new e.Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="b6a510aa-980d-46cf-8eca-62faf0652c7b",e._sentryDebugIdIdentifier="sentry-dbid-b6a510aa-980d-46cf-8eca-62faf0652c7b")}catch{}})();function j(e){const{now:s,complete:i,normalColor:g,warning:o,warningColor:c,danger:n,dangerColor:m,hidden:b,hideOvertime:u,ignoreCssOverride:f,className:p=""}=e,_=100-a(s,i),t=n?100-a(n,i):0,h=o?100-t-a(o,i):0,d=s!==null&&s<0&&!u;return r.jsx("div",{className:l(["multiprogress-bar",b&&"multiprogress-bar--hidden",f&&"multiprogress-bar--ignore-css-override",p]),children:s!==null&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"multiprogress-bar__bg",children:[r.jsx("div",{className:"multiprogress-bar__bg-normal",style:{backgroundColor:g}}),r.jsx("div",{className:"multiprogress-bar__bg-warning",style:{width:`${h}%`,backgroundColor:c}}),r.jsx("div",{className:l(["multiprogress-bar__bg-danger",d&&"multiprogress-bar__bg-danger--overtime"]),style:{width:`${t}%`,backgroundColor:d?void 0:m}})]}),r.jsx("div",{className:"multiprogress-bar__indicator",children:r.jsx("div",{className:"multiprogress-bar__indicator-bar",style:{width:`${_}%`}})})]})})}export{j as M};
2
- //# sourceMappingURL=MultiPartProgressBar-Fp-sTN2u.js.map
1
+ import{j as r}from"./vendor-BKUJ0_Du.js";import{g as a}from"./getProgress-ZUTmCn_v.js";import{e as l}from"./index-Dm-4OTmY.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new e.Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="b6a510aa-980d-46cf-8eca-62faf0652c7b",e._sentryDebugIdIdentifier="sentry-dbid-b6a510aa-980d-46cf-8eca-62faf0652c7b")}catch{}})();function j(e){const{now:s,complete:i,normalColor:g,warning:o,warningColor:c,danger:n,dangerColor:m,hidden:b,hideOvertime:u,ignoreCssOverride:f,className:p=""}=e,_=100-a(s,i),t=n?100-a(n,i):0,h=o?100-t-a(o,i):0,d=s!==null&&s<0&&!u;return r.jsx("div",{className:l(["multiprogress-bar",b&&"multiprogress-bar--hidden",f&&"multiprogress-bar--ignore-css-override",p]),children:s!==null&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"multiprogress-bar__bg",children:[r.jsx("div",{className:"multiprogress-bar__bg-normal",style:{backgroundColor:g}}),r.jsx("div",{className:"multiprogress-bar__bg-warning",style:{width:`${h}%`,backgroundColor:c}}),r.jsx("div",{className:l(["multiprogress-bar__bg-danger",d&&"multiprogress-bar__bg-danger--overtime"]),style:{width:`${t}%`,backgroundColor:d?void 0:m}})]}),r.jsx("div",{className:"multiprogress-bar__indicator",children:r.jsx("div",{className:"multiprogress-bar__indicator-bar",style:{width:`${_}%`}})})]})})}export{j as M};
2
+ //# sourceMappingURL=MultiPartProgressBar-W2a-JWPY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiPartProgressBar-Fp-sTN2u.js","sources":["../../src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx"],"sourcesContent":["import { MaybeNumber } from 'ontime-types';\n\nimport { getProgress } from '../../utils/getProgress';\nimport { cx } from '../../utils/styleUtils';\n\nimport './MultiPartProgressBar.scss';\n\ninterface MultiPartProgressBar {\n now: MaybeNumber;\n complete: MaybeNumber;\n normalColor: string;\n warning?: MaybeNumber;\n warningColor: string;\n danger?: MaybeNumber;\n dangerColor: string;\n hidden?: boolean;\n hideOvertime?: boolean;\n ignoreCssOverride?: boolean;\n className?: string;\n}\n\nexport default function MultiPartProgressBar(props: MultiPartProgressBar) {\n const {\n now,\n complete,\n normalColor,\n warning,\n warningColor,\n danger,\n dangerColor,\n hidden,\n hideOvertime,\n ignoreCssOverride,\n className = '',\n } = props;\n\n const percentRemaining = 100 - getProgress(now, complete);\n const dangerWidth = danger ? 100 - getProgress(danger, complete) : 0;\n const warningWidth = warning ? 100 - dangerWidth - getProgress(warning, complete) : 0;\n const isOvertime = now !== null && now < 0;\n const showOvertime = isOvertime && !hideOvertime;\n\n return (\n <div\n className={cx([\n 'multiprogress-bar',\n hidden && 'multiprogress-bar--hidden',\n ignoreCssOverride && 'multiprogress-bar--ignore-css-override',\n className,\n ])}\n >\n {now !== null && (\n <>\n <div className='multiprogress-bar__bg'>\n <div className='multiprogress-bar__bg-normal' style={{ backgroundColor: normalColor }} />\n <div\n className='multiprogress-bar__bg-warning'\n style={{ width: `${warningWidth}%`, backgroundColor: warningColor }}\n />\n <div\n className={cx(['multiprogress-bar__bg-danger', showOvertime && 'multiprogress-bar__bg-danger--overtime'])}\n style={{ width: `${dangerWidth}%`, backgroundColor: showOvertime ? undefined : dangerColor }}\n />\n </div>\n <div className='multiprogress-bar__indicator'>\n <div className='multiprogress-bar__indicator-bar' style={{ width: `${percentRemaining}%` }} />\n </div>\n </>\n )}\n </div>\n );\n}\n"],"names":["MultiPartProgressBar","props","now","complete","normalColor","warning","warningColor","danger","dangerColor","hidden","hideOvertime","ignoreCssOverride","className","percentRemaining","getProgress","dangerWidth","warningWidth","showOvertime","jsx","cx","jsxs","Fragment","backgroundColor","width","undefined"],"mappings":"ydAqBA,SAAwBA,EAAqBC,EAA6B,CAClE,KAAA,CACJC,IAAAA,EACAC,SAAAA,EACAC,YAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,OAAAA,EACAC,YAAAA,EACAC,OAAAA,EACAC,aAAAA,EACAC,kBAAAA,EACAC,UAAAA,EAAY,EAAA,EACVX,EAEEY,EAAmB,IAAMC,EAAYZ,EAAKC,CAAQ,EAClDY,EAAcR,EAAS,IAAMO,EAAYP,EAAQJ,CAAQ,EAAI,EAC7Da,EAAeX,EAAU,IAAMU,EAAcD,EAAYT,EAASF,CAAQ,EAAI,EAE9Ec,EADaf,IAAQ,MAAQA,EAAM,GACN,CAACQ,EAEpC,OACGQ,EAAA,IAAA,MAAA,CACC,UAAWC,EAAG,CACZ,oBACAV,GAAU,4BACVE,GAAqB,yCACrBC,CAAS,CACV,EAEAV,SAAAA,IAAQ,MAELkB,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACD,EAAAA,KAAA,MAAA,CAAI,UAAU,wBACb,SAAA,CAACF,EAAAA,IAAA,MAAA,CAAI,UAAU,+BAA+B,MAAO,CAAEI,gBAAiBlB,CAAAA,EAAc,EACrFc,EAAAA,IAAA,MAAA,CACC,UAAU,gCACV,MAAO,CAAEK,MAAO,GAAGP,CAAY,IAAKM,gBAAiBhB,CAAAA,EAAe,EAEtEY,MAAC,MACC,CAAA,UAAWC,EAAG,CAAC,+BAAgCF,GAAgB,wCAAwC,CAAC,EACxG,MAAO,CAAEM,MAAO,GAAGR,CAAW,IAAKO,gBAAiBL,EAAeO,OAAYhB,CAAAA,CAAc,CAAA,CAAA,EAEjG,EACAU,EAAAA,IAAC,OAAI,UAAU,+BACb,eAAC,MAAI,CAAA,UAAU,mCAAmC,MAAO,CAAEK,MAAO,GAAGV,CAAgB,KAAM,CAC7F,CAAA,CAAA,CAAA,CACF,CAEJ,CAAA,CAEJ"}
1
+ {"version":3,"file":"MultiPartProgressBar-W2a-JWPY.js","sources":["../../src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx"],"sourcesContent":["import { MaybeNumber } from 'ontime-types';\n\nimport { getProgress } from '../../utils/getProgress';\nimport { cx } from '../../utils/styleUtils';\n\nimport './MultiPartProgressBar.scss';\n\ninterface MultiPartProgressBar {\n now: MaybeNumber;\n complete: MaybeNumber;\n normalColor: string;\n warning?: MaybeNumber;\n warningColor: string;\n danger?: MaybeNumber;\n dangerColor: string;\n hidden?: boolean;\n hideOvertime?: boolean;\n ignoreCssOverride?: boolean;\n className?: string;\n}\n\nexport default function MultiPartProgressBar(props: MultiPartProgressBar) {\n const {\n now,\n complete,\n normalColor,\n warning,\n warningColor,\n danger,\n dangerColor,\n hidden,\n hideOvertime,\n ignoreCssOverride,\n className = '',\n } = props;\n\n const percentRemaining = 100 - getProgress(now, complete);\n const dangerWidth = danger ? 100 - getProgress(danger, complete) : 0;\n const warningWidth = warning ? 100 - dangerWidth - getProgress(warning, complete) : 0;\n const isOvertime = now !== null && now < 0;\n const showOvertime = isOvertime && !hideOvertime;\n\n return (\n <div\n className={cx([\n 'multiprogress-bar',\n hidden && 'multiprogress-bar--hidden',\n ignoreCssOverride && 'multiprogress-bar--ignore-css-override',\n className,\n ])}\n >\n {now !== null && (\n <>\n <div className='multiprogress-bar__bg'>\n <div className='multiprogress-bar__bg-normal' style={{ backgroundColor: normalColor }} />\n <div\n className='multiprogress-bar__bg-warning'\n style={{ width: `${warningWidth}%`, backgroundColor: warningColor }}\n />\n <div\n className={cx(['multiprogress-bar__bg-danger', showOvertime && 'multiprogress-bar__bg-danger--overtime'])}\n style={{ width: `${dangerWidth}%`, backgroundColor: showOvertime ? undefined : dangerColor }}\n />\n </div>\n <div className='multiprogress-bar__indicator'>\n <div className='multiprogress-bar__indicator-bar' style={{ width: `${percentRemaining}%` }} />\n </div>\n </>\n )}\n </div>\n );\n}\n"],"names":["MultiPartProgressBar","props","now","complete","normalColor","warning","warningColor","danger","dangerColor","hidden","hideOvertime","ignoreCssOverride","className","percentRemaining","getProgress","dangerWidth","warningWidth","showOvertime","jsx","cx","jsxs","Fragment","backgroundColor","width","undefined"],"mappings":"ydAqBA,SAAwBA,EAAqBC,EAA6B,CAClE,KAAA,CACJC,IAAAA,EACAC,SAAAA,EACAC,YAAAA,EACAC,QAAAA,EACAC,aAAAA,EACAC,OAAAA,EACAC,YAAAA,EACAC,OAAAA,EACAC,aAAAA,EACAC,kBAAAA,EACAC,UAAAA,EAAY,EAAA,EACVX,EAEEY,EAAmB,IAAMC,EAAYZ,EAAKC,CAAQ,EAClDY,EAAcR,EAAS,IAAMO,EAAYP,EAAQJ,CAAQ,EAAI,EAC7Da,EAAeX,EAAU,IAAMU,EAAcD,EAAYT,EAASF,CAAQ,EAAI,EAE9Ec,EADaf,IAAQ,MAAQA,EAAM,GACN,CAACQ,EAEpC,OACGQ,EAAA,IAAA,MAAA,CACC,UAAWC,EAAG,CACZ,oBACAV,GAAU,4BACVE,GAAqB,yCACrBC,CAAS,CACV,EAEAV,SAAAA,IAAQ,MAELkB,EAAA,KAAAC,WAAA,CAAA,SAAA,CAACD,EAAAA,KAAA,MAAA,CAAI,UAAU,wBACb,SAAA,CAACF,EAAAA,IAAA,MAAA,CAAI,UAAU,+BAA+B,MAAO,CAAEI,gBAAiBlB,CAAAA,EAAc,EACrFc,EAAAA,IAAA,MAAA,CACC,UAAU,gCACV,MAAO,CAAEK,MAAO,GAAGP,CAAY,IAAKM,gBAAiBhB,CAAAA,EAAe,EAEtEY,MAAC,MACC,CAAA,UAAWC,EAAG,CAAC,+BAAgCF,GAAgB,wCAAwC,CAAC,EACxG,MAAO,CAAEM,MAAO,GAAGR,CAAW,IAAKO,gBAAiBL,EAAeO,OAAYhB,CAAAA,CAAc,CAAA,CAAA,EAEjG,EACAU,EAAAA,IAAC,OAAI,UAAU,+BACb,eAAC,MAAI,CAAA,UAAU,mCAAmC,MAAO,CAAEK,MAAO,GAAGV,CAAgB,KAAM,CAC7F,CAAA,CAAA,CAAA,CACF,CAEJ,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{h as c,j as e,D as ae,q as le,t as ce,v as ue,l as de}from"./vendor-CKDP5hij.js";import{P as me}from"./ProtectRoute-CCHzyy0I.js";import{ak as pe,B as z,t as te,r as fe,bg as he,aD as ge,e as T,f as _e,b7 as ve,k as be,M as ye,b8 as xe,bb as je,a as Se,P as Ee,b as we,L as Oe,o as Ce,g as Te,O as Pe,bh as Ne}from"./index-2lQ-45a9.js";import{t as Fe,i as q,j as De}from"./useRundown-D6vokFHi.js";import{E as Le}from"./EmptyPage-DmpOAg7R.js";import{m as Me,b as ke,O as $,V as Re}from"./ViewParamsEditor-Cxngd15h.js";import{u as Ie,F as Ue}from"./FollowButton-CAUWz5Ma.js";import{u as Be}from"./useWindowTitle-bg-fLPOk.js";import{T as Ae}from"./editorSettings-D4jfu68W.js";import{u as We,D as Ve}from"./DelayIndicator-DUbpd6DG.js";import{f as $e,T as Ge,C as He}from"./TimeElements-pDYJeFbV.js";import{S as Ze}from"./SuperscriptPeriod-CBiZU34J.js";import{M as ze}from"./MultiPartProgressBar-Fp-sTN2u.js";import{g as qe,a as Qe}from"./viewLoader.utils-Bn5zu5sz.js";import{i as G,b as Q}from"./viewUtils-DQFwr7hm.js";import{u as Je}from"./useCustomFields-zr9SUl5o.js";import"./SwatchPicker-Dyxkxf3_.js";import"./Select-DQwYPDyI.js";import"./validateEvent-BUgLWn7x.js";import"./rundownUtils-BTQ3EeqN.js";import"./parseUserTime-WkVNjkkE.js";import"./Tooltip-DXph8P8p.js";import"./offset-DAyBfv5b.js";import"./playbackstate-znZk3SSJ.js";/* empty css */import"./getProgress-B9UANc25.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new t.Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="b951b061-89ec-4279-a14f-f9be79b19f0c",t._sentryDebugIdIdentifier="sentry-dbid-b951b061-89ec-4279-a14f-f9be79b19f0c")}catch{}})();const Ke="_editModal_1k6b9_17",Xe="_title_1k6b9_31",Ye="_body_1k6b9_39",et="_label_1k6b9_48",tt="_footer_1k6b9_54",C={editModal:Ke,title:Xe,body:Ye,label:et,footer:tt};function st(t){const{event:s,onClose:o}=t,{updateEntry:r}=We(),[n,i]=c.useState(!1),d=c.useRef(new Array),g=async()=>{if(!d.current)return;i(!0);const a={id:s.id};d.current.forEach(l=>{l.dataset.field&&l.defaultValue!=l.value&&(a.custom?a.custom[l.dataset.field]=l.value:Object.assign(a,{custom:{[l.dataset.field]:l.value}}))}),a.custom&&await r(a),i(!1),o()};return e.jsx(ae,{open:!0,onOpenChange:a=>{a||o()},children:e.jsx(le,{children:e.jsxs(ce,{className:C.editModal,children:[e.jsxs("div",{className:C.title,children:[`Editing fields in cue ${s.cue}`,e.jsx(pe,{variant:"subtle-white",onClick:o,disabled:n,children:e.jsx(ue,{})})]}),e.jsx("div",{className:C.body,children:s.subscriptions.map(a=>e.jsxs(c.Fragment,{children:[e.jsx("label",{htmlFor:a.id,className:C.label,style:{"--user-bg":a.colour},children:a.label}),e.jsx(Ae,{name:a.id,ref:l=>{l&&d.current.push(l)},placeholder:`Add value for ${a.label} field`,defaultValue:a.value,"data-field":a.id,disabled:n,rows:5})]},a.id))}),e.jsxs("div",{className:C.footer,children:[e.jsx(z,{variant:"subtle",size:"large",onClick:o,disabled:n,children:"Cancel"}),e.jsx(z,{variant:"primary",size:"large",onClick:g,disabled:n,children:"Save"})]})]})})})}function ot(t,s={}){const{threshold:o=700,onStart:r,onFinish:n,onCancel:i}=s,d=c.useRef(!1),g=c.useRef(!1),a=c.useRef(-1);return c.useEffect(()=>()=>window.clearTimeout(a.current),[]),c.useMemo(()=>{if(typeof t!="function")return{};const l=m=>{!K(m)&&!J(m)||(r&&r(m),g.current=!0,a.current=window.setTimeout(()=>{t(m),d.current=!0},o))},h=m=>{!K(m)&&!J(m)||(d.current?n==null||n(m):g.current&&(i==null||i(m)),d.current=!1,g.current=!1,a.current&&window.clearTimeout(a.current))};return{onMouseDown:l,onMouseUp:h,onMouseLeave:h,onTouchStart:l,onTouchEnd:h,onTouchMove:te(h,150)}},[t,o,i,n,r])}function J(t){return window.TouchEvent?t.nativeEvent instanceof TouchEvent:"touches"in t.nativeEvent}function K(t){return t.nativeEvent instanceof MouseEvent}function nt(t){const{value:s,hideSeconds:o,hideLeadingZero:r,className:n}=t;let i=$e(s,o||r?2:3);return r&&(i=fe(i)),o&&(i=he(i)),e.jsx("div",{className:n,children:i})}const rt="_event_9py1c_21",it="_running_9py1c_38",at="_past_9py1c_42",lt="_binder_9py1c_47",ct="_cue_9py1c_57",ut="_mainField_9py1c_67",dt="_secondaryField_9py1c_76",mt="_plannedStart_9py1c_83",pt="_timeUntil_9py1c_84",ft="_runningTime_9py1c_85",ht="_fields_9py1c_114",gt="_field_9py1c_114",_t="_noColour_9py1c_123",vt="_value_9py1c_129",bt="_fieldsWithContent_9py1c_136",p={event:rt,running:it,past:at,binder:lt,cue:ct,mainField:ut,secondaryField:dt,plannedStart:mt,timeUntil:pt,runningTime:ft,fields:ht,field:gt,noColour:_t,value:vt,fieldsWithContent:bt},X=c.memo(yt);function yt({id:t,colour:s,cue:o,main:r,secondary:n,timeStart:i,duration:d,delay:g,dayOffset:a,isLinkedToLoaded:l,isSelected:h,isPast:m,selectedRef:N,showStart:F,subscribed:x,totalGap:j,onLongPress:D}){const v=f=>{f&&f.cancelable&&f.preventDefault(),x&&D({id:t,cue:o,subscriptions:x})},b=ot(v),R=s&&ge(s),E=T([p.event,h&&p.running,m&&p.past]),I=x.some(f=>f.value),U=x.length?Math.min(x.length,4):0,B=U>0?{gridTemplateColumns:`repeat(${U}, minmax(12rem, 1fr))`}:void 0;return e.jsxs("div",{className:E,"data-testid":o,ref:N,onContextMenu:v,...b,children:[e.jsx("div",{className:p.binder,style:{...R},children:e.jsx("span",{className:p.cue,children:o})}),e.jsxs("span",{className:p.mainField,children:[F&&e.jsx(Ze,{className:p.plannedStart,time:_e(i)}),r]}),e.jsx("span",{className:p.secondaryField,children:n}),e.jsx(xt,{timeStart:i,isPast:m,isSelected:h,delay:g,dayOffset:a,totalGap:j,isLinkedToLoaded:l}),e.jsxs("span",{className:p.runningTime,children:[e.jsx(Ve,{delayValue:g}),e.jsx(nt,{className:T([h&&p.muted]),value:d,hideLeadingZero:!0})]}),e.jsx("div",{className:T([p.fields,I&&p.fieldsWithContent]),style:B,children:x.map(f=>f.value?e.jsxs("div",{children:[e.jsx("span",{className:T([p.field,!f.colour&&p.noColour]),style:{backgroundColor:f.colour},children:f.label}),e.jsx("span",{className:p.value,style:{color:f.colour},children:f.value})]},f.id):e.jsx("div",{},f.id))})]})}function xt({timeStart:t,isPast:s,isSelected:o,delay:r,dayOffset:n,totalGap:i,isLinkedToLoaded:d}){return s?e.jsx("span",{className:p.timeUntil,children:"DONE"}):o?e.jsx("span",{className:p.timeUntil,children:"LIVE"}):e.jsx(jt,{timeStart:t,delay:r,dayOffset:n,totalGap:i,isLinkedToLoaded:d})}function jt({timeStart:t,delay:s,dayOffset:o,totalGap:r,isLinkedToLoaded:n}){const i=ve({timeStart:t,delay:s,dayOffset:o},{totalGap:r,isLinkedToLoaded:n}),g=i<xe?"DUE":`${be(Math.abs(i),i>2*ye)}`;return e.jsx("span",{className:p.timeUntil,"data-testid":"time-until",children:g})}const St="_group_c6uj3_17",Et={group:St},wt=c.memo(Ot);function Ot({title:t}){return e.jsx("div",{className:Et.group,children:t})}const Ct="_statusBar_1va40_17",Tt="_timers_1va40_25",Pt="_runningTimer_1va40_33",Nt="_timeNow_1va40_42",Ft="_progressOverride_1va40_51",P={statusBar:Ct,timers:Tt,runningTimer:Pt,timeNow:Nt,progressOverride:Ft};function Dt({viewSettings:t}){const{current:s,duration:o,timeWarning:r,timeDanger:n}=je();return e.jsx(ze,{now:s,complete:o,normalColor:t.normalColor,warning:r,warningColor:t.warningColor,danger:n,dangerColor:t.dangerColor,className:P.progressOverride,ignoreCssOverride:!0})}function Lt(){return e.jsxs("div",{className:P.timers,children:[e.jsx(Ge,{className:P.runningTimer}),e.jsx(He,{className:P.timeNow,shouldFormat:!0})]})}function Mt(){const{data:t}=Se();return e.jsxs("div",{className:P.statusBar,children:[e.jsx(Lt,{}),t&&e.jsx(Dt,{viewSettings:t})]})}const kt=(t,s)=>{const o=Me(t,[{value:"none",label:"None"},{value:"title",label:"Title"},{value:"note",label:"Note"}]),r=ke(t);return[{title:$.ClockOptions,collapsible:!0,options:[qe(s)]},{title:$.DataSources,collapsible:!0,options:[{id:"main",title:"Main data field",description:"Field to be shown in the first line of text",type:"option",values:o,defaultValue:"title"},{id:"secondary-src",title:"Secondary data field",description:"Field to be shown in the second line of text",type:"option",values:o,defaultValue:"none"},{id:"subscribe",title:"Highlight Fields",description:"Choose custom fields to highlight",type:"multi-option",values:r},{id:"shouldEdit",title:"Edit custom field",description:"Allows editing an highlighted custom field by long pressing",type:"boolean",defaultValue:!1}]},{title:$.ElementVisibility,collapsible:!0,options:[{id:"hidePast",title:"Hide Past Events",description:"Whether to hide events that have passed",type:"boolean",defaultValue:!1},{id:"showStart",title:"Show planned start",description:"Whether to prepend the planned start to the items",type:"boolean",defaultValue:!1}]}]};function Rt(t,s){const o=n=>(s==null?void 0:s.get(n))??t.get(n),r=n=>s!=null&&s.has(n)?s.getAll(n):t.getAll(n);return{mainSource:o("main"),secondarySource:o("secondary-src"),subscribe:r("subscribe"),shouldEdit:G(o("shouldEdit")),hidePast:G(o("hidePast")),showStart:G(o("showStart"))}}function It(){const[t]=de(),s=c.use(Ee);return c.useMemo(()=>{const r=s?new URLSearchParams(s.search):void 0;return Rt(t,r)},[s,t])}function Y(t,s,o,r,n){const i=s?Q(t,s)??"":t.title,d=Q(t,o)??"",a=r.filter(l=>Object.hasOwn(n,l)).reduce((l,h)=>{const m=n[h];return m&&l.push({id:h,label:m.label,colour:m.colour,value:t.custom[h]}),l},[]);return{mainField:i,secondaryField:d,subscribedData:a}}function Ut(){const{data:t,rundownMetadata:s,status:o}=Fe(),{data:r,status:n}=Je(),{data:i,status:d}=we();return{data:{rundown:t,rundownMetadata:s,customFields:r,settings:i},status:Qe([o,n,d])}}const Bt="_operatorContainer_1o5o0_17",At="_operatorEvents_1o5o0_24",Wt="_editPrompt_1o5o0_35",Vt="_show_1o5o0_49",k={operatorContainer:Bt,operatorEvents:At,editPrompt:Wt,show:Vt},ee=50;function $t(){const{data:t,status:s}=Ut();return Be("Operator"),s==="pending"?e.jsx(Oe,{}):s==="error"?e.jsx(Le,{text:"There was an error fetching data, please refresh the page."}):e.jsx(Gt,{...t})}function Gt({rundown:t,rundownMetadata:s,customFields:o,settings:r}){const n=Ce(),{subscribe:i,mainSource:d,secondarySource:g,shouldEdit:a,hidePast:l,showStart:h}=It(),[m,N]=c.useState(!1),[F,x]=c.useState(null),[j,D]=c.useState(!1),v=c.useRef(null),b=c.useRef(null),R=Ie({followRef:v,scrollRef:b,doFollow:!j,topOffset:ee,followTrigger:n}),E=c.useRef(null);c.useEffect(()=>{var y;n||j||(y=b.current)==null||y.scrollTo(0,0)},[n,j,b]);const I=()=>{n&&R(),D(!1)},B=te(()=>{if(v!=null&&v.current&&(b!=null&&b.current)){const y=v.current.getBoundingClientRect(),u=b.current.getBoundingClientRect();if(y&&u){const w=y.top-u.top,S=w<-8||w>ee;D(S)}}},1e3),f=()=>{E.current&&clearTimeout(E.current),E.current=setTimeout(()=>{N(!1)},700),N(!0),B()},H=c.useCallback(y=>{x({...y})},[]),Z=Te(r==null?void 0:r.timeFormat),se=c.useMemo(()=>kt(o,Z),[o,Z]),A=a&&i.length;return e.jsxs("div",{className:k.operatorContainer,"data-testid":"operator-view",children:[e.jsx(Re,{target:Pe.Operator,viewOptions:se}),F&&e.jsx(st,{event:F,onClose:()=>x(null)}),e.jsx(Mt,{}),A&&e.jsx("div",{className:T([k.editPrompt,m&&k.show]),children:Ne?"Press and hold to edit user field":"Right click to edit user field"}),e.jsx("div",{className:k.operatorEvents,onWheel:f,onTouchMove:f,ref:b,children:t.order.map(y=>{var w;const u=t.entries[y];if(q(u)){const{isPast:S,isLinkedToLoaded:W,isLoaded:O,totalGap:_}=s[y];if(l&&S||u.skip)return null;const{mainField:L,secondaryField:M,subscribedData:V}=Y(u,d,g,i,o);return e.jsx(X,{id:u.id,colour:u.colour,cue:u.cue,main:L,secondary:M,timeStart:u.timeStart,duration:u.duration,delay:u.delay,dayOffset:u.dayOffset,isLinkedToLoaded:W,isSelected:O,isPast:S,selectedRef:O?v:void 0,showStart:h,subscribed:V,totalGap:_,onLongPress:A?H:()=>{}},u.id)}if(De(u)){const{isPast:S}=s[u.id],W=n?((w=s[n])==null?void 0:w.groupId)===u.id:!1;return l&&S&&!W?null:e.jsxs(c.Fragment,{children:[e.jsx(wt,{title:u.title},u.id),u.entries.map(O=>{const _=t.entries[O];if(!q(_))return null;const{isPast:L,isLoaded:M,isLinkedToLoaded:V,totalGap:oe}=s[O];if(l&&L||_.skip)return null;const{mainField:ne,secondaryField:re,subscribedData:ie}=Y(_,d,g,i,o);return e.jsx(X,{id:_.id,colour:_.colour,cue:_.cue,main:ne,secondary:re,timeStart:_.timeStart,duration:_.duration,delay:_.delay,dayOffset:_.dayOffset,isLinkedToLoaded:V,isSelected:M,isPast:L,selectedRef:M?v:void 0,showStart:h,subscribed:ie,totalGap:oe,onLongPress:A?H:()=>{}},_.id)})]},u.id)}return null})}),e.jsx(Ue,{isVisible:j,onClickHandler:I})]})}function _s(){return e.jsx(me,{permission:"operator",children:e.jsx($t,{})})}export{_s as default};
2
- //# sourceMappingURL=OperatorExport-CE4ajLPS.js.map
1
+ import{h as c,j as e,D as ae,q as le,t as ce,v as ue,l as de}from"./vendor-BKUJ0_Du.js";import{P as me}from"./ProtectRoute-Bxq6q7ba.js";import{ak as pe,B as z,t as te,r as fe,bg as he,aD as ge,e as T,f as _e,b7 as ve,k as be,M as ye,b8 as xe,bb as je,a as Se,P as Ee,b as we,L as Oe,o as Ce,g as Te,O as Pe,bh as Ne}from"./index-Dm-4OTmY.js";import{t as Fe,i as q,j as De}from"./useRundown-DAo6huE4.js";import{E as Le}from"./EmptyPage-CYVrjOvI.js";import{m as Me,b as ke,O as $,V as Re}from"./ViewParamsEditor-BX2RM8sx.js";import{u as Ie,F as Ue}from"./FollowButton-DcSbb4R_.js";import{u as Be}from"./useWindowTitle-DM8dIp8L.js";import{T as Ae}from"./editorSettings-_x6YKRfR.js";import{u as We,D as Ve}from"./DelayIndicator-DKS6mZdB.js";import{f as $e,T as Ge,C as He}from"./TimeElements-CYIgGk0T.js";import{S as Ze}from"./SuperscriptPeriod-EEedc9rG.js";import{M as ze}from"./MultiPartProgressBar-W2a-JWPY.js";import{g as qe,a as Qe}from"./viewLoader.utils-4lL4PiNI.js";import{i as G,b as Q}from"./viewUtils-29a3Mmiu.js";import{u as Je}from"./useCustomFields-BBE4LBBr.js";import"./SwatchPicker-Ckpchvjo.js";import"./Select-BnGTAeXJ.js";import"./validateEvent-GnPt-e9-.js";import"./rundownUtils-CXZRD6yP.js";import"./parseUserTime-sZbEBi61.js";import"./Tooltip-DZJ7u9gm.js";import"./offset-VthsmtrO.js";import"./playbackstate-Dl_ZJABT.js";/* empty css */import"./getProgress-ZUTmCn_v.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new t.Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="b951b061-89ec-4279-a14f-f9be79b19f0c",t._sentryDebugIdIdentifier="sentry-dbid-b951b061-89ec-4279-a14f-f9be79b19f0c")}catch{}})();const Ke="_editModal_1k6b9_17",Xe="_title_1k6b9_31",Ye="_body_1k6b9_39",et="_label_1k6b9_48",tt="_footer_1k6b9_54",C={editModal:Ke,title:Xe,body:Ye,label:et,footer:tt};function st(t){const{event:s,onClose:o}=t,{updateEntry:r}=We(),[n,i]=c.useState(!1),d=c.useRef(new Array),g=async()=>{if(!d.current)return;i(!0);const a={id:s.id};d.current.forEach(l=>{l.dataset.field&&l.defaultValue!=l.value&&(a.custom?a.custom[l.dataset.field]=l.value:Object.assign(a,{custom:{[l.dataset.field]:l.value}}))}),a.custom&&await r(a),i(!1),o()};return e.jsx(ae,{open:!0,onOpenChange:a=>{a||o()},children:e.jsx(le,{children:e.jsxs(ce,{className:C.editModal,children:[e.jsxs("div",{className:C.title,children:[`Editing fields in cue ${s.cue}`,e.jsx(pe,{variant:"subtle-white",onClick:o,disabled:n,children:e.jsx(ue,{})})]}),e.jsx("div",{className:C.body,children:s.subscriptions.map(a=>e.jsxs(c.Fragment,{children:[e.jsx("label",{htmlFor:a.id,className:C.label,style:{"--user-bg":a.colour},children:a.label}),e.jsx(Ae,{name:a.id,ref:l=>{l&&d.current.push(l)},placeholder:`Add value for ${a.label} field`,defaultValue:a.value,"data-field":a.id,disabled:n,rows:5})]},a.id))}),e.jsxs("div",{className:C.footer,children:[e.jsx(z,{variant:"subtle",size:"large",onClick:o,disabled:n,children:"Cancel"}),e.jsx(z,{variant:"primary",size:"large",onClick:g,disabled:n,children:"Save"})]})]})})})}function ot(t,s={}){const{threshold:o=700,onStart:r,onFinish:n,onCancel:i}=s,d=c.useRef(!1),g=c.useRef(!1),a=c.useRef(-1);return c.useEffect(()=>()=>window.clearTimeout(a.current),[]),c.useMemo(()=>{if(typeof t!="function")return{};const l=m=>{!K(m)&&!J(m)||(r&&r(m),g.current=!0,a.current=window.setTimeout(()=>{t(m),d.current=!0},o))},h=m=>{!K(m)&&!J(m)||(d.current?n==null||n(m):g.current&&(i==null||i(m)),d.current=!1,g.current=!1,a.current&&window.clearTimeout(a.current))};return{onMouseDown:l,onMouseUp:h,onMouseLeave:h,onTouchStart:l,onTouchEnd:h,onTouchMove:te(h,150)}},[t,o,i,n,r])}function J(t){return window.TouchEvent?t.nativeEvent instanceof TouchEvent:"touches"in t.nativeEvent}function K(t){return t.nativeEvent instanceof MouseEvent}function nt(t){const{value:s,hideSeconds:o,hideLeadingZero:r,className:n}=t;let i=$e(s,o||r?2:3);return r&&(i=fe(i)),o&&(i=he(i)),e.jsx("div",{className:n,children:i})}const rt="_event_9py1c_21",it="_running_9py1c_38",at="_past_9py1c_42",lt="_binder_9py1c_47",ct="_cue_9py1c_57",ut="_mainField_9py1c_67",dt="_secondaryField_9py1c_76",mt="_plannedStart_9py1c_83",pt="_timeUntil_9py1c_84",ft="_runningTime_9py1c_85",ht="_fields_9py1c_114",gt="_field_9py1c_114",_t="_noColour_9py1c_123",vt="_value_9py1c_129",bt="_fieldsWithContent_9py1c_136",p={event:rt,running:it,past:at,binder:lt,cue:ct,mainField:ut,secondaryField:dt,plannedStart:mt,timeUntil:pt,runningTime:ft,fields:ht,field:gt,noColour:_t,value:vt,fieldsWithContent:bt},X=c.memo(yt);function yt({id:t,colour:s,cue:o,main:r,secondary:n,timeStart:i,duration:d,delay:g,dayOffset:a,isLinkedToLoaded:l,isSelected:h,isPast:m,selectedRef:N,showStart:F,subscribed:x,totalGap:j,onLongPress:D}){const v=f=>{f&&f.cancelable&&f.preventDefault(),x&&D({id:t,cue:o,subscriptions:x})},b=ot(v),R=s&&ge(s),E=T([p.event,h&&p.running,m&&p.past]),I=x.some(f=>f.value),U=x.length?Math.min(x.length,4):0,B=U>0?{gridTemplateColumns:`repeat(${U}, minmax(12rem, 1fr))`}:void 0;return e.jsxs("div",{className:E,"data-testid":o,ref:N,onContextMenu:v,...b,children:[e.jsx("div",{className:p.binder,style:{...R},children:e.jsx("span",{className:p.cue,children:o})}),e.jsxs("span",{className:p.mainField,children:[F&&e.jsx(Ze,{className:p.plannedStart,time:_e(i)}),r]}),e.jsx("span",{className:p.secondaryField,children:n}),e.jsx(xt,{timeStart:i,isPast:m,isSelected:h,delay:g,dayOffset:a,totalGap:j,isLinkedToLoaded:l}),e.jsxs("span",{className:p.runningTime,children:[e.jsx(Ve,{delayValue:g}),e.jsx(nt,{className:T([h&&p.muted]),value:d,hideLeadingZero:!0})]}),e.jsx("div",{className:T([p.fields,I&&p.fieldsWithContent]),style:B,children:x.map(f=>f.value?e.jsxs("div",{children:[e.jsx("span",{className:T([p.field,!f.colour&&p.noColour]),style:{backgroundColor:f.colour},children:f.label}),e.jsx("span",{className:p.value,style:{color:f.colour},children:f.value})]},f.id):e.jsx("div",{},f.id))})]})}function xt({timeStart:t,isPast:s,isSelected:o,delay:r,dayOffset:n,totalGap:i,isLinkedToLoaded:d}){return s?e.jsx("span",{className:p.timeUntil,children:"DONE"}):o?e.jsx("span",{className:p.timeUntil,children:"LIVE"}):e.jsx(jt,{timeStart:t,delay:r,dayOffset:n,totalGap:i,isLinkedToLoaded:d})}function jt({timeStart:t,delay:s,dayOffset:o,totalGap:r,isLinkedToLoaded:n}){const i=ve({timeStart:t,delay:s,dayOffset:o},{totalGap:r,isLinkedToLoaded:n}),g=i<xe?"DUE":`${be(Math.abs(i),i>2*ye)}`;return e.jsx("span",{className:p.timeUntil,"data-testid":"time-until",children:g})}const St="_group_c6uj3_17",Et={group:St},wt=c.memo(Ot);function Ot({title:t}){return e.jsx("div",{className:Et.group,children:t})}const Ct="_statusBar_1va40_17",Tt="_timers_1va40_25",Pt="_runningTimer_1va40_33",Nt="_timeNow_1va40_42",Ft="_progressOverride_1va40_51",P={statusBar:Ct,timers:Tt,runningTimer:Pt,timeNow:Nt,progressOverride:Ft};function Dt({viewSettings:t}){const{current:s,duration:o,timeWarning:r,timeDanger:n}=je();return e.jsx(ze,{now:s,complete:o,normalColor:t.normalColor,warning:r,warningColor:t.warningColor,danger:n,dangerColor:t.dangerColor,className:P.progressOverride,ignoreCssOverride:!0})}function Lt(){return e.jsxs("div",{className:P.timers,children:[e.jsx(Ge,{className:P.runningTimer}),e.jsx(He,{className:P.timeNow,shouldFormat:!0})]})}function Mt(){const{data:t}=Se();return e.jsxs("div",{className:P.statusBar,children:[e.jsx(Lt,{}),t&&e.jsx(Dt,{viewSettings:t})]})}const kt=(t,s)=>{const o=Me(t,[{value:"none",label:"None"},{value:"title",label:"Title"},{value:"note",label:"Note"}]),r=ke(t);return[{title:$.ClockOptions,collapsible:!0,options:[qe(s)]},{title:$.DataSources,collapsible:!0,options:[{id:"main",title:"Main data field",description:"Field to be shown in the first line of text",type:"option",values:o,defaultValue:"title"},{id:"secondary-src",title:"Secondary data field",description:"Field to be shown in the second line of text",type:"option",values:o,defaultValue:"none"},{id:"subscribe",title:"Highlight Fields",description:"Choose custom fields to highlight",type:"multi-option",values:r},{id:"shouldEdit",title:"Edit custom field",description:"Allows editing an highlighted custom field by long pressing",type:"boolean",defaultValue:!1}]},{title:$.ElementVisibility,collapsible:!0,options:[{id:"hidePast",title:"Hide Past Events",description:"Whether to hide events that have passed",type:"boolean",defaultValue:!1},{id:"showStart",title:"Show planned start",description:"Whether to prepend the planned start to the items",type:"boolean",defaultValue:!1}]}]};function Rt(t,s){const o=n=>(s==null?void 0:s.get(n))??t.get(n),r=n=>s!=null&&s.has(n)?s.getAll(n):t.getAll(n);return{mainSource:o("main"),secondarySource:o("secondary-src"),subscribe:r("subscribe"),shouldEdit:G(o("shouldEdit")),hidePast:G(o("hidePast")),showStart:G(o("showStart"))}}function It(){const[t]=de(),s=c.use(Ee);return c.useMemo(()=>{const r=s?new URLSearchParams(s.search):void 0;return Rt(t,r)},[s,t])}function Y(t,s,o,r,n){const i=s?Q(t,s)??"":t.title,d=Q(t,o)??"",a=r.filter(l=>Object.hasOwn(n,l)).reduce((l,h)=>{const m=n[h];return m&&l.push({id:h,label:m.label,colour:m.colour,value:t.custom[h]}),l},[]);return{mainField:i,secondaryField:d,subscribedData:a}}function Ut(){const{data:t,rundownMetadata:s,status:o}=Fe(),{data:r,status:n}=Je(),{data:i,status:d}=we();return{data:{rundown:t,rundownMetadata:s,customFields:r,settings:i},status:Qe([o,n,d])}}const Bt="_operatorContainer_1o5o0_17",At="_operatorEvents_1o5o0_24",Wt="_editPrompt_1o5o0_35",Vt="_show_1o5o0_49",k={operatorContainer:Bt,operatorEvents:At,editPrompt:Wt,show:Vt},ee=50;function $t(){const{data:t,status:s}=Ut();return Be("Operator"),s==="pending"?e.jsx(Oe,{}):s==="error"?e.jsx(Le,{text:"There was an error fetching data, please refresh the page."}):e.jsx(Gt,{...t})}function Gt({rundown:t,rundownMetadata:s,customFields:o,settings:r}){const n=Ce(),{subscribe:i,mainSource:d,secondarySource:g,shouldEdit:a,hidePast:l,showStart:h}=It(),[m,N]=c.useState(!1),[F,x]=c.useState(null),[j,D]=c.useState(!1),v=c.useRef(null),b=c.useRef(null),R=Ie({followRef:v,scrollRef:b,doFollow:!j,topOffset:ee,followTrigger:n}),E=c.useRef(null);c.useEffect(()=>{var y;n||j||(y=b.current)==null||y.scrollTo(0,0)},[n,j,b]);const I=()=>{n&&R(),D(!1)},B=te(()=>{if(v!=null&&v.current&&(b!=null&&b.current)){const y=v.current.getBoundingClientRect(),u=b.current.getBoundingClientRect();if(y&&u){const w=y.top-u.top,S=w<-8||w>ee;D(S)}}},1e3),f=()=>{E.current&&clearTimeout(E.current),E.current=setTimeout(()=>{N(!1)},700),N(!0),B()},H=c.useCallback(y=>{x({...y})},[]),Z=Te(r==null?void 0:r.timeFormat),se=c.useMemo(()=>kt(o,Z),[o,Z]),A=a&&i.length;return e.jsxs("div",{className:k.operatorContainer,"data-testid":"operator-view",children:[e.jsx(Re,{target:Pe.Operator,viewOptions:se}),F&&e.jsx(st,{event:F,onClose:()=>x(null)}),e.jsx(Mt,{}),A&&e.jsx("div",{className:T([k.editPrompt,m&&k.show]),children:Ne?"Press and hold to edit user field":"Right click to edit user field"}),e.jsx("div",{className:k.operatorEvents,onWheel:f,onTouchMove:f,ref:b,children:t.order.map(y=>{var w;const u=t.entries[y];if(q(u)){const{isPast:S,isLinkedToLoaded:W,isLoaded:O,totalGap:_}=s[y];if(l&&S||u.skip)return null;const{mainField:L,secondaryField:M,subscribedData:V}=Y(u,d,g,i,o);return e.jsx(X,{id:u.id,colour:u.colour,cue:u.cue,main:L,secondary:M,timeStart:u.timeStart,duration:u.duration,delay:u.delay,dayOffset:u.dayOffset,isLinkedToLoaded:W,isSelected:O,isPast:S,selectedRef:O?v:void 0,showStart:h,subscribed:V,totalGap:_,onLongPress:A?H:()=>{}},u.id)}if(De(u)){const{isPast:S}=s[u.id],W=n?((w=s[n])==null?void 0:w.groupId)===u.id:!1;return l&&S&&!W?null:e.jsxs(c.Fragment,{children:[e.jsx(wt,{title:u.title},u.id),u.entries.map(O=>{const _=t.entries[O];if(!q(_))return null;const{isPast:L,isLoaded:M,isLinkedToLoaded:V,totalGap:oe}=s[O];if(l&&L||_.skip)return null;const{mainField:ne,secondaryField:re,subscribedData:ie}=Y(_,d,g,i,o);return e.jsx(X,{id:_.id,colour:_.colour,cue:_.cue,main:ne,secondary:re,timeStart:_.timeStart,duration:_.duration,delay:_.delay,dayOffset:_.dayOffset,isLinkedToLoaded:V,isSelected:M,isPast:L,selectedRef:M?v:void 0,showStart:h,subscribed:ie,totalGap:oe,onLongPress:A?H:()=>{}},_.id)})]},u.id)}return null})}),e.jsx(Ue,{isVisible:j,onClickHandler:I})]})}function _s(){return e.jsx(me,{permission:"operator",children:e.jsx($t,{})})}export{_s as default};
2
+ //# sourceMappingURL=OperatorExport-CbWojpp6.js.map