@annotorious/svelte 3.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/MouseOverTooltip.svelte.d.ts +1 -0
  2. package/dist/annotorious-svelte.es.js +9 -0
  3. package/dist/annotorious-svelte.es.js.map +1 -0
  4. package/dist/annotorious-svelte.es10.js +5 -0
  5. package/dist/annotorious-svelte.es10.js.map +1 -0
  6. package/dist/annotorious-svelte.es11.js +5 -0
  7. package/dist/annotorious-svelte.es11.js.map +1 -0
  8. package/dist/annotorious-svelte.es2.js +128 -0
  9. package/dist/annotorious-svelte.es2.js.map +1 -0
  10. package/dist/annotorious-svelte.es3.js +113 -0
  11. package/dist/annotorious-svelte.es3.js.map +1 -0
  12. package/dist/annotorious-svelte.es4.js +126 -0
  13. package/dist/annotorious-svelte.es4.js.map +1 -0
  14. package/dist/annotorious-svelte.es5.js +316 -0
  15. package/dist/annotorious-svelte.es5.js.map +1 -0
  16. package/dist/annotorious-svelte.es6.js +11 -0
  17. package/dist/annotorious-svelte.es6.js.map +1 -0
  18. package/dist/annotorious-svelte.es7.js +3 -0
  19. package/dist/annotorious-svelte.es7.js.map +1 -0
  20. package/dist/annotorious-svelte.es8.js +20596 -0
  21. package/dist/annotorious-svelte.es8.js.map +1 -0
  22. package/dist/annotorious-svelte.es9.js +123 -0
  23. package/dist/annotorious-svelte.es9.js.map +1 -0
  24. package/dist/index.d.ts +5 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/osd/OpenSeadragonAnnotator.svelte.d.ts +1 -0
  27. package/dist/osd/OpenSeadragonPopup.svelte.d.ts +1 -0
  28. package/dist/osd/index.d.ts +3 -0
  29. package/dist/osd/index.d.ts.map +1 -0
  30. package/dist/style.css +1 -0
  31. package/package.json +33 -0
  32. package/src/MouseOverTooltip.svelte +55 -0
  33. package/src/index.ts +14 -0
  34. package/src/osd/OpenSeadragonAnnotator.svelte +39 -0
  35. package/src/osd/OpenSeadragonPopup.svelte +103 -0
  36. package/src/osd/index.ts +2 -0
  37. package/test/App.svelte +75 -0
  38. package/test/annotations.json +54 -0
  39. package/test/index.html +24 -0
  40. package/test/index.ts +9 -0
  41. package/tsconfig.json +25 -0
  42. package/vite.config.js +37 -0
