@getontime/cli 4.0.0-beta.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/client/assets/Backstage-ZSqb8OU6.js +2 -0
  2. package/client/assets/Backstage-ZSqb8OU6.js.br +0 -0
  3. package/client/assets/Backstage-ZSqb8OU6.js.gz +0 -0
  4. package/client/assets/Backstage-ZSqb8OU6.js.map +1 -0
  5. package/client/assets/Countdown-DVRZbeRP.js +2 -0
  6. package/client/assets/Countdown-DVRZbeRP.js.br +0 -0
  7. package/client/assets/Countdown-DVRZbeRP.js.gz +0 -0
  8. package/client/assets/{Countdown-BaaR4j9x.js.map → Countdown-DVRZbeRP.js.map} +1 -1
  9. package/client/assets/CustomTranslationModal-D_Cy0d_H.js +2 -0
  10. package/client/assets/CustomTranslationModal-D_Cy0d_H.js.br +0 -0
  11. package/client/assets/CustomTranslationModal-D_Cy0d_H.js.gz +0 -0
  12. package/client/assets/{CustomTranslationModal-CcNNjbmZ.js.map → CustomTranslationModal-D_Cy0d_H.js.map} +1 -1
  13. package/client/assets/{DelayIndicator-DXDACqpc.js → DelayIndicator-B_JKLKYW.js} +2 -2
  14. package/client/assets/DelayIndicator-B_JKLKYW.js.br +0 -0
  15. package/client/assets/DelayIndicator-B_JKLKYW.js.gz +0 -0
  16. package/client/assets/{DelayIndicator-DXDACqpc.js.map → DelayIndicator-B_JKLKYW.js.map} +1 -1
  17. package/client/assets/{EditorFeatureWrapper-CX6wzTmM.js → EditorFeatureWrapper-DzBxDvRn.js} +2 -2
  18. package/client/assets/EditorFeatureWrapper-DzBxDvRn.js.br +0 -0
  19. package/client/assets/EditorFeatureWrapper-DzBxDvRn.js.gz +0 -0
  20. package/client/assets/{EditorFeatureWrapper-CX6wzTmM.js.map → EditorFeatureWrapper-DzBxDvRn.js.map} +1 -1
  21. package/client/assets/{EditorUtils-DxjFOwpn.js → EditorUtils-De0umjb-.js} +2 -2
  22. package/client/assets/EditorUtils-De0umjb-.js.br +0 -0
  23. package/client/assets/EditorUtils-De0umjb-.js.gz +0 -0
  24. package/client/assets/{EditorUtils-DxjFOwpn.js.map → EditorUtils-De0umjb-.js.map} +1 -1
  25. package/client/assets/{Empty-DiBXyIA8.js → Empty-BYF0tVRk.js} +2 -2
  26. package/client/assets/Empty-BYF0tVRk.js.br +2 -0
  27. package/client/assets/Empty-BYF0tVRk.js.gz +0 -0
  28. package/client/assets/{Empty-DiBXyIA8.js.map → Empty-BYF0tVRk.js.map} +1 -1
  29. package/client/assets/{EmptyPage-X6EO1Y5W.js → EmptyPage-DYH2bswA.js} +2 -2
  30. package/client/assets/EmptyPage-DYH2bswA.js.br +0 -0
  31. package/client/assets/EmptyPage-DYH2bswA.js.gz +0 -0
  32. package/client/assets/{EmptyPage-X6EO1Y5W.js.map → EmptyPage-DYH2bswA.js.map} +1 -1
  33. package/client/assets/{FollowButton-Cr-HA2-6.js → FollowButton-DyWsvyFF.js} +2 -2
  34. package/client/assets/FollowButton-DyWsvyFF.js.br +0 -0
  35. package/client/assets/FollowButton-DyWsvyFF.js.gz +0 -0
  36. package/client/assets/{FollowButton-Cr-HA2-6.js.map → FollowButton-DyWsvyFF.js.map} +1 -1
  37. package/client/assets/{MessageControlExport-VUkIayAJ.js → MessageControlExport-yLGU2dMq.js} +2 -2
  38. package/client/assets/MessageControlExport-yLGU2dMq.js.br +0 -0
  39. package/client/assets/MessageControlExport-yLGU2dMq.js.gz +0 -0
  40. package/client/assets/{MessageControlExport-VUkIayAJ.js.map → MessageControlExport-yLGU2dMq.js.map} +1 -1
  41. package/client/assets/MilestoneEditor-GkzJ-h1C.js +2 -0
  42. package/client/assets/MilestoneEditor-GkzJ-h1C.js.br +0 -0
  43. package/client/assets/MilestoneEditor-GkzJ-h1C.js.gz +0 -0
  44. package/client/assets/{MilestoneEditor-Da8oxrHI.js.map → MilestoneEditor-GkzJ-h1C.js.map} +1 -1
  45. package/client/assets/Modal-BKL-5GzU.js +2 -0
  46. package/client/assets/Modal-BKL-5GzU.js.br +0 -0
  47. package/client/assets/Modal-BKL-5GzU.js.gz +0 -0
  48. package/client/assets/Modal-BKL-5GzU.js.map +1 -0
  49. package/client/assets/Modal-BgJx3SNK.css +1 -0
  50. package/client/assets/Modal-BgJx3SNK.css.br +0 -0
  51. package/client/assets/Modal-BgJx3SNK.css.gz +0 -0
  52. package/client/assets/{MultiPartProgressBar-mGPuP1Wd.js → MultiPartProgressBar-BITERKS0.js} +2 -2
  53. package/client/assets/MultiPartProgressBar-BITERKS0.js.br +0 -0
  54. package/client/assets/MultiPartProgressBar-BITERKS0.js.gz +0 -0
  55. package/client/assets/{MultiPartProgressBar-mGPuP1Wd.js.map → MultiPartProgressBar-BITERKS0.js.map} +1 -1
  56. package/client/assets/OperatorExport-DMZ6eQfT.js +2 -0
  57. package/client/assets/OperatorExport-DMZ6eQfT.js.br +0 -0
  58. package/client/assets/OperatorExport-DMZ6eQfT.js.gz +0 -0
  59. package/client/assets/OperatorExport-DMZ6eQfT.js.map +1 -0
  60. package/client/assets/{OverviewWrapper-BMuW_wiO.js → OverviewWrapper-riM6vPno.js} +2 -2
  61. package/client/assets/OverviewWrapper-riM6vPno.js.br +0 -0
  62. package/client/assets/OverviewWrapper-riM6vPno.js.gz +0 -0
  63. package/client/assets/{OverviewWrapper-BMuW_wiO.js.map → OverviewWrapper-riM6vPno.js.map} +1 -1
  64. package/client/assets/{ProjectInfo-BYi1lzPk.js → ProjectInfo-DxtMq70a.js} +2 -2
  65. package/client/assets/ProjectInfo-DxtMq70a.js.br +0 -0
  66. package/client/assets/ProjectInfo-DxtMq70a.js.gz +0 -0
  67. package/client/assets/{ProjectInfo-BYi1lzPk.js.map → ProjectInfo-DxtMq70a.js.map} +1 -1
  68. package/client/assets/{ProtectRoute-DnUCrlh6.js → ProtectRoute-p1fmtLeu.js} +2 -2
  69. package/client/assets/ProtectRoute-p1fmtLeu.js.br +0 -0
  70. package/client/assets/ProtectRoute-p1fmtLeu.js.gz +0 -0
  71. package/client/assets/{ProtectRoute-DnUCrlh6.js.map → ProtectRoute-p1fmtLeu.js.map} +1 -1
  72. package/client/assets/ProtectedCuesheet-CvRnqT0z.js +2 -0
  73. package/client/assets/ProtectedCuesheet-CvRnqT0z.js.br +0 -0
  74. package/client/assets/ProtectedCuesheet-CvRnqT0z.js.gz +0 -0
  75. package/client/assets/ProtectedCuesheet-CvRnqT0z.js.map +1 -0
  76. package/client/assets/ProtectedEditor-BoiAT_IR.css +1 -0
  77. package/client/assets/ProtectedEditor-BoiAT_IR.css.br +0 -0
  78. package/client/assets/ProtectedEditor-BoiAT_IR.css.gz +0 -0
  79. package/client/assets/ProtectedEditor-D4UXj1xL.js +3 -0
  80. package/client/assets/ProtectedEditor-D4UXj1xL.js.br +0 -0
  81. package/client/assets/ProtectedEditor-D4UXj1xL.js.gz +0 -0
  82. package/client/assets/ProtectedEditor-D4UXj1xL.js.map +1 -0
  83. package/client/assets/RundownEntry-B1dSz1wu.js +2 -0
  84. package/client/assets/RundownEntry-B1dSz1wu.js.br +0 -0
  85. package/client/assets/RundownEntry-B1dSz1wu.js.gz +0 -0
  86. package/client/assets/{RundownEntry-Dl4Cb_pZ.js.map → RundownEntry-B1dSz1wu.js.map} +1 -1
  87. package/client/assets/RundownExport-WjLpncYT.js +3 -0
  88. package/client/assets/RundownExport-WjLpncYT.js.br +0 -0
  89. package/client/assets/RundownExport-WjLpncYT.js.gz +0 -0
  90. package/client/assets/{RundownExport-BPDLhvsM.js.map → RundownExport-WjLpncYT.js.map} +1 -1
  91. package/client/assets/{Select-CUjlJirY.js → Select-niU9Razm.js} +2 -2
  92. package/client/assets/Select-niU9Razm.js.br +0 -0
  93. package/client/assets/Select-niU9Razm.js.gz +0 -0
  94. package/client/assets/{Select-CUjlJirY.js.map → Select-niU9Razm.js.map} +1 -1
  95. package/client/assets/Studio-CWdJq4bx.js +2 -0
  96. package/client/assets/Studio-CWdJq4bx.js.br +0 -0
  97. package/client/assets/Studio-CWdJq4bx.js.gz +0 -0
  98. package/client/assets/{Studio-BLCIas53.js.map → Studio-CWdJq4bx.js.map} +1 -1
  99. package/client/assets/{StyleEditor-DTNiR-0P.js → StyleEditor-BIFjHsgD.js} +2 -2
  100. package/client/assets/StyleEditor-BIFjHsgD.js.br +0 -0
  101. package/client/assets/StyleEditor-BIFjHsgD.js.gz +0 -0
  102. package/client/assets/{StyleEditor-DTNiR-0P.js.map → StyleEditor-BIFjHsgD.js.map} +1 -1
  103. package/client/assets/SuperscriptTime-DCTyUARx.js +2 -0
  104. package/client/assets/SuperscriptTime-DCTyUARx.js.br +0 -0
  105. package/client/assets/SuperscriptTime-DCTyUARx.js.gz +0 -0
  106. package/client/assets/SuperscriptTime-DCTyUARx.js.map +1 -0
  107. package/client/assets/TimeElements-DBVGVx71.js +2 -0
  108. package/client/assets/TimeElements-DBVGVx71.js.br +0 -0
  109. package/client/assets/TimeElements-DBVGVx71.js.gz +0 -0
  110. package/client/assets/{TimeElements-rlwX9Mgy.js.map → TimeElements-DBVGVx71.js.map} +1 -1
  111. package/client/assets/{TimeInput-C0_Nl63x.js → TimeInput-wQ67FbW6.js} +2 -2
  112. package/client/assets/TimeInput-wQ67FbW6.js.br +0 -0
  113. package/client/assets/TimeInput-wQ67FbW6.js.gz +0 -0
  114. package/client/assets/{TimeInput-C0_Nl63x.js.map → TimeInput-wQ67FbW6.js.map} +1 -1
  115. package/client/assets/TimelinePage-DZefE2vQ.js +2 -0
  116. package/client/assets/TimelinePage-DZefE2vQ.js.br +0 -0
  117. package/client/assets/TimelinePage-DZefE2vQ.js.gz +0 -0
  118. package/client/assets/{TimelinePage-BC-pnISF.js.map → TimelinePage-DZefE2vQ.js.map} +1 -1
  119. package/client/assets/Timer-Bs450x86.js +2 -0
  120. package/client/assets/Timer-Bs450x86.js.br +0 -0
  121. package/client/assets/Timer-Bs450x86.js.gz +0 -0
  122. package/client/assets/Timer-Bs450x86.js.map +1 -0
  123. package/client/assets/{TimerControlExport-C_Jbwxog.js → TimerControlExport-C1C_vBX4.js} +2 -2
  124. package/client/assets/TimerControlExport-C1C_vBX4.js.br +0 -0
  125. package/client/assets/TimerControlExport-C1C_vBX4.js.gz +0 -0
  126. package/client/assets/{TimerControlExport-C_Jbwxog.js.map → TimerControlExport-C1C_vBX4.js.map} +1 -1
  127. package/client/assets/{TitleCard-C-Tw72nZ.js → TitleCard-B4N-kCM3.js} +2 -2
  128. package/client/assets/TitleCard-B4N-kCM3.js.br +0 -0
  129. package/client/assets/TitleCard-B4N-kCM3.js.gz +0 -0
  130. package/client/assets/{TitleCard-C-Tw72nZ.js.map → TitleCard-B4N-kCM3.js.map} +1 -1
  131. package/client/assets/{Tooltip-BZrLdTBU.js → Tooltip-DJ8Y4CO4.js} +2 -2
  132. package/client/assets/Tooltip-DJ8Y4CO4.js.br +0 -0
  133. package/client/assets/Tooltip-DJ8Y4CO4.js.gz +0 -0
  134. package/client/assets/{Tooltip-BZrLdTBU.js.map → Tooltip-DJ8Y4CO4.js.map} +1 -1
  135. package/client/assets/{ViewLogo-CdsW41HC.js → ViewLogo-Dd60EREE.js} +2 -2
  136. package/client/assets/ViewLogo-Dd60EREE.js.br +0 -0
  137. package/client/assets/ViewLogo-Dd60EREE.js.gz +0 -0
  138. package/client/assets/{ViewLogo-CdsW41HC.js.map → ViewLogo-Dd60EREE.js.map} +1 -1
  139. package/client/assets/{ViewParamsEditor-kNKEOAwm.css → ViewParamsEditor-1Ok39npF.css} +1 -1
  140. package/client/assets/ViewParamsEditor-1Ok39npF.css.br +0 -0
  141. package/client/assets/ViewParamsEditor-1Ok39npF.css.gz +0 -0
  142. package/client/assets/{ViewParamsEditor-YoYxps2g.js → ViewParamsEditor-BWEYbq_S.js} +2 -2
  143. package/client/assets/ViewParamsEditor-BWEYbq_S.js.br +0 -0
  144. package/client/assets/ViewParamsEditor-BWEYbq_S.js.gz +0 -0
  145. package/client/assets/{ViewParamsEditor-YoYxps2g.js.map → ViewParamsEditor-BWEYbq_S.js.map} +1 -1
  146. package/client/assets/{dateConfig-CqC6Ta_8.js → dateConfig-8rhb0Dbh.js} +2 -2
  147. package/client/assets/dateConfig-8rhb0Dbh.js.br +0 -0
  148. package/client/assets/dateConfig-8rhb0Dbh.js.gz +0 -0
  149. package/client/assets/{dateConfig-CqC6Ta_8.js.map → dateConfig-8rhb0Dbh.js.map} +1 -1
  150. package/client/assets/{editorSettings-CL1TjKzU.js → editorSettings-LMnfWux6.js} +2 -2
  151. package/client/assets/editorSettings-LMnfWux6.js.br +0 -0
  152. package/client/assets/editorSettings-LMnfWux6.js.gz +0 -0
  153. package/client/assets/{editorSettings-CL1TjKzU.js.map → editorSettings-LMnfWux6.js.map} +1 -1
  154. package/client/assets/{getProgress-Dh-Yy44B.js → getProgress-CyJTu6f5.js} +2 -2
  155. package/client/assets/getProgress-CyJTu6f5.js.br +0 -0
  156. package/client/assets/getProgress-CyJTu6f5.js.gz +0 -0
  157. package/client/assets/{getProgress-Dh-Yy44B.js.map → getProgress-CyJTu6f5.js.map} +1 -1
  158. package/client/assets/index-5QAOtSTh.js +3 -0
  159. package/client/assets/index-5QAOtSTh.js.br +0 -0
  160. package/client/assets/index-5QAOtSTh.js.gz +0 -0
  161. package/client/assets/index-5QAOtSTh.js.map +1 -0
  162. package/client/assets/{index-pvMSlFrO.css → index-De0uf0Ta.css} +1 -1
  163. package/client/assets/index-De0uf0Ta.css.br +0 -0
  164. package/client/assets/index-De0uf0Ta.css.gz +0 -0
  165. package/client/assets/{offset-BnfjZ6JI.js → offset-CLDSqOP5.js} +2 -2
  166. package/client/assets/offset-CLDSqOP5.js.br +0 -0
  167. package/client/assets/offset-CLDSqOP5.js.gz +0 -0
  168. package/client/assets/{offset-BnfjZ6JI.js.map → offset-CLDSqOP5.js.map} +1 -1
  169. package/client/assets/{parseUserTime-DNXIMX9s.js → parseUserTime-CCDHpp7D.js} +2 -2
  170. package/client/assets/parseUserTime-CCDHpp7D.js.br +0 -0
  171. package/client/assets/parseUserTime-CCDHpp7D.js.gz +0 -0
  172. package/client/assets/{parseUserTime-DNXIMX9s.js.map → parseUserTime-CCDHpp7D.js.map} +1 -1
  173. package/client/assets/{playbackstate-DzSEaiNW.js → playbackstate-6lBh6omZ.js} +2 -2
  174. package/client/assets/playbackstate-6lBh6omZ.js.br +0 -0
  175. package/client/assets/playbackstate-6lBh6omZ.js.gz +0 -0
  176. package/client/assets/{playbackstate-DzSEaiNW.js.map → playbackstate-6lBh6omZ.js.map} +1 -1
  177. package/client/assets/{presentation.utils-BfcniGcl.js → presentation.utils-BUIuV_2e.js} +2 -2
  178. package/client/assets/presentation.utils-BUIuV_2e.js.br +0 -0
  179. package/client/assets/presentation.utils-BUIuV_2e.js.gz +0 -0
  180. package/client/assets/{presentation.utils-BfcniGcl.js.map → presentation.utils-BUIuV_2e.js.map} +1 -1
  181. package/client/assets/{rundownUtils-CPBsEZ2m.js → rundownUtils-Cnd2prRX.js} +2 -2
  182. package/client/assets/rundownUtils-Cnd2prRX.js.br +0 -0
  183. package/client/assets/rundownUtils-Cnd2prRX.js.gz +0 -0
  184. package/client/assets/{rundownUtils-CPBsEZ2m.js.map → rundownUtils-Cnd2prRX.js.map} +1 -1
  185. package/client/assets/{useCustomFields-DY13Ir96.js → useCustomFields-BuxKsqGS.js} +2 -2
  186. package/client/assets/useCustomFields-BuxKsqGS.js.br +0 -0
  187. package/client/assets/useCustomFields-BuxKsqGS.js.gz +0 -0
  188. package/client/assets/{useCustomFields-DY13Ir96.js.map → useCustomFields-BuxKsqGS.js.map} +1 -1
  189. package/client/assets/{useFollowComponent-C42-1XCu.js → useFollowComponent-iGQv4zoS.js} +2 -2
  190. package/client/assets/useFollowComponent-iGQv4zoS.js.br +0 -0
  191. package/client/assets/useFollowComponent-iGQv4zoS.js.gz +0 -0
  192. package/client/assets/{useFollowComponent-C42-1XCu.js.map → useFollowComponent-iGQv4zoS.js.map} +1 -1
  193. package/client/assets/{useProjectData-BF2F6qPB.js → useProjectData-CetvEK9E.js} +2 -2
  194. package/client/assets/useProjectData-CetvEK9E.js.br +0 -0
  195. package/client/assets/useProjectData-CetvEK9E.js.gz +0 -0
  196. package/client/assets/{useProjectData-BF2F6qPB.js.map → useProjectData-CetvEK9E.js.map} +1 -1
  197. package/client/assets/useReport-PEFRsOhF.js +2 -0
  198. package/client/assets/useReport-PEFRsOhF.js.br +0 -0
  199. package/client/assets/useReport-PEFRsOhF.js.gz +0 -0
  200. package/client/assets/{useReport-DPqY9XXp.js.map → useReport-PEFRsOhF.js.map} +1 -1
  201. package/client/assets/{useRundown-uuXixjnX.js → useRundown-D8CYATNi.js} +2 -2
  202. package/client/assets/useRundown-D8CYATNi.js.br +0 -0
  203. package/client/assets/useRundown-D8CYATNi.js.gz +0 -0
  204. package/client/assets/{useRundown-uuXixjnX.js.map → useRundown-D8CYATNi.js.map} +1 -1
  205. package/client/assets/{useWindowTitle-BQ1kqXfk.js → useWindowTitle-b5fN0StF.js} +2 -2
  206. package/client/assets/useWindowTitle-b5fN0StF.js.br +0 -0
  207. package/client/assets/useWindowTitle-b5fN0StF.js.gz +0 -0
  208. package/client/assets/{useWindowTitle-BQ1kqXfk.js.map → useWindowTitle-b5fN0StF.js.map} +1 -1
  209. package/client/assets/{validateEvent-Cy-jEiwB.js → validateEvent-Bvgk1E-Y.js} +2 -2
  210. package/client/assets/validateEvent-Bvgk1E-Y.js.br +0 -0
  211. package/client/assets/validateEvent-Bvgk1E-Y.js.gz +0 -0
  212. package/client/assets/{validateEvent-Cy-jEiwB.js.map → validateEvent-Bvgk1E-Y.js.map} +1 -1
  213. package/client/assets/{vendor-Cnciq4o_.js → vendor-Cu5xgv5K.js} +3 -3
  214. package/client/assets/vendor-Cu5xgv5K.js.br +0 -0
  215. package/client/assets/vendor-Cu5xgv5K.js.gz +0 -0
  216. package/client/assets/{vendor-Cnciq4o_.js.map → vendor-Cu5xgv5K.js.map} +1 -1
  217. package/client/assets/{common.options-p5f_zJ2-.js → viewLoader.utils-BPhACxyG.js} +2 -2
  218. package/client/assets/viewLoader.utils-BPhACxyG.js.br +0 -0
  219. package/client/assets/viewLoader.utils-BPhACxyG.js.gz +0 -0
  220. package/client/assets/viewLoader.utils-BPhACxyG.js.map +1 -0
  221. package/client/index.html +3 -3
  222. package/package.json +1 -1
  223. package/server/index.cjs +103 -103
  224. package/client/assets/Backstage-B-_iTDRg.js +0 -2
  225. package/client/assets/Backstage-B-_iTDRg.js.br +0 -0
  226. package/client/assets/Backstage-B-_iTDRg.js.gz +0 -0
  227. package/client/assets/Backstage-B-_iTDRg.js.map +0 -1
  228. package/client/assets/Countdown-BaaR4j9x.js +0 -2
  229. package/client/assets/Countdown-BaaR4j9x.js.br +0 -0
  230. package/client/assets/Countdown-BaaR4j9x.js.gz +0 -0
  231. package/client/assets/CustomTranslationModal-CcNNjbmZ.js +0 -2
  232. package/client/assets/CustomTranslationModal-CcNNjbmZ.js.br +0 -0
  233. package/client/assets/CustomTranslationModal-CcNNjbmZ.js.gz +0 -0
  234. package/client/assets/DelayIndicator-DXDACqpc.js.br +0 -0
  235. package/client/assets/DelayIndicator-DXDACqpc.js.gz +0 -0
  236. package/client/assets/DropdownMenu-Bn0VHzKx.js +0 -2
  237. package/client/assets/DropdownMenu-Bn0VHzKx.js.br +0 -0
  238. package/client/assets/DropdownMenu-Bn0VHzKx.js.gz +0 -0
  239. package/client/assets/DropdownMenu-Bn0VHzKx.js.map +0 -1
  240. package/client/assets/DropdownMenu-ByBDeesm.css +0 -1
  241. package/client/assets/DropdownMenu-ByBDeesm.css.br +0 -0
  242. package/client/assets/DropdownMenu-ByBDeesm.css.gz +0 -0
  243. package/client/assets/EditorFeatureWrapper-CX6wzTmM.js.br +0 -0
  244. package/client/assets/EditorFeatureWrapper-CX6wzTmM.js.gz +0 -0
  245. package/client/assets/EditorUtils-DxjFOwpn.js.br +0 -0
  246. package/client/assets/EditorUtils-DxjFOwpn.js.gz +0 -0
  247. package/client/assets/Empty-DiBXyIA8.js.br +0 -2
  248. package/client/assets/Empty-DiBXyIA8.js.gz +0 -0
  249. package/client/assets/EmptyPage-X6EO1Y5W.js.br +0 -0
  250. package/client/assets/EmptyPage-X6EO1Y5W.js.gz +0 -0
  251. package/client/assets/FollowButton-Cr-HA2-6.js.br +0 -0
  252. package/client/assets/FollowButton-Cr-HA2-6.js.gz +0 -0
  253. package/client/assets/MessageControlExport-VUkIayAJ.js.br +0 -0
  254. package/client/assets/MessageControlExport-VUkIayAJ.js.gz +0 -0
  255. package/client/assets/MilestoneEditor-Da8oxrHI.js +0 -2
  256. package/client/assets/MilestoneEditor-Da8oxrHI.js.br +0 -0
  257. package/client/assets/MilestoneEditor-Da8oxrHI.js.gz +0 -0
  258. package/client/assets/MultiPartProgressBar-mGPuP1Wd.js.br +0 -0
  259. package/client/assets/MultiPartProgressBar-mGPuP1Wd.js.gz +0 -0
  260. package/client/assets/OperatorExport-BeuWuV6I.js +0 -2
  261. package/client/assets/OperatorExport-BeuWuV6I.js.br +0 -0
  262. package/client/assets/OperatorExport-BeuWuV6I.js.gz +0 -0
  263. package/client/assets/OperatorExport-BeuWuV6I.js.map +0 -1
  264. package/client/assets/OverviewWrapper-BMuW_wiO.js.br +0 -0
  265. package/client/assets/OverviewWrapper-BMuW_wiO.js.gz +0 -0
  266. package/client/assets/ProjectInfo-BYi1lzPk.js.br +0 -0
  267. package/client/assets/ProjectInfo-BYi1lzPk.js.gz +0 -0
  268. package/client/assets/ProtectRoute-DnUCrlh6.js.br +0 -0
  269. package/client/assets/ProtectRoute-DnUCrlh6.js.gz +0 -0
  270. package/client/assets/ProtectedCuesheet-CQOB7ipQ.js +0 -2
  271. package/client/assets/ProtectedCuesheet-CQOB7ipQ.js.br +0 -0
  272. package/client/assets/ProtectedCuesheet-CQOB7ipQ.js.gz +0 -0
  273. package/client/assets/ProtectedCuesheet-CQOB7ipQ.js.map +0 -1
  274. package/client/assets/ProtectedEditor-C4beOxz1.css +0 -1
  275. package/client/assets/ProtectedEditor-C4beOxz1.css.br +0 -0
  276. package/client/assets/ProtectedEditor-C4beOxz1.css.gz +0 -0
  277. package/client/assets/ProtectedEditor-KcsoZKKo.js +0 -3
  278. package/client/assets/ProtectedEditor-KcsoZKKo.js.br +0 -0
  279. package/client/assets/ProtectedEditor-KcsoZKKo.js.gz +0 -0
  280. package/client/assets/ProtectedEditor-KcsoZKKo.js.map +0 -1
  281. package/client/assets/RundownEntry-Dl4Cb_pZ.js +0 -2
  282. package/client/assets/RundownEntry-Dl4Cb_pZ.js.br +0 -0
  283. package/client/assets/RundownEntry-Dl4Cb_pZ.js.gz +0 -0
  284. package/client/assets/RundownExport-BPDLhvsM.js +0 -3
  285. package/client/assets/RundownExport-BPDLhvsM.js.br +0 -0
  286. package/client/assets/RundownExport-BPDLhvsM.js.gz +0 -0
  287. package/client/assets/Select-CUjlJirY.js.br +0 -0
  288. package/client/assets/Select-CUjlJirY.js.gz +0 -0
  289. package/client/assets/Studio-BLCIas53.js +0 -2
  290. package/client/assets/Studio-BLCIas53.js.br +0 -0
  291. package/client/assets/Studio-BLCIas53.js.gz +0 -0
  292. package/client/assets/StyleEditor-DTNiR-0P.js.br +0 -0
  293. package/client/assets/StyleEditor-DTNiR-0P.js.gz +0 -0
  294. package/client/assets/TimeElements-rlwX9Mgy.js +0 -2
  295. package/client/assets/TimeElements-rlwX9Mgy.js.br +0 -0
  296. package/client/assets/TimeElements-rlwX9Mgy.js.gz +0 -0
  297. package/client/assets/TimeInput-C0_Nl63x.js.br +0 -0
  298. package/client/assets/TimeInput-C0_Nl63x.js.gz +0 -0
  299. package/client/assets/TimelinePage-BC-pnISF.js +0 -2
  300. package/client/assets/TimelinePage-BC-pnISF.js.br +0 -0
  301. package/client/assets/TimelinePage-BC-pnISF.js.gz +0 -0
  302. package/client/assets/Timer-DgmA0De-.js +0 -2
  303. package/client/assets/Timer-DgmA0De-.js.br +0 -0
  304. package/client/assets/Timer-DgmA0De-.js.gz +0 -0
  305. package/client/assets/Timer-DgmA0De-.js.map +0 -1
  306. package/client/assets/TimerControlExport-C_Jbwxog.js.br +0 -0
  307. package/client/assets/TimerControlExport-C_Jbwxog.js.gz +0 -0
  308. package/client/assets/TitleCard-C-Tw72nZ.js.br +0 -0
  309. package/client/assets/TitleCard-C-Tw72nZ.js.gz +0 -0
  310. package/client/assets/Tooltip-BZrLdTBU.js.br +0 -0
  311. package/client/assets/Tooltip-BZrLdTBU.js.gz +0 -0
  312. package/client/assets/ViewLogo-CdsW41HC.js.br +0 -0
  313. package/client/assets/ViewLogo-CdsW41HC.js.gz +0 -0
  314. package/client/assets/ViewParamsEditor-YoYxps2g.js.br +0 -0
  315. package/client/assets/ViewParamsEditor-YoYxps2g.js.gz +0 -0
  316. package/client/assets/ViewParamsEditor-kNKEOAwm.css.br +0 -0
  317. package/client/assets/ViewParamsEditor-kNKEOAwm.css.gz +0 -0
  318. package/client/assets/common.options-p5f_zJ2-.js.br +0 -0
  319. package/client/assets/common.options-p5f_zJ2-.js.gz +0 -0
  320. package/client/assets/common.options-p5f_zJ2-.js.map +0 -1
  321. package/client/assets/dateConfig-CqC6Ta_8.js.br +0 -0
  322. package/client/assets/dateConfig-CqC6Ta_8.js.gz +0 -0
  323. package/client/assets/editorSettings-CL1TjKzU.js.br +0 -0
  324. package/client/assets/editorSettings-CL1TjKzU.js.gz +0 -0
  325. package/client/assets/getProgress-Dh-Yy44B.js.br +0 -0
  326. package/client/assets/getProgress-Dh-Yy44B.js.gz +0 -0
  327. package/client/assets/index-DdPXqLQ6.js +0 -3
  328. package/client/assets/index-DdPXqLQ6.js.br +0 -0
  329. package/client/assets/index-DdPXqLQ6.js.gz +0 -0
  330. package/client/assets/index-DdPXqLQ6.js.map +0 -1
  331. package/client/assets/index-pvMSlFrO.css.br +0 -0
  332. package/client/assets/index-pvMSlFrO.css.gz +0 -0
  333. package/client/assets/offset-BnfjZ6JI.js.br +0 -2
  334. package/client/assets/offset-BnfjZ6JI.js.gz +0 -0
  335. package/client/assets/parseUserTime-DNXIMX9s.js.br +0 -0
  336. package/client/assets/parseUserTime-DNXIMX9s.js.gz +0 -0
  337. package/client/assets/playbackstate-DzSEaiNW.js.br +0 -0
  338. package/client/assets/playbackstate-DzSEaiNW.js.gz +0 -0
  339. package/client/assets/presentation.utils-BfcniGcl.js.br +0 -0
  340. package/client/assets/presentation.utils-BfcniGcl.js.gz +0 -0
  341. package/client/assets/rundownUtils-CPBsEZ2m.js.br +0 -0
  342. package/client/assets/rundownUtils-CPBsEZ2m.js.gz +0 -0
  343. package/client/assets/useCustomFields-DY13Ir96.js.br +0 -0
  344. package/client/assets/useCustomFields-DY13Ir96.js.gz +0 -0
  345. package/client/assets/useFollowComponent-C42-1XCu.js.br +0 -0
  346. package/client/assets/useFollowComponent-C42-1XCu.js.gz +0 -0
  347. package/client/assets/useProjectData-BF2F6qPB.js.br +0 -0
  348. package/client/assets/useProjectData-BF2F6qPB.js.gz +0 -0
  349. package/client/assets/useReport-DPqY9XXp.js +0 -2
  350. package/client/assets/useReport-DPqY9XXp.js.br +0 -0
  351. package/client/assets/useReport-DPqY9XXp.js.gz +0 -0
  352. package/client/assets/useRundown-uuXixjnX.js.br +0 -0
  353. package/client/assets/useRundown-uuXixjnX.js.gz +0 -0
  354. package/client/assets/useWindowTitle-BQ1kqXfk.js.br +0 -0
  355. package/client/assets/useWindowTitle-BQ1kqXfk.js.gz +0 -0
  356. package/client/assets/validateEvent-Cy-jEiwB.js.br +0 -0
  357. package/client/assets/validateEvent-Cy-jEiwB.js.gz +0 -0
  358. package/client/assets/vendor-Cnciq4o_.js.br +0 -0
  359. package/client/assets/vendor-Cnciq4o_.js.gz +0 -0
  360. package/client/assets/viewLoader.utils-CYlNKkLE.js +0 -2
  361. package/client/assets/viewLoader.utils-CYlNKkLE.js.br +0 -0
  362. package/client/assets/viewLoader.utils-CYlNKkLE.js.gz +0 -0
  363. package/client/assets/viewLoader.utils-CYlNKkLE.js.map +0 -1
  364. /package/client/assets/{viewLoader-Bk5IU6zG.css → SuperscriptTime-Bk5IU6zG.css} +0 -0
  365. /package/client/assets/{viewLoader-Bk5IU6zG.css.br → SuperscriptTime-Bk5IU6zG.css.br} +0 -0
  366. /package/client/assets/{viewLoader-Bk5IU6zG.css.gz → SuperscriptTime-Bk5IU6zG.css.gz} +0 -0
