@getontime/cli 4.3.0 → 4.3.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-CDH53Q_N.js → Backstage-D2lEbqUt.js} +2 -2
- package/client/assets/Backstage-D2lEbqUt.js.br +0 -0
- package/client/assets/Backstage-D2lEbqUt.js.gz +0 -0
- package/client/assets/{Backstage-CDH53Q_N.js.map → Backstage-D2lEbqUt.js.map} +1 -1
- package/client/assets/{Countdown-B-MuMf1C.js → Countdown-VV03STbF.js} +2 -2
- package/client/assets/Countdown-VV03STbF.js.br +0 -0
- package/client/assets/Countdown-VV03STbF.js.gz +0 -0
- package/client/assets/{Countdown-B-MuMf1C.js.map → Countdown-VV03STbF.js.map} +1 -1
- package/client/assets/{CustomTranslationModal-DiQbmcgD.js → CustomTranslationModal-D1nM9W1Z.js} +2 -2
- package/client/assets/CustomTranslationModal-D1nM9W1Z.js.br +0 -0
- package/client/assets/CustomTranslationModal-D1nM9W1Z.js.gz +0 -0
- package/client/assets/{CustomTranslationModal-DiQbmcgD.js.map → CustomTranslationModal-D1nM9W1Z.js.map} +1 -1
- package/client/assets/{DelayIndicator-D--91EO3.js → DelayIndicator-Co5rMYw9.js} +2 -2
- package/client/assets/DelayIndicator-Co5rMYw9.js.br +0 -0
- package/client/assets/DelayIndicator-Co5rMYw9.js.gz +0 -0
- package/client/assets/{DelayIndicator-D--91EO3.js.map → DelayIndicator-Co5rMYw9.js.map} +1 -1
- package/client/assets/{EditorFeatureWrapper-DwXUAV4k.js → EditorFeatureWrapper-_t_4D7Es.js} +2 -2
- package/client/assets/EditorFeatureWrapper-_t_4D7Es.js.br +0 -0
- package/client/assets/EditorFeatureWrapper-_t_4D7Es.js.gz +0 -0
- package/client/assets/{EditorFeatureWrapper-DwXUAV4k.js.map → EditorFeatureWrapper-_t_4D7Es.js.map} +1 -1
- package/client/assets/{EditorUtils-DuKjlUkF.js → EditorUtils-C3QoonjM.js} +2 -2
- package/client/assets/EditorUtils-C3QoonjM.js.br +0 -0
- package/client/assets/EditorUtils-C3QoonjM.js.gz +0 -0
- package/client/assets/{EditorUtils-DuKjlUkF.js.map → EditorUtils-C3QoonjM.js.map} +1 -1
- package/client/assets/{Empty-CJbZxh45.js → Empty-DJMjfXnt.js} +2 -2
- package/client/assets/Empty-DJMjfXnt.js.br +2 -0
- package/client/assets/Empty-DJMjfXnt.js.gz +0 -0
- package/client/assets/{Empty-CJbZxh45.js.map → Empty-DJMjfXnt.js.map} +1 -1
- package/client/assets/{EmptyPage-Bc358YpE.js → EmptyPage-BlXZqoIr.js} +2 -2
- package/client/assets/EmptyPage-BlXZqoIr.js.br +0 -0
- package/client/assets/EmptyPage-BlXZqoIr.js.gz +0 -0
- package/client/assets/{EmptyPage-Bc358YpE.js.map → EmptyPage-BlXZqoIr.js.map} +1 -1
- package/client/assets/{FollowButton-C6Fvaqh0.js → FollowButton-Dy5n1J2c.js} +2 -2
- package/client/assets/FollowButton-Dy5n1J2c.js.br +0 -0
- package/client/assets/FollowButton-Dy5n1J2c.js.gz +0 -0
- package/client/assets/{FollowButton-C6Fvaqh0.js.map → FollowButton-Dy5n1J2c.js.map} +1 -1
- package/client/assets/{MessageControlExport-GmOrvUik.js → MessageControlExport-CWQX8mH0.js} +3 -3
- package/client/assets/MessageControlExport-CWQX8mH0.js.br +0 -0
- package/client/assets/MessageControlExport-CWQX8mH0.js.gz +0 -0
- package/client/assets/{MessageControlExport-GmOrvUik.js.map → MessageControlExport-CWQX8mH0.js.map} +1 -1
- package/client/assets/{MilestoneEditor-BA0PVIQh.js → MilestoneEditor-CxWZdQ1B.js} +2 -2
- package/client/assets/MilestoneEditor-CxWZdQ1B.js.br +0 -0
- package/client/assets/MilestoneEditor-CxWZdQ1B.js.gz +0 -0
- package/client/assets/{MilestoneEditor-BA0PVIQh.js.map → MilestoneEditor-CxWZdQ1B.js.map} +1 -1
- package/client/assets/{Modal-BKx0PDGT.js → Modal-ePA-Go14.js} +2 -2
- package/client/assets/Modal-ePA-Go14.js.br +0 -0
- package/client/assets/Modal-ePA-Go14.js.gz +0 -0
- package/client/assets/{Modal-BKx0PDGT.js.map → Modal-ePA-Go14.js.map} +1 -1
- package/client/assets/{MultiPartProgressBar-BXdLxJpy.js → MultiPartProgressBar-GQaCHX4z.js} +2 -2
- package/client/assets/MultiPartProgressBar-GQaCHX4z.js.br +0 -0
- package/client/assets/MultiPartProgressBar-GQaCHX4z.js.gz +0 -0
- package/client/assets/{MultiPartProgressBar-BXdLxJpy.js.map → MultiPartProgressBar-GQaCHX4z.js.map} +1 -1
- package/client/assets/{OperatorExport-X7-qi2jv.js → OperatorExport-CRS08UXj.js} +2 -2
- package/client/assets/OperatorExport-CRS08UXj.js.br +0 -0
- package/client/assets/OperatorExport-CRS08UXj.js.gz +0 -0
- package/client/assets/{OperatorExport-X7-qi2jv.js.map → OperatorExport-CRS08UXj.js.map} +1 -1
- package/client/assets/{OverviewWrapper-BQb2xl_N.js → OverviewWrapper-BNRb3Ub_.js} +2 -2
- package/client/assets/OverviewWrapper-BNRb3Ub_.js.br +0 -0
- package/client/assets/OverviewWrapper-BNRb3Ub_.js.gz +0 -0
- package/client/assets/{OverviewWrapper-BQb2xl_N.js.map → OverviewWrapper-BNRb3Ub_.js.map} +1 -1
- package/client/assets/{PipHost-CvtlZIn7.js → PipHost-DNfEY6RN.js} +2 -2
- package/client/assets/PipHost-DNfEY6RN.js.br +0 -0
- package/client/assets/PipHost-DNfEY6RN.js.gz +0 -0
- package/client/assets/{PipHost-CvtlZIn7.js.map → PipHost-DNfEY6RN.js.map} +1 -1
- package/client/assets/{ProjectInfo-1tw48NHZ.js → ProjectInfo-KPf-pM8y.js} +2 -2
- package/client/assets/ProjectInfo-KPf-pM8y.js.br +0 -0
- package/client/assets/ProjectInfo-KPf-pM8y.js.gz +0 -0
- package/client/assets/{ProjectInfo-1tw48NHZ.js.map → ProjectInfo-KPf-pM8y.js.map} +1 -1
- package/client/assets/{ProtectRoute-BH-QvsU0.js → ProtectRoute-DW_vXgYI.js} +2 -2
- package/client/assets/ProtectRoute-DW_vXgYI.js.br +0 -0
- package/client/assets/ProtectRoute-DW_vXgYI.js.gz +0 -0
- package/client/assets/{ProtectRoute-BH-QvsU0.js.map → ProtectRoute-DW_vXgYI.js.map} +1 -1
- package/client/assets/{ProtectedCuesheet-CYBIcg1c.js → ProtectedCuesheet-CCVDLsK-.js} +2 -2
- package/client/assets/ProtectedCuesheet-CCVDLsK-.js.br +0 -0
- package/client/assets/ProtectedCuesheet-CCVDLsK-.js.gz +0 -0
- package/client/assets/{ProtectedCuesheet-CYBIcg1c.js.map → ProtectedCuesheet-CCVDLsK-.js.map} +1 -1
- package/client/assets/{ProtectedEditor-D_A75byA.js → ProtectedEditor-Ddu9vBS8.js} +3 -3
- package/client/assets/ProtectedEditor-Ddu9vBS8.js.br +0 -0
- package/client/assets/ProtectedEditor-Ddu9vBS8.js.gz +0 -0
- package/client/assets/ProtectedEditor-Ddu9vBS8.js.map +1 -0
- package/client/assets/{RundownEntry-bkqwx57t.js → RundownEntry-CpspmKD0.js} +2 -2
- package/client/assets/RundownEntry-CpspmKD0.js.br +0 -0
- package/client/assets/RundownEntry-CpspmKD0.js.gz +0 -0
- package/client/assets/{RundownEntry-bkqwx57t.js.map → RundownEntry-CpspmKD0.js.map} +1 -1
- package/client/assets/{RundownExport-EorsanA0.js → RundownExport-DhCryTUp.js} +3 -3
- package/client/assets/RundownExport-DhCryTUp.js.br +0 -0
- package/client/assets/RundownExport-DhCryTUp.js.gz +0 -0
- package/client/assets/{RundownExport-EorsanA0.js.map → RundownExport-DhCryTUp.js.map} +1 -1
- package/client/assets/{Select-BGGVCKqU.js → Select-ASOzxGFV.js} +2 -2
- package/client/assets/Select-ASOzxGFV.js.br +0 -0
- package/client/assets/Select-ASOzxGFV.js.gz +0 -0
- package/client/assets/{Select-BGGVCKqU.js.map → Select-ASOzxGFV.js.map} +1 -1
- package/client/assets/{Studio-BjNZ4l-W.js → Studio-D7evHV2Q.js} +2 -2
- package/client/assets/Studio-D7evHV2Q.js.br +0 -0
- package/client/assets/Studio-D7evHV2Q.js.gz +0 -0
- package/client/assets/{Studio-BjNZ4l-W.js.map → Studio-D7evHV2Q.js.map} +1 -1
- package/client/assets/{StyleEditor-CpciRLYh.js → StyleEditor-DYybY9tA.js} +2 -2
- package/client/assets/StyleEditor-DYybY9tA.js.br +0 -0
- package/client/assets/StyleEditor-DYybY9tA.js.gz +0 -0
- package/client/assets/{StyleEditor-CpciRLYh.js.map → StyleEditor-DYybY9tA.js.map} +1 -1
- package/client/assets/{SuperscriptPeriod-DsPdWN_s.js → SuperscriptPeriod-NmBzJhFK.js} +2 -2
- package/client/assets/SuperscriptPeriod-NmBzJhFK.js.br +0 -0
- package/client/assets/SuperscriptPeriod-NmBzJhFK.js.gz +0 -0
- package/client/assets/{SuperscriptPeriod-DsPdWN_s.js.map → SuperscriptPeriod-NmBzJhFK.js.map} +1 -1
- package/client/assets/{SuperscriptTime-CA6S2R55.js → SuperscriptTime-CA_8XRM6.js} +2 -2
- package/client/assets/SuperscriptTime-CA_8XRM6.js.br +0 -0
- package/client/assets/SuperscriptTime-CA_8XRM6.js.gz +0 -0
- package/client/assets/{SuperscriptTime-CA6S2R55.js.map → SuperscriptTime-CA_8XRM6.js.map} +1 -1
- package/client/assets/{SwatchPicker-Cm5Eicvv.js → SwatchPicker-C8eFQKBd.js} +2 -2
- package/client/assets/SwatchPicker-C8eFQKBd.js.br +0 -0
- package/client/assets/SwatchPicker-C8eFQKBd.js.gz +0 -0
- package/client/assets/{SwatchPicker-Cm5Eicvv.js.map → SwatchPicker-C8eFQKBd.js.map} +1 -1
- package/client/assets/{TimeElements-DbclWDbU.js → TimeElements-D3dl9gAM.js} +2 -2
- package/client/assets/TimeElements-D3dl9gAM.js.br +0 -0
- package/client/assets/TimeElements-D3dl9gAM.js.gz +0 -0
- package/client/assets/{TimeElements-DbclWDbU.js.map → TimeElements-D3dl9gAM.js.map} +1 -1
- package/client/assets/{TimeInput-C8DQoFXv.js → TimeInput-DR-NCEhH.js} +2 -2
- package/client/assets/TimeInput-DR-NCEhH.js.br +0 -0
- package/client/assets/TimeInput-DR-NCEhH.js.gz +0 -0
- package/client/assets/{TimeInput-C8DQoFXv.js.map → TimeInput-DR-NCEhH.js.map} +1 -1
- package/client/assets/{TimelinePage-Cgtl1qNp.js → TimelinePage-BfTV9IdT.js} +2 -2
- package/client/assets/TimelinePage-BfTV9IdT.js.br +0 -0
- package/client/assets/TimelinePage-BfTV9IdT.js.gz +0 -0
- package/client/assets/{TimelinePage-Cgtl1qNp.js.map → TimelinePage-BfTV9IdT.js.map} +1 -1
- package/client/assets/{Timer-BbixOGdj.js → Timer-DvqDm4yX.js} +2 -2
- package/client/assets/Timer-DvqDm4yX.js.br +0 -0
- package/client/assets/Timer-DvqDm4yX.js.gz +0 -0
- package/client/assets/{Timer-BbixOGdj.js.map → Timer-DvqDm4yX.js.map} +1 -1
- package/client/assets/{TimerControlExport-Dx3SSGNG.js → TimerControlExport-CQQ2KxqK.js} +2 -2
- package/client/assets/TimerControlExport-CQQ2KxqK.js.br +0 -0
- package/client/assets/TimerControlExport-CQQ2KxqK.js.gz +0 -0
- package/client/assets/{TimerControlExport-Dx3SSGNG.js.map → TimerControlExport-CQQ2KxqK.js.map} +1 -1
- package/client/assets/{TitleCard-Xdr7xwzU.js → TitleCard-AESdy7kI.js} +2 -2
- package/client/assets/TitleCard-AESdy7kI.js.br +0 -0
- package/client/assets/TitleCard-AESdy7kI.js.gz +0 -0
- package/client/assets/{TitleCard-Xdr7xwzU.js.map → TitleCard-AESdy7kI.js.map} +1 -1
- package/client/assets/{Tooltip-B5vsLcFu.js → Tooltip-BTK4bJkV.js} +2 -2
- package/client/assets/Tooltip-BTK4bJkV.js.br +0 -0
- package/client/assets/Tooltip-BTK4bJkV.js.gz +0 -0
- package/client/assets/{Tooltip-B5vsLcFu.js.map → Tooltip-BTK4bJkV.js.map} +1 -1
- package/client/assets/ViewLogo-BZVUUIZA.js +2 -0
- package/client/assets/ViewLogo-BZVUUIZA.js.br +0 -0
- package/client/assets/ViewLogo-BZVUUIZA.js.gz +0 -0
- package/client/assets/ViewLogo-BZVUUIZA.js.map +1 -0
- package/client/assets/{ViewParamsEditor-C2-TRP6e.js → ViewParamsEditor-CBnRitZ4.js} +2 -2
- package/client/assets/ViewParamsEditor-CBnRitZ4.js.br +0 -0
- package/client/assets/ViewParamsEditor-CBnRitZ4.js.gz +0 -0
- package/client/assets/{ViewParamsEditor-C2-TRP6e.js.map → ViewParamsEditor-CBnRitZ4.js.map} +1 -1
- package/client/assets/{dateConfig-D7xim1t4.js → dateConfig-Crm-Cu2y.js} +2 -2
- package/client/assets/dateConfig-Crm-Cu2y.js.br +0 -0
- package/client/assets/dateConfig-Crm-Cu2y.js.gz +0 -0
- package/client/assets/{dateConfig-D7xim1t4.js.map → dateConfig-Crm-Cu2y.js.map} +1 -1
- package/client/assets/{editorSettings-D2f7e1a6.js → editorSettings-CRJwIW7V.js} +2 -2
- package/client/assets/editorSettings-CRJwIW7V.js.br +0 -0
- package/client/assets/editorSettings-CRJwIW7V.js.gz +0 -0
- package/client/assets/{editorSettings-D2f7e1a6.js.map → editorSettings-CRJwIW7V.js.map} +1 -1
- package/client/assets/{getProgress-cLuBFPjh.js → getProgress-fD6vhbNF.js} +2 -2
- package/client/assets/getProgress-fD6vhbNF.js.br +0 -0
- package/client/assets/getProgress-fD6vhbNF.js.gz +0 -0
- package/client/assets/{getProgress-cLuBFPjh.js.map → getProgress-fD6vhbNF.js.map} +1 -1
- package/client/assets/{index-B81u4hxi.js → index-B1K7rED_.js} +3 -3
- package/client/assets/index-B1K7rED_.js.br +0 -0
- package/client/assets/index-B1K7rED_.js.gz +0 -0
- package/client/assets/index-B1K7rED_.js.map +1 -0
- package/client/assets/{index-D6S93MXv.css → index-BAvwULMi.css} +1 -1
- package/client/assets/index-BAvwULMi.css.br +0 -0
- package/client/assets/{index-D6S93MXv.css.gz → index-BAvwULMi.css.gz} +0 -0
- package/client/assets/{offset-R98EXhWK.js → offset-FplkvYRD.js} +2 -2
- package/client/assets/offset-FplkvYRD.js.br +0 -0
- package/client/assets/offset-FplkvYRD.js.gz +0 -0
- package/client/assets/{offset-R98EXhWK.js.map → offset-FplkvYRD.js.map} +1 -1
- package/client/assets/{parseUserTime-YeFR8t3F.js → parseUserTime-0pNWLcr0.js} +2 -2
- package/client/assets/parseUserTime-0pNWLcr0.js.br +0 -0
- package/client/assets/parseUserTime-0pNWLcr0.js.gz +0 -0
- package/client/assets/{parseUserTime-YeFR8t3F.js.map → parseUserTime-0pNWLcr0.js.map} +1 -1
- package/client/assets/{playbackstate-CPQdnF-k.js → playbackstate-1HCEpVh5.js} +2 -2
- package/client/assets/playbackstate-1HCEpVh5.js.br +0 -0
- package/client/assets/playbackstate-1HCEpVh5.js.gz +0 -0
- package/client/assets/{playbackstate-CPQdnF-k.js.map → playbackstate-1HCEpVh5.js.map} +1 -1
- package/client/assets/{presentation.utils-Cl-L3pHN.js → presentation.utils-CLt2UhON.js} +2 -2
- package/client/assets/presentation.utils-CLt2UhON.js.br +0 -0
- package/client/assets/presentation.utils-CLt2UhON.js.gz +0 -0
- package/client/assets/{presentation.utils-Cl-L3pHN.js.map → presentation.utils-CLt2UhON.js.map} +1 -1
- package/client/assets/{rundownUtils-CtVGQDQn.js → rundownUtils-D1oJpMdx.js} +2 -2
- package/client/assets/rundownUtils-D1oJpMdx.js.br +0 -0
- package/client/assets/rundownUtils-D1oJpMdx.js.gz +0 -0
- package/client/assets/{rundownUtils-CtVGQDQn.js.map → rundownUtils-D1oJpMdx.js.map} +1 -1
- package/client/assets/{timer.utils-rGyI9NYa.js → timer.utils-FiqT1yNa.js} +2 -2
- package/client/assets/timer.utils-FiqT1yNa.js.br +0 -0
- package/client/assets/timer.utils-FiqT1yNa.js.gz +0 -0
- package/client/assets/{timer.utils-rGyI9NYa.js.map → timer.utils-FiqT1yNa.js.map} +1 -1
- package/client/assets/{useCustomFields-k4piRt9n.js → useCustomFields-nW-_Zyfw.js} +2 -2
- package/client/assets/useCustomFields-nW-_Zyfw.js.br +0 -0
- package/client/assets/useCustomFields-nW-_Zyfw.js.gz +0 -0
- package/client/assets/{useCustomFields-k4piRt9n.js.map → useCustomFields-nW-_Zyfw.js.map} +1 -1
- package/client/assets/{useFollowComponent-B7vvPzG2.js → useFollowComponent-4cbKEsVz.js} +2 -2
- package/client/assets/useFollowComponent-4cbKEsVz.js.br +0 -0
- package/client/assets/useFollowComponent-4cbKEsVz.js.gz +0 -0
- package/client/assets/{useFollowComponent-B7vvPzG2.js.map → useFollowComponent-4cbKEsVz.js.map} +1 -1
- package/client/assets/{useProjectData-DdgKoYzk.js → useProjectData-DP-pr73E.js} +2 -2
- package/client/assets/useProjectData-DP-pr73E.js.br +0 -0
- package/client/assets/useProjectData-DP-pr73E.js.gz +0 -0
- package/client/assets/{useProjectData-DdgKoYzk.js.map → useProjectData-DP-pr73E.js.map} +1 -1
- package/client/assets/{useReport-DSuFnUb9.js → useReport-6XA_s2Vc.js} +2 -2
- package/client/assets/useReport-6XA_s2Vc.js.br +0 -0
- package/client/assets/useReport-6XA_s2Vc.js.gz +0 -0
- package/client/assets/{useReport-DSuFnUb9.js.map → useReport-6XA_s2Vc.js.map} +1 -1
- package/client/assets/{useRundown-Bn6ZPsz0.js → useRundown-BGhL8DEI.js} +2 -2
- package/client/assets/useRundown-BGhL8DEI.js.br +0 -0
- package/client/assets/useRundown-BGhL8DEI.js.gz +0 -0
- package/client/assets/{useRundown-Bn6ZPsz0.js.map → useRundown-BGhL8DEI.js.map} +1 -1
- package/client/assets/{useWindowTitle-Bpmo_HzW.js → useWindowTitle-ahZQIheF.js} +2 -2
- package/client/assets/useWindowTitle-ahZQIheF.js.br +0 -0
- package/client/assets/useWindowTitle-ahZQIheF.js.gz +0 -0
- package/client/assets/{useWindowTitle-Bpmo_HzW.js.map → useWindowTitle-ahZQIheF.js.map} +1 -1
- package/client/assets/{validateEvent-Do8yE_DJ.js → validateEvent-jVIMKhmx.js} +2 -2
- package/client/assets/validateEvent-jVIMKhmx.js.br +0 -0
- package/client/assets/validateEvent-jVIMKhmx.js.gz +0 -0
- package/client/assets/{validateEvent-Do8yE_DJ.js.map → validateEvent-jVIMKhmx.js.map} +1 -1
- package/client/assets/{vendor-q6fv0YT2.js → vendor-DmGkEtRj.js} +2 -2
- package/client/assets/vendor-DmGkEtRj.js.br +0 -0
- package/client/assets/vendor-DmGkEtRj.js.gz +0 -0
- package/client/assets/{vendor-q6fv0YT2.js.map → vendor-DmGkEtRj.js.map} +1 -1
- package/client/assets/{viewLoader.utils-b42scp-I.js → viewLoader.utils-Bniie8Op.js} +2 -2
- package/client/assets/viewLoader.utils-Bniie8Op.js.br +0 -0
- package/client/assets/viewLoader.utils-Bniie8Op.js.gz +0 -0
- package/client/assets/{viewLoader.utils-b42scp-I.js.map → viewLoader.utils-Bniie8Op.js.map} +1 -1
- package/client/assets/{viewUtils-B8Dr4GHH.js → viewUtils-VNLYoR28.js} +2 -2
- package/client/assets/viewUtils-VNLYoR28.js.br +0 -0
- package/client/assets/viewUtils-VNLYoR28.js.gz +0 -0
- package/client/assets/{viewUtils-B8Dr4GHH.js.map → viewUtils-VNLYoR28.js.map} +1 -1
- package/client/index.html +3 -3
- package/package.json +1 -1
- package/server/index.cjs +74 -74
- package/client/assets/Backstage-CDH53Q_N.js.br +0 -0
- package/client/assets/Backstage-CDH53Q_N.js.gz +0 -0
- package/client/assets/Countdown-B-MuMf1C.js.br +0 -0
- package/client/assets/Countdown-B-MuMf1C.js.gz +0 -0
- package/client/assets/CustomTranslationModal-DiQbmcgD.js.br +0 -0
- package/client/assets/CustomTranslationModal-DiQbmcgD.js.gz +0 -0
- package/client/assets/DelayIndicator-D--91EO3.js.br +0 -0
- package/client/assets/DelayIndicator-D--91EO3.js.gz +0 -0
- package/client/assets/EditorFeatureWrapper-DwXUAV4k.js.br +0 -0
- package/client/assets/EditorFeatureWrapper-DwXUAV4k.js.gz +0 -0
- package/client/assets/EditorUtils-DuKjlUkF.js.br +0 -0
- package/client/assets/EditorUtils-DuKjlUkF.js.gz +0 -0
- package/client/assets/Empty-CJbZxh45.js.br +0 -0
- package/client/assets/Empty-CJbZxh45.js.gz +0 -0
- package/client/assets/EmptyPage-Bc358YpE.js.br +0 -5
- package/client/assets/EmptyPage-Bc358YpE.js.gz +0 -0
- package/client/assets/FollowButton-C6Fvaqh0.js.br +0 -0
- package/client/assets/FollowButton-C6Fvaqh0.js.gz +0 -0
- package/client/assets/MessageControlExport-GmOrvUik.js.br +0 -0
- package/client/assets/MessageControlExport-GmOrvUik.js.gz +0 -0
- package/client/assets/MilestoneEditor-BA0PVIQh.js.br +0 -0
- package/client/assets/MilestoneEditor-BA0PVIQh.js.gz +0 -0
- package/client/assets/Modal-BKx0PDGT.js.br +0 -0
- package/client/assets/Modal-BKx0PDGT.js.gz +0 -0
- package/client/assets/MultiPartProgressBar-BXdLxJpy.js.br +0 -0
- package/client/assets/MultiPartProgressBar-BXdLxJpy.js.gz +0 -0
- package/client/assets/OperatorExport-X7-qi2jv.js.br +0 -0
- package/client/assets/OperatorExport-X7-qi2jv.js.gz +0 -0
- package/client/assets/OverviewWrapper-BQb2xl_N.js.br +0 -0
- package/client/assets/OverviewWrapper-BQb2xl_N.js.gz +0 -0
- package/client/assets/PipHost-CvtlZIn7.js.br +0 -0
- package/client/assets/PipHost-CvtlZIn7.js.gz +0 -0
- package/client/assets/ProjectInfo-1tw48NHZ.js.br +0 -0
- package/client/assets/ProjectInfo-1tw48NHZ.js.gz +0 -0
- package/client/assets/ProtectRoute-BH-QvsU0.js.br +0 -0
- package/client/assets/ProtectRoute-BH-QvsU0.js.gz +0 -0
- package/client/assets/ProtectedCuesheet-CYBIcg1c.js.br +0 -0
- package/client/assets/ProtectedCuesheet-CYBIcg1c.js.gz +0 -0
- package/client/assets/ProtectedEditor-D_A75byA.js.br +0 -0
- package/client/assets/ProtectedEditor-D_A75byA.js.gz +0 -0
- package/client/assets/ProtectedEditor-D_A75byA.js.map +0 -1
- package/client/assets/RundownEntry-bkqwx57t.js.br +0 -0
- package/client/assets/RundownEntry-bkqwx57t.js.gz +0 -0
- package/client/assets/RundownExport-EorsanA0.js.br +0 -0
- package/client/assets/RundownExport-EorsanA0.js.gz +0 -0
- package/client/assets/Select-BGGVCKqU.js.br +0 -0
- package/client/assets/Select-BGGVCKqU.js.gz +0 -0
- package/client/assets/Studio-BjNZ4l-W.js.br +0 -0
- package/client/assets/Studio-BjNZ4l-W.js.gz +0 -0
- package/client/assets/StyleEditor-CpciRLYh.js.br +0 -0
- package/client/assets/StyleEditor-CpciRLYh.js.gz +0 -0
- package/client/assets/SuperscriptPeriod-DsPdWN_s.js.br +0 -0
- package/client/assets/SuperscriptPeriod-DsPdWN_s.js.gz +0 -0
- package/client/assets/SuperscriptTime-CA6S2R55.js.br +0 -0
- package/client/assets/SuperscriptTime-CA6S2R55.js.gz +0 -0
- package/client/assets/SwatchPicker-Cm5Eicvv.js.br +0 -0
- package/client/assets/SwatchPicker-Cm5Eicvv.js.gz +0 -0
- package/client/assets/TimeElements-DbclWDbU.js.br +0 -0
- package/client/assets/TimeElements-DbclWDbU.js.gz +0 -0
- package/client/assets/TimeInput-C8DQoFXv.js.br +0 -0
- package/client/assets/TimeInput-C8DQoFXv.js.gz +0 -0
- package/client/assets/TimelinePage-Cgtl1qNp.js.br +0 -0
- package/client/assets/TimelinePage-Cgtl1qNp.js.gz +0 -0
- package/client/assets/Timer-BbixOGdj.js.br +0 -0
- package/client/assets/Timer-BbixOGdj.js.gz +0 -0
- package/client/assets/TimerControlExport-Dx3SSGNG.js.br +0 -0
- package/client/assets/TimerControlExport-Dx3SSGNG.js.gz +0 -0
- package/client/assets/TitleCard-Xdr7xwzU.js.br +0 -0
- package/client/assets/TitleCard-Xdr7xwzU.js.gz +0 -0
- package/client/assets/Tooltip-B5vsLcFu.js.br +0 -0
- package/client/assets/Tooltip-B5vsLcFu.js.gz +0 -0
- package/client/assets/ViewLogo-G7EosFIr.js +0 -2
- package/client/assets/ViewLogo-G7EosFIr.js.br +0 -0
- package/client/assets/ViewLogo-G7EosFIr.js.gz +0 -0
- package/client/assets/ViewLogo-G7EosFIr.js.map +0 -1
- package/client/assets/ViewParamsEditor-C2-TRP6e.js.br +0 -0
- package/client/assets/ViewParamsEditor-C2-TRP6e.js.gz +0 -0
- package/client/assets/dateConfig-D7xim1t4.js.br +0 -0
- package/client/assets/dateConfig-D7xim1t4.js.gz +0 -0
- package/client/assets/editorSettings-D2f7e1a6.js.br +0 -0
- package/client/assets/editorSettings-D2f7e1a6.js.gz +0 -0
- package/client/assets/getProgress-cLuBFPjh.js.br +0 -0
- package/client/assets/getProgress-cLuBFPjh.js.gz +0 -0
- package/client/assets/index-B81u4hxi.js.br +0 -0
- package/client/assets/index-B81u4hxi.js.gz +0 -0
- package/client/assets/index-B81u4hxi.js.map +0 -1
- package/client/assets/index-D6S93MXv.css.br +0 -0
- package/client/assets/offset-R98EXhWK.js.br +0 -0
- package/client/assets/offset-R98EXhWK.js.gz +0 -0
- package/client/assets/parseUserTime-YeFR8t3F.js.br +0 -0
- package/client/assets/parseUserTime-YeFR8t3F.js.gz +0 -0
- package/client/assets/playbackstate-CPQdnF-k.js.br +0 -0
- package/client/assets/playbackstate-CPQdnF-k.js.gz +0 -0
- package/client/assets/presentation.utils-Cl-L3pHN.js.br +0 -0
- package/client/assets/presentation.utils-Cl-L3pHN.js.gz +0 -0
- package/client/assets/rundownUtils-CtVGQDQn.js.br +0 -0
- package/client/assets/rundownUtils-CtVGQDQn.js.gz +0 -0
- package/client/assets/timer.utils-rGyI9NYa.js.br +0 -0
- package/client/assets/timer.utils-rGyI9NYa.js.gz +0 -0
- package/client/assets/useCustomFields-k4piRt9n.js.br +0 -0
- package/client/assets/useCustomFields-k4piRt9n.js.gz +0 -0
- package/client/assets/useFollowComponent-B7vvPzG2.js.br +0 -0
- package/client/assets/useFollowComponent-B7vvPzG2.js.gz +0 -0
- package/client/assets/useProjectData-DdgKoYzk.js.br +0 -0
- package/client/assets/useProjectData-DdgKoYzk.js.gz +0 -0
- package/client/assets/useReport-DSuFnUb9.js.br +0 -0
- package/client/assets/useReport-DSuFnUb9.js.gz +0 -0
- package/client/assets/useRundown-Bn6ZPsz0.js.br +0 -0
- package/client/assets/useRundown-Bn6ZPsz0.js.gz +0 -0
- package/client/assets/useWindowTitle-Bpmo_HzW.js.br +0 -0
- package/client/assets/useWindowTitle-Bpmo_HzW.js.gz +0 -0
- package/client/assets/validateEvent-Do8yE_DJ.js.br +0 -3
- package/client/assets/validateEvent-Do8yE_DJ.js.gz +0 -0
- package/client/assets/vendor-q6fv0YT2.js.br +0 -0
- package/client/assets/vendor-q6fv0YT2.js.gz +0 -0
- package/client/assets/viewLoader.utils-b42scp-I.js.br +0 -0
- package/client/assets/viewLoader.utils-b42scp-I.js.gz +0 -0
- package/client/assets/viewUtils-B8Dr4GHH.js.br +0 -0
- package/client/assets/viewUtils-B8Dr4GHH.js.gz +0 -0
package/client/assets/{MessageControlExport-GmOrvUik.js.map → MessageControlExport-CWQX8mH0.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":"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","names":["InputRow","props","label","placeholder","text","visible","changeHandler","children","value","setValue","useState","inputRef","useRef","cursorPositionRef","useEffect","current","document","activeElement","selectionStart","selectionEnd","handleInputChange","event","target","jsx","cx","style","active","jsxs","inputItems","Input","isPipSupported","window","PipTimerHost","lazy","__vitePreload","memo","PipRoot","Suspense","secondarySourceLabels","aux1","aux2","aux3","secondary","TimerPreview","blink","blackout","countToEnd","phase","secondarySource","showTimerMessage","timerType","useMessagePreview","data","useViewSettings","main","TimerType","None","timerPlaceholder","TimerPhase","Pending","Overtime","Clock","overrideColour","Warning","warningColor","Danger","dangerColor","normalColor","showColourOverride","contentClasses","preview","CornerWithPip","handleLinks","mainContent","secondaryContent","eventStatus","Tooltip","statusIcon","CountDown","IoArrowDown","CountUp","IoArrowUp","IoTime","IoBan","LuArrowDownToLine","TimerControlsPreview","useTimerViewControl","previewContainer","options","SecondarySourceControl","Editor.Separator","Button","setMessage","timerBlink","timerBlackout","toggleSecondary","timerSecondarySource","Fragment","Select","MessageControl","TimerMessageInput","SecondaryInput","useTimerMessageInput","newValue","timerText","IconButton","timerVisible","IoEye","IoEyeOffOutline","useSecondaryMessageInput","secondaryMessage","MessageControlExport","isExtracted","location","pathname","includes","ProtectRoute","Editor.Panel","growPanel","Editor.CornerExtract","ViewNavigationMenu","getIsNavigationLocked","contentLayout","ErrorBoundary"],"ignoreList":[],"sources":["../../src/features/control/message/InputRow.tsx","../../src/views/editor/pip-timer/pip.utils.ts","../../src/views/editor/pip-timer/PipRoot.tsx","../../src/features/control/message/TimerPreview.tsx","../../src/features/control/message/TimerViewControl.tsx","../../src/features/control/message/MessageControl.tsx","../../src/features/control/message/MessageControlExport.tsx"],"sourcesContent":["import { PropsWithChildren, useEffect, useRef, useState } from 'react';\n\nimport Input from '../../../common/components/input/input/Input';\nimport { cx } from '../../../common/utils/styleUtils';\n\nimport style from './InputRow.module.scss';\n\ninterface InputRowProps {\n label: string;\n placeholder: string;\n text: string;\n visible: boolean;\n changeHandler: (newValue: string) => void;\n}\n\nexport default function InputRow(props: PropsWithChildren<InputRowProps>) {\n const { label, placeholder, text, visible, changeHandler, children } = props;\n\n const [value, setValue] = useState(text);\n const inputRef = useRef<HTMLInputElement>(null);\n const cursorPositionRef = useRef(0);\n\n // sync cursor position with text\n useEffect(() => {\n if (inputRef.current && inputRef.current !== document.activeElement) {\n inputRef.current.selectionStart = cursorPositionRef.current;\n inputRef.current.selectionEnd = cursorPositionRef.current;\n }\n }, [text]);\n\n // synchronise external text\n useEffect(() => {\n if (inputRef.current !== document.activeElement) {\n setValue(text);\n }\n }, [text]);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n cursorPositionRef.current = event.target.selectionStart ?? 0;\n setValue(event.target.value);\n changeHandler(event.target.value);\n };\n\n return (\n <div>\n <label className={cx([style.label, visible ?? style.active])} htmlFor={label}>\n {label}\n </label>\n <div className={style.inputItems}>\n <Input id={label} ref={inputRef} value={value} onChange={handleInputChange} placeholder={placeholder} />\n {children}\n </div>\n </div>\n );\n}\n","export const isPipSupported = 'documentPictureInPicture' in window;\n","import { lazy, memo, Suspense } from 'react';\n\nimport { isPipSupported } from './pip.utils';\n\nconst PipTimerHost = lazy(() => import('./PipHost'));\n\nexport default memo(PipRoot);\nfunction PipRoot() {\n if (!isPipSupported) {\n return null;\n }\n\n return (\n <Suspense fallback={null}>\n <PipTimerHost />\n </Suspense>\n );\n}\n","import { IoArrowDown, IoArrowUp, IoBan, IoTime } from 'react-icons/io5';\nimport { LuArrowDownToLine } from 'react-icons/lu';\nimport { TimerPhase, TimerType } from 'ontime-types';\n\nimport { CornerWithPip } from '../../../common/components/editor-utils/EditorUtils';\nimport Tooltip from '../../../common/components/tooltip/Tooltip';\nimport { useMessagePreview } from '../../../common/hooks/useSocket';\nimport useViewSettings from '../../../common/hooks-query/useViewSettings';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { cx, timerPlaceholder } from '../../../common/utils/styleUtils';\nimport PipRoot from '../../../views/editor/pip-timer/PipRoot';\n\nimport style from './TimerPreview.module.scss';\n\nconst secondarySourceLabels: Record<string, string> = {\n aux1: 'Aux 1',\n aux2: 'Aux 2',\n aux3: 'Aux 3',\n secondary: 'Secondary message',\n};\n\nexport default function TimerPreview() {\n const { blink, blackout, countToEnd, phase, secondarySource, showTimerMessage, timerType } = useMessagePreview();\n const { data } = useViewSettings();\n\n const main = (() => {\n if (showTimerMessage) return 'Message';\n if (timerType === TimerType.None) return timerPlaceholder;\n if (phase === TimerPhase.Pending) return 'Standby to start';\n if (phase === TimerPhase.Overtime) return 'Timer Overtime';\n if (timerType === TimerType.Clock) return 'Clock';\n if (countToEnd) return 'Count to End';\n return 'Timer';\n })();\n\n const secondary = (() => {\n // message is a fullscreen overlay or secondary is not active\n if (showTimerMessage || !secondarySource) return null;\n\n // we need to check aux first since it takes priority\n return secondarySourceLabels[secondarySource];\n })();\n\n const overrideColour = (() => {\n // override fallback colours from starter project\n if (phase === TimerPhase.Warning) return data.warningColor ?? '#ffa528';\n if (phase === TimerPhase.Danger) return data.dangerColor ?? '#ff7300';\n return data.normalColor ?? '#FFFC';\n })();\n\n const showColourOverride = main == 'Timer';\n const contentClasses = cx([blink && style.blink, blackout && style.blackout]);\n\n return (\n <div className={style.preview}>\n <CornerWithPip onExtractClick={(event) => handleLinks('timer', event)} pipElement={<PipRoot />} />\n <div className={contentClasses}>\n <div\n className={style.mainContent}\n data-phase={showColourOverride && phase}\n style={showColourOverride ? { '--override-colour': overrideColour } : {}}\n >\n {main}\n </div>\n {secondary !== null && <div className={style.secondaryContent}>{secondary}</div>}\n </div>\n <div className={style.eventStatus}>\n <Tooltip\n text='Time type: Count down'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountDown}\n >\n <IoArrowDown />\n </Tooltip>\n <Tooltip\n text='Time type: Count up'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountUp}\n >\n <IoArrowUp />\n </Tooltip>\n <Tooltip\n text='Time type: Clock'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.Clock}\n >\n <IoTime />\n </Tooltip>\n <Tooltip\n text='Time type: None'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.None}\n >\n <IoBan />\n </Tooltip>\n <Tooltip\n text={countToEnd ? 'Count to end' : 'Count duration'}\n render={<span />}\n className={style.statusIcon}\n data-active={countToEnd}\n >\n <LuArrowDownToLine />\n </Tooltip>\n </div>\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport { SecondarySource } from 'ontime-types';\n\nimport Button from '../../../common/components/buttons/Button';\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport Select from '../../../common/components/select/Select';\nimport { setMessage, useTimerViewControl } from '../../../common/hooks/useSocket';\n\nimport TimerPreview from './TimerPreview';\n\nimport style from './TimerViewControl.module.scss';\n\nexport default function TimerControlsPreview() {\n const { blackout, blink } = useTimerViewControl();\n\n return (\n <div className={style.previewContainer}>\n <TimerPreview />\n <div className={style.options}>\n <SecondarySourceControl />\n\n <Editor.Separator orientation='horizontal' />\n\n <Button\n variant={blink ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlink(!blink)}\n data-testid='toggle timer blink'\n >\n Blink\n </Button>\n <Button\n variant={blackout ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlackout(!blackout)}\n data-testid='toggle timer blackout'\n >\n Blackout screen\n </Button>\n </div>\n </div>\n );\n}\n\nfunction SecondarySourceControl() {\n const { secondarySource } = useTimerViewControl();\n const [value, setValue] = useState<SecondarySource>('aux1');\n\n // sync secondary source with external changes\n useEffect(() => {\n if (secondarySource !== null) {\n setValue(secondarySource);\n }\n }, [secondarySource]);\n\n const toggleSecondary = () => {\n if (secondarySource === value) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource(value);\n }\n };\n\n return (\n <>\n <Select\n value={value}\n options={[\n { value: 'aux1', label: 'Aux 1' },\n { value: 'aux2', label: 'Aux 2' },\n { value: 'aux3', label: 'Aux 3' },\n { value: 'secondary', label: 'Secondary message' },\n ]}\n onValueChange={(value: SecondarySource | null) => {\n if (value === null) return;\n // we can only update the remote if it is enabled\n if (secondarySource !== null) {\n setMessage.timerSecondarySource(value);\n }\n setValue(value);\n }}\n />\n <Button\n variant={secondarySource !== null ? 'primary' : 'subtle'}\n fluid\n onClick={toggleSecondary}\n data-testid='toggle secondary'\n >\n Show secondary\n </Button>\n </>\n );\n}\n","import { IoEye, IoEyeOffOutline } from 'react-icons/io5';\n\nimport IconButton from '../../../common/components/buttons/IconButton';\nimport {\n setMessage,\n useExternalMessageInput as useSecondaryMessageInput,\n useTimerMessageInput,\n} from '../../../common/hooks/useSocket';\n\nimport InputRow from './InputRow';\nimport TimerControlsPreview from './TimerViewControl';\n\nexport default function MessageControl() {\n return (\n <>\n <TimerControlsPreview />\n <TimerMessageInput />\n <SecondaryInput />\n </>\n );\n}\n\nfunction TimerMessageInput() {\n const { text, visible } = useTimerMessageInput();\n\n return (\n <InputRow\n label='Timer Message'\n placeholder='Message shown fullscreen in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.timerText(newValue)}\n >\n <IconButton\n aria-label='Toggle timer message visibility'\n onClick={() => setMessage.timerVisible(!visible)}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n\nfunction SecondaryInput() {\n const { text, visible } = useSecondaryMessageInput();\n\n const toggleSecondary = () => {\n if (visible) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource('secondary');\n }\n };\n\n return (\n <InputRow\n label='Secondary Message'\n placeholder='Message shown as secondary text in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.secondaryMessage(newValue)}\n >\n <IconButton\n aria-label='Toggle secondary message visibility'\n onClick={toggleSecondary}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n","import { memo } from 'react';\n\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport ErrorBoundary from '../../../common/components/error-boundary/ErrorBoundary';\nimport ViewNavigationMenu from '../../../common/components/navigation-menu/ViewNavigationMenu';\nimport ProtectRoute from '../../../common/components/protect-route/ProtectRoute';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { getIsNavigationLocked } from '../../../externals';\n\nimport MessageControl from './MessageControl';\n\nimport style from './MessageControlExport.module.scss';\n\nexport default memo(MessageControlExport);\nfunction MessageControlExport() {\n const isExtracted = window.location.pathname.includes('/messagecontrol');\n\n return (\n <ProtectRoute permission='editor'>\n <Editor.Panel className={style.growPanel} data-testid='panel-messages-control'>\n {!isExtracted && <Editor.CornerExtract onClick={(event) => handleLinks('messagecontrol', event)} />}\n {isExtracted && <ViewNavigationMenu suppressSettings isNavigationLocked={getIsNavigationLocked()} />}\n\n <div className={style.contentLayout}>\n <ErrorBoundary>\n <MessageControl />\n </ErrorBoundary>\n </div>\n </Editor.Panel>\n </ProtectRoute>\n );\n}\n"],"file":"assets/MessageControlExport-GmOrvUik.js"}
|
|
1
|
+
{"version":3,"mappings":"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","names":["InputRow","props","label","placeholder","text","visible","changeHandler","children","value","setValue","useState","inputRef","useRef","cursorPositionRef","useEffect","current","document","activeElement","selectionStart","selectionEnd","handleInputChange","event","target","jsx","cx","style","active","jsxs","inputItems","Input","isPipSupported","window","PipTimerHost","lazy","__vitePreload","memo","PipRoot","Suspense","secondarySourceLabels","aux1","aux2","aux3","secondary","TimerPreview","blink","blackout","countToEnd","phase","secondarySource","showTimerMessage","timerType","useMessagePreview","data","useViewSettings","main","TimerType","None","timerPlaceholder","TimerPhase","Pending","Overtime","Clock","overrideColour","Warning","warningColor","Danger","dangerColor","normalColor","showColourOverride","contentClasses","preview","CornerWithPip","handleLinks","mainContent","secondaryContent","eventStatus","Tooltip","statusIcon","CountDown","IoArrowDown","CountUp","IoArrowUp","IoTime","IoBan","LuArrowDownToLine","TimerControlsPreview","useTimerViewControl","previewContainer","options","SecondarySourceControl","Editor.Separator","Button","setMessage","timerBlink","timerBlackout","toggleSecondary","timerSecondarySource","Fragment","Select","MessageControl","TimerMessageInput","SecondaryInput","useTimerMessageInput","newValue","timerText","IconButton","timerVisible","IoEye","IoEyeOffOutline","useSecondaryMessageInput","secondaryMessage","MessageControlExport","isExtracted","location","pathname","includes","ProtectRoute","Editor.Panel","growPanel","Editor.CornerExtract","ViewNavigationMenu","getIsNavigationLocked","contentLayout","ErrorBoundary"],"ignoreList":[],"sources":["../../src/features/control/message/InputRow.tsx","../../src/views/editor/pip-timer/pip.utils.ts","../../src/views/editor/pip-timer/PipRoot.tsx","../../src/features/control/message/TimerPreview.tsx","../../src/features/control/message/TimerViewControl.tsx","../../src/features/control/message/MessageControl.tsx","../../src/features/control/message/MessageControlExport.tsx"],"sourcesContent":["import { PropsWithChildren, useEffect, useRef, useState } from 'react';\n\nimport Input from '../../../common/components/input/input/Input';\nimport { cx } from '../../../common/utils/styleUtils';\n\nimport style from './InputRow.module.scss';\n\ninterface InputRowProps {\n label: string;\n placeholder: string;\n text: string;\n visible: boolean;\n changeHandler: (newValue: string) => void;\n}\n\nexport default function InputRow(props: PropsWithChildren<InputRowProps>) {\n const { label, placeholder, text, visible, changeHandler, children } = props;\n\n const [value, setValue] = useState(text);\n const inputRef = useRef<HTMLInputElement>(null);\n const cursorPositionRef = useRef(0);\n\n // sync cursor position with text\n useEffect(() => {\n if (inputRef.current && inputRef.current !== document.activeElement) {\n inputRef.current.selectionStart = cursorPositionRef.current;\n inputRef.current.selectionEnd = cursorPositionRef.current;\n }\n }, [text]);\n\n // synchronise external text\n useEffect(() => {\n if (inputRef.current !== document.activeElement) {\n setValue(text);\n }\n }, [text]);\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n cursorPositionRef.current = event.target.selectionStart ?? 0;\n setValue(event.target.value);\n changeHandler(event.target.value);\n };\n\n return (\n <div>\n <label className={cx([style.label, visible ?? style.active])} htmlFor={label}>\n {label}\n </label>\n <div className={style.inputItems}>\n <Input id={label} ref={inputRef} value={value} onChange={handleInputChange} placeholder={placeholder} />\n {children}\n </div>\n </div>\n );\n}\n","export const isPipSupported = 'documentPictureInPicture' in window;\n","import { lazy, memo, Suspense } from 'react';\n\nimport { isPipSupported } from './pip.utils';\n\nconst PipTimerHost = lazy(() => import('./PipHost'));\n\nexport default memo(PipRoot);\nfunction PipRoot() {\n if (!isPipSupported) {\n return null;\n }\n\n return (\n <Suspense fallback={null}>\n <PipTimerHost />\n </Suspense>\n );\n}\n","import { IoArrowDown, IoArrowUp, IoBan, IoTime } from 'react-icons/io5';\nimport { LuArrowDownToLine } from 'react-icons/lu';\nimport { TimerPhase, TimerType } from 'ontime-types';\n\nimport { CornerWithPip } from '../../../common/components/editor-utils/EditorUtils';\nimport Tooltip from '../../../common/components/tooltip/Tooltip';\nimport { useMessagePreview } from '../../../common/hooks/useSocket';\nimport useViewSettings from '../../../common/hooks-query/useViewSettings';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { cx, timerPlaceholder } from '../../../common/utils/styleUtils';\nimport PipRoot from '../../../views/editor/pip-timer/PipRoot';\n\nimport style from './TimerPreview.module.scss';\n\nconst secondarySourceLabels: Record<string, string> = {\n aux1: 'Aux 1',\n aux2: 'Aux 2',\n aux3: 'Aux 3',\n secondary: 'Secondary message',\n};\n\nexport default function TimerPreview() {\n const { blink, blackout, countToEnd, phase, secondarySource, showTimerMessage, timerType } = useMessagePreview();\n const { data } = useViewSettings();\n\n const main = (() => {\n if (showTimerMessage) return 'Message';\n if (timerType === TimerType.None) return timerPlaceholder;\n if (phase === TimerPhase.Pending) return 'Standby to start';\n if (phase === TimerPhase.Overtime) return 'Timer Overtime';\n if (timerType === TimerType.Clock) return 'Clock';\n if (countToEnd) return 'Count to End';\n return 'Timer';\n })();\n\n const secondary = (() => {\n // message is a fullscreen overlay or secondary is not active\n if (showTimerMessage || !secondarySource) return null;\n\n // we need to check aux first since it takes priority\n return secondarySourceLabels[secondarySource];\n })();\n\n const overrideColour = (() => {\n // override fallback colours from starter project\n if (phase === TimerPhase.Warning) return data.warningColor ?? '#ffa528';\n if (phase === TimerPhase.Danger) return data.dangerColor ?? '#ff7300';\n return data.normalColor ?? '#FFFC';\n })();\n\n const showColourOverride = main == 'Timer';\n const contentClasses = cx([blink && style.blink, blackout && style.blackout]);\n\n return (\n <div className={style.preview}>\n <CornerWithPip onExtractClick={(event) => handleLinks('timer', event)} pipElement={<PipRoot />} />\n <div className={contentClasses}>\n <div\n className={style.mainContent}\n data-phase={showColourOverride && phase}\n style={showColourOverride ? { '--override-colour': overrideColour } : {}}\n >\n {main}\n </div>\n {secondary !== null && <div className={style.secondaryContent}>{secondary}</div>}\n </div>\n <div className={style.eventStatus}>\n <Tooltip\n text='Time type: Count down'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountDown}\n >\n <IoArrowDown />\n </Tooltip>\n <Tooltip\n text='Time type: Count up'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.CountUp}\n >\n <IoArrowUp />\n </Tooltip>\n <Tooltip\n text='Time type: Clock'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.Clock}\n >\n <IoTime />\n </Tooltip>\n <Tooltip\n text='Time type: None'\n render={<span />}\n className={style.statusIcon}\n data-active={timerType === TimerType.None}\n >\n <IoBan />\n </Tooltip>\n <Tooltip\n text={countToEnd ? 'Count to end' : 'Count duration'}\n render={<span />}\n className={style.statusIcon}\n data-active={countToEnd}\n >\n <LuArrowDownToLine />\n </Tooltip>\n </div>\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport { SecondarySource } from 'ontime-types';\n\nimport Button from '../../../common/components/buttons/Button';\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport Select from '../../../common/components/select/Select';\nimport { setMessage, useTimerViewControl } from '../../../common/hooks/useSocket';\n\nimport TimerPreview from './TimerPreview';\n\nimport style from './TimerViewControl.module.scss';\n\nexport default function TimerControlsPreview() {\n const { blackout, blink } = useTimerViewControl();\n\n return (\n <div className={style.previewContainer}>\n <TimerPreview />\n <div className={style.options}>\n <SecondarySourceControl />\n\n <Editor.Separator orientation='horizontal' />\n\n <Button\n variant={blink ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlink(!blink)}\n data-testid='toggle timer blink'\n >\n Blink\n </Button>\n <Button\n variant={blackout ? 'primary' : 'subtle'}\n fluid\n onClick={() => setMessage.timerBlackout(!blackout)}\n data-testid='toggle timer blackout'\n >\n Blackout screen\n </Button>\n </div>\n </div>\n );\n}\n\nfunction SecondarySourceControl() {\n const { secondarySource } = useTimerViewControl();\n const [value, setValue] = useState<SecondarySource>('aux1');\n\n // sync secondary source with external changes\n useEffect(() => {\n if (secondarySource !== null) {\n setValue(secondarySource);\n }\n }, [secondarySource]);\n\n const toggleSecondary = () => {\n if (secondarySource === value) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource(value);\n }\n };\n\n return (\n <>\n <Select\n value={value}\n options={[\n { value: 'aux1', label: 'Aux 1' },\n { value: 'aux2', label: 'Aux 2' },\n { value: 'aux3', label: 'Aux 3' },\n { value: 'secondary', label: 'Secondary message' },\n ]}\n onValueChange={(value: SecondarySource | null) => {\n if (value === null) return;\n // we can only update the remote if it is enabled\n if (secondarySource !== null) {\n setMessage.timerSecondarySource(value);\n }\n setValue(value);\n }}\n />\n <Button\n variant={secondarySource !== null ? 'primary' : 'subtle'}\n fluid\n onClick={toggleSecondary}\n data-testid='toggle secondary'\n >\n Show secondary\n </Button>\n </>\n );\n}\n","import { IoEye, IoEyeOffOutline } from 'react-icons/io5';\n\nimport IconButton from '../../../common/components/buttons/IconButton';\nimport {\n setMessage,\n useExternalMessageInput as useSecondaryMessageInput,\n useTimerMessageInput,\n} from '../../../common/hooks/useSocket';\n\nimport InputRow from './InputRow';\nimport TimerControlsPreview from './TimerViewControl';\n\nexport default function MessageControl() {\n return (\n <>\n <TimerControlsPreview />\n <TimerMessageInput />\n <SecondaryInput />\n </>\n );\n}\n\nfunction TimerMessageInput() {\n const { text, visible } = useTimerMessageInput();\n\n return (\n <InputRow\n label='Timer Message'\n placeholder='Message shown fullscreen in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.timerText(newValue)}\n >\n <IconButton\n aria-label='Toggle timer message visibility'\n onClick={() => setMessage.timerVisible(!visible)}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n\nfunction SecondaryInput() {\n const { text, visible } = useSecondaryMessageInput();\n\n const toggleSecondary = () => {\n if (visible) {\n setMessage.timerSecondarySource(null);\n } else {\n setMessage.timerSecondarySource('secondary');\n }\n };\n\n return (\n <InputRow\n label='Secondary Message'\n placeholder='Message shown as secondary text in stage timer'\n text={text}\n visible={visible}\n changeHandler={(newValue) => setMessage.secondaryMessage(newValue)}\n >\n <IconButton\n aria-label='Toggle secondary message visibility'\n onClick={toggleSecondary}\n variant={visible ? 'primary' : 'subtle'}\n >\n {visible ? <IoEye /> : <IoEyeOffOutline />}\n </IconButton>\n </InputRow>\n );\n}\n","import { memo } from 'react';\n\nimport * as Editor from '../../../common/components/editor-utils/EditorUtils';\nimport ErrorBoundary from '../../../common/components/error-boundary/ErrorBoundary';\nimport ViewNavigationMenu from '../../../common/components/navigation-menu/ViewNavigationMenu';\nimport ProtectRoute from '../../../common/components/protect-route/ProtectRoute';\nimport { handleLinks } from '../../../common/utils/linkUtils';\nimport { getIsNavigationLocked } from '../../../externals';\n\nimport MessageControl from './MessageControl';\n\nimport style from './MessageControlExport.module.scss';\n\nexport default memo(MessageControlExport);\nfunction MessageControlExport() {\n const isExtracted = window.location.pathname.includes('/messagecontrol');\n\n return (\n <ProtectRoute permission='editor'>\n <Editor.Panel className={style.growPanel} data-testid='panel-messages-control'>\n {!isExtracted && <Editor.CornerExtract onClick={(event) => handleLinks('messagecontrol', event)} />}\n {isExtracted && <ViewNavigationMenu suppressSettings isNavigationLocked={getIsNavigationLocked()} />}\n\n <div className={style.contentLayout}>\n <ErrorBoundary>\n <MessageControl />\n </ErrorBoundary>\n </div>\n </Editor.Panel>\n </ProtectRoute>\n );\n}\n"],"file":"assets/MessageControlExport-CWQX8mH0.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,h as m,bj as Z,bk as oe,am as de,bl as ue,bm as P,bn as U,bo as me,bp as he,ah as xe,b9 as je,bq as be}from"./vendor-q6fv0YT2.js";import{L as b,T as y}from"./EditorUtils-DuKjlUkF.js";import{T as S,A as W,s as ge}from"./TimeInput-C8DQoFXv.js";import{u as T,m as fe}from"./dateConfig-D7xim1t4.js";import{u as J}from"./useCustomFields-k4piRt9n.js";import{T as A,E as G}from"./validateEvent-Do8yE_DJ.js";import{ah as R,aC as ve,e as O,ak as F,s as _e,m as I,T as q,B as pe,ba as ke,x as K,bk as ee}from"./index-B81u4hxi.js";import{S as M}from"./Select-BGGVCKqU.js";import{S as ae}from"./SwatchPicker-Cm5Eicvv.js";import{T as w}from"./Tooltip-B5vsLcFu.js";import{p as ie}from"./parseUserTime-YeFR8t3F.js";import{S as Q,u as re,T as te}from"./Modal-BKx0PDGT.js";import{g as ye}from"./offset-R98EXhWK.js";import{T as Ee}from"./editorSettings-D2f7e1a6.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new t.Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="47edc882-8c7a-4686-b27e-3e8e9e90ec4b",t._sentryDebugIdIdentifier="sentry-dbid-47edc882-8c7a-4686-b27e-3e8e9e90ec4b")}catch{}})();var C=(t=>(t.onLoad="onLoad",t.onStart="onStart",t.onPause="onPause",t.onStop="onStop",t.onClock="onClock",t.onUpdate="onUpdate",t.onFinish="onFinish",t.onWarning="onWarning",t.onDanger="onDanger",t))(C||{});const Ne=Object.keys(C);function Ce(t){return t.replaceAll(" ","").replaceAll(",",".")}const Te="_imageContainer_1k5qa_17",Ie="_imageOverlay_1k5qa_25",ne={imageContainer:Te,imageOverlay:Ie};function we({src:t}){return e.jsxs("div",{className:ne.imageContainer,children:[!!t&&e.jsx("img",{loading:"lazy",src:t}),e.jsx("div",{className:ne.imageOverlay})]})}function Le({value:t,inputref:s,...a}){return m.useEffect(()=>{const n=s.current;return Z(s.current),()=>{Z.destroy(n)}},[s,t]),e.jsx(Ee,{ref:s,value:t,...a})}function le(t,s,a,n){const[o,l]=m.useState(t),i=m.useRef(!1);m.useEffect(()=>{l(typeof t>"u"?"":t)},[t]);const c=m.useCallback(d=>{d!==o&&l(d)},[o]),h=m.useCallback(d=>{var j;if(d===t&&!(n!=null&&n.allowSubmitSameValue))(j=n==null?void 0:n.onCancelUpdate)==null||j.call(n);else{const r=d.trim();s(r),r!==d&&l(r)}setTimeout(()=>{var r,v,_;n!=null&&n.allowKeyboardNavigation?(v=(r=a.current)==null?void 0:r.parentElement)==null||v.focus():(_=a.current)==null||_.blur()})},[t,n,a,s]),x=m.useCallback(()=>{var d;l(t),a.current&&(a.current.value=t),(d=n==null?void 0:n.onCancelUpdate)==null||d.call(n),setTimeout(()=>{var j;return(j=a.current)==null?void 0:j.blur()})},[t,n,a]),g=m.useMemo(()=>{const d=[["Escape",r=>{r.preventDefault(),x()},{preventDefault:!0}]];n!=null&&n.submitOnEnter&&d.push(["Enter",()=>{i.current=!0,h(o),setTimeout(()=>{i.current=!1},0)}]),n!=null&&n.submitOnCtrlEnter&&d.push(["mod + Enter",()=>{i.current=!0,h(o),setTimeout(()=>{i.current=!1},0)}]);const j=oe(d);return r=>{(r.key==="ArrowLeft"||r.key==="ArrowRight"||r.key==="ArrowUp"||r.key==="ArrowDown")&&r.stopPropagation(),j(r)}},[x,h,n==null?void 0:n.submitOnCtrlEnter,n==null?void 0:n.submitOnEnter,o]);return{value:o,onChange:d=>c(d.target.value),onBlur:d=>{i.current||h(d.target.value)},onKeyDown:g}}function B({className:t,field:s,label:a,initialValue:n,style:o,submitHandler:l}){const i=m.useRef(null),c=m.useCallback(j=>l(s,j),[s,l]),{value:h,onChange:x,onBlur:g,onKeyDown:d}=le(n,c,i,{submitOnCtrlEnter:!0});return e.jsxs("div",{children:[e.jsx(b,{className:t,htmlFor:s,style:o,children:a}),e.jsx(Le,{id:s,inputref:i,rows:1,"data-testid":"input-textarea",fluid:!0,value:h,onChange:x,onBlur:g,onKeyDown:d})]})}function D({className:t,field:s,label:a,initialValue:n,style:o,submitHandler:l,maxLength:i,placeholder:c}){const h=m.useRef(null),x=m.useCallback(v=>l(s,v),[s,l]),{value:g,onChange:d,onBlur:j,onKeyDown:r}=le(n,x,h,{submitOnEnter:!0});return e.jsxs("div",{children:[e.jsx(b,{className:t,htmlFor:s,style:o,children:a}),e.jsx(R,{id:s,ref:h,maxLength:i,fluid:!0,"data-testid":"input-textfield",value:g,placeholder:c,onChange:d,onBlur:j,onKeyDown:r})]})}const De="_rundownEditor_qkzuc_19",Se="_content_qkzuc_29",Fe="_column_qkzuc_48",Oe="_decorated_qkzuc_57",Ae="_delayLabel_qkzuc_65",qe="_switchLabel_qkzuc_73",ze="_inline_qkzuc_83",He="_splitTwo_qkzuc_89",$e="_splitThree_qkzuc_96",Ve="_tooltipIcon_qkzuc_103",We="_customImage_qkzuc_110",Me="_textLikeInput_qkzuc_117",Re="_inactive_qkzuc_125",Be="_active_qkzuc_129",u={rundownEditor:De,content:Se,column:Fe,decorated:Oe,delayLabel:Ae,switchLabel:qe,inline:ze,splitTwo:He,splitThree:$e,tooltipIcon:Ve,customImage:We,textLikeInput:Me,inactive:Re,active:Be};function X({fields:t,handleSubmit:s,entry:a}){return e.jsx(m.Fragment,{children:Object.keys(t).map(n=>{const o=`${a.id}-${n}`,l=`custom-${n}`,i=a.custom[n]??"",{backgroundColor:c,color:h}=ve(t[n].colour),x=t[n].label;return t[n].type==="text"?e.jsx(B,{field:l,label:x,initialValue:i,submitHandler:s,className:u.decorated,style:{"--decorator-bg":c,"--decorator-color":h}},o):t[n].type==="image"?e.jsxs("div",{className:u.customImage,children:[e.jsx(D,{field:l,label:x,initialValue:i,placeholder:"Paste image URL",submitHandler:s,className:u.decorated,maxLength:255,style:{"--decorator-bg":c,"--decorator-color":h}},o),e.jsx(we,{src:i})]},o):null})})}const Ge="_inputGroup_1e1jq_17",Pe="_delayed_1e1jq_24",se={inputGroup:Ge,delayed:Pe};function $({hasDelay:t,children:s}){return e.jsx("div",{className:O([se.inputGroup,t&&se.delayed]),children:s})}const Ue="_fourtyfive_ezj8b_13",Ke="_timerNote_ezj8b_21",Je="_inactive_ezj8b_27",Qe="_active_ezj8b_31",Xe="_inputWrapper_ezj8b_35",Ye="_hoverLabel_ezj8b_39",k={fourtyfive:Ue,timerNote:Ke,inactive:Je,active:Qe,inputWrapper:Xe,hoverLabel:Ye},Ze=m.memo(et);function et({eventId:t,countToEnd:s,timeStart:a,timeEnd:n,duration:o,timeStrategy:l,linkStart:i,delay:c,showLabels:h}){const{updateEntry:x,updateTimer:g}=T(),d=(N,p)=>{g(t,N,p)},j=N=>{x({id:t,timeStrategy:N})},r=N=>{x({id:t,linkStart:N})},v=[];a+o>_e&&v.push("Over midnight"),s&&v.push("Count to End");const _=c!==0,f=l===A.LockEnd,E=l===A.LockDuration;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:k.inputWrapper,children:[h&&e.jsx(b,{className:k.sectionTitle,children:"Start time"}),e.jsx(b,{className:k.hoverLabel,children:"Start"}),e.jsxs($,{hasDelay:_,children:[e.jsx(S,{name:"timeStart",submitHandler:d,time:a,placeholder:"Start",align:"left",disabled:i}),e.jsx(w,{text:"Link start to previous end",onClick:()=>r(!i),render:e.jsx(F,{variant:"subtle-white",className:i?k.active:k.inactive}),children:e.jsx("span",{className:k.fourtyfive,children:i?e.jsx(de,{}):e.jsx(ue,{})})})]})]}),e.jsxs("div",{className:k.inputWrapper,children:[h&&e.jsx(b,{children:"End time"}),e.jsx(b,{className:k.hoverLabel,children:"End"}),e.jsxs($,{hasDelay:_,children:[e.jsx(S,{name:"timeEnd",submitHandler:d,time:n,placeholder:"End",align:"left",disabled:E}),e.jsx(w,{text:"Lock end",render:e.jsx(F,{variant:"subtle-white",className:f?k.active:k.inactive}),onClick:()=>j(A.LockEnd),"data-testid":"lock__end",children:f?e.jsx(P,{}):e.jsx(U,{})})]})]}),e.jsxs("div",{className:k.inputWrapper,children:[h&&e.jsx(b,{children:"Duration"}),e.jsx(b,{className:k.hoverLabel,children:"Duration"}),e.jsxs($,{hasDelay:_,children:[e.jsx(S,{name:"duration",submitHandler:d,time:o,placeholder:"Duration",align:"left",disabled:f}),e.jsx(w,{text:"Lock duration",render:e.jsx(F,{variant:"subtle-white",className:E?k.active:k.inactive}),onClick:()=>j(A.LockDuration),"data-testid":"lock__duration",children:E?e.jsx(P,{}):e.jsx(U,{})})]})]}),v.length>0&&e.jsx(w,{text:v.join(" - "),className:k.timerNote,"data-testid":"event-warning",render:e.jsx("span",{}),children:e.jsx(me,{})})]})}const tt=m.memo(nt);function nt({eventId:t,timeStart:s,timeEnd:a,duration:n,timeStrategy:o,linkStart:l,countToEnd:i,delay:c,endAction:h,timerType:x,timeWarning:g,timeDanger:d}){const{updateEntry:j}=T(),r=(f,E)=>{if(f==="countToEnd"){j({id:t,countToEnd:E});return}if(f==="timeWarning"||f==="timeDanger"){const N=ie(E);j({id:t,[f]:N});return}if(f==="timerType"||f==="endAction"){j({id:t,[f]:E});return}},_=c!==0?`Event is ${fe(c,"expanded")}. New schedule ${I(s+c)} → ${I(a+c)}`:"";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Event schedule"}),e.jsxs("div",{children:[e.jsx("div",{className:u.inline,children:e.jsx(Ze,{eventId:t,timeStart:s,timeEnd:a,duration:n,timeStrategy:o,linkStart:l,delay:c,countToEnd:i,showLabels:!0})}),e.jsx("div",{className:u.delayLabel,children:_})]})]}),e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Event Behaviour"}),e.jsxs("div",{className:u.splitTwo,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"endAction",children:"End Action"}),e.jsx(M,{value:h,onValueChange:f=>{f!==null&&r("endAction",f)},options:[{value:G.None,label:"None"},{value:G.LoadNext,label:"Load next event"},{value:G.PlayNext,label:"Play next event"}]})]}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"countToEnd",children:"Count to End"}),e.jsxs(b,{className:u.switchLabel,children:[e.jsx(ae,{id:"countToEnd",checked:i,onCheckedChange:f=>r("countToEnd",f)}),i?"On":"Off"]})]})]})]}),e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:e.jsxs(w,{text:"Changes how the timer is displayed in different views. It is not reflected in the rundown",render:e.jsx("span",{}),children:["Display Options",e.jsx(he,{className:u.tooltipIcon})]})}),e.jsxs("div",{className:u.splitTwo,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"timerType",children:"Timer Type"}),e.jsx(M,{value:x,onValueChange:f=>{f!==null&&r("timerType",f)},options:[{value:q.CountDown,label:"Count down"},{value:q.CountUp,label:"Count up"},{value:q.Clock,label:"Clock"},{value:q.None,label:"None"}]})]}),e.jsxs("div",{className:u.inline,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"timeWarning",children:"Warning Time"}),e.jsx(S,{id:"timeWarning",name:"timeWarning",submitHandler:r,time:g,placeholder:"Duration"})]}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"timeDanger",children:"Danger Time"}),e.jsx(S,{id:"timeDanger",name:"timeDanger",submitHandler:r,time:d,placeholder:"Duration"})]})]})]})]})]})}const st=m.memo(at);function at({eventId:t,cue:s,flag:a,title:n,note:o,colour:l}){const{updateEntry:i}=T(),c=(g,d)=>{i({id:t,cue:Ce(d)})},h=g=>{i({id:t,flag:g})},x=(g,d)=>{i({id:t,[g]:d})};return e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Event Data"}),e.jsxs("div",{className:u.splitThree,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"eventId",children:"Event ID (read only)"}),e.jsx(R,{id:"eventId","data-testid":"input-textfield",value:t,readOnly:!0,fluid:!0})]}),e.jsx(D,{field:"cue",label:"Cue",initialValue:s,submitHandler:c,maxLength:10}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"flag",children:"Flag"}),e.jsxs(b,{className:u.switchLabel,children:[e.jsx(ae,{id:"flag",checked:a,onCheckedChange:h}),a?"On":"Off"]})]})]}),e.jsxs("div",{children:[e.jsx(b,{children:"Colour"}),e.jsx(Q,{name:"colour",value:l,handleChange:x})]}),e.jsx(D,{field:"title",label:"Title",initialValue:n,submitHandler:x}),e.jsx(B,{field:"note",label:"Note",initialValue:o,submitHandler:x})]})}const it=[C.onLoad,C.onStart,C.onPause,C.onFinish,C.onWarning,C.onDanger],rt="_triggerForm_l7413_17",lt="_trigger_l7413_17",ct="_errorLabel_l7413_38",ot="_success_l7413_42",V={triggerForm:rt,trigger:lt,errorLabel:ct,success:ot};function dt({triggers:t,eventId:s}){const a=t.length>0;return e.jsxs(e.Fragment,{children:[a&&e.jsx(mt,{triggers:t,eventId:s}),e.jsx(ut,{triggers:t,eventId:s})]})}function ut({eventId:t,triggers:s}){const{data:a}=re(),{updateEntry:n}=T(),[o,l]=m.useState(void 0),[i,c]=m.useState(C.onStart),h=(r,v)=>{const _=s??new Array,f=ke();_.push({id:f,title:"",trigger:r,automationId:v}),n({id:t,triggers:_})},g=((r,v)=>{if(v===void 0)return"Select an automation";if(!Object.keys(a.automations).includes(v))return"This automation does not exist";if(s!==void 0)return Object.values(s).some(_=>_.automationId===v&&_.trigger===r)?"Automation can only be used once":void 0})(i,o),d=m.useMemo(()=>[{value:null,label:"Select Trigger"},...it.map(r=>({value:r,label:r}))],[]),j=m.useMemo(()=>[{value:null,label:"Select Automation"},...Object.values(a.automations).map(({id:r,title:v})=>({value:r,label:v}))],[a.automations]);return e.jsxs("div",{className:V.triggerForm,children:[e.jsx(M,{value:i,onValueChange:r=>{r!==null&&c(r)},options:d}),e.jsx(M,{value:o??null,onValueChange:r=>{r!==null&&l(r)},options:j}),e.jsx(pe,{disabled:g!==void 0,onClick:()=>o&&h(i,o),children:"Add"}),g!==void 0?e.jsx(w,{text:g,render:e.jsx("span",{}),children:e.jsx(je,{className:V.errorLabel})}):e.jsx(be,{className:V.success})]})}function mt({eventId:t,triggers:s}){const{updateEntry:a}=T(),{data:n}=re(),o=m.useCallback(i=>{const c=s.filter(h=>h.id!==i);a({id:t,triggers:c})},[t,s,a]),l={};return Ne.forEach(i=>{const c=s.filter(h=>h.trigger===i);c.length&&Object.assign(l,{[i]:c})}),e.jsx("div",{children:Object.entries(l).map(([i,c])=>e.jsx(m.Fragment,{children:c.map(h=>{var j;const{id:x,automationId:g}=h,d=((j=n.automations[g])==null?void 0:j.title)??"<MISSING AUTOMATION>";return e.jsxs("div",{className:V.trigger,children:[e.jsx(te,{children:i}),e.jsx(te,{children:d}),e.jsx(F,{variant:"ghosted-destructive",onClick:()=>o(x),children:e.jsx(xe,{})})]},x)})},i))})}function qt({event:t}){const{data:s}=J(),{updateEntry:a}=T(),n=window.location.pathname.includes("editor"),o=m.useCallback((l,i)=>{if(l.startsWith("custom-")){const c=l.split("custom-")[1];a({id:t.id,custom:{[c]:i}})}else a({id:t.id,[l]:i})},[t.id,a]);return e.jsxs("div",{className:u.content,children:[e.jsx(tt,{eventId:t.id,timeStart:t.timeStart,timeEnd:t.timeEnd,duration:t.duration,timeStrategy:t.timeStrategy,linkStart:t.linkStart,countToEnd:t.countToEnd,delay:t.delay,endAction:t.endAction,timerType:t.timerType,timeWarning:t.timeWarning,timeDanger:t.timeDanger},`${t.id}-times`),e.jsx(st,{eventId:t.id,cue:t.cue,flag:t.flag,title:t.title,note:t.note,colour:t.colour},`${t.id}-titles`),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Custom Fields",n&&e.jsx(W,{search:"settings=manage__custom",children:"Manage Custom Fields"})]}),e.jsx(X,{fields:s,handleSubmit:o,entry:t})]}),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Automations",n&&e.jsx(W,{search:"settings=automation",children:"Manage Automations"})]}),e.jsx(dt,{triggers:t.triggers,eventId:t.id})]})]})}const ht="_blink_1qqxl_1",xt="_fourtyfive_1qqxl_13",jt="_textInput_1qqxl_18",bt="_under_1qqxl_31",gt="_over_1qqxl_34",ft="_muted_1qqxl_37",vt="_disabled_1qqxl_40",z={blink:ht,fourtyfive:xt,textInput:jt,under:bt,over:gt,muted:ft,disabled:vt},ce=m.forwardRef(({offset:t,muted:s,disabled:a,children:n,className:o,...l},i)=>{const c=m.useRef(null),h=O([z.textInput,t&&z[t],s&&z.muted,a&&z.disabled,o]);return m.useImperativeHandle(i,()=>({focusParentElement(){var x,g;(g=(x=c.current)==null?void 0:x.parentElement)==null||g.focus()}})),e.jsx("div",{className:h,tabIndex:a?-1:0,...l,ref:c,children:n})});ce.displayName="TextLikeInput";const H=m.memo(ce);function _t({id:t,name:s,submitHandler:a,time:n,emptyDisplay:o,placeholder:l,disabled:i,align:c="center",className:h}){const x=m.useRef(null),[g,d]=m.useState(""),j=m.useRef(!1),r=m.useCallback(()=>{typeof n!="number"||isNaN(n)?d(o):d(I(n))},[o,n]),v=m.useCallback(()=>{var p;(p=x.current)==null||p.select()},[]),_=m.useCallback(p=>{if(p===""&&n===null)return!1;const L=ie(p);return L===n?!1:(a(s,L),!0)},[s,a,n]),f=m.useCallback(p=>{_(p)||r()},[_,r]),E=m.useCallback(p=>{var L,Y;p.key==="Enter"&&((L=x.current)==null||L.blur()),p.key==="Escape"&&(j.current=!0,(Y=x.current)==null||Y.blur(),r())},[r]),N=m.useCallback(p=>{if(j.current){j.current=!1;return}f(p.target.value)},[f]);return m.useEffect(()=>{r()},[r]),e.jsx(R,{id:t,disabled:i,ref:x,"data-testid":`time-input-${s}`,className:O([ge.timeInput,h]),placeholder:l,onFocus:v,onChange:p=>d(p.target.value),onBlur:N,onKeyDown:E,value:g,maxLength:8,autoComplete:"off",style:{textAlign:c}})}function pt({duration:t,targetDuration:s,submitHandler:a}){const n=s!==null;return e.jsxs("div",{children:[e.jsx(b,{htmlFor:"targetDuration",children:"Target duration"}),e.jsxs($,{hasDelay:n&&s!==t,children:[e.jsx(_t,{name:"targetDuration",time:s,submitHandler:a,emptyDisplay:K,className:n?"":u.inactive}),e.jsx(w,{text:"Lock to target duration",className:O([u.timeAction,n&&u.active]),onClick:()=>a("targetDuration",n?null:t),"data-testid":"lock__duration",render:e.jsx(F,{variant:"subtle-white",className:n?u.active:u.inactive}),children:n?e.jsx(P,{}):e.jsx(U,{})})]})]})}function zt({group:t}){const{data:s}=J(),{updateEntry:a}=T(),n=m.useCallback((c,h)=>{if(typeof c=="string"&&c.startsWith("custom-")){const x=c.split("custom-")[1];a({id:t.id,custom:{[x]:h}});return}return a(c==="targetDuration"?{id:t.id,targetDuration:h}:{id:t.id,[c]:h})},[t.id,a]),o=window.location.pathname.includes("editor"),l=t.targetDuration===null?null:t.duration-t.targetDuration,i=l!==null?ye(l):null;return e.jsxs("div",{className:u.content,children:[e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Group schedule"}),e.jsxs("div",{className:u.inline,children:[e.jsxs("div",{children:[e.jsx(b,{children:"First event start"}),e.jsx(H,{className:u.textLikeInput,disabled:!0,children:I(t.timeStart,{fallback:ee})})]}),e.jsxs("div",{children:[e.jsx(b,{children:"Last event end"}),e.jsx(H,{className:u.textLikeInput,disabled:!0,children:I(t.timeEnd,{fallback:ee})})]}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"duration",children:"Scheduled duration"}),e.jsx(H,{className:u.textLikeInput,disabled:!0,children:I(t.duration,{fallback:K})})]})]}),e.jsxs("div",{className:u.inline,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"eventId",children:"Plan offset"}),e.jsxs(H,{offset:i,className:O([u.textLikeInput,l===null&&u.inactive]),disabled:!0,children:[l!==null&&l>0?"+":"",I(l,{fallback:K})]})]}),e.jsx(pt,{duration:t.duration,targetDuration:t.targetDuration,submitHandler:n})]})]}),e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Group data"}),e.jsxs("div",{children:[e.jsx(b,{children:"Colour"}),e.jsx(Q,{name:"colour",value:t.colour,handleChange:n})]}),e.jsx(D,{field:"title",label:"Title",initialValue:t.title,submitHandler:n}),e.jsx(B,{field:"note",label:"Note",initialValue:t.note,submitHandler:n})]}),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Custom Fields",o&&e.jsx(W,{search:"settings=manage__custom",children:"Manage Custom Fields"})]}),e.jsx(X,{fields:s,handleSubmit:n,entry:t})]})]})}function Ht({milestone:t}){const{data:s}=J(),{updateEntry:a}=T(),n=m.useCallback((l,i)=>{if(typeof l=="string"&&l.startsWith("custom-")){const c=l.split("custom-")[1];a({id:t.id,custom:{[c]:i}});return}return a({id:t.id,[l]:i})},[t.id,a]),o=window.location.pathname.includes("editor");return e.jsxs("div",{className:u.content,children:[e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Milestone data"}),e.jsxs("div",{className:u.splitTwo,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"entryId",children:"Milestone ID (read only)"}),e.jsx(R,{id:"entryId","data-testid":"input-textfield",value:t.id,readOnly:!0,fluid:!0})]}),e.jsx(D,{field:"cue",label:"Cue",initialValue:t.cue,submitHandler:n,maxLength:10})]}),e.jsxs("div",{children:[e.jsx(b,{children:"Colour"}),e.jsx(Q,{name:"colour",value:t.colour,handleChange:n})]}),e.jsx(D,{field:"title",label:"Title",initialValue:t.title,submitHandler:n}),e.jsx(B,{field:"note",label:"Note",initialValue:t.note,submitHandler:n})]}),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Custom Fields",o&&e.jsx(W,{search:"settings=manage__custom",children:"Manage Custom Fields"})]}),e.jsx(X,{fields:s,handleSubmit:n,entry:t})]})]})}export{Le as A,qt as E,zt as G,Ht as M,H as T,Ze as a,u as s,le as u};
|
|
2
|
-
//# sourceMappingURL=MilestoneEditor-
|
|
1
|
+
import{j as e,h as m,bj as Z,bk as oe,am as de,bl as ue,bm as P,bn as U,bo as me,bp as he,ah as xe,b9 as je,bq as be}from"./vendor-DmGkEtRj.js";import{L as b,T as y}from"./EditorUtils-C3QoonjM.js";import{T as S,A as W,s as ge}from"./TimeInput-DR-NCEhH.js";import{u as T,m as fe}from"./dateConfig-Crm-Cu2y.js";import{u as J}from"./useCustomFields-nW-_Zyfw.js";import{T as A,E as G}from"./validateEvent-jVIMKhmx.js";import{ah as R,aC as ve,e as O,ak as F,s as _e,m as I,T as q,B as pe,ba as ke,x as K,bk as ee}from"./index-B1K7rED_.js";import{S as M}from"./Select-ASOzxGFV.js";import{S as ae}from"./SwatchPicker-C8eFQKBd.js";import{T as w}from"./Tooltip-BTK4bJkV.js";import{p as ie}from"./parseUserTime-0pNWLcr0.js";import{S as Q,u as re,T as te}from"./Modal-ePA-Go14.js";import{g as ye}from"./offset-FplkvYRD.js";import{T as Ee}from"./editorSettings-CRJwIW7V.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},s=new t.Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="47edc882-8c7a-4686-b27e-3e8e9e90ec4b",t._sentryDebugIdIdentifier="sentry-dbid-47edc882-8c7a-4686-b27e-3e8e9e90ec4b")}catch{}})();var C=(t=>(t.onLoad="onLoad",t.onStart="onStart",t.onPause="onPause",t.onStop="onStop",t.onClock="onClock",t.onUpdate="onUpdate",t.onFinish="onFinish",t.onWarning="onWarning",t.onDanger="onDanger",t))(C||{});const Ne=Object.keys(C);function Ce(t){return t.replaceAll(" ","").replaceAll(",",".")}const Te="_imageContainer_1k5qa_17",Ie="_imageOverlay_1k5qa_25",ne={imageContainer:Te,imageOverlay:Ie};function we({src:t}){return e.jsxs("div",{className:ne.imageContainer,children:[!!t&&e.jsx("img",{loading:"lazy",src:t}),e.jsx("div",{className:ne.imageOverlay})]})}function Le({value:t,inputref:s,...a}){return m.useEffect(()=>{const n=s.current;return Z(s.current),()=>{Z.destroy(n)}},[s,t]),e.jsx(Ee,{ref:s,value:t,...a})}function le(t,s,a,n){const[o,l]=m.useState(t),i=m.useRef(!1);m.useEffect(()=>{l(typeof t>"u"?"":t)},[t]);const c=m.useCallback(d=>{d!==o&&l(d)},[o]),h=m.useCallback(d=>{var j;if(d===t&&!(n!=null&&n.allowSubmitSameValue))(j=n==null?void 0:n.onCancelUpdate)==null||j.call(n);else{const r=d.trim();s(r),r!==d&&l(r)}setTimeout(()=>{var r,v,_;n!=null&&n.allowKeyboardNavigation?(v=(r=a.current)==null?void 0:r.parentElement)==null||v.focus():(_=a.current)==null||_.blur()})},[t,n,a,s]),x=m.useCallback(()=>{var d;l(t),a.current&&(a.current.value=t),(d=n==null?void 0:n.onCancelUpdate)==null||d.call(n),setTimeout(()=>{var j;return(j=a.current)==null?void 0:j.blur()})},[t,n,a]),g=m.useMemo(()=>{const d=[["Escape",r=>{r.preventDefault(),x()},{preventDefault:!0}]];n!=null&&n.submitOnEnter&&d.push(["Enter",()=>{i.current=!0,h(o),setTimeout(()=>{i.current=!1},0)}]),n!=null&&n.submitOnCtrlEnter&&d.push(["mod + Enter",()=>{i.current=!0,h(o),setTimeout(()=>{i.current=!1},0)}]);const j=oe(d);return r=>{(r.key==="ArrowLeft"||r.key==="ArrowRight"||r.key==="ArrowUp"||r.key==="ArrowDown")&&r.stopPropagation(),j(r)}},[x,h,n==null?void 0:n.submitOnCtrlEnter,n==null?void 0:n.submitOnEnter,o]);return{value:o,onChange:d=>c(d.target.value),onBlur:d=>{i.current||h(d.target.value)},onKeyDown:g}}function B({className:t,field:s,label:a,initialValue:n,style:o,submitHandler:l}){const i=m.useRef(null),c=m.useCallback(j=>l(s,j),[s,l]),{value:h,onChange:x,onBlur:g,onKeyDown:d}=le(n,c,i,{submitOnCtrlEnter:!0});return e.jsxs("div",{children:[e.jsx(b,{className:t,htmlFor:s,style:o,children:a}),e.jsx(Le,{id:s,inputref:i,rows:1,"data-testid":"input-textarea",fluid:!0,value:h,onChange:x,onBlur:g,onKeyDown:d})]})}function D({className:t,field:s,label:a,initialValue:n,style:o,submitHandler:l,maxLength:i,placeholder:c}){const h=m.useRef(null),x=m.useCallback(v=>l(s,v),[s,l]),{value:g,onChange:d,onBlur:j,onKeyDown:r}=le(n,x,h,{submitOnEnter:!0});return e.jsxs("div",{children:[e.jsx(b,{className:t,htmlFor:s,style:o,children:a}),e.jsx(R,{id:s,ref:h,maxLength:i,fluid:!0,"data-testid":"input-textfield",value:g,placeholder:c,onChange:d,onBlur:j,onKeyDown:r})]})}const De="_rundownEditor_qkzuc_19",Se="_content_qkzuc_29",Fe="_column_qkzuc_48",Oe="_decorated_qkzuc_57",Ae="_delayLabel_qkzuc_65",qe="_switchLabel_qkzuc_73",ze="_inline_qkzuc_83",He="_splitTwo_qkzuc_89",$e="_splitThree_qkzuc_96",Ve="_tooltipIcon_qkzuc_103",We="_customImage_qkzuc_110",Me="_textLikeInput_qkzuc_117",Re="_inactive_qkzuc_125",Be="_active_qkzuc_129",u={rundownEditor:De,content:Se,column:Fe,decorated:Oe,delayLabel:Ae,switchLabel:qe,inline:ze,splitTwo:He,splitThree:$e,tooltipIcon:Ve,customImage:We,textLikeInput:Me,inactive:Re,active:Be};function X({fields:t,handleSubmit:s,entry:a}){return e.jsx(m.Fragment,{children:Object.keys(t).map(n=>{const o=`${a.id}-${n}`,l=`custom-${n}`,i=a.custom[n]??"",{backgroundColor:c,color:h}=ve(t[n].colour),x=t[n].label;return t[n].type==="text"?e.jsx(B,{field:l,label:x,initialValue:i,submitHandler:s,className:u.decorated,style:{"--decorator-bg":c,"--decorator-color":h}},o):t[n].type==="image"?e.jsxs("div",{className:u.customImage,children:[e.jsx(D,{field:l,label:x,initialValue:i,placeholder:"Paste image URL",submitHandler:s,className:u.decorated,maxLength:255,style:{"--decorator-bg":c,"--decorator-color":h}},o),e.jsx(we,{src:i})]},o):null})})}const Ge="_inputGroup_1e1jq_17",Pe="_delayed_1e1jq_24",se={inputGroup:Ge,delayed:Pe};function $({hasDelay:t,children:s}){return e.jsx("div",{className:O([se.inputGroup,t&&se.delayed]),children:s})}const Ue="_fourtyfive_ezj8b_13",Ke="_timerNote_ezj8b_21",Je="_inactive_ezj8b_27",Qe="_active_ezj8b_31",Xe="_inputWrapper_ezj8b_35",Ye="_hoverLabel_ezj8b_39",k={fourtyfive:Ue,timerNote:Ke,inactive:Je,active:Qe,inputWrapper:Xe,hoverLabel:Ye},Ze=m.memo(et);function et({eventId:t,countToEnd:s,timeStart:a,timeEnd:n,duration:o,timeStrategy:l,linkStart:i,delay:c,showLabels:h}){const{updateEntry:x,updateTimer:g}=T(),d=(N,p)=>{g(t,N,p)},j=N=>{x({id:t,timeStrategy:N})},r=N=>{x({id:t,linkStart:N})},v=[];a+o>_e&&v.push("Over midnight"),s&&v.push("Count to End");const _=c!==0,f=l===A.LockEnd,E=l===A.LockDuration;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:k.inputWrapper,children:[h&&e.jsx(b,{className:k.sectionTitle,children:"Start time"}),e.jsx(b,{className:k.hoverLabel,children:"Start"}),e.jsxs($,{hasDelay:_,children:[e.jsx(S,{name:"timeStart",submitHandler:d,time:a,placeholder:"Start",align:"left",disabled:i}),e.jsx(w,{text:"Link start to previous end",onClick:()=>r(!i),render:e.jsx(F,{variant:"subtle-white",className:i?k.active:k.inactive}),children:e.jsx("span",{className:k.fourtyfive,children:i?e.jsx(de,{}):e.jsx(ue,{})})})]})]}),e.jsxs("div",{className:k.inputWrapper,children:[h&&e.jsx(b,{children:"End time"}),e.jsx(b,{className:k.hoverLabel,children:"End"}),e.jsxs($,{hasDelay:_,children:[e.jsx(S,{name:"timeEnd",submitHandler:d,time:n,placeholder:"End",align:"left",disabled:E}),e.jsx(w,{text:"Lock end",render:e.jsx(F,{variant:"subtle-white",className:f?k.active:k.inactive}),onClick:()=>j(A.LockEnd),"data-testid":"lock__end",children:f?e.jsx(P,{}):e.jsx(U,{})})]})]}),e.jsxs("div",{className:k.inputWrapper,children:[h&&e.jsx(b,{children:"Duration"}),e.jsx(b,{className:k.hoverLabel,children:"Duration"}),e.jsxs($,{hasDelay:_,children:[e.jsx(S,{name:"duration",submitHandler:d,time:o,placeholder:"Duration",align:"left",disabled:f}),e.jsx(w,{text:"Lock duration",render:e.jsx(F,{variant:"subtle-white",className:E?k.active:k.inactive}),onClick:()=>j(A.LockDuration),"data-testid":"lock__duration",children:E?e.jsx(P,{}):e.jsx(U,{})})]})]}),v.length>0&&e.jsx(w,{text:v.join(" - "),className:k.timerNote,"data-testid":"event-warning",render:e.jsx("span",{}),children:e.jsx(me,{})})]})}const tt=m.memo(nt);function nt({eventId:t,timeStart:s,timeEnd:a,duration:n,timeStrategy:o,linkStart:l,countToEnd:i,delay:c,endAction:h,timerType:x,timeWarning:g,timeDanger:d}){const{updateEntry:j}=T(),r=(f,E)=>{if(f==="countToEnd"){j({id:t,countToEnd:E});return}if(f==="timeWarning"||f==="timeDanger"){const N=ie(E);j({id:t,[f]:N});return}if(f==="timerType"||f==="endAction"){j({id:t,[f]:E});return}},_=c!==0?`Event is ${fe(c,"expanded")}. New schedule ${I(s+c)} → ${I(a+c)}`:"";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Event schedule"}),e.jsxs("div",{children:[e.jsx("div",{className:u.inline,children:e.jsx(Ze,{eventId:t,timeStart:s,timeEnd:a,duration:n,timeStrategy:o,linkStart:l,delay:c,countToEnd:i,showLabels:!0})}),e.jsx("div",{className:u.delayLabel,children:_})]})]}),e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Event Behaviour"}),e.jsxs("div",{className:u.splitTwo,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"endAction",children:"End Action"}),e.jsx(M,{value:h,onValueChange:f=>{f!==null&&r("endAction",f)},options:[{value:G.None,label:"None"},{value:G.LoadNext,label:"Load next event"},{value:G.PlayNext,label:"Play next event"}]})]}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"countToEnd",children:"Count to End"}),e.jsxs(b,{className:u.switchLabel,children:[e.jsx(ae,{id:"countToEnd",checked:i,onCheckedChange:f=>r("countToEnd",f)}),i?"On":"Off"]})]})]})]}),e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:e.jsxs(w,{text:"Changes how the timer is displayed in different views. It is not reflected in the rundown",render:e.jsx("span",{}),children:["Display Options",e.jsx(he,{className:u.tooltipIcon})]})}),e.jsxs("div",{className:u.splitTwo,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"timerType",children:"Timer Type"}),e.jsx(M,{value:x,onValueChange:f=>{f!==null&&r("timerType",f)},options:[{value:q.CountDown,label:"Count down"},{value:q.CountUp,label:"Count up"},{value:q.Clock,label:"Clock"},{value:q.None,label:"None"}]})]}),e.jsxs("div",{className:u.inline,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"timeWarning",children:"Warning Time"}),e.jsx(S,{id:"timeWarning",name:"timeWarning",submitHandler:r,time:g,placeholder:"Duration"})]}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"timeDanger",children:"Danger Time"}),e.jsx(S,{id:"timeDanger",name:"timeDanger",submitHandler:r,time:d,placeholder:"Duration"})]})]})]})]})]})}const st=m.memo(at);function at({eventId:t,cue:s,flag:a,title:n,note:o,colour:l}){const{updateEntry:i}=T(),c=(g,d)=>{i({id:t,cue:Ce(d)})},h=g=>{i({id:t,flag:g})},x=(g,d)=>{i({id:t,[g]:d})};return e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Event Data"}),e.jsxs("div",{className:u.splitThree,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"eventId",children:"Event ID (read only)"}),e.jsx(R,{id:"eventId","data-testid":"input-textfield",value:t,readOnly:!0,fluid:!0})]}),e.jsx(D,{field:"cue",label:"Cue",initialValue:s,submitHandler:c,maxLength:10}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"flag",children:"Flag"}),e.jsxs(b,{className:u.switchLabel,children:[e.jsx(ae,{id:"flag",checked:a,onCheckedChange:h}),a?"On":"Off"]})]})]}),e.jsxs("div",{children:[e.jsx(b,{children:"Colour"}),e.jsx(Q,{name:"colour",value:l,handleChange:x})]}),e.jsx(D,{field:"title",label:"Title",initialValue:n,submitHandler:x}),e.jsx(B,{field:"note",label:"Note",initialValue:o,submitHandler:x})]})}const it=[C.onLoad,C.onStart,C.onPause,C.onFinish,C.onWarning,C.onDanger],rt="_triggerForm_l7413_17",lt="_trigger_l7413_17",ct="_errorLabel_l7413_38",ot="_success_l7413_42",V={triggerForm:rt,trigger:lt,errorLabel:ct,success:ot};function dt({triggers:t,eventId:s}){const a=t.length>0;return e.jsxs(e.Fragment,{children:[a&&e.jsx(mt,{triggers:t,eventId:s}),e.jsx(ut,{triggers:t,eventId:s})]})}function ut({eventId:t,triggers:s}){const{data:a}=re(),{updateEntry:n}=T(),[o,l]=m.useState(void 0),[i,c]=m.useState(C.onStart),h=(r,v)=>{const _=s??new Array,f=ke();_.push({id:f,title:"",trigger:r,automationId:v}),n({id:t,triggers:_})},g=((r,v)=>{if(v===void 0)return"Select an automation";if(!Object.keys(a.automations).includes(v))return"This automation does not exist";if(s!==void 0)return Object.values(s).some(_=>_.automationId===v&&_.trigger===r)?"Automation can only be used once":void 0})(i,o),d=m.useMemo(()=>[{value:null,label:"Select Trigger"},...it.map(r=>({value:r,label:r}))],[]),j=m.useMemo(()=>[{value:null,label:"Select Automation"},...Object.values(a.automations).map(({id:r,title:v})=>({value:r,label:v}))],[a.automations]);return e.jsxs("div",{className:V.triggerForm,children:[e.jsx(M,{value:i,onValueChange:r=>{r!==null&&c(r)},options:d}),e.jsx(M,{value:o??null,onValueChange:r=>{r!==null&&l(r)},options:j}),e.jsx(pe,{disabled:g!==void 0,onClick:()=>o&&h(i,o),children:"Add"}),g!==void 0?e.jsx(w,{text:g,render:e.jsx("span",{}),children:e.jsx(je,{className:V.errorLabel})}):e.jsx(be,{className:V.success})]})}function mt({eventId:t,triggers:s}){const{updateEntry:a}=T(),{data:n}=re(),o=m.useCallback(i=>{const c=s.filter(h=>h.id!==i);a({id:t,triggers:c})},[t,s,a]),l={};return Ne.forEach(i=>{const c=s.filter(h=>h.trigger===i);c.length&&Object.assign(l,{[i]:c})}),e.jsx("div",{children:Object.entries(l).map(([i,c])=>e.jsx(m.Fragment,{children:c.map(h=>{var j;const{id:x,automationId:g}=h,d=((j=n.automations[g])==null?void 0:j.title)??"<MISSING AUTOMATION>";return e.jsxs("div",{className:V.trigger,children:[e.jsx(te,{children:i}),e.jsx(te,{children:d}),e.jsx(F,{variant:"ghosted-destructive",onClick:()=>o(x),children:e.jsx(xe,{})})]},x)})},i))})}function qt({event:t}){const{data:s}=J(),{updateEntry:a}=T(),n=window.location.pathname.includes("editor"),o=m.useCallback((l,i)=>{if(l.startsWith("custom-")){const c=l.split("custom-")[1];a({id:t.id,custom:{[c]:i}})}else a({id:t.id,[l]:i})},[t.id,a]);return e.jsxs("div",{className:u.content,children:[e.jsx(tt,{eventId:t.id,timeStart:t.timeStart,timeEnd:t.timeEnd,duration:t.duration,timeStrategy:t.timeStrategy,linkStart:t.linkStart,countToEnd:t.countToEnd,delay:t.delay,endAction:t.endAction,timerType:t.timerType,timeWarning:t.timeWarning,timeDanger:t.timeDanger},`${t.id}-times`),e.jsx(st,{eventId:t.id,cue:t.cue,flag:t.flag,title:t.title,note:t.note,colour:t.colour},`${t.id}-titles`),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Custom Fields",n&&e.jsx(W,{search:"settings=manage__custom",children:"Manage Custom Fields"})]}),e.jsx(X,{fields:s,handleSubmit:o,entry:t})]}),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Automations",n&&e.jsx(W,{search:"settings=automation",children:"Manage Automations"})]}),e.jsx(dt,{triggers:t.triggers,eventId:t.id})]})]})}const ht="_blink_1qqxl_1",xt="_fourtyfive_1qqxl_13",jt="_textInput_1qqxl_18",bt="_under_1qqxl_31",gt="_over_1qqxl_34",ft="_muted_1qqxl_37",vt="_disabled_1qqxl_40",z={blink:ht,fourtyfive:xt,textInput:jt,under:bt,over:gt,muted:ft,disabled:vt},ce=m.forwardRef(({offset:t,muted:s,disabled:a,children:n,className:o,...l},i)=>{const c=m.useRef(null),h=O([z.textInput,t&&z[t],s&&z.muted,a&&z.disabled,o]);return m.useImperativeHandle(i,()=>({focusParentElement(){var x,g;(g=(x=c.current)==null?void 0:x.parentElement)==null||g.focus()}})),e.jsx("div",{className:h,tabIndex:a?-1:0,...l,ref:c,children:n})});ce.displayName="TextLikeInput";const H=m.memo(ce);function _t({id:t,name:s,submitHandler:a,time:n,emptyDisplay:o,placeholder:l,disabled:i,align:c="center",className:h}){const x=m.useRef(null),[g,d]=m.useState(""),j=m.useRef(!1),r=m.useCallback(()=>{typeof n!="number"||isNaN(n)?d(o):d(I(n))},[o,n]),v=m.useCallback(()=>{var p;(p=x.current)==null||p.select()},[]),_=m.useCallback(p=>{if(p===""&&n===null)return!1;const L=ie(p);return L===n?!1:(a(s,L),!0)},[s,a,n]),f=m.useCallback(p=>{_(p)||r()},[_,r]),E=m.useCallback(p=>{var L,Y;p.key==="Enter"&&((L=x.current)==null||L.blur()),p.key==="Escape"&&(j.current=!0,(Y=x.current)==null||Y.blur(),r())},[r]),N=m.useCallback(p=>{if(j.current){j.current=!1;return}f(p.target.value)},[f]);return m.useEffect(()=>{r()},[r]),e.jsx(R,{id:t,disabled:i,ref:x,"data-testid":`time-input-${s}`,className:O([ge.timeInput,h]),placeholder:l,onFocus:v,onChange:p=>d(p.target.value),onBlur:N,onKeyDown:E,value:g,maxLength:8,autoComplete:"off",style:{textAlign:c}})}function pt({duration:t,targetDuration:s,submitHandler:a}){const n=s!==null;return e.jsxs("div",{children:[e.jsx(b,{htmlFor:"targetDuration",children:"Target duration"}),e.jsxs($,{hasDelay:n&&s!==t,children:[e.jsx(_t,{name:"targetDuration",time:s,submitHandler:a,emptyDisplay:K,className:n?"":u.inactive}),e.jsx(w,{text:"Lock to target duration",className:O([u.timeAction,n&&u.active]),onClick:()=>a("targetDuration",n?null:t),"data-testid":"lock__duration",render:e.jsx(F,{variant:"subtle-white",className:n?u.active:u.inactive}),children:n?e.jsx(P,{}):e.jsx(U,{})})]})]})}function zt({group:t}){const{data:s}=J(),{updateEntry:a}=T(),n=m.useCallback((c,h)=>{if(typeof c=="string"&&c.startsWith("custom-")){const x=c.split("custom-")[1];a({id:t.id,custom:{[x]:h}});return}return a(c==="targetDuration"?{id:t.id,targetDuration:h}:{id:t.id,[c]:h})},[t.id,a]),o=window.location.pathname.includes("editor"),l=t.targetDuration===null?null:t.duration-t.targetDuration,i=l!==null?ye(l):null;return e.jsxs("div",{className:u.content,children:[e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Group schedule"}),e.jsxs("div",{className:u.inline,children:[e.jsxs("div",{children:[e.jsx(b,{children:"First event start"}),e.jsx(H,{className:u.textLikeInput,disabled:!0,children:I(t.timeStart,{fallback:ee})})]}),e.jsxs("div",{children:[e.jsx(b,{children:"Last event end"}),e.jsx(H,{className:u.textLikeInput,disabled:!0,children:I(t.timeEnd,{fallback:ee})})]}),e.jsxs("div",{children:[e.jsx(b,{htmlFor:"duration",children:"Scheduled duration"}),e.jsx(H,{className:u.textLikeInput,disabled:!0,children:I(t.duration,{fallback:K})})]})]}),e.jsxs("div",{className:u.inline,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"eventId",children:"Plan offset"}),e.jsxs(H,{offset:i,className:O([u.textLikeInput,l===null&&u.inactive]),disabled:!0,children:[l!==null&&l>0?"+":"",I(l,{fallback:K})]})]}),e.jsx(pt,{duration:t.duration,targetDuration:t.targetDuration,submitHandler:n})]})]}),e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Group data"}),e.jsxs("div",{children:[e.jsx(b,{children:"Colour"}),e.jsx(Q,{name:"colour",value:t.colour,handleChange:n})]}),e.jsx(D,{field:"title",label:"Title",initialValue:t.title,submitHandler:n}),e.jsx(B,{field:"note",label:"Note",initialValue:t.note,submitHandler:n})]}),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Custom Fields",o&&e.jsx(W,{search:"settings=manage__custom",children:"Manage Custom Fields"})]}),e.jsx(X,{fields:s,handleSubmit:n,entry:t})]})]})}function Ht({milestone:t}){const{data:s}=J(),{updateEntry:a}=T(),n=m.useCallback((l,i)=>{if(typeof l=="string"&&l.startsWith("custom-")){const c=l.split("custom-")[1];a({id:t.id,custom:{[c]:i}});return}return a({id:t.id,[l]:i})},[t.id,a]),o=window.location.pathname.includes("editor");return e.jsxs("div",{className:u.content,children:[e.jsxs("div",{className:u.column,children:[e.jsx(y,{children:"Milestone data"}),e.jsxs("div",{className:u.splitTwo,children:[e.jsxs("div",{children:[e.jsx(b,{htmlFor:"entryId",children:"Milestone ID (read only)"}),e.jsx(R,{id:"entryId","data-testid":"input-textfield",value:t.id,readOnly:!0,fluid:!0})]}),e.jsx(D,{field:"cue",label:"Cue",initialValue:t.cue,submitHandler:n,maxLength:10})]}),e.jsxs("div",{children:[e.jsx(b,{children:"Colour"}),e.jsx(Q,{name:"colour",value:t.colour,handleChange:n})]}),e.jsx(D,{field:"title",label:"Title",initialValue:t.title,submitHandler:n}),e.jsx(B,{field:"note",label:"Note",initialValue:t.note,submitHandler:n})]}),e.jsxs("div",{className:u.column,children:[e.jsxs(y,{children:["Custom Fields",o&&e.jsx(W,{search:"settings=manage__custom",children:"Manage Custom Fields"})]}),e.jsx(X,{fields:s,handleSubmit:n,entry:t})]})]})}export{Le as A,qt as E,zt as G,Ht as M,H as T,Ze as a,u as s,le as u};
|
|
2
|
+
//# sourceMappingURL=MilestoneEditor-CxWZdQ1B.js.map
|
|
Binary file
|
|
Binary file
|