@@ -0,0 +1 @@
1
+ export { SvelteComponentTyped as default } from 'svelte';
@@ -0,0 +1,9 @@
1
+ import { default as a } from "./annotorious-svelte.es2.js";
2
+ import { default as t } from "./annotorious-svelte.es3.js";
3
+ import { default as f } from "./annotorious-svelte.es4.js";
4
+ export {
5
+ a as MouseOverTooltip,
6
+ t as OpenSeadragonAnnotator,
7
+ f as OpenSeadragonPopup
8
+ };
9
+ //# sourceMappingURL=annotorious-svelte.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-svelte.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,5 @@
1
+ const e = "";
2
+ export {
3
+ e as default
4
+ };
5
+ //# sourceMappingURL=annotorious-svelte.es10.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-svelte.es10.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,5 @@
1
+ let o = (n = 21) => crypto.getRandomValues(new Uint8Array(n)).reduce((r, e) => (e &= 63, e < 36 ? r += e.toString(36) : e < 62 ? r += (e - 26).toString(36).toUpperCase() : e > 62 ? r += "-" : r += "_", r), "");
2
+ export {
3
+ o as nanoid
4
+ };
5
+ //# sourceMappingURL=annotorious-svelte.es11.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-svelte.es11.js","sources":["../../../node_modules/nanoid/index.browser.js"],"sourcesContent":["export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n"],"names":["nanoid","size","id","byte"],"mappings":"AAmBU,IAACA,IAAS,CAACC,IAAO,OAC1B,OAAO,gBAAgB,IAAI,WAAWA,CAAI,CAAC,EAAE,OAAO,CAACC,GAAIC,OACvDA,KAAQ,IACJA,IAAO,KACTD,KAAMC,EAAK,SAAS,EAAE,IACbA,IAAO,KAChBD,MAAOC,IAAO,IAAI,SAAS,EAAE,EAAE,YAAa,IACnCA,IAAO,KAChBD,KAAM,MAENA,KAAM,KAEDA,IACN,EAAE;","x_google_ignoreList":[0]}
@@ -0,0 +1,128 @@
1
+ import { SvelteComponent as O, init as T, safe_not_equal as q, empty as w, insert as E, transition_in as u, transition_out as _, check_outros as A, detach as L, getContext as N, component_subscribe as S, onMount as X, create_slot as Y, element as j, attr as c, update_slot_base as z, get_all_dirty_from_scope as B, get_slot_changes as D, group_outros as F } from "./annotorious-svelte.es5.js";
2
+ const G = (o) => ({ hovered: o & /*hovered*/
3
+ 16 }), b = (o) => ({ hovered: (
4
+ /*hovered*/
5
+ o[4]
6
+ ) });
7
+ function g(o) {
8
+ let r, s, e;
9
+ const t = (
10
+ /*#slots*/
11
+ o[8].default
12
+ ), n = Y(
13
+ t,
14
+ o,
15
+ /*$$scope*/
16
+ o[7],
17
+ b
18
+ );
19
+ return {
20
+ c() {
21
+ r = j("div"), n && n.c(), c(r, "class", "a9s-tooltip"), c(r, "style", s = `left:${/*left*/
22
+ o[2]}px; top:${/*top*/
23
+ o[1]}px; position: absolute;`);
24
+ },
25
+ m(i, l) {
26
+ E(i, r, l), n && n.m(r, null), e = !0;
27
+ },
28
+ p(i, l) {
29
+ n && n.p && (!e || l & /*$$scope, hovered*/
30
+ 144) && z(
31
+ n,
32
+ t,
33
+ i,
34
+ /*$$scope*/
35
+ i[7],
36
+ e ? D(
37
+ t,
38
+ /*$$scope*/
39
+ i[7],
40
+ l,
41
+ G
42
+ ) : B(
43
+ /*$$scope*/
44
+ i[7]
45
+ ),
46
+ b
47
+ ), (!e || l & /*left, top*/
48
+ 6 && s !== (s = `left:${/*left*/
49
+ i[2]}px; top:${/*top*/
50
+ i[1]}px; position: absolute;`)) && c(r, "style", s);
51
+ },
52
+ i(i) {
53
+ e || (u(n, i), e = !0);
54
+ },
55
+ o(i) {
56
+ _(n, i), e = !1;
57
+ },
58
+ d(i) {
59
+ i && L(r), n && n.d(i);
60
+ }
61
+ };
62
+ }
63
+ function H(o) {
64
+ let r, s, e = (
65
+ /*$hover*/
66
+ o[0] && /*show*/
67
+ o[3] && g(o)
68
+ );
69
+ return {
70
+ c() {
71
+ e && e.c(), r = w();
72
+ },
73
+ m(t, n) {
74
+ e && e.m(t, n), E(t, r, n), s = !0;
75
+ },
76
+ p(t, [n]) {
77
+ /*$hover*/
78
+ t[0] && /*show*/
79
+ t[3] ? e ? (e.p(t, n), n & /*$hover, show*/
80
+ 9 && u(e, 1)) : (e = g(t), e.c(), u(e, 1), e.m(r.parentNode, r)) : e && (F(), _(e, 1, 1, () => {
81
+ e = null;
82
+ }), A());
83
+ },
84
+ i(t) {
85
+ s || (u(e), s = !0);
86
+ },
87
+ o(t) {
88
+ _(e), s = !1;
89
+ },
90
+ d(t) {
91
+ e && e.d(t), t && L(r);
92
+ }
93
+ };
94
+ }
95
+ function I(o, r, s) {
96
+ let e, t, { $$slots: n = {}, $$scope: i } = r, { container: l } = r;
97
+ const k = N("anno"), { store: M, hover: p } = k.state;
98
+ S(o, p, (f) => s(0, t = f));
99
+ let v, d, a = !0;
100
+ return X(() => {
101
+ const f = () => {
102
+ s(3, a = !0);
103
+ }, m = (y) => {
104
+ const { offsetX: P, offsetY: C } = y;
105
+ s(2, d = P), s(1, v = C);
106
+ }, h = () => {
107
+ s(3, a = !1);
108
+ };
109
+ return l.addEventListener("pointerenter", f), l.addEventListener("pointermove", m), l.addEventListener("pointerleave", h), () => {
110
+ l.removeEventListener("pointerenter", f), l.removeEventListener("pointermove", m), l.removeEventListener("pointerleave", h);
111
+ };
112
+ }), o.$$set = (f) => {
113
+ "container" in f && s(6, l = f.container), "$$scope" in f && s(7, i = f.$$scope);
114
+ }, o.$$.update = () => {
115
+ o.$$.dirty & /*$hover*/
116
+ 1 && s(4, e = t ? M.getAnnotation(t) : void 0);
117
+ }, [t, v, d, a, e, p, l, i, n];
118
+ }
119
+ class J extends O {
120
+ constructor(r) {
121
+ super(), T(this, r, I, H, q, { container: 6 });
122
+ }
123
+ }
124
+ const Q = J;
125
+ export {
126
+ Q as default
127
+ };
128
+ //# sourceMappingURL=annotorious-svelte.es2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-svelte.es2.js","sources":["../src/MouseOverTooltip.svelte"],"sourcesContent":["<script lang=\"ts\">\n import { getContext, onMount } from 'svelte';\n import type { ImageAnnotation } from '@annotorious/annotorious';\n import type { SvelteAnnotator } from '@annotorious/core';\n\n export let container: Element;\n\n const anno = getContext<SvelteAnnotator<ImageAnnotation>>('anno');\n\n const { store, hover } = anno.state;\n\n let top: number;\n\n let left: number;\n\n let show = true;\n\n $: hovered = $hover ? store.getAnnotation($hover) : undefined;\n \n onMount(() => {\n const onPointerEnter = () => {\n show = true;\n }\n\n const onPointerMove = (event: PointerEvent) => {\n const { offsetX, offsetY } = event;\n left = offsetX;\n top = offsetY;\n }\n\n const onPointerLeave = () => {\n show = false;\n }\n\n container.addEventListener('pointerenter', onPointerEnter);\n container.addEventListener('pointermove', onPointerMove);\n container.addEventListener('pointerleave', onPointerLeave);\n\n return () => {\n container.removeEventListener('pointerenter', onPointerEnter);\n container.removeEventListener('pointermove', onPointerMove);\n container.removeEventListener('pointerleave', onPointerLeave);\n }\n });\n</script>\n\n{#if $hover && show}\n <div \n class=\"a9s-tooltip\" \n style={`left:${left}px; top:${top}px; position: absolute;`}>\n\n <slot hovered={hovered} />\n\n </div>\n{/if}"],"names":["ctx","attr","div","div_style_value","insert","target","anchor","current","dirty","if_block","create_if_block","container","$$props","anno","getContext","store","hover","top","left","show","onMount","onPointerEnter","$$invalidate","onPointerMove","event","offsetX","offsetY","onPointerLeave","hovered","$hover"],"mappings":";;;;EAmDmBA,EAAO,CAAA;AAAA,EAAA;;;;;;;;;;;;;;;8DAFPC,EAAAC,GAAA,SAAAC,IAAA;AAAA,MAAAH;MAAeA,EAAG,CAAA,CAAA,yBAAA;AAAA;;AAFnC,MAAAI,EAMKC,GAAAH,GAAAI,CAAA;;;;;;;;;;;;;;;;;;;;;UAJY,CAAAC,KAAAC;AAAA,MAAA,KAAAL,OAAAA,IAAA;AAAA,MAAAH;MAAeA,EAAG,CAAA,CAAA;;;;;;;;;;;;;;YAHhCS;AAAA;AAAA,IAAAT;IAAUA,EAAI,CAAA,KAAAU,EAAAV,CAAA;AAAA;;;;;;;;;AAAd;AAAA,MAAAA;MAAUA,EAAI,CAAA;;;;;;;;;;;;;;;;;mDAzCN,WAAAW,EAAkB,IAAAC;QAEvBC,IAAOC,EAA6C,MAAM,GAExD,EAAA,OAAAC,GAAO,OAAAC,MAAUH,EAAK;;MAE1BI,GAEAC,GAEAC,IAAO;AAIX,SAAAC,EAAO,MAAA;UACCC,IAAc,MAAA;AAClB,MAAAC,EAAA,GAAAH,IAAO,EAAI;AAAA,OAGPI,IAAiB,CAAAC,MAAmB;cAChC,SAAAC,GAAS,SAAAC,EAAO,IAAKF;AAC7B,MAAAF,EAAA,GAAAJ,IAAOO,CAAO,GACdH,EAAA,GAAAL,IAAMS,CAAO;AAAA,OAGTC,IAAc,MAAA;AAClB,MAAAL,EAAA,GAAAH,IAAO,EAAK;AAAA;AAGd,WAAAR,EAAU,iBAAiB,gBAAgBU,CAAc,GACzDV,EAAU,iBAAiB,eAAeY,CAAa,GACvDZ,EAAU,iBAAiB,gBAAgBgB,CAAc;AAGvD,MAAAhB,EAAU,oBAAoB,gBAAgBU,CAAc,GAC5DV,EAAU,oBAAoB,eAAeY,CAAa,GAC1DZ,EAAU,oBAAoB,gBAAgBgB,CAAc;AAAA;;;;;SAxB/DL,EAAA,GAAEM,IAAUC,IAASd,EAAM,cAAcc,CAAM,IAAI,MAAS;AAAA;;;;;;;;"}
@@ -0,0 +1,113 @@
1
+ import { SvelteComponent as g, init as b, safe_not_equal as h, empty as k, insert as w, transition_in as l, transition_out as c, check_outros as A, detach as O, create_slot as v, update_slot_base as C, get_all_dirty_from_scope as N, get_slot_changes as q, group_outros as y, setContext as m } from "./annotorious-svelte.es5.js";
2
+ import { toSvelteStore as D } from "./annotorious-svelte.es6.js";
3
+ import "./annotorious-svelte.es7.js";
4
+ import { createOSDAnnotator as E } from "./annotorious-svelte.es8.js";
5
+ function d(s) {
6
+ let n;
7
+ const o = (
8
+ /*#slots*/
9
+ s[4].default
10
+ ), t = v(
11
+ o,
12
+ s,
13
+ /*$$scope*/
14
+ s[3],
15
+ null
16
+ );
17
+ return {
18
+ c() {
19
+ t && t.c();
20
+ },
21
+ m(e, i) {
22
+ t && t.m(e, i), n = !0;
23
+ },
24
+ p(e, i) {
25
+ t && t.p && (!n || i & /*$$scope*/
26
+ 8) && C(
27
+ t,
28
+ o,
29
+ e,
30
+ /*$$scope*/
31
+ e[3],
32
+ n ? q(
33
+ o,
34
+ /*$$scope*/
35
+ e[3],
36
+ i,
37
+ null
38
+ ) : N(
39
+ /*$$scope*/
40
+ e[3]
41
+ ),
42
+ null
43
+ );
44
+ },
45
+ i(e) {
46
+ n || (l(t, e), n = !0);
47
+ },
48
+ o(e) {
49
+ c(t, e), n = !1;
50
+ },
51
+ d(e) {
52
+ t && t.d(e);
53
+ }
54
+ };
55
+ }
56
+ function j(s) {
57
+ let n, o, t = (
58
+ /*viewer*/
59
+ s[0] && d(s)
60
+ );
61
+ return {
62
+ c() {
63
+ t && t.c(), n = k();
64
+ },
65
+ m(e, i) {
66
+ t && t.m(e, i), w(e, n, i), o = !0;
67
+ },
68
+ p(e, [i]) {
69
+ /*viewer*/
70
+ e[0] ? t ? (t.p(e, i), i & /*viewer*/
71
+ 1 && l(t, 1)) : (t = d(e), t.c(), l(t, 1), t.m(n.parentNode, n)) : t && (y(), c(t, 1, 1, () => {
72
+ t = null;
73
+ }), A());
74
+ },
75
+ i(e) {
76
+ o || (l(t), o = !0);
77
+ },
78
+ o(e) {
79
+ c(t), o = !1;
80
+ },
81
+ d(e) {
82
+ t && t.d(e), e && O(n);
83
+ }
84
+ };
85
+ }
86
+ function z(s, n, o) {
87
+ let { $$slots: t = {}, $$scope: e } = n, { viewer: i } = n, { opts: f = {} } = n, { anno: a = void 0 } = n;
88
+ const p = (r) => {
89
+ if (r) {
90
+ const u = E(r, f), S = D(u.state.store), _ = {
91
+ ...u,
92
+ state: { ...u.state, store: S }
93
+ };
94
+ m("anno", _), m("viewer", r), o(1, a = _);
95
+ }
96
+ };
97
+ return s.$$set = (r) => {
98
+ "viewer" in r && o(0, i = r.viewer), "opts" in r && o(2, f = r.opts), "anno" in r && o(1, a = r.anno), "$$scope" in r && o(3, e = r.$$scope);
99
+ }, s.$$.update = () => {
100
+ s.$$.dirty & /*viewer*/
101
+ 1 && p(i);
102
+ }, [i, a, f, e, t];
103
+ }
104
+ class B extends g {
105
+ constructor(n) {
106
+ super(), b(this, n, z, j, h, { viewer: 0, opts: 2, anno: 1 });
107
+ }
108
+ }
109
+ const J = B;
110
+ export {
111
+ J as default
112
+ };
113
+ //# sourceMappingURL=annotorious-svelte.es3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-svelte.es3.js","sources":["../src/osd/OpenSeadragonAnnotator.svelte"],"sourcesContent":["<script lang=\"ts\">\n import { setContext } from 'svelte';\n import { SvelteAnnotator, SvelteAnnotatorState, toSvelteStore } from '@annotorious/core';\n import { createOSDAnnotator, ImageAnnotation } from '@annotorious/openseadragon';\n import type OpenSeadragon from 'openseadragon';\n\n /** props **/\n export let viewer: OpenSeadragon.Viewer;\n export let opts = {};\n export let anno: SvelteAnnotator<ImageAnnotation> = undefined;\n\n $: init(viewer);\n\n const init = (viewer: OpenSeadragon.Viewer) => {\n if (viewer) {\n const annotator = createOSDAnnotator(viewer, opts);\n\n // Wrap the store for Svelte reactivity\n const svelteStore = toSvelteStore(annotator.state.store);\n\n const shim = {\n ...annotator,\n state: {\n ...annotator.state,\n store: svelteStore\n } as SvelteAnnotatorState<ImageAnnotation>\n } as SvelteAnnotator<ImageAnnotation>\n\n setContext('anno', shim);\n setContext('viewer', viewer);\n\n anno = shim;\n }\n }\n</script>\n\n{#if viewer}\n <slot />\n{/if}\n"],"names":["ctx","create_if_block","viewer","$$props","opts","anno","init","annotator","createOSDAnnotator","svelteStore","toSvelteStore","shim","setContext","$$invalidate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCKA,EAAM,CAAA,KAAAC,EAAAD,CAAA;AAAA;;;;;;;;;;MAANA,EAAM,CAAA;;;;;;;;;;;;;;;;;6CA7BE,QAAAE,EAA4B,IAAAC,KAC5B,MAAAC,IAAI,GAAA,IAAAD,GACJ,EAAA,MAAAE,IAAyC,OAAS,IAAAF;AAIvD,QAAAG,IAAQ,CAAAJ,MAA4B;QACpCA,GAAM;AACF,YAAAK,IAAYC,EAAmBN,GAAQE,CAAI,GAG3CK,IAAcC,EAAcH,EAAU,MAAM,KAAK,GAEjDI,IAAI;AAAA,WACLJ;AAAA,QACH,YACKA,EAAU,OACb,OAAOE,EAAA;AAAA;AAIX,MAAAG,EAAW,QAAQD,CAAI,GACvBC,EAAW,UAAUV,CAAM,GAE3BW,EAAA,GAAAR,IAAOM,CAAI;AAAA;;;;;;SApBZL,EAAKJ,CAAM;AAAA;;;;;;;;"}
@@ -0,0 +1,126 @@
1
+ import { SvelteComponent as A, init as H, safe_not_equal as I, empty as X, insert as P, noop as v, detach as S, component_subscribe as Y, onMount as q, element as x, text as G, attr as L, append as R, action_destroyer as U, listen as _, set_data as z, is_function as B, run_all as F } from "./annotorious-svelte.es5.js";
2
+ import { draggable as J } from "./annotorious-svelte.es9.js";
3
+ import b from "openseadragon";
4
+ import "./annotorious-svelte.es10.js";
5
+ function w(n) {
6
+ let o, e = (
7
+ /*$selection*/
8
+ n[0].selected.map(y).join(", ") + ""
9
+ ), t, s, a, d;
10
+ return {
11
+ c() {
12
+ o = x("div"), t = G(e), L(o, "class", "a9s-popup a9s-osd-popup svelte-1xuxeat");
13
+ },
14
+ m(r, l) {
15
+ P(r, o, l), R(o, t), a || (d = [
16
+ U(s = J.call(null, o, {
17
+ position: { x: (
18
+ /*left*/
19
+ n[1]
20
+ ), y: (
21
+ /*top*/
22
+ n[2]
23
+ ) }
24
+ })),
25
+ _(
26
+ o,
27
+ "neodrag:start",
28
+ /*onDragStart*/
29
+ n[4]
30
+ ),
31
+ _(
32
+ o,
33
+ "neodrag:end",
34
+ /*onDragEnd*/
35
+ n[5]
36
+ )
37
+ ], a = !0);
38
+ },
39
+ p(r, l) {
40
+ l & /*$selection*/
41
+ 1 && e !== (e = /*$selection*/
42
+ r[0].selected.map(y).join(", ") + "") && z(t, e), s && B(s.update) && l & /*left, top*/
43
+ 6 && s.update.call(null, {
44
+ position: { x: (
45
+ /*left*/
46
+ r[1]
47
+ ), y: (
48
+ /*top*/
49
+ r[2]
50
+ ) }
51
+ });
52
+ },
53
+ d(r) {
54
+ r && S(o), a = !1, F(d);
55
+ }
56
+ };
57
+ }
58
+ function K(n) {
59
+ let o, e = (
60
+ /*$selection*/
61
+ n[0] && w(n)
62
+ );
63
+ return {
64
+ c() {
65
+ e && e.c(), o = X();
66
+ },
67
+ m(t, s) {
68
+ e && e.m(t, s), P(t, o, s);
69
+ },
70
+ p(t, [s]) {
71
+ /*$selection*/
72
+ t[0] ? e ? e.p(t, s) : (e = w(t), e.c(), e.m(o.parentNode, o)) : e && (e.d(1), e = null);
73
+ },
74
+ i: v,
75
+ o: v,
76
+ d(t) {
77
+ e && e.d(t), t && S(o);
78
+ }
79
+ };
80
+ }
81
+ const y = (n) => n.id;
82
+ function Q(n, o, e) {
83
+ let t, { state: s } = o, { viewer: a } = o, d, r, l = !1, c;
84
+ const { selection: m, store: u } = s;
85
+ Y(n, m, (i) => e(0, t = i));
86
+ const g = (i) => {
87
+ var p;
88
+ return ((p = i.selected) == null ? void 0 : p.length) > 0;
89
+ }, E = () => {
90
+ l = !0, a.setMouseNavEnabled(!1);
91
+ }, D = () => {
92
+ a.setMouseNavEnabled(!0);
93
+ }, N = () => {
94
+ c && u.unobserve(c), g(t) && (l = !1, f(t), c = (i) => {
95
+ l || f(t);
96
+ }, u.observe(c, {
97
+ annotations: t.selected.map((i) => i.id)
98
+ }));
99
+ }, f = (i) => {
100
+ const p = i.selected[0].id, h = u.getAnnotation(p), { minX: k, minY: C, maxX: M, maxY: O } = h.target.selector.geometry.bounds, T = 14, V = a.viewport.imageToViewerElementCoordinates(new b.Point(k, C)), j = a.viewport.imageToViewerElementCoordinates(new b.Point(M, O));
101
+ e(1, d = j.x + T), e(2, r = V.y);
102
+ };
103
+ return q(() => {
104
+ const i = () => {
105
+ g(t) && !l && f(t);
106
+ };
107
+ return a.addHandler("update-viewport", i), () => {
108
+ a.removeHandler("update-viewport", i);
109
+ };
110
+ }), n.$$set = (i) => {
111
+ "state" in i && e(6, s = i.state), "viewer" in i && e(7, a = i.viewer);
112
+ }, n.$$.update = () => {
113
+ n.$$.dirty & /*$selection*/
114
+ 1 && N();
115
+ }, [t, d, r, m, E, D, s, a];
116
+ }
117
+ class W extends A {
118
+ constructor(o) {
119
+ super(), H(this, o, Q, K, I, { state: 6, viewer: 7 });
120
+ }
121
+ }
122
+ const oe = W;
123
+ export {
124
+ oe as default
125
+ };
126
+ //# sourceMappingURL=annotorious-svelte.es4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-svelte.es4.js","sources":["../src/osd/OpenSeadragonPopup.svelte"],"sourcesContent":["<script lang=\"ts\">\n import { onMount } from 'svelte';\n import { draggable } from '@neodrag/svelte';\n import OpenSeadragon from 'openseadragon';\n import type { Selection, StoreChangeEvent, SvelteAnnotatorState } from '@annotorious/core';\n import type { ImageAnnotation } from '@annotorious/annotorious';\n\n export let state: SvelteAnnotatorState<ImageAnnotation>;\n\n export let viewer: OpenSeadragon.Viewer;\n\n let left: number;\n\n let top: number;\n\n let dragged = false;\n\n let storeObserver: (event: StoreChangeEvent<ImageAnnotation>) => void;\n\n const { selection, store } = state; \n\n const isSelected = (selection: Selection) => selection.selected?.length > 0;\n\n const onDragStart = () => {\n dragged = true;\n viewer.setMouseNavEnabled(false);\n }\n\n const onDragEnd = () => {\n viewer.setMouseNavEnabled(true);\n }\n\n $: $selection, onSelect();\n\n const onSelect = () => {\n if (storeObserver)\n store.unobserve(storeObserver);\n\n if (isSelected($selection)) {\n dragged = false;\n\n setPosition($selection);\n\n storeObserver = (event: StoreChangeEvent<ImageAnnotation>) => {\n if (!dragged)\n setPosition($selection);\n }\n\n store.observe(storeObserver, { annotations: $selection.selected.map(s => s.id) });\n }\n }\n\n const setPosition = (selection: Selection) => {\n // Note: this demo popup only supports a single selection\n const selectedId = selection.selected[0].id;\n const annotation = store.getAnnotation(selectedId);\n\n const { minX, minY, maxX, maxY } = annotation.target.selector.geometry.bounds;\n\n const PADDING = 14;\n\n const topLeft = viewer.viewport.imageToViewerElementCoordinates(new OpenSeadragon.Point(minX, minY));\n const bottomRight = viewer.viewport.imageToViewerElementCoordinates(new OpenSeadragon.Point(maxX, maxY));\n\n // [left, top] = defaultStrategy(annotation, lastPointerDown);\n left = bottomRight.x + PADDING;\n top = topLeft.y;\n }\n\n onMount(() => {\n const onUpdateViewport = () => {\n if (isSelected($selection) && !dragged)\n setPosition($selection);\n }\n\n viewer.addHandler('update-viewport', onUpdateViewport);\n\n return () => {\n viewer.removeHandler('update-viewport', onUpdateViewport);\n }\n });\n</script>\n\n{#if $selection}\n <div \n class=\"a9s-popup a9s-osd-popup\"\n use:draggable={{ position: { x: left, y: top }}}\n on:neodrag:start={onDragStart}\n on:neodrag:end={onDragEnd}>\n {$selection.selected.map(s => s.id).join(', ')}\n </div>\n{/if}\n\n<style>\n .a9s-osd-popup {\n background-color: #fff;\n border: 1px solid #a2a2a2;\n height: 250px;\n position: absolute;\n width: 400px;\n z-index: 1;\n }\n</style>"],"names":["t_value","ctx","func","insert","target","div","anchor","dirty","set_data","create_if_block","s","state","$$props","viewer","left","top","dragged","storeObserver","selection","store","isSelected","_a","onDragStart","onDragEnd","onSelect","$selection","setPosition","event","selectedId","annotation","minX","minY","maxX","maxY","PADDING","topLeft","OpenSeadragon","bottomRight","$$invalidate","onMount","onUpdateViewport"],"mappings":";;;;;SAyFKA;AAAA;AAAA,IAAAC,KAAW,SAAS,IAAeC,CAAA,EAAA,KAAK,IAAI,IAAA;AAAA;;;;;;AAL/C,MAAAC,EAMKC,GAAAC,GAAAC,CAAA;;UAJc,YAAY;AAAA;AAAA,YAAGL,EAAM,CAAA;AAAA,aAAA;AAAA;AAAA,YAAGA,EAAG,CAAA;AAAA,YAAA;AAAA;;;;;UAC1BA,EAAW,CAAA;AAAA,QAAA;AAAA;;;;UACbA,EAAS,CAAA;AAAA,QAAA;AAAA;;;AACxB,MAAAM;AAAA,MAAA,KAAAP,OAAAA;AAAA,MAAAC,KAAW,SAAS,IAAeC,CAAA,EAAA,KAAK,IAAI,IAAA,OAAAM,EAAA,GAAAR,CAAA;;QAH5B,YAAY;AAAA;AAAA,UAAGC,EAAM,CAAA;AAAA,WAAA;AAAA;AAAA,UAAGA,EAAG,CAAA;AAAA,UAAA;AAAA;;;;;;;;;;IAH3CA,EAAU,CAAA,KAAAQ,EAAAR,CAAA;AAAA;;;;;;;;;;MAAVA,EAAU,CAAA;;;;;;;;;UAMc,CAAAS,MAAKA,EAAE;;WAlFvB,OAAAC,EAA4C,IAAAC,KAE5C,QAAAC,EAA4B,IAAAD,GAEnCE,GAEAC,GAEAC,IAAU,IAEVC;UAEI,WAAAC,GAAW,OAAAC,EAAK,IAAKR;;QAEvBS,IAAc,CAAAF,MAAyB;;AAAA,aAAAG,IAAAH,EAAU,aAAV,gBAAAG,EAAoB,UAAS;AAAA,KAEpEC,IAAW,MAAA;AACf,IAAAN,IAAU,IACVH,EAAO,mBAAmB,EAAK;AAAA,KAG3BU,IAAS,MAAA;AACb,IAAAV,EAAO,mBAAmB,EAAI;AAAA,KAK1BW,IAAQ,MAAA;AACR,IAAAP,KACFE,EAAM,UAAUF,CAAa,GAE3BG,EAAWK,CAAU,MACvBT,IAAU,IAEVU,EAAYD,CAAU,GAEtBR,IAAiB,CAAAU,MAAwC;MAClDX,KACHU,EAAYD,CAAU;AAAA,OAG1BN,EAAM,QAAQF,GAAa;AAAA,MAAI,aAAaQ,EAAW,SAAS,IAAI,CAAAf,MAAKA,EAAE,EAAE;AAAA;KAI3EgB,IAAe,CAAAR,MAAoB;AAEjC,UAAAU,IAAaV,EAAU,SAAS,CAAC,EAAE,IACnCW,IAAaV,EAAM,cAAcS,CAAU,GAEzC,EAAA,MAAAE,GAAM,MAAAC,GAAM,MAAAC,GAAM,MAAAC,EAAI,IAAKJ,EAAW,OAAO,SAAS,SAAS,QAEjEK,IAAU,IAEVC,IAAUtB,EAAO,SAAS,gCAAoC,IAAAuB,EAAc,MAAMN,GAAMC,CAAI,CAAA,GAC5FM,IAAcxB,EAAO,SAAS,gCAAoC,IAAAuB,EAAc,MAAMJ,GAAMC,CAAI,CAAA;AAGtG,IAAAK,EAAA,GAAAxB,IAAOuB,EAAY,IAAIH,CAAO,QAC9BnB,IAAMoB,EAAQ,CAAC;AAAA;AAGjB,SAAAI,EAAO,MAAA;UACCC,IAAgB,MAAA;AAChB,MAAApB,EAAWK,CAAU,KAAA,CAAMT,KAC7BU,EAAYD,CAAU;AAAA;AAG1B,WAAAZ,EAAO,WAAW,mBAAmB2B,CAAgB;AAGnD,MAAA3B,EAAO,cAAc,mBAAmB2B,CAAgB;AAAA;;;;;SA9C7ChB,EAAQ;AAAA;;;;;;;;"}