@annotorious/react-manifold 0.0.11 → 0.0.13

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 (44) hide show
  1. package/dist/Annotorious.d.ts +13 -0
  2. package/dist/Annotorious.d.ts.map +1 -0
  3. package/dist/AnnotoriousManifold.d.ts +26 -0
  4. package/dist/AnnotoriousManifold.d.ts.map +1 -0
  5. package/dist/AnnotoriousManifoldInstance.d.ts +16 -0
  6. package/dist/AnnotoriousManifoldInstance.d.ts.map +1 -0
  7. package/dist/annotorious-react-manifold.es.js +13 -0
  8. package/dist/annotorious-react-manifold.es.js.map +1 -0
  9. package/dist/annotorious-react-manifold.es10.js +5 -0
  10. package/dist/annotorious-react-manifold.es10.js.map +1 -0
  11. package/dist/annotorious-react-manifold.es2.js +15 -0
  12. package/dist/annotorious-react-manifold.es2.js.map +1 -0
  13. package/dist/annotorious-react-manifold.es3.js +58 -0
  14. package/dist/annotorious-react-manifold.es3.js.map +1 -0
  15. package/dist/annotorious-react-manifold.es4.js +39 -0
  16. package/dist/annotorious-react-manifold.es4.js.map +1 -0
  17. package/dist/annotorious-react-manifold.es5.js +9 -0
  18. package/dist/annotorious-react-manifold.es5.js.map +1 -0
  19. package/dist/annotorious-react-manifold.es6.js +5 -0
  20. package/dist/annotorious-react-manifold.es6.js.map +1 -0
  21. package/dist/annotorious-react-manifold.es7.js +33 -0
  22. package/dist/annotorious-react-manifold.es7.js.map +1 -0
  23. package/dist/annotorious-react-manifold.es8.js +602 -0
  24. package/dist/annotorious-react-manifold.es8.js.map +1 -0
  25. package/dist/annotorious-react-manifold.es9.js +5 -0
  26. package/dist/annotorious-react-manifold.es9.js.map +1 -0
  27. package/dist/index.d.ts +4 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/synchronizeInstances.d.ts +3 -0
  30. package/dist/synchronizeInstances.d.ts.map +1 -0
  31. package/package.json +14 -4
  32. package/src/Annotorious.tsx +0 -48
  33. package/src/AnnotoriousManifold.tsx +0 -141
  34. package/src/AnnotoriousManifoldInstance.ts +0 -106
  35. package/src/index.ts +0 -3
  36. package/src/synchronizeInstances.tsx +0 -11
  37. package/test/33054-000002-0001.jpg +0 -0
  38. package/test/App.tsx +0 -50
  39. package/test/index.css +0 -18
  40. package/test/index.html +0 -12
  41. package/test/index.tsx +0 -13
  42. package/tsconfig.json +0 -26
  43. package/tsconfig.node.json +0 -10
  44. package/vite.config.js +0 -40
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ interface AnnotoriousProps {
3
+ children: ReactNode;
4
+ source: string;
5
+ }
6
+ /**
7
+ * An alternative <Annotorious /> component that mimicks the original
8
+ * from @annotorious/react, but injects the shim component, which connects
9
+ * the Annotator to the Manifold.
10
+ */
11
+ export declare const Annotorious: (props: AnnotoriousProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
13
+ //# sourceMappingURL=Annotorious.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Annotorious.d.ts","sourceRoot":"","sources":["../src/Annotorious.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAKhE,UAAU,gBAAgB;IAExB,QAAQ,EAAE,SAAS,CAAC;IAEpB,MAAM,EAAE,MAAM,CAAC;CAEhB;AAqBD;;;;GAIG;AACH,eAAO,MAAM,WAAW,UAAW,gBAAgB,4CAUlD,CAAA"}
@@ -0,0 +1,26 @@
1
+ import React, { ReactNode } from 'react';
2
+ import type { Annotation, Annotator } from '@annotorious/react';
3
+ import { AnnotoriousManifoldInstance } from './AnnotoriousManifoldInstance';
4
+ interface AnnotoriousManifoldContextValue {
5
+ annotators: Map<string, Annotator<any, unknown>>;
6
+ annotations: Map<string, Annotation[]>;
7
+ selection: ManifoldSelection;
8
+ connectAnnotator(source: string, anno: Annotator<any, unknown>): () => void;
9
+ }
10
+ interface ManifoldSelection<T extends Annotation = Annotation> {
11
+ source?: string;
12
+ selected: {
13
+ annotation: T;
14
+ editable?: boolean;
15
+ }[];
16
+ pointerEvent?: PointerEvent;
17
+ }
18
+ export declare const AnnotoriousManifoldContext: React.Context<AnnotoriousManifoldContextValue>;
19
+ export declare const AnnotoriousManifold: (props: {
20
+ children: ReactNode;
21
+ }) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const useAnnotoriousManifold: <I extends Annotation = Annotation, E extends unknown = Annotation>() => AnnotoriousManifoldInstance<I, E>;
23
+ export declare const useAnnotations: <T extends Annotation>() => Map<string, T[]>;
24
+ export declare const useSelection: <T extends Annotation>() => ManifoldSelection<T>;
25
+ export {};
26
+ //# sourceMappingURL=AnnotoriousManifold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnnotoriousManifold.d.ts","sourceRoot":"","sources":["../src/AnnotoriousManifold.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAA0D,MAAM,OAAO,CAAC;AACjG,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,2BAA2B,EAA0B,MAAM,+BAA+B,CAAC;AAEpG,UAAU,+BAA+B;IAEvC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEjD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAEvC,SAAS,EAAE,iBAAiB,CAAC;IAE7B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC;CAE7E;AAED,UAAU,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAE3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE;QAAE,UAAU,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAElD,YAAY,CAAC,EAAE,YAAY,CAAC;CAE7B;AAGD,eAAO,MAAM,0BAA0B,gDAAmD,CAAC;AAE3F,eAAO,MAAM,mBAAmB,UAAW;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CA+FjE,CAAA;AAED,eAAO,MAAM,sBAAsB,4GAGlC,CAAA;AAED,eAAO,MAAM,cAAc,8CAG1B,CAAA;AAED,eAAO,MAAM,YAAY,kDAGxB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { Origin } from '@annotorious/react';
2
+ import type { Annotation, AnnotationBody, Annotator } from '@annotorious/react';
3
+ export interface AnnotoriousManifoldInstance<I extends Annotation = Annotation, E extends unknown = Annotation> {
4
+ annotators: Annotator<I, E>[];
5
+ sources: string[];
6
+ addBody(body: AnnotationBody, origin?: Origin): void;
7
+ clear(origin: Origin): void;
8
+ deleteAnnotation(id: string, origin?: Origin): E | undefined;
9
+ deleteBody(body: AnnotationBody, origin?: Origin): void;
10
+ destroy(): void;
11
+ getAnnotation(id: string): E | undefined;
12
+ getAnnotations(): E[];
13
+ updateAnnotation(arg1: string | I, arg2?: I | Origin, arg3?: Origin): void;
14
+ }
15
+ export declare const createManifoldInstance: <I extends Annotation = Annotation, E extends unknown = Annotation>(annotators: Map<string, Annotator<I, E>>) => AnnotoriousManifoldInstance<I, E>;
16
+ //# sourceMappingURL=AnnotoriousManifoldInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnnotoriousManifoldInstance.d.ts","sourceRoot":"","sources":["../src/AnnotoriousManifoldInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACV,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EAAE,CAAC,SAAS,OAAO,GAAG,UAAU;IAE5G,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAE9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErD,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAE7D,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExD,OAAO,IAAI,IAAI,CAAC;IAEhB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAEzC,cAAc,IAAI,CAAC,EAAE,CAAC;IAEtB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAE5E;AAED,eAAO,MAAM,sBAAsB,oJA0ElC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { Annotorious as t } from "./annotorious-react-manifold.es2.js";
2
+ import { AnnotoriousManifold as r, AnnotoriousManifoldContext as i, useAnnotations as s, useAnnotoriousManifold as a, useSelection as f } from "./annotorious-react-manifold.es3.js";
3
+ import { createManifoldInstance as l } from "./annotorious-react-manifold.es4.js";
4
+ export {
5
+ t as Annotorious,
6
+ r as AnnotoriousManifold,
7
+ i as AnnotoriousManifoldContext,
8
+ l as createManifoldInstance,
9
+ s as useAnnotations,
10
+ a as useAnnotoriousManifold,
11
+ f as useSelection
12
+ };
13
+ //# sourceMappingURL=annotorious-react-manifold.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,5 @@
1
+ var e = {};
2
+ export {
3
+ e as __exports
4
+ };
5
+ //# sourceMappingURL=annotorious-react-manifold.es10.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es10.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,15 @@
1
+ import { j as n } from "./annotorious-react-manifold.es5.js";
2
+ import { useContext as e, useEffect as s } from "react";
3
+ import { Annotorious as i, useAnnotator as c } from "@annotorious/react";
4
+ import { AnnotoriousManifoldContext as u } from "./annotorious-react-manifold.es3.js";
5
+ const m = (o) => {
6
+ const t = c(), { connectAnnotator: r } = e(u);
7
+ return s(() => {
8
+ if (t)
9
+ return r(o.source, t);
10
+ }, [t]), /* @__PURE__ */ n.jsx(n.Fragment, { children: o.children });
11
+ }, d = (o) => /* @__PURE__ */ n.jsx(i, { children: /* @__PURE__ */ n.jsx(m, { source: o.source, children: o.children }) });
12
+ export {
13
+ d as Annotorious
14
+ };
15
+ //# sourceMappingURL=annotorious-react-manifold.es2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es2.js","sources":["../src/Annotorious.tsx"],"sourcesContent":["import React, { ReactNode, useContext, useEffect } from 'react';\nimport { Annotation, Annotator, useAnnotator } from '@annotorious/react';\nimport { Annotorious as AnnotoriousInstance } from '@annotorious/react';\nimport { AnnotoriousManifoldContext } from './AnnotoriousManifold';\n\ninterface AnnotoriousProps {\n\n children: ReactNode;\n\n source: string;\n\n}\n\n/**\n * Consumes the standard Annotorious context, and passes the Annotator\n * upwards to the manifold.\n */\nconst AnnotoriousInstanceShim = <I extends Annotation = Annotation, E extends unknown = Annotation>(props: AnnotoriousProps) => {\n\n const anno = useAnnotator<Annotator<I, E>>();\n\n const { connectAnnotator } = useContext(AnnotoriousManifoldContext);\n\n useEffect(() => {\n if (anno)\n return connectAnnotator(props.source, anno);\n }, [anno]);\n\n return <>{props.children}</>;\n\n}\n\n/**\n * An alternative <Annotorious /> component that mimicks the original\n * from @annotorious/react, but injects the shim component, which connects\n * the Annotator to the Manifold.\n */\nexport const Annotorious = (props: AnnotoriousProps) => {\n\n return (\n <AnnotoriousInstance>\n <AnnotoriousInstanceShim source={props.source}>\n {props.children}\n </AnnotoriousInstanceShim>\n </AnnotoriousInstance>\n )\n\n}"],"names":["AnnotoriousInstanceShim","props","anno","useAnnotator","connectAnnotator","useContext","AnnotoriousManifoldContext","useEffect","jsx","Fragment","Annotorious","AnnotoriousInstance"],"mappings":";;;;AAiBA,MAAMA,IAA0B,CAAoEC,MAA4B;AAE9H,QAAMC,IAAOC,KAEP,EAAE,kBAAAC,EAAA,IAAqBC,EAAWC,CAA0B;AAElE,SAAAC,EAAU,MAAM;AACV,QAAAL;AACK,aAAAE,EAAiBH,EAAM,QAAQC,CAAI;AAAA,EAAA,GAC3C,CAACA,CAAI,CAAC,GAEFM,gBAAAA,EAAAA,IAAAC,EAAAA,UAAA,EAAG,YAAM,SAAS,CAAA;AAE3B,GAOaC,IAAc,CAACT,MAGxBO,gBAAAA,EAAAA,IAACG,KACC,UAACH,gBAAAA,EAAA,IAAAR,GAAA,EAAwB,QAAQC,EAAM,QACpC,UAAMA,EAAA,SACT,CAAA,EACF,CAAA;"}
@@ -0,0 +1,58 @@
1
+ import { j as _ } from "./annotorious-react-manifold.es5.js";
2
+ import { createContext as I, useState as A, useRef as O, useEffect as P, useContext as M } from "react";
3
+ import { createManifoldInstance as k } from "./annotorious-react-manifold.es4.js";
4
+ const l = I(), D = (n) => {
5
+ const [u, S] = A(/* @__PURE__ */ new Map()), [C, f] = A(/* @__PURE__ */ new Map()), [c, b] = A({ selected: [] }), d = O(!1), g = (t, r) => {
6
+ S((e) => new Map(e.entries()).set(t, r));
7
+ const { store: o } = r.state, j = r.state.selection;
8
+ f((e) => new Map(e.entries()).set(t, o.all()));
9
+ const v = () => f((e) => new Map(e.entries()).set(t, o.all()));
10
+ o.observe(v);
11
+ let i;
12
+ const y = j.subscribe(({ selected: e, pointerEvent: s }) => {
13
+ i && o.unobserve(i);
14
+ const p = (e || []).map(({ id: a, editable: m }) => ({ annotation: o.getAnnotation(a), editable: m }));
15
+ d.current || b({ source: t, selected: p, pointerEvent: s }), i = (a) => {
16
+ const { updated: m } = a.changes;
17
+ b(({ source: E, selected: R }) => ({
18
+ source: E,
19
+ selected: R.map(({ annotation: w, editable: x }) => {
20
+ const h = m.find((V) => V.oldValue.id === w.id);
21
+ return h ? { annotation: h.newValue, editable: x } : { annotation: w, editable: x };
22
+ }),
23
+ pointerEvent: s
24
+ }));
25
+ }, o.observe(i, { annotations: e.map(({ id: a }) => a) });
26
+ });
27
+ return () => {
28
+ S((e) => new Map(Array.from(e.entries()).filter(([s, p]) => s !== t))), f((e) => new Map(Array.from(e.entries()).filter(([s, p]) => s !== t))), o.unobserve(v), y();
29
+ };
30
+ };
31
+ return P(() => {
32
+ c.source && (d.current = !0, Array.from(u.entries()).forEach(([t, r]) => {
33
+ t !== c.source && r.setSelected();
34
+ }), d.current = !1);
35
+ }, [c, u]), /* @__PURE__ */ _.jsx(l.Provider, { value: {
36
+ annotators: u,
37
+ annotations: C,
38
+ selection: c,
39
+ connectAnnotator: g
40
+ }, children: n.children });
41
+ }, F = () => {
42
+ const { annotators: n } = M(l);
43
+ return k(n);
44
+ }, G = () => {
45
+ const { annotations: n } = M(l);
46
+ return n;
47
+ }, H = () => {
48
+ const { selection: n } = M(l);
49
+ return n;
50
+ };
51
+ export {
52
+ D as AnnotoriousManifold,
53
+ l as AnnotoriousManifoldContext,
54
+ G as useAnnotations,
55
+ F as useAnnotoriousManifold,
56
+ H as useSelection
57
+ };
58
+ //# sourceMappingURL=annotorious-react-manifold.es3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es3.js","sources":["../src/AnnotoriousManifold.tsx"],"sourcesContent":["import React, { ReactNode, createContext, useContext, useEffect, useRef, useState } from 'react';\nimport type { Annotation, Annotator } from '@annotorious/react';\nimport type { StoreChangeEvent } from '@annotorious/react';\nimport { AnnotoriousManifoldInstance, createManifoldInstance } from './AnnotoriousManifoldInstance';\n\ninterface AnnotoriousManifoldContextValue {\n\n annotators: Map<string, Annotator<any, unknown>>;\n\n annotations: Map<string, Annotation[]>;\n\n selection: ManifoldSelection;\n\n connectAnnotator(source: string, anno: Annotator<any, unknown>): () => void;\n\n}\n\ninterface ManifoldSelection<T extends Annotation = Annotation> {\n\n source?: string;\n\n selected: { annotation: T, editable?: boolean }[],\n\n pointerEvent?: PointerEvent;\n\n}\n\n// @ts-ignore\nexport const AnnotoriousManifoldContext = createContext<AnnotoriousManifoldContextValue>();\n\nexport const AnnotoriousManifold = (props: { children: ReactNode }) => {\n\n const [annotators, setAnnotators] = useState<Map<string, Annotator<any, unknown>>>(new Map());\n\n const [annotations, setAnnotations] = useState<Map<string, Annotation[]>>(new Map());\n\n const [selection, setSelection] = \n useState<ManifoldSelection>({ selected: [] });\n\n // To prevent selection state updates when de-selecting other annotators\n const muteSelectionEvents = useRef<boolean>(false);\n\n const connectAnnotator = (source: string, anno: Annotator<any, unknown>) => {\n // Add the annotator to the state\n setAnnotators(m => new Map(m.entries()).set(source, anno))\n\n const { store } = anno.state;\n const selectionState = anno.state.selection;\n\n // Add the annotations to the state\n setAnnotations(m => new Map(m.entries()).set(source, store.all()));\n\n const onStoreChange = () =>\n setAnnotations(m => new Map(m.entries()).set(source, store.all()));\n\n store.observe(onStoreChange);\n\n // Track selection\n let selectionStoreObserver: (event: StoreChangeEvent<Annotation>) => void;\n\n const unsubscribeSelection = selectionState.subscribe(({ selected, pointerEvent }) => {\n if (selectionStoreObserver) \n store.unobserve(selectionStoreObserver);\n\n const resolved = (selected || [])\n .map(({ id, editable }) => ({ annotation: store.getAnnotation(id), editable }));\n\n // Set the new selection\n if (!muteSelectionEvents.current)\n setSelection({ source, selected: resolved, pointerEvent });\n\n // Track the state of the selected annotations in the store\n selectionStoreObserver = event => {\n const { updated } = event.changes;\n\n setSelection(({ source, selected }) => ({\n source,\n selected: selected.map(({ annotation, editable }) => {\n const next = updated.find(u => u.oldValue.id === annotation.id);\n return next ? { annotation: next.newValue, editable } : { annotation, editable };\n }),\n pointerEvent\n }));\n }\n\n store.observe(selectionStoreObserver, { annotations: selected.map(({ id }) => id) });\n });\n\n return () => {\n // Remove annotator\n setAnnotators(m => new Map(Array.from(m.entries()).filter(([key, _]) => key !== source)));\n\n // Remove & untrack annotations\n setAnnotations(m => new Map(Array.from(m.entries()).filter(([key, _]) => key !== source)));\n store.unobserve(onStoreChange);\n\n // Un-track selection\n unsubscribeSelection();\n }\n }\n\n useEffect(() => {\n if (selection.source) {\n muteSelectionEvents.current = true;\n\n Array.from(annotators.entries()).forEach(([source, anno]) => {\n if (source !== selection.source)\n anno.setSelected();\n });\n\n muteSelectionEvents.current = false;\n }\n }, [selection, annotators]);\n\n return (\n <AnnotoriousManifoldContext.Provider value={{ \n annotators, \n annotations,\n selection,\n connectAnnotator \n }}>\n {props.children}\n </AnnotoriousManifoldContext.Provider>\n )\n\n}\n\nexport const useAnnotoriousManifold = <I extends Annotation = Annotation, E extends unknown = Annotation>() => {\n const { annotators } = useContext(AnnotoriousManifoldContext);\n return createManifoldInstance(annotators) as AnnotoriousManifoldInstance<I, E>;\n}\n\nexport const useAnnotations = <T extends Annotation>() => {\n const { annotations } = useContext(AnnotoriousManifoldContext);\n return annotations as Map<string, T[]>;\n}\n\nexport const useSelection = <T extends Annotation>() => {\n const { selection } = useContext(AnnotoriousManifoldContext);\n return selection as ManifoldSelection<T>;\n}\n"],"names":["AnnotoriousManifoldContext","createContext","AnnotoriousManifold","props","annotators","setAnnotators","useState","annotations","setAnnotations","selection","setSelection","muteSelectionEvents","useRef","connectAnnotator","source","anno","m","store","selectionState","onStoreChange","selectionStoreObserver","unsubscribeSelection","selected","pointerEvent","resolved","id","editable","event","updated","annotation","next","u","key","_","useEffect","jsx","useAnnotoriousManifold","useContext","createManifoldInstance","useAnnotations","useSelection"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { Origin as s } from "@annotorious/react";
2
+ const m = (a) => {
3
+ const r = (t) => Array.from(a.values()).reduce((o, n) => {
4
+ if (o)
5
+ return o;
6
+ const e = n.getAnnotationById(t);
7
+ if (e)
8
+ return { annotation: e, annotator: n };
9
+ }, void 0) || { annotation: void 0, annotator: void 0 }, c = (t, o = s.LOCAL) => {
10
+ const { annotator: n } = r(t.annotation);
11
+ n && n.state.store.addBody(t, o);
12
+ }, d = (t = s.LOCAL) => Array.from(a.values()).forEach((o) => o.state.store.clear(t)), A = (t, o = s.LOCAL) => {
13
+ const { annotation: n, annotator: e } = r(t);
14
+ if (e)
15
+ return e.state.store.deleteAnnotation(t, o), n;
16
+ }, f = (t, o = s.LOCAL) => {
17
+ const { annotator: n } = r(t.annotation);
18
+ n && n.state.store.deleteBody(t, o);
19
+ }, l = () => Array.from(a.values()).forEach((t) => t.destroy()), u = (t) => r(t).annotation, y = () => Array.from(a.values()).reduce((t, o) => [...t, ...o.getAnnotations()], []), v = (t, o, n) => {
20
+ const e = typeof t == "string" ? t : t.id, { annotator: i } = r(e);
21
+ i && i.state.store.updateAnnotation(t, o, n);
22
+ };
23
+ return {
24
+ annotators: [...a.values()],
25
+ sources: [...a.keys()],
26
+ addBody: c,
27
+ clear: d,
28
+ deleteAnnotation: A,
29
+ deleteBody: f,
30
+ destroy: l,
31
+ getAnnotation: u,
32
+ getAnnotations: y,
33
+ updateAnnotation: v
34
+ };
35
+ };
36
+ export {
37
+ m as createManifoldInstance
38
+ };
39
+ //# sourceMappingURL=annotorious-react-manifold.es4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es4.js","sources":["../src/AnnotoriousManifoldInstance.ts"],"sourcesContent":["import { Origin } from '@annotorious/react';\nimport type { \n Annotation, \n AnnotationBody, \n Annotator\n} from '@annotorious/react';\n\nexport interface AnnotoriousManifoldInstance<I extends Annotation = Annotation, E extends unknown = Annotation> {\n\n annotators: Annotator<I, E>[];\n\n sources: string[];\n\n addBody(body: AnnotationBody, origin?: Origin): void;\n\n clear(origin: Origin): void;\n\n deleteAnnotation(id: string, origin?: Origin): E | undefined;\n\n deleteBody(body: AnnotationBody, origin?: Origin): void;\n\n destroy(): void;\n\n getAnnotation(id: string): E | undefined;\n\n getAnnotations(): E[];\n\n updateAnnotation(arg1: string | I, arg2?: I | Origin, arg3?: Origin): void;\n\n}\n\nexport const createManifoldInstance = <I extends Annotation = Annotation, E extends unknown = Annotation>(\n annotators: Map<string, Annotator<I, E>>\n): AnnotoriousManifoldInstance<I, E> => {\n\n const find = (annotationId: string): { annotation?: E, annotator?: Annotator<I, E> } =>\n Array.from(annotators.values()).reduce((found, annotator) => {\n if (found)\n return found;\n\n const annotation = annotator.getAnnotationById(annotationId);\n if (annotation) \n return { annotation, annotator };\n }, undefined as { annotation: E, annotator: Annotator<I, E> } | undefined ) || \n\n { annotation: undefined, annotator: undefined };\n\n /*********/\n /** API **/\n /*********/\n\n const addBody = (body: AnnotationBody, origin = Origin.LOCAL) => {\n const { annotator } = find(body.annotation);\n if (annotator)\n annotator.state.store.addBody(body, origin);\n }\n\n const clear = (origin = Origin.LOCAL) =>\n Array.from(annotators.values()).forEach(a => a.state.store.clear(origin));\n\n const deleteAnnotation = (id: string, origin = Origin.LOCAL) => {\n const { annotation, annotator } = find(id);\n\n if (annotator) {\n annotator.state.store.deleteAnnotation(id, origin);\n return annotation;\n }\n }\n\n const deleteBody = (body: AnnotationBody, origin = Origin.LOCAL) => {\n const { annotator } = find(body.annotation);\n if (annotator)\n annotator.state.store.deleteBody(body, origin);\n }\n\n const destroy = () =>\n Array.from(annotators.values()).forEach(a => a.destroy());\n\n const getAnnotation = (id: string) => \n find(id).annotation;\n\n const getAnnotations = () => \n Array.from(annotators.values()).reduce((all, annotator) =>\n [...all, ...annotator.getAnnotations()], [] as E[]);\n\n const updateAnnotation = (arg1: string | I, arg2?: I | Origin, arg3?: Origin) => {\n const oldId: string = typeof arg1 === 'string' ? arg1 : arg1.id;\n const { annotator } = find(oldId);\n if (annotator)\n annotator.state.store.updateAnnotation(arg1, arg2, arg3);\n }\n\n return {\n annotators: [...annotators.values()],\n sources: [...annotators.keys()],\n addBody,\n clear,\n deleteAnnotation,\n deleteBody,\n destroy,\n getAnnotation,\n getAnnotations,\n updateAnnotation\n }\n\n}"],"names":["createManifoldInstance","annotators","find","annotationId","found","annotator","annotation","addBody","body","origin","Origin","clear","a","deleteAnnotation","id","deleteBody","destroy","getAnnotation","getAnnotations","all","updateAnnotation","arg1","arg2","arg3","oldId"],"mappings":";AA+Ba,MAAAA,IAAyB,CACpCC,MACsC;AAEtC,QAAMC,IAAO,CAACC,MACZ,MAAM,KAAKF,EAAW,OAAO,CAAC,EAAE,OAAO,CAACG,GAAOC,MAAc;AACvD,QAAAD;AACK,aAAAA;AAEH,UAAAE,IAAaD,EAAU,kBAAkBF,CAAY;AACvD,QAAAG;AACK,aAAA,EAAE,YAAAA,GAAY,WAAAD;EAAU,GAChC,MAAuE,KAE1E,EAAE,YAAY,QAAW,WAAW,UAMhCE,IAAU,CAACC,GAAsBC,IAASC,EAAO,UAAU;AAC/D,UAAM,EAAE,WAAAL,EAAc,IAAAH,EAAKM,EAAK,UAAU;AACtC,IAAAH,KACFA,EAAU,MAAM,MAAM,QAAQG,GAAMC,CAAM;AAAA,EAAA,GAGxCE,IAAQ,CAACF,IAASC,EAAO,UAC7B,MAAM,KAAKT,EAAW,OAAA,CAAQ,EAAE,QAAQ,CAAKW,MAAAA,EAAE,MAAM,MAAM,MAAMH,CAAM,CAAC,GAEpEI,IAAmB,CAACC,GAAYL,IAASC,EAAO,UAAU;AAC9D,UAAM,EAAE,YAAAJ,GAAY,WAAAD,EAAU,IAAIH,EAAKY,CAAE;AAEzC,QAAIT;AACF,aAAAA,EAAU,MAAM,MAAM,iBAAiBS,GAAIL,CAAM,GAC1CH;AAAA,EACT,GAGIS,IAAa,CAACP,GAAsBC,IAASC,EAAO,UAAU;AAClE,UAAM,EAAE,WAAAL,EAAc,IAAAH,EAAKM,EAAK,UAAU;AACtC,IAAAH,KACFA,EAAU,MAAM,MAAM,WAAWG,GAAMC,CAAM;AAAA,EAAA,GAG3CO,IAAU,MACd,MAAM,KAAKf,EAAW,OAAA,CAAQ,EAAE,QAAQ,CAAAW,MAAKA,EAAE,QAAS,CAAA,GAEpDK,IAAgB,CAACH,MACrBZ,EAAKY,CAAE,EAAE,YAELI,IAAiB,MACrB,MAAM,KAAKjB,EAAW,OAAO,CAAC,EAAE,OAAO,CAACkB,GAAKd,MAC3C,CAAC,GAAGc,GAAK,GAAGd,EAAU,eAAgB,CAAA,GAAG,CAAA,CAAS,GAEhDe,IAAmB,CAACC,GAAkBC,GAAmBC,MAAkB;AAC/E,UAAMC,IAAgB,OAAOH,KAAS,WAAWA,IAAOA,EAAK,IACvD,EAAE,WAAAhB,EAAA,IAAcH,EAAKsB,CAAK;AAC5B,IAAAnB,KACFA,EAAU,MAAM,MAAM,iBAAiBgB,GAAMC,GAAMC,CAAI;AAAA,EAAA;AAGpD,SAAA;AAAA,IACL,YAAY,CAAC,GAAGtB,EAAW,QAAQ;AAAA,IACnC,SAAS,CAAC,GAAGA,EAAW,MAAM;AAAA,IAC9B,SAAAM;AAAA,IACA,OAAAI;AAAA,IACA,kBAAAE;AAAA,IACA,YAAAE;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAE;AAAA,EAAA;AAGJ;"}
@@ -0,0 +1,9 @@
1
+ import { __module as e } from "./annotorious-react-manifold.es6.js";
2
+ import { __require as r } from "./annotorious-react-manifold.es7.js";
3
+ import { __require as o } from "./annotorious-react-manifold.es8.js";
4
+ process.env.NODE_ENV === "production" ? e.exports = r() : e.exports = o();
5
+ var m = e.exports;
6
+ export {
7
+ m as j
8
+ };
9
+ //# sourceMappingURL=annotorious-react-manifold.es5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es5.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]}
@@ -0,0 +1,5 @@
1
+ var e = { exports: {} };
2
+ export {
3
+ e as __module
4
+ };
5
+ //# sourceMappingURL=annotorious-react-manifold.es6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,33 @@
1
+ import { __exports as t } from "./annotorious-react-manifold.es9.js";
2
+ import R from "react";
3
+ /**
4
+ * @license React
5
+ * react-jsx-runtime.production.min.js
6
+ *
7
+ * Copyright (c) Facebook, Inc. and its affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ var p;
13
+ function v() {
14
+ if (p)
15
+ return t;
16
+ p = 1;
17
+ var s = R, m = Symbol.for("react.element"), l = Symbol.for("react.fragment"), c = Object.prototype.hasOwnProperty, d = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, y = { key: !0, ref: !0, __self: !0, __source: !0 };
18
+ function i(o, r, u) {
19
+ var e, n = {}, _ = null, f = null;
20
+ u !== void 0 && (_ = "" + u), r.key !== void 0 && (_ = "" + r.key), r.ref !== void 0 && (f = r.ref);
21
+ for (e in r)
22
+ c.call(r, e) && !y.hasOwnProperty(e) && (n[e] = r[e]);
23
+ if (o && o.defaultProps)
24
+ for (e in r = o.defaultProps, r)
25
+ n[e] === void 0 && (n[e] = r[e]);
26
+ return { $$typeof: m, type: o, key: _, ref: f, props: n, _owner: d.current };
27
+ }
28
+ return t.Fragment = l, t.jsx = i, t.jsxs = i, t;
29
+ }
30
+ export {
31
+ v as __require
32
+ };
33
+ //# sourceMappingURL=annotorious-react-manifold.es7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotorious-react-manifold.es7.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n"],"names":["f","require$$0","k","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min"],"mappings":";;;;;;;;;;;;;;;;AASa,MAAIA,IAAEC,GAAiBC,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAEC,IAAE,OAAO,UAAU,gBAAeC,IAAEJ,EAAE,mDAAmD,mBAAkBK,IAAE,EAAC,KAAI,IAAG,KAAI,IAAG,QAAO,IAAG,UAAS,GAAE;AAClP,WAASC,EAAEC,GAAEC,GAAEC,GAAE;AAAC,QAAIC,GAAEC,IAAE,IAAGC,IAAE,MAAKC,IAAE;AAAK,IAASJ,MAAT,WAAaG,IAAE,KAAGH,IAAYD,EAAE,QAAX,WAAiBI,IAAE,KAAGJ,EAAE,MAAcA,EAAE,QAAX,WAAiBK,IAAEL,EAAE;AAAK,SAAIE,KAAKF;AAAE,MAAAL,EAAE,KAAKK,GAAEE,CAAC,KAAG,CAACL,EAAE,eAAeK,CAAC,MAAIC,EAAED,CAAC,IAAEF,EAAEE,CAAC;AAAG,QAAGH,KAAGA,EAAE;AAAa,WAAIG,KAAKF,IAAED,EAAE,cAAaC;AAAE,QAASG,EAAED,CAAC,MAAZ,WAAgBC,EAAED,CAAC,IAAEF,EAAEE,CAAC;AAAG,WAAM,EAAC,UAASR,GAAE,MAAKK,GAAE,KAAIK,GAAE,KAAIC,GAAE,OAAMF,GAAE,QAAOP,EAAE,QAAO;AAAA,EAAC;AAAC,SAAAU,aAAiB,GAAEA,EAAW,MAACR,GAAEQ,EAAA,OAAaR;;","x_google_ignoreList":[0]}