@pdf-viewer/react
Version:
A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.
338 lines (332 loc) • 9.61 kB
JavaScript
import * as l from "react";
import { useState as N } from "react";
var P = function(e) {
if (typeof document > "u")
return null;
var n = Array.isArray(e) ? e[0] : e;
return n.ownerDocument.body;
}, d = /* @__PURE__ */ new WeakMap(), g = /* @__PURE__ */ new WeakMap(), y = {}, w = 0, R = function(e) {
return e && (e.host || R(e.parentNode));
}, T = function(e, n) {
return n.map(function(t) {
if (e.contains(t))
return t;
var r = R(t);
return r && e.contains(r) ? r : (console.error("aria-hidden", t, "in not contained inside", e, ". Doing nothing"), null);
}).filter(function(t) {
return !!t;
});
}, z = function(e, n, t, r) {
var a = T(n, Array.isArray(e) ? e : [e]);
y[t] || (y[t] = /* @__PURE__ */ new WeakMap());
var o = y[t], c = [], i = /* @__PURE__ */ new Set(), b = new Set(a), p = function(u) {
!u || i.has(u) || (i.add(u), p(u.parentNode));
};
a.forEach(p);
var s = function(u) {
!u || b.has(u) || Array.prototype.forEach.call(u.children, function(f) {
if (i.has(f))
s(f);
else
try {
var h = f.getAttribute(r), x = h !== null && h !== "false", k = (d.get(f) || 0) + 1, O = (o.get(f) || 0) + 1;
d.set(f, k), o.set(f, O), c.push(f), k === 1 && x && g.set(f, !0), O === 1 && f.setAttribute(t, "true"), x || f.setAttribute(r, "true");
} catch (I) {
console.error("aria-hidden: cannot operate on ", f, I);
}
});
};
return s(n), i.clear(), w++, function() {
c.forEach(function(u) {
var f = d.get(u) - 1, h = o.get(u) - 1;
d.set(u, f), o.set(u, h), f || (g.has(u) || u.removeAttribute(r), g.delete(u)), h || u.removeAttribute(t);
}), w--, w || (d = /* @__PURE__ */ new WeakMap(), d = /* @__PURE__ */ new WeakMap(), g = /* @__PURE__ */ new WeakMap(), y = {});
};
}, oe = function(e, n, t) {
t === void 0 && (t = "data-aria-hidden");
var r = Array.from(Array.isArray(e) ? e : [e]), a = n || P(e);
return a ? (r.push.apply(r, Array.from(a.querySelectorAll("[aria-live], script"))), z(r, a, t, "aria-hidden")) : function() {
return null;
};
}, m = function() {
return m = Object.assign || function(n) {
for (var t, r = 1, a = arguments.length; r < a; r++) {
t = arguments[r];
for (var o in t)
Object.prototype.hasOwnProperty.call(t, o) && (n[o] = t[o]);
}
return n;
}, m.apply(this, arguments);
};
function B(e, n) {
var t = {};
for (var r in e)
Object.prototype.hasOwnProperty.call(e, r) && n.indexOf(r) < 0 && (t[r] = e[r]);
if (e != null && typeof Object.getOwnPropertySymbols == "function")
for (var a = 0, r = Object.getOwnPropertySymbols(e); a < r.length; a++)
n.indexOf(r[a]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[a]) && (t[r[a]] = e[r[a]]);
return t;
}
function ie(e, n, t) {
if (t || arguments.length === 2)
for (var r = 0, a = n.length, o; r < a; r++)
(o || !(r in n)) && (o || (o = Array.prototype.slice.call(n, 0, r)), o[r] = n[r]);
return e.concat(o || Array.prototype.slice.call(n));
}
var S = "right-scroll-bar-position", E = "width-before-scroll-bar", L = "with-scroll-bars-hidden", D = "--removed-body-scroll-bar-size";
function A(e, n) {
return typeof e == "function" ? e(n) : e && (e.current = n), e;
}
function V(e, n) {
var t = N(function() {
return {
// value
value: e,
// last callback
callback: n,
// "memoized" public interface
facade: {
get current() {
return t.value;
},
set current(r) {
var a = t.value;
a !== r && (t.value = r, t.callback(r, a));
}
}
};
})[0];
return t.callback = n, t.facade;
}
var G = typeof window < "u" ? l.useLayoutEffect : l.useEffect, M = /* @__PURE__ */ new WeakMap();
function ce(e, n) {
var t = V(n || null, function(r) {
return e.forEach(function(a) {
return A(a, r);
});
});
return G(function() {
var r = M.get(t);
if (r) {
var a = new Set(r), o = new Set(e), c = t.current;
a.forEach(function(i) {
o.has(i) || A(i, null);
}), o.forEach(function(i) {
a.has(i) || A(i, c);
});
}
M.set(t, e);
}, [e]), t;
}
function Q(e) {
return e;
}
function q(e, n) {
n === void 0 && (n = Q);
var t = [], r = !1, a = {
read: function() {
if (r)
throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");
return t.length ? t[t.length - 1] : e;
},
useMedium: function(o) {
var c = n(o, r);
return t.push(c), function() {
t = t.filter(function(i) {
return i !== c;
});
};
},
assignSyncMedium: function(o) {
for (r = !0; t.length; ) {
var c = t;
t = [], c.forEach(o);
}
t = {
push: function(i) {
return o(i);
},
filter: function() {
return t;
}
};
},
assignMedium: function(o) {
r = !0;
var c = [];
if (t.length) {
var i = t;
t = [], i.forEach(o), c = t;
}
var b = function() {
var s = c;
c = [], s.forEach(o);
}, p = function() {
return Promise.resolve().then(b);
};
p(), t = {
push: function(s) {
c.push(s), p();
},
filter: function(s) {
return c = c.filter(s), t;
}
};
}
};
return a;
}
function ue(e) {
e === void 0 && (e = {});
var n = q(null);
return n.options = m({ async: !0, ssr: !1 }, e), n;
}
var j = function(e) {
var n = e.sideCar, t = B(e, ["sideCar"]);
if (!n)
throw new Error("Sidecar: please provide `sideCar` property to import the right car");
var r = n.read();
if (!r)
throw new Error("Sidecar medium not found");
return l.createElement(r, m({}, t));
};
j.isSideCarExport = !0;
function fe(e, n) {
return e.useMedium(n), j;
}
var W, F = function() {
if (W)
return W;
if (typeof __webpack_nonce__ < "u")
return __webpack_nonce__;
};
function H() {
if (!document)
return null;
var e = document.createElement("style");
e.type = "text/css";
var n = F();
return n && e.setAttribute("nonce", n), e;
}
function K(e, n) {
e.styleSheet ? e.styleSheet.cssText = n : e.appendChild(document.createTextNode(n));
}
function U(e) {
var n = document.head || document.getElementsByTagName("head")[0];
n.appendChild(e);
}
var J = function() {
var e = 0, n = null;
return {
add: function(t) {
e == 0 && (n = H()) && (K(n, t), U(n)), e++;
},
remove: function() {
e--, !e && n && (n.parentNode && n.parentNode.removeChild(n), n = null);
}
};
}, X = function() {
var e = J();
return function(n, t) {
l.useEffect(function() {
return e.add(n), function() {
e.remove();
};
}, [n && t]);
};
}, Y = function() {
var e = X(), n = function(t) {
var r = t.styles, a = t.dynamic;
return e(r, a), null;
};
return n;
}, Z = {
left: 0,
top: 0,
right: 0,
gap: 0
}, C = function(e) {
return parseInt(e || "", 10) || 0;
}, $ = function(e) {
var n = window.getComputedStyle(document.body), t = n[e === "padding" ? "paddingLeft" : "marginLeft"], r = n[e === "padding" ? "paddingTop" : "marginTop"], a = n[e === "padding" ? "paddingRight" : "marginRight"];
return [C(t), C(r), C(a)];
}, ee = function(e) {
if (e === void 0 && (e = "margin"), typeof window > "u")
return Z;
var n = $(e), t = document.documentElement.clientWidth, r = window.innerWidth;
return {
left: n[0],
top: n[1],
right: n[2],
gap: Math.max(0, r - t + n[2] - n[0])
};
}, te = Y(), v = "data-scroll-locked", ne = function(e, n, t, r) {
var a = e.left, o = e.top, c = e.right, i = e.gap;
return t === void 0 && (t = "margin"), `
.`.concat(L, ` {
overflow: hidden `).concat(r, `;
padding-right: `).concat(i, "px ").concat(r, `;
}
body[`).concat(v, `] {
overflow: hidden `).concat(r, `;
overscroll-behavior: contain;
`).concat([
n && "position: relative ".concat(r, ";"),
t === "margin" && `
padding-left: `.concat(a, `px;
padding-top: `).concat(o, `px;
padding-right: `).concat(c, `px;
margin-left:0;
margin-top:0;
margin-right: `).concat(i, "px ").concat(r, `;
`),
t === "padding" && "padding-right: ".concat(i, "px ").concat(r, ";")
].filter(Boolean).join(""), `
}
.`).concat(S, ` {
right: `).concat(i, "px ").concat(r, `;
}
.`).concat(E, ` {
margin-right: `).concat(i, "px ").concat(r, `;
}
.`).concat(S, " .").concat(S, ` {
right: 0 `).concat(r, `;
}
.`).concat(E, " .").concat(E, ` {
margin-right: 0 `).concat(r, `;
}
body[`).concat(v, `] {
`).concat(D, ": ").concat(i, `px;
}
`);
}, _ = function() {
var e = parseInt(document.body.getAttribute(v) || "0", 10);
return isFinite(e) ? e : 0;
}, re = function() {
l.useEffect(function() {
return document.body.setAttribute(v, (_() + 1).toString()), function() {
var e = _() - 1;
e <= 0 ? document.body.removeAttribute(v) : document.body.setAttribute(v, e.toString());
};
}, []);
}, se = function(e) {
var n = e.noRelative, t = e.noImportant, r = e.gapMode, a = r === void 0 ? "margin" : r;
re();
var o = l.useMemo(function() {
return ee(a);
}, [a]);
return l.createElement(te, { styles: ne(o, !n, a, t ? "" : "!important") });
};
export {
se as R,
B as _,
m as a,
ie as b,
ue as c,
fe as e,
E as f,
oe as h,
Y as s,
ce as u,
S as z
};