UNPKG

@getontime/cli

Version:
3 lines (2 loc) 13.4 kB
import{j as e,l as K,h as l,o as se,ab as ne}from"./vendor-q6fv0YT2.js";import{e as o,q as ae,w as ie,f,P as re,h as R,x as D,y as oe,u as ce,b as le,L as de,d as U,z as ue,m as me,r as he,g as xe,O as fe,v as pe,A as ve}from"./index-B81u4hxi.js";import{g as ge}from"./getProgress-cLuBFPjh.js";import{E as ye}from"./Empty-CJbZxh45.js";import{E as _e}from"./EmptyPage-Bc358YpE.js";import{T as A}from"./TitleCard-Xdr7xwzU.js";import{V as je}from"./ViewLogo-G7EosFIr.js";import{O as M,m as W,a as Ne,V as we}from"./ViewParamsEditor-C2-TRP6e.js";import{u as Se}from"./useWindowTitle-Bpmo_HzW.js";import{i as q,b as be,c as Ee}from"./useRundown-Bn6ZPsz0.js";import{i as G,b as L}from"./viewUtils-B8Dr4GHH.js";import{g as ke}from"./offset-R98EXhWK.js";import{S as w}from"./SuperscriptPeriod-DsPdWN_s.js";import{S as C}from"./SuperscriptTime-CA6S2R55.js";import{g as Pe,a as Ie}from"./viewLoader.utils-b42scp-I.js";import{u as Te}from"./useCustomFields-k4piRt9n.js";import{u as Oe}from"./useProjectData-DdgKoYzk.js";import"./Select-BGGVCKqU.js";import"./SwatchPicker-Cm5Eicvv.js";/* empty css */(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]="cbb06a40-e589-4c06-9ce3-6a33e15541cd",t._sentryDebugIdIdentifier="sentry-dbid-cbb06a40-e589-4c06-9ce3-6a33e15541cd")}catch{}})();function Ce(t){const{current:s,duration:n,className:a}=t,i=ge(s,n);return e.jsx("div",{className:`progress-bar__bg ${a}`,children:e.jsx("div",{className:"progress-bar__indicator",style:{width:`${i}%`}})})}const Fe=t=>({title:M.Schedule,collapsible:!0,options:[{id:"filter",title:"Filter",description:"Hide events without data in the selected custom field",type:"option",values:t,defaultValue:"none"},{id:"stopCycle",title:"Stop cycling through event pages",description:"Schedule will not auto-cycle through events",type:"boolean",defaultValue:!1},{id:"cycleInterval",title:"Cycle interval",description:"How long (in seconds) should each schedule page be shown.",type:"number",defaultValue:10},{id:"showExpected",title:"Show expected time",description:"Whether the times shown should account for the runtime offset.",type:"boolean",defaultValue:!1}]});function Ve(t){return{filter:t.get("filter"),cycleInterval:Number(t.get("cycleInterval"))||10,stopCycle:G(t.get("stopCycle")),showExpected:G(t.get("showExpected"))}}function Z(){const[t]=K();return l.useMemo(()=>Ve(t),[t])}const J=l.createContext(void 0),Be=({children:t,selectedEventId:s})=>{const{cycleInterval:n,stopCycle:a,filter:i}=Z(),r=l.useCallback(u=>{if(i){const P=i.startsWith("custom-")?i.slice(7):i;return q(u)&&!!u.custom[P]}return q(u)},[i]),{data:c}=be(r),[h,x]=l.useState(-1),[p,g]=l.useState(0),[v,d]=l.useState(0),F=l.useRef(-1),j=l.useRef(void 0),S=l.useRef(null);l.useLayoutEffect(()=>{if(!S.current)return;const u=Array.from(S.current.children);if(u.length===0)return;const P=S.current.clientHeight;let b=0,V=1,I=1,_=-1,T=!1;for(let m=0;m<u.length;m++){const N=u[m].clientHeight,H=b+N>P;H&&(b=0,I+=1),m<h?O(u[m]):_===-1?(T=!0,V=I):H&&(T=!1),T?(_=m,B(u[m],b)):O(u[m]),b+=N}d(V),g(I),F.current=_;function B(m,N){m.style.top=`${N}px`}function O(m){m.style.top="-1000px"}},[h,c]),l.useEffect(()=>{if(a){d(1),x(0);return}j.current&&clearInterval(j.current);const u=setInterval(()=>{x(v===p?0:F.current+1)},n*1e3);return j.current=u,()=>clearInterval(j.current)},[n,p,a,v]);let y=c.findIndex(u=>u.id===s);const k=c.slice(y+1);return y=0,e.jsx(J,{value:{events:k,selectedEventId:s,numPages:p,visiblePage:v,containerRef:S},children:t})},X=()=>{const t=l.use(J);if(!t)throw new Error("useSchedule() can only be used inside a ScheduleContext");return t},E={format12:"h:mm a",format24:"HH:mm"};function He({timeStart:t,dayOffset:s,delay:n,totalGap:a,isLinkedToLoaded:i,countToEnd:r,colour:c,duration:h,skip:x,title:p,timeEnd:g,cue:v}){const{showExpected:d}=Z();return e.jsxs("li",{className:o(["entry",x&&"entry--skip"]),"data-testid":v,children:[e.jsx("div",{className:"entry-times",children:d?e.jsx(Re,{timeStart:t,dayOffset:s,delay:n,totalGap:a,isLinkedToLoaded:i,countToEnd:r,duration:h,colour:c}):n>0?e.jsx(Me,{timeStart:t,delay:n,colour:c,timeEnd:g}):e.jsx(Le,{timeStart:t,timeEnd:g,colour:c})}),e.jsx("div",{className:"entry-title",children:p})]})}function Le({timeStart:t,timeEnd:s,colour:n}){const a=f(t,E),i=f(s,E);return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"entry-colour",style:{backgroundColor:n}}),e.jsx(w,{time:a}),"→",e.jsx(w,{time:i})]})}function Me({timeStart:t,timeEnd:s,colour:n,delay:a}){const i=f(t,E),r=f(s,E),c=f(t+a,E),h=f(s+a,E);return e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"entry-times--delayed",children:[e.jsx("span",{className:"entry-colour",style:{backgroundColor:n}}),e.jsx(w,{time:i}),"→",e.jsx(w,{time:r})]}),e.jsxs("span",{className:"entry-times--delay",children:[e.jsx(w,{time:c}),"→",e.jsx(w,{time:h})]})]})}function Re({timeStart:t,dayOffset:s,delay:n,totalGap:a,isLinkedToLoaded:i,countToEnd:r,colour:c,duration:h}){const x=ae(),{expectedStart:p,expectedEnd:g,plannedEnd:v}=ie({timeStart:t,dayOffset:s,delay:n,totalGap:a,isLinkedToLoaded:i,countToEnd:r,duration:h},x);return e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"entry-colour",style:{backgroundColor:c}}),e.jsx(Q,{expectedTime:p,plannedTime:t}),"→",e.jsx(Q,{expectedTime:g,plannedTime:v})]})}function Q({expectedTime:t,plannedTime:s}){const n=f(t),a=ke(t-s);return e.jsx(w,{className:`entry-times--${a}`,time:n})}function $e({className:t}){const{events:s,containerRef:n}=X();return(s==null?void 0:s.length)<1?null:e.jsx("ul",{className:o(["schedule",t]),ref:n,children:s.map(a=>e.jsx(He,{timeStart:a.timeStart,dayOffset:a.dayOffset,delay:a.delay,totalGap:a.totalGap,isLinkedToLoaded:a.isLinkedToLoaded,countToEnd:a.countToEnd,duration:a.duration,colour:a.colour,skip:a.skip,title:a.title,timeEnd:a.timeEnd,cue:a.cue},a.id))})}function ze({className:t}){const{numPages:s,visiblePage:n}=X();return s>10?e.jsxs("div",{className:o(["schedule-nav",t]),children:[e.jsx("div",{className:o(["schedule-nav__item",n===1&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===2&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===3&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===4&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===5&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item","schedule-nav__item--indeterminate",n>5&&n<s-4&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===s-4&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===s-3&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===s-2&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===s-1&&"schedule-nav__item--selected"])}),e.jsx("div",{className:o(["schedule-nav__item",n===s&&"schedule-nav__item--selected"])})]}):e.jsx("div",{className:o(["schedule-nav",t]),children:s>1&&[...Array(s).keys()].map(a=>e.jsx("div",{className:o(["schedule-nav__item",a+1===n&&"schedule-nav__item--selected"])},a))})}const De=l.memo(Ae);function Ae(t){const{selectedId:s}=t;return e.jsxs(Be,{selectedEventId:s,children:[e.jsx(ze,{className:"schedule-nav-container"}),e.jsx($e,{className:"schedule-container"})]})}const We=(t,s,n)=>{const a=W(s,[{value:"none",label:"None"}]),i=W(s,[{value:"none",label:"None"},{value:"note",label:"Note"}]),r=Ne(n,[{value:"none",label:"None"}]);return[{title:M.ClockOptions,collapsible:!0,options:[Pe(t)]},{title:M.DataSources,collapsible:!0,options:[{id:"secondary-src",title:"Event secondary text",description:"Select the data source for auxiliary text shown in now and next cards",type:"option",values:i,defaultValue:"none"}]},Fe(a),{title:M.ElementVisibility,collapsible:!0,options:[{id:"extra-info",title:"Extra info",description:"Select a project data source to show in the view",type:"option",values:r,defaultValue:"none"}]}]};function qe(t,s){const n=a=>(s==null?void 0:s.get(a))??t.get(a);return{secondarySource:n("secondary-src"),extraInfo:n("extra-info")}}function Ge(){const[t]=K(),s=l.use(re);return l.useMemo(()=>{const a=s?new URLSearchParams(s.search):void 0;return qe(t,a)},[s,t])}function Qe(t){return(t??0)<0}function Ke(t){return t!==R.Stop}function Ue(t,s){return t===R.Roll&&s===oe.Pending}function Ze(t,s,n,a,i){if(i===R.Stop)return{showNow:!1,nowMain:void 0,nowSecondary:void 0,showNext:!1,nextMain:void 0,nextSecondary:void 0};const r=L(t,n)||D,c=L(t,a),h=L(s,n)||D,x=L(s,a);return{showNow:t!==null,nowMain:r,nowSecondary:c,showNext:s!==null,nextMain:h,nextSecondary:x}}function Je(){const t=ce(p=>p.mirror),{data:s,status:n}=Ee(),{data:a,status:i}=Oe(),{data:r,status:c}=le(),{data:h,status:x}=Te();return{data:{events:s,customFields:h,projectData:a,isMirrored:t,settings:r},status:Ie([n,i,c,x])}}function jt(){const{data:t,status:s}=Je();return Se("Backstage"),s==="pending"?e.jsx(de,{}):s==="error"?e.jsx(_e,{text:"There was an error fetching data, please refresh the page."}):e.jsx(Xe,{...t})}function Xe({events:t,customFields:s,projectData:n,isMirrored:a,settings:i}){const{getLocalizedString:r}=U(),{secondarySource:c,extraInfo:h}=Ge(),{eventNext:x,eventNow:p,rundown:g,selectedEventId:v,time:d}=ue(),[F,j]=l.useState(!1),{height:S}=se();l.useEffect(()=>{j(!1);const te=setTimeout(()=>{j(!0)},10);return()=>clearTimeout(te)},[v]);const y=t.length>0,{showNow:k,nowMain:u,nowSecondary:P,showNext:b,nextMain:V,nextSecondary:I}=Ze(p,x,"title",c,d.playback),_=Ue(d.playback,d.phase),T=_?f(d.secondaryTimer):f(d.startedAt),B=(()=>{if(!k&&y)return f(g.plannedStart,{format12:"h:mm a",format24:"HH:mm"})})(),O=(()=>{if(!k&&y)return f(g.plannedEnd,{format12:"h:mm a",format24:"HH:mm"})})();let m=me(d.current,{fallback:ve});m=he(m);const N=Math.max(window.innerWidth/15,72),H=Ke(d.playback),$=y&&S>420,Y=B&&O,z=xe(i==null?void 0:i.timeFormat),ee=l.useMemo(()=>We(z,s,n),[z,s,n]);return e.jsxs("div",{className:`backstage ${a?"mirror":""}`,"data-testid":"backstage-view",children:[e.jsx(we,{target:fe.Backstage,viewOptions:ee}),e.jsxs("div",{className:"project-header",children:[(n==null?void 0:n.logo)&&e.jsx(je,{name:n.logo,className:"logo"}),e.jsx("div",{className:"title",children:n.title}),e.jsx(et,{})]}),H&&e.jsx(Ce,{className:"progress-container",current:d.current,duration:d.duration}),!y&&e.jsx(ye,{text:r("common.no_data"),className:"empty-container"}),e.jsxs("div",{className:"card-container",children:[k&&e.jsxs("div",{className:o(["event","now",F&&"blink"]),children:[e.jsx(A,{title:u,secondary:P}),e.jsxs("div",{className:"timer-group",children:[e.jsxs("div",{className:"time-entry",children:[e.jsx("div",{className:o(["time-entry__label",_&&"time-entry--pending"]),children:r(_?"countdown.waiting":"common.started_at")}),e.jsx(C,{time:T,className:"time-entry__value"})]}),e.jsx("div",{className:"timer-gap"}),e.jsxs("div",{className:"time-entry",children:[e.jsx("div",{className:"time-entry__label",children:r("common.expected_finish")}),Qe(d.current)?e.jsx("div",{className:"time-entry__value",children:r("countdown.overtime")}):e.jsx(C,{time:f(d.expectedFinish),className:"time-entry__value"})]}),e.jsx("div",{className:"timer-gap"}),e.jsxs("div",{className:"time-entry",children:[e.jsx("div",{className:"time-entry__label",children:r("common.stage_timer")}),e.jsx("div",{className:"time-entry__value",children:m})]})]})]}),Y&&e.jsxs("div",{className:"event",children:[e.jsx("div",{className:"title-card__placeholder",children:r("countdown.waiting")}),e.jsxs("div",{className:"timer-group",children:[e.jsxs("div",{className:"time-entry",children:[e.jsx("div",{className:o(["time-entry__label",_&&"time-entry--pending"]),children:r("common.scheduled_start")}),e.jsx(C,{time:B,className:"time-entry__value"})]}),e.jsx("div",{className:"timer-gap"}),e.jsxs("div",{className:"time-entry",children:[e.jsx("div",{className:"time-entry__label",children:r("common.scheduled_end")}),e.jsx(C,{time:O,className:"time-entry__value"})]})]})]}),b&&y&&e.jsx(A,{className:"event",label:"next",title:V,secondary:I})]}),$&&e.jsx(De,{selectedId:v}),e.jsxs("div",{className:o(["info",!$&&"info--stretch"]),children:[h&&e.jsx(Ye,{projectData:n,size:N,source:h}),e.jsxs("div",{className:"info-card",children:[n.url&&e.jsx(ne,{value:n.url,size:N,level:"L",className:"info-card__qr"}),n.info&&e.jsx("div",{className:"info-card__message",children:n.info})]})]})]})}function Ye({projectData:t,size:s,source:n}){const a=t.custom.find((i,r)=>`${r}-${i.title}`===n);return a?e.jsxs("div",{className:"info-card",children:[a.url&&e.jsx("img",{className:"info-card__img",width:s,src:a.url,onError:i=>i.currentTarget.style.display="none"}),e.jsxs("div",{className:"info__column",children:[a.title&&e.jsx("div",{className:"info-card__label",children:a.title}),a.value&&e.jsx("div",{className:"info-card__message",children:a.value})]})]}):null}function et(){const{getLocalizedString:t}=U(),{clock:s}=pe(),n=f(s);return e.jsxs("div",{className:"clock-container",children:[e.jsx("div",{className:"label",children:t("common.time_now")}),e.jsx(C,{time:n,className:"time"})]})}export{jt as default}; //# sourceMappingURL=Backstage-CDH53Q_N.js.map