@prose-reader/core 1.371.0 → 1.373.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -538,7 +538,9 @@ var Tt = class {
538
538
  })))).pipe(j(n.$.destroy$)).subscribe(), n;
539
539
  }, kt = (e) => E(...e.spine.spineItemsManager.items.map((e) => e.watch("isLoaded").pipe(A(() => {
540
540
  let t = e.renderer.getDocumentFrame();
541
- return t?.contentDocument ? E(...Array.from(t.contentDocument.querySelectorAll("a")).map((e) => w(e, "click"))) : d;
541
+ if (!t?.contentDocument) return d;
542
+ let n = Array.from(t.contentDocument.querySelectorAll("a")).map((e) => w(e, "click"));
543
+ return E(...n);
542
544
  })))).pipe(M((e) => {
543
545
  e.preventDefault();
544
546
  }), O()), U = class extends f {
@@ -739,7 +741,9 @@ var Tt = class {
739
741
  let a = t.getAttribute("src") || t.getAttribute("href");
740
742
  if (!a) return D(null);
741
743
  let o = r.manifest.items.find(({ href: e }) => `${Nt(n, a).toLowerCase()}`.endsWith(`${e.toLowerCase()}`));
742
- return o ? C(new Mt(o, i).getResource()).pipe(ue((e) => e instanceof Response ? C(e.blob()) : D(void 0)), ue((a) => {
744
+ if (!o) return D(null);
745
+ let s = new Mt(o, i);
746
+ return C(s.getResource()).pipe(ue((e) => e instanceof Response ? C(e.blob()) : D(void 0)), ue((a) => {
743
747
  if (!a) return D(null);
744
748
  let o = e?.defaultView?.URL.createObjectURL(a) ?? "";
745
749
  if (t.hasAttribute("src")) t.setAttribute("src", o);
@@ -753,7 +757,7 @@ var Tt = class {
753
757
  }, t.onerror = a.error;
754
758
  });
755
759
  return D(null);
756
- })) : D(null);
760
+ }));
757
761
  }, It = ({ settings: e, item: t, context: n }) => (r) => r.pipe(A((r) => {
758
762
  let a = Je(r.contentDocument), o = i(t.href), s = a.map((t) => Ft(r.contentDocument, t, o, n, e));
759
763
  return s.length === 0 ? D(r) : v(s).pipe(T(() => r));
@@ -1083,17 +1087,19 @@ var Tt = class {
1083
1087
  let { width: r, height: i } = this.viewport.pageSize, a = this.getFrameElement();
1084
1088
  if (!a) return D(void 0);
1085
1089
  let o = this.settings.values.computedPageTurnMode === "scrollable";
1086
- if (a.contentDocument?.documentElement && (R(a.contentDocument.documentElement, "data-prose-reader-html-renderer-spread-position", n), o ? a.contentDocument?.documentElement.classList.add("prose-reader-html-renderer-touch-enabled") : a.contentDocument?.documentElement.classList.remove("prose-reader-html-renderer-touch-enabled")), this.isPrePaginated()) return D(Qt({
1087
- blankPagePosition: t,
1088
- frameElement: a,
1089
- isRTL: this.context.isRTL(),
1090
- minPageSpread: e,
1091
- pageHeight: i,
1092
- pageWidth: r,
1093
- spreadPosition: n
1094
- }));
1095
- let s = !!this.writingMode?.startsWith("vertical"), c = this.isImageType();
1096
- return D(an({
1090
+ if (a.contentDocument?.documentElement && (R(a.contentDocument.documentElement, "data-prose-reader-html-renderer-spread-position", n), o ? a.contentDocument?.documentElement.classList.add("prose-reader-html-renderer-touch-enabled") : a.contentDocument?.documentElement.classList.remove("prose-reader-html-renderer-touch-enabled")), this.isPrePaginated()) {
1091
+ let o = Qt({
1092
+ blankPagePosition: t,
1093
+ frameElement: a,
1094
+ isRTL: this.context.isRTL(),
1095
+ minPageSpread: e,
1096
+ pageHeight: i,
1097
+ pageWidth: r,
1098
+ spreadPosition: n
1099
+ });
1100
+ return D(o);
1101
+ }
1102
+ let s = !!this.writingMode?.startsWith("vertical"), c = this.isImageType(), l = an({
1097
1103
  pageHeight: i,
1098
1104
  pageWidth: r,
1099
1105
  frameElement: a,
@@ -1105,7 +1111,8 @@ var Tt = class {
1105
1111
  minPageSpread: e,
1106
1112
  isImageType: c,
1107
1113
  enableTouch: this.settings.values.computedPageTurnMode === "scrollable"
1108
- }));
1114
+ });
1115
+ return D(l);
1109
1116
  }
1110
1117
  onRenderHeadless() {
1111
1118
  return C(this.resourcesHandler.fetchResource()).pipe(A((e) => {
@@ -1225,8 +1232,8 @@ var cn = class {
1225
1232
  t && z(t.style, "visibility", "hidden");
1226
1233
  })), i = e.context.bridgeEvent.viewportBusy$.pipe(I(() => {
1227
1234
  t && z(t.style, "visibility", "visible");
1228
- })), a = r(e.viewportFree$).pipe(ke(1));
1229
- return E(n, e.settings.values$.pipe(Ce(() => e.settings.values.computedPageTurnMode), be()).pipe(P((e) => e === "controlled" ? i.pipe(P(() => a)) : r(D(void 0))), F(e.$.destroy$)));
1235
+ })), a = r(e.viewportFree$).pipe(ke(1)), o = e.settings.values$.pipe(Ce(() => e.settings.values.computedPageTurnMode), be()).pipe(P((e) => e === "controlled" ? i.pipe(P(() => a)) : r(D(void 0))), F(e.$.destroy$));
1236
+ return E(n, o);
1230
1237
  }, vn = "@prose-reader/core", yn = 0, bn = 200, X = "prose-reader", xn = `${X}-style`, Sn = `data-${X}-id`, Cn = `${X}-viewport`, wn = `${X}-scroll-navigator`, Tn = `${X}-spine-item`, En = `--${X}-absolute-viewport-width`, Dn = `--${X}-absolute-viewport-height`, On = `${X}-enhancer-loading`, kn = `${On}-container`, An = `${On}-logo`, jn = `${On}-details`, Mn = ({ container: e, item: t }) => {
1231
1238
  let n = e.ownerDocument.createElement("div");
1232
1239
  n.classList.add(kn);
@@ -1238,7 +1245,7 @@ var cn = class {
1238
1245
  z(e.style, "color", Nn(t));
1239
1246
  }, Fn = (e) => {
1240
1247
  let t = /* @__PURE__ */ new WeakMap();
1241
- return e.hookManager.register("item.onBeforeContainerAttach", ({ element: n, item: r }) => {
1248
+ e.hookManager.register("item.onBeforeContainerAttach", ({ element: n, item: r }) => {
1242
1249
  z(n.style, "z-index", "0");
1243
1250
  let i = Mn({
1244
1251
  container: n,
@@ -1248,13 +1255,14 @@ var cn = class {
1248
1255
  loadingElement: i,
1249
1256
  theme: e.theme.get()
1250
1257
  }), t.set(n, i), n.appendChild(i);
1251
- }), E(e.spineItemsObserver.itemStateChange$.pipe(I(({ item: e, isError: n, error: r }) => {
1258
+ });
1259
+ let n = e.spineItemsObserver.itemStateChange$.pipe(I(({ item: e, isError: n, error: r }) => {
1252
1260
  if (!n) return;
1253
1261
  let i = t.get(e.containerElement);
1254
1262
  if (!i) return;
1255
1263
  let a = i.querySelector("[data-details-element]");
1256
1264
  Ze(a) && Le(a, "innerText", r?.toString() ?? "Unknown error");
1257
- })), e.theme.$.theme$.pipe(I((n) => {
1265
+ })), r = e.theme.$.theme$.pipe(I((n) => {
1258
1266
  for (let r of e.spineItemsManager.items) {
1259
1267
  let e = t.get(r.containerElement);
1260
1268
  e && Pn({
@@ -1262,7 +1270,8 @@ var cn = class {
1262
1270
  theme: n
1263
1271
  });
1264
1272
  }
1265
- })));
1273
+ }));
1274
+ return E(n, r);
1266
1275
  }, In = (e) => {
1267
1276
  e.hookManager.register("item.onDocumentLoad", async ({ itemId: t }) => {
1268
1277
  let n = e.spineItemsManager.get(t)?.renderer.getDocumentFrame();
@@ -1367,8 +1376,8 @@ var cn = class {
1367
1376
  let f = s.spine.pages.pipe(Ee({
1368
1377
  refCount: !0,
1369
1378
  bufferSize: 1
1370
- }));
1371
- return E(l, d, u, f, Rn(s), Wn(s), Fn(s)).pipe(F(s.$.destroy$)).subscribe(), {
1379
+ })), p = Rn(s), m = Wn(s), h = Fn(s);
1380
+ return E(l, d, u, f, p, m, h).pipe(F(s.$.destroy$)).subscribe(), {
1372
1381
  ...s,
1373
1382
  destroy: () => {
1374
1383
  c.destroy(), s.destroy();
@@ -1763,7 +1772,8 @@ var cn = class {
1763
1772
  }
1764
1773
  }, sr = 500, cr = class extends Q {
1765
1774
  constructor(e, t) {
1766
- super(), this.scrollNavigationController = e, this.lock = t, this.navigationSubject = new m(), this.navigation$ = this.navigationSubject.asObservable(), E(this.scrollNavigationController.userScroll$.pipe(oe((e) => {
1775
+ super(), this.scrollNavigationController = e, this.lock = t, this.navigationSubject = new m(), this.navigation$ = this.navigationSubject.asObservable();
1776
+ let n = this.scrollNavigationController.userScroll$.pipe(oe((e) => {
1767
1777
  let t = this.lock();
1768
1778
  return E(this.scrollNavigationController.userScroll$, D(e)).pipe(te(sr, h), S(), M(() => {
1769
1779
  let e = this.scrollNavigationController.fromScrollPosition(this.scrollNavigationController.scrollPosition);
@@ -1775,7 +1785,8 @@ var cn = class {
1775
1785
  }), se(() => {
1776
1786
  t();
1777
1787
  }));
1778
- }))).pipe(j(this.destroy$)).subscribe();
1788
+ }));
1789
+ E(n).pipe(j(this.destroy$)).subscribe();
1779
1790
  }
1780
1791
  }, lr = (e) => e.pagination.state$.pipe(N(e.settings.values$), T(([t, { computedPageTurnDirection: n }]) => {
1781
1792
  let { spineItems: r, readingDirection: i } = e.context.manifest, a = r.length ?? 0, o = t.begin.spineItemIndex === 0, s = t.end.spineItemIndex === Math.max(a - 1, 0), c = t.end.spineItemIndex === Math.max(a - 1, 0), l = t.begin.spineItemIndex === 0, u = t.begin.pageIndexInSpineItem === 0, d = t.end.pageIndexInSpineItem === t.end.numberOfPagesInSpineItem - 1;
@@ -1798,19 +1809,19 @@ var cn = class {
1798
1809
  leading: !0
1799
1810
  }), M(i), se(i));
1800
1811
  }, dr = (e) => (t) => {
1801
- let n = e(t), r = lr(n), i = Zn(n), a = new ar(n), o = new or(n), s = new cr(n.navigation.scrollNavigationController, n.navigation.lock);
1802
- E(Qn(n, a), s.navigation$.pipe(M((e) => {
1812
+ let n = e(t), r = lr(n), i = Zn(n), a = new ar(n), o = new or(n), s = new cr(n.navigation.scrollNavigationController, n.navigation.lock), c = Qn(n, a), l = s.navigation$.pipe(M((e) => {
1803
1813
  n.navigation.navigate(e);
1804
- }))).pipe(j(n.$.destroy$)).subscribe();
1805
- let c = (e) => {
1814
+ }));
1815
+ E(c, l).pipe(j(n.$.destroy$)).subscribe();
1816
+ let u = (e) => {
1806
1817
  n.mount(e), t.cfi && a.goToCfi(t.cfi, { animate: !1 });
1807
- }, l = () => {
1818
+ }, d = () => {
1808
1819
  s.destroy(), n.destroy();
1809
1820
  };
1810
1821
  return {
1811
1822
  ...n,
1812
- mount: c,
1813
- destroy: l,
1823
+ mount: u,
1824
+ destroy: d,
1814
1825
  navigation: {
1815
1826
  ...n.navigation,
1816
1827
  state$: r,
@@ -2215,8 +2226,8 @@ var cn = class {
2215
2226
  let t = e.pagination.state$, n = e.spine.pages.layout$, r = Yr(e).pipe(k({
2216
2227
  bufferSize: 1,
2217
2228
  refCount: !0
2218
- })), i = v([
2219
- t.pipe(T(Zr), b(gr)),
2229
+ })), i = t.pipe(T(Zr), b(gr)), a = v([
2230
+ i,
2220
2231
  r,
2221
2232
  n
2222
2233
  ]).pipe(T(([t, n, r]) => {
@@ -2233,14 +2244,14 @@ var cn = class {
2233
2244
  }), k({
2234
2245
  bufferSize: 1,
2235
2246
  refCount: !0
2236
- })), a = v([
2247
+ })), s = e.settings.watch(["computedSpreadMode"]).pipe(T((e) => e.computedSpreadMode ?? !1), b()), c = n.pipe(T((t) => Kr({
2248
+ items: e.spineItemsManager.items,
2249
+ pagesState: t
2250
+ })), b(qr)), l = v([
2237
2251
  t,
2238
- e.settings.watch(["computedSpreadMode"]).pipe(T((e) => e.computedSpreadMode ?? !1), b()),
2239
- i,
2240
- n.pipe(T((t) => Kr({
2241
- items: e.spineItemsManager.items,
2242
- pagesState: t
2243
- })), b(qr))
2252
+ s,
2253
+ a,
2254
+ c
2244
2255
  ]).pipe(T(([e, t, n, r]) => ({
2245
2256
  ...e,
2246
2257
  begin: {
@@ -2253,17 +2264,17 @@ var cn = class {
2253
2264
  },
2254
2265
  isUsingSpread: t,
2255
2266
  ...r
2256
- }))), s = Jn(e.navigation).pipe(T(({ position: e }) => e), b(o));
2257
- return v([a, v([
2267
+ }))), u = Jn(e.navigation).pipe(T(({ position: e }) => e), b(o)), d = v([
2258
2268
  t,
2259
2269
  e.layout$,
2260
- s
2270
+ u
2261
2271
  ]).pipe(A(([t, n, r]) => Jr({
2262
2272
  reader: e,
2263
2273
  paginationInfo: t,
2264
2274
  navigationPosition: r,
2265
2275
  manifest: e.context.manifest
2266
- })), T((e) => ({ percentageEstimateOfBook: e })))]).pipe(T(([e, t]) => ({
2276
+ })), T((e) => ({ percentageEstimateOfBook: e })));
2277
+ return v([l, d]).pipe(T(([e, t]) => ({
2267
2278
  ...e,
2268
2279
  ...t
2269
2280
  })), b(gr), g(5));
@@ -2317,7 +2328,7 @@ var cn = class {
2317
2328
  }
2318
2329
  }, ti = ({ selection: e, spineItem: t }) => {
2319
2330
  let { anchorNode: n, anchorOffset: r, focusNode: i, focusOffset: a } = e;
2320
- if (!(!n || !i)) try {
2331
+ if (n && i) try {
2321
2332
  return ei({
2322
2333
  node: n,
2323
2334
  offset: r
@@ -2499,7 +2510,7 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2499
2510
  let t = this.value.element;
2500
2511
  if (!t) return;
2501
2512
  let n = this.fromSpinePosition(e);
2502
- Math.round(n.x) === t.scrollLeft && Math.round(n.y) === t.scrollTop || (this.scrollingSubject.next(!0), t.scrollTo({
2513
+ (Math.round(n.x) !== t.scrollLeft || Math.round(n.y) !== t.scrollTop) && (this.scrollingSubject.next(!0), t.scrollTo({
2503
2514
  left: n.x,
2504
2515
  top: n.y,
2505
2516
  behavior: "instant"
@@ -2515,8 +2526,8 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2515
2526
  t && (e === "scrollable" ? z(t.style, "display", "block") : z(t.style, "display", "contents"));
2516
2527
  })), s = this.navigateSubject.pipe(M(this.applyNavigationPosition));
2517
2528
  this.isNavigating$ = this.scrollingSubject.asObservable();
2518
- let c = v([E(r.element$.pipe(x(K), A((e) => vt(e))), r.element$.pipe(x(K), A((e) => w(e, "scroll"))), r.spineItemsObserver.itemResize$).pipe(A(() => ve(10).pipe(T(() => !1), pe(!0))), b(), pe(!1)), this.isNavigating$]).pipe(T(([e, t]) => e || t), k(1));
2519
- this.userScroll$ = this.watch("element").pipe(x(K), A((e) => t.watch(["computedPageTurnMode"]).pipe(A(({ computedPageTurnMode: t }) => t === "controlled" ? d : w(e, "scroll").pipe(N(c), x(([, e]) => !e), T(([e]) => e))))), O()), E(a, o, s).pipe(j(this.destroy$)).subscribe();
2529
+ let c = E(r.element$.pipe(x(K), A((e) => vt(e))), r.element$.pipe(x(K), A((e) => w(e, "scroll"))), r.spineItemsObserver.itemResize$).pipe(A(() => ve(10).pipe(T(() => !1), pe(!0))), b(), pe(!1)), u = v([c, this.isNavigating$]).pipe(T(([e, t]) => e || t), k(1));
2530
+ this.userScroll$ = this.watch("element").pipe(x(K), A((e) => t.watch(["computedPageTurnMode"]).pipe(A(({ computedPageTurnMode: t }) => t === "controlled" ? d : w(e, "scroll").pipe(N(u), x(([, e]) => !e), T(([e]) => e))))), O()), E(a, o, s).pipe(j(this.destroy$)).subscribe();
2520
2531
  }
2521
2532
  update(e) {
2522
2533
  this.mergeCompare(e);
@@ -2568,7 +2579,8 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2568
2579
  x: 0,
2569
2580
  y: 0
2570
2581
  }
2571
- }), this.reader = e, this.enterSubject = new m(), this.exitSubject = new m(), E(this.enterSubject.pipe(A((e) => {
2582
+ }), this.reader = e, this.enterSubject = new m(), this.exitSubject = new m();
2583
+ let t = this.enterSubject.pipe(A((e) => {
2572
2584
  let { scale: t = 1, animate: n = !1 } = e ?? {}, r = this.reader.viewport.value.element;
2573
2585
  R(this.viewport.element, `data-${X}-zooming`, "true");
2574
2586
  let i = this.scrollNavigationController.value.element;
@@ -2582,7 +2594,7 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2582
2594
  }), this.updateZoom(t), t !== 1 && this.isControlled ? ve(e?.animate ? vi : 0).pipe(M(() => {
2583
2595
  this.reader.layout();
2584
2596
  })) : u;
2585
- })), this.exitSubject.pipe(A((e) => {
2597
+ })), n = this.exitSubject.pipe(A((e) => {
2586
2598
  let t = this.reader.viewport.value.element;
2587
2599
  R(this.viewport.element, `data-${X}-zooming`, "false");
2588
2600
  let n = this.scrollNavigationController.value.element;
@@ -2593,7 +2605,8 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2593
2605
  let e = this.reader.viewport.value.element;
2594
2606
  B(e.style, "transform-origin"), B(e.style, "transition"), this.isControlled && this.reader.layout();
2595
2607
  }), j(this.enterSubject));
2596
- }))).pipe(j(this.destroy$)).subscribe();
2608
+ }));
2609
+ E(t, n).pipe(j(this.destroy$)).subscribe();
2597
2610
  }
2598
2611
  enter(e) {
2599
2612
  this.enterSubject.next(e);
@@ -2681,7 +2694,10 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2681
2694
  }).trim(), wi = (e, t) => Si({
2682
2695
  nodeOrRange: e,
2683
2696
  item: t
2684
- }), Ti = (e) => e.index.toString(), Ei = (e) => e[0]?.index === 6 && e.length > 1, Di = (e) => je(Ne(e)), Oi = (e) => Array.isArray(e) ? e[0] && Ei(e[0]) ? e[0] : void 0 : e.parent[0] && Ei(e.parent[0]) ? e.parent[0] : void 0, ki = (e) => {
2697
+ }), Ti = (e) => e.index.toString(), Ei = (e) => e[0]?.index === 6 && e.length > 1, Di = (e) => {
2698
+ let t = Ne(e);
2699
+ return je(t);
2700
+ }, Oi = (e) => Array.isArray(e) ? e[0] && Ei(e[0]) ? e[0] : void 0 : e.parent[0] && Ei(e.parent[0]) ? e.parent[0] : void 0, ki = (e) => {
2685
2701
  let t = Ne(e), n = ((Oi(t) ?? [])[1]?.index ?? 2) / 2 - 1, r = Me(t);
2686
2702
  return {
2687
2703
  isCfiRange: r,
@@ -2886,7 +2902,9 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2886
2902
  }
2887
2903
  destroy(e, t, n) {
2888
2904
  let r = this._hookExecutions.filter((r) => n && r.ref === n || e === r.name && (!t || t && t === r.id));
2889
- return this._hookExecutions = this._hookExecutions.filter((e) => !r.includes(e)), v(r.map(({ destroyFn: e }) => e()));
2905
+ this._hookExecutions = this._hookExecutions.filter((e) => !r.includes(e));
2906
+ let i = r.map(({ destroyFn: e }) => e());
2907
+ return v(i);
2890
2908
  }
2891
2909
  }, Li = "[data-prose-reader-spine-item][data-is-ready=false]{pointer-events:none;-webkit-user-select:none;user-select:none}.prose-reader-enhancer-loading-container{width:100%;height:100%;max-width:var(--prose-reader-absolute-viewport-width,100%);text-align:center;color:#cacaca;z-index:1;background-color:#fff;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}[data-prose-reader-spine-item][data-is-ready=true] .prose-reader-enhancer-loading-container{visibility:hidden;z-index:0}.prose-reader-enhancer-loading-logo{font-size:4em}.prose-reader-enhancer-loading-details{text-overflow:ellipsis;white-space:nowrap;width:80%;max-width:300px;font-size:1.2em;overflow:hidden}[data-prose-reader-scroll-navigator][data-prose-reader-zooming=true]{overflow:scroll}[data-prose-reader-scroll-navigator][data-prose-reader-zooming=true][data-prose-reader-zooming-direction=down]{overflow-x:auto}[data-prose-reader-scroll-navigator]{width:100%;height:100%;position:relative;overflow:hidden scroll}[data-prose-reader-viewport]{background-color:#fff;width:100%;height:100%;position:relative}.prose-reader-reader{background-color:#fff;position:relative;overflow:hidden}", Ri = (e) => ({
2892
2910
  x: -e.x,
@@ -2902,14 +2920,14 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
2902
2920
  super(), this.settings = e, this.hookManager = t, this.context = n, this.spine = r, this.viewport = i, this.navigateSubject = new m(), this.isActive = () => this.settings.values.computedPageTurnMode === "controlled", this.getNavigationVisibleArea = () => this.viewport.absoluteViewport, this.element$ = new l(n.document.createElement("div"));
2903
2921
  let o = this.spine.element$.pipe(x(K), N(this.element$), M(([e, t]) => {
2904
2922
  t.style.cssText = "\n height: 100%;\n width: 100%;\n position: relative;\n ", t.className = `${X}-controlled-navigator`, t.innerHTML = "", t.appendChild(e), this.viewport.value.element.appendChild(t), this.element$.next(t);
2905
- })), s = v([e.watch([
2923
+ })), s = e.watch([
2906
2924
  "computedPageTurnDirection",
2907
2925
  "computedPageTurnMode",
2908
2926
  "numberOfAdjacentSpineItemToPreLoad"
2909
- ]), this.element$]).pipe(M(([, t]) => {
2927
+ ]), c = v([s, this.element$]).pipe(M(([, t]) => {
2910
2928
  e.values.computedPageTurnMode === "scrollable" ? z(t.style, "display", "contents") : z(t.style, "display", "block");
2911
2929
  }));
2912
- this.layout$ = s.pipe(M(() => {
2930
+ this.layout$ = c.pipe(M(() => {
2913
2931
  Bi.info("layout", e.values);
2914
2932
  }), O()), this.isNavigating$ = this.navigateSubject.pipe(b((e, t) => a(e.position, t.position)), T(({ animation: t, position: n }) => (Bi.info("Navigation requested", {
2915
2933
  animation: t,
@@ -3106,7 +3124,7 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
3106
3124
  })), Zi = ({ settings: e, spineItemsManager: t, spineLocator: n, navigationResolver: r }) => (i) => {
3107
3125
  let a = (i) => {
3108
3126
  let { navigationSnapThreshold: a, computedPageTurnMode: o } = e.values, s = t.get(i.spineItem);
3109
- if (!(!s || !i.position)) {
3127
+ if (s && i.position) {
3110
3128
  if (o === "controlled") {
3111
3129
  let { endPageIndex: e, beginPageIndex: t } = n.getVisiblePagesFromViewportPosition({
3112
3130
  position: i.position,
@@ -3352,11 +3370,10 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
3352
3370
  } })), se(() => {
3353
3371
  t();
3354
3372
  }), j(d));
3355
- }), O());
3356
- E(E(E(i, o.layout$).pipe(A(() => D(null).pipe(A(() => u.pipe(x((e) => !e), S())), T(() => ({ navigation: {
3373
+ }), O()), p = E(i, o.layout$).pipe(A(() => D(null).pipe(A(() => u.pipe(x((e) => !e), S())), T(() => ({ navigation: {
3357
3374
  ...this.navigationSubject.getValue(),
3358
3375
  animation: !1
3359
- } })), j(E(f, d))))), f).pipe(ra({
3376
+ } })), j(E(f, d))))), m = E(p, f).pipe(ra({
3360
3377
  navigationResolver: a,
3361
3378
  settings: e,
3362
3379
  context: t,
@@ -3378,7 +3395,8 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
3378
3395
  spineLocator: o.locator,
3379
3396
  settings: e,
3380
3397
  navigationResolver: a
3381
- }), T(({ navigation: e }) => e), O()), d, Ui(t, this.navigationSubject, o)).pipe(N(this.navigationSubject), (e) => e.pipe(M(([e]) => {
3398
+ }), T(({ navigation: e }) => e), O()), h = Ui(t, this.navigationSubject, o);
3399
+ E(m, d, h).pipe(N(this.navigationSubject), (e) => e.pipe(M(([e]) => {
3382
3400
  let t = e.type === "scroll", n = e.meta.triggeredBy === "pagination", r = e.meta.triggeredBy === "restoration";
3383
3401
  if (t && !r || n) return;
3384
3402
  let i = {
@@ -3874,8 +3892,8 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
3874
3892
  }, Fa = class extends Q {
3875
3893
  constructor(e, t, n, r, i, a) {
3876
3894
  super(), this.context = e, this.pagination = t, this.spineItemsManager = n, this.spine = r, this.isNavigationLocked$ = i, this.cfi = a;
3877
- let o = E(this.context.bridgeEvent.navigation$, r.layout$).pipe(A(() => this.isNavigationLocked$.pipe(x((e) => !e), he(1), N(this.context.bridgeEvent.navigation$), T(([, e]) => this.resolveMetrics(e) ?? this.pagination.value))), O());
3878
- E(o, o.pipe(yt(this.context.bridgeEvent.viewportFree$), T((e) => this.resolvePositions(e)), x((e) => e !== void 0))).pipe(j(this.destroy$)).subscribe((e) => {
3895
+ let o = E(this.context.bridgeEvent.navigation$, r.layout$).pipe(A(() => this.isNavigationLocked$.pipe(x((e) => !e), he(1), N(this.context.bridgeEvent.navigation$), T(([, e]) => this.resolveMetrics(e) ?? this.pagination.value))), O()), s = o.pipe(yt(this.context.bridgeEvent.viewportFree$), T((e) => this.resolvePositions(e)), x((e) => e !== void 0));
3896
+ E(o, s).pipe(j(this.destroy$)).subscribe((e) => {
3879
3897
  this.pagination.update(e);
3880
3898
  });
3881
3899
  }
@@ -3909,7 +3927,7 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
3909
3927
  }
3910
3928
  resolvePositions(e) {
3911
3929
  let t = this.resolveEdgePositions(e.begin), n = this.resolveEdgePositions(e.end);
3912
- if (!(!t || !n)) return {
3930
+ if (t && n) return {
3913
3931
  ...e,
3914
3932
  begin: t,
3915
3933
  end: n
@@ -4194,7 +4212,7 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
4194
4212
  });
4195
4213
  return u ? [...n, i] : n;
4196
4214
  }, []), u = l[0], d = l[l.length - 1] ?? u;
4197
- if (!(u === void 0 || d === void 0)) return {
4215
+ if (u !== void 0 && d !== void 0) return {
4198
4216
  beginPageIndex: u,
4199
4217
  endPageIndex: d
4200
4218
  };
@@ -4384,12 +4402,12 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
4384
4402
  let o = e.watch("rootElement").pipe(xe(K), I(() => {
4385
4403
  let e = this.context.document.createElement("div");
4386
4404
  e.style.cssText = "\n height: 100%;\n position: relative;\n ", e.className = `${X}-spine`, this.elementSubject.next(e);
4387
- }));
4388
- E(this.element$.pipe(xe(K), I((e) => {
4405
+ })), s = this.element$.pipe(xe(K), I((e) => {
4389
4406
  this.spineItemsManager.items.forEach((t) => {
4390
4407
  t.attach(e);
4391
4408
  });
4392
- })), o).pipe(F(this.destroy$)).subscribe();
4409
+ }));
4410
+ E(s, o).pipe(F(this.destroy$)).subscribe();
4393
4411
  }
4394
4412
  get element() {
4395
4413
  return this.elementSubject.getValue();
@@ -4629,11 +4647,13 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
4629
4647
  },
4630
4648
  width: 1,
4631
4649
  height: 1
4632
- }), this.context = e, this.settingsManager = t, this.layoutSubject = new m(), this.layout$ = this.layoutSubject.asObservable(), E(this.settingsManager.watch(["computedSpreadMode"]).pipe(M(() => {
4650
+ }), this.context = e, this.settingsManager = t, this.layoutSubject = new m(), this.layout$ = this.layoutSubject.asObservable();
4651
+ let r = this.settingsManager.watch(["computedSpreadMode"]).pipe(M(() => {
4633
4652
  this.mergeCompare({ pageSize: this.calculatePageSize(this.value) });
4634
- })), this.context.watch("rootElement").pipe(M(() => {
4653
+ })), i = this.context.watch("rootElement").pipe(M(() => {
4635
4654
  this.layout();
4636
- }))).pipe(j(this.destroy$)).subscribe();
4655
+ }));
4656
+ E(r, i).pipe(j(this.destroy$)).subscribe();
4637
4657
  }
4638
4658
  calculatePageSize(e) {
4639
4659
  let { computedSpreadMode: t } = this.settingsManager.values;
@@ -4702,9 +4722,9 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
4702
4722
  L.log("mount", { containerElement: e }), $e(l.document, a, Li);
4703
4723
  let t = lo(e, i);
4704
4724
  l.update({ rootElement: t }), te({ immediate: !0 });
4705
- }, re = u.watch(["computedSpreadMode"]).pipe(De(1), I(() => te())), ie = E(o.pipe(I((e) => {
4725
+ }, re = u.watch(["computedSpreadMode"]).pipe(De(1), I(() => te())), ie = o.pipe(I((e) => {
4706
4726
  l.value.rootElement && (f.layout(), v.layout(e));
4707
- }), F(s)), re).subscribe();
4727
+ }), F(s)), b = E(ie, re).subscribe();
4708
4728
  return {
4709
4729
  id: i,
4710
4730
  context: l,
@@ -4718,7 +4738,7 @@ var ci = (e) => (t) => e(t), li = (e, t, n) => {
4718
4738
  mount: ne,
4719
4739
  destroy: () => {
4720
4740
  let e = l.value.rootElement;
4721
- e && (et(l.document, a), uo(e)), ie.unsubscribe(), p.destroy(), ee.destroy(), u.destroy(), _.destroy(), l.destroy(), y.destroy(), v.destroy(), d.destroy(), s.next(), s.complete(), f.destroy();
4741
+ e && (et(l.document, a), uo(e)), b.unsubscribe(), p.destroy(), ee.destroy(), u.destroy(), _.destroy(), l.destroy(), y.destroy(), v.destroy(), d.destroy(), s.next(), s.complete(), f.destroy();
4722
4742
  },
4723
4743
  pagination: {
4724
4744
  get state() {