Build 533169stable
Module 357710
1,853 characters · in no known chunkDependencies
Source Raw
function(e,t,n){"use strict";n.d(t,{D:()=>u,e:()=>c});var r=n(825913),i=n(340287),s=n(64700),a=n(3388),o=n(533715);let l=(0,s.createContext)(null);function u(e){let t=(0,s.useRef)({});return s.createElement(l.Provider,{value:t},e.children)}let c=(0,s.forwardRef)(function(e,t){let{name:n,isVisible:u=!0,children:c,className:d,style:_,...f}=e,[p,h]=(0,s.useState)(u?"visible":"hidden"),m=(0,s.useContext)(l);if(!m)throw Error("<SharedElement> must be rendered inside a <SharedElementTransition>");u&&"hidden"===p&&h("visible"),t=(0,o.U)(t),(0,a.N)(()=>{let e=t.current,r=m.current,s=r[n],a=null;if(e&&u&&s){h("visible");let t=e.getAnimations(),i=s.style.map(([t,n])=>{let r=e.style[t];if("translate"===t){let t=s.rect,n=e.getBoundingClientRect(),r=t.left-(null==n?void 0:n.left),i=t.top-(null==n?void 0:n.top);e.style.translate=`${r}px ${i}px`}else e.style[t]=n;return[t,r]});for(let n of e.getAnimations())t.includes(n)||n.cancel();a=requestAnimationFrame(()=>{for(let[t,n]of(a=null,i))e.style[t]=n}),delete r[n]}else e&&u&&!s?(queueMicrotask(()=>(0,i.flushSync)(()=>h("entering"))),a=requestAnimationFrame(()=>{a=null,h("visible")})):e&&!u&&queueMicrotask(()=>{r[n]?(delete r[n],(0,i.flushSync)(()=>h("exiting")),Promise.all(e.getAnimations().map(e=>e.finished)).then(()=>h("hidden")).catch(()=>{})):h("hidden")});return()=>{if(null!=a&&cancelAnimationFrame(a),e&&e.isConnected&&!e.hasAttribute("data-exiting")){let t=window.getComputedStyle(e);if("none"!==t.transitionProperty){let i=t.transitionProperty.split(/\s*,\s*/);r[n]={rect:e.getBoundingClientRect(),style:i.map(e=>[e,t[e]])}}}}},[t,m,n,u]);let E=(0,r.Sl)({children:c,className:d,style:_,values:{isEntering:"entering"===p,isExiting:"exiting"===p}});return"hidden"===p?null:s.createElement("div",{...f,...E,ref:t,"data-entering":"entering"===p||void 0,"data-exiting":"exiting"===p||void 0})})}