@prose-reader/core 1.368.0 → 1.370.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
@@ -3865,66 +3865,71 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
3865
3865
  update(e) {
3866
3866
  this.mergeCompare(e);
3867
3867
  }
3868
- }, ja = class extends Q {
3869
- constructor(e, t, n, r, i, a, o) {
3870
- super(), this.context = e, this.pagination = t, this.spineItemsManager = n, this.spine = r, this.spineItemLocator = i, this.isNavigationLocked$ = a, this.cfi = o;
3871
- let s = E(this.context.bridgeEvent.navigation$, r.layout$).pipe(A(() => {
3872
- let e = ({ spineItem: e, position: t }) => this.spine.locator.getVisiblePagesFromViewportPosition({
3873
- spineItem: e,
3874
- position: t,
3875
- threshold: {
3876
- type: "percentage",
3877
- value: .5
3878
- }
3879
- });
3880
- return this.isNavigationLocked$.pipe(x((e) => !e), he(1), N(this.context.bridgeEvent.navigation$), M(([, t]) => {
3881
- let { position: n } = t, r = this.pagination.value, { beginIndex: i, endIndex: a } = this.spine.locator.getVisibleSpineItemsFromPosition({
3882
- position: n,
3883
- threshold: {
3884
- type: "percentage",
3885
- value: .5
3886
- }
3887
- }) ?? {}, o = this.spineItemsManager.get(i), s = this.spineItemsManager.get(a);
3888
- if (!o || !s) return;
3889
- let c = r.beginCfi, l = r.endCfi, { beginPageIndex: u = 0 } = e({
3890
- spineItem: o,
3891
- position: n
3892
- }) ?? {}, { endPageIndex: d = 0 } = e({
3893
- spineItem: s,
3894
- position: n
3895
- }) ?? {}, f = c === void 0 || this.cfi.isRootCfi(c) || r.beginSpineItemIndex !== i, p = r.endSpineItemIndex !== a || l === void 0 || this.cfi.isRootCfi(l), m = f ? this.cfi.generateRootCfi(o.item) : c, h = p ? this.cfi.generateRootCfi(s.item) : l, g = o.numberOfPages, _ = s.numberOfPages;
3896
- this.pagination.update({
3897
- beginCfi: m,
3898
- beginNumberOfPagesInSpineItem: g,
3899
- beginPageIndexInSpineItem: u,
3900
- beginSpineItemIndex: i,
3901
- endCfi: h,
3902
- endNumberOfPagesInSpineItem: _,
3903
- endPageIndexInSpineItem: d,
3904
- endSpineItemIndex: a,
3905
- navigationId: t.id
3906
- });
3907
- }));
3908
- }));
3909
- E(s, s.pipe(yt(this.context.bridgeEvent.viewportFree$), M(() => {
3910
- let { beginSpineItemIndex: e, endSpineItemIndex: t, beginPageIndexInSpineItem: n, endPageIndexInSpineItem: r } = this.pagination.value;
3911
- if (n === void 0 || r === void 0 || e === void 0 || t === void 0) return;
3912
- let i = this.spineItemsManager.get(e), a = this.spineItemsManager.get(t);
3913
- if (i === void 0 || a === void 0) return;
3914
- let o = this.spine.pages.fromSpineItemPageIndex(i, n), s = this.spine.pages.fromSpineItemPageIndex(a, r);
3915
- this.pagination.update({
3916
- beginCfi: o?.firstVisibleNode ? this.cfi.generateCfiForSpineItemPage({
3917
- spineItem: i.item,
3918
- pageNode: o?.firstVisibleNode
3919
- }) : this.cfi.generateRootCfi(i.item),
3920
- endCfi: s?.firstVisibleNode ? this.cfi.generateCfiForSpineItemPage({
3921
- spineItem: a.item,
3922
- pageNode: s?.firstVisibleNode
3923
- }) : this.cfi.generateRootCfi(a.item)
3924
- });
3925
- }))).pipe(j(this.destroy$)).subscribe();
3926
- }
3868
+ }, ja = {
3869
+ type: "percentage",
3870
+ value: .5
3927
3871
  }, Ma = class extends Q {
3872
+ constructor(e, t, n, r, i, a) {
3873
+ super(), this.context = e, this.pagination = t, this.spineItemsManager = n, this.spine = r, this.isNavigationLocked$ = i, this.cfi = a;
3874
+ let o = E(this.context.bridgeEvent.navigation$, r.layout$).pipe(A(() => this.isNavigationLocked$.pipe(x((e) => !e), he(1), N(this.context.bridgeEvent.navigation$), T(([, e]) => this.resolveMetrics(e) ?? this.pagination.value))), O());
3875
+ E(o, o.pipe(yt(this.context.bridgeEvent.viewportFree$), T((e) => this.resolvePositions(e)), x((e) => e !== void 0))).pipe(j(this.destroy$)).subscribe((e) => {
3876
+ this.pagination.update(e);
3877
+ });
3878
+ }
3879
+ getVisiblePages(e, t) {
3880
+ return this.spine.locator.getVisiblePagesFromViewportPosition({
3881
+ spineItem: e,
3882
+ position: t,
3883
+ threshold: ja
3884
+ });
3885
+ }
3886
+ resolveMetrics(e) {
3887
+ let { position: t } = e, n = this.pagination.value, { beginIndex: r, endIndex: i } = this.spine.locator.getVisibleSpineItemsFromPosition({
3888
+ position: t,
3889
+ threshold: ja
3890
+ }) ?? {}, a = this.spineItemsManager.get(r), o = this.spineItemsManager.get(i);
3891
+ if (!a || !o) return;
3892
+ let { beginPageIndex: s = 0 } = this.getVisiblePages(a, t) ?? {}, { endPageIndex: c = 0 } = this.getVisiblePages(o, t) ?? {};
3893
+ return {
3894
+ beginCfi: this.carryOverCfi(a, r, {
3895
+ cfi: n.beginCfi,
3896
+ spineItemIndex: n.beginSpineItemIndex
3897
+ }),
3898
+ beginNumberOfPagesInSpineItem: a.numberOfPages,
3899
+ beginPageIndexInSpineItem: s,
3900
+ beginSpineItemIndex: r,
3901
+ endCfi: this.carryOverCfi(o, i, {
3902
+ cfi: n.endCfi,
3903
+ spineItemIndex: n.endSpineItemIndex
3904
+ }),
3905
+ endNumberOfPagesInSpineItem: o.numberOfPages,
3906
+ endPageIndexInSpineItem: c,
3907
+ endSpineItemIndex: i,
3908
+ navigationId: e.id
3909
+ };
3910
+ }
3911
+ carryOverCfi(e, t, n) {
3912
+ return n.cfi !== void 0 && !this.cfi.isRootCfi(n.cfi) && n.spineItemIndex === t ? n.cfi : this.cfi.generateRootCfi(e.item);
3913
+ }
3914
+ resolvePositions(e) {
3915
+ let { beginSpineItemIndex: t, endSpineItemIndex: n, beginPageIndexInSpineItem: r, endPageIndexInSpineItem: i } = e;
3916
+ if (r === void 0 || i === void 0 || t === void 0 || n === void 0) return;
3917
+ let a = this.spineItemsManager.get(t), o = this.spineItemsManager.get(n);
3918
+ if (!a || !o) return;
3919
+ let s = this.spine.pages.fromSpineItemPageIndex(a, r), c = this.spine.pages.fromSpineItemPageIndex(o, i);
3920
+ return {
3921
+ ...e,
3922
+ beginCfi: this.resolveCfi(a, s),
3923
+ endCfi: this.resolveCfi(o, c)
3924
+ };
3925
+ }
3926
+ resolveCfi(e, t) {
3927
+ return t?.firstVisibleNode ? this.cfi.generateCfiForSpineItemPage({
3928
+ spineItem: e.item,
3929
+ pageNode: t.firstVisibleNode
3930
+ }) : this.cfi.generateRootCfi(e.item);
3931
+ }
3932
+ }, Na = class extends Q {
3928
3933
  constructor(e) {
3929
3934
  super();
3930
3935
  let t = {
@@ -3965,7 +3970,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
3965
3970
  destroy() {
3966
3971
  super.destroy(), this.outputSettingsUpdateSubject.complete();
3967
3972
  }
3968
- }, Na = class extends Ma {
3973
+ }, Pa = class extends Na {
3969
3974
  constructor(e, t) {
3970
3975
  super(e), this.context = t, t.watch(["hasVerticalWriting"]).pipe(M(() => this.update(this.values)), j(this.destroy$)).subscribe();
3971
3976
  }
@@ -4005,7 +4010,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4005
4010
  numberOfAdjacentSpineItemToPreLoad: 3
4006
4011
  };
4007
4012
  }
4008
- }, Pa = class extends Q {
4013
+ }, Fa = class extends Q {
4009
4014
  constructor(e, n, r, i, a, o) {
4010
4015
  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());
4011
4016
  let s = this.forcedOpenSubject.pipe(T((e) => Array.from(e.keys()).sort((e, t) => e - t)), b(t), k({
@@ -4041,13 +4046,13 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4041
4046
  destroy() {
4042
4047
  super.destroy(), this.forcedOpenSubject.complete();
4043
4048
  }
4044
- }, Fa = (e, t, n) => {
4049
+ }, Ia = (e, t, n) => {
4045
4050
  let r = (n.width - t.width) / 2, i = (n.height - t.height) / 2;
4046
4051
  return new Y({
4047
4052
  x: e.x - r,
4048
4053
  y: e.y - i
4049
4054
  });
4050
- }, Ia = class e extends DOMRect {
4055
+ }, La = class e extends DOMRect {
4051
4056
  constructor(...e) {
4052
4057
  super(...e), this.__symbol = Symbol("ViewportPosition");
4053
4058
  }
@@ -4059,15 +4064,15 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4059
4064
  let r = t;
4060
4065
  return new e(r.x, r.y, r.width, r.height);
4061
4066
  }
4062
- }, La = class {
4067
+ }, Ra = class {
4063
4068
  constructor({ width: e, height: t }) {
4064
4069
  this.__symbol = Symbol("AbsoluteViewport"), this.width = e, this.height = t;
4065
4070
  }
4066
- }, Ra = class {
4071
+ }, za = class {
4067
4072
  constructor({ width: e, height: t }) {
4068
4073
  this.__symbol = Symbol("RelativeViewport"), this.width = e, this.height = t;
4069
4074
  }
4070
- }, za = ({ pageIndex: e, spineItemOrId: t, spineItemsManager: n }) => {
4075
+ }, Ba = ({ pageIndex: e, spineItemOrId: t, spineItemsManager: n }) => {
4071
4076
  let r = n.items, i = n.get(t);
4072
4077
  if (!i) return;
4073
4078
  let { currentAbsolutePage: a } = r.reduce((t, n) => {
@@ -4085,45 +4090,45 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4085
4090
  found: !1
4086
4091
  });
4087
4092
  return a;
4088
- }, Ba = ({ itemHeight: e, itemWidth: t, visibleWidthOfItem: n, visibleHeightOfItem: r, threshold: i }) => {
4093
+ }, Va = ({ itemHeight: e, itemWidth: t, visibleWidthOfItem: n, visibleHeightOfItem: r, threshold: i }) => {
4089
4094
  let a = n / t, o = r / e;
4090
4095
  return i.type === "percentage" ? a >= i.value && o >= i.value : n >= i.value && r >= i.value;
4091
- }, Va = ({ visibleWidthOfItem: e, visibleHeightOfItem: t, threshold: n, viewportPosition: r }) => {
4096
+ }, Ha = ({ visibleWidthOfItem: e, visibleHeightOfItem: t, threshold: n, viewportPosition: r }) => {
4092
4097
  let i = e / r.width, a = t / r.height;
4093
4098
  return n.type === "percentage" ? a >= n.value && i >= n.value : t >= n.value && e >= n.value;
4094
- }, Ha = ({ itemPosition: { bottom: e, left: t, right: n, top: r, width: i, height: a }, threshold: o, viewportPosition: s, restrictToScreen: c }) => {
4099
+ }, Ua = ({ itemPosition: { bottom: e, left: t, right: n, top: r, width: i, height: a }, threshold: o, viewportPosition: s, restrictToScreen: c }) => {
4095
4100
  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));
4096
4101
  if (p <= 0 || m <= 0) return { visible: !1 };
4097
- let h = Va({
4102
+ let h = Ha({
4098
4103
  threshold: o,
4099
4104
  visibleHeightOfItem: m,
4100
4105
  visibleWidthOfItem: p,
4101
4106
  viewportPosition: s
4102
4107
  });
4103
- return c ? { visible: h } : { visible: Ba({
4108
+ return c ? { visible: h } : { visible: Va({
4104
4109
  itemHeight: a,
4105
4110
  itemWidth: i,
4106
4111
  threshold: o,
4107
4112
  visibleHeightOfItem: m,
4108
4113
  visibleWidthOfItem: p
4109
4114
  }) || h };
4110
- }, Ua = ({ position: e, spineItemsManager: t, spineLayout: n }) => {
4115
+ }, Wa = ({ position: e, spineItemsManager: t, spineLayout: n }) => {
4111
4116
  let r = t.items.find((t) => {
4112
4117
  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;
4113
4118
  return s && c;
4114
4119
  });
4115
4120
  return e.x === 0 && !r ? t.items[0] : r;
4116
- }, Wa = ({ spineItemPosition: e, itemLayout: { left: t, top: n } }) => new J({
4121
+ }, Ga = ({ spineItemPosition: e, itemLayout: { left: t, top: n } }) => new J({
4117
4122
  x: t + e.x,
4118
4123
  y: n + e.y
4119
- }), Ga = ({ position: e, threshold: t, restrictToScreen: n, spineItemsManager: r, spineLayout: i, useAbsoluteViewport: a = !0, viewport: o }) => {
4120
- let s = Ua({
4124
+ }), Ka = ({ position: e, threshold: t, restrictToScreen: n, spineItemsManager: r, spineLayout: i, useAbsoluteViewport: a = !0, viewport: o }) => {
4125
+ let s = Wa({
4121
4126
  position: e,
4122
4127
  spineItemsManager: r,
4123
4128
  spineLayout: i
4124
- }) || r.get(0), c = a ? o.absoluteViewport : o.relativeViewport, l = Fa(e, o.absoluteViewport, c), u = Ia.from(l, c), d = [];
4129
+ }) || r.get(0), c = a ? o.absoluteViewport : o.relativeViewport, l = Ia(e, o.absoluteViewport, c), u = La.from(l, c), d = [];
4125
4130
  for (let e of r.items) {
4126
- let { visible: r } = Ha({
4131
+ let { visible: r } = Ua({
4127
4132
  itemPosition: i.getSpineItemSpineLayoutInfo(e),
4128
4133
  threshold: t,
4129
4134
  viewportPosition: u,
@@ -4138,14 +4143,14 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4138
4143
  beginIndex: m ?? 0,
4139
4144
  endIndex: h ?? 0
4140
4145
  };
4141
- }, Ka = ({ spineItemsManager: e, context: t, spineItemLocator: n, settings: r, spineLayout: i, viewport: a }) => {
4146
+ }, qa = ({ spineItemsManager: e, context: t, spineItemLocator: n, settings: r, spineLayout: i, viewport: a }) => {
4142
4147
  let o = (e, t) => {
4143
4148
  let { left: n, top: r } = i.getSpineItemSpineLayoutInfo(t);
4144
4149
  return new q({
4145
4150
  x: Math.max(e.x - n, 0),
4146
4151
  y: Math.max(e.y - r, 0)
4147
4152
  });
4148
- }, s = (e) => Wa({
4153
+ }, s = (e) => Ga({
4149
4154
  spineItemPosition: new q({
4150
4155
  x: 0,
4151
4156
  y: 0
@@ -4159,7 +4164,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4159
4164
  return n.getSpineItemPageIndexFromNode(t, r || 0, i);
4160
4165
  }, u = ({ position: e, threshold: t, spineItem: r, restrictToScreen: a, useAbsoluteViewport: o = !0, viewport: s }) => {
4161
4166
  let c = r.numberOfPages, l = Array.from(Array(c)).map((e, t) => {
4162
- let a = Wa({
4167
+ let a = Ga({
4163
4168
  spineItemPosition: n.getSpineItemPositionFromPageIndex({
4164
4169
  pageIndex: t,
4165
4170
  spineItem: r
@@ -4178,8 +4183,8 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4178
4183
  }
4179
4184
  };
4180
4185
  }).reduce((n, { absolutePosition: r, index: i }) => {
4181
- let c = o ? s.absoluteViewport : s.relativeViewport, l = Fa(e, s.absoluteViewport, c), { visible: u } = Ha({
4182
- viewportPosition: Ia.from(l, c),
4186
+ let c = o ? s.absoluteViewport : s.relativeViewport, l = Ia(e, s.absoluteViewport, c), { visible: u } = Ua({
4187
+ viewportPosition: La.from(l, c),
4183
4188
  restrictToScreen: a,
4184
4189
  threshold: t,
4185
4190
  itemPosition: r
@@ -4192,11 +4197,11 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4192
4197
  };
4193
4198
  };
4194
4199
  return {
4195
- getSpinePositionFromSpineItemPosition: ({ spineItem: e, spineItemPosition: t }) => Wa({
4200
+ getSpinePositionFromSpineItemPosition: ({ spineItem: e, spineItemPosition: t }) => Ga({
4196
4201
  itemLayout: i.getSpineItemSpineLayoutInfo(e),
4197
4202
  spineItemPosition: t
4198
4203
  }),
4199
- _getAbsolutePageIndexFromPageIndex: (n) => za({
4204
+ _getAbsolutePageIndexFromPageIndex: (n) => Ba({
4200
4205
  ...n,
4201
4206
  context: t,
4202
4207
  settings: r,
@@ -4204,7 +4209,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4204
4209
  spineLayout: i
4205
4210
  }),
4206
4211
  getSpineItemPagePositionFromSpinePosition: (t) => {
4207
- let r = Ua({
4212
+ let r = Wa({
4208
4213
  position: t,
4209
4214
  spineItemsManager: e,
4210
4215
  spineLayout: i
@@ -4225,14 +4230,14 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4225
4230
  },
4226
4231
  getSpinePositionFromSpineItem: s,
4227
4232
  getSpineItemPositionFromSpinePosition: o,
4228
- getSpineItemFromPosition: (t) => Ua({
4233
+ getSpineItemFromPosition: (t) => Wa({
4229
4234
  position: t,
4230
4235
  spineItemsManager: e,
4231
4236
  spineLayout: i
4232
4237
  }),
4233
4238
  getSpineItemFromIframe: c,
4234
4239
  getSpineItemPageIndexFromNode: l,
4235
- getVisibleSpineItemsFromPosition: (t) => Ga({
4240
+ getVisibleSpineItemsFromPosition: (t) => Ka({
4236
4241
  settings: r,
4237
4242
  spineItemsManager: e,
4238
4243
  spineLayout: i,
@@ -4256,7 +4261,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4256
4261
  });
4257
4262
  }
4258
4263
  };
4259
- }, qa = class extends Q {
4264
+ }, Ja = class extends Q {
4260
4265
  constructor(e) {
4261
4266
  super(), this.spineItemsManager = e;
4262
4267
  let t = e.items;
@@ -4268,7 +4273,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4268
4273
  item: e
4269
4274
  }))))).pipe(O()), this.itemLoad$ = E(...t.map((e) => e.loaded$.pipe(T(() => e)))).pipe(O()), this.itemUnload$ = E(...t.map((e) => e.unloaded$.pipe(T(() => e)))).pipe(O());
4270
4275
  }
4271
- }, Ja = class extends Q {
4276
+ }, Ya = class extends Q {
4272
4277
  constructor(e, t, n, r, i) {
4273
4278
  super(), this.spineItemsManager = e, this.spineItemsObserver = t, this.context = n, this.settings = r, this.viewport = i, this.externalLayoutTrigger = new m(), this.spineItemsRelativeLayouts = [];
4274
4279
  let a = E(t.itemLoad$, t.itemUnload$).pipe(T(() => ({ immediate: !1 }))), o = E(this.externalLayoutTrigger, a);
@@ -4363,16 +4368,16 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4363
4368
  y: r
4364
4369
  });
4365
4370
  }
4366
- }, Ya = class extends Q {
4371
+ }, Xa = class extends Q {
4367
4372
  constructor(e, t, n, r, i, a) {
4368
- 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 qa(n), this.spineLayout = new Ja(n, this.spineItemsObserver, e, i, a), this.locator = Ka({
4373
+ 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 Ja(n), this.spineLayout = new Ya(n, this.spineItemsObserver, e, i, a), this.locator = qa({
4369
4374
  context: e,
4370
4375
  spineItemsManager: n,
4371
4376
  spineItemLocator: r,
4372
4377
  settings: i,
4373
4378
  spineLayout: this.spineLayout,
4374
4379
  viewport: a
4375
- }), this.spineItemsLoader = new Pa(this.context, n, this.locator, i, this.spineLayout, this.viewport), this.pages = new br(this.spineLayout, this.spineItemsManager, this.spineItemLocator, this.context, this.locator, this.viewport);
4380
+ }), this.spineItemsLoader = new Fa(this.context, n, this.locator, i, this.spineLayout, this.viewport), this.pages = new br(this.spineLayout, this.spineItemsManager, this.spineItemLocator, this.context, this.locator, this.viewport);
4376
4381
  let o = e.watch("rootElement").pipe(xe(K), I(() => {
4377
4382
  let e = this.context.document.createElement("div");
4378
4383
  e.style.cssText = "\n height: 100%;\n position: relative;\n ", e.className = `${X}-spine`, this.elementSubject.next(e);
@@ -4398,7 +4403,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4398
4403
  destroy() {
4399
4404
  super.destroy(), this.pages.destroy(), this.spineItemsLoader.destroy(), this.elementSubject.getValue()?.remove(), this.elementSubject.complete();
4400
4405
  }
4401
- }, Xa = class extends At {
4406
+ }, Za = class extends At {
4402
4407
  onUnload() {}
4403
4408
  onCreateDocument() {
4404
4409
  return D(this.context.document.createElement("div"));
@@ -4413,7 +4418,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4413
4418
  return u;
4414
4419
  }
4415
4420
  getDocumentFrame() {}
4416
- }, Za = class extends Q {
4421
+ }, Qa = class extends Q {
4417
4422
  constructor(e, t, n, i, a, s, c) {
4418
4423
  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 }) => {
4419
4424
  let i = this.viewport.value.pageSize.width, a = "none", o = t % this.viewport.absoluteViewport.width === 0, s = this.context.manifest, c = ki(s);
@@ -4498,7 +4503,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4498
4503
  height: e.height ? parseFloat(e.height) : 0
4499
4504
  };
4500
4505
  }
4501
- }, Qa = class extends U {
4506
+ }, $a = class extends U {
4502
4507
  constructor(e, t, n, r, i, a) {
4503
4508
  super({
4504
4509
  isLoaded: !1,
@@ -4519,7 +4524,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4519
4524
  this.updateState({ isDirty: !0 });
4520
4525
  }, this.destroy = () => {
4521
4526
  this.isDestroyed || (super.destroy(), this._layout.destroy(), this.renderer.destroy(), this.containerElement.remove());
4522
- }, this.isUsingVerticalWriting = () => !!this.renderer.writingMode?.startsWith("vertical"), this.layout = (e) => this._layout.layout(e), this.containerElement = $a(e, t.document);
4527
+ }, this.isUsingVerticalWriting = () => !!this.renderer.writingMode?.startsWith("vertical"), this.layout = (e) => this._layout.layout(e), this.containerElement = eo(e, t.document);
4523
4528
  let o = this.settings.values.getRenderer?.(e);
4524
4529
  this.resourcesHandler = new Mt(e, this.settings);
4525
4530
  let s = {
@@ -4531,7 +4536,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4531
4536
  resourcesHandler: this.resourcesHandler,
4532
4537
  viewport: this.viewport
4533
4538
  };
4534
- this.renderer = o ? o(s) : new Xa(s), this._layout = new Za(e, this.containerElement, t, r, this.renderer, this.settings, this.viewport);
4539
+ this.renderer = o ? o(s) : new Za(s), this._layout = new Qa(e, this.containerElement, t, r, this.renderer, this.settings, this.viewport);
4535
4540
  let c = this.renderer.state$.pipe(I(({ state: e, error: t }) => {
4536
4541
  this.updateState({
4537
4542
  isLoaded: e === "loaded",
@@ -4588,12 +4593,12 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4588
4593
  pageTurnMode: this.settings.values.pageTurnMode
4589
4594
  });
4590
4595
  }
4591
- }, $a = (e, t) => {
4596
+ }, eo = (e, t) => {
4592
4597
  let n = t.createElement("div");
4593
4598
  return n.setAttribute(`data-${Tn}`, ""), n.classList.add("spineItem"), n.classList.add(`spineItem-${e.renditionLayout ?? "reflowable"}`), n.style.cssText = "\n position: absolute;\n overflow: hidden;\n ", n.dataset.isReady = "false", n;
4594
- }, eo = class extends Q {
4599
+ }, to = class extends Q {
4595
4600
  constructor(e, t, n, r) {
4596
- super(), this.context = e, this.settings = t, this.hookManager = n, this.viewport = r, this.items = e.manifest.spineItems.map((i, a) => new Qa(i, e, t, n, a, r));
4601
+ super(), this.context = e, this.settings = t, this.hookManager = n, this.viewport = r, this.items = e.manifest.spineItems.map((i, a) => new $a(i, e, t, n, a, r));
4597
4602
  }
4598
4603
  get(e) {
4599
4604
  return typeof e == "number" ? this.items[e] : typeof e == "string" ? this.items.find(({ item: t }) => t.id === e) : e;
@@ -4603,14 +4608,14 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4603
4608
  return n > r ? "after" : n === r ? "same" : "before";
4604
4609
  }
4605
4610
  getSpineItemIndex(e) {
4606
- return (e instanceof Qa ? e : this.get(e))?.index;
4611
+ return (e instanceof $a ? e : this.get(e))?.index;
4607
4612
  }
4608
4613
  destroy() {
4609
4614
  this.items.forEach((e) => {
4610
4615
  e.destroy();
4611
4616
  }), super.destroy();
4612
4617
  }
4613
- }, to = class extends U {
4618
+ }, no = class extends U {
4614
4619
  constructor(e, t) {
4615
4620
  let n = e.document.createElement("div");
4616
4621
  n.setAttribute(`data-${Cn}`, ""), super({
@@ -4649,7 +4654,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4649
4654
  }), this.layoutSubject.next();
4650
4655
  }
4651
4656
  get absoluteViewport() {
4652
- return new La({
4657
+ return new Ra({
4653
4658
  width: this.value.width,
4654
4659
  height: this.value.height
4655
4660
  });
@@ -4663,7 +4668,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4663
4668
  }
4664
4669
  get relativeViewport() {
4665
4670
  let e = this.absoluteViewport, t = this.scaleFactor;
4666
- return new Ra({
4671
+ return new za({
4667
4672
  width: e.width / t,
4668
4673
  height: e.height / t
4669
4674
  });
@@ -4671,12 +4676,12 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4671
4676
  destroy() {
4672
4677
  super.destroy(), this.layoutSubject.complete(), this.value.element.remove();
4673
4678
  }
4674
- }, no = ({ manifest: e, cfi: t, ownerDocument: n = globalThis.document, ...r }) => {
4675
- let i = crypto.randomUUID(), a = `${xn}-core-${i}`, o = new m(), s = new m(), c = new Ni(), l = new ji(e, n), u = new Na(r, l), d = new Mi(l, u), f = new to(l, u), p = new eo(l, u, c, f), h = new Oi(c, p), g = ma({
4679
+ }, ro = ({ manifest: e, cfi: t, ownerDocument: n = globalThis.document, ...r }) => {
4680
+ let i = crypto.randomUUID(), a = `${xn}-core-${i}`, o = new m(), s = new m(), c = new Ni(), l = new ji(e, n), u = new Pa(r, l), d = new Mi(l, u), f = new no(l, u), p = new to(l, u, c, f), h = new Oi(c, p), g = ma({
4676
4681
  context: l,
4677
4682
  settings: u,
4678
4683
  viewport: f
4679
- }), _ = new Aa(l, p), v = new Ya(l, _, p, g, u, f), y = ka({
4684
+ }), _ = new Aa(l, p), v = new Xa(l, _, p, g, u, f), y = ka({
4680
4685
  cfi: h,
4681
4686
  context: l,
4682
4687
  spineItemsManager: p,
@@ -4684,7 +4689,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4684
4689
  spine: v,
4685
4690
  settings: u,
4686
4691
  viewport: f
4687
- }), ee = new ja(l, _, p, v, g, y.isLocked$, h);
4692
+ }), ee = new Ma(l, _, p, v, y.isLocked$, h);
4688
4693
  y.navigationState$.subscribe(l.bridgeEvent.viewportStateSubject), y.navigation$.subscribe(l.bridgeEvent.navigationSubject), y.position$.subscribe(l.bridgeEvent.positionSubject), _.subscribe(l.bridgeEvent.paginationSubject);
4689
4694
  let te = (e = {}) => {
4690
4695
  o.next(e);
@@ -4692,7 +4697,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4692
4697
  if (l.value.rootElement) throw Error("This reader is already mounted. A reader renders a single book, destroy it and create a new reader instead.");
4693
4698
  if (e.ownerDocument !== l.document) throw Error("The container element must belong to the reader's document. Pass `ownerDocument` to `createReader` when mounting into a foreign document (eg: an iframe's contentDocument).");
4694
4699
  L.log("mount", { containerElement: e }), $e(l.document, a, Pi);
4695
- let t = ao(e, i);
4700
+ let t = oo(e, i);
4696
4701
  l.update({ rootElement: t }), te({ immediate: !0 });
4697
4702
  }, re = u.watch(["computedSpreadMode"]).pipe(De(1), I(() => te())), ie = E(o.pipe(I((e) => {
4698
4703
  l.value.rootElement && (f.layout(), v.layout(e));
@@ -4710,7 +4715,7 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4710
4715
  mount: ne,
4711
4716
  destroy: () => {
4712
4717
  let e = l.value.rootElement;
4713
- e && (et(l.document, a), oo(e)), ie.unsubscribe(), p.destroy(), ee.destroy(), u.destroy(), _.destroy(), l.destroy(), y.destroy(), v.destroy(), d.destroy(), s.next(), s.complete(), f.destroy();
4718
+ e && (et(l.document, a), so(e)), ie.unsubscribe(), p.destroy(), ee.destroy(), u.destroy(), _.destroy(), l.destroy(), y.destroy(), v.destroy(), d.destroy(), s.next(), s.complete(), f.destroy();
4714
4719
  },
4715
4720
  pagination: {
4716
4721
  get state() {
@@ -4729,9 +4734,9 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4729
4734
  features: d,
4730
4735
  $: { destroy$: s }
4731
4736
  };
4732
- }, ro = `${X}-reader`, io = "data-prose-reader-container", ao = (e, t) => (e.classList.add(ro), R(e, Sn, t), R(e, io, t), e), oo = (e) => {
4733
- e.classList.remove(ro), e.removeAttribute(Sn), e.removeAttribute(io);
4734
- }, so = ti(Ot(ai(Dt(ct(ii(_i(dr(sn(Kn(lt(pt(Xr(Gn(ri(no))))))))))))))), co = (e) => (t) => e(t), lo = 5e3, uo = (e, { itemReadinessTimeoutMs: t = lo } = {}) => Zn(e).pipe(A((n) => {
4737
+ }, io = `${X}-reader`, ao = "data-prose-reader-container", oo = (e, t) => (e.classList.add(io), R(e, Sn, t), R(e, ao, t), e), so = (e) => {
4738
+ e.classList.remove(io), e.removeAttribute(Sn), e.removeAttribute(ao);
4739
+ }, co = ti(Ot(ai(Dt(ct(ii(_i(dr(sn(Kn(lt(pt(Xr(Gn(ri(ro))))))))))))))), lo = (e) => (t) => e(t), uo = 5e3, fo = (e, { itemReadinessTimeoutMs: t = uo } = {}) => Zn(e).pipe(A((n) => {
4735
4740
  if (n.boundary === "start") return D(n);
4736
4741
  let r = e.spineItemsManager.items, i = r[r.length - 1];
4737
4742
  return i ? i.value.isReady ? D(n) : i.isReady$.pipe(x(Boolean), S(), T(() => n), t === Infinity ? ce : _e({
@@ -4740,6 +4745,6 @@ var ai = (e) => (t) => e(t), oi = (e, t, n) => {
4740
4745
  }), Xn(e.navigation)) : u;
4741
4746
  }), O());
4742
4747
  //#endregion
4743
- export { pn as AbstractSpinePosition, Dn as CSS_VAR_ABSOLUTE_VIEWPORT_HEIGHT, En as CSS_VAR_ABSOLUTE_VIEWPORT_WIDTH, Oi as CfiManager, ji as Context, Ri as ControlledNavigationController, Q as DestroyableClass, At as DocumentRenderer, Mi as Features, Sn as HTML_ATTRIBUTE_DATA_READER_ID, X as HTML_PREFIX, wn as HTML_PREFIX_SCROLL_NAVIGATOR, Tn as HTML_PREFIX_SPINE_ITEM, Cn as HTML_PREFIX_VIEWPORT, xn as HTML_STYLE_PREFIX, Ni as HookManager, aa as InternalNavigator, cn as LayoutEntry, Xi as Locker, bn as PAGINATION_UPDATE_AFTER_VIEWPORT_ADJUSTMENT_DEBOUNCE, vn as PROSE_READER_NAMESPACE, br as Pages, Aa as Pagination, ja as PaginationController, U as ReactiveEntity, Mt as ResourceHandler, mr as ResourcesLocator, fi as ScrollNavigationController, ui as ScrollPosition, Ma as SettingsManager, Ya as Spine, Qa as SpineItem, un as SpineItemPageLayout, fn as SpineItemPageSpineLayout, q as SpineItemPosition, dn as SpineItemSpineLayout, eo as SpineItemsManager, qa as SpineItemsObserver, J as SpinePosition, di as UnboundScrollPosition, ln as UnboundSpineItemPagePosition, Y as UnboundSpinePosition, yn as VIEWPORT_ADJUSTMENT_THROTTLE, to as Viewport, pr as consolidate, so as createReader, St as deferIdle, bt as deferNextResult, bi as generateCfiForSpineItemPage, xi as generateCfiFromRange, vi as generateRootCfi, nt as getAttributeValueFromString, mt as getBase64FromBlob, at as getFrameViewportInfo, Si as getItemAnchor, sn as htmlEnhancer, xt as idle, $e as injectCSS, rt as injectCSSToFrame, K as isDefined, Ze as isHtmlElement, V as isHtmlTagElement, wi as isRootCfi, a as isShallowEqual, Gn as layoutEnhancer, gt as mapKeysTo, uo as observeBookBoundaryReached, wt as observeIntersection, Ct as observeMutation, Yn as observeNextSettledNavigation, vt as observeResize, Jn as observeSettledNavigation, Xr as paginationEnhancer, Ei as parseCfi, ht as pick, Ie as removeAttributeIfPresent, it as removeCSS, B as removeStylePropertyIfPresent, Di as resolveCfi, co as rootEnhancer, R as setAttributeIfChanged, Le as setPropertyIfChanged, z as setStylePropertyIfChanged, Hn as shouldEnableSpreadModeForViewport, Un as shouldUseComputedSpreadModeForViewport, gr as spinePositionToSpineItemSpineLayout, Xn as takeUntilNextNavigationSettled, H as upsertCSSToFrame, ot as waitForFrameLoad, st as waitForFrameReady, qn as waitForNavigationSettled, yt as waitForSwitch, _t as watchKeys };
4748
+ export { pn as AbstractSpinePosition, Dn as CSS_VAR_ABSOLUTE_VIEWPORT_HEIGHT, En as CSS_VAR_ABSOLUTE_VIEWPORT_WIDTH, Oi as CfiManager, ji as Context, Ri as ControlledNavigationController, Q as DestroyableClass, At as DocumentRenderer, Mi as Features, Sn as HTML_ATTRIBUTE_DATA_READER_ID, X as HTML_PREFIX, wn as HTML_PREFIX_SCROLL_NAVIGATOR, Tn as HTML_PREFIX_SPINE_ITEM, Cn as HTML_PREFIX_VIEWPORT, xn as HTML_STYLE_PREFIX, Ni as HookManager, aa as InternalNavigator, cn as LayoutEntry, Xi as Locker, bn as PAGINATION_UPDATE_AFTER_VIEWPORT_ADJUSTMENT_DEBOUNCE, vn as PROSE_READER_NAMESPACE, br as Pages, U as ReactiveEntity, Mt as ResourceHandler, mr as ResourcesLocator, fi as ScrollNavigationController, ui as ScrollPosition, Na as SettingsManager, Xa as Spine, $a as SpineItem, un as SpineItemPageLayout, fn as SpineItemPageSpineLayout, q as SpineItemPosition, dn as SpineItemSpineLayout, to as SpineItemsManager, Ja as SpineItemsObserver, J as SpinePosition, di as UnboundScrollPosition, ln as UnboundSpineItemPagePosition, Y as UnboundSpinePosition, yn as VIEWPORT_ADJUSTMENT_THROTTLE, no as Viewport, pr as consolidate, co as createReader, St as deferIdle, bt as deferNextResult, bi as generateCfiForSpineItemPage, xi as generateCfiFromRange, vi as generateRootCfi, nt as getAttributeValueFromString, mt as getBase64FromBlob, at as getFrameViewportInfo, Si as getItemAnchor, sn as htmlEnhancer, xt as idle, $e as injectCSS, rt as injectCSSToFrame, K as isDefined, Ze as isHtmlElement, V as isHtmlTagElement, wi as isRootCfi, a as isShallowEqual, Gn as layoutEnhancer, gt as mapKeysTo, fo as observeBookBoundaryReached, wt as observeIntersection, Ct as observeMutation, Yn as observeNextSettledNavigation, vt as observeResize, Jn as observeSettledNavigation, Xr as paginationEnhancer, Ei as parseCfi, ht as pick, Ie as removeAttributeIfPresent, it as removeCSS, B as removeStylePropertyIfPresent, Di as resolveCfi, lo as rootEnhancer, R as setAttributeIfChanged, Le as setPropertyIfChanged, z as setStylePropertyIfChanged, Hn as shouldEnableSpreadModeForViewport, Un as shouldUseComputedSpreadModeForViewport, gr as spinePositionToSpineItemSpineLayout, Xn as takeUntilNextNavigationSettled, H as upsertCSSToFrame, ot as waitForFrameLoad, st as waitForFrameReady, qn as waitForNavigationSettled, yt as waitForSwitch, _t as watchKeys };
4744
4749
 
4745
4750
  //# sourceMappingURL=index.js.map