@prose-reader/core 1.325.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.
package/dist/index.js CHANGED
@@ -532,14 +532,14 @@ var Tt = class {
532
532
  }
533
533
  return e;
534
534
  }));
535
- return r(document).pipe(M(n.$.destroy$)).subscribe(), n.spineItemsManager.items$.pipe(j((e) => T(...e.map((e) => e.watch("isLoaded").pipe(j(() => {
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
- }))))), M(n.$.destroy$)).subscribe(), n;
539
- }, kt = (e) => e.spine.spineItemsManager.items$.pipe(j((e) => T(...e.map((e) => e.watch("isLoaded").pipe(j(() => {
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
- }))))), N((e) => {
542
+ })))).pipe(N((e) => {
543
543
  e.preventDefault();
544
544
  }), O()), U = class extends f {
545
545
  constructor(e) {
@@ -1252,7 +1252,7 @@ var sn = class {
1252
1252
  loadingElement: i,
1253
1253
  theme: e.theme.get()
1254
1254
  }), t.set(n, i), n.appendChild(i);
1255
- }), 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 }) => {
1256
1256
  if (!n) return;
1257
1257
  let i = t.get(e.containerElement);
1258
1258
  if (!i) return;
@@ -1279,7 +1279,7 @@ var sn = class {
1279
1279
  let { hasViewport: o } = at(a), { width: s } = e.viewport.pageSize, c = i?.renderer.getDocumentFrame();
1280
1280
  o && n === "none" && s < r && c instanceof HTMLIFrameElement && B(c.style, "left", e.context.isRTL() ? "75%" : "25%");
1281
1281
  });
