@annotorious/svelte 3.0.0-rc.5 → 3.0.0-rc.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-svelte.es5.js","sources":["../../annotorious/dist/annotorious.es.js"],"sourcesContent":["function V() {\n}\nfunction tn(e, t) {\n for (const n in t)\n e[n] = t[n];\n return e;\n}\nfunction zt(e) {\n return e();\n}\nfunction ht() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction re(e) {\n e.forEach(zt);\n}\nfunction H(e) {\n return typeof e == \"function\";\n}\nfunction Z(e, t) {\n return e != e ? t == t : e !== t || e && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction nn(e) {\n return Object.keys(e).length === 0;\n}\nfunction Ft(e, ...t) {\n if (e == null)\n return V;\n const n = e.subscribe(...t);\n return n.unsubscribe ? () => n.unsubscribe() : n;\n}\nfunction gt(e, t, n) {\n e.$$.on_destroy.push(Ft(t, n));\n}\nfunction on(e, t, n, o) {\n if (e) {\n const i = Ht(e, t, n, o);\n return e[0](i);\n }\n}\nfunction Ht(e, t, n, o) {\n return e[1] && o ? tn(n.ctx.slice(), e[1](o(t))) : n.ctx;\n}\nfunction sn(e, t, n, o) {\n if (e[2] && o) {\n const i = e[2](o(n));\n if (t.dirty === void 0)\n return i;\n if (typeof i == \"object\") {\n const s = [], r = Math.max(t.dirty.length, i.length);\n for (let a = 0; a < r; a += 1)\n s[a] = t.dirty[a] | i[a];\n return s;\n }\n return t.dirty | i;\n }\n return t.dirty;\n}\nfunction rn(e, t, n, o, i, s) {\n if (i) {\n const r = Ht(t, n, o, s);\n e.p(r, i);\n }\n}\nfunction ln(e) {\n if (e.ctx.length > 32) {\n const t = [], n = e.ctx.length / 32;\n for (let o = 0; o < n; o++)\n t[o] = -1;\n return t;\n }\n return -1;\n}\nfunction ae(e, t) {\n e.appendChild(t);\n}\nfunction k(e, t, n) {\n e.insertBefore(t, n || null);\n}\nfunction L(e) {\n e.parentNode && e.parentNode.removeChild(e);\n}\nfunction rt(e, t) {\n for (let n = 0; n < e.length; n += 1)\n e[n] && e[n].d(t);\n}\nfunction U(e) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", e);\n}\nfunction jt(e) {\n return document.createTextNode(e);\n}\nfunction ee() {\n return jt(\" \");\n}\nfunction le() {\n return jt(\"\");\n}\nfunction W(e, t, n, o) {\n return e.addEventListener(t, n, o), () => e.removeEventListener(t, n, o);\n}\nfunction f(e, t, n) {\n n == null ? e.removeAttribute(t) : e.getAttribute(t) !== n && e.setAttribute(t, n);\n}\nfunction an(e) {\n return Array.from(e.childNodes);\n}\nfunction mt(e, t, n) {\n e.classList[n ? \"add\" : \"remove\"](t);\n}\nfunction cn(e, t, { bubbles: n = !1, cancelable: o = !1 } = {}) {\n const i = document.createEvent(\"CustomEvent\");\n return i.initCustomEvent(e, n, o, t), i;\n}\nlet Ce;\nfunction Ie(e) {\n Ce = e;\n}\nfunction qt() {\n if (!Ce)\n throw new Error(\"Function called outside component initialization\");\n return Ce;\n}\nfunction Pe(e) {\n qt().$$.on_mount.push(e);\n}\nfunction ve() {\n const e = qt();\n return (t, n, { cancelable: o = !1 } = {}) => {\n const i = e.$$.callbacks[t];\n if (i) {\n const s = cn(t, n, { cancelable: o });\n return i.slice().forEach((r) => {\n r.call(e, s);\n }), !s.defaultPrevented;\n }\n return !0;\n };\n}\nfunction Te(e, t) {\n const n = e.$$.callbacks[t.type];\n n && n.slice().forEach((o) => o.call(this, t));\n}\nconst Ee = [], ze = [];\nlet Se = [];\nconst pt = [], dn = /* @__PURE__ */ Promise.resolve();\nlet ot = !1;\nfunction un() {\n ot || (ot = !0, dn.then(Wt));\n}\nfunction it(e) {\n Se.push(e);\n}\nconst Ke = /* @__PURE__ */ new Set();\nlet ye = 0;\nfunction Wt() {\n if (ye !== 0)\n return;\n const e = Ce;\n do {\n try {\n for (; ye < Ee.length; ) {\n const t = Ee[ye];\n ye++, Ie(t), fn(t.$$);\n }\n } catch (t) {\n throw Ee.length = 0, ye = 0, t;\n }\n for (Ie(null), Ee.length = 0, ye = 0; ze.length; )\n ze.pop()();\n for (let t = 0; t < Se.length; t += 1) {\n const n = Se[t];\n Ke.has(n) || (Ke.add(n), n());\n }\n Se.length = 0;\n } while (Ee.length);\n for (; pt.length; )\n pt.pop()();\n ot = !1, Ke.clear(), Ie(e);\n}\nfunction fn(e) {\n if (e.fragment !== null) {\n e.update(), re(e.before_update);\n const t = e.dirty;\n e.dirty = [-1], e.fragment && e.fragment.p(e.ctx, t), e.after_update.forEach(it);\n }\n}\nfunction hn(e) {\n const t = [], n = [];\n Se.forEach((o) => e.indexOf(o) === -1 ? t.push(o) : n.push(o)), n.forEach((o) => o()), Se = t;\n}\nconst Ve = /* @__PURE__ */ new Set();\nlet fe;\nfunction ie() {\n fe = {\n r: 0,\n c: [],\n p: fe\n // parent group\n };\n}\nfunction se() {\n fe.r || re(fe.c), fe = fe.p;\n}\nfunction D(e, t) {\n e && e.i && (Ve.delete(e), e.i(t));\n}\nfunction X(e, t, n, o) {\n if (e && e.o) {\n if (Ve.has(e))\n return;\n Ve.add(e), fe.c.push(() => {\n Ve.delete(e), o && (n && e.d(1), o());\n }), e.o(t);\n } else\n o && o();\n}\nfunction ge(e) {\n e && e.c();\n}\nfunction ce(e, t, n, o) {\n const { fragment: i, after_update: s } = e.$$;\n i && i.m(t, n), o || it(() => {\n const r = e.$$.on_mount.map(zt).filter(H);\n e.$$.on_destroy ? e.$$.on_destroy.push(...r) : re(r), e.$$.on_mount = [];\n }), s.forEach(it);\n}\nfunction de(e, t) {\n const n = e.$$;\n n.fragment !== null && (hn(n.after_update), re(n.on_destroy), n.fragment && n.fragment.d(t), n.on_destroy = n.fragment = null, n.ctx = []);\n}\nfunction gn(e, t) {\n e.$$.dirty[0] === -1 && (Ee.push(e), un(), e.$$.dirty.fill(0)), e.$$.dirty[t / 31 | 0] |= 1 << t % 31;\n}\nfunction te(e, t, n, o, i, s, r, a = [-1]) {\n const l = Ce;\n Ie(e);\n const d = e.$$ = {\n fragment: null,\n ctx: [],\n // state\n props: s,\n update: V,\n not_equal: i,\n bound: ht(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(t.context || (l ? l.$$.context : [])),\n // everything else\n callbacks: ht(),\n dirty: a,\n skip_bound: !1,\n root: t.target || l.$$.root\n };\n r && r(d.root);\n let h = !1;\n if (d.ctx = n ? n(e, t.props || {}, (c, g, ...u) => {\n const m = u.length ? u[0] : g;\n return d.ctx && i(d.ctx[c], d.ctx[c] = m) && (!d.skip_bound && d.bound[c] && d.bound[c](m), h && gn(e, c)), g;\n }) : [], d.update(), h = !0, re(d.before_update), d.fragment = o ? o(d.ctx) : !1, t.target) {\n if (t.hydrate) {\n const c = an(t.target);\n d.fragment && d.fragment.l(c), c.forEach(L);\n } else\n d.fragment && d.fragment.c();\n t.intro && D(e.$$.fragment), ce(e, t.target, t.anchor, t.customElement), Wt();\n }\n Ie(l);\n}\nclass ne {\n $destroy() {\n de(this, 1), this.$destroy = V;\n }\n $on(t, n) {\n if (!H(n))\n return V;\n const o = this.$$.callbacks[t] || (this.$$.callbacks[t] = []);\n return o.push(n), () => {\n const i = o.indexOf(n);\n i !== -1 && o.splice(i, 1);\n };\n }\n $set(t) {\n this.$$set && !nn(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1);\n }\n}\nvar F = /* @__PURE__ */ ((e) => (e.ELLIPSE = \"ELLIPSE\", e.POLYGON = \"POLYGON\", e.RECTANGLE = \"RECTANGLE\", e))(F || {});\nconst lt = {}, at = (e, t) => lt[e] = t, st = (e) => lt[e.type].area(e), mn = (e, t, n) => lt[e.type].intersects(e, t, n), Fe = (e) => {\n let t = 1 / 0, n = 1 / 0, o = -1 / 0, i = -1 / 0;\n return e.forEach(([s, r]) => {\n t = Math.min(t, s), n = Math.min(n, r), o = Math.max(o, s), i = Math.max(i, r);\n }), { minX: t, minY: n, maxX: o, maxY: i };\n}, pn = {\n area: (e) => Math.PI * e.geometry.rx * e.geometry.ry,\n intersects: (e, t, n) => {\n const { cx: o, cy: i, rx: s, ry: r } = e.geometry, a = 0, l = Math.cos(a), d = Math.sin(a), h = t - o, c = n - i, g = l * h + d * c, u = d * h - l * c;\n return g * g / (s * s) + u * u / (r * r) <= 1;\n }\n};\nat(F.ELLIPSE, pn);\nconst yn = {\n area: (e) => {\n const { points: t } = e.geometry;\n let n = 0, o = t.length - 1;\n for (let i = 0; i < t.length; i++)\n n += (t[o][0] + t[i][0]) * (t[o][1] - t[i][1]), o = i;\n return Math.abs(0.5 * n);\n },\n intersects: (e, t, n) => {\n const { points: o } = e.geometry;\n let i = !1;\n for (let s = 0, r = o.length - 1; s < o.length; r = s++) {\n const a = o[s][0], l = o[s][1], d = o[r][0], h = o[r][1];\n l > n != h > n && t < (d - a) * (n - l) / (h - l) + a && (i = !i);\n }\n return i;\n }\n};\nat(F.POLYGON, yn);\nconst _n = {\n area: (e) => e.geometry.w * e.geometry.h,\n intersects: (e, t, n) => t >= e.geometry.x && t <= e.geometry.x + e.geometry.w && n >= e.geometry.y && n <= e.geometry.y + e.geometry.h\n};\nat(F.RECTANGLE, _n);\nconst wn = (e, t = !1) => {\n const n = typeof e == \"string\" ? e : e.value, o = /^(xywh)=(pixel|percent)?:?(.+?),(.+?),(.+?),(.+)*/g, i = [...n.matchAll(o)][0], [s, r, a, l, d, h, c] = i;\n if (r !== \"xywh\")\n throw new Error(\"Unsupported MediaFragment: \" + n);\n if (a && a !== \"pixel\")\n throw new Error(`Unsupported MediaFragment unit: ${a}`);\n const [g, u, m, w] = [l, d, h, c].map(parseFloat);\n return {\n type: F.RECTANGLE,\n geometry: {\n x: g,\n y: u,\n w: m,\n h: w,\n bounds: {\n minX: g,\n minY: t ? u - w : u,\n maxX: g + m,\n maxY: t ? u : u + w\n }\n }\n };\n}, bn = (e) => {\n const { x: t, y: n, w: o, h: i } = e;\n return {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=pixel:${t},${n},${o},${i}`\n };\n}, Jt = \"http://www.w3.org/2000/svg\", yt = (e) => {\n const t = (o) => {\n Array.from(o.attributes).forEach((i) => {\n i.name.startsWith(\"on\") && o.removeAttribute(i.name);\n });\n }, n = e.getElementsByTagName(\"script\");\n return Array.from(n).reverse().forEach((o) => o.parentNode.removeChild(o)), Array.from(e.querySelectorAll(\"*\")).forEach(t), e;\n}, En = (e) => {\n const o = new XMLSerializer().serializeToString(e.documentElement).replace(\"<svg>\", `<svg xmlns=\"${Jt}\">`);\n return new DOMParser().parseFromString(o, \"image/svg+xml\").documentElement;\n}, An = (e) => {\n const n = new DOMParser().parseFromString(e, \"image/svg+xml\"), o = n.lookupPrefix(Jt), i = n.lookupNamespaceURI(null);\n return o || i ? yt(n).firstChild : yt(En(n)).firstChild;\n}, Tn = (e) => {\n const [t, n, o] = e.match(/(<polygon points=[\"|'])([^(\"|')]*)/) || [];\n if (!o)\n return;\n const i = o.split(\" \").map((s) => s.split(\",\").map(parseFloat));\n return {\n type: F.POLYGON,\n geometry: {\n points: i,\n bounds: Fe(i)\n }\n };\n}, Sn = (e) => {\n const t = An(e), n = parseFloat(t.getAttribute(\"cx\")), o = parseFloat(t.getAttribute(\"cy\")), i = parseFloat(t.getAttribute(\"rx\")), s = parseFloat(t.getAttribute(\"ry\")), r = {\n minX: n - i,\n minY: o - s,\n maxX: n + i,\n maxY: o + s\n };\n return {\n type: F.ELLIPSE,\n geometry: {\n cx: n,\n cy: o,\n rx: i,\n ry: s,\n bounds: r\n }\n };\n}, vn = (e) => {\n const t = typeof e == \"string\" ? e : e.value;\n if (t.includes(\"<polygon points=\"))\n return Tn(t);\n if (t.includes(\"<ellipse \"))\n return Sn(t);\n}, Mn = (e) => {\n let t;\n if (e.type === F.POLYGON) {\n const n = e.geometry, { points: o } = n;\n t = `<svg><polygon points=\"${o.map((i) => i.join(\",\")).join(\" \")}\" /></svg>`;\n } else if (e.type === F.ELLIPSE) {\n const n = e.geometry;\n t = `<svg><ellipse cx=\"${n.cx}\" cy=\"${n.cy}\" rx=\"${n.rx}\" ry=\"${n.ry}\" /></svg>`;\n }\n if (t)\n return { type: \"SvgSelector\", value: t };\n throw `Unsupported shape type: ${e.type}`;\n};\nlet Xe;\nconst On = new Uint8Array(16);\nfunction Ln() {\n if (!Xe && (Xe = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Xe))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return Xe(On);\n}\nconst q = [];\nfor (let e = 0; e < 256; ++e)\n q.push((e + 256).toString(16).slice(1));\nfunction kn(e, t = 0) {\n return q[e[t + 0]] + q[e[t + 1]] + q[e[t + 2]] + q[e[t + 3]] + \"-\" + q[e[t + 4]] + q[e[t + 5]] + \"-\" + q[e[t + 6]] + q[e[t + 7]] + \"-\" + q[e[t + 8]] + q[e[t + 9]] + \"-\" + q[e[t + 10]] + q[e[t + 11]] + q[e[t + 12]] + q[e[t + 13]] + q[e[t + 14]] + q[e[t + 15]];\n}\nconst Bn = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), _t = {\n randomUUID: Bn\n};\nfunction ct(e, t, n) {\n if (_t.randomUUID && !t && !e)\n return _t.randomUUID();\n e = e || {};\n const o = e.random || (e.rng || Ln)();\n if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, t) {\n n = n || 0;\n for (let i = 0; i < 16; ++i)\n t[n + i] = o[i];\n return t;\n }\n return kn(o);\n}\nvar wt = Object.prototype.hasOwnProperty;\nfunction he(e, t) {\n var n, o;\n if (e === t)\n return !0;\n if (e && t && (n = e.constructor) === t.constructor) {\n if (n === Date)\n return e.getTime() === t.getTime();\n if (n === RegExp)\n return e.toString() === t.toString();\n if (n === Array) {\n if ((o = e.length) === t.length)\n for (; o-- && he(e[o], t[o]); )\n ;\n return o === -1;\n }\n if (!n || typeof e == \"object\") {\n o = 0;\n for (n in e)\n if (wt.call(e, n) && ++o && !wt.call(t, n) || !(n in t) || !he(e[n], t[n]))\n return !1;\n return Object.keys(t).length === o;\n }\n }\n return e !== e && t !== t;\n}\nfunction Ze() {\n}\nfunction In(e, t) {\n return e != e ? t == t : e !== t || e && typeof e == \"object\" || typeof e == \"function\";\n}\nconst _e = [];\nfunction dt(e, t = Ze) {\n let n;\n const o = /* @__PURE__ */ new Set();\n function i(a) {\n if (In(e, a) && (e = a, n)) {\n const l = !_e.length;\n for (const d of o)\n d[1](), _e.push(d, e);\n if (l) {\n for (let d = 0; d < _e.length; d += 2)\n _e[d][0](_e[d + 1]);\n _e.length = 0;\n }\n }\n }\n function s(a) {\n i(a(e));\n }\n function r(a, l = Ze) {\n const d = [a, l];\n return o.add(d), o.size === 1 && (n = t(i) || Ze), a(e), () => {\n o.delete(d), o.size === 0 && n && (n(), n = null);\n };\n }\n return { set: i, update: s, subscribe: r };\n}\nconst Cn = (e) => {\n const { subscribe: t, set: n } = dt(null);\n let o = null;\n return t((i) => o = i), e.observe(({ changes: i }) => {\n if (o) {\n i.deleted.some((r) => r.id === o) && n(null);\n const s = i.updated.find(({ oldValue: r }) => r.id === o);\n s && n(s.newValue.id);\n }\n }), {\n get current() {\n return o;\n },\n subscribe: t,\n set: n\n };\n};\nvar Kt = /* @__PURE__ */ ((e) => (e.EDIT = \"EDIT\", e.SELECT = \"SELECT\", e.NONE = \"NONE\", e))(Kt || {});\nconst Qe = { selected: [] }, Pn = (e, t = \"EDIT\") => {\n const { subscribe: n, set: o } = dt(Qe);\n let i = Qe;\n n((c) => i = c);\n const s = () => o(Qe), r = () => {\n var c;\n return ((c = i.selected) == null ? void 0 : c.length) === 0;\n }, a = (c) => {\n if (i.selected.length === 0)\n return !1;\n const g = typeof c == \"string\" ? c : c.id;\n return i.selected.some((u) => u.id === g);\n }, l = (c, g) => {\n const u = e.getAnnotation(c);\n if (u) {\n const m = Rn(u, t);\n o(m === \"EDIT\" ? { selected: [{ id: c, editable: !0 }], pointerEvent: g } : m === \"SELECT\" ? { selected: [{ id: c }], pointerEvent: g } : { selected: [], pointerEvent: g });\n } else\n console.warn(\"Invalid selection: \" + c);\n }, d = (c, g = !0) => {\n const u = Array.isArray(c) ? c : [c], m = u.map((w) => e.getAnnotation(w)).filter((w) => w);\n o({ selected: m.map(({ id: w }) => ({ id: w, editable: g })) }), m.length !== u.length && console.warn(\"Invalid selection\", c);\n }, h = (c) => {\n if (i.selected.length === 0)\n return !1;\n const { selected: g } = i;\n g.filter(({ id: u }) => c.includes(u)).length > 0 && o({ selected: g.filter(({ id: u }) => !c.includes(u)) });\n };\n return e.observe(({ changes: c }) => h(c.deleted.map((g) => g.id))), {\n clear: s,\n clickSelect: l,\n get selected() {\n return i ? [...i.selected] : null;\n },\n get pointerEvent() {\n return i ? i.pointerEvent : null;\n },\n isEmpty: r,\n isSelected: a,\n setSelected: d,\n subscribe: n\n };\n}, Rn = (e, t) => typeof t == \"function\" ? t(e) || \"EDIT\" : t || \"EDIT\", Yn = [];\nfor (let e = 0; e < 256; ++e)\n Yn.push((e + 256).toString(16).slice(1));\ntypeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nconst Un = (e, t) => {\n const n = new Set(e.bodies.map((o) => o.id));\n return t.bodies.filter((o) => !n.has(o.id));\n}, Dn = (e, t) => {\n const n = new Set(t.bodies.map((o) => o.id));\n return e.bodies.filter((o) => !n.has(o.id));\n}, Xn = (e, t) => t.bodies.map((n) => {\n const o = e.bodies.find((i) => i.id === n.id);\n return { newBody: n, oldBody: o && !he(o, n) ? o : void 0 };\n}).filter(({ oldBody: n }) => n), Nn = (e, t) => !he(e.target, t.target), Zt = (e, t) => {\n const n = Un(e, t), o = Dn(e, t), i = Xn(e, t);\n return {\n oldValue: e,\n newValue: t,\n bodiesCreated: n.length > 0 ? n : void 0,\n bodiesDeleted: o.length > 0 ? o : void 0,\n bodiesUpdated: i.length > 0 ? i : void 0,\n targetUpdated: Nn(e, t) ? { oldTarget: e.target, newTarget: t.target } : void 0\n };\n};\nvar G = /* @__PURE__ */ ((e) => (e.LOCAL = \"LOCAL\", e.REMOTE = \"REMOTE\", e))(G || {});\nconst Gn = (e, t) => {\n var n, o;\n const { changes: i, origin: s } = t;\n if (!(!e.options.origin || e.options.origin === s))\n return !1;\n if (e.options.ignore) {\n const { ignore: r } = e.options, a = (l) => (l == null ? void 0 : l.length) > 0;\n if (!(a(i.created) || a(i.deleted))) {\n const l = (n = i.updated) == null ? void 0 : n.some((h) => a(h.bodiesCreated) || a(h.bodiesDeleted) || a(h.bodiesUpdated)), d = (o = i.updated) == null ? void 0 : o.some((h) => h.targetUpdated);\n if (r === \"BODY_ONLY\" && l && !d || r === \"TARGET_ONLY\" && d && !l)\n return !1;\n }\n }\n if (e.options.annotations) {\n const r = /* @__PURE__ */ new Set([\n ...i.created.map((a) => a.id),\n ...i.deleted.map((a) => a.id),\n ...i.updated.map(({ oldValue: a }) => a.id)\n ]);\n return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((a) => r.has(a));\n } else\n return !0;\n}, Vn = (e, t) => {\n const n = new Set((e.created || []).map((c) => c.id)), o = new Set((e.updated || []).map(({ newValue: c }) => c.id)), i = new Set((t.created || []).map((c) => c.id)), s = new Set((t.deleted || []).map((c) => c.id)), r = new Set((t.updated || []).map(({ oldValue: c }) => c.id)), a = new Set((t.updated || []).filter(({ oldValue: c }) => n.has(c.id) || o.has(c.id)).map(({ oldValue: c }) => c.id)), l = [\n ...(e.created || []).filter((c) => !s.has(c.id)).map((c) => r.has(c.id) ? t.updated.find(({ oldValue: g }) => g.id === c.id).newValue : c),\n ...t.created || []\n ], d = [\n ...(e.deleted || []).filter((c) => !i.has(c.id)),\n ...(t.deleted || []).filter((c) => !n.has(c.id))\n ], h = [\n ...(e.updated || []).filter(({ newValue: c }) => !s.has(c.id)).map((c) => {\n const { oldValue: g, newValue: u } = c;\n if (r.has(u.id)) {\n const m = t.updated.find((w) => w.oldValue.id === u.id).newValue;\n return Zt(g, m);\n } else\n return c;\n }),\n ...(t.updated || []).filter(({ oldValue: c }) => !a.has(c.id))\n ];\n return { created: l, deleted: d, updated: h };\n}, zn = (e) => e.id !== void 0, Fn = () => {\n const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = [], o = (y, A = {}) => n.push({ onChange: y, options: A }), i = (y) => {\n const A = n.findIndex((E) => E.onChange == y);\n A > -1 && n.splice(A, 1);\n }, s = (y, A) => {\n const E = {\n origin: y,\n changes: {\n created: A.created || [],\n updated: A.updated || [],\n deleted: A.deleted || []\n },\n state: [...e.values()]\n };\n n.forEach((v) => {\n Gn(v, E) && v.onChange(E);\n });\n }, r = (y, A = G.LOCAL) => {\n if (e.get(y.id))\n throw Error(`Cannot add annotation ${y.id} - exists already`);\n e.set(y.id, y), y.bodies.forEach((E) => t.set(E.id, y.id)), s(A, { created: [y] });\n }, a = (y, A) => {\n const E = typeof y == \"string\" ? A : y, v = typeof y == \"string\" ? y : y.id, B = e.get(v);\n if (B) {\n const Y = Zt(B, E);\n return v === E.id ? e.set(v, E) : (e.delete(v), e.set(E.id, E)), B.bodies.forEach((Q) => t.delete(Q.id)), E.bodies.forEach((Q) => t.set(Q.id, E.id)), Y;\n } else\n console.warn(`Cannot update annotation ${v} - does not exist`);\n }, l = (y, A = G.LOCAL, E = G.LOCAL) => {\n const v = zn(A) ? E : A, B = a(y, A);\n B && s(v, { updated: [B] });\n }, d = (y, A = G.LOCAL) => {\n const E = y.reduce((v, B) => {\n const Y = a(B);\n return Y ? [...v, Y] : v;\n }, []);\n E.length > 0 && s(A, { updated: E });\n }, h = (y, A = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const v = {\n ...E,\n bodies: [...E.bodies, y]\n };\n e.set(E.id, v), t.set(y.id, v.id), s(A, { updated: [{\n oldValue: E,\n newValue: v,\n bodiesCreated: [y]\n }] });\n } else\n console.warn(`Attempt to add body to missing annotation: ${y.annotation}`);\n }, c = () => [...e.values()], g = (y = G.LOCAL) => {\n const A = [...e.values()];\n e.clear(), t.clear(), s(y, { deleted: A });\n }, u = (y, A = !0, E = G.LOCAL) => {\n if (A) {\n const v = [...e.values()];\n e.clear(), t.clear(), y.forEach((B) => {\n e.set(B.id, B), B.bodies.forEach((Y) => t.set(Y.id, B.id));\n }), s(E, { created: y, deleted: v });\n } else {\n const v = y.reduce((B, Y) => {\n const Q = e.get(Y.id);\n return Q ? [...B, Q] : B;\n }, []);\n if (v.length > 0)\n throw Error(`Bulk insert would overwrite the following annotations: ${v.map((B) => B.id).join(\", \")}`);\n y.forEach((B) => {\n e.set(B.id, B), B.bodies.forEach((Y) => t.set(Y.id, B.id));\n }), s(E, { created: y });\n }\n }, m = (y) => {\n const A = typeof y == \"string\" ? y : y.id, E = e.get(A);\n if (E)\n return e.delete(A), E.bodies.forEach((v) => t.delete(v.id)), E;\n console.warn(`Attempt to delete missing annotation: ${A}`);\n }, w = (y, A = G.LOCAL) => {\n const E = m(y);\n E && s(A, { deleted: [E] });\n }, b = (y, A = G.LOCAL) => {\n const E = y.reduce((v, B) => {\n const Y = m(B);\n return Y ? [...v, Y] : v;\n }, []);\n E.length > 0 && s(A, { deleted: E });\n }, _ = (y, A = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const v = E.bodies.find((B) => B.id === y.id);\n if (v) {\n t.delete(v.id);\n const B = {\n ...E,\n bodies: E.bodies.filter((Y) => Y.id !== y.id)\n };\n e.set(E.id, B), s(A, { updated: [{\n oldValue: E,\n newValue: B,\n bodiesDeleted: [v]\n }] });\n } else\n console.warn(`Attempt to delete missing body ${y.id} from annotation ${y.annotation}`);\n } else\n console.warn(`Attempt to delete body from missing annotation ${y.annotation}`);\n }, p = (y) => {\n const A = e.get(y);\n return A ? { ...A } : void 0;\n }, T = (y) => {\n const A = t.get(y);\n if (A) {\n const E = p(A).bodies.find((v) => v.id === y);\n if (E)\n return E;\n console.error(`Store integrity error: body ${y} in index, but not in annotation`);\n } else\n console.warn(`Attempt to retrieve missing body: ${y}`);\n }, S = (y, A) => {\n if (y.annotation !== A.annotation)\n throw \"Annotation integrity violation: annotation ID must be the same when updating bodies\";\n const E = e.get(y.annotation);\n if (E) {\n const v = E.bodies.find((Y) => Y.id === y.id), B = {\n ...E,\n bodies: E.bodies.map((Y) => Y.id === v.id ? A : Y)\n };\n return e.set(E.id, B), v.id !== A.id && (t.delete(v.id), t.set(A.id, B.id)), {\n oldValue: E,\n newValue: B,\n bodiesUpdated: [{ oldBody: v, newBody: A }]\n };\n } else\n console.warn(`Attempt to add body to missing annotation ${y.annotation}`);\n }, I = (y, A, E = G.LOCAL) => {\n const v = S(y, A);\n s(E, { updated: [v] });\n }, R = (y, A = G.LOCAL) => {\n const E = y.map((v) => S({ id: v.id, annotation: v.annotation }, v));\n s(A, { updated: E });\n }, N = (y) => {\n const A = e.get(y.annotation);\n if (A) {\n const E = {\n ...A,\n target: {\n ...A.target,\n ...y\n }\n };\n return e.set(A.id, E), {\n oldValue: A,\n newValue: E,\n targetUpdated: {\n oldTarget: A.target,\n newTarget: y\n }\n };\n } else\n console.warn(`Attempt to update target on missing annotation: ${y.annotation}`);\n };\n return {\n addAnnotation: r,\n addBody: h,\n all: c,\n bulkAddAnnotation: u,\n bulkDeleteAnnotation: b,\n bulkUpdateAnnotation: d,\n bulkUpdateBodies: R,\n bulkUpdateTargets: (y, A = G.LOCAL) => {\n const E = y.map(N).filter((v) => v);\n E.length > 0 && s(A, { updated: E });\n },\n clear: g,\n deleteAnnotation: w,\n deleteBody: _,\n getAnnotation: p,\n getBody: T,\n observe: o,\n unobserve: i,\n updateAnnotation: l,\n updateBody: I,\n updateTarget: (y, A = G.LOCAL) => {\n const E = N(y);\n E && s(A, { updated: [E] });\n }\n };\n}, Hn = (e) => ({\n ...e,\n subscribe: (t) => {\n const n = (o) => t(o.state);\n return e.observe(n), t(e.all()), () => e.unobserve(n);\n }\n});\nlet jn = () => ({\n emit(e, ...t) {\n let n = this.events[e] || [];\n for (let o = 0, i = n.length; o < i; o++)\n n[o](...t);\n },\n events: {},\n on(e, t) {\n var n;\n return (n = this.events[e]) != null && n.push(t) || (this.events[e] = [t]), () => {\n var o;\n this.events[e] = (o = this.events[e]) == null ? void 0 : o.filter((i) => t !== i);\n };\n }\n});\nconst qn = 250, Wn = (e) => {\n const t = jn(), n = [];\n let o = -1, i = !1, s = 0;\n const r = (u) => {\n if (!i) {\n const { changes: m } = u, w = performance.now();\n if (w - s > qn)\n n.splice(o + 1), n.push(m), o = n.length - 1;\n else {\n const b = n.length - 1;\n n[b] = Vn(n[b], m);\n }\n s = w;\n }\n i = !1;\n };\n e.observe(r, { origin: G.LOCAL });\n const a = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkDeleteAnnotation(u), l = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkAddAnnotation(u, !1), d = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkUpdateAnnotation(u.map(({ oldValue: m }) => m)), h = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkUpdateAnnotation(u.map(({ newValue: m }) => m)), c = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkAddAnnotation(u, !1), g = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkDeleteAnnotation(u);\n return {\n canRedo: () => n.length - 1 > o,\n canUndo: () => o > -1,\n destroy: () => e.unobserve(r),\n on: (u, m) => t.on(u, m),\n redo: () => {\n if (n.length - 1 > o) {\n i = !0;\n const { created: u, updated: m, deleted: w } = n[o + 1];\n l(u), h(m), g(w), t.emit(\"redo\", n[o + 1]), o += 1;\n }\n },\n undo: () => {\n if (o > -1) {\n i = !0;\n const { created: u, updated: m, deleted: w } = n[o];\n a(u), d(m), c(w), t.emit(\"undo\", n[o]), o -= 1;\n }\n }\n };\n}, Jn = () => {\n const { subscribe: e, set: t } = dt([]);\n return {\n subscribe: e,\n set: t\n };\n}, Kn = (e, t, n, o) => {\n const { store: i, selection: s, hover: r, viewport: a } = e, l = /* @__PURE__ */ new Map();\n let d = [], h, c;\n const g = (_, p) => {\n l.has(_) ? l.get(_).push(p) : l.set(_, [p]);\n }, u = (_, p) => {\n const T = l.get(_);\n T && T.indexOf(p) > 0 && T.splice(T.indexOf(p), 1);\n }, m = (_, p, T) => {\n l.has(_) && setTimeout(() => {\n l.get(_).forEach((S) => {\n if (n) {\n const I = Array.isArray(p) ? p.map((N) => n.serialize(N)) : n.serialize(p), R = T ? T instanceof PointerEvent ? T : n.serialize(T) : void 0;\n S(I, R);\n } else\n S(p, T);\n });\n }, 1);\n }, w = () => {\n const { selected: _ } = s, p = _.map(({ id: T }) => i.getAnnotation(T));\n p.forEach((T) => {\n const S = d.find((I) => I.id === T.id);\n (!S || !he(S, T)) && m(\"updateAnnotation\", T, S);\n }), d = d.map((T) => p.find(({ id: I }) => I === T.id) || T);\n };\n s.subscribe(({ selected: _ }) => {\n if (!(d.length === 0 && _.length === 0)) {\n if (d.length === 0 && _.length > 0)\n d = _.map(({ id: p }) => i.getAnnotation(p));\n else if (d.length > 0 && _.length === 0)\n d.forEach((p) => {\n const T = i.getAnnotation(p.id);\n T && !he(T, p) && m(\"updateAnnotation\", T, p);\n }), d = [];\n else {\n const p = new Set(d.map((S) => S.id)), T = new Set(_.map(({ id: S }) => S));\n d.filter((S) => !T.has(S.id)).forEach((S) => {\n const I = i.getAnnotation(S.id);\n I && !he(I, S) && m(\"updateAnnotation\", I, S);\n }), d = [\n // Remove annotations that were deselected\n ...d.filter((S) => T.has(S.id)),\n // Add editable annotations that were selected\n ..._.filter(({ id: S }) => !p.has(S)).map(({ id: S }) => i.getAnnotation(S))\n ];\n }\n m(\"selectionChanged\", d);\n }\n }), r.subscribe((_) => {\n !h && _ ? m(\"mouseEnterAnnotation\", i.getAnnotation(_)) : h && !_ ? m(\"mouseLeaveAnnotation\", i.getAnnotation(h)) : h && _ && (m(\"mouseLeaveAnnotation\", i.getAnnotation(h)), m(\"mouseEnterAnnotation\", i.getAnnotation(_))), h = _;\n }), a == null || a.subscribe((_) => m(\"viewportIntersect\", _.map(i.getAnnotation))), i.observe((_) => {\n o && (c && clearTimeout(c), c = setTimeout(w, 1e3));\n const { created: p, deleted: T } = _.changes;\n p.forEach((S) => m(\"createAnnotation\", S)), T.forEach((S) => m(\"deleteAnnotation\", S)), _.changes.updated.filter((S) => [\n ...S.bodiesCreated || [],\n ...S.bodiesDeleted || [],\n ...S.bodiesUpdated || []\n ].length > 0).forEach(({ oldValue: S, newValue: I }) => {\n const R = d.find((N) => N.id === S.id) || S;\n d = d.map((N) => N.id === S.id ? I : N), m(\"updateAnnotation\", I, R);\n });\n }, { origin: G.LOCAL }), i.observe((_) => {\n if (d) {\n const p = new Set(d.map((S) => S.id)), T = _.changes.updated.filter(({ newValue: S }) => p.has(S.id)).map(({ newValue: S }) => S);\n T.length > 0 && (d = d.map((S) => T.find((R) => R.id === S.id) || S));\n }\n }, { origin: G.REMOTE });\n const b = (_) => (p) => {\n const { created: T, deleted: S, updated: I } = p;\n T.forEach((R) => m(\"createAnnotation\", R)), S.forEach((R) => m(\"deleteAnnotation\", R)), _ ? I.forEach((R) => m(\"updateAnnotation\", R.oldValue, R.newValue)) : I.forEach((R) => m(\"updateAnnotation\", R.newValue, R.oldValue));\n };\n return t.on(\"undo\", b(!0)), t.on(\"redo\", b(!1)), { on: g, off: u, emit: m };\n}, Zn = (e) => (t) => t.reduce((n, o) => {\n const { parsed: i, error: s } = e.parse(o);\n return s ? {\n parsed: n.parsed,\n failed: [...n.failed, o]\n } : {\n parsed: [...n.parsed, i],\n failed: n.failed\n };\n}, { parsed: [], failed: [] }), Qn = (e, t, n) => {\n const { store: o, selection: i } = e, s = (b) => {\n if (n) {\n const { parsed: _, error: p } = n.parse(b);\n _ ? o.addAnnotation(_, G.REMOTE) : console.error(p);\n } else\n o.addAnnotation(b, G.REMOTE);\n }, r = () => i.clear(), a = () => o.clear(), l = (b) => {\n const _ = o.getAnnotation(b);\n return n && _ ? n.serialize(_) : _;\n }, d = () => n ? o.all().map(n.serialize) : o.all(), h = () => {\n var b;\n const _ = (((b = i.selected) == null ? void 0 : b.map((p) => p.id)) || []).map((p) => o.getAnnotation(p));\n return n ? _.map(n.serialize) : _;\n }, c = (b) => fetch(b).then((_) => _.json()).then((_) => (u(_), _)), g = (b) => {\n if (typeof b == \"string\") {\n const _ = o.getAnnotation(b);\n return o.deleteAnnotation(b), n ? n.serialize(_) : _;\n } else {\n const _ = n ? n.parse(b).parsed : b;\n return o.deleteAnnotation(_), b;\n }\n }, u = (b) => {\n if (n) {\n const { parsed: _, failed: p } = Zn(n)(b);\n p.length > 0 && console.warn(`Discarded ${p.length} invalid annotations`, p), o.bulkAddAnnotation(_, !0, G.REMOTE);\n } else\n o.bulkAddAnnotation(b, !0, G.REMOTE);\n }, m = (b) => {\n b ? i.setSelected(b) : i.clear();\n }, w = (b) => {\n if (n) {\n const _ = n.parse(b).parsed, p = n.serialize(o.getAnnotation(_.id));\n return o.updateAnnotation(_), p;\n } else {\n const _ = o.getAnnotation(b.id);\n return o.updateAnnotation(b), _;\n }\n };\n return {\n addAnnotation: s,\n cancelSelected: r,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: d,\n getSelected: h,\n loadAnnotations: c,\n redo: t.redo,\n removeAnnotation: g,\n setAnnotations: u,\n setSelected: m,\n undo: t.undo,\n updateAnnotation: w\n };\n};\nlet xn = (e) => crypto.getRandomValues(new Uint8Array(e)), $n = (e, t, n) => {\n let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * t / e.length);\n return (s = t) => {\n let r = \"\";\n for (; ; ) {\n let a = n(i), l = i;\n for (; l--; )\n if (r += e[a[l] & o] || \"\", r.length === s)\n return r;\n }\n };\n}, eo = (e, t = 21) => $n(e, t, xn), to = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((t, n) => (n &= 63, n < 36 ? t += n.toString(36) : n < 62 ? t += (n - 26).toString(36).toUpperCase() : n > 62 ? t += \"-\" : t += \"_\", t), \"\");\nconst no = () => ({ isGuest: !0, id: eo(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), oo = (e) => {\n const t = JSON.stringify(e);\n let n = 0;\n for (let o = 0, i = t.length; o < i; o++) {\n let s = t.charCodeAt(o);\n n = (n << 5) - n + s, n |= 0;\n }\n return `${n}`;\n}, io = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {\n const { id: o, type: i, purpose: s, value: r, created: a, creator: l, ...d } = n;\n return {\n id: o || `temp-${oo(n)}`,\n annotation: t,\n type: i,\n purpose: s,\n value: r,\n created: a,\n creator: l ? typeof l == \"object\" ? { ...l } : l : void 0,\n ...d\n };\n}), so = (e) => e.map((t) => {\n var n;\n const o = { ...t };\n return delete o.annotation, (n = o.id) != null && n.startsWith(\"temp-\") && delete o.id, o;\n});\nto();\nconst Di = (e, t = !1) => ({ parse: (i) => ro(i, t), serialize: (i) => lo(i, e) }), ro = (e, t = !1) => {\n const n = e.id || ct(), { body: o, ...i } = e, s = io(o, n), r = Array.isArray(e.target) ? e.target[0] : e.target, a = Array.isArray(r.selector) ? r.selector[0] : r.selector, l = a.type === \"FragmentSelector\" ? wn(a, t) : a.type === \"SvgSelector\" ? vn(a) : void 0;\n return l ? {\n parsed: {\n ...i,\n id: n,\n bodies: s,\n target: {\n ...i.target,\n annotation: n,\n selector: l\n }\n }\n } : {\n error: Error(`Unknown selector type: ${a.type}`)\n };\n}, lo = (e, t) => {\n const n = e.target.selector, o = n.type == F.RECTANGLE ? bn(n.geometry) : Mn(n);\n return {\n ...e,\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\n id: e.id,\n type: \"Annotation\",\n body: so(e.bodies),\n target: {\n source: t,\n selector: o\n }\n };\n};\nfunction bt(e, t, n) {\n const o = e.slice();\n return o[11] = t[n], o[13] = n, o;\n}\nfunction Et(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"rect\"), f(t, \"class\", \"a9s-corner-handle\"), f(t, \"x\", n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2), f(t, \"y\", o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2), f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(r, a) {\n k(r, t, a), i || (s = W(t, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O(\n /*idx*/\n e[13]\n ))\n ) && e[10](O(\n /*idx*/\n e[13]\n )).apply(this, arguments);\n }), i = !0);\n },\n p(r, a) {\n e = r, a & /*geom, handleSize*/\n 24 && n !== (n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2) && f(t, \"x\", n), a & /*geom, handleSize*/\n 24 && o !== (o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2) && f(t, \"y\", o), a & /*handleSize*/\n 8 && f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), a & /*handleSize*/\n 8 && f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(r) {\n r && L(t), i = !1, s();\n }\n };\n}\nfunction ao(e) {\n let t, n, o, i, s, r, a, l, d, h, c = (\n /*geom*/\n e[4].points\n ), g = [];\n for (let u = 0; u < c.length; u += 1)\n g[u] = Et(bt(e, c, u));\n return {\n c() {\n t = U(\"polygon\"), i = ee(), s = U(\"polygon\"), a = ee();\n for (let u = 0; u < g.length; u += 1)\n g[u].c();\n l = le(), f(t, \"class\", \"a9s-outer\"), f(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(t, \"points\", o = /*geom*/\n e[4].points.map(At).join(\" \")), f(s, \"class\", \"a9s-inner a9s-shape-handle\"), f(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(s, \"points\", r = /*geom*/\n e[4].points.map(Tt).join(\" \"));\n },\n m(u, m) {\n k(u, t, m), k(u, i, m), k(u, s, m), k(u, a, m);\n for (let w = 0; w < g.length; w += 1)\n g[w] && g[w].m(u, m);\n k(u, l, m), d || (h = [\n W(t, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(s, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n })\n ], d = !0);\n },\n p(u, m) {\n if (e = u, m & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && f(t, \"style\", n), m & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].points.map(At).join(\" \")) && f(t, \"points\", o), m & /*computedStyle*/\n 2 && f(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), m & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].points.map(Tt).join(\" \")) && f(s, \"points\", r), m & /*geom, handleSize, grab, Handle*/\n 1048) {\n c = /*geom*/\n e[4].points;\n let w;\n for (w = 0; w < c.length; w += 1) {\n const b = bt(e, c, w);\n g[w] ? g[w].p(b, m) : (g[w] = Et(b), g[w].c(), g[w].m(l.parentNode, l));\n }\n for (; w < g.length; w += 1)\n g[w].d(1);\n g.length = c.length;\n }\n },\n d(u) {\n u && L(t), u && L(i), u && L(s), u && L(a), rt(g, u), u && L(l), d = !1, re(h);\n }\n };\n}\nfunction co(e) {\n let t, n;\n return t = new xt({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n ao,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"change\",\n /*change_handler*/\n e[7]\n ), t.$on(\n \"grab\",\n /*grab_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 17434 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nconst At = (e) => e.join(\",\"), Tt = (e) => e.join(\",\");\nfunction uo(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (u, m, w) => {\n let b;\n m === O.SHAPE ? b = u.geometry.points.map(([p, T]) => [p + w[0], T + w[1]]) : b = u.geometry.points.map(([p, T], S) => m === O(S) ? [p + w[0], T + w[1]] : [p, T]);\n const _ = Fe(b);\n return { ...u, geometry: { points: b, bounds: _ } };\n };\n function h(u) {\n Te.call(this, e, u);\n }\n function c(u) {\n Te.call(this, e, u);\n }\n function g(u) {\n Te.call(this, e, u);\n }\n return e.$$set = (u) => {\n \"shape\" in u && n(0, s = u.shape), \"computedStyle\" in u && n(1, r = u.computedStyle), \"transform\" in u && n(2, a = u.transform), \"viewportScale\" in u && n(6, l = u.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n h,\n c,\n g\n ];\n}\nclass fo extends ne {\n constructor(t) {\n super(), te(this, t, uo, co, Z, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nfunction ho(e) {\n let t, n, o, i, s, r, a, l, d, h, c, g, u, m, w, b, _, p, T, S, I, R, N, y, A, E, v, B, Y, Q, me, pe, Me, K, C, J, z, j, oe, ue, qe, x, Re, Ye, We, $, Ue, De, Je, ft;\n return {\n c() {\n t = U(\"rect\"), a = ee(), l = U(\"rect\"), u = ee(), m = U(\"rect\"), p = ee(), T = U(\"rect\"), N = ee(), y = U(\"rect\"), B = ee(), Y = U(\"rect\"), Me = ee(), K = U(\"rect\"), z = ee(), j = U(\"rect\"), qe = ee(), x = U(\"rect\"), We = ee(), $ = U(\"rect\"), f(t, \"class\", \"a9s-outer\"), f(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(t, \"x\", o = /*geom*/\n e[4].x), f(t, \"y\", i = /*geom*/\n e[4].y), f(t, \"width\", s = /*geom*/\n e[4].w), f(t, \"height\", r = /*geom*/\n e[4].h), f(l, \"class\", \"a9s-inner a9s-shape-handle\"), f(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(l, \"x\", d = /*geom*/\n e[4].x), f(l, \"y\", h = /*geom*/\n e[4].y), f(l, \"width\", c = /*geom*/\n e[4].w), f(l, \"height\", g = /*geom*/\n e[4].h), f(m, \"class\", \"a9s-edge-handle a9s-edge-handle-top\"), f(m, \"x\", w = /*geom*/\n e[4].x), f(m, \"y\", b = /*geom*/\n e[4].y), f(m, \"height\", 1), f(m, \"width\", _ = /*geom*/\n e[4].w), f(T, \"class\", \"a9s-edge-handle a9s-edge-handle-right\"), f(T, \"x\", S = /*geom*/\n e[4].x + /*geom*/\n e[4].w), f(T, \"y\", I = /*geom*/\n e[4].y), f(T, \"height\", R = /*geom*/\n e[4].h), f(T, \"width\", 1), f(y, \"class\", \"a9s-edge-handle a9s-edge-handle-bottom\"), f(y, \"x\", A = /*geom*/\n e[4].x), f(y, \"y\", E = /*geom*/\n e[4].y + /*geom*/\n e[4].h), f(y, \"height\", 1), f(y, \"width\", v = /*geom*/\n e[4].w), f(Y, \"class\", \"a9s-edge-handle a9s-edge-handle-left\"), f(Y, \"x\", Q = /*geom*/\n e[4].x), f(Y, \"y\", me = /*geom*/\n e[4].y), f(Y, \"height\", pe = /*geom*/\n e[4].h), f(Y, \"width\", 1), f(K, \"class\", \"a9s-corner-handle a9s-corner-handle-topleft\"), f(K, \"x\", C = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), f(K, \"y\", J = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), f(\n K,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n K,\n \"width\",\n /*handleSize*/\n e[3]\n ), f(j, \"class\", \"a9s-corner-handle a9s-corner-handle-topright\"), f(j, \"x\", oe = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), f(j, \"y\", ue = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), f(\n j,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n j,\n \"width\",\n /*handleSize*/\n e[3]\n ), f(x, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomright\"), f(x, \"x\", Re = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), f(x, \"y\", Ye = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), f(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n ), f($, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomleft\"), f($, \"x\", Ue = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), f($, \"y\", De = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), f(\n $,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n $,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(P, M) {\n k(P, t, M), k(P, a, M), k(P, l, M), k(P, u, M), k(P, m, M), k(P, p, M), k(P, T, M), k(P, N, M), k(P, y, M), k(P, B, M), k(P, Y, M), k(P, Me, M), k(P, K, M), k(P, z, M), k(P, j, M), k(P, qe, M), k(P, x, M), k(P, We, M), k(P, $, M), Je || (ft = [\n W(t, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(l, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(m, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.TOP)\n ) && e[10](O.TOP).apply(this, arguments);\n }),\n W(T, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.RIGHT)\n ) && e[10](O.RIGHT).apply(this, arguments);\n }),\n W(y, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.BOTTOM)\n ) && e[10](O.BOTTOM).apply(this, arguments);\n }),\n W(Y, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.LEFT)\n ) && e[10](O.LEFT).apply(this, arguments);\n }),\n W(K, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.TOP_LEFT)\n ) && e[10](O.TOP_LEFT).apply(this, arguments);\n }),\n W(j, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.TOP_RIGHT)\n ) && e[10](O.TOP_RIGHT).apply(this, arguments);\n }),\n W(x, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.BOTTOM_RIGHT)\n ) && e[10](O.BOTTOM_RIGHT).apply(this, arguments);\n }),\n W($, \"pointerdown\", function() {\n H(\n /*grab*/\n e[10](O.BOTTOM_LEFT)\n ) && e[10](O.BOTTOM_LEFT).apply(this, arguments);\n })\n ], Je = !0);\n },\n p(P, M) {\n e = P, M & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && f(t, \"style\", n), M & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].x) && f(t, \"x\", o), M & /*geom*/\n 16 && i !== (i = /*geom*/\n e[4].y) && f(t, \"y\", i), M & /*geom*/\n 16 && s !== (s = /*geom*/\n e[4].w) && f(t, \"width\", s), M & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].h) && f(t, \"height\", r), M & /*computedStyle*/\n 2 && f(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), M & /*geom*/\n 16 && d !== (d = /*geom*/\n e[4].x) && f(l, \"x\", d), M & /*geom*/\n 16 && h !== (h = /*geom*/\n e[4].y) && f(l, \"y\", h), M & /*geom*/\n 16 && c !== (c = /*geom*/\n e[4].w) && f(l, \"width\", c), M & /*geom*/\n 16 && g !== (g = /*geom*/\n e[4].h) && f(l, \"height\", g), M & /*geom*/\n 16 && w !== (w = /*geom*/\n e[4].x) && f(m, \"x\", w), M & /*geom*/\n 16 && b !== (b = /*geom*/\n e[4].y) && f(m, \"y\", b), M & /*geom*/\n 16 && _ !== (_ = /*geom*/\n e[4].w) && f(m, \"width\", _), M & /*geom*/\n 16 && S !== (S = /*geom*/\n e[4].x + /*geom*/\n e[4].w) && f(T, \"x\", S), M & /*geom*/\n 16 && I !== (I = /*geom*/\n e[4].y) && f(T, \"y\", I), M & /*geom*/\n 16 && R !== (R = /*geom*/\n e[4].h) && f(T, \"height\", R), M & /*geom*/\n 16 && A !== (A = /*geom*/\n e[4].x) && f(y, \"x\", A), M & /*geom*/\n 16 && E !== (E = /*geom*/\n e[4].y + /*geom*/\n e[4].h) && f(y, \"y\", E), M & /*geom*/\n 16 && v !== (v = /*geom*/\n e[4].w) && f(y, \"width\", v), M & /*geom*/\n 16 && Q !== (Q = /*geom*/\n e[4].x) && f(Y, \"x\", Q), M & /*geom*/\n 16 && me !== (me = /*geom*/\n e[4].y) && f(Y, \"y\", me), M & /*geom*/\n 16 && pe !== (pe = /*geom*/\n e[4].h) && f(Y, \"height\", pe), M & /*geom, handleSize*/\n 24 && C !== (C = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && f(K, \"x\", C), M & /*geom, handleSize*/\n 24 && J !== (J = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && f(K, \"y\", J), M & /*handleSize*/\n 8 && f(\n K,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n K,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && oe !== (oe = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && f(j, \"x\", oe), M & /*geom, handleSize*/\n 24 && ue !== (ue = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && f(j, \"y\", ue), M & /*handleSize*/\n 8 && f(\n j,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n j,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && Re !== (Re = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && f(x, \"x\", Re), M & /*geom, handleSize*/\n 24 && Ye !== (Ye = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && f(x, \"y\", Ye), M & /*handleSize*/\n 8 && f(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && Ue !== (Ue = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && f($, \"x\", Ue), M & /*geom, handleSize*/\n 24 && De !== (De = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && f($, \"y\", De), M & /*handleSize*/\n 8 && f(\n $,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n $,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(P) {\n P && L(t), P && L(a), P && L(l), P && L(u), P && L(m), P && L(p), P && L(T), P && L(N), P && L(y), P && L(B), P && L(Y), P && L(Me), P && L(K), P && L(z), P && L(j), P && L(qe), P && L(x), P && L(We), P && L($), Je = !1, re(ft);\n }\n };\n}\nfunction go(e) {\n let t, n;\n return t = new xt({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n ho,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"grab\",\n /*grab_handler*/\n e[7]\n ), t.$on(\n \"change\",\n /*change_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 3098 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction mo(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (u, m, w) => {\n const b = u.geometry.bounds;\n let [_, p] = [b.minX, b.minY], [T, S] = [b.maxX, b.maxY];\n const [I, R] = w;\n if (m === O.SHAPE)\n _ += I, T += I, p += R, S += R;\n else {\n switch (m) {\n case O.TOP:\n case O.TOP_LEFT:\n case O.TOP_RIGHT: {\n p += R;\n break;\n }\n case O.BOTTOM:\n case O.BOTTOM_LEFT:\n case O.BOTTOM_RIGHT: {\n S += R;\n break;\n }\n }\n switch (m) {\n case O.LEFT:\n case O.TOP_LEFT:\n case O.BOTTOM_LEFT: {\n _ += I;\n break;\n }\n case O.RIGHT:\n case O.TOP_RIGHT:\n case O.BOTTOM_RIGHT: {\n T += I;\n break;\n }\n }\n }\n const N = Math.min(_, T), y = Math.min(p, S), A = Math.abs(T - _), E = Math.abs(S - p);\n return {\n ...u,\n geometry: {\n x: N,\n y,\n w: A,\n h: E,\n bounds: {\n minX: N,\n minY: y,\n maxX: N + A,\n maxY: y + E\n }\n }\n };\n };\n function h(u) {\n Te.call(this, e, u);\n }\n function c(u) {\n Te.call(this, e, u);\n }\n function g(u) {\n Te.call(this, e, u);\n }\n return e.$$set = (u) => {\n \"shape\" in u && n(0, s = u.shape), \"computedStyle\" in u && n(1, r = u.computedStyle), \"transform\" in u && n(2, a = u.transform), \"viewportScale\" in u && n(6, l = u.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n h,\n c,\n g\n ];\n}\nclass po extends ne {\n constructor(t) {\n super(), te(this, t, mo, go, Z, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nconst Qt = /* @__PURE__ */ new Map([\n [F.RECTANGLE, po],\n [F.POLYGON, fo]\n]), St = (e) => Qt.get(e.type), yo = (e, t) => Qt.set(e, t), O = (e) => `HANDLE-${e}`;\nO.SHAPE = \"SHAPE\";\nO.TOP = \"TOP\";\nO.RIGHT = \"RIGHT\";\nO.BOTTOM = \"BOTTOM\";\nO.LEFT = \"LEFT\";\nO.TOP_LEFT = \"TOP_LEFT\";\nO.TOP_RIGHT = \"TOP_RIGHT\";\nO.BOTTOM_RIGHT = \"BOTTOM_RIGHT\";\nO.BOTTOM_LEFT = \"BOTTOM_LEFT\";\nconst _o = (e) => ({}), vt = (e) => ({ grab: (\n /*onGrab*/\n e[0]\n) });\nfunction wo(e) {\n let t, n, o, i;\n const s = (\n /*#slots*/\n e[7].default\n ), r = on(\n s,\n e,\n /*$$scope*/\n e[6],\n vt\n );\n return {\n c() {\n t = U(\"g\"), r && r.c(), f(t, \"class\", \"a9s-annotation selected\");\n },\n m(a, l) {\n k(a, t, l), r && r.m(t, null), n = !0, o || (i = [\n W(\n t,\n \"pointerup\",\n /*onRelease*/\n e[2]\n ),\n W(\n t,\n \"pointermove\",\n /*onPointerMove*/\n e[1]\n )\n ], o = !0);\n },\n p(a, [l]) {\n r && r.p && (!n || l & /*$$scope*/\n 64) && rn(\n r,\n s,\n a,\n /*$$scope*/\n a[6],\n n ? sn(\n s,\n /*$$scope*/\n a[6],\n l,\n _o\n ) : ln(\n /*$$scope*/\n a[6]\n ),\n vt\n );\n },\n i(a) {\n n || (D(r, a), n = !0);\n },\n o(a) {\n X(r, a), n = !1;\n },\n d(a) {\n a && L(t), r && r.d(a), o = !1, re(i);\n }\n };\n}\nfunction bo(e, t, n) {\n let { $$slots: o = {}, $$scope: i } = t;\n const s = ve();\n let { shape: r } = t, { editor: a } = t, { transform: l } = t, d = null, h, c = null;\n const g = (w) => (b) => {\n d = w, h = l.elementToImage(b.offsetX, b.offsetY), c = r, b.target.setPointerCapture(b.pointerId), s(\"grab\");\n }, u = (w) => {\n if (d) {\n const [b, _] = l.elementToImage(w.offsetX, w.offsetY), p = [b - h[0], _ - h[1]];\n n(3, r = a(c, d, p)), s(\"change\", r);\n }\n }, m = (w) => {\n w.target.releasePointerCapture(w.pointerId), d = null, c = r, s(\"release\");\n };\n return e.$$set = (w) => {\n \"shape\" in w && n(3, r = w.shape), \"editor\" in w && n(4, a = w.editor), \"transform\" in w && n(5, l = w.transform), \"$$scope\" in w && n(6, i = w.$$scope);\n }, [g, u, m, r, a, l, i, o];\n}\nclass xt extends ne {\n constructor(t) {\n super(), te(this, t, bo, wo, Z, { shape: 3, editor: 4, transform: 5 });\n }\n}\nconst je = (e, t) => {\n const n = typeof t == \"function\" ? t(e) : t;\n if (n) {\n const { fill: o, fillOpacity: i } = n;\n let s = \"\";\n return o && (s += `fill:${o};stroke:${o};`), s += `fill-opacity:${i || \"0.25\"};`, s;\n }\n};\nfunction Eo(e, t, n) {\n let o;\n const i = ve();\n let { annotation: s } = t, { editor: r } = t, { style: a = void 0 } = t, { target: l } = t, { transform: d } = t, { viewportScale: h } = t, c;\n return Pe(() => (n(6, c = new r({\n target: l,\n props: {\n shape: s.target.selector,\n computedStyle: o,\n transform: d,\n viewportScale: h\n }\n })), c.$on(\"change\", (g) => {\n c.$$set({ shape: g.detail }), i(\"change\", g.detail);\n }), c.$on(\"grab\", (g) => i(\"grab\", g.detail)), c.$on(\"release\", (g) => i(\"release\", g.detail)), () => {\n c.$destroy();\n })), e.$$set = (g) => {\n \"annotation\" in g && n(0, s = g.annotation), \"editor\" in g && n(1, r = g.editor), \"style\" in g && n(2, a = g.style), \"target\" in g && n(3, l = g.target), \"transform\" in g && n(4, d = g.transform), \"viewportScale\" in g && n(5, h = g.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 5 && (o = je(s, a)), e.$$.dirty & /*annotation, editorComponent*/\n 65 && s && (c == null || c.$set({ shape: s.target.selector })), e.$$.dirty & /*editorComponent, transform*/\n 80 && c && c.$set({ transform: d }), e.$$.dirty & /*editorComponent, viewportScale*/\n 96 && c && c.$set({ viewportScale: h });\n }, [s, r, a, l, d, h, c];\n}\nclass Ao extends ne {\n constructor(t) {\n super(), te(this, t, Eo, null, Z, {\n annotation: 0,\n editor: 1,\n style: 2,\n target: 3,\n transform: 4,\n viewportScale: 5\n });\n }\n}\nfunction To(e, t, n) {\n const o = ve();\n let { drawingMode: i } = t, { target: s } = t, { tool: r } = t, { transform: a } = t, { viewportScale: l } = t, d;\n return Pe(() => {\n const h = s.closest(\"svg\"), c = [], g = (u, m, w) => {\n h.addEventListener(u, m, w), c.push(() => h.removeEventListener(u, m, w));\n };\n return n(5, d = new r({\n target: s,\n props: {\n addEventListener: g,\n drawingMode: i,\n transform: a,\n viewportScale: l\n }\n })), d.$on(\"create\", (u) => o(\"create\", u.detail)), () => {\n c.forEach((u) => u()), d.$destroy();\n };\n }), e.$$set = (h) => {\n \"drawingMode\" in h && n(0, i = h.drawingMode), \"target\" in h && n(1, s = h.target), \"tool\" in h && n(2, r = h.tool), \"transform\" in h && n(3, a = h.transform), \"viewportScale\" in h && n(4, l = h.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*toolComponent, transform*/\n 40 && d && d.$set({ transform: a }), e.$$.dirty & /*toolComponent, viewportScale*/\n 48 && d && d.$set({ viewportScale: l });\n }, [i, s, r, a, l, d];\n}\nclass So extends ne {\n constructor(t) {\n super(), te(this, t, To, null, Z, {\n drawingMode: 0,\n target: 1,\n tool: 2,\n transform: 3,\n viewportScale: 4\n });\n }\n}\nfunction Mt(e) {\n let t, n;\n return {\n c() {\n t = U(\"rect\"), n = U(\"rect\"), f(t, \"class\", \"a9s-outer\"), f(\n t,\n \"x\",\n /*x*/\n e[1]\n ), f(\n t,\n \"y\",\n /*y*/\n e[2]\n ), f(\n t,\n \"width\",\n /*w*/\n e[3]\n ), f(\n t,\n \"height\",\n /*h*/\n e[4]\n ), f(n, \"class\", \"a9s-inner\"), f(\n n,\n \"x\",\n /*x*/\n e[1]\n ), f(\n n,\n \"y\",\n /*y*/\n e[2]\n ), f(\n n,\n \"width\",\n /*w*/\n e[3]\n ), f(\n n,\n \"height\",\n /*h*/\n e[4]\n );\n },\n m(o, i) {\n k(o, t, i), k(o, n, i);\n },\n p(o, i) {\n i & /*x*/\n 2 && f(\n t,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && f(\n t,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && f(\n t,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && f(\n t,\n \"height\",\n /*h*/\n o[4]\n ), i & /*x*/\n 2 && f(\n n,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && f(\n n,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && f(\n n,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && f(\n n,\n \"height\",\n /*h*/\n o[4]\n );\n },\n d(o) {\n o && L(t), o && L(n);\n }\n };\n}\nfunction vo(e) {\n let t, n = (\n /*origin*/\n e[0] && Mt(e)\n );\n return {\n c() {\n t = U(\"g\"), n && n.c(), f(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n k(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*origin*/\n o[0] ? n ? n.p(o, i) : (n = Mt(o), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: V,\n o: V,\n d(o) {\n o && L(t), n && n.d();\n }\n };\n}\nfunction Mo(e, t, n) {\n const o = ve();\n let { addEventListener: i } = t, { drawingMode: s } = t, { transform: r } = t, a, l, d, h, c, g, u;\n const m = (p) => {\n a = performance.now(), s === \"drag\" && (n(0, l = r.elementToImage(p.offsetX, p.offsetY)), d = l, n(1, h = l[0]), n(2, c = l[1]), n(3, g = 1), n(4, u = 1));\n }, w = (p) => {\n l && (d = r.elementToImage(p.offsetX, p.offsetY), n(1, h = Math.min(d[0], l[0])), n(2, c = Math.min(d[1], l[1])), n(3, g = Math.abs(d[0] - l[0])), n(4, u = Math.abs(d[1] - l[1])));\n }, b = (p) => {\n const T = performance.now() - a;\n if (s === \"click\") {\n if (T > 300)\n return;\n p.stopPropagation(), l ? _() : (n(0, l = r.elementToImage(p.offsetX, p.offsetY)), d = l, n(1, h = l[0]), n(2, c = l[1]), n(3, g = 1), n(4, u = 1));\n } else\n l && (T > 300 || g * u > 100 ? (p.stopPropagation(), _()) : (n(0, l = null), d = null));\n }, _ = () => {\n if (g * u > 15) {\n const p = {\n type: F.RECTANGLE,\n geometry: {\n bounds: {\n minX: h,\n minY: c,\n maxX: h + g,\n maxY: c + u\n },\n x: h,\n y: c,\n w: g,\n h: u\n }\n };\n o(\"create\", p);\n }\n n(0, l = null), d = null;\n };\n return Pe(() => {\n i(\"pointerdown\", m), i(\"pointermove\", w), i(\"pointerup\", b, !0);\n }), e.$$set = (p) => {\n \"addEventListener\" in p && n(5, i = p.addEventListener), \"drawingMode\" in p && n(6, s = p.drawingMode), \"transform\" in p && n(7, r = p.transform);\n }, [l, h, c, g, u, i, s, r];\n}\nclass Oo extends ne {\n constructor(t) {\n super(), te(this, t, Mo, vo, Z, {\n addEventListener: 5,\n drawingMode: 6,\n transform: 7\n });\n }\n}\nconst xe = (e, t) => {\n const n = Math.abs(t[0] - e[0]), o = Math.abs(t[1] - e[1]);\n return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2));\n}, we = [];\nfunction Lo(e, t = V) {\n let n;\n const o = /* @__PURE__ */ new Set();\n function i(a) {\n if (Z(e, a) && (e = a, n)) {\n const l = !we.length;\n for (const d of o)\n d[1](), we.push(d, e);\n if (l) {\n for (let d = 0; d < we.length; d += 2)\n we[d][0](we[d + 1]);\n we.length = 0;\n }\n }\n }\n function s(a) {\n i(a(e));\n }\n function r(a, l = V) {\n const d = [a, l];\n return o.add(d), o.size === 1 && (n = t(i) || V), a(e), () => {\n o.delete(d), o.size === 0 && n && (n(), n = null);\n };\n }\n return { set: i, update: s, subscribe: r };\n}\nconst ko = (e, t) => {\n const { naturalWidth: n, naturalHeight: o } = e;\n if (!n && !o) {\n const { width: i, height: s } = e;\n t.setAttribute(\"viewBox\", `0 0 ${i} ${s}`), e.addEventListener(\"load\", (r) => {\n const a = r.target;\n t.setAttribute(\"viewBox\", `0 0 ${a.naturalWidth} ${a.naturalHeight}`);\n });\n } else\n t.setAttribute(\"viewBox\", `0 0 ${n} ${o}`);\n}, Bo = (e, t) => {\n ko(e, t);\n const { subscribe: n, set: o } = Lo(1);\n let i;\n return window.ResizeObserver && (i = new ResizeObserver(() => {\n const r = t.getBoundingClientRect(), { width: a, height: l } = t.viewBox.baseVal, d = Math.max(\n r.width / a,\n r.height / l\n );\n o(d);\n }), i.observe(t.parentElement)), { destroy: () => {\n i && i.disconnect();\n }, subscribe: n };\n}, Xi = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\nfunction $e(e) {\n const t = e.slice(), n = (\n /*isClosable*/\n (t[2] ? (\n /*points*/\n t[0]\n ) : [\n .../*points*/\n t[0],\n /*cursor*/\n t[1]\n ]).map((o) => o.join(\",\")).join(\" \")\n );\n return t[15] = n, t;\n}\nfunction Ot(e) {\n let t, n, o, i, s, r = (\n /*isClosable*/\n e[2] && Lt(e)\n );\n return {\n c() {\n t = U(\"polygon\"), o = U(\"polygon\"), r && r.c(), s = le(), f(t, \"class\", \"a9s-outer\"), f(t, \"points\", n = /*coords*/\n e[15]), f(o, \"class\", \"a9s-inner\"), f(o, \"points\", i = /*coords*/\n e[15]);\n },\n m(a, l) {\n k(a, t, l), k(a, o, l), r && r.m(a, l), k(a, s, l);\n },\n p(a, l) {\n l & /*isClosable, points, cursor*/\n 7 && n !== (n = /*coords*/\n a[15]) && f(t, \"points\", n), l & /*isClosable, points, cursor*/\n 7 && i !== (i = /*coords*/\n a[15]) && f(o, \"points\", i), /*isClosable*/\n a[2] ? r ? r.p(a, l) : (r = Lt(a), r.c(), r.m(s.parentNode, s)) : r && (r.d(1), r = null);\n },\n d(a) {\n a && L(t), a && L(o), r && r.d(a), a && L(s);\n }\n };\n}\nfunction Lt(e) {\n let t, n, o;\n return {\n c() {\n t = U(\"rect\"), f(t, \"class\", \"a9s-corner-handle\"), f(t, \"x\", n = /*points*/\n e[0][0][0] - /*handleSize*/\n e[3] / 2), f(t, \"y\", o = /*points*/\n e[0][0][1] - /*handleSize*/\n e[3] / 2), f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(i, s) {\n k(i, t, s);\n },\n p(i, s) {\n s & /*points, handleSize*/\n 9 && n !== (n = /*points*/\n i[0][0][0] - /*handleSize*/\n i[3] / 2) && f(t, \"x\", n), s & /*points, handleSize*/\n 9 && o !== (o = /*points*/\n i[0][0][1] - /*handleSize*/\n i[3] / 2) && f(t, \"y\", o), s & /*handleSize*/\n 8 && f(\n t,\n \"height\",\n /*handleSize*/\n i[3]\n ), s & /*handleSize*/\n 8 && f(\n t,\n \"width\",\n /*handleSize*/\n i[3]\n );\n },\n d(i) {\n i && L(t);\n }\n };\n}\nfunction Io(e) {\n let t, n = (\n /*cursor*/\n e[1] && Ot($e(e))\n );\n return {\n c() {\n t = U(\"g\"), n && n.c(), f(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n k(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*cursor*/\n o[1] ? n ? n.p($e(o), i) : (n = Ot($e(o)), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: V,\n o: V,\n d(o) {\n o && L(t), n && n.d();\n }\n };\n}\nconst Co = 20;\nfunction Po(e, t, n) {\n let o;\n const i = ve();\n let { addEventListener: s } = t, { drawingMode: r } = t, { transform: a } = t, { viewportScale: l = 1 } = t, d, h = [], c = null, g = !1;\n const u = (p) => {\n const { timeStamp: T, offsetX: S, offsetY: I } = p;\n if (d = { timeStamp: T, offsetX: S, offsetY: I }, r === \"drag\" && h.length === 0) {\n const R = a.elementToImage(p.offsetX, p.offsetY);\n h.push(R), n(1, c = R);\n }\n }, m = (p) => {\n if (h.length > 0 && (n(1, c = a.elementToImage(p.offsetX, p.offsetY)), h.length > 2)) {\n const T = xe(c, h[0]) * l;\n n(2, g = T < Co);\n }\n }, w = (p) => {\n if (r === \"click\") {\n const T = p.timeStamp - d.timeStamp, S = xe([d.offsetX, d.offsetY], [p.offsetX, p.offsetY]);\n if (T > 300 || S > 15)\n return;\n if (g)\n _();\n else if (h.length === 0) {\n const I = a.elementToImage(p.offsetX, p.offsetY);\n h.push(I), n(1, c = I);\n } else\n h.push(c);\n } else {\n if (h.length === 1 && xe(h[0], c) <= 4) {\n n(0, h = []), n(1, c = null);\n return;\n }\n p.stopImmediatePropagation(), g ? _() : h.push(c);\n }\n }, b = () => {\n const p = [...h, c], T = {\n type: F.POLYGON,\n geometry: { bounds: Fe(p), points: p }\n };\n st(T) > 4 && (n(0, h = []), n(1, c = null), i(\"create\", T));\n }, _ = () => {\n const p = {\n type: F.POLYGON,\n geometry: {\n bounds: Fe(h),\n points: [...h]\n }\n };\n n(0, h = []), n(1, c = null), i(\"create\", p);\n };\n return Pe(() => {\n s(\"pointerdown\", u, !0), s(\"pointermove\", m), s(\"pointerup\", w, !0), s(\"dblclick\", b, !0);\n }), e.$$set = (p) => {\n \"addEventListener\" in p && n(4, s = p.addEventListener), \"drawingMode\" in p && n(5, r = p.drawingMode), \"transform\" in p && n(6, a = p.transform), \"viewportScale\" in p && n(7, l = p.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*viewportScale*/\n 128 && n(3, o = 10 / l);\n }, [\n h,\n c,\n g,\n o,\n s,\n r,\n a,\n l\n ];\n}\nclass Ro extends ne {\n constructor(t) {\n super(), te(this, t, Po, Io, Z, {\n addEventListener: 4,\n drawingMode: 5,\n transform: 6,\n viewportScale: 7\n });\n }\n}\nconst ut = /* @__PURE__ */ new Map([\n [\"rectangle\", { tool: Oo }],\n [\"polygon\", { tool: Ro }]\n]), Yo = () => [...ut.keys()], $t = (e) => ut.get(e), Uo = (e, t, n) => ut.set(e, { tool: t, opts: n });\nfunction Do(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"ellipse\"), i = U(\"ellipse\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(\n n,\n \"cx\",\n /*cx*/\n e[2]\n ), f(\n n,\n \"cy\",\n /*cy*/\n e[3]\n ), f(\n n,\n \"rx\",\n /*rx*/\n e[4]\n ), f(\n n,\n \"ry\",\n /*ry*/\n e[5]\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(\n i,\n \"cx\",\n /*cx*/\n e[2]\n ), f(\n i,\n \"cy\",\n /*cy*/\n e[3]\n ), f(\n i,\n \"rx\",\n /*rx*/\n e[4]\n ), f(\n i,\n \"ry\",\n /*ry*/\n e[5]\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n k(r, t, a), ae(t, n), ae(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*computedStyle*/\n 2 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: V,\n o: V,\n d(r) {\n r && L(t);\n }\n };\n}\nfunction Xo(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { cx: a, cy: l, rx: d, ry: h } = s;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, i = c.annotation), \"geom\" in c && n(6, s = c.geom), \"style\" in c && n(7, r = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(1, o = je(i, r));\n }, [i, o, a, l, d, h, s, r];\n}\nclass No extends ne {\n constructor(t) {\n super(), te(this, t, Xo, Do, Z, { annotation: 0, geom: 6, style: 7 });\n }\n}\nfunction Go(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"polygon\"), i = U(\"polygon\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(\n n,\n \"points\",\n /*points*/\n e[2].map(Vo).join(\" \")\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(\n i,\n \"points\",\n /*points*/\n e[2].map(zo).join(\" \")\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n k(r, t, a), ae(t, n), ae(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*computedStyle*/\n 2 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: V,\n o: V,\n d(r) {\n r && L(t);\n }\n };\n}\nconst Vo = (e) => e.join(\",\"), zo = (e) => e.join(\",\");\nfunction Fo(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { points: a } = s;\n return e.$$set = (l) => {\n \"annotation\" in l && n(0, i = l.annotation), \"geom\" in l && n(3, s = l.geom), \"style\" in l && n(4, r = l.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 17 && n(1, o = je(i, r));\n }, [i, o, a, s, r];\n}\nclass Ho extends ne {\n constructor(t) {\n super(), te(this, t, Fo, Go, Z, { annotation: 0, geom: 3, style: 4 });\n }\n}\nfunction jo(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"rect\"), i = U(\"rect\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[5] ? \"display:none;\" : void 0), f(\n n,\n \"x\",\n /*x*/\n e[4]\n ), f(\n n,\n \"y\",\n /*y*/\n e[3]\n ), f(\n n,\n \"width\",\n /*w*/\n e[2]\n ), f(\n n,\n \"height\",\n /*h*/\n e[1]\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[5]\n ), f(\n i,\n \"x\",\n /*x*/\n e[4]\n ), f(\n i,\n \"y\",\n /*y*/\n e[3]\n ), f(\n i,\n \"width\",\n /*w*/\n e[2]\n ), f(\n i,\n \"height\",\n /*h*/\n e[1]\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n k(r, t, a), ae(t, n), ae(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 32 && o !== (o = /*computedStyle*/\n r[5] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*x*/\n 16 && f(\n n,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && f(\n n,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && f(\n n,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && f(\n n,\n \"height\",\n /*h*/\n r[1]\n ), a & /*computedStyle*/\n 32 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[5]\n ), a & /*x*/\n 16 && f(\n i,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && f(\n i,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && f(\n i,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && f(\n i,\n \"height\",\n /*h*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: V,\n o: V,\n d(r) {\n r && L(t);\n }\n };\n}\nfunction qo(e, t, n) {\n let o, i, s, r, a, { annotation: l } = t, { geom: d } = t, { style: h = void 0 } = t;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, l = c.annotation), \"geom\" in c && n(6, d = c.geom), \"style\" in c && n(7, h = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(5, o = je(l, h)), e.$$.dirty & /*geom*/\n 64 && n(4, { x: i, y: s, w: r, h: a } = d, i, (n(3, s), n(6, d)), (n(2, r), n(6, d)), (n(1, a), n(6, d)));\n }, [l, a, r, s, i, o, d, h];\n}\nclass Wo extends ne {\n constructor(t) {\n super(), te(this, t, qo, jo, Z, { annotation: 0, geom: 6, style: 7 });\n }\n}\nconst Ni = {\n elementToImage: (e, t) => [e, t]\n}, Jo = (e) => ({\n elementToImage: (t, n) => {\n const o = e.getBoundingClientRect(), i = e.createSVGPoint();\n i.x = t + o.x, i.y = n + o.y;\n const { x: s, y: r } = i.matrixTransform(e.getScreenCTM().inverse());\n return [s, r];\n }\n}), Ko = 250, Zo = (e, t) => {\n const n = ve();\n let o;\n return { onPointerDown: () => o = performance.now(), onPointerUp: (r) => {\n if (performance.now() - o < Ko) {\n const { x: l, y: d } = Qo(r, e), h = t.getAt(l, d);\n h ? n(\"click\", { originalEvent: r, annotation: h }) : n(\"click\", { originalEvent: r });\n }\n } };\n}, Qo = (e, t) => {\n const n = t.createSVGPoint(), o = t.getBoundingClientRect(), i = e.clientX - o.x, s = e.clientY - o.y, { left: r, top: a } = t.getBoundingClientRect();\n return n.x = i + r, n.y = s + a, n.matrixTransform(t.getScreenCTM().inverse());\n};\nfunction kt(e, t, n) {\n const o = e.slice();\n return o[28] = t[n], o;\n}\nfunction Bt(e, t, n) {\n const o = e.slice();\n return o[31] = t[n], o;\n}\nfunction et(e) {\n const t = e.slice(), n = (\n /*annotation*/\n t[31].target.selector\n );\n return t[34] = n, t;\n}\nfunction It(e) {\n let t = (\n /*annotation*/\n e[31].id\n ), n, o, i = Ct(e);\n return {\n c() {\n i.c(), n = le();\n },\n m(s, r) {\n i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*$store*/\n 4096 && Z(t, t = /*annotation*/\n s[31].id) ? (ie(), X(i, 1, 1, V), se(), i = Ct(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n s && L(n), i.d(s);\n }\n };\n}\nfunction xo(e) {\n let t, n;\n return t = new Ho({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction $o(e) {\n let t, n;\n return t = new Wo({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction ei(e) {\n let t, n;\n return t = new No({\n props: {\n annotation: (\n /*annotation*/\n e[31]\n ),\n geom: (\n /*selector*/\n e[34].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 4096 && (s.annotation = /*annotation*/\n o[31]), i[0] & /*$store*/\n 4096 && (s.geom = /*selector*/\n o[34].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Ct(e) {\n let t, n, o, i;\n const s = [ei, $o, xo], r = [];\n function a(l, d) {\n return (\n /*selector*/\n l[34].type === F.ELLIPSE ? 0 : (\n /*selector*/\n l[34].type === F.RECTANGLE ? 1 : (\n /*selector*/\n l[34].type === F.POLYGON ? 2 : -1\n )\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = le();\n },\n m(l, d) {\n ~t && r[t].m(l, d), k(l, o, d), i = !0;\n },\n p(l, d) {\n let h = t;\n t = a(l), t === h ? ~t && r[t].p(l, d) : (n && (ie(), X(r[h], 1, 1, () => {\n r[h] = null;\n }), se()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), D(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (D(n), i = !0);\n },\n o(l) {\n X(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && L(o);\n }\n };\n}\nfunction Pt(e) {\n let t = !/*isEditable*/\n e[7](\n /*annotation*/\n e[31]\n ), n, o, i = t && It(et(e));\n return {\n c() {\n i && i.c(), n = le();\n },\n m(s, r) {\n i && i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*isEditable, $store*/\n 4224 && (t = !/*isEditable*/\n s[7](\n /*annotation*/\n s[31]\n )), t ? i ? (i.p(et(s), r), r[0] & /*isEditable, $store*/\n 4224 && D(i, 1)) : (i = It(et(s)), i.c(), D(i, 1), i.m(n.parentNode, n)) : i && (ie(), X(i, 1, 1, () => {\n i = null;\n }), se());\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n i && i.d(s), s && L(n);\n }\n };\n}\nfunction Rt(e) {\n let t, n, o, i;\n const s = [ni, ti], r = [];\n function a(l, d) {\n return (\n /*editableAnnotations*/\n l[6] ? 0 : (\n /*tool*/\n l[2] && /*drawingEnabled*/\n l[0] ? 1 : -1\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = le();\n },\n m(l, d) {\n ~t && r[t].m(l, d), k(l, o, d), i = !0;\n },\n p(l, d) {\n let h = t;\n t = a(l), t === h ? ~t && r[t].p(l, d) : (n && (ie(), X(r[h], 1, 1, () => {\n r[h] = null;\n }), se()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), D(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (D(n), i = !0);\n },\n o(l) {\n X(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && L(o);\n }\n };\n}\nfunction ti(e) {\n let t = (\n /*tool*/\n e[2]\n ), n, o, i = Yt(e);\n return {\n c() {\n i.c(), n = le();\n },\n m(s, r) {\n i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*tool*/\n 4 && Z(t, t = /*tool*/\n s[2]) ? (ie(), X(i, 1, 1, V), se(), i = Yt(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n s && L(n), i.d(s);\n }\n };\n}\nfunction ni(e) {\n let t, n, o = (\n /*editableAnnotations*/\n e[6]\n ), i = [];\n for (let r = 0; r < o.length; r += 1)\n i[r] = Dt(kt(e, o, r));\n const s = (r) => X(i[r], 1, 1, () => {\n i[r] = null;\n });\n return {\n c() {\n for (let r = 0; r < i.length; r += 1)\n i[r].c();\n t = le();\n },\n m(r, a) {\n for (let l = 0; l < i.length; l += 1)\n i[l] && i[l].m(r, a);\n k(r, t, a), n = !0;\n },\n p(r, a) {\n if (a[0] & /*editableAnnotations, drawingEl, style, transform, $scale, onChangeSelected*/\n 140370) {\n o = /*editableAnnotations*/\n r[6];\n let l;\n for (l = 0; l < o.length; l += 1) {\n const d = kt(r, o, l);\n i[l] ? (i[l].p(d, a), D(i[l], 1)) : (i[l] = Dt(d), i[l].c(), D(i[l], 1), i[l].m(t.parentNode, t));\n }\n for (ie(), l = o.length; l < i.length; l += 1)\n s(l);\n se();\n }\n },\n i(r) {\n if (!n) {\n for (let a = 0; a < o.length; a += 1)\n D(i[a]);\n n = !0;\n }\n },\n o(r) {\n i = i.filter(Boolean);\n for (let a = 0; a < i.length; a += 1)\n X(i[a]);\n n = !1;\n },\n d(r) {\n rt(i, r), r && L(t);\n }\n };\n}\nfunction Yt(e) {\n let t, n;\n return t = new So({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n tool: (\n /*tool*/\n e[2]\n ),\n drawingMode: (\n /*drawingMode*/\n e[11]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[13]\n )\n }\n }), t.$on(\n \"create\",\n /*onSelectionCreated*/\n e[16]\n ), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n o[4]), i[0] & /*tool*/\n 4 && (s.tool = /*tool*/\n o[2]), i[0] & /*drawingMode*/\n 2048 && (s.drawingMode = /*drawingMode*/\n o[11]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n o[10]), i[0] & /*$scale*/\n 8192 && (s.viewportScale = /*$scale*/\n o[13]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Ut(e) {\n let t, n;\n return t = new Ao({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n editor: St(\n /*editable*/\n e[28].target.selector\n ),\n annotation: (\n /*editable*/\n e[28]\n ),\n style: (\n /*style*/\n e[1]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[13]\n )\n }\n }), t.$on(\"change\", function() {\n H(\n /*onChangeSelected*/\n e[17](\n /*editable*/\n e[28]\n )\n ) && e[17](\n /*editable*/\n e[28]\n ).apply(this, arguments);\n }), {\n c() {\n ge(t.$$.fragment);\n },\n m(o, i) {\n ce(t, o, i), n = !0;\n },\n p(o, i) {\n e = o;\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n e[4]), i[0] & /*editableAnnotations*/\n 64 && (s.editor = St(\n /*editable*/\n e[28].target.selector\n )), i[0] & /*editableAnnotations*/\n 64 && (s.annotation = /*editable*/\n e[28]), i[0] & /*style*/\n 2 && (s.style = /*style*/\n e[1]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n e[10]), i[0] & /*$scale*/\n 8192 && (s.viewportScale = /*$scale*/\n e[13]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n X(t.$$.fragment, o), n = !1;\n },\n d(o) {\n de(t, o);\n }\n };\n}\nfunction Dt(e) {\n let t = (\n /*editable*/\n e[28].id\n ), n, o, i = Ut(e);\n return {\n c() {\n i.c(), n = le();\n },\n m(s, r) {\n i.m(s, r), k(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*editableAnnotations*/\n 64 && Z(t, t = /*editable*/\n s[28].id) ? (ie(), X(i, 1, 1, V), se(), i = Ut(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n X(i), o = !1;\n },\n d(s) {\n s && L(n), i.d(s);\n }\n };\n}\nfunction oi(e) {\n let t, n, o, i, s, r, a = (\n /*$store*/\n e[12]\n ), l = [];\n for (let c = 0; c < a.length; c += 1)\n l[c] = Pt(Bt(e, a, c));\n const d = (c) => X(l[c], 1, 1, () => {\n l[c] = null;\n });\n let h = (\n /*drawingEl*/\n e[4] && Rt(e)\n );\n return {\n c() {\n t = U(\"svg\"), n = U(\"g\");\n for (let c = 0; c < l.length; c += 1)\n l[c].c();\n o = U(\"g\"), h && h.c(), f(o, \"class\", \"drawing\"), f(t, \"class\", \"a9s-annotationlayer\"), mt(\n t,\n \"drawing\",\n /*tool*/\n e[2]\n );\n },\n m(c, g) {\n k(c, t, g), ae(t, n);\n for (let u = 0; u < l.length; u += 1)\n l[u] && l[u].m(n, null);\n ae(t, o), h && h.m(o, null), e[24](o), e[25](t), i = !0, s || (r = [\n W(t, \"pointerup\", function() {\n H(\n /*onPointerUp*/\n e[8]\n ) && e[8].apply(this, arguments);\n }),\n W(t, \"pointerdown\", function() {\n H(\n /*onPointerDown*/\n e[9]\n ) && e[9].apply(this, arguments);\n })\n ], s = !0);\n },\n p(c, g) {\n if (e = c, g[0] & /*$store, style, isEditable*/\n 4226) {\n a = /*$store*/\n e[12];\n let u;\n for (u = 0; u < a.length; u += 1) {\n const m = Bt(e, a, u);\n l[u] ? (l[u].p(m, g), D(l[u], 1)) : (l[u] = Pt(m), l[u].c(), D(l[u], 1), l[u].m(n, null));\n }\n for (ie(), u = a.length; u < l.length; u += 1)\n d(u);\n se();\n }\n /*drawingEl*/\n e[4] ? h ? (h.p(e, g), g[0] & /*drawingEl*/\n 16 && D(h, 1)) : (h = Rt(e), h.c(), D(h, 1), h.m(o, null)) : h && (ie(), X(h, 1, 1, () => {\n h = null;\n }), se()), (!i || g[0] & /*tool*/\n 4) && mt(\n t,\n \"drawing\",\n /*tool*/\n e[2]\n );\n },\n i(c) {\n if (!i) {\n for (let g = 0; g < a.length; g += 1)\n D(l[g]);\n D(h), i = !0;\n }\n },\n o(c) {\n l = l.filter(Boolean);\n for (let g = 0; g < l.length; g += 1)\n X(l[g]);\n X(h), i = !1;\n },\n d(c) {\n c && L(t), rt(l, c), h && h.d(), e[24](null), e[25](null), s = !1, re(r);\n }\n };\n}\nfunction ii(e, t, n) {\n let o, i, s, r, a, l, d, h, c = V, g = () => (c(), c = Ft(A, (C) => n(13, h = C)), A);\n e.$$.on_destroy.push(() => c());\n let { drawingEnabled: u } = t, { image: m } = t, { preferredDrawingMode: w } = t, { state: b } = t, { style: _ = void 0 } = t, { tool: p, opts: T } = $t(\"rectangle\"), { tool: S = p, opts: I = T } = t, { user: R } = t, N, y, A;\n Pe(() => g(n(5, A = Bo(m, y))));\n const { selection: E, store: v } = b;\n gt(e, E, (C) => n(23, l = C)), gt(e, v, (C) => n(12, d = C));\n let B = null, Y = null;\n const Q = (C) => {\n v.unobserve(B);\n const J = C.filter(({ editable: z }) => z).map(({ id: z }) => z);\n J.length > 0 ? (n(6, Y = J.map((z) => v.getAnnotation(z))), B = (z) => {\n const { updated: j } = z.changes;\n n(6, Y = j.map((oe) => oe.newValue));\n }, v.observe(B, { annotations: J })) : n(6, Y = null);\n }, me = (C) => {\n const J = ct(), z = {\n id: J,\n bodies: [],\n target: {\n annotation: J,\n selector: C.detail,\n creator: R,\n created: /* @__PURE__ */ new Date()\n }\n };\n v.addAnnotation(z), E.setSelected(z.id);\n }, pe = (C) => (J) => {\n var ue;\n const { target: z } = C, j = 10 * 60 * 1e3, oe = ((ue = z.creator) == null ? void 0 : ue.id) !== R.id || !z.created || (/* @__PURE__ */ new Date()).getTime() - z.created.getTime() > j;\n v.updateTarget({\n ...z,\n selector: J.detail,\n created: oe ? z.created : /* @__PURE__ */ new Date(),\n updated: oe ? /* @__PURE__ */ new Date() : null,\n updatedBy: oe ? R : null\n });\n };\n function Me(C) {\n ze[C ? \"unshift\" : \"push\"](() => {\n N = C, n(4, N);\n });\n }\n function K(C) {\n ze[C ? \"unshift\" : \"push\"](() => {\n y = C, n(3, y);\n });\n }\n return e.$$set = (C) => {\n \"drawingEnabled\" in C && n(0, u = C.drawingEnabled), \"image\" in C && n(18, m = C.image), \"preferredDrawingMode\" in C && n(19, w = C.preferredDrawingMode), \"state\" in C && n(20, b = C.state), \"style\" in C && n(1, _ = C.style), \"tool\" in C && n(2, S = C.tool), \"opts\" in C && n(21, I = C.opts), \"user\" in C && n(22, R = C.user);\n }, e.$$.update = () => {\n e.$$.dirty[0] & /*opts, preferredDrawingMode*/\n 2621440 && n(11, o = (I == null ? void 0 : I.drawingMode) || w), e.$$.dirty[0] & /*svgEl*/\n 8 && n(10, i = Jo(y)), e.$$.dirty[0] & /*svgEl*/\n 8 && n(9, { onPointerDown: s, onPointerUp: r } = Zo(y, v), s, (n(8, r), n(3, y))), e.$$.dirty[0] & /*$selection*/\n 8388608 && n(7, a = (C) => l.selected.find((J) => J.id === C.id && J.editable)), e.$$.dirty[0] & /*$selection*/\n 8388608 && Q(l.selected);\n }, [\n u,\n _,\n S,\n y,\n N,\n A,\n Y,\n a,\n r,\n s,\n i,\n o,\n d,\n h,\n E,\n v,\n me,\n pe,\n m,\n w,\n b,\n I,\n R,\n l,\n Me,\n K\n ];\n}\nclass si extends ne {\n constructor(t) {\n super(), te(\n this,\n t,\n ii,\n oi,\n Z,\n {\n drawingEnabled: 0,\n image: 18,\n preferredDrawingMode: 19,\n state: 20,\n style: 1,\n tool: 2,\n opts: 21,\n user: 22\n },\n null,\n [-1, -1]\n );\n }\n}\nfunction ri(e, t, n, o, i) {\n en(e, t, n || 0, o || e.length - 1, i || li);\n}\nfunction en(e, t, n, o, i) {\n for (; o > n; ) {\n if (o - n > 600) {\n var s = o - n + 1, r = t - n + 1, a = Math.log(s), l = 0.5 * Math.exp(2 * a / 3), d = 0.5 * Math.sqrt(a * l * (s - l) / s) * (r - s / 2 < 0 ? -1 : 1), h = Math.max(n, Math.floor(t - r * l / s + d)), c = Math.min(o, Math.floor(t + (s - r) * l / s + d));\n en(e, t, h, c, i);\n }\n var g = e[t], u = n, m = o;\n for (Oe(e, n, t), i(e[o], g) > 0 && Oe(e, n, o); u < m; ) {\n for (Oe(e, u, m), u++, m--; i(e[u], g) < 0; )\n u++;\n for (; i(e[m], g) > 0; )\n m--;\n }\n i(e[n], g) === 0 ? Oe(e, n, m) : (m++, Oe(e, m, o)), m <= t && (n = m + 1), t <= m && (o = m - 1);\n }\n}\nfunction Oe(e, t, n) {\n var o = e[t];\n e[t] = e[n], e[n] = o;\n}\nfunction li(e, t) {\n return e < t ? -1 : e > t ? 1 : 0;\n}\nclass ai {\n constructor(t = 9) {\n this._maxEntries = Math.max(4, t), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();\n }\n all() {\n return this._all(this.data, []);\n }\n search(t) {\n let n = this.data;\n const o = [];\n if (!Ge(t, n))\n return o;\n const i = this.toBBox, s = [];\n for (; n; ) {\n for (let r = 0; r < n.children.length; r++) {\n const a = n.children[r], l = n.leaf ? i(a) : a;\n Ge(t, l) && (n.leaf ? o.push(a) : nt(t, l) ? this._all(a, o) : s.push(a));\n }\n n = s.pop();\n }\n return o;\n }\n collides(t) {\n let n = this.data;\n if (!Ge(t, n))\n return !1;\n const o = [];\n for (; n; ) {\n for (let i = 0; i < n.children.length; i++) {\n const s = n.children[i], r = n.leaf ? this.toBBox(s) : s;\n if (Ge(t, r)) {\n if (n.leaf || nt(t, r))\n return !0;\n o.push(s);\n }\n }\n n = o.pop();\n }\n return !1;\n }\n load(t) {\n if (!(t && t.length))\n return this;\n if (t.length < this._minEntries) {\n for (let o = 0; o < t.length; o++)\n this.insert(t[o]);\n return this;\n }\n let n = this._build(t.slice(), 0, t.length - 1, 0);\n if (!this.data.children.length)\n this.data = n;\n else if (this.data.height === n.height)\n this._splitRoot(this.data, n);\n else {\n if (this.data.height < n.height) {\n const o = this.data;\n this.data = n, n = o;\n }\n this._insert(n, this.data.height - n.height - 1, !0);\n }\n return this;\n }\n insert(t) {\n return t && this._insert(t, this.data.height - 1), this;\n }\n clear() {\n return this.data = Ae([]), this;\n }\n remove(t, n) {\n if (!t)\n return this;\n let o = this.data;\n const i = this.toBBox(t), s = [], r = [];\n let a, l, d;\n for (; o || s.length; ) {\n if (o || (o = s.pop(), l = s[s.length - 1], a = r.pop(), d = !0), o.leaf) {\n const h = ci(t, o.children, n);\n if (h !== -1)\n return o.children.splice(h, 1), s.push(o), this._condense(s), this;\n }\n !d && !o.leaf && nt(o, i) ? (s.push(o), r.push(a), a = 0, l = o, o = o.children[0]) : l ? (a++, o = l.children[a], d = !1) : o = null;\n }\n return this;\n }\n toBBox(t) {\n return t;\n }\n compareMinX(t, n) {\n return t.minX - n.minX;\n }\n compareMinY(t, n) {\n return t.minY - n.minY;\n }\n toJSON() {\n return this.data;\n }\n fromJSON(t) {\n return this.data = t, this;\n }\n _all(t, n) {\n const o = [];\n for (; t; )\n t.leaf ? n.push(...t.children) : o.push(...t.children), t = o.pop();\n return n;\n }\n _build(t, n, o, i) {\n const s = o - n + 1;\n let r = this._maxEntries, a;\n if (s <= r)\n return a = Ae(t.slice(n, o + 1)), be(a, this.toBBox), a;\n i || (i = Math.ceil(Math.log(s) / Math.log(r)), r = Math.ceil(s / Math.pow(r, i - 1))), a = Ae([]), a.leaf = !1, a.height = i;\n const l = Math.ceil(s / r), d = l * Math.ceil(Math.sqrt(r));\n Xt(t, n, o, d, this.compareMinX);\n for (let h = n; h <= o; h += d) {\n const c = Math.min(h + d - 1, o);\n Xt(t, h, c, l, this.compareMinY);\n for (let g = h; g <= c; g += l) {\n const u = Math.min(g + l - 1, c);\n a.children.push(this._build(t, g, u, i - 1));\n }\n }\n return be(a, this.toBBox), a;\n }\n _chooseSubtree(t, n, o, i) {\n for (; i.push(n), !(n.leaf || i.length - 1 === o); ) {\n let s = 1 / 0, r = 1 / 0, a;\n for (let l = 0; l < n.children.length; l++) {\n const d = n.children[l], h = tt(d), c = fi(t, d) - h;\n c < r ? (r = c, s = h < s ? h : s, a = d) : c === r && h < s && (s = h, a = d);\n }\n n = a || n.children[0];\n }\n return n;\n }\n _insert(t, n, o) {\n const i = o ? t : this.toBBox(t), s = [], r = this._chooseSubtree(i, this.data, n, s);\n for (r.children.push(t), ke(r, i); n >= 0 && s[n].children.length > this._maxEntries; )\n this._split(s, n), n--;\n this._adjustParentBBoxes(i, s, n);\n }\n // split overflowed node into two\n _split(t, n) {\n const o = t[n], i = o.children.length, s = this._minEntries;\n this._chooseSplitAxis(o, s, i);\n const r = this._chooseSplitIndex(o, s, i), a = Ae(o.children.splice(r, o.children.length - r));\n a.height = o.height, a.leaf = o.leaf, be(o, this.toBBox), be(a, this.toBBox), n ? t[n - 1].children.push(a) : this._splitRoot(o, a);\n }\n _splitRoot(t, n) {\n this.data = Ae([t, n]), this.data.height = t.height + 1, this.data.leaf = !1, be(this.data, this.toBBox);\n }\n _chooseSplitIndex(t, n, o) {\n let i, s = 1 / 0, r = 1 / 0;\n for (let a = n; a <= o - n; a++) {\n const l = Le(t, 0, a, this.toBBox), d = Le(t, a, o, this.toBBox), h = hi(l, d), c = tt(l) + tt(d);\n h < s ? (s = h, i = a, r = c < r ? c : r) : h === s && c < r && (r = c, i = a);\n }\n return i || o - n;\n }\n // sorts node children by the best axis for split\n _chooseSplitAxis(t, n, o) {\n const i = t.leaf ? this.compareMinX : di, s = t.leaf ? this.compareMinY : ui, r = this._allDistMargin(t, n, o, i), a = this._allDistMargin(t, n, o, s);\n r < a && t.children.sort(i);\n }\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(t, n, o, i) {\n t.children.sort(i);\n const s = this.toBBox, r = Le(t, 0, n, s), a = Le(t, o - n, o, s);\n let l = Ne(r) + Ne(a);\n for (let d = n; d < o - n; d++) {\n const h = t.children[d];\n ke(r, t.leaf ? s(h) : h), l += Ne(r);\n }\n for (let d = o - n - 1; d >= n; d--) {\n const h = t.children[d];\n ke(a, t.leaf ? s(h) : h), l += Ne(a);\n }\n return l;\n }\n _adjustParentBBoxes(t, n, o) {\n for (let i = o; i >= 0; i--)\n ke(n[i], t);\n }\n _condense(t) {\n for (let n = t.length - 1, o; n >= 0; n--)\n t[n].children.length === 0 ? n > 0 ? (o = t[n - 1].children, o.splice(o.indexOf(t[n]), 1)) : this.clear() : be(t[n], this.toBBox);\n }\n}\nfunction ci(e, t, n) {\n if (!n)\n return t.indexOf(e);\n for (let o = 0; o < t.length; o++)\n if (n(e, t[o]))\n return o;\n return -1;\n}\nfunction be(e, t) {\n Le(e, 0, e.children.length, t, e);\n}\nfunction Le(e, t, n, o, i) {\n i || (i = Ae(null)), i.minX = 1 / 0, i.minY = 1 / 0, i.maxX = -1 / 0, i.maxY = -1 / 0;\n for (let s = t; s < n; s++) {\n const r = e.children[s];\n ke(i, e.leaf ? o(r) : r);\n }\n return i;\n}\nfunction ke(e, t) {\n return e.minX = Math.min(e.minX, t.minX), e.minY = Math.min(e.minY, t.minY), e.maxX = Math.max(e.maxX, t.maxX), e.maxY = Math.max(e.maxY, t.maxY), e;\n}\nfunction di(e, t) {\n return e.minX - t.minX;\n}\nfunction ui(e, t) {\n return e.minY - t.minY;\n}\nfunction tt(e) {\n return (e.maxX - e.minX) * (e.maxY - e.minY);\n}\nfunction Ne(e) {\n return e.maxX - e.minX + (e.maxY - e.minY);\n}\nfunction fi(e, t) {\n return (Math.max(t.maxX, e.maxX) - Math.min(t.minX, e.minX)) * (Math.max(t.maxY, e.maxY) - Math.min(t.minY, e.minY));\n}\nfunction hi(e, t) {\n const n = Math.max(e.minX, t.minX), o = Math.max(e.minY, t.minY), i = Math.min(e.maxX, t.maxX), s = Math.min(e.maxY, t.maxY);\n return Math.max(0, i - n) * Math.max(0, s - o);\n}\nfunction nt(e, t) {\n return e.minX <= t.minX && e.minY <= t.minY && t.maxX <= e.maxX && t.maxY <= e.maxY;\n}\nfunction Ge(e, t) {\n return t.minX <= e.maxX && t.minY <= e.maxY && t.maxX >= e.minX && t.maxY >= e.minY;\n}\nfunction Ae(e) {\n return {\n children: e,\n height: 1,\n leaf: !0,\n minX: 1 / 0,\n minY: 1 / 0,\n maxX: -1 / 0,\n maxY: -1 / 0\n };\n}\nfunction Xt(e, t, n, o, i) {\n const s = [t, n];\n for (; s.length; ) {\n if (n = s.pop(), t = s.pop(), n - t <= o)\n continue;\n const r = t + Math.ceil((n - t) / o / 2) * o;\n ri(e, r, t, n, i), s.push(t, r, r, n);\n }\n}\nconst gi = () => {\n const e = new ai(), t = /* @__PURE__ */ new Map(), n = () => [...t.values()], o = () => {\n e.clear(), t.clear();\n }, i = (c) => {\n const { minX: g, minY: u, maxX: m, maxY: w } = c.selector.geometry.bounds, b = { minX: g, minY: u, maxX: m, maxY: w, target: c };\n e.insert(b), t.set(c.annotation, b);\n }, s = (c) => {\n const g = t.get(c.annotation);\n e.remove(g), t.delete(c.annotation);\n };\n return {\n all: n,\n clear: o,\n getAt: (c, g) => {\n const m = e.search({\n minX: c,\n minY: g,\n maxX: c,\n maxY: g\n }).map((w) => w.target).filter((w) => w.selector.type === F.RECTANGLE || mn(w.selector, c, g));\n if (m.length > 0)\n return m.sort((w, b) => st(w.selector) - st(b.selector)), m[0];\n },\n getIntersecting: (c, g, u, m) => e.search({\n minX: c,\n minY: g,\n maxX: c + u,\n maxY: g + m\n }).map((w) => w.target),\n insert: i,\n remove: s,\n set: (c, g = !0) => {\n g && o();\n const u = c.map((m) => {\n const { minX: w, minY: b, maxX: _, maxY: p } = m.selector.geometry.bounds;\n return { minX: w, minY: b, maxX: _, maxY: p, target: m };\n });\n u.forEach((m) => t.set(m.target.annotation, m)), e.load(u);\n },\n size: () => e.all().length,\n update: (c, g) => {\n s(c), i(g);\n }\n };\n}, mi = (e) => {\n const t = Fn(), n = gi(), o = Pn(t, e.pointerSelectAction), i = Cn(t), s = Jn();\n return t.observe(({ changes: l }) => {\n n.set(l.created.map((d) => d.target), !1), l.deleted.forEach((d) => n.remove(d.target)), l.updated.forEach(({ oldValue: d, newValue: h }) => n.update(d.target, h.target));\n }), {\n store: {\n ...t,\n getAt: (l, d) => {\n const h = n.getAt(l, d);\n return h ? t.getAnnotation(h.annotation) : void 0;\n },\n getIntersecting: (l, d, h, c) => n.getIntersecting(l, d, h, c).map((g) => t.getAnnotation(g.annotation))\n },\n selection: o,\n hover: i,\n viewport: s\n };\n}, pi = (e) => {\n const t = mi(e);\n return {\n ...t,\n store: Hn(t.store)\n };\n}, yi = (e) => {\n let t, n;\n if (e.nodeName === \"CANVAS\")\n t = e, n = t.getContext(\"2d\", { willReadFrequently: !0 });\n else {\n const i = e;\n t = document.createElement(\"canvas\"), t.width = i.width, t.height = i.height, n = t.getContext(\"2d\", { willReadFrequently: !0 }), n.drawImage(i, 0, 0, i.width, i.height);\n }\n let o = 0;\n for (let i = 1; i < 10; i++)\n for (let s = 1; s < 10; s++) {\n const r = Math.round(s * t.width / 10), a = Math.round(i * t.height / 10), l = n.getImageData(r, a, 1, 1).data, d = (0.299 * l[0] + 0.587 * l[1] + 0.114 * l[2]) / 255;\n o += d;\n }\n return o / 81;\n}, _i = (e) => {\n const t = yi(e), n = t > 0.6 ? \"dark\" : \"light\";\n return console.log(`[Annotorious] Image brightness: ${t.toFixed(1)}. Setting ${n} theme.`), n;\n}, Nt = (e, t, n) => t.setAttribute(\"data-theme\", n === \"auto\" ? _i(e) : n), wi = (e) => ({\n ...e,\n drawingEnabled: e.drawingEnabled === void 0 ? !0 : e.drawingEnabled,\n drawingMode: e.drawingMode || \"drag\",\n pointerSelectAction: e.pointerSelectAction || Kt.EDIT,\n theme: e.theme || \"light\"\n}), Gt = navigator.userAgent.indexOf(\"Mac OS X\") !== -1, bi = (e, t) => {\n const n = t || document, o = (r) => {\n r.key === \"Z\" && r.ctrlKey ? e.undo() : r.key === \"Y\" && r.ctrlKey && e.redo();\n }, i = (r) => {\n r.key === \"z\" && r.metaKey && (r.shiftKey ? e.redo() : e.undo());\n }, s = () => {\n Gt ? n.removeEventListener(\"keydown\", i) : n.removeEventListener(\"keydown\", o);\n };\n return Gt ? n.addEventListener(\"keydown\", i) : n.addEventListener(\"keydown\", o), {\n destroy: s\n };\n};\nconst Gi = (e, t = {}) => {\n if (!e)\n throw \"Missing argument: image\";\n const n = typeof e == \"string\" ? document.getElementById(e) : e, o = wi(t), i = pi(o), { selection: s, store: r } = i, a = Wn(r), l = Kn(\n i,\n a,\n o.adapter,\n o.autoSave\n ), d = document.createElement(\"DIV\");\n d.style.position = \"relative\", d.style.display = \"inline-block\", n.style.display = \"block\", n.parentNode.insertBefore(d, n), d.appendChild(n);\n const h = bi(a);\n let c = no();\n Nt(n, d, o.theme);\n const g = new si({\n target: d,\n props: {\n drawingEnabled: o.drawingEnabled,\n image: n,\n preferredDrawingMode: o.drawingMode,\n state: i,\n style: o.style,\n user: c\n }\n });\n g.$on(\"click\", (y) => {\n const { originalEvent: A, annotation: E } = y.detail;\n E ? s.clickSelect(E.id, A) : s.isEmpty() || s.clear();\n });\n const u = Qn(i, a, o.adapter), m = () => {\n g.$destroy(), d.parentNode.insertBefore(n, d), d.parentNode.removeChild(d), h.destroy(), a.destroy();\n }, w = () => c, b = (y, A, E) => Uo(y, A, E), _ = (y, A) => yo(y, A), p = (y) => {\n const { tool: A, opts: E } = $t(y);\n g.$set({ tool: A, opts: E });\n }, T = (y) => g.$set({ drawingEnabled: y }), S = (y) => {\n console.warn(\"Filter not implemented yet\");\n }, I = (y) => g.$set({ style: y }), R = (y) => Nt(n, d, y), N = (y) => {\n c = y, g.$set({ user: y });\n };\n return {\n ...u,\n destroy: m,\n getUser: w,\n listDrawingTools: Yo,\n on: l.on,\n off: l.off,\n registerDrawingTool: b,\n registerShapeEditor: _,\n setDrawingEnabled: T,\n setDrawingTool: p,\n setFilter: S,\n setStyle: I,\n setTheme: R,\n setUser: N,\n state: i\n };\n};\nvar Ei = /* @__PURE__ */ ((e) => (e.EDIT = \"EDIT\", e.SELECT = \"SELECT\", e.NONE = \"NONE\", e))(Ei || {});\nconst Vi = (e) => {\n const { creator: t, updatedBy: n } = e.target, o = e.bodies.reduce((i, s) => [...i, s.creator, s.updatedBy], []);\n return [\n t,\n n,\n ...o\n ].filter((i) => i);\n}, zi = (e, t, n, o) => ({\n id: ct(),\n annotation: e.id,\n created: n || /* @__PURE__ */ new Date(),\n creator: o,\n ...t\n});\nvar Vt = Object.prototype.hasOwnProperty;\nfunction He(e, t) {\n var n, o;\n if (e === t)\n return !0;\n if (e && t && (n = e.constructor) === t.constructor) {\n if (n === Date)\n return e.getTime() === t.getTime();\n if (n === RegExp)\n return e.toString() === t.toString();\n if (n === Array) {\n if ((o = e.length) === t.length)\n for (; o-- && He(e[o], t[o]); )\n ;\n return o === -1;\n }\n if (!n || typeof e == \"object\") {\n o = 0;\n for (n in e)\n if (Vt.call(e, n) && ++o && !Vt.call(t, n) || !(n in t) || !He(e[n], t[n]))\n return !1;\n return Object.keys(t).length === o;\n }\n }\n return e !== e && t !== t;\n}\nconst Ai = (e, t) => {\n const n = new Set(e.bodies.map((o) => o.id));\n return t.bodies.filter((o) => !n.has(o.id));\n}, Ti = (e, t) => {\n const n = new Set(t.bodies.map((o) => o.id));\n return e.bodies.filter((o) => !n.has(o.id));\n}, Si = (e, t) => t.bodies.map((n) => {\n const o = e.bodies.find((i) => i.id === n.id);\n return { newBody: n, oldBody: o && !He(o, n) ? o : void 0 };\n}).filter(({ oldBody: n }) => n), vi = (e, t) => !He(e.target, t.target), Fi = (e, t) => {\n const n = Ai(e, t), o = Ti(e, t), i = Si(e, t);\n return {\n oldValue: e,\n newValue: t,\n bodiesCreated: n.length > 0 ? n : void 0,\n bodiesDeleted: o.length > 0 ? o : void 0,\n bodiesUpdated: i.length > 0 ? i : void 0,\n targetUpdated: vi(e, t) ? { oldTarget: e.target, newTarget: t.target } : void 0\n };\n};\nvar Be = /* @__PURE__ */ ((e) => (e.LOCAL = \"LOCAL\", e.REMOTE = \"REMOTE\", e))(Be || {});\nlet Mi = () => ({\n emit(e, ...t) {\n let n = this.events[e] || [];\n for (let o = 0, i = n.length; o < i; o++)\n n[o](...t);\n },\n events: {},\n on(e, t) {\n var n;\n return (n = this.events[e]) != null && n.push(t) || (this.events[e] = [t]), () => {\n var o;\n this.events[e] = (o = this.events[e]) == null ? void 0 : o.filter((i) => t !== i);\n };\n }\n});\nconst Hi = (e) => (t) => t.map((n) => e.serialize(n)), Oi = (e) => (t) => t.reduce((n, o) => {\n const { parsed: i, error: s } = e.parse(o);\n return s ? {\n parsed: n.parsed,\n failed: [...n.failed, o]\n } : {\n parsed: [...n.parsed, i],\n failed: n.failed\n };\n}, { parsed: [], failed: [] }), ji = (e, t, n) => {\n const { store: o, selection: i } = e, s = (b) => {\n if (n) {\n const { parsed: _, error: p } = n.parse(b);\n _ ? o.addAnnotation(_, Be.REMOTE) : console.error(p);\n } else\n o.addAnnotation(b, Be.REMOTE);\n }, r = () => i.clear(), a = () => o.clear(), l = (b) => {\n const _ = o.getAnnotation(b);\n return n && _ ? n.serialize(_) : _;\n }, d = () => n ? o.all().map(n.serialize) : o.all(), h = () => {\n var p;\n const _ = (((p = i.selected) == null ? void 0 : p.map((T) => T.id)) || []).map((T) => o.getAnnotation(T));\n return n ? _.map(n.serialize) : _;\n }, c = (b) => fetch(b).then((_) => _.json()).then((_) => (u(_), _)), g = (b) => {\n if (typeof b == \"string\") {\n const _ = o.getAnnotation(b);\n return o.deleteAnnotation(b), n ? n.serialize(_) : _;\n } else {\n const _ = n ? n.parse(b).parsed : b;\n return o.deleteAnnotation(_), b;\n }\n }, u = (b) => {\n if (n) {\n const { parsed: _, failed: p } = Oi(n)(b);\n p.length > 0 && console.warn(`Discarded ${p.length} invalid annotations`, p), o.bulkAddAnnotation(_, !0, Be.REMOTE);\n } else\n o.bulkAddAnnotation(b, !0, Be.REMOTE);\n }, m = (b) => {\n b ? i.setSelected(b) : i.clear();\n }, w = (b) => {\n if (n) {\n const _ = n.parse(b).parsed, p = n.serialize(o.getAnnotation(_.id));\n return o.updateAnnotation(_), p;\n } else {\n const _ = o.getAnnotation(b.id);\n return o.updateAnnotation(b), _;\n }\n };\n return {\n addAnnotation: s,\n cancelSelected: r,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: d,\n getSelected: h,\n loadAnnotations: c,\n redo: t.redo,\n removeAnnotation: g,\n setAnnotations: u,\n setSelected: m,\n undo: t.undo,\n updateAnnotation: w\n };\n};\nlet Li = (e) => crypto.getRandomValues(new Uint8Array(e)), ki = (e, t, n) => {\n let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * t / e.length);\n return (s = t) => {\n let r = \"\";\n for (; ; ) {\n let a = n(i), l = i;\n for (; l--; )\n if (r += e[a[l] & o] || \"\", r.length === s)\n return r;\n }\n };\n}, Bi = (e, t = 21) => ki(e, t, Li), Ii = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((t, n) => (n &= 63, n < 36 ? t += n.toString(36) : n < 62 ? t += (n - 26).toString(36).toUpperCase() : n > 62 ? t += \"-\" : t += \"_\", t), \"\");\nconst qi = () => ({ isGuest: !0, id: Bi(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), Ci = (e) => {\n const t = JSON.stringify(e);\n let n = 0;\n for (let o = 0, i = t.length; o < i; o++) {\n let s = t.charCodeAt(o);\n n = (n << 5) - n + s, n |= 0;\n }\n return `${n}`;\n}, Wi = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {\n const { id: o, type: i, purpose: s, value: r, created: a, creator: l, ...d } = n;\n return {\n id: o || `temp-${Ci(n)}`,\n annotation: t,\n type: i,\n purpose: s,\n value: r,\n created: a,\n creator: l ? typeof l == \"object\" ? { ...l } : l : void 0,\n ...d\n };\n}), Ji = (e) => e.map((t) => {\n var o;\n const n = { ...t };\n return delete n.annotation, (o = n.id) != null && o.startsWith(\"temp-\") && delete n.id, n;\n}), Pi = [\n \"#ff7c00\",\n // orange\n \"#1ac938\",\n // green\n \"#e8000b\",\n // red\n \"#8b2be2\",\n // purple\n \"#9f4800\",\n // brown\n \"#f14cc1\",\n // pink\n \"#ffc400\",\n // khaki\n \"#00d7ff\",\n // cyan\n \"#023eff\"\n // blue\n], Ri = () => {\n const e = [...Pi];\n return { assignRandomColor: () => {\n const o = Math.floor(Math.random() * e.length), i = e[o];\n return e.splice(o, 1), i;\n }, releaseColor: (o) => e.push(o) };\n}, Yi = () => {\n const e = Ri();\n return { addUser: (o, i) => {\n const s = e.assignRandomColor();\n return {\n label: i.name || i.id,\n avatar: i.avatar,\n color: s\n };\n }, removeUser: (o) => e.releaseColor(o.appearance.color) };\n}, Ui = (e, t) => e.every((n) => e.includes(n)) && t.every((n) => e.includes(n)), Ki = Ii(), Zi = (e = Yi()) => {\n const t = Mi(), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = (c, g) => {\n if (n.has(c)) {\n console.warn(\"Attempt to add user that is already present\", c, g);\n return;\n }\n const u = e.addUser(c, g);\n n.set(c, {\n ...g,\n presenceKey: c,\n appearance: u\n });\n }, s = (c) => {\n const g = n.get(c);\n if (!g) {\n console.warn(\"Attempt to remove user that is not present\", c);\n return;\n }\n e.removeUser(g), n.delete(c);\n }, r = (c) => {\n const g = new Set(c.map((w) => w.presenceKey)), u = c.filter(({ presenceKey: w }) => !n.has(w)), m = Array.from(n.values()).filter((w) => !g.has(w.presenceKey));\n u.forEach(({ presenceKey: w, user: b }) => i(w, b)), m.forEach((w) => {\n const { presenceKey: b } = w;\n o.has(b) && t.emit(\"selectionChange\", w, null), s(b);\n }), (u.length > 0 || m.length > 0) && t.emit(\"presence\", d());\n }, a = (c, g) => {\n const u = n.get(c);\n if (!u) {\n console.warn(\"Activity notification from user that is not present\");\n return;\n }\n const m = o.get(c);\n (!m || !Ui(m, g)) && (o.set(c, g), t.emit(\"selectionChange\", u, g));\n }, l = (c, g) => {\n const u = n.get(c);\n if (!u) {\n console.warn(\"Selection change for user that is not present\", c);\n return;\n }\n g ? o.set(c, g) : o.delete(c), t.emit(\"selectionChange\", u, g);\n }, d = () => [...Array.from(n.values())];\n return {\n getPresentUsers: d,\n notifyActivity: a,\n on: (c, g) => t.on(c, g),\n syncUsers: r,\n updateSelection: l\n };\n};\nexport {\n xt as Editor,\n Ao as EditorMount,\n O as Handle,\n Ni as IdentityTransform,\n Be as Origin,\n Ki as PRESENCE_KEY,\n Ei as PointerSelectAction,\n fo as PolygonEditor,\n po as RectangleEditor,\n _n as RectangleUtil,\n Oo as RubberbandRectangle,\n si as SVGAnnotationLayer,\n F as ShapeType,\n So as ToolMount,\n Di as W3CImageFormat,\n Zo as addEventListeners,\n Fe as boundsFromPoints,\n st as computeArea,\n qi as createAnonymousGuest,\n ji as createBaseAnnotator,\n zi as createBody,\n Yi as createDefaultAppearenceProvider,\n Gi as createImageAnnotator,\n mi as createImageAnnotatorState,\n Zi as createPresenceState,\n Jo as createSVGTransform,\n pi as createSvelteImageAnnotatorState,\n Ri as defaultColorProvider,\n _i as detectTheme,\n Fi as diffAnnotations,\n xe as distance,\n Bo as enableResponsive,\n wi as fillDefaults,\n Vi as getContributors,\n St as getEditor,\n $t as getTool,\n bi as initKeyboardCommands,\n mn as intersects,\n Xi as isTouch,\n Yo as listDrawingTools,\n Oi as parseAll,\n wn as parseFragmentSelector,\n vn as parseSVGSelector,\n Wi as parseW3CBodies,\n ro as parseW3CImageAnnotation,\n yo as registerEditor,\n at as registerShapeUtil,\n Uo as registerTool,\n yi as sampleBrightness,\n Hi as serializeAll,\n bn as serializeFragmentSelector,\n Mn as serializeSVGSelector,\n Ji as serializeW3CBodies,\n lo as serializeW3CImageAnnotation,\n Nt as setTheme\n};\n//# sourceMappingURL=annotorious.es.js.map\n"],"names":["V","tn","e","t","n","zt","ht","re","H","Z","nn","on","i","Ht","sn","s","r","a","rn","ln","k","L","rt","U","jt","ee","le","W","f","an","cn","Ce","Ie","qt","ve","Te","Ee","ze","Se","pt","dn","ot","un","Wt","it","Ke","ye","fn","hn","Ve","fe","D","X","ge","ce","de","gn","te","l","d","h","c","g","u","m","ne","F","at","Fe","pn","yn","_n","wn","w","bn","Jt","yt","En","o","An","Sn","vn","Mn","Xe","On","Ln","q","kn","Bn","_t","ct","Yn","to","oo","io","so","Di","ro","lo","bt","Et","O","ao","At","Tt","b","co","xt","uo","p","T","S","_","fo","ho","I","R","N","y","A","E","v","B","Y","Q","me","pe","Me","K","C","J","z","j","oe","ue","qe","x","Re","Ye","We","$","Ue","De","Je","ft","P","M","go","mo","po","_o","vt","wo","bo","Ii"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"annotorious-svelte.es5.js","sources":["../../annotorious/dist/annotorious.es.js"],"sourcesContent":["function z() {\n}\nfunction nn(e, t) {\n for (const n in t)\n e[n] = t[n];\n return e;\n}\nfunction Ft(e) {\n return e();\n}\nfunction gt() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction ie(e) {\n e.forEach(Ft);\n}\nfunction j(e) {\n return typeof e == \"function\";\n}\nfunction K(e, t) {\n return e != e ? t == t : e !== t || e && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction on(e) {\n return Object.keys(e).length === 0;\n}\nfunction Ht(e, ...t) {\n if (e == null)\n return z;\n const n = e.subscribe(...t);\n return n.unsubscribe ? () => n.unsubscribe() : n;\n}\nfunction mt(e, t, n) {\n e.$$.on_destroy.push(Ht(t, n));\n}\nfunction sn(e, t, n, o) {\n if (e) {\n const i = jt(e, t, n, o);\n return e[0](i);\n }\n}\nfunction jt(e, t, n, o) {\n return e[1] && o ? nn(n.ctx.slice(), e[1](o(t))) : n.ctx;\n}\nfunction rn(e, t, n, o) {\n if (e[2] && o) {\n const i = e[2](o(n));\n if (t.dirty === void 0)\n return i;\n if (typeof i == \"object\") {\n const s = [], r = Math.max(t.dirty.length, i.length);\n for (let a = 0; a < r; a += 1)\n s[a] = t.dirty[a] | i[a];\n return s;\n }\n return t.dirty | i;\n }\n return t.dirty;\n}\nfunction ln(e, t, n, o, i, s) {\n if (i) {\n const r = jt(t, n, o, s);\n e.p(r, i);\n }\n}\nfunction an(e) {\n if (e.ctx.length > 32) {\n const t = [], n = e.ctx.length / 32;\n for (let o = 0; o < n; o++)\n t[o] = -1;\n return t;\n }\n return -1;\n}\nfunction re(e, t) {\n e.appendChild(t);\n}\nfunction B(e, t, n) {\n e.insertBefore(t, n || null);\n}\nfunction k(e) {\n e.parentNode && e.parentNode.removeChild(e);\n}\nfunction lt(e, t) {\n for (let n = 0; n < e.length; n += 1)\n e[n] && e[n].d(t);\n}\nfunction U(e) {\n return document.createElementNS(\"http://www.w3.org/2000/svg\", e);\n}\nfunction qt(e) {\n return document.createTextNode(e);\n}\nfunction $() {\n return qt(\" \");\n}\nfunction se() {\n return qt(\"\");\n}\nfunction W(e, t, n, o) {\n return e.addEventListener(t, n, o), () => e.removeEventListener(t, n, o);\n}\nfunction f(e, t, n) {\n n == null ? e.removeAttribute(t) : e.getAttribute(t) !== n && e.setAttribute(t, n);\n}\nfunction cn(e) {\n return Array.from(e.childNodes);\n}\nfunction pt(e, t, n) {\n e.classList[n ? \"add\" : \"remove\"](t);\n}\nfunction dn(e, t, { bubbles: n = !1, cancelable: o = !1 } = {}) {\n const i = document.createEvent(\"CustomEvent\");\n return i.initCustomEvent(e, n, o, t), i;\n}\nlet Ie;\nfunction Be(e) {\n Ie = e;\n}\nfunction Wt() {\n if (!Ie)\n throw new Error(\"Function called outside component initialization\");\n return Ie;\n}\nfunction Ce(e) {\n Wt().$$.on_mount.push(e);\n}\nfunction Se() {\n const e = Wt();\n return (t, n, { cancelable: o = !1 } = {}) => {\n const i = e.$$.callbacks[t];\n if (i) {\n const s = dn(t, n, { cancelable: o });\n return i.slice().forEach((r) => {\n r.call(e, s);\n }), !s.defaultPrevented;\n }\n return !0;\n };\n}\nfunction Ae(e, t) {\n const n = e.$$.callbacks[t.type];\n n && n.slice().forEach((o) => o.call(this, t));\n}\nconst be = [], ze = [];\nlet Te = [];\nconst yt = [], un = /* @__PURE__ */ Promise.resolve();\nlet ot = !1;\nfunction fn() {\n ot || (ot = !0, un.then(Jt));\n}\nfunction it(e) {\n Te.push(e);\n}\nconst Ke = /* @__PURE__ */ new Set();\nlet pe = 0;\nfunction Jt() {\n if (pe !== 0)\n return;\n const e = Ie;\n do {\n try {\n for (; pe < be.length; ) {\n const t = be[pe];\n pe++, Be(t), hn(t.$$);\n }\n } catch (t) {\n throw be.length = 0, pe = 0, t;\n }\n for (Be(null), be.length = 0, pe = 0; ze.length; )\n ze.pop()();\n for (let t = 0; t < Te.length; t += 1) {\n const n = Te[t];\n Ke.has(n) || (Ke.add(n), n());\n }\n Te.length = 0;\n } while (be.length);\n for (; yt.length; )\n yt.pop()();\n ot = !1, Ke.clear(), Be(e);\n}\nfunction hn(e) {\n if (e.fragment !== null) {\n e.update(), ie(e.before_update);\n const t = e.dirty;\n e.dirty = [-1], e.fragment && e.fragment.p(e.ctx, t), e.after_update.forEach(it);\n }\n}\nfunction gn(e) {\n const t = [], n = [];\n Te.forEach((o) => e.indexOf(o) === -1 ? t.push(o) : n.push(o)), n.forEach((o) => o()), Te = t;\n}\nconst Ve = /* @__PURE__ */ new Set();\nlet ue;\nfunction ne() {\n ue = {\n r: 0,\n c: [],\n p: ue\n // parent group\n };\n}\nfunction oe() {\n ue.r || ie(ue.c), ue = ue.p;\n}\nfunction D(e, t) {\n e && e.i && (Ve.delete(e), e.i(t));\n}\nfunction N(e, t, n, o) {\n if (e && e.o) {\n if (Ve.has(e))\n return;\n Ve.add(e), ue.c.push(() => {\n Ve.delete(e), o && (n && e.d(1), o());\n }), e.o(t);\n } else\n o && o();\n}\nfunction he(e) {\n e && e.c();\n}\nfunction le(e, t, n, o) {\n const { fragment: i, after_update: s } = e.$$;\n i && i.m(t, n), o || it(() => {\n const r = e.$$.on_mount.map(Ft).filter(j);\n e.$$.on_destroy ? e.$$.on_destroy.push(...r) : ie(r), e.$$.on_mount = [];\n }), s.forEach(it);\n}\nfunction ae(e, t) {\n const n = e.$$;\n n.fragment !== null && (gn(n.after_update), ie(n.on_destroy), n.fragment && n.fragment.d(t), n.on_destroy = n.fragment = null, n.ctx = []);\n}\nfunction mn(e, t) {\n e.$$.dirty[0] === -1 && (be.push(e), fn(), e.$$.dirty.fill(0)), e.$$.dirty[t / 31 | 0] |= 1 << t % 31;\n}\nfunction ee(e, t, n, o, i, s, r, a = [-1]) {\n const l = Ie;\n Be(e);\n const d = e.$$ = {\n fragment: null,\n ctx: [],\n // state\n props: s,\n update: z,\n not_equal: i,\n bound: gt(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(t.context || (l ? l.$$.context : [])),\n // everything else\n callbacks: gt(),\n dirty: a,\n skip_bound: !1,\n root: t.target || l.$$.root\n };\n r && r(d.root);\n let h = !1;\n if (d.ctx = n ? n(e, t.props || {}, (c, g, ...u) => {\n const m = u.length ? u[0] : g;\n return d.ctx && i(d.ctx[c], d.ctx[c] = m) && (!d.skip_bound && d.bound[c] && d.bound[c](m), h && mn(e, c)), g;\n }) : [], d.update(), h = !0, ie(d.before_update), d.fragment = o ? o(d.ctx) : !1, t.target) {\n if (t.hydrate) {\n const c = cn(t.target);\n d.fragment && d.fragment.l(c), c.forEach(k);\n } else\n d.fragment && d.fragment.c();\n t.intro && D(e.$$.fragment), le(e, t.target, t.anchor, t.customElement), Jt();\n }\n Be(l);\n}\nclass te {\n $destroy() {\n ae(this, 1), this.$destroy = z;\n }\n $on(t, n) {\n if (!j(n))\n return z;\n const o = this.$$.callbacks[t] || (this.$$.callbacks[t] = []);\n return o.push(n), () => {\n const i = o.indexOf(n);\n i !== -1 && o.splice(i, 1);\n };\n }\n $set(t) {\n this.$$set && !on(t) && (this.$$.skip_bound = !0, this.$$set(t), this.$$.skip_bound = !1);\n }\n}\nvar H = /* @__PURE__ */ ((e) => (e.ELLIPSE = \"ELLIPSE\", e.POLYGON = \"POLYGON\", e.RECTANGLE = \"RECTANGLE\", e))(H || {});\nconst at = {}, ct = (e, t) => at[e] = t, st = (e) => at[e.type].area(e), pn = (e, t, n) => at[e.type].intersects(e, t, n), Fe = (e) => {\n let t = 1 / 0, n = 1 / 0, o = -1 / 0, i = -1 / 0;\n return e.forEach(([s, r]) => {\n t = Math.min(t, s), n = Math.min(n, r), o = Math.max(o, s), i = Math.max(i, r);\n }), { minX: t, minY: n, maxX: o, maxY: i };\n}, yn = {\n area: (e) => Math.PI * e.geometry.rx * e.geometry.ry,\n intersects: (e, t, n) => {\n const { cx: o, cy: i, rx: s, ry: r } = e.geometry, a = 0, l = Math.cos(a), d = Math.sin(a), h = t - o, c = n - i, g = l * h + d * c, u = d * h - l * c;\n return g * g / (s * s) + u * u / (r * r) <= 1;\n }\n};\nct(H.ELLIPSE, yn);\nconst _n = {\n area: (e) => {\n const { points: t } = e.geometry;\n let n = 0, o = t.length - 1;\n for (let i = 0; i < t.length; i++)\n n += (t[o][0] + t[i][0]) * (t[o][1] - t[i][1]), o = i;\n return Math.abs(0.5 * n);\n },\n intersects: (e, t, n) => {\n const { points: o } = e.geometry;\n let i = !1;\n for (let s = 0, r = o.length - 1; s < o.length; r = s++) {\n const a = o[s][0], l = o[s][1], d = o[r][0], h = o[r][1];\n l > n != h > n && t < (d - a) * (n - l) / (h - l) + a && (i = !i);\n }\n return i;\n }\n};\nct(H.POLYGON, _n);\nconst wn = {\n area: (e) => e.geometry.w * e.geometry.h,\n intersects: (e, t, n) => t >= e.geometry.x && t <= e.geometry.x + e.geometry.w && n >= e.geometry.y && n <= e.geometry.y + e.geometry.h\n};\nct(H.RECTANGLE, wn);\nconst bn = (e, t = !1) => {\n const n = typeof e == \"string\" ? e : e.value, o = /^(xywh)=(pixel|percent)?:?(.+?),(.+?),(.+?),(.+)*/g, i = [...n.matchAll(o)][0], [s, r, a, l, d, h, c] = i;\n if (r !== \"xywh\")\n throw new Error(\"Unsupported MediaFragment: \" + n);\n if (a && a !== \"pixel\")\n throw new Error(`Unsupported MediaFragment unit: ${a}`);\n const [g, u, m, w] = [l, d, h, c].map(parseFloat);\n return {\n type: H.RECTANGLE,\n geometry: {\n x: g,\n y: u,\n w: m,\n h: w,\n bounds: {\n minX: g,\n minY: t ? u - w : u,\n maxX: g + m,\n maxY: t ? u : u + w\n }\n }\n };\n}, En = (e) => {\n const { x: t, y: n, w: o, h: i } = e;\n return {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=pixel:${t},${n},${o},${i}`\n };\n}, Kt = \"http://www.w3.org/2000/svg\", _t = (e) => {\n const t = (o) => {\n Array.from(o.attributes).forEach((i) => {\n i.name.startsWith(\"on\") && o.removeAttribute(i.name);\n });\n }, n = e.getElementsByTagName(\"script\");\n return Array.from(n).reverse().forEach((o) => o.parentNode.removeChild(o)), Array.from(e.querySelectorAll(\"*\")).forEach(t), e;\n}, An = (e) => {\n const o = new XMLSerializer().serializeToString(e.documentElement).replace(\"<svg>\", `<svg xmlns=\"${Kt}\">`);\n return new DOMParser().parseFromString(o, \"image/svg+xml\").documentElement;\n}, Tn = (e) => {\n const n = new DOMParser().parseFromString(e, \"image/svg+xml\"), o = n.lookupPrefix(Kt), i = n.lookupNamespaceURI(null);\n return o || i ? _t(n).firstChild : _t(An(n)).firstChild;\n}, Sn = (e) => {\n const [t, n, o] = e.match(/(<polygon points=[\"|'])([^(\"|')]*)/) || [];\n if (!o)\n return;\n const i = o.split(\" \").map((s) => s.split(\",\").map(parseFloat));\n return {\n type: H.POLYGON,\n geometry: {\n points: i,\n bounds: Fe(i)\n }\n };\n}, Mn = (e) => {\n const t = Tn(e), n = parseFloat(t.getAttribute(\"cx\")), o = parseFloat(t.getAttribute(\"cy\")), i = parseFloat(t.getAttribute(\"rx\")), s = parseFloat(t.getAttribute(\"ry\")), r = {\n minX: n - i,\n minY: o - s,\n maxX: n + i,\n maxY: o + s\n };\n return {\n type: H.ELLIPSE,\n geometry: {\n cx: n,\n cy: o,\n rx: i,\n ry: s,\n bounds: r\n }\n };\n}, vn = (e) => {\n const t = typeof e == \"string\" ? e : e.value;\n if (t.includes(\"<polygon points=\"))\n return Sn(t);\n if (t.includes(\"<ellipse \"))\n return Mn(t);\n}, On = (e) => {\n let t;\n if (e.type === H.POLYGON) {\n const n = e.geometry, { points: o } = n;\n t = `<svg><polygon points=\"${o.map((i) => i.join(\",\")).join(\" \")}\" /></svg>`;\n } else if (e.type === H.ELLIPSE) {\n const n = e.geometry;\n t = `<svg><ellipse cx=\"${n.cx}\" cy=\"${n.cy}\" rx=\"${n.rx}\" ry=\"${n.ry}\" /></svg>`;\n }\n if (t)\n return { type: \"SvgSelector\", value: t };\n throw `Unsupported shape type: ${e.type}`;\n};\nlet Xe;\nconst Ln = new Uint8Array(16);\nfunction kn() {\n if (!Xe && (Xe = typeof crypto < \"u\" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !Xe))\n throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return Xe(Ln);\n}\nconst q = [];\nfor (let e = 0; e < 256; ++e)\n q.push((e + 256).toString(16).slice(1));\nfunction Bn(e, t = 0) {\n return q[e[t + 0]] + q[e[t + 1]] + q[e[t + 2]] + q[e[t + 3]] + \"-\" + q[e[t + 4]] + q[e[t + 5]] + \"-\" + q[e[t + 6]] + q[e[t + 7]] + \"-\" + q[e[t + 8]] + q[e[t + 9]] + \"-\" + q[e[t + 10]] + q[e[t + 11]] + q[e[t + 12]] + q[e[t + 13]] + q[e[t + 14]] + q[e[t + 15]];\n}\nconst In = typeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto), wt = {\n randomUUID: In\n};\nfunction dt(e, t, n) {\n if (wt.randomUUID && !t && !e)\n return wt.randomUUID();\n e = e || {};\n const o = e.random || (e.rng || kn)();\n if (o[6] = o[6] & 15 | 64, o[8] = o[8] & 63 | 128, t) {\n n = n || 0;\n for (let i = 0; i < 16; ++i)\n t[n + i] = o[i];\n return t;\n }\n return Bn(o);\n}\nvar bt = Object.prototype.hasOwnProperty;\nfunction fe(e, t) {\n var n, o;\n if (e === t)\n return !0;\n if (e && t && (n = e.constructor) === t.constructor) {\n if (n === Date)\n return e.getTime() === t.getTime();\n if (n === RegExp)\n return e.toString() === t.toString();\n if (n === Array) {\n if ((o = e.length) === t.length)\n for (; o-- && fe(e[o], t[o]); )\n ;\n return o === -1;\n }\n if (!n || typeof e == \"object\") {\n o = 0;\n for (n in e)\n if (bt.call(e, n) && ++o && !bt.call(t, n) || !(n in t) || !fe(e[n], t[n]))\n return !1;\n return Object.keys(t).length === o;\n }\n }\n return e !== e && t !== t;\n}\nfunction Ze() {\n}\nfunction Cn(e, t) {\n return e != e ? t == t : e !== t || e && typeof e == \"object\" || typeof e == \"function\";\n}\nconst ye = [];\nfunction ut(e, t = Ze) {\n let n;\n const o = /* @__PURE__ */ new Set();\n function i(a) {\n if (Cn(e, a) && (e = a, n)) {\n const l = !ye.length;\n for (const d of o)\n d[1](), ye.push(d, e);\n if (l) {\n for (let d = 0; d < ye.length; d += 2)\n ye[d][0](ye[d + 1]);\n ye.length = 0;\n }\n }\n }\n function s(a) {\n i(a(e));\n }\n function r(a, l = Ze) {\n const d = [a, l];\n return o.add(d), o.size === 1 && (n = t(i) || Ze), a(e), () => {\n o.delete(d), o.size === 0 && n && (n(), n = null);\n };\n }\n return { set: i, update: s, subscribe: r };\n}\nconst Pn = (e) => {\n const { subscribe: t, set: n } = ut(null);\n let o = null;\n return t((i) => o = i), e.observe(({ changes: i }) => {\n if (o) {\n i.deleted.some((r) => r.id === o) && n(null);\n const s = i.updated.find(({ oldValue: r }) => r.id === o);\n s && n(s.newValue.id);\n }\n }), {\n get current() {\n return o;\n },\n subscribe: t,\n set: n\n };\n};\nvar Zt = /* @__PURE__ */ ((e) => (e.EDIT = \"EDIT\", e.SELECT = \"SELECT\", e.NONE = \"NONE\", e))(Zt || {});\nconst Qe = { selected: [] }, Rn = (e, t = \"EDIT\") => {\n const { subscribe: n, set: o } = ut(Qe);\n let i = Qe;\n n((c) => i = c);\n const s = () => o(Qe), r = () => {\n var c;\n return ((c = i.selected) == null ? void 0 : c.length) === 0;\n }, a = (c) => {\n if (i.selected.length === 0)\n return !1;\n const g = typeof c == \"string\" ? c : c.id;\n return i.selected.some((u) => u.id === g);\n }, l = (c, g) => {\n const u = e.getAnnotation(c);\n if (u) {\n const m = Yn(u, t);\n o(m === \"EDIT\" ? { selected: [{ id: c, editable: !0 }], pointerEvent: g } : m === \"SELECT\" ? { selected: [{ id: c }], pointerEvent: g } : { selected: [], pointerEvent: g });\n } else\n console.warn(\"Invalid selection: \" + c);\n }, d = (c, g = !0) => {\n const u = Array.isArray(c) ? c : [c], m = u.map((w) => e.getAnnotation(w)).filter((w) => w);\n o({ selected: m.map(({ id: w }) => ({ id: w, editable: g })) }), m.length !== u.length && console.warn(\"Invalid selection\", c);\n }, h = (c) => {\n if (i.selected.length === 0)\n return !1;\n const { selected: g } = i;\n g.filter(({ id: u }) => c.includes(u)).length > 0 && o({ selected: g.filter(({ id: u }) => !c.includes(u)) });\n };\n return e.observe(({ changes: c }) => h(c.deleted.map((g) => g.id))), {\n clear: s,\n clickSelect: l,\n get selected() {\n return i ? [...i.selected] : null;\n },\n get pointerEvent() {\n return i ? i.pointerEvent : null;\n },\n isEmpty: r,\n isSelected: a,\n setSelected: d,\n subscribe: n\n };\n}, Yn = (e, t) => typeof t == \"function\" ? t(e) || \"EDIT\" : t || \"EDIT\", Un = [];\nfor (let e = 0; e < 256; ++e)\n Un.push((e + 256).toString(16).slice(1));\ntypeof crypto < \"u\" && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nconst Dn = (e, t) => {\n const n = new Set(e.bodies.map((o) => o.id));\n return t.bodies.filter((o) => !n.has(o.id));\n}, Xn = (e, t) => {\n const n = new Set(t.bodies.map((o) => o.id));\n return e.bodies.filter((o) => !n.has(o.id));\n}, Nn = (e, t) => t.bodies.map((n) => {\n const o = e.bodies.find((i) => i.id === n.id);\n return { newBody: n, oldBody: o && !fe(o, n) ? o : void 0 };\n}).filter(({ oldBody: n }) => n), Gn = (e, t) => !fe(e.target, t.target), Qt = (e, t) => {\n const n = Dn(e, t), o = Xn(e, t), i = Nn(e, t);\n return {\n oldValue: e,\n newValue: t,\n bodiesCreated: n.length > 0 ? n : void 0,\n bodiesDeleted: o.length > 0 ? o : void 0,\n bodiesUpdated: i.length > 0 ? i : void 0,\n targetUpdated: Gn(e, t) ? { oldTarget: e.target, newTarget: t.target } : void 0\n };\n};\nvar G = /* @__PURE__ */ ((e) => (e.LOCAL = \"LOCAL\", e.REMOTE = \"REMOTE\", e))(G || {});\nconst Vn = (e, t) => {\n var n, o;\n const { changes: i, origin: s } = t;\n if (!(!e.options.origin || e.options.origin === s))\n return !1;\n if (e.options.ignore) {\n const { ignore: r } = e.options, a = (l) => (l == null ? void 0 : l.length) > 0;\n if (!(a(i.created) || a(i.deleted))) {\n const l = (n = i.updated) == null ? void 0 : n.some((h) => a(h.bodiesCreated) || a(h.bodiesDeleted) || a(h.bodiesUpdated)), d = (o = i.updated) == null ? void 0 : o.some((h) => h.targetUpdated);\n if (r === \"BODY_ONLY\" && l && !d || r === \"TARGET_ONLY\" && d && !l)\n return !1;\n }\n }\n if (e.options.annotations) {\n const r = /* @__PURE__ */ new Set([\n ...i.created.map((a) => a.id),\n ...i.deleted.map((a) => a.id),\n ...i.updated.map(({ oldValue: a }) => a.id)\n ]);\n return !!(Array.isArray(e.options.annotations) ? e.options.annotations : [e.options.annotations]).find((a) => r.has(a));\n } else\n return !0;\n}, zn = (e, t) => {\n const n = new Set((e.created || []).map((c) => c.id)), o = new Set((e.updated || []).map(({ newValue: c }) => c.id)), i = new Set((t.created || []).map((c) => c.id)), s = new Set((t.deleted || []).map((c) => c.id)), r = new Set((t.updated || []).map(({ oldValue: c }) => c.id)), a = new Set((t.updated || []).filter(({ oldValue: c }) => n.has(c.id) || o.has(c.id)).map(({ oldValue: c }) => c.id)), l = [\n ...(e.created || []).filter((c) => !s.has(c.id)).map((c) => r.has(c.id) ? t.updated.find(({ oldValue: g }) => g.id === c.id).newValue : c),\n ...t.created || []\n ], d = [\n ...(e.deleted || []).filter((c) => !i.has(c.id)),\n ...(t.deleted || []).filter((c) => !n.has(c.id))\n ], h = [\n ...(e.updated || []).filter(({ newValue: c }) => !s.has(c.id)).map((c) => {\n const { oldValue: g, newValue: u } = c;\n if (r.has(u.id)) {\n const m = t.updated.find((w) => w.oldValue.id === u.id).newValue;\n return Qt(g, m);\n } else\n return c;\n }),\n ...(t.updated || []).filter(({ oldValue: c }) => !a.has(c.id))\n ];\n return { created: l, deleted: d, updated: h };\n}, Fn = (e) => e.id !== void 0, Hn = () => {\n const e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = [], o = (y, T = {}) => n.push({ onChange: y, options: T }), i = (y) => {\n const T = n.findIndex((E) => E.onChange == y);\n T > -1 && n.splice(T, 1);\n }, s = (y, T) => {\n const E = {\n origin: y,\n changes: {\n created: T.created || [],\n updated: T.updated || [],\n deleted: T.deleted || []\n },\n state: [...e.values()]\n };\n n.forEach((v) => {\n Vn(v, E) && v.onChange(E);\n });\n }, r = (y, T = G.LOCAL) => {\n if (e.get(y.id))\n throw Error(`Cannot add annotation ${y.id} - exists already`);\n e.set(y.id, y), y.bodies.forEach((E) => t.set(E.id, y.id)), s(T, { created: [y] });\n }, a = (y, T) => {\n const E = typeof y == \"string\" ? T : y, v = typeof y == \"string\" ? y : y.id, I = e.get(v);\n if (I) {\n const Y = Qt(I, E);\n return v === E.id ? e.set(v, E) : (e.delete(v), e.set(E.id, E)), I.bodies.forEach((Z) => t.delete(Z.id)), E.bodies.forEach((Z) => t.set(Z.id, E.id)), Y;\n } else\n console.warn(`Cannot update annotation ${v} - does not exist`);\n }, l = (y, T = G.LOCAL, E = G.LOCAL) => {\n const v = Fn(T) ? E : T, I = a(y, T);\n I && s(v, { updated: [I] });\n }, d = (y, T = G.LOCAL) => {\n const E = y.reduce((v, I) => {\n const Y = a(I);\n return Y ? [...v, Y] : v;\n }, []);\n E.length > 0 && s(T, { updated: E });\n }, h = (y, T = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const v = {\n ...E,\n bodies: [...E.bodies, y]\n };\n e.set(E.id, v), t.set(y.id, v.id), s(T, { updated: [{\n oldValue: E,\n newValue: v,\n bodiesCreated: [y]\n }] });\n } else\n console.warn(`Attempt to add body to missing annotation: ${y.annotation}`);\n }, c = () => [...e.values()], g = (y = G.LOCAL) => {\n const T = [...e.values()];\n e.clear(), t.clear(), s(y, { deleted: T });\n }, u = (y, T = !0, E = G.LOCAL) => {\n if (T) {\n const v = [...e.values()];\n e.clear(), t.clear(), y.forEach((I) => {\n e.set(I.id, I), I.bodies.forEach((Y) => t.set(Y.id, I.id));\n }), s(E, { created: y, deleted: v });\n } else {\n const v = y.reduce((I, Y) => {\n const Z = e.get(Y.id);\n return Z ? [...I, Z] : I;\n }, []);\n if (v.length > 0)\n throw Error(`Bulk insert would overwrite the following annotations: ${v.map((I) => I.id).join(\", \")}`);\n y.forEach((I) => {\n e.set(I.id, I), I.bodies.forEach((Y) => t.set(Y.id, I.id));\n }), s(E, { created: y });\n }\n }, m = (y) => {\n const T = typeof y == \"string\" ? y : y.id, E = e.get(T);\n if (E)\n return e.delete(T), E.bodies.forEach((v) => t.delete(v.id)), E;\n console.warn(`Attempt to delete missing annotation: ${T}`);\n }, w = (y, T = G.LOCAL) => {\n const E = m(y);\n E && s(T, { deleted: [E] });\n }, b = (y, T = G.LOCAL) => {\n const E = y.reduce((v, I) => {\n const Y = m(I);\n return Y ? [...v, Y] : v;\n }, []);\n E.length > 0 && s(T, { deleted: E });\n }, _ = (y, T = G.LOCAL) => {\n const E = e.get(y.annotation);\n if (E) {\n const v = E.bodies.find((I) => I.id === y.id);\n if (v) {\n t.delete(v.id);\n const I = {\n ...E,\n bodies: E.bodies.filter((Y) => Y.id !== y.id)\n };\n e.set(E.id, I), s(T, { updated: [{\n oldValue: E,\n newValue: I,\n bodiesDeleted: [v]\n }] });\n } else\n console.warn(`Attempt to delete missing body ${y.id} from annotation ${y.annotation}`);\n } else\n console.warn(`Attempt to delete body from missing annotation ${y.annotation}`);\n }, p = (y) => {\n const T = e.get(y);\n return T ? { ...T } : void 0;\n }, A = (y) => {\n const T = t.get(y);\n if (T) {\n const E = p(T).bodies.find((v) => v.id === y);\n if (E)\n return E;\n console.error(`Store integrity error: body ${y} in index, but not in annotation`);\n } else\n console.warn(`Attempt to retrieve missing body: ${y}`);\n }, S = (y, T) => {\n if (y.annotation !== T.annotation)\n throw \"Annotation integrity violation: annotation ID must be the same when updating bodies\";\n const E = e.get(y.annotation);\n if (E) {\n const v = E.bodies.find((Y) => Y.id === y.id), I = {\n ...E,\n bodies: E.bodies.map((Y) => Y.id === v.id ? T : Y)\n };\n return e.set(E.id, I), v.id !== T.id && (t.delete(v.id), t.set(T.id, I.id)), {\n oldValue: E,\n newValue: I,\n bodiesUpdated: [{ oldBody: v, newBody: T }]\n };\n } else\n console.warn(`Attempt to add body to missing annotation ${y.annotation}`);\n }, C = (y, T, E = G.LOCAL) => {\n const v = S(y, T);\n s(E, { updated: [v] });\n }, R = (y, T = G.LOCAL) => {\n const E = y.map((v) => S({ id: v.id, annotation: v.annotation }, v));\n s(T, { updated: E });\n }, X = (y) => {\n const T = e.get(y.annotation);\n if (T) {\n const E = {\n ...T,\n target: {\n ...T.target,\n ...y\n }\n };\n return e.set(T.id, E), {\n oldValue: T,\n newValue: E,\n targetUpdated: {\n oldTarget: T.target,\n newTarget: y\n }\n };\n } else\n console.warn(`Attempt to update target on missing annotation: ${y.annotation}`);\n };\n return {\n addAnnotation: r,\n addBody: h,\n all: c,\n bulkAddAnnotation: u,\n bulkDeleteAnnotation: b,\n bulkUpdateAnnotation: d,\n bulkUpdateBodies: R,\n bulkUpdateTargets: (y, T = G.LOCAL) => {\n const E = y.map(X).filter((v) => v);\n E.length > 0 && s(T, { updated: E });\n },\n clear: g,\n deleteAnnotation: w,\n deleteBody: _,\n getAnnotation: p,\n getBody: A,\n observe: o,\n unobserve: i,\n updateAnnotation: l,\n updateBody: C,\n updateTarget: (y, T = G.LOCAL) => {\n const E = X(y);\n E && s(T, { updated: [E] });\n }\n };\n}, jn = (e) => ({\n ...e,\n subscribe: (t) => {\n const n = (o) => t(o.state);\n return e.observe(n), t(e.all()), () => e.unobserve(n);\n }\n});\nlet qn = () => ({\n emit(e, ...t) {\n let n = this.events[e] || [];\n for (let o = 0, i = n.length; o < i; o++)\n n[o](...t);\n },\n events: {},\n on(e, t) {\n var n;\n return (n = this.events[e]) != null && n.push(t) || (this.events[e] = [t]), () => {\n var o;\n this.events[e] = (o = this.events[e]) == null ? void 0 : o.filter((i) => t !== i);\n };\n }\n});\nconst Wn = 250, Jn = (e) => {\n const t = qn(), n = [];\n let o = -1, i = !1, s = 0;\n const r = (u) => {\n if (!i) {\n const { changes: m } = u, w = performance.now();\n if (w - s > Wn)\n n.splice(o + 1), n.push(m), o = n.length - 1;\n else {\n const b = n.length - 1;\n n[b] = zn(n[b], m);\n }\n s = w;\n }\n i = !1;\n };\n e.observe(r, { origin: G.LOCAL });\n const a = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkDeleteAnnotation(u), l = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkAddAnnotation(u, !1), d = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkUpdateAnnotation(u.map(({ oldValue: m }) => m)), h = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkUpdateAnnotation(u.map(({ newValue: m }) => m)), c = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkAddAnnotation(u, !1), g = (u) => (u == null ? void 0 : u.length) > 0 && e.bulkDeleteAnnotation(u);\n return {\n canRedo: () => n.length - 1 > o,\n canUndo: () => o > -1,\n destroy: () => e.unobserve(r),\n on: (u, m) => t.on(u, m),\n redo: () => {\n if (n.length - 1 > o) {\n i = !0;\n const { created: u, updated: m, deleted: w } = n[o + 1];\n l(u), h(m), g(w), t.emit(\"redo\", n[o + 1]), o += 1;\n }\n },\n undo: () => {\n if (o > -1) {\n i = !0;\n const { created: u, updated: m, deleted: w } = n[o];\n a(u), d(m), c(w), t.emit(\"undo\", n[o]), o -= 1;\n }\n }\n };\n}, Kn = () => {\n const { subscribe: e, set: t } = ut([]);\n return {\n subscribe: e,\n set: t\n };\n}, Zn = (e, t, n, o) => {\n const { store: i, selection: s, hover: r, viewport: a } = e, l = /* @__PURE__ */ new Map();\n let d = [], h, c;\n const g = (_, p) => {\n l.has(_) ? l.get(_).push(p) : l.set(_, [p]);\n }, u = (_, p) => {\n const A = l.get(_);\n A && A.indexOf(p) > 0 && A.splice(A.indexOf(p), 1);\n }, m = (_, p, A) => {\n l.has(_) && setTimeout(() => {\n l.get(_).forEach((S) => {\n if (n) {\n const C = Array.isArray(p) ? p.map((X) => n.serialize(X)) : n.serialize(p), R = A ? A instanceof PointerEvent ? A : n.serialize(A) : void 0;\n S(C, R);\n } else\n S(p, A);\n });\n }, 1);\n }, w = () => {\n const { selected: _ } = s, p = _.map(({ id: A }) => i.getAnnotation(A));\n p.forEach((A) => {\n const S = d.find((C) => C.id === A.id);\n (!S || !fe(S, A)) && m(\"updateAnnotation\", A, S);\n }), d = d.map((A) => p.find(({ id: C }) => C === A.id) || A);\n };\n s.subscribe(({ selected: _ }) => {\n if (!(d.length === 0 && _.length === 0)) {\n if (d.length === 0 && _.length > 0)\n d = _.map(({ id: p }) => i.getAnnotation(p));\n else if (d.length > 0 && _.length === 0)\n d.forEach((p) => {\n const A = i.getAnnotation(p.id);\n A && !fe(A, p) && m(\"updateAnnotation\", A, p);\n }), d = [];\n else {\n const p = new Set(d.map((S) => S.id)), A = new Set(_.map(({ id: S }) => S));\n d.filter((S) => !A.has(S.id)).forEach((S) => {\n const C = i.getAnnotation(S.id);\n C && !fe(C, S) && m(\"updateAnnotation\", C, S);\n }), d = [\n // Remove annotations that were deselected\n ...d.filter((S) => A.has(S.id)),\n // Add editable annotations that were selected\n ..._.filter(({ id: S }) => !p.has(S)).map(({ id: S }) => i.getAnnotation(S))\n ];\n }\n m(\"selectionChanged\", d);\n }\n }), r.subscribe((_) => {\n !h && _ ? m(\"mouseEnterAnnotation\", i.getAnnotation(_)) : h && !_ ? m(\"mouseLeaveAnnotation\", i.getAnnotation(h)) : h && _ && (m(\"mouseLeaveAnnotation\", i.getAnnotation(h)), m(\"mouseEnterAnnotation\", i.getAnnotation(_))), h = _;\n }), a == null || a.subscribe((_) => m(\"viewportIntersect\", _.map(i.getAnnotation))), i.observe((_) => {\n o && (c && clearTimeout(c), c = setTimeout(w, 1e3));\n const { created: p, deleted: A } = _.changes;\n p.forEach((S) => m(\"createAnnotation\", S)), A.forEach((S) => m(\"deleteAnnotation\", S)), _.changes.updated.filter((S) => [\n ...S.bodiesCreated || [],\n ...S.bodiesDeleted || [],\n ...S.bodiesUpdated || []\n ].length > 0).forEach(({ oldValue: S, newValue: C }) => {\n const R = d.find((X) => X.id === S.id) || S;\n d = d.map((X) => X.id === S.id ? C : X), m(\"updateAnnotation\", C, R);\n });\n }, { origin: G.LOCAL }), i.observe((_) => {\n if (d) {\n const p = new Set(d.map((S) => S.id)), A = _.changes.updated.filter(({ newValue: S }) => p.has(S.id)).map(({ newValue: S }) => S);\n A.length > 0 && (d = d.map((S) => A.find((R) => R.id === S.id) || S));\n }\n }, { origin: G.REMOTE });\n const b = (_) => (p) => {\n const { created: A, deleted: S, updated: C } = p;\n A.forEach((R) => m(\"createAnnotation\", R)), S.forEach((R) => m(\"deleteAnnotation\", R)), _ ? C.forEach((R) => m(\"updateAnnotation\", R.oldValue, R.newValue)) : C.forEach((R) => m(\"updateAnnotation\", R.newValue, R.oldValue));\n };\n return t.on(\"undo\", b(!0)), t.on(\"redo\", b(!1)), { on: g, off: u, emit: m };\n}, Qn = (e) => (t) => t.reduce((n, o) => {\n const { parsed: i, error: s } = e.parse(o);\n return s ? {\n parsed: n.parsed,\n failed: [...n.failed, o]\n } : {\n parsed: [...n.parsed, i],\n failed: n.failed\n };\n}, { parsed: [], failed: [] }), xn = (e, t, n) => {\n const { store: o, selection: i } = e, s = (b) => {\n if (n) {\n const { parsed: _, error: p } = n.parse(b);\n _ ? o.addAnnotation(_, G.REMOTE) : console.error(p);\n } else\n o.addAnnotation(b, G.REMOTE);\n }, r = () => i.clear(), a = () => o.clear(), l = (b) => {\n const _ = o.getAnnotation(b);\n return n && _ ? n.serialize(_) : _;\n }, d = () => n ? o.all().map(n.serialize) : o.all(), h = () => {\n var b;\n const _ = (((b = i.selected) == null ? void 0 : b.map((p) => p.id)) || []).map((p) => o.getAnnotation(p));\n return n ? _.map(n.serialize) : _;\n }, c = (b) => fetch(b).then((_) => _.json()).then((_) => (u(_), _)), g = (b) => {\n if (typeof b == \"string\") {\n const _ = o.getAnnotation(b);\n return o.deleteAnnotation(b), n ? n.serialize(_) : _;\n } else {\n const _ = n ? n.parse(b).parsed : b;\n return o.deleteAnnotation(_), b;\n }\n }, u = (b) => {\n if (n) {\n const { parsed: _, failed: p } = Qn(n)(b);\n p.length > 0 && console.warn(`Discarded ${p.length} invalid annotations`, p), o.bulkAddAnnotation(_, !0, G.REMOTE);\n } else\n o.bulkAddAnnotation(b, !0, G.REMOTE);\n }, m = (b) => {\n b ? i.setSelected(b) : i.clear();\n }, w = (b) => {\n if (n) {\n const _ = n.parse(b).parsed, p = n.serialize(o.getAnnotation(_.id));\n return o.updateAnnotation(_), p;\n } else {\n const _ = o.getAnnotation(b.id);\n return o.updateAnnotation(b), _;\n }\n };\n return {\n addAnnotation: s,\n cancelSelected: r,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: d,\n getSelected: h,\n loadAnnotations: c,\n redo: t.redo,\n removeAnnotation: g,\n setAnnotations: u,\n setSelected: m,\n undo: t.undo,\n updateAnnotation: w\n };\n};\nlet $n = (e) => crypto.getRandomValues(new Uint8Array(e)), eo = (e, t, n) => {\n let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * t / e.length);\n return (s = t) => {\n let r = \"\";\n for (; ; ) {\n let a = n(i), l = i;\n for (; l--; )\n if (r += e[a[l] & o] || \"\", r.length === s)\n return r;\n }\n };\n}, to = (e, t = 21) => eo(e, t, $n), no = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((t, n) => (n &= 63, n < 36 ? t += n.toString(36) : n < 62 ? t += (n - 26).toString(36).toUpperCase() : n > 62 ? t += \"-\" : t += \"_\", t), \"\");\nconst oo = () => ({ isGuest: !0, id: to(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), io = (e) => {\n const t = JSON.stringify(e);\n let n = 0;\n for (let o = 0, i = t.length; o < i; o++) {\n let s = t.charCodeAt(o);\n n = (n << 5) - n + s, n |= 0;\n }\n return `${n}`;\n}, so = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {\n const { id: o, type: i, purpose: s, value: r, created: a, creator: l, ...d } = n;\n return {\n id: o || `temp-${io(n)}`,\n annotation: t,\n type: i,\n purpose: s,\n value: r,\n created: a,\n creator: l ? typeof l == \"object\" ? { ...l } : l : void 0,\n ...d\n };\n}), ro = (e) => e.map((t) => {\n var n;\n const o = { ...t };\n return delete o.annotation, (n = o.id) != null && n.startsWith(\"temp-\") && delete o.id, o;\n});\nno();\nconst Di = (e, t = !1) => ({ parse: (i) => lo(i, t), serialize: (i) => ao(i, e) }), lo = (e, t = !1) => {\n const n = e.id || dt(), { body: o, ...i } = e, s = so(o, n), r = Array.isArray(e.target) ? e.target[0] : e.target, a = Array.isArray(r.selector) ? r.selector[0] : r.selector, l = a.type === \"FragmentSelector\" ? bn(a, t) : a.type === \"SvgSelector\" ? vn(a) : void 0;\n return l ? {\n parsed: {\n ...i,\n id: n,\n bodies: s,\n target: {\n ...i.target,\n annotation: n,\n selector: l\n }\n }\n } : {\n error: Error(`Unknown selector type: ${a.type}`)\n };\n}, ao = (e, t) => {\n const n = e.target.selector, o = n.type == H.RECTANGLE ? En(n.geometry) : On(n);\n return {\n ...e,\n \"@context\": \"http://www.w3.org/ns/anno.jsonld\",\n id: e.id,\n type: \"Annotation\",\n body: ro(e.bodies),\n target: {\n source: t,\n selector: o\n }\n };\n};\nfunction Et(e, t, n) {\n const o = e.slice();\n return o[11] = t[n], o[13] = n, o;\n}\nfunction At(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"rect\"), f(t, \"class\", \"a9s-corner-handle\"), f(t, \"x\", n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2), f(t, \"y\", o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2), f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(r, a) {\n B(r, t, a), i || (s = W(t, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O(\n /*idx*/\n e[13]\n ))\n ) && e[10](O(\n /*idx*/\n e[13]\n )).apply(this, arguments);\n }), i = !0);\n },\n p(r, a) {\n e = r, a & /*geom, handleSize*/\n 24 && n !== (n = /*point*/\n e[11][0] - /*handleSize*/\n e[3] / 2) && f(t, \"x\", n), a & /*geom, handleSize*/\n 24 && o !== (o = /*point*/\n e[11][1] - /*handleSize*/\n e[3] / 2) && f(t, \"y\", o), a & /*handleSize*/\n 8 && f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), a & /*handleSize*/\n 8 && f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(r) {\n r && k(t), i = !1, s();\n }\n };\n}\nfunction co(e) {\n let t, n, o, i, s, r, a, l, d, h, c = (\n /*geom*/\n e[4].points\n ), g = [];\n for (let u = 0; u < c.length; u += 1)\n g[u] = At(Et(e, c, u));\n return {\n c() {\n t = U(\"polygon\"), i = $(), s = U(\"polygon\"), a = $();\n for (let u = 0; u < g.length; u += 1)\n g[u].c();\n l = se(), f(t, \"class\", \"a9s-outer\"), f(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(t, \"points\", o = /*geom*/\n e[4].points.map(Tt).join(\" \")), f(s, \"class\", \"a9s-inner a9s-shape-handle\"), f(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(s, \"points\", r = /*geom*/\n e[4].points.map(St).join(\" \"));\n },\n m(u, m) {\n B(u, t, m), B(u, i, m), B(u, s, m), B(u, a, m);\n for (let w = 0; w < g.length; w += 1)\n g[w] && g[w].m(u, m);\n B(u, l, m), d || (h = [\n W(t, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(s, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n })\n ], d = !0);\n },\n p(u, m) {\n if (e = u, m & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && f(t, \"style\", n), m & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].points.map(Tt).join(\" \")) && f(t, \"points\", o), m & /*computedStyle*/\n 2 && f(\n s,\n \"style\",\n /*computedStyle*/\n e[1]\n ), m & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].points.map(St).join(\" \")) && f(s, \"points\", r), m & /*geom, handleSize, grab, Handle*/\n 1048) {\n c = /*geom*/\n e[4].points;\n let w;\n for (w = 0; w < c.length; w += 1) {\n const b = Et(e, c, w);\n g[w] ? g[w].p(b, m) : (g[w] = At(b), g[w].c(), g[w].m(l.parentNode, l));\n }\n for (; w < g.length; w += 1)\n g[w].d(1);\n g.length = c.length;\n }\n },\n d(u) {\n u && k(t), u && k(i), u && k(s), u && k(a), lt(g, u), u && k(l), d = !1, ie(h);\n }\n };\n}\nfunction uo(e) {\n let t, n;\n return t = new $t({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n co,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"change\",\n /*change_handler*/\n e[7]\n ), t.$on(\n \"grab\",\n /*grab_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n he(t.$$.fragment);\n },\n m(o, i) {\n le(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 17434 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n ae(t, o);\n }\n };\n}\nconst Tt = (e) => e.join(\",\"), St = (e) => e.join(\",\");\nfunction fo(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (u, m, w) => {\n let b;\n m === O.SHAPE ? b = u.geometry.points.map(([p, A]) => [p + w[0], A + w[1]]) : b = u.geometry.points.map(([p, A], S) => m === O(S) ? [p + w[0], A + w[1]] : [p, A]);\n const _ = Fe(b);\n return { ...u, geometry: { points: b, bounds: _ } };\n };\n function h(u) {\n Ae.call(this, e, u);\n }\n function c(u) {\n Ae.call(this, e, u);\n }\n function g(u) {\n Ae.call(this, e, u);\n }\n return e.$$set = (u) => {\n \"shape\" in u && n(0, s = u.shape), \"computedStyle\" in u && n(1, r = u.computedStyle), \"transform\" in u && n(2, a = u.transform), \"viewportScale\" in u && n(6, l = u.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n h,\n c,\n g\n ];\n}\nclass ho extends te {\n constructor(t) {\n super(), ee(this, t, fo, uo, K, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nfunction go(e) {\n let t, n, o, i, s, r, a, l, d, h, c, g, u, m, w, b, _, p, A, S, C, R, X, y, T, E, v, I, Y, Z, ge, me, Me, L, J, V, ce, F, de, Pe, qe, Q, Re, Ye, We, x, Ue, De, Je, ht;\n return {\n c() {\n t = U(\"rect\"), a = $(), l = U(\"rect\"), u = $(), m = U(\"rect\"), p = $(), A = U(\"rect\"), X = $(), y = U(\"rect\"), I = $(), Y = U(\"rect\"), Me = $(), L = U(\"rect\"), ce = $(), F = U(\"rect\"), qe = $(), Q = U(\"rect\"), We = $(), x = U(\"rect\"), f(t, \"class\", \"a9s-outer\"), f(t, \"style\", n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(t, \"x\", o = /*geom*/\n e[4].x), f(t, \"y\", i = /*geom*/\n e[4].y), f(t, \"width\", s = /*geom*/\n e[4].w), f(t, \"height\", r = /*geom*/\n e[4].h), f(l, \"class\", \"a9s-inner a9s-shape-handle\"), f(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(l, \"x\", d = /*geom*/\n e[4].x), f(l, \"y\", h = /*geom*/\n e[4].y), f(l, \"width\", c = /*geom*/\n e[4].w), f(l, \"height\", g = /*geom*/\n e[4].h), f(m, \"class\", \"a9s-edge-handle a9s-edge-handle-top\"), f(m, \"x\", w = /*geom*/\n e[4].x), f(m, \"y\", b = /*geom*/\n e[4].y), f(m, \"height\", 1), f(m, \"width\", _ = /*geom*/\n e[4].w), f(A, \"class\", \"a9s-edge-handle a9s-edge-handle-right\"), f(A, \"x\", S = /*geom*/\n e[4].x + /*geom*/\n e[4].w), f(A, \"y\", C = /*geom*/\n e[4].y), f(A, \"height\", R = /*geom*/\n e[4].h), f(A, \"width\", 1), f(y, \"class\", \"a9s-edge-handle a9s-edge-handle-bottom\"), f(y, \"x\", T = /*geom*/\n e[4].x), f(y, \"y\", E = /*geom*/\n e[4].y + /*geom*/\n e[4].h), f(y, \"height\", 1), f(y, \"width\", v = /*geom*/\n e[4].w), f(Y, \"class\", \"a9s-edge-handle a9s-edge-handle-left\"), f(Y, \"x\", Z = /*geom*/\n e[4].x), f(Y, \"y\", ge = /*geom*/\n e[4].y), f(Y, \"height\", me = /*geom*/\n e[4].h), f(Y, \"width\", 1), f(L, \"class\", \"a9s-corner-handle a9s-corner-handle-topleft\"), f(L, \"x\", J = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), f(L, \"y\", V = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), f(\n L,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n L,\n \"width\",\n /*handleSize*/\n e[3]\n ), f(F, \"class\", \"a9s-corner-handle a9s-corner-handle-topright\"), f(F, \"x\", de = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), f(F, \"y\", Pe = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2), f(\n F,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n F,\n \"width\",\n /*handleSize*/\n e[3]\n ), f(Q, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomright\"), f(Q, \"x\", Re = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2), f(Q, \"y\", Ye = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), f(\n Q,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n Q,\n \"width\",\n /*handleSize*/\n e[3]\n ), f(x, \"class\", \"a9s-corner-handle a9s-corner-handle-bottomleft\"), f(x, \"x\", Ue = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2), f(x, \"y\", De = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2), f(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(P, M) {\n B(P, t, M), B(P, a, M), B(P, l, M), B(P, u, M), B(P, m, M), B(P, p, M), B(P, A, M), B(P, X, M), B(P, y, M), B(P, I, M), B(P, Y, M), B(P, Me, M), B(P, L, M), B(P, ce, M), B(P, F, M), B(P, qe, M), B(P, Q, M), B(P, We, M), B(P, x, M), Je || (ht = [\n W(t, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(l, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.SHAPE)\n ) && e[10](O.SHAPE).apply(this, arguments);\n }),\n W(m, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.TOP)\n ) && e[10](O.TOP).apply(this, arguments);\n }),\n W(A, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.RIGHT)\n ) && e[10](O.RIGHT).apply(this, arguments);\n }),\n W(y, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.BOTTOM)\n ) && e[10](O.BOTTOM).apply(this, arguments);\n }),\n W(Y, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.LEFT)\n ) && e[10](O.LEFT).apply(this, arguments);\n }),\n W(L, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.TOP_LEFT)\n ) && e[10](O.TOP_LEFT).apply(this, arguments);\n }),\n W(F, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.TOP_RIGHT)\n ) && e[10](O.TOP_RIGHT).apply(this, arguments);\n }),\n W(Q, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.BOTTOM_RIGHT)\n ) && e[10](O.BOTTOM_RIGHT).apply(this, arguments);\n }),\n W(x, \"pointerdown\", function() {\n j(\n /*grab*/\n e[10](O.BOTTOM_LEFT)\n ) && e[10](O.BOTTOM_LEFT).apply(this, arguments);\n })\n ], Je = !0);\n },\n p(P, M) {\n e = P, M & /*computedStyle*/\n 2 && n !== (n = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0) && f(t, \"style\", n), M & /*geom*/\n 16 && o !== (o = /*geom*/\n e[4].x) && f(t, \"x\", o), M & /*geom*/\n 16 && i !== (i = /*geom*/\n e[4].y) && f(t, \"y\", i), M & /*geom*/\n 16 && s !== (s = /*geom*/\n e[4].w) && f(t, \"width\", s), M & /*geom*/\n 16 && r !== (r = /*geom*/\n e[4].h) && f(t, \"height\", r), M & /*computedStyle*/\n 2 && f(\n l,\n \"style\",\n /*computedStyle*/\n e[1]\n ), M & /*geom*/\n 16 && d !== (d = /*geom*/\n e[4].x) && f(l, \"x\", d), M & /*geom*/\n 16 && h !== (h = /*geom*/\n e[4].y) && f(l, \"y\", h), M & /*geom*/\n 16 && c !== (c = /*geom*/\n e[4].w) && f(l, \"width\", c), M & /*geom*/\n 16 && g !== (g = /*geom*/\n e[4].h) && f(l, \"height\", g), M & /*geom*/\n 16 && w !== (w = /*geom*/\n e[4].x) && f(m, \"x\", w), M & /*geom*/\n 16 && b !== (b = /*geom*/\n e[4].y) && f(m, \"y\", b), M & /*geom*/\n 16 && _ !== (_ = /*geom*/\n e[4].w) && f(m, \"width\", _), M & /*geom*/\n 16 && S !== (S = /*geom*/\n e[4].x + /*geom*/\n e[4].w) && f(A, \"x\", S), M & /*geom*/\n 16 && C !== (C = /*geom*/\n e[4].y) && f(A, \"y\", C), M & /*geom*/\n 16 && R !== (R = /*geom*/\n e[4].h) && f(A, \"height\", R), M & /*geom*/\n 16 && T !== (T = /*geom*/\n e[4].x) && f(y, \"x\", T), M & /*geom*/\n 16 && E !== (E = /*geom*/\n e[4].y + /*geom*/\n e[4].h) && f(y, \"y\", E), M & /*geom*/\n 16 && v !== (v = /*geom*/\n e[4].w) && f(y, \"width\", v), M & /*geom*/\n 16 && Z !== (Z = /*geom*/\n e[4].x) && f(Y, \"x\", Z), M & /*geom*/\n 16 && ge !== (ge = /*geom*/\n e[4].y) && f(Y, \"y\", ge), M & /*geom*/\n 16 && me !== (me = /*geom*/\n e[4].h) && f(Y, \"height\", me), M & /*geom, handleSize*/\n 24 && J !== (J = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && f(L, \"x\", J), M & /*geom, handleSize*/\n 24 && V !== (V = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && f(L, \"y\", V), M & /*handleSize*/\n 8 && f(\n L,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n L,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && de !== (de = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && f(F, \"x\", de), M & /*geom, handleSize*/\n 24 && Pe !== (Pe = /*geom*/\n e[4].y - /*handleSize*/\n e[3] / 2) && f(F, \"y\", Pe), M & /*handleSize*/\n 8 && f(\n F,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n F,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && Re !== (Re = /*geom*/\n e[4].x + /*geom*/\n e[4].w - /*handleSize*/\n e[3] / 2) && f(Q, \"x\", Re), M & /*geom, handleSize*/\n 24 && Ye !== (Ye = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && f(Q, \"y\", Ye), M & /*handleSize*/\n 8 && f(\n Q,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n Q,\n \"width\",\n /*handleSize*/\n e[3]\n ), M & /*geom, handleSize*/\n 24 && Ue !== (Ue = /*geom*/\n e[4].x - /*handleSize*/\n e[3] / 2) && f(x, \"x\", Ue), M & /*geom, handleSize*/\n 24 && De !== (De = /*geom*/\n e[4].y + /*geom*/\n e[4].h - /*handleSize*/\n e[3] / 2) && f(x, \"y\", De), M & /*handleSize*/\n 8 && f(\n x,\n \"height\",\n /*handleSize*/\n e[3]\n ), M & /*handleSize*/\n 8 && f(\n x,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n d(P) {\n P && k(t), P && k(a), P && k(l), P && k(u), P && k(m), P && k(p), P && k(A), P && k(X), P && k(y), P && k(I), P && k(Y), P && k(Me), P && k(L), P && k(ce), P && k(F), P && k(qe), P && k(Q), P && k(We), P && k(x), Je = !1, ie(ht);\n }\n };\n}\nfunction mo(e) {\n let t, n;\n return t = new $t({\n props: {\n shape: (\n /*shape*/\n e[0]\n ),\n transform: (\n /*transform*/\n e[2]\n ),\n editor: (\n /*editor*/\n e[5]\n ),\n $$slots: {\n default: [\n go,\n ({ grab: o }) => ({ 10: o }),\n ({ grab: o }) => o ? 1024 : 0\n ]\n },\n $$scope: { ctx: e }\n }\n }), t.$on(\n \"grab\",\n /*grab_handler*/\n e[7]\n ), t.$on(\n \"change\",\n /*change_handler*/\n e[8]\n ), t.$on(\n \"release\",\n /*release_handler*/\n e[9]\n ), {\n c() {\n he(t.$$.fragment);\n },\n m(o, i) {\n le(t, o, i), n = !0;\n },\n p(o, [i]) {\n const s = {};\n i & /*shape*/\n 1 && (s.shape = /*shape*/\n o[0]), i & /*transform*/\n 4 && (s.transform = /*transform*/\n o[2]), i & /*$$scope, geom, handleSize, grab, computedStyle*/\n 3098 && (s.$$scope = { dirty: i, ctx: o }), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n ae(t, o);\n }\n };\n}\nfunction po(e, t, n) {\n let o, i, { shape: s } = t, { computedStyle: r = void 0 } = t, { transform: a } = t, { viewportScale: l = 1 } = t;\n const d = (u, m, w) => {\n const b = u.geometry.bounds;\n let [_, p] = [b.minX, b.minY], [A, S] = [b.maxX, b.maxY];\n const [C, R] = w;\n if (m === O.SHAPE)\n _ += C, A += C, p += R, S += R;\n else {\n switch (m) {\n case O.TOP:\n case O.TOP_LEFT:\n case O.TOP_RIGHT: {\n p += R;\n break;\n }\n case O.BOTTOM:\n case O.BOTTOM_LEFT:\n case O.BOTTOM_RIGHT: {\n S += R;\n break;\n }\n }\n switch (m) {\n case O.LEFT:\n case O.TOP_LEFT:\n case O.BOTTOM_LEFT: {\n _ += C;\n break;\n }\n case O.RIGHT:\n case O.TOP_RIGHT:\n case O.BOTTOM_RIGHT: {\n A += C;\n break;\n }\n }\n }\n const X = Math.min(_, A), y = Math.min(p, S), T = Math.abs(A - _), E = Math.abs(S - p);\n return {\n ...u,\n geometry: {\n x: X,\n y,\n w: T,\n h: E,\n bounds: {\n minX: X,\n minY: y,\n maxX: X + T,\n maxY: y + E\n }\n }\n };\n };\n function h(u) {\n Ae.call(this, e, u);\n }\n function c(u) {\n Ae.call(this, e, u);\n }\n function g(u) {\n Ae.call(this, e, u);\n }\n return e.$$set = (u) => {\n \"shape\" in u && n(0, s = u.shape), \"computedStyle\" in u && n(1, r = u.computedStyle), \"transform\" in u && n(2, a = u.transform), \"viewportScale\" in u && n(6, l = u.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*shape*/\n 1 && n(4, o = s.geometry), e.$$.dirty & /*viewportScale*/\n 64 && n(3, i = 10 / l);\n }, [\n s,\n r,\n a,\n i,\n o,\n d,\n l,\n h,\n c,\n g\n ];\n}\nclass yo extends te {\n constructor(t) {\n super(), ee(this, t, po, mo, K, {\n shape: 0,\n computedStyle: 1,\n transform: 2,\n viewportScale: 6\n });\n }\n}\nconst xt = /* @__PURE__ */ new Map([\n [H.RECTANGLE, yo],\n [H.POLYGON, ho]\n]), Mt = (e) => xt.get(e.type), _o = (e, t) => xt.set(e, t), O = (e) => `HANDLE-${e}`;\nO.SHAPE = \"SHAPE\";\nO.TOP = \"TOP\";\nO.RIGHT = \"RIGHT\";\nO.BOTTOM = \"BOTTOM\";\nO.LEFT = \"LEFT\";\nO.TOP_LEFT = \"TOP_LEFT\";\nO.TOP_RIGHT = \"TOP_RIGHT\";\nO.BOTTOM_RIGHT = \"BOTTOM_RIGHT\";\nO.BOTTOM_LEFT = \"BOTTOM_LEFT\";\nconst wo = (e) => ({}), vt = (e) => ({ grab: (\n /*onGrab*/\n e[0]\n) });\nfunction bo(e) {\n let t, n, o, i;\n const s = (\n /*#slots*/\n e[7].default\n ), r = sn(\n s,\n e,\n /*$$scope*/\n e[6],\n vt\n );\n return {\n c() {\n t = U(\"g\"), r && r.c(), f(t, \"class\", \"a9s-annotation selected\");\n },\n m(a, l) {\n B(a, t, l), r && r.m(t, null), n = !0, o || (i = [\n W(\n t,\n \"pointerup\",\n /*onRelease*/\n e[2]\n ),\n W(\n t,\n \"pointermove\",\n /*onPointerMove*/\n e[1]\n )\n ], o = !0);\n },\n p(a, [l]) {\n r && r.p && (!n || l & /*$$scope*/\n 64) && ln(\n r,\n s,\n a,\n /*$$scope*/\n a[6],\n n ? rn(\n s,\n /*$$scope*/\n a[6],\n l,\n wo\n ) : an(\n /*$$scope*/\n a[6]\n ),\n vt\n );\n },\n i(a) {\n n || (D(r, a), n = !0);\n },\n o(a) {\n N(r, a), n = !1;\n },\n d(a) {\n a && k(t), r && r.d(a), o = !1, ie(i);\n }\n };\n}\nfunction Eo(e, t, n) {\n let { $$slots: o = {}, $$scope: i } = t;\n const s = Se();\n let { shape: r } = t, { editor: a } = t, { transform: l } = t, d = null, h, c = null;\n const g = (w) => (b) => {\n d = w, h = l.elementToImage(b.offsetX, b.offsetY), c = r, b.target.setPointerCapture(b.pointerId), s(\"grab\");\n }, u = (w) => {\n if (d) {\n const [b, _] = l.elementToImage(w.offsetX, w.offsetY), p = [b - h[0], _ - h[1]];\n n(3, r = a(c, d, p)), s(\"change\", r);\n }\n }, m = (w) => {\n w.target.releasePointerCapture(w.pointerId), d = null, c = r, s(\"release\");\n };\n return e.$$set = (w) => {\n \"shape\" in w && n(3, r = w.shape), \"editor\" in w && n(4, a = w.editor), \"transform\" in w && n(5, l = w.transform), \"$$scope\" in w && n(6, i = w.$$scope);\n }, [g, u, m, r, a, l, i, o];\n}\nclass $t extends te {\n constructor(t) {\n super(), ee(this, t, Eo, bo, K, { shape: 3, editor: 4, transform: 5 });\n }\n}\nconst je = (e, t) => {\n const n = typeof t == \"function\" ? t(e) : t;\n if (n) {\n const { fill: o, fillOpacity: i } = n;\n let s = \"\";\n return o && (s += `fill:${o};stroke:${o};`), s += `fill-opacity:${i || \"0.25\"};`, s;\n }\n};\nfunction Ao(e, t, n) {\n let o;\n const i = Se();\n let { annotation: s } = t, { editor: r } = t, { style: a = void 0 } = t, { target: l } = t, { transform: d } = t, { viewportScale: h } = t, c;\n return Ce(() => (n(6, c = new r({\n target: l,\n props: {\n shape: s.target.selector,\n computedStyle: o,\n transform: d,\n viewportScale: h\n }\n })), c.$on(\"change\", (g) => {\n c.$$set({ shape: g.detail }), i(\"change\", g.detail);\n }), c.$on(\"grab\", (g) => i(\"grab\", g.detail)), c.$on(\"release\", (g) => i(\"release\", g.detail)), () => {\n c.$destroy();\n })), e.$$set = (g) => {\n \"annotation\" in g && n(0, s = g.annotation), \"editor\" in g && n(1, r = g.editor), \"style\" in g && n(2, a = g.style), \"target\" in g && n(3, l = g.target), \"transform\" in g && n(4, d = g.transform), \"viewportScale\" in g && n(5, h = g.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 5 && (o = je(s, a)), e.$$.dirty & /*annotation, editorComponent*/\n 65 && s && (c == null || c.$set({ shape: s.target.selector })), e.$$.dirty & /*editorComponent, transform*/\n 80 && c && c.$set({ transform: d }), e.$$.dirty & /*editorComponent, viewportScale*/\n 96 && c && c.$set({ viewportScale: h });\n }, [s, r, a, l, d, h, c];\n}\nclass To extends te {\n constructor(t) {\n super(), ee(this, t, Ao, null, K, {\n annotation: 0,\n editor: 1,\n style: 2,\n target: 3,\n transform: 4,\n viewportScale: 5\n });\n }\n}\nfunction So(e, t, n) {\n const o = Se();\n let { drawingMode: i } = t, { target: s } = t, { tool: r } = t, { transform: a } = t, { viewportScale: l } = t, d;\n return Ce(() => {\n const h = s.closest(\"svg\"), c = [], g = (u, m, w) => {\n h.addEventListener(u, m, w), c.push(() => h.removeEventListener(u, m, w));\n };\n return n(5, d = new r({\n target: s,\n props: {\n addEventListener: g,\n drawingMode: i,\n transform: a,\n viewportScale: l\n }\n })), d.$on(\"create\", (u) => o(\"create\", u.detail)), () => {\n c.forEach((u) => u()), d.$destroy();\n };\n }), e.$$set = (h) => {\n \"drawingMode\" in h && n(0, i = h.drawingMode), \"target\" in h && n(1, s = h.target), \"tool\" in h && n(2, r = h.tool), \"transform\" in h && n(3, a = h.transform), \"viewportScale\" in h && n(4, l = h.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*toolComponent, transform*/\n 40 && d && d.$set({ transform: a }), e.$$.dirty & /*toolComponent, viewportScale*/\n 48 && d && d.$set({ viewportScale: l });\n }, [i, s, r, a, l, d];\n}\nclass Mo extends te {\n constructor(t) {\n super(), ee(this, t, So, null, K, {\n drawingMode: 0,\n target: 1,\n tool: 2,\n transform: 3,\n viewportScale: 4\n });\n }\n}\nfunction Ot(e) {\n let t, n;\n return {\n c() {\n t = U(\"rect\"), n = U(\"rect\"), f(t, \"class\", \"a9s-outer\"), f(\n t,\n \"x\",\n /*x*/\n e[1]\n ), f(\n t,\n \"y\",\n /*y*/\n e[2]\n ), f(\n t,\n \"width\",\n /*w*/\n e[3]\n ), f(\n t,\n \"height\",\n /*h*/\n e[4]\n ), f(n, \"class\", \"a9s-inner\"), f(\n n,\n \"x\",\n /*x*/\n e[1]\n ), f(\n n,\n \"y\",\n /*y*/\n e[2]\n ), f(\n n,\n \"width\",\n /*w*/\n e[3]\n ), f(\n n,\n \"height\",\n /*h*/\n e[4]\n );\n },\n m(o, i) {\n B(o, t, i), B(o, n, i);\n },\n p(o, i) {\n i & /*x*/\n 2 && f(\n t,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && f(\n t,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && f(\n t,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && f(\n t,\n \"height\",\n /*h*/\n o[4]\n ), i & /*x*/\n 2 && f(\n n,\n \"x\",\n /*x*/\n o[1]\n ), i & /*y*/\n 4 && f(\n n,\n \"y\",\n /*y*/\n o[2]\n ), i & /*w*/\n 8 && f(\n n,\n \"width\",\n /*w*/\n o[3]\n ), i & /*h*/\n 16 && f(\n n,\n \"height\",\n /*h*/\n o[4]\n );\n },\n d(o) {\n o && k(t), o && k(n);\n }\n };\n}\nfunction vo(e) {\n let t, n = (\n /*origin*/\n e[0] && Ot(e)\n );\n return {\n c() {\n t = U(\"g\"), n && n.c(), f(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n B(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*origin*/\n o[0] ? n ? n.p(o, i) : (n = Ot(o), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: z,\n o: z,\n d(o) {\n o && k(t), n && n.d();\n }\n };\n}\nfunction Oo(e, t, n) {\n const o = Se();\n let { addEventListener: i } = t, { drawingMode: s } = t, { transform: r } = t, a, l, d, h, c, g, u;\n const m = (p) => {\n a = performance.now(), s === \"drag\" && (n(0, l = r.elementToImage(p.offsetX, p.offsetY)), d = l, n(1, h = l[0]), n(2, c = l[1]), n(3, g = 1), n(4, u = 1));\n }, w = (p) => {\n l && (d = r.elementToImage(p.offsetX, p.offsetY), n(1, h = Math.min(d[0], l[0])), n(2, c = Math.min(d[1], l[1])), n(3, g = Math.abs(d[0] - l[0])), n(4, u = Math.abs(d[1] - l[1])));\n }, b = (p) => {\n const A = performance.now() - a;\n if (s === \"click\") {\n if (A > 300)\n return;\n p.stopPropagation(), l ? _() : (n(0, l = r.elementToImage(p.offsetX, p.offsetY)), d = l, n(1, h = l[0]), n(2, c = l[1]), n(3, g = 1), n(4, u = 1));\n } else\n l && (A > 300 || g * u > 100 ? (p.stopPropagation(), _()) : (n(0, l = null), d = null));\n }, _ = () => {\n if (g * u > 15) {\n const p = {\n type: H.RECTANGLE,\n geometry: {\n bounds: {\n minX: h,\n minY: c,\n maxX: h + g,\n maxY: c + u\n },\n x: h,\n y: c,\n w: g,\n h: u\n }\n };\n o(\"create\", p);\n }\n n(0, l = null), d = null;\n };\n return Ce(() => {\n i(\"pointerdown\", m), i(\"pointermove\", w), i(\"pointerup\", b, !0);\n }), e.$$set = (p) => {\n \"addEventListener\" in p && n(5, i = p.addEventListener), \"drawingMode\" in p && n(6, s = p.drawingMode), \"transform\" in p && n(7, r = p.transform);\n }, [l, h, c, g, u, i, s, r];\n}\nclass Lo extends te {\n constructor(t) {\n super(), ee(this, t, Oo, vo, K, {\n addEventListener: 5,\n drawingMode: 6,\n transform: 7\n });\n }\n}\nconst xe = (e, t) => {\n const n = Math.abs(t[0] - e[0]), o = Math.abs(t[1] - e[1]);\n return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2));\n}, _e = [];\nfunction ko(e, t = z) {\n let n;\n const o = /* @__PURE__ */ new Set();\n function i(a) {\n if (K(e, a) && (e = a, n)) {\n const l = !_e.length;\n for (const d of o)\n d[1](), _e.push(d, e);\n if (l) {\n for (let d = 0; d < _e.length; d += 2)\n _e[d][0](_e[d + 1]);\n _e.length = 0;\n }\n }\n }\n function s(a) {\n i(a(e));\n }\n function r(a, l = z) {\n const d = [a, l];\n return o.add(d), o.size === 1 && (n = t(i) || z), a(e), () => {\n o.delete(d), o.size === 0 && n && (n(), n = null);\n };\n }\n return { set: i, update: s, subscribe: r };\n}\nconst Bo = (e, t) => {\n const { naturalWidth: n, naturalHeight: o } = e;\n if (!n && !o) {\n const { width: i, height: s } = e;\n t.setAttribute(\"viewBox\", `0 0 ${i} ${s}`), e.addEventListener(\"load\", (r) => {\n const a = r.target;\n t.setAttribute(\"viewBox\", `0 0 ${a.naturalWidth} ${a.naturalHeight}`);\n });\n } else\n t.setAttribute(\"viewBox\", `0 0 ${n} ${o}`);\n}, Io = (e, t) => {\n Bo(e, t);\n const { subscribe: n, set: o } = ko(1);\n let i;\n return window.ResizeObserver && (i = new ResizeObserver(() => {\n const r = t.getBoundingClientRect(), { width: a, height: l } = t.viewBox.baseVal, d = Math.max(\n r.width / a,\n r.height / l\n );\n o(d);\n }), i.observe(t.parentElement)), { destroy: () => {\n i && i.disconnect();\n }, subscribe: n };\n}, Xi = \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\nfunction $e(e) {\n const t = e.slice(), n = (\n /*isClosable*/\n (t[2] ? (\n /*points*/\n t[0]\n ) : [\n .../*points*/\n t[0],\n /*cursor*/\n t[1]\n ]).map((o) => o.join(\",\")).join(\" \")\n );\n return t[15] = n, t;\n}\nfunction Lt(e) {\n let t, n, o, i, s, r = (\n /*isClosable*/\n e[2] && kt(e)\n );\n return {\n c() {\n t = U(\"polygon\"), o = U(\"polygon\"), r && r.c(), s = se(), f(t, \"class\", \"a9s-outer\"), f(t, \"points\", n = /*coords*/\n e[15]), f(o, \"class\", \"a9s-inner\"), f(o, \"points\", i = /*coords*/\n e[15]);\n },\n m(a, l) {\n B(a, t, l), B(a, o, l), r && r.m(a, l), B(a, s, l);\n },\n p(a, l) {\n l & /*isClosable, points, cursor*/\n 7 && n !== (n = /*coords*/\n a[15]) && f(t, \"points\", n), l & /*isClosable, points, cursor*/\n 7 && i !== (i = /*coords*/\n a[15]) && f(o, \"points\", i), /*isClosable*/\n a[2] ? r ? r.p(a, l) : (r = kt(a), r.c(), r.m(s.parentNode, s)) : r && (r.d(1), r = null);\n },\n d(a) {\n a && k(t), a && k(o), r && r.d(a), a && k(s);\n }\n };\n}\nfunction kt(e) {\n let t, n, o;\n return {\n c() {\n t = U(\"rect\"), f(t, \"class\", \"a9s-corner-handle\"), f(t, \"x\", n = /*points*/\n e[0][0][0] - /*handleSize*/\n e[3] / 2), f(t, \"y\", o = /*points*/\n e[0][0][1] - /*handleSize*/\n e[3] / 2), f(\n t,\n \"height\",\n /*handleSize*/\n e[3]\n ), f(\n t,\n \"width\",\n /*handleSize*/\n e[3]\n );\n },\n m(i, s) {\n B(i, t, s);\n },\n p(i, s) {\n s & /*points, handleSize*/\n 9 && n !== (n = /*points*/\n i[0][0][0] - /*handleSize*/\n i[3] / 2) && f(t, \"x\", n), s & /*points, handleSize*/\n 9 && o !== (o = /*points*/\n i[0][0][1] - /*handleSize*/\n i[3] / 2) && f(t, \"y\", o), s & /*handleSize*/\n 8 && f(\n t,\n \"height\",\n /*handleSize*/\n i[3]\n ), s & /*handleSize*/\n 8 && f(\n t,\n \"width\",\n /*handleSize*/\n i[3]\n );\n },\n d(i) {\n i && k(t);\n }\n };\n}\nfunction Co(e) {\n let t, n = (\n /*cursor*/\n e[1] && Lt($e(e))\n );\n return {\n c() {\n t = U(\"g\"), n && n.c(), f(t, \"class\", \"a9s-annotation a9s-rubberband\");\n },\n m(o, i) {\n B(o, t, i), n && n.m(t, null);\n },\n p(o, [i]) {\n /*cursor*/\n o[1] ? n ? n.p($e(o), i) : (n = Lt($e(o)), n.c(), n.m(t, null)) : n && (n.d(1), n = null);\n },\n i: z,\n o: z,\n d(o) {\n o && k(t), n && n.d();\n }\n };\n}\nconst Po = 20;\nfunction Ro(e, t, n) {\n let o;\n const i = Se();\n let { addEventListener: s } = t, { drawingMode: r } = t, { transform: a } = t, { viewportScale: l = 1 } = t, d, h = [], c = null, g = !1;\n const u = (p) => {\n const { timeStamp: A, offsetX: S, offsetY: C } = p;\n if (d = { timeStamp: A, offsetX: S, offsetY: C }, r === \"drag\" && h.length === 0) {\n const R = a.elementToImage(p.offsetX, p.offsetY);\n h.push(R), n(1, c = R);\n }\n }, m = (p) => {\n if (h.length > 0 && (n(1, c = a.elementToImage(p.offsetX, p.offsetY)), h.length > 2)) {\n const A = xe(c, h[0]) * l;\n n(2, g = A < Po);\n }\n }, w = (p) => {\n if (r === \"click\") {\n const A = p.timeStamp - d.timeStamp, S = xe([d.offsetX, d.offsetY], [p.offsetX, p.offsetY]);\n if (A > 300 || S > 15)\n return;\n if (g)\n _();\n else if (h.length === 0) {\n const C = a.elementToImage(p.offsetX, p.offsetY);\n h.push(C), n(1, c = C);\n } else\n h.push(c);\n } else {\n if (h.length === 1 && xe(h[0], c) <= 4) {\n n(0, h = []), n(1, c = null);\n return;\n }\n p.stopImmediatePropagation(), g ? _() : h.push(c);\n }\n }, b = () => {\n const p = [...h, c], A = {\n type: H.POLYGON,\n geometry: { bounds: Fe(p), points: p }\n };\n st(A) > 4 && (n(0, h = []), n(1, c = null), i(\"create\", A));\n }, _ = () => {\n const p = {\n type: H.POLYGON,\n geometry: {\n bounds: Fe(h),\n points: [...h]\n }\n };\n n(0, h = []), n(1, c = null), i(\"create\", p);\n };\n return Ce(() => {\n s(\"pointerdown\", u, !0), s(\"pointermove\", m), s(\"pointerup\", w, !0), s(\"dblclick\", b, !0);\n }), e.$$set = (p) => {\n \"addEventListener\" in p && n(4, s = p.addEventListener), \"drawingMode\" in p && n(5, r = p.drawingMode), \"transform\" in p && n(6, a = p.transform), \"viewportScale\" in p && n(7, l = p.viewportScale);\n }, e.$$.update = () => {\n e.$$.dirty & /*viewportScale*/\n 128 && n(3, o = 10 / l);\n }, [\n h,\n c,\n g,\n o,\n s,\n r,\n a,\n l\n ];\n}\nclass Yo extends te {\n constructor(t) {\n super(), ee(this, t, Ro, Co, K, {\n addEventListener: 4,\n drawingMode: 5,\n transform: 6,\n viewportScale: 7\n });\n }\n}\nconst ft = /* @__PURE__ */ new Map([\n [\"rectangle\", { tool: Lo }],\n [\"polygon\", { tool: Yo }]\n]), rt = () => [...ft.keys()], en = (e) => ft.get(e), Uo = (e, t, n) => ft.set(e, { tool: t, opts: n });\nfunction Do(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"ellipse\"), i = U(\"ellipse\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(\n n,\n \"cx\",\n /*cx*/\n e[2]\n ), f(\n n,\n \"cy\",\n /*cy*/\n e[3]\n ), f(\n n,\n \"rx\",\n /*rx*/\n e[4]\n ), f(\n n,\n \"ry\",\n /*ry*/\n e[5]\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(\n i,\n \"cx\",\n /*cx*/\n e[2]\n ), f(\n i,\n \"cy\",\n /*cy*/\n e[3]\n ), f(\n i,\n \"rx\",\n /*rx*/\n e[4]\n ), f(\n i,\n \"ry\",\n /*ry*/\n e[5]\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n B(r, t, a), re(t, n), re(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*computedStyle*/\n 2 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: z,\n o: z,\n d(r) {\n r && k(t);\n }\n };\n}\nfunction Xo(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { cx: a, cy: l, rx: d, ry: h } = s;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, i = c.annotation), \"geom\" in c && n(6, s = c.geom), \"style\" in c && n(7, r = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(1, o = je(i, r));\n }, [i, o, a, l, d, h, s, r];\n}\nclass No extends te {\n constructor(t) {\n super(), ee(this, t, Xo, Do, K, { annotation: 0, geom: 6, style: 7 });\n }\n}\nfunction Go(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"polygon\"), i = U(\"polygon\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[1] ? \"display:none;\" : void 0), f(\n n,\n \"points\",\n /*points*/\n e[2].map(Vo).join(\" \")\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[1]\n ), f(\n i,\n \"points\",\n /*points*/\n e[2].map(zo).join(\" \")\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n B(r, t, a), re(t, n), re(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 2 && o !== (o = /*computedStyle*/\n r[1] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*computedStyle*/\n 2 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: z,\n o: z,\n d(r) {\n r && k(t);\n }\n };\n}\nconst Vo = (e) => e.join(\",\"), zo = (e) => e.join(\",\");\nfunction Fo(e, t, n) {\n let o, { annotation: i } = t, { geom: s } = t, { style: r = void 0 } = t;\n const { points: a } = s;\n return e.$$set = (l) => {\n \"annotation\" in l && n(0, i = l.annotation), \"geom\" in l && n(3, s = l.geom), \"style\" in l && n(4, r = l.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 17 && n(1, o = je(i, r));\n }, [i, o, a, s, r];\n}\nclass Ho extends te {\n constructor(t) {\n super(), ee(this, t, Fo, Go, K, { annotation: 0, geom: 3, style: 4 });\n }\n}\nfunction jo(e) {\n let t, n, o, i, s;\n return {\n c() {\n t = U(\"g\"), n = U(\"rect\"), i = U(\"rect\"), f(n, \"class\", \"a9s-outer\"), f(n, \"style\", o = /*computedStyle*/\n e[5] ? \"display:none;\" : void 0), f(\n n,\n \"x\",\n /*x*/\n e[4]\n ), f(\n n,\n \"y\",\n /*y*/\n e[3]\n ), f(\n n,\n \"width\",\n /*w*/\n e[2]\n ), f(\n n,\n \"height\",\n /*h*/\n e[1]\n ), f(i, \"class\", \"a9s-inner\"), f(\n i,\n \"style\",\n /*computedStyle*/\n e[5]\n ), f(\n i,\n \"x\",\n /*x*/\n e[4]\n ), f(\n i,\n \"y\",\n /*y*/\n e[3]\n ), f(\n i,\n \"width\",\n /*w*/\n e[2]\n ), f(\n i,\n \"height\",\n /*h*/\n e[1]\n ), f(t, \"data-id\", s = /*annotation*/\n e[0].id);\n },\n m(r, a) {\n B(r, t, a), re(t, n), re(t, i);\n },\n p(r, [a]) {\n a & /*computedStyle*/\n 32 && o !== (o = /*computedStyle*/\n r[5] ? \"display:none;\" : void 0) && f(n, \"style\", o), a & /*x*/\n 16 && f(\n n,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && f(\n n,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && f(\n n,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && f(\n n,\n \"height\",\n /*h*/\n r[1]\n ), a & /*computedStyle*/\n 32 && f(\n i,\n \"style\",\n /*computedStyle*/\n r[5]\n ), a & /*x*/\n 16 && f(\n i,\n \"x\",\n /*x*/\n r[4]\n ), a & /*y*/\n 8 && f(\n i,\n \"y\",\n /*y*/\n r[3]\n ), a & /*w*/\n 4 && f(\n i,\n \"width\",\n /*w*/\n r[2]\n ), a & /*h*/\n 2 && f(\n i,\n \"height\",\n /*h*/\n r[1]\n ), a & /*annotation*/\n 1 && s !== (s = /*annotation*/\n r[0].id) && f(t, \"data-id\", s);\n },\n i: z,\n o: z,\n d(r) {\n r && k(t);\n }\n };\n}\nfunction qo(e, t, n) {\n let o, i, s, r, a, { annotation: l } = t, { geom: d } = t, { style: h = void 0 } = t;\n return e.$$set = (c) => {\n \"annotation\" in c && n(0, l = c.annotation), \"geom\" in c && n(6, d = c.geom), \"style\" in c && n(7, h = c.style);\n }, e.$$.update = () => {\n e.$$.dirty & /*annotation, style*/\n 129 && n(5, o = je(l, h)), e.$$.dirty & /*geom*/\n 64 && n(4, { x: i, y: s, w: r, h: a } = d, i, (n(3, s), n(6, d)), (n(2, r), n(6, d)), (n(1, a), n(6, d)));\n }, [l, a, r, s, i, o, d, h];\n}\nclass Wo extends te {\n constructor(t) {\n super(), ee(this, t, qo, jo, K, { annotation: 0, geom: 6, style: 7 });\n }\n}\nconst Ni = {\n elementToImage: (e, t) => [e, t]\n}, Jo = (e) => ({\n elementToImage: (t, n) => {\n const o = e.getBoundingClientRect(), i = e.createSVGPoint();\n i.x = t + o.x, i.y = n + o.y;\n const { x: s, y: r } = i.matrixTransform(e.getScreenCTM().inverse());\n return [s, r];\n }\n}), Ko = 250, Zo = (e, t) => {\n const n = Se();\n let o;\n return { onPointerDown: () => o = performance.now(), onPointerUp: (r) => {\n if (performance.now() - o < Ko) {\n const { x: l, y: d } = Qo(r, e), h = t.getAt(l, d);\n h ? n(\"click\", { originalEvent: r, annotation: h }) : n(\"click\", { originalEvent: r });\n }\n } };\n}, Qo = (e, t) => {\n const n = t.createSVGPoint(), o = t.getBoundingClientRect(), i = e.clientX - o.x, s = e.clientY - o.y, { left: r, top: a } = t.getBoundingClientRect();\n return n.x = i + r, n.y = s + a, n.matrixTransform(t.getScreenCTM().inverse());\n};\nfunction Bt(e, t, n) {\n const o = e.slice();\n return o[29] = t[n], o;\n}\nfunction It(e, t, n) {\n const o = e.slice();\n return o[32] = t[n], o;\n}\nfunction et(e) {\n const t = e.slice(), n = (\n /*annotation*/\n t[32].target.selector\n );\n return t[35] = n, t;\n}\nfunction Ct(e) {\n let t = (\n /*annotation*/\n e[32].id\n ), n, o, i = Pt(e);\n return {\n c() {\n i.c(), n = se();\n },\n m(s, r) {\n i.m(s, r), B(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*$store*/\n 8192 && K(t, t = /*annotation*/\n s[32].id) ? (ne(), N(i, 1, 1, z), oe(), i = Pt(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n s && k(n), i.d(s);\n }\n };\n}\nfunction xo(e) {\n let t, n;\n return t = new Ho({\n props: {\n annotation: (\n /*annotation*/\n e[32]\n ),\n geom: (\n /*selector*/\n e[35].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n he(t.$$.fragment);\n },\n m(o, i) {\n le(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 8192 && (s.annotation = /*annotation*/\n o[32]), i[0] & /*$store*/\n 8192 && (s.geom = /*selector*/\n o[35].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n ae(t, o);\n }\n };\n}\nfunction $o(e) {\n let t, n;\n return t = new Wo({\n props: {\n annotation: (\n /*annotation*/\n e[32]\n ),\n geom: (\n /*selector*/\n e[35].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n he(t.$$.fragment);\n },\n m(o, i) {\n le(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 8192 && (s.annotation = /*annotation*/\n o[32]), i[0] & /*$store*/\n 8192 && (s.geom = /*selector*/\n o[35].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n ae(t, o);\n }\n };\n}\nfunction ei(e) {\n let t, n;\n return t = new No({\n props: {\n annotation: (\n /*annotation*/\n e[32]\n ),\n geom: (\n /*selector*/\n e[35].geometry\n ),\n style: (\n /*style*/\n e[1]\n )\n }\n }), {\n c() {\n he(t.$$.fragment);\n },\n m(o, i) {\n le(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*$store*/\n 8192 && (s.annotation = /*annotation*/\n o[32]), i[0] & /*$store*/\n 8192 && (s.geom = /*selector*/\n o[35].geometry), i[0] & /*style*/\n 2 && (s.style = /*style*/\n o[1]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n ae(t, o);\n }\n };\n}\nfunction Pt(e) {\n let t, n, o, i;\n const s = [ei, $o, xo], r = [];\n function a(l, d) {\n return (\n /*selector*/\n l[35].type === H.ELLIPSE ? 0 : (\n /*selector*/\n l[35].type === H.RECTANGLE ? 1 : (\n /*selector*/\n l[35].type === H.POLYGON ? 2 : -1\n )\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = se();\n },\n m(l, d) {\n ~t && r[t].m(l, d), B(l, o, d), i = !0;\n },\n p(l, d) {\n let h = t;\n t = a(l), t === h ? ~t && r[t].p(l, d) : (n && (ne(), N(r[h], 1, 1, () => {\n r[h] = null;\n }), oe()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), D(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (D(n), i = !0);\n },\n o(l) {\n N(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && k(o);\n }\n };\n}\nfunction Rt(e) {\n let t = !/*isEditable*/\n e[7](\n /*annotation*/\n e[32]\n ), n, o, i = t && Ct(et(e));\n return {\n c() {\n i && i.c(), n = se();\n },\n m(s, r) {\n i && i.m(s, r), B(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*isEditable, $store*/\n 8320 && (t = !/*isEditable*/\n s[7](\n /*annotation*/\n s[32]\n )), t ? i ? (i.p(et(s), r), r[0] & /*isEditable, $store*/\n 8320 && D(i, 1)) : (i = Ct(et(s)), i.c(), D(i, 1), i.m(n.parentNode, n)) : i && (ne(), N(i, 1, 1, () => {\n i = null;\n }), oe());\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n i && i.d(s), s && k(n);\n }\n };\n}\nfunction Yt(e) {\n let t, n, o, i;\n const s = [ni, ti], r = [];\n function a(l, d) {\n return (\n /*editableAnnotations*/\n l[6] ? 0 : (\n /*tool*/\n l[12] && /*drawingEnabled*/\n l[0] ? 1 : -1\n )\n );\n }\n return ~(t = a(e)) && (n = r[t] = s[t](e)), {\n c() {\n n && n.c(), o = se();\n },\n m(l, d) {\n ~t && r[t].m(l, d), B(l, o, d), i = !0;\n },\n p(l, d) {\n let h = t;\n t = a(l), t === h ? ~t && r[t].p(l, d) : (n && (ne(), N(r[h], 1, 1, () => {\n r[h] = null;\n }), oe()), ~t ? (n = r[t], n ? n.p(l, d) : (n = r[t] = s[t](l), n.c()), D(n, 1), n.m(o.parentNode, o)) : n = null);\n },\n i(l) {\n i || (D(n), i = !0);\n },\n o(l) {\n N(n), i = !1;\n },\n d(l) {\n ~t && r[t].d(l), l && k(o);\n }\n };\n}\nfunction ti(e) {\n let t = (\n /*toolName*/\n e[2]\n ), n, o, i = Ut(e);\n return {\n c() {\n i.c(), n = se();\n },\n m(s, r) {\n i.m(s, r), B(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*toolName*/\n 4 && K(t, t = /*toolName*/\n s[2]) ? (ne(), N(i, 1, 1, z), oe(), i = Ut(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n s && k(n), i.d(s);\n }\n };\n}\nfunction ni(e) {\n let t, n, o = (\n /*editableAnnotations*/\n e[6]\n ), i = [];\n for (let r = 0; r < o.length; r += 1)\n i[r] = Xt(Bt(e, o, r));\n const s = (r) => N(i[r], 1, 1, () => {\n i[r] = null;\n });\n return {\n c() {\n for (let r = 0; r < i.length; r += 1)\n i[r].c();\n t = se();\n },\n m(r, a) {\n for (let l = 0; l < i.length; l += 1)\n i[l] && i[l].m(r, a);\n B(r, t, a), n = !0;\n },\n p(r, a) {\n if (a[0] & /*editableAnnotations, drawingEl, style, transform, $scale, onChangeSelected*/\n 279634) {\n o = /*editableAnnotations*/\n r[6];\n let l;\n for (l = 0; l < o.length; l += 1) {\n const d = Bt(r, o, l);\n i[l] ? (i[l].p(d, a), D(i[l], 1)) : (i[l] = Xt(d), i[l].c(), D(i[l], 1), i[l].m(t.parentNode, t));\n }\n for (ne(), l = o.length; l < i.length; l += 1)\n s(l);\n oe();\n }\n },\n i(r) {\n if (!n) {\n for (let a = 0; a < o.length; a += 1)\n D(i[a]);\n n = !0;\n }\n },\n o(r) {\n i = i.filter(Boolean);\n for (let a = 0; a < i.length; a += 1)\n N(i[a]);\n n = !1;\n },\n d(r) {\n lt(i, r), r && k(t);\n }\n };\n}\nfunction Ut(e) {\n let t, n;\n return t = new Mo({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n tool: (\n /*tool*/\n e[12]\n ),\n drawingMode: (\n /*drawingMode*/\n e[11]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[14]\n )\n }\n }), t.$on(\n \"create\",\n /*onSelectionCreated*/\n e[17]\n ), {\n c() {\n he(t.$$.fragment);\n },\n m(o, i) {\n le(t, o, i), n = !0;\n },\n p(o, i) {\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n o[4]), i[0] & /*tool*/\n 4096 && (s.tool = /*tool*/\n o[12]), i[0] & /*drawingMode*/\n 2048 && (s.drawingMode = /*drawingMode*/\n o[11]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n o[10]), i[0] & /*$scale*/\n 16384 && (s.viewportScale = /*$scale*/\n o[14]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n ae(t, o);\n }\n };\n}\nfunction Dt(e) {\n let t, n;\n return t = new To({\n props: {\n target: (\n /*drawingEl*/\n e[4]\n ),\n editor: Mt(\n /*editable*/\n e[29].target.selector\n ),\n annotation: (\n /*editable*/\n e[29]\n ),\n style: (\n /*style*/\n e[1]\n ),\n transform: (\n /*transform*/\n e[10]\n ),\n viewportScale: (\n /*$scale*/\n e[14]\n )\n }\n }), t.$on(\"change\", function() {\n j(\n /*onChangeSelected*/\n e[18](\n /*editable*/\n e[29]\n )\n ) && e[18](\n /*editable*/\n e[29]\n ).apply(this, arguments);\n }), {\n c() {\n he(t.$$.fragment);\n },\n m(o, i) {\n le(t, o, i), n = !0;\n },\n p(o, i) {\n e = o;\n const s = {};\n i[0] & /*drawingEl*/\n 16 && (s.target = /*drawingEl*/\n e[4]), i[0] & /*editableAnnotations*/\n 64 && (s.editor = Mt(\n /*editable*/\n e[29].target.selector\n )), i[0] & /*editableAnnotations*/\n 64 && (s.annotation = /*editable*/\n e[29]), i[0] & /*style*/\n 2 && (s.style = /*style*/\n e[1]), i[0] & /*transform*/\n 1024 && (s.transform = /*transform*/\n e[10]), i[0] & /*$scale*/\n 16384 && (s.viewportScale = /*$scale*/\n e[14]), t.$set(s);\n },\n i(o) {\n n || (D(t.$$.fragment, o), n = !0);\n },\n o(o) {\n N(t.$$.fragment, o), n = !1;\n },\n d(o) {\n ae(t, o);\n }\n };\n}\nfunction Xt(e) {\n let t = (\n /*editable*/\n e[29].id\n ), n, o, i = Dt(e);\n return {\n c() {\n i.c(), n = se();\n },\n m(s, r) {\n i.m(s, r), B(s, n, r), o = !0;\n },\n p(s, r) {\n r[0] & /*editableAnnotations*/\n 64 && K(t, t = /*editable*/\n s[29].id) ? (ne(), N(i, 1, 1, z), oe(), i = Dt(s), i.c(), D(i, 1), i.m(n.parentNode, n)) : i.p(s, r);\n },\n i(s) {\n o || (D(i), o = !0);\n },\n o(s) {\n N(i), o = !1;\n },\n d(s) {\n s && k(n), i.d(s);\n }\n };\n}\nfunction oi(e) {\n let t, n, o, i, s, r, a = (\n /*$store*/\n e[13]\n ), l = [];\n for (let c = 0; c < a.length; c += 1)\n l[c] = Rt(It(e, a, c));\n const d = (c) => N(l[c], 1, 1, () => {\n l[c] = null;\n });\n let h = (\n /*drawingEl*/\n e[4] && Yt(e)\n );\n return {\n c() {\n t = U(\"svg\"), n = U(\"g\");\n for (let c = 0; c < l.length; c += 1)\n l[c].c();\n o = U(\"g\"), h && h.c(), f(o, \"class\", \"drawing\"), f(t, \"class\", \"a9s-annotationlayer\"), pt(\n t,\n \"drawing\",\n /*tool*/\n e[12]\n );\n },\n m(c, g) {\n B(c, t, g), re(t, n);\n for (let u = 0; u < l.length; u += 1)\n l[u] && l[u].m(n, null);\n re(t, o), h && h.m(o, null), e[25](o), e[26](t), i = !0, s || (r = [\n W(t, \"pointerup\", function() {\n j(\n /*onPointerUp*/\n e[8]\n ) && e[8].apply(this, arguments);\n }),\n W(t, \"pointerdown\", function() {\n j(\n /*onPointerDown*/\n e[9]\n ) && e[9].apply(this, arguments);\n })\n ], s = !0);\n },\n p(c, g) {\n if (e = c, g[0] & /*$store, style, isEditable*/\n 8322) {\n a = /*$store*/\n e[13];\n let u;\n for (u = 0; u < a.length; u += 1) {\n const m = It(e, a, u);\n l[u] ? (l[u].p(m, g), D(l[u], 1)) : (l[u] = Rt(m), l[u].c(), D(l[u], 1), l[u].m(n, null));\n }\n for (ne(), u = a.length; u < l.length; u += 1)\n d(u);\n oe();\n }\n /*drawingEl*/\n e[4] ? h ? (h.p(e, g), g[0] & /*drawingEl*/\n 16 && D(h, 1)) : (h = Yt(e), h.c(), D(h, 1), h.m(o, null)) : h && (ne(), N(h, 1, 1, () => {\n h = null;\n }), oe()), (!i || g[0] & /*tool*/\n 4096) && pt(\n t,\n \"drawing\",\n /*tool*/\n e[12]\n );\n },\n i(c) {\n if (!i) {\n for (let g = 0; g < a.length; g += 1)\n D(l[g]);\n D(h), i = !0;\n }\n },\n o(c) {\n l = l.filter(Boolean);\n for (let g = 0; g < l.length; g += 1)\n N(l[g]);\n N(h), i = !1;\n },\n d(c) {\n c && k(t), lt(l, c), h && h.d(), e[25](null), e[26](null), s = !1, ie(r);\n }\n };\n}\nfunction ii(e, t, n) {\n let o, i, s, r, a, l, d, h, c, g, u = z, m = () => (u(), u = Ht(y, (L) => n(14, g = L)), y);\n e.$$.on_destroy.push(() => u());\n let { drawingEnabled: w } = t, { image: b } = t, { preferredDrawingMode: _ } = t, { state: p } = t, { style: A = void 0 } = t, { toolName: S = rt().length > 0 ? rt()[0] : void 0 } = t, { user: C } = t, R, X, y;\n Ce(() => m(n(5, y = Io(b, X))));\n const { selection: T, store: E } = p;\n mt(e, T, (L) => n(24, h = L)), mt(e, E, (L) => n(13, c = L));\n let v = null, I = null;\n const Y = (L) => {\n E.unobserve(v);\n const J = L.filter(({ editable: V }) => V).map(({ id: V }) => V);\n J.length > 0 ? (n(6, I = J.map((V) => E.getAnnotation(V))), v = (V) => {\n const { updated: ce } = V.changes;\n n(6, I = ce.map((F) => F.newValue));\n }, E.observe(v, { annotations: J })) : n(6, I = null);\n }, Z = (L) => {\n const J = dt(), V = {\n id: J,\n bodies: [],\n target: {\n annotation: J,\n selector: L.detail,\n creator: C,\n created: /* @__PURE__ */ new Date()\n }\n };\n E.addAnnotation(V), T.setSelected(V.id);\n }, ge = (L) => (J) => {\n var de;\n const { target: V } = L, ce = 10 * 60 * 1e3, F = ((de = V.creator) == null ? void 0 : de.id) !== C.id || !V.created || (/* @__PURE__ */ new Date()).getTime() - V.created.getTime() > ce;\n E.updateTarget({\n ...V,\n selector: J.detail,\n created: F ? V.created : /* @__PURE__ */ new Date(),\n updated: F ? /* @__PURE__ */ new Date() : null,\n updatedBy: F ? C : null\n });\n };\n function me(L) {\n ze[L ? \"unshift\" : \"push\"](() => {\n R = L, n(4, R);\n });\n }\n function Me(L) {\n ze[L ? \"unshift\" : \"push\"](() => {\n X = L, n(3, X);\n });\n }\n return e.$$set = (L) => {\n \"drawingEnabled\" in L && n(0, w = L.drawingEnabled), \"image\" in L && n(19, b = L.image), \"preferredDrawingMode\" in L && n(20, _ = L.preferredDrawingMode), \"state\" in L && n(21, p = L.state), \"style\" in L && n(1, A = L.style), \"toolName\" in L && n(2, S = L.toolName), \"user\" in L && n(22, C = L.user);\n }, e.$$.update = () => {\n e.$$.dirty[0] & /*toolName*/\n 4 && n(12, { tool: o, opts: i } = en(S), o, (n(23, i), n(2, S))), e.$$.dirty[0] & /*opts, preferredDrawingMode*/\n 9437184 && n(11, s = (i == null ? void 0 : i.drawingMode) || _), e.$$.dirty[0] & /*svgEl*/\n 8 && n(10, r = Jo(X)), e.$$.dirty[0] & /*svgEl*/\n 8 && n(9, { onPointerDown: a, onPointerUp: l } = Zo(X, E), a, (n(8, l), n(3, X))), e.$$.dirty[0] & /*$selection*/\n 16777216 && n(7, d = (L) => h.selected.find((J) => J.id === L.id && J.editable)), e.$$.dirty[0] & /*$selection*/\n 16777216 && Y(h.selected);\n }, [\n w,\n A,\n S,\n X,\n R,\n y,\n I,\n d,\n l,\n a,\n r,\n s,\n o,\n c,\n g,\n T,\n E,\n Z,\n ge,\n b,\n _,\n p,\n C,\n i,\n h,\n me,\n Me\n ];\n}\nclass si extends te {\n constructor(t) {\n super(), ee(\n this,\n t,\n ii,\n oi,\n K,\n {\n drawingEnabled: 0,\n image: 19,\n preferredDrawingMode: 20,\n state: 21,\n style: 1,\n toolName: 2,\n user: 22\n },\n null,\n [-1, -1]\n );\n }\n}\nfunction ri(e, t, n, o, i) {\n tn(e, t, n || 0, o || e.length - 1, i || li);\n}\nfunction tn(e, t, n, o, i) {\n for (; o > n; ) {\n if (o - n > 600) {\n var s = o - n + 1, r = t - n + 1, a = Math.log(s), l = 0.5 * Math.exp(2 * a / 3), d = 0.5 * Math.sqrt(a * l * (s - l) / s) * (r - s / 2 < 0 ? -1 : 1), h = Math.max(n, Math.floor(t - r * l / s + d)), c = Math.min(o, Math.floor(t + (s - r) * l / s + d));\n tn(e, t, h, c, i);\n }\n var g = e[t], u = n, m = o;\n for (ve(e, n, t), i(e[o], g) > 0 && ve(e, n, o); u < m; ) {\n for (ve(e, u, m), u++, m--; i(e[u], g) < 0; )\n u++;\n for (; i(e[m], g) > 0; )\n m--;\n }\n i(e[n], g) === 0 ? ve(e, n, m) : (m++, ve(e, m, o)), m <= t && (n = m + 1), t <= m && (o = m - 1);\n }\n}\nfunction ve(e, t, n) {\n var o = e[t];\n e[t] = e[n], e[n] = o;\n}\nfunction li(e, t) {\n return e < t ? -1 : e > t ? 1 : 0;\n}\nclass ai {\n constructor(t = 9) {\n this._maxEntries = Math.max(4, t), this._minEntries = Math.max(2, Math.ceil(this._maxEntries * 0.4)), this.clear();\n }\n all() {\n return this._all(this.data, []);\n }\n search(t) {\n let n = this.data;\n const o = [];\n if (!Ge(t, n))\n return o;\n const i = this.toBBox, s = [];\n for (; n; ) {\n for (let r = 0; r < n.children.length; r++) {\n const a = n.children[r], l = n.leaf ? i(a) : a;\n Ge(t, l) && (n.leaf ? o.push(a) : nt(t, l) ? this._all(a, o) : s.push(a));\n }\n n = s.pop();\n }\n return o;\n }\n collides(t) {\n let n = this.data;\n if (!Ge(t, n))\n return !1;\n const o = [];\n for (; n; ) {\n for (let i = 0; i < n.children.length; i++) {\n const s = n.children[i], r = n.leaf ? this.toBBox(s) : s;\n if (Ge(t, r)) {\n if (n.leaf || nt(t, r))\n return !0;\n o.push(s);\n }\n }\n n = o.pop();\n }\n return !1;\n }\n load(t) {\n if (!(t && t.length))\n return this;\n if (t.length < this._minEntries) {\n for (let o = 0; o < t.length; o++)\n this.insert(t[o]);\n return this;\n }\n let n = this._build(t.slice(), 0, t.length - 1, 0);\n if (!this.data.children.length)\n this.data = n;\n else if (this.data.height === n.height)\n this._splitRoot(this.data, n);\n else {\n if (this.data.height < n.height) {\n const o = this.data;\n this.data = n, n = o;\n }\n this._insert(n, this.data.height - n.height - 1, !0);\n }\n return this;\n }\n insert(t) {\n return t && this._insert(t, this.data.height - 1), this;\n }\n clear() {\n return this.data = Ee([]), this;\n }\n remove(t, n) {\n if (!t)\n return this;\n let o = this.data;\n const i = this.toBBox(t), s = [], r = [];\n let a, l, d;\n for (; o || s.length; ) {\n if (o || (o = s.pop(), l = s[s.length - 1], a = r.pop(), d = !0), o.leaf) {\n const h = ci(t, o.children, n);\n if (h !== -1)\n return o.children.splice(h, 1), s.push(o), this._condense(s), this;\n }\n !d && !o.leaf && nt(o, i) ? (s.push(o), r.push(a), a = 0, l = o, o = o.children[0]) : l ? (a++, o = l.children[a], d = !1) : o = null;\n }\n return this;\n }\n toBBox(t) {\n return t;\n }\n compareMinX(t, n) {\n return t.minX - n.minX;\n }\n compareMinY(t, n) {\n return t.minY - n.minY;\n }\n toJSON() {\n return this.data;\n }\n fromJSON(t) {\n return this.data = t, this;\n }\n _all(t, n) {\n const o = [];\n for (; t; )\n t.leaf ? n.push(...t.children) : o.push(...t.children), t = o.pop();\n return n;\n }\n _build(t, n, o, i) {\n const s = o - n + 1;\n let r = this._maxEntries, a;\n if (s <= r)\n return a = Ee(t.slice(n, o + 1)), we(a, this.toBBox), a;\n i || (i = Math.ceil(Math.log(s) / Math.log(r)), r = Math.ceil(s / Math.pow(r, i - 1))), a = Ee([]), a.leaf = !1, a.height = i;\n const l = Math.ceil(s / r), d = l * Math.ceil(Math.sqrt(r));\n Nt(t, n, o, d, this.compareMinX);\n for (let h = n; h <= o; h += d) {\n const c = Math.min(h + d - 1, o);\n Nt(t, h, c, l, this.compareMinY);\n for (let g = h; g <= c; g += l) {\n const u = Math.min(g + l - 1, c);\n a.children.push(this._build(t, g, u, i - 1));\n }\n }\n return we(a, this.toBBox), a;\n }\n _chooseSubtree(t, n, o, i) {\n for (; i.push(n), !(n.leaf || i.length - 1 === o); ) {\n let s = 1 / 0, r = 1 / 0, a;\n for (let l = 0; l < n.children.length; l++) {\n const d = n.children[l], h = tt(d), c = fi(t, d) - h;\n c < r ? (r = c, s = h < s ? h : s, a = d) : c === r && h < s && (s = h, a = d);\n }\n n = a || n.children[0];\n }\n return n;\n }\n _insert(t, n, o) {\n const i = o ? t : this.toBBox(t), s = [], r = this._chooseSubtree(i, this.data, n, s);\n for (r.children.push(t), Le(r, i); n >= 0 && s[n].children.length > this._maxEntries; )\n this._split(s, n), n--;\n this._adjustParentBBoxes(i, s, n);\n }\n // split overflowed node into two\n _split(t, n) {\n const o = t[n], i = o.children.length, s = this._minEntries;\n this._chooseSplitAxis(o, s, i);\n const r = this._chooseSplitIndex(o, s, i), a = Ee(o.children.splice(r, o.children.length - r));\n a.height = o.height, a.leaf = o.leaf, we(o, this.toBBox), we(a, this.toBBox), n ? t[n - 1].children.push(a) : this._splitRoot(o, a);\n }\n _splitRoot(t, n) {\n this.data = Ee([t, n]), this.data.height = t.height + 1, this.data.leaf = !1, we(this.data, this.toBBox);\n }\n _chooseSplitIndex(t, n, o) {\n let i, s = 1 / 0, r = 1 / 0;\n for (let a = n; a <= o - n; a++) {\n const l = Oe(t, 0, a, this.toBBox), d = Oe(t, a, o, this.toBBox), h = hi(l, d), c = tt(l) + tt(d);\n h < s ? (s = h, i = a, r = c < r ? c : r) : h === s && c < r && (r = c, i = a);\n }\n return i || o - n;\n }\n // sorts node children by the best axis for split\n _chooseSplitAxis(t, n, o) {\n const i = t.leaf ? this.compareMinX : di, s = t.leaf ? this.compareMinY : ui, r = this._allDistMargin(t, n, o, i), a = this._allDistMargin(t, n, o, s);\n r < a && t.children.sort(i);\n }\n // total margin of all possible split distributions where each node is at least m full\n _allDistMargin(t, n, o, i) {\n t.children.sort(i);\n const s = this.toBBox, r = Oe(t, 0, n, s), a = Oe(t, o - n, o, s);\n let l = Ne(r) + Ne(a);\n for (let d = n; d < o - n; d++) {\n const h = t.children[d];\n Le(r, t.leaf ? s(h) : h), l += Ne(r);\n }\n for (let d = o - n - 1; d >= n; d--) {\n const h = t.children[d];\n Le(a, t.leaf ? s(h) : h), l += Ne(a);\n }\n return l;\n }\n _adjustParentBBoxes(t, n, o) {\n for (let i = o; i >= 0; i--)\n Le(n[i], t);\n }\n _condense(t) {\n for (let n = t.length - 1, o; n >= 0; n--)\n t[n].children.length === 0 ? n > 0 ? (o = t[n - 1].children, o.splice(o.indexOf(t[n]), 1)) : this.clear() : we(t[n], this.toBBox);\n }\n}\nfunction ci(e, t, n) {\n if (!n)\n return t.indexOf(e);\n for (let o = 0; o < t.length; o++)\n if (n(e, t[o]))\n return o;\n return -1;\n}\nfunction we(e, t) {\n Oe(e, 0, e.children.length, t, e);\n}\nfunction Oe(e, t, n, o, i) {\n i || (i = Ee(null)), i.minX = 1 / 0, i.minY = 1 / 0, i.maxX = -1 / 0, i.maxY = -1 / 0;\n for (let s = t; s < n; s++) {\n const r = e.children[s];\n Le(i, e.leaf ? o(r) : r);\n }\n return i;\n}\nfunction Le(e, t) {\n return e.minX = Math.min(e.minX, t.minX), e.minY = Math.min(e.minY, t.minY), e.maxX = Math.max(e.maxX, t.maxX), e.maxY = Math.max(e.maxY, t.maxY), e;\n}\nfunction di(e, t) {\n return e.minX - t.minX;\n}\nfunction ui(e, t) {\n return e.minY - t.minY;\n}\nfunction tt(e) {\n return (e.maxX - e.minX) * (e.maxY - e.minY);\n}\nfunction Ne(e) {\n return e.maxX - e.minX + (e.maxY - e.minY);\n}\nfunction fi(e, t) {\n return (Math.max(t.maxX, e.maxX) - Math.min(t.minX, e.minX)) * (Math.max(t.maxY, e.maxY) - Math.min(t.minY, e.minY));\n}\nfunction hi(e, t) {\n const n = Math.max(e.minX, t.minX), o = Math.max(e.minY, t.minY), i = Math.min(e.maxX, t.maxX), s = Math.min(e.maxY, t.maxY);\n return Math.max(0, i - n) * Math.max(0, s - o);\n}\nfunction nt(e, t) {\n return e.minX <= t.minX && e.minY <= t.minY && t.maxX <= e.maxX && t.maxY <= e.maxY;\n}\nfunction Ge(e, t) {\n return t.minX <= e.maxX && t.minY <= e.maxY && t.maxX >= e.minX && t.maxY >= e.minY;\n}\nfunction Ee(e) {\n return {\n children: e,\n height: 1,\n leaf: !0,\n minX: 1 / 0,\n minY: 1 / 0,\n maxX: -1 / 0,\n maxY: -1 / 0\n };\n}\nfunction Nt(e, t, n, o, i) {\n const s = [t, n];\n for (; s.length; ) {\n if (n = s.pop(), t = s.pop(), n - t <= o)\n continue;\n const r = t + Math.ceil((n - t) / o / 2) * o;\n ri(e, r, t, n, i), s.push(t, r, r, n);\n }\n}\nconst gi = () => {\n const e = new ai(), t = /* @__PURE__ */ new Map(), n = () => [...t.values()], o = () => {\n e.clear(), t.clear();\n }, i = (c) => {\n const { minX: g, minY: u, maxX: m, maxY: w } = c.selector.geometry.bounds, b = { minX: g, minY: u, maxX: m, maxY: w, target: c };\n e.insert(b), t.set(c.annotation, b);\n }, s = (c) => {\n const g = t.get(c.annotation);\n e.remove(g), t.delete(c.annotation);\n };\n return {\n all: n,\n clear: o,\n getAt: (c, g) => {\n const m = e.search({\n minX: c,\n minY: g,\n maxX: c,\n maxY: g\n }).map((w) => w.target).filter((w) => w.selector.type === H.RECTANGLE || pn(w.selector, c, g));\n if (m.length > 0)\n return m.sort((w, b) => st(w.selector) - st(b.selector)), m[0];\n },\n getIntersecting: (c, g, u, m) => e.search({\n minX: c,\n minY: g,\n maxX: c + u,\n maxY: g + m\n }).map((w) => w.target),\n insert: i,\n remove: s,\n set: (c, g = !0) => {\n g && o();\n const u = c.map((m) => {\n const { minX: w, minY: b, maxX: _, maxY: p } = m.selector.geometry.bounds;\n return { minX: w, minY: b, maxX: _, maxY: p, target: m };\n });\n u.forEach((m) => t.set(m.target.annotation, m)), e.load(u);\n },\n size: () => e.all().length,\n update: (c, g) => {\n s(c), i(g);\n }\n };\n}, mi = (e) => {\n const t = Hn(), n = gi(), o = Rn(t, e.pointerSelectAction), i = Pn(t), s = Kn();\n return t.observe(({ changes: l }) => {\n n.set(l.created.map((d) => d.target), !1), l.deleted.forEach((d) => n.remove(d.target)), l.updated.forEach(({ oldValue: d, newValue: h }) => n.update(d.target, h.target));\n }), {\n store: {\n ...t,\n getAt: (l, d) => {\n const h = n.getAt(l, d);\n return h ? t.getAnnotation(h.annotation) : void 0;\n },\n getIntersecting: (l, d, h, c) => n.getIntersecting(l, d, h, c).map((g) => t.getAnnotation(g.annotation))\n },\n selection: o,\n hover: i,\n viewport: s\n };\n}, pi = (e) => {\n const t = mi(e);\n return {\n ...t,\n store: jn(t.store)\n };\n}, yi = (e) => {\n let t, n;\n if (e.nodeName === \"CANVAS\")\n t = e, n = t.getContext(\"2d\", { willReadFrequently: !0 });\n else {\n const i = e;\n t = document.createElement(\"canvas\"), t.width = i.width, t.height = i.height, n = t.getContext(\"2d\", { willReadFrequently: !0 }), n.drawImage(i, 0, 0, i.width, i.height);\n }\n let o = 0;\n for (let i = 1; i < 10; i++)\n for (let s = 1; s < 10; s++) {\n const r = Math.round(s * t.width / 10), a = Math.round(i * t.height / 10), l = n.getImageData(r, a, 1, 1).data, d = (0.299 * l[0] + 0.587 * l[1] + 0.114 * l[2]) / 255;\n o += d;\n }\n return o / 81;\n}, _i = (e) => {\n const t = yi(e), n = t > 0.6 ? \"dark\" : \"light\";\n return console.log(`[Annotorious] Image brightness: ${t.toFixed(1)}. Setting ${n} theme.`), n;\n}, Gt = (e, t, n) => t.setAttribute(\"data-theme\", n === \"auto\" ? _i(e) : n), wi = (e) => ({\n ...e,\n drawingEnabled: e.drawingEnabled === void 0 ? !0 : e.drawingEnabled,\n drawingMode: e.drawingMode || \"drag\",\n pointerSelectAction: e.pointerSelectAction || Zt.EDIT,\n theme: e.theme || \"light\"\n}), Vt = navigator.userAgent.indexOf(\"Mac OS X\") !== -1, bi = (e, t) => {\n const n = t || document, o = (r) => {\n r.key === \"Z\" && r.ctrlKey ? e.undo() : r.key === \"Y\" && r.ctrlKey && e.redo();\n }, i = (r) => {\n r.key === \"z\" && r.metaKey && (r.shiftKey ? e.redo() : e.undo());\n }, s = () => {\n Vt ? n.removeEventListener(\"keydown\", i) : n.removeEventListener(\"keydown\", o);\n };\n return Vt ? n.addEventListener(\"keydown\", i) : n.addEventListener(\"keydown\", o), {\n destroy: s\n };\n};\nconst Gi = (e, t = {}) => {\n if (!e)\n throw \"Missing argument: image\";\n const n = typeof e == \"string\" ? document.getElementById(e) : e, o = wi(t), i = pi(o), { selection: s, store: r } = i, a = Jn(r), l = Zn(\n i,\n a,\n o.adapter,\n o.autoSave\n ), d = document.createElement(\"DIV\");\n d.style.position = \"relative\", d.style.display = \"inline-block\", n.style.display = \"block\", n.parentNode.insertBefore(d, n), d.appendChild(n);\n const h = bi(a);\n let c = oo();\n Gt(n, d, o.theme);\n const g = new si({\n target: d,\n props: {\n drawingEnabled: o.drawingEnabled,\n image: n,\n preferredDrawingMode: o.drawingMode,\n state: i,\n style: o.style,\n user: c\n }\n });\n g.$on(\"click\", (y) => {\n const { originalEvent: T, annotation: E } = y.detail;\n E ? s.clickSelect(E.id, T) : s.isEmpty() || s.clear();\n });\n const u = xn(i, a, o.adapter), m = () => {\n g.$destroy(), d.parentNode.insertBefore(n, d), d.parentNode.removeChild(d), h.destroy(), a.destroy();\n }, w = () => c, b = (y, T, E) => Uo(y, T, E), _ = (y, T) => _o(y, T), p = (y) => {\n if (!en(y))\n throw `No drawing tool named ${y}`;\n g.$set({ toolName: y });\n }, A = (y) => g.$set({ drawingEnabled: y }), S = (y) => {\n console.warn(\"Filter not implemented yet\");\n }, C = (y) => g.$set({ style: y }), R = (y) => Gt(n, d, y), X = (y) => {\n c = y, g.$set({ user: y });\n };\n return {\n ...u,\n destroy: m,\n getUser: w,\n listDrawingTools: rt,\n on: l.on,\n off: l.off,\n registerDrawingTool: b,\n registerShapeEditor: _,\n setDrawingEnabled: A,\n setDrawingTool: p,\n setFilter: S,\n setStyle: C,\n setTheme: R,\n setUser: X,\n state: i\n };\n};\nvar Ei = /* @__PURE__ */ ((e) => (e.EDIT = \"EDIT\", e.SELECT = \"SELECT\", e.NONE = \"NONE\", e))(Ei || {});\nconst Vi = (e) => {\n const { creator: t, updatedBy: n } = e.target, o = e.bodies.reduce((i, s) => [...i, s.creator, s.updatedBy], []);\n return [\n t,\n n,\n ...o\n ].filter((i) => i);\n}, zi = (e, t, n, o) => ({\n id: dt(),\n annotation: e.id,\n created: n || /* @__PURE__ */ new Date(),\n creator: o,\n ...t\n});\nvar zt = Object.prototype.hasOwnProperty;\nfunction He(e, t) {\n var n, o;\n if (e === t)\n return !0;\n if (e && t && (n = e.constructor) === t.constructor) {\n if (n === Date)\n return e.getTime() === t.getTime();\n if (n === RegExp)\n return e.toString() === t.toString();\n if (n === Array) {\n if ((o = e.length) === t.length)\n for (; o-- && He(e[o], t[o]); )\n ;\n return o === -1;\n }\n if (!n || typeof e == \"object\") {\n o = 0;\n for (n in e)\n if (zt.call(e, n) && ++o && !zt.call(t, n) || !(n in t) || !He(e[n], t[n]))\n return !1;\n return Object.keys(t).length === o;\n }\n }\n return e !== e && t !== t;\n}\nconst Ai = (e, t) => {\n const n = new Set(e.bodies.map((o) => o.id));\n return t.bodies.filter((o) => !n.has(o.id));\n}, Ti = (e, t) => {\n const n = new Set(t.bodies.map((o) => o.id));\n return e.bodies.filter((o) => !n.has(o.id));\n}, Si = (e, t) => t.bodies.map((n) => {\n const o = e.bodies.find((i) => i.id === n.id);\n return { newBody: n, oldBody: o && !He(o, n) ? o : void 0 };\n}).filter(({ oldBody: n }) => n), Mi = (e, t) => !He(e.target, t.target), Fi = (e, t) => {\n const n = Ai(e, t), o = Ti(e, t), i = Si(e, t);\n return {\n oldValue: e,\n newValue: t,\n bodiesCreated: n.length > 0 ? n : void 0,\n bodiesDeleted: o.length > 0 ? o : void 0,\n bodiesUpdated: i.length > 0 ? i : void 0,\n targetUpdated: Mi(e, t) ? { oldTarget: e.target, newTarget: t.target } : void 0\n };\n};\nvar ke = /* @__PURE__ */ ((e) => (e.LOCAL = \"LOCAL\", e.REMOTE = \"REMOTE\", e))(ke || {});\nlet vi = () => ({\n emit(e, ...t) {\n let n = this.events[e] || [];\n for (let o = 0, i = n.length; o < i; o++)\n n[o](...t);\n },\n events: {},\n on(e, t) {\n var n;\n return (n = this.events[e]) != null && n.push(t) || (this.events[e] = [t]), () => {\n var o;\n this.events[e] = (o = this.events[e]) == null ? void 0 : o.filter((i) => t !== i);\n };\n }\n});\nconst Hi = (e) => (t) => t.map((n) => e.serialize(n)), Oi = (e) => (t) => t.reduce((n, o) => {\n const { parsed: i, error: s } = e.parse(o);\n return s ? {\n parsed: n.parsed,\n failed: [...n.failed, o]\n } : {\n parsed: [...n.parsed, i],\n failed: n.failed\n };\n}, { parsed: [], failed: [] }), ji = (e, t, n) => {\n const { store: o, selection: i } = e, s = (b) => {\n if (n) {\n const { parsed: _, error: p } = n.parse(b);\n _ ? o.addAnnotation(_, ke.REMOTE) : console.error(p);\n } else\n o.addAnnotation(b, ke.REMOTE);\n }, r = () => i.clear(), a = () => o.clear(), l = (b) => {\n const _ = o.getAnnotation(b);\n return n && _ ? n.serialize(_) : _;\n }, d = () => n ? o.all().map(n.serialize) : o.all(), h = () => {\n var p;\n const _ = (((p = i.selected) == null ? void 0 : p.map((A) => A.id)) || []).map((A) => o.getAnnotation(A));\n return n ? _.map(n.serialize) : _;\n }, c = (b) => fetch(b).then((_) => _.json()).then((_) => (u(_), _)), g = (b) => {\n if (typeof b == \"string\") {\n const _ = o.getAnnotation(b);\n return o.deleteAnnotation(b), n ? n.serialize(_) : _;\n } else {\n const _ = n ? n.parse(b).parsed : b;\n return o.deleteAnnotation(_), b;\n }\n }, u = (b) => {\n if (n) {\n const { parsed: _, failed: p } = Oi(n)(b);\n p.length > 0 && console.warn(`Discarded ${p.length} invalid annotations`, p), o.bulkAddAnnotation(_, !0, ke.REMOTE);\n } else\n o.bulkAddAnnotation(b, !0, ke.REMOTE);\n }, m = (b) => {\n b ? i.setSelected(b) : i.clear();\n }, w = (b) => {\n if (n) {\n const _ = n.parse(b).parsed, p = n.serialize(o.getAnnotation(_.id));\n return o.updateAnnotation(_), p;\n } else {\n const _ = o.getAnnotation(b.id);\n return o.updateAnnotation(b), _;\n }\n };\n return {\n addAnnotation: s,\n cancelSelected: r,\n canRedo: t.canRedo,\n canUndo: t.canUndo,\n clearAnnotations: a,\n getAnnotationById: l,\n getAnnotations: d,\n getSelected: h,\n loadAnnotations: c,\n redo: t.redo,\n removeAnnotation: g,\n setAnnotations: u,\n setSelected: m,\n undo: t.undo,\n updateAnnotation: w\n };\n};\nlet Li = (e) => crypto.getRandomValues(new Uint8Array(e)), ki = (e, t, n) => {\n let o = (2 << Math.log(e.length - 1) / Math.LN2) - 1, i = -~(1.6 * o * t / e.length);\n return (s = t) => {\n let r = \"\";\n for (; ; ) {\n let a = n(i), l = i;\n for (; l--; )\n if (r += e[a[l] & o] || \"\", r.length === s)\n return r;\n }\n };\n}, Bi = (e, t = 21) => ki(e, t, Li), Ii = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((t, n) => (n &= 63, n < 36 ? t += n.toString(36) : n < 62 ? t += (n - 26).toString(36).toUpperCase() : n > 62 ? t += \"-\" : t += \"_\", t), \"\");\nconst qi = () => ({ isGuest: !0, id: Bi(\"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_\", 20)() }), Ci = (e) => {\n const t = JSON.stringify(e);\n let n = 0;\n for (let o = 0, i = t.length; o < i; o++) {\n let s = t.charCodeAt(o);\n n = (n << 5) - n + s, n |= 0;\n }\n return `${n}`;\n}, Wi = (e, t) => (Array.isArray(e) ? e : [e]).map((n) => {\n const { id: o, type: i, purpose: s, value: r, created: a, creator: l, ...d } = n;\n return {\n id: o || `temp-${Ci(n)}`,\n annotation: t,\n type: i,\n purpose: s,\n value: r,\n created: a,\n creator: l ? typeof l == \"object\" ? { ...l } : l : void 0,\n ...d\n };\n}), Ji = (e) => e.map((t) => {\n var o;\n const n = { ...t };\n return delete n.annotation, (o = n.id) != null && o.startsWith(\"temp-\") && delete n.id, n;\n}), Pi = [\n \"#ff7c00\",\n // orange\n \"#1ac938\",\n // green\n \"#e8000b\",\n // red\n \"#8b2be2\",\n // purple\n \"#9f4800\",\n // brown\n \"#f14cc1\",\n // pink\n \"#ffc400\",\n // khaki\n \"#00d7ff\",\n // cyan\n \"#023eff\"\n // blue\n], Ri = () => {\n const e = [...Pi];\n return { assignRandomColor: () => {\n const o = Math.floor(Math.random() * e.length), i = e[o];\n return e.splice(o, 1), i;\n }, releaseColor: (o) => e.push(o) };\n}, Yi = () => {\n const e = Ri();\n return { addUser: (o, i) => {\n const s = e.assignRandomColor();\n return {\n label: i.name || i.id,\n avatar: i.avatar,\n color: s\n };\n }, removeUser: (o) => e.releaseColor(o.appearance.color) };\n}, Ui = (e, t) => e.every((n) => e.includes(n)) && t.every((n) => e.includes(n)), Ki = Ii(), Zi = (e = Yi()) => {\n const t = vi(), n = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = (c, g) => {\n if (n.has(c)) {\n console.warn(\"Attempt to add user that is already present\", c, g);\n return;\n }\n const u = e.addUser(c, g);\n n.set(c, {\n ...g,\n presenceKey: c,\n appearance: u\n });\n }, s = (c) => {\n const g = n.get(c);\n if (!g) {\n console.warn(\"Attempt to remove user that is not present\", c);\n return;\n }\n e.removeUser(g), n.delete(c);\n }, r = (c) => {\n const g = new Set(c.map((w) => w.presenceKey)), u = c.filter(({ presenceKey: w }) => !n.has(w)), m = Array.from(n.values()).filter((w) => !g.has(w.presenceKey));\n u.forEach(({ presenceKey: w, user: b }) => i(w, b)), m.forEach((w) => {\n const { presenceKey: b } = w;\n o.has(b) && t.emit(\"selectionChange\", w, null), s(b);\n }), (u.length > 0 || m.length > 0) && t.emit(\"presence\", d());\n }, a = (c, g) => {\n const u = n.get(c);\n if (!u) {\n console.warn(\"Activity notification from user that is not present\");\n return;\n }\n const m = o.get(c);\n (!m || !Ui(m, g)) && (o.set(c, g), t.emit(\"selectionChange\", u, g));\n }, l = (c, g) => {\n const u = n.get(c);\n if (!u) {\n console.warn(\"Selection change for user that is not present\", c);\n return;\n }\n g ? o.set(c, g) : o.delete(c), t.emit(\"selectionChange\", u, g);\n }, d = () => [...Array.from(n.values())];\n return {\n getPresentUsers: d,\n notifyActivity: a,\n on: (c, g) => t.on(c, g),\n syncUsers: r,\n updateSelection: l\n };\n};\nexport {\n $t as Editor,\n To as EditorMount,\n O as Handle,\n Ni as IdentityTransform,\n ke as Origin,\n Ki as PRESENCE_KEY,\n Ei as PointerSelectAction,\n ho as PolygonEditor,\n yo as RectangleEditor,\n wn as RectangleUtil,\n Lo as RubberbandRectangle,\n si as SVGAnnotationLayer,\n H as ShapeType,\n Mo as ToolMount,\n Di as W3CImageFormat,\n Zo as addEventListeners,\n Fe as boundsFromPoints,\n st as computeArea,\n qi as createAnonymousGuest,\n ji as createBaseAnnotator,\n zi as createBody,\n Yi as createDefaultAppearenceProvider,\n Gi as createImageAnnotator,\n mi as createImageAnnotatorState,\n Zi as createPresenceState,\n Jo as createSVGTransform,\n pi as createSvelteImageAnnotatorState,\n Ri as defaultColorProvider,\n _i as detectTheme,\n Fi as diffAnnotations,\n xe as distance,\n Io as enableResponsive,\n wi as fillDefaults,\n Vi as getContributors,\n Mt as getEditor,\n en as getTool,\n bi as initKeyboardCommands,\n pn as intersects,\n Xi as isTouch,\n rt as listDrawingTools,\n Oi as parseAll,\n bn as parseFragmentSelector,\n vn as parseSVGSelector,\n Wi as parseW3CBodies,\n lo as parseW3CImageAnnotation,\n _o as registerEditor,\n ct as registerShapeUtil,\n Uo as registerTool,\n yi as sampleBrightness,\n Hi as serializeAll,\n En as serializeFragmentSelector,\n On as serializeSVGSelector,\n Ji as serializeW3CBodies,\n ao as serializeW3CImageAnnotation,\n Gt as setTheme\n};\n//# sourceMappingURL=annotorious.es.js.map\n"],"names":["z","nn","e","t","n","Ft","gt","ie","j","K","on","sn","i","rn","s","r","a","ln","an","B","k","lt","U","qt","$","se","W","f","cn","dn","Ie","Be","Wt","Se","Ae","be","ze","Te","yt","un","ot","fn","Jt","it","Ke","pe","hn","gn","Ve","ue","D","N","he","le","ae","mn","ee","l","d","h","c","g","u","m","te","H","ct","Fe","yn","_n","wn","bn","w","En","Kt","_t","An","o","Tn","Sn","Mn","vn","Xe","Ln","kn","q","Bn","In","wt","dt","Un","no","io","so","ro","Di","lo","ao","Et","At","O","co","Tt","St","b","uo","$t","fo","p","A","S","_","ho","go","C","R","X","y","T","E","v","I","Y","ge","me","Me","L","J","V","ce","F","de","Pe","qe","Q","Re","Ye","We","x","Ue","De","Je","ht","P","M","mo","po","yo","wo","vt","bo","Eo","Ii"],"mappings":"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"}
|