@@ -1,2 +0,0 @@
1
- import{h as _,j as e,aY as Ue,aZ as Oe,a_ as Ge,aE as W,aF as Z,bg as J,cg as He,t as Ke,f as Ve,bq as qe,ch as Qe,ci as We,bQ as Ze,bM as ie,bN as Je,bS as Xe,cj as Ye,x as et,bR as tt,br as nt,aL as st,bP as rt,ck as ot,am as it,bl as at,cl as lt,ah as Q,aD as ct,T as dt,K as ut,aK as pt}from"./vendor-Cnciq4o_.js";import{y as A,af as ae,i as R,B as ne,n as mt,be as le,l as X,M as ce,bd as ft,ai as G,bP as D,J as _t,b as se,T as H,bQ as vt,aA as de}from"./index-DdPXqLQ6.js";import{i as yt,q as gt,k as bt}from"./useRundown-uuXixjnX.js";import{u as z}from"./dateConfig-CqC6Ta_8.js";import{T as xt,u as ue,a as pe,g as ht,c as jt}from"./RundownExport-BPDLhvsM.js";import{p as wt}from"./parseUserTime-DNXIMX9s.js";import{E as K}from"./validateEvent-Cy-jEiwB.js";import{T as w}from"./Tooltip-BZrLdTBU.js";import{a as Et,u as kt}from"./MilestoneEditor-Da8oxrHI.js";import{u as It}from"./useReport-DPqY9XXp.js";import{i as me}from"./playbackstate-DzSEaiNW.js";import{g as St}from"./getProgress-Dh-Yy44B.js";import"./useProjectData-BF2F6qPB.js";import"./editorSettings-CL1TjKzU.js";import"./rundownUtils-CPBsEZ2m.js";import"./EditorUtils-DxjFOwpn.js";import"./ProtectRoute-DnUCrlh6.js";import"./DropdownMenu-Bn0VHzKx.js";import"./Empty-DiBXyIA8.js";import"./useFollowComponent-C42-1XCu.js";import"./offset-BnfjZ6JI.js";import"./TimeInput-C0_Nl63x.js";import"./useCustomFields-DY13Ir96.js";import"./Select-CUjlJirY.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]="b8706ea4-6763-406c-acc6-4ecde658a9c2",n._sentryDebugIdIdentifier="sentry-dbid-b8706ea4-6763-406c-acc6-4ecde658a9c2")}catch{}})();function Ct(n){const t=_.useRef(n);t.current=_.useMemo(()=>n,[n]);const s=_.useRef(void 0);return s.current||(s.current=function(...r){return t.current.apply(this,r)}),s.current}const Nt="_radioGroup_1a3sr_17",Tt="_item_1a3sr_23",Rt="_radio_1a3sr_17",zt="_indicator_1a3sr_55",P={radioGroup:Nt,item:Tt,radio:Rt,indicator:zt};function $t({items:n,onValueChange:t,...s}){return e.jsx(Ue,{onValueChange:r=>t==null?void 0:t(r),className:P.radioGroup,...s,children:n.map(r=>e.jsxs("label",{className:P.item,children:[e.jsx(Oe,{value:r.value.toString(),className:P.radio,children:e.jsx(Ge,{className:P.indicator})}),r.label]},r.value.toString()))})}const At="_delayInput_ksn92_17",Dt="_inputField_ksn92_23",re={delayInput:At,inputField:Dt};function Pt(n){const{eventId:t,duration:s}=n,{updateEntry:r}=z(),[l,i]=_.useState(""),c=_.useRef(null),d=_.useRef(!1);_.useEffect(()=>{typeof s>"u"||i(A(s))},[s]);const u=o=>{if(d.current){d.current=!1;return}const b=o.startsWith("-");let y=wt(o);b&&(y=y*-1),y!==s&&(p(y),i(A(y)))},p=o=>{r({id:t,duration:o})},f=()=>{var o;return(o=c.current)==null?void 0:o.select()},m=o=>{var b,y;o.key==="Enter"?((b=c.current)==null||b.blur(),u(o.target.value)):o.key==="Tab"?u(o.target.value):o.key==="Escape"&&(d.current=!0,i(A(s)),(y=c.current)==null||y.blur())},g=o=>{o==="add"?s<0&&p(s*-1):o==="subtract"&&s>0&&p(s*-1)},v=l.startsWith("-")?"subtract":"add";return e.jsxs("div",{className:re.delayInput,children:[e.jsx(ae,{ref:c,"data-testid":"delay-input",className:re.inputField,placeholder:"-",onFocus:f,onChange:o=>i(o.target.value),onBlur:o=>u(o.target.value),onKeyDown:m,value:l,maxLength:9}),e.jsx($t,{onValueChange:g,value:v,items:[{value:"add",label:"Add time"},{value:"subtract",label:"Subtract time"}]})]})}const Mt="_delay_tel5v_17",Lt="_hasCursor_tel5v_34",Ft="_drag_tel5v_38",V={delay:Mt,hasCursor:Lt,drag:Ft};function Bt({data:n,hasCursor:t}){const{applyDelay:s,deleteEntry:r}=z(),l=_.useRef(null),{attributes:i,listeners:c,setNodeRef:d,isDragging:u,transform:p,transition:f}=W({id:n.id,data:{type:"delay"},animateLayoutChanges:()=>!1}),m={zIndex:u?2:"inherit",transform:Z.Translate.toString(p),transition:f};_.useEffect(()=>{var o;t&&((o=l==null?void 0:l.current)==null||o.focus())},[t]);const g=()=>{s(n.id)},v=()=>{r([n.id])};return e.jsxs("div",{className:R([V.delay,t?V.hasCursor:null]),ref:d,style:m,"data-testid":"rundown-delay",children:[e.jsx("span",{className:V.drag,ref:l,...i,...c,children:e.jsx(J,{})}),e.jsx(Pt,{eventId:n.id,duration:n.duration}),e.jsxs(ne,{onClick:g,variant:"ghosted-white",children:[e.jsx(He,{})," Make permanent"]}),e.jsxs(ne,{onClick:v,variant:"ghosted-white",children:[e.jsx(Ke,{}),"Cancel"]})]})}const Ut=Ve(n=>({selectedEventId:null,setSelectedEventId:t=>n(()=>({selectedEventId:t})),clearSelectedEventId:()=>n(()=>({selectedEventId:null}))})),Ot="_blink_1imw4_1",Gt="_fourtyfive_1imw4_13",Ht="_chip_1imw4_17",Kt="_over_1imw4_23",Vt="_under_1imw4_26",qt="_due_1imw4_29",L={blink:Ot,fourtyfive:Gt,chip:Ht,over:Kt,under:Vt,due:qt};function Qt({timeStart:n,delay:t,dayOffset:s,isPast:r,isLoaded:l,className:i,totalGap:c,id:d,duration:u,isLinkedToLoaded:p}){const{playback:f}=mt();if(l)return null;const m=me(f);return!m||r?e.jsx(Zt,{className:i,id:d,duration:u}):m?e.jsx(w,{text:"Expected time until start",render:e.jsx("span",{}),className:i,children:e.jsx(Wt,{timeStart:n,delay:t,dayOffset:s,totalGap:c,isLinkedToLoaded:p})}):null}function Wt({timeStart:n,delay:t,dayOffset:s,totalGap:r,isLinkedToLoaded:l}){const i=ft({timeStart:n,delay:t,dayOffset:s},{totalGap:r,isLinkedToLoaded:l}),c=i<le,d=c?"DUE":`${X(Math.abs(i),i>2*ce)}`;return e.jsx("div",{className:R([L.chip,c&&L.due]),children:d})}function Zt(n){const{className:t,id:s,duration:r}=n,{data:l}=It(),i=l[s],[c,d,u]=_.useMemo(()=>{if(!i)return[null,"none",""];const{startedAt:p,endedAt:f}=i;if(!p||!f)return[null,"none",""];const g=f-p-r,v=Math.abs(g);if(v<le)return["ontime","under","Event finished on time"];const o=g>0,b=A(v),y=`Event ran ${o?"over":"under"} time by ${b}`;return[`${o?"+":"-"}${X(v,v>2*ce)}`,o?"over":"under",y]},[i,r]);return c?e.jsx(w,{text:u,render:e.jsx("span",{}),className:R([L.chip,L[d],t]),children:c==="ontime"?e.jsx(qe,{size:"1.1rem"}):c}):null}const Jt="_blink_t5zwd_1",Xt="_fourtyfive_t5zwd_13",Yt="_rundownEvent_t5zwd_17",en="_loaded_t5zwd_39",tn="_play_t5zwd_42",nn="_roll_t5zwd_47",sn="_pause_t5zwd_52",rn="_selected_t5zwd_57",on="_hasCursor_t5zwd_60",an="_past_t5zwd_63",ln="_skip_t5zwd_63",cn="_timerNote_t5zwd_63",dn="_statusElements_t5zwd_64",un="_eventTitle_t5zwd_65",pn="_eventNote_t5zwd_66",mn="_eventTimers_t5zwd_67",fn="_eventStatus_t5zwd_68",_n="_playbackActions_t5zwd_69",vn="_binder_t5zwd_70",yn="_drag_t5zwd_97",gn="_cue_t5zwd_115",bn="_chipSection_t5zwd_143",xn="_titleSection_t5zwd_147",hn="_nextTag_t5zwd_153",jn="_progressBg_t5zwd_166",wn="_hidden_t5zwd_175",En="_flip_t5zwd_179",kn="_statusIcon_t5zwd_213",In="_active_t5zwd_217",Sn="_disabled_t5zwd_220",a={blink:Jt,fourtyfive:Xt,rundownEvent:Yt,loaded:en,play:tn,roll:nn,pause:sn,selected:rn,hasCursor:on,past:an,skip:ln,timerNote:cn,statusElements:dn,eventTitle:un,eventNote:pn,eventTimers:mn,eventStatus:fn,playbackActions:_n,binder:vn,drag:yn,cue:gn,chipSection:bn,titleSection:xn,nextTag:hn,progressBg:jn,hidden:wn,flip:En,statusIcon:kn,active:In,disabled:Sn},Cn=_.memo(Nn);function Nn({eventId:n,skip:t,isPlaying:s,isPaused:r,loaded:l,disablePlayback:i}){const{updateEntry:c}=z(),d=m=>{m.stopPropagation(),c({id:n,skip:!t})},u=m=>{m.stopPropagation(),s?D.pause():r?D.start():D.startEvent(n)},p=m=>{m.stopPropagation(),D.loadEvent(n)},f=r?{tooltip:"Continue event",backgroundColor:"#339E4E"}:s?{tooltip:"Pause event",backgroundColor:"#c05621"}:{tooltip:"Start event",backgroundColor:void 0};return e.jsxs("div",{className:a.playbackActions,children:[e.jsx(w,{text:"Skip event",render:e.jsx(G,{variant:"subtle-white"}),onClick:d,tabIndex:-1,disabled:l,style:{background:t?"#9A0000":void 0},"aria-label":"Skip event",children:t?e.jsx(Qe,{}):e.jsx(We,{})}),e.jsx(w,{text:"Load event",render:e.jsx(G,{variant:"subtle-white"}),onClick:p,tabIndex:-1,disabled:i,"aria-label":"Load event",children:e.jsx(Ze,{className:a.flip})}),e.jsx(w,{text:f.tooltip,render:e.jsx(G,{variant:"subtle-white"}),onClick:u,tabIndex:-1,disabled:i,style:{backgroundColor:f.backgroundColor},"aria-label":s?"Pause event":"Start event",children:s?e.jsx(Je,{}):e.jsx(ie,{})})]})}const Tn="_progressBar_1glmb_17",Rn={progressBar:Tn};function zn(){const n=_t(),t=St(n.current,n.duration);return e.jsx("div",{className:Rn.progressBar,style:{width:`${t}%`}})}const $n=_.memo(An);function An({eventId:n,timeStart:t,timeEnd:s,duration:r,timeStrategy:l,linkStart:i,countToEnd:c,endAction:d,timerType:u,title:p,note:f,delay:m,isNext:g,skip:v=!1,loaded:o,playback:b,isRolling:y,dayOffset:C,isPast:I,totalGap:N,isLinkedToLoaded:T,hasTriggers:x}){const[h,F]=_.useState(!1);_.useEffect(()=>{F(!0)},[]);const B=b===se.Play,U=b===se.Pause;return h?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:a.eventTimers,children:e.jsx(Et,{eventId:n,timeStart:t,timeEnd:s,duration:r,delay:m,timeStrategy:l,linkStart:i,countToEnd:c})}),e.jsxs("div",{className:a.titleSection,children:[e.jsx(xt,{title:p,entryId:n,placeholder:"Event title",className:a.eventTitle}),g&&e.jsx("span",{className:a.nextTag,children:"UP NEXT"})]}),e.jsx(Cn,{eventId:n,skip:v,isPlaying:B,isPaused:U,loaded:o,disablePlayback:v||y}),!v&&e.jsx(Qt,{className:a.chipSection,id:n,timeStart:t,delay:m,dayOffset:C,isLinkedToLoaded:T,isPast:I,isLoaded:o,totalGap:N,duration:r}),e.jsxs("div",{className:a.statusElements,id:"entry-status","data-timertype":u,children:[e.jsx("span",{className:a.eventNote,children:f}),e.jsx("div",{className:o?a.progressBg:`${a.progressBg} ${a.hidden}`,children:o&&e.jsx(zn,{})}),e.jsxs("div",{className:a.eventStatus,tabIndex:-1,children:[e.jsx(w,{text:`Time type: ${u}`,render:e.jsx("span",{}),children:e.jsx(Pn,{type:u,className:a.statusIcon})}),e.jsx(w,{text:`End action: ${d}`,render:e.jsx("span",{}),children:e.jsx(Dn,{action:d,className:a.statusIcon})}),e.jsx(w,{text:`${c?"Count to End":"Count duration"}`,render:e.jsx("span",{}),children:e.jsx(Xe,{className:`${a.statusIcon} ${c?a.active:a.disabled}`})}),e.jsx(w,{text:"Event has Triggers",render:e.jsx("span",{}),children:e.jsx(Ye,{className:`${a.statusIcon} ${x?a.active:a.disabled}`})})]})]})]}):null}function Dn(n){const{action:t,className:s}=n,r=R([t!==K.None&&a.active,s]);return t===K.LoadNext?e.jsx(rt,{className:r}):t===K.PlayNext?e.jsx(ot,{className:r}):e.jsx(ie,{className:s})}function Pn(n){const{type:t,className:s}=n;return t===H.CountUp?e.jsx(et,{className:s}):t===H.Clock?e.jsx(tt,{className:s}):t===H.None?e.jsx(nt,{className:s}):e.jsx(st,{className:s})}function Mn(n,t){if(!t)return;const s=Math.max(0,n+t);return`New start ${vt(A(s))}`}function Ln(n,t){if(n===0)return t?"(next day)":void 0;const s=X(Math.abs(n),!1);return`${n<0?"Overlap":"Gap"} ${s}${t?" (next day)":""}`}const Fn="_indicators_duajo_18",Bn="_delay_duajo_29",Un="_gap_duajo_36",q={indicators:Fn,delay:Bn,gap:Un};function On({timeStart:n,delay:t,gap:s,isNextDay:r}){const l=Ln(s,r),i=Mn(n,t);return e.jsxs("div",{className:q.indicators,children:[i&&e.jsx("div",{className:q.delay,children:i}),l&&e.jsx("div",{className:q.gap,children:l})]})}function Gn({eventId:n,cue:t,timeStart:s,timeEnd:r,duration:l,timeStrategy:i,linkStart:c,flag:d,countToEnd:u,eventIndex:p,endAction:f,timerType:m,title:g,note:v,delay:o,colour:b,isPast:y,isNext:C,skip:I=!1,parent:N,loaded:T,hasCursor:x,playback:h,isRolling:F,gap:B,isNextDay:U,dayOffset:fe,totalGap:_e,isLinkedToLoaded:ve,hasTriggers:ye,createCloneEvent:ge}){const{selectedEventId:$,setSelectedEventId:be,clearSelectedEventId:xe}=Ut(),{updateEntry:he,batchUpdateEvents:Y,deleteEntry:ee,groupEntries:je,swapEvents:we}=z(),{selectedEvents:S,unselect:Ee,setSelectedEvents:ke,clearSelectedEvents:te}=ue(),E=_.useRef(null),[Ie,Se]=_.useState(!1),[Ce]=pe(S.size>1?[{type:"item",label:"Link to previous",icon:it,onClick:()=>{Y({linkStart:!0},Array.from(S))}},{type:"item",label:"Unlink from previous",icon:at,onClick:()=>{Y({linkStart:!1},Array.from(S))}},{type:"divider"},{type:"item",label:"Group",icon:lt,onClick:()=>{je(Array.from(S)),te()},disabled:N!==null},{type:"divider"},{type:"item",label:"Delete",icon:Q,onClick:()=>{te(),ee(Array.from(S))}}]:[{type:"item",label:d?"Remove flag":"Add flag",icon:ct,onClick:()=>{he({id:n,flag:!d})}},{type:"divider"},{type:"item",label:"Add to swap",icon:dt,onClick:()=>be(n)},{type:"item",label:`Swap this event with ${$??""}`,icon:ut,onClick:()=>{$&&(we($,n),xe())},disabled:$==null||$===n},{type:"item",label:"Clone",icon:pt,onClick:ge},{type:"divider"},{type:"item",label:"Delete",icon:Q,onClick:()=>{ee([n]),Ee(n)}}]),{isDragging:Ne,attributes:Te,listeners:Re,setNodeRef:ze,transform:$e,transition:Ae}=W({id:n,data:{type:"event",parent:N},animateLayoutChanges:()=>!1}),De={zIndex:Ne?2:"inherit",transform:Z.Translate.toString($e),transition:Ae},Pe=b&&de(b);_.useEffect(()=>{if(!x||(E==null?void 0:E.current)==null)return;const k=document.activeElement,j=E.current.closest("#event-group");j&&!j.contains(k)&&E.current.focus()},[x]),_.useLayoutEffect(()=>{const k=new IntersectionObserver(([O])=>{O.isIntersecting&&Se(!0)},{root:null,threshold:1}),j=E.current;return j&&k.observe(j),()=>{j&&k.unobserve(j)}},[E]);const Me=S.has(n),Le=R([a.rundownEvent,I?a.skip:null,y?a.past:null,T?a.loaded:null,h?a[h]:null,Me?a.selected:null,x?a.hasCursor:null]),Fe=k=>{if(k.stopPropagation(),S.size>1&&k.button===2)return;const j=p-1,O=ht(k);ke({id:n,index:j,selectMode:O})},Be=h?me(h):!1;return e.jsxs("div",{className:Le,ref:ze,style:De,onClick:Fe,onContextMenu:Ce,"data-testid":"rundown-event",...Be?{"data-running":!0}:{},children:[e.jsx(On,{timeStart:s,delay:o,gap:B,isNextDay:U}),e.jsxs("div",{className:a.binder,style:{...Pe},tabIndex:-1,children:[e.jsx("span",{className:a.drag,ref:E,...Te,...Re,children:e.jsx(J,{})}),e.jsx("span",{className:a.cue,children:t})]}),Ie&&e.jsx($n,{timeStart:s,timeEnd:r,duration:l,linkStart:c,countToEnd:u,timeStrategy:i,eventId:n,eventIndex:p,endAction:f,timerType:m,title:g,note:v,delay:o,isNext:C,skip:I,loaded:T,playback:h,isRolling:F,dayOffset:fe,isPast:y,totalGap:_e,isLinkedToLoaded:ve,hasTriggers:ye})]})}const Hn="_milestone_102sw_17",Kn="_hasCursor_102sw_35",Vn="_binder_102sw_39",qn="_drag_102sw_47",M={milestone:Hn,hasCursor:Kn,binder:Vn,drag:qn};function Qn({colour:n,cue:t,entryId:s,hasCursor:r,title:l}){const i=_.useRef(null),{updateEntry:c,deleteEntry:d}=z(),{selectedEvents:u,setSingleEntrySelection:p}=ue(),[f]=pe([{type:"item",label:"Delete",icon:Q,onClick:()=>d([s])}]),{attributes:m,listeners:g,setNodeRef:v,isDragging:o,transform:b,transition:y}=W({id:s,data:{type:"milestone"},animateLayoutChanges:()=>!1}),C=x=>{x.stopPropagation(),!(u.size>1&&x.button===2)&&p({id:s})},I=(x,h)=>{c({id:s,[x]:h})},N={zIndex:o?2:"inherit",transform:Z.Translate.toString(b),transition:y},T=n&&de(n);return e.jsxs("div",{className:R([M.milestone,r?M.hasCursor:null]),ref:v,onClick:C,onContextMenu:f,style:N,"data-testid":"rundown-milestone",children:[e.jsx("div",{className:M.binder,style:{...T},children:e.jsx("span",{className:M.drag,ref:i,...m,...g,children:e.jsx(J,{})})}),e.jsx(oe,{field:"cue",initialValue:t,placeholder:"Cue",submitHandler:I}),e.jsx(oe,{field:"title",initialValue:l,placeholder:"Title",submitHandler:I})]})}function oe({field:n,initialValue:t,placeholder:s,submitHandler:r}){const l=_.useRef(null),i=_.useCallback(f=>r(n,f),[n,r]),{value:c,onChange:d,onBlur:u,onKeyDown:p}=kt(t,i,l,{submitOnEnter:!0});return e.jsx(ae,{id:n,ref:l,fluid:!0,value:c,placeholder:s,onChange:d,onBlur:u,onKeyDown:p})}function bs({isPast:n,data:t,loaded:s,hasCursor:r,isNext:l,playback:i,isRolling:c,eventIndex:d,isNextDay:u,totalGap:p,isLinkedToLoaded:f}){const{addEntry:m}=z(),g=Ct(()=>{const v=jt(t);m(v,{after:t.id})});return yt(t)?e.jsx(Gn,{eventId:t.id,eventIndex:d,cue:t.cue,timeStart:t.timeStart,timeEnd:t.timeEnd,duration:t.duration,timeStrategy:t.timeStrategy,linkStart:t.linkStart,flag:t.flag,countToEnd:t.countToEnd,endAction:t.endAction,timerType:t.timerType,title:t.title,note:t.note,delay:t.delay,colour:t.colour,isPast:n,isNext:l,skip:t.skip,parent:t.parent,loaded:s,hasCursor:r,playback:i,isRolling:c,gap:t.gap,isNextDay:u,dayOffset:t.dayOffset,totalGap:p,isLinkedToLoaded:f,createCloneEvent:g,hasTriggers:t.triggers.length>0}):gt(t)?e.jsx(Bt,{data:t,hasCursor:r}):bt(t)?e.jsx(Qn,{colour:t.colour,cue:t.cue,entryId:t.id,hasCursor:r,title:t.title}):null}export{bs as default};
2
- //# sourceMappingURL=RundownEntry-Dl4Cb_pZ.js.map
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./RundownEntry-Dl4Cb_pZ.js","./vendor-Cnciq4o_.js","./vendor-4xP-6xVS.css","./index-DdPXqLQ6.js","./index-pvMSlFrO.css","./useRundown-uuXixjnX.js","./useProjectData-BF2F6qPB.js","./useProjectData-Cw1aXCwD.css","./dateConfig-CqC6Ta_8.js","./validateEvent-Cy-jEiwB.js","./editorSettings-CL1TjKzU.js","./editorSettings-BqHbWs9b.css","./parseUserTime-DNXIMX9s.js","./rundownUtils-CPBsEZ2m.js","./Tooltip-BZrLdTBU.js","./Tooltip-CKb7gU2M.css","./MilestoneEditor-Da8oxrHI.js","./EditorUtils-DxjFOwpn.js","./EditorUtils-BXko-IuN.css","./TimeInput-C0_Nl63x.js","./TimeInput-BrVdiuOQ.css","./useCustomFields-DY13Ir96.js","./Select-CUjlJirY.js","./Select-Cd08aEcf.css","./DropdownMenu-Bn0VHzKx.js","./DropdownMenu-ByBDeesm.css","./offset-BnfjZ6JI.js","./MilestoneEditor-906SVj5M.css","./useReport-DPqY9XXp.js","./playbackstate-DzSEaiNW.js","./getProgress-Dh-Yy44B.js","./ProtectRoute-DnUCrlh6.js","./ProtectRoute-Bm5sjStK.css","./Empty-DiBXyIA8.js","./Empty-DvR62o5B.css","./useFollowComponent-C42-1XCu.js","./RundownEntry-3gFEEUnw.css"])))=>i.map(i=>d[i]);
2
- import{f as we,h as f,j as e,aN as te,be as xt,C as He,M as Ye,aM as P,ah as Xe,aO as be,aP as pe,aQ as Y,T as L,aK as ht,bf as pt,aE as Je,aF as Ze,bg as ft,b2 as mt,aT as jt,ax as yt,ay as gt,az as _t,bh as vt,aH as Et,bi as wt,aD as bt,aC as Ct,$ as kt}from"./vendor-Cnciq4o_.js";import{T as Nt,S as Ce,C as St}from"./EditorUtils-DxjFOwpn.js";import{br as De,ax as Ie,an as Ae,af as et,b0 as B,b4 as ce,B as Q,aF as Mt,bs as tt,bo as fe,bt as nt,i as X,ai as st,aA as Dt,l as ye,g as Re,M as It,bu as At,b as Rt,bv as Gt,bf as Ge,bw as ge,av as Ot}from"./index-DdPXqLQ6.js";import{P as Oe}from"./ProtectRoute-DnUCrlh6.js";import{i as ee,h as Pt,q as Bt,k as rt,j as ae,c as $t,S as j,t as Pe,r as Tt}from"./useRundown-uuXixjnX.js";import{s as _e,E as Ft,M as Kt,G as Vt,u as Lt}from"./MilestoneEditor-Da8oxrHI.js";import{M as qt,P as Wt,D as zt}from"./DropdownMenu-Bn0VHzKx.js";import{E as ot}from"./Empty-DiBXyIA8.js";import{u as ne,c as lt,a as Be}from"./dateConfig-CqC6Ta_8.js";import{u as Ut}from"./useFollowComponent-C42-1XCu.js";import{g as Qt}from"./offset-BnfjZ6JI.js";import{d as ve,e as $e,f as Te,h as Ht,i as Yt,j as Xt}from"./rundownUtils-CPBsEZ2m.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},r=new t.Error().stack;r&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[r]="c21fbff3-2a8d-4406-aff9-8787a46e2f7f",t._sentryDebugIdIdentifier="sentry-dbid-c21fbff3-2a8d-4406-aff9-8787a46e2f7f")}catch{}})();function Jt(t,r,n){if(r===n)return t;const s=[...t],[i]=s.splice(r,1);return s.splice(n,0,i),s}function ke(){const t=navigator.userAgent.toLowerCase();return t.includes("macintosh")||t.includes("mac os")}const V=ke()?"Option":"Alt",Z=ke()?"Cmd":"Ctrl",ue=we()((t,r)=>({selectedEvents:new Set,anchoredIndex:null,cursor:null,entryMode:null,setSingleEntrySelection:({id:n})=>{t({selectedEvents:new Set([n]),anchoredIndex:null,cursor:n,entryMode:"single"})},setSelectedEvents:({id:n,index:s,selectMode:i})=>{const{selectedEvents:o,anchoredIndex:m,entryMode:w}=r();if(w==="single")return t({selectedEvents:new Set([n]),anchoredIndex:s,cursor:n,entryMode:"event"});if(i==="click")return t({selectedEvents:new Set([n]),anchoredIndex:s,cursor:n,entryMode:"event"});if(i==="ctrl"){const _=De.getQueryData(Ie);if(!_)return;if(!o.has(n))return t({selectedEvents:o.add(n),anchoredIndex:s,cursor:n,entryMode:"event"});o.delete(n);const R=_.order.findIndex((N,G)=>G>s&&ee(_.entries[N])&&o.has(N));return t({selectedEvents:o,anchoredIndex:R<0?_.order.length-1:R,entryMode:"event"})}if(i==="shift"){const _=De.getQueryData(Ie);if(!_)return;const R=[];_.flatOrder.forEach(g=>{const M=_.entries[g];ee(M)&&R.push(M.id)});const N=m===null?0:Math.min(m,s),G=m===null?s:Math.max(m,s+1),u=R.slice(N,G);return t({selectedEvents:new Set([...o,...u]),anchoredIndex:s,entryMode:"event"})}},clearSelectedEvents:()=>t({selectedEvents:new Set,anchoredIndex:null,cursor:null,entryMode:null}),clearMultiSelect:()=>{const{selectedEvents:n}=r(),[s]=n;t({selectedEvents:new Set(s?[s]:[]),anchoredIndex:null,entryMode:null})},unselect:n=>{const{entryMode:s,selectedEvents:i}=r();i.delete(n),t({selectedEvents:i,entryMode:i.size===0?null:s})}}));function Qs(t){return ke()&&t.metaKey||t.ctrlKey?"ctrl":t.shiftKey?"shift":"click"}const Zt="_footer_44w0f_17",en={footer:Zt},tn=f.memo(nn);function nn({id:t,cue:r}){const n=`/ontime/load/id "${t}"`,s=`/ontime/load/cue "${r}"`;return e.jsxs("div",{className:en.footer,children:[e.jsx(Ae,{copyValue:n,children:n}),e.jsx(Ae,{copyValue:s,children:s})]})}const sn="_entryEditor_103di_17",rn="_shortcutSection_103di_28",on="_shortcuts_103di_35",ln="_spacer_103di_48",dn="_prompt_103di_52",an="_divider_103di_56",cn="_kbd_103di_62",U={entryEditor:sn,shortcutSection:rn,shortcuts:on,spacer:ln,prompt:dn,divider:an,kbd:cn},un=f.memo(xn);function xn(){return e.jsx("div",{className:U.entryEditor,"data-testid":"editor-container",children:e.jsxs("div",{className:U.shortcutSection,children:[e.jsx(Nt,{className:U.prompt,children:"Rundown shortcuts"}),e.jsx("table",{className:U.shortcuts,children:e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:"Find in rundown"}),e.jsxs("td",{children:[e.jsx(a,{children:Z}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"F"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Open Settings"}),e.jsxs("td",{children:[e.jsx(a,{children:Z}),e.jsx(y,{children:"+"}),e.jsx(a,{children:","})]})]}),e.jsx("tr",{className:U.spacer}),e.jsxs("tr",{children:[e.jsx("td",{children:"Select entry"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"↑"}),e.jsx(y,{children:"/"}),e.jsx(a,{children:"↓"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Select group"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"Shift"}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"↑"}),e.jsx(y,{children:"/"}),e.jsx(a,{children:"↓"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Deselect entry"}),e.jsx("td",{children:e.jsx(a,{children:"Esc"})})]}),e.jsx("tr",{className:U.spacer}),e.jsxs("tr",{children:[e.jsx("td",{children:"Reorder selected entry"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:Z}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"↑"}),e.jsx(y,{children:"/"}),e.jsx(a,{children:"↓"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Copy selected entry"}),e.jsxs("td",{children:[e.jsx(a,{children:Z}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"C"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Paste above"}),e.jsxs("td",{children:[e.jsx(a,{children:Z}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"Shift"}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"V"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Paste below"}),e.jsxs("td",{children:[e.jsx(a,{children:Z}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"V"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Delete selected entry"}),e.jsxs("td",{children:[e.jsx(a,{children:Z}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"Backspace"})]})]}),e.jsx("tr",{className:U.spacer}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add event below"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"E"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add event above"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"Shift"}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"E"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add group below"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"G"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add group above"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"Shift"}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"M"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add milestone below"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"G"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add milestone above"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"Shift"}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"M"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add delay below"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"D"})]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:"Add delay above"}),e.jsxs("td",{children:[e.jsx(a,{children:V}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"Shift"}),e.jsx(y,{children:"+"}),e.jsx(a,{children:"D"})]})]})]})})]})})}function y({children:t}){return e.jsx("span",{className:U.divider,children:t})}function a({children:t}){return e.jsx("span",{className:U.kbd,children:t})}function hn(){const t=ue(i=>i.selectedEvents),{data:r}=Pt(),[n,s]=f.useState(null);return f.useEffect(()=>{if(r.order.length===0){s(null);return}const i=Array.from(t).at(0);if(!i){s(null);return}const o=r.entries[i];o&&!Bt(o)?s(o):s(null)},[r.order,r.entries,t]),n?ee(n)?e.jsxs("div",{className:_e.rundownEditor,"data-testid":"editor-container",children:[e.jsx(Ft,{event:n}),e.jsx(tn,{id:n.id,cue:n.cue})]}):rt(n)?e.jsx("div",{className:_e.rundownEditor,"data-testid":"editor-container",children:e.jsx(Kt,{milestone:n})}):ae(n)?e.jsx("div",{className:_e.rundownEditor,"data-testid":"editor-container",children:e.jsx(Vt,{group:n})}):null:e.jsx(un,{})}const Fe=12;function pn(){const{data:t,rundownId:r}=$t(),[n,s]=f.useState([]),[i,o]=f.useState(null),m=f.useRef(""),w=ue(u=>u.setSelectedEvents),[_,R]=te({key:`rundown.${r}-editor-collapsed-groups`,defaultValue:[]}),N=f.useCallback(u=>{if(!t||t.length===0){o("No data");return}if(o(null),u.target.value===""){s([]);return}const g=u.target.value.toLowerCase();if(m.current=g,g.startsWith("index ")){const v=g.slice(6).trim(),{results:p,error:b}=se(v);s(p),o(b);return}if(g.startsWith("cue ")){const v=g.slice(4).trim(),{results:p,error:b}=T(v);s(p),o(b);return}const M=g.startsWith("title ")?g.slice(6).trim():g,{results:$,error:K}=re(M);s($),o(K);function se(v){const p=Number(v);if(isNaN(p)||p<1)return{results:[],error:"Invalid index"};if(p>t.length)return{results:[],error:null};let b=1;const S=[];for(let C=0;C<t.length;C++){const h=t[C];if(ee(h)){if(b===p){S.push({type:j.Event,id:h.id,index:C,eventIndex:b,title:h.title,cue:h.cue,colour:h.colour,parent:h.parent});break}b++}}return{results:S,error:null}}function T(v){let p=1,b=Fe;const S=[];for(let C=0;C<t.length&&!(b<=0);C++){const h=t[C];ee(h)&&(h.cue.toLowerCase().includes(v)&&(b--,S.push({type:j.Event,id:h.id,index:C,eventIndex:p,title:h.title,cue:h.cue,colour:h.colour,parent:h.parent})),p++)}return{results:S,error:null}}function re(v){let p=1,b=Fe;const S=[];for(let C=0;C<t.length&&!(b<=0);C++){const h=t[C];ee(h)?(h.title.toLowerCase().includes(v)&&(b--,S.push({type:j.Event,id:h.id,index:C,eventIndex:p,title:h.title,cue:h.cue,colour:h.colour,parent:h.parent})),p++):ae(h)?h.title.toLowerCase().includes(v)&&(b--,S.push({type:j.Group,id:h.id,index:C,title:h.title,colour:h.colour})):rt(h)&&h.title.toLowerCase().includes(v)&&(b--,S.push({type:j.Milestone,id:h.id,index:C,title:h.title,cue:h.cue,colour:h.colour,parent:h.parent}))}return{results:S,error:null}}},[t]),G=f.useCallback(u=>{if("parent"in u&&u.parent!==null){const M=[...new Set(_)].filter($=>$!==u.parent);R(M)}w({id:u.id,index:u.index,selectMode:"click"})},[_,R,w]);return f.useEffect(()=>{s([]),o(null),m.current&&N({target:{value:m.current}})},[t,N]),{find:N,select:G,results:n,error:i}}const fn="_entry_15pki_17",mn="_empty_15pki_18",jn="_error_15pki_19",yn="_data_15pki_40",gn="_index_15pki_46",_n="_title_15pki_55",vn="_cue_15pki_58",En="_footer_15pki_66",wn="_em_15pki_18",bn="_scrollContainer_15pki_76",F={entry:fn,empty:mn,error:jn,data:yn,index:gn,title:_n,cue:vn,footer:En,em:wn,scrollContainer:bn};function Cn({isOpen:t,onClose:r}){const{find:n,select:s,results:i,error:o}=pn(),[m,w]=f.useState(0),_=xt(n,100),R=u=>{i.length!==0&&(u.key==="ArrowDown"&&w(g=>(g+1)%i.length),u.key==="ArrowUp"&&w(g=>(g-1+i.length)%i.length),u.key==="Enter"&&(u.preventDefault(),u.stopPropagation(),N()))},N=()=>{const u=i[m];s(u),r()},G=u=>{const M=u.target.closest("li");if(M){const $=Number(M.dataset.index);isNaN($)||w($)}};return e.jsx(qt,{title:"",isOpen:t,onClose:r,showBackdrop:!0,bodyElements:e.jsxs("div",{onKeyDown:R,children:[e.jsx(et,{height:"large",fluid:!0,onChange:_,placeholder:"Search..."}),e.jsxs("ul",{className:F.scrollContainer,onMouseMove:G,children:[o&&e.jsx("li",{className:F.error,children:o}),i.length===0&&e.jsx("li",{className:F.empty,children:"No results"}),i.length>0&&i.map((u,g)=>{const M=m===g,$=u.type===j.Event?u.eventIndex:"-",K="cue"in u?u.cue:"";return e.jsxs("li",{className:F.entry,"data-selected":M,"data-index":g,onClick:N,children:[e.jsxs("div",{className:F.data,children:[e.jsx("div",{className:F.index,style:{"--color":u.colour},children:$}),e.jsx("div",{className:F.cue,children:K}),e.jsx("div",{className:F.title,children:u.title})]}),M&&e.jsx("span",{children:"Go ⏎"})]},u.id)})]})]}),footerElements:e.jsxs("div",{className:F.footer,children:["Use the keywords ",e.jsx("span",{className:F.em,children:"cue"}),", ",e.jsx("span",{className:F.em,children:"index"})," or",e.jsx("span",{className:F.em,children:"title"})," to filter search."]})})}const Ke=f.memo(kn);function kn(){const[t,r]=He();return Ye([["mod + f",r.toggle],["Escape",r.close]]),t?e.jsx(Cn,{isOpen:t,onClose:r.close}):null}const it=we(t=>({position:{x:0,y:0},options:[],isOpen:!1,setContextMenu:(r,n)=>t(()=>({position:r,options:n,isOpen:!0})),setIsOpen:r=>t(()=>({isOpen:r}))}));function Ve({children:t}){const{position:r,options:n,isOpen:s,setIsOpen:i}=it(),o=()=>i(!1);return s?e.jsxs(e.Fragment,{children:[t,e.jsx(Wt,{isOpen:!0,position:r,onClose:o,items:n})]}):t}const Nn="_header_156wk_17",Sn="_group_156wk_28",Mn="_radioButton_156wk_39",Dn="_apart_156wk_70",In="_separator_156wk_74",A={header:Nn,group:Sn,radioButton:Mn,apart:Dn,separator:In},An=f.memo(Rn);function Rn(){const[t,r]=He(),n=ue(m=>m.clearSelectedEvents),[s]=te({key:ce.editorMode,defaultValue:B.Edit}),{deleteAllEntries:i}=ne(),o=f.useCallback(()=>{i(),n(),r.close()},[n,i,r]);return e.jsxs(e.Fragment,{children:[e.jsxs(P,{render:e.jsx(Q,{variant:"subtle-destructive"}),onClick:r.open,disabled:s===B.Run,className:A.apart,children:[e.jsx(Xe,{}),"Clear all"]}),e.jsx(Mt,{isOpen:t,onClose:r.close,title:"Clear rundown",showBackdrop:!0,showCloseButton:!0,bodyElements:e.jsxs(e.Fragment,{children:["You will lose all data in your rundown. ",e.jsx("br",{})," Are you sure?"]}),footerElements:e.jsxs(e.Fragment,{children:[e.jsx(Q,{variant:"ghosted-white",size:"large",onClick:r.close,children:"Cancel"}),e.jsx(Q,{variant:"destructive",size:"large",onClick:o,children:"Delete all"})]})})]})}const Gn=f.memo(On);function On(){const[t,r]=te({key:ce.editorMode,defaultValue:B.Edit}),{offsetMode:n}=tt(),s=o=>{const m=o.at(0);m&&r(m)},i=o=>{const m=o.at(0);m&&nt(m)};return e.jsxs(be,{className:A.header,children:[e.jsxs(pe,{value:[t],onValueChange:s,className:A.group,children:[e.jsx(P,{render:e.jsx(Y,{}),value:B.Run,className:A.radioButton,children:"Run"}),e.jsx(P,{render:e.jsx(Y,{}),value:B.Edit,className:A.radioButton,children:"Edit"})]}),e.jsx(Ce,{className:A.separator}),e.jsxs(pe,{value:[n],onValueChange:i,className:A.group,children:[e.jsx(P,{render:e.jsx(Y,{}),value:fe.Absolute,className:A.radioButton,children:"Absolute"}),e.jsx(P,{render:e.jsx(Y,{}),value:fe.Relative,className:A.radioButton,children:"Relative"})]}),e.jsx(An,{})]})}const Pn=f.memo(Bn);function Bn(){const[t,r]=te({key:ce.editorMode,defaultValue:B.Edit}),{offsetMode:n}=tt(),s=o=>{const m=o.at(0);m&&r(m)},i=o=>{const m=o.at(0);m&&nt(m)};return e.jsxs(be,{className:A.header,children:[e.jsxs(pe,{value:[t],onValueChange:s,className:A.group,children:[e.jsx(P,{render:e.jsx(Y,{}),value:B.Run,className:A.radioButton,children:"Run"}),e.jsx(P,{render:e.jsx(Y,{}),value:B.Edit,className:A.radioButton,children:"Edit"})]}),e.jsx(Ce,{className:A.separator}),e.jsxs(pe,{value:[n],onValueChange:i,className:A.group,children:[e.jsx(P,{render:e.jsx(Y,{}),value:fe.Absolute,className:A.radioButton,children:"Absolute"}),e.jsx(P,{render:e.jsx(Y,{}),value:fe.Relative,className:A.radioButton,children:"Relative"})]})]})}const $n=we()(t=>({entryCopyId:null,setEntryCopyId:r=>t({entryCopyId:r})})),Tn=t=>({type:j.Event,flag:t.flag,title:t.title,note:t.note,timeStart:t.timeStart,duration:t.duration,timeEnd:t.timeEnd,timerType:t.timerType,timeStrategy:t.timeStrategy,countToEnd:t.countToEnd,linkStart:t.linkStart,endAction:t.endAction,skip:t.skip,colour:t.colour,parent:t.parent,revision:0,delay:t.delay,dayOffset:t.dayOffset,gap:0,timeWarning:t.timeWarning,timeDanger:t.timeDanger,triggers:structuredClone(t.triggers),custom:structuredClone(t.custom)}),Fn="_quickAdd_96pwt_17",Kn="_indent_96pwt_24",Le={quickAdd:Fn,indent:Kn},Ee=f.memo(Vn);function Vn({previousEventId:t,parentGroup:r,backgroundColor:n}){const{addEntry:s}=ne(),i=()=>{s({type:j.Event,parent:r},{after:t,lastEventId:t})},o=()=>{s({type:j.Delay,parent:r},{lastEventId:t,after:t})},m=()=>{s({type:j.Milestone,parent:r},{lastEventId:t,after:t})},w=()=>{r===null&&s({type:j.Group},{lastEventId:t,after:t})},_=n===""?"#9d9d9d":n;return e.jsxs(be,{className:X([Le.quickAdd,!!r&&Le.indent]),style:_?{"--user-bg":_}:{},"data-testid":"quick-add-buttons",children:[e.jsxs(P,{render:e.jsx(Q,{size:"small"}),onClick:i,children:[e.jsx(L,{}),"Event"]}),e.jsxs(P,{render:e.jsx(Q,{size:"small"}),onClick:o,children:[e.jsx(L,{}),"Delay"]}),e.jsxs(P,{render:e.jsx(Q,{size:"small"}),onClick:m,children:[e.jsx(L,{}),"Milestone"]}),r===null&&e.jsxs(P,{render:e.jsx(Q,{size:"small"}),onClick:w,children:[e.jsx(L,{}),"Group"]})]})}const Ln="_quickAdd_fgq5o_17",qn="_addButton_fgq5o_27",qe={quickAdd:Ln,addButton:qn},We=f.memo(Wn);function Wn({referenceEntryId:t,parentGroup:r,placement:n}){const{addEntry:s}=ne(),i=o=>{n==="before"?s({type:o,parent:o!==j.Group?r:null},{before:t}):s({type:o,parent:o!==j.Group?r:null},{lastEventId:t,after:t})};return e.jsx("div",{className:qe.quickAdd,"data-testid":"quick-add-inline",children:e.jsx(zt,{items:[{type:"item",icon:L,label:"Add Event",onClick:()=>i(j.Event)},{type:"item",icon:L,label:"Add Delay",onClick:()=>i(j.Delay)},{type:"item",icon:L,label:"Add Milestone",onClick:()=>i(j.Milestone)},{type:"item",icon:L,label:"Add Group",onClick:()=>i(j.Group),disabled:r!==null}],render:e.jsx(st,{size:"small",variant:"primary",className:qe.addButton}),children:e.jsx(L,{})})})}const zn=t=>{const r=it(s=>s.setContextMenu);return[s=>{s.preventDefault();const{pageX:i,pageY:o}=s;return r({x:i,y:o},t)}]},Un="_noTitle_zrdm3_26",ze={noTitle:Un};function Qn({title:t,entryId:r,placeholder:n,className:s}){const{updateEntry:i}=ne(),o=f.useRef(null),m=f.useCallback(u=>{if(u===t)return;const g=u.trim();i({id:r,title:g})},[t,i,r]),{value:w,onChange:_,onBlur:R,onKeyDown:N}=Lt(t,m,o,{submitOnEnter:!0}),G=X([s,ze.eventTitle,w?null:ze.noTitle]);return e.jsx(et,{"data-testid":"entry__title",variant:"ghosted",fluid:!0,ref:o,value:w,className:G,placeholder:n,onChange:_,onBlur:R,onKeyDown:N})}const Hn="_blink_6ndm2_1",Yn="_fourtyfive_6ndm2_13",Xn="_group_6ndm2_17",Jn="_hasCursor_6ndm2_31",Zn="_expanded_6ndm2_34",es="_binder_6ndm2_39",ts="_header_6ndm2_54",ns="_titleRow_6ndm2_62",ss="_metaRow_6ndm2_67",rs="_metaEntry_6ndm2_73",os="_strike_6ndm2_81",ls="_over_6ndm2_85",is="_under_6ndm2_89",ds="_drag_6ndm2_93",as="_isDragging_6ndm2_111",cs="_notAllowed_6ndm2_114",I={blink:Hn,fourtyfive:Yn,group:Xn,hasCursor:Jn,expanded:Zn,binder:es,header:ts,titleRow:ns,metaRow:ss,metaEntry:rs,strike:os,over:ls,under:is,drag:ds,isDragging:as,notAllowed:cs};function us({data:t,hasCursor:r,collapsed:n,onCollapse:s}){var h,oe;const i=f.useRef(null),{clone:o,ungroup:m,deleteEntry:w}=ne(),{selectedEvents:_,setSingleEntrySelection:R}=ue(),[N]=zn([{type:"item",label:"Clone Group",icon:ht,onClick:()=>o(t.id)},{type:"item",label:"Ungroup",icon:pt,onClick:()=>m(t.id),disabled:t.entries.length===0},{type:"divider"},{type:"item",label:"Delete Group",icon:Xe,onClick:()=>w([t.id])}]),{attributes:G,listeners:u,setNodeRef:g,transform:M,transition:$,isDragging:K,isOver:se,over:T}=Je({id:t.id,data:{type:"group"},animateLayoutChanges:()=>!1}),re=O=>{O.stopPropagation(),!(_.size>1&&O.button===2)&&R({id:t.id})},v=t.colour&&Dt(t.colour),p=K&&(T==null?void 0:T.id)&&lt((h=T.data.current)==null?void 0:h.type,(oe=T.data.current)==null?void 0:oe.parent),[b,S]=(()=>{if(t.targetDuration===null)return[null,null];const O=t.duration-t.targetDuration;if(O===0)return[null,"under"];const le=Math.abs(O);return[`${O<0?"-":"+"}${ye(le,le>2*It)}`,Qt(O)]})(),C={zIndex:K?2:"inherit",transform:Ze.Translate.toString(M),transition:$,cursor:se?p?"grabbing":"no-drop":"inherit"};return e.jsxs("div",{className:X([I.group,r&&I.hasCursor,!n&&I.expanded]),ref:g,onClick:re,onContextMenu:N,style:{...C,"--user-bg":t.colour||"#929292"},"data-testid":"rundown-group",children:[e.jsx("div",{className:I.binder,style:{...v},tabIndex:-1,children:e.jsx("span",{className:X([I.drag,K&&I.isDragging,K&&!p&&I.notAllowed]),ref:i,...G,...u,children:e.jsx(ft,{})})}),e.jsxs("div",{className:I.header,children:[e.jsxs("div",{className:I.titleRow,children:[e.jsx(Qn,{title:t.title,entryId:t.id,placeholder:"Group title"}),e.jsx(st,{"aria-label":"Collapse",variant:"subtle-white",onClick:()=>s(!n,t.id),children:n?e.jsx(mt,{}):e.jsx(jt,{})})]}),e.jsxs("div",{className:I.metaRow,children:[e.jsxs("div",{className:I.metaEntry,children:[e.jsx("div",{children:"Start"}),e.jsx("div",{children:Re(t.timeStart)})]}),e.jsxs("div",{className:I.metaEntry,children:[e.jsx("div",{children:"End"}),e.jsx("div",{children:Re(t.timeEnd)})]}),e.jsxs("div",{className:I.metaEntry,children:[e.jsx("div",{children:"Duration"}),b===null?e.jsx("div",{className:X([S!==null&&I[S]]),children:ye(t.duration)}):e.jsxs("div",{children:[e.jsx("span",{className:I.strike,children:ye(t.duration)}),e.jsx("span",{className:X([S!==null&&I[S]]),children:b})]})]}),e.jsxs("div",{className:I.metaEntry,children:[e.jsx("div",{children:"Entries"}),e.jsx("div",{children:t.entries.length})]})]})]})]})}const xs="_groupEnd_1mlc9_17",hs={groupEnd:xs};function ps({id:t,colour:r}){const{attributes:n,listeners:s,setNodeRef:i,transform:o,transition:m}=Je({id:t,data:{type:"end-group"},animateLayoutChanges:()=>!1,disabled:!0}),w={transform:Ze.Transform.toString(o),transition:m};return e.jsx("div",{className:hs.groupEnd,ref:i,...n,...s,style:{...w,...r?{"--user-bg":r}:{}},tabIndex:-1})}const fs="_empty_pqnxu_17",ms="_inline_pqnxu_22",Ue={empty:fs,inline:ms};function js(t){const{handleAddNew:r}=t;return e.jsxs("div",{className:Ue.empty,children:[e.jsx(ot,{injectedStyles:{marginTop:"5vh",marginBottom:"3rem"}}),e.jsxs("div",{className:Ue.inline,children:[e.jsxs(Q,{onClick:()=>r(j.Event),variant:"primary",size:"large",children:[e.jsx(L,{}),"Create Event"]}),e.jsx(Ce,{}),e.jsxs(Q,{onClick:()=>r(j.Group),variant:"primary",size:"large",children:[e.jsx(L,{})," Create Group"]})]})]})}const ys="_rundownWrapper_qmpnm_17",gs="_rundownContainer_qmpnm_22",_s="_list_qmpnm_28",vs="_spacer_qmpnm_44",Es="_entryWrapper_qmpnm_48",ws="_entryIndex_qmpnm_55",bs="_flag_qmpnm_66",Cs="_index_qmpnm_72",ks="_entry_qmpnm_48",z={rundownWrapper:ys,rundownContainer:gs,list:_s,spacer:vs,entryWrapper:Es,entryIndex:ws,flag:bs,index:Cs,entry:ks},Ns=f.lazy(()=>kt(()=>import("./RundownEntry-Dl4Cb_pZ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36]),import.meta.url));function Ss({data:t,rundownMetadata:r}){var Me;const{order:n,entries:s,id:i}=t,o=At(),[m,w]=f.useState(()=>Be(n,s)),[_,R]=f.useState(r),[N,G]=te({key:`rundown.${i}-editor-collapsed-groups`,defaultValue:[]}),{addEntry:u,deleteEntry:g,move:M,reorderEntry:$}=ne(),{entryCopyId:K,setEntryCopyId:se}=$n(),[T]=te({key:ce.editorMode,defaultValue:B.Edit}),{clearSelectedEvents:re,setSelectedEvents:v,cursor:p}=ue(),b=f.useRef(null),S=f.useRef(null);Ut({followRef:b,scrollRef:S,doFollow:!0,followTrigger:T===B.Edit?p:o==null?void 0:o.selectedEventId});const C=yt(gt(Ct,{activationConstraint:{distance:10}})),h=f.useCallback(d=>{if(!d)return;const{entry:c,index:l}=ve(s,n,d);g([d]),c&&l!==null&&v({id:c.id,selectMode:"click",index:l})},[s,n,g,v]),oe=f.useCallback((d,c,l=!1)=>{var k;const x=l?((k=ve(s,n,d??"").entry)==null?void 0:k.id)??null:d;if(c===null)return;const E=s[c];if((E==null?void 0:E.type)===j.Event){const D=Tn(E);u(D,{after:x??void 0})}},[u,n,s]),O=f.useCallback((d,c,l=!1)=>{u(d,{after:c&&!l?c:void 0,before:c&&l?c:void 0,lastEventId:!l&&c?c:void 0})},[u]),le=f.useCallback((d,c)=>{if(n.length<1)return;let l=d;if(d===null){const E=c==="up"?$e(s,n):Te(s,n);if(ae(E)){v({id:E.id,selectMode:"click",index:c==="up"?n.length:0});return}l=(E==null?void 0:E.id)??null}if(l===null)return;const x=c==="up"?Ht(s,n,l):Yt(s,n,l);x.entry!==null&&x.index!==null&&v({id:x.entry.id,selectMode:"click",index:x.index})},[n,s,v]),Ne=f.useCallback((d,c)=>{if(n.length<1)return;if(d===null){const x=c==="up"?$e(s,n):Te(s,n);x!==null&&v({id:x.id,selectMode:"click",index:c==="up"?n.length:0});return}const l=c==="up"?ve(s,n,d):Xt(s,n,d);l.entry!==null&&l.index!==null&&v({id:l.entry.id,selectMode:"click",index:l.index})},[n,s,v]),J=f.useCallback(d=>!!N.find(c=>c===d),[N]),ie=f.useCallback((d,c)=>{G(l=>{const x=J(c);return d&&!x?[...new Set(l).add(c)]:!d&&x?[...l].filter(E=>E!==c):l})},[J,G]),Se=f.useCallback(async(d,c)=>{if(d==null)return;const l=await M(d,c);l&&ie(!1,l)},[ie,M]);Ye([["alt + ArrowDown",()=>Ne(p,"down"),{preventDefault:!0,usePhysicalKeys:!0}],["alt + ArrowUp",()=>Ne(p,"up"),{preventDefault:!0,usePhysicalKeys:!0}],["alt + shift + ArrowDown",()=>le(p,"down"),{preventDefault:!0,usePhysicalKeys:!0}],["alt + shift + ArrowUp",()=>le(p,"up"),{preventDefault:!0,usePhysicalKeys:!0}],["alt + mod + ArrowDown",()=>Se(p,"down"),{preventDefault:!0,usePhysicalKeys:!0}],["alt + mod + ArrowUp",()=>Se(p,"up"),{preventDefault:!0,usePhysicalKeys:!0}],["Escape",()=>re(),{preventDefault:!0,usePhysicalKeys:!0}],["mod + Backspace",()=>h(p),{preventDefault:!0,usePhysicalKeys:!0}],["alt + E",()=>O({type:j.Event},p),{preventDefault:!0,usePhysicalKeys:!0}],["alt + shift + E",()=>O({type:j.Event},p,!0),{preventDefault:!0,usePhysicalKeys:!0}],["alt + G",()=>O({type:j.Group},p),{preventDefault:!0,usePhysicalKeys:!0}],["alt + shift + G",()=>O({type:j.Group},p,!0),{preventDefault:!0,usePhysicalKeys:!0}],["alt + D",()=>O({type:j.Delay},p),{preventDefault:!0,usePhysicalKeys:!0}],["alt + shift + D",()=>O({type:j.Delay},p,!0),{preventDefault:!0,usePhysicalKeys:!0}],["alt + M",()=>O({type:j.Milestone},p),{preventDefault:!0,usePhysicalKeys:!0}],["alt + shift + M",()=>O({type:j.Milestone},p,!0),{preventDefault:!0,usePhysicalKeys:!0}],["mod + C",()=>se(p)],["mod + V",()=>oe(p,K)],["mod + shift + V",()=>oe(p,K,!0),{preventDefault:!0,usePhysicalKeys:!0}],["alt + backspace",()=>h(p),{preventDefault:!0,usePhysicalKeys:!0}]]),f.useEffect(()=>{w(Be(n,s)),R(r)},[n,s,r]),f.useEffect(()=>{var l;if(T!==B.Run||!(o!=null&&o.selectedEventId))return;const d=n.findIndex(x=>x===o.selectedEventId),c=(l=s[o.selectedEventId])==null?void 0:l.parent;c&&G(x=>[...x].filter(E=>E!==c)),v({id:o.selectedEventId,selectMode:"click",index:d})},[T,s,o.selectedEventId,n,G,v]);const dt=d=>{var he;const{active:c,over:l}=d;if(!(l!=null&&l.id)||c.id===l.id||!c.data.current||!l.data.current)return;const x=c.data.current.sortable.index,E=l.data.current.sortable.index;let k=x<E?"after":"before",D=l.id;const xe=((he=c.data.current)==null?void 0:he.type)===j.Group;if(xe&&!lt(l.data.current.type,l.data.current.parent,k,J(D)))return;if(D.startsWith("end-"))D=D.replace("end-",""),k==="before"&&(k="insert");else{const q=t.entries[D];ae(q)&&k==="after"&&(xe?D=q.id:q.entries.length===0?(D=q.id,k="insert"):(D=q.entries[0],k="before"))}const me=structuredClone(m);w(q=>Jt(q,x,E)),$(c.id,D,k).catch(q=>{w(me)})},at=d=>{var l;((l=d.active.data.current)==null?void 0:l.type)===j.Group&&ie(!0,d.active.id)},ct=d=>{var x,E,k,D;if(((x=d.active.data.current)==null?void 0:x.type)==="group"||((k=(E=d.over)==null?void 0:E.data.current)==null?void 0:k.type)!=="group")return;const c=(D=d.over)==null?void 0:D.id;J(c)&&ie(!1,c)};if(m.length<1)return e.jsx(js,{handleAddNew:d=>u({type:d})});const de=T===B.Edit;return e.jsx("div",{className:z.rundownContainer,ref:S,"data-testid":"rundown",children:e.jsx(_t,{onDragEnd:dt,onDragStart:at,onDragOver:ct,sensors:C,collisionDetection:vt,children:e.jsx(Et,{items:m,strategy:wt,children:e.jsxs("div",{className:z.list,children:[de&&e.jsx(Ee,{previousEventId:null,parentGroup:null}),m.map((d,c)=>{if(d.startsWith("end-")){const je=d.split("end-")[1],ut=J(je),W=_[je];return ut?null:e.jsxs(f.Fragment,{children:[de&&(W==null?void 0:W.groupEntries)===0&&e.jsx(Ee,{previousEventId:null,parentGroup:je,backgroundColor:W==null?void 0:W.groupColour}),e.jsx(ps,{id:d,colour:W==null?void 0:W.groupColour},d)]},d)}const l=s[d],x=_[d];if(!l||!x||l.type!==j.Group&&x.groupId!==null&&J(x.groupId))return null;const E=(o==null?void 0:o.nextEventId)===l.id,k=l.id===p,D=x.groupColour===""?"#9d9d9d":x.groupColour,xe=c===0,me=d===n.at(-1),he=x.thisId!==x.groupId?x.groupId:null,q=x.groupId;return e.jsxs(f.Fragment,{children:[de&&k&&!xe&&e.jsx(We,{placement:"before",referenceEntryId:l.id,parentGroup:he}),ae(l)?e.jsx(us,{data:l,hasCursor:k,collapsed:J(l.id),onCollapse:ie}):e.jsxs("div",{className:z.entryWrapper,"data-testid":`entry-${x.eventIndex}`,style:D?{"--user-bg":D}:{},children:[ee(l)&&e.jsxs("div",{className:z.entryIndex,children:[l.flag&&e.jsx(bt,{className:z.flag}),e.jsx("div",{className:z.index,children:x.eventIndex})]}),e.jsx("div",{className:z.entry,ref:k?b:void 0,children:e.jsx(Ns,{type:l.type,isPast:x.isPast,eventIndex:x.eventIndex,data:l,loaded:x.isLoaded,hasCursor:k,isNext:E,isNextDay:x.isNextDay,playback:x.isLoaded?o.playback:void 0,isRolling:o.playback===Rt.Roll,totalGap:x.totalGap,isLinkedToLoaded:x.isLinkedToLoaded})},l.id)]}),de&&k&&!me&&e.jsx(We,{placement:"after",referenceEntryId:l.id,parentGroup:q})]},l.id)}),de&&e.jsx(Ee,{previousEventId:((Me=_[Pe])==null?void 0:Me.groupId)??_[Pe].thisId,parentGroup:null}),e.jsx("div",{className:z.spacer})]})})})})}function Qe({isSmallDevice:t}){const{data:r,status:n,rundownMetadata:s}=Tt();return e.jsxs("div",{className:z.rundownWrapper,children:[t?e.jsx(Pn,{}):e.jsx(Gn,{}),n==="success"&&r&&s?e.jsx(Ss,{data:r,rundownMetadata:s}):e.jsx(ot,{text:"Connecting to server"})]})}const Ms="_rundownExport_h38r0_21",Ds="_extracted_h38r0_25",Is="_list_h38r0_25",As="_side_h38r0_29",Rs="_rundown_h38r0_21",H={rundownExport:Ms,extracted:Ds,list:Is,side:As,rundown:Rs},Gs=f.memo(Os);function Os(){const t=window.location.pathname.includes("/rundown"),[r]=te({key:ce.editorMode,defaultValue:B.Edit});if(Gt()&&t)return e.jsx(Oe,{permission:"editor",children:e.jsxs("div",{className:X([H.rundownExport,H.extracted]),"data-target":"small-device","data-testid":"panel-rundown",children:[e.jsx(Ke,{}),e.jsx(Ge,{suppressSettings:!0}),e.jsx("div",{className:H.rundown,children:e.jsx(ge,{children:e.jsx(Ve,{children:e.jsx(Qe,{isSmallDevice:!0})})})})]})});const s=t&&r==="run";return e.jsx(Oe,{permission:"editor",children:e.jsxs("div",{className:X([H.rundownExport,t&&H.extracted]),"data-testid":"panel-rundown",children:[e.jsx(Ke,{}),t&&e.jsx(Ge,{suppressSettings:!0}),e.jsxs("div",{className:H.rundown,children:[e.jsx("div",{className:H.list,children:e.jsxs(ge,{children:[!t&&e.jsx(St,{onClick:i=>Ot("rundown",i)}),e.jsx(Ve,{children:e.jsx(Qe,{})})]})}),!s&&e.jsx("div",{className:H.side,children:e.jsx(ge,{children:e.jsx(hn,{})})})]})]})})}const Hs=Object.freeze(Object.defineProperty({__proto__:null,default:Gs},Symbol.toStringTag,{value:"Module"}));export{Hs as R,Qn as T,zn as a,Tn as c,Qs as g,ue as u};
3
- //# sourceMappingURL=RundownExport-BPDLhvsM.js.map
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- import{l as _,h,y as k,j as e}from"./vendor-Cnciq4o_.js";import{P as T,g as m,C as O,D as C,b as S,i as d,y as x,f as E,E as A,a as j,G as P,u as M,c as I,d as V,L as F,h as D,O as L}from"./index-DdPXqLQ6.js";import{E as R}from"./EmptyPage-X6EO1Y5W.js";import{V as z}from"./ViewLogo-CdsW41HC.js";import{O as N,i as H,V as W}from"./ViewParamsEditor-YoYxps2g.js";import{u as B}from"./useWindowTitle-BQ1kqXfk.js";import{g as $}from"./common.options-p5f_zJ2-.js";import{S as G,a as Q}from"./viewLoader.utils-CYlNKkLE.js";import{a as U,g as X}from"./offset-BnfjZ6JI.js";import{g as Y}from"./presentation.utils-BfcniGcl.js";import{u as q}from"./useProjectData-BF2F6qPB.js";import"./Empty-DiBXyIA8.js";import"./Select-CUjlJirY.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},t=new s.Error().stack;t&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[t]="c0843f2c-758b-4cf8-94af-bd7808858124",s._sentryDebugIdIdentifier="sentry-dbid-c0843f2c-758b-4cf8-94af-bd7808858124")}catch{}})();const J=s=>[{title:N.ClockOptions,collapsible:!0,options:[$(s)]},{title:N.ElementVisibility,collapsible:!0,options:[{id:"hideCards",title:"Hide cards section",description:"Hides the card section with the timers",type:"boolean",defaultValue:!1}]}];function K(s,t){return{hideCards:H((i=>(t==null?void 0:t.get(i))??s.get(i))("hideCards"))}}function Z(){const[s]=_(),t=h.use(T);return h.useMemo(()=>{const i=t?new URLSearchParams(t.search):void 0;return K(s,i)},[t,s])}function ee(){const{width:s}=k();return h.useMemo(()=>s<1300,[s])}function se(s){const[t,a]=(()=>{const i=m(s);return i.endsWith("AM")?[i.slice(0,-2),"AM"]:i.endsWith("PM")?[i.slice(0,-2),"PM"]:[i,void 0]})();return{seconds:O(s),display:t,meridian:a}}const te=[...Array(12).keys()],ie=[...Array(60).keys()];function ae({hideCards:s}){const t=ee(),{clock:a,playback:i}=C(),r=i!==S.Stop;if(t&&!s)return e.jsx(re,{clock:a,onAir:r});const{seconds:c,display:n,meridian:l}=se(a);return e.jsx("div",{className:"studio__clock",children:e.jsxs("div",{className:"clock-container",children:[ie.map(o=>e.jsx("div",{className:d(["tick",o<=c&&"tick--active"]),style:{transform:`rotate(${180+o*6}deg) translateY(var(--half-size))`}},o)),te.map(o=>e.jsx("div",{className:"tick tick--active",style:{transform:`rotate(${180+o*30}deg) translateX(var(--smaller-half-size))`}},o)),e.jsx("div",{className:d(["ampm",!!l&&"ampm--active"]),children:l}),e.jsx("div",{className:"time time--large",children:n}),e.jsx("div",{className:d(["on-air",r&&"on-air--active"]),children:"ON AIR"})]})})}function re({clock:s,onAir:t}){const a=m(s);return e.jsxs("div",{className:"studio__clock studio__clock--small",children:[e.jsx(G,{className:"time time--small",time:a}),e.jsx("div",{className:d(["on-air",t&&"on-air--active"]),children:"ON AIR"})]})}const v={format12:"h:mm a",format24:"HH:mm"};function ce(s){return{actualStart:m(s.actualStart,v),expectedEnd:m(s.expectedEnd,v),offset:U(s.offset)}}function de(s,t){return{title:(s==null?void 0:s.title)||"-",startedAt:m(t.startedAt,v),expectedEnd:m(t.expectedFinish,v),timer:x(t.current)}}function ne({viewSettings:s}){const{getLocalizedString:t}=E(),{eventNow:a,eventNext:i,message:r,time:c,offset:n,rundown:l,expectedRundownEnd:o}=A(),f=ce({offset:n,actualStart:l.actualStart,expectedEnd:o}),u=de(a,c),b=(i==null?void 0:i.title)||"-",y=r.timer.visible&&r.timer.text||"-",p=r.timer.secondarySource==="secondary"&&r.secondary||"-",w=Y(s,void 0,c.phase===j.Warning,c.phase===j.Danger),g=X(n);return e.jsxs("div",{className:"studio__timers",children:[e.jsx("div",{className:"card",id:"card-schedule",children:e.jsxs("div",{className:"card__row",children:[e.jsxs("div",{children:[e.jsx("div",{className:"label",children:t("common.started_at")}),e.jsx("div",{className:"runtime-timer",children:f.actualStart})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label center",children:"Over / under"}),e.jsx("div",{className:d(["runtime-timer","center",!a&&"muted",g&&g]),children:f.offset})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label right",children:t("common.expected_end")}),e.jsx("div",{className:"runtime-timer right",children:f.expectedEnd})]})]})}),e.jsxs("div",{className:"card",id:"card-event-now",children:[e.jsxs("div",{className:"card__row",children:[e.jsxs("div",{children:[e.jsx("div",{className:"label",children:t("common.now")}),e.jsx("div",{className:"title",children:u.title})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label right",children:t("common.next")}),e.jsx("div",{className:"title right",children:b})]})]}),e.jsxs("div",{className:"card__row",children:[e.jsxs("div",{children:[e.jsx("div",{className:"label",children:t("common.started_at")}),e.jsx("div",{className:"runtime-timer",children:u.startedAt})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label"}),e.jsx("div",{className:d(["event-timer",c.phase===j.Overtime&&"event-timer--finished",c.playback===S.Pause&&"event-timer--paused"]),style:{"--phase-color":w},"data-phase":c.phase,children:u.timer})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label right",children:t("common.expected_end")}),e.jsx("div",{className:"runtime-timer right",children:u.expectedEnd})]})]})]}),e.jsx(oe,{}),e.jsx("div",{className:"card",id:"card-timer-message",children:e.jsxs("div",{children:[e.jsx("div",{className:"label",children:"Timer message"}),e.jsx("div",{className:d(["extra",!1]),children:y})]})}),e.jsx("div",{className:"card",id:"card-secondary-message",children:e.jsxs("div",{children:[e.jsx("div",{className:"label",children:"Secondary message"}),e.jsx("div",{className:d(["extra",!p&&"muted"]),children:p})]})})]})}function oe(){const s=P();return e.jsx("div",{className:"card",id:"card-aux",children:e.jsxs("div",{className:"card__row",children:[e.jsxs("div",{children:[e.jsx("div",{className:"label",children:"Aux 1"}),e.jsx("div",{className:"extra",children:x(s.aux1)})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label center",children:"Aux 2"}),e.jsx("div",{className:"extra center",children:x(s.aux2)})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label right",children:"Aux 3"}),e.jsx("div",{className:"extra right",children:x(s.aux3)})]})]})})}function le(){const s=M(l=>l.mirror),{data:t,status:a}=q(),{data:i,status:r}=I(),{data:c,status:n}=V();return{data:{projectData:t,isMirrored:s,settings:c,viewSettings:i},status:Q([a,r,n])}}function _e(){const{data:s,status:t}=le();return B("Studio Clock"),t==="pending"?e.jsx(F,{}):t==="error"?e.jsx(R,{text:"There was an error fetching data, please refresh the page."}):e.jsx(me,{...s})}function me({projectData:s,isMirrored:t,settings:a,viewSettings:i}){const{hideCards:r}=Z(),c=D(a==null?void 0:a.timeFormat),n=h.useMemo(()=>J(c),[c]);return e.jsxs("div",{className:d(["studio",t&&"mirror"]),"data-testid":"studio-view",children:[e.jsx(W,{target:L.StudioClock,viewOptions:n}),e.jsxs("div",{className:"project-header",children:[(s==null?void 0:s.logo)&&e.jsx(z,{name:s.logo,className:"logo"}),e.jsx("div",{className:"title",children:s.title})]}),e.jsxs("div",{className:d(["studio-contents",r&&"studio-contents--onecol"]),children:[e.jsx(ae,{hideCards:r}),!r&&e.jsx(ne,{viewSettings:i})]})]})}export{_e as default};
2
- //# sourceMappingURL=Studio-BLCIas53.js.map
Binary file
Binary file
@@ -1,2 +0,0 @@
1
- import{j as e,h as D,b3 as P,b4 as $,b5 as M,b6 as U,b7 as A,b8 as z,b9 as V}from"./vendor-Cnciq4o_.js";import{y as I,bh as h,A as q,r as b,i,J,a as W,s as B,g as w,bj as H,bk as K,w as g,bl as L,bm as Q,bn as X,bo as F,T as N,bp as Y,bq as Z}from"./index-DdPXqLQ6.js";import{T as o}from"./Tooltip-BZrLdTBU.js";import{s as R}from"./useRundown-uuXixjnX.js";import{a as ee,g as te}from"./offset-BnfjZ6JI.js";import{i as E}from"./playbackstate-DzSEaiNW.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new a.Error().stack;s&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[s]="f46e241e-2b89-4d77-86d3-4d50daa3790a",a._sentryDebugIdIdentifier="sentry-dbid-f46e241e-2b89-4d77-86d3-4d50daa3790a")}catch{}})();function y(a,s=3,n,r="due"){return a!==null&&a<=0?r:_(a,s,n)}function _(a,s=3,n){return I(a,{fallback:s===3?h:q,direction:n})}function G(a){return a!==null&&a>b?[a%b,Math.floor(a/b)]:[a,0]}const ae="_label_1k32k_18",se="_clock_1k32k_23",ne="_column_1k32k_35",le="_over_1k32k_50",re="_under_1k32k_56",u={label:ae,clock:se,column:ne,over:le,under:re};function S({label:a,value:s,state:n="active",className:r,testId:d}){return e.jsxs("div",{className:i([u.column,r]),"data-state":n,children:[e.jsx("span",{className:u.label,children:a}),e.jsx("span",{className:u.clock,"data-testid":d,children:s})]})}function ce({state:a,value:s,testId:n}){return e.jsxs("div",{className:u.column,"data-state":a,children:[e.jsxs("div",{className:u.label,children:[e.jsx("span",{className:u.over,children:"Over"}),e.jsx("span",{children:"/"}),e.jsx("span",{className:u.under,children:"Under"})]}),e.jsx("span",{className:u.clock,"data-testid":n,children:s})]})}const de="_column_1x7b2_17",ie="_row_1x7b2_26",oe="_metadataRow_1x7b2_33",me="_labelledElement_1x7b2_40",ue="_icon_1x7b2_46",xe="_label_1x7b2_40",pe="_time_1x7b2_57",be="_daySpan_1x7b2_64",fe="_muted_1x7b2_72",je="_labelTitle_1x7b2_76",Te="_dueTime_1x7b2_85",t={column:de,row:ie,metadataRow:oe,labelledElement:me,icon:ue,label:xe,time:pe,daySpan:be,muted:fe,labelTitle:je,dueTime:Te};function Se(){const{plannedEnd:a,plannedStart:s,actualStart:n,expectedEnd:r}=H(),d=s===null?h:w(s),[m,x]=D.useMemo(()=>G(a),[a]),[l,c]=D.useMemo(()=>G(r),[r]),p=m===null?h:w(m);return e.jsxs("div",{className:t.column,children:[e.jsxs("div",{className:t.row,children:[e.jsx("span",{className:t.label,children:"Start"}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(o,{text:"Planned start time",render:e.jsx(P,{className:t.icon})}),e.jsx("span",{className:i([t.time,s===null&&t.muted]),children:d})]}),e.jsxs("div",{className:t.labelledElement,"data-testid":"actual-start-time",children:[e.jsx(o,{text:"Actual start time",render:e.jsx($,{className:t.icon})}),e.jsx("span",{className:i([t.time,n===null&&t.muted]),children:_(n)})]})]}),e.jsxs("div",{className:t.row,children:[e.jsx("span",{className:t.label,children:"End"}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(o,{text:"Planned end time",render:e.jsx(P,{className:t.icon})}),x>0?e.jsx(o,{text:`Rundown spans over ${x+1} days`,render:e.jsx("span",{className:i([t.time,t.daySpan]),"data-day-offset":x}),children:p}):e.jsx("span",{className:i([t.time,a===null&&t.muted]),children:p})]}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(o,{text:"Expected end time",render:e.jsx(M,{className:t.icon})}),l!==null&&c>0?e.jsx(o,{text:`Rundown spans over ${c+1} days`,render:e.jsx("span",{className:i([t.time,t.daySpan]),"data-day-offset":c}),children:_(l)}):e.jsx("span",{className:i([t.time,l===null&&t.muted]),children:_(l)})]})]})]})}function ke(){return e.jsxs("div",{className:t.column,children:[e.jsx(ve,{}),e.jsx(_e,{})]})}function ve(){const{clock:a,mode:s,groupExpectedEnd:n,actualGroupStart:r,currentDay:d,playback:m}=Q(),{currentGroupId:x}=X(),l=R(x),c=E(m),p=(()=>{if(!c||!l||l.timeStart===null)return null;const j=a+d*b;return s===F.Absolute?l.timeStart+l.duration-j:r+l.duration-j})(),T=y(p,3,N.CountDown),v=n!==null?n-a:null,f=y(v,3,N.CountDown);return e.jsxs("div",{className:t.metadataRow,children:[e.jsx("span",{className:l!=null&&l.title?t.labelTitle:t.label,children:`${(l==null?void 0:l.title)||"Group"} `}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(o,{text:"Time to planned group end",render:e.jsx(U,{className:t.icon})}),e.jsx("span",{className:i([t.time,(!l||!c)&&t.muted,T==="due"&&t.dueTime]),children:T})]}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(o,{text:"Time to expected group end",render:e.jsx(A,{className:t.icon})}),e.jsx("span",{className:i([t.time,!n&&t.muted,f==="due"&&t.dueTime]),children:f})]})]})}function _e(){const{clock:a,mode:s,actualStart:n,plannedStart:r,playback:d,currentDay:m}=Y(),{id:x,expectedStart:l}=Z(),c=R(x),p=E(d),T=(()=>{if(!p||!c)return null;const O=c.timeStart+c.dayOffset*b,C=a+m*b;return s===F.Absolute?O-C:O+n-r-C})(),v=y(T,3,N.CountDown),f=l!==null?l-a:null,j=y(f,3,N.CountDown),k=(c==null?void 0:c.title)??null;return e.jsxs("div",{className:t.metadataRow,children:[e.jsx("span",{className:k?t.labelTitle:t.label,children:`${k||"Flag"} `}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(o,{text:"Time to next flag planned start",render:e.jsx(z,{className:t.icon})}),e.jsx("span",{"data-testid":"flag-plannedStart",className:i([t.time,(!c||!p)&&t.muted,v==="due"&&t.dueTime]),children:v})]}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(o,{text:"Time to next flag expected start",render:e.jsx(V,{className:t.icon})}),e.jsx("span",{"data-testid":"flag-expectedStart",className:i([t.time,f===null&&t.muted,j==="due"&&t.dueTime]),children:j})]})]})}function Oe(){const{numEvents:a,selectedEventIndex:s}=K(),n=s!==null?s+1:g,r=a?`${n} of ${a||g}`:g;return e.jsx(S,{label:"Progress",value:r,state:s===null?"muted":"active"})}function Ce(){const{offset:a,playback:s}=L(),n=E(s),r=te(n?a:null),d=ee(n?a:null);return e.jsx(ce,{state:r,value:d,testId:"offset"})}function De({className:a}){const{clock:s}=B(),n=w(s);return e.jsx(S,{label:"Time now",value:n,className:a})}function Pe({className:a}){const s=J(),n=s.phase===W.Pending,r=n?"Count to start":"Running timer",d=I(n?s.secondaryTimer:s.current,{fallback:h}),m=n?"waiting":s.current===null?"muted":"active";return e.jsx(S,{label:r,value:d,state:m,className:a})}export{De as C,ke as M,Ce as O,Oe as P,Se as S,Pe as T,_ as f};
2
- //# sourceMappingURL=TimeElements-rlwX9Mgy.js.map
@@ -1,2 +0,0 @@
1
- import{h as p,l as U,j as i,y as W}from"./vendor-Cnciq4o_.js";import{r as w,P as q,H as E,l as N,M as C,g as O,I as F,i as b,J as G,q as $,f as B,v as M,d as J,L as Q,o as K,h as X,O as Y,s as Z}from"./index-DdPXqLQ6.js";import{E as tt}from"./EmptyPage-X6EO1Y5W.js";import{V as et}from"./ViewLogo-CdsW41HC.js";import{O as I,i as H,V as st}from"./ViewParamsEditor-YoYxps2g.js";import{u as nt}from"./useWindowTitle-BQ1kqXfk.js";import{a as it,S as ot}from"./viewLoader.utils-CYlNKkLE.js";import{i as j,a as v,d as at,u as rt}from"./useRundown-uuXixjnX.js";import{g as lt}from"./common.options-p5f_zJ2-.js";import{g as ct,a as z,b as ut,c as mt}from"./rundownUtils-CPBsEZ2m.js";import{g as dt}from"./getProgress-Dh-Yy44B.js";import{u as ft}from"./useProjectData-BF2F6qPB.js";import"./Empty-DiBXyIA8.js";import"./Select-CUjlJirY.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]="948a5936-3b08-462d-8d0d-2ee14ae31e45",e._sentryDebugIdIdentifier="sentry-dbid-948a5936-3b08-462d-8d0d-2ee14ae31e45")}catch{}})();function ht(e,t){if(!t)return 0;const s=e.timeStart+e.dayOffset*w,n=t.timeStart+t.duration+t.dayOffset*w;return s===n?0:(s>n,s-n)}function D(e,t,s){if(!t.current)return;if(!(e!=null&&e.current)){t.current.scrollTo({left:0,behavior:"smooth"});return}const n=e.current.getBoundingClientRect(),a=t.current.getBoundingClientRect(),o=n.left-a.left+t.current.scrollLeft-s;t.current.scrollTo({left:o,behavior:"smooth"})}function pt({followRef:e,scrollRef:t,doFollow:s,selectedEventId:n,leftOffset:a=0,setScrollFlag:o}){return p.useEffect(()=>{!s||!t.current||(o==null||o(!0),window.requestAnimationFrame(()=>{D(n!==null?e:null,t,a),o==null||o(!1)}))},[e,t,s,a,o,n]),p.useCallback((u=e,m=t,c=a)=>{m.current&&D(n!==null?u:null,m,c)},[e,t,a,n])}const xt=e=>[{title:I.ClockOptions,collapsible:!0,options:[lt(e)]},{title:I.ElementVisibility,collapsible:!0,options:[{id:"hidePast",title:"Hide Past Events",description:"Whether to hide events that have passed",type:"boolean",defaultValue:!1},{id:"autosize",title:"Autosize timeline",description:"Timeline will adjust sizes to help with readability and automatically scroll if necessary",type:"boolean",defaultValue:!1}]}];function gt(e,t){const s=n=>(t==null?void 0:t.get(n))??e.get(n);return{hidePast:H(s("hidePast")),autosize:H(s("autosize"))}}function R(){const[e]=U(),t=p.use(q);return p.useMemo(()=>{const n=t?new URLSearchParams(t.search):void 0;return gt(e,n)},[t,e])}function _t(e,t,s,n,a){const r=(t<e?t+w:t)-e,u=n*a/r;return{left:(s-e)*a/r,width:u}}function yt(e){return Math.floor(e/E)}function bt(e){return Math.ceil(e/E)}function Tt(e,t){const s=[];for(let n=e;n<t;n++)s.push(n);return s}function jt(e,t){return t==="done"||t==="live"?t:e<=0?"pending":N(e,e>C*2)}function wt(e,t){const{hidePast:s}=R();return p.useMemo(()=>{if(e.length===0)return{scopedRundown:[],firstStart:0,totalDuration:0};const a=[];let o=t?1/0:-1,r=null,u=0,m=null;for(let c=0;c<e.length;c++){const l=e[c];if(j(l)&&v(l)){if(l.id===t&&(o=c),s&&c<o)continue;a.push(l),r===null&&(r=l.timeStart);const d=ht(l,m);d===0?u+=l.duration:d>0?u+=d+l.duration:d<0&&(u+=Math.max(l.duration+d,0)),at(l,m)&&(m=l)}}return{scopedRundown:a,firstStart:r??0,totalDuration:u}},[s,e,t])}function St(e,t){var o,r;if(e.length===0)return{now:null,next:null,followedBy:null};let s=t?ct(e,t):null;j(s)||(s=null);const n=s?(o=z(e,s.id))==null?void 0:o.nextEvent:ut(e).firstEvent,a=n?(r=z(e,n.id))==null?void 0:r.nextEvent:null;return{now:s,next:n,followedBy:a}}function vt(e,t,s,n,a,o=100){let r=1/0;const u=e.map(({start:l,duration:d})=>{const g=_t(t,s,l,d,n);return r=Math.min(r,g.width),g});if(!a)return{positions:u,scale:1,totalWidth:n};const m=r<o?o/r:1;return m===1?{positions:u,scale:1,totalWidth:n}:{positions:u.map(l=>({left:l.left*m,width:l.width*m})),scale:m,totalWidth:n*m}}const Et="_markers_gfywu_17",Nt={markers:Et};function Pt(e){const{startHour:t,endHour:s}=e,n=Tt(t,s);return i.jsx("div",{className:Nt.markers,children:n.map(a=>i.jsx("span",{},a))})}const Lt="_timelineContainer_4bums_21",kt="_scroll_4bums_26",Ct="_timeline_4bums_21",Ot="_column_4bums_37",Mt="_maybeInline_4bums_45",Bt="_timelineBlock_4bums_52",It="_smallArea_4bums_64",Ht="_content_4bums_64",zt="_timeOverview_4bums_68",Dt="_hide_4bums_72",At="_status_4bums_98",Vt="_delay_4bums_105",$t="_cross_4bums_115",Rt="_separeLeft_4bums_121",h={timelineContainer:Lt,scroll:kt,timeline:Ct,column:Ot,maybeInline:Mt,timelineBlock:Bt,smallArea:It,content:Ht,timeOverview:zt,hide:Dt,status:At,delay:Vt,cross:$t,separeLeft:Rt},A={format12:"hh:mm a",format24:"HH:mm"};function Ut({colour:e,delay:t,duration:s,hasLink:n,left:a,status:o,start:r,dayOffset:u,totalGap:m,isLinkedToLoaded:c,title:l,width:d,cue:g,ref:S}){const P=O(r,A),L=N(s),y=r+t,T=t>0,f=F(e,.7),x=d>25,_=d<40;return i.jsxs("div",{ref:S,className:b([h.column,_&&h.smallArea]),style:{"--color":e,"--lighter":f??"",left:`${a}px`,width:`${d}px`},"data-testid":g,children:[o==="live"?i.jsx(Wt,{}):i.jsx("div",{"data-status":o,className:h.timelineBlock}),i.jsxs("div",{className:b([h.content,d<20&&h.hide,!n&&h.separeLeft]),"data-status":o,style:{"--color":e},children:[i.jsxs("div",{className:h.maybeInline,children:[i.jsx("div",{className:b([T&&h.cross]),children:P}),T&&i.jsx("div",{className:h.delay,children:O(y,A)}),_&&i.jsx(V,{delay:t,start:r,dayOffset:u,totalGap:m,isLinkedToLoaded:c,status:o})]}),x&&i.jsxs(i.Fragment,{children:[!_&&i.jsx(V,{delay:t,start:r,dayOffset:u,totalGap:m,isLinkedToLoaded:c,status:o}),i.jsx("div",{children:l})]})]}),i.jsx("div",{className:h.timeOverview,"data-status":o,children:o!=="done"&&i.jsx("div",{className:h.duration,children:L})})]})}function V({delay:e,start:t,dayOffset:s,totalGap:n,isLinkedToLoaded:a,status:o}){const r=$(),{getLocalizedString:u}=B(),{timeToStart:m}=M({timeStart:t,delay:e,dayOffset:s,totalGap:n,isLinkedToLoaded:a,countToEnd:!1,duration:0},r);let c=jt(m,o);return c==="live"?c=u("timeline.live"):c==="pending"&&(c=u("timeline.due")),i.jsx("div",{className:h.status,children:c})}function Wt(){const{current:e,duration:t}=G(),s=dt(e,t);return i.jsx("div",{"data-status":"live",className:h.timelineBlock,style:{"--progress":`${s}%`}})}const qt=p.memo(Ft);function Ft({firstStart:e,rundown:t,selectedEventId:s,totalDuration:n}){const{width:a}=W(),{hidePast:o,autosize:r}=R(),u=p.useRef(null),m=p.useRef(null),{lastEvent:c}=mt(t),l=yt(e),d=bt(e+n+((c==null?void 0:c.delay)??0)),g=l*E,S=d*E;pt({followRef:u,scrollRef:m,doFollow:r,selectedEventId:s,leftOffset:o?0:a/6});const{positions:P,totalWidth:L}=p.useMemo(()=>{const f=t.filter(x=>j(x)&&v(x)).map(x=>({start:x.timeStart+(x.dayOffset??0)*w+(x.delay??0),duration:x.duration}));return vt(f,g,S,a,r)},[t,g,S,a,r]);if(n===0)return null;let y=s?"done":"future";const T={};return t.forEach(f=>{j(f)&&v(f)&&(y==="live"&&(y="future"),f.id===s&&(y="live"),T[f.id]=y)}),i.jsx("div",{ref:m,className:b([h.timelineContainer,r&&h.scroll]),children:i.jsxs("div",{className:h.timeline,style:{width:L},children:[i.jsx(Pt,{startHour:l,endHour:d}),t.map((f,x)=>{if(!j(f)||!v(f))return null;const _=P[x];return _?i.jsx(Ut,{ref:f.id===s?u:void 0,colour:f.colour,delay:f.delay??0,duration:f.duration,hasLink:!!f.linkStart,left:_.left,status:T[f.id],start:f.timeStart+(f.dayOffset??0)*w,totalGap:f.totalGap,isLinkedToLoaded:f.isLinkedToLoaded,dayOffset:f.dayOffset,title:f.title,cue:f.cue,width:_.width},f.id):null})]})})}const k=p.memo(Gt);function Gt({category:e,content:t,title:s,status:n}){const a=b(["section",e==="now"&&"section--now"]),o=b(["section-content",t?`section-content--${e}`:"section-content--subdue"]);return i.jsxs("div",{className:a,"data-testid":e,children:[i.jsxs("div",{className:"section-title",children:[i.jsx("span",{className:"section-title__label",children:s}),n&&i.jsx("span",{className:"section-title__status",children:n})]}),i.jsx("div",{className:o,children:t??"-"})]})}function Jt({now:e,next:t,followedBy:s}){const{getLocalizedString:n}=B(),a=$(),o=(e==null?void 0:e.title)??"-",r=n("timeline.due").toUpperCase(),u=t!==null?t.title:"-",m=s!==null?s.title:"-";let c,l;if(t!==null){const{timeToStart:d}=M(t,a);d<=0?c=r:c=N(d,d>C*2)}if(s!==null){const{timeToStart:d}=M(s,a);d<=0?l=r:l=N(d,d>C*2)}return i.jsxs("div",{className:"title-grid",children:[i.jsx(k,{title:n("timeline.live"),content:o,category:"now"}),i.jsx(k,{title:n("common.next"),status:c,content:u,category:"next"}),i.jsx(k,{title:n("timeline.followedby"),status:l,content:m,category:"followedBy"})]})}function Qt(){const{data:e,status:t}=rt(),{data:s,status:n}=ft(),{data:a,status:o}=J();return{data:{events:e,projectData:s,settings:a},status:it([t,n,o])}}function de(){const{data:e,status:t}=Qt();return nt("Timeline"),t==="pending"?i.jsx(Q,{}):t==="error"?i.jsx(tt,{text:"There was an error fetching data, please refresh the page."}):i.jsx(Kt,{...e})}function Kt({events:e,projectData:t,settings:s}){const{selectedEventId:n}=K(),{scopedRundown:a,firstStart:o,totalDuration:r}=wt(e,n),{now:u,next:m,followedBy:c}=p.useMemo(()=>St(a,n),[a,n]),l=X(s==null?void 0:s.timeFormat),d=p.useMemo(()=>xt(l),[l]);return i.jsxs("div",{className:"timeline","data-testid":"timeline-view",children:[i.jsx(st,{target:Y.Timeline,viewOptions:d}),i.jsxs("div",{className:"project-header",children:[(t==null?void 0:t.logo)&&i.jsx(et,{name:t.logo,className:"logo"}),i.jsx("div",{className:"title",children:t.title}),i.jsx(Xt,{})]}),i.jsx(Jt,{now:u,next:m,followedBy:c}),i.jsx(qt,{firstStart:o,rundown:a,selectedEventId:n,totalDuration:r})]})}function Xt(){const{getLocalizedString:e}=B(),{clock:t}=Z(),s=O(t);return i.jsxs("div",{className:"clock-container",children:[i.jsx("div",{className:"label",children:e("common.time_now")}),i.jsx(ot,{time:s,className:"time"})]})}export{de as default};
2
- //# sourceMappingURL=TimelinePage-BC-pnISF.js.map
@@ -1,2 +0,0 @@
1
- import{h as p,j as r,l as be}from"./vendor-Cnciq4o_.js";import{P as xe,T as m,a as w,b as C,u as Se,c as Te,d as Ce,L as ke,e as Me,f as Pe,g as Oe,h as Ne,i as h,O as ze}from"./index-DdPXqLQ6.js";import{M as Fe}from"./MultiPartProgressBar-mGPuP1Wd.js";import{E as je}from"./EmptyPage-X6EO1Y5W.js";import{T as W}from"./TitleCard-C-Tw72nZ.js";import{V as Ve}from"./ViewLogo-CdsW41HC.js";import{m as I,O as y,a as A,i as u,g,b as _,c as De,V as Le}from"./ViewParamsEditor-YoYxps2g.js";import{u as Ee}from"./useWindowTitle-BQ1kqXfk.js";import{a as He,S as Be}from"./viewLoader.utils-CYlNKkLE.js";import{g as We}from"./presentation.utils-BfcniGcl.js";import{g as Ie,h as Ae,s as Re}from"./common.options-p5f_zJ2-.js";import{v as Ze}from"./validateEvent-Cy-jEiwB.js";import{i as _e}from"./playbackstate-DzSEaiNW.js";import{u as $e}from"./useCustomFields-DY13Ir96.js";import{u as Ue}from"./useProjectData-BF2F6qPB.js";import"./getProgress-Dh-Yy44B.js";import"./Empty-DiBXyIA8.js";import"./Select-CUjlJirY.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new e.Error().stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="10f9d73e-b55b-44af-b449-29b3efd46792",e._sentryDebugIdIdentifier="sentry-dbid-10f9d73e-b55b-44af-b449-29b3efd46792")}catch{}})();const Ke=(e,o,t)=>{for(;e<o;){const i=Math.floor((e+o)/2);if(i===e)break;t(i)?e=i:o=i}return e};function R({children:e,mode:o="multi",min:t=16,max:i=256,...n}){const d=p.useRef(null),a=p.useCallback(()=>{const s=d.current;return s?s.scrollHeight>s.clientHeight||s.scrollWidth>s.clientWidth:!1},[]),l=p.useCallback(()=>{const s=d.current;if(!s)return;const c=s.style.visibility;s.style.visibility="hidden";const f=Ke(t,i+1,v=>(s.style.fontSize=`${v}px`,!a()));s.style.fontSize=`${f}px`,s.style.visibility=c},[a,t,i]);return p.useEffect(()=>{const s=d.current;if(!s)return;l();const c=new ResizeObserver(l);return c.observe(s),()=>c.disconnect()},[e,o,l]),r.jsx("div",{ref:d,style:{whiteSpace:o==="single"?"nowrap":"normal"},...n,children:e})}const Qe=[{value:"no-overrides",label:"No Overrides"},{value:m.CountUp,label:"Count Up"},{value:m.CountDown,label:"Count Down"},{value:m.Clock,label:"Clock"}],qe=(e,o)=>{const t=I(o,[{value:"none",label:"None"},{value:"title",label:"Title"},{value:"note",label:"Note"}]),i=I(o,[{value:"none",label:"None"},{value:"title",label:"Title"},{value:"note",label:"Note"}]);return[{title:y.ClockOptions,collapsible:!0,options:[Ie(e)]},{title:y.TimerOptions,collapsible:!0,options:[Ae,Re,{id:"timerType",title:"Timer type",description:"Override the timer type",type:"option",values:Qe,defaultValue:"no-overrides"},{id:"freezeOvertime",title:"Freeze Overtime",description:"If active, the timer will not count into negative numbers",type:"boolean",defaultValue:!1},{id:"freezeMessage",title:"Freeze Message",description:"An optional message to show when the timer is in overtime (must be set in combination with Freeze Overtime)",type:"string",defaultValue:"",placeholder:"e.g. Time is up!"},{id:"hidePhase",title:"Hide progress styles",description:"Whether to suppress the progress styles (warning, danger and overtime)",type:"boolean",defaultValue:!1}]},{title:y.DataSources,collapsible:!0,options:[{id:"main",title:"Main text",description:"Select the data source for the main text",type:"option",values:t,defaultValue:"title"},{id:"secondary-src",title:"Secondary text",description:"Select the data source for the secondary text",type:"option",values:i,defaultValue:"none"}]},{title:y.ElementVisibility,collapsible:!0,options:[{id:"hideClock",title:"Hide Time Now",description:"Hides the Time Now field",type:"boolean",defaultValue:!1},{id:"hideCards",title:"Hide Cards",description:"Hides the Now and Next cards",type:"boolean",defaultValue:!1},{id:"hideProgress",title:"Hide progress bar",description:"Hides the progress bar",type:"boolean",defaultValue:!1},{id:"hideMessage",title:"Hide Timer Message",description:"Prevents displaying fullscreen messages in the timer",type:"boolean",defaultValue:!1},{id:"hideSecondary",title:"Hide Auxiliary timer / Secondary message",description:"Prevents the screen from displaying the secondary timer field",type:"boolean",defaultValue:!1},{id:"hideLogo",title:"Hide the project logo",description:"Prevents the screen from displaying the given project logo",type:"boolean",defaultValue:!1}]},{title:y.StyleOverride,collapsible:!0,options:[{id:"font",title:"Font",description:"Font family, will use the fonts available in the system",type:"string",placeholder:"Open Sans (default)"},{id:"keyColour",title:"Key Colour",description:"Background or key colour for entire view. Default: #101010",type:"colour",defaultValue:"101010"},{id:"timerColour",title:"Timer Colour",description:"Timer colour. Default: #f6f6f6",type:"colour",defaultValue:"f6f6f6"}]}]};function Ge(e,o){const t=n=>(o==null?void 0:o.get(n))??e.get(n),i=Ze(t("timerType"),m.None);return{hideClock:u(t("hideClock")),hideCards:u(t("hideCards")),hideProgress:u(t("hideProgress")),hideMessage:u(t("hideMessage")),hideSecondary:u(t("hideSecondary")),hideLogo:u(t("hideLogo")),hideTimerSeconds:u(t("hideTimerSeconds")),removeLeadingZeros:!u(t("showLeadingZeros")),mainSource:t("main"),secondarySource:t("secondary-src"),timerType:i===m.None?void 0:i,freezeOvertime:u(t("freezeOvertime")),freezeMessage:t("freezeMessage")??"",hidePhase:u(t("hidePhase")),font:t("font")??void 0,keyColour:A(t("keyColour")),timerColour:A(t("timerColour"))}}function Je(){const[e]=be(),o=p.use(xe);return p.useMemo(()=>{const i=o?new URLSearchParams(o.search):void 0;return Ge(e,i)},[o,e])}function Xe(e){return e.text!==""&&e.visible}function Ye(e){return e===C.Play||e===C.Roll}function et(e,o){return(e??0)+(o??0)}function tt(e){return e!==m.None&&e!==m.Clock}function ot(e){return e!==m.Clock}const Z={4:28,5:28,6:25,8:18,9:18};function it(e,o){const t=e.length;let i=100/(t-1)*1.25;Z[t]&&(i=Z[t]);let n=i*.2;return o&&(i*=.6,o.length>25&&(n=100/(o.length-1)*1.8)),{timerFontSize:i,externalFontSize:n}}function st(e,o,t,i,n,d){return d?{showEndMessage:!1,showFinished:!1,showWarning:!1,showDanger:!1}:e===m.CountDown||o?{showEndMessage:i&&n!=="",showFinished:t===w.Overtime,showWarning:t===w.Warning,showDanger:t===w.Danger}:{showEndMessage:!1,showFinished:!1,showWarning:!1,showDanger:!1}}function rt(e,o,t,i,n,d){if(!d){if(e.timer.secondarySource==="aux1"||e.timer.secondarySource==="aux2"||e.timer.secondarySource==="aux3")return _(o,m.CountDown,t,{removeSeconds:i,removeLeadingZero:n});if(e.timer.secondarySource==="secondary"&&e.secondary)return e.secondary}}function nt(e,o,t,i,n,d){if(n===C.Stop)return{showNow:!1,nowMain:void 0,nowSecondary:void 0,showNext:!1,nextMain:void 0,nextSecondary:void 0};const a=_e(n)&&d!==w.Pending,l=a?g(e,t??"title"):void 0,s=a?g(e,i):void 0,c=a?g(o,t??"title"):g(e,t??"title"),f=a?g(o,i):g(e,i);return{showNow:!!l||!!s,nowMain:l,nowSecondary:s,showNext:!!c||!!f,nextMain:c,nextSecondary:f}}function at(){const e=Se(c=>c.mirror),{data:o,status:t}=Ue(),{data:i,status:n}=Te(),{data:d,status:a}=Ce(),{data:l,status:s}=$e();return{data:{customFields:l,projectData:o,isMirrored:e,settings:d,viewSettings:i},status:He([t,n,a,s])}}function Pt(){const{data:e,status:o}=at();return Ee("Timer"),o==="pending"?r.jsx(ke,{}):o==="error"?r.jsx(je,{text:"There was an error fetching data, please refresh the page."}):r.jsx(lt,{...e})}function lt({customFields:e,projectData:o,isMirrored:t,settings:i,viewSettings:n}){const{eventNext:d,eventNow:a,message:l,time:s,clock:c,timerTypeNow:f,countToEndNow:v,auxTimer:b}=Me(),{hideClock:$,hideCards:U,hideProgress:K,hideMessage:Q,hideSecondary:q,hideLogo:G,hideTimerSeconds:k,removeLeadingZeros:M,mainSource:J,secondarySource:X,timerType:P,freezeOvertime:O,freezeMessage:N,hidePhase:Y,font:z,keyColour:F,timerColour:ee}=Je(),{getLocalizedString:j}=Pe(),V=j("common.minutes"),x=P??f,D=Xe(l.timer),{showEndMessage:te,showFinished:S,showWarning:oe,showDanger:ie}=st(f,v,s.phase,O,N,Y),L=Ye(s.playback),se=!$&&ot(x),re=!K&&tt(x),{showNow:ne,nowMain:ae,nowSecondary:le,showNext:de,nextMain:ce,nextSecondary:ue}=nt(a,d,J,X,s.playback,s.phase),me=et(s.duration,s.addedTime),fe=Oe(c),he=De(O,f,v,c,s,P),E=_(he,x,V,{removeSeconds:k,removeLeadingZero:M}),pe=l.timer.secondarySource==="aux1"?b.aux1:l.timer.secondarySource==="aux2"?b.aux2:l.timer.secondarySource==="aux3"?b.aux3:null,T=rt(l,pe,V,k,M,q),H=We(n,ee,oe,ie),{timerFontSize:ge,externalFontSize:ye}=it(E,T),ve={...F&&{"--timer-bg":F},...H&&{"--timer-colour":H},...z&&{"--timer-font":z}},B=Ne(i==null?void 0:i.timeFormat),we=p.useMemo(()=>qe(B,e),[e,B]);return r.jsxs("div",{"data-testid":"timer-view",className:h(["stage-timer",t&&"mirror",S&&"stage-timer--finished"]),style:ve,children:[!G&&(o==null?void 0:o.logo)&&r.jsx(Ve,{name:o.logo,className:"logo"}),r.jsx(Le,{target:ze.Timer,viewOptions:we}),r.jsx("div",{className:h(["blackout",l.timer.blackout&&"blackout--active"])}),!Q&&r.jsx("div",{className:h(["message-overlay",D&&"message-overlay--active"]),children:r.jsx(R,{mode:"multi",min:32,max:256,className:h(["message",l.timer.blink&&"blink"]),children:l.timer.text})}),se&&r.jsxs("div",{className:"clock-container",children:[r.jsx("div",{className:"label",children:j("common.time_now")}),r.jsx(Be,{time:fe,className:"clock"})]}),r.jsxs("div",{className:h(["timer-container",l.timer.blink&&!D&&"blink"]),children:[te?r.jsx(R,{mode:"multi",min:64,max:256,className:"end-message",children:N}):r.jsx("div",{className:h(["timer",!L&&"timer--paused",S&&"timer--finished"]),style:{fontSize:`${ge}vw`},"data-phase":s.phase,children:E}),r.jsx("div",{className:h(["secondary",!T&&"secondary--hidden"]),style:{fontSize:`${ye}vw`},children:T})]}),re&&r.jsx(Fe,{className:h(["progress-container",!L&&"progress-container--paused"]),now:s.current,complete:me,normalColor:n.normalColor,warning:a==null?void 0:a.timeWarning,warningColor:n.warningColor,danger:a==null?void 0:a.timeDanger,dangerColor:n.dangerColor,hideOvertime:!S}),!U&&r.jsxs(r.Fragment,{children:[ne&&r.jsx(W,{className:"event now",label:"now",title:ae,secondary:le}),de&&r.jsx(W,{className:"event next",label:"next",title:ce,secondary:ue})]})]})}export{Pt as default};
2
- //# sourceMappingURL=Timer-DgmA0De-.js.map
Binary file
Binary file
@@ -1 +0,0 @@
1
- {"version":3,"file":"Timer-DgmA0De-.js","sources":["../../src/common/components/fit-text/fitText.utils.ts","../../src/common/components/fit-text/FitText.tsx","../../src/views/timer/timer.options.ts","../../src/views/timer/timer.utils.ts","../../src/views/timer/useTimerData.ts","../../src/views/timer/Timer.tsx"],"sourcesContent":["/**\n * @param low inclusive, must be true on predicate function\n * @param high exclusive,\n * @param predicate predicate function\n */\nexport const bsearch = (low: number, high: number, predicate: (mid: number) => boolean): number => {\n while (low < high) {\n const mid = Math.floor((low + high) / 2);\n if (mid === low) break;\n\n if (predicate(mid)) {\n low = mid;\n } else {\n high = mid;\n }\n }\n return low;\n};\n","/**\n * Copied from\n * https://github.com/namhong2001/react-textfit/blob/master/index.tsx\n */\n\nimport { HTMLAttributes, PropsWithChildren, useCallback, useEffect, useRef } from 'react';\n\nimport { bsearch } from './fitText.utils';\n\ninterface FitTextProps extends HTMLAttributes<HTMLDivElement> {\n mode?: 'single' | 'multi';\n min?: number; // inclusive\n max?: number; // inclusive\n}\n\nexport function FitText({\n children,\n mode = 'multi',\n min = 16,\n max = 256,\n ...elementProps\n}: PropsWithChildren<FitTextProps>) {\n const ref = useRef<HTMLDivElement>(null);\n\n const isOverflown = useCallback(() => {\n const el = ref.current;\n if (!el) return false;\n return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;\n }, []);\n\n const setFontSize = useCallback(() => {\n const el = ref.current;\n if (!el) return;\n\n const originVisibility = el.style.visibility;\n\n el.style.visibility = 'hidden';\n const fontSize = bsearch(min, max + 1, (mid) => {\n el.style.fontSize = `${mid}px`;\n return !isOverflown();\n });\n el.style.fontSize = `${fontSize}px`;\n el.style.visibility = originVisibility;\n }, [isOverflown, min, max]);\n\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n\n setFontSize();\n const observer = new ResizeObserver(setFontSize);\n observer.observe(el);\n\n return () => observer.disconnect();\n }, [children, mode, setFontSize]);\n\n return (\n <div\n ref={ref}\n style={{\n whiteSpace: mode === 'single' ? 'nowrap' : 'normal',\n }}\n {...elementProps}\n >\n {children}\n </div>\n );\n}\n","import { use, useMemo } from 'react';\nimport { useSearchParams } from 'react-router';\nimport { CustomFields, OntimeEvent, TimerType } from 'ontime-types';\nimport { validateTimerType } from 'ontime-utils';\n\nimport type { SelectOption } from '../../common/components/select/Select';\nimport {\n getTimeOption,\n hideTimerSeconds,\n showLeadingZeros,\n} from '../../common/components/view-params-editor/common.options';\nimport { OptionTitle } from '../../common/components/view-params-editor/constants';\nimport { ViewOption } from '../../common/components/view-params-editor/viewParams.types';\nimport { makeOptionsFromCustomFields } from '../../common/components/view-params-editor/viewParams.utils';\nimport { PresetContext } from '../../common/context/PresetContext';\nimport { isStringBoolean, makeColourString } from '../../features/viewers/common/viewUtils';\n\n// manually match the properties of TimerType excluding the None\nconst timerDisplayOptions: SelectOption[] = [\n { value: 'no-overrides', label: 'No Overrides' },\n { value: TimerType.CountUp, label: 'Count Up' },\n { value: TimerType.CountDown, label: 'Count Down' },\n { value: TimerType.Clock, label: 'Clock' },\n];\n\nexport const getTimerOptions = (timeFormat: string, customFields: CustomFields): ViewOption[] => {\n const mainOptions = makeOptionsFromCustomFields(customFields, [\n { value: 'none', label: 'None' },\n { value: 'title', label: 'Title' },\n { value: 'note', label: 'Note' },\n ]);\n const secondaryOptions = makeOptionsFromCustomFields(customFields, [\n { value: 'none', label: 'None' },\n { value: 'title', label: 'Title' },\n { value: 'note', label: 'Note' },\n ]);\n\n return [\n { title: OptionTitle.ClockOptions, collapsible: true, options: [getTimeOption(timeFormat)] },\n {\n title: OptionTitle.TimerOptions,\n collapsible: true,\n options: [\n hideTimerSeconds,\n showLeadingZeros,\n {\n id: 'timerType',\n title: 'Timer type',\n description: 'Override the timer type',\n type: 'option',\n values: timerDisplayOptions,\n defaultValue: 'no-overrides',\n },\n {\n id: 'freezeOvertime',\n title: 'Freeze Overtime',\n description: 'If active, the timer will not count into negative numbers',\n type: 'boolean',\n defaultValue: false,\n },\n {\n id: 'freezeMessage',\n title: 'Freeze Message',\n description:\n 'An optional message to show when the timer is in overtime (must be set in combination with Freeze Overtime)',\n type: 'string',\n defaultValue: '',\n placeholder: 'e.g. Time is up!',\n },\n {\n id: 'hidePhase',\n title: 'Hide progress styles',\n description: 'Whether to suppress the progress styles (warning, danger and overtime)',\n type: 'boolean',\n defaultValue: false,\n },\n ],\n },\n {\n title: OptionTitle.DataSources,\n collapsible: true,\n options: [\n {\n id: 'main',\n title: 'Main text',\n description: 'Select the data source for the main text',\n type: 'option',\n values: mainOptions,\n defaultValue: 'title',\n },\n {\n id: 'secondary-src',\n title: 'Secondary text',\n description: 'Select the data source for the secondary text',\n type: 'option',\n values: secondaryOptions,\n defaultValue: 'none',\n },\n ],\n },\n {\n title: OptionTitle.ElementVisibility,\n collapsible: true,\n options: [\n {\n id: 'hideClock',\n title: 'Hide Time Now',\n description: 'Hides the Time Now field',\n type: 'boolean',\n defaultValue: false,\n },\n {\n id: 'hideCards',\n title: 'Hide Cards',\n description: 'Hides the Now and Next cards',\n type: 'boolean',\n defaultValue: false,\n },\n {\n id: 'hideProgress',\n title: 'Hide progress bar',\n description: 'Hides the progress bar',\n type: 'boolean',\n defaultValue: false,\n },\n {\n id: 'hideMessage',\n title: 'Hide Timer Message',\n description: 'Prevents displaying fullscreen messages in the timer',\n type: 'boolean',\n defaultValue: false,\n },\n {\n id: 'hideSecondary',\n title: 'Hide Auxiliary timer / Secondary message',\n description: 'Prevents the screen from displaying the secondary timer field',\n type: 'boolean',\n defaultValue: false,\n },\n {\n id: 'hideLogo',\n title: 'Hide the project logo',\n description: 'Prevents the screen from displaying the given project logo',\n type: 'boolean',\n defaultValue: false,\n },\n ],\n },\n {\n title: OptionTitle.StyleOverride,\n collapsible: true,\n options: [\n {\n id: 'font',\n title: 'Font',\n description: 'Font family, will use the fonts available in the system',\n type: 'string',\n placeholder: 'Open Sans (default)',\n },\n {\n id: 'keyColour',\n title: 'Key Colour',\n description: 'Background or key colour for entire view. Default: #101010',\n type: 'colour',\n defaultValue: '101010',\n },\n {\n id: 'timerColour',\n title: 'Timer Colour',\n description: 'Timer colour. Default: #f6f6f6',\n type: 'colour',\n defaultValue: 'f6f6f6',\n },\n ],\n },\n ];\n};\n\ntype TimerOptions = {\n hideClock: boolean;\n hideCards: boolean;\n hideProgress: boolean;\n hideMessage: boolean;\n hideSecondary: boolean;\n hideLogo: boolean;\n hideTimerSeconds: boolean;\n removeLeadingZeros: boolean;\n mainSource: keyof OntimeEvent | null;\n secondarySource: keyof OntimeEvent | null;\n timerType?: TimerType;\n freezeOvertime: boolean;\n freezeMessage: string;\n hidePhase: boolean;\n font?: string;\n keyColour?: string;\n timerColour?: string;\n};\n\n/**\n * Utility extract the view options from URL Params\n * the names and fallbacks are manually matched with timerOptions\n */\nfunction getOptionsFromParams(searchParams: URLSearchParams, defaultValues?: URLSearchParams): TimerOptions {\n // Helper to get value from either source, prioritizing defaultValues\n const getValue = (key: string) => defaultValues?.get(key) ?? searchParams.get(key);\n\n // Get timerType from either source\n const timerType = validateTimerType(getValue('timerType'), TimerType.None);\n\n return {\n hideClock: isStringBoolean(getValue('hideClock')),\n hideCards: isStringBoolean(getValue('hideCards')),\n hideProgress: isStringBoolean(getValue('hideProgress')),\n hideMessage: isStringBoolean(getValue('hideMessage')),\n hideSecondary: isStringBoolean(getValue('hideSecondary')),\n hideLogo: isStringBoolean(getValue('hideLogo')),\n hideTimerSeconds: isStringBoolean(getValue('hideTimerSeconds')),\n removeLeadingZeros: !isStringBoolean(getValue('showLeadingZeros')),\n\n mainSource: getValue('main') as keyof OntimeEvent | null,\n secondarySource: getValue('secondary-src') as keyof OntimeEvent | null,\n\n // none doesnt make sense as a configuration of the view\n timerType: timerType === TimerType.None ? undefined : timerType,\n freezeOvertime: isStringBoolean(getValue('freezeOvertime')),\n freezeMessage: getValue('freezeMessage') ?? '',\n hidePhase: isStringBoolean(getValue('hidePhase')),\n\n font: getValue('font') ?? undefined,\n keyColour: makeColourString(getValue('keyColour')),\n timerColour: makeColourString(getValue('timerColour')),\n };\n}\n\n/**\n * Hook exposes the timer view options\n */\nexport function useTimerOptions(): TimerOptions {\n const [searchParams] = useSearchParams();\n const maybePreset = use(PresetContext);\n\n const options = useMemo(() => {\n const defaultValues = maybePreset ? new URLSearchParams(maybePreset.search) : undefined;\n return getOptionsFromParams(searchParams, defaultValues);\n }, [maybePreset, searchParams]);\n\n return options;\n}\n","import { MaybeNumber, MessageState, OntimeEvent, Playback, TimerMessage, TimerPhase, TimerType } from 'ontime-types';\nimport { isPlaybackActive } from 'ontime-utils';\n\nimport { getFormattedTimer, getPropertyValue } from '../../features/viewers/common/viewUtils';\n\n/**\n * Whether a message should be shown\n */\nexport function getShowMessage(message: TimerMessage): boolean {\n return message.text !== '' && message.visible;\n}\n\n/**\n * Whether the playback is playing\n */\nexport function getIsPlaying(playback: Playback): boolean {\n return playback === Playback.Play || playback === Playback.Roll;\n}\n\n/**\n * Gets the total time from the duration and added time of an event\n */\nexport function getTotalTime(duration: MaybeNumber, addedTime: MaybeNumber): number {\n return (duration ?? 0) + (addedTime ?? 0);\n}\n\n/**\n * Whether the progress bar should be shown for this timer type\n */\nexport function getShowProgressBar(timerType: TimerType) {\n return timerType !== TimerType.None && timerType !== TimerType.Clock;\n}\n\n/**\n * Whether the clock should be shown with this timer type\n */\nexport function getShowClock(timerType: TimerType) {\n return timerType !== TimerType.Clock;\n}\n\nconst fontSizeMap: { [key: number]: number } = {\n 4: 28, // 9:01\n 5: 28, // -9:01, 10:01, 9 min\n 6: 25, // -10:01, 10 min\n 8: 18, // 23:01:01\n 9: 18, // -23:01:01\n};\n\n/**\n * Finds a font size that fits the timer in the screen\n * Unfortunately hand tweaked\n */\nexport function getEstimatedFontSize(stageTimer: string, secondaryContent?: string) {\n const stageTimerCharacters = stageTimer.length;\n let timerFontSize = (100 / (stageTimerCharacters - 1)) * 1.25;\n\n if (fontSizeMap[stageTimerCharacters]) {\n timerFontSize = fontSizeMap[stageTimerCharacters];\n }\n\n let externalFontSize = timerFontSize * 0.2;\n if (secondaryContent) {\n // we need to shrink the timer if the external is going to be there\n // this number has been tweaked to fit in a landscape mobile screen\n timerFontSize *= 0.6;\n if (secondaryContent.length > 25) {\n externalFontSize = (100 / (secondaryContent.length - 1)) * 1.8;\n }\n }\n\n return {\n timerFontSize,\n externalFontSize,\n };\n}\n\n/**\n * which, if any, modifier should be shown at any time\n */\nexport function getShowModifiers(\n timerType: TimerType,\n countToEnd: boolean,\n phase: TimerPhase,\n freezeOvertime: boolean,\n freezeMessage: string,\n hidePhase: boolean,\n) {\n if (hidePhase) {\n return {\n showEndMessage: false,\n showFinished: false,\n showWarning: false,\n showDanger: false,\n };\n }\n\n const showModifiers = timerType === TimerType.CountDown || countToEnd;\n if (!showModifiers) {\n return {\n showEndMessage: false,\n showFinished: false,\n showWarning: false,\n showDanger: false,\n };\n }\n\n return {\n showEndMessage: freezeOvertime && freezeMessage !== '',\n showFinished: phase === TimerPhase.Overtime,\n showWarning: phase === TimerPhase.Warning,\n showDanger: phase === TimerPhase.Danger,\n };\n}\n\n/**\n * What, if anything, should be displayed in the secondary field\n */\nexport function getSecondaryDisplay(\n message: MessageState,\n currentAux: MaybeNumber,\n localisedMinutes: string,\n removeSeconds: boolean,\n removeLeadingZero: boolean,\n hideSecondary: boolean,\n): string | undefined {\n if (hideSecondary) {\n return;\n }\n if (\n message.timer.secondarySource === 'aux1' ||\n message.timer.secondarySource === 'aux2' ||\n message.timer.secondarySource === 'aux3'\n ) {\n return getFormattedTimer(currentAux, TimerType.CountDown, localisedMinutes, {\n removeSeconds,\n removeLeadingZero,\n });\n }\n if (message.timer.secondarySource === 'secondary' && message.secondary) {\n return message.secondary;\n }\n return;\n}\n\n/**\n * What should we be showing in the cards?\n */\nexport function getCardData(\n eventNow: OntimeEvent | null,\n eventNext: OntimeEvent | null,\n mainSource: keyof OntimeEvent | null,\n secondarySource: keyof OntimeEvent | null,\n playback: Playback,\n phase: TimerPhase,\n) {\n if (playback === Playback.Stop) {\n return {\n showNow: false,\n nowMain: undefined,\n nowSecondary: undefined,\n showNext: false,\n nextMain: undefined,\n nextSecondary: undefined,\n };\n }\n\n // pending roll timers would be classified as active\n const hasActiveTimer = isPlaybackActive(playback) && phase !== TimerPhase.Pending;\n\n // if we are loaded, we show the upcoming event as next\n const nowMain = hasActiveTimer ? getPropertyValue(eventNow, mainSource ?? 'title') : undefined;\n const nowSecondary = hasActiveTimer ? getPropertyValue(eventNow, secondarySource) : undefined;\n const nextMain = hasActiveTimer\n ? getPropertyValue(eventNext, mainSource ?? 'title')\n : getPropertyValue(eventNow, mainSource ?? 'title');\n const nextSecondary = hasActiveTimer\n ? getPropertyValue(eventNext, secondarySource)\n : getPropertyValue(eventNow, secondarySource);\n\n return {\n showNow: Boolean(nowMain) || Boolean(nowSecondary),\n nowMain,\n nowSecondary,\n showNext: Boolean(nextMain) || Boolean(nextSecondary),\n nextMain,\n nextSecondary,\n };\n}\n","import { CustomFields, ProjectData, Settings, ViewSettings } from 'ontime-types';\n\nimport useCustomFields from '../../common/hooks-query/useCustomFields';\nimport useProjectData from '../../common/hooks-query/useProjectData';\nimport useSettings from '../../common/hooks-query/useSettings';\nimport useViewSettings from '../../common/hooks-query/useViewSettings';\nimport { useViewOptionsStore } from '../../common/stores/viewOptions';\nimport { aggregateQueryStatus, ViewData } from '../utils/viewLoader.utils';\n\nexport interface TimerData {\n customFields: CustomFields;\n projectData: ProjectData;\n isMirrored: boolean;\n settings: Settings;\n viewSettings: ViewSettings;\n}\n\nexport function useTimerData(): ViewData<TimerData> {\n // persisted app state\n const isMirrored = useViewOptionsStore((state) => state.mirror);\n\n // HTTP API data\n const { data: projectData, status: projectDataStatus } = useProjectData();\n const { data: viewSettings, status: viewSettingsStatus } = useViewSettings();\n const { data: settings, status: settingsStatus } = useSettings();\n const { data: customFields, status: customFieldsStatus } = useCustomFields();\n\n return {\n data: {\n customFields,\n projectData,\n isMirrored,\n settings,\n viewSettings,\n },\n status: aggregateQueryStatus([projectDataStatus, viewSettingsStatus, settingsStatus, customFieldsStatus]),\n };\n}\n","import { useMemo } from 'react';\nimport { OntimeView } from 'ontime-types';\n\nimport { FitText } from '../../common/components/fit-text/FitText';\nimport MultiPartProgressBar from '../../common/components/multi-part-progress-bar/MultiPartProgressBar';\nimport EmptyPage from '../../common/components/state/EmptyPage';\nimport TitleCard from '../../common/components/title-card/TitleCard';\nimport ViewLogo from '../../common/components/view-logo/ViewLogo';\nimport ViewParamsEditor from '../../common/components/view-params-editor/ViewParamsEditor';\nimport { useTimerSocket } from '../../common/hooks/useSocket';\nimport { useWindowTitle } from '../../common/hooks/useWindowTitle';\nimport { cx } from '../../common/utils/styleUtils';\nimport { formatTime, getDefaultFormat } from '../../common/utils/time';\nimport SuperscriptTime from '../../features/viewers/common/superscript-time/SuperscriptTime';\nimport { getFormattedTimer, getTimerByType } from '../../features/viewers/common/viewUtils';\nimport { useTranslation } from '../../translation/TranslationProvider';\nimport Loader from '../common/loader/Loader';\nimport { getTimerColour } from '../utils/presentation.utils';\n\nimport { getTimerOptions, useTimerOptions } from './timer.options';\nimport {\n getCardData,\n getEstimatedFontSize,\n getIsPlaying,\n getSecondaryDisplay,\n getShowClock,\n getShowMessage,\n getShowModifiers,\n getShowProgressBar,\n getTotalTime,\n} from './timer.utils';\nimport { TimerData, useTimerData } from './useTimerData';\n\nimport './Timer.scss';\n\nexport default function TimerLoader() {\n const { data, status } = useTimerData();\n\n useWindowTitle('Timer');\n\n if (status === 'pending') {\n return <Loader />;\n }\n\n if (status === 'error') {\n return <EmptyPage text='There was an error fetching data, please refresh the page.' />;\n }\n\n return <Timer {...data} />;\n}\n\nfunction Timer({ customFields, projectData, isMirrored, settings, viewSettings }: TimerData) {\n const { eventNext, eventNow, message, time, clock, timerTypeNow, countToEndNow, auxTimer } = useTimerSocket();\n const {\n hideClock,\n hideCards,\n hideProgress,\n hideMessage,\n hideSecondary,\n hideLogo,\n hideTimerSeconds,\n removeLeadingZeros,\n mainSource,\n secondarySource,\n timerType,\n freezeOvertime,\n freezeMessage,\n hidePhase,\n font,\n keyColour,\n timerColour,\n } = useTimerOptions();\n\n const { getLocalizedString } = useTranslation();\n const localisedMinutes = getLocalizedString('common.minutes');\n\n // gather modifiers\n const viewTimerType = timerType ?? timerTypeNow;\n const showOverlay = getShowMessage(message.timer);\n const { showEndMessage, showFinished, showWarning, showDanger } = getShowModifiers(\n timerTypeNow,\n countToEndNow,\n time.phase,\n freezeOvertime,\n freezeMessage,\n hidePhase,\n );\n const isPlaying = getIsPlaying(time.playback);\n const showClock = !hideClock && getShowClock(viewTimerType);\n const showProgressBar = !hideProgress && getShowProgressBar(viewTimerType);\n\n // gather card data\n const { showNow, nowMain, nowSecondary, showNext, nextMain, nextSecondary } = getCardData(\n eventNow,\n eventNext,\n mainSource,\n secondarySource,\n time.playback,\n time.phase,\n );\n\n // gather timer data\n const totalTime = getTotalTime(time.duration, time.addedTime);\n const formattedClock = formatTime(clock);\n const stageTimer = getTimerByType(freezeOvertime, timerTypeNow, countToEndNow, clock, time, timerType);\n const display = getFormattedTimer(stageTimer, viewTimerType, localisedMinutes, {\n removeSeconds: hideTimerSeconds,\n removeLeadingZero: removeLeadingZeros,\n });\n\n const currentAux = (() => {\n if (message.timer.secondarySource === 'aux1') {\n return auxTimer.aux1;\n }\n if (message.timer.secondarySource === 'aux2') {\n return auxTimer.aux2;\n }\n if (message.timer.secondarySource === 'aux3') {\n return auxTimer.aux3;\n }\n return null;\n })();\n\n const secondaryContent = getSecondaryDisplay(\n message,\n currentAux,\n localisedMinutes,\n hideTimerSeconds,\n removeLeadingZeros,\n hideSecondary,\n );\n\n // gather presentation styles\n const resolvedTimerColour = getTimerColour(viewSettings, timerColour, showWarning, showDanger);\n const { timerFontSize, externalFontSize } = getEstimatedFontSize(display, secondaryContent);\n const userStyles = {\n ...(keyColour && { '--timer-bg': keyColour }),\n ...(resolvedTimerColour && { '--timer-colour': resolvedTimerColour }),\n ...(font && { '--timer-font': font }),\n };\n\n // gather option data\n const defaultFormat = getDefaultFormat(settings?.timeFormat);\n const timerOptions = useMemo(() => getTimerOptions(defaultFormat, customFields), [customFields, defaultFormat]);\n\n return (\n <div\n data-testid='timer-view'\n className={cx(['stage-timer', isMirrored && 'mirror', showFinished && 'stage-timer--finished'])}\n style={userStyles}\n >\n {!hideLogo && projectData?.logo && <ViewLogo name={projectData.logo} className='logo' />}\n\n <ViewParamsEditor target={OntimeView.Timer} viewOptions={timerOptions} />\n\n <div className={cx(['blackout', message.timer.blackout && 'blackout--active'])} />\n\n {!hideMessage && (\n <div className={cx(['message-overlay', showOverlay && 'message-overlay--active'])}>\n <FitText mode='multi' min={32} max={256} className={cx(['message', message.timer.blink && 'blink'])}>\n {message.timer.text}\n </FitText>\n </div>\n )}\n\n {showClock && (\n <div className='clock-container'>\n <div className='label'>{getLocalizedString('common.time_now')}</div>\n <SuperscriptTime time={formattedClock} className='clock' />\n </div>\n )}\n\n <div className={cx(['timer-container', message.timer.blink && !showOverlay && 'blink'])}>\n {showEndMessage ? (\n <FitText mode='multi' min={64} max={256} className='end-message'>\n {freezeMessage}\n </FitText>\n ) : (\n <div\n className={cx(['timer', !isPlaying && 'timer--paused', showFinished && 'timer--finished'])}\n style={{ fontSize: `${timerFontSize}vw` }}\n data-phase={time.phase}\n >\n {display}\n </div>\n )}\n <div\n className={cx(['secondary', !secondaryContent && 'secondary--hidden'])}\n style={{ fontSize: `${externalFontSize}vw` }}\n >\n {secondaryContent}\n </div>\n </div>\n\n {showProgressBar && (\n <MultiPartProgressBar\n className={cx(['progress-container', !isPlaying && 'progress-container--paused'])}\n now={time.current}\n complete={totalTime}\n normalColor={viewSettings.normalColor}\n warning={eventNow?.timeWarning}\n warningColor={viewSettings.warningColor}\n danger={eventNow?.timeDanger}\n dangerColor={viewSettings.dangerColor}\n hideOvertime={!showFinished}\n />\n )}\n\n {!hideCards && (\n <>\n {showNow && <TitleCard className='event now' label='now' title={nowMain} secondary={nowSecondary} />}\n {showNext && <TitleCard className='event next' label='next' title={nextMain} secondary={nextSecondary} />}\n </>\n )}\n </div>\n );\n}\n"],"names":["bsearch","low","high","predicate","mid","FitText","children","mode","min","max","elementProps","ref","useRef","isOverflown","useCallback","el","setFontSize","originVisibility","fontSize","useEffect","observer","jsx","timerDisplayOptions","TimerType","getTimerOptions","timeFormat","customFields","mainOptions","makeOptionsFromCustomFields","secondaryOptions","OptionTitle","getTimeOption","hideTimerSeconds","showLeadingZeros","getOptionsFromParams","searchParams","defaultValues","getValue","key","timerType","validateTimerType","isStringBoolean","makeColourString","useTimerOptions","useSearchParams","maybePreset","use","PresetContext","useMemo","getShowMessage","message","getIsPlaying","playback","Playback","getTotalTime","duration","addedTime","getShowProgressBar","getShowClock","fontSizeMap","getEstimatedFontSize","stageTimer","secondaryContent","stageTimerCharacters","timerFontSize","externalFontSize","getShowModifiers","countToEnd","phase","freezeOvertime","freezeMessage","hidePhase","TimerPhase","getSecondaryDisplay","currentAux","localisedMinutes","removeSeconds","removeLeadingZero","hideSecondary","getFormattedTimer","getCardData","eventNow","eventNext","mainSource","secondarySource","hasActiveTimer","isPlaybackActive","nowMain","getPropertyValue","nowSecondary","nextMain","nextSecondary","useTimerData","isMirrored","useViewOptionsStore","state","projectData","projectDataStatus","useProjectData","viewSettings","viewSettingsStatus","useViewSettings","settings","settingsStatus","useSettings","customFieldsStatus","useCustomFields","aggregateQueryStatus","TimerLoader","data","status","useWindowTitle","Loader","EmptyPage","Timer","time","clock","timerTypeNow","countToEndNow","auxTimer","useTimerSocket","hideClock","hideCards","hideProgress","hideMessage","hideLogo","removeLeadingZeros","font","keyColour","timerColour","getLocalizedString","useTranslation","viewTimerType","showOverlay","showEndMessage","showFinished","showWarning","showDanger","isPlaying","showClock","showProgressBar","showNow","showNext","totalTime","formattedClock","formatTime","getTimerByType","display","resolvedTimerColour","getTimerColour","userStyles","defaultFormat","getDefaultFormat","timerOptions","jsxs","cx","ViewLogo","ViewParamsEditor","OntimeView","SuperscriptTime","MultiPartProgressBar","Fragment","TitleCard"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.options-p5f_zJ2-.js","sources":["../../src/common/components/view-params-editor/common.options.ts"],"sourcesContent":["import type { ParamField } from './viewParams.types';\n\nexport const getTimeOption = (timeFormat: string): ParamField => {\n const placeholder = `${timeFormat} (default)`;\n return {\n id: 'timeformat',\n title: 'Clock time format, defaults to value from the Settings',\n description: 'Format for the Time Now field, eg. HH:mm:ss or hh:mm:ss a, see docs for help',\n type: 'string',\n placeholder,\n };\n};\n\nexport const hideTimerSeconds: ParamField = {\n id: 'hideTimerSeconds',\n title: 'Hide seconds in timer',\n description: 'Whether to hide seconds in the running timer',\n type: 'boolean',\n defaultValue: false,\n};\n\nexport const showLeadingZeros: ParamField = {\n id: 'showLeadingZeros',\n title: 'Show leading zeros in timer',\n description: 'Whether to show leading zeros in the running timer',\n type: 'boolean',\n defaultValue: false,\n};\n"],"names":["getTimeOption","timeFormat","hideTimerSeconds","showLeadingZeros"],"mappings":"uXAEa,MAAAA,EAAiBC,IAErB,CACL,GAAI,aACJ,MAAO,yDACP,YAAa,+EACb,KAAM,SACN,YANkB,GAAGA,CAAU,YAOjC,GAGWC,EAA+B,CAC1C,GAAI,mBACJ,MAAO,wBACP,YAAa,+CACb,KAAM,UACN,aAAc,EAChB,EAEaC,EAA+B,CAC1C,GAAI,mBACJ,MAAO,8BACP,YAAa,qDACb,KAAM,UACN,aAAc,EAChB"}