@vouchfor/embeds 0.0.0-experiment.b6b97eb → 0.0.0-experiment.b6e21df

Sign up to get free protection for your applications and to get access to all the features.
@@ -2451,7 +2451,7 @@ vec4 transition(vec2 uv) {
2451
2451
  return mix(a, b, step(0.0+p.y,progress));
2452
2452
  }
2453
2453
  `,author:"Jake Nelson",license:"MIT",createdAt:"Wed, 1 Nov 2017 15:24:36 -0500",updatedAt:"Thu, 2 Nov 2017 18:37:42 -0500"}];const cc=vo(pp);var uc;function mp(r){if(typeof r=="string"){const[e,t]=r.split(":");return Math.min(parseFloat(e),parseFloat(t))}return r}function Ep(r){if(typeof r=="string"){const[e,t]=r.split(":"),i=parseFloat(e),n=parseFloat(t);return i/n}return r}function jo({resolution:r,aspectRatio:e}){const t=mp(r),i=Ep(e),n=i>=1,s=Math.min(n?t*i:t/i,t),o=Math.max(n?t*i:t/i,t);return{resolution:t,aspectRatio:i,height:n?s:o,width:n?o:s}}function Ip({source:r,sx:e,sy:t,sw:i,sh:n,dx:s,dy:o,dw:a,dh:l}){const A=(r==null?void 0:r.naturalWidth)??(r==null?void 0:r.videoWidth)??(r==null?void 0:r.width),c=(r==null?void 0:r.naturalHeight)??(r==null?void 0:r.videoHeight)??(r==null?void 0:r.height);e=e??0,t=t??0,i=i??A,n=n??c,i<0&&(e+=i,i=Math.abs(i)),n<0&&(t+=n,n=Math.abs(n)),a<0&&(s+=a,a=Math.abs(a)),l<0&&(o+=l,l=Math.abs(l));const u=Math.max(e,0),h=Math.min(e+i,A),d=Math.max(t,0),f=Math.min(t+n,c),g=a/i,p=l/n;return[r,u,d,h-u,f-d,e<0?s-e*g:s,t<0?o-t*p:o,(h-u)*g,(f-d)*p]}function vp({context:r,source:e,crop:t,format:i="letterbox",posX:n,posY:s,drawAreaWidth:o,drawAreaHeight:a,sourceWidth:l,sourceHeight:A,cropCanvas:c}){const{x:u,y:h,width:d,height:f}=t??{},g=l*(u??0),p=A*(h??0),v=l*Math.min(1-(u??0),d??1),Q=A*Math.min(1-(h??0),f??1);let b=g,y=p,x=v,R=Q,k=v,H=Q;if(c.width=v,c.height=Q,i==="crop"){const P=o/a,K=v/Q,ie=K>P?v-Q*P:0,ee=K<P?Q-v/P:0;c.width=v+ie,c.height=Q+ee,b+=ie/2,y+=ee/2,x-=ie,R-=ee,k+=ie,H+=ee}const V=c.getContext("2d");if(V){const P=Ip({source:e,sx:b,sy:y,sw:x,sh:R,dx:0,dy:0,dw:k,dh:H});V.drawImage(...P)}r.drawImage(c,n,s,o,a)}const ri=/(?<value>\d+\.?\d*)(?=px)/;function hc({context:r,word:e,maxW:t=1/0}){const i=[],n=r.measureText(e);if(Math.floor(n.width)<=t)return[{text:e,metrics:n}];for(let s=0;s<e.length;s++){const o=i[i.length-1],a=((o==null?void 0:o.text)??"")+e[s],l=r.measureText(a);l.width<t?i[o?i.length-1:0]={text:a,metrics:l}:i.push({text:e[s],metrics:r.measureText(e[s])})}return i}const zo=Io(({context:r,fontSizes:e,text:t,maxW:i=1/0})=>{try{return r.save(),r.font=r.font.replace(ri,e[0].toString()),t.split(`
