@annotorious/react 3.0.0-rc.21 → 3.0.0-rc.4

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.
Files changed (91) hide show
  1. package/dist/Annotorious.d.ts +28 -3
  2. package/dist/Annotorious.d.ts.map +1 -1
  3. package/dist/AnnotoriousPlugin.d.ts +6 -7
  4. package/dist/AnnotoriousPlugin.d.ts.map +1 -1
  5. package/dist/ImageAnnotator.d.ts.map +1 -1
  6. package/dist/annotorious-react.css +1 -1
  7. package/dist/annotorious-react.es.js +50 -33
  8. package/dist/annotorious-react.es.js.map +1 -1
  9. package/dist/annotorious-react.es10.js +3 -29
  10. package/dist/annotorious-react.es10.js.map +1 -1
  11. package/dist/annotorious-react.es11.js +27 -36
  12. package/dist/annotorious-react.es11.js.map +1 -1
  13. package/dist/annotorious-react.es12.js +20 -16
  14. package/dist/annotorious-react.es12.js.map +1 -1
  15. package/dist/annotorious-react.es13.js +54 -6
  16. package/dist/annotorious-react.es13.js.map +1 -1
  17. package/dist/annotorious-react.es14.js +17 -8
  18. package/dist/annotorious-react.es14.js.map +1 -1
  19. package/dist/annotorious-react.es15.js +21 -152
  20. package/dist/annotorious-react.es15.js.map +1 -1
  21. package/dist/annotorious-react.es16.js +2 -27436
  22. package/dist/annotorious-react.es16.js.map +1 -1
  23. package/dist/annotorious-react.es17.js +2 -32
  24. package/dist/annotorious-react.es17.js.map +1 -1
  25. package/dist/annotorious-react.es18.js +3893 -2
  26. package/dist/annotorious-react.es18.js.map +1 -1
  27. package/dist/annotorious-react.es19.js +29 -30
  28. package/dist/annotorious-react.es19.js.map +1 -1
  29. package/dist/annotorious-react.es2.js +32 -32
  30. package/dist/annotorious-react.es2.js.map +1 -1
  31. package/dist/annotorious-react.es20.js +35 -598
  32. package/dist/annotorious-react.es20.js.map +1 -1
  33. package/dist/annotorious-react.es21.js +16 -2
  34. package/dist/annotorious-react.es21.js.map +1 -1
  35. package/dist/annotorious-react.es22.js +4 -2
  36. package/dist/annotorious-react.es22.js.map +1 -1
  37. package/dist/annotorious-react.es23.js +11 -0
  38. package/dist/annotorious-react.es23.js.map +1 -0
  39. package/dist/annotorious-react.es24.js +156 -0
  40. package/dist/annotorious-react.es24.js.map +1 -0
  41. package/dist/annotorious-react.es25.js +9 -0
  42. package/dist/annotorious-react.es25.js.map +1 -0
  43. package/dist/annotorious-react.es26.js +5 -0
  44. package/dist/annotorious-react.es26.js.map +1 -0
  45. package/dist/annotorious-react.es27.js +33 -0
  46. package/dist/annotorious-react.es27.js.map +1 -0
  47. package/dist/annotorious-react.es28.js +602 -0
  48. package/dist/annotorious-react.es28.js.map +1 -0
  49. package/dist/annotorious-react.es29.js +20128 -0
  50. package/dist/annotorious-react.es29.js.map +1 -0
  51. package/dist/annotorious-react.es3.js +7 -7
  52. package/dist/annotorious-react.es3.js.map +1 -1
  53. package/dist/annotorious-react.es30.js +35 -0
  54. package/dist/annotorious-react.es30.js.map +1 -0
  55. package/dist/annotorious-react.es31.js +5 -0
  56. package/dist/annotorious-react.es31.js.map +1 -0
  57. package/dist/annotorious-react.es32.js +5 -0
  58. package/dist/annotorious-react.es32.js.map +1 -0
  59. package/dist/annotorious-react.es33.js +19 -0
  60. package/dist/annotorious-react.es33.js.map +1 -0
  61. package/dist/annotorious-react.es34.js +24 -0
  62. package/dist/annotorious-react.es34.js.map +1 -0
  63. package/dist/annotorious-react.es35.js +19 -0
  64. package/dist/annotorious-react.es35.js.map +1 -0
  65. package/dist/annotorious-react.es36.js +20 -0
  66. package/dist/annotorious-react.es36.js.map +1 -0
  67. package/dist/annotorious-react.es37.js +30 -0
  68. package/dist/annotorious-react.es37.js.map +1 -0
  69. package/dist/annotorious-react.es38.js +7 -0
  70. package/dist/annotorious-react.es38.js.map +1 -0
  71. package/dist/annotorious-react.es39.js +11 -0
  72. package/dist/annotorious-react.es39.js.map +1 -0
  73. package/dist/annotorious-react.es4.js +8 -8
  74. package/dist/annotorious-react.es4.js.map +1 -1
  75. package/dist/annotorious-react.es40.js +10 -0
  76. package/dist/annotorious-react.es40.js.map +1 -0
  77. package/dist/annotorious-react.es5.js +10 -10
  78. package/dist/annotorious-react.es5.js.map +1 -1
  79. package/dist/annotorious-react.es6.js +4 -1
  80. package/dist/annotorious-react.es6.js.map +1 -1
  81. package/dist/annotorious-react.es7.js +4 -1
  82. package/dist/annotorious-react.es7.js.map +1 -1
  83. package/dist/annotorious-react.es8.js +57 -85
  84. package/dist/annotorious-react.es8.js.map +1 -1
  85. package/dist/annotorious-react.es9.js +10 -4237
  86. package/dist/annotorious-react.es9.js.map +1 -1
  87. package/dist/index.d.ts +10 -12
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/openseadragon/OpenSeadragonAnnotator.d.ts.map +1 -1
  90. package/dist/openseadragon/setPosition.d.ts.map +1 -1
  91. package/package.json +9 -16
