@getontime/cli 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/assets/{Backstage-ZSqb8OU6.js → Backstage-CAjkmeJm.js} +2 -2
- package/client/assets/Backstage-CAjkmeJm.js.br +0 -0
- package/client/assets/Backstage-CAjkmeJm.js.gz +0 -0
- package/client/assets/{Backstage-ZSqb8OU6.js.map → Backstage-CAjkmeJm.js.map} +1 -1
- package/client/assets/{Countdown-DVRZbeRP.js → Countdown-ChuA9az_.js} +2 -2
- package/client/assets/Countdown-ChuA9az_.js.br +0 -0
- package/client/assets/Countdown-ChuA9az_.js.gz +0 -0
- package/client/assets/{Countdown-DVRZbeRP.js.map → Countdown-ChuA9az_.js.map} +1 -1
- package/client/assets/{CustomTranslationModal-D_Cy0d_H.js → CustomTranslationModal-C3R_2T5s.js} +2 -2
- package/client/assets/CustomTranslationModal-C3R_2T5s.js.br +0 -0
- package/client/assets/CustomTranslationModal-C3R_2T5s.js.gz +0 -0
- package/client/assets/{CustomTranslationModal-D_Cy0d_H.js.map → CustomTranslationModal-C3R_2T5s.js.map} +1 -1
- package/client/assets/{DelayIndicator-B_JKLKYW.js → DelayIndicator-vT7n8ypf.js} +2 -2
- package/client/assets/DelayIndicator-vT7n8ypf.js.br +0 -0
- package/client/assets/DelayIndicator-vT7n8ypf.js.gz +0 -0
- package/client/assets/{DelayIndicator-B_JKLKYW.js.map → DelayIndicator-vT7n8ypf.js.map} +1 -1
- package/client/assets/{EditorFeatureWrapper-DzBxDvRn.js → EditorFeatureWrapper-DHfuO3EA.js} +2 -2
- package/client/assets/EditorFeatureWrapper-DHfuO3EA.js.br +0 -0
- package/client/assets/EditorFeatureWrapper-DHfuO3EA.js.gz +0 -0
- package/client/assets/{EditorFeatureWrapper-DzBxDvRn.js.map → EditorFeatureWrapper-DHfuO3EA.js.map} +1 -1
- package/client/assets/{EditorUtils-De0umjb-.js → EditorUtils-Da5ALK1P.js} +2 -2
- package/client/assets/EditorUtils-Da5ALK1P.js.br +0 -0
- package/client/assets/EditorUtils-Da5ALK1P.js.gz +0 -0
- package/client/assets/{EditorUtils-De0umjb-.js.map → EditorUtils-Da5ALK1P.js.map} +1 -1
- package/client/assets/{Empty-BYF0tVRk.js → Empty-gWT_HMeu.js} +2 -2
- package/client/assets/Empty-gWT_HMeu.js.br +0 -0
- package/client/assets/Empty-gWT_HMeu.js.gz +0 -0
- package/client/assets/{Empty-BYF0tVRk.js.map → Empty-gWT_HMeu.js.map} +1 -1
- package/client/assets/{EmptyPage-DYH2bswA.js → EmptyPage-Dcbg6rmF.js} +2 -2
- package/client/assets/EmptyPage-Dcbg6rmF.js.br +0 -0
- package/client/assets/EmptyPage-Dcbg6rmF.js.gz +0 -0
- package/client/assets/{EmptyPage-DYH2bswA.js.map → EmptyPage-Dcbg6rmF.js.map} +1 -1
- package/client/assets/{FollowButton-DyWsvyFF.js → FollowButton-CSqJSvix.js} +2 -2
- package/client/assets/FollowButton-CSqJSvix.js.br +0 -0
- package/client/assets/FollowButton-CSqJSvix.js.gz +0 -0
- package/client/assets/{FollowButton-DyWsvyFF.js.map → FollowButton-CSqJSvix.js.map} +1 -1
- package/client/assets/{MessageControlExport-yLGU2dMq.js → MessageControlExport-lXK21piH.js} +2 -2
- package/client/assets/MessageControlExport-lXK21piH.js.br +0 -0
- package/client/assets/MessageControlExport-lXK21piH.js.gz +0 -0
- package/client/assets/{MessageControlExport-yLGU2dMq.js.map → MessageControlExport-lXK21piH.js.map} +1 -1
- package/client/assets/{MilestoneEditor-GkzJ-h1C.js → MilestoneEditor-Bge8xLrV.js} +2 -2
- package/client/assets/MilestoneEditor-Bge8xLrV.js.br +0 -0
- package/client/assets/MilestoneEditor-Bge8xLrV.js.gz +0 -0
- package/client/assets/{MilestoneEditor-GkzJ-h1C.js.map → MilestoneEditor-Bge8xLrV.js.map} +1 -1
- package/client/assets/{Modal-BKL-5GzU.js → Modal-C2sFA0zf.js} +2 -2
- package/client/assets/Modal-C2sFA0zf.js.br +0 -0
- package/client/assets/Modal-C2sFA0zf.js.gz +0 -0
- package/client/assets/{Modal-BKL-5GzU.js.map → Modal-C2sFA0zf.js.map} +1 -1
- package/client/assets/{MultiPartProgressBar-BITERKS0.js → MultiPartProgressBar-D3jJZjb5.js} +2 -2
- package/client/assets/MultiPartProgressBar-D3jJZjb5.js.br +0 -0
- package/client/assets/MultiPartProgressBar-D3jJZjb5.js.gz +0 -0
- package/client/assets/{MultiPartProgressBar-BITERKS0.js.map → MultiPartProgressBar-D3jJZjb5.js.map} +1 -1
- package/client/assets/{OperatorExport-DMZ6eQfT.js → OperatorExport-BUhxjLUx.js} +2 -2
- package/client/assets/OperatorExport-BUhxjLUx.js.br +0 -0
- package/client/assets/OperatorExport-BUhxjLUx.js.gz +0 -0
- package/client/assets/{OperatorExport-DMZ6eQfT.js.map → OperatorExport-BUhxjLUx.js.map} +1 -1
- package/client/assets/{OverviewWrapper-riM6vPno.js → OverviewWrapper-BveJ6GjK.js} +2 -2
- package/client/assets/OverviewWrapper-BveJ6GjK.js.br +0 -0
- package/client/assets/OverviewWrapper-BveJ6GjK.js.gz +0 -0
- package/client/assets/{OverviewWrapper-riM6vPno.js.map → OverviewWrapper-BveJ6GjK.js.map} +1 -1
- package/client/assets/{ProjectInfo-DxtMq70a.js → ProjectInfo-z4k3cipS.js} +2 -2
- package/client/assets/ProjectInfo-z4k3cipS.js.br +0 -0
- package/client/assets/ProjectInfo-z4k3cipS.js.gz +0 -0
- package/client/assets/{ProjectInfo-DxtMq70a.js.map → ProjectInfo-z4k3cipS.js.map} +1 -1
- package/client/assets/{ProtectRoute-p1fmtLeu.js → ProtectRoute-CrcWfOlG.js} +2 -2
- package/client/assets/ProtectRoute-CrcWfOlG.js.br +0 -0
- package/client/assets/ProtectRoute-CrcWfOlG.js.gz +0 -0
- package/client/assets/{ProtectRoute-p1fmtLeu.js.map → ProtectRoute-CrcWfOlG.js.map} +1 -1
- package/client/assets/{ProtectedCuesheet-CvRnqT0z.js → ProtectedCuesheet-Deo4Aw6f.js} +2 -2
- package/client/assets/ProtectedCuesheet-Deo4Aw6f.js.br +0 -0
- package/client/assets/ProtectedCuesheet-Deo4Aw6f.js.gz +0 -0
- package/client/assets/{ProtectedCuesheet-CvRnqT0z.js.map → ProtectedCuesheet-Deo4Aw6f.js.map} +1 -1
- package/client/assets/{ProtectedEditor-D4UXj1xL.js → ProtectedEditor-C_SYWpL2.js} +3 -3
- package/client/assets/ProtectedEditor-C_SYWpL2.js.br +0 -0
- package/client/assets/ProtectedEditor-C_SYWpL2.js.gz +0 -0
- package/client/assets/{ProtectedEditor-D4UXj1xL.js.map → ProtectedEditor-C_SYWpL2.js.map} +1 -1
- package/client/assets/{RundownEntry-B1dSz1wu.js → RundownEntry-D61IqkXb.js} +2 -2
- package/client/assets/RundownEntry-D61IqkXb.js.br +0 -0
- package/client/assets/RundownEntry-D61IqkXb.js.gz +0 -0
- package/client/assets/{RundownEntry-B1dSz1wu.js.map → RundownEntry-D61IqkXb.js.map} +1 -1
- package/client/assets/RundownExport-1zBZurIG.css +1 -0
- package/client/assets/RundownExport-1zBZurIG.css.br +0 -0
- package/client/assets/RundownExport-1zBZurIG.css.gz +0 -0
- package/client/assets/{RundownExport-WjLpncYT.js → RundownExport-C6YhMGOC.js} +3 -3
- package/client/assets/RundownExport-C6YhMGOC.js.br +0 -0
- package/client/assets/RundownExport-C6YhMGOC.js.gz +0 -0
- package/client/assets/{RundownExport-WjLpncYT.js.map → RundownExport-C6YhMGOC.js.map} +1 -1
- package/client/assets/{Select-niU9Razm.js → Select-CedN80WS.js} +2 -2
- package/client/assets/Select-CedN80WS.js.br +0 -0
- package/client/assets/Select-CedN80WS.js.gz +0 -0
- package/client/assets/{Select-niU9Razm.js.map → Select-CedN80WS.js.map} +1 -1
- package/client/assets/{Studio-CWdJq4bx.js → Studio-DUzPBS6P.js} +2 -2
- package/client/assets/Studio-DUzPBS6P.js.br +0 -0
- package/client/assets/Studio-DUzPBS6P.js.gz +0 -0
- package/client/assets/{Studio-CWdJq4bx.js.map → Studio-DUzPBS6P.js.map} +1 -1
- package/client/assets/{StyleEditor-BIFjHsgD.js → StyleEditor-D2z65PB7.js} +2 -2
- package/client/assets/StyleEditor-D2z65PB7.js.br +0 -0
- package/client/assets/StyleEditor-D2z65PB7.js.gz +0 -0
- package/client/assets/{StyleEditor-BIFjHsgD.js.map → StyleEditor-D2z65PB7.js.map} +1 -1
- package/client/assets/{SuperscriptTime-DCTyUARx.js → SuperscriptTime-CIrcMcyg.js} +2 -2
- package/client/assets/SuperscriptTime-CIrcMcyg.js.br +0 -0
- package/client/assets/SuperscriptTime-CIrcMcyg.js.gz +0 -0
- package/client/assets/{SuperscriptTime-DCTyUARx.js.map → SuperscriptTime-CIrcMcyg.js.map} +1 -1
- package/client/assets/{TimeElements-DBVGVx71.js → TimeElements-CALNfv6u.js} +2 -2
- package/client/assets/TimeElements-CALNfv6u.js.br +0 -0
- package/client/assets/TimeElements-CALNfv6u.js.gz +0 -0
- package/client/assets/{TimeElements-DBVGVx71.js.map → TimeElements-CALNfv6u.js.map} +1 -1
- package/client/assets/{TimeInput-wQ67FbW6.js → TimeInput-Dg1naiy3.js} +2 -2
- package/client/assets/TimeInput-Dg1naiy3.js.br +0 -0
- package/client/assets/TimeInput-Dg1naiy3.js.gz +0 -0
- package/client/assets/{TimeInput-wQ67FbW6.js.map → TimeInput-Dg1naiy3.js.map} +1 -1
- package/client/assets/{TimelinePage-DZefE2vQ.js → TimelinePage-Cwm0svjN.js} +2 -2
- package/client/assets/TimelinePage-Cwm0svjN.js.br +0 -0
- package/client/assets/TimelinePage-Cwm0svjN.js.gz +0 -0
- package/client/assets/{TimelinePage-DZefE2vQ.js.map → TimelinePage-Cwm0svjN.js.map} +1 -1
- package/client/assets/Timer-BVXskRjc.js +2 -0
- package/client/assets/Timer-BVXskRjc.js.br +0 -0
- package/client/assets/Timer-BVXskRjc.js.gz +0 -0
- package/client/assets/Timer-BVXskRjc.js.map +1 -0
- package/client/assets/Timer-BvEmZbmF.css +1 -0
- package/client/assets/Timer-BvEmZbmF.css.br +0 -0
- package/client/assets/Timer-BvEmZbmF.css.gz +0 -0
- package/client/assets/{TimerControlExport-C1C_vBX4.js → TimerControlExport-C8ECtLBd.js} +2 -2
- package/client/assets/TimerControlExport-C8ECtLBd.js.br +0 -0
- package/client/assets/TimerControlExport-C8ECtLBd.js.gz +0 -0
- package/client/assets/{TimerControlExport-C1C_vBX4.js.map → TimerControlExport-C8ECtLBd.js.map} +1 -1
- package/client/assets/{TitleCard-B4N-kCM3.js → TitleCard-CZl9wSHS.js} +2 -2
- package/client/assets/TitleCard-CZl9wSHS.js.br +0 -0
- package/client/assets/TitleCard-CZl9wSHS.js.gz +0 -0
- package/client/assets/{TitleCard-B4N-kCM3.js.map → TitleCard-CZl9wSHS.js.map} +1 -1
- package/client/assets/{Tooltip-DJ8Y4CO4.js → Tooltip-D9XRnwOW.js} +2 -2
- package/client/assets/Tooltip-D9XRnwOW.js.br +4 -0
- package/client/assets/Tooltip-D9XRnwOW.js.gz +0 -0
- package/client/assets/{Tooltip-DJ8Y4CO4.js.map → Tooltip-D9XRnwOW.js.map} +1 -1
- package/client/assets/{ViewLogo-Dd60EREE.js → ViewLogo-_3Z1hIHi.js} +2 -2
- package/client/assets/ViewLogo-_3Z1hIHi.js.br +0 -0
- package/client/assets/ViewLogo-_3Z1hIHi.js.gz +0 -0
- package/client/assets/{ViewLogo-Dd60EREE.js.map → ViewLogo-_3Z1hIHi.js.map} +1 -1
- package/client/assets/{ViewParamsEditor-BWEYbq_S.js → ViewParamsEditor-Bca1TIDW.js} +2 -2
- package/client/assets/ViewParamsEditor-Bca1TIDW.js.br +0 -0
- package/client/assets/ViewParamsEditor-Bca1TIDW.js.gz +0 -0
- package/client/assets/{ViewParamsEditor-BWEYbq_S.js.map → ViewParamsEditor-Bca1TIDW.js.map} +1 -1
- package/client/assets/{dateConfig-8rhb0Dbh.js → dateConfig-DRQGMWDF.js} +2 -2
- package/client/assets/dateConfig-DRQGMWDF.js.br +0 -0
- package/client/assets/dateConfig-DRQGMWDF.js.gz +0 -0
- package/client/assets/{dateConfig-8rhb0Dbh.js.map → dateConfig-DRQGMWDF.js.map} +1 -1
- package/client/assets/{editorSettings-LMnfWux6.js → editorSettings-BU0pTMSY.js} +2 -2
- package/client/assets/editorSettings-BU0pTMSY.js.br +0 -0
- package/client/assets/editorSettings-BU0pTMSY.js.gz +0 -0
- package/client/assets/{editorSettings-LMnfWux6.js.map → editorSettings-BU0pTMSY.js.map} +1 -1
- package/client/assets/{getProgress-CyJTu6f5.js → getProgress-Cw79NL_O.js} +2 -2
- package/client/assets/getProgress-Cw79NL_O.js.br +0 -0
- package/client/assets/getProgress-Cw79NL_O.js.gz +0 -0
- package/client/assets/{getProgress-CyJTu6f5.js.map → getProgress-Cw79NL_O.js.map} +1 -1
- package/client/assets/{index-5QAOtSTh.js → index-BQEUaoAf.js} +3 -3
- package/client/assets/index-BQEUaoAf.js.br +0 -0
- package/client/assets/index-BQEUaoAf.js.gz +0 -0
- package/client/assets/{index-5QAOtSTh.js.map → index-BQEUaoAf.js.map} +1 -1
- package/client/assets/{offset-CLDSqOP5.js → offset-DJAHqjFW.js} +2 -2
- package/client/assets/offset-DJAHqjFW.js.br +0 -0
- package/client/assets/offset-DJAHqjFW.js.gz +0 -0
- package/client/assets/{offset-CLDSqOP5.js.map → offset-DJAHqjFW.js.map} +1 -1
- package/client/assets/{parseUserTime-CCDHpp7D.js → parseUserTime-BeTKj08M.js} +2 -2
- package/client/assets/parseUserTime-BeTKj08M.js.br +0 -0
- package/client/assets/parseUserTime-BeTKj08M.js.gz +0 -0
- package/client/assets/{parseUserTime-CCDHpp7D.js.map → parseUserTime-BeTKj08M.js.map} +1 -1
- package/client/assets/{playbackstate-6lBh6omZ.js → playbackstate-B_khF6xU.js} +2 -2
- package/client/assets/playbackstate-B_khF6xU.js.br +0 -0
- package/client/assets/playbackstate-B_khF6xU.js.gz +0 -0
- package/client/assets/{playbackstate-6lBh6omZ.js.map → playbackstate-B_khF6xU.js.map} +1 -1
- package/client/assets/{presentation.utils-BUIuV_2e.js → presentation.utils-KwY-ACf7.js} +2 -2
- package/client/assets/presentation.utils-KwY-ACf7.js.br +0 -0
- package/client/assets/presentation.utils-KwY-ACf7.js.gz +0 -0
- package/client/assets/{presentation.utils-BUIuV_2e.js.map → presentation.utils-KwY-ACf7.js.map} +1 -1
- package/client/assets/{rundownUtils-Cnd2prRX.js → rundownUtils-BZHazkXR.js} +2 -2
- package/client/assets/rundownUtils-BZHazkXR.js.br +0 -0
- package/client/assets/rundownUtils-BZHazkXR.js.gz +0 -0
- package/client/assets/{rundownUtils-Cnd2prRX.js.map → rundownUtils-BZHazkXR.js.map} +1 -1
- package/client/assets/{useCustomFields-BuxKsqGS.js → useCustomFields-DqCYz8Kt.js} +2 -2
- package/client/assets/useCustomFields-DqCYz8Kt.js.br +0 -0
- package/client/assets/useCustomFields-DqCYz8Kt.js.gz +0 -0
- package/client/assets/{useCustomFields-BuxKsqGS.js.map → useCustomFields-DqCYz8Kt.js.map} +1 -1
- package/client/assets/{useFollowComponent-iGQv4zoS.js → useFollowComponent-Ctfhf2or.js} +2 -2
- package/client/assets/useFollowComponent-Ctfhf2or.js.br +0 -0
- package/client/assets/useFollowComponent-Ctfhf2or.js.gz +0 -0
- package/client/assets/{useFollowComponent-iGQv4zoS.js.map → useFollowComponent-Ctfhf2or.js.map} +1 -1
- package/client/assets/{useProjectData-CetvEK9E.js → useProjectData-C1hVamxc.js} +2 -2
- package/client/assets/useProjectData-C1hVamxc.js.br +0 -0
- package/client/assets/useProjectData-C1hVamxc.js.gz +0 -0
- package/client/assets/{useProjectData-CetvEK9E.js.map → useProjectData-C1hVamxc.js.map} +1 -1
- package/client/assets/{useReport-PEFRsOhF.js → useReport-B4dMYcNL.js} +2 -2
- package/client/assets/useReport-B4dMYcNL.js.br +0 -0
- package/client/assets/useReport-B4dMYcNL.js.gz +0 -0
- package/client/assets/{useReport-PEFRsOhF.js.map → useReport-B4dMYcNL.js.map} +1 -1
- package/client/assets/useRundown-BfpjcCEJ.js +2 -0
- package/client/assets/useRundown-BfpjcCEJ.js.br +0 -0
- package/client/assets/useRundown-BfpjcCEJ.js.gz +0 -0
- package/client/assets/{useRundown-D8CYATNi.js.map → useRundown-BfpjcCEJ.js.map} +1 -1
- package/client/assets/{useWindowTitle-b5fN0StF.js → useWindowTitle-DqdFTWns.js} +2 -2
- package/client/assets/useWindowTitle-DqdFTWns.js.br +0 -0
- package/client/assets/useWindowTitle-DqdFTWns.js.gz +0 -0
- package/client/assets/{useWindowTitle-b5fN0StF.js.map → useWindowTitle-DqdFTWns.js.map} +1 -1
- package/client/assets/{validateEvent-Bvgk1E-Y.js → validateEvent-P9sf7C10.js} +2 -2
- package/client/assets/validateEvent-P9sf7C10.js.br +3 -0
- package/client/assets/validateEvent-P9sf7C10.js.gz +0 -0
- package/client/assets/{validateEvent-Bvgk1E-Y.js.map → validateEvent-P9sf7C10.js.map} +1 -1
- package/client/assets/{vendor-Cu5xgv5K.js → vendor-CCiSQ9k9.js} +2 -2
- package/client/assets/vendor-CCiSQ9k9.js.br +0 -0
- package/client/assets/vendor-CCiSQ9k9.js.gz +0 -0
- package/client/assets/{vendor-Cu5xgv5K.js.map → vendor-CCiSQ9k9.js.map} +1 -1
- package/client/assets/{viewLoader.utils-BPhACxyG.js → viewLoader.utils-CmM-4-pk.js} +2 -2
- package/client/assets/viewLoader.utils-CmM-4-pk.js.br +0 -0
- package/client/assets/viewLoader.utils-CmM-4-pk.js.gz +0 -0
- package/client/assets/{viewLoader.utils-BPhACxyG.js.map → viewLoader.utils-CmM-4-pk.js.map} +1 -1
- package/client/index.html +2 -2
- package/external/demo/app.js +2 -2
- package/package.json +1 -1
- package/server/index.cjs +66 -57
- package/client/assets/Backstage-ZSqb8OU6.js.br +0 -0
- package/client/assets/Backstage-ZSqb8OU6.js.gz +0 -0
- package/client/assets/Countdown-DVRZbeRP.js.br +0 -0
- package/client/assets/Countdown-DVRZbeRP.js.gz +0 -0
- package/client/assets/CustomTranslationModal-D_Cy0d_H.js.br +0 -0
- package/client/assets/CustomTranslationModal-D_Cy0d_H.js.gz +0 -0
- package/client/assets/DelayIndicator-B_JKLKYW.js.br +0 -0
- package/client/assets/DelayIndicator-B_JKLKYW.js.gz +0 -0
- package/client/assets/EditorFeatureWrapper-DzBxDvRn.js.br +0 -0
- package/client/assets/EditorFeatureWrapper-DzBxDvRn.js.gz +0 -0
- package/client/assets/EditorUtils-De0umjb-.js.br +0 -0
- package/client/assets/EditorUtils-De0umjb-.js.gz +0 -0
- package/client/assets/Empty-BYF0tVRk.js.br +0 -2
- package/client/assets/Empty-BYF0tVRk.js.gz +0 -0
- package/client/assets/EmptyPage-DYH2bswA.js.br +0 -0
- package/client/assets/EmptyPage-DYH2bswA.js.gz +0 -0
- package/client/assets/FollowButton-DyWsvyFF.js.br +0 -0
- package/client/assets/FollowButton-DyWsvyFF.js.gz +0 -0
- package/client/assets/MessageControlExport-yLGU2dMq.js.br +0 -0
- package/client/assets/MessageControlExport-yLGU2dMq.js.gz +0 -0
- package/client/assets/MilestoneEditor-GkzJ-h1C.js.br +0 -0
- package/client/assets/MilestoneEditor-GkzJ-h1C.js.gz +0 -0
- package/client/assets/Modal-BKL-5GzU.js.br +0 -0
- package/client/assets/Modal-BKL-5GzU.js.gz +0 -0
- package/client/assets/MultiPartProgressBar-BITERKS0.js.br +0 -0
- package/client/assets/MultiPartProgressBar-BITERKS0.js.gz +0 -0
- package/client/assets/OperatorExport-DMZ6eQfT.js.br +0 -0
- package/client/assets/OperatorExport-DMZ6eQfT.js.gz +0 -0
- package/client/assets/OverviewWrapper-riM6vPno.js.br +0 -0
- package/client/assets/OverviewWrapper-riM6vPno.js.gz +0 -0
- package/client/assets/ProjectInfo-DxtMq70a.js.br +0 -0
- package/client/assets/ProjectInfo-DxtMq70a.js.gz +0 -0
- package/client/assets/ProtectRoute-p1fmtLeu.js.br +0 -0
- package/client/assets/ProtectRoute-p1fmtLeu.js.gz +0 -0
- package/client/assets/ProtectedCuesheet-CvRnqT0z.js.br +0 -0
- package/client/assets/ProtectedCuesheet-CvRnqT0z.js.gz +0 -0
- package/client/assets/ProtectedEditor-D4UXj1xL.js.br +0 -0
- package/client/assets/ProtectedEditor-D4UXj1xL.js.gz +0 -0
- package/client/assets/RundownEntry-B1dSz1wu.js.br +0 -0
- package/client/assets/RundownEntry-B1dSz1wu.js.gz +0 -0
- package/client/assets/RundownExport-CUtaG16H.css +0 -1
- package/client/assets/RundownExport-CUtaG16H.css.br +0 -0
- package/client/assets/RundownExport-CUtaG16H.css.gz +0 -0
- package/client/assets/RundownExport-WjLpncYT.js.br +0 -0
- package/client/assets/RundownExport-WjLpncYT.js.gz +0 -0
- package/client/assets/Select-niU9Razm.js.br +0 -0
- package/client/assets/Select-niU9Razm.js.gz +0 -0
- package/client/assets/Studio-CWdJq4bx.js.br +0 -0
- package/client/assets/Studio-CWdJq4bx.js.gz +0 -0
- package/client/assets/StyleEditor-BIFjHsgD.js.br +0 -0
- package/client/assets/StyleEditor-BIFjHsgD.js.gz +0 -0
- package/client/assets/SuperscriptTime-DCTyUARx.js.br +0 -0
- package/client/assets/SuperscriptTime-DCTyUARx.js.gz +0 -0
- package/client/assets/TimeElements-DBVGVx71.js.br +0 -0
- package/client/assets/TimeElements-DBVGVx71.js.gz +0 -0
- package/client/assets/TimeInput-wQ67FbW6.js.br +0 -0
- package/client/assets/TimeInput-wQ67FbW6.js.gz +0 -0
- package/client/assets/TimelinePage-DZefE2vQ.js.br +0 -0
- package/client/assets/TimelinePage-DZefE2vQ.js.gz +0 -0
- package/client/assets/Timer-Bs450x86.js +0 -2
- package/client/assets/Timer-Bs450x86.js.br +0 -0
- package/client/assets/Timer-Bs450x86.js.gz +0 -0
- package/client/assets/Timer-Bs450x86.js.map +0 -1
- package/client/assets/Timer-DGNfbBKM.css +0 -1
- package/client/assets/Timer-DGNfbBKM.css.br +0 -0
- package/client/assets/Timer-DGNfbBKM.css.gz +0 -0
- package/client/assets/TimerControlExport-C1C_vBX4.js.br +0 -0
- package/client/assets/TimerControlExport-C1C_vBX4.js.gz +0 -0
- package/client/assets/TitleCard-B4N-kCM3.js.br +0 -0
- package/client/assets/TitleCard-B4N-kCM3.js.gz +0 -0
- package/client/assets/Tooltip-DJ8Y4CO4.js.br +0 -0
- package/client/assets/Tooltip-DJ8Y4CO4.js.gz +0 -0
- package/client/assets/ViewLogo-Dd60EREE.js.br +0 -0
- package/client/assets/ViewLogo-Dd60EREE.js.gz +0 -0
- package/client/assets/ViewParamsEditor-BWEYbq_S.js.br +0 -0
- package/client/assets/ViewParamsEditor-BWEYbq_S.js.gz +0 -0
- package/client/assets/dateConfig-8rhb0Dbh.js.br +0 -0
- package/client/assets/dateConfig-8rhb0Dbh.js.gz +0 -0
- package/client/assets/editorSettings-LMnfWux6.js.br +0 -0
- package/client/assets/editorSettings-LMnfWux6.js.gz +0 -0
- package/client/assets/getProgress-CyJTu6f5.js.br +0 -0
- package/client/assets/getProgress-CyJTu6f5.js.gz +0 -0
- package/client/assets/index-5QAOtSTh.js.br +0 -0
- package/client/assets/index-5QAOtSTh.js.gz +0 -0
- package/client/assets/offset-CLDSqOP5.js.br +0 -0
- package/client/assets/offset-CLDSqOP5.js.gz +0 -0
- package/client/assets/parseUserTime-CCDHpp7D.js.br +0 -0
- package/client/assets/parseUserTime-CCDHpp7D.js.gz +0 -0
- package/client/assets/playbackstate-6lBh6omZ.js.br +0 -0
- package/client/assets/playbackstate-6lBh6omZ.js.gz +0 -0
- package/client/assets/presentation.utils-BUIuV_2e.js.br +0 -0
- package/client/assets/presentation.utils-BUIuV_2e.js.gz +0 -0
- package/client/assets/rundownUtils-Cnd2prRX.js.br +0 -0
- package/client/assets/rundownUtils-Cnd2prRX.js.gz +0 -0
- package/client/assets/useCustomFields-BuxKsqGS.js.br +0 -0
- package/client/assets/useCustomFields-BuxKsqGS.js.gz +0 -0
- package/client/assets/useFollowComponent-iGQv4zoS.js.br +0 -0
- package/client/assets/useFollowComponent-iGQv4zoS.js.gz +0 -0
- package/client/assets/useProjectData-CetvEK9E.js.br +0 -0
- package/client/assets/useProjectData-CetvEK9E.js.gz +0 -0
- package/client/assets/useReport-PEFRsOhF.js.br +0 -0
- package/client/assets/useReport-PEFRsOhF.js.gz +0 -0
- package/client/assets/useRundown-D8CYATNi.js +0 -2
- package/client/assets/useRundown-D8CYATNi.js.br +0 -0
- package/client/assets/useRundown-D8CYATNi.js.gz +0 -0
- package/client/assets/useWindowTitle-b5fN0StF.js.br +0 -0
- package/client/assets/useWindowTitle-b5fN0StF.js.gz +0 -0
- package/client/assets/validateEvent-Bvgk1E-Y.js.br +0 -0
- package/client/assets/validateEvent-Bvgk1E-Y.js.gz +0 -0
- package/client/assets/vendor-Cu5xgv5K.js.br +0 -0
- package/client/assets/vendor-Cu5xgv5K.js.gz +0 -0
- package/client/assets/viewLoader.utils-BPhACxyG.js.br +0 -0
- package/client/assets/viewLoader.utils-BPhACxyG.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
% �i���;Əл��LyT� �_\"W3h�z�K)*�����F�wn��0K�0������#x�H�~���eID��Ħ��B*݀0.�mJ�f�5w�XW�H��#H̦��������|����1���fX-�Yx�g7Ȍ�]I�Gv&ӆ��B�|�B���Hp��Y�Q w��А���UV�i/��Rٟ�
|
|
2
|
-
"����b�H}��v`��/��C��K'�)f�K�зi�&�]���l/%�/ơ�4;8�!��4K:5hT�����^�#m�C�0�t��[vf�������dd�#�ʘ��;+������R��AeS(��:�.�3���e��!능���3'�Q;2�| v�ȟ* 5�������Tb}�T�T��N���JQU�%����DE9�o�P��/�w��^�ÏSC�걮`�x�
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._blink_44w0f_1{animation:_blink_44w0f_1 1s step-start infinite}@keyframes _blink_44w0f_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_44w0f_13{transform:rotate(45deg)}._footer_44w0f_17{border-top:1px solid rgba(255,255,255,.1);padding-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}._blink_103di_1{animation:_blink_103di_1 1s step-start infinite}@keyframes _blink_103di_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_103di_13{transform:rotate(45deg)}._entryEditor_103di_17{color:#b1b1b1;height:100%;max-height:100%;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;overflow-x:auto}._shortcutSection_103di_28{flex:1;display:grid;place-content:center;gap:1rem}._shortcuts_103di_35{font-size:calc(1rem - 3px);border-collapse:separate;border-spacing:4rem 0}._shortcuts_103di_35 tr td:nth-child(odd){text-align:left}._shortcuts_103di_35 tr td:nth-child(2n){text-align:right;white-space:nowrap}._spacer_103di_48{height:1rem}._prompt_103di_52{margin-left:4rem}._divider_103di_56{display:inline-block;text-align:center;width:1em}._kbd_103di_62{font-family:monospace;white-space:nowrap;font-size:calc(1rem - 2px);padding:.125rem .5rem;background-color:#262626;color:#f6f6f6;border-radius:2px;font-weight:400;box-shadow:0 0 3px #0006}._blink_15pki_1{animation:_blink_15pki_1 1s step-start infinite}@keyframes _blink_15pki_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_15pki_13{transform:rotate(45deg)}._entry_15pki_17,._empty_15pki_18,._error_15pki_19{padding-inline:.5rem;font-size:1rem;height:3rem;display:flex;align-items:center;justify-content:space-between}._entry_15pki_17[data-selected=true]{background-color:#2b5abc}._empty_15pki_18{color:#b1b1b1}._error_15pki_19{color:#fa5656}._data_15pki_40{display:grid;grid-template-areas:"index cue" "index title";column-gap:1rem;grid-template-rows:min-content 1fr}._data_15pki_40 ._index_15pki_46{grid-area:index;background-color:var(--color, #404040);border-radius:2px;padding-block:.25rem;width:3.5rem;align-self:center;text-align:center}._data_15pki_40 ._title_15pki_55{grid-area:title}._data_15pki_40 ._cue_15pki_58{grid-area:cue;font-size:calc(1rem - 2px);color:#b1b1b1;max-height:1em;min-height:0}._footer_15pki_66{font-size:calc(1rem - 2px);color:#b1b1b1}._em_15pki_18{color:#f6f6f6;margin-inline:.25rem}._scrollContainer_15pki_76{max-height:70vh;overflow:auto;padding-top:1rem}._blink_156wk_1{animation:_blink_156wk_1 1s step-start infinite}@keyframes _blink_156wk_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_156wk_13{transform:rotate(45deg)}._header_156wk_17{padding-inline:1rem 2rem;display:flex;align-items:center}:is([data-target=small-device]) ._header_156wk_17{padding-inline:0;overflow-x:auto}._group_156wk_28{display:flex;align-items:center;gap:2px;padding-inline:2px;background:#2d2d2d;border-radius:3px;height:2rem}._radioButton_156wk_39{box-sizing:border-box;display:flex;align-items:center;justify-content:center;height:calc(2rem - 4px);padding-inline:1em;border:1px solid transparent;border-radius:3px;color:#b1b1b1;font-size:calc(1rem - 2px);font-weight:600}._radioButton_156wk_39:focus-visible{background:transparent;outline:1px solid #578AF4}._radioButton_156wk_39:hover:not(:disabled):not(:active){background:#404040}._radioButton_156wk_39:active{background:#2d2d2d}._radioButton_156wk_39[data-pressed]{background:#2b5abc;color:#f6f6f6}._radioButton_156wk_39[data-pressed]:hover:not(:disabled):not(:active){background:#3e75e8}._apart_156wk_70{margin-left:auto}._separator_156wk_74{margin-inline:1rem}._blink_96pwt_1{animation:_blink_96pwt_1 1s step-start infinite}@keyframes _blink_96pwt_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_96pwt_13{transform:rotate(45deg)}._quickAdd_96pwt_17{display:flex;align-items:center;gap:1rem;padding-block:.5rem;background:color-mix(in srgb,transparent 90%,var(--user-bg, transparent) 10%)}._quickAdd_96pwt_17._indent_96pwt_24{padding-left:calc(2em + .5rem)}._blink_fgq5o_1{animation:_blink_fgq5o_1 1s step-start infinite}@keyframes _blink_fgq5o_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_fgq5o_13{transform:rotate(45deg)}._quickAdd_fgq5o_17{display:flex;align-items:center;gap:1rem;position:relative;height:1px;background:#578af4;z-index:100}._addButton_fgq5o_27{position:absolute;top:0;left:0;transform:translateY(-50%)}._blink_zrdm3_1{animation:_blink_zrdm3_1 1s step-start infinite}@keyframes _blink_zrdm3_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_zrdm3_13{transform:rotate(45deg)}._titleEditor_zrdm3_17{display:block;font-size:calc(1rem + 2px);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._noTitle_zrdm3_26 ._preview_zrdm3_26{opacity:.4}._blink_6ndm2_1{animation:_blink_6ndm2_1 1s step-start infinite}@keyframes _blink_6ndm2_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_6ndm2_13{transform:rotate(45deg)}._group_6ndm2_17{box-sizing:content-box;border:1px solid rgba(255,255,255,.07);border-radius:3px;position:relative;color:#f6f6f6;overflow:hidden;min-width:32rem;margin-block:.5rem;display:grid;grid-template-columns:2rem 1fr;grid-template-areas:"binder header";align-items:center}._group_6ndm2_17._hasCursor_6ndm2_31{outline:1px solid #FFCC78}._group_6ndm2_17._expanded_6ndm2_34{margin-block:.5rem 0;border-radius:3px 3px 0 0;border-bottom:.25rem solid color-mix(in srgb,transparent 90%,var(--user-bg, transparent) 10%)}._group_6ndm2_17 ._binder_6ndm2_39{grid-area:binder;height:100%;background-color:var(--user-bg, #303030);color:#f6f6f6;font-size:1rem;display:grid;place-content:center;position:relative;cursor:pointer}._group_6ndm2_17 ._binder_6ndm2_39:focus{outline:1px solid #578AF4;outline-offset:-1px}._group_6ndm2_17 ._header_6ndm2_54{grid-area:header;padding-inline:.5rem;background-color:#303030;display:flex;flex-direction:column;gap:.5rem}._group_6ndm2_17 ._titleRow_6ndm2_62{display:flex;align-items:center;gap:.5rem}._group_6ndm2_17 ._metaRow_6ndm2_67{display:flex;gap:3rem;margin-bottom:.25rem;white-space:nowrap}._group_6ndm2_17 ._metaEntry_6ndm2_73{width:4.5em}._group_6ndm2_17 ._metaEntry_6ndm2_73 :first-child{font-size:calc(1rem - 3px);color:#b1b1b1}._strike_6ndm2_81{text-decoration:line-through}._over_6ndm2_85{color:#f57c13}._under_6ndm2_89{color:#55b469}._drag_6ndm2_93{font-size:20px;justify-self:center;opacity:.3;cursor:grab;transition:opacity .3s}._drag_6ndm2_93:hover{opacity:1}._drag_6ndm2_93:focus{box-shadow:none;outline:none}._drag_6ndm2_93{position:absolute;margin-top:.25rem}._drag_6ndm2_93._isDragging_6ndm2_111{cursor:grabbing}._drag_6ndm2_93._notAllowed_6ndm2_114{cursor:not-allowed}._blink_1mlc9_1{animation:_blink_1mlc9_1 1s step-start infinite}@keyframes _blink_1mlc9_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_1mlc9_13{transform:rotate(45deg)}._groupEnd_1mlc9_17{cursor:default;height:1rem;background-color:var(--user-bg, #303030);border-radius:0 0 3px 3px;margin-bottom:.5rem}._blink_pqnxu_1{animation:_blink_pqnxu_1 1s step-start infinite}@keyframes _blink_pqnxu_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_pqnxu_13{transform:rotate(45deg)}._empty_pqnxu_17{padding-block:1.5rem;text-align:center}._inline_pqnxu_22{display:flex;align-items:center;justify-content:center;gap:1rem}._blink_qmpnm_1{animation:_blink_qmpnm_1 1s step-start infinite}@keyframes _blink_qmpnm_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_qmpnm_13{transform:rotate(45deg)}._rundownWrapper_qmpnm_17{height:calc(100% - 1.5rem);width:100%}._rundownContainer_qmpnm_22{margin-top:1rem;overflow-y:scroll;height:100%}._list_qmpnm_28{overflow-x:clip;display:flex;flex-direction:column;padding-inline:1rem}:is([data-target=small-device]) ._list_qmpnm_28{padding-inline:0;overflow-x:auto}._empty_qmpnm_39{opacity:.3;align-self:center}._spacer_qmpnm_44{min-height:50vh}._entryWrapper_qmpnm_48{display:flex;gap:.5rem;align-items:center;background:color-mix(in srgb,transparent 90%,var(--user-bg, transparent) 10%)}._entryIndex_qmpnm_55{padding-block:.25rem;display:grid;grid-template-rows:1fr 1fr 1fr;justify-items:end;min-width:2em;color:#b1b1b1;font-size:calc(1rem - 3px);height:6.5rem}._flag_qmpnm_66{grid-row:1;color:#8bb33d;font-size:1rem}._index_qmpnm_72{grid-row:2;align-content:center}._entry_qmpnm_48{flex:1}._blink_h38r0_1{animation:_blink_h38r0_1 1s step-start infinite}@keyframes _blink_h38r0_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_h38r0_13{transform:rotate(45deg)}:root{--editor--panel__br: 8px}._rundownExport_h38r0_21{height:100%;flex:1 1 auto}._rundownExport_h38r0_21._extracted_h38r0_25 ._list_h38r0_25,._rundownExport_h38r0_21._extracted_h38r0_25 ._side_h38r0_29{flex:1;max-width:none}._rundown_h38r0_21{display:flex;max-height:100%;height:100%}._list_h38r0_25{display:flex;position:relative;border-radius:var(--editor--panel__br);height:100%;background-color:#1a1a1a;padding:1rem;height:inherit;padding-inline:0;box-shadow:#00000026 3px 0 3px;flex:1 1 0;min-width:38rem;max-width:none;width:0}._side_h38r0_29{max-height:100%;margin:.5rem 0;padding:1rem;padding-right:0;background-color:#151515;border-radius:0 8px 8px 0;flex:1 1 0;min-width:36.5rem;width:0}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{h as p,j as r,l as be}from"./vendor-Cu5xgv5K.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-5QAOtSTh.js";import{M as Fe}from"./MultiPartProgressBar-BITERKS0.js";import{E as je}from"./EmptyPage-DYH2bswA.js";import{T as W}from"./TitleCard-B4N-kCM3.js";import{V as Ve}from"./ViewLogo-Dd60EREE.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-BWEYbq_S.js";import{u as Ee}from"./useWindowTitle-b5fN0StF.js";import{S as He}from"./SuperscriptTime-DCTyUARx.js";import{g as Be}from"./presentation.utils-BUIuV_2e.js";import{g as We,h as Ie,s as Ae,a as Re}from"./viewLoader.utils-BPhACxyG.js";import{v as Ze}from"./validateEvent-Bvgk1E-Y.js";import{i as _e}from"./playbackstate-6lBh6omZ.js";import{u as $e}from"./useCustomFields-BuxKsqGS.js";import{u as Ue}from"./useProjectData-CetvEK9E.js";import"./getProgress-CyJTu6f5.js";import"./Empty-BYF0tVRk.js";import"./Select-niU9Razm.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]="b9313b80-0af8-4ae6-9609-ab6eceb02d77",e._sentryDebugIdIdentifier="sentry-dbid-b9313b80-0af8-4ae6-9609-ab6eceb02d77")}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:[We(e)]},{title:y.TimerOptions,collapsible:!0,options:[Ie,Ae,{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*.325;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:Re([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=Be(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(He,{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-Bs450x86.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Timer-Bs450x86.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.325;\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":"s0CAKO,MAAMA,GAAU,CAACC,EAAaC,EAAcC,IAAgD,CACjG,KAAOF,EAAMC,GAAM,CACjB,MAAME,EAAM,KAAK,OAAOH,EAAMC,GAAQ,CAAC,EACvC,GAAIE,IAAQH,EAAK,MAEbE,EAAUC,CAAG,EACTH,EAAAG,EAECF,EAAAE,CACT,CAEK,OAAAH,CACT,ECFO,SAASI,EAAQ,CACtB,SAAAC,EACA,KAAAC,EAAO,QACP,IAAAC,EAAM,GACN,IAAAC,EAAM,IACN,GAAGC,CACL,EAAoC,CAC5B,MAAAC,EAAMC,SAAuB,IAAI,EAEjCC,EAAcC,EAAAA,YAAY,IAAM,CACpC,MAAMC,EAAKJ,EAAI,QACX,OAACI,EACEA,EAAG,aAAeA,EAAG,cAAgBA,EAAG,YAAcA,EAAG,YADhD,EAElB,EAAG,EAAE,EAECC,EAAcF,EAAAA,YAAY,IAAM,CACpC,MAAMC,EAAKJ,EAAI,QACf,GAAI,CAACI,EAAI,OAEH,MAAAE,EAAmBF,EAAG,MAAM,WAElCA,EAAG,MAAM,WAAa,SACtB,MAAMG,EAAWlB,GAAQQ,EAAKC,EAAM,EAAIL,IACnCW,EAAA,MAAM,SAAW,GAAGX,CAAG,KACnB,CAACS,EAAY,EACrB,EACEE,EAAA,MAAM,SAAW,GAAGG,CAAQ,KAC/BH,EAAG,MAAM,WAAaE,CACrB,EAAA,CAACJ,EAAaL,EAAKC,CAAG,CAAC,EAE1BU,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMJ,EAAKJ,EAAI,QACf,GAAI,CAACI,EAAI,OAEGC,EAAA,EACN,MAAAI,EAAW,IAAI,eAAeJ,CAAW,EAC/C,OAAAI,EAAS,QAAQL,CAAE,EAEZ,IAAMK,EAAS,WAAW,CAChC,EAAA,CAACd,EAAUC,EAAMS,CAAW,CAAC,EAG9BK,EAAA,IAAC,MAAA,CACC,IAAAV,EACA,MAAO,CACL,WAAYJ,IAAS,SAAW,SAAW,QAC7C,EACC,GAAGG,EAEH,SAAAJ,CAAA,CACH,CAEJ,CCjDA,MAAMgB,GAAsC,CAC1C,CAAE,MAAO,eAAgB,MAAO,cAAe,EAC/C,CAAE,MAAOC,EAAU,QAAS,MAAO,UAAW,EAC9C,CAAE,MAAOA,EAAU,UAAW,MAAO,YAAa,EAClD,CAAE,MAAOA,EAAU,MAAO,MAAO,OAAQ,CAC3C,EAEaC,GAAkB,CAACC,EAAoBC,IAA6C,CACzF,MAAAC,EAAcC,EAA4BF,EAAc,CAC5D,CAAE,MAAO,OAAQ,MAAO,MAAO,EAC/B,CAAE,MAAO,QAAS,MAAO,OAAQ,EACjC,CAAE,MAAO,OAAQ,MAAO,MAAO,CAAA,CAChC,EACKG,EAAmBD,EAA4BF,EAAc,CACjE,CAAE,MAAO,OAAQ,MAAO,MAAO,EAC/B,CAAE,MAAO,QAAS,MAAO,OAAQ,EACjC,CAAE,MAAO,OAAQ,MAAO,MAAO,CAAA,CAChC,EAEM,MAAA,CACL,CAAE,MAAOI,EAAY,aAAc,YAAa,GAAM,QAAS,CAACC,GAAcN,CAAU,CAAC,CAAE,EAC3F,CACE,MAAOK,EAAY,aACnB,YAAa,GACb,QAAS,CACPE,GACAC,GACA,CACE,GAAI,YACJ,MAAO,aACP,YAAa,0BACb,KAAM,SACN,OAAQX,GACR,aAAc,cAChB,EACA,CACE,GAAI,iBACJ,MAAO,kBACP,YAAa,4DACb,KAAM,UACN,aAAc,EAChB,EACA,CACE,GAAI,gBACJ,MAAO,iBACP,YACE,8GACF,KAAM,SACN,aAAc,GACd,YAAa,kBACf,EACA,CACE,GAAI,YACJ,MAAO,uBACP,YAAa,yEACb,KAAM,UACN,aAAc,EAAA,CAChB,CAEJ,EACA,CACE,MAAOQ,EAAY,YACnB,YAAa,GACb,QAAS,CACP,CACE,GAAI,OACJ,MAAO,YACP,YAAa,2CACb,KAAM,SACN,OAAQH,EACR,aAAc,OAChB,EACA,CACE,GAAI,gBACJ,MAAO,iBACP,YAAa,gDACb,KAAM,SACN,OAAQE,EACR,aAAc,MAAA,CAChB,CAEJ,EACA,CACE,MAAOC,EAAY,kBACnB,YAAa,GACb,QAAS,CACP,CACE,GAAI,YACJ,MAAO,gBACP,YAAa,2BACb,KAAM,UACN,aAAc,EAChB,EACA,CACE,GAAI,YACJ,MAAO,aACP,YAAa,+BACb,KAAM,UACN,aAAc,EAChB,EACA,CACE,GAAI,eACJ,MAAO,oBACP,YAAa,yBACb,KAAM,UACN,aAAc,EAChB,EACA,CACE,GAAI,cACJ,MAAO,qBACP,YAAa,uDACb,KAAM,UACN,aAAc,EAChB,EACA,CACE,GAAI,gBACJ,MAAO,2CACP,YAAa,gEACb,KAAM,UACN,aAAc,EAChB,EACA,CACE,GAAI,WACJ,MAAO,wBACP,YAAa,6DACb,KAAM,UACN,aAAc,EAAA,CAChB,CAEJ,EACA,CACE,MAAOA,EAAY,cACnB,YAAa,GACb,QAAS,CACP,CACE,GAAI,OACJ,MAAO,OACP,YAAa,0DACb,KAAM,SACN,YAAa,qBACf,EACA,CACE,GAAI,YACJ,MAAO,aACP,YAAa,6DACb,KAAM,SACN,aAAc,QAChB,EACA,CACE,GAAI,cACJ,MAAO,eACP,YAAa,iCACb,KAAM,SACN,aAAc,QAAA,CAChB,CACF,CAEJ,CACF,EA0BA,SAASI,GAAqBC,EAA+BC,EAA+C,CAEpG,MAAAC,EAAYC,IAAgBF,GAAA,YAAAA,EAAe,IAAIE,KAAQH,EAAa,IAAIG,CAAG,EAG3EC,EAAYC,GAAkBH,EAAS,WAAW,EAAGd,EAAU,IAAI,EAElE,MAAA,CACL,UAAWkB,EAAgBJ,EAAS,WAAW,CAAC,EAChD,UAAWI,EAAgBJ,EAAS,WAAW,CAAC,EAChD,aAAcI,EAAgBJ,EAAS,cAAc,CAAC,EACtD,YAAaI,EAAgBJ,EAAS,aAAa,CAAC,EACpD,cAAeI,EAAgBJ,EAAS,eAAe,CAAC,EACxD,SAAUI,EAAgBJ,EAAS,UAAU,CAAC,EAC9C,iBAAkBI,EAAgBJ,EAAS,kBAAkB,CAAC,EAC9D,mBAAoB,CAACI,EAAgBJ,EAAS,kBAAkB,CAAC,EAEjE,WAAYA,EAAS,MAAM,EAC3B,gBAAiBA,EAAS,eAAe,EAGzC,UAAWE,IAAchB,EAAU,KAAO,OAAYgB,EACtD,eAAgBE,EAAgBJ,EAAS,gBAAgB,CAAC,EAC1D,cAAeA,EAAS,eAAe,GAAK,GAC5C,UAAWI,EAAgBJ,EAAS,WAAW,CAAC,EAEhD,KAAMA,EAAS,MAAM,GAAK,OAC1B,UAAWK,EAAiBL,EAAS,WAAW,CAAC,EACjD,YAAaK,EAAiBL,EAAS,aAAa,CAAC,CACvD,CACF,CAKO,SAASM,IAAgC,CACxC,KAAA,CAACR,CAAY,EAAIS,GAAgB,EACjCC,EAAcC,MAAIC,EAAa,EAO9B,OALSC,EAAAA,QAAQ,IAAM,CAC5B,MAAMZ,EAAgBS,EAAc,IAAI,gBAAgBA,EAAY,MAAM,EAAI,OACvE,OAAAX,GAAqBC,EAAcC,CAAa,CAAA,EACtD,CAACS,EAAaV,CAAY,CAAC,CAGhC,CC/OO,SAASc,GAAeC,EAAgC,CACtD,OAAAA,EAAQ,OAAS,IAAMA,EAAQ,OACxC,CAKO,SAASC,GAAaC,EAA6B,CACxD,OAAOA,IAAaC,EAAS,MAAQD,IAAaC,EAAS,IAC7D,CAKgB,SAAAC,GAAaC,EAAuBC,EAAgC,CAC1E,OAAAD,GAAY,IAAMC,GAAa,EACzC,CAKO,SAASC,GAAmBlB,EAAsB,CACvD,OAAOA,IAAchB,EAAU,MAAQgB,IAAchB,EAAU,KACjE,CAKO,SAASmC,GAAanB,EAAsB,CACjD,OAAOA,IAAchB,EAAU,KACjC,CAEA,MAAMoC,EAAyC,CAC7C,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,EACL,EAMgB,SAAAC,GAAqBC,EAAoBC,EAA2B,CAClF,MAAMC,EAAuBF,EAAW,OACpC,IAAAG,EAAiB,KAAOD,EAAuB,GAAM,KAErDJ,EAAYI,CAAoB,IAClCC,EAAgBL,EAAYI,CAAoB,GAGlD,IAAIE,EAAmBD,EAAgB,KACvC,OAAIF,IAGeE,GAAA,GACbF,EAAiB,OAAS,KACRG,EAAA,KAAOH,EAAiB,OAAS,GAAM,MAIxD,CACL,cAAAE,EACA,iBAAAC,CACF,CACF,CAKO,SAASC,GACd3B,EACA4B,EACAC,EACAC,EACAC,EACAC,EACA,CACA,OAAIA,EACK,CACL,eAAgB,GAChB,aAAc,GACd,YAAa,GACb,WAAY,EACd,EAGoBhC,IAAchB,EAAU,WAAa4C,EAUpD,CACL,eAAgBE,GAAkBC,IAAkB,GACpD,aAAcF,IAAUI,EAAW,SACnC,YAAaJ,IAAUI,EAAW,QAClC,WAAYJ,IAAUI,EAAW,MACnC,EAbS,CACL,eAAgB,GAChB,aAAc,GACd,YAAa,GACb,WAAY,EACd,CASJ,CAKO,SAASC,GACdvB,EACAwB,EACAC,EACAC,EACAC,EACAC,EACoB,CACpB,GAAI,CAAAA,EAIF,IAAA5B,EAAQ,MAAM,kBAAoB,QAClCA,EAAQ,MAAM,kBAAoB,QAClCA,EAAQ,MAAM,kBAAoB,OAElC,OAAO6B,EAAkBL,EAAYnD,EAAU,UAAWoD,EAAkB,CAC1E,cAAAC,EACA,kBAAAC,CAAA,CACD,EAEH,GAAI3B,EAAQ,MAAM,kBAAoB,aAAeA,EAAQ,UAC3D,OAAOA,EAAQ,UAGnB,CAKO,SAAS8B,GACdC,EACAC,EACAC,EACAC,EACAhC,EACAgB,EACA,CACI,GAAAhB,IAAaC,EAAS,KACjB,MAAA,CACL,QAAS,GACT,QAAS,OACT,aAAc,OACd,SAAU,GACV,SAAU,OACV,cAAe,MACjB,EAIF,MAAMgC,EAAiBC,GAAiBlC,CAAQ,GAAKgB,IAAUI,EAAW,QAGpEe,EAAUF,EAAiBG,EAAiBP,EAAUE,GAAc,OAAO,EAAI,OAC/EM,EAAeJ,EAAiBG,EAAiBP,EAAUG,CAAe,EAAI,OAC9EM,EAAWL,EACbG,EAAiBN,EAAWC,GAAc,OAAO,EACjDK,EAAiBP,EAAUE,GAAc,OAAO,EAC9CQ,EAAgBN,EAClBG,EAAiBN,EAAWE,CAAe,EAC3CI,EAAiBP,EAAUG,CAAe,EAEvC,MAAA,CACL,QAAS,EAAQG,GAAY,EAAQE,EACrC,QAAAF,EACA,aAAAE,EACA,SAAU,EAAQC,GAAa,EAAQC,EACvC,SAAAD,EACA,cAAAC,CACF,CACF,CC1KO,SAASC,IAAoC,CAElD,MAAMC,EAAaC,GAAqBC,GAAUA,EAAM,MAAM,EAGxD,CAAE,KAAMC,EAAa,OAAQC,CAAA,EAAsBC,GAAe,EAClE,CAAE,KAAMC,EAAc,OAAQC,CAAA,EAAuBC,GAAgB,EACrE,CAAE,KAAMC,EAAU,OAAQC,CAAA,EAAmBC,GAAY,EACzD,CAAE,KAAM9E,EAAc,OAAQ+E,CAAA,EAAuBC,GAAgB,EAEpE,MAAA,CACL,KAAM,CACJ,aAAAhF,EACA,YAAAsE,EACA,WAAAH,EACA,SAAAS,EACA,aAAAH,CACF,EACA,OAAQQ,GAAqB,CAACV,EAAmBG,EAAoBG,EAAgBE,CAAkB,CAAC,CAC1G,CACF,CCFA,SAAwBG,IAAc,CACpC,KAAM,CAAE,KAAAC,EAAM,OAAAC,CAAO,EAAIlB,GAAa,EAItC,OAFAmB,GAAe,OAAO,EAElBD,IAAW,gBACLE,GAAO,EAAA,EAGbF,IAAW,QACNzF,EAAA,IAAC4F,GAAU,CAAA,KAAK,4DAA6D,CAAA,EAG/E5F,MAAC6F,GAAO,CAAA,GAAGL,CAAM,CAAA,CAC1B,CAEA,SAASK,GAAM,CAAE,aAAAxF,EAAc,YAAAsE,EAAa,WAAAH,EAAY,SAAAS,EAAU,aAAAH,GAA2B,CACrF,KAAA,CAAE,UAAAjB,EAAW,SAAAD,EAAU,QAAA/B,EAAS,KAAAiE,EAAM,MAAAC,EAAO,aAAAC,EAAc,cAAAC,EAAe,SAAAC,CAAS,EAAIC,GAAe,EACtG,CACJ,UAAAC,EACA,UAAAC,EACA,aAAAC,EACA,YAAAC,EACA,cAAA9C,EACA,SAAA+C,EACA,iBAAA7F,EACA,mBAAA8F,EACA,WAAA3C,EACA,gBAAAC,EACA,UAAA7C,EACA,eAAA8B,EACA,cAAAC,EACA,UAAAC,EACA,KAAAwD,EACA,UAAAC,EACA,YAAAC,IACEtF,GAAgB,EAEd,CAAE,mBAAAuF,CAAmB,EAAIC,GAAe,EACxCxD,EAAmBuD,EAAmB,gBAAgB,EAGtDE,EAAgB7F,GAAa8E,EAC7BgB,EAAcpF,GAAeC,EAAQ,KAAK,EAC1C,CAAE,eAAAoF,GAAgB,aAAAC,EAAc,YAAAC,GAAa,WAAAC,EAAe,EAAAvE,GAChEmD,EACAC,EACAH,EAAK,MACL9C,EACAC,EACAC,CACF,EACMmE,EAAYvF,GAAagE,EAAK,QAAQ,EACtCwB,GAAY,CAAClB,GAAa/D,GAAa0E,CAAa,EACpDQ,GAAkB,CAACjB,GAAgBlE,GAAmB2E,CAAa,EAGnE,CAAE,QAAAS,GAAS,QAAAtD,GAAS,aAAAE,GAAc,SAAAqD,GAAU,SAAApD,GAAU,cAAAC,IAAkBX,GAC5EC,EACAC,EACAC,EACAC,EACA+B,EAAK,SACLA,EAAK,KACP,EAGM4B,GAAYzF,GAAa6D,EAAK,SAAUA,EAAK,SAAS,EACtD6B,GAAiBC,GAAW7B,CAAK,EACjCvD,GAAaqF,GAAe7E,EAAgBgD,EAAcC,EAAeF,EAAOD,EAAM5E,CAAS,EAC/F4G,EAAUpE,EAAkBlB,GAAYuE,EAAezD,EAAkB,CAC7E,cAAe3C,EACf,kBAAmB8F,CAAA,CACpB,EAEKpD,GACAxB,EAAQ,MAAM,kBAAoB,OAC7BqE,EAAS,KAEdrE,EAAQ,MAAM,kBAAoB,OAC7BqE,EAAS,KAEdrE,EAAQ,MAAM,kBAAoB,OAC7BqE,EAAS,KAEX,KAGHzD,EAAmBW,GACvBvB,EACAwB,GACAC,EACA3C,EACA8F,EACAhD,CACF,EAGMsE,EAAsBC,GAAelD,EAAc8B,GAAaO,GAAaC,EAAU,EACvF,CAAE,cAAAzE,GAAe,iBAAAC,EAAA,EAAqBL,GAAqBuF,EAASrF,CAAgB,EACpFwF,GAAa,CACjB,GAAItB,GAAa,CAAE,aAAcA,CAAU,EAC3C,GAAIoB,GAAuB,CAAE,iBAAkBA,CAAoB,EACnE,GAAIrB,GAAQ,CAAE,eAAgBA,CAAK,CACrC,EAGMwB,EAAgBC,GAAiBlD,GAAA,YAAAA,EAAU,UAAU,EACrDmD,GAAezG,UAAQ,IAAMxB,GAAgB+H,EAAe7H,CAAY,EAAG,CAACA,EAAc6H,CAAa,CAAC,EAG5G,OAAAG,EAAA,KAAC,MAAA,CACC,cAAY,aACZ,UAAWC,EAAG,CAAC,cAAe9D,GAAc,SAAU0C,GAAgB,uBAAuB,CAAC,EAC9F,MAAOe,GAEN,SAAA,CAAC,CAAAzB,IAAY7B,GAAA,YAAAA,EAAa,OAAQ3E,EAAA,IAACuI,IAAS,KAAM5D,EAAY,KAAM,UAAU,MAAO,CAAA,QAErF6D,GAAiB,CAAA,OAAQC,GAAW,MAAO,YAAaL,GAAc,EAEvEpI,EAAAA,IAAC,MAAI,CAAA,UAAWsI,EAAG,CAAC,WAAYzG,EAAQ,MAAM,UAAY,kBAAkB,CAAC,CAAG,CAAA,EAE/E,CAAC0E,GACCvG,EAAAA,IAAA,MAAA,CAAI,UAAWsI,EAAG,CAAC,kBAAmBtB,GAAe,yBAAyB,CAAC,EAC9E,SAAAhH,EAAAA,IAAChB,GAAQ,KAAK,QAAQ,IAAK,GAAI,IAAK,IAAK,UAAWsJ,EAAG,CAAC,UAAWzG,EAAQ,MAAM,OAAS,OAAO,CAAC,EAC/F,SAAQA,EAAA,MAAM,IACjB,CAAA,EACF,EAGDyF,IACCe,EAAA,KAAC,MAAI,CAAA,UAAU,kBACb,SAAA,CAAArI,MAAC,MAAI,CAAA,UAAU,QAAS,SAAA6G,EAAmB,iBAAiB,EAAE,EAC7D7G,EAAA,IAAA0I,GAAA,CAAgB,KAAMf,GAAgB,UAAU,OAAQ,CAAA,CAAA,EAC3D,EAGDU,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAG,CAAC,kBAAmBzG,EAAQ,MAAM,OAAS,CAACmF,GAAe,OAAO,CAAC,EACnF,SAAA,CACCC,GAAAjH,EAAA,IAAChB,EAAQ,CAAA,KAAK,QAAQ,IAAK,GAAI,IAAK,IAAK,UAAU,cAChD,SAAAiE,CACH,CAAA,EAEAjD,EAAA,IAAC,MAAA,CACC,UAAWsI,EAAG,CAAC,QAAS,CAACjB,GAAa,gBAAiBH,GAAgB,iBAAiB,CAAC,EACzF,MAAO,CAAE,SAAU,GAAGvE,EAAa,IAAK,EACxC,aAAYmD,EAAK,MAEhB,SAAAgC,CAAA,CACH,EAEF9H,EAAA,IAAC,MAAA,CACC,UAAWsI,EAAG,CAAC,YAAa,CAAC7F,GAAoB,mBAAmB,CAAC,EACrE,MAAO,CAAE,SAAU,GAAGG,EAAgB,IAAK,EAE1C,SAAAH,CAAA,CAAA,CACH,EACF,EAEC8E,IACCvH,EAAA,IAAC2I,GAAA,CACC,UAAWL,EAAG,CAAC,qBAAsB,CAACjB,GAAa,4BAA4B,CAAC,EAChF,IAAKvB,EAAK,QACV,SAAU4B,GACV,YAAa5C,EAAa,YAC1B,QAASlB,GAAA,YAAAA,EAAU,YACnB,aAAckB,EAAa,aAC3B,OAAQlB,GAAA,YAAAA,EAAU,WAClB,YAAakB,EAAa,YAC1B,aAAc,CAACoC,CAAA,CACjB,EAGD,CAACb,GAEGgC,EAAAA,KAAAO,EAAA,SAAA,CAAA,SAAA,CAAWpB,IAAAxH,EAAA,IAAC6I,GAAU,UAAU,YAAY,MAAM,MAAM,MAAO3E,GAAS,UAAWE,EAAc,CAAA,EACjGqD,IAAazH,EAAA,IAAA6I,EAAA,CAAU,UAAU,aAAa,MAAM,OAAO,MAAOxE,GAAU,UAAWC,EAAe,CAAA,CAAA,CACzG,CAAA,CAAA,CAAA,CAEJ,CAEJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.blink{animation:blink 1s step-start infinite}@keyframes blink{0%{opacity:100%}50%{opacity:20%}}.fourtyfive{transform:rotate(45deg)}.mirror{transform:rotate(180deg)}.stage-timer{margin:0;box-sizing:border-box;overflow:hidden;width:100%;height:100vh;transition:opacity .5s ease-in-out;font-family:var(--font-family-override, "Open Sans", "Segoe UI", sans-serif);background:var(--timer-bg, var(--background-color-override, #101010));color:var(--color-override, rgba(255, 255, 255, .8));gap:min(2vh,16px);padding:min(2vh,16px) clamp(16px,2vw,24px);display:flex;flex-direction:column}.stage-timer--finished{outline:clamp(4px,1vw,16px) solid var(--timer-overtime-color-override, #FA5656);outline-offset:calc(clamp(4px,1vw,16px)*-1);transition:.5s}.stage-timer .blackout{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-color:#000;opacity:0;transition:opacity .5s}.stage-timer .blackout--active{z-index:101;opacity:1}.stage-timer .clock-container{margin-left:auto;font-weight:600;transition:opacity .5s}.stage-timer .clock-container .label{font-size:clamp(12px,1.25vw,20px);color:var(--label-color-override, rgba(255, 255, 255, .25));text-transform:uppercase}.stage-timer .clock-container .clock{font-size:clamp(24px,2.5vw,48px);color:var(--secondary-color-override, rgba(255, 255, 255, .45));letter-spacing:.05em;line-height:.95em}.stage-timer .clock-container--hidden{opacity:0}.stage-timer .event{background-color:var(--card-background-color-override, rgba(255, 255, 255, .05));padding:min(2vh,8px) clamp(16px,2vw,24px);border-radius:4px}.stage-timer .event.now{grid-area:now}.stage-timer .event.next{grid-area:next}.stage-timer .timer-container{flex:1;align-content:center;justify-self:center;align-self:center;width:100%;overflow:hidden}.stage-timer .timer-container .end-message{text-align:center;font-size:11.5vw;line-height:.9em;font-weight:600;color:var(--timer-overtime-color-override, #FA5656);padding:0}.stage-timer .timer-container .timer{opacity:1;font-family:var(--timer-font, var(--font-family-override, "Open Sans", "Segoe UI", sans-serif));color:var(--timer-colour, var(--timer-color-override, #f6f6f6));line-height:.9em;text-align:center;letter-spacing:.05em;font-weight:600;transition-property:font-size;transition-duration:.5s}.stage-timer .timer-container .timer--paused{opacity:.6;transition:.5s}.stage-timer .timer-container .timer--finished{color:var(--timer-colour, var(--timer-overtime-color-override, #FA5656))}.stage-timer .timer-container .timer[data-phase=warning]{color:var(--timer-colour, var(--timer-warning-color-override))}.stage-timer .timer-container .timer[data-phase=danger]{color:var(--timer-colour, var(--timer-danger-color-override))}.stage-timer .secondary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.125em;padding-block:.125em;font-weight:600;text-align:center;color:var(--external-color-override, rgba(255, 255, 255, .85));letter-spacing:.5px;line-height:1em;transition-property:opacity,height;transition-duration:.5s;border-top:1px solid color-mix(in srgb,var(--external-color-override, rgba(255, 255, 255, .85)) 10%,transparent)}.stage-timer .secondary--hidden{opacity:0;height:0}.stage-timer .progress-container{width:100%;margin:0 auto;opacity:1;transition:.5s}.stage-timer .progress-container--paused{opacity:.6;transition:.5s}.stage-timer .message-overlay{position:fixed;top:0;right:0;bottom:0;left:0;padding:2vw;background:var(--background-color-override, #101010);opacity:0;transition:opacity .5s}.stage-timer .message-overlay--active{z-index:100;opacity:1}.stage-timer .message{display:grid;place-content:center;height:100%;width:100%;color:var(--color-override, rgba(255, 255, 255, .8));text-align:center;font-weight:600}.stage-timer .logo{position:absolute;top:min(2vh,16px);left:clamp(16px,2vw,24px);max-width:min(200px,20vw)}@media screen and (max-width: 768px){.stage-timer .logo img{height:min(50px,10vh)}}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{e as a,k as $,h as i}from"./vendor-Cu5xgv5K.js";import{r as p,aw as g,o as y,aE as m,ax as R}from"./index-5QAOtSTh.js";import{u as I}from"./useProjectData-CetvEK9E.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new t.Error().stack;n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="0f7e61a8-bf75-49b8-b046-7e30c2f14635",t._sentryDebugIdIdentifier="sentry-dbid-0f7e61a8-bf75-49b8-b046-7e30c2f14635")}catch{}})();var c=(t=>(t.Event="event",t.Delay="delay",t.Group="group",t.Milestone="milestone",t))(c||{});function M(t){return(t==null?void 0:t.type)===c.Event}function v(t){return!t.skip}function G(t){return(t==null?void 0:t.type)===c.Delay}function O(t){return(t==null?void 0:t.type)===c.Group}function N(t){return(t==null?void 0:t.type)===c.Milestone}function W(t,n){return t in n}function _(t){return t.type==="osc"}function B(t){return t.type==="http"}function K(t){return t.type==="ontime"}function b(t,n){return!(!n||t.dayOffset<=n.dayOffset||n.timeStart+n.duration>p)}function D(t,n){if(!n)return!0;const s=t.timeStart+t.duration+t.dayOffset*p,e=n.timeStart+n.duration+n.dayOffset*p;return s>=e}const r=`${g}/rundowns`;async function U(){return(await a.get(r)).data}async function L(){return(await a.get(`${r}/current`)).data}async function Q(t){return a.post(`${r}/${t}/load`)}async function j(t){return a.post(r,{title:t})}async function z(t){return a.delete(`${r}/${t}`)}async function H(t,n){return a.post(`${r}/${t}/entry`,n)}async function J(t,n){return a.put(`${r}/${t}/entry`,n)}async function V(t,n){return a.put(`${r}/${t}/batch`,n)}async function X(t,n){return a.patch(`${r}/${t}/reorder`,n)}async function Y(t,n,s){return a.patch(`${r}/${t}/swap`,{from:n,to:s})}async function Z(t,n){return a.patch(`${r}/${t}/applydelay/${n}`)}async function tt(t,n){return a.post(`${r}/${t}/clone/${n}`)}async function nt(t,n){return a.post(`${r}/${t}/group`,{ids:n})}async function et(t,n){return a.post(`${r}/${t}/ungroup/${n}`)}async function st(t,n){return a.delete(`${r}/${t}/entries`,{data:{ids:n}})}async function at(t){return a.delete(`${r}/${t}/all`)}const P="LAST";function x(t,n){const{metadata:s,process:e}=w(n);let o=s;const u={};for(const d of t.flatOrder){const l=t.entries[d];o=e(l),u[d]=o}return u[P]=o,u}function T(t,n){const{process:s}=w(n),e=[];for(const o of t.flatOrder){const u=t.entries[o],d={...u,...s(u)};e.push(d)}return e}function w(t){let n={previousEvent:null,latestEvent:null,previousEntryId:null,thisId:null,eventIndex:0,isPast:!!t,isNextDay:!1,totalGap:0,isLinkedToLoaded:!1,isLoaded:!1,groupId:null,groupColour:void 0,groupEntries:void 0,isFirstAfterGroup:!1};function s(e){return n=k(n,t,e),n}return{metadata:n,process:s}}function k(t,n,s){var o,u;const e={...t};return e.isNextDay=!1,e.isLoaded=!1,e.previousEntryId=e.thisId,e.thisId=s.id,e.previousEvent=e.latestEvent,s.id===n&&(e.isLoaded=!0,e.isPast=!1,e.isLinkedToLoaded=!0),O(s)?(e.groupId=s.id,e.groupColour=s.colour,e.groupEntries=s.entries.length):(s.parent!==e.groupId&&(e.groupId=s.parent,e.groupEntries=void 0,s.parent===null&&(e.groupColour=void 0)),M(s)&&(e.eventIndex+=1,e.isFirstAfterGroup=!!((o=e.previousEvent)!=null&&o.parent)&&s.parent===null,v(s)&&(e.isNextDay=b(s,e.previousEvent),e.totalGap+=s.gap,!e.isPast&&!e.isLoaded&&(e.isLinkedToLoaded=s.linkStart&&!((u=e.previousEvent)!=null&&u.countToEnd)&&e.isLinkedToLoaded),D(s,e.latestEvent)&&(e.latestEvent=s)))),e}const S={id:"default",title:"",order:[],flatOrder:[],entries:{},revision:-1};function f(){const{data:t,status:n,isError:s,refetch:e,isFetching:o}=$({queryKey:R,queryFn:L,placeholderData:(u,d)=>u,refetchInterval:m});return{data:t??S,status:n,isError:s,refetch:e,isFetching:o}}function rt(){const{data:t,status:n}=f(),{selectedEventId:s}=y(),e=i.useMemo(()=>x(t,s),[t,s]);return{data:t,status:n,rundownMetadata:e}}function ot(){const{data:t,status:n}=f(),{data:s}=I(),e=i.useRef(""),[o,u]=i.useState(-1),[d,l]=i.useState([]);return i.useEffect(()=>{if(t.revision!==-1||t.revision!==o){const E=t.order.map(h=>t.entries[h]);l(E),u(t.revision)}},[t.entries,t.flatOrder,t.revision,o]),i.useEffect(()=>{(s==null?void 0:s.title)!==e.current&&(u(-1),e.current=(s==null?void 0:s.title)??"")},[s]),{data:d,rundownId:t.id,status:n}}function q(){const{data:t,status:n}=f(),{selectedEventId:s}=y();return{data:i.useMemo(()=>T(t,s),[t,s]),status:n}}function ut(t){const{data:n,status:s}=q();return{data:i.useMemo(()=>n.filter(t),[n,t]),status:s}}function it(t){const{data:n}=f();return i.useMemo(()=>t===null?null:n.entries[t],[t,n.entries])}export{at as A,Z as B,et as C,nt as D,X as E,Y as F,c as S,v as a,ut as b,ot as c,D as d,_ as e,B as f,K as g,f as h,M as i,O as j,N as k,j as l,z as m,Q as n,U as o,W as p,G as q,rt as r,it as s,P as t,q as u,H as v,tt as w,J as x,V as y,st as z};
|
|
2
|
-
//# sourceMappingURL=useRundown-D8CYATNi.js.map
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|