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

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