@loaders.gl/video 4.4.5 → 5.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +14 -3
  2. package/dist/bundled.d.ts +3 -0
  3. package/dist/bundled.d.ts.map +1 -0
  4. package/dist/bundled.js +5 -0
  5. package/dist/bundled.js.map +1 -0
  6. package/dist/dist.dev.js +154 -80
  7. package/dist/dist.min.js +1 -1
  8. package/dist/gif-builder.d.ts +1 -1
  9. package/dist/gif-builder.js +2 -2
  10. package/dist/gif-builder.js.map +1 -1
  11. package/dist/index.cjs +140 -65
  12. package/dist/index.cjs.map +3 -4
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/lib/gifshot/gifshot.d.ts.map +1 -1
  18. package/dist/lib/gifshot/gifshot.js +40 -28
  19. package/dist/lib/gifshot/gifshot.js.map +1 -1
  20. package/dist/lib/parsers/parse-video.d.ts +2 -0
  21. package/dist/lib/parsers/parse-video.d.ts.map +1 -1
  22. package/dist/lib/parsers/parse-video.js +6 -6
  23. package/dist/lib/parsers/parse-video.js.map +1 -1
  24. package/dist/unbundled.d.ts +3 -0
  25. package/dist/unbundled.d.ts.map +1 -0
  26. package/dist/unbundled.js +5 -0
  27. package/dist/unbundled.js.map +1 -0
  28. package/dist/video-format.d.ts +13 -0
  29. package/dist/video-format.d.ts.map +1 -0
  30. package/dist/video-format.js +16 -0
  31. package/dist/video-format.js.map +1 -0
  32. package/dist/video-loader-with-parser.d.ts +28 -0
  33. package/dist/video-loader-with-parser.d.ts.map +1 -0
  34. package/dist/video-loader-with-parser.js +15 -0
  35. package/dist/video-loader-with-parser.js.map +1 -0
  36. package/dist/video-loader.d.ts +31 -9
  37. package/dist/video-loader.d.ts.map +1 -1
  38. package/dist/video-loader.js +10 -11
  39. package/dist/video-loader.js.map +1 -1
  40. package/package.json +13 -5
  41. package/src/bundled.ts +6 -0
  42. package/src/gif-builder.ts +2 -2
  43. package/src/index.ts +2 -0
  44. package/src/lib/gifshot/gifshot.ts +39 -28
  45. package/src/lib/parsers/parse-video.ts +7 -6
  46. package/src/unbundled.ts +6 -0
  47. package/src/video-format.ts +18 -0
  48. package/src/video-loader-with-parser.ts +22 -0
  49. package/src/video-loader.ts +12 -12