1282
- }, Ln = (e) => e.spineItemsObserver.states$.pipe(N(({ item: e, isReady: t, isDirty: n }) => {
1282
+ }, Ln = (e) => e.spineItemsObserver.itemStateChange$.pipe(N(({ item: e, isReady: t, isDirty: n }) => {
1283
1283
  e.containerElement.dataset.isDirty = n.toString(), e.containerElement.dataset.isReady = t.toString();
1284
1284
  })), Rn = class extends Tt {
1285
1285
  computeOutputSettings(e) {
@@ -1359,7 +1359,7 @@ var sn = class {
1359
1359
  let t = s.spineItemsManager.get(e.id)?.renderer.documentContainer;
1360
1360
  s.settings.values.computedPageTurnMode !== "scrollable" && t && z(t, "tab-index", "0");
1361
1361
  });
1362
- let l = s.spineItemsObserver.states$.pipe(be(({ isReady: e }) => e), L(({ item: e }) => {
1362
+ let l = s.spineItemsObserver.itemStateChange$.pipe(be(({ isReady: e }) => e), L(({ item: e }) => {
1363
1363
  let t = e.renderer.documentContainer;
1364
1364
  t && B(t.style, "opacity", "1");
1365
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(() => {
@@ -2246,9 +2246,9 @@ var sn = class {
2246
2246
  t,
2247
2247
  e.settings.watch(["computedSpreadMode"]).pipe(w((e) => e.computedSpreadMode ?? !1), y()),
2248
2248
  i,
2249
- v([n, e.spineItemsManager.items$]).pipe(w(([e, t]) => Ur({
2250
- items: t,
2251
- pagesState: e
2249
+ n.pipe(w((t) => Ur({
2250
+ items: e.spineItemsManager.items,
2251
+ pagesState: t
2252
2252
  })), y(Wr))
2253
2253
  ]).pipe(w(([e, t, n, r]) => ({
2254
2254
  ...e,
@@ -2370,7 +2370,7 @@ var sn = class {
2370
2370
  r.destroy();
2371
2371
  }));
2372
2372
  }), y()), ei = (e) => (t) => {
2373
- let n = e(t), r, i = n.spineItemsManager.items$.pipe(j((e) => T(...e.map((e) => {
2373
+ let n = e(t), r, i = T(...n.spineItemsManager.items.map((e) => {
2374
2374
  let t = n.spineItemsManager.getSpineItemIndex(e) ?? 0;
2375
2375
  return $r(e).pipe(w((e) => {
2376
2376
  if (e) return {
@@ -2378,7 +2378,7 @@ var sn = class {
2378
2378
  itemIndex: t
2379
2379
  };
2380
2380
  }));
2381
- }))), A(void 0), y(), N((e) => {
2381
+ })).pipe(A(void 0), y(), N((e) => {
2382
2382
  r = e;
2383
2383
  }), k({
2384
2384
  refCount: !0,
@@ -2443,7 +2443,7 @@ var sn = class {
2443
2443
  let e = t?.renderer.getDocumentFrame();
2444
2444
  e && H(e, "prose-reader-theme", i());
2445
2445
  }
2446
- }), n.spineItemsManager.items$.pipe(L((e) => e.map(({ element: e }) => a({ container: e }))), I(n.$.destroy$)).subscribe(), r.pipe(L(() => {
2446
+ }), r.pipe(L(() => {
2447
2447
  o();
2448
2448
  }), I(n.$.destroy$)).subscribe(), {
2449
2449
  ...n,
@@ -4019,195 +4019,14 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4019
4019
  numberOfAdjacentSpineItemToPreLoad: 3
4020
4020
  };
4021
4021
  }
4022
- }, Na = class extends At {
4023
- onUnload() {}
4024
- onCreateDocument() {
4025
- return D(document.createElement("div"));
4026
- }
4027
- onLoadDocument() {
4028
- return u;
4029
- }
4030
- onLayout() {
4031
- return D(void 0);
4032
- }
4033
- onRenderHeadless() {
4034
- return u;
4035
- }
4036
- getDocumentFrame() {}
4037
- }, Pa = class extends Q {
4038
- constructor(e, t, n, i, a, s, c) {
4039
- 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 }) => {
4040
- let i = this.viewport.value.pageSize.width, a = "none", o = t % this.viewport.absoluteViewport.width === 0, s = this.context.manifest, c = Oi(s);
4041
- if (this.settings.values.computedSpreadMode) {
4042
- !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);
4043
- let t = o && e && c, s = r(this.item);
4044
- 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);
4045
- }
4046
- return {
4047
- minimumWidth: i,
4048
- blankPagePosition: a
4049
- };
4050
- }, this.adjustPositionOfElement = ({ right: e, left: t, top: n }) => {
4051
- 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`);
4052
- }, this.updateContainerLayout = ({ minimumWidth: e, edgeX: t, edgeY: n }) => (r) => r.pipe(w((r) => {
4053
- 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);
4054
- return this.lastLayout = {
4055
- width: d,
4056
- height: f,
4057
- pageSize: this.viewport.pageSize
4058
- }, B(this.containerElement.style, "width", `${d}px`), B(this.containerElement.style, "height", `${f}px`), this.settings.values.computedPageTurnDirection === "vertical" ? (this.adjustPositionOfElement({
4059
- top: n,
4060
- left: t
4061
- }), {
4062
- width: d,
4063
- height: f
4064
- }) : (this.adjustPositionOfElement(this.context.isRTL() ? {
4065
- right: t,
4066
- top: 0
4067
- } : {
4068
- left: t,
4069
- top: 0
4070
- }), {
4071
- width: d,
4072
- height: f
4073
- });
4074
- })), this.layout = (e) => {
4075
- let t = bt(this.didLayout$.pipe(x()));
4076
- return this.layoutTriggerSubject.next(e), t();
4077
- };
4078
- let l = this.layoutTriggerSubject.pipe(j(({ spreadPosition: e, horizontalOffset: t, isLastItem: n, edgeX: r, edgeY: i }) => {
4079
- let { blankPagePosition: a, minimumWidth: o } = this.computeLayoutInformation({
4080
- horizontalOffset: t,
4081
- isLastItem: n,
4082
- spreadPosition: e
4083
- });
4084
- this.hookManager.execute("item.onBeforeLayout", {
4085
- blankPagePosition: a,
4086
- item: this.item,
4087
- minimumWidth: o
4088
- });
4089
- let s = this.renderer.layout({
4090
- blankPagePosition: a,
4091
- minPageSpread: o / this.viewport.pageSize.width,
4092
- minimumWidth: o,
4093
- spreadPosition: e
4094
- });
4095
- return T(D({ type: "start" }), s.pipe(this.updateContainerLayout({
4096
- minimumWidth: o,
4097
- edgeX: r,
4098
- edgeY: i
4099
- }), w((e) => (this.hookManager.execute("item.onAfterLayout", {
4100
- blankPagePosition: a,
4101
- item: this.item,
4102
- minimumWidth: o
4103
- }), {
4104
- type: "end",
4105
- data: e
4106
- }))));
4107
- }), O());
4108
- this.didLayout$ = l.pipe(b((e) => e.type === "end"), w((e) => e.data), O());
4109
- }
4110
- validateDimension(e, t, n) {
4111
- if (e <= 0) return n;
4112
- let r = Math.ceil(Math.max(e, n) / t) * t;
4113
- return Math.max(r, t);
4114
- }
4115
- get layoutInfo() {
4116
- let e = this.containerElement.style;
4117
- return {
4118
- width: e.width ? parseFloat(e.width) : 0,
4119
- height: e.height ? parseFloat(e.height) : 0
4120
- };
4121
- }
4122
- }, Fa = class extends U {
4123
- constructor(e, t, n, r, i, a, o) {
4124
- super({
4125
- isLoaded: !1,
4126
- isReady: !1,
4127
- isDirty: !1,
4128
- isError: !1,
4129
- error: void 0
4130
- }), this.item = e, this.parentElement = t, this.context = n, this.settings = r, this.hookManager = i, this.index = a, this.viewport = o, this.load = () => {
4131
- this.renderer.load();
4132
- }, this.unload = () => {
4133
- this.renderer.unload();
4134
- }, this.markDirty = () => {
4135
- this.mergeCompare({ isDirty: !0 });
4136
- }, this.destroy = () => {
4137
- this.isDestroyed || (super.destroy(), this._layout.destroy(), this.renderer.destroy(), this.containerElement.remove());
4138
- }, this.isUsingVerticalWriting = () => !!this.renderer.writingMode?.startsWith("vertical"), this.layout = (e) => this._layout.layout(e), this.containerElement = Ia(t, e, i), t.appendChild(this.containerElement);
4139
- let s = this.settings.values.getRenderer?.(e);
4140
- this.resourcesHandler = new Mt(e, this.settings);
4141
- let c = {
4142
- context: n,
4143
- settings: r,
4144
- hookManager: i,
4145
- item: e,
4146
- containerElement: this.containerElement,
4147
- resourcesHandler: this.resourcesHandler,
4148
- viewport: this.viewport
4149
- };
4150
- this.renderer = s ? s(c) : new Na(c), this._layout = new Pa(e, this.containerElement, n, i, this.renderer, this.settings, this.viewport);
4151
- let l = this.renderer.state$.pipe(L(({ state: e, error: t }) => {
4152
- this.mergeCompare({
4153
- isLoaded: e === "loaded",
4154
- isError: e === "error",
4155
- error: e === "error" ? t : void 0
4156
- });
4157
- }));
4158
- this.didLayout$ = this._layout.didLayout$.pipe(L(() => {
4159
- this.mergeCompare({
4160
- isDirty: !1,
4161
- isReady: this.renderer.value.state === "loaded"
4162
- });
4163
- }), we()), T(l, this.didLayout$).pipe(I(this.destroy$)).subscribe();
4164
- }
4165
- get isReady$() {
4166
- return this.watch("isReady");
4167
- }
4168
- get element() {
4169
- return this.containerElement;
4170
- }
4171
- get readingDirection() {
4172
- return this.renderer.readingDirection;
4173
- }
4174
- get loaded$() {
4175
- return this.renderer.loaded$;
4176
- }
4177
- get unloaded$() {
4178
- return this.renderer.unloaded$;
4179
- }
4180
- get renditionLayout() {
4181
- return this.renderer.renditionLayout;
4182
- }
4183
- get layoutInfo() {
4184
- return this._layout.layoutInfo;
4185
- }
4186
- get numberOfPages() {
4187
- return ua({
4188
- isUsingVerticalWriting: !!this.isUsingVerticalWriting(),
4189
- itemHeight: this._layout.layoutInfo.height,
4190
- itemWidth: this._layout.layoutInfo.width,
4191
- pageWidth: this.viewport.pageSize.width,
4192
- pageHeight: this.viewport.pageSize.height,
4193
- pageTurnDirection: this.settings.values.computedPageTurnDirection,
4194
- pageTurnMode: this.settings.values.pageTurnMode
4195
- });
4196
- }
4197
- }, Ia = (e, t, n) => {
4198
- let r = e.ownerDocument.createElement("div");
4199
- return r.setAttribute(`data-${wn}`, ""), 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", {
4200
- element: r,
4201
- item: t
4202
- }), r;
4203
- }, La = class extends Q {
4022
+ }, Na = class extends Q {
4204
4023
  constructor(e, n, r, i, a, o) {
4205
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());
4206
4025
  let s = this.forcedOpenSubject.pipe(w((e) => Array.from(e.keys()).sort((e, t) => e - t)), y(t), k({
4207
4026
  bufferSize: 1,
4208
4027
  refCount: !0
4209
4028
  }));
4210
- T(this.context.bridgeEvent.position$, this.viewport.layout$, this.spineLayout.layout$, s, i.watch(["numberOfAdjacentSpineItemToPreLoad"])).pipe(ne(100), yt(this.context.bridgeEvent.viewportFree$), P(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]) => {
4211
4030
  let { numberOfAdjacentSpineItemToPreLoad: a } = i.values, { beginIndex: o = 0, endIndex: s = 0 } = r.getVisibleSpineItemsFromPosition({
4212
4031
  position: e,
4213
4032
  threshold: {
@@ -4236,13 +4055,13 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4236
4055
  destroy() {
4237
4056
  super.destroy(), this.forcedOpenSubject.complete();
4238
4057
  }
4239
- }, Ra = (e, t, n) => {
4058
+ }, Pa = (e, t, n) => {
4240
4059
  let r = (n.width - t.width) / 2, i = (n.height - t.height) / 2;
4241
4060
  return new Y({
4242
4061
  x: e.x - r,
4243
4062
  y: e.y - i
4244
4063
  });
4245
- }, za = class e extends DOMRect {
4064
+ }, Fa = class e extends DOMRect {
4246
4065
  constructor(...e) {
4247
4066
  super(...e), this.__symbol = Symbol("ViewportPosition");
4248
4067
  }
@@ -4254,15 +4073,15 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4254
4073
  let r = t;
4255
4074
  return new e(r.x, r.y, r.width, r.height);
4256
4075
  }
4257
- }, Ba = class {
4076
+ }, Ia = class {
4258
4077
  constructor({ width: e, height: t }) {
4259
4078
  this.__symbol = Symbol("AbsoluteViewport"), this.width = e, this.height = t;
4260
4079
  }
4261
- }, Va = class {
4080
+ }, La = class {
4262
4081
  constructor({ width: e, height: t }) {
4263
4082
  this.__symbol = Symbol("RelativeViewport"), this.width = e, this.height = t;
4264
4083
  }
4265
- }, Ha = ({ pageIndex: e, spineItemOrId: t, spineItemsManager: n }) => {
4084
+ }, Ra = ({ pageIndex: e, spineItemOrId: t, spineItemsManager: n }) => {
4266
4085
  let r = n.items, i = n.get(t);
4267
4086
  if (!i) return;
4268
4087
  let { currentAbsolutePage: a } = r.reduce((t, n) => {
@@ -4280,45 +4099,45 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4280
4099
  found: !1
4281
4100
  });
4282
4101
  return a;
4283
- }, Ua = ({ itemHeight: e, itemWidth: t, visibleWidthOfItem: n, visibleHeightOfItem: r, threshold: i }) => {
4102
+ }, za = ({ itemHeight: e, itemWidth: t, visibleWidthOfItem: n, visibleHeightOfItem: r, threshold: i }) => {
4284
4103
  let a = n / t, o = r / e;
4285
4104
  return i.type === "percentage" ? a >= i.value && o >= i.value : n >= i.value && r >= i.value;
4286
- }, Wa = ({ visibleWidthOfItem: e, visibleHeightOfItem: t, threshold: n, viewportPosition: r }) => {
4105
+ }, Ba = ({ visibleWidthOfItem: e, visibleHeightOfItem: t, threshold: n, viewportPosition: r }) => {
4287
4106
  let i = e / r.width, a = t / r.height;
4288
4107
  return n.type === "percentage" ? a >= n.value && i >= n.value : t >= n.value && e >= n.value;
4289
- }, Ga = ({ 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 }) => {
4290
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));
4291
4110
  if (p <= 0 || m <= 0) return { visible: !1 };
4292
- let h = Wa({
4111
+ let h = Ba({
4293
4112
  threshold: o,
4294
4113
  visibleHeightOfItem: m,
4295
4114
  visibleWidthOfItem: p,
4296
4115
  viewportPosition: s
4297
4116
  });
4298
- return c ? { visible: h } : { visible: Ua({
4117
+ return c ? { visible: h } : { visible: za({
4299
4118
  itemHeight: a,
4300
4119
  itemWidth: i,
4301
4120
  threshold: o,
4302
4121
  visibleHeightOfItem: m,
4303
4122
  visibleWidthOfItem: p
4304
4123
  }) || h };
4305
- }, Ka = ({ position: e, spineItemsManager: t, spineLayout: n }) => {
4124
+ }, Ha = ({ position: e, spineItemsManager: t, spineLayout: n }) => {
4306
4125
  let r = t.items.find((t) => {
4307
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;
4308
4127
  return s && c;
4309
4128
  });
4310
4129
  return e.x === 0 && !r ? t.items[0] : r;
4311
- }, qa = ({ spineItemPosition: e, itemLayout: { left: t, top: n } }) => new J({
4130
+ }, Ua = ({ spineItemPosition: e, itemLayout: { left: t, top: n } }) => new J({
4312
4131
  x: t + e.x,
4313
4132
  y: n + e.y
4314
- }), Ja = ({ position: e, threshold: t, restrictToScreen: n, spineItemsManager: r, spineLayout: i, useAbsoluteViewport: a = !0, viewport: o }) => {
4315
- let s = Ka({
4133
+ }), Wa = ({ position: e, threshold: t, restrictToScreen: n, spineItemsManager: r, spineLayout: i, useAbsoluteViewport: a = !0, viewport: o }) => {
4134
+ let s = Ha({
4316
4135
  position: e,
4317
4136
  spineItemsManager: r,
4318
4137
  spineLayout: i
4319
- }) || r.get(0), c = a ? o.absoluteViewport : o.relativeViewport, l = Ra(e, o.absoluteViewport, c), u = za.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 = [];
4320
4139
  for (let e of r.items) {
4321
- let { visible: r } = Ga({
4140
+ let { visible: r } = Va({
4322
4141
  itemPosition: i.getSpineItemSpineLayoutInfo(e),
4323
4142
  threshold: t,
4324
4143
  viewportPosition: u,
@@ -4333,14 +4152,14 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4333
4152
  beginIndex: m ?? 0,
4334
4153
  endIndex: h ?? 0
4335
4154
  };
4336
- }, Ya = ({ 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 }) => {
4337
4156
  let o = (e, t) => {
4338
4157
  let { left: n, top: r } = i.getSpineItemSpineLayoutInfo(t);
4339
4158
  return new q({
4340
4159
  x: Math.max(e.x - n, 0),
4341
4160
  y: Math.max(e.y - r, 0)
4342
4161
  });
4343
- }, s = (e) => qa({
4162
+ }, s = (e) => Ua({
4344
4163
  spineItemPosition: new q({
4345
4164
  x: 0,
4346
4165
  y: 0
@@ -4354,7 +4173,7 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4354
4173
  return n.getSpineItemPageIndexFromNode(t, r || 0, i);
4355
4174
  }, u = ({ position: e, threshold: t, spineItem: r, restrictToScreen: a, useAbsoluteViewport: o = !0, viewport: s }) => {
4356
4175
  let c = r.numberOfPages, l = Array.from(Array(c)).map((e, t) => {
4357
- let a = qa({
4176
+ let a = Ua({
4358
4177
  spineItemPosition: n.getSpineItemPositionFromPageIndex({
4359
4178
  pageIndex: t,
4360
4179
  spineItem: r
@@ -4373,8 +4192,8 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4373
4192
  }
4374
4193
  };
4375
4194
  }).reduce((n, { absolutePosition: r, index: i }) => {
4376
- let c = o ? s.absoluteViewport : s.relativeViewport, l = Ra(e, s.absoluteViewport, c), { visible: u } = Ga({
4377
- viewportPosition: za.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),
4378
4197
  restrictToScreen: a,
4379
4198
  threshold: t,
4380
4199
  itemPosition: r
@@ -4387,11 +4206,11 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4387
4206
  };
4388
4207
  };
4389
4208
  return {
4390
- getSpinePositionFromSpineItemPosition: ({ spineItem: e, spineItemPosition: t }) => qa({
4209
+ getSpinePositionFromSpineItemPosition: ({ spineItem: e, spineItemPosition: t }) => Ua({
4391
4210
  itemLayout: i.getSpineItemSpineLayoutInfo(e),
4392
4211
  spineItemPosition: t
4393
4212
  }),
4394
- _getAbsolutePageIndexFromPageIndex: (n) => Ha({
4213
+ _getAbsolutePageIndexFromPageIndex: (n) => Ra({
4395
4214
  ...n,
4396
4215
  context: t,
4397
4216
  settings: r,
@@ -4399,7 +4218,7 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4399
4218
  spineLayout: i
4400
4219
  }),
4401
4220
  getSpineItemPagePositionFromSpinePosition: (t) => {
4402
- let r = Ka({
4221
+ let r = Ha({
4403
4222
  position: t,
4404
4223
  spineItemsManager: e,
4405
4224
  spineLayout: i
@@ -4420,14 +4239,14 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4420
4239
  },
4421
4240
  getSpinePositionFromSpineItem: s,
4422
4241
  getSpineItemPositionFromSpinePosition: o,
4423
- getSpineItemFromPosition: (t) => Ka({
4242
+ getSpineItemFromPosition: (t) => Ha({
4424
4243
  position: t,
4425
4244
  spineItemsManager: e,
4426
4245
  spineLayout: i
4427
4246
  }),
4428
4247
  getSpineItemFromIframe: c,
4429
4248
  getSpineItemPageIndexFromNode: l,
4430
- getVisibleSpineItemsFromPosition: (t) => Ja({
4249
+ getVisibleSpineItemsFromPosition: (t) => Wa({
4431
4250
  settings: r,
4432
4251
  spineItemsManager: e,
4433
4252
  spineLayout: i,
@@ -4451,17 +4270,19 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4451
4270
  });
4452
4271
  }
4453
4272
  };
4454
- }, Xa = class extends Q {
4273
+ }, Ka = class extends Q {
4455
4274
  constructor(e) {
4456
- super(), this.spineItemsManager = e, this.states$ = this.spineItemsManager.items$.pipe(j((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) => ({
4457
4278
  item: e,
4458
4279
  ...t
4459
- })), y(o))))), O()), this.itemResize$ = this.spineItemsManager.items$.pipe(j((e) => T(...e.map((e) => vt(e.element).pipe(w((t) => ({
4280
+ })), y(o)))).pipe(O()), this.itemResize$ = T(...t.map((e) => vt(e.element).pipe(w((t) => ({
4460
4281
  entries: t,
4461
4282
  item: e
4462
- })))))), O()), this.itemLoad$ = this.spineItemsManager.items$.pipe(j((e) => T(...e.map((e) => e.loaded$.pipe(w(() => e))))), O()), this.itemUnload$ = this.spineItemsManager.items$.pipe(j((e) => T(...e.map((e) => e.unloaded$.pipe(w(() => e))))), O());
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());
4463
4284
  }
4464
- }, Za = class extends Q {
4285
+ }, qa = class extends Q {
4465
4286
  constructor(e, t, n, r, i) {
4466
4287
  super(), this.spineItemsManager = e, this.spineItemsObserver = t, this.context = n, this.settings = r, this.viewport = i, this.externalLayoutTrigger = new m(), this.spineItemsRelativeLayouts = [];
4467
4288
  let a = T(t.itemLoad$, t.itemUnload$).pipe(w(() => ({ immediate: !1 }))), o = T(this.externalLayoutTrigger, a);
@@ -4551,24 +4372,25 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4551
4372
  y: r
4552
4373
  });
4553
4374
  }
4554
- }, Qa = class extends Q {
4555
- constructor(e, t, n, r, i, a, o) {
4556
- 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 Xa(n), this.spineLayout = new Za(n, this.spineItemsObserver, e, i, o), this.locator = Ya({
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({
4557
4378
  context: e,
4558
4379
  spineItemsManager: n,
4559
4380
  spineItemLocator: r,
4560
4381
  settings: i,
4561
4382
  spineLayout: this.spineLayout,
4562
- viewport: o
4563
- }), this.spineItemsLoader = new La(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);
4564
- let s = e.watch("rootElement").pipe(be(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) => {
4565
4386
  let t = e.ownerDocument.createElement("div");
4566
4387
  t.style.cssText = "\n height: 100%;\n position: relative;\n ", t.className = `${X}-spine`, this.elementSubject.next(t);
4567
4388
  }));
4568
4389
  T(this.element$.pipe(be(K), L((e) => {
4569
- let t = this.context.manifest.spineItems.map((t, n) => new Fa(t, e, this.context, this.settings, this.hookManager, n, this.viewport));
4570
- this.spineItemsManager.addMany(t);
4571
- })), s).pipe(I(this.destroy$)).subscribe();
4390
+ this.spineItemsManager.items.forEach((t) => {
4391
+ t.attach(e);
4392
+ });
4393
+ })), o).pipe(I(this.destroy$)).subscribe();
4572
4394
  }
4573
4395
  get element() {
4574
4396
  return this.elementSubject.getValue();
@@ -4585,34 +4407,207 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4585
4407
  destroy() {
4586
4408
  super.destroy(), this.pages.destroy(), this.spineItemsLoader.destroy(), this.elementSubject.getValue()?.remove(), this.elementSubject.complete();
4587
4409
  }
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;
4588
4593
  }, $a = class extends Q {
4589
- constructor(e, t) {
4590
- super(), this.context = e, this.settings = t, this.orderedSpineItemsSubject = new l([]), this.items$ = this.orderedSpineItemsSubject.asObservable();
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));
4591
4596
  }
4592
4597
  get(e) {
4593
- 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;
4594
4599
  }
4595
4600
  comparePositionOf(e, t) {
4596
4601
  let n = this.getSpineItemIndex(e) ?? 0, r = this.getSpineItemIndex(t) ?? 0;
4597
4602
  return n > r ? "after" : n === r ? "same" : "before";
4598
4603
  }
4599
4604
  getSpineItemIndex(e) {
4600
- return (e instanceof Fa ? e : this.get(e))?.index;
4601
- }
4602
- addMany(e) {
4603
- this.orderedSpineItemsSubject.next([...this.orderedSpineItemsSubject.getValue(), ...e]);
4604
- }
4605
- get items() {
4606
- return this.orderedSpineItemsSubject.value;
4607
- }
4608
- destroyItems() {
4609
- let e = this.orderedSpineItemsSubject.value;
4610
- e.forEach((e) => {
4611
- e.destroy();
4612
- }), e.length && this.orderedSpineItemsSubject.next([]);
4605
+ return (e instanceof Za ? e : this.get(e))?.index;
4613
4606
  }
4614
4607
  destroy() {
4615
- this.destroyItems(), super.destroy();
4608
+ this.items.forEach((e) => {
4609
+ e.destroy();
4610
+ }), super.destroy();
4616
4611
  }
4617
4612
  }, eo = class extends U {
4618
4613
  constructor(e, t) {
@@ -4653,7 +4648,7 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4653
4648
  }), this.layoutSubject.next();
4654
4649
  }
4655
4650
  get absoluteViewport() {
4656
- return new Ba({
4651
+ return new Ia({
4657
4652
  width: this.value.width,
4658
4653
  height: this.value.height
4659
4654
  });
@@ -4667,7 +4662,7 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4667
4662
  }
4668
4663
  get relativeViewport() {
4669
4664
  let e = this.absoluteViewport, t = this.scaleFactor;
4670
- return new Va({
4665
+ return new La({
4671
4666
  width: e.width / t,
4672
4667
  height: e.height / t
4673
4668
  });
@@ -4676,19 +4671,19 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4676
4671
  super.destroy(), this.layoutSubject.complete(), this.value.element.remove();
4677
4672
  }
4678
4673
  }, to = ({ manifest: e, cfi: t, ...n }) => {
4679
- 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 $a(c, l), f = new Di(s, d), p = new eo(c, l), h = pa({
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({
4680
4675
  context: c,
4681
4676
  settings: l,
4682
- viewport: p
4683
- }), g = new ka(c, d), _ = new Qa(c, g, d, h, l, s, p), v = Oa({
4684
- cfi: f,
4677
+ viewport: d
4678
+ }), g = new ka(c, f), _ = new Ja(c, g, f, h, l, d), v = Oa({
4679
+ cfi: p,
4685
4680
  context: c,
4686
- spineItemsManager: d,
4681
+ spineItemsManager: f,
4687
4682
  hookManager: s,
4688
4683
  spine: _,
4689
4684
  settings: l,
4690
- viewport: p
4691
- }), ee = new Aa(c, g, d, _, h, v.isLocked$, f);
4685
+ viewport: d
4686
+ }), ee = new Aa(c, g, f, _, h, v.isLocked$, p);
4692
4687
  v.navigationState$.subscribe(c.bridgeEvent.viewportStateSubject), v.navigation$.subscribe(c.bridgeEvent.navigationSubject), v.position$.subscribe(c.bridgeEvent.positionSubject), g.subscribe(c.bridgeEvent.paginationSubject);
4693
4688
  let te = (e = {}) => {
4694
4689
  a.next(e);
@@ -4698,22 +4693,22 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4698
4693
  let t = io(e, r);
4699
4694
  c.update({ rootElement: t }), te({ immediate: !0 });
4700
4695
  }, re = l.watch(["computedSpreadMode"]).pipe(Ee(1), L(() => te())), ie = T(a.pipe(L((e) => {
4701
- c.value.rootElement && (p.layout(), _.layout(e));
4696
+ c.value.rootElement && (d.layout(), _.layout(e));
4702
4697
  }), I(o)), re).subscribe();
4703
4698
  return {
4704
4699
  id: r,
4705
4700
  context: c,
4706
4701
  spine: _,
4707
4702
  hookManager: s,
4708
- cfi: f,
4703
+ cfi: p,
4709
4704
  navigation: v,
4710
4705
  spineItemsObserver: _.spineItemsObserver,
4711
- spineItemsManager: d,
4706
+ spineItemsManager: f,
4712
4707
  layout: te,
4713
4708
  mount: ne,
4714
4709
  destroy: () => {
4715
4710
  let e = c.value.rootElement;
4716
- et(document, i), e && ao(e), ie.unsubscribe(), d.destroy(), ee.destroy(), l.destroy(), g.destroy(), c.destroy(), v.destroy(), _.destroy(), u.destroy(), o.next(), o.complete(), p.destroy();
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();
4717
4712
  },
4718
4713
  pagination: {
4719
4714
  get state() {
@@ -4724,8 +4719,8 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4724
4719
  }
4725
4720
  },
4726
4721
  settings: l,
4727
- renderHeadless: (e) => d.get(e)?.renderer.renderHeadless() ?? D(void 0),
4728
- viewport: p,
4722
+ renderHeadless: (e) => f.get(e)?.renderer.renderHeadless() ?? D(void 0),
4723
+ viewport: d,
4729
4724
  viewportState$: c.bridgeEvent.viewportState$,
4730
4725
  viewportFree$: c.bridgeEvent.viewportFree$,
4731
4726
  mounted$: c.watch("rootElement").pipe(Se(K), ye()),
@@ -4743,6 +4738,6 @@ var ii = (e) => (t) => e(t), ai = (e, t, n) => {
4743
4738
  }), Yn(e.navigation)) : u;
4744
4739
  }), O());
4745
4740
  //#endregion
4746
- 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, Qa as Spine, Fa as SpineItem, ln as SpineItemPageLayout, dn as SpineItemPageSpineLayout, q as SpineItemPosition, un as SpineItemSpineLayout, $a as SpineItemsManager, Xa 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 };
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 };
4747
4742
 
4748
4743
  //# sourceMappingURL=index.js.map