@@ -1,5 +1,3896 @@
1
- var e = { exports: {} };
1
+ function U() {
2
+ }
3
+ function Ke(t, e) {
4
+ for (const n in e)
5
+ t[n] = e[n];
6
+ return t;
7
+ }
8
+ function Oe(t) {
9
+ return t();
10
+ }
11
+ function le() {
12
+ return /* @__PURE__ */ Object.create(null);
13
+ }
14
+ function it(t) {
15
+ t.forEach(Oe);
16
+ }
17
+ function H(t) {
18
+ return typeof t == "function";
19
+ }
20
+ function K(t, e) {
21
+ return t != t ? e == e : t !== e || t && typeof t == "object" || typeof t == "function";
22
+ }
23
+ function Je(t) {
24
+ return Object.keys(t).length === 0;
25
+ }
26
+ function Ve(t, ...e) {
27
+ if (t == null)
28
+ return U;
29
+ const n = t.subscribe(...e);
30
+ return n.unsubscribe ? () => n.unsubscribe() : n;
31
+ }
32
+ function de(t, e, n) {
33
+ t.$$.on_destroy.push(Ve(e, n));
34
+ }
35
+ function Qe(t, e, n, o) {
36
+ if (t) {
37
+ const r = ke(t, e, n, o);
38
+ return t[0](r);
39
+ }
40
+ }
41
+ function ke(t, e, n, o) {
42
+ return t[1] && o ? Ke(n.ctx.slice(), t[1](o(e))) : n.ctx;
43
+ }
44
+ function Ze(t, e, n, o) {
45
+ if (t[2] && o) {
46
+ const r = t[2](o(n));
47
+ if (e.dirty === void 0)
48
+ return r;
49
+ if (typeof r == "object") {
50
+ const i = [], a = Math.max(e.dirty.length, r.length);
51
+ for (let s = 0; s < a; s += 1)
52
+ i[s] = e.dirty[s] | r[s];
53
+ return i;
54
+ }
55
+ return e.dirty | r;
56
+ }
57
+ return e.dirty;
58
+ }
59
+ function tn(t, e, n, o, r, i) {
60
+ if (r) {
61
+ const a = ke(e, n, o, i);
62
+ t.p(a, r);
63
+ }
64
+ }
65
+ function en(t) {
66
+ if (t.ctx.length > 32) {
67
+ const e = [], n = t.ctx.length / 32;
68
+ for (let o = 0; o < n; o++)
69
+ e[o] = -1;
70
+ return e;
71
+ }
72
+ return -1;
73
+ }
74
+ function dt(t, e) {
75
+ t.appendChild(e);
76
+ }
77
+ function B(t, e, n) {
78
+ t.insertBefore(e, n || null);
79
+ }
80
+ function L(t) {
81
+ t.parentNode && t.parentNode.removeChild(t);
82
+ }
83
+ function oe(t, e) {
84
+ for (let n = 0; n < t.length; n += 1)
85
+ t[n] && t[n].d(e);
86
+ }
87
+ function O(t) {
88
+ return document.createElementNS("http://www.w3.org/2000/svg", t);
89
+ }
90
+ function Ne(t) {
91
+ return document.createTextNode(t);
92
+ }
93
+ function tt() {
94
+ return Ne(" ");
95
+ }
96
+ function at() {
97
+ return Ne("");
98
+ }
99
+ function R(t, e, n, o) {
100
+ return t.addEventListener(e, n, o), () => t.removeEventListener(e, n, o);
101
+ }
102
+ function u(t, e, n) {
103
+ n == null ? t.removeAttribute(e) : t.getAttribute(e) !== n && t.setAttribute(e, n);
104
+ }
105
+ function nn(t) {
106
+ return Array.from(t.childNodes);
107
+ }
108
+ function ce(t, e, n) {
109
+ t.classList[n ? "add" : "remove"](e);
110
+ }
111
+ function on(t, e, { bubbles: n = !1, cancelable: o = !1 } = {}) {
112
+ const r = document.createEvent("CustomEvent");
113
+ return r.initCustomEvent(t, n, o, e), r;
114
+ }
115
+ let Xt;
116
+ function Bt(t) {
117
+ Xt = t;
118
+ }
119
+ function De() {
120
+ if (!Xt)
121
+ throw new Error("Function called outside component initialization");
122
+ return Xt;
123
+ }
124
+ function It(t) {
125
+ De().$$.on_mount.push(t);
126
+ }
127
+ function At() {
128
+ const t = De();
129
+ return (e, n, { cancelable: o = !1 } = {}) => {
130
+ const r = t.$$.callbacks[e];
131
+ if (r) {
132
+ const i = on(e, n, { cancelable: o });
133
+ return r.slice().forEach((a) => {
134
+ a.call(t, i);
135
+ }), !i.defaultPrevented;
136
+ }
137
+ return !0;
138
+ };
139
+ }
140
+ function vt(t, e) {
141
+ const n = t.$$.callbacks[e.type];
142
+ n && n.slice().forEach((o) => o.call(this, e));
143
+ }
144
+ const xt = [], Dt = [];
145
+ let Et = [];
146
+ const ue = [], rn = /* @__PURE__ */ Promise.resolve();
147
+ let te = !1;
148
+ function an() {
149
+ te || (te = !0, rn.then(Ge));
150
+ }
151
+ function ee(t) {
152
+ Et.push(t);
153
+ }
154
+ const Rt = /* @__PURE__ */ new Set();
155
+ let yt = 0;
156
+ function Ge() {
157
+ if (yt !== 0)
158
+ return;
159
+ const t = Xt;
160
+ do {
161
+ try {
162
+ for (; yt < xt.length; ) {
163
+ const e = xt[yt];
164
+ yt++, Bt(e), sn(e.$$);
165
+ }
166
+ } catch (e) {
167
+ throw xt.length = 0, yt = 0, e;
168
+ }
169
+ for (Bt(null), xt.length = 0, yt = 0; Dt.length; )
170
+ Dt.pop()();
171
+ for (let e = 0; e < Et.length; e += 1) {
172
+ const n = Et[e];
173
+ Rt.has(n) || (Rt.add(n), n());
174
+ }
175
+ Et.length = 0;
176
+ } while (xt.length);
177
+ for (; ue.length; )
178
+ ue.pop()();
179
+ te = !1, Rt.clear(), Bt(t);
180
+ }
181
+ function sn(t) {
182
+ if (t.fragment !== null) {
183
+ t.update(), it(t.before_update);
184
+ const e = t.dirty;
185
+ t.dirty = [-1], t.fragment && t.fragment.p(t.ctx, e), t.after_update.forEach(ee);
186
+ }
187
+ }
188
+ function ln(t) {
189
+ const e = [], n = [];
190
+ Et.forEach((o) => t.indexOf(o) === -1 ? e.push(o) : n.push(o)), n.forEach((o) => o()), Et = e;
191
+ }
192
+ const Nt = /* @__PURE__ */ new Set();
193
+ let ht;
194
+ function ot() {
195
+ ht = {
196
+ r: 0,
197
+ c: [],
198
+ p: ht
199
+ // parent group
200
+ };
201
+ }
202
+ function rt() {
203
+ ht.r || it(ht.c), ht = ht.p;
204
+ }
205
+ function V(t, e) {
206
+ t && t.i && (Nt.delete(t), t.i(e));
207
+ }
208
+ function k(t, e, n, o) {
209
+ if (t && t.o) {
210
+ if (Nt.has(t))
211
+ return;
212
+ Nt.add(t), ht.c.push(() => {
213
+ Nt.delete(t), o && (n && t.d(1), o());
214
+ }), t.o(e);
215
+ } else
216
+ o && o();
217
+ }
218
+ function ft(t) {
219
+ t && t.c();
220
+ }
221
+ function ct(t, e, n, o) {
222
+ const { fragment: r, after_update: i } = t.$$;
223
+ r && r.m(e, n), o || ee(() => {
224
+ const a = t.$$.on_mount.map(Oe).filter(H);
225
+ t.$$.on_destroy ? t.$$.on_destroy.push(...a) : it(a), t.$$.on_mount = [];
226
+ }), i.forEach(ee);
227
+ }
228
+ function ut(t, e) {
229
+ const n = t.$$;
230
+ n.fragment !== null && (ln(n.after_update), it(n.on_destroy), n.fragment && n.fragment.d(e), n.on_destroy = n.fragment = null, n.ctx = []);
231
+ }
232
+ function dn(t, e) {
233
+ t.$$.dirty[0] === -1 && (xt.push(t), an(), t.$$.dirty.fill(0)), t.$$.dirty[e / 31 | 0] |= 1 << e % 31;
234
+ }
235
+ function et(t, e, n, o, r, i, a, s = [-1]) {
236
+ const l = Xt;
237
+ Bt(t);
238
+ const d = t.$$ = {
239
+ fragment: null,
240
+ ctx: [],
241
+ // state
242
+ props: i,
243
+ update: U,
244
+ not_equal: r,
245
+ bound: le(),
246
+ // lifecycle
247
+ on_mount: [],
248
+ on_destroy: [],
249
+ on_disconnect: [],
250
+ before_update: [],
251
+ after_update: [],
252
+ context: new Map(e.context || (l ? l.$$.context : [])),
253
+ // everything else
254
+ callbacks: le(),
255
+ dirty: s,
256
+ skip_bound: !1,
257
+ root: e.target || l.$$.root
258
+ };
259
+ a && a(d.root);
260
+ let p = !1;
261
+ if (d.ctx = n ? n(t, e.props || {}, (c, f, ...h) => {
262
+ const m = h.length ? h[0] : f;
263
+ return d.ctx && r(d.ctx[c], d.ctx[c] = m) && (!d.skip_bound && d.bound[c] && d.bound[c](m), p && dn(t, c)), f;
264
+ }) : [], d.update(), p = !0, it(d.before_update), d.fragment = o ? o(d.ctx) : !1, e.target) {
265
+ if (e.hydrate) {
266
+ const c = nn(e.target);
267
+ d.fragment && d.fragment.l(c), c.forEach(L);
268
+ } else
269
+ d.fragment && d.fragment.c();
270
+ e.intro && V(t.$$.fragment), ct(t, e.target, e.anchor, e.customElement), Ge();
271
+ }
272
+ Bt(l);
273
+ }
274
+ class nt {
275
+ $destroy() {
276
+ ut(this, 1), this.$destroy = U;
277
+ }
278
+ $on(e, n) {
279
+ if (!H(n))
280
+ return U;
281
+ const o = this.$$.callbacks[e] || (this.$$.callbacks[e] = []);
282
+ return o.push(n), () => {
283
+ const r = o.indexOf(n);
284
+ r !== -1 && o.splice(r, 1);
285
+ };
286
+ }
287
+ $set(e) {
288
+ this.$$set && !Je(e) && (this.$$.skip_bound = !0, this.$$set(e), this.$$.skip_bound = !1);
289
+ }
290
+ }
291
+ var F = /* @__PURE__ */ ((t) => (t.ELLIPSE = "ELLIPSE", t.POLYGON = "POLYGON", t.RECTANGLE = "RECTANGLE", t))(F || {});
292
+ const re = {}, ie = (t, e) => re[t] = e, ne = (t) => re[t.type].area(t), cn = (t, e, n) => re[t.type].intersects(t, e, n), Gt = (t) => {
293
+ let e = 1 / 0, n = 1 / 0, o = -1 / 0, r = -1 / 0;
294
+ return t.forEach(([i, a]) => {
295
+ e = Math.min(e, i), n = Math.min(n, a), o = Math.max(o, i), r = Math.max(r, a);
296
+ }), { minX: e, minY: n, maxX: o, maxY: r };
297
+ }, un = {
298
+ area: (t) => Math.PI * t.geometry.rx * t.geometry.ry,
299
+ intersects: (t, e, n) => {
300
+ const { cx: o, cy: r, rx: i, ry: a } = t.geometry, s = 0, l = Math.cos(s), d = Math.sin(s), p = e - o, c = n - r, f = l * p + d * c, h = d * p - l * c;
301
+ return f * f / (i * i) + h * h / (a * a) <= 1;
302
+ }
303
+ };
304
+ ie(F.ELLIPSE, un);
305
+ const hn = {
306
+ area: (t) => {
307
+ const { points: e } = t.geometry;
308
+ let n = 0, o = e.length - 1;
309
+ for (let r = 0; r < e.length; r++)
310
+ n += (e[o][0] + e[r][0]) * (e[o][1] - e[r][1]), o = r;
311
+ return Math.abs(0.5 * n);
312
+ },
313
+ intersects: (t, e, n) => {
314
+ const { points: o } = t.geometry;
315
+ let r = !1;
316
+ for (let i = 0, a = o.length - 1; i < o.length; a = i++) {
317
+ const s = o[i][0], l = o[i][1], d = o[a][0], p = o[a][1];
318
+ l > n != p > n && e < (d - s) * (n - l) / (p - l) + s && (r = !r);
319
+ }
320
+ return r;
321
+ }
322
+ };
323
+ ie(F.POLYGON, hn);
324
+ const pn = {
325
+ area: (t) => t.geometry.w * t.geometry.h,
326
+ intersects: (t, e, n) => e >= t.geometry.x && e <= t.geometry.x + t.geometry.w && n >= t.geometry.y && n <= t.geometry.y + t.geometry.h
327
+ };
328
+ ie(F.RECTANGLE, pn);
329
+ const fn = (t, e = !1) => {
330
+ const n = typeof t == "string" ? t : t.value, o = /^(xywh)=(pixel|percent)?:?(.+?),(.+?),(.+?),(.+)*/g, r = [...n.matchAll(o)][0], [i, a, s, l, d, p, c] = r;
331
+ if (a !== "xywh")
332
+ throw new Error("Unsupported MediaFragment: " + n);
333
+ if (s && s !== "pixel")
334
+ throw new Error(`Unsupported MediaFragment unit: ${s}`);
335
+ const [f, h, m, x] = [l, d, p, c].map(parseFloat);
336
+ return {
337
+ type: F.RECTANGLE,
338
+ geometry: {
339
+ x: f,
340
+ y: h,
341
+ w: m,
342
+ h: x,
343
+ bounds: {
344
+ minX: f,
345
+ minY: e ? h - x : h,
346
+ maxX: f + m,
347
+ maxY: e ? h : h + x
348
+ }
349
+ }
350
+ };
351
+ }, gn = (t) => {
352
+ const { x: e, y: n, w: o, h: r } = t;
353
+ return {
354
+ type: "FragmentSelector",
355
+ conformsTo: "http://www.w3.org/TR/media-frags/",
356
+ value: `xywh=pixel:${e},${n},${o},${r}`
357
+ };
358
+ }, Ue = "http://www.w3.org/2000/svg", he = (t) => {
359
+ const e = (o) => {
360
+ Array.from(o.attributes).forEach((r) => {
361
+ r.name.startsWith("on") && o.removeAttribute(r.name);
362
+ });
363
+ }, n = t.getElementsByTagName("script");
364
+ return Array.from(n).reverse().forEach((o) => o.parentNode.removeChild(o)), Array.from(t.querySelectorAll("*")).forEach(e), t;
365
+ }, mn = (t) => {
366
+ const e = new XMLSerializer().serializeToString(t.documentElement).replace("<svg>", `<svg xmlns="${Ue}">`);
367
+ return new DOMParser().parseFromString(e, "image/svg+xml").documentElement;
368
+ }, yn = (t) => {
369
+ const e = new DOMParser().parseFromString(t, "image/svg+xml"), n = e.lookupPrefix(Ue), o = e.lookupNamespaceURI(null);
370
+ return n || o ? he(e).firstChild : he(mn(e)).firstChild;
371
+ }, $n = (t) => {
372
+ const [e, n, o] = t.match(/(<polygon points=["|'])([^("|')]*)/) || [];
373
+ if (!o)
374
+ return;
375
+ const r = o.split(" ").map((i) => i.split(",").map(parseFloat));
376
+ return {
377
+ type: F.POLYGON,
378
+ geometry: {
379
+ points: r,
380
+ bounds: Gt(r)
381
+ }
382
+ };
383
+ }, wn = (t) => {
384
+ const e = yn(t), n = parseFloat(e.getAttribute("cx")), o = parseFloat(e.getAttribute("cy")), r = parseFloat(e.getAttribute("rx")), i = parseFloat(e.getAttribute("ry")), a = {
385
+ minX: n - r,
386
+ minY: o - i,
387
+ maxX: n + r,
388
+ maxY: o + i
389
+ };
390
+ return {
391
+ type: F.ELLIPSE,
392
+ geometry: {
393
+ cx: n,
394
+ cy: o,
395
+ rx: r,
396
+ ry: i,
397
+ bounds: a
398
+ }
399
+ };
400
+ }, xn = (t) => {
401
+ const e = typeof t == "string" ? t : t.value;
402
+ if (e.includes("<polygon points="))
403
+ return $n(e);
404
+ if (e.includes("<ellipse "))
405
+ return wn(e);
406
+ }, bn = (t) => {
407
+ let e;
408
+ if (t.type === F.POLYGON) {
409
+ const n = t.geometry, { points: o } = n;
410
+ e = `<svg><polygon points="${o.map((r) => r.join(",")).join(" ")}" /></svg>`;
411
+ } else if (t.type === F.ELLIPSE) {
412
+ const n = t.geometry;
413
+ e = `<svg><ellipse cx="${n.cx}" cy="${n.cy}" rx="${n.rx}" ry="${n.ry}" /></svg>`;
414
+ }
415
+ if (e)
416
+ return { type: "SvgSelector", value: e };
417
+ throw `Unsupported shape type: ${t.type}`;
418
+ };
419
+ let Ot;
420
+ const vn = new Uint8Array(16);
421
+ function En() {
422
+ if (!Ot && (Ot = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Ot))
423
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
424
+ return Ot(vn);
425
+ }
426
+ const z = [];
427
+ for (let t = 0; t < 256; ++t)
428
+ z.push((t + 256).toString(16).slice(1));
429
+ function An(t, e = 0) {
430
+ return z[t[e + 0]] + z[t[e + 1]] + z[t[e + 2]] + z[t[e + 3]] + "-" + z[t[e + 4]] + z[t[e + 5]] + "-" + z[t[e + 6]] + z[t[e + 7]] + "-" + z[t[e + 8]] + z[t[e + 9]] + "-" + z[t[e + 10]] + z[t[e + 11]] + z[t[e + 12]] + z[t[e + 13]] + z[t[e + 14]] + z[t[e + 15]];
431
+ }
432
+ const Tn = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), pe = {
433
+ randomUUID: Tn
434
+ };
435
+ function Fe(t, e, n) {
436
+ if (pe.randomUUID && !e && !t)
437
+ return pe.randomUUID();
438
+ t = t || {};
439
+ const o = t.random || (t.rng || En)();
440
+ if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, e) {
441
+ n = n || 0;
442
+ for (let r = 0; r < 16; ++r)
443
+ e[n + r] = o[r];
444
+ return e;
445
+ }
446
+ return An(o);
447
+ }
448
+ var fe = Object.prototype.hasOwnProperty;
449
+ function pt(t, e) {
450
+ var n, o;
451
+ if (t === e)
452
+ return !0;
453
+ if (t && e && (n = t.constructor) === e.constructor) {
454
+ if (n === Date)
455
+ return t.getTime() === e.getTime();
456
+ if (n === RegExp)
457
+ return t.toString() === e.toString();
458
+ if (n === Array) {
459
+ if ((o = t.length) === e.length)
460
+ for (; o-- && pt(t[o], e[o]); )
461
+ ;
462
+ return o === -1;
463
+ }
464
+ if (!n || typeof t == "object") {
465
+ o = 0;
466
+ for (n in t)
467
+ if (fe.call(t, n) && ++o && !fe.call(e, n) || !(n in e) || !pt(t[n], e[n]))
468
+ return !1;
469
+ return Object.keys(e).length === o;
470
+ }
471
+ }
472
+ return t !== t && e !== e;
473
+ }
474
+ const $t = [];
475
+ function Ut(t, e = U) {
476
+ let n;
477
+ const o = /* @__PURE__ */ new Set();
478
+ function r(s) {
479
+ if (K(t, s) && (t = s, n)) {
480
+ const l = !$t.length;
481
+ for (const d of o)
482
+ d[1](), $t.push(d, t);
483
+ if (l) {
484
+ for (let d = 0; d < $t.length; d += 2)
485
+ $t[d][0]($t[d + 1]);
486
+ $t.length = 0;
487
+ }
488
+ }
489
+ }
490
+ function i(s) {
491
+ r(s(t));
492
+ }
493
+ function a(s, l = U) {
494
+ const d = [s, l];
495
+ return o.add(d), o.size === 1 && (n = e(r) || U), s(t), () => {
496
+ o.delete(d), o.size === 0 && n && (n(), n = null);
497
+ };
498
+ }
499
+ return { set: r, update: i, subscribe: a };
500
+ }
501
+ const Sn = (t) => {
502
+ const { subscribe: e, set: n } = Ut(null);
503
+ let o = null;
504
+ return e((r) => o = r), t.observe(({ changes: r }) => {
505
+ if (o) {
506
+ r.deleted.some((a) => a.id === o) && n(null);
507
+ const i = r.updated.find(({ oldValue: a }) => a.id === o);
508
+ i && n(i.newValue.id);
509
+ }
510
+ }), {
511
+ get current() {
512
+ return o;
513
+ },
514
+ subscribe: e,
515
+ set: n
516
+ };
517
+ };
518
+ var He = /* @__PURE__ */ ((t) => (t.EDIT = "EDIT", t.SELECT = "SELECT", t.NONE = "NONE", t))(He || {});
519
+ const qt = { selected: [] }, Mn = (t, e = "EDIT") => {
520
+ const { subscribe: n, set: o } = Ut(qt);
521
+ let r = qt;
522
+ n((c) => r = c);
523
+ const i = () => o(qt), a = () => {
524
+ var c;
525
+ return ((c = r.selected) == null ? void 0 : c.length) === 0;
526
+ }, s = (c) => {
527
+ if (r.selected.length === 0)
528
+ return !1;
529
+ const f = typeof c == "string" ? c : c.id;
530
+ return r.selected.some((h) => h.id === f);
531
+ }, l = (c, f) => {
532
+ const h = t.getAnnotation(c);
533
+ if (h) {
534
+ const m = Ln(h, e);
535
+ o(m === "EDIT" ? { selected: [{ id: c, editable: !0 }], pointerEvent: f } : m === "SELECT" ? { selected: [{ id: c }], pointerEvent: f } : { selected: [], pointerEvent: f });
536
+ } else
537
+ console.warn("Invalid selection: " + c);
538
+ }, d = (c, f = !0) => {
539
+ const h = Array.isArray(c) ? c : [c], m = h.map((x) => t.getAnnotation(x)).filter((x) => x);
540
+ o({ selected: m.map(({ id: x }) => ({ id: x, editable: f })) }), m.length !== h.length && console.warn("Invalid selection", c);
541
+ }, p = (c) => {
542
+ if (r.selected.length === 0)
543
+ return !1;
544
+ const { selected: f } = r;
545
+ f.filter(({ id: h }) => c.includes(h)).length > 0 && o({ selected: f.filter(({ id: h }) => !c.includes(h)) });
546
+ };
547
+ return t.observe(({ changes: c }) => p(c.deleted.map((f) => f.id))), {
548
+ clear: i,
549
+ clickSelect: l,
550
+ get selected() {
551
+ return r ? [...r.selected] : null;
552
+ },
553
+ get pointerEvent() {
554
+ return r ? r.pointerEvent : null;
555
+ },
556
+ isEmpty: a,
557
+ isSelected: s,
558
+ setSelected: d,
559
+ subscribe: n
560
+ };
561
+ }, Ln = (t, e) => typeof e == "function" ? e(t) || "EDIT" : e || "EDIT", Bn = (t, e) => {
562
+ const n = new Set(t.bodies.map((o) => o.id));
563
+ return e.bodies.filter((o) => !n.has(o.id));
564
+ }, Xn = (t, e) => {
565
+ const n = new Set(e.bodies.map((o) => o.id));
566
+ return t.bodies.filter((o) => !n.has(o.id));
567
+ }, In = (t, e) => e.bodies.map((n) => {
568
+ const o = t.bodies.find((r) => r.id === n.id);
569
+ return { newBody: n, oldBody: o && !pt(o, n) ? o : void 0 };
570
+ }).filter(({ oldBody: n }) => n), Yn = (t, e) => !pt(t.target, e.target), je = (t, e) => {
571
+ const n = Bn(t, e), o = Xn(t, e), r = In(t, e);
572
+ return {
573
+ oldValue: t,
574
+ newValue: e,
575
+ bodiesCreated: n.length > 0 ? n : void 0,
576
+ bodiesDeleted: o.length > 0 ? o : void 0,
577
+ bodiesUpdated: r.length > 0 ? r : void 0,
578
+ targetUpdated: Yn(t, e) ? { oldTarget: t.target, newTarget: e.target } : void 0
579
+ };
580
+ };
581
+ var D = /* @__PURE__ */ ((t) => (t.LOCAL = "LOCAL", t.REMOTE = "REMOTE", t))(D || {});
582
+ const _n = (t, e) => {
583
+ var n, o;
584
+ const { changes: r, origin: i } = e;
585
+ if (!(!t.options.origin || t.options.origin === i))
586
+ return !1;
587
+ if (t.options.ignore) {
588
+ const { ignore: a } = t.options, s = (l) => (l == null ? void 0 : l.length) > 0;
589
+ if (!(s(r.created) || s(r.deleted))) {
590
+ const l = (n = r.updated) == null ? void 0 : n.some((p) => s(p.bodiesCreated) || s(p.bodiesDeleted) || s(p.bodiesUpdated)), d = (o = r.updated) == null ? void 0 : o.some((p) => p.targetUpdated);
591
+ if (a === "BODY_ONLY" && l && !d || a === "TARGET_ONLY" && d && !l)
592
+ return !1;
593
+ }
594
+ }
595
+ if (t.options.annotations) {
596
+ const a = /* @__PURE__ */ new Set([
597
+ ...r.created.map((s) => s.id),
598
+ ...r.deleted.map((s) => s.id),
599
+ ...r.updated.map(({ oldValue: s }) => s.id)
600
+ ]);
601
+ return !!(Array.isArray(t.options.annotations) ? t.options.annotations : [t.options.annotations]).find((s) => a.has(s));
602
+ } else
603
+ return !0;
604
+ }, Cn = (t, e) => {
605
+ const n = new Set((t.created || []).map((c) => c.id)), o = new Set((t.updated || []).map(({ newValue: c }) => c.id)), r = new Set((e.created || []).map((c) => c.id)), i = 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)), l = [
606
+ ...(t.created || []).filter((c) => !i.has(c.id)).map((c) => a.has(c.id) ? e.updated.find(({ oldValue: f }) => f.id === c.id).newValue : c),
607
+ ...e.created || []
608
+ ], d = [
609
+ ...(t.deleted || []).filter((c) => !r.has(c.id)),
610
+ ...(e.deleted || []).filter((c) => !n.has(c.id))
611
+ ], p = [
612
+ ...(t.updated || []).filter(({ newValue: c }) => !i.has(c.id)).map((c) => {
613
+ const { oldValue: f, newValue: h } = c;
614
+ if (a.has(h.id)) {
615
+ const m = e.updated.find((x) => x.oldValue.id === h.id).newValue;
616
+ return je(f, m);
617
+ } else
618
+ return c;
619
+ }),
620
+ ...(e.updated || []).filter(({ oldValue: c }) => !s.has(c.id))
621
+ ];
622
+ return { created: l, deleted: d, updated: p };
623
+ }, Pn = (t) => t.id !== void 0, On = () => {
624
+ const t = /* @__PURE__ */ new Map(), e = /* @__PURE__ */ new Map(), n = [], o = (g, b = {}) => n.push({ onChange: g, options: b }), r = (g) => {
625
+ const b = n.findIndex((w) => w.onChange == g);
626
+ b > -1 && n.splice(b, 1);
627
+ }, i = (g, b) => {
628
+ const w = {
629
+ origin: g,
630
+ changes: {
631
+ created: b.created || [],
632
+ updated: b.updated || [],
633
+ deleted: b.deleted || []
634
+ },
635
+ state: [...t.values()]
636
+ };
637
+ n.forEach((T) => {
638
+ _n(T, w) && T.onChange(w);
639
+ });
640
+ }, a = (g, b = D.LOCAL) => {
641
+ if (t.get(g.id))
642
+ throw Error(`Cannot add annotation ${g.id} - exists already`);
643
+ t.set(g.id, g), g.bodies.forEach((w) => e.set(w.id, g.id)), i(b, { created: [g] });
644
+ }, s = (g, b) => {
645
+ const w = typeof g == "string" ? b : g, T = typeof g == "string" ? g : g.id, X = t.get(T);
646
+ if (X) {
647
+ const P = je(X, w);
648
+ return T === w.id ? t.set(T, w) : (t.delete(T), t.set(w.id, w)), X.bodies.forEach((J) => e.delete(J.id)), w.bodies.forEach((J) => e.set(J.id, w.id)), P;
649
+ } else
650
+ console.warn(`Cannot update annotation ${T} - does not exist`);
651
+ }, l = (g, b = D.LOCAL, w = D.LOCAL) => {
652
+ const T = Pn(b) ? w : b, X = s(g, b);
653
+ X && i(T, { updated: [X] });
654
+ }, d = (g, b = D.LOCAL) => {
655
+ const w = g.reduce((T, X) => {
656
+ const P = s(X);
657
+ return P ? [...T, P] : T;
658
+ }, []);
659
+ w.length > 0 && i(b, { updated: w });
660
+ }, p = (g, b = D.LOCAL) => {
661
+ const w = t.get(g.annotation);
662
+ if (w) {
663
+ const T = {
664
+ ...w,
665
+ bodies: [...w.bodies, g]
666
+ };
667
+ t.set(w.id, T), e.set(g.id, T.id), i(b, { updated: [{
668
+ oldValue: w,
669
+ newValue: T,
670
+ bodiesCreated: [g]
671
+ }] });
672
+ } else
673
+ console.warn(`Attempt to add body to missing annotation: ${g.annotation}`);
674
+ }, c = () => [...t.values()], f = (g = D.LOCAL) => {
675
+ const b = [...t.values()];
676
+ t.clear(), e.clear(), i(g, { deleted: b });
677
+ }, h = (g, b = !0, w = D.LOCAL) => {
678
+ if (b) {
679
+ const T = [...t.values()];
680
+ t.clear(), e.clear(), g.forEach((X) => {
681
+ t.set(X.id, X), X.bodies.forEach((P) => e.set(P.id, X.id));
682
+ }), i(w, { created: g, deleted: T });
683
+ } else {
684
+ const T = g.reduce((X, P) => {
685
+ const J = t.get(P.id);
686
+ return J ? [...X, J] : X;
687
+ }, []);
688
+ if (T.length > 0)
689
+ throw Error(`Bulk insert would overwrite the following annotations: ${T.map((X) => X.id).join(", ")}`);
690
+ g.forEach((X) => {
691
+ t.set(X.id, X), X.bodies.forEach((P) => e.set(P.id, X.id));
692
+ }), i(w, { created: g });
693
+ }
694
+ }, m = (g) => {
695
+ const b = typeof g == "string" ? g : g.id, w = t.get(b);
696
+ if (w)
697
+ return t.delete(b), w.bodies.forEach((T) => e.delete(T.id)), w;
698
+ console.warn(`Attempt to delete missing annotation: ${b}`);
699
+ }, x = (g, b = D.LOCAL) => {
700
+ const w = m(g);
701
+ w && i(b, { deleted: [w] });
702
+ }, A = (g, b = D.LOCAL) => {
703
+ const w = g.reduce((T, X) => {
704
+ const P = m(X);
705
+ return P ? [...T, P] : T;
706
+ }, []);
707
+ w.length > 0 && i(b, { deleted: w });
708
+ }, $ = (g, b = D.LOCAL) => {
709
+ const w = t.get(g.annotation);
710
+ if (w) {
711
+ const T = w.bodies.find((X) => X.id === g.id);
712
+ if (T) {
713
+ e.delete(T.id);
714
+ const X = {
715
+ ...w,
716
+ bodies: w.bodies.filter((P) => P.id !== g.id)
717
+ };
718
+ t.set(w.id, X), i(b, { updated: [{
719
+ oldValue: w,
720
+ newValue: X,
721
+ bodiesDeleted: [T]
722
+ }] });
723
+ } else
724
+ console.warn(`Attempt to delete missing body ${g.id} from annotation ${g.annotation}`);
725
+ } else
726
+ console.warn(`Attempt to delete body from missing annotation ${g.annotation}`);
727
+ }, y = (g) => {
728
+ const b = t.get(g);
729
+ return b ? { ...b } : void 0;
730
+ }, v = (g) => {
731
+ const b = e.get(g);
732
+ if (b) {
733
+ const w = y(b).bodies.find((T) => T.id === g);
734
+ if (w)
735
+ return w;
736
+ console.error(`Store integrity error: body ${g} in index, but not in annotation`);
737
+ } else
738
+ console.warn(`Attempt to retrieve missing body: ${g}`);
739
+ }, E = (g, b) => {
740
+ if (g.annotation !== b.annotation)
741
+ throw "Annotation integrity violation: annotation ID must be the same when updating bodies";
742
+ const w = t.get(g.annotation);
743
+ if (w) {
744
+ const T = w.bodies.find((P) => P.id === g.id), X = {
745
+ ...w,
746
+ bodies: w.bodies.map((P) => P.id === T.id ? b : P)
747
+ };
748
+ return t.set(w.id, X), T.id !== b.id && (e.delete(T.id), e.set(b.id, X.id)), {
749
+ oldValue: w,
750
+ newValue: X,
751
+ bodiesUpdated: [{ oldBody: T, newBody: b }]
752
+ };
753
+ } else
754
+ console.warn(`Attempt to add body to missing annotation ${g.annotation}`);
755
+ }, _ = (g, b, w = D.LOCAL) => {
756
+ const T = E(g, b);
757
+ i(w, { updated: [T] });
758
+ }, C = (g, b = D.LOCAL) => {
759
+ const w = g.map((T) => E({ id: T.id, annotation: T.annotation }, T));
760
+ i(b, { updated: w });
761
+ }, N = (g) => {
762
+ const b = t.get(g.annotation);
763
+ if (b) {
764
+ const w = {
765
+ ...b,
766
+ target: {
767
+ ...b.target,
768
+ ...g
769
+ }
770
+ };
771
+ return t.set(b.id, w), {
772
+ oldValue: b,
773
+ newValue: w,
774
+ targetUpdated: {
775
+ oldTarget: b.target,
776
+ newTarget: g
777
+ }
778
+ };
779
+ } else
780
+ console.warn(`Attempt to update target on missing annotation: ${g.annotation}`);
781
+ };
782
+ return {
783
+ addAnnotation: a,
784
+ addBody: p,
785
+ all: c,
786
+ bulkAddAnnotation: h,
787
+ bulkDeleteAnnotation: A,
788
+ bulkUpdateAnnotation: d,
789
+ bulkUpdateBodies: C,
790
+ bulkUpdateTargets: (g, b = D.LOCAL) => {
791
+ const w = g.map(N).filter((T) => T);
792
+ w.length > 0 && i(b, { updated: w });
793
+ },
794
+ clear: f,
795
+ deleteAnnotation: x,
796
+ deleteBody: $,
797
+ getAnnotation: y,
798
+ getBody: v,
799
+ observe: o,
800
+ unobserve: r,
801
+ updateAnnotation: l,
802
+ updateBody: _,
803
+ updateTarget: (g, b = D.LOCAL) => {
804
+ const w = N(g);
805
+ w && i(b, { updated: [w] });
806
+ }
807
+ };
808
+ }, Vn = (t) => ({
809
+ ...t,
810
+ subscribe: (e) => {
811
+ const n = (o) => e(o.state);
812
+ return t.observe(n), e(t.all()), () => t.unobserve(n);
813
+ }
814
+ });
815
+ let kn = () => ({
816
+ emit(t, ...e) {
817
+ let n = this.events[t] || [];
818
+ for (let o = 0, r = n.length; o < r; o++)
819
+ n[o](...e);
820
+ },
821
+ events: {},
822
+ on(t, e) {
823
+ var n;
824
+ return (n = this.events[t]) != null && n.push(e) || (this.events[t] = [e]), () => {
825
+ var o;
826
+ this.events[t] = (o = this.events[t]) == null ? void 0 : o.filter((r) => e !== r);
827
+ };
828
+ }
829
+ });
830
+ const Nn = 250, Dn = (t) => {
831
+ const e = kn(), n = [];
832
+ let o = -1, r = !1, i = 0;
833
+ const a = (h) => {
834
+ if (!r) {
835
+ const { changes: m } = h, x = performance.now();
836
+ if (x - i > Nn)
837
+ n.splice(o + 1), n.push(m), o = n.length - 1;
838
+ else {
839
+ const A = n.length - 1;
840
+ n[A] = Cn(n[A], m);
841
+ }
842
+ i = x;
843
+ }
844
+ r = !1;
845
+ };
846
+ t.observe(a, { origin: D.LOCAL });
847
+ const s = (h) => (h == null ? void 0 : h.length) > 0 && t.bulkDeleteAnnotation(h), l = (h) => (h == null ? void 0 : h.length) > 0 && t.bulkAddAnnotation(h, !1), d = (h) => (h == null ? void 0 : h.length) > 0 && t.bulkUpdateAnnotation(h.map(({ oldValue: m }) => m)), p = (h) => (h == null ? void 0 : h.length) > 0 && t.bulkUpdateAnnotation(h.map(({ newValue: m }) => m)), c = (h) => (h == null ? void 0 : h.length) > 0 && t.bulkAddAnnotation(h, !1), f = (h) => (h == null ? void 0 : h.length) > 0 && t.bulkDeleteAnnotation(h);
848
+ return {
849
+ canRedo: () => n.length - 1 > o,
850
+ canUndo: () => o > -1,
851
+ destroy: () => t.unobserve(a),
852
+ on: (h, m) => e.on(h, m),
853
+ redo: () => {
854
+ if (n.length - 1 > o) {
855
+ r = !0;
856
+ const { created: h, updated: m, deleted: x } = n[o + 1];
857
+ l(h), p(m), f(x), e.emit("redo", n[o + 1]), o += 1;
858
+ }
859
+ },
860
+ undo: () => {
861
+ if (o > -1) {
862
+ r = !0;
863
+ const { created: h, updated: m, deleted: x } = n[o];
864
+ s(h), d(m), c(x), e.emit("undo", n[o]), o -= 1;
865
+ }
866
+ }
867
+ };
868
+ }, Gn = () => {
869
+ const { subscribe: t, set: e } = Ut([]);
870
+ return {
871
+ subscribe: t,
872
+ set: e
873
+ };
874
+ }, Un = (t, e, n, o) => {
875
+ const { store: r, selection: i, hover: a, viewport: s } = t, l = /* @__PURE__ */ new Map();
876
+ let d = [], p, c;
877
+ const f = ($, y) => {
878
+ l.has($) ? l.get($).push(y) : l.set($, [y]);
879
+ }, h = ($, y) => {
880
+ const v = l.get($);
881
+ v && v.indexOf(y) > 0 && v.splice(v.indexOf(y), 1);
882
+ }, m = ($, y, v) => {
883
+ l.has($) && setTimeout(() => {
884
+ l.get($).forEach((E) => {
885
+ if (n) {
886
+ const _ = Array.isArray(y) ? y.map((N) => n.serialize(N)) : n.serialize(y), C = v ? v instanceof PointerEvent ? v : n.serialize(v) : void 0;
887
+ E(_, C);
888
+ } else
889
+ E(y, v);
890
+ });
891
+ }, 1);
892
+ }, x = () => {
893
+ const { selected: $ } = i, y = $.map(({ id: v }) => r.getAnnotation(v));
894
+ y.forEach((v) => {
895
+ const E = d.find((_) => _.id === v.id);
896
+ (!E || !pt(E, v)) && m("updateAnnotation", v, E);
897
+ }), d = d.map((v) => y.find(({ id: _ }) => _ === v.id) || v);
898
+ };
899
+ i.subscribe(({ selected: $ }) => {
900
+ if (!(d.length === 0 && $.length === 0)) {
901
+ if (d.length === 0 && $.length > 0)
902
+ d = $.map(({ id: y }) => r.getAnnotation(y));
903
+ else if (d.length > 0 && $.length === 0)
904
+ d.forEach((y) => {
905
+ const v = r.getAnnotation(y.id);
906
+ v && !pt(v, y) && m("updateAnnotation", v, y);
907
+ }), d = [];
908
+ else {
909
+ const y = new Set(d.map((E) => E.id)), v = new Set($.map(({ id: E }) => E));
910
+ d.filter((E) => !v.has(E.id)).forEach((E) => {
911
+ const _ = r.getAnnotation(E.id);
912
+ _ && !pt(_, E) && m("updateAnnotation", _, E);
913
+ }), d = [
914
+ // Remove annotations that were deselected
915
+ ...d.filter((E) => v.has(E.id)),
916
+ // Add editable annotations that were selected
917
+ ...$.filter(({ id: E }) => !y.has(E)).map(({ id: E }) => r.getAnnotation(E))
918
+ ];
919
+ }
920
+ m("selectionChanged", d);
921
+ }
922
+ }), a.subscribe(($) => {
923
+ !p && $ ? m("mouseEnterAnnotation", r.getAnnotation($)) : p && !$ ? m("mouseLeaveAnnotation", r.getAnnotation(p)) : p && $ && (m("mouseLeaveAnnotation", r.getAnnotation(p)), m("mouseEnterAnnotation", r.getAnnotation($))), p = $;
924
+ }), s == null || s.subscribe(($) => m("viewportIntersect", $.map(r.getAnnotation))), r.observe(($) => {
925
+ o && (c && clearTimeout(c), c = setTimeout(x, 1e3));
926
+ const { created: y, deleted: v } = $.changes;
927
+ y.forEach((E) => m("createAnnotation", E)), v.forEach((E) => m("deleteAnnotation", E)), $.changes.updated.filter((E) => [
928
+ ...E.bodiesCreated || [],
929
+ ...E.bodiesDeleted || [],
930
+ ...E.bodiesUpdated || []
931
+ ].length > 0).forEach(({ oldValue: E, newValue: _ }) => {
932
+ const C = d.find((N) => N.id === E.id) || E;
933
+ d = d.map((N) => N.id === E.id ? _ : N), m("updateAnnotation", _, C);
934
+ });
935
+ }, { origin: D.LOCAL }), r.observe(($) => {
936
+ if (d) {
937
+ const y = new Set(d.map((E) => E.id)), v = $.changes.updated.filter(({ newValue: E }) => y.has(E.id)).map(({ newValue: E }) => E);
938
+ v.length > 0 && (d = d.map((E) => v.find((C) => C.id === E.id) || E));
939
+ }
940
+ }, { origin: D.REMOTE });
941
+ const A = ($) => (y) => {
942
+ const { created: v, deleted: E, updated: _ } = y;
943
+ v.forEach((C) => m("createAnnotation", C)), E.forEach((C) => m("deleteAnnotation", C)), $ ? _.forEach((C) => m("updateAnnotation", C.oldValue, C.newValue)) : _.forEach((C) => m("updateAnnotation", C.newValue, C.oldValue));
944
+ };
945
+ return e.on("undo", A(!0)), e.on("redo", A(!1)), { on: f, off: h, emit: m };
946
+ }, Fn = (t) => (e) => e.reduce((n, o) => {
947
+ const { parsed: r, error: i } = t.parse(o);
948
+ return i ? {
949
+ parsed: n.parsed,
950
+ failed: [...n.failed, o]
951
+ } : {
952
+ parsed: [...n.parsed, r],
953
+ failed: n.failed
954
+ };
955
+ }, { parsed: [], failed: [] }), Hn = (t, e, n) => {
956
+ const { store: o, selection: r } = t, i = (A) => {
957
+ if (n) {
958
+ const { parsed: $, error: y } = n.parse(A);
959
+ $ ? o.addAnnotation($, D.REMOTE) : console.error(y);
960
+ } else
961
+ o.addAnnotation(A, D.REMOTE);
962
+ }, a = () => r.clear(), s = () => o.clear(), l = (A) => {
963
+ const $ = o.getAnnotation(A);
964
+ return n && $ ? n.serialize($) : $;
965
+ }, d = () => n ? o.all().map(n.serialize) : o.all(), p = () => {
966
+ var A;
967
+ const $ = (((A = r.selected) == null ? void 0 : A.map((y) => y.id)) || []).map((y) => o.getAnnotation(y));
968
+ return n ? $.map(n.serialize) : $;
969
+ }, c = (A) => fetch(A).then(($) => $.json()).then(($) => (h($), $)), f = (A) => {
970
+ if (typeof A == "string") {
971
+ const $ = o.getAnnotation(A);
972
+ return o.deleteAnnotation(A), n ? n.serialize($) : $;
973
+ } else {
974
+ const $ = n ? n.parse(A).parsed : A;
975
+ return o.deleteAnnotation($), A;
976
+ }
977
+ }, h = (A) => {
978
+ if (n) {
979
+ const { parsed: $, failed: y } = Fn(n)(A);
980
+ y.length > 0 && console.warn(`Discarded ${y.length} invalid annotations`, y), o.bulkAddAnnotation($, !0, D.REMOTE);
981
+ } else
982
+ o.bulkAddAnnotation(A, !0, D.REMOTE);
983
+ }, m = (A) => {
984
+ A ? r.setSelected(A) : r.clear();
985
+ }, x = (A) => {
986
+ if (n) {
987
+ const $ = n.parse(A).parsed, y = n.serialize(o.getAnnotation($.id));
988
+ return o.updateAnnotation($), y;
989
+ } else {
990
+ const $ = o.getAnnotation(A.id);
991
+ return o.updateAnnotation(A), $;
992
+ }
993
+ };
994
+ return {
995
+ addAnnotation: i,
996
+ cancelSelected: a,
997
+ canRedo: e.canRedo,
998
+ canUndo: e.canUndo,
999
+ clearAnnotations: s,
1000
+ getAnnotationById: l,
1001
+ getAnnotations: d,
1002
+ getSelected: p,
1003
+ loadAnnotations: c,
1004
+ redo: e.redo,
1005
+ removeAnnotation: f,
1006
+ setAnnotations: h,
1007
+ setSelected: m,
1008
+ undo: e.undo,
1009
+ updateAnnotation: x
1010
+ };
1011
+ };
1012
+ let jn = (t) => crypto.getRandomValues(new Uint8Array(t)), zn = (t, e, n) => {
1013
+ let o = (2 << Math.log(t.length - 1) / Math.LN2) - 1, r = -~(1.6 * o * e / t.length);
1014
+ return (i = e) => {
1015
+ let a = "";
1016
+ for (; ; ) {
1017
+ let s = n(r), l = r;
1018
+ for (; l--; )
1019
+ if (a += t[s[l] & o] || "", a.length === i)
1020
+ return a;
1021
+ }
1022
+ };
1023
+ }, Rn = (t, e = 21) => zn(t, e, jn), qn = (t = 21) => crypto.getRandomValues(new Uint8Array(t)).reduce((e, n) => (n &= 63, n < 36 ? e += n.toString(36) : n < 62 ? e += (n - 26).toString(36).toUpperCase() : n > 62 ? e += "-" : e += "_", e), "");
1024
+ const Wn = () => ({ isGuest: !0, id: Rn("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_", 20)() }), Kn = (t) => {
1025
+ const e = JSON.stringify(t);
1026
+ let n = 0;
1027
+ for (let o = 0, r = e.length; o < r; o++) {
1028
+ let i = e.charCodeAt(o);
1029
+ n = (n << 5) - n + i, n |= 0;
1030
+ }
1031
+ return `${n}`;
1032
+ }, Jn = (t, e) => (Array.isArray(t) ? t : [t]).map((n) => {
1033
+ const { id: o, type: r, purpose: i, value: a, created: s, creator: l, ...d } = n;
1034
+ return {
1035
+ id: o || `temp-${Kn(n)}`,
1036
+ annotation: e,
1037
+ type: r,
1038
+ purpose: i,
1039
+ value: a,
1040
+ created: s,
1041
+ creator: l ? typeof l == "object" ? { ...l } : l : void 0,
1042
+ ...d
1043
+ };
1044
+ }), Qn = (t) => t.map((e) => {
1045
+ var n;
1046
+ const o = { ...e };
1047
+ return delete o.annotation, (n = o.id) != null && n.startsWith("temp-") && delete o.id, o;
1048
+ });
1049
+ qn();
1050
+ const pr = (t, e = !1) => ({ parse: (n) => Zn(n, e), serialize: (n) => to(n, t) }), Zn = (t, e = !1) => {
1051
+ const n = t.id || Fe(), { body: o, ...r } = t, i = Jn(o, n), a = Array.isArray(t.target) ? t.target[0] : t.target, s = Array.isArray(a.selector) ? a.selector[0] : a.selector, l = s.type === "FragmentSelector" ? fn(s, e) : s.type === "SvgSelector" ? xn(s) : void 0;
1052
+ return l ? {
1053
+ parsed: {
1054
+ ...r,
1055
+ id: n,
1056
+ bodies: i,
1057
+ target: {
1058
+ annotation: n,
1059
+ selector: l
1060
+ }
1061
+ }
1062
+ } : {
1063
+ error: Error(`Unknown selector type: ${s.type}`)
1064
+ };
1065
+ }, to = (t, e) => {
1066
+ const n = t.target.selector, o = n.type == F.RECTANGLE ? gn(n.geometry) : bn(n);
1067
+ return {
1068
+ ...t,
1069
+ "@context": "http://www.w3.org/ns/anno.jsonld",
1070
+ id: t.id,
1071
+ type: "Annotation",
1072
+ body: Qn(t.bodies),
1073
+ target: {
1074
+ source: e,
1075
+ selector: o
1076
+ }
1077
+ };
1078
+ };
1079
+ function ge(t, e, n) {
1080
+ const o = t.slice();
1081
+ return o[11] = e[n], o[13] = n, o;
1082
+ }
1083
+ function me(t) {
1084
+ let e, n, o, r, i;
1085
+ return {
1086
+ c() {
1087
+ e = O("rect"), u(e, "class", "a9s-corner-handle"), u(e, "x", n = /*point*/
1088
+ t[11][0] - /*handleSize*/
1089
+ t[3] / 2), u(e, "y", o = /*point*/
1090
+ t[11][1] - /*handleSize*/
1091
+ t[3] / 2), u(
1092
+ e,
1093
+ "height",
1094
+ /*handleSize*/
1095
+ t[3]
1096
+ ), u(
1097
+ e,
1098
+ "width",
1099
+ /*handleSize*/
1100
+ t[3]
1101
+ );
1102
+ },
1103
+ m(a, s) {
1104
+ B(a, e, s), r || (i = R(e, "pointerdown", function() {
1105
+ H(
1106
+ /*grab*/
1107
+ t[10](M(
1108
+ /*idx*/
1109
+ t[13]
1110
+ ))
1111
+ ) && t[10](M(
1112
+ /*idx*/
1113
+ t[13]
1114
+ )).apply(this, arguments);
1115
+ }), r = !0);
1116
+ },
1117
+ p(a, s) {
1118
+ t = a, s & /*geom, handleSize*/
1119
+ 24 && n !== (n = /*point*/
1120
+ t[11][0] - /*handleSize*/
1121
+ t[3] / 2) && u(e, "x", n), s & /*geom, handleSize*/
1122
+ 24 && o !== (o = /*point*/
1123
+ t[11][1] - /*handleSize*/
1124
+ t[3] / 2) && u(e, "y", o), s & /*handleSize*/
1125
+ 8 && u(
1126
+ e,
1127
+ "height",
1128
+ /*handleSize*/
1129
+ t[3]
1130
+ ), s & /*handleSize*/
1131
+ 8 && u(
1132
+ e,
1133
+ "width",
1134
+ /*handleSize*/
1135
+ t[3]
1136
+ );
1137
+ },
1138
+ d(a) {
1139
+ a && L(e), r = !1, i();
1140
+ }
1141
+ };
1142
+ }
1143
+ function eo(t) {
1144
+ let e, n, o, r, i, a, s, l, d, p, c = (
1145
+ /*geom*/
1146
+ t[4].points
1147
+ ), f = [];
1148
+ for (let h = 0; h < c.length; h += 1)
1149
+ f[h] = me(ge(t, c, h));
1150
+ return {
1151
+ c() {
1152
+ e = O("polygon"), r = tt(), i = O("polygon"), s = tt();
1153
+ for (let h = 0; h < f.length; h += 1)
1154
+ f[h].c();
1155
+ l = at(), u(e, "class", "a9s-outer"), u(e, "style", n = /*computedStyle*/
1156
+ t[1] ? "display:none;" : void 0), u(e, "points", o = /*geom*/
1157
+ t[4].points.map(ye).join(" ")), u(i, "class", "a9s-inner a9s-shape-handle"), u(
1158
+ i,
1159
+ "style",
1160
+ /*computedStyle*/
1161
+ t[1]
1162
+ ), u(i, "points", a = /*geom*/
1163
+ t[4].points.map($e).join(" "));
1164
+ },
1165
+ m(h, m) {
1166
+ B(h, e, m), B(h, r, m), B(h, i, m), B(h, s, m);
1167
+ for (let x = 0; x < f.length; x += 1)
1168
+ f[x] && f[x].m(h, m);
1169
+ B(h, l, m), d || (p = [
1170
+ R(e, "pointerdown", function() {
1171
+ H(
1172
+ /*grab*/
1173
+ t[10](M.SHAPE)
1174
+ ) && t[10](M.SHAPE).apply(this, arguments);
1175
+ }),
1176
+ R(i, "pointerdown", function() {
1177
+ H(
1178
+ /*grab*/
1179
+ t[10](M.SHAPE)
1180
+ ) && t[10](M.SHAPE).apply(this, arguments);
1181
+ })
1182
+ ], d = !0);
1183
+ },
1184
+ p(h, m) {
1185
+ if (t = h, m & /*computedStyle*/
1186
+ 2 && n !== (n = /*computedStyle*/
1187
+ t[1] ? "display:none;" : void 0) && u(e, "style", n), m & /*geom*/
1188
+ 16 && o !== (o = /*geom*/
1189
+ t[4].points.map(ye).join(" ")) && u(e, "points", o), m & /*computedStyle*/
1190
+ 2 && u(
1191
+ i,
1192
+ "style",
1193
+ /*computedStyle*/
1194
+ t[1]
1195
+ ), m & /*geom*/
1196
+ 16 && a !== (a = /*geom*/
1197
+ t[4].points.map($e).join(" ")) && u(i, "points", a), m & /*geom, handleSize, grab, Handle*/
1198
+ 1048) {
1199
+ c = /*geom*/
1200
+ t[4].points;
1201
+ let x;
1202
+ for (x = 0; x < c.length; x += 1) {
1203
+ const A = ge(t, c, x);
1204
+ f[x] ? f[x].p(A, m) : (f[x] = me(A), f[x].c(), f[x].m(l.parentNode, l));
1205
+ }
1206
+ for (; x < f.length; x += 1)
1207
+ f[x].d(1);
1208
+ f.length = c.length;
1209
+ }
1210
+ },
1211
+ d(h) {
1212
+ h && L(e), h && L(r), h && L(i), h && L(s), oe(f, h), h && L(l), d = !1, it(p);
1213
+ }
1214
+ };
1215
+ }
1216
+ function no(t) {
1217
+ let e, n;
1218
+ return e = new Re({
1219
+ props: {
1220
+ shape: (
1221
+ /*shape*/
1222
+ t[0]
1223
+ ),
1224
+ transform: (
1225
+ /*transform*/
1226
+ t[2]
1227
+ ),
1228
+ editor: (
1229
+ /*editor*/
1230
+ t[5]
1231
+ ),
1232
+ $$slots: {
1233
+ default: [
1234
+ eo,
1235
+ ({ grab: o }) => ({ 10: o }),
1236
+ ({ grab: o }) => o ? 1024 : 0
1237
+ ]
1238
+ },
1239
+ $$scope: { ctx: t }
1240
+ }
1241
+ }), e.$on(
1242
+ "change",
1243
+ /*change_handler*/
1244
+ t[7]
1245
+ ), e.$on(
1246
+ "grab",
1247
+ /*grab_handler*/
1248
+ t[8]
1249
+ ), e.$on(
1250
+ "release",
1251
+ /*release_handler*/
1252
+ t[9]
1253
+ ), {
1254
+ c() {
1255
+ ft(e.$$.fragment);
1256
+ },
1257
+ m(o, r) {
1258
+ ct(e, o, r), n = !0;
1259
+ },
1260
+ p(o, [r]) {
1261
+ const i = {};
1262
+ r & /*shape*/
1263
+ 1 && (i.shape = /*shape*/
1264
+ o[0]), r & /*transform*/
1265
+ 4 && (i.transform = /*transform*/
1266
+ o[2]), r & /*$$scope, geom, handleSize, grab, computedStyle*/
1267
+ 17434 && (i.$$scope = { dirty: r, ctx: o }), e.$set(i);
1268
+ },
1269
+ i(o) {
1270
+ n || (V(e.$$.fragment, o), n = !0);
1271
+ },
1272
+ o(o) {
1273
+ k(e.$$.fragment, o), n = !1;
1274
+ },
1275
+ d(o) {
1276
+ ut(e, o);
1277
+ }
1278
+ };
1279
+ }
1280
+ const ye = (t) => t.join(","), $e = (t) => t.join(",");
1281
+ function oo(t, e, n) {
1282
+ let o, r, { shape: i } = e, { computedStyle: a = void 0 } = e, { transform: s } = e, { viewportScale: l = 1 } = e;
1283
+ const d = (h, m, x) => {
1284
+ let A;
1285
+ m === M.SHAPE ? A = h.geometry.points.map(([y, v]) => [y + x[0], v + x[1]]) : A = h.geometry.points.map(([y, v], E) => m === M(E) ? [y + x[0], v + x[1]] : [y, v]);
1286
+ const $ = Gt(A);
1287
+ return { ...h, geometry: { points: A, bounds: $ } };
1288
+ };
1289
+ function p(h) {
1290
+ vt.call(this, t, h);
1291
+ }
1292
+ function c(h) {
1293
+ vt.call(this, t, h);
1294
+ }
1295
+ function f(h) {
1296
+ vt.call(this, t, h);
1297
+ }
1298
+ return t.$$set = (h) => {
1299
+ "shape" in h && n(0, i = h.shape), "computedStyle" in h && n(1, a = h.computedStyle), "transform" in h && n(2, s = h.transform), "viewportScale" in h && n(6, l = h.viewportScale);
1300
+ }, t.$$.update = () => {
1301
+ t.$$.dirty & /*shape*/
1302
+ 1 && n(4, o = i.geometry), t.$$.dirty & /*viewportScale*/
1303
+ 64 && n(3, r = 10 / l);
1304
+ }, [
1305
+ i,
1306
+ a,
1307
+ s,
1308
+ r,
1309
+ o,
1310
+ d,
1311
+ l,
1312
+ p,
1313
+ c,
1314
+ f
1315
+ ];
1316
+ }
1317
+ class ro extends nt {
1318
+ constructor(e) {
1319
+ super(), et(this, e, oo, no, K, {
1320
+ shape: 0,
1321
+ computedStyle: 1,
1322
+ transform: 2,
1323
+ viewportScale: 6
1324
+ });
1325
+ }
1326
+ }
1327
+ function io(t) {
1328
+ let e, n, o, r, i, a, s, l, d, p, c, f, h, m, x, A, $, y, v, E, _, C, N, g, b, w, T, X, P, J, gt, mt, Tt, W, I, q, j, G, st, lt, Ht, Q, Yt, _t, jt, Z, Ct, Pt, zt, se;
1329
+ return {
1330
+ c() {
1331
+ e = O("rect"), s = tt(), l = O("rect"), h = tt(), m = O("rect"), y = tt(), v = O("rect"), N = tt(), g = O("rect"), X = tt(), P = O("rect"), Tt = tt(), W = O("rect"), j = tt(), G = O("rect"), Ht = tt(), Q = O("rect"), jt = tt(), Z = O("rect"), u(e, "class", "a9s-outer"), u(e, "style", n = /*computedStyle*/
1332
+ t[1] ? "display:none;" : void 0), u(e, "x", o = /*geom*/
1333
+ t[4].x), u(e, "y", r = /*geom*/
1334
+ t[4].y), u(e, "width", i = /*geom*/
1335
+ t[4].w), u(e, "height", a = /*geom*/
1336
+ t[4].h), u(l, "class", "a9s-inner a9s-shape-handle"), u(
1337
+ l,
1338
+ "style",
1339
+ /*computedStyle*/
1340
+ t[1]
1341
+ ), u(l, "x", d = /*geom*/
1342
+ t[4].x), u(l, "y", p = /*geom*/
1343
+ t[4].y), u(l, "width", c = /*geom*/
1344
+ t[4].w), u(l, "height", f = /*geom*/
1345
+ t[4].h), u(m, "class", "a9s-edge-handle a9s-edge-handle-top"), u(m, "x", x = /*geom*/
1346
+ t[4].x), u(m, "y", A = /*geom*/
1347
+ t[4].y), u(m, "height", 1), u(m, "width", $ = /*geom*/
1348
+ t[4].w), u(v, "class", "a9s-edge-handle a9s-edge-handle-right"), u(v, "x", E = /*geom*/
1349
+ t[4].x + /*geom*/
1350
+ t[4].w), u(v, "y", _ = /*geom*/
1351
+ t[4].y), u(v, "height", C = /*geom*/
1352
+ t[4].h), u(v, "width", 1), u(g, "class", "a9s-edge-handle a9s-edge-handle-bottom"), u(g, "x", b = /*geom*/
1353
+ t[4].x), u(g, "y", w = /*geom*/
1354
+ t[4].y + /*geom*/
1355
+ t[4].h), u(g, "height", 1), u(g, "width", T = /*geom*/
1356
+ t[4].w), u(P, "class", "a9s-edge-handle a9s-edge-handle-left"), u(P, "x", J = /*geom*/
1357
+ t[4].x), u(P, "y", gt = /*geom*/
1358
+ t[4].y), u(P, "height", mt = /*geom*/
1359
+ t[4].h), u(P, "width", 1), u(W, "class", "a9s-corner-handle a9s-corner-handle-topleft"), u(W, "x", I = /*geom*/
1360
+ t[4].x - /*handleSize*/
1361
+ t[3] / 2), u(W, "y", q = /*geom*/
1362
+ t[4].y - /*handleSize*/
1363
+ t[3] / 2), u(
1364
+ W,
1365
+ "height",
1366
+ /*handleSize*/
1367
+ t[3]
1368
+ ), u(
1369
+ W,
1370
+ "width",
1371
+ /*handleSize*/
1372
+ t[3]
1373
+ ), u(G, "class", "a9s-corner-handle a9s-corner-handle-topright"), u(G, "x", st = /*geom*/
1374
+ t[4].x + /*geom*/
1375
+ t[4].w - /*handleSize*/
1376
+ t[3] / 2), u(G, "y", lt = /*geom*/
1377
+ t[4].y - /*handleSize*/
1378
+ t[3] / 2), u(
1379
+ G,
1380
+ "height",
1381
+ /*handleSize*/
1382
+ t[3]
1383
+ ), u(
1384
+ G,
1385
+ "width",
1386
+ /*handleSize*/
1387
+ t[3]
1388
+ ), u(Q, "class", "a9s-corner-handle a9s-corner-handle-bottomright"), u(Q, "x", Yt = /*geom*/
1389
+ t[4].x + /*geom*/
1390
+ t[4].w - /*handleSize*/
1391
+ t[3] / 2), u(Q, "y", _t = /*geom*/
1392
+ t[4].y + /*geom*/
1393
+ t[4].h - /*handleSize*/
1394
+ t[3] / 2), u(
1395
+ Q,
1396
+ "height",
1397
+ /*handleSize*/
1398
+ t[3]
1399
+ ), u(
1400
+ Q,
1401
+ "width",
1402
+ /*handleSize*/
1403
+ t[3]
1404
+ ), u(Z, "class", "a9s-corner-handle a9s-corner-handle-bottomleft"), u(Z, "x", Ct = /*geom*/
1405
+ t[4].x - /*handleSize*/
1406
+ t[3] / 2), u(Z, "y", Pt = /*geom*/
1407
+ t[4].y + /*geom*/
1408
+ t[4].h - /*handleSize*/
1409
+ t[3] / 2), u(
1410
+ Z,
1411
+ "height",
1412
+ /*handleSize*/
1413
+ t[3]
1414
+ ), u(
1415
+ Z,
1416
+ "width",
1417
+ /*handleSize*/
1418
+ t[3]
1419
+ );
1420
+ },
1421
+ m(Y, S) {
1422
+ B(Y, e, S), B(Y, s, S), B(Y, l, S), B(Y, h, S), B(Y, m, S), B(Y, y, S), B(Y, v, S), B(Y, N, S), B(Y, g, S), B(Y, X, S), B(Y, P, S), B(Y, Tt, S), B(Y, W, S), B(Y, j, S), B(Y, G, S), B(Y, Ht, S), B(Y, Q, S), B(Y, jt, S), B(Y, Z, S), zt || (se = [
1423
+ R(e, "pointerdown", function() {
1424
+ H(
1425
+ /*grab*/
1426
+ t[10](M.SHAPE)
1427
+ ) && t[10](M.SHAPE).apply(this, arguments);
1428
+ }),
1429
+ R(l, "pointerdown", function() {
1430
+ H(
1431
+ /*grab*/
1432
+ t[10](M.SHAPE)
1433
+ ) && t[10](M.SHAPE).apply(this, arguments);
1434
+ }),
1435
+ R(m, "pointerdown", function() {
1436
+ H(
1437
+ /*grab*/
1438
+ t[10](M.TOP)
1439
+ ) && t[10](M.TOP).apply(this, arguments);
1440
+ }),
1441
+ R(v, "pointerdown", function() {
1442
+ H(
1443
+ /*grab*/
1444
+ t[10](M.RIGHT)
1445
+ ) && t[10](M.RIGHT).apply(this, arguments);
1446
+ }),
1447
+ R(g, "pointerdown", function() {
1448
+ H(
1449
+ /*grab*/
1450
+ t[10](M.BOTTOM)
1451
+ ) && t[10](M.BOTTOM).apply(this, arguments);
1452
+ }),
1453
+ R(P, "pointerdown", function() {
1454
+ H(
1455
+ /*grab*/
1456
+ t[10](M.LEFT)
1457
+ ) && t[10](M.LEFT).apply(this, arguments);
1458
+ }),
1459
+ R(W, "pointerdown", function() {
1460
+ H(
1461
+ /*grab*/
1462
+ t[10](M.TOP_LEFT)
1463
+ ) && t[10](M.TOP_LEFT).apply(this, arguments);
1464
+ }),
1465
+ R(G, "pointerdown", function() {
1466
+ H(
1467
+ /*grab*/
1468
+ t[10](M.TOP_RIGHT)
1469
+ ) && t[10](M.TOP_RIGHT).apply(this, arguments);
1470
+ }),
1471
+ R(Q, "pointerdown", function() {
1472
+ H(
1473
+ /*grab*/
1474
+ t[10](M.BOTTOM_RIGHT)
1475
+ ) && t[10](M.BOTTOM_RIGHT).apply(this, arguments);
1476
+ }),
1477
+ R(Z, "pointerdown", function() {
1478
+ H(
1479
+ /*grab*/
1480
+ t[10](M.BOTTOM_LEFT)
1481
+ ) && t[10](M.BOTTOM_LEFT).apply(this, arguments);
1482
+ })
1483
+ ], zt = !0);
1484
+ },
1485
+ p(Y, S) {
1486
+ t = Y, S & /*computedStyle*/
1487
+ 2 && n !== (n = /*computedStyle*/
1488
+ t[1] ? "display:none;" : void 0) && u(e, "style", n), S & /*geom*/
1489
+ 16 && o !== (o = /*geom*/
1490
+ t[4].x) && u(e, "x", o), S & /*geom*/
1491
+ 16 && r !== (r = /*geom*/
1492
+ t[4].y) && u(e, "y", r), S & /*geom*/
1493
+ 16 && i !== (i = /*geom*/
1494
+ t[4].w) && u(e, "width", i), S & /*geom*/
1495
+ 16 && a !== (a = /*geom*/
1496
+ t[4].h) && u(e, "height", a), S & /*computedStyle*/
1497
+ 2 && u(
1498
+ l,
1499
+ "style",
1500
+ /*computedStyle*/
1501
+ t[1]
1502
+ ), S & /*geom*/
1503
+ 16 && d !== (d = /*geom*/
1504
+ t[4].x) && u(l, "x", d), S & /*geom*/
1505
+ 16 && p !== (p = /*geom*/
1506
+ t[4].y) && u(l, "y", p), S & /*geom*/
1507
+ 16 && c !== (c = /*geom*/
1508
+ t[4].w) && u(l, "width", c), S & /*geom*/
1509
+ 16 && f !== (f = /*geom*/
1510
+ t[4].h) && u(l, "height", f), S & /*geom*/
1511
+ 16 && x !== (x = /*geom*/
1512
+ t[4].x) && u(m, "x", x), S & /*geom*/
1513
+ 16 && A !== (A = /*geom*/
1514
+ t[4].y) && u(m, "y", A), S & /*geom*/
1515
+ 16 && $ !== ($ = /*geom*/
1516
+ t[4].w) && u(m, "width", $), S & /*geom*/
1517
+ 16 && E !== (E = /*geom*/
1518
+ t[4].x + /*geom*/
1519
+ t[4].w) && u(v, "x", E), S & /*geom*/
1520
+ 16 && _ !== (_ = /*geom*/
1521
+ t[4].y) && u(v, "y", _), S & /*geom*/
1522
+ 16 && C !== (C = /*geom*/
1523
+ t[4].h) && u(v, "height", C), S & /*geom*/
1524
+ 16 && b !== (b = /*geom*/
1525
+ t[4].x) && u(g, "x", b), S & /*geom*/
1526
+ 16 && w !== (w = /*geom*/
1527
+ t[4].y + /*geom*/
1528
+ t[4].h) && u(g, "y", w), S & /*geom*/
1529
+ 16 && T !== (T = /*geom*/
1530
+ t[4].w) && u(g, "width", T), S & /*geom*/
1531
+ 16 && J !== (J = /*geom*/
1532
+ t[4].x) && u(P, "x", J), S & /*geom*/
1533
+ 16 && gt !== (gt = /*geom*/
1534
+ t[4].y) && u(P, "y", gt), S & /*geom*/
1535
+ 16 && mt !== (mt = /*geom*/
1536
+ t[4].h) && u(P, "height", mt), S & /*geom, handleSize*/
1537
+ 24 && I !== (I = /*geom*/
1538
+ t[4].x - /*handleSize*/
1539
+ t[3] / 2) && u(W, "x", I), S & /*geom, handleSize*/
1540
+ 24 && q !== (q = /*geom*/
1541
+ t[4].y - /*handleSize*/
1542
+ t[3] / 2) && u(W, "y", q), S & /*handleSize*/
1543
+ 8 && u(
1544
+ W,
1545
+ "height",
1546
+ /*handleSize*/
1547
+ t[3]
1548
+ ), S & /*handleSize*/
1549
+ 8 && u(
1550
+ W,
1551
+ "width",
1552
+ /*handleSize*/
1553
+ t[3]
1554
+ ), S & /*geom, handleSize*/
1555
+ 24 && st !== (st = /*geom*/
1556
+ t[4].x + /*geom*/
1557
+ t[4].w - /*handleSize*/
1558
+ t[3] / 2) && u(G, "x", st), S & /*geom, handleSize*/
1559
+ 24 && lt !== (lt = /*geom*/
1560
+ t[4].y - /*handleSize*/
1561
+ t[3] / 2) && u(G, "y", lt), S & /*handleSize*/
1562
+ 8 && u(
1563
+ G,
1564
+ "height",
1565
+ /*handleSize*/
1566
+ t[3]
1567
+ ), S & /*handleSize*/
1568
+ 8 && u(
1569
+ G,
1570
+ "width",
1571
+ /*handleSize*/
1572
+ t[3]
1573
+ ), S & /*geom, handleSize*/
1574
+ 24 && Yt !== (Yt = /*geom*/
1575
+ t[4].x + /*geom*/
1576
+ t[4].w - /*handleSize*/
1577
+ t[3] / 2) && u(Q, "x", Yt), S & /*geom, handleSize*/
1578
+ 24 && _t !== (_t = /*geom*/
1579
+ t[4].y + /*geom*/
1580
+ t[4].h - /*handleSize*/
1581
+ t[3] / 2) && u(Q, "y", _t), S & /*handleSize*/
1582
+ 8 && u(
1583
+ Q,
1584
+ "height",
1585
+ /*handleSize*/
1586
+ t[3]
1587
+ ), S & /*handleSize*/
1588
+ 8 && u(
1589
+ Q,
1590
+ "width",
1591
+ /*handleSize*/
1592
+ t[3]
1593
+ ), S & /*geom, handleSize*/
1594
+ 24 && Ct !== (Ct = /*geom*/
1595
+ t[4].x - /*handleSize*/
1596
+ t[3] / 2) && u(Z, "x", Ct), S & /*geom, handleSize*/
1597
+ 24 && Pt !== (Pt = /*geom*/
1598
+ t[4].y + /*geom*/
1599
+ t[4].h - /*handleSize*/
1600
+ t[3] / 2) && u(Z, "y", Pt), S & /*handleSize*/
1601
+ 8 && u(
1602
+ Z,
1603
+ "height",
1604
+ /*handleSize*/
1605
+ t[3]
1606
+ ), S & /*handleSize*/
1607
+ 8 && u(
1608
+ Z,
1609
+ "width",
1610
+ /*handleSize*/
1611
+ t[3]
1612
+ );
1613
+ },
1614
+ d(Y) {
1615
+ Y && L(e), Y && L(s), Y && L(l), Y && L(h), Y && L(m), Y && L(y), Y && L(v), Y && L(N), Y && L(g), Y && L(X), Y && L(P), Y && L(Tt), Y && L(W), Y && L(j), Y && L(G), Y && L(Ht), Y && L(Q), Y && L(jt), Y && L(Z), zt = !1, it(se);
1616
+ }
1617
+ };
1618
+ }
1619
+ function ao(t) {
1620
+ let e, n;
1621
+ return e = new Re({
1622
+ props: {
1623
+ shape: (
1624
+ /*shape*/
1625
+ t[0]
1626
+ ),
1627
+ transform: (
1628
+ /*transform*/
1629
+ t[2]
1630
+ ),
1631
+ editor: (
1632
+ /*editor*/
1633
+ t[5]
1634
+ ),
1635
+ $$slots: {
1636
+ default: [
1637
+ io,
1638
+ ({ grab: o }) => ({ 10: o }),
1639
+ ({ grab: o }) => o ? 1024 : 0
1640
+ ]
1641
+ },
1642
+ $$scope: { ctx: t }
1643
+ }
1644
+ }), e.$on(
1645
+ "grab",
1646
+ /*grab_handler*/
1647
+ t[7]
1648
+ ), e.$on(
1649
+ "change",
1650
+ /*change_handler*/
1651
+ t[8]
1652
+ ), e.$on(
1653
+ "release",
1654
+ /*release_handler*/
1655
+ t[9]
1656
+ ), {
1657
+ c() {
1658
+ ft(e.$$.fragment);
1659
+ },
1660
+ m(o, r) {
1661
+ ct(e, o, r), n = !0;
1662
+ },
1663
+ p(o, [r]) {
1664
+ const i = {};
1665
+ r & /*shape*/
1666
+ 1 && (i.shape = /*shape*/
1667
+ o[0]), r & /*transform*/
1668
+ 4 && (i.transform = /*transform*/
1669
+ o[2]), r & /*$$scope, geom, handleSize, grab, computedStyle*/
1670
+ 3098 && (i.$$scope = { dirty: r, ctx: o }), e.$set(i);
1671
+ },
1672
+ i(o) {
1673
+ n || (V(e.$$.fragment, o), n = !0);
1674
+ },
1675
+ o(o) {
1676
+ k(e.$$.fragment, o), n = !1;
1677
+ },
1678
+ d(o) {
1679
+ ut(e, o);
1680
+ }
1681
+ };
1682
+ }
1683
+ function so(t, e, n) {
1684
+ let o, r, { shape: i } = e, { computedStyle: a = void 0 } = e, { transform: s } = e, { viewportScale: l = 1 } = e;
1685
+ const d = (h, m, x) => {
1686
+ const A = h.geometry.bounds;
1687
+ let [$, y] = [A.minX, A.minY], [v, E] = [A.maxX, A.maxY];
1688
+ const [_, C] = x;
1689
+ if (m === M.SHAPE)
1690
+ $ += _, v += _, y += C, E += C;
1691
+ else {
1692
+ switch (m) {
1693
+ case M.TOP:
1694
+ case M.TOP_LEFT:
1695
+ case M.TOP_RIGHT: {
1696
+ y += C;
1697
+ break;
1698
+ }
1699
+ case M.BOTTOM:
1700
+ case M.BOTTOM_LEFT:
1701
+ case M.BOTTOM_RIGHT: {
1702
+ E += C;
1703
+ break;
1704
+ }
1705
+ }
1706
+ switch (m) {
1707
+ case M.LEFT:
1708
+ case M.TOP_LEFT:
1709
+ case M.BOTTOM_LEFT: {
1710
+ $ += _;
1711
+ break;
1712
+ }
1713
+ case M.RIGHT:
1714
+ case M.TOP_RIGHT:
1715
+ case M.BOTTOM_RIGHT: {
1716
+ v += _;
1717
+ break;
1718
+ }
1719
+ }
1720
+ }
1721
+ const N = Math.min($, v), g = Math.min(y, E), b = Math.abs(v - $), w = Math.abs(E - y);
1722
+ return {
1723
+ ...h,
1724
+ geometry: {
1725
+ x: N,
1726
+ y: g,
1727
+ w: b,
1728
+ h: w,
1729
+ bounds: {
1730
+ minX: N,
1731
+ minY: g,
1732
+ maxX: N + b,
1733
+ maxY: g + w
1734
+ }
1735
+ }
1736
+ };
1737
+ };
1738
+ function p(h) {
1739
+ vt.call(this, t, h);
1740
+ }
1741
+ function c(h) {
1742
+ vt.call(this, t, h);
1743
+ }
1744
+ function f(h) {
1745
+ vt.call(this, t, h);
1746
+ }
1747
+ return t.$$set = (h) => {
1748
+ "shape" in h && n(0, i = h.shape), "computedStyle" in h && n(1, a = h.computedStyle), "transform" in h && n(2, s = h.transform), "viewportScale" in h && n(6, l = h.viewportScale);
1749
+ }, t.$$.update = () => {
1750
+ t.$$.dirty & /*shape*/
1751
+ 1 && n(4, o = i.geometry), t.$$.dirty & /*viewportScale*/
1752
+ 64 && n(3, r = 10 / l);
1753
+ }, [
1754
+ i,
1755
+ a,
1756
+ s,
1757
+ r,
1758
+ o,
1759
+ d,
1760
+ l,
1761
+ p,
1762
+ c,
1763
+ f
1764
+ ];
1765
+ }
1766
+ class lo extends nt {
1767
+ constructor(e) {
1768
+ super(), et(this, e, so, ao, K, {
1769
+ shape: 0,
1770
+ computedStyle: 1,
1771
+ transform: 2,
1772
+ viewportScale: 6
1773
+ });
1774
+ }
1775
+ }
1776
+ const ze = /* @__PURE__ */ new Map([
1777
+ [F.RECTANGLE, lo],
1778
+ [F.POLYGON, ro]
1779
+ ]), we = (t) => ze.get(t.type), co = (t, e) => ze.set(t, e), M = (t) => `HANDLE-${t}`;
1780
+ M.SHAPE = "SHAPE";
1781
+ M.TOP = "TOP";
1782
+ M.RIGHT = "RIGHT";
1783
+ M.BOTTOM = "BOTTOM";
1784
+ M.LEFT = "LEFT";
1785
+ M.TOP_LEFT = "TOP_LEFT";
1786
+ M.TOP_RIGHT = "TOP_RIGHT";
1787
+ M.BOTTOM_RIGHT = "BOTTOM_RIGHT";
1788
+ M.BOTTOM_LEFT = "BOTTOM_LEFT";
1789
+ const uo = (t) => ({}), xe = (t) => ({ grab: (
1790
+ /*onGrab*/
1791
+ t[0]
1792
+ ) });
1793
+ function ho(t) {
1794
+ let e, n, o, r;
1795
+ const i = (
1796
+ /*#slots*/
1797
+ t[7].default
1798
+ ), a = Qe(
1799
+ i,
1800
+ t,
1801
+ /*$$scope*/
1802
+ t[6],
1803
+ xe
1804
+ );
1805
+ return {
1806
+ c() {
1807
+ e = O("g"), a && a.c(), u(e, "class", "a9s-annotation selected");
1808
+ },
1809
+ m(s, l) {
1810
+ B(s, e, l), a && a.m(e, null), n = !0, o || (r = [
1811
+ R(
1812
+ e,
1813
+ "pointerup",
1814
+ /*onRelease*/
1815
+ t[2]
1816
+ ),
1817
+ R(
1818
+ e,
1819
+ "pointermove",
1820
+ /*onPointerMove*/
1821
+ t[1]
1822
+ )
1823
+ ], o = !0);
1824
+ },
1825
+ p(s, [l]) {
1826
+ a && a.p && (!n || l & /*$$scope*/
1827
+ 64) && tn(
1828
+ a,
1829
+ i,
1830
+ s,
1831
+ /*$$scope*/
1832
+ s[6],
1833
+ n ? Ze(
1834
+ i,
1835
+ /*$$scope*/
1836
+ s[6],
1837
+ l,
1838
+ uo
1839
+ ) : en(
1840
+ /*$$scope*/
1841
+ s[6]
1842
+ ),
1843
+ xe
1844
+ );
1845
+ },
1846
+ i(s) {
1847
+ n || (V(a, s), n = !0);
1848
+ },
1849
+ o(s) {
1850
+ k(a, s), n = !1;
1851
+ },
1852
+ d(s) {
1853
+ s && L(e), a && a.d(s), o = !1, it(r);
1854
+ }
1855
+ };
1856
+ }
1857
+ function po(t, e, n) {
1858
+ let { $$slots: o = {}, $$scope: r } = e;
1859
+ const i = At();
1860
+ let { shape: a } = e, { editor: s } = e, { transform: l } = e, d = null, p, c = null;
1861
+ const f = (x) => (A) => {
1862
+ d = x, p = l.elementToImage(A.offsetX, A.offsetY), c = a, A.target.setPointerCapture(A.pointerId), i("grab");
1863
+ }, h = (x) => {
1864
+ if (d) {
1865
+ const [A, $] = l.elementToImage(x.offsetX, x.offsetY), y = [A - p[0], $ - p[1]];
1866
+ n(3, a = s(c, d, y)), i("change", a);
1867
+ }
1868
+ }, m = (x) => {
1869
+ x.target.releasePointerCapture(x.pointerId), d = null, c = a, i("release");
1870
+ };
1871
+ return t.$$set = (x) => {
1872
+ "shape" in x && n(3, a = x.shape), "editor" in x && n(4, s = x.editor), "transform" in x && n(5, l = x.transform), "$$scope" in x && n(6, r = x.$$scope);
1873
+ }, [f, h, m, a, s, l, r, o];
1874
+ }
1875
+ class Re extends nt {
1876
+ constructor(e) {
1877
+ super(), et(this, e, po, ho, K, { shape: 3, editor: 4, transform: 5 });
1878
+ }
1879
+ }
1880
+ const Ft = (t, e) => {
1881
+ const n = typeof e == "function" ? e(t) : e;
1882
+ if (n) {
1883
+ const { fill: o, fillOpacity: r } = n;
1884
+ let i = "";
1885
+ return o && (i += `fill:${o};stroke:${o};`), i += `fill-opacity:${r || "0.25"};`, i;
1886
+ }
1887
+ };
1888
+ function fo(t, e, n) {
1889
+ let o;
1890
+ const r = At();
1891
+ let { annotation: i } = e, { editor: a } = e, { style: s = void 0 } = e, { target: l } = e, { transform: d } = e, { viewportScale: p } = e, c;
1892
+ return It(() => (n(6, c = new a({
1893
+ target: l,
1894
+ props: {
1895
+ shape: i.target.selector,
1896
+ computedStyle: o,
1897
+ transform: d,
1898
+ viewportScale: p
1899
+ }
1900
+ })), c.$on("change", (f) => {
1901
+ c.$$set({ shape: f.detail }), r("change", f.detail);
1902
+ }), c.$on("grab", (f) => r("grab", f.detail)), c.$on("release", (f) => r("release", f.detail)), () => {
1903
+ c.$destroy();
1904
+ })), t.$$set = (f) => {
1905
+ "annotation" in f && n(0, i = f.annotation), "editor" in f && n(1, a = f.editor), "style" in f && n(2, s = f.style), "target" in f && n(3, l = f.target), "transform" in f && n(4, d = f.transform), "viewportScale" in f && n(5, p = f.viewportScale);
1906
+ }, t.$$.update = () => {
1907
+ t.$$.dirty & /*annotation, style*/
1908
+ 5 && (o = Ft(i, s)), t.$$.dirty & /*annotation, editorComponent*/
1909
+ 65 && i && (c == null || c.$set({ shape: i.target.selector })), t.$$.dirty & /*editorComponent, transform*/
1910
+ 80 && c && c.$set({ transform: d }), t.$$.dirty & /*editorComponent, viewportScale*/
1911
+ 96 && c && c.$set({ viewportScale: p });
1912
+ }, [i, a, s, l, d, p, c];
1913
+ }
1914
+ class go extends nt {
1915
+ constructor(e) {
1916
+ super(), et(this, e, fo, null, K, {
1917
+ annotation: 0,
1918
+ editor: 1,
1919
+ style: 2,
1920
+ target: 3,
1921
+ transform: 4,
1922
+ viewportScale: 5
1923
+ });
1924
+ }
1925
+ }
1926
+ function mo(t, e, n) {
1927
+ const o = At();
1928
+ let { drawingMode: r } = e, { target: i } = e, { tool: a } = e, { transform: s } = e, { viewportScale: l } = e, d;
1929
+ return It(() => {
1930
+ const p = i.closest("svg"), c = [], f = (h, m, x) => {
1931
+ p.addEventListener(h, m, x), c.push(() => p.removeEventListener(h, m, x));
1932
+ };
1933
+ return n(5, d = new a({
1934
+ target: i,
1935
+ props: {
1936
+ addEventListener: f,
1937
+ drawingMode: r,
1938
+ transform: s,
1939
+ viewportScale: l
1940
+ }
1941
+ })), d.$on("create", (h) => o("create", h.detail)), () => {
1942
+ c.forEach((h) => h()), d.$destroy();
1943
+ };
1944
+ }), t.$$set = (p) => {
1945
+ "drawingMode" in p && n(0, r = p.drawingMode), "target" in p && n(1, i = p.target), "tool" in p && n(2, a = p.tool), "transform" in p && n(3, s = p.transform), "viewportScale" in p && n(4, l = p.viewportScale);
1946
+ }, t.$$.update = () => {
1947
+ t.$$.dirty & /*toolComponent, transform*/
1948
+ 40 && d && d.$set({ transform: s }), t.$$.dirty & /*toolComponent, viewportScale*/
1949
+ 48 && d && d.$set({ viewportScale: l });
1950
+ }, [r, i, a, s, l, d];
1951
+ }
1952
+ class yo extends nt {
1953
+ constructor(e) {
1954
+ super(), et(this, e, mo, null, K, {
1955
+ drawingMode: 0,
1956
+ target: 1,
1957
+ tool: 2,
1958
+ transform: 3,
1959
+ viewportScale: 4
1960
+ });
1961
+ }
1962
+ }
1963
+ function be(t) {
1964
+ let e, n;
1965
+ return {
1966
+ c() {
1967
+ e = O("rect"), n = O("rect"), u(e, "class", "a9s-outer"), u(
1968
+ e,
1969
+ "x",
1970
+ /*x*/
1971
+ t[1]
1972
+ ), u(
1973
+ e,
1974
+ "y",
1975
+ /*y*/
1976
+ t[2]
1977
+ ), u(
1978
+ e,
1979
+ "width",
1980
+ /*w*/
1981
+ t[3]
1982
+ ), u(
1983
+ e,
1984
+ "height",
1985
+ /*h*/
1986
+ t[4]
1987
+ ), u(n, "class", "a9s-inner"), u(
1988
+ n,
1989
+ "x",
1990
+ /*x*/
1991
+ t[1]
1992
+ ), u(
1993
+ n,
1994
+ "y",
1995
+ /*y*/
1996
+ t[2]
1997
+ ), u(
1998
+ n,
1999
+ "width",
2000
+ /*w*/
2001
+ t[3]
2002
+ ), u(
2003
+ n,
2004
+ "height",
2005
+ /*h*/
2006
+ t[4]
2007
+ );
2008
+ },
2009
+ m(o, r) {
2010
+ B(o, e, r), B(o, n, r);
2011
+ },
2012
+ p(o, r) {
2013
+ r & /*x*/
2014
+ 2 && u(
2015
+ e,
2016
+ "x",
2017
+ /*x*/
2018
+ o[1]
2019
+ ), r & /*y*/
2020
+ 4 && u(
2021
+ e,
2022
+ "y",
2023
+ /*y*/
2024
+ o[2]
2025
+ ), r & /*w*/
2026
+ 8 && u(
2027
+ e,
2028
+ "width",
2029
+ /*w*/
2030
+ o[3]
2031
+ ), r & /*h*/
2032
+ 16 && u(
2033
+ e,
2034
+ "height",
2035
+ /*h*/
2036
+ o[4]
2037
+ ), r & /*x*/
2038
+ 2 && u(
2039
+ n,
2040
+ "x",
2041
+ /*x*/
2042
+ o[1]
2043
+ ), r & /*y*/
2044
+ 4 && u(
2045
+ n,
2046
+ "y",
2047
+ /*y*/
2048
+ o[2]
2049
+ ), r & /*w*/
2050
+ 8 && u(
2051
+ n,
2052
+ "width",
2053
+ /*w*/
2054
+ o[3]
2055
+ ), r & /*h*/
2056
+ 16 && u(
2057
+ n,
2058
+ "height",
2059
+ /*h*/
2060
+ o[4]
2061
+ );
2062
+ },
2063
+ d(o) {
2064
+ o && L(e), o && L(n);
2065
+ }
2066
+ };
2067
+ }
2068
+ function $o(t) {
2069
+ let e, n = (
2070
+ /*origin*/
2071
+ t[0] && be(t)
2072
+ );
2073
+ return {
2074
+ c() {
2075
+ e = O("g"), n && n.c(), u(e, "class", "a9s-annotation a9s-rubberband");
2076
+ },
2077
+ m(o, r) {
2078
+ B(o, e, r), n && n.m(e, null);
2079
+ },
2080
+ p(o, [r]) {
2081
+ o[0] ? n ? n.p(o, r) : (n = be(o), n.c(), n.m(e, null)) : n && (n.d(1), n = null);
2082
+ },
2083
+ i: U,
2084
+ o: U,
2085
+ d(o) {
2086
+ o && L(e), n && n.d();
2087
+ }
2088
+ };
2089
+ }
2090
+ function wo(t, e, n) {
2091
+ const o = At();
2092
+ let { addEventListener: r } = e, { drawingMode: i } = e, { transform: a } = e, s, l, d, p, c, f, h;
2093
+ const m = (y) => {
2094
+ s = performance.now(), i === "drag" && (n(0, l = a.elementToImage(y.offsetX, y.offsetY)), d = l, n(1, p = l[0]), n(2, c = l[1]), n(3, f = 1), n(4, h = 1));
2095
+ }, x = (y) => {
2096
+ l && (d = a.elementToImage(y.offsetX, y.offsetY), n(1, p = Math.min(d[0], l[0])), n(2, c = Math.min(d[1], l[1])), n(3, f = Math.abs(d[0] - l[0])), n(4, h = Math.abs(d[1] - l[1])));
2097
+ }, A = (y) => {
2098
+ const v = performance.now() - s;
2099
+ if (i === "click") {
2100
+ if (v > 300)
2101
+ return;
2102
+ y.stopPropagation(), l ? $() : (n(0, l = a.elementToImage(y.offsetX, y.offsetY)), d = l, n(1, p = l[0]), n(2, c = l[1]), n(3, f = 1), n(4, h = 1));
2103
+ } else
2104
+ l && (v > 300 || f * h > 100 ? (y.stopPropagation(), $()) : (n(0, l = null), d = null));
2105
+ }, $ = () => {
2106
+ if (f * h > 15) {
2107
+ const y = {
2108
+ type: F.RECTANGLE,
2109
+ geometry: {
2110
+ bounds: {
2111
+ minX: p,
2112
+ minY: c,
2113
+ maxX: p + f,
2114
+ maxY: c + h
2115
+ },
2116
+ x: p,
2117
+ y: c,
2118
+ w: f,
2119
+ h
2120
+ }
2121
+ };
2122
+ o("create", y);
2123
+ }
2124
+ n(0, l = null), d = null;
2125
+ };
2126
+ return It(() => {
2127
+ r("pointerdown", m), r("pointermove", x), r("pointerup", A, !0);
2128
+ }), t.$$set = (y) => {
2129
+ "addEventListener" in y && n(5, r = y.addEventListener), "drawingMode" in y && n(6, i = y.drawingMode), "transform" in y && n(7, a = y.transform);
2130
+ }, [l, p, c, f, h, r, i, a];
2131
+ }
2132
+ class xo extends nt {
2133
+ constructor(e) {
2134
+ super(), et(this, e, wo, $o, K, {
2135
+ addEventListener: 5,
2136
+ drawingMode: 6,
2137
+ transform: 7
2138
+ });
2139
+ }
2140
+ }
2141
+ const Wt = (t, e) => {
2142
+ const n = Math.abs(e[0] - t[0]), o = Math.abs(e[1] - t[1]);
2143
+ return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2));
2144
+ }, bo = (t, e) => {
2145
+ const { naturalWidth: n, naturalHeight: o } = t;
2146
+ if (!n && !o) {
2147
+ const { width: r, height: i } = t;
2148
+ e.setAttribute("viewBox", `0 0 ${r} ${i}`), t.addEventListener("load", (a) => {
2149
+ const s = a.target;
2150
+ e.setAttribute("viewBox", `0 0 ${s.naturalWidth} ${s.naturalHeight}`);
2151
+ });
2152
+ } else
2153
+ e.setAttribute("viewBox", `0 0 ${n} ${o}`);
2154
+ }, vo = (t, e) => {
2155
+ bo(t, e);
2156
+ const { subscribe: n, set: o } = Ut(1);
2157
+ let r;
2158
+ return window.ResizeObserver && (r = new ResizeObserver(() => {
2159
+ const i = e.getBoundingClientRect(), { width: a, height: s } = e.viewBox.baseVal, l = Math.max(
2160
+ i.width / a,
2161
+ i.height / s
2162
+ );
2163
+ o(l);
2164
+ }), r.observe(e.parentElement)), { destroy: () => {
2165
+ r && r.disconnect();
2166
+ }, subscribe: n };
2167
+ };
2168
+ function Kt(t) {
2169
+ const e = t.slice(), n = (
2170
+ /*isClosable*/
2171
+ (e[2] ? (
2172
+ /*points*/
2173
+ e[0]
2174
+ ) : [
2175
+ .../*points*/
2176
+ e[0],
2177
+ /*cursor*/
2178
+ e[1]
2179
+ ]).map((o) => o.join(",")).join(" ")
2180
+ );
2181
+ return e[15] = n, e;
2182
+ }
2183
+ function ve(t) {
2184
+ let e, n, o, r, i, a = (
2185
+ /*isClosable*/
2186
+ t[2] && Ee(t)
2187
+ );
2188
+ return {
2189
+ c() {
2190
+ e = O("polygon"), o = O("polygon"), a && a.c(), i = at(), u(e, "class", "a9s-outer"), u(e, "points", n = /*coords*/
2191
+ t[15]), u(o, "class", "a9s-inner"), u(o, "points", r = /*coords*/
2192
+ t[15]);
2193
+ },
2194
+ m(s, l) {
2195
+ B(s, e, l), B(s, o, l), a && a.m(s, l), B(s, i, l);
2196
+ },
2197
+ p(s, l) {
2198
+ l & /*isClosable, points, cursor*/
2199
+ 7 && n !== (n = /*coords*/
2200
+ s[15]) && u(e, "points", n), l & /*isClosable, points, cursor*/
2201
+ 7 && r !== (r = /*coords*/
2202
+ s[15]) && u(o, "points", r), /*isClosable*/
2203
+ s[2] ? a ? a.p(s, l) : (a = Ee(s), a.c(), a.m(i.parentNode, i)) : a && (a.d(1), a = null);
2204
+ },
2205
+ d(s) {
2206
+ s && L(e), s && L(o), a && a.d(s), s && L(i);
2207
+ }
2208
+ };
2209
+ }
2210
+ function Ee(t) {
2211
+ let e, n, o;
2212
+ return {
2213
+ c() {
2214
+ e = O("rect"), u(e, "class", "a9s-corner-handle"), u(e, "x", n = /*points*/
2215
+ t[0][0][0] - /*handleSize*/
2216
+ t[3] / 2), u(e, "y", o = /*points*/
2217
+ t[0][0][1] - /*handleSize*/
2218
+ t[3] / 2), u(
2219
+ e,
2220
+ "height",
2221
+ /*handleSize*/
2222
+ t[3]
2223
+ ), u(
2224
+ e,
2225
+ "width",
2226
+ /*handleSize*/
2227
+ t[3]
2228
+ );
2229
+ },
2230
+ m(r, i) {
2231
+ B(r, e, i);
2232
+ },
2233
+ p(r, i) {
2234
+ i & /*points, handleSize*/
2235
+ 9 && n !== (n = /*points*/
2236
+ r[0][0][0] - /*handleSize*/
2237
+ r[3] / 2) && u(e, "x", n), i & /*points, handleSize*/
2238
+ 9 && o !== (o = /*points*/
2239
+ r[0][0][1] - /*handleSize*/
2240
+ r[3] / 2) && u(e, "y", o), i & /*handleSize*/
2241
+ 8 && u(
2242
+ e,
2243
+ "height",
2244
+ /*handleSize*/
2245
+ r[3]
2246
+ ), i & /*handleSize*/
2247
+ 8 && u(
2248
+ e,
2249
+ "width",
2250
+ /*handleSize*/
2251
+ r[3]
2252
+ );
2253
+ },
2254
+ d(r) {
2255
+ r && L(e);
2256
+ }
2257
+ };
2258
+ }
2259
+ function Eo(t) {
2260
+ let e, n = (
2261
+ /*cursor*/
2262
+ t[1] && ve(Kt(t))
2263
+ );
2264
+ return {
2265
+ c() {
2266
+ e = O("g"), n && n.c(), u(e, "class", "a9s-annotation a9s-rubberband");
2267
+ },
2268
+ m(o, r) {
2269
+ B(o, e, r), n && n.m(e, null);
2270
+ },
2271
+ p(o, [r]) {
2272
+ o[1] ? n ? n.p(Kt(o), r) : (n = ve(Kt(o)), n.c(), n.m(e, null)) : n && (n.d(1), n = null);
2273
+ },
2274
+ i: U,
2275
+ o: U,
2276
+ d(o) {
2277
+ o && L(e), n && n.d();
2278
+ }
2279
+ };
2280
+ }
2281
+ const Ao = 20;
2282
+ function To(t, e, n) {
2283
+ let o;
2284
+ const r = At();
2285
+ let { addEventListener: i } = e, { drawingMode: a } = e, { transform: s } = e, { viewportScale: l = 1 } = e, d, p = [], c = null, f = !1;
2286
+ const h = (y) => {
2287
+ const { timeStamp: v, offsetX: E, offsetY: _ } = y;
2288
+ if (d = { timeStamp: v, offsetX: E, offsetY: _ }, a === "drag" && p.length === 0) {
2289
+ const C = s.elementToImage(y.offsetX, y.offsetY);
2290
+ p.push(C), n(1, c = C);
2291
+ }
2292
+ }, m = (y) => {
2293
+ if (p.length > 0 && (n(1, c = s.elementToImage(y.offsetX, y.offsetY)), p.length > 2)) {
2294
+ const v = Wt(c, p[0]) * l;
2295
+ n(2, f = v < Ao);
2296
+ }
2297
+ }, x = (y) => {
2298
+ if (a === "click") {
2299
+ const v = y.timeStamp - d.timeStamp, E = Wt([d.offsetX, d.offsetY], [y.offsetX, y.offsetY]);
2300
+ if (v > 300 || E > 15)
2301
+ return;
2302
+ if (f)
2303
+ $();
2304
+ else if (p.length === 0) {
2305
+ const _ = s.elementToImage(y.offsetX, y.offsetY);
2306
+ p.push(_), n(1, c = _);
2307
+ } else
2308
+ p.push(c);
2309
+ } else {
2310
+ if (p.length === 1 && Wt(p[0], c) <= 4) {
2311
+ n(0, p = []), n(1, c = null);
2312
+ return;
2313
+ }
2314
+ y.stopImmediatePropagation(), f ? $() : p.push(c);
2315
+ }
2316
+ }, A = () => {
2317
+ const y = [...p, c], v = {
2318
+ type: F.POLYGON,
2319
+ geometry: { bounds: Gt(y), points: y }
2320
+ };
2321
+ ne(v) > 4 && (n(0, p = []), n(1, c = null), r("create", v));
2322
+ }, $ = () => {
2323
+ const y = {
2324
+ type: F.POLYGON,
2325
+ geometry: {
2326
+ bounds: Gt(p),
2327
+ points: [...p]
2328
+ }
2329
+ };
2330
+ n(0, p = []), n(1, c = null), r("create", y);
2331
+ };
2332
+ return It(() => {
2333
+ i("pointerdown", h, !0), i("pointermove", m), i("pointerup", x, !0), i("dblclick", A, !0);
2334
+ }), t.$$set = (y) => {
2335
+ "addEventListener" in y && n(4, i = y.addEventListener), "drawingMode" in y && n(5, a = y.drawingMode), "transform" in y && n(6, s = y.transform), "viewportScale" in y && n(7, l = y.viewportScale);
2336
+ }, t.$$.update = () => {
2337
+ t.$$.dirty & /*viewportScale*/
2338
+ 128 && n(3, o = 10 / l);
2339
+ }, [
2340
+ p,
2341
+ c,
2342
+ f,
2343
+ o,
2344
+ i,
2345
+ a,
2346
+ s,
2347
+ l
2348
+ ];
2349
+ }
2350
+ class So extends nt {
2351
+ constructor(e) {
2352
+ super(), et(this, e, To, Eo, K, {
2353
+ addEventListener: 4,
2354
+ drawingMode: 5,
2355
+ transform: 6,
2356
+ viewportScale: 7
2357
+ });
2358
+ }
2359
+ }
2360
+ const ae = /* @__PURE__ */ new Map([
2361
+ ["rectangle", { tool: xo }],
2362
+ ["polygon", { tool: So }]
2363
+ ]), Mo = () => [...ae.keys()], qe = (t) => ae.get(t), Lo = (t, e, n) => ae.set(t, { tool: e, opts: n });
2364
+ function Bo(t) {
2365
+ let e, n, o, r, i;
2366
+ return {
2367
+ c() {
2368
+ e = O("g"), n = O("ellipse"), r = O("ellipse"), u(n, "class", "a9s-outer"), u(n, "style", o = /*computedStyle*/
2369
+ t[1] ? "display:none;" : void 0), u(
2370
+ n,
2371
+ "cx",
2372
+ /*cx*/
2373
+ t[2]
2374
+ ), u(
2375
+ n,
2376
+ "cy",
2377
+ /*cy*/
2378
+ t[3]
2379
+ ), u(
2380
+ n,
2381
+ "rx",
2382
+ /*rx*/
2383
+ t[4]
2384
+ ), u(
2385
+ n,
2386
+ "ry",
2387
+ /*ry*/
2388
+ t[5]
2389
+ ), u(r, "class", "a9s-inner"), u(
2390
+ r,
2391
+ "style",
2392
+ /*computedStyle*/
2393
+ t[1]
2394
+ ), u(
2395
+ r,
2396
+ "cx",
2397
+ /*cx*/
2398
+ t[2]
2399
+ ), u(
2400
+ r,
2401
+ "cy",
2402
+ /*cy*/
2403
+ t[3]
2404
+ ), u(
2405
+ r,
2406
+ "rx",
2407
+ /*rx*/
2408
+ t[4]
2409
+ ), u(
2410
+ r,
2411
+ "ry",
2412
+ /*ry*/
2413
+ t[5]
2414
+ ), u(e, "data-id", i = /*annotation*/
2415
+ t[0].id);
2416
+ },
2417
+ m(a, s) {
2418
+ B(a, e, s), dt(e, n), dt(e, r);
2419
+ },
2420
+ p(a, [s]) {
2421
+ s & /*computedStyle*/
2422
+ 2 && o !== (o = /*computedStyle*/
2423
+ a[1] ? "display:none;" : void 0) && u(n, "style", o), s & /*computedStyle*/
2424
+ 2 && u(
2425
+ r,
2426
+ "style",
2427
+ /*computedStyle*/
2428
+ a[1]
2429
+ ), s & /*annotation*/
2430
+ 1 && i !== (i = /*annotation*/
2431
+ a[0].id) && u(e, "data-id", i);
2432
+ },
2433
+ i: U,
2434
+ o: U,
2435
+ d(a) {
2436
+ a && L(e);
2437
+ }
2438
+ };
2439
+ }
2440
+ function Xo(t, e, n) {
2441
+ let o, { annotation: r } = e, { geom: i } = e, { style: a = void 0 } = e;
2442
+ const { cx: s, cy: l, rx: d, ry: p } = i;
2443
+ return t.$$set = (c) => {
2444
+ "annotation" in c && n(0, r = c.annotation), "geom" in c && n(6, i = c.geom), "style" in c && n(7, a = c.style);
2445
+ }, t.$$.update = () => {
2446
+ t.$$.dirty & /*annotation, style*/
2447
+ 129 && n(1, o = Ft(r, a));
2448
+ }, [r, o, s, l, d, p, i, a];
2449
+ }
2450
+ class Io extends nt {
2451
+ constructor(e) {
2452
+ super(), et(this, e, Xo, Bo, K, { annotation: 0, geom: 6, style: 7 });
2453
+ }
2454
+ }
2455
+ function Yo(t) {
2456
+ let e, n, o, r, i;
2457
+ return {
2458
+ c() {
2459
+ e = O("g"), n = O("polygon"), r = O("polygon"), u(n, "class", "a9s-outer"), u(n, "style", o = /*computedStyle*/
2460
+ t[1] ? "display:none;" : void 0), u(
2461
+ n,
2462
+ "points",
2463
+ /*points*/
2464
+ t[2].map(_o).join(" ")
2465
+ ), u(r, "class", "a9s-inner"), u(
2466
+ r,
2467
+ "style",
2468
+ /*computedStyle*/
2469
+ t[1]
2470
+ ), u(
2471
+ r,
2472
+ "points",
2473
+ /*points*/
2474
+ t[2].map(Co).join(" ")
2475
+ ), u(e, "data-id", i = /*annotation*/
2476
+ t[0].id);
2477
+ },
2478
+ m(a, s) {
2479
+ B(a, e, s), dt(e, n), dt(e, r);
2480
+ },
2481
+ p(a, [s]) {
2482
+ s & /*computedStyle*/
2483
+ 2 && o !== (o = /*computedStyle*/
2484
+ a[1] ? "display:none;" : void 0) && u(n, "style", o), s & /*computedStyle*/
2485
+ 2 && u(
2486
+ r,
2487
+ "style",
2488
+ /*computedStyle*/
2489
+ a[1]
2490
+ ), s & /*annotation*/
2491
+ 1 && i !== (i = /*annotation*/
2492
+ a[0].id) && u(e, "data-id", i);
2493
+ },
2494
+ i: U,
2495
+ o: U,
2496
+ d(a) {
2497
+ a && L(e);
2498
+ }
2499
+ };
2500
+ }
2501
+ const _o = (t) => t.join(","), Co = (t) => t.join(",");
2502
+ function Po(t, e, n) {
2503
+ let o, { annotation: r } = e, { geom: i } = e, { style: a = void 0 } = e;
2504
+ const { points: s } = i;
2505
+ return t.$$set = (l) => {
2506
+ "annotation" in l && n(0, r = l.annotation), "geom" in l && n(3, i = l.geom), "style" in l && n(4, a = l.style);
2507
+ }, t.$$.update = () => {
2508
+ t.$$.dirty & /*annotation, style*/
2509
+ 17 && n(1, o = Ft(r, a));
2510
+ }, [r, o, s, i, a];
2511
+ }
2512
+ class Oo extends nt {
2513
+ constructor(e) {
2514
+ super(), et(this, e, Po, Yo, K, { annotation: 0, geom: 3, style: 4 });
2515
+ }
2516
+ }
2517
+ function Vo(t) {
2518
+ let e, n, o, r, i;
2519
+ return {
2520
+ c() {
2521
+ e = O("g"), n = O("rect"), r = O("rect"), u(n, "class", "a9s-outer"), u(n, "style", o = /*computedStyle*/
2522
+ t[5] ? "display:none;" : void 0), u(
2523
+ n,
2524
+ "x",
2525
+ /*x*/
2526
+ t[4]
2527
+ ), u(
2528
+ n,
2529
+ "y",
2530
+ /*y*/
2531
+ t[3]
2532
+ ), u(
2533
+ n,
2534
+ "width",
2535
+ /*w*/
2536
+ t[2]
2537
+ ), u(
2538
+ n,
2539
+ "height",
2540
+ /*h*/
2541
+ t[1]
2542
+ ), u(r, "class", "a9s-inner"), u(
2543
+ r,
2544
+ "style",
2545
+ /*computedStyle*/
2546
+ t[5]
2547
+ ), u(
2548
+ r,
2549
+ "x",
2550
+ /*x*/
2551
+ t[4]
2552
+ ), u(
2553
+ r,
2554
+ "y",
2555
+ /*y*/
2556
+ t[3]
2557
+ ), u(
2558
+ r,
2559
+ "width",
2560
+ /*w*/
2561
+ t[2]
2562
+ ), u(
2563
+ r,
2564
+ "height",
2565
+ /*h*/
2566
+ t[1]
2567
+ ), u(e, "data-id", i = /*annotation*/
2568
+ t[0].id);
2569
+ },
2570
+ m(a, s) {
2571
+ B(a, e, s), dt(e, n), dt(e, r);
2572
+ },
2573
+ p(a, [s]) {
2574
+ s & /*computedStyle*/
2575
+ 32 && o !== (o = /*computedStyle*/
2576
+ a[5] ? "display:none;" : void 0) && u(n, "style", o), s & /*x*/
2577
+ 16 && u(
2578
+ n,
2579
+ "x",
2580
+ /*x*/
2581
+ a[4]
2582
+ ), s & /*y*/
2583
+ 8 && u(
2584
+ n,
2585
+ "y",
2586
+ /*y*/
2587
+ a[3]
2588
+ ), s & /*w*/
2589
+ 4 && u(
2590
+ n,
2591
+ "width",
2592
+ /*w*/
2593
+ a[2]
2594
+ ), s & /*h*/
2595
+ 2 && u(
2596
+ n,
2597
+ "height",
2598
+ /*h*/
2599
+ a[1]
2600
+ ), s & /*computedStyle*/
2601
+ 32 && u(
2602
+ r,
2603
+ "style",
2604
+ /*computedStyle*/
2605
+ a[5]
2606
+ ), s & /*x*/
2607
+ 16 && u(
2608
+ r,
2609
+ "x",
2610
+ /*x*/
2611
+ a[4]
2612
+ ), s & /*y*/
2613
+ 8 && u(
2614
+ r,
2615
+ "y",
2616
+ /*y*/
2617
+ a[3]
2618
+ ), s & /*w*/
2619
+ 4 && u(
2620
+ r,
2621
+ "width",
2622
+ /*w*/
2623
+ a[2]
2624
+ ), s & /*h*/
2625
+ 2 && u(
2626
+ r,
2627
+ "height",
2628
+ /*h*/
2629
+ a[1]
2630
+ ), s & /*annotation*/
2631
+ 1 && i !== (i = /*annotation*/
2632
+ a[0].id) && u(e, "data-id", i);
2633
+ },
2634
+ i: U,
2635
+ o: U,
2636
+ d(a) {
2637
+ a && L(e);
2638
+ }
2639
+ };
2640
+ }
2641
+ function ko(t, e, n) {
2642
+ let o, r, i, a, s, { annotation: l } = e, { geom: d } = e, { style: p = void 0 } = e;
2643
+ return t.$$set = (c) => {
2644
+ "annotation" in c && n(0, l = c.annotation), "geom" in c && n(6, d = c.geom), "style" in c && n(7, p = c.style);
2645
+ }, t.$$.update = () => {
2646
+ t.$$.dirty & /*annotation, style*/
2647
+ 129 && n(5, o = Ft(l, p)), t.$$.dirty & /*geom*/
2648
+ 64 && n(4, { x: r, y: i, w: a, h: s } = d, r, (n(3, i), n(6, d)), (n(2, a), n(6, d)), (n(1, s), n(6, d)));
2649
+ }, [l, s, a, i, r, o, d, p];
2650
+ }
2651
+ class No extends nt {
2652
+ constructor(e) {
2653
+ super(), et(this, e, ko, Vo, K, { annotation: 0, geom: 6, style: 7 });
2654
+ }
2655
+ }
2656
+ const Do = (t) => ({
2657
+ elementToImage: (e, n) => {
2658
+ const o = t.getBoundingClientRect(), r = t.createSVGPoint();
2659
+ r.x = e + o.x, r.y = n + o.y;
2660
+ const { x: i, y: a } = r.matrixTransform(t.getScreenCTM().inverse());
2661
+ return [i, a];
2662
+ }
2663
+ }), Go = 250, Uo = (t, e) => {
2664
+ const n = At();
2665
+ let o;
2666
+ return { onPointerDown: () => o = performance.now(), onPointerUp: (r) => {
2667
+ if (performance.now() - o < Go) {
2668
+ const { x: i, y: a } = Fo(r, t), s = e.getAt(i, a);
2669
+ s ? n("click", { originalEvent: r, annotation: s }) : n("click", { originalEvent: r });
2670
+ }
2671
+ } };
2672
+ }, Fo = (t, e) => {
2673
+ const n = e.createSVGPoint(), o = e.getBoundingClientRect(), r = t.clientX - o.x, i = t.clientY - o.y, { left: a, top: s } = e.getBoundingClientRect();
2674
+ return n.x = r + a, n.y = i + s, n.matrixTransform(e.getScreenCTM().inverse());
2675
+ };
2676
+ function Ae(t, e, n) {
2677
+ const o = t.slice();
2678
+ return o[28] = e[n], o;
2679
+ }
2680
+ function Te(t, e, n) {
2681
+ const o = t.slice();
2682
+ return o[31] = e[n], o;
2683
+ }
2684
+ function Jt(t) {
2685
+ const e = t.slice(), n = (
2686
+ /*annotation*/
2687
+ e[31].target.selector
2688
+ );
2689
+ return e[34] = n, e;
2690
+ }
2691
+ function Se(t) {
2692
+ let e = (
2693
+ /*annotation*/
2694
+ t[31].id
2695
+ ), n, o, r = Me(t);
2696
+ return {
2697
+ c() {
2698
+ r.c(), n = at();
2699
+ },
2700
+ m(i, a) {
2701
+ r.m(i, a), B(i, n, a), o = !0;
2702
+ },
2703
+ p(i, a) {
2704
+ a[0] & /*$store*/
2705
+ 4096 && K(e, e = /*annotation*/
2706
+ i[31].id) ? (ot(), k(r, 1, 1, U), rt(), r = Me(i), r.c(), V(r, 1), r.m(n.parentNode, n)) : r.p(i, a);
2707
+ },
2708
+ i(i) {
2709
+ o || (V(r), o = !0);
2710
+ },
2711
+ o(i) {
2712
+ k(r), o = !1;
2713
+ },
2714
+ d(i) {
2715
+ i && L(n), r.d(i);
2716
+ }
2717
+ };
2718
+ }
2719
+ function Ho(t) {
2720
+ let e, n;
2721
+ return e = new Oo({
2722
+ props: {
2723
+ annotation: (
2724
+ /*annotation*/
2725
+ t[31]
2726
+ ),
2727
+ geom: (
2728
+ /*selector*/
2729
+ t[34].geometry
2730
+ ),
2731
+ style: (
2732
+ /*style*/
2733
+ t[1]
2734
+ )
2735
+ }
2736
+ }), {
2737
+ c() {
2738
+ ft(e.$$.fragment);
2739
+ },
2740
+ m(o, r) {
2741
+ ct(e, o, r), n = !0;
2742
+ },
2743
+ p(o, r) {
2744
+ const i = {};
2745
+ r[0] & /*$store*/
2746
+ 4096 && (i.annotation = /*annotation*/
2747
+ o[31]), r[0] & /*$store*/
2748
+ 4096 && (i.geom = /*selector*/
2749
+ o[34].geometry), r[0] & /*style*/
2750
+ 2 && (i.style = /*style*/
2751
+ o[1]), e.$set(i);
2752
+ },
2753
+ i(o) {
2754
+ n || (V(e.$$.fragment, o), n = !0);
2755
+ },
2756
+ o(o) {
2757
+ k(e.$$.fragment, o), n = !1;
2758
+ },
2759
+ d(o) {
2760
+ ut(e, o);
2761
+ }
2762
+ };
2763
+ }
2764
+ function jo(t) {
2765
+ let e, n;
2766
+ return e = new No({
2767
+ props: {
2768
+ annotation: (
2769
+ /*annotation*/
2770
+ t[31]
2771
+ ),
2772
+ geom: (
2773
+ /*selector*/
2774
+ t[34].geometry
2775
+ ),
2776
+ style: (
2777
+ /*style*/
2778
+ t[1]
2779
+ )
2780
+ }
2781
+ }), {
2782
+ c() {
2783
+ ft(e.$$.fragment);
2784
+ },
2785
+ m(o, r) {
2786
+ ct(e, o, r), n = !0;
2787
+ },
2788
+ p(o, r) {
2789
+ const i = {};
2790
+ r[0] & /*$store*/
2791
+ 4096 && (i.annotation = /*annotation*/
2792
+ o[31]), r[0] & /*$store*/
2793
+ 4096 && (i.geom = /*selector*/
2794
+ o[34].geometry), r[0] & /*style*/
2795
+ 2 && (i.style = /*style*/
2796
+ o[1]), e.$set(i);
2797
+ },
2798
+ i(o) {
2799
+ n || (V(e.$$.fragment, o), n = !0);
2800
+ },
2801
+ o(o) {
2802
+ k(e.$$.fragment, o), n = !1;
2803
+ },
2804
+ d(o) {
2805
+ ut(e, o);
2806
+ }
2807
+ };
2808
+ }
2809
+ function zo(t) {
2810
+ let e, n;
2811
+ return e = new Io({
2812
+ props: {
2813
+ annotation: (
2814
+ /*annotation*/
2815
+ t[31]
2816
+ ),
2817
+ geom: (
2818
+ /*selector*/
2819
+ t[34].geometry
2820
+ ),
2821
+ style: (
2822
+ /*style*/
2823
+ t[1]
2824
+ )
2825
+ }
2826
+ }), {
2827
+ c() {
2828
+ ft(e.$$.fragment);
2829
+ },
2830
+ m(o, r) {
2831
+ ct(e, o, r), n = !0;
2832
+ },
2833
+ p(o, r) {
2834
+ const i = {};
2835
+ r[0] & /*$store*/
2836
+ 4096 && (i.annotation = /*annotation*/
2837
+ o[31]), r[0] & /*$store*/
2838
+ 4096 && (i.geom = /*selector*/
2839
+ o[34].geometry), r[0] & /*style*/
2840
+ 2 && (i.style = /*style*/
2841
+ o[1]), e.$set(i);
2842
+ },
2843
+ i(o) {
2844
+ n || (V(e.$$.fragment, o), n = !0);
2845
+ },
2846
+ o(o) {
2847
+ k(e.$$.fragment, o), n = !1;
2848
+ },
2849
+ d(o) {
2850
+ ut(e, o);
2851
+ }
2852
+ };
2853
+ }
2854
+ function Me(t) {
2855
+ let e, n, o, r;
2856
+ const i = [zo, jo, Ho], a = [];
2857
+ function s(l, d) {
2858
+ return (
2859
+ /*selector*/
2860
+ l[34].type === F.ELLIPSE ? 0 : (
2861
+ /*selector*/
2862
+ l[34].type === F.RECTANGLE ? 1 : (
2863
+ /*selector*/
2864
+ l[34].type === F.POLYGON ? 2 : -1
2865
+ )
2866
+ )
2867
+ );
2868
+ }
2869
+ return ~(e = s(t)) && (n = a[e] = i[e](t)), {
2870
+ c() {
2871
+ n && n.c(), o = at();
2872
+ },
2873
+ m(l, d) {
2874
+ ~e && a[e].m(l, d), B(l, o, d), r = !0;
2875
+ },
2876
+ p(l, d) {
2877
+ let p = e;
2878
+ e = s(l), e === p ? ~e && a[e].p(l, d) : (n && (ot(), k(a[p], 1, 1, () => {
2879
+ a[p] = null;
2880
+ }), rt()), ~e ? (n = a[e], n ? n.p(l, d) : (n = a[e] = i[e](l), n.c()), V(n, 1), n.m(o.parentNode, o)) : n = null);
2881
+ },
2882
+ i(l) {
2883
+ r || (V(n), r = !0);
2884
+ },
2885
+ o(l) {
2886
+ k(n), r = !1;
2887
+ },
2888
+ d(l) {
2889
+ ~e && a[e].d(l), l && L(o);
2890
+ }
2891
+ };
2892
+ }
2893
+ function Le(t) {
2894
+ let e = !/*isEditable*/
2895
+ t[7](
2896
+ /*annotation*/
2897
+ t[31]
2898
+ ), n, o, r = e && Se(Jt(t));
2899
+ return {
2900
+ c() {
2901
+ r && r.c(), n = at();
2902
+ },
2903
+ m(i, a) {
2904
+ r && r.m(i, a), B(i, n, a), o = !0;
2905
+ },
2906
+ p(i, a) {
2907
+ a[0] & /*isEditable, $store*/
2908
+ 4224 && (e = !/*isEditable*/
2909
+ i[7](
2910
+ /*annotation*/
2911
+ i[31]
2912
+ )), e ? r ? (r.p(Jt(i), a), a[0] & /*isEditable, $store*/
2913
+ 4224 && V(r, 1)) : (r = Se(Jt(i)), r.c(), V(r, 1), r.m(n.parentNode, n)) : r && (ot(), k(r, 1, 1, () => {
2914
+ r = null;
2915
+ }), rt());
2916
+ },
2917
+ i(i) {
2918
+ o || (V(r), o = !0);
2919
+ },
2920
+ o(i) {
2921
+ k(r), o = !1;
2922
+ },
2923
+ d(i) {
2924
+ r && r.d(i), i && L(n);
2925
+ }
2926
+ };
2927
+ }
2928
+ function Be(t) {
2929
+ let e, n, o, r;
2930
+ const i = [qo, Ro], a = [];
2931
+ function s(l, d) {
2932
+ return (
2933
+ /*editableAnnotations*/
2934
+ l[6] ? 0 : (
2935
+ /*tool*/
2936
+ l[2] && /*drawingEnabled*/
2937
+ l[0] ? 1 : -1
2938
+ )
2939
+ );
2940
+ }
2941
+ return ~(e = s(t)) && (n = a[e] = i[e](t)), {
2942
+ c() {
2943
+ n && n.c(), o = at();
2944
+ },
2945
+ m(l, d) {
2946
+ ~e && a[e].m(l, d), B(l, o, d), r = !0;
2947
+ },
2948
+ p(l, d) {
2949
+ let p = e;
2950
+ e = s(l), e === p ? ~e && a[e].p(l, d) : (n && (ot(), k(a[p], 1, 1, () => {
2951
+ a[p] = null;
2952
+ }), rt()), ~e ? (n = a[e], n ? n.p(l, d) : (n = a[e] = i[e](l), n.c()), V(n, 1), n.m(o.parentNode, o)) : n = null);
2953
+ },
2954
+ i(l) {
2955
+ r || (V(n), r = !0);
2956
+ },
2957
+ o(l) {
2958
+ k(n), r = !1;
2959
+ },
2960
+ d(l) {
2961
+ ~e && a[e].d(l), l && L(o);
2962
+ }
2963
+ };
2964
+ }
2965
+ function Ro(t) {
2966
+ let e = (
2967
+ /*tool*/
2968
+ t[2]
2969
+ ), n, o, r = Xe(t);
2970
+ return {
2971
+ c() {
2972
+ r.c(), n = at();
2973
+ },
2974
+ m(i, a) {
2975
+ r.m(i, a), B(i, n, a), o = !0;
2976
+ },
2977
+ p(i, a) {
2978
+ a[0] & /*tool*/
2979
+ 4 && K(e, e = /*tool*/
2980
+ i[2]) ? (ot(), k(r, 1, 1, U), rt(), r = Xe(i), r.c(), V(r, 1), r.m(n.parentNode, n)) : r.p(i, a);
2981
+ },
2982
+ i(i) {
2983
+ o || (V(r), o = !0);
2984
+ },
2985
+ o(i) {
2986
+ k(r), o = !1;
2987
+ },
2988
+ d(i) {
2989
+ i && L(n), r.d(i);
2990
+ }
2991
+ };
2992
+ }
2993
+ function qo(t) {
2994
+ let e, n, o = (
2995
+ /*editableAnnotations*/
2996
+ t[6]
2997
+ ), r = [];
2998
+ for (let a = 0; a < o.length; a += 1)
2999
+ r[a] = Ye(Ae(t, o, a));
3000
+ const i = (a) => k(r[a], 1, 1, () => {
3001
+ r[a] = null;
3002
+ });
3003
+ return {
3004
+ c() {
3005
+ for (let a = 0; a < r.length; a += 1)
3006
+ r[a].c();
3007
+ e = at();
3008
+ },
3009
+ m(a, s) {
3010
+ for (let l = 0; l < r.length; l += 1)
3011
+ r[l] && r[l].m(a, s);
3012
+ B(a, e, s), n = !0;
3013
+ },
3014
+ p(a, s) {
3015
+ if (s[0] & /*editableAnnotations, drawingEl, style, transform, $scale, onChangeSelected*/
3016
+ 140370) {
3017
+ o = /*editableAnnotations*/
3018
+ a[6];
3019
+ let l;
3020
+ for (l = 0; l < o.length; l += 1) {
3021
+ const d = Ae(a, o, l);
3022
+ r[l] ? (r[l].p(d, s), V(r[l], 1)) : (r[l] = Ye(d), r[l].c(), V(r[l], 1), r[l].m(e.parentNode, e));
3023
+ }
3024
+ for (ot(), l = o.length; l < r.length; l += 1)
3025
+ i(l);
3026
+ rt();
3027
+ }
3028
+ },
3029
+ i(a) {
3030
+ if (!n) {
3031
+ for (let s = 0; s < o.length; s += 1)
3032
+ V(r[s]);
3033
+ n = !0;
3034
+ }
3035
+ },
3036
+ o(a) {
3037
+ r = r.filter(Boolean);
3038
+ for (let s = 0; s < r.length; s += 1)
3039
+ k(r[s]);
3040
+ n = !1;
3041
+ },
3042
+ d(a) {
3043
+ oe(r, a), a && L(e);
3044
+ }
3045
+ };
3046
+ }
3047
+ function Xe(t) {
3048
+ let e, n;
3049
+ return e = new yo({
3050
+ props: {
3051
+ target: (
3052
+ /*drawingEl*/
3053
+ t[4]
3054
+ ),
3055
+ tool: (
3056
+ /*tool*/
3057
+ t[2]
3058
+ ),
3059
+ drawingMode: (
3060
+ /*drawingMode*/
3061
+ t[11]
3062
+ ),
3063
+ transform: (
3064
+ /*transform*/
3065
+ t[10]
3066
+ ),
3067
+ viewportScale: (
3068
+ /*$scale*/
3069
+ t[13]
3070
+ )
3071
+ }
3072
+ }), e.$on(
3073
+ "create",
3074
+ /*onSelectionCreated*/
3075
+ t[16]
3076
+ ), {
3077
+ c() {
3078
+ ft(e.$$.fragment);
3079
+ },
3080
+ m(o, r) {
3081
+ ct(e, o, r), n = !0;
3082
+ },
3083
+ p(o, r) {
3084
+ const i = {};
3085
+ r[0] & /*drawingEl*/
3086
+ 16 && (i.target = /*drawingEl*/
3087
+ o[4]), r[0] & /*tool*/
3088
+ 4 && (i.tool = /*tool*/
3089
+ o[2]), r[0] & /*drawingMode*/
3090
+ 2048 && (i.drawingMode = /*drawingMode*/
3091
+ o[11]), r[0] & /*transform*/
3092
+ 1024 && (i.transform = /*transform*/
3093
+ o[10]), r[0] & /*$scale*/
3094
+ 8192 && (i.viewportScale = /*$scale*/
3095
+ o[13]), e.$set(i);
3096
+ },
3097
+ i(o) {
3098
+ n || (V(e.$$.fragment, o), n = !0);
3099
+ },
3100
+ o(o) {
3101
+ k(e.$$.fragment, o), n = !1;
3102
+ },
3103
+ d(o) {
3104
+ ut(e, o);
3105
+ }
3106
+ };
3107
+ }
3108
+ function Ie(t) {
3109
+ let e, n;
3110
+ return e = new go({
3111
+ props: {
3112
+ target: (
3113
+ /*drawingEl*/
3114
+ t[4]
3115
+ ),
3116
+ editor: we(
3117
+ /*editable*/
3118
+ t[28].target.selector
3119
+ ),
3120
+ annotation: (
3121
+ /*editable*/
3122
+ t[28]
3123
+ ),
3124
+ style: (
3125
+ /*style*/
3126
+ t[1]
3127
+ ),
3128
+ transform: (
3129
+ /*transform*/
3130
+ t[10]
3131
+ ),
3132
+ viewportScale: (
3133
+ /*$scale*/
3134
+ t[13]
3135
+ )
3136
+ }
3137
+ }), e.$on("change", function() {
3138
+ H(
3139
+ /*onChangeSelected*/
3140
+ t[17](
3141
+ /*editable*/
3142
+ t[28]
3143
+ )
3144
+ ) && t[17](
3145
+ /*editable*/
3146
+ t[28]
3147
+ ).apply(this, arguments);
3148
+ }), {
3149
+ c() {
3150
+ ft(e.$$.fragment);
3151
+ },
3152
+ m(o, r) {
3153
+ ct(e, o, r), n = !0;
3154
+ },
3155
+ p(o, r) {
3156
+ t = o;
3157
+ const i = {};
3158
+ r[0] & /*drawingEl*/
3159
+ 16 && (i.target = /*drawingEl*/
3160
+ t[4]), r[0] & /*editableAnnotations*/
3161
+ 64 && (i.editor = we(
3162
+ /*editable*/
3163
+ t[28].target.selector
3164
+ )), r[0] & /*editableAnnotations*/
3165
+ 64 && (i.annotation = /*editable*/
3166
+ t[28]), r[0] & /*style*/
3167
+ 2 && (i.style = /*style*/
3168
+ t[1]), r[0] & /*transform*/
3169
+ 1024 && (i.transform = /*transform*/
3170
+ t[10]), r[0] & /*$scale*/
3171
+ 8192 && (i.viewportScale = /*$scale*/
3172
+ t[13]), e.$set(i);
3173
+ },
3174
+ i(o) {
3175
+ n || (V(e.$$.fragment, o), n = !0);
3176
+ },
3177
+ o(o) {
3178
+ k(e.$$.fragment, o), n = !1;
3179
+ },
3180
+ d(o) {
3181
+ ut(e, o);
3182
+ }
3183
+ };
3184
+ }
3185
+ function Ye(t) {
3186
+ let e = (
3187
+ /*editable*/
3188
+ t[28].id
3189
+ ), n, o, r = Ie(t);
3190
+ return {
3191
+ c() {
3192
+ r.c(), n = at();
3193
+ },
3194
+ m(i, a) {
3195
+ r.m(i, a), B(i, n, a), o = !0;
3196
+ },
3197
+ p(i, a) {
3198
+ a[0] & /*editableAnnotations*/
3199
+ 64 && K(e, e = /*editable*/
3200
+ i[28].id) ? (ot(), k(r, 1, 1, U), rt(), r = Ie(i), r.c(), V(r, 1), r.m(n.parentNode, n)) : r.p(i, a);
3201
+ },
3202
+ i(i) {
3203
+ o || (V(r), o = !0);
3204
+ },
3205
+ o(i) {
3206
+ k(r), o = !1;
3207
+ },
3208
+ d(i) {
3209
+ i && L(n), r.d(i);
3210
+ }
3211
+ };
3212
+ }
3213
+ function Wo(t) {
3214
+ let e, n, o, r, i, a, s = (
3215
+ /*$store*/
3216
+ t[12]
3217
+ ), l = [];
3218
+ for (let c = 0; c < s.length; c += 1)
3219
+ l[c] = Le(Te(t, s, c));
3220
+ const d = (c) => k(l[c], 1, 1, () => {
3221
+ l[c] = null;
3222
+ });
3223
+ let p = (
3224
+ /*drawingEl*/
3225
+ t[4] && Be(t)
3226
+ );
3227
+ return {
3228
+ c() {
3229
+ e = O("svg"), n = O("g");
3230
+ for (let c = 0; c < l.length; c += 1)
3231
+ l[c].c();
3232
+ o = O("g"), p && p.c(), u(o, "class", "drawing"), u(e, "class", "a9s-annotationlayer"), ce(
3233
+ e,
3234
+ "drawing",
3235
+ /*tool*/
3236
+ t[2]
3237
+ );
3238
+ },
3239
+ m(c, f) {
3240
+ B(c, e, f), dt(e, n);
3241
+ for (let h = 0; h < l.length; h += 1)
3242
+ l[h] && l[h].m(n, null);
3243
+ dt(e, o), p && p.m(o, null), t[24](o), t[25](e), r = !0, i || (a = [
3244
+ R(e, "pointerup", function() {
3245
+ H(
3246
+ /*onPointerUp*/
3247
+ t[8]
3248
+ ) && t[8].apply(this, arguments);
3249
+ }),
3250
+ R(e, "pointerdown", function() {
3251
+ H(
3252
+ /*onPointerDown*/
3253
+ t[9]
3254
+ ) && t[9].apply(this, arguments);
3255
+ })
3256
+ ], i = !0);
3257
+ },
3258
+ p(c, f) {
3259
+ if (t = c, f[0] & /*$store, style, isEditable*/
3260
+ 4226) {
3261
+ s = /*$store*/
3262
+ t[12];
3263
+ let h;
3264
+ for (h = 0; h < s.length; h += 1) {
3265
+ const m = Te(t, s, h);
3266
+ l[h] ? (l[h].p(m, f), V(l[h], 1)) : (l[h] = Le(m), l[h].c(), V(l[h], 1), l[h].m(n, null));
3267
+ }
3268
+ for (ot(), h = s.length; h < l.length; h += 1)
3269
+ d(h);
3270
+ rt();
3271
+ }
3272
+ t[4] ? p ? (p.p(t, f), f[0] & /*drawingEl*/
3273
+ 16 && V(p, 1)) : (p = Be(t), p.c(), V(p, 1), p.m(o, null)) : p && (ot(), k(p, 1, 1, () => {
3274
+ p = null;
3275
+ }), rt()), (!r || f[0] & /*tool*/
3276
+ 4) && ce(
3277
+ e,
3278
+ "drawing",
3279
+ /*tool*/
3280
+ t[2]
3281
+ );
3282
+ },
3283
+ i(c) {
3284
+ if (!r) {
3285
+ for (let f = 0; f < s.length; f += 1)
3286
+ V(l[f]);
3287
+ V(p), r = !0;
3288
+ }
3289
+ },
3290
+ o(c) {
3291
+ l = l.filter(Boolean);
3292
+ for (let f = 0; f < l.length; f += 1)
3293
+ k(l[f]);
3294
+ k(p), r = !1;
3295
+ },
3296
+ d(c) {
3297
+ c && L(e), oe(l, c), p && p.d(), t[24](null), t[25](null), i = !1, it(a);
3298
+ }
3299
+ };
3300
+ }
3301
+ function Ko(t, e, n) {
3302
+ let o, r, i, a, s, l, d, p, c = U, f = () => (c(), c = Ve(b, (I) => n(13, p = I)), b);
3303
+ t.$$.on_destroy.push(() => c());
3304
+ let { drawingEnabled: h } = e, { image: m } = e, { preferredDrawingMode: x } = e, { state: A } = e, { style: $ = void 0 } = e, { tool: y, opts: v } = qe("rectangle"), { tool: E = y, opts: _ = v } = e, { user: C } = e, N, g, b;
3305
+ It(() => f(n(5, b = vo(m, g))));
3306
+ const { selection: w, store: T } = A;
3307
+ de(t, w, (I) => n(23, l = I)), de(t, T, (I) => n(12, d = I));
3308
+ let X = null, P = null;
3309
+ const J = (I) => {
3310
+ T.unobserve(X);
3311
+ const q = I.filter(({ editable: j }) => j).map(({ id: j }) => j);
3312
+ q.length > 0 ? (n(6, P = q.map((j) => T.getAnnotation(j))), X = (j) => {
3313
+ const { updated: G } = j.changes;
3314
+ n(6, P = G.map((st) => st.newValue));
3315
+ }, T.observe(X, { annotations: q })) : n(6, P = null);
3316
+ }, gt = (I) => {
3317
+ const q = Fe(), j = {
3318
+ id: q,
3319
+ bodies: [],
3320
+ target: {
3321
+ annotation: q,
3322
+ selector: I.detail,
3323
+ creator: C,
3324
+ created: /* @__PURE__ */ new Date()
3325
+ }
3326
+ };
3327
+ T.addAnnotation(j), w.setSelected(j.id);
3328
+ }, mt = (I) => (q) => {
3329
+ var j;
3330
+ const { target: G } = I, st = 10 * 60 * 1e3, lt = ((j = G.creator) == null ? void 0 : j.id) !== C.id || !G.created || (/* @__PURE__ */ new Date()).getTime() - G.created.getTime() > st;
3331
+ T.updateTarget({
3332
+ ...G,
3333
+ selector: q.detail,
3334
+ created: lt ? G.created : /* @__PURE__ */ new Date(),
3335
+ updated: lt ? /* @__PURE__ */ new Date() : null,
3336
+ updatedBy: lt ? C : null
3337
+ });
3338
+ };
3339
+ function Tt(I) {
3340
+ Dt[I ? "unshift" : "push"](() => {
3341
+ N = I, n(4, N);
3342
+ });
3343
+ }
3344
+ function W(I) {
3345
+ Dt[I ? "unshift" : "push"](() => {
3346
+ g = I, n(3, g);
3347
+ });
3348
+ }
3349
+ return t.$$set = (I) => {
3350
+ "drawingEnabled" in I && n(0, h = I.drawingEnabled), "image" in I && n(18, m = I.image), "preferredDrawingMode" in I && n(19, x = I.preferredDrawingMode), "state" in I && n(20, A = I.state), "style" in I && n(1, $ = I.style), "tool" in I && n(2, E = I.tool), "opts" in I && n(21, _ = I.opts), "user" in I && n(22, C = I.user);
3351
+ }, t.$$.update = () => {
3352
+ t.$$.dirty[0] & /*opts, preferredDrawingMode*/
3353
+ 2621440 && n(11, o = (_ == null ? void 0 : _.drawingMode) || x), t.$$.dirty[0] & /*svgEl*/
3354
+ 8 && n(10, r = Do(g)), t.$$.dirty[0] & /*svgEl*/
3355
+ 8 && n(9, { onPointerDown: i, onPointerUp: a } = Uo(g, T), i, (n(8, a), n(3, g))), t.$$.dirty[0] & /*$selection*/
3356
+ 8388608 && n(7, s = (I) => l.selected.find((q) => q.id === I.id && q.editable)), t.$$.dirty[0] & /*$selection*/
3357
+ 8388608 && J(l.selected);
3358
+ }, [
3359
+ h,
3360
+ $,
3361
+ E,
3362
+ g,
3363
+ N,
3364
+ b,
3365
+ P,
3366
+ s,
3367
+ a,
3368
+ i,
3369
+ r,
3370
+ o,
3371
+ d,
3372
+ p,
3373
+ w,
3374
+ T,
3375
+ gt,
3376
+ mt,
3377
+ m,
3378
+ x,
3379
+ A,
3380
+ _,
3381
+ C,
3382
+ l,
3383
+ Tt,
3384
+ W
3385
+ ];
3386
+ }
3387
+ class Jo extends nt {
3388
+ constructor(e) {
3389
+ super(), et(
3390
+ this,
3391
+ e,
3392
+ Ko,
3393
+ Wo,
3394
+ K,
3395
+ {
3396
+ drawingEnabled: 0,
3397
+ image: 18,
3398
+ preferredDrawingMode: 19,
3399
+ state: 20,
3400
+ style: 1,
3401
+ tool: 2,
3402
+ opts: 21,
3403
+ user: 22
3404
+ },
3405
+ null,
3406
+ [-1, -1]
3407
+ );
3408
+ }
3409
+ }
3410
+ function Qo(t, e, n, o, r) {
3411
+ We(t, e, n || 0, o || t.length - 1, r || Zo);
3412
+ }
3413
+ function We(t, e, n, o, r) {
3414
+ for (; o > n; ) {
3415
+ if (o - n > 600) {
3416
+ var i = o - n + 1, a = e - n + 1, s = Math.log(i), l = 0.5 * Math.exp(2 * s / 3), d = 0.5 * Math.sqrt(s * l * (i - l) / i) * (a - i / 2 < 0 ? -1 : 1), p = Math.max(n, Math.floor(e - a * l / i + d)), c = Math.min(o, Math.floor(e + (i - a) * l / i + d));
3417
+ We(t, e, p, c, r);
3418
+ }
3419
+ var f = t[e], h = n, m = o;
3420
+ for (St(t, n, e), r(t[o], f) > 0 && St(t, n, o); h < m; ) {
3421
+ for (St(t, h, m), h++, m--; r(t[h], f) < 0; )
3422
+ h++;
3423
+ for (; r(t[m], f) > 0; )
3424
+ m--;
3425
+ }
3426
+ r(t[n], f) === 0 ? St(t, n, m) : (m++, St(t, m, o)), m <= e && (n = m + 1), e <= m && (o = m - 1);
3427
+ }
3428
+ }
3429
+ function St(t, e, n) {
3430
+ var o = t[e];
3431
+ t[e] = t[n], t[n] = o;
3432
+ }
3433
+ function Zo(t, e) {
3434
+ return t < e ? -1 : t > e ? 1 : 0;
3435
+ }
3436
+ class tr {
3437
+ constructor(e = 9) {
3438
+ this._maxEntries = Math.max(4, e), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();
3439
+ }
3440
+ all() {
3441
+ return this._all(this.data, []);
3442
+ }
3443
+ search(e) {
3444
+ let n = this.data;
3445
+ const o = [];
3446
+ if (!kt(e, n))
3447
+ return o;
3448
+ const r = this.toBBox, i = [];
3449
+ for (; n; ) {
3450
+ for (let a = 0; a < n.children.length; a++) {
3451
+ const s = n.children[a], l = n.leaf ? r(s) : s;
3452
+ kt(e, l) && (n.leaf ? o.push(s) : Zt(e, l) ? this._all(s, o) : i.push(s));
3453
+ }
3454
+ n = i.pop();
3455
+ }
3456
+ return o;
3457
+ }
3458
+ collides(e) {
3459
+ let n = this.data;
3460
+ if (!kt(e, n))
3461
+ return !1;
3462
+ const o = [];
3463
+ for (; n; ) {
3464
+ for (let r = 0; r < n.children.length; r++) {
3465
+ const i = n.children[r], a = n.leaf ? this.toBBox(i) : i;
3466
+ if (kt(e, a)) {
3467
+ if (n.leaf || Zt(e, a))
3468
+ return !0;
3469
+ o.push(i);
3470
+ }
3471
+ }
3472
+ n = o.pop();
3473
+ }
3474
+ return !1;
3475
+ }
3476
+ load(e) {
3477
+ if (!(e && e.length))
3478
+ return this;
3479
+ if (e.length < this._minEntries) {
3480
+ for (let o = 0; o < e.length; o++)
3481
+ this.insert(e[o]);
3482
+ return this;
3483
+ }
3484
+ let n = this._build(e.slice(), 0, e.length - 1, 0);
3485
+ if (!this.data.children.length)
3486
+ this.data = n;
3487
+ else if (this.data.height === n.height)
3488
+ this._splitRoot(this.data, n);
3489
+ else {
3490
+ if (this.data.height < n.height) {
3491
+ const o = this.data;
3492
+ this.data = n, n = o;
3493
+ }
3494
+ this._insert(n, this.data.height - n.height - 1, !0);
3495
+ }
3496
+ return this;
3497
+ }
3498
+ insert(e) {
3499
+ return e && this._insert(e, this.data.height - 1), this;
3500
+ }
3501
+ clear() {
3502
+ return this.data = bt([]), this;
3503
+ }
3504
+ remove(e, n) {
3505
+ if (!e)
3506
+ return this;
3507
+ let o = this.data;
3508
+ const r = this.toBBox(e), i = [], a = [];
3509
+ let s, l, d;
3510
+ for (; o || i.length; ) {
3511
+ if (o || (o = i.pop(), l = i[i.length - 1], s = a.pop(), d = !0), o.leaf) {
3512
+ const p = er(e, o.children, n);
3513
+ if (p !== -1)
3514
+ return o.children.splice(p, 1), i.push(o), this._condense(i), this;
3515
+ }
3516
+ !d && !o.leaf && Zt(o, r) ? (i.push(o), a.push(s), s = 0, l = o, o = o.children[0]) : l ? (s++, o = l.children[s], d = !1) : o = null;
3517
+ }
3518
+ return this;
3519
+ }
3520
+ toBBox(e) {
3521
+ return e;
3522
+ }
3523
+ compareMinX(e, n) {
3524
+ return e.minX - n.minX;
3525
+ }
3526
+ compareMinY(e, n) {
3527
+ return e.minY - n.minY;
3528
+ }
3529
+ toJSON() {
3530
+ return this.data;
3531
+ }
3532
+ fromJSON(e) {
3533
+ return this.data = e, this;
3534
+ }
3535
+ _all(e, n) {
3536
+ const o = [];
3537
+ for (; e; )
3538
+ e.leaf ? n.push(...e.children) : o.push(...e.children), e = o.pop();
3539
+ return n;
3540
+ }
3541
+ _build(e, n, o, r) {
3542
+ const i = o - n + 1;
3543
+ let a = this._maxEntries, s;
3544
+ if (i <= a)
3545
+ return s = bt(e.slice(n, o + 1)), wt(s, this.toBBox), s;
3546
+ r || (r = Math.ceil(Math.log(i) / Math.log(a)), a = Math.ceil(i / Math.pow(a, r - 1))), s = bt([]), s.leaf = !1, s.height = r;
3547
+ const l = Math.ceil(i / a), d = l * Math.ceil(Math.sqrt(a));
3548
+ _e(e, n, o, d, this.compareMinX);
3549
+ for (let p = n; p <= o; p += d) {
3550
+ const c = Math.min(p + d - 1, o);
3551
+ _e(e, p, c, l, this.compareMinY);
3552
+ for (let f = p; f <= c; f += l) {
3553
+ const h = Math.min(f + l - 1, c);
3554
+ s.children.push(this._build(e, f, h, r - 1));
3555
+ }
3556
+ }
3557
+ return wt(s, this.toBBox), s;
3558
+ }
3559
+ _chooseSubtree(e, n, o, r) {
3560
+ for (; r.push(n), !(n.leaf || r.length - 1 === o); ) {
3561
+ let i = 1 / 0, a = 1 / 0, s;
3562
+ for (let l = 0; l < n.children.length; l++) {
3563
+ const d = n.children[l], p = Qt(d), c = rr(e, d) - p;
3564
+ c < a ? (a = c, i = p < i ? p : i, s = d) : c === a && p < i && (i = p, s = d);
3565
+ }
3566
+ n = s || n.children[0];
3567
+ }
3568
+ return n;
3569
+ }
3570
+ _insert(e, n, o) {
3571
+ const r = o ? e : this.toBBox(e), i = [], a = this._chooseSubtree(r, this.data, n, i);
3572
+ for (a.children.push(e), Lt(a, r); n >= 0 && i[n].children.length > this._maxEntries; )
3573
+ this._split(i, n), n--;
3574
+ this._adjustParentBBoxes(r, i, n);
3575
+ }
3576
+ // split overflowed node into two
3577
+ _split(e, n) {
3578
+ const o = e[n], r = o.children.length, i = this._minEntries;
3579
+ this._chooseSplitAxis(o, i, r);
3580
+ const a = this._chooseSplitIndex(o, i, r), s = bt(o.children.splice(a, o.children.length - a));
3581
+ s.height = o.height, s.leaf = o.leaf, wt(o, this.toBBox), wt(s, this.toBBox), n ? e[n - 1].children.push(s) : this._splitRoot(o, s);
3582
+ }
3583
+ _splitRoot(e, n) {
3584
+ this.data = bt([e, n]), this.data.height = e.height + 1, this.data.leaf = !1, wt(this.data, this.toBBox);
3585
+ }
3586
+ _chooseSplitIndex(e, n, o) {
3587
+ let r, i = 1 / 0, a = 1 / 0;
3588
+ for (let s = n; s <= o - n; s++) {
3589
+ const l = Mt(e, 0, s, this.toBBox), d = Mt(e, s, o, this.toBBox), p = ir(l, d), c = Qt(l) + Qt(d);
3590
+ p < i ? (i = p, r = s, a = c < a ? c : a) : p === i && c < a && (a = c, r = s);
3591
+ }
3592
+ return r || o - n;
3593
+ }
3594
+ // sorts node children by the best axis for split
3595
+ _chooseSplitAxis(e, n, o) {
3596
+ const r = e.leaf ? this.compareMinX : nr, i = e.leaf ? this.compareMinY : or, a = this._allDistMargin(e, n, o, r), s = this._allDistMargin(e, n, o, i);
3597
+ a < s && e.children.sort(r);
3598
+ }
3599
+ // total margin of all possible split distributions where each node is at least m full
3600
+ _allDistMargin(e, n, o, r) {
3601
+ e.children.sort(r);
3602
+ const i = this.toBBox, a = Mt(e, 0, n, i), s = Mt(e, o - n, o, i);
3603
+ let l = Vt(a) + Vt(s);
3604
+ for (let d = n; d < o - n; d++) {
3605
+ const p = e.children[d];
3606
+ Lt(a, e.leaf ? i(p) : p), l += Vt(a);
3607
+ }
3608
+ for (let d = o - n - 1; d >= n; d--) {
3609
+ const p = e.children[d];
3610
+ Lt(s, e.leaf ? i(p) : p), l += Vt(s);
3611
+ }
3612
+ return l;
3613
+ }
3614
+ _adjustParentBBoxes(e, n, o) {
3615
+ for (let r = o; r >= 0; r--)
3616
+ Lt(n[r], e);
3617
+ }
3618
+ _condense(e) {
3619
+ for (let n = e.length - 1, o; n >= 0; n--)
3620
+ e[n].children.length === 0 ? n > 0 ? (o = e[n - 1].children, o.splice(o.indexOf(e[n]), 1)) : this.clear() : wt(e[n], this.toBBox);
3621
+ }
3622
+ }
3623
+ function er(t, e, n) {
3624
+ if (!n)
3625
+ return e.indexOf(t);
3626
+ for (let o = 0; o < e.length; o++)
3627
+ if (n(t, e[o]))
3628
+ return o;
3629
+ return -1;
3630
+ }
3631
+ function wt(t, e) {
3632
+ Mt(t, 0, t.children.length, e, t);
3633
+ }
3634
+ function Mt(t, e, n, o, r) {
3635
+ r || (r = bt(null)), r.minX = 1 / 0, r.minY = 1 / 0, r.maxX = -1 / 0, r.maxY = -1 / 0;
3636
+ for (let i = e; i < n; i++) {
3637
+ const a = t.children[i];
3638
+ Lt(r, t.leaf ? o(a) : a);
3639
+ }
3640
+ return r;
3641
+ }
3642
+ function Lt(t, e) {
3643
+ return t.minX = Math.min(t.minX, e.minX), t.minY = Math.min(t.minY, e.minY), t.maxX = Math.max(t.maxX, e.maxX), t.maxY = Math.max(t.maxY, e.maxY), t;
3644
+ }
3645
+ function nr(t, e) {
3646
+ return t.minX - e.minX;
3647
+ }
3648
+ function or(t, e) {
3649
+ return t.minY - e.minY;
3650
+ }
3651
+ function Qt(t) {
3652
+ return (t.maxX - t.minX) * (t.maxY - t.minY);
3653
+ }
3654
+ function Vt(t) {
3655
+ return t.maxX - t.minX + (t.maxY - t.minY);
3656
+ }
3657
+ function rr(t, e) {
3658
+ return (Math.max(e.maxX, t.maxX) - Math.min(e.minX, t.minX)) * (Math.max(e.maxY, t.maxY) - Math.min(e.minY, t.minY));
3659
+ }
3660
+ function ir(t, e) {
3661
+ const n = Math.max(t.minX, e.minX), o = Math.max(t.minY, e.minY), r = Math.min(t.maxX, e.maxX), i = Math.min(t.maxY, e.maxY);
3662
+ return Math.max(0, r - n) * Math.max(0, i - o);
3663
+ }
3664
+ function Zt(t, e) {
3665
+ return t.minX <= e.minX && t.minY <= e.minY && e.maxX <= t.maxX && e.maxY <= t.maxY;
3666
+ }
3667
+ function kt(t, e) {
3668
+ return e.minX <= t.maxX && e.minY <= t.maxY && e.maxX >= t.minX && e.maxY >= t.minY;
3669
+ }
3670
+ function bt(t) {
3671
+ return {
3672
+ children: t,
3673
+ height: 1,
3674
+ leaf: !0,
3675
+ minX: 1 / 0,
3676
+ minY: 1 / 0,
3677
+ maxX: -1 / 0,
3678
+ maxY: -1 / 0
3679
+ };
3680
+ }
3681
+ function _e(t, e, n, o, r) {
3682
+ const i = [e, n];
3683
+ for (; i.length; ) {
3684
+ if (n = i.pop(), e = i.pop(), n - e <= o)
3685
+ continue;
3686
+ const a = e + Math.ceil((n - e) / o / 2) * o;
3687
+ Qo(t, a, e, n, r), i.push(e, a, a, n);
3688
+ }
3689
+ }
3690
+ const ar = () => {
3691
+ const t = new tr(), e = /* @__PURE__ */ new Map(), n = () => [...e.values()], o = () => {
3692
+ t.clear(), e.clear();
3693
+ }, r = (a) => {
3694
+ const { minX: s, minY: l, maxX: d, maxY: p } = a.selector.geometry.bounds, c = { minX: s, minY: l, maxX: d, maxY: p, target: a };
3695
+ t.insert(c), e.set(a.annotation, c);
3696
+ }, i = (a) => {
3697
+ const s = e.get(a.annotation);
3698
+ t.remove(s), e.delete(a.annotation);
3699
+ };
3700
+ return {
3701
+ all: n,
3702
+ clear: o,
3703
+ getAt: (a, s) => {
3704
+ const l = t.search({
3705
+ minX: a,
3706
+ minY: s,
3707
+ maxX: a,
3708
+ maxY: s
3709
+ }).map((d) => d.target).filter((d) => d.selector.type === F.RECTANGLE || cn(d.selector, a, s));
3710
+ if (l.length > 0)
3711
+ return l.sort((d, p) => ne(d.selector) - ne(p.selector)), l[0];
3712
+ },
3713
+ getIntersecting: (a, s, l, d) => t.search({
3714
+ minX: a,
3715
+ minY: s,
3716
+ maxX: a + l,
3717
+ maxY: s + d
3718
+ }).map((p) => p.target),
3719
+ insert: r,
3720
+ remove: i,
3721
+ set: (a, s = !0) => {
3722
+ s && o();
3723
+ const l = a.map((d) => {
3724
+ const { minX: p, minY: c, maxX: f, maxY: h } = d.selector.geometry.bounds;
3725
+ return { minX: p, minY: c, maxX: f, maxY: h, target: d };
3726
+ });
3727
+ l.forEach((d) => e.set(d.target.annotation, d)), t.load(l);
3728
+ },
3729
+ size: () => t.all().length,
3730
+ update: (a, s) => {
3731
+ i(a), r(s);
3732
+ }
3733
+ };
3734
+ }, sr = (t) => {
3735
+ const e = On(), n = ar(), o = Mn(e, t.pointerSelectAction), r = Sn(e), i = Gn();
3736
+ return e.observe(({ changes: a }) => {
3737
+ n.set(a.created.map((s) => s.target), !1), a.deleted.forEach((s) => n.remove(s.target)), a.updated.forEach(({ oldValue: s, newValue: l }) => n.update(s.target, l.target));
3738
+ }), {
3739
+ store: {
3740
+ ...e,
3741
+ getAt: (a, s) => {
3742
+ const l = n.getAt(a, s);
3743
+ return l ? e.getAnnotation(l.annotation) : void 0;
3744
+ },
3745
+ getIntersecting: (a, s, l, d) => n.getIntersecting(a, s, l, d).map((p) => e.getAnnotation(p.annotation))
3746
+ },
3747
+ selection: o,
3748
+ hover: r,
3749
+ viewport: i
3750
+ };
3751
+ }, lr = (t) => {
3752
+ const e = sr(t);
3753
+ return {
3754
+ ...e,
3755
+ store: Vn(e.store)
3756
+ };
3757
+ }, dr = (t) => {
3758
+ let e, n;
3759
+ if (t.nodeName === "CANVAS")
3760
+ e = t, n = e.getContext("2d", { willReadFrequently: !0 });
3761
+ else {
3762
+ const r = t;
3763
+ e = document.createElement("canvas"), e.width = r.width, e.height = r.height, n = e.getContext("2d", { willReadFrequently: !0 }), n.drawImage(r, 0, 0, r.width, r.height);
3764
+ }
3765
+ let o = 0;
3766
+ for (let r = 1; r < 10; r++)
3767
+ for (let i = 1; i < 10; i++) {
3768
+ const a = Math.round(i * e.width / 10), s = Math.round(r * e.height / 10), l = n.getImageData(a, s, 1, 1).data, d = (0.299 * l[0] + 0.587 * l[1] + 0.114 * l[2]) / 255;
3769
+ o += d;
3770
+ }
3771
+ return o / 81;
3772
+ }, cr = (t) => {
3773
+ const e = dr(t), n = e > 0.6 ? "dark" : "light";
3774
+ return console.log(`[Annotorious] Image brightness: ${e.toFixed(1)}. Setting ${n} theme.`), n;
3775
+ }, Ce = (t, e, n) => e.setAttribute("data-theme", n === "auto" ? cr(t) : n), ur = (t) => ({
3776
+ ...t,
3777
+ drawingEnabled: t.drawingEnabled === void 0 ? !0 : t.drawingEnabled,
3778
+ drawingMode: t.drawingMode || "drag",
3779
+ pointerSelectAction: t.pointerSelectAction || He.EDIT,
3780
+ theme: t.theme || "light"
3781
+ }), Pe = navigator.userAgent.indexOf("Mac OS X") !== -1, hr = (t, e) => {
3782
+ const n = e || document, o = (a) => {
3783
+ a.key === "Z" && a.ctrlKey ? t.undo() : a.key === "Y" && a.ctrlKey && t.redo();
3784
+ }, r = (a) => {
3785
+ a.key === "z" && a.metaKey && (a.shiftKey ? t.redo() : t.undo());
3786
+ }, i = () => {
3787
+ Pe ? n.removeEventListener("keydown", r) : n.removeEventListener("keydown", o);
3788
+ };
3789
+ return Pe ? n.addEventListener("keydown", r) : n.addEventListener("keydown", o), {
3790
+ destroy: i
3791
+ };
3792
+ }, fr = (t, e = {}) => {
3793
+ if (!t)
3794
+ throw "Missing argument: image";
3795
+ const n = typeof t == "string" ? document.getElementById(t) : t, o = ur(e), r = lr(o), { selection: i, store: a } = r, s = Dn(a), l = Un(
3796
+ r,
3797
+ s,
3798
+ o.adapter,
3799
+ o.autoSave
3800
+ ), d = document.createElement("DIV");
3801
+ d.style.position = "relative", d.style.display = "inline-block", n.style.display = "block", n.parentNode.insertBefore(d, n), d.appendChild(n);
3802
+ const p = hr(s);
3803
+ let c = Wn();
3804
+ Ce(n, d, o.theme);
3805
+ const f = new Jo({
3806
+ target: d,
3807
+ props: {
3808
+ drawingEnabled: o.drawingEnabled,
3809
+ image: n,
3810
+ preferredDrawingMode: o.drawingMode,
3811
+ state: r,
3812
+ style: o.style,
3813
+ user: c
3814
+ }
3815
+ });
3816
+ f.$on("click", (g) => {
3817
+ const { originalEvent: b, annotation: w } = g.detail;
3818
+ w ? i.clickSelect(w.id, b) : i.isEmpty() || i.clear();
3819
+ });
3820
+ const h = Hn(r, s, o.adapter), m = () => {
3821
+ f.$destroy(), d.parentNode.insertBefore(n, d), d.parentNode.removeChild(d), p.destroy(), s.destroy();
3822
+ }, x = () => c, A = (g, b, w) => Lo(g, b, w), $ = (g, b) => co(g, b), y = (g) => {
3823
+ const { tool: b, opts: w } = qe(g);
3824
+ f.$set({ tool: b, opts: w });
3825
+ }, v = (g) => f.$set({ drawingEnabled: g }), E = (g) => {
3826
+ console.warn("Filter not implemented yet");
3827
+ }, _ = (g) => f.$set({ style: g }), C = (g) => Ce(n, d, g), N = (g) => {
3828
+ c = g, f.$set({ user: g });
3829
+ };
3830
+ return {
3831
+ ...h,
3832
+ destroy: m,
3833
+ getUser: x,
3834
+ listDrawingTools: Mo,
3835
+ on: l.on,
3836
+ off: l.off,
3837
+ registerDrawingTool: A,
3838
+ registerShapeEditor: $,
3839
+ setDrawingEnabled: v,
3840
+ setDrawingTool: y,
3841
+ setFilter: E,
3842
+ setStyle: _,
3843
+ setTheme: C,
3844
+ setUser: N,
3845
+ state: r
3846
+ };
3847
+ };
2
3848
  export {
3
- e as __module
3849
+ Re as Editor,
3850
+ go as EditorMount,
3851
+ M as Handle,
3852
+ D as Origin,
3853
+ He as PointerSelectAction,
3854
+ ro as PolygonEditor,
3855
+ lo as RectangleEditor,
3856
+ pn as RectangleUtil,
3857
+ xo as RubberbandRectangle,
3858
+ Jo as SVGAnnotationLayer,
3859
+ F as ShapeType,
3860
+ yo as ToolMount,
3861
+ pr as W3CImageFormat,
3862
+ Uo as addEventListeners,
3863
+ Gt as boundsFromPoints,
3864
+ ne as computeArea,
3865
+ Wn as createAnonymousGuest,
3866
+ Hn as createBaseAnnotator,
3867
+ fr as createImageAnnotator,
3868
+ sr as createImageAnnotatorState,
3869
+ Do as createSVGTransform,
3870
+ lr as createSvelteImageAnnotatorState,
3871
+ cr as detectTheme,
3872
+ je as diffAnnotations,
3873
+ Wt as distance,
3874
+ vo as enableResponsive,
3875
+ ur as fillDefaults,
3876
+ we as getEditor,
3877
+ qe as getTool,
3878
+ hr as initKeyboardCommands,
3879
+ cn as intersects,
3880
+ Mo as listDrawingTools,
3881
+ Fn as parseAll,
3882
+ fn as parseFragmentSelector,
3883
+ xn as parseSVGSelector,
3884
+ Jn as parseW3CBodies,
3885
+ Zn as parseW3CImageAnnotation,
3886
+ co as registerEditor,
3887
+ ie as registerShapeUtil,
3888
+ Lo as registerTool,
3889
+ dr as sampleBrightness,
3890
+ gn as serializeFragmentSelector,
3891
+ bn as serializeSVGSelector,
3892
+ Qn as serializeW3CBodies,
3893
+ to as serializeW3CImageAnnotation,
3894
+ Ce as setTheme
4
3895
  };
5
3896
  //# sourceMappingURL=annotorious-react.es18.js.map