@remotion/gif 4.0.0-lambda.3 → 4.0.0-newpathfunctions.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -8
- package/dist/Gif.d.ts +1 -2
- package/dist/Gif.js +2 -1
- package/dist/GifForDevelopment.d.ts +1 -1
- package/dist/GifForDevelopment.js +59 -20
- package/dist/GifForRendering.d.ts +1 -1
- package/dist/GifForRendering.js +66 -21
- package/dist/canvas.d.ts +13 -0
- package/dist/canvas.js +96 -0
- package/dist/get-gif-duration-in-seconds.d.ts +1 -0
- package/dist/get-gif-duration-in-seconds.js +30 -0
- package/dist/gif-cache.d.ts +4 -0
- package/dist/gif-cache.js +6 -0
- package/dist/gifuct/deinterlace.d.ts +4 -0
- package/dist/gifuct/deinterlace.js +26 -0
- package/dist/gifuct/index.d.ts +4 -0
- package/dist/gifuct/index.js +60 -0
- package/dist/gifuct/lzw.d.ts +5 -0
- package/dist/gifuct/lzw.js +119 -0
- package/dist/gifuct/types.d.ts +96 -0
- package/dist/gifuct/types.js +2 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +7 -16
- package/dist/is-cors-error.d.ts +1 -0
- package/dist/is-cors-error.js +13 -0
- package/dist/parse-generate.d.ts +18 -0
- package/dist/parse-generate.js +96 -0
- package/dist/parser/decompress-frames.d.ts +2 -0
- package/dist/parser/decompress-frames.js +19 -0
- package/dist/preload-gif.d.ts +4 -0
- package/dist/preload-gif.js +37 -0
- package/dist/props.d.ts +4 -2
- package/dist/props.js +0 -0
- package/dist/react-tools.d.ts +9 -0
- package/dist/react-tools.js +39 -0
- package/dist/resolve-gif-source.d.ts +1 -0
- package/dist/resolve-gif-source.js +7 -0
- package/dist/use-element-size.d.ts +6 -0
- package/dist/use-element-size.js +73 -0
- package/dist/useCurrentGifIndex.d.ts +2 -2
- package/dist/useCurrentGifIndex.js +21 -14
- package/dist/worker/index.d.ts +1 -0
- package/dist/worker/index.js +12 -0
- package/dist/worker/source.d.ts +1 -0
- package/dist/worker/source.js +7 -0
- package/dist/worker/worker.d.ts +1 -0
- package/dist/worker/worker.js +39 -0
- package/package.json +11 -12
- package/dist/Gif.d.ts.map +0 -1
- package/dist/Gif.js.map +0 -1
- package/dist/GifForDevelopment.d.ts.map +0 -1
- package/dist/GifForDevelopment.js.map +0 -1
- package/dist/GifForRendering.d.ts.map +0 -1
- package/dist/GifForRendering.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/props.d.ts.map +0 -1
- package/dist/props.js.map +0 -1
- package/dist/useCurrentGifIndex.d.ts.map +0 -1
- package/dist/useCurrentGifIndex.js.map +0 -1
|
@@ -3,26 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useCurrentGifIndex = void 0;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const remotion_1 = require("remotion");
|
|
6
|
-
function useCurrentGifIndex(delays) {
|
|
6
|
+
function useCurrentGifIndex(delays, loopBehavior) {
|
|
7
7
|
const currentFrame = (0, remotion_1.useCurrentFrame)();
|
|
8
|
-
const videoConfig = remotion_1.
|
|
8
|
+
const videoConfig = (0, remotion_1.useVideoConfig)();
|
|
9
9
|
const duration = (0, react_1.useMemo)(() => {
|
|
10
10
|
if (delays.length !== 0) {
|
|
11
|
-
return delays.reduce((sum, delay) => sum + delay, 0);
|
|
11
|
+
return delays.reduce((sum, delay) => sum + (delay !== null && delay !== void 0 ? delay : 0), 0);
|
|
12
12
|
}
|
|
13
13
|
return 1;
|
|
14
14
|
}, [delays]);
|
|
15
|
-
|
|
16
|
-
if (videoConfig && delays.length !== 0) {
|
|
17
|
-
let currentTime = ((currentFrame / videoConfig.fps) * 1000) % duration;
|
|
18
|
-
for (const [i, delay] of delays.entries()) {
|
|
19
|
-
if (currentTime < delay)
|
|
20
|
-
return i;
|
|
21
|
-
currentTime -= delay;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
15
|
+
if (delays.length === 0) {
|
|
24
16
|
return 0;
|
|
25
|
-
}
|
|
26
|
-
|
|
17
|
+
}
|
|
18
|
+
const time = (currentFrame / videoConfig.fps) * 1000;
|
|
19
|
+
if (loopBehavior === 'pause-after-finish' && time >= duration) {
|
|
20
|
+
return delays.length - 1;
|
|
21
|
+
}
|
|
22
|
+
if (loopBehavior === 'unmount-after-finish' && time >= duration) {
|
|
23
|
+
return -1;
|
|
24
|
+
}
|
|
25
|
+
let currentTime = time % duration;
|
|
26
|
+
for (let i = 0; i < delays.length; i++) {
|
|
27
|
+
const delay = delays[i];
|
|
28
|
+
if (currentTime < delay) {
|
|
29
|
+
return i;
|
|
30
|
+
}
|
|
31
|
+
currentTime -= delay;
|
|
32
|
+
}
|
|
33
|
+
return 0;
|
|
27
34
|
}
|
|
28
35
|
exports.useCurrentGifIndex = useCurrentGifIndex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const makeWorker: () => Worker;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeWorker = void 0;
|
|
4
|
+
const source_1 = require("./source");
|
|
5
|
+
const makeWorker = () => {
|
|
6
|
+
const blob = new Blob([source_1.src], { type: 'application/javascript' });
|
|
7
|
+
const url = URL.createObjectURL(blob);
|
|
8
|
+
const worker = new Worker(url);
|
|
9
|
+
URL.revokeObjectURL(url);
|
|
10
|
+
return worker;
|
|
11
|
+
};
|
|
12
|
+
exports.makeWorker = makeWorker;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const src = "\"use strict\";(()=>{var N=Object.create;var j=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var T=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var re=(t,e,r,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of V(e))!ee.call(t,o)&&o!==r&&j(t,o,{get:()=>e[o],enumerable:!(n=Q(e,o))||n.enumerable});return t};var G=(t,e,r)=>(r=t!=null?N(Y(t)):{},re(e||!t||!t.__esModule?j(r,\"default\",{value:t,enumerable:!0}):r,t));var z=T(y=>{\"use strict\";Object.defineProperty(y,\"__esModule\",{value:!0});y.loop=y.conditional=y.parse=void 0;var te=function t(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:n;if(Array.isArray(r))r.forEach(function(a){return t(e,a,n,o)});else if(typeof r==\"function\")r(e,n,o,t);else{var i=Object.keys(r)[0];Array.isArray(r[i])?(o[i]={},t(e,r[i],n,o[i])):o[i]=r[i](e,n,o,t)}return n};y.parse=te;var ne=function(e,r){return function(n,o,i,a){r(n,o,i)&&a(n,e,o,i)}};y.conditional=ne;var ae=function(e,r){return function(n,o,i,a){for(var c=[],d=n.pos;r(n,o,i);){var u={};if(a(n,e,o,u),n.pos===d)break;d=n.pos,c.push(u)}return c}};y.loop=ae});var E=T(p=>{\"use strict\";Object.defineProperty(p,\"__esModule\",{value:!0});p.readBits=p.readArray=p.readUnsigned=p.readString=p.peekBytes=p.readBytes=p.peekByte=p.readByte=p.buildStream=void 0;var oe=function(e){return{data:e,pos:0}};p.buildStream=oe;var W=function(){return function(e){return e.data[e.pos++]}};p.readByte=W;var ie=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(r){return r.data[r.pos+e]}};p.peekByte=ie;var _=function(e){return function(r){return r.data.subarray(r.pos,r.pos+=e)}};p.readBytes=_;var se=function(e){return function(r){return r.data.subarray(r.pos,r.pos+e)}};p.peekBytes=se;var de=function(e){return function(r){return Array.from(_(e)(r)).map(function(n){return String.fromCharCode(n)}).join(\"\")}};p.readString=de;var ce=function(e){return function(r){var n=_(2)(r);return e?(n[1]<<8)+n[0]:(n[0]<<8)+n[1]}};p.readUnsigned=ce;var ue=function(e,r){return function(n,o,i){for(var a=typeof r==\"function\"?r(n,o,i):r,c=_(e),d=new Array(a),u=0;u<a;u++)d[u]=c(n);return d}};p.readArray=ue;var le=function(e,r,n){for(var o=0,i=0;i<n;i++)o+=e[r+i]&&Math.pow(2,n-i-1);return o},pe=function(e){return function(r){for(var n=W()(r),o=new Array(8),i=0;i<8;i++)o[7-i]=!!(n&1<<i);return Object.keys(e).reduce(function(a,c){var d=e[c];return d.length?a[c]=le(o,d.index,d.length):a[c]=o[d.index],a},{})}};p.readBits=pe});var K=T(I=>{\"use strict\";Object.defineProperty(I,\"__esModule\",{value:!0});I.default=void 0;var h=z(),s=E(),F={blocks:function(e){for(var r=0,n=[],o=e.data.length,i=0,a=(0,s.readByte)()(e);a!==r&&a;a=(0,s.readByte)()(e)){if(e.pos+a>=o){var c=o-e.pos;n.push((0,s.readBytes)(c)(e)),i+=c;break}n.push((0,s.readBytes)(a)(e)),i+=a}for(var d=new Uint8Array(i),u=0,f=0;f<n.length;f++)d.set(n[f],u),u+=n[f].length;return d}},fe=(0,h.conditional)({gce:[{codes:(0,s.readBytes)(2)},{byteSize:(0,s.readByte)()},{extras:(0,s.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,s.readUnsigned)(!0)},{transparentColorIndex:(0,s.readByte)()},{terminator:(0,s.readByte)()}]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===249}),me=(0,h.conditional)({image:[{code:(0,s.readByte)()},{descriptor:[{left:(0,s.readUnsigned)(!0)},{top:(0,s.readUnsigned)(!0)},{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{lct:(0,s.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,h.conditional)({lct:(0,s.readArray)(3,function(t,e,r){return Math.pow(2,r.descriptor.lct.size+1)})},function(t,e,r){return r.descriptor.lct.exists}),{data:[{minCodeSize:(0,s.readByte)()},F]}]},function(t){return(0,s.peekByte)()(t)===44}),ge=(0,h.conditional)({text:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{preData:function(e,r,n){return(0,s.readBytes)(n.text.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===1}),ye=(0,h.conditional)({application:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{id:function(e,r,n){return(0,s.readString)(n.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===255}),he=(0,h.conditional)({comment:[{codes:(0,s.readBytes)(2)},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===254}),ve=[{header:[{signature:(0,s.readString)(3)},{version:(0,s.readString)(3)}]},{lsd:[{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{gct:(0,s.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,s.readByte)()},{pixelAspectRatio:(0,s.readByte)()}]},(0,h.conditional)({gct:(0,s.readArray)(3,function(t,e){return Math.pow(2,e.lsd.gct.size+1)})},function(t,e){return e.lsd.gct.exists}),{frames:(0,h.loop)([fe,ye,he,me,ge],function(t){var e=(0,s.peekByte)()(t);return e===33||e===44})}],be=ve;I.default=be});var D=G(z()),O=G(E()),R=G(K());var X=(t,e)=>{let r=new Array(t.length),n=t.length/e,o=function(d,u){let f=t.slice(u*e,(u+1)*e);r.splice(...[d*e,e].concat(f))},i=[0,4,2,1],a=[8,8,4,2],c=0;for(let d=0;d<4;d++)for(let u=i[d];u<n;u+=a[d])o(u,c),c++;return r};var Z=(t,e,r)=>{let i=r,a,c,d,u,f;var B;let l,m;var C,b,g,k,P;let v=new Array(r),U=new Array(4096),A=new Array(4096),S=new Array(4096+1),M=t,x=1<<M,J=x+1;for(a=x+2,f=-1,d=M+1,c=(1<<d)-1,l=0;l<x;l++)U[l]=0,A[l]=l;var C,B,b,g,P,k;for(C=B=b=g=P=k=0,m=0;m<i;){if(g===0){if(B<d){C+=e[k]<<B,B+=8,k++;continue}if(l=C&c,C>>=d,B-=d,l>a||l===J)break;if(l===x){d=M+1,c=(1<<d)-1,a=x+2,f=-1;continue}if(f===-1){S[g++]=A[l],f=l,b=l;continue}for(u=l,l===a&&(S[g++]=b,l=f);l>x;)S[g++]=A[l],l=U[l];b=A[l]&255,S[g++]=b,a<4096&&(U[a]=f,A[a]=b,a++,!(a&c)&&a<4096&&(d++,c+=a)),f=u}g--,v[P++]=S[g],m++}for(m=P;m<i;m++)v[m]=0;return v};var q=t=>{let e=new Uint8Array(t);return(0,D.parse)((0,O.buildStream)(e),R.default)},L=(t,e)=>{var a,c;if(!t.image){console.warn(\"gif frame does not have associated image.\");return}let{image:r}=t,n=r.descriptor.width*r.descriptor.height,o=Z(r.data.minCodeSize,r.data.blocks,n);return(a=r.descriptor.lct)!=null&&a.interlaced&&(o=X(o,r.descriptor.width)),{pixels:o,dims:{top:t.image.descriptor.top,left:t.image.descriptor.left,width:t.image.descriptor.width,height:t.image.descriptor.height},colorTable:(c=r.descriptor.lct)!=null&&c.exists?r.lct:e,delay:(t.gce.delay||10)*10,disposalType:t.gce.extras.disposal,transparentIndex:t.gce.extras.transparentColorGiven?t.gce.transparentColorIndex:-1}};var $=t=>t.frames.filter(e=>!(\"application\"in e)).map(e=>e.image?L(e,t.gct):null).filter(Boolean).map(e=>e);var xe=t=>{let e=null;for(let r of t.frames)e=r.gce?r.gce:e,\"image\"in r&&!(\"gce\"in r)&&e!==null&&(r.gce=e)},H=(t,{signal:e})=>fetch(t,{signal:e}).then(r=>{var n;if(!((n=r.headers.get(\"Content-Type\"))!=null&&n.includes(\"image/gif\")))throw Error(`Wrong content type: \"${r.headers.get(\"Content-Type\")}\"`);return r.arrayBuffer()}).then(r=>q(r)).then(r=>(xe(r),r)).then(r=>Promise.all([$(r),{width:r.lsd.width,height:r.lsd.height}])).then(([r,n])=>{let o=[],i=n.width*n.height*4,a=new Uint8ClampedArray(i);for(let c=0;c<r.length;++c){let d=r[c],u=r[c].disposalType===3?a.slice():null;if(o.push(Be(a,d,n)),r[c].disposalType===2)a=new Uint8ClampedArray(i);else if(r[c].disposalType===3){if(!u)throw Error(\"Disposal type 3 without previous frame\");a=u}else a=o[c].slice()}return{...n,loaded:!0,delays:r.map(c=>c.delay),frames:o}}),Be=(t,e,r)=>{let{width:n,height:o,top:i,left:a}=e.dims,c=i*r.width+a;for(let d=0;d<o;d++)for(let u=0;u<n;u++){let f=d*n+u,l=e.pixels[f];if(l!==e.transparentIndex){let m=c+d*r.width+u,v=e.colorTable[l];t[m*4]=v[0],t[m*4+1]=v[1],t[m*4+2]=v[2],t[m*4+3]=l===e.transparentIndex?0:255}}return t};var w=new Map;self.addEventListener(\"message\",t=>{let{type:e,src:r}=t.data||t;switch(e){case\"parse\":{if(!w.has(r)){let n=new AbortController,o={signal:n.signal};w.set(r,n),H(r,o).then(i=>{self.postMessage(Object.assign(i,{src:r}),i.frames.map(a=>a.buffer))}).catch(i=>{self.postMessage({src:r,error:i,loaded:!0})}).finally(()=>{w.delete(r)})}break}case\"cancel\":{w.has(r)&&(w.get(r).abort(),w.delete(r));break}default:break}});})();\n";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.src = void 0;
|
|
4
|
+
// Auto-generated by build.mjs
|
|
5
|
+
exports.src =
|
|
6
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
7
|
+
"\"use strict\";(()=>{var N=Object.create;var j=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var T=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var re=(t,e,r,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of V(e))!ee.call(t,o)&&o!==r&&j(t,o,{get:()=>e[o],enumerable:!(n=Q(e,o))||n.enumerable});return t};var G=(t,e,r)=>(r=t!=null?N(Y(t)):{},re(e||!t||!t.__esModule?j(r,\"default\",{value:t,enumerable:!0}):r,t));var z=T(y=>{\"use strict\";Object.defineProperty(y,\"__esModule\",{value:!0});y.loop=y.conditional=y.parse=void 0;var te=function t(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:n;if(Array.isArray(r))r.forEach(function(a){return t(e,a,n,o)});else if(typeof r==\"function\")r(e,n,o,t);else{var i=Object.keys(r)[0];Array.isArray(r[i])?(o[i]={},t(e,r[i],n,o[i])):o[i]=r[i](e,n,o,t)}return n};y.parse=te;var ne=function(e,r){return function(n,o,i,a){r(n,o,i)&&a(n,e,o,i)}};y.conditional=ne;var ae=function(e,r){return function(n,o,i,a){for(var c=[],d=n.pos;r(n,o,i);){var u={};if(a(n,e,o,u),n.pos===d)break;d=n.pos,c.push(u)}return c}};y.loop=ae});var E=T(p=>{\"use strict\";Object.defineProperty(p,\"__esModule\",{value:!0});p.readBits=p.readArray=p.readUnsigned=p.readString=p.peekBytes=p.readBytes=p.peekByte=p.readByte=p.buildStream=void 0;var oe=function(e){return{data:e,pos:0}};p.buildStream=oe;var W=function(){return function(e){return e.data[e.pos++]}};p.readByte=W;var ie=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(r){return r.data[r.pos+e]}};p.peekByte=ie;var _=function(e){return function(r){return r.data.subarray(r.pos,r.pos+=e)}};p.readBytes=_;var se=function(e){return function(r){return r.data.subarray(r.pos,r.pos+e)}};p.peekBytes=se;var de=function(e){return function(r){return Array.from(_(e)(r)).map(function(n){return String.fromCharCode(n)}).join(\"\")}};p.readString=de;var ce=function(e){return function(r){var n=_(2)(r);return e?(n[1]<<8)+n[0]:(n[0]<<8)+n[1]}};p.readUnsigned=ce;var ue=function(e,r){return function(n,o,i){for(var a=typeof r==\"function\"?r(n,o,i):r,c=_(e),d=new Array(a),u=0;u<a;u++)d[u]=c(n);return d}};p.readArray=ue;var le=function(e,r,n){for(var o=0,i=0;i<n;i++)o+=e[r+i]&&Math.pow(2,n-i-1);return o},pe=function(e){return function(r){for(var n=W()(r),o=new Array(8),i=0;i<8;i++)o[7-i]=!!(n&1<<i);return Object.keys(e).reduce(function(a,c){var d=e[c];return d.length?a[c]=le(o,d.index,d.length):a[c]=o[d.index],a},{})}};p.readBits=pe});var K=T(I=>{\"use strict\";Object.defineProperty(I,\"__esModule\",{value:!0});I.default=void 0;var h=z(),s=E(),F={blocks:function(e){for(var r=0,n=[],o=e.data.length,i=0,a=(0,s.readByte)()(e);a!==r&&a;a=(0,s.readByte)()(e)){if(e.pos+a>=o){var c=o-e.pos;n.push((0,s.readBytes)(c)(e)),i+=c;break}n.push((0,s.readBytes)(a)(e)),i+=a}for(var d=new Uint8Array(i),u=0,f=0;f<n.length;f++)d.set(n[f],u),u+=n[f].length;return d}},fe=(0,h.conditional)({gce:[{codes:(0,s.readBytes)(2)},{byteSize:(0,s.readByte)()},{extras:(0,s.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,s.readUnsigned)(!0)},{transparentColorIndex:(0,s.readByte)()},{terminator:(0,s.readByte)()}]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===249}),me=(0,h.conditional)({image:[{code:(0,s.readByte)()},{descriptor:[{left:(0,s.readUnsigned)(!0)},{top:(0,s.readUnsigned)(!0)},{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{lct:(0,s.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,h.conditional)({lct:(0,s.readArray)(3,function(t,e,r){return Math.pow(2,r.descriptor.lct.size+1)})},function(t,e,r){return r.descriptor.lct.exists}),{data:[{minCodeSize:(0,s.readByte)()},F]}]},function(t){return(0,s.peekByte)()(t)===44}),ge=(0,h.conditional)({text:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{preData:function(e,r,n){return(0,s.readBytes)(n.text.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===1}),ye=(0,h.conditional)({application:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{id:function(e,r,n){return(0,s.readString)(n.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===255}),he=(0,h.conditional)({comment:[{codes:(0,s.readBytes)(2)},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===254}),ve=[{header:[{signature:(0,s.readString)(3)},{version:(0,s.readString)(3)}]},{lsd:[{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{gct:(0,s.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,s.readByte)()},{pixelAspectRatio:(0,s.readByte)()}]},(0,h.conditional)({gct:(0,s.readArray)(3,function(t,e){return Math.pow(2,e.lsd.gct.size+1)})},function(t,e){return e.lsd.gct.exists}),{frames:(0,h.loop)([fe,ye,he,me,ge],function(t){var e=(0,s.peekByte)()(t);return e===33||e===44})}],be=ve;I.default=be});var D=G(z()),O=G(E()),R=G(K());var X=(t,e)=>{let r=new Array(t.length),n=t.length/e,o=function(d,u){let f=t.slice(u*e,(u+1)*e);r.splice(...[d*e,e].concat(f))},i=[0,4,2,1],a=[8,8,4,2],c=0;for(let d=0;d<4;d++)for(let u=i[d];u<n;u+=a[d])o(u,c),c++;return r};var Z=(t,e,r)=>{let i=r,a,c,d,u,f;var B;let l,m;var C,b,g,k,P;let v=new Array(r),U=new Array(4096),A=new Array(4096),S=new Array(4096+1),M=t,x=1<<M,J=x+1;for(a=x+2,f=-1,d=M+1,c=(1<<d)-1,l=0;l<x;l++)U[l]=0,A[l]=l;var C,B,b,g,P,k;for(C=B=b=g=P=k=0,m=0;m<i;){if(g===0){if(B<d){C+=e[k]<<B,B+=8,k++;continue}if(l=C&c,C>>=d,B-=d,l>a||l===J)break;if(l===x){d=M+1,c=(1<<d)-1,a=x+2,f=-1;continue}if(f===-1){S[g++]=A[l],f=l,b=l;continue}for(u=l,l===a&&(S[g++]=b,l=f);l>x;)S[g++]=A[l],l=U[l];b=A[l]&255,S[g++]=b,a<4096&&(U[a]=f,A[a]=b,a++,!(a&c)&&a<4096&&(d++,c+=a)),f=u}g--,v[P++]=S[g],m++}for(m=P;m<i;m++)v[m]=0;return v};var q=t=>{let e=new Uint8Array(t);return(0,D.parse)((0,O.buildStream)(e),R.default)},L=(t,e)=>{var a,c;if(!t.image){console.warn(\"gif frame does not have associated image.\");return}let{image:r}=t,n=r.descriptor.width*r.descriptor.height,o=Z(r.data.minCodeSize,r.data.blocks,n);return(a=r.descriptor.lct)!=null&&a.interlaced&&(o=X(o,r.descriptor.width)),{pixels:o,dims:{top:t.image.descriptor.top,left:t.image.descriptor.left,width:t.image.descriptor.width,height:t.image.descriptor.height},colorTable:(c=r.descriptor.lct)!=null&&c.exists?r.lct:e,delay:(t.gce.delay||10)*10,disposalType:t.gce.extras.disposal,transparentIndex:t.gce.extras.transparentColorGiven?t.gce.transparentColorIndex:-1}};var $=t=>t.frames.filter(e=>!(\"application\"in e)).map(e=>e.image?L(e,t.gct):null).filter(Boolean).map(e=>e);var xe=t=>{let e=null;for(let r of t.frames)e=r.gce?r.gce:e,\"image\"in r&&!(\"gce\"in r)&&e!==null&&(r.gce=e)},H=(t,{signal:e})=>fetch(t,{signal:e}).then(r=>{var n;if(!((n=r.headers.get(\"Content-Type\"))!=null&&n.includes(\"image/gif\")))throw Error(`Wrong content type: \"${r.headers.get(\"Content-Type\")}\"`);return r.arrayBuffer()}).then(r=>q(r)).then(r=>(xe(r),r)).then(r=>Promise.all([$(r),{width:r.lsd.width,height:r.lsd.height}])).then(([r,n])=>{let o=[],i=n.width*n.height*4,a=new Uint8ClampedArray(i);for(let c=0;c<r.length;++c){let d=r[c],u=r[c].disposalType===3?a.slice():null;if(o.push(Be(a,d,n)),r[c].disposalType===2)a=new Uint8ClampedArray(i);else if(r[c].disposalType===3){if(!u)throw Error(\"Disposal type 3 without previous frame\");a=u}else a=o[c].slice()}return{...n,loaded:!0,delays:r.map(c=>c.delay),frames:o}}),Be=(t,e,r)=>{let{width:n,height:o,top:i,left:a}=e.dims,c=i*r.width+a;for(let d=0;d<o;d++)for(let u=0;u<n;u++){let f=d*n+u,l=e.pixels[f];if(l!==e.transparentIndex){let m=c+d*r.width+u,v=e.colorTable[l];t[m*4]=v[0],t[m*4+1]=v[1],t[m*4+2]=v[2],t[m*4+3]=l===e.transparentIndex?0:255}}return t};var w=new Map;self.addEventListener(\"message\",t=>{let{type:e,src:r}=t.data||t;switch(e){case\"parse\":{if(!w.has(r)){let n=new AbortController,o={signal:n.signal};w.set(r,n),H(r,o).then(i=>{self.postMessage(Object.assign(i,{src:r}),i.frames.map(a=>a.buffer))}).catch(i=>{self.postMessage({src:r,error:i,loaded:!0})}).finally(()=>{w.delete(r)})}break}case\"cancel\":{w.has(r)&&(w.get(r).abort(),w.delete(r));break}default:break}});})();\n";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const parse_generate_1 = require("../parse-generate");
|
|
4
|
+
const abortMap = new Map();
|
|
5
|
+
self.addEventListener('message', (e) => {
|
|
6
|
+
const { type, src } = e.data || e;
|
|
7
|
+
switch (type) {
|
|
8
|
+
case 'parse': {
|
|
9
|
+
if (!abortMap.has(src)) {
|
|
10
|
+
const controller = new AbortController();
|
|
11
|
+
const signal = { signal: controller.signal };
|
|
12
|
+
abortMap.set(src, controller);
|
|
13
|
+
(0, parse_generate_1.parse)(src, signal)
|
|
14
|
+
.then((result) => {
|
|
15
|
+
self.postMessage(Object.assign(result, { src }),
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
result.frames.map((frame) => frame.buffer));
|
|
18
|
+
})
|
|
19
|
+
.catch((error) => {
|
|
20
|
+
self.postMessage({ src, error, loaded: true });
|
|
21
|
+
})
|
|
22
|
+
.finally(() => {
|
|
23
|
+
abortMap.delete(src);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
case 'cancel': {
|
|
29
|
+
if (abortMap.has(src)) {
|
|
30
|
+
const controller = abortMap.get(src);
|
|
31
|
+
controller.abort();
|
|
32
|
+
abortMap.delete(src);
|
|
33
|
+
}
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
default:
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/gif",
|
|
3
|
-
"version": "4.0.0-
|
|
3
|
+
"version": "4.0.0-newpathfunctions.13+40cc970bd",
|
|
4
4
|
"description": "Gif component for remotion",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"repository": {
|
|
@@ -17,27 +17,27 @@
|
|
|
17
17
|
],
|
|
18
18
|
"scripts": {
|
|
19
19
|
"lint": "eslint src --ext ts,tsx",
|
|
20
|
-
"build": "tsc -d",
|
|
20
|
+
"build": "node build.mjs && tsc -d",
|
|
21
21
|
"watch": "tsc -w"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"
|
|
24
|
+
"js-binary-schema-parser": "^2.0.3",
|
|
25
25
|
"lru_map": "0.4.1",
|
|
26
|
-
"remotion": "4.0.0-
|
|
26
|
+
"remotion": "4.0.0-newpathfunctions.13+40cc970bd"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@jonny/eslint-config": "3.0.
|
|
29
|
+
"@jonny/eslint-config": "3.0.266",
|
|
30
30
|
"@types/node": "^16.7.5",
|
|
31
|
-
"@types/react": "18.0.
|
|
32
|
-
"@types/react-dom": "18.0.
|
|
33
|
-
"
|
|
34
|
-
"
|
|
31
|
+
"@types/react": "18.0.26",
|
|
32
|
+
"@types/react-dom": "18.0.10",
|
|
33
|
+
"esbuild": "0.16.12",
|
|
34
|
+
"eslint": "8.25.0",
|
|
35
35
|
"prettier": "2.6.2",
|
|
36
36
|
"prettier-plugin-organize-imports": "^2.3.4",
|
|
37
37
|
"react": "18.0.0",
|
|
38
38
|
"react-dom": "18.0.0",
|
|
39
39
|
"typescript": "^4.7.0",
|
|
40
|
-
"webpack": "5.
|
|
40
|
+
"webpack": "5.74.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"react": ">=16.8.0",
|
|
@@ -48,11 +48,10 @@
|
|
|
48
48
|
"ffmpeg",
|
|
49
49
|
"video",
|
|
50
50
|
"react",
|
|
51
|
-
"puppeteer",
|
|
52
51
|
"player"
|
|
53
52
|
],
|
|
54
53
|
"publishConfig": {
|
|
55
54
|
"access": "public"
|
|
56
55
|
},
|
|
57
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "40cc970bd20f2c9fde0c1644f1c9f33cd47f3dc7"
|
|
58
57
|
}
|
package/dist/Gif.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Gif.d.ts","sourceRoot":"","sources":["../src/Gif.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,GAAG,UAAW,gBAAgB,gBAM1C,CAAC"}
|
package/dist/Gif.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Gif.js","sourceRoot":"","sources":["../src/Gif.tsx"],"names":[],"mappings":";;;;AACA,uCAAmC;AACnC,2DAAsD;AACtD,uDAAkD;AAG3C,MAAM,GAAG,GAAG,CAAC,KAAuB,EAAE,EAAE;IAC9C,IAAI,oBAAS,CAAC,sBAAsB,EAAE,KAAK,WAAW,EAAE;QACvD,OAAO,uBAAC,iCAAe,OAAK,KAAK,WAAI,CAAC;KACtC;IAED,OAAO,uBAAC,qCAAiB,OAAK,KAAK,WAAI,CAAC;AACzC,CAAC,CAAC;AANW,QAAA,GAAG,OAMd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GifForDevelopment.d.ts","sourceRoot":"","sources":["../src/GifForDevelopment.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAAW,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAKnD,eAAO,MAAM,iBAAiB,4FAoD5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GifForDevelopment.js","sourceRoot":"","sources":["../src/GifForDevelopment.tsx"],"names":[],"mappings":";;;;AAAA,6CAA0D;AAC1D,qCAA+B;AAC/B,iCAAkD;AAElD,6DAAwD;AAExD,MAAM,KAAK,GAAG,IAAI,gBAAM,CAAmB,EAAE,CAAC,CAAC;AAElC,QAAA,iBAAiB,GAAG,IAAA,kBAAU,EAGzC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,GAAG,EAAE,EAAE;IACxE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAW,GAAG,EAAE;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC5B,OAAO;gBACN,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACT,CAAC;SACF;QAED,OAAO,SAAqB,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,IAAA,uBAAe,EAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;iBAAM;gBACN,OAAO,CAAC,KAAK,CACZ,oBAAoB,EACpB,IAAI,CAAC,KAAK,EACV,2EAA2E,CAC3E,CAAC;aACF;SACD;aAAM;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,IAAI,CAAC,CAAC;YAEf,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC;SACb;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAA,uCAAkB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,CACN,uBAAC,cAAM,IACN,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,KAAK,EAC3B,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,CAAC,MAAM,KAC1B,KAAK,EACT,GAAG,EAAE,GAAG,WACP,CACF,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GifForRendering.d.ts","sourceRoot":"","sources":["../src/GifForRendering.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAW,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAGnD,eAAO,MAAM,eAAe,4FA8C3B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GifForRendering.js","sourceRoot":"","sources":["../src/GifForRendering.tsx"],"names":[],"mappings":";;;;AAAA,6CAAoD;AACpD,iCAAkD;AAClD,uCAAqD;AAErD,6DAAwD;AAE3C,QAAA,eAAe,GAAG,IAAA,kBAAU,EACxC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,GAAG,EAAE,EAAE;IACtE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAW;QAC1C,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACT,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAC1B,IAAA,sBAAW,EAAC,8BAA8B,GAAG,GAAG,CAAC,CACjD,CAAC;IAEF,MAAM,KAAK,GAAG,IAAA,uCAAkB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;iBAAM;gBACN,OAAO,CAAC,KAAK,CACZ,oBAAoB,EACpB,IAAI,CAAC,KAAK,EACV,2EAA2E,CAC3E,CAAC;aACF;SACD;aAAM;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,IAAI,CAAC,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC;SACb;QAED,IAAA,yBAAc,EAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,CACN,uBAAC,cAAM,IACN,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,KAAK,EAC3B,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,CAAC,MAAM,KAC1B,KAAK,EACT,GAAG,EAAE,GAAG,WACP,CACF,CAAC;AACH,CAAC,CACD,CAAC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAsB;AACtB,0CAAwB"}
|
package/dist/props.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":";AAAA,oBAAY,gBAAgB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACf,MAAM,EAAE,IAAI,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,SAAS,EAAE,CAAC;KACpB,KAAK,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B,CAAC;AAEF,oBAAY,QAAQ,GAAG;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CAAC"}
|
package/dist/props.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"props.js","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCurrentGifIndex.d.ts","sourceRoot":"","sources":["../src/useCurrentGifIndex.tsx"],"names":[],"mappings":"AAGA,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CA2BpD;AAED,OAAO,EAAC,kBAAkB,EAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useCurrentGifIndex.js","sourceRoot":"","sources":["../src/useCurrentGifIndex.tsx"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,uCAAoD;AAEpD,SAAS,kBAAkB,CAAC,MAAgB;IAC3C,MAAM,YAAY,GAAG,IAAA,0BAAe,GAAE,CAAC;IACvC,MAAM,WAAW,GAAG,oBAAS,CAAC,oBAAoB,EAAE,CAAC;IAErD,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;SACrE;QAED,OAAO,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,IAAI,WAAW,GAAG,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;YAEvE,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;gBAC1C,IAAI,WAAW,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC;gBAElC,WAAW,IAAI,KAAK,CAAC;aACrB;SACD;QAED,OAAO,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAElD,OAAO,KAAK,CAAC;AACd,CAAC;AAEO,gDAAkB"}
|