@annotorious/core 3.4.4 → 3.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var M = Object.prototype.hasOwnProperty;
1
+ var W = Object.prototype.hasOwnProperty;
2
2
  function N(e, t) {
3
3
  var n, o;
4
4
  if (e === t) return !0;
@@ -13,7 +13,7 @@ function N(e, t) {
13
13
  if (!n || typeof e == "object") {
14
14
  o = 0;
15
15
  for (n in e)
16
- if (M.call(e, n) && ++o && !M.call(t, n) || !(n in t) || !N(e[n], t[n])) return !1;
16
+ if (W.call(e, n) && ++o && !W.call(t, n) || !(n in t) || !N(e[n], t[n])) return !1;
17
17
  return Object.keys(t).length === o;
18
18
  }
19
19
  }
@@ -25,11 +25,11 @@ function F(e, t) {
25
25
  return e != e ? t == t : e !== t || e && typeof e == "object" || typeof e == "function";
26
26
  }
27
27
  const z = [];
28
- function P(e, t = _) {
28
+ function H(e, t = _) {
29
29
  let n;
30
30
  const o = /* @__PURE__ */ new Set();
31
- function s(b) {
32
- if (F(e, b) && (e = b, n)) {
31
+ function s(v) {
32
+ if (F(e, v) && (e = v, n)) {
33
33
  const E = !z.length;
34
34
  for (const h of o)
35
35
  h[1](), z.push(h, e);
@@ -40,25 +40,25 @@ function P(e, t = _) {
40
40
  }
41
41
  }
42
42
  }
43
- function p(b) {
44
- s(b(e));
43
+ function p(v) {
44
+ s(v(e));
45
45
  }
46
- function A(b, E = _) {
47
- const h = [b, E];
48
- return o.add(h), o.size === 1 && (n = t(s, p) || _), b(e), () => {
46
+ function m(v, E = _) {
47
+ const h = [v, E];
48
+ return o.add(h), o.size === 1 && (n = t(s, p) || _), v(e), () => {
49
49
  o.delete(h), o.size === 0 && n && (n(), n = null);
50
50
  };
51
51
  }
52
- return { set: s, update: p, subscribe: A };
52
+ return { set: s, update: p, subscribe: m };
53
53
  }
54
54
  const Oe = (e) => {
55
- const { subscribe: t, set: n } = P();
55
+ const { subscribe: t, set: n } = H();
56
56
  let o;
57
57
  return t((s) => o = s), e.observe(({ changes: s }) => {
58
58
  if (o) {
59
- (s.deleted || []).some((b) => b.id === o) && n(void 0);
60
- const A = (s.updated || []).find(({ oldValue: b }) => b.id === o);
61
- A && n(A.newValue.id);
59
+ (s.deleted || []).some((v) => v.id === o) && n(void 0);
60
+ const m = (s.updated || []).find(({ oldValue: v }) => v.id === o);
61
+ m && n(m.newValue.id);
62
62
  }
63
63
  }), {
64
64
  get current() {
@@ -70,76 +70,77 @@ const Oe = (e) => {
70
70
  };
71
71
  var K = /* @__PURE__ */ ((e) => (e.EDIT = "EDIT", e.SELECT = "SELECT", e.NONE = "NONE", e))(K || {});
72
72
  const V = { selected: [] }, De = (e, t, n) => {
73
- const { subscribe: o, set: s } = P(V);
74
- let p = t, A = V;
75
- o((m) => A = m);
76
- const b = () => {
77
- N(A, V) || s(V);
73
+ const { subscribe: o, set: s } = H(V);
74
+ let p = t, m = V;
75
+ o((A) => m = A);
76
+ const v = () => {
77
+ N(m, V) || s(V);
78
78
  }, E = () => {
79
- var m;
80
- return ((m = A.selected) == null ? void 0 : m.length) === 0;
81
- }, h = (m) => {
79
+ var A;
80
+ return ((A = m.selected) == null ? void 0 : A.length) === 0;
81
+ }, h = (A) => {
82
82
  if (E())
83
83
  return !1;
84
- const C = typeof m == "string" ? m : m.id;
85
- return A.selected.some((T) => T.id === C);
86
- }, S = (m, C) => {
87
- let T;
88
- if (Array.isArray(m)) {
89
- if (T = m.map((d) => e.getAnnotation(d)).filter(Boolean), T.length < m.length) {
90
- console.warn("Invalid selection: " + m.filter((d) => !T.some((g) => g.id === d)));
84
+ const L = typeof A == "string" ? A : A.id;
85
+ return m.selected.some((c) => c.id === L);
86
+ }, T = (A, L) => {
87
+ let c;
88
+ if (Array.isArray(A)) {
89
+ if (c = A.map((f) => e.getAnnotation(f)).filter(Boolean), c.length < A.length) {
90
+ console.warn("Invalid selection: " + A.filter((f) => !c.some((b) => b.id === f)));
91
91
  return;
92
92
  }
93
93
  } else {
94
- const d = e.getAnnotation(m);
95
- if (!d) {
96
- console.warn("Invalid selection: " + m);
94
+ const f = e.getAnnotation(A);
95
+ if (!f) {
96
+ console.warn("Invalid selection: " + A);
97
97
  return;
98
98
  }
99
- T = [d];
99
+ c = [f];
100
100
  }
101
- const a = T.reduce((d, g) => {
102
- const v = W(g, p, n);
103
- return v === "EDIT" ? [...d, { id: g.id, editable: !0 }] : v === "SELECT" ? [...d, { id: g.id }] : d;
101
+ const u = c.reduce((f, b) => {
102
+ const d = Y(b, p, n);
103
+ return d === "EDIT" ? [...f, { id: b.id, editable: !0 }] : d === "SELECT" ? [...f, { id: b.id }] : f;
104
104
  }, []);
105
- s({ selected: a, event: C });
106
- }, l = (m, C) => {
107
- const T = Array.isArray(m) ? m : [m], a = T.map((d) => e.getAnnotation(d)).filter((d) => !!d);
105
+ s({ selected: u, event: L });
106
+ }, a = (A, L) => {
107
+ const c = Array.isArray(A) ? A : [A], u = c.map((f) => e.getAnnotation(f)).filter((f) => !!f);
108
108
  s({
109
- selected: a.map((d) => {
110
- const g = C === void 0 ? W(d, p, n) === "EDIT" : C;
111
- return { id: d.id, editable: g };
109
+ selected: u.map((f) => {
110
+ const b = L === void 0 ? Y(f, p, n) === "EDIT" : L;
111
+ return { id: f.id, editable: b };
112
112
  })
113
- }), a.length !== T.length && console.warn("Invalid selection", m);
114
- }, w = (m) => {
113
+ }), u.length !== c.length && console.warn("Invalid selection", A);
114
+ }, w = (A) => {
115
115
  if (E())
116
116
  return !1;
117
- const { selected: C } = A;
118
- C.some(({ id: a }) => m.includes(a)) && s({ selected: C.filter(({ id: a }) => !m.includes(a)) });
119
- }, D = (m) => {
120
- p = m, l(A.selected.map(({ id: C }) => C));
121
- };
117
+ const { selected: L } = m;
118
+ L.some(({ id: u }) => A.includes(u)) && s({ selected: L.filter(({ id: u }) => !A.includes(u)) });
119
+ }, D = (A) => {
120
+ p = A, a(m.selected.map(({ id: L }) => L));
121
+ }, y = (A) => Y(A, p, n);
122
122
  return e.observe(
123
- ({ changes: m }) => w((m.deleted || []).map((C) => C.id))
123
+ ({ changes: A }) => w((A.deleted || []).map((L) => L.id))
124
124
  ), {
125
125
  get event() {
126
- return A ? A.event : null;
126
+ return m ? m.event : null;
127
127
  },
128
128
  get selected() {
129
- return A ? [...A.selected] : null;
129
+ return m ? [...m.selected] : null;
130
130
  },
131
131
  get userSelectAction() {
132
132
  return p;
133
133
  },
134
- clear: b,
134
+ clear: v,
135
+ evalSelectAction: y,
135
136
  isEmpty: E,
136
137
  isSelected: h,
137
- setSelected: l,
138
+ setSelected: a,
138
139
  setUserSelectAction: D,
139
140
  subscribe: o,
140
- userSelect: S
141
+ userSelect: T
141
142
  };
142
- }, W = (e, t, n) => {
143
+ }, Y = (e, t, n) => {
143
144
  const o = n ? n.serialize(e) : e;
144
145
  return typeof t == "function" ? t(o) : t || "EDIT";
145
146
  }, R = [];
@@ -148,15 +149,15 @@ for (let e = 0; e < 256; ++e)
148
149
  function ee(e, t = 0) {
149
150
  return (R[e[t + 0]] + R[e[t + 1]] + R[e[t + 2]] + R[e[t + 3]] + "-" + R[e[t + 4]] + R[e[t + 5]] + "-" + R[e[t + 6]] + R[e[t + 7]] + "-" + R[e[t + 8]] + R[e[t + 9]] + "-" + R[e[t + 10]] + R[e[t + 11]] + R[e[t + 12]] + R[e[t + 13]] + R[e[t + 14]] + R[e[t + 15]]).toLowerCase();
150
151
  }
151
- let Y;
152
+ let j;
152
153
  const te = new Uint8Array(16);
153
154
  function ne() {
154
- if (!Y) {
155
+ if (!j) {
155
156
  if (typeof crypto > "u" || !crypto.getRandomValues)
156
157
  throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
157
- Y = crypto.getRandomValues.bind(crypto);
158
+ j = crypto.getRandomValues.bind(crypto);
158
159
  }
159
- return Y(te);
160
+ return j(te);
160
161
  }
161
162
  const oe = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), q = { randomUUID: oe };
162
163
  function G(e, t, n) {
@@ -176,7 +177,7 @@ const Be = (e) => {
176
177
  n,
177
178
  ...o
178
179
  ].filter((s) => s);
179
- }, j = (e) => {
180
+ }, P = (e) => {
180
181
  const t = (n) => {
181
182
  const o = { ...n };
182
183
  return n.created && typeof n.created == "string" && (o.created = new Date(n.created)), n.updated && typeof n.updated == "string" && (o.updated = new Date(n.updated)), o;
@@ -214,46 +215,46 @@ const Be = (e) => {
214
215
  };
215
216
  var ce = /* @__PURE__ */ ((e) => (e.BODY_ONLY = "BODY_ONLY", e.TARGET_ONLY = "TARGET_ONLY", e))(ce || {}), O = /* @__PURE__ */ ((e) => (e.LOCAL = "LOCAL", e.REMOTE = "REMOTE", e.SILENT = "SILENT", e))(O || {});
216
217
  const ae = (e, t) => {
217
- var p, A;
218
+ var p, m;
218
219
  const { changes: n, origin: o } = t;
219
220
  if (!(e.options.origin ? e.options.origin === o : o !== "SILENT"))
220
221
  return !1;
221
222
  if (e.options.ignore) {
222
- const { ignore: b } = e.options, E = (S) => S && S.length > 0;
223
+ const { ignore: v } = e.options, E = (T) => T && T.length > 0;
223
224
  if (!(E(n.created) || E(n.deleted))) {
224
- const S = (p = n.updated) == null ? void 0 : p.some((w) => E(w.bodiesCreated) || E(w.bodiesDeleted) || E(w.bodiesUpdated)), l = (A = n.updated) == null ? void 0 : A.some((w) => w.targetUpdated);
225
- if (b === "BODY_ONLY" && S && !l || b === "TARGET_ONLY" && l && !S)
225
+ const T = (p = n.updated) == null ? void 0 : p.some((w) => E(w.bodiesCreated) || E(w.bodiesDeleted) || E(w.bodiesUpdated)), a = (m = n.updated) == null ? void 0 : m.some((w) => w.targetUpdated);
226
+ if (v === "BODY_ONLY" && T && !a || v === "TARGET_ONLY" && a && !T)
226
227
  return !1;
227
228
  }
228
229
  }
229
230
  if (e.options.annotations) {
230
- const b = /* @__PURE__ */ new Set([
231
+ const v = /* @__PURE__ */ new Set([
231
232
  ...(n.created || []).map((h) => h.id),
232
233
  ...(n.deleted || []).map((h) => h.id),
233
234
  ...(n.updated || []).map(({ oldValue: h }) => h.id)
234
235
  ]);
235
- return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((h) => b.has(h));
236
+ return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((h) => v.has(h));
236
237
  } else
237
238
  return !0;
238
239
  }, le = (e, t) => {
239
- const n = new Set((e.created || []).map((l) => l.id)), o = new Set((e.updated || []).map(({ newValue: l }) => l.id)), s = new Set((t.created || []).map((l) => l.id)), p = new Set((t.deleted || []).map((l) => l.id)), A = new Set((t.updated || []).map(({ oldValue: l }) => l.id)), b = new Set((t.updated || []).filter(({ oldValue: l }) => n.has(l.id) || o.has(l.id)).map(({ oldValue: l }) => l.id)), E = [
240
- ...(e.created || []).filter((l) => !p.has(l.id)).map((l) => A.has(l.id) ? t.updated.find(({ oldValue: w }) => w.id === l.id).newValue : l),
240
+ const n = new Set((e.created || []).map((a) => a.id)), o = new Set((e.updated || []).map(({ newValue: a }) => a.id)), s = new Set((t.created || []).map((a) => a.id)), p = new Set((t.deleted || []).map((a) => a.id)), m = new Set((t.updated || []).map(({ oldValue: a }) => a.id)), v = new Set((t.updated || []).filter(({ oldValue: a }) => n.has(a.id) || o.has(a.id)).map(({ oldValue: a }) => a.id)), E = [
241
+ ...(e.created || []).filter((a) => !p.has(a.id)).map((a) => m.has(a.id) ? t.updated.find(({ oldValue: w }) => w.id === a.id).newValue : a),
241
242
  ...t.created || []
242
243
  ], h = [
243
- ...(e.deleted || []).filter((l) => !s.has(l.id)),
244
- ...(t.deleted || []).filter((l) => !n.has(l.id))
245
- ], S = [
246
- ...(e.updated || []).filter(({ newValue: l }) => !p.has(l.id)).map((l) => {
247
- const { oldValue: w, newValue: D } = l;
248
- if (A.has(D.id)) {
249
- const m = t.updated.find((C) => C.oldValue.id === D.id).newValue;
250
- return J(w, m);
244
+ ...(e.deleted || []).filter((a) => !s.has(a.id)),
245
+ ...(t.deleted || []).filter((a) => !n.has(a.id))
246
+ ], T = [
247
+ ...(e.updated || []).filter(({ newValue: a }) => !p.has(a.id)).map((a) => {
248
+ const { oldValue: w, newValue: D } = a;
249
+ if (m.has(D.id)) {
250
+ const y = t.updated.find((A) => A.oldValue.id === D.id).newValue;
251
+ return J(w, y);
251
252
  } else
252
- return l;
253
+ return a;
253
254
  }),
254
- ...(t.updated || []).filter(({ oldValue: l }) => !b.has(l.id))
255
+ ...(t.updated || []).filter(({ oldValue: a }) => !v.has(a.id))
255
256
  ];
256
- return { created: E, deleted: h, updated: S };
257
+ return { created: E, deleted: h, updated: T };
257
258
  }, $ = (e) => {
258
259
  const t = e.id === void 0 ? G() : e.id;
259
260
  return {
@@ -272,10 +273,10 @@ const ae = (e, t) => {
272
273
  const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = [], o = (i, r = {}) => {
273
274
  n.push({ onChange: i, options: r });
274
275
  }, s = (i) => {
275
- const r = n.findIndex((u) => u.onChange == i);
276
+ const r = n.findIndex((l) => l.onChange == i);
276
277
  r > -1 && n.splice(r, 1);
277
278
  }, p = (i, r) => {
278
- const u = {
279
+ const l = {
279
280
  origin: i,
280
281
  changes: {
281
282
  created: r.created || [],
@@ -284,160 +285,160 @@ const ae = (e, t) => {
284
285
  },
285
286
  state: [...e.values()]
286
287
  };
287
- n.forEach((f) => {
288
- ae(f, u) && f.onChange(u);
288
+ n.forEach((g) => {
289
+ ae(g, l) && g.onChange(l);
289
290
  });
290
- }, A = (i, r = O.LOCAL) => {
291
+ }, m = (i, r = O.LOCAL) => {
291
292
  if (i.id && e.get(i.id))
292
293
  throw Error(`Cannot add annotation ${i.id} - exists already`);
293
294
  {
294
- const f = $(i);
295
- e.set(f.id, f), f.bodies.forEach((L) => t.set(L.id, f.id)), p(r, { created: [f] });
295
+ const g = $(i);
296
+ e.set(g.id, g), g.bodies.forEach((U) => t.set(U.id, g.id)), p(r, { created: [g] });
296
297
  }
297
- }, b = (i, r) => {
298
- const u = $(typeof i == "string" ? r : i), f = typeof i == "string" ? i : i.id, L = f && e.get(f);
299
- if (L) {
300
- const y = J(L, u);
301
- return f === u.id ? e.set(f, u) : (e.delete(f), e.set(u.id, u)), L.bodies.forEach((B) => t.delete(B.id)), u.bodies.forEach((B) => t.set(B.id, u.id)), y;
298
+ }, v = (i, r) => {
299
+ const l = $(typeof i == "string" ? r : i), g = typeof i == "string" ? i : i.id, U = g && e.get(g);
300
+ if (U) {
301
+ const C = J(U, l);
302
+ return g === l.id ? e.set(g, l) : (e.delete(g), e.set(l.id, l)), U.bodies.forEach((B) => t.delete(B.id)), l.bodies.forEach((B) => t.set(B.id, l.id)), C;
302
303
  } else
303
- console.warn(`Cannot update annotation ${f} - does not exist`);
304
- }, E = (i, r = O.LOCAL, u = O.LOCAL) => {
305
- const f = ue(r) ? u : r, L = b(i, r);
306
- L && p(f, { updated: [L] });
304
+ console.warn(`Cannot update annotation ${g} - does not exist`);
305
+ }, E = (i, r = O.LOCAL, l = O.LOCAL) => {
306
+ const g = ue(r) ? l : r, U = v(i, r);
307
+ U && p(g, { updated: [U] });
307
308
  }, h = (i, r = O.LOCAL) => {
308
- !!e.get(i.id) ? E(i, r) : A(i, r);
309
- }, S = (i, r = O.LOCAL) => {
310
- const u = i.reduce((f, L) => {
311
- const y = b(L);
312
- return y ? [...f, y] : f;
309
+ !!e.get(i.id) ? E(i, r) : m(i, r);
310
+ }, T = (i, r = O.LOCAL) => {
311
+ const l = i.reduce((g, U) => {
312
+ const C = v(U);
313
+ return C ? [...g, C] : g;
313
314
  }, []);
314
- u.length > 0 && p(r, { updated: u });
315
- }, l = (i, r = O.LOCAL) => {
316
- const u = i.map($), { toAdd: f, toUpdate: L } = u.reduce((B, I) => e.get(I.id) ? { ...B, toUpdate: [...B.toUpdate, I] } : { ...B, toAdd: [...B.toAdd, I] }, { toAdd: [], toUpdate: [] }), y = L.map((B) => b(B, r)).filter(Boolean);
317
- f.forEach((B) => {
315
+ l.length > 0 && p(r, { updated: l });
316
+ }, a = (i, r = O.LOCAL) => {
317
+ const l = i.map($), { toAdd: g, toUpdate: U } = l.reduce((B, I) => e.get(I.id) ? { ...B, toUpdate: [...B.toUpdate, I] } : { ...B, toAdd: [...B.toAdd, I] }, { toAdd: [], toUpdate: [] }), C = U.map((B) => v(B, r)).filter(Boolean);
318
+ g.forEach((B) => {
318
319
  e.set(B.id, B), B.bodies.forEach((I) => t.set(I.id, B.id));
319
- }), p(r, { created: f, updated: y });
320
+ }), p(r, { created: g, updated: C });
320
321
  }, w = (i, r = O.LOCAL) => {
321
- const u = e.get(i.annotation);
322
- if (u) {
323
- const f = {
324
- ...u,
325
- bodies: [...u.bodies, i]
322
+ const l = e.get(i.annotation);
323
+ if (l) {
324
+ const g = {
325
+ ...l,
326
+ bodies: [...l.bodies, i]
326
327
  };
327
- e.set(u.id, f), t.set(i.id, f.id), p(r, { updated: [{
328
- oldValue: u,
329
- newValue: f,
328
+ e.set(l.id, g), t.set(i.id, g.id), p(r, { updated: [{
329
+ oldValue: l,
330
+ newValue: g,
330
331
  bodiesCreated: [i]
331
332
  }] });
332
333
  } else
333
334
  console.warn(`Attempt to add body to missing annotation: ${i.annotation}`);
334
- }, D = () => [...e.values()], m = (i = O.LOCAL) => {
335
+ }, D = () => [...e.values()], y = (i = O.LOCAL) => {
335
336
  const r = [...e.values()];
336
337
  e.clear(), t.clear(), p(i, { deleted: r });
337
- }, C = (i, r = !0, u = O.LOCAL) => {
338
- const f = i.map($);
338
+ }, A = (i, r = !0, l = O.LOCAL) => {
339
+ const g = i.map($);
339
340
  if (r) {
340
- const L = [...e.values()];
341
- e.clear(), t.clear(), f.forEach((y) => {
342
- e.set(y.id, y), y.bodies.forEach((B) => t.set(B.id, y.id));
343
- }), p(u, { created: f, deleted: L });
341
+ const U = [...e.values()];
342
+ e.clear(), t.clear(), g.forEach((C) => {
343
+ e.set(C.id, C), C.bodies.forEach((B) => t.set(B.id, C.id));
344
+ }), p(l, { created: g, deleted: U });
344
345
  } else {
345
- const L = i.reduce((y, B) => {
346
+ const U = i.reduce((C, B) => {
346
347
  const I = B.id && e.get(B.id);
347
- return I ? [...y, I] : y;
348
+ return I ? [...C, I] : C;
348
349
  }, []);
349
- if (L.length > 0)
350
- throw Error(`Bulk insert would overwrite the following annotations: ${L.map((y) => y.id).join(", ")}`);
351
- f.forEach((y) => {
352
- e.set(y.id, y), y.bodies.forEach((B) => t.set(B.id, y.id));
353
- }), p(u, { created: f });
350
+ if (U.length > 0)
351
+ throw Error(`Bulk insert would overwrite the following annotations: ${U.map((C) => C.id).join(", ")}`);
352
+ g.forEach((C) => {
353
+ e.set(C.id, C), C.bodies.forEach((B) => t.set(B.id, C.id));
354
+ }), p(l, { created: g });
354
355
  }
355
- }, T = (i) => {
356
- const r = typeof i == "string" ? i : i.id, u = e.get(r);
357
- if (u)
358
- return e.delete(r), u.bodies.forEach((f) => t.delete(f.id)), u;
356
+ }, L = (i) => {
357
+ const r = typeof i == "string" ? i : i.id, l = e.get(r);
358
+ if (l)
359
+ return e.delete(r), l.bodies.forEach((g) => t.delete(g.id)), l;
359
360
  console.warn(`Attempt to delete missing annotation: ${r}`);
360
- }, a = (i, r = O.LOCAL) => {
361
- const u = T(i);
362
- u && p(r, { deleted: [u] });
363
- }, d = (i, r = O.LOCAL) => {
364
- const u = i.reduce((f, L) => {
365
- const y = T(L);
366
- return y ? [...f, y] : f;
361
+ }, c = (i, r = O.LOCAL) => {
362
+ const l = L(i);
363
+ l && p(r, { deleted: [l] });
364
+ }, u = (i, r = O.LOCAL) => {
365
+ const l = i.reduce((g, U) => {
366
+ const C = L(U);
367
+ return C ? [...g, C] : g;
367
368
  }, []);
368
- u.length > 0 && p(r, { deleted: u });
369
- }, g = (i) => {
369
+ l.length > 0 && p(r, { deleted: l });
370
+ }, f = (i) => {
370
371
  const r = e.get(i.annotation);
371
372
  if (r) {
372
- const u = r.bodies.find((f) => f.id === i.id);
373
- if (u) {
374
- t.delete(u.id);
375
- const f = {
373
+ const l = r.bodies.find((g) => g.id === i.id);
374
+ if (l) {
375
+ t.delete(l.id);
376
+ const g = {
376
377
  ...r,
377
- bodies: r.bodies.filter((y) => y.id !== i.id)
378
+ bodies: r.bodies.filter((C) => C.id !== i.id)
378
379
  };
379
- return e.set(r.id, f), {
380
+ return e.set(r.id, g), {
380
381
  oldValue: r,
381
- newValue: f,
382
- bodiesDeleted: [u]
382
+ newValue: g,
383
+ bodiesDeleted: [l]
383
384
  };
384
385
  } else
385
386
  console.warn(`Attempt to delete missing body ${i.id} from annotation ${i.annotation}`);
386
387
  } else
387
388
  console.warn(`Attempt to delete body from missing annotation ${i.annotation}`);
388
- }, v = (i, r = O.LOCAL) => {
389
- const u = g(i);
390
- u && p(r, { updated: [u] });
391
- }, c = (i, r = O.LOCAL) => {
392
- const u = i.map((f) => g(f)).filter(Boolean);
393
- u.length > 0 && p(r, { updated: u });
394
- }, U = (i) => {
389
+ }, b = (i, r = O.LOCAL) => {
390
+ const l = f(i);
391
+ l && p(r, { updated: [l] });
392
+ }, d = (i, r = O.LOCAL) => {
393
+ const l = i.map((g) => f(g)).filter(Boolean);
394
+ l.length > 0 && p(r, { updated: l });
395
+ }, S = (i) => {
395
396
  const r = e.get(i);
396
397
  return r ? { ...r } : void 0;
397
398
  }, x = (i) => {
398
399
  const r = t.get(i);
399
400
  if (r) {
400
- const f = U(r).bodies.find((L) => L.id === i);
401
- if (f)
402
- return f;
401
+ const g = S(r).bodies.find((U) => U.id === i);
402
+ if (g)
403
+ return g;
403
404
  console.error(`Store integrity error: body ${i} in index, but not in annotation`);
404
405
  } else
405
406
  console.warn(`Attempt to retrieve missing body: ${i}`);
406
407
  }, k = (i, r) => {
407
408
  if (i.annotation !== r.annotation)
408
409
  throw "Annotation integrity violation: annotation ID must be the same when updating bodies";
409
- const u = e.get(i.annotation);
410
- if (u) {
411
- const f = u.bodies.find((y) => y.id === i.id), L = {
412
- ...u,
413
- bodies: u.bodies.map((y) => y.id === f.id ? r : y)
410
+ const l = e.get(i.annotation);
411
+ if (l) {
412
+ const g = l.bodies.find((C) => C.id === i.id), U = {
413
+ ...l,
414
+ bodies: l.bodies.map((C) => C.id === g.id ? r : C)
414
415
  };
415
- return e.set(u.id, L), f.id !== r.id && (t.delete(f.id), t.set(r.id, L.id)), {
416
- oldValue: u,
417
- newValue: L,
418
- bodiesUpdated: [{ oldBody: f, newBody: r }]
416
+ return e.set(l.id, U), g.id !== r.id && (t.delete(g.id), t.set(r.id, U.id)), {
417
+ oldValue: l,
418
+ newValue: U,
419
+ bodiesUpdated: [{ oldBody: g, newBody: r }]
419
420
  };
420
421
  } else
421
422
  console.warn(`Attempt to add body to missing annotation ${i.annotation}`);
422
- }, X = (i, r, u = O.LOCAL) => {
423
- const f = k(i, r);
424
- f && p(u, { updated: [f] });
423
+ }, X = (i, r, l = O.LOCAL) => {
424
+ const g = k(i, r);
425
+ g && p(l, { updated: [g] });
425
426
  }, Z = (i, r = O.LOCAL) => {
426
- const u = i.map((f) => k({ id: f.id, annotation: f.annotation }, f)).filter(Boolean);
427
- p(r, { updated: u });
428
- }, H = (i) => {
427
+ const l = i.map((g) => k({ id: g.id, annotation: g.annotation }, g)).filter(Boolean);
428
+ p(r, { updated: l });
429
+ }, M = (i) => {
429
430
  const r = e.get(i.annotation);
430
431
  if (r) {
431
- const u = {
432
+ const l = {
432
433
  ...r,
433
434
  target: {
434
435
  ...r.target,
435
436
  ...i
436
437
  }
437
438
  };
438
- return e.set(r.id, u), {
439
+ return e.set(r.id, l), {
439
440
  oldValue: r,
440
- newValue: u,
441
+ newValue: l,
441
442
  targetUpdated: {
442
443
  oldTarget: r.target,
443
444
  newTarget: i
@@ -447,31 +448,31 @@ const ae = (e, t) => {
447
448
  console.warn(`Attempt to update target on missing annotation: ${i.annotation}`);
448
449
  };
449
450
  return {
450
- addAnnotation: A,
451
+ addAnnotation: m,
451
452
  addBody: w,
452
453
  all: D,
453
- bulkAddAnnotations: C,
454
- bulkDeleteAnnotations: d,
455
- bulkDeleteBodies: c,
456
- bulkUpdateAnnotations: S,
454
+ bulkAddAnnotations: A,
455
+ bulkDeleteAnnotations: u,
456
+ bulkDeleteBodies: d,
457
+ bulkUpdateAnnotations: T,
457
458
  bulkUpdateBodies: Z,
458
459
  bulkUpdateTargets: (i, r = O.LOCAL) => {
459
- const u = i.map((f) => H(f)).filter(Boolean);
460
- u.length > 0 && p(r, { updated: u });
460
+ const l = i.map((g) => M(g)).filter(Boolean);
461
+ l.length > 0 && p(r, { updated: l });
461
462
  },
462
- bulkUpsertAnnotations: l,
463
- clear: m,
464
- deleteAnnotation: a,
465
- deleteBody: v,
466
- getAnnotation: U,
463
+ bulkUpsertAnnotations: a,
464
+ clear: y,
465
+ deleteAnnotation: c,
466
+ deleteBody: b,
467
+ getAnnotation: S,
467
468
  getBody: x,
468
469
  observe: o,
469
470
  unobserve: s,
470
471
  updateAnnotation: E,
471
472
  updateBody: X,
472
473
  updateTarget: (i, r = O.LOCAL) => {
473
- const u = H(i);
474
- u && p(r, { updated: [u] });
474
+ const l = M(i);
475
+ l && p(r, { updated: [l] });
475
476
  },
476
477
  upsertAnnotation: h
477
478
  };
@@ -498,130 +499,130 @@ let Q = () => ({
498
499
  });
499
500
  const fe = 250, Ie = (e, t) => {
500
501
  const n = Q(), o = (t == null ? void 0 : t.changes) || [];
501
- let s = t ? t.pointer : -1, p = !1, A = 0;
502
- const b = (c) => {
502
+ let s = t ? t.pointer : -1, p = !1, m = 0;
503
+ const v = (d) => {
503
504
  if (!p) {
504
- const { changes: U } = c, x = performance.now();
505
- if (x - A > fe)
506
- o.splice(s + 1), o.push(U), s = o.length - 1;
505
+ const { changes: S } = d, x = performance.now();
506
+ if (x - m > fe)
507
+ o.splice(s + 1), o.push(S), s = o.length - 1;
507
508
  else {
508
509
  const k = o.length - 1;
509
- o[k] = le(o[k], U);
510
+ o[k] = le(o[k], S);
510
511
  }
511
- A = x;
512
+ m = x;
512
513
  }
513
514
  p = !1;
514
515
  };
515
- e.observe(b, { origin: O.LOCAL });
516
- const E = (c) => c && c.length > 0 && e.bulkDeleteAnnotations(c), h = (c) => c && c.length > 0 && e.bulkAddAnnotations(c, !1), S = (c) => c && c.length > 0 && e.bulkUpdateAnnotations(c.map(({ oldValue: U }) => U)), l = (c) => c && c.length > 0 && e.bulkUpdateAnnotations(c.map(({ newValue: U }) => U)), w = (c) => c && c.length > 0 && e.bulkAddAnnotations(c, !1), D = (c) => c && c.length > 0 && e.bulkDeleteAnnotations(c);
516
+ e.observe(v, { origin: O.LOCAL });
517
+ const E = (d) => d && d.length > 0 && e.bulkDeleteAnnotations(d), h = (d) => d && d.length > 0 && e.bulkAddAnnotations(d, !1), T = (d) => d && d.length > 0 && e.bulkUpdateAnnotations(d.map(({ oldValue: S }) => S)), a = (d) => d && d.length > 0 && e.bulkUpdateAnnotations(d.map(({ newValue: S }) => S)), w = (d) => d && d.length > 0 && e.bulkAddAnnotations(d, !1), D = (d) => d && d.length > 0 && e.bulkDeleteAnnotations(d);
517
518
  return {
518
519
  canRedo: () => o.length - 1 > s,
519
520
  canUndo: () => s > -1,
520
- destroy: () => e.unobserve(b),
521
+ destroy: () => e.unobserve(v),
521
522
  getHistory: () => ({ changes: [...o], pointer: s }),
522
- on: (c, U) => n.on(c, U),
523
+ on: (d, S) => n.on(d, S),
523
524
  redo: () => {
524
525
  if (o.length - 1 > s) {
525
526
  p = !0;
526
- const { created: c, updated: U, deleted: x } = o[s + 1];
527
- h(c), l(U), D(x), n.emit("redo", o[s + 1]), s += 1;
527
+ const { created: d, updated: S, deleted: x } = o[s + 1];
528
+ h(d), a(S), D(x), n.emit("redo", o[s + 1]), s += 1;
528
529
  }
529
530
  },
530
531
  undo: () => {
531
532
  if (s > -1) {
532
533
  p = !0;
533
- const { created: c, updated: U, deleted: x } = o[s];
534
- E(c), S(U), w(x), n.emit("undo", o[s]), s -= 1;
534
+ const { created: d, updated: S, deleted: x } = o[s];
535
+ E(d), T(S), w(x), n.emit("undo", o[s]), s -= 1;
535
536
  }
536
537
  }
537
538
  };
538
539
  }, Ne = () => {
539
- const { subscribe: e, set: t } = P([]);
540
+ const { subscribe: e, set: t } = H([]);
540
541
  return {
541
542
  subscribe: e,
542
543
  set: t
543
544
  };
544
545
  }, ze = (e, t, n, o) => {
545
- const { hover: s, selection: p, store: A, viewport: b } = e, E = /* @__PURE__ */ new Map();
546
- let h = [], S, l;
547
- const w = (a, d) => {
548
- E.has(a) ? E.get(a).push(d) : E.set(a, [d]);
549
- }, D = (a, d) => {
550
- const g = E.get(a);
551
- if (g) {
552
- const v = g.indexOf(d);
553
- v !== -1 && g.splice(v, 1);
546
+ const { hover: s, selection: p, store: m, viewport: v } = e, E = /* @__PURE__ */ new Map();
547
+ let h = [], T, a;
548
+ const w = (c, u) => {
549
+ E.has(c) ? E.get(c).push(u) : E.set(c, [u]);
550
+ }, D = (c, u) => {
551
+ const f = E.get(c);
552
+ if (f) {
553
+ const b = f.indexOf(u);
554
+ b !== -1 && f.splice(b, 1);
554
555
  }
555
- }, m = (a, d, g) => {
556
- E.has(a) && setTimeout(() => {
557
- E.get(a).forEach((v) => {
556
+ }, y = (c, u, f) => {
557
+ E.has(c) && setTimeout(() => {
558
+ E.get(c).forEach((b) => {
558
559
  if (n) {
559
- const c = Array.isArray(d) ? d.map((x) => n.serialize(x)) : n.serialize(d), U = g ? g instanceof PointerEvent ? g : n.serialize(g) : void 0;
560
- v(c, U);
560
+ const d = Array.isArray(u) ? u.map((x) => n.serialize(x)) : n.serialize(u), S = f ? f instanceof PointerEvent ? f : n.serialize(f) : void 0;
561
+ b(d, S);
561
562
  } else
562
- v(d, g);
563
+ b(u, f);
563
564
  });
564
565
  }, 1);
565
- }, C = () => {
566
- const { selected: a } = p, d = (a || []).map(({ id: g }) => A.getAnnotation(g));
567
- d.forEach((g) => {
568
- const v = h.find((c) => c.id === g.id);
569
- (!v || !N(v, g)) && m("updateAnnotation", g, v);
570
- }), h = h.map((g) => {
571
- const v = d.find(({ id: c }) => c === g.id);
572
- return v || g;
566
+ }, A = () => {
567
+ const { selected: c } = p, u = (c || []).map(({ id: f }) => m.getAnnotation(f));
568
+ u.forEach((f) => {
569
+ const b = h.find((d) => d.id === f.id);
570
+ (!b || !N(b, f)) && y("updateAnnotation", f, b);
571
+ }), h = h.map((f) => {
572
+ const b = u.find(({ id: d }) => d === f.id);
573
+ return b || f;
573
574
  });
574
575
  };
575
- p.subscribe(({ selected: a }) => {
576
- if (!(h.length === 0 && a.length === 0)) {
577
- if (h.length === 0 && a.length > 0)
578
- h = a.map(({ id: d }) => A.getAnnotation(d));
579
- else if (h.length > 0 && a.length === 0)
580
- h.forEach((d) => {
581
- const g = A.getAnnotation(d.id);
582
- g && !N(g, d) && m("updateAnnotation", g, d);
576
+ p.subscribe(({ selected: c }) => {
577
+ if (!(h.length === 0 && c.length === 0)) {
578
+ if (h.length === 0 && c.length > 0)
579
+ h = c.map(({ id: u }) => m.getAnnotation(u));
580
+ else if (h.length > 0 && c.length === 0)
581
+ h.forEach((u) => {
582
+ const f = m.getAnnotation(u.id);
583
+ f && !N(f, u) && y("updateAnnotation", f, u);
583
584
  }), h = [];
584
585
  else {
585
- const d = new Set(h.map((c) => c.id)), g = new Set(a.map(({ id: c }) => c));
586
- h.filter((c) => !g.has(c.id)).forEach((c) => {
587
- const U = A.getAnnotation(c.id);
588
- U && !N(U, c) && m("updateAnnotation", U, c);
586
+ const u = new Set(h.map((d) => d.id)), f = new Set(c.map(({ id: d }) => d));
587
+ h.filter((d) => !f.has(d.id)).forEach((d) => {
588
+ const S = m.getAnnotation(d.id);
589
+ S && !N(S, d) && y("updateAnnotation", S, d);
589
590
  }), h = [
590
591
  // Remove annotations that were deselected
591
- ...h.filter((c) => g.has(c.id)),
592
+ ...h.filter((d) => f.has(d.id)),
592
593
  // Add editable annotations that were selected
593
- ...a.filter(({ id: c }) => !d.has(c)).map(({ id: c }) => A.getAnnotation(c))
594
+ ...c.filter(({ id: d }) => !u.has(d)).map(({ id: d }) => m.getAnnotation(d))
594
595
  ];
595
596
  }
596
- m("selectionChanged", h);
597
+ y("selectionChanged", h);
597
598
  }
598
- }), s.subscribe((a) => {
599
- !S && a ? m("mouseEnterAnnotation", A.getAnnotation(a)) : S && !a ? m("mouseLeaveAnnotation", A.getAnnotation(S)) : S && a && (m("mouseLeaveAnnotation", A.getAnnotation(S)), m("mouseEnterAnnotation", A.getAnnotation(a))), S = a;
600
- }), b == null || b.subscribe((a) => m("viewportIntersect", a.map((d) => A.getAnnotation(d)))), A.observe((a) => {
601
- o && (l && clearTimeout(l), l = setTimeout(C, 1e3));
602
- const { created: d, deleted: g } = a.changes;
603
- (d || []).forEach((c) => m("createAnnotation", c)), (g || []).forEach((c) => m("deleteAnnotation", c)), (a.changes.updated || []).filter((c) => [
604
- ...c.bodiesCreated || [],
605
- ...c.bodiesDeleted || [],
606
- ...c.bodiesUpdated || []
607
- ].length > 0).forEach(({ oldValue: c, newValue: U }) => {
608
- const x = h.find((k) => k.id === c.id) || c;
609
- h = h.map((k) => k.id === c.id ? U : k), m("updateAnnotation", U, x);
599
+ }), s.subscribe((c) => {
600
+ !T && c ? y("mouseEnterAnnotation", m.getAnnotation(c)) : T && !c ? y("mouseLeaveAnnotation", m.getAnnotation(T)) : T && c && (y("mouseLeaveAnnotation", m.getAnnotation(T)), y("mouseEnterAnnotation", m.getAnnotation(c))), T = c;
601
+ }), v == null || v.subscribe((c) => y("viewportIntersect", c.map((u) => m.getAnnotation(u)))), m.observe((c) => {
602
+ o && (a && clearTimeout(a), a = setTimeout(A, 1e3));
603
+ const { created: u, deleted: f } = c.changes;
604
+ (u || []).forEach((d) => y("createAnnotation", d)), (f || []).forEach((d) => y("deleteAnnotation", d)), (c.changes.updated || []).filter((d) => [
605
+ ...d.bodiesCreated || [],
606
+ ...d.bodiesDeleted || [],
607
+ ...d.bodiesUpdated || []
608
+ ].length > 0).forEach(({ oldValue: d, newValue: S }) => {
609
+ const x = h.find((k) => k.id === d.id) || d;
610
+ h = h.map((k) => k.id === d.id ? S : k), y("updateAnnotation", S, x);
610
611
  });
611
- }, { origin: O.LOCAL }), A.observe((a) => {
612
+ }, { origin: O.LOCAL }), m.observe((c) => {
612
613
  if (h) {
613
- const d = new Set(h.map((v) => v.id)), g = (a.changes.updated || []).filter(({ newValue: v }) => d.has(v.id)).map(({ newValue: v }) => v);
614
- g.length > 0 && (h = h.map((v) => {
615
- const c = g.find((U) => U.id === v.id);
616
- return c || v;
614
+ const u = new Set(h.map((b) => b.id)), f = (c.changes.updated || []).filter(({ newValue: b }) => u.has(b.id)).map(({ newValue: b }) => b);
615
+ f.length > 0 && (h = h.map((b) => {
616
+ const d = f.find((S) => S.id === b.id);
617
+ return d || b;
617
618
  }));
618
619
  }
619
620
  }, { origin: O.REMOTE });
620
- const T = (a) => (d) => {
621
- const { updated: g } = d;
622
- a ? (g || []).forEach((v) => m("updateAnnotation", v.oldValue, v.newValue)) : (g || []).forEach((v) => m("updateAnnotation", v.newValue, v.oldValue));
621
+ const L = (c) => (u) => {
622
+ const { updated: f } = u;
623
+ c ? (f || []).forEach((b) => y("updateAnnotation", b.oldValue, b.newValue)) : (f || []).forEach((b) => y("updateAnnotation", b.newValue, b.oldValue));
623
624
  };
624
- return t.on("undo", T(!0)), t.on("redo", T(!1)), { on: w, off: D, emit: m };
625
+ return t.on("undo", L(!0)), t.on("redo", L(!1)), { on: w, off: D, emit: y };
625
626
  }, $e = (e) => (t) => t.map((n) => e.serialize(n)), pe = (e) => (t) => t.reduce((n, o) => {
626
627
  const { parsed: s, error: p } = e.parse(o);
627
628
  return p ? {
@@ -634,66 +635,66 @@ const fe = 250, Ie = (e, t) => {
634
635
  ...n
635
636
  };
636
637
  }, { parsed: [], failed: [] }), Ve = (e, t, n) => {
637
- const { store: o, selection: s } = e, p = (a) => {
638
+ const { store: o, selection: s } = e, p = (c) => {
638
639
  if (n) {
639
- const { parsed: d, error: g } = n.parse(a);
640
- d ? o.addAnnotation(d, O.REMOTE) : console.error(g);
640
+ const { parsed: u, error: f } = n.parse(c);
641
+ u ? o.addAnnotation(u, O.REMOTE) : console.error(f);
641
642
  } else
642
- o.addAnnotation(j(a), O.REMOTE);
643
- }, A = () => s.clear(), b = () => o.clear(), E = (a) => {
644
- const d = o.getAnnotation(a);
645
- return n && d ? n.serialize(d) : d;
646
- }, h = () => n ? o.all().map(n.serialize) : o.all(), S = () => {
647
- var g;
648
- const d = (((g = s.selected) == null ? void 0 : g.map((v) => v.id)) || []).map((v) => o.getAnnotation(v)).filter(Boolean);
649
- return n ? d.map(n.serialize) : d;
650
- }, l = (a, d = !0) => fetch(a).then((g) => g.json()).then((g) => (D(g, d), g)), w = (a) => {
651
- if (typeof a == "string") {
652
- const d = o.getAnnotation(a);
653
- if (o.deleteAnnotation(a), d)
654
- return n ? n.serialize(d) : d;
643
+ o.addAnnotation(P(c), O.REMOTE);
644
+ }, m = () => s.clear(), v = () => o.clear(), E = (c) => {
645
+ const u = o.getAnnotation(c);
646
+ return n && u ? n.serialize(u) : u;
647
+ }, h = () => n ? o.all().map(n.serialize) : o.all(), T = () => {
648
+ var f;
649
+ const u = (((f = s.selected) == null ? void 0 : f.map((b) => b.id)) || []).map((b) => o.getAnnotation(b)).filter(Boolean);
650
+ return n ? u.map(n.serialize) : u;
651
+ }, a = (c, u = !0) => fetch(c).then((f) => f.json()).then((f) => (D(f, u), f)), w = (c) => {
652
+ if (typeof c == "string") {
653
+ const u = o.getAnnotation(c);
654
+ if (o.deleteAnnotation(c), u)
655
+ return n ? n.serialize(u) : u;
655
656
  } else {
656
- const d = n ? n.parse(a).parsed : a;
657
- if (d)
658
- return o.deleteAnnotation(d), a;
657
+ const u = n ? n.parse(c).parsed : c;
658
+ if (u)
659
+ return o.deleteAnnotation(u), c;
659
660
  }
660
- }, D = (a, d = !0) => {
661
+ }, D = (c, u = !0) => {
661
662
  if (n) {
662
- const g = n.parseAll || pe(n), { parsed: v, failed: c } = g(a);
663
- c.length > 0 && console.warn(`Discarded ${c.length} invalid annotations`, c), o.bulkAddAnnotations(v, d, O.REMOTE);
663
+ const f = n.parseAll || pe(n), { parsed: b, failed: d } = f(c);
664
+ d.length > 0 && console.warn(`Discarded ${d.length} invalid annotations`, d), o.bulkAddAnnotations(b, u, O.REMOTE);
664
665
  } else
665
- o.bulkAddAnnotations(a.map(j), d, O.REMOTE);
666
- }, m = (a, d) => {
667
- a ? s.setSelected(a, d) : s.clear();
668
- }, C = (a) => {
669
- s.clear(), s.setUserSelectAction(a);
670
- }, T = (a) => {
666
+ o.bulkAddAnnotations(c.map(P), u, O.REMOTE);
667
+ }, y = (c, u) => {
668
+ c ? s.setSelected(c, u) : s.clear();
669
+ }, A = (c) => {
670
+ s.clear(), s.setUserSelectAction(c);
671
+ }, L = (c) => {
671
672
  if (n) {
672
- const d = n.parse(a).parsed, g = n.serialize(o.getAnnotation(d.id));
673
- return o.updateAnnotation(d), g;
673
+ const u = n.parse(c).parsed, f = n.serialize(o.getAnnotation(u.id));
674
+ return o.updateAnnotation(u), f;
674
675
  } else {
675
- const d = o.getAnnotation(a.id);
676
- return o.updateAnnotation(j(a)), d;
676
+ const u = o.getAnnotation(c.id);
677
+ return o.updateAnnotation(P(c)), u;
677
678
  }
678
679
  };
679
680
  return {
680
681
  addAnnotation: p,
681
- cancelSelected: A,
682
+ cancelSelected: m,
682
683
  canRedo: t.canRedo,
683
684
  canUndo: t.canUndo,
684
- clearAnnotations: b,
685
+ clearAnnotations: v,
685
686
  getAnnotationById: E,
686
687
  getAnnotations: h,
687
688
  getHistory: t.getHistory,
688
- getSelected: S,
689
- loadAnnotations: l,
689
+ getSelected: T,
690
+ loadAnnotations: a,
690
691
  redo: t.redo,
691
692
  removeAnnotation: w,
692
693
  setAnnotations: D,
693
- setSelected: m,
694
- setUserSelectAction: C,
694
+ setSelected: y,
695
+ setUserSelectAction: A,
695
696
  undo: t.undo,
696
- updateAnnotation: T
697
+ updateAnnotation: L
697
698
  };
698
699
  }, _e = (e, t, n) => typeof t == "function" ? t(e, n) : t, Ye = (e, t) => typeof e != "function" && typeof t != "function" ? {
699
700
  ...e || {},
@@ -708,11 +709,11 @@ const fe = 250, Ie = (e, t) => {
708
709
  let he = (e) => crypto.getRandomValues(new Uint8Array(e)), me = (e, t, n) => {
709
710
  let o = (2 << Math.log2(e.length - 1)) - 1, s = -~(1.6 * o * t / e.length);
710
711
  return (p = t) => {
711
- let A = "";
712
+ let m = "";
712
713
  for (; ; ) {
713
- let b = n(s), E = s | 0;
714
+ let v = n(s), E = s | 0;
714
715
  for (; E--; )
715
- if (A += e[b[E] & o] || "", A.length >= p) return A;
716
+ if (m += e[v[E] & o] || "", m.length >= p) return m;
716
717
  }
717
718
  };
718
719
  }, Ae = (e, t = 21) => me(e, t | 0, he), be = (e = 21) => {
@@ -730,26 +731,26 @@ const je = () => ({ isGuest: !0, id: Ae("1234567890abcdefghijklmnopqrstuvwxyzABC
730
731
  }
731
732
  return `${n}`;
732
733
  }, Ee = (e) => e ? typeof e == "object" ? { ...e } : e : void 0, Pe = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {
733
- const { id: o, type: s, purpose: p, value: A, created: b, modified: E, creator: h, ...S } = n;
734
+ const { id: o, type: s, purpose: p, value: m, created: v, modified: E, creator: h, ...T } = n;
734
735
  return {
735
736
  id: o || `temp-${ve(n)}`,
736
737
  annotation: t,
737
738
  type: s,
738
739
  purpose: p,
739
- value: A,
740
+ value: m,
740
741
  creator: Ee(h),
741
- created: b ? new Date(b) : void 0,
742
+ created: v ? new Date(v) : void 0,
742
743
  updated: E ? new Date(E) : void 0,
743
- ...S
744
+ ...T
744
745
  };
745
746
  }), He = (e) => e.map((t) => {
746
- var b;
747
- const { annotation: n, created: o, updated: s, ...p } = t, A = {
747
+ var v;
748
+ const { annotation: n, created: o, updated: s, ...p } = t, m = {
748
749
  ...p,
749
750
  created: o == null ? void 0 : o.toISOString(),
750
751
  modified: s == null ? void 0 : s.toISOString()
751
752
  };
752
- return (b = A.id) != null && b.startsWith("temp-") && delete A.id, A;
753
+ return (v = m.id) != null && v.startsWith("temp-") && delete m.id, m;
753
754
  }), we = [
754
755
  "#ff7c00",
755
756
  // orange
@@ -786,51 +787,51 @@ const je = () => ({ isGuest: !0, id: Ae("1234567890abcdefghijklmnopqrstuvwxyzABC
786
787
  };
787
788
  }, removeUser: (o) => e.releaseColor(o.appearance.color) };
788
789
  }, Le = (e, t) => e.every((n) => e.includes(n)) && t.every((n) => e.includes(n)), Me = be(), We = (e = ye()) => {
789
- const t = Q(), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = (l, w) => {
790
- if (n.has(l)) {
791
- console.warn("Attempt to add user that is already present", l, w);
790
+ const t = Q(), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = (a, w) => {
791
+ if (n.has(a)) {
792
+ console.warn("Attempt to add user that is already present", a, w);
792
793
  return;
793
794
  }
794
- const D = e.addUser(l, w);
795
- n.set(l, {
795
+ const D = e.addUser(a, w);
796
+ n.set(a, {
796
797
  ...w,
797
- presenceKey: l,
798
+ presenceKey: a,
798
799
  appearance: D
799
800
  });
800
- }, p = (l) => {
801
- const w = n.get(l);
801
+ }, p = (a) => {
802
+ const w = n.get(a);
802
803
  if (!w) {
803
- console.warn("Attempt to remove user that is not present", l);
804
+ console.warn("Attempt to remove user that is not present", a);
804
805
  return;
805
806
  }
806
- e.removeUser(w), n.delete(l);
807
- }, A = (l) => {
808
- const w = new Set(l.map((C) => C.presenceKey)), D = l.filter(({ presenceKey: C }) => !n.has(C)), m = Array.from(n.values()).filter((C) => !w.has(C.presenceKey));
809
- D.forEach(({ presenceKey: C, user: T }) => s(C, T)), m.forEach((C) => {
810
- const { presenceKey: T } = C;
811
- o.has(T) && t.emit("selectionChange", C, null), p(T);
812
- }), (D.length > 0 || m.length > 0) && t.emit("presence", h());
813
- }, b = (l, w) => {
814
- const D = n.get(l);
807
+ e.removeUser(w), n.delete(a);
808
+ }, m = (a) => {
809
+ const w = new Set(a.map((A) => A.presenceKey)), D = a.filter(({ presenceKey: A }) => !n.has(A)), y = Array.from(n.values()).filter((A) => !w.has(A.presenceKey));
810
+ D.forEach(({ presenceKey: A, user: L }) => s(A, L)), y.forEach((A) => {
811
+ const { presenceKey: L } = A;
812
+ o.has(L) && t.emit("selectionChange", A, null), p(L);
813
+ }), (D.length > 0 || y.length > 0) && t.emit("presence", h());
814
+ }, v = (a, w) => {
815
+ const D = n.get(a);
815
816
  if (!D) {
816
817
  console.warn("Activity notification from user that is not present");
817
818
  return;
818
819
  }
819
- const m = o.get(l);
820
- (!m || !Le(m, w)) && (o.set(l, w), t.emit("selectionChange", D, w));
821
- }, E = (l, w) => {
822
- const D = n.get(l);
820
+ const y = o.get(a);
821
+ (!y || !Le(y, w)) && (o.set(a, w), t.emit("selectionChange", D, w));
822
+ }, E = (a, w) => {
823
+ const D = n.get(a);
823
824
  if (!D) {
824
- console.warn("Selection change for user that is not present", l);
825
+ console.warn("Selection change for user that is not present", a);
825
826
  return;
826
827
  }
827
- w ? o.set(l, w) : o.delete(l), t.emit("selectionChange", D, w);
828
+ w ? o.set(a, w) : o.delete(a), t.emit("selectionChange", D, w);
828
829
  }, h = () => [...Array.from(n.values())];
829
830
  return {
830
831
  getPresentUsers: h,
831
- notifyActivity: b,
832
- on: (l, w) => t.on(l, w),
833
- syncUsers: A,
832
+ notifyActivity: v,
833
+ on: (a, w) => t.on(a, w),
834
+ syncUsers: m,
834
835
  updateSelection: E
835
836
  };
836
837
  };
@@ -856,11 +857,11 @@ export {
856
857
  J as diffAnnotations,
857
858
  Be as getContributors,
858
859
  le as mergeChanges,
859
- W as onUserSelect,
860
+ Y as onUserSelect,
860
861
  pe as parseAll,
861
862
  Pe as parseW3CBodies,
862
863
  Ee as parseW3CUser,
863
- j as reviveDates,
864
+ P as reviveDates,
864
865
  $e as serializeAll,
865
866
  He as serializeW3CBodies,
866
867
  ae as shouldNotify,