package/dist/dist.min.js CHANGED
@@ -4,6 +4,6 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['loaders'] = factory();
6
6
  else root['loaders'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var Re=Object.create;var de=Object.defineProperty;var Ue=Object.getOwnPropertyDescriptor;var Me=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Le=Object.prototype.hasOwnProperty;var He=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Be=(t,e)=>{for(var n in e)de(t,n,{get:e[n],enumerable:!0})},ce=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Me(e))!Le.call(t,i)&&i!==n&&de(t,i,{get:()=>e[i],enumerable:!(o=Ue(e,i))||o.enumerable});return t},fe=(t,e,n)=>(ce(t,e,"default"),n&&ce(n,e,"default")),Ge=(t,e,n)=>(n=t!=null?Re(Ve(t)):{},ce(e||!t||!t.__esModule?de(n,"default",{value:t,enumerable:!0}):n,t)),Pe=t=>ce(de({},"__esModule",{value:!0}),t);var ye=He((rt,we)=>{we.exports=globalThis.loaders});var se={};Be(se,{GIFBuilder:()=>K,VideoLoader:()=>Ce});fe(se,Ge(ye(),1));async function he(t){let e=new Blob([t]),n=document.createElement("video");return n.src=URL.createObjectURL(e),n}var _e="4.4.5",Ce={dataType:null,batchType:null,name:"Video",id:"video",module:"video",version:_e,extensions:["mp4"],mimeTypes:["video/mp4"],options:{video:{}},parse:he};function Se(t,e){if(!t)throw new Error(e)}var D=globalThis.document||{},r={URL:globalThis.URL||globalThis.webkitURL||globalThis.mozURL||globalThis.msURL,getUserMedia:function(){if(!globalThis.navigator)return globalThis.navigator;let t=globalThis.navigator.getUserMedia||globalThis.navigator.webkitGetUserMedia||globalThis.navigator.mozGetUserMedia||globalThis.navigator.msGetUserMedia;return t&&t.bind(globalThis.navigator)}(),requestAnimFrame:globalThis.requestAnimationFrame||globalThis.webkitRequestAnimationFrame||globalThis.mozRequestAnimationFrame||globalThis.oRequestAnimationFrame||globalThis.msRequestAnimationFrame,requestTimeout:function(e,n){if(e=e||r.noop,n=n||0,!r.requestAnimFrame)return setTimeout(e,n);let o=new Date().getTime(),i=new Object,s=r.requestAnimFrame,a=function l(){new Date().getTime()-o>=n?e.call():i.value=s(l)};return i.value=s(a),i},Blob:globalThis.Blob||globalThis.BlobBuilder||globalThis.WebKitBlobBuilder||globalThis.MozBlobBuilder||globalThis.MSBlobBuilder,btoa:function(){let t=globalThis.btoa||function(e){let n="",o=0,i=e.length,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",a,l,c,u,x,k,m;for(;o<i;)a=e.charCodeAt(o++),l=e.charCodeAt(o++),c=e.charCodeAt(o++),u=a>>2,x=(a&3)<<4|l>>4,k=(l&15)<<2|c>>6,m=c&63,isNaN(l)?k=m=64:isNaN(c)&&(m=64),n=n+s.charAt(u)+s.charAt(x)+s.charAt(k)+s.charAt(m);return n};return t?t.bind(globalThis):r.noop}(),isObject:function(e){return e&&Object.prototype.toString.call(e)==="[object Object]"},isEmptyObject:function(e){return r.isObject(e)&&!Object.keys(e).length},isArray:function(e){return e&&Array.isArray(e)},isFunction:function(e){return e&&typeof e=="function"},isElement:function(e){return e&&e.nodeType===1},isString:function(e){return typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"},isSupported:{canvas:function(){let e=D.createElement("canvas");return e&&e.getContext&&e.getContext("2d")},webworkers:function(){return globalThis.Worker},blob:function(){return r.Blob},Uint8Array:function(){return globalThis.Uint8Array},Uint32Array:function(){return globalThis.Uint32Array},videoCodecs:function(){let t=D.createElement("video"),e={mp4:!1,h264:!1,ogv:!1,ogg:!1,webm:!1};try{t&&t.canPlayType&&(e.mp4=t.canPlayType('video/mp4; codecs="mp4v.20.8"')!=="",e.h264=(t.canPlayType('video/mp4; codecs="avc1.42E01E"')||t.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'))!=="",e.ogv=t.canPlayType('video/ogg; codecs="theora"')!=="",e.ogg=t.canPlayType('video/ogg; codecs="theora"')!=="",e.webm=t.canPlayType('video/webm; codecs="vp8, vorbis"')!==-1)}catch{}return e}()},noop:function(){},each:function(e,n){let o,i;if(r.isArray(e))for(o=-1,i=e.length;++o<i&&n(o,e[o])!==!1;);else if(r.isObject(e)){for(o in e)if(e.hasOwnProperty(o)&&n(o,e[o])===!1)break}},normalizeOptions:function(e,n){if(!r.isObject(e)||!r.isObject(n)||!Object.keys)return;let o={};return r.each(e,function(i,s){o[i]=e[i]}),r.each(n,function(i,s){let a=n[i];r.isObject(a)&&e[i]?o[i]=r.normalizeOptions(e[i],a):o[i]=a}),o},setCSSAttr:function(e,n,o){r.isElement(e)&&(r.isString(n)&&r.isString(o)?e.style[n]=o:r.isObject(n)&&r.each(n,function(i,s){e.style[i]=s}))},removeElement:function(e){r.isElement(e)&&e.parentNode&&e.parentNode.removeChild(e)},createWebWorker:function(e){if(!r.isString(e))return{};try{let n=new r.Blob([e],{type:"text/javascript"}),o=r.URL.createObjectURL(n),i=new Worker(o);return{objectUrl:o,worker:i}}catch(n){return`${n}`}},getExtension:function(e){return e.substr(e.lastIndexOf(".")+1,e.length)},getFontSize:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!D.body||e.resizeFont===!1)return e.fontSize;let n=e.text,o=e.gifWidth,i=parseInt(e.fontSize,10),s=parseInt(e.minFontSize,10),a=D.createElement("div"),l=D.createElement("span");for(a.setAttribute("width",o),a.appendChild(l),l.innerHTML=n,l.style.fontSize=`${i}px`,l.style.textIndent="-9999px",l.style.visibility="hidden",D.body.appendChild(l);l.offsetWidth>o&&i>=s;)l.style.fontSize=`${--i}px`;return D.body.removeChild(l),`${i}px`},webWorkerError:!1},je=Object.freeze({default:r}),q={validate:function(e){e=r.isObject(e)?e:{};let n={};return r.each(q.validators,function(o,i){let s=i.errorCode;if(!e[s]&&!i.condition)return n=i,n.error=!0,!1}),delete n.condition,n},isValid:function(e){return q.validate(e).error!==!0},validators:[{condition:r.isFunction(r.getUserMedia),errorCode:"getUserMedia",errorMsg:"The getUserMedia API is not supported in your browser"},{condition:r.isSupported.canvas(),errorCode:"canvas",errorMsg:"Canvas elements are not supported in your browser"},{condition:r.isSupported.webworkers(),errorCode:"webworkers",errorMsg:"The Web Workers API is not supported in your browser"},{condition:r.isFunction(r.URL),errorCode:"globalThis.URL",errorMsg:"The globalThis.URL API is not supported in your browser"},{condition:r.isSupported.blob(),errorCode:"globalThis.Blob",errorMsg:"The globalThis.Blob File API is not supported in your browser"},{condition:r.isSupported.Uint8Array(),errorCode:"globalThis.Uint8Array",errorMsg:"The globalThis.Uint8Array function constructor is not supported in your browser"},{condition:r.isSupported.Uint32Array(),errorCode:"globalThis.Uint32Array",errorMsg:"The globalThis.Uint32Array function constructor is not supported in your browser"}],messages:{videoCodecs:{errorCode:"videocodec",errorMsg:"The video codec you are trying to use is not supported in your browser"}}},De=Object.freeze({default:q}),Fe=function(){},be={sampleInterval:10,numWorkers:2,filter:"",gifWidth:200,gifHeight:200,interval:.1,numFrames:10,frameDuration:1,keepCameraOn:!1,images:[],video:null,webcamVideoElement:null,cameraStream:null,text:"",fontWeight:"normal",fontSize:"16px",minFontSize:"10px",resizeFont:!1,fontFamily:"sans-serif",fontColor:"#ffffff",textAlign:"center",textBaseline:"bottom",textXCoordinate:null,textYCoordinate:null,progressCallback:Fe,completeCallback:Fe,saveRenderingContexts:!1,savedRenderingContexts:[],crossOrigin:"Anonymous"},Ne=Object.freeze({default:be});function $e(){return q.isValid()}function We(){return q.isValid()}function qe(){let t={getUserMedia:!0};return q.isValid(t)}function Xe(t){let e=!1;if(r.isArray(t)&&t.length){if(r.each(t,function(n,o){r.isSupported.videoCodecs[o]&&(e=!0)}),!e)return!1}else if(r.isString(t)&&t.length&&!r.isSupported.videoCodecs[t])return!1;return q.isValid({getUserMedia:!0})}function Ee(){let U,G,j,X,S,P=[],Q=[],Z=[],ee=[];function me(g,p,W){let h,b;for(G=g,j=p,X=W,S=new Array(256),h=0;h<256;h++)S[h]=new Array(4),b=S[h],b[0]=b[1]=b[2]=(h<<4+8)/256|0,Z[h]=65536/256|0,Q[h]=0}function ue(){let g=[],p=new Array(256);for(let h=0;h<256;h++)p[S[h][3]]=h;let W=0;for(let h=0;h<256;h++){let b=p[h];g[W++]=S[b][0],g[W++]=S[b][1],g[W++]=S[b][2]}return g}function te(){let g,p,W,h,b,d,f,F;for(f=0,F=0,g=0;g<256;g++){for(b=S[g],W=g,h=b[1],p=g+1;p<256;p++)d=S[p],d[1]<h&&(W=p,h=d[1]);if(d=S[W],g!=W&&(p=d[0],d[0]=b[0],b[0]=p,p=d[1],d[1]=b[1],b[1]=p,p=d[2],d[2]=b[2],b[2]=p,p=d[3],d[3]=b[3],b[3]=p),h!=f){for(P[f]=F+g>>1,p=f+1;p<h;p++)P[p]=g;f=h,F=g}}for(P[f]=F+255>>1,p=f+1;p<256;p++)P[p]=255}function ie(){let g,p,W,h,b,d,f,F,T,O,$,A,_,xe;for(j<1509&&(X=1),U=30+(X-1)/3,A=G,_=0,xe=j,$=j/(3*X),O=$/100|0,F=1024,d=2048,f=d>>6,f<=1&&(f=0),g=0;g<f;g++)ee[g]=F*((f*f-g*g)*256/(f*f));for(j<1509?T=3:j%499!==0?T=3*499:j%491!==0?T=3*491:j%487!==0?T=3*487:T=3*503,g=0;g<$;)if(W=(A[_+0]&255)<<4,h=(A[_+1]&255)<<4,b=(A[_+2]&255)<<4,p=le(W,h,b),ae(F,p,W,h,b),f!==0&&re(f,p,W,h,b),_+=T,_>=xe&&(_-=j),g++,O===0&&(O=1),g%O===0)for(F-=F/U,d-=d/30,f=d>>6,f<=1&&(f=0),p=0;p<f;p++)ee[p]=F*((f*f-p*p)*256/(f*f))}function ne(g,p,W){let h,b,d,f,F,T,O;for(F=1e3,O=-1,h=P[p],b=h-1;h<256||b>=0;)h<256&&(T=S[h],d=T[1]-p,d>=F?h=256:(h++,d<0&&(d=-d),f=T[0]-g,f<0&&(f=-f),d+=f,d<F&&(f=T[2]-W,f<0&&(f=-f),d+=f,d<F&&(F=d,O=T[3])))),b>=0&&(T=S[b],d=p-T[1],d>=F?b=-1:(b--,d<0&&(d=-d),f=T[0]-g,f<0&&(f=-f),d+=f,d<F&&(f=T[2]-W,f<0&&(f=-f),d+=f,d<F&&(F=d,O=T[3]))));return O}function oe(){return ie(),ge(),te(),ue()}function ge(){let g,p;for(g=0;g<256;g++)S[g][0]>>=4,S[g][1]>>=4,S[g][2]>>=4,S[g][3]=g}function re(g,p,W,h,b){let d,f,F,T,O,$,A;for(F=p-g,F<-1&&(F=-1),T=p+g,T>256&&(T=256),d=p+1,f=p-1,$=1;d<T||f>F;){if(O=ee[$++],d<T){A=S[d++];try{A[0]-=O*(A[0]-W)/262144|0,A[1]-=O*(A[1]-h)/262144|0,A[2]-=O*(A[2]-b)/262144|0}catch{}}if(f>F){A=S[f--];try{A[0]-=O*(A[0]-W)/262144|0,A[1]-=O*(A[1]-h)/262144|0,A[2]-=O*(A[2]-b)/262144|0}catch{}}}}function ae(g,p,W,h,b){let d=S[p],f=g/1024;d[0]-=f*(d[0]-W)|0,d[1]-=f*(d[1]-h)|0,d[2]-=f*(d[2]-b)|0}function le(g,p,W){let h,b,d,f,F,T,O,$,A,_;for($=~(1<<31),A=$,T=-1,O=T,h=0;h<256;h++)_=S[h],b=_[0]-g,b<0&&(b=-b),d=_[1]-p,d<0&&(d=-d),b+=d,d=_[2]-W,d<0&&(d=-d),b+=d,b<$&&($=b,T=h),f=b-(Q[h]>>16-4),f<A&&(A=f,O=h),F=Z[h]>>10,Z[h]-=F,Q[h]+=F<<10;return Z[T]+=64,Q[T]-=65536,O}me.apply(this,arguments);let J={};return J.map=ne,J.process=oe,J}function ke(){let t=this;try{globalThis.onmessage=function(n){let o=n.data||{},i;o.gifshot&&(i=e.run(o),postMessage(i))}}catch{}var e={dataToRGB:function(o,i,s){let a=i*s*4,l=0,c=[];for(;l<a;)c.push(o[l++]),c.push(o[l++]),c.push(o[l++]),l++;return c},componentizedPaletteToArray:function(o){o=o||[];let i=[];for(let s=0;s<o.length;s+=3){let a=o[s],l=o[s+1],c=o[s+2];i.push(a<<16|l<<8|c)}return i},processFrameWithQuantizer:function(o,i,s,a){let l=this.dataToRGB(o,i,s),c=new Ee(l,l.length,a),u=c.process(),x=new Uint32Array(this.componentizedPaletteToArray(u)),k=i*s,m=new Uint8Array(k),v=0;for(let w=0;w<k;w++){let E=l[v++],y=l[v++],C=l[v++];m[w]=c.map(E,y,C)}return{pixels:m,palette:x}},run:function(o){o=o||{};let i=o,s=i.height,a=i.palette,l=i.sampleInterval,c=i.width,u=o.data;return this.processFrameWithQuantizer(u,c,s,l)}};return e}function Ye(t,e,n,o){let i=0;o=o===void 0?{}:o;let s=o.loop===void 0?null:o.loop,a=o.palette===void 0?null:o.palette;if(e<=0||n<=0||e>65535||n>65535)throw"Width/Height invalid.";function l(m){let v=m.length;if(v<2||v>256||v&v-1)throw"Invalid code/color length, must be power of 2 and 2 .. 256.";return v}t[i++]=71,t[i++]=73,t[i++]=70,t[i++]=56,t[i++]=57,t[i++]=97;let c=0,u=0;if(t[i++]=e&255,t[i++]=e>>8&255,t[i++]=n&255,t[i++]=n>>8&255,t[i++]=(a!==null?128:0)|c,t[i++]=u,t[i++]=0,s!==null){if(s<0||s>65535)throw"Loop count invalid.";t[i++]=33,t[i++]=255,t[i++]=11,t[i++]=78,t[i++]=69,t[i++]=84,t[i++]=83,t[i++]=67,t[i++]=65,t[i++]=80,t[i++]=69,t[i++]=50,t[i++]=46,t[i++]=48,t[i++]=3,t[i++]=1,t[i++]=s&255,t[i++]=s>>8&255,t[i++]=0}let x=!1;this.addFrame=function(m,v,w,E,y,C){if(x===!0&&(--i,x=!1),C=C===void 0?{}:C,m<0||v<0||m>65535||v>65535)throw"x/y invalid.";if(w<=0||E<=0||w>65535||E>65535)throw"Width/Height invalid.";if(y.length<w*E)throw"Not enough pixels for the frame size.";let z=!0,I=C.palette;if(I==null&&(z=!1,I=a),I==null)throw"Must supply either a local or global palette.";let M=l(I),V=0;for(;M>>=1;)++V;M=1<<V;let R=C.delay===void 0?0:C.delay,U=C.disposal===void 0?0:C.disposal;if(U<0||U>3)throw"Disposal out of range.";let Y=!1,L=0;if(C.transparent!==void 0&&C.transparent!==null&&(Y=!0,L=C.transparent,L<0||L>=M))throw"Transparent color index.";if((U!==0||Y||R!==0)&&(t[i++]=33,t[i++]=249,t[i++]=4,t[i++]=U<<2|(Y===!0?1:0),t[i++]=R&255,t[i++]=R>>8&255,t[i++]=L,t[i++]=0),t[i++]=44,t[i++]=m&255,t[i++]=m>>8&255,t[i++]=v&255,t[i++]=v>>8&255,t[i++]=w&255,t[i++]=w>>8&255,t[i++]=E&255,t[i++]=E>>8&255,t[i++]=z===!0?128|V-1:0,z===!0)for(let H=0,N=I.length;H<N;++H){let G=I[H];t[i++]=G>>16&255,t[i++]=G>>8&255,t[i++]=G&255}i=k(t,i,V<2?2:V,y)},this.end=function(){return x===!1&&(t[i++]=59,x=!0),i};function k(m,v,w,E){m[v++]=w;let y=v++,C=1<<w,z=C-1,I=C+1,M=I+1,V=w+1,R=0,U=0;function Y(G){for(;R>=G;)m[v++]=U&255,U>>=8,R-=8,v===y+256&&(m[y]=255,y=v++)}function L(G){U|=G<<R,R+=V,Y(8)}let H=E[0]&z,N={};L(C);for(let G=1,j=E.length;G<j;++G){let X=E[G]&z,S=H<<8|X,P=N[S];if(P===void 0){for(U|=H<<R,R+=V;R>=8;)m[v++]=U&255,U>>=8,R-=8,v===y+256&&(m[y]=255,y=v++);M===4096?(L(C),M=I+1,V=w+1,N={}):(M>=1<<V&&++V,N[S]=M++),H=X}else H=P}return L(H),L(I),Y(1),y+1===v?m[y]=0:(m[y]=v-y-1,m[v++]=0),v}}var Te=function(){},ve=function(e){this.canvas=null,this.ctx=null,this.repeat=0,this.frames=[],this.numRenderedFrames=0,this.onRenderCompleteCallback=Te,this.onRenderProgressCallback=Te,this.workers=[],this.availableWorkers=[],this.generatingGIF=!1,this.options=e,this.initializeWebWorkers(e)};ve.prototype={workerMethods:ke(),initializeWebWorkers:function(e){let n=this,o=`${Ee.toString()}(${ke.toString()}());`,i,s,a,l,c=-1,u="";for(l=e.numWorkers;++c<l;)i=r.createWebWorker(o),r.isObject(i)?(s=i.objectUrl,a=i.worker,n.workers.push({worker:a,objectUrl:s}),n.availableWorkers.push(a)):(u=i,r.webWorkerError=Boolean(i));this.workerError=u,this.canvas=D.createElement("canvas"),this.canvas.width=e.gifWidth,this.canvas.height=e.gifHeight,this.ctx=this.canvas.getContext("2d"),this.frames=[]},getWorker:function(){return this.availableWorkers.pop()},freeWorker:function(e){this.availableWorkers.push(e)},byteMap:function(){let t=[];for(let e=0;e<256;e++)t[e]=String.fromCharCode(e);return t}(),bufferToString:function(e){let n=e.length,o="",i=-1;for(;++i<n;)o+=this.byteMap[e[i]];return o},onFrameFinished:function(e){let n=this,o=n.frames,i=n.options,s=Boolean((i.images||[]).length),a=o.every(function(l){return!l.beingProcessed&&l.done});n.numRenderedFrames++,s&&e(n.numRenderedFrames/o.length),n.onRenderProgressCallback(n.numRenderedFrames*.75/o.length),a?n.generatingGIF||n.generateGIF(o,n.onRenderCompleteCallback):r.requestTimeout(function(){n.processNextFrame()},1)},processFrame:function(e){let n=this,o=this.options,i=this.options,s=i.progressCallback,a=i.sampleInterval,l=this.frames,c,u,x=function(){let v=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).data;delete c.data,c.pixels=Array.prototype.slice.call(v.pixels),c.palette=Array.prototype.slice.call(v.palette),c.done=!0,c.beingProcessed=!1,n.freeWorker(u),n.onFrameFinished(s)};if(c=l[e],c.beingProcessed||c.done){this.onFrameFinished();return}c.sampleInterval=a,c.beingProcessed=!0,c.gifshot=!0,u=this.getWorker(),u?(u.onmessage=x,u.postMessage(c)):x({data:n.workerMethods.run(c)})},startRendering:function(e){this.onRenderCompleteCallback=e;for(let n=0;n<this.options.numWorkers&&n<this.frames.length;n++)this.processFrame(n)},processNextFrame:function(){let e=-1;for(let n=0;n<this.frames.length;n++){let o=this.frames[n];if(!o.done&&!o.beingProcessed){e=n;break}}e>=0&&this.processFrame(e)},generateGIF:function(e,n){let o=[],i={loop:this.repeat},s=this.options,a=s.interval,l=s.frameDuration,c=s.images,u=Boolean(c.length),x=s.gifHeight,k=s.gifWidth,m=new Ye(o,k,x,i),v=this.onRenderProgressCallback,w=u?a*100:0,E,y;this.generatingGIF=!0,r.each(e,function(C,z){let I=z.palette;v(.75+.25*z.position*1/e.length);for(let M=0;M<l;M++)m.addFrame(0,0,k,x,z.pixels,{palette:I,delay:w})}),m.end(),v(1),this.frames=[],this.generatingGIF=!1,r.isFunction(n)&&(E=this.bufferToString(o),y=`data:image/gif;base64,${r.btoa(E)}`,n(y))},setRepeat:function(e){this.repeat=e},addFrame:function(e,n){n=r.isObject(n)?n:{};let o=this,i=o.ctx,s=o.options,a=s.gifWidth,l=s.gifHeight,c=r.getFontSize(n),u=n,x=u.filter,k=u.fontColor,m=u.fontFamily,v=u.fontWeight,w=u.gifHeight,E=u.gifWidth,y=u.text,C=u.textAlign,z=u.textBaseline,I=n.textXCoordinate?n.textXCoordinate:C==="left"?1:C==="right"?a:a/2,M=n.textYCoordinate?n.textYCoordinate:z==="top"?1:z==="center"?l/2:l,V=`${v} ${c} ${m}`,R;try{i.filter=x,i.drawImage(e,0,0,a,l),y&&(i.font=V,i.fillStyle=k,i.textAlign=C,i.textBaseline=z,i.fillText(y,I,M)),R=i.getImageData(0,0,a,l),o.addFrameImageData(R)}catch(U){return`${U}`}},addFrameImageData:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=this.frames,o=e.data;this.frames.push({data:o,width:e.width,height:e.height,palette:null,dithering:null,done:!1,beingProcessed:!1,position:n.length})},onRenderProgress:function(e){this.onRenderProgressCallback=e},isRendering:function(){return this.generatingGIF},getBase64GIF:function(e){let n=this,o=function(s){n.destroyWorkers(),r.requestTimeout(function(){e(s)},0)};n.startRendering(o)},destroyWorkers:function(){if(this.workerError)return;let e=this.workers;r.each(e,function(n,o){let i=o.worker,s=o.objectUrl;i.terminate(),r.URL.revokeObjectURL(s)})}};function Qe(t,e){t.getBase64GIF(function(n){e({error:!1,errorCode:"",errorMsg:"",image:n})})}function Ke(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=this,n=t.callback,o=t.images,i=t.options,s=t.imagesLength,a={getUserMedia:!0,"globalThis.URL":!0},l=q.validate(a),c=[],u=0,x,k;if(l.error)return n(l);k=new ve(i),r.each(o,function(v,w){let E=w;r.isElement(E)?(i.crossOrigin&&(E.crossOrigin=i.crossOrigin),c[v]=E,u+=1,u===s&&m()):r.isString(E)&&(x=new Image,i.crossOrigin&&(x.crossOrigin=i.crossOrigin),function(y){w.text&&(y.text=w.text),y.onerror=function(C){let z;if(--s,s===0)return z={},z.error="None of the requested images was capable of being retrieved",n(z)},y.onload=function(C){w.text?c[v]={img:y,text:y.text}:c[v]=y,u+=1,u===s&&m(),r.removeElement(y)},y.src=E}(x),r.setCSSAttr(x,{position:"fixed",opacity:"0"}),D.body.appendChild(x))});function m(){r.each(c,function(v,w){w&&(w.text?k.addFrame(w.img,i,w.text):k.addFrame(w,i))}),Qe(k,n)}}var Ze=function(){},pe={getGIF:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments[1];n=r.isFunction(n)?n:Ze;let o=D.createElement("canvas"),i,s=e.images,a=Boolean(s.length),l=e.cameraStream,c=e.crop,u=e.filter,x=e.fontColor,k=e.fontFamily,m=e.fontWeight,v=e.keepCameraOn,w=e.numWorkers,E=e.progressCallback,y=e.saveRenderingContexts,C=e.savedRenderingContexts,z=e.text,I=e.textAlign,M=e.textBaseline,V=e.videoElement,R=e.videoHeight,U=e.videoWidth,Y=e.webcamVideoElement,L=Number(e.gifWidth),H=Number(e.gifHeight),N=Number(e.interval),G=Number(e.sampleInterval),j=a?0:N*1e3,X=[],S=C.length?C.length:e.numFrames,P=S,Q=new ve(e),Z=r.getFontSize(e),ee=e.textXCoordinate?e.textXCoordinate:I==="left"?1:I==="right"?L:L/2,me=e.textYCoordinate?e.textYCoordinate:M==="top"?1:M==="center"?H/2:H,ue=`${m} ${Z} ${k}`,te=c?Math.floor(c.scaledWidth/2):0,ie=c?U-c.scaledWidth:0,ne=c?Math.floor(c.scaledHeight/2):0,oe=c?R-c.scaledHeight:0,ge=function re(){let ae=P-1;C.length?(i.putImageData(C[S-P],0,0),J()):le();function le(){try{ie>U&&(ie=U),oe>R&&(oe=R),te<0&&(te=0),ne<0&&(ne=0),i.filter=u,i.drawImage(V,te,ne,ie,oe,0,0,L,H),J()}catch(g){if(g.name==="NS_ERROR_NOT_AVAILABLE")r.requestTimeout(le,100);else throw g}}function J(){let g;y&&X.push(i.getImageData(0,0,L,H)),z&&(i.font=ue,i.fillStyle=x,i.textAlign=I,i.textBaseline=M,i.fillText(z,ee,me)),g=i.getImageData(0,0,L,H),Q.addFrameImageData(g),P=ae,E((S-P)/S),ae>0&&r.requestTimeout(re,j),P||Q.getBase64GIF(function(p){n({error:!1,errorCode:"",errorMsg:"",image:p,cameraStream:l,videoElement:V,webcamVideoElement:Y,savedRenderingContexts:X,keepCameraOn:v})})}};S=S!==void 0?S:10,N=N!==void 0?N:.1,o.width=L,o.height=H,i=o.getContext("2d"),function re(){if(!C.length&&V.currentTime===0){r.requestTimeout(re,100);return}ge()}()},getCropDimensions:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.videoWidth,o=e.videoHeight,i=e.gifWidth,s=e.gifHeight,a={width:0,height:0,scaledWidth:0,scaledHeight:0};return n>o?(a.width=Math.round(n*(s/o))-i,a.scaledWidth=Math.round(a.width*(o/s))):(a.height=Math.round(o*(i/n))-s,a.scaledHeight=Math.round(a.height*(n/i))),a}},B={loadedData:!1,defaultVideoDimensions:{width:640,height:480},findVideoSize:function t(e){t.attempts=t.attempts||0;let n=e.cameraStream,o=e.completedCallback,i=e.videoElement;i&&(i.videoWidth>0&&i.videoHeight>0?(i.removeEventListener("loadeddata",B.findVideoSize),o({videoElement:i,cameraStream:n,videoWidth:i.videoWidth,videoHeight:i.videoHeight})):t.attempts<10?(t.attempts+=1,r.requestTimeout(function(){B.findVideoSize(e)},400)):o({videoElement:i,cameraStream:n,videoWidth:B.defaultVideoDimensions.width,videoHeight:B.defaultVideoDimensions.height}))},onStreamingTimeout:function(e){r.isFunction(e)&&e({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - Timed out while trying to start streaming",image:null,cameraStream:{}})},stream:function(e){let n=r.isArray(e.existingVideo)?e.existingVideo[0]:e.existingVideo,o=e.cameraStream,i=e.completedCallback,s=e.streamedCallback,a=e.videoElement;if(r.isFunction(s)&&s(),n){if(r.isString(n))a.src=n,a.innerHTML=`<source src="${n}" type="video/${r.getExtension(n)}" />`;else if(n instanceof Blob){try{a.src=r.URL.createObjectURL(n)}catch{}a.innerHTML=`<source src="${n}" type="${n.type}" />`}}else if(a.mozSrcObject)a.mozSrcObject=o;else if(r.URL)try{a.srcObject=o,a.src=r.URL.createObjectURL(o)}catch{a.srcObject=o}a.play(),r.requestTimeout(function l(){l.count=l.count||0,B.loadedData===!0?(B.findVideoSize({videoElement:a,cameraStream:o,completedCallback:i}),B.loadedData=!1):(l.count+=1,l.count>10?B.findVideoSize({videoElement:a,cameraStream:o,completedCallback:i}):l())},0)},startStreaming:function(e){let n=r.isFunction(e.error)?e.error:r.noop,o=r.isFunction(e.streamed)?e.streamed:r.noop,i=r.isFunction(e.completed)?e.completed:r.noop,s=e.crossOrigin,a=e.existingVideo,l=e.lastCameraStream,c=e.options,u=e.webcamVideoElement,x=r.isElement(a)?a:u||D.createElement("video"),k=void 0;s&&(x.crossOrigin=c.crossOrigin),x.autoplay=!0,x.loop=!0,x.muted=!0,x.addEventListener("loadeddata",function(m){B.loadedData=!0,c.offset&&(x.currentTime=c.offset)}),a?B.stream({videoElement:x,existingVideo:a,completedCallback:i}):l?B.stream({videoElement:x,cameraStream:l,streamedCallback:o,completedCallback:i}):r.getUserMedia({video:!0},function(m){B.stream({videoElement:x,cameraStream:m,streamedCallback:o,completedCallback:i})},n)},startVideoStreaming:function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=n.timeout!==void 0?n.timeout:0,i=n.callback,s=n.webcamVideoElement,a;o>0&&(a=r.requestTimeout(function(){B.onStreamingTimeout(i)},1e4)),B.startStreaming({error:function(){i({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - the user probably denied permission",image:null,cameraStream:{}})},streamed:function(){clearTimeout(a)},completed:function(){let c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},u=c.cameraStream,x=c.videoElement,k=c.videoHeight,m=c.videoWidth;e({cameraStream:u,videoElement:x,videoHeight:k,videoWidth:m})},lastCameraStream:n.lastCameraStream,webcamVideoElement:s,crossOrigin:n.crossOrigin,options:n})},stopVideoStreaming:function(e){e=r.isObject(e)?e:{};let n=e,o=n.keepCameraOn,i=n.videoElement,s=n.webcamVideoElement,a=e.cameraStream||{},l=a.getTracks?a.getTracks()||[]:[],c=Boolean(l.length),u=l[0];!o&&c&&r.isFunction(u.stop)&&u.stop(),r.isElement(i)&&!s&&(i.pause(),r.isFunction(r.URL.revokeObjectURL)&&!r.webWorkerError&&i.src&&r.URL.revokeObjectURL(i.src),r.removeElement(i))}};function Ae(t){t=r.isObject(t)?t:{},B.stopVideoStreaming(t)}function ze(t,e){let n=t.options||{},o=n.images,i=n.video,s=Number(n.gifWidth),a=Number(n.gifHeight),l=Number(n.numFrames),c=t.cameraStream,u=t.videoElement,x=t.videoWidth,k=t.videoHeight,m=pe.getCropDimensions({videoWidth:x,videoHeight:k,gifHeight:a,gifWidth:s}),v=e;n.crop=m,n.videoElement=u,n.videoWidth=x,n.videoHeight=k,n.cameraStream=c,r.isElement(u)&&(u.width=s+m.width,u.height=a+m.height,n.webcamVideoElement||(r.setCSSAttr(u,{position:"fixed",opacity:"0"}),D.body.appendChild(u)),u.play(),pe.getGIF(n,function(w){(!o||!o.length)&&(!i||!i.length)&&Ae(w),v(w)}))}function Je(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.callback,n=t.existingVideo,o=t.options,i={getUserMedia:!0,"globalThis.URL":!0},s=q.validate(i),a=0,l,c,u=void 0,x=void 0;if(s.error)return e(s);if(r.isElement(n)&&n.src){if(c=n.src,l=r.getExtension(c),!r.isSupported.videoCodecs[l])return e(q.messages.videoCodecs)}else r.isArray(n)&&r.each(n,function(k,m){if(m instanceof Blob?l=m.type.substr(m.type.lastIndexOf("/")+1,m.length):l=m.substr(m.lastIndexOf(".")+1,m.length),r.isSupported.videoCodecs[l])return n=m,!1});B.startStreaming({completed:function(m){m.options=o||{},ze(m,e)},existingVideo:n,crossOrigin:o.crossOrigin,options:o})}function et(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.callback,n=t.lastCameraStream,o=t.options,i=t.webcamVideoElement;if(!We())return e(q.validate());if(o.savedRenderingContexts.length){pe.getGIF(o,function(s){e(s)});return}B.startVideoStreaming(function(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};s.options=o||{},ze(s,e)},{lastCameraStream:n,callback:e,webcamVideoElement:i,crossOrigin:o.crossOrigin})}function Ie(t,e){if(e=r.isFunction(t)?t:e,t=r.isObject(t)?t:{},!r.isFunction(e))return;let n=r.normalizeOptions(be,t)||{},o=t.cameraStream,i=n.images,s=i?i.length:0,a=n.video,l=n.webcamVideoElement;n=r.normalizeOptions(n,{gifWidth:Math.floor(n.gifWidth),gifHeight:Math.floor(n.gifHeight)}),s?Ke({images:i,imagesLength:s,callback:e,options:n}):a?Je({existingVideo:a,callback:e,options:n}):et({lastCameraStream:o,callback:e,webcamVideoElement:l,options:n})}function tt(t,e){if(e=r.isFunction(t)?t:e,t=r.isObject(t)?t:{},!r.isFunction(e))return;let n=r.normalizeOptions(be,t),o=r.normalizeOptions(n,{interval:.1,numFrames:1,gifWidth:Math.floor(n.gifWidth),gifHeight:Math.floor(n.gifHeight)});Ie(o,e)}var it={utils:je,error:De,defaultOptions:Ne,createGIF:Ie,takeSnapShot:tt,stopVideoStreaming:Ae,isSupported:$e,isWebCamGIFSupported:We,isExistingVideoGIFSupported:Xe,isExistingImagesGIFSupported:qe,VERSION:"0.4.5"},Oe=it;var nt={source:"images",width:200,height:200,crossOrigin:"Anonymous",progressCallback:t=>{},completeCallback:()=>{},numWorkers:2,sampleInterval:10,interval:.1,offset:null,numFrames:10,frameDuration:1,filter:"",waterMark:null,waterMarkHeight:null,waterMarkWidth:null,waterMarkXCoordinate:1,waterMarkYCoordinate:1,text:"",showFrameText:!0,fontWeight:"normal",fontSize:"16px",minFontSize:"10px",resizeFont:!1,fontFamily:"sans-serif",fontColor:"#ffffff",textAlign:"center",textBaseline:"bottom",textXCoordinate:null,textYCoordinate:null,webcamVideoElement:null,keepCameraOn:!1,cameraStream:null,saveRenderingContexts:!1,savedRenderingContexts:[]},K=class{static get properties(){return{id:"gif",name:"GIF",extensions:["gif"],mimeTypes:["image/gif"],builder:K,options:nt}}constructor(e){this.options={...e},this.source=e.source,delete e.source,this.files=[],this.gifshot=Oe}async initialize(e){}async add(e){await this.initialize(),this.files.push(e)}async build(){switch(await this.initialize(),this._cleanOptions(this.options),this.source){case"images":this.options.images=this.files;break;case"video":this.options.video=this.files;break;case"webcam":Se(this.files.length===0);break;default:throw new Error("GIFBuilder: invalid source")}return await this._createGIF()}async _createGIF(){return new Promise((e,n)=>{this.gifshot.createGIF(this.options,o=>{if(o.error){n(o.errorMsg);return}e(o.image)})})}_cleanOptions(e){(e.video||e.images||e.gifWidth||e.gifHeight)&&console.warn("GIFBuilder: ignoring options"),delete e.video,delete e.images,e.gifWidth=e.width,e.gifHeight=e.height,delete e.width,delete e.height}};return Pe(se);})();
7
+ "use strict";var __exports__=(()=>{var Ge=Object.create;var de=Object.defineProperty;var De=Object.getOwnPropertyDescriptor;var je=Object.getOwnPropertyNames;var Ne=Object.getPrototypeOf,$e=Object.prototype.hasOwnProperty;var fe=(t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(o){throw n=[o],o}};var qe=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(n){throw e=0,n}},Te=(t,e)=>{for(var n in e)de(t,n,{get:e[n],enumerable:!0})},ce=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of je(e))!$e.call(t,i)&&i!==n&&de(t,i,{get:()=>e[i],enumerable:!(o=De(e,i))||o.enumerable});return t},me=(t,e,n)=>(ce(t,e,"default"),n&&ce(n,e,"default")),Xe=(t,e,n)=>(n=t!=null?Ge(Ne(t)):{},ce(e||!t||!t.__esModule?de(n,"default",{value:t,enumerable:!0}):n,t)),Ye=t=>ce(de({},"__esModule",{value:!0}),t);var Ee=qe((pt,We)=>{We.exports=globalThis.loaders});var ue,ve=fe(()=>{"use strict";ue={name:"Video",id:"video",module:"video",encoding:"video",format:"video",extensions:["mp4"],mimeTypes:["video/mp4"],category:"video",binary:!0}});async function xe(t){let e=document.createElement("video");return e.src=URL.createObjectURL(t),e}async function we(t){return await xe(new Blob([t]))}var Ie=fe(()=>{"use strict"});var Ae={};Te(Ae,{VideoLoaderWithParser:()=>Ke});var yt,Qe,Ke,ze=fe(()=>{"use strict";Ie();ye();({preload:yt,...Qe}=ge),Ke={...Qe,parse:we,parseBlob:xe}});async function Je(){let{VideoLoaderWithParser:t}=await Promise.resolve().then(()=>(ze(),Ae));return t}var Ze,ge,ye=fe(()=>{"use strict";ve();Ze="5.0.0-alpha.2";ge={dataType:null,batchType:null,...ue,version:Ze,options:{video:{}},preload:Je}});var se={};Te(se,{GIFBuilder:()=>re,VideoFormat:()=>ue,VideoLoader:()=>ge});me(se,Xe(Ee(),1));ve();ye();function Ve(t,e){if(!t)throw new Error(e)}var j=globalThis.document||{},r={URL:globalThis.URL||globalThis.webkitURL||globalThis.mozURL||globalThis.msURL,getUserMedia:(function(){if(!globalThis.navigator)return globalThis.navigator;let t=globalThis.navigator.getUserMedia||globalThis.navigator.webkitGetUserMedia||globalThis.navigator.mozGetUserMedia||globalThis.navigator.msGetUserMedia;return t&&t.bind(globalThis.navigator)})(),requestAnimFrame:globalThis.requestAnimationFrame||globalThis.webkitRequestAnimationFrame||globalThis.mozRequestAnimationFrame||globalThis.oRequestAnimationFrame||globalThis.msRequestAnimationFrame,requestTimeout:function(e,n){if(e=e||r.noop,n=n||0,!r.requestAnimFrame)return setTimeout(e,n);let o=new Date().getTime(),i=new Object,a=r.requestAnimFrame,l=function s(){new Date().getTime()-o>=n?e.call():i.value=a(s)};return i.value=a(l),i},Blob:globalThis.Blob||globalThis.BlobBuilder||globalThis.WebKitBlobBuilder||globalThis.MozBlobBuilder||globalThis.MSBlobBuilder,btoa:(function(){let t=globalThis.btoa||function(e){let n="",o=0,i=e.length,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",l,s,d,h,x,k,m;for(;o<i;)l=e.charCodeAt(o++),s=e.charCodeAt(o++),d=e.charCodeAt(o++),h=l>>2,x=(l&3)<<4|s>>4,k=(s&15)<<2|d>>6,m=d&63,Number.isNaN(s)?k=m=64:Number.isNaN(d)&&(m=64),n=n+a.charAt(h)+a.charAt(x)+a.charAt(k)+a.charAt(m);return n};return t?t.bind(globalThis):r.noop})(),isObject:function(e){return e&&Object.prototype.toString.call(e)==="[object Object]"},isEmptyObject:function(e){return r.isObject(e)&&!Object.keys(e).length},isArray:function(e){return e&&Array.isArray(e)},isFunction:function(e){return e&&typeof e=="function"},isElement:function(e){return e&&e.nodeType===1},isImageBitmap:function(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap},isDrawable:function(e){return r.isElement(e)||r.isImageBitmap(e)},isString:function(e){return typeof e=="string"||Object.prototype.toString.call(e)==="[object String]"},isSupported:{canvas:function(){let e=j.createElement("canvas");return e&&e.getContext&&e.getContext("2d")},webworkers:function(){return globalThis.Worker},blob:function(){return r.Blob},Uint8Array:function(){return globalThis.Uint8Array},Uint32Array:function(){return globalThis.Uint32Array},videoCodecs:(function(){let t=j.createElement("video"),e={mp4:!1,h264:!1,ogv:!1,ogg:!1,webm:!1};try{t&&t.canPlayType&&(e.mp4=t.canPlayType('video/mp4; codecs="mp4v.20.8"')!=="",e.h264=(t.canPlayType('video/mp4; codecs="avc1.42E01E"')||t.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'))!=="",e.ogv=t.canPlayType('video/ogg; codecs="theora"')!=="",e.ogg=t.canPlayType('video/ogg; codecs="theora"')!=="",e.webm=t.canPlayType('video/webm; codecs="vp8, vorbis"')!==-1)}catch{}return e})()},noop:function(){},each:function(e,n){let o,i;if(r.isArray(e))for(o=-1,i=e.length;++o<i&&n(o,e[o])!==!1;);else if(r.isObject(e)){for(o in e)if(e.hasOwnProperty(o)&&n(o,e[o])===!1)break}},normalizeOptions:function(e,n){if(!r.isObject(e)||!r.isObject(n)||!Object.keys)return;let o={};return r.each(e,function(i,a){o[i]=e[i]}),r.each(n,function(i,a){let l=n[i];r.isObject(l)&&e[i]?o[i]=r.normalizeOptions(e[i],l):o[i]=l}),o},setCSSAttr:function(e,n,o){r.isElement(e)&&(r.isString(n)&&r.isString(o)?e.style[n]=o:r.isObject(n)&&r.each(n,function(i,a){e.style[i]=a}))},removeElement:function(e){r.isElement(e)&&e.parentNode&&e.parentNode.removeChild(e)},createWebWorker:function(e){if(!r.isString(e))return{};try{let n=new r.Blob([e],{type:"text/javascript"}),o=r.URL.createObjectURL(n),i=new Worker(o);return{objectUrl:o,worker:i}}catch(n){return`${n}`}},getExtension:function(e){return e.substr(e.lastIndexOf(".")+1,e.length)},getFontSize:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!j.body||e.resizeFont===!1)return e.fontSize;let n=e.text,o=e.gifWidth,i=parseInt(e.fontSize,10),a=parseInt(e.minFontSize,10),l=j.createElement("div"),s=j.createElement("span");for(l.setAttribute("width",o),l.appendChild(s),s.innerHTML=n,s.style.fontSize=`${i}px`,s.style.textIndent="-9999px",s.style.visibility="hidden",j.body.appendChild(s);s.offsetWidth>o&&i>=a;)s.style.fontSize=`${--i}px`;return j.body.removeChild(s),`${i}px`},webWorkerError:!1},et=Object.freeze({default:r}),q={validate:function(e){e=r.isObject(e)?e:{};let n={};return r.each(q.validators,function(o,i){let a=i.errorCode;if(!e[a]&&!i.condition)return n=i,n.error=!0,!1}),delete n.condition,n},isValid:function(e){return q.validate(e).error!==!0},validators:[{condition:r.isFunction(r.getUserMedia),errorCode:"getUserMedia",errorMsg:"The getUserMedia API is not supported in your browser"},{condition:r.isSupported.canvas(),errorCode:"canvas",errorMsg:"Canvas elements are not supported in your browser"},{condition:r.isSupported.webworkers(),errorCode:"webworkers",errorMsg:"The Web Workers API is not supported in your browser"},{condition:r.isFunction(r.URL),errorCode:"globalThis.URL",errorMsg:"The globalThis.URL API is not supported in your browser"},{condition:r.isSupported.blob(),errorCode:"globalThis.Blob",errorMsg:"The globalThis.Blob File API is not supported in your browser"},{condition:r.isSupported.Uint8Array(),errorCode:"globalThis.Uint8Array",errorMsg:"The globalThis.Uint8Array function constructor is not supported in your browser"},{condition:r.isSupported.Uint32Array(),errorCode:"globalThis.Uint32Array",errorMsg:"The globalThis.Uint32Array function constructor is not supported in your browser"}],messages:{videoCodecs:{errorCode:"videocodec",errorMsg:"The video codec you are trying to use is not supported in your browser"}}},tt=Object.freeze({default:q}),Oe=function(){},Fe={sampleInterval:10,numWorkers:2,filter:"",gifWidth:200,gifHeight:200,interval:.1,numFrames:10,frameDuration:1,keepCameraOn:!1,images:[],video:null,webcamVideoElement:null,cameraStream:null,text:"",fontWeight:"normal",fontSize:"16px",minFontSize:"10px",resizeFont:!1,fontFamily:"sans-serif",fontColor:"#ffffff",textAlign:"center",textBaseline:"bottom",textXCoordinate:null,textYCoordinate:null,progressCallback:Oe,completeCallback:Oe,saveRenderingContexts:!1,savedRenderingContexts:[],crossOrigin:"Anonymous"},it=Object.freeze({default:Fe});function nt(){return q.isValid()}function Ue(){return q.isValid()}function ot(){let t={getUserMedia:!0};return q.isValid(t)}function rt(t){let e=!1;if(r.isArray(t)&&t.length){if(r.each(t,function(n,o){r.isSupported.videoCodecs[o]&&(e=!0)}),!e)return!1}else if(r.isString(t)&&t.length&&!r.isSupported.videoCodecs[t])return!1;return q.isValid({getUserMedia:!0})}function _e(){let M,H,D,X,F,P=[],Q=[],K=[],J=[];function he(u,p,W){let g,b;for(H=u,D=p,X=W,F=new Array(256),g=0;g<256;g++)F[g]=new Array(4),b=F[g],b[0]=b[1]=b[2]=(g<<12)/256|0,K[g]=65536/256|0,Q[g]=0}function pe(){let u=[],p=new Array(256);for(let g=0;g<256;g++)p[F[g][3]]=g;let W=0;for(let g=0;g<256;g++){let b=p[g];u[W++]=F[b][0],u[W++]=F[b][1],u[W++]=F[b][2]}return u}function ee(){let u,p,W,g,b,c,f,S;for(f=0,S=0,u=0;u<256;u++){for(b=F[u],W=u,g=b[1],p=u+1;p<256;p++)c=F[p],c[1]<g&&(W=p,g=c[1]);if(c=F[W],u!==W&&(p=c[0],c[0]=b[0],b[0]=p,p=c[1],c[1]=b[1],b[1]=p,p=c[2],c[2]=b[2],b[2]=p,p=c[3],c[3]=b[3],b[3]=p),g!==f){for(P[f]=S+u>>1,p=f+1;p<g;p++)P[p]=u;f=g,S=u}}for(P[f]=S+255>>1,p=f+1;p<256;p++)P[p]=255}function te(){let u,p,W,g,b,c,f,S,T,V,$,I,G,ke;for(D<1509&&(X=1),M=30+(X-1)/3,I=H,G=0,ke=D,$=D/(3*X),V=$/100|0,S=1024,c=2048,f=c>>6,f<=1&&(f=0),u=0;u<f;u++)J[u]=S*((f*f-u*u)*256/(f*f));for(D<1509?T=3:D%499!==0?T=3*499:D%491!==0?T=3*491:D%487!==0?T=3*487:T=3*503,u=0;u<$;)if(W=(I[G+0]&255)<<4,g=(I[G+1]&255)<<4,b=(I[G+2]&255)<<4,p=le(W,g,b),ae(S,p,W,g,b),f!==0&&oe(f,p,W,g,b),G+=T,G>=ke&&(G-=D),u++,V===0&&(V=1),u%V===0)for(S-=S/M,c-=c/30,f=c>>6,f<=1&&(f=0),p=0;p<f;p++)J[p]=S*((f*f-p*p)*256/(f*f))}function ie(u,p,W){let g,b,c,f,S,T,V;for(S=1e3,V=-1,g=P[p],b=g-1;g<256||b>=0;)g<256&&(T=F[g],c=T[1]-p,c>=S?g=256:(g++,c<0&&(c=-c),f=T[0]-u,f<0&&(f=-f),c+=f,c<S&&(f=T[2]-W,f<0&&(f=-f),c+=f,c<S&&(S=c,V=T[3])))),b>=0&&(T=F[b],c=p-T[1],c>=S?b=-1:(b--,c<0&&(c=-c),f=T[0]-u,f<0&&(f=-f),c+=f,c<S&&(f=T[2]-W,f<0&&(f=-f),c+=f,c<S&&(S=c,V=T[3]))));return V}function ne(){return te(),be(),ee(),pe()}function be(){let u,p;for(u=0;u<256;u++)F[u][0]>>=4,F[u][1]>>=4,F[u][2]>>=4,F[u][3]=u}function oe(u,p,W,g,b){let c,f,S,T,V,$,I;for(S=p-u,S<-1&&(S=-1),T=p+u,T>256&&(T=256),c=p+1,f=p-1,$=1;c<T||f>S;){if(V=J[$++],c<T){I=F[c++];try{I[0]-=V*(I[0]-W)/262144|0,I[1]-=V*(I[1]-g)/262144|0,I[2]-=V*(I[2]-b)/262144|0}catch{}}if(f>S){I=F[f--];try{I[0]-=V*(I[0]-W)/262144|0,I[1]-=V*(I[1]-g)/262144|0,I[2]-=V*(I[2]-b)/262144|0}catch{}}}}function ae(u,p,W,g,b){let c=F[p],f=u/1024;c[0]-=f*(c[0]-W)|0,c[1]-=f*(c[1]-g)|0,c[2]-=f*(c[2]-b)|0}function le(u,p,W){let g,b,c,f,S,T,V,$,I,G;for($=~(1<<31),I=$,T=-1,V=T,g=0;g<256;g++)G=F[g],b=G[0]-u,b<0&&(b=-b),c=G[1]-p,c<0&&(c=-c),b+=c,c=G[2]-W,c<0&&(c=-c),b+=c,b<$&&($=b,T=g),f=b-(Q[g]>>12),f<I&&(I=f,V=g),S=K[g]>>10,K[g]-=S,Q[g]+=S<<10;return K[T]+=64,Q[T]-=65536,V}he.apply(this,arguments);let Z={};return Z.map=ie,Z.process=ne,Z}function Re(){let t=this;try{globalThis.onmessage=function(n){let o=n.data||{},i;o.gifshot&&(i=e.run(o),postMessage(i))}}catch{}var e={dataToRGB:function(o,i,a){let l=i*a*4,s=0,d=[];for(;s<l;)d.push(o[s++]),d.push(o[s++]),d.push(o[s++]),s++;return d},componentizedPaletteToArray:function(o){o=o||[];let i=[];for(let a=0;a<o.length;a+=3){let l=o[a],s=o[a+1],d=o[a+2];i.push(l<<16|s<<8|d)}return i},processFrameWithQuantizer:function(o,i,a,l){let s=this.dataToRGB(o,i,a),d=new _e(s,s.length,l),h=d.process(),x=new Uint32Array(this.componentizedPaletteToArray(h)),k=i*a,m=new Uint8Array(k),v=0;for(let w=0;w<k;w++){let E=s[v++],y=s[v++],C=s[v++];m[w]=d.map(E,y,C)}return{pixels:m,palette:x}},run:function(o){o=o||{};let i=o,a=i.height,l=i.palette,s=i.sampleInterval,d=i.width,h=o.data;return this.processFrameWithQuantizer(h,d,a,s)}};return e}function st(t,e,n,o){let i=0;o=o===void 0?{}:o;let a=o.loop===void 0?null:o.loop,l=o.palette===void 0?null:o.palette;if(e<=0||n<=0||e>65535||n>65535)throw"Width/Height invalid.";function s(m){let v=m.length;if(v<2||v>256||v&v-1)throw"Invalid code/color length, must be power of 2 and 2 .. 256.";return v}t[i++]=71,t[i++]=73,t[i++]=70,t[i++]=56,t[i++]=57,t[i++]=97;let d=0,h=0;if(t[i++]=e&255,t[i++]=e>>8&255,t[i++]=n&255,t[i++]=n>>8&255,t[i++]=(l!==null?128:0)|d,t[i++]=h,t[i++]=0,a!==null){if(a<0||a>65535)throw"Loop count invalid.";t[i++]=33,t[i++]=255,t[i++]=11,t[i++]=78,t[i++]=69,t[i++]=84,t[i++]=83,t[i++]=67,t[i++]=65,t[i++]=80,t[i++]=69,t[i++]=50,t[i++]=46,t[i++]=48,t[i++]=3,t[i++]=1,t[i++]=a&255,t[i++]=a>>8&255,t[i++]=0}let x=!1;this.addFrame=function(m,v,w,E,y,C){if(x===!0&&(--i,x=!1),C=C===void 0?{}:C,m<0||v<0||m>65535||v>65535)throw"x/y invalid.";if(w<=0||E<=0||w>65535||E>65535)throw"Width/Height invalid.";if(y.length<w*E)throw"Not enough pixels for the frame size.";let A=!0,z=C.palette;if(z==null&&(A=!1,z=l),z==null)throw"Must supply either a local or global palette.";let O=s(z),U=0;for(O>>=1;O;)++U,O>>=1;O=1<<U;let R=C.delay===void 0?0:C.delay,M=C.disposal===void 0?0:C.disposal;if(M<0||M>3)throw"Disposal out of range.";let Y=!1,_=0;if(C.transparent!==void 0&&C.transparent!==null&&(Y=!0,_=C.transparent,_<0||_>=O))throw"Transparent color index.";if((M!==0||Y||R!==0)&&(t[i++]=33,t[i++]=249,t[i++]=4,t[i++]=M<<2|(Y===!0?1:0),t[i++]=R&255,t[i++]=R>>8&255,t[i++]=_,t[i++]=0),t[i++]=44,t[i++]=m&255,t[i++]=m>>8&255,t[i++]=v&255,t[i++]=v>>8&255,t[i++]=w&255,t[i++]=w>>8&255,t[i++]=E&255,t[i++]=E>>8&255,t[i++]=A===!0?128|U-1:0,A===!0)for(let L=0,N=z.length;L<N;++L){let H=z[L];t[i++]=H>>16&255,t[i++]=H>>8&255,t[i++]=H&255}i=k(t,i,U<2?2:U,y)},this.end=function(){return x===!1&&(t[i++]=59,x=!0),i};function k(m,v,w,E){m[v++]=w;let y=v++,C=1<<w,A=C-1,z=C+1,O=z+1,U=w+1,R=0,M=0;function Y(H){for(;R>=H;)m[v++]=M&255,M>>=8,R-=8,v===y+256&&(m[y]=255,y=v++)}function _(H){M|=H<<R,R+=U,Y(8)}let L=E[0]&A,N={};_(C);for(let H=1,D=E.length;H<D;++H){let X=E[H]&A,F=L<<8|X,P=N[F];if(P===void 0){for(M|=L<<R,R+=U;R>=8;)m[v++]=M&255,M>>=8,R-=8,v===y+256&&(m[y]=255,y=v++);O===4096?(_(C),O=z+1,U=w+1,N={}):(O>=1<<U&&++U,N[F]=O++),L=X}else L=P}return _(L),_(z),Y(1),y+1===v?m[y]=0:(m[y]=v-y-1,m[v++]=0),v}}var Me=function(){},Se=function(e){this.canvas=null,this.ctx=null,this.repeat=0,this.frames=[],this.numRenderedFrames=0,this.onRenderCompleteCallback=Me,this.onRenderProgressCallback=Me,this.workers=[],this.availableWorkers=[],this.generatingGIF=!1,this.options=e,this.initializeWebWorkers(e)};Se.prototype={workerMethods:Re(),initializeWebWorkers:function(e){let n=this,o=`${_e.toString()}(${Re.toString()}());`,i,a,l,s,d=-1,h="";for(s=e.numWorkers;++d<s;)i=r.createWebWorker(o),r.isObject(i)?(a=i.objectUrl,l=i.worker,n.workers.push({worker:l,objectUrl:a}),n.availableWorkers.push(l)):(h=i,r.webWorkerError=!!i);this.workerError=h,this.canvas=j.createElement("canvas"),this.canvas.width=e.gifWidth,this.canvas.height=e.gifHeight,this.ctx=this.canvas.getContext("2d"),this.frames=[]},getWorker:function(){return this.availableWorkers.pop()},freeWorker:function(e){this.availableWorkers.push(e)},byteMap:(function(){let t=[];for(let e=0;e<256;e++)t[e]=String.fromCharCode(e);return t})(),bufferToString:function(e){let n=e.length,o="",i=-1;for(;++i<n;)o+=this.byteMap[e[i]];return o},onFrameFinished:function(e){let n=this,o=n.frames,a=!!(n.options.images||[]).length,l=o.every(function(s){return!s.beingProcessed&&s.done});n.numRenderedFrames++,a&&e(n.numRenderedFrames/o.length),n.onRenderProgressCallback(n.numRenderedFrames*.75/o.length),l?n.generatingGIF||n.generateGIF(o,n.onRenderCompleteCallback):r.requestTimeout(function(){n.processNextFrame()},1)},processFrame:function(e){let n=this,o=this.options,i=o.progressCallback,a=o.sampleInterval,l=this.frames,s,d,h=function(){let m=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).data;delete s.data,s.pixels=Array.prototype.slice.call(m.pixels),s.palette=Array.prototype.slice.call(m.palette),s.done=!0,s.beingProcessed=!1,n.freeWorker(d),n.onFrameFinished(i)};if(s=l[e],s.beingProcessed||s.done){this.onFrameFinished();return}s.sampleInterval=a,s.beingProcessed=!0,s.gifshot=!0,d=this.getWorker(),d?(d.onmessage=h,d.postMessage(s)):h({data:n.workerMethods.run(s)})},startRendering:function(e){this.onRenderCompleteCallback=e;for(let n=0;n<this.options.numWorkers&&n<this.frames.length;n++)this.processFrame(n)},processNextFrame:function(){let e=-1;for(let n=0;n<this.frames.length;n++){let o=this.frames[n];if(!o.done&&!o.beingProcessed){e=n;break}}e>=0&&this.processFrame(e)},generateGIF:function(e,n){let o=[],i={loop:this.repeat},a=this.options,l=a.interval,s=a.frameDuration,h=!!a.images.length,x=a.gifHeight,k=a.gifWidth,m=new st(o,k,x,i),v=this.onRenderProgressCallback,w=h?l*100:0,E,y;this.generatingGIF=!0,r.each(e,function(C,A){let z=A.palette;v(.75+.25*A.position*1/e.length);for(let O=0;O<s;O++)m.addFrame(0,0,k,x,A.pixels,{palette:z,delay:w})}),m.end(),v(1),this.frames=[],this.generatingGIF=!1,r.isFunction(n)&&(E=this.bufferToString(o),y=`data:image/gif;base64,${r.btoa(E)}`,n(y))},setRepeat:function(e){this.repeat=e},addFrame:function(e,n){n=r.isObject(n)?n:{};let o=this,i=o.ctx,a=o.options,l=a.gifWidth,s=a.gifHeight,d=r.getFontSize(n),h=n,x=h.filter,k=h.fontColor,m=h.fontFamily,v=h.fontWeight,w=h.gifHeight,E=h.gifWidth,y=h.text,C=h.textAlign,A=h.textBaseline,z=n.textXCoordinate?n.textXCoordinate:C==="left"?1:C==="right"?l:l/2,O=n.textYCoordinate?n.textYCoordinate:A==="top"?1:A==="center"?s/2:s,U=`${v} ${d} ${m}`,R;try{i.filter=x,i.drawImage(e,0,0,l,s),y&&(i.font=U,i.fillStyle=k,i.textAlign=C,i.textBaseline=A,i.fillText(y,z,O)),R=i.getImageData(0,0,l,s),o.addFrameImageData(R)}catch(M){return`${M}`}},addFrameImageData:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=this.frames,o=e.data;this.frames.push({data:o,width:e.width,height:e.height,palette:null,dithering:null,done:!1,beingProcessed:!1,position:n.length})},onRenderProgress:function(e){this.onRenderProgressCallback=e},isRendering:function(){return this.generatingGIF},getBase64GIF:function(e){let n=this,o=function(a){n.destroyWorkers(),r.requestTimeout(function(){e(a)},0)};n.startRendering(o)},destroyWorkers:function(){if(this.workerError)return;let e=this.workers;r.each(e,function(n,o){let i=o.worker,a=o.objectUrl;i.terminate(),r.URL.revokeObjectURL(a)})}};function at(t,e){t.getBase64GIF(function(n){e({error:!1,errorCode:"",errorMsg:"",image:n})})}function lt(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=this,n=t.callback,o=t.images,i=t.options,a=t.imagesLength,l={getUserMedia:!0,"globalThis.URL":!0},s=q.validate(l),d=[],h=0,x,k;if(s.error)return n(s);k=new Se(i),r.each(o,function(v,w){let E=w;r.isDrawable(E)?(i.crossOrigin&&(E.crossOrigin=i.crossOrigin),d[v]=E,h+=1,h===a&&m()):r.isString(E)&&(x=new Image,i.crossOrigin&&(x.crossOrigin=i.crossOrigin),(function(y){w.text&&(y.text=w.text),y.onerror=function(C){let A;if(--a,a===0)return A={},A.error="None of the requested images was capable of being retrieved",n(A)},y.onload=function(C){w.text?d[v]={img:y,text:y.text}:d[v]=y,h+=1,h===a&&m(),r.removeElement(y)},y.src=E})(x),r.setCSSAttr(x,{position:"fixed",opacity:"0"}),j.body.appendChild(x))});function m(){r.each(d,function(v,w){w&&(w.text?k.addFrame(w.img,i,w.text):k.addFrame(w,i))}),at(k,n)}}var ct=function(){},Ce={getGIF:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments[1];n=r.isFunction(n)?n:ct;let o=j.createElement("canvas"),i,l=!!e.images.length,s=e.cameraStream,d=e.crop,h=e.filter,x=e.fontColor,k=e.fontFamily,m=e.fontWeight,v=e.keepCameraOn,w=e.numWorkers,E=e.progressCallback,y=e.saveRenderingContexts,C=e.savedRenderingContexts,A=e.text,z=e.textAlign,O=e.textBaseline,U=e.videoElement,R=e.videoHeight,M=e.videoWidth,Y=e.webcamVideoElement,_=Number(e.gifWidth),L=Number(e.gifHeight),N=Number(e.interval),H=Number(e.sampleInterval),D=l?0:N*1e3,X=[],F=C.length?C.length:e.numFrames,P=F,Q=new Se(e),K=r.getFontSize(e),J=e.textXCoordinate?e.textXCoordinate:z==="left"?1:z==="right"?_:_/2,he=e.textYCoordinate?e.textYCoordinate:O==="top"?1:O==="center"?L/2:L,pe=`${m} ${K} ${k}`,ee=d?Math.floor(d.scaledWidth/2):0,te=d?M-d.scaledWidth:0,ie=d?Math.floor(d.scaledHeight/2):0,ne=d?R-d.scaledHeight:0,be=function oe(){let ae=P-1;C.length?(i.putImageData(C[F-P],0,0),Z()):le();function le(){try{te>M&&(te=M),ne>R&&(ne=R),ee<0&&(ee=0),ie<0&&(ie=0),i.filter=h,i.drawImage(U,ee,ie,te,ne,0,0,_,L),Z()}catch(u){if(u.name==="NS_ERROR_NOT_AVAILABLE")r.requestTimeout(le,100);else throw u}}function Z(){let u;y&&X.push(i.getImageData(0,0,_,L)),A&&(i.font=pe,i.fillStyle=x,i.textAlign=z,i.textBaseline=O,i.fillText(A,J,he)),u=i.getImageData(0,0,_,L),Q.addFrameImageData(u),P=ae,E((F-P)/F),ae>0&&r.requestTimeout(oe,D),P||Q.getBase64GIF(function(p){n({error:!1,errorCode:"",errorMsg:"",image:p,cameraStream:s,videoElement:U,webcamVideoElement:Y,savedRenderingContexts:X,keepCameraOn:v})})}};F=F!==void 0?F:10,N=N!==void 0?N:.1,o.width=_,o.height=L,i=o.getContext("2d"),(function oe(){if(!C.length&&U.currentTime===0){r.requestTimeout(oe,100);return}be()})()},getCropDimensions:function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.videoWidth,o=e.videoHeight,i=e.gifWidth,a=e.gifHeight,l={width:0,height:0,scaledWidth:0,scaledHeight:0};return n>o?(l.width=Math.round(n*(a/o))-i,l.scaledWidth=Math.round(l.width*(o/a))):(l.height=Math.round(o*(i/n))-a,l.scaledHeight=Math.round(l.height*(n/i))),l}},B={loadedData:!1,defaultVideoDimensions:{width:640,height:480},findVideoSize:function t(e){t.attempts=t.attempts||0;let n=e.cameraStream,o=e.completedCallback,i=e.videoElement;i&&(i.videoWidth>0&&i.videoHeight>0?(i.removeEventListener("loadeddata",B.findVideoSize),o({videoElement:i,cameraStream:n,videoWidth:i.videoWidth,videoHeight:i.videoHeight})):t.attempts<10?(t.attempts+=1,r.requestTimeout(function(){B.findVideoSize(e)},400)):o({videoElement:i,cameraStream:n,videoWidth:B.defaultVideoDimensions.width,videoHeight:B.defaultVideoDimensions.height}))},onStreamingTimeout:function(e){r.isFunction(e)&&e({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - Timed out while trying to start streaming",image:null,cameraStream:{}})},stream:function(e){let n=r.isArray(e.existingVideo)?e.existingVideo[0]:e.existingVideo,o=e.cameraStream,i=e.completedCallback,a=e.streamedCallback,l=e.videoElement;if(r.isFunction(a)&&a(),n){if(r.isString(n))l.src=n,l.innerHTML=`<source src="${n}" type="video/${r.getExtension(n)}" />`;else if(n instanceof Blob){try{l.src=r.URL.createObjectURL(n)}catch{}l.innerHTML=`<source src="${n}" type="${n.type}" />`}}else if(l.mozSrcObject)l.mozSrcObject=o;else if(r.URL)try{l.srcObject=o,l.src=r.URL.createObjectURL(o)}catch{l.srcObject=o}l.play(),r.requestTimeout(function s(){s.count=s.count||0,B.loadedData===!0?(B.findVideoSize({videoElement:l,cameraStream:o,completedCallback:i}),B.loadedData=!1):(s.count+=1,s.count>10?B.findVideoSize({videoElement:l,cameraStream:o,completedCallback:i}):s())},0)},startStreaming:function(e){let n=r.isFunction(e.error)?e.error:r.noop,o=r.isFunction(e.streamed)?e.streamed:r.noop,i=r.isFunction(e.completed)?e.completed:r.noop,a=e.crossOrigin,l=e.existingVideo,s=e.lastCameraStream,d=e.options,h=e.webcamVideoElement,x=r.isElement(l)?l:h||j.createElement("video"),k=void 0;a&&(x.crossOrigin=d.crossOrigin),x.autoplay=!0,x.loop=!0,x.muted=!0,x.addEventListener("loadeddata",function(m){B.loadedData=!0,d.offset&&(x.currentTime=d.offset)}),l?B.stream({videoElement:x,existingVideo:l,completedCallback:i}):s?B.stream({videoElement:x,cameraStream:s,streamedCallback:o,completedCallback:i}):r.getUserMedia({video:!0},function(m){B.stream({videoElement:x,cameraStream:m,streamedCallback:o,completedCallback:i})},n)},startVideoStreaming:function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=n.timeout!==void 0?n.timeout:0,i=n.callback,a=n.webcamVideoElement,l;o>0&&(l=r.requestTimeout(function(){B.onStreamingTimeout(i)},1e4)),B.startStreaming({error:function(){i({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - the user probably denied permission",image:null,cameraStream:{}})},streamed:function(){clearTimeout(l)},completed:function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},h=d.cameraStream,x=d.videoElement,k=d.videoHeight,m=d.videoWidth;e({cameraStream:h,videoElement:x,videoHeight:k,videoWidth:m})},lastCameraStream:n.lastCameraStream,webcamVideoElement:a,crossOrigin:n.crossOrigin,options:n})},stopVideoStreaming:function(e){e=r.isObject(e)?e:{};let n=e,o=n.keepCameraOn,i=n.videoElement,a=n.webcamVideoElement,l=e.cameraStream||{},s=l.getTracks?l.getTracks()||[]:[],d=!!s.length,h=s[0];!o&&d&&r.isFunction(h.stop)&&h.stop(),r.isElement(i)&&!a&&(i.pause(),r.isFunction(r.URL.revokeObjectURL)&&!r.webWorkerError&&i.src&&r.URL.revokeObjectURL(i.src),r.removeElement(i))}};function Le(t){t=r.isObject(t)?t:{},B.stopVideoStreaming(t)}function Be(t,e){let n=t.options||{},o=n.images,i=n.video,a=Number(n.gifWidth),l=Number(n.gifHeight),s=Number(n.numFrames),d=t.cameraStream,h=t.videoElement,x=t.videoWidth,k=t.videoHeight,m=Ce.getCropDimensions({videoWidth:x,videoHeight:k,gifHeight:l,gifWidth:a}),v=e;n.crop=m,n.videoElement=h,n.videoWidth=x,n.videoHeight=k,n.cameraStream=d,r.isElement(h)&&(h.width=a+m.width,h.height=l+m.height,n.webcamVideoElement||(r.setCSSAttr(h,{position:"fixed",opacity:"0"}),j.body.appendChild(h)),h.play(),Ce.getGIF(n,function(w){(!o||!o.length)&&(!i||!i.length)&&Le(w),v(w)}))}function dt(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.callback,n=t.existingVideo,o=t.options,i={getUserMedia:!0,"globalThis.URL":!0},a=q.validate(i),l=0,s,d,h=void 0,x=void 0;if(a.error)return e(a);if(r.isElement(n)&&n.src){if(d=n.src,s=r.getExtension(d),!r.isSupported.videoCodecs[s])return e(q.messages.videoCodecs)}else r.isArray(n)&&r.each(n,function(k,m){if(m instanceof Blob?s=m.type.substr(m.type.lastIndexOf("/")+1,m.length):s=m.substr(m.lastIndexOf(".")+1,m.length),r.isSupported.videoCodecs[s])return n=m,!1});B.startStreaming({completed:function(m){m.options=o||{},Be(m,e)},existingVideo:n,crossOrigin:o.crossOrigin,options:o})}function ft(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=t.callback,n=t.lastCameraStream,o=t.options,i=t.webcamVideoElement;if(!Ue())return e(q.validate());if(o.savedRenderingContexts.length){Ce.getGIF(o,function(a){e(a)});return}B.startVideoStreaming(function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};a.options=o||{},Be(a,e)},{lastCameraStream:n,callback:e,webcamVideoElement:i,crossOrigin:o.crossOrigin})}function He(t,e){if(e=r.isFunction(t)?t:e,t=r.isObject(t)?t:{},!r.isFunction(e))return;let n=r.normalizeOptions(Fe,t)||{},o=t.cameraStream,i=n.images,a=i?i.length:0,l=n.video,s=n.webcamVideoElement;n=r.normalizeOptions(n,{gifWidth:Math.floor(n.gifWidth),gifHeight:Math.floor(n.gifHeight)}),a?lt({images:i,imagesLength:a,callback:e,options:n}):l?dt({existingVideo:l,callback:e,options:n}):ft({lastCameraStream:o,callback:e,webcamVideoElement:s,options:n})}function mt(t,e){if(e=r.isFunction(t)?t:e,t=r.isObject(t)?t:{},!r.isFunction(e))return;let n=r.normalizeOptions(Fe,t),o=r.normalizeOptions(n,{interval:.1,numFrames:1,gifWidth:Math.floor(n.gifWidth),gifHeight:Math.floor(n.gifHeight)});He(o,e)}var ut={utils:et,error:tt,defaultOptions:it,createGIF:He,takeSnapShot:mt,stopVideoStreaming:Le,isSupported:nt,isWebCamGIFSupported:Ue,isExistingVideoGIFSupported:rt,isExistingImagesGIFSupported:ot,VERSION:"0.4.5"},Pe=ut;var gt={source:"images",width:200,height:200,crossOrigin:"Anonymous",progressCallback:t=>{},completeCallback:()=>{},numWorkers:2,sampleInterval:10,interval:.1,offset:null,numFrames:10,frameDuration:1,filter:"",waterMark:null,waterMarkHeight:null,waterMarkWidth:null,waterMarkXCoordinate:1,waterMarkYCoordinate:1,text:"",showFrameText:!0,fontWeight:"normal",fontSize:"16px",minFontSize:"10px",resizeFont:!1,fontFamily:"sans-serif",fontColor:"#ffffff",textAlign:"center",textBaseline:"bottom",textXCoordinate:null,textYCoordinate:null,webcamVideoElement:null,keepCameraOn:!1,cameraStream:null,saveRenderingContexts:!1,savedRenderingContexts:[]},re=class t{static get properties(){return{id:"gif",name:"GIF",extensions:["gif"],mimeTypes:["image/gif"],builder:t,options:gt}}constructor(e){this.options={...e},this.source=e.source,delete e.source,this.files=[],this.gifshot=Pe}async initialize(e){}async add(e){await this.initialize(),this.files.push(e)}async build(){switch(await this.initialize(),this._cleanOptions(this.options),this.source){case"images":this.options.images=this.files;break;case"video":this.options.video=this.files;break;case"webcam":Ve(this.files.length===0);break;default:throw new Error("GIFBuilder: invalid source")}return await this._createGIF()}async _createGIF(){return new Promise((e,n)=>{this.gifshot.createGIF(this.options,o=>{if(o.error){n(o.errorMsg);return}e(o.image)})})}_cleanOptions(e){(e.video||e.images||e.gifWidth||e.gifHeight)&&console.warn("GIFBuilder: ignoring options"),delete e.video,delete e.images,e.gifWidth=e.width,e.gifHeight=e.height,delete e.width,delete e.height}};return Ye(se);})();
8
8
  return __exports__;
9
9
  });
@@ -10,7 +10,7 @@ export default class GIFBuilder {
10
10
  width: number;
11
11
  height: number;
12
12
  crossOrigin: string;
13
- progressCallback: (captureProgress: any) => void;
13
+ progressCallback: (_captureProgress: any) => void;
14
14
  completeCallback: () => void;
15
15
  numWorkers: number;
16
16
  sampleInterval: number;
@@ -12,7 +12,7 @@ const GIF_BUILDER_OPTIONS = {
12
12
  height: 200, // Desired height of the image
13
13
  crossOrigin: 'Anonymous', // Options are 'Anonymous', 'use-credentials', or a falsy value to not set a CORS attribute.
14
14
  // CALLBACKS
15
- progressCallback: (captureProgress) => { }, // Callback that provides the current progress of the current image
15
+ progressCallback: _captureProgress => { }, // Callback that provides the current progress of the current image
16
16
  completeCallback: () => { }, // Callback function that is called when the current image is completed
17
17
  // QUALITY SETTINGS
18
18
  numWorkers: 2, // how many web workers to use to process the animated GIF frames. Default is 2.
@@ -100,7 +100,7 @@ export default class GIFBuilder {
100
100
  // PRIVATE
101
101
  async _createGIF() {
102
102
  return new Promise((resolve, reject) => {
103
- this.gifshot.createGIF(this.options, (result) => {
103
+ this.gifshot.createGIF(this.options, result => {
104
104
  // callback object properties
105
105
  // --------------------------
106
106
  // image - Base 64 image
@@ -1 +1 @@
1
- {"version":3,"file":"gif-builder.js","sourceRoot":"","sources":["../src/gif-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gif-builder.js","sourceRoot":"","sources":["../src/gif-builder.ts"],"names":[],"mappings":"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"}