@readium/navigator-html-injectables 2.0.0-beta.7 → 2.1.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
@@ -1,70 +1,70 @@
1
- const nt = Math.pow(2, 32), ge = () => Math.round(Math.random() * nt).toString(36), ot = () => `${Math.round(performance.now())}-${ge()}-${ge()}`, k = 1;
2
- class at {
3
- constructor(e) {
4
- this.destination = null, this.registrar = /* @__PURE__ */ new Map(), this.origin = "", this.channelId = "", this.receiver = this.receive.bind(this), this.preLog = [], this.wnd = e, e.addEventListener("message", this.receiver);
1
+ const ae = Math.pow(2, 32), vt = () => Math.round(Math.random() * ae).toString(36), le = () => `${Math.round(performance.now())}-${vt()}-${vt()}`, H = 1;
2
+ class he {
3
+ constructor(t) {
4
+ this.destination = null, this.registrar = /* @__PURE__ */ new Map(), this.origin = "", this.channelId = "", this.receiver = this.receive.bind(this), this.preLog = [], this.wnd = t, t.addEventListener("message", this.receiver);
5
5
  }
6
- receive(e) {
7
- if (e.source === null)
6
+ receive(t) {
7
+ if (t.source === null)
8
8
  throw Error("Event source is null");
9
- if (typeof e.data != "object")
9
+ if (typeof t.data != "object")
10
10
  return;
11
- const t = e.data;
12
- if (!(!("_readium" in t) || !t._readium || t._readium <= 0)) {
13
- if (t.key === "_ping") {
11
+ const e = t.data;
12
+ if (!(!("_readium" in e) || !e._readium || e._readium <= 0)) {
13
+ if (e.key === "_ping") {
14
14
  if (!this.destination) {
15
- if (this.destination = e.source, this.origin = e.origin, this.channelId = t._channel, t._readium !== k) {
16
- t._readium > k ? this.send("error", `received comms version ${t._readium} higher than ${k}`) : this.send("error", `received comms version ${t._readium} lower than ${k}`), this.destination = null, this.origin = "", this.channelId = "";
15
+ if (this.destination = t.source, this.origin = t.origin, this.channelId = e._channel, e._readium !== H) {
16
+ e._readium > H ? this.send("error", `received comms version ${e._readium} higher than ${H}`) : this.send("error", `received comms version ${e._readium} lower than ${H}`), this.destination = null, this.origin = "", this.channelId = "";
17
17
  return;
18
18
  }
19
19
  this.send("_pong", void 0), this.preLog.forEach((i) => this.send("log", i)), this.preLog = [];
20
20
  }
21
21
  return;
22
22
  } else if (this.channelId) {
23
- if (t._channel !== this.channelId || e.origin !== this.origin)
23
+ if (e._channel !== this.channelId || t.origin !== this.origin)
24
24
  return;
25
25
  } else
26
26
  return;
27
- this.handle(t);
27
+ this.handle(e);
28
28
  }
29
29
  }
30
- handle(e) {
31
- const t = this.registrar.get(e.key);
32
- if (!t || t.length === 0) {
33
- e.strict && this.send("_unhandled", e);
30
+ handle(t) {
31
+ const e = this.registrar.get(t.key);
32
+ if (!e || e.length === 0) {
33
+ t.strict && this.send("_unhandled", t);
34
34
  return;
35
35
  }
36
- t.forEach((i) => i.cb(e.data, (s) => {
37
- this.send("_ack", s, e.id);
36
+ e.forEach((i) => i.cb(t.data, (r) => {
37
+ this.send("_ack", r, t.id);
38
38
  }));
39
39
  }
40
- register(e, t, i) {
41
- Array.isArray(e) || (e = [e]), e.forEach((s) => {
42
- const n = this.registrar.get(s);
40
+ register(t, e, i) {
41
+ Array.isArray(t) || (t = [t]), t.forEach((r) => {
42
+ const n = this.registrar.get(r);
43
43
  if (n && n.length >= 0) {
44
- if (n.find((l) => l.module === t))
45
- throw new Error(`Trying to register another callback for combination of event ${s} and module ${t}`);
44
+ if (n.find((l) => l.module === e))
45
+ throw new Error(`Trying to register another callback for combination of event ${r} and module ${e}`);
46
46
  n.push({
47
47
  cb: i,
48
- module: t
49
- }), this.registrar.set(s, n);
48
+ module: e
49
+ }), this.registrar.set(r, n);
50
50
  } else
51
- this.registrar.set(s, [{
51
+ this.registrar.set(r, [{
52
52
  cb: i,
53
- module: t
53
+ module: e
54
54
  }]);
55
55
  });
56
56
  }
57
- unregister(e, t) {
58
- Array.isArray(e) || (e = [e]), e.forEach((i) => {
59
- const s = this.registrar.get(i);
60
- !s || s.length === 0 || s.splice(s.findIndex((n) => n.module === t), 1);
57
+ unregister(t, e) {
58
+ Array.isArray(t) || (t = [t]), t.forEach((i) => {
59
+ const r = this.registrar.get(i);
60
+ !r || r.length === 0 || r.splice(r.findIndex((n) => n.module === e), 1);
61
61
  });
62
62
  }
63
- unregisterAll(e) {
64
- this.registrar.forEach((t, i) => this.registrar.set(i, t.filter((s) => s.module !== e)));
63
+ unregisterAll(t) {
64
+ this.registrar.forEach((e, i) => this.registrar.set(i, e.filter((r) => r.module !== t)));
65
65
  }
66
- log(...e) {
67
- this.destination ? this.send("log", e) : this.preLog.push(e);
66
+ log(...t) {
67
+ this.destination ? this.send("log", t) : this.preLog.push(t);
68
68
  }
69
69
  get ready() {
70
70
  return !!this.destination;
@@ -72,67 +72,111 @@ class at {
72
72
  destroy() {
73
73
  this.destination = null, this.channelId = "", this.preLog = [], this.registrar.clear(), this.wnd.removeEventListener("message", this.receiver);
74
74
  }
75
- send(e, t, i = void 0, s = []) {
75
+ send(t, e, i = void 0, r = []) {
76
76
  if (!this.destination)
77
77
  throw Error("Attempted to send comms message before destination has been initialized");
78
78
  const n = {
79
- _readium: k,
79
+ _readium: H,
80
80
  _channel: this.channelId,
81
- id: i ?? ot(),
81
+ id: i ?? le(),
82
82
  // scrict,
83
- key: e,
84
- data: t
83
+ key: t,
84
+ data: e
85
85
  };
86
86
  try {
87
87
  this.destination.postMessage(n, {
88
88
  targetOrigin: this.origin,
89
- transfer: s
89
+ transfer: r
90
90
  });
91
91
  } catch (o) {
92
- if (s.length > 0)
92
+ if (r.length > 0)
93
93
  throw o;
94
- this.destination.postMessage(n, this.origin, s);
94
+ this.destination.postMessage(n, this.origin, r);
95
95
  }
96
96
  }
97
97
  }
98
- class ie {
98
+ const L = class B {
99
+ constructor(t) {
100
+ if (typeof t == "string") {
101
+ if (!B.VALID_MODES.has(t.toLowerCase()))
102
+ return;
103
+ this.value = t.toLowerCase();
104
+ } else {
105
+ const e = t.filter(
106
+ (i) => B.VALID_MODES.has(i.toLowerCase())
107
+ );
108
+ if (e.length === 0)
109
+ return;
110
+ this.value = Array.from(new Set(e));
111
+ }
112
+ }
113
+ /**
114
+ * Parses a [PrimaryAccessMode] from its RWPM JSON representation.
115
+ */
116
+ static deserialize(t) {
117
+ if (!t)
118
+ return;
119
+ if (typeof t == "string")
120
+ return new B(t);
121
+ if (!Array.isArray(t))
122
+ return;
123
+ const e = t.filter((i) => i ? B.VALID_MODES.has(i.toLowerCase()) : !1);
124
+ if (e.length !== 0)
125
+ return new B(e);
126
+ }
127
+ /**
128
+ * Serializes a [PrimaryAccessMode] to its RWPM JSON representation.
129
+ */
130
+ serialize() {
131
+ return this.value;
132
+ }
133
+ };
134
+ L.VALID_MODES = /* @__PURE__ */ new Set(["auditory", "tactile", "textual", "visual"]);
135
+ L.AUDITORY = new L("auditory");
136
+ L.TACTILE = new L("tactile");
137
+ L.TEXTUAL = new L("textual");
138
+ L.VISUAL = new L("visual");
139
+ class rt {
99
140
  /**
100
141
  * Creates a [Encryption].
101
142
  */
102
- constructor(e) {
103
- this.algorithm = e.algorithm, this.compression = e.compression, this.originalLength = e.originalLength, this.profile = e.profile, this.scheme = e.scheme;
143
+ constructor(t) {
144
+ this.algorithm = t.algorithm, this.compression = t.compression, this.originalLength = t.originalLength, this.profile = t.profile, this.scheme = t.scheme;
104
145
  }
105
146
  /**
106
147
  * Parses a [Encryption] from its RWPM JSON representation.
107
148
  */
108
- static deserialize(e) {
109
- if (e && e.algorithm)
110
- return new ie({
111
- algorithm: e.algorithm,
112
- compression: e.compression,
113
- originalLength: e.originalLength,
114
- profile: e.profile,
115
- scheme: e.scheme
149
+ static deserialize(t) {
150
+ if (t && t.algorithm)
151
+ return new rt({
152
+ algorithm: t.algorithm,
153
+ compression: t.compression,
154
+ originalLength: t.originalLength,
155
+ profile: t.profile,
156
+ scheme: t.scheme
116
157
  });
117
158
  }
118
159
  /**
119
160
  * Serializes a [Encryption] to its RWPM JSON representation.
120
161
  */
121
162
  serialize() {
122
- const e = { algorithm: this.algorithm };
123
- return this.compression !== void 0 && (e.compression = this.compression), this.originalLength !== void 0 && (e.originalLength = this.originalLength), this.profile !== void 0 && (e.profile = this.profile), this.scheme !== void 0 && (e.scheme = this.scheme), e;
163
+ const t = { algorithm: this.algorithm };
164
+ return this.compression !== void 0 && (t.compression = this.compression), this.originalLength !== void 0 && (t.originalLength = this.originalLength), this.profile !== void 0 && (t.profile = this.profile), this.scheme !== void 0 && (t.scheme = this.scheme), t;
124
165
  }
125
166
  }
126
- class b {
127
- constructor(e) {
128
- this.otherProperties = e;
167
+ class w {
168
+ constructor(t) {
169
+ this.otherProperties = t;
170
+ }
171
+ get page() {
172
+ return this.otherProperties.page;
129
173
  }
130
174
  /**
131
175
  * Creates a [Properties] from its RWPM JSON representation.
132
176
  */
133
- static deserialize(e) {
134
- if (e)
135
- return new b(e);
177
+ static deserialize(t) {
178
+ if (t)
179
+ return new w(t);
136
180
  }
137
181
  /**
138
182
  * Serializes a [Properties] to its RWPM JSON representation.
@@ -143,37 +187,50 @@ class b {
143
187
  /**
144
188
  * Makes a copy of this [Properties] after merging in the given additional other [properties].
145
189
  */
146
- add(e) {
147
- const t = Object.assign({}, this.otherProperties);
148
- for (const i in e)
149
- t[i] = e[i];
150
- return new b(t);
190
+ add(t) {
191
+ const e = Object.assign({}, this.otherProperties);
192
+ for (const i in t)
193
+ e[i] = t[i];
194
+ return new w(e);
151
195
  }
152
196
  }
153
- Object.defineProperty(b.prototype, "encryption", {
197
+ Object.defineProperty(w.prototype, "encryption", {
154
198
  get: function() {
155
- return ie.deserialize(this.otherProperties.encrypted);
199
+ return rt.deserialize(this.otherProperties.encrypted);
156
200
  }
157
201
  });
158
- b.prototype.getContains = function() {
159
- return new Set(this.otherProperties.contains || []);
160
- };
161
- b.prototype.getLayout = function() {
162
- return this.otherProperties.layout;
163
- };
202
+ function ce(s) {
203
+ return s && s instanceof Array ? s : void 0;
204
+ }
205
+ function Ut(s) {
206
+ return s && typeof s == "string" ? [s] : ce(s);
207
+ }
208
+ function bt(s) {
209
+ return typeof s == "string" ? new Date(s) : void 0;
210
+ }
211
+ function q(s) {
212
+ return isNaN(s) ? void 0 : s;
213
+ }
214
+ function T(s) {
215
+ return q(s) !== void 0 && Math.sign(s) >= 0 ? s : void 0;
216
+ }
217
+ function ue(s) {
218
+ const t = new Array();
219
+ return s.forEach((e) => t.push(e)), t;
220
+ }
164
221
  class a {
165
222
  /** Creates a MediaType object. */
166
- constructor(e) {
167
- let t, i, s = e.mediaType.replace(/\s/g, "").split(";");
168
- const n = s[0].split("/");
223
+ constructor(t) {
224
+ let e, i, r = t.mediaType.replace(/\s/g, "").split(";");
225
+ const n = r[0].split("/");
169
226
  if (n.length === 2) {
170
- if (t = n[0].toLowerCase().trim(), i = n[1].toLowerCase().trim(), t.length === 0 || i.length === 0)
227
+ if (e = n[0].toLowerCase().trim(), i = n[1].toLowerCase().trim(), e.length === 0 || i.length === 0)
171
228
  throw new Error("Invalid media type");
172
229
  } else
173
230
  throw new Error("Invalid media type");
174
231
  const o = {};
175
- for (let d = 1; d < s.length; d++) {
176
- const f = s[d].split("=");
232
+ for (let d = 1; d < r.length; d++) {
233
+ const f = r[d].split("=");
177
234
  if (f.length === 2) {
178
235
  const g = f[0].toLocaleLowerCase(), m = g === "charset" ? f[1].toUpperCase() : f[1];
179
236
  o[g] = m;
@@ -186,19 +243,19 @@ class a {
186
243
  const f = l[d];
187
244
  h += `;${d}=${f}`;
188
245
  }
189
- const u = `${t}/${i}${h}`, p = l.encoding;
190
- this.string = u, this.type = t, this.subtype = i, this.parameters = l, this.encoding = p, this.name = e.name, this.fileExtension = e.fileExtension;
246
+ const u = `${e}/${i}${h}`, p = l.encoding;
247
+ this.string = u, this.type = e, this.subtype = i, this.parameters = l, this.encoding = p, this.name = t.name, this.fileExtension = t.fileExtension;
191
248
  }
192
- static parse(e) {
193
- return new a(e);
249
+ static parse(t) {
250
+ return new a(t);
194
251
  }
195
252
  /** Structured syntax suffix, e.g. `+zip` in `application/epub+zip`.
196
253
  * Gives a hint on the underlying structure of this media type.
197
254
  * See. https://tools.ietf.org/html/rfc6838#section-4.2.8
198
255
  */
199
256
  get structuredSyntaxSuffix() {
200
- const e = this.subtype.split("+");
201
- return e.length > 1 ? `+${e[e.length - 1]}` : void 0;
257
+ const t = this.subtype.split("+");
258
+ return t.length > 1 ? `+${t[t.length - 1]}` : void 0;
202
259
  }
203
260
  /** Parameter values might or might not be case-sensitive, depending on the semantics of
204
261
  * the parameter name.
@@ -219,17 +276,17 @@ class a {
219
276
  * - Order of parameters is ignored.
220
277
  * - Wildcards are supported, meaning that `image/*` contains `image/png`
221
278
  */
222
- contains(e) {
223
- const t = typeof e == "string" ? a.parse({ mediaType: e }) : e;
224
- if (!((this.type === "*" || this.type === t.type) && (this.subtype === "*" || this.subtype === t.subtype)))
279
+ contains(t) {
280
+ const e = typeof t == "string" ? a.parse({ mediaType: t }) : t;
281
+ if (!((this.type === "*" || this.type === e.type) && (this.subtype === "*" || this.subtype === e.subtype)))
225
282
  return !1;
226
283
  const i = new Set(
227
284
  Object.entries(this.parameters).map(([n, o]) => `${n}=${o}`)
228
- ), s = new Set(
229
- Object.entries(t.parameters).map(([n, o]) => `${n}=${o}`)
285
+ ), r = new Set(
286
+ Object.entries(e.parameters).map(([n, o]) => `${n}=${o}`)
230
287
  );
231
288
  for (const n of Array.from(i.values()))
232
- if (!s.has(n))
289
+ if (!r.has(n))
233
290
  return !1;
234
291
  return !0;
235
292
  }
@@ -238,22 +295,22 @@ class a {
238
295
  * For example, `text/html` matches `text/html;charset=utf-8`, but `text/html;charset=ascii`
239
296
  * doesn't. This is basically like `contains`, but working in both direction.
240
297
  */
241
- matches(e) {
242
- const t = typeof e == "string" ? a.parse({ mediaType: e }) : e;
243
- return this.contains(t) || t.contains(this);
298
+ matches(t) {
299
+ const e = typeof t == "string" ? a.parse({ mediaType: t }) : t;
300
+ return this.contains(e) || e.contains(this);
244
301
  }
245
302
  /**
246
303
  * Returns whether this media type matches any of the [others] media types.
247
304
  */
248
- matchesAny(...e) {
249
- for (const t of e)
250
- if (this.matches(t))
305
+ matchesAny(...t) {
306
+ for (const e of t)
307
+ if (this.matches(e))
251
308
  return !0;
252
309
  return !1;
253
310
  }
254
311
  /** Checks the MediaType equals another one (comparing their string) */
255
- equals(e) {
256
- return this.string === e.string;
312
+ equals(t) {
313
+ return this.string === t.string;
257
314
  }
258
315
  /** Returns whether this media type is structured as a ZIP archive. */
259
316
  get isZIP() {
@@ -616,80 +673,61 @@ class a {
616
673
  });
617
674
  }
618
675
  }
619
- class ye {
620
- constructor(e) {
621
- this.uri = e, this.parameters = this.getParameters(e);
676
+ class Et {
677
+ constructor(t) {
678
+ this.uri = t, this.parameters = this.getParameters(t);
622
679
  }
623
680
  /**
624
681
  * List of URI template parameter keys, if the [Link] is templated.
625
682
  */
626
- getParameters(e) {
627
- const t = /\{\??([^}]+)\}/g, i = e.match(t);
683
+ getParameters(t) {
684
+ const e = /\{\??([^}]+)\}/g, i = t.match(e);
628
685
  return i ? new Set(
629
- i.join(",").replace(t, "$1").split(",").map((s) => s.trim())
686
+ i.join(",").replace(e, "$1").split(",").map((r) => r.trim())
630
687
  ) : /* @__PURE__ */ new Set();
631
688
  }
632
689
  /** Expands the URI by replacing the template variables by the given parameters.
633
690
  * Any extra parameter is appended as query parameters.
634
691
  * See RFC 6570 on URI template: https://tools.ietf.org/html/rfc6570
635
692
  */
636
- expand(e) {
637
- const t = (s) => s.split(",").map((n) => {
638
- const o = e[n];
693
+ expand(t) {
694
+ const e = (r) => r.split(",").map((n) => {
695
+ const o = t[n];
639
696
  return o ? encodeURIComponent(o) : "";
640
- }).join(","), i = (s) => "?" + s.split(",").map((n) => {
641
- const o = n.split("=")[0], l = e[o];
697
+ }).join(","), i = (r) => "?" + r.split(",").map((n) => {
698
+ const o = n.split("=")[0], l = t[o];
642
699
  return l ? `${o}=${encodeURIComponent(l)}` : "";
643
700
  }).join("&");
644
- return this.uri.replace(/\{(\??)([^}]+)\}/g, (...s) => s[1] ? i(s[2]) : t(s[2]));
701
+ return this.uri.replace(/\{(\??)([^}]+)\}/g, (...r) => r[1] ? i(r[2]) : e(r[2]));
645
702
  }
646
703
  }
647
- function lt(r) {
648
- return r && r instanceof Array ? r : void 0;
649
- }
650
- function We(r) {
651
- return r && typeof r == "string" ? [r] : lt(r);
652
- }
653
- function ve(r) {
654
- return typeof r == "string" ? new Date(r) : void 0;
655
- }
656
- function j(r) {
657
- return isNaN(r) ? void 0 : r;
658
- }
659
- function C(r) {
660
- return j(r) !== void 0 && Math.sign(r) >= 0 ? r : void 0;
661
- }
662
- function ht(r) {
663
- const e = new Array();
664
- return r.forEach((t) => e.push(t)), e;
665
- }
666
- class x {
704
+ class E {
667
705
  /**
668
706
  * Creates a [Locations].
669
707
  */
670
- constructor(e) {
671
- this.fragments = e.fragments ? e.fragments : new Array(), this.progression = e.progression, this.totalProgression = e.totalProgression, this.position = e.position, this.otherLocations = e.otherLocations;
708
+ constructor(t) {
709
+ this.fragments = t.fragments ? t.fragments : new Array(), this.progression = t.progression, this.totalProgression = t.totalProgression, this.position = t.position, this.otherLocations = t.otherLocations;
672
710
  }
673
711
  /**
674
712
  * Parses a [Locations] from its RWPM JSON representation.
675
713
  */
676
- static deserialize(e) {
677
- if (!e)
714
+ static deserialize(t) {
715
+ if (!t)
678
716
  return;
679
- const t = j(e.progression), i = j(e.totalProgression), s = j(e.position), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set([
717
+ const e = q(t.progression), i = q(t.totalProgression), r = q(t.position), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set([
680
718
  "fragment",
681
719
  "fragments",
682
720
  "progression",
683
721
  "totalProgression",
684
722
  "position"
685
723
  ]);
686
- return Object.entries(e).forEach(([l, c]) => {
724
+ return Object.entries(t).forEach(([l, c]) => {
687
725
  o.has(l) || n.set(l, c);
688
- }), new x({
689
- fragments: We(e.fragments || e.fragment),
690
- progression: t !== void 0 && t >= 0 && t <= 1 ? t : void 0,
726
+ }), new E({
727
+ fragments: Ut(t.fragments || t.fragment),
728
+ progression: e !== void 0 && e >= 0 && e <= 1 ? e : void 0,
691
729
  totalProgression: i !== void 0 && i >= 0 && i <= 1 ? i : void 0,
692
- position: s !== void 0 && s > 0 ? s : void 0,
730
+ position: r !== void 0 && r > 0 ? r : void 0,
693
731
  otherLocations: n.size === 0 ? void 0 : n
694
732
  });
695
733
  }
@@ -697,110 +735,111 @@ class x {
697
735
  * Serializes a [Locations] to its RWPM JSON representation.
698
736
  */
699
737
  serialize() {
700
- const e = {};
701
- return this.fragments && (e.fragments = this.fragments), this.progression !== void 0 && (e.progression = this.progression), this.totalProgression !== void 0 && (e.totalProgression = this.totalProgression), this.position !== void 0 && (e.position = this.position), this.otherLocations && this.otherLocations.forEach((t, i) => e[i] = t), e;
738
+ const t = {};
739
+ return this.fragments && (t.fragments = this.fragments), this.progression !== void 0 && (t.progression = this.progression), this.totalProgression !== void 0 && (t.totalProgression = this.totalProgression), this.position !== void 0 && (t.position = this.position), this.otherLocations && this.otherLocations.forEach((e, i) => t[i] = e), t;
702
740
  }
703
741
  }
704
- class U {
742
+ class $ {
705
743
  /**
706
744
  * Creates a [Text].
707
745
  */
708
- constructor(e) {
709
- this.after = e.after, this.before = e.before, this.highlight = e.highlight;
746
+ constructor(t) {
747
+ this.after = t.after, this.before = t.before, this.highlight = t.highlight;
710
748
  }
711
749
  /**
712
750
  * Parses a [Locations] from its RWPM JSON representation.
713
751
  */
714
- static deserialize(e) {
715
- if (e)
716
- return new U({
717
- after: e.after,
718
- before: e.before,
719
- highlight: e.highlight
752
+ static deserialize(t) {
753
+ if (t)
754
+ return new $({
755
+ after: t.after,
756
+ before: t.before,
757
+ highlight: t.highlight
720
758
  });
721
759
  }
722
760
  /**
723
761
  * Serializes a [Locations] to its RWPM JSON representation.
724
762
  */
725
763
  serialize() {
726
- const e = {};
727
- return this.after !== void 0 && (e.after = this.after), this.before !== void 0 && (e.before = this.before), this.highlight !== void 0 && (e.highlight = this.highlight), e;
764
+ const t = {};
765
+ return this.after !== void 0 && (t.after = this.after), this.before !== void 0 && (t.before = this.before), this.highlight !== void 0 && (t.highlight = this.highlight), t;
728
766
  }
729
767
  }
730
- class D {
768
+ class W {
731
769
  /**
732
770
  * Creates a [Locator].
733
771
  */
734
- constructor(e) {
735
- this.href = e.href, this.type = e.type, this.title = e.title, this.locations = e.locations ? e.locations : new x({}), this.text = e.text;
772
+ constructor(t) {
773
+ this.href = t.href, this.type = t.type, this.title = t.title, this.locations = t.locations ? t.locations : new E({}), this.text = t.text;
736
774
  }
737
775
  /**
738
776
  * Parses a [Link] from its RWPM JSON representation.
739
777
  */
740
- static deserialize(e) {
741
- if (e && e.href && e.type)
742
- return new D({
743
- href: e.href,
744
- type: e.type,
745
- title: e.title,
746
- locations: x.deserialize(e.locations),
747
- text: U.deserialize(e.text)
778
+ static deserialize(t) {
779
+ if (t && t.href && t.type)
780
+ return new W({
781
+ href: t.href,
782
+ type: t.type,
783
+ title: t.title,
784
+ locations: E.deserialize(t.locations),
785
+ text: $.deserialize(t.text)
748
786
  });
749
787
  }
750
788
  /**
751
789
  * Serializes a [Link] to its RWPM JSON representation.
752
790
  */
753
791
  serialize() {
754
- const e = { href: this.href, type: this.type };
755
- return this.title !== void 0 && (e.title = this.title), this.locations && (e.locations = this.locations.serialize()), this.text && (e.text = this.text.serialize()), e;
792
+ const t = { href: this.href, type: this.type };
793
+ return this.title !== void 0 && (t.title = this.title), this.locations && (t.locations = this.locations.serialize()), this.text && (t.text = this.text.serialize()), t;
756
794
  }
757
795
  /**
758
796
  * Shortcut to get a copy of the [Locator] with different [Locations] sub-properties.
759
797
  */
760
- copyWithLocations(e) {
761
- return new D({
798
+ copyWithLocations(t) {
799
+ return new W({
762
800
  href: this.href,
763
801
  type: this.type,
764
802
  title: this.title,
765
803
  text: this.text,
766
- locations: new x({ ...this.locations, ...e })
804
+ locations: new E({ ...this.locations, ...t })
767
805
  });
768
806
  }
769
807
  }
770
- class B {
808
+ class k {
771
809
  /**
772
810
  * Creates a [Link].
773
811
  */
774
- constructor(e) {
775
- this.href = e.href, this.templated = e.templated, this.type = e.type, this.title = e.title, this.rels = e.rels, this.properties = e.properties, this.height = e.height, this.width = e.width, this.duration = e.duration, this.bitrate = e.bitrate, this.languages = e.languages, this.alternates = e.alternates, this.children = e.children;
812
+ constructor(t) {
813
+ this.href = t.href, this.templated = t.templated, this.type = t.type, this.title = t.title, this.rels = t.rels, this.properties = t.properties, this.height = t.height, this.width = t.width, this.size = t.size, this.duration = t.duration, this.bitrate = t.bitrate, this.languages = t.languages, this.alternates = t.alternates, this.children = t.children;
776
814
  }
777
815
  /**
778
816
  * Parses a [Link] from its RWPM JSON representation.
779
817
  */
780
- static deserialize(e) {
781
- if (!(!e || typeof e.href != "string"))
782
- return new B({
783
- href: e.href,
784
- templated: e.templated,
785
- type: e.type,
786
- title: e.title,
787
- rels: e.rel ? e.rel instanceof Array ? new Set(e.rel) : /* @__PURE__ */ new Set([e.rel]) : void 0,
788
- properties: b.deserialize(e.properties),
789
- height: C(e.height),
790
- width: C(e.width),
791
- duration: C(e.duration),
792
- bitrate: C(e.bitrate),
793
- languages: We(e.language),
794
- alternates: V.deserialize(e.alternate),
795
- children: V.deserialize(e.children)
818
+ static deserialize(t) {
819
+ if (!(!t || typeof t.href != "string"))
820
+ return new k({
821
+ href: t.href,
822
+ templated: t.templated,
823
+ type: t.type,
824
+ title: t.title,
825
+ rels: t.rel ? t.rel instanceof Array ? new Set(t.rel) : /* @__PURE__ */ new Set([t.rel]) : void 0,
826
+ properties: w.deserialize(t.properties),
827
+ height: T(t.height),
828
+ width: T(t.width),
829
+ size: T(t.size),
830
+ duration: T(t.duration),
831
+ bitrate: T(t.bitrate),
832
+ languages: Ut(t.language),
833
+ alternates: _.deserialize(t.alternate),
834
+ children: _.deserialize(t.children)
796
835
  });
797
836
  }
798
837
  /**
799
838
  * Serializes a [Link] to its RWPM JSON representation.
800
839
  */
801
840
  serialize() {
802
- const e = { href: this.href };
803
- return this.templated !== void 0 && (e.templated = this.templated), this.type !== void 0 && (e.type = this.type), this.title !== void 0 && (e.title = this.title), this.rels && (e.rel = ht(this.rels)), this.properties && (e.properties = this.properties.serialize()), this.height !== void 0 && (e.height = this.height), this.width !== void 0 && (e.width = this.width), this.duration !== void 0 && (e.duration = this.duration), this.bitrate !== void 0 && (e.bitrate = this.bitrate), this.languages && (e.language = this.languages), this.alternates && (e.alternate = this.alternates.serialize()), this.children && (e.children = this.children.serialize()), e;
841
+ const t = { href: this.href };
842
+ return this.templated !== void 0 && (t.templated = this.templated), this.type !== void 0 && (t.type = this.type), this.title !== void 0 && (t.title = this.title), this.rels && (t.rel = ue(this.rels)), this.properties && (t.properties = this.properties.serialize()), this.height !== void 0 && (t.height = this.height), this.width !== void 0 && (t.width = this.width), this.size !== void 0 && (t.size = this.size), this.duration !== void 0 && (t.duration = this.duration), this.bitrate !== void 0 && (t.bitrate = this.bitrate), this.languages && (t.language = this.languages), this.alternates && (t.alternate = this.alternates.serialize()), this.children && (t.children = this.children.serialize()), t;
804
843
  }
805
844
  /** MediaType of the linked resource. */
806
845
  get mediaType() {
@@ -809,163 +848,166 @@ class B {
809
848
  /** Computes an absolute URL to the link, relative to the given `baseURL`.
810
849
  * If the link's `href` is already absolute, the `baseURL` is ignored.
811
850
  */
812
- toURL(e) {
813
- const t = this.href.replace(/^(\/)/, "");
814
- if (t.length === 0)
851
+ toURL(t) {
852
+ const e = this.href.replace(/^(\/)/, "");
853
+ if (e.length === 0)
815
854
  return;
816
- let i = e || "/";
817
- return i.startsWith("/") && (i = "file://" + i), new URL(t, i).href.replace(/^(file:\/\/)/, "");
855
+ let i = t || "/";
856
+ return i.startsWith("/") && (i = "file://" + i), new URL(e, i).href.replace(/^(file:\/\/)/, "");
818
857
  }
819
858
  /** List of URI template parameter keys, if the `Link` is templated. */
820
859
  get templateParameters() {
821
- return this.templated ? new ye(this.href).parameters : /* @__PURE__ */ new Set();
860
+ return this.templated ? new Et(this.href).parameters : /* @__PURE__ */ new Set();
822
861
  }
823
862
  /** Expands the `Link`'s HREF by replacing URI template variables by the given parameters.
824
863
  * See RFC 6570 on URI template: https://tools.ietf.org/html/rfc6570
825
864
  */
826
- expandTemplate(e) {
827
- return new B({
828
- href: new ye(this.href).expand(e),
865
+ expandTemplate(t) {
866
+ return new k({
867
+ href: new Et(this.href).expand(t),
829
868
  templated: !1
830
869
  });
831
870
  }
832
871
  /**
833
872
  * Makes a copy of this [Link] after merging in the given additional other [properties].
834
873
  */
835
- addProperties(e) {
836
- var t;
837
- const i = B.deserialize(this.serialize());
838
- return i.properties = i.properties ? (t = i.properties) == null ? void 0 : t.add(e) : new b(e), i;
874
+ addProperties(t) {
875
+ var e;
876
+ const i = k.deserialize(this.serialize());
877
+ return i.properties = i.properties ? (e = i.properties) == null ? void 0 : e.add(t) : new w(t), i;
839
878
  }
840
879
  /**
841
880
  * Creates a [Locator] from a reading order [Link].
842
881
  */
843
882
  get locator() {
844
- let e = this.href.split("#");
845
- return new D({
846
- href: e.length > 0 && e[0] !== void 0 ? e[0] : this.href,
883
+ let t = this.href.split("#");
884
+ return new W({
885
+ href: t.length > 0 && t[0] !== void 0 ? t[0] : this.href,
847
886
  type: this.type ?? "",
848
887
  title: this.title,
849
- locations: new x({
850
- fragments: e.length > 1 && e[1] !== void 0 ? [e[1]] : []
888
+ locations: new E({
889
+ fragments: t.length > 1 && t[1] !== void 0 ? [t[1]] : []
851
890
  })
852
891
  });
853
892
  }
854
893
  }
855
- class V {
894
+ class _ {
856
895
  /**
857
896
  * Creates a [Links].
858
897
  */
859
- constructor(e) {
860
- this.items = e;
898
+ constructor(t) {
899
+ this.items = t;
861
900
  }
862
901
  /**
863
902
  * Creates a list of [Link] from its RWPM JSON representation.
864
903
  */
865
- static deserialize(e) {
866
- if (e && e instanceof Array)
867
- return new V(
868
- e.map((t) => B.deserialize(t)).filter((t) => t !== void 0)
904
+ static deserialize(t) {
905
+ if (t && t instanceof Array)
906
+ return new _(
907
+ t.map((e) => k.deserialize(e)).filter((e) => e !== void 0)
869
908
  );
870
909
  }
871
910
  /**
872
911
  * Serializes an array of [Link] to its RWPM JSON representation.
873
912
  */
874
913
  serialize() {
875
- return this.items.map((e) => e.serialize());
914
+ return this.items.map((t) => t.serialize());
876
915
  }
877
916
  /** Finds the first link with the given relation. */
878
- findWithRel(e) {
879
- const t = (i) => i.rels && i.rels.has(e);
880
- return this.items.find(t);
917
+ findWithRel(t) {
918
+ const e = (i) => i.rels && i.rels.has(t);
919
+ return this.items.find(e);
881
920
  }
882
921
  /** Finds all the links with the given relation. */
883
- filterByRel(e) {
884
- const t = (i) => i.rels && i.rels.has(e);
885
- return this.items.filter(t);
922
+ filterByRel(t) {
923
+ const e = (i) => i.rels && i.rels.has(t);
924
+ return this.items.filter(e);
886
925
  }
887
926
  /** Finds the first link matching the given HREF. */
888
- findWithHref(e) {
889
- const t = (i) => i.href === e;
890
- return this.items.find(t);
927
+ findWithHref(t) {
928
+ const e = (i) => i.href === t;
929
+ return this.items.find(e);
891
930
  }
892
931
  /** Finds the index of the first link matching the given HREF. */
893
- findIndexWithHref(e) {
894
- const t = (i) => i.href === e;
895
- return this.items.findIndex(t);
932
+ findIndexWithHref(t) {
933
+ const e = (i) => i.href === t;
934
+ return this.items.findIndex(e);
896
935
  }
897
936
  /** Finds the first link matching the given media type. */
898
- findWithMediaType(e) {
899
- const t = (i) => i.mediaType.matches(e);
900
- return this.items.find(t);
937
+ findWithMediaType(t) {
938
+ const e = (i) => i.mediaType.matches(t);
939
+ return this.items.find(e);
901
940
  }
902
941
  /** Finds all the links matching the given media type. */
903
- filterByMediaType(e) {
904
- const t = (i) => i.mediaType.matches(e);
905
- return this.items.filter(t);
942
+ filterByMediaType(t) {
943
+ const e = (i) => i.mediaType.matches(t);
944
+ return this.items.filter(e);
906
945
  }
907
946
  /** Finds all the links matching any of the given media types. */
908
- filterByMediaTypes(e) {
909
- const t = (i) => {
910
- for (const s of e)
911
- if (i.mediaType.matches(s))
947
+ filterByMediaTypes(t) {
948
+ const e = (i) => {
949
+ for (const r of t)
950
+ if (i.mediaType.matches(r))
912
951
  return !0;
913
952
  return !1;
914
953
  };
915
- return this.items.filter(t);
954
+ return this.items.filter(e);
916
955
  }
917
956
  /** Returns whether all the resources in the collection are audio clips. */
918
957
  everyIsAudio() {
919
- const e = (t) => t.mediaType.isAudio;
920
- return this.items.length > 0 && this.items.every(e);
958
+ const t = (e) => e.mediaType.isAudio;
959
+ return this.items.length > 0 && this.items.every(t);
921
960
  }
922
961
  /** Returns whether all the resources in the collection are bitmaps. */
923
962
  everyIsBitmap() {
924
- const e = (t) => t.mediaType.isBitmap;
925
- return this.items.length > 0 && this.items.every(e);
963
+ const t = (e) => e.mediaType.isBitmap;
964
+ return this.items.length > 0 && this.items.every(t);
926
965
  }
927
966
  /** Returns whether all the resources in the collection are HTML documents. */
928
967
  everyIsHTML() {
929
- const e = (t) => t.mediaType.isHTML;
930
- return this.items.length > 0 && this.items.every(e);
968
+ const t = (e) => e.mediaType.isHTML;
969
+ return this.items.length > 0 && this.items.every(t);
931
970
  }
932
971
  /** Returns whether all the resources in the collection are video clips. */
933
972
  everyIsVideo() {
934
- const e = (t) => t.mediaType.isVideo;
935
- return this.items.length > 0 && this.items.every(e);
973
+ const t = (e) => e.mediaType.isVideo;
974
+ return this.items.length > 0 && this.items.every(t);
936
975
  }
937
976
  /** Returns whether all the resources in the collection are matching any of the given media types. */
938
- everyMatchesMediaType(e) {
939
- return Array.isArray(e) ? this.items.length > 0 && this.items.every((t) => {
940
- for (const i of e)
941
- return t.mediaType.matches(i);
977
+ everyMatchesMediaType(t) {
978
+ return Array.isArray(t) ? this.items.length > 0 && this.items.every((e) => {
979
+ for (const i of t)
980
+ return e.mediaType.matches(i);
942
981
  return !1;
943
- }) : this.items.length > 0 && this.items.every((t) => t.mediaType.matches(e));
982
+ }) : this.items.length > 0 && this.items.every((e) => e.mediaType.matches(t));
944
983
  }
945
984
  filterLinksHasType() {
946
- return this.items.filter((e) => e.type);
985
+ return this.items.filter((t) => t.type);
947
986
  }
948
987
  }
949
- class q {
988
+ w.prototype.getContains = function() {
989
+ return new Set(this.otherProperties.contains || []);
990
+ };
991
+ class X {
950
992
  /**
951
993
  * Creates a [DomRange].
952
994
  */
953
- constructor(e) {
954
- this.cssSelector = e.cssSelector, this.textNodeIndex = e.textNodeIndex, this.charOffset = e.charOffset;
995
+ constructor(t) {
996
+ this.cssSelector = t.cssSelector, this.textNodeIndex = t.textNodeIndex, this.charOffset = t.charOffset;
955
997
  }
956
998
  /**
957
999
  * Parses a [DomRangePoint] from its RWPM JSON representation.
958
1000
  */
959
- static deserialize(e) {
960
- if (!(e && e.cssSelector))
1001
+ static deserialize(t) {
1002
+ if (!(t && t.cssSelector))
961
1003
  return;
962
- let t = C(e.textNodeIndex);
963
- if (t === void 0)
1004
+ let e = T(t.textNodeIndex);
1005
+ if (e === void 0)
964
1006
  return;
965
- let i = C(e.charOffset);
966
- return i === void 0 && (i = C(e.offset)), new q({
967
- cssSelector: e.cssSelector,
968
- textNodeIndex: t,
1007
+ let i = T(t.charOffset);
1008
+ return i === void 0 && (i = T(t.offset)), new X({
1009
+ cssSelector: t.cssSelector,
1010
+ textNodeIndex: e,
969
1011
  charOffset: i
970
1012
  });
971
1013
  }
@@ -973,106 +1015,106 @@ class q {
973
1015
  * Serializes a [DomRangePoint] to its RWPM JSON representation.
974
1016
  */
975
1017
  serialize() {
976
- const e = {
1018
+ const t = {
977
1019
  cssSelector: this.cssSelector,
978
1020
  textNodeIndex: this.textNodeIndex
979
1021
  };
980
- return this.charOffset !== void 0 && (e.charOffset = this.charOffset), e;
1022
+ return this.charOffset !== void 0 && (t.charOffset = this.charOffset), t;
981
1023
  }
982
1024
  }
983
- class re {
1025
+ class nt {
984
1026
  /**
985
1027
  * Creates a [DomRange].
986
1028
  */
987
- constructor(e) {
988
- this.start = e.start, this.end = e.end;
1029
+ constructor(t) {
1030
+ this.start = t.start, this.end = t.end;
989
1031
  }
990
1032
  /**
991
1033
  * Parses a [DomRange] from its RWPM JSON representation.
992
1034
  */
993
- static deserialize(e) {
994
- if (!e)
1035
+ static deserialize(t) {
1036
+ if (!t)
995
1037
  return;
996
- let t = q.deserialize(e.start);
997
- if (t)
998
- return new re({
999
- start: t,
1000
- end: q.deserialize(e.end)
1038
+ let e = X.deserialize(t.start);
1039
+ if (e)
1040
+ return new nt({
1041
+ start: e,
1042
+ end: X.deserialize(t.end)
1001
1043
  });
1002
1044
  }
1003
1045
  /**
1004
1046
  * Serializes a [DomRange] to its RWPM JSON representation.
1005
1047
  */
1006
1048
  serialize() {
1007
- const e = { start: this.start.serialize() };
1008
- return this.end && (e.end = this.end.serialize()), e;
1049
+ const t = { start: this.start.serialize() };
1050
+ return this.end && (t.end = this.end.serialize()), t;
1009
1051
  }
1010
1052
  }
1011
- x.prototype.getCssSelector = function() {
1012
- var r;
1013
- return (r = this.otherLocations) == null ? void 0 : r.get("cssSelector");
1053
+ E.prototype.getCssSelector = function() {
1054
+ var s;
1055
+ return (s = this.otherLocations) == null ? void 0 : s.get("cssSelector");
1014
1056
  };
1015
- x.prototype.getPartialCfi = function() {
1016
- var r;
1017
- return (r = this.otherLocations) == null ? void 0 : r.get("partialCfi");
1057
+ E.prototype.getPartialCfi = function() {
1058
+ var s;
1059
+ return (s = this.otherLocations) == null ? void 0 : s.get("partialCfi");
1018
1060
  };
1019
- x.prototype.getDomRange = function() {
1020
- var r;
1021
- return re.deserialize((r = this.otherLocations) == null ? void 0 : r.get("domRange"));
1061
+ E.prototype.getDomRange = function() {
1062
+ var s;
1063
+ return nt.deserialize((s = this.otherLocations) == null ? void 0 : s.get("domRange"));
1022
1064
  };
1023
- x.prototype.fragmentParameters = function() {
1065
+ E.prototype.fragmentParameters = function() {
1024
1066
  return new Map(
1025
- this.fragments.map((r) => r.startsWith("#") ? r.slice(1) : r).join("&").split("&").filter((r) => !r.startsWith("#")).map((r) => r.split("=")).filter((r) => r.length === 2).map((r) => [
1026
- r[0].trim().toLowerCase(),
1027
- r[1].trim()
1067
+ this.fragments.map((s) => s.startsWith("#") ? s.slice(1) : s).join("&").split("&").filter((s) => !s.startsWith("#")).map((s) => s.split("=")).filter((s) => s.length === 2).map((s) => [
1068
+ s[0].trim().toLowerCase(),
1069
+ s[1].trim()
1028
1070
  ])
1029
1071
  );
1030
1072
  };
1031
- x.prototype.htmlId = function() {
1073
+ E.prototype.htmlId = function() {
1032
1074
  if (!this.fragments.length)
1033
1075
  return;
1034
- let r = this.fragments.find((e) => e.length && !e.includes("="));
1035
- if (!r) {
1036
- const e = this.fragmentParameters();
1037
- e.has("id") ? r = e.get("id") : e.has("name") && (r = e.get("name"));
1076
+ let s = this.fragments.find((t) => t.length && !t.includes("="));
1077
+ if (!s) {
1078
+ const t = this.fragmentParameters();
1079
+ t.has("id") ? s = t.get("id") : t.has("name") && (s = t.get("name"));
1038
1080
  }
1039
- return r != null && r.startsWith("#") ? r.slice(1) : r;
1081
+ return s != null && s.startsWith("#") ? s.slice(1) : s;
1040
1082
  };
1041
- x.prototype.page = function() {
1042
- const r = parseInt(this.fragmentParameters().get("page"));
1043
- if (!isNaN(r) && r >= 0)
1044
- return r;
1083
+ E.prototype.page = function() {
1084
+ const s = parseInt(this.fragmentParameters().get("page"));
1085
+ if (!isNaN(s) && s >= 0)
1086
+ return s;
1045
1087
  };
1046
- x.prototype.time = function() {
1047
- const r = parseInt(this.fragmentParameters().get("t"));
1048
- if (!isNaN(r))
1049
- return r;
1088
+ E.prototype.time = function() {
1089
+ const s = parseInt(this.fragmentParameters().get("t"));
1090
+ if (!isNaN(s))
1091
+ return s;
1050
1092
  };
1051
- x.prototype.space = function() {
1052
- const r = this.fragmentParameters();
1053
- if (!r.has("xywh"))
1093
+ E.prototype.space = function() {
1094
+ const s = this.fragmentParameters();
1095
+ if (!s.has("xywh"))
1054
1096
  return;
1055
- const e = r.get("xywh").split(",").map((t) => parseInt(t));
1056
- if (e.length === 4 && !e.some(isNaN))
1057
- return e;
1097
+ const t = s.get("xywh").split(",").map((e) => parseInt(e));
1098
+ if (t.length === 4 && !t.some(isNaN))
1099
+ return t;
1058
1100
  };
1059
- class se {
1101
+ class ot {
1060
1102
  /** Creates a [Price]. */
1061
- constructor(e) {
1062
- this.currency = e.currency, this.value = e.value;
1103
+ constructor(t) {
1104
+ this.currency = t.currency, this.value = t.value;
1063
1105
  }
1064
1106
  /**
1065
1107
  * Parses a [Price] from its RWPM JSON representation.
1066
1108
  */
1067
- static deserialize(e) {
1068
- if (!e)
1109
+ static deserialize(t) {
1110
+ if (!t)
1069
1111
  return;
1070
- let t = e.currency;
1071
- if (!(t && typeof t == "string" && t.length > 0))
1112
+ let e = t.currency;
1113
+ if (!(e && typeof e == "string" && e.length > 0))
1072
1114
  return;
1073
- let i = C(e.value);
1115
+ let i = T(t.value);
1074
1116
  if (i !== void 0)
1075
- return new se({ currency: t, value: i });
1117
+ return new ot({ currency: e, value: i });
1076
1118
  }
1077
1119
  /**
1078
1120
  * Serializes a [Price] to its RWPM JSON representation.
@@ -1081,435 +1123,417 @@ class se {
1081
1123
  return { currency: this.currency, value: this.value };
1082
1124
  }
1083
1125
  }
1084
- class $ {
1126
+ class V {
1085
1127
  /** Creates a [Acquisition]. */
1086
- constructor(e) {
1087
- this.type = e.type, this.children = e.children;
1128
+ constructor(t) {
1129
+ this.type = t.type, this.children = t.children;
1088
1130
  }
1089
1131
  /**
1090
1132
  * Parses a [Acquisition] from its RWPM JSON representation.
1091
1133
  */
1092
- static deserialize(e) {
1093
- if (e && e.type)
1094
- return new $({
1095
- type: e.type,
1096
- children: $.deserializeArray(e.children)
1134
+ static deserialize(t) {
1135
+ if (t && t.type)
1136
+ return new V({
1137
+ type: t.type,
1138
+ children: V.deserializeArray(t.children)
1097
1139
  });
1098
1140
  }
1099
- static deserializeArray(e) {
1100
- if (e instanceof Array)
1101
- return e.map((t) => $.deserialize(t)).filter((t) => t !== void 0);
1141
+ static deserializeArray(t) {
1142
+ if (t instanceof Array)
1143
+ return t.map((e) => V.deserialize(e)).filter((e) => e !== void 0);
1102
1144
  }
1103
1145
  /**
1104
1146
  * Serializes a [Acquisition] to its RWPM JSON representation.
1105
1147
  */
1106
1148
  serialize() {
1107
- const e = { type: this.type };
1108
- return this.children && (e.children = this.children.map((t) => t.serialize())), e;
1149
+ const t = { type: this.type };
1150
+ return this.children && (t.children = this.children.map((e) => e.serialize())), t;
1109
1151
  }
1110
1152
  }
1111
- class ne {
1153
+ class at {
1112
1154
  /** Creates a [Price]. */
1113
- constructor(e) {
1114
- this.total = e.total, this.position = e.position;
1155
+ constructor(t) {
1156
+ this.total = t.total, this.position = t.position;
1115
1157
  }
1116
1158
  /**
1117
1159
  * Parses a [Holds] from its RWPM JSON representation.
1118
1160
  */
1119
- static deserialize(e) {
1120
- if (e)
1121
- return new ne({
1122
- total: C(e.total),
1123
- position: C(e.position)
1161
+ static deserialize(t) {
1162
+ if (t)
1163
+ return new at({
1164
+ total: T(t.total),
1165
+ position: T(t.position)
1124
1166
  });
1125
1167
  }
1126
1168
  /**
1127
1169
  * Serializes a [Holds] to its RWPM JSON representation.
1128
1170
  */
1129
1171
  serialize() {
1130
- const e = {};
1131
- return this.total !== void 0 && (e.total = this.total), this.position !== void 0 && (e.position = this.position), e;
1172
+ const t = {};
1173
+ return this.total !== void 0 && (t.total = this.total), this.position !== void 0 && (t.position = this.position), t;
1132
1174
  }
1133
1175
  }
1134
- class oe {
1176
+ class lt {
1135
1177
  /** Creates a [Copies]. */
1136
- constructor(e) {
1137
- this.total = e.total, this.available = e.available;
1178
+ constructor(t) {
1179
+ this.total = t.total, this.available = t.available;
1138
1180
  }
1139
1181
  /**
1140
1182
  * Parses a [Copies] from its RWPM JSON representation.
1141
1183
  */
1142
- static deserialize(e) {
1143
- if (e)
1144
- return new oe({
1145
- total: C(e.total),
1146
- available: C(e.available)
1184
+ static deserialize(t) {
1185
+ if (t)
1186
+ return new lt({
1187
+ total: T(t.total),
1188
+ available: T(t.available)
1147
1189
  });
1148
1190
  }
1149
1191
  /**
1150
1192
  * Serializes a [Copies] to its RWPM JSON representation.
1151
1193
  */
1152
1194
  serialize() {
1153
- const e = {};
1154
- return this.total !== void 0 && (e.total = this.total), this.available !== void 0 && (e.available = this.available), e;
1195
+ const t = {};
1196
+ return this.total !== void 0 && (t.total = this.total), this.available !== void 0 && (t.available = this.available), t;
1155
1197
  }
1156
1198
  }
1157
- class ae {
1199
+ class ht {
1158
1200
  /** Creates a [Availability]. */
1159
- constructor(e) {
1160
- this.state = e.state, this.since = e.since, this.until = e.until;
1201
+ constructor(t) {
1202
+ this.state = t.state, this.since = t.since, this.until = t.until;
1161
1203
  }
1162
1204
  /**
1163
1205
  * Parses a [Availability] from its RWPM JSON representation.
1164
1206
  */
1165
- static deserialize(e) {
1166
- if (e && e.state)
1167
- return new ae({
1168
- state: e.state,
1169
- since: ve(e.since),
1170
- until: ve(e.until)
1207
+ static deserialize(t) {
1208
+ if (t && t.state)
1209
+ return new ht({
1210
+ state: t.state,
1211
+ since: bt(t.since),
1212
+ until: bt(t.until)
1171
1213
  });
1172
1214
  }
1173
1215
  /**
1174
1216
  * Serializes a [Availability] to its RWPM JSON representation.
1175
1217
  */
1176
1218
  serialize() {
1177
- const e = { state: this.state };
1178
- return this.since !== void 0 && (e.since = this.since.toISOString()), this.until !== void 0 && (e.until = this.until.toISOString()), e;
1219
+ const t = { state: this.state };
1220
+ return this.since !== void 0 && (t.since = this.since.toISOString()), this.until !== void 0 && (t.until = this.until.toISOString()), t;
1179
1221
  }
1180
1222
  }
1181
- b.prototype.getNumberOfItems = function() {
1182
- return C(this.otherProperties.numberOfItems);
1183
- };
1184
- b.prototype.getPrice = function() {
1185
- return se.deserialize(this.otherProperties.price);
1186
- };
1187
- b.prototype.getIndirectAcquisitions = function() {
1188
- const r = this.otherProperties.indirectAcquisition;
1189
- if (r && r instanceof Array)
1190
- return r.map((e) => $.deserialize(e)).filter((e) => e !== void 0);
1191
- };
1192
- b.prototype.getHolds = function() {
1193
- return ne.deserialize(this.otherProperties.holds);
1223
+ w.prototype.getNumberOfItems = function() {
1224
+ return T(this.otherProperties.numberOfItems);
1194
1225
  };
1195
- b.prototype.getCopies = function() {
1196
- return oe.deserialize(this.otherProperties.copies);
1226
+ w.prototype.getPrice = function() {
1227
+ return ot.deserialize(this.otherProperties.price);
1197
1228
  };
1198
- b.prototype.getAvailability = function() {
1199
- return ae.deserialize(this.otherProperties.availability);
1229
+ w.prototype.getIndirectAcquisitions = function() {
1230
+ const s = this.otherProperties.indirectAcquisition;
1231
+ if (s && s instanceof Array)
1232
+ return s.map((t) => V.deserialize(t)).filter((t) => t !== void 0);
1200
1233
  };
1201
- b.prototype.getAuthenticate = function() {
1202
- return B.deserialize(this.otherProperties.authenticate);
1234
+ w.prototype.getHolds = function() {
1235
+ return at.deserialize(this.otherProperties.holds);
1203
1236
  };
1204
- b.prototype.getClipped = function() {
1205
- return this.otherProperties.clipped;
1237
+ w.prototype.getCopies = function() {
1238
+ return lt.deserialize(this.otherProperties.copies);
1206
1239
  };
1207
- b.prototype.getFit = function() {
1208
- return this.otherProperties.fit;
1240
+ w.prototype.getAvailability = function() {
1241
+ return ht.deserialize(this.otherProperties.availability);
1209
1242
  };
1210
- b.prototype.getOrientation = function() {
1211
- return this.otherProperties.orientation;
1243
+ w.prototype.getAuthenticate = function() {
1244
+ return k.deserialize(this.otherProperties.authenticate);
1212
1245
  };
1213
- b.prototype.getOverflow = function() {
1214
- return this.otherProperties.overflow;
1215
- };
1216
- b.prototype.getPage = function() {
1217
- return this.otherProperties.page || void 0;
1218
- };
1219
- b.prototype.getSpread = function() {
1220
- return this.otherProperties.spread || void 0;
1221
- };
1222
- var R;
1223
- (function(r) {
1224
- r.NONE = "none", r.DESCENDANT = "descendant", r.CHILD = "child";
1225
- })(R || (R = {}));
1226
- var N;
1227
- (function(r) {
1228
- r.id = "id", r.class = "class", r.tag = "tag", r.attribute = "attribute", r.nthchild = "nthchild", r.nthoftype = "nthoftype";
1229
- })(N || (N = {}));
1230
- const ct = "CssSelectorGenerator";
1231
- function be(r = "unknown problem", ...e) {
1232
- console.warn(`${ct}: ${r}`, ...e);
1233
- }
1234
- N.id, N.class, N.tag, N.attribute, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY;
1235
- function ut(r) {
1236
- return r instanceof RegExp;
1237
- }
1238
- function dt(r) {
1239
- return r.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".+");
1240
- }
1241
- function pt(r) {
1242
- const e = r.map((t) => {
1243
- if (ut(t))
1244
- return (i) => t.test(i);
1245
- if (typeof t == "function")
1246
+ var z;
1247
+ (function(s) {
1248
+ s.NONE = "none", s.DESCENDANT = "descendant", s.CHILD = "child";
1249
+ })(z || (z = {}));
1250
+ var M;
1251
+ (function(s) {
1252
+ s.id = "id", s.class = "class", s.tag = "tag", s.attribute = "attribute", s.nthchild = "nthchild", s.nthoftype = "nthoftype";
1253
+ })(M || (M = {}));
1254
+ const de = "CssSelectorGenerator";
1255
+ function xt(s = "unknown problem", ...t) {
1256
+ console.warn(`${de}: ${s}`, ...t);
1257
+ }
1258
+ M.id, M.class, M.tag, M.attribute, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY;
1259
+ function pe(s) {
1260
+ return s instanceof RegExp;
1261
+ }
1262
+ function fe(s) {
1263
+ return s.replace(/[|\\{}()[\]^$+?.]/g, "\\$&").replace(/\*/g, ".+");
1264
+ }
1265
+ function me(s) {
1266
+ const t = s.map((e) => {
1267
+ if (pe(e))
1268
+ return (i) => e.test(i);
1269
+ if (typeof e == "function")
1246
1270
  return (i) => {
1247
- const s = t(i);
1248
- return typeof s != "boolean" ? (be("pattern matcher function invalid", "Provided pattern matching function does not return boolean. It's result will be ignored.", t), !1) : s;
1271
+ const r = e(i);
1272
+ return typeof r != "boolean" ? (xt("pattern matcher function invalid", "Provided pattern matching function does not return boolean. It's result will be ignored.", e), !1) : r;
1249
1273
  };
1250
- if (typeof t == "string") {
1251
- const i = new RegExp("^" + dt(t) + "$");
1252
- return (s) => i.test(s);
1274
+ if (typeof e == "string") {
1275
+ const i = new RegExp("^" + fe(e) + "$");
1276
+ return (r) => i.test(r);
1253
1277
  }
1254
- return be("pattern matcher invalid", "Pattern matching only accepts strings, regular expressions and/or functions. This item is invalid and will be ignored.", t), () => !1;
1278
+ return xt("pattern matcher invalid", "Pattern matching only accepts strings, regular expressions and/or functions. This item is invalid and will be ignored.", e), () => !1;
1255
1279
  });
1256
- return (t) => e.some((i) => i(t));
1280
+ return (e) => t.some((i) => i(e));
1257
1281
  }
1258
- const ft = "", mt = " > ", gt = " ";
1259
- R.NONE + "", R.NONE, R.DESCENDANT + "", R.DESCENDANT, R.CHILD + "", R.CHILD;
1260
- N.nthoftype, N.tag, N.id, N.class, N.attribute, N.nthchild;
1261
- pt([
1282
+ const ge = "", ye = " > ", ve = " ";
1283
+ z.NONE + "", z.NONE, z.DESCENDANT + "", z.DESCENDANT, z.CHILD + "", z.CHILD;
1284
+ M.nthoftype, M.tag, M.id, M.class, M.attribute, M.nthchild;
1285
+ me([
1262
1286
  "class",
1263
1287
  "id",
1264
1288
  // Angular attributes
1265
1289
  "ng-*"
1266
1290
  ]);
1267
- class Y {
1291
+ class K {
1268
1292
  }
1269
- function Ee(r) {
1270
- return r.split("").reverse().join("");
1293
+ function St(s) {
1294
+ return s.split("").reverse().join("");
1271
1295
  }
1272
- function yt(r, e, t) {
1273
- const i = Ee(e);
1274
- return t.map((s) => {
1275
- const n = Math.max(0, s.end - e.length - s.errors), o = Ee(r.slice(n, s.end));
1296
+ function be(s, t, e) {
1297
+ const i = St(t);
1298
+ return e.map((r) => {
1299
+ const n = Math.max(0, r.end - t.length - r.errors), o = St(s.slice(n, r.end));
1276
1300
  return {
1277
- start: Fe(o, i, s.errors).reduce((c, h) => s.end - h.end < c ? s.end - h.end : c, s.end),
1278
- end: s.end,
1279
- errors: s.errors
1301
+ start: Bt(o, i, r.errors).reduce((c, h) => r.end - h.end < c ? r.end - h.end : c, r.end),
1302
+ end: r.end,
1303
+ errors: r.errors
1280
1304
  };
1281
1305
  });
1282
1306
  }
1283
- function Z(r) {
1284
- return (r | -r) >> 31 & 1;
1307
+ function Q(s) {
1308
+ return (s | -s) >> 31 & 1;
1285
1309
  }
1286
- function xe(r, e, t, i) {
1287
- let s = r.P[t], n = r.M[t];
1288
- const o = i >>> 31, l = e[t] | o, c = l | n, h = (l & s) + s ^ s | l;
1289
- let u = n | ~(h | s), p = s & h;
1290
- const d = Z(u & r.lastRowMask[t]) - Z(p & r.lastRowMask[t]);
1291
- return u <<= 1, p <<= 1, p |= o, u |= Z(i) - o, s = p | ~(c | u), n = u & c, r.P[t] = s, r.M[t] = n, d;
1310
+ function Tt(s, t, e, i) {
1311
+ let r = s.P[e], n = s.M[e];
1312
+ const o = i >>> 31, l = t[e] | o, c = l | n, h = (l & r) + r ^ r | l;
1313
+ let u = n | ~(h | r), p = r & h;
1314
+ const d = Q(u & s.lastRowMask[e]) - Q(p & s.lastRowMask[e]);
1315
+ return u <<= 1, p <<= 1, p |= o, u |= Q(i) - o, r = p | ~(c | u), n = u & c, s.P[e] = r, s.M[e] = n, d;
1292
1316
  }
1293
- function Fe(r, e, t) {
1294
- if (e.length === 0)
1317
+ function Bt(s, t, e) {
1318
+ if (t.length === 0)
1295
1319
  return [];
1296
- t = Math.min(t, e.length);
1297
- const i = [], s = 32, n = Math.ceil(e.length / s) - 1, o = {
1320
+ e = Math.min(e, t.length);
1321
+ const i = [], r = 32, n = Math.ceil(t.length / r) - 1, o = {
1298
1322
  P: new Uint32Array(n + 1),
1299
1323
  M: new Uint32Array(n + 1),
1300
1324
  lastRowMask: new Uint32Array(n + 1)
1301
1325
  };
1302
- o.lastRowMask.fill(1 << 31), o.lastRowMask[n] = 1 << (e.length - 1) % s;
1326
+ o.lastRowMask.fill(1 << 31), o.lastRowMask[n] = 1 << (t.length - 1) % r;
1303
1327
  const l = new Uint32Array(n + 1), c = /* @__PURE__ */ new Map(), h = [];
1304
1328
  for (let d = 0; d < 256; d++)
1305
1329
  h.push(l);
1306
- for (let d = 0; d < e.length; d += 1) {
1307
- const f = e.charCodeAt(d);
1330
+ for (let d = 0; d < t.length; d += 1) {
1331
+ const f = t.charCodeAt(d);
1308
1332
  if (c.has(f))
1309
1333
  continue;
1310
1334
  const g = new Uint32Array(n + 1);
1311
1335
  c.set(f, g), f < h.length && (h[f] = g);
1312
1336
  for (let m = 0; m <= n; m += 1) {
1313
1337
  g[m] = 0;
1314
- for (let v = 0; v < s; v += 1) {
1315
- const S = m * s + v;
1316
- if (S >= e.length)
1338
+ for (let v = 0; v < r; v += 1) {
1339
+ const x = m * r + v;
1340
+ if (x >= t.length)
1317
1341
  continue;
1318
- e.charCodeAt(S) === f && (g[m] |= 1 << v);
1342
+ t.charCodeAt(x) === f && (g[m] |= 1 << v);
1319
1343
  }
1320
1344
  }
1321
1345
  }
1322
- let u = Math.max(0, Math.ceil(t / s) - 1);
1346
+ let u = Math.max(0, Math.ceil(e / r) - 1);
1323
1347
  const p = new Uint32Array(n + 1);
1324
1348
  for (let d = 0; d <= u; d += 1)
1325
- p[d] = (d + 1) * s;
1326
- p[n] = e.length;
1349
+ p[d] = (d + 1) * r;
1350
+ p[n] = t.length;
1327
1351
  for (let d = 0; d <= u; d += 1)
1328
1352
  o.P[d] = -1, o.M[d] = 0;
1329
- for (let d = 0; d < r.length; d += 1) {
1330
- const f = r.charCodeAt(d);
1353
+ for (let d = 0; d < s.length; d += 1) {
1354
+ const f = s.charCodeAt(d);
1331
1355
  let g;
1332
1356
  f < h.length ? g = h[f] : (g = c.get(f), typeof g > "u" && (g = l));
1333
1357
  let m = 0;
1334
1358
  for (let v = 0; v <= u; v += 1)
1335
- m = xe(o, g, v, m), p[v] += m;
1336
- if (p[u] - m <= t && u < n && (g[u + 1] & 1 || m < 0)) {
1359
+ m = Tt(o, g, v, m), p[v] += m;
1360
+ if (p[u] - m <= e && u < n && (g[u + 1] & 1 || m < 0)) {
1337
1361
  u += 1, o.P[u] = -1, o.M[u] = 0;
1338
1362
  let v;
1339
1363
  if (u === n) {
1340
- const S = e.length % s;
1341
- v = S === 0 ? s : S;
1364
+ const x = t.length % r;
1365
+ v = x === 0 ? r : x;
1342
1366
  } else
1343
- v = s;
1344
- p[u] = p[u - 1] + v - m + xe(o, g, u, m);
1367
+ v = r;
1368
+ p[u] = p[u - 1] + v - m + Tt(o, g, u, m);
1345
1369
  } else
1346
- for (; u > 0 && p[u] >= t + s; )
1370
+ for (; u > 0 && p[u] >= e + r; )
1347
1371
  u -= 1;
1348
- u === n && p[u] <= t && (p[u] < t && i.splice(0, i.length), i.push({
1372
+ u === n && p[u] <= e && (p[u] < e && i.splice(0, i.length), i.push({
1349
1373
  start: -1,
1350
1374
  end: d + 1,
1351
1375
  errors: p[u]
1352
- }), t = p[u]);
1376
+ }), e = p[u]);
1353
1377
  }
1354
1378
  return i;
1355
1379
  }
1356
- function vt(r, e, t) {
1357
- const i = Fe(r, e, t);
1358
- return yt(r, e, i);
1380
+ function Ee(s, t, e) {
1381
+ const i = Bt(s, t, e);
1382
+ return be(s, t, i);
1359
1383
  }
1360
- function Be(r, e, t) {
1384
+ function kt(s, t, e) {
1361
1385
  let i = 0;
1362
- const s = [];
1386
+ const r = [];
1363
1387
  for (; i !== -1; )
1364
- i = r.indexOf(e, i), i !== -1 && (s.push({
1388
+ i = s.indexOf(t, i), i !== -1 && (r.push({
1365
1389
  start: i,
1366
- end: i + e.length,
1390
+ end: i + t.length,
1367
1391
  errors: 0
1368
1392
  }), i += 1);
1369
- return s.length > 0 ? s : vt(r, e, t);
1393
+ return r.length > 0 ? r : Ee(s, t, e);
1370
1394
  }
1371
- function Se(r, e) {
1372
- return e.length === 0 || r.length === 0 ? 0 : 1 - Be(r, e, e.length)[0].errors / e.length;
1395
+ function wt(s, t) {
1396
+ return t.length === 0 || s.length === 0 ? 0 : 1 - kt(s, t, t.length)[0].errors / t.length;
1373
1397
  }
1374
- function bt(r, e, t = {}) {
1375
- if (e.length === 0)
1398
+ function xe(s, t, e = {}) {
1399
+ if (t.length === 0)
1376
1400
  return null;
1377
- const i = Math.min(256, e.length / 2), s = Be(r, e, i);
1378
- if (s.length === 0)
1401
+ const i = Math.min(256, t.length / 2), r = kt(s, t, i);
1402
+ if (r.length === 0)
1379
1403
  return null;
1380
1404
  const n = (l) => {
1381
- const d = 1 - l.errors / e.length, f = t.prefix ? Se(
1382
- r.slice(
1383
- Math.max(0, l.start - t.prefix.length),
1405
+ const d = 1 - l.errors / t.length, f = e.prefix ? wt(
1406
+ s.slice(
1407
+ Math.max(0, l.start - e.prefix.length),
1384
1408
  l.start
1385
1409
  ),
1386
- t.prefix
1387
- ) : 1, g = t.suffix ? Se(
1388
- r.slice(l.end, l.end + t.suffix.length),
1389
- t.suffix
1410
+ e.prefix
1411
+ ) : 1, g = e.suffix ? wt(
1412
+ s.slice(l.end, l.end + e.suffix.length),
1413
+ e.suffix
1390
1414
  ) : 1;
1391
1415
  let m = 1;
1392
- typeof t.hint == "number" && (m = 1 - Math.abs(l.start - t.hint) / r.length);
1393
- const v = 50 * d + 20 * f + 20 * g + 2 * m, S = 50 + 20 + 20 + 2;
1394
- return v / S;
1395
- }, o = s.map((l) => ({
1416
+ typeof e.hint == "number" && (m = 1 - Math.abs(l.start - e.hint) / s.length);
1417
+ const v = 50 * d + 20 * f + 20 * g + 2 * m, x = 50 + 20 + 20 + 2;
1418
+ return v / x;
1419
+ }, o = r.map((l) => ({
1396
1420
  start: l.start,
1397
1421
  end: l.end,
1398
1422
  score: n(l)
1399
1423
  }));
1400
1424
  return o.sort((l, c) => c.score - l.score), o[0];
1401
1425
  }
1402
- function J(r, e, t) {
1403
- const i = t === 1 ? e : e - 1;
1404
- if (r.charAt(i).trim() !== "")
1405
- return e;
1406
- let s, n;
1407
- if (t === 2 ? (s = r.substring(0, e), n = s.trimEnd()) : (s = r.substring(e), n = s.trimStart()), !n.length)
1426
+ function tt(s, t, e) {
1427
+ const i = e === 1 ? t : t - 1;
1428
+ if (s.charAt(i).trim() !== "")
1429
+ return t;
1430
+ let r, n;
1431
+ if (e === 2 ? (r = s.substring(0, t), n = r.trimEnd()) : (r = s.substring(t), n = r.trimStart()), !n.length)
1408
1432
  return -1;
1409
- const o = s.length - n.length;
1410
- return t === 2 ? e - o : e + o;
1433
+ const o = r.length - n.length;
1434
+ return e === 2 ? t - o : t + o;
1411
1435
  }
1412
- function Te(r, e) {
1413
- const t = r.commonAncestorContainer.ownerDocument.createNodeIterator(
1414
- r.commonAncestorContainer,
1436
+ function Ct(s, t) {
1437
+ const e = s.commonAncestorContainer.ownerDocument.createNodeIterator(
1438
+ s.commonAncestorContainer,
1415
1439
  NodeFilter.SHOW_TEXT
1416
- ), i = e === 1 ? r.startContainer : r.endContainer, s = e === 1 ? r.endContainer : r.startContainer;
1417
- let n = t.nextNode();
1440
+ ), i = t === 1 ? s.startContainer : s.endContainer, r = t === 1 ? s.endContainer : s.startContainer;
1441
+ let n = e.nextNode();
1418
1442
  for (; n && n !== i; )
1419
- n = t.nextNode();
1420
- e === 2 && (n = t.previousNode());
1443
+ n = e.nextNode();
1444
+ t === 2 && (n = e.previousNode());
1421
1445
  let o = -1;
1422
1446
  const l = () => {
1423
- if (n = e === 1 ? t.nextNode() : t.previousNode(), n) {
1424
- const c = n.textContent, h = e === 1 ? 0 : c.length;
1425
- o = J(c, h, e);
1447
+ if (n = t === 1 ? e.nextNode() : e.previousNode(), n) {
1448
+ const c = n.textContent, h = t === 1 ? 0 : c.length;
1449
+ o = tt(c, h, t);
1426
1450
  }
1427
1451
  };
1428
- for (; n && o === -1 && n !== s; )
1452
+ for (; n && o === -1 && n !== r; )
1429
1453
  l();
1430
1454
  if (n && o >= 0)
1431
1455
  return { node: n, offset: o };
1432
1456
  throw new RangeError("No text nodes with non-whitespace text found in range");
1433
1457
  }
1434
- function Et(r) {
1435
- if (!r.toString().trim().length)
1458
+ function Se(s) {
1459
+ if (!s.toString().trim().length)
1436
1460
  throw new RangeError("Range contains no non-whitespace text");
1437
- if (r.startContainer.nodeType !== Node.TEXT_NODE)
1461
+ if (s.startContainer.nodeType !== Node.TEXT_NODE)
1438
1462
  throw new RangeError("Range startContainer is not a text node");
1439
- if (r.endContainer.nodeType !== Node.TEXT_NODE)
1463
+ if (s.endContainer.nodeType !== Node.TEXT_NODE)
1440
1464
  throw new RangeError("Range endContainer is not a text node");
1441
- const e = r.cloneRange();
1442
- let t = !1, i = !1;
1443
- const s = {
1444
- start: J(
1445
- r.startContainer.textContent,
1446
- r.startOffset,
1465
+ const t = s.cloneRange();
1466
+ let e = !1, i = !1;
1467
+ const r = {
1468
+ start: tt(
1469
+ s.startContainer.textContent,
1470
+ s.startOffset,
1447
1471
  1
1448
1472
  /* Forwards */
1449
1473
  ),
1450
- end: J(
1451
- r.endContainer.textContent,
1452
- r.endOffset,
1474
+ end: tt(
1475
+ s.endContainer.textContent,
1476
+ s.endOffset,
1453
1477
  2
1454
1478
  /* Backwards */
1455
1479
  )
1456
1480
  };
1457
- if (s.start >= 0 && (e.setStart(r.startContainer, s.start), t = !0), s.end > 0 && (e.setEnd(r.endContainer, s.end), i = !0), t && i)
1458
- return e;
1459
- if (!t) {
1460
- const { node: n, offset: o } = Te(
1461
- e,
1481
+ if (r.start >= 0 && (t.setStart(s.startContainer, r.start), e = !0), r.end > 0 && (t.setEnd(s.endContainer, r.end), i = !0), e && i)
1482
+ return t;
1483
+ if (!e) {
1484
+ const { node: n, offset: o } = Ct(
1485
+ t,
1462
1486
  1
1463
1487
  /* Forwards */
1464
1488
  );
1465
- n && o >= 0 && e.setStart(n, o);
1489
+ n && o >= 0 && t.setStart(n, o);
1466
1490
  }
1467
1491
  if (!i) {
1468
- const { node: n, offset: o } = Te(
1469
- e,
1492
+ const { node: n, offset: o } = Ct(
1493
+ t,
1470
1494
  2
1471
1495
  /* Backwards */
1472
1496
  );
1473
- n && o > 0 && e.setEnd(n, o);
1497
+ n && o > 0 && t.setEnd(n, o);
1474
1498
  }
1475
- return e;
1499
+ return t;
1476
1500
  }
1477
- function Ue(r) {
1478
- var e;
1479
- switch (r.nodeType) {
1501
+ function $t(s) {
1502
+ var t;
1503
+ switch (s.nodeType) {
1480
1504
  case Node.ELEMENT_NODE:
1481
1505
  case Node.TEXT_NODE:
1482
- return ((e = r.textContent) == null ? void 0 : e.length) ?? 0;
1506
+ return ((t = s.textContent) == null ? void 0 : t.length) ?? 0;
1483
1507
  default:
1484
1508
  return 0;
1485
1509
  }
1486
1510
  }
1487
- function we(r) {
1488
- let e = r.previousSibling, t = 0;
1489
- for (; e; )
1490
- t += Ue(e), e = e.previousSibling;
1491
- return t;
1511
+ function Pt(s) {
1512
+ let t = s.previousSibling, e = 0;
1513
+ for (; t; )
1514
+ e += $t(t), t = t.previousSibling;
1515
+ return e;
1492
1516
  }
1493
- function ke(r, ...e) {
1494
- let t = e.shift();
1495
- const i = r.ownerDocument.createNodeIterator(
1496
- r,
1517
+ function Ht(s, ...t) {
1518
+ let e = t.shift();
1519
+ const i = s.ownerDocument.createNodeIterator(
1520
+ s,
1497
1521
  NodeFilter.SHOW_TEXT
1498
- ), s = [];
1522
+ ), r = [];
1499
1523
  let n = i.nextNode(), o, l = 0;
1500
- for (; t !== void 0 && n; )
1501
- o = n, l + o.data.length > t ? (s.push({ node: o, offset: t - l }), t = e.shift()) : (n = i.nextNode(), l += o.data.length);
1502
- for (; t !== void 0 && o && l === t; )
1503
- s.push({ node: o, offset: o.data.length }), t = e.shift();
1504
- if (t !== void 0)
1524
+ for (; e !== void 0 && n; )
1525
+ o = n, l + o.data.length > e ? (r.push({ node: o, offset: e - l }), e = t.shift()) : (n = i.nextNode(), l += o.data.length);
1526
+ for (; e !== void 0 && o && l === e; )
1527
+ r.push({ node: o, offset: o.data.length }), e = t.shift();
1528
+ if (e !== void 0)
1505
1529
  throw new RangeError("Offset exceeds text length");
1506
- return s;
1530
+ return r;
1507
1531
  }
1508
1532
  class A {
1509
- constructor(e, t) {
1510
- if (t < 0)
1533
+ constructor(t, e) {
1534
+ if (e < 0)
1511
1535
  throw new Error("Offset is invalid");
1512
- this.element = e, this.offset = t;
1536
+ this.element = t, this.offset = e;
1513
1537
  }
1514
1538
  /**
1515
1539
  * Return a copy of this position with offset relative to a given ancestor
@@ -1517,13 +1541,13 @@ class A {
1517
1541
  *
1518
1542
  * @param parent - Ancestor of `this.element`
1519
1543
  */
1520
- relativeTo(e) {
1521
- if (!e.contains(this.element))
1544
+ relativeTo(t) {
1545
+ if (!t.contains(this.element))
1522
1546
  throw new Error("Parent is not an ancestor of current element");
1523
- let t = this.element, i = this.offset;
1524
- for (; t !== e; )
1525
- i += we(t), t = t.parentElement;
1526
- return new A(t, i);
1547
+ let e = this.element, i = this.offset;
1548
+ for (; e !== t; )
1549
+ i += Pt(e), e = e.parentElement;
1550
+ return new A(e, i);
1527
1551
  }
1528
1552
  /**
1529
1553
  * Resolve the position to a specific text node and offset within that node.
@@ -1542,34 +1566,34 @@ class A {
1542
1566
  *
1543
1567
  * @throws {RangeError}
1544
1568
  */
1545
- resolve(e = {}) {
1569
+ resolve(t = {}) {
1546
1570
  try {
1547
- return ke(this.element, this.offset)[0];
1548
- } catch (t) {
1549
- if (this.offset === 0 && e.direction !== void 0) {
1571
+ return Ht(this.element, this.offset)[0];
1572
+ } catch (e) {
1573
+ if (this.offset === 0 && t.direction !== void 0) {
1550
1574
  const i = document.createTreeWalker(
1551
1575
  this.element.getRootNode(),
1552
1576
  NodeFilter.SHOW_TEXT
1553
1577
  );
1554
1578
  i.currentNode = this.element;
1555
- const s = e.direction === 1, n = s ? i.nextNode() : i.previousNode();
1579
+ const r = t.direction === 1, n = r ? i.nextNode() : i.previousNode();
1556
1580
  if (!n)
1557
- throw t;
1558
- return { node: n, offset: s ? 0 : n.data.length };
1581
+ throw e;
1582
+ return { node: n, offset: r ? 0 : n.data.length };
1559
1583
  } else
1560
- throw t;
1584
+ throw e;
1561
1585
  }
1562
1586
  }
1563
1587
  /**
1564
1588
  * Construct a `TextPosition` that refers to the `offset`th character within
1565
1589
  * `node`.
1566
1590
  */
1567
- static fromCharOffset(e, t) {
1568
- switch (e.nodeType) {
1591
+ static fromCharOffset(t, e) {
1592
+ switch (t.nodeType) {
1569
1593
  case Node.TEXT_NODE:
1570
- return A.fromPoint(e, t);
1594
+ return A.fromPoint(t, e);
1571
1595
  case Node.ELEMENT_NODE:
1572
- return new A(e, t);
1596
+ return new A(t, e);
1573
1597
  default:
1574
1598
  throw new Error("Node is not an element or text node");
1575
1599
  }
@@ -1580,42 +1604,42 @@ class A {
1580
1604
  * @param node
1581
1605
  * @param offset - Offset within the node
1582
1606
  */
1583
- static fromPoint(e, t) {
1584
- switch (e.nodeType) {
1607
+ static fromPoint(t, e) {
1608
+ switch (t.nodeType) {
1585
1609
  case Node.TEXT_NODE: {
1586
- if (t < 0 || t > e.data.length)
1610
+ if (e < 0 || e > t.data.length)
1587
1611
  throw new Error("Text node offset is out of range");
1588
- if (!e.parentElement)
1612
+ if (!t.parentElement)
1589
1613
  throw new Error("Text node has no parent");
1590
- const i = we(e) + t;
1591
- return new A(e.parentElement, i);
1614
+ const i = Pt(t) + e;
1615
+ return new A(t.parentElement, i);
1592
1616
  }
1593
1617
  case Node.ELEMENT_NODE: {
1594
- if (t < 0 || t > e.childNodes.length)
1618
+ if (e < 0 || e > t.childNodes.length)
1595
1619
  throw new Error("Child node offset is out of range");
1596
1620
  let i = 0;
1597
- for (let s = 0; s < t; s++)
1598
- i += Ue(e.childNodes[s]);
1599
- return new A(e, i);
1621
+ for (let r = 0; r < e; r++)
1622
+ i += $t(t.childNodes[r]);
1623
+ return new A(t, i);
1600
1624
  }
1601
1625
  default:
1602
1626
  throw new Error("Point is not in an element or text node");
1603
1627
  }
1604
1628
  }
1605
1629
  }
1606
- class z {
1607
- constructor(e, t) {
1608
- this.start = e, this.end = t;
1630
+ class D {
1631
+ constructor(t, e) {
1632
+ this.start = t, this.end = e;
1609
1633
  }
1610
1634
  /**
1611
1635
  * Create a new TextRange whose `start` and `end` are computed relative to
1612
1636
  * `element`. `element` must be an ancestor of both `start.element` and
1613
1637
  * `end.element`.
1614
1638
  */
1615
- relativeTo(e) {
1616
- return new z(
1617
- this.start.relativeTo(e),
1618
- this.end.relativeTo(e)
1639
+ relativeTo(t) {
1640
+ return new D(
1641
+ this.start.relativeTo(t),
1642
+ this.end.relativeTo(t)
1619
1643
  );
1620
1644
  }
1621
1645
  /**
@@ -1628,63 +1652,63 @@ class z {
1628
1652
  * May throw if the `start` or `end` positions cannot be resolved to a range.
1629
1653
  */
1630
1654
  toRange() {
1631
- let e, t;
1632
- this.start.element === this.end.element && this.start.offset <= this.end.offset ? [e, t] = ke(
1655
+ let t, e;
1656
+ this.start.element === this.end.element && this.start.offset <= this.end.offset ? [t, e] = Ht(
1633
1657
  this.start.element,
1634
1658
  this.start.offset,
1635
1659
  this.end.offset
1636
- ) : (e = this.start.resolve({
1660
+ ) : (t = this.start.resolve({
1637
1661
  direction: 1
1638
1662
  /* FORWARDS */
1639
- }), t = this.end.resolve({
1663
+ }), e = this.end.resolve({
1640
1664
  direction: 2
1641
1665
  /* BACKWARDS */
1642
1666
  }));
1643
1667
  const i = new Range();
1644
- return i.setStart(e.node, e.offset), i.setEnd(t.node, t.offset), i;
1668
+ return i.setStart(t.node, t.offset), i.setEnd(e.node, e.offset), i;
1645
1669
  }
1646
1670
  /**
1647
1671
  * Create a TextRange from a (DOM) Range
1648
1672
  */
1649
- static fromRange(e) {
1650
- const t = A.fromPoint(
1651
- e.startContainer,
1652
- e.startOffset
1653
- ), i = A.fromPoint(e.endContainer, e.endOffset);
1654
- return new z(t, i);
1673
+ static fromRange(t) {
1674
+ const e = A.fromPoint(
1675
+ t.startContainer,
1676
+ t.startOffset
1677
+ ), i = A.fromPoint(t.endContainer, t.endOffset);
1678
+ return new D(e, i);
1655
1679
  }
1656
1680
  /**
1657
1681
  * Create a TextRange representing the `start`th to `end`th characters in
1658
1682
  * `root`
1659
1683
  */
1660
- static fromOffsets(e, t, i) {
1661
- return new z(
1662
- new A(e, t),
1663
- new A(e, i)
1684
+ static fromOffsets(t, e, i) {
1685
+ return new D(
1686
+ new A(t, e),
1687
+ new A(t, i)
1664
1688
  );
1665
1689
  }
1666
1690
  /**
1667
1691
  * Return a new Range representing `range` trimmed of any leading or trailing
1668
1692
  * whitespace
1669
1693
  */
1670
- static trimmedRange(e) {
1671
- return Et(z.fromRange(e).toRange());
1694
+ static trimmedRange(t) {
1695
+ return Se(D.fromRange(t).toRange());
1672
1696
  }
1673
1697
  }
1674
- class _ {
1675
- constructor(e, t, i) {
1676
- this.root = e, this.start = t, this.end = i;
1698
+ class G {
1699
+ constructor(t, e, i) {
1700
+ this.root = t, this.start = e, this.end = i;
1677
1701
  }
1678
- static fromRange(e, t) {
1679
- const i = z.fromRange(t).relativeTo(e);
1680
- return new _(
1681
- e,
1702
+ static fromRange(t, e) {
1703
+ const i = D.fromRange(e).relativeTo(t);
1704
+ return new G(
1705
+ t,
1682
1706
  i.start.offset,
1683
1707
  i.end.offset
1684
1708
  );
1685
1709
  }
1686
- static fromSelector(e, t) {
1687
- return new _(e, t.start, t.end);
1710
+ static fromSelector(t, e) {
1711
+ return new G(t, e.start, e.end);
1688
1712
  }
1689
1713
  toSelector() {
1690
1714
  return {
@@ -1694,31 +1718,31 @@ class _ {
1694
1718
  };
1695
1719
  }
1696
1720
  toRange() {
1697
- return z.fromOffsets(this.root, this.start, this.end).toRange();
1721
+ return D.fromOffsets(this.root, this.start, this.end).toRange();
1698
1722
  }
1699
1723
  }
1700
- class X {
1724
+ class Y {
1701
1725
  /**
1702
1726
  * @param root - A root element from which to anchor.
1703
1727
  */
1704
- constructor(e, t, i = {}) {
1705
- this.root = e, this.exact = t, this.context = i;
1728
+ constructor(t, e, i = {}) {
1729
+ this.root = t, this.exact = e, this.context = i;
1706
1730
  }
1707
1731
  /**
1708
1732
  * Create a `TextQuoteAnchor` from a range.
1709
1733
  *
1710
1734
  * Will throw if `range` does not contain any text nodes.
1711
1735
  */
1712
- static fromRange(e, t) {
1713
- const i = e.textContent, s = z.fromRange(t).relativeTo(e), n = s.start.offset, o = s.end.offset, l = 32;
1714
- return new X(e, i.slice(n, o), {
1736
+ static fromRange(t, e) {
1737
+ const i = t.textContent, r = D.fromRange(e).relativeTo(t), n = r.start.offset, o = r.end.offset, l = 32;
1738
+ return new Y(t, i.slice(n, o), {
1715
1739
  prefix: i.slice(Math.max(0, n - l), n),
1716
1740
  suffix: i.slice(o, Math.min(i.length, o + l))
1717
1741
  });
1718
1742
  }
1719
- static fromSelector(e, t) {
1720
- const { prefix: i, suffix: s } = t;
1721
- return new X(e, t.exact, { prefix: i, suffix: s });
1743
+ static fromSelector(t, e) {
1744
+ const { prefix: i, suffix: r } = e;
1745
+ return new Y(t, e.exact, { prefix: i, suffix: r });
1722
1746
  }
1723
1747
  toSelector() {
1724
1748
  return {
@@ -1728,30 +1752,30 @@ class X {
1728
1752
  suffix: this.context.suffix
1729
1753
  };
1730
1754
  }
1731
- toRange(e = {}) {
1732
- return this.toPositionAnchor(e).toRange();
1755
+ toRange(t = {}) {
1756
+ return this.toPositionAnchor(t).toRange();
1733
1757
  }
1734
- toPositionAnchor(e = {}) {
1735
- const t = this.root.textContent, i = bt(t, this.exact, {
1758
+ toPositionAnchor(t = {}) {
1759
+ const e = this.root.textContent, i = xe(e, this.exact, {
1736
1760
  ...this.context,
1737
- hint: e.hint
1761
+ hint: t.hint
1738
1762
  });
1739
1763
  if (!i)
1740
1764
  throw new Error("Quote not found");
1741
- return new _(this.root, i.start, i.end);
1765
+ return new G(this.root, i.start, i.end);
1742
1766
  }
1743
1767
  }
1744
- function xt(r) {
1745
- const e = r.tagName.toUpperCase();
1746
- return e === "IMG" || e === "VIDEO" || e === "AUDIO" || e === "IFRAME" || e === "OBJECT" || e === "EMBED" || e === "CANVAS";
1768
+ function Te(s) {
1769
+ const t = s.tagName.toUpperCase();
1770
+ return t === "IMG" || t === "VIDEO" || t === "AUDIO" || t === "IFRAME" || t === "OBJECT" || t === "EMBED" || t === "CANVAS";
1747
1771
  }
1748
- function le(r, e) {
1772
+ function ct(s, t) {
1749
1773
  try {
1750
- const t = e.locations, i = e.text;
1774
+ const e = t.locations, i = t.text;
1751
1775
  if (i && i.highlight) {
1752
- let s;
1753
- t && t.getCssSelector() && (s = r.querySelector(t.getCssSelector())), s || (s = r.body);
1754
- const n = new X(s, i.highlight, {
1776
+ let r;
1777
+ e && e.getCssSelector() && (r = s.querySelector(e.getCssSelector())), r || (r = s.body);
1778
+ const n = new Y(r, i.highlight, {
1755
1779
  prefix: i.before,
1756
1780
  suffix: i.after
1757
1781
  });
@@ -1761,29 +1785,29 @@ function le(r, e) {
1761
1785
  return console.warn("Quote not found:", n), null;
1762
1786
  }
1763
1787
  }
1764
- if (t) {
1765
- let s = null;
1766
- if (!s && t.getCssSelector() && (s = r.querySelector(t.getCssSelector())), !s && t.fragments) {
1767
- for (const n of t.fragments)
1768
- if (s = r.getElementById(n), s)
1788
+ if (e) {
1789
+ let r = null;
1790
+ if (!r && e.getCssSelector() && (r = s.querySelector(e.getCssSelector())), !r && e.fragments) {
1791
+ for (const n of e.fragments)
1792
+ if (r = s.getElementById(n), r)
1769
1793
  break;
1770
1794
  }
1771
- if (s) {
1772
- const n = r.createRange();
1773
- return s.childNodes.length === 0 || xt(s) ? (n.selectNode(s), n) : (n.setStartBefore(s), n.setEndAfter(s), n);
1795
+ if (r) {
1796
+ const n = s.createRange();
1797
+ return r.childNodes.length === 0 || Te(r) ? (n.selectNode(r), n) : (n.setStartBefore(r), n.setEndAfter(r), n);
1774
1798
  }
1775
1799
  }
1776
- } catch (t) {
1777
- console.error(t);
1800
+ } catch (e) {
1801
+ console.error(e);
1778
1802
  }
1779
1803
  return null;
1780
1804
  }
1781
- function St(r, e) {
1782
- let t = r.getClientRects();
1783
- t.length || r.commonAncestorContainer.nodeType === Node.ELEMENT_NODE && (t = r.commonAncestorContainer.getClientRects());
1784
- const i = 1, s = [];
1785
- for (const h of t)
1786
- s.push({
1805
+ function we(s, t) {
1806
+ let e = s.getClientRects();
1807
+ e.length || s.commonAncestorContainer.nodeType === Node.ELEMENT_NODE && (e = s.commonAncestorContainer.getClientRects());
1808
+ const i = 1, r = [];
1809
+ for (const h of e)
1810
+ r.push({
1787
1811
  bottom: h.bottom,
1788
1812
  height: h.height,
1789
1813
  left: h.left,
@@ -1791,11 +1815,11 @@ function St(r, e) {
1791
1815
  top: h.top,
1792
1816
  width: h.width
1793
1817
  });
1794
- const n = $e(
1795
- s,
1818
+ const n = Vt(
1819
+ r,
1796
1820
  i,
1797
- e
1798
- ), o = wt(n, i), l = He(o), c = 2 * 2;
1821
+ t
1822
+ ), o = Pe(n, i), l = jt(o), c = 2 * 2;
1799
1823
  for (let h = l.length - 1; h >= 0; h--) {
1800
1824
  const u = l[h];
1801
1825
  if (!(u.width * u.height > c))
@@ -1806,231 +1830,231 @@ function St(r, e) {
1806
1830
  }
1807
1831
  return l;
1808
1832
  }
1809
- function $e(r, e, t) {
1810
- for (let i = 0; i < r.length; i++)
1811
- for (let s = i + 1; s < r.length; s++) {
1812
- const n = r[i], o = r[s];
1833
+ function Vt(s, t, e) {
1834
+ for (let i = 0; i < s.length; i++)
1835
+ for (let r = i + 1; r < s.length; r++) {
1836
+ const n = s[i], o = s[r];
1813
1837
  if (n === o)
1814
1838
  continue;
1815
- const l = M(n.top, o.top, e) && M(n.bottom, o.bottom, e), c = M(n.left, o.left, e) && M(n.right, o.right, e);
1816
- if ((c && !t || l && !c) && je(n, o, e)) {
1817
- const d = r.filter((g) => g !== n && g !== o), f = Tt(n, o);
1818
- return d.push(f), $e(
1839
+ const l = N(n.top, o.top, t) && N(n.bottom, o.bottom, t), c = N(n.left, o.left, t) && N(n.right, o.right, t);
1840
+ if ((c && !e || l && !c) && qt(n, o, t)) {
1841
+ const d = s.filter((g) => g !== n && g !== o), f = Ce(n, o);
1842
+ return d.push(f), Vt(
1819
1843
  d,
1820
- e,
1821
- t
1844
+ t,
1845
+ e
1822
1846
  );
1823
1847
  }
1824
1848
  }
1825
- return r;
1849
+ return s;
1826
1850
  }
1827
- function Tt(r, e) {
1828
- const t = Math.min(r.left, e.left), i = Math.max(r.right, e.right), s = Math.min(r.top, e.top), n = Math.max(r.bottom, e.bottom);
1851
+ function Ce(s, t) {
1852
+ const e = Math.min(s.left, t.left), i = Math.max(s.right, t.right), r = Math.min(s.top, t.top), n = Math.max(s.bottom, t.bottom);
1829
1853
  return {
1830
1854
  bottom: n,
1831
- height: n - s,
1832
- left: t,
1855
+ height: n - r,
1856
+ left: e,
1833
1857
  right: i,
1834
- top: s,
1835
- width: i - t
1858
+ top: r,
1859
+ width: i - e
1836
1860
  };
1837
1861
  }
1838
- function wt(r, e) {
1839
- const t = new Set(r);
1840
- for (const i of r) {
1862
+ function Pe(s, t) {
1863
+ const e = new Set(s);
1864
+ for (const i of s) {
1841
1865
  if (!(i.width > 1 && i.height > 1)) {
1842
- t.delete(i);
1866
+ e.delete(i);
1843
1867
  continue;
1844
1868
  }
1845
- for (const n of r)
1846
- if (i !== n && t.has(n) && Ct(n, i, e)) {
1847
- t.delete(i);
1869
+ for (const n of s)
1870
+ if (i !== n && e.has(n) && Me(n, i, t)) {
1871
+ e.delete(i);
1848
1872
  break;
1849
1873
  }
1850
1874
  }
1851
- return Array.from(t);
1875
+ return Array.from(e);
1852
1876
  }
1853
- function Ct(r, e, t) {
1854
- return H(r, e.left, e.top, t) && H(r, e.right, e.top, t) && H(r, e.left, e.bottom, t) && H(r, e.right, e.bottom, t);
1877
+ function Me(s, t, e) {
1878
+ return j(s, t.left, t.top, e) && j(s, t.right, t.top, e) && j(s, t.left, t.bottom, e) && j(s, t.right, t.bottom, e);
1855
1879
  }
1856
- function H(r, e, t, i) {
1857
- return (r.left < e || M(r.left, e, i)) && (r.right > e || M(r.right, e, i)) && (r.top < t || M(r.top, t, i)) && (r.bottom > t || M(r.bottom, t, i));
1880
+ function j(s, t, e, i) {
1881
+ return (s.left < t || N(s.left, t, i)) && (s.right > t || N(s.right, t, i)) && (s.top < e || N(s.top, e, i)) && (s.bottom > e || N(s.bottom, e, i));
1858
1882
  }
1859
- function He(r) {
1860
- for (let e = 0; e < r.length; e++)
1861
- for (let t = e + 1; t < r.length; t++) {
1862
- const i = r[e], s = r[t];
1863
- if (i !== s && je(i, s, -1)) {
1883
+ function jt(s) {
1884
+ for (let t = 0; t < s.length; t++)
1885
+ for (let e = t + 1; e < s.length; e++) {
1886
+ const i = s[t], r = s[e];
1887
+ if (i !== r && qt(i, r, -1)) {
1864
1888
  let n = [], o;
1865
- const l = Ce(i, s);
1889
+ const l = Mt(i, r);
1866
1890
  if (l.length === 1)
1867
1891
  n = l, o = i;
1868
1892
  else {
1869
- const h = Ce(s, i);
1870
- l.length < h.length ? (n = l, o = i) : (n = h, o = s);
1893
+ const h = Mt(r, i);
1894
+ l.length < h.length ? (n = l, o = i) : (n = h, o = r);
1871
1895
  }
1872
- const c = r.filter((h) => h !== o);
1873
- return Array.prototype.push.apply(c, n), He(c);
1896
+ const c = s.filter((h) => h !== o);
1897
+ return Array.prototype.push.apply(c, n), jt(c);
1874
1898
  }
1875
1899
  }
1876
- return r;
1900
+ return s;
1877
1901
  }
1878
- function Ce(r, e) {
1879
- const t = Pt(e, r);
1880
- if (t.height === 0 || t.width === 0)
1881
- return [r];
1902
+ function Mt(s, t) {
1903
+ const e = Ne(t, s);
1904
+ if (e.height === 0 || e.width === 0)
1905
+ return [s];
1882
1906
  const i = [];
1883
1907
  {
1884
- const s = {
1885
- bottom: r.bottom,
1908
+ const r = {
1909
+ bottom: s.bottom,
1886
1910
  height: 0,
1887
- left: r.left,
1888
- right: t.left,
1889
- top: r.top,
1911
+ left: s.left,
1912
+ right: e.left,
1913
+ top: s.top,
1890
1914
  width: 0
1891
1915
  };
1892
- s.width = s.right - s.left, s.height = s.bottom - s.top, s.height !== 0 && s.width !== 0 && i.push(s);
1916
+ r.width = r.right - r.left, r.height = r.bottom - r.top, r.height !== 0 && r.width !== 0 && i.push(r);
1893
1917
  }
1894
1918
  {
1895
- const s = {
1896
- bottom: t.top,
1919
+ const r = {
1920
+ bottom: e.top,
1897
1921
  height: 0,
1898
- left: t.left,
1899
- right: t.right,
1900
- top: r.top,
1922
+ left: e.left,
1923
+ right: e.right,
1924
+ top: s.top,
1901
1925
  width: 0
1902
1926
  };
1903
- s.width = s.right - s.left, s.height = s.bottom - s.top, s.height !== 0 && s.width !== 0 && i.push(s);
1927
+ r.width = r.right - r.left, r.height = r.bottom - r.top, r.height !== 0 && r.width !== 0 && i.push(r);
1904
1928
  }
1905
1929
  {
1906
- const s = {
1907
- bottom: r.bottom,
1930
+ const r = {
1931
+ bottom: s.bottom,
1908
1932
  height: 0,
1909
- left: t.left,
1910
- right: t.right,
1911
- top: t.bottom,
1933
+ left: e.left,
1934
+ right: e.right,
1935
+ top: e.bottom,
1912
1936
  width: 0
1913
1937
  };
1914
- s.width = s.right - s.left, s.height = s.bottom - s.top, s.height !== 0 && s.width !== 0 && i.push(s);
1938
+ r.width = r.right - r.left, r.height = r.bottom - r.top, r.height !== 0 && r.width !== 0 && i.push(r);
1915
1939
  }
1916
1940
  {
1917
- const s = {
1918
- bottom: r.bottom,
1941
+ const r = {
1942
+ bottom: s.bottom,
1919
1943
  height: 0,
1920
- left: t.right,
1921
- right: r.right,
1922
- top: r.top,
1944
+ left: e.right,
1945
+ right: s.right,
1946
+ top: s.top,
1923
1947
  width: 0
1924
1948
  };
1925
- s.width = s.right - s.left, s.height = s.bottom - s.top, s.height !== 0 && s.width !== 0 && i.push(s);
1949
+ r.width = r.right - r.left, r.height = r.bottom - r.top, r.height !== 0 && r.width !== 0 && i.push(r);
1926
1950
  }
1927
1951
  return i;
1928
1952
  }
1929
- function Pt(r, e) {
1930
- const t = Math.max(r.left, e.left), i = Math.min(r.right, e.right), s = Math.max(r.top, e.top), n = Math.min(r.bottom, e.bottom);
1953
+ function Ne(s, t) {
1954
+ const e = Math.max(s.left, t.left), i = Math.min(s.right, t.right), r = Math.max(s.top, t.top), n = Math.min(s.bottom, t.bottom);
1931
1955
  return {
1932
1956
  bottom: n,
1933
- height: Math.max(0, n - s),
1934
- left: t,
1957
+ height: Math.max(0, n - r),
1958
+ left: e,
1935
1959
  right: i,
1936
- top: s,
1937
- width: Math.max(0, i - t)
1960
+ top: r,
1961
+ width: Math.max(0, i - e)
1938
1962
  };
1939
1963
  }
1940
- function je(r, e, t) {
1941
- return (r.left < e.right || t >= 0 && M(r.left, e.right, t)) && (e.left < r.right || t >= 0 && M(e.left, r.right, t)) && (r.top < e.bottom || t >= 0 && M(r.top, e.bottom, t)) && (e.top < r.bottom || t >= 0 && M(e.top, r.bottom, t));
1964
+ function qt(s, t, e) {
1965
+ return (s.left < t.right || e >= 0 && N(s.left, t.right, e)) && (t.left < s.right || e >= 0 && N(t.left, s.right, e)) && (s.top < t.bottom || e >= 0 && N(s.top, t.bottom, e)) && (t.top < s.bottom || e >= 0 && N(t.top, s.bottom, e));
1942
1966
  }
1943
- function M(r, e, t) {
1944
- return Math.abs(r - e) <= t;
1967
+ function N(s, t, e) {
1968
+ return Math.abs(s - t) <= e;
1945
1969
  }
1946
- function Ve(r) {
1947
- const e = {}, t = r.document.documentElement.style;
1948
- for (const i in r.document.documentElement.style)
1949
- Object.hasOwn(t, i) && !Number.isNaN(Number.parseInt(i)) && (e[t[i]] = t.getPropertyValue(t[i]));
1950
- return e;
1970
+ function _t(s) {
1971
+ const t = {}, e = s.document.documentElement.style;
1972
+ for (const i in s.document.documentElement.style)
1973
+ Object.hasOwn(e, i) && !Number.isNaN(Number.parseInt(i)) && (t[e[i]] = e.getPropertyValue(e[i]));
1974
+ return t;
1951
1975
  }
1952
- function Nt(r, e) {
1953
- const t = Ve(r);
1954
- Object.keys(t).forEach((i) => {
1955
- e.hasOwnProperty(i) || he(r, i);
1956
- }), Object.entries(e).forEach(([i, s]) => {
1957
- t[i] !== s && G(r, i, s);
1976
+ function Ae(s, t) {
1977
+ const e = _t(s);
1978
+ Object.keys(e).forEach((i) => {
1979
+ t.hasOwnProperty(i) || ut(s, i);
1980
+ }), Object.entries(t).forEach(([i, r]) => {
1981
+ e[i] !== r && Z(s, i, r);
1958
1982
  });
1959
1983
  }
1960
- function Pe(r, e) {
1961
- return r.document.documentElement.style.getPropertyValue(e);
1984
+ function Nt(s, t) {
1985
+ return s.document.documentElement.style.getPropertyValue(t);
1962
1986
  }
1963
- function G(r, e, t) {
1964
- r.document.documentElement.style.setProperty(e, t);
1987
+ function Z(s, t, e) {
1988
+ s.document.documentElement.style.setProperty(t, e);
1965
1989
  }
1966
- function he(r, e) {
1967
- r.document.documentElement.style.removeProperty(e);
1990
+ function ut(s, t) {
1991
+ s.document.documentElement.style.removeProperty(t);
1968
1992
  }
1969
- const Mt = (r) => {
1970
- if (r.startsWith("rgb")) {
1971
- const e = r.match(/rgb\((\d+),\s(\d+),\s(\d+)(?:,\s(\d+))?\)/);
1972
- if (e)
1993
+ const Oe = (s) => {
1994
+ if (s.startsWith("rgb")) {
1995
+ const t = s.match(/rgb\((\d+),\s(\d+),\s(\d+)(?:,\s(\d+))?\)/);
1996
+ if (t)
1973
1997
  return {
1974
- r: parseInt(e[1], 10),
1975
- g: parseInt(e[2], 10),
1976
- b: parseInt(e[3], 10),
1977
- a: e[4] ? parseInt(e[4], 10) / 255 : 1
1998
+ r: parseInt(t[1], 10),
1999
+ g: parseInt(t[2], 10),
2000
+ b: parseInt(t[3], 10),
2001
+ a: t[4] ? parseInt(t[4], 10) / 255 : 1
1978
2002
  };
1979
- } else if (r.startsWith("#")) {
1980
- const e = r.slice(1);
1981
- if (e.length === 3 || e.length === 4)
2003
+ } else if (s.startsWith("#")) {
2004
+ const t = s.slice(1);
2005
+ if (t.length === 3 || t.length === 4)
1982
2006
  return {
1983
- r: parseInt(e[0] + e[0], 16) / 255,
1984
- g: parseInt(e[1] + e[1], 16) / 255,
1985
- b: parseInt(e[2] + e[2], 16) / 255,
1986
- a: e.length === 4 ? parseInt(e[3] + e[3], 16) / 255 : 1
2007
+ r: parseInt(t[0] + t[0], 16) / 255,
2008
+ g: parseInt(t[1] + t[1], 16) / 255,
2009
+ b: parseInt(t[2] + t[2], 16) / 255,
2010
+ a: t.length === 4 ? parseInt(t[3] + t[3], 16) / 255 : 1
1987
2011
  };
1988
- if (e.length === 6 || e.length === 8)
2012
+ if (t.length === 6 || t.length === 8)
1989
2013
  return {
1990
- r: parseInt(e[0] + e[1], 16) / 255,
1991
- g: parseInt(e[2] + e[3], 16) / 255,
1992
- b: parseInt(e[4] + e[5], 16) / 255,
1993
- a: e.length === 8 ? parseInt(e[6] + e[7], 16) / 255 : 1
2014
+ r: parseInt(t[0] + t[1], 16) / 255,
2015
+ g: parseInt(t[2] + t[3], 16) / 255,
2016
+ b: parseInt(t[4] + t[5], 16) / 255,
2017
+ a: t.length === 8 ? parseInt(t[6] + t[7], 16) / 255 : 1
1994
2018
  };
1995
2019
  }
1996
2020
  return { r: 0, g: 0, b: 0, a: 1 };
1997
- }, At = (r) => 0.2126 * r.r * r.a + 0.7152 * r.g * r.a + 0.0722 * r.b * r.a, Ot = (r) => {
1998
- const e = Mt(r);
1999
- return At(e) < 128;
2021
+ }, Ie = (s) => 0.2126 * s.r * s.a + 0.7152 * s.g * s.a + 0.0722 * s.b * s.a, Le = (s) => {
2022
+ const t = Oe(s);
2023
+ return Ie(t) < 128;
2000
2024
  };
2001
- var It = /* @__PURE__ */ ((r) => (r.Wrap = "wrap", r.Viewport = "viewport", r.Bounds = "bounds", r.Page = "page", r))(It || {}), Lt = /* @__PURE__ */ ((r) => (r.Boxes = "boxes", r.Bounds = "bounds", r))(Lt || {});
2002
- const Rt = () => "Highlight" in window, Ne = ["IMG", "IMAGE", "AUDIO", "VIDEO", "SVG"];
2003
- class zt {
2025
+ var Re = /* @__PURE__ */ ((s) => (s.Wrap = "wrap", s.Viewport = "viewport", s.Bounds = "bounds", s.Page = "page", s))(Re || {}), ze = /* @__PURE__ */ ((s) => (s.Boxes = "boxes", s.Bounds = "bounds", s))(ze || {});
2026
+ const De = () => "Highlight" in window, At = ["IMG", "IMAGE", "AUDIO", "VIDEO", "SVG"];
2027
+ class We {
2004
2028
  /**
2005
2029
  * Creates a DecorationGroup object
2006
2030
  * @param id Unique HTML ID-adhering name of the group
2007
2031
  * @param name Human-readable name of the group
2008
2032
  */
2009
- constructor(e, t, i, s) {
2010
- this.wnd = e, this.comms = t, this.id = i, this.name = s, this.items = [], this.lastItemId = 0, this.container = void 0, this.activateable = !1, this.experimentalHighlights = !1, this.currentRender = 0, Rt() && (this.experimentalHighlights = !0, this.notTextFlag = /* @__PURE__ */ new Map());
2033
+ constructor(t, e, i, r) {
2034
+ this.wnd = t, this.comms = e, this.id = i, this.name = r, this.items = [], this.lastItemId = 0, this.container = void 0, this.activateable = !1, this.experimentalHighlights = !1, this.currentRender = 0, De() && (this.experimentalHighlights = !0, this.notTextFlag = /* @__PURE__ */ new Map());
2011
2035
  }
2012
2036
  get activeable() {
2013
2037
  return this.activateable;
2014
2038
  }
2015
- set activeable(e) {
2016
- this.activateable = e;
2039
+ set activeable(t) {
2040
+ this.activateable = t;
2017
2041
  }
2018
2042
  /**
2019
2043
  * Adds a new decoration to the group.
2020
2044
  * @param decoration Decoration to add
2021
2045
  */
2022
- add(e) {
2046
+ add(t) {
2023
2047
  var o, l, c, h;
2024
- const t = `${this.id}-${this.lastItemId++}`, i = le(this.wnd.document, e.locator);
2048
+ const e = `${this.id}-${this.lastItemId++}`, i = ct(this.wnd.document, t.locator);
2025
2049
  if (!i) {
2026
- this.comms.log("Can't locate DOM range for decoration", e);
2050
+ this.comms.log("Can't locate DOM range for decoration", t);
2027
2051
  return;
2028
2052
  }
2029
- const s = i.commonAncestorContainer;
2030
- s.nodeType !== Node.TEXT_NODE && this.experimentalHighlights && (Ne.includes(s.nodeName.toUpperCase()) && ((o = this.notTextFlag) == null || o.set(t, !0)), s.querySelector(Ne.join(", ").toLowerCase()) && ((l = this.notTextFlag) == null || l.set(t, !0)), (((c = s.textContent) == null ? void 0 : c.trim()) || "").length === 0 && ((h = this.notTextFlag) == null || h.set(t, !0)));
2053
+ const r = i.commonAncestorContainer;
2054
+ r.nodeType !== Node.TEXT_NODE && this.experimentalHighlights && (At.includes(r.nodeName.toUpperCase()) && ((o = this.notTextFlag) == null || o.set(e, !0)), r.querySelector(At.join(", ").toLowerCase()) && ((l = this.notTextFlag) == null || l.set(e, !0)), (((c = r.textContent) == null ? void 0 : c.trim()) || "").length === 0 && ((h = this.notTextFlag) == null || h.set(e, !0)));
2031
2055
  const n = {
2032
- decoration: e,
2033
- id: t,
2056
+ decoration: t,
2057
+ id: e,
2034
2058
  range: i
2035
2059
  };
2036
2060
  this.items.push(n), this.layout(n), this.renderLayout([n]);
@@ -2039,13 +2063,13 @@ class zt {
2039
2063
  * Removes the decoration with given ID from the group.
2040
2064
  * @param identifier ID of item to remove
2041
2065
  */
2042
- remove(e) {
2043
- var s, n;
2044
- const t = this.items.findIndex((o) => o.decoration.id === e);
2045
- if (t < 0)
2066
+ remove(t) {
2067
+ var r, n;
2068
+ const e = this.items.findIndex((o) => o.decoration.id === t);
2069
+ if (e < 0)
2046
2070
  return;
2047
- const i = this.items[t];
2048
- if (this.items.splice(t, 1), i.clickableElements = void 0, i.container && (i.container.remove(), i.container = void 0), this.experimentalHighlights && !((s = this.notTextFlag) != null && s.has(i.id))) {
2071
+ const i = this.items[e];
2072
+ if (this.items.splice(e, 1), i.clickableElements = void 0, i.container && (i.container.remove(), i.container = void 0), this.experimentalHighlights && !((r = this.notTextFlag) != null && r.has(i.id))) {
2049
2073
  const o = this.wnd.CSS.highlights.get(this.id);
2050
2074
  o == null || o.delete(i.range);
2051
2075
  }
@@ -2055,68 +2079,68 @@ class zt {
2055
2079
  * Notifies that the given decoration was modified and needs to be updated.
2056
2080
  * @param decoration Decoration to update
2057
2081
  */
2058
- update(e) {
2059
- this.remove(e.id), this.add(e);
2082
+ update(t) {
2083
+ this.remove(t.id), this.add(t);
2060
2084
  }
2061
2085
  /**
2062
2086
  * Removes all decorations from this group.
2063
2087
  */
2064
2088
  clear() {
2065
- var e;
2066
- this.clearContainer(), this.items.length = 0, (e = this.notTextFlag) == null || e.clear();
2089
+ var t;
2090
+ this.clearContainer(), this.items.length = 0, (t = this.notTextFlag) == null || t.clear();
2067
2091
  }
2068
2092
  /**
2069
2093
  * Recreates the decoration elements.
2070
2094
  * To be called after reflowing the resource, for example.
2071
2095
  */
2072
2096
  requestLayout() {
2073
- this.wnd.cancelAnimationFrame(this.currentRender), this.clearContainer(), this.items.forEach((e) => this.layout(e)), this.renderLayout(this.items);
2097
+ this.wnd.cancelAnimationFrame(this.currentRender), this.clearContainer(), this.items.forEach((t) => this.layout(t)), this.renderLayout(this.items);
2074
2098
  }
2075
- experimentalLayout(e) {
2076
- var s, n;
2077
- const [t, i] = this.requireContainer(!0);
2078
- i.add(e.range), t.innerHTML = `
2099
+ experimentalLayout(t) {
2100
+ var r, n;
2101
+ const [e, i] = this.requireContainer(!0);
2102
+ i.add(t.range), e.innerHTML = `
2079
2103
  ::highlight(${this.id}) {
2080
2104
  color: black;
2081
- background-color: ${((n = (s = e.decoration) == null ? void 0 : s.style) == null ? void 0 : n.tint) ?? "yellow"};
2105
+ background-color: ${((n = (r = t.decoration) == null ? void 0 : r.style) == null ? void 0 : n.tint) ?? "yellow"};
2082
2106
  }`;
2083
2107
  }
2084
2108
  /**
2085
2109
  * Layouts a single DecorationItem.
2086
2110
  * @param item
2087
2111
  */
2088
- layout(e) {
2089
- var g, m, v, S, O;
2090
- if (this.experimentalHighlights && !((g = this.notTextFlag) != null && g.has(e.id)))
2091
- return this.experimentalLayout(e);
2092
- const t = this.wnd.document.createElement("div");
2093
- t.setAttribute("id", e.id), t.style.setProperty("pointer-events", "none");
2094
- const i = this.wnd.innerWidth, s = parseInt(
2112
+ layout(t) {
2113
+ var g, m, v, x, O;
2114
+ if (this.experimentalHighlights && !((g = this.notTextFlag) != null && g.has(t.id)))
2115
+ return this.experimentalLayout(t);
2116
+ const e = this.wnd.document.createElement("div");
2117
+ e.setAttribute("id", t.id), e.style.setProperty("pointer-events", "none");
2118
+ const i = this.wnd.innerWidth, r = parseInt(
2095
2119
  getComputedStyle(this.wnd.document.documentElement).getPropertyValue(
2096
2120
  "column-count"
2097
2121
  )
2098
- ), n = i / (s || 1), o = this.wnd.document.scrollingElement, l = o.scrollLeft, c = o.scrollTop, h = (y, E, I) => {
2099
- var ce, ue, de, pe, fe, me;
2100
- if (y.style.position = "absolute", ((ue = (ce = e.decoration) == null ? void 0 : ce.style) == null ? void 0 : ue.width) === "viewport") {
2101
- y.style.width = `${i}px`, y.style.height = `${E.height}px`;
2102
- let K = Math.floor(E.left / i) * i;
2103
- y.style.left = `${K + l}px`, y.style.top = `${E.top + c}px`;
2104
- } else if (((pe = (de = e.decoration) == null ? void 0 : de.style) == null ? void 0 : pe.width) === "bounds")
2105
- y.style.width = `${I.width}px`, y.style.height = `${E.height}px`, y.style.left = `${I.left + l}px`, y.style.top = `${E.top + c}px`;
2106
- else if (((me = (fe = e.decoration) == null ? void 0 : fe.style) == null ? void 0 : me.width) === "page") {
2107
- y.style.width = `${n}px`, y.style.height = `${E.height}px`;
2108
- let K = Math.floor(E.left / n) * n;
2109
- y.style.left = `${K + l}px`, y.style.top = `${E.top + c}px`;
2122
+ ), n = i / (r || 1), o = this.wnd.document.scrollingElement, l = o.scrollLeft, c = o.scrollTop, h = (y, b, I) => {
2123
+ var dt, pt, ft, mt, gt, yt;
2124
+ if (y.style.position = "absolute", ((pt = (dt = t.decoration) == null ? void 0 : dt.style) == null ? void 0 : pt.width) === "viewport") {
2125
+ y.style.width = `${i}px`, y.style.height = `${b.height}px`;
2126
+ let J = Math.floor(b.left / i) * i;
2127
+ y.style.left = `${J + l}px`, y.style.top = `${b.top + c}px`;
2128
+ } else if (((mt = (ft = t.decoration) == null ? void 0 : ft.style) == null ? void 0 : mt.width) === "bounds")
2129
+ y.style.width = `${I.width}px`, y.style.height = `${b.height}px`, y.style.left = `${I.left + l}px`, y.style.top = `${b.top + c}px`;
2130
+ else if (((yt = (gt = t.decoration) == null ? void 0 : gt.style) == null ? void 0 : yt.width) === "page") {
2131
+ y.style.width = `${n}px`, y.style.height = `${b.height}px`;
2132
+ let J = Math.floor(b.left / n) * n;
2133
+ y.style.left = `${J + l}px`, y.style.top = `${b.top + c}px`;
2110
2134
  } else
2111
- y.style.width = `${E.width}px`, y.style.height = `${E.height}px`, y.style.left = `${E.left + l}px`, y.style.top = `${E.top + c}px`;
2112
- }, u = e.range.getBoundingClientRect();
2135
+ y.style.width = `${b.width}px`, y.style.height = `${b.height}px`, y.style.left = `${b.left + l}px`, y.style.top = `${b.top + c}px`;
2136
+ }, u = t.range.getBoundingClientRect();
2113
2137
  let p = this.wnd.document.createElement("template");
2114
- const d = Pe(this.wnd, "--USER__appearance") === "readium-night-on" || Ot(Pe(this.wnd, "--USER__backgroundColor"));
2138
+ const d = Nt(this.wnd, "--USER__appearance") === "readium-night-on" || Le(Nt(this.wnd, "--USER__backgroundColor"));
2115
2139
  p.innerHTML = `
2116
2140
  <div
2117
2141
  class="r2-highlight-0"
2118
2142
  style="${[
2119
- `background-color: ${((v = (m = e.decoration) == null ? void 0 : m.style) == null ? void 0 : v.tint) ?? "yellow"} !important`,
2143
+ `background-color: ${((v = (m = t.decoration) == null ? void 0 : m.style) == null ? void 0 : v.tint) ?? "yellow"} !important`,
2120
2144
  //"opacity: 0.3 !important",
2121
2145
  `mix-blend-mode: ${d ? "exclusion" : "multiply"} !important`,
2122
2146
  "opacity: 1 !important",
@@ -2126,45 +2150,45 @@ class zt {
2126
2150
  </div>
2127
2151
  `.trim();
2128
2152
  const f = p.content.firstElementChild;
2129
- if (((O = (S = e.decoration) == null ? void 0 : S.style) == null ? void 0 : O.layout) === "bounds") {
2153
+ if (((O = (x = t.decoration) == null ? void 0 : x.style) == null ? void 0 : O.layout) === "bounds") {
2130
2154
  const y = f.cloneNode(!0);
2131
- y.style.setProperty("pointer-events", "none"), h(y, u, u), t.append(y);
2155
+ y.style.setProperty("pointer-events", "none"), h(y, u, u), e.append(y);
2132
2156
  } else {
2133
- let y = St(
2134
- e.range,
2157
+ let y = we(
2158
+ t.range,
2135
2159
  !0
2136
2160
  // doNotMergeHorizontallyAlignedRects
2137
2161
  );
2138
- y = y.sort((E, I) => E.top < I.top ? -1 : E.top > I.top ? 1 : 0);
2139
- for (let E of y) {
2162
+ y = y.sort((b, I) => b.top < I.top ? -1 : b.top > I.top ? 1 : 0);
2163
+ for (let b of y) {
2140
2164
  const I = f.cloneNode(!0);
2141
- I.style.setProperty("pointer-events", "none"), h(I, E, u), t.append(I);
2165
+ I.style.setProperty("pointer-events", "none"), h(I, b, u), e.append(I);
2142
2166
  }
2143
2167
  }
2144
- e.container = t, e.clickableElements = Array.from(
2145
- t.querySelectorAll("[data-activable='1']")
2146
- ), e.clickableElements.length || (e.clickableElements = Array.from(t.children));
2168
+ t.container = e, t.clickableElements = Array.from(
2169
+ e.querySelectorAll("[data-activable='1']")
2170
+ ), t.clickableElements.length || (t.clickableElements = Array.from(e.children));
2147
2171
  }
2148
- renderLayout(e) {
2172
+ renderLayout(t) {
2149
2173
  this.wnd.cancelAnimationFrame(this.currentRender), this.currentRender = this.wnd.requestAnimationFrame(() => {
2150
- if (e = e.filter((i) => {
2151
- var s;
2152
- return !this.experimentalHighlights || !!((s = this.notTextFlag) != null && s.has(i.id));
2153
- }), !e || e.length === 0)
2174
+ if (t = t.filter((i) => {
2175
+ var r;
2176
+ return !this.experimentalHighlights || !!((r = this.notTextFlag) != null && r.has(i.id));
2177
+ }), !t || t.length === 0)
2154
2178
  return;
2155
- this.requireContainer().append(...e.map((i) => i.container).filter((i) => !!i));
2179
+ this.requireContainer().append(...t.map((i) => i.container).filter((i) => !!i));
2156
2180
  });
2157
2181
  }
2158
2182
  /**
2159
2183
  * Returns the group container element, after making sure it exists.
2160
2184
  * @returns Group's container
2161
2185
  */
2162
- requireContainer(e = !1) {
2163
- if (e) {
2164
- let t;
2165
- this.wnd.document.getElementById(`${this.id}-style`) ? t = this.wnd.document.getElementById(`${this.id}-style`) : (t = this.wnd.document.createElement("style"), t.dataset.readium = "true", t.id = `${this.id}-style`, this.wnd.document.head.appendChild(t));
2186
+ requireContainer(t = !1) {
2187
+ if (t) {
2188
+ let e;
2189
+ this.wnd.document.getElementById(`${this.id}-style`) ? e = this.wnd.document.getElementById(`${this.id}-style`) : (e = this.wnd.document.createElement("style"), e.dataset.readium = "true", e.id = `${this.id}-style`, this.wnd.document.head.appendChild(e));
2166
2190
  let i;
2167
- return this.wnd.CSS.highlights.has(this.id) ? i = this.wnd.CSS.highlights.get(this.id) : (i = new this.wnd.Highlight(), this.wnd.CSS.highlights.set(this.id, i)), [t, i];
2191
+ return this.wnd.CSS.highlights.has(this.id) ? i = this.wnd.CSS.highlights.get(this.id) : (i = new this.wnd.Highlight(), this.wnd.CSS.highlights.set(this.id, i)), [e, i];
2168
2192
  }
2169
2193
  return this.container || (this.container = this.wnd.document.createElement("div"), this.container.setAttribute("id", this.id), this.container.dataset.group = this.name, this.container.dataset.readium = "true", this.container.style.setProperty("pointer-events", "none"), this.container.style.display = "contents", this.wnd.document.body.append(this.container)), this.container;
2170
2194
  }
@@ -2175,26 +2199,26 @@ class zt {
2175
2199
  this.experimentalHighlights && this.wnd.CSS.highlights.delete(this.id), this.container && (this.container.remove(), this.container = void 0);
2176
2200
  }
2177
2201
  }
2178
- const qe = class Q extends Y {
2202
+ const Xt = class et extends K {
2179
2203
  constructor() {
2180
2204
  super(...arguments), this.resizeFrame = 0, this.lastGroupId = 0, this.groups = /* @__PURE__ */ new Map(), this.handleResizer = this.handleResize.bind(this);
2181
2205
  }
2182
2206
  cleanup() {
2183
- this.groups.forEach((e) => e.clear()), this.groups.clear();
2207
+ this.groups.forEach((t) => t.clear()), this.groups.clear();
2184
2208
  }
2185
2209
  handleResize() {
2186
2210
  this.wnd.clearTimeout(this.resizeFrame), this.resizeFrame = this.wnd.setTimeout(() => {
2187
- this.groups.forEach((e) => {
2188
- e.experimentalHighlights || e.requestLayout();
2211
+ this.groups.forEach((t) => {
2212
+ t.experimentalHighlights || t.requestLayout();
2189
2213
  });
2190
2214
  }, 50);
2191
2215
  }
2192
- mount(e, t) {
2193
- return this.wnd = e, t.register("decorate", Q.moduleName, (i, s) => {
2216
+ mount(t, e) {
2217
+ return this.wnd = t, e.register("decorate", et.moduleName, (i, r) => {
2194
2218
  const n = i;
2195
- n.decoration && n.decoration.locator && (n.decoration.locator = D.deserialize(n.decoration.locator)), this.groups.has(n.group) || this.groups.set(n.group, new zt(
2196
- e,
2219
+ n.decoration && n.decoration.locator && (n.decoration.locator = W.deserialize(n.decoration.locator)), this.groups.has(n.group) || this.groups.set(n.group, new We(
2197
2220
  t,
2221
+ e,
2198
2222
  `readium-decoration-${this.lastGroupId++}`,
2199
2223
  n.group
2200
2224
  ));
@@ -2213,16 +2237,16 @@ const qe = class Q extends Y {
2213
2237
  o == null || o.update(n.decoration);
2214
2238
  break;
2215
2239
  }
2216
- s(!0);
2217
- }), this.resizeObserver = new ResizeObserver(() => e.requestAnimationFrame(() => this.handleResize())), this.resizeObserver.observe(e.document.body), e.addEventListener("orientationchange", this.handleResizer), e.addEventListener("resize", this.handleResizer), t.log("Decorator Mounted"), !0;
2240
+ r(!0);
2241
+ }), this.resizeObserver = new ResizeObserver(() => t.requestAnimationFrame(() => this.handleResize())), this.resizeObserver.observe(t.document.body), t.addEventListener("orientationchange", this.handleResizer), t.addEventListener("resize", this.handleResizer), e.log("Decorator Mounted"), !0;
2218
2242
  }
2219
- unmount(e, t) {
2220
- return e.removeEventListener("orientationchange", this.handleResizer), e.removeEventListener("resize", this.handleResizer), t.unregisterAll(Q.moduleName), this.resizeObserver.disconnect(), this.cleanup(), t.log("Decorator Unmounted"), !0;
2243
+ unmount(t, e) {
2244
+ return t.removeEventListener("orientationchange", this.handleResizer), t.removeEventListener("resize", this.handleResizer), e.unregisterAll(et.moduleName), this.resizeObserver.disconnect(), this.cleanup(), e.log("Decorator Unmounted"), !0;
2221
2245
  }
2222
2246
  };
2223
- qe.moduleName = "decorator";
2224
- let Dt = qe;
2225
- const Me = "readium-snapper-style", _e = class ee extends Y {
2247
+ Xt.moduleName = "decorator";
2248
+ let Fe = Xt;
2249
+ const Ot = "readium-snapper-style", Gt = class it extends K {
2226
2250
  constructor() {
2227
2251
  super(...arguments), this.protected = !1;
2228
2252
  }
@@ -2233,62 +2257,62 @@ const Me = "readium-snapper-style", _e = class ee extends Y {
2233
2257
  user-select: ${this.protected ? "none" : "auto"};
2234
2258
  }`;
2235
2259
  }
2236
- mount(e, t) {
2237
- const i = e.document.createElement("style");
2238
- return i.dataset.readium = "true", i.id = Me, i.textContent = this.buildStyles(), e.document.head.appendChild(i), t.register("protect", ee.moduleName, (s, n) => {
2260
+ mount(t, e) {
2261
+ const i = t.document.createElement("style");
2262
+ return i.dataset.readium = "true", i.id = Ot, i.textContent = this.buildStyles(), t.document.head.appendChild(i), e.register("protect", it.moduleName, (r, n) => {
2239
2263
  this.protected = !0, i.textContent = this.buildStyles(), n(!0);
2240
- }), t.register("unprotect", ee.moduleName, (s, n) => {
2264
+ }), e.register("unprotect", it.moduleName, (r, n) => {
2241
2265
  this.protected = !1, i.textContent = this.buildStyles(), n(!0);
2242
- }), t.log("Snapper Mounted"), !0;
2266
+ }), e.log("Snapper Mounted"), !0;
2243
2267
  }
2244
- unmount(e, t) {
2268
+ unmount(t, e) {
2245
2269
  var i;
2246
- return (i = e.document.getElementById(Me)) == null || i.remove(), t.log("Snapper Unmounted"), !0;
2270
+ return (i = t.document.getElementById(Ot)) == null || i.remove(), e.log("Snapper Unmounted"), !0;
2247
2271
  }
2248
2272
  };
2249
- _e.moduleName = "snapper";
2250
- let Xe = _e;
2251
- function W(r) {
2252
- return r.document.body.dir.toLowerCase() === "rtl";
2273
+ Gt.moduleName = "snapper";
2274
+ let Yt = Gt;
2275
+ function F(s) {
2276
+ return s.document.body.dir.toLowerCase() === "rtl";
2253
2277
  }
2254
- function Ge(r) {
2278
+ function Zt(s) {
2255
2279
  return parseInt(
2256
- r.getComputedStyle(
2257
- r.document.documentElement
2280
+ s.getComputedStyle(
2281
+ s.document.documentElement
2258
2282
  ).getPropertyValue("column-count")
2259
2283
  );
2260
2284
  }
2261
- function Ae(r) {
2262
- const e = getComputedStyle(r), t = parseFloat(e.paddingTop || "0"), i = parseFloat(e.paddingBottom || "0");
2263
- return r.clientHeight - t - i;
2285
+ function It(s) {
2286
+ const t = getComputedStyle(s), e = parseFloat(t.paddingTop || "0"), i = parseFloat(t.paddingBottom || "0");
2287
+ return s.clientHeight - e - i;
2264
2288
  }
2265
- function Oe(r) {
2266
- const e = Ge(r);
2267
- if (!e)
2289
+ function Lt(s) {
2290
+ const t = Zt(s);
2291
+ if (!t)
2268
2292
  return !1;
2269
- const t = r.document.querySelectorAll("div[id^='readium-virtual-page']");
2270
- for (const h of t)
2293
+ const e = s.document.querySelectorAll("div[id^='readium-virtual-page']");
2294
+ for (const h of e)
2271
2295
  h.remove();
2272
- const i = t.length, s = r.document.scrollingElement.scrollWidth, n = r.visualViewport.width, l = Math.round(s / n * e) % e, c = e === 1 || l === 0 ? 0 : e - l;
2296
+ const i = e.length, r = s.document.scrollingElement.scrollWidth, n = s.visualViewport.width, l = Math.round(r / n * t) % t, c = t === 1 || l === 0 ? 0 : t - l;
2273
2297
  if (c > 0)
2274
2298
  for (let h = 0; h < c; h++) {
2275
- const u = r.document.createElement("div");
2276
- u.setAttribute("id", `readium-virtual-page-${h}`), u.dataset.readium = "true", CSS.supports("break-before", "column") ? u.style.breakBefore = "column" : (CSS.supports("break-inside", "avoid-column") && (u.style.breakInside = "avoid-column"), u.style.height = Ae(r.document.documentElement) + "px"), u.innerHTML = "&#8203;", r.document.body.appendChild(u);
2299
+ const u = s.document.createElement("div");
2300
+ u.setAttribute("id", `readium-virtual-page-${h}`), u.dataset.readium = "true", CSS.supports("break-before", "column") ? u.style.breakBefore = "column" : (CSS.supports("break-inside", "avoid-column") && (u.style.breakInside = "avoid-column"), u.style.height = It(s.document.documentElement) + "px"), u.innerHTML = "&#8203;", s.document.body.appendChild(u);
2277
2301
  }
2278
2302
  return i !== c;
2279
2303
  }
2280
- function Wt(r) {
2281
- const e = r.document.createElement("style");
2282
- e.appendChild(r.document.createTextNode("*{}")), r.document.body.appendChild(e), r.document.body.removeChild(e);
2304
+ function Ue(s) {
2305
+ const t = s.document.createElement("style");
2306
+ t.appendChild(s.document.createTextNode("*{}")), s.document.body.appendChild(t), s.document.body.removeChild(t);
2283
2307
  }
2284
- function Ft(r) {
2285
- return r < 0.5 ? 2 * r * r : -1 + (4 - 2 * r) * r;
2308
+ function Be(s) {
2309
+ return s < 0.5 ? 2 * s * s : -1 + (4 - 2 * s) * s;
2286
2310
  }
2287
- function T(r) {
2288
- const e = r.getSelection();
2289
- e && e.removeAllRanges();
2311
+ function S(s) {
2312
+ const t = s.getSelection();
2313
+ t && t.removeAllRanges();
2290
2314
  }
2291
- const Bt = [
2315
+ const ke = [
2292
2316
  "a",
2293
2317
  "audio",
2294
2318
  "button",
@@ -2302,57 +2326,57 @@ const Bt = [
2302
2326
  "textarea",
2303
2327
  "video"
2304
2328
  ];
2305
- function Ye(r) {
2306
- var e;
2307
- return Bt.indexOf(r.nodeName.toLowerCase()) !== -1 || r.hasAttribute("contenteditable") && ((e = r.getAttribute("contenteditable")) == null ? void 0 : e.toLowerCase()) !== "false" ? r : r.parentElement ? Ye(r.parentElement) : null;
2329
+ function Kt(s) {
2330
+ var t;
2331
+ return ke.indexOf(s.nodeName.toLowerCase()) !== -1 || s.hasAttribute("contenteditable") && ((t = s.getAttribute("contenteditable")) == null ? void 0 : t.toLowerCase()) !== "false" ? s : s.parentElement ? Kt(s.parentElement) : null;
2308
2332
  }
2309
- function Ke(r, e) {
2310
- const t = Ze(r, r.document.body, e), i = r._readium_cssSelectorGenerator.getCssSelector(t, {
2333
+ function Jt(s, t) {
2334
+ const e = Qt(s, s.document.body, t), i = s._readium_cssSelectorGenerator.getCssSelector(e, {
2311
2335
  selectors: ["tag", "id", "class", "nthchild", "nthoftype", "attribute"]
2312
2336
  });
2313
- return new D({
2337
+ return new W({
2314
2338
  href: "#",
2315
2339
  type: "application/xhtml+xml",
2316
- locations: new x({
2340
+ locations: new E({
2317
2341
  otherLocations: /* @__PURE__ */ new Map([
2318
2342
  ["cssSelector", i]
2319
2343
  ])
2320
2344
  }),
2321
- text: new U({
2322
- highlight: t.textContent || void 0
2345
+ text: new $({
2346
+ highlight: e.textContent || void 0
2323
2347
  })
2324
2348
  });
2325
2349
  }
2326
- function Ze(r, e, t) {
2327
- for (var i = 0; i < e.children.length; i++) {
2328
- const s = e.children[i];
2329
- if (!$t(s) && Ut(r, s, t))
2330
- return kt(r, s) ? s : Ze(r, s, t);
2350
+ function Qt(s, t, e) {
2351
+ for (var i = 0; i < t.children.length; i++) {
2352
+ const r = t.children[i];
2353
+ if (!Ve(r) && $e(s, r, e))
2354
+ return He(s, r) ? r : Qt(s, r, e);
2331
2355
  }
2332
- return e;
2356
+ return t;
2333
2357
  }
2334
- function Ut(r, e, t) {
2335
- if (e === document.body || e === document.documentElement)
2358
+ function $e(s, t, e) {
2359
+ if (t === document.body || t === document.documentElement)
2336
2360
  return !0;
2337
2361
  if (!document || !document.documentElement || !document.body)
2338
2362
  return !1;
2339
- const i = e.getBoundingClientRect();
2340
- return t ? i.bottom > 0 && i.top < r.innerHeight : i.right > 0 && i.left < r.innerWidth;
2341
- }
2342
- function kt(r, e) {
2343
- const t = e.getBoundingClientRect();
2344
- return t.top >= 0 && t.left >= 0 && t.bottom <= r.innerHeight && t.right <= r.innerWidth;
2345
- }
2346
- function $t(r) {
2347
- const e = getComputedStyle(r);
2348
- if (e) {
2349
- const t = e.getPropertyValue("display");
2350
- if (t != "block" && t != "list-item" || e.getPropertyValue("opacity") === "0")
2363
+ const i = t.getBoundingClientRect();
2364
+ return e ? i.bottom > 0 && i.top < s.innerHeight : i.right > 0 && i.left < s.innerWidth;
2365
+ }
2366
+ function He(s, t) {
2367
+ const e = t.getBoundingClientRect();
2368
+ return e.top >= 0 && e.left >= 0 && e.bottom <= s.innerHeight && e.right <= s.innerWidth;
2369
+ }
2370
+ function Ve(s) {
2371
+ const t = getComputedStyle(s);
2372
+ if (t) {
2373
+ const e = t.getPropertyValue("display");
2374
+ if (e != "block" && e != "list-item" || t.getPropertyValue("opacity") === "0")
2351
2375
  return !0;
2352
2376
  }
2353
2377
  return !1;
2354
2378
  }
2355
- const Ie = "readium-column-snapper-style", Ht = 200, Je = class w extends Xe {
2379
+ const Rt = "readium-column-snapper-style", je = 200, te = class C extends Yt {
2356
2380
  constructor() {
2357
2381
  super(...arguments), this.shakeTimeout = 0, this.snappingCancelled = !1, this.alreadyScrollLeft = 0, this.overscroll = 0, this.cachedScrollWidth = 0, this.touchState = 0, this.startingX = void 0, this.endingX = void 0, this.onTouchStarter = this.onTouchStart.bind(this), this.onTouchEnder = this.onTouchEnd.bind(this), this.onWidthChanger = this.onWidthChange.bind(this), this.onTouchMover = this.onTouchMove.bind(this);
2358
2382
  }
@@ -2362,58 +2386,58 @@ const Ie = "readium-column-snapper-style", Ht = 200, Je = class w extends Xe {
2362
2386
  scrollOffset() {
2363
2387
  return this.doc().scrollLeft > 0 ? this.doc().scrollLeft : this.alreadyScrollLeft;
2364
2388
  }
2365
- snapOffset(e) {
2366
- const t = e + (W(this.wnd) ? -1 : 1);
2367
- return t - t % this.wnd.innerWidth;
2389
+ snapOffset(t) {
2390
+ const e = t + (F(this.wnd) ? -1 : 1);
2391
+ return e - e % this.wnd.innerWidth;
2368
2392
  }
2369
2393
  reportProgress() {
2370
- const e = this.wnd.scrollX, t = this.cachedScrollWidth, i = Math.max(0, Math.min(1, e / t)), s = Math.max(0, Math.min(1, (e + this.wnd.innerWidth) / t));
2394
+ const t = this.wnd.scrollX, e = this.cachedScrollWidth, i = Math.max(0, Math.min(1, t / e)), r = Math.max(0, Math.min(1, (t + this.wnd.innerWidth) / e));
2371
2395
  this.comms.send("progress", {
2372
2396
  start: i,
2373
- end: s
2397
+ end: r
2374
2398
  });
2375
2399
  }
2376
2400
  shake() {
2377
2401
  if (this.overscroll !== 0 || this.shakeTimeout !== 0)
2378
2402
  return;
2379
- const e = this.doc();
2380
- e.classList.add(W(this.wnd) ? "readium-bounce-l" : "readium-bounce-r");
2381
- const t = this.scrollOffset();
2403
+ const t = this.doc();
2404
+ t.classList.add(F(this.wnd) ? "readium-bounce-l" : "readium-bounce-r");
2405
+ const e = this.scrollOffset();
2382
2406
  this.shakeTimeout = this.wnd.setTimeout(() => {
2383
- e.classList.remove("readium-bounce-l"), e.classList.remove("readium-bounce-r"), this.shakeTimeout = 0, this.doc().scrollLeft = t;
2407
+ t.classList.remove("readium-bounce-l"), t.classList.remove("readium-bounce-r"), this.shakeTimeout = 0, this.doc().scrollLeft = e;
2384
2408
  }, 150);
2385
2409
  }
2386
2410
  // We have to cache this because during overscroll (transform, or left) the width is incorrect due to browser
2387
2411
  takeOverSnap() {
2388
- var t;
2412
+ var e;
2389
2413
  this.snappingCancelled = !0, this.clearTouches();
2390
- const e = this.doc();
2391
- this.overscroll = ((t = e.style.transform) == null ? void 0 : t.length) > 12 ? parseFloat(e.style.transform.slice(12).split("px")[0]) : 0;
2414
+ const t = this.doc();
2415
+ this.overscroll = ((e = t.style.transform) == null ? void 0 : e.length) > 12 ? parseFloat(t.style.transform.slice(12).split("px")[0]) : 0;
2392
2416
  }
2393
2417
  // Snaps the current offset to the page width.
2394
- snapCurrentOffset(e = !1, t = !1) {
2395
- const i = this.wnd.scrollX > 0 ? this.wnd.scrollX : this.alreadyScrollLeft, s = this.doc(), n = this.dragOffset(), o = Ge(this.wnd), l = Math.min(Math.max(0, i), this.cachedScrollWidth), c = W(this.wnd) ? -1 : 1, h = (
2418
+ snapCurrentOffset(t = !1, e = !1) {
2419
+ const i = this.wnd.scrollX > 0 ? this.wnd.scrollX : this.alreadyScrollLeft, r = this.doc(), n = this.dragOffset(), o = Zt(this.wnd), l = Math.min(Math.max(0, i), this.cachedScrollWidth), c = F(this.wnd) ? -1 : 1, h = (
2396
2420
  // The hurdle to overcome in order to change pages
2397
2421
  c * (this.wnd.innerWidth / 3) * (c * n > 0 ? 2 : 1)
2398
2422
  ), u = this.snapOffset(l + h);
2399
- if (e && u !== this.scrollOffset()) {
2423
+ if (t && u !== this.scrollOffset()) {
2400
2424
  this.snappingCancelled = !1;
2401
- const p = (m, v, S, O) => S > O ? v : m + (v - m) * Ft(S / O), d = (
2425
+ const p = (m, v, x, O) => x > O ? v : m + (v - m) * Be(x / O), d = (
2402
2426
  /*Math.abs(startX - (this.useTransform ? currentOffset : 0)) < 10 ? 1 : */
2403
- Ht * o
2427
+ je * o
2404
2428
  );
2405
2429
  let f;
2406
2430
  const g = (m) => {
2407
2431
  if (this.snappingCancelled)
2408
2432
  return;
2409
2433
  f || (f = m);
2410
- const v = m - f, S = p(this.overscroll, 0, v, d), O = p(i, u, v, d);
2411
- s.scrollLeft = O, this.overscroll !== 0 && (s.style.transform = `translate3d(${-S}px, 0px, 0px)`), v < d ? this.wnd.requestAnimationFrame(g) : (this.clearTouches(), s.style.removeProperty("transform"), s.scrollLeft = u, t || this.reportProgress());
2434
+ const v = m - f, x = p(this.overscroll, 0, v, d), O = p(i, u, v, d);
2435
+ r.scrollLeft = O, this.overscroll !== 0 && (r.style.transform = `translate3d(${-x}px, 0px, 0px)`), v < d ? this.wnd.requestAnimationFrame(g) : (this.clearTouches(), r.style.removeProperty("transform"), r.scrollLeft = u, e || this.reportProgress());
2412
2436
  };
2413
2437
  this.wnd.requestAnimationFrame(g);
2414
2438
  } else
2415
- s.style.removeProperty("transform"), this.wnd.requestAnimationFrame(() => {
2416
- s.scrollLeft = u, this.clearTouches(), t || this.reportProgress();
2439
+ r.style.removeProperty("transform"), this.wnd.requestAnimationFrame(() => {
2440
+ r.scrollLeft = u, this.clearTouches(), e || this.reportProgress();
2417
2441
  });
2418
2442
  }
2419
2443
  dragOffset() {
@@ -2422,43 +2446,43 @@ const Ie = "readium-column-snapper-style", Ht = 200, Je = class w extends Xe {
2422
2446
  clearTouches() {
2423
2447
  this.startingX = void 0, this.endingX = void 0, this.overscroll = 0;
2424
2448
  }
2425
- onTouchStart(e) {
2426
- switch (e.stopPropagation(), this.takeOverSnap(), e.touches.length) {
2449
+ onTouchStart(t) {
2450
+ switch (t.stopPropagation(), this.takeOverSnap(), t.touches.length) {
2427
2451
  case 1:
2428
2452
  break;
2429
2453
  case 2:
2430
- this.onTouchEnd(e);
2454
+ this.onTouchEnd(t);
2431
2455
  return;
2432
2456
  default: {
2433
- this.onTouchEnd(e), this.comms.send("tap_more", e.touches.length);
2457
+ this.onTouchEnd(t), this.comms.send("tap_more", t.touches.length);
2434
2458
  return;
2435
2459
  }
2436
2460
  }
2437
- this.startingX = e.touches[0].clientX, this.alreadyScrollLeft = this.doc().scrollLeft, this.touchState = 1;
2461
+ this.startingX = t.touches[0].clientX, this.alreadyScrollLeft = this.doc().scrollLeft, this.touchState = 1;
2438
2462
  }
2439
- onTouchEnd(e) {
2463
+ onTouchEnd(t) {
2440
2464
  if (this.touchState === 2) {
2441
- const t = this.dragOffset(), i = this.scrollOffset();
2442
- this.cachedScrollWidth <= this.wnd.innerWidth ? (this.reportProgress(), t > 5 && this.comms.send("no_more", void 0), t < -5 && this.comms.send("no_less", void 0)) : i < 5 && t < 5 ? (this.alreadyScrollLeft = 0, this.comms.send("no_less", void 0)) : this.cachedScrollWidth - i - this.wnd.innerWidth < 5 && t > 5 && (this.alreadyScrollLeft = this.cachedScrollWidth, this.comms.send("no_more", void 0)), this.snapCurrentOffset(!0), this.comms.send("swipe", t);
2465
+ const e = this.dragOffset(), i = this.scrollOffset();
2466
+ this.cachedScrollWidth <= this.wnd.innerWidth ? (this.reportProgress(), e > 5 && this.comms.send("no_more", void 0), e < -5 && this.comms.send("no_less", void 0)) : i < 5 && e < 5 ? (this.alreadyScrollLeft = 0, this.comms.send("no_less", void 0)) : this.cachedScrollWidth - i - this.wnd.innerWidth < 5 && e > 5 && (this.alreadyScrollLeft = this.cachedScrollWidth, this.comms.send("no_more", void 0)), this.snapCurrentOffset(!0), this.comms.send("swipe", e);
2443
2467
  }
2444
2468
  this.touchState = 0;
2445
2469
  }
2446
2470
  onWidthChange() {
2447
2471
  this.cachedScrollWidth = this.doc().scrollWidth, this.comms.ready && this.snapCurrentOffset();
2448
2472
  }
2449
- onTouchMove(e) {
2473
+ onTouchMove(t) {
2450
2474
  if (this.touchState === 0)
2451
2475
  return;
2452
- this.touchState === 1 && (this.touchState = 2, T(this.wnd)), this.endingX = e.touches[0].clientX;
2453
- const t = this.dragOffset(), i = this.alreadyScrollLeft + t;
2454
- i < 0 ? (this.overscroll = i, this.doc().style.transform = `translate3d(${-this.overscroll}px, 0px, 0px)`) : i + this.wnd.innerWidth > this.cachedScrollWidth ? (this.overscroll = i, this.doc().style.transform = `translate3d(${-i}px, 0px, 0px)`) : (this.overscroll = 0, this.doc().style.removeProperty("transform"), this.doc().scrollLeft = this.alreadyScrollLeft + t);
2476
+ this.touchState === 1 && (this.touchState = 2, S(this.wnd)), this.endingX = t.touches[0].clientX;
2477
+ const e = this.dragOffset(), i = this.alreadyScrollLeft + e;
2478
+ i < 0 ? (this.overscroll = i, this.doc().style.transform = `translate3d(${-this.overscroll}px, 0px, 0px)`) : i + this.wnd.innerWidth > this.cachedScrollWidth ? (this.overscroll = i, this.doc().style.transform = `translate3d(${-i}px, 0px, 0px)`) : (this.overscroll = 0, this.doc().style.removeProperty("transform"), this.doc().scrollLeft = this.alreadyScrollLeft + e);
2455
2479
  }
2456
- mount(e, t) {
2457
- if (this.wnd = e, this.comms = t, !super.mount(e, t))
2480
+ mount(t, e) {
2481
+ if (this.wnd = t, this.comms = e, !super.mount(t, e))
2458
2482
  return !1;
2459
- e.navigator.epubReadingSystem.layoutStyle = "paginated";
2460
- const i = e.document.createElement("style");
2461
- i.dataset.readium = "true", i.id = Ie, i.textContent = `
2483
+ t.navigator.epubReadingSystem.layoutStyle = "paginated";
2484
+ const i = t.document.createElement("style");
2485
+ i.dataset.readium = "true", i.id = Rt, i.textContent = `
2462
2486
  @keyframes readium-bounce-l-animation {
2463
2487
  0%, 100% {transform: translate3d(0, 0, 0);}
2464
2488
  50% {transform: translate3d(-50px, 0, 0);}
@@ -2492,54 +2516,54 @@ const Ie = "readium-column-snapper-style", Ht = 200, Je = class w extends Xe {
2492
2516
  body::-webkit-scrollbar {
2493
2517
  display: none; /* for Chrome, Safari, and Opera */
2494
2518
  }
2495
- `, e.document.head.appendChild(i), this.resizeObserver = new ResizeObserver(() => {
2496
- e.requestAnimationFrame(() => {
2497
- e && Oe(e);
2519
+ `, t.document.head.appendChild(i), this.resizeObserver = new ResizeObserver(() => {
2520
+ t.requestAnimationFrame(() => {
2521
+ t && Lt(t);
2498
2522
  }), this.onWidthChange();
2499
- }), this.resizeObserver.observe(e.document.body), this.mutationObserver = new MutationObserver((n) => {
2523
+ }), this.resizeObserver.observe(t.document.body), this.mutationObserver = new MutationObserver((n) => {
2500
2524
  for (const o of n)
2501
2525
  if (o.target === this.wnd.document.documentElement) {
2502
2526
  const l = o.oldValue, c = o.target.getAttribute("style"), h = /transform\s*:\s*([^;]+)/, u = l == null ? void 0 : l.match(h), p = c == null ? void 0 : c.match(h);
2503
- (!u && !p || u && !p || u && p && u[1] !== p[1]) && (e.requestAnimationFrame(() => {
2504
- e && Oe(e);
2527
+ (!u && !p || u && !p || u && p && u[1] !== p[1]) && (t.requestAnimationFrame(() => {
2528
+ t && Lt(t);
2505
2529
  }), this.onWidthChange());
2506
2530
  } else
2507
- e.requestAnimationFrame(() => this.cachedScrollWidth = this.doc().scrollWidth);
2508
- }), e.frameElement && this.mutationObserver.observe(e.frameElement, { attributes: !0, attributeFilter: ["style"] }), this.mutationObserver.observe(e.document, { attributes: !0, attributeFilter: ["style"] }), this.mutationObserver.observe(e.document.documentElement, { attributes: !0, attributeFilter: ["style"] });
2509
- const s = (n) => {
2531
+ t.requestAnimationFrame(() => this.cachedScrollWidth = this.doc().scrollWidth);
2532
+ }), t.frameElement && this.mutationObserver.observe(t.frameElement, { attributes: !0, attributeFilter: ["style"] }), this.mutationObserver.observe(t.document, { attributes: !0, attributeFilter: ["style"] }), this.mutationObserver.observe(t.document.documentElement, { attributes: !0, attributeFilter: ["style"] });
2533
+ const r = (n) => {
2510
2534
  const o = this.doc().scrollLeft;
2511
2535
  return this.doc().scrollLeft = this.snapOffset(n), o !== this.doc().scrollLeft;
2512
2536
  };
2513
- return e.addEventListener("orientationchange", this.onWidthChanger), e.addEventListener("resize", this.onWidthChanger), e.requestAnimationFrame(() => this.cachedScrollWidth = this.doc().scrollWidth), t.register("go_progression", w.moduleName, (n, o) => {
2537
+ return t.addEventListener("orientationchange", this.onWidthChanger), t.addEventListener("resize", this.onWidthChanger), t.requestAnimationFrame(() => this.cachedScrollWidth = this.doc().scrollWidth), e.register("go_progression", C.moduleName, (n, o) => {
2514
2538
  const l = n;
2515
2539
  if (l < 0 || l > 1) {
2516
- t.send("error", {
2540
+ e.send("error", {
2517
2541
  message: "go_progression must be given a position from 0.0 to 1.0"
2518
2542
  }), o(!1);
2519
2543
  return;
2520
2544
  }
2521
2545
  this.wnd.requestAnimationFrame(() => {
2522
2546
  this.cachedScrollWidth = this.doc().scrollWidth;
2523
- const c = this.cachedScrollWidth, h = W(e) ? -1 : 1, u = c * l * h;
2524
- this.doc().scrollLeft = this.snapOffset(u), this.reportProgress(), T(this.wnd), o(!0);
2547
+ const c = this.cachedScrollWidth, h = F(t) ? -1 : 1, u = c * l * h;
2548
+ this.doc().scrollLeft = this.snapOffset(u), this.reportProgress(), S(this.wnd), o(!0);
2525
2549
  });
2526
- }), t.register("go_id", w.moduleName, (n, o) => {
2527
- const l = e.document.getElementById(n);
2550
+ }), e.register("go_id", C.moduleName, (n, o) => {
2551
+ const l = t.document.getElementById(n);
2528
2552
  if (!l) {
2529
2553
  o(!1);
2530
2554
  return;
2531
2555
  }
2532
2556
  this.wnd.requestAnimationFrame(() => {
2533
- this.doc().scrollLeft = this.snapOffset(l.getBoundingClientRect().left + e.scrollX), this.reportProgress(), T(this.wnd), o(!0);
2557
+ this.doc().scrollLeft = this.snapOffset(l.getBoundingClientRect().left + t.scrollX), this.reportProgress(), S(this.wnd), o(!0);
2534
2558
  });
2535
- }), t.register("go_text", w.moduleName, (n, o) => {
2559
+ }), e.register("go_text", C.moduleName, (n, o) => {
2536
2560
  let l;
2537
2561
  Array.isArray(n) && (n.length > 1 && (l = n[1]), n = n[0]);
2538
- const c = U.deserialize(n), h = le(this.wnd.document, new D({
2539
- href: e.location.href,
2562
+ const c = $.deserialize(n), h = ct(this.wnd.document, new W({
2563
+ href: t.location.href,
2540
2564
  type: "text/html",
2541
2565
  text: c,
2542
- locations: l ? new x({
2566
+ locations: l ? new E({
2543
2567
  otherLocations: /* @__PURE__ */ new Map([
2544
2568
  ["cssSelector", l]
2545
2569
  ])
@@ -2550,57 +2574,57 @@ const Ie = "readium-column-snapper-style", Ht = 200, Je = class w extends Xe {
2550
2574
  return;
2551
2575
  }
2552
2576
  this.wnd.requestAnimationFrame(() => {
2553
- this.doc().scrollLeft = this.snapOffset(h.getBoundingClientRect().left + e.scrollX), this.reportProgress(), T(this.wnd), o(!0);
2577
+ this.doc().scrollLeft = this.snapOffset(h.getBoundingClientRect().left + t.scrollX), this.reportProgress(), S(this.wnd), o(!0);
2554
2578
  });
2555
- }), t.register("go_end", w.moduleName, (n, o) => {
2556
- const l = W(e) ? -1 : 1;
2579
+ }), e.register("go_end", C.moduleName, (n, o) => {
2580
+ const l = F(t) ? -1 : 1;
2557
2581
  this.wnd.requestAnimationFrame(() => {
2558
2582
  this.cachedScrollWidth = this.doc().scrollWidth;
2559
2583
  const c = this.cachedScrollWidth * l;
2560
2584
  if (this.doc().scrollLeft === c)
2561
2585
  return o(!1);
2562
- this.doc().scrollLeft = this.snapOffset(c), this.reportProgress(), T(this.wnd), o(!0);
2586
+ this.doc().scrollLeft = this.snapOffset(c), this.reportProgress(), S(this.wnd), o(!0);
2563
2587
  });
2564
- }), t.register("go_start", w.moduleName, (n, o) => {
2588
+ }), e.register("go_start", C.moduleName, (n, o) => {
2565
2589
  this.wnd.requestAnimationFrame(() => {
2566
2590
  if (this.doc().scrollLeft === 0)
2567
2591
  return o(!1);
2568
- this.doc().scrollLeft = 0, this.reportProgress(), T(this.wnd), o(!0);
2592
+ this.doc().scrollLeft = 0, this.reportProgress(), S(this.wnd), o(!0);
2569
2593
  });
2570
- }), t.register("go_prev", w.moduleName, (n, o) => {
2594
+ }), e.register("go_prev", C.moduleName, (n, o) => {
2571
2595
  this.wnd.requestAnimationFrame(() => {
2572
2596
  this.cachedScrollWidth = this.doc().scrollWidth;
2573
- const l = e.scrollX - e.innerWidth, c = W(e) ? -(this.cachedScrollWidth - e.innerWidth) : 0, h = s(Math.max(l, c));
2574
- h && (this.reportProgress(), T(this.wnd)), o(h);
2597
+ const l = t.scrollX - t.innerWidth, c = F(t) ? -(this.cachedScrollWidth - t.innerWidth) : 0, h = r(Math.max(l, c));
2598
+ h && (this.reportProgress(), S(this.wnd)), o(h);
2575
2599
  });
2576
- }), t.register("go_next", w.moduleName, (n, o) => {
2600
+ }), e.register("go_next", C.moduleName, (n, o) => {
2577
2601
  this.wnd.requestAnimationFrame(() => {
2578
2602
  this.cachedScrollWidth = this.doc().scrollWidth;
2579
- const l = e.scrollX + e.innerWidth, c = W(e) ? 0 : this.cachedScrollWidth - e.innerWidth, h = s(Math.min(l, c));
2580
- h && (this.reportProgress(), T(this.wnd)), o(h);
2603
+ const l = t.scrollX + t.innerWidth, c = F(t) ? 0 : this.cachedScrollWidth - t.innerWidth, h = r(Math.min(l, c));
2604
+ h && (this.reportProgress(), S(this.wnd)), o(h);
2581
2605
  });
2582
- }), t.register("unfocus", w.moduleName, (n, o) => {
2583
- this.snappingCancelled = !0, T(this.wnd), o(!0);
2584
- }), t.register("shake", w.moduleName, (n, o) => {
2606
+ }), e.register("unfocus", C.moduleName, (n, o) => {
2607
+ this.snappingCancelled = !0, S(this.wnd), o(!0);
2608
+ }), e.register("shake", C.moduleName, (n, o) => {
2585
2609
  this.shake(), o(!0);
2586
- }), t.register("focus", w.moduleName, (n, o) => {
2610
+ }), e.register("focus", C.moduleName, (n, o) => {
2587
2611
  this.wnd.requestAnimationFrame(() => {
2588
2612
  this.cachedScrollWidth = this.doc().scrollWidth, this.snapCurrentOffset(!1, !0), this.reportProgress(), o(!0);
2589
2613
  });
2590
- }), t.register("first_visible_locator", w.moduleName, (n, o) => {
2591
- const l = Ke(e, !1);
2614
+ }), e.register("first_visible_locator", C.moduleName, (n, o) => {
2615
+ const l = Jt(t, !1);
2592
2616
  this.comms.send("first_visible_locator", l.serialize()), o(!0);
2593
- }), e.addEventListener("touchstart", this.onTouchStarter, { passive: !0 }), e.addEventListener("touchend", this.onTouchEnder, { passive: !0 }), e.addEventListener("touchmove", this.onTouchMover, { passive: !0 }), e.document.addEventListener("touchstart", () => {
2594
- }), t.log("ColumnSnapper Mounted"), !0;
2617
+ }), t.addEventListener("touchstart", this.onTouchStarter, { passive: !0 }), t.addEventListener("touchend", this.onTouchEnder, { passive: !0 }), t.addEventListener("touchmove", this.onTouchMover, { passive: !0 }), t.document.addEventListener("touchstart", () => {
2618
+ }), e.log("ColumnSnapper Mounted"), !0;
2595
2619
  }
2596
- unmount(e, t) {
2620
+ unmount(t, e) {
2597
2621
  var i;
2598
- return this.snappingCancelled = !0, t.unregisterAll(w.moduleName), this.resizeObserver.disconnect(), this.mutationObserver.disconnect(), e.removeEventListener("touchstart", this.onTouchStarter), e.removeEventListener("touchend", this.onTouchEnder), e.removeEventListener("touchmove", this.onTouchMover), e.removeEventListener("orientationchange", this.onWidthChanger), e.removeEventListener("resize", this.onWidthChanger), (i = e.document.getElementById(Ie)) == null || i.remove(), t.log("ColumnSnapper Unmounted"), super.unmount(e, t);
2622
+ return this.snappingCancelled = !0, e.unregisterAll(C.moduleName), this.resizeObserver.disconnect(), this.mutationObserver.disconnect(), t.removeEventListener("touchstart", this.onTouchStarter), t.removeEventListener("touchend", this.onTouchEnder), t.removeEventListener("touchmove", this.onTouchMover), t.removeEventListener("orientationchange", this.onWidthChanger), t.removeEventListener("resize", this.onWidthChanger), (i = t.document.getElementById(Rt)) == null || i.remove(), e.log("ColumnSnapper Unmounted"), super.unmount(t, e);
2599
2623
  }
2600
2624
  };
2601
- Je.moduleName = "column_snapper";
2602
- let jt = Je;
2603
- const Le = "readium-scroll-snapper-style", Qe = class P extends Xe {
2625
+ te.moduleName = "column_snapper";
2626
+ let qe = te;
2627
+ const zt = "readium-scroll-snapper-style", ee = class P extends Yt {
2604
2628
  constructor() {
2605
2629
  super(...arguments), this.initialScrollHandled = !1, this.isScrolling = !1, this.lastScrollTop = 0, this.isResizing = !1, this.resizeDebounce = null, this.handleScroll = () => {
2606
2630
  if (this.comms.ready && !this.isResizing) {
@@ -2610,8 +2634,8 @@ const Le = "readium-scroll-snapper-style", Qe = class P extends Xe {
2610
2634
  }
2611
2635
  this.isScrolling || (this.isScrolling = !0, this.wnd.requestAnimationFrame(() => {
2612
2636
  this.reportProgress();
2613
- const e = this.doc().scrollTop, t = e - this.lastScrollTop;
2614
- this.lastScrollTop = e, this.comms.send("scroll", t), this.isScrolling = !1;
2637
+ const t = this.doc().scrollTop, e = t - this.lastScrollTop;
2638
+ this.lastScrollTop = t, this.comms.send("scroll", e), this.isScrolling = !1;
2615
2639
  }));
2616
2640
  }
2617
2641
  };
@@ -2622,16 +2646,16 @@ const Le = "readium-scroll-snapper-style", Qe = class P extends Xe {
2622
2646
  reportProgress() {
2623
2647
  if (!this.comms.ready)
2624
2648
  return;
2625
- const e = Math.ceil(this.doc().scrollTop), t = this.doc().scrollHeight, i = this.wnd.innerHeight, s = Math.max(0, Math.min(1, e / t)), n = Math.max(0, Math.min(1, (e + i) / t));
2649
+ const t = Math.ceil(this.doc().scrollTop), e = this.doc().scrollHeight, i = this.wnd.innerHeight, r = Math.max(0, Math.min(1, t / e)), n = Math.max(0, Math.min(1, (t + i) / e));
2626
2650
  this.comms.send("progress", {
2627
- start: s,
2651
+ start: r,
2628
2652
  end: n
2629
2653
  });
2630
2654
  }
2631
- mount(e, t) {
2632
- this.wnd = e, this.comms = t, this.initialScrollHandled = !1, this.lastScrollTop = 0, this.isResizing = !1, this.resizeDebounce && (this.wnd.clearTimeout(this.resizeDebounce), this.resizeDebounce = null), e.navigator.epubReadingSystem.layoutStyle = "scrolling";
2633
- const i = e.document.createElement("style");
2634
- return i.dataset.readium = "true", i.id = Le, i.textContent = `
2655
+ mount(t, e) {
2656
+ this.wnd = t, this.comms = e, this.initialScrollHandled = !1, this.lastScrollTop = 0, this.isResizing = !1, this.resizeDebounce && (this.wnd.clearTimeout(this.resizeDebounce), this.resizeDebounce = null), t.navigator.epubReadingSystem.layoutStyle = "scrolling";
2657
+ const i = t.document.createElement("style");
2658
+ return i.dataset.readium = "true", i.id = zt, i.textContent = `
2635
2659
  * {
2636
2660
  scrollbar-width: none; /* for Firefox */
2637
2661
  }
@@ -2639,42 +2663,42 @@ const Le = "readium-scroll-snapper-style", Qe = class P extends Xe {
2639
2663
  body::-webkit-scrollbar {
2640
2664
  display: none; /* for Chrome, Safari, and Opera */
2641
2665
  }
2642
- `, e.document.head.appendChild(i), this.resizeObserver = new ResizeObserver(() => {
2666
+ `, t.document.head.appendChild(i), this.resizeObserver = new ResizeObserver(() => {
2643
2667
  this.resizeDebounce && this.wnd.clearTimeout(this.resizeDebounce), this.isResizing = !0, this.resizeDebounce = this.wnd.setTimeout(() => {
2644
2668
  this.isResizing = !1, this.resizeDebounce = null, this.reportProgress();
2645
2669
  }, 50);
2646
- }), this.resizeObserver.observe(e.document.body), e.addEventListener("scroll", this.handleScroll, { passive: !0 }), t.register("force_webkit_recalc", P.moduleName, () => {
2647
- Wt(this.wnd);
2648
- const s = this.doc().scrollTop;
2649
- s > 1 ? this.doc().scrollTop = s - 1 : this.doc().scrollTop = s + 1, this.doc().scrollTop = s;
2650
- }), t.register("go_progression", P.moduleName, (s, n) => {
2651
- const o = s;
2670
+ }), this.resizeObserver.observe(t.document.body), t.addEventListener("scroll", this.handleScroll, { passive: !0 }), e.register("force_webkit_recalc", P.moduleName, () => {
2671
+ Ue(this.wnd);
2672
+ const r = this.doc().scrollTop;
2673
+ r > 1 ? this.doc().scrollTop = r - 1 : this.doc().scrollTop = r + 1, this.doc().scrollTop = r;
2674
+ }), e.register("go_progression", P.moduleName, (r, n) => {
2675
+ const o = r;
2652
2676
  if (o < 0 || o > 1) {
2653
- t.send("error", {
2677
+ e.send("error", {
2654
2678
  message: "go_progression must be given a position from 0.0 to 1.0"
2655
2679
  }), n(!1);
2656
2680
  return;
2657
2681
  }
2658
2682
  this.wnd.requestAnimationFrame(() => {
2659
- this.doc().scrollTop = this.doc().offsetHeight * o, this.reportProgress(), T(this.wnd), n(!0);
2683
+ this.doc().scrollTop = this.doc().offsetHeight * o, this.reportProgress(), S(this.wnd), n(!0);
2660
2684
  });
2661
- }), t.register("go_id", P.moduleName, (s, n) => {
2662
- const o = e.document.getElementById(s);
2685
+ }), e.register("go_id", P.moduleName, (r, n) => {
2686
+ const o = t.document.getElementById(r);
2663
2687
  if (!o) {
2664
2688
  n(!1);
2665
2689
  return;
2666
2690
  }
2667
2691
  this.wnd.requestAnimationFrame(() => {
2668
- this.doc().scrollTop = o.getBoundingClientRect().top + e.scrollY - e.innerHeight / 2, this.reportProgress(), T(this.wnd), n(!0);
2692
+ this.doc().scrollTop = o.getBoundingClientRect().top + t.scrollY - t.innerHeight / 2, this.reportProgress(), S(this.wnd), n(!0);
2669
2693
  });
2670
- }), t.register("go_text", P.moduleName, (s, n) => {
2694
+ }), e.register("go_text", P.moduleName, (r, n) => {
2671
2695
  let o;
2672
- Array.isArray(s) && (s.length > 1 && (o = s[1]), s = s[0]);
2673
- const l = U.deserialize(s), c = le(this.wnd.document, new D({
2674
- href: e.location.href,
2696
+ Array.isArray(r) && (r.length > 1 && (o = r[1]), r = r[0]);
2697
+ const l = $.deserialize(r), c = ct(this.wnd.document, new W({
2698
+ href: t.location.href,
2675
2699
  type: "text/html",
2676
2700
  text: l,
2677
- locations: o ? new x({
2701
+ locations: o ? new E({
2678
2702
  otherLocations: /* @__PURE__ */ new Map([
2679
2703
  ["cssSelector", o]
2680
2704
  ])
@@ -2685,48 +2709,48 @@ const Le = "readium-scroll-snapper-style", Qe = class P extends Xe {
2685
2709
  return;
2686
2710
  }
2687
2711
  this.wnd.requestAnimationFrame(() => {
2688
- this.doc().scrollTop = c.getBoundingClientRect().top + e.scrollY - e.innerHeight / 2, this.reportProgress(), T(this.wnd), n(!0);
2712
+ this.doc().scrollTop = c.getBoundingClientRect().top + t.scrollY - t.innerHeight / 2, this.reportProgress(), S(this.wnd), n(!0);
2689
2713
  });
2690
- }), t.register("go_start", P.moduleName, (s, n) => {
2714
+ }), e.register("go_start", P.moduleName, (r, n) => {
2691
2715
  if (this.doc().scrollTop === 0)
2692
2716
  return n(!1);
2693
2717
  this.doc().scrollTop = 0, this.reportProgress(), n(!0);
2694
- }), t.register("go_end", P.moduleName, (s, n) => {
2718
+ }), e.register("go_end", P.moduleName, (r, n) => {
2695
2719
  if (this.doc().scrollTop === this.doc().scrollHeight - this.doc().offsetHeight)
2696
2720
  return n(!1);
2697
2721
  this.doc().scrollTop = this.doc().scrollHeight - this.doc().offsetHeight, this.reportProgress(), n(!0);
2698
- }), t.register("unfocus", P.moduleName, (s, n) => {
2699
- T(this.wnd), n(!0);
2700
- }), t.register([
2722
+ }), e.register("unfocus", P.moduleName, (r, n) => {
2723
+ S(this.wnd), n(!0);
2724
+ }), e.register([
2701
2725
  "go_next",
2702
2726
  "go_prev"
2703
- ], P.moduleName, (s, n) => n(!1)), t.register("focus", P.moduleName, (s, n) => {
2727
+ ], P.moduleName, (r, n) => n(!1)), e.register("focus", P.moduleName, (r, n) => {
2704
2728
  this.reportProgress(), n(!0);
2705
- }), t.register("first_visible_locator", P.moduleName, (s, n) => {
2706
- const o = Ke(e, !0);
2729
+ }), e.register("first_visible_locator", P.moduleName, (r, n) => {
2730
+ const o = Jt(t, !0);
2707
2731
  this.comms.send("first_visible_locator", o.serialize()), n(!0);
2708
- }), t.log("ScrollSnapper Mounted"), !0;
2732
+ }), e.log("ScrollSnapper Mounted"), !0;
2709
2733
  }
2710
- unmount(e, t) {
2734
+ unmount(t, e) {
2711
2735
  var i;
2712
- return t.unregisterAll(P.moduleName), this.resizeObserver.disconnect(), this.handleScroll && e.removeEventListener("scroll", this.handleScroll), (i = e.document.getElementById(Le)) == null || i.remove(), t.log("ScrollSnapper Unmounted"), !0;
2736
+ return e.unregisterAll(P.moduleName), this.resizeObserver.disconnect(), this.handleScroll && t.removeEventListener("scroll", this.handleScroll), (i = t.document.getElementById(zt)) == null || i.remove(), e.log("ScrollSnapper Unmounted"), !0;
2713
2737
  }
2714
2738
  };
2715
- Qe.moduleName = "scroll_snapper";
2716
- let Vt = Qe;
2717
- class et extends Y {
2739
+ ee.moduleName = "scroll_snapper";
2740
+ let _e = ee;
2741
+ class ie extends K {
2718
2742
  constructor() {
2719
2743
  super(...arguments), this.pointerMoved = !1, this.onPointerUp = this.onPointUp.bind(this), this.onPointerMove = this.onPointMove.bind(this), this.onPointerDown = this.onPointDown.bind(this), this.onContextMenu = this.onContext.bind(this), this.onClicker = this.onClick.bind(this);
2720
2744
  }
2721
- onPointUp(e) {
2722
- var s, n, o, l, c;
2723
- const t = this.wnd.getSelection();
2724
- if (t && ((s = t.toString()) == null ? void 0 : s.length) > 0) {
2725
- const h = (n = t.getRangeAt(0)) == null ? void 0 : n.getClientRects();
2745
+ onPointUp(t) {
2746
+ var r, n, o, l, c;
2747
+ const e = this.wnd.getSelection();
2748
+ if (e && ((r = e.toString()) == null ? void 0 : r.length) > 0) {
2749
+ const h = (n = e.getRangeAt(0)) == null ? void 0 : n.getClientRects();
2726
2750
  if (!h || h.length === 0)
2727
2751
  return;
2728
2752
  const u = h[0], p = {
2729
- text: t.toString(),
2753
+ text: e.toString(),
2730
2754
  x: u.x,
2731
2755
  y: u.y,
2732
2756
  width: u.width,
@@ -2739,22 +2763,22 @@ class et extends Y {
2739
2763
  this.pointerMoved = !1;
2740
2764
  return;
2741
2765
  }
2742
- if (!(t != null && t.isCollapsed) || !e.isPrimary)
2766
+ if (!(e != null && e.isCollapsed) || !t.isPrimary)
2743
2767
  return;
2744
2768
  const i = this.wnd.devicePixelRatio;
2745
- e.preventDefault(), this.comms.send(e.pointerType === "touch" ? "tap" : "click", {
2746
- defaultPrevented: e.defaultPrevented,
2747
- x: e.clientX * i,
2748
- y: e.clientY * i,
2769
+ t.preventDefault(), this.comms.send(t.pointerType === "touch" ? "tap" : "click", {
2770
+ defaultPrevented: t.defaultPrevented,
2771
+ x: t.clientX * i,
2772
+ y: t.clientY * i,
2749
2773
  targetFrameSrc: this.wnd.location.href,
2750
- targetElement: e.target.outerHTML,
2751
- interactiveElement: (c = Ye(e.target)) == null ? void 0 : c.outerHTML,
2752
- cssSelector: this.wnd._readium_cssSelectorGenerator.getCssSelector(e.target)
2774
+ targetElement: t.target.outerHTML,
2775
+ interactiveElement: (c = Kt(t.target)) == null ? void 0 : c.outerHTML,
2776
+ cssSelector: this.wnd._readium_cssSelectorGenerator.getCssSelector(t.target)
2753
2777
  }), this.pointerMoved = !1;
2754
2778
  }
2755
- onPointMove(e) {
2756
- if (e.movementY !== void 0 && e.movementX !== void 0) {
2757
- (Math.abs(e.movementX) > 1 || Math.abs(e.movementY) > 1) && (this.pointerMoved = !0);
2779
+ onPointMove(t) {
2780
+ if (t.movementY !== void 0 && t.movementX !== void 0) {
2781
+ (Math.abs(t.movementX) > 1 || Math.abs(t.movementY) > 1) && (this.pointerMoved = !0);
2758
2782
  return;
2759
2783
  }
2760
2784
  this.pointerMoved = !0;
@@ -2762,86 +2786,86 @@ class et extends Y {
2762
2786
  onPointDown() {
2763
2787
  this.pointerMoved = !1;
2764
2788
  }
2765
- onContext(e) {
2766
- this.onPointUp(e), this.pointerMoved = !1;
2789
+ onContext(t) {
2790
+ this.onPointUp(t), this.pointerMoved = !1;
2767
2791
  }
2768
- onClick(e) {
2769
- if (e.preventDefault(), !e.isTrusted) {
2770
- const t = new PointerEvent("pointerup", {
2792
+ onClick(t) {
2793
+ if (t.preventDefault(), !t.isTrusted) {
2794
+ const e = new PointerEvent("pointerup", {
2771
2795
  isPrimary: !0,
2772
2796
  pointerType: "mouse",
2773
2797
  // Not really a better choice than this
2774
- clientX: e.clientX,
2775
- clientY: e.clientY
2798
+ clientX: t.clientX,
2799
+ clientY: t.clientY
2776
2800
  });
2777
- Object.defineProperty(t, "target", { writable: !1, value: e.target }), Object.defineProperty(t, "defaultPrevented", { writable: !1, value: e.defaultPrevented }), this.onPointUp(t);
2801
+ Object.defineProperty(e, "target", { writable: !1, value: t.target }), Object.defineProperty(e, "defaultPrevented", { writable: !1, value: t.defaultPrevented }), this.onPointUp(e);
2778
2802
  }
2779
2803
  }
2780
- mount(e, t) {
2781
- return this.wnd = e, this.comms = t, e.document.addEventListener("pointerdown", this.onPointerDown), e.document.addEventListener("pointerup", this.onPointerUp), e.document.addEventListener("contextmenu", this.onContextMenu), e.document.addEventListener("pointermove", this.onPointerMove), e.document.addEventListener("click", this.onClicker), t.log("Peripherals Mounted"), !0;
2804
+ mount(t, e) {
2805
+ return this.wnd = t, this.comms = e, t.document.addEventListener("pointerdown", this.onPointerDown), t.document.addEventListener("pointerup", this.onPointerUp), t.document.addEventListener("contextmenu", this.onContextMenu), t.document.addEventListener("pointermove", this.onPointerMove), t.document.addEventListener("click", this.onClicker), e.log("Peripherals Mounted"), !0;
2782
2806
  }
2783
- unmount(e, t) {
2784
- return e.document.removeEventListener("pointerdown", this.onPointerDown), e.document.removeEventListener("pointerup", this.onPointerUp), e.document.removeEventListener("contextmenu", this.onContextMenu), e.document.removeEventListener("pointermove", this.onPointerMove), e.document.removeEventListener("click", this.onClicker), t.log("Peripherals Unmounted"), !0;
2807
+ unmount(t, e) {
2808
+ return t.document.removeEventListener("pointerdown", this.onPointerDown), t.document.removeEventListener("pointerup", this.onPointerUp), t.document.removeEventListener("contextmenu", this.onContextMenu), t.document.removeEventListener("pointermove", this.onPointerMove), t.document.removeEventListener("click", this.onClicker), e.log("Peripherals Unmounted"), !0;
2785
2809
  }
2786
2810
  }
2787
- et.moduleName = "peripherals";
2788
- const tt = class te extends Y {
2811
+ ie.moduleName = "peripherals";
2812
+ const se = class st extends K {
2789
2813
  constructor() {
2790
2814
  super(...arguments), this.mediaPlayingCount = 0, this.allAnimations = /* @__PURE__ */ new Set();
2791
2815
  }
2792
- wndOnErr(e) {
2793
- var t;
2794
- (t = this.comms) == null || t.send("error", {
2795
- message: e.message,
2796
- filename: e.filename,
2797
- lineno: e.lineno,
2798
- colno: e.colno
2816
+ wndOnErr(t) {
2817
+ var e;
2818
+ (e = this.comms) == null || e.send("error", {
2819
+ message: t.message,
2820
+ filename: t.filename,
2821
+ lineno: t.lineno,
2822
+ colno: t.colno
2799
2823
  });
2800
2824
  }
2801
- unblock(e) {
2802
- var t;
2803
- for (e._readium_blockEvents = !1; ((t = e._readium_blockedEvents) == null ? void 0 : t.length) > 0; ) {
2804
- const i = e._readium_blockedEvents.shift();
2825
+ unblock(t) {
2826
+ var e;
2827
+ for (t._readium_blockEvents = !1; ((e = t._readium_blockedEvents) == null ? void 0 : e.length) > 0; ) {
2828
+ const i = t._readium_blockedEvents.shift();
2805
2829
  switch (i[0]) {
2806
2830
  case 0:
2807
2831
  Reflect.apply(i[1], i[2], i[3]);
2808
2832
  break;
2809
2833
  case 1:
2810
- const s = i[1], n = i[2];
2811
- e.removeEventListener(s.type, e._readium_eventBlocker, !0);
2812
- const o = new Event(s.type, {
2813
- bubbles: s.bubbles,
2814
- cancelable: s.cancelable
2834
+ const r = i[1], n = i[2];
2835
+ t.removeEventListener(r.type, t._readium_eventBlocker, !0);
2836
+ const o = new Event(r.type, {
2837
+ bubbles: r.bubbles,
2838
+ cancelable: r.cancelable
2815
2839
  });
2816
- n ? n.dispatchEvent(o) : e.dispatchEvent(o);
2840
+ n ? n.dispatchEvent(o) : t.dispatchEvent(o);
2817
2841
  break;
2818
2842
  }
2819
2843
  }
2820
2844
  }
2821
2845
  onMediaPlayEvent() {
2822
- var e;
2823
- this.mediaPlayingCount++, (e = this.comms) == null || e.send("media_play", this.mediaPlayingCount);
2846
+ var t;
2847
+ this.mediaPlayingCount++, (t = this.comms) == null || t.send("media_play", this.mediaPlayingCount);
2824
2848
  }
2825
2849
  onMediaPauseEvent() {
2826
- var e;
2827
- this.mediaPlayingCount > 0 && this.mediaPlayingCount--, (e = this.comms) == null || e.send("media_pause", this.mediaPlayingCount);
2850
+ var t;
2851
+ this.mediaPlayingCount > 0 && this.mediaPlayingCount--, (t = this.comms) == null || t.send("media_pause", this.mediaPlayingCount);
2828
2852
  }
2829
- pauseAllMedia(e) {
2830
- const t = e.document.querySelectorAll("audio,video");
2831
- for (let i = 0; i < t.length; i++)
2832
- t[i].pause();
2853
+ pauseAllMedia(t) {
2854
+ const e = t.document.querySelectorAll("audio,video");
2855
+ for (let i = 0; i < e.length; i++)
2856
+ e[i].pause();
2833
2857
  }
2834
- mount(e, t) {
2835
- this.comms = t, e.addEventListener(
2858
+ mount(t, e) {
2859
+ this.comms = e, t.addEventListener(
2836
2860
  "error",
2837
2861
  this.wndOnErr,
2838
2862
  !1
2839
- ), Reflect.defineProperty(e.navigator, "epubReadingSystem", {
2863
+ ), Reflect.defineProperty(t.navigator, "epubReadingSystem", {
2840
2864
  value: {
2841
2865
  name: "readium-ts-toolkit",
2842
- version: "2.0.0-beta.7",
2843
- hasFeature: (s, n = "") => {
2844
- switch (s) {
2866
+ version: "2.1.0",
2867
+ hasFeature: (r, n = "") => {
2868
+ switch (r) {
2845
2869
  case "dom-manipulation":
2846
2870
  return !0;
2847
2871
  case "layout-changes":
@@ -2862,73 +2886,73 @@ const tt = class te extends Y {
2862
2886
  }
2863
2887
  },
2864
2888
  writable: !1
2865
- }), "getAnimations" in e.document && e.document.getAnimations().forEach((s) => {
2866
- s.cancel(), this.allAnimations.add(s);
2867
- }), t.register("activate", te.moduleName, (s, n) => {
2889
+ }), "getAnimations" in t.document && t.document.getAnimations().forEach((r) => {
2890
+ r.cancel(), this.allAnimations.add(r);
2891
+ }), e.register("activate", st.moduleName, (r, n) => {
2868
2892
  this.allAnimations.forEach((o) => {
2869
2893
  o.cancel(), o.play();
2870
2894
  }), n(!0);
2871
- }), t.register("unfocus", te.moduleName, (s, n) => {
2872
- this.pauseAllMedia(e), this.allAnimations.forEach((o) => o.pause()), n(!0);
2895
+ }), e.register("unfocus", st.moduleName, (r, n) => {
2896
+ this.pauseAllMedia(t), this.allAnimations.forEach((o) => o.pause()), n(!0);
2873
2897
  });
2874
- const i = e.document.querySelectorAll("audio,video");
2875
- for (let s = 0; s < i.length; s++) {
2876
- const n = i[s];
2898
+ const i = t.document.querySelectorAll("audio,video");
2899
+ for (let r = 0; r < i.length; r++) {
2900
+ const n = i[r];
2877
2901
  n.addEventListener("play", this.onMediaPlayEvent, {
2878
2902
  passive: !0
2879
2903
  }), n.addEventListener("pause", this.onMediaPauseEvent, {
2880
2904
  passive: !0
2881
2905
  });
2882
2906
  }
2883
- return t.log("Setup Mounted"), !0;
2907
+ return e.log("Setup Mounted"), !0;
2884
2908
  }
2885
- unmount(e, t) {
2886
- return e.removeEventListener("error", this.wndOnErr), e.removeEventListener("play", this.onMediaPlayEvent), e.removeEventListener("pause", this.onMediaPauseEvent), this.allAnimations.forEach((i) => i.cancel()), this.allAnimations.clear(), t.log("Setup Unmounted"), !0;
2909
+ unmount(t, e) {
2910
+ return t.removeEventListener("error", this.wndOnErr), t.removeEventListener("play", this.onMediaPlayEvent), t.removeEventListener("pause", this.onMediaPauseEvent), this.allAnimations.forEach((i) => i.cancel()), this.allAnimations.clear(), e.log("Setup Unmounted"), !0;
2887
2911
  }
2888
2912
  };
2889
- tt.moduleName = "setup";
2890
- let it = tt;
2891
- const Re = "readium-viewport", rt = class F extends it {
2892
- onViewportWidthChanged(e) {
2893
- const t = e.target;
2894
- G(t, "--RS__viewportWidth", `${t.innerWidth}px`);
2895
- }
2896
- mount(e, t) {
2897
- if (!super.mount(e, t))
2913
+ se.moduleName = "setup";
2914
+ let re = se;
2915
+ const Dt = "readium-viewport", ne = class U extends re {
2916
+ onViewportWidthChanged(t) {
2917
+ const e = t.target;
2918
+ Z(e, "--RS__viewportWidth", `${e.innerWidth}px`);
2919
+ }
2920
+ mount(t, e) {
2921
+ if (!super.mount(t, e))
2898
2922
  return !1;
2899
- const i = e.document.createElement("meta");
2900
- return i.dataset.readium = "true", i.setAttribute("name", "viewport"), i.setAttribute("id", Re), i.setAttribute(
2923
+ const i = t.document.createElement("meta");
2924
+ return i.dataset.readium = "true", i.setAttribute("name", "viewport"), i.setAttribute("id", Dt), i.setAttribute(
2901
2925
  "content",
2902
2926
  "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no"
2903
- ), e.document.head.appendChild(i), e.addEventListener("orientationchange", this.onViewportWidthChanged), e.addEventListener("resize", this.onViewportWidthChanged), this.onViewportWidthChanged({
2904
- target: e
2905
- }), t.register("get_properties", F.moduleName, (s, n) => {
2906
- Ve(e), n(!0);
2907
- }), t.register("update_properties", F.moduleName, (s, n) => {
2908
- s["--RS__viewportWidth"] = `${e.innerWidth}px`, Nt(e, s), n(!0);
2909
- }), t.register("set_property", F.moduleName, (s, n) => {
2910
- const o = s;
2911
- G(e, o[0], o[1]), n(!0);
2912
- }), t.register("remove_property", F.moduleName, (s, n) => {
2913
- he(e, s), n(!0);
2914
- }), t.register("activate", F.moduleName, (s, n) => {
2915
- this.unblock(e), n(!0);
2916
- }), t.log("ReflowableSetup Mounted"), !0;
2917
- }
2918
- unmount(e, t) {
2927
+ ), t.document.head.appendChild(i), t.addEventListener("orientationchange", this.onViewportWidthChanged), t.addEventListener("resize", this.onViewportWidthChanged), this.onViewportWidthChanged({
2928
+ target: t
2929
+ }), e.register("get_properties", U.moduleName, (r, n) => {
2930
+ _t(t), n(!0);
2931
+ }), e.register("update_properties", U.moduleName, (r, n) => {
2932
+ r["--RS__viewportWidth"] = `${t.innerWidth}px`, Ae(t, r), n(!0);
2933
+ }), e.register("set_property", U.moduleName, (r, n) => {
2934
+ const o = r;
2935
+ Z(t, o[0], o[1]), n(!0);
2936
+ }), e.register("remove_property", U.moduleName, (r, n) => {
2937
+ ut(t, r), n(!0);
2938
+ }), e.register("activate", U.moduleName, (r, n) => {
2939
+ this.unblock(t), n(!0);
2940
+ }), e.log("ReflowableSetup Mounted"), !0;
2941
+ }
2942
+ unmount(t, e) {
2919
2943
  var i;
2920
- return t.unregisterAll(F.moduleName), (i = e.document.head.querySelector(`#${Re}`)) == null || i.remove(), e.removeEventListener("orientationchange", this.onViewportWidthChanged), t.log("ReflowableSetup Unmounted"), super.unmount(e, t);
2944
+ return e.unregisterAll(U.moduleName), (i = t.document.head.querySelector(`#${Dt}`)) == null || i.remove(), t.removeEventListener("orientationchange", this.onViewportWidthChanged), e.log("ReflowableSetup Unmounted"), super.unmount(t, e);
2921
2945
  }
2922
2946
  };
2923
- rt.moduleName = "reflowable_setup";
2924
- let qt = rt;
2925
- const ze = "readium-fixed-style", st = class L extends it {
2926
- mount(e, t) {
2927
- if (!super.mount(e, t))
2947
+ ne.moduleName = "reflowable_setup";
2948
+ let Xe = ne;
2949
+ const Wt = "readium-fixed-style", oe = class R extends re {
2950
+ mount(t, e) {
2951
+ if (!super.mount(t, e))
2928
2952
  return !1;
2929
- e.navigator.epubReadingSystem.layoutStyle = "paginated";
2930
- const i = e.document.createElement("style");
2931
- return i.id = ze, i.dataset.readium = "true", i.textContent = `
2953
+ t.navigator.epubReadingSystem.layoutStyle = "paginated";
2954
+ const i = t.document.createElement("style");
2955
+ return i.id = Wt, i.dataset.readium = "true", i.textContent = `
2932
2956
  html, body {
2933
2957
  text-size-adjust: none;
2934
2958
  -ms-text-size-adjust: none;
@@ -2940,14 +2964,14 @@ const ze = "readium-fixed-style", st = class L extends it {
2940
2964
  min-height: 100%;
2941
2965
 
2942
2966
  /*cursor: var() TODO*/
2943
- }`, e.document.head.appendChild(i), t.register("set_property", L.moduleName, (s, n) => {
2944
- const o = s;
2945
- G(e, o[0], o[1]), n(!0);
2946
- }), t.register("remove_property", L.moduleName, (s, n) => {
2947
- he(e, s), n(!0);
2948
- }), t.register("first_visible_locator", L.moduleName, (s, n) => n(!1)), t.register("unfocus", L.moduleName, (s, n) => {
2949
- T(e), n(!0);
2950
- }), t.register([
2967
+ }`, t.document.head.appendChild(i), e.register("set_property", R.moduleName, (r, n) => {
2968
+ const o = r;
2969
+ Z(t, o[0], o[1]), n(!0);
2970
+ }), e.register("remove_property", R.moduleName, (r, n) => {
2971
+ ut(t, r), n(!0);
2972
+ }), e.register("first_visible_locator", R.moduleName, (r, n) => n(!1)), e.register("unfocus", R.moduleName, (r, n) => {
2973
+ S(t), n(!0);
2974
+ }), e.register([
2951
2975
  "focus",
2952
2976
  "go_next",
2953
2977
  "go_prev",
@@ -2956,97 +2980,97 @@ const ze = "readium-fixed-style", st = class L extends it {
2956
2980
  "go_start",
2957
2981
  "go_text",
2958
2982
  "go_progression"
2959
- ], L.moduleName, (s, n) => n(!0)), t.register("activate", L.moduleName, (s, n) => {
2960
- this.unblock(e), n(!0);
2961
- }), t.log("FixedSetup Mounted"), !0;
2983
+ ], R.moduleName, (r, n) => n(!0)), e.register("activate", R.moduleName, (r, n) => {
2984
+ this.unblock(t), n(!0);
2985
+ }), e.log("FixedSetup Mounted"), !0;
2962
2986
  }
2963
- unmount(e, t) {
2987
+ unmount(t, e) {
2964
2988
  var i;
2965
- return t.unregisterAll(L.moduleName), (i = e.document.getElementById(ze)) == null || i.remove(), t.log("FixedSetup Unmounted"), super.unmount(e, t);
2989
+ return e.unregisterAll(R.moduleName), (i = t.document.getElementById(Wt)) == null || i.remove(), e.log("FixedSetup Unmounted"), super.unmount(t, e);
2966
2990
  }
2967
2991
  };
2968
- st.moduleName = "fixed_setup";
2969
- let _t = st;
2970
- const Xt = [
2992
+ oe.moduleName = "fixed_setup";
2993
+ let Ge = oe;
2994
+ const Ye = [
2971
2995
  "fixed_setup",
2972
2996
  "decorator",
2973
2997
  "peripherals"
2974
- ], Gt = [
2998
+ ], Ze = [
2975
2999
  "reflowable_setup",
2976
3000
  "decorator",
2977
3001
  "peripherals",
2978
3002
  "column_snapper",
2979
3003
  "scroll_snapper"
2980
- ], De = new Map([
3004
+ ], Ft = new Map([
2981
3005
  // All modules go here
2982
- _t,
2983
- qt,
2984
- et,
2985
- Dt,
2986
- jt,
2987
- Vt
2988
- ].map((r) => [r.moduleName, r]));
2989
- class Yt {
3006
+ Ge,
3007
+ Xe,
3008
+ ie,
3009
+ Fe,
3010
+ qe,
3011
+ _e
3012
+ ].map((s) => [s.moduleName, s]));
3013
+ class Ke {
2990
3014
  /**
2991
3015
  * @param wnd Window instance to operate on
2992
3016
  * @param initialModules List of initial modules to load
2993
3017
  */
2994
- constructor(e = window, t = []) {
2995
- this.loadedModules = [], this.wnd = e, this.comms = new at(e);
2996
- const i = [...new Set(t)];
3018
+ constructor(t = window, e = []) {
3019
+ this.loadedModules = [], this.wnd = t, this.comms = new he(t);
3020
+ const i = [...new Set(e)];
2997
3021
  if (i.length) {
2998
- if (typeof e > "u")
3022
+ if (typeof t > "u")
2999
3023
  throw Error("Loader is not in a web browser");
3000
- e.parent !== e && this.comms.log("Loader is probably in a frame"), this.loadedModules = i.map((s) => {
3001
- const n = this.loadModule(s);
3024
+ t.parent !== t && this.comms.log("Loader is probably in a frame"), this.loadedModules = i.map((r) => {
3025
+ const n = this.loadModule(r);
3002
3026
  if (n)
3003
3027
  return n.mount(this.wnd, this.comms), n;
3004
- }).filter((s) => s !== void 0);
3028
+ }).filter((r) => r !== void 0);
3005
3029
  }
3006
3030
  }
3007
- loadModule(e) {
3008
- const t = De.get(e);
3009
- return t === void 0 ? (this.comms.log(`Module "${name}" does not exist in the library`), t) : new t();
3031
+ loadModule(t) {
3032
+ const e = Ft.get(t);
3033
+ return e === void 0 ? (this.comms.log(`Module "${name}" does not exist in the library`), e) : new e();
3010
3034
  }
3011
3035
  /**
3012
3036
  * Add a module by name
3013
3037
  * @param moduleName Module name
3014
3038
  * @returns Success
3015
3039
  */
3016
- addModule(e) {
3017
- const t = this.loadModule(e);
3018
- return !t || !t.mount(this.wnd, this.comms) ? !1 : (this.loadedModules.push(t), !0);
3040
+ addModule(t) {
3041
+ const e = this.loadModule(t);
3042
+ return !e || !e.mount(this.wnd, this.comms) ? !1 : (this.loadedModules.push(e), !0);
3019
3043
  }
3020
3044
  /**
3021
3045
  * Remove a module by name
3022
3046
  * @param moduleName Module name
3023
3047
  * @returns Success
3024
3048
  */
3025
- removeModule(e) {
3026
- const t = De.get(e);
3027
- if (t === void 0)
3028
- return this.comms.log(`Module "${e}" does not exist in the library`), !1;
3029
- const i = this.loadedModules.findIndex((s) => s instanceof t);
3049
+ removeModule(t) {
3050
+ const e = Ft.get(t);
3051
+ if (e === void 0)
3052
+ return this.comms.log(`Module "${t}" does not exist in the library`), !1;
3053
+ const i = this.loadedModules.findIndex((r) => r instanceof e);
3030
3054
  return i < 0 ? !1 : (this.loadedModules[i].unmount(this.wnd, this.comms), this.loadedModules.splice(i, 1), !0);
3031
3055
  }
3032
3056
  /**
3033
3057
  * Unmount and remove all modules
3034
3058
  */
3035
3059
  destroy() {
3036
- this.comms.destroy(), this.loadedModules.forEach((e) => e.unmount(this.wnd, this.comms)), this.loadedModules = [];
3060
+ this.comms.destroy(), this.loadedModules.forEach((t) => t.unmount(this.wnd, this.comms)), this.loadedModules = [];
3037
3061
  }
3038
3062
  }
3039
3063
  export {
3040
- k as COMMS_VERSION,
3041
- at as Comms,
3042
- Dt as Decorator,
3043
- Xt as FXLModules,
3044
- Lt as Layout,
3045
- Yt as Loader,
3046
- Y as Module,
3047
- De as ModuleLibrary,
3048
- et as Peripherals,
3049
- Gt as ReflowableModules,
3050
- It as Width,
3051
- ot as mid
3064
+ H as COMMS_VERSION,
3065
+ he as Comms,
3066
+ Fe as Decorator,
3067
+ Ye as FXLModules,
3068
+ ze as Layout,
3069
+ Ke as Loader,
3070
+ K as Module,
3071
+ Ft as ModuleLibrary,
3072
+ ie as Peripherals,
3073
+ Ze as ReflowableModules,
3074
+ Re as Width,
3075
+ le as mid
3052
3076
  };