@annotorious/core 3.0.0-rc.3 → 3.0.0-rc.31

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 (94) hide show
  1. package/dist/annotorious-core.es.js +799 -0
  2. package/dist/annotorious-core.es.js.map +1 -0
  3. package/{src/index.ts → dist/index.d.ts} +1 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/lifecycle/Lifecycle.d.ts +11 -0
  6. package/dist/lifecycle/Lifecycle.d.ts.map +1 -0
  7. package/dist/lifecycle/LifecycleEvents.d.ts +13 -0
  8. package/dist/lifecycle/LifecycleEvents.d.ts.map +1 -0
  9. package/dist/lifecycle/index.d.ts +3 -0
  10. package/dist/lifecycle/index.d.ts.map +1 -0
  11. package/dist/model/Annotation.d.ts +34 -0
  12. package/dist/model/Annotation.d.ts.map +1 -0
  13. package/dist/model/AnnotationState.d.ts +8 -0
  14. package/dist/model/AnnotationState.d.ts.map +1 -0
  15. package/dist/model/Annotator.d.ts +67 -0
  16. package/dist/model/Annotator.d.ts.map +1 -0
  17. package/dist/model/DrawingStyle.d.ts +17 -0
  18. package/dist/model/DrawingStyle.d.ts.map +1 -0
  19. package/dist/model/Filter.d.ts +4 -0
  20. package/dist/model/Filter.d.ts.map +1 -0
  21. package/dist/model/FormatAdapter.d.ts +16 -0
  22. package/dist/model/FormatAdapter.d.ts.map +1 -0
  23. package/dist/model/User.d.ts +11 -0
  24. package/dist/model/User.d.ts.map +1 -0
  25. package/dist/model/W3CAnnotation.d.ts +43 -0
  26. package/dist/model/W3CAnnotation.d.ts.map +1 -0
  27. package/{src/model/index.ts → dist/model/index.d.ts} +3 -1
  28. package/dist/model/index.d.ts.map +1 -0
  29. package/dist/presence/Appearance.d.ts +6 -0
  30. package/dist/presence/Appearance.d.ts.map +1 -0
  31. package/dist/presence/AppearanceProvider.d.ts +17 -0
  32. package/dist/presence/AppearanceProvider.d.ts.map +1 -0
  33. package/dist/presence/ColorPalette.d.ts +3 -0
  34. package/dist/presence/ColorPalette.d.ts.map +1 -0
  35. package/dist/presence/PresenceEvents.d.ts +7 -0
  36. package/dist/presence/PresenceEvents.d.ts.map +1 -0
  37. package/dist/presence/PresenceProvider.d.ts +6 -0
  38. package/dist/presence/PresenceProvider.d.ts.map +1 -0
  39. package/dist/presence/PresenceState.d.ts +19 -0
  40. package/dist/presence/PresenceState.d.ts.map +1 -0
  41. package/dist/presence/PresentUser.d.ts +8 -0
  42. package/dist/presence/PresentUser.d.ts.map +1 -0
  43. package/{src/presence/index.ts → dist/presence/index.d.ts} +2 -1
  44. package/dist/presence/index.d.ts.map +1 -0
  45. package/dist/state/Hover.d.ts +10 -0
  46. package/dist/state/Hover.d.ts.map +1 -0
  47. package/dist/state/Selection.d.ts +34 -0
  48. package/dist/state/Selection.d.ts.map +1 -0
  49. package/dist/state/Store.d.ts +35 -0
  50. package/dist/state/Store.d.ts.map +1 -0
  51. package/dist/state/StoreObserver.d.ts +58 -0
  52. package/dist/state/StoreObserver.d.ts.map +1 -0
  53. package/dist/state/SvelteStore.d.ts +23 -0
  54. package/dist/state/SvelteStore.d.ts.map +1 -0
  55. package/dist/state/UndoStack.d.ts +19 -0
  56. package/dist/state/UndoStack.d.ts.map +1 -0
  57. package/dist/state/Viewport.d.ts +6 -0
  58. package/dist/state/Viewport.d.ts.map +1 -0
  59. package/{src/state/index.ts → dist/state/index.d.ts} +2 -1
  60. package/dist/state/index.d.ts.map +1 -0
  61. package/dist/utils/annotationUtils.d.ts +12 -0
  62. package/dist/utils/annotationUtils.d.ts.map +1 -0
  63. package/dist/utils/diffAnnotations.d.ts +5 -0
  64. package/dist/utils/diffAnnotations.d.ts.map +1 -0
  65. package/{src/utils/index.ts → dist/utils/index.d.ts} +1 -1
  66. package/dist/utils/index.d.ts.map +1 -0
  67. package/package.json +20 -17
  68. package/src/lifecycle/Lifecycle.ts +0 -197
  69. package/src/lifecycle/LifecycleEvents.ts +0 -21
  70. package/src/lifecycle/index.ts +0 -2
  71. package/src/model/Annotation.ts +0 -73
  72. package/src/model/Annotator.ts +0 -161
  73. package/src/model/DrawingStyle.ts +0 -19
  74. package/src/model/Filter.ts +0 -3
  75. package/src/model/FormatAdapter.ts +0 -36
  76. package/src/model/User.ts +0 -19
  77. package/src/model/W3CAnnotation.ts +0 -118
  78. package/src/presence/Appearance.ts +0 -9
  79. package/src/presence/AppearanceProvider.ts +0 -53
  80. package/src/presence/ColorPalette.ts +0 -14
  81. package/src/presence/PresenceEvents.ts +0 -9
  82. package/src/presence/PresenceProvider.ts +0 -7
  83. package/src/presence/PresenceState.ts +0 -145
  84. package/src/presence/PresentUser.ts +0 -10
  85. package/src/state/Hover.ts +0 -34
  86. package/src/state/Selection.ts +0 -113
  87. package/src/state/Store.ts +0 -344
  88. package/src/state/StoreObserver.ts +0 -194
  89. package/src/state/SvelteStore.ts +0 -54
  90. package/src/state/UndoStack.ts +0 -112
  91. package/src/state/Viewport.ts +0 -14
  92. package/src/utils/annotationUtils.ts +0 -33
  93. package/src/utils/diffAnnotations.ts +0 -39
  94. package/src/vite-env.d.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Appearance.d.ts","sourceRoot":"","sources":["../../src/presence/Appearance.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IAEzB,KAAK,EAAE,MAAM,CAAC;IAEd,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;CAEjB"}
