@recogito/text-annotator 3.0.0-rc.20 → 3.0.0-rc.22

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.
@@ -1,37 +1,37 @@
1
- const D = {
1
+ const $ = {
2
2
  fill: "rgb(0, 128, 255)",
3
3
  fillOpacity: 0.18
4
- }, dt = {
4
+ }, ht = {
5
5
  fill: "rgb(0, 128, 255)",
6
6
  fillOpacity: 0.45
7
- }, zt = (t, e, n, o, i) => {
7
+ }, jt = (t, e, n, o, i) => {
8
8
  var s;
9
- const r = n ? typeof n == "function" ? n(t.annotation, t.state, i) : n : (s = t.state) != null && s.selected ? dt : D;
9
+ const r = n ? typeof n == "function" ? n(t.annotation, t.state, i) : n : (s = t.state) != null && s.selected ? ht : $;
10
10
  return o && o.paint(t, e) || r;
11
- }, ut = (t, e = 10) => {
11
+ }, ft = (t, e = 10) => {
12
12
  let n;
13
13
  return (...o) => {
14
14
  clearTimeout(n), n = setTimeout(() => t.apply(void 0, o), e);
15
15
  };
16
- }, Nt = "not-annotatable", H = `.${Nt}`, Ft = (t) => {
16
+ }, It = "not-annotatable", Y = `.${It}`, Gt = (t) => {
17
17
  var n;
18
18
  const e = t.commonAncestorContainer;
19
- return e instanceof HTMLElement ? !e.closest(H) : !((n = e.parentElement) != null && n.closest(H));
20
- }, Wt = function* (t) {
19
+ return e instanceof HTMLElement ? !e.closest(Y) : !((n = e.parentElement) != null && n.closest(Y));
20
+ }, Kt = function* (t) {
21
21
  const e = document.createNodeIterator(
22
22
  t.commonAncestorContainer,
23
23
  NodeFilter.SHOW_ELEMENT,
24
- (o) => o instanceof HTMLElement && o.classList.contains(Nt) && t.intersectsNode(o) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
24
+ (o) => o instanceof HTMLElement && o.classList.contains(It) && !o.parentElement.closest(Y) && t.intersectsNode(o) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP
25
25
  );
26
26
  let n;
27
27
  for (; n = e.nextNode(); )
28
28
  n instanceof HTMLElement && (yield n);
29
- }, qt = (t) => {
30
- if (!Ft(t))
29
+ }, Qt = (t) => {
30
+ if (!Gt(t))
31
31
  return [];
32
32
  const e = [];
33
33
  let n = null;
34
- for (const o of Wt(t)) {
34
+ for (const o of Kt(t)) {
35
35
  let i;
36
36
  n ? (i = document.createRange(), i.setStartAfter(n), i.setEndBefore(o)) : (i = t.cloneRange(), i.setEndBefore(o)), i.collapsed || e.push(i), n = o;
37
37
  }
@@ -40,13 +40,13 @@ const D = {
40
40
  o.setStartAfter(n), o.collapsed || e.push(o);
41
41
  }
42
42
  return e.length > 0 ? e : [t];
43
- }, ct = (t) => {
43
+ }, dt = (t) => {
44
44
  const e = t.cloneContents();
45
- return e.querySelectorAll(H).forEach((n) => n.remove()), e;
46
- }, wn = (t) => {
45
+ return e.querySelectorAll(Y).forEach((n) => n.remove()), e;
46
+ }, Nn = (t) => {
47
47
  const e = t.cloneContents();
48
- return e.querySelectorAll(H).forEach((n) => n.remove()), e;
49
- }, gt = (t, e) => {
48
+ return e.querySelectorAll(Y).forEach((n) => n.remove()), e;
49
+ }, mt = (t, e) => {
50
50
  const n = document.createNodeIterator(e);
51
51
  let o = 0, i = n.nextNode();
52
52
  for (; i !== null; ) {
@@ -54,13 +54,13 @@ const D = {
54
54
  return o;
55
55
  o += 1, i = n.nextNode();
56
56
  }
57
- }, pt = (t, e) => {
57
+ }, bt = (t, e) => {
58
58
  const n = document.createNodeIterator(e);
59
59
  let o = null;
60
60
  for (let i = 0; i < t + 1; i++)
61
61
  o = n.nextNode();
62
62
  return o;
63
- }, jt = (t) => {
63
+ }, Jt = (t) => {
64
64
  const {
65
65
  commonAncestorContainer: e,
66
66
  startContainer: n,
@@ -70,11 +70,11 @@ const D = {
70
70
  } = t, s = Array.from(e.childNodes).map((c) => {
71
71
  const m = c.cloneNode(!0);
72
72
  return c.nodeName === "CANVAS" ? c : m;
73
- }), a = gt(n, e), u = gt(i, e), h = () => {
73
+ }), a = mt(n, e), u = mt(i, e), h = () => {
74
74
  const c = e;
75
75
  c.replaceChildren(...s);
76
- const m = pt(a, c), g = pt(u, c);
77
- return t.setStart(m, o), t.setEnd(g, r), t;
76
+ const m = bt(a, c), p = bt(u, c);
77
+ return t.setStart(m, o), t.setEnd(p, r), t;
78
78
  }, v = (c) => {
79
79
  const m = document.createElement("SPAN");
80
80
  return c.surroundContents(m), m;
@@ -84,16 +84,16 @@ const D = {
84
84
  {
85
85
  const c = document.createRange();
86
86
  c.selectNodeContents(n), c.setStart(n, o);
87
- const m = v(c), g = document.createRange();
88
- g.selectNode(i), g.setEnd(i, r);
89
- const y = v(g), w = Gt(t).reverse().map((l) => {
87
+ const m = v(c), p = document.createRange();
88
+ p.selectNode(i), p.setEnd(i, r);
89
+ const w = v(p), y = Zt(t).reverse().map((l) => {
90
90
  var f;
91
91
  const d = document.createElement("SPAN");
92
92
  return (f = l.parentNode) == null || f.insertBefore(d, l), d.appendChild(l), d;
93
93
  });
94
- return { unwrap: h, nodes: [m, ...w, y] };
94
+ return { unwrap: h, nodes: [m, ...y, w] };
95
95
  }
96
- }, Gt = (t) => {
96
+ }, Zt = (t) => {
97
97
  const {
98
98
  commonAncestorContainer: e,
99
99
  startContainer: n,
@@ -104,25 +104,25 @@ const D = {
104
104
  for (; r != null; )
105
105
  r === o && (s = !1), s && a.push(r), r === n && (s = !0), r = i.nextNode();
106
106
  return a;
107
- }, yn = (t) => {
107
+ }, Ln = (t) => {
108
108
  const { startContainer: e, endContainer: n } = t;
109
109
  if (e === n)
110
110
  return Array.from(t.getClientRects());
111
111
  {
112
- const { unwrap: o, nodes: i } = jt(t), r = i.reduce((s, a) => [...s, ...a.getClientRects()], []);
112
+ const { unwrap: o, nodes: i } = Jt(t), r = i.reduce((s, a) => [...s, ...a.getClientRects()], []);
113
113
  return o(), r;
114
114
  }
115
- }, Kt = (t, e, n = 10, o) => {
115
+ }, te = (t, e, n = 10, o) => {
116
116
  const i = o ? t.startContainer.parentElement.closest(o) : e, r = document.createRange();
117
117
  r.setStart(i, 0), r.setEnd(t.startContainer, t.startOffset);
118
- const s = ct(r).textContent, a = document.createRange();
118
+ const s = dt(r).textContent, a = document.createRange();
119
119
  a.setStart(t.endContainer, t.endOffset), i === document.body ? a.setEnd(i, i.childNodes.length) : a.setEndAfter(i);
120
- const u = ct(a).textContent;
120
+ const u = dt(a).textContent;
121
121
  return {
122
122
  prefix: s.substring(s.length - n),
123
123
  suffix: u.substring(0, n)
124
124
  };
125
- }, k = (t) => t.every((e) => e.range instanceof Range && !e.range.collapsed), Qt = (t, e) => {
125
+ }, k = (t) => t.every((e) => e.range instanceof Range && !e.range.collapsed), ee = (t, e) => {
126
126
  const n = (r) => Math.round(r * 10) / 10, o = {
127
127
  top: n(t.top),
128
128
  bottom: n(t.bottom),
@@ -146,17 +146,17 @@ const D = {
146
146
  return "block-contains";
147
147
  } else if (o.top >= i.top && o.bottom <= i.bottom && o.left >= i.left && o.right <= i.right)
148
148
  return "block-is-contained";
149
- }, Jt = (t, e) => {
149
+ }, ne = (t, e) => {
150
150
  const n = Math.min(t.left, e.left), o = Math.max(t.right, e.right), i = Math.min(t.top, e.top), r = Math.max(t.bottom, e.bottom);
151
151
  return new DOMRect(n, i, o - n, r - i);
152
- }, Zt = (t) => t.reduce((e, n) => {
152
+ }, oe = (t) => t.reduce((e, n) => {
153
153
  if (n.width === 0 || n.height === 0)
154
154
  return e;
155
155
  let o = [...e], i = !1;
156
156
  for (const r of e) {
157
- const s = Qt(n, r);
157
+ const s = ee(n, r);
158
158
  if (s === "inline-adjacent") {
159
- o = o.map((a) => a === r ? Jt(n, r) : a), i = !0;
159
+ o = o.map((a) => a === r ? ne(n, r) : a), i = !0;
160
160
  break;
161
161
  } else if (s === "inline-contains") {
162
162
  o = o.map((a) => a === r ? n : a), i = !0;
@@ -170,19 +170,19 @@ const D = {
170
170
  }
171
171
  }
172
172
  return i ? o : [...o, n];
173
- }, []), te = (t, e, n) => {
173
+ }, []), ie = (t, e, n) => {
174
174
  const o = document.createRange(), i = n ? t.startContainer.parentElement.closest(n) : e;
175
175
  o.setStart(i, 0), o.setEnd(t.startContainer, t.startOffset);
176
- const r = ct(o).textContent, s = t.toString(), a = r.length || 0, u = a + s.length;
176
+ const r = dt(o).textContent, s = t.toString(), a = r.length || 0, u = a + s.length;
177
177
  return n ? { quote: s, start: a, end: u, range: t, offsetReference: i } : { quote: s, start: a, end: u, range: t };
178
- }, Bt = (t, e) => {
178
+ }, Mt = (t, e) => {
179
179
  var v, c;
180
180
  const { start: n, end: o } = t, i = t.offsetReference || e, r = document.createNodeIterator(
181
181
  e,
182
182
  NodeFilter.SHOW_TEXT,
183
183
  (m) => {
184
- var g;
185
- return (g = m.parentElement) != null && g.closest(H) ? NodeFilter.FILTER_SKIP : NodeFilter.FILTER_ACCEPT;
184
+ var p;
185
+ return (p = m.parentElement) != null && p.closest(Y) ? NodeFilter.FILTER_SKIP : NodeFilter.FILTER_ACCEPT;
186
186
  }
187
187
  );
188
188
  let s = 0;
@@ -213,10 +213,10 @@ const D = {
213
213
  ...t,
214
214
  range: a
215
215
  };
216
- }, Z = (t, e) => k(t.selector) ? t : {
216
+ }, et = (t, e) => k(t.selector) ? t : {
217
217
  ...t,
218
- selector: t.selector.map((n) => n.range instanceof Range && !n.range.collapsed ? n : Bt(n, e))
219
- }, tt = (t, e) => k(t.target.selector) ? t : { ...t, target: Z(t.target, e) }, ee = (t) => {
218
+ selector: t.selector.map((n) => n.range instanceof Range && !n.range.collapsed ? n : Mt(n, e))
219
+ }, nt = (t, e) => k(t.target.selector) ? t : { ...t, target: et(t.target, e) }, re = (t) => {
220
220
  var i;
221
221
  const { startContainer: e, endContainer: n } = t;
222
222
  if (e.nodeType === Node.TEXT_NODE && n.nodeType === Node.TEXT_NODE)
@@ -230,80 +230,80 @@ const D = {
230
230
  t.setEnd(s, ((i = s == null ? void 0 : s.textContent) == null ? void 0 : i.length) || 0);
231
231
  }
232
232
  return t;
233
- }, ne = (t) => {
233
+ }, se = (t) => {
234
234
  const { top: e, left: n } = t.getBoundingClientRect(), { innerWidth: o, innerHeight: i } = window, r = -n, s = -e, a = o - n, u = i - e;
235
235
  return { top: e, left: n, minX: r, minY: s, maxX: a, maxY: u };
236
- }, oe = (t) => {
236
+ }, ae = (t) => {
237
237
  let e = /* @__PURE__ */ new Set();
238
238
  return (o) => {
239
239
  const i = o.map((r) => r.id);
240
240
  (e.size !== i.length || i.some((r) => !e.has(r))) && t.set(i), e = new Set(i);
241
241
  };
242
- }, ht = (t, e, n, o) => {
242
+ }, pt = (t, e, n, o) => {
243
243
  const { store: i, selection: r, hover: s } = e;
244
244
  let a, u, h;
245
- const v = oe(n), c = (p) => {
246
- const { x: S, y: E } = t.getBoundingClientRect(), C = i.getAt(p.clientX - S, p.clientY - E);
245
+ const v = ae(n), c = (g) => {
246
+ const { x: S, y: E } = t.getBoundingClientRect(), C = i.getAt(g.clientX - S, g.clientY - E);
247
247
  C && (!u || u(C)) ? s.current !== C.id && (t.classList.add("hovered"), s.set(C.id)) : s.current && (t.classList.remove("hovered"), s.set(null));
248
248
  };
249
249
  t.addEventListener("pointermove", c);
250
- const m = (p = !0) => {
250
+ const m = (g = !1) => {
251
251
  h && h.clear();
252
- const S = ne(t), { minX: E, minY: C, maxX: L, maxY: B } = S, _ = u ? i.getIntersecting(E, C, L, B).filter(({ annotation: U }) => u(U)) : i.getIntersecting(E, C, L, B), Yt = r.selected.map(({ id: U }) => U), Dt = _.map(({ annotation: U, rects: Ht }) => {
253
- const $t = Yt.includes(U.id), Pt = U.id === s.current;
254
- return { annotation: U, rects: Ht, state: { selected: $t, hover: Pt, custom: {} } };
252
+ const S = se(t), { minX: E, minY: C, maxX: N, maxY: B } = S, _ = u ? i.getIntersecting(E, C, N, B).filter(({ annotation: X }) => u(X)) : i.getIntersecting(E, C, N, B), Pt = r.selected.map(({ id: X }) => X), zt = _.map(({ annotation: X, rects: Ft }) => {
253
+ const Wt = Pt.includes(X.id), qt = X.id === s.current;
254
+ return { annotation: X, rects: Ft, state: { selected: Wt, hover: qt, custom: {} } };
255
255
  });
256
- o.redraw(Dt, S, a, h, p), setTimeout(() => v(_.map(({ annotation: U }) => U)), 1);
257
- }, g = (p) => {
258
- h = p, m();
259
- }, y = (p) => {
260
- a = p, m();
261
- }, x = (p) => {
262
- u = p, m();
263
- }, w = () => m();
264
- i.observe(w);
256
+ o.redraw(zt, S, a, h, g), setTimeout(() => v(_.map(({ annotation: X }) => X)), 1);
257
+ }, p = (g) => {
258
+ h = g, m();
259
+ }, w = (g) => {
260
+ a = g, m();
261
+ }, x = (g) => {
262
+ u = g, m(!1);
263
+ }, y = () => m();
264
+ i.observe(y);
265
265
  const l = r.subscribe(() => m()), d = () => m(!0);
266
266
  document.addEventListener("scroll", d, { capture: !0, passive: !0 });
267
- const f = ut(() => {
267
+ const f = ft(() => {
268
268
  i.recalculatePositions(), h && h.reset(), m();
269
269
  });
270
270
  window.addEventListener("resize", f);
271
271
  const b = new ResizeObserver(f);
272
272
  b.observe(t);
273
- const A = { attributes: !0, childList: !0, subtree: !0 }, R = new MutationObserver((p) => {
274
- p.every((E) => E.target === t || t.contains(E.target)) || m(!0);
273
+ const A = { attributes: !0, childList: !0, subtree: !0 }, R = new MutationObserver((g) => {
274
+ g.every((E) => E.target === t || t.contains(E.target)) || m(!0);
275
275
  });
276
276
  return R.observe(document.body, A), {
277
277
  destroy: () => {
278
- t.removeEventListener("pointermove", c), o.destroy(), i.unobserve(w), l(), document.removeEventListener("scroll", d), window.removeEventListener("resize", f), b.disconnect(), R.disconnect();
278
+ t.removeEventListener("pointermove", c), o.destroy(), i.unobserve(y), l(), document.removeEventListener("scroll", d), window.removeEventListener("resize", f), b.disconnect(), R.disconnect();
279
279
  },
280
280
  redraw: m,
281
- setStyle: y,
281
+ setStyle: w,
282
282
  setFilter: x,
283
- setPainter: g,
283
+ setPainter: p,
284
284
  setVisible: o.setVisible
285
285
  };
286
- }, ie = () => {
286
+ }, ce = () => {
287
287
  const t = document.createElement("canvas");
288
288
  return t.width = window.innerWidth, t.height = window.innerHeight, t.className = "r6o-highlight-layer bg", t;
289
- }, re = (t, e) => {
289
+ }, le = (t, e) => {
290
290
  if (t.width = e ? 2 * window.innerWidth : window.innerWidth, t.height = e ? 2 * window.innerHeight : window.innerHeight, e) {
291
291
  const n = t.getContext("2d");
292
292
  n.scale(2, 2), n.translate(0.5, 0.5);
293
293
  }
294
- }, se = (t) => {
294
+ }, de = (t) => {
295
295
  t.classList.add("r6o-annotatable");
296
- const e = ie(), n = e.getContext("2d");
296
+ const e = ce(), n = e.getContext("2d");
297
297
  t.insertBefore(e, t.firstChild);
298
298
  const o = (a, u, h, v) => requestAnimationFrame(() => {
299
299
  const { width: c, height: m } = e;
300
300
  n.clearRect(-0.5, -0.5, c + 1, m + 1), v && v.clear();
301
- const { top: g, left: y } = u;
301
+ const { top: p, left: w } = u;
302
302
  a.forEach((x) => {
303
303
  var f;
304
- const w = h ? typeof h == "function" ? h(x.annotation, x.state) : h : (f = x.state) != null && f.selected ? dt : D, l = v && v.paint(x, u) || w, d = x.rects.map(({ x: b, y: A, width: R, height: T }) => ({
305
- x: b + y,
306
- y: A + g,
304
+ const y = h ? typeof h == "function" ? h(x.annotation, x.state) : h : (f = x.state) != null && f.selected ? ht : $, l = v && v.paint(x, u) || y, d = x.rects.map(({ x: b, y: A, width: R, height: T }) => ({
305
+ x: b + w,
306
+ y: A + p,
307
307
  width: R,
308
308
  height: T
309
309
  }));
@@ -311,8 +311,8 @@ const D = {
311
311
  n.beginPath(), n.moveTo(b, A + T + 4), n.lineTo(b + R, A + T + 4), n.stroke();
312
312
  }));
313
313
  });
314
- }), i = ut(() => {
315
- re(e);
314
+ }), i = ft(() => {
315
+ le(e);
316
316
  });
317
317
  return window.addEventListener("resize", i), {
318
318
  destroy: () => {
@@ -323,148 +323,148 @@ const D = {
323
323
  },
324
324
  redraw: o
325
325
  };
326
- }, ae = (t, e, n) => ht(t, e, n, se(t));
327
- var ce = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, X = function(t) {
326
+ }, ue = (t, e, n) => pt(t, e, n, de(t));
327
+ var he = { grad: 0.9, turn: 360, rad: 360 / (2 * Math.PI) }, D = function(t) {
328
328
  return typeof t == "string" ? t.length > 0 : typeof t == "number";
329
329
  }, O = function(t, e, n) {
330
330
  return e === void 0 && (e = 0), n === void 0 && (n = Math.pow(10, e)), Math.round(n * t) / n + 0;
331
- }, I = function(t, e, n) {
331
+ }, U = function(t, e, n) {
332
332
  return e === void 0 && (e = 0), n === void 0 && (n = 1), t > n ? n : t > e ? t : e;
333
- }, Ot = function(t) {
333
+ }, Ut = function(t) {
334
334
  return (t = isFinite(t) ? t % 360 : 0) > 0 ? t : t + 360;
335
- }, mt = function(t) {
336
- return { r: I(t.r, 0, 255), g: I(t.g, 0, 255), b: I(t.b, 0, 255), a: I(t.a) };
337
- }, et = function(t) {
335
+ }, vt = function(t) {
336
+ return { r: U(t.r, 0, 255), g: U(t.g, 0, 255), b: U(t.b, 0, 255), a: U(t.a) };
337
+ }, ot = function(t) {
338
338
  return { r: O(t.r), g: O(t.g), b: O(t.b), a: O(t.a, 3) };
339
- }, le = /^#([0-9a-f]{3,8})$/i, G = function(t) {
339
+ }, fe = /^#([0-9a-f]{3,8})$/i, K = function(t) {
340
340
  var e = t.toString(16);
341
341
  return e.length < 2 ? "0" + e : e;
342
- }, Mt = function(t) {
342
+ }, Vt = function(t) {
343
343
  var e = t.r, n = t.g, o = t.b, i = t.a, r = Math.max(e, n, o), s = r - Math.min(e, n, o), a = s ? r === e ? (n - o) / s : r === n ? 2 + (o - e) / s : 4 + (e - n) / s : 0;
344
344
  return { h: 60 * (a < 0 ? a + 6 : a), s: r ? s / r * 100 : 0, v: r / 255 * 100, a: i };
345
- }, It = function(t) {
345
+ }, _t = function(t) {
346
346
  var e = t.h, n = t.s, o = t.v, i = t.a;
347
347
  e = e / 360 * 6, n /= 100, o /= 100;
348
348
  var r = Math.floor(e), s = o * (1 - n), a = o * (1 - (e - r) * n), u = o * (1 - (1 - e + r) * n), h = r % 6;
349
349
  return { r: 255 * [o, a, s, s, u, o][h], g: 255 * [u, o, o, a, s, s][h], b: 255 * [s, s, u, o, o, a][h], a: i };
350
- }, bt = function(t) {
351
- return { h: Ot(t.h), s: I(t.s, 0, 100), l: I(t.l, 0, 100), a: I(t.a) };
352
- }, vt = function(t) {
353
- return { h: O(t.h), s: O(t.s), l: O(t.l), a: O(t.a, 3) };
350
+ }, yt = function(t) {
351
+ return { h: Ut(t.h), s: U(t.s, 0, 100), l: U(t.l, 0, 100), a: U(t.a) };
354
352
  }, wt = function(t) {
355
- return It((n = (e = t).s, { h: e.h, s: (n *= ((o = e.l) < 50 ? o : 100 - o) / 100) > 0 ? 2 * n / (o + n) * 100 : 0, v: o + n, a: e.a }));
353
+ return { h: O(t.h), s: O(t.s), l: O(t.l), a: O(t.a, 3) };
354
+ }, xt = function(t) {
355
+ return _t((n = (e = t).s, { h: e.h, s: (n *= ((o = e.l) < 50 ? o : 100 - o) / 100) > 0 ? 2 * n / (o + n) * 100 : 0, v: o + n, a: e.a }));
356
356
  var e, n, o;
357
- }, j = function(t) {
358
- return { h: (e = Mt(t)).h, s: (i = (200 - (n = e.s)) * (o = e.v) / 100) > 0 && i < 200 ? n * o / 100 / (i <= 100 ? i : 200 - i) * 100 : 0, l: i / 2, a: e.a };
357
+ }, G = function(t) {
358
+ return { h: (e = Vt(t)).h, s: (i = (200 - (n = e.s)) * (o = e.v) / 100) > 0 && i < 200 ? n * o / 100 / (i <= 100 ? i : 200 - i) * 100 : 0, l: i / 2, a: e.a };
359
359
  var e, n, o, i;
360
- }, de = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, ue = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, he = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, fe = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, yt = { string: [[function(t) {
361
- var e = le.exec(t);
360
+ }, pe = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, ge = /^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, me = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, be = /^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i, At = { string: [[function(t) {
361
+ var e = fe.exec(t);
362
362
  return e ? (t = e[1]).length <= 4 ? { r: parseInt(t[0] + t[0], 16), g: parseInt(t[1] + t[1], 16), b: parseInt(t[2] + t[2], 16), a: t.length === 4 ? O(parseInt(t[3] + t[3], 16) / 255, 2) : 1 } : t.length === 6 || t.length === 8 ? { r: parseInt(t.substr(0, 2), 16), g: parseInt(t.substr(2, 2), 16), b: parseInt(t.substr(4, 2), 16), a: t.length === 8 ? O(parseInt(t.substr(6, 2), 16) / 255, 2) : 1 } : null : null;
363
363
  }, "hex"], [function(t) {
364
- var e = he.exec(t) || fe.exec(t);
365
- return e ? e[2] !== e[4] || e[4] !== e[6] ? null : mt({ r: Number(e[1]) / (e[2] ? 100 / 255 : 1), g: Number(e[3]) / (e[4] ? 100 / 255 : 1), b: Number(e[5]) / (e[6] ? 100 / 255 : 1), a: e[7] === void 0 ? 1 : Number(e[7]) / (e[8] ? 100 : 1) }) : null;
364
+ var e = me.exec(t) || be.exec(t);
365
+ return e ? e[2] !== e[4] || e[4] !== e[6] ? null : vt({ r: Number(e[1]) / (e[2] ? 100 / 255 : 1), g: Number(e[3]) / (e[4] ? 100 / 255 : 1), b: Number(e[5]) / (e[6] ? 100 / 255 : 1), a: e[7] === void 0 ? 1 : Number(e[7]) / (e[8] ? 100 : 1) }) : null;
366
366
  }, "rgb"], [function(t) {
367
- var e = de.exec(t) || ue.exec(t);
367
+ var e = pe.exec(t) || ge.exec(t);
368
368
  if (!e)
369
369
  return null;
370
- var n, o, i = bt({ h: (n = e[1], o = e[2], o === void 0 && (o = "deg"), Number(n) * (ce[o] || 1)), s: Number(e[3]), l: Number(e[4]), a: e[5] === void 0 ? 1 : Number(e[5]) / (e[6] ? 100 : 1) });
371
- return wt(i);
370
+ var n, o, i = yt({ h: (n = e[1], o = e[2], o === void 0 && (o = "deg"), Number(n) * (he[o] || 1)), s: Number(e[3]), l: Number(e[4]), a: e[5] === void 0 ? 1 : Number(e[5]) / (e[6] ? 100 : 1) });
371
+ return xt(i);
372
372
  }, "hsl"]], object: [[function(t) {
373
373
  var e = t.r, n = t.g, o = t.b, i = t.a, r = i === void 0 ? 1 : i;
374
- return X(e) && X(n) && X(o) ? mt({ r: Number(e), g: Number(n), b: Number(o), a: Number(r) }) : null;
374
+ return D(e) && D(n) && D(o) ? vt({ r: Number(e), g: Number(n), b: Number(o), a: Number(r) }) : null;
375
375
  }, "rgb"], [function(t) {
376
376
  var e = t.h, n = t.s, o = t.l, i = t.a, r = i === void 0 ? 1 : i;
377
- if (!X(e) || !X(n) || !X(o))
377
+ if (!D(e) || !D(n) || !D(o))
378
378
  return null;
379
- var s = bt({ h: Number(e), s: Number(n), l: Number(o), a: Number(r) });
380
- return wt(s);
379
+ var s = yt({ h: Number(e), s: Number(n), l: Number(o), a: Number(r) });
380
+ return xt(s);
381
381
  }, "hsl"], [function(t) {
382
382
  var e = t.h, n = t.s, o = t.v, i = t.a, r = i === void 0 ? 1 : i;
383
- if (!X(e) || !X(n) || !X(o))
383
+ if (!D(e) || !D(n) || !D(o))
384
384
  return null;
385
385
  var s = function(a) {
386
- return { h: Ot(a.h), s: I(a.s, 0, 100), v: I(a.v, 0, 100), a: I(a.a) };
386
+ return { h: Ut(a.h), s: U(a.s, 0, 100), v: U(a.v, 0, 100), a: U(a.a) };
387
387
  }({ h: Number(e), s: Number(n), v: Number(o), a: Number(r) });
388
- return It(s);
389
- }, "hsv"]] }, xt = function(t, e) {
388
+ return _t(s);
389
+ }, "hsv"]] }, Et = function(t, e) {
390
390
  for (var n = 0; n < e.length; n++) {
391
391
  var o = e[n][0](t);
392
392
  if (o)
393
393
  return [o, e[n][1]];
394
394
  }
395
395
  return [null, void 0];
396
- }, ge = function(t) {
397
- return typeof t == "string" ? xt(t.trim(), yt.string) : typeof t == "object" && t !== null ? xt(t, yt.object) : [null, void 0];
398
- }, nt = function(t, e) {
399
- var n = j(t);
400
- return { h: n.h, s: I(n.s + 100 * e, 0, 100), l: n.l, a: n.a };
401
- }, ot = function(t) {
396
+ }, ve = function(t) {
397
+ return typeof t == "string" ? Et(t.trim(), At.string) : typeof t == "object" && t !== null ? Et(t, At.object) : [null, void 0];
398
+ }, it = function(t, e) {
399
+ var n = G(t);
400
+ return { h: n.h, s: U(n.s + 100 * e, 0, 100), l: n.l, a: n.a };
401
+ }, rt = function(t) {
402
402
  return (299 * t.r + 587 * t.g + 114 * t.b) / 1e3 / 255;
403
- }, At = function(t, e) {
404
- var n = j(t);
405
- return { h: n.h, s: n.s, l: I(n.l + 100 * e, 0, 100), a: n.a };
406
- }, Et = function() {
403
+ }, St = function(t, e) {
404
+ var n = G(t);
405
+ return { h: n.h, s: n.s, l: U(n.l + 100 * e, 0, 100), a: n.a };
406
+ }, Ct = function() {
407
407
  function t(e) {
408
- this.parsed = ge(e)[0], this.rgba = this.parsed || { r: 0, g: 0, b: 0, a: 1 };
408
+ this.parsed = ve(e)[0], this.rgba = this.parsed || { r: 0, g: 0, b: 0, a: 1 };
409
409
  }
410
410
  return t.prototype.isValid = function() {
411
411
  return this.parsed !== null;
412
412
  }, t.prototype.brightness = function() {
413
- return O(ot(this.rgba), 2);
413
+ return O(rt(this.rgba), 2);
414
414
  }, t.prototype.isDark = function() {
415
- return ot(this.rgba) < 0.5;
415
+ return rt(this.rgba) < 0.5;
416
416
  }, t.prototype.isLight = function() {
417
- return ot(this.rgba) >= 0.5;
417
+ return rt(this.rgba) >= 0.5;
418
418
  }, t.prototype.toHex = function() {
419
- return e = et(this.rgba), n = e.r, o = e.g, i = e.b, s = (r = e.a) < 1 ? G(O(255 * r)) : "", "#" + G(n) + G(o) + G(i) + s;
419
+ return e = ot(this.rgba), n = e.r, o = e.g, i = e.b, s = (r = e.a) < 1 ? K(O(255 * r)) : "", "#" + K(n) + K(o) + K(i) + s;
420
420
  var e, n, o, i, r, s;
421
421
  }, t.prototype.toRgb = function() {
422
- return et(this.rgba);
422
+ return ot(this.rgba);
423
423
  }, t.prototype.toRgbString = function() {
424
- return e = et(this.rgba), n = e.r, o = e.g, i = e.b, (r = e.a) < 1 ? "rgba(" + n + ", " + o + ", " + i + ", " + r + ")" : "rgb(" + n + ", " + o + ", " + i + ")";
424
+ return e = ot(this.rgba), n = e.r, o = e.g, i = e.b, (r = e.a) < 1 ? "rgba(" + n + ", " + o + ", " + i + ", " + r + ")" : "rgb(" + n + ", " + o + ", " + i + ")";
425
425
  var e, n, o, i, r;
426
426
  }, t.prototype.toHsl = function() {
427
- return vt(j(this.rgba));
427
+ return wt(G(this.rgba));
428
428
  }, t.prototype.toHslString = function() {
429
- return e = vt(j(this.rgba)), n = e.h, o = e.s, i = e.l, (r = e.a) < 1 ? "hsla(" + n + ", " + o + "%, " + i + "%, " + r + ")" : "hsl(" + n + ", " + o + "%, " + i + "%)";
429
+ return e = wt(G(this.rgba)), n = e.h, o = e.s, i = e.l, (r = e.a) < 1 ? "hsla(" + n + ", " + o + "%, " + i + "%, " + r + ")" : "hsl(" + n + ", " + o + "%, " + i + "%)";
430
430
  var e, n, o, i, r;
431
431
  }, t.prototype.toHsv = function() {
432
- return e = Mt(this.rgba), { h: O(e.h), s: O(e.s), v: O(e.v), a: O(e.a, 3) };
432
+ return e = Vt(this.rgba), { h: O(e.h), s: O(e.s), v: O(e.v), a: O(e.a, 3) };
433
433
  var e;
434
434
  }, t.prototype.invert = function() {
435
435
  return V({ r: 255 - (e = this.rgba).r, g: 255 - e.g, b: 255 - e.b, a: e.a });
436
436
  var e;
437
437
  }, t.prototype.saturate = function(e) {
438
- return e === void 0 && (e = 0.1), V(nt(this.rgba, e));
438
+ return e === void 0 && (e = 0.1), V(it(this.rgba, e));
439
439
  }, t.prototype.desaturate = function(e) {
440
- return e === void 0 && (e = 0.1), V(nt(this.rgba, -e));
440
+ return e === void 0 && (e = 0.1), V(it(this.rgba, -e));
441
441
  }, t.prototype.grayscale = function() {
442
- return V(nt(this.rgba, -1));
442
+ return V(it(this.rgba, -1));
443
443
  }, t.prototype.lighten = function(e) {
444
- return e === void 0 && (e = 0.1), V(At(this.rgba, e));
444
+ return e === void 0 && (e = 0.1), V(St(this.rgba, e));
445
445
  }, t.prototype.darken = function(e) {
446
- return e === void 0 && (e = 0.1), V(At(this.rgba, -e));
446
+ return e === void 0 && (e = 0.1), V(St(this.rgba, -e));
447
447
  }, t.prototype.rotate = function(e) {
448
448
  return e === void 0 && (e = 15), this.hue(this.hue() + e);
449
449
  }, t.prototype.alpha = function(e) {
450
450
  return typeof e == "number" ? V({ r: (n = this.rgba).r, g: n.g, b: n.b, a: e }) : O(this.rgba.a, 3);
451
451
  var n;
452
452
  }, t.prototype.hue = function(e) {
453
- var n = j(this.rgba);
453
+ var n = G(this.rgba);
454
454
  return typeof e == "number" ? V({ h: e, s: n.s, l: n.l, a: n.a }) : O(n.h);
455
455
  }, t.prototype.isEqual = function(e) {
456
456
  return this.toHex() === V(e).toHex();
457
457
  }, t;
458
458
  }(), V = function(t) {
459
- return t instanceof Et ? t : new Et(t);
459
+ return t instanceof Ct ? t : new Ct(t);
460
460
  };
461
- const pe = (t) => [
462
- `background-color:${V((t == null ? void 0 : t.fill) || D.fill).alpha((t == null ? void 0 : t.fillOpacity) === void 0 ? D.fillOpacity : t.fillOpacity).toHex()}`,
461
+ const ye = (t) => [
462
+ `background-color:${V((t == null ? void 0 : t.fill) || $.fill).alpha((t == null ? void 0 : t.fillOpacity) === void 0 ? $.fillOpacity : t.fillOpacity).toHex()}`,
463
463
  t != null && t.underlineThickness ? "text-decoration:underline" : void 0,
464
464
  t != null && t.underlineColor ? `text-decoration-color:${t.underlineColor}` : void 0,
465
465
  t != null && t.underlineOffset ? `text-underline-offset:${t.underlineOffset}px` : void 0,
466
466
  t != null && t.underlineThickness ? `text-decoration-thickness:${t.underlineThickness}px` : void 0
467
- ].filter(Boolean).join(";"), me = () => {
467
+ ].filter(Boolean).join(";"), we = () => {
468
468
  const t = document.createElement("style");
469
469
  document.getElementsByTagName("head")[0].appendChild(t);
470
470
  let e = /* @__PURE__ */ new Set();
@@ -480,20 +480,20 @@ const pe = (t) => [
480
480
  const h = new Set(r.map((c) => c.annotation.id));
481
481
  Array.from(e).filter((c) => !h.has(c));
482
482
  const v = r.map((c) => {
483
- var y;
484
- const m = a ? typeof a == "function" ? a(c.annotation, c.state) : a : (y = c.state) != null && y.selected ? dt : D, g = u && u.paint(c, s) || m;
485
- return `::highlight(_${c.annotation.id}) { ${pe(g)} }`;
483
+ var w;
484
+ const m = a ? typeof a == "function" ? a(c.annotation, c.state) : a : (w = c.state) != null && w.selected ? ht : $, p = u && u.paint(c, s) || m;
485
+ return `::highlight(_${c.annotation.id}) { ${ye(p)} }`;
486
486
  });
487
487
  t.innerHTML = v.join(`
488
488
  `), CSS.highlights.clear(), r.forEach(({ annotation: c }) => {
489
- const m = c.target.selector.map((y) => y.range), g = new Highlight(...m);
490
- CSS.highlights.set(`_${c.id}`, g);
489
+ const m = c.target.selector.map((w) => w.range), p = new Highlight(...m);
490
+ CSS.highlights.set(`_${c.id}`, p);
491
491
  }), e = h;
492
492
  }
493
493
  };
494
- }, be = (t, e, n) => ht(t, e, n, me());
495
- var St = Object.prototype.hasOwnProperty;
496
- function lt(t, e) {
494
+ }, xe = (t, e, n) => pt(t, e, n, we());
495
+ var Tt = Object.prototype.hasOwnProperty;
496
+ function ut(t, e) {
497
497
  var n, o;
498
498
  if (t === e)
499
499
  return !0;
@@ -504,24 +504,24 @@ function lt(t, e) {
504
504
  return t.toString() === e.toString();
505
505
  if (n === Array) {
506
506
  if ((o = t.length) === e.length)
507
- for (; o-- && lt(t[o], e[o]); )
507
+ for (; o-- && ut(t[o], e[o]); )
508
508
  ;
509
509
  return o === -1;
510
510
  }
511
511
  if (!n || typeof t == "object") {
512
512
  o = 0;
513
513
  for (n in t)
514
- if (St.call(t, n) && ++o && !St.call(e, n) || !(n in e) || !lt(t[n], e[n]))
514
+ if (Tt.call(t, n) && ++o && !Tt.call(e, n) || !(n in e) || !ut(t[n], e[n]))
515
515
  return !1;
516
516
  return Object.keys(e).length === o;
517
517
  }
518
518
  }
519
519
  return t !== t && e !== e;
520
520
  }
521
- const ve = (t, e) => {
521
+ const Ae = (t, e) => {
522
522
  const n = (o, i) => o.x <= i.x + i.width && o.x + o.width >= i.x && o.y <= i.y + i.height && o.y + o.height >= i.y;
523
523
  return e.filter((o) => t !== o && n(t, o) && o.width > t.width).length;
524
- }, we = (t) => {
524
+ }, Ee = (t) => {
525
525
  t.classList.add("r6o-annotatable");
526
526
  const e = document.createElement("div");
527
527
  e.className = "r6o-span-highlight-layer", t.insertBefore(e, t.firstChild);
@@ -531,56 +531,56 @@ const ve = (t, e) => {
531
531
  e.remove();
532
532
  },
533
533
  redraw: (s, a, u, h, v) => {
534
- if (lt(n, s) && v)
534
+ if (ut(n, s) && v)
535
535
  return;
536
536
  e.innerHTML = "";
537
- const m = s.reduce((g, { rects: y }) => [...g, ...y], []);
538
- s.forEach((g) => {
539
- const y = g.rects.map((x) => {
540
- const w = document.createElement("span");
541
- w.className = "r6o-annotation", w.dataset.annotation = g.annotation.id, w.style.left = `${x.x}px`, w.style.top = `${x.y}px`, w.style.width = `${x.width}px`, w.style.height = `${x.height}px`;
542
- const l = ve(x, m), d = zt(g, a, u, h, l), f = V((d == null ? void 0 : d.fill) || D.fill).alpha((d == null ? void 0 : d.fillOpacity) === void 0 ? D.fillOpacity : d.fillOpacity).toHex();
543
- return w.style.backgroundColor = f, d.underlineStyle && (w.style.borderStyle = d.underlineStyle), d.underlineColor && (w.style.borderColor = d.underlineColor), d.underlineThickness && (w.style.borderBottomWidth = `${d.underlineThickness}px`), d.underlineOffset && (w.style.paddingBottom = `${d.underlineOffset}px`), e.appendChild(w), w;
537
+ const m = s.reduce((p, { rects: w }) => [...p, ...w], []);
538
+ s.forEach((p) => {
539
+ const w = p.rects.map((x) => {
540
+ const y = document.createElement("span");
541
+ y.className = "r6o-annotation", y.dataset.annotation = p.annotation.id, y.style.left = `${x.x}px`, y.style.top = `${x.y}px`, y.style.width = `${x.width}px`, y.style.height = `${x.height}px`;
542
+ const l = Ae(x, m), d = jt(p, a, u, h, l), f = V((d == null ? void 0 : d.fill) || $.fill).alpha((d == null ? void 0 : d.fillOpacity) === void 0 ? $.fillOpacity : d.fillOpacity).toHex();
543
+ return y.style.backgroundColor = f, d.underlineStyle && (y.style.borderStyle = d.underlineStyle), d.underlineColor && (y.style.borderColor = d.underlineColor), d.underlineThickness && (y.style.borderBottomWidth = `${d.underlineThickness}px`), d.underlineOffset && (y.style.paddingBottom = `${d.underlineOffset}px`), e.appendChild(y), y;
544
544
  });
545
- return { id: g.annotation.id, spans: y };
545
+ return { id: p.annotation.id, spans: w };
546
546
  }), n = s;
547
547
  },
548
548
  setVisible: (s) => {
549
549
  s ? e.classList.remove("hidden") : e.classList.add("hidden");
550
550
  }
551
551
  };
552
- }, ye = (t, e, n) => ht(t, e, n, we(t));
553
- let K;
554
- const xe = new Uint8Array(16);
555
- function Ae() {
556
- if (!K && (K = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !K))
552
+ }, Se = (t, e, n) => pt(t, e, n, Ee(t));
553
+ let Q;
554
+ const Ce = new Uint8Array(16);
555
+ function Te() {
556
+ if (!Q && (Q = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Q))
557
557
  throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
558
- return K(xe);
558
+ return Q(Ce);
559
559
  }
560
- const M = [];
560
+ const I = [];
561
561
  for (let t = 0; t < 256; ++t)
562
- M.push((t + 256).toString(16).slice(1));
563
- function Ee(t, e = 0) {
564
- return M[t[e + 0]] + M[t[e + 1]] + M[t[e + 2]] + M[t[e + 3]] + "-" + M[t[e + 4]] + M[t[e + 5]] + "-" + M[t[e + 6]] + M[t[e + 7]] + "-" + M[t[e + 8]] + M[t[e + 9]] + "-" + M[t[e + 10]] + M[t[e + 11]] + M[t[e + 12]] + M[t[e + 13]] + M[t[e + 14]] + M[t[e + 15]];
562
+ I.push((t + 256).toString(16).slice(1));
563
+ function Re(t, e = 0) {
564
+ return I[t[e + 0]] + I[t[e + 1]] + I[t[e + 2]] + I[t[e + 3]] + "-" + I[t[e + 4]] + I[t[e + 5]] + "-" + I[t[e + 6]] + I[t[e + 7]] + "-" + I[t[e + 8]] + I[t[e + 9]] + "-" + I[t[e + 10]] + I[t[e + 11]] + I[t[e + 12]] + I[t[e + 13]] + I[t[e + 14]] + I[t[e + 15]];
565
565
  }
566
- const Se = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Ct = {
567
- randomUUID: Se
566
+ const Ne = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Rt = {
567
+ randomUUID: Ne
568
568
  };
569
- function Vt(t, e, n) {
570
- if (Ct.randomUUID && !e && !t)
571
- return Ct.randomUUID();
569
+ function Xt(t, e, n) {
570
+ if (Rt.randomUUID && !e && !t)
571
+ return Rt.randomUUID();
572
572
  t = t || {};
573
- const o = t.random || (t.rng || Ae)();
573
+ const o = t.random || (t.rng || Te)();
574
574
  if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, e) {
575
575
  n = n || 0;
576
576
  for (let i = 0; i < 16; ++i)
577
577
  e[n + i] = o[i];
578
578
  return e;
579
579
  }
580
- return Ee(o);
580
+ return Re(o);
581
581
  }
582
- var Tt = Object.prototype.hasOwnProperty;
583
- function Y(t, e) {
582
+ var Nt = Object.prototype.hasOwnProperty;
583
+ function H(t, e) {
584
584
  var n, o;
585
585
  if (t === e)
586
586
  return !0;
@@ -591,54 +591,54 @@ function Y(t, e) {
591
591
  return t.toString() === e.toString();
592
592
  if (n === Array) {
593
593
  if ((o = t.length) === e.length)
594
- for (; o-- && Y(t[o], e[o]); )
594
+ for (; o-- && H(t[o], e[o]); )
595
595
  ;
596
596
  return o === -1;
597
597
  }
598
598
  if (!n || typeof t == "object") {
599
599
  o = 0;
600
600
  for (n in t)
601
- if (Tt.call(t, n) && ++o && !Tt.call(e, n) || !(n in e) || !Y(t[n], e[n]))
601
+ if (Nt.call(t, n) && ++o && !Nt.call(e, n) || !(n in e) || !H(t[n], e[n]))
602
602
  return !1;
603
603
  return Object.keys(e).length === o;
604
604
  }
605
605
  }
606
606
  return t !== t && e !== e;
607
607
  }
608
- function it() {
608
+ function st() {
609
609
  }
610
- function Ce(t, e) {
610
+ function Le(t, e) {
611
611
  return t != t ? e == e : t !== e || t && typeof t == "object" || typeof t == "function";
612
612
  }
613
- const $ = [];
614
- function ft(t, e = it) {
613
+ const P = [];
614
+ function gt(t, e = st) {
615
615
  let n;
616
616
  const o = /* @__PURE__ */ new Set();
617
617
  function i(a) {
618
- if (Ce(t, a) && (t = a, n)) {
619
- const u = !$.length;
618
+ if (Le(t, a) && (t = a, n)) {
619
+ const u = !P.length;
620
620
  for (const h of o)
621
- h[1](), $.push(h, t);
621
+ h[1](), P.push(h, t);
622
622
  if (u) {
623
- for (let h = 0; h < $.length; h += 2)
624
- $[h][0]($[h + 1]);
625
- $.length = 0;
623
+ for (let h = 0; h < P.length; h += 2)
624
+ P[h][0](P[h + 1]);
625
+ P.length = 0;
626
626
  }
627
627
  }
628
628
  }
629
629
  function r(a) {
630
630
  i(a(t));
631
631
  }
632
- function s(a, u = it) {
632
+ function s(a, u = st) {
633
633
  const h = [a, u];
634
- return o.add(h), o.size === 1 && (n = e(i, r) || it), a(t), () => {
634
+ return o.add(h), o.size === 1 && (n = e(i, r) || st), a(t), () => {
635
635
  o.delete(h), o.size === 0 && n && (n(), n = null);
636
636
  };
637
637
  }
638
638
  return { set: i, update: r, subscribe: s };
639
639
  }
640
- const Te = (t) => {
641
- const { subscribe: e, set: n } = ft();
640
+ const Be = (t) => {
641
+ const { subscribe: e, set: n } = gt();
642
642
  let o;
643
643
  return e((i) => o = i), t.observe(({ changes: i }) => {
644
644
  if (o) {
@@ -653,33 +653,35 @@ const Te = (t) => {
653
653
  subscribe: e,
654
654
  set: n
655
655
  };
656
- }, rt = { selected: [] }, Re = (t, e = "EDIT") => {
657
- const { subscribe: n, set: o } = ft(rt);
658
- let i = rt;
656
+ };
657
+ var Dt = /* @__PURE__ */ ((t) => (t.EDIT = "EDIT", t.SELECT = "SELECT", t.NONE = "NONE", t))(Dt || {});
658
+ const at = { selected: [] }, Oe = (t, e = "EDIT") => {
659
+ const { subscribe: n, set: o } = gt(at);
660
+ let i = at;
659
661
  n((c) => i = c);
660
- const r = () => o(rt), s = () => {
662
+ const r = () => o(at), s = () => {
661
663
  var c;
662
664
  return ((c = i.selected) == null ? void 0 : c.length) === 0;
663
665
  }, a = (c) => {
664
666
  if (i.selected.length === 0)
665
667
  return !1;
666
668
  const m = typeof c == "string" ? c : c.id;
667
- return i.selected.some((g) => g.id === m);
669
+ return i.selected.some((p) => p.id === m);
668
670
  }, u = (c, m) => {
669
- const g = t.getAnnotation(c);
670
- if (g) {
671
- const y = Le(g, e);
672
- o(y === "EDIT" ? { selected: [{ id: c, editable: !0 }], pointerEvent: m } : y === "SELECT" ? { selected: [{ id: c }], pointerEvent: m } : { selected: [], pointerEvent: m });
671
+ const p = t.getAnnotation(c);
672
+ if (p) {
673
+ const w = Ie(p, e);
674
+ o(w === "EDIT" ? { selected: [{ id: c, editable: !0 }], pointerEvent: m } : w === "SELECT" ? { selected: [{ id: c }], pointerEvent: m } : { selected: [], pointerEvent: m });
673
675
  } else
674
676
  console.warn("Invalid selection: " + c);
675
677
  }, h = (c, m = !0) => {
676
- const g = Array.isArray(c) ? c : [c], y = g.map((x) => t.getAnnotation(x)).filter(Boolean);
677
- o({ selected: y.map(({ id: x }) => ({ id: x, editable: m })) }), y.length !== g.length && console.warn("Invalid selection", c);
678
+ const p = Array.isArray(c) ? c : [c], w = p.map((x) => t.getAnnotation(x)).filter(Boolean);
679
+ o({ selected: w.map(({ id: x }) => ({ id: x, editable: m })) }), w.length !== p.length && console.warn("Invalid selection", c);
678
680
  }, v = (c) => {
679
681
  if (i.selected.length === 0)
680
682
  return !1;
681
683
  const { selected: m } = i;
682
- m.filter(({ id: g }) => c.includes(g)).length > 0 && o({ selected: m.filter(({ id: g }) => !c.includes(g)) });
684
+ m.filter(({ id: p }) => c.includes(p)).length > 0 && o({ selected: m.filter(({ id: p }) => !c.includes(p)) });
683
685
  };
684
686
  return t.observe(({ changes: c }) => v((c.deleted || []).map((m) => m.id))), {
685
687
  clear: r,
@@ -695,32 +697,64 @@ const Te = (t) => {
695
697
  setSelected: h,
696
698
  subscribe: n
697
699
  };
698
- }, Le = (t, e) => typeof e == "function" ? e(t) || "EDIT" : e || "EDIT", Ne = [];
700
+ }, Ie = (t, e) => typeof e == "function" ? e(t) || "EDIT" : e || "EDIT";
701
+ let J;
702
+ const Me = new Uint8Array(16);
703
+ function Ue() {
704
+ if (!J && (J = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !J))
705
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
706
+ return J(Me);
707
+ }
708
+ const M = [];
699
709
  for (let t = 0; t < 256; ++t)
700
- Ne.push((t + 256).toString(16).slice(1));
701
- typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
702
- const Be = (t, e) => {
710
+ M.push((t + 256).toString(16).slice(1));
711
+ function Ve(t, e = 0) {
712
+ return M[t[e + 0]] + M[t[e + 1]] + M[t[e + 2]] + M[t[e + 3]] + "-" + M[t[e + 4]] + M[t[e + 5]] + "-" + M[t[e + 6]] + M[t[e + 7]] + "-" + M[t[e + 8]] + M[t[e + 9]] + "-" + M[t[e + 10]] + M[t[e + 11]] + M[t[e + 12]] + M[t[e + 13]] + M[t[e + 14]] + M[t[e + 15]];
713
+ }
714
+ const _e = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Lt = {
715
+ randomUUID: _e
716
+ };
717
+ function Xe(t, e, n) {
718
+ if (Lt.randomUUID && !e && !t)
719
+ return Lt.randomUUID();
720
+ t = t || {};
721
+ const o = t.random || (t.rng || Ue)();
722
+ if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, e) {
723
+ n = n || 0;
724
+ for (let i = 0; i < 16; ++i)
725
+ e[n + i] = o[i];
726
+ return e;
727
+ }
728
+ return Ve(o);
729
+ }
730
+ const De = (t, e, n, o) => ({
731
+ id: Xe(),
732
+ annotation: t.id,
733
+ created: n || /* @__PURE__ */ new Date(),
734
+ creator: o,
735
+ ...e
736
+ }), ke = (t, e) => {
703
737
  const n = new Set(t.bodies.map((o) => o.id));
704
738
  return e.bodies.filter((o) => !n.has(o.id));
705
- }, Oe = (t, e) => {
739
+ }, Ye = (t, e) => {
706
740
  const n = new Set(e.bodies.map((o) => o.id));
707
741
  return t.bodies.filter((o) => !n.has(o.id));
708
- }, Me = (t, e) => e.bodies.map((n) => {
742
+ }, He = (t, e) => e.bodies.map((n) => {
709
743
  const o = t.bodies.find((i) => i.id === n.id);
710
- return { newBody: n, oldBody: o && !Y(o, n) ? o : void 0 };
711
- }).filter(({ oldBody: n }) => n).map(({ oldBody: n, newBody: o }) => ({ oldBody: n, newBody: o })), Ie = (t, e) => !Y(t.target, e.target), _t = (t, e) => {
712
- const n = Be(t, e), o = Oe(t, e), i = Me(t, e);
744
+ return { newBody: n, oldBody: o && !H(o, n) ? o : void 0 };
745
+ }).filter(({ oldBody: n }) => n).map(({ oldBody: n, newBody: o }) => ({ oldBody: n, newBody: o })), $e = (t, e) => !H(t.target, e.target), kt = (t, e) => {
746
+ const n = ke(t, e), o = Ye(t, e), i = He(t, e);
713
747
  return {
714
748
  oldValue: t,
715
749
  newValue: e,
716
750
  bodiesCreated: n.length > 0 ? n : void 0,
717
751
  bodiesDeleted: o.length > 0 ? o : void 0,
718
752
  bodiesUpdated: i.length > 0 ? i : void 0,
719
- targetUpdated: Ie(t, e) ? { oldTarget: t.target, newTarget: e.target } : void 0
753
+ targetUpdated: $e(t, e) ? { oldTarget: t.target, newTarget: e.target } : void 0
720
754
  };
721
755
  };
722
- var N = /* @__PURE__ */ ((t) => (t.LOCAL = "LOCAL", t.REMOTE = "REMOTE", t))(N || {});
723
- const Ve = (t, e) => {
756
+ var L = /* @__PURE__ */ ((t) => (t.LOCAL = "LOCAL", t.REMOTE = "REMOTE", t))(L || {});
757
+ const Pe = (t, e) => {
724
758
  var n, o;
725
759
  const { changes: i, origin: r } = e;
726
760
  if (!(!t.options.origin || t.options.origin === r))
@@ -742,7 +776,7 @@ const Ve = (t, e) => {
742
776
  return !!(Array.isArray(t.options.annotations) ? t.options.annotations : [t.options.annotations]).find((a) => s.has(a));
743
777
  } else
744
778
  return !0;
745
- }, _e = (t, e) => {
779
+ }, ze = (t, e) => {
746
780
  const n = new Set((t.created || []).map((c) => c.id)), o = new Set((t.updated || []).map(({ newValue: c }) => c.id)), i = new Set((e.created || []).map((c) => c.id)), r = new Set((e.deleted || []).map((c) => c.id)), s = new Set((e.updated || []).map(({ oldValue: c }) => c.id)), a = new Set((e.updated || []).filter(({ oldValue: c }) => n.has(c.id) || o.has(c.id)).map(({ oldValue: c }) => c.id)), u = [
747
781
  ...(t.created || []).filter((c) => !r.has(c.id)).map((c) => s.has(c.id) ? e.updated.find(({ oldValue: m }) => m.id === c.id).newValue : c),
748
782
  ...e.created || []
@@ -751,23 +785,23 @@ const Ve = (t, e) => {
751
785
  ...(e.deleted || []).filter((c) => !n.has(c.id))
752
786
  ], v = [
753
787
  ...(t.updated || []).filter(({ newValue: c }) => !r.has(c.id)).map((c) => {
754
- const { oldValue: m, newValue: g } = c;
755
- if (s.has(g.id)) {
756
- const y = e.updated.find((x) => x.oldValue.id === g.id).newValue;
757
- return _t(m, y);
788
+ const { oldValue: m, newValue: p } = c;
789
+ if (s.has(p.id)) {
790
+ const w = e.updated.find((x) => x.oldValue.id === p.id).newValue;
791
+ return kt(m, w);
758
792
  } else
759
793
  return c;
760
794
  }),
761
795
  ...(e.updated || []).filter(({ oldValue: c }) => !a.has(c.id))
762
796
  ];
763
797
  return { created: u, deleted: h, updated: v };
764
- }, Ue = (t) => t.id !== void 0, Xe = () => {
765
- const t = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), n = [], o = (p, S = {}) => n.push({ onChange: p, options: S }), i = (p) => {
766
- const S = n.findIndex((E) => E.onChange == p);
798
+ }, Fe = (t) => t.id !== void 0, We = () => {
799
+ const t = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), n = [], o = (g, S = {}) => n.push({ onChange: g, options: S }), i = (g) => {
800
+ const S = n.findIndex((E) => E.onChange == g);
767
801
  S > -1 && n.splice(S, 1);
768
- }, r = (p, S) => {
802
+ }, r = (g, S) => {
769
803
  const E = {
770
- origin: p,
804
+ origin: g,
771
805
  changes: {
772
806
  created: S.created || [],
773
807
  updated: S.updated || [],
@@ -776,137 +810,137 @@ const Ve = (t, e) => {
776
810
  state: [...t.values()]
777
811
  };
778
812
  n.forEach((C) => {
779
- Ve(C, E) && C.onChange(E);
813
+ Pe(C, E) && C.onChange(E);
780
814
  });
781
- }, s = (p, S = N.LOCAL) => {
782
- if (t.get(p.id))
783
- throw Error(`Cannot add annotation ${p.id} - exists already`);
784
- t.set(p.id, p), p.bodies.forEach((E) => e.set(E.id, p.id)), r(S, { created: [p] });
785
- }, a = (p, S) => {
786
- const E = typeof p == "string" ? S : p, C = typeof p == "string" ? p : p.id, L = t.get(C);
787
- if (L) {
788
- const B = _t(L, E);
789
- return C === E.id ? t.set(C, E) : (t.delete(C), t.set(E.id, E)), L.bodies.forEach((_) => e.delete(_.id)), E.bodies.forEach((_) => e.set(_.id, E.id)), B;
815
+ }, s = (g, S = L.LOCAL) => {
816
+ if (t.get(g.id))
817
+ throw Error(`Cannot add annotation ${g.id} - exists already`);
818
+ t.set(g.id, g), g.bodies.forEach((E) => e.set(E.id, g.id)), r(S, { created: [g] });
819
+ }, a = (g, S) => {
820
+ const E = typeof g == "string" ? S : g, C = typeof g == "string" ? g : g.id, N = t.get(C);
821
+ if (N) {
822
+ const B = kt(N, E);
823
+ return C === E.id ? t.set(C, E) : (t.delete(C), t.set(E.id, E)), N.bodies.forEach((_) => e.delete(_.id)), E.bodies.forEach((_) => e.set(_.id, E.id)), B;
790
824
  } else
791
825
  console.warn(`Cannot update annotation ${C} - does not exist`);
792
- }, u = (p, S = N.LOCAL, E = N.LOCAL) => {
793
- const C = Ue(S) ? E : S, L = a(p, S);
794
- L && r(C, { updated: [L] });
795
- }, h = (p, S = N.LOCAL) => {
796
- const E = p.reduce((C, L) => {
797
- const B = a(L);
826
+ }, u = (g, S = L.LOCAL, E = L.LOCAL) => {
827
+ const C = Fe(S) ? E : S, N = a(g, S);
828
+ N && r(C, { updated: [N] });
829
+ }, h = (g, S = L.LOCAL) => {
830
+ const E = g.reduce((C, N) => {
831
+ const B = a(N);
798
832
  return B ? [...C, B] : C;
799
833
  }, []);
800
834
  E.length > 0 && r(S, { updated: E });
801
- }, v = (p, S = N.LOCAL) => {
802
- const E = t.get(p.annotation);
835
+ }, v = (g, S = L.LOCAL) => {
836
+ const E = t.get(g.annotation);
803
837
  if (E) {
804
838
  const C = {
805
839
  ...E,
806
- bodies: [...E.bodies, p]
840
+ bodies: [...E.bodies, g]
807
841
  };
808
- t.set(E.id, C), e.set(p.id, C.id), r(S, { updated: [{
842
+ t.set(E.id, C), e.set(g.id, C.id), r(S, { updated: [{
809
843
  oldValue: E,
810
844
  newValue: C,
811
- bodiesCreated: [p]
845
+ bodiesCreated: [g]
812
846
  }] });
813
847
  } else
814
- console.warn(`Attempt to add body to missing annotation: ${p.annotation}`);
815
- }, c = () => [...t.values()], m = (p = N.LOCAL) => {
848
+ console.warn(`Attempt to add body to missing annotation: ${g.annotation}`);
849
+ }, c = () => [...t.values()], m = (g = L.LOCAL) => {
816
850
  const S = [...t.values()];
817
- t.clear(), e.clear(), r(p, { deleted: S });
818
- }, g = (p, S = !0, E = N.LOCAL) => {
851
+ t.clear(), e.clear(), r(g, { deleted: S });
852
+ }, p = (g, S = !0, E = L.LOCAL) => {
819
853
  if (S) {
820
854
  const C = [...t.values()];
821
- t.clear(), e.clear(), p.forEach((L) => {
822
- t.set(L.id, L), L.bodies.forEach((B) => e.set(B.id, L.id));
823
- }), r(E, { created: p, deleted: C });
855
+ t.clear(), e.clear(), g.forEach((N) => {
856
+ t.set(N.id, N), N.bodies.forEach((B) => e.set(B.id, N.id));
857
+ }), r(E, { created: g, deleted: C });
824
858
  } else {
825
- const C = p.reduce((L, B) => {
859
+ const C = g.reduce((N, B) => {
826
860
  const _ = t.get(B.id);
827
- return _ ? [...L, _] : L;
861
+ return _ ? [...N, _] : N;
828
862
  }, []);
829
863
  if (C.length > 0)
830
- throw Error(`Bulk insert would overwrite the following annotations: ${C.map((L) => L.id).join(", ")}`);
831
- p.forEach((L) => {
832
- t.set(L.id, L), L.bodies.forEach((B) => e.set(B.id, L.id));
833
- }), r(E, { created: p });
864
+ throw Error(`Bulk insert would overwrite the following annotations: ${C.map((N) => N.id).join(", ")}`);
865
+ g.forEach((N) => {
866
+ t.set(N.id, N), N.bodies.forEach((B) => e.set(B.id, N.id));
867
+ }), r(E, { created: g });
834
868
  }
835
- }, y = (p) => {
836
- const S = typeof p == "string" ? p : p.id, E = t.get(S);
869
+ }, w = (g) => {
870
+ const S = typeof g == "string" ? g : g.id, E = t.get(S);
837
871
  if (E)
838
872
  return t.delete(S), E.bodies.forEach((C) => e.delete(C.id)), E;
839
873
  console.warn(`Attempt to delete missing annotation: ${S}`);
840
- }, x = (p, S = N.LOCAL) => {
841
- const E = y(p);
874
+ }, x = (g, S = L.LOCAL) => {
875
+ const E = w(g);
842
876
  E && r(S, { deleted: [E] });
843
- }, w = (p, S = N.LOCAL) => {
844
- const E = p.reduce((C, L) => {
845
- const B = y(L);
877
+ }, y = (g, S = L.LOCAL) => {
878
+ const E = g.reduce((C, N) => {
879
+ const B = w(N);
846
880
  return B ? [...C, B] : C;
847
881
  }, []);
848
882
  E.length > 0 && r(S, { deleted: E });
849
- }, l = (p, S = N.LOCAL) => {
850
- const E = t.get(p.annotation);
883
+ }, l = (g, S = L.LOCAL) => {
884
+ const E = t.get(g.annotation);
851
885
  if (E) {
852
- const C = E.bodies.find((L) => L.id === p.id);
886
+ const C = E.bodies.find((N) => N.id === g.id);
853
887
  if (C) {
854
888
  e.delete(C.id);
855
- const L = {
889
+ const N = {
856
890
  ...E,
857
- bodies: E.bodies.filter((B) => B.id !== p.id)
891
+ bodies: E.bodies.filter((B) => B.id !== g.id)
858
892
  };
859
- t.set(E.id, L), r(S, { updated: [{
893
+ t.set(E.id, N), r(S, { updated: [{
860
894
  oldValue: E,
861
- newValue: L,
895
+ newValue: N,
862
896
  bodiesDeleted: [C]
863
897
  }] });
864
898
  } else
865
- console.warn(`Attempt to delete missing body ${p.id} from annotation ${p.annotation}`);
899
+ console.warn(`Attempt to delete missing body ${g.id} from annotation ${g.annotation}`);
866
900
  } else
867
- console.warn(`Attempt to delete body from missing annotation ${p.annotation}`);
868
- }, d = (p) => {
869
- const S = t.get(p);
901
+ console.warn(`Attempt to delete body from missing annotation ${g.annotation}`);
902
+ }, d = (g) => {
903
+ const S = t.get(g);
870
904
  return S ? { ...S } : void 0;
871
- }, f = (p) => {
872
- const S = e.get(p);
905
+ }, f = (g) => {
906
+ const S = e.get(g);
873
907
  if (S) {
874
- const E = d(S).bodies.find((C) => C.id === p);
908
+ const E = d(S).bodies.find((C) => C.id === g);
875
909
  if (E)
876
910
  return E;
877
- console.error(`Store integrity error: body ${p} in index, but not in annotation`);
911
+ console.error(`Store integrity error: body ${g} in index, but not in annotation`);
878
912
  } else
879
- console.warn(`Attempt to retrieve missing body: ${p}`);
880
- }, b = (p, S) => {
881
- if (p.annotation !== S.annotation)
913
+ console.warn(`Attempt to retrieve missing body: ${g}`);
914
+ }, b = (g, S) => {
915
+ if (g.annotation !== S.annotation)
882
916
  throw "Annotation integrity violation: annotation ID must be the same when updating bodies";
883
- const E = t.get(p.annotation);
917
+ const E = t.get(g.annotation);
884
918
  if (E) {
885
- const C = E.bodies.find((B) => B.id === p.id), L = {
919
+ const C = E.bodies.find((B) => B.id === g.id), N = {
886
920
  ...E,
887
921
  bodies: E.bodies.map((B) => B.id === C.id ? S : B)
888
922
  };
889
- return t.set(E.id, L), C.id !== S.id && (e.delete(C.id), e.set(S.id, L.id)), {
923
+ return t.set(E.id, N), C.id !== S.id && (e.delete(C.id), e.set(S.id, N.id)), {
890
924
  oldValue: E,
891
- newValue: L,
925
+ newValue: N,
892
926
  bodiesUpdated: [{ oldBody: C, newBody: S }]
893
927
  };
894
928
  } else
895
- console.warn(`Attempt to add body to missing annotation ${p.annotation}`);
896
- }, A = (p, S, E = N.LOCAL) => {
897
- const C = b(p, S);
929
+ console.warn(`Attempt to add body to missing annotation ${g.annotation}`);
930
+ }, A = (g, S, E = L.LOCAL) => {
931
+ const C = b(g, S);
898
932
  C && r(E, { updated: [C] });
899
- }, R = (p, S = N.LOCAL) => {
900
- const E = p.map((C) => b({ id: C.id, annotation: C.annotation }, C)).filter(Boolean);
933
+ }, R = (g, S = L.LOCAL) => {
934
+ const E = g.map((C) => b({ id: C.id, annotation: C.annotation }, C)).filter(Boolean);
901
935
  r(S, { updated: E });
902
- }, T = (p) => {
903
- const S = t.get(p.annotation);
936
+ }, T = (g) => {
937
+ const S = t.get(g.annotation);
904
938
  if (S) {
905
939
  const E = {
906
940
  ...S,
907
941
  target: {
908
942
  ...S.target,
909
- ...p
943
+ ...g
910
944
  }
911
945
  };
912
946
  return t.set(S.id, E), {
@@ -914,22 +948,22 @@ const Ve = (t, e) => {
914
948
  newValue: E,
915
949
  targetUpdated: {
916
950
  oldTarget: S.target,
917
- newTarget: p
951
+ newTarget: g
918
952
  }
919
953
  };
920
954
  } else
921
- console.warn(`Attempt to update target on missing annotation: ${p.annotation}`);
955
+ console.warn(`Attempt to update target on missing annotation: ${g.annotation}`);
922
956
  };
923
957
  return {
924
958
  addAnnotation: s,
925
959
  addBody: v,
926
960
  all: c,
927
- bulkAddAnnotation: g,
928
- bulkDeleteAnnotation: w,
961
+ bulkAddAnnotation: p,
962
+ bulkDeleteAnnotation: y,
929
963
  bulkUpdateAnnotation: h,
930
964
  bulkUpdateBodies: R,
931
- bulkUpdateTargets: (p, S = N.LOCAL) => {
932
- const E = p.map((C) => T(C)).filter(Boolean);
965
+ bulkUpdateTargets: (g, S = L.LOCAL) => {
966
+ const E = g.map((C) => T(C)).filter(Boolean);
933
967
  E.length > 0 && r(S, { updated: E });
934
968
  },
935
969
  clear: m,
@@ -941,13 +975,13 @@ const Ve = (t, e) => {
941
975
  unobserve: i,
942
976
  updateAnnotation: u,
943
977
  updateBody: A,
944
- updateTarget: (p, S = N.LOCAL) => {
945
- const E = T(p);
978
+ updateTarget: (g, S = L.LOCAL) => {
979
+ const E = T(g);
946
980
  E && r(S, { updated: [E] });
947
981
  }
948
982
  };
949
983
  };
950
- let ke = () => ({
984
+ let qe = () => ({
951
985
  emit(t, ...e) {
952
986
  for (let n = 0, o = this.events[t] || [], i = o.length; n < i; n++)
953
987
  o[n](...e);
@@ -961,59 +995,59 @@ let ke = () => ({
961
995
  };
962
996
  }
963
997
  });
964
- const Ye = 250, De = (t) => {
965
- const e = ke(), n = [];
998
+ const je = 250, Ge = (t) => {
999
+ const e = qe(), n = [];
966
1000
  let o = -1, i = !1, r = 0;
967
- const s = (g) => {
1001
+ const s = (p) => {
968
1002
  if (!i) {
969
- const { changes: y } = g, x = performance.now();
970
- if (x - r > Ye)
971
- n.splice(o + 1), n.push(y), o = n.length - 1;
1003
+ const { changes: w } = p, x = performance.now();
1004
+ if (x - r > je)
1005
+ n.splice(o + 1), n.push(w), o = n.length - 1;
972
1006
  else {
973
- const w = n.length - 1;
974
- n[w] = _e(n[w], y);
1007
+ const y = n.length - 1;
1008
+ n[y] = ze(n[y], w);
975
1009
  }
976
1010
  r = x;
977
1011
  }
978
1012
  i = !1;
979
1013
  };
980
- t.observe(s, { origin: N.LOCAL });
981
- const a = (g) => g && g.length > 0 && t.bulkDeleteAnnotation(g), u = (g) => g && g.length > 0 && t.bulkAddAnnotation(g, !1), h = (g) => g && g.length > 0 && t.bulkUpdateAnnotation(g.map(({ oldValue: y }) => y)), v = (g) => g && g.length > 0 && t.bulkUpdateAnnotation(g.map(({ newValue: y }) => y)), c = (g) => g && g.length > 0 && t.bulkAddAnnotation(g, !1), m = (g) => g && g.length > 0 && t.bulkDeleteAnnotation(g);
1014
+ t.observe(s, { origin: L.LOCAL });
1015
+ const a = (p) => p && p.length > 0 && t.bulkDeleteAnnotation(p), u = (p) => p && p.length > 0 && t.bulkAddAnnotation(p, !1), h = (p) => p && p.length > 0 && t.bulkUpdateAnnotation(p.map(({ oldValue: w }) => w)), v = (p) => p && p.length > 0 && t.bulkUpdateAnnotation(p.map(({ newValue: w }) => w)), c = (p) => p && p.length > 0 && t.bulkAddAnnotation(p, !1), m = (p) => p && p.length > 0 && t.bulkDeleteAnnotation(p);
982
1016
  return {
983
1017
  canRedo: () => n.length - 1 > o,
984
1018
  canUndo: () => o > -1,
985
1019
  destroy: () => t.unobserve(s),
986
- on: (g, y) => e.on(g, y),
1020
+ on: (p, w) => e.on(p, w),
987
1021
  redo: () => {
988
1022
  if (n.length - 1 > o) {
989
1023
  i = !0;
990
- const { created: g, updated: y, deleted: x } = n[o + 1];
991
- u(g), v(y), m(x), e.emit("redo", n[o + 1]), o += 1;
1024
+ const { created: p, updated: w, deleted: x } = n[o + 1];
1025
+ u(p), v(w), m(x), e.emit("redo", n[o + 1]), o += 1;
992
1026
  }
993
1027
  },
994
1028
  undo: () => {
995
1029
  if (o > -1) {
996
1030
  i = !0;
997
- const { created: g, updated: y, deleted: x } = n[o];
998
- a(g), h(y), c(x), e.emit("undo", n[o]), o -= 1;
1031
+ const { created: p, updated: w, deleted: x } = n[o];
1032
+ a(p), h(w), c(x), e.emit("undo", n[o]), o -= 1;
999
1033
  }
1000
1034
  }
1001
1035
  };
1002
- }, He = () => {
1003
- const { subscribe: t, set: e } = ft([]);
1036
+ }, Ke = () => {
1037
+ const { subscribe: t, set: e } = gt([]);
1004
1038
  return {
1005
1039
  subscribe: t,
1006
1040
  set: e
1007
1041
  };
1008
- }, $e = (t, e, n, o) => {
1042
+ }, Qe = (t, e, n, o) => {
1009
1043
  const { store: i, selection: r, hover: s, viewport: a } = t, u = /* @__PURE__ */ new Map();
1010
1044
  let h = [], v, c;
1011
1045
  const m = (l, d) => {
1012
1046
  u.has(l) ? u.get(l).push(d) : u.set(l, [d]);
1013
- }, g = (l, d) => {
1047
+ }, p = (l, d) => {
1014
1048
  const f = u.get(l);
1015
1049
  f && f.indexOf(d) > 0 && f.splice(f.indexOf(d), 1);
1016
- }, y = (l, d, f) => {
1050
+ }, w = (l, d, f) => {
1017
1051
  u.has(l) && setTimeout(() => {
1018
1052
  u.get(l).forEach((b) => {
1019
1053
  if (n) {
@@ -1027,7 +1061,7 @@ const Ye = 250, De = (t) => {
1027
1061
  const { selected: l } = r, d = (l || []).map(({ id: f }) => i.getAnnotation(f));
1028
1062
  d.forEach((f) => {
1029
1063
  const b = h.find((A) => A.id === f.id);
1030
- (!b || !Y(b, f)) && y("updateAnnotation", f, b);
1064
+ (!b || !H(b, f)) && w("updateAnnotation", f, b);
1031
1065
  }), h = h.map((f) => d.find(({ id: A }) => A === f.id) || f);
1032
1066
  };
1033
1067
  r.subscribe(({ selected: l }) => {
@@ -1037,13 +1071,13 @@ const Ye = 250, De = (t) => {
1037
1071
  else if (h.length > 0 && l.length === 0)
1038
1072
  h.forEach((d) => {
1039
1073
  const f = i.getAnnotation(d.id);
1040
- f && !Y(f, d) && y("updateAnnotation", f, d);
1074
+ f && !H(f, d) && w("updateAnnotation", f, d);
1041
1075
  }), h = [];
1042
1076
  else {
1043
1077
  const d = new Set(h.map((b) => b.id)), f = new Set(l.map(({ id: b }) => b));
1044
1078
  h.filter((b) => !f.has(b.id)).forEach((b) => {
1045
1079
  const A = i.getAnnotation(b.id);
1046
- A && !Y(A, b) && y("updateAnnotation", A, b);
1080
+ A && !H(A, b) && w("updateAnnotation", A, b);
1047
1081
  }), h = [
1048
1082
  // Remove annotations that were deselected
1049
1083
  ...h.filter((b) => f.has(b.id)),
@@ -1051,33 +1085,33 @@ const Ye = 250, De = (t) => {
1051
1085
  ...l.filter(({ id: b }) => !d.has(b)).map(({ id: b }) => i.getAnnotation(b))
1052
1086
  ];
1053
1087
  }
1054
- y("selectionChanged", h);
1088
+ w("selectionChanged", h);
1055
1089
  }
1056
1090
  }), s.subscribe((l) => {
1057
- !v && l ? y("mouseEnterAnnotation", i.getAnnotation(l)) : v && !l ? y("mouseLeaveAnnotation", i.getAnnotation(v)) : v && l && (y("mouseLeaveAnnotation", i.getAnnotation(v)), y("mouseEnterAnnotation", i.getAnnotation(l))), v = l;
1058
- }), a == null || a.subscribe((l) => y("viewportIntersect", l.map((d) => i.getAnnotation(d)))), i.observe((l) => {
1091
+ !v && l ? w("mouseEnterAnnotation", i.getAnnotation(l)) : v && !l ? w("mouseLeaveAnnotation", i.getAnnotation(v)) : v && l && (w("mouseLeaveAnnotation", i.getAnnotation(v)), w("mouseEnterAnnotation", i.getAnnotation(l))), v = l;
1092
+ }), a == null || a.subscribe((l) => w("viewportIntersect", l.map((d) => i.getAnnotation(d)))), i.observe((l) => {
1059
1093
  o && (c && clearTimeout(c), c = setTimeout(x, 1e3));
1060
1094
  const { created: d, deleted: f } = l.changes;
1061
- (d || []).forEach((b) => y("createAnnotation", b)), (f || []).forEach((b) => y("deleteAnnotation", b)), (l.changes.updated || []).filter((b) => [
1095
+ (d || []).forEach((b) => w("createAnnotation", b)), (f || []).forEach((b) => w("deleteAnnotation", b)), (l.changes.updated || []).filter((b) => [
1062
1096
  ...b.bodiesCreated || [],
1063
1097
  ...b.bodiesDeleted || [],
1064
1098
  ...b.bodiesUpdated || []
1065
1099
  ].length > 0).forEach(({ oldValue: b, newValue: A }) => {
1066
1100
  const R = h.find((T) => T.id === b.id) || b;
1067
- h = h.map((T) => T.id === b.id ? A : T), y("updateAnnotation", A, R);
1101
+ h = h.map((T) => T.id === b.id ? A : T), w("updateAnnotation", A, R);
1068
1102
  });
1069
- }, { origin: N.LOCAL }), i.observe((l) => {
1103
+ }, { origin: L.LOCAL }), i.observe((l) => {
1070
1104
  if (h) {
1071
1105
  const d = new Set(h.map((b) => b.id)), f = (l.changes.updated || []).filter(({ newValue: b }) => d.has(b.id)).map(({ newValue: b }) => b);
1072
1106
  f.length > 0 && (h = h.map((b) => f.find((R) => R.id === b.id) || b));
1073
1107
  }
1074
- }, { origin: N.REMOTE });
1075
- const w = (l) => (d) => {
1108
+ }, { origin: L.REMOTE });
1109
+ const y = (l) => (d) => {
1076
1110
  const { updated: f } = d;
1077
- l ? (f || []).forEach((b) => y("updateAnnotation", b.oldValue, b.newValue)) : (f || []).forEach((b) => y("updateAnnotation", b.newValue, b.oldValue));
1111
+ l ? (f || []).forEach((b) => w("updateAnnotation", b.oldValue, b.newValue)) : (f || []).forEach((b) => w("updateAnnotation", b.newValue, b.oldValue));
1078
1112
  };
1079
- return e.on("undo", w(!0)), e.on("redo", w(!1)), { on: m, off: g, emit: y };
1080
- }, Pe = (t) => (e) => e.reduce((n, o) => {
1113
+ return e.on("undo", y(!0)), e.on("redo", y(!1)), { on: m, off: p, emit: w };
1114
+ }, Je = (t) => (e) => e.reduce((n, o) => {
1081
1115
  const { parsed: i, error: r } = t.parse(o);
1082
1116
  return r ? {
1083
1117
  parsed: n.parsed,
@@ -1088,45 +1122,45 @@ const Ye = 250, De = (t) => {
1088
1122
  } : {
1089
1123
  ...n
1090
1124
  };
1091
- }, { parsed: [], failed: [] }), ze = (t, e, n) => {
1092
- const { store: o, selection: i } = t, r = (w) => {
1125
+ }, { parsed: [], failed: [] }), Ze = (t, e, n) => {
1126
+ const { store: o, selection: i } = t, r = (y) => {
1093
1127
  if (n) {
1094
- const { parsed: l, error: d } = n.parse(w);
1095
- l ? o.addAnnotation(l, N.REMOTE) : console.error(d);
1128
+ const { parsed: l, error: d } = n.parse(y);
1129
+ l ? o.addAnnotation(l, L.REMOTE) : console.error(d);
1096
1130
  } else
1097
- o.addAnnotation(w, N.REMOTE);
1098
- }, s = () => i.clear(), a = () => o.clear(), u = (w) => {
1099
- const l = o.getAnnotation(w);
1131
+ o.addAnnotation(y, L.REMOTE);
1132
+ }, s = () => i.clear(), a = () => o.clear(), u = (y) => {
1133
+ const l = o.getAnnotation(y);
1100
1134
  return n && l ? n.serialize(l) : l;
1101
1135
  }, h = () => n ? o.all().map(n.serialize) : o.all(), v = () => {
1102
- var w;
1103
- const l = (((w = i.selected) == null ? void 0 : w.map((d) => d.id)) || []).map((d) => o.getAnnotation(d)).filter(Boolean);
1136
+ var y;
1137
+ const l = (((y = i.selected) == null ? void 0 : y.map((d) => d.id)) || []).map((d) => o.getAnnotation(d)).filter(Boolean);
1104
1138
  return n ? l.map(n.serialize) : l;
1105
- }, c = (w, l = !0) => fetch(w).then((d) => d.json()).then((d) => (g(d, l), d)), m = (w) => {
1106
- if (typeof w == "string") {
1107
- const l = o.getAnnotation(w);
1108
- if (o.deleteAnnotation(w), l)
1139
+ }, c = (y, l = !0) => fetch(y).then((d) => d.json()).then((d) => (p(d, l), d)), m = (y) => {
1140
+ if (typeof y == "string") {
1141
+ const l = o.getAnnotation(y);
1142
+ if (o.deleteAnnotation(y), l)
1109
1143
  return n ? n.serialize(l) : l;
1110
1144
  } else {
1111
- const l = n ? n.parse(w).parsed : w;
1145
+ const l = n ? n.parse(y).parsed : y;
1112
1146
  if (l)
1113
- return o.deleteAnnotation(l), w;
1147
+ return o.deleteAnnotation(l), y;
1114
1148
  }
1115
- }, g = (w, l = !0) => {
1149
+ }, p = (y, l = !0) => {
1116
1150
  if (n) {
1117
- const { parsed: d, failed: f } = Pe(n)(w);
1118
- f.length > 0 && console.warn(`Discarded ${f.length} invalid annotations`, f), o.bulkAddAnnotation(d, l, N.REMOTE);
1151
+ const { parsed: d, failed: f } = Je(n)(y);
1152
+ f.length > 0 && console.warn(`Discarded ${f.length} invalid annotations`, f), o.bulkAddAnnotation(d, l, L.REMOTE);
1119
1153
  } else
1120
- o.bulkAddAnnotation(w, l, N.REMOTE);
1121
- }, y = (w) => {
1122
- w ? i.setSelected(w) : i.clear();
1123
- }, x = (w) => {
1154
+ o.bulkAddAnnotation(y, l, L.REMOTE);
1155
+ }, w = (y) => {
1156
+ y ? i.setSelected(y) : i.clear();
1157
+ }, x = (y) => {
1124
1158
  if (n) {
1125
- const l = n.parse(w).parsed, d = n.serialize(o.getAnnotation(l.id));
1159
+ const l = n.parse(y).parsed, d = n.serialize(o.getAnnotation(l.id));
1126
1160
  return o.updateAnnotation(l), d;
1127
1161
  } else {
1128
- const l = o.getAnnotation(w.id);
1129
- return o.updateAnnotation(w), l;
1162
+ const l = o.getAnnotation(y.id);
1163
+ return o.updateAnnotation(y), l;
1130
1164
  }
1131
1165
  };
1132
1166
  return {
@@ -1141,13 +1175,13 @@ const Ye = 250, De = (t) => {
1141
1175
  loadAnnotations: c,
1142
1176
  redo: e.redo,
1143
1177
  removeAnnotation: m,
1144
- setAnnotations: g,
1145
- setSelected: y,
1178
+ setAnnotations: p,
1179
+ setSelected: w,
1146
1180
  undo: e.undo,
1147
1181
  updateAnnotation: x
1148
1182
  };
1149
- }, Fe = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
1150
- let We = (t) => crypto.getRandomValues(new Uint8Array(t)), qe = (t, e, n) => {
1183
+ }, tn = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
1184
+ let en = (t) => crypto.getRandomValues(new Uint8Array(t)), nn = (t, e, n) => {
1151
1185
  let o = (2 << Math.log(t.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * e / t.length);
1152
1186
  return (r = e) => {
1153
1187
  let s = "";
@@ -1158,13 +1192,13 @@ let We = (t) => crypto.getRandomValues(new Uint8Array(t)), qe = (t, e, n) => {
1158
1192
  return s;
1159
1193
  }
1160
1194
  };
1161
- }, je = (t, e = 21) => qe(t, e, We), Ge = (t = 21) => {
1195
+ }, on = (t, e = 21) => nn(t, e, en), rn = (t = 21) => {
1162
1196
  let e = "", n = crypto.getRandomValues(new Uint8Array(t));
1163
1197
  for (; t--; )
1164
- e += Fe[n[t] & 63];
1198
+ e += tn[n[t] & 63];
1165
1199
  return e;
1166
1200
  };
1167
- const Ke = () => ({ isGuest: !0, id: je("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_", 20)() }), Qe = (t) => {
1201
+ const sn = () => ({ isGuest: !0, id: on("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_", 20)() }), an = (t) => {
1168
1202
  const e = JSON.stringify(t);
1169
1203
  let n = 0;
1170
1204
  for (let o = 0, i = e.length; o < i; o++) {
@@ -1172,28 +1206,28 @@ const Ke = () => ({ isGuest: !0, id: je("1234567890abcdefghijklmnopqrstuvwxyzABC
1172
1206
  n = (n << 5) - n + r, n |= 0;
1173
1207
  }
1174
1208
  return `${n}`;
1175
- }, Ut = (t) => t ? typeof t == "object" ? { ...t } : t : void 0, Je = (t, e) => (Array.isArray(t) ? t : [t]).map((n) => {
1209
+ }, Yt = (t) => t ? typeof t == "object" ? { ...t } : t : void 0, cn = (t, e) => (Array.isArray(t) ? t : [t]).map((n) => {
1176
1210
  const { id: o, type: i, purpose: r, value: s, created: a, creator: u, ...h } = n;
1177
1211
  return {
1178
- id: o || `temp-${Qe(n)}`,
1212
+ id: o || `temp-${an(n)}`,
1179
1213
  annotation: e,
1180
1214
  type: i,
1181
1215
  purpose: r,
1182
1216
  value: s,
1183
1217
  created: a ? new Date(a) : void 0,
1184
- creator: Ut(u),
1218
+ creator: Yt(u),
1185
1219
  ...h
1186
1220
  };
1187
- }), Ze = (t) => t.map((e) => {
1221
+ }), ln = (t) => t.map((e) => {
1188
1222
  var n, o;
1189
1223
  const i = { ...e };
1190
1224
  return delete i.annotation, (n = i.id) != null && n.startsWith("temp-") && delete i.id, { ...i, created: (o = i.created) == null ? void 0 : o.toISOString() };
1191
1225
  });
1192
- Ge();
1193
- const xn = (t, e) => ({
1194
- parse: (n) => nn(n),
1195
- serialize: (n) => on(n, t, e)
1196
- }), tn = (t) => t.quote !== void 0 && t.start !== void 0 && t.end !== void 0, en = (t) => {
1226
+ rn();
1227
+ const Bn = (t, e) => ({
1228
+ parse: (n) => hn(n),
1229
+ serialize: (n) => fn(n, t, e)
1230
+ }), dn = (t) => t.quote !== void 0 && t.start !== void 0 && t.end !== void 0, un = (t) => {
1197
1231
  const {
1198
1232
  id: e,
1199
1233
  creator: n,
@@ -1201,7 +1235,7 @@ const xn = (t, e) => ({
1201
1235
  modified: i,
1202
1236
  target: r
1203
1237
  } = t, s = Array.isArray(r) ? r : [r], a = {
1204
- creator: Ut(n),
1238
+ creator: Yt(n),
1205
1239
  created: o ? new Date(o) : void 0,
1206
1240
  updated: i ? new Date(i) : void 0,
1207
1241
  annotation: e,
@@ -1219,7 +1253,7 @@ const xn = (t, e) => ({
1219
1253
  }
1220
1254
  return c;
1221
1255
  }, {});
1222
- if (tn(v))
1256
+ if (dn(v))
1223
1257
  a.selector.push({ id: u.id, ...v });
1224
1258
  else {
1225
1259
  const c = [
@@ -1230,14 +1264,14 @@ const xn = (t, e) => ({
1230
1264
  }
1231
1265
  }
1232
1266
  return { parsed: a };
1233
- }, nn = (t) => {
1234
- const e = t.id || Vt(), {
1267
+ }, hn = (t) => {
1268
+ const e = t.id || Xt(), {
1235
1269
  creator: n,
1236
1270
  created: o,
1237
1271
  modified: i,
1238
1272
  body: r,
1239
1273
  ...s
1240
- } = t, a = Je(r, e), u = en(t);
1274
+ } = t, a = cn(r, e), u = un(t);
1241
1275
  return "error" in u ? { error: u.error } : {
1242
1276
  parsed: {
1243
1277
  ...s,
@@ -1246,7 +1280,7 @@ const xn = (t, e) => ({
1246
1280
  target: u.parsed
1247
1281
  }
1248
1282
  };
1249
- }, on = (t, e, n) => {
1283
+ }, fn = (t, e, n) => {
1250
1284
  const { bodies: o, target: i, ...r } = t, {
1251
1285
  selector: s,
1252
1286
  creator: a,
@@ -1254,14 +1288,14 @@ const xn = (t, e) => ({
1254
1288
  updated: h,
1255
1289
  ...v
1256
1290
  } = i, c = s.map((m) => {
1257
- const { quote: g, start: y, end: x, range: w } = m, { prefix: l, suffix: d } = Kt(w, n), f = [{
1291
+ const { quote: p, start: w, end: x, range: y } = m, { prefix: l, suffix: d } = te(y, n), f = [{
1258
1292
  type: "TextQuoteSelector",
1259
- exact: g,
1293
+ exact: p,
1260
1294
  prefix: l,
1261
1295
  suffix: d
1262
1296
  }, {
1263
1297
  type: "TextPositionSelector",
1264
- start: y,
1298
+ start: w,
1265
1299
  end: x
1266
1300
  }];
1267
1301
  return {
@@ -1276,40 +1310,40 @@ const xn = (t, e) => ({
1276
1310
  "@context": "http://www.w3.org/ns/anno.jsonld",
1277
1311
  id: t.id,
1278
1312
  type: "Annotation",
1279
- body: Ze(t.bodies),
1313
+ body: ln(t.bodies),
1280
1314
  creator: a,
1281
1315
  created: u == null ? void 0 : u.toISOString(),
1282
1316
  modified: h == null ? void 0 : h.toISOString(),
1283
1317
  target: c
1284
1318
  };
1285
1319
  };
1286
- function rn(t, e, n, o, i) {
1287
- Xt(t, e, n || 0, o || t.length - 1, i || sn);
1320
+ function pn(t, e, n, o, i) {
1321
+ Ht(t, e, n || 0, o || t.length - 1, i || gn);
1288
1322
  }
1289
- function Xt(t, e, n, o, i) {
1323
+ function Ht(t, e, n, o, i) {
1290
1324
  for (; o > n; ) {
1291
1325
  if (o - n > 600) {
1292
1326
  var r = o - n + 1, s = e - n + 1, a = Math.log(r), u = 0.5 * Math.exp(2 * a / 3), h = 0.5 * Math.sqrt(a * u * (r - u) / r) * (s - r / 2 < 0 ? -1 : 1), v = Math.max(n, Math.floor(e - s * u / r + h)), c = Math.min(o, Math.floor(e + (r - s) * u / r + h));
1293
- Xt(t, e, v, c, i);
1327
+ Ht(t, e, v, c, i);
1294
1328
  }
1295
- var m = t[e], g = n, y = o;
1296
- for (F(t, n, e), i(t[o], m) > 0 && F(t, n, o); g < y; ) {
1297
- for (F(t, g, y), g++, y--; i(t[g], m) < 0; )
1298
- g++;
1299
- for (; i(t[y], m) > 0; )
1300
- y--;
1329
+ var m = t[e], p = n, w = o;
1330
+ for (W(t, n, e), i(t[o], m) > 0 && W(t, n, o); p < w; ) {
1331
+ for (W(t, p, w), p++, w--; i(t[p], m) < 0; )
1332
+ p++;
1333
+ for (; i(t[w], m) > 0; )
1334
+ w--;
1301
1335
  }
1302
- i(t[n], m) === 0 ? F(t, n, y) : (y++, F(t, y, o)), y <= e && (n = y + 1), e <= y && (o = y - 1);
1336
+ i(t[n], m) === 0 ? W(t, n, w) : (w++, W(t, w, o)), w <= e && (n = w + 1), e <= w && (o = w - 1);
1303
1337
  }
1304
1338
  }
1305
- function F(t, e, n) {
1339
+ function W(t, e, n) {
1306
1340
  var o = t[e];
1307
1341
  t[e] = t[n], t[n] = o;
1308
1342
  }
1309
- function sn(t, e) {
1343
+ function gn(t, e) {
1310
1344
  return t < e ? -1 : t > e ? 1 : 0;
1311
1345
  }
1312
- class an {
1346
+ class mn {
1313
1347
  constructor(e = 9) {
1314
1348
  this._maxEntries = Math.max(4, e), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();
1315
1349
  }
@@ -1319,13 +1353,13 @@ class an {
1319
1353
  search(e) {
1320
1354
  let n = this.data;
1321
1355
  const o = [];
1322
- if (!J(e, n))
1356
+ if (!tt(e, n))
1323
1357
  return o;
1324
1358
  const i = this.toBBox, r = [];
1325
1359
  for (; n; ) {
1326
1360
  for (let s = 0; s < n.children.length; s++) {
1327
1361
  const a = n.children[s], u = n.leaf ? i(a) : a;
1328
- J(e, u) && (n.leaf ? o.push(a) : at(e, u) ? this._all(a, o) : r.push(a));
1362
+ tt(e, u) && (n.leaf ? o.push(a) : lt(e, u) ? this._all(a, o) : r.push(a));
1329
1363
  }
1330
1364
  n = r.pop();
1331
1365
  }
@@ -1333,14 +1367,14 @@ class an {
1333
1367
  }
1334
1368
  collides(e) {
1335
1369
  let n = this.data;
1336
- if (!J(e, n))
1370
+ if (!tt(e, n))
1337
1371
  return !1;
1338
1372
  const o = [];
1339
1373
  for (; n; ) {
1340
1374
  for (let i = 0; i < n.children.length; i++) {
1341
1375
  const r = n.children[i], s = n.leaf ? this.toBBox(r) : r;
1342
- if (J(e, s)) {
1343
- if (n.leaf || at(e, s))
1376
+ if (tt(e, s)) {
1377
+ if (n.leaf || lt(e, s))
1344
1378
  return !0;
1345
1379
  o.push(r);
1346
1380
  }
@@ -1375,7 +1409,7 @@ class an {
1375
1409
  return e && this._insert(e, this.data.height - 1), this;
1376
1410
  }
1377
1411
  clear() {
1378
- return this.data = z([]), this;
1412
+ return this.data = F([]), this;
1379
1413
  }
1380
1414
  remove(e, n) {
1381
1415
  if (!e)
@@ -1385,11 +1419,11 @@ class an {
1385
1419
  let a, u, h;
1386
1420
  for (; o || r.length; ) {
1387
1421
  if (o || (o = r.pop(), u = r[r.length - 1], a = s.pop(), h = !0), o.leaf) {
1388
- const v = cn(e, o.children, n);
1422
+ const v = bn(e, o.children, n);
1389
1423
  if (v !== -1)
1390
1424
  return o.children.splice(v, 1), r.push(o), this._condense(r), this;
1391
1425
  }
1392
- !h && !o.leaf && at(o, i) ? (r.push(o), s.push(a), a = 0, u = o, o = o.children[0]) : u ? (a++, o = u.children[a], h = !1) : o = null;
1426
+ !h && !o.leaf && lt(o, i) ? (r.push(o), s.push(a), a = 0, u = o, o = o.children[0]) : u ? (a++, o = u.children[a], h = !1) : o = null;
1393
1427
  }
1394
1428
  return this;
1395
1429
  }
@@ -1418,25 +1452,25 @@ class an {
1418
1452
  const r = o - n + 1;
1419
1453
  let s = this._maxEntries, a;
1420
1454
  if (r <= s)
1421
- return a = z(e.slice(n, o + 1)), P(a, this.toBBox), a;
1422
- i || (i = Math.ceil(Math.log(r) / Math.log(s)), s = Math.ceil(r / Math.pow(s, i - 1))), a = z([]), a.leaf = !1, a.height = i;
1455
+ return a = F(e.slice(n, o + 1)), z(a, this.toBBox), a;
1456
+ i || (i = Math.ceil(Math.log(r) / Math.log(s)), s = Math.ceil(r / Math.pow(s, i - 1))), a = F([]), a.leaf = !1, a.height = i;
1423
1457
  const u = Math.ceil(r / s), h = u * Math.ceil(Math.sqrt(s));
1424
- Rt(e, n, o, h, this.compareMinX);
1458
+ Bt(e, n, o, h, this.compareMinX);
1425
1459
  for (let v = n; v <= o; v += h) {
1426
1460
  const c = Math.min(v + h - 1, o);
1427
- Rt(e, v, c, u, this.compareMinY);
1461
+ Bt(e, v, c, u, this.compareMinY);
1428
1462
  for (let m = v; m <= c; m += u) {
1429
- const g = Math.min(m + u - 1, c);
1430
- a.children.push(this._build(e, m, g, i - 1));
1463
+ const p = Math.min(m + u - 1, c);
1464
+ a.children.push(this._build(e, m, p, i - 1));
1431
1465
  }
1432
1466
  }
1433
- return P(a, this.toBBox), a;
1467
+ return z(a, this.toBBox), a;
1434
1468
  }
1435
1469
  _chooseSubtree(e, n, o, i) {
1436
1470
  for (; i.push(n), !(n.leaf || i.length - 1 === o); ) {
1437
1471
  let r = 1 / 0, s = 1 / 0, a;
1438
1472
  for (let u = 0; u < n.children.length; u++) {
1439
- const h = n.children[u], v = st(h), c = un(e, h) - v;
1473
+ const h = n.children[u], v = ct(h), c = wn(e, h) - v;
1440
1474
  c < s ? (s = c, r = v < r ? v : r, a = h) : c === s && v < r && (r = v, a = h);
1441
1475
  }
1442
1476
  n = a || n.children[0];
@@ -1445,7 +1479,7 @@ class an {
1445
1479
  }
1446
1480
  _insert(e, n, o) {
1447
1481
  const i = o ? e : this.toBBox(e), r = [], s = this._chooseSubtree(i, this.data, n, r);
1448
- for (s.children.push(e), q(s, i); n >= 0 && r[n].children.length > this._maxEntries; )
1482
+ for (s.children.push(e), j(s, i); n >= 0 && r[n].children.length > this._maxEntries; )
1449
1483
  this._split(r, n), n--;
1450
1484
  this._adjustParentBBoxes(i, r, n);
1451
1485
  }
@@ -1453,50 +1487,50 @@ class an {
1453
1487
  _split(e, n) {
1454
1488
  const o = e[n], i = o.children.length, r = this._minEntries;
1455
1489
  this._chooseSplitAxis(o, r, i);
1456
- const s = this._chooseSplitIndex(o, r, i), a = z(o.children.splice(s, o.children.length - s));
1457
- a.height = o.height, a.leaf = o.leaf, P(o, this.toBBox), P(a, this.toBBox), n ? e[n - 1].children.push(a) : this._splitRoot(o, a);
1490
+ const s = this._chooseSplitIndex(o, r, i), a = F(o.children.splice(s, o.children.length - s));
1491
+ a.height = o.height, a.leaf = o.leaf, z(o, this.toBBox), z(a, this.toBBox), n ? e[n - 1].children.push(a) : this._splitRoot(o, a);
1458
1492
  }
1459
1493
  _splitRoot(e, n) {
1460
- this.data = z([e, n]), this.data.height = e.height + 1, this.data.leaf = !1, P(this.data, this.toBBox);
1494
+ this.data = F([e, n]), this.data.height = e.height + 1, this.data.leaf = !1, z(this.data, this.toBBox);
1461
1495
  }
1462
1496
  _chooseSplitIndex(e, n, o) {
1463
1497
  let i, r = 1 / 0, s = 1 / 0;
1464
1498
  for (let a = n; a <= o - n; a++) {
1465
- const u = W(e, 0, a, this.toBBox), h = W(e, a, o, this.toBBox), v = hn(u, h), c = st(u) + st(h);
1499
+ const u = q(e, 0, a, this.toBBox), h = q(e, a, o, this.toBBox), v = xn(u, h), c = ct(u) + ct(h);
1466
1500
  v < r ? (r = v, i = a, s = c < s ? c : s) : v === r && c < s && (s = c, i = a);
1467
1501
  }
1468
1502
  return i || o - n;
1469
1503
  }
1470
1504
  // sorts node children by the best axis for split
1471
1505
  _chooseSplitAxis(e, n, o) {
1472
- const i = e.leaf ? this.compareMinX : ln, r = e.leaf ? this.compareMinY : dn, s = this._allDistMargin(e, n, o, i), a = this._allDistMargin(e, n, o, r);
1506
+ const i = e.leaf ? this.compareMinX : vn, r = e.leaf ? this.compareMinY : yn, s = this._allDistMargin(e, n, o, i), a = this._allDistMargin(e, n, o, r);
1473
1507
  s < a && e.children.sort(i);
1474
1508
  }
1475
1509
  // total margin of all possible split distributions where each node is at least m full
1476
1510
  _allDistMargin(e, n, o, i) {
1477
1511
  e.children.sort(i);
1478
- const r = this.toBBox, s = W(e, 0, n, r), a = W(e, o - n, o, r);
1479
- let u = Q(s) + Q(a);
1512
+ const r = this.toBBox, s = q(e, 0, n, r), a = q(e, o - n, o, r);
1513
+ let u = Z(s) + Z(a);
1480
1514
  for (let h = n; h < o - n; h++) {
1481
1515
  const v = e.children[h];
1482
- q(s, e.leaf ? r(v) : v), u += Q(s);
1516
+ j(s, e.leaf ? r(v) : v), u += Z(s);
1483
1517
  }
1484
1518
  for (let h = o - n - 1; h >= n; h--) {
1485
1519
  const v = e.children[h];
1486
- q(a, e.leaf ? r(v) : v), u += Q(a);
1520
+ j(a, e.leaf ? r(v) : v), u += Z(a);
1487
1521
  }
1488
1522
  return u;
1489
1523
  }
1490
1524
  _adjustParentBBoxes(e, n, o) {
1491
1525
  for (let i = o; i >= 0; i--)
1492
- q(n[i], e);
1526
+ j(n[i], e);
1493
1527
  }
1494
1528
  _condense(e) {
1495
1529
  for (let n = e.length - 1, o; n >= 0; n--)
1496
- e[n].children.length === 0 ? n > 0 ? (o = e[n - 1].children, o.splice(o.indexOf(e[n]), 1)) : this.clear() : P(e[n], this.toBBox);
1530
+ e[n].children.length === 0 ? n > 0 ? (o = e[n - 1].children, o.splice(o.indexOf(e[n]), 1)) : this.clear() : z(e[n], this.toBBox);
1497
1531
  }
1498
1532
  }
1499
- function cn(t, e, n) {
1533
+ function bn(t, e, n) {
1500
1534
  if (!n)
1501
1535
  return e.indexOf(t);
1502
1536
  for (let o = 0; o < e.length; o++)
@@ -1504,46 +1538,46 @@ function cn(t, e, n) {
1504
1538
  return o;
1505
1539
  return -1;
1506
1540
  }
1507
- function P(t, e) {
1508
- W(t, 0, t.children.length, e, t);
1541
+ function z(t, e) {
1542
+ q(t, 0, t.children.length, e, t);
1509
1543
  }
1510
- function W(t, e, n, o, i) {
1511
- i || (i = z(null)), i.minX = 1 / 0, i.minY = 1 / 0, i.maxX = -1 / 0, i.maxY = -1 / 0;
1544
+ function q(t, e, n, o, i) {
1545
+ i || (i = F(null)), i.minX = 1 / 0, i.minY = 1 / 0, i.maxX = -1 / 0, i.maxY = -1 / 0;
1512
1546
  for (let r = e; r < n; r++) {
1513
1547
  const s = t.children[r];
1514
- q(i, t.leaf ? o(s) : s);
1548
+ j(i, t.leaf ? o(s) : s);
1515
1549
  }
1516
1550
  return i;
1517
1551
  }
1518
- function q(t, e) {
1552
+ function j(t, e) {
1519
1553
  return t.minX = Math.min(t.minX, e.minX), t.minY = Math.min(t.minY, e.minY), t.maxX = Math.max(t.maxX, e.maxX), t.maxY = Math.max(t.maxY, e.maxY), t;
1520
1554
  }
1521
- function ln(t, e) {
1555
+ function vn(t, e) {
1522
1556
  return t.minX - e.minX;
1523
1557
  }
1524
- function dn(t, e) {
1558
+ function yn(t, e) {
1525
1559
  return t.minY - e.minY;
1526
1560
  }
1527
- function st(t) {
1561
+ function ct(t) {
1528
1562
  return (t.maxX - t.minX) * (t.maxY - t.minY);
1529
1563
  }
1530
- function Q(t) {
1564
+ function Z(t) {
1531
1565
  return t.maxX - t.minX + (t.maxY - t.minY);
1532
1566
  }
1533
- function un(t, e) {
1567
+ function wn(t, e) {
1534
1568
  return (Math.max(e.maxX, t.maxX) - Math.min(e.minX, t.minX)) * (Math.max(e.maxY, t.maxY) - Math.min(e.minY, t.minY));
1535
1569
  }
1536
- function hn(t, e) {
1570
+ function xn(t, e) {
1537
1571
  const n = Math.max(t.minX, e.minX), o = Math.max(t.minY, e.minY), i = Math.min(t.maxX, e.maxX), r = Math.min(t.maxY, e.maxY);
1538
1572
  return Math.max(0, i - n) * Math.max(0, r - o);
1539
1573
  }
1540
- function at(t, e) {
1574
+ function lt(t, e) {
1541
1575
  return t.minX <= e.minX && t.minY <= e.minY && e.maxX <= t.maxX && e.maxY <= t.maxY;
1542
1576
  }
1543
- function J(t, e) {
1577
+ function tt(t, e) {
1544
1578
  return e.minX <= t.maxX && e.minY <= t.maxY && e.maxX >= t.minX && e.maxY >= t.minY;
1545
1579
  }
1546
- function z(t) {
1580
+ function F(t) {
1547
1581
  return {
1548
1582
  children: t,
1549
1583
  height: 1,
@@ -1554,27 +1588,27 @@ function z(t) {
1554
1588
  maxY: -1 / 0
1555
1589
  };
1556
1590
  }
1557
- function Rt(t, e, n, o, i) {
1591
+ function Bt(t, e, n, o, i) {
1558
1592
  const r = [e, n];
1559
1593
  for (; r.length; ) {
1560
1594
  if (n = r.pop(), e = r.pop(), n - e <= o)
1561
1595
  continue;
1562
1596
  const s = e + Math.ceil((n - e) / o / 2) * o;
1563
- rn(t, s, e, n, i), r.push(e, s, s, n);
1597
+ pn(t, s, e, n, i), r.push(e, s, s, n);
1564
1598
  }
1565
1599
  }
1566
- const fn = (t, e) => {
1567
- const n = new an(), o = /* @__PURE__ */ new Map(), i = (l, d) => {
1600
+ const An = (t, e) => {
1601
+ const n = new mn(), o = /* @__PURE__ */ new Map(), i = (l, d) => {
1568
1602
  const f = l.selector.flatMap((A) => {
1569
- const T = A.range instanceof Range && !A.range.collapsed && A.range.startContainer.nodeType === Node.TEXT_NODE && A.range.endContainer.nodeType === Node.TEXT_NODE ? A.range : Bt(A, e).range;
1603
+ const T = A.range instanceof Range && !A.range.collapsed && A.range.startContainer.nodeType === Node.TEXT_NODE && A.range.endContainer.nodeType === Node.TEXT_NODE ? A.range : Mt(A, e).range;
1570
1604
  return Array.from(T.getClientRects());
1571
- }), b = Zt(f).map(({ left: A, top: R, right: T, bottom: p }) => new DOMRect(A - d.left, R - d.top, T - A, p - R));
1605
+ }), b = oe(f).map(({ left: A, top: R, right: T, bottom: g }) => new DOMRect(A - d.left, R - d.top, T - A, g - R));
1572
1606
  return b.map((A) => {
1573
- const { x: R, y: T, width: p, height: S } = A;
1607
+ const { x: R, y: T, width: g, height: S } = A;
1574
1608
  return {
1575
1609
  minX: R,
1576
1610
  minY: T,
1577
- maxX: R + p,
1611
+ maxX: R + g,
1578
1612
  maxY: T + S,
1579
1613
  annotation: {
1580
1614
  id: l.annotation,
@@ -1608,16 +1642,16 @@ const fn = (t, e) => {
1608
1642
  if (f.length > 0)
1609
1643
  return f.sort((A, R) => b(A) - b(R)), f[0].annotation.id;
1610
1644
  }, m = (l) => {
1611
- const d = g(l);
1645
+ const d = p(l);
1612
1646
  if (d.length === 0)
1613
1647
  return;
1614
1648
  let f = d[0].left, b = d[0].top, A = d[0].right, R = d[0].bottom;
1615
1649
  for (let T = 1; T < d.length; T++) {
1616
- const p = d[T];
1617
- f = Math.min(f, p.left), b = Math.min(b, p.top), A = Math.max(A, p.right), R = Math.max(R, p.bottom);
1650
+ const g = d[T];
1651
+ f = Math.min(f, g.left), b = Math.min(b, g.top), A = Math.max(A, g.right), R = Math.max(R, g.bottom);
1618
1652
  }
1619
1653
  return new DOMRect(f, b, A - f, R - b);
1620
- }, g = (l) => {
1654
+ }, p = (l) => {
1621
1655
  const d = o.get(l);
1622
1656
  return d ? d[0].annotation.rects : [];
1623
1657
  };
@@ -1626,12 +1660,12 @@ const fn = (t, e) => {
1626
1660
  clear: s,
1627
1661
  getAt: c,
1628
1662
  getAnnotationBounds: m,
1629
- getAnnotationRects: g,
1663
+ getAnnotationRects: p,
1630
1664
  getIntersecting: (l, d, f, b) => {
1631
- const A = n.search({ minX: l, minY: d, maxX: f, maxY: b }), R = new Set(A.reduce((T, p) => [...T, p.annotation.id], []));
1665
+ const A = n.search({ minX: l, minY: d, maxX: f, maxY: b }), R = new Set(A.reduce((T, g) => [...T, g.annotation.id], []));
1632
1666
  return Array.from(R).map((T) => ({
1633
1667
  annotation: t.getAnnotation(T),
1634
- rects: g(T)
1668
+ rects: p(T)
1635
1669
  })).filter((T) => !!T.annotation);
1636
1670
  },
1637
1671
  insert: a,
@@ -1641,41 +1675,41 @@ const fn = (t, e) => {
1641
1675
  size: () => n.all().length,
1642
1676
  update: h
1643
1677
  };
1644
- }, gn = (t, e) => {
1645
- const n = Xe(), o = fn(n, t), i = Re(n, e), r = Te(n), s = He(), a = (x, w = N.LOCAL) => {
1646
- const l = tt(x, t), d = k(l.target.selector);
1647
- return d && n.addAnnotation(l, w), d;
1648
- }, u = (x, w = !0, l = N.LOCAL) => {
1649
- const d = x.map((b) => tt(b, t)), f = d.filter((b) => !k(b.target.selector));
1650
- return f.length > 0 ? (console.warn("Could not revive all targets for these annotations:", f), n.bulkAddAnnotation(d, w, l), f) : (n.bulkAddAnnotation(d, w, l), []);
1651
- }, h = (x, w = N.LOCAL) => {
1652
- const l = x.map((f) => tt(f, t)), d = l.filter((f) => !k(f.target.selector));
1678
+ }, En = (t, e) => {
1679
+ const n = We(), o = An(n, t), i = Oe(n, e), r = Be(n), s = Ke(), a = (x, y = L.LOCAL) => {
1680
+ const l = nt(x, t), d = k(l.target.selector);
1681
+ return d && n.addAnnotation(l, y), d;
1682
+ }, u = (x, y = !0, l = L.LOCAL) => {
1683
+ const d = x.map((b) => nt(b, t)), f = d.filter((b) => !k(b.target.selector));
1684
+ return f.length > 0 ? (console.warn("Could not revive all targets for these annotations:", f), n.bulkAddAnnotation(d, y, l), f) : (n.bulkAddAnnotation(d, y, l), []);
1685
+ }, h = (x, y = L.LOCAL) => {
1686
+ const l = x.map((f) => nt(f, t)), d = l.filter((f) => !k(f.target.selector));
1653
1687
  return d.length > 0 && console.warn("Could not revive all targets for these annotations:", d), l.forEach((f) => {
1654
- n.getAnnotation(f.id) ? n.updateAnnotation(f, w) : n.addAnnotation(f, w);
1688
+ n.getAnnotation(f.id) ? n.updateAnnotation(f, y) : n.addAnnotation(f, y);
1655
1689
  }), d;
1656
- }, v = (x, w = N.LOCAL) => {
1657
- const l = Z(x, t);
1658
- n.updateTarget(l, w);
1659
- }, c = (x, w = N.LOCAL) => {
1660
- const l = x.map((d) => Z(d, t));
1661
- n.bulkUpdateTargets(l, w);
1662
- }, m = (x, w) => {
1663
- const l = o.getAt(x, w);
1690
+ }, v = (x, y = L.LOCAL) => {
1691
+ const l = et(x, t);
1692
+ n.updateTarget(l, y);
1693
+ }, c = (x, y = L.LOCAL) => {
1694
+ const l = x.map((d) => et(d, t));
1695
+ n.bulkUpdateTargets(l, y);
1696
+ }, m = (x, y) => {
1697
+ const l = o.getAt(x, y);
1664
1698
  return l ? n.getAnnotation(l) : void 0;
1665
- }, g = (x, w, l, d = 5) => {
1699
+ }, p = (x, y, l, d = 5) => {
1666
1700
  const f = o.getAnnotationRects(x);
1667
1701
  if (f.length !== 0) {
1668
- if (w && l) {
1669
- const b = f.find(({ top: A, right: R, bottom: T, left: p }) => w >= p - d && w <= R + d && l >= A - d && l <= T + d);
1702
+ if (y && l) {
1703
+ const b = f.find(({ top: A, right: R, bottom: T, left: g }) => y >= g - d && y <= R + d && l >= A - d && l <= T + d);
1670
1704
  if (b)
1671
1705
  return b;
1672
1706
  }
1673
1707
  return o.getAnnotationBounds(x);
1674
1708
  }
1675
- }, y = () => o.recalculate();
1709
+ }, w = () => o.recalculate();
1676
1710
  return n.observe(({ changes: x }) => {
1677
- const w = (x.created || []).filter((f) => k(f.target.selector)), l = (x.deleted || []).filter((f) => k(f.target.selector)), d = (x.updated || []).filter((f) => k(f.newValue.target.selector));
1678
- w.length > 0 && o.set(w.map((f) => f.target), !1), (l == null ? void 0 : l.length) > 0 && l.forEach((f) => o.remove(f.target)), (d == null ? void 0 : d.length) > 0 && d.forEach(({ newValue: f }) => o.update(f.target));
1711
+ const y = (x.created || []).filter((f) => k(f.target.selector)), l = (x.deleted || []).filter((f) => k(f.target.selector)), d = (x.updated || []).filter((f) => k(f.newValue.target.selector));
1712
+ y.length > 0 && o.set(y.map((f) => f.target), !1), (l == null ? void 0 : l.length) > 0 && l.forEach((f) => o.remove(f.target)), (d == null ? void 0 : d.length) > 0 && d.forEach(({ newValue: f }) => o.update(f.target));
1679
1713
  }), {
1680
1714
  store: {
1681
1715
  ...n,
@@ -1683,27 +1717,27 @@ const fn = (t, e) => {
1683
1717
  bulkAddAnnotation: u,
1684
1718
  bulkUpdateTargets: c,
1685
1719
  bulkUpsertAnnotations: h,
1686
- getAnnotationBounds: g,
1720
+ getAnnotationBounds: p,
1687
1721
  getAt: m,
1688
1722
  getIntersecting: o.getIntersecting,
1689
- recalculatePositions: y,
1723
+ recalculatePositions: w,
1690
1724
  updateTarget: v
1691
1725
  },
1692
1726
  selection: i,
1693
1727
  hover: r,
1694
1728
  viewport: s
1695
1729
  };
1696
- }, pn = () => {
1730
+ }, Sn = () => {
1697
1731
  const t = document.createElement("canvas");
1698
1732
  t.width = 2 * window.innerWidth, t.height = 2 * window.innerHeight, t.className = "r6o-highlight-layer presence";
1699
1733
  const e = t.getContext("2d");
1700
1734
  return e.scale(2, 2), e.translate(0.5, 0.5), t;
1701
- }, mn = (t, e, n = {}) => {
1702
- const o = pn(), i = o.getContext("2d");
1735
+ }, Cn = (t, e, n = {}) => {
1736
+ const o = Sn(), i = o.getContext("2d");
1703
1737
  t.appendChild(o);
1704
- const r = /* @__PURE__ */ new Map(), s = (c) => Array.from(r.entries()).filter(([m, g]) => g.presenceKey === c.presenceKey).map(([m, g]) => m);
1738
+ const r = /* @__PURE__ */ new Map(), s = (c) => Array.from(r.entries()).filter(([m, p]) => p.presenceKey === c.presenceKey).map(([m, p]) => m);
1705
1739
  return e.on("selectionChange", (c, m) => {
1706
- s(c).forEach((y) => r.delete(y)), m && m.forEach((y) => r.set(y, c));
1740
+ s(c).forEach((w) => r.delete(w)), m && m.forEach((w) => r.set(w, c));
1707
1741
  }), {
1708
1742
  clear: () => {
1709
1743
  const { width: c, height: m } = o;
@@ -1712,16 +1746,16 @@ const fn = (t, e) => {
1712
1746
  destroy: () => {
1713
1747
  o.remove();
1714
1748
  },
1715
- paint: (c, m, g) => {
1749
+ paint: (c, m, p) => {
1716
1750
  n.font && (i.font = n.font);
1717
- const y = r.get(c.annotation.id);
1718
- if (y) {
1719
- const { height: x } = c.rects[0], w = c.rects[0].x + m.left, l = c.rects[0].y + m.top;
1720
- i.fillStyle = y.appearance.color, i.fillRect(w - 2, l - 2.5, 2, x + 5);
1721
- const d = i.measureText(y.appearance.label), f = d.width + 6, b = d.actualBoundingBoxAscent + d.actualBoundingBoxDescent + 8, A = d.fontBoundingBoxAscent ? 8 : 6.5;
1722
- return i.fillRect(w - 2, l - 2.5 - b, f, b), i.fillStyle = "#fff", i.fillText(y.appearance.label, w + 1, l - A), {
1723
- fill: y.appearance.color,
1724
- fillOpacity: g ? 0.45 : 0.18
1751
+ const w = r.get(c.annotation.id);
1752
+ if (w) {
1753
+ const { height: x } = c.rects[0], y = c.rects[0].x + m.left, l = c.rects[0].y + m.top;
1754
+ i.fillStyle = w.appearance.color, i.fillRect(y - 2, l - 2.5, 2, x + 5);
1755
+ const d = i.measureText(w.appearance.label), f = d.width + 6, b = d.actualBoundingBoxAscent + d.actualBoundingBoxDescent + 8, A = d.fontBoundingBoxAscent ? 8 : 6.5;
1756
+ return i.fillRect(y - 2, l - 2.5 - b, f, b), i.fillStyle = "#fff", i.fillText(w.appearance.label, y + 1, l - A), {
1757
+ fill: w.appearance.color,
1758
+ fillOpacity: p ? 0.45 : 0.18
1725
1759
  };
1726
1760
  }
1727
1761
  },
@@ -1731,28 +1765,28 @@ const fn = (t, e) => {
1731
1765
  c.scale(2, 2), c.translate(0.5, 0.5);
1732
1766
  }
1733
1767
  };
1734
- }, kt = (t) => {
1768
+ }, $t = (t) => {
1735
1769
  if (t === null)
1736
1770
  return document.scrollingElement;
1737
1771
  const { overflowY: e } = window.getComputedStyle(t);
1738
- return e !== "visible" && e !== "hidden" && t.scrollHeight > t.clientHeight ? t : kt(t.parentElement);
1739
- }, bn = (t, e) => (n) => {
1772
+ return e !== "visible" && e !== "hidden" && t.scrollHeight > t.clientHeight ? t : $t(t.parentElement);
1773
+ }, Tn = (t, e) => (n) => {
1740
1774
  const o = (r) => {
1741
- const s = i.getBoundingClientRect(), a = i.clientHeight, u = i.clientWidth, h = r.selector[0].range.getBoundingClientRect(), { width: v, height: c } = e.getAnnotationBounds(n.id), m = h.top - s.top, g = h.left - s.left, y = i.parentElement ? i.scrollTop : 0, x = i.parentElement ? i.scrollLeft : 0, w = m + y - (a - c) / 2, l = g + x - (u - v) / 2;
1742
- i.scroll({ top: w, left: l, behavior: "smooth" });
1743
- }, i = kt(t);
1775
+ const s = i.getBoundingClientRect(), a = i.clientHeight, u = i.clientWidth, h = r.selector[0].range.getBoundingClientRect(), { width: v, height: c } = e.getAnnotationBounds(n.id), m = h.top - s.top, p = h.left - s.left, w = i.parentElement ? i.scrollTop : 0, x = i.parentElement ? i.scrollLeft : 0, y = m + w - (a - c) / 2, l = p + x - (u - v) / 2;
1776
+ i.scroll({ top: y, left: l, behavior: "smooth" });
1777
+ }, i = $t(t);
1744
1778
  if (i) {
1745
1779
  const r = e.getAnnotation(n.id), { range: s } = r.target.selector[0];
1746
1780
  if (s && !s.collapsed)
1747
1781
  return o(r.target), !0;
1748
1782
  {
1749
- const a = Z(r.target, t), { range: u } = a.selector[0];
1783
+ const a = et(r.target, t), { range: u } = a.selector[0];
1750
1784
  if (u && !u.collapsed)
1751
1785
  return o(a), !0;
1752
1786
  }
1753
1787
  }
1754
1788
  return !1;
1755
- }, vn = (t, e, n) => {
1789
+ }, Rn = (t, e, n) => {
1756
1790
  const { store: o, selection: i } = e;
1757
1791
  let r, s;
1758
1792
  const a = (x) => r = x;
@@ -1761,26 +1795,26 @@ const fn = (t, e) => {
1761
1795
  var l;
1762
1796
  if (!u)
1763
1797
  return;
1764
- !((l = x.target.parentElement) != null && l.closest(H)) ? s = {
1765
- annotation: Vt(),
1798
+ !((l = x.target.parentElement) != null && l.closest(Y)) ? s = {
1799
+ annotation: Xt(),
1766
1800
  selector: [],
1767
1801
  creator: r,
1768
1802
  created: /* @__PURE__ */ new Date()
1769
1803
  } : s = void 0;
1770
1804
  };
1771
1805
  t.addEventListener("selectstart", v);
1772
- const c = ut((x) => {
1773
- const w = document.getSelection();
1774
- if (x.timeStamp - ((h == null ? void 0 : h.timeStamp) || x.timeStamp) < 1e3 && !s && v(h), w.isCollapsed || !u || !s)
1806
+ const c = ft((x) => {
1807
+ const y = document.getSelection();
1808
+ if (x.timeStamp - ((h == null ? void 0 : h.timeStamp) || x.timeStamp) < 1e3 && !s && v(h), y.isCollapsed || !u || !s)
1775
1809
  return;
1776
- const l = w.getRangeAt(0), d = ee(l.cloneRange()), f = qt(d);
1810
+ const l = y.getRangeAt(0), d = re(l.cloneRange()), f = Qt(d);
1777
1811
  (f.length !== s.selector.length || f.some((A, R) => {
1778
1812
  var T;
1779
1813
  return A.toString() !== ((T = s.selector[R]) == null ? void 0 : T.quote);
1780
1814
  })) && (s = {
1781
1815
  ...s,
1782
- selector: f.map((A) => te(A, t, n))
1783
- }, o.getAnnotation(s.annotation) ? o.updateTarget(s, N.LOCAL) : (o.addAnnotation({
1816
+ selector: f.map((A) => ie(A, t, n))
1817
+ }, o.getAnnotation(s.annotation) ? o.updateTarget(s, L.LOCAL) : (o.addAnnotation({
1784
1818
  id: s.annotation,
1785
1819
  bodies: [],
1786
1820
  target: s
@@ -1788,13 +1822,13 @@ const fn = (t, e) => {
1788
1822
  });
1789
1823
  document.addEventListener("selectionchange", c);
1790
1824
  const m = (x) => {
1791
- const { target: w, timeStamp: l, offsetX: d, offsetY: f, type: b } = x;
1792
- h = { ...x, target: w, timeStamp: l, offsetX: d, offsetY: f, type: b }, u = x.button === 0;
1825
+ const { target: y, timeStamp: l, offsetX: d, offsetY: f, type: b } = x;
1826
+ h = { ...x, target: y, timeStamp: l, offsetX: d, offsetY: f, type: b }, u = x.button === 0;
1793
1827
  };
1794
1828
  t.addEventListener("pointerdown", m);
1795
- const g = (x) => {
1829
+ const p = (x) => {
1796
1830
  var f;
1797
- if (!!((f = x.target.parentElement) != null && f.closest(H)) || !u)
1831
+ if (!!((f = x.target.parentElement) != null && f.closest(Y)) || !u)
1798
1832
  return;
1799
1833
  const l = () => {
1800
1834
  const { x: b, y: A } = t.getBoundingClientRect(), R = o.getAt(x.clientX - b, x.clientY - A);
@@ -1806,27 +1840,23 @@ const fn = (t, e) => {
1806
1840
  }, d = x.timeStamp - h.timeStamp;
1807
1841
  document.getSelection().isCollapsed && d < 300 ? (s = void 0, l()) : s && i.clickSelect(s.annotation, x);
1808
1842
  };
1809
- return document.addEventListener("pointerup", g), {
1843
+ return document.addEventListener("pointerup", p), {
1810
1844
  destroy: () => {
1811
- t.removeEventListener("selectstart", v), document.removeEventListener("selectionchange", c), t.removeEventListener("pointerdown", m), document.removeEventListener("pointerup", g);
1845
+ t.removeEventListener("selectstart", v), document.removeEventListener("selectionchange", c), t.removeEventListener("pointerdown", m), document.removeEventListener("pointerup", p);
1812
1846
  },
1813
1847
  setUser: a
1814
1848
  };
1815
- }, Lt = "SPANS", An = (t, e = {}) => {
1849
+ }, Ot = "SPANS", On = (t, e = {}) => {
1816
1850
  t.addEventListener("click", (A) => !A.target.closest("a") && A.preventDefault());
1817
- const n = gn(t, e.pointerAction), { selection: o, viewport: i } = n, r = n.store, s = De(r), a = $e(
1818
- n,
1819
- s,
1820
- e.adapter
1821
- );
1822
- let u = Ke();
1823
- const h = e.renderer === "CSS_HIGHLIGHTS" ? CSS.highlights ? "CSS_HIGHLIGHTS" : Lt : e.renderer || Lt, v = h === "SPANS" ? ye(t, n, i) : h === "CSS_HIGHLIGHTS" ? be(t, n, i) : h === "CANVAS" ? ae(t, n, i) : void 0;
1851
+ const n = En(t, e.pointerAction), { selection: o, viewport: i } = n, r = n.store, s = Ge(r), a = Qe(n, s, e.adapter);
1852
+ let u = sn();
1853
+ const h = e.renderer === "CSS_HIGHLIGHTS" ? CSS.highlights ? "CSS_HIGHLIGHTS" : Ot : e.renderer || Ot, v = h === "SPANS" ? Se(t, n, i) : h === "CSS_HIGHLIGHTS" ? xe(t, n, i) : h === "CANVAS" ? ue(t, n, i) : void 0;
1824
1854
  if (!v)
1825
1855
  throw `Unknown renderer implementation: ${h}`;
1826
1856
  console.debug(`Using ${h} renderer`), e.style && v.setStyle(e.style);
1827
- const c = vn(t, n, e.offsetReferenceSelector);
1857
+ const c = Rn(t, n, e.offsetReferenceSelector);
1828
1858
  return c.setUser(u), {
1829
- ...ze(n, s, e.adapter),
1859
+ ...Ze(n, s, e.adapter),
1830
1860
  destroy: () => {
1831
1861
  v.destroy(), c.destroy(), s.destroy();
1832
1862
  },
@@ -1841,43 +1871,45 @@ const fn = (t, e) => {
1841
1871
  A ? o.setSelected(A) : o.clear();
1842
1872
  },
1843
1873
  setPresenceProvider: (A) => {
1844
- A && (v.setPainter(mn(t, A, e.presence)), A.on("selectionChange", () => v.redraw()));
1874
+ A && (v.setPainter(Cn(t, A, e.presence)), A.on("selectionChange", () => v.redraw()));
1845
1875
  },
1846
1876
  setVisible: (A) => v.setVisible(A),
1847
1877
  on: a.on,
1848
1878
  off: a.off,
1849
- scrollIntoView: bn(t, r),
1879
+ scrollIntoView: Tn(t, r),
1850
1880
  state: n
1851
1881
  };
1852
- };
1882
+ }, In = Dt, Mn = De, Un = L;
1853
1883
  export {
1854
- dt as DEFAULT_SELECTED_STYLE,
1855
- D as DEFAULT_STYLE,
1856
- Nt as NOT_ANNOTATABLE_CLASS,
1857
- H as NOT_ANNOTATABLE_SELECTOR,
1858
- N as Origin,
1859
- xn as W3CTextFormat,
1860
- ae as createCanvasRenderer,
1861
- be as createHighlightsRenderer,
1862
- me as createRenderer,
1863
- ye as createSpansRenderer,
1864
- An as createTextAnnotator,
1865
- gn as createTextAnnotatorState,
1866
- ut as debounce,
1867
- wn as getAnnotatableFragment,
1868
- yn as getClientRectsPonyfill,
1869
- Kt as getQuoteContext,
1870
- ct as getRangeAnnotatableContents,
1884
+ ht as DEFAULT_SELECTED_STYLE,
1885
+ $ as DEFAULT_STYLE,
1886
+ It as NOT_ANNOTATABLE_CLASS,
1887
+ Y as NOT_ANNOTATABLE_SELECTOR,
1888
+ Un as Origin,
1889
+ In as PointerSelectAction,
1890
+ Bn as W3CTextFormat,
1891
+ Mn as createBody,
1892
+ ue as createCanvasRenderer,
1893
+ xe as createHighlightsRenderer,
1894
+ we as createRenderer,
1895
+ Se as createSpansRenderer,
1896
+ On as createTextAnnotator,
1897
+ En as createTextAnnotatorState,
1898
+ ft as debounce,
1899
+ Nn as getAnnotatableFragment,
1900
+ Ln as getClientRectsPonyfill,
1901
+ te as getQuoteContext,
1902
+ dt as getRangeAnnotatableContents,
1871
1903
  k as isRevived,
1872
- Zt as mergeClientRects,
1873
- zt as paint,
1874
- nn as parseW3CTextAnnotation,
1875
- te as rangeToSelector,
1876
- tt as reviveAnnotation,
1877
- Bt as reviveSelector,
1878
- Z as reviveTarget,
1879
- on as serializeW3CTextAnnotation,
1880
- qt as splitAnnotatableRanges,
1881
- ee as trimRange
1904
+ oe as mergeClientRects,
1905
+ jt as paint,
1906
+ hn as parseW3CTextAnnotation,
1907
+ ie as rangeToSelector,
1908
+ nt as reviveAnnotation,
1909
+ Mt as reviveSelector,
1910
+ et as reviveTarget,
1911
+ fn as serializeW3CTextAnnotation,
1912
+ Qt as splitAnnotatableRanges,
1913
+ re as trimRange
1882
1914
  };
1883
1915
  //# sourceMappingURL=text-annotator.es.js.map