"use strict";
(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
[6186], {
41567: function(e, t, n) {
n.d(t, {
c: function() {
return useMotionValue
}
});
var r = n(16898),
i = n(52983),
o = n(37791),
s = n(4060),
l = n(81999);
function useMotionValue(e) {
var t = (0, l.h)(function() {
return (0, o.B)(e)
});
if ((0, i.useContext)(s._).isStatic) {
var n = (0, r.__read)((0, i.useState)(e), 2)[1];
(0, i.useEffect)(function() {
return t.onChange(n)
}, [])
}
return t
}
},
64418: function(e, t, n) {
n.d(t, {
f: function() {
return useMultiOnChange
},
p: function() {
return useOnChange
}
});
var r = n(86885),
i = n(64837);
function useOnChange(e, t) {
(0, i.L)(function() {
if ((0, r.i)(e)) return e.onChange(t)
}, [t])
}
function useMultiOnChange(e, t) {
(0, i.L)(function() {
var n = e.map(function(e) {
return e.onChange(t)
});
return function() {
return n.forEach(function(e) {
return e()
})
}
})
}
},
96484: function(e, t, n) {
let r, i;
n.d(t, {
v: function() {
return useScroll
}
});
var o = n(16898);
let s = new WeakMap;
function notifyTarget({
target: e,
contentRect: t,
borderBoxSize: n
}) {
var r;
null === (r = s.get(e)) || void 0 === r || r.forEach(r => {
r({
target: e,
contentSize: t,
get size() {
return function(e, t) {
if (t) {
let {
inlineSize: e,
blockSize: n
} = t[0];
return {
width: e,
height: n
}
}
return e instanceof SVGElement && "getBBox" in e ? e.getBBox() : {
width: e.offsetWidth,
height: e.offsetHeight
}
}(e, n)
}
})
})
}
function notifyAll(e) {
e.forEach(notifyTarget)
}
let l = new Set,
progress = (e, t, n) => t - e == 0 ? 1 : (n - e) / (t - e),
createAxisInfo = () => ({
current: 0,
offset: [],
progress: 0,
scrollLength: 0,
targetOffset: 0,
targetLength: 0,
containerLength: 0,
velocity: 0
}),
createScrollInfo = () => ({
time: 0,
x: createAxisInfo(),
y: createAxisInfo()
}),
f = {
x: {
length: "Width",
position: "Left"
},
y: {
length: "Height",
position: "Top"
}
};
function updateAxisInfo(e, t, n, r) {
var i;
let o = n[t],
{
length: s,
position: l
} = f[t],
u = o.current,
a = n.time;
o.current = e["scroll" + l], o.scrollLength = e["scroll" + s] - e["client" + s], o.offset.length = 0, o.offset[0] = 0, o.offset[1] = o.scrollLength, o.progress = progress(0, o.scrollLength, o.current);
let c = r - a;
o.velocity = c > 50 ? 0 : (i = o.current - u, c ? i * (1e3 / c) : 0)
}
let noopReturn = e => e,
mix = (e, t, n) => -n * e + n * t + e;
function fillOffset(e, t) {
let n = e[e.length - 1];
for (let r = 1; r <= t; r++) {
let i = progress(0, t, r);
e.push(mix(n, 1, i))
}
}
function defaultOffset(e) {
let t = [0];
return fillOffset(t, e - 1), t
}
let isNumber = e => "number" == typeof e,
isEasingList = e => Array.isArray(e) && !isNumber(e[0]),
wrap = (e, t, n) => {
let r = t - e;
return ((n - e) % r + r) % r + e
},
clamp = (e, t, n) => Math.min(Math.max(n, e), t),
u = {
All: [
[0, 0],
[1, 1]
]
},
isString = e => "string" == typeof e,
a = {
start: 0,
center: .5,
end: 1
};
function resolveEdge(e, t, n = 0) {
let r = 0;
if (void 0 !== a[e] && (e = a[e]), isString(e)) {
let t = parseFloat(e);
e.endsWith("px") ? r = t : e.endsWith("%") ? e = t / 100 : e.endsWith("vw") ? r = t / 100 * document.documentElement.clientWidth : e.endsWith("vh") ? r = t / 100 * document.documentElement.clientHeight : e = t
}
return isNumber(e) && (r = t * e), n + r
}
let c = [0, 0],
g = {
x: 0,
y: 0
},
d = new WeakMap,
h = new WeakMap,
p = new WeakMap,
getEventTarget = e => e === document.documentElement ? window : e;
var v = n(37791),
m = n(81999),
y = n(64837),
createScrollMotionValues = function() {
return {
scrollX: (0, v.B)(0),
scrollY: (0, v.B)(0),
scrollXProgress: (0, v.B)(0),
scrollYProgress: (0, v.B)(0)
}
};
function useScroll(e) {
void 0 === e && (e = {});
var t = e.container,
n = e.target,
f = (0, o.__rest)(e, ["container", "target"]),
v = (0, m.h)(createScrollMotionValues);
return (0, y.L)(function() {
return function(e, t = {}) {
var {
container: n = document.documentElement
} = t, f = (0, o.__rest)(t, ["container"]);
let v = p.get(n);
v || (v = new Set, p.set(n, v));
let m = createScrollInfo(),
y = function(e, t, n, r = {}) {
var i;
let o = r.axis || "y";
return {
measure: () => (function(e, t = e, n) {
if (n.x.targetOffset = 0, n.y.targetOffset = 0, t !== e) {
let r = t;
for (; r && r != e;) n.x.targetOffset += r.offsetLeft, n.y.targetOffset += r.offsetTop, r = r.offsetParent
}
n.x.targetLength = t === e ? t.scrollWidth : t.clientWidth, n.y.targetLength = t === e ? t.scrollHeight : t.clientHeight, n.x.containerLength = e.clientWidth, n.y.containerLength = e.clientHeight
})(e, r.target, n),
update: t => {
updateAxisInfo(e, "x", n, t), updateAxisInfo(e, "y", n, t), n.time = t, (r.offset || r.target) && function(e, t, n) {
let {
offset: r = u.All
} = n, {
target: i = e,
axis: o = "y"
} = n, s = "y" === o ? "height" : "width", l = i !== e ? function(e, t) {
let n = {
x: 0,
y: 0
},
r = e;
for (; r && r !== t;)
if (r instanceof HTMLElement) n.x += r.offsetLeft, n.y += r.offsetTop, r = r.offsetParent;
else if (r instanceof SVGGraphicsElement && "getBBox" in r) {
let {
top: e,
left: t
} = r.getBBox();
for (n.x += t, n.y += e; r && "svg" !== r.tagName;) r = r.parentNode
}
return n
}(i, e) : g, f = i === e ? {
width: e.scrollWidth,
height: e.scrollHeight
} : {
width: i.clientWidth,
height: i.clientHeight
}, d = {
width: e.clientWidth,
height: e.clientHeight
};
t[o].offset.length = 0;
let h = !t[o].interpolate,
p = r.length;
for (let e = 0; e < p; e++) {
let n = function(e, t, n, r) {
let i = Array.isArray(e) ? e : c,
o = 0;
return isNumber(e) ? i = [e, e] : isString(e) && (i = (e = e.trim()).includes(" ") ? e.split(" ") : [e, a[e] ? e : "0"]), resolveEdge(i[0], n, r) - resolveEdge(i[1], t)
}(r[e], d[s], f[s], l[o]);
h || n === t[o].interpolatorOffsets[e] || (h = !0), t[o].offset[e] = n
}
h && (t[o].interpolate = function(e, t = defaultOffset(e.length), n = noopReturn) {
let r = e.length,
i = r - t.length;
return i > 0 && fillOffset(t, i), i => {
var o;
let s = 0;
for (; s < r - 2 && !(i < t[s + 1]); s++);
let l = clamp(0, 1, progress(t[s], t[s + 1], i)),
f = (o = s, isEasingList(n) ? n[wrap(0, n.length, o)] : n);
return l = f(l), mix(e[s], e[s + 1], l)
}
}(defaultOffset(p), t[o].offset), t[o].interpolatorOffsets = [...t[o].offset]), t[o].progress = t[o].interpolate(t[o].current)
}(e, n, r)
},
notify: "function" == typeof t ? () => t(n) : (i = n[o], t.pause(), t.forEachNative((e, {
easing: t
}) => {
var n, r;
if (e.updateDuration) t || (e.easing = noopReturn), e.updateDuration(1);
else {
let i = {
duration: 1e3
};
t || (i.easing = "linear"), null === (r = null === (n = e.effect) || void 0 === n ? void 0 : n.updateTiming) || void 0 === r || r.call(n, i)
}
}), () => {
t.currentTime = i.progress
})
}
}(n, e, m, f);
if (v.add(y), !d.has(n)) {
let listener = () => {
let e = performance.now();
for (let e of v) e.measure();
for (let t of v) t.update(e);
for (let e of v) e.notify()
};
d.set(n, listener);
let e = getEventTarget(n);
window.addEventListener("resize", listener, {
passive: !0
}), n !== document.documentElement && h.set(n, "function" == typeof n ? (l.add(n), i || (i = () => {
let e = {
width: window.innerWidth,
height: window.innerHeight
},
t = {
target: window,
size: e,
contentSize: e
};
l.forEach(e => e(t))
}, window.addEventListener("resize", i)), () => {
l.delete(n), !l.size && i && (i = void 0)
}) : function(e, t) {
var n, i, o;
r || "undefined" == typeof ResizeObserver || (r = new ResizeObserver(notifyAll));
let l = ("string" == typeof(n = e) ? i ? (null !== (o = i[n]) && void 0 !== o || (i[n] = document.querySelectorAll(n)), n = i[n]) : n = document.querySelectorAll(n) : n instanceof Element && (n = [n]), Array.from(n || []));
return l.forEach(e => {
let n = s.get(e);
n || (n = new Set, s.set(e, n)), n.add(t), null == r || r.observe(e)
}), () => {
l.forEach(e => {
let n = s.get(e);
null == n || n.delete(t), (null == n ? void 0 : n.size) || null == r || r.unobserve(e)
})
}
}(n, listener)), e.addEventListener("scroll", listener, {
passive: !0
})
}
let w = d.get(n),
x = requestAnimationFrame(w);
return () => {
var t;
"function" != typeof e && e.stop(), cancelAnimationFrame(x);
let r = p.get(n);
if (!r || (r.delete(y), r.size)) return;
let i = d.get(n);
d.delete(n), i && (getEventTarget(n).removeEventListener("scroll", i), null === (t = h.get(n)) || void 0 === t || t(), window.removeEventListener("resize", i))
}
}(function(e) {
var t = e.x,
n = e.y;
v.scrollX.set(t.current), v.scrollXProgress.set(t.progress), v.scrollY.set(n.current), v.scrollYProgress.set(n.progress)
}, (0, o.__assign)((0, o.__assign)({}, f), {
container: (null == t ? void 0 : t.current) || void 0,
target: (null == n ? void 0 : n.current) || void 0
}))
}, []), v
}
},
87694: function(e, t, n) {
n.d(t, {
q: function() {
return useSpring
}
});
var r = n(16898),
i = n(52983),
o = n(97923),
s = n(86885),
l = n(41567),
f = n(64418),
u = n(4060);
function useSpring(e, t) {
void 0 === t && (t = {});
var n = (0, i.useContext)(u._).isStatic,
a = (0, i.useRef)(null),
c = (0, l.c)((0, s.i)(e) ? e.get() : e);
return (0, i.useMemo)(function() {
return c.attach(function(e, i) {
return n ? i(e) : (a.current && a.current.stop(), a.current = (0, o.j)((0, r.__assign)((0, r.__assign)({
from: c.get(),
to: e,
velocity: c.getVelocity()
}, t), {
onUpdate: i
})), c.get())
})
}, [JSON.stringify(t)]), (0, f.p)(e, function(e) {
return c.set(parseFloat(e))
}), c
}
},
68092: function(e, t, n) {
n.d(t, {
H: function() {
return useTransform
}
});
var r = n(16898),
i = n(2260),
o = n(41567),
s = n(64418),
l = n(94810),
f = n(81999);
function useTransform(e, t, n, o) {
var s = "function" == typeof t ? t : function() {
for (var e, t = [], n = 0; n < arguments.length; n++) t[n] = arguments[n];
var o = !Array.isArray(t[0]),
s = o ? 0 : -1,
l = t[0 + s],
f = t[1 + s],
u = t[2 + s],
a = t[3 + s],
c = (0, i.s)(f, u, (0, r.__assign)({
mixer: "object" == typeof(e = u[0]) && e.mix ? e.mix : void 0
}, a));
return o ? c(l) : c
}(t, n, o);
return Array.isArray(e) ? useListTransform(e, s) : useListTransform([e], function(e) {
return s((0, r.__read)(e, 1)[0])
})
}
function useListTransform(e, t) {
var n, r, i, u = (0, f.h)(function() {
return []
});
return n = function() {
u.length = 0;
for (var n = e.length, r = 0; r < n; r++) u[r] = e[r].get();
return t(u)
}, r = (0, o.c)(n()), (i = function() {
return r.set(n())
})(), (0, s.f)(e, function() {
return l.ZP.update(i, !1, !0)
}), r
}
}
}
]);