2454
- `).flatMap(s=>{const o=s.split(" ").filter(Boolean);return o.length?o.slice(1).reduce((a,l,A)=>{const u=`${a[a.length-1].text} ${l}`.trim(),h=r.measureText(u);if(h.width>i)a=[...a,...hc({context:r,word:l,maxW:i})];else{const d=e[A%e.length];r.font=r.font.replace(ri,d.toString()),a[a.length-1]={text:u,metrics:h}}return a},hc({context:r,word:o[0],maxW:i})):{text:"",metrics:r.measureText("")}})}finally{r.restore()}},{cacheKey:([{fontSizes:r,text:e,maxW:t}])=>`${JSON.stringify(r)}_${e}_${t}`}),Tr=1.8;function Cp({context:r,x:e,y:t,width:i,height:n,radii:s}){let o,a,l,A;typeof s=="number"?o=a=l=A=s:[o,a,l,A]=s,r.beginPath(),r.moveTo(e+Math.min(n/Tr,o),t),r.lineTo(e+i-Math.min(n/Tr,a),t),r.quadraticCurveTo(e+i,t,e+i,t+Math.min(n/Tr,a)),r.lineTo(e+i,t+n-Math.min(n/Tr,l)),r.quadraticCurveTo(e+i,t+n,e+i-Math.min(n/Tr,l),t+n),r.lineTo(e+Math.min(n/Tr,A),t+n),r.quadraticCurveTo(e,t+n,e,t+n-Math.min(n/Tr,A)),r.lineTo(e,t+Math.min(n/Tr,o)),r.quadraticCurveTo(e,t,e+Math.min(n/Tr,o),t),r.closePath()}function dc({context:r,x:e,y:t,width:i,height:n,radii:s,clip:o=!1,debug:a=!1}){Cp({context:r,x:e,y:t,width:i,height:n,radii:s}),a&&(r.strokeStyle="blue",r.stroke()),o&&r.clip()}const fc=[{family:"Noto Arabic",regex:new RegExp("\\p{Script=Arabic}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansArabic-VariableFont_wdth%2Cwght.woff2",style:"normal"},{family:"Noto Chinese",regex:new RegExp("\\p{Script=Han}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansSC-VariableFont_wght.woff2",style:"normal"},{family:"Noto Hebrew",regex:new RegExp("\\p{Script=Hebrew}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansHebrew-VariableFont_wdth%2Cwght.woff2",style:"normal"},{family:"Noto Hindi",regex:new RegExp("\\p{Script=Devanagari}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansDevanagari-VariableFont_wdth%2Cwght.woff2",style:"normal"},{family:"Noto Japanese",regex:new RegExp("\\p{Script=Han}|\\p{Script=Katakana}|\\p{Script=Hiragana}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansJP-VariableFont_wght.woff2",style:"normal"},{family:"Noto Korean",regex:new RegExp("\\p{Script=Hangul}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansKR-VariableFont_wght.woff2",style:"normal"},{family:"Noto Color Emoji",regex:new RegExp("\\p{Extended_Pictographic}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoColorEmoji-Regular.woff2",style:"normal"}];function us({text:r,font:e}){let t=e;return fc.forEach(({family:i,regex:n})=>{n.exec(r)&&(t+=`, ${i}`)}),t}Io(({context:r,fontSizes:e,maxW:t=1/0,words:i})=>{try{return r.save(),r.font=r.font.replace(ri,e[0].toString()),i.length<=0?[]:i.slice(1).reduce((n,s)=>{var o;const a=s.text,A=`${(o=n[n.length-1])==null?void 0:o.text} ${a}`.trim(),c=r.measureText(A);if(c.width>t){const u=e[n.length%e.length];r.font=r.font.replace(ri,u.toString()),n=[...n,{text:a,metrics:r.measureText(a),words:[s]}]}else n[n.length-1]={text:A,metrics:c,words:[...n[n.length-1].words,s]};return n},[{text:i[0].text,metrics:r.measureText(i[0].text),words:[i[0]]}])}finally{r.restore()}},{cacheKey:([{fontSizes:r,words:e,maxW:t}])=>`${JSON.stringify(r)}_${JSON.stringify(e)}_${t}`});let hs;const yp=new Uint8Array(16);function Bp(){if(!hs&&(hs=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!hs))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return hs(yp)}const Ct=[];for(let r=0;r<256;++r)Ct.push((r+256).toString(16).slice(1));function Tp(r,e=0){return Ct[r[e+0]]+Ct[r[e+1]]+Ct[r[e+2]]+Ct[r[e+3]]+"-"+Ct[r[e+4]]+Ct[r[e+5]]+"-"+Ct[r[e+6]]+Ct[r[e+7]]+"-"+Ct[r[e+8]]+Ct[r[e+9]]+"-"+Ct[r[e+10]]+Ct[r[e+11]]+Ct[r[e+12]]+Ct[r[e+13]]+Ct[r[e+14]]+Ct[r[e+15]]}const gc={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Qp(r,e,t){if(gc.randomUUID&&!e&&!r)return gc.randomUUID();r=r||{};const i=r.random||(r.rng||Bp)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){t=t||0;for(let n=0;n<16;++n)e[t+n]=i[n];return e}return Tp(i)}const pc=Io(({font:r,scale:e,context:t,maxW:i,maxH:n,text:s,minSize:o,maxSize:a})=>{var l,A;let c=0;if(a){c=(o??0)*e;let h=0;for(;a*e>c+1;){c+=1;const d=zo({context:t,fontSizes:[c],text:s,maxW:i});if(h=d.reduce((f,g)=>(g.metrics.width>f&&(f=g.metrics.width),f),0),h>i||d.length*c>n){c-=1;break}}}else c=parseFloat(((A=(l=r.match(ri))==null?void 0:l.groups)==null?void 0:A.value)??"0")*e;return c},{cacheKey:([{font:r,text:e,minSize:t,maxSize:i,scale:n,maxW:s,maxH:o}])=>`${r}_${e}_${t}_${i}_${n}_${s}_${o}`}),bp="text",mc={100:"Thin",200:"ExtraLight",300:"Light",400:"Regular",500:"Medium",600:"SemiBold",700:"Bold",800:"ExtraBold",900:"Black"},xp={type:bp,options:{value:{type:"textarea",name:"value",label:"Text",rows:4},color:{type:"color",name:"color",label:"Text colour"},"font.size":{type:"number",name:"size",label:"Font size",visible:r=>!r.wrap},"font.weight":{type:"select",name:"weight",label:"Font weight",options:r=>{var e;return((e=r.font.family.data)==null?void 0:e.weights.map(({weight:t})=>({label:mc[t],value:t,data:t})))??[]}},"font.family":{type:"font",name:"family",label:"Font family"},wrap:{type:"checkbox",name:"wrap",label:"Text wrap"},align:{type:"radio",name:"align",label:"Text align",items:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],visible:r=>r.wrap},fill:{type:"range",name:"fill",label:"Max font size",min:20,max:400,step:1,visible:r=>r.wrap}},transform:{values:r=>{var e;return{value:r.value,color:r.color??"#000000",font:{size:r.font.size,weight:{label:mc[r.font.weight],value:r.font.weight,data:r.font.weight},family:{label:r.font.family.name,value:r.font.family.name,data:r.font.family}},wrap:r.wrap??!0,align:r.align??"left",fill:[((e=r.fill)==null?void 0:e.maxSize)??400]}},options:r=>{var e;return{value:r.value,color:r.color,font:{size:r.font.size,weight:r.font.weight.data,family:{name:r.font.family.value,weights:((e=r.font.family.data)==null?void 0:e.weights)??[]}},wrap:r.wrap,align:r.align,fill:{minSize:20,maxSize:r.fill[0]}}}},width:({node:r,options:e,dependencies:t,measureCanvas:i})=>{const{value:n="",align:s="left",wrap:o=!1}=e,{font:a}=t,l=i==null?void 0:i.getContext("2d");if(!l)return r.getComputedWidth();const A=`${a.weight} ${a.size}px ${a.family.name}`,c=us({font:A,text:n});if(l.font=c,l.textBaseline="top",l.textAlign=s,o){const u=r.getParent(),h=r.getComputedMargin(ir.Edge.Left)+r.getComputedMargin(ir.Edge.Right)+((u==null?void 0:u.getComputedPadding(ir.Edge.Left))??0)+((u==null?void 0:u.getComputedPadding(ir.Edge.Right))??0);return Math.max(((u==null?void 0:u.getComputedWidth())??0)-h,r.getComputedWidth(),...n.split(" ").map(d=>l.measureText(d).width))}return l.measureText(n).width},height:({node:r,options:e,dependencies:t,measureCanvas:i})=>{var n,s;const{value:o="",fill:a,align:l="left",wrap:A=!1}=e,{font:c}=t,u=`${c.weight} ${c.size}px ${c.family.name}`,h=us({font:u,text:o}),d=i==null?void 0:i.getContext("2d");if(!d)return r.getComputedHeight();if(d.font=h,d.textBaseline="top",d.textAlign=l,A){const f=r.getParent(),g=r.getComputedMargin(ir.Edge.Top)+r.getComputedMargin(ir.Edge.Bottom)+((f==null?void 0:f.getComputedPadding(ir.Edge.Top))??0)+((f==null?void 0:f.getComputedPadding(ir.Edge.Bottom))??0),p=r.getComputedWidth(),v=Math.max(((f==null?void 0:f.getComputedHeight())??0)-g,r.getComputedHeight()),Q=pc({font:h,scale:1,context:d,maxW:p,maxH:v,text:o??"",minSize:a==null?void 0:a.minSize,maxSize:a==null?void 0:a.maxSize});return zo({context:d,fontSizes:[Q],text:o??"",maxW:p}).length*Q}else return parseFloat(((s=(n=h.match(ri))==null?void 0:n.groups)==null?void 0:s.value)??"0")},render:({dx:r,dy:e,dw:t,dh:i,options:n,dependencies:s,canvases:o})=>{const{value:a="",fill:l,color:A,align:c="left",wrap:u=!1}=n,{font:h}=s,d=`${h.weight} ${h.size}px ${h.family.name}`,f=o.sceneCanvas.getContext("2d");if(!f)return;f.save();const g=us({font:d,text:a});f.font=g,f.textBaseline="top",f.fillStyle=A,f.textAlign=c;const p={left:r,center:r+t/2,right:r+t};if(u){const v=pc({font:g,scale:1,context:f,maxW:t,maxH:i,text:a??"",minSize:l==null?void 0:l.minSize,maxSize:l==null?void 0:l.maxSize});f.font=g.replace(ri,v.toString()),zo({context:f,fontSizes:[v],text:a,maxW:t}).forEach((b,y)=>{f.fillText(b.text,p[c],e+v*y)})}else f.fillText(a,p[c],e);f.restore()}},wp={type:"image",width:({node:r,dependencies:e})=>{var t,i,n,s;const o=r.getComputedHeight();if(!o)return r.getComputedWidth();const a=((t=e.image)==null?void 0:t.naturalWidth)??((i=e.image)==null?void 0:i.width),l=((n=e.image)==null?void 0:n.naturalHeight)??((s=e.image)==null?void 0:s.height),A=a/l;return o*A},height:({node:r,dependencies:e})=>{var t,i,n,s;const o=((t=e.image)==null?void 0:t.naturalWidth)??((i=e.image)==null?void 0:i.width),a=((n=e.image)==null?void 0:n.naturalHeight)??((s=e.image)==null?void 0:s.height),l=o/a;return r.getComputedWidth()/l},render:async({dx:r,dy:e,dw:t,dh:i,radius:n,dependencies:s,canvases:o})=>{const a=o.sceneCanvas.getContext("2d");if(!(!a||!s.image)){if(a.save(),n){const{topLeft:l,topRight:A,bottomLeft:c,bottomRight:u}=n;dc({context:a,x:r,y:e,width:t,height:i,radii:[l,A,u,c]}),a.clip()}a.drawImage(s.image,r,e,t,i),a.restore()}}},Sp={type:"video",options:{crop:{type:"crop",name:"crop",label:"Crop"},speed:{type:"slider",name:"speed",label:"Speed",min:.5,max:4,step:.01},volume:{type:"slider",name:"volume",label:"Volume",min:0,max:1,step:.01}},transform:{values:r=>({format:r.format??"crop",crop:r.crop??{x:0,y:0,width:1,height:1},speed:[r.speed??1],volume:[r.volume??1]}),options:r=>({format:r.format,crop:r.crop,speed:r.speed[0],volume:r.volume[0]})},width:async({node:r,options:e,dependencies:t})=>{const{crop:i,format:n}=e,{aspectRatio:s}=t;if(n==="crop")return r.getComputedWidth();const o=s*(((i==null?void 0:i.width)??1)/((i==null?void 0:i.height)??1)),a=r.getComputedWidth(),l=r.getComputedHeight(),A=a/l;return o>A?a:l*o},height:async({node:r,options:e,dependencies:t})=>{const{crop:i,format:n}=e,{aspectRatio:s}=t;if(n==="crop")return r.getComputedHeight();const o=s*(((i==null?void 0:i.width)??1)/((i==null?void 0:i.height)??1));return r.getComputedWidth()/o},render:async({dx:r,dy:e,dw:t,dh:i,radius:n,sceneTime:s,options:o,dependencies:a,canvases:l})=>{const{crop:A,format:c="letterbox"}=o,u=l.sceneCanvas.getContext("2d");if(!u)return;const h=await a.video(s),d=(h==null?void 0:h.videoWidth)??(h==null?void 0:h.naturalWidth)??(h==null?void 0:h.width),f=(h==null?void 0:h.videoHeight)??(h==null?void 0:h.naturalHeight)??(h==null?void 0:h.height);if(d&&f){if(u.save(),n){const{topLeft:g,topRight:p,bottomLeft:v,bottomRight:Q}=n;dc({context:u,x:r,y:e,width:t,height:i,radii:[g,p,Q,v]}),u.clip()}vp({context:u,crop:A,format:c,sourceWidth:d,sourceHeight:f,source:h,posX:r,posY:e,drawAreaWidth:t,drawAreaHeight:i,cropCanvas:l.cropCanvas,letterboxCanvas:l.letterboxCanvas}),u.restore()}}},Rp={type:"audio",options:{speed:{type:"slider",name:"speed",label:"Speed",min:.5,max:4,step:.01},volume:{type:"slider",name:"volume",label:"Volume",min:0,max:1,step:.01}},transform:{values:r=>({speed:[r.speed??1],volume:[r.volume??1]}),options:r=>({speed:r.speed[0],volume:r.volume[0]})}};function Dp(r){if(r===null||typeof r!="object")return!1;if(Object.getPrototypeOf(r)===null)return!0;let e=r;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(r)===e}function _p(r){return r.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\f/g,"\\f").replace(/"/g,'\\"')}const Lp=ei(()=>ir.loadYoga());Hf.filters.define("parse",r=>typeof r>"u"?null:typeof r=="string"?`"${_p(r)}"`:Dp(r)||Array.isArray(r)?JSON.stringify(r):r);const Fp="3";function kp(r){return typeof r=="number"?{topLeft:r,topRight:r,bottomRight:r,bottomLeft:r}:{topLeft:(r==null?void 0:r.topLeft)??0,topRight:(r==null?void 0:r.topRight)??0,bottomRight:(r==null?void 0:r.bottomRight)??0,bottomLeft:(r==null?void 0:r.bottomLeft)??0}}function Mp(r,e){return typeof r=="number"?{top:r*e,right:r*e,bottom:r*e,left:r*e}:{top:typeof r.top=="number"?r.top*e:r.top,right:typeof r.right=="number"?r.right*e:r.right,bottom:typeof r.bottom=="number"?r.bottom*e:r.bottom,left:typeof r.left=="number"?r.left*e:r.left}}function Ec(r,e){return typeof r=="number"?{top:r*e,right:r*e,bottom:r*e,left:r*e}:{top:(typeof r.top=="number"?r.top*e:r.top)??0,right:(typeof r.right=="number"?r.right*e:r.right)??0,bottom:(typeof r.bottom=="number"?r.bottom*e:r.bottom)??0,left:(typeof r.left=="number"?r.left*e:r.left)??0}}function Ic(r,e,{layout:t,scale:i=1}){const{position:n="relative",inset:s,width:o,height:a,minWidth:l,minHeight:A,maxWidth:c,maxHeight:u,flex:h,gap:d,margin:f,padding:g,direction:p="column",align:v="start",alignSelf:Q,justify:b="start"}=t??{},y={static:r.POSITION_TYPE_STATIC,relative:r.POSITION_TYPE_RELATIVE,absolute:r.POSITION_TYPE_ABSOLUTE};if(e.setPositionType(y[n]),s){const{top:H,right:V,bottom:P,left:K}=Mp(s,i);typeof H<"u"&&e.setPosition(r.EDGE_TOP,H),typeof V<"u"&&e.setPosition(r.EDGE_RIGHT,V),typeof P<"u"&&e.setPosition(r.EDGE_BOTTOM,P),typeof K<"u"&&e.setPosition(r.EDGE_LEFT,K)}const x={row:r.FLEX_DIRECTION_ROW,column:r.FLEX_DIRECTION_COLUMN,"row-reverse":r.FLEX_DIRECTION_ROW_REVERSE,"column-reverse":r.FLEX_DIRECTION_COLUMN_REVERSE};e.setFlexDirection(x[p]);const R={start:r.ALIGN_FLEX_START,end:r.ALIGN_FLEX_END,center:r.ALIGN_CENTER,stretch:r.ALIGN_STRETCH};e.setAlignItems(R[v]),Q&&e.setAlignSelf(R[Q]);const k={start:r.JUSTIFY_FLEX_START,end:r.JUSTIFY_FLEX_END,center:r.JUSTIFY_CENTER,"space-between":r.JUSTIFY_SPACE_BETWEEN,"space-around":r.JUSTIFY_SPACE_AROUND,"space-evenly":r.JUSTIFY_SPACE_EVENLY};if(e.setJustifyContent(k[b]),f){const{top:H,right:V,bottom:P,left:K}=Ec(f,i);e.setMargin(r.EDGE_TOP,H),e.setMargin(r.EDGE_RIGHT,V),e.setMargin(r.EDGE_BOTTOM,P),e.setMargin(r.EDGE_LEFT,K)}if(g){const{top:H,right:V,bottom:P,left:K}=Ec(g,i);e.setPadding(r.EDGE_TOP,H),e.setPadding(r.EDGE_RIGHT,V),e.setPadding(r.EDGE_BOTTOM,P),e.setPadding(r.EDGE_LEFT,K)}typeof h<"u"&&e.setFlex(h),e.setGap(r.GUTTER_ALL,(d??0)*i),typeof o<"u"&&e.setWidth(typeof o=="number"?o*i:o),typeof a<"u"&&(typeof a=="function"?e.setHeight("100%"):e.setHeight(typeof a=="number"?a*i:a)),typeof l<"u"&&e.setMinWidth(typeof l=="number"?l*i:l),typeof A<"u"&&e.setMinHeight(typeof A=="number"?A*i:A),typeof c<"u"&&e.setMaxWidth(typeof c=="number"?c*i:c),typeof u<"u"&&e.setMaxHeight(typeof u=="number"?u*i:u)}async function vc({yoga:r,index:e,parent:t,element:i,resolvers:n}){var s,o;const{type:a,layout:l={},config:A,options:c,renderer:u}=i,h=r.Node.create();Ic(r,h,{layout:l}),t.insertChild(h,e);let d=null;n&&((u==null?void 0:u.type)==="text"||(u==null?void 0:u.type)==="image"||(u==null?void 0:u.type)==="video")&&(d=await((s=n[u.type])==null?void 0:s.call(n,{config:A,options:c}))??null);const f=[];for await(const[g,p]of((o=i.children)==null?void 0:o.entries())??[])f.push(await vc({yoga:r,index:g,parent:h,element:p,resolvers:n}));return t.calculateLayout(),{type:a,node:h,radius:kp(l.radius),element:i,renderer:u,config:A,options:c,dependencies:d,childNodes:f}}function Cc(r,e,t=0,i=0){const{top:n,left:s}=r.getComputedLayout(),{top:o,left:a,width:l,height:A}=e.node.getComputedLayout(),c=t+a,u=i+o,h=e.childNodes.map(d=>Cc(r,d,c,u));return{...e,x:s+c,y:n+u,width:l,height:A,childNodes:h}}async function Zo(r,e,t){for await(const{node:i,options:n,dependencies:s,renderer:o,childNodes:a}of e){if(o){const{width:l,height:A}=o;if(l){const c=await l({node:i,options:n,dependencies:s,measureCanvas:t});i.setWidth(c)}if(await Zo(r,a,t),A){const c=await A({node:i,options:n,dependencies:s,measureCanvas:t});i.setHeight(c)}}await Zo(r,a,t)}r.calculateLayout()}async function yc({root:r,resolvers:e,measureCanvas:t}){const i=await Lp(),n=i.Node.create();Ic(i,n,{layout:r.layout});const s=await vc({yoga:i,index:0,parent:n,element:r.element,resolvers:e});await Zo(n,[s],t);const{top:o,left:a,width:l,height:A}=n.getComputedLayout(),c={root:{x:a,y:o,width:l,height:A},node:Cc(n,s)};return n.freeRecursive(),c}function Qr(r){let e=0;for(const t of r)Array.isArray(t)?e+=Qr(t):e+=t;return e}function ea(r){return r.map(({type:e,duration:t},i)=>{var n,s,o,a;if(e==="transition"){const l=((n=r[i-2])==null?void 0:n.type)==="transition"?r[i-2]:null,A=((s=r[i-1])==null?void 0:s.duration)??1/0,c=((o=r[i+1])==null?void 0:o.duration)??1/0,u=((a=r[i+2])==null?void 0:a.type)==="transition"?r[i+2]:null;return Math.min(l?A/2:A,t,u?c/2:c)*-1}return t})}function Bc(r){var e;return{...r,children:((e=r.children)==null?void 0:e.map(t=>{if(t.type!=="recipe")return Bc(t)}).filter(Boolean))??[]}}function Tc(r){const e={box:0,image:0,video:0,text:0,audio:0};r.renderer&&(e[r.renderer.type]+=1);for(const t of r.children??[]){const{box:i,image:n,video:s,text:o,audio:a}=Tc(t);e.box+=i,e.image+=n,e.video+=s,e.text+=o,e.audio+=a}return e}function Np(r){return r.video>0?Sp.type:r.image>0?wp.type:r.audio>0?Rp.type:xp.type}function Qc({node:r,duration:e}){const t=[];if(r.type==="recipe"){const i=Bc({...r.element,layout:{...r.element.layout,position:"static",width:"100%",height:"100%",margin:0}}),n=Tc(i);t.push({type:Np(n),id:Qp(),x:r.x,y:r.y,width:r.width,height:r.height,duration:e,root:{element:i}})}for(const i of r.childNodes)t.push(...Qc({node:i,duration:e}));return t}async function Pp({scene:r,start:e=0}){const{root:t,duration:i}=r,n=await yc({root:t});return{type:r.type,start:e,duration:i,layout:n,id:r.id,config:r}}async function Op({track:r}){const e=ea(r),t=await Promise.all(r.reduce((s,o,a)=>{if(o.type!=="audio")return s;const l=Qr(e.slice(0,a));return s.push(Pp({scene:o,start:l})),s},[])),i=r.reduce((s,o,a)=>{if(o.type!=="gap")return s;const l=Qr(e.slice(0,a));return s.push({type:o.type,id:o.id,start:l,config:o,duration:o.duration}),s},[]),n=r.map(({id:s})=>t.find(({id:o})=>o===s)??i.find(({id:o})=>o===s)).filter(Boolean);return{type:"audio",scenes:t,gapScenes:i,mergedScenes:n,config:r,duration:Math.max(...n.map(({start:s,duration:o})=>s+o))}}async function bc(){return document.createElement("canvas")}async function xc({node:r,canvases:e,sceneTime:t}){var i,n;await((n=(i=r.renderer)==null?void 0:i.render)==null?void 0:n.call(i,{canvases:e,sceneTime:t,dx:r.x,dy:r.y,dw:r.width,dh:r.height,radius:r.radius,options:r.options,dependencies:r.dependencies}));const{sceneCanvas:s}=e,o=s.getContext("2d");o&&(o.strokeStyle="red",o.strokeRect(r.x,r.y,r.width,r.height));for await(const a of r.childNodes)await xc({node:a,canvases:e,sceneTime:t})}async function Up({layout:r,canvases:e,sceneTime:t}){const{node:i}=r;await xc({node:i,canvases:e,sceneTime:t})}async function ta({scene:r,start:e=0,resolvers:t,rootWidth:i,rootHeight:n,canvasFactory:s=bc}){var o,a;const{x:l,y:A,width:c,height:u,root:h,duration:d}=r,f=await s(),g=await s(),p=await s(),v=await s(),Q=await s(),b=await s(),y=await yc({root:{...h,layout:{...h.layout,width:i,height:n},element:{...h.element,layout:{...h.element.layout,...typeof l=="number"&&typeof A=="number"?{position:"absolute",inset:{top:A,left:l}}:{},width:c??((o=h.element.layout)==null?void 0:o.width),height:u??((a=h.element.layout)==null?void 0:a.height)}}},resolvers:t,measureCanvas:b}),x=async R=>{const k=Math.max(0,R-e);f.width=f.height=0,f.width=i,f.height=n,await Up({layout:y,sceneTime:k,canvases:{sceneCanvas:f,cropCanvas:p,letterboxCanvas:v,posterCanvas:Q}})};return{type:r.type,draw:x,start:e,duration:d,layout:y,sceneCanvas:f,transitionCanvas:g,id:r.id,config:r,childScenes:Qc({node:y.node,duration:d})}}async function Gp({track:r,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}){const s=ea(r),o=await Promise.all(r.reduce((c,u,h)=>{const d=Qr(s.slice(0,h));return u.type==="video"&&c.push(ta({scene:u,start:d,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n})),u.type==="image"&&c.push(ta({scene:u,start:d,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n})),c},[])),a=r.reduce((c,u,h)=>{if(u.type!=="gap")return c;const d=Qr(s.slice(0,h));return c.push({type:u.type,id:u.id,start:d,config:u,duration:u.duration}),c},[]),l=r.reduce((c,u,h)=>{if(u.type!=="transition")return c;const d=u.duration,f=Qr(s.slice(0,h))-d;return c.push({type:u.type,id:u.id,name:u.name,start:f,duration:d,config:u,to:o.find(({id:g})=>{var p;return g===((p=r[h+1])==null?void 0:p.id)}),from:o.find(({id:g})=>{var p;return g===((p=r[h-1])==null?void 0:p.id)})}),c},[]),A=r.map(({id:c})=>o.find(({id:u})=>u===c)??a.find(({id:u})=>u===c)??l.find(({id:u})=>u===c)).filter(Boolean);return{type:"picture",scenes:o,gapScenes:a,transitions:l,mergedScenes:A,duration:Math.max(0,...A.map(({start:c,duration:u})=>c+u)),trackCanvas:await n()}}async function Hp({track:r,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}){const s=ea(r),o=await Promise.all(r.reduce((c,u,h)=>{const d=Qr(s.slice(0,h));return u.type==="text"&&c.push(ta({scene:u,start:d,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n})),c},[])),a=r.reduce((c,u,h)=>{if(u.type!=="gap")return c;const d=Qr(s.slice(0,h));return c.push({type:u.type,id:u.id,start:d,config:u,duration:u.duration}),c},[]),l=r.reduce((c,u,h)=>{if(u.type!=="transition")return c;const d=u.duration,f=Qr(s.slice(0,h))-d;return c.push({type:u.type,id:u.id,name:u.name,start:f,duration:d,config:u,to:o.find(({id:g})=>{var p;return g===((p=r[h+1])==null?void 0:p.id)}),from:o.find(({id:g})=>{var p;return g===((p=r[h-1])==null?void 0:p.id)})}),c},[]),A=r.map(({id:c})=>o.find(({id:u})=>u===c)??a.find(({id:u})=>u===c)??l.find(({id:u})=>u===c)).filter(Boolean);return{type:"text",scenes:o,gapScenes:a,transitions:l,mergedScenes:A,duration:Math.max(...A.map(({start:c,duration:u})=>c+u)),trackCanvas:await n()}}function $p(r){return r.some(({type:e})=>e==="video"||e==="image")}function Yp(r){return r.some(({type:e})=>e==="audio")}function Vp(r){return r.some(({type:e})=>e==="text")}function Kp(r){return r.type==="audio"}const Wp=(((uc=cc)==null?void 0:uc.default)??cc).reduce((r,e)=>(r[e.name]=e,r),{});function Jp({name:r,canvas:e,to:t,from:i,progress:n}){var s,o,a;const l=e.getContext("webgl",{alpha:!0});if(l){l.disable(l.DEPTH_TEST),l.pixelStorei(l.UNPACK_FLIP_Y_WEBGL,!0);const A=l.createBuffer();l.bindBuffer(l.ARRAY_BUFFER,A),l.bufferData(l.ARRAY_BUFFER,new Float32Array([-1,-1,-1,4,4,-1]),l.STATIC_DRAW),l.viewport(0,0,e.width,e.height);const c=(((s=as)==null?void 0:s.default)??as)(l,i);c.minFilter=l.LINEAR,c.magFilter=l.LINEAR;const u=(((o=as)==null?void 0:o.default)??as)(l,t);u.minFilter=l.LINEAR,u.magFilter=l.LINEAR;const h=(((a=Ac)==null?void 0:a.default)??Ac)(l,Wp[r]);h.draw(n,c,u,e.width,e.height),c.dispose(),u.dispose(),h.dispose(),l.flush()}}async function wc({config:r,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n=bc}){const s=await Promise.all(r.tracks.map(async l=>{if($p(l))return{...await Gp({track:l,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}),config:l};if(Vp(l))return{...await Hp({track:l,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}),config:l};if(Yp(l))return{...await Op({track:l}),config:l};throw new Error("Unknown track type")}));console.log({tracks:s});const o=await n();return{draw:async({canvas:l,currentTime:A})=>{const c=l.getContext("2d");if(c){c.globalAlpha=1,c.globalCompositeOperation="source-over",c.clearRect(0,0,l.width,l.height),c.save(),c.fillStyle="black",c.fillRect(0,0,l.width,l.height),c.restore();for await(const u of s){if(Kp(u))continue;const{scenes:h,transitions:d,trackCanvas:f}=u;f.width=f.height=0,f.width=l.width,f.height=l.height;const g=h.filter(({start:v,duration:Q})=>A>=v&&A<v+Q);if(g.length<=0)continue;const p=d.find(({start:v,duration:Q})=>A>=v&&A<v+Q);for await(const{id:v,start:Q,duration:b,sceneCanvas:y,transitionCanvas:x,draw:R}of g)if(await(R==null?void 0:R(A)),!p)c.drawImage(y,0,0,y.width,y.height);else{const{name:k,to:H,from:V,duration:P}=p;o.width=o.height=x.width=x.height=0,o.width=x.width=y.width,o.height=x.height=y.height;const K=(H==null?void 0:H.id)===v,ie=(V==null?void 0:V.id)===v,ee=K&&H.sceneCanvas||o,le=ie&&V.sceneCanvas||o,D=K?Math.min(1,Math.max(0,(A-Q)/P)):Math.min(1,Math.max(0,1-(Q+b-A)/P));Jp({name:k,progress:D,to:ee,from:le,canvas:x});const O=f.getContext("2d");if(!O)return;O.globalCompositeOperation="lighter",O.drawImage(x,0,0,x.width,x.height)}c.drawImage(f,0,0,f.width,f.height)}}},tracks:s,duration:Math.max(...s.map(({duration:l})=>l))}}const qp={name:"@vouchfor/embeds",version:"0.0.0-experiment.b6b97eb",license:"MIT",author:"Aaron Williams",main:"dist/es/embeds.js",module:"dist/es/embeds.js",type:"module",types:"dist/es/src/index.d.ts",exports:{".":"./dist/es/embeds.js"},files:["dist","src"],publishConfig:{tag:"experiment",access:"public"},engines:{node:">=18.18.0"},scripts:{build:"rm -rf dist && tsc && yarn build:self","build:deps":"yarn --cwd ../media-player build","build:self":"vite build --mode iife && vite build --mode es && node scripts/build.cjs","build:package":"yarn build","build:storybook":"yarn prebuild && storybook build","generate:manifest":"wca src --outFile custom-elements.json",lint:"eslint . --quiet","lint:fix":"eslint . --fix","lint:staged":"lint-staged",prepublishOnly:"yarn build",size:"size-limit",storybook:"yarn prebuild && storybook dev -p 6007",prebuild:"yarn build:deps && yarn generate:manifest",test:"rm -rf test/lib && yarn prebuild && vite build --mode test && web-test-runner","test:ci":"yarn test --config web-test-runner.ci.config.js","test:watch":"yarn test --watch"},"lint-staged":{"**/*.{ts,tsx,js}":"eslint --fix --quiet","**/*.{md,json,yml}":"prettier --write"},dependencies:{"@a11y/focus-trap":"^1.0.5","@lit/task":"^1.0.0","@vouchfor/canvas-video":"0.0.0-experiment.b6b97eb","@vouchfor/media-player":"0.0.0-experiment.b6b97eb",uuid:"^9.0.1"},peerDependencies:{lit:"^3.1.2"},devDependencies:{"@esm-bundle/chai":"^4.3.4-fix.0","@open-wc/testing":"^4.0.0","@storybook/addon-essentials":"^8.0.4","@storybook/addon-links":"^8.0.4","@storybook/blocks":"^8.0.4","@storybook/web-components":"^8.0.4","@storybook/web-components-vite":"^8.0.4","@svgr/core":"^8.1.0","@types/flat":"^5.0.5","@types/mocha":"^10.0.6","@vouchfor/eslint-config":"^1.0.1","@vouchfor/prettier-config":"^1.0.1","@vouchfor/video-utils":"0.0.0-experiment.b6b97eb","@web/dev-server-esbuild":"^1.0.2","@web/test-runner":"^0.18.1","@web/test-runner-browserstack":"^0.7.1","@web/test-runner-mocha":"^0.9.0","@web/test-runner-playwright":"^0.11.0",glob:"^10.3.10","lint-staged":"^15.2.2",lit:"^3.1.2",lodash:"^4.17.21",react:"^18.2.0","react-dom":"^18.2.0","rollup-plugin-tla":"^0.0.2",sinon:"^17.0.1",storybook:"^8.0.4",svgson:"^5.3.1",typescript:"^5.4.3",vite:"^5.2.2","vite-plugin-commonjs":"^0.10.1","vite-plugin-dts":"^3.7.3","web-component-analyzer":"^2.0.0"}};function Xp(r){const{publicApiUrl:e}=Yn(r),t=Nr();return navigator.sendBeacon(`${e}/api/visitor`,JSON.stringify({visitorId:t})),t}function jp(r){var s,o,a,l,A,c,u,h,d,f,g,p;if(typeof window>"u")return{client:null,tab:null,request:Nr()};let e=(o=(s=window.localStorage)==null?void 0:s.getItem)==null?void 0:o.call(s,"vouch-uid-visitor"),t=(l=(a=window.localStorage)==null?void 0:a.getItem)==null?void 0:l.call(a,"vouch-uid-client"),i=(c=(A=window.sessionStorage)==null?void 0:A.getItem)==null?void 0:c.call(A,"vouch-uid-tab");const n=Nr();return e||(e=Xp(r),(h=(u=window.localStorage)==null?void 0:u.setItem)==null||h.call(u,"vouch-uid-visitor",e)),t||(t=Nr(),(f=(d=window.localStorage)==null?void 0:d.setItem)==null||f.call(d,"vouch-uid-client",t)),i||(i=Nr(),(p=(g=window.sessionStorage)==null?void 0:g.setItem)==null||p.call(g,"vouch-uid-tab",i)),{client:t,tab:i,request:n,visitor:e}}function zp(r,e){return r&&"vouchId"in r?r.vouchId:(e==null?void 0:e.id)??null}function Zp(r="embedded_player"){var n,s;const[e,t]=((s=(n=Intl.DateTimeFormat().resolvedOptions().timeZone)==null?void 0:n.split)==null?void 0:s.call(n,"/"))??[],i={};return[...new URLSearchParams(location.search).entries()].forEach(([o,a])=>{if(/utm/.test(o)){const l=o.toLowerCase().replace(/[-_][a-z0-9]/g,A=>A.slice(-1).toUpperCase());i[l]=a}}),{source:r,time:new Date,region:t,country:e,screenHeight:window.screen.height,screenWidth:window.screen.width,referrer:document.referrer,currentUrl:location.href,embedType:"media-player-embed",embedVersion:qp.version,templateVersion:Fp,...i}}const Sc=1;class em{constructor(e){this._batchedEvents=[],this._hasPlayed=!1,this._hasLoaded={},this._answersViewed={},this._streamStartTime={},this._streamLatestTime={},this._currentlyPlayingVideo=null,this._createTrackingEvent=(t,i)=>{const n=zp(i,this.host.vouch);!n||this.host.disableTracking||this._batchedEvents.push({event:t,payload:{...i,vouchId:n,time:new Date().toISOString()}})},this._sendTrackingEvent=()=>{if(this._batchedEvents.length<=0)return;const{publicApiUrl:t}=Yn(this.host.env),{client:i,tab:n,request:s,visitor:o}=jp(this.host.env);navigator.sendBeacon(`${t}/api/batchevents`,JSON.stringify({payload:{events:this._batchedEvents},context:{"x-uid-client":i,"x-uid-tab":n,"x-uid-request":s,"x-uid-visitor":o,"x-reporting-metadata":Zp(this.host.trackingSource)}})),this._batchedEvents=[]},this._streamEnded=()=>{if(this._currentlyPlayingVideo){const{id:t,key:i}=this._currentlyPlayingVideo;this._streamLatestTime[i]>this._streamStartTime[i]+Sc&&this._createTrackingEvent("VIDEO_STREAMED",{answerId:t,streamStart:this._streamStartTime[i],streamEnd:this._streamLatestTime[i]}),delete this._streamStartTime[i],delete this._streamLatestTime[i]}},this._handleVouchLoaded=({detail:t})=>{t&&(this._hasLoaded[t]||(this._createTrackingEvent("VOUCH_LOADED",{vouchId:t}),this._hasLoaded[t]=!0))},this._handlePlay=()=>{this._hasPlayed||(this._createTrackingEvent("VIDEO_PLAYED",{streamStart:this.host.currentTime}),this._hasPlayed=!0)},this._handleVideoPlay=({detail:{id:t,key:i}})=>{this._answersViewed[i]||(this._createTrackingEvent("VOUCH_RESPONSE_VIEWED",{answerId:t}),this._answersViewed[i]=!0)},this._handleVideoTimeUpdate=({detail:{id:t,key:i,node:n}})=>{this.host.paused||(this._currentlyPlayingVideo={id:t,key:i,node:n},this._streamLatestTime[i]=n.currentTime,this._streamStartTime[i]||(this._streamStartTime[i]=n.currentTime,this._streamLatestTime[i]=n.currentTime))},this._handleVideoPause=({detail:{id:t,key:i}})=>{this._streamLatestTime[i]>this._streamStartTime[i]+Sc&&this._createTrackingEvent("VIDEO_STREAMED",{answerId:t,streamStart:this._streamStartTime[i],streamEnd:this._streamLatestTime[i]}),delete this._streamStartTime[i],delete this._streamLatestTime[i]},this._pageUnloading=()=>{this._streamEnded(),this._sendTrackingEvent()},this._handleVisibilityChange=()=>{document.visibilityState==="hidden"&&this._pageUnloading()},this._handlePageHide=()=>{this._pageUnloading()},this.host=e,e.addController(this)}hostConnected(){requestAnimationFrame(()=>{var e,t,i,n;"onvisibilitychange"in document?document.addEventListener("visibilitychange",this._handleVisibilityChange):window.addEventListener("pagehide",this._handlePageHide),this.host.addEventListener("vouch:loaded",this._handleVouchLoaded),(e=this.host.mediaPlayer)==null||e.addEventListener("play",this._handlePlay),(t=this.host.mediaPlayer)==null||t.addEventListener("video:play",this._handleVideoPlay),(i=this.host.mediaPlayer)==null||i.addEventListener("video:pause",this._handleVideoPause),(n=this.host.mediaPlayer)==null||n.addEventListener("video:timeupdate",this._handleVideoTimeUpdate)})}hostDisconnected(){var e,t,i,n;this._pageUnloading(),"onvisibilitychange"in document?document.removeEventListener("visibilitychange",this._handleVisibilityChange):window.removeEventListener("pagehide",this._handlePageHide),this.host.removeEventListener("vouch:loaded",this._handleVouchLoaded),(e=this.host.mediaPlayer)==null||e.removeEventListener("play",this._handlePlay),(t=this.host.mediaPlayer)==null||t.removeEventListener("video:play",this._handleVideoPlay),(i=this.host.mediaPlayer)==null||i.removeEventListener("video:pause",this._handleVideoPause),(n=this.host.mediaPlayer)==null||n.removeEventListener("video:timeupdate",this._handleVideoTimeUpdate)}}var ra={exports:{}};(function(r,e){var t=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof vi<"u"&&vi,i=function(){function s(){this.fetch=!1,this.DOMException=t.DOMException}return s.prototype=t,new s}();(function(s){(function(o){var a=typeof s<"u"&&s||typeof self<"u"&&self||typeof a<"u"&&a,l={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function A(D){return D&&DataView.prototype.isPrototypeOf(D)}if(l.arrayBuffer)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(D){return D&&c.indexOf(Object.prototype.toString.call(D))>-1};function h(D){if(typeof D!="string"&&(D=String(D)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(D)||D==="")throw new TypeError('Invalid character in header field name: "'+D+'"');return D.toLowerCase()}function d(D){return typeof D!="string"&&(D=String(D)),D}function f(D){var O={next:function(){var X=D.shift();return{done:X===void 0,value:X}}};return l.iterable&&(O[Symbol.iterator]=function(){return O}),O}function g(D){this.map={},D instanceof g?D.forEach(function(O,X){this.append(X,O)},this):Array.isArray(D)?D.forEach(function(O){this.append(O[0],O[1])},this):D&&Object.getOwnPropertyNames(D).forEach(function(O){this.append(O,D[O])},this)}g.prototype.append=function(D,O){D=h(D),O=d(O);var X=this.map[D];this.map[D]=X?X+", "+O:O},g.prototype.delete=function(D){delete this.map[h(D)]},g.prototype.get=function(D){return D=h(D),this.has(D)?this.map[D]:null},g.prototype.has=function(D){return this.map.hasOwnProperty(h(D))},g.prototype.set=function(D,O){this.map[h(D)]=d(O)},g.prototype.forEach=function(D,O){for(var X in this.map)this.map.hasOwnProperty(X)&&D.call(O,this.map[X],X,this)},g.prototype.keys=function(){var D=[];return this.forEach(function(O,X){D.push(X)}),f(D)},g.prototype.values=function(){var D=[];return this.forEach(function(O){D.push(O)}),f(D)},g.prototype.entries=function(){var D=[];return this.forEach(function(O,X){D.push([X,O])}),f(D)},l.iterable&&(g.prototype[Symbol.iterator]=g.prototype.entries);function p(D){if(D.bodyUsed)return Promise.reject(new TypeError("Already read"));D.bodyUsed=!0}function v(D){return new Promise(function(O,X){D.onload=function(){O(D.result)},D.onerror=function(){X(D.error)}})}function Q(D){var O=new FileReader,X=v(O);return O.readAsArrayBuffer(D),X}function b(D){var O=new FileReader,X=v(O);return O.readAsText(D),X}function y(D){for(var O=new Uint8Array(D),X=new Array(O.length),_=0;_<O.length;_++)X[_]=String.fromCharCode(O[_]);return X.join("")}function x(D){if(D.slice)return D.slice(0);var O=new Uint8Array(D.byteLength);return O.set(new Uint8Array(D)),O.buffer}function R(){return this.bodyUsed=!1,this._initBody=function(D){this.bodyUsed=this.bodyUsed,this._bodyInit=D,D?typeof D=="string"?this._bodyText=D:l.blob&&Blob.prototype.isPrototypeOf(D)?this._bodyBlob=D:l.formData&&FormData.prototype.isPrototypeOf(D)?this._bodyFormData=D:l.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)?this._bodyText=D.toString():l.arrayBuffer&&l.blob&&A(D)?(this._bodyArrayBuffer=x(D.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):l.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(D)||u(D))?this._bodyArrayBuffer=x(D):this._bodyText=D=Object.prototype.toString.call(D):this._bodyText="",this.headers.get("content-type")||(typeof D=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):l.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},l.blob&&(this.blob=function(){var D=p(this);if(D)return D;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var D=p(this);return D||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else return this.blob().then(Q)}),this.text=function(){var D=p(this);if(D)return D;if(this._bodyBlob)return b(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(y(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},l.formData&&(this.formData=function(){return this.text().then(P)}),this.json=function(){return this.text().then(JSON.parse)},this}var k=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function H(D){var O=D.toUpperCase();return k.indexOf(O)>-1?O:D}function V(D,O){if(!(this instanceof V))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');O=O||{};var X=O.body;if(D instanceof V){if(D.bodyUsed)throw new TypeError("Already read");this.url=D.url,this.credentials=D.credentials,O.headers||(this.headers=new g(D.headers)),this.method=D.method,this.mode=D.mode,this.signal=D.signal,!X&&D._bodyInit!=null&&(X=D._bodyInit,D.bodyUsed=!0)}else this.url=String(D);if(this.credentials=O.credentials||this.credentials||"same-origin",(O.headers||!this.headers)&&(this.headers=new g(O.headers)),this.method=H(O.method||this.method||"GET"),this.mode=O.mode||this.mode||null,this.signal=O.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&X)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(X),(this.method==="GET"||this.method==="HEAD")&&(O.cache==="no-store"||O.cache==="no-cache")){var _=/([?&])_=[^&]*/;if(_.test(this.url))this.url=this.url.replace(_,"$1_="+new Date().getTime());else{var S=/\?/;this.url+=(S.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}V.prototype.clone=function(){return new V(this,{body:this._bodyInit})};function P(D){var O=new FormData;return D.trim().split("&").forEach(function(X){if(X){var _=X.split("="),S=_.shift().replace(/\+/g," "),F=_.join("=").replace(/\+/g," ");O.append(decodeURIComponent(S),decodeURIComponent(F))}}),O}function K(D){var O=new g,X=D.replace(/\r?\n[\t ]+/g," ");return X.split("\r").map(function(_){return _.indexOf(`
2454
+ `).flatMap(s=>{const o=s.split(" ").filter(Boolean);return o.length?o.slice(1).reduce((a,l,A)=>{const u=`${a[a.length-1].text} ${l}`.trim(),h=r.measureText(u);if(h.width>i)a=[...a,...hc({context:r,word:l,maxW:i})];else{const d=e[A%e.length];r.font=r.font.replace(ri,d.toString()),a[a.length-1]={text:u,metrics:h}}return a},hc({context:r,word:o[0],maxW:i})):{text:"",metrics:r.measureText("")}})}finally{r.restore()}},{cacheKey:([{fontSizes:r,text:e,maxW:t}])=>`${JSON.stringify(r)}_${e}_${t}`}),Tr=1.8;function Cp({context:r,x:e,y:t,width:i,height:n,radii:s}){let o,a,l,A;typeof s=="number"?o=a=l=A=s:[o,a,l,A]=s,r.beginPath(),r.moveTo(e+Math.min(n/Tr,o),t),r.lineTo(e+i-Math.min(n/Tr,a),t),r.quadraticCurveTo(e+i,t,e+i,t+Math.min(n/Tr,a)),r.lineTo(e+i,t+n-Math.min(n/Tr,l)),r.quadraticCurveTo(e+i,t+n,e+i-Math.min(n/Tr,l),t+n),r.lineTo(e+Math.min(n/Tr,A),t+n),r.quadraticCurveTo(e,t+n,e,t+n-Math.min(n/Tr,A)),r.lineTo(e,t+Math.min(n/Tr,o)),r.quadraticCurveTo(e,t,e+Math.min(n/Tr,o),t),r.closePath()}function dc({context:r,x:e,y:t,width:i,height:n,radii:s,clip:o=!1,debug:a=!1}){Cp({context:r,x:e,y:t,width:i,height:n,radii:s}),a&&(r.strokeStyle="blue",r.stroke()),o&&r.clip()}const fc=[{family:"Noto Arabic",regex:new RegExp("\\p{Script=Arabic}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansArabic-VariableFont_wdth%2Cwght.woff2",style:"normal"},{family:"Noto Chinese",regex:new RegExp("\\p{Script=Han}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansSC-VariableFont_wght.woff2",style:"normal"},{family:"Noto Hebrew",regex:new RegExp("\\p{Script=Hebrew}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansHebrew-VariableFont_wdth%2Cwght.woff2",style:"normal"},{family:"Noto Hindi",regex:new RegExp("\\p{Script=Devanagari}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansDevanagari-VariableFont_wdth%2Cwght.woff2",style:"normal"},{family:"Noto Japanese",regex:new RegExp("\\p{Script=Han}|\\p{Script=Katakana}|\\p{Script=Hiragana}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansJP-VariableFont_wght.woff2",style:"normal"},{family:"Noto Korean",regex:new RegExp("\\p{Script=Hangul}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoSansKR-VariableFont_wght.woff2",style:"normal"},{family:"Noto Color Emoji",regex:new RegExp("\\p{Extended_Pictographic}","u"),url:"https://media-player-fonts.s3.ap-southeast-2.amazonaws.com/NotoColorEmoji-Regular.woff2",style:"normal"}];function us({text:r,font:e}){let t=e;return fc.forEach(({family:i,regex:n})=>{n.exec(r)&&(t+=`, ${i}`)}),t}Io(({context:r,fontSizes:e,maxW:t=1/0,words:i})=>{try{return r.save(),r.font=r.font.replace(ri,e[0].toString()),i.length<=0?[]:i.slice(1).reduce((n,s)=>{var o;const a=s.text,A=`${(o=n[n.length-1])==null?void 0:o.text} ${a}`.trim(),c=r.measureText(A);if(c.width>t){const u=e[n.length%e.length];r.font=r.font.replace(ri,u.toString()),n=[...n,{text:a,metrics:r.measureText(a),words:[s]}]}else n[n.length-1]={text:A,metrics:c,words:[...n[n.length-1].words,s]};return n},[{text:i[0].text,metrics:r.measureText(i[0].text),words:[i[0]]}])}finally{r.restore()}},{cacheKey:([{fontSizes:r,words:e,maxW:t}])=>`${JSON.stringify(r)}_${JSON.stringify(e)}_${t}`});let hs;const yp=new Uint8Array(16);function Bp(){if(!hs&&(hs=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!hs))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return hs(yp)}const Ct=[];for(let r=0;r<256;++r)Ct.push((r+256).toString(16).slice(1));function Tp(r,e=0){return Ct[r[e+0]]+Ct[r[e+1]]+Ct[r[e+2]]+Ct[r[e+3]]+"-"+Ct[r[e+4]]+Ct[r[e+5]]+"-"+Ct[r[e+6]]+Ct[r[e+7]]+"-"+Ct[r[e+8]]+Ct[r[e+9]]+"-"+Ct[r[e+10]]+Ct[r[e+11]]+Ct[r[e+12]]+Ct[r[e+13]]+Ct[r[e+14]]+Ct[r[e+15]]}const gc={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Qp(r,e,t){if(gc.randomUUID&&!e&&!r)return gc.randomUUID();r=r||{};const i=r.random||(r.rng||Bp)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){t=t||0;for(let n=0;n<16;++n)e[t+n]=i[n];return e}return Tp(i)}const bp={type:"audio",options:{speed:{type:"slider",name:"speed",label:"Speed",min:.5,max:4,step:.01},volume:{type:"slider",name:"volume",label:"Volume",min:0,max:1,step:.01}},transform:{values:r=>({speed:[r.speed??1],volume:[r.volume??1]}),options:r=>({speed:r.speed[0],volume:r.volume[0]})}},xp={type:"image",width:({node:r,dependencies:e})=>{var t,i,n,s;const o=r.getComputedHeight();if(!o)return r.getComputedWidth();const a=((t=e.image)==null?void 0:t.naturalWidth)??((i=e.image)==null?void 0:i.width),l=((n=e.image)==null?void 0:n.naturalHeight)??((s=e.image)==null?void 0:s.height),A=a/l;return o*A},height:({node:r,dependencies:e})=>{var t,i,n,s;const o=((t=e.image)==null?void 0:t.naturalWidth)??((i=e.image)==null?void 0:i.width),a=((n=e.image)==null?void 0:n.naturalHeight)??((s=e.image)==null?void 0:s.height),l=o/a;return r.getComputedWidth()/l},render:async({dx:r,dy:e,dw:t,dh:i,radius:n,dependencies:s,canvases:o})=>{const a=o.sceneCanvas.getContext("2d");if(!(!a||!s.image)){if(a.save(),n){const{topLeft:l,topRight:A,bottomLeft:c,bottomRight:u}=n;dc({context:a,x:r,y:e,width:t,height:i,radii:[l,A,u,c]}),a.clip()}a.drawImage(s.image,r,e,t,i),a.restore()}}},pc=Io(({font:r,scale:e,context:t,maxW:i,maxH:n,text:s,minSize:o,maxSize:a})=>{var l,A;let c=0;if(a){c=(o??0)*e;let h=0;for(;a*e>c+1;){c+=1;const d=zo({context:t,fontSizes:[c],text:s,maxW:i});if(h=d.reduce((f,g)=>(g.metrics.width>f&&(f=g.metrics.width),f),0),h>i||d.length*c>n){c-=1;break}}}else c=parseFloat(((A=(l=r.match(ri))==null?void 0:l.groups)==null?void 0:A.value)??"0")*e;return c},{cacheKey:([{font:r,text:e,minSize:t,maxSize:i,scale:n,maxW:s,maxH:o}])=>`${r}_${e}_${t}_${i}_${n}_${s}_${o}`}),wp="text",mc={100:"Thin",200:"ExtraLight",300:"Light",400:"Regular",500:"Medium",600:"SemiBold",700:"Bold",800:"ExtraBold",900:"Black"},Sp={type:wp,options:{value:{type:"textarea",name:"value",label:"Text",rows:4},color:{type:"color",name:"color",label:"Text colour"},"font.size":{type:"number",name:"size",label:"Font size",visible:r=>!r.wrap},"font.weight":{type:"select",name:"weight",label:"Font weight",options:r=>{var e;return((e=r.font.family.data)==null?void 0:e.weights.map(({weight:t})=>({label:mc[t],value:t,data:t})))??[]}},"font.family":{type:"font",name:"family",label:"Font family"},wrap:{type:"checkbox",name:"wrap",label:"Text wrap"},align:{type:"radio",name:"align",label:"Text align",items:[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],visible:r=>r.wrap},fill:{type:"range",name:"fill",label:"Max font size",min:20,max:400,step:1,visible:r=>r.wrap}},transform:{values:r=>{var e;return{value:r.value,color:r.color??"#000000",font:{size:r.font.size,weight:{label:mc[r.font.weight],value:r.font.weight,data:r.font.weight},family:{label:r.font.family.name,value:r.font.family.name,data:r.font.family}},wrap:r.wrap??!0,align:r.align??"left",fill:[((e=r.fill)==null?void 0:e.maxSize)??400]}},options:r=>{var e;return{value:r.value,color:r.color,font:{size:r.font.size,weight:r.font.weight.data,family:{name:r.font.family.value,weights:((e=r.font.family.data)==null?void 0:e.weights)??[]}},wrap:r.wrap,align:r.align,fill:{minSize:20,maxSize:r.fill[0]}}}},width:({node:r,options:e,dependencies:t,measureCanvas:i})=>{const{value:n="",align:s="left",wrap:o=!1}=e,{font:a}=t,l=i==null?void 0:i.getContext("2d");if(!l)return r.getComputedWidth();const A=`${a.weight} ${a.size}px ${a.family.name}`,c=us({font:A,text:n});if(l.font=c,l.textBaseline="top",l.textAlign=s,o){const u=r.getParent(),h=r.getComputedMargin(ir.Edge.Left)+r.getComputedMargin(ir.Edge.Right)+((u==null?void 0:u.getComputedPadding(ir.Edge.Left))??0)+((u==null?void 0:u.getComputedPadding(ir.Edge.Right))??0);return Math.max(((u==null?void 0:u.getComputedWidth())??0)-h,r.getComputedWidth(),...n.split(" ").map(d=>l.measureText(d).width))}return l.measureText(n).width},height:({node:r,options:e,dependencies:t,measureCanvas:i})=>{var n,s;const{value:o="",fill:a,align:l="left",wrap:A=!1}=e,{font:c}=t,u=`${c.weight} ${c.size}px ${c.family.name}`,h=us({font:u,text:o}),d=i==null?void 0:i.getContext("2d");if(!d)return r.getComputedHeight();if(d.font=h,d.textBaseline="top",d.textAlign=l,A){const f=r.getParent(),g=r.getComputedMargin(ir.Edge.Top)+r.getComputedMargin(ir.Edge.Bottom)+((f==null?void 0:f.getComputedPadding(ir.Edge.Top))??0)+((f==null?void 0:f.getComputedPadding(ir.Edge.Bottom))??0),p=r.getComputedWidth(),v=Math.max(((f==null?void 0:f.getComputedHeight())??0)-g,r.getComputedHeight()),Q=pc({font:h,scale:1,context:d,maxW:p,maxH:v,text:o??"",minSize:a==null?void 0:a.minSize,maxSize:a==null?void 0:a.maxSize});return zo({context:d,fontSizes:[Q],text:o??"",maxW:p}).length*Q}else return parseFloat(((s=(n=h.match(ri))==null?void 0:n.groups)==null?void 0:s.value)??"0")},render:({dx:r,dy:e,dw:t,dh:i,options:n,dependencies:s,canvases:o})=>{const{value:a="",fill:l,color:A,align:c="left",wrap:u=!1}=n,{font:h}=s,d=`${h.weight} ${h.size}px ${h.family.name}`,f=o.sceneCanvas.getContext("2d");if(!f)return;f.save();const g=us({font:d,text:a});f.font=g,f.textBaseline="top",f.fillStyle=A,f.textAlign=c;const p={left:r,center:r+t/2,right:r+t};if(u){const v=pc({font:g,scale:1,context:f,maxW:t,maxH:i,text:a??"",minSize:l==null?void 0:l.minSize,maxSize:l==null?void 0:l.maxSize});f.font=g.replace(ri,v.toString()),zo({context:f,fontSizes:[v],text:a,maxW:t}).forEach((b,y)=>{f.fillText(b.text,p[c],e+v*y)})}else f.fillText(a,p[c],e);f.restore()}},Rp={type:"video",options:{crop:{type:"crop",name:"crop",label:"Crop"},speed:{type:"slider",name:"speed",label:"Speed",min:.5,max:4,step:.01},volume:{type:"slider",name:"volume",label:"Volume",min:0,max:1,step:.01}},transform:{values:r=>({format:r.format??"crop",crop:r.crop??{x:0,y:0,width:1,height:1},speed:[r.speed??1],volume:[r.volume??1]}),options:r=>({format:r.format,crop:r.crop,speed:r.speed[0],volume:r.volume[0]})},width:async({node:r,options:e,dependencies:t})=>{const{crop:i,format:n}=e,{aspectRatio:s}=t;if(n==="crop")return r.getComputedWidth();const o=s*(((i==null?void 0:i.width)??1)/((i==null?void 0:i.height)??1)),a=r.getComputedWidth(),l=r.getComputedHeight(),A=a/l;return o>A?a:l*o},height:async({node:r,options:e,dependencies:t})=>{const{crop:i,format:n}=e,{aspectRatio:s}=t;if(n==="crop")return r.getComputedHeight();const o=s*(((i==null?void 0:i.width)??1)/((i==null?void 0:i.height)??1));return r.getComputedWidth()/o},render:async({dx:r,dy:e,dw:t,dh:i,radius:n,sceneTime:s,options:o,dependencies:a,canvases:l})=>{const{crop:A,format:c="letterbox"}=o,u=l.sceneCanvas.getContext("2d");if(!u)return;const h=await a.video(s),d=(h==null?void 0:h.videoWidth)??(h==null?void 0:h.naturalWidth)??(h==null?void 0:h.width),f=(h==null?void 0:h.videoHeight)??(h==null?void 0:h.naturalHeight)??(h==null?void 0:h.height);if(d&&f){if(u.save(),n){const{topLeft:g,topRight:p,bottomLeft:v,bottomRight:Q}=n;dc({context:u,x:r,y:e,width:t,height:i,radii:[g,p,Q,v]}),u.clip()}vp({context:u,crop:A,format:c,sourceWidth:d,sourceHeight:f,source:h,posX:r,posY:e,drawAreaWidth:t,drawAreaHeight:i,cropCanvas:l.cropCanvas,letterboxCanvas:l.letterboxCanvas}),u.restore()}}};function Dp(r){if(r===null||typeof r!="object")return!1;if(Object.getPrototypeOf(r)===null)return!0;let e=r;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(r)===e}function _p(r){return r.replace(/\\/g,"\\\\").replace(/\//g,"\\/").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\f/g,"\\f").replace(/"/g,'\\"')}const Lp=ei(()=>ir.loadYoga());Hf.filters.define("parse",r=>typeof r>"u"?null:typeof r=="string"?`"${_p(r)}"`:Dp(r)||Array.isArray(r)?JSON.stringify(r):r);const Fp="3";function kp(r){return typeof r=="number"?{topLeft:r,topRight:r,bottomRight:r,bottomLeft:r}:{topLeft:(r==null?void 0:r.topLeft)??0,topRight:(r==null?void 0:r.topRight)??0,bottomRight:(r==null?void 0:r.bottomRight)??0,bottomLeft:(r==null?void 0:r.bottomLeft)??0}}function Mp(r,e){return typeof r=="number"?{top:r*e,right:r*e,bottom:r*e,left:r*e}:{top:typeof r.top=="number"?r.top*e:r.top,right:typeof r.right=="number"?r.right*e:r.right,bottom:typeof r.bottom=="number"?r.bottom*e:r.bottom,left:typeof r.left=="number"?r.left*e:r.left}}function Ec(r,e){return typeof r=="number"?{top:r*e,right:r*e,bottom:r*e,left:r*e}:{top:(typeof r.top=="number"?r.top*e:r.top)??0,right:(typeof r.right=="number"?r.right*e:r.right)??0,bottom:(typeof r.bottom=="number"?r.bottom*e:r.bottom)??0,left:(typeof r.left=="number"?r.left*e:r.left)??0}}function Ic(r,e,{layout:t,scale:i=1}){const{position:n="relative",inset:s,width:o,height:a,minWidth:l,minHeight:A,maxWidth:c,maxHeight:u,flex:h,gap:d,margin:f,padding:g,direction:p="column",align:v="start",alignSelf:Q,justify:b="start"}=t??{},y={static:r.POSITION_TYPE_STATIC,relative:r.POSITION_TYPE_RELATIVE,absolute:r.POSITION_TYPE_ABSOLUTE};if(e.setPositionType(y[n]),s){const{top:H,right:V,bottom:P,left:K}=Mp(s,i);typeof H<"u"&&e.setPosition(r.EDGE_TOP,H),typeof V<"u"&&e.setPosition(r.EDGE_RIGHT,V),typeof P<"u"&&e.setPosition(r.EDGE_BOTTOM,P),typeof K<"u"&&e.setPosition(r.EDGE_LEFT,K)}const x={row:r.FLEX_DIRECTION_ROW,column:r.FLEX_DIRECTION_COLUMN,"row-reverse":r.FLEX_DIRECTION_ROW_REVERSE,"column-reverse":r.FLEX_DIRECTION_COLUMN_REVERSE};e.setFlexDirection(x[p]);const R={start:r.ALIGN_FLEX_START,end:r.ALIGN_FLEX_END,center:r.ALIGN_CENTER,stretch:r.ALIGN_STRETCH};e.setAlignItems(R[v]),Q&&e.setAlignSelf(R[Q]);const k={start:r.JUSTIFY_FLEX_START,end:r.JUSTIFY_FLEX_END,center:r.JUSTIFY_CENTER,"space-between":r.JUSTIFY_SPACE_BETWEEN,"space-around":r.JUSTIFY_SPACE_AROUND,"space-evenly":r.JUSTIFY_SPACE_EVENLY};if(e.setJustifyContent(k[b]),f){const{top:H,right:V,bottom:P,left:K}=Ec(f,i);e.setMargin(r.EDGE_TOP,H),e.setMargin(r.EDGE_RIGHT,V),e.setMargin(r.EDGE_BOTTOM,P),e.setMargin(r.EDGE_LEFT,K)}if(g){const{top:H,right:V,bottom:P,left:K}=Ec(g,i);e.setPadding(r.EDGE_TOP,H),e.setPadding(r.EDGE_RIGHT,V),e.setPadding(r.EDGE_BOTTOM,P),e.setPadding(r.EDGE_LEFT,K)}typeof h<"u"&&e.setFlex(h),e.setGap(r.GUTTER_ALL,(d??0)*i),typeof o<"u"&&e.setWidth(typeof o=="number"?o*i:o),typeof a<"u"&&(typeof a=="function"?e.setHeight("100%"):e.setHeight(typeof a=="number"?a*i:a)),typeof l<"u"&&e.setMinWidth(typeof l=="number"?l*i:l),typeof A<"u"&&e.setMinHeight(typeof A=="number"?A*i:A),typeof c<"u"&&e.setMaxWidth(typeof c=="number"?c*i:c),typeof u<"u"&&e.setMaxHeight(typeof u=="number"?u*i:u)}async function vc({yoga:r,index:e,parent:t,element:i,resolvers:n}){var s,o;const{type:a,layout:l={},config:A,options:c,renderer:u}=i,h=r.Node.create();Ic(r,h,{layout:l}),t.insertChild(h,e);let d=null;n&&((u==null?void 0:u.type)==="text"||(u==null?void 0:u.type)==="image"||(u==null?void 0:u.type)==="video")&&(d=await((s=n[u.type])==null?void 0:s.call(n,{config:A,options:c}))??null);const f=[];for await(const[g,p]of((o=i.children)==null?void 0:o.entries())??[])f.push(await vc({yoga:r,index:g,parent:h,element:p,resolvers:n}));return t.calculateLayout(),{type:a,node:h,radius:kp(l.radius),element:i,renderer:u,config:A,options:c,dependencies:d,childNodes:f}}function Cc(r,e,t=0,i=0){const{top:n,left:s}=r.getComputedLayout(),{top:o,left:a,width:l,height:A}=e.node.getComputedLayout(),c=t+a,u=i+o,h=e.childNodes.map(d=>Cc(r,d,c,u));return{...e,x:s+c,y:n+u,width:l,height:A,childNodes:h}}async function Zo(r,e,t){for await(const{node:i,options:n,dependencies:s,renderer:o,childNodes:a}of e){if(o){const{width:l,height:A}=o;if(l){const c=await l({node:i,options:n,dependencies:s,measureCanvas:t});i.setWidth(c)}if(await Zo(r,a,t),A){const c=await A({node:i,options:n,dependencies:s,measureCanvas:t});i.setHeight(c)}}await Zo(r,a,t)}r.calculateLayout()}async function yc({root:r,resolvers:e,measureCanvas:t}){const i=await Lp(),n=i.Node.create();Ic(i,n,{layout:r.layout});const s=await vc({yoga:i,index:0,parent:n,element:r.element,resolvers:e});await Zo(n,[s],t);const{top:o,left:a,width:l,height:A}=n.getComputedLayout(),c={root:{x:a,y:o,width:l,height:A},node:Cc(n,s)};return n.freeRecursive(),c}function Qr(r){let e=0;for(const t of r)Array.isArray(t)?e+=Qr(t):e+=t;return e}function ea(r){return r.map(({type:e,duration:t},i)=>{var n,s,o,a;if(e==="transition"){const l=((n=r[i-2])==null?void 0:n.type)==="transition"?r[i-2]:null,A=((s=r[i-1])==null?void 0:s.duration)??1/0,c=((o=r[i+1])==null?void 0:o.duration)??1/0,u=((a=r[i+2])==null?void 0:a.type)==="transition"?r[i+2]:null;return Math.min(l?A/2:A,t,u?c/2:c)*-1}return t})}function Bc(r){var e;return{...r,children:((e=r.children)==null?void 0:e.map(t=>{if(t.type!=="recipe")return Bc(t)}).filter(Boolean))??[]}}function Tc(r){const e={box:0,image:0,video:0,text:0,audio:0};r.renderer&&(e[r.renderer.type]+=1);for(const t of r.children??[]){const{box:i,image:n,video:s,text:o,audio:a}=Tc(t);e.box+=i,e.image+=n,e.video+=s,e.text+=o,e.audio+=a}return e}function Np(r){return r.video>0?Rp.type:r.image>0?xp.type:r.audio>0?bp.type:Sp.type}function Qc({node:r,duration:e}){const t=[];if(r.type==="recipe"){const i=Bc({...r.element,layout:{...r.element.layout,position:"static",width:"100%",height:"100%",margin:0}}),n=Tc(i);t.push({type:Np(n),id:Qp(),x:r.x,y:r.y,width:r.width,height:r.height,duration:e,root:{element:i}})}for(const i of r.childNodes)t.push(...Qc({node:i,duration:e}));return t}async function Pp({scene:r,start:e=0}){const{root:t,duration:i}=r,n=await yc({root:t});return{type:r.type,start:e,duration:i,layout:n,id:r.id,config:r}}async function Op({track:r}){const e=ea(r),t=await Promise.all(r.reduce((s,o,a)=>{if(o.type!=="audio")return s;const l=Qr(e.slice(0,a));return s.push(Pp({scene:o,start:l})),s},[])),i=r.reduce((s,o,a)=>{if(o.type!=="gap")return s;const l=Qr(e.slice(0,a));return s.push({type:o.type,id:o.id,start:l,config:o,duration:o.duration}),s},[]),n=r.map(({id:s})=>t.find(({id:o})=>o===s)??i.find(({id:o})=>o===s)).filter(Boolean);return{type:"audio",scenes:t,gapScenes:i,mergedScenes:n,config:r,duration:Math.max(...n.map(({start:s,duration:o})=>s+o))}}async function bc(){return document.createElement("canvas")}async function xc({node:r,canvases:e,sceneTime:t}){var i,n;await((n=(i=r.renderer)==null?void 0:i.render)==null?void 0:n.call(i,{canvases:e,sceneTime:t,dx:r.x,dy:r.y,dw:r.width,dh:r.height,radius:r.radius,options:r.options,dependencies:r.dependencies}));const{sceneCanvas:s}=e,o=s.getContext("2d");o&&(o.strokeStyle="red",o.strokeRect(r.x,r.y,r.width,r.height));for await(const a of r.childNodes)await xc({node:a,canvases:e,sceneTime:t})}async function Up({layout:r,canvases:e,sceneTime:t}){const{node:i}=r;await xc({node:i,canvases:e,sceneTime:t})}async function ta({scene:r,start:e=0,resolvers:t,rootWidth:i,rootHeight:n,canvasFactory:s=bc}){var o,a;const{x:l,y:A,width:c,height:u,root:h,duration:d}=r,f=await s(),g=await s(),p=await s(),v=await s(),Q=await s(),b=await s(),y=await yc({root:{...h,layout:{...h.layout,width:i,height:n},element:{...h.element,layout:{...h.element.layout,...typeof l=="number"&&typeof A=="number"?{position:"absolute",inset:{top:A,left:l}}:{},width:c??((o=h.element.layout)==null?void 0:o.width),height:u??((a=h.element.layout)==null?void 0:a.height)}}},resolvers:t,measureCanvas:b}),x=async R=>{const k=Math.max(0,R-e);f.width=f.height=0,f.width=i,f.height=n,await Up({layout:y,sceneTime:k,canvases:{sceneCanvas:f,cropCanvas:p,letterboxCanvas:v,posterCanvas:Q}})};return{type:r.type,draw:x,start:e,duration:d,layout:y,sceneCanvas:f,transitionCanvas:g,id:r.id,config:r,childScenes:Qc({node:y.node,duration:d})}}async function Gp({track:r,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}){const s=ea(r),o=await Promise.all(r.reduce((c,u,h)=>{const d=Qr(s.slice(0,h));return u.type==="video"&&c.push(ta({scene:u,start:d,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n})),u.type==="image"&&c.push(ta({scene:u,start:d,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n})),c},[])),a=r.reduce((c,u,h)=>{if(u.type!=="gap")return c;const d=Qr(s.slice(0,h));return c.push({type:u.type,id:u.id,start:d,config:u,duration:u.duration}),c},[]),l=r.reduce((c,u,h)=>{if(u.type!=="transition")return c;const d=u.duration,f=Qr(s.slice(0,h))-d;return c.push({type:u.type,id:u.id,name:u.name,start:f,duration:d,config:u,to:o.find(({id:g})=>{var p;return g===((p=r[h+1])==null?void 0:p.id)}),from:o.find(({id:g})=>{var p;return g===((p=r[h-1])==null?void 0:p.id)})}),c},[]),A=r.map(({id:c})=>o.find(({id:u})=>u===c)??a.find(({id:u})=>u===c)??l.find(({id:u})=>u===c)).filter(Boolean);return{type:"picture",scenes:o,gapScenes:a,transitions:l,mergedScenes:A,duration:Math.max(0,...A.map(({start:c,duration:u})=>c+u)),trackCanvas:await n()}}async function Hp({track:r,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}){const s=ea(r),o=await Promise.all(r.reduce((c,u,h)=>{const d=Qr(s.slice(0,h));return u.type==="text"&&c.push(ta({scene:u,start:d,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n})),c},[])),a=r.reduce((c,u,h)=>{if(u.type!=="gap")return c;const d=Qr(s.slice(0,h));return c.push({type:u.type,id:u.id,start:d,config:u,duration:u.duration}),c},[]),l=r.reduce((c,u,h)=>{if(u.type!=="transition")return c;const d=u.duration,f=Qr(s.slice(0,h))-d;return c.push({type:u.type,id:u.id,name:u.name,start:f,duration:d,config:u,to:o.find(({id:g})=>{var p;return g===((p=r[h+1])==null?void 0:p.id)}),from:o.find(({id:g})=>{var p;return g===((p=r[h-1])==null?void 0:p.id)})}),c},[]),A=r.map(({id:c})=>o.find(({id:u})=>u===c)??a.find(({id:u})=>u===c)??l.find(({id:u})=>u===c)).filter(Boolean);return{type:"text",scenes:o,gapScenes:a,transitions:l,mergedScenes:A,duration:Math.max(...A.map(({start:c,duration:u})=>c+u)),trackCanvas:await n()}}function $p(r){return r.some(({type:e})=>e==="video"||e==="image")}function Yp(r){return r.some(({type:e})=>e==="audio")}function Vp(r){return r.some(({type:e})=>e==="text")}function Kp(r){return r.type==="audio"}const Wp=(((uc=cc)==null?void 0:uc.default)??cc).reduce((r,e)=>(r[e.name]=e,r),{});function Jp({name:r,canvas:e,to:t,from:i,progress:n}){var s,o,a;const l=e.getContext("webgl",{alpha:!0});if(l){l.disable(l.DEPTH_TEST),l.pixelStorei(l.UNPACK_FLIP_Y_WEBGL,!0);const A=l.createBuffer();l.bindBuffer(l.ARRAY_BUFFER,A),l.bufferData(l.ARRAY_BUFFER,new Float32Array([-1,-1,-1,4,4,-1]),l.STATIC_DRAW),l.viewport(0,0,e.width,e.height);const c=(((s=as)==null?void 0:s.default)??as)(l,i);c.minFilter=l.LINEAR,c.magFilter=l.LINEAR;const u=(((o=as)==null?void 0:o.default)??as)(l,t);u.minFilter=l.LINEAR,u.magFilter=l.LINEAR;const h=(((a=Ac)==null?void 0:a.default)??Ac)(l,Wp[r]);h.draw(n,c,u,e.width,e.height),c.dispose(),u.dispose(),h.dispose(),l.flush()}}async function wc({config:r,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n=bc}){const s=await Promise.all(r.tracks.map(async l=>{if($p(l))return{...await Gp({track:l,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}),config:l};if(Vp(l))return{...await Hp({track:l,resolvers:e,rootWidth:t,rootHeight:i,canvasFactory:n}),config:l};if(Yp(l))return{...await Op({track:l}),config:l};throw new Error("Unknown track type")}));console.log({tracks:s});const o=await n();return{draw:async({canvas:l,currentTime:A})=>{const c=l.getContext("2d");if(c){c.globalAlpha=1,c.globalCompositeOperation="source-over",c.clearRect(0,0,l.width,l.height),c.save(),c.fillStyle="black",c.fillRect(0,0,l.width,l.height),c.restore();for await(const u of s){if(Kp(u))continue;const{scenes:h,transitions:d,trackCanvas:f}=u;f.width=f.height=0,f.width=l.width,f.height=l.height;const g=h.filter(({start:v,duration:Q})=>A>=v&&A<v+Q);if(g.length<=0)continue;const p=d.find(({start:v,duration:Q})=>A>=v&&A<v+Q);for await(const{id:v,start:Q,duration:b,sceneCanvas:y,transitionCanvas:x,draw:R}of g)if(await(R==null?void 0:R(A)),!p)c.drawImage(y,0,0,y.width,y.height);else{const{name:k,to:H,from:V,duration:P}=p;o.width=o.height=x.width=x.height=0,o.width=x.width=y.width,o.height=x.height=y.height;const K=(H==null?void 0:H.id)===v,ie=(V==null?void 0:V.id)===v,ee=K&&H.sceneCanvas||o,le=ie&&V.sceneCanvas||o,D=K?Math.min(1,Math.max(0,(A-Q)/P)):Math.min(1,Math.max(0,1-(Q+b-A)/P));Jp({name:k,progress:D,to:ee,from:le,canvas:x});const O=f.getContext("2d");if(!O)return;O.globalCompositeOperation="lighter",O.drawImage(x,0,0,x.width,x.height)}c.drawImage(f,0,0,f.width,f.height)}}},tracks:s,duration:Math.max(...s.map(({duration:l})=>l))}}const qp={name:"@vouchfor/embeds",version:"0.0.0-experiment.b6e21df",license:"MIT",author:"Aaron Williams",main:"dist/es/embeds.js",module:"dist/es/embeds.js",type:"module",types:"dist/es/src/index.d.ts",exports:{".":"./dist/es/embeds.js"},files:["dist","src"],publishConfig:{tag:"experiment",access:"public"},engines:{node:">=18.18.0"},scripts:{build:"rm -rf dist && tsc && yarn build:self","build:deps":"yarn --cwd ../media-player build","build:self":"vite build --mode iife && vite build --mode es && node scripts/build.cjs","build:package":"yarn build","build:storybook":"yarn prebuild && storybook build","generate:manifest":"wca src --outFile custom-elements.json",lint:"eslint . --quiet","lint:fix":"eslint . --fix","lint:staged":"lint-staged",prepublishOnly:"yarn build",size:"size-limit",storybook:"yarn prebuild && storybook dev -p 6007",prebuild:"yarn build:deps && yarn generate:manifest",test:"rm -rf test/lib && yarn prebuild && vite build --mode test && web-test-runner","test:ci":"yarn test --config web-test-runner.ci.config.js","test:watch":"yarn test --watch"},"lint-staged":{"**/*.{ts,tsx,js}":"eslint --fix --quiet","**/*.{md,json,yml}":"prettier --write"},dependencies:{"@a11y/focus-trap":"^1.0.5","@lit/task":"^1.0.0","@vouchfor/canvas-video":"0.0.0-experiment.b6e21df","@vouchfor/media-player":"0.0.0-experiment.b6e21df",uuid:"^9.0.1"},peerDependencies:{lit:"^3.1.2"},devDependencies:{"@esm-bundle/chai":"^4.3.4-fix.0","@open-wc/testing":"^4.0.0","@storybook/addon-essentials":"^8.0.4","@storybook/addon-links":"^8.0.4","@storybook/blocks":"^8.0.4","@storybook/web-components":"^8.0.4","@storybook/web-components-vite":"^8.0.4","@svgr/core":"^8.1.0","@types/flat":"^5.0.5","@types/mocha":"^10.0.6","@vouchfor/eslint-config":"^1.0.1","@vouchfor/prettier-config":"^1.0.1","@vouchfor/video-utils":"0.0.0-experiment.b6e21df","@web/dev-server-esbuild":"^1.0.2","@web/test-runner":"^0.18.1","@web/test-runner-browserstack":"^0.7.1","@web/test-runner-mocha":"^0.9.0","@web/test-runner-playwright":"^0.11.0",glob:"^10.3.10","lint-staged":"^15.2.2",lit:"^3.1.2",lodash:"^4.17.21",react:"^18.2.0","react-dom":"^18.2.0","rollup-plugin-tla":"^0.0.2",sinon:"^17.0.1",storybook:"^8.0.4",svgson:"^5.3.1",typescript:"^5.4.3",vite:"^5.2.2","vite-plugin-commonjs":"^0.10.1","vite-plugin-dts":"^3.7.3","web-component-analyzer":"^2.0.0"}};function Xp(r){const{publicApiUrl:e}=Yn(r),t=Nr();return navigator.sendBeacon(`${e}/api/visitor`,JSON.stringify({visitorId:t})),t}function jp(r){var s,o,a,l,A,c,u,h,d,f,g,p;if(typeof window>"u")return{client:null,tab:null,request:Nr()};let e=(o=(s=window.localStorage)==null?void 0:s.getItem)==null?void 0:o.call(s,"vouch-uid-visitor"),t=(l=(a=window.localStorage)==null?void 0:a.getItem)==null?void 0:l.call(a,"vouch-uid-client"),i=(c=(A=window.sessionStorage)==null?void 0:A.getItem)==null?void 0:c.call(A,"vouch-uid-tab");const n=Nr();return e||(e=Xp(r),(h=(u=window.localStorage)==null?void 0:u.setItem)==null||h.call(u,"vouch-uid-visitor",e)),t||(t=Nr(),(f=(d=window.localStorage)==null?void 0:d.setItem)==null||f.call(d,"vouch-uid-client",t)),i||(i=Nr(),(p=(g=window.sessionStorage)==null?void 0:g.setItem)==null||p.call(g,"vouch-uid-tab",i)),{client:t,tab:i,request:n,visitor:e}}function zp(r,e){return r&&"vouchId"in r?r.vouchId:(e==null?void 0:e.id)??null}function Zp(r="embedded_player"){var n,s;const[e,t]=((s=(n=Intl.DateTimeFormat().resolvedOptions().timeZone)==null?void 0:n.split)==null?void 0:s.call(n,"/"))??[],i={};return[...new URLSearchParams(location.search).entries()].forEach(([o,a])=>{if(/utm/.test(o)){const l=o.toLowerCase().replace(/[-_][a-z0-9]/g,A=>A.slice(-1).toUpperCase());i[l]=a}}),{source:r,time:new Date,region:t,country:e,screenHeight:window.screen.height,screenWidth:window.screen.width,referrer:document.referrer,currentUrl:location.href,embedType:"media-player-embed",embedVersion:qp.version,templateVersion:Fp,...i}}const Sc=1;class em{constructor(e){this._batchedEvents=[],this._hasPlayed=!1,this._hasLoaded={},this._answersViewed={},this._streamStartTime={},this._streamLatestTime={},this._currentlyPlayingVideo=null,this._createTrackingEvent=(t,i)=>{const n=zp(i,this.host.vouch);!n||this.host.disableTracking||this._batchedEvents.push({event:t,payload:{...i,vouchId:n,time:new Date().toISOString()}})},this._sendTrackingEvent=()=>{if(this._batchedEvents.length<=0)return;const{publicApiUrl:t}=Yn(this.host.env),{client:i,tab:n,request:s,visitor:o}=jp(this.host.env);navigator.sendBeacon(`${t}/api/batchevents`,JSON.stringify({payload:{events:this._batchedEvents},context:{"x-uid-client":i,"x-uid-tab":n,"x-uid-request":s,"x-uid-visitor":o,"x-reporting-metadata":Zp(this.host.trackingSource)}})),this._batchedEvents=[]},this._streamEnded=()=>{if(this._currentlyPlayingVideo){const{id:t,key:i}=this._currentlyPlayingVideo;this._streamLatestTime[i]>this._streamStartTime[i]+Sc&&this._createTrackingEvent("VIDEO_STREAMED",{answerId:t,streamStart:this._streamStartTime[i],streamEnd:this._streamLatestTime[i]}),delete this._streamStartTime[i],delete this._streamLatestTime[i]}},this._handleVouchLoaded=({detail:t})=>{t&&(this._hasLoaded[t]||(this._createTrackingEvent("VOUCH_LOADED",{vouchId:t}),this._hasLoaded[t]=!0))},this._handlePlay=()=>{this._hasPlayed||(this._createTrackingEvent("VIDEO_PLAYED",{streamStart:this.host.currentTime}),this._hasPlayed=!0)},this._handleVideoPlay=({detail:{id:t,key:i}})=>{this._answersViewed[i]||(this._createTrackingEvent("VOUCH_RESPONSE_VIEWED",{answerId:t}),this._answersViewed[i]=!0)},this._handleVideoTimeUpdate=({detail:{id:t,key:i,node:n}})=>{this.host.paused||(this._currentlyPlayingVideo={id:t,key:i,node:n},this._streamLatestTime[i]=n.currentTime,this._streamStartTime[i]||(this._streamStartTime[i]=n.currentTime,this._streamLatestTime[i]=n.currentTime))},this._handleVideoPause=({detail:{id:t,key:i}})=>{this._streamLatestTime[i]>this._streamStartTime[i]+Sc&&this._createTrackingEvent("VIDEO_STREAMED",{answerId:t,streamStart:this._streamStartTime[i],streamEnd:this._streamLatestTime[i]}),delete this._streamStartTime[i],delete this._streamLatestTime[i]},this._pageUnloading=()=>{this._streamEnded(),this._sendTrackingEvent()},this._handleVisibilityChange=()=>{document.visibilityState==="hidden"&&this._pageUnloading()},this._handlePageHide=()=>{this._pageUnloading()},this.host=e,e.addController(this)}hostConnected(){requestAnimationFrame(()=>{var e,t,i,n;"onvisibilitychange"in document?document.addEventListener("visibilitychange",this._handleVisibilityChange):window.addEventListener("pagehide",this._handlePageHide),this.host.addEventListener("vouch:loaded",this._handleVouchLoaded),(e=this.host.mediaPlayer)==null||e.addEventListener("play",this._handlePlay),(t=this.host.mediaPlayer)==null||t.addEventListener("video:play",this._handleVideoPlay),(i=this.host.mediaPlayer)==null||i.addEventListener("video:pause",this._handleVideoPause),(n=this.host.mediaPlayer)==null||n.addEventListener("video:timeupdate",this._handleVideoTimeUpdate)})}hostDisconnected(){var e,t,i,n;this._pageUnloading(),"onvisibilitychange"in document?document.removeEventListener("visibilitychange",this._handleVisibilityChange):window.removeEventListener("pagehide",this._handlePageHide),this.host.removeEventListener("vouch:loaded",this._handleVouchLoaded),(e=this.host.mediaPlayer)==null||e.removeEventListener("play",this._handlePlay),(t=this.host.mediaPlayer)==null||t.removeEventListener("video:play",this._handleVideoPlay),(i=this.host.mediaPlayer)==null||i.removeEventListener("video:pause",this._handleVideoPause),(n=this.host.mediaPlayer)==null||n.removeEventListener("video:timeupdate",this._handleVideoTimeUpdate)}}var ra={exports:{}};(function(r,e){var t=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof vi<"u"&&vi,i=function(){function s(){this.fetch=!1,this.DOMException=t.DOMException}return s.prototype=t,new s}();(function(s){(function(o){var a=typeof s<"u"&&s||typeof self<"u"&&self||typeof a<"u"&&a,l={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function A(D){return D&&DataView.prototype.isPrototypeOf(D)}if(l.arrayBuffer)var c=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],u=ArrayBuffer.isView||function(D){return D&&c.indexOf(Object.prototype.toString.call(D))>-1};function h(D){if(typeof D!="string"&&(D=String(D)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(D)||D==="")throw new TypeError('Invalid character in header field name: "'+D+'"');return D.toLowerCase()}function d(D){return typeof D!="string"&&(D=String(D)),D}function f(D){var O={next:function(){var X=D.shift();return{done:X===void 0,value:X}}};return l.iterable&&(O[Symbol.iterator]=function(){return O}),O}function g(D){this.map={},D instanceof g?D.forEach(function(O,X){this.append(X,O)},this):Array.isArray(D)?D.forEach(function(O){this.append(O[0],O[1])},this):D&&Object.getOwnPropertyNames(D).forEach(function(O){this.append(O,D[O])},this)}g.prototype.append=function(D,O){D=h(D),O=d(O);var X=this.map[D];this.map[D]=X?X+", "+O:O},g.prototype.delete=function(D){delete this.map[h(D)]},g.prototype.get=function(D){return D=h(D),this.has(D)?this.map[D]:null},g.prototype.has=function(D){return this.map.hasOwnProperty(h(D))},g.prototype.set=function(D,O){this.map[h(D)]=d(O)},g.prototype.forEach=function(D,O){for(var X in this.map)this.map.hasOwnProperty(X)&&D.call(O,this.map[X],X,this)},g.prototype.keys=function(){var D=[];return this.forEach(function(O,X){D.push(X)}),f(D)},g.prototype.values=function(){var D=[];return this.forEach(function(O){D.push(O)}),f(D)},g.prototype.entries=function(){var D=[];return this.forEach(function(O,X){D.push([X,O])}),f(D)},l.iterable&&(g.prototype[Symbol.iterator]=g.prototype.entries);function p(D){if(D.bodyUsed)return Promise.reject(new TypeError("Already read"));D.bodyUsed=!0}function v(D){return new Promise(function(O,X){D.onload=function(){O(D.result)},D.onerror=function(){X(D.error)}})}function Q(D){var O=new FileReader,X=v(O);return O.readAsArrayBuffer(D),X}function b(D){var O=new FileReader,X=v(O);return O.readAsText(D),X}function y(D){for(var O=new Uint8Array(D),X=new Array(O.length),_=0;_<O.length;_++)X[_]=String.fromCharCode(O[_]);return X.join("")}function x(D){if(D.slice)return D.slice(0);var O=new Uint8Array(D.byteLength);return O.set(new Uint8Array(D)),O.buffer}function R(){return this.bodyUsed=!1,this._initBody=function(D){this.bodyUsed=this.bodyUsed,this._bodyInit=D,D?typeof D=="string"?this._bodyText=D:l.blob&&Blob.prototype.isPrototypeOf(D)?this._bodyBlob=D:l.formData&&FormData.prototype.isPrototypeOf(D)?this._bodyFormData=D:l.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)?this._bodyText=D.toString():l.arrayBuffer&&l.blob&&A(D)?(this._bodyArrayBuffer=x(D.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):l.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(D)||u(D))?this._bodyArrayBuffer=x(D):this._bodyText=D=Object.prototype.toString.call(D):this._bodyText="",this.headers.get("content-type")||(typeof D=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):l.searchParams&&URLSearchParams.prototype.isPrototypeOf(D)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},l.blob&&(this.blob=function(){var D=p(this);if(D)return D;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var D=p(this);return D||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else return this.blob().then(Q)}),this.text=function(){var D=p(this);if(D)return D;if(this._bodyBlob)return b(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(y(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},l.formData&&(this.formData=function(){return this.text().then(P)}),this.json=function(){return this.text().then(JSON.parse)},this}var k=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function H(D){var O=D.toUpperCase();return k.indexOf(O)>-1?O:D}function V(D,O){if(!(this instanceof V))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');O=O||{};var X=O.body;if(D instanceof V){if(D.bodyUsed)throw new TypeError("Already read");this.url=D.url,this.credentials=D.credentials,O.headers||(this.headers=new g(D.headers)),this.method=D.method,this.mode=D.mode,this.signal=D.signal,!X&&D._bodyInit!=null&&(X=D._bodyInit,D.bodyUsed=!0)}else this.url=String(D);if(this.credentials=O.credentials||this.credentials||"same-origin",(O.headers||!this.headers)&&(this.headers=new g(O.headers)),this.method=H(O.method||this.method||"GET"),this.mode=O.mode||this.mode||null,this.signal=O.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&X)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(X),(this.method==="GET"||this.method==="HEAD")&&(O.cache==="no-store"||O.cache==="no-cache")){var _=/([?&])_=[^&]*/;if(_.test(this.url))this.url=this.url.replace(_,"$1_="+new Date().getTime());else{var S=/\?/;this.url+=(S.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}V.prototype.clone=function(){return new V(this,{body:this._bodyInit})};function P(D){var O=new FormData;return D.trim().split("&").forEach(function(X){if(X){var _=X.split("="),S=_.shift().replace(/\+/g," "),F=_.join("=").replace(/\+/g," ");O.append(decodeURIComponent(S),decodeURIComponent(F))}}),O}function K(D){var O=new g,X=D.replace(/\r?\n[\t ]+/g," ");return X.split("\r").map(function(_){return _.indexOf(`
2455
2455
  `)===0?_.substr(1,_.length):_}).forEach(function(_){var S=_.split(":"),F=S.shift().trim();if(F){var J=S.join(":").trim();O.append(F,J)}}),O}R.call(V.prototype);function ie(D,O){if(!(this instanceof ie))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');O||(O={}),this.type="default",this.status=O.status===void 0?200:O.status,this.ok=this.status>=200&&this.status<300,this.statusText=O.statusText===void 0?"":""+O.statusText,this.headers=new g(O.headers),this.url=O.url||"",this._initBody(D)}R.call(ie.prototype),ie.prototype.clone=function(){return new ie(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new g(this.headers),url:this.url})},ie.error=function(){var D=new ie(null,{status:0,statusText:""});return D.type="error",D};var ee=[301,302,303,307,308];ie.redirect=function(D,O){if(ee.indexOf(O)===-1)throw new RangeError("Invalid status code");return new ie(null,{status:O,headers:{location:D}})},o.DOMException=a.DOMException;try{new o.DOMException}catch{o.DOMException=function(O,X){this.message=O,this.name=X;var _=Error(O);this.stack=_.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function le(D,O){return new Promise(function(X,_){var S=new V(D,O);if(S.signal&&S.signal.aborted)return _(new o.DOMException("Aborted","AbortError"));var F=new XMLHttpRequest;function J(){F.abort()}F.onload=function(){var ne={status:F.status,statusText:F.statusText,headers:K(F.getAllResponseHeaders()||"")};ne.url="responseURL"in F?F.responseURL:ne.headers.get("X-Request-URL");var ce="response"in F?F.response:F.responseText;setTimeout(function(){X(new ie(ce,ne))},0)},F.onerror=function(){setTimeout(function(){_(new TypeError("Network request failed"))},0)},F.ontimeout=function(){setTimeout(function(){_(new TypeError("Network request failed"))},0)},F.onabort=function(){setTimeout(function(){_(new o.DOMException("Aborted","AbortError"))},0)};function Y(ne){try{return ne===""&&a.location.href?a.location.href:ne}catch{return ne}}F.open(S.method,Y(S.url),!0),S.credentials==="include"?F.withCredentials=!0:S.credentials==="omit"&&(F.withCredentials=!1),"responseType"in F&&(l.blob?F.responseType="blob":l.arrayBuffer&&S.headers.get("Content-Type")&&S.headers.get("Content-Type").indexOf("application/octet-stream")!==-1&&(F.responseType="arraybuffer")),O&&typeof O.headers=="object"&&!(O.headers instanceof g)?Object.getOwnPropertyNames(O.headers).forEach(function(ne){F.setRequestHeader(ne,d(O.headers[ne]))}):S.headers.forEach(function(ne,ce){F.setRequestHeader(ce,ne)}),S.signal&&(S.signal.addEventListener("abort",J),F.onreadystatechange=function(){F.readyState===4&&S.signal.removeEventListener("abort",J)}),F.send(typeof S._bodyInit>"u"?null:S._bodyInit)})}return le.polyfill=!0,a.fetch||(a.fetch=le,a.Headers=g,a.Request=V,a.Response=ie),o.Headers=g,o.Request=V,o.Response=ie,o.fetch=le,o})({})})(i),i.fetch.ponyfill=!0,delete i.fetch.polyfill;var n=t.fetch?t:i;e=n.fetch,e.default=n.fetch,e.fetch=n.fetch,e.Headers=n.Headers,e.Request=n.Request,e.Response=n.Response,r.exports=e})(ra,ra.exports);var tm=ra.exports;const Rc=vo(tm);async function rm(r){var e;try{if((e=await Rc(r,{method:"HEAD"}))!=null&&e.ok)return r}catch{return}}async function ia({sources:r}){let e=null;const t=r==null?void 0:r.filter(Boolean),i=t==null?void 0:t.find(s=>s.startsWith("blob:")),n=t==null?void 0:t.find(s=>!s.startsWith("http")&&!s.startsWith("blob:"));if(i||n)return i??n;if(t.length>0){const s=t.map(o=>rm(o));e=(await Promise.all(s)).find(Boolean)}return e}async function im(r){try{return(await Rc(r)).text()}catch{return null}}async function nm(r){return r=r.trim(),r.startsWith("http")||r.startsWith("blob:")?im(r):r}const sm=ei(async({original:r,translation:e,originalLanguage:t="",translationLanguage:i=""},{language:n})=>{var s,o;const a={[(s=i==null?void 0:i.split("-"))==null?void 0:s[0]]:e,[(o=t==null?void 0:t.split("-"))==null?void 0:o[0]]:r},l=(n&&a[n])??r;return l?nm(l):null},{cacheKey:([r,{language:e}])=>JSON.stringify({...r,language:e})});function om(r){var e;return((e=r==null?void 0:r.items)==null?void 0:e.map(t=>{var i;return{text:(i=t.alternatives[0])==null?void 0:i.content,start:t.start_time,end:t.end_time}}))??[]}const am=ei(async r=>{var e,t,i,n,s,o,a,l,A,c,u;const[h,d,f]=await Promise.all([ia({sources:[(t=(e=r==null?void 0:r.answer)==null?void 0:e.media)==null?void 0:t.video,(n=(i=r==null?void 0:r.answer)==null?void 0:i.media)==null?void 0:n.input]}),ia({sources:[(o=(s=r==null?void 0:r.answer)==null?void 0:s.media)==null?void 0:o.playlist]}),ia({sources:[((l=(a=r==null?void 0:r.answer)==null?void 0:a.media)==null?void 0:l.reducedQuality)??((u=(c=(A=r==null?void 0:r.answer)==null?void 0:A.media)==null?void 0:c.videos)==null?void 0:u.xs)]})]);return{src:h,playlist:d,preview:f}},{cacheKey:([r])=>{var e,t,i,n,s,o,a,l,A,c,u;return JSON.stringify({video:(t=(e=r==null?void 0:r.answer)==null?void 0:e.media)==null?void 0:t.video,input:(n=(i=r==null?void 0:r.answer)==null?void 0:i.media)==null?void 0:n.input,playlist:(o=(s=r==null?void 0:r.answer)==null?void 0:s.media)==null?void 0:o.playlist,preview:((l=(a=r==null?void 0:r.answer)==null?void 0:a.media)==null?void 0:l.reducedQuality)??((u=(c=(A=r==null?void 0:r.answer)==null?void 0:A.media)==null?void 0:c.videos)==null?void 0:u.xs)})}});function Dc(r){var e,t,i,n,s,o,a,l,A,c,u,h;const d=((t=(e=r==null?void 0:r.answer)==null?void 0:e.contact)==null?void 0:t.name)==="Anonymous"?"":((s=(n=(i=r==null?void 0:r.answer)==null?void 0:i.contact)==null?void 0:n.name)==null?void 0:s.trim())??"",f=((l=(a=(o=r==null?void 0:r.answer)==null?void 0:o.contact)==null?void 0:a.client)==null?void 0:l.name)==="Not Supplied"?"":((h=(u=(c=(A=r==null?void 0:r.answer)==null?void 0:A.contact)==null?void 0:c.client)==null?void 0:u.name)==null?void 0:h.trim())??"",[g,p]=d.split(" ");return{name:d,firstName:g,lastName:p,companyName:f}}const lm=ei(async(r,e,t)=>{var i,n,s;const o=(i=e==null?void 0:e.answer)==null?void 0:i.id;return((s=(n=r==null?void 0:r.questions)==null?void 0:n.items)==null?void 0:s.reduce((l,A)=>{var c;return((c=A==null?void 0:A.answer)==null?void 0:c.id)===o?(l??0)+1:l},0))<=1?o:`${o}-${t}`},{cacheKey:([r,e,t])=>{var i;return JSON.stringify({index:t,rootData:e,allQuestions:(i=r==null?void 0:r.questions)==null?void 0:i.items})}});async function na({data:r,rootData:e,index:t},i){var n,s,o,a,l,A,c,u,h,d,f,g,p,v,Q,b,y,x,R,k,H,V,P,K;const[ie,ee,le]=await Promise.all([lm(r,e,t),am(e),sm({original:((s=(n=e==null?void 0:e.answer)==null?void 0:n.media)==null?void 0:s.captions)??((a=(o=e==null?void 0:e.answer)==null?void 0:o.captions)==null?void 0:a.current),translation:((A=(l=e==null?void 0:e.answer)==null?void 0:l.media)==null?void 0:A.translation)??((u=(c=e==null?void 0:e.answer)==null?void 0:c.captions)==null?void 0:u.translation),originalLanguage:(d=(h=e==null?void 0:e.answer)==null?void 0:h.transcription)==null?void 0:d.language,translationLanguage:(p=(g=(f=e==null?void 0:e.answer)==null?void 0:f.transcription)==null?void 0:g.translation)==null?void 0:p.language},i)]),D=Dc(e);return{...ee,...D,key:ie,captions:le,wordTimings:om((v=e==null?void 0:e.answer)==null?void 0:v.transcription),answerLabel:((Q=e==null?void 0:e.answer)==null?void 0:Q.label)??(e==null?void 0:e.title),prevAnswerLabel:t?((R=(x=(y=(b=r==null?void 0:r.questions)==null?void 0:b.items)==null?void 0:y[t-1])==null?void 0:x.answer)==null?void 0:R.label)??((V=(H=(k=r==null?void 0:r.questions)==null?void 0:k.items)==null?void 0:H[t-1])==null?void 0:V.title)??null:null,isFirstInstanceOfName:t?((K=(P=r==null?void 0:r.questions)==null?void 0:P.items)==null?void 0:K.findIndex(O=>Dc(O).name===D.name))===t:!0}}const ds={af:"Afrikaans",sq:"Albanian",am:"Amharic",ar:"Arabic",hy:"Armenian",az:"Azerbaijani",eu:"Basque",be:"Belarusian",bn:"Bengali",bs:"Bosnian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese (Simplified)",zh_TW:"Chinese (Traditional)",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",fi:"Finnish",fr:"French",fa:"Farsi",tl:"Filipino",ka:"Georgian",de:"German",el:"Greek",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",he:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",kn:"Kannada",kk:"Kazakh",ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",ml:"Malayalam",mt:"Maltese",mr:"Marathi",mn:"Mongolian",no:"Norwegian",ps:"Pashto",pl:"Polish",pt:"Portuguese",pa:"Punjabi",ro:"Romanian",ru:"Russian",sr:"Serbian",si:"Sinhala",sk:"Slovak",sl:"Slovenian",so:"Somali",es:"Spanish",sw:"Swahili",sv:"Swedish",ta:"Tamil",te:"Telugu",th:"Thai",tr:"Turkish",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",vi:"Vietnamese",cy:"Welsh"};function Am({data:r}){var e,t;return((t=(e=r==null?void 0:r.questions)==null?void 0:e.items)==null?void 0:t.reduce((i,n)=>{var s,o,a,l,A,c,u;const h=(a=(o=(s=n==null?void 0:n.answer)==null?void 0:s.transcription)==null?void 0:o.language)==null?void 0:a.split("-")[0],d=(u=(c=(A=(l=n==null?void 0:n.answer)==null?void 0:l.transcription)==null?void 0:A.translation)==null?void 0:c.language)==null?void 0:u.split("-")[0];return h&&ds[h]&&!i.find(f=>f.value===h)&&i.push({value:h,label:ds[h]}),d&&ds[d]&&!i.find(f=>f.value===d)&&i.push({value:d,label:ds[d]}),i},[]))??[]}/**
2456
2456
  * @license
2457
2457
  * Copyright 2018 Google LLC
@@ -3741,7 +3741,7 @@ vec4 transition(vec2 uv) {
3741
3741
  vmp-captions.hiddenControls {
3742
3742
  transform: translateY(calc(var(--space-small) * -1));
3743
3743
  }
3744
- `],pt([te({type:Boolean})],at.prototype,"loading",2),pt([te({type:Boolean})],at.prototype,"playing",2),pt([te({type:Number})],at.prototype,"volume",2),pt([te({type:Boolean})],at.prototype,"muted",2),pt([te({type:Number})],at.prototype,"currentTime",2),pt([te({type:Number})],at.prototype,"duration",2),pt([te({type:Array})],at.prototype,"languages",2),pt([te({type:String})],at.prototype,"language",2),pt([te({type:Array,attribute:!1})],at.prototype,"levels",2),pt([te({type:Number})],at.prototype,"level",2),pt([te({type:Number})],at.prototype,"playbackRate",2),pt([te({type:String})],at.prototype,"caption",2),pt([te({type:Array})],at.prototype,"buffer",2),pt([te({type:Boolean})],at.prototype,"captions",2),pt([te({type:Boolean})],at.prototype,"fullscreen",2),pt([te({type:Array})],at.prototype,"controls",2),pt([it()],at.prototype,"showControls",2),at=pt([St("vmp-player-overlay")],at);var u1=Object.defineProperty,h1=Object.getOwnPropertyDescriptor,tt=(r,e,t,i)=>{for(var n=i>1?void 0:i?h1(e,t):e,s=r.length-1,o;s>=0;s--)(o=r[s])&&(n=(i?o(e,t,n):o(n))||n);return i&&n&&u1(e,t,n),n};const d1=1e3/60,f1=30;let qe=class extends Ye{constructor(){super(...arguments),this.debug=!1,this.propAspectRatio=0,this.preload="auto",this.autoplay=!1,this.loading=!1,this.disabled=!1,this.dataResolver=na,this.languageResolver=Am,this._sceneController=new yB(this),this._drawController=new gB(this),this._observer=null,this._wasPlaying=!1,this._manualMute=this.muted,this._seekerRAF=null,this._seekerTimeout=null,this._lastWaiting=!1,this._lastTimestamp=null,this._lastCurrentTime=null,this._playerRef=mt(),this._canvasRef=mt(),this._pageHidden=document.visibilityState==="hidden",this._aspectRatio=this.propAspectRatio,this._processing=!1,this._waiting=!1,this._errors=[],this._seeking=!1,this._language=this.propLanguage,this._languages=[],this._captions=!1,this._fullscreen=!1,this._initialised=null,this._paused=!0,this._playbackRate=1,this._volume=null,this._muted=null,this._videoResolution=-1,this._handleContainerResize=()=>{var r;(r=this.shadowRoot)!=null&&r.host&&!this.propAspectRatio&&(this._aspectRatio=this.shadowRoot.host.clientWidth/this.shadowRoot.host.clientHeight)},this._handleCanvasResize=()=>{this.draw()},this._loop=()=>{this._endLoop(),this._pageHidden?this._seekerTimeout=setTimeout(this._seeker,d1):this._seekerRAF=requestAnimationFrame(this._seeker)},this._endLoop=()=>{this._seekerRAF&&cancelAnimationFrame(this._seekerRAF),this._seekerTimeout&&clearTimeout(this._seekerTimeout),this._seekerRAF=null,this._seekerTimeout=null},this._seeker=(r=performance.now())=>{var e,t;if(this.composition){if(this._waiting=this._drawController.activeScenes.some(i=>_r(i.layout.node).some(({key:s})=>{if(this.media[s]&&this.mediaState[s]){const o=this.media[s],a=this.mediaState[s];return!a||!a.initialised||a.waiting||o.node.readyState<3}})),this.waiting?(this._lastTimestamp=null,this._lastWaiting||this.dispatchEvent(new CustomEvent("waiting"))):this._lastWaiting&&this.dispatchEvent(new CustomEvent("playing")),r-(this._lastTimestamp??0)>1e3/f1){let i=this._drawController.currentTime;const n=(r-(this._lastTimestamp??r))/1e3*this.playbackRate,s=_r((e=this.activeScenes[0])==null?void 0:e.layout.node);s.length>0?((t=this._lastCurrentTime)!=null&&t.every((o,a)=>{const l=s[a].key,A=this.media[l];return o!==A.node.currentTime})&&(i+=n),this._lastCurrentTime=s.map(({key:o})=>this.media[o].node.currentTime)):i+=n,this._drawController.currentTime=i,this._lastTimestamp=r}this._lastWaiting=this._waiting,this._drawController.currentTime>=this.duration&&(this.pause(),this.dispatchEvent(new CustomEvent("ended")))}this.paused||this._loop()},this._handleError=r=>{this._errors=[...this.errors,r.error],r.error.fatal&&this.pause()},this._handleFullscreenChange=()=>{this===document.fullscreenElement?this._fullscreen=!0:this._fullscreen=!1},this._handleVisibilityChange=()=>{this._pageHidden=document.visibilityState==="hidden",this.paused||this._loop()}}get aspectRatio(){return this._aspectRatio}get processing(){return this._processing}get waiting(){return!this.paused&&this._waiting}get errors(){return this._errors}get seeking(){return this._seeking}get language(){return this._language}get languages(){return this._languages}get captions(){return this._captions}get fullscreen(){return this._fullscreen}get initialised(){return this._initialised=this._initialised??new Promise(r=>{const e=setInterval(()=>{!!this.errors.find(i=>i.fatal)&&r(!1),!this.loading&&!this.processing&&this.composition&&this.duration>0&&r(!0)},500);setTimeout(()=>{clearInterval(e),r(!1)},60*1e3)}),this._initialised}get duration(){return this._sceneController.duration}get media(){return this._sceneController.media??{}}get mediaState(){return this._sceneController.mediaState}get composition(){return this._sceneController.composition}get activeScenes(){return this._drawController.activeScenes}set paused(r){r!==this._paused&&(this._paused=r,this.requestUpdate(),this.dispatchEvent(new CustomEvent(r?"pause":"play")))}get paused(){return this._paused}set playbackRate(r){r!==this._playbackRate&&(this._playbackRate=r,Object.values(this.media).forEach(({node:e,speed:t})=>{e.playbackRate=$r(.1,r*t,4)}),this.requestUpdate(),this.dispatchEvent(new CustomEvent("ratechange",{detail:r})))}get playbackRate(){return this._playbackRate}set volume(r){const e=$r(0,r,1);e!==this._volume&&(Object.values(this.media).forEach(({node:t,volume:i})=>{t.volume=e*i}),localStorage.setItem("vmp-player-volume",e.toString()),this._volume=e,e>0&&(this.muted=!1),this.requestUpdate(),this.dispatchEvent(new CustomEvent("volumechange",{detail:r})))}get volume(){return this._volume??(this._volume=parseFloat(localStorage.getItem("vmp-player-volume")??"1"))}set muted(r){Object.values(this.media).forEach(({node:e,volume:t})=>{e.muted=t===0||r}),r!==this._muted&&(this._muted=r,localStorage.setItem("vmp-player-muted",r.toString()),this.requestUpdate(),this.dispatchEvent(new CustomEvent("volumechange",{detail:r?0:this.volume})))}get muted(){return this._muted??(this._muted=this.autoplay||localStorage.getItem("vmp-player-muted")==="true")}set videoResolution(r){r!==this._videoResolution&&(this._videoResolution=r,Object.values(this.media).forEach(({hls:e})=>{if(e){const t=e.levels.findIndex(i=>Math.min(i.height,i.width)===r);e.currentLevel=t??-1}}),this.requestUpdate())}get videoResolution(){return this._videoResolution}set currentTime(r){r!==this._drawController.currentTime&&(this._drawController.currentTime=r,this._sceneController.setMediaCurrentTime(r))}get currentTime(){return this._drawController.currentTime}reset(r=0,e=!1){this._lastTimestamp=null,this._lastCurrentTime=null,this._drawController.currentTime=r,this._sceneController.setMediaCurrentTime(r),e?this.play():this.pause()}clear(){this._drawController.clear()}play(){this.paused=!1,this._lastTimestamp=null,this._lastCurrentTime=null,this.duration>0&&this._drawController.currentTime>=this.duration&&this.reset(0,!0),this._loop()}pause(){this._endLoop(),this.paused=!0,Object.values(this.media).forEach(({node:r})=>{r.pause()})}draw(r){return this._drawController.draw(r)}toggleFullscreen(r){r??this.fullscreen?TB():this._playerRef.value&&BB(this._playerRef.value)}connectedCallback(){var r;super.connectedCallback(),this.addEventListener("error",this._handleError),document.addEventListener("fullscreenchange",this._handleFullscreenChange),document.addEventListener("visibilitychange",this._handleVisibilityChange),(r=this.shadowRoot)!=null&&r.host&&(this._observer=new ResizeObserver(this._handleContainerResize),this._observer.observe(this.shadowRoot.host))}willUpdate(r){r.has("propAspectRatio")&&(this._aspectRatio=this.propAspectRatio),r.has("propLanguage")&&(this._language=this.propLanguage)}updated(r){r.has("propAspectRatio")&&!this.propAspectRatio&&this._handleContainerResize(),this.autoplay&&!this._sceneController.hasPlayed&&!this.processing&&r.get("_processing")&&this.play(),r.has("_processing")&&this.processing&&this.dispatchEvent(new CustomEvent("processing"))}disconnectedCallback(){var r;super.disconnectedCallback(),(r=this._observer)==null||r.disconnect(),document.removeEventListener("fullscreenchange",this._handleFullscreenChange),document.removeEventListener("visibilitychange",this._handleVisibilityChange)}_renderStyles(){return this.propAspectRatio?typeof this.propAspectRatio=="number"?Ce`
3744
+ `],pt([te({type:Boolean})],at.prototype,"loading",2),pt([te({type:Boolean})],at.prototype,"playing",2),pt([te({type:Number})],at.prototype,"volume",2),pt([te({type:Boolean})],at.prototype,"muted",2),pt([te({type:Number})],at.prototype,"currentTime",2),pt([te({type:Number})],at.prototype,"duration",2),pt([te({type:Array})],at.prototype,"languages",2),pt([te({type:String})],at.prototype,"language",2),pt([te({type:Array,attribute:!1})],at.prototype,"levels",2),pt([te({type:Number})],at.prototype,"level",2),pt([te({type:Number})],at.prototype,"playbackRate",2),pt([te({type:String})],at.prototype,"caption",2),pt([te({type:Array})],at.prototype,"buffer",2),pt([te({type:Boolean})],at.prototype,"captions",2),pt([te({type:Boolean})],at.prototype,"fullscreen",2),pt([te({type:Array})],at.prototype,"controls",2),pt([it()],at.prototype,"showControls",2),at=pt([St("vmp-player-overlay")],at);var u1=Object.defineProperty,h1=Object.getOwnPropertyDescriptor,tt=(r,e,t,i)=>{for(var n=i>1?void 0:i?h1(e,t):e,s=r.length-1,o;s>=0;s--)(o=r[s])&&(n=(i?o(e,t,n):o(n))||n);return i&&n&&u1(e,t,n),n};const d1=1e3/60,f1=30;let qe=class extends Ye{constructor(){super(...arguments),this.debug=!1,this.propAspectRatio=0,this.preload="auto",this.autoplay=!1,this.loading=!1,this.disabled=!1,this.dataResolver=na,this.languageResolver=Am,this._sceneController=new yB(this),this._drawController=new gB(this),this._observer=null,this._wasPlaying=!1,this._manualMute=this.muted,this._seekerRAF=null,this._seekerTimeout=null,this._lastWaiting=!1,this._lastTimestamp=null,this._lastCurrentTime=null,this._playerRef=mt(),this._canvasRef=mt(),this._pageHidden=document.visibilityState==="hidden",this._aspectRatio=this.propAspectRatio,this._processing=!1,this._waiting=!1,this._errors=[],this._seeking=!1,this._language=this.propLanguage,this._languages=[],this._captions=!1,this._fullscreen=!1,this._initialised=null,this._paused=!0,this._playbackRate=1,this._volume=null,this._muted=null,this._videoResolution=-1,this._handleContainerResize=()=>{var r;(r=this.shadowRoot)!=null&&r.host&&!this.propAspectRatio&&(this._aspectRatio=this.shadowRoot.host.clientWidth/this.shadowRoot.host.clientHeight)},this._handleCanvasResize=()=>{this.draw()},this._loop=()=>{this._endLoop(),this._pageHidden?this._seekerTimeout=setTimeout(this._seeker,d1):this._seekerRAF=requestAnimationFrame(this._seeker)},this._endLoop=()=>{this._seekerRAF&&cancelAnimationFrame(this._seekerRAF),this._seekerTimeout&&clearTimeout(this._seekerTimeout),this._seekerRAF=null,this._seekerTimeout=null},this._seeker=(r=performance.now())=>{if(this.composition){if(this._waiting=this._drawController.activeScenes.some(e=>_r(e.layout.node).some(({key:i})=>{if(this.media[i]&&this.mediaState[i]){const n=this.media[i],s=this.mediaState[i];return!s||!s.initialised||s.waiting||n.node.readyState<3}})),this.waiting?(this._lastTimestamp=null,this._lastWaiting||this.dispatchEvent(new CustomEvent("waiting"))):this._lastWaiting&&this.dispatchEvent(new CustomEvent("playing")),r-(this._lastTimestamp??0)>1e3/f1){let e=this._drawController.currentTime;const t=(r-(this._lastTimestamp??r))/1e3*this.playbackRate;if(this.activeScenes[0]){const i=_r(this.activeScenes[0].layout.node);(i==null?void 0:i.every(({key:s},o)=>{var a;const l=this.media[s];return((a=this._lastCurrentTime)==null?void 0:a[o])!==l.node.currentTime}))&&(e+=t),this._lastCurrentTime=i.map(({key:s})=>this.media[s].node.currentTime)}else e+=t;this._drawController.currentTime=e,this._lastTimestamp=r}this._lastWaiting=this._waiting,this._drawController.currentTime>=this.duration&&(this.pause(),this.dispatchEvent(new CustomEvent("ended")))}this.paused||this._loop()},this._handleError=r=>{this._errors=[...this.errors,r.error],r.error.fatal&&this.pause()},this._handleFullscreenChange=()=>{this===document.fullscreenElement?this._fullscreen=!0:this._fullscreen=!1},this._handleVisibilityChange=()=>{this._pageHidden=document.visibilityState==="hidden",this.paused||this._loop()}}get aspectRatio(){return this._aspectRatio}get processing(){return this._processing}get waiting(){return!this.paused&&this._waiting}get errors(){return this._errors}get seeking(){return this._seeking}get language(){return this._language}get languages(){return this._languages}get captions(){return this._captions}get fullscreen(){return this._fullscreen}get initialised(){return this._initialised=this._initialised??new Promise(r=>{const e=setInterval(()=>{!!this.errors.find(i=>i.fatal)&&r(!1),!this.loading&&!this.processing&&this.composition&&this.duration>0&&r(!0)},500);setTimeout(()=>{clearInterval(e),r(!1)},60*1e3)}),this._initialised}get duration(){return this._sceneController.duration}get media(){return this._sceneController.media??{}}get mediaState(){return this._sceneController.mediaState}get composition(){return this._sceneController.composition}get activeScenes(){return this._drawController.activeScenes}set paused(r){r!==this._paused&&(this._paused=r,this.requestUpdate(),this.dispatchEvent(new CustomEvent(r?"pause":"play")))}get paused(){return this._paused}set playbackRate(r){r!==this._playbackRate&&(this._playbackRate=r,Object.values(this.media).forEach(({node:e,speed:t})=>{e.playbackRate=$r(.1,r*t,4)}),this.requestUpdate(),this.dispatchEvent(new CustomEvent("ratechange",{detail:r})))}get playbackRate(){return this._playbackRate}set volume(r){const e=$r(0,r,1);e!==this._volume&&(Object.values(this.media).forEach(({node:t,volume:i})=>{t.volume=e*i}),localStorage.setItem("vmp-player-volume",e.toString()),this._volume=e,e>0&&(this.muted=!1),this.requestUpdate(),this.dispatchEvent(new CustomEvent("volumechange",{detail:r})))}get volume(){return this._volume??(this._volume=parseFloat(localStorage.getItem("vmp-player-volume")??"1"))}set muted(r){Object.values(this.media).forEach(({node:e,volume:t})=>{e.muted=t===0||r}),r!==this._muted&&(this._muted=r,localStorage.setItem("vmp-player-muted",r.toString()),this.requestUpdate(),this.dispatchEvent(new CustomEvent("volumechange",{detail:r?0:this.volume})))}get muted(){return this._muted??(this._muted=this.autoplay||localStorage.getItem("vmp-player-muted")==="true")}set videoResolution(r){r!==this._videoResolution&&(this._videoResolution=r,Object.values(this.media).forEach(({hls:e})=>{if(e){const t=e.levels.findIndex(i=>Math.min(i.height,i.width)===r);e.currentLevel=t??-1}}),this.requestUpdate())}get videoResolution(){return this._videoResolution}set currentTime(r){r!==this._drawController.currentTime&&(this._drawController.currentTime=r,this._sceneController.setMediaCurrentTime(r))}get currentTime(){return this._drawController.currentTime}reset(r=0,e=!1){this._lastTimestamp=null,this._lastCurrentTime=null,this._drawController.currentTime=r,this._sceneController.setMediaCurrentTime(r),e?this.play():this.pause()}clear(){this._drawController.clear()}play(){this.paused=!1,this._lastTimestamp=null,this._lastCurrentTime=null,this.duration>0&&this._drawController.currentTime>=this.duration&&this.reset(0,!0),this._loop()}pause(){this._endLoop(),this.paused=!0,Object.values(this.media).forEach(({node:r})=>{r.pause()})}draw(r){return this._drawController.draw(r)}toggleFullscreen(r){r??this.fullscreen?TB():this._playerRef.value&&BB(this._playerRef.value)}connectedCallback(){var r;super.connectedCallback(),this.addEventListener("error",this._handleError),document.addEventListener("fullscreenchange",this._handleFullscreenChange),document.addEventListener("visibilitychange",this._handleVisibilityChange),(r=this.shadowRoot)!=null&&r.host&&(this._observer=new ResizeObserver(this._handleContainerResize),this._observer.observe(this.shadowRoot.host))}willUpdate(r){r.has("propAspectRatio")&&(this._aspectRatio=this.propAspectRatio),r.has("propLanguage")&&(this._language=this.propLanguage)}updated(r){r.has("propAspectRatio")&&!this.propAspectRatio&&this._handleContainerResize(),this.autoplay&&!this._sceneController.hasPlayed&&!this.processing&&r.get("_processing")&&this.play(),r.has("_processing")&&this.processing&&this.dispatchEvent(new CustomEvent("processing"))}disconnectedCallback(){var r;super.disconnectedCallback(),(r=this._observer)==null||r.disconnect(),document.removeEventListener("fullscreenchange",this._handleFullscreenChange),document.removeEventListener("visibilitychange",this._handleVisibilityChange)}_renderStyles(){return this.propAspectRatio?typeof this.propAspectRatio=="number"?Ce`
3745
3745
  <style>
3746
3746
  :host {
3747
3747
  aspect-ratio: ${this.propAspectRatio};