@motion-studio/cli 0.0.0-stage → 0.1.0
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/LICENSE +21 -0
- package/README.md +299 -2
- package/dist/main.js +56971 -0
- package/dist/mcp-studio.mjs +213 -0
- package/dist/runtime/clock.js +1 -0
- package/dist/runtime/index.html +14 -0
- package/dist/runtime/layer.js +1 -0
- package/dist/runtime/preview.js +62 -0
- package/dist/runtime/runtime.js +1 -0
- package/dist/web/apple-touch-icon.png +0 -0
- package/dist/web/assets/index-CCBNWqgR.css +1 -0
- package/dist/web/assets/index-DCwEfJxp.js +34 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
- package/dist/web/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
- package/dist/web/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
- package/dist/web/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
- package/dist/web/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
- package/dist/web/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
- package/dist/web/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
- package/dist/web/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
- package/dist/web/assets/logo-Dd9VMLzB.svg +3 -0
- package/dist/web/assets/logo-dark-Yi8yb5WJ.svg +3 -0
- package/dist/web/assets/logo-horizontal-Blb7HKgj.svg +3 -0
- package/dist/web/assets/logo-horizontal-dark-B16it8f0.svg +3 -0
- package/dist/web/assets/react-VlNyIE0d.js +9 -0
- package/dist/web/assets/schibsted-grotesk-latin-400-normal-BkiRe4WW.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-400-normal-DPhJBilQ.woff2 +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-500-normal-Ba39e-CX.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-500-normal-rf9C4Thp.woff2 +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-600-normal-BieE9YjJ.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-600-normal-Czv9Obfv.woff2 +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-700-normal-BkH0uJ1o.woff2 +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-700-normal-Dz-okVa0.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-400-normal-DHVTfbSM.woff2 +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-400-normal-DUPvg9bQ.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-500-normal-BjmYCtCC.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-500-normal-Ch1izu81.woff2 +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-600-normal-C5pQPdUJ.woff2 +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-600-normal-DQsnXf5q.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-700-normal-DDW2aNyx.woff +0 -0
- package/dist/web/assets/schibsted-grotesk-latin-ext-700-normal-o210KhU4.woff2 +0 -0
- package/dist/web/assets/shared-D-Exbs4c.js +29 -0
- package/dist/web/assets/vendor-CfFIcVU3.css +1 -0
- package/dist/web/assets/vendor-IQO2I6nB.js +57 -0
- package/dist/web/favicon.ico +0 -0
- package/dist/web/favicon.svg +3 -0
- package/dist/web/icon-192.png +0 -0
- package/dist/web/icon-512-maskable.png +0 -0
- package/dist/web/icon-512.png +0 -0
- package/dist/web/index.html +22 -0
- package/dist/web/site.webmanifest +15 -0
- package/package.json +49 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{function St(e){let n=typeof e.requestAnimationFrame=="function"?e.requestAnimationFrame.bind(e):null,r=e.setTimeout.bind(e);return{setTimeout:(i,a)=>r(i,a),clearTimeout:e.clearTimeout.bind(e),requestAnimationFrame:n??(i=>r(()=>i(0),16)),performanceNow:e.performance.now.bind(e.performance)}}function Mt(e){return e.__msClock?.native??St(e)}function Tt(e){let n=e;if(n.__msClock)return n.__msClock;let r=St(e),i=e.Date,a=0,s=0,d=new Map,l=new Map,E=(y,k)=>{if(typeof y=="function")try{y(...k)}catch(F){e.console?.error(F)}};function p(...y){return new.target?y.length?new i(...y):new i(17672256e5+a):new i(17672256e5+a).toString()}p.prototype=i.prototype,p.now=()=>17672256e5+a,p.UTC=i.UTC,p.parse=i.parse,e.Date=p,Object.defineProperty(e.performance,"now",{value:()=>a,configurable:!0,writable:!0});let g=(y,k,F,m)=>{let x=++s,A=Math.max(m?1:0,Number(k)||0);return d.set(x,{due:a+A,fn:y,args:F,...m?{interval:A}:{}}),x},T=y=>{d.delete(Number(y))};e.setTimeout=((y,k,...F)=>g(y,k,F,!1)),e.setInterval=((y,k,...F)=>g(y,k,F,!0)),e.clearTimeout=T,e.clearInterval=T,e.requestAnimationFrame=y=>{let k=++s;return l.set(k,y),k},e.cancelAnimationFrame=y=>{l.delete(y)};let w=y=>{let k=0;for(;k<1e5;k++){let F=-1,m;for(let[x,A]of d)A.due<=y&&(!m||A.due<m.due)&&(F=x,m=A);if(!m)break;m.due>a&&(a=m.due),m.interval?m.due+=m.interval:d.delete(F),E(m.fn,m.args)}return k},M=()=>{let y=l;l=new Map;for(let k of y.values())E(k,[a]);return y.size},R={get now(){return a},native:r,advanceTo(y){Number.isFinite(y)&&(w(y),a=y,M())},runDueTimers:()=>w(a),runFrame:M,nextTimerDue(){let y=null;for(let k of d.values())(y===null||k.due<y)&&(y=k.due);return y},pendingFrames:()=>l.size};return Object.defineProperty(n,"__msClock",{value:R,configurable:!1,enumerable:!1,writable:!1}),R}function Rt(e,n,r){let i=e.trim(),a=/^(inset|circle|ellipse|polygon)\((.*)\)$/.exec(i);if(!a||!(n>0&&r>0))return!1;let s=w=>{let M=/^(-?\d*\.?\d+(?:e-?\d+)?)(px|%)?$/.exec(w);if(!M)return null;let R=Number(M[1]);return M[2]==="%"?{px:0,frac:R/100}:M[2]==="px"||R===0?{px:R,frac:0}:null},d=(w,M,R)=>[Math.max(R-.5,0),R+.5].every(y=>w.px+M.px+(w.frac+M.frac)*y>=y),l=a[2].trim();if(a[1]==="inset"){let w=l.split(/\s+round\s+/)[0].trim().split(/\s+/);if(w.length<1||w.length>4)return!1;let[M,R=M,y=M,k=R]=w,F=s(M),m=s(R),x=s(y),A=s(k);return F===null||m===null||x===null||A===null?!1:d(A,m,n)||d(F,x,r)}if(a[1]==="circle"||a[1]==="ellipse"){let w=l.split(/\s+at\s+/)[0].trim();if(!w||/closest|farthest/.test(w))return!1;let M=w.split(/\s+/).map(s);if(M.some(y=>y===null))return!1;let R=M.map(y=>y.px===0&&y.frac===0);return a[1]==="circle"?R[0]===!0:R[0]===!0||R[1]===!0}let E=l.replace(/^(?:nonzero|evenodd)\s*,\s*/,"").split(",").map(w=>w.trim().split(/\s+/)),p=[],g=[];for(let[w,M,...R]of E){if(w===void 0||M===void 0||R.length)return!1;let y=s(w),k=s(M);if(y===null||k===null)return!1;p.push(y),g.push(k)}if(!p.length)return!1;let T=w=>w.every(M=>M.px===w[0].px&&M.frac===w[0].frac);return T(p)||T(g)}var Ct="ease-out";var Mn={fadeIn:{steps:()=>[{prop:"opacity",from:0,to:1}]},fadeOut:{steps:()=>[{prop:"opacity",from:1,to:0}],atEnd:!0},slideUp:{steps:e=>[{prop:"y",from:Math.round(e.height*.1),to:0}]},slideDown:{steps:e=>[{prop:"y",from:-Math.round(e.height*.1),to:0}]},slideLeft:{steps:e=>[{prop:"x",from:Math.round(e.width*.1),to:0}]},slideRight:{steps:e=>[{prop:"x",from:-Math.round(e.width*.1),to:0}]},popIn:{steps:()=>[{prop:"scale",from:.5,to:1,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)"},{prop:"opacity",from:0,to:1}]},scaleIn:{steps:()=>[{prop:"scale",from:0,to:1}]},wipe:{steps:()=>[{prop:"clip",from:"inset(0px 100% 0px 0px)",to:"inset(0px 0% 0px 0px)"}]}},Lt={opacity:"opacity",x:"--ms-x",y:"--ms-y",scale:"--ms-scale",rotation:"--ms-rotate",color:"color",blur:"--ms-blur",clip:"clipPath"},Tn=/^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;function ye(e,n){if(e==="clip")return typeof n=="string"?n:null;if(e==="color")return typeof n=="string"&&Tn.test(n)?n:null;if(typeof n!="number"||!Number.isFinite(n))return null;switch(e){case"x":case"y":case"blur":return`${n}px`;case"rotation":return`${n}deg`;default:return String(n)}}function At(e,n,r){let i=[];for(let[s,d]of(e??[]).entries()){let l=Rn(d,n);l?i.push(...l):r?.(`animation ${s} skipped: unknown preset or a value of the wrong kind`)}i.sort((s,d)=>s.start-d.start);let a=new Set;for(let s of i)s.fill=a.has(s.property)?"forwards":"both",a.add(s.property);return i}function Rn(e,n){if(!(e.duration>0))return null;if("preset"in e){let d=Mn[e.preset];if(!d)return null;let l=e.start??(d.atEnd?n.clipDuration-e.duration:0),E=[];for(let p of d.steps(n)){let g=ye(p.prop,p.from),T=ye(p.prop,p.to);if(g===null||T===null)return null;let w=Lt[p.prop];E.push({property:w,keyframes:[{[w]:g},{[w]:T}],start:l,duration:e.duration,easing:e.ease??p.easing??Ct,fill:"both"})}return E}let r=e.prop,i=Lt[r];if(!i)return null;if("keyframes"in e){let d=[];for(let l of e.keyframes){let E=ye(r,l.v);if(E===null)return null;d.push({[i]:E,offset:l.t,easing:l.ease??"linear"})}return[{property:i,keyframes:d,start:e.start??0,duration:e.duration,easing:"linear",fill:"both"}]}let a=ye(r,e.from),s=ye(r,e.to);return a===null||s===null?null:[{property:i,keyframes:[{[i]:a},{[i]:s}],start:e.start??0,duration:e.duration,easing:e.ease??Ct,fill:"both"}]}function Ft(e,n){let r=i=>({scale:String(i.scale??1),translate:`${i.x??0}px ${i.y??0}px`});return{property:"kenBurns",keyframes:[r(e.from),r(e.to)],start:0,duration:n,easing:"linear",fill:"both"}}var Pt=[{name:"--ms-x",syntax:"<length>",initialValue:"0px"},{name:"--ms-y",syntax:"<length>",initialValue:"0px"},{name:"--ms-scale",syntax:"<number>",initialValue:"1"},{name:"--ms-rotate",syntax:"<angle>",initialValue:"0deg"},{name:"--ms-blur",syntax:"<length>",initialValue:"0px"}];var pe=class extends Error{code="frameTimeout";constructor(n){super(`no animation frame within ${n} ms`),this.name="FrameTimeoutError"}},Ot={strict:!1,timeoutMs:100};function It(e,n=Ot){return new Promise((r,i)=>{let a=!1,s=e.setTimeout(()=>{a||(a=!0,n.strict?i(new pe(n.timeoutMs)):r())},n.timeoutMs);e.requestAnimationFrame(()=>{a||(a=!0,e.clearTimeout(s),r())})})}async function Le(e,n=Ot){await It(e,n),await It(e,n)}function ne(e,n,r,i){return new Promise((a,s)=>{let d=r.setTimeout(()=>s(new Error(i)),n);e.then(l=>{r.clearTimeout(d),a(l)},l=>{r.clearTimeout(d),s(l instanceof Error?l:new Error(String(l)))})})}var $t={cues:2e3,words:60,text:200,wordText:100,lang:35,ms:36e6},ze=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),Ke=(e,n)=>Object.keys(e).every(r=>n.includes(r)),Ae=e=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=$t.ms,Cn=/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/;function ge(e){let n=$t;if(!ze(e)||!Ke(e,["lang","cues"]))return{ok:!1,reason:"not a subtitles block"};if(typeof e.lang!="string"||e.lang.length>n.lang||!Cn.test(e.lang))return{ok:!1,reason:"bad language"};if(!Array.isArray(e.cues)||e.cues.length>n.cues)return{ok:!1,reason:`cues must be an array of at most ${n.cues}`};let r=[],i=0;for(let a=0;a<e.cues.length;a++){let s=e.cues[a];if(!ze(s)||!Ke(s,["start","end","text","words"]))return{ok:!1,reason:`cue ${a} is malformed`};if(!Ae(s.start)||!Ae(s.end)||!(s.end>s.start))return{ok:!1,reason:`cue ${a} has bad times`};if(s.start<i)return{ok:!1,reason:`cue ${a} is out of order`};if(i=s.start,typeof s.text!="string"||s.text.length>n.text)return{ok:!1,reason:`cue ${a} has a bad text`};let d;if(s.words!==void 0){if(!Array.isArray(s.words)||s.words.length>n.words)return{ok:!1,reason:`cue ${a} has too many words`};d=[];for(let l of s.words){if(!ze(l)||!Ke(l,["start","end","text"])||!Ae(l.start)||!Ae(l.end)||l.end<l.start||typeof l.text!="string"||l.text.length===0||l.text.length>n.wordText)return{ok:!1,reason:`cue ${a} has a bad word`};d.push({start:l.start,end:l.end,text:l.text})}}r.push({start:s.start,end:s.end,text:s.text,...d?{words:d}:{}})}return{ok:!0,subtitles:{lang:e.lang,cues:Object.freeze(r)}}}function Nt(e,n){let r=0,i=e.length-1,a=-1;for(;r<=i;){let l=r+i>>1;e[l].start<=n?(a=l,r=l+1):i=l-1}if(a<0)return-1;if(n<e[a].end)return a;let s=Ln(e),d=(l,E,p)=>{if(E>a||!(s.max[l]>n))return-1;if(E===p)return E;let g=E+p>>1,T=d(l*2+1,g+1,p);return T>=0?T:d(l*2,E,g)};return d(1,0,s.size-1)}var _t=new WeakMap;function Ln(e){let n=_t.get(e);if(n&&n.n===e.length)return n;let r=1;for(;r<e.length;)r*=2;let i=new Float64Array(r*2).fill(Number.NEGATIVE_INFINITY);for(let s=0;s<e.length;s++)i[r+s]=e[s].end;for(let s=r-1;s>=1;s--)i[s]=Math.max(i[s*2],i[s*2+1]);let a={n:e.length,size:r,max:i};return _t.set(e,a),a}var An=.2,Fn=e=>1-(1-e)**3,Ge=new WeakMap;function Pn(e){if(!e.words||e.words.length===0)return null;let n=[],r=0;for(let i of e.words){let a=e.text.indexOf(i.text,r);if(a<0)return null;n.push([a,a+i.text.length]),r=a+i.text.length}return n}function Vt(e,n,r,i,a,s={}){let d=n.props;if(!r){e.style.display="none",e.replaceChildren(),Ge.delete(e);return}let l=a.safeZone??{top:0,bottom:0,left:0,right:0},E=Math.max(l.left,l.right),p=Math.max(0,a.width-2*E),g=d.align??"center",T=d.position==="top"?{top:l.top+d.margin,bottom:l.bottom}:d.position==="bottom"?{top:l.top,bottom:l.bottom+d.margin}:l;Object.assign(e.style,{display:"flex",position:"absolute",left:`${E}px`,width:`${p}px`,top:`${T.top}px`,bottom:`${T.bottom}px`,pointerEvents:"none",flexDirection:d.position==="top"?"column-reverse":"column",justifyContent:d.position==="middle"?"safe center":"safe flex-end",alignItems:g==="left"?"flex-start":g==="right"?"flex-end":"center"});let w=d.highlight?Pn(r):null,M=-1;w&&(M=r.words.findIndex(O=>i>=O.start&&i<O.end));let R=`${n.id}|${d.highlight?.color??""}`,y=Ge.get(e),k=e.firstElementChild,F=!y||y.cue!==r||y.on!==M||y.key!==R||!k;if(F||!k){if(k=e.ownerDocument.createElement("div"),k.className="ms-subs-box",w){let O=0;w.forEach(([W,oe],se)=>{W>O&&k.append(r.text.slice(O,W));let K=e.ownerDocument.createElement("span");K.dataset.msWord=String(se),K.textContent=r.text.slice(W,oe),se===M&&(K.dataset.on="true",K.style.color=d.highlight.color),k.append(K),O=oe}),O<r.text.length&&k.append(r.text.slice(O))}else k.textContent=r.text;e.replaceChildren(k),Ge.set(e,{cue:r,on:M,key:R})}let m=d.fontSize,x=d.background?d.boxPadding??Math.round(m*.25):0,A=d.outlineColor&&(d.outlineWidth??0)>0?{color:d.outlineColor,width:d.outlineWidth}:null;Object.assign(k.style,{boxSizing:"border-box",maxWidth:`${Math.min(p,d.maxWidth*a.width)}px`,fontFamily:s.fontFamily??"sans-serif",fontSize:`${m}px`,fontWeight:String(d.fontWeight??"normal"),lineHeight:String(d.lineHeight??1.2),color:d.color,textAlign:g,whiteSpace:"pre-line",overflowWrap:"break-word",padding:`${x}px`,borderRadius:d.background?`${d.boxRadius??0}px`:"0px",backgroundColor:d.background??"transparent",webkitTextStroke:A?`${A.width*2}px ${A.color}`:"",paintOrder:A?"stroke fill":"",textShadow:d.shadow?`0 ${he(m*.04)}px ${he(m*.15)}px rgba(0, 0, 0, 0.75)`:""}),k.style.setProperty("text-wrap","balance"),F&&In(k,x);let C=d.entrance??"none",P=d.entranceSec??An,$=C==="none"||!(P>0)?1:Math.min(1,Math.max(0,(i-r.start)/(P*1e3))),H=Fn($);k.style.opacity=C==="none"||$>=1?"1":String(he(H,4)),k.style.transform=C==="pop"&&$<1?`scale(${he(.8+.2*H,4)})`:C==="slideUp"&&$<1?`translateY(${he((1-H)*m*.6,2)}px)`:""}function In(e,n){e.style.width="";let r=e.ownerDocument.createRange();r.selectNodeContents(e);let i=typeof r.getClientRects=="function"?[...r.getClientRects()].filter(p=>p.width>0&&p.height>0):[],a=e.offsetWidth,s=e.getBoundingClientRect().width;if(i.length===0||!(a>0)||!(s>0))return;let d=[];for(let p of i){let g=p.top+p.height/2,T=d.find(w=>Math.abs(w.mid-g)<w.half);T?(T.left=Math.min(T.left,p.left),T.right=Math.max(T.right,p.right)):d.push({mid:g,half:p.height/2,left:p.left,right:p.right})}let l=Math.max(...d.map(p=>p.right-p.left))*(a/s),E=Math.ceil(l)+2*n;E<a&&(e.style.width=`${E}px`)}var he=(e,n=1)=>{let r=10**n;return Math.round(e*r)/r};var On="ms-layer:",Xe=1,_n=new Set(["frameTimeout","layerStalled"]),Ye={warnings:20,text:300,canvasLosses:1e6},Ut=e=>typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=Ye.canvasLosses;function Dt(e){if(typeof e!="object"||e===null||Array.isArray(e))return null;let n=e;if(n.type==="hello")return typeof n.v=="number"?{type:"hello",v:n.v}:null;if(n.type==="canvasLost")return Ut(n.canvasLosses)?{type:"canvasLost",canvasLosses:n.canvasLosses}:null;if(typeof n.id!="number"||!Number.isInteger(n.id)||typeof n.ok!="boolean"||n.error!==void 0&&typeof n.error!="string"||n.code!==void 0&&!_n.has(n.code)||n.canvasLosses!==void 0&&!Ut(n.canvasLosses)||n.warnings!==void 0&&!(Array.isArray(n.warnings)&&n.warnings.length<=Ye.warnings&&n.warnings.every(i=>typeof i=="string")))return null;let r=i=>i.slice(0,Ye.text);return{id:n.id,ok:n.ok,...typeof n.error=="string"?{error:r(n.error)}:{},...n.code!==void 0?{code:n.code}:{},...Array.isArray(n.warnings)?{warnings:n.warnings.map(r)}:{},...n.canvasLosses!==void 0?{canvasLosses:n.canvasLosses}:{}}}function Wt(e){return On+JSON.stringify(e)}var J=class extends Error{constructor(r,i){super(r);this.code=i;this.name="LayerRequestError"}code},Z=class extends J{constructor(n){super(`layer ${n} dropped: the layer was removed`),this.name="LayerDisposedError"}};function jt(e,n,r,i={}){let a=null,s=null,d=!1,l=1,E=0,p=m=>{m!==void 0&&m>E&&(E=m)},g=new Map,T=null,w=new Promise((m,x)=>{T=()=>x(new Z("request"))});w.catch(()=>{});let M=null,R=new Promise(m=>{M=m}),y=()=>{let m=e.contentWindow;if(!m)return;let x=new MessageChannel;a?.close(),a=x.port1,a.onmessage=A=>{let C=Dt(A.data);if(!C)return;if("type"in C){C.type==="canvasLost"?p(C.canvasLosses):C.v===Xe&&M?.();return}p(C.canvasLosses);let P=g.get(C.id);g.delete(C.id),P?.resolve(C)},m.postMessage({type:"ms-layer-connect",v:Xe},"*",[x.port2])};e.addEventListener("load",y);let k=ne(R,r,n,"layer.js did not answer (bootstrap missing?)");k.catch(()=>{});let F=async(m,x)=>{if(d)throw new Z(m);if(s!==null)throw new J(`layer ${m} skipped: ${s}`);if(await Promise.race([k,w]).catch($=>{throw $ instanceof Z?new Z(m):$}),d)throw new Z(m);let A=l++,C=new Promise(($,H)=>{g.set(A,{resolve:$,reject:H,op:m})});a.postMessage(m==="seek"?{id:A,op:m,t:x}:{id:A,op:m});let P=await ne(C,r,n,`layer ${m} timed out`).catch($=>{throw $ instanceof Z||i.failFast&&(s=`the layer did not answer a ${m} within ${r} ms`),$}).finally(()=>g.delete(A));if(!P.ok)throw new J(P.error??`layer ${m} failed`,P.code);return P};return{connected:k,async ready(){return(await F("ready")).warnings??[]},async seek(m){await F("seek",m)},tick(m){a?.postMessage({op:"tick",t:m})},get canvasLosses(){return E},dispose(){if(!d){d=!0,s="the layer was removed",T?.();for(let m of g.values())m.reject(new Z(m.op));g.clear(),e.removeEventListener("load",y),a&&(a.onmessage=null,a.close(),a=null)}}}}function Ht(e,n){return e<=0?1:Math.max(1,Math.round(e*n))}function be(e,n,r){if(r<=0)return!0;if(!(e.duration>0))return!1;let i=e.start+e.duration;return n<e.start-1e-6?!1:n<i-1e-6?!0:n>=r-1e-6&&Math.abs(i-r)<=1e-6}function $n(e,n){return Math.max(0,Math.floor(e*n+1e-6))}function Nn(e){let n=e.sourceStart;return typeof n=="number"&&Number.isFinite(n)&&n>=0&&n<=36e3?n:0}function Bt(e,n,r){let i=Nn(e),a=(e.trimStart??0)+Math.max(0,n-e.start),s=Fe(e)??r,d=s!==void 0&&Number.isFinite(s)&&s>i,l=e.sourceFps;if(l!==void 0&&l>0){let p=$n(a,l);return d&&(p=Math.min(p,Math.max(0,Math.ceil((s-i)*l-1e-6)-1))),i+(p+.5)/l}let E=i+a+.001;return d?Math.min(E,Math.max(i,s-.001)):E}function Fe(e){let n=e.sourceVideoEnd;return typeof n=="number"&&Number.isFinite(n)&&n>0&&n<=36e3?n:null}function Pe(e){return e.sourceTrusted===!0&&Fe(e)!==null}var Vn=100;function Un(e){let{tsUs:n,targetUs:r}=e,i=Vn,a=e.durUs!==null&&e.durUs>0?e.durUs:null,s=n<=r+i;if(a!==null&&s&&n+a>r-i||s&&(e.videoEndUs!==null?a!==null&&n+a>=e.videoEndUs-i:e.stable&&e.atEnd))return"draw";if(e.trusted&&a!==null)return n+a<=r-i?"stale":"wait";if(a===null&&e.spanUs!==null&&s&&n+e.spanUs>r-i)return"draw";if(!e.stable)return"wait";let d=r>n+Math.max(a??0,e.spanUs??0)+i;return(e.loadFrame||e.preSeekFrame===!0&&!e.trusted)&&d?"hold":"warn"}var Ie=1e3;async function qt(e){let n=null,r={verdict:"none",tsUs:null};for(;;){let i=e.read(),a=e.now()>e.deadline;if(i){let{tsUs:s,durUs:d}=e.stamp(i),l=e.loadTsUs!==null&&s===e.loadTsUs,E=!l&&e.preSeekTsUs!==void 0&&e.preSeekTsUs!==null&&s===e.preSeekTsUs,p=Un({tsUs:s,durUs:d,targetUs:e.targetUs,trusted:e.trusted,videoEndUs:e.videoEndUs,atEnd:e.atEnd(),stable:s===n,loadFrame:l,spanUs:e.spanUs,preSeekFrame:E});if(p==="draw"||p==="warn")return{frame:i,verdict:p,tsUs:s};if(p==="hold"&&(a||E&&e.now()>=(e.settleUntil??-1/0)))return{frame:i,verdict:"warn",tsUs:s,heldOut:!0};e.close(i),n=s,r={verdict:p==="hold"?"wait":p,tsUs:s}}else n=null,r={verdict:"none",tsUs:null};if(a)return{frame:null,...r};await e.nextFrame()}}function Zt(e,n,r){return Math.abs(e-n)>1/r}function zt(e,n,r){return Math.abs(e-n)>Math.max(3/r,.05)}function Kt(e,n){let r=n-e.start;if(r<0||r>e.duration)return 0;let i=Math.min(1,Math.max(0,e.volume??1));return e.fadeIn&&e.fadeIn>0&&(i*=Math.min(1,r/e.fadeIn)),e.fadeOut&&e.fadeOut>0&&(i*=Math.min(1,(e.duration-r)/e.fadeOut)),Math.max(0,i)}var Gt={lang:"und",cues:[]},Dn=3e3,Wn={load:12e4,seek:6e4,layer:6e4},jn=5e3,Hn="held until the seek deadline",Yt="sans-serif";function Bn(e){let n=e.CSS;if(n?.registerProperty)for(let r of Pt)try{n.registerProperty({...r,inherits:!1})}catch{}}function Xt(e){return`"${e.replace(/["\\\n\r\f]/g,n=>`\\${n.charCodeAt(0).toString(16)} `)}"`}function Je(e,n,r){let i=e.ownerDocument,a=i.defaultView,s=r.natives,d={...Wn,...r.timeouts},l=n,E=!(l.duration>0),p=!1,g=(t,o,u)=>{p||r.report({code:t,message:o,...u?{clipId:u}:{}})},T=0,w=0,M=new Set,R=new WeakSet,y=0,k=null,F=t=>{if(!M.has(t)){T++,w++,M.add(t);for(let o of D)o.video&&R.add(o.video)}},m=t=>{t.addEventListener("contextlost",()=>F(t)),t.addEventListener("contextrestored",()=>{w++,M.delete(t),k?.()})},x=t=>{if(M.has(t))return!0;let o=t.getContext("2d");return typeof o?.isContextLost=="function"&&o.isContextLost()?(F(t),!0):!1},A=async(t,o)=>{for(;t();){let u=o-s.performanceNow();if(u<=0)throw new Error(`frameTimeout: a video canvas lost its GPU context and did not get it back within ${d.seek} ms`);await new Promise(c=>{let f=s.setTimeout(()=>{k=null,c()},Math.min(50,u));k=()=>{k=null,s.clearTimeout(f),c()}})}};Bn(a);let C=(t,o,u=!1)=>{let c=typeof t=="string"&&(t.startsWith("assets/")||t.startsWith("layers/")||u&&t.startsWith("media/"));if(typeof t!="string"||t.length===0||/[?#\\]/.test(t)||!c)return g("assetPathRejected",`asset path rejected: ${String(t).slice(0,200)}`,o),null;let f;try{f=new URL(t,r.base)}catch{return g("assetPathRejected",`bad asset path ${t}`,o),null}return f.href.startsWith(r.base)?f.href:(g("assetPathRejected",`asset outside the composition: ${t}`,o),null)},P=new Set,$=[],H=[],O=[];for(let t of l.fonts??[]){let o=C(t.src);if(!o)continue;let u=t.weight===void 0?void 0:String(t.weight);P.add(t.family.toLowerCase()),$.push({family:t.family,url:o,...u?{weight:u}:{},...t.style?{style:t.style}:{}});try{let c=new a.FontFace(t.family,`url("${o}")`,{...u?{weight:u}:{},...t.style?{style:t.style}:{}});i.fonts.add(c),O.push(c),H.push(c.load().then(()=>{},f=>g("fontLoadFailed",`font ${t.family} (${t.src}) failed to load: ${String(f)}`)))}catch(c){g("fontLoadFailed",`font ${t.family}: ${String(c)}`)}}let W=Promise.all(H).then(()=>{}),oe=l.fonts?.[0]?.family,se=t=>[...t?[Xt(t)]:[],...(l.fontFallbacks??[]).map(Xt),Yt].join(", "),K=(t,o,u)=>{t?P.has(t.toLowerCase())||g("fontMissing",`font ${t} is not declared in fonts[]; using a fallback`,u):g("fontMissing",`${o} clip has no font and the composition declares none; using ${Yt}`,u)},Q=r.subtitles??null,z=i.createElement("div");z.className="ms-stage",Object.assign(z.style,{position:"absolute",left:"0",top:"0",width:`${l.width}px`,height:`${l.height}px`,overflow:"hidden",background:l.background,transformOrigin:"0 0"}),e.appendChild(z);let ue=i.createElement("div");ue.hidden=!0,e.appendChild(ue);let D=[],Y=[],ln=0,ot=(t,o,u)=>{let c=[];for(let f of o){let h={duration:Math.max(1,f.duration*1e3),easing:f.easing,fill:f.fill},b;try{b=t.animate(f.keyframes,h)}catch(v){g("badAnimation",`animation of ${f.property}: ${String(v)}; using linear`,u);try{b=t.animate(f.keyframes.map(L=>({...L,easing:"linear"})),{...h,easing:"linear"})}catch{continue}}b.pause(),c.push({anim:b,start:f.start})}return c},st=(t,o,u)=>ne(new Promise((c,f)=>{if(t.readyState>=2){c();return}t.addEventListener("loadeddata",()=>c(),{once:!0}),t.addEventListener("error",()=>f(new Error(`cannot load ${u}`)),{once:!0})}),d.load,s,`loading ${u} timed out`).catch(c=>g("assetLoadFailed",String(c instanceof Error?c.message:c),o)),un=t=>ne(new Promise((o,u)=>{if(t.el.readyState>=2){o();return}t.el.addEventListener("loadeddata",()=>o(),{once:!0}),t.el.addEventListener("error",()=>u(new Error(`cannot load ${t.clip.src}`)),{once:!0})}),Math.min(Dn,d.load),s,`loading ${t.clip.src} timed out`).catch(o=>g("clipAudioFailed",String(o instanceof Error?o.message:o),t.clip.id)),Ve=(t,o,u,c,f,h=!1)=>{let b=i.createElement("iframe");b.setAttribute("sandbox","allow-scripts"),b.setAttribute("scrolling","no"),b.tabIndex=-1,b.name=Wt({v:1,mode:r.mode,clipId:o,params:f.params,fonts:$,frameTimeoutMs:Math.max(1,Math.floor(d.layer/2)),...f.subtitles?{subtitles:f.subtitles}:{}}),Object.assign(b.style,{display:"block",width:"100%",height:"100%",border:"0",background:"transparent",colorScheme:"normal"}),h&&Object.assign(b.style,{position:"absolute",left:"0",top:"0",opacity:"0"});let v=jt(b,s,d.layer,{failFast:r.mode==="render"});b.src=u,t.appendChild(b);let L=v.ready().then(S=>{for(let I of S)g("fontLoadFailed",`layer: ${I}`,o)},S=>{S instanceof Z||g(S instanceof J&&S.code==="layerStalled"?"layerStalled":"layerTimeout",`html layer ${c}: ${String(S instanceof Error?S.message:S)}`,o)});return{frame:b,layer:v,prepare:L}},it=t=>{y+=t.layer.canvasLosses,t.layer.dispose(),t.frame.removeAttribute("src"),t.frame.remove()},cn=(t,o)=>{let u=t.props,c=i.createElement("div");c.className="ms-clip",c.dataset.clipId=t.id;let f=t.type==="text";Object.assign(c.style,{position:"absolute",left:`${u.x??0}px`,top:`${u.y??0}px`,zIndex:String(++ln),display:"none"});let h=u.width??(f?void 0:l.width),b=u.height??(f?void 0:l.height);h!==void 0&&(c.style.width=`${h}px`),b!==void 0&&(c.style.height=`${b}px`),u.rotation&&(c.style.rotate=`${u.rotation}deg`),u.scale!==void 0&&u.scale!==1&&(c.style.scale=String(u.scale)),u.opacity!==void 0&&u.opacity!==1&&(c.style.opacity=String(u.opacity));let v=i.createElement("div");v.className="ms-content",Object.assign(v.style,{width:"100%",height:"100%",position:"relative",boxSizing:"border-box",translate:"var(--ms-x) var(--ms-y)",scale:"var(--ms-scale)",rotate:"var(--ms-rotate)"}),c.appendChild(v);let L=Promise.resolve(),S,I,N,q,_,ee,Et=r.mode==="render"||!!o.muted;switch(t.type){case"text":{let U=t.props,V=U.fontFamily??oe;K(V,"text",t.id),v.textContent=U.text,Object.assign(v.style,{fontFamily:se(V),fontSize:`${U.fontSize??48}px`,fontWeight:String(U.fontWeight??"normal"),color:U.color??"#ffffff",textAlign:U.align??"left",lineHeight:"1.2",whiteSpace:"pre-wrap",overflowWrap:"break-word"});break}case"shape":{Object.assign(v.style,{color:t.props.fill??"#ffffff",backgroundColor:"currentColor",borderRadius:`${t.props.radius??0}px`});break}case"image":case"svg":{v.style.overflow="hidden";let U=C(t.src,t.id);if(!U)break;let V=i.createElement("img");V.alt="",V.decoding="sync",V.draggable=!1,Object.assign(V.style,{display:"block",width:"100%",height:"100%",objectFit:t.props.fit??"cover"}),V.src=U,v.appendChild(V),_=V,L=ne(V.decode(),d.load,s,`decoding ${t.src} timed out`).catch(te=>g("assetLoadFailed",`image ${t.src}: ${String(te instanceof Error?te.message:te)}`,t.id));break}case"video":{v.style.overflow="hidden";let U=C(t.src,t.id,!0);if(!U)break;S=i.createElement("video"),S.muted=Et||(t.volume??1)===0,S.volume=Math.min(1,Math.max(0,t.volume??1)),S.playsInline=!0,S.preload="auto",S.disablePictureInPicture=!0,S.src=U,r.mode==="render"?(S.style.display="none",I=i.createElement("canvas"),Object.assign(I.style,{display:"block",width:"100%",height:"100%"}),m(I),v.appendChild(I)):(Object.assign(S.style,{display:"block",width:"100%",height:"100%",objectFit:"cover"}),I=i.createElement("canvas"),Object.assign(I.style,{display:"none",width:"100%",height:"100%"}),v.appendChild(I)),v.appendChild(S),L=st(S,t.id,t.src);let V=t.audioSrc;if(r.mode==="preview"&&!E&&typeof V=="string"){S.muted=!0;let te=t.volume??1,fe=te>0?C(V,t.id):null;if(fe){let ae=t.audioStart,En=typeof ae=="number"&&Number.isFinite(ae)&&ae>=0&&ae<=36e3?ae:0,Ce=i.createElement("audio");Ce.preload="auto",Ce.src=fe,ue.appendChild(Ce);let Sn={id:t.id,type:"audio",src:V,start:t.start,duration:t.duration,trimStart:En+(t.trimStart??0),volume:te};Y.push({clip:Sn,el:Ce,muted:!!o.muted,derived:!0})}}break}case"html":{let U=C(t.src,t.id);if(!U)break;let V={};for(let[te,fe]of Object.entries(t.params??{}))if(fe.type==="image"){let ae=C(fe.value,t.id);ae&&(V[te]=ae)}else V[te]=fe.value;({frame:q,layer:N,prepare:L}=Ve(v,t.id,U,t.src,{params:V}));break}case"subtitles":{if(t.template){let U=C(t.template,t.id);U&&({frame:q,layer:N,prepare:L}=Ve(v,t.id,U,t.template,{params:{},subtitles:Q??Gt}));break}K(t.props.fontFamily??oe,"subtitles",t.id),ee=i.createElement("div"),ee.className="ms-subs",ee.style.display="none",v.appendChild(ee);break}default:g("unknownClipType",`unknown clip type ${t.type}`,t.id);return}let Ze=[];if(!E){let U=At(t.type==="subtitles"?void 0:t.animations,{width:l.width,height:l.height,clipDuration:t.duration},V=>g("badAnimation",V,t.id));U.some(V=>V.property==="--ms-blur")&&(v.style.filter="blur(var(--ms-blur))"),Ze=ot(v,U,t.id),(t.type==="image"||t.type==="svg")&&t.props.kenBurns&&_&&Ze.push(...ot(_,[Ft(t.props.kenBurns,t.duration)],t.id))}z.appendChild(c),D.push({clip:t,box:c,content:v,anims:Ze,...S?{video:S}:{},...I?{canvas:I}:{},...N?{layer:N}:{},...q?{frame:q}:{},...ee?{subs:ee}:{},prepare:L,muted:Et,visible:!1})};for(let t of l.tracks)for(let o of t.clips)if(!(o.hidden||t.hidden)){if(o.type==="audio"){if(r.mode!=="preview"||E)continue;let u=C(o.src,o.id);if(!u)continue;let c=i.createElement("audio");c.preload="auto",c.src=u,ue.appendChild(c),Y.push({clip:o,el:c,muted:!!t.muted});continue}cn(o,t)}let j=0,G=!1,at=!0,xe=1,ke=null,Ue="fit",ce=1,lt=!1,De=t=>E?0:Math.min(Math.max(0,t),l.duration),dn={width:l.width,height:l.height,...r.safeZone?{safeZone:r.safeZone}:{}},ut=(t,o)=>{if(!t.subs||t.clip.type!=="subtitles")return;let u=Math.round(o*1e6)/1e3,c=Q?Nt(Q.cues,u):-1;Vt(t.subs,t.clip,c>=0?Q.cues[c]:null,u,dn,{fontFamily:se(t.clip.props.fontFamily??oe)})},ct=t=>{for(let o of D){let u=be(o.clip,t,l.duration);if(o.visible=u,o.box.style.display=u?"":"none",!u)continue;let c=t-o.clip.start;for(let{anim:f,start:h}of o.anims)f.currentTime=(c-h)*1e3;ut(o,t)}},dt=(t,o,u,c)=>{let f=t.canvas;if(!(u>0&&c>0))return;let h=t.content.clientWidth||u,b=t.content.clientHeight||c,v=Math.max(h/u,b/c),L=h/v,S=b/v,I=t.content.getBoundingClientRect(),N=Math.max(1,I.width/h||1,I.height/b||1),q=Math.max(1,Math.round(Math.min(L,h*N))),_=Math.max(1,Math.round(Math.min(S,b*N)));f.width!==q&&(f.width=q),f.height!==_&&(f.height=_);let ee=f.getContext("2d");ee&&ee.drawImage(o,(u-L)/2,(c-S)/2,L,S,0,0,q,_)},We=globalThis.VideoFrame,mt=t=>{if(typeof We!="function"||t.readyState<2)return null;try{return new We(t)}catch{return null}},ve=new WeakMap,ft=new WeakSet,je=new WeakMap,pt=async(t,o,u,c,f,h=!1)=>{let b=t.video,v=h?()=>{}:g;if(t.clip.type!=="video")return!0;let L=t.clip;if(typeof We!="function")return dt(t,b,b.videoWidth,b.videoHeight),!0;let S=L.sourceFps?1/L.sourceFps:null,I=Fe(L),N=await qt({read:()=>mt(b),stamp:_=>({tsUs:Math.round(_.timestamp),durUs:typeof _.duration=="number"&&_.duration>0?Math.round(_.duration):null}),close:_=>_.close(),nextFrame:()=>new Promise(_=>{s.requestAnimationFrame(()=>_())}),now:()=>s.performanceNow(),deadline:u,targetUs:Math.round(o*1e6),trusted:Pe(L),videoEndUs:I===null?null:Math.round(I*1e6),atEnd:()=>Number.isFinite(b.duration)&&!b.seeking&&b.currentTime>=b.duration-(S??1/30)-.001,loadTsUs:ft.has(b)?null:ve.get(b)??null,spanUs:S===null?null:Math.round(S*1e6),preSeekTsUs:c,settleUntil:f});if(N.frame&&N.heldOut&&c!==null&&N.tsUs===c){let _=je.get(b);_||je.set(b,_=new Set),_.add(c)}let q=_=>(_/1e6).toFixed(3);if(N.frame){if(ft.add(b),N.verdict==="warn"){let _=s.performanceNow()>u?`, ${Hn}`:"";v("videoFrameMismatch",N.tsUs>Math.round(o*1e6)?`video ${L.src}: frame at ${q(N.tsUs)} s drawn for ${o.toFixed(3)} s, before the source starts (sourceStart missing or wrong)${_}`:`video ${L.src}: frame at ${q(N.tsUs)} s drawn for ${o.toFixed(3)} s although its duration does not reach it (untrusted source)${_}`,L.id)}return dt(t,N.frame,N.frame.displayWidth,N.frame.displayHeight),N.frame.close(),!0}return v("videoSeekTimeout",N.tsUs===null?`video ${L.src} gave no frame at ${o.toFixed(3)} s`:`video ${L.src} still showed the frame at ${q(N.tsUs)} s (${N.verdict}), not ${o.toFixed(3)} s`,L.id),!1},mn=t=>{let o=t;if(typeof o.requestVideoFrameCallback!="function")return null;let u=!1,c=null,f=o.requestVideoFrameCallback(()=>{u=!0,c?.()});return{wait:h=>u?Promise.resolve(!0):new Promise(b=>{let v=s.setTimeout(()=>{c=null,typeof o.cancelVideoFrameCallback=="function"&&o.cancelVideoFrameCallback(f),b(u)},h);c=()=>{s.clearTimeout(v),b(!0)}})}},bt=async(t,o,u)=>{let c=t.video;if(t.clip.type!=="video")return;let f=u??s.performanceNow()+d.seek,h=Bt(t.clip,o,c.duration);c.paused||c.pause(),r.mode==="render"&&R.has(c)&&(R.delete(c),await yn(c,f));let b=!(Math.abs(c.currentTime-h)<1e-6&&!c.seeking&&c.readyState>=2),v=null;if(t.canvas&&(!ve.has(c)||b&&!Pe(t.clip))){let L=mt(c);if(L){let S=Math.round(L.timestamp);L.close(),ve.has(c)||ve.set(c,S),b&&!Pe(t.clip)&&!je.get(c)?.has(S)&&(v=S)}}if(b){let L=new Promise(I=>c.addEventListener("seeked",()=>I(),{once:!0})),S=t.canvas?mn(c):null;c.currentTime=h,await ne(L,Math.max(1,f-s.performanceNow()),s,`video ${t.clip.src} did not seek to ${h}`).catch(I=>g("videoSeekTimeout",String(I instanceof Error?I.message:I),t.clip.id)),S&&await S.wait(Math.min(Ie,Math.max(1,f-s.performanceNow())))&&(v=null)}if(t.canvas){if(r.mode==="preview"){let L=Math.min(f,s.performanceNow()+jn),S=await pt(t,h,L,v,Math.min(L,s.performanceNow()+Ie),!0);yt(t,S&&!G?"canvas":"video");return}if(!await pt(t,h,f,v,s.performanceNow()+Ie))throw new Error(`videoSeekTimeout: video ${t.clip.src} has no frame for ${h.toFixed(3)} s`)}},yt=(t,o)=>{r.mode!=="preview"||!t.canvas||!t.video||(t.canvas.style.display=o==="canvas"?"block":"none",t.video.style.display=o==="canvas"?"none":"block")},fn=t=>{let o=z.getBoundingClientRect();if(!(o.width>0&&o.height>0))return!1;let u=i.documentElement,c=Math.max(o.left,0),f=Math.max(o.top,0),h=Math.min(o.right,u.clientWidth||o.right),b=Math.min(o.bottom,u.clientHeight||o.bottom),v=t.getBoundingClientRect();return!(Math.min(v.right,h)>Math.max(v.left,c)&&Math.min(v.bottom,b)>Math.max(v.top,f))},pn=t=>Rt(i.defaultView?.getComputedStyle(t).clipPath??"",t.offsetWidth,t.offsetHeight),bn=async(t,o)=>{let u=()=>D.filter(f=>f.canvas&&f.video&&be(f.clip,j,l.duration)),c=t;for(;!p&&(w!==c||u().some(f=>x(f.canvas)));){try{await A(()=>M.size>0||u().some(f=>x(f.canvas)),o)}catch(f){throw g("frameTimeout",`a video canvas lost its GPU context and did not get it back after seeking to ${j}`),f}c=w,await Promise.all(u().map(f=>bt(f,j,o)));try{await Le(s,{strict:!0,timeoutMs:Math.max(1,o-s.performanceNow())})}catch(f){throw f instanceof pe&&g("frameTimeout",`no animation frame after redrawing a lost video canvas at ${j}: ${f.message}`),f}}},yn=async(t,o)=>{let u=t.currentTime>=.1?0:Math.min(.5,Number.isFinite(t.duration)?t.duration/2:.5);if(Math.abs(u-t.currentTime)<1e-6)return;let c=new Promise(f=>t.addEventListener("seeked",()=>f(),{once:!0}));t.currentTime=u,await ne(c,Math.max(1,o-s.performanceNow()),s,"seek away").catch(()=>{})},hn=async t=>{if(p)return;let o=s.performanceNow()+d.seek,u=w,c=De(t);if(j=c,r.clock?.advanceTo(c*1e3),await W,p)return;ct(c);let f=[];for(let h of D)be(h.clip,c,l.duration)&&(h.video&&f.push(bt(h,c)),h.layer&&!(r.mode==="render"&&(fn(h.content)||pn(h.content)))&&f.push(h.layer.seek(c-h.clip.start).catch(b=>{if(!(b instanceof Z)){if(b instanceof J&&b.code==="frameTimeout")throw g("frameTimeout",`html layer painted no frame after seeking to ${c}: ${b.message}`,h.clip.id),b;g(b instanceof J&&b.code==="layerStalled"?"layerStalled":"layerError",`layer seek: ${String(b instanceof Error?b.message:b)}`,h.clip.id)}})));for(let h of Y)h.el.paused||h.el.pause();if(await Promise.all(f),r.mode==="render"){try{await Le(s,{strict:!0,timeoutMs:d.seek})}catch(h){throw h instanceof pe&&g("frameTimeout",`no animation frame after seeking to ${c}: ${h.message}`),h}await bn(u,o)}else await Le(s)},Ee=null,de=null,Se=t=>p?Promise.resolve():(G&&Be(),de=t,j=De(t),Ee||(Ee=(async()=>{try{for(;de!==null;){let o=de;de=null,await hn(o)}}catch(o){throw de=null,o}finally{Ee=null}p||(X.onTime?.(j,G),X.onBounds?.())})()),Ee),He=!1,Me=new Map,Te=0,Re=0,gn=t=>{for(let o of D){if(!o.video||o.clip.type!=="video")continue;let u=o.video;if(!be(o.clip,t,l.duration)){u.paused||u.pause();continue}let f=(o.clip.trimStart??0)+(t-o.clip.start);u.playbackRate=xe,u.paused?(u.currentTime=f,ht(u,o.clip.id)):Zt(u.currentTime,f,l.fps)&&(u.currentTime=f)}for(let o of Y){let u=o.el,c=t-o.clip.start;if(!(c>=0&&c<o.clip.duration)){u.paused||u.pause();continue}u.volume=Kt(o.clip,t),u.muted=o.muted||He,u.playbackRate=xe;let h=(o.clip.trimStart??0)+c;u.paused?(u.currentTime=h,ht(u)):zt(u.currentTime,h,l.fps)&&(u.currentTime=h)}},ht=(t,o)=>{t.play().catch(u=>{u?.name==="NotAllowedError"&&(lt||(lt=!0,g("audioBlocked","the browser blocked audio playback; playing muted",o)),t.muted=!0,t.play().catch(()=>{}))})},gt=()=>{if(!G||p)return;let t=Re+(s.performanceNow()-Te)/1e3*xe;if(t>=l.duration)if(at){t=l.duration>0?t%l.duration:0,Re=t,Te=s.performanceNow();for(let o of D)o.video?.pause();for(let o of Y)o.el.pause()}else{j=l.duration,Be(),Se(l.duration).catch(()=>{});return}j=t,ct(t);for(let o of D)o.layer&&be(o.clip,t,l.duration)&&o.layer.tick(t-o.clip.start);gn(t),X.onTime?.(t,!0),s.requestAnimationFrame(gt)},Be=()=>{G=!1;for(let t of D)t.video?.pause();for(let t of Y)t.el.pause()},qe=()=>{if(r.mode!=="preview"){ce=1,z.style.transform="";return}let t=a.innerWidth||l.width,o=a.innerHeight||l.height;ce=Ue==="fit"?Math.min(t/l.width,o/l.height):Ue;let u=(t-l.width*ce)/2,c=(o-l.height*ce)/2;z.style.transform=`translate(${u}px, ${c}px) scale(${ce})`};qe();let wt=()=>{qe(),X.onBounds?.()};r.mode==="preview"&&a.addEventListener("resize",wt);let me=new Map,wn=t=>{if(t.clip.type!=="subtitles"||!t.clip.template||!t.frame||!t.layer)return;let o=C(t.clip.template,t.clip.id);if(!o)return;let u=me.get(t);u&&it(u);let c=Ve(t.content,t.clip.id,o,t.clip.template,{params:{},subtitles:Q??Gt},!0);me.set(t,c);let f=()=>!p&&me.get(t)===c;c.prepare.then(async()=>{if(f()){for(let h=Number.NaN;t.visible&&j!==h;){if(h=j,await c.layer.seek(h-t.clip.start).catch(b=>{f()&&!(b instanceof Z)&&g(b instanceof J&&b.code==="layerStalled"?"layerStalled":"layerError",`layer seek: ${String(b instanceof Error?b.message:b)}`,t.clip.id)}),!f())return;if(G)break}me.delete(t),it({frame:t.frame,layer:t.layer}),Object.assign(c.frame.style,{opacity:""}),t.frame=c.frame,t.layer=c.layer,t.prepare=c.prepare}})},xt=t=>{try{t.pause()}catch{}t.removeAttribute("src");try{t.load()}catch{}t.remove()},xn=()=>{if(!p){p=!0,G=!1,de=null,X.onTime=void 0,X.onBounds=void 0,r.mode==="preview"&&a.removeEventListener("resize",wt);for(let t of me.values())t.layer.dispose();me.clear();for(let t of D){for(let{anim:o}of t.anims)try{o.cancel()}catch{}t.video&&xt(t.video),t.canvas&&(t.canvas.width=0,t.canvas.height=0),t.layer?.dispose();for(let o of t.content.querySelectorAll("iframe"))o.removeAttribute("src"),o.remove();for(let o of t.content.querySelectorAll("img"))o.removeAttribute("src")}for(let t of Y)xt(t.el);for(let t of O)try{i.fonts.delete(t)}catch{}D.length=0,Y.length=0,O.length=0,Me.clear(),z.remove(),ue.remove()}},kt=null,kn=null,ie=r.safeZone?{left:r.safeZone.left,top:r.safeZone.top,right:l.width-r.safeZone.right,bottom:l.height-r.safeZone.bottom}:{left:0,top:0,right:l.width,bottom:l.height},vn=()=>{if(!(r.mode!=="render"||p))for(let t of D){if(t.clip.type!=="text")continue;let o=t.clip.props;try{let{display:u,visibility:c}=t.box.style;Object.assign(t.box.style,{display:"block",visibility:"hidden"});let f={w:t.content.scrollWidth,h:t.content.scrollHeight},h={w:t.content.clientWidth,h:t.content.clientHeight},b={w:t.box.offsetWidth,h:t.box.offsetHeight},v=z.getBoundingClientRect(),L=t.box.getBoundingClientRect(),S=v.width>0?v.width/l.width:0,I=S>0&&L.width>0&&L.height>0?{left:(L.left-v.left)/S,top:(L.top-v.top)/S,right:(L.right-v.left)/S,bottom:(L.bottom-v.top)/S}:{left:o.x??0,top:o.y??0,right:(o.x??0)+Math.max(b.w,f.w),bottom:(o.y??0)+Math.max(b.h,f.h)};if(Object.assign(t.box.style,{display:u,visibility:c}),(o.width!==void 0||o.height!==void 0)&&(o.width!==void 0&&f.w>h.w+1||o.height!==void 0&&f.h>h.h+1)&&h.w>0&&h.h>0){g("textOverflow",`text overflows its box: needs ${f.w}x${f.h}, box ${h.w}x${h.h}`,t.clip.id);continue}if(o.height===void 0&&(I.left<ie.left-1||I.top<ie.top-1||I.right>ie.right+1||I.bottom>ie.bottom+1)&&f.w>0&&f.h>0){let q=[I.left,I.top,I.right,I.bottom].map(_=>Math.round(_)).join(",");g("textOverflow",`text overflows the frame: spans ${q}, room ${ie.left},${ie.top},${ie.right},${ie.bottom}`,t.clip.id)}}catch{}}},vt=()=>kn??=Promise.all([W,...D.map(t=>t.prepare),...Y.map(t=>t.derived?un(t):st(t.el,t.clip.id,t.clip.src))]).then(()=>{vn()}),X={duration:E?0:l.duration,fps:l.fps,width:l.width,height:l.height,get time(){return j},get canvasLosses(){if(r.mode==="render")for(let t of D)t.canvas&&t.video&&x(t.canvas);return D.reduce((t,o)=>t+(o.layer?.canvasLosses??0),T+y)},get playing(){return G},get scale(){return ce},get selected(){return ke},ready(){return kt??=(async()=>(await vt(),await Se(0),{duration:X.duration,fps:l.fps,width:l.width,height:l.height,frames:Ht(l.duration,l.fps)}))(),kt},load:vt,seek:Se,play(t={}){if(!(p||r.mode!=="preview"||E)){if(at=t.loop??!0,xe=t.rate??1,t.from!==void 0&&Number.isFinite(t.from)&&(j=De(t.from)),G){Re=j,Te=s.performanceNow();return}G=!0;for(let o of D)yt(o,"video");Re=j>=l.duration?0:j,Te=s.performanceNow(),s.requestAnimationFrame(gt)}},pause(){p||!G||(Be(),Se(j).catch(()=>{}))},select(t){p||(ke=t,X.onBounds?.())},setScale(t){p||(Ue=t,qe(),X.onBounds?.())},setMuted(t){if(!(p||r.mode!=="preview"||t===He)){He=t;for(let o of D){let u=o.video;u&&(t?(Me.set(u,u.muted),u.muted=!0):(u.muted=Me.get(u)??u.muted,Me.delete(u)))}for(let o of Y)o.el.muted=o.muted||t}},setSubtitles(t){if(!p){Q=t;for(let o of D)o.subs&&o.visible?ut(o,j):o.clip.type==="subtitles"&&o.layer&&wn(o)}},selectedBounds(){if(!ke)return null;let t=D.find(u=>u.clip.id===ke);if(!t||!t.visible)return null;let o=t.content.getBoundingClientRect();return{x:o.x,y:o.y,width:o.width,height:o.height}},destroy:xn};return X}var Jt="ms-composition";var Oe=e=>typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1e5;function qn(e){if(typeof e!="object"||e===null)return;let n=e;return Oe(n.top)&&Oe(n.bottom)&&Oe(n.left)&&Oe(n.right)?{top:n.top,bottom:n.bottom,left:n.left,right:n.right}:void 0}function Qt(e,n){let r;try{r=JSON.parse(e)}catch{return null}if(typeof r!="object"||r===null)return null;let i=r;if(typeof i.base!="string"||typeof i.composition!="object"||i.composition===null)return null;let a=qn(i.safeZone),s;if(i.subtitles!==void 0){let d=ge(i.subtitles);d.ok?s=d.subtitles:n?.({code:"subtitlesInvalid",message:`the subtitles were left out: ${d.reason}`})}return{base:i.base,composition:i.composition,...a?{safeZone:a}:{},...s?{subtitles:s}:{}}}var $e=1,nt={mode:"mode",parentOrigin:"parentOrigin"},Zn=["compositionMissing","compositionInvalid","baseNotAllowed","assetPathRejected","assetLoadFailed","fontMissing","fontLoadFailed","videoSeekTimeout","layerTimeout","layerError","badAnimation","audioBlocked","unknownClipType","frameTimeout","videoFrameMismatch","clipAudioFailed","textOverflow","layerStalled","subtitlesInvalid"],zn=.1,Kn=4,Gn=.01,Yn=8,Xn=36e3,Jn=64,Qn=2**31-1,we=e=>typeof e=="object"&&e!==null&&!Array.isArray(e),re=(e,n)=>Object.keys(e).every(r=>n.includes(r)),B=e=>typeof e=="number"&&Number.isFinite(e),er=e=>typeof e=="string"&&e.length>0&&e.length<=Jn,en=e=>typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=Qn,Qe=36e3,_e=(e,n,r,i=!1)=>B(e)&&(i?e>n:e>=n)&&e<=r;function tr(e){if(typeof e!="string"||e.length>512||!e.startsWith("assets/")||e.split("/").some(n=>n.trim()===""||n==="."||n===".."))return!1;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r<32||r>=127&&r<=159||r===92||r===58||r===37||r===63||r===35)return!1}return!0}function tn(e,n){if(!we(e))return null;switch(e.type){case"seek":return re(e,["type","t"])&&B(e.t)&&e.t>=0&&e.t<=Xn?{type:"seek",t:e.t}:null;case"play":return!re(e,["type","loop","rate"])||e.loop!==void 0&&typeof e.loop!="boolean"||e.rate!==void 0&&!(B(e.rate)&&e.rate>=zn&&e.rate<=Kn)?null:{type:"play",...e.loop!==void 0?{loop:e.loop}:{},...e.rate!==void 0?{rate:e.rate}:{}};case"pause":return re(e,["type"])?{type:"pause"}:null;case"select":return re(e,["type","clipId"])&&(e.clipId===null||er(e.clipId))?{type:"select",clipId:e.clipId}:null;case"mute":return re(e,["type","muted"])&&typeof e.muted=="boolean"?{type:"mute",muted:e.muted}:null;case"setScale":return re(e,["type","scale"])&&(e.scale==="fit"||B(e.scale)&&e.scale>=Gn&&e.scale<=Yn)?{type:"setScale",scale:e.scale}:null;case"setComposition":{if(!re(e,["type","composition","keepTime","seq"])||!en(e.seq)||e.keepTime!==void 0&&typeof e.keepTime!="boolean")return null;let r=n?n(e.composition):null;return r?{type:"setComposition",composition:r,...e.keepTime!==void 0?{keepTime:e.keepTime}:{},seq:e.seq}:null}case"sessionMedia":return!re(e,["type","src","index","sourceFps","sourceStart","sourceVideoEnd","audioStart"])||!tr(e.src)||!(typeof e.index=="number"&&Number.isInteger(e.index)&&e.index>=0&&e.index<1e4)||!_e(e.sourceFps,0,240,!0)||!_e(e.sourceStart,0,Qe)||!_e(e.sourceVideoEnd,0,Qe,!0)||e.audioStart!==void 0&&!_e(e.audioStart,0,Qe)?null:{type:"sessionMedia",src:e.src,index:e.index,sourceFps:e.sourceFps,sourceStart:e.sourceStart,sourceVideoEnd:e.sourceVideoEnd,...e.audioStart!==void 0?{audioStart:e.audioStart}:{}};case"setSubtitles":{if(!re(e,["type","subtitles"])||!("subtitles"in e))return null;if(e.subtitles===null)return{type:"setSubtitles",subtitles:null};let r=ge(e.subtitles);return r.ok?{type:"setSubtitles",subtitles:r.subtitles}:null}default:return null}}var le={message:2e3,id:64,name:200,scenes:200,errors:200},Ne=(e,n)=>typeof e=="string"&&e.length<=n,nr=e=>we(e)&&B(e.x)&&B(e.y)&&B(e.width)&&B(e.height)?{x:e.x,y:e.y,width:e.width,height:e.height}:null,et=e=>!we(e)||!Zn.includes(e.code)||typeof e.message!="string"||e.clipId!==void 0&&!Ne(e.clipId,le.id)?null:{code:e.code,message:e.message.slice(0,le.message),...e.clipId!==void 0?{clipId:e.clipId}:{}},rr=e=>!we(e)||!Ne(e.id,le.id)||!B(e.start)||!B(e.duration)||e.name!==void 0&&!Ne(e.name,le.name)?null:{id:e.id,...e.name!==void 0?{name:e.name}:{},start:e.start,duration:e.duration};function tt(e,n,r){if(!Array.isArray(e)||e.length>n)return null;let i=[];for(let a of e){let s=r(a);if(s===null)return null;i.push(s)}return i}function nn(e){if(!we(e))return null;switch(e.type){case"ready":{if(e.version!==$e||!B(e.duration)||!B(e.fps)||!B(e.width)||!B(e.height))return null;let n=tt(e.scenes,le.scenes,rr),r=tt(e.errors,le.errors,et);return!n||!r?null:{type:"ready",version:$e,duration:e.duration,fps:e.fps,width:e.width,height:e.height,scenes:n,errors:r}}case"time":return B(e.t)&&typeof e.playing=="boolean"?{type:"time",t:e.t,playing:e.playing}:null;case"error":{let n=et(e.error);return n?{type:"error",error:n}:null}case"clipBounds":{if(!(e.clipId===null||Ne(e.clipId,le.id))||!B(e.scale))return null;let n=e.bounds===null?null:nr(e.bounds);return e.bounds!==null&&!n?null:{type:"clipBounds",clipId:e.clipId,bounds:n,scale:e.scale}}case"compositionApplied":{if(!en(e.seq))return null;let n=tt(e.errors,le.errors,et);return n?{type:"compositionApplied",seq:e.seq,errors:n}:null}default:return null}}function rn(e){if(!e)return null;let n;try{n=new URL(e)}catch{return null}return n.protocol!=="http:"&&n.protocol!=="https:"?null:n.origin===e?e:null}var on="__msDraft";function sn(e){let n=null,r=i=>{if(i.origin!==e.parentOrigin||i.source!==e.parent)return;let a=e.parseDraft?.();if(!a&&i.data?.type==="setComposition"){n=i.data;return}let s=tn(i.data,a);if(s)switch(s.type){case"seek":e.player.seek(s.t).catch(()=>{});break;case"play":e.player.play({loop:s.loop??!0,rate:s.rate??1});break;case"pause":e.player.pause();break;case"select":e.player.select(s.clipId);break;case"setScale":e.player.setScale(s.scale);break;case"mute":e.player.setMuted(s.muted);break;case"setComposition":e.player.setComposition(s.composition,{keepTime:s.keepTime??!1,seq:s.seq});break;case"sessionMedia":e.player.addSessionMedia(s);break;case"setSubtitles":e.player.setSubtitles(s.subtitles);break}};return{handle:r,post(i){if(!nn(i))throw new Error(`preview bridge: malformed outgoing message ${String(i.type)}`);e.parent.postMessage(i,e.parentOrigin)},parserReady(){if(n===null)return;let i=n;n=null,r({data:i,origin:e.parentOrigin,source:e.parent})}}}var rt=200,or={load:15e3,layer:15e3};function an(e){let n=new URLSearchParams(e.location.search),r=n.get(nt.mode)==="preview"?"preview":"render",i=r==="render"?Tt(e):null,a=Mt(e),s=[],d=null,l=x=>{s.length<rt&&s.push(x),e.console.warn(`[motion-studio] ${x.code}${x.clipId?` (${x.clipId})`:""}: ${x.message}`);try{d?.post({type:"error",error:x})}catch{}},E=r==="preview"&&e.parent!==e?rn(n.get(nt.parentOrigin)):null,p=(x,A)=>{let C={code:x,message:A};l(C),E&&e.parent.postMessage({type:"error",error:C},E);let P=Promise.reject(new Error(`${x}: ${A}`));return P.catch(()=>{}),{mode:r,ready:()=>P,seek:()=>P,canvasLosses:0,duration:0,fps:0,width:0,height:0,errors:s}},g=e.document.getElementById(Jt),T=g?Qt(g.textContent??"",l):null;if(!T)return p("compositionMissing","the page has no composition data block");let w;try{w=new URL(T.base,e.location.href)}catch{return p("baseNotAllowed","bad composition base")}let M=new URL(e.location.href);if(w.origin!==M.origin||w.protocol!=="http:"&&w.protocol!=="https:"||!w.pathname.endsWith("/")||w.search||w.hash)return p("baseNotAllowed","the composition base must be a folder on the page origin");let R=T.composition,y=(x,A)=>typeof x=="number"&&Number.isFinite(x)&&x>=A;if(!y(R.width,1)||!y(R.height,1)||!y(R.fps,1)||!y(R.duration,0)||!Array.isArray(R.tracks)||!R.tracks.every(x=>x&&Array.isArray(x.clips)))return p("compositionInvalid","the composition lacks width, height, fps, duration or tracks");let k=e.document.getElementById("ms-root")??e.document.body,F;try{F=Je(k,R,{mode:r,base:w.href,natives:a,clock:i,report:l,...T.safeZone?{safeZone:T.safeZone}:{},...T.subtitles?{subtitles:T.subtitles}:{}})}catch(x){return p("compositionInvalid",`the composition could not be mounted: ${String(x instanceof Error?x.message:x).slice(0,300)}`)}let m=F.ready().then(x=>({...x,errors:[...s]}));if(m.catch(()=>{}),E){let x=lr({w:e,root:k,first:F,composition:R,base:w.href,natives:a,report:l,safeZone:T.safeZone,subtitles:T.subtitles??null,post:P=>{d&&d.post(P)}}),A=()=>e[on]?.parseDraft,C=sn({parent:e.parent,parentOrigin:E,player:x,parseDraft:A});if(!A()){let P=e.document.createElement("script");P.src="preview.js",P.addEventListener("load",()=>C.parserReady()),P.addEventListener("error",()=>e.console.warn("[motion-studio] preview.js did not load: drafts are refused")),e.document.head.appendChild(P)}m.then(P=>{d=C,e.addEventListener("message",$=>C.handle($)),C.post({type:"ready",version:$e,duration:P.duration,fps:P.fps,width:P.width,height:P.height,scenes:(R.scenes??[]).map($=>({id:$.id,...$.name?{name:$.name}:{},start:$.start,duration:$.duration})),errors:P.errors})})}return{mode:r,ready:()=>m,seek:x=>Number.isFinite(x)?F.seek(x):Promise.reject(new Error("seek: t must be a finite number")),get canvasLosses(){return F.canvasLosses},duration:F.duration,fps:F.fps,width:F.width,height:F.height,get errors(){return[...s]}}}var sr=["src","sourceFps","sourceStart","sourceVideoEnd","sourceTrusted","audioSrc","audioStart"];function ir(e){let n=new Map;for(let r of e.tracks)for(let i of r.clips){let a=i.originalSrc;if(i.type!=="video"||typeof i.src!="string"||!i.src.startsWith("media/")||typeof a!="string"||!a.startsWith("assets/"))continue;let s={};for(let d of sr)i[d]!==void 0&&(s[d]=i[d]);n.set(a,s)}return n}function ar(e,n){if(n.size===0)return e;for(let r of e.tracks)for(let i of r.clips){if(i.type!=="video")continue;let a=n.get(i.src);a&&Object.assign(i,a)}return e}function lr(e){let n=e.root.ownerDocument,r=ir(e.composition),i=1e3,a=e.first,s=null,d=null,l="fit",E=!1,p=null,g=!1,T=0,w=0,M=null,R=e.subtitles,y=0,k=m=>{m.onTime=(x,A)=>e.post({type:"time",t:x,playing:A}),m.onBounds=()=>e.post({type:"clipBounds",clipId:m.selected,bounds:m.selectedBounds(),scale:m.scale})};k(a);let F=async m=>{g=!0;let x=T,A=y,C=[],P=!0,$=W=>{P?C.length<rt&&C.push(W):e.report(W)},H=n.createElement("div");H.className="ms-mount",Object.assign(H.style,{position:"absolute",inset:"0",overflow:"hidden",zIndex:"0"}),e.root.insertBefore(H,e.root.firstChild);let O=null;try{let W=ar(m.composition,r);O=Je(H,W,{mode:"preview",base:e.base,natives:e.natives,clock:null,report:$,timeouts:or,subtitles:R,...e.safeZone?{safeZone:e.safeZone}:{}}),O.setScale(l),await O.load();let oe=ur(W),se=T!==x?w:m.keepTime?a.time:0;for(let z=0;z<4;z++){let ue=T;if(await O.seek(se),T===ue)break;se=w}let K=d!==null&&oe.has(d)?d:null,Q=a.playing&&p?{...p,from:a.time}:null;O.setScale(l),y!==A&&O.setSubtitles(R),a.destroy(),s?.remove(),H.style.zIndex="",a=O,s=H,d=K,P=!1,E&&O.setMuted(!0),O.select(K),k(O),Q&&O.play(Q),e.post({type:"time",t:O.time,playing:O.playing}),e.post({type:"clipBounds",clipId:O.selected,bounds:O.selectedBounds(),scale:O.scale})}catch(W){C.length<rt&&C.push({code:"compositionInvalid",message:`the draft could not be mounted: ${String(W instanceof Error?W.message:W).slice(0,300)}`}),O?.destroy(),H.remove()}finally{if(e.post({type:"compositionApplied",seq:m.seq,errors:C}),g=!1,M){let W=M;M=null,F(W)}}};return{seek:m=>(p=null,T++,w=m,a.seek(m)),play:m=>{p=m,a.play(m)},pause:()=>{p=null,a.pause()},select:m=>{d=m,a.select(m)},setScale:m=>{l=m,a.setScale(m)},setMuted:m=>{E=m,a.setMuted(m)},setComposition:(m,x)=>{let A={composition:m,keepTime:x.keepTime,seq:x.seq};if(g){M=A;return}F(A)},setSubtitles:m=>{R=m,y++,a.setSubtitles(m)},addSessionMedia:m=>{!r.has(m.src)&&r.size>=i||r.set(m.src,{src:`media/${m.index}.mp4`,sourceFps:m.sourceFps,sourceStart:m.sourceStart,sourceVideoEnd:m.sourceVideoEnd,sourceTrusted:!0,...m.audioStart!==void 0?{audioSrc:m.src,audioStart:m.audioStart}:{}})}}}function ur(e){let n=new Set;for(let r of e.tracks)for(let i of r.clips)n.add(i.id);return n}Object.defineProperty(window,"__ms",{value:an(window),writable:!1,configurable:!1});})();
|
|
Binary file
|