@getontime/cli 4.4.0 → 4.4.1
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-ScLTYJAt.js → Backstage-BY9GL_rk.js} +2 -2
- package/client/assets/Backstage-BY9GL_rk.js.br +0 -0
- package/client/assets/Backstage-BY9GL_rk.js.gz +0 -0
- package/client/assets/{Backstage-ScLTYJAt.js.map → Backstage-BY9GL_rk.js.map} +1 -1
- package/client/assets/{Countdown-DA_Lph2k.js → Countdown-CXFgDHND.js} +2 -2
- package/client/assets/Countdown-CXFgDHND.js.br +0 -0
- package/client/assets/Countdown-CXFgDHND.js.gz +0 -0
- package/client/assets/{Countdown-DA_Lph2k.js.map → Countdown-CXFgDHND.js.map} +1 -1
- package/client/assets/{CuesheetTable-C7hP6tMi.js → CuesheetTable-BLICUNky.js} +2 -2
- package/client/assets/CuesheetTable-BLICUNky.js.br +0 -0
- package/client/assets/CuesheetTable-BLICUNky.js.gz +0 -0
- package/client/assets/{CuesheetTable-C7hP6tMi.js.map → CuesheetTable-BLICUNky.js.map} +1 -1
- package/client/assets/CustomTranslationModal-4PVZBtkC.js +2 -0
- package/client/assets/CustomTranslationModal-4PVZBtkC.js.br +0 -0
- package/client/assets/CustomTranslationModal-4PVZBtkC.js.gz +0 -0
- package/client/assets/{CustomTranslationModal-0ROtCxPC.js.map → CustomTranslationModal-4PVZBtkC.js.map} +1 -1
- package/client/assets/DelayIndicator-DUbpd6DG.js +2 -0
- package/client/assets/DelayIndicator-DUbpd6DG.js.br +0 -0
- package/client/assets/DelayIndicator-DUbpd6DG.js.gz +0 -0
- package/client/assets/DelayIndicator-DUbpd6DG.js.map +1 -0
- package/client/assets/{EditorFeatureWrapper-B_KH_YqU.js → EditorFeatureWrapper-CV_zaDoG.js} +2 -2
- package/client/assets/EditorFeatureWrapper-CV_zaDoG.js.br +0 -0
- package/client/assets/EditorFeatureWrapper-CV_zaDoG.js.gz +0 -0
- package/client/assets/{EditorFeatureWrapper-B_KH_YqU.js.map → EditorFeatureWrapper-CV_zaDoG.js.map} +1 -1
- package/client/assets/{EditorUtils-BxN0w0-D.js → EditorUtils-CLBWDP4k.js} +2 -2
- package/client/assets/EditorUtils-CLBWDP4k.js.br +0 -0
- package/client/assets/EditorUtils-CLBWDP4k.js.gz +0 -0
- package/client/assets/{EditorUtils-BxN0w0-D.js.map → EditorUtils-CLBWDP4k.js.map} +1 -1
- package/client/assets/{EmptyPage-CcO33dlE.js → EmptyPage-DmpOAg7R.js} +2 -2
- package/client/assets/EmptyPage-DmpOAg7R.js.br +2 -0
- package/client/assets/EmptyPage-DmpOAg7R.js.gz +0 -0
- package/client/assets/{EmptyPage-CcO33dlE.js.map → EmptyPage-DmpOAg7R.js.map} +1 -1
- package/client/assets/{FollowButton-DJCtYYXt.js → FollowButton-CAUWz5Ma.js} +2 -2
- package/client/assets/FollowButton-CAUWz5Ma.js.br +0 -0
- package/client/assets/FollowButton-CAUWz5Ma.js.gz +0 -0
- package/client/assets/{FollowButton-DJCtYYXt.js.map → FollowButton-CAUWz5Ma.js.map} +1 -1
- package/client/assets/{MessageControlExport-DGo2ZNMw.js → MessageControlExport-Dm8IjSr4.js} +3 -3
- package/client/assets/MessageControlExport-Dm8IjSr4.js.br +0 -0
- package/client/assets/MessageControlExport-Dm8IjSr4.js.gz +0 -0
- package/client/assets/{MessageControlExport-DGo2ZNMw.js.map → MessageControlExport-Dm8IjSr4.js.map} +1 -1
- package/client/assets/{MultiPartProgressBar-IIU35-x9.js → MultiPartProgressBar-Fp-sTN2u.js} +2 -2
- package/client/assets/MultiPartProgressBar-Fp-sTN2u.js.br +0 -0
- package/client/assets/MultiPartProgressBar-Fp-sTN2u.js.gz +0 -0
- package/client/assets/{MultiPartProgressBar-IIU35-x9.js.map → MultiPartProgressBar-Fp-sTN2u.js.map} +1 -1
- package/client/assets/{OperatorExport-C-KafSVE.js → OperatorExport-CE4ajLPS.js} +2 -2
- package/client/assets/OperatorExport-CE4ajLPS.js.br +0 -0
- package/client/assets/OperatorExport-CE4ajLPS.js.gz +0 -0
- package/client/assets/{OperatorExport-C-KafSVE.js.map → OperatorExport-CE4ajLPS.js.map} +1 -1
- package/client/assets/{OverviewWrapper-B6AeBRb6.js → OverviewWrapper-BNnAIUP1.js} +2 -2
- package/client/assets/OverviewWrapper-BNnAIUP1.js.br +0 -0
- package/client/assets/OverviewWrapper-BNnAIUP1.js.gz +0 -0
- package/client/assets/{OverviewWrapper-B6AeBRb6.js.map → OverviewWrapper-BNnAIUP1.js.map} +1 -1
- package/client/assets/{PipHost-BueqKsmJ.js → PipHost-CbNFsfqp.js} +2 -2
- package/client/assets/PipHost-CbNFsfqp.js.br +0 -0
- package/client/assets/PipHost-CbNFsfqp.js.gz +0 -0
- package/client/assets/{PipHost-BueqKsmJ.js.map → PipHost-CbNFsfqp.js.map} +1 -1
- package/client/assets/{ProjectInfo-DiD9lzzx.js → ProjectInfo-Bf5z4Xsv.js} +2 -2
- package/client/assets/ProjectInfo-Bf5z4Xsv.js.br +0 -0
- package/client/assets/ProjectInfo-Bf5z4Xsv.js.gz +0 -0
- package/client/assets/{ProjectInfo-DiD9lzzx.js.map → ProjectInfo-Bf5z4Xsv.js.map} +1 -1
- package/client/assets/{ProtectRoute-CcDK6JVA.js → ProtectRoute-CCHzyy0I.js} +2 -2
- package/client/assets/ProtectRoute-CCHzyy0I.js.br +0 -0
- package/client/assets/ProtectRoute-CCHzyy0I.js.gz +0 -0
- package/client/assets/{ProtectRoute-CcDK6JVA.js.map → ProtectRoute-CCHzyy0I.js.map} +1 -1
- package/client/assets/ProtectedCuesheet-COI1W_V3.js +2 -0
- package/client/assets/ProtectedCuesheet-COI1W_V3.js.br +0 -0
- package/client/assets/ProtectedCuesheet-COI1W_V3.js.gz +0 -0
- package/client/assets/{ProtectedCuesheet-D19INqhI.js.map → ProtectedCuesheet-COI1W_V3.js.map} +1 -1
- package/client/assets/ProtectedEditor-BvTFmv-F.js +3 -0
- package/client/assets/ProtectedEditor-BvTFmv-F.js.br +0 -0
- package/client/assets/ProtectedEditor-BvTFmv-F.js.gz +0 -0
- package/client/assets/ProtectedEditor-BvTFmv-F.js.map +1 -0
- package/client/assets/RundownExport-C_q3KYN_.js +2 -0
- package/client/assets/RundownExport-C_q3KYN_.js.br +0 -0
- package/client/assets/RundownExport-C_q3KYN_.js.gz +0 -0
- package/client/assets/RundownExport-C_q3KYN_.js.map +1 -0
- package/client/assets/RundownExport-CzaSrbaj.css +1 -0
- package/client/assets/RundownExport-CzaSrbaj.css.br +0 -0
- package/client/assets/RundownExport-CzaSrbaj.css.gz +0 -0
- package/client/assets/Select-DQwYPDyI.js +2 -0
- package/client/assets/Select-DQwYPDyI.js.br +0 -0
- package/client/assets/Select-DQwYPDyI.js.gz +0 -0
- package/client/assets/{Select-B3zdv0Ng.js.map → Select-DQwYPDyI.js.map} +1 -1
- package/client/assets/{Studio-DS_uXtgn.js → Studio-DzXTmBx4.js} +2 -2
- package/client/assets/Studio-DzXTmBx4.js.br +0 -0
- package/client/assets/Studio-DzXTmBx4.js.gz +0 -0
- package/client/assets/{Studio-DS_uXtgn.js.map → Studio-DzXTmBx4.js.map} +1 -1
- package/client/assets/StyleEditor-ClMEMaWh.js +2 -0
- package/client/assets/StyleEditor-ClMEMaWh.js.br +0 -0
- package/client/assets/StyleEditor-ClMEMaWh.js.gz +0 -0
- package/client/assets/{StyleEditor-DcyJgmAF.js.map → StyleEditor-ClMEMaWh.js.map} +1 -1
- package/client/assets/{SuperscriptPeriod-DswX2aei.js → SuperscriptPeriod-CBiZU34J.js} +2 -2
- package/client/assets/SuperscriptPeriod-CBiZU34J.js.br +0 -0
- package/client/assets/SuperscriptPeriod-CBiZU34J.js.gz +0 -0
- package/client/assets/{SuperscriptPeriod-DswX2aei.js.map → SuperscriptPeriod-CBiZU34J.js.map} +1 -1
- package/client/assets/{SuperscriptTime-COS4JWHJ.js → SuperscriptTime-DP1CDlOX.js} +2 -2
- package/client/assets/SuperscriptTime-DP1CDlOX.js.br +0 -0
- package/client/assets/SuperscriptTime-DP1CDlOX.js.gz +0 -0
- package/client/assets/{SuperscriptTime-COS4JWHJ.js.map → SuperscriptTime-DP1CDlOX.js.map} +1 -1
- package/client/assets/SwatchPicker-Dyxkxf3_.js +2 -0
- package/client/assets/SwatchPicker-Dyxkxf3_.js.br +0 -0
- package/client/assets/SwatchPicker-Dyxkxf3_.js.gz +0 -0
- package/client/assets/{SwatchPicker-DPyJv7aS.js.map → SwatchPicker-Dyxkxf3_.js.map} +1 -1
- package/client/assets/TimeElements-pDYJeFbV.js +2 -0
- package/client/assets/TimeElements-pDYJeFbV.js.br +0 -0
- package/client/assets/TimeElements-pDYJeFbV.js.gz +0 -0
- package/client/assets/{TimeElements-8rNLGU60.js.map → TimeElements-pDYJeFbV.js.map} +1 -1
- package/client/assets/{TimeInput-OX4LMRQl.js → TimeInput-DTWDnaum.js} +2 -2
- package/client/assets/TimeInput-DTWDnaum.js.br +0 -0
- package/client/assets/TimeInput-DTWDnaum.js.gz +0 -0
- package/client/assets/{TimeInput-OX4LMRQl.js.map → TimeInput-DTWDnaum.js.map} +1 -1
- package/client/assets/{TimelinePage-7kRpUl6P.js → TimelinePage-DbLt9rQi.js} +2 -2
- package/client/assets/TimelinePage-DbLt9rQi.js.br +0 -0
- package/client/assets/TimelinePage-DbLt9rQi.js.gz +0 -0
- package/client/assets/{TimelinePage-7kRpUl6P.js.map → TimelinePage-DbLt9rQi.js.map} +1 -1
- package/client/assets/{Timer-Bg9pVhup.js → Timer-BfyVKQ8U.js} +2 -2
- package/client/assets/Timer-BfyVKQ8U.js.br +0 -0
- package/client/assets/Timer-BfyVKQ8U.js.gz +0 -0
- package/client/assets/{Timer-Bg9pVhup.js.map → Timer-BfyVKQ8U.js.map} +1 -1
- package/client/assets/TimerControlExport-BJfhJc07.js +2 -0
- package/client/assets/TimerControlExport-BJfhJc07.js.br +0 -0
- package/client/assets/TimerControlExport-BJfhJc07.js.gz +0 -0
- package/client/assets/{TimerControlExport-BNfZ99Im.js.map → TimerControlExport-BJfhJc07.js.map} +1 -1
- package/client/assets/TimerDisplay-Dgmbqf65.js +2 -0
- package/client/assets/TimerDisplay-Dgmbqf65.js.br +0 -0
- package/client/assets/TimerDisplay-Dgmbqf65.js.gz +0 -0
- package/client/assets/{TimerDisplay-DQQ7sMDc.js.map → TimerDisplay-Dgmbqf65.js.map} +1 -1
- package/client/assets/{TitleCard-De0WhlN2.js → TitleCard-MUurHeZ7.js} +2 -2
- package/client/assets/TitleCard-MUurHeZ7.js.br +0 -0
- package/client/assets/TitleCard-MUurHeZ7.js.gz +0 -0
- package/client/assets/{TitleCard-De0WhlN2.js.map → TitleCard-MUurHeZ7.js.map} +1 -1
- package/client/assets/Tooltip-DXph8P8p.js +2 -0
- package/client/assets/Tooltip-DXph8P8p.js.br +0 -0
- package/client/assets/Tooltip-DXph8P8p.js.gz +0 -0
- package/client/assets/{Tooltip-B4PEP32j.js.map → Tooltip-DXph8P8p.js.map} +1 -1
- package/client/assets/{ViewLogo-CHqiH4C0.js → ViewLogo-Ckp7i75x.js} +2 -2
- package/client/assets/ViewLogo-Ckp7i75x.js.br +0 -0
- package/client/assets/ViewLogo-Ckp7i75x.js.gz +0 -0
- package/client/assets/{ViewLogo-CHqiH4C0.js.map → ViewLogo-Ckp7i75x.js.map} +1 -1
- package/client/assets/{ViewParamsEditor-BHIK3qtx.js → ViewParamsEditor-Cxngd15h.js} +2 -2
- package/client/assets/ViewParamsEditor-Cxngd15h.js.br +0 -0
- package/client/assets/ViewParamsEditor-Cxngd15h.js.gz +0 -0
- package/client/assets/{ViewParamsEditor-BHIK3qtx.js.map → ViewParamsEditor-Cxngd15h.js.map} +1 -1
- package/client/assets/{editorSettings-VcitNPq1.js → editorSettings-D4jfu68W.js} +2 -2
- package/client/assets/editorSettings-D4jfu68W.js.br +0 -0
- package/client/assets/editorSettings-D4jfu68W.js.gz +0 -0
- package/client/assets/{editorSettings-VcitNPq1.js.map → editorSettings-D4jfu68W.js.map} +1 -1
- package/client/assets/{getProgress-mRMYlU96.js → getProgress-B9UANc25.js} +2 -2
- package/client/assets/getProgress-B9UANc25.js.br +0 -0
- package/client/assets/getProgress-B9UANc25.js.gz +0 -0
- package/client/assets/{getProgress-mRMYlU96.js.map → getProgress-B9UANc25.js.map} +1 -1
- package/client/assets/index-2lQ-45a9.js +3 -0
- package/client/assets/index-2lQ-45a9.js.br +0 -0
- package/client/assets/index-2lQ-45a9.js.gz +0 -0
- package/client/assets/index-2lQ-45a9.js.map +1 -0
- package/client/assets/{offset-Bs6CY1IK.js → offset-DAyBfv5b.js} +2 -2
- package/client/assets/offset-DAyBfv5b.js.br +4 -0
- package/client/assets/offset-DAyBfv5b.js.gz +0 -0
- package/client/assets/{offset-Bs6CY1IK.js.map → offset-DAyBfv5b.js.map} +1 -1
- package/client/assets/{parseUserTime-CI7s8pYc.js → parseUserTime-WkVNjkkE.js} +2 -2
- package/client/assets/parseUserTime-WkVNjkkE.js.br +0 -0
- package/client/assets/parseUserTime-WkVNjkkE.js.gz +0 -0
- package/client/assets/{parseUserTime-CI7s8pYc.js.map → parseUserTime-WkVNjkkE.js.map} +1 -1
- package/client/assets/{playbackstate-DisgQbHM.js → playbackstate-znZk3SSJ.js} +2 -2
- package/client/assets/playbackstate-znZk3SSJ.js.br +0 -0
- package/client/assets/playbackstate-znZk3SSJ.js.gz +0 -0
- package/client/assets/{playbackstate-DisgQbHM.js.map → playbackstate-znZk3SSJ.js.map} +1 -1
- package/client/assets/{presentation.utils-Bv3PuMWv.js → presentation.utils-CjjYs5II.js} +2 -2
- package/client/assets/presentation.utils-CjjYs5II.js.br +0 -0
- package/client/assets/presentation.utils-CjjYs5II.js.gz +0 -0
- package/client/assets/{presentation.utils-Bv3PuMWv.js.map → presentation.utils-CjjYs5II.js.map} +1 -1
- package/client/assets/rundownUtils-BTQ3EeqN.js +2 -0
- package/client/assets/rundownUtils-BTQ3EeqN.js.br +0 -0
- package/client/assets/rundownUtils-BTQ3EeqN.js.gz +0 -0
- package/client/assets/rundownUtils-BTQ3EeqN.js.map +1 -0
- package/client/assets/{timer.utils-P25ngopd.js → timer.utils-B-Ui91P7.js} +2 -2
- package/client/assets/timer.utils-B-Ui91P7.js.br +0 -0
- package/client/assets/timer.utils-B-Ui91P7.js.gz +0 -0
- package/client/assets/{timer.utils-P25ngopd.js.map → timer.utils-B-Ui91P7.js.map} +1 -1
- package/client/assets/useCustomFields-zr9SUl5o.js +2 -0
- package/client/assets/useCustomFields-zr9SUl5o.js.br +0 -0
- package/client/assets/useCustomFields-zr9SUl5o.js.gz +0 -0
- package/client/assets/useCustomFields-zr9SUl5o.js.map +1 -0
- package/client/assets/useEventSelection-B9mbj1cM.js +2 -0
- package/client/assets/useEventSelection-B9mbj1cM.js.br +0 -0
- package/client/assets/useEventSelection-B9mbj1cM.js.gz +0 -0
- package/client/assets/useEventSelection-B9mbj1cM.js.map +1 -0
- package/client/assets/useProjectData-DD_BQ9eJ.js +2 -0
- package/client/assets/useProjectData-DD_BQ9eJ.js.br +0 -0
- package/client/assets/useProjectData-DD_BQ9eJ.js.gz +0 -0
- package/client/assets/useProjectData-DD_BQ9eJ.js.map +1 -0
- package/client/assets/useReport-DozG5uz5.js +2 -0
- package/client/assets/useReport-DozG5uz5.js.br +0 -0
- package/client/assets/useReport-DozG5uz5.js.gz +0 -0
- package/client/assets/useReport-DozG5uz5.js.map +1 -0
- package/client/assets/useRundown-D6vokFHi.js +2 -0
- package/client/assets/useRundown-D6vokFHi.js.br +0 -0
- package/client/assets/useRundown-D6vokFHi.js.gz +0 -0
- package/client/assets/useRundown-D6vokFHi.js.map +1 -0
- package/client/assets/{useSelectAndRevealEntry-CzSIOtzH.js → useSelectAndRevealEntry-Dd6MpVHe.js} +2 -2
- package/client/assets/useSelectAndRevealEntry-Dd6MpVHe.js.br +0 -0
- package/client/assets/useSelectAndRevealEntry-Dd6MpVHe.js.gz +0 -0
- package/client/assets/{useSelectAndRevealEntry-CzSIOtzH.js.map → useSelectAndRevealEntry-Dd6MpVHe.js.map} +1 -1
- package/client/assets/{useWindowTitle-Cl1AVD9_.js → useWindowTitle-bg-fLPOk.js} +2 -2
- package/client/assets/useWindowTitle-bg-fLPOk.js.br +0 -0
- package/client/assets/useWindowTitle-bg-fLPOk.js.gz +0 -0
- package/client/assets/{useWindowTitle-Cl1AVD9_.js.map → useWindowTitle-bg-fLPOk.js.map} +1 -1
- package/client/assets/validateEvent-BUgLWn7x.js +2 -0
- package/client/assets/validateEvent-BUgLWn7x.js.br +0 -0
- package/client/assets/validateEvent-BUgLWn7x.js.gz +0 -0
- package/client/assets/{validateEvent-DhFtLvz_.js.map → validateEvent-BUgLWn7x.js.map} +1 -1
- package/client/assets/{vendor-dQa48psh.js → vendor-CKDP5hij.js} +12 -12
- package/client/assets/vendor-CKDP5hij.js.br +0 -0
- package/client/assets/vendor-CKDP5hij.js.gz +0 -0
- package/client/assets/{vendor-dQa48psh.js.map → vendor-CKDP5hij.js.map} +1 -1
- package/client/assets/{viewLoader.utils-ndDejZHN.js → viewLoader.utils-Bn5zu5sz.js} +2 -2
- package/client/assets/viewLoader.utils-Bn5zu5sz.js.br +0 -0
- package/client/assets/viewLoader.utils-Bn5zu5sz.js.gz +0 -0
- package/client/assets/{viewLoader.utils-ndDejZHN.js.map → viewLoader.utils-Bn5zu5sz.js.map} +1 -1
- package/client/assets/{viewUtils-rcOl1-o8.js → viewUtils-DQFwr7hm.js} +2 -2
- package/client/assets/viewUtils-DQFwr7hm.js.br +0 -0
- package/client/assets/viewUtils-DQFwr7hm.js.gz +0 -0
- package/client/assets/{viewUtils-rcOl1-o8.js.map → viewUtils-DQFwr7hm.js.map} +1 -1
- package/client/index.html +2 -2
- package/package.json +1 -1
- package/server/index.cjs +87 -87
- package/client/assets/Backstage-ScLTYJAt.js.br +0 -0
- package/client/assets/Backstage-ScLTYJAt.js.gz +0 -0
- package/client/assets/Countdown-DA_Lph2k.js.br +0 -0
- package/client/assets/Countdown-DA_Lph2k.js.gz +0 -0
- package/client/assets/CuesheetTable-C7hP6tMi.js.br +0 -0
- package/client/assets/CuesheetTable-C7hP6tMi.js.gz +0 -0
- package/client/assets/CustomTranslationModal-0ROtCxPC.js +0 -2
- package/client/assets/CustomTranslationModal-0ROtCxPC.js.br +0 -0
- package/client/assets/CustomTranslationModal-0ROtCxPC.js.gz +0 -0
- package/client/assets/DelayIndicator-OEjcqoIx.js +0 -2
- package/client/assets/DelayIndicator-OEjcqoIx.js.br +0 -0
- package/client/assets/DelayIndicator-OEjcqoIx.js.gz +0 -0
- package/client/assets/DelayIndicator-OEjcqoIx.js.map +0 -1
- package/client/assets/EditorFeatureWrapper-B_KH_YqU.js.br +0 -0
- package/client/assets/EditorFeatureWrapper-B_KH_YqU.js.gz +0 -0
- package/client/assets/EditorUtils-BxN0w0-D.js.br +0 -0
- package/client/assets/EditorUtils-BxN0w0-D.js.gz +0 -0
- package/client/assets/EmptyPage-CcO33dlE.js.br +0 -0
- package/client/assets/EmptyPage-CcO33dlE.js.gz +0 -0
- package/client/assets/FollowButton-DJCtYYXt.js.br +0 -0
- package/client/assets/FollowButton-DJCtYYXt.js.gz +0 -0
- package/client/assets/MessageControlExport-DGo2ZNMw.js.br +0 -0
- package/client/assets/MessageControlExport-DGo2ZNMw.js.gz +0 -0
- package/client/assets/MultiPartProgressBar-IIU35-x9.js.br +0 -0
- package/client/assets/MultiPartProgressBar-IIU35-x9.js.gz +0 -0
- package/client/assets/OperatorExport-C-KafSVE.js.br +0 -0
- package/client/assets/OperatorExport-C-KafSVE.js.gz +0 -0
- package/client/assets/OverviewWrapper-B6AeBRb6.js.br +0 -0
- package/client/assets/OverviewWrapper-B6AeBRb6.js.gz +0 -0
- package/client/assets/PipHost-BueqKsmJ.js.br +0 -0
- package/client/assets/PipHost-BueqKsmJ.js.gz +0 -0
- package/client/assets/ProjectInfo-DiD9lzzx.js.br +0 -0
- package/client/assets/ProjectInfo-DiD9lzzx.js.gz +0 -0
- package/client/assets/ProtectRoute-CcDK6JVA.js.br +0 -0
- package/client/assets/ProtectRoute-CcDK6JVA.js.gz +0 -0
- package/client/assets/ProtectedCuesheet-D19INqhI.js +0 -2
- package/client/assets/ProtectedCuesheet-D19INqhI.js.br +0 -0
- package/client/assets/ProtectedCuesheet-D19INqhI.js.gz +0 -0
- package/client/assets/ProtectedEditor-BVabJfIz.js +0 -3
- package/client/assets/ProtectedEditor-BVabJfIz.js.br +0 -0
- package/client/assets/ProtectedEditor-BVabJfIz.js.gz +0 -0
- package/client/assets/ProtectedEditor-BVabJfIz.js.map +0 -1
- package/client/assets/RundownEntry-C5kdIHbb.js +0 -2
- package/client/assets/RundownEntry-C5kdIHbb.js.br +0 -0
- package/client/assets/RundownEntry-C5kdIHbb.js.gz +0 -0
- package/client/assets/RundownEntry-C5kdIHbb.js.map +0 -1
- package/client/assets/RundownEntry-jE09YkV2.css +0 -1
- package/client/assets/RundownEntry-jE09YkV2.css.br +0 -0
- package/client/assets/RundownEntry-jE09YkV2.css.gz +0 -0
- package/client/assets/RundownExport-BFn7H24P.css +0 -1
- package/client/assets/RundownExport-BFn7H24P.css.br +0 -0
- package/client/assets/RundownExport-BFn7H24P.css.gz +0 -0
- package/client/assets/RundownExport-DhzzqPCD.js +0 -3
- package/client/assets/RundownExport-DhzzqPCD.js.br +0 -0
- package/client/assets/RundownExport-DhzzqPCD.js.gz +0 -0
- package/client/assets/RundownExport-DhzzqPCD.js.map +0 -1
- package/client/assets/Select-B3zdv0Ng.js +0 -2
- package/client/assets/Select-B3zdv0Ng.js.br +0 -0
- package/client/assets/Select-B3zdv0Ng.js.gz +0 -0
- package/client/assets/Studio-DS_uXtgn.js.br +0 -0
- package/client/assets/Studio-DS_uXtgn.js.gz +0 -0
- package/client/assets/StyleEditor-DcyJgmAF.js +0 -2
- package/client/assets/StyleEditor-DcyJgmAF.js.br +0 -0
- package/client/assets/StyleEditor-DcyJgmAF.js.gz +0 -0
- package/client/assets/SuperscriptPeriod-DswX2aei.js.br +0 -0
- package/client/assets/SuperscriptPeriod-DswX2aei.js.gz +0 -0
- package/client/assets/SuperscriptTime-COS4JWHJ.js.br +0 -0
- package/client/assets/SuperscriptTime-COS4JWHJ.js.gz +0 -0
- package/client/assets/SwatchPicker-DPyJv7aS.js +0 -2
- package/client/assets/SwatchPicker-DPyJv7aS.js.br +0 -0
- package/client/assets/SwatchPicker-DPyJv7aS.js.gz +0 -0
- package/client/assets/TimeElements-8rNLGU60.js +0 -2
- package/client/assets/TimeElements-8rNLGU60.js.br +0 -0
- package/client/assets/TimeElements-8rNLGU60.js.gz +0 -0
- package/client/assets/TimeInput-OX4LMRQl.js.br +0 -0
- package/client/assets/TimeInput-OX4LMRQl.js.gz +0 -0
- package/client/assets/TimelinePage-7kRpUl6P.js.br +0 -0
- package/client/assets/TimelinePage-7kRpUl6P.js.gz +0 -0
- package/client/assets/Timer-Bg9pVhup.js.br +0 -0
- package/client/assets/Timer-Bg9pVhup.js.gz +0 -0
- package/client/assets/TimerControlExport-BNfZ99Im.js +0 -2
- package/client/assets/TimerControlExport-BNfZ99Im.js.br +0 -0
- package/client/assets/TimerControlExport-BNfZ99Im.js.gz +0 -0
- package/client/assets/TimerDisplay-DQQ7sMDc.js +0 -2
- package/client/assets/TimerDisplay-DQQ7sMDc.js.br +0 -0
- package/client/assets/TimerDisplay-DQQ7sMDc.js.gz +0 -0
- package/client/assets/TitleCard-De0WhlN2.js.br +0 -0
- package/client/assets/TitleCard-De0WhlN2.js.gz +0 -0
- package/client/assets/Tooltip-B4PEP32j.js +0 -2
- package/client/assets/Tooltip-B4PEP32j.js.br +0 -0
- package/client/assets/Tooltip-B4PEP32j.js.gz +0 -0
- package/client/assets/ViewLogo-CHqiH4C0.js.br +0 -0
- package/client/assets/ViewLogo-CHqiH4C0.js.gz +0 -0
- package/client/assets/ViewParamsEditor-BHIK3qtx.js.br +0 -0
- package/client/assets/ViewParamsEditor-BHIK3qtx.js.gz +0 -0
- package/client/assets/editorSettings-VcitNPq1.js.br +0 -0
- package/client/assets/editorSettings-VcitNPq1.js.gz +0 -0
- package/client/assets/getProgress-mRMYlU96.js.br +0 -0
- package/client/assets/getProgress-mRMYlU96.js.gz +0 -0
- package/client/assets/index-DYkg-xOk.js +0 -3
- package/client/assets/index-DYkg-xOk.js.br +0 -0
- package/client/assets/index-DYkg-xOk.js.gz +0 -0
- package/client/assets/index-DYkg-xOk.js.map +0 -1
- package/client/assets/offset-Bs6CY1IK.js.br +0 -3
- package/client/assets/offset-Bs6CY1IK.js.gz +0 -0
- package/client/assets/parseUserTime-CI7s8pYc.js.br +0 -0
- package/client/assets/parseUserTime-CI7s8pYc.js.gz +0 -0
- package/client/assets/playbackstate-DisgQbHM.js.br +0 -0
- package/client/assets/playbackstate-DisgQbHM.js.gz +0 -0
- package/client/assets/presentation.utils-Bv3PuMWv.js.br +0 -0
- package/client/assets/presentation.utils-Bv3PuMWv.js.gz +0 -0
- package/client/assets/rundownUtils-CJxEqFha.js +0 -2
- package/client/assets/rundownUtils-CJxEqFha.js.br +0 -0
- package/client/assets/rundownUtils-CJxEqFha.js.gz +0 -0
- package/client/assets/rundownUtils-CJxEqFha.js.map +0 -1
- package/client/assets/timer.utils-P25ngopd.js.br +0 -0
- package/client/assets/timer.utils-P25ngopd.js.gz +0 -0
- package/client/assets/useCustomFields-DUYgd-E7.js +0 -2
- package/client/assets/useCustomFields-DUYgd-E7.js.br +0 -0
- package/client/assets/useCustomFields-DUYgd-E7.js.gz +0 -0
- package/client/assets/useCustomFields-DUYgd-E7.js.map +0 -1
- package/client/assets/useEventSelection-R7JdgAzy.js +0 -2
- package/client/assets/useEventSelection-R7JdgAzy.js.br +0 -0
- package/client/assets/useEventSelection-R7JdgAzy.js.gz +0 -0
- package/client/assets/useEventSelection-R7JdgAzy.js.map +0 -1
- package/client/assets/useProjectData-DdITd09M.js +0 -2
- package/client/assets/useProjectData-DdITd09M.js.br +0 -0
- package/client/assets/useProjectData-DdITd09M.js.gz +0 -0
- package/client/assets/useProjectData-DdITd09M.js.map +0 -1
- package/client/assets/useReport-CR0k0b85.js +0 -2
- package/client/assets/useReport-CR0k0b85.js.br +0 -0
- package/client/assets/useReport-CR0k0b85.js.gz +0 -0
- package/client/assets/useReport-CR0k0b85.js.map +0 -1
- package/client/assets/useRundown-CR9Ah1Fa.js +0 -2
- package/client/assets/useRundown-CR9Ah1Fa.js.br +0 -0
- package/client/assets/useRundown-CR9Ah1Fa.js.gz +0 -0
- package/client/assets/useRundown-CR9Ah1Fa.js.map +0 -1
- package/client/assets/useSelectAndRevealEntry-CzSIOtzH.js.br +0 -0
- package/client/assets/useSelectAndRevealEntry-CzSIOtzH.js.gz +0 -0
- package/client/assets/useWindowTitle-Cl1AVD9_.js.br +0 -0
- package/client/assets/useWindowTitle-Cl1AVD9_.js.gz +0 -0
- package/client/assets/validateEvent-DhFtLvz_.js +0 -2
- package/client/assets/validateEvent-DhFtLvz_.js.br +0 -0
- package/client/assets/validateEvent-DhFtLvz_.js.gz +0 -0
- package/client/assets/vendor-dQa48psh.js.br +0 -0
- package/client/assets/vendor-dQa48psh.js.gz +0 -0
- package/client/assets/viewLoader.utils-ndDejZHN.js.br +0 -0
- package/client/assets/viewLoader.utils-ndDejZHN.js.gz +0 -0
- package/client/assets/viewUtils-rcOl1-o8.js.br +0 -0
- package/client/assets/viewUtils-rcOl1-o8.js.gz +0 -0
|
@@ -0,0 +1 @@
|
|
|
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_f36ay_1{animation:_blink_f36ay_1 1s step-start infinite}@keyframes _blink_f36ay_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_f36ay_13{transform:rotate(45deg)}._entryEditor_f36ay_17{color:#8a8a8a;height:100%;max-height:100%;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;overflow-x:auto}._shortcutSection_f36ay_28{flex:1;margin-top:15vh;margin-inline:auto;gap:1rem}._shortcuts_f36ay_35{font-size:calc(1rem - 3px);border-collapse:separate;border-spacing:4rem 0}._shortcuts_f36ay_35 tr{white-space:nowrap}._shortcuts_f36ay_35 tr td:nth-child(odd){text-align:left}._shortcuts_f36ay_35 tr td:nth-child(2n){text-align:right}._spacer_f36ay_50{height:1rem}._prompt_f36ay_54{margin-left:4rem}._divider_f36ay_58{display:inline-block;text-align:center;width:1em}._kbd_f36ay_64{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_142nw_1{animation:_blink_142nw_1 1s step-start infinite}@keyframes _blink_142nw_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_142nw_13{transform:rotate(45deg)}._entry_142nw_17,._empty_142nw_18,._error_142nw_19{padding-inline:.5rem;font-size:1rem;height:3rem;display:flex;align-items:center;justify-content:space-between}._entry_142nw_17[data-selected=true]{background-color:#2b5abc}._empty_142nw_18{color:#8a8a8a}._error_142nw_19{color:#fa5656}._data_142nw_40{display:grid;grid-template-areas:"index cue" "index title";column-gap:1rem;grid-template-rows:min-content 1fr}._data_142nw_40 ._index_142nw_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_142nw_40 ._title_142nw_55{grid-area:title}._data_142nw_40 ._cue_142nw_58{grid-area:cue;font-size:calc(1rem - 2px);color:#8a8a8a;max-height:1em;min-height:0}._footer_142nw_66{font-size:calc(1rem - 2px);color:#8a8a8a}._em_142nw_18{color:#f6f6f6;margin-inline:.25rem}._scrollContainer_142nw_76{max-height:70vh;overflow:auto;padding-top:1rem}._blink_12k3n_1{animation:_blink_12k3n_1 1s step-start infinite}@keyframes _blink_12k3n_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_12k3n_13{transform:rotate(45deg)}._header_12k3n_17{padding-inline:1rem 2rem;display:flex;align-items:center;gap:1rem}:is([data-target=small-device]) ._header_12k3n_17{padding-inline:0;overflow-x:auto}._group_12k3n_29{display:flex;align-items:center;gap:2px;padding-inline:2px;background:#2d2d2d;border-radius:3px;height:2rem}._radioButton_12k3n_40{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_12k3n_40:focus-visible{background:transparent;outline:1px solid #578AF4}._radioButton_12k3n_40:hover:not(:disabled):not(:active){background:#404040}._radioButton_12k3n_40:active{background:#2d2d2d}._radioButton_12k3n_40[data-pressed]{background:#2b5abc;color:#f6f6f6}._radioButton_12k3n_40[data-pressed]:hover:not(:disabled):not(:active){background:#3e75e8}._toggleTooltipTrigger_12k3n_71{display:flex}._apart_12k3n_75{margin-left:auto}._column_12k3n_79{display:flex;flex-direction:column;gap:.5rem;align-self:start}._blink_1o791_1{animation:_blink_1o791_1 1s step-start infinite}@keyframes _blink_1o791_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_1o791_13{transform:rotate(45deg)}._quickAdd_1o791_17{display:flex;align-items:center;gap:1rem;padding-left:.5rem;padding-block:.5rem;background:color-mix(in srgb,transparent 90%,var(--user-bg, transparent) 10%)}._quickAdd_1o791_17._indent_1o791_25{padding-left:calc(2em + .5rem)}._blink_gr8nb_1{animation:_blink_gr8nb_1 1s step-start infinite}@keyframes _blink_gr8nb_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_gr8nb_13{transform:rotate(45deg)}._quickAdd_gr8nb_17{display:flex;align-items:center;gap:1rem;height:0;position:relative;z-index:100}._quickAdd_gr8nb_17:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:#578af4}._addButton_gr8nb_35{position:relative}._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_evxnq_1{animation:_blink_evxnq_1 1s step-start infinite}@keyframes _blink_evxnq_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_evxnq_13{transform:rotate(45deg)}._group_evxnq_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_evxnq_17._hasCursor_evxnq_31{outline:1px solid #FFCC78}._group_evxnq_17._copyTarget_evxnq_34{outline:2px dashed #FFCC78}._group_evxnq_17._expanded_evxnq_37{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_evxnq_17 ._binder_evxnq_42{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_evxnq_17 ._binder_evxnq_42:focus{outline:1px solid #578AF4;outline-offset:-1px}._group_evxnq_17 ._header_evxnq_57{grid-area:header;padding-inline:.5rem;background-color:#303030;display:flex;flex-direction:column;gap:.5rem}._group_evxnq_17 ._titleRow_evxnq_65{display:flex;align-items:center;gap:.5rem}._group_evxnq_17 ._metaRow_evxnq_70{display:flex;gap:.5rem;margin-bottom:.25rem;padding-left:.25rem;white-space:nowrap}._group_evxnq_17 ._metaEntry_evxnq_77{width:8rem}._group_evxnq_17 ._metaEntry_evxnq_77:first-of-type{width:4.5rem}._group_evxnq_17 ._metaLabel_evxnq_83{color:#8a8a8a;font-size:calc(1rem - 3px)}._strike_evxnq_88{text-decoration:wavy underline;margin-right:.25rem;color:#f6f6f6}._over_evxnq_94{color:#f57c13}._over_evxnq_94 ._strike_evxnq_88{text-decoration-color:#f57c13}._over_evxnq_94 ._offsetLabel_evxnq_100{background-color:#f57c13}._under_evxnq_104{color:#55b469}._under_evxnq_104 ._strike_evxnq_88{text-decoration-color:#55b469}._under_evxnq_104 ._offsetLabel_evxnq_100{background-color:#55b469}._drag_evxnq_114{font-size:20px;justify-self:center;opacity:.3;cursor:grab;transition:opacity .3s}._drag_evxnq_114:hover{opacity:1}._drag_evxnq_114:focus{box-shadow:none;outline:none}._drag_evxnq_114{position:absolute;margin-top:.25rem}._drag_evxnq_114._isDragging_evxnq_132{cursor:grabbing}._drag_evxnq_114._notAllowed_evxnq_135{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_sxz6b_1{animation:_blink_sxz6b_1 1s step-start infinite}@keyframes _blink_sxz6b_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_sxz6b_13{transform:rotate(45deg)}._radioGroup_sxz6b_17{color:#4c4c4c;font-size:calc(1rem - 3px);color:#8a8a8a}._item_sxz6b_23{display:flex;align-items:center;gap:.5rem;line-height:1.2em}._item_sxz6b_23:has([data-checked]){color:#f6f6f6}._radio_sxz6b_17{box-sizing:border-box;display:flex;width:.75rem;height:.75rem;align-items:center;justify-content:center;border-radius:100%;outline:0;border:none}._radio_sxz6b_17[data-unchecked]{background-color:#262626}._radio_sxz6b_17[data-checked]{background-color:#6c6c6c}._radio_sxz6b_17:focus-visible{outline:2px solid #578AF4;outline-offset:2px}._indicator_sxz6b_55{display:grid;place-content:center}._indicator_sxz6b_55[data-unchecked]{display:none}._indicator_sxz6b_55:before{content:"";border-radius:100%;width:.5em;height:.5em;background-color:#f6f6f6}._blink_ksn92_1{animation:_blink_ksn92_1 1s step-start infinite}@keyframes _blink_ksn92_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_ksn92_13{transform:rotate(45deg)}._delayInput_ksn92_17{display:flex;gap:.5rem;align-items:center}._inputField_ksn92_23{text-align:center;letter-spacing:1px;max-width:7em;color:#e69056}._blink_10tq2_1{animation:_blink_10tq2_1 1s step-start infinite}@keyframes _blink_10tq2_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_10tq2_13{transform:rotate(45deg)}._delay_10tq2_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:.25rem;padding-right:.25rem;background-color:#303030;display:grid;grid-template-columns:2rem 1fr auto auto;align-items:center;height:2.5rem;gap:.5rem}._delay_10tq2_17._hasCursor_10tq2_34{outline:1px solid #FFCC78}._delay_10tq2_17._copyTarget_10tq2_37{outline:1px dashed #578AF4;outline-offset:-2px}._drag_10tq2_42{font-size:20px;justify-self:center;opacity:.3;cursor:grab;transition:opacity .3s}._drag_10tq2_42:hover{opacity:1}._drag_10tq2_42:focus{box-shadow:none;outline:none}._blink_1uqu6_1{animation:_blink_1uqu6_1 1s step-start infinite}@keyframes _blink_1uqu6_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_1uqu6_13{transform:rotate(45deg)}._chip_1uqu6_17{white-space:nowrap;font-size:calc(1rem - 3px);color:#8a8a8a;justify-self:end}._chip_1uqu6_17._over_1uqu6_23{color:#f57c13}._chip_1uqu6_17._under_1uqu6_26{color:#55b469}._chip_1uqu6_17._due_1uqu6_29{color:#ffbc56}._blink_19fwi_1{animation:_blink_19fwi_1 1s step-start infinite}@keyframes _blink_19fwi_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_19fwi_13{transform:rotate(45deg)}._rundownEvent_19fwi_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;background-color:#202020;margin-block:.25rem;overflow:initial;display:grid;grid-template-areas:"binder ... ... ..." "binder pb-actions times chip" "binder pb-actions title title" "binder pb-actions estatus estatus" "binder ... ... ...";grid-template-columns:2rem 3rem 1fr 3rem;grid-template-rows:.125rem 2rem 2rem auto .125rem;align-items:center;padding-right:.5rem;gap:2px;row-gap:.25rem;transition-property:background-color;transition-duration:.3s}._rundownEvent_19fwi_17._loaded_19fwi_39{background-color:#151515}._rundownEvent_19fwi_17._play_19fwi_42{background-color:#087a27;--status-color-override: #e2e2e2;--status-color-active-override: #77C785}._rundownEvent_19fwi_17._roll_19fwi_47{background-color:#2b5abc;--status-color-override: #e2e2e2;--status-color-active-override: #77C785}._rundownEvent_19fwi_17._pause_19fwi_52{background-color:#c0562199;--status-color-override: #e2e2e2;--status-color-active-override: #77C785}._rundownEvent_19fwi_17._selected_19fwi_57{outline:1px solid #779BE7}._rundownEvent_19fwi_17._hasCursor_19fwi_60{outline:1px solid #FFCC78}._rundownEvent_19fwi_17._copyTarget_19fwi_63{outline:2px dashed #FFCC78}._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._timerNote_19fwi_66,._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._statusElements_19fwi_67,._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._eventTitle_19fwi_68,._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._eventNote_19fwi_69,._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._eventTimers_19fwi_70,._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._eventStatus_19fwi_71,._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._playbackActions_19fwi_72,._rundownEvent_19fwi_17._past_19fwi_66:not(._skip_19fwi_66) ._binder_19fwi_73{opacity:.4}._rundownEvent_19fwi_17._skip_19fwi_66{border:1px solid rgba(255,255,255,.03)}._rundownEvent_19fwi_17._skip_19fwi_66 ._timerNote_19fwi_66,._rundownEvent_19fwi_17._skip_19fwi_66 ._eventTitle_19fwi_68,._rundownEvent_19fwi_17._skip_19fwi_66 ._eventNote_19fwi_69,._rundownEvent_19fwi_17._skip_19fwi_66 ._binder_19fwi_73,._rundownEvent_19fwi_17._skip_19fwi_66 ._eventTimers_19fwi_70,._rundownEvent_19fwi_17._skip_19fwi_66 ._eventStatus_19fwi_71{opacity:.2}._binder_19fwi_73{grid-area:binder;height:100%;display:grid;place-content:center;position:relative;cursor:pointer;background-color:#303030;color:#f6f6f6;font-size:1rem;border-radius:3px 0 0 3px}._binder_19fwi_73 ._drag_19fwi_100{font-size:20px;justify-self:center;opacity:.3;cursor:grab;transition:opacity .3s}._binder_19fwi_73 ._drag_19fwi_100:hover{opacity:1}._binder_19fwi_73 ._drag_19fwi_100:focus{box-shadow:none;outline:none}._binder_19fwi_73 ._drag_19fwi_100{position:absolute;margin-top:.25rem}._binder_19fwi_73 ._cue_19fwi_118{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:5.5rem;text-align:center;font-weight:600;letter-spacing:.5px;rotate:-90deg}._playbackActions_19fwi_72{grid-area:pb-actions;align-self:flex-start;display:flex;flex-direction:column;margin:0 .5rem;gap:.25rem}._eventTimers_19fwi_70{grid-area:times;display:flex;align-items:center;gap:.5rem;height:100%}._eventTimers_19fwi_70._editMode_19fwi_146:hover [class*=hoverLabel]{opacity:1;transition:opacity .15s .5s ease}._chipSection_19fwi_151{grid-area:chip}._titleSection_19fwi_155{grid-area:title;display:flex;align-items:center;justify-content:space-between}._titleSection_19fwi_155 ._nextTag_19fwi_161{font-size:1rem;color:#ffbc56;letter-spacing:.03px;font-weight:600}._titleSection_19fwi_155 ._eventTitle_19fwi_68{overflow:hidden;max-height:calc(2.5em + 2px);line-height:1.25em;flex:1}._progressBg_19fwi_174{grid-area:progb;border-radius:1px;background-color:#2d2d2d;opacity:1;height:100%;overflow:hidden}._progressBg_19fwi_174._hidden_19fwi_183{opacity:0}._flip_19fwi_187{transform:rotateY(180deg)}._statusElements_19fwi_67{grid-area:estatus;display:grid;grid-template-areas:"notes status" "progb progb";gap:2px;grid-template-rows:auto .25rem;align-items:center;height:100%;padding:2px 0}._eventNote_19fwi_69{grid-area:notes;display:block;font-size:calc(1rem - 3px);line-height:1em;color:#f6f6f6;max-width:35rem;white-space:pre-line}._eventStatus_19fwi_71{grid-area:status;align-self:flex-end;display:flex;justify-content:flex-end;align-items:flex-end;gap:.5rem;color:var(--status-color-override, #9d9d9d)}._eventStatus_19fwi_71 ._statusIcon_19fwi_221{width:1rem;height:1rem}._eventStatus_19fwi_71 ._statusIcon_19fwi_221._active_19fwi_225{color:var(--status-color-active-override, #77C785)}._eventStatus_19fwi_71 ._statusIcon_19fwi_221._disabled_19fwi_228{color:#404040}._blink_1glmb_1{animation:_blink_1glmb_1 1s step-start infinite}@keyframes _blink_1glmb_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_1glmb_13{transform:rotate(45deg)}._progressBar_1glmb_17{height:100%;width:0;border-radius:1px 0 0 1px;transition:1s linear;transition-property:width;background-color:#e2e2e2}._blink_duajo_1{animation:_blink_duajo_1 1s step-start infinite}@keyframes _blink_duajo_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_duajo_13{transform:rotate(45deg)}._indicators_duajo_18{font-size:calc(1rem - 5px);position:absolute;top:-1em;z-index:100;margin-left:5.25rem;display:flex;gap:.5rem;font-weight:600}._delay_duajo_29{padding:0 .5rem;border-radius:2px;background-color:#f57c13;color:#f6f6f6}._gap_duajo_36{padding:0 .5rem;border-radius:2px;background-color:#578af4;color:#f6f6f6}._blink_eowb2_1{animation:_blink_eowb2_1 1s step-start infinite}@keyframes _blink_eowb2_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_eowb2_13{transform:rotate(45deg)}._milestone_eowb2_17{box-sizing:content-box;border:1px solid rgba(255,255,255,.07);border-radius:3px;position:relative;overflow:hidden;min-width:32rem;margin-block:.125rem;padding-right:.25rem;background-color:#303030;color:#f6f6f6;display:grid;grid-template-columns:2rem .4fr 1fr;align-items:center;height:2.5rem;gap:.5rem}._milestone_eowb2_17._hasCursor_eowb2_35{outline:1px solid #FFCC78}._milestone_eowb2_17._copyTarget_eowb2_38{outline:2px dashed #FFCC78}._binder_eowb2_42{height:100%;display:grid;place-content:center;background-color:#303030;color:#f6f6f6}._drag_eowb2_50{font-size:20px;justify-self:center;opacity:.3;cursor:grab;transition:opacity .3s}._drag_eowb2_50:hover{opacity:1}._drag_eowb2_50:focus{box-shadow:none;outline:none}._blink_1du6s_1{animation:_blink_1du6s_1 1s step-start infinite}@keyframes _blink_1du6s_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_1du6s_13{transform:rotate(45deg)}._rundownWrapper_1du6s_17{height:calc(100% - 1.5rem);width:100%}._rundownContainer_1du6s_22{padding-top:1rem;flex:1 1 auto;min-height:0}:is([data-target=small-device]) ._rundownContainer_1du6s_22{overflow-x:auto;-webkit-overflow-scrolling:touch}._list_1du6s_32{overflow-x:clip;display:flex;flex-direction:column;padding-inline:1rem}:is([data-target=small-device]) ._list_1du6s_32{padding-inline:0;overflow-x:auto;min-width:max-content}._empty_1du6s_44{opacity:.3;align-self:center}._spacer_1du6s_49{min-height:50vh}._entryWrapper_1du6s_53{display:flex;gap:.5rem;align-items:center;background:color-mix(in srgb,transparent 90%,var(--user-bg, transparent) 10%)}._entryIndex_1du6s_60{padding-block:.25rem;display:grid;grid-template-rows:1fr 1fr 1fr;justify-items:end;min-width:2em;color:#8a8a8a;font-size:calc(1rem - 3px);height:6.5rem}._flag_1du6s_71{grid-row:1;color:#77c785;font-size:1rem}._index_1du6s_77{grid-row:2;align-content:center}._entry_1du6s_53{flex:1}._blink_pckbe_1{animation:_blink_pckbe_1 1s step-start infinite}@keyframes _blink_pckbe_1{0%{opacity:100%}50%{opacity:20%}}._fourtyfive_pckbe_13{transform:rotate(45deg)}._rundownExport_pckbe_17{height:100%;flex:1 1 0;min-width:0}._rundownExport_pckbe_17._extracted_pckbe_22 ._list_pckbe_22,._rundownExport_pckbe_17._extracted_pckbe_22 ._side_pckbe_26{flex:1;max-width:none}._rundown_pckbe_17{display:flex;max-height:100%;height:100%}._rundownRoot_pckbe_37{height:calc(100% - 1rem);width:100%;display:flex;flex-direction:column;min-height:0}._list_pckbe_22{display:flex;height:inherit;padding-inline:0;padding-bottom:0;box-shadow:#00000026 3px 0 3px;flex:1 1 0;min-width:38rem;max-width:none;width:0}._side_pckbe_26{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
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e,c8 as a,c9 as d,ca as m,cb as _,cc as f,cd as j,ce as u,cf as I,cg as p,ch as x,ci as b,cj as S,ck as g,A as h,cl as w,cm as y}from"./vendor-CKDP5hij.js";import{e as N}from"./index-2lQ-45a9.js";(function(){try{var c=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},i=new c.Error().stack;i&&(c._sentryDebugIds=c._sentryDebugIds||{},c._sentryDebugIds[i]="e399f2ec-741c-46e9-9197-9c125fb4722d",c._sentryDebugIdIdentifier="sentry-dbid-e399f2ec-741c-46e9-9197-9c125fb4722d")}catch{}})();const A="_blink_fi0ij_1",k="_fourtyfive_fi0ij_13",D="_select_fi0ij_17",L="_medium_fi0ij_51",v="_large_fi0ij_55",T="_fluid_fi0ij_59",P="_selectIcon_fi0ij_63",C="_popup_fi0ij_67",E="_list_fi0ij_82",R="_item_fi0ij_92",U="_itemIndicator_fi0ij_110",V="_itemIndicatorIcon_fi0ij_114",q="_itemLabel_fi0ij_120",z="_scrollArrow_fi0ij_124",s={blink:A,fourtyfive:k,select:D,medium:L,large:v,fluid:T,selectIcon:P,popup:C,list:E,item:R,itemIndicator:U,itemIndicatorIcon:V,itemLabel:q,scrollArrow:z};function G({options:c,fluid:i,size:t="medium",...o}){return e.jsxs(a,{items:c,...o,children:[e.jsxs(d,{className:N([s.select,s[t],i&&s.fluid]),children:[e.jsx(m,{}),e.jsx(_,{className:s.selectIcon,children:e.jsx(f,{})})]}),e.jsx(j,{children:e.jsxs(u,{side:"bottom",align:"start",children:[e.jsx(I,{className:s.scrollArrow}),e.jsxs(p,{className:s.popup,children:[e.jsx(x,{}),e.jsx(b,{className:s.list,children:c.map(({disabled:r,label:n,value:l})=>e.jsxs(S,{className:s.item,value:l,disabled:r,children:[e.jsx(g,{className:s.itemIndicator,children:e.jsx(h,{className:s.itemIndicatorIcon})}),e.jsx(w,{className:s.itemLabel,children:n})]},String(l)))})]}),e.jsx(y,{className:s.scrollArrow})]})})]})}export{G as S};
|
|
2
|
+
//# sourceMappingURL=Select-DQwYPDyI.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select-
|
|
1
|
+
{"version":3,"file":"Select-DQwYPDyI.js","sources":["../../src/common/components/select/Select.tsx"],"sourcesContent":["import { IoCheckmark } from 'react-icons/io5';\nimport { LuChevronsUpDown } from 'react-icons/lu';\nimport { Select as BaseSelect } from '@base-ui/react/select';\n\nimport { cx } from '../../utils/styleUtils';\n\nimport styles from './Select.module.scss';\n\nexport type SelectOption<T = string> = {\n value: T;\n label: string;\n disabled?: boolean;\n};\n\ninterface SelectProps<T> extends Omit<BaseSelect.Root.Props<T>, 'items'> {\n options: SelectOption<T>[];\n fluid?: boolean;\n size?: 'medium' | 'large';\n}\n\nexport default function Select<T>({ options, fluid, size = 'medium', ...selectRootProps }: SelectProps<T>) {\n return (\n <BaseSelect.Root items={options} {...selectRootProps}>\n <BaseSelect.Trigger className={cx([styles.select, styles[size], fluid && styles.fluid])}>\n <BaseSelect.Value />\n <BaseSelect.Icon className={styles.selectIcon}>\n <LuChevronsUpDown />\n </BaseSelect.Icon>\n </BaseSelect.Trigger>\n <BaseSelect.Portal>\n <BaseSelect.Positioner side='bottom' align='start'>\n <BaseSelect.ScrollUpArrow className={styles.scrollArrow} />\n <BaseSelect.Popup className={styles.popup}>\n <BaseSelect.Arrow />\n <BaseSelect.List className={styles.list}>\n {options.map(({ disabled, label, value }) => (\n <BaseSelect.Item key={String(value)} className={styles.item} value={value} disabled={disabled}>\n <BaseSelect.ItemIndicator className={styles.itemIndicator}>\n <IoCheckmark className={styles.itemIndicatorIcon} />\n </BaseSelect.ItemIndicator>\n <BaseSelect.ItemText className={styles.itemLabel}>{label}</BaseSelect.ItemText>\n </BaseSelect.Item>\n ))}\n </BaseSelect.List>\n </BaseSelect.Popup>\n <BaseSelect.ScrollDownArrow className={styles.scrollArrow} />\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n </BaseSelect.Root>\n );\n}\n"],"names":["Select","options","fluid","size","selectRootProps","BaseSelect.Root","jsxs","BaseSelect.Trigger","cx","styles","select","jsx","BaseSelect.Value","BaseSelect.Icon","selectIcon","LuChevronsUpDown","BaseSelect.Portal","BaseSelect.Positioner","BaseSelect.ScrollUpArrow","scrollArrow","BaseSelect.Popup","popup","BaseSelect.Arrow","BaseSelect.List","list","map","disabled","label","value","BaseSelect.Item","item","BaseSelect.ItemIndicator","itemIndicator","IoCheckmark","itemIndicatorIcon","BaseSelect.ItemText","itemLabel","String","BaseSelect.ScrollDownArrow"],"mappings":"+gCAoBA,SAAwBA,EAAU,CAAEC,QAAAA,EAASC,MAAAA,EAAOC,KAAAA,EAAO,SAAU,GAAGC,CAAgC,EAAG,CACzG,cACGC,EAAA,CAAgB,MAAOJ,EAAS,GAAIG,EACnC,SAAA,CAAAE,EAAA,KAACC,EAAA,CAAmB,UAAWC,EAAG,CAACC,EAAOC,OAAQD,EAAON,CAAI,EAAGD,GAASO,EAAOP,KAAK,CAAC,EACpF,SAAA,CAACS,EAAA,IAAAC,EAAA,EAAgB,EACjBD,MAACE,EAAA,CAAgB,UAAWJ,EAAOK,WACjC,SAACH,EAAA,IAAAI,EAAA,CAAA,CAAgB,CACnB,CAAA,CAAA,EACF,EACAJ,EAAAA,IAACK,EAAA,CACC,SAAAV,OAACW,EAAA,CAAsB,KAAK,SAAS,MAAM,QACzC,SAAA,CAAAN,EAAAA,IAACO,EAAA,CAAyB,UAAWT,EAAOU,WAAY,CAAA,SACvDC,EAAA,CAAiB,UAAWX,EAAOY,MAClC,SAAA,CAACV,EAAA,IAAAW,EAAA,EAAgB,EACjBX,MAACY,EAAA,CAAgB,UAAWd,EAAOe,KAChCvB,SAAQwB,EAAAA,IAAI,CAAC,CAAEC,SAAAA,EAAUC,MAAAA,EAAOC,MAAAA,CAAAA,WAC9BC,EAAA,CAAoC,UAAWpB,EAAOqB,KAAM,MAAAF,EAAc,SAAAF,EACzE,SAAA,CAACf,EAAAA,IAAAoB,EAAA,CAAyB,UAAWtB,EAAOuB,cAC1C,SAAArB,MAACsB,EAAY,CAAA,UAAWxB,EAAOyB,iBAAAA,CAAkB,CACnD,CAAA,QACCC,EAAA,CAAoB,UAAW1B,EAAO2B,UAAYT,SAAMA,CAAA,CAAA,CAAA,CAAA,EAJrCU,OAAOT,CAAK,CAKlC,CACD,CACH,CAAA,CAAA,EACF,QACCU,EAAA,CAA2B,UAAW7B,EAAOU,WAAY,CAAA,CAAA,CAAA,CAC5D,CACF,CAAA,CAAA,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{l as w,h as g,j as e}from"./vendor-
|
|
2
|
-
//# sourceMappingURL=Studio-
|
|
1
|
+
import{l as w,h as g,j as e}from"./vendor-CKDP5hij.js";import{P as O,f as m,C,D as E,E as P,h as S,e as d,m as x,d as A,G as F,y as f,H as M,u as I,a as V,b as D,L,g as H,O as R}from"./index-2lQ-45a9.js";import{E as W}from"./EmptyPage-DmpOAg7R.js";import{V as z}from"./ViewLogo-Ckp7i75x.js";import{m as B,O as j,V as $}from"./ViewParamsEditor-Cxngd15h.js";import{u as G}from"./useWindowTitle-bg-fLPOk.js";import{g as Q,a as U}from"./viewLoader.utils-Bn5zu5sz.js";import{i as X,b as Y}from"./viewUtils-DQFwr7hm.js";import{S as q}from"./SuperscriptTime-DP1CDlOX.js";import{a as J,g as K}from"./offset-DAyBfv5b.js";import{g as Z}from"./presentation.utils-CjjYs5II.js";import{u as ee}from"./useCustomFields-zr9SUl5o.js";import{u as se}from"./useProjectData-DD_BQ9eJ.js";import"./SwatchPicker-Dyxkxf3_.js";import"./Select-DQwYPDyI.js";/* empty css */(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]="07c38163-8649-4239-bb7a-bbe96044f9ca",s._sentryDebugIdIdentifier="sentry-dbid-07c38163-8649-4239-bb7a-bbe96044f9ca")}catch{}})();const te=(s,t)=>{const a=B(t,[{value:"title",label:"Title"}]);return[{title:j.ClockOptions,collapsible:!0,options:[Q(s)]},{title:j.DataSources,collapsible:!0,options:[{id:"main",title:"Main text",description:"Select the data source for the main text",type:"option",values:a,defaultValue:"title"}]},{title:j.ElementVisibility,collapsible:!0,options:[{id:"hideCards",title:"Hide cards section",description:"Hides the card section with the timers",type:"boolean",defaultValue:!1}]}]};function ae(s,t){const a=i=>(t==null?void 0:t.get(i))??s.get(i);return{mainSource:a("main"),hideCards:X(a("hideCards"))}}function b(){const[s]=w(),t=g.use(O);return g.useMemo(()=>{const i=t?new URLSearchParams(t.search):void 0;return ae(s,i)},[t,s])}function ie(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:C(s),display:t,meridian:a}}const re=[...Array(12).keys()],ne=[...Array(60).keys()];function ce({hideCards:s}){const t=E(),{clock:a,playback:i}=P(),l=i!==S.Stop;if(t&&!s)return e.jsx(de,{clock:a,onAir:l});const{seconds:n,display:r,meridian:o}=ie(a);return e.jsx("div",{className:"studio__clock",children:e.jsxs("div",{className:"clock-container",children:[ne.map(c=>e.jsx("div",{className:d(["tick",c<=n&&"tick--active"]),style:{transform:`rotate(${180+c*6}deg) translateY(var(--half-size))`}},c)),re.map(c=>e.jsx("div",{className:"tick tick--active",style:{transform:`rotate(${180+c*30}deg) translateX(var(--smaller-half-size))`}},c)),e.jsx("div",{className:d(["ampm",!!o&&"ampm--active"]),children:o}),e.jsx("div",{className:"time time--large",children:r}),e.jsx("div",{className:d(["on-air",l&&"on-air--active"]),children:"ON AIR"})]})})}function de({clock:s,onAir:t}){const a=m(s);return e.jsxs("div",{className:"studio__clock studio__clock--small",children:[e.jsx(q,{className:"time time--small",time:a}),e.jsx("div",{className:d(["on-air",t&&"on-air--active"]),children:"ON AIR"})]})}const h={format12:"h:mm a",format24:"HH:mm"};function oe(s){return{actualStart:m(s.actualStart,h),expectedEnd:m(s.expectedEnd,h),offset:J(s.offset)}}function le(s,t,a){return{title:(s==null?void 0:s[a??"title"])||"-",startedAt:m(t.startedAt,h),expectedEnd:m(t.expectedFinish,h),timer:x(t.current)}}function me({viewSettings:s}){const{getLocalizedString:t}=A(),{mainSource:a}=b(),{eventNow:i,eventNext:l,message:n,time:r,offset:o,rundown:c,expectedRundownEnd:v}=F(),p=oe({offset:o,actualStart:c.actualStart,expectedEnd:v}),u=le(i,r,a),y=Y(l,a??"title")||"-",k=n.timer.visible&&n.timer.text||"-",N=n.timer.secondarySource==="secondary"&&n.secondary||"-",T=Z(s,void 0,r.phase===f.Warning,r.phase===f.Danger),_=K(o);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:p.actualStart})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label center",children:"Over / under"}),e.jsx("div",{className:d(["runtime-timer","center",!i&&"muted",_]),children:p.offset})]}),e.jsxs("div",{children:[e.jsx("div",{className:"label right",children:t("common.expected_end")}),e.jsx("div",{className:"runtime-timer right",children:p.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:y})]})]}),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",r.phase===f.Overtime&&"event-timer--finished",r.playback===S.Pause&&"event-timer--paused"]),style:{"--phase-color":T},"data-phase":r.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(ue,{}),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:k})]})}),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",!N&&"muted"]),children:N})]})})]})}function ue(){const s=M();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 xe(){const s=I(v=>v.mirror),{data:t,status:a}=se(),{data:i,status:l}=V(),{data:n,status:r}=D(),{data:o,status:c}=ee();return{data:{customFields:o,projectData:t,isMirrored:s,settings:n,viewSettings:i},status:U([a,l,r,c])}}function Pe(){const{data:s,status:t}=xe();return G("Studio Clock"),t==="pending"?e.jsx(L,{}):t==="error"?e.jsx(W,{text:"There was an error fetching data, please refresh the page."}):e.jsx(he,{...s})}function he({customFields:s,projectData:t,isMirrored:a,settings:i,viewSettings:l}){const{hideCards:n}=b(),r=H(i==null?void 0:i.timeFormat),o=g.useMemo(()=>te(r,s),[r,s]);return e.jsxs("div",{className:d(["studio",a&&"mirror"]),"data-testid":"studio-view",children:[e.jsx($,{target:R.StudioClock,viewOptions:o}),e.jsxs("div",{className:"project-header",children:[(t==null?void 0:t.logo)&&e.jsx(z,{name:t.logo,className:"logo"}),e.jsx("div",{className:"title",children:t.title})]}),e.jsxs("div",{className:d(["studio-contents",n&&"studio-contents--onecol"]),children:[e.jsx(ce,{hideCards:n}),!n&&e.jsx(me,{viewSettings:l})]})]})}export{Pe as default};
|
|
2
|
+
//# sourceMappingURL=Studio-DzXTmBx4.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Studio-DS_uXtgn.js","sources":["../../src/views/studio/studio.options.ts","../../src/views/studio/studioClock.utils.ts","../../src/views/studio/StudioClock.tsx","../../src/views/studio/studioTimers.utils.ts","../../src/views/studio/StudioTimers.tsx","../../src/views/studio/useStudioData.ts","../../src/views/studio/Studio.tsx"],"sourcesContent":["import { use, useMemo } from 'react';\nimport { useSearchParams } from 'react-router';\nimport { CustomFields, OntimeEvent } from 'ontime-types';\n\nimport { getTimeOption } 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 } from '../common/viewUtils';\n\nexport const getStudioOptions = (timeFormat: string, customFields: CustomFields): ViewOption[] => {\n const mainOptions = makeOptionsFromCustomFields(customFields, [{ value: 'title', label: 'Title' }]);\n\n return [\n { title: OptionTitle.ClockOptions, collapsible: true, options: [getTimeOption(timeFormat)] },\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 },\n {\n title: OptionTitle.ElementVisibility,\n collapsible: true,\n options: [\n {\n id: 'hideCards',\n title: 'Hide cards section',\n description: 'Hides the card section with the timers',\n type: 'boolean',\n defaultValue: false,\n },\n ],\n },\n ];\n};\n\ntype StudioOptions = {\n mainSource: keyof OntimeEvent | null;\n hideCards: boolean;\n};\n\n/**\n * Utility extract the view options from URL Params\n * the names and fallback are manually matched with timerOptions\n */\nfunction getOptionsFromParams(searchParams: URLSearchParams, defaultValues?: URLSearchParams): StudioOptions {\n // Helper to get value from either source, prioritizing defaultValues\n const getValue = (key: string) => defaultValues?.get(key) ?? searchParams.get(key);\n\n return {\n mainSource: getValue('main') as keyof OntimeEvent | null,\n hideCards: isStringBoolean(getValue('hideCards')),\n };\n}\n\n/**\n * Hook exposes the backstage view options\n */\nexport function useStudioOptions(): StudioOptions {\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 { secondsInMillis } from 'ontime-utils';\n\nimport { formatTime } from '../../common/utils/time';\n\n/**\n * Gathers display elements for the large studio clock\n */\nexport function getLargeClockData(clock: number) {\n const [display, meridian] = (() => {\n const formatted = formatTime(clock);\n if (formatted.endsWith('AM')) {\n return [formatted.slice(0, -2), 'AM'];\n }\n if (formatted.endsWith('PM')) {\n return [formatted.slice(0, -2), 'PM'];\n }\n return [formatted, undefined];\n })();\n\n return { seconds: secondsInMillis(clock), display, meridian };\n}\n","import { Playback } from 'ontime-types';\n\nimport { useIsSmallScreen } from '../../common/hooks/useIsSmallScreen';\nimport { useStudioClockSocket } from '../../common/hooks/useSocket';\nimport { cx } from '../../common/utils/styleUtils';\nimport { formatTime } from '../../common/utils/time';\nimport SuperscriptTime from '../common/superscript-time/SuperscriptTime';\n\nimport { getLargeClockData } from './studioClock.utils';\n\nimport './StudioClock.scss';\n\nconst activeIndicators = [...Array(12).keys()];\nconst secondsIndicators = [...Array(60).keys()];\n\ninterface StudioClockProps {\n hideCards: boolean;\n}\n\nexport default function StudioClock({ hideCards }: StudioClockProps) {\n const isSmallScreen = useIsSmallScreen();\n const { clock, playback } = useStudioClockSocket();\n const onAir = playback !== Playback.Stop;\n\n // if we are on mobile and have to show the cards\n if (isSmallScreen && !hideCards) {\n return <StudioClockMobile clock={clock} onAir={onAir} />;\n }\n\n const { seconds, display, meridian } = getLargeClockData(clock);\n\n return (\n <div className='studio__clock'>\n <div className='clock-container'>\n {secondsIndicators.map((i) => {\n return (\n <div\n key={i}\n className={cx(['tick', i <= seconds && 'tick--active'])}\n style={{ transform: `rotate(${180 + i * 6}deg) translateY(var(--half-size))` }}\n />\n );\n })}\n {activeIndicators.map((i) => (\n <div\n key={i}\n className='tick tick--active'\n style={{\n transform: `rotate(${180 + i * 30}deg) translateX(var(--smaller-half-size))`,\n }}\n />\n ))}\n <div className={cx(['ampm', Boolean(meridian) && 'ampm--active'])}>{meridian}</div>\n <div className='time time--large'>{display}</div>\n <div className={cx(['on-air', onAir && 'on-air--active'])}>ON AIR</div>\n </div>\n </div>\n );\n}\n\ninterface StudioClockMobileProps {\n clock: number;\n onAir: boolean;\n}\n\nfunction StudioClockMobile({ clock, onAir }: StudioClockMobileProps) {\n const displayClock = formatTime(clock);\n\n return (\n <div className='studio__clock studio__clock--small'>\n <SuperscriptTime className='time time--small' time={displayClock} />\n <div className={cx(['on-air', onAir && 'on-air--active'])}>ON AIR</div>\n </div>\n );\n}\n","import { MaybeNumber, OntimeEvent, TimerState } from 'ontime-types';\nimport { millisToString } from 'ontime-utils';\n\nimport { getOffsetText } from '../../common/utils/offset';\nimport { formatTime } from '../../common/utils/time';\n\nconst timeFormat = { format12: 'h:mm a', format24: 'HH:mm' };\nexport function getFormattedScheduleTimes(data: {\n offset: number;\n actualStart: MaybeNumber;\n expectedEnd: MaybeNumber;\n}) {\n return {\n actualStart: formatTime(data.actualStart, timeFormat),\n expectedEnd: formatTime(data.expectedEnd, timeFormat),\n offset: getOffsetText(data.offset),\n };\n}\n\nexport function getFormattedEventData(\n eventNow: OntimeEvent | null,\n timer: TimerState,\n mainSource: keyof OntimeEvent | null,\n) {\n return {\n title: (eventNow?.[mainSource ?? 'title'] as string) || '-',\n startedAt: formatTime(timer.startedAt, timeFormat),\n expectedEnd: formatTime(timer.expectedFinish, timeFormat),\n timer: millisToString(timer.current),\n };\n}\n","import { Playback, TimerPhase, ViewSettings } from 'ontime-types';\nimport { millisToString } from 'ontime-utils';\n\nimport { useAuxTimersTime, useStudioTimersSocket } from '../../common/hooks/useSocket';\nimport { getOffsetState } from '../../common/utils/offset';\nimport { cx } from '../../common/utils/styleUtils';\nimport { useTranslation } from '../../translation/TranslationProvider';\nimport { getPropertyValue } from '../common/viewUtils';\nimport { getTimerColour } from '../utils/presentation.utils';\n\nimport { useStudioOptions } from './studio.options';\nimport { getFormattedEventData, getFormattedScheduleTimes } from './studioTimers.utils';\n\nimport './StudioTimers.scss';\n\ninterface StudioTimersProps {\n viewSettings: ViewSettings;\n}\n\nexport default function StudioTimers({ viewSettings }: StudioTimersProps) {\n const { getLocalizedString } = useTranslation();\n const { mainSource } = useStudioOptions();\n const { eventNow, eventNext, message, time, offset, rundown, expectedRundownEnd } = useStudioTimersSocket();\n\n const schedule = getFormattedScheduleTimes({\n offset: offset,\n actualStart: rundown.actualStart,\n expectedEnd: expectedRundownEnd,\n });\n const event = getFormattedEventData(eventNow, time, mainSource);\n const eventNextTitle = getPropertyValue(eventNext, mainSource ?? 'title') || '-';\n const formattedTimerMessage = (message.timer.visible && message.timer.text) || '-';\n const formattedSecondaryMessage = message.timer.secondarySource === 'secondary' ? message.secondary || '-' : '-';\n\n // gather presentation styles\n const timerColour = getTimerColour(\n viewSettings,\n undefined,\n time.phase === TimerPhase.Warning,\n time.phase === TimerPhase.Danger,\n );\n\n const offsetState = getOffsetState(offset);\n\n return (\n <div className='studio__timers'>\n <div className='card' id='card-schedule'>\n <div className='card__row'>\n <div>\n <div className='label'>{getLocalizedString('common.started_at')}</div>\n <div className='runtime-timer'>{schedule.actualStart}</div>\n </div>\n <div>\n <div className='label center'>Over / under</div>\n <div className={cx(['runtime-timer', 'center', !eventNow && 'muted', offsetState])}>{schedule.offset}</div>\n </div>\n <div>\n <div className='label right'>{getLocalizedString('common.expected_end')}</div>\n <div className='runtime-timer right'>{schedule.expectedEnd}</div>\n </div>\n </div>\n </div>\n\n <div className='card' id='card-event-now'>\n <div className='card__row'>\n <div>\n <div className='label'>{getLocalizedString('common.now')}</div>\n <div className='title'>{event.title}</div>\n </div>\n <div>\n <div className='label right'>{getLocalizedString('common.next')}</div>\n <div className='title right'>{eventNextTitle}</div>\n </div>\n </div>\n\n <div className='card__row'>\n <div>\n <div className='label'>{getLocalizedString('common.started_at')}</div>\n <div className='runtime-timer'>{event.startedAt}</div>\n </div>\n <div>\n <div className='label' />\n <div\n className={cx([\n 'event-timer',\n time.phase === TimerPhase.Overtime && 'event-timer--finished',\n time.playback === Playback.Pause && 'event-timer--paused',\n ])}\n style={{\n '--phase-color': timerColour,\n }}\n data-phase={time.phase}\n >\n {event.timer}\n </div>\n </div>\n <div>\n <div className='label right'>{getLocalizedString('common.expected_end')}</div>\n <div className='runtime-timer right'>{event.expectedEnd}</div>\n </div>\n </div>\n </div>\n\n <StudioTimersAux />\n\n <div className='card' id='card-timer-message'>\n <div>\n <div className='label'>Timer message</div>\n <div className={cx(['extra', !formattedTimerMessage && 'muted'])}>{formattedTimerMessage}</div>\n </div>\n </div>\n\n <div className='card' id='card-secondary-message'>\n <div>\n <div className='label'>Secondary message</div>\n <div className={cx(['extra', !formattedSecondaryMessage && 'muted'])}>{formattedSecondaryMessage}</div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction StudioTimersAux() {\n const auxTimer = useAuxTimersTime();\n\n return (\n <div className='card' id='card-aux'>\n <div className='card__row'>\n <div>\n <div className='label'>Aux 1</div>\n <div className='extra'>{millisToString(auxTimer.aux1)}</div>\n </div>\n\n <div>\n <div className='label center'>Aux 2</div>\n <div className='extra center'>{millisToString(auxTimer.aux2)}</div>\n </div>\n\n <div>\n <div className='label right'>Aux 3</div>\n <div className='extra right'>{millisToString(auxTimer.aux3)}</div>\n </div>\n </div>\n </div>\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 StudioData {\n customFields: CustomFields;\n projectData: ProjectData;\n isMirrored: boolean;\n settings: Settings;\n viewSettings: ViewSettings;\n}\n\nexport function useStudioData(): ViewData<StudioData> {\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 EmptyPage from '../../common/components/state/EmptyPage';\nimport ViewLogo from '../../common/components/view-logo/ViewLogo';\nimport ViewParamsEditor from '../../common/components/view-params-editor/ViewParamsEditor';\nimport { useWindowTitle } from '../../common/hooks/useWindowTitle';\nimport { cx } from '../../common/utils/styleUtils';\nimport { getDefaultFormat } from '../../common/utils/time';\nimport Loader from '../common/loader/Loader';\n\nimport { getStudioOptions, useStudioOptions } from './studio.options';\nimport StudioClock from './StudioClock';\nimport StudioTimers from './StudioTimers';\nimport { StudioData, useStudioData } from './useStudioData';\n\nimport './Studio.scss';\n\nexport default function StudioLoader() {\n const { data, status } = useStudioData();\n\n useWindowTitle('Studio Clock');\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 <Studio {...data} />;\n}\n\nfunction Studio({ customFields, projectData, isMirrored, settings, viewSettings }: StudioData) {\n const { hideCards } = useStudioOptions();\n\n // gather option data\n const defaultFormat = getDefaultFormat(settings?.timeFormat);\n const studioOptions = useMemo(() => getStudioOptions(defaultFormat, customFields), [defaultFormat, customFields]);\n\n return (\n <div className={cx(['studio', isMirrored && 'mirror'])} data-testid='studio-view'>\n <ViewParamsEditor target={OntimeView.StudioClock} viewOptions={studioOptions} />\n\n <div className='project-header'>\n {projectData?.logo && <ViewLogo name={projectData.logo} className='logo' />}\n <div className='title'>{projectData.title}</div>\n </div>\n\n <div className={cx(['studio-contents', hideCards && 'studio-contents--onecol'])}>\n <StudioClock hideCards={hideCards} />\n {!hideCards && <StudioTimers viewSettings={viewSettings} />}\n </div>\n </div>\n );\n}\n"],"names":["getStudioOptions","timeFormat","customFields","mainOptions","makeOptionsFromCustomFields","value","label","title","OptionTitle","ClockOptions","collapsible","options","getTimeOption","DataSources","id","description","type","values","defaultValue","ElementVisibility","getOptionsFromParams","searchParams","defaultValues","getValue","key","get","mainSource","hideCards","isStringBoolean","useStudioOptions","useSearchParams","maybePreset","use","PresetContext","useMemo","URLSearchParams","search","undefined","getLargeClockData","clock","display","meridian","formatted","formatTime","endsWith","slice","seconds","secondsInMillis","activeIndicators","Array","keys","secondsIndicators","StudioClock","isSmallScreen","useIsSmallScreen","playback","useStudioClockSocket","onAir","Playback","Stop","jsx","StudioClockMobile","jsxs","map","i","cx","transform","Boolean","displayClock","SuperscriptTime","format12","format24","getFormattedScheduleTimes","data","actualStart","expectedEnd","offset","getOffsetText","getFormattedEventData","eventNow","timer","startedAt","expectedFinish","millisToString","current","StudioTimers","viewSettings","getLocalizedString","useTranslation","eventNext","message","time","rundown","expectedRundownEnd","useStudioTimersSocket","schedule","event","eventNextTitle","getPropertyValue","formattedTimerMessage","visible","text","formattedSecondaryMessage","secondarySource","secondary","timerColour","getTimerColour","phase","TimerPhase","Warning","Danger","offsetState","getOffsetState","Overtime","Pause","StudioTimersAux","auxTimer","useAuxTimersTime","aux1","aux2","aux3","useStudioData","isMirrored","useViewOptionsStore","state","mirror","projectData","status","projectDataStatus","useProjectData","viewSettingsStatus","useViewSettings","settings","settingsStatus","useSettings","customFieldsStatus","useCustomFields","aggregateQueryStatus","StudioLoader","useWindowTitle","Loader","EmptyPage","Studio","defaultFormat","getDefaultFormat","studioOptions","ViewParamsEditor","OntimeView","logo","ViewLogo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Studio-DzXTmBx4.js","sources":["../../src/views/studio/studio.options.ts","../../src/views/studio/studioClock.utils.ts","../../src/views/studio/StudioClock.tsx","../../src/views/studio/studioTimers.utils.ts","../../src/views/studio/StudioTimers.tsx","../../src/views/studio/useStudioData.ts","../../src/views/studio/Studio.tsx"],"sourcesContent":["import { use, useMemo } from 'react';\nimport { useSearchParams } from 'react-router';\nimport { CustomFields, OntimeEvent } from 'ontime-types';\n\nimport { getTimeOption } 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 } from '../common/viewUtils';\n\nexport const getStudioOptions = (timeFormat: string, customFields: CustomFields): ViewOption[] => {\n const mainOptions = makeOptionsFromCustomFields(customFields, [{ value: 'title', label: 'Title' }]);\n\n return [\n { title: OptionTitle.ClockOptions, collapsible: true, options: [getTimeOption(timeFormat)] },\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 },\n {\n title: OptionTitle.ElementVisibility,\n collapsible: true,\n options: [\n {\n id: 'hideCards',\n title: 'Hide cards section',\n description: 'Hides the card section with the timers',\n type: 'boolean',\n defaultValue: false,\n },\n ],\n },\n ];\n};\n\ntype StudioOptions = {\n mainSource: keyof OntimeEvent | null;\n hideCards: boolean;\n};\n\n/**\n * Utility extract the view options from URL Params\n * the names and fallback are manually matched with timerOptions\n */\nfunction getOptionsFromParams(searchParams: URLSearchParams, defaultValues?: URLSearchParams): StudioOptions {\n // Helper to get value from either source, prioritizing defaultValues\n const getValue = (key: string) => defaultValues?.get(key) ?? searchParams.get(key);\n\n return {\n mainSource: getValue('main') as keyof OntimeEvent | null,\n hideCards: isStringBoolean(getValue('hideCards')),\n };\n}\n\n/**\n * Hook exposes the backstage view options\n */\nexport function useStudioOptions(): StudioOptions {\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 { secondsInMillis } from 'ontime-utils';\n\nimport { formatTime } from '../../common/utils/time';\n\n/**\n * Gathers display elements for the large studio clock\n */\nexport function getLargeClockData(clock: number) {\n const [display, meridian] = (() => {\n const formatted = formatTime(clock);\n if (formatted.endsWith('AM')) {\n return [formatted.slice(0, -2), 'AM'];\n }\n if (formatted.endsWith('PM')) {\n return [formatted.slice(0, -2), 'PM'];\n }\n return [formatted, undefined];\n })();\n\n return { seconds: secondsInMillis(clock), display, meridian };\n}\n","import { Playback } from 'ontime-types';\n\nimport { useIsSmallScreen } from '../../common/hooks/useIsSmallScreen';\nimport { useStudioClockSocket } from '../../common/hooks/useSocket';\nimport { cx } from '../../common/utils/styleUtils';\nimport { formatTime } from '../../common/utils/time';\nimport SuperscriptTime from '../common/superscript-time/SuperscriptTime';\n\nimport { getLargeClockData } from './studioClock.utils';\n\nimport './StudioClock.scss';\n\nconst activeIndicators = [...Array(12).keys()];\nconst secondsIndicators = [...Array(60).keys()];\n\ninterface StudioClockProps {\n hideCards: boolean;\n}\n\nexport default function StudioClock({ hideCards }: StudioClockProps) {\n const isSmallScreen = useIsSmallScreen();\n const { clock, playback } = useStudioClockSocket();\n const onAir = playback !== Playback.Stop;\n\n // if we are on mobile and have to show the cards\n if (isSmallScreen && !hideCards) {\n return <StudioClockMobile clock={clock} onAir={onAir} />;\n }\n\n const { seconds, display, meridian } = getLargeClockData(clock);\n\n return (\n <div className='studio__clock'>\n <div className='clock-container'>\n {secondsIndicators.map((i) => {\n return (\n <div\n key={i}\n className={cx(['tick', i <= seconds && 'tick--active'])}\n style={{ transform: `rotate(${180 + i * 6}deg) translateY(var(--half-size))` }}\n />\n );\n })}\n {activeIndicators.map((i) => (\n <div\n key={i}\n className='tick tick--active'\n style={{\n transform: `rotate(${180 + i * 30}deg) translateX(var(--smaller-half-size))`,\n }}\n />\n ))}\n <div className={cx(['ampm', Boolean(meridian) && 'ampm--active'])}>{meridian}</div>\n <div className='time time--large'>{display}</div>\n <div className={cx(['on-air', onAir && 'on-air--active'])}>ON AIR</div>\n </div>\n </div>\n );\n}\n\ninterface StudioClockMobileProps {\n clock: number;\n onAir: boolean;\n}\n\nfunction StudioClockMobile({ clock, onAir }: StudioClockMobileProps) {\n const displayClock = formatTime(clock);\n\n return (\n <div className='studio__clock studio__clock--small'>\n <SuperscriptTime className='time time--small' time={displayClock} />\n <div className={cx(['on-air', onAir && 'on-air--active'])}>ON AIR</div>\n </div>\n );\n}\n","import { MaybeNumber, OntimeEvent, TimerState } from 'ontime-types';\nimport { millisToString } from 'ontime-utils';\n\nimport { getOffsetText } from '../../common/utils/offset';\nimport { formatTime } from '../../common/utils/time';\n\nconst timeFormat = { format12: 'h:mm a', format24: 'HH:mm' };\nexport function getFormattedScheduleTimes(data: {\n offset: number;\n actualStart: MaybeNumber;\n expectedEnd: MaybeNumber;\n}) {\n return {\n actualStart: formatTime(data.actualStart, timeFormat),\n expectedEnd: formatTime(data.expectedEnd, timeFormat),\n offset: getOffsetText(data.offset),\n };\n}\n\nexport function getFormattedEventData(\n eventNow: OntimeEvent | null,\n timer: TimerState,\n mainSource: keyof OntimeEvent | null,\n) {\n return {\n title: (eventNow?.[mainSource ?? 'title'] as string) || '-',\n startedAt: formatTime(timer.startedAt, timeFormat),\n expectedEnd: formatTime(timer.expectedFinish, timeFormat),\n timer: millisToString(timer.current),\n };\n}\n","import { Playback, TimerPhase, ViewSettings } from 'ontime-types';\nimport { millisToString } from 'ontime-utils';\n\nimport { useAuxTimersTime, useStudioTimersSocket } from '../../common/hooks/useSocket';\nimport { getOffsetState } from '../../common/utils/offset';\nimport { cx } from '../../common/utils/styleUtils';\nimport { useTranslation } from '../../translation/TranslationProvider';\nimport { getPropertyValue } from '../common/viewUtils';\nimport { getTimerColour } from '../utils/presentation.utils';\n\nimport { useStudioOptions } from './studio.options';\nimport { getFormattedEventData, getFormattedScheduleTimes } from './studioTimers.utils';\n\nimport './StudioTimers.scss';\n\ninterface StudioTimersProps {\n viewSettings: ViewSettings;\n}\n\nexport default function StudioTimers({ viewSettings }: StudioTimersProps) {\n const { getLocalizedString } = useTranslation();\n const { mainSource } = useStudioOptions();\n const { eventNow, eventNext, message, time, offset, rundown, expectedRundownEnd } = useStudioTimersSocket();\n\n const schedule = getFormattedScheduleTimes({\n offset: offset,\n actualStart: rundown.actualStart,\n expectedEnd: expectedRundownEnd,\n });\n const event = getFormattedEventData(eventNow, time, mainSource);\n const eventNextTitle = getPropertyValue(eventNext, mainSource ?? 'title') || '-';\n const formattedTimerMessage = (message.timer.visible && message.timer.text) || '-';\n const formattedSecondaryMessage = message.timer.secondarySource === 'secondary' ? message.secondary || '-' : '-';\n\n // gather presentation styles\n const timerColour = getTimerColour(\n viewSettings,\n undefined,\n time.phase === TimerPhase.Warning,\n time.phase === TimerPhase.Danger,\n );\n\n const offsetState = getOffsetState(offset);\n\n return (\n <div className='studio__timers'>\n <div className='card' id='card-schedule'>\n <div className='card__row'>\n <div>\n <div className='label'>{getLocalizedString('common.started_at')}</div>\n <div className='runtime-timer'>{schedule.actualStart}</div>\n </div>\n <div>\n <div className='label center'>Over / under</div>\n <div className={cx(['runtime-timer', 'center', !eventNow && 'muted', offsetState])}>{schedule.offset}</div>\n </div>\n <div>\n <div className='label right'>{getLocalizedString('common.expected_end')}</div>\n <div className='runtime-timer right'>{schedule.expectedEnd}</div>\n </div>\n </div>\n </div>\n\n <div className='card' id='card-event-now'>\n <div className='card__row'>\n <div>\n <div className='label'>{getLocalizedString('common.now')}</div>\n <div className='title'>{event.title}</div>\n </div>\n <div>\n <div className='label right'>{getLocalizedString('common.next')}</div>\n <div className='title right'>{eventNextTitle}</div>\n </div>\n </div>\n\n <div className='card__row'>\n <div>\n <div className='label'>{getLocalizedString('common.started_at')}</div>\n <div className='runtime-timer'>{event.startedAt}</div>\n </div>\n <div>\n <div className='label' />\n <div\n className={cx([\n 'event-timer',\n time.phase === TimerPhase.Overtime && 'event-timer--finished',\n time.playback === Playback.Pause && 'event-timer--paused',\n ])}\n style={{\n '--phase-color': timerColour,\n }}\n data-phase={time.phase}\n >\n {event.timer}\n </div>\n </div>\n <div>\n <div className='label right'>{getLocalizedString('common.expected_end')}</div>\n <div className='runtime-timer right'>{event.expectedEnd}</div>\n </div>\n </div>\n </div>\n\n <StudioTimersAux />\n\n <div className='card' id='card-timer-message'>\n <div>\n <div className='label'>Timer message</div>\n <div className={cx(['extra', !formattedTimerMessage && 'muted'])}>{formattedTimerMessage}</div>\n </div>\n </div>\n\n <div className='card' id='card-secondary-message'>\n <div>\n <div className='label'>Secondary message</div>\n <div className={cx(['extra', !formattedSecondaryMessage && 'muted'])}>{formattedSecondaryMessage}</div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction StudioTimersAux() {\n const auxTimer = useAuxTimersTime();\n\n return (\n <div className='card' id='card-aux'>\n <div className='card__row'>\n <div>\n <div className='label'>Aux 1</div>\n <div className='extra'>{millisToString(auxTimer.aux1)}</div>\n </div>\n\n <div>\n <div className='label center'>Aux 2</div>\n <div className='extra center'>{millisToString(auxTimer.aux2)}</div>\n </div>\n\n <div>\n <div className='label right'>Aux 3</div>\n <div className='extra right'>{millisToString(auxTimer.aux3)}</div>\n </div>\n </div>\n </div>\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 StudioData {\n customFields: CustomFields;\n projectData: ProjectData;\n isMirrored: boolean;\n settings: Settings;\n viewSettings: ViewSettings;\n}\n\nexport function useStudioData(): ViewData<StudioData> {\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 EmptyPage from '../../common/components/state/EmptyPage';\nimport ViewLogo from '../../common/components/view-logo/ViewLogo';\nimport ViewParamsEditor from '../../common/components/view-params-editor/ViewParamsEditor';\nimport { useWindowTitle } from '../../common/hooks/useWindowTitle';\nimport { cx } from '../../common/utils/styleUtils';\nimport { getDefaultFormat } from '../../common/utils/time';\nimport Loader from '../common/loader/Loader';\n\nimport { getStudioOptions, useStudioOptions } from './studio.options';\nimport StudioClock from './StudioClock';\nimport StudioTimers from './StudioTimers';\nimport { StudioData, useStudioData } from './useStudioData';\n\nimport './Studio.scss';\n\nexport default function StudioLoader() {\n const { data, status } = useStudioData();\n\n useWindowTitle('Studio Clock');\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 <Studio {...data} />;\n}\n\nfunction Studio({ customFields, projectData, isMirrored, settings, viewSettings }: StudioData) {\n const { hideCards } = useStudioOptions();\n\n // gather option data\n const defaultFormat = getDefaultFormat(settings?.timeFormat);\n const studioOptions = useMemo(() => getStudioOptions(defaultFormat, customFields), [defaultFormat, customFields]);\n\n return (\n <div className={cx(['studio', isMirrored && 'mirror'])} data-testid='studio-view'>\n <ViewParamsEditor target={OntimeView.StudioClock} viewOptions={studioOptions} />\n\n <div className='project-header'>\n {projectData?.logo && <ViewLogo name={projectData.logo} className='logo' />}\n <div className='title'>{projectData.title}</div>\n </div>\n\n <div className={cx(['studio-contents', hideCards && 'studio-contents--onecol'])}>\n <StudioClock hideCards={hideCards} />\n {!hideCards && <StudioTimers viewSettings={viewSettings} />}\n </div>\n </div>\n );\n}\n"],"names":["getStudioOptions","timeFormat","customFields","mainOptions","makeOptionsFromCustomFields","value","label","title","OptionTitle","ClockOptions","collapsible","options","getTimeOption","DataSources","id","description","type","values","defaultValue","ElementVisibility","getOptionsFromParams","searchParams","defaultValues","getValue","key","get","mainSource","hideCards","isStringBoolean","useStudioOptions","useSearchParams","maybePreset","use","PresetContext","useMemo","URLSearchParams","search","undefined","getLargeClockData","clock","display","meridian","formatted","formatTime","endsWith","slice","seconds","secondsInMillis","activeIndicators","Array","keys","secondsIndicators","StudioClock","isSmallScreen","useIsSmallScreen","playback","useStudioClockSocket","onAir","Playback","Stop","jsx","StudioClockMobile","jsxs","map","i","cx","transform","Boolean","displayClock","SuperscriptTime","format12","format24","getFormattedScheduleTimes","data","actualStart","expectedEnd","offset","getOffsetText","getFormattedEventData","eventNow","timer","startedAt","expectedFinish","millisToString","current","StudioTimers","viewSettings","getLocalizedString","useTranslation","eventNext","message","time","rundown","expectedRundownEnd","useStudioTimersSocket","schedule","event","eventNextTitle","getPropertyValue","formattedTimerMessage","visible","text","formattedSecondaryMessage","secondarySource","secondary","timerColour","getTimerColour","phase","TimerPhase","Warning","Danger","offsetState","getOffsetState","Overtime","Pause","StudioTimersAux","auxTimer","useAuxTimersTime","aux1","aux2","aux3","useStudioData","isMirrored","useViewOptionsStore","state","mirror","projectData","status","projectDataStatus","useProjectData","viewSettingsStatus","useViewSettings","settings","settingsStatus","useSettings","customFieldsStatus","useCustomFields","aggregateQueryStatus","StudioLoader","useWindowTitle","Loader","EmptyPage","Studio","defaultFormat","getDefaultFormat","studioOptions","ViewParamsEditor","OntimeView","logo","ViewLogo"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as r,j as f,cu as y,cv as u}from"./vendor-CKDP5hij.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new e.Error().stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b7985934-c1b9-4a4f-975c-72414469c03d",e._sentryDebugIdIdentifier="sentry-dbid-b7985934-c1b9-4a4f-975c-72414469c03d")}catch{}})();const h="_wrapper_1l24u_17",b={wrapper:h},g=r.forwardRef((e,n)=>{const{language:i,initialValue:t,isDirty:o,setIsDirty:d}=e,[s,l]=r.useState(t),p=a=>{const c=u.languages[i];return c?u.highlight(a,c,i):a},m=a=>{l(a)};return r.useImperativeHandle(n,()=>({getCss:()=>s})),r.useEffect(()=>{l(t)},[t]),r.useEffect(()=>{t.trim()!==s.trim()&&!o&&s.length!==0&&d(!0),t.trim()===s.trim()&&o&&d(!1)},[t,s,o,d]),f.jsx("div",{className:b.wrapper,children:f.jsx(y,{value:s,padding:15,onValueChange:m,highlight:p,style:{fontFamily:"monospace",fontSize:12,minHeight:500,background:"#2d2d2d"}})})});g.displayName="StyleEditor";const E=r.memo(g);export{E as default};
|
|
2
|
+
//# sourceMappingURL=StyleEditor-ClMEMaWh.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyleEditor-
|
|
1
|
+
{"version":3,"file":"StyleEditor-ClMEMaWh.js","sources":["../../src/features/app-settings/panel/settings-panel/composite/StyleEditor.tsx"],"sourcesContent":["import { forwardRef, memo, useEffect, useImperativeHandle, useState } from 'react';\nimport Editor from 'react-simple-code-editor';\nimport Prism from 'prismjs/components/prism-core';\n\nimport 'prismjs/components/prism-css';\nimport 'prismjs/themes/prism-tomorrow.min.css';\nimport style from './StyleEditor.module.scss';\n\ninterface CodeEditorProps {\n language: string;\n initialValue: string;\n isDirty: boolean;\n setIsDirty: (value: boolean) => void;\n}\n\nconst CodeEditor = forwardRef((props: CodeEditorProps, cssRef) => {\n const { language, initialValue, isDirty, setIsDirty } = props;\n\n const [code, setCode] = useState(initialValue);\n\n const highlight = (code: string) => {\n const grammar = Prism.languages[language];\n return grammar ? Prism.highlight(code, grammar, language) : code;\n };\n\n const handleChange = (newCode: string) => {\n setCode(newCode);\n };\n\n useImperativeHandle(cssRef, () => {\n return {\n getCss: () => code,\n };\n });\n\n // add contents to editor on mount and any change in initialValue\n useEffect(() => {\n setCode(initialValue);\n }, [initialValue]);\n\n // handle dirty state on change\n useEffect(() => {\n if (initialValue.trim() !== code.trim() && !isDirty && code.length !== 0) {\n setIsDirty(true);\n }\n\n if (initialValue.trim() === code.trim() && isDirty) {\n setIsDirty(false);\n }\n }, [initialValue, code, isDirty, setIsDirty]);\n\n return (\n <div className={style.wrapper}>\n <Editor\n value={code}\n padding={15}\n onValueChange={handleChange}\n highlight={highlight}\n style={{\n fontFamily: 'monospace',\n fontSize: 12,\n minHeight: 500,\n background: '#2d2d2d', // Background of tomorrow theme\n }}\n />\n </div>\n );\n});\n\nCodeEditor.displayName = 'StyleEditor';\n\nexport default memo(CodeEditor);\n"],"names":["CodeEditor","forwardRef","props","cssRef","language","initialValue","isDirty","setIsDirty","code","setCode","useState","highlight","grammar","Prism","languages","handleChange","newCode","useImperativeHandle","getCss","useEffect","trim","length","jsx","style","wrapper","Editor","fontFamily","fontSize","minHeight","background","displayName","memo"],"mappings":"ocAeMA,EAAaC,EAAAA,WAAW,CAACC,EAAwBC,IAAW,CAC1D,KAAA,CAAEC,SAAAA,EAAUC,aAAAA,EAAcC,QAAAA,EAASC,WAAAA,CAAAA,EAAeL,EAElD,CAACM,EAAMC,CAAO,EAAIC,EAAAA,SAASL,CAAY,EAEvCM,EAAaH,GAAiB,CAC5BI,MAAAA,EAAUC,EAAMC,UAAUV,CAAQ,EACxC,OAAOQ,EAAUC,EAAMF,UAAUH,EAAMI,EAASR,CAAQ,EAAII,CAC9D,EAEMO,EAAgBC,GAAoB,CACxCP,EAAQO,CAAO,CACjB,EAEAC,OAAAA,EAAAA,oBAAoBd,EAAQ,KACnB,CACLe,OAAQA,IAAMV,CAChB,EACD,EAGDW,EAAAA,UAAU,IAAM,CACdV,EAAQJ,CAAY,CAAA,EACnB,CAACA,CAAY,CAAC,EAGjBc,EAAAA,UAAU,IAAM,CACVd,EAAae,KAAK,IAAMZ,EAAKY,QAAU,CAACd,GAAWE,EAAKa,SAAW,GACrEd,EAAW,EAAI,EAGbF,EAAae,KAAK,IAAMZ,EAAKY,KAAAA,GAAUd,GACzCC,EAAW,EAAK,GAEjB,CAACF,EAAcG,EAAMF,EAASC,CAAU,CAAC,EAGzCe,EAAAA,IAAA,MAAA,CAAI,UAAWC,EAAMC,QACpB,SAACF,MAAAG,EAAA,CACC,MAAOjB,EACP,QAAS,GACT,cAAeO,EACf,UAAAJ,EACA,MAAO,CACLe,WAAY,YACZC,SAAU,GACVC,UAAW,IACXC,WAAY,WACZ,CAEN,CAAA,CAEJ,CAAC,EAED7B,EAAW8B,YAAc,cAEzB,MAAeC,EAAAA,EAAAA,KAAK/B,CAAU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as r}from"./vendor-
|
|
2
|
-
//# sourceMappingURL=SuperscriptPeriod-
|
|
1
|
+
import{j as r}from"./vendor-CKDP5hij.js";/* empty css */(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},d=new e.Error().stack;d&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[d]="00a8c8dc-5631-4773-8d28-638a8f49d145",e._sentryDebugIdIdentifier="sentry-dbid-00a8c8dc-5631-4773-8d28-638a8f49d145")}catch{}})();function o({time:e,className:d}){const[i,n]=e.split(" ");return r.jsxs("div",{className:d,children:[i,n&&r.jsx("sup",{className:"period",children:n})]})}export{o as S};
|
|
2
|
+
//# sourceMappingURL=SuperscriptPeriod-CBiZU34J.js.map
|
|
Binary file
|
|
Binary file
|
package/client/assets/{SuperscriptPeriod-DswX2aei.js.map → SuperscriptPeriod-CBiZU34J.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuperscriptPeriod-
|
|
1
|
+
{"version":3,"file":"SuperscriptPeriod-CBiZU34J.js","sources":["../../src/views/common/superscript-time/SuperscriptPeriod.tsx"],"sourcesContent":["import './SuperscriptTime.scss';\n\ninterface SuperscriptPeriodProps {\n time: string;\n className?: string;\n}\n\n/**\n * Receives a time string and formats periods (am/pm) as superscript\n * @example 12:00 AM -> AM becomes a superscript\n * @example 12:00:10 -> no formatting changes applied\n */\nexport default function SuperscriptPeriod({ time, className }: SuperscriptPeriodProps) {\n // we assume anything after space is a period tag\n const [timeString, period] = time.split(' ');\n\n return (\n <div className={className}>\n {timeString}\n {period && <sup className='period'>{period}</sup>}\n </div>\n );\n}\n"],"names":["SuperscriptPeriod","time","className","timeString","period","split","jsxs","jsx"],"mappings":"yaAYA,SAAwBA,EAAkB,CAAEC,KAAAA,EAAMC,UAAAA,CAAkC,EAAG,CAErF,KAAM,CAACC,EAAYC,CAAM,EAAIH,EAAKI,MAAM,GAAG,EAGzC,OAAAC,OAAC,OAAI,UAAAJ,EACFC,SAAAA,CAAAA,EACAC,GAAUG,EAAA,IAAC,MAAI,CAAA,UAAU,SAAUH,SAAOA,CAAA,CAAA,CAAA,EAC7C,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as n}from"./vendor-
|
|
2
|
-
//# sourceMappingURL=SuperscriptTime-
|
|
1
|
+
import{j as n}from"./vendor-CKDP5hij.js";/* empty css */(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new e.Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="aefb1501-4118-4a11-bc95-53da82643f28",e._sentryDebugIdIdentifier="sentry-dbid-aefb1501-4118-4a11-bc95-53da82643f28")}catch{}})();function a(e){return e.length!==8?[e,""]:[e.slice(0,5),e.slice(5)]}function l({time:e,className:s,style:r}){const[d,i]=e.split(" "),[o,t]=a(d);return n.jsxs("div",{className:s,style:r,children:[o,t&&n.jsx("span",{className:"subscript",children:t}),i&&n.jsx("sup",{className:"period",children:i})]})}export{l as S};
|
|
2
|
+
//# sourceMappingURL=SuperscriptTime-DP1CDlOX.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SuperscriptTime-
|
|
1
|
+
{"version":3,"file":"SuperscriptTime-DP1CDlOX.js","sources":["../../src/views/common/superscript-time/SuperscriptTime.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\n\nimport './SuperscriptTime.scss';\n\ninterface SuperscriptTimeProps {\n time: string;\n className?: string;\n style?: CSSProperties;\n}\n\n/**\n * When the timer includes seconds, we want to split it from the rest\n */\nfunction getTimerParts(time: string) {\n if (time.length !== 8) {\n return [time, ''];\n }\n\n return [time.slice(0, 5), time.slice(5)];\n}\n\n/**\n * Receives a time string and formats it with a subscript or superscript\n * @example 12:00 AM -> AM becomes a superscript\n * @example 12:00:10 -> the seconds become a subscript\n */\nexport default function SuperscriptTime({ time, className, style }: SuperscriptTimeProps) {\n // we assume anything after space is a period tag\n const [timeString, period] = time.split(' ');\n const [mainTime, subscript] = getTimerParts(timeString);\n\n return (\n <div className={className} style={style}>\n {mainTime}\n {subscript && <span className='subscript'>{subscript}</span>}\n {period && <sup className='period'>{period}</sup>}\n </div>\n );\n}\n"],"names":["getTimerParts","time","length","slice","SuperscriptTime","className","style","timeString","period","split","mainTime","subscript","jsxs","jsx"],"mappings":"yaAaA,SAASA,EAAcC,EAAc,CAC/BA,OAAAA,EAAKC,SAAW,EACX,CAACD,EAAM,EAAE,EAGX,CAACA,EAAKE,MAAM,EAAG,CAAC,EAAGF,EAAKE,MAAM,CAAC,CAAC,CACzC,CAOA,SAAwBC,EAAgB,CAAEH,KAAAA,EAAMI,UAAAA,EAAWC,MAAAA,CAA4B,EAAG,CAExF,KAAM,CAACC,EAAYC,CAAM,EAAIP,EAAKQ,MAAM,GAAG,EACrC,CAACC,EAAUC,CAAS,EAAIX,EAAcO,CAAU,EAGpD,OAAAK,EAAA,KAAC,MAAI,CAAA,UAAAP,EAAsB,MAAAC,EACxBI,SAAAA,CAAAA,EACAC,GAAaE,EAAA,IAAC,OAAK,CAAA,UAAU,YAAaF,SAAUA,EAAA,EACpDH,GAAUK,EAAA,IAAC,MAAI,CAAA,UAAU,SAAUL,SAAOA,CAAA,CAAA,CAAA,EAC7C,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e,by as y,bT as b,bU as g,bV as w,A as k,bW as v,bX as C,bY as P,bZ as I,b_ as N,b$ as D,c0 as $,bC as S,bD as T,c1 as R,c2 as L,aV as A,c3 as h,c4 as E}from"./vendor-CKDP5hij.js";import{e as l,aD as p}from"./index-2lQ-45a9.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},o=new s.Error().stack;o&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[o]="3cbee6ae-5ecc-44c1-b698-0d6feda46d88",s._sentryDebugIdIdentifier="sentry-dbid-3cbee6ae-5ecc-44c1-b698-0d6feda46d88")}catch{}})();const O="_blink_177b4_1",V="_fourtyfive_177b4_13",W="_infoLabel_177b4_17",z="_info_177b4_17",F="_warning_177b4_37",H="_error_177b4_41",u={blink:O,fourtyfive:V,infoLabel:W,info:z,warning:F,error:H};function ie({className:s,type:o="info",children:c}){return e.jsxs("div",{className:l([u.infoLabel,u[o],s]),children:[o==="info"&&e.jsx(y,{}),o==="warning"&&e.jsx(b,{}),o==="error"&&e.jsx(b,{}),e.jsx("div",{children:c})]})}const U="_checkbox_175d8_17",X="_indicator_175d8_53",d={checkbox:U,indicator:X};function ae(s){return e.jsx(g,{className:d.checkbox,...s,children:e.jsx(w,{className:d.indicator,children:e.jsx(k,{className:d.icon})})})}const Y="_blink_10e6s_1",Z="_fourtyfive_10e6s_13",q="_medium_10e6s_43",B="_large_10e6s_51",G="_thumb_10e6s_59",_={blink:Y,fourtyfive:Z,switch:"_switch_10e6s_17",medium:q,large:B,thumb:G};function le({size:s="medium",...o}){return e.jsx(v,{className:l([_.switch,_[s]]),...o,children:e.jsx(C,{className:_.thumb})})}const J="_popup_1xpg9_17",K="_title_1xpg9_34",f={popup:J,title:K};function M({title:s,className:o,children:c,...n}){return e.jsx(P,{children:e.jsx(I,{sideOffset:8,...n,children:e.jsxs(N,{className:f.popup,children:[s&&e.jsx(D,{className:f.title,children:s}),e.jsx($,{className:o,render:e.jsx("div",{}),children:c})]})})})}const Q="_input_jz3ye_17",ee={input:Q};function x({color:s,onChange:o,children:c}){return e.jsxs(S,{children:[e.jsx(T,{children:c}),e.jsxs(M,{children:[e.jsx(R,{color:s,onChange:o}),e.jsx(L,{color:s,onChange:o,className:ee.input,prefixed:!0})]})]})}const se="_list_1tpdr_17",oe="_swatch_1tpdr_23",ce="_selected_1tpdr_33",ne="_selectable_1tpdr_36",i={list:se,swatch:oe,selected:ce,selectable:ne};function de(s){const{color:o,onChange:c,isSelected:n,alwaysDisplayColor:t}=s,a=A(j=>{c(j)},100),r=t||n?o:"",{color:m}=p(r);return e.jsx(x,{color:r,onChange:a,children:e.jsx("div",{className:l([i.swatch,n&&i.selected,i.selectable]),style:{backgroundColor:r},children:e.jsx(h,{color:m})})})}function _e(s){const{name:o,control:c}=s,{field:{onChange:n,value:t}}=E({control:c,name:o}),a=typeof t=="string"?t:"",{color:r}=p(a);return e.jsx(x,{color:t,onChange:n,children:e.jsx("div",{className:l([i.swatch,i.selectable]),style:{backgroundColor:a},children:e.jsx(h,{color:r})})})}export{ae as C,ie as I,M as P,le as S,_e as a,de as b,i as s};
|
|
2
|
+
//# sourceMappingURL=SwatchPicker-Dyxkxf3_.js.map
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwatchPicker-
|
|
1
|
+
{"version":3,"file":"SwatchPicker-Dyxkxf3_.js","sources":["../../src/common/components/info/Info.tsx","../../src/common/components/checkbox/Checkbox.tsx","../../src/common/components/switch/Switch.tsx","../../src/common/components/popover/Popover.tsx","../../src/common/components/input/popover-picker/PopoverPicker.tsx","../../src/common/components/input/colour-input/SwatchPicker.tsx"],"sourcesContent":["import { PropsWithChildren } from 'react';\nimport { IoAlertCircle, IoWarning } from 'react-icons/io5';\n\nimport { cx } from '../../utils/styleUtils';\n\nimport style from './Info.module.scss';\n\ninterface InfoProps {\n className?: string;\n type?: 'info' | 'warning' | 'error';\n}\n\nexport default function Info({ className, type = 'info', children }: PropsWithChildren<InfoProps>) {\n return (\n <div className={cx([style.infoLabel, style[type], className])}>\n {type === 'info' && <IoAlertCircle />}\n {type === 'warning' && <IoWarning />}\n {type === 'error' && <IoWarning />}\n <div>{children}</div>\n </div>\n );\n}\n","import { IoCheckmark } from 'react-icons/io5';\nimport { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';\n\nimport style from './Checkbox.module.scss';\n\nexport default function Checkbox(checkboxProps: BaseCheckbox.Root.Props) {\n return (\n <BaseCheckbox.Root className={style.checkbox} {...checkboxProps}>\n <BaseCheckbox.Indicator className={style.indicator}>\n <IoCheckmark className={style.icon} />\n </BaseCheckbox.Indicator>\n </BaseCheckbox.Root>\n );\n}\n","import { Switch as BaseSwitch } from '@base-ui/react/switch';\n\nimport { cx } from '../../utils/styleUtils';\n\nimport style from './Switch.module.scss';\n\ninterface SwitchProps extends BaseSwitch.Root.Props {\n size?: 'medium' | 'large';\n}\n\nexport default function Switch({ size = 'medium', ...switchProps }: SwitchProps) {\n return (\n <BaseSwitch.Root className={cx([style.switch, style[size]])} {...switchProps}>\n <BaseSwitch.Thumb className={style.thumb} />\n </BaseSwitch.Root>\n );\n}\n","import { PropsWithChildren } from 'react';\nimport { Popover } from '@base-ui/react/popover';\n\nimport style from './Popover.module.scss';\n\ninterface PopoverContentsProps extends Popover.Positioner.Props {\n title?: string;\n className?: string;\n}\nexport default function PopoverContents({\n title,\n className,\n children,\n ...popoverProps\n}: PropsWithChildren<PopoverContentsProps>) {\n return (\n <Popover.Portal>\n <Popover.Positioner sideOffset={8} {...popoverProps}>\n <Popover.Popup className={style.popup}>\n {title && <Popover.Title className={style.title}>{title}</Popover.Title>}\n <Popover.Description className={className} render={<div />}>\n {children}\n </Popover.Description>\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n );\n}\n","import { PropsWithChildren } from 'react';\nimport { HexAlphaColorPicker, HexColorInput } from 'react-colorful';\nimport { Popover } from '@base-ui/react/popover';\n\nimport PopoverContents from '../../popover/Popover';\n\nimport style from './PopoverPicker.module.scss';\n\ninterface PopoverPickerProps {\n color: string;\n onChange: (color: string) => void;\n}\n\nexport default function PopoverPicker({ color, onChange, children }: PropsWithChildren<PopoverPickerProps>) {\n return (\n <Popover.Root>\n <Popover.Trigger>{children}</Popover.Trigger>\n <PopoverContents>\n <HexAlphaColorPicker color={color} onChange={onChange} />\n <HexColorInput color={color} onChange={onChange} className={style.input} prefixed />\n </PopoverContents>\n </Popover.Root>\n );\n}\n","import { useController, UseControllerProps } from 'react-hook-form';\nimport { IoEyedrop } from 'react-icons/io5';\nimport { useDebouncedCallback } from '@mantine/hooks';\nimport { ViewSettings } from 'ontime-types';\n\nimport { cx, getAccessibleColour } from '../../../utils/styleUtils';\nimport PopoverPicker from '../popover-picker/PopoverPicker';\n\nimport style from './SwatchSelect.module.scss';\n\ninterface SwatchPickerProps {\n color: string;\n isSelected?: boolean;\n onChange: (name: string) => void;\n alwaysDisplayColor?: boolean;\n}\n\nexport default function SwatchPicker(props: SwatchPickerProps) {\n const { color, onChange, isSelected, alwaysDisplayColor } = props;\n\n const debouncedOnChange = useDebouncedCallback((newValue: string) => {\n onChange(newValue);\n }, 100);\n\n const displayColor = alwaysDisplayColor || isSelected ? color : '';\n const { color: iconColor } = getAccessibleColour(displayColor);\n\n return (\n <PopoverPicker color={displayColor} onChange={debouncedOnChange}>\n <div\n className={cx([style.swatch, isSelected && style.selected, style.selectable])}\n style={{ backgroundColor: displayColor }}\n >\n <IoEyedrop color={iconColor} />\n </div>\n </PopoverPicker>\n );\n}\n\nexport function SwatchPickerRHF(props: UseControllerProps<ViewSettings>) {\n const { name, control } = props;\n const {\n field: { onChange, value },\n } = useController({ control, name });\n\n const displayColor = typeof value === 'string' ? value : '';\n const { color: iconColor } = getAccessibleColour(displayColor);\n\n return (\n <PopoverPicker color={value as string} onChange={onChange}>\n <div className={cx([style.swatch, style.selectable])} style={{ backgroundColor: displayColor }}>\n <IoEyedrop color={iconColor} />\n </div>\n </PopoverPicker>\n );\n}\n"],"names":["Info","className","type","children","jsxs","cx","style","infoLabel","IoAlertCircle","jsx","IoWarning","Checkbox","checkboxProps","BaseCheckbox.Root","checkbox","BaseCheckbox.Indicator","indicator","IoCheckmark","icon","Switch","size","switchProps","BaseSwitch.Root","switch","BaseSwitch.Thumb","thumb","PopoverContents","title","popoverProps","Popover.Portal","Popover.Positioner","Popover.Popup","popup","Popover.Title","Popover.Description","PopoverPicker","color","onChange","Popover.Root","Popover.Trigger","HexAlphaColorPicker","HexColorInput","input","SwatchPicker","props","isSelected","alwaysDisplayColor","debouncedOnChange","useDebouncedCallback","newValue","displayColor","iconColor","getAccessibleColour","swatch","selected","selectable","backgroundColor","IoEyedrop","SwatchPickerRHF","name","control","field","value","useController"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e,h as P,aO as y,aP as A,aQ as z,aR as V,aS as H,aT as W,aU as q}from"./vendor-CKDP5hij.js";import{m as g,bk as h,A as K,s as j,e as d,K as Q,y as B,v as J,f as $,bl as D,bm as M,k as L,x as k,bn as X,bo as Y,bp as Z,bq as ee,br as U,T as E,bs as te,bt as ae}from"./index-2lQ-45a9.js";import{T as u}from"./Tooltip-DXph8P8p.js";import{v as F}from"./useRundown-D6vokFHi.js";import{a as ne,g as se}from"./offset-DAyBfv5b.js";import{S as f}from"./SuperscriptPeriod-CBiZU34J.js";import{i as O}from"./playbackstate-znZk3SSJ.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new a.Error().stack;n&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[n]="6d160f26-5e22-40cd-b13d-b28cf022844f",a._sentryDebugIdIdentifier="sentry-dbid-6d160f26-5e22-40cd-b13d-b28cf022844f")}catch{}})();function S(a,n=3,s,l="due"){return a!==null&&a<=0?l:le(a,n,s)}function le(a,n=3,s){return g(a,{fallback:n===3?h:K,direction:s})}function C(a){return a!==null&&a>j?[a%j,Math.floor(a/j)]:[a,0]}const ce="_label_1ahsu_18",re="_clock_1ahsu_23",de="_column_1ahsu_35",ie="_over_1ahsu_47",oe="_under_1ahsu_48",m={label:ce,clock:re,column:de,over:ie,under:oe};function w({label:a,value:n,state:s="active",className:l,testId:r}){return e.jsxs("div",{className:d([m.column,l]),"data-state":s,children:[e.jsx("span",{className:m.label,children:a}),e.jsx("span",{className:m.clock,"data-testid":r,children:n})]})}function me({label:a,state:n="active",className:s,render:l}){return e.jsxs("div",{className:d([m.column,s]),"data-state":n,children:[e.jsx("span",{className:m.label,children:a}),l(m.clock)]})}function ue({state:a,value:n,testId:s}){return e.jsxs("div",{className:m.column,"data-state":a,children:[e.jsxs("div",{className:m.label,children:[e.jsx("span",{className:m.over,children:"Over"}),e.jsx("span",{children:"/"}),e.jsx("span",{className:m.under,children:"Under"})]}),e.jsx("span",{className:m.clock,"data-testid":s,children:n})]})}const xe="_column_1lv0k_17",pe="_row_1lv0k_26",fe="_row2_1lv0k_33",be="_metadataRow_1lv0k_40",je="_labelledElement_1lv0k_47",ve="_icon_1lv0k_53",Te="_label_1lv0k_47",Ne="_time_1lv0k_65",he="_daySpan_1lv0k_72",_e="_muted_1lv0k_87",ye="_labelTitle_1lv0k_91",Ee="_dueTime_1lv0k_100",t={column:xe,row:pe,row2:fe,metadataRow:be,labelledElement:je,icon:ve,label:Te,time:Ne,daySpan:he,muted:_e,labelTitle:ye,dueTime:Ee},Se={format12:"hh:mm:ss a",format24:"HH:mm:ss"};function v(a,n){return a===null?h:n?$(a,Se):g(a,{fallback:h})}function $e({shouldFormat:a}){const{plannedEnd:n,plannedStart:s,actualStart:l}=D(),r=v(s,a),i=v(l,a),[x,c]=P.useMemo(()=>C(n),[n]),o=v(x,a),p=c>0,b=p?`Planned end time (rundown spans over ${c+1} days)`:"Planned end time";return e.jsxs("div",{className:t.column,children:[e.jsxs("div",{className:t.row,children:[e.jsx("span",{className:t.label,children:"Start"}),e.jsx(u,{text:"Planned start time",render:e.jsxs("div",{className:t.labelledElement,children:[e.jsx(y,{className:t.icon}),e.jsx(f,{className:d([t.time,s===null&&t.muted]),time:r})]})}),e.jsx(u,{text:"Actual start time",render:e.jsxs("div",{className:t.labelledElement,"data-testid":"actual-start-time",children:[e.jsx(A,{className:t.icon}),e.jsx(f,{className:d([t.time,l===null&&t.muted]),time:i})]})})]}),e.jsxs("div",{className:t.row,children:[e.jsx("span",{className:t.label,children:"End"}),e.jsx(u,{text:b,render:e.jsxs("div",{className:t.labelledElement,children:[e.jsx(y,{className:t.icon}),e.jsx(f,{className:d([t.time,n===null&&t.muted]),time:o}),p&&e.jsx("span",{className:d([t.time,t.daySpan]),"data-day-offset":c})]})}),e.jsx(we,{shouldFormat:a})]})]})}function Me({shouldFormat:a}){const{plannedEnd:n,plannedStart:s}=D(),l=v(s,a),[r,i]=P.useMemo(()=>C(n),[n]),x=v(r,a),c=i>0,o=c?`Planned end time (rundown spans over ${i+1} days)`:"Planned end time";return e.jsxs("div",{className:t.column,children:[e.jsxs("div",{className:t.row2,children:[e.jsx("span",{className:t.label,children:"Start"}),e.jsx(u,{text:"Planned start time",render:e.jsxs("div",{className:t.labelledElement,children:[e.jsx(y,{className:t.icon}),e.jsx(f,{className:d([t.time,s===null&&t.muted]),time:l})]})})]}),e.jsxs("div",{className:t.row2,children:[e.jsx("span",{className:t.label,children:"End"}),e.jsx(u,{text:o,render:e.jsxs("div",{className:t.labelledElement,children:[e.jsx(y,{className:t.icon}),e.jsx(f,{className:d([t.time,n===null&&t.muted]),time:x}),c&&e.jsx("span",{className:d([t.time,t.daySpan]),"data-day-offset":i})]})})]})]})}function we({shouldFormat:a}){const n=Y(),[s,l]=P.useMemo(()=>C(n),[n]),r=v(s,a),i=s!==null&&l>0,x=i?`Expected end time (rundown spans over ${l+1} days)`:"Expected end time";return e.jsx(u,{text:x,render:e.jsxs("div",{className:t.labelledElement,children:[e.jsx(z,{className:t.icon}),e.jsx(f,{className:d([t.time,s===null&&t.muted]),time:r}),i&&e.jsx("span",{className:d([t.time,t.daySpan]),"data-day-offset":l})]})})}function Ue(){return e.jsxs("div",{className:t.column,children:[e.jsx(ge,{}),e.jsx(ke,{})]})}function ge(){const{clock:a,mode:n,groupExpectedEnd:s,actualGroupStart:l,currentDay:r,playback:i}=Z(),x=ee(),c=F(x),o=O(i),p=(()=>{if(!o||!c||c.timeStart===null)return null;const N=a+r*j;return n===U.Absolute?c.timeStart+c.duration-N:l+c.duration-N})(),b=S(p,3,E.CountDown),_=s!==null?s-a:null,T=S(_,3,E.CountDown);return e.jsxs("div",{className:t.metadataRow,children:[e.jsx("span",{className:c!=null&&c.title?t.labelTitle:t.label,children:`${(c==null?void 0:c.title)||"Group"} `}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(u,{text:"Time to planned group end",render:e.jsx(V,{className:t.icon})}),e.jsx("span",{className:d([t.time,(!c||!o)&&t.muted,b==="due"&&t.dueTime]),children:b})]}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(u,{text:"Time to expected group end",render:e.jsx(H,{className:t.icon})}),e.jsx("span",{className:d([t.time,!s&&t.muted,T==="due"&&t.dueTime]),children:T})]})]})}function ke(){const{clock:a,mode:n,actualStart:s,plannedStart:l,playback:r,currentDay:i}=te(),{id:x,expectedStart:c}=ae(),o=F(x),p=O(r),b=(()=>{if(!p||!o)return null;const R=o.timeStart+o.dayOffset*j,G=a+i*j;return n===U.Absolute?R-G:R+s-l-G})(),_=S(b,3,E.CountDown),T=c!==null?c-a:null,N=S(T,3,E.CountDown),I=(o==null?void 0:o.title)??null;return e.jsxs("div",{className:t.metadataRow,children:[e.jsx("span",{className:I?t.labelTitle:t.label,children:`${I||"Flag"} `}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(u,{text:"Time to next flag planned start",render:e.jsx(W,{className:t.icon})}),e.jsx("span",{"data-testid":"flag-plannedStart",className:d([t.time,(!o||!p)&&t.muted,_==="due"&&t.dueTime]),children:_})]}),e.jsxs("div",{className:t.labelledElement,children:[e.jsx(u,{text:"Time to next flag expected start",render:e.jsx(q,{className:t.icon})}),e.jsx("span",{"data-testid":"flag-expectedStart",className:d([t.time,T===null&&t.muted,N==="due"&&t.dueTime]),children:N})]})]})}function Fe(){const{numEvents:a,selectedEventIndex:n}=M(),s=n!==null?n+1:k,l=a?`${s} of ${a||k}`:k;return e.jsx(w,{label:"Progress",value:l,state:n===null?"muted":"active"})}function Ae(){const{offset:a,playback:n}=X(),s=O(n),l=se(s?a:null),r=ne(s?a:null);return e.jsx(ue,{state:l,value:r,testId:"offset"})}function ze({shouldFormat:a,className:n}){const s=J(),l=a?$(s):g(s);return e.jsx(me,{label:"Time now",className:n,render:r=>e.jsx(f,{className:r,time:l})})}function Ve({className:a}){const n=Q(),s=n.phase===B.Pending,l=s?"Count to start":"Running timer",r=g(s?n.secondaryTimer:n.current,{fallback:h});function i(){return s?"waiting":n.current===null?"muted":"active"}return e.jsx(w,{label:l,value:r,state:i(),className:a})}function He(){const{numEvents:a}=M(),{plannedEnd:n,plannedStart:s}=D(),r=s!==null&&n!==null?L(n-s):h;return e.jsxs(e.Fragment,{children:[e.jsx(w,{label:"Total duration",value:r}),e.jsx(w,{label:"Events",value:String(a)})]})}export{ze as C,Ue as M,Ae as O,He as P,Me as S,Ve as T,$e as a,Fe as b,le as f};
|
|
2
|
+
//# sourceMappingURL=TimeElements-pDYJeFbV.js.map
|
|
Binary file
|
|
Binary file
|