@annotorious/core 3.0.3 → 3.0.5

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 W = Object.prototype.hasOwnProperty;
1
+ var q = Object.prototype.hasOwnProperty;
2
2
  function I(e, n) {
3
3
  var t, o;
4
4
  if (e === n) return !0;
@@ -13,7 +13,7 @@ function I(e, n) {
13
13
  if (!t || typeof e == "object") {
14
14
  o = 0;
15
15
  for (t in e)
16
- if (W.call(e, t) && ++o && !W.call(n, t) || !(t in n) || !I(e[t], n[t])) return !1;
16
+ if (q.call(e, t) && ++o && !q.call(n, t) || !(t in n) || !I(e[t], n[t])) return !1;
17
17
  return Object.keys(n).length === o;
18
18
  }
19
19
  }
@@ -21,21 +21,21 @@ function I(e, n) {
21
21
  }
22
22
  function _() {
23
23
  }
24
- function Q(e, n) {
24
+ function X(e, n) {
25
25
  return e != e ? n == n : e !== n || e && typeof e == "object" || typeof e == "function";
26
26
  }
27
27
  const k = [];
28
- function j(e, n = _) {
28
+ function M(e, n = _) {
29
29
  let t;
30
30
  const o = /* @__PURE__ */ new Set();
31
31
  function i(b) {
32
- if (Q(e, b) && (e = b, t)) {
33
- const y = !k.length;
34
- for (const h of o)
35
- h[1](), k.push(h, e);
36
- if (y) {
37
- for (let h = 0; h < k.length; h += 2)
38
- k[h][0](k[h + 1]);
32
+ if (X(e, b) && (e = b, t)) {
33
+ const w = !k.length;
34
+ for (const g of o)
35
+ g[1](), k.push(g, e);
36
+ if (w) {
37
+ for (let g = 0; g < k.length; g += 2)
38
+ k[g][0](k[g + 1]);
39
39
  k.length = 0;
40
40
  }
41
41
  }
@@ -43,22 +43,22 @@ function j(e, n = _) {
43
43
  function f(b) {
44
44
  i(b(e));
45
45
  }
46
- function w(b, y = _) {
47
- const h = [b, y];
48
- return o.add(h), o.size === 1 && (t = n(i, f) || _), b(e), () => {
49
- o.delete(h), o.size === 0 && t && (t(), t = null);
46
+ function y(b, w = _) {
47
+ const g = [b, w];
48
+ return o.add(g), o.size === 1 && (t = n(i, f) || _), b(e), () => {
49
+ o.delete(g), o.size === 0 && t && (t(), t = null);
50
50
  };
51
51
  }
52
- return { set: i, update: f, subscribe: w };
52
+ return { set: i, update: f, subscribe: y };
53
53
  }
54
- const Se = (e) => {
55
- const { subscribe: n, set: t } = j();
54
+ const Ue = (e) => {
55
+ const { subscribe: n, set: t } = M();
56
56
  let o;
57
57
  return n((i) => o = i), e.observe(({ changes: i }) => {
58
58
  if (o) {
59
59
  (i.deleted || []).some((b) => b.id === o) && t(void 0);
60
- const w = (i.updated || []).find(({ oldValue: b }) => b.id === o);
61
- w && t(w.newValue.id);
60
+ const y = (i.updated || []).find(({ oldValue: b }) => b.id === o);
61
+ y && t(y.newValue.id);
62
62
  }
63
63
  }), {
64
64
  get current() {
@@ -68,53 +68,53 @@ const Se = (e) => {
68
68
  set: t
69
69
  };
70
70
  };
71
- var X = /* @__PURE__ */ ((e) => (e.EDIT = "EDIT", e.SELECT = "SELECT", e.NONE = "NONE", e))(X || {});
72
- const z = { selected: [] }, Ue = (e, n) => {
73
- const { subscribe: t, set: o } = j(z);
71
+ var Z = /* @__PURE__ */ ((e) => (e.EDIT = "EDIT", e.SELECT = "SELECT", e.NONE = "NONE", e))(Z || {});
72
+ const z = { selected: [] }, Te = (e, n) => {
73
+ const { subscribe: t, set: o } = M(z);
74
74
  let i = n, f = z;
75
- t((m) => f = m);
76
- const w = () => {
75
+ t((A) => f = A);
76
+ const y = () => {
77
77
  I(f, z) || o(z);
78
78
  }, b = () => {
79
- var m;
80
- return ((m = f.selected) == null ? void 0 : m.length) === 0;
81
- }, y = (m) => {
79
+ var A;
80
+ return ((A = f.selected) == null ? void 0 : A.length) === 0;
81
+ }, w = (A) => {
82
82
  if (b())
83
83
  return !1;
84
- const v = typeof m == "string" ? m : m.id;
84
+ const v = typeof A == "string" ? A : A.id;
85
85
  return f.selected.some((L) => L.id === v);
86
- }, h = (m, v) => {
87
- const L = e.getAnnotation(m);
86
+ }, g = (A, v) => {
87
+ const L = e.getAnnotation(A);
88
88
  if (!L) {
89
- console.warn("Invalid selection: " + m);
89
+ console.warn("Invalid selection: " + A);
90
90
  return;
91
91
  }
92
- switch (q(L, i)) {
92
+ switch (G(L, i)) {
93
93
  case "EDIT":
94
- o({ selected: [{ id: m, editable: !0 }], event: v });
94
+ o({ selected: [{ id: A, editable: !0 }], event: v });
95
95
  break;
96
96
  case "SELECT":
97
- o({ selected: [{ id: m }], event: v });
97
+ o({ selected: [{ id: A }], event: v });
98
98
  break;
99
99
  default:
100
100
  o({ selected: [], event: v });
101
101
  }
102
- }, S = (m, v) => {
103
- const L = Array.isArray(m) ? m : [m], O = L.map((a) => e.getAnnotation(a)).filter((a) => !!a);
102
+ }, S = (A, v) => {
103
+ const L = Array.isArray(A) ? A : [A], O = L.map((a) => e.getAnnotation(a)).filter((a) => !!a);
104
104
  o({
105
105
  selected: O.map((a) => {
106
- const u = v === void 0 ? q(a, i) === "EDIT" : v;
106
+ const u = v === void 0 ? G(a, i) === "EDIT" : v;
107
107
  return { id: a.id, editable: u };
108
108
  })
109
- }), O.length !== L.length && console.warn("Invalid selection", m);
110
- }, r = (m) => {
109
+ }), O.length !== L.length && console.warn("Invalid selection", A);
110
+ }, r = (A) => {
111
111
  if (b())
112
112
  return !1;
113
113
  const { selected: v } = f;
114
- v.some(({ id: O }) => m.includes(O)) && o({ selected: v.filter(({ id: O }) => !m.includes(O)) });
115
- }, E = (m) => i = m;
114
+ v.some(({ id: O }) => A.includes(O)) && o({ selected: v.filter(({ id: O }) => !A.includes(O)) });
115
+ }, E = (A) => i = A;
116
116
  return e.observe(
117
- ({ changes: m }) => r((m.deleted || []).map((v) => v.id))
117
+ ({ changes: A }) => r((A.deleted || []).map((v) => v.id))
118
118
  ), {
119
119
  get event() {
120
120
  return f ? f.event : null;
@@ -125,115 +125,125 @@ const z = { selected: [] }, Ue = (e, n) => {
125
125
  get userSelectAction() {
126
126
  return i;
127
127
  },
128
- clear: w,
128
+ clear: y,
129
129
  isEmpty: b,
130
- isSelected: y,
130
+ isSelected: w,
131
131
  setSelected: S,
132
132
  setUserSelectAction: E,
133
133
  subscribe: t,
134
- userSelect: h
134
+ userSelect: g
135
135
  };
136
- }, q = (e, n) => typeof n == "function" ? n(e) : n || "EDIT";
136
+ }, G = (e, n) => typeof n == "function" ? n(e) : n || "EDIT";
137
137
  var D = [];
138
138
  for (var Y = 0; Y < 256; ++Y)
139
139
  D.push((Y + 256).toString(16).slice(1));
140
- function Z(e, n = 0) {
140
+ function K(e, n = 0) {
141
141
  return (D[e[n + 0]] + D[e[n + 1]] + D[e[n + 2]] + D[e[n + 3]] + "-" + D[e[n + 4]] + D[e[n + 5]] + "-" + D[e[n + 6]] + D[e[n + 7]] + "-" + D[e[n + 8]] + D[e[n + 9]] + "-" + D[e[n + 10]] + D[e[n + 11]] + D[e[n + 12]] + D[e[n + 13]] + D[e[n + 14]] + D[e[n + 15]]).toLowerCase();
142
142
  }
143
- var $, K = new Uint8Array(16);
144
- function ee() {
143
+ var $, ee = new Uint8Array(16);
144
+ function te() {
145
145
  if (!$ && ($ = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !$))
146
146
  throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
147
- return $(K);
147
+ return $(ee);
148
148
  }
149
- var te = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
150
- const G = {
151
- randomUUID: te
149
+ var ne = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto);
150
+ const H = {
151
+ randomUUID: ne
152
152
  };
153
- function H(e, n, t) {
154
- if (G.randomUUID && !n && !e)
155
- return G.randomUUID();
153
+ function F(e, n, t) {
154
+ if (H.randomUUID && !n && !e)
155
+ return H.randomUUID();
156
156
  e = e || {};
157
- var o = e.random || (e.rng || ee)();
158
- return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, Z(o);
157
+ var o = e.random || (e.rng || te)();
158
+ return o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, K(o);
159
159
  }
160
- const Te = (e) => {
160
+ const Oe = (e) => {
161
161
  const { creator: n, updatedBy: t } = e.target, o = e.bodies.reduce((i, f) => [...i, f.creator, f.updatedBy].filter(Boolean), []);
162
162
  return [
163
163
  n,
164
164
  t,
165
165
  ...o
166
166
  ].filter((i) => i);
167
- }, Oe = (e, n, t, o) => ({
168
- id: H(),
167
+ }, j = (e) => {
168
+ const n = (t) => {
169
+ const o = { ...t };
170
+ return t.created && typeof t.created == "string" && (o.created = new Date(t.created)), t.updated && typeof t.updated == "string" && (o.updated = new Date(t.updated)), o;
171
+ };
172
+ return {
173
+ ...e,
174
+ bodies: (e.bodies || []).map(n),
175
+ target: n(e.target)
176
+ };
177
+ }, De = (e, n, t, o) => ({
178
+ id: F(),
169
179
  annotation: typeof e == "string" ? e : e.id,
170
180
  created: t || /* @__PURE__ */ new Date(),
171
181
  creator: o,
172
182
  ...n
173
- }), ne = (e, n) => {
183
+ }), oe = (e, n) => {
174
184
  const t = new Set(e.bodies.map((o) => o.id));
175
185
  return n.bodies.filter((o) => !t.has(o.id));
176
- }, oe = (e, n) => {
186
+ }, se = (e, n) => {
177
187
  const t = new Set(n.bodies.map((o) => o.id));
178
188
  return e.bodies.filter((o) => !t.has(o.id));
179
- }, se = (e, n) => n.bodies.map((t) => {
189
+ }, ie = (e, n) => n.bodies.map((t) => {
180
190
  const o = e.bodies.find((i) => i.id === t.id);
181
191
  return { newBody: t, oldBody: o && !I(o, t) ? o : void 0 };
182
- }).filter(({ oldBody: t }) => t).map(({ oldBody: t, newBody: o }) => ({ oldBody: t, newBody: o })), ie = (e, n) => !I(e.target, n.target), F = (e, n) => {
183
- const t = ne(e, n), o = oe(e, n), i = se(e, n);
192
+ }).filter(({ oldBody: t }) => t).map(({ oldBody: t, newBody: o }) => ({ oldBody: t, newBody: o })), de = (e, n) => !I(e.target, n.target), J = (e, n) => {
193
+ const t = oe(e, n), o = se(e, n), i = ie(e, n);
184
194
  return {
185
195
  oldValue: e,
186
196
  newValue: n,
187
197
  bodiesCreated: t.length > 0 ? t : void 0,
188
198
  bodiesDeleted: o.length > 0 ? o : void 0,
189
199
  bodiesUpdated: i.length > 0 ? i : void 0,
190
- targetUpdated: ie(e, n) ? { oldTarget: e.target, newTarget: n.target } : void 0
200
+ targetUpdated: de(e, n) ? { oldTarget: e.target, newTarget: n.target } : void 0
191
201
  };
192
202
  };
193
- var de = /* @__PURE__ */ ((e) => (e.BODY_ONLY = "BODY_ONLY", e.TARGET_ONLY = "TARGET_ONLY", e))(de || {}), T = /* @__PURE__ */ ((e) => (e.LOCAL = "LOCAL", e.REMOTE = "REMOTE", e.SILENT = "SILENT", e))(T || {});
194
- const ae = (e, n) => {
195
- var f, w;
203
+ var ae = /* @__PURE__ */ ((e) => (e.BODY_ONLY = "BODY_ONLY", e.TARGET_ONLY = "TARGET_ONLY", e))(ae || {}), T = /* @__PURE__ */ ((e) => (e.LOCAL = "LOCAL", e.REMOTE = "REMOTE", e.SILENT = "SILENT", e))(T || {});
204
+ const re = (e, n) => {
205
+ var f, y;
196
206
  const { changes: t, origin: o } = n;
197
207
  if (!(e.options.origin ? e.options.origin === o : o !== "SILENT"))
198
208
  return !1;
199
209
  if (e.options.ignore) {
200
- const { ignore: b } = e.options, y = (S) => S && S.length > 0;
201
- if (!(y(t.created) || y(t.deleted))) {
202
- const S = (f = t.updated) == null ? void 0 : f.some((E) => y(E.bodiesCreated) || y(E.bodiesDeleted) || y(E.bodiesUpdated)), r = (w = t.updated) == null ? void 0 : w.some((E) => E.targetUpdated);
210
+ const { ignore: b } = e.options, w = (S) => S && S.length > 0;
211
+ if (!(w(t.created) || w(t.deleted))) {
212
+ const S = (f = t.updated) == null ? void 0 : f.some((E) => w(E.bodiesCreated) || w(E.bodiesDeleted) || w(E.bodiesUpdated)), r = (y = t.updated) == null ? void 0 : y.some((E) => E.targetUpdated);
203
213
  if (b === "BODY_ONLY" && S && !r || b === "TARGET_ONLY" && r && !S)
204
214
  return !1;
205
215
  }
206
216
  }
207
217
  if (e.options.annotations) {
208
218
  const b = /* @__PURE__ */ new Set([
209
- ...(t.created || []).map((h) => h.id),
210
- ...(t.deleted || []).map((h) => h.id),
211
- ...(t.updated || []).map(({ oldValue: h }) => h.id)
219
+ ...(t.created || []).map((g) => g.id),
220
+ ...(t.deleted || []).map((g) => g.id),
221
+ ...(t.updated || []).map(({ oldValue: g }) => g.id)
212
222
  ]);
213
- return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((h) => b.has(h));
223
+ return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((g) => b.has(g));
214
224
  } else
215
225
  return !0;
216
- }, re = (e, n) => {
217
- const t = new Set((e.created || []).map((r) => r.id)), o = new Set((e.updated || []).map(({ newValue: r }) => r.id)), i = new Set((n.created || []).map((r) => r.id)), f = new Set((n.deleted || []).map((r) => r.id)), w = new Set((n.updated || []).map(({ oldValue: r }) => r.id)), b = new Set((n.updated || []).filter(({ oldValue: r }) => t.has(r.id) || o.has(r.id)).map(({ oldValue: r }) => r.id)), y = [
218
- ...(e.created || []).filter((r) => !f.has(r.id)).map((r) => w.has(r.id) ? n.updated.find(({ oldValue: E }) => E.id === r.id).newValue : r),
226
+ }, ce = (e, n) => {
227
+ const t = new Set((e.created || []).map((r) => r.id)), o = new Set((e.updated || []).map(({ newValue: r }) => r.id)), i = new Set((n.created || []).map((r) => r.id)), f = new Set((n.deleted || []).map((r) => r.id)), y = new Set((n.updated || []).map(({ oldValue: r }) => r.id)), b = new Set((n.updated || []).filter(({ oldValue: r }) => t.has(r.id) || o.has(r.id)).map(({ oldValue: r }) => r.id)), w = [
228
+ ...(e.created || []).filter((r) => !f.has(r.id)).map((r) => y.has(r.id) ? n.updated.find(({ oldValue: E }) => E.id === r.id).newValue : r),
219
229
  ...n.created || []
220
- ], h = [
230
+ ], g = [
221
231
  ...(e.deleted || []).filter((r) => !i.has(r.id)),
222
232
  ...(n.deleted || []).filter((r) => !t.has(r.id))
223
233
  ], S = [
224
234
  ...(e.updated || []).filter(({ newValue: r }) => !f.has(r.id)).map((r) => {
225
- const { oldValue: E, newValue: m } = r;
226
- if (w.has(m.id)) {
227
- const v = n.updated.find((L) => L.oldValue.id === m.id).newValue;
228
- return F(E, v);
235
+ const { oldValue: E, newValue: A } = r;
236
+ if (y.has(A.id)) {
237
+ const v = n.updated.find((L) => L.oldValue.id === A.id).newValue;
238
+ return J(E, v);
229
239
  } else
230
240
  return r;
231
241
  }),
232
242
  ...(n.updated || []).filter(({ oldValue: r }) => !b.has(r.id))
233
243
  ];
234
- return { created: y, deleted: h, updated: S };
244
+ return { created: w, deleted: g, updated: S };
235
245
  }, V = (e) => {
236
- const n = e.id === void 0 ? H() : e.id;
246
+ const n = e.id === void 0 ? F() : e.id;
237
247
  return {
238
248
  ...e,
239
249
  id: n,
@@ -246,7 +256,7 @@ const ae = (e, n) => {
246
256
  annotation: n
247
257
  }
248
258
  };
249
- }, ce = (e) => e.id !== void 0, De = () => {
259
+ }, le = (e) => e.id !== void 0, Re = () => {
250
260
  const e = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), t = [], o = (d, c = {}) => {
251
261
  t.push({ onChange: d, options: c });
252
262
  }, i = (d) => {
@@ -263,9 +273,9 @@ const ae = (e, n) => {
263
273
  state: [...e.values()]
264
274
  };
265
275
  t.forEach((p) => {
266
- ae(p, l) && p.onChange(l);
276
+ re(p, l) && p.onChange(l);
267
277
  });
268
- }, w = (d, c = T.LOCAL) => {
278
+ }, y = (d, c = T.LOCAL) => {
269
279
  if (d.id && e.get(d.id))
270
280
  throw Error(`Cannot add annotation ${d.id} - exists already`);
271
281
  {
@@ -275,14 +285,14 @@ const ae = (e, n) => {
275
285
  }, b = (d, c) => {
276
286
  const l = V(typeof d == "string" ? c : d), p = typeof d == "string" ? d : d.id, U = p && e.get(p);
277
287
  if (U) {
278
- const C = F(U, l);
288
+ const C = J(U, l);
279
289
  return p === l.id ? e.set(p, l) : (e.delete(p), e.set(l.id, l)), U.bodies.forEach((B) => n.delete(B.id)), l.bodies.forEach((B) => n.set(B.id, l.id)), C;
280
290
  } else
281
291
  console.warn(`Cannot update annotation ${p} - does not exist`);
282
- }, y = (d, c = T.LOCAL, l = T.LOCAL) => {
283
- const p = ce(c) ? l : c, U = b(d, c);
292
+ }, w = (d, c = T.LOCAL, l = T.LOCAL) => {
293
+ const p = le(c) ? l : c, U = b(d, c);
284
294
  U && f(p, { updated: [U] });
285
- }, h = (d, c = T.LOCAL) => {
295
+ }, g = (d, c = T.LOCAL) => {
286
296
  const l = d.reduce((p, U) => {
287
297
  const C = b(U);
288
298
  return C ? [...p, C] : p;
@@ -305,7 +315,7 @@ const ae = (e, n) => {
305
315
  }, r = () => [...e.values()], E = (d = T.LOCAL) => {
306
316
  const c = [...e.values()];
307
317
  e.clear(), n.clear(), f(d, { deleted: c });
308
- }, m = (d, c = !0, l = T.LOCAL) => {
318
+ }, A = (d, c = !0, l = T.LOCAL) => {
309
319
  const p = d.map(V);
310
320
  if (c) {
311
321
  const U = [...e.values()];
@@ -314,8 +324,8 @@ const ae = (e, n) => {
314
324
  }), f(l, { created: p, deleted: U });
315
325
  } else {
316
326
  const U = d.reduce((C, B) => {
317
- const P = B.id && e.get(B.id);
318
- return P ? [...C, P] : C;
327
+ const W = B.id && e.get(B.id);
328
+ return W ? [...C, W] : C;
319
329
  }, []);
320
330
  if (U.length > 0)
321
331
  throw Error(`Bulk insert would overwrite the following annotations: ${U.map((C) => C.id).join(", ")}`);
@@ -362,13 +372,13 @@ const ae = (e, n) => {
362
372
  }, s = (d, c = T.LOCAL) => {
363
373
  const l = d.map((p) => a(p)).filter(Boolean);
364
374
  l.length > 0 && f(c, { updated: l });
365
- }, g = (d) => {
375
+ }, h = (d) => {
366
376
  const c = e.get(d);
367
377
  return c ? { ...c } : void 0;
368
- }, A = (d) => {
378
+ }, m = (d) => {
369
379
  const c = n.get(d);
370
380
  if (c) {
371
- const p = g(c).bodies.find((U) => U.id === d);
381
+ const p = h(c).bodies.find((U) => U.id === d);
372
382
  if (p)
373
383
  return p;
374
384
  console.error(`Store integrity error: body ${d} in index, but not in annotation`);
@@ -396,7 +406,7 @@ const ae = (e, n) => {
396
406
  }, x = (d, c = T.LOCAL) => {
397
407
  const l = d.map((p) => R({ id: p.id, annotation: p.annotation }, p)).filter(Boolean);
398
408
  f(c, { updated: l });
399
- }, M = (d) => {
409
+ }, P = (d) => {
400
410
  const c = e.get(d.annotation);
401
411
  if (c) {
402
412
  const l = {
@@ -418,40 +428,40 @@ const ae = (e, n) => {
418
428
  console.warn(`Attempt to update target on missing annotation: ${d.annotation}`);
419
429
  };
420
430
  return {
421
- addAnnotation: w,
431
+ addAnnotation: y,
422
432
  addBody: S,
423
433
  all: r,
424
- bulkAddAnnotation: m,
434
+ bulkAddAnnotation: A,
425
435
  bulkDeleteAnnotation: O,
426
436
  bulkDeleteBodies: s,
427
- bulkUpdateAnnotation: h,
437
+ bulkUpdateAnnotation: g,
428
438
  bulkUpdateBodies: x,
429
439
  bulkUpdateTargets: (d, c = T.LOCAL) => {
430
- const l = d.map((p) => M(p)).filter(Boolean);
440
+ const l = d.map((p) => P(p)).filter(Boolean);
431
441
  l.length > 0 && f(c, { updated: l });
432
442
  },
433
443
  clear: E,
434
444
  deleteAnnotation: L,
435
445
  deleteBody: u,
436
- getAnnotation: g,
437
- getBody: A,
446
+ getAnnotation: h,
447
+ getBody: m,
438
448
  observe: o,
439
449
  unobserve: i,
440
- updateAnnotation: y,
450
+ updateAnnotation: w,
441
451
  updateBody: N,
442
452
  updateTarget: (d, c = T.LOCAL) => {
443
- const l = M(d);
453
+ const l = P(d);
444
454
  l && f(c, { updated: [l] });
445
455
  }
446
456
  };
447
- }, Re = (e) => ({
457
+ }, Be = (e) => ({
448
458
  ...e,
449
459
  subscribe: (t) => {
450
460
  const o = (i) => t(i.state);
451
461
  return e.observe(o), t(e.all()), () => e.unobserve(o);
452
462
  }
453
463
  });
454
- let J = () => ({
464
+ let Q = () => ({
455
465
  emit(e, ...n) {
456
466
  for (let t = 0, o = this.events[e] || [], i = o.length; t < i; t++)
457
467
  o[t](...n);
@@ -465,132 +475,132 @@ let J = () => ({
465
475
  };
466
476
  }
467
477
  });
468
- const le = 250, Be = (e) => {
469
- const n = J(), t = [];
478
+ const ue = 250, Ie = (e) => {
479
+ const n = Q(), t = [];
470
480
  let o = -1, i = !1, f = 0;
471
- const w = (s) => {
481
+ const y = (s) => {
472
482
  if (!i) {
473
- const { changes: g } = s, A = performance.now();
474
- if (A - f > le)
475
- t.splice(o + 1), t.push(g), o = t.length - 1;
483
+ const { changes: h } = s, m = performance.now();
484
+ if (m - f > ue)
485
+ t.splice(o + 1), t.push(h), o = t.length - 1;
476
486
  else {
477
487
  const R = t.length - 1;
478
- t[R] = re(t[R], g);
488
+ t[R] = ce(t[R], h);
479
489
  }
480
- f = A;
490
+ f = m;
481
491
  }
482
492
  i = !1;
483
493
  };
484
- e.observe(w, { origin: T.LOCAL });
485
- const b = (s) => s && s.length > 0 && e.bulkDeleteAnnotation(s), y = (s) => s && s.length > 0 && e.bulkAddAnnotation(s, !1), h = (s) => s && s.length > 0 && e.bulkUpdateAnnotation(s.map(({ oldValue: g }) => g)), S = (s) => s && s.length > 0 && e.bulkUpdateAnnotation(s.map(({ newValue: g }) => g)), r = (s) => s && s.length > 0 && e.bulkAddAnnotation(s, !1), E = (s) => s && s.length > 0 && e.bulkDeleteAnnotation(s);
494
+ e.observe(y, { origin: T.LOCAL });
495
+ const b = (s) => s && s.length > 0 && e.bulkDeleteAnnotation(s), w = (s) => s && s.length > 0 && e.bulkAddAnnotation(s, !1), g = (s) => s && s.length > 0 && e.bulkUpdateAnnotation(s.map(({ oldValue: h }) => h)), S = (s) => s && s.length > 0 && e.bulkUpdateAnnotation(s.map(({ newValue: h }) => h)), r = (s) => s && s.length > 0 && e.bulkAddAnnotation(s, !1), E = (s) => s && s.length > 0 && e.bulkDeleteAnnotation(s);
486
496
  return {
487
497
  canRedo: () => t.length - 1 > o,
488
498
  canUndo: () => o > -1,
489
- destroy: () => e.unobserve(w),
490
- on: (s, g) => n.on(s, g),
499
+ destroy: () => e.unobserve(y),
500
+ on: (s, h) => n.on(s, h),
491
501
  redo: () => {
492
502
  if (t.length - 1 > o) {
493
503
  i = !0;
494
- const { created: s, updated: g, deleted: A } = t[o + 1];
495
- y(s), S(g), E(A), n.emit("redo", t[o + 1]), o += 1;
504
+ const { created: s, updated: h, deleted: m } = t[o + 1];
505
+ w(s), S(h), E(m), n.emit("redo", t[o + 1]), o += 1;
496
506
  }
497
507
  },
498
508
  undo: () => {
499
509
  if (o > -1) {
500
510
  i = !0;
501
- const { created: s, updated: g, deleted: A } = t[o];
502
- b(s), h(g), r(A), n.emit("undo", t[o]), o -= 1;
511
+ const { created: s, updated: h, deleted: m } = t[o];
512
+ b(s), g(h), r(m), n.emit("undo", t[o]), o -= 1;
503
513
  }
504
514
  }
505
515
  };
506
- }, Ie = () => {
507
- const { subscribe: e, set: n } = j([]);
516
+ }, xe = () => {
517
+ const { subscribe: e, set: n } = M([]);
508
518
  return {
509
519
  subscribe: e,
510
520
  set: n
511
521
  };
512
- }, xe = (e, n, t, o) => {
513
- const { store: i, selection: f, hover: w, viewport: b } = e, y = /* @__PURE__ */ new Map();
514
- let h = [], S, r;
522
+ }, ke = (e, n, t, o) => {
523
+ const { store: i, selection: f, hover: y, viewport: b } = e, w = /* @__PURE__ */ new Map();
524
+ let g = [], S, r;
515
525
  const E = (a, u) => {
516
- y.has(a) ? y.get(a).push(u) : y.set(a, [u]);
517
- }, m = (a, u) => {
518
- const s = y.get(a);
526
+ w.has(a) ? w.get(a).push(u) : w.set(a, [u]);
527
+ }, A = (a, u) => {
528
+ const s = w.get(a);
519
529
  if (s) {
520
- const g = s.indexOf(u);
521
- g !== -1 && s.splice(g, 1);
530
+ const h = s.indexOf(u);
531
+ h !== -1 && s.splice(h, 1);
522
532
  }
523
533
  }, v = (a, u, s) => {
524
- y.has(a) && setTimeout(() => {
525
- y.get(a).forEach((g) => {
534
+ w.has(a) && setTimeout(() => {
535
+ w.get(a).forEach((h) => {
526
536
  if (t) {
527
- const A = Array.isArray(u) ? u.map((N) => t.serialize(N)) : t.serialize(u), R = s ? s instanceof PointerEvent ? s : t.serialize(s) : void 0;
528
- g(A, R);
537
+ const m = Array.isArray(u) ? u.map((N) => t.serialize(N)) : t.serialize(u), R = s ? s instanceof PointerEvent ? s : t.serialize(s) : void 0;
538
+ h(m, R);
529
539
  } else
530
- g(u, s);
540
+ h(u, s);
531
541
  });
532
542
  }, 1);
533
543
  }, L = () => {
534
544
  const { selected: a } = f, u = (a || []).map(({ id: s }) => i.getAnnotation(s));
535
545
  u.forEach((s) => {
536
- const g = h.find((A) => A.id === s.id);
537
- (!g || !I(g, s)) && v("updateAnnotation", s, g);
538
- }), h = h.map((s) => {
539
- const g = u.find(({ id: A }) => A === s.id);
540
- return g || s;
546
+ const h = g.find((m) => m.id === s.id);
547
+ (!h || !I(h, s)) && v("updateAnnotation", s, h);
548
+ }), g = g.map((s) => {
549
+ const h = u.find(({ id: m }) => m === s.id);
550
+ return h || s;
541
551
  });
542
552
  };
543
553
  f.subscribe(({ selected: a }) => {
544
- if (!(h.length === 0 && a.length === 0)) {
545
- if (h.length === 0 && a.length > 0)
546
- h = a.map(({ id: u }) => i.getAnnotation(u));
547
- else if (h.length > 0 && a.length === 0)
548
- h.forEach((u) => {
554
+ if (!(g.length === 0 && a.length === 0)) {
555
+ if (g.length === 0 && a.length > 0)
556
+ g = a.map(({ id: u }) => i.getAnnotation(u));
557
+ else if (g.length > 0 && a.length === 0)
558
+ g.forEach((u) => {
549
559
  const s = i.getAnnotation(u.id);
550
560
  s && !I(s, u) && v("updateAnnotation", s, u);
551
- }), h = [];
561
+ }), g = [];
552
562
  else {
553
- const u = new Set(h.map((A) => A.id)), s = new Set(a.map(({ id: A }) => A));
554
- h.filter((A) => !s.has(A.id)).forEach((A) => {
555
- const R = i.getAnnotation(A.id);
556
- R && !I(R, A) && v("updateAnnotation", R, A);
557
- }), h = [
563
+ const u = new Set(g.map((m) => m.id)), s = new Set(a.map(({ id: m }) => m));
564
+ g.filter((m) => !s.has(m.id)).forEach((m) => {
565
+ const R = i.getAnnotation(m.id);
566
+ R && !I(R, m) && v("updateAnnotation", R, m);
567
+ }), g = [
558
568
  // Remove annotations that were deselected
559
- ...h.filter((A) => s.has(A.id)),
569
+ ...g.filter((m) => s.has(m.id)),
560
570
  // Add editable annotations that were selected
561
- ...a.filter(({ id: A }) => !u.has(A)).map(({ id: A }) => i.getAnnotation(A))
571
+ ...a.filter(({ id: m }) => !u.has(m)).map(({ id: m }) => i.getAnnotation(m))
562
572
  ];
563
573
  }
564
- v("selectionChanged", h);
574
+ v("selectionChanged", g);
565
575
  }
566
- }), w.subscribe((a) => {
576
+ }), y.subscribe((a) => {
567
577
  !S && a ? v("mouseEnterAnnotation", i.getAnnotation(a)) : S && !a ? v("mouseLeaveAnnotation", i.getAnnotation(S)) : S && a && (v("mouseLeaveAnnotation", i.getAnnotation(S)), v("mouseEnterAnnotation", i.getAnnotation(a))), S = a;
568
578
  }), b == null || b.subscribe((a) => v("viewportIntersect", a.map((u) => i.getAnnotation(u)))), i.observe((a) => {
569
579
  o && (r && clearTimeout(r), r = setTimeout(L, 1e3));
570
580
  const { created: u, deleted: s } = a.changes;
571
- (u || []).forEach((A) => v("createAnnotation", A)), (s || []).forEach((A) => v("deleteAnnotation", A)), (a.changes.updated || []).filter((A) => [
572
- ...A.bodiesCreated || [],
573
- ...A.bodiesDeleted || [],
574
- ...A.bodiesUpdated || []
575
- ].length > 0).forEach(({ oldValue: A, newValue: R }) => {
576
- const N = h.find((x) => x.id === A.id) || A;
577
- h = h.map((x) => x.id === A.id ? R : x), v("updateAnnotation", R, N);
581
+ (u || []).forEach((m) => v("createAnnotation", m)), (s || []).forEach((m) => v("deleteAnnotation", m)), (a.changes.updated || []).filter((m) => [
582
+ ...m.bodiesCreated || [],
583
+ ...m.bodiesDeleted || [],
584
+ ...m.bodiesUpdated || []
585
+ ].length > 0).forEach(({ oldValue: m, newValue: R }) => {
586
+ const N = g.find((x) => x.id === m.id) || m;
587
+ g = g.map((x) => x.id === m.id ? R : x), v("updateAnnotation", R, N);
578
588
  });
579
589
  }, { origin: T.LOCAL }), i.observe((a) => {
580
- if (h) {
581
- const u = new Set(h.map((g) => g.id)), s = (a.changes.updated || []).filter(({ newValue: g }) => u.has(g.id)).map(({ newValue: g }) => g);
582
- s.length > 0 && (h = h.map((g) => {
583
- const A = s.find((R) => R.id === g.id);
584
- return A || g;
590
+ if (g) {
591
+ const u = new Set(g.map((h) => h.id)), s = (a.changes.updated || []).filter(({ newValue: h }) => u.has(h.id)).map(({ newValue: h }) => h);
592
+ s.length > 0 && (g = g.map((h) => {
593
+ const m = s.find((R) => R.id === h.id);
594
+ return m || h;
585
595
  }));
586
596
  }
587
597
  }, { origin: T.REMOTE });
588
598
  const O = (a) => (u) => {
589
599
  const { updated: s } = u;
590
- a ? (s || []).forEach((g) => v("updateAnnotation", g.oldValue, g.newValue)) : (s || []).forEach((g) => v("updateAnnotation", g.newValue, g.oldValue));
600
+ a ? (s || []).forEach((h) => v("updateAnnotation", h.oldValue, h.newValue)) : (s || []).forEach((h) => v("updateAnnotation", h.newValue, h.oldValue));
591
601
  };
592
- return n.on("undo", O(!0)), n.on("redo", O(!1)), { on: E, off: m, emit: v };
593
- }, ke = (e) => (n) => n.map((t) => e.serialize(t)), ue = (e) => (n) => n.reduce((t, o) => {
602
+ return n.on("undo", O(!0)), n.on("redo", O(!1)), { on: E, off: A, emit: v };
603
+ }, Ne = (e) => (n) => n.map((t) => e.serialize(t)), fe = (e) => (n) => n.reduce((t, o) => {
594
604
  const { parsed: i, error: f } = e.parse(o);
595
605
  return f ? {
596
606
  parsed: t.parsed,
@@ -601,21 +611,21 @@ const le = 250, Be = (e) => {
601
611
  } : {
602
612
  ...t
603
613
  };
604
- }, { parsed: [], failed: [] }), Ne = (e, n, t) => {
614
+ }, { parsed: [], failed: [] }), ze = (e, n, t) => {
605
615
  const { store: o, selection: i } = e, f = (a) => {
606
616
  if (t) {
607
617
  const { parsed: u, error: s } = t.parse(a);
608
618
  u ? o.addAnnotation(u, T.REMOTE) : console.error(s);
609
619
  } else
610
- o.addAnnotation(a, T.REMOTE);
611
- }, w = () => i.clear(), b = () => o.clear(), y = (a) => {
620
+ o.addAnnotation(j(a), T.REMOTE);
621
+ }, y = () => i.clear(), b = () => o.clear(), w = (a) => {
612
622
  const u = o.getAnnotation(a);
613
623
  return t && u ? t.serialize(u) : u;
614
- }, h = () => t ? o.all().map(t.serialize) : o.all(), S = () => {
624
+ }, g = () => t ? o.all().map(t.serialize) : o.all(), S = () => {
615
625
  var s;
616
- const u = (((s = i.selected) == null ? void 0 : s.map((g) => g.id)) || []).map((g) => o.getAnnotation(g)).filter(Boolean);
626
+ const u = (((s = i.selected) == null ? void 0 : s.map((h) => h.id)) || []).map((h) => o.getAnnotation(h)).filter(Boolean);
617
627
  return t ? u.map(t.serialize) : u;
618
- }, r = (a, u = !0) => fetch(a).then((s) => s.json()).then((s) => (m(s, u), s)), E = (a) => {
628
+ }, r = (a, u = !0) => fetch(a).then((s) => s.json()).then((s) => (A(s, u), s)), E = (a) => {
619
629
  if (typeof a == "string") {
620
630
  const u = o.getAnnotation(a);
621
631
  if (o.deleteAnnotation(a), u)
@@ -625,12 +635,12 @@ const le = 250, Be = (e) => {
625
635
  if (u)
626
636
  return o.deleteAnnotation(u), a;
627
637
  }
628
- }, m = (a, u = !0) => {
638
+ }, A = (a, u = !0) => {
629
639
  if (t) {
630
- const { parsed: s, failed: g } = ue(t)(a);
631
- g.length > 0 && console.warn(`Discarded ${g.length} invalid annotations`, g), o.bulkAddAnnotation(s, u, T.REMOTE);
640
+ const s = t.parseAll || fe(t), { parsed: h, failed: m } = s(a);
641
+ m.length > 0 && console.warn(`Discarded ${m.length} invalid annotations`, m), o.bulkAddAnnotation(h, u, T.REMOTE);
632
642
  } else
633
- o.bulkAddAnnotation(a, u, T.REMOTE);
643
+ o.bulkAddAnnotation(a.map(j), u, T.REMOTE);
634
644
  }, v = (a, u) => {
635
645
  a ? i.setSelected(a, u) : i.clear();
636
646
  }, L = (a) => {
@@ -641,45 +651,45 @@ const le = 250, Be = (e) => {
641
651
  return o.updateAnnotation(u), s;
642
652
  } else {
643
653
  const u = o.getAnnotation(a.id);
644
- return o.updateAnnotation(a), u;
654
+ return o.updateAnnotation(j(a)), u;
645
655
  }
646
656
  };
647
657
  return {
648
658
  addAnnotation: f,
649
- cancelSelected: w,
659
+ cancelSelected: y,
650
660
  canRedo: n.canRedo,
651
661
  canUndo: n.canUndo,
652
662
  clearAnnotations: b,
653
- getAnnotationById: y,
654
- getAnnotations: h,
663
+ getAnnotationById: w,
664
+ getAnnotations: g,
655
665
  getSelected: S,
656
666
  loadAnnotations: r,
657
667
  redo: n.redo,
658
668
  removeAnnotation: E,
659
- setAnnotations: m,
669
+ setAnnotations: A,
660
670
  setSelected: v,
661
671
  setUserSelectAction: L,
662
672
  undo: n.undo,
663
673
  updateAnnotation: O
664
674
  };
665
- }, fe = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
666
- let pe = (e) => crypto.getRandomValues(new Uint8Array(e)), he = (e, n, t) => {
675
+ }, pe = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
676
+ let ge = (e) => crypto.getRandomValues(new Uint8Array(e)), he = (e, n, t) => {
667
677
  let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * n / e.length);
668
678
  return (f = n) => {
669
- let w = "";
679
+ let y = "";
670
680
  for (; ; ) {
671
- let b = t(i), y = i;
672
- for (; y--; )
673
- if (w += e[b[y] & o] || "", w.length === f) return w;
681
+ let b = t(i), w = i;
682
+ for (; w--; )
683
+ if (y += e[b[w] & o] || "", y.length === f) return y;
674
684
  }
675
685
  };
676
- }, ge = (e, n = 21) => he(e, n, pe), me = (e = 21) => {
686
+ }, me = (e, n = 21) => he(e, n, ge), Ae = (e = 21) => {
677
687
  let n = "", t = crypto.getRandomValues(new Uint8Array(e));
678
688
  for (; e--; )
679
- n += fe[t[e] & 63];
689
+ n += pe[t[e] & 63];
680
690
  return n;
681
691
  };
682
- const ze = () => ({ isGuest: !0, id: ge("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_", 20)() }), Ae = (e) => {
692
+ const $e = () => ({ isGuest: !0, id: me("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_", 20)() }), be = (e) => {
683
693
  const n = JSON.stringify(e);
684
694
  let t = 0;
685
695
  for (let o = 0, i = n.length; o < i; o++) {
@@ -687,28 +697,28 @@ const ze = () => ({ isGuest: !0, id: ge("1234567890abcdefghijklmnopqrstuvwxyzABC
687
697
  t = (t << 5) - t + f, t |= 0;
688
698
  }
689
699
  return `${t}`;
690
- }, be = (e) => e ? typeof e == "object" ? { ...e } : e : void 0, $e = (e, n) => (Array.isArray(e) ? e : [e]).map((t) => {
691
- const { id: o, type: i, purpose: f, value: w, created: b, modified: y, creator: h, ...S } = t;
700
+ }, ve = (e) => e ? typeof e == "object" ? { ...e } : e : void 0, Ve = (e, n) => (Array.isArray(e) ? e : [e]).map((t) => {
701
+ const { id: o, type: i, purpose: f, value: y, created: b, modified: w, creator: g, ...S } = t;
692
702
  return {
693
- id: o || `temp-${Ae(t)}`,
703
+ id: o || `temp-${be(t)}`,
694
704
  annotation: n,
695
705
  type: i,
696
706
  purpose: f,
697
- value: w,
698
- creator: be(h),
707
+ value: y,
708
+ creator: ve(g),
699
709
  created: b ? new Date(b) : void 0,
700
- updated: y ? new Date(y) : void 0,
710
+ updated: w ? new Date(w) : void 0,
701
711
  ...S
702
712
  };
703
- }), Ve = (e) => e.map((n) => {
713
+ }), _e = (e) => e.map((n) => {
704
714
  var b;
705
- const { annotation: t, created: o, updated: i, ...f } = n, w = {
715
+ const { annotation: t, created: o, updated: i, ...f } = n, y = {
706
716
  ...f,
707
717
  created: o == null ? void 0 : o.toISOString(),
708
718
  modified: i == null ? void 0 : i.toISOString()
709
719
  };
710
- return (b = w.id) != null && b.startsWith("temp-") && delete w.id, w;
711
- }), ve = [
720
+ return (b = y.id) != null && b.startsWith("temp-") && delete y.id, y;
721
+ }), Ee = [
712
722
  "#ff7c00",
713
723
  // orange
714
724
  "#1ac938",
@@ -727,14 +737,14 @@ const ze = () => ({ isGuest: !0, id: ge("1234567890abcdefghijklmnopqrstuvwxyzABC
727
737
  // cyan
728
738
  "#023eff"
729
739
  // blue
730
- ], Ee = () => {
731
- const e = [...ve];
740
+ ], we = () => {
741
+ const e = [...Ee];
732
742
  return { assignRandomColor: () => {
733
743
  const o = Math.floor(Math.random() * e.length), i = e[o];
734
744
  return e.splice(o, 1), i;
735
745
  }, releaseColor: (o) => e.push(o) };
736
746
  }, ye = () => {
737
- const e = Ee();
747
+ const e = we();
738
748
  return { addUser: (o, i) => {
739
749
  const f = e.assignRandomColor();
740
750
  return {
@@ -743,17 +753,17 @@ const ze = () => ({ isGuest: !0, id: ge("1234567890abcdefghijklmnopqrstuvwxyzABC
743
753
  color: f
744
754
  };
745
755
  }, removeUser: (o) => e.releaseColor(o.appearance.color) };
746
- }, we = (e, n) => e.every((t) => e.includes(t)) && n.every((t) => e.includes(t)), _e = me(), Ye = (e = ye()) => {
747
- const n = J(), t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = (r, E) => {
756
+ }, Ce = (e, n) => e.every((t) => e.includes(t)) && n.every((t) => e.includes(t)), Ye = Ae(), je = (e = ye()) => {
757
+ const n = Q(), t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = (r, E) => {
748
758
  if (t.has(r)) {
749
759
  console.warn("Attempt to add user that is already present", r, E);
750
760
  return;
751
761
  }
752
- const m = e.addUser(r, E);
762
+ const A = e.addUser(r, E);
753
763
  t.set(r, {
754
764
  ...E,
755
765
  presenceKey: r,
756
- appearance: m
766
+ appearance: A
757
767
  });
758
768
  }, f = (r) => {
759
769
  const E = t.get(r);
@@ -762,63 +772,64 @@ const ze = () => ({ isGuest: !0, id: ge("1234567890abcdefghijklmnopqrstuvwxyzABC
762
772
  return;
763
773
  }
764
774
  e.removeUser(E), t.delete(r);
765
- }, w = (r) => {
766
- const E = new Set(r.map((L) => L.presenceKey)), m = r.filter(({ presenceKey: L }) => !t.has(L)), v = Array.from(t.values()).filter((L) => !E.has(L.presenceKey));
767
- m.forEach(({ presenceKey: L, user: O }) => i(L, O)), v.forEach((L) => {
775
+ }, y = (r) => {
776
+ const E = new Set(r.map((L) => L.presenceKey)), A = r.filter(({ presenceKey: L }) => !t.has(L)), v = Array.from(t.values()).filter((L) => !E.has(L.presenceKey));
777
+ A.forEach(({ presenceKey: L, user: O }) => i(L, O)), v.forEach((L) => {
768
778
  const { presenceKey: O } = L;
769
779
  o.has(O) && n.emit("selectionChange", L, null), f(O);
770
- }), (m.length > 0 || v.length > 0) && n.emit("presence", h());
780
+ }), (A.length > 0 || v.length > 0) && n.emit("presence", g());
771
781
  }, b = (r, E) => {
772
- const m = t.get(r);
773
- if (!m) {
782
+ const A = t.get(r);
783
+ if (!A) {
774
784
  console.warn("Activity notification from user that is not present");
775
785
  return;
776
786
  }
777
787
  const v = o.get(r);
778
- (!v || !we(v, E)) && (o.set(r, E), n.emit("selectionChange", m, E));
779
- }, y = (r, E) => {
780
- const m = t.get(r);
781
- if (!m) {
788
+ (!v || !Ce(v, E)) && (o.set(r, E), n.emit("selectionChange", A, E));
789
+ }, w = (r, E) => {
790
+ const A = t.get(r);
791
+ if (!A) {
782
792
  console.warn("Selection change for user that is not present", r);
783
793
  return;
784
794
  }
785
- E ? o.set(r, E) : o.delete(r), n.emit("selectionChange", m, E);
786
- }, h = () => [...Array.from(t.values())];
795
+ E ? o.set(r, E) : o.delete(r), n.emit("selectionChange", A, E);
796
+ }, g = () => [...Array.from(t.values())];
787
797
  return {
788
- getPresentUsers: h,
798
+ getPresentUsers: g,
789
799
  notifyActivity: b,
790
800
  on: (r, E) => n.on(r, E),
791
- syncUsers: w,
792
- updateSelection: y
801
+ syncUsers: y,
802
+ updateSelection: w
793
803
  };
794
804
  };
795
805
  export {
796
- de as Ignore,
806
+ ae as Ignore,
797
807
  T as Origin,
798
- _e as PRESENCE_KEY,
799
- X as UserSelectAction,
800
- ze as createAnonymousGuest,
801
- Ne as createBaseAnnotator,
802
- Oe as createBody,
808
+ Ye as PRESENCE_KEY,
809
+ Z as UserSelectAction,
810
+ $e as createAnonymousGuest,
811
+ ze as createBaseAnnotator,
812
+ De as createBody,
803
813
  ye as createDefaultAppearanceProvider,
804
- Se as createHoverState,
805
- xe as createLifecycleObserver,
806
- Ye as createPresenceState,
807
- Ue as createSelectionState,
808
- De as createStore,
809
- Be as createUndoStack,
810
- Ie as createViewportState,
811
- Ee as defaultColorProvider,
812
- F as diffAnnotations,
813
- Te as getContributors,
814
- re as mergeChanges,
815
- q as onUserSelect,
816
- ue as parseAll,
817
- $e as parseW3CBodies,
818
- be as parseW3CUser,
819
- ke as serializeAll,
820
- Ve as serializeW3CBodies,
821
- ae as shouldNotify,
822
- Re as toSvelteStore
814
+ Ue as createHoverState,
815
+ ke as createLifecycleObserver,
816
+ je as createPresenceState,
817
+ Te as createSelectionState,
818
+ Re as createStore,
819
+ Ie as createUndoStack,
820
+ xe as createViewportState,
821
+ we as defaultColorProvider,
822
+ J as diffAnnotations,
823
+ Oe as getContributors,
824
+ ce as mergeChanges,
825
+ G as onUserSelect,
826
+ fe as parseAll,
827
+ Ve as parseW3CBodies,
828
+ ve as parseW3CUser,
829
+ j as reviveDates,
830
+ Ne as serializeAll,
831
+ _e as serializeW3CBodies,
832
+ re as shouldNotify,
833
+ Be as toSvelteStore
823
834
  };
824
835
  //# sourceMappingURL=annotorious-core.es.js.map