@react-three/drei 9.88.8 → 9.88.9

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=a(e),c=u(r),f=u(n);exports.SpriteAnimator=({startFrame:e,endFrame:r,fps:n,frameName:a,textureDataURL:u,textureImageURL:o,loop:m,numberOfFrames:l,autoPlay:i,animationNames:p,onStart:h,onEnd:w,onLoopEnd:y,onFrame:d,play:S,pause:b,flipX:x,alphaTest:E,children:g,asSprite:z,resetOnEnd:F,...R},A)=>{const O=c.useRef(null),[j,L]=c.useState(!1),v=c.useRef(!1),M=c.useRef(),P=c.useRef(),T=c.useRef(window.performance.now()),N=c.useRef(),k=c.useRef(e||0),q=c.useRef(a||""),_=1e3/(n||30),[D,C]=c.useState(new f.Texture),I=c.useRef(0),[U,B]=c.useState([1,1,1]),G=x?-1:1,[W,X]=c.useState(null==z||z),H=c.useRef(b);const J=(e,r)=>{const t=r/e;return P.current&&P.current.scale.set(1,t,1),[1,t,1]};c.useEffect((()=>{if(u&&o)!function(e,r,t){const n=new f.TextureLoader,a=fetch(e).then((e=>e.json())),u=new Promise((e=>{n.load(r,e)}));Promise.all([a,u]).then((e=>{t(e[0],e[1])}))}(u,o,K);else if(o){const e=new f.TextureLoader;new Promise((r=>{e.load(o,r)})).then((e=>{K(null,e)}))}}),[]),c.useEffect((()=>{X(null==z||z)}),[z]),c.useLayoutEffect((()=>{V()}),[D,x]),c.useEffect((()=>{i&&(H.current=!1)}),[i]),c.useEffect((()=>{if(q.current!==a&&a&&(k.current=0,q.current=a,v.current=!1,V(),O.current)){const{w:e,h:r}=Z(O.current.frames).sourceSize,t=J(e,r);B(t)}}),[a]);const K=(e,r)=>{if(null===e){if(l){const e=r.image.width,t=r.image.height,n=e/l,a=t;if(N.current=r,I.current=l,O.current={frames:[],meta:{version:"1.0",size:{w:e,h:t},scale:"1"}},parseInt(n.toString(),10)===n)for(let e=0;e<l;e++)O.current.frames.push({frame:{x:e*n,y:0,w:n,h:a},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:n,h:a},sourceSize:{w:n,h:t}})}}else{O.current=e,O.current.frames=Array.isArray(e.frames)?e.frames:Q(),I.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length,N.current=r;const{w:t,h:n}=Z(e.frames).sourceSize,a=J(t,n);B(a),M.current&&(M.current.map=r)}r.premultiplyAlpha=!1,C(r)},Q=()=>{const e={},r=O.current,t=p;if(t){for(let n=0;n<t.length;n++){e[t[n]]=[];for(const a in r.frames){const u=r.frames[a],s=u.frame,c=s.x,f=s.y,o=s.w,m=s.h,l=u.sourceSize.w,i=u.sourceSize.h;-1!==a.toLowerCase().indexOf(t[n].toLowerCase())&&e[t[n]].push({x:c,y:f,w:o,h:m,frame:s,sourceSize:{w:l,h:i}})}}return e}if(a){const e=[];for(const t in r.frames)e.push(r.frames[t]);return e}},V=()=>{if(!O.current)return;const{meta:{size:e},frames:r}=O.current,{w:t,h:n}=Array.isArray(r)?r[0].sourceSize:a&&r[a]?r[a][0].sourceSize:{w:0,h:0};M.current.map.wrapS=M.current.map.wrapT=f.RepeatWrapping,M.current.map.center.set(0,0),M.current.map.repeat.set(1*G/(e.w/t),1/(e.h/n));const u=1/((e.h-1)/n);M.current.map.offset.x=0,M.current.map.offset.y=1-u,L(!0),h&&h({currentFrameName:a,currentFrame:k.current})},Y=(e,r,t,n)=>{let a=0,u=0;J(e,r);const s=(t.w-1)/e,c=(t.h-1)/r,{frame:{x:f,y:o},sourceSize:{w:m,h:l}}=n[k.current],i=1/s,p=1/c;a=G>0?i*(f/m):i*(f/m)-M.current.map.repeat.x,u=Math.abs(1-p)-p*(o/l),M.current.map.offset.x=a,M.current.map.offset.y=u};t.useFrame(((t,n)=>{var u,s;null!=(u=O.current)&&u.frames&&null!=(s=M.current)&&s.map&&(H.current||v.current||!i&&!S||((()=>{const t=window.performance.now(),n=t-T.current,{meta:{size:u},frames:s}=O.current,{w:c,h:f}=Z(s).sourceSize,o=Array.isArray(s)?s:a?s[a]:[],l=r||o.length-1;k.current>l&&(k.current=m&&null!=e?e:0,m?null==y||y({currentFrameName:a,currentFrame:k.current}):(null==w||w({currentFrameName:a,currentFrame:k.current}),v.current=!F,F&&(H.current=!0)),!m)||n<=_||(T.current=t-n%_,Y(c,f,u,o),k.current+=1)})(),d&&d({currentFrameName:q.current,currentFrame:k.current})))}));const Z=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){const r=Object.keys(e);return a?e[a][0]:e[r[0]][0]}return{w:0,h:0}};return c.createElement("group",s.default({ref:A},R),c.createElement(c.Suspense,{fallback:null},W&&c.createElement("sprite",{ref:P,scale:U},c.createElement("spriteMaterial",{toneMapped:!1,ref:M,map:D,transparent:!0,alphaTest:null!=E?E:0})),!W&&c.createElement("mesh",{ref:P,scale:U},c.createElement("planeGeometry",{args:[1,1]}),c.createElement("meshBasicMaterial",{toneMapped:!1,side:f.DoubleSide,ref:M,map:D,transparent:!0,alphaTest:null!=E?E:0}))),g)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=a(e),c=u(r),f=u(n);const o=c.forwardRef((({startFrame:e,endFrame:r,fps:n,frameName:a,textureDataURL:u,textureImageURL:o,loop:m,numberOfFrames:l,autoPlay:i,animationNames:p,onStart:h,onEnd:w,onLoopEnd:d,onFrame:y,play:S,pause:b,flipX:x,alphaTest:E,children:g,asSprite:z,resetOnEnd:R,...F},A)=>{const O=c.useRef(null),[j,L]=c.useState(!1),v=c.useRef(!1),M=c.useRef(),P=c.useRef(),T=c.useRef(window.performance.now()),N=c.useRef(),k=c.useRef(e||0),q=c.useRef(a||""),_=1e3/(n||30),[D,C]=c.useState(new f.Texture),I=c.useRef(0),[U,B]=c.useState([1,1,1]),G=x?-1:1,[W,X]=c.useState(null==z||z),H=c.useRef(b);const J=(e,r)=>{const t=r/e;return P.current&&P.current.scale.set(1,t,1),[1,t,1]};c.useEffect((()=>{if(u&&o)!function(e,r,t){const n=new f.TextureLoader,a=fetch(e).then((e=>e.json())),u=new Promise((e=>{n.load(r,e)}));Promise.all([a,u]).then((e=>{t(e[0],e[1])}))}(u,o,K);else if(o){const e=new f.TextureLoader;new Promise((r=>{e.load(o,r)})).then((e=>{K(null,e)}))}}),[]),c.useEffect((()=>{X(null==z||z)}),[z]),c.useLayoutEffect((()=>{V()}),[D,x]),c.useEffect((()=>{i&&(H.current=!1)}),[i]),c.useEffect((()=>{if(q.current!==a&&a&&(k.current=0,q.current=a,v.current=!1,V(),O.current)){const{w:e,h:r}=Z(O.current.frames).sourceSize,t=J(e,r);B(t)}}),[a]);const K=(e,r)=>{if(null===e){if(l){const e=r.image.width,t=r.image.height,n=e/l,a=t;if(N.current=r,I.current=l,O.current={frames:[],meta:{version:"1.0",size:{w:e,h:t},scale:"1"}},parseInt(n.toString(),10)===n)for(let e=0;e<l;e++)O.current.frames.push({frame:{x:e*n,y:0,w:n,h:a},rotated:!1,trimmed:!1,spriteSourceSize:{x:0,y:0,w:n,h:a},sourceSize:{w:n,h:t}})}}else{O.current=e,O.current.frames=Array.isArray(e.frames)?e.frames:Q(),I.current=Array.isArray(e.frames)?e.frames.length:Object.keys(e.frames).length,N.current=r;const{w:t,h:n}=Z(e.frames).sourceSize,a=J(t,n);B(a),M.current&&(M.current.map=r)}r.premultiplyAlpha=!1,C(r)},Q=()=>{const e={},r=O.current,t=p;if(t){for(let n=0;n<t.length;n++){e[t[n]]=[];for(const a in r.frames){const u=r.frames[a],s=u.frame,c=s.x,f=s.y,o=s.w,m=s.h,l=u.sourceSize.w,i=u.sourceSize.h;-1!==a.toLowerCase().indexOf(t[n].toLowerCase())&&e[t[n]].push({x:c,y:f,w:o,h:m,frame:s,sourceSize:{w:l,h:i}})}}return e}if(a){const e=[];for(const t in r.frames)e.push(r.frames[t]);return e}},V=()=>{if(!O.current)return;const{meta:{size:e},frames:r}=O.current,{w:t,h:n}=Array.isArray(r)?r[0].sourceSize:a&&r[a]?r[a][0].sourceSize:{w:0,h:0};M.current.map.wrapS=M.current.map.wrapT=f.RepeatWrapping,M.current.map.center.set(0,0),M.current.map.repeat.set(1*G/(e.w/t),1/(e.h/n));const u=1/((e.h-1)/n);M.current.map.offset.x=0,M.current.map.offset.y=1-u,L(!0),h&&h({currentFrameName:a,currentFrame:k.current})},Y=(e,r,t,n)=>{let a=0,u=0;J(e,r);const s=(t.w-1)/e,c=(t.h-1)/r,{frame:{x:f,y:o},sourceSize:{w:m,h:l}}=n[k.current],i=1/s,p=1/c;a=G>0?i*(f/m):i*(f/m)-M.current.map.repeat.x,u=Math.abs(1-p)-p*(o/l),M.current.map.offset.x=a,M.current.map.offset.y=u};t.useFrame(((t,n)=>{var u,s;null!=(u=O.current)&&u.frames&&null!=(s=M.current)&&s.map&&(H.current||v.current||!i&&!S||((()=>{const t=window.performance.now(),n=t-T.current,{meta:{size:u},frames:s}=O.current,{w:c,h:f}=Z(s).sourceSize,o=Array.isArray(s)?s:a?s[a]:[],l=r||o.length-1;k.current>l&&(k.current=m&&null!=e?e:0,m?null==d||d({currentFrameName:a,currentFrame:k.current}):(null==w||w({currentFrameName:a,currentFrame:k.current}),v.current=!R,R&&(H.current=!0)),!m)||n<=_||(T.current=t-n%_,Y(c,f,u,o),k.current+=1)})(),y&&y({currentFrameName:q.current,currentFrame:k.current})))}));const Z=e=>{if(Array.isArray(e))return e[0];if("object"==typeof e&&null!==e){const r=Object.keys(e);return a?e[a][0]:e[r[0]][0]}return{w:0,h:0}};return c.createElement("group",s.default({ref:A},F),c.createElement(c.Suspense,{fallback:null},W&&c.createElement("sprite",{ref:P,scale:U},c.createElement("spriteMaterial",{toneMapped:!1,ref:M,map:D,transparent:!0,alphaTest:null!=E?E:0})),!W&&c.createElement("mesh",{ref:P,scale:U},c.createElement("planeGeometry",{args:[1,1]}),c.createElement("meshBasicMaterial",{toneMapped:!1,side:f.DoubleSide,ref:M,map:D,transparent:!0,alphaTest:null!=E?E:0}))),g)}));exports.SpriteAnimator=o;
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { useFrame } from '@react-three/fiber';
4
4
  import * as THREE from 'three';
5
5
 
6
- const SpriteAnimator = ({
6
+ const SpriteAnimator = /* @__PURE__ */React.forwardRef(({
7
7
  startFrame,
8
8
  endFrame,
9
9
  fps,
@@ -371,6 +371,6 @@ const SpriteAnimator = ({
371
371
  transparent: true,
372
372
  alphaTest: alphaTest !== null && alphaTest !== void 0 ? alphaTest : 0.0
373
373
  }))), children);
374
- };
374
+ });
375
375
 
376
376
  export { SpriteAnimator };