276 lines
8.2 KiB
JavaScript
276 lines
8.2 KiB
JavaScript
/*
|
|
* Extracted from browser-delivered Turbopack chunk: fd0220e4d10052af.701bdafa2d.js
|
|
* Module id: 717139
|
|
* For reading/searching only; this factory depends on the original Turbopack runtime.
|
|
*/
|
|
|
|
const moduleFactory = (e) => {
|
|
"use strict";
|
|
var t = e.i(23741),
|
|
n = e.i(358379),
|
|
i = e.i(740151),
|
|
r = e.i(72789),
|
|
a = e.i(136030),
|
|
o = e.i(295085),
|
|
s = e.i(168161),
|
|
c = e.i(881656),
|
|
l = e.i(896359);
|
|
let u = void 0 !== t.default && !1,
|
|
h = (e) => !!e && (e.startsWith("blob:") || e.startsWith("data:"));
|
|
function f(e) {
|
|
let {
|
|
url: t,
|
|
contentNodeWidth: f,
|
|
contentNodeHeight: d,
|
|
useOriginal: p,
|
|
isFront: g = !0,
|
|
isStacked: b = !1,
|
|
expanded: m = !1,
|
|
fileSize: w,
|
|
isStoryboardChild: v = !1,
|
|
ratioDimensionsWidth: x,
|
|
isReadonlyPreview: y = !1,
|
|
} = e,
|
|
_ = v && x ? x : f,
|
|
{ sizesPx: S, predictedWidth: E } = (0, l.useImageSizes)(_),
|
|
M = t && !h(t) ? (0, o.getUrlForWidth)(t, E, w) : null,
|
|
T = (0, n.useRef)(null),
|
|
k = (0, n.useRef)(t),
|
|
C = (0, n.useRef)(S);
|
|
C.current = S;
|
|
let A = (0, n.useRef)(0),
|
|
[N, I] = (0, n.useState)({ sizesPx: S, expectedUrl: M });
|
|
(0, n.useEffect)(() => {
|
|
let e = t !== k.current;
|
|
if (((k.current = t), !M)) {
|
|
(T.current = null), I({ sizesPx: C.current, expectedUrl: null });
|
|
return;
|
|
}
|
|
if (M === T.current) return;
|
|
let n = s.imgPool.tryAcquire(M);
|
|
if (n) {
|
|
let e = n.complete && n.naturalWidth > 0;
|
|
if ((s.imgPool.release(n), e)) {
|
|
u && console.debug("[tier-commit:img] poolHit", M.slice(-60)),
|
|
(T.current = M),
|
|
I({ sizesPx: C.current, expectedUrl: M });
|
|
return;
|
|
}
|
|
}
|
|
if (!T.current || e) {
|
|
(T.current = M), I({ sizesPx: C.current, expectedUrl: M });
|
|
return;
|
|
}
|
|
(A.current = performance.now()),
|
|
u && console.debug("[tier-commit:img] warmStart", M.slice(-60));
|
|
let i = !1,
|
|
r = new Image();
|
|
function a() {
|
|
if (((r.onload = null), (r.onerror = null), i)) return;
|
|
let e = Math.round(performance.now() - A.current);
|
|
r.complete && r.naturalWidth > 0 && s.imgPool.release(r, M),
|
|
u &&
|
|
console.debug("[tier-commit:img] warmReady", {
|
|
url: M.slice(-60),
|
|
latency: e,
|
|
}),
|
|
(T.current = M),
|
|
I({ sizesPx: C.current, expectedUrl: M });
|
|
}
|
|
return (
|
|
(r.decoding = "async"),
|
|
(r.src = M),
|
|
r.complete && r.naturalWidth > 0
|
|
? a()
|
|
: ((r.onload = a),
|
|
(r.onerror = function () {
|
|
(r.onload = null),
|
|
(r.onerror = null),
|
|
!i &&
|
|
u &&
|
|
console.debug("[tier-commit:img] warmError", {
|
|
url: M.slice(-60),
|
|
});
|
|
})),
|
|
() => {
|
|
(i = !0), (r.onload = null), (r.onerror = null);
|
|
}
|
|
);
|
|
}, [M, t]),
|
|
(0, n.useEffect)(() => {
|
|
T.current === M &&
|
|
M &&
|
|
I((e) => (e.sizesPx === S ? e : { ...e, sizesPx: S }));
|
|
}, [S, M]);
|
|
let P = p && t && !h(t) ? t : "",
|
|
[R, L] = (0, n.useState)(""),
|
|
D = (0, n.useRef)(null);
|
|
(0, n.useEffect)(() => {
|
|
let e;
|
|
if (!P) return void L("");
|
|
let t = !1,
|
|
n = 0,
|
|
r = (0, i.convertToChinaCdn)(P),
|
|
o = () =>
|
|
new Promise((e, t) => {
|
|
let n = new Image();
|
|
(D.current = n),
|
|
(n.onload = () => e(r)),
|
|
(n.onerror = () => t(Error("preload failed"))),
|
|
(n.src = r);
|
|
});
|
|
return (
|
|
!(function i() {
|
|
a.mediaPreloadQueue
|
|
.add(o)
|
|
.then((e) => {
|
|
if (!t) {
|
|
let t = D.current;
|
|
t && (s.imgPool.release(t, r), (D.current = null)), L(e);
|
|
}
|
|
})
|
|
.catch(() => {
|
|
!t &&
|
|
(++n <= 3
|
|
? (e = setTimeout(() => {
|
|
t || i();
|
|
}, 2e3 * n))
|
|
: t || L(r));
|
|
})
|
|
.finally(() => {
|
|
t || (D.current = null);
|
|
});
|
|
})(),
|
|
() => {
|
|
(t = !0),
|
|
e && clearTimeout(e),
|
|
a.mediaPreloadQueue.remove(o),
|
|
D.current && ((D.current.src = ""), (D.current = null));
|
|
}
|
|
);
|
|
}, [P]);
|
|
let j = (0, n.useCallback)(
|
|
(e) => {
|
|
if (t && !h(t)) {
|
|
let n = (0, o.getWidthTierForCache)(e);
|
|
(0, c.prefetchImage)(t, n, e),
|
|
(0, r.prefetchAllImageTiers)(t, n, w),
|
|
(0, r.preDecodeAdjacentImageTiers)(t, n, w);
|
|
}
|
|
},
|
|
[t, w],
|
|
);
|
|
if (!t)
|
|
return {
|
|
imgProps: { src: "" },
|
|
loadingOriginal: !1,
|
|
handleCacheCapture: j,
|
|
};
|
|
if (p && !h(t))
|
|
return {
|
|
imgProps: {
|
|
src: R || (0, i.convertToChinaCdn)(t),
|
|
width: Math.round(_),
|
|
height: Math.round(d),
|
|
decoding: "async",
|
|
},
|
|
loadingOriginal: !1,
|
|
handleCacheCapture: j,
|
|
};
|
|
if (h(t))
|
|
return {
|
|
imgProps: { src: t },
|
|
loadingOriginal: !1,
|
|
handleCacheCapture: j,
|
|
};
|
|
let O = (0, o.getResponsiveImageUrls)(t, w);
|
|
if (O) {
|
|
let e = y && g;
|
|
return {
|
|
imgProps: {
|
|
src: O.src,
|
|
srcSet: O.srcSet,
|
|
sizes: `${N.sizesPx}px`,
|
|
width: Math.round(_),
|
|
height: Math.round(d),
|
|
loading: e ? "lazy" : g ? "eager" : "lazy",
|
|
fetchPriority: e || (b && !m) ? "low" : "auto",
|
|
decoding: "async",
|
|
expectedAcquireUrl: N.expectedUrl ?? void 0,
|
|
},
|
|
loadingOriginal: !1,
|
|
handleCacheCapture: j,
|
|
};
|
|
}
|
|
return {
|
|
imgProps: { src: t },
|
|
loadingOriginal: !1,
|
|
handleCacheCapture: j,
|
|
};
|
|
}
|
|
e.s(["useImageLoadStrategy", () => f], 154891);
|
|
var d = e.i(768924),
|
|
p = e.i(216257);
|
|
function g(e) {
|
|
let t = (0, d.useUpdateNodeInternals)(),
|
|
i = (0, p.useRootStore)(),
|
|
r = (0, n.useRef)(0),
|
|
a = (0, n.useRef)(null),
|
|
o = (0, n.useRef)(!1);
|
|
(0, n.useEffect)(() => {
|
|
let n = i.canvasStore.subscribe((n, i) => {
|
|
!n.isInteracting &&
|
|
i.isInteracting &&
|
|
o.current &&
|
|
((o.current = !1), t(e));
|
|
});
|
|
return () => n();
|
|
}, [e, t, i]);
|
|
let s = (0, n.useCallback)(
|
|
(n) => {
|
|
if ((a.current && (a.current.disconnect(), (a.current = null)), !n))
|
|
return;
|
|
let s = !0,
|
|
c = new ResizeObserver(() => {
|
|
if (s) {
|
|
s = !1;
|
|
return;
|
|
}
|
|
if (i.canvasStore.getState().isInteracting) {
|
|
o.current = !0;
|
|
return;
|
|
}
|
|
cancelAnimationFrame(r.current),
|
|
(r.current = requestAnimationFrame(() => {
|
|
(function (e) {
|
|
let t = e.closest(".react-flow__node");
|
|
if (!t) return;
|
|
let n = t.firstElementChild;
|
|
n &&
|
|
((t.style.width = ""),
|
|
(t.style.height = ""),
|
|
(n.style.minWidth = ""),
|
|
(n.style.minHeight = ""));
|
|
})(n),
|
|
t(e);
|
|
}));
|
|
});
|
|
c.observe(n), (a.current = c);
|
|
},
|
|
[e, t, i],
|
|
);
|
|
return (
|
|
(0, n.useEffect)(
|
|
() => () => {
|
|
a.current?.disconnect(), cancelAnimationFrame(r.current);
|
|
},
|
|
[],
|
|
),
|
|
s
|
|
);
|
|
}
|
|
e.s(["useNodeDimensionSync", () => g], 717139);
|
|
};
|
|
|
|
export default moduleFactory;
|