@annotorious/react 3.0.0-rc.20 → 3.0.0-rc.22
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.
- package/dist/annotorious-react.css +1 -1
- package/dist/annotorious-react.es.js +23 -23
- package/dist/annotorious-react.es10.js +14 -27
- package/dist/annotorious-react.es10.js.map +1 -1
- package/dist/annotorious-react.es11.js +6 -36
- package/dist/annotorious-react.es11.js.map +1 -1
- package/dist/annotorious-react.es12.js +8 -16
- package/dist/annotorious-react.es12.js.map +1 -1
- package/dist/annotorious-react.es13.js +153 -6
- package/dist/annotorious-react.es13.js.map +1 -1
- package/dist/annotorious-react.es14.js +31 -7
- package/dist/annotorious-react.es14.js.map +1 -1
- package/dist/annotorious-react.es15.js +2 -153
- package/dist/annotorious-react.es15.js.map +1 -1
- package/dist/annotorious-react.es16.js +29 -27435
- package/dist/annotorious-react.es16.js.map +1 -1
- package/dist/annotorious-react.es17.js +599 -32
- package/dist/annotorious-react.es17.js.map +1 -1
- package/dist/annotorious-react.es18.js +2 -2
- package/dist/annotorious-react.es19.js +2 -30
- package/dist/annotorious-react.es19.js.map +1 -1
- package/dist/annotorious-react.es2.js +2 -2
- package/dist/annotorious-react.es4.js +2 -2
- package/dist/annotorious-react.es5.js +8 -8
- package/dist/annotorious-react.es8.js +27 -86
- package/dist/annotorious-react.es8.js.map +1 -1
- package/dist/annotorious-react.es9.js +30 -4233
- package/dist/annotorious-react.es9.js.map +1 -1
- package/package.json +8 -8
- package/dist/annotorious-react.es20.js +0 -602
- package/dist/annotorious-react.es20.js.map +0 -1
- package/dist/annotorious-react.es21.js +0 -5
- package/dist/annotorious-react.es21.js.map +0 -1
- package/dist/annotorious-react.es22.js +0 -5
- package/dist/annotorious-react.es22.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
canvas.a9s-gl-canvas{height:100%;left:0;position:absolute;top:0;width:100%}canvas.a9s-gl-canvas.hover{cursor:pointer!important}svg.svelte-190cqdf.svelte-190cqdf{pointer-events:none}svg.drawing.svelte-190cqdf.svelte-190cqdf{pointer-events:all}svg.svelte-190cqdf .svelte-190cqdf{pointer-events:all}text.svelte-1rehw2p{fill:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:600}rect.svelte-1rehw2p{stroke-width:1.2;vector-effect:non-scaling-stroke}polygon.svelte-fgq4n0{stroke-width:1.2;vector-effect:non-scaling-stroke}rect.svelte-gze948{stroke-width:1.2;vector-effect:non-scaling-stroke}svg.svelte-1krwc4m{position:absolute;top:0;left:0;width:100%;height:100%;outline:none;pointer-events:none}.a9s-touch-halo.svelte-1sgkh33{fill:transparent;stroke-width:0}.a9s-touch-halo.touched.svelte-1sgkh33{fill:#ffffff40}.a9s-annotationlayer{box-sizing:border-box;height:100%;left:0;outline:none;position:absolute;top:0;touch-action:none;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.a9s-annotationlayer ellipse,.a9s-annotationlayer polygon,.a9s-annotationlayer rect{fill:transparent;shape-rendering:geometricPrecision;vector-effect:non-scaling-stroke}.a9s-edge-handle{fill:transparent;stroke:transparent;stroke-width:6px}.a9s-shape-handle,.a9s-handle{cursor:move}.a9s-edge-handle-top{cursor:n-resize}.a9s-edge-handle-right{cursor:e-resize}.a9s-edge-handle-bottom{cursor:s-resize}.a9s-edge-handle-left{cursor:w-resize}.a9s-handle.a9s-corner-handle-topleft{cursor:nw-resize}.a9s-handle.a9s-corner-handle-topright{cursor:ne-resize}.a9s-handle.a9s-corner-handle-bottomright{cursor:se-resize}.a9s-handle.a9s-corner-handle-bottomleft{cursor:sw-resize}.a9s-annotationlayer .a9s-outer,div[data-theme=dark] .a9s-annotationlayer .a9s-outer{display:none}.a9s-annotationlayer .a9s-inner,div[data-theme=dark] .a9s-annotationlayer .a9s-inner{fill:#0000001f;stroke:#000;stroke-width:1px}rect.a9s-handle,div[data-theme=dark] rect.a9s-handle{fill:#000;rx:2px}rect.a9s-close-polygon-handle,div[data-theme=dark] rect.a9s-close-polygon-handle{fill:#000;rx:1px}.a9s-annotationlayer .a9s-outer,div[data-theme=light] .a9s-annotationlayer .a9s-outer{display:block;stroke:#00000040;stroke-width:3.5px}.a9s-annotationlayer .a9s-inner,div[data-theme=light] .a9s-annotationlayer .a9s-inner{fill:#ffffff26;stroke:#fff;stroke-width:1.5px}rect.a9s-handle,div[data-theme=light] rect.a9s-handle{fill:#fff;rx:1px;stroke:#00000073;stroke-width:1px}rect.a9s-close-polygon-handle,div[data-theme=light] rect.a9s-close-polygon-handle{fill:#fff;rx:1px;stroke:#00000073;stroke-width:1px}
|
|
1
|
+
canvas.a9s-gl-canvas{height:100%;left:0;position:absolute;top:0;width:100%}canvas.a9s-gl-canvas.hidden{display:none}canvas.a9s-gl-canvas.hover{cursor:pointer!important}svg.svelte-190cqdf.svelte-190cqdf{pointer-events:none}svg.drawing.svelte-190cqdf.svelte-190cqdf{pointer-events:all}svg.svelte-190cqdf .svelte-190cqdf{pointer-events:all}text.svelte-1rehw2p{fill:#fff;font-family:Arial,Helvetica,sans-serif;font-weight:600}rect.svelte-1rehw2p{stroke-width:1.2;vector-effect:non-scaling-stroke}polygon.svelte-fgq4n0{stroke-width:1.2;vector-effect:non-scaling-stroke}rect.svelte-gze948{stroke-width:1.2;vector-effect:non-scaling-stroke}svg.svelte-1krwc4m{position:absolute;top:0;left:0;width:100%;height:100%;outline:none;pointer-events:none}.a9s-touch-halo.svelte-1sgkh33{fill:transparent;stroke-width:0}.a9s-touch-halo.touched.svelte-1sgkh33{fill:#ffffff40}.a9s-annotationlayer{box-sizing:border-box;height:100%;left:0;outline:none;position:absolute;top:0;touch-action:none;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.a9s-annotationlayer.hidden{display:none}.a9s-annotationlayer ellipse,.a9s-annotationlayer polygon,.a9s-annotationlayer rect{fill:transparent;shape-rendering:geometricPrecision;vector-effect:non-scaling-stroke}.a9s-edge-handle{fill:transparent;stroke:transparent;stroke-width:6px}.a9s-shape-handle,.a9s-handle{cursor:move}.a9s-edge-handle-top{cursor:n-resize}.a9s-edge-handle-right{cursor:e-resize}.a9s-edge-handle-bottom{cursor:s-resize}.a9s-edge-handle-left{cursor:w-resize}.a9s-handle.a9s-corner-handle-topleft{cursor:nw-resize}.a9s-handle.a9s-corner-handle-topright{cursor:ne-resize}.a9s-handle.a9s-corner-handle-bottomright{cursor:se-resize}.a9s-handle.a9s-corner-handle-bottomleft{cursor:sw-resize}.a9s-annotationlayer .a9s-outer,div[data-theme=dark] .a9s-annotationlayer .a9s-outer{display:none}.a9s-annotationlayer .a9s-inner,div[data-theme=dark] .a9s-annotationlayer .a9s-inner{fill:#0000001f;stroke:#000;stroke-width:1px}rect.a9s-handle,div[data-theme=dark] rect.a9s-handle{fill:#000;rx:2px}rect.a9s-close-polygon-handle,div[data-theme=dark] rect.a9s-close-polygon-handle{fill:#000;rx:1px}.a9s-annotationlayer .a9s-outer,div[data-theme=light] .a9s-annotationlayer .a9s-outer{display:block;stroke:#00000040;stroke-width:3.5px}.a9s-annotationlayer .a9s-inner,div[data-theme=light] .a9s-annotationlayer .a9s-inner{fill:#ffffff26;stroke:#fff;stroke-width:1.5px}rect.a9s-handle,div[data-theme=light] rect.a9s-handle{fill:#fff;rx:1px;stroke:#00000073;stroke-width:1px}rect.a9s-close-polygon-handle,div[data-theme=light] rect.a9s-close-polygon-handle{fill:#fff;rx:1px;stroke:#00000073;stroke-width:1px}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { Annotorious as
|
|
1
|
+
import { Annotorious as g, AnnotoriousContext as A, useAnnotationStore as c, useAnnotations as f, useAnnotator as x, useAnnotatorUser as S, useSelection as I, useViewportState as d } from "./annotorious-react.es2.js";
|
|
2
2
|
import { AnnotoriousPlugin as y } from "./annotorious-react.es3.js";
|
|
3
3
|
import { Draggable as O } from "./annotorious-react.es4.js";
|
|
4
|
-
import { ImageAnnotator as
|
|
4
|
+
import { ImageAnnotator as h } from "./annotorious-react.es5.js";
|
|
5
5
|
import "./annotorious-react.es6.js";
|
|
6
6
|
import "./annotorious-react.es7.js";
|
|
7
|
-
import { Origin as
|
|
8
|
-
import { createImageAnnotator as o, ShapeType as e, W3CImageFormat as t } from "
|
|
9
|
-
import { OpenSeadragonAnnotator as
|
|
10
|
-
import { OpenSeadragonPopup as G } from "./annotorious-react.
|
|
11
|
-
import { OpenSeadragonViewer as
|
|
12
|
-
const p = o,
|
|
7
|
+
import { Origin as F, PointerSelectAction as T, createAnonymousGuest as V, createBody as W, defaultColorProvider as $ } from "@annotorious/core";
|
|
8
|
+
import { createImageAnnotator as o, ShapeType as e, W3CImageFormat as t } from "@annotorious/annotorious";
|
|
9
|
+
import { OpenSeadragonAnnotator as v, useViewer as B } from "./annotorious-react.es8.js";
|
|
10
|
+
import { OpenSeadragonPopup as G } from "./annotorious-react.es9.js";
|
|
11
|
+
import { OpenSeadragonViewer as j } from "./annotorious-react.es10.js";
|
|
12
|
+
const p = o, m = e, s = t;
|
|
13
13
|
export {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
g as Annotorious,
|
|
15
|
+
A as AnnotoriousContext,
|
|
16
16
|
y as AnnotoriousPlugin,
|
|
17
17
|
O as Draggable,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
h as ImageAnnotator,
|
|
19
|
+
v as OpenSeadragonAnnotator,
|
|
20
20
|
G as OpenSeadragonPopup,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
j as OpenSeadragonViewer,
|
|
22
|
+
F as Origin,
|
|
23
|
+
T as PointerSelectAction,
|
|
24
|
+
m as ShapeType,
|
|
25
|
+
s as W3CImageFormat,
|
|
26
|
+
V as createAnonymousGuest,
|
|
27
|
+
W as createBody,
|
|
28
28
|
p as createImageAnnotator,
|
|
29
|
-
|
|
29
|
+
$ as defaultColorProvider,
|
|
30
30
|
c as useAnnotationStore,
|
|
31
31
|
f as useAnnotations,
|
|
32
32
|
x as useAnnotator,
|
|
33
33
|
S as useAnnotatorUser,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
I as useSelection,
|
|
35
|
+
B as useViewer,
|
|
36
|
+
d as useViewportState
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=annotorious-react.es.js.map
|
|
@@ -1,32 +1,19 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
const
|
|
6
|
-
const {
|
|
7
|
-
return
|
|
8
|
-
if (
|
|
9
|
-
const
|
|
10
|
-
return e
|
|
11
|
-
|
|
1
|
+
import { j as a } from "./annotorious-react.es11.js";
|
|
2
|
+
import { forwardRef as m, useRef as p, useContext as u, useEffect as c, useImperativeHandle as d } from "react";
|
|
3
|
+
import l from "openseadragon";
|
|
4
|
+
import { OpenSeadragonAnnotatorContext as x } from "./annotorious-react.es8.js";
|
|
5
|
+
const S = m((n, s) => {
|
|
6
|
+
const { className: i, options: t } = n, r = p(null), { viewer: f, setViewer: e } = u(x);
|
|
7
|
+
return c(() => {
|
|
8
|
+
if (r.current) {
|
|
9
|
+
const o = l({ ...t, element: r.current });
|
|
10
|
+
return e && e(o), () => {
|
|
11
|
+
o.destroy(), e && e(void 0);
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
-
}, [
|
|
15
|
-
|
|
16
|
-
}, [e.drawingEnabled]), i(() => {
|
|
17
|
-
t && t.setFilter(e.filter);
|
|
18
|
-
}, [e.filter]), i(() => {
|
|
19
|
-
t && t.setStyle(e.style);
|
|
20
|
-
}, [e.style]), i(() => {
|
|
21
|
-
t && t.setDrawingTool(r);
|
|
22
|
-
}, [r]), /* @__PURE__ */ c.jsx(s.Provider, { value: { viewer: o, setViewer: f }, children: e.children });
|
|
23
|
-
}, A = () => {
|
|
24
|
-
const { viewer: e } = a(s);
|
|
25
|
-
return e;
|
|
26
|
-
};
|
|
14
|
+
}, [JSON.stringify(t)]), d(s, () => f), /* @__PURE__ */ a.jsx("div", { className: i, ref: r });
|
|
15
|
+
});
|
|
27
16
|
export {
|
|
28
|
-
S as
|
|
29
|
-
s as OpenSeadragonAnnotatorContext,
|
|
30
|
-
A as useViewer
|
|
17
|
+
S as OpenSeadragonViewer
|
|
31
18
|
};
|
|
32
19
|
//# sourceMappingURL=annotorious-react.es10.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-react.es10.js","sources":["../src/openseadragon/
|
|
1
|
+
{"version":3,"file":"annotorious-react.es10.js","sources":["../src/openseadragon/OpenSeadragonViewer.tsx"],"sourcesContent":["import { forwardRef, useContext, useEffect, useImperativeHandle, useRef } from 'react';\nimport OpenSeadragon from 'openseadragon';\nimport { OpenSeadragonAnnotatorContext } from './OpenSeadragonAnnotator';\n\nexport interface OpenSeadragonViewerProps {\n\n className?: string;\n\n options: OpenSeadragon.Options;\n\n}\n\nexport const OpenSeadragonViewer = forwardRef<OpenSeadragon.Viewer, OpenSeadragonViewerProps>((props: OpenSeadragonViewerProps, ref) => {\n\n const { className, options } = props;\n\n const element = useRef<HTMLDivElement>(null);\n\n const { viewer, setViewer } = useContext(OpenSeadragonAnnotatorContext);\n\n useEffect(() => { \n if (element.current) {\n const v = OpenSeadragon({...options, element: element.current });\n\n // Checking for setViewer is just a convenience so we can\n // use this component also without an OpenSeadragonAnnotator\n if (setViewer)\n setViewer(v);\n\n return () => {\n v.destroy();\n\n if (setViewer) \n setViewer(undefined);\n }\n }\n }, [JSON.stringify(options)]);\n\n useImperativeHandle(ref, () => viewer);\n\n return (\n <div className={className} ref={element} />\n );\n\n});"],"names":["OpenSeadragonViewer","forwardRef","props","ref","className","options","element","useRef","viewer","setViewer","useContext","OpenSeadragonAnnotatorContext","useEffect","v","OpenSeadragon","useImperativeHandle","jsx"],"mappings":";;;;AAYO,MAAMA,IAAsBC,EAA2D,CAACC,GAAiCC,MAAQ;AAEhI,QAAA,EAAE,WAAAC,GAAW,SAAAC,EAAY,IAAAH,GAEzBI,IAAUC,EAAuB,IAAI,GAErC,EAAE,QAAAC,GAAQ,WAAAC,EAAU,IAAIC,EAAWC,CAA6B;AAEtE,SAAAC,EAAU,MAAM;AACd,QAAIN,EAAQ,SAAS;AACb,YAAAO,IAAIC,EAAc,EAAC,GAAGT,GAAS,SAASC,EAAQ,SAAS;AAI3D,aAAAG,KACFA,EAAUI,CAAC,GAEN,MAAM;AACX,QAAAA,EAAE,QAAQ,GAENJ,KACFA,EAAU,MAAS;AAAA,MAAA;AAAA,IAEzB;AAAA,KACC,CAAC,KAAK,UAAUJ,CAAO,CAAC,CAAC,GAERU,EAAAZ,GAAK,MAAMK,CAAM,GAGlCQ,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAAZ,GAAsB,KAAKE,EAAS,CAAA;AAG7C,CAAC;"}
|
|
@@ -1,39 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { setPosition as D } from "./annotorious-react.es17.js";
|
|
7
|
-
const R = (c) => {
|
|
8
|
-
const n = w(null), o = S(), { selected: t } = j(), [l, m] = d([]), [s, i] = d(!1), f = () => i(!0), p = () => {
|
|
9
|
-
const e = t[0].annotation;
|
|
10
|
-
D(o, e, n.current);
|
|
11
|
-
}, g = (e, r) => e.every((a) => r.includes(a)) && r.every((a) => e.includes(a));
|
|
12
|
-
return u(() => {
|
|
13
|
-
const e = t.map(({ annotation: r }) => r.id);
|
|
14
|
-
g(l, e) || (i(!1), m(e));
|
|
15
|
-
}, [t]), u(() => {
|
|
16
|
-
if (!n.current)
|
|
17
|
-
return;
|
|
18
|
-
s || p();
|
|
19
|
-
const e = () => {
|
|
20
|
-
s || p();
|
|
21
|
-
};
|
|
22
|
-
return o.addHandler("update-viewport", e), () => {
|
|
23
|
-
o.removeHandler("update-viewport", e);
|
|
24
|
-
};
|
|
25
|
-
}, [t, s]), t.length > 0 ? /* @__PURE__ */ v.jsx(
|
|
26
|
-
x,
|
|
27
|
-
{
|
|
28
|
-
ref: n,
|
|
29
|
-
className: "a9s-popup a9s-osd-popup",
|
|
30
|
-
onDragStart: f,
|
|
31
|
-
children: c.popup({ viewer: o, selected: t })
|
|
32
|
-
},
|
|
33
|
-
t.map(({ annotation: e }) => e.id).join("-")
|
|
34
|
-
) : null;
|
|
35
|
-
};
|
|
1
|
+
import { __module as e } from "./annotorious-react.es15.js";
|
|
2
|
+
import { __require as r } from "./annotorious-react.es16.js";
|
|
3
|
+
import { __require as o } from "./annotorious-react.es17.js";
|
|
4
|
+
process.env.NODE_ENV === "production" ? e.exports = r() : e.exports = o();
|
|
5
|
+
var m = e.exports;
|
|
36
6
|
export {
|
|
37
|
-
|
|
7
|
+
m as j
|
|
38
8
|
};
|
|
39
9
|
//# sourceMappingURL=annotorious-react.es11.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-react.es11.js","sources":["
|
|
1
|
+
{"version":3,"file":"annotorious-react.es11.js","sources":["../../../node_modules/react/jsx-runtime.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"names":["jsxRuntimeModule","require$$0","require$$1"],"mappings":";;;AAEI,QAAQ,IAAI,aAAa,eAC3BA,EAAA,UAAiBC,MAEjBD,EAAA,UAAiBE;;","x_google_ignoreList":[0]}
|
|
@@ -1,19 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (r.current) {
|
|
9
|
-
const o = l({ ...t, element: r.current });
|
|
10
|
-
return e && e(o), () => {
|
|
11
|
-
o.destroy(), e && e(void 0);
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
}, [JSON.stringify(t)]), d(s, () => f), /* @__PURE__ */ m.jsx("div", { className: i, ref: r });
|
|
15
|
-
});
|
|
1
|
+
import { useState as c, useRef as n, useEffect as s } from "react";
|
|
2
|
+
const m = (e, t) => {
|
|
3
|
+
const [u, o] = c(e), r = n();
|
|
4
|
+
return s(() => (r.current = setTimeout(() => o(e), t), () => {
|
|
5
|
+
clearTimeout(r.current);
|
|
6
|
+
}), [e, t]), u;
|
|
7
|
+
};
|
|
16
8
|
export {
|
|
17
|
-
|
|
9
|
+
m as useDebounce
|
|
18
10
|
};
|
|
19
11
|
//# sourceMappingURL=annotorious-react.es12.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-react.es12.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"annotorious-react.es12.js","sources":["../src/useDebounce.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport const useDebounce = (value: any, delay: number) => {\n const [debouncedValue, setDebouncedValue] = useState<any>(value);\n\n const timerRef = useRef<ReturnType<typeof setTimeout>>();\n\n useEffect(() => {\n timerRef.current = \n setTimeout(() => setDebouncedValue(value), delay);\n\n return () => {\n clearTimeout(timerRef.current);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","useState","timerRef","useRef","useEffect"],"mappings":";AAEa,MAAAA,IAAc,CAACC,GAAYC,MAAkB;AACxD,QAAM,CAACC,GAAgBC,CAAiB,IAAIC,EAAcJ,CAAK,GAEzDK,IAAWC;AAEjB,SAAAC,EAAU,OACRF,EAAS,UACP,WAAW,MAAMF,EAAkBH,CAAK,GAAGC,CAAK,GAE3C,MAAM;AACX,iBAAaI,EAAS,OAAO;AAAA,EAAA,IAE9B,CAACL,GAAOC,CAAK,CAAC,GAEVC;AACT;"}
|
|
@@ -1,9 +1,156 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { useRef as ge, useState as ae, useEffect as ie } from "react";
|
|
2
|
+
var O = { dragStart: !0 }, he = (e, t = {}) => {
|
|
3
|
+
let o, c, { bounds: l, axis: m = "both", gpuAcceleration: f = !0, legacyTranslate: B = !0, transform: M, applyUserSelectHack: N = !0, disabled: R = !1, ignoreMultitouch: $ = !1, recomputeBounds: b = O, grid: H, position: u, cancel: D, handle: E, defaultClass: S = "neodrag", defaultClassDragging: i = "neodrag-dragging", defaultClassDragged: g = "neodrag-dragged", defaultPosition: W = { x: 0, y: 0 }, onDragStart: ce, onDrag: le, onDragEnd: ue } = t, X = !1, x = 0, A = 0, L = 0, T = 0, j = 0, z = 0, { x: Y, y: q } = u ? { x: (u == null ? void 0 : u.x) ?? 0, y: (u == null ? void 0 : u.y) ?? 0 } : W;
|
|
4
|
+
I(Y, q);
|
|
5
|
+
let y, C, P, F, _, ee = "", fe = !!u;
|
|
6
|
+
b = { ...O, ...b };
|
|
7
|
+
const G = document.body.style, v = e.classList;
|
|
8
|
+
function I(n = x, a = A) {
|
|
9
|
+
if (!M) {
|
|
10
|
+
if (B) {
|
|
11
|
+
let d = `${+n}px, ${+a}px`;
|
|
12
|
+
return k(e, "transform", f ? `translate3d(${d}, 0)` : `translate(${d})`);
|
|
13
|
+
}
|
|
14
|
+
return k(e, "translate", `${+n}px ${+a}px ${f ? "1px" : ""}`);
|
|
15
|
+
}
|
|
16
|
+
const s = M({ offsetX: n, offsetY: a, rootNode: e });
|
|
17
|
+
Q(s) && k(e, "transform", s);
|
|
18
|
+
}
|
|
19
|
+
const J = (n, a) => {
|
|
20
|
+
const s = { offsetX: x, offsetY: A, rootNode: e, currentNode: _ };
|
|
21
|
+
e.dispatchEvent(new CustomEvent(n, { detail: s })), a == null || a(s);
|
|
22
|
+
}, K = addEventListener;
|
|
23
|
+
K("pointerdown", re, !1), K("pointerup", te, !1), K("pointermove", oe, !1), k(e, "touch-action", "none");
|
|
24
|
+
const ne = () => {
|
|
25
|
+
let n = e.offsetWidth / C.width;
|
|
26
|
+
return isNaN(n) && (n = 1), n;
|
|
27
|
+
};
|
|
28
|
+
function re(n) {
|
|
29
|
+
if (R || n.button === 2 || $ && !n.isPrimary)
|
|
30
|
+
return;
|
|
31
|
+
if (b.dragStart && (y = V(l, e)), Q(E) && Q(D) && E === D)
|
|
32
|
+
throw new Error("`handle` selector can't be same as `cancel` selector");
|
|
33
|
+
if (v.add(S), P = function(r, p) {
|
|
34
|
+
if (!r)
|
|
35
|
+
return [p];
|
|
36
|
+
if (Z(r))
|
|
37
|
+
return [r];
|
|
38
|
+
if (Array.isArray(r))
|
|
39
|
+
return r;
|
|
40
|
+
const w = p.querySelectorAll(r);
|
|
41
|
+
if (w === null)
|
|
42
|
+
throw new Error("Selector passed for `handle` option should be child of the element on which the action is applied");
|
|
43
|
+
return Array.from(w.values());
|
|
44
|
+
}(E, e), F = function(r, p) {
|
|
45
|
+
if (!r)
|
|
46
|
+
return [];
|
|
47
|
+
if (Z(r))
|
|
48
|
+
return [r];
|
|
49
|
+
if (Array.isArray(r))
|
|
50
|
+
return r;
|
|
51
|
+
const w = p.querySelectorAll(r);
|
|
52
|
+
if (w === null)
|
|
53
|
+
throw new Error("Selector passed for `cancel` option should be child of the element on which the action is applied");
|
|
54
|
+
return Array.from(w.values());
|
|
55
|
+
}(D, e), o = /(both|x)/.test(m), c = /(both|y)/.test(m), de(F, P))
|
|
56
|
+
throw new Error("Element being dragged can't be a child of the element on which `cancel` is applied");
|
|
57
|
+
const a = n.composedPath()[0];
|
|
58
|
+
if (!P.some((r) => {
|
|
59
|
+
var p;
|
|
60
|
+
return r.contains(a) || ((p = r.shadowRoot) == null ? void 0 : p.contains(a));
|
|
61
|
+
}) || de(F, [a]))
|
|
62
|
+
return;
|
|
63
|
+
_ = P.length === 1 ? e : P.find((r) => r.contains(a)), X = !0, C = e.getBoundingClientRect(), N && (ee = G.userSelect, G.userSelect = "none"), J("neodrag:start", ce);
|
|
64
|
+
const { clientX: s, clientY: d } = n, h = ne();
|
|
65
|
+
o && (L = s - Y / h), c && (T = d - q / h), y && (j = s - C.left, z = d - C.top);
|
|
66
|
+
}
|
|
67
|
+
function te() {
|
|
68
|
+
X && (b.dragEnd && (y = V(l, e)), v.remove(i), v.add(g), N && (G.userSelect = ee), J("neodrag:end", ue), o && (L = x), c && (T = A), X = !1);
|
|
69
|
+
}
|
|
70
|
+
function oe(n) {
|
|
71
|
+
if (!X)
|
|
72
|
+
return;
|
|
73
|
+
b.drag && (y = V(l, e)), v.add(i), n.preventDefault(), C = e.getBoundingClientRect();
|
|
74
|
+
let a = n.clientX, s = n.clientY;
|
|
75
|
+
const d = ne();
|
|
76
|
+
if (y) {
|
|
77
|
+
const h = { left: y.left + j, top: y.top + z, right: y.right + j - C.width, bottom: y.bottom + z - C.height };
|
|
78
|
+
a = se(a, h.left, h.right), s = se(s, h.top, h.bottom);
|
|
79
|
+
}
|
|
80
|
+
if (Array.isArray(H)) {
|
|
81
|
+
let [h, r] = H;
|
|
82
|
+
if (isNaN(+h) || h < 0)
|
|
83
|
+
throw new Error("1st argument of `grid` must be a valid positive number");
|
|
84
|
+
if (isNaN(+r) || r < 0)
|
|
85
|
+
throw new Error("2nd argument of `grid` must be a valid positive number");
|
|
86
|
+
let p = a - L, w = s - T;
|
|
87
|
+
[p, w] = pe([h / d, r / d], p, w), a = L + p, s = T + w;
|
|
88
|
+
}
|
|
89
|
+
o && (x = Math.round((a - L) * d)), c && (A = Math.round((s - T) * d)), Y = x, q = A, J("neodrag", le), I();
|
|
90
|
+
}
|
|
91
|
+
return { destroy: () => {
|
|
92
|
+
const n = removeEventListener;
|
|
93
|
+
n("pointerdown", re, !1), n("pointerup", te, !1), n("pointermove", oe, !1);
|
|
94
|
+
}, update: (n) => {
|
|
95
|
+
var s, d;
|
|
96
|
+
m = n.axis || "both", R = n.disabled ?? !1, $ = n.ignoreMultitouch ?? !1, E = n.handle, l = n.bounds, b = n.recomputeBounds ?? O, D = n.cancel, N = n.applyUserSelectHack ?? !0, H = n.grid, f = n.gpuAcceleration ?? !0, B = n.legacyTranslate ?? !0, M = n.transform;
|
|
97
|
+
const a = v.contains(g);
|
|
98
|
+
v.remove(S, g), S = n.defaultClass ?? "neodrag", i = n.defaultClassDragging ?? "neodrag-dragging", g = n.defaultClassDragged ?? "neodrag-dragged", v.add(S), a && v.add(g), fe && (Y = x = ((s = n.position) == null ? void 0 : s.x) ?? x, q = A = ((d = n.position) == null ? void 0 : d.y) ?? A, I());
|
|
99
|
+
} };
|
|
100
|
+
}, se = (e, t, o) => Math.min(Math.max(e, t), o), Q = (e) => typeof e == "string", pe = ([e, t], o, c) => {
|
|
101
|
+
const l = (m, f) => f === 0 ? 0 : Math.ceil(m / f) * f;
|
|
102
|
+
return [l(o, e), l(c, t)];
|
|
103
|
+
}, de = (e, t) => e.some((o) => t.some((c) => o.contains(c)));
|
|
104
|
+
function V(e, t) {
|
|
105
|
+
if (e === void 0)
|
|
106
|
+
return;
|
|
107
|
+
if (Z(e))
|
|
108
|
+
return e.getBoundingClientRect();
|
|
109
|
+
if (typeof e == "object") {
|
|
110
|
+
const { top: c = 0, left: l = 0, right: m = 0, bottom: f = 0 } = e;
|
|
111
|
+
return { top: c, right: window.innerWidth - m, bottom: window.innerHeight - f, left: l };
|
|
112
|
+
}
|
|
113
|
+
if (e === "parent")
|
|
114
|
+
return t.parentNode.getBoundingClientRect();
|
|
115
|
+
const o = document.querySelector(e);
|
|
116
|
+
if (o === null)
|
|
117
|
+
throw new Error("The selector provided for bound doesn't exists in the document.");
|
|
118
|
+
return o.getBoundingClientRect();
|
|
119
|
+
}
|
|
120
|
+
var k = (e, t, o) => e.style.setProperty(t, o), Z = (e) => e instanceof HTMLElement;
|
|
121
|
+
function U(e) {
|
|
122
|
+
return e == null || typeof e == "string" || e instanceof HTMLElement ? e : "current" in e ? e.current : Array.isArray(e) ? e.map((t) => t instanceof HTMLElement ? t : t.current) : void 0;
|
|
123
|
+
}
|
|
124
|
+
function ye(e, t = {}) {
|
|
125
|
+
const o = ge(), [c, l] = ae(!1), [m, f] = ae();
|
|
126
|
+
let { onDragStart: B, onDrag: M, onDragEnd: N, handle: R, cancel: $ } = t, b = U(R), H = U($);
|
|
127
|
+
function u(i, g) {
|
|
128
|
+
f(i), g == null || g(i);
|
|
129
|
+
}
|
|
130
|
+
function D(i) {
|
|
131
|
+
l(!0), u(i, B);
|
|
132
|
+
}
|
|
133
|
+
function E(i) {
|
|
134
|
+
u(i, M);
|
|
135
|
+
}
|
|
136
|
+
function S(i) {
|
|
137
|
+
l(!1), u(i, N);
|
|
138
|
+
}
|
|
139
|
+
return ie(() => {
|
|
140
|
+
if (typeof window > "u")
|
|
141
|
+
return;
|
|
142
|
+
const i = e.current;
|
|
143
|
+
if (!i)
|
|
144
|
+
return;
|
|
145
|
+
({ onDragStart: B, onDrag: M, onDragEnd: N } = t);
|
|
146
|
+
const { update: g, destroy: W } = he(i, { ...t, handle: b, cancel: H, onDragStart: D, onDrag: E, onDragEnd: S });
|
|
147
|
+
return o.current = g, W;
|
|
148
|
+
}, []), ie(() => {
|
|
149
|
+
var i;
|
|
150
|
+
(i = o.current) == null || i.call(o, { ...t, handle: U(R), cancel: U($), onDragStart: D, onDrag: E, onDragEnd: S });
|
|
151
|
+
}, [t]), { isDragging: c, dragState: m };
|
|
152
|
+
}
|
|
6
153
|
export {
|
|
7
|
-
|
|
154
|
+
ye as useDraggable
|
|
8
155
|
};
|
|
9
156
|
//# sourceMappingURL=annotorious-react.es13.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-react.es13.js","sources":["../../../node_modules/react/jsx-runtime.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"names":["jsxRuntimeModule","require$$0","require$$1"],"mappings":";;;AAEI,QAAQ,IAAI,aAAa,eAC3BA,EAAA,UAAiBC,MAEjBD,EAAA,UAAiBE;;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"annotorious-react.es13.js","sources":["../../../node_modules/@neodrag/react/dist/min/index.js"],"sourcesContent":["import{useRef as t,useState as e,useEffect as n}from\"react\";var r={dragStart:!0},o=(t,e={})=>{let n,o,{bounds:f,axis:g=\"both\",gpuAcceleration:h=!0,legacyTranslate:p=!0,transform:m,applyUserSelectHack:y=!0,disabled:w=!1,ignoreMultitouch:b=!1,recomputeBounds:v=r,grid:D,position:E,cancel:S,handle:x,defaultClass:A=\"neodrag\",defaultClassDragging:C=\"neodrag-dragging\",defaultClassDragged:M=\"neodrag-dragged\",defaultPosition:N={x:0,y:0},onDragStart:B,onDrag:$,onDragEnd:H}=e,L=!1,R=0,T=0,P=0,X=0,Y=0,q=0,{x:k,y:U}=E?{x:E?.x??0,y:E?.y??0}:N;Q(k,U);let W,j,z,F,G,I=\"\",J=!!E;v={...r,...v};const K=document.body.style,O=t.classList;function Q(e=R,n=T){if(!m){if(p){let r=`${+e}px, ${+n}px`;return l(t,\"transform\",h?`translate3d(${r}, 0)`:`translate(${r})`)}return l(t,\"translate\",`${+e}px ${+n}px ${h?\"1px\":\"\"}`)}const r=m({offsetX:e,offsetY:n,rootNode:t});i(r)&&l(t,\"transform\",r)}const V=(e,n)=>{const r={offsetX:R,offsetY:T,rootNode:t,currentNode:G};t.dispatchEvent(new CustomEvent(e,{detail:r})),n?.(r)};const Z=addEventListener;Z(\"pointerdown\",tt,!1),Z(\"pointerup\",et,!1),Z(\"pointermove\",nt,!1),l(t,\"touch-action\",\"none\");const _=()=>{let e=t.offsetWidth/j.width;return isNaN(e)&&(e=1),e};function tt(e){if(w)return;if(2===e.button)return;if(b&&!e.isPrimary)return;if(v.dragStart&&(W=c(f,t)),i(x)&&i(S)&&x===S)throw new Error(\"`handle` selector can't be same as `cancel` selector\");if(O.add(A),z=function(t,e){if(!t)return[e];if(u(t))return[t];if(Array.isArray(t))return t;const n=e.querySelectorAll(t);if(null===n)throw new Error(\"Selector passed for `handle` option should be child of the element on which the action is applied\");return Array.from(n.values())}(x,t),F=function(t,e){if(!t)return[];if(u(t))return[t];if(Array.isArray(t))return t;const n=e.querySelectorAll(t);if(null===n)throw new Error(\"Selector passed for `cancel` option should be child of the element on which the action is applied\");return Array.from(n.values())}(S,t),n=/(both|x)/.test(g),o=/(both|y)/.test(g),d(F,z))throw new Error(\"Element being dragged can't be a child of the element on which `cancel` is applied\");const r=e.composedPath()[0];if(!z.some((t=>t.contains(r)||t.shadowRoot?.contains(r)))||d(F,[r]))return;G=1===z.length?t:z.find((t=>t.contains(r))),L=!0,j=t.getBoundingClientRect(),y&&(I=K.userSelect,K.userSelect=\"none\"),V(\"neodrag:start\",B);const{clientX:a,clientY:s}=e,l=_();n&&(P=a-k/l),o&&(X=s-U/l),W&&(Y=a-j.left,q=s-j.top)}function et(){L&&(v.dragEnd&&(W=c(f,t)),O.remove(C),O.add(M),y&&(K.userSelect=I),V(\"neodrag:end\",H),n&&(P=R),o&&(X=T),L=!1)}function nt(e){if(!L)return;v.drag&&(W=c(f,t)),O.add(C),e.preventDefault(),j=t.getBoundingClientRect();let r=e.clientX,i=e.clientY;const d=_();if(W){const t={left:W.left+Y,top:W.top+q,right:W.right+Y-j.width,bottom:W.bottom+q-j.height};r=a(r,t.left,t.right),i=a(i,t.top,t.bottom)}if(Array.isArray(D)){let[t,e]=D;if(isNaN(+t)||t<0)throw new Error(\"1st argument of `grid` must be a valid positive number\");if(isNaN(+e)||e<0)throw new Error(\"2nd argument of `grid` must be a valid positive number\");let n=r-P,o=i-X;[n,o]=s([t/d,e/d],n,o),r=P+n,i=X+o}n&&(R=Math.round((r-P)*d)),o&&(T=Math.round((i-X)*d)),k=R,U=T,V(\"neodrag\",$),Q()}return{destroy:()=>{const t=removeEventListener;t(\"pointerdown\",tt,!1),t(\"pointerup\",et,!1),t(\"pointermove\",nt,!1)},update:t=>{g=t.axis||\"both\",w=t.disabled??!1,b=t.ignoreMultitouch??!1,x=t.handle,f=t.bounds,v=t.recomputeBounds??r,S=t.cancel,y=t.applyUserSelectHack??!0,D=t.grid,h=t.gpuAcceleration??!0,p=t.legacyTranslate??!0,m=t.transform;const e=O.contains(M);O.remove(A,M),A=t.defaultClass??\"neodrag\",C=t.defaultClassDragging??\"neodrag-dragging\",M=t.defaultClassDragged??\"neodrag-dragged\",O.add(A),e&&O.add(M),J&&(k=R=t.position?.x??R,U=T=t.position?.y??T,Q())}}},a=(t,e,n)=>Math.min(Math.max(t,e),n),i=t=>\"string\"==typeof t,s=([t,e],n,r)=>{const o=(t,e)=>0===e?0:Math.ceil(t/e)*e;return[o(n,t),o(r,e)]};var d=(t,e)=>t.some((t=>e.some((e=>t.contains(e)))));function c(t,e){if(void 0===t)return;if(u(t))return t.getBoundingClientRect();if(\"object\"==typeof t){const{top:e=0,left:n=0,right:r=0,bottom:o=0}=t;return{top:e,right:window.innerWidth-r,bottom:window.innerHeight-o,left:n}}if(\"parent\"===t)return e.parentNode.getBoundingClientRect();const n=document.querySelector(t);if(null===n)throw new Error(\"The selector provided for bound doesn't exists in the document.\");return n.getBoundingClientRect()}var l=(t,e,n)=>t.style.setProperty(e,n),u=t=>t instanceof HTMLElement;function f(t){return null==t||\"string\"==typeof t||t instanceof HTMLElement?t:\"current\"in t?t.current:Array.isArray(t)?t.map((t=>t instanceof HTMLElement?t:t.current)):void 0}function g(r,a={}){const i=t(),[s,d]=e(!1),[c,l]=e();let{onDragStart:u,onDrag:g,onDragEnd:h,handle:p,cancel:m}=a,y=f(p),w=f(m);function b(t,e){l(t),e?.(t)}function v(t){d(!0),b(t,u)}function D(t){b(t,g)}function E(t){d(!1),b(t,h)}return n((()=>{if(\"undefined\"==typeof window)return;const t=r.current;if(!t)return;({onDragStart:u,onDrag:g,onDragEnd:h}=a);const{update:e,destroy:n}=o(t,{...a,handle:y,cancel:w,onDragStart:v,onDrag:D,onDragEnd:E});return i.current=e,n}),[]),n((()=>{i.current?.({...a,handle:f(p),cancel:f(m),onDragStart:v,onDrag:D,onDragEnd:E})}),[a]),{isDragging:s,dragState:c}}export{g as useDraggable};"],"names":["r","o","t","e","n","f","g","h","p","m","y","w","b","v","D","E","S","x","A","C","M","N","B","$","H","L","R","T","P","X","Y","q","k","U","Q","W","j","z","G","I","J","K","O","l","i","V","Z","tt","et","nt","_","c","u","d","_a","a","s","_b"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,11 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
return
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import b from "openseadragon";
|
|
2
|
+
const L = (h, x) => {
|
|
3
|
+
const { minX: e, minY: n, maxX: i, maxY: t } = x.target.selector.geometry.bounds, l = h.viewport.imageToViewerElementCoordinates(new b.Point(e, n)), s = h.viewport.imageToViewerElementCoordinates(new b.Point(i, t));
|
|
4
|
+
return {
|
|
5
|
+
x: l.x,
|
|
6
|
+
right: s.x,
|
|
7
|
+
y: l.y,
|
|
8
|
+
bottom: s.y,
|
|
9
|
+
width: s.x - l.x,
|
|
10
|
+
height: s.y - l.y
|
|
11
|
+
};
|
|
12
|
+
}, T = (h, x, e, n = 5) => {
|
|
13
|
+
const i = h.element.getBoundingClientRect(), t = L(h, x), l = t.y - i.y, s = i.right - t.x, w = i.bottom - t.bottom, $ = t.x - i.left, o = e.firstElementChild.getBoundingClientRect(), a = l / o.height, c = s / o.width, g = w / o.height, r = $ / o.width, d = () => {
|
|
14
|
+
e.style.left = `${t.x}px`, e.style.top = `${t.y - n - o.height}px`;
|
|
15
|
+
}, f = () => {
|
|
16
|
+
e.style.left = `${t.right - o.width}px`, e.style.top = `${t.y - n - o.height}px`;
|
|
17
|
+
}, v = () => {
|
|
18
|
+
e.style.left = `${t.x - o.width - n}px`, e.style.top = `${t.y}px`;
|
|
19
|
+
}, B = () => {
|
|
20
|
+
e.style.left = `${t.right + n}px`, e.style.top = `${t.y}px`;
|
|
21
|
+
}, R = () => {
|
|
22
|
+
e.style.left = `${t.x - o.width - n}px`, e.style.top = `${t.bottom - o.height}px`;
|
|
23
|
+
}, C = () => {
|
|
24
|
+
e.style.left = `${t.x + t.width + n}px`, e.style.top = `${t.bottom - o.height}px`;
|
|
25
|
+
}, A = () => {
|
|
26
|
+
e.style.left = `${t.x}px`, e.style.top = `${t.bottom + n}px`;
|
|
27
|
+
}, E = () => {
|
|
28
|
+
e.style.left = `${t.right - o.width}px`, e.style.top = `${t.bottom + n}px`;
|
|
29
|
+
}, m = [a, c, g, r], y = m.indexOf(Math.max(...m));
|
|
30
|
+
y === 0 ? c > r ? d() : f() : y === 1 ? a > g ? C() : B() : y === 2 ? c > r ? A() : E() : a > g ? R() : v();
|
|
7
31
|
};
|
|
8
32
|
export {
|
|
9
|
-
|
|
33
|
+
T as setPosition
|
|
10
34
|
};
|
|
11
35
|
//# sourceMappingURL=annotorious-react.es14.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotorious-react.es14.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"annotorious-react.es14.js","sources":["../src/openseadragon/setPosition.ts"],"sourcesContent":["import { ImageAnnotation } from '@annotorious/annotorious';\nimport OpenSeadragon from 'openseadragon';\n\nconst getAnnotationDomRect = (viewer: OpenSeadragon.Viewer, annotation: ImageAnnotation) => {\n // Annotation bounds (image coordinates)\n const { minX, minY, maxX, maxY } = annotation.target.selector.geometry.bounds;\n\n // Annotation coordinates - viewer element coordinates\n const topLeft = viewer.viewport.imageToViewerElementCoordinates(new OpenSeadragon.Point(minX, minY));\n const bottomRight = viewer.viewport.imageToViewerElementCoordinates(new OpenSeadragon.Point(maxX, maxY));\n\n // Account for viewer element offset\n return {\n x: topLeft.x,\n right: bottomRight.x,\n y: topLeft.y, \n bottom: bottomRight.y,\n width: bottomRight.x - topLeft.x,\n height: bottomRight.y - topLeft.y,\n };\n}\n\nexport const setPosition = (\n viewer: OpenSeadragon.Viewer, \n annotation: ImageAnnotation, \n popup: HTMLElement,\n sideOffset: number = 5\n) => {\n const viewerBounds = viewer.element.getBoundingClientRect();\n const annoBounds = getAnnotationDomRect(viewer, annotation);\n\n // Available space above, right, below, left the annotation in the viewport\n const availableAbove = annoBounds.y - viewerBounds.y;\n const availableRight = viewerBounds.right - annoBounds.x;\n const availableBelow = viewerBounds.bottom - annoBounds.bottom;\n const availableLeft = annoBounds.x - viewerBounds.left;\n\n // Popup element bounds\n const popupBounds = popup.firstElementChild.getBoundingClientRect();\n\n // Eight possible base alignment anchor points\n //\n // topleft topright\n // * *\n // leftdown * |---------------------| * rightdown\n // | |\n // | |\n // | |\n // leftup * |---------------------| * rightup\n // * * \n // bottomleft bottomright\n //\n // We'll position the popup at the cardinal direction\n // with the highest ratio: available space vs. popup size.\n const ratioAbove = availableAbove / popupBounds.height;\n const ratioRight = availableRight / popupBounds.width;\n const ratioBelow = availableBelow / popupBounds.height;\n const ratioLeft = availableLeft / popupBounds.width;\n\n const topleft = () => {\n popup.style.left = `${annoBounds.x}px`;\n popup.style.top = `${annoBounds.y - sideOffset - popupBounds.height}px`;\n }\n\n const topright = () => {\n popup.style.left = `${annoBounds.right - popupBounds.width}px`;\n popup.style.top = `${annoBounds.y - sideOffset - popupBounds.height}px`;\n }\n\n const leftdown = () => {\n popup.style.left = `${annoBounds.x - popupBounds.width - sideOffset}px`;\n popup.style.top = `${annoBounds.y}px`;\n } \n\n const rightdown = () => {\n popup.style.left = `${annoBounds.right + sideOffset}px`;\n popup.style.top = `${annoBounds.y}px`;\n }\n\n const leftup = () => {\n popup.style.left = `${annoBounds.x - popupBounds.width - sideOffset}px`;\n popup.style.top = `${annoBounds.bottom - popupBounds.height}px`;\n }\n\n const rightup = () => {\n popup.style.left = `${annoBounds.x + annoBounds.width + sideOffset}px`;\n popup.style.top = `${annoBounds.bottom - popupBounds.height}px`;\n }\n\n const bottomleft = () => {\n popup.style.left = `${annoBounds.x}px`;\n popup.style.top = `${annoBounds.bottom + sideOffset}px`;\n }\n\n const bottomright = () => {\n popup.style.left = `${annoBounds.right - popupBounds.width}px`;\n popup.style.top = `${annoBounds.bottom + sideOffset}px`;\n }\n\n const ratios = [ratioAbove, ratioRight, ratioBelow, ratioLeft];\n const maxIdx = ratios.indexOf(Math.max(...ratios));\n\n if (maxIdx === 0) {\n // Main orientation: above\n if (ratioRight > ratioLeft)\n topleft();\n else \n topright();\n } else if (maxIdx === 1) {\n // Main orientation: right\n if (ratioAbove > ratioBelow)\n rightup();\n else\n rightdown();\n } else if (maxIdx === 2) {\n // Main orientation: below\n if (ratioRight > ratioLeft)\n bottomleft();\n else\n bottomright();\n } else {\n // Main orientation: left\n if (ratioAbove > ratioBelow)\n leftup();\n else \n leftdown();\n }\n}"],"names":["getAnnotationDomRect","viewer","annotation","minX","minY","maxX","maxY","topLeft","OpenSeadragon","bottomRight","setPosition","popup","sideOffset","viewerBounds","annoBounds","availableAbove","availableRight","availableBelow","availableLeft","popupBounds","ratioAbove","ratioRight","ratioBelow","ratioLeft","topleft","topright","leftdown","rightdown","leftup","rightup","bottomleft","bottomright","ratios","maxIdx"],"mappings":"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"}
|