|
@@ -1,506 +0,0 @@
|
|
|
-const no = (function (e) {
|
|
|
- $i(a, e);
|
|
|
- var t,
|
|
|
- n,
|
|
|
- r =
|
|
|
- ((t = a),
|
|
|
- (n = (function () {
|
|
|
- if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
|
|
|
- if (Reflect.construct.sham) return !1;
|
|
|
- if ("function" == typeof Proxy) return !0;
|
|
|
- try {
|
|
|
- return (
|
|
|
- Boolean.prototype.valueOf.call(
|
|
|
- Reflect.construct(Boolean, [], function () {})
|
|
|
- ),
|
|
|
- !0
|
|
|
- );
|
|
|
- } catch (e) {
|
|
|
- return !1;
|
|
|
- }
|
|
|
- })()),
|
|
|
- function () {
|
|
|
- var e,
|
|
|
- r = Zi(t);
|
|
|
- if (n) {
|
|
|
- var a = Zi(this).constructor;
|
|
|
- e = Reflect.construct(r, arguments, a);
|
|
|
- } else e = r.apply(this, arguments);
|
|
|
- return Ki(this, e);
|
|
|
- });
|
|
|
- function a(e) {
|
|
|
- var t;
|
|
|
- if (
|
|
|
- (Gi(this, a),
|
|
|
- ((t = r.call(this, e)).format = ".jpg"),
|
|
|
- document.body.classList.contains("webp-supported") &&
|
|
|
- (t.format = ".webp"),
|
|
|
- document.body.classList.contains("avif-supported") &&
|
|
|
- (t.format = ".avif"),
|
|
|
- (t.containerRef = (0, i.createRef)(null)),
|
|
|
- (t.viewerRef = (0, i.createRef)(null)),
|
|
|
- (t.viewerOffsetRef = (0, i.createRef)(null)),
|
|
|
- (t.canvasRef = (0, i.createRef)(null)),
|
|
|
- (t.loadingWrap = (0, i.createRef)(null)),
|
|
|
- (t.loadingProgress = (0, i.createRef)(null)),
|
|
|
- (t.playHead = (0, i.createRef)(null)),
|
|
|
- (t.playHeadProgress = (0, i.createRef)(null)),
|
|
|
- (t.context = !1),
|
|
|
- (t.width = 1552),
|
|
|
- (t.height = 873),
|
|
|
- t.props.canvasSize)
|
|
|
- ) {
|
|
|
- var n = c(t.props.canvasSize, 2);
|
|
|
- (t.width = n[0]), (t.height = n[1]);
|
|
|
- }
|
|
|
- return (
|
|
|
- (t.lastFrame = -1),
|
|
|
- (t.floatFrame = 0),
|
|
|
- (t.frame = t.props.startFrame || 0),
|
|
|
- (t.fullFrameCount = t.props.frameCount),
|
|
|
- (t.loadedCount = 0),
|
|
|
- (t.loadComplete = !1),
|
|
|
- (t.sequence = []),
|
|
|
- (t.loadedRenderPool = []),
|
|
|
- (t.loadedRenderTimeout = null),
|
|
|
- (t.poolAnimateDelay = 40),
|
|
|
- (t.timeline = !1),
|
|
|
- (t.progress = 0),
|
|
|
- t.props.pause &&
|
|
|
- Object.keys(t.props.pause).forEach(function (e) {
|
|
|
- t.fullFrameCount += t.props.pause[e];
|
|
|
- }),
|
|
|
- (t.enterTimeline = !1),
|
|
|
- (t.exitTimeline = !1),
|
|
|
- (t.notLoadedTween = {
|
|
|
- isActive: !1,
|
|
|
- }),
|
|
|
- (t.isAbove = !1),
|
|
|
- (t.isBelow = !0),
|
|
|
- (t.lastProgress = !1),
|
|
|
- (t.justScrolled = !1),
|
|
|
- t
|
|
|
- );
|
|
|
- }
|
|
|
- return (
|
|
|
- Yi(a, [
|
|
|
- {
|
|
|
- key: "componentDidMount",
|
|
|
- value: function () {
|
|
|
- this.loadAssets(),
|
|
|
- this.canvasRef.current && this.initializeContext(),
|
|
|
- !this.enterTimeline &&
|
|
|
- this.props.enterTween &&
|
|
|
- this.initializeEnterTween(),
|
|
|
- this.timeline || (this.initializeTimeline(), this.setTimeline()),
|
|
|
- !this.exitTimeline &&
|
|
|
- this.props.exitTween &&
|
|
|
- this.initializeExitTween(),
|
|
|
- Ci.refresh();
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "getImagePath",
|
|
|
- value: function (e) {
|
|
|
- return (
|
|
|
- "https://static.getty.edu/mesopotamia/" +
|
|
|
- this.props.path +
|
|
|
- "/" +
|
|
|
- "".concat(e.toString().padStart(4, "0")) +
|
|
|
- this.format
|
|
|
- );
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "loadAssets",
|
|
|
- value: function () {
|
|
|
- var e = this;
|
|
|
- this.loadImage(1),
|
|
|
- setTimeout(function () {
|
|
|
- for (var t = 2; t <= e.props.frameCount; t += 1) e.loadImage(t);
|
|
|
- }, 60);
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "loadImage",
|
|
|
- value: function (e) {
|
|
|
- var t = this,
|
|
|
- n = new Image();
|
|
|
- if (
|
|
|
- ((n.retried = 0),
|
|
|
- (n.src = this.getImagePath(e)),
|
|
|
- (n.ogSrc = n.src),
|
|
|
- this.props.pause && e + "" in this.props.pause)
|
|
|
- )
|
|
|
- for (var r = this.props.pause[e]; r--; ) this.sequence.push(n);
|
|
|
- this.sequence.push(n),
|
|
|
- (n.onerror = function () {
|
|
|
- var e = Math.floor(Date.now() * Math.random())
|
|
|
- .toString()
|
|
|
- .substring(0, 8);
|
|
|
- n.retried < 2
|
|
|
- ? setTimeout(function () {
|
|
|
- n.src = n.ogSrc + "?" + e;
|
|
|
- }, 80)
|
|
|
- : n.retried < 3 &&
|
|
|
- setTimeout(function () {
|
|
|
- n.src = n.ogSrc.slice(0, -4) + ".jpg?" + e;
|
|
|
- }, 80),
|
|
|
- n.retried++;
|
|
|
- }),
|
|
|
- (n.onload = function () {
|
|
|
- 1 === e && t.renderImageToCanvas(0),
|
|
|
- t.frame > e &&
|
|
|
- t.timeline.scrollTrigger.isActive &&
|
|
|
- t.poolNewFrames(e - 1),
|
|
|
- (t.loadedCount += 1),
|
|
|
- (t.loadingProgress.current.style.width =
|
|
|
- (t.loadedCount / (parseFloat(t.props.frameCount) - 1)) * 100 +
|
|
|
- "%"),
|
|
|
- t.loadedCount === parseFloat(t.props.frameCount) - 1 &&
|
|
|
- t.loadingComplete();
|
|
|
- });
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "loadingComplete",
|
|
|
- value: function () {
|
|
|
- console.log(this.props.path, "loading complete"),
|
|
|
- (this.loadComplete = !0),
|
|
|
- this.isAbove && this.renderImageToCanvas(this.loadedCount - 1);
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "poolNewFrames",
|
|
|
- value: function (e) {
|
|
|
- this.loadedRenderPool.unshift(e),
|
|
|
- this.loadedRenderPool.sort(function (e, t) {
|
|
|
- return t - e;
|
|
|
- }),
|
|
|
- this.animatePool();
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "animatePool",
|
|
|
- value: function () {
|
|
|
- var e = this;
|
|
|
- !this.loadedRenderTimeout &&
|
|
|
- this.loadedRenderPool.length &&
|
|
|
- (this.loadedRenderTimeout = setTimeout(function () {
|
|
|
- e.loadedRenderTimeout = !1;
|
|
|
- var t = e.loadedRenderPool[e.loadedRenderPool.length - 1];
|
|
|
- if (t <= e.frame) {
|
|
|
- var n = e.loadedRenderPool.pop();
|
|
|
- e.renderImageToCanvas(n), e.animatePool();
|
|
|
- }
|
|
|
- e.frame < t && (e.loadedRenderPool = []);
|
|
|
- }, this.poolAnimateDelay));
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "componentWillUnmount",
|
|
|
- value: function () {
|
|
|
- this.timeline && this.timeline.kill(!0);
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "initializeContext",
|
|
|
- value: function () {
|
|
|
- (this.context = this.canvasRef.current.getContext("2d", {
|
|
|
- alpha: !1,
|
|
|
- desynchronized: !0,
|
|
|
- powerPreference: "high-performance",
|
|
|
- })),
|
|
|
- (this.context.imageSmoothingEnabled = !0),
|
|
|
- (this.context.imageSmoothingQuality = "high");
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "initializeTimeline",
|
|
|
- value: function () {
|
|
|
- var e = this,
|
|
|
- t = null,
|
|
|
- n = function () {
|
|
|
- ra.to(e.loadingWrap.current, {
|
|
|
- autoAlpha: 1,
|
|
|
- });
|
|
|
- },
|
|
|
- r = function () {
|
|
|
- ra.to(e.loadingWrap.current, {
|
|
|
- autoAlpha: 0,
|
|
|
- });
|
|
|
- };
|
|
|
- r(),
|
|
|
- (this.timeline = ra.timeline({
|
|
|
- scrollTrigger: {
|
|
|
- trigger: this.containerRef.current,
|
|
|
- pin: this.viewerRef.current,
|
|
|
- scrub: 0.66,
|
|
|
- start: "top top",
|
|
|
- end: "bottom bottom",
|
|
|
- ease: "none",
|
|
|
- markers: this.props.debug && false,
|
|
|
- onUpdate: function (n) {
|
|
|
- e.props.debug,
|
|
|
- !1 === e.lastProgress && (e.lastProgress = n.progress),
|
|
|
- e.lastProgress !== n.progress &&
|
|
|
- ((e.justScrolled = !0),
|
|
|
- clearTimeout(t),
|
|
|
- (t = setTimeout(function () {
|
|
|
- e.frame > e.loadedCount &&
|
|
|
- !e.notLoadedTween.isActive &&
|
|
|
- (e.notLoadedTween = ra.to(e.loadingWrap.current, {
|
|
|
- backgroundColor: "#8888a0",
|
|
|
- duration: 0.33,
|
|
|
- repeat: 1,
|
|
|
- yoyo: !0,
|
|
|
- }));
|
|
|
- }, 100)),
|
|
|
- (e.lastProgress = n.progress));
|
|
|
- },
|
|
|
- onScrubComplete: function () {
|
|
|
- e.justScrolled = !1;
|
|
|
- },
|
|
|
- onEnter: function () {
|
|
|
- n(), (e.isAbove = !1);
|
|
|
- },
|
|
|
- onEnterBack: function () {
|
|
|
- n(), (e.isBelow = !1);
|
|
|
- },
|
|
|
- onLeave: function () {
|
|
|
- r(), (e.isAbove = !0);
|
|
|
- },
|
|
|
- onLeaveBack: function () {
|
|
|
- r(), (e.isBelow = !0);
|
|
|
- },
|
|
|
- },
|
|
|
- }));
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "setTimeline",
|
|
|
- value: function () {
|
|
|
- var e = this;
|
|
|
- this.timeline.to(this, {
|
|
|
- floatFrame: this.fullFrameCount - 1,
|
|
|
- ease: "none",
|
|
|
- onUpdate: function () {
|
|
|
- (e.frame = Math.floor(e.floatFrame)),
|
|
|
- e.lastFrame === e.frame ||
|
|
|
- e.loadedRenderPool.length ||
|
|
|
- e.renderImageToCanvas(e.frame);
|
|
|
- },
|
|
|
- });
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "initializeEnterTween",
|
|
|
- value: function () {
|
|
|
- var e = this.props.enterTween.duration || 1;
|
|
|
- ra.set(this.viewerRef.current, {
|
|
|
- yPercent: -100 * e,
|
|
|
- });
|
|
|
- var t = !0;
|
|
|
- if (
|
|
|
- (void 0 !== this.props.enterTween.pin &&
|
|
|
- (t = this.props.enterTween.pin),
|
|
|
- (this.enterTimeline = ra.timeline({
|
|
|
- scrollTrigger: {
|
|
|
- trigger: this.viewerRef.current,
|
|
|
- scrub: !0,
|
|
|
- pin: t,
|
|
|
- start: function () {
|
|
|
- return "top top";
|
|
|
- },
|
|
|
- end: function () {
|
|
|
- return "top top-=" + window.innerHeight * e;
|
|
|
- },
|
|
|
- },
|
|
|
- })),
|
|
|
- this.props.enterTween.to &&
|
|
|
- this.enterTimeline.to(
|
|
|
- this.viewerRef.current,
|
|
|
- to(
|
|
|
- {
|
|
|
- ease: "none",
|
|
|
- },
|
|
|
- this.props.enterTween.to
|
|
|
- )
|
|
|
- ),
|
|
|
- this.props.enterTween.from &&
|
|
|
- this.enterTimeline.from(
|
|
|
- this.viewerRef.current,
|
|
|
- to(
|
|
|
- {
|
|
|
- ease: "none",
|
|
|
- },
|
|
|
- this.props.enterTween.from
|
|
|
- )
|
|
|
- ),
|
|
|
- this.props.enterTween.fromTo)
|
|
|
- ) {
|
|
|
- var n = this.props.enterTween.fromTo[0],
|
|
|
- r = this.props.enterTween.fromTo[1];
|
|
|
- this.enterTimeline.fromTo(
|
|
|
- this.viewerRef.current,
|
|
|
- n,
|
|
|
- to(
|
|
|
- {
|
|
|
- ease: "none",
|
|
|
- },
|
|
|
- r
|
|
|
- )
|
|
|
- );
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "initializeExitTween",
|
|
|
- value: function () {
|
|
|
- if (
|
|
|
- (console.log(this.props.path, "initializing exit tween "),
|
|
|
- (this.exitTimeline = ra.timeline({
|
|
|
- scrollTrigger: {
|
|
|
- scrub: !0,
|
|
|
- trigger: this.containerRef.current,
|
|
|
- pin: this.viewerRef.current,
|
|
|
- onLeave: this.props.exitTween.onLeave,
|
|
|
- onLeaveBack: this.props.exitTween.onLeaveBack,
|
|
|
- onEnterBack: this.props.exitTween.onEnterBack,
|
|
|
- start: function () {
|
|
|
- return "bottom bottom";
|
|
|
- },
|
|
|
- end: function () {
|
|
|
- return "bottom top";
|
|
|
- },
|
|
|
- },
|
|
|
- })),
|
|
|
- this.props.exitTween.to &&
|
|
|
- this.exitTimeline.to(
|
|
|
- this.viewerRef.current,
|
|
|
- to(
|
|
|
- {
|
|
|
- ease: "none",
|
|
|
- },
|
|
|
- this.props.exitTween.to
|
|
|
- )
|
|
|
- ),
|
|
|
- this.props.exitTween.from &&
|
|
|
- this.exitTimeline.from(
|
|
|
- this.viewerRef.current,
|
|
|
- to(
|
|
|
- {
|
|
|
- ease: "none",
|
|
|
- },
|
|
|
- this.props.exitTween.from
|
|
|
- )
|
|
|
- ),
|
|
|
- this.props.exitTween.fromTo)
|
|
|
- ) {
|
|
|
- var e = this.props.exitTween.fromTo[0],
|
|
|
- t = this.props.exitTween.fromTo[1];
|
|
|
- this.exitTimeline.fromTo(
|
|
|
- this.viewerRef.current,
|
|
|
- e,
|
|
|
- to(
|
|
|
- to({}, t),
|
|
|
- {},
|
|
|
- {
|
|
|
- ease: "none",
|
|
|
- }
|
|
|
- )
|
|
|
- );
|
|
|
- }
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "renderImageToCanvas",
|
|
|
- value: function (e) {
|
|
|
- if (this.sequence[e])
|
|
|
- if (this.context.drawImage) {
|
|
|
- this.props.debug,
|
|
|
- this.context.drawImage(this.sequence[e], 0, 0),
|
|
|
- (this.lastFrame = e);
|
|
|
- var t = 100 - (this.frame / this.fullFrameCount) * 100 + "%",
|
|
|
- n = 100 - (e / this.fullFrameCount) * 100 + "%";
|
|
|
- (this.playHeadTween = ra.to(this.playHead.current, {
|
|
|
- duration: 0.05,
|
|
|
- right: n,
|
|
|
- ease: "none",
|
|
|
- })),
|
|
|
- (this.playHeadProgressTween = ra.to(
|
|
|
- this.playHeadProgress.current,
|
|
|
- {
|
|
|
- duration: 0.05,
|
|
|
- right: t,
|
|
|
- ease: "none",
|
|
|
- }
|
|
|
- ));
|
|
|
- } else this.initializeContext();
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- key: "render",
|
|
|
- value: function () {
|
|
|
- var e = {
|
|
|
- height: this.props.height || "500vh",
|
|
|
- };
|
|
|
- return (0, l.jsxs)(l.Fragment, {
|
|
|
- children: [
|
|
|
- (0, l.jsxs)("div", {
|
|
|
- ref: this.loadingWrap,
|
|
|
- className: o["load-progress-wrap"],
|
|
|
- children: [
|
|
|
- (0, l.jsxs)("div", {
|
|
|
- className: o["playhead-wrap"],
|
|
|
- children: [
|
|
|
- (0, l.jsx)("div", {
|
|
|
- ref: this.playHead,
|
|
|
- className: o.playhead,
|
|
|
- }),
|
|
|
- (0, l.jsx)("div", {
|
|
|
- ref: this.playHeadProgress,
|
|
|
- className: o["playhead-progress"],
|
|
|
- }),
|
|
|
- ],
|
|
|
- }),
|
|
|
- (0, l.jsx)("div", {
|
|
|
- ref: this.loadingProgress,
|
|
|
- className: o["load-progress"],
|
|
|
- style: {
|
|
|
- width: "0%",
|
|
|
- },
|
|
|
- }),
|
|
|
- ],
|
|
|
- }),
|
|
|
- (0, l.jsxs)("div", {
|
|
|
- ref: this.containerRef,
|
|
|
- className: o.sequence,
|
|
|
- style: e,
|
|
|
- children: [
|
|
|
- (0, l.jsx)("div", {
|
|
|
- ref: this.viewerRef,
|
|
|
- className: o["canvas-viewer"],
|
|
|
- children: (0, l.jsx)("div", {
|
|
|
- style: {
|
|
|
- overflow: "hidden",
|
|
|
- },
|
|
|
- children: (0, l.jsx)("canvas", {
|
|
|
- ref: this.canvasRef,
|
|
|
- className: o["sequence-canvas"],
|
|
|
- width: this.width,
|
|
|
- height: this.height,
|
|
|
- }),
|
|
|
- }),
|
|
|
- }),
|
|
|
- this.props.children,
|
|
|
- ],
|
|
|
- }),
|
|
|
- ],
|
|
|
- });
|
|
|
- },
|
|
|
- },
|
|
|
- ]),
|
|
|
- a
|
|
|
- );
|
|
|
-})(i.Component);
|