@@ -0,0 +1,17 @@
1
+ import { User } from '../model/User';
2
+ import { Appearance } from './Appearance';
3
+ import { PresentUser } from './PresentUser';
4
+
5
+ export interface AppearanceProvider {
6
+ addUser(presenceKey: string, user: User): Appearance;
7
+ removeUser(user: PresentUser): void;
8
+ }
9
+ export declare const defaultColorProvider: () => {
10
+ assignRandomColor: () => string;
11
+ releaseColor: (color: string) => number;
12
+ };
13
+ export declare const createDefaultAppearenceProvider: () => {
14
+ addUser: (presenceKey: string, user: User) => Appearance;
15
+ removeUser: (user: PresentUser) => number;
16
+ };
17
+ //# sourceMappingURL=AppearanceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppearanceProvider.d.ts","sourceRoot":"","sources":["../../src/presence/AppearanceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,WAAW,kBAAkB;IAEjC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,UAAU,CAAC;IAErD,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CAErC;AAED,eAAO,MAAM,oBAAoB;;0BAaF,MAAM;CAKpC,CAAA;AAED,eAAO,MAAM,+BAA+B;2BAIZ,MAAM,QAAQ,IAAI,KAAG,UAAU;uBAUnC,WAAW;CAKtC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const DEFAULT_PALETTE: Palette;
2
+ export type Palette = string[];
3
+ //# sourceMappingURL=ColorPalette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPalette.d.ts","sourceRoot":"","sources":["../../src/presence/ColorPalette.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,eAAe,EAAE,OAU7B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { PresentUser } from './PresentUser';
2
+
3
+ export interface PresenceEvents {
4
+ presence: (users: PresentUser[]) => void;
5
+ selectionChange: (from: PresentUser, selection: string[] | null) => void;
6
+ }
7
+ //# sourceMappingURL=PresenceEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresenceEvents.d.ts","sourceRoot":"","sources":["../../src/presence/PresenceEvents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,cAAc;IAE7B,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAEzC,eAAe,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;CAE1E"}
@@ -0,0 +1,6 @@
1
+ import { PresenceEvents } from './PresenceEvents';
2
+
3
+ export interface PresenceProvider {
4
+ on<E extends keyof PresenceEvents>(event: E, callback: PresenceEvents[E]): void;
5
+ }
6
+ //# sourceMappingURL=PresenceProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresenceProvider.d.ts","sourceRoot":"","sources":["../../src/presence/PresenceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAE/B,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAEjF"}
@@ -0,0 +1,19 @@
1
+ import { Unsubscribe } from 'nanoevents';
2
+ import { User } from '../model/User';
3
+ import { PresentUser } from './PresentUser';
4
+ import { PresenceEvents } from './PresenceEvents';
5
+ import { AppearanceProvider } from './AppearanceProvider';
6
+
7
+ export interface PresenceState {
8
+ getPresentUsers(): PresentUser[];
9
+ notifyActivity(presenceKey: string, annotationIds: string[]): void;
10
+ on<E extends keyof PresenceEvents>(event: E, callback: PresenceEvents[E]): Unsubscribe;
11
+ syncUsers(state: {
12
+ presenceKey: string;
13
+ user: User;
14
+ }[]): void;
15
+ updateSelection(presenceKey: string, selection: string[] | null): void;
16
+ }
17
+ export declare const PRESENCE_KEY: string;
18
+ export declare const createPresenceState: (appearanceProvider?: AppearanceProvider) => PresenceState;
19
+ //# sourceMappingURL=PresenceState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresenceState.d.ts","sourceRoot":"","sources":["../../src/presence/PresenceState.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAG5B,eAAe,IAAI,WAAW,EAAE,CAAC;IAGjC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAGnE,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAGvF,SAAS,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAG9D,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;CAExE;AAMD,eAAO,MAAM,YAAY,QAAW,CAAC;AAErC,eAAO,MAAM,mBAAmB,wBACV,kBAAkB,KACrC,aA6GF,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { User } from '../model/User';
2
+ import { Appearance } from './Appearance';
3
+
4
+ export interface PresentUser extends User {
5
+ presenceKey: string;
6
+ appearance: Appearance;
7
+ }
8
+ //# sourceMappingURL=PresentUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PresentUser.d.ts","sourceRoot":"","sources":["../../src/presence/PresentUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,WAAY,SAAQ,IAAI;IAEvC,WAAW,EAAE,MAAM,CAAC;IAEpB,UAAU,EAAE,UAAU,CAAA;CAEvB"}
@@ -3,4 +3,5 @@ export * from './AppearanceProvider';
3
3
  export * from './PresenceEvents';
4
4
  export * from './PresenceProvider';
5
5
  export * from './PresenceState';
6
- export * from './PresentUser';
6
+ export * from './PresentUser';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presence/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Annotation } from '../model';
2
+ import { Store } from './Store';
3
+
4
+ export type HoverState<T extends Annotation> = ReturnType<typeof createHoverState<T>>;
5
+ export declare const createHoverState: <T extends Annotation>(store: Store<T>) => {
6
+ readonly current: string | undefined;
7
+ subscribe: (this: void, run: import('svelte/store').Subscriber<string | undefined>, invalidate?: import('svelte/store').Invalidator<string | undefined> | undefined) => import('svelte/store').Unsubscriber;
8
+ set: (this: void, value: string | undefined) => void;
9
+ };
10
+ //# sourceMappingURL=Hover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hover.d.ts","sourceRoot":"","sources":["../../src/state/Hover.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,UAAU,SAAS,KAAK,CAAC,CAAC,CAAC;;;;CA2BrE,CAAA"}
@@ -0,0 +1,34 @@
1
+ import { Annotation } from '../model';
2
+ import { Store } from './Store';
3
+
4
+ export interface Selection {
5
+ selected: {
6
+ id: string;
7
+ editable?: boolean;
8
+ }[];
9
+ event?: PointerEvent | KeyboardEvent;
10
+ [key: string]: any;
11
+ }
12
+ export type SelectionState<T extends Annotation> = ReturnType<typeof createSelectionState<T>>;
13
+ export declare enum UserSelectAction {
14
+ EDIT = "EDIT",// Make annotation target(s) editable on pointer select
15
+ SELECT = "SELECT",// Just select, but don't make editable
16
+ NONE = "NONE"
17
+ }
18
+ export type UserSelectActionExpression<T extends Annotation> = UserSelectAction | ((a: T) => UserSelectAction);
19
+ export declare const createSelectionState: <T extends Annotation>(store: Store<T>, userSelectAction?: UserSelectActionExpression<T>) => {
20
+ readonly event: PointerEvent | KeyboardEvent | null | undefined;
21
+ readonly selected: {
22
+ id: string;
23
+ editable?: boolean;
24
+ }[] | null;
25
+ clear: () => void;
26
+ isEmpty: () => boolean;
27
+ isSelected: (annotationOrId: T | string) => boolean;
28
+ setSelected: (idOrIds: string | string[], editable?: boolean) => void;
29
+ setUserSelectAction: (action: UserSelectActionExpression<T>) => UserSelectActionExpression<T>;
30
+ subscribe: (this: void, run: import('svelte/store').Subscriber<Selection>, invalidate?: import('svelte/store').Invalidator<Selection> | undefined) => import('svelte/store').Unsubscriber;
31
+ userSelect: (id: string, event?: Selection["event"]) => void;
32
+ };
33
+ export declare const onUserSelect: <T extends Annotation>(annotation: T, action?: UserSelectActionExpression<T>) => UserSelectAction;
34
+ //# sourceMappingURL=Selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Selection.d.ts","sourceRoot":"","sources":["../../src/state/Selection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,SAAS;IAExB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAE/C,KAAK,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC;IAErC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CAEpB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9F,oBAAY,gBAAgB;IAE1B,IAAI,SAAS,CAAE,uDAAuD;IAEtE,MAAM,WAAW,CAAG,uCAAuC;IAE3D,IAAI,SAAS;CAEd;AAED,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,UAAU,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC;AAI/G,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,UAAU,SAChD,KAAK,CAAC,CAAC,CAAC,qBACG,0BAA0B,CAAC,CAAC,CAAC;;;YA1B/B,MAAM;mBAAa,OAAO;;;;iCAwCN,CAAC,GAAG,MAAM;2BA6BhB,MAAM,GAAG,MAAM,EAAE,aAAa,OAAO;kCAmC9B,0BAA0B,CAAC,CAAC,CAAC;;qBAvD1C,MAAM,UAAU,SAAS,CAAC,OAAO,CAAC;CA+E3D,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,UAAU,cACnC,CAAC,WACJ,0BAA0B,CAAC,CAAC,CAAC,KACrC,gBAA2G,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Annotation } from '../model';
2
+ import { Origin, StoreChangeEvent, StoreObserveOptions } from './StoreObserver';
3
+
4
+ type AnnotationBodyIdentifier = {
5
+ id: string;
6
+ annotation: string;
7
+ };
8
+ export type Store<T extends Annotation> = ReturnType<typeof createStore<T>>;
9
+ export declare const createStore: <T extends Annotation>() => {
10
+ addAnnotation: (annotation: T, origin?: Origin) => void;
11
+ addBody: (body: T["bodies"][number], origin?: Origin) => void;
12
+ all: () => T[];
13
+ bulkAddAnnotation: (annotations: T[], replace?: boolean, origin?: Origin) => void;
14
+ bulkDeleteAnnotation: (annotationsOrIds: (T | string)[], origin?: Origin) => void;
15
+ bulkDeleteBodies: (bodies: AnnotationBodyIdentifier[], origin?: Origin) => void;
16
+ bulkUpdateAnnotation: (annotations: T[], origin?: Origin) => void;
17
+ bulkUpdateBodies: (bodies: Array<T["bodies"][number]>, origin?: Origin) => void;
18
+ bulkUpdateTargets: (targets: Array<T["target"]>, origin?: Origin) => void;
19
+ clear: (origin?: Origin) => void;
20
+ deleteAnnotation: (annotationOrId: T | string, origin?: Origin) => void;
21
+ deleteBody: (body: AnnotationBodyIdentifier, origin?: Origin) => void;
22
+ getAnnotation: (id: string) => T | undefined;
23
+ getBody: (id: string) => T["bodies"][number] | undefined;
24
+ observe: (onChange: {
25
+ (event: StoreChangeEvent<T>): void;
26
+ }, options?: StoreObserveOptions) => number;
27
+ unobserve: (onChange: {
28
+ (event: StoreChangeEvent<T>): void;
29
+ }) => void;
30
+ updateAnnotation: (arg1: string | T, arg2?: T | Origin, arg3?: Origin) => void;
31
+ updateBody: (oldBodyId: AnnotationBodyIdentifier, newBody: T["bodies"][number], origin?: Origin) => void;
32
+ updateTarget: (target: T["target"], origin?: Origin) => void;
33
+ };
34
+ export {};
35
+ //# sourceMappingURL=Store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../../src/state/Store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,MAAM,EAA6C,MAAM,iBAAiB,CAAC;AACpF,OAAO,KAAK,EAAiB,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG5F,KAAK,wBAAwB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,UAAU,IAAI,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAI5E,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,UAAU;gCAkCX,CAAC;oBAwDb,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;;qCAiCF,CAAC,EAAE;6CAmDK,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE;+BA6C5B,wBAAwB,EAAE;wCA3IjB,CAAC,EAAE;+BA4MZ,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;iCAuCxB,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;;uCA3JZ,CAAC,GAAG,MAAM;uBA6C1B,wBAAwB;wBAevB,MAAM,KAAG,CAAC,GAAG,SAAS;kBAK5B,MAAM,KAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS;wBAjOlC;QAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;KAAE,YAAW,mBAAmB;0BAGlE;QAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;KAAE;6BA6DnC,MAAM,GAAG,CAAC,SAAQ,CAAC,GAAG,MAAM;4BA8M7B,wBAAwB,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;2BAuCvD,CAAC,CAAC,QAAQ,CAAC;CAmC1C,CAAA"}
@@ -0,0 +1,58 @@
1
+ import { Annotation, AnnotationBody, AnnotationTarget } from '../model/Annotation';
2
+
3
+ /** Interface for listening to changes in the annotation store **/
4
+ export interface StoreObserver<T extends Annotation> {
5
+ onChange: {
6
+ (event: StoreChangeEvent<T>): void;
7
+ };
8
+ options: StoreObserveOptions;
9
+ }
10
+ /** A change event fired when the store state changes **/
11
+ export interface StoreChangeEvent<T extends Annotation> {
12
+ origin: Origin;
13
+ changes: ChangeSet<T>;
14
+ state: T[];
15
+ }
16
+ export interface ChangeSet<T extends Annotation> {
17
+ created?: T[];
18
+ deleted?: T[];
19
+ updated?: Update<T>[];
20
+ }
21
+ export interface Update<T extends Annotation> {
22
+ oldValue: T;
23
+ newValue: T;
24
+ bodiesCreated?: AnnotationBody[];
25
+ bodiesDeleted?: AnnotationBody[];
26
+ bodiesUpdated?: Array<{
27
+ oldBody: AnnotationBody;
28
+ newBody: AnnotationBody;
29
+ }>;
30
+ targetUpdated?: {
31
+ oldTarget: AnnotationTarget;
32
+ newTarget: AnnotationTarget;
33
+ };
34
+ }
35
+ /** Options to control which events the observer wants to get notified about **/
36
+ export interface StoreObserveOptions {
37
+ ignore?: Ignore;
38
+ annotations?: string | string[];
39
+ origin?: Origin;
40
+ }
41
+ /** Allows the observer to ignore certain event types **/
42
+ export declare enum Ignore {
43
+ BODY_ONLY = "BODY_ONLY",
44
+ TARGET_ONLY = "TARGET_ONLY"
45
+ }
46
+ /** Allows the observer to listen only for events that originated locally or from a remote source **/
47
+ export declare enum Origin {
48
+ LOCAL = "LOCAL",
49
+ REMOTE = "REMOTE"
50
+ }
51
+ /** Tests if this observer should be notified about this event **/
52
+ export declare const shouldNotify: <T extends Annotation>(observer: StoreObserver<T>, event: StoreChangeEvent<T>) => boolean;
53
+ export declare const mergeChanges: <T extends Annotation>(changes: ChangeSet<T>, toMerge: ChangeSet<T>) => {
54
+ created: T[];
55
+ deleted: T[];
56
+ updated: Update<T>[];
57
+ };
58
+ //# sourceMappingURL=StoreObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoreObserver.d.ts","sourceRoot":"","sources":["../../src/state/StoreObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGxF,kEAAkE;AAClE,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,UAAU;IAEjD,QAAQ,EAAE;QAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC;IAEjD,OAAO,EAAE,mBAAmB,CAAC;CAE9B;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,UAAU;IAEpD,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAEtB,KAAK,EAAE,CAAC,EAAE,CAAC;CAEZ;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,UAAU;IAE7C,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;IAEd,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;IAEd,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CAEvB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,UAAU;IAE1C,QAAQ,EAAE,CAAC,CAAC;IAEZ,QAAQ,EAAE,CAAC,CAAC;IAEZ,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IAEjC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;IAEjC,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAE5E,aAAa,CAAC,EAAE;QAAE,SAAS,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAC,CAAC;CAE7E;AAED,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAGlC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAGhC,MAAM,CAAC,EAAE,MAAM,CAAA;CAEhB;AAED,yDAAyD;AACzD,oBAAY,MAAM;IAGhB,SAAS,cAAc;IAGvB,WAAW,gBAAgB;CAE5B;AAED,qGAAqG;AACrG,oBAAY,MAAM;IAEhB,KAAK,UAAU;IAEf,MAAM,WAAW;CAElB;AAED,kEAAkE;AAClE,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,UAAU,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,YAiDxG,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,UAAU,WAAW,SAAS,CAAC,CAAC,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC;;;;CAyD9F,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { Annotation, Annotator, AnnotatorState } from '../model';
2
+ import { Store } from './Store';
3
+
4
+ type Subscriber<T extends Annotation> = (annotation: T[]) => void;
5
+ export interface SvelteStore<T extends Annotation> extends Store<T> {
6
+ subscribe(onChange: Subscriber<T>): void;
7
+ }
8
+ export interface SvelteAnnotatorState<T extends Annotation> extends AnnotatorState<T> {
9
+ store: SvelteStore<T>;
10
+ }
11
+ export interface SvelteAnnotator<T extends Annotation> extends Annotator<T> {
12
+ state: SvelteAnnotatorState<T>;
13
+ }
14
+ /**
15
+ * A simple wrapper around the event-based store implementation
16
+ * that adds a Svelte shim, for use with the reactive '$' notation.
17
+ * Other frameworks might not actually need this. But it's pretty
18
+ * convenient for everyone using Svelte, as well as for the
19
+ * basic (Svelte-based) Annotorious standard implementation.
20
+ */
21
+ export declare const toSvelteStore: <T extends Annotation>(store: Store<T>) => SvelteStore<T>;
22
+ export {};
23
+ //# sourceMappingURL=SvelteStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SvelteStore.d.ts","sourceRoot":"","sources":["../../src/state/SvelteStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,KAAK,UAAU,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;AAElE,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,KAAK,CAAC,CAAC,CAAC;IAEjE,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAE1C;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAEnF,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;CAEtB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAEzE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAA;CAE/B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,UAAU,SAAS,KAAK,CAAC,CAAC,CAAC,KAAG,WAAW,CAAC,CAAC,CAsBlF,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { Unsubscribe } from 'nanoevents';
2
+ import { Annotation } from '../model';
3
+ import { Store } from './Store';
4
+ import { ChangeSet } from './StoreObserver';
5
+
6
+ export interface UndoStack<T extends Annotation> {
7
+ canRedo(): boolean;
8
+ canUndo(): boolean;
9
+ destroy(): void;
10
+ on<E extends keyof UndoStackEvents<T>>(event: E, callback: UndoStackEvents<T>[E]): Unsubscribe;
11
+ undo(): void;
12
+ redo(): void;
13
+ }
14
+ export interface UndoStackEvents<T extends Annotation> {
15
+ redo(change: ChangeSet<T>): void;
16
+ undo(change: ChangeSet<T>): void;
17
+ }
18
+ export declare const createUndoStack: <T extends Annotation>(store: Store<T>) => UndoStack<T>;
19
+ //# sourceMappingURL=UndoStack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UndoStack.d.ts","sourceRoot":"","sources":["../../src/state/UndoStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAgB,KAAK,SAAS,EAAsC,MAAM,iBAAiB,CAAC;AAOnG,MAAM,WAAW,SAAS,CAAE,CAAC,SAAS,UAAU;IAE9C,OAAO,IAAI,OAAO,CAAC;IAEnB,OAAO,IAAI,OAAO,CAAC;IAEnB,OAAO,IAAI,IAAI,CAAC;IAEhB,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;IAE/F,IAAI,IAAI,IAAI,CAAC;IAEb,IAAI,IAAI,IAAI,CAAC;CAEd;AAED,MAAM,WAAW,eAAe,CAAE,CAAC,SAAS,UAAU;IAEpD,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEjC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAElC;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,UAAU,SAAS,KAAK,CAAC,CAAC,CAAC,KAAG,SAAS,CAAC,CAAC,CA2GlF,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type ViewportState = ReturnType<typeof createViewportState>;
2
+ export declare const createViewportState: () => {
3
+ subscribe: (this: void, run: import('svelte/store').Subscriber<string[]>, invalidate?: import('svelte/store').Invalidator<string[]> | undefined) => import('svelte/store').Unsubscriber;
4
+ set: (this: void, value: string[]) => void;
5
+ };
6
+ //# sourceMappingURL=Viewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Viewport.d.ts","sourceRoot":"","sources":["../../src/state/Viewport.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEnE,eAAO,MAAM,mBAAmB;;;CAS/B,CAAA"}
@@ -4,4 +4,5 @@ export * from './Store';
4
4
  export * from './StoreObserver';
5
5
  export * from './SvelteStore';
6
6
  export * from './UndoStack';
7
- export * from './Viewport';
7
+ export * from './Viewport';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Annotation, AnnotationBody } from '../model/Annotation';
2
+ import { User } from '../model/User';
3
+
4
+ /**
5
+ * Returns all users listed as creators or updaters in any parts of this
6
+ * annotation.
7
+ */
8
+ export declare const getContributors: (annotation: Annotation) => User[];
9
+ export declare const createBody: (annotationOrId: string | Annotation, payload: {
10
+ [key: string]: any;
11
+ }, created?: Date, creator?: User) => AnnotationBody;
12
+ //# sourceMappingURL=annotationUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/annotationUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,KAAK,EAAG,IAAI,EAAE,MAAM,eAAe,CAAC;AAC3C;;;GAGG;AACH,eAAO,MAAM,eAAe,eAAgB,UAAU,KAAG,IAAI,EAY5D,CAAA;AAED,eAAO,MAAM,UAAU,mBACL,MAAM,GAAG,UAAU,WAC1B;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,YACrB,IAAI,YACJ,IAAI,KACb,cAMD,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Update } from '../state/StoreObserver';
2
+ import { Annotation } from '../model/Annotation';
3
+
4
+ export declare const diffAnnotations: <T extends Annotation = Annotation>(oldValue: T, newValue: T) => Update<T>;
5
+ //# sourceMappingURL=diffAnnotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diffAnnotations.d.ts","sourceRoot":"","sources":["../../src/utils/diffAnnotations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAwBtD,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,UAAU,yBAAyB,CAAC,YAAY,CAAC,KAAG,MAAM,CAAC,CAAC,CAarG,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export * from './annotationUtils';
2
2
  export * from './diffAnnotations';
3
-
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@annotorious/core",
3
- "version": "3.0.0-rc.3",
3
+ "version": "3.0.0-rc.31",
4
4
  "description": "Annotorious core types and functions",
5
5
  "author": "Rainer Simon",
6
6
  "license": "BSD-3-Clause",
@@ -14,29 +14,32 @@
14
14
  "url": "https://github.com/annotorious/annotorious/issues"
15
15
  },
16
16
  "scripts": {
17
- "build": "echo 'Skipping build in @annotorious/core package'",
17
+ "build": "vite build",
18
18
  "test": "vitest",
19
19
  "coverage": "vitest run --coverage"
20
20
  },
21
- "main": "src/index.ts",
22
- "types": "src/index.ts",
21
+ "main": "./dist/annotorious-core.es.js",
22
+ "module": "./dist/annotorious-core.es.js",
23
+ "types": "./dist/index.d.ts",
23
24
  "files": [
24
- "src"
25
+ "dist"
25
26
  ],
26
27
  "devDependencies": {
27
- "@tsconfig/svelte": "^3.0.0",
28
- "@types/deep-equal": "^1.0.2",
29
- "@types/uuid": "^9.0.4",
30
- "svelte": "^3.59.2",
31
- "typescript": "^4.9.5",
32
- "vite": "^4.4.9",
33
- "vite-plugin-dts": "^3.6.0",
34
- "vitest": "^0.34.6"
28
+ "@sveltejs/vite-plugin-svelte": "^3.1.1",
29
+ "@tsconfig/svelte": "^5.0.4",
30
+ "@types/deep-equal": "^1.0.4",
31
+ "@types/uuid": "^10.0.0",
32
+ "svelte": "^4.2.18",
33
+ "svelte-preprocess": "^6.0.2",
34
+ "typescript": "5.5.3",
35
+ "vite": "^5.3.5",
36
+ "vite-plugin-dts": "^3.9.1",
37
+ "vitest": "^2.0.4"
35
38
  },
36
39
  "dependencies": {
37
40
  "dequal": "^2.0.3",
38
- "nanoevents": "^8.0.0",
39
- "nanoid": "^5.0.1",
40
- "uuid": "^9.0.1"
41
+ "nanoevents": "^9.0.0",
42
+ "nanoid": "^5.0.7",
43
+ "uuid": "^10.0.0"
41
44
  }
42
- }
45
+ }