@recogito/text-annotator 3.0.0-rc.4 → 3.0.0-rc.40

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 (52) hide show
  1. package/dist/src/SelectionHandler.d.ts +6 -6
  2. package/dist/src/TextAnnotator.d.ts +9 -5
  3. package/dist/src/TextAnnotatorOptions.d.ts +11 -5
  4. package/dist/src/api/scrollIntoView.d.ts +3 -3
  5. package/dist/src/highlight/Highlight.d.ts +5 -0
  6. package/dist/src/highlight/HighlightPainter.d.ts +10 -19
  7. package/dist/src/highlight/HighlightStyle.d.ts +11 -0
  8. package/dist/src/highlight/baseRenderer.d.ts +20 -0
  9. package/dist/src/highlight/canvas/canvasRenderer.d.ts +3 -0
  10. package/dist/src/highlight/canvas/index.d.ts +1 -0
  11. package/dist/src/highlight/highlights/highlightsRenderer.d.ts +5 -0
  12. package/dist/src/highlight/highlights/index.d.ts +1 -0
  13. package/dist/src/highlight/index.d.ts +5 -1
  14. package/dist/src/highlight/span/index.d.ts +1 -0
  15. package/dist/src/highlight/span/spansRenderer.d.ts +3 -0
  16. package/dist/src/highlight/viewport.d.ts +12 -0
  17. package/dist/src/index.d.ts +3 -0
  18. package/dist/src/model/{TextAnnotation.d.ts → core/TextAnnotation.d.ts} +3 -2
  19. package/dist/src/model/core/index.d.ts +1 -0
  20. package/dist/src/model/index.d.ts +2 -1
  21. package/dist/src/model/w3c/W3CTextAnnotation.d.ts +33 -0
  22. package/dist/src/model/w3c/W3CTextFormatAdapter.d.ts +12 -0
  23. package/dist/src/model/w3c/index.d.ts +2 -0
  24. package/dist/src/presence/PresencePainter.d.ts +4 -4
  25. package/dist/src/state/TextAnnotationStore.d.ts +7 -7
  26. package/dist/src/state/TextAnnotatorState.d.ts +6 -7
  27. package/dist/src/state/index.d.ts +0 -1
  28. package/dist/src/state/spatialTree.d.ts +9 -7
  29. package/dist/src/utils/cancelSingleClickEvents.d.ts +6 -0
  30. package/dist/src/utils/debounce.d.ts +1 -0
  31. package/dist/src/utils/getAnnotatableFragment.d.ts +5 -0
  32. package/dist/src/utils/getQuoteContext.d.ts +4 -0
  33. package/dist/src/utils/index.d.ts +11 -1
  34. package/dist/src/utils/isRevived.d.ts +2 -0
  35. package/dist/src/utils/isWhitespaceOrEmpty.d.ts +2 -0
  36. package/dist/src/utils/rangeToSelector.d.ts +2 -0
  37. package/dist/src/utils/reviveAnnotation.d.ts +2 -0
  38. package/dist/src/utils/reviveSelector.d.ts +11 -0
  39. package/dist/src/utils/reviveTarget.d.ts +2 -0
  40. package/dist/src/utils/splitAnnotatableRanges.d.ts +7 -0
  41. package/dist/test/model/w3c/W3CTextFormatAdapter.test.d.ts +1 -0
  42. package/dist/test/model/w3c/fixtures.d.ts +3 -0
  43. package/dist/text-annotator.css +1 -1
  44. package/dist/text-annotator.es.js +1596 -968
  45. package/dist/text-annotator.es.js.map +1 -1
  46. package/dist/text-annotator.umd.js +2 -1
  47. package/dist/text-annotator.umd.js.map +1 -1
  48. package/package.json +19 -13
  49. package/dist/src/highlight/highlightLayer.d.ts +0 -10
  50. package/dist/src/highlight/trackViewport.d.ts +0 -3
  51. package/dist/src/state/reviveTarget.d.ts +0 -9
  52. package/dist/src/utils/trimRange.d.ts +0 -1
@@ -1,7 +1,7 @@
1
- import { type User } from '@annotorious/core';
2
- import type { TextAnnotatorState } from './state';
3
- import type { TextSelector } from './model';
4
- export declare const rangeToSelector: (range: Range, container: HTMLElement, offsetReferenceSelector?: string) => TextSelector;
5
- export declare const SelectionHandler: (container: HTMLElement, state: TextAnnotatorState, offsetReferenceSelector?: string) => {
6
- setUser: (user: User) => User;
1
+ import { Filter, User } from '@annotorious/core';
2
+ import { TextAnnotatorState } from './state';
3
+ export declare const SelectionHandler: (container: HTMLElement, state: TextAnnotatorState, annotatingEnabled: boolean, offsetReferenceSelector?: string) => {
4
+ destroy: () => void;
5
+ setFilter: (filter?: Filter) => Filter;
6
+ setUser: (user?: User) => User;
7
7
  };
@@ -1,8 +1,12 @@
1
- import type { Annotator } from '@annotorious/core';
2
- import type { TextAnnotation } from './model';
3
- import type { TextAnnotatorOptions } from './TextAnnotatorOptions';
4
- export interface TextAnnotator<T extends unknown = TextAnnotation> extends Annotator<TextAnnotation, T> {
1
+ import { Annotator } from '@annotorious/core';
2
+ import { HighlightStyleExpression } from './highlight';
3
+ import { TextAnnotatorState } from './state';
4
+ import { TextAnnotation } from './model';
5
+ import { TextAnnotatorOptions } from './TextAnnotatorOptions';
6
+ export interface TextAnnotator<E extends unknown = TextAnnotation> extends Annotator<TextAnnotation, E> {
5
7
  element: HTMLElement;
8
+ setStyle(style: HighlightStyleExpression | undefined): void;
6
9
  scrollIntoView(annotation: TextAnnotation): boolean;
10
+ state: TextAnnotatorState;
7
11
  }
8
- export declare const createTextAnnotator: <E extends unknown = TextAnnotation>(container: HTMLElement, opts?: TextAnnotatorOptions<E>) => TextAnnotator<E>;
12
+ export declare const createTextAnnotator: <E extends unknown = TextAnnotation>(container: HTMLElement, options?: TextAnnotatorOptions<E>) => TextAnnotator<E>;
@@ -1,10 +1,16 @@
1
- import type { DrawingStyle, FormatAdapter, PointerSelectAction } from '@annotorious/core';
2
- import type { PresencePainterOptions } from './presence';
3
- import type { TextAnnotation } from './model';
1
+ import { FormatAdapter, UserSelectActionExpression, User } from '@annotorious/core';
2
+ import { PresencePainterOptions } from './presence';
3
+ import { TextAnnotation } from './model';
4
+ import { HighlightStyleExpression } from './highlight';
4
5
  export interface TextAnnotatorOptions<T extends unknown = TextAnnotation> {
5
6
  adapter?: FormatAdapter<TextAnnotation, T> | null;
7
+ annotatingEnabled?: boolean;
8
+ renderer?: RendererType;
6
9
  offsetReferenceSelector?: string;
7
- pointerAction?: PointerSelectAction | ((annotation: TextAnnotation) => PointerSelectAction);
10
+ userSelectAction?: UserSelectActionExpression<TextAnnotation>;
8
11
  presence?: PresencePainterOptions;
9
- style?: DrawingStyle | ((annotation: TextAnnotation) => DrawingStyle);
12
+ style?: HighlightStyleExpression;
13
+ user?: User;
10
14
  }
15
+ export type RendererType = 'SPANS' | 'CANVAS' | 'CSS_HIGHLIGHTS';
16
+ export declare const fillDefaults: <T extends unknown = TextAnnotation>(opts: TextAnnotatorOptions<T>, defaults: TextAnnotatorOptions<T>) => TextAnnotatorOptions<T>;
@@ -1,3 +1,3 @@
1
- import type { TextAnnotationStore } from 'src/state';
2
- import type { TextAnnotation } from '../model/TextAnnotation';
3
- export declare const scrollIntoView: (container: HTMLElement, store: TextAnnotationStore) => (annotation: TextAnnotation) => boolean;
1
+ import { TextAnnotationStore } from '../state';
2
+ import { TextAnnotation } from '../model';
3
+ export declare const scrollIntoView: (container: HTMLElement, store: TextAnnotationStore) => (annotationOrId: string | TextAnnotation) => boolean;
@@ -0,0 +1,5 @@
1
+ import { AnnotationState } from '@annotorious/core';
2
+ import { AnnotationRects } from '../state';
3
+ export interface Highlight extends AnnotationRects {
4
+ state: AnnotationState;
5
+ }
@@ -1,20 +1,11 @@
1
- import type { DrawingStyle } from '@annotorious/core';
2
- import type { TextAnnotation } from '../model';
3
- import type { Rect } from '../state';
4
- /**
5
- * A painter implements the actual CANVAS highlight drawing logic.
6
- */
7
- export type HighlightPainter = {
8
- paint(annotation: TextAnnotation, rects: Rect[], bg: CanvasRenderingContext2D, fg: CanvasRenderingContext2D, isSelected?: boolean, style?: DrawingStyle | ((annotation: TextAnnotation, selected?: boolean) => DrawingStyle)): void;
9
- };
10
- /**
11
- * The default painter.
12
- */
13
- export declare const defaultPainter: HighlightPainter;
14
- export interface HighlightStyle {
15
- fill?: string;
16
- fillOpacity?: number;
17
- underline?: string;
18
- underlineOpacity?: number;
19
- underlineWidth?: number;
1
+ import { Highlight } from './Highlight';
2
+ import { HighlightStyle, HighlightStyleExpression } from './HighlightStyle';
3
+ import { ViewportBounds } from './viewport';
4
+ export interface HighlightPainter {
5
+ clear(): void;
6
+ destroy(): void;
7
+ paint(highlight: Highlight, viewportBounds: ViewportBounds): HighlightStyle;
8
+ reset(): void;
20
9
  }
10
+ /** Helper **/
11
+ export declare const paint: (highlight: Highlight, viewportBounds: ViewportBounds, style?: HighlightStyleExpression, painter?: HighlightPainter, zIndex?: number) => HighlightStyle;
@@ -0,0 +1,11 @@
1
+ import { AnnotationState, Color, DrawingStyle } from '@annotorious/core';
2
+ import { TextAnnotation } from 'src/model';
3
+ export interface HighlightStyle extends Pick<DrawingStyle, 'fill' | 'fillOpacity'> {
4
+ underlineStyle?: string;
5
+ underlineColor?: Color;
6
+ underlineOffset?: number;
7
+ underlineThickness?: number;
8
+ }
9
+ export type HighlightStyleExpression = HighlightStyle | ((annotation: TextAnnotation, state: AnnotationState, zIndex?: number) => HighlightStyle | undefined);
10
+ export declare const DEFAULT_STYLE: HighlightStyle;
11
+ export declare const DEFAULT_SELECTED_STYLE: HighlightStyle;
@@ -0,0 +1,20 @@
1
+ import { Filter, ViewportState } from '@annotorious/core';
2
+ import { TextAnnotatorState } from '../state';
3
+ import { ViewportBounds } from './viewport';
4
+ import { HighlightPainter } from './HighlightPainter';
5
+ import { Highlight } from './Highlight';
6
+ import { HighlightStyleExpression } from './HighlightStyle';
7
+ export interface RendererImplementation {
8
+ destroy(): void;
9
+ redraw(highlights: Highlight[], bounds: ViewportBounds, style?: HighlightStyleExpression, painter?: HighlightPainter, lazy?: boolean): void;
10
+ setVisible(visible: boolean): void;
11
+ }
12
+ export interface Renderer {
13
+ destroy(): void;
14
+ redraw(force?: boolean): void;
15
+ setStyle(style?: HighlightStyleExpression): void;
16
+ setFilter(filter?: Filter): void;
17
+ setPainter(painter?: HighlightPainter): void;
18
+ setVisible(visible: boolean): void;
19
+ }
20
+ export declare const createBaseRenderer: (container: HTMLElement, state: TextAnnotatorState, viewport: ViewportState, renderer: RendererImplementation) => Renderer;
@@ -0,0 +1,3 @@
1
+ import { ViewportState } from '@annotorious/core';
2
+ import { TextAnnotatorState } from '../../state';
3
+ export declare const createCanvasRenderer: (container: HTMLElement, state: TextAnnotatorState, viewport: ViewportState) => import('../baseRenderer').Renderer;
@@ -0,0 +1 @@
1
+ export * from './canvasRenderer';
@@ -0,0 +1,5 @@
1
+ import { ViewportState } from '@annotorious/core';
2
+ import { TextAnnotatorState } from 'src/state';
3
+ import { RendererImplementation } from '../baseRenderer';
4
+ export declare const createRenderer: () => RendererImplementation;
5
+ export declare const createHighlightsRenderer: (container: HTMLElement, state: TextAnnotatorState, viewport: ViewportState) => import('../baseRenderer').Renderer;
@@ -0,0 +1 @@
1
+ export * from './highlightsRenderer';
@@ -1,2 +1,6 @@
1
- export * from './highlightLayer';
1
+ export * from './Highlight';
2
+ export * from './HighlightStyle';
2
3
  export * from './HighlightPainter';
4
+ export * from './canvas';
5
+ export * from './highlights';
6
+ export * from './span';
@@ -0,0 +1 @@
1
+ export * from './spansRenderer';
@@ -0,0 +1,3 @@
1
+ import { ViewportState } from '@annotorious/core';
2
+ import { TextAnnotatorState } from '../../state';
3
+ export declare const createSpansRenderer: (container: HTMLElement, state: TextAnnotatorState, viewport: ViewportState) => import('../baseRenderer').Renderer;
@@ -0,0 +1,12 @@
1
+ import { ViewportState } from '@annotorious/core';
2
+ import { TextAnnotation } from '../model';
3
+ export interface ViewportBounds {
4
+ top: number;
5
+ left: number;
6
+ minX: number;
7
+ minY: number;
8
+ maxX: number;
9
+ maxY: number;
10
+ }
11
+ export declare const getViewportBounds: (container: HTMLElement) => ViewportBounds;
12
+ export declare const trackViewport: (viewport: ViewportState) => (annotations: TextAnnotation[]) => void;
@@ -1,6 +1,9 @@
1
1
  export * from './highlight';
2
2
  export * from './model';
3
3
  export * from './state';
4
+ export * from './utils';
4
5
  export * from './presence/PresencePainterOptions';
5
6
  export * from './TextAnnotator';
6
7
  export * from './TextAnnotatorOptions';
8
+ export type { Annotation, AnnotationBody, AnnotationTarget, Annotator, AnnotatorState, Color, Filter, FormatAdapter, HoverState, Selection, SelectionState, Store, StoreChangeEvent, StoreObserver, ParseResult, User, UserSelectActionExpression, W3CAnnotation, W3CAnnotationBody, W3CAnnotationTarget } from '@annotorious/core';
9
+ export { createBody, Origin, UserSelectAction } from '@annotorious/core';
@@ -1,11 +1,12 @@
1
- import type { Annotation, AnnotationTarget } from '@annotorious/core';
1
+ import { Annotation, AnnotationTarget } from '@annotorious/core';
2
2
  export interface TextAnnotation extends Annotation {
3
3
  target: TextAnnotationTarget;
4
4
  }
5
5
  export interface TextAnnotationTarget extends AnnotationTarget {
6
- selector: TextSelector;
6
+ selector: TextSelector[];
7
7
  }
8
8
  export interface TextSelector {
9
+ id?: string;
9
10
  quote: string;
10
11
  start: number;
11
12
  end: number;
@@ -0,0 +1 @@
1
+ export * from './TextAnnotation';
@@ -1 +1,2 @@
1
- export * from './TextAnnotation';
1
+ export * from './core';
2
+ export * from './w3c';
@@ -0,0 +1,33 @@
1
+ import { W3CAnnotation, W3CAnnotationTarget } from '@annotorious/core';
2
+ export interface W3CTextAnnotation extends W3CAnnotation {
3
+ target: W3CTextAnnotationTarget | W3CTextAnnotationTarget[];
4
+ stylesheet?: W3CAnnotationStylesheet;
5
+ }
6
+ export interface W3CTextAnnotationTarget extends W3CAnnotationTarget {
7
+ selector: W3CTextSelector | W3CTextSelector[];
8
+ styleClass?: string;
9
+ }
10
+ /**
11
+ * Matches the `Text Quote Selector` spec
12
+ * @see https://www.w3.org/TR/annotation-model/#text-quote-selector
13
+ */
14
+ export interface W3CTextQuoteSelector {
15
+ type: 'TextQuoteSelector';
16
+ exact: string;
17
+ prefix?: string;
18
+ suffix?: string;
19
+ }
20
+ /**
21
+ * Matches the `Text Position Selector` spec
22
+ * @see https://www.w3.org/TR/annotation-model/#text-position-selector
23
+ */
24
+ export interface W3CTextPositionSelector {
25
+ type: 'TextPositionSelector';
26
+ start: number;
27
+ end: number;
28
+ }
29
+ export type W3CTextSelector = W3CTextQuoteSelector | W3CTextPositionSelector;
30
+ export type W3CAnnotationStylesheet = string | {
31
+ type: 'CssStylesheet';
32
+ value: string;
33
+ };
@@ -0,0 +1,12 @@
1
+ import { FormatAdapter, ParseResult } from '@annotorious/core';
2
+ import { TextAnnotation } from '../core';
3
+ import { W3CTextAnnotation } from '../w3c';
4
+ export type W3CTextFormatAdapter = FormatAdapter<TextAnnotation, W3CTextAnnotation>;
5
+ /**
6
+ * @param source - the IRI of the annotated content
7
+ * @param container - the HTML container of the annotated content,
8
+ * Required to locate the content's `range` within the DOM
9
+ */
10
+ export declare const W3CTextFormat: (source: string, container: HTMLElement) => W3CTextFormatAdapter;
11
+ export declare const parseW3CTextAnnotation: (annotation: W3CTextAnnotation) => ParseResult<TextAnnotation>;
12
+ export declare const serializeW3CTextAnnotation: (annotation: TextAnnotation, source: string, container: HTMLElement) => W3CTextAnnotation;
@@ -0,0 +1,2 @@
1
+ export * from './W3CTextAnnotation';
2
+ export * from './W3CTextFormatAdapter';
@@ -1,4 +1,4 @@
1
- import type { PresenceProvider } from '@annotorious/core';
2
- import type { HighlightPainter } from '../highlight';
3
- import type { PresencePainterOptions } from './PresencePainterOptions';
4
- export declare const createPainter: (provider: PresenceProvider, opts?: PresencePainterOptions) => HighlightPainter;
1
+ import { PresenceProvider } from '@annotorious/core';
2
+ import { HighlightPainter } from '../highlight';
3
+ import { PresencePainterOptions } from '../presence';
4
+ export declare const createPresencePainter: (container: HTMLElement, provider: PresenceProvider, opts?: PresencePainterOptions) => HighlightPainter;
@@ -1,12 +1,12 @@
1
- import type { Origin, Store } from '@annotorious/core';
2
- import type { TextAnnotation } from '../model';
1
+ import { Filter, Origin, Store } from '@annotorious/core';
2
+ import { TextAnnotation } from '../model';
3
3
  export interface TextAnnotationStore extends Omit<Store<TextAnnotation>, 'addAnnotation' | 'bulkAddAnnotation'> {
4
- addAnnotation(annotation: TextAnnotation, origin: Origin): boolean;
5
- bulkAddAnnotation(annotations: TextAnnotation[], replace: boolean, origin: Origin): TextAnnotation[];
4
+ addAnnotation(annotation: TextAnnotation, origin?: Origin): boolean;
5
+ bulkAddAnnotation(annotations: TextAnnotation[], replace: boolean, origin?: Origin): TextAnnotation[];
6
+ bulkUpsertAnnotations(annotations: TextAnnotation[], origin?: Origin): TextAnnotation[];
6
7
  getAnnotationBounds(id: string, hintX?: number, hintY?: number, buffer?: number): DOMRect;
7
- getAt(x: number, y: number): TextAnnotation | undefined;
8
- getIntersecting(minX: number, minY: number, maxX: number, maxY: number): TextAnnotation[];
9
- getIntersectingRects(minX: number, minY: number, maxX: number, maxY: number): AnnotationRects[];
8
+ getAt(x: number, y: number, filter?: Filter): TextAnnotation | undefined;
9
+ getIntersecting(minX: number, minY: number, maxX: number, maxY: number): AnnotationRects[];
10
10
  recalculatePositions(): void;
11
11
  }
12
12
  export interface AnnotationRects {
@@ -1,11 +1,10 @@
1
- import type { PointerSelectAction, ViewportState } from '@annotorious/core';
2
- import { AnnotatorState, SelectionState, HoverState } from '@annotorious/core';
3
- import type { TextAnnotation } from '../model';
4
- import type { TextAnnotationStore } from './TextAnnotationStore';
5
- export type TextAnnotatorState = AnnotatorState<TextAnnotation> & {
1
+ import { ViewportState, UserSelectActionExpression, AnnotatorState, SelectionState, HoverState } from '@annotorious/core';
2
+ import { TextAnnotation } from '../model';
3
+ import { TextAnnotationStore } from './TextAnnotationStore';
4
+ export interface TextAnnotatorState extends AnnotatorState<TextAnnotation> {
6
5
  store: TextAnnotationStore;
7
6
  selection: SelectionState<TextAnnotation>;
8
7
  hover: HoverState<TextAnnotation>;
9
8
  viewport: ViewportState;
10
- };
11
- export declare const createTextAnnotatorState: (container: HTMLElement, defaultPointerAction?: PointerSelectAction | ((annotation: TextAnnotation) => PointerSelectAction)) => TextAnnotatorState;
9
+ }
10
+ export declare const createTextAnnotatorState: (container: HTMLElement, defaultUserSelectAction?: UserSelectActionExpression<TextAnnotation>) => TextAnnotatorState;
@@ -1,3 +1,2 @@
1
- export * from './reviveTarget';
2
1
  export * from './TextAnnotationStore';
3
2
  export * from './TextAnnotatorState';
@@ -1,6 +1,7 @@
1
- import type { Store } from '@annotorious/core';
2
- import type { TextAnnotation, TextAnnotationTarget } from '../model';
3
- export interface IndexedHighlightRect {
1
+ import { Store } from '@annotorious/core';
2
+ import { TextAnnotation, TextAnnotationTarget } from '../model';
3
+ import { AnnotationRects } from './TextAnnotationStore';
4
+ interface IndexedHighlightRect {
4
5
  minX: number;
5
6
  minY: number;
6
7
  maxX: number;
@@ -13,10 +14,10 @@ export interface IndexedHighlightRect {
13
14
  export declare const createSpatialTree: (store: Store<TextAnnotation>, container: HTMLElement) => {
14
15
  all: () => IndexedHighlightRect[][];
15
16
  clear: () => void;
16
- getAt: (x: number, y: number) => string | undefined;
17
- getBoundsForAnnotation: (id: string) => DOMRect;
18
- getDOMRectsForAnnotation: (id: string) => DOMRect[];
19
- getIntersectingRects: (minX: number, minY: number, maxX: number, maxY: number) => IndexedHighlightRect[];
17
+ getAt: (x: number, y: number, all?: boolean) => string[];
18
+ getAnnotationBounds: (id: string) => DOMRect;
19
+ getAnnotationRects: (id: string) => DOMRect[];
20
+ getIntersecting: (minX: number, minY: number, maxX: number, maxY: number) => AnnotationRects[];
20
21
  insert: (target: TextAnnotationTarget) => void;
21
22
  recalculate: () => void;
22
23
  remove: (target: TextAnnotationTarget) => void;
@@ -24,3 +25,4 @@ export declare const createSpatialTree: (store: Store<TextAnnotation>, container
24
25
  size: () => number;
25
26
  update: (target: TextAnnotationTarget) => void;
26
27
  };
28
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Calls .preventDefault() on click events in annotable areas, in order
3
+ * to prevent problematic default browser behavior. (Specifically: keep
4
+ * Chrome Android from triggering word selection on single click.)
5
+ */
6
+ export declare const cancelSingleClickEvents: (container: HTMLElement) => void;
@@ -0,0 +1 @@
1
+ export declare const debounce: <T extends (...args: any[]) => void>(func: T, delay?: number) => T;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns a DocumentFragment consisting of ONLY the annotatable content
3
+ * in the given DOM Range.
4
+ */
5
+ export declare const getAnnotatableFragment: (range: Range) => DocumentFragment;
@@ -0,0 +1,4 @@
1
+ export declare const getQuoteContext: (range: Range, container: HTMLElement, length?: number, offsetReferenceSelector?: string) => {
2
+ prefix: string;
3
+ suffix: string;
4
+ };
@@ -1,3 +1,13 @@
1
+ export * from './cancelSingleClickEvents';
2
+ export * from './debounce';
3
+ export * from './getAnnotatableFragment';
1
4
  export * from './getClientRectsPonyfill';
5
+ export * from './getQuoteContext';
6
+ export * from './isWhitespaceOrEmpty';
7
+ export * from './isRevived';
2
8
  export * from './mergeClientRects';
3
- export * from './trimRange';
9
+ export * from './rangeToSelector';
10
+ export * from './reviveAnnotation';
11
+ export * from './reviveSelector';
12
+ export * from './reviveTarget';
13
+ export * from './splitAnnotatableRanges';
@@ -0,0 +1,2 @@
1
+ import { TextSelector } from '../model';
2
+ export declare const isRevived: (selector: TextSelector[]) => boolean;
@@ -0,0 +1,2 @@
1
+ export declare const whitespaceOrEmptyRegex: RegExp;
2
+ export declare const isWhitespaceOrEmpty: (range: Range) => boolean;
@@ -0,0 +1,2 @@
1
+ import { TextSelector } from '../model';
2
+ export declare const rangeToSelector: (range: Range, container: HTMLElement, offsetReferenceSelector?: string) => TextSelector;
@@ -0,0 +1,2 @@
1
+ import { TextAnnotation } from '../model';
2
+ export declare const reviveAnnotation: (annotation: TextAnnotation, container: HTMLElement) => TextAnnotation;
@@ -0,0 +1,11 @@
1
+ import { TextSelector } from '../model';
2
+ /**
3
+ * Creates a new selector object with the revived DOM range from the given text annotation position
4
+ * Only the annotatable elements are processed and counted towards the range
5
+ *
6
+ * @param selector annotation selector with start and end positions
7
+ * @param container the HTML container of the annotated content
8
+ *
9
+ * @returns the revived selector
10
+ */
11
+ export declare const reviveSelector: (selector: TextSelector, container: HTMLElement) => TextSelector;
@@ -0,0 +1,2 @@
1
+ import { TextAnnotationTarget } from '../model';
2
+ export declare const reviveTarget: (target: TextAnnotationTarget, container: HTMLElement) => TextAnnotationTarget;
@@ -0,0 +1,7 @@
1
+ export declare const NOT_ANNOTATABLE_CLASS = "not-annotatable";
2
+ export declare const NOT_ANNOTATABLE_SELECTOR = ".not-annotatable";
3
+ /**
4
+ * Splits a DOM Range into one or more ranges that span annotatable content only.
5
+ */
6
+ export declare const splitAnnotatableRanges: (range: Range) => Range[];
7
+ export declare const getRangeAnnotatableContents: (range: Range) => DocumentFragment;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { W3CTextAnnotation } from '../../../src';
2
+ export declare const textAnnotation: W3CTextAnnotation;
3
+ export declare const incompleteTextAnnotation: W3CTextAnnotation;
@@ -1 +1 @@
1
- html,body{overscroll-behavior-y:none}.r6o-annotatable,.r6o-annotatable *{position:relative}.r6o-annotatable.hovered{cursor:pointer}.r6o-highlight-layer{height:100vh;left:0;position:fixed;top:0;pointer-events:none;width:100vw}*::selection,::selection{background:rgba(0,128,255,.18)}::-moz-selection{background:rgba(0,128,255,.18)}
1
+ .r6o-canvas-highlight-layer{position:fixed;top:0;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none}.r6o-canvas-highlight-layer.bg{mix-blend-mode:multiply;z-index:1}.r6o-annotatable .r6o-span-highlight-layer{position:absolute;top:0;left:0;width:100%;height:100%;mix-blend-mode:multiply;pointer-events:none;z-index:1}.r6o-annotatable .r6o-span-highlight-layer.hidden{display:none}.r6o-annotatable .r6o-span-highlight-layer .r6o-annotation{border-style:solid;border-width:0;box-sizing:content-box;display:block;position:absolute}.r6o-presence-layer{left:0;position:fixed;top:0;bottom:0;width:100vw;pointer-events:none}html,body{overscroll-behavior-y:none}.r6o-annotatable{position:relative;-webkit-tap-highlight-color:transparent}.hovered *{cursor:pointer}*::selection,::selection{background:#0080ff2e}::-moz-selection{background:#0080ff2e}