@prose-reader/core 1.324.0 → 1.326.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.
Files changed (35) hide show
  1. package/dist/context/Context.d.ts +5 -7
  2. package/dist/createReaderWithEnhancer.d.ts +9 -7
  3. package/dist/enhancers/html/renderer/HtmlRenderer.d.ts +1 -1
  4. package/dist/enhancers/html/renderer/reflowable/renderReflowable.d.ts +1 -1
  5. package/dist/enhancers/layout/spreadMode.d.ts +2 -2
  6. package/dist/enhancers/layout/updateSpreadMode.d.ts +1 -1
  7. package/dist/enhancers/navigation/index.d.ts +1 -1
  8. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForLeftPage.d.ts +1 -1
  9. package/dist/enhancers/navigation/types.d.ts +0 -4
  10. package/dist/hooks/types.d.ts +2 -2
  11. package/dist/index.cjs +16 -20
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.js +942 -1038
  14. package/dist/index.js.map +1 -1
  15. package/dist/manifest/isFullyPrePaginated.d.ts +1 -1
  16. package/dist/navigation/controllers/ControlledNavigationController.d.ts +1 -0
  17. package/dist/navigation/controllers/ScrollNavigationController.d.ts +1 -0
  18. package/dist/navigation/tests/utils.d.ts +2 -5
  19. package/dist/pagination/index.d.ts +1 -1
  20. package/dist/reader.d.ts +9 -7
  21. package/dist/reader.test.d.ts +1 -0
  22. package/dist/settings/computeSpreadMode.d.ts +1 -1
  23. package/dist/spine/Spine.d.ts +1 -3
  24. package/dist/spine/SpineItemsManager.d.ts +7 -7
  25. package/dist/spine/SpineItemsObserver.d.ts +1 -1
  26. package/dist/spine/SpineItemsObserver.test.d.ts +1 -0
  27. package/dist/spineItem/SpineItem.d.ts +2 -2
  28. package/dist/spineItem/renderer/DefaultRenderer.d.ts +1 -1
  29. package/dist/spineItem/renderer/DocumentRenderer.d.ts +1 -1
  30. package/dist/tests/utils.d.ts +3 -0
  31. package/dist/utils/ReactiveEntity.d.ts +1 -0
  32. package/package.json +4 -4
  33. package/dist/enhancers/resources/index.d.ts +0 -2
  34. package/dist/enhancers/resources/indexedDB.d.ts +0 -6
  35. package/dist/enhancers/resources/resourcesManager.d.ts +0 -6
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { Report as e, arrayEqual as t, detectMimeTypeFromName as n, getItemSpreadPosition as r, getParentPath as i, isShallowEqual as a, isShallowEqual as o, parseContentType as s, shallowMergeIfDefined as c } from "@prose-reader/shared";
2
- import { BehaviorSubject as l, EMPTY as u, NEVER as d, Observable as f, ReplaySubject as p, Subject as m, animationFrameScheduler as h, auditTime as g, catchError as _, combineLatest as v, concatMap as ee, debounce as te, debounceTime as ne, defaultIfEmpty as re, defer as ie, delay as ae, distinctUntilChanged as y, endWith as oe, exhaustMap as se, filter as b, finalize as ce, first as x, forkJoin as le, from as S, fromEvent as C, identity as ue, lastValueFrom as de, map as w, merge as T, mergeMap as fe, of as E, scheduled as pe, share as D, shareReplay as O, skip as me, startWith as k, switchMap as A, switchScan as he, take as ge, takeUntil as j, tap as M, throttleTime as _e, timeout as ve, timer as ye, withLatestFrom as N } from "rxjs";
3
- import { catchError as be, debounceTime as xe, distinctUntilChanged as Se, filter as Ce, first as we, map as P, mergeMap as Te, pairwise as Ee, share as De, shareReplay as Oe, skip as ke, startWith as Ae, switchMap as F, take as je, takeUntil as I, tap as L } from "rxjs/operators";
4
- import { generate as Me, isIndirectionOnly as Ne, isParsedCfiRange as Pe, parse as Fe, resolve as Ie } from "@prose-reader/cfi";
5
- var R = e.namespace("@prose-reader/core", void 0, { color: "#98cde7" }), Le = [
2
+ import { BehaviorSubject as l, EMPTY as u, NEVER as d, Observable as f, ReplaySubject as p, Subject as m, animationFrameScheduler as h, auditTime as g, catchError as _, combineLatest as v, concatMap as ee, debounce as te, debounceTime as ne, defaultIfEmpty as re, defer as ie, delay as ae, distinctUntilChanged as y, endWith as oe, exhaustMap as se, filter as b, finalize as ce, first as x, from as S, fromEvent as C, identity as le, lastValueFrom as ue, map as w, merge as T, mergeMap as E, of as D, scheduled as de, share as O, shareReplay as k, skip as fe, startWith as A, switchMap as j, switchScan as pe, take as me, takeUntil as M, tap as N, throttleTime as he, timeout as ge, timer as _e, withLatestFrom as P } from "rxjs";
3
+ import { debounceTime as ve, distinctUntilChanged as ye, filter as be, first as xe, map as Se, pairwise as Ce, share as we, shareReplay as Te, skip as Ee, startWith as De, switchMap as F, take as Oe, takeUntil as I, tap as L } from "rxjs/operators";
4
+ import { generate as ke, isIndirectionOnly as Ae, isParsedCfiRange as je, parse as Me, resolve as Ne } from "@prose-reader/cfi";
5
+ var R = e.namespace("@prose-reader/core", void 0, { color: "#98cde7" }), Pe = [
6
6
  "pointercancel",
7
7
  "pointerdown",
8
8
  "pointerenter",
@@ -16,10 +16,10 @@ function z(e, t, n) {
16
16
  let r = String(n);
17
17
  e.getAttribute(t) !== r && e.setAttribute(t, r);
18
18
  }
19
- function Re(e, t) {
19
+ function Fe(e, t) {
20
20
  e.hasAttribute(t) && e.removeAttribute(t);
21
21
  }
22
- function ze(e, t, n) {
22
+ function Ie(e, t, n) {
23
23
  e[t] !== n && (e[t] = n);
24
24
  }
25
25
  function B(e, t, n) {
@@ -28,22 +28,22 @@ function B(e, t, n) {
28
28
  function V(e, t) {
29
29
  e.getPropertyValue(t) !== "" && e.removeProperty(t);
30
30
  }
31
- function Be(e, t, n) {
31
+ function Le(e, t, n) {
32
32
  if ("caretPositionFromPoint" in e) return e.caretPositionFromPoint(t, n);
33
33
  if ("caretRangeFromPoint" in e && e.caretRangeFromPoint !== void 0) return e.caretRangeFromPoint(t, n);
34
34
  }
35
- var Ve = (e, t) => {
35
+ var Re = (e, t) => {
36
36
  let n = "createRange" in e ? e : e.ownerDocument;
37
37
  if (!n) return;
38
- let r = "body" in e ? He(e.body, t) : He(e, t);
38
+ let r = "body" in e ? ze(e.body, t) : ze(e, t);
39
39
  if (r) {
40
40
  let e, i = 0, a = n.createRange();
41
41
  return Array.from(r.childNodes).some((r) => {
42
42
  a.selectNodeContents(r);
43
- let o = We(a.getClientRects(), t);
43
+ let o = Ve(a.getClientRects(), t);
44
44
  if (o) {
45
45
  e = a.cloneRange();
46
- let t = Be(n, Math.ceil(o.left), Math.ceil(o.top));
46
+ let t = Le(n, Math.ceil(o.left), Math.ceil(o.top));
47
47
  return t && "startContainer" in t && t.startContainer === e.startContainer && (i = t.startOffset), t && "offsetNode" in t && t.offsetNode === e.startContainer && (i = t.offset), !0;
48
48
  }
49
49
  return !1;
@@ -55,25 +55,25 @@ var Ve = (e, t) => {
55
55
  offset: 0
56
56
  };
57
57
  }
58
- }, He = (e, t) => {
59
- let n = Ue(e.getBoundingClientRect(), t), r;
58
+ }, ze = (e, t) => {
59
+ let n = Be(e.getBoundingClientRect(), t), r;
60
60
  n !== "before" && n !== "after" && (r = e);
61
61
  for (let n of e.children) {
62
- let e = He(n, t);
62
+ let e = ze(n, t);
63
63
  if (e) return e;
64
64
  }
65
65
  return r;
66
66
  };
67
- function Ue(e, { left: t, right: n }) {
67
+ function Be(e, { left: t, right: n }) {
68
68
  return e.left <= t && e.right <= t ? "before" : e.left <= t && e.right > t && e.right <= n ? "partially-before" : e.left <= n && e.right > n ? "partially-after" : e.left > n ? "after" : "within";
69
69
  }
70
- function We(e, t) {
70
+ function Ve(e, t) {
71
71
  return Array.from(e).find((e) => {
72
- let n = Ue(e, t);
72
+ let n = Be(e, t);
73
73
  return n !== "before" && n !== "after";
74
74
  });
75
75
  }
76
- var Ge = (e, t) => {
76
+ var He = (e, t) => {
77
77
  if (e.nodeType !== Node.CDATA_SECTION_NODE && e.nodeType !== Node.DOCUMENT_TYPE_NODE) {
78
78
  let n = e.ownerDocument?.createRange();
79
79
  n?.selectNodeContents(e);
@@ -84,7 +84,7 @@ var Ge = (e, t) => {
84
84
  }
85
85
  return n;
86
86
  }
87
- }, Ke = (e) => {
87
+ }, Ue = (e) => {
88
88
  if (e?.target && (e?.target)?.ownerDocument?.defaultView) {
89
89
  let t = (e?.target)?.ownerDocument?.defaultView;
90
90
  if (t.PointerEvent && e instanceof t.PointerEvent) return !0;
@@ -93,9 +93,9 @@ var Ge = (e, t) => {
93
93
  let t = e?.view;
94
94
  if (t.PointerEvent && e instanceof t.PointerEvent) return !0;
95
95
  }
96
- return !!Le.includes(e.type);
97
- }, qe = (e) => {
98
- if (Ke(e)) return !1;
96
+ return !!Pe.includes(e.type);
97
+ }, We = (e) => {
98
+ if (Ue(e)) return !1;
99
99
  if (e?.target && (e?.target)?.ownerDocument?.defaultView) {
100
100
  let t = (e?.target)?.ownerDocument?.defaultView;
101
101
  if (t.MouseEvent) return e instanceof t.MouseEvent;
@@ -105,7 +105,7 @@ var Ge = (e, t) => {
105
105
  if (t.MouseEvent) return e instanceof t.MouseEvent;
106
106
  }
107
107
  return !1;
108
- }, Je = (e) => {
108
+ }, Ge = (e) => {
109
109
  if (e?.target && (e?.target)?.ownerDocument?.defaultView) {
110
110
  let t = (e?.target)?.ownerDocument?.defaultView;
111
111
  if (t.TouchEvent) return e instanceof t.TouchEvent;
@@ -115,7 +115,7 @@ var Ge = (e, t) => {
115
115
  if (t.TouchEvent) return e instanceof t.TouchEvent;
116
116
  }
117
117
  return !1;
118
- }, Ye = () => document.createElement("div"), Xe = (e) => {
118
+ }, Ke = () => document.createElement("div"), qe = (e) => {
119
119
  let t = [
120
120
  "img",
121
121
  "video",
@@ -125,8 +125,8 @@ var Ge = (e, t) => {
125
125
  "script"
126
126
  ].join(",");
127
127
  return Array.from(e?.querySelectorAll(t) || []);
128
- }, Ze = (e) => {
129
- if (Xe(e).forEach((t) => {
128
+ }, Je = (e) => {
129
+ if (qe(e).forEach((t) => {
130
130
  let n = t.getAttribute("src") || t.getAttribute("href");
131
131
  n?.startsWith("blob:") && e?.defaultView?.URL.revokeObjectURL(n);
132
132
  }), e) {
@@ -148,20 +148,20 @@ var Ge = (e, t) => {
148
148
  }
149
149
  }
150
150
  };
151
- function Qe(e, t, n = []) {
151
+ function Ye(e, t, n = []) {
152
152
  if (typeof e != "object" || !e) return !1;
153
153
  for (let n of t) if (!(n in e)) return !1;
154
154
  for (let t of n) if (t in e && typeof e[t] != "function") return !1;
155
155
  return !0;
156
156
  }
157
- function $e(e) {
158
- return Qe(e, ["nodeType"], []) && e.nodeType === Node.ELEMENT_NODE;
157
+ function Xe(e) {
158
+ return Ye(e, ["nodeType"], []) && e.nodeType === Node.ELEMENT_NODE;
159
159
  }
160
- function et(e, t) {
161
- return $e(e) && e.tagName.toLowerCase() === t.toLowerCase();
160
+ function Ze(e, t) {
161
+ return Xe(e) && e.tagName.toLowerCase() === t.toLowerCase();
162
162
  }
163
- function tt(e) {
164
- return Qe(e, [
163
+ function Qe(e) {
164
+ return Ye(e, [
165
165
  "startContainer",
166
166
  "endContainer",
167
167
  "startOffset",
@@ -174,28 +174,28 @@ function tt(e) {
174
174
  "selectNodeContents"
175
175
  ]);
176
176
  }
177
- var nt = (e, t, n, r) => {
177
+ var $e = (e, t, n, r) => {
178
178
  let i = e.createElement("style");
179
179
  return i.id = t, i.textContent = n, r ? e.head.prepend(i) : e.head.appendChild(i), () => {
180
- rt(e, t);
180
+ et(e, t);
181
181
  };
182
- }, rt = (e, t) => {
182
+ }, et = (e, t) => {
183
183
  if (e?.head) {
184
184
  let n = e.getElementById(t);
185
185
  n && n.remove();
186
186
  }
187
- }, it = (e, t) => {
187
+ }, tt = (e, t) => {
188
188
  let n = RegExp(`${t}\\s*=\\s*([^,\\s]+)`, "i");
189
189
  return e.match(n)?.[1]?.trim().toLowerCase();
190
- }, at = (e, t) => {
191
- let n = it(e, t);
190
+ }, nt = (e, t) => {
191
+ let n = tt(e, t);
192
192
  if (!n) return 0;
193
193
  let r = Number.parseFloat(n);
194
194
  return Number.isFinite(r) ? r : 0;
195
- }, ot = (e, t, n, r) => {
196
- e?.contentDocument?.head && nt(e.contentDocument, t, n, r);
197
- }, st = (e, t) => {
198
- e?.contentDocument && rt(e.contentDocument, t);
195
+ }, rt = (e, t, n, r) => {
196
+ e?.contentDocument?.head && $e(e.contentDocument, t, n, r);
197
+ }, it = (e, t) => {
198
+ e?.contentDocument && et(e.contentDocument, t);
199
199
  }, H = (e, t, n, r) => {
200
200
  if (!e) return;
201
201
  let i = e?.contentDocument?.getElementById(t);
@@ -203,14 +203,14 @@ var nt = (e, t, n, r) => {
203
203
  i.textContent !== n && (i.textContent = n);
204
204
  return;
205
205
  }
206
- ot(e, t, n, r);
207
- }, ct = (e) => {
206
+ rt(e, t, n, r);
207
+ }, at = (e) => {
208
208
  if (e?.contentDocument) {
209
209
  let t = e.contentDocument.querySelector("meta[name='viewport']");
210
210
  if (t) {
211
211
  let e = t.getAttribute("content");
212
212
  if (e) {
213
- let t = it(e, "width"), n = it(e, "height"), r = at(e, "width"), i = at(e, "height");
213
+ let t = tt(e, "width"), n = tt(e, "height"), r = nt(e, "width"), i = nt(e, "height");
214
214
  return r > 0 && i > 0 ? {
215
215
  hasViewport: !0,
216
216
  widthToken: t,
@@ -226,13 +226,13 @@ var nt = (e, t, n, r) => {
226
226
  }
227
227
  }
228
228
  return { hasViewport: !1 };
229
- }, lt = (e) => e.pipe(A((e) => e.src === "about:blank" && e.contentDocument?.readyState === "complete" && e.contentDocument.body ? E(e) : C(e, "load").pipe(ge(1), w(() => e)))), ut = (e) => e.pipe(A((e) => {
229
+ }, ot = (e) => e.pipe(j((e) => e.src === "about:blank" && e.contentDocument?.readyState === "complete" && e.contentDocument.body ? D(e) : C(e, "load").pipe(me(1), w(() => e)))), st = (e) => e.pipe(j((e) => {
230
230
  let t = e?.contentDocument?.fonts.ready;
231
- return t ? S(t).pipe(w(() => e)) : E(e);
232
- })), dt = (e) => (t) => {
231
+ return t ? S(t).pipe(w(() => e)) : D(e);
232
+ })), ct = (e) => (t) => {
233
233
  let n = e(t), r = new IntersectionObserver((e) => {
234
234
  e.forEach((e) => {
235
- e.isIntersecting ? Re(e.target, "tab-index") : z(e.target, "tab-index", "-1");
235
+ e.isIntersecting ? Fe(e.target, "tab-index") : z(e.target, "tab-index", "-1");
236
236
  });
237
237
  }, {}), i = /* @__PURE__ */ new Map();
238
238
  return n.hookManager.register("item.onDocumentLoad", async ({ itemId: e }) => {
@@ -250,12 +250,12 @@ var nt = (e, t, n, r) => {
250
250
  r.unobserve(e);
251
251
  });
252
252
  });
253
- }), n.hookManager.register("item.onDocumentUnload", async ({ itemId: e }) => {
253
+ }), n.hookManager.register("item.onDocumentUnload", ({ itemId: e }) => {
254
254
  i.get(e)?.(), i.delete(e);
255
255
  }), { ...n };
256
- }, ft = (e) => (t) => {
256
+ }, lt = (e) => (t) => {
257
257
  let n = e(t);
258
- return n.context.watch("rootElement").pipe(j(n.context.destroy$)).subscribe((e) => {
258
+ return n.context.watch("rootElement").pipe(M(n.context.destroy$)).subscribe((e) => {
259
259
  e && e.addEventListener("scroll", () => {
260
260
  n.settings.values.computedPageTurnMode === "controlled" && e.scrollTo(0, 0);
261
261
  });
@@ -263,19 +263,19 @@ var nt = (e, t, n, r) => {
263
263
  let t = n.spineItemsManager.get(e)?.renderer.getDocumentFrame();
264
264
  t && t.contentDocument?.body && z(t.contentDocument.body, "tabindex", "-1");
265
265
  }), n;
266
- }, pt = ({ position: e, frameElement: t }) => {
266
+ }, ut = ({ position: e, frameElement: t }) => {
267
267
  let n = t.getBoundingClientRect(), r = n.width / t.offsetWidth, i = n.height / t.offsetHeight, { left: a = 0, top: o = 0 } = n;
268
268
  return {
269
269
  clientX: e.clientX * r + a,
270
270
  clientY: e.clientY * i + o
271
271
  };
272
- }, mt = (e, t, n, r) => {
272
+ }, dt = (e, t, n, r) => {
273
273
  let i = t?.view?.frameElement;
274
274
  if (!t || !i) return e;
275
275
  let a = n.getSpineItemFromIframe(i), o = i, { height: s, width: c } = r.pageSize;
276
276
  if (!a || !(o instanceof HTMLIFrameElement)) return e;
277
- if (Ke(e)) {
278
- let { clientX: n, clientY: r } = pt({
277
+ if (Ue(e)) {
278
+ let { clientX: n, clientY: r } = ut({
279
279
  position: e,
280
280
  frameElement: o,
281
281
  pageHeight: s,
@@ -291,8 +291,8 @@ var nt = (e, t, n, r) => {
291
291
  enumerable: !0
292
292
  }), i;
293
293
  }
294
- if (qe(e)) {
295
- let { clientX: n, clientY: r } = pt({
294
+ if (We(e)) {
295
+ let { clientX: n, clientY: r } = ut({
296
296
  position: e,
297
297
  frameElement: o,
298
298
  pageHeight: s,
@@ -307,9 +307,9 @@ var nt = (e, t, n, r) => {
307
307
  enumerable: !0
308
308
  }), i;
309
309
  }
310
- if (Je(e)) {
310
+ if (Ge(e)) {
311
311
  let n = Array.from(e.touches).map((e) => {
312
- let { clientX: t, clientY: n } = pt({
312
+ let { clientX: t, clientY: n } = ut({
313
313
  position: e,
314
314
  frameElement: o,
315
315
  pageHeight: s,
@@ -332,7 +332,7 @@ var nt = (e, t, n, r) => {
332
332
  }), r;
333
333
  }
334
334
  return e;
335
- }, ht = [
335
+ }, ft = [
336
336
  "pointercancel",
337
337
  "pointerdown",
338
338
  "pointerenter",
@@ -341,17 +341,17 @@ var nt = (e, t, n, r) => {
341
341
  "pointerout",
342
342
  "pointerover",
343
343
  "pointerup"
344
- ], gt = (e) => (t) => {
344
+ ], pt = (e) => (t) => {
345
345
  let n = e(t), r = /* @__PURE__ */ new Map();
346
346
  return n.hookManager.register("item.onDocumentLoad", async ({ itemId: e }) => {
347
347
  r.get(e)?.(), r.delete(e);
348
348
  let t = n.spineItemsManager.get(e), i = t?.renderer.getDocumentFrame();
349
349
  if (!i || !t) return;
350
- let a = ht.map((e) => {
350
+ let a = ft.map((e) => {
351
351
  let t = (e) => {
352
352
  let t = e;
353
- if (Ke(e) && (t = new PointerEvent(e.type, e)), t !== e) {
354
- let r = mt(t, e, n.spine.locator, n.viewport);
353
+ if (Ue(e) && (t = new PointerEvent(e.type, e)), t !== e) {
354
+ let r = dt(t, e, n.spine.locator, n.viewport);
355
355
  n.context.value.rootElement?.dispatchEvent(r);
356
356
  }
357
357
  };
@@ -364,21 +364,21 @@ var nt = (e, t, n, r) => {
364
364
  e();
365
365
  });
366
366
  });
367
- }), n.hookManager.register("item.onDocumentUnload", async ({ itemId: e }) => {
367
+ }), n.hookManager.register("item.onDocumentUnload", ({ itemId: e }) => {
368
368
  r.get(e)?.(), r.delete(e);
369
369
  }), n;
370
- }, _t = (e) => {
370
+ }, mt = (e) => {
371
371
  let t = new FileReader();
372
372
  return new Promise((n) => {
373
373
  t.addEventListener("load", () => {
374
374
  n(t.result);
375
375
  }, !1), t.readAsDataURL(e);
376
376
  });
377
- }, vt = (e, t) => Object.entries(e).reduce((e, [n, r]) => t.includes(n) ? {
377
+ }, ht = (e, t) => Object.entries(e).reduce((e, [n, r]) => t.includes(n) ? {
378
378
  ...e,
379
379
  [n]: r
380
- } : e, {}), yt = (e) => P((t) => vt(t, e)), bt = (e) => (t) => t.pipe(yt(e), Se(o));
381
- function xt(e) {
380
+ } : e, {}), gt = (e) => Se((t) => ht(t, e)), _t = (e) => (t) => t.pipe(gt(e), ye(o));
381
+ function vt(e) {
382
382
  return new f((t) => {
383
383
  let n = new ResizeObserver((e) => {
384
384
  t.next(e);
@@ -388,13 +388,13 @@ function xt(e) {
388
388
  };
389
389
  });
390
390
  }
391
- var St = (e) => (t) => t.pipe(F((t) => e.pipe(we(), P(() => t)))), Ct = (e) => {
391
+ var yt = (e) => (t) => t.pipe(F((t) => e.pipe(xe(), Se(() => t)))), bt = (e) => {
392
392
  let t, n = e.subscribe((e) => {
393
393
  t = { result: e };
394
394
  });
395
- return () => (n.unsubscribe(), t ? E(t.result) : e);
395
+ return () => (n.unsubscribe(), t ? D(t.result) : e);
396
396
  };
397
- function wt() {
397
+ function xt() {
398
398
  return new f((e) => {
399
399
  if (window.requestIdleCallback) {
400
400
  let t = window.requestIdleCallback(() => {
@@ -408,16 +408,16 @@ function wt() {
408
408
  return () => clearTimeout(t);
409
409
  });
410
410
  }
411
- function Tt(e) {
412
- return ie(() => wt().pipe(F(e)));
411
+ function St(e) {
412
+ return ie(() => xt().pipe(F(e)));
413
413
  }
414
- var Et = (e, t) => new f((n) => {
414
+ var Ct = (e, t) => new f((n) => {
415
415
  let r = new MutationObserver((e) => {
416
416
  n.next(e);
417
417
  });
418
418
  return r.observe(e, t), () => r.disconnect();
419
419
  });
420
- function Dt(e, t) {
420
+ function wt(e, t) {
421
421
  return new f((n) => {
422
422
  let r = new IntersectionObserver((e) => {
423
423
  n.next(e);
@@ -429,14 +429,14 @@ function Dt(e, t) {
429
429
  }
430
430
  //#endregion
431
431
  //#region src/settings/SettingsManagerOverload.ts
432
- var Ot = class {
432
+ var Tt = class {
433
433
  constructor(e, t) {
434
434
  this.settingsManager = t;
435
435
  let n = c(this.getDefaultSettings(), e);
436
- this.outputSettings = this.computeOutputSettings(n), this.inputSettings = c(this.getDefaultSettings(), e), this.outputSettingsUpdateSubject = new m(), this.values$ = v([this.settingsManager.values$, this.outputSettingsUpdateSubject.pipe(Ae(this.outputSettings))]).pipe(P(([e, t]) => ({
436
+ this.outputSettings = this.computeOutputSettings(n), this.inputSettings = c(this.getDefaultSettings(), e), this.outputSettingsUpdateSubject = new m(), this.values$ = v([this.settingsManager.values$, this.outputSettingsUpdateSubject.pipe(De(this.outputSettings))]).pipe(Se(([e, t]) => ({
437
437
  ...e,
438
438
  ...t
439
- })), Oe(1)), this.values$.subscribe();
439
+ })), Te(1)), this.values$.subscribe();
440
440
  }
441
441
  _prepareUpdate(e) {
442
442
  let t = this.getCleanedParentInputSettings(e), n = this.settingsManager._prepareUpdate(t), r = c(this.inputSettings, e), i = this.computeOutputSettings(r), a = this.hasSettingsChanged(i);
@@ -459,12 +459,12 @@ var Ot = class {
459
459
  };
460
460
  }
461
461
  watch(e) {
462
- return Array.isArray(e) ? this.values$.pipe(bt(e)) : this.values$.pipe(P((t) => t[e]), Se(o));
462
+ return Array.isArray(e) ? this.values$.pipe(_t(e)) : this.values$.pipe(Se((t) => t[e]), ye(o));
463
463
  }
464
464
  destroy() {
465
465
  this.outputSettingsUpdateSubject.complete();
466
466
  }
467
- }, kt = class extends Ot {
467
+ }, Et = class extends Tt {
468
468
  computeOutputSettings(e) {
469
469
  return e;
470
470
  }
@@ -483,8 +483,8 @@ var Ot = class {
483
483
  fontJustification: "publisher"
484
484
  };
485
485
  }
486
- }, At = (e) => (t) => {
487
- let { fontScale: n, lineHeight: r, fontWeight: i, fontJustification: a } = t, o = new m(), s = e(t), c = new kt({
486
+ }, Dt = (e) => (t) => {
487
+ let { fontScale: n, lineHeight: r, fontWeight: i, fontJustification: a } = t, o = new m(), s = e(t), c = new Et({
488
488
  fontScale: n,
489
489
  lineHeight: r,
490
490
  fontWeight: i,
@@ -504,21 +504,21 @@ var Ot = class {
504
504
  let e = t?.renderer.getDocumentFrame();
505
505
  e && H(e, "prose-reader-fonts", l());
506
506
  }
507
- }), c.values$.pipe((e) => e.pipe(Ee(), w(([e, t]) => t.fontScale !== e.fontScale || t.lineHeight !== e.lineHeight)), L((e) => {
507
+ }), c.values$.pipe((e) => e.pipe(Ce(), w(([e, t]) => t.fontScale !== e.fontScale || t.lineHeight !== e.lineHeight)), L((e) => {
508
508
  s.spineItemsManager.items.forEach((e) => {
509
509
  if (e.renditionLayout !== "pre-paginated") {
510
510
  let t = e.renderer.getDocumentFrame();
511
511
  t && H(t, "prose-reader-fonts", l());
512
512
  }
513
513
  }), e && s.layout();
514
- }), j(s.$.destroy$)).subscribe(), {
514
+ }), M(s.$.destroy$)).subscribe(), {
515
515
  ...s,
516
516
  destroy: () => {
517
517
  o.complete(), c.destroy(), s.destroy();
518
518
  },
519
519
  settings: c
520
520
  };
521
- }, jt = (e) => (t) => {
521
+ }, Ot = (e) => (t) => {
522
522
  let n = e(t), r = (e) => C(e, "keyup").pipe(w((e) => {
523
523
  let { pageTurnDirection: t, computedPageTurnMode: r } = n.settings.values;
524
524
  if (r === "scrollable") return e;
@@ -532,18 +532,18 @@ var Ot = class {
532
532
  }
533
533
  return e;
534
534
  }));
535
- return r(document).pipe(j(n.$.destroy$)).subscribe(), n.spineItemsManager.items$.pipe(A((e) => T(...e.map((e) => e.watch("isLoaded").pipe(A(() => {
535
+ return r(document).pipe(M(n.$.destroy$)).subscribe(), T(...n.spineItemsManager.items.map((e) => e.watch("isLoaded").pipe(j(() => {
536
536
  let t = e.renderer.getDocumentFrame();
537
537
  return t instanceof HTMLIFrameElement && t?.contentDocument ? r(t.contentDocument) : u;
538
- }))))), j(n.$.destroy$)).subscribe(), n;
539
- }, Mt = (e) => e.spine.spineItemsManager.items$.pipe(A((e) => T(...e.map((e) => e.watch("isLoaded").pipe(A(() => {
538
+ })))).pipe(M(n.$.destroy$)).subscribe(), n;
539
+ }, kt = (e) => T(...e.spine.spineItemsManager.items.map((e) => e.watch("isLoaded").pipe(j(() => {
540
540
  let t = e.renderer.getDocumentFrame();
541
541
  return t?.contentDocument ? T(...Array.from(t.contentDocument.querySelectorAll("a")).map((e) => C(e, "click"))) : d;
542
- }))))), M((e) => {
542
+ })))).pipe(N((e) => {
543
543
  e.preventDefault();
544
- }), D()), U = class extends f {
544
+ }), O()), U = class extends f {
545
545
  constructor(e) {
546
- super((e) => this.stateSubject.pipe(j(this._destroy$)).subscribe(e)), this._destroy$ = new m(), this.destroy$ = this._destroy$.asObservable(), this.stateSubject = new l(e), this.state$ = this.stateSubject.asObservable();
546
+ super((e) => this.stateSubject.pipe(M(this._destroy$)).subscribe(e)), this._destroy$ = new m(), this.isDestroyed = !1, this.destroy$ = this._destroy$.asObservable(), this.stateSubject = new l(e), this.state$ = this.stateSubject.asObservable();
547
547
  }
548
548
  next(e) {
549
549
  this.stateSubject.next(e);
@@ -556,15 +556,15 @@ var Ot = class {
556
556
  o(this.value, t) || this.stateSubject.next(t);
557
557
  }
558
558
  watch(e) {
559
- return Array.isArray(e) ? this.stateSubject.pipe(bt(e)) : this.stateSubject.pipe(w((t) => t[e]), y(o));
559
+ return Array.isArray(e) ? this.stateSubject.pipe(_t(e)) : this.stateSubject.pipe(w((t) => t[e]), y(o));
560
560
  }
561
561
  get value() {
562
562
  return this.stateSubject.value;
563
563
  }
564
564
  destroy() {
565
- this.stateSubject.complete(), this._destroy$.complete();
565
+ this.isDestroyed || (this.isDestroyed = !0, this.stateSubject.complete(), this._destroy$.next(), this._destroy$.complete());
566
566
  }
567
- }, Nt = class e extends U {
567
+ }, At = class e extends U {
568
568
  static {
569
569
  this.DOCUMENT_CONTAINER_CLASS_NAME = "prose-reader-document-container";
570
570
  }
@@ -575,13 +575,13 @@ var Ot = class {
575
575
  documentContainer: void 0
576
576
  }), this.triggerSubject = new m(), this.context = e.context, this.settings = e.settings, this.hookManager = e.hookManager, this.item = e.item, this.containerElement = e.containerElement, this.resourcesHandler = e.resourcesHandler, this.viewport = e.viewport;
577
577
  let t = this.triggerSubject.pipe(b((e) => e.type === "unload")), n = this.triggerSubject.pipe(b((e) => e.type === "load"));
578
- this.loaded$ = n.pipe(fe(() => this.value.state === "loaded" || this.value.state === "loading" ? u : (this.mergeCompare({
578
+ this.loaded$ = n.pipe(E(() => this.value.state === "loaded" || this.value.state === "loading" ? u : (this.mergeCompare({
579
579
  state: "loading",
580
580
  error: void 0
581
- }), this.onCreateDocument().pipe(x()).pipe(fe((e) => (this.hookManager.execute("item.onDocumentCreated", {
581
+ }), this.onCreateDocument().pipe(x()).pipe(E((e) => (this.hookManager.execute("item.onDocumentCreated", {
582
582
  itemId: this.item.id,
583
583
  documentContainer: e
584
- }), this.onLoadDocument().pipe(oe(null), x()).pipe(St(this.context.bridgeEvent.viewportFree$), A(() => this.hookManager.fromExecuteAsync("item.onDocumentLoad", this.item.id, {
584
+ }), this.onLoadDocument().pipe(oe(null), x()).pipe(yt(this.context.bridgeEvent.viewportFree$), j(() => this.hookManager.fromExecuteAsync("item.onDocumentLoad", this.item.id, {
585
585
  itemId: this.item.id,
586
586
  documentContainer: e
587
587
  }))))), w(() => {
@@ -589,24 +589,32 @@ var Ot = class {
589
589
  state: "loaded",
590
590
  error: void 0
591
591
  });
592
- }), j(t)))), D()), this.unloaded$ = t.pipe(fe(() => this.value.state === "unloading" || this.value.state === "idle" ? u : (this.mergeCompare({
592
+ }), M(t)))), O()), this.unloaded$ = t.pipe(E(() => this.value.state === "unloading" || this.value.state === "idle" ? u : (this.mergeCompare({
593
593
  state: "unloading",
594
594
  error: void 0
595
- }), this.context.bridgeEvent.viewportFree$.pipe(x(), A(() => {
595
+ }), this.context.bridgeEvent.viewportFree$.pipe(x(), w(() => {
596
596
  let e = this.value.documentContainer;
597
- return S(e ? this.hookManager.executeAsync("item.onDocumentUnload", this.item.id, {
598
- itemId: this.item.id,
599
- documentContainer: e
600
- }).then(() => null) : Promise.resolve(null)).pipe(A(() => this.onUnload()), oe(null), x(), _((e) => (R.error("Error unloading document", e), E(null))));
601
- }), w(() => {
597
+ if (e) try {
598
+ this.hookManager.execute("item.onDocumentUnload", {
599
+ itemId: this.item.id,
600
+ documentContainer: e
601
+ });
602
+ } catch (e) {
603
+ R.error("Error unloading document", e);
604
+ }
605
+ try {
606
+ this.onUnload();
607
+ } catch (e) {
608
+ R.error("Error unloading document", e);
609
+ }
602
610
  this.mergeCompare({
603
611
  state: "idle",
604
612
  error: void 0
605
613
  });
606
- }), j(n)))), D()), T(this.loaded$, this.unloaded$).pipe(_((e) => (this.mergeCompare({
614
+ }), M(n)))), O()), T(this.loaded$, this.unloaded$).pipe(_((e) => (this.mergeCompare({
607
615
  state: "error",
608
616
  error: e
609
- }), u)), j(this.destroy$)).subscribe();
617
+ }), u)), M(this.destroy$)).subscribe();
610
618
  }
611
619
  setDocumentContainer(t) {
612
620
  t.classList.add(e.DOCUMENT_CONTAINER_CLASS_NAME), this.mergeCompare({ documentContainer: t });
@@ -637,13 +645,30 @@ var Ot = class {
637
645
  };
638
646
  }), ce(() => {
639
647
  e.complete();
640
- }), _((e) => (R.error(e), E(void 0))));
648
+ }), _((e) => (R.error(e), D(void 0))));
641
649
  }
642
650
  layout(e) {
643
651
  return this.onLayout(e);
644
652
  }
645
653
  destroy() {
646
- this.unload(), this.stateSubject.complete(), super.destroy();
654
+ if (this.isDestroyed) return;
655
+ let e = this.value.documentContainer;
656
+ if (e) {
657
+ try {
658
+ this.hookManager.execute("item.onDocumentUnload", {
659
+ itemId: this.item.id,
660
+ documentContainer: e
661
+ });
662
+ } catch (e) {
663
+ R.error("Error while executing unload hooks on destroy", e);
664
+ }
665
+ try {
666
+ this.onUnload();
667
+ } catch (e) {
668
+ R.error("Error while unloading document on destroy", e);
669
+ }
670
+ }
671
+ super.destroy();
647
672
  }
648
673
  get documentContainer() {
649
674
  return this.value.documentContainer;
@@ -655,26 +680,26 @@ var Ot = class {
655
680
  if (e) return e;
656
681
  let t = this.getDocumentFrame();
657
682
  if (t) {
658
- let { hasViewport: e } = ct(t);
683
+ let { hasViewport: e } = at(t);
659
684
  if (e) return "pre-paginated";
660
685
  }
661
- return this.context.manifest?.renditionLayout ?? "reflowable";
686
+ return this.context.manifest.renditionLayout ?? "reflowable";
662
687
  }
663
- }, Pt = (e) => new URL(e.href), Ft = class {
688
+ }, jt = (e) => new URL(e.href), Mt = class {
664
689
  constructor(e, t) {
665
690
  this.item = e, this.settings = t;
666
691
  }
667
692
  async getResource() {
668
- return await de(this.settings.values.getResource?.(this.item) ?? E(void 0)) ?? Pt(this.item);
693
+ return await ue(this.settings.values.getResource?.(this.item) ?? D(void 0)) ?? jt(this.item);
669
694
  }
670
695
  async fetchResource() {
671
696
  let e = await this.getResource();
672
697
  return e instanceof Response ? e : e instanceof URL ? fetch(e) : e;
673
698
  }
674
- }, It = (e, t) => {
699
+ }, Nt = (e, t) => {
675
700
  let n = e.startsWith("file://"), r = n ? e.replace("file://", "http://") : e, i = new URL(t, r).toString();
676
701
  return n ? i.replace("http://", "file://") : i;
677
- }, Lt = async (e, t, n, r, i) => {
702
+ }, Pt = async (e, t, n, r, i) => {
678
703
  if (!e?.defaultView) return;
679
704
  let a = t.sheet;
680
705
  if (a) try {
@@ -688,9 +713,9 @@ var Ot = class {
688
713
  if (t.startsWith("local(")) return t;
689
714
  let a = t.match(/url\(['"]?([^'"]+)['"]?\)/);
690
715
  if (!a) return t;
691
- let o = a[1] ?? "", s = r.manifest?.items.find(({ href: e }) => `${It(n, o).toLowerCase()}`.endsWith(`${e.toLowerCase()}`));
716
+ let o = a[1] ?? "", s = r.manifest.items.find(({ href: e }) => `${Nt(n, o).toLowerCase()}`.endsWith(`${e.toLowerCase()}`));
692
717
  if (s) {
693
- let n = new Ft(s, i);
718
+ let n = new Mt(s, i);
694
719
  try {
695
720
  let r = await n.getResource();
696
721
  if (r instanceof Response) {
@@ -710,31 +735,31 @@ var Ot = class {
710
735
  } catch (e) {
711
736
  console.error("Could not access stylesheet rules:", e);
712
737
  }
713
- }, Rt = (e, t, n, r, i) => {
738
+ }, Ft = (e, t, n, r, i) => {
714
739
  let a = t.getAttribute("src") || t.getAttribute("href");
715
- if (!a) return E(null);
716
- let o = r.manifest?.items.find(({ href: e }) => `${It(n, a).toLowerCase()}`.endsWith(`${e.toLowerCase()}`));
717
- return o ? S(new Ft(o, i).getResource()).pipe(fe((e) => e instanceof Response ? S(e.blob()) : E(void 0)), fe((a) => {
718
- if (!a) return E(null);
740
+ if (!a) return D(null);
741
+ let o = r.manifest.items.find(({ href: e }) => `${Nt(n, a).toLowerCase()}`.endsWith(`${e.toLowerCase()}`));
742
+ return o ? S(new Mt(o, i).getResource()).pipe(E((e) => e instanceof Response ? S(e.blob()) : D(void 0)), E((a) => {
743
+ if (!a) return D(null);
719
744
  let o = e?.defaultView?.URL.createObjectURL(a) ?? "";
720
745
  if (t.hasAttribute("src")) t.setAttribute("src", o);
721
746
  else if (t.hasAttribute("href") && (t.setAttribute("href", o), e?.defaultView && t instanceof e.defaultView.HTMLLinkElement)) return new f((a) => {
722
747
  t.onload = async () => {
723
748
  try {
724
- t.sheet && await Lt(e, t, n, r, i), a.next(), a.complete();
749
+ t.sheet && await Pt(e, t, n, r, i), a.next(), a.complete();
725
750
  } catch (e) {
726
751
  a.error(e);
727
752
  }
728
753
  }, t.onerror = a.error;
729
754
  });
730
- return E(null);
731
- })) : E(null);
732
- }, zt = ({ settings: e, item: t, context: n }) => (r) => r.pipe(A((r) => {
733
- let a = Xe(r.contentDocument), o = i(t.href), s = a.map((t) => Rt(r.contentDocument, t, o, n, e));
734
- return s.length === 0 ? E(r) : v(s).pipe(w(() => r));
735
- })), Bt = (e) => {
736
- Ze(e?.contentDocument);
737
- }, Vt = async (e, t) => {
755
+ return D(null);
756
+ })) : D(null);
757
+ }, It = ({ settings: e, item: t, context: n }) => (r) => r.pipe(j((r) => {
758
+ let a = qe(r.contentDocument), o = i(t.href), s = a.map((t) => Ft(r.contentDocument, t, o, n, e));
759
+ return s.length === 0 ? D(r) : v(s).pipe(w(() => r));
760
+ })), Lt = (e) => {
761
+ Je(e?.contentDocument);
762
+ }, Rt = async (e, t) => {
738
763
  if (typeof e == "string") return new Blob([e], { type: "text/html" });
739
764
  let r = s(e.headers.get("Content-Type") || "") || n(t.href);
740
765
  if ([
@@ -782,41 +807,41 @@ var Ot = class {
782
807
  `], { type: "text/html" });
783
808
  }
784
809
  return await e.blob();
785
- }, Ht = [
810
+ }, zt = [
786
811
  ".txt",
787
812
  ".jpg",
788
813
  ".jpeg",
789
814
  ".png",
790
815
  ".webp"
791
- ], Ut = [
816
+ ], Bt = [
792
817
  "text/plain",
793
818
  "image/jpg",
794
819
  "image/jpeg",
795
820
  "image/png",
796
821
  "image/webp"
797
- ], Wt = (e) => {
822
+ ], Vt = (e) => {
798
823
  let t = e?.getAttribute("src");
799
824
  t?.startsWith("blob:") && URL.revokeObjectURL(t);
800
- }, Gt = ({ item: e, resourcesHandler: t }) => {
825
+ }, Ht = ({ item: e, resourcesHandler: t }) => {
801
826
  let n = (e, t) => {
802
- Wt(e);
827
+ Vt(e);
803
828
  let n = URL.createObjectURL(t);
804
829
  e.setAttribute("src", n);
805
830
  };
806
- return (r) => r.pipe(A((r) => S(t.getResource()).pipe(A((i) => {
807
- let a = Ht.some((t) => e.href.endsWith(t)) || e.mediaType && Ut.includes(e.mediaType);
808
- return i instanceof URL && e.href.startsWith(window.location.origin) && !a ? (Wt(r), r?.setAttribute("src", i.href), E(r)) : (i instanceof URL ? S(t.fetchResource()) : E(i)).pipe(A((t) => {
831
+ return (r) => r.pipe(j((r) => S(t.getResource()).pipe(j((i) => {
832
+ let a = zt.some((t) => e.href.endsWith(t)) || e.mediaType && Bt.includes(e.mediaType);
833
+ return i instanceof URL && e.href.startsWith(window.location.origin) && !a ? (Vt(r), r?.setAttribute("src", i.href), D(r)) : (i instanceof URL ? S(t.fetchResource()) : D(i)).pipe(j((t) => {
809
834
  if (!(t instanceof Response)) throw Error("Invalid resource");
810
- return Vt(t, e);
811
- }), M((e) => {
835
+ return Rt(t, e);
836
+ }), N((e) => {
812
837
  n(r, e);
813
- }), w(() => r), _((t) => (R.error(`Error while trying to fetch or load resource for item ${e.id}`, i), R.error(t), E(r))));
838
+ }), w(() => r), _((t) => (R.error(`Error while trying to fetch or load resource for item ${e.id}`, i), R.error(t), D(r))));
814
839
  }))));
815
- }, Kt = () => {
840
+ }, Ut = () => {
816
841
  let e = document.createElement("iframe");
817
842
  return e.frameBorder = "no", e.tabIndex = 0, e.setAttribute("sandbox", "\n allow-same-origin \n allow-scripts \n allow-top-navigation-to-custom-protocols\n"), e.style.cssText = "\n overflow: hidden;\n background-color: transparent;\n border: 0px none transparent;\n padding: 0px;\n", e.setAttribute("role", "main"), e;
818
- }, qt = "body{margin:0}html,body{width:100%;height:100%}html[data-prose-reader-html-renderer-has-viewport-dimensions=false] body{display:flex}html[data-prose-reader-html-renderer-has-viewport-dimensions=false][data-prose-reader-html-renderer-spread-position=left] body{justify-content:flex-end}html[data-prose-reader-html-renderer-has-viewport-dimensions=false][data-prose-reader-html-renderer-spread-position=right] body{justify-content:flex-start}html[data-prose-reader-html-renderer-has-viewport-dimensions=false][data-prose-reader-html-renderer-spread-position=none] body{justify-content:center}:not(html.prose-reader-html-renderer-touch-enabled),:not(html.prose-reader-html-renderer-touch-enabled) body{touch-action:none}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;display:flex}html[data-prose-reader-html-renderer-has-viewport-dimensions=false] img{object-fit:contain;max-width:100%;height:100%}", Jt = ({ pageHeight: e, pageWidth: t, frameElement: n }) => {
819
- let r = ct(n), i = r.width, a = r.height;
843
+ }, Wt = "body{margin:0}html,body{width:100%;height:100%}html[data-prose-reader-html-renderer-has-viewport-dimensions=false] body{display:flex}html[data-prose-reader-html-renderer-has-viewport-dimensions=false][data-prose-reader-html-renderer-spread-position=left] body{justify-content:flex-end}html[data-prose-reader-html-renderer-has-viewport-dimensions=false][data-prose-reader-html-renderer-spread-position=right] body{justify-content:flex-start}html[data-prose-reader-html-renderer-has-viewport-dimensions=false][data-prose-reader-html-renderer-spread-position=none] body{justify-content:center}:not(html.prose-reader-html-renderer-touch-enabled),:not(html.prose-reader-html-renderer-touch-enabled) body{touch-action:none}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;display:flex}html[data-prose-reader-html-renderer-has-viewport-dimensions=false] img{object-fit:contain;max-width:100%;height:100%}", Gt = ({ pageHeight: e, pageWidth: t, frameElement: n }) => {
844
+ let r = at(n), i = r.width, a = r.height;
820
845
  !i && r.widthToken === "device-width" && (i = t), !a && r.heightToken === "device-height" && (a = e), !a && (i || r.widthToken === "device-width") && (a = e), !i && (a || r.heightToken === "device-height") && (i = t);
821
846
  let o = r.hasViewport && i && a ? {
822
847
  ...r,
@@ -831,17 +856,17 @@ var Ot = class {
831
856
  viewportDimensions: o
832
857
  };
833
858
  }
834
- }, Yt = /* @__PURE__ */ new WeakMap(), W = (e, t, n) => {
859
+ }, Kt = /* @__PURE__ */ new WeakMap(), W = (e, t, n) => {
835
860
  e.style.getPropertyValue(t) !== n && e.style.setProperty(t, n);
836
861
  }, G = (e, t) => {
837
862
  e.style.getPropertyValue(t) !== "" && e.style.removeProperty(t);
838
- }, Xt = (e, t) => {
863
+ }, qt = (e, t) => {
839
864
  let n = `${t.width}px`, r = `${t.height}px`;
840
865
  e.style.width !== n && (e.style.width = n), e.style.height !== r && (e.style.height = r);
841
- }, Zt = (e, t, n) => {
866
+ }, Jt = (e, t, n) => {
842
867
  let r = e.contentDocument?.documentElement;
843
868
  r && r.getAttribute(t) !== n && r.setAttribute(t, n);
844
- }, Qt = ({ hasViewportDimensions: e, viewportWidth: t, viewportHeight: n, computedScale: r, spreadPosition: i, blankPagePosition: a, isRTL: o, pageWidth: s, pageHeight: c }) => [
869
+ }, Yt = ({ hasViewportDimensions: e, viewportWidth: t, viewportHeight: n, computedScale: r, spreadPosition: i, blankPagePosition: a, isRTL: o, pageWidth: s, pageHeight: c }) => [
845
870
  e ? "1" : "0",
846
871
  t ?? "",
847
872
  n ?? "",
@@ -851,7 +876,7 @@ var Ot = class {
851
876
  o ? "1" : "0",
852
877
  s,
853
878
  c
854
- ].join("|"), $t = ({ frameElement: e, viewportDimensions: t, computedScale: n, spreadPosition: r, blankPagePosition: i, isRTL: a, pageWidth: o }) => {
879
+ ].join("|"), Xt = ({ frameElement: e, viewportDimensions: t, computedScale: n, spreadPosition: r, blankPagePosition: i, isRTL: a, pageWidth: o }) => {
855
880
  if (t) {
856
881
  W(e, "position", "absolute"), W(e, "top", "50%"), i === "before" ? r === "left" ? (W(e, "left", a ? "0" : "50%"), G(e, "right")) : r === "right" ? (W(e, "right", a ? "50%" : "0"), G(e, "left")) : (W(e, "left", a ? "25%" : "75%"), G(e, "right")) : r === "left" ? (W(e, "right", "0"), G(e, "left")) : r === "right" ? (W(e, "left", "0"), G(e, "right")) : (W(e, "left", i === "after" ? a ? "75%" : "25%" : "50%"), G(e, "right"));
857
882
  let t = r === "none" ? "-50%" : "0", o = i === "before" ? r === "left" ? "left" : r === "right" ? "right" : "center" : r === "right" ? "left" : r === "left" ? "right" : "center";
@@ -859,14 +884,14 @@ var Ot = class {
859
884
  return;
860
885
  }
861
886
  i === "before" ? a ? W(e, "margin-right", `${o}px`) : W(e, "margin-left", `${o}px`) : (G(e, "margin-left"), G(e, "margin-right"));
862
- }, en = ({ minPageSpread: e, blankPagePosition: t, spreadPosition: n, pageHeight: r, pageWidth: i, frameElement: a, isRTL: o }) => {
887
+ }, Zt = ({ minPageSpread: e, blankPagePosition: t, spreadPosition: n, pageHeight: r, pageWidth: i, frameElement: a, isRTL: o }) => {
863
888
  let s = e * i;
864
889
  if (a?.contentDocument && a?.contentWindow) {
865
- let { viewportDimensions: e, computedScale: c = 1 } = Jt({
890
+ let { viewportDimensions: e, computedScale: c = 1 } = Gt({
866
891
  frameElement: a,
867
892
  pageHeight: r,
868
893
  pageWidth: i
869
- }) ?? {}, l = !!e, u = i, d = r, f = Qt({
894
+ }) ?? {}, l = !!e, u = i, d = r, f = Yt({
870
895
  hasViewportDimensions: l,
871
896
  viewportWidth: e?.width,
872
897
  viewportHeight: e?.height,
@@ -877,16 +902,16 @@ var Ot = class {
877
902
  pageWidth: i,
878
903
  pageHeight: r
879
904
  });
880
- return Yt.get(a) === f ? {
905
+ return Kt.get(a) === f ? {
881
906
  width: s,
882
907
  height: d
883
- } : (Yt.set(a, f), Zt(a, "data-prose-reader-html-renderer-has-viewport-dimensions", l.toString()), e ? Xt(a, {
908
+ } : (Kt.set(a, f), Jt(a, "data-prose-reader-html-renderer-has-viewport-dimensions", l.toString()), e ? qt(a, {
884
909
  width: e.width ?? 1,
885
910
  height: e.height ?? 1
886
- }) : Xt(a, {
911
+ }) : qt(a, {
887
912
  width: u,
888
913
  height: d
889
- }), $t({
914
+ }), Xt({
890
915
  frameElement: a,
891
916
  viewportDimensions: e,
892
917
  computedScale: c,
@@ -903,7 +928,7 @@ var Ot = class {
903
928
  width: s,
904
929
  height: r
905
930
  };
906
- }, tn = () => "\n body {\n margin: 0;\n }\n html {\n width: 100%;\n height: 100%;\n }\n body {\n width: 100%;\n height: 100%;\n margin: 0;\n }\n \n html, body {\n touch-action: none;\n }\n ", nn = ({ isScrollable: e, enableTouch: t }) => `
931
+ }, Qt = () => "\n body {\n margin: 0;\n }\n html {\n width: 100%;\n height: 100%;\n }\n body {\n width: 100%;\n height: 100%;\n margin: 0;\n }\n \n html, body {\n touch-action: none;\n }\n ", $t = ({ isScrollable: e, enableTouch: t }) => `
907
932
 
908
933
  html, body {
909
934
  width: 100%;
@@ -912,7 +937,7 @@ var Ot = class {
912
937
  ${t ? "" : "\n touch-action: none\n "}
913
938
  }
914
939
  ${e ? "\n img {\n height: auto !important;\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n \n width: 100%;\n \n display: block;\n }\n " : ""}
915
- `, rn = ({ width: e, columnHeight: t, columnWidth: n }) => `
940
+ `, en = ({ width: e, columnHeight: t, columnWidth: n }) => `
916
941
  parsererror {
917
942
  display: none !important;
918
943
  }
@@ -976,48 +1001,48 @@ var Ot = class {
976
1001
  td {
977
1002
  max-width: ${n}px;
978
1003
  }
979
- `, an = ({ isUsingVerticalWriting: e, minimumWidth: t, pageHeight: n, pageWidth: r }) => {
1004
+ `, tn = ({ isUsingVerticalWriting: e, minimumWidth: t, pageHeight: n, pageWidth: r }) => {
980
1005
  let i = r - 0, a = n - 0, o = r - 0;
981
1006
  return e && (o = t - 0, i = a), {
982
1007
  columnHeight: a,
983
1008
  columnWidth: i,
984
1009
  width: o
985
1010
  };
986
- }, on = (e, t) => {
1011
+ }, nn = (e, t) => {
987
1012
  B(e.style, "width", `${t.width}px`), B(e.style, "height", `${t.height}px`);
988
- }, sn = ({ pageHeight: e, pageWidth: t, frameElement: n, manifest: r, renditionFlow: i, minPageSpread: a, isRTL: o, blankPagePosition: s, isImageType: c, enableTouch: l, isUsingVerticalWriting: u }) => {
989
- let d = a * t, f = r?.renditionLayout === "reflowable" && i === "scrolled-continuous", p = f ? Math.min(400, e) : e;
1013
+ }, rn = ({ pageHeight: e, pageWidth: t, frameElement: n, manifest: r, renditionFlow: i, minPageSpread: a, isRTL: o, blankPagePosition: s, isImageType: c, enableTouch: l, isUsingVerticalWriting: u }) => {
1014
+ let d = a * t, f = r.renditionLayout === "reflowable" && i === "scrolled-continuous", p = f ? Math.min(400, e) : e;
990
1015
  B(n.style, "width", `${t}px`), f ? V(n.style, "height") : B(n.style, "height", `${p}px`);
991
- let { viewportDimensions: m, computedScale: h = 1 } = Jt({
1016
+ let { viewportDimensions: m, computedScale: h = 1 } = Gt({
992
1017
  frameElement: n,
993
1018
  pageHeight: p,
994
1019
  pageWidth: t
995
- }) ?? {}, g = r?.renditionLayout === "pre-paginated";
1020
+ }) ?? {}, g = r.renditionLayout === "pre-paginated";
996
1021
  if (n?.contentDocument && n?.contentWindow && n.contentDocument.body) {
997
1022
  let e = t, r = p;
998
- if (m?.hasViewport) H(n, "prose-reader-html-renderer-framce-css", tn()), on(n, {
1023
+ if (m?.hasViewport) H(n, "prose-reader-html-renderer-framce-css", Qt()), nn(n, {
999
1024
  width: m.width ?? 1,
1000
1025
  height: m.height ?? 1
1001
1026
  }), B(n.style, "position", "absolute"), B(n.style, "top", "50%"), B(n.style, "left", s === "before" ? o ? "25%" : "75%" : s === "after" ? o ? "75%" : "25%" : "50%"), B(n.style, "transform", `translate(-50%, -50%) scale(${h})`), B(n.style, "transform-origin", "center center");
1002
- else if (H(n, "prose-reader-css", c ? nn({
1027
+ else if (H(n, "prose-reader-css", c ? $t({
1003
1028
  isScrollable: i === "scrolled-continuous",
1004
1029
  enableTouch: l
1005
- }) : rn(an({
1030
+ }) : en(tn({
1006
1031
  isUsingVerticalWriting: u,
1007
1032
  minimumWidth: d,
1008
1033
  pageHeight: p,
1009
1034
  pageWidth: t
1010
- })), !0), u) r = Math.ceil(n.contentDocument.documentElement.scrollHeight / p) * p, on(n, {
1035
+ })), !0), u) r = Math.ceil(n.contentDocument.documentElement.scrollHeight / p) * p, nn(n, {
1011
1036
  width: d,
1012
1037
  height: r
1013
1038
  });
1014
- else if (i === "scrolled-continuous") r = n.contentDocument.body.scrollHeight, on(n, {
1039
+ else if (i === "scrolled-continuous") r = n.contentDocument.body.scrollHeight, nn(n, {
1015
1040
  width: d,
1016
1041
  height: r
1017
1042
  });
1018
1043
  else {
1019
1044
  let i = Math.ceil(n.contentDocument.documentElement.scrollWidth / t);
1020
- e = g ? t : i * t, on(n, {
1045
+ e = g ? t : i * t, nn(n, {
1021
1046
  width: e,
1022
1047
  height: r
1023
1048
  });
@@ -1027,42 +1052,42 @@ var Ot = class {
1027
1052
  height: r
1028
1053
  };
1029
1054
  }
1030
- }, cn = class extends Nt {
1055
+ }, an = class extends At {
1031
1056
  constructor(...e) {
1032
- super(...e), this.isPrePaginated = () => this.item.renditionLayout === "pre-paginated" || !this.item.renditionLayout && this.context.manifest?.renditionLayout === "pre-paginated", this.isImageType = () => !!(this.item.mediaType ?? n(this.item.href))?.startsWith("image/");
1057
+ super(...e), this.isPrePaginated = () => this.item.renditionLayout === "pre-paginated" || !this.item.renditionLayout && this.context.manifest.renditionLayout === "pre-paginated", this.isImageType = () => !!(this.item.mediaType ?? n(this.item.href))?.startsWith("image/");
1033
1058
  }
1034
1059
  onCreateDocument() {
1035
- let e = Kt();
1036
- return this.setDocumentContainer(e), E(e);
1060
+ let e = Ut();
1061
+ return this.setDocumentContainer(e), D(e);
1037
1062
  }
1038
1063
  onLoadDocument() {
1039
1064
  let e = this.getFrameElement();
1040
1065
  if (!e) throw Error("invalid frame");
1041
- return E(e).pipe(Gt({
1066
+ return D(e).pipe(Ht({
1042
1067
  item: this.item,
1043
1068
  resourcesHandler: this.resourcesHandler,
1044
1069
  settings: this.settings
1045
- }), St(this.context.bridgeEvent.viewportFree$), M((e) => {
1070
+ }), yt(this.context.bridgeEvent.viewportFree$), N((e) => {
1046
1071
  this.prepareFrameForAttach(e), this.attach();
1047
- }), lt, M((e) => {
1048
- this.isPrePaginated() ? H(e, "prose-reader-css", qt) : this.isImageType();
1049
- }), zt({
1072
+ }), ot, N((e) => {
1073
+ this.isPrePaginated() ? H(e, "prose-reader-css", Wt) : this.isImageType();
1074
+ }), It({
1050
1075
  context: this.context,
1051
1076
  item: this.item,
1052
1077
  settings: this.settings
1053
- }), ut, M((e) => {
1078
+ }), st, N((e) => {
1054
1079
  this.revealFrameAfterReady(e);
1055
1080
  }));
1056
1081
  }
1057
1082
  onUnload() {
1058
1083
  let e = this.getFrameElement();
1059
- return Bt(e), Wt(e), this.detach(), u;
1084
+ Lt(e), Vt(e), this.detach();
1060
1085
  }
1061
1086
  onLayout({ minPageSpread: e, blankPagePosition: t, spreadPosition: n }) {
1062
1087
  let { width: r, height: i } = this.viewport.pageSize, a = this.getFrameElement();
1063
- if (!a) return E(void 0);
1088
+ if (!a) return D(void 0);
1064
1089
  let o = this.settings.values.computedPageTurnMode === "scrollable";
1065
- if (a.contentDocument?.documentElement && (z(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 E(en({
1090
+ if (a.contentDocument?.documentElement && (z(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(Zt({
1066
1091
  blankPagePosition: t,
1067
1092
  frameElement: a,
1068
1093
  isRTL: this.context.isRTL(),
@@ -1072,12 +1097,12 @@ var Ot = class {
1072
1097
  spreadPosition: n
1073
1098
  }));
1074
1099
  let s = !!this.writingMode?.startsWith("vertical"), c = this.isImageType();
1075
- return E(sn({
1100
+ return D(rn({
1076
1101
  pageHeight: i,
1077
1102
  pageWidth: r,
1078
1103
  frameElement: a,
1079
1104
  manifest: this.context.manifest,
1080
- renditionFlow: this.item.renditionFlow ?? this.context.manifest?.renditionFlow,
1105
+ renditionFlow: this.item.renditionFlow ?? this.context.manifest.renditionFlow,
1081
1106
  blankPagePosition: t,
1082
1107
  isUsingVerticalWriting: s,
1083
1108
  isRTL: this.context.isRTL(),
@@ -1087,7 +1112,7 @@ var Ot = class {
1087
1112
  }));
1088
1113
  }
1089
1114
  onRenderHeadless() {
1090
- return S(this.resourcesHandler.fetchResource()).pipe(A((e) => {
1115
+ return S(this.resourcesHandler.fetchResource()).pipe(j((e) => {
1091
1116
  if (e instanceof Response) {
1092
1117
  let t = e.headers.get("content-type") ?? "";
1093
1118
  if ([
@@ -1097,7 +1122,7 @@ var Ot = class {
1097
1122
  "text/xml"
1098
1123
  ].includes(t)) return S(e.text()).pipe(w((e) => new DOMParser().parseFromString(e, t)));
1099
1124
  }
1100
- return E(void 0);
1125
+ return D(void 0);
1101
1126
  }));
1102
1127
  }
1103
1128
  getFrameElement() {
@@ -1130,14 +1155,14 @@ var Ot = class {
1130
1155
  getDocumentFrame() {
1131
1156
  return this.getFrameElement();
1132
1157
  }
1133
- }, ln = (e) => (t) => {
1158
+ }, on = (e) => (t) => {
1134
1159
  let n = e({
1135
1160
  ...t,
1136
1161
  getRenderer(e) {
1137
- return t.getRenderer?.(e) ?? ((e) => new cn(e));
1162
+ return t.getRenderer?.(e) ?? ((e) => new an(e));
1138
1163
  }
1139
- }), r = Mt(n);
1140
- return r.pipe(j(n.$.destroy$)).subscribe(), {
1164
+ }), r = kt(n);
1165
+ return r.pipe(M(n.$.destroy$)).subscribe(), {
1141
1166
  ...n,
1142
1167
  links$: r
1143
1168
  };
@@ -1149,7 +1174,7 @@ function K(e) {
1149
1174
  }
1150
1175
  //#endregion
1151
1176
  //#region src/spineItem/types.ts
1152
- var un = class {
1177
+ var sn = class {
1153
1178
  constructor(e) {
1154
1179
  this.left = e.left, this.right = e.right, this.top = e.top, this.bottom = e.bottom, this.width = e.width, this.height = e.height, this.x = e.x, this.y = e.y;
1155
1180
  }
@@ -1157,106 +1182,106 @@ var un = class {
1157
1182
  constructor(e) {
1158
1183
  this.__symbol = Symbol("SpineItemPosition"), this.x = e.x, this.y = e.y;
1159
1184
  }
1160
- }, dn = class {
1185
+ }, cn = class {
1161
1186
  constructor(e) {
1162
1187
  this.__symbol = Symbol("SpineItemPagePosition"), this.x = e.x, this.y = e.y;
1163
1188
  }
1164
- }, fn = class extends un {
1189
+ }, ln = class extends sn {
1165
1190
  constructor(...e) {
1166
1191
  super(...e), this.__symbol = "SpineItemPageLayout";
1167
1192
  }
1168
- }, pn = class extends un {
1193
+ }, un = class extends sn {
1169
1194
  constructor(...e) {
1170
1195
  super(...e), this.__symbol = "SpineItemSpineLayout";
1171
1196
  }
1172
- }, mn = class extends un {
1197
+ }, dn = class extends sn {
1173
1198
  constructor(...e) {
1174
1199
  super(...e), this.__symbol = "SpineItemPageSpineLayout";
1175
1200
  }
1176
- }, hn = class {
1201
+ }, fn = class {
1177
1202
  constructor(e) {
1178
1203
  this.x = e.x, this.y = e.y;
1179
1204
  }
1180
- }, J = class e extends hn {
1205
+ }, J = class e extends fn {
1181
1206
  constructor(...e) {
1182
1207
  super(...e), this.__symbol = "SpinePosition";
1183
1208
  }
1184
1209
  static from(t) {
1185
1210
  return new e(t);
1186
1211
  }
1187
- }, Y = class e extends hn {
1212
+ }, Y = class e extends fn {
1188
1213
  constructor(...e) {
1189
1214
  super(...e), this.__symbol = "UnboundSpinePosition";
1190
1215
  }
1191
1216
  static from(t) {
1192
1217
  return new e(t);
1193
1218
  }
1194
- }, gn = (e, t) => {
1219
+ }, pn = (e, t) => {
1195
1220
  let n = t.getBoundingClientRect(), { x: r, y: i } = e, { left: a, top: o } = n, s = n.width / t.offsetWidth, c = n.height / t.offsetHeight, l = r - a, u = i - o;
1196
1221
  return {
1197
1222
  x: l / s,
1198
1223
  y: u / c
1199
1224
  };
1200
- }, _n = (e, t) => new Y(gn(e, t)), vn = (e) => ({ getSpinePositionFromClientPosition: (t) => e.spine.element ? _n(t, e.spine.element) : void 0 }), yn = (e) => {
1225
+ }, mn = (e, t) => new Y(pn(e, t)), hn = (e) => ({ getSpinePositionFromClientPosition: (t) => e.spine.element ? mn(t, e.spine.element) : void 0 }), gn = (e) => {
1201
1226
  let t, n = e.context.watch("rootElement").pipe(F((e) => e ? new f(() => (t = e.ownerDocument.createElement("div"), t.style.cssText = "\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n visibility: hidden;\n ", e.appendChild(t), () => {
1202
1227
  t?.remove(), t = void 0;
1203
- })) : d)), r = (e) => pe(e, h).pipe(L(() => {
1228
+ })) : d)), r = (e) => de(e, h).pipe(L(() => {
1204
1229
  t && B(t.style, "visibility", "hidden");
1205
1230
  })), i = e.context.bridgeEvent.viewportBusy$.pipe(L(() => {
1206
1231
  t && B(t.style, "visibility", "visible");
1207
- })), a = r(e.viewportFree$).pipe(je(1));
1208
- return T(n, e.settings.values$.pipe(P(() => e.settings.values.computedPageTurnMode), Se()).pipe(F((e) => e === "controlled" ? i.pipe(F(() => a)) : r(E(void 0))), I(e.$.destroy$)));
1209
- }, bn = "@prose-reader/core", xn = 0, Sn = 200, X = "prose-reader", Cn = `${X}-style`, wn = `data-${X}-id`, Tn = `${X}-viewport`, En = `${X}-scroll-navigator`, Dn = `${X}-spine-item`, On = `--${X}-absolute-viewport-width`, kn = `--${X}-absolute-viewport-height`, An = `${X}-enhancer-loading`, jn = `${An}-container`, Mn = `${An}-logo`, Nn = `${An}-details`, Pn = ({ container: e, item: t }) => {
1232
+ })), a = r(e.viewportFree$).pipe(Oe(1));
1233
+ return T(n, e.settings.values$.pipe(Se(() => e.settings.values.computedPageTurnMode), ye()).pipe(F((e) => e === "controlled" ? i.pipe(F(() => a)) : r(D(void 0))), I(e.$.destroy$)));
1234
+ }, _n = "@prose-reader/core", vn = 0, yn = 200, X = "prose-reader", bn = `${X}-style`, xn = `data-${X}-id`, Sn = `${X}-viewport`, Cn = `${X}-scroll-navigator`, wn = `${X}-spine-item`, Tn = `--${X}-absolute-viewport-width`, En = `--${X}-absolute-viewport-height`, Dn = `${X}-enhancer-loading`, On = `${Dn}-container`, kn = `${Dn}-logo`, An = `${Dn}-details`, jn = ({ container: e, item: t }) => {
1210
1235
  let n = e.ownerDocument.createElement("div");
1211
- n.classList.add(jn);
1236
+ n.classList.add(On);
1212
1237
  let r = n.ownerDocument.createElement("div");
1213
- r.classList.add(Mn), r.innerText = "prose";
1238
+ r.classList.add(kn), r.innerText = "prose";
1214
1239
  let i = n.ownerDocument.createElement("div");
1215
- return i.classList.add(Nn), i.setAttribute("data-details-element", "true"), i.innerText = `loading ${t.id}`, n.appendChild(r), n.appendChild(i), n;
1216
- }, Fn = (e) => e === "sepia" ? "#939393" : "rgb(202, 202, 202)", In = ({ loadingElement: e, theme: t }) => {
1217
- B(e.style, "color", Fn(t));
1218
- }, Ln = (e) => {
1240
+ return i.classList.add(An), i.setAttribute("data-details-element", "true"), i.innerText = `loading ${t.id}`, n.appendChild(r), n.appendChild(i), n;
1241
+ }, Mn = (e) => e === "sepia" ? "#939393" : "rgb(202, 202, 202)", Nn = ({ loadingElement: e, theme: t }) => {
1242
+ B(e.style, "color", Mn(t));
1243
+ }, Pn = (e) => {
1219
1244
  let t = /* @__PURE__ */ new WeakMap();
1220
1245
  return e.hookManager.register("item.onBeforeContainerAttach", ({ element: n, item: r }) => {
1221
1246
  B(n.style, "z-index", "0");
1222
- let i = Pn({
1247
+ let i = jn({
1223
1248
  container: n,
1224
1249
  item: r
1225
1250
  });
1226
- In({
1251
+ Nn({
1227
1252
  loadingElement: i,
1228
1253
  theme: e.theme.get()
1229
1254
  }), t.set(n, i), n.appendChild(i);
1230
- }), T(e.spineItemsObserver.states$.pipe(L(({ item: e, isError: n, error: r }) => {
1255
+ }), T(e.spineItemsObserver.itemStateChange$.pipe(L(({ item: e, isError: n, error: r }) => {
1231
1256
  if (!n) return;
1232
1257
  let i = t.get(e.containerElement);
1233
1258
  if (!i) return;
1234
1259
  let a = i.querySelector("[data-details-element]");
1235
- a instanceof HTMLElement && ze(a, "innerText", r?.toString() ?? "Unknown error");
1260
+ a instanceof HTMLElement && Ie(a, "innerText", r?.toString() ?? "Unknown error");
1236
1261
  })), e.theme.$.theme$.pipe(L((n) => {
1237
1262
  for (let r of e.spineItemsManager.items) {
1238
1263
  let e = t.get(r.containerElement);
1239
- e && In({
1264
+ e && Nn({
1240
1265
  loadingElement: e,
1241
1266
  theme: n
1242
1267
  });
1243
1268
  }
1244
1269
  })));
1245
- }, Rn = (e) => {
1270
+ }, Fn = (e) => {
1246
1271
  e.hookManager.register("item.onDocumentLoad", async ({ itemId: t }) => {
1247
1272
  let n = e.spineItemsManager.get(t)?.renderer.getDocumentFrame();
1248
1273
  n && z(n, "scrolling", "no");
1249
1274
  });
1250
- }, zn = (e) => {
1275
+ }, In = (e) => {
1251
1276
  e.hookManager.register("item.onAfterLayout", ({ item: t, blankPagePosition: n, minimumWidth: r }) => {
1252
1277
  let i = e.spineItemsManager.get(t.id), a = i?.renderer.getDocumentFrame();
1253
1278
  if (i?.renditionLayout !== "reflowable" || !(a instanceof HTMLIFrameElement)) return;
1254
- let { hasViewport: o } = ct(a), { width: s } = e.viewport.pageSize, c = i?.renderer.getDocumentFrame();
1279
+ let { hasViewport: o } = at(a), { width: s } = e.viewport.pageSize, c = i?.renderer.getDocumentFrame();
1255
1280
  o && n === "none" && s < r && c instanceof HTMLIFrameElement && B(c.style, "left", e.context.isRTL() ? "75%" : "25%");
1256
1281
  });
1257
- }, Bn = (e) => e.spineItemsObserver.states$.pipe(M(({ item: e, isReady: t, isDirty: n }) => {
1282
+ }, Ln = (e) => e.spineItemsObserver.itemStateChange$.pipe(N(({ item: e, isReady: t, isDirty: n }) => {
1258
1283
  e.containerElement.dataset.isDirty = n.toString(), e.containerElement.dataset.isReady = t.toString();
1259
- })), Vn = class extends Ot {
1284
+ })), Rn = class extends Tt {
1260
1285
  computeOutputSettings(e) {
1261
1286
  return e;
1262
1287
  }
@@ -1275,20 +1300,20 @@ var un = class {
1275
1300
  layoutLayerTransition: !0
1276
1301
  };
1277
1302
  }
1278
- }, Hn = ({ manifest: e, spreadMode: t }) => e?.renditionFlow !== "scrolled-continuous" && t, Un = (e) => e === void 0 || e === "auto" || e === "landscape" || e === "both", Wn = ({ manifest: e, viewport: t }) => {
1303
+ }, zn = ({ manifest: e, spreadMode: t }) => e.renditionFlow !== "scrolled-continuous" && t, Bn = (e) => e === void 0 || e === "auto" || e === "landscape" || e === "both", Vn = ({ manifest: e, viewport: t }) => {
1279
1304
  let n = t.width > t.height;
1280
- return !!(!n && e?.renditionSpread === "portrait" || n && Un(e?.renditionSpread));
1281
- }, Gn = ({ manifest: e, viewport: t }) => Hn({
1305
+ return !!(!n && e.renditionSpread === "portrait" || n && Bn(e.renditionSpread));
1306
+ }, Hn = ({ manifest: e, viewport: t }) => zn({
1282
1307
  manifest: e,
1283
- spreadMode: Wn({
1308
+ spreadMode: Vn({
1284
1309
  manifest: e,
1285
1310
  viewport: t
1286
1311
  })
1287
- }), Kn = (e) => v([e.viewport.watch(["width", "height"]), e.context.watch("manifest")]).pipe(M(([t, n]) => e.settings.update({ spreadMode: Wn({
1312
+ }), Un = (e) => v([e.viewport.watch(["width", "height"]), e.context.watch("manifest")]).pipe(N(([t, n]) => e.settings.update({ spreadMode: Vn({
1288
1313
  manifest: n,
1289
1314
  viewport: t
1290
- }) }))), qn = (e) => (t) => {
1291
- let { pageHorizontalMargin: r, pageVerticalMargin: i, layoutAutoResize: a, layoutLayerTransition: o } = t, s = e(t), c = new Vn({
1315
+ }) }))), Wn = (e) => (t) => {
1316
+ let { pageHorizontalMargin: r, pageVerticalMargin: i, layoutAutoResize: a, layoutLayerTransition: o } = t, s = e(t), c = new Rn({
1292
1317
  pageHorizontalMargin: r,
1293
1318
  pageVerticalMargin: i,
1294
1319
  layoutAutoResize: a,
@@ -1328,26 +1353,26 @@ var un = class {
1328
1353
  }
1329
1354
  `);
1330
1355
  }
1331
- }), zn(s), Rn(s), s.hookManager.register("item.onDocumentCreated", ({ documentContainer: e }) => {
1356
+ }), In(s), Fn(s), s.hookManager.register("item.onDocumentCreated", ({ documentContainer: e }) => {
1332
1357
  B(e.style, "opacity", "0"), c.values.layoutLayerTransition && B(e.style, "transition", "opacity 800ms");
1333
1358
  }), s.hookManager.register("item.onBeforeLayout", ({ item: e }) => {
1334
1359
  let t = s.spineItemsManager.get(e.id)?.renderer.documentContainer;
1335
1360
  s.settings.values.computedPageTurnMode !== "scrollable" && t && z(t, "tab-index", "0");
1336
1361
  });
1337
- let l = s.spineItemsObserver.states$.pipe(Ce(({ isReady: e }) => e), L(({ item: e }) => {
1362
+ let l = s.spineItemsObserver.itemStateChange$.pipe(be(({ isReady: e }) => e), L(({ item: e }) => {
1338
1363
  let t = e.renderer.documentContainer;
1339
1364
  t && B(t.style, "opacity", "1");
1340
- })), u = c.values$.pipe(Ce(({ layoutAutoResize: e }) => e === "container"), F(() => s.context.watch("rootElement")), Ce(K), F((e) => xt(e)), xe(100), Ce(K), L(() => {
1365
+ })), u = c.values$.pipe(be(({ layoutAutoResize: e }) => e === "container"), F(() => s.context.watch("rootElement")), be(K), F((e) => vt(e)), ve(100), be(K), L(() => {
1341
1366
  s?.layout();
1342
- })), d = yn(s);
1343
- c.watch(["pageHorizontalMargin", "pageVerticalMargin"]).pipe(ke(1), L(() => {
1367
+ })), d = gn(s);
1368
+ c.watch(["pageHorizontalMargin", "pageVerticalMargin"]).pipe(Ee(1), L(() => {
1344
1369
  s.layout();
1345
1370
  }), I(s.$.destroy$)).subscribe();
1346
- let f = s.spine.pages.pipe(Oe({
1371
+ let f = s.spine.pages.pipe(Te({
1347
1372
  refCount: !0,
1348
1373
  bufferSize: 1
1349
1374
  }));
1350
- return T(l, d, u, f, Bn(s), Kn(s), Ln(s)).pipe(I(s.$.destroy$)).subscribe(), {
1375
+ return T(l, d, u, f, Ln(s), Un(s), Pn(s)).pipe(I(s.$.destroy$)).subscribe(), {
1351
1376
  ...s,
1352
1377
  destroy: () => {
1353
1378
  c.destroy(), s.destroy();
@@ -1355,9 +1380,9 @@ var un = class {
1355
1380
  settings: c,
1356
1381
  layout$: s.spine.layout$,
1357
1382
  layoutInfo$: f,
1358
- coordinates: vn(s)
1383
+ coordinates: hn(s)
1359
1384
  };
1360
- }, Jn = (e) => (t) => {
1385
+ }, Gn = (e) => (t) => {
1361
1386
  let n = e(t), r = new IntersectionObserver((e) => {
1362
1387
  e.forEach((e) => {
1363
1388
  let t = e.target, n = Array.from(t.contentDocument?.body.getElementsByTagName("audio") || []);
@@ -1386,7 +1411,7 @@ var un = class {
1386
1411
  e();
1387
1412
  });
1388
1413
  });
1389
- }), n.hookManager.register("item.onDocumentUnload", async ({ itemId: e }) => {
1414
+ }), n.hookManager.register("item.onDocumentUnload", ({ itemId: e }) => {
1390
1415
  a.get(e)?.(), a.delete(e);
1391
1416
  });
1392
1417
  let o = () => {
@@ -1396,14 +1421,14 @@ var un = class {
1396
1421
  ...n,
1397
1422
  destroy: o
1398
1423
  };
1399
- }, Yn = (e) => (t) => t.pipe(A((t) => e.pipe(b((e) => e === "free"), x(), w(() => t)))), Xn = ({ navigation$: e, navigationState$: t }) => e.pipe(Yn(t)), Zn = (e) => Xn(e).pipe(me(1)), Qn = (e) => (t) => t.pipe(j(Zn(e))), $n = (e) => e.navigation.navigation$.pipe(b((e) => e.triggeredBy === "user"), Yn(e.navigation.navigationState$), w((t) => {
1424
+ }, Kn = (e) => (t) => t.pipe(j((t) => e.pipe(b((e) => e === "free"), x(), w(() => t)))), qn = ({ navigation$: e, navigationState$: t }) => e.pipe(Kn(t)), Jn = (e) => qn(e).pipe(fe(1)), Yn = (e) => (t) => t.pipe(M(Jn(e))), Xn = (e) => e.navigation.navigation$.pipe(b((e) => e.triggeredBy === "user"), Kn(e.navigation.navigationState$), w((t) => {
1400
1425
  let n = t.requestedPosition, r = t.requestedVisibleArea;
1401
1426
  return n && r ? e.navigation.navigationResolver.getBoundaryForPosition(n, r) : void 0;
1402
- }), b((e) => e !== void 0), w((e) => ({ boundary: e })), D()), er = (e, t) => e.links$.pipe(M((n) => {
1403
- if (!et(n.target, "a") || n.type !== "click") return;
1427
+ }), b((e) => e !== void 0), w((e) => ({ boundary: e })), O()), Zn = (e, t) => e.links$.pipe(N((n) => {
1428
+ if (!Ze(n.target, "a") || n.type !== "click") return;
1404
1429
  let r = new URL(n.target.href), i = `${r.origin}${r.pathname}`;
1405
- e.context.manifest?.spineItems.some((e) => e.href === i) && t.goToUrl(r);
1406
- })), Z = R.namespace("navigation"), tr = ({ position: e, spineItem: t, pageHeight: n, pageWidth: r, spineItemLocator: i }) => {
1430
+ e.context.manifest.spineItems.some((e) => e.href === i) && t.goToUrl(r);
1431
+ })), Z = R.namespace("navigation"), Qn = ({ position: e, spineItem: t, pageHeight: n, pageWidth: r, spineItemLocator: i }) => {
1407
1432
  let a = new q({
1408
1433
  x: e.x - r,
1409
1434
  y: e.y
@@ -1412,10 +1437,10 @@ var un = class {
1412
1437
  x: e.x,
1413
1438
  y: e.y + n
1414
1439
  })), i.getSpineItemClosestPositionFromUnsafePosition(a, t);
1415
- }, nr = ({ position: e, navigationResolver: t, computedPageTurnDirection: n, spineItemsManager: r, spineLocator: i, viewport: a }) => {
1440
+ }, $n = ({ position: e, navigationResolver: t, computedPageTurnDirection: n, spineItemsManager: r, spineLocator: i, viewport: a }) => {
1416
1441
  let o = n, s = i.getSpineItemFromPosition(e) || r.get(0), c = e;
1417
1442
  if (!s) return c;
1418
- let l = i.getSpineItemPositionFromSpinePosition(e, s), u = tr({
1443
+ let l = i.getSpineItemPositionFromSpinePosition(e, s), u = Qn({
1419
1444
  position: l,
1420
1445
  spineItem: s,
1421
1446
  pageHeight: a.pageSize.height,
@@ -1432,12 +1457,12 @@ var un = class {
1432
1457
  y: e.y - a.pageSize.height,
1433
1458
  x: 0
1434
1459
  });
1435
- }, rr = ({ position: e, spineItem: t, context: n, navigationResolver: r, spineItemsManager: i, spineLocator: a, computedPageTurnDirection: o, viewport: s, settings: c }) => {
1460
+ }, er = ({ position: e, spineItem: t, context: n, navigationResolver: r, spineItemsManager: i, spineLocator: a, computedPageTurnDirection: o, viewport: s, settings: c }) => {
1436
1461
  if (c.values.computedPageTurnMode === "scrollable" && o === "vertical") return new Y({
1437
1462
  x: e.x,
1438
1463
  y: e.y - s.pageSize.height
1439
1464
  });
1440
- let l = nr({
1465
+ let l = $n({
1441
1466
  position: e,
1442
1467
  viewport: s,
1443
1468
  navigationResolver: r,
@@ -1455,7 +1480,7 @@ var un = class {
1455
1480
  y: l.y
1456
1481
  }));
1457
1482
  if (o === "vertical" && e.y !== l.y) return r.getAdjustedPositionForSpread(l);
1458
- let c = nr({
1483
+ let c = $n({
1459
1484
  position: l,
1460
1485
  viewport: s,
1461
1486
  navigationResolver: r,
@@ -1466,7 +1491,7 @@ var un = class {
1466
1491
  return r.getAdjustedPositionForSpread(c);
1467
1492
  }
1468
1493
  return r.getAdjustedPositionForSpread(l);
1469
- }, ir = ({ position: e, spineItem: t, pageHeight: n, pageWidth: r, spineItemLocator: i }) => {
1494
+ }, tr = ({ position: e, spineItem: t, pageHeight: n, pageWidth: r, spineItemLocator: i }) => {
1470
1495
  let a = new q({
1471
1496
  x: e.x + r,
1472
1497
  y: e.y
@@ -1475,10 +1500,10 @@ var un = class {
1475
1500
  x: e.x,
1476
1501
  y: e.y - n
1477
1502
  })), i.getSpineItemClosestPositionFromUnsafePosition(a, t);
1478
- }, ar = ({ position: e, navigationResolver: t, computedPageTurnDirection: n, spineItemsManager: r, spineLocator: i, viewport: a }) => {
1503
+ }, nr = ({ position: e, navigationResolver: t, computedPageTurnDirection: n, spineItemsManager: r, spineLocator: i, viewport: a }) => {
1479
1504
  let o = n, s = i.getSpineItemFromPosition(e) || r.get(0), c = e;
1480
1505
  if (!s) return c;
1481
- let l = i.getSpineItemPositionFromSpinePosition(e, s), u = ir({
1506
+ let l = i.getSpineItemPositionFromSpinePosition(e, s), u = tr({
1482
1507
  position: l,
1483
1508
  spineItem: s,
1484
1509
  pageHeight: a.pageSize.height,
@@ -1495,12 +1520,12 @@ var un = class {
1495
1520
  y: e.y + a.pageSize.height,
1496
1521
  x: 0
1497
1522
  });
1498
- }, or = ({ position: e, spineItem: t, context: n, navigationResolver: r, spineItemsManager: i, spineLocator: a, computedPageTurnDirection: o, viewport: s, settings: c }) => {
1523
+ }, rr = ({ position: e, spineItem: t, context: n, navigationResolver: r, spineItemsManager: i, spineLocator: a, computedPageTurnDirection: o, viewport: s, settings: c }) => {
1499
1524
  if (c.values.computedPageTurnMode === "scrollable" && o === "vertical") return new Y({
1500
1525
  x: e.x,
1501
1526
  y: e.y + s.pageSize.height
1502
1527
  });
1503
- let l = ar({
1528
+ let l = nr({
1504
1529
  position: e,
1505
1530
  viewport: s,
1506
1531
  navigationResolver: r,
@@ -1518,7 +1543,7 @@ var un = class {
1518
1543
  y: l.y
1519
1544
  }));
1520
1545
  if (o === "vertical" && e.y !== l.y) return r.getAdjustedPositionForSpread(l);
1521
- let c = ar({
1546
+ let c = nr({
1522
1547
  position: l,
1523
1548
  viewport: s,
1524
1549
  navigationResolver: r,
@@ -1529,7 +1554,7 @@ var un = class {
1529
1554
  return r.getAdjustedPositionForSpread(c);
1530
1555
  }
1531
1556
  return r.getAdjustedPositionForSpread(l);
1532
- }, sr = class {
1557
+ }, ir = class {
1533
1558
  constructor(e) {
1534
1559
  this.reader = e, this.movingLastDelta = {
1535
1560
  x: 0,
@@ -1554,7 +1579,7 @@ var un = class {
1554
1579
  turnRightOrBottom() {
1555
1580
  let e = this.reader.navigation.getNavigation(), t = this.reader.spineItemsManager.get(e.spineItem);
1556
1581
  if (!t) return;
1557
- let n = or({
1582
+ let n = rr({
1558
1583
  context: this.reader.context,
1559
1584
  navigationResolver: this.reader.navigation.navigationResolver,
1560
1585
  position: e.position,
@@ -1570,7 +1595,7 @@ var un = class {
1570
1595
  turnLeftOrTop() {
1571
1596
  let e = this.reader.navigation.getNavigation(), t = this.reader.spineItemsManager.get(e.spineItem);
1572
1597
  if (!t) return;
1573
- let n = rr({
1598
+ let n = er({
1574
1599
  context: this.reader.context,
1575
1600
  navigationResolver: this.reader.navigation.navigationResolver,
1576
1601
  position: e.position,
@@ -1692,7 +1717,7 @@ var un = class {
1692
1717
  });
1693
1718
  }
1694
1719
  }
1695
- }, cr = class extends U {
1720
+ }, ar = class extends U {
1696
1721
  constructor(e) {
1697
1722
  super({
1698
1723
  lastDelta: {
@@ -1750,11 +1775,11 @@ var un = class {
1750
1775
  destroy() {
1751
1776
  this.isDestroyed || (this.isDestroyed = !0, this.destroySubject.next(), this.destroySubject.complete());
1752
1777
  }
1753
- }, lr = 500, ur = class extends Q {
1778
+ }, or = 500, sr = class extends Q {
1754
1779
  constructor(e, t) {
1755
1780
  super(), this.scrollNavigationController = e, this.lock = t, this.navigationSubject = new m(), this.navigation$ = this.navigationSubject.asObservable(), T(this.scrollNavigationController.userScroll$.pipe(se((e) => {
1756
1781
  let t = this.lock();
1757
- return T(this.scrollNavigationController.userScroll$, E(e)).pipe(ne(lr, h), x(), M(() => {
1782
+ return T(this.scrollNavigationController.userScroll$, D(e)).pipe(ne(or, h), x(), N(() => {
1758
1783
  let e = this.scrollNavigationController.fromScrollPosition(this.scrollNavigationController.scrollPosition);
1759
1784
  this.navigationSubject.next({
1760
1785
  animation: !1,
@@ -1764,48 +1789,47 @@ var un = class {
1764
1789
  }), ce(() => {
1765
1790
  t();
1766
1791
  }));
1767
- }))).pipe(j(this.destroy$)).subscribe();
1792
+ }))).pipe(M(this.destroy$)).subscribe();
1768
1793
  }
1769
- }, dr = (e) => e.pagination.state$.pipe(N(e.context.manifest$, e.settings.values$), w(([e, { spineItems: t, readingDirection: n }, { computedPageTurnDirection: r }]) => {
1770
- let i = t.length ?? 0, a = e.beginSpineItemIndex === 0, o = e.endSpineItemIndex === Math.max(i - 1, 0), s = e.endSpineItemIndex === Math.max(i - 1, 0), c = e.beginSpineItemIndex === 0, l = e.beginPageIndexInSpineItem === 0, u = e.endPageIndexInSpineItem === e.endNumberOfPagesInSpineItem - 1;
1794
+ }, cr = (e) => e.pagination.state$.pipe(P(e.settings.values$), w(([t, { computedPageTurnDirection: n }]) => {
1795
+ let { spineItems: r, readingDirection: i } = e.context.manifest, a = r.length ?? 0, o = t.beginSpineItemIndex === 0, s = t.endSpineItemIndex === Math.max(a - 1, 0), c = t.endSpineItemIndex === Math.max(a - 1, 0), l = t.beginSpineItemIndex === 0, u = t.beginPageIndexInSpineItem === 0, d = t.endPageIndexInSpineItem === t.endNumberOfPagesInSpineItem - 1;
1771
1796
  return {
1772
- canTurnLeft: r !== "vertical" && !l,
1773
- canTurnRight: r !== "vertical" && !u,
1774
- canGoTopSpineItem: r === "vertical" && !a,
1775
- canGoBottomSpineItem: r === "vertical" && !o,
1776
- canGoLeftSpineItem: r !== "vertical" && (n === "ltr" && !a || n === "rtl" && !s),
1777
- canGoRightSpineItem: r !== "vertical" && (n === "ltr" && !o || n === "rtl" && !c)
1797
+ canTurnLeft: n !== "vertical" && !u,
1798
+ canTurnRight: n !== "vertical" && !d,
1799
+ canGoTopSpineItem: n === "vertical" && !o,
1800
+ canGoBottomSpineItem: n === "vertical" && !s,
1801
+ canGoLeftSpineItem: n !== "vertical" && (i === "ltr" && !o || i === "rtl" && !c),
1802
+ canGoRightSpineItem: n !== "vertical" && (i === "ltr" && !s || i === "rtl" && !l)
1778
1803
  };
1779
- }), y(a)), fr = ({ reader: e, duration: t }) => (n) => {
1804
+ }), y(a)), lr = ({ reader: e, duration: t }) => (n) => {
1780
1805
  let r, i = () => {
1781
1806
  r?.(), r = void 0;
1782
1807
  };
1783
- return n.pipe(M(() => {
1808
+ return n.pipe(N(() => {
1784
1809
  r ||= e?.navigation.lock();
1785
- }), _e(t, void 0, {
1810
+ }), he(t, void 0, {
1786
1811
  trailing: !0,
1787
1812
  leading: !0
1788
- }), M(i), ce(i));
1789
- }, pr = (e) => (t) => {
1790
- let n = e(t), r = dr(n), i = $n(n), a = new sr(n), o = new cr(n), s = new ur(n.navigation.scrollNavigationController, n.navigation.lock);
1791
- T(er(n, a), s.navigation$.pipe(M((e) => {
1813
+ }), N(i), ce(i));
1814
+ }, ur = (e) => (t) => {
1815
+ let n = e(t), r = cr(n), i = Xn(n), a = new ir(n), o = new ar(n), s = new sr(n.navigation.scrollNavigationController, n.navigation.lock);
1816
+ T(Zn(n, a), s.navigation$.pipe(N((e) => {
1792
1817
  n.navigation.navigate(e);
1793
- }))).pipe(j(n.$.destroy$)).subscribe();
1818
+ }))).pipe(M(n.$.destroy$)).subscribe();
1794
1819
  let c = (e) => {
1795
- let { cfi: t, ...r } = e;
1796
- n.load(r), t && a.goToCfi(t, { animate: !1 });
1820
+ n.mount(e), t.cfi && a.goToCfi(t.cfi, { animate: !1 });
1797
1821
  }, l = () => {
1798
1822
  s.destroy(), n.destroy();
1799
1823
  };
1800
1824
  return {
1801
1825
  ...n,
1802
- load: c,
1826
+ mount: c,
1803
1827
  destroy: l,
1804
1828
  navigation: {
1805
1829
  ...n.navigation,
1806
1830
  state$: r,
1807
1831
  outOfSpineBoundary$: i,
1808
- throttleLock: ({ duration: e, trigger: t }) => t.pipe(fr({
1832
+ throttleLock: ({ duration: e, trigger: t }) => t.pipe(lr({
1809
1833
  duration: e,
1810
1834
  reader: n
1811
1835
  })),
@@ -1831,7 +1855,7 @@ var un = class {
1831
1855
  goToAbsolutePageIndex: a.goToAbsolutePageIndex.bind(a)
1832
1856
  }
1833
1857
  };
1834
- }, mr = (e, t) => {
1858
+ }, dr = (e, t) => {
1835
1859
  if ("cfi" in t) {
1836
1860
  let { itemIndex: n, ...r } = e.cfi.parseCfi(t.cfi);
1837
1861
  return {
@@ -1850,9 +1874,9 @@ var un = class {
1850
1874
  itemIndex: n.index,
1851
1875
  node: null
1852
1876
  };
1853
- }, hr = (e, t) => {
1877
+ }, fr = (e, t) => {
1854
1878
  let n = e?.itemPageIndex, { itemIndex: r, ...i } = t.cfi.parseCfi(e.cfi), a = t.spineItemsManager.get(r);
1855
- return a ? wt().pipe(N(a.isReady$), w(([, o]) => {
1879
+ return a ? xt().pipe(P(a.isReady$), w(([, o]) => {
1856
1880
  let { node: s = null, offset: c, range: l } = o ? t.cfi.resolveCfi({ cfi: e.cfi }) : {};
1857
1881
  a.renditionLayout !== "pre-paginated" && s && (n = t.spine.locator.spineItemLocator.getSpineItemPageIndexFromNode(s, c ?? 0, a) ?? n);
1858
1882
  let u = e?.absolutePageIndex;
@@ -1869,12 +1893,12 @@ var un = class {
1869
1893
  absolutePageIndex: u,
1870
1894
  itemPageIndex: n
1871
1895
  };
1872
- })) : E({
1896
+ })) : D({
1873
1897
  ...e,
1874
1898
  itemIndex: r,
1875
1899
  ...i
1876
1900
  });
1877
- }, gr = class {
1901
+ }, pr = class {
1878
1902
  constructor(e) {
1879
1903
  this.reader = e, this.locatorsByKey = /* @__PURE__ */ new Map(), this.deregisterMemoizedStream = (e) => {
1880
1904
  let t = this.locatorsByKey.get(e);
@@ -1882,9 +1906,9 @@ var un = class {
1882
1906
  }, this.locate = (e, t) => {
1883
1907
  let n = {
1884
1908
  resource: e,
1885
- meta: mr(this.reader, e)
1909
+ meta: dr(this.reader, e)
1886
1910
  };
1887
- return Tt(() => {
1911
+ return St(() => {
1888
1912
  let r = this.reader.spineItemsManager.get(n.meta.itemIndex ?? 0), i = r?.renditionLayout === "reflowable", a = t.mode === "shallow" || !i || !r ? () => {} : this.reader.spine.spineItemsLoader.forceOpen([r.index]), o = "cfi" in e ? e.cfi : void 0, s = o ? this.locatorsByKey.get(o) : void 0, c = (e) => e.pipe(ce(() => {
1889
1913
  o && this.deregisterMemoizedStream(o), setTimeout(() => {
1890
1914
  a();
@@ -1894,10 +1918,10 @@ var un = class {
1894
1918
  resource: e,
1895
1919
  meta: t
1896
1920
  }))));
1897
- let l = this.reader.spine.layout$.pipe(ne(10), k(n), he((e) => hr(e.meta, this.reader).pipe(w((t) => ({
1921
+ let l = this.reader.spine.layout$.pipe(ne(10), A(n), pe((e) => fr(e.meta, this.reader).pipe(w((t) => ({
1898
1922
  ...e,
1899
1923
  meta: t
1900
- }))), n), O({
1924
+ }))), n), k({
1901
1925
  refCount: !0,
1902
1926
  bufferSize: 1
1903
1927
  }));
@@ -1909,9 +1933,9 @@ var un = class {
1909
1933
  };
1910
1934
  }
1911
1935
  locateResource(e, t) {
1912
- return Array.isArray(e) ? Tt(() => v(e.map((e) => this.locate(e, t ?? {}))).pipe(re([]))) : this.locate(e, t ?? {});
1936
+ return Array.isArray(e) ? St(() => v(e.map((e) => this.locate(e, t ?? {}))).pipe(re([]))) : this.locate(e, t ?? {});
1913
1937
  }
1914
- }, _r = R.namespace("spine"), vr = ({ position: e, pageSize: t }) => new mn({
1938
+ }, mr = R.namespace("spine"), hr = ({ position: e, pageSize: t }) => new dn({
1915
1939
  ...e,
1916
1940
  left: e.x,
1917
1941
  top: e.y,
@@ -1919,7 +1943,7 @@ var un = class {
1919
1943
  height: t.height,
1920
1944
  bottom: e.y + t.height,
1921
1945
  right: e.x + t.width
1922
- }), yr = 10, br = (e) => {
1946
+ }), gr = 10, _r = (e) => {
1923
1947
  let { spineItem: t, ...n } = e;
1924
1948
  if (!e.spineItem.value.isLoaded) return {
1925
1949
  ...n,
@@ -1931,9 +1955,9 @@ var un = class {
1931
1955
  firstVisibleNode: void 0
1932
1956
  } : {
1933
1957
  ...n,
1934
- firstVisibleNode: Ve(r, e.layout)
1958
+ firstVisibleNode: Re(r, e.layout)
1935
1959
  };
1936
- }, xr = (e) => new f((t) => {
1960
+ }, vr = (e) => new f((t) => {
1937
1961
  if (e.length === 0) {
1938
1962
  t.next([]), t.complete();
1939
1963
  return;
@@ -1943,13 +1967,13 @@ var un = class {
1943
1967
  }, o = () => {
1944
1968
  n = void 0;
1945
1969
  let a = 0;
1946
- for (; r < e.length && a < yr;) {
1970
+ for (; r < e.length && a < gr;) {
1947
1971
  let t = e[r];
1948
1972
  if (!t) {
1949
1973
  r = e.length;
1950
1974
  break;
1951
1975
  }
1952
- i[r] = br(t), r += 1, a += 1;
1976
+ i[r] = _r(t), r += 1, a += 1;
1953
1977
  }
1954
1978
  if (r >= e.length) {
1955
1979
  t.next(i), t.complete();
@@ -1962,9 +1986,9 @@ var un = class {
1962
1986
  return s(), () => {
1963
1987
  a();
1964
1988
  };
1965
- }), Sr = class e extends U {
1989
+ }), yr = class e extends U {
1966
1990
  constructor(t, n, r, i, a, o) {
1967
- super({ pages: [] }), this.spineLayout = t, this.spineItemsManager = n, this.spineItemLocator = r, this.context = i, this.locator = a, this.viewport = o, this.fromSpineItemPageIndex = (t, n) => e.fromSpineItemPageIndex(this.value, t, n), this.fromNextPageWithinSameSpineItem = (t) => e.fromNextPageWithinSameSpineItem(this.value, t), this.fromAbsolutePageIndex = (t) => e.fromAbsolutePageIndex(this.value, t), this.observeFromAbsolutePageIndex = (e) => this.pipe(w(() => this.fromAbsolutePageIndex(e))), this.layout$ = t.layout$.pipe(N(o), A(([, { pageSize: e }]) => xr(n.items.reduce((t, n, i) => {
1991
+ super({ pages: [] }), this.spineLayout = t, this.spineItemsManager = n, this.spineItemLocator = r, this.context = i, this.locator = a, this.viewport = o, this.fromSpineItemPageIndex = (t, n) => e.fromSpineItemPageIndex(this.value, t, n), this.fromNextPageWithinSameSpineItem = (t) => e.fromNextPageWithinSameSpineItem(this.value, t), this.fromAbsolutePageIndex = (t) => e.fromAbsolutePageIndex(this.value, t), this.observeFromAbsolutePageIndex = (e) => this.pipe(w(() => this.fromAbsolutePageIndex(e))), this.layout$ = t.layout$.pipe(P(o), j(([, { pageSize: e }]) => vr(n.items.reduce((t, n, i) => {
1968
1992
  for (let o = 0; o < n.numberOfPages; o += 1) {
1969
1993
  let s = r.getSpineItemPositionFromPageIndex({
1970
1994
  spineItem: n,
@@ -1974,11 +1998,11 @@ var un = class {
1974
1998
  spineItemPosition: s
1975
1999
  }), l = t.length;
1976
2000
  t.push({
1977
- absoluteLayout: vr({
2001
+ absoluteLayout: hr({
1978
2002
  pageSize: e,
1979
2003
  position: c
1980
2004
  }),
1981
- layout: new fn({
2005
+ layout: new ln({
1982
2006
  left: s.x,
1983
2007
  right: s.x + e.width,
1984
2008
  top: s.y,
@@ -1995,7 +2019,7 @@ var un = class {
1995
2019
  });
1996
2020
  }
1997
2021
  return t;
1998
- }, []))), w((e) => (_r.info("Pages layout", e), { pages: e })), D()), this.layout$.pipe(j(this.destroy$)).subscribe(this.next.bind(this));
2022
+ }, []))), w((e) => (mr.info("Pages layout", e), { pages: e })), O()), this.layout$.pipe(M(this.destroy$)).subscribe(this.next.bind(this));
1999
2023
  }
2000
2024
  static {
2001
2025
  this.fromSpineItemPageIndex = (e, t, n) => {
@@ -2009,20 +2033,20 @@ var un = class {
2009
2033
  static {
2010
2034
  this.fromAbsolutePageIndex = (e, t) => e.pages.find((e) => e.absolutePageIndex === t);
2011
2035
  }
2012
- }, Cr = (e) => {
2036
+ }, br = (e) => {
2013
2037
  let t = e.indexOf("#");
2014
2038
  return t >= 0 ? e.substring(0, t) : e;
2015
- }, wr = (e) => {
2039
+ }, xr = (e) => {
2016
2040
  if (!e) return;
2017
2041
  let t = e.indexOf("#");
2018
2042
  if (!(t < 0)) return e.substring(t + 1) || void 0;
2019
- }, Tr = (e) => {
2043
+ }, Sr = (e) => {
2020
2044
  try {
2021
2045
  return decodeURIComponent(e);
2022
2046
  } catch {
2023
2047
  return e;
2024
2048
  }
2025
- }, Er = (e, t = []) => e.flatMap((e) => {
2049
+ }, Cr = (e, t = []) => e.flatMap((e) => {
2026
2050
  let n = [...t, {
2027
2051
  title: e.title,
2028
2052
  path: e.path
@@ -2030,24 +2054,24 @@ var un = class {
2030
2054
  return [{
2031
2055
  chain: n,
2032
2056
  href: e.href || e.path,
2033
- anchorId: wr(e.href) ?? wr(e.path)
2034
- }, ...Er(e.contents, n)];
2035
- }), Dr = (e) => {
2057
+ anchorId: xr(e.href) ?? xr(e.path)
2058
+ }, ...Cr(e.contents, n)];
2059
+ }), wr = (e) => {
2036
2060
  let t = /* @__PURE__ */ new Map();
2037
2061
  return e.spineItems.forEach((e, n) => {
2038
2062
  t.has(e.href) || t.set(e.href, n);
2039
2063
  }), t;
2040
- }, Or = (e, t) => {
2041
- let n = Dr(t);
2042
- return Er(e).map((e) => {
2043
- let t = Cr(e.href), r = n.get(t) ?? -1;
2064
+ }, Tr = (e, t) => {
2065
+ let n = wr(t);
2066
+ return Cr(e).map((e) => {
2067
+ let t = br(e.href), r = n.get(t) ?? -1;
2044
2068
  return {
2045
2069
  ...e,
2046
2070
  hrefWithoutAnchor: t,
2047
2071
  spineItemIndex: r
2048
2072
  };
2049
2073
  });
2050
- }, kr = ({ manifest: e, tocIndex: t }) => {
2074
+ }, Er = ({ manifest: e, tocIndex: t }) => {
2051
2075
  let n = /* @__PURE__ */ new Map();
2052
2076
  t.forEach((e, t) => {
2053
2077
  let r = n.get(e.hrefWithoutAnchor);
@@ -2060,19 +2084,19 @@ var un = class {
2060
2084
  let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
2061
2085
  for (let a of e.spineItems) {
2062
2086
  if (r.has(a.href)) continue;
2063
- let e = Cr(a.href), o = i.get(e);
2087
+ let e = br(a.href), o = i.get(e);
2064
2088
  if (!o) {
2065
2089
  let r = [];
2066
- for (let [t, i] of n) Ar(e, t) && r.push(...i);
2090
+ for (let [t, i] of n) Dr(e, t) && r.push(...i);
2067
2091
  r.sort((e, t) => e - t), o = r.map((e) => t[e]), i.set(e, o);
2068
2092
  }
2069
2093
  r.set(a.href, o);
2070
2094
  }
2071
2095
  return r;
2072
- }, Ar = (e, t) => e === t || e.endsWith(t) || t.endsWith(e), jr = (e, t) => {
2096
+ }, Dr = (e, t) => e === t || e.endsWith(t) || t.endsWith(e), Or = (e, t) => {
2073
2097
  let n = e.endsWith(t), r = e.substring(0, e.lastIndexOf("/")), i = t.substring(0, t.lastIndexOf("/")), a = r !== "" && r.endsWith(i);
2074
2098
  return n || a;
2075
- }, Mr = (e) => {
2099
+ }, kr = (e) => {
2076
2100
  let [t, ...n] = e;
2077
2101
  if (!t) return;
2078
2102
  let r = {
@@ -2087,7 +2111,7 @@ var un = class {
2087
2111
  i.subChapter = t, i = t;
2088
2112
  }
2089
2113
  return r;
2090
- }, Nr = ({ doc: e, node: t, offset: n }) => {
2114
+ }, Ar = ({ doc: e, node: t, offset: n }) => {
2091
2115
  let r = e.createRange();
2092
2116
  if (t.nodeType === Node.TEXT_NODE || t.nodeType === Node.CDATA_SECTION_NODE || t.nodeType === Node.COMMENT_NODE) {
2093
2117
  let e = t, i = Math.max(0, Math.min(n, e.length));
@@ -2097,18 +2121,18 @@ var un = class {
2097
2121
  r.setStart(t, i);
2098
2122
  }
2099
2123
  return r.collapse(!0), r;
2100
- }, Pr = ({ rangeToTest: e, upperBoundRange: t }) => e.compareBoundaryPoints(Range.START_TO_START, t) < 0, Fr = (e) => {
2124
+ }, jr = ({ rangeToTest: e, upperBoundRange: t }) => e.compareBoundaryPoints(Range.START_TO_START, t) < 0, Mr = (e) => {
2101
2125
  let t = e.createRange(), n = e.body ?? e.documentElement;
2102
2126
  if (n) return t.selectNodeContents(n), t.collapse(!1), t;
2103
- }, Ir = ({ anchorNode: e, nextPageNode: t }) => e === t || e.contains(t), Lr = ({ node: e, offset: t, candidates: n, spineItem: r, nextPageEntry: i }) => {
2127
+ }, Nr = ({ anchorNode: e, nextPageNode: t }) => e === t || e.contains(t), Pr = ({ node: e, offset: t, candidates: n, spineItem: r, nextPageEntry: i }) => {
2104
2128
  if (!e || t === void 0 || !r || n.length === 0) return;
2105
2129
  let a = r.renderer.getDocumentFrame()?.contentDocument;
2106
2130
  if (!a || e.ownerDocument !== a) return;
2107
- let o = i?.firstVisibleNode?.node, s = i?.firstVisibleNode?.offset, c = i ? o !== void 0 && s !== void 0 && o.ownerDocument === a ? Nr({
2131
+ let o = i?.firstVisibleNode?.node, s = i?.firstVisibleNode?.offset, c = i ? o !== void 0 && s !== void 0 && o.ownerDocument === a ? Ar({
2108
2132
  doc: a,
2109
2133
  node: o,
2110
2134
  offset: s
2111
- }) : void 0 : Fr(a);
2135
+ }) : void 0 : Mr(a);
2112
2136
  if (!c) return;
2113
2137
  let l = i !== void 0 && o !== void 0 && o.ownerDocument === a, u, d, f;
2114
2138
  for (let e of n) {
@@ -2116,56 +2140,53 @@ var un = class {
2116
2140
  f = e.chain;
2117
2141
  continue;
2118
2142
  }
2119
- let t = a.getElementById(Tr(e.anchorId));
2120
- if (!t || l && Ir({
2143
+ let t = a.getElementById(Sr(e.anchorId));
2144
+ if (!t || l && Nr({
2121
2145
  anchorNode: t,
2122
2146
  nextPageNode: o
2123
2147
  })) continue;
2124
2148
  let n = a.createRange();
2125
- n.setStartBefore(t), n.collapse(!0), Pr({
2149
+ n.setStartBefore(t), n.collapse(!0), jr({
2126
2150
  rangeToTest: n,
2127
2151
  upperBoundRange: c
2128
2152
  }) && (!d || n.compareBoundaryPoints(Range.START_TO_START, d) > 0) && (u = e.chain, d = n);
2129
2153
  }
2130
2154
  let p = u ?? f;
2131
- return p ? Mr(p) : void 0;
2132
- }, Rr = ({ candidate: e, hrefHasAnchor: t }) => {
2155
+ return p ? kr(p) : void 0;
2156
+ }, Fr = ({ candidate: e, hrefHasAnchor: t }) => {
2133
2157
  if (t || !e.anchorId) return !1;
2134
2158
  let n = e.chain[e.chain.length - 1], r = e.chain[e.chain.length - 2];
2135
- return !n || !r ? !1 : Cr(n.path) === Cr(r.path);
2136
- }, zr = ({ href: e, tocIndex: t, manifest: n }) => {
2137
- let r = Cr(e), i = e.includes("#"), a = n.spineItems.findIndex((e) => e.href === r), o;
2138
- for (let e of t) jr(r, e.hrefWithoutAnchor) && (a < e.spineItemIndex || Rr({
2159
+ return !n || !r ? !1 : br(n.path) === br(r.path);
2160
+ }, Ir = ({ href: e, tocIndex: t, manifest: n }) => {
2161
+ let r = br(e), i = e.includes("#"), a = n.spineItems.findIndex((e) => e.href === r), o;
2162
+ for (let e of t) Or(r, e.hrefWithoutAnchor) && (a < e.spineItemIndex || Fr({
2139
2163
  candidate: e,
2140
2164
  hrefHasAnchor: i
2141
2165
  }) || (o = e.chain));
2142
2166
  return o;
2143
- }, Br = (e, t, n) => {
2144
- let { href: r } = n, i = zr({
2167
+ }, Lr = (e, t, n) => {
2168
+ let { href: r } = n, i = Ir({
2145
2169
  href: r,
2146
2170
  tocIndex: t,
2147
2171
  manifest: e
2148
2172
  });
2149
- return i ? Mr(i) : void 0;
2150
- }, Vr = (e, t) => e ? e.spineItems.reduce((n, r) => (n[r.id] = Br(e, t, r), n), {}) : {}, Hr = (e, t, n) => e + t * n, Ur = (e, t, n) => {
2173
+ return i ? kr(i) : void 0;
2174
+ }, Rr = (e, t) => e ? e.spineItems.reduce((n, r) => (n[r.id] = Lr(e, t, r), n), {}) : {}, zr = (e, t, n) => e + t * n, Br = (e, t, n) => {
2151
2175
  let { height: r, width: i } = n.layoutInfo, { top: a, left: o } = e.spine.getSpineItemSpineLayoutInfo(n);
2152
2176
  return e.settings.values.computedPageTurnDirection === "vertical" ? Math.max(0, Math.min(1, (t.y - a + e.viewport.absoluteViewport.height) / r)) : Math.max(0, Math.min(1, (t.x - o + e.viewport.absoluteViewport.width) / i));
2153
- }, Wr = (e, t, n, r, i, a) => i.isReady$.pipe(x(), N(e.layoutInfo$), w(([o, s]) => {
2177
+ }, Vr = (e, t, n, r, i, a) => i.isReady$.pipe(x(), P(e.layoutInfo$), w(([o, s]) => {
2154
2178
  let c = a.renditionLayout === "pre-paginated", l = a.spineItems.length || 0, u = a.spineItems.slice(0, t).reduce((e, t) => e + (t.progressionWeight ?? 0), 0) || 0, d = e.spineItemsManager.getSpineItemIndex(i) ?? 0, f = a.spineItems.length ?? 0, p = s.pages.filter((e) => e.itemIndex === d).length ?? 0, m = a.spineItems[t]?.progressionWeight ?? (d + 1) / f, h = (n + 1) * (m / p);
2155
2179
  !c && i.renditionLayout === "reflowable" && !o && (h = 0);
2156
2180
  let g = u + h;
2157
- return a.renditionFlow === "scrolled-continuous" && (h = o ? Ur(e, r, i) : 0, g = Hr(u, m, h)), t === l - 1 && n === p - 1 && g > .99 ? 1 : g;
2158
- })), Gr = {
2159
- tocCandidatesBySpineHref: /* @__PURE__ */ new Map(),
2160
- chaptersInfo: {}
2161
- }, Kr = ({ beginItem: e, endItem: t, paginationInfo: n, chaptersData: r, pagesState: i }) => {
2162
- let a = e && n.beginPageIndexInSpineItem !== void 0 ? Sr.fromSpineItemPageIndex(i, e.index, n.beginPageIndexInSpineItem) : void 0, o = a ? Sr.fromNextPageWithinSameSpineItem(i, a) : void 0, s = t && n.endPageIndexInSpineItem !== void 0 ? Sr.fromSpineItemPageIndex(i, t.index, n.endPageIndexInSpineItem) : void 0, c = s ? Sr.fromNextPageWithinSameSpineItem(i, s) : void 0, l = e ? Lr({
2181
+ return a.renditionFlow === "scrolled-continuous" && (h = o ? Br(e, r, i) : 0, g = zr(u, m, h)), t === l - 1 && n === p - 1 && g > .99 ? 1 : g;
2182
+ })), Hr = ({ beginItem: e, endItem: t, paginationInfo: n, chaptersData: r, pagesState: i }) => {
2183
+ let a = e && n.beginPageIndexInSpineItem !== void 0 ? yr.fromSpineItemPageIndex(i, e.index, n.beginPageIndexInSpineItem) : void 0, o = a ? yr.fromNextPageWithinSameSpineItem(i, a) : void 0, s = t && n.endPageIndexInSpineItem !== void 0 ? yr.fromSpineItemPageIndex(i, t.index, n.endPageIndexInSpineItem) : void 0, c = s ? yr.fromNextPageWithinSameSpineItem(i, s) : void 0, l = e ? Pr({
2163
2184
  node: a?.firstVisibleNode?.node,
2164
2185
  offset: a?.firstVisibleNode?.offset,
2165
2186
  candidates: r.tocCandidatesBySpineHref.get(e.item.href) ?? [],
2166
2187
  spineItem: e,
2167
2188
  nextPageEntry: o
2168
- }) : void 0, u = t ? Lr({
2189
+ }) : void 0, u = t ? Pr({
2169
2190
  node: s?.firstVisibleNode?.node,
2170
2191
  offset: s?.firstVisibleNode?.offset,
2171
2192
  candidates: r.tocCandidatesBySpineHref.get(t.item.href) ?? [],
@@ -2180,77 +2201,75 @@ var un = class {
2180
2201
  endSpineItemReadingDirection: t?.readingDirection,
2181
2202
  endAbsolutePageIndex: s?.absolutePageIndex
2182
2203
  };
2183
- }, qr = ({ items: e, pagesState: t }) => {
2204
+ }, Ur = ({ items: e, pagesState: t }) => {
2184
2205
  let n = e.map(() => 0);
2185
2206
  for (let e of t.pages) n[e.itemIndex] = (n[e.itemIndex] ?? 0) + 1;
2186
2207
  return {
2187
2208
  numberOfPagesPerItems: n,
2188
2209
  numberOfTotalPages: t.pages.length
2189
2210
  };
2190
- }, Jr = (e, t) => e.numberOfTotalPages !== t.numberOfTotalPages || e.numberOfPagesPerItems.length !== t.numberOfPagesPerItems.length ? !1 : e.numberOfPagesPerItems.every((e, n) => e === t.numberOfPagesPerItems[n]), Yr = ({ reader: e, paginationInfo: t, navigationPosition: n, manifest: r }) => {
2211
+ }, Wr = (e, t) => e.numberOfTotalPages !== t.numberOfTotalPages || e.numberOfPagesPerItems.length !== t.numberOfPagesPerItems.length ? !1 : e.numberOfPagesPerItems.every((e, n) => e === t.numberOfPagesPerItems[n]), Gr = ({ reader: e, paginationInfo: t, navigationPosition: n, manifest: r }) => {
2191
2212
  let i = e.spineItemsManager.get(t.endSpineItemIndex);
2192
- return i ? Wr(e, t.endSpineItemIndex ?? 0, t.endPageIndexInSpineItem || 0, n, i, r) : E(0);
2193
- }, Xr = (e) => e.context.manifest$.pipe(w((e) => {
2194
- if (!e) return Gr;
2195
- let t = Or(e.nav?.toc ?? [], e);
2213
+ return i ? Vr(e, t.endSpineItemIndex ?? 0, t.endPageIndexInSpineItem || 0, n, i, r) : D(0);
2214
+ }, Kr = (e) => D(e.context.manifest).pipe(w((e) => {
2215
+ let t = Tr(e.nav?.toc ?? [], e);
2196
2216
  return {
2197
- tocCandidatesBySpineHref: kr({
2217
+ tocCandidatesBySpineHref: Er({
2198
2218
  manifest: e,
2199
2219
  tocIndex: t
2200
2220
  }),
2201
- chaptersInfo: Vr(e, t)
2221
+ chaptersInfo: Rr(e, t)
2202
2222
  };
2203
- })), Zr = (e) => ({
2223
+ })), qr = (e) => ({
2204
2224
  beginSpineItemIndex: e.beginSpineItemIndex,
2205
2225
  beginPageIndexInSpineItem: e.beginPageIndexInSpineItem,
2206
2226
  endSpineItemIndex: e.endSpineItemIndex,
2207
2227
  endPageIndexInSpineItem: e.endPageIndexInSpineItem
2208
- }), Qr = (e) => {
2209
- let t = e.pagination.state$, n = e.spine.pages.layout$, r = Xr(e).pipe(O({
2228
+ }), Jr = (e) => {
2229
+ let t = e.pagination.state$, n = e.spine.pages.layout$, r = Kr(e).pipe(k({
2210
2230
  bufferSize: 1,
2211
2231
  refCount: !0
2212
2232
  })), i = v([
2213
- t.pipe(w(Zr), y(o)),
2233
+ t.pipe(w(qr), y(o)),
2214
2234
  r,
2215
2235
  n
2216
- ]).pipe(w(([t, n, r]) => Kr({
2236
+ ]).pipe(w(([t, n, r]) => Hr({
2217
2237
  beginItem: e.spineItemsManager.get(t.beginSpineItemIndex),
2218
2238
  endItem: e.spineItemsManager.get(t.endSpineItemIndex),
2219
2239
  paginationInfo: t,
2220
2240
  chaptersData: n,
2221
2241
  pagesState: r
2222
- })), O({
2242
+ })), k({
2223
2243
  bufferSize: 1,
2224
2244
  refCount: !0
2225
2245
  })), a = v([
2226
2246
  t,
2227
2247
  e.settings.watch(["computedSpreadMode"]).pipe(w((e) => e.computedSpreadMode ?? !1), y()),
2228
2248
  i,
2229
- v([n, e.spineItemsManager.items$]).pipe(w(([e, t]) => qr({
2230
- items: t,
2231
- pagesState: e
2232
- })), y(Jr))
2249
+ n.pipe(w((t) => Ur({
2250
+ items: e.spineItemsManager.items,
2251
+ pagesState: t
2252
+ })), y(Wr))
2233
2253
  ]).pipe(w(([e, t, n, r]) => ({
2234
2254
  ...e,
2235
2255
  ...n,
2236
2256
  isUsingSpread: t,
2237
2257
  ...r
2238
- }))), s = Xn(e.navigation).pipe(w(({ position: e }) => e), y(o));
2258
+ }))), s = qn(e.navigation).pipe(w(({ position: e }) => e), y(o));
2239
2259
  return v([a, v([
2240
2260
  t,
2241
2261
  e.layout$,
2242
- s,
2243
- e.context.manifest$
2244
- ]).pipe(A(([t, n, r, i]) => Yr({
2262
+ s
2263
+ ]).pipe(j(([t, n, r]) => Gr({
2245
2264
  reader: e,
2246
2265
  paginationInfo: t,
2247
2266
  navigationPosition: r,
2248
- manifest: i
2267
+ manifest: e.context.manifest
2249
2268
  })), w((e) => ({ percentageEstimateOfBook: e })))]).pipe(w(([e, t]) => ({
2250
2269
  ...e,
2251
2270
  ...t
2252
2271
  })), y(o), g(5));
2253
- }, $r = (e) => (t) => {
2272
+ }, Yr = (e) => (t) => {
2254
2273
  let n = e(t), r = new l({
2255
2274
  ...n.pagination.state,
2256
2275
  beginChapterInfo: void 0,
@@ -2266,7 +2285,7 @@ var un = class {
2266
2285
  endChapterInfo: void 0,
2267
2286
  endSpineItemReadingDirection: void 0,
2268
2287
  percentageEstimateOfBook: 0
2269
- }), i = new gr(n), a = Qr(n).pipe(M((e) => R.log("Pagination", e))).subscribe(r);
2288
+ }), i = new pr(n), a = Jr(n).pipe(N((e) => R.log("Pagination", e))).subscribe(r);
2270
2289
  return {
2271
2290
  ...n,
2272
2291
  locateResource: i.locateResource.bind(i),
@@ -2283,109 +2302,7 @@ var un = class {
2283
2302
  }
2284
2303
  }
2285
2304
  };
2286
- }, ei = (e) => ({
2287
- put: (t, n) => new Promise((r, i) => {
2288
- let a = e.transaction(["store"], "readwrite");
2289
- a.onerror = (e) => {
2290
- i(e);
2291
- }, a.oncomplete = () => {
2292
- r();
2293
- };
2294
- let o = a.objectStore("store").put(n, t);
2295
- o.onsuccess = () => {
2296
- r();
2297
- }, o.onerror = (e) => {
2298
- i(e);
2299
- };
2300
- }),
2301
- keys: () => new Promise((t, n) => {
2302
- let r = e.transaction(["store"], "readonly");
2303
- r.onerror = (e) => {
2304
- n(e);
2305
- };
2306
- let i = r.objectStore("store").openKeyCursor(), a = [];
2307
- i.onsuccess = () => {
2308
- let e = i.result;
2309
- if (!e) {
2310
- t(a);
2311
- return;
2312
- }
2313
- a.push(e.key), e.continue();
2314
- }, i.onerror = () => {
2315
- n(i.error);
2316
- };
2317
- }),
2318
- get: (t) => new Promise((n, r) => {
2319
- let i = e.transaction(["store"], "readwrite"), a = i.objectStore("store").get(t);
2320
- a.onsuccess = () => {
2321
- let e = a.result;
2322
- e === void 0 && (e = null), n(e);
2323
- }, i.onerror = () => {
2324
- r(a.error);
2325
- };
2326
- }),
2327
- remove: (t) => new Promise((n, r) => {
2328
- let i = e.transaction(["store"], "readwrite"), a = i.objectStore("store").delete(t);
2329
- i.onerror = () => {
2330
- r(a.error);
2331
- }, i.oncomplete = () => {
2332
- n();
2333
- }, i.onabort = () => {
2334
- r(a.error ? a.error : a.transaction?.error);
2335
- };
2336
- })
2337
- }), ti = async (e) => new Promise((t, n) => {
2338
- let r = window.indexedDB.open(e);
2339
- r.onerror = (e) => {
2340
- n(e);
2341
- }, r.onsuccess = () => {
2342
- t(ei(r.result));
2343
- }, r.onupgradeneeded = () => {
2344
- r.result.createObjectStore("store");
2345
- };
2346
- }), ni = (e) => {
2347
- let t = Date.now().toString(), n = new m(), r = (t) => {
2348
- if (typeof t == "string" || typeof t == "object") {
2349
- let n = typeof t == "object" ? t.id : t;
2350
- return e.manifest?.spineItems.find((e) => e.id === n);
2351
- }
2352
- return e.manifest?.spineItems[t];
2353
- }, i = async (e, n) => {
2354
- let i = r(e);
2355
- if (!i) return new Response("Item not found", { status: 404 });
2356
- let o = await (await ti("prose-reader")).get(`${t}_${i.id}`);
2357
- if (o) return new Response(o, { status: 200 });
2358
- let s = n && await n(i) || await fetch(i.href);
2359
- return a(i, s.clone()), s;
2360
- }, a = (e, t) => {
2361
- n.next({
2362
- id: e,
2363
- data: t
2364
- });
2365
- };
2366
- return n.asObservable().pipe(Te(({ id: e, data: n }) => {
2367
- let i = r(e);
2368
- return i ? S(le([ti("prose-reader"), S(n.blob())])).pipe(F(([e, n]) => S(e.put(`${t}_${i.id}`, n))), be((e) => (R.error(e), u))) : u;
2369
- }), I(e.destroy$)).subscribe(), T(e.manifest$.pipe(L(() => {
2370
- t = Date.now().toString();
2371
- }))).pipe(F(() => (R.debug("Cleanup up old cache..."), S(ti("prose-reader")).pipe(F((e) => S(e.keys()).pipe(P((e) => e.filter((e) => !e.toString().startsWith(t))), F((t) => {
2372
- let n = t.map((t) => e.remove(t));
2373
- return S(Promise.all(n));
2374
- }))), be((e) => (R.error(e), u))))), I(e.destroy$)).subscribe(), {
2375
- get: i,
2376
- destroy: () => {
2377
- n.complete();
2378
- }
2379
- };
2380
- }, ri = (e) => (t) => {
2381
- let n = e(t), r = ni(n.context), i = () => {
2382
- r.destroy(), n.destroy();
2383
- };
2384
- return {
2385
- ...n,
2386
- destroy: i
2387
- };
2388
- }, ii = (e, t) => {
2305
+ }, Xr = (e, t) => {
2389
2306
  let n = e.node.ownerDocument?.createRange(), r = e.node.compareDocumentPosition(t.node);
2390
2307
  if (n) {
2391
2308
  try {
@@ -2403,10 +2320,10 @@ var un = class {
2403
2320
  }
2404
2321
  return n;
2405
2322
  }
2406
- }, ai = ({ selection: e, spineItem: t }) => {
2323
+ }, Zr = ({ selection: e, spineItem: t }) => {
2407
2324
  let { anchorNode: n, anchorOffset: r, focusNode: i, focusOffset: a } = e;
2408
2325
  if (!(!n || !i)) try {
2409
- return ii({
2326
+ return Xr({
2410
2327
  node: n,
2411
2328
  offset: r
2412
2329
  }, {
@@ -2420,26 +2337,26 @@ var un = class {
2420
2337
  });
2421
2338
  return;
2422
2339
  }
2423
- }, oi = class extends Q {
2340
+ }, Qr = class extends Q {
2424
2341
  constructor(e) {
2425
2342
  super();
2426
2343
  let t = e.contentDocument || e.contentWindow?.document;
2427
2344
  if (!t) this.selectionChange$ = d, this.selectionOver$ = d;
2428
2345
  else {
2429
- let n = Et(t.body, {
2346
+ let n = Ct(t.body, {
2430
2347
  childList: !0,
2431
2348
  subtree: !0
2432
- }).pipe(b((e) => !!e.find((e) => e.type === "childList" && e.removedNodes.length))), r = e.parentElement ? Et(e.parentElement, { childList: !0 }).pipe(b((t) => !!t.find((t) => Array.from(t.removedNodes).includes(e)))) : E(null);
2433
- this.selectionChange$ = T(C(t, "selectionchange"), n).pipe(w(() => t.getSelection()), j(T(r, this.destroy$)), oe(null)), this.selectionOver$ = C(t, "pointerdown").pipe(A(() => T(C(t, "pointerup"), C(t, "pointercancel"), C(t, "contextmenu")).pipe(x(), ae(0), w((e) => {
2349
+ }).pipe(b((e) => !!e.find((e) => e.type === "childList" && e.removedNodes.length))), r = e.parentElement ? Ct(e.parentElement, { childList: !0 }).pipe(b((t) => !!t.find((t) => Array.from(t.removedNodes).includes(e)))) : D(null);
2350
+ this.selectionChange$ = T(C(t, "selectionchange"), n).pipe(w(() => t.getSelection()), M(T(r, this.destroy$)), oe(null)), this.selectionOver$ = C(t, "pointerdown").pipe(j(() => T(C(t, "pointerup"), C(t, "pointercancel"), C(t, "contextmenu")).pipe(x(), ae(0), w((e) => {
2434
2351
  let n = t.getSelection();
2435
2352
  return n && !n.isCollapsed ? [e, n] : void 0;
2436
- }), b(K))), j(T(r, this.destroy$)));
2353
+ }), b(K))), M(T(r, this.destroy$)));
2437
2354
  }
2438
2355
  }
2439
- }, si = (e) => e.watch("isLoaded").pipe(A(() => {
2356
+ }, $r = (e) => e.watch("isLoaded").pipe(j(() => {
2440
2357
  let t = e.renderer.getDocumentFrame(), n = t?.contentDocument || t?.contentWindow?.document;
2441
2358
  if (!t || !n) return d;
2442
- let r = new oi(t);
2359
+ let r = new Qr(t);
2443
2360
  return T(r.selectionChange$.pipe(w((e) => {
2444
2361
  if (e?.toString()) return {
2445
2362
  type: "change",
@@ -2449,28 +2366,28 @@ var un = class {
2449
2366
  type: "over",
2450
2367
  event: e,
2451
2368
  selection: t
2452
- })))).pipe(j(e.unloaded$), oe(void 0), ce(() => {
2369
+ })))).pipe(M(e.unloaded$), oe(void 0), ce(() => {
2453
2370
  r.destroy();
2454
2371
  }));
2455
- }), y()), ci = (e) => (t) => {
2456
- let n = e(t), r, i = n.spineItemsManager.items$.pipe(A((e) => T(...e.map((e) => {
2372
+ }), y()), ei = (e) => (t) => {
2373
+ let n = e(t), r, i = T(...n.spineItemsManager.items.map((e) => {
2457
2374
  let t = n.spineItemsManager.getSpineItemIndex(e) ?? 0;
2458
- return si(e).pipe(w((e) => {
2375
+ return $r(e).pipe(w((e) => {
2459
2376
  if (e) return {
2460
2377
  ...e,
2461
2378
  itemIndex: t
2462
2379
  };
2463
2380
  }));
2464
- }))), k(void 0), y(), M((e) => {
2381
+ })).pipe(A(void 0), y(), N((e) => {
2465
2382
  r = e;
2466
- }), O({
2383
+ }), k({
2467
2384
  refCount: !0,
2468
2385
  bufferSize: 1
2469
- })), a = i, o = i.pipe(w((e) => !!e), y(), b((e) => e), D()), s = o.pipe(A(() => a), y(), b((e) => !e), D()), c = i.pipe(b((e) => e?.type === "over"), D()), l = n.context.watch("rootElement").pipe(b(K), A((e) => C(e, "pointerdown")), N(a), w(([, e]) => e), k(void 0), O({
2386
+ })), a = i, o = i.pipe(w((e) => !!e), y(), b((e) => e), O()), s = o.pipe(j(() => a), y(), b((e) => !e), O()), c = i.pipe(b((e) => e?.type === "over"), O()), l = n.context.watch("rootElement").pipe(b(K), j((e) => C(e, "pointerdown")), P(a), w(([, e]) => e), A(void 0), k({
2470
2387
  refCount: !0,
2471
2388
  bufferSize: 1
2472
2389
  }));
2473
- return T(a, l).pipe(j(n.$.destroy$)).subscribe(), {
2390
+ return T(a, l).pipe(M(n.$.destroy$)).subscribe(), {
2474
2391
  ...n,
2475
2392
  selection: {
2476
2393
  selection$: a,
@@ -2479,10 +2396,10 @@ var un = class {
2479
2396
  selectionOver$: c,
2480
2397
  lastSelectionOnPointerdown$: l,
2481
2398
  getSelection: () => r,
2482
- createOrderedRangeFromSelection: ai
2399
+ createOrderedRangeFromSelection: Zr
2483
2400
  }
2484
2401
  };
2485
- }, li = [
2402
+ }, ti = [
2486
2403
  {
2487
2404
  name: "bright",
2488
2405
  backgroundColor: "white"
@@ -2497,9 +2414,9 @@ var un = class {
2497
2414
  backgroundColor: "#191717",
2498
2415
  foregroundColor: "#f1ebeb"
2499
2416
  }
2500
- ], ui = (e) => (t) => {
2417
+ ], ni = (e) => (t) => {
2501
2418
  let n = e(t), r = new l(t.theme ?? "bright"), i = () => {
2502
- let e = li.find((e) => e.name === r.value);
2419
+ let e = ti.find((e) => e.name === r.value);
2503
2420
  return `
2504
2421
  body {
2505
2422
  ${e === void 0 ? "" : `background-color: ${e.backgroundColor} !important;`}
@@ -2512,7 +2429,7 @@ var un = class {
2512
2429
  ` : ""}
2513
2430
  `;
2514
2431
  }, a = ({ container: e }) => {
2515
- let t = li.find((e) => e.name === r.value);
2432
+ let t = ti.find((e) => e.name === r.value);
2516
2433
  return t && B(e.style, "background-color", t.backgroundColor), () => {};
2517
2434
  }, o = () => {
2518
2435
  n.spineItemsManager.items.forEach((e) => {
@@ -2526,7 +2443,7 @@ var un = class {
2526
2443
  let e = t?.renderer.getDocumentFrame();
2527
2444
  e && H(e, "prose-reader-theme", i());
2528
2445
  }
2529
- }), n.spineItemsManager.items$.pipe(L((e) => e.map(({ element: e }) => a({ container: e }))), I(n.$.destroy$)).subscribe(), r.pipe(L(() => {
2446
+ }), r.pipe(L(() => {
2530
2447
  o();
2531
2448
  }), I(n.$.destroy$)).subscribe(), {
2532
2449
  ...n,
@@ -2538,10 +2455,10 @@ var un = class {
2538
2455
  $: { theme$: r.asObservable() }
2539
2456
  }
2540
2457
  };
2541
- }, di = (e) => (t) => {
2542
- let n = e(t), r = (e) => !!($e(e) && (e.nodeName === "a" ? e : e.closest("a"))?.getAttribute("href")), i = (e, t, r) => {
2458
+ }, ri = (e) => (t) => {
2459
+ let n = e(t), r = (e) => !!(Xe(e) && (e.nodeName === "a" ? e : e.closest("a"))?.getAttribute("href")), i = (e, t, r) => {
2543
2460
  let i = r.replace("${id}", n.id);
2544
- return nt(e, `${t}-${n.id}`, i);
2461
+ return $e(e, `${t}-${n.id}`, i);
2545
2462
  };
2546
2463
  return {
2547
2464
  ...n,
@@ -2552,7 +2469,7 @@ var un = class {
2552
2469
  };
2553
2470
  };
2554
2471
  navigator.userAgent.indexOf("") > -1 && navigator.userAgent.indexOf("Chrome");
2555
- var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2472
+ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
2556
2473
  let { clientWidth: r, clientHeight: i } = n.value.element, a = {
2557
2474
  maxX: 0,
2558
2475
  minX: r * (1 - t),
@@ -2563,25 +2480,25 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2563
2480
  x: Math.min(Math.max(e.x, a.minX), a.maxX),
2564
2481
  y: Math.min(Math.max(e.y, a.minY), a.maxY)
2565
2482
  };
2566
- }, mi = (e, t, n) => {
2483
+ }, oi = (e, t, n) => {
2567
2484
  B(n.style, "transform-origin", "0 0");
2568
2485
  let r = `translate3d(${t.x}px, ${t.y}px, 0px)`, i = `scale(${e})`;
2569
2486
  B(n.style, "transform", `${r} ${i}`);
2570
- }, hi = (e, t, n, r) => {
2487
+ }, si = (e, t, n, r) => {
2571
2488
  let i = t / e, a = n.clientWidth, o = n.clientHeight, s = a / 2 - r.x, c = o / 2 - r.y;
2572
2489
  return {
2573
2490
  x: r.x + s * (1 - i),
2574
2491
  y: r.y + c * (1 - i)
2575
2492
  };
2576
- }, gi = class {
2493
+ }, ci = class {
2577
2494
  constructor(e) {
2578
2495
  this.x = e.x, this.y = e.y;
2579
2496
  }
2580
- }, _i = class extends gi {}, vi = class extends gi {
2497
+ }, li = class extends ci {}, ui = class extends ci {
2581
2498
  constructor(...e) {
2582
2499
  super(...e), this.__symbol = Symbol("UnboundScrollPosition");
2583
2500
  }
2584
- }, yi = class extends U {
2501
+ }, di = class extends U {
2585
2502
  constructor(e, t, n, r, i) {
2586
2503
  super({ element: void 0 }), this.viewport = e, this.settings = t, this.hookManager = n, this.spine = r, this.context = i, this.navigateSubject = new m(), this.scrollingSubject = new l(!1), this.applyNavigationPosition = ({ position: e }) => {
2587
2504
  let t = this.value.element;
@@ -2591,24 +2508,27 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2591
2508
  left: n.x,
2592
2509
  top: n.y,
2593
2510
  behavior: "instant"
2594
- }), ye(1).pipe(M(() => {
2511
+ }), _e(1).pipe(N(() => {
2595
2512
  this.scrollingSubject.next(!1);
2596
- }), j(T(this.scrollingSubject.pipe(me(1)), this.destroy$))).subscribe(), this.hookManager.execute("onViewportOffsetAdjust", void 0));
2513
+ }), M(T(this.scrollingSubject.pipe(fe(1)), this.destroy$))).subscribe(), this.hookManager.execute("onViewportOffsetAdjust", void 0));
2597
2514
  }, this.isActive = () => this.settings.values.computedPageTurnMode === "scrollable", this.getNavigationVisibleArea = () => this.viewport.relativeViewport;
2598
- let a = this.context.pipe(bt(["rootElement"]), M(({ rootElement: e }) => {
2515
+ let a = this.context.pipe(_t(["rootElement"]), N(({ rootElement: e }) => {
2599
2516
  if (!e) return;
2600
2517
  let t = document.createElement("div");
2601
- t.setAttribute(`data-${En}`, ""), t.appendChild(this.viewport.value.element), e.appendChild(t), this.update({ element: t });
2602
- })), o = v([t.watch(["computedPageTurnMode"]), this.watch("element")]).pipe(M(([{ computedPageTurnMode: e }, t]) => {
2518
+ t.setAttribute(`data-${Cn}`, ""), t.appendChild(this.viewport.value.element), e.appendChild(t), this.update({ element: t });
2519
+ })), o = v([t.watch(["computedPageTurnMode"]), this.watch("element")]).pipe(N(([{ computedPageTurnMode: e }, t]) => {
2603
2520
  t && (e === "scrollable" ? B(t.style, "display", "block") : B(t.style, "display", "contents"));
2604
- })), s = this.navigateSubject.pipe(M(this.applyNavigationPosition));
2521
+ })), s = this.navigateSubject.pipe(N(this.applyNavigationPosition));
2605
2522
  this.isNavigating$ = this.scrollingSubject.asObservable();
2606
- let c = v([T(r.element$.pipe(b(K), A((e) => xt(e))), r.element$.pipe(b(K), A((e) => C(e, "scroll"))), r.spineItemsObserver.itemResize$).pipe(A(() => ye(10).pipe(w(() => !1), k(!0))), y(), k(!1)), this.isNavigating$]).pipe(w(([e, t]) => e || t), O(1));
2607
- this.userScroll$ = this.watch("element").pipe(b(K), A((e) => t.watch(["computedPageTurnMode"]).pipe(A(({ computedPageTurnMode: t }) => t === "controlled" ? d : C(e, "scroll").pipe(N(c), b(([, e]) => !e), w(([e]) => e))))), D()), T(a, o, s).pipe(j(this.destroy$)).subscribe();
2523
+ let c = v([T(r.element$.pipe(b(K), j((e) => vt(e))), r.element$.pipe(b(K), j((e) => C(e, "scroll"))), r.spineItemsObserver.itemResize$).pipe(j(() => _e(10).pipe(w(() => !1), A(!0))), y(), A(!1)), this.isNavigating$]).pipe(w(([e, t]) => e || t), k(1));
2524
+ this.userScroll$ = this.watch("element").pipe(b(K), j((e) => t.watch(["computedPageTurnMode"]).pipe(j(({ computedPageTurnMode: t }) => t === "controlled" ? d : C(e, "scroll").pipe(P(c), b(([, e]) => !e), w(([e]) => e))))), O()), T(a, o, s).pipe(M(this.destroy$)).subscribe();
2608
2525
  }
2609
2526
  update(e) {
2610
2527
  this.mergeCompare(e);
2611
2528
  }
2529
+ destroy() {
2530
+ super.destroy(), this.value.element?.remove();
2531
+ }
2612
2532
  navigate(e) {
2613
2533
  this.navigateSubject.next(e);
2614
2534
  }
@@ -2621,30 +2541,30 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2621
2541
  }
2622
2542
  fromSpinePosition(e) {
2623
2543
  let t = this.viewport.scaleFactor;
2624
- return new _i({
2544
+ return new li({
2625
2545
  x: e.x * t,
2626
2546
  y: e.y * t
2627
2547
  });
2628
2548
  }
2629
2549
  get scrollPosition() {
2630
2550
  let e = this.value.element;
2631
- return new _i({
2551
+ return new li({
2632
2552
  x: e?.scrollLeft ?? 0,
2633
2553
  y: e?.scrollTop ?? 0
2634
2554
  });
2635
2555
  }
2636
- }, bi = (e, t, n, r, i) => {
2556
+ }, fi = (e, t, n, r, i) => {
2637
2557
  let a = e.clientWidth, o = e.clientHeight, s = e.scrollLeft, c = e.scrollTop, l = s + a / 2 - r, u = c + o / 2 - i, d = n / t, f = l * d, p = u * d;
2638
- return new vi({
2558
+ return new ui({
2639
2559
  x: f - a / 2 + r,
2640
2560
  y: p - o / 2 + i
2641
2561
  });
2642
- }, xi = (e, t) => {
2643
- let n = t.viewport, r = t.navigation.scrollNavigationController, i = n.value.element, a = r.value.element, o = r.value.element, s = Math.round(n.scaleFactor * 100) / 100, c = i.offsetLeft, l = i.offsetTop, u = bi(a ?? Ye(), s, e, c, l), d = e < 1 ? "down" : "up";
2562
+ }, pi = (e, t) => {
2563
+ let n = t.viewport, r = t.navigation.scrollNavigationController, i = n.value.element, a = r.value.element, o = r.value.element, s = Math.round(n.scaleFactor * 100) / 100, c = i.offsetLeft, l = i.offsetTop, u = fi(a ?? Ke(), s, e, c, l), d = e < 1 ? "down" : "up";
2644
2564
  o && z(o, `data-${X}-zooming-direction`, d), e < 1 ? B(i.style, "transform-origin", "top") : e > 1 && B(i.style, "transform-origin", `${c}px ${l}px`), B(i.style, "transform", `scale(${e})`);
2645
2565
  let f = r.fromScrollPosition(u);
2646
2566
  t.navigation.navigate({ position: f });
2647
- }, Si = 200, Ci = class extends U {
2567
+ }, mi = 200, hi = class extends U {
2648
2568
  constructor(e) {
2649
2569
  super({
2650
2570
  isZooming: !1,
@@ -2653,32 +2573,32 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2653
2573
  x: 0,
2654
2574
  y: 0
2655
2575
  }
2656
- }), this.reader = e, this.enterSubject = new m(), this.exitSubject = new m(), T(this.enterSubject.pipe(A((e) => {
2576
+ }), this.reader = e, this.enterSubject = new m(), this.exitSubject = new m(), T(this.enterSubject.pipe(j((e) => {
2657
2577
  let { scale: t = 1, animate: n = !1 } = e ?? {}, r = this.reader.viewport.value.element;
2658
2578
  z(this.viewport.element, `data-${X}-zooming`, "true");
2659
2579
  let i = this.scrollNavigationController.value.element;
2660
- return i && z(i, `data-${X}-zooming`, this.isControlled ? "false" : "true"), n && this.isControlled && B(r.style, "transition", `transform ${Si}ms`), this.mergeCompare({
2580
+ return i && z(i, `data-${X}-zooming`, this.isControlled ? "false" : "true"), n && this.isControlled && B(r.style, "transition", `transform ${mi}ms`), this.mergeCompare({
2661
2581
  isZooming: !0,
2662
2582
  currentScale: 1,
2663
2583
  currentPosition: {
2664
2584
  x: 0,
2665
2585
  y: 0
2666
2586
  }
2667
- }), this.updateZoom(t), t !== 1 && this.isControlled ? ye(e?.animate ? Si : 0).pipe(M(() => {
2587
+ }), this.updateZoom(t), t !== 1 && this.isControlled ? _e(e?.animate ? mi : 0).pipe(N(() => {
2668
2588
  this.reader.layout();
2669
2589
  })) : u;
2670
- })), this.exitSubject.pipe(A((e) => {
2590
+ })), this.exitSubject.pipe(j((e) => {
2671
2591
  let t = this.reader.viewport.value.element;
2672
2592
  z(this.viewport.element, `data-${X}-zooming`, "false");
2673
2593
  let n = this.scrollNavigationController.value.element;
2674
- return n && (Re(n, `data-${X}-zooming-direction`), z(n, `data-${X}-zooming`, "false")), e?.animate && this.isControlled && B(t.style, "transition", `transform ${Si}ms`), this.updateZoom(1, {
2594
+ return n && (Fe(n, `data-${X}-zooming-direction`), z(n, `data-${X}-zooming`, "false")), e?.animate && this.isControlled && B(t.style, "transition", `transform ${mi}ms`), this.updateZoom(1, {
2675
2595
  x: 0,
2676
2596
  y: 0
2677
- }), V(t.style, "transform"), this.mergeCompare({ isZooming: !1 }), ye(e?.animate ? Si : 0).pipe(M(() => {
2597
+ }), V(t.style, "transform"), this.mergeCompare({ isZooming: !1 }), _e(e?.animate ? mi : 0).pipe(N(() => {
2678
2598
  let e = this.reader.viewport.value.element;
2679
2599
  V(e.style, "transform-origin"), V(e.style, "transition"), this.isControlled && this.reader.layout();
2680
- }), j(this.enterSubject));
2681
- }))).pipe(j(this.destroy$)).subscribe();
2600
+ }), M(this.enterSubject));
2601
+ }))).pipe(M(this.destroy$)).subscribe();
2682
2602
  }
2683
2603
  enter(e) {
2684
2604
  this.enterSubject.next(e);
@@ -2687,17 +2607,17 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2687
2607
  this.exitSubject.next(e);
2688
2608
  }
2689
2609
  move(e, t) {
2690
- this.isControlled && (V(this.viewport.element.style, "transition"), this.updateZoom(this.value.currentScale, e, { constraints: t?.constrain === "within-viewport" ? (...e) => pi(...e, this.reader.viewport) : void 0 }));
2610
+ this.isControlled && (V(this.viewport.element.style, "transition"), this.updateZoom(this.value.currentScale, e, { constraints: t?.constrain === "within-viewport" ? (...e) => ai(...e, this.reader.viewport) : void 0 }));
2691
2611
  }
2692
2612
  scaleAt(e, t) {
2693
2613
  if (!this.value.isZooming) return;
2694
2614
  V(this.viewport.element.style, "transition");
2695
2615
  let n = Math.ceil(e * 100) / 100;
2696
- this.updateZoom(n, void 0, { constraints: t?.constrain === "within-viewport" ? (...e) => pi(...e, this.reader.viewport) : void 0 });
2616
+ this.updateZoom(n, void 0, { constraints: t?.constrain === "within-viewport" ? (...e) => ai(...e, this.reader.viewport) : void 0 });
2697
2617
  }
2698
2618
  updateZoom(e, t, n) {
2699
2619
  if (this.isControlled) {
2700
- let r = t || hi(this.value.currentScale, e, this.viewport.element, this.value.currentPosition), i = n?.constraints?.(r, e) ?? r;
2620
+ let r = t || si(this.value.currentScale, e, this.viewport.element, this.value.currentPosition), i = n?.constraints?.(r, e) ?? r;
2701
2621
  return this.applyZoom(e, i), this.mergeCompare({
2702
2622
  currentScale: e,
2703
2623
  currentPosition: i
@@ -2706,7 +2626,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2706
2626
  this.applyZoom(e, t ?? this.value.currentPosition), this.mergeCompare({ currentScale: e });
2707
2627
  }
2708
2628
  applyZoom(e, t) {
2709
- this.isControlled ? mi(e, t, this.viewport.element) : xi(e, this.reader), this.reader.viewport.layout();
2629
+ this.isControlled ? oi(e, t, this.viewport.element) : pi(e, this.reader), this.reader.viewport.layout();
2710
2630
  }
2711
2631
  get isControlled() {
2712
2632
  return this.reader.settings.values.computedPageTurnMode === "controlled";
@@ -2717,8 +2637,8 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2717
2637
  get viewport() {
2718
2638
  return this.reader.viewport.value;
2719
2639
  }
2720
- }, wi = (e) => (t) => {
2721
- let n = e(t), r = new Ci(n), i = () => {
2640
+ }, gi = (e) => (t) => {
2641
+ let n = e(t), r = new hi(n), i = () => {
2722
2642
  r.destroy(), n.destroy();
2723
2643
  }, a = r;
2724
2644
  return {
@@ -2735,12 +2655,12 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2735
2655
  }
2736
2656
  }
2737
2657
  };
2738
- }, Ti = (e) => Me({
2658
+ }, _i = (e) => ke({
2739
2659
  spineIndex: e.index,
2740
2660
  spineId: e.id
2741
- }), Ei = ({ nodeOrRange: e, offset: t, item: n }) => {
2661
+ }), vi = ({ nodeOrRange: e, offset: t, item: n }) => {
2742
2662
  let r = "ownerDocument" in e ? e.ownerDocument : e.startContainer.ownerDocument;
2743
- return !r?.documentElement || e === r ? Ti(n) : tt(e) ? Me({
2663
+ return !r?.documentElement || e === r ? _i(n) : Qe(e) ? ke({
2744
2664
  start: {
2745
2665
  node: e.startContainer,
2746
2666
  offset: e.startOffset,
@@ -2753,28 +2673,28 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2753
2673
  spineIndex: n.index,
2754
2674
  spineId: n.id
2755
2675
  }
2756
- }) : Me({
2676
+ }) : ke({
2757
2677
  node: e,
2758
2678
  offset: t,
2759
2679
  spineIndex: n.index,
2760
2680
  spineId: n.id
2761
2681
  });
2762
- }, Di = ({ spineItem: e, pageNode: t }) => Ei({
2682
+ }, yi = ({ spineItem: e, pageNode: t }) => vi({
2763
2683
  nodeOrRange: t.node,
2764
2684
  offset: t.offset,
2765
2685
  item: e
2766
- }).trim(), Oi = (e, t) => Ei({
2686
+ }).trim(), bi = (e, t) => vi({
2767
2687
  nodeOrRange: e,
2768
2688
  item: t
2769
- }), ki = (e) => e.index.toString(), Ai = (e) => e[0]?.index === 6 && e.length > 1, ji = (e) => Ne(Fe(e)), Mi = (e) => Array.isArray(e) ? e[0] && Ai(e[0]) ? e[0] : void 0 : e.parent[0] && Ai(e.parent[0]) ? e.parent[0] : void 0, Ni = (e) => {
2770
- let t = Fe(e), n = ((Mi(t) ?? [])[1]?.index ?? 2) / 2 - 1, r = Pe(t);
2689
+ }), xi = (e) => e.index.toString(), Si = (e) => e[0]?.index === 6 && e.length > 1, Ci = (e) => Ae(Me(e)), wi = (e) => Array.isArray(e) ? e[0] && Si(e[0]) ? e[0] : void 0 : e.parent[0] && Si(e.parent[0]) ? e.parent[0] : void 0, Ti = (e) => {
2690
+ let t = Me(e), n = ((wi(t) ?? [])[1]?.index ?? 2) / 2 - 1, r = je(t);
2771
2691
  return {
2772
2692
  isCfiRange: r,
2773
2693
  itemIndex: n,
2774
2694
  offset: (r ? t.end.at(-1)?.at(-1)?.offset : t.at(-1)?.at(-1)?.offset) ?? 0
2775
2695
  };
2776
- }, Pi = ({ cfi: e, spineItemsManager: t }) => {
2777
- let { itemIndex: n, ...r } = Ni(e), i = t.get(n);
2696
+ }, Ei = ({ cfi: e, spineItemsManager: t }) => {
2697
+ let { itemIndex: n, ...r } = Ti(e), i = t.get(n);
2778
2698
  if (!i) return {
2779
2699
  ...r,
2780
2700
  itemIndex: n,
@@ -2784,7 +2704,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2784
2704
  if (a instanceof HTMLIFrameElement) {
2785
2705
  let t = a.contentWindow?.document;
2786
2706
  if (t) try {
2787
- let a = Ie(e, t, { throwOnError: !0 });
2707
+ let a = Ne(e, t, { throwOnError: !0 });
2788
2708
  return {
2789
2709
  ...r,
2790
2710
  itemIndex: n,
@@ -2809,27 +2729,27 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2809
2729
  spineItem: i,
2810
2730
  node: null
2811
2731
  };
2812
- }, Fi = class {
2732
+ }, Di = class {
2813
2733
  constructor(e, t) {
2814
2734
  this.hookManager = e, this.spineItemsManager = t, this.transformForResolve = (e) => {
2815
2735
  let { finalParams: t } = this.hookManager.executeSequential("cfi.beforeResolve", { cfi: e }, (e, t) => ({ cfi: t ?? e.cfi }));
2816
2736
  return t.cfi;
2817
- }, this.parseCfi = (e) => Ni(this.transformForResolve(e)), this.getSpineItemFromCfi = (e) => {
2737
+ }, this.parseCfi = (e) => Ti(this.transformForResolve(e)), this.getSpineItemFromCfi = (e) => {
2818
2738
  let { itemIndex: t } = this.parseCfi(e);
2819
2739
  if (t !== void 0) return this.spineItemsManager.get(t);
2820
- }, this.isRootCfi = (e) => ji(e), this.generateRootCfi = (e) => this.transformGeneratedCfi({
2821
- cfi: Ti(e),
2740
+ }, this.isRootCfi = (e) => Ci(e), this.generateRootCfi = (e) => this.transformGeneratedCfi({
2741
+ cfi: _i(e),
2822
2742
  spineItem: e
2823
2743
  }), this.generateCfiForSpineItemPage = ({ spineItem: e, pageNode: t }) => this.transformGeneratedCfi({
2824
- cfi: Di({
2744
+ cfi: yi({
2825
2745
  spineItem: e,
2826
2746
  pageNode: t
2827
2747
  }),
2828
2748
  spineItem: e
2829
2749
  }), this.generateCfiFromRange = (e, t) => this.transformGeneratedCfi({
2830
- cfi: Oi(e, t),
2750
+ cfi: bi(e, t),
2831
2751
  spineItem: t
2832
- }), this.resolveCfi = (e) => Pi({
2752
+ }), this.resolveCfi = (e) => Ei({
2833
2753
  ...e,
2834
2754
  cfi: this.transformForResolve(e.cfi),
2835
2755
  spineItemsManager: this.spineItemsManager
@@ -2842,32 +2762,28 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2842
2762
  }));
2843
2763
  return t.cfi;
2844
2764
  }
2845
- }, Ii = (e) => e?.spineItems.every((t) => (t.renditionLayout ?? e.renditionLayout) === "pre-paginated"), Li = class {
2765
+ }, Oi = (e) => e.spineItems.every((t) => (t.renditionLayout ?? e.renditionLayout) === "pre-paginated"), ki = class {
2846
2766
  constructor() {
2847
2767
  this.navigationSubject = new p(1), this.positionSubject = new p(1), this.viewportStateSubject = new l("free"), this.paginationSubject = new p(1), this.pagination$ = this.paginationSubject.asObservable(), this.viewportState$ = this.viewportStateSubject.asObservable(), this.viewportFree$ = this.viewportState$.pipe(b((e) => e === "free")), this.viewportBusy$ = this.viewportState$.pipe(b((e) => e === "busy")), this.navigation$ = this.navigationSubject.asObservable(), this.position$ = this.positionSubject.asObservable();
2848
2768
  }
2849
- }, Ri = class extends U {
2850
- constructor() {
2851
- super({ assumedRenditionLayout: "reflowable" }), this.bridgeEvent = new Li(), this.manifest$ = this.pipe(P((e) => e.manifest), Ce(K), Se()), this.isRTL = () => this.value.manifest?.readingDirection === "rtl";
2769
+ }, Ai = class extends U {
2770
+ constructor(e) {
2771
+ super({
2772
+ manifest: e,
2773
+ assumedRenditionLayout: e.renditionLayout ?? "reflowable",
2774
+ isFullyPrePaginated: Oi(e)
2775
+ }), this.bridgeEvent = new ki(), this.isRTL = () => this.value.manifest.readingDirection === "rtl";
2852
2776
  }
2853
2777
  update(e) {
2854
- let t = this.value, n = e.manifest ?? t.manifest, r = {
2855
- ...t,
2856
- ...e,
2857
- ...e.manifest && {
2858
- isFullyPrePaginated: Ii(n),
2859
- assumedRenditionLayout: n?.renditionLayout ?? "reflowable"
2860
- }
2861
- };
2862
- this.mergeCompare(r);
2778
+ this.mergeCompare(e);
2863
2779
  }
2864
2780
  get manifest() {
2865
2781
  return this.value.manifest;
2866
2782
  }
2867
2783
  get readingDirection() {
2868
- return this.manifest?.readingDirection;
2784
+ return this.manifest.readingDirection;
2869
2785
  }
2870
- }, zi = class extends U {
2786
+ }, ji = class extends U {
2871
2787
  constructor(e, t) {
2872
2788
  super({
2873
2789
  supportedPageTurnAnimation: [
@@ -2878,10 +2794,10 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2878
2794
  supportedPageTurnMode: ["controlled", "scrollable"],
2879
2795
  supportedPageTurnDirection: ["horizontal", "vertical"],
2880
2796
  supportedComputedPageTurnDirection: ["horizontal", "vertical"]
2881
- }), v([e.watch(["manifest", "hasVerticalWriting"]), t.watch(["computedPageTurnMode"])]).pipe(w(([{ manifest: e, hasVerticalWriting: t }, { computedPageTurnMode: n }]) => ({
2797
+ }), v([e.watch(["hasVerticalWriting"]), t.watch(["computedPageTurnMode"])]).pipe(w(([{ hasVerticalWriting: t }, { computedPageTurnMode: n }]) => ({
2882
2798
  hasVerticalWriting: t,
2883
- renditionFlow: e?.renditionFlow,
2884
- renditionLayout: e?.renditionLayout,
2799
+ renditionFlow: e.manifest.renditionFlow,
2800
+ renditionLayout: e.manifest.renditionLayout,
2885
2801
  computedPageTurnMode: n
2886
2802
  })), y(o), w(({ hasVerticalWriting: e, renditionFlow: t, renditionLayout: n, computedPageTurnMode: r }) => ({
2887
2803
  ...this.value,
@@ -2892,9 +2808,9 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2892
2808
  "slide"
2893
2809
  ],
2894
2810
  supportedPageTurnDirection: r === "scrollable" ? ["vertical"] : n === "reflowable" ? ["horizontal"] : ["horizontal", "vertical"]
2895
- })), j(this.destroy$)).subscribe(this.next.bind(this));
2811
+ })), M(this.destroy$)).subscribe(this.next.bind(this));
2896
2812
  }
2897
- }, Bi = class {
2813
+ }, Mi = class {
2898
2814
  constructor() {
2899
2815
  this._hooks = [], this._hookExecutions = [];
2900
2816
  }
@@ -2926,7 +2842,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2926
2842
  id: t,
2927
2843
  ref: n,
2928
2844
  abortController: r,
2929
- destroyFn: () => (r.abort(), E(void 0))
2845
+ destroyFn: () => (r.abort(), D(void 0))
2930
2846
  };
2931
2847
  });
2932
2848
  this._hookExecutions.push(...a);
@@ -2977,30 +2893,30 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
2977
2893
  let r = this._hookExecutions.filter((r) => n && r.ref === n || e === r.name && (!t || t && t === r.id));
2978
2894
  return this._hookExecutions = this._hookExecutions.filter((e) => !r.includes(e)), v(r.map(({ destroyFn: e }) => e()));
2979
2895
  }
2980
- }, Vi = "[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}", Hi = (e) => ({
2896
+ }, Ni = "[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}", Pi = (e) => ({
2981
2897
  x: -e.x,
2982
2898
  y: -e.y
2983
- }), Ui = (e) => e instanceof DOMMatrix ? new J({
2899
+ }), Fi = (e) => e instanceof DOMMatrix ? new J({
2984
2900
  x: -e.e,
2985
2901
  y: -e.f
2986
2902
  }) : new J({
2987
2903
  x: -e.x,
2988
2904
  y: -e.y
2989
- }), Wi = R.namespace("navigation/ControlledNavigationController"), Gi = class extends Q {
2905
+ }), Ii = R.namespace("navigation/ControlledNavigationController"), Li = class extends Q {
2990
2906
  constructor(e, t, n, r, i) {
2991
2907
  super(), this.settings = e, this.hookManager = t, this.context = n, this.spine = r, this.viewport = i, this.navigateSubject = new m(), this.element$ = new l(document.createElement("div")), this.isActive = () => this.settings.values.computedPageTurnMode === "controlled", this.getNavigationVisibleArea = () => this.viewport.absoluteViewport;
2992
- let o = this.spine.element$.pipe(b(K), N(this.element$), M(([e, t]) => {
2908
+ let o = this.spine.element$.pipe(b(K), P(this.element$), N(([e, t]) => {
2993
2909
  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);
2994
2910
  })), s = v([e.watch([
2995
2911
  "computedPageTurnDirection",
2996
2912
  "computedPageTurnMode",
2997
2913
  "numberOfAdjacentSpineItemToPreLoad"
2998
- ]), this.element$]).pipe(M(([, t]) => {
2914
+ ]), this.element$]).pipe(N(([, t]) => {
2999
2915
  e.values.computedPageTurnMode === "scrollable" ? B(t.style, "display", "contents") : B(t.style, "display", "block");
3000
2916
  }));
3001
- this.layout$ = s.pipe(M(() => {
3002
- Wi.info("layout", e.values);
3003
- }), D()), this.isNavigating$ = this.navigateSubject.pipe(y((e, t) => a(e.position, t.position)), w(({ animation: t, position: n }) => (Wi.info("Navigation requested", {
2917
+ this.layout$ = s.pipe(N(() => {
2918
+ Ii.info("layout", e.values);
2919
+ }), O()), this.isNavigating$ = this.navigateSubject.pipe(y((e, t) => a(e.position, t.position)), w(({ animation: t, position: n }) => (Ii.info("Navigation requested", {
3004
2920
  animation: t,
3005
2921
  position: n
3006
2922
  }), {
@@ -3008,53 +2924,56 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3008
2924
  shouldAnimate: !(!t || t === "turn" && e.values.computedPageTurnAnimation === "none"),
3009
2925
  animation: t,
3010
2926
  position: n
3011
- })), A((t) => {
2927
+ })), j((t) => {
3012
2928
  let n = this.element$.getValue();
3013
- return B(n.style, "transition", "none"), B(n.style, "opacity", "1"), T(E(!0), E(null).pipe(fe(() => {
3014
- if (t?.type !== "manualAdjust") return E(!1);
2929
+ return B(n.style, "transition", "none"), B(n.style, "opacity", "1"), T(D(!0), D(null).pipe(E(() => {
2930
+ if (t?.type !== "manualAdjust") return D(!1);
3015
2931
  let n = t.animation === "snap" ? e.values.snapAnimationDuration : e.values.computedPageTurnAnimationDuration, r = t.animation === "snap" ? "slide" : e.values.computedPageTurnAnimation;
3016
- return E(t).pipe(t.shouldAnimate ? ae(1, h) : ue, M((e) => {
2932
+ return D(t).pipe(t.shouldAnimate ? ae(1, h) : le, N((e) => {
3017
2933
  let i = this.element$.getValue();
3018
2934
  e.shouldAnimate ? r === "fade" ? (B(i.style, "transition", `opacity ${n / 2}ms`), B(i.style, "opacity", "0")) : (t.animation === "snap" || r === "slide") && (B(i.style, "transition", `transform ${n}ms`), B(i.style, "opacity", "1")) : (B(i.style, "transition", "none"), B(i.style, "opacity", "1"));
3019
- }), M((e) => {
2935
+ }), N((e) => {
3020
2936
  r !== "fade" && this.applyNavigationPosition(e.position);
3021
- }), t.shouldAnimate ? ae(n / 2, h) : ue, M((e) => {
2937
+ }), t.shouldAnimate ? ae(n / 2, h) : le, N((e) => {
3022
2938
  let t = this.element$.getValue();
3023
2939
  r === "fade" && (this.applyNavigationPosition(e.position), B(t.style, "opacity", "1"));
3024
- }), t.shouldAnimate ? ae(n / 2, h) : ue, M((e) => {
2940
+ }), t.shouldAnimate ? ae(n / 2, h) : le, N((e) => {
3025
2941
  r === "fade" && this.applyNavigationPosition(e.position);
3026
2942
  }));
3027
2943
  }), w(() => !1)));
3028
- }), k(!1), O(1)), T(o, this.isNavigating$, this.layout$).pipe(j(this.destroy$)).subscribe();
2944
+ }), A(!1), k(1)), T(o, this.isNavigating$, this.layout$).pipe(M(this.destroy$)).subscribe();
3029
2945
  }
3030
2946
  applyNavigationPosition(e) {
3031
- let t = this.element$.getValue(), n = Hi(e);
2947
+ let t = this.element$.getValue(), n = Pi(e);
3032
2948
  B(t.style, "transform", `translate(${n.x}px, ${n.y}px)`), this.hookManager.execute("onViewportOffsetAdjust", void 0);
3033
2949
  }
3034
2950
  navigate(e) {
3035
2951
  this.navigateSubject.next(e);
3036
2952
  }
2953
+ destroy() {
2954
+ super.destroy(), this.element$.getValue().remove(), this.element$.complete();
2955
+ }
3037
2956
  get viewportPosition() {
3038
2957
  let e = this.element$.getValue(), t = window.getComputedStyle(e), n = t.transform || t.webkitTransform;
3039
2958
  return !n || n === "none" ? new J({
3040
2959
  x: 0,
3041
2960
  y: 0
3042
- }) : Ui(new DOMMatrix(n));
2961
+ }) : Fi(new DOMMatrix(n));
3043
2962
  }
3044
- }, Ki = () => (e) => e.pipe(w(({ navigation: e, pagination: t, ...n }) => ({
2963
+ }, Ri = () => (e) => e.pipe(w(({ navigation: e, pagination: t, ...n }) => ({
3045
2964
  navigation: {
3046
2965
  ...e,
3047
2966
  paginationBeginCfi: t.beginCfi
3048
2967
  },
3049
2968
  ...n
3050
- }))), qi = (e, t, n) => e.bridgeEvent.pagination$.pipe(N(t), b(([e, t]) => e.navigationId === t.id), A(([e, t]) => (n.spineItemsManager.get(t.spineItem)?.isReady$.pipe(x()) ?? E(!1)).pipe(b((e) => e), w(() => ({
2969
+ }))), zi = (e, t, n) => e.bridgeEvent.pagination$.pipe(P(t), b(([e, t]) => e.navigationId === t.id), j(([e, t]) => (n.spineItemsManager.get(t.spineItem)?.isReady$.pipe(x()) ?? D(!1)).pipe(b((e) => e), w(() => ({
3051
2970
  pagination: e,
3052
2971
  navigation: t
3053
- })))), Ki(), y((e, t) => e.navigation.paginationBeginCfi === t.navigation.paginationBeginCfi), w(({ navigation: e }) => ({
2972
+ })))), Ri(), y((e, t) => e.navigation.paginationBeginCfi === t.navigation.paginationBeginCfi), w(({ navigation: e }) => ({
3054
2973
  ...e,
3055
2974
  meta: { triggeredBy: "pagination" },
3056
2975
  requestedPosition: e.position
3057
- }))), Ji = ({ navigationResolver: e, getNavigationVisibleArea: t }) => (n) => n.pipe(w(([n, r]) => {
2976
+ }))), Bi = ({ navigationResolver: e, getNavigationVisibleArea: t }) => (n) => n.pipe(w(([n, r]) => {
3058
2977
  let i = n.position, a = i ? t() : void 0, o = i && a ? e.clampPositionInSpine(i, a) : void 0;
3059
2978
  return {
3060
2979
  previousNavigation: r,
@@ -3069,7 +2988,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3069
2988
  position: o
3070
2989
  }
3071
2990
  };
3072
- })), Yi = ({ navigationResolver: e }) => (t) => t.pipe(w((t) => {
2991
+ })), Vi = ({ navigationResolver: e }) => (t) => t.pipe(w((t) => {
3073
2992
  if (t.navigation.cfi) {
3074
2993
  let n = e.getNavigationForCfi(t.navigation.cfi);
3075
2994
  if (n) return {
@@ -3081,8 +3000,8 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3081
3000
  };
3082
3001
  }
3083
3002
  return t;
3084
- })), Xi = ({ navigation: e, previousNavigation: t, settings: n }) => e.directionFromLastNavigation ? e.directionFromLastNavigation : e.url !== void 0 || e.cfi !== void 0 ? "anchor" : t.spineItem === void 0 || e.spineItem || !e.position ? "forward" : n.values.computedPageTurnDirection === "vertical" ? e.position.y > t.position.y || e.position.y === t.position.y && t.directionFromLastNavigation !== "backward" ? "forward" : "backward" : Math.abs(e.position.x) > Math.abs(t.position.x) || e.position.x === t.position.x && t.directionFromLastNavigation !== "backward" ? "forward" : "backward", Zi = ({ context: e, settings: t }) => (n) => n.pipe(w(({ navigation: n, previousNavigation: r }) => {
3085
- let i = Xi({
3003
+ })), Hi = ({ navigation: e, previousNavigation: t, settings: n }) => e.directionFromLastNavigation ? e.directionFromLastNavigation : e.url !== void 0 || e.cfi !== void 0 ? "anchor" : t.spineItem === void 0 || e.spineItem || !e.position ? "forward" : n.values.computedPageTurnDirection === "vertical" ? e.position.y > t.position.y || e.position.y === t.position.y && t.directionFromLastNavigation !== "backward" ? "forward" : "backward" : Math.abs(e.position.x) > Math.abs(t.position.x) || e.position.x === t.position.x && t.directionFromLastNavigation !== "backward" ? "forward" : "backward", Ui = ({ context: e, settings: t }) => (n) => n.pipe(w(({ navigation: n, previousNavigation: r }) => {
3004
+ let i = Hi({
3086
3005
  context: e,
3087
3006
  navigation: n,
3088
3007
  previousNavigation: r,
@@ -3096,7 +3015,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3096
3015
  },
3097
3016
  direction: i
3098
3017
  };
3099
- })), Qi = ({ spineItemsManager: e, navigationResolver: t, settings: n, viewport: r }) => (i) => i.pipe(w(({ navigation: i, ...a }) => {
3018
+ })), Wi = ({ spineItemsManager: e, navigationResolver: t, settings: n, viewport: r }) => (i) => i.pipe(w(({ navigation: i, ...a }) => {
3100
3019
  let o = e.get(i.spineItem);
3101
3020
  if (i.position) return n.values.computedPageTurnMode === "scrollable" ? {
3102
3021
  navigation: {
@@ -3129,7 +3048,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3129
3048
  },
3130
3049
  ...a
3131
3050
  };
3132
- })), $i = ({ settings: e, spineItemsManager: t, navigationResolver: n, spineLocator: r, cfi: i }) => (a) => {
3051
+ })), Gi = ({ settings: e, spineItemsManager: t, navigationResolver: n, spineLocator: r, cfi: i }) => (a) => {
3133
3052
  let o = (a) => {
3134
3053
  let { position: o, spineItem: s, cfi: c, directionFromLastNavigation: l } = a, { navigationSnapThreshold: u, computedPageTurnMode: d } = e.values;
3135
3054
  if (s !== void 0) {
@@ -3175,9 +3094,9 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3175
3094
  ...n
3176
3095
  };
3177
3096
  }));
3178
- }, ea = ({ spine: e }) => (t) => t.pipe(A(({ navigation: t, ...n }) => {
3097
+ }, Ki = ({ spine: e }) => (t) => t.pipe(j(({ navigation: t, ...n }) => {
3179
3098
  let r = e.getSpineItemSpineLayoutInfo(t.spineItem), i = e.spineItemsManager.get(t.spineItem);
3180
- return (i?.isReady$ ?? E(!1)).pipe(x(), w((e) => ({
3099
+ return (i?.isReady$ ?? D(!1)).pipe(x(), w((e) => ({
3181
3100
  navigation: {
3182
3101
  ...t,
3183
3102
  spineItemHeight: r?.height,
@@ -3189,7 +3108,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3189
3108
  },
3190
3109
  ...n
3191
3110
  })));
3192
- })), ta = ({ settings: e, spineItemsManager: t, spineLocator: n, navigationResolver: r }) => (i) => {
3111
+ })), qi = ({ settings: e, spineItemsManager: t, spineLocator: n, navigationResolver: r }) => (i) => {
3193
3112
  let a = (i) => {
3194
3113
  let { navigationSnapThreshold: a, computedPageTurnMode: o } = e.values, s = t.get(i.spineItem);
3195
3114
  if (!(!s || !i.position)) {
@@ -3226,7 +3145,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3226
3145
  },
3227
3146
  ...t
3228
3147
  })));
3229
- }, na = ({ navigationResolver: e }) => (t) => t.pipe(w((t) => {
3148
+ }, Ji = ({ navigationResolver: e }) => (t) => t.pipe(w((t) => {
3230
3149
  if (t.navigation.url) {
3231
3150
  let n = e.getNavigationForUrl(t.navigation.url);
3232
3151
  if (n) return {
@@ -3239,7 +3158,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3239
3158
  };
3240
3159
  }
3241
3160
  return t;
3242
- })), ra = class {
3161
+ })), Yi = class {
3243
3162
  constructor() {
3244
3163
  this.isLockedSubject = new l(0), this.isLocked$ = this.isLockedSubject.pipe(w((e) => !!e), y());
3245
3164
  }
@@ -3249,7 +3168,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3249
3168
  e || (e = !0, this.isLockedSubject.next(this.isLockedSubject.getValue() - 1));
3250
3169
  };
3251
3170
  }
3252
- }, ia = ({ spineLocator: e, navigation: t, navigationResolver: n, spineItemsManager: r, spine: i, cfiManager: a }) => {
3171
+ }, Xi = ({ spineLocator: e, navigation: t, navigationResolver: n, spineItemsManager: r, spine: i, cfiManager: a }) => {
3253
3172
  let o = r.get(t.spineItem);
3254
3173
  return o ? o.isReady$.pipe(x(), w((r) => {
3255
3174
  let s = i.getSpineItemSpineLayoutInfo(o), c = e.isPositionWithinSpineItem(t.position, o), l = s.width - (t.spineItemWidth ?? 0), u = s.height - (t.spineItemHeight ?? 0), d = l !== 0 || u !== 0;
@@ -3285,11 +3204,11 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3285
3204
  });
3286
3205
  }
3287
3206
  return c ? n.getNavigationForPosition(t.position) : n.getNavigationForSpineIndexOrId(o);
3288
- })) : E(new J({
3207
+ })) : D(new J({
3289
3208
  x: 0,
3290
3209
  y: 0
3291
3210
  }));
3292
- }, aa = ({ navigation: e, spineLocator: t, spineItemsManager: n, settings: r, navigationResolver: i, spine: a }) => {
3211
+ }, Zi = ({ navigation: e, spineLocator: t, spineItemsManager: n, settings: r, navigationResolver: i, spine: a }) => {
3293
3212
  let { spineItem: o } = e, s = n.get(o);
3294
3213
  if (!s) return new J({
3295
3214
  x: 0,
@@ -3340,21 +3259,21 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3340
3259
  }
3341
3260
  }
3342
3261
  return e.position;
3343
- }, oa = ({ navigation: e, spineItemsManager: t, settings: n, spineLocator: r, navigationResolver: i, spine: a, cfiManager: o }) => n.values.computedPageTurnMode === "scrollable" ? E(aa({
3262
+ }, Qi = ({ navigation: e, spineItemsManager: t, settings: n, spineLocator: r, navigationResolver: i, spine: a, cfiManager: o }) => n.values.computedPageTurnMode === "scrollable" ? D(Zi({
3344
3263
  navigation: e,
3345
3264
  spineLocator: r,
3346
3265
  navigationResolver: i,
3347
3266
  settings: n,
3348
3267
  spineItemsManager: t,
3349
3268
  spine: a
3350
- })) : ia({
3269
+ })) : Xi({
3351
3270
  navigation: e,
3352
3271
  spineLocator: r,
3353
3272
  navigationResolver: i,
3354
3273
  spineItemsManager: t,
3355
3274
  spine: a,
3356
3275
  cfiManager: o
3357
- }), sa = ({ settings: e, navigationResolver: t, context: n, spine: r, cfiManager: i }) => (a) => a.pipe(A((a) => oa({
3276
+ }), $i = ({ settings: e, navigationResolver: t, context: n, spine: r, cfiManager: i }) => (a) => a.pipe(j((a) => Qi({
3358
3277
  spineLocator: r.locator,
3359
3278
  navigation: a.navigation,
3360
3279
  navigationResolver: t,
@@ -3370,7 +3289,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3370
3289
  ...a.navigation,
3371
3290
  position: e
3372
3291
  }
3373
- }))))), ca = R.namespace("navigation/InternalNavigator"), la = (e, t) => e === t || !!e && !!t && e.x === t.x && e.y === t.y, ua = (e, t) => e === t || !!e && !!t && e.width === t.width && e.height === t.height, da = (e, t) => e.id === t.id && la(e.position, t.position) && la(e.requestedPosition, t.requestedPosition) && ua(e.requestedVisibleArea, t.requestedVisibleArea), fa = class extends Q {
3292
+ }))))), ea = R.namespace("navigation/InternalNavigator"), ta = (e, t) => e === t || !!e && !!t && e.x === t.x && e.y === t.y, na = (e, t) => e === t || !!e && !!t && e.width === t.width && e.height === t.height, ra = (e, t) => e.id === t.id && ta(e.position, t.position) && ta(e.requestedPosition, t.requestedPosition) && na(e.requestedVisibleArea, t.requestedVisibleArea), ia = class extends Q {
3374
3293
  constructor(e, t, n, r, i, a, o, s, c, u) {
3375
3294
  super(), this.settings = e, this.context = t, this.userNavigation$ = n, this.getActiveNavigationModeController = r, this.navigationModeLayout$ = i, this.navigationResolver = a, this.spine = o, this.viewport = s, this.cfiManager = c, this.isUserInteractionLocked$ = u, this.navigationSubject = new l({
3376
3295
  animation: !1,
@@ -3392,57 +3311,57 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3392
3311
  requestedPosition: n,
3393
3312
  requestedVisibleArea: r,
3394
3313
  triggeredBy: i.triggeredBy
3395
- })), y(da), O(1)), this.locker = new ra();
3396
- let d = n.pipe(N(this.navigationSubject), Ji({
3314
+ })), y(ra), k(1)), this.locker = new Yi();
3315
+ let d = n.pipe(P(this.navigationSubject), Bi({
3397
3316
  navigationResolver: a,
3398
3317
  getNavigationVisibleArea: () => r().getNavigationVisibleArea()
3399
- }), na({ navigationResolver: a }), Yi({ navigationResolver: a }), Zi({
3318
+ }), Ji({ navigationResolver: a }), Vi({ navigationResolver: a }), Ui({
3400
3319
  context: t,
3401
3320
  settings: e
3402
- }), $i({
3321
+ }), Gi({
3403
3322
  context: t,
3404
3323
  cfi: c,
3405
3324
  navigationResolver: a,
3406
3325
  settings: e,
3407
3326
  spineItemsManager: o.spineItemsManager,
3408
3327
  spineLocator: o.locator
3409
- }), ta({
3328
+ }), qi({
3410
3329
  navigationResolver: a,
3411
3330
  settings: e,
3412
3331
  spineItemsManager: o.spineItemsManager,
3413
3332
  spineLocator: o.locator
3414
- }), ea({ spine: o })).pipe(Qi({
3333
+ }), Ki({ spine: o })).pipe(Wi({
3415
3334
  navigationResolver: a,
3416
3335
  spineItemsManager: o.spineItemsManager,
3417
3336
  settings: e,
3418
3337
  viewport: s
3419
- }), N(u), A(([n, r]) => {
3338
+ }), P(u), j(([n, r]) => {
3420
3339
  let i = n.navigation.cfi || n.navigation.url || e.values.computedPageTurnMode === "scrollable" || r;
3421
- return E(n).pipe(i ? ue : sa({
3340
+ return D(n).pipe(i ? le : $i({
3422
3341
  navigationResolver: a,
3423
3342
  settings: e,
3424
3343
  spine: o,
3425
3344
  context: t,
3426
3345
  cfiManager: c
3427
3346
  }));
3428
- }), ta({
3347
+ }), qi({
3429
3348
  spineItemsManager: o.spineItemsManager,
3430
3349
  spineLocator: o.locator,
3431
3350
  settings: e,
3432
3351
  navigationResolver: a
3433
- }), w((e) => e.navigation), D()), f = d.pipe(N(u), b(([, e]) => e), A(([e]) => {
3352
+ }), w((e) => e.navigation), O()), f = d.pipe(P(u), b(([, e]) => e), j(([e]) => {
3434
3353
  let t = this.locker.lock();
3435
3354
  return u.pipe(b((e) => !e), x(), w(() => ({ navigation: {
3436
3355
  ...e,
3437
3356
  animation: "snap"
3438
3357
  } })), ce(() => {
3439
3358
  t();
3440
- }), j(d));
3441
- }), D());
3442
- T(T(T(i, o.layout$).pipe(A(() => E(null).pipe(A(() => u.pipe(b((e) => !e), x())), w(() => ({ navigation: {
3359
+ }), M(d));
3360
+ }), O());
3361
+ T(T(T(i, o.layout$).pipe(j(() => D(null).pipe(j(() => u.pipe(b((e) => !e), x())), w(() => ({ navigation: {
3443
3362
  ...this.navigationSubject.getValue(),
3444
3363
  animation: !1
3445
- } })), j(T(f, d))))), f).pipe(sa({
3364
+ } })), M(T(f, d))))), f).pipe($i({
3446
3365
  navigationResolver: a,
3447
3366
  settings: e,
3448
3367
  context: t,
@@ -3452,19 +3371,19 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3452
3371
  ...e,
3453
3372
  meta: { triggeredBy: "restoration" },
3454
3373
  requestedPosition: e.position
3455
- } })), $i({
3374
+ } })), Gi({
3456
3375
  context: t,
3457
3376
  cfi: c,
3458
3377
  navigationResolver: a,
3459
3378
  settings: e,
3460
3379
  spineItemsManager: o.spineItemsManager,
3461
3380
  spineLocator: o.locator
3462
- }), ea({ spine: o }), ta({
3381
+ }), Ki({ spine: o }), qi({
3463
3382
  spineItemsManager: o.spineItemsManager,
3464
3383
  spineLocator: o.locator,
3465
3384
  settings: e,
3466
3385
  navigationResolver: a
3467
- }), w(({ navigation: e }) => e), D()), d, qi(t, this.navigationSubject, o)).pipe(N(this.navigationSubject), (e) => e.pipe(M(([e]) => {
3386
+ }), w(({ navigation: e }) => e), O()), d, zi(t, this.navigationSubject, o)).pipe(P(this.navigationSubject), (e) => e.pipe(N(([e]) => {
3468
3387
  let t = e.type === "scroll", n = e.meta.triggeredBy === "pagination", r = e.meta.triggeredBy === "restoration";
3469
3388
  if (t && !r || n) return;
3470
3389
  let i = {
@@ -3472,34 +3391,34 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3472
3391
  animation: e.animation
3473
3392
  };
3474
3393
  this.getActiveNavigationModeController().navigate(i);
3475
- })), (e) => e.pipe(M(([e, t]) => {
3476
- ca.info(`navigation updated from ${e.meta.triggeredBy} of type ${e.type}`, {
3394
+ })), (e) => e.pipe(N(([e, t]) => {
3395
+ ea.info(`navigation updated from ${e.meta.triggeredBy} of type ${e.type}`, {
3477
3396
  previousNavigation: t,
3478
3397
  currentNavigation: e
3479
3398
  }), this.navigationSubject.next(e);
3480
- })), j(this.destroy$)).subscribe();
3399
+ })), M(this.destroy$)).subscribe();
3481
3400
  }
3482
3401
  get navigation() {
3483
3402
  return this.navigationSubject.getValue();
3484
3403
  }
3485
- }, pa = (e, t, n) => {
3404
+ }, aa = (e, t, n) => {
3486
3405
  let r = n - e, i = t * e * n / (n || 1);
3487
3406
  return Math.max(0, Math.min(r, i));
3488
- }, ma = (e, t) => (t || 0) === 0 || (e || 0) === 0 ? 1 : Math.floor(Math.max(1, e / t)), ha = (e, t, n) => {
3489
- let r = ma(n, t), i = [...Array(r)].map((e, n) => n * t);
3407
+ }, oa = (e, t) => (t || 0) === 0 || (e || 0) === 0 ? 1 : Math.floor(Math.max(1, e / t)), sa = (e, t, n) => {
3408
+ let r = oa(n, t), i = [...Array(r)].map((e, n) => n * t);
3490
3409
  return e >= r * t ? i[i.length - 1] || 0 : i.find((n) => e < n + t) || 0;
3491
- }, ga = (e, t, n) => {
3410
+ }, ca = (e, t, n) => {
3492
3411
  let r = [...Array(n)].map((e, n) => n * t);
3493
3412
  return e <= 0 || n === 0 ? 0 : e >= n * t ? n - 1 : r.findIndex((n) => e < n + t) ?? 0;
3494
- }, _a = ({ itemWidth: e, itemHeight: t, spineItemPosition: n }) => new q({
3413
+ }, la = ({ itemWidth: e, itemHeight: t, spineItemPosition: n }) => new q({
3495
3414
  x: Math.min(e, Math.max(0, n.x)),
3496
3415
  y: Math.min(t, Math.max(0, n.y))
3497
- }), va = ({ itemHeight: e, itemWidth: t, isUsingVerticalWriting: n, pageWidth: r, pageHeight: i, pageTurnDirection: a, pageTurnMode: o }) => a === "vertical" && o === "scrollable" ? 1 : n || a === "vertical" ? ma(e, i) : ma(t, r), ya = ({ itemWidth: e, itemHeight: t, position: n, isUsingVerticalWriting: r, pageWidth: i, pageHeight: a, pageTurnDirection: o, pageTurnMode: s, isRTL: c }) => {
3498
- let l = _a({
3416
+ }), ua = ({ itemHeight: e, itemWidth: t, isUsingVerticalWriting: n, pageWidth: r, pageHeight: i, pageTurnDirection: a, pageTurnMode: o }) => a === "vertical" && o === "scrollable" ? 1 : n || a === "vertical" ? oa(e, i) : oa(t, r), da = ({ itemWidth: e, itemHeight: t, position: n, isUsingVerticalWriting: r, pageWidth: i, pageHeight: a, pageTurnDirection: o, pageTurnMode: s, isRTL: c }) => {
3417
+ let l = la({
3499
3418
  spineItemPosition: n,
3500
3419
  itemHeight: t,
3501
3420
  itemWidth: e
3502
- }).x, u = va({
3421
+ }).x, u = ua({
3503
3422
  isUsingVerticalWriting: r,
3504
3423
  itemHeight: t,
3505
3424
  itemWidth: e,
@@ -3508,15 +3427,15 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3508
3427
  pageTurnDirection: o,
3509
3428
  pageTurnMode: s
3510
3429
  });
3511
- if (r) return ga(n.y, a, u);
3512
- let d = ga(l, i, u);
3430
+ if (r) return ca(n.y, a, u);
3431
+ let d = ca(l, i, u);
3513
3432
  return c ? u - 1 - d : d;
3514
- }, ba = ({ pageIndex: e, itemLayout: t, context: n, isUsingVerticalWriting: r, viewport: i }) => {
3433
+ }, fa = ({ pageIndex: e, itemLayout: t, context: n, isUsingVerticalWriting: r, viewport: i }) => {
3515
3434
  if (r) return new q({
3516
3435
  x: 0,
3517
- y: pa(i.pageSize.height, e, t.height)
3436
+ y: aa(i.pageSize.height, e, t.height)
3518
3437
  });
3519
- let a = pa(i.pageSize.width, e, t.width);
3438
+ let a = aa(i.pageSize.width, e, t.width);
3520
3439
  return n.isRTL() ? new q({
3521
3440
  x: t.width - a - i.pageSize.width,
3522
3441
  y: 0
@@ -3524,26 +3443,26 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3524
3443
  x: a,
3525
3444
  y: 0
3526
3445
  });
3527
- }, xa = ({ context: e, settings: t, viewport: n }) => {
3446
+ }, pa = ({ context: e, settings: t, viewport: n }) => {
3528
3447
  let r = (e, t, r) => {
3529
3448
  let i;
3530
- e?.nodeName === "img" || e?.textContent === "" && e.nodeType === Node.ELEMENT_NODE ? i = e.getBoundingClientRect().x : e && (i = (e ? Ge(e, t) : void 0)?.getBoundingClientRect().x || i);
3449
+ e?.nodeName === "img" || e?.textContent === "" && e.nodeType === Node.ELEMENT_NODE ? i = e.getBoundingClientRect().x : e && (i = (e ? He(e, t) : void 0)?.getBoundingClientRect().x || i);
3531
3450
  let a = r.layoutInfo?.width || 0, o = n.pageSize.width;
3532
3451
  if (i !== void 0) return new q({
3533
- x: ha(i, o, a),
3452
+ x: sa(i, o, a),
3534
3453
  y: 0
3535
3454
  });
3536
3455
  };
3537
3456
  return {
3538
3457
  getSpineItemPositionFromNode: r,
3539
- getSpineItemPositionFromPageIndex: ({ pageIndex: t, spineItem: r }) => ba({
3458
+ getSpineItemPositionFromPageIndex: ({ pageIndex: t, spineItem: r }) => fa({
3540
3459
  context: e,
3541
3460
  isUsingVerticalWriting: !!r.isUsingVerticalWriting(),
3542
3461
  itemLayout: r.layoutInfo,
3543
3462
  pageIndex: t,
3544
3463
  viewport: n
3545
3464
  }),
3546
- getSpineItemPageIndexFromPosition: (r) => ya({
3465
+ getSpineItemPageIndexFromPosition: (r) => da({
3547
3466
  ...r,
3548
3467
  isRTL: e.isRTL(),
3549
3468
  pageWidth: n.pageSize.width,
@@ -3553,7 +3472,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3553
3472
  }),
3554
3473
  getSpineItemPageIndexFromNode: (i, a, o) => {
3555
3474
  let s = r(i, a, o), { height: c, width: l } = o.layoutInfo;
3556
- return s ? ya({
3475
+ return s ? da({
3557
3476
  isUsingVerticalWriting: !!o.isUsingVerticalWriting(),
3558
3477
  position: s,
3559
3478
  itemHeight: c,
@@ -3568,35 +3487,35 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3568
3487
  getSpineItemClosestPositionFromUnsafePosition: (e, t) => {
3569
3488
  let { width: r, height: i } = t.layoutInfo;
3570
3489
  return new q({
3571
- x: ha(e.x, n.pageSize.width, r),
3572
- y: ha(e.y, n.pageSize.height, i)
3490
+ x: sa(e.x, n.pageSize.width, r),
3491
+ y: sa(e.y, n.pageSize.height, i)
3573
3492
  });
3574
3493
  },
3575
3494
  getSpineItemPagePositionFromSpineItemPosition: (t, r, i) => {
3576
3495
  let { width: a, height: o } = i.layoutInfo, s = n.pageSize.width, c = n.pageSize.height;
3577
3496
  if (i.isUsingVerticalWriting()) {
3578
- let e = pa(c, r, o);
3579
- return new dn({
3497
+ let e = aa(c, r, o);
3498
+ return new cn({
3580
3499
  x: t.x,
3581
3500
  y: t.y - e
3582
3501
  });
3583
3502
  }
3584
- let l = pa(s, r, a);
3503
+ let l = aa(s, r, a);
3585
3504
  if (e.isRTL()) {
3586
3505
  let e = a - (r + 1) * s;
3587
- return new dn({
3506
+ return new cn({
3588
3507
  x: t.x - Math.max(0, e),
3589
3508
  y: t.y
3590
3509
  });
3591
3510
  }
3592
- return new dn({
3511
+ return new cn({
3593
3512
  x: t.x - l,
3594
3513
  y: t.y
3595
3514
  });
3596
3515
  }
3597
3516
  };
3598
- }, Sa = ({ context: e, settings: t, viewport: n }) => {
3599
- let r = xa({
3517
+ }, ma = ({ context: e, settings: t, viewport: n }) => {
3518
+ let r = pa({
3600
3519
  context: e,
3601
3520
  settings: t,
3602
3521
  viewport: n
@@ -3615,7 +3534,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3615
3534
  y: 0
3616
3535
  })
3617
3536
  };
3618
- }, Ca = ({ size: e, isRTL: t, spineItemsManager: n, spine: r }) => {
3537
+ }, ha = ({ size: e, isRTL: t, spineItemsManager: n, spine: r }) => {
3619
3538
  let i = n.get(n.items.length - 1);
3620
3539
  if (!i) return;
3621
3540
  let a = r.getSpineItemSpineLayoutInfo(i), o = Math.max(0, a.bottom - e.height);
@@ -3634,8 +3553,8 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3634
3553
  yMin: 0,
3635
3554
  yMax: o
3636
3555
  };
3637
- }, wa = ({ position: e, size: t, isRTL: n, spineItemsManager: r, spine: i }) => {
3638
- let a = Ca({
3556
+ }, ga = ({ position: e, size: t, isRTL: n, spineItemsManager: r, spine: i }) => {
3557
+ let a = ha({
3639
3558
  size: t,
3640
3559
  isRTL: n,
3641
3560
  spineItemsManager: r,
@@ -3650,8 +3569,8 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3650
3569
  x: n ? Math.max(a.xMin, Math.min(a.xMax, e.x)) : Math.min(Math.max(a.xMin, e.x), a.xMax),
3651
3570
  y: o
3652
3571
  });
3653
- }, Ta = ({ position: e, size: t, isRTL: n, spineItemsManager: r, spine: i }) => {
3654
- let a = Ca({
3572
+ }, _a = ({ position: e, size: t, isRTL: n, spineItemsManager: r, spine: i }) => {
3573
+ let a = ha({
3655
3574
  size: t,
3656
3575
  isRTL: n,
3657
3576
  spineItemsManager: r,
@@ -3677,7 +3596,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3677
3596
  x: a,
3678
3597
  y: i
3679
3598
  });
3680
- }, Ea = ({ viewportPosition: e, spineLocator: t, spineItemNavigationResolver: n, viewport: r }) => {
3599
+ }, va = ({ viewportPosition: e, spineLocator: t, spineItemNavigationResolver: n, viewport: r }) => {
3681
3600
  let i = t.getSpineItemFromPosition(e);
3682
3601
  if (i) {
3683
3602
  let a = t.getSpineItemPositionFromSpinePosition(e, i), o = n.getNavigationForPosition(i, a);
@@ -3694,9 +3613,9 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3694
3613
  x: 0,
3695
3614
  y: 0
3696
3615
  });
3697
- }, Da = ({ pageIndex: e, spineItemsManager: t, spineItemId: n, spineLocator: r, spineItemNavigationResolver: i, viewport: a }) => {
3616
+ }, ya = ({ pageIndex: e, spineItemsManager: t, spineItemId: n, spineLocator: r, spineItemNavigationResolver: i, viewport: a }) => {
3698
3617
  let o = t.get(n);
3699
- if (!o) return Ea({
3618
+ if (!o) return va({
3700
3619
  viewportPosition: new J({
3701
3620
  x: e * a.pageSize.width,
3702
3621
  y: 0
@@ -3717,7 +3636,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3717
3636
  pageSizeWidth: a.pageSize.width,
3718
3637
  visibleAreaRectWidth: a.absoluteViewport.width
3719
3638
  });
3720
- }, Oa = (e, t) => {
3639
+ }, ba = (e, t) => {
3721
3640
  if (t && t instanceof HTMLIFrameElement) {
3722
3641
  let n = t.contentDocument, r = e.trim();
3723
3642
  if (!n || r.length === 0) return;
@@ -3731,11 +3650,11 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3731
3650
  return;
3732
3651
  }
3733
3652
  }
3734
- }, ka = ({ anchor: e, spineItem: t, spine: n }) => {
3735
- let r = Oa(e, t.renderer.getDocumentFrame());
3653
+ }, xa = ({ anchor: e, spineItem: t, spine: n }) => {
3654
+ let r = ba(e, t.renderer.getDocumentFrame());
3736
3655
  return r ? n.spineItemLocator.getSpineItemPositionFromNode(r, 0, t)?.x ?? 0 : 0;
3737
- }, Aa = ({ anchor: e, spineItem: t, spineLocator: n, spine: r }) => {
3738
- let i = ka({
3656
+ }, Sa = ({ anchor: e, spineItem: t, spineLocator: n, spine: r }) => {
3657
+ let i = xa({
3739
3658
  anchor: e,
3740
3659
  spineItem: t,
3741
3660
  spine: r
@@ -3747,8 +3666,8 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3747
3666
  }),
3748
3667
  spineItem: t
3749
3668
  });
3750
- }, ja = ({ anchor: e, spineItem: t, spineLocator: n, spine: r, pageSizeWidth: i, visibleAreaRectWidth: a }) => $({
3751
- position: Aa({
3669
+ }, Ca = ({ anchor: e, spineItem: t, spineLocator: n, spine: r, pageSizeWidth: i, visibleAreaRectWidth: a }) => $({
3670
+ position: Sa({
3752
3671
  anchor: e,
3753
3672
  spineItem: t,
3754
3673
  spineLocator: n,
@@ -3756,14 +3675,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3756
3675
  }),
3757
3676
  pageSizeWidth: i,
3758
3677
  visibleAreaRectWidth: a
3759
- }), Ma = ({ spine: e, spineItemsManager: t, spineLocator: n, url: r, context: i, pageSizeWidth: a, visibleAreaRectWidth: o }) => {
3678
+ }), wa = ({ spine: e, spineItemsManager: t, spineLocator: n, url: r, context: i, pageSizeWidth: a, visibleAreaRectWidth: o }) => {
3760
3679
  try {
3761
- let s = r instanceof URL ? r : new URL(r), c = `${s.origin}${s.pathname}`, l = i.manifest?.spineItems.find((e) => e.href === c);
3680
+ let s = r instanceof URL ? r : new URL(r), c = `${s.origin}${s.pathname}`, l = i.manifest.spineItems.find((e) => e.href === c);
3762
3681
  if (l) {
3763
3682
  let r = t.get(l.id);
3764
3683
  if (r) return {
3765
3684
  position: $({
3766
- position: ja({
3685
+ position: Ca({
3767
3686
  anchor: s.hash,
3768
3687
  spineItem: r,
3769
3688
  spine: e,
@@ -3782,7 +3701,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3782
3701
  console.error(e);
3783
3702
  return;
3784
3703
  }
3785
- }, Na = ({ spineItem: e, spineItemPosition: t, spineLocator: n, spineItemLocator: r, viewport: i }) => {
3704
+ }, Ta = ({ spineItem: e, spineItemPosition: t, spineLocator: n, spineItemLocator: r, viewport: i }) => {
3786
3705
  let a = r.getSpineItemClosestPositionFromUnsafePosition(t, e);
3787
3706
  return $({
3788
3707
  position: n.getSpinePositionFromSpineItemPosition({
@@ -3792,14 +3711,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3792
3711
  pageSizeWidth: i.pageSize.width,
3793
3712
  visibleAreaRectWidth: i.absoluteViewport.width
3794
3713
  });
3795
- }, Pa = "spineNavigator", Fa = ({ context: e, spineItemsManager: t, locator: n, settings: r, spine: i, viewport: a, cfi: o }) => {
3796
- let s = Sa({
3714
+ }, Ea = "spineNavigator", Da = ({ context: e, spineItemsManager: t, locator: n, settings: r, spine: i, viewport: a, cfi: o }) => {
3715
+ let s = ma({
3797
3716
  context: e,
3798
3717
  settings: r,
3799
3718
  viewport: a
3800
3719
  });
3801
3720
  return {
3802
- getNavigationForUrl: (r) => Ma({
3721
+ getNavigationForUrl: (r) => wa({
3803
3722
  context: e,
3804
3723
  spineItemsManager: t,
3805
3724
  spineLocator: n,
@@ -3808,14 +3727,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3808
3727
  visibleAreaRectWidth: a.absoluteViewport.width,
3809
3728
  spine: i
3810
3729
  }),
3811
- getNavigationForSpineItemPage: (e) => Da({
3730
+ getNavigationForSpineItemPage: (e) => ya({
3812
3731
  ...e,
3813
3732
  spineItemsManager: t,
3814
3733
  spineItemNavigationResolver: s,
3815
3734
  spineLocator: n,
3816
3735
  viewport: a
3817
3736
  }),
3818
- getNavigationFromSpineItemPosition: (e) => Na({
3737
+ getNavigationFromSpineItemPosition: (e) => Ta({
3819
3738
  ...e,
3820
3739
  spineItemLocator: n.spineItemLocator,
3821
3740
  spineLocator: n,
@@ -3824,7 +3743,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3824
3743
  getNavigationForCfi: (e) => {
3825
3744
  let { node: t, offset: r = 0, spineItem: i } = o.resolveCfi({ cfi: e });
3826
3745
  if (!i) {
3827
- R.warn(Pa, `unable to detect item id from cfi ${e}`);
3746
+ R.warn(Ea, `unable to detect item id from cfi ${e}`);
3828
3747
  return;
3829
3748
  }
3830
3749
  let c = t ? s.getNavigationFromNode(i, t, r) : new q({
@@ -3862,14 +3781,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3862
3781
  y: 0
3863
3782
  });
3864
3783
  },
3865
- getNavigationForPosition: (e) => Ea({
3784
+ getNavigationForPosition: (e) => va({
3866
3785
  viewportPosition: e,
3867
3786
  spineItemNavigationResolver: s,
3868
3787
  spineLocator: n,
3869
3788
  viewport: a
3870
3789
  }),
3871
3790
  getMostPredominantNavigationForPosition: (o) => {
3872
- let c = r.values.computedPageTurnDirection, l = .5, u = wa({
3791
+ let c = r.values.computedPageTurnDirection, l = .5, u = ga({
3873
3792
  position: new J({
3874
3793
  x: c === "horizontal" ? o.x + a.absoluteViewport.width * l : 0,
3875
3794
  y: c === "horizontal" ? 0 : o.y + a.absoluteViewport.height * l
@@ -3879,21 +3798,21 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3879
3798
  spineItemsManager: t,
3880
3799
  spine: i
3881
3800
  });
3882
- return Ea({
3801
+ return va({
3883
3802
  spineItemNavigationResolver: s,
3884
3803
  spineLocator: n,
3885
3804
  viewportPosition: u,
3886
3805
  viewport: a
3887
3806
  });
3888
3807
  },
3889
- clampPositionInSpine: (n, r) => wa({
3808
+ clampPositionInSpine: (n, r) => ga({
3890
3809
  position: n,
3891
3810
  size: r,
3892
3811
  isRTL: e.isRTL(),
3893
3812
  spineItemsManager: t,
3894
3813
  spine: i
3895
3814
  }),
3896
- getBoundaryForPosition: (n, r = a.absoluteViewport) => Ta({
3815
+ getBoundaryForPosition: (n, r = a.absoluteViewport) => _a({
3897
3816
  position: n,
3898
3817
  size: r,
3899
3818
  isRTL: e.isRTL(),
@@ -3909,8 +3828,8 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3909
3828
  }),
3910
3829
  spineItemNavigator: s
3911
3830
  };
3912
- }, Ia = ({ spineItemsManager: e, context: t, hookManager: n, spine: r, settings: i, viewport: a, cfi: s }) => {
3913
- let c = new m(), l = c.asObservable(), u = new ra(), d = s, f = Fa({
3831
+ }, Oa = ({ spineItemsManager: e, context: t, hookManager: n, spine: r, settings: i, viewport: a, cfi: s }) => {
3832
+ let c = new m(), l = c.asObservable(), u = new Yi(), d = s, f = Da({
3914
3833
  cfi: d,
3915
3834
  context: t,
3916
3835
  settings: i,
@@ -3918,11 +3837,11 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3918
3837
  locator: r.locator,
3919
3838
  spine: r,
3920
3839
  viewport: a
3921
- }), p = new Gi(i, n, t, r, a), h = new yi(a, i, n, r, t), g = [h, p], _ = new fa(i, t, l, () => g.find((e) => e.isActive()) ?? p, T(...g.flatMap((e) => e.layout$ ? [e.layout$] : [])), f, r, a, d, u.isLocked$), ee = v([
3840
+ }), p = new Li(i, n, t, r, a), h = new di(a, i, n, r, t), g = [h, p], _ = new ia(i, t, l, () => g.find((e) => e.isActive()) ?? p, T(...g.flatMap((e) => e.layout$ ? [e.layout$] : [])), f, r, a, d, u.isLocked$), ee = v([
3922
3841
  ...g.map((e) => e.isNavigating$),
3923
3842
  u.isLocked$,
3924
3843
  _.locker.isLocked$
3925
- ]).pipe(w((e) => e.some((e) => e) ? "busy" : "free"), y(), O(1)), te = _.navigation$.pipe(w(({ position: e }) => e), y(o), O(1));
3844
+ ]).pipe(w((e) => e.some((e) => e) ? "busy" : "free"), y(), k(1)), te = _.navigation$.pipe(w(({ position: e }) => e), y(o), k(1));
3926
3845
  return {
3927
3846
  destroy: () => {
3928
3847
  g.forEach((e) => {
@@ -3943,7 +3862,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3943
3862
  navigation$: _.navigation$,
3944
3863
  position$: te
3945
3864
  };
3946
- }, La = class extends U {
3865
+ }, ka = class extends U {
3947
3866
  constructor(e, t) {
3948
3867
  super({
3949
3868
  beginPageIndexInSpineItem: void 0,
@@ -3960,10 +3879,10 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3960
3879
  update(e) {
3961
3880
  this.mergeCompare(e);
3962
3881
  }
3963
- }, Ra = class extends Q {
3882
+ }, Aa = class extends Q {
3964
3883
  constructor(e, t, n, r, i, a, o) {
3965
3884
  super(), this.context = e, this.pagination = t, this.spineItemsManager = n, this.spine = r, this.spineItemLocator = i, this.isNavigationLocked$ = a, this.cfi = o;
3966
- let s = T(this.context.bridgeEvent.navigation$, r.layout$).pipe(A(() => {
3885
+ let s = T(this.context.bridgeEvent.navigation$, r.layout$).pipe(j(() => {
3967
3886
  let e = ({ spineItem: e, position: t }) => this.spine.locator.getVisiblePagesFromViewportPosition({
3968
3887
  spineItem: e,
3969
3888
  position: t,
@@ -3972,7 +3891,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
3972
3891
  value: .5
3973
3892
  }
3974
3893
  });
3975
- return this.isNavigationLocked$.pipe(b((e) => !e), ge(1), N(this.context.bridgeEvent.navigation$), M(([, t]) => {
3894
+ return this.isNavigationLocked$.pipe(b((e) => !e), me(1), P(this.context.bridgeEvent.navigation$), N(([, t]) => {
3976
3895
  let { position: n } = t, r = this.pagination.value, { beginIndex: i, endIndex: a } = this.spine.locator.getVisibleSpineItemsFromPosition({
3977
3896
  position: n,
3978
3897
  threshold: {
@@ -4001,7 +3920,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4001
3920
  });
4002
3921
  }));
4003
3922
  }));
4004
- T(s, s.pipe(St(this.context.bridgeEvent.viewportFree$), M(() => {
3923
+ T(s, s.pipe(yt(this.context.bridgeEvent.viewportFree$), N(() => {
4005
3924
  let { beginSpineItemIndex: e, endSpineItemIndex: t, beginPageIndexInSpineItem: n, endPageIndexInSpineItem: r } = this.pagination.value;
4006
3925
  if (n === void 0 || r === void 0 || e === void 0 || t === void 0) return;
4007
3926
  let i = this.spineItemsManager.get(e), a = this.spineItemsManager.get(t);
@@ -4017,16 +3936,16 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4017
3936
  pageNode: s?.firstVisibleNode
4018
3937
  }) : this.cfi.generateRootCfi(a.item)
4019
3938
  });
4020
- }))).pipe(j(this.destroy$)).subscribe();
3939
+ }))).pipe(M(this.destroy$)).subscribe();
4021
3940
  }
4022
- }, za = class extends Q {
3941
+ }, ja = class extends Q {
4023
3942
  constructor(e) {
4024
3943
  super();
4025
3944
  let t = {
4026
3945
  ...this.getDefaultSettings(),
4027
3946
  ...e
4028
3947
  };
4029
- this.inputSettings = t, this.outputSettingsUpdateSubject = new m(), this._settings$ = this.outputSettingsUpdateSubject.asObservable().pipe(O(1)), this._settings$.subscribe();
3948
+ this.inputSettings = t, this.outputSettingsUpdateSubject = new m(), this._settings$ = this.outputSettingsUpdateSubject.asObservable().pipe(k(1)), this._settings$.subscribe();
4030
3949
  }
4031
3950
  _prepareUpdate(e) {
4032
3951
  let t = c(this.inputSettings, e), n = this.getOutputSettings(t), r = !o(this.outputSettings, n);
@@ -4055,14 +3974,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4055
3974
  return this._settings$;
4056
3975
  }
4057
3976
  watch(e) {
4058
- return this.values$.pipe(yt(e), y(o));
3977
+ return this.values$.pipe(gt(e), y(o));
4059
3978
  }
4060
3979
  destroy() {
4061
3980
  super.destroy(), this.outputSettingsUpdateSubject.complete();
4062
3981
  }
4063
- }, Ba = class extends za {
3982
+ }, Ma = class extends ja {
4064
3983
  constructor(e, t) {
4065
- super(e), this.context = t, t.watch(["manifest", "hasVerticalWriting"]).pipe(M(() => this.update(this.values)), j(this.destroy$)).subscribe();
3984
+ super(e), this.context = t, t.watch(["hasVerticalWriting"]).pipe(N(() => this.update(this.values)), M(this.destroy$)).subscribe();
4066
3985
  }
4067
3986
  getComputedSettings(e) {
4068
3987
  let t = this.context.manifest, n = this.context.value.hasVerticalWriting ?? !1, r = {
@@ -4070,12 +3989,12 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4070
3989
  computedPageTurnAnimation: e.pageTurnAnimation,
4071
3990
  computedPageTurnMode: e.pageTurnMode,
4072
3991
  computedPageTurnAnimationDuration: 0,
4073
- computedSpreadMode: Hn({
3992
+ computedSpreadMode: zn({
4074
3993
  spreadMode: e.spreadMode,
4075
3994
  manifest: t
4076
3995
  })
4077
3996
  };
4078
- return t?.renditionFlow === "scrolled-continuous" && (r.computedPageTurnMode = "scrollable"), r.computedPageTurnMode === "scrollable" && (r.computedPageTurnDirection = "vertical"), n && r.computedPageTurnAnimation === "slide" && (R.warn(`pageTurnAnimation ${r.computedPageTurnAnimation} incompatible with current book, switching back to default`), r.computedPageTurnAnimation = "none"), r.computedPageTurnMode === "scrollable" ? (r.computedPageTurnAnimationDuration = 0, r.computedPageTurnAnimation = "none") : r.computedPageTurnAnimationDuration = e.pageTurnAnimationDuration === void 0 ? 300 : e.pageTurnAnimationDuration, r;
3997
+ return t.renditionFlow === "scrolled-continuous" && (r.computedPageTurnMode = "scrollable"), r.computedPageTurnMode === "scrollable" && (r.computedPageTurnDirection = "vertical"), n && r.computedPageTurnAnimation === "slide" && (R.warn(`pageTurnAnimation ${r.computedPageTurnAnimation} incompatible with current book, switching back to default`), r.computedPageTurnAnimation = "none"), r.computedPageTurnMode === "scrollable" ? (r.computedPageTurnAnimationDuration = 0, r.computedPageTurnAnimation = "none") : r.computedPageTurnAnimationDuration = e.pageTurnAnimationDuration === void 0 ? 300 : e.pageTurnAnimationDuration, r;
4079
3998
  }
4080
3999
  getOutputSettings(e) {
4081
4000
  let t = this.getComputedSettings(e);
@@ -4100,197 +4019,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4100
4019
  numberOfAdjacentSpineItemToPreLoad: 3
4101
4020
  };
4102
4021
  }
4103
- }, Va = class extends Nt {
4104
- onUnload() {
4105
- return u;
4106
- }
4107
- onCreateDocument() {
4108
- return E(document.createElement("div"));
4109
- }
4110
- onLoadDocument() {
4111
- return u;
4112
- }
4113
- onLayout() {
4114
- return E(void 0);
4115
- }
4116
- onRenderHeadless() {
4117
- return u;
4118
- }
4119
- getDocumentFrame() {}
4120
- }, Ha = class extends Q {
4121
- constructor(e, t, n, i, a, s, c) {
4122
- super(), this.item = e, this.containerElement = t, this.context = n, this.hookManager = i, this.renderer = a, this.settings = s, this.viewport = c, this.layoutTriggerSubject = new m(), this.lastLayout = null, this.computeLayoutInformation = ({ isLastItem: e, horizontalOffset: t, spreadPosition: n }) => {
4123
- let i = this.viewport.value.pageSize.width, a = "none", o = t % this.viewport.absoluteViewport.width === 0, s = this.context.manifest, c = Ii(s) ?? !1;
4124
- if (this.settings.values.computedSpreadMode) {
4125
- !c && this.renderer.renditionLayout === "reflowable" && !e && (i = this.viewport.value.pageSize.width * 2), !c && this.renderer.renditionLayout === "reflowable" && e && o && (i = this.viewport.value.pageSize.width * 2);
4126
- let t = o && e && c, s = r(this.item);
4127
- s !== void 0 && s !== n ? (a = "before", i = this.viewport.value.pageSize.width * 2) : t && (a = this.context.isRTL() ? "before" : "after", i = this.viewport.value.pageSize.width * 2);
4128
- }
4129
- return {
4130
- minimumWidth: i,
4131
- blankPagePosition: a
4132
- };
4133
- }, this.adjustPositionOfElement = ({ right: e, left: t, top: n }) => {
4134
- e === void 0 ? V(this.containerElement.style, "right") : B(this.containerElement.style, "right", `${e}px`), t === void 0 ? V(this.containerElement.style, "left") : B(this.containerElement.style, "left", `${t}px`), n === void 0 ? V(this.containerElement.style, "top") : B(this.containerElement.style, "top", `${n}px`);
4135
- }, this.updateContainerLayout = ({ minimumWidth: e, edgeX: t, edgeY: n }) => (r) => r.pipe(w((r) => {
4136
- let { width: i, height: a } = (o(this.lastLayout?.pageSize, this.viewport.pageSize) ? this.lastLayout : void 0) ?? {}, { width: s = i, height: c = a } = r ?? {}, { width: l, height: u } = this.viewport.pageSize, d = this.validateDimension(s ?? l, l, e), f = this.settings.values.computedPageTurnMode === "scrollable" ? c ?? u : this.validateDimension(c ?? u, u, u);
4137
- return this.lastLayout = {
4138
- width: d,
4139
- height: f,
4140
- pageSize: this.viewport.pageSize
4141
- }, B(this.containerElement.style, "width", `${d}px`), B(this.containerElement.style, "height", `${f}px`), this.settings.values.computedPageTurnDirection === "vertical" ? (this.adjustPositionOfElement({
4142
- top: n,
4143
- left: t
4144
- }), {
4145
- width: d,
4146
- height: f
4147
- }) : (this.adjustPositionOfElement(this.context.isRTL() ? {
4148
- right: t,
4149
- top: 0
4150
- } : {
4151
- left: t,
4152
- top: 0
4153
- }), {
4154
- width: d,
4155
- height: f
4156
- });
4157
- })), this.layout = (e) => {
4158
- let t = Ct(this.didLayout$.pipe(x()));
4159
- return this.layoutTriggerSubject.next(e), t();
4160
- };
4161
- let l = this.layoutTriggerSubject.pipe(A(({ spreadPosition: e, horizontalOffset: t, isLastItem: n, edgeX: r, edgeY: i }) => {
4162
- let { blankPagePosition: a, minimumWidth: o } = this.computeLayoutInformation({
4163
- horizontalOffset: t,
4164
- isLastItem: n,
4165
- spreadPosition: e
4166
- });
4167
- this.hookManager.execute("item.onBeforeLayout", {
4168
- blankPagePosition: a,
4169
- item: this.item,
4170
- minimumWidth: o
4171
- });
4172
- let s = this.renderer.layout({
4173
- blankPagePosition: a,
4174
- minPageSpread: o / this.viewport.pageSize.width,
4175
- minimumWidth: o,
4176
- spreadPosition: e
4177
- });
4178
- return T(E({ type: "start" }), s.pipe(this.updateContainerLayout({
4179
- minimumWidth: o,
4180
- edgeX: r,
4181
- edgeY: i
4182
- }), w((e) => (this.hookManager.execute("item.onAfterLayout", {
4183
- blankPagePosition: a,
4184
- item: this.item,
4185
- minimumWidth: o
4186
- }), {
4187
- type: "end",
4188
- data: e
4189
- }))));
4190
- }), D());
4191
- this.didLayout$ = l.pipe(b((e) => e.type === "end"), w((e) => e.data), D());
4192
- }
4193
- validateDimension(e, t, n) {
4194
- if (e <= 0) return n;
4195
- let r = Math.ceil(Math.max(e, n) / t) * t;
4196
- return Math.max(r, t);
4197
- }
4198
- get layoutInfo() {
4199
- let e = this.containerElement.style;
4200
- return {
4201
- width: e.width ? parseFloat(e.width) : 0,
4202
- height: e.height ? parseFloat(e.height) : 0
4203
- };
4204
- }
4205
- }, Ua = class extends U {
4206
- constructor(e, t, n, r, i, a, o) {
4207
- super({
4208
- isLoaded: !1,
4209
- isReady: !1,
4210
- isDirty: !1,
4211
- isError: !1,
4212
- error: void 0
4213
- }), this.item = e, this.parentElement = t, this.context = n, this.settings = r, this.hookManager = i, this.index = a, this.viewport = o, this.load = () => {
4214
- this.renderer.load();
4215
- }, this.unload = () => {
4216
- this.renderer.unload();
4217
- }, this.markDirty = () => {
4218
- this.mergeCompare({ isDirty: !0 });
4219
- }, this.destroy = () => {
4220
- super.destroy(), this.containerElement.remove(), this.renderer.destroy();
4221
- }, this.isUsingVerticalWriting = () => !!this.renderer.writingMode?.startsWith("vertical"), this.layout = (e) => this._layout.layout(e), this.containerElement = Wa(t, e, i), t.appendChild(this.containerElement);
4222
- let s = this.settings.values.getRenderer?.(e);
4223
- this.resourcesHandler = new Ft(e, this.settings);
4224
- let c = {
4225
- context: n,
4226
- settings: r,
4227
- hookManager: i,
4228
- item: e,
4229
- containerElement: this.containerElement,
4230
- resourcesHandler: this.resourcesHandler,
4231
- viewport: this.viewport
4232
- };
4233
- this.renderer = s ? s(c) : new Va(c), this._layout = new Ha(e, this.containerElement, n, i, this.renderer, this.settings, this.viewport);
4234
- let l = this.renderer.state$.pipe(L(({ state: e, error: t }) => {
4235
- this.mergeCompare({
4236
- isLoaded: e === "loaded",
4237
- isError: e === "error",
4238
- error: e === "error" ? t : void 0
4239
- });
4240
- }));
4241
- this.didLayout$ = this._layout.didLayout$.pipe(L(() => {
4242
- this.mergeCompare({
4243
- isDirty: !1,
4244
- isReady: this.renderer.value.state === "loaded"
4245
- });
4246
- }), De()), T(l, this.didLayout$).pipe(I(this.destroy$)).subscribe();
4247
- }
4248
- get isReady$() {
4249
- return this.watch("isReady");
4250
- }
4251
- get element() {
4252
- return this.containerElement;
4253
- }
4254
- get readingDirection() {
4255
- return this.renderer.readingDirection;
4256
- }
4257
- get loaded$() {
4258
- return this.renderer.loaded$;
4259
- }
4260
- get unloaded$() {
4261
- return this.renderer.unloaded$;
4262
- }
4263
- get renditionLayout() {
4264
- return this.renderer.renditionLayout;
4265
- }
4266
- get layoutInfo() {
4267
- return this._layout.layoutInfo;
4268
- }
4269
- get numberOfPages() {
4270
- return va({
4271
- isUsingVerticalWriting: !!this.isUsingVerticalWriting(),
4272
- itemHeight: this._layout.layoutInfo.height,
4273
- itemWidth: this._layout.layoutInfo.width,
4274
- pageWidth: this.viewport.pageSize.width,
4275
- pageHeight: this.viewport.pageSize.height,
4276
- pageTurnDirection: this.settings.values.computedPageTurnDirection,
4277
- pageTurnMode: this.settings.values.pageTurnMode
4278
- });
4279
- }
4280
- }, Wa = (e, t, n) => {
4281
- let r = e.ownerDocument.createElement("div");
4282
- return r.setAttribute(`data-${Dn}`, ""), r.classList.add("spineItem"), r.classList.add(`spineItem-${t.renditionLayout ?? "reflowable"}`), r.style.cssText = "\n position: absolute;\n overflow: hidden;\n ", r.dataset.isReady = "false", n.execute("item.onBeforeContainerAttach", {
4283
- element: r,
4284
- item: t
4285
- }), r;
4286
- }, Ga = class extends Q {
4022
+ }, Na = class extends Q {
4287
4023
  constructor(e, n, r, i, a, o) {
4288
4024
  super(), this.context = e, this.spineItemsManager = n, this.spineLocator = r, this.settings = i, this.spineLayout = a, this.viewport = o, this.forcedOpenSubject = new l(/* @__PURE__ */ new Map());
4289
- let s = this.forcedOpenSubject.pipe(w((e) => Array.from(e.keys()).sort((e, t) => e - t)), y(t), O({
4025
+ let s = this.forcedOpenSubject.pipe(w((e) => Array.from(e.keys()).sort((e, t) => e - t)), y(t), k({
4290
4026
  bufferSize: 1,
4291
4027
  refCount: !0
4292
4028
  }));
4293
- T(this.context.bridgeEvent.position$, this.viewport.layout$, this.spineLayout.layout$, s, i.watch(["numberOfAdjacentSpineItemToPreLoad"])).pipe(ne(100), St(this.context.bridgeEvent.viewportFree$), N(this.context.bridgeEvent.position$, s), w(([, e, t]) => {
4029
+ T(this.context.bridgeEvent.position$, this.viewport.layout$, this.spineLayout.layout$, s, i.watch(["numberOfAdjacentSpineItemToPreLoad"])).pipe(ne(100), b(() => K(this.context.value.rootElement)), yt(this.context.bridgeEvent.viewportFree$), P(this.context.bridgeEvent.position$, s), w(([, e, t]) => {
4294
4030
  let { numberOfAdjacentSpineItemToPreLoad: a } = i.values, { beginIndex: o = 0, endIndex: s = 0 } = r.getVisibleSpineItemsFromPosition({
4295
4031
  position: e,
4296
4032
  threshold: {
@@ -4302,7 +4038,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4302
4038
  n.items.forEach((e, t) => {
4303
4039
  d.includes(t) ? e.load() : e.unload();
4304
4040
  });
4305
- })).pipe(j(this.destroy$)).subscribe();
4041
+ })).pipe(M(this.destroy$)).subscribe();
4306
4042
  }
4307
4043
  forceOpen(e) {
4308
4044
  let t = e.map((e) => typeof e == "number" ? e : e.index), n = (e) => {
@@ -4319,13 +4055,13 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4319
4055
  destroy() {
4320
4056
  super.destroy(), this.forcedOpenSubject.complete();
4321
4057
  }
4322
- }, Ka = (e, t, n) => {
4058
+ }, Pa = (e, t, n) => {
4323
4059
  let r = (n.width - t.width) / 2, i = (n.height - t.height) / 2;
4324
4060
  return new Y({
4325
4061
  x: e.x - r,
4326
4062
  y: e.y - i
4327
4063
  });
4328
- }, qa = class e extends DOMRect {
4064
+ }, Fa = class e extends DOMRect {
4329
4065
  constructor(...e) {
4330
4066
  super(...e), this.__symbol = Symbol("ViewportPosition");
4331
4067
  }
@@ -4337,15 +4073,15 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4337
4073
  let r = t;
4338
4074
  return new e(r.x, r.y, r.width, r.height);
4339
4075
  }
4340
- }, Ja = class {
4076
+ }, Ia = class {
4341
4077
  constructor({ width: e, height: t }) {
4342
4078
  this.__symbol = Symbol("AbsoluteViewport"), this.width = e, this.height = t;
4343
4079
  }
4344
- }, Ya = class {
4080
+ }, La = class {
4345
4081
  constructor({ width: e, height: t }) {
4346
4082
  this.__symbol = Symbol("RelativeViewport"), this.width = e, this.height = t;
4347
4083
  }
4348
- }, Xa = ({ pageIndex: e, spineItemOrId: t, spineItemsManager: n }) => {
4084
+ }, Ra = ({ pageIndex: e, spineItemOrId: t, spineItemsManager: n }) => {
4349
4085
  let r = n.items, i = n.get(t);
4350
4086
  if (!i) return;
4351
4087
  let { currentAbsolutePage: a } = r.reduce((t, n) => {
@@ -4363,45 +4099,45 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4363
4099
  found: !1
4364
4100
  });
4365
4101
  return a;
4366
- }, Za = ({ itemHeight: e, itemWidth: t, visibleWidthOfItem: n, visibleHeightOfItem: r, threshold: i }) => {
4102
+ }, za = ({ itemHeight: e, itemWidth: t, visibleWidthOfItem: n, visibleHeightOfItem: r, threshold: i }) => {
4367
4103
  let a = n / t, o = r / e;
4368
4104
  return i.type === "percentage" ? a >= i.value && o >= i.value : n >= i.value && r >= i.value;
4369
- }, Qa = ({ visibleWidthOfItem: e, visibleHeightOfItem: t, threshold: n, viewportPosition: r }) => {
4105
+ }, Ba = ({ visibleWidthOfItem: e, visibleHeightOfItem: t, threshold: n, viewportPosition: r }) => {
4370
4106
  let i = e / r.width, a = t / r.height;
4371
4107
  return n.type === "percentage" ? a >= n.value && i >= n.value : t >= n.value && e >= n.value;
4372
- }, $a = ({ itemPosition: { bottom: e, left: t, right: n, top: r, width: i, height: a }, threshold: o, viewportPosition: s, restrictToScreen: c }) => {
4108
+ }, Va = ({ itemPosition: { bottom: e, left: t, right: n, top: r, width: i, height: a }, threshold: o, viewportPosition: s, restrictToScreen: c }) => {
4373
4109
  let l = s.x, u = s.x + (s.width - 1), d = s.y, f = Math.max(s.y + (s.height - 1), 0), p = Math.max(0, Math.min(n, u) - Math.max(t, l)), m = Math.max(0, Math.min(e, f) - Math.max(r, d));
4374
4110
  if (p <= 0 || m <= 0) return { visible: !1 };
4375
- let h = Qa({
4111
+ let h = Ba({
4376
4112
  threshold: o,
4377
4113
  visibleHeightOfItem: m,
4378
4114
  visibleWidthOfItem: p,
4379
4115
  viewportPosition: s
4380
4116
  });
4381
- return c ? { visible: h } : { visible: Za({
4117
+ return c ? { visible: h } : { visible: za({
4382
4118
  itemHeight: a,
4383
4119
  itemWidth: i,
4384
4120
  threshold: o,
4385
4121
  visibleHeightOfItem: m,
4386
4122
  visibleWidthOfItem: p
4387
4123
  }) || h };
4388
- }, eo = ({ position: e, spineItemsManager: t, spineLayout: n }) => {
4124
+ }, Ha = ({ position: e, spineItemsManager: t, spineLayout: n }) => {
4389
4125
  let r = t.items.find((t) => {
4390
4126
  let { left: r, right: i, bottom: a, top: o } = n.getSpineItemSpineLayoutInfo(t), s = e.x >= r && e.x < i, c = e.y >= o && e.y < a;
4391
4127
  return s && c;
4392
4128
  });
4393
4129
  return e.x === 0 && !r ? t.items[0] : r;
4394
- }, to = ({ spineItemPosition: e, itemLayout: { left: t, top: n } }) => new J({
4130
+ }, Ua = ({ spineItemPosition: e, itemLayout: { left: t, top: n } }) => new J({
4395
4131
  x: t + e.x,
4396
4132
  y: n + e.y
4397
- }), no = ({ position: e, threshold: t, restrictToScreen: n, spineItemsManager: r, spineLayout: i, useAbsoluteViewport: a = !0, viewport: o }) => {
4398
- let s = eo({
4133
+ }), Wa = ({ position: e, threshold: t, restrictToScreen: n, spineItemsManager: r, spineLayout: i, useAbsoluteViewport: a = !0, viewport: o }) => {
4134
+ let s = Ha({
4399
4135
  position: e,
4400
4136
  spineItemsManager: r,
4401
4137
  spineLayout: i
4402
- }) || r.get(0), c = a ? o.absoluteViewport : o.relativeViewport, l = Ka(e, o.absoluteViewport, c), u = qa.from(l, c), d = [];
4138
+ }) || r.get(0), c = a ? o.absoluteViewport : o.relativeViewport, l = Pa(e, o.absoluteViewport, c), u = Fa.from(l, c), d = [];
4403
4139
  for (let e of r.items) {
4404
- let { visible: r } = $a({
4140
+ let { visible: r } = Va({
4405
4141
  itemPosition: i.getSpineItemSpineLayoutInfo(e),
4406
4142
  threshold: t,
4407
4143
  viewportPosition: u,
@@ -4416,14 +4152,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4416
4152
  beginIndex: m ?? 0,
4417
4153
  endIndex: h ?? 0
4418
4154
  };
4419
- }, ro = ({ spineItemsManager: e, context: t, spineItemLocator: n, settings: r, spineLayout: i, viewport: a }) => {
4155
+ }, Ga = ({ spineItemsManager: e, context: t, spineItemLocator: n, settings: r, spineLayout: i, viewport: a }) => {
4420
4156
  let o = (e, t) => {
4421
4157
  let { left: n, top: r } = i.getSpineItemSpineLayoutInfo(t);
4422
4158
  return new q({
4423
4159
  x: Math.max(e.x - n, 0),
4424
4160
  y: Math.max(e.y - r, 0)
4425
4161
  });
4426
- }, s = (e) => to({
4162
+ }, s = (e) => Ua({
4427
4163
  spineItemPosition: new q({
4428
4164
  x: 0,
4429
4165
  y: 0
@@ -4437,7 +4173,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4437
4173
  return n.getSpineItemPageIndexFromNode(t, r || 0, i);
4438
4174
  }, u = ({ position: e, threshold: t, spineItem: r, restrictToScreen: a, useAbsoluteViewport: o = !0, viewport: s }) => {
4439
4175
  let c = r.numberOfPages, l = Array.from(Array(c)).map((e, t) => {
4440
- let a = to({
4176
+ let a = Ua({
4441
4177
  spineItemPosition: n.getSpineItemPositionFromPageIndex({
4442
4178
  pageIndex: t,
4443
4179
  spineItem: r
@@ -4456,8 +4192,8 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4456
4192
  }
4457
4193
  };
4458
4194
  }).reduce((n, { absolutePosition: r, index: i }) => {
4459
- let c = o ? s.absoluteViewport : s.relativeViewport, l = Ka(e, s.absoluteViewport, c), { visible: u } = $a({
4460
- viewportPosition: qa.from(l, c),
4195
+ let c = o ? s.absoluteViewport : s.relativeViewport, l = Pa(e, s.absoluteViewport, c), { visible: u } = Va({
4196
+ viewportPosition: Fa.from(l, c),
4461
4197
  restrictToScreen: a,
4462
4198
  threshold: t,
4463
4199
  itemPosition: r
@@ -4470,11 +4206,11 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4470
4206
  };
4471
4207
  };
4472
4208
  return {
4473
- getSpinePositionFromSpineItemPosition: ({ spineItem: e, spineItemPosition: t }) => to({
4209
+ getSpinePositionFromSpineItemPosition: ({ spineItem: e, spineItemPosition: t }) => Ua({
4474
4210
  itemLayout: i.getSpineItemSpineLayoutInfo(e),
4475
4211
  spineItemPosition: t
4476
4212
  }),
4477
- _getAbsolutePageIndexFromPageIndex: (n) => Xa({
4213
+ _getAbsolutePageIndexFromPageIndex: (n) => Ra({
4478
4214
  ...n,
4479
4215
  context: t,
4480
4216
  settings: r,
@@ -4482,7 +4218,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4482
4218
  spineLayout: i
4483
4219
  }),
4484
4220
  getSpineItemPagePositionFromSpinePosition: (t) => {
4485
- let r = eo({
4221
+ let r = Ha({
4486
4222
  position: t,
4487
4223
  spineItemsManager: e,
4488
4224
  spineLayout: i
@@ -4503,14 +4239,14 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4503
4239
  },
4504
4240
  getSpinePositionFromSpineItem: s,
4505
4241
  getSpineItemPositionFromSpinePosition: o,
4506
- getSpineItemFromPosition: (t) => eo({
4242
+ getSpineItemFromPosition: (t) => Ha({
4507
4243
  position: t,
4508
4244
  spineItemsManager: e,
4509
4245
  spineLayout: i
4510
4246
  }),
4511
4247
  getSpineItemFromIframe: c,
4512
4248
  getSpineItemPageIndexFromNode: l,
4513
- getVisibleSpineItemsFromPosition: (t) => no({
4249
+ getVisibleSpineItemsFromPosition: (t) => Wa({
4514
4250
  settings: r,
4515
4251
  spineItemsManager: e,
4516
4252
  spineLayout: i,
@@ -4534,25 +4270,27 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4534
4270
  });
4535
4271
  }
4536
4272
  };
4537
- }, io = class extends Q {
4273
+ }, Ka = class extends Q {
4538
4274
  constructor(e) {
4539
- super(), this.spineItemsManager = e, this.states$ = this.spineItemsManager.items$.pipe(A((e) => T(...e.map((e) => e.pipe(w((t) => ({
4275
+ super(), this.spineItemsManager = e;
4276
+ let t = e.items;
4277
+ this.itemStateChange$ = T(...t.map((e) => e.pipe(w((t) => ({
4540
4278
  item: e,
4541
4279
  ...t
4542
- })), y(o))))), D()), this.itemResize$ = this.spineItemsManager.items$.pipe(A((e) => T(...e.map((e) => xt(e.element).pipe(w((t) => ({
4280
+ })), y(o)))).pipe(O()), this.itemResize$ = T(...t.map((e) => vt(e.element).pipe(w((t) => ({
4543
4281
  entries: t,
4544
4282
  item: e
4545
- })))))), D()), this.itemLoad$ = this.spineItemsManager.items$.pipe(A((e) => T(...e.map((e) => e.loaded$.pipe(w(() => e))))), D()), this.itemUnload$ = this.spineItemsManager.items$.pipe(A((e) => T(...e.map((e) => e.unloaded$.pipe(w(() => e))))), D());
4283
+ }))))).pipe(O()), this.itemLoad$ = T(...t.map((e) => e.loaded$.pipe(w(() => e)))).pipe(O()), this.itemUnload$ = T(...t.map((e) => e.unloaded$.pipe(w(() => e)))).pipe(O());
4546
4284
  }
4547
- }, ao = class extends Q {
4285
+ }, qa = class extends Q {
4548
4286
  constructor(e, t, n, r, i) {
4549
4287
  super(), this.spineItemsManager = e, this.spineItemsObserver = t, this.context = n, this.settings = r, this.viewport = i, this.externalLayoutTrigger = new m(), this.spineItemsRelativeLayouts = [];
4550
4288
  let a = T(t.itemLoad$, t.itemUnload$).pipe(w(() => ({ immediate: !1 }))), o = T(this.externalLayoutTrigger, a);
4551
- this.layout$ = o.pipe(M(() => {
4289
+ this.layout$ = o.pipe(N(() => {
4552
4290
  this.spineItemsManager.items.forEach((e) => {
4553
4291
  e.markDirty();
4554
4292
  });
4555
- }), te((e) => e.immediate ? E(void 0) : ye(50)), A(() => this.spineItemsManager.items.reduce((t, a, o) => t.pipe(ee(({ horizontalOffset: t, verticalOffset: s }) => {
4293
+ }), te((e) => e.immediate ? D(void 0) : _e(50)), j(() => this.spineItemsManager.items.reduce((t, a, o) => t.pipe(ee(({ horizontalOffset: t, verticalOffset: s }) => {
4556
4294
  let c = t % i.absoluteViewport.width === 0, l = o === e.items.length - 1, u = r.values.computedPageTurnDirection === "vertical", d = n.isRTL(), f = this.getSpreadPosition(c, d), { edgeX: p, edgeY: m } = this.getStartEdges(u, c, t, s, i.absoluteViewport.height);
4557
4295
  return a.layout({
4558
4296
  spreadPosition: f,
@@ -4567,22 +4305,22 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4567
4305
  verticalOffset: u ? m + t : 0
4568
4306
  };
4569
4307
  }));
4570
- })), E({
4308
+ })), D({
4571
4309
  horizontalOffset: 0,
4572
4310
  verticalOffset: 0
4573
- }))), j(this.destroy$), D()), this.layout$.subscribe(), this.watchForVerticalWritingUpdate();
4311
+ }))), M(this.destroy$), O()), this.layout$.subscribe(), this.watchForVerticalWritingUpdate();
4574
4312
  }
4575
4313
  watchForVerticalWritingUpdate() {
4576
- this.spineItemsObserver.itemLoad$.pipe(M((e) => {
4314
+ this.spineItemsObserver.itemLoad$.pipe(N((e) => {
4577
4315
  this.context.update({ hasVerticalWriting: e.isUsingVerticalWriting() });
4578
- }), j(this.destroy$)).subscribe();
4316
+ }), M(this.destroy$)).subscribe();
4579
4317
  }
4580
4318
  layout(e = {}) {
4581
4319
  this.externalLayoutTrigger.next(e);
4582
4320
  }
4583
4321
  getSpineItemSpineLayoutInfo(e) {
4584
4322
  let t = this.spineItemsManager.getSpineItemIndex(e) ?? 0;
4585
- return this.spineItemsRelativeLayouts[t] || new pn({
4323
+ return this.spineItemsRelativeLayouts[t] || new un({
4586
4324
  left: 0,
4587
4325
  right: 0,
4588
4326
  top: 0,
@@ -4612,7 +4350,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4612
4350
  };
4613
4351
  }
4614
4352
  createSpineItemLayout(e, t, n, r, i, a, o) {
4615
- if (e) return new pn({
4353
+ if (e) return new un({
4616
4354
  left: n,
4617
4355
  right: i + n,
4618
4356
  top: r,
@@ -4623,7 +4361,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4623
4361
  y: r
4624
4362
  });
4625
4363
  let s = t ? o - n - i : n;
4626
- return new pn({
4364
+ return new un({
4627
4365
  right: t ? o - n : n + i,
4628
4366
  left: s,
4629
4367
  x: s,
@@ -4634,26 +4372,25 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4634
4372
  y: r
4635
4373
  });
4636
4374
  }
4637
- }, oo = class extends Q {
4638
- constructor(e, t, n, r, i, a, o) {
4639
- super(), this.context = e, this.pagination = t, this.spineItemsManager = n, this.spineItemLocator = r, this.settings = i, this.hookManager = a, this.viewport = o, this.elementSubject = new l(void 0), this.element$ = this.elementSubject.asObservable(), this.spineItemsObserver = new io(n), this.spineLayout = new ao(n, this.spineItemsObserver, e, i, o), this.locator = ro({
4375
+ }, Ja = class extends Q {
4376
+ constructor(e, t, n, r, i, a) {
4377
+ super(), this.context = e, this.pagination = t, this.spineItemsManager = n, this.spineItemLocator = r, this.settings = i, this.viewport = a, this.elementSubject = new l(void 0), this.element$ = this.elementSubject.asObservable(), this.spineItemsObserver = new Ka(n), this.spineLayout = new qa(n, this.spineItemsObserver, e, i, a), this.locator = Ga({
4640
4378
  context: e,
4641
4379
  spineItemsManager: n,
4642
4380
  spineItemLocator: r,
4643
4381
  settings: i,
4644
4382
  spineLayout: this.spineLayout,
4645
- viewport: o
4646
- }), this.spineItemsLoader = new Ga(this.context, n, this.locator, i, this.spineLayout, this.viewport), this.pages = new Sr(this.spineLayout, this.spineItemsManager, this.spineItemLocator, this.context, this.locator, this.viewport);
4647
- let s = e.watch("rootElement").pipe(Ce(K), L((e) => {
4383
+ viewport: a
4384
+ }), this.spineItemsLoader = new Na(this.context, n, this.locator, i, this.spineLayout, this.viewport), this.pages = new yr(this.spineLayout, this.spineItemsManager, this.spineItemLocator, this.context, this.locator, this.viewport);
4385
+ let o = e.watch("rootElement").pipe(be(K), L((e) => {
4648
4386
  let t = e.ownerDocument.createElement("div");
4649
4387
  t.style.cssText = "\n height: 100%;\n position: relative;\n ", t.className = `${X}-spine`, this.elementSubject.next(t);
4650
4388
  }));
4651
- T(v([this.context.manifest$, this.element$]).pipe(L(([e, t]) => {
4652
- if (!t) return;
4653
- this.spineItemsManager.destroyItems();
4654
- let n = e.spineItems.map((e, n) => new Ua(e, t, this.context, this.settings, this.hookManager, n, this.viewport));
4655
- this.spineItemsManager.addMany(n);
4656
- })), s).pipe(I(this.destroy$)).subscribe();
4389
+ T(this.element$.pipe(be(K), L((e) => {
4390
+ this.spineItemsManager.items.forEach((t) => {
4391
+ t.attach(e);
4392
+ });
4393
+ })), o).pipe(I(this.destroy$)).subscribe();
4657
4394
  }
4658
4395
  get element() {
4659
4396
  return this.elementSubject.getValue();
@@ -4670,36 +4407,212 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4670
4407
  destroy() {
4671
4408
  super.destroy(), this.pages.destroy(), this.spineItemsLoader.destroy(), this.elementSubject.getValue()?.remove(), this.elementSubject.complete();
4672
4409
  }
4673
- }, so = class extends Q {
4674
- constructor(e, t) {
4675
- super(), this.context = e, this.settings = t, this.orderedSpineItemsSubject = new l([]), this.items$ = this.orderedSpineItemsSubject.asObservable();
4410
+ }, Ya = class extends At {
4411
+ onUnload() {}
4412
+ onCreateDocument() {
4413
+ return D(document.createElement("div"));
4414
+ }
4415
+ onLoadDocument() {
4416
+ return u;
4417
+ }
4418
+ onLayout() {
4419
+ return D(void 0);
4420
+ }
4421
+ onRenderHeadless() {
4422
+ return u;
4423
+ }
4424
+ getDocumentFrame() {}
4425
+ }, Xa = class extends Q {
4426
+ constructor(e, t, n, i, a, s, c) {
4427
+ super(), this.item = e, this.containerElement = t, this.context = n, this.hookManager = i, this.renderer = a, this.settings = s, this.viewport = c, this.layoutTriggerSubject = new m(), this.lastLayout = null, this.computeLayoutInformation = ({ isLastItem: e, horizontalOffset: t, spreadPosition: n }) => {
4428
+ let i = this.viewport.value.pageSize.width, a = "none", o = t % this.viewport.absoluteViewport.width === 0, s = this.context.manifest, c = Oi(s);
4429
+ if (this.settings.values.computedSpreadMode) {
4430
+ !c && this.renderer.renditionLayout === "reflowable" && !e && (i = this.viewport.value.pageSize.width * 2), !c && this.renderer.renditionLayout === "reflowable" && e && o && (i = this.viewport.value.pageSize.width * 2);
4431
+ let t = o && e && c, s = r(this.item);
4432
+ s !== void 0 && s !== n ? (a = "before", i = this.viewport.value.pageSize.width * 2) : t && (a = this.context.isRTL() ? "before" : "after", i = this.viewport.value.pageSize.width * 2);
4433
+ }
4434
+ return {
4435
+ minimumWidth: i,
4436
+ blankPagePosition: a
4437
+ };
4438
+ }, this.adjustPositionOfElement = ({ right: e, left: t, top: n }) => {
4439
+ e === void 0 ? V(this.containerElement.style, "right") : B(this.containerElement.style, "right", `${e}px`), t === void 0 ? V(this.containerElement.style, "left") : B(this.containerElement.style, "left", `${t}px`), n === void 0 ? V(this.containerElement.style, "top") : B(this.containerElement.style, "top", `${n}px`);
4440
+ }, this.updateContainerLayout = ({ minimumWidth: e, edgeX: t, edgeY: n }) => (r) => r.pipe(w((r) => {
4441
+ let { width: i, height: a } = (o(this.lastLayout?.pageSize, this.viewport.pageSize) ? this.lastLayout : void 0) ?? {}, { width: s = i, height: c = a } = r ?? {}, { width: l, height: u } = this.viewport.pageSize, d = this.validateDimension(s ?? l, l, e), f = this.settings.values.computedPageTurnMode === "scrollable" ? c ?? u : this.validateDimension(c ?? u, u, u);
4442
+ return this.lastLayout = {
4443
+ width: d,
4444
+ height: f,
4445
+ pageSize: this.viewport.pageSize
4446
+ }, B(this.containerElement.style, "width", `${d}px`), B(this.containerElement.style, "height", `${f}px`), this.settings.values.computedPageTurnDirection === "vertical" ? (this.adjustPositionOfElement({
4447
+ top: n,
4448
+ left: t
4449
+ }), {
4450
+ width: d,
4451
+ height: f
4452
+ }) : (this.adjustPositionOfElement(this.context.isRTL() ? {
4453
+ right: t,
4454
+ top: 0
4455
+ } : {
4456
+ left: t,
4457
+ top: 0
4458
+ }), {
4459
+ width: d,
4460
+ height: f
4461
+ });
4462
+ })), this.layout = (e) => {
4463
+ let t = bt(this.didLayout$.pipe(x()));
4464
+ return this.layoutTriggerSubject.next(e), t();
4465
+ };
4466
+ let l = this.layoutTriggerSubject.pipe(j(({ spreadPosition: e, horizontalOffset: t, isLastItem: n, edgeX: r, edgeY: i }) => {
4467
+ let { blankPagePosition: a, minimumWidth: o } = this.computeLayoutInformation({
4468
+ horizontalOffset: t,
4469
+ isLastItem: n,
4470
+ spreadPosition: e
4471
+ });
4472
+ this.hookManager.execute("item.onBeforeLayout", {
4473
+ blankPagePosition: a,
4474
+ item: this.item,
4475
+ minimumWidth: o
4476
+ });
4477
+ let s = this.renderer.layout({
4478
+ blankPagePosition: a,
4479
+ minPageSpread: o / this.viewport.pageSize.width,
4480
+ minimumWidth: o,
4481
+ spreadPosition: e
4482
+ });
4483
+ return T(D({ type: "start" }), s.pipe(this.updateContainerLayout({
4484
+ minimumWidth: o,
4485
+ edgeX: r,
4486
+ edgeY: i
4487
+ }), w((e) => (this.hookManager.execute("item.onAfterLayout", {
4488
+ blankPagePosition: a,
4489
+ item: this.item,
4490
+ minimumWidth: o
4491
+ }), {
4492
+ type: "end",
4493
+ data: e
4494
+ }))));
4495
+ }), O());
4496
+ this.didLayout$ = l.pipe(b((e) => e.type === "end"), w((e) => e.data), O());
4497
+ }
4498
+ validateDimension(e, t, n) {
4499
+ if (e <= 0) return n;
4500
+ let r = Math.ceil(Math.max(e, n) / t) * t;
4501
+ return Math.max(r, t);
4502
+ }
4503
+ get layoutInfo() {
4504
+ let e = this.containerElement.style;
4505
+ return {
4506
+ width: e.width ? parseFloat(e.width) : 0,
4507
+ height: e.height ? parseFloat(e.height) : 0
4508
+ };
4509
+ }
4510
+ }, Za = class extends U {
4511
+ constructor(e, t, n, r, i, a) {
4512
+ super({
4513
+ isLoaded: !1,
4514
+ isReady: !1,
4515
+ isDirty: !1,
4516
+ isError: !1,
4517
+ error: void 0
4518
+ }), this.item = e, this.context = t, this.settings = n, this.hookManager = r, this.index = i, this.viewport = a, this.attach = (e) => {
4519
+ this.hookManager.execute("item.onBeforeContainerAttach", {
4520
+ element: this.containerElement,
4521
+ item: this.item
4522
+ }), e.appendChild(this.containerElement);
4523
+ }, this.load = () => {
4524
+ this.renderer.load();
4525
+ }, this.unload = () => {
4526
+ this.renderer.unload();
4527
+ }, this.markDirty = () => {
4528
+ this.mergeCompare({ isDirty: !0 });
4529
+ }, this.destroy = () => {
4530
+ this.isDestroyed || (super.destroy(), this._layout.destroy(), this.renderer.destroy(), this.containerElement.remove());
4531
+ }, this.isUsingVerticalWriting = () => !!this.renderer.writingMode?.startsWith("vertical"), this.layout = (e) => this._layout.layout(e), this.containerElement = Qa(e);
4532
+ let o = this.settings.values.getRenderer?.(e);
4533
+ this.resourcesHandler = new Mt(e, this.settings);
4534
+ let s = {
4535
+ context: t,
4536
+ settings: n,
4537
+ hookManager: r,
4538
+ item: e,
4539
+ containerElement: this.containerElement,
4540
+ resourcesHandler: this.resourcesHandler,
4541
+ viewport: this.viewport
4542
+ };
4543
+ this.renderer = o ? o(s) : new Ya(s), this._layout = new Xa(e, this.containerElement, t, r, this.renderer, this.settings, this.viewport);
4544
+ let c = this.renderer.state$.pipe(L(({ state: e, error: t }) => {
4545
+ this.mergeCompare({
4546
+ isLoaded: e === "loaded",
4547
+ isError: e === "error",
4548
+ error: e === "error" ? t : void 0
4549
+ });
4550
+ }));
4551
+ this.didLayout$ = this._layout.didLayout$.pipe(L(() => {
4552
+ this.mergeCompare({
4553
+ isDirty: !1,
4554
+ isReady: this.renderer.value.state === "loaded"
4555
+ });
4556
+ }), we()), T(c, this.didLayout$).pipe(I(this.destroy$)).subscribe();
4557
+ }
4558
+ get isReady$() {
4559
+ return this.watch("isReady");
4560
+ }
4561
+ get element() {
4562
+ return this.containerElement;
4563
+ }
4564
+ get readingDirection() {
4565
+ return this.renderer.readingDirection;
4566
+ }
4567
+ get loaded$() {
4568
+ return this.renderer.loaded$;
4569
+ }
4570
+ get unloaded$() {
4571
+ return this.renderer.unloaded$;
4572
+ }
4573
+ get renditionLayout() {
4574
+ return this.renderer.renditionLayout;
4575
+ }
4576
+ get layoutInfo() {
4577
+ return this._layout.layoutInfo;
4578
+ }
4579
+ get numberOfPages() {
4580
+ return ua({
4581
+ isUsingVerticalWriting: !!this.isUsingVerticalWriting(),
4582
+ itemHeight: this._layout.layoutInfo.height,
4583
+ itemWidth: this._layout.layoutInfo.width,
4584
+ pageWidth: this.viewport.pageSize.width,
4585
+ pageHeight: this.viewport.pageSize.height,
4586
+ pageTurnDirection: this.settings.values.computedPageTurnDirection,
4587
+ pageTurnMode: this.settings.values.pageTurnMode
4588
+ });
4589
+ }
4590
+ }, Qa = (e) => {
4591
+ let t = document.createElement("div");
4592
+ return t.setAttribute(`data-${wn}`, ""), t.classList.add("spineItem"), t.classList.add(`spineItem-${e.renditionLayout ?? "reflowable"}`), t.style.cssText = "\n position: absolute;\n overflow: hidden;\n ", t.dataset.isReady = "false", t;
4593
+ }, $a = class extends Q {
4594
+ constructor(e, t, n, r) {
4595
+ super(), this.context = e, this.settings = t, this.hookManager = n, this.viewport = r, this.items = e.manifest.spineItems.map((i, a) => new Za(i, e, t, n, a, r));
4676
4596
  }
4677
4597
  get(e) {
4678
- return typeof e == "number" ? this.orderedSpineItemsSubject.value[e] : typeof e == "string" ? this.orderedSpineItemsSubject.value.find(({ item: t }) => t.id === e) : e;
4598
+ return typeof e == "number" ? this.items[e] : typeof e == "string" ? this.items.find(({ item: t }) => t.id === e) : e;
4679
4599
  }
4680
4600
  comparePositionOf(e, t) {
4681
4601
  let n = this.getSpineItemIndex(e) ?? 0, r = this.getSpineItemIndex(t) ?? 0;
4682
4602
  return n > r ? "after" : n === r ? "same" : "before";
4683
4603
  }
4684
4604
  getSpineItemIndex(e) {
4685
- return (e instanceof Ua ? e : this.get(e))?.index;
4605
+ return (e instanceof Za ? e : this.get(e))?.index;
4686
4606
  }
4687
- addMany(e) {
4688
- this.orderedSpineItemsSubject.next([...this.orderedSpineItemsSubject.getValue(), ...e]);
4689
- }
4690
- get items() {
4691
- return this.orderedSpineItemsSubject.value;
4692
- }
4693
- destroyItems() {
4694
- let e = this.orderedSpineItemsSubject.value;
4695
- e.forEach((e) => {
4607
+ destroy() {
4608
+ this.items.forEach((e) => {
4696
4609
  e.destroy();
4697
- }), e.length && this.orderedSpineItemsSubject.next([]);
4610
+ }), super.destroy();
4698
4611
  }
4699
- }, co = class extends U {
4612
+ }, eo = class extends U {
4700
4613
  constructor(e, t) {
4701
4614
  let n = document.createElement("div");
4702
- n.setAttribute(`data-${Tn}`, ""), super({
4615
+ n.setAttribute(`data-${Sn}`, ""), super({
4703
4616
  element: n,
4704
4617
  pageSize: {
4705
4618
  width: 1,
@@ -4707,11 +4620,11 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4707
4620
  },
4708
4621
  width: 1,
4709
4622
  height: 1
4710
- }), this.context = e, this.settingsManager = t, this.layoutSubject = new m(), this.layout$ = this.layoutSubject.asObservable(), T(this.settingsManager.watch(["computedSpreadMode"]).pipe(M(() => {
4623
+ }), this.context = e, this.settingsManager = t, this.layoutSubject = new m(), this.layout$ = this.layoutSubject.asObservable(), T(this.settingsManager.watch(["computedSpreadMode"]).pipe(N(() => {
4711
4624
  this.mergeCompare({ pageSize: this.calculatePageSize(this.value) });
4712
- })), this.context.watch("rootElement").pipe(M(() => {
4625
+ })), this.context.watch("rootElement").pipe(N(() => {
4713
4626
  this.layout();
4714
- }))).pipe(j(this.destroy$)).subscribe();
4627
+ }))).pipe(M(this.destroy$)).subscribe();
4715
4628
  }
4716
4629
  calculatePageSize(e) {
4717
4630
  let { computedSpreadMode: t } = this.settingsManager.values;
@@ -4722,7 +4635,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4722
4635
  }
4723
4636
  syncAbsoluteViewportCssVariables(e) {
4724
4637
  let { style: t } = this.value.element;
4725
- e.width > 0 ? B(t, On, `${e.width}px`) : V(t, On), e.height > 0 ? B(t, kn, `${e.height}px`) : V(t, kn);
4638
+ e.width > 0 ? B(t, Tn, `${e.width}px`) : V(t, Tn), e.height > 0 ? B(t, En, `${e.height}px`) : V(t, En);
4726
4639
  }
4727
4640
  layout() {
4728
4641
  let e = {
@@ -4735,7 +4648,7 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4735
4648
  }), this.layoutSubject.next();
4736
4649
  }
4737
4650
  get absoluteViewport() {
4738
- return new Ja({
4651
+ return new Ia({
4739
4652
  width: this.value.width,
4740
4653
  height: this.value.height
4741
4654
  });
@@ -4749,91 +4662,82 @@ var fi = (e) => (t) => e(t), pi = (e, t, n) => {
4749
4662
  }
4750
4663
  get relativeViewport() {
4751
4664
  let e = this.absoluteViewport, t = this.scaleFactor;
4752
- return new Ya({
4665
+ return new La({
4753
4666
  width: e.width / t,
4754
4667
  height: e.height / t
4755
4668
  });
4756
4669
  }
4757
4670
  destroy() {
4758
- super.destroy(), this.layoutSubject.complete();
4759
- }
4760
- }, lo = `${Cn}-core`, uo = (e) => {
4761
- let t = crypto.randomUUID(), n = new m(), r = new m(), i = new Bi(), a = new Ri(), o = new Ba(e, a), s = new zi(a, o), c = new so(a, o), l = new Fi(i, c), u = new co(a, o), d = xa({
4762
- context: a,
4763
- settings: o,
4764
- viewport: u
4765
- }), f = new La(a, c), p = new oo(a, f, c, d, o, i, u), h = Ia({
4766
- cfi: l,
4767
- context: a,
4768
- spineItemsManager: c,
4769
- hookManager: i,
4770
- spine: p,
4771
- settings: o,
4772
- viewport: u
4773
- }), g = new Ra(a, f, c, p, d, h.isLocked$, l);
4774
- h.navigationState$.subscribe(a.bridgeEvent.viewportStateSubject), h.navigation$.subscribe(a.bridgeEvent.navigationSubject), h.position$.subscribe(a.bridgeEvent.positionSubject), f.subscribe(a.bridgeEvent.paginationSubject);
4775
- let _ = (e = {}) => {
4776
- n.next(e);
4777
- }, v = (e) => {
4778
- let { containerElement: n, manifest: r } = e;
4779
- if (a.manifest) {
4780
- R.warn("loading a new book is not supported yet");
4781
- return;
4782
- }
4783
- R.log("load", { options: e });
4784
- let i = fo(n, t);
4785
- a.update({
4786
- manifest: r,
4787
- rootElement: i
4788
- }), _({ immediate: !0 });
4789
- }, ee = o.watch(["computedSpreadMode"]).pipe(ke(1), L(() => _())), te = T(n.pipe(L((e) => {
4790
- let t = a.value.rootElement;
4791
- t && (B(t.style, "overflow", "hidden"), u.layout(), p.layout(e));
4792
- }), I(r)), ee).subscribe();
4793
- return nt(document, lo, Vi), {
4794
- id: t,
4795
- context: a,
4796
- spine: p,
4797
- hookManager: i,
4798
- cfi: l,
4799
- navigation: h,
4800
- spineItemsObserver: p.spineItemsObserver,
4801
- spineItemsManager: c,
4802
- layout: _,
4803
- load: v,
4671
+ super.destroy(), this.layoutSubject.complete(), this.value.element.remove();
4672
+ }
4673
+ }, to = ({ manifest: e, cfi: t, ...n }) => {
4674
+ let r = crypto.randomUUID(), i = `${bn}-core-${r}`, a = new m(), o = new m(), s = new Mi(), c = new Ai(e), l = new Ma(n, c), u = new ji(c, l), d = new eo(c, l), f = new $a(c, l, s, d), p = new Di(s, f), h = pa({
4675
+ context: c,
4676
+ settings: l,
4677
+ viewport: d
4678
+ }), g = new ka(c, f), _ = new Ja(c, g, f, h, l, d), v = Oa({
4679
+ cfi: p,
4680
+ context: c,
4681
+ spineItemsManager: f,
4682
+ hookManager: s,
4683
+ spine: _,
4684
+ settings: l,
4685
+ viewport: d
4686
+ }), ee = new Aa(c, g, f, _, h, v.isLocked$, p);
4687
+ v.navigationState$.subscribe(c.bridgeEvent.viewportStateSubject), v.navigation$.subscribe(c.bridgeEvent.navigationSubject), v.position$.subscribe(c.bridgeEvent.positionSubject), g.subscribe(c.bridgeEvent.paginationSubject);
4688
+ let te = (e = {}) => {
4689
+ a.next(e);
4690
+ }, ne = (e) => {
4691
+ if (c.value.rootElement) throw Error("This reader is already mounted. A reader renders a single book, destroy it and create a new reader instead.");
4692
+ R.log("mount", { containerElement: e }), $e(document, i, Ni);
4693
+ let t = io(e, r);
4694
+ c.update({ rootElement: t }), te({ immediate: !0 });
4695
+ }, re = l.watch(["computedSpreadMode"]).pipe(Ee(1), L(() => te())), ie = T(a.pipe(L((e) => {
4696
+ c.value.rootElement && (d.layout(), _.layout(e));
4697
+ }), I(o)), re).subscribe();
4698
+ return {
4699
+ id: r,
4700
+ context: c,
4701
+ spine: _,
4702
+ hookManager: s,
4703
+ cfi: p,
4704
+ navigation: v,
4705
+ spineItemsObserver: _.spineItemsObserver,
4706
+ spineItemsManager: f,
4707
+ layout: te,
4708
+ mount: ne,
4804
4709
  destroy: () => {
4805
- rt(document, lo), te.unsubscribe(), c.destroy(), g.destroy(), o.destroy(), f.destroy(), a.destroy(), h.destroy(), p.destroy(), s.destroy(), r.next(), r.complete(), u.destroy();
4710
+ let e = c.value.rootElement;
4711
+ et(document, i), e && ao(e), ie.unsubscribe(), f.destroy(), ee.destroy(), l.destroy(), g.destroy(), c.destroy(), v.destroy(), _.destroy(), u.destroy(), o.next(), o.complete(), d.destroy();
4806
4712
  },
4807
4713
  pagination: {
4808
4714
  get state() {
4809
- return f.value;
4715
+ return g.value;
4810
4716
  },
4811
4717
  get state$() {
4812
- return f;
4718
+ return g;
4813
4719
  }
4814
4720
  },
4815
- settings: o,
4816
- renderHeadless: (e) => c.get(e)?.renderer.renderHeadless() ?? E(void 0),
4817
- viewport: u,
4818
- viewportState$: a.bridgeEvent.viewportState$,
4819
- viewportFree$: a.bridgeEvent.viewportFree$,
4820
- state$: a.manifest$.pipe(P((e) => e ? "ready" : "idle")),
4821
- features: s,
4822
- $: { destroy$: r }
4721
+ settings: l,
4722
+ renderHeadless: (e) => f.get(e)?.renderer.renderHeadless() ?? D(void 0),
4723
+ viewport: d,
4724
+ viewportState$: c.bridgeEvent.viewportState$,
4725
+ viewportFree$: c.bridgeEvent.viewportFree$,
4726
+ mounted$: c.watch("rootElement").pipe(Se(K), ye()),
4727
+ features: u,
4728
+ $: { destroy$: o }
4823
4729
  };
4824
- }, fo = (e, t) => (e.style.cssText = `
4825
- ${e.style.cssText}
4826
- background-color: white;
4827
- position: relative;
4828
- `, e.classList.add(`${X}-reader`), e.setAttribute(wn, t), e.setAttribute("data-prose-reader-container", t), e), po = ci(jt(fi(At(dt(ri(di(wi(pr(ln(Jn(ft(gt($r(qn(ui(uo)))))))))))))))), mo = (e) => (t) => e(t), ho = 5e3, go = (e, { itemReadinessTimeoutMs: t = ho } = {}) => $n(e).pipe(A((n) => {
4829
- if (n.boundary === "start") return E(n);
4730
+ }, no = `${X}-reader`, ro = "data-prose-reader-container", io = (e, t) => (e.classList.add(no), z(e, xn, t), z(e, ro, t), e), ao = (e) => {
4731
+ e.classList.remove(no), e.removeAttribute(xn), e.removeAttribute(ro);
4732
+ }, oo = ei(Ot(ii(Dt(ct(ri(gi(ur(on(Gn(lt(pt(Yr(Wn(ni(to))))))))))))))), so = (e) => (t) => e(t), co = 5e3, lo = (e, { itemReadinessTimeoutMs: t = co } = {}) => Xn(e).pipe(j((n) => {
4733
+ if (n.boundary === "start") return D(n);
4830
4734
  let r = e.spineItemsManager.items, i = r[r.length - 1];
4831
- return i ? i.value.isReady ? E(n) : i.isReady$.pipe(b(Boolean), x(), w(() => n), t === Infinity ? ue : ve({
4735
+ return i ? i.value.isReady ? D(n) : i.isReady$.pipe(b(Boolean), x(), w(() => n), t === Infinity ? le : ge({
4832
4736
  first: t,
4833
4737
  with: () => u
4834
- }), Qn(e.navigation)) : u;
4835
- }), D());
4738
+ }), Yn(e.navigation)) : u;
4739
+ }), O());
4836
4740
  //#endregion
4837
- export { hn as AbstractSpinePosition, kn as CSS_VAR_ABSOLUTE_VIEWPORT_HEIGHT, On as CSS_VAR_ABSOLUTE_VIEWPORT_WIDTH, Fi as CfiManager, Ri as Context, Gi as ControlledNavigationController, Q as DestroyableClass, Nt as DocumentRenderer, zi as Features, wn as HTML_ATTRIBUTE_DATA_READER_ID, X as HTML_PREFIX, En as HTML_PREFIX_SCROLL_NAVIGATOR, Dn as HTML_PREFIX_SPINE_ITEM, Tn as HTML_PREFIX_VIEWPORT, Cn as HTML_STYLE_PREFIX, Bi as HookManager, fa as InternalNavigator, un as LayoutEntry, ra as Locker, Sn as PAGINATION_UPDATE_AFTER_VIEWPORT_ADJUSTMENT_DEBOUNCE, bn as PROSE_READER_NAMESPACE, Sr as Pages, La as Pagination, Ra as PaginationController, U as ReactiveEntity, Ft as ResourceHandler, gr as ResourcesLocator, yi as ScrollNavigationController, _i as ScrollPosition, za as SettingsManager, oo as Spine, Ua as SpineItem, fn as SpineItemPageLayout, mn as SpineItemPageSpineLayout, q as SpineItemPosition, pn as SpineItemSpineLayout, so as SpineItemsManager, io as SpineItemsObserver, J as SpinePosition, vi as UnboundScrollPosition, dn as UnboundSpineItemPagePosition, Y as UnboundSpinePosition, xn as VIEWPORT_ADJUSTMENT_THROTTLE, co as Viewport, hr as consolidate, po as createReader, Tt as deferIdle, Ct as deferNextResult, Di as generateCfiForSpineItemPage, Oi as generateCfiFromRange, Ti as generateRootCfi, at as getAttributeValueFromString, _t as getBase64FromBlob, ct as getFrameViewportInfo, ki as getItemAnchor, ln as htmlEnhancer, wt as idle, nt as injectCSS, ot as injectCSSToFrame, K as isDefined, $e as isHtmlElement, et as isHtmlTagElement, ji as isRootCfi, a as isShallowEqual, qn as layoutEnhancer, yt as mapKeysTo, go as observeBookBoundaryReached, Dt as observeIntersection, Et as observeMutation, Zn as observeNextSettledNavigation, xt as observeResize, Xn as observeSettledNavigation, $r as paginationEnhancer, Ni as parseCfi, vt as pick, Re as removeAttributeIfPresent, st as removeCSS, V as removeStylePropertyIfPresent, Pi as resolveCfi, mo as rootEnhancer, z as setAttributeIfChanged, ze as setPropertyIfChanged, B as setStylePropertyIfChanged, Wn as shouldEnableSpreadModeForViewport, Gn as shouldUseComputedSpreadModeForViewport, vr as spinePositionToSpineItemSpineLayout, Qn as takeUntilNextNavigationSettled, H as upsertCSSToFrame, lt as waitForFrameLoad, ut as waitForFrameReady, Yn as waitForNavigationSettled, St as waitForSwitch, bt as watchKeys };
4741
+ export { fn as AbstractSpinePosition, En as CSS_VAR_ABSOLUTE_VIEWPORT_HEIGHT, Tn as CSS_VAR_ABSOLUTE_VIEWPORT_WIDTH, Di as CfiManager, Ai as Context, Li as ControlledNavigationController, Q as DestroyableClass, At as DocumentRenderer, ji as Features, xn as HTML_ATTRIBUTE_DATA_READER_ID, X as HTML_PREFIX, Cn as HTML_PREFIX_SCROLL_NAVIGATOR, wn as HTML_PREFIX_SPINE_ITEM, Sn as HTML_PREFIX_VIEWPORT, bn as HTML_STYLE_PREFIX, Mi as HookManager, ia as InternalNavigator, sn as LayoutEntry, Yi as Locker, yn as PAGINATION_UPDATE_AFTER_VIEWPORT_ADJUSTMENT_DEBOUNCE, _n as PROSE_READER_NAMESPACE, yr as Pages, ka as Pagination, Aa as PaginationController, U as ReactiveEntity, Mt as ResourceHandler, pr as ResourcesLocator, di as ScrollNavigationController, li as ScrollPosition, ja as SettingsManager, Ja as Spine, Za as SpineItem, ln as SpineItemPageLayout, dn as SpineItemPageSpineLayout, q as SpineItemPosition, un as SpineItemSpineLayout, $a as SpineItemsManager, Ka as SpineItemsObserver, J as SpinePosition, ui as UnboundScrollPosition, cn as UnboundSpineItemPagePosition, Y as UnboundSpinePosition, vn as VIEWPORT_ADJUSTMENT_THROTTLE, eo as Viewport, fr as consolidate, oo as createReader, St as deferIdle, bt as deferNextResult, yi as generateCfiForSpineItemPage, bi as generateCfiFromRange, _i as generateRootCfi, nt as getAttributeValueFromString, mt as getBase64FromBlob, at as getFrameViewportInfo, xi as getItemAnchor, on as htmlEnhancer, xt as idle, $e as injectCSS, rt as injectCSSToFrame, K as isDefined, Xe as isHtmlElement, Ze as isHtmlTagElement, Ci as isRootCfi, a as isShallowEqual, Wn as layoutEnhancer, gt as mapKeysTo, lo as observeBookBoundaryReached, wt as observeIntersection, Ct as observeMutation, Jn as observeNextSettledNavigation, vt as observeResize, qn as observeSettledNavigation, Yr as paginationEnhancer, Ti as parseCfi, ht as pick, Fe as removeAttributeIfPresent, it as removeCSS, V as removeStylePropertyIfPresent, Ei as resolveCfi, so as rootEnhancer, z as setAttributeIfChanged, Ie as setPropertyIfChanged, B as setStylePropertyIfChanged, Vn as shouldEnableSpreadModeForViewport, Hn as shouldUseComputedSpreadModeForViewport, hr as spinePositionToSpineItemSpineLayout, Yn as takeUntilNextNavigationSettled, H as upsertCSSToFrame, ot as waitForFrameLoad, st as waitForFrameReady, Kn as waitForNavigationSettled, yt as waitForSwitch, _t as watchKeys };
4838
4742
 
4839
4743
  //# sourceMappingURL=index.js.map