@annotorious/annotorious 3.0.0-rc.21 → 3.0.0-rc.23

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 (40) hide show
  1. package/dist/Annotorious.d.ts +7 -10
  2. package/dist/Annotorious.d.ts.map +1 -1
  3. package/dist/AnnotoriousOpts.d.ts +3 -2
  4. package/dist/annotation/SVGAnnotationLayerPointerEvent.d.ts +3 -2
  5. package/dist/annotation/editors/editorsRegistry.d.ts +3 -2
  6. package/dist/annotation/tools/DrawingToolConfig.d.ts +2 -1
  7. package/dist/annotation/tools/drawingToolsRegistry.d.ts +3 -2
  8. package/dist/annotation/utils/responsive.d.ts +1 -1
  9. package/dist/annotation/utils/styling.d.ts +4 -3
  10. package/dist/annotation/utils/styling.d.ts.map +1 -1
  11. package/dist/annotorious.css +1 -1
  12. package/dist/annotorious.es.js +1082 -1079
  13. package/dist/annotorious.es.js.map +1 -1
  14. package/dist/annotorious.js +1 -1
  15. package/dist/annotorious.js.map +1 -1
  16. package/dist/keyboardCommands.d.ts +2 -1
  17. package/dist/model/core/ImageAnnotation.d.ts +3 -2
  18. package/dist/model/core/Shape.d.ts +2 -1
  19. package/dist/model/core/ellipse/Ellipse.d.ts +2 -1
  20. package/dist/model/core/polygon/Polygon.d.ts +2 -1
  21. package/dist/model/core/rectangle/Rectangle.d.ts +2 -1
  22. package/dist/model/core/rectangle/rectangleUtils.d.ts +3 -2
  23. package/dist/model/core/shapeUtils.d.ts +2 -1
  24. package/dist/model/w3c/W3CImageAnnotation.d.ts +4 -3
  25. package/dist/model/w3c/W3CImageFormatAdapter.d.ts +4 -3
  26. package/dist/model/w3c/fragment/FragmentSelector.d.ts +2 -1
  27. package/dist/model/w3c/svg/SVGSelector.d.ts +2 -1
  28. package/dist/state/ImageAnnotationStore.d.ts +3 -2
  29. package/dist/state/ImageAnnotatorState.d.ts +5 -4
  30. package/dist/state/spatialTree.d.ts +2 -1
  31. package/dist/themes/smart/setTheme.d.ts +2 -1
  32. package/package.json +11 -11
  33. package/src/Annotorious.css +4 -0
  34. package/src/Annotorious.ts +8 -2
  35. package/src/annotation/SVGAnnotationLayer.svelte +4 -2
  36. package/src/annotation/editors/EditorMount.svelte +2 -2
  37. package/src/annotation/shapes/Ellipse.svelte +2 -2
  38. package/src/annotation/shapes/Polygon.svelte +2 -2
  39. package/src/annotation/shapes/Rectangle.svelte +2 -2
  40. package/src/annotation/utils/styling.ts +5 -2
@@ -1,4 +1,5 @@
1
- import type { Annotation, UndoStack } from '@annotorious/core';
1
+ import { Annotation, UndoStack } from '@annotorious/core';
2
+
2
3
  export declare const initKeyboardCommands: <T extends Annotation>(undoStack: UndoStack<T>, container?: Element) => {
3
4
  destroy: () => void;
4
5
  };
@@ -1,5 +1,6 @@
1
- import type { Annotation, AnnotationTarget } from '@annotorious/core';
2
- import type { Shape } from './Shape';
1
+ import { Shape } from './Shape';
2
+ import { Annotation, AnnotationTarget } from '@annotorious/core';
3
+
3
4
  export interface ImageAnnotation extends Annotation {
4
5
  target: ImageAnnotationTarget;
5
6
  }
@@ -1,4 +1,5 @@
1
- import type { AbstractSelector } from '@annotorious/core';
1
+ import { AbstractSelector } from '@annotorious/core';
2
+
2
3
  export interface Shape extends AbstractSelector {
3
4
  type: ShapeType;
4
5
  geometry: Geometry;
@@ -1,4 +1,5 @@
1
- import type { Bounds, Geometry, Shape } from '../Shape';
1
+ import { Bounds, Geometry, Shape } from '../Shape';
2
+
2
3
  export interface Ellipse extends Shape {
3
4
  geometry: EllipseGeometry;
4
5
  }
@@ -1,4 +1,5 @@
1
- import type { Bounds, Geometry, Shape } from '../Shape';
1
+ import { Bounds, Geometry, Shape } from '../Shape';
2
+
2
3
  export interface Polygon extends Shape {
3
4
  geometry: PolygonGeometry;
4
5
  }
@@ -1,4 +1,5 @@
1
- import type { Bounds, Geometry, Shape } from '../Shape';
1
+ import { Bounds, Geometry, Shape } from '../Shape';
2
+
2
3
  export interface Rectangle extends Shape {
3
4
  geometry: RectangleGeometry;
4
5
  }
@@ -1,4 +1,5 @@
1
- import type { Rectangle } from './Rectangle';
2
- import { type ShapeUtil } from '../shapeUtils';
1
+ import { ShapeUtil } from '../shapeUtils';
2
+ import { Rectangle } from './Rectangle';
3
+
3
4
  export declare const RectangleUtil: ShapeUtil<Rectangle>;
4
5
  //# sourceMappingURL=rectangleUtils.d.ts.map
@@ -1,4 +1,5 @@
1
- import type { Bounds, Shape, ShapeType } from './Shape';
1
+ import { Bounds, Shape, ShapeType } from './Shape';
2
+
2
3
  export interface ShapeUtil<T extends Shape> {
3
4
  area: (shape: T) => number;
4
5
  intersects: (shape: T, x: number, y: number) => boolean;
@@ -1,6 +1,7 @@
1
- import type { W3CAnnotation, W3CAnnotationTarget } from '@annotorious/core';
2
- import type { FragmentSelector } from './fragment';
3
- import type { SVGSelector } from './svg';
1
+ import { SVGSelector } from './svg';
2
+ import { FragmentSelector } from './fragment';
3
+ import { W3CAnnotation, W3CAnnotationTarget } from '@annotorious/core';
4
+
4
5
  export interface W3CImageAnnotation extends W3CAnnotation {
5
6
  target: W3CImageAnnotationTarget | W3CImageAnnotationTarget[];
6
7
  }
@@ -1,6 +1,7 @@
1
- import type { FormatAdapter, ParseResult, W3CAnnotation } from '@annotorious/core';
2
- import type { ImageAnnotation } from '../core';
3
- import type { W3CImageAnnotation } from './W3CImageAnnotation';
1
+ import { W3CImageAnnotation } from './W3CImageAnnotation';
2
+ import { ImageAnnotation } from '../core';
3
+ import { FormatAdapter, ParseResult, W3CAnnotation } from '@annotorious/core';
4
+
4
5
  export type W3CImageFormatAdapter = FormatAdapter<ImageAnnotation, W3CImageAnnotation>;
5
6
  export declare const W3CImageFormat: (source: string, invertY?: boolean) => W3CImageFormatAdapter;
6
7
  export declare const parseW3CImageAnnotation: (annotation: W3CAnnotation, invertY?: boolean) => ParseResult<ImageAnnotation>;
@@ -1,4 +1,5 @@
1
- import type { Rectangle, RectangleGeometry } from '../../core';
1
+ import { Rectangle, RectangleGeometry } from '../../core';
2
+
2
3
  export interface FragmentSelector {
3
4
  type: 'FragmentSelector';
4
5
  conformsTo: 'http://www.w3.org/TR/media-frags/';
@@ -1,4 +1,5 @@
1
- import type { Shape } from '../../core';
1
+ import { Shape } from '../../core';
2
+
2
3
  export interface SVGSelector {
3
4
  type: 'SvgSelector';
4
5
  value: string;
@@ -1,5 +1,6 @@
1
- import type { Store, SvelteAnnotatorState, SvelteStore } from '@annotorious/core';
2
- import type { ImageAnnotation } from '../model';
1
+ import { ImageAnnotation } from '../model';
2
+ import { Store, SvelteAnnotatorState, SvelteStore } from '@annotorious/core';
3
+
3
4
  export type ImageAnnotationStore = Store<ImageAnnotation> & {
4
5
  getAt(x: number, y: number): ImageAnnotation | undefined;
5
6
  getIntersecting(x: number, y: number, width: number, height: number): ImageAnnotation[];
@@ -1,7 +1,8 @@
1
- import type { ImageAnnotation } from '../model';
2
- import type { AnnotoriousOpts } from '../AnnotoriousOpts';
3
- import { type AnnotatorState, type HoverState, type SelectionState } from '@annotorious/core';
4
- import type { ImageAnnotationStore, SvelteImageAnnotatorState } from './ImageAnnotationStore';
1
+ import { ImageAnnotationStore, SvelteImageAnnotatorState } from './ImageAnnotationStore';
2
+ import { AnnotatorState, HoverState, SelectionState } from '@annotorious/core';
3
+ import { AnnotoriousOpts } from '../AnnotoriousOpts';
4
+ import { ImageAnnotation } from '../model';
5
+
5
6
  export type ImageAnnotatorState<T extends ImageAnnotationStore = ImageAnnotationStore> = AnnotatorState<ImageAnnotation> & {
6
7
  store: T;
7
8
  selection: SelectionState<ImageAnnotation>;
@@ -1,4 +1,5 @@
1
- import type { ImageAnnotationTarget } from '../model';
1
+ import { ImageAnnotationTarget } from '../model';
2
+
2
3
  interface IndexedTarget {
3
4
  minX: number;
4
5
  minY: number;
@@ -1,4 +1,5 @@
1
- import type { Theme } from '../../AnnotoriousOpts';
1
+ import { Theme } from '../../AnnotoriousOpts';
2
+
2
3
  export declare const sampleBrightness: (imageOrCanvas: HTMLElement) => number;
3
4
  export declare const detectTheme: (imageOrCanvas: HTMLElement) => "dark" | "light";
4
5
  export declare const setTheme: (imageOrCanvas: HTMLElement, container: HTMLElement, theme: Theme) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@annotorious/annotorious",
3
- "version": "3.0.0-rc.21",
3
+ "version": "3.0.0-rc.23",
4
4
  "description": "Add image annotation functionality to any web page with a few lines of JavaScript",
5
5
  "author": "Rainer Simon",
6
6
  "license": "BSD-3-Clause",
@@ -36,20 +36,20 @@
36
36
  "./src": "./src/index.ts"
37
37
  },
38
38
  "devDependencies": {
39
- "@sveltejs/vite-plugin-svelte": "^3.0.2",
40
- "@tsconfig/svelte": "^5.0.2",
39
+ "@sveltejs/vite-plugin-svelte": "^3.1.0",
40
+ "@tsconfig/svelte": "^5.0.4",
41
41
  "@types/rbush": "^3.0.3",
42
42
  "jsdom": "^24.0.0",
43
- "svelte": "^4.2.12",
44
- "svelte-preprocess": "^5.1.3",
45
- "typescript": "^5.3.3",
46
- "vite": "^5.2.2",
47
- "vite-plugin-dts": "^3.7.3",
48
- "vitest": "^1.4.0"
43
+ "svelte": "^4.2.15",
44
+ "svelte-preprocess": "^5.1.4",
45
+ "typescript": "^5.4.5",
46
+ "vite": "^5.2.10",
47
+ "vite-plugin-dts": "^3.9.0",
48
+ "vitest": "^1.5.0"
49
49
  },
50
50
  "dependencies": {
51
- "@annotorious/core": "^3.0.0-rc.20",
51
+ "@annotorious/core": "3.0.0-rc.23",
52
52
  "rbush": "^3.0.1",
53
53
  "uuid": "^9.0.1"
54
54
  }
55
- }
55
+ }
@@ -19,6 +19,10 @@
19
19
  user-select: none;
20
20
  }
21
21
 
22
+ .a9s-annotationlayer.hidden {
23
+ display: none;
24
+ }
25
+
22
26
  .a9s-annotationlayer ellipse,
23
27
  .a9s-annotationlayer polygon,
24
28
  .a9s-annotationlayer rect {
@@ -1,5 +1,6 @@
1
1
  import type { SvelteComponent } from 'svelte';
2
- import { PointerSelectAction, type Annotator, type DrawingStyle, type Filter, type User } from '@annotorious/core';
2
+ import { PointerSelectAction } from '@annotorious/core';
3
+ import type { Annotator, DrawingStyleExpression, Filter, User } from '@annotorious/core';
3
4
  import { createAnonymousGuest, createBaseAnnotator, createLifecyleObserver, createUndoStack } from '@annotorious/core';
4
5
  import { registerEditor } from './annotation/editors';
5
6
  import { getTool, registerTool, listDrawingTools, type DrawingTool } from './annotation/tools';
@@ -142,7 +143,7 @@ export const createImageAnnotator = <E extends unknown = ImageAnnotation>(
142
143
  console.warn('Filter not implemented yet');
143
144
  }
144
145
 
145
- const setStyle = (style: DrawingStyle | ((annotation: ImageAnnotation) => DrawingStyle) | undefined) =>
146
+ const setStyle = (style: DrawingStyleExpression<ImageAnnotation> | undefined) =>
146
147
  annotationLayer.$set({ style });
147
148
 
148
149
  const setTheme = (theme: Theme) => _setTheme(img, container, theme);
@@ -152,6 +153,10 @@ export const createImageAnnotator = <E extends unknown = ImageAnnotation>(
152
153
  annotationLayer.$set({ user });
153
154
  }
154
155
 
156
+ const setVisible = (visible: boolean) =>
157
+ // @ts-ignore
158
+ annotationLayer.$set({ visible });
159
+
155
160
  return {
156
161
  ...base,
157
162
  destroy,
@@ -167,6 +172,7 @@ export const createImageAnnotator = <E extends unknown = ImageAnnotation>(
167
172
  setStyle,
168
173
  setTheme,
169
174
  setUser,
175
+ setVisible,
170
176
  state
171
177
  }
172
178
 
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { SvelteComponent, onMount } from 'svelte';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
- import type { DrawingStyle, StoreChangeEvent, User } from '@annotorious/core';
4
+ import type { DrawingStyleExpression, StoreChangeEvent, User } from '@annotorious/core';
5
5
  import { ShapeType } from '../model';
6
6
  import type { ImageAnnotation, Shape} from '../model';
7
7
  import { getEditor as _getEditor, EditorMount } from './editors';
@@ -18,9 +18,10 @@
18
18
  export let image: HTMLImageElement | HTMLCanvasElement;
19
19
  export let preferredDrawingMode: DrawingMode;
20
20
  export let state: SvelteImageAnnotatorState;
21
- export let style: DrawingStyle | ((annotation: ImageAnnotation) => DrawingStyle) | undefined = undefined;
21
+ export let style: DrawingStyleExpression<ImageAnnotation> | undefined = undefined;
22
22
  export let toolName: string = listDrawingTools()[0];
23
23
  export let user: User;
24
+ export let visible = true;
24
25
 
25
26
  $: ({ tool, opts } = getTool(toolName) || { tool: undefined, opts: undefined });
26
27
 
@@ -122,6 +123,7 @@
122
123
  bind:this={svgEl}
123
124
  class="a9s-annotationlayer"
124
125
  class:drawing={tool}
126
+ class:hidden={!visible}
125
127
  on:pointerup={onPointerUp}
126
128
  on:pointerdown={onPointerDown}>
127
129
 
@@ -1,5 +1,5 @@
1
1
  <script lang="ts">
2
- import type { DrawingStyle } from '@annotorious/core';
2
+ import type { DrawingStyleExpression } from '@annotorious/core';
3
3
  import { createEventDispatcher, onMount, type SvelteComponent } from 'svelte';
4
4
  import type { ImageAnnotation, Shape } from '../../model';
5
5
  import { computeStyle } from '../utils/styling';
@@ -10,7 +10,7 @@
10
10
  /** Props */
11
11
  export let annotation: ImageAnnotation;
12
12
  export let editor: typeof SvelteComponent;
13
- export let style: DrawingStyle | ((annotation: ImageAnnotation) => DrawingStyle) | undefined;
13
+ export let style: DrawingStyleExpression<ImageAnnotation> | undefined;
14
14
  export let target: SVGGElement;
15
15
  export let transform: Transform;
16
16
  export let viewportScale: number;
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">
2
- import type { DrawingStyle } from '@annotorious/core';
2
+ import type { DrawingStyleExpression } from '@annotorious/core';
3
3
  import type { Geometry, EllipseGeometry, ImageAnnotation } from '../../model';
4
4
  import { computeStyle } from '../utils/styling';
5
5
 
6
6
  /** Props */
7
7
  export let annotation: ImageAnnotation;
8
8
  export let geom: Geometry;
9
- export let style: DrawingStyle | ((annotation: ImageAnnotation) => DrawingStyle) | undefined;
9
+ export let style: DrawingStyleExpression<ImageAnnotation> | undefined;
10
10
 
11
11
  $: computedStyle = computeStyle(annotation, style);
12
12
 
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">
2
- import type { DrawingStyle } from '@annotorious/core';
2
+ import type { DrawingStyleExpression } from '@annotorious/core';
3
3
  import type { Geometry, ImageAnnotation, PolygonGeometry } from '../../model';
4
4
  import { computeStyle } from '../utils/styling';
5
5
 
6
6
  /** Props **/
7
7
  export let annotation: ImageAnnotation;
8
8
  export let geom: Geometry;
9
- export let style: DrawingStyle | ((annotation: ImageAnnotation) => DrawingStyle) | undefined;
9
+ export let style: DrawingStyleExpression<ImageAnnotation> | undefined;
10
10
 
11
11
  $: computedStyle = computeStyle(annotation, style);
12
12
 
@@ -1,12 +1,12 @@
1
1
  <script lang="ts">
2
- import type { DrawingStyle } from '@annotorious/core';
2
+ import type { DrawingStyleExpression } from '@annotorious/core';
3
3
  import type { Geometry, ImageAnnotation, RectangleGeometry } from '../../model';
4
4
  import { computeStyle } from '../utils/styling';
5
5
 
6
6
  /** Props **/
7
7
  export let annotation: ImageAnnotation;
8
8
  export let geom: Geometry;
9
- export let style: DrawingStyle | ((annotation: ImageAnnotation) => DrawingStyle) | undefined;
9
+ export let style: DrawingStyleExpression<ImageAnnotation> | undefined;
10
10
 
11
11
  $: computedStyle = computeStyle(annotation, style);
12
12
 
@@ -1,7 +1,10 @@
1
- import type { DrawingStyle } from '@annotorious/core';
1
+ import type { DrawingStyleExpression } from '@annotorious/core';
2
2
  import type { ImageAnnotation } from '../../model';
3
3
 
4
- export const computeStyle = (annotation: ImageAnnotation, style?: DrawingStyle | ((a: ImageAnnotation) => DrawingStyle)) => {
4
+ export const computeStyle = (
5
+ annotation: ImageAnnotation,
6
+ style?: DrawingStyleExpression<ImageAnnotation>
7
+ ) => {
5
8
  const computed = typeof style === 'function' ? style(annotation) : style;
6
9
 
7
10
  if (computed) {