@annotorious/react-manifold 3.2.2 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react-manifold.es5.js","sources":["../src/plugins/PluginProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useEffect, useMemo, useState } from 'react';\nimport { Annotator } from '@annotorious/react';\nimport { AnnotoriousManifoldContext } from '../AnnotoriousManifold';\nimport { createPluginManifold } from './PluginManifoldInstance';\n\ninterface PluginManifoldData {\n\n mountFn: (anno: Annotator, opts?: any) => unknown;\n\n opts?: any;\n\n}\n\ninterface PluginProviderContextValue {\n\n setPlugins: React.Dispatch<React.SetStateAction<Map<string, PluginManifoldData>>>\n\n manifolds: Map<string, unknown>;\n\n}\n\n// @ts-ignore\nexport const PluginProviderContext = createContext<PluginProviderContextValue>(undefined); \n\ninterface PluginProviderProps {\n\n children: ReactNode;\n\n}\n\nexport const PluginProvider = (props: PluginProviderProps) => {\n\n const context = useContext(AnnotoriousManifoldContext);\n\n const annotators = useMemo(() => (\n Array.from(context.annotators.values())\n ), [Array.from(context.annotators.keys()).join(':')]);\n\n // Registered plugins (by plugin name)\n const [plugins, setPlugins] = useState<Map<string, PluginManifoldData>>(new Map());\n\n // One manifold per plugin (each managing one plugin instance per annotator)\n const [manifolds, setManifolds] = useState<Map<string, any>>();\n\n useEffect(() => {\n const manifoldInstances = Array.from(plugins.entries()).map(([name, { mountFn, opts }]) => {\n return [name, createPluginManifold(annotators, mountFn, opts)];\n }) as [string, any][];\n\n setManifolds(new Map(manifoldInstances));\n\n return () => {\n manifoldInstances.forEach(([_, instance]) => instance.destroy && instance.destroy());\n }\n }, [annotators, plugins]);\n\n return (\n <PluginProviderContext.Provider value={{ setPlugins, manifolds }}>\n {props.children}\n </PluginProviderContext.Provider>\n )\n\n}\n\nexport const usePluginManifold = <P extends unknown>(name: string) => {\n const { manifolds } = useContext(PluginProviderContext);\n return manifolds.get(name) as P;\n}"],"names":["PluginProviderContext","createContext","PluginProvider","props","context","useContext","AnnotoriousManifoldContext","annotators","useMemo","plugins","setPlugins","useState","manifolds","setManifolds","useEffect","manifoldInstances","name","mountFn","opts","createPluginManifold","_","instance","jsx","usePluginManifold"],"mappings":";;;;AAsBa,MAAAA,IAAwBC,EAA0C,MAAS,GAQ3EC,IAAiB,CAACC,MAA+B;AAEtD,QAAAC,IAAUC,EAAWC,CAA0B,GAE/CC,IAAaC,EAAQ,MACzB,MAAM,KAAKJ,EAAQ,WAAW,QAAQ,GACrC,CAAC,MAAM,KAAKA,EAAQ,WAAW,KAAM,CAAA,EAAE,KAAK,GAAG,CAAC,CAAC,GAG9C,CAACK,GAASC,CAAU,IAAIC,EAA0C,oBAAI,KAAK,GAG3E,CAACC,GAAWC,CAAY,IAAIF,EAA2B;AAE7D,SAAAG,EAAU,MAAM;AACd,UAAMC,IAAoB,MAAM,KAAKN,EAAQ,QAAS,CAAA,EAAE,IAAI,CAAC,CAACO,GAAM,EAAE,SAAAC,GAAS,MAAAC,EAAM,CAAA,MAC5E,CAACF,GAAMG,EAAqBZ,GAAYU,GAASC,CAAI,CAAC,CAC9D;AAEY,WAAAL,EAAA,IAAI,IAAIE,CAAiB,CAAC,GAEhC,MAAM;AACO,MAAAA,EAAA,QAAQ,CAAC,CAACK,GAAGC,CAAQ,MAAMA,EAAS,WAAWA,EAAS,SAAS;AAAA,IACrF;AAAA,EAAA,GACC,CAACd,GAAYE,CAAO,CAAC,GAGtB,gBAAAa,EAACtB,EAAsB,UAAtB,EAA+B,OAAO,EAAE,YAAAU,GAAY,WAAAE,KAClD,UAAAT,EAAM,SACT,CAAA;AAGJ,GAEaoB,IAAoB,CAAoBP,MAAiB;AACpE,QAAM,EAAE,WAAAJ,EAAA,IAAcP,EAAWL,CAAqB;AAC/C,SAAAY,EAAU,IAAII,CAAI;AAC3B;"}
1
+ {"version":3,"file":"annotorious-react-manifold.es5.js","sources":["../src/plugins/PluginProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useEffect, useMemo, useState } from 'react';\nimport { Annotator } from '@annotorious/react';\nimport { AnnotoriousManifoldContext } from '../AnnotoriousManifold';\nimport { createPluginManifold, PluginManifoldProxy } from './PluginManifoldInstance';\n\ninterface PluginManifoldData {\n\n mountFn: (anno: Annotator, opts?: any) => unknown;\n\n opts?: any;\n\n}\n\ninterface PluginProviderContextValue {\n\n setPlugins: React.Dispatch<React.SetStateAction<Map<string, PluginManifoldData>>>\n\n manifolds: Map<string, unknown>;\n\n}\n\n// @ts-ignore\nexport const PluginProviderContext = createContext<PluginProviderContextValue>(undefined); \n\ninterface PluginProviderProps {\n\n children: ReactNode;\n\n}\n\nexport const PluginProvider = (props: PluginProviderProps) => {\n\n const context = useContext(AnnotoriousManifoldContext);\n\n const annotators = useMemo(() => (\n Array.from(context.annotators.values())\n ), [Array.from(context.annotators.keys()).join(':')]);\n\n // Registered plugins (by plugin name)\n const [plugins, setPlugins] = useState<Map<string, PluginManifoldData>>(new Map());\n\n // One manifold per plugin (each managing one plugin instance per annotator)\n const [manifolds, setManifolds] = useState<Map<string, any>>();\n\n useEffect(() => {\n const manifoldInstances = Array.from(plugins.entries()).map(([name, { mountFn, opts }]) => {\n return [name, createPluginManifold(annotators, mountFn, opts)];\n }) as [string, any][];\n\n setManifolds(new Map(manifoldInstances));\n\n return () => {\n manifoldInstances.forEach(([_, instance]) => instance.destroy && instance.destroy());\n }\n }, [annotators, plugins]);\n\n return (\n <PluginProviderContext.Provider value={{ setPlugins, manifolds }}>\n {props.children}\n </PluginProviderContext.Provider>\n )\n\n}\n\nexport const usePluginManifold = <P extends unknown>(name: string) => {\n const { manifolds } = useContext(PluginProviderContext);\n return manifolds.get(name) as PluginManifoldProxy<P>;\n}"],"names":["PluginProviderContext","createContext","PluginProvider","props","context","useContext","AnnotoriousManifoldContext","annotators","useMemo","plugins","setPlugins","useState","manifolds","setManifolds","useEffect","manifoldInstances","name","mountFn","opts","createPluginManifold","_","instance","jsx","usePluginManifold"],"mappings":";;;;AAsBa,MAAAA,IAAwBC,EAA0C,MAAS,GAQ3EC,IAAiB,CAACC,MAA+B;AAEtD,QAAAC,IAAUC,EAAWC,CAA0B,GAE/CC,IAAaC,EAAQ,MACzB,MAAM,KAAKJ,EAAQ,WAAW,QAAQ,GACrC,CAAC,MAAM,KAAKA,EAAQ,WAAW,KAAM,CAAA,EAAE,KAAK,GAAG,CAAC,CAAC,GAG9C,CAACK,GAASC,CAAU,IAAIC,EAA0C,oBAAI,KAAK,GAG3E,CAACC,GAAWC,CAAY,IAAIF,EAA2B;AAE7D,SAAAG,EAAU,MAAM;AACd,UAAMC,IAAoB,MAAM,KAAKN,EAAQ,QAAS,CAAA,EAAE,IAAI,CAAC,CAACO,GAAM,EAAE,SAAAC,GAAS,MAAAC,EAAM,CAAA,MAC5E,CAACF,GAAMG,EAAqBZ,GAAYU,GAASC,CAAI,CAAC,CAC9D;AAEY,WAAAL,EAAA,IAAI,IAAIE,CAAiB,CAAC,GAEhC,MAAM;AACO,MAAAA,EAAA,QAAQ,CAAC,CAACK,GAAGC,CAAQ,MAAMA,EAAS,WAAWA,EAAS,SAAS;AAAA,IACrF;AAAA,EAAA,GACC,CAACd,GAAYE,CAAO,CAAC,GAGtB,gBAAAa,EAACtB,EAAsB,UAAtB,EAA+B,OAAO,EAAE,YAAAU,GAAY,WAAAE,KAClD,UAAAT,EAAM,SACT,CAAA;AAGJ,GAEaoB,IAAoB,CAAoBP,MAAiB;AACpE,QAAM,EAAE,WAAAJ,EAAA,IAAcP,EAAWL,CAAqB;AAC/C,SAAAY,EAAU,IAAII,CAAI;AAC3B;"}
@@ -1 +1 @@
1
- {"version":3,"file":"annotorious-react-manifold.es9.js","sources":["../src/plugins/PluginManifoldInstance.ts"],"sourcesContent":["import { Annotation, Annotator } from '@annotorious/react';\n\nexport const createPluginManifold = <\n P extends unknown,\n I extends Annotation = Annotation, \n E extends { id: string } = Annotation\n>(\n annotators: Annotator<I, E>[],\n mountFn: (anno: Annotator<I, E>, opts?: any) => P, \n opts?: any, \n): P => {\n\n const instances = annotators.map(anno => mountFn(anno, opts));\n\n return new Proxy({} as any, {\n get: (_, prop: string | symbol) => {\n const firstInstance = instances[0];\n if (!firstInstance) return undefined;\n \n const propValue = (firstInstance as any)[prop];\n \n if (typeof propValue === 'function') {\n return function(...args: any[]) {\n return instances.map(instance => {\n const method = (instance as any)[prop];\n if (typeof method === 'function') {\n return method.apply(instance, args);\n }\n return undefined;\n });\n };\n }\n\n return propValue;\n }\n });\n\n}"],"names":["createPluginManifold","annotators","mountFn","opts","instances","anno","_","prop","firstInstance","propValue","args","instance","method"],"mappings":"AAEO,MAAMA,IAAuB,CAKlCC,GACAC,GACAC,MACM;AAEN,QAAMC,IAAYH,EAAW,IAAI,OAAQC,EAAQG,GAAMF,CAAI,CAAC;AAErD,SAAA,IAAI,MAAM,IAAW;AAAA,IAC1B,KAAK,CAACG,GAAGC,MAA0B;AAC3B,YAAAC,IAAgBJ,EAAU,CAAC;AAC7B,UAAA,CAACI,EAAsB;AAErB,YAAAC,IAAaD,EAAsBD,CAAI;AAEzC,aAAA,OAAOE,KAAc,aAChB,YAAYC,GAAa;AACvB,eAAAN,EAAU,IAAI,CAAYO,MAAA;AACzB,gBAAAC,IAAUD,EAAiBJ,CAAI;AACjC,cAAA,OAAOK,KAAW;AACb,mBAAAA,EAAO,MAAMD,GAAUD,CAAI;AAAA,QAE7B,CACR;AAAA,MACH,IAGKD;AAAA,IAAA;AAAA,EACT,CACD;AAEH;"}
1
+ {"version":3,"file":"annotorious-react-manifold.es9.js","sources":["../src/plugins/PluginManifoldInstance.ts"],"sourcesContent":["import { Annotation, Annotator } from '@annotorious/react';\n\nexport type PluginManifoldProxy<P> = {\n [K in keyof P]: P[K] extends (...args: infer Args) => infer Return\n ? (...args: Args) => Return[]\n : P[K];\n};\n\nexport const createPluginManifold = <\n P extends unknown,\n I extends Annotation = Annotation, \n E extends { id: string } = Annotation\n>(\n annotators: Annotator<I, E>[],\n mountFn: (anno: Annotator<I, E>, opts?: any) => P, \n opts?: any, \n): PluginManifoldProxy<P> => {\n\n const instances = annotators.map(anno => mountFn(anno, opts));\n\n return new Proxy({} as any, {\n get: (_, prop: string | symbol) => {\n const firstInstance = instances[0];\n if (!firstInstance) return undefined;\n \n const propValue = (firstInstance as any)[prop];\n \n if (typeof propValue === 'function') {\n return function(...args: any[]) {\n return instances.map(instance => {\n const method = (instance as any)[prop];\n if (typeof method === 'function') {\n return method.apply(instance, args);\n }\n return undefined;\n });\n };\n }\n\n return propValue;\n }\n });\n\n}"],"names":["createPluginManifold","annotators","mountFn","opts","instances","anno","_","prop","firstInstance","propValue","args","instance","method"],"mappings":"AAQO,MAAMA,IAAuB,CAKlCC,GACAC,GACAC,MAC2B;AAE3B,QAAMC,IAAYH,EAAW,IAAI,OAAQC,EAAQG,GAAMF,CAAI,CAAC;AAErD,SAAA,IAAI,MAAM,IAAW;AAAA,IAC1B,KAAK,CAACG,GAAGC,MAA0B;AAC3B,YAAAC,IAAgBJ,EAAU,CAAC;AAC7B,UAAA,CAACI,EAAsB;AAErB,YAAAC,IAAaD,EAAsBD,CAAI;AAEzC,aAAA,OAAOE,KAAc,aAChB,YAAYC,GAAa;AACvB,eAAAN,EAAU,IAAI,CAAYO,MAAA;AACzB,gBAAAC,IAAUD,EAAiBJ,CAAI;AACjC,cAAA,OAAOK,KAAW;AACb,mBAAAA,EAAO,MAAMD,GAAUD,CAAI;AAAA,QAE7B,CACR;AAAA,MACH,IAGKD;AAAA,IAAA;AAAA,EACT,CACD;AAEH;"}
@@ -1,5 +1,8 @@
1
1
  import { Annotation, Annotator } from '@annotorious/react';
2
+ export type PluginManifoldProxy<P> = {
3
+ [K in keyof P]: P[K] extends (...args: infer Args) => infer Return ? (...args: Args) => Return[] : P[K];
4
+ };
2
5
  export declare const createPluginManifold: <P extends unknown, I extends Annotation = Annotation, E extends {
3
6
  id: string;
4
- } = Annotation>(annotators: Annotator<I, E>[], mountFn: (anno: Annotator<I, E>, opts?: any) => P, opts?: any) => P;
7
+ } = Annotation>(annotators: Annotator<I, E>[], mountFn: (anno: Annotator<I, E>, opts?: any) => P, opts?: any) => PluginManifoldProxy<P>;
5
8
  //# sourceMappingURL=PluginManifoldInstance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManifoldInstance.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginManifoldInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,GAC/B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,EAErC,YAAY,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAC7B,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EACjD,OAAO,GAAG,KACT,CA2BF,CAAA"}
1
+ {"version":3,"file":"PluginManifoldInstance.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginManifoldInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,MAAM,MAAM,GAC9D,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,GAC3B,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,EAErC,YAAY,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAC7B,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EACjD,OAAO,GAAG,KACT,mBAAmB,CAAC,CAAC,CA2BvB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { Annotator } from '@annotorious/react';
3
+ import { PluginManifoldProxy } from './PluginManifoldInstance';
3
4
  interface PluginManifoldData {
4
5
  mountFn: (anno: Annotator, opts?: any) => unknown;
5
6
  opts?: any;
@@ -13,6 +14,6 @@ interface PluginProviderProps {
13
14
  children: ReactNode;
14
15
  }
15
16
  export declare const PluginProvider: (props: PluginProviderProps) => import("react/jsx-runtime").JSX.Element;
16
- export declare const usePluginManifold: <P extends unknown>(name: string) => P;
17
+ export declare const usePluginManifold: <P extends unknown>(name: string) => PluginManifoldProxy<P>;
17
18
  export {};
18
19
  //# sourceMappingURL=PluginProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PluginProvider.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAA4C,MAAM,OAAO,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,UAAU,kBAAkB;IAE1B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IAElD,IAAI,CAAC,EAAE,GAAG,CAAC;CAEZ;AAED,UAAU,0BAA0B;IAElC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;IAEjF,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAEjC;AAGD,eAAO,MAAM,qBAAqB,qDAAuD,CAAC;AAE1F,UAAU,mBAAmB;IAE3B,QAAQ,EAAE,SAAS,CAAC;CAErB;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,4CAgCxD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,MAAM,KAEjC,CAC/B,CAAA"}
1
+ {"version":3,"file":"PluginProvider.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAA4C,MAAM,OAAO,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAwB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAErF,UAAU,kBAAkB;IAE1B,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;IAElD,IAAI,CAAC,EAAE,GAAG,CAAC;CAEZ;AAED,UAAU,0BAA0B;IAElC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;IAEjF,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAEjC;AAGD,eAAO,MAAM,qBAAqB,qDAAuD,CAAC;AAE1F,UAAU,mBAAmB;IAE3B,QAAQ,EAAE,SAAS,CAAC;CAErB;AAED,eAAO,MAAM,cAAc,GAAI,OAAO,mBAAmB,4CAgCxD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,OAAO,EAAE,MAAM,MAAM,KAEjC,mBAAmB,CAAC,CAAC,CACpD,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export * from './Plugin';
2
+ export type { PluginManifoldProxy } from './PluginManifoldInstance';
2
3
  export { PluginProvider, usePluginManifold } from './PluginProvider';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@annotorious/react-manifold",
3
- "version": "3.2.2",
3
+ "version": "3.2.3",
4
4
  "description": "A utility to manage multiple parallel Annotorious instances more efficiently",
5
5
  "author": "Rainer Simon",
6
6
  "license": "BSD-3-Clause",
@@ -40,7 +40,7 @@
40
40
  "vite-tsconfig-paths": "^5.1.4"
41
41
  },
42
42
  "peerDependencies": {
43
- "@annotorious/react": "3.2.2",
43
+ "@annotorious/react": "3.2.3",
44
44
  "openseadragon": "^5.0.1",
45
45
  "react": "16.8.0 || >=17.x || >=18.x || >=19.x",
46
46
  "react-dom": "16.8.0 || >=17.x || >=18.x|| >=19.x"