@getontime/cli
Version:
Time keeping for live events
2 lines • 14.1 kB
JavaScript
(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`f14ad0099eab1969fdd065b56af5fdd3cf530de6`};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`4fbd061b-5993-4f7d-9a15-6b07b5c98dc0`,e._sentryDebugIdIdentifier=`sentry-dbid-4fbd061b-5993-4f7d-9a15-6b07b5c98dc0`)}catch{}})();import{a as e,n as t,t as n}from"./jsx-runtime-BNC90REB.js";import{$ as r,C as i,Ct as a,Ft as o,Kt as s,Lt as c,Pt as l,Q as u,Tt as d,Ut as f,_t as p,d as m,dt as h,et as g,ft as _,ht as v,k as y,mt as b,p as x,vt as S}from"./useSocket-B9-0Z7zf.js";import{t as C}from"./Button-CsttsbOH.js";import{T as w,y as T}from"./useIsSmallScreen-Db4lRgi0.js";import"./Select-CujoWFOD.js";import{K as E,Q as D,in as ee,mt as O,nt as te,qt as k}from"./constants-8b9Q9Bj6.js";import"./SwatchPicker-C0WK8dMM.js";import"./viewParamsEditor.store-BcLRa99Z.js";import{t as ne}from"./throttle-W86nehU0.js";import{t as A}from"./useFadeOutOnInactivity-u16Uck_y.js";import{t as re}from"./useSettings-CeUw01Bu.js";import{r as ie}from"./useRundown-BubT2Cyp.js";import"./Input-D-3bhaHU.js";import{t as ae}from"./PresetContext-DZh_OrO5.js";import{t as oe}from"./viewOptions-z3iLoQCB.js";import"./assets-DU19UGw8.js";import{s as se,t as j}from"./index-qU8RbaVt.js";import"./Info-QUjDr4I8.js";import{t as M}from"./useReport-CrYKGJAO.js";import{t as N}from"./Empty-CSL3pipV.js";import{i as P,n as F,o as ce,t as le}from"./ViewParamsEditor-ZtF4EeBG.js";import{i as I,n as L}from"./viewUtils-CulstVIy.js";import{n as ue,t as de}from"./FollowButton-Cl31kc9t.js";import{t as R}from"./useWindowTitle-Dvj2xEXy.js";import{t as z}from"./useAutoTickingClock-CjJeDQz8.js";import{n as B,t as V}from"./common.options-DXL-8UPx.js";import{t as H}from"./offset-69iljPHz.js";import{t as fe}from"./useCustomFields-BMD3tm-0.js";import{t as pe}from"./viewLoader.utils-BLkafrJE.js";import{t as me}from"./ViewLogo-BuLAMmbq.js";import{t as U}from"./SuperscriptTime-Byp3JLgw.js";import{t as he}from"./useProjectData-DHesqFeW.js";var W=e(t(),1),G=(e,t,n)=>{let r=P(t,[{value:`title`,label:`Title`}]),i=P(t,[{value:`none`,label:`None`},{value:`note`,label:`Note`}]);return[{title:F.ClockOptions,collapsible:!0,options:[V(e)]},{title:F.DataSources,collapsible:!0,options:[{id:`main`,title:`Main text`,description:`Select the data source for the main text`,type:`option`,values:r,defaultValue:`title`},{id:`secondary-src`,title:`Event secondary text`,description:`Select the data source for auxiliary text shown in the card`,type:`option`,values:i,defaultValue:`none`}]},{title:F.BehaviourOptions,collapsible:!0,options:[{id:`showExpected`,title:`Show expected time`,description:`Whether the times shown should account for the runtime offset.`,type:`boolean`,defaultValue:!1}]},{title:F.ElementVisibility,collapsible:!0,options:[{id:`hidePast`,title:`Hide Past Events`,description:`Whether to hide events that have passed`,type:`boolean`,defaultValue:!1}]},{title:F.Hidden,options:[{id:`sub`,title:`Event subscription`,description:`The events and groups to follow`,values:n,type:`persist`}]}]};function ge(e,t){let n=n=>t?.get(n)??e.get(n);return{subscriptions:(n=>t?.has(n)?t.getAll(n):e.getAll(n))(`sub`),mainSource:n(`main`),secondarySource:n(`secondary-src`),showExpected:I(n(`showExpected`)),hidePast:I(n(`hidePast`)),timeformat:B(e,t)}}function K(){let[e]=T(),t=(0,W.use)(ae);return(0,W.useMemo)(()=>ge(e,t?new URLSearchParams(t.search):void 0),[t,e])}var q=`h:mm a`,J=`HH:mm`;function _e(e,t,n){return e===t&&n!==f.Armed}var Y={future:`countdown.to_start`,due:`timeline.due`,live:`countdown.running`,pending:`countdown.waiting`,loaded:`countdown.loaded`,done:`countdown.ended`};function X(e){let{playback:t,current:n,clock:i}=m(),{getLocalizedString:o}=j(),s=e=>e<=0?o(`countdown.overtime`).toUpperCase():e<6e4*10?S(p(e)):u(e,e>a*10).replace(`m`,`${o(`common.minutes`)} `).replace(`s`,o(`common.seconds`));return e.isLoaded?t===f.Armed?{status:`loaded`,statusDisplay:o(Y.loaded),timeDisplay:s(e.duration)}:{status:`live`,statusDisplay:o(e.parent||e.isGroup&&e.liveEntry?`countdown.group_running`:Y.live),timeDisplay:s(n??0)}:t===f.Stop||t===f.Armed?{status:`pending`,statusDisplay:o(Y.pending),timeDisplay:` `}:e.isPast?{status:`done`,statusDisplay:o(Y.done),timeDisplay:r(e.endedAt,{format12:q,format24:J})}:e.expectedStart-i<=0?{status:`due`,statusDisplay:o(Y.future),timeDisplay:o(Y.due).toUpperCase()}:{status:`future`,statusDisplay:o(Y.future),timeDisplay:s(e.expectedStart-i)}}function ve(e,t){let n=new URL(e),r=new URLSearchParams;for(let[e,t]of n.searchParams.entries())e!==`sub`&&r.append(e,t);return t.forEach(e=>{r.append(`sub`,e)}),n.search=r.toString(),n}function ye(e,t){return t.filter(t=>e.includes(t.id))}function be(e,t){return Math.abs(e-t)>a}function xe(e,t){if(!o(e))return e;let n=t.filter(t=>l(t)&&c(t)&&t.parent===e.id);if(n.length===0)return null;let r=n[0],i=n[n.length-1],a=n.find(e=>e.isLoaded)??null,s=a!==null,u=!s&&i.isPast;return{...r,id:e.id,parent:null,title:e.title,colour:e.colour,note:e.note,custom:e.custom,duration:e.duration,countToEnd:!1,isLoaded:s,isPast:u,isGroup:!0,targetId:r.id,reportId:i.id,liveEntry:a}}function Se(e,t,n,r,i,a,o){let{totalGap:s,isLinkedToLoaded:c}=e,l=v(e,{currentDay:t,totalGap:s,actualStart:n,plannedStart:r,isLinkedToLoaded:c,offset:i,mode:a}),u=b(e,l,t),{endedAt:d}=o[e.reportId??e.id]??{endedAt:null};return{...e,expectedStart:l,endedAt:d,expectedEnd:u}}var Z=n();function Q(e){let{value:t,preferredFormat12:n=h,preferredFormat24:i=_,className:a}=e;return(0,Z.jsx)(U,{className:a,time:r(t,{format12:n,format24:i})})}function Ce({events:e,subscriptions:t,disableEdit:n}){let[r,i]=(0,W.useState)(t),a=w(),s=e=>{i(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},c=()=>{let t=r.filter(t=>e.some(e=>e.id===t)),o=ve(window.location.href,t);n(),i([]),a(o.search.toString())},l=new Set(r);return(0,Z.jsxs)(`div`,{className:`list-container`,children:[e.map(e=>{let t=e.title||`{no title}`,n=l.has(e.id),r=o(e),i=!r&&!!e.parent;return(0,Z.jsxs)(`div`,{role:`button`,tabIndex:0,onClick:()=>s(e.id),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(s(e.id),t.stopPropagation())},className:E([`sub`,n&&`sub--selected`,r&&`sub--group`,i&&`sub--in-group`]),children:[(0,Z.jsx)(`div`,{className:`sub__binder`,style:{"--user-color":e?.colour??``,"--group-color":e.groupColour??`transparent`}}),(0,Z.jsxs)(`div`,{className:`sub__schedule`,children:[(0,Z.jsx)(Q,{value:e.timeStart,preferredFormat12:`h:mm a`,preferredFormat24:`HH:mm`}),`→`,(0,Z.jsx)(Q,{value:e.timeEnd,preferredFormat12:`h:mm a`,preferredFormat24:`HH:mm`})]}),(0,Z.jsx)(`div`,{className:`sub__label`,children:n?`Click to remove`:`Click to add`}),(0,Z.jsxs)(`div`,{className:`sub__title`,children:[r&&(0,Z.jsx)(`span`,{className:`sub__eyebrow`,children:`Group`}),t]})]},e.id)}),(0,Z.jsxs)(`div`,{className:`fab-container`,children:[(0,Z.jsxs)(`div`,{className:`selection-count`,children:[r.length,` selected`]}),(0,Z.jsxs)(C,{variant:`subtle`,size:`xlarge`,onClick:n,children:[(0,Z.jsx)(te,{}),` Go back`]}),(0,Z.jsxs)(C,{variant:`subtle`,size:`xlarge`,onClick:()=>i([]),disabled:r.length===0,children:[(0,Z.jsx)(O,{}),` Clear`]}),(0,Z.jsxs)(C,{variant:`primary`,size:`xlarge`,disabled:e.length<1,onClick:c,children:[(0,Z.jsx)(ee,{}),` Save`]})]})]})}function we({subscribedEvents:e,goToEditMode:t}){let{mainSource:n,secondarySource:r,showExpected:a}=K(),o=i(),s=y(),c=A(!0),{data:l}=M(),{offset:u,currentDay:d,actualStart:f,plannedStart:p,mode:m}=x(),h=(0,W.useRef)(null),[g,_]=(0,W.useState)(!1),v=(0,W.useRef)(null),b=(0,W.useRef)(null),S=ue({followRef:v,scrollRef:b,doFollow:!g,topOffset:0,followTrigger:s});(0,W.useEffect)(()=>{s||g||b.current?.scrollTo(0,0)},[s,g,b]);let w=()=>{s&&S(),_(!1)},T=ne(()=>{if(v?.current&&b?.current){let e=v.current.getBoundingClientRect(),t=b.current.getBoundingClientRect();if(e&&t){let n=e.top-t.top;_(n<-8||n>50)}}},1e3),D=()=>{h.current&&clearTimeout(h.current),T()};return(0,Z.jsxs)(`div`,{className:`list-container`,onWheel:D,onTouchMove:D,ref:b,children:[e.map(e=>{let t=(e.isGroup&&e.liveEntry?e.liveEntry.title:void 0)??L(e,r),i=!e.isGroup&&!!e.parent,c=e.isGroup?e.liveEntry?.id??e.targetId:e.id,h=c?_e(c,s,o):!1,g=!h&&c===s,_=Se(e,d,f,p,u,m,l),y=L(e,n??`title`);return(0,Z.jsxs)(`div`,{ref:h?v:void 0,className:E([`sub`,h&&`sub--live`,g&&`sub--armed`,e.isGroup&&`sub--group`,i&&`sub--in-group`]),"data-testid":e.cue,children:[(0,Z.jsx)(`div`,{className:`sub__binder`,style:{"--user-color":e.colour,"--group-color":e.groupColour??`transparent`}}),(0,Z.jsx)($,{event:_,showExpected:a}),(0,Z.jsx)(Te,{event:_}),(0,Z.jsxs)(`div`,{className:E([`sub__title`,!y&&`subdued`]),children:[e.isGroup&&(0,Z.jsx)(`span`,{className:`sub__eyebrow`,children:`Group`}),y]}),t&&(0,Z.jsx)(`div`,{className:`sub__secondary`,children:t})]},e.id)}),(0,Z.jsx)(`div`,{className:E([`fab-container`,!c&&`fab-container--hidden`]),children:(0,Z.jsxs)(C,{variant:`primary`,size:`xlarge`,onClick:t,children:[(0,Z.jsx)(k,{}),` Edit`]})}),(0,Z.jsx)(de,{isVisible:g,onClickHandler:w})]})}function $(e){let{event:t,showExpected:n}=e,{timeStart:r,duration:i,delay:a,expectedStart:o,expectedEnd:s}=t,c=r+a+t.dayOffset*d,l=n&&be(c,o),u=l?`sub__schedule--strike`:a===0?``:`sub__schedule--delayed`,f=`sub__schedule--${H(o-c)}`,p=c+i+a,m=`sub__schedule--${H(s-p)}`;return(0,Z.jsxs)(`div`,{className:`sub__schedule`,children:[(0,Z.jsx)(Q,{value:c,preferredFormat12:q,preferredFormat24:J,className:u}),!l&&(0,Z.jsxs)(Z.Fragment,{children:[`→`,(0,Z.jsx)(Q,{value:p,preferredFormat12:`h:mm a`,preferredFormat24:`HH:mm`,className:u})]}),l&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Q,{value:o,className:f,preferredFormat12:`h:mm a`,preferredFormat24:`HH:mm`}),`→`,(0,Z.jsx)(Q,{value:s,className:m,preferredFormat12:`h:mm a`,preferredFormat24:`HH:mm`})]})]})}function Te({event:e}){let{status:t,statusDisplay:n,timeDisplay:r}=X(e);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`sub__status`,children:n}),t===`done`?(0,Z.jsx)(U,{className:`sub__timer`,time:r}):(0,Z.jsx)(`div`,{className:`sub__timer`,children:r})]})}function Ee({subscribedEvent:e,goToEditMode:t}){let{mainSource:n,secondarySource:r,showExpected:i}=K(),a=A(!0),{data:o}=M(),{offset:s,currentDay:c,actualStart:l,plannedStart:u,mode:d}=x(),{totalGap:f,isLinkedToLoaded:p}=e,m=v(e,{currentDay:c,totalGap:f,actualStart:l,plannedStart:u,isLinkedToLoaded:p,offset:s,mode:d}),h=b(e,m,c),{endedAt:g}=o[e.reportId??e.id]??{endedAt:null},_={...e,expectedStart:m,endedAt:g,expectedEnd:h},y=L(e,n??`title`),S=y?.length?y:`\xA0`,w=(e.isGroup&&e.liveEntry?e.liveEntry.title:void 0)??L(e,r);return(0,Z.jsxs)(`div`,{className:`single-container`,"data-testid":`countdown-event`,children:[(0,Z.jsx)(De,{event:_}),(0,Z.jsxs)(`div`,{className:`event__title`,style:{borderColor:_.colour},children:[(0,Z.jsx)($,{event:_,showExpected:i}),S,w&&(0,Z.jsx)(`div`,{className:`secondary`,children:w})]}),(0,Z.jsx)(`div`,{className:E([`fab-container`,!a&&`fab-container--hidden`]),children:(0,Z.jsxs)(C,{variant:`primary`,size:`xlarge`,onClick:t,children:[(0,Z.jsx)(k,{}),` Edit`]})})]})}function De({event:e}){let{status:t,statusDisplay:n,timeDisplay:r}=X(e);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`event__status`,children:n}),t===`done`?(0,Z.jsx)(U,{className:`event__timer`,time:r}):(0,Z.jsx)(`div`,{className:`event__timer`,children:r})]})}function Oe(){let e=oe(e=>e.mirror),{data:t,status:n}=ie(),{data:r,status:i}=he(),{data:a,status:o}=re(),{data:s,status:c}=fe();return{data:{customFields:s,rundownData:t,projectData:r,isMirrored:e,settings:a},status:pe([n,i,o,c])}}function ke(){let{data:e,status:t}=Oe();return R(`Countdown`),t===`pending`?(0,Z.jsx)(se,{}):t===`error`?(0,Z.jsx)(ce,{variant:`error`,text:`There was an error fetching data, please refresh the page.`}):(0,Z.jsx)(Ae,{...e})}function Ae({customFields:e,rundownData:t,projectData:n,isMirrored:r,settings:i}){let{getLocalizedString:a}=j(),{subscriptions:u}=K(),[d,f]=(0,W.useState)(!1),p=t.filter(e=>l(e)?c(e):o(e)?t.some(t=>l(t)&&c(t)&&t.parent===e.id):!1),m=p.length>0,h=g(i?.timeFormat),_=(0,W.useMemo)(()=>G(h,e,u),[h,e,u]);return(0,Z.jsxs)(`div`,{className:`countdown ${r?`mirror`:``}`,"data-testid":`countdown-view`,children:[(0,Z.jsx)(le,{target:s.Countdown,viewOptions:_}),(0,Z.jsxs)(`div`,{className:`project-header`,children:[(0,Z.jsxs)(`div`,{className:E([`project-header__brand`,!n?.logo&&`project-header__brand--without-logo`]),children:[n?.logo&&(0,Z.jsx)(me,{name:n.logo,className:`logo`}),(0,Z.jsx)(`div`,{className:`title`,children:n.title})]}),(0,Z.jsx)(Me,{})]}),!m&&(0,Z.jsx)(`div`,{className:`empty-state`,children:(0,Z.jsx)(N,{text:a(`common.no_data`)})}),m&&d&&(0,Z.jsx)(Ce,{events:p,subscriptions:u,disableEdit:()=>f(!1)}),m&&!d&&(0,Z.jsx)(je,{candidates:p,rundownData:t,subscriptions:u,goToEditMode:()=>f(!0)})]})}function je({candidates:e,rundownData:t,subscriptions:n,goToEditMode:r}){let{getLocalizedString:i}=j(),{hidePast:a}=K();if(n.length===0)return(0,Z.jsxs)(`div`,{className:`empty-state`,children:[(0,Z.jsx)(N,{text:i(`countdown.select_event`)}),(0,Z.jsxs)(C,{variant:`primary`,size:`xlarge`,onClick:r,children:[(0,Z.jsx)(D,{}),` Add`]})]});let o=ye(n,e).map(e=>xe(e,t)).filter(e=>e!==null),s=a?o.filter(e=>!e.isPast):o;if(o.length===0)return(0,Z.jsxs)(`div`,{className:`empty-state`,children:[(0,Z.jsx)(N,{text:i(`countdown.select_event`)}),(0,Z.jsxs)(C,{variant:`primary`,size:`xlarge`,onClick:r,children:[(0,Z.jsx)(D,{}),` Add`]})]});if(o.length===1&&s.length===1){let e=o.at(0);return e?(0,Z.jsx)(Ee,{subscribedEvent:e,goToEditMode:r}):null}return s.length===0?(0,Z.jsx)(`div`,{className:`empty-state`,children:(0,Z.jsx)(N,{text:i(`countdown.all_have_finished`)})}):(0,Z.jsx)(we,{subscribedEvents:s,goToEditMode:r})}function Me(){let{timeformat:e}=K(),{getLocalizedString:t}=j(),n=r(z(),{override:e});return(0,Z.jsxs)(`div`,{className:`clock-container`,children:[(0,Z.jsx)(`div`,{className:`label`,children:t(`common.time_now`)}),(0,Z.jsx)(U,{time:n,className:`time`})]})}export{ke as default};
//# sourceMappingURL=Countdown-CxqJ8TlA.js.map