@soomo/text-annotator 3.0.0-staging.24 → 3.0.0-staging.26

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