@embedpdf/plugin-annotation 2.6.2 → 2.7.0

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 (138) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +203 -8
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/actions.d.ts +12 -1
  6. package/dist/lib/annotation-plugin.d.ts +17 -0
  7. package/dist/lib/tools/default-tools.d.ts +2 -0
  8. package/dist/lib/tools/types.d.ts +2 -0
  9. package/dist/lib/types.d.ts +18 -2
  10. package/dist/preact/index.cjs +1 -1
  11. package/dist/preact/index.cjs.map +1 -1
  12. package/dist/preact/index.js +1008 -1058
  13. package/dist/preact/index.js.map +1 -1
  14. package/dist/react/index.cjs +1 -1
  15. package/dist/react/index.cjs.map +1 -1
  16. package/dist/react/index.js +1008 -1058
  17. package/dist/react/index.js.map +1 -1
  18. package/dist/shared/components/annotation-container.d.ts +11 -5
  19. package/dist/shared/components/annotations/circle.d.ts +4 -2
  20. package/dist/shared/components/annotations/free-text.d.ts +4 -1
  21. package/dist/shared/components/annotations/ink.d.ts +3 -1
  22. package/dist/shared/components/annotations/line.d.ts +3 -1
  23. package/dist/shared/components/annotations/polygon.d.ts +3 -2
  24. package/dist/shared/components/annotations/polyline.d.ts +3 -1
  25. package/dist/shared/components/annotations/square.d.ts +4 -2
  26. package/dist/shared/components/annotations.d.ts +0 -1
  27. package/dist/shared/components/appearance-image.d.ts +12 -0
  28. package/dist/shared/components/built-in-renderers.d.ts +2 -0
  29. package/dist/shared/components/text-markup/highlight.d.ts +3 -1
  30. package/dist/shared/components/text-markup/squiggly.d.ts +3 -1
  31. package/dist/shared/components/text-markup/strikeout.d.ts +3 -1
  32. package/dist/shared/components/text-markup/underline.d.ts +3 -1
  33. package/dist/shared/components/types.d.ts +66 -10
  34. package/dist/shared-preact/components/annotation-container.d.ts +11 -5
  35. package/dist/shared-preact/components/annotations/circle.d.ts +4 -2
  36. package/dist/shared-preact/components/annotations/free-text.d.ts +4 -1
  37. package/dist/shared-preact/components/annotations/ink.d.ts +3 -1
  38. package/dist/shared-preact/components/annotations/line.d.ts +3 -1
  39. package/dist/shared-preact/components/annotations/polygon.d.ts +3 -2
  40. package/dist/shared-preact/components/annotations/polyline.d.ts +3 -1
  41. package/dist/shared-preact/components/annotations/square.d.ts +4 -2
  42. package/dist/shared-preact/components/annotations.d.ts +0 -1
  43. package/dist/shared-preact/components/appearance-image.d.ts +12 -0
  44. package/dist/shared-preact/components/built-in-renderers.d.ts +2 -0
  45. package/dist/shared-preact/components/text-markup/highlight.d.ts +3 -1
  46. package/dist/shared-preact/components/text-markup/squiggly.d.ts +3 -1
  47. package/dist/shared-preact/components/text-markup/strikeout.d.ts +3 -1
  48. package/dist/shared-preact/components/text-markup/underline.d.ts +3 -1
  49. package/dist/shared-preact/components/types.d.ts +66 -10
  50. package/dist/shared-react/components/annotation-container.d.ts +11 -5
  51. package/dist/shared-react/components/annotations/circle.d.ts +4 -2
  52. package/dist/shared-react/components/annotations/free-text.d.ts +4 -1
  53. package/dist/shared-react/components/annotations/ink.d.ts +3 -1
  54. package/dist/shared-react/components/annotations/line.d.ts +3 -1
  55. package/dist/shared-react/components/annotations/polygon.d.ts +3 -2
  56. package/dist/shared-react/components/annotations/polyline.d.ts +3 -1
  57. package/dist/shared-react/components/annotations/square.d.ts +4 -2
  58. package/dist/shared-react/components/annotations.d.ts +0 -1
  59. package/dist/shared-react/components/appearance-image.d.ts +12 -0
  60. package/dist/shared-react/components/built-in-renderers.d.ts +2 -0
  61. package/dist/shared-react/components/text-markup/highlight.d.ts +3 -1
  62. package/dist/shared-react/components/text-markup/squiggly.d.ts +3 -1
  63. package/dist/shared-react/components/text-markup/strikeout.d.ts +3 -1
  64. package/dist/shared-react/components/text-markup/underline.d.ts +3 -1
  65. package/dist/shared-react/components/types.d.ts +66 -10
  66. package/dist/svelte/components/Annotations.svelte.d.ts +0 -7
  67. package/dist/svelte/components/AppearanceImage.svelte.d.ts +8 -0
  68. package/dist/svelte/components/annotations/Circle.svelte.d.ts +1 -10
  69. package/dist/svelte/components/annotations/FreeText.svelte.d.ts +1 -0
  70. package/dist/svelte/components/annotations/Ink.svelte.d.ts +1 -1
  71. package/dist/svelte/components/annotations/Line.svelte.d.ts +1 -0
  72. package/dist/svelte/components/annotations/Polygon.svelte.d.ts +1 -0
  73. package/dist/svelte/components/annotations/Polyline.svelte.d.ts +1 -1
  74. package/dist/svelte/components/annotations/Square.svelte.d.ts +1 -0
  75. package/dist/svelte/components/built-in-renderers.d.ts +2 -0
  76. package/dist/svelte/components/renderers/CircleRenderer.svelte.d.ts +5 -0
  77. package/dist/svelte/components/renderers/FreeTextRenderer.svelte.d.ts +5 -0
  78. package/dist/svelte/components/renderers/HighlightRenderer.svelte.d.ts +5 -0
  79. package/dist/svelte/components/renderers/InkRenderer.svelte.d.ts +5 -0
  80. package/dist/svelte/components/renderers/LineRenderer.svelte.d.ts +5 -0
  81. package/dist/svelte/components/renderers/LinkRenderer.svelte.d.ts +5 -0
  82. package/dist/svelte/components/renderers/PolygonRenderer.svelte.d.ts +5 -0
  83. package/dist/svelte/components/renderers/PolylineRenderer.svelte.d.ts +5 -0
  84. package/dist/svelte/components/renderers/SquareRenderer.svelte.d.ts +5 -0
  85. package/dist/svelte/components/renderers/SquigglyRenderer.svelte.d.ts +5 -0
  86. package/dist/svelte/components/renderers/StampRenderer.svelte.d.ts +5 -0
  87. package/dist/svelte/components/renderers/StrikeoutRenderer.svelte.d.ts +5 -0
  88. package/dist/svelte/components/renderers/UnderlineRenderer.svelte.d.ts +5 -0
  89. package/dist/svelte/components/text-markup/Highlight.svelte.d.ts +2 -0
  90. package/dist/svelte/components/text-markup/Squiggly.svelte.d.ts +2 -0
  91. package/dist/svelte/components/text-markup/Strikeout.svelte.d.ts +2 -0
  92. package/dist/svelte/components/text-markup/Underline.svelte.d.ts +2 -0
  93. package/dist/svelte/components/types.d.ts +8 -2
  94. package/dist/svelte/context/renderer-registry.svelte.d.ts +2 -2
  95. package/dist/svelte/context/types.d.ts +63 -2
  96. package/dist/svelte/index.cjs +1 -1
  97. package/dist/svelte/index.cjs.map +1 -1
  98. package/dist/svelte/index.js +2509 -2864
  99. package/dist/svelte/index.js.map +1 -1
  100. package/dist/vue/components/annotation-container.vue.d.ts +8 -3
  101. package/dist/vue/components/annotation-layer.vue.d.ts +1 -20
  102. package/dist/vue/components/annotations/circle.vue.d.ts +18 -5
  103. package/dist/vue/components/annotations/free-text.vue.d.ts +17 -5
  104. package/dist/vue/components/annotations/ink.vue.d.ts +16 -6
  105. package/dist/vue/components/annotations/line.vue.d.ts +20 -5
  106. package/dist/vue/components/annotations/link.vue.d.ts +24 -6
  107. package/dist/vue/components/annotations/polygon.vue.d.ts +21 -5
  108. package/dist/vue/components/annotations/polyline.vue.d.ts +18 -5
  109. package/dist/vue/components/annotations/square.vue.d.ts +18 -5
  110. package/dist/vue/components/annotations/stamp.vue.d.ts +11 -5
  111. package/dist/vue/components/annotations.vue.d.ts +8 -575
  112. package/dist/vue/components/appearance-image.vue.d.ts +9 -0
  113. package/dist/vue/components/built-in-renderers.d.ts +2 -0
  114. package/dist/vue/components/group-selection-box.vue.d.ts +2 -2
  115. package/dist/vue/components/renderers/circle-renderer.vue.d.ts +6 -0
  116. package/dist/vue/components/renderers/free-text-renderer.vue.d.ts +6 -0
  117. package/dist/vue/components/renderers/highlight-renderer.vue.d.ts +6 -0
  118. package/dist/vue/components/renderers/ink-renderer.vue.d.ts +6 -0
  119. package/dist/vue/components/renderers/line-renderer.vue.d.ts +6 -0
  120. package/dist/vue/components/renderers/link-renderer.vue.d.ts +6 -0
  121. package/dist/vue/components/renderers/polygon-renderer.vue.d.ts +6 -0
  122. package/dist/vue/components/renderers/polyline-renderer.vue.d.ts +6 -0
  123. package/dist/vue/components/renderers/square-renderer.vue.d.ts +6 -0
  124. package/dist/vue/components/renderers/squiggly-renderer.vue.d.ts +6 -0
  125. package/dist/vue/components/renderers/stamp-renderer.vue.d.ts +6 -0
  126. package/dist/vue/components/renderers/strikeout-renderer.vue.d.ts +6 -0
  127. package/dist/vue/components/renderers/underline-renderer.vue.d.ts +6 -0
  128. package/dist/vue/components/text-markup/highlight.vue.d.ts +17 -5
  129. package/dist/vue/components/text-markup/squiggly.vue.d.ts +17 -5
  130. package/dist/vue/components/text-markup/strikeout.vue.d.ts +17 -5
  131. package/dist/vue/components/text-markup/underline.vue.d.ts +17 -5
  132. package/dist/vue/context/renderer-registry.d.ts +2 -2
  133. package/dist/vue/context/types.d.ts +63 -2
  134. package/dist/vue/index.cjs +1 -1
  135. package/dist/vue/index.cjs.map +1 -1
  136. package/dist/vue/index.js +1651 -1278
  137. package/dist/vue/index.js.map +1 -1
  138. package/package.json +10 -10
@@ -14,6 +14,7 @@ export declare const SET_SELECTION = "ANNOTATION/SET_SELECTION";
14
14
  export declare const SET_ACTIVE_TOOL_ID = "ANNOTATION/SET_ACTIVE_TOOL_ID";
15
15
  export declare const CREATE_ANNOTATION = "ANNOTATION/CREATE_ANNOTATION";
16
16
  export declare const PATCH_ANNOTATION = "ANNOTATION/PATCH_ANNOTATION";
17
+ export declare const MOVE_ANNOTATION = "ANNOTATION/MOVE_ANNOTATION";
17
18
  export declare const DELETE_ANNOTATION = "ANNOTATION/DELETE_ANNOTATION";
18
19
  export declare const COMMIT_PENDING_CHANGES = "ANNOTATION/COMMIT";
19
20
  export declare const PURGE_ANNOTATION = "ANNOTATION/PURGE_ANNOTATION";
@@ -102,6 +103,15 @@ export interface PatchAnnotationAction extends Action {
102
103
  patch: Partial<PdfAnnotationObject>;
103
104
  };
104
105
  }
106
+ export interface MoveAnnotationAction extends Action {
107
+ type: typeof MOVE_ANNOTATION;
108
+ payload: {
109
+ documentId: string;
110
+ pageIndex: number;
111
+ id: string;
112
+ patch: Partial<PdfAnnotationObject>;
113
+ };
114
+ }
105
115
  export interface DeleteAnnotationAction extends Action {
106
116
  type: typeof DELETE_ANNOTATION;
107
117
  payload: {
@@ -140,7 +150,7 @@ export interface AddToolAction extends Action {
140
150
  type: typeof ADD_TOOL;
141
151
  payload: AnnotationTool;
142
152
  }
143
- export type AnnotationAction = InitAnnotationStateAction | CleanupAnnotationStateAction | SetActiveDocumentAction | SetAnnotationsAction | SelectAnnotationAction | DeselectAnnotationAction | AddToSelectionAction | RemoveFromSelectionAction | SetSelectionAction | SetActiveToolIdAction | CreateAnnotationAction | PatchAnnotationAction | DeleteAnnotationAction | CommitAction | PurgeAnnotationAction | AddColorPresetAction | SetToolDefaultsAction | AddToolAction;
153
+ export type AnnotationAction = InitAnnotationStateAction | CleanupAnnotationStateAction | SetActiveDocumentAction | SetAnnotationsAction | SelectAnnotationAction | DeselectAnnotationAction | AddToSelectionAction | RemoveFromSelectionAction | SetSelectionAction | SetActiveToolIdAction | CreateAnnotationAction | PatchAnnotationAction | MoveAnnotationAction | DeleteAnnotationAction | CommitAction | PurgeAnnotationAction | AddColorPresetAction | SetToolDefaultsAction | AddToolAction;
144
154
  export declare function initAnnotationState(documentId: string, state: AnnotationDocumentState): InitAnnotationStateAction;
145
155
  export declare function cleanupAnnotationState(documentId: string): CleanupAnnotationStateAction;
146
156
  export declare function setActiveDocument(documentId: string | null): SetActiveDocumentAction;
@@ -153,6 +163,7 @@ export declare const setSelection: (documentId: string, ids: string[]) => SetSel
153
163
  export declare const setActiveToolId: (documentId: string, toolId: string | null) => SetActiveToolIdAction;
154
164
  export declare const createAnnotation: (documentId: string, pageIndex: number, annotation: PdfAnnotationObject) => CreateAnnotationAction;
155
165
  export declare const patchAnnotation: (documentId: string, pageIndex: number, id: string, patch: Partial<PdfAnnotationObject>) => PatchAnnotationAction;
166
+ export declare const moveAnnotation: (documentId: string, pageIndex: number, id: string, patch: Partial<PdfAnnotationObject>) => MoveAnnotationAction;
156
167
  export declare const deleteAnnotation: (documentId: string, pageIndex: number, id: string) => DeleteAnnotationAction;
157
168
  export declare const commitPendingChanges: (documentId: string, committedUids: string[]) => CommitAction;
158
169
  export declare const purgeAnnotation: (documentId: string, pageIndex: number, uid: string) => PurgeAnnotationAction;
@@ -21,6 +21,7 @@ export declare class AnnotationPlugin extends BasePlugin<AnnotationPluginConfig,
21
21
  private readonly events$;
22
22
  private readonly toolsChange$;
23
23
  private readonly patchRegistry;
24
+ private readonly appearanceCache;
24
25
  private readonly unifiedDragStates;
25
26
  private readonly unifiedDrag$;
26
27
  private readonly unifiedResizeStates;
@@ -50,6 +51,20 @@ export declare class AnnotationPlugin extends BasePlugin<AnnotationPluginConfig,
50
51
  private getSelectedAnnotation;
51
52
  private getAnnotationById;
52
53
  private renderAnnotation;
54
+ /**
55
+ * Batch-fetch rendered appearance stream images for all annotations on a page.
56
+ * Results are cached per document + page. Call invalidatePageAppearances to clear.
57
+ */
58
+ private getPageAppearances;
59
+ /**
60
+ * Clear cached appearances for a specific page (e.g. on zoom change).
61
+ */
62
+ private invalidatePageAppearances;
63
+ /**
64
+ * Remove a single annotation's entry from the page appearance cache.
65
+ * Used after committing changes that regenerate the annotation's appearance.
66
+ */
67
+ private invalidateAnnotationAppearance;
53
68
  private importAnnotations;
54
69
  private processImportQueue;
55
70
  private processImportItems;
@@ -227,6 +242,8 @@ export declare class AnnotationPlugin extends BasePlugin<AnnotationPluginConfig,
227
242
  */
228
243
  get onRotateChange(): import('@embedpdf/core').EventHook<UnifiedRotateEvent>;
229
244
  private updateAnnotationsMethod;
245
+ private moveAnnotationsMethod;
246
+ private moveAnnotationMethod;
230
247
  getActiveTool(documentId?: string): AnnotationTool | null;
231
248
  setActiveTool(toolId: string | null, documentId?: string): void;
232
249
  getTool<T extends AnnotationTool>(toolId: string): T | undefined;
@@ -497,6 +497,7 @@ export declare const defaultTools: ({
497
497
  };
498
498
  behavior: {
499
499
  insertUpright: true;
500
+ useAppearanceStream?: undefined;
500
501
  };
501
502
  } | {
502
503
  id: "stamp";
@@ -533,6 +534,7 @@ export declare const defaultTools: ({
533
534
  };
534
535
  behavior: {
535
536
  insertUpright: true;
537
+ useAppearanceStream: false;
536
538
  };
537
539
  clickBehavior?: undefined;
538
540
  })[];
@@ -132,6 +132,8 @@ export type AnnotationTool<T extends PdfAnnotationObject = PdfAnnotationObject>
132
132
  deactivateToolAfterCreate?: boolean;
133
133
  /** When true, select the annotation immediately after creation. Overrides plugin config. */
134
134
  selectAfterCreate?: boolean;
135
+ /** Override whether this annotation type uses AP rendering before editing (default: true) */
136
+ useAppearanceStream?: boolean;
135
137
  } & InsertUprightBehaviorFor<T>;
136
138
  } & ClickBehaviorFor<T>;
137
139
  export {};
@@ -1,5 +1,5 @@
1
1
  import { BasePluginConfig, EventHook } from '@embedpdf/core';
2
- import { AnnotationCreateContext, PdfAnnotationObject, PdfAnnotationSubtype, PdfErrorReason, PdfRenderPageAnnotationOptions, PdfTextAnnoObject, Position, Rect, Size, Task } from '@embedpdf/models';
2
+ import { AnnotationCreateContext, AnnotationAppearanceMap, PdfAnnotationObject, PdfAnnotationSubtype, PdfErrorReason, PdfRenderPageAnnotationOptions, PdfTextAnnoObject, Position, Rect, Size, Task } from '@embedpdf/models';
3
3
  import { AnnotationTool } from './tools/types';
4
4
  /**
5
5
  * Metadata attached to annotation history commands for filtering/purging.
@@ -38,10 +38,12 @@ export type AnnotationEvent = {
38
38
  export type AnnotationToolsChangeEvent = {
39
39
  tools: AnnotationTool[];
40
40
  };
41
- export type CommitState = 'new' | 'dirty' | 'deleted' | 'synced' | 'ignored';
41
+ export type CommitState = 'new' | 'dirty' | 'moved' | 'deleted' | 'synced' | 'ignored';
42
42
  export interface TrackedAnnotation<T extends PdfAnnotationObject = PdfAnnotationObject> {
43
43
  commitState: CommitState;
44
44
  object: T;
45
+ /** When true, render using dict-based SVG/CSS instead of appearance stream image */
46
+ dictMode?: boolean;
45
47
  }
46
48
  /**
47
49
  * Represents a batch of pending annotation changes to be committed.
@@ -58,6 +60,8 @@ export interface CommitBatch {
58
60
  updates: Array<{
59
61
  uid: string;
60
62
  ta: TrackedAnnotation;
63
+ /** When true, only positional data changed -- skip appearance regeneration */
64
+ moved?: boolean;
61
65
  }>;
62
66
  /** Annotations that need to be deleted from the PDF */
63
67
  deletions: Array<{
@@ -204,6 +208,8 @@ export interface AnnotationScope {
204
208
  id: string;
205
209
  patch: Partial<PdfAnnotationObject>;
206
210
  }>): void;
211
+ /** Move an annotation by delta or to an absolute position (preserves appearance stream) */
212
+ moveAnnotation(pageIndex: number, annotationId: string, position: Position, mode?: 'delta' | 'absolute'): void;
207
213
  deleteAnnotation(pageIndex: number, annotationId: string): void;
208
214
  /** Delete multiple annotations in batch */
209
215
  deleteAnnotations(annotations: Array<{
@@ -213,6 +219,10 @@ export interface AnnotationScope {
213
219
  /** Remove an annotation from state without calling the engine (no PDF modification) */
214
220
  purgeAnnotation(pageIndex: number, annotationId: string): void;
215
221
  renderAnnotation(options: RenderAnnotationOptions): Task<Blob, PdfErrorReason>;
222
+ /** Batch-fetch rendered appearance stream images for all annotations on a page */
223
+ getPageAppearances(pageIndex: number, options?: PdfRenderPageAnnotationOptions): Task<AnnotationAppearanceMap<Blob>, PdfErrorReason>;
224
+ /** Clear cached appearance images for a page (e.g. on zoom change) */
225
+ invalidatePageAppearances(pageIndex: number): void;
216
226
  commit(): Task<boolean, PdfErrorReason>;
217
227
  /** Get link annotations attached to an annotation via IRT relationship */
218
228
  getAttachedLinks(annotationId: string): TrackedAnnotation[];
@@ -265,6 +275,8 @@ export interface AnnotationCapability {
265
275
  id: string;
266
276
  patch: Partial<PdfAnnotationObject>;
267
277
  }>) => void;
278
+ /** Move an annotation by delta or to an absolute position (preserves appearance stream) */
279
+ moveAnnotation: (pageIndex: number, annotationId: string, position: Position, mode?: 'delta' | 'absolute', documentId?: string) => void;
268
280
  deleteAnnotation: (pageIndex: number, annotationId: string) => void;
269
281
  /** Delete multiple annotations in batch */
270
282
  deleteAnnotations: (annotations: Array<{
@@ -274,6 +286,10 @@ export interface AnnotationCapability {
274
286
  /** Remove an annotation from state without calling the engine (no PDF modification) */
275
287
  purgeAnnotation: (pageIndex: number, annotationId: string, documentId?: string) => void;
276
288
  renderAnnotation: (options: RenderAnnotationOptions) => Task<Blob, PdfErrorReason>;
289
+ /** Batch-fetch rendered appearance stream images for all annotations on a page */
290
+ getPageAppearances: (pageIndex: number, options?: PdfRenderPageAnnotationOptions, documentId?: string) => Task<AnnotationAppearanceMap<Blob>, PdfErrorReason>;
291
+ /** Clear cached appearance images for a page (e.g. on zoom change) */
292
+ invalidatePageAppearances: (pageIndex: number, documentId?: string) => void;
277
293
  commit: () => Task<boolean, PdfErrorReason>;
278
294
  /** Get link annotations attached to an annotation via IRT relationship */
279
295
  getAttachedLinks: (annotationId: string, documentId?: string) => TrackedAnnotation[];
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),t=require("@embedpdf/plugin-annotation"),o=require("preact/jsx-runtime"),n=require("preact"),i=require("preact/hooks"),r=require("preact/compat"),l=require("@embedpdf/core/preact"),s=require("@embedpdf/models"),a=require("@embedpdf/plugin-interaction-manager/preact"),c=require("@embedpdf/plugin-selection/preact"),d=require("@embedpdf/utils/preact"),u={},p=n.createContext(null),g=n.createContext([]);function h({children:e}){const[t,n]=i.useState([]),r=i.useCallback(e=>(n(t=>{const o=new Set(e.map(e=>e.id));return[...t.filter(e=>!o.has(e.id)),...e]}),()=>n(t=>t.filter(t=>!e.some(e=>e.id===t.id)))),[]);return o.jsx(p.Provider,{value:r,children:o.jsx(g.Provider,{value:t,children:e})})}function v(){return i.useContext(g)}const b=()=>l.usePlugin(t.AnnotationPlugin.id),x=()=>l.useCapability(t.AnnotationPlugin.id);function f({scale:e,documentId:t,pageIndex:n,rotation:a,pageWidth:c,pageHeight:u,trackedAnnotation:p,children:g,isSelected:h,isMultiSelected:v=!1,isDraggable:f,isResizable:y,isRotatable:m=!0,lockAspectRatio:j=!1,style:k={},vertexConfig:S,selectionMenu:I,outlineOffset:R=1,onDoubleClick:P,onSelect:M,zIndex:C=1,resizeUI:z,vertexUI:w,rotationUI:A,selectionOutlineColor:D,selectionOutline:E,customAnnotationRenderer:B,groupSelectionMenu:$,groupSelectionOutline:T,annotationRenderers:L,...F}){var O,U,W;const[H,N]=i.useState(p.object),[q,G]=i.useState(null),[Y,V]=i.useState(null),[X,K]=i.useState(!1),{provides:Q}=x(),{plugin:Z}=b(),{canModifyAnnotations:J}=l.useDocumentPermissions(t),_=i.useRef(null),ee=J&&f&&!v,te=J&&y&&!v,oe=J&&m&&!v,ne=i.useMemo(()=>Q?Q.forDocument(t):null,[Q,t]),ie=H?{...p.object,...H}:p.object,re=(null==z?void 0:z.color)??"#007ACC",le=(null==w?void 0:w.color)??"#007ACC",se=(null==A?void 0:A.color)??"white",ae=(null==A?void 0:A.connectorColor)??"#007ACC",ce=(null==z?void 0:z.size)??12,de=(null==w?void 0:w.size)??12,ue=(null==A?void 0:A.size)??32,pe=null==A?void 0:A.margin,ge=(null==A?void 0:A.iconColor)??"#007ACC",he=(null==A?void 0:A.showConnector)??!1,ve=(null==(O=null==A?void 0:A.border)?void 0:O.color)??"#007ACC",be=(null==(U=null==A?void 0:A.border)?void 0:U.width)??1,xe=(null==(W=null==A?void 0:A.border)?void 0:W.style)??"solid",fe=(null==E?void 0:E.color)??D??"#007ACC",ye=(null==E?void 0:E.style)??"solid",me=(null==E?void 0:E.width)??1,je=(null==E?void 0:E.offset)??R??1,ke=q??ie.rotation??0,Se=q??ie.rotation??0,Ie=Number.isFinite(Se)?Math.round(10*Se)/10:0,Re=null!==q,Pe=i.useRef(null),Me=i.useCallback(e=>{var o;if(!(null==(o=e.transformData)?void 0:o.type)||v||!Z)return;const{type:i,changes:r,metadata:l}=e.transformData,s=p.object.id,a={width:c,height:u};if("start"===e.state&&(Pe.current=p.object.unrotatedRect??p.object.rect,_.current=p.object,"move"===i?Z.startDrag(t,{annotationIds:[s],pageSize:a}):"resize"===i&&Z.startResize(t,{annotationIds:[s],pageSize:a,resizeHandle:(null==l?void 0:l.handle)??"se"})),r.rect&&Pe.current)if("move"===i){const e={x:r.rect.origin.x-Pe.current.origin.x,y:r.rect.origin.y-Pe.current.origin.y};Z.updateDrag(t,e)}else"resize"===i&&Z.updateResize(t,r.rect);if("vertex-edit"===i&&r.vertices&&S){const t=_.current??p.object,o=S.transformAnnotation(t,r.vertices),a=null==Q?void 0:Q.transformAnnotation(t,{type:i,changes:o,metadata:l});a&&(N(e=>({...e,...a})),"end"===e.state&&(null==ne||ne.updateAnnotation(n,s,a)))}if("rotate"===i){const o=(null==l?void 0:l.rotationAngle)??ke,n=null==l?void 0:l.cursorPosition;return n&&V({x:n.clientX,y:n.clientY}),void("start"===e.state?(G(o),Z.startRotation(t,{annotationIds:[s],cursorAngle:o,rotationCenter:null==l?void 0:l.rotationCenter})):"move"===e.state?(G(o),Z.updateRotation(t,o,null==l?void 0:l.rotationDelta)):"end"===e.state&&(G(null),V(null),Z.commitRotation(t)))}"end"===e.state&&(Pe.current=null,_.current=null,"move"===i?Z.commitDrag(t):"resize"===i&&Z.commitResize(t))},[Z,t,p.object,c,u,n,v,S,Q,ne,ke]),Ce=ie.unrotatedRect,ze=Ce??ie.rect,we=Ce&&0!==ke?s.inferRotationCenterFromRects(ze,ie.rect,ke):void 0,Ae=ze,{dragProps:De,vertices:Ee,resize:Be,rotation:$e}=d.useInteractionHandles({controller:{element:Ae,vertices:null==S?void 0:S.extractVertices(ie),constraints:{minWidth:10,minHeight:10,boundingBox:{width:c,height:u}},maintainAspectRatio:j,pageRotation:a,annotationRotation:ke,rotationCenter:we,rotationElement:ie.rect,scale:e,enabled:h&&!v,onUpdate:Me},resizeUI:{handleSize:ce,spacing:je,offsetMode:"outside",includeSides:!j,zIndex:C+1},vertexUI:{vertexSize:de,zIndex:C+2},rotationUI:{handleSize:ue,margin:pe,zIndex:C+3,showConnector:he},includeVertices:!!S,includeRotation:oe,currentRotation:ke}),Te=i.useMemo(()=>{if(J&&P)return P},[J,P]),Le=d.useDoublePressProps(Te);i.useEffect(()=>{N(p.object)},[p.object]),i.useEffect(()=>{if(!Z)return;const e=p.object.id,o=o=>{var n;if(o.documentId!==t)return;"end"!==o.type&&"cancel"!==o.type||G(null);const i=null==(n=o.previewPatches)?void 0:n[e];"update"===o.type&&i?N(e=>({...e,...i})):"cancel"===o.type&&N(p.object)},n=[Z.onDragChange(o),Z.onResizeChange(o),Z.onRotateChange(o)];return()=>n.forEach(e=>e())},[Z,t,p.object]);const Fe=h&&!v,Oe=ie.rect.size.width*e,Ue=ie.rect.size.height*e,We=ze.size.width*e,He=ze.size.height*e,Ne=Boolean(Ce)&&0!==ke,qe=Ne?(ze.origin.x-ie.rect.origin.x)*e:(Oe-We)/2,Ge=Ne?(ze.origin.y-ie.rect.origin.y)*e:(Ue-He)/2,Ye=Ne&&we?`${(we.x-ze.origin.x)*e}px ${(we.y-ze.origin.y)*e}px`:"center center",Ve=we?(we.x-ie.rect.origin.x)*e:Oe/2,Xe=we?(we.y-ie.rect.origin.y)*e:Ue/2,Ke=Math.max(300,Math.max(Oe,Ue)+80),Qe=i.useMemo(()=>Ce?{...ie,rect:Ce}:ie,[ie,Ce]);return o.jsxs("div",{"data-no-interaction":!0,children:[o.jsxs("div",{style:{position:"absolute",left:ie.rect.origin.x*e,top:ie.rect.origin.y*e,width:Oe,height:Ue,pointerEvents:"none",zIndex:C,...k},...F,children:[Re&&o.jsxs(o.Fragment,{children:[o.jsx("div",{style:{position:"absolute",left:Ve-Ke/2,top:Xe,width:Ke,height:1,backgroundColor:ae,opacity:.35,pointerEvents:"none"}}),o.jsx("div",{style:{position:"absolute",left:Ve,top:Xe-Ke/2,width:1,height:Ke,backgroundColor:ae,opacity:.35,pointerEvents:"none"}}),o.jsx("div",{style:{position:"absolute",left:Ve-Ke/2,top:Xe,width:Ke,height:1,transformOrigin:"center center",transform:`rotate(${ke}deg)`,backgroundColor:ae,opacity:.8,pointerEvents:"none"}})]}),h&&oe&&$e&&((null==A?void 0:A.component)?o.jsx("div",{onPointerEnter:()=>K(!0),onPointerLeave:()=>{K(!1),V(null)},onPointerMove:e=>{Re||V({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:A.component({...$e.handle,backgroundColor:se,iconColor:ge,connectorStyle:{...$e.connector.style,backgroundColor:ae,opacity:Re?0:1},showConnector:he,opacity:Re?0:1,border:{color:ve,width:be,style:xe}})}):o.jsxs("div",{onPointerEnter:()=>K(!0),onPointerLeave:()=>{K(!1),V(null)},onPointerMove:e=>{Re||V({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:[he&&o.jsx("div",{style:{...$e.connector.style,backgroundColor:ae,opacity:Re?0:1}}),o.jsx("div",{...$e.handle,style:{...$e.handle.style,backgroundColor:se,border:`${be}px ${xe} ${ve}`,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto",opacity:Re?0:1},children:o.jsxs("svg",{width:Math.round(.6*ue),height:Math.round(.6*ue),viewBox:"0 0 24 24",fill:"none",stroke:ge,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}),o.jsx("path",{d:"M21 3v5h-5"})]})})]})),o.jsxs("div",{...ee&&h?De:{},...Le,style:{position:"absolute",left:qe,top:Ge,width:We,height:He,transform:0!==ke?`rotate(${ke}deg)`:void 0,transformOrigin:Ye,outline:Fe?`${me}px ${ye} ${fe}`:"none",outlineOffset:Fe?`${je}px`:"0px",pointerEvents:h&&!v?"auto":"none",touchAction:"none",cursor:h&&ee?"move":"default"},children:[(()=>{const t="function"==typeof g?g(Qe):g,o=null==B?void 0:B({annotation:Qe,children:t,isSelected:h,scale:e,rotation:a,pageWidth:c,pageHeight:u,pageIndex:n,onSelect:M});return null!=o?o:t})(),h&&te&&!Re&&Be.map(({key:e,...t})=>(null==z?void 0:z.component)?z.component({key:e,...t,backgroundColor:re}):o.jsx("div",{...t,style:{...t.style,backgroundColor:re}},e)),h&&J&&!v&&!Re&&Ee.map(({key:e,...t})=>(null==w?void 0:w.component)?w.component({key:e,...t,backgroundColor:le}):o.jsx("div",{...t,style:{...t.style,backgroundColor:le}},e))]})]}),I&&!v&&!Re&&o.jsx(d.CounterRotate,{rect:{origin:{x:ie.rect.origin.x*e,y:ie.rect.origin.y*e},size:{width:ie.rect.size.width*e,height:ie.rect.size.height*e}},rotation:a,children:e=>{const t=((ke+90*a)%360+360)%360;return I({...e,context:{type:"annotation",annotation:p,pageIndex:n},selected:h,placement:{suggestTop:oe&&t>90&&t<270}})}}),(Re||X)&&Y&&r.createPortal(o.jsxs("div",{style:{position:"fixed",left:Y.x+16,top:Y.y-16,background:"rgba(0,0,0,0.8)",color:"#fff",padding:"4px 8px",borderRadius:4,fontSize:12,fontFamily:"monospace",pointerEvents:"none",zIndex:1e4,whiteSpace:"nowrap"},children:[Ie.toFixed(0),"°"]}),document.body)]})}function y({documentId:e,pageIndex:t,scale:n,rotation:a,pageWidth:c,pageHeight:u,selectedAnnotations:p,isDraggable:g,isResizable:h,isRotatable:v=!0,lockAspectRatio:x=!1,resizeUI:f,rotationUI:y,selectionOutlineColor:m,outlineOffset:j,selectionOutline:k,zIndex:S=2,groupSelectionMenu:I}){var R,P,M;const{plugin:C}=b(),{canModifyAnnotations:z}=l.useDocumentPermissions(e),w=i.useRef(null),A=i.useRef(!1),D=i.useRef(!1),[E,B]=i.useState(null),[$,T]=i.useState(null),[L,F]=i.useState(!1),O=z&&g,U=z&&h,W=z&&v,H=i.useMemo(()=>{const e=p.map(e=>e.object.rect);return s.boundingRectOrEmpty(e)},[p]),[N,q]=i.useState(H);i.useEffect(()=>{A.current||D.current||q(H)},[H]),i.useEffect(()=>{if(!C)return;return C.onRotateChange(t=>{t.documentId===e&&("end"!==t.type&&"cancel"!==t.type||B(null))})},[C,e]);const G=i.useCallback(t=>{var o,n,i,r,l,s;if(!(null==(o=t.transformData)?void 0:o.type))return;if(!C)return;const a=t.transformData.type,d="move"===a,g="resize"===a;if(d&&!O)return;if("start"===t.state&&(w.current=H,d?(A.current=!0,C.startDrag(e,{annotationIds:p.map(e=>e.object.id),pageSize:{width:c,height:u}})):g&&(D.current=!0,C.startResize(e,{annotationIds:p.map(e=>e.object.id),pageSize:{width:c,height:u},resizeHandle:(null==(n=t.transformData.metadata)?void 0:n.handle)??"se"}))),"rotate"===a){if(!v)return;const o=p.map(e=>e.object.id),n=(null==(i=t.transformData.metadata)?void 0:i.rotationAngle)??0,a=null==(r=t.transformData.metadata)?void 0:r.cursorPosition;return a&&T({x:a.clientX,y:a.clientY}),void("start"===t.state?(B(n),C.startRotation(e,{annotationIds:o,cursorAngle:n,rotationCenter:null==(l=t.transformData.metadata)?void 0:l.rotationCenter})):"move"===t.state?(B(n),C.updateRotation(e,n,null==(s=t.transformData.metadata)?void 0:s.rotationDelta)):"end"===t.state&&(B(null),T(null),C.commitRotation(e)))}const h=w.current??H;if(d&&t.transformData.changes.rect){const o=t.transformData.changes.rect,n={x:o.origin.x-h.origin.x,y:o.origin.y-h.origin.y},i=C.updateDrag(e,n);q({...h,origin:{x:h.origin.x+i.x,y:h.origin.y+i.y}})}else if(g&&t.transformData.changes.rect){const o=t.transformData.changes.rect;C.updateResize(e,o),q(o)}"end"===t.state&&(w.current=null,d&&A.current?(A.current=!1,C.commitDrag(e)):g&&D.current&&(D.current=!1,C.commitResize(e)))},[C,e,c,u,H,O,p,v]),Y=E??0,V=null!==E,X=Number.isFinite(Y)?Math.round(10*Y)/10:0,K=(null==f?void 0:f.color)??"#007ACC",Q=(null==f?void 0:f.size)??12,Z=(null==y?void 0:y.color)??"white",J=(null==y?void 0:y.connectorColor)??"#007ACC",_=(null==y?void 0:y.size)??32,ee=null==y?void 0:y.margin,te=(null==y?void 0:y.iconColor)??"#007ACC",oe=(null==y?void 0:y.showConnector)??!1,ne=(null==(R=null==y?void 0:y.border)?void 0:R.color)??"#007ACC",ie=(null==(P=null==y?void 0:y.border)?void 0:P.width)??1,re=(null==(M=null==y?void 0:y.border)?void 0:M.style)??"solid",le=(null==k?void 0:k.color)??m??"#007ACC",se=(null==k?void 0:k.style)??"dashed",ae=(null==k?void 0:k.width)??2,ce=(null==k?void 0:k.offset)??j??2,{dragProps:de,resize:ue,rotation:pe}=d.useInteractionHandles({controller:{element:N,constraints:{minWidth:20,minHeight:20,boundingBox:{width:c,height:u}},maintainAspectRatio:x,pageRotation:a,scale:n,enabled:!0,onUpdate:G},resizeUI:{handleSize:Q,spacing:ce,offsetMode:"outside",includeSides:!x,zIndex:S+1},vertexUI:{vertexSize:0,zIndex:S},rotationUI:{handleSize:_,margin:ee,zIndex:S+2,showConnector:oe},includeVertices:!1,includeRotation:W,currentRotation:E??0});if(p.length<2)return null;const ge=N.size.width*n,he=N.size.height*n,ve=ge/2,be=he/2,xe=Math.max(300,Math.max(ge,he)+80);return o.jsxs("div",{"data-group-selection-box":!0,"data-no-interaction":!0,children:[o.jsxs("div",{style:{position:"absolute",left:N.origin.x*n,top:N.origin.y*n,width:ge,height:he,pointerEvents:"none",zIndex:S},children:[V&&o.jsxs(o.Fragment,{children:[o.jsx("div",{style:{position:"absolute",left:ve-xe/2,top:be,width:xe,height:1,backgroundColor:K,opacity:.35,pointerEvents:"none"}}),o.jsx("div",{style:{position:"absolute",left:ve,top:be-xe/2,width:1,height:xe,backgroundColor:K,opacity:.35,pointerEvents:"none"}}),o.jsx("div",{style:{position:"absolute",left:ve-xe/2,top:be,width:xe,height:1,transformOrigin:"center center",transform:`rotate(${Y}deg)`,backgroundColor:K,opacity:.8,pointerEvents:"none"}})]}),W&&pe&&((null==y?void 0:y.component)?o.jsx("div",{onPointerEnter:()=>F(!0),onPointerLeave:()=>{F(!1),T(null)},onPointerMove:e=>{V||T({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:y.component({...pe.handle,backgroundColor:Z,iconColor:te,connectorStyle:{...pe.connector.style,backgroundColor:J,opacity:V?0:1},showConnector:oe,opacity:V?0:1,border:{color:ne,width:ie,style:re}})}):o.jsxs("div",{onPointerEnter:()=>F(!0),onPointerLeave:()=>{F(!1),T(null)},onPointerMove:e=>{V||T({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:[oe&&o.jsx("div",{style:{...pe.connector.style,backgroundColor:J,opacity:V?0:1}}),o.jsx("div",{...pe.handle,style:{...pe.handle.style,backgroundColor:Z,border:`${ie}px ${re} ${ne}`,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto",opacity:V?0:1},children:o.jsxs("svg",{width:Math.round(.6*_),height:Math.round(.6*_),viewBox:"0 0 24 24",fill:"none",stroke:te,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}),o.jsx("path",{d:"M21 3v5h-5"})]})})]})),o.jsx("div",{...O?de:{onPointerDown:e=>e.stopPropagation()},style:{position:"absolute",left:0,top:0,width:ge,height:he,outline:V?"none":`${ae}px ${se} ${le}`,outlineOffset:ce-1,cursor:O?"move":"default",touchAction:"none",pointerEvents:"auto"},children:U&&!V&&ue.map(({key:e,...t})=>(null==f?void 0:f.component)?f.component({key:e,...t,backgroundColor:K}):o.jsx("div",{...t,style:{...t.style,backgroundColor:K}},e))})]}),(V||L)&&$&&r.createPortal(o.jsxs("div",{style:{position:"fixed",left:$.x+16,top:$.y-16,background:"rgba(0,0,0,0.8)",color:"#fff",padding:"4px 8px",borderRadius:4,fontSize:12,fontFamily:"monospace",pointerEvents:"none",zIndex:1e4,whiteSpace:"nowrap"},children:[X.toFixed(0),"°"]}),document.body),I&&o.jsx(d.CounterRotate,{rect:{origin:{x:N.origin.x*n,y:N.origin.y*n},size:{width:N.size.width*n,height:N.size.height*n}},rotation:a,children:e=>{const o=((Y+90*a)%360+360)%360;return I({...e,context:{type:"group",annotations:p,pageIndex:t},selected:!0,placement:{suggestTop:W&&o>90&&o<270}})}})]})}function m({strokeColor:e,opacity:t=.5,segmentRects:n,rect:i,scale:r,onClick:l,style:s}){const a=e??"#FFFF00";return o.jsx(o.Fragment,{children:n.map((e,n)=>o.jsx("div",{onPointerDown:l,onTouchStart:l,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:a,opacity:t,pointerEvents:l?"auto":"none",cursor:l?"pointer":"default",zIndex:l?1:void 0,...s}},n))})}function j({strokeColor:e,opacity:t=.5,segmentRects:n,rect:i,scale:r,onClick:l,style:s}){const a=e??"#FFFF00",c=2*r;return o.jsx(o.Fragment,{children:n.map((e,n)=>o.jsx("div",{onPointerDown:l,onTouchStart:l,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:"transparent",pointerEvents:l?"auto":"none",cursor:l?"pointer":"default",zIndex:l?1:0,...s},children:o.jsx("div",{style:{position:"absolute",left:0,bottom:0,width:"100%",height:c,background:a,opacity:t,pointerEvents:"none"}})},n))})}function k({strokeColor:e,opacity:t=.5,segmentRects:n,rect:i,scale:r,onClick:l,style:s}){const a=e??"#FFFF00",c=2*r;return o.jsx(o.Fragment,{children:n.map((e,n)=>o.jsx("div",{onPointerDown:l,onTouchStart:l,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:"transparent",pointerEvents:l?"auto":"none",cursor:l?"pointer":"default",zIndex:l?1:0,...s},children:o.jsx("div",{style:{position:"absolute",left:0,top:"50%",width:"100%",height:c,background:a,opacity:t,transform:"translateY(-50%)",pointerEvents:"none"}})},n))})}function S({strokeColor:e,opacity:t=.5,segmentRects:n,rect:i,scale:r,onClick:l,style:s}){const a=2*r,c=6*r,d=`url("data:image/svg+xml;utf8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="${c}" height="${2*a}" viewBox="0 0 ${c} ${2*a}">\n <path d="M0 ${a} Q ${c/4} 0 ${c/2} ${a} T ${c} ${a}"\n fill="none" stroke="${e??"#FFFF00"}" stroke-width="${a}" stroke-linecap="round"/>\n </svg>`)}")`;return o.jsx(o.Fragment,{children:n.map((e,n)=>o.jsx("div",{onPointerDown:l,onTouchStart:l,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:"transparent",pointerEvents:l?"auto":"none",cursor:l?"pointer":"default",zIndex:l?1:0,...s},children:o.jsx("div",{style:{position:"absolute",left:0,bottom:0,width:"100%",height:2*a,backgroundImage:d,backgroundRepeat:"repeat-x",backgroundSize:`${c}px ${2*a}px`,opacity:t,pointerEvents:"none"}})},n))})}function I({isSelected:e,strokeColor:t,opacity:n=1,strokeWidth:r,inkList:l,rect:s,scale:a,onClick:c}){const d=t??"#000000",u=i.useMemo(()=>l.map(({points:e})=>{let t="";return e.forEach(({x:e,y:o},n)=>{const i=e-s.origin.x,r=o-s.origin.y;t+=(0===n?"M":"L")+i+" "+r+" "}),t.trim()}),[l,s]),p=s.size.width*a,g=s.size.height*a;return o.jsx("svg",{style:{position:"absolute",width:p,height:g,pointerEvents:"none",zIndex:2,overflow:"visible"},width:p,height:g,viewBox:`0 0 ${s.size.width} ${s.size.height}`,children:u.map((t,i)=>o.jsx("path",{d:t,fill:"none",opacity:n,onPointerDown:c,onTouchStart:c,style:{cursor:e?"move":"pointer",pointerEvents:e?"none":"visibleStroke",stroke:d,strokeWidth:r,strokeLinecap:"round",strokeLinejoin:"round"}},i))})}function R({isSelected:e,color:t="#000000",strokeColor:n,opacity:r=1,strokeWidth:l,strokeStyle:a=s.PdfAnnotationBorderStyle.SOLID,strokeDashArray:c,rect:d,scale:u,onClick:p}){const{width:g,height:h,x:v,y:b}=i.useMemo(()=>{const e=d.size.width,t=d.size.height;return{width:Math.max(e-l,0),height:Math.max(t-l,0),x:l/2,y:l/2}},[d,l]),x=(g+l)*u,f=(h+l)*u;return o.jsx("svg",{style:{position:"absolute",width:x,height:f,pointerEvents:"none",zIndex:2},width:x,height:f,viewBox:`0 0 ${g+l} ${h+l}`,children:o.jsx("rect",{x:v,y:b,width:g,height:h,fill:t,opacity:r,onPointerDown:p,onTouchStart:p,style:{cursor:e?"move":"pointer",pointerEvents:e?"none":"transparent"===t?"visibleStroke":"visible",stroke:n??t,strokeWidth:l,...a===s.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}}})})}function P({color:e="#000000",strokeColor:t,opacity:n=1,strokeWidth:r,strokeStyle:l=s.PdfAnnotationBorderStyle.SOLID,strokeDashArray:a,rect:c,scale:d,onClick:u,isSelected:p}){const{width:g,height:h,cx:v,cy:b,rx:x,ry:f}=i.useMemo(()=>{const e=c.size.width,t=c.size.height,o=Math.max(e-r,0),n=Math.max(t-r,0);return{width:e,height:t,cx:r/2+o/2,cy:r/2+n/2,rx:o/2,ry:n/2}},[c,r]),y=g*d,m=h*d;return o.jsx("svg",{style:{position:"absolute",width:y,height:m,pointerEvents:"none",zIndex:2},width:y,height:m,viewBox:`0 0 ${g} ${h}`,children:o.jsx("ellipse",{cx:v,cy:b,rx:x,ry:f,fill:e,opacity:n,onPointerDown:u,onTouchStart:u,style:{cursor:p?"move":"pointer",pointerEvents:p?"none":"transparent"===e?"visibleStroke":"visible",stroke:t??e,strokeWidth:r,...l===s.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==a?void 0:a.join(",")}}})})}function M({color:e="transparent",opacity:n=1,strokeWidth:r,strokeColor:l="#000000",strokeStyle:a=s.PdfAnnotationBorderStyle.SOLID,strokeDashArray:c,rect:d,linePoints:u,lineEndings:p,scale:g,onClick:h,isSelected:v}){const{x1:b,y1:x,x2:f,y2:y}=i.useMemo(()=>({x1:u.start.x-d.origin.x,y1:u.start.y-d.origin.y,x2:u.end.x-d.origin.x,y2:u.end.y-d.origin.y}),[u,d]),m=i.useMemo(()=>{const e=Math.atan2(y-x,f-b);return{start:t.patching.createEnding(null==p?void 0:p.start,r,e+Math.PI,b,x),end:t.patching.createEnding(null==p?void 0:p.end,r,e,f,y)}},[p,r,b,x,f,y]),j=d.size.width*g,k=d.size.height*g;return o.jsxs("svg",{style:{position:"absolute",width:j,height:k,pointerEvents:"none",zIndex:2,overflow:"visible"},width:j,height:k,viewBox:`0 0 ${d.size.width} ${d.size.height}`,children:[o.jsx("line",{x1:b,y1:x,x2:f,y2:y,opacity:n,onPointerDown:h,onTouchStart:h,style:{cursor:v?"move":"pointer",pointerEvents:v?"none":"visibleStroke",stroke:l,strokeWidth:r,strokeLinecap:"butt",...a===s.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}}}),m.start&&o.jsx("path",{d:m.start.d,transform:m.start.transform,onPointerDown:h,onTouchStart:h,stroke:l,style:{cursor:v?"move":"pointer",strokeWidth:r,strokeLinecap:"butt",pointerEvents:v?"none":m.start.filled?"visible":"visibleStroke",...a===s.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}},fill:m.start.filled?e:"none"}),m.end&&o.jsx("path",{d:m.end.d,transform:m.end.transform,stroke:l,onPointerDown:h,onTouchStart:h,style:{cursor:v?"move":"pointer",strokeWidth:r,strokeLinecap:"butt",pointerEvents:v?"none":m.end.filled?"visible":"visibleStroke",...a===s.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}},fill:m.end.filled?e:"none"})]})}function C({rect:e,vertices:n,color:r="transparent",strokeColor:l="#000000",opacity:s=1,strokeWidth:a,scale:c,isSelected:d,onClick:u,lineEndings:p}){const g=i.useMemo(()=>n.map(({x:t,y:o})=>({x:t-e.origin.x,y:o-e.origin.y})),[n,e]),h=i.useMemo(()=>{if(!g.length)return"";const[e,...t]=g;return`M ${e.x} ${e.y} `+t.map(e=>`L ${e.x} ${e.y} `).join("").trim()},[g]),v=i.useMemo(()=>{if(g.length<2)return{start:null,end:null};const e=(e,t)=>Math.atan2(t.y-e.y,t.x-e.x),o=e(g[0],g[1]),n=e(g[g.length-2],g[g.length-1]);return{start:t.patching.createEnding(null==p?void 0:p.start,a,o+Math.PI,g[0].x,g[0].y),end:t.patching.createEnding(null==p?void 0:p.end,a,n,g[g.length-1].x,g[g.length-1].y)}},[g,p,a]),b=e.size.width*c,x=e.size.height*c;return o.jsxs("svg",{style:{position:"absolute",width:b,height:x,pointerEvents:"none",zIndex:2,overflow:"visible"},width:b,height:x,viewBox:`0 0 ${e.size.width} ${e.size.height}`,children:[o.jsx("path",{d:h,onPointerDown:u,onTouchStart:u,opacity:s,style:{fill:"none",stroke:l??r,strokeWidth:a,cursor:d?"move":"pointer",pointerEvents:d?"none":"visibleStroke",strokeLinecap:"butt",strokeLinejoin:"miter"}}),v.start&&o.jsx("path",{d:v.start.d,transform:v.start.transform,stroke:l,fill:v.start.filled?r:"none",onPointerDown:u,onTouchStart:u,style:{cursor:d?"move":"pointer",strokeWidth:a,pointerEvents:d?"none":v.start.filled?"visible":"visibleStroke",strokeLinecap:"butt"}}),v.end&&o.jsx("path",{d:v.end.d,transform:v.end.transform,stroke:l,fill:v.end.filled?r:"none",onPointerDown:u,onTouchStart:u,style:{cursor:d?"move":"pointer",strokeWidth:a,pointerEvents:d?"none":v.end.filled?"visible":"visibleStroke",strokeLinecap:"butt"}})]})}function z({rect:e,vertices:t,color:n="transparent",strokeColor:r="#000000",opacity:l=1,strokeWidth:a,strokeStyle:c=s.PdfAnnotationBorderStyle.SOLID,strokeDashArray:d,scale:u,isSelected:p,onClick:g,currentVertex:h,handleSize:v=14}){const b=h?[...t,h]:t,x=i.useMemo(()=>b.map(({x:t,y:o})=>({x:t-e.origin.x,y:o-e.origin.y})),[b,e]),f=i.useMemo(()=>{if(!x.length)return"";const[e,...t]=x,o=!!h;return(`M ${e.x} ${e.y} `+t.map(e=>`L ${e.x} ${e.y}`).join(" ")+(o?"":" Z")).trim()},[x,h]),y=h&&t.length>0,m=e.size.width*u,j=e.size.height*u;return o.jsxs("svg",{style:{position:"absolute",width:m,height:j,pointerEvents:"none",zIndex:2,overflow:"visible"},width:m,height:j,viewBox:`0 0 ${e.size.width} ${e.size.height}`,children:[o.jsx("path",{d:f,onPointerDown:g,onTouchStart:g,opacity:l,style:{fill:h?"none":n,stroke:r??n,strokeWidth:a,cursor:p?"move":"pointer",pointerEvents:p?"none":"transparent"===n?"visibleStroke":"visible",strokeLinecap:"butt",strokeLinejoin:"miter",...c===s.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==d?void 0:d.join(",")}}}),y&&t.length>1&&o.jsx("path",{d:`M ${x[x.length-1].x} ${x[x.length-1].y} L ${x[0].x} ${x[0].y}`,fill:"none",style:{stroke:r,strokeWidth:a,strokeDasharray:"4,4",opacity:.7}}),y&&t.length>=2&&o.jsx("rect",{x:x[0].x-v/u/2,y:x[0].y-v/u/2,width:v/u,height:v/u,fill:r,opacity:.4,stroke:r,strokeWidth:a/2})]})}function w({isSelected:e,isEditing:t,annotation:n,pageIndex:r,scale:l,onClick:a}){const c=i.useRef(null),{provides:d}=x(),[p,g]=i.useState(!1);i.useEffect(()=>{if(t&&c.current){const e=c.current;e.focus();const t=window.getSelection();if(t){const o=document.createRange();o.selectNodeContents(e),o.collapse(!1),t.removeAllRanges(),t.addRange(o)}}},[t]),i.useLayoutEffect(()=>{try{const e=navigator,t=/iPad|iPhone|iPod/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&(null==e?void 0:e.maxTouchPoints)>1;g(t)}catch{g(!1)}},[]);const h=n.object.fontSize*l,v=p&&t&&h>0&&h<16,b=v?16:h,f=v?h/16:1,y=v?100/f:100;return o.jsx("div",{style:{position:"absolute",width:n.object.rect.size.width*l,height:n.object.rect.size.height*l,cursor:e&&!t?"move":"default",pointerEvents:e&&!t?"none":"auto",zIndex:2},onPointerDown:a,onTouchStart:a,children:o.jsx("span",{ref:c,onBlur:()=>{d&&c.current&&d.updateAnnotation(r,n.object.id,{contents:c.current.innerText})},tabIndex:0,style:{color:n.object.fontColor,fontSize:b,...s.standardFontCssProperties(n.object.fontFamily),textAlign:s.textAlignmentToCss(n.object.textAlign),flexDirection:"column",justifyContent:n.object.verticalAlign===s.PdfVerticalAlignment.Top?"flex-start":n.object.verticalAlign===s.PdfVerticalAlignment.Middle?"center":"flex-end",display:"flex",backgroundColor:n.object.color??n.object.backgroundColor,opacity:n.object.opacity,width:v?`${y}%`:"100%",height:v?`${y}%`:"100%",lineHeight:"1.18",overflow:"hidden",cursor:t?"text":"pointer",outline:"none",transform:v?`scale(${f})`:void 0,transformOrigin:"top left"},contentEditable:t,...u,children:n.object.contents})})}function A({documentId:e,pageIndex:t,annotation:r,scaleFactor:l=1,unrotated:a,style:c,...d}){const{provides:u}=x(),[p,g]=i.useState(null),h=i.useRef(null),{width:v,height:b}=r.rect.size;i.useEffect(()=>{if(u){const o=u.forDocument(e).renderAnnotation({pageIndex:t,annotation:r,options:{scaleFactor:l,dpr:window.devicePixelRatio,unrotated:a}});return o.wait(e=>{const t=URL.createObjectURL(e);g(t),h.current=t},s.ignore),()=>{h.current?(URL.revokeObjectURL(h.current),h.current=null):o.abort({code:s.PdfErrorCode.Cancelled,message:"canceled render task"})}}},[t,l,a,u,e,r.id,v,b]);return o.jsx(n.Fragment,{children:p&&o.jsx("img",{src:p,onLoad:()=>{h.current&&(URL.revokeObjectURL(h.current),h.current=null)},...d,style:{width:"100%",height:"100%",display:"block",...c||{}}})})}function D({isSelected:e,annotation:t,documentId:n,pageIndex:i,scale:r,onClick:l}){const s=!!t.object.rotation&&!!t.object.unrotatedRect;return o.jsx("div",{style:{position:"absolute",width:"100%",height:"100%",zIndex:2,pointerEvents:e?"none":"auto",cursor:"pointer"},onPointerDown:l,onTouchStart:l,children:o.jsx(A,{documentId:n,pageIndex:i,annotation:{...t.object,id:t.object.id},scaleFactor:r,unrotated:s})})}function E({isSelected:e,strokeColor:t="#0000FF",strokeWidth:n=2,strokeStyle:r=s.PdfAnnotationBorderStyle.UNDERLINE,strokeDashArray:l,rect:a,scale:c,onClick:d,hasIRT:u=!1}){const{width:p,height:g}=i.useMemo(()=>({width:a.size.width,height:a.size.height}),[a]),h=p*c,v=g*c,b=i.useMemo(()=>{if(r===s.PdfAnnotationBorderStyle.DASHED)return(null==l?void 0:l.join(","))??`${3*n},${n}`},[r,l,n]),x=r===s.PdfAnnotationBorderStyle.UNDERLINE;return o.jsxs("svg",{style:{position:"absolute",width:h,height:v,pointerEvents:"none",zIndex:2},width:h,height:v,viewBox:`0 0 ${p} ${g}`,children:[o.jsx("rect",{x:0,y:0,width:p,height:g,fill:"transparent",onPointerDown:u?void 0:d,onTouchStart:u?void 0:d,style:{cursor:u?"default":e?"move":"pointer",pointerEvents:u||e?"none":"visible"}}),x?o.jsx("line",{x1:1,y1:g-1,x2:p-1,y2:g-1,stroke:t,strokeWidth:n,strokeDasharray:b,style:{pointerEvents:"none"}}):o.jsx("rect",{x:n/2,y:n/2,width:Math.max(p-n,0),height:Math.max(g-n,0),fill:"transparent",stroke:t,strokeWidth:n,strokeDasharray:b,style:{pointerEvents:"none"}})]})}function B(e){const{documentId:r,pageIndex:l,scale:d,pageWidth:u,pageHeight:p,selectionMenu:g}=e,{provides:h}=x(),{provides:v}=c.useSelectionCapability(),[b,A]=i.useState([]),{register:B}=a.usePointerHandlers({documentId:r,pageIndex:l}),[$,T]=i.useState([]),[L,F]=i.useState(null),O=i.useMemo(()=>h?h.forDocument(r):null,[h,r]),U=$.length>1;i.useEffect(()=>{if(O){const e=O.getState();return A(t.getAnnotationsByPageIndex(e,l)),T(t.getSelectedAnnotationIds(e)),O.onStateChange(e=>{A(t.getAnnotationsByPageIndex(e,l)),T(t.getSelectedAnnotationIds(e))})}},[O,l]);const W=i.useMemo(()=>({onPointerDown:(e,t)=>{t.target===t.currentTarget&&O&&(O.deselectAnnotation(),F(null))}}),[O]),H=i.useCallback((e,t)=>{if(e.stopPropagation(),O&&v){v.clear();"metaKey"in e&&(e.metaKey||e.ctrlKey)?O.toggleSelection(l,t.object.id):O.selectAnnotation(l,t.object.id),t.object.id!==L&&F(null)}},[O,v,L,l]),N=i.useCallback((e,t)=>{if(e.stopPropagation(),O&&v){if(v.clear(),t.object.inReplyToId){const e=t.object.inReplyToId,o=b.find(t=>t.object.id===e);if(o)return void O.selectAnnotation(o.object.pageIndex,e)}O.selectAnnotation(l,t.object.id)}},[O,v,b,l]);i.useEffect(()=>B(W,{documentId:r}),[B,W]);const q=i.useMemo(()=>b.filter(e=>$.includes(e.object.id)),[b,$]),G=i.useMemo(()=>!(q.length<2)&&q.every(e=>{const o=null==O?void 0:O.findToolForAnnotation(e.object),n=t.resolveInteractionProp(null==o?void 0:o.interaction.isGroupDraggable,e.object,!0),i=t.resolveInteractionProp(null==o?void 0:o.interaction.isDraggable,e.object,!0);return void 0!==(null==o?void 0:o.interaction.isGroupDraggable)?n:i}),[q,O]),Y=i.useMemo(()=>!(q.length<2)&&q.every(e=>{const o=null==O?void 0:O.findToolForAnnotation(e.object),n=t.resolveInteractionProp(null==o?void 0:o.interaction.isGroupResizable,e.object,!0),i=t.resolveInteractionProp(null==o?void 0:o.interaction.isResizable,e.object,!0);return void 0!==(null==o?void 0:o.interaction.isGroupResizable)?n:i}),[q,O]),V=i.useMemo(()=>!(q.length<2)&&q.every(e=>{const o=null==O?void 0:O.findToolForAnnotation(e.object),n=t.resolveInteractionProp(null==o?void 0:o.interaction.isGroupRotatable,e.object,!0),i=t.resolveInteractionProp(null==o?void 0:o.interaction.isRotatable,e.object,!0);return void 0!==(null==o?void 0:o.interaction.isGroupRotatable)?n:i}),[q,O]),X=i.useMemo(()=>!(q.length<2)&&q.some(e=>{const o=null==O?void 0:O.findToolForAnnotation(e.object),n=t.resolveInteractionProp(null==o?void 0:o.interaction.lockGroupAspectRatio,e.object,!1),i=t.resolveInteractionProp(null==o?void 0:o.interaction.lockAspectRatio,e.object,!1);return void 0!==(null==o?void 0:o.interaction.lockGroupAspectRatio)?n:i}),[q,O]),K=i.useMemo(()=>{if(!O)return!1;const e=O.getSelectedAnnotations();return e.length>1&&e.every(e=>e.object.pageIndex===l)},[O,l,$]);return o.jsxs(o.Fragment,{children:[b.map(i=>{const a=$.includes(i.object.id),c=L===i.object.id,u=null==O?void 0:O.findToolForAnnotation(i.object);for(const n of e.annotationRenderers??[]){const r=n.tryRender(i,{isSelected:a,scale:d,pageIndex:l,onClick:e=>H(e,i)});if(r)return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!1),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!1),selectionMenu:g,onSelect:e=>H(e,i),style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:()=>r},i.object.id)}if(t.isInk(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!0),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(I,{...e,isSelected:a,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isSquare(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!0),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(R,{...e,isSelected:a,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isCircle(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!0),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(P,{...e,isSelected:a,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isUnderline(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!1),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!1),selectionMenu:g,onSelect:e=>H(e,i),zIndex:0,style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(j,{...e,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isStrikeout(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!1),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!1),selectionMenu:g,onSelect:e=>H(e,i),zIndex:0,style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(k,{...e,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isSquiggly(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!1),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!1),selectionMenu:g,onSelect:e=>H(e,i),zIndex:0,style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(S,{...e,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isHighlight(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!1),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!1),selectionMenu:g,onSelect:e=>H(e,i),zIndex:0,style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Multiply)},...e,children:e=>o.jsx(m,{...e,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isLine(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),vertexConfig:{extractVertices:e=>[e.linePoints.start,e.linePoints.end],transformAnnotation:(e,t)=>({...e,linePoints:{start:t[0],end:t[1]}})},style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(n.Fragment,{children:o.jsx(M,{...e,isSelected:a,scale:d,onClick:e=>H(e,i)})})},i.object.id);if(t.isPolyline(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),vertexConfig:{extractVertices:e=>e.vertices,transformAnnotation:(e,t)=>({...e,vertices:t})},style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(n.Fragment,{children:o.jsx(C,{...e,isSelected:a,scale:d,onClick:e=>H(e,i)})})},i.object.id);if(t.isPolygon(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!1),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),vertexConfig:{extractVertices:e=>e.vertices,transformAnnotation:(e,t)=>({...e,vertices:t})},style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(n.Fragment,{children:o.jsx(z,{...e,isSelected:a,scale:d,onClick:e=>H(e,i)})})},i.object.id);if(t.isFreeText(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0)&&!c,isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!0),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},onDoubleClick:e=>{e.stopPropagation(),F(i.object.id)},...e,children:e=>o.jsx(w,{isSelected:a,isEditing:c,annotation:{...i,object:e},pageIndex:l,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isStamp(i))return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:t.resolveInteractionProp(null==u?void 0:u.interaction.isDraggable,i.object,!0),isResizable:t.resolveInteractionProp(null==u?void 0:u.interaction.isResizable,i.object,!0),lockAspectRatio:t.resolveInteractionProp(null==u?void 0:u.interaction.lockAspectRatio,i.object,!1),isRotatable:t.resolveInteractionProp(null==u?void 0:u.interaction.isRotatable,i.object,!0),selectionMenu:g,onSelect:e=>H(e,i),style:{mixBlendMode:s.blendModeToCss(i.object.blendMode??s.PdfBlendMode.Normal)},...e,children:e=>o.jsx(D,{isSelected:a,annotation:i,documentId:r,pageIndex:l,scale:d,onClick:e=>H(e,i)})},i.object.id);if(t.isLink(i)){const t=!!i.object.inReplyToId;return o.jsx(f,{trackedAnnotation:i,isSelected:a,isMultiSelected:U,isDraggable:!1,isResizable:!1,lockAspectRatio:!1,isRotatable:!1,selectionMenu:t?void 0:g,onSelect:e=>N(e,i),...e,children:e=>o.jsx(E,{...e,isSelected:a,scale:d,onClick:e=>N(e,i),hasIRT:t})},i.object.id)}return null}),K&&q.length>=2&&o.jsx(y,{documentId:r,pageIndex:l,scale:d,rotation:e.rotation,pageWidth:u,pageHeight:p,selectedAnnotations:q,isDraggable:G,isResizable:Y,isRotatable:V,lockAspectRatio:X,resizeUI:e.resizeUI,rotationUI:e.rotationUI,selectionOutlineColor:e.selectionOutlineColor,selectionOutline:e.groupSelectionOutline??e.selectionOutline,groupSelectionMenu:e.groupSelectionMenu})]})}function $({documentId:e,pageIndex:t,scale:n}){var r,l,a,d,u,p,g,h,v,b,f,y;const{provides:I}=c.useSelectionCapability(),{provides:R}=x(),[P,M]=i.useState([]),[C,z]=i.useState(null),[w,A]=i.useState(null);if(i.useEffect(()=>{if(I)return I.forDocument(e).onSelectionChange(()=>{M(I.forDocument(e).getHighlightRectsForPage(t)),z(I.forDocument(e).getBoundingRectForPage(t))})},[I,e,t]),i.useEffect(()=>{if(R)return A(R.forDocument(e).getActiveTool()),R.forDocument(e).onActiveToolChange(e=>A(e))},[R,e]),!C)return null;if(!w||!w.defaults)return null;switch(w.defaults.type){case s.PdfAnnotationSubtype.UNDERLINE:return o.jsx("div",{style:{mixBlendMode:s.blendModeToCss((null==(r=w.defaults)?void 0:r.blendMode)??s.PdfBlendMode.Normal),pointerEvents:"none",position:"absolute",inset:0},children:o.jsx(j,{strokeColor:null==(l=w.defaults)?void 0:l.strokeColor,opacity:null==(a=w.defaults)?void 0:a.opacity,segmentRects:P,scale:n})});case s.PdfAnnotationSubtype.HIGHLIGHT:return o.jsx("div",{style:{mixBlendMode:s.blendModeToCss((null==(d=w.defaults)?void 0:d.blendMode)??s.PdfBlendMode.Multiply),pointerEvents:"none",position:"absolute",inset:0},children:o.jsx(m,{strokeColor:null==(u=w.defaults)?void 0:u.strokeColor,opacity:null==(p=w.defaults)?void 0:p.opacity,segmentRects:P,scale:n})});case s.PdfAnnotationSubtype.STRIKEOUT:return o.jsx("div",{style:{mixBlendMode:s.blendModeToCss((null==(g=w.defaults)?void 0:g.blendMode)??s.PdfBlendMode.Normal),pointerEvents:"none",position:"absolute",inset:0},children:o.jsx(k,{strokeColor:null==(h=w.defaults)?void 0:h.strokeColor,opacity:null==(v=w.defaults)?void 0:v.opacity,segmentRects:P,scale:n})});case s.PdfAnnotationSubtype.SQUIGGLY:return o.jsx("div",{style:{mixBlendMode:s.blendModeToCss((null==(b=w.defaults)?void 0:b.blendMode)??s.PdfBlendMode.Normal),pointerEvents:"none",position:"absolute",inset:0},children:o.jsx(S,{strokeColor:null==(f=w.defaults)?void 0:f.strokeColor,opacity:null==(y=w.defaults)?void 0:y.opacity,segmentRects:P,scale:n})});default:return null}}function T({preview:e,scale:t}){const{bounds:n}=e,i={position:"absolute",left:n.origin.x*t,top:n.origin.y*t,width:n.size.width*t,height:n.size.height*t,pointerEvents:"none",zIndex:10};return e.type===s.PdfAnnotationSubtype.CIRCLE?o.jsx("div",{style:i,children:o.jsx(P,{isSelected:!1,scale:t,...e.data})}):e.type===s.PdfAnnotationSubtype.SQUARE?o.jsx("div",{style:i,children:o.jsx(R,{isSelected:!1,scale:t,...e.data})}):e.type===s.PdfAnnotationSubtype.POLYGON?o.jsx("div",{style:i,children:o.jsx(z,{isSelected:!1,scale:t,...e.data})}):e.type===s.PdfAnnotationSubtype.POLYLINE?o.jsx("div",{style:i,children:o.jsx(C,{isSelected:!1,scale:t,...e.data})}):e.type===s.PdfAnnotationSubtype.LINE?o.jsx("div",{style:i,children:o.jsx(M,{isSelected:!1,scale:t,...e.data})}):e.type===s.PdfAnnotationSubtype.INK?o.jsx("div",{style:i,children:o.jsx(I,{isSelected:!1,scale:t,...e.data})}):e.type===s.PdfAnnotationSubtype.FREETEXT?o.jsx("div",{style:i,children:o.jsx("div",{style:{width:"100%",height:"100%",border:`1px dashed ${e.data.fontColor||"#000000"}`,backgroundColor:"transparent"}})}):null}function L({documentId:e,pageIndex:t,scale:n}){const{plugin:r}=b(),[l,s]=i.useState(new Map),a=i.useRef(null),c=i.useRef(null),d=i.useMemo(()=>({requestFile:({accept:e,onFile:t})=>{if(!a.current)return;const o=a.current;o.accept=e,o.onchange=e=>{var n;const i=null==(n=e.target.files)?void 0:n[0];i&&(t(i),o.value="")},o.click()},processImage:({source:e,maxWidth:t,maxHeight:o,onComplete:n})=>{const i=c.current;if(!i||!i.getContext)return;const r=i.getContext("2d");if(!r)return;const l=new Image;l.crossOrigin="Anonymous",l.onload=()=>{let{naturalWidth:s,naturalHeight:a}=l;const c=t?t/s:1,d=o?o/a:1,u=Math.min(c,d,1),p=s*u,g=a*u;i.width=p,i.height=g,r.drawImage(l,0,0,p,g);const h=r.getImageData(0,0,p,g);"string"!=typeof e&&URL.revokeObjectURL(l.src),n({imageData:h,width:p,height:g})},l.src="string"==typeof e?e:URL.createObjectURL(e)}}),[]);return i.useEffect(()=>{if(r)return r.registerPageHandlers(e,t,n,{services:d,onPreview:(e,t)=>{s(o=>{const n=new Map(o);return t?n.set(e,t):n.delete(e),n})}})},[e,t,n,r,d]),o.jsxs(o.Fragment,{children:[o.jsx("input",{ref:a,type:"file",style:{display:"none"}}),o.jsx("canvas",{ref:c,style:{display:"none"}}),Array.from(l.entries()).map(([e,t])=>o.jsx(T,{preview:t,scale:n},e))]})}const F=e.createPluginPackage(t.AnnotationPluginPackage).addWrapper(h).build();exports.AnnotationLayer=function({style:e,documentId:t,pageIndex:n,scale:r,rotation:s,selectionMenu:a,groupSelectionMenu:c,resizeUI:d,vertexUI:u,rotationUI:p,selectionOutlineColor:g,selectionOutline:h,groupSelectionOutline:b,customAnnotationRenderer:x,annotationRenderers:f,...y}){var m,j,k,S;const I=l.useDocumentState(t),R=null==(j=null==(m=null==I?void 0:I.document)?void 0:m.pages)?void 0:j[n],P=(null==(k=null==R?void 0:R.size)?void 0:k.width)??0,M=(null==(S=null==R?void 0:R.size)?void 0:S.height)??0,C=v(),z=i.useMemo(()=>{const e=[...C];for(const t of f??[]){const o=e.findIndex(e=>e.id===t.id);o>=0?e[o]=t:e.push(t)}return e},[C,f]),w=i.useMemo(()=>void 0!==r?r:(null==I?void 0:I.scale)??1,[r,null==I?void 0:I.scale]),A=i.useMemo(()=>{if(void 0!==s)return s;return(((null==R?void 0:R.rotation)??0)+((null==I?void 0:I.rotation)??0))%4},[s,null==R?void 0:R.rotation,null==I?void 0:I.rotation]);return o.jsxs("div",{style:{...e},...y,children:[o.jsx(B,{documentId:t,selectionMenu:a,groupSelectionMenu:c,pageIndex:n,scale:w,rotation:A,pageWidth:P,pageHeight:M,resizeUI:d,vertexUI:u,rotationUI:p,selectionOutlineColor:g,selectionOutline:h,groupSelectionOutline:b,customAnnotationRenderer:x,annotationRenderers:z}),o.jsx($,{documentId:t,pageIndex:n,scale:w}),o.jsx(L,{documentId:t,pageIndex:n,scale:w})]})},exports.AnnotationPluginPackage=F,exports.AnnotationRendererProvider=h,exports.GroupSelectionBox=y,exports.createRenderer=function(e){return{id:e.id,tryRender:(t,o)=>e.matches(t.object)?e.render({...o,annotation:t}):null}},exports.useAnnotation=e=>{var o;const{provides:n}=x(),[r,l]=i.useState((null==(o=null==n?void 0:n.forDocument(e))?void 0:o.getState())??t.initialDocumentState());return i.useEffect(()=>{if(!n)return;const t=n.forDocument(e);return l(t.getState()),t.onStateChange(e=>{l(e)})},[n,e]),{state:r,provides:(null==n?void 0:n.forDocument(e))??null}},exports.useAnnotationCapability=x,exports.useAnnotationPlugin=b,exports.useRegisterRenderers=function(e){const t=i.useContext(p),o=i.useRef(e);i.useEffect(()=>{if(t)return t(o.current)},[t])},exports.useRegisteredRenderers=v,exports.useRendererRegistry=function(){return i.useContext(p)},Object.keys(t).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>t[e]})});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),t=require("@embedpdf/plugin-annotation"),n=require("preact/jsx-runtime"),o=require("preact"),i=require("preact/hooks"),r=require("preact/compat"),s=require("@embedpdf/core/preact"),a=require("@embedpdf/models"),l=require("@embedpdf/plugin-interaction-manager/preact"),c=require("@embedpdf/plugin-selection/preact"),d=require("@embedpdf/utils/preact"),u={},p=o.createContext(null),h=o.createContext([]);function g({children:e}){const[t,o]=i.useState([]),r=i.useCallback(e=>(o(t=>{const n=new Set(e.map(e=>e.id));return[...t.filter(e=>!n.has(e.id)),...e]}),()=>o(t=>t.filter(t=>!e.some(e=>e.id===t.id)))),[]);return n.jsx(p.Provider,{value:r,children:n.jsx(h.Provider,{value:t,children:e})})}function v(){return i.useContext(h)}const x=()=>s.usePlugin(t.AnnotationPlugin.id),f=()=>s.useCapability(t.AnnotationPlugin.id);function y({appearance:e,style:t}){const[o,r]=i.useState(null),s=i.useRef(null);i.useEffect(()=>{const t=URL.createObjectURL(e.data);return r(t),s.current=t,()=>{s.current&&(URL.revokeObjectURL(s.current),s.current=null)}},[e.data]);return o?n.jsx("img",{src:o,onLoad:()=>{s.current&&(URL.revokeObjectURL(s.current),s.current=null)},style:{position:"absolute",width:"100%",height:"100%",display:"block",pointerEvents:"none",userSelect:"none",...t}}):null}function b({scale:e,documentId:t,pageIndex:o,rotation:l,pageWidth:c,pageHeight:u,trackedAnnotation:p,children:h,isSelected:g,isEditing:v=!1,isMultiSelected:b=!1,isDraggable:m,isResizable:j,isRotatable:k=!0,lockAspectRatio:S=!1,style:C={},vertexConfig:A,selectionMenu:I,outlineOffset:R=1,onDoubleClick:w,onSelect:z,appearance:D,zIndex:P=1,resizeUI:E,vertexUI:M,rotationUI:L,selectionOutlineColor:O,selectionOutline:$,customAnnotationRenderer:F,groupSelectionMenu:T,groupSelectionOutline:U,annotationRenderers:W,...B}){var H,N,G;const[q,Y]=i.useState(p.object),[V,K]=i.useState(null),[X,Q]=i.useState(null),[Z,J]=i.useState(!1),[_,ee]=i.useState(!1),{provides:te}=f(),{plugin:ne}=x(),{canModifyAnnotations:oe}=s.useDocumentPermissions(t),ie=i.useRef(null),re=oe&&m&&!b,se=oe&&j&&!b,ae=oe&&k&&!b,le=i.useMemo(()=>te?te.forDocument(t):null,[te,t]),ce=q?{...p.object,...q}:p.object,de=(null==E?void 0:E.color)??"#007ACC",ue=(null==M?void 0:M.color)??"#007ACC",pe=(null==L?void 0:L.color)??"white",he=(null==L?void 0:L.connectorColor)??"#007ACC",ge=(null==E?void 0:E.size)??12,ve=(null==M?void 0:M.size)??12,xe=(null==L?void 0:L.size)??32,fe=null==L?void 0:L.margin,ye=(null==L?void 0:L.iconColor)??"#007ACC",be=(null==L?void 0:L.showConnector)??!1,me=(null==(H=null==L?void 0:L.border)?void 0:H.color)??"#007ACC",je=(null==(N=null==L?void 0:L.border)?void 0:N.width)??1,ke=(null==(G=null==L?void 0:L.border)?void 0:G.style)??"solid",Se=(null==$?void 0:$.color)??O??"#007ACC",Ce=(null==$?void 0:$.style)??"solid",Ae=(null==$?void 0:$.width)??1,Ie=(null==$?void 0:$.offset)??R??1,Re=V??ce.rotation??0,we=V??ce.rotation??0,ze=Number.isFinite(we)?Math.round(10*we)/10:0,De=null!==V,Pe=i.useRef(null),Ee=i.useCallback(e=>{var n;if(!(null==(n=e.transformData)?void 0:n.type)||b||!ne)return;const{type:i,changes:r,metadata:s}=e.transformData,a=p.object.id,l={width:c,height:u};if("start"===e.state&&(Pe.current=p.object.unrotatedRect??p.object.rect,ie.current=p.object,"resize"!==i&&"vertex-edit"!==i||ee(!0),"move"===i?ne.startDrag(t,{annotationIds:[a],pageSize:l}):"resize"===i&&ne.startResize(t,{annotationIds:[a],pageSize:l,resizeHandle:(null==s?void 0:s.handle)??"se"})),r.rect&&Pe.current)if("move"===i){const e={x:r.rect.origin.x-Pe.current.origin.x,y:r.rect.origin.y-Pe.current.origin.y};ne.updateDrag(t,e)}else"resize"===i&&ne.updateResize(t,r.rect);if("vertex-edit"===i&&r.vertices&&A){const t=ie.current??p.object,n=A.transformAnnotation(t,r.vertices),l=null==te?void 0:te.transformAnnotation(t,{type:i,changes:n,metadata:s});l&&(Y(e=>({...e,...l})),"end"===e.state&&(null==le||le.updateAnnotation(o,a,l)))}if("rotate"===i){const n=(null==s?void 0:s.rotationAngle)??Re,o=null==s?void 0:s.cursorPosition;return o&&Q({x:o.clientX,y:o.clientY}),void("start"===e.state?(K(n),ne.startRotation(t,{annotationIds:[a],cursorAngle:n,rotationCenter:null==s?void 0:s.rotationCenter})):"move"===e.state?(K(n),ne.updateRotation(t,n,null==s?void 0:s.rotationDelta)):"end"===e.state&&(K(null),Q(null),ne.commitRotation(t)))}"end"===e.state&&(Pe.current=null,ie.current=null,ee(!1),"move"===i?ne.commitDrag(t):"resize"===i&&ne.commitResize(t))},[ne,t,p.object,c,u,o,b,A,te,le,Re]),Me=ce.unrotatedRect,Le=Me??ce.rect,Oe=Me&&0!==Re?a.inferRotationCenterFromRects(Le,ce.rect,Re):void 0,$e=Le,{dragProps:Fe,vertices:Te,resize:Ue,rotation:We}=d.useInteractionHandles({controller:{element:$e,vertices:null==A?void 0:A.extractVertices(ce),constraints:{minWidth:10,minHeight:10,boundingBox:{width:c,height:u}},maintainAspectRatio:S,pageRotation:l,annotationRotation:Re,rotationCenter:Oe,rotationElement:ce.rect,scale:e,enabled:g&&!b,onUpdate:Ee},resizeUI:{handleSize:ge,spacing:Ie,offsetMode:"outside",includeSides:!S,zIndex:P+1},vertexUI:{vertexSize:ve,zIndex:P+2},rotationUI:{handleSize:xe,margin:fe,zIndex:P+3,showConnector:be},includeVertices:!!A,includeRotation:ae,currentRotation:Re}),Be=i.useMemo(()=>{if(oe&&w)return w},[oe,w]),He=d.useDoublePressProps(Be);i.useEffect(()=>{Y(p.object)},[p.object]),i.useEffect(()=>{if(!ne)return;const e=p.object.id,n=n=>{var o;if(n.documentId!==t)return;"end"!==n.type&&"cancel"!==n.type||K(null);const i=null==(o=n.previewPatches)?void 0:o[e];"update"===n.type&&i?Y(e=>({...e,...i})):"cancel"===n.type&&Y(p.object)},o=[ne.onDragChange(n),ne.onResizeChange(n),ne.onRotateChange(n)];return()=>o.forEach(e=>e())},[ne,t,p.object]);const Ne=g&&!b,Ge=ce.rect.size.width*e,qe=ce.rect.size.height*e,Ye=Le.size.width*e,Ve=Le.size.height*e,Ke=Boolean(Me)&&0!==Re,Xe=Ke?(Le.origin.x-ce.rect.origin.x)*e:(Ge-Ye)/2,Qe=Ke?(Le.origin.y-ce.rect.origin.y)*e:(qe-Ve)/2,Ze=Ke&&Oe?`${(Oe.x-Le.origin.x)*e}px ${(Oe.y-Le.origin.y)*e}px`:"center center",Je=Oe?(Oe.x-ce.rect.origin.x)*e:Ge/2,_e=Oe?(Oe.y-ce.rect.origin.y)*e:qe/2,et=Math.max(300,Math.max(Ge,qe)+80),tt=i.useMemo(()=>Me?{...ce,rect:Me}:ce,[ce,Me]),nt=!(!(null==D?void 0:D.normal)||_||v||p.dictMode);return n.jsxs("div",{"data-no-interaction":!0,children:[n.jsxs("div",{style:{position:"absolute",left:ce.rect.origin.x*e,top:ce.rect.origin.y*e,width:Ge,height:qe,pointerEvents:"none",zIndex:P,...C},...B,children:[De&&n.jsxs(n.Fragment,{children:[n.jsx("div",{style:{position:"absolute",left:Je-et/2,top:_e,width:et,height:1,backgroundColor:he,opacity:.35,pointerEvents:"none"}}),n.jsx("div",{style:{position:"absolute",left:Je,top:_e-et/2,width:1,height:et,backgroundColor:he,opacity:.35,pointerEvents:"none"}}),n.jsx("div",{style:{position:"absolute",left:Je-et/2,top:_e,width:et,height:1,transformOrigin:"center center",transform:`rotate(${Re}deg)`,backgroundColor:he,opacity:.8,pointerEvents:"none"}})]}),g&&ae&&We&&((null==L?void 0:L.component)?n.jsx("div",{onPointerEnter:()=>J(!0),onPointerLeave:()=>{J(!1),Q(null)},onPointerMove:e=>{De||Q({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:L.component({...We.handle,backgroundColor:pe,iconColor:ye,connectorStyle:{...We.connector.style,backgroundColor:he,opacity:De?0:1},showConnector:be,opacity:De?0:1,border:{color:me,width:je,style:ke}})}):n.jsxs("div",{onPointerEnter:()=>J(!0),onPointerLeave:()=>{J(!1),Q(null)},onPointerMove:e=>{De||Q({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:[be&&n.jsx("div",{style:{...We.connector.style,backgroundColor:he,opacity:De?0:1}}),n.jsx("div",{...We.handle,style:{...We.handle.style,backgroundColor:pe,border:`${je}px ${ke} ${me}`,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto",opacity:De?0:1},children:n.jsxs("svg",{width:Math.round(.6*xe),height:Math.round(.6*xe),viewBox:"0 0 24 24",fill:"none",stroke:ye,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[n.jsx("path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}),n.jsx("path",{d:"M21 3v5h-5"})]})})]})),n.jsxs("div",{...re&&g?Fe:{},...He,style:{position:"absolute",left:Xe,top:Qe,width:Ye,height:Ve,transform:0!==Re?`rotate(${Re}deg)`:void 0,transformOrigin:Ze,outline:Ne?`${Ae}px ${Ce} ${Se}`:"none",outlineOffset:Ne?`${Ie}px`:"0px",pointerEvents:g&&!b?"auto":"none",touchAction:"none",cursor:g&&re?"move":"default"},children:[(()=>{const t="function"==typeof h?h(tt,{appearanceActive:nt}):h;return(null==F?void 0:F({annotation:tt,children:t,isSelected:g,scale:e,rotation:l,pageWidth:c,pageHeight:u,pageIndex:o,onSelect:z}))??t})(),(null==D?void 0:D.normal)&&n.jsx(y,{appearance:D.normal,style:{display:nt?"block":"none"}}),g&&se&&!De&&Ue.map(({key:e,...t})=>(null==E?void 0:E.component)?E.component({key:e,...t,backgroundColor:de}):n.jsx("div",{...t,style:{...t.style,backgroundColor:de}},e)),g&&oe&&!b&&!De&&Te.map(({key:e,...t})=>(null==M?void 0:M.component)?M.component({key:e,...t,backgroundColor:ue}):n.jsx("div",{...t,style:{...t.style,backgroundColor:ue}},e))]})]}),I&&!b&&!De&&n.jsx(d.CounterRotate,{rect:{origin:{x:ce.rect.origin.x*e,y:ce.rect.origin.y*e},size:{width:ce.rect.size.width*e,height:ce.rect.size.height*e}},rotation:l,children:e=>{const t=((Re+90*l)%360+360)%360;return I({...e,context:{type:"annotation",annotation:p,pageIndex:o},selected:g,placement:{suggestTop:ae&&t>90&&t<270}})}}),(De||Z)&&X&&r.createPortal(n.jsxs("div",{style:{position:"fixed",left:X.x+16,top:X.y-16,background:"rgba(0,0,0,0.8)",color:"#fff",padding:"4px 8px",borderRadius:4,fontSize:12,fontFamily:"monospace",pointerEvents:"none",zIndex:1e4,whiteSpace:"nowrap"},children:[ze.toFixed(0),"°"]}),document.body)]})}function m({documentId:e,pageIndex:t,scale:o,rotation:l,pageWidth:c,pageHeight:u,selectedAnnotations:p,isDraggable:h,isResizable:g,isRotatable:v=!0,lockAspectRatio:f=!1,resizeUI:y,rotationUI:b,selectionOutlineColor:m,outlineOffset:j,selectionOutline:k,zIndex:S=2,groupSelectionMenu:C}){var A,I,R;const{plugin:w}=x(),{canModifyAnnotations:z}=s.useDocumentPermissions(e),D=i.useRef(null),P=i.useRef(!1),E=i.useRef(!1),[M,L]=i.useState(null),[O,$]=i.useState(null),[F,T]=i.useState(!1),U=z&&h,W=z&&g,B=z&&v,H=i.useMemo(()=>{const e=p.map(e=>e.object.rect);return a.boundingRectOrEmpty(e)},[p]),[N,G]=i.useState(H);i.useEffect(()=>{P.current||E.current||G(H)},[H]),i.useEffect(()=>{if(!w)return;return w.onRotateChange(t=>{t.documentId===e&&("end"!==t.type&&"cancel"!==t.type||L(null))})},[w,e]);const q=i.useCallback(t=>{var n,o,i,r,s,a;if(!(null==(n=t.transformData)?void 0:n.type))return;if(!w)return;const l=t.transformData.type,d="move"===l,h="resize"===l;if(d&&!U)return;if("start"===t.state&&(D.current=H,d?(P.current=!0,w.startDrag(e,{annotationIds:p.map(e=>e.object.id),pageSize:{width:c,height:u}})):h&&(E.current=!0,w.startResize(e,{annotationIds:p.map(e=>e.object.id),pageSize:{width:c,height:u},resizeHandle:(null==(o=t.transformData.metadata)?void 0:o.handle)??"se"}))),"rotate"===l){if(!v)return;const n=p.map(e=>e.object.id),o=(null==(i=t.transformData.metadata)?void 0:i.rotationAngle)??0,l=null==(r=t.transformData.metadata)?void 0:r.cursorPosition;return l&&$({x:l.clientX,y:l.clientY}),void("start"===t.state?(L(o),w.startRotation(e,{annotationIds:n,cursorAngle:o,rotationCenter:null==(s=t.transformData.metadata)?void 0:s.rotationCenter})):"move"===t.state?(L(o),w.updateRotation(e,o,null==(a=t.transformData.metadata)?void 0:a.rotationDelta)):"end"===t.state&&(L(null),$(null),w.commitRotation(e)))}const g=D.current??H;if(d&&t.transformData.changes.rect){const n=t.transformData.changes.rect,o={x:n.origin.x-g.origin.x,y:n.origin.y-g.origin.y},i=w.updateDrag(e,o);G({...g,origin:{x:g.origin.x+i.x,y:g.origin.y+i.y}})}else if(h&&t.transformData.changes.rect){const n=t.transformData.changes.rect;w.updateResize(e,n),G(n)}"end"===t.state&&(D.current=null,d&&P.current?(P.current=!1,w.commitDrag(e)):h&&E.current&&(E.current=!1,w.commitResize(e)))},[w,e,c,u,H,U,p,v]),Y=M??0,V=null!==M,K=Number.isFinite(Y)?Math.round(10*Y)/10:0,X=(null==y?void 0:y.color)??"#007ACC",Q=(null==y?void 0:y.size)??12,Z=(null==b?void 0:b.color)??"white",J=(null==b?void 0:b.connectorColor)??"#007ACC",_=(null==b?void 0:b.size)??32,ee=null==b?void 0:b.margin,te=(null==b?void 0:b.iconColor)??"#007ACC",ne=(null==b?void 0:b.showConnector)??!1,oe=(null==(A=null==b?void 0:b.border)?void 0:A.color)??"#007ACC",ie=(null==(I=null==b?void 0:b.border)?void 0:I.width)??1,re=(null==(R=null==b?void 0:b.border)?void 0:R.style)??"solid",se=(null==k?void 0:k.color)??m??"#007ACC",ae=(null==k?void 0:k.style)??"dashed",le=(null==k?void 0:k.width)??2,ce=(null==k?void 0:k.offset)??j??2,{dragProps:de,resize:ue,rotation:pe}=d.useInteractionHandles({controller:{element:N,constraints:{minWidth:20,minHeight:20,boundingBox:{width:c,height:u}},maintainAspectRatio:f,pageRotation:l,scale:o,enabled:!0,onUpdate:q},resizeUI:{handleSize:Q,spacing:ce,offsetMode:"outside",includeSides:!f,zIndex:S+1},vertexUI:{vertexSize:0,zIndex:S},rotationUI:{handleSize:_,margin:ee,zIndex:S+2,showConnector:ne},includeVertices:!1,includeRotation:B,currentRotation:M??0});if(p.length<2)return null;const he=N.size.width*o,ge=N.size.height*o,ve=he/2,xe=ge/2,fe=Math.max(300,Math.max(he,ge)+80);return n.jsxs("div",{"data-group-selection-box":!0,"data-no-interaction":!0,children:[n.jsxs("div",{style:{position:"absolute",left:N.origin.x*o,top:N.origin.y*o,width:he,height:ge,pointerEvents:"none",zIndex:S},children:[V&&n.jsxs(n.Fragment,{children:[n.jsx("div",{style:{position:"absolute",left:ve-fe/2,top:xe,width:fe,height:1,backgroundColor:X,opacity:.35,pointerEvents:"none"}}),n.jsx("div",{style:{position:"absolute",left:ve,top:xe-fe/2,width:1,height:fe,backgroundColor:X,opacity:.35,pointerEvents:"none"}}),n.jsx("div",{style:{position:"absolute",left:ve-fe/2,top:xe,width:fe,height:1,transformOrigin:"center center",transform:`rotate(${Y}deg)`,backgroundColor:X,opacity:.8,pointerEvents:"none"}})]}),B&&pe&&((null==b?void 0:b.component)?n.jsx("div",{onPointerEnter:()=>T(!0),onPointerLeave:()=>{T(!1),$(null)},onPointerMove:e=>{V||$({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:b.component({...pe.handle,backgroundColor:Z,iconColor:te,connectorStyle:{...pe.connector.style,backgroundColor:J,opacity:V?0:1},showConnector:ne,opacity:V?0:1,border:{color:oe,width:ie,style:re}})}):n.jsxs("div",{onPointerEnter:()=>T(!0),onPointerLeave:()=>{T(!1),$(null)},onPointerMove:e=>{V||$({x:e.clientX,y:e.clientY})},style:{display:"contents"},children:[ne&&n.jsx("div",{style:{...pe.connector.style,backgroundColor:J,opacity:V?0:1}}),n.jsx("div",{...pe.handle,style:{...pe.handle.style,backgroundColor:Z,border:`${ie}px ${re} ${oe}`,boxSizing:"border-box",display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"auto",opacity:V?0:1},children:n.jsxs("svg",{width:Math.round(.6*_),height:Math.round(.6*_),viewBox:"0 0 24 24",fill:"none",stroke:te,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[n.jsx("path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"}),n.jsx("path",{d:"M21 3v5h-5"})]})})]})),n.jsx("div",{...U?de:{onPointerDown:e=>e.stopPropagation()},style:{position:"absolute",left:0,top:0,width:he,height:ge,outline:V?"none":`${le}px ${ae} ${se}`,outlineOffset:ce-1,cursor:U?"move":"default",touchAction:"none",pointerEvents:"auto"},children:W&&!V&&ue.map(({key:e,...t})=>(null==y?void 0:y.component)?y.component({key:e,...t,backgroundColor:X}):n.jsx("div",{...t,style:{...t.style,backgroundColor:X}},e))})]}),(V||F)&&O&&r.createPortal(n.jsxs("div",{style:{position:"fixed",left:O.x+16,top:O.y-16,background:"rgba(0,0,0,0.8)",color:"#fff",padding:"4px 8px",borderRadius:4,fontSize:12,fontFamily:"monospace",pointerEvents:"none",zIndex:1e4,whiteSpace:"nowrap"},children:[K.toFixed(0),"°"]}),document.body),C&&n.jsx(d.CounterRotate,{rect:{origin:{x:N.origin.x*o,y:N.origin.y*o},size:{width:N.size.width*o,height:N.size.height*o}},rotation:l,children:e=>{const n=((Y+90*l)%360+360)%360;return C({...e,context:{type:"group",annotations:p,pageIndex:t},selected:!0,placement:{suggestTop:B&&n>90&&n<270}})}})]})}function j(e){return{id:e.id,matches:t=>e.matches(t),render:t=>e.render(t),vertexConfig:e.vertexConfig,zIndex:e.zIndex,containerStyle:e.containerStyle,interactionDefaults:e.interactionDefaults,useAppearanceStream:e.useAppearanceStream,isDraggable:e.isDraggable,onDoubleClick:e.onDoubleClick,selectOverride:e.selectOverride,hideSelectionMenu:e.hideSelectionMenu}}function k({isSelected:e,strokeColor:t,opacity:o=1,strokeWidth:r,inkList:s,rect:a,scale:l,onClick:c,appearanceActive:d=!1}){const u=t??"#000000",p=i.useMemo(()=>s.map(({points:e})=>{let t="";return e.forEach(({x:e,y:n},o)=>{const i=e-a.origin.x,r=n-a.origin.y;t+=(0===o?"M":"L")+i+" "+r+" "}),t.trim()}),[s,a]),h=a.size.width*l,g=a.size.height*l,v=Math.max(r,20/l);return n.jsxs("svg",{style:{position:"absolute",width:h,height:g,pointerEvents:"none",zIndex:2,overflow:"visible"},width:h,height:g,viewBox:`0 0 ${a.size.width} ${a.size.height}`,children:[p.map((t,o)=>n.jsx("path",{d:t,fill:"none",stroke:"transparent",strokeWidth:v,onPointerDown:c,onTouchStart:c,style:{cursor:e?"move":"pointer",pointerEvents:e?"none":"visibleStroke",strokeLinecap:"round",strokeLinejoin:"round"}},`hit-${o}`)),!d&&p.map((e,t)=>n.jsx("path",{d:e,fill:"none",opacity:o,style:{pointerEvents:"none",stroke:u,strokeWidth:r,strokeLinecap:"round",strokeLinejoin:"round"}},`vis-${t}`))]})}function S({isSelected:e,color:t="#000000",strokeColor:o,opacity:r=1,strokeWidth:s,strokeStyle:l=a.PdfAnnotationBorderStyle.SOLID,strokeDashArray:c,rect:d,scale:u,onClick:p,appearanceActive:h=!1}){const{width:g,height:v,x:x,y:f}=i.useMemo(()=>{const e=d.size.width,t=d.size.height;return{width:Math.max(e-s,0),height:Math.max(t-s,0),x:s/2,y:s/2}},[d,s]),y=(g+s)*u,b=(v+s)*u,m=Math.max(s,20/u);return n.jsxs("svg",{style:{position:"absolute",width:y,height:b,pointerEvents:"none",zIndex:2},width:y,height:b,viewBox:`0 0 ${g+s} ${v+s}`,overflow:"visible",children:[n.jsx("rect",{x:x,y:f,width:g,height:v,fill:"transparent",stroke:"transparent",strokeWidth:m,onPointerDown:p,onTouchStart:p,style:{cursor:e?"move":"pointer",pointerEvents:e?"none":"transparent"===t?"visibleStroke":"visible"}}),!h&&n.jsx("rect",{x:x,y:f,width:g,height:v,fill:t,opacity:r,style:{pointerEvents:"none",stroke:o??t,strokeWidth:s,...l===a.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}}})]})}function C({color:e="#000000",strokeColor:t,opacity:o=1,strokeWidth:r,strokeStyle:s=a.PdfAnnotationBorderStyle.SOLID,strokeDashArray:l,rect:c,scale:d,onClick:u,isSelected:p,appearanceActive:h=!1}){const{width:g,height:v,cx:x,cy:f,rx:y,ry:b}=i.useMemo(()=>{const e=c.size.width,t=c.size.height,n=Math.max(e-r,0),o=Math.max(t-r,0);return{width:e,height:t,cx:r/2+n/2,cy:r/2+o/2,rx:n/2,ry:o/2}},[c,r]),m=g*d,j=v*d,k=Math.max(r,20/d);return n.jsxs("svg",{style:{position:"absolute",width:m,height:j,pointerEvents:"none",zIndex:2},width:m,height:j,viewBox:`0 0 ${g} ${v}`,overflow:"visible",children:[n.jsx("ellipse",{cx:x,cy:f,rx:y,ry:b,fill:"transparent",stroke:"transparent",strokeWidth:k,onPointerDown:u,onTouchStart:u,style:{cursor:p?"move":"pointer",pointerEvents:p?"none":"transparent"===e?"visibleStroke":"visible"}}),!h&&n.jsx("ellipse",{cx:x,cy:f,rx:y,ry:b,fill:e,opacity:o,style:{pointerEvents:"none",stroke:t??e,strokeWidth:r,...s===a.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==l?void 0:l.join(",")}}})]})}function A({color:e="transparent",opacity:o=1,strokeWidth:r,strokeColor:s="#000000",strokeStyle:l=a.PdfAnnotationBorderStyle.SOLID,strokeDashArray:c,rect:d,linePoints:u,lineEndings:p,scale:h,onClick:g,isSelected:v,appearanceActive:x=!1}){const{x1:f,y1:y,x2:b,y2:m}=i.useMemo(()=>({x1:u.start.x-d.origin.x,y1:u.start.y-d.origin.y,x2:u.end.x-d.origin.x,y2:u.end.y-d.origin.y}),[u,d]),j=i.useMemo(()=>{const e=Math.atan2(m-y,b-f);return{start:t.patching.createEnding(null==p?void 0:p.start,r,e+Math.PI,f,y),end:t.patching.createEnding(null==p?void 0:p.end,r,e,b,m)}},[p,r,f,y,b,m]),k=d.size.width*h,S=d.size.height*h,C=Math.max(r,20/h);return n.jsxs("svg",{style:{position:"absolute",width:k,height:S,pointerEvents:"none",zIndex:2,overflow:"visible"},width:k,height:S,viewBox:`0 0 ${d.size.width} ${d.size.height}`,children:[n.jsx("line",{x1:f,y1:y,x2:b,y2:m,stroke:"transparent",strokeWidth:C,onPointerDown:g,onTouchStart:g,style:{cursor:v?"move":"pointer",pointerEvents:v?"none":"visibleStroke",strokeLinecap:"butt"}}),j.start&&n.jsx("path",{d:j.start.d,transform:j.start.transform,fill:"transparent",stroke:"transparent",strokeWidth:C,onPointerDown:g,onTouchStart:g,style:{cursor:v?"move":"pointer",pointerEvents:v?"none":j.start.filled?"visible":"visibleStroke",strokeLinecap:"butt"}}),j.end&&n.jsx("path",{d:j.end.d,transform:j.end.transform,fill:"transparent",stroke:"transparent",strokeWidth:C,onPointerDown:g,onTouchStart:g,style:{cursor:v?"move":"pointer",pointerEvents:v?"none":j.end.filled?"visible":"visibleStroke",strokeLinecap:"butt"}}),!x&&n.jsxs(n.Fragment,{children:[n.jsx("line",{x1:f,y1:y,x2:b,y2:m,opacity:o,style:{pointerEvents:"none",stroke:s,strokeWidth:r,strokeLinecap:"butt",...l===a.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}}}),j.start&&n.jsx("path",{d:j.start.d,transform:j.start.transform,stroke:s,fill:j.start.filled?e:"none",style:{pointerEvents:"none",strokeWidth:r,strokeLinecap:"butt",...l===a.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}}}),j.end&&n.jsx("path",{d:j.end.d,transform:j.end.transform,stroke:s,fill:j.end.filled?e:"none",style:{pointerEvents:"none",strokeWidth:r,strokeLinecap:"butt",...l===a.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==c?void 0:c.join(",")}}})]})]})}function I({rect:e,vertices:o,color:r="transparent",strokeColor:s="#000000",opacity:a=1,strokeWidth:l,scale:c,isSelected:d,onClick:u,lineEndings:p,appearanceActive:h=!1}){const g=i.useMemo(()=>o.map(({x:t,y:n})=>({x:t-e.origin.x,y:n-e.origin.y})),[o,e]),v=i.useMemo(()=>{if(!g.length)return"";const[e,...t]=g;return`M ${e.x} ${e.y} `+t.map(e=>`L ${e.x} ${e.y} `).join("").trim()},[g]),x=i.useMemo(()=>{if(g.length<2)return{start:null,end:null};const e=(e,t)=>Math.atan2(t.y-e.y,t.x-e.x),n=e(g[0],g[1]),o=e(g[g.length-2],g[g.length-1]);return{start:t.patching.createEnding(null==p?void 0:p.start,l,n+Math.PI,g[0].x,g[0].y),end:t.patching.createEnding(null==p?void 0:p.end,l,o,g[g.length-1].x,g[g.length-1].y)}},[g,p,l]),f=e.size.width*c,y=e.size.height*c,b=Math.max(l,20/c);return n.jsxs("svg",{style:{position:"absolute",width:f,height:y,pointerEvents:"none",zIndex:2,overflow:"visible"},width:f,height:y,viewBox:`0 0 ${e.size.width} ${e.size.height}`,children:[n.jsx("path",{d:v,fill:"none",stroke:"transparent",strokeWidth:b,onPointerDown:u,onTouchStart:u,style:{cursor:d?"move":"pointer",pointerEvents:d?"none":"visibleStroke",strokeLinecap:"butt",strokeLinejoin:"miter"}}),x.start&&n.jsx("path",{d:x.start.d,transform:x.start.transform,fill:"transparent",stroke:"transparent",strokeWidth:b,onPointerDown:u,onTouchStart:u,style:{cursor:d?"move":"pointer",pointerEvents:d?"none":x.start.filled?"visible":"visibleStroke",strokeLinecap:"butt"}}),x.end&&n.jsx("path",{d:x.end.d,transform:x.end.transform,fill:"transparent",stroke:"transparent",strokeWidth:b,onPointerDown:u,onTouchStart:u,style:{cursor:d?"move":"pointer",pointerEvents:d?"none":x.end.filled?"visible":"visibleStroke",strokeLinecap:"butt"}}),!h&&n.jsxs(n.Fragment,{children:[n.jsx("path",{d:v,opacity:a,style:{fill:"none",stroke:s??r,strokeWidth:l,pointerEvents:"none",strokeLinecap:"butt",strokeLinejoin:"miter"}}),x.start&&n.jsx("path",{d:x.start.d,transform:x.start.transform,stroke:s,fill:x.start.filled?r:"none",style:{pointerEvents:"none",strokeWidth:l,strokeLinecap:"butt"}}),x.end&&n.jsx("path",{d:x.end.d,transform:x.end.transform,stroke:s,fill:x.end.filled?r:"none",style:{pointerEvents:"none",strokeWidth:l,strokeLinecap:"butt"}})]})]})}function R({rect:e,vertices:t,color:o="transparent",strokeColor:r="#000000",opacity:s=1,strokeWidth:l,strokeStyle:c=a.PdfAnnotationBorderStyle.SOLID,strokeDashArray:d,scale:u,isSelected:p,onClick:h,currentVertex:g,handleSize:v=14,appearanceActive:x=!1}){const f=g?[...t,g]:t,y=i.useMemo(()=>f.map(({x:t,y:n})=>({x:t-e.origin.x,y:n-e.origin.y})),[f,e]),b=i.useMemo(()=>{if(!y.length)return"";const[e,...t]=y,n=!!g;return(`M ${e.x} ${e.y} `+t.map(e=>`L ${e.x} ${e.y}`).join(" ")+(n?"":" Z")).trim()},[y,g]),m=g&&t.length>0,j=e.size.width*u,k=e.size.height*u,S=Math.max(l,20/u);return n.jsxs("svg",{style:{position:"absolute",width:j,height:k,pointerEvents:"none",zIndex:2,overflow:"visible"},width:j,height:k,viewBox:`0 0 ${e.size.width} ${e.size.height}`,children:[n.jsx("path",{d:b,fill:"transparent",stroke:"transparent",strokeWidth:S,onPointerDown:h,onTouchStart:h,style:{cursor:p?"move":"pointer",pointerEvents:p?"none":"transparent"===o?"visibleStroke":"visible",strokeLinecap:"butt",strokeLinejoin:"miter"}}),!x&&n.jsxs(n.Fragment,{children:[n.jsx("path",{d:b,opacity:s,style:{fill:g?"none":o,stroke:r??o,strokeWidth:l,pointerEvents:"none",strokeLinecap:"butt",strokeLinejoin:"miter",...c===a.PdfAnnotationBorderStyle.DASHED&&{strokeDasharray:null==d?void 0:d.join(",")}}}),m&&t.length>1&&n.jsx("path",{d:`M ${y[y.length-1].x} ${y[y.length-1].y} L ${y[0].x} ${y[0].y}`,fill:"none",style:{stroke:r,strokeWidth:l,strokeDasharray:"4,4",opacity:.7,pointerEvents:"none"}}),m&&t.length>=2&&n.jsx("rect",{x:y[0].x-v/u/2,y:y[0].y-v/u/2,width:v/u,height:v/u,fill:r,opacity:.4,stroke:r,strokeWidth:l/2,style:{pointerEvents:"none"}})]})]})}function w({documentId:e,isSelected:t,isEditing:o,annotation:r,pageIndex:s,scale:l,onClick:c,appearanceActive:d=!1}){const p=i.useRef(null),h=i.useRef(!1),{provides:g}=f(),v=(null==g?void 0:g.forDocument(e))??null,[x,y]=i.useState(!1);i.useEffect(()=>{if(o&&p.current){h.current=!0;const e=p.current;e.focus();const t=window.getSelection();if(t){const n=document.createRange();n.selectNodeContents(e),n.collapse(!1),t.removeAllRanges(),t.addRange(n)}}},[o]),i.useLayoutEffect(()=>{try{const e=navigator,t=/iPad|iPhone|iPod/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&(null==e?void 0:e.maxTouchPoints)>1;y(t)}catch{y(!1)}},[]);const b=r.object.fontSize*l,m=x&&o&&b>0&&b<16,j=m?16:b,k=m?b/16:1,S=m?100/k:100;return n.jsx("div",{style:{position:"absolute",width:r.object.rect.size.width*l,height:r.object.rect.size.height*l,cursor:t&&!o?"move":"default",pointerEvents:t&&!o?"none":"auto",zIndex:2,opacity:d?0:1},onPointerDown:c,onTouchStart:c,children:n.jsx("span",{ref:p,onBlur:()=>{h.current&&(h.current=!1,v&&p.current&&v.updateAnnotation(s,r.object.id,{contents:p.current.innerText}))},tabIndex:0,style:{color:r.object.fontColor,fontSize:j,...a.standardFontCssProperties(r.object.fontFamily),textAlign:a.textAlignmentToCss(r.object.textAlign),flexDirection:"column",justifyContent:r.object.verticalAlign===a.PdfVerticalAlignment.Top?"flex-start":r.object.verticalAlign===a.PdfVerticalAlignment.Middle?"center":"flex-end",display:"flex",backgroundColor:r.object.color??r.object.backgroundColor,opacity:r.object.opacity,width:m?`${S}%`:"100%",height:m?`${S}%`:"100%",lineHeight:"1.18",overflow:"hidden",cursor:o?"text":"pointer",outline:"none",transform:m?`scale(${k})`:void 0,transformOrigin:"top left"},contentEditable:o,...u,children:r.object.contents})})}function z({documentId:e,pageIndex:t,annotation:r,scaleFactor:s=1,unrotated:l,style:c,...d}){const{provides:u}=f(),[p,h]=i.useState(null),g=i.useRef(null),{width:v,height:x}=r.rect.size;i.useEffect(()=>{if(u){const n=u.forDocument(e).renderAnnotation({pageIndex:t,annotation:r,options:{scaleFactor:s,dpr:window.devicePixelRatio,unrotated:l}});return n.wait(e=>{const t=URL.createObjectURL(e);h(t),g.current=t},a.ignore),()=>{g.current?(URL.revokeObjectURL(g.current),g.current=null):n.abort({code:a.PdfErrorCode.Cancelled,message:"canceled render task"})}}},[t,s,l,u,e,r.id,v,x]);return n.jsx(o.Fragment,{children:p&&n.jsx("img",{src:p,onLoad:()=>{g.current&&(URL.revokeObjectURL(g.current),g.current=null)},...d,style:{width:"100%",height:"100%",display:"block",...c||{}}})})}function D({isSelected:e,annotation:t,documentId:o,pageIndex:i,scale:r,onClick:s}){const a=!!t.object.rotation&&!!t.object.unrotatedRect;return n.jsx("div",{style:{position:"absolute",width:"100%",height:"100%",zIndex:2,pointerEvents:e?"none":"auto",cursor:"pointer"},onPointerDown:s,onTouchStart:s,children:n.jsx(z,{documentId:o,pageIndex:i,annotation:{...t.object,id:t.object.id},scaleFactor:r,unrotated:a})})}function P({isSelected:e,strokeColor:t="#0000FF",strokeWidth:o=2,strokeStyle:r=a.PdfAnnotationBorderStyle.UNDERLINE,strokeDashArray:s,rect:l,scale:c,onClick:d,hasIRT:u=!1}){const{width:p,height:h}=i.useMemo(()=>({width:l.size.width,height:l.size.height}),[l]),g=p*c,v=h*c,x=i.useMemo(()=>{if(r===a.PdfAnnotationBorderStyle.DASHED)return(null==s?void 0:s.join(","))??`${3*o},${o}`},[r,s,o]),f=r===a.PdfAnnotationBorderStyle.UNDERLINE;return n.jsxs("svg",{style:{position:"absolute",width:g,height:v,pointerEvents:"none",zIndex:2},width:g,height:v,viewBox:`0 0 ${p} ${h}`,children:[n.jsx("rect",{x:0,y:0,width:p,height:h,fill:"transparent",onPointerDown:u?void 0:d,onTouchStart:u?void 0:d,style:{cursor:u?"default":e?"move":"pointer",pointerEvents:u||e?"none":"visible"}}),f?n.jsx("line",{x1:1,y1:h-1,x2:p-1,y2:h-1,stroke:t,strokeWidth:o,strokeDasharray:x,style:{pointerEvents:"none"}}):n.jsx("rect",{x:o/2,y:o/2,width:Math.max(p-o,0),height:Math.max(h-o,0),fill:"transparent",stroke:t,strokeWidth:o,strokeDasharray:x,style:{pointerEvents:"none"}})]})}function E({strokeColor:e,opacity:t=.5,segmentRects:o,rect:i,scale:r,onClick:s,style:a,appearanceActive:l=!1}){const c=e??"#FFFF00";return n.jsx(n.Fragment,{children:o.map((e,o)=>n.jsx("div",{onPointerDown:s,onTouchStart:s,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:l?"transparent":c,opacity:l?void 0:t,pointerEvents:s?"auto":"none",cursor:s?"pointer":"default",zIndex:s?1:void 0,...a}},o))})}function M({strokeColor:e,opacity:t=.5,segmentRects:o,rect:i,scale:r,onClick:s,style:a,appearanceActive:l=!1}){const c=e??"#FFFF00",d=2*r;return n.jsx(n.Fragment,{children:o.map((e,o)=>n.jsx("div",{onPointerDown:s,onTouchStart:s,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:"transparent",pointerEvents:s?"auto":"none",cursor:s?"pointer":"default",zIndex:s?1:0,...a},children:!l&&n.jsx("div",{style:{position:"absolute",left:0,bottom:0,width:"100%",height:d,background:c,opacity:t,pointerEvents:"none"}})},o))})}function L({strokeColor:e,opacity:t=.5,segmentRects:o,rect:i,scale:r,onClick:s,style:a,appearanceActive:l=!1}){const c=e??"#FFFF00",d=2*r;return n.jsx(n.Fragment,{children:o.map((e,o)=>n.jsx("div",{onPointerDown:s,onTouchStart:s,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:"transparent",pointerEvents:s?"auto":"none",cursor:s?"pointer":"default",zIndex:s?1:0,...a},children:!l&&n.jsx("div",{style:{position:"absolute",left:0,top:"50%",width:"100%",height:d,background:c,opacity:t,transform:"translateY(-50%)",pointerEvents:"none"}})},o))})}function O({strokeColor:e,opacity:t=.5,segmentRects:o,rect:i,scale:r,onClick:s,style:a,appearanceActive:l=!1}){const c=2*r,d=6*r,u=`url("data:image/svg+xml;utf8,${encodeURIComponent(`<svg xmlns="http://www.w3.org/2000/svg" width="${d}" height="${2*c}" viewBox="0 0 ${d} ${2*c}">\n <path d="M0 ${c} Q ${d/4} 0 ${d/2} ${c} T ${d} ${c}"\n fill="none" stroke="${e??"#FFFF00"}" stroke-width="${c}" stroke-linecap="round"/>\n </svg>`)}")`;return n.jsx(n.Fragment,{children:o.map((e,o)=>n.jsx("div",{onPointerDown:s,onTouchStart:s,style:{position:"absolute",left:(i?e.origin.x-i.origin.x:e.origin.x)*r,top:(i?e.origin.y-i.origin.y:e.origin.y)*r,width:e.size.width*r,height:e.size.height*r,background:"transparent",pointerEvents:s?"auto":"none",cursor:s?"pointer":"default",zIndex:s?1:0,...a},children:!l&&n.jsx("div",{style:{position:"absolute",left:0,bottom:0,width:"100%",height:2*c,backgroundImage:u,backgroundRepeat:"repeat-x",backgroundSize:`${d}px ${2*c}px`,opacity:t,pointerEvents:"none"}})},o))})}const $=[j({id:"ink",matches:e=>e.type===a.PdfAnnotationSubtype.INK,render:({currentObject:e,isSelected:t,scale:o,onClick:i,appearanceActive:r})=>n.jsx(k,{...e,isSelected:t,scale:o,onClick:i,appearanceActive:r}),interactionDefaults:{isDraggable:!0,isResizable:!0,isRotatable:!0}}),j({id:"square",matches:e=>e.type===a.PdfAnnotationSubtype.SQUARE,render:({currentObject:e,isSelected:t,scale:o,onClick:i,appearanceActive:r})=>n.jsx(S,{...e,isSelected:t,scale:o,onClick:i,appearanceActive:r}),interactionDefaults:{isDraggable:!0,isResizable:!0,isRotatable:!0}}),j({id:"circle",matches:e=>e.type===a.PdfAnnotationSubtype.CIRCLE,render:({currentObject:e,isSelected:t,scale:o,onClick:i,appearanceActive:r})=>n.jsx(C,{...e,isSelected:t,scale:o,onClick:i,appearanceActive:r}),interactionDefaults:{isDraggable:!0,isResizable:!0,isRotatable:!0}}),j({id:"line",matches:e=>e.type===a.PdfAnnotationSubtype.LINE,render:({currentObject:e,isSelected:t,scale:i,onClick:r,appearanceActive:s})=>n.jsx(o.Fragment,{children:n.jsx(A,{...e,isSelected:t,scale:i,onClick:r,appearanceActive:s})}),vertexConfig:{extractVertices:e=>[e.linePoints.start,e.linePoints.end],transformAnnotation:(e,t)=>({...e,linePoints:{start:t[0],end:t[1]}})},interactionDefaults:{isDraggable:!0,isResizable:!1,isRotatable:!0}}),j({id:"polyline",matches:e=>e.type===a.PdfAnnotationSubtype.POLYLINE,render:({currentObject:e,isSelected:t,scale:i,onClick:r,appearanceActive:s})=>n.jsx(o.Fragment,{children:n.jsx(I,{...e,isSelected:t,scale:i,onClick:r,appearanceActive:s})}),vertexConfig:{extractVertices:e=>e.vertices,transformAnnotation:(e,t)=>({...e,vertices:t})},interactionDefaults:{isDraggable:!0,isResizable:!1,isRotatable:!0}}),j({id:"polygon",matches:e=>e.type===a.PdfAnnotationSubtype.POLYGON,render:({currentObject:e,isSelected:t,scale:i,onClick:r,appearanceActive:s})=>n.jsx(o.Fragment,{children:n.jsx(R,{...e,isSelected:t,scale:i,onClick:r,appearanceActive:s})}),vertexConfig:{extractVertices:e=>e.vertices,transformAnnotation:(e,t)=>({...e,vertices:t})},interactionDefaults:{isDraggable:!0,isResizable:!1,isRotatable:!0}}),j({id:"highlight",matches:e=>e.type===a.PdfAnnotationSubtype.HIGHLIGHT,render:({currentObject:e,scale:t,onClick:o,appearanceActive:i})=>n.jsx(E,{...e,scale:t,onClick:o,appearanceActive:i}),zIndex:0,interactionDefaults:{isDraggable:!1,isResizable:!1,isRotatable:!1},containerStyle:e=>({mixBlendMode:a.blendModeToCss(e.blendMode??a.PdfBlendMode.Multiply)})}),j({id:"underline",matches:e=>e.type===a.PdfAnnotationSubtype.UNDERLINE,render:({currentObject:e,scale:t,onClick:o,appearanceActive:i})=>n.jsx(M,{...e,scale:t,onClick:o,appearanceActive:i}),zIndex:0,interactionDefaults:{isDraggable:!1,isResizable:!1,isRotatable:!1}}),j({id:"strikeout",matches:e=>e.type===a.PdfAnnotationSubtype.STRIKEOUT,render:({currentObject:e,scale:t,onClick:o,appearanceActive:i})=>n.jsx(L,{...e,scale:t,onClick:o,appearanceActive:i}),zIndex:0,interactionDefaults:{isDraggable:!1,isResizable:!1,isRotatable:!1}}),j({id:"squiggly",matches:e=>e.type===a.PdfAnnotationSubtype.SQUIGGLY,render:({currentObject:e,scale:t,onClick:o,appearanceActive:i})=>n.jsx(O,{...e,scale:t,onClick:o,appearanceActive:i}),zIndex:0,interactionDefaults:{isDraggable:!1,isResizable:!1,isRotatable:!1}}),j({id:"freeText",matches:e=>e.type===a.PdfAnnotationSubtype.FREETEXT,render:({annotation:e,currentObject:t,isSelected:o,isEditing:i,scale:r,pageIndex:s,documentId:a,onClick:l,appearanceActive:c})=>n.jsx(w,{documentId:a,isSelected:o,isEditing:i,annotation:{...e,object:t},pageIndex:s,scale:r,onClick:l,appearanceActive:c}),interactionDefaults:{isDraggable:!0,isResizable:!0,isRotatable:!0},isDraggable:(e,{isEditing:t})=>e&&!t,onDoubleClick:(e,t)=>t(e)}),j({id:"stamp",matches:e=>e.type===a.PdfAnnotationSubtype.STAMP,render:({annotation:e,isSelected:t,documentId:o,pageIndex:i,scale:r,onClick:s})=>n.jsx(D,{isSelected:t,annotation:e,documentId:o,pageIndex:i,scale:r,onClick:s}),useAppearanceStream:!1,interactionDefaults:{isDraggable:!0,isResizable:!0,isRotatable:!0}}),j({id:"link",matches:e=>e.type===a.PdfAnnotationSubtype.LINK,render:({currentObject:e,isSelected:t,scale:o,onClick:i})=>n.jsx(P,{...e,isSelected:t,scale:o,onClick:i,hasIRT:!!e.inReplyToId}),interactionDefaults:{isDraggable:!1,isResizable:!1,isRotatable:!1},useAppearanceStream:!1,selectOverride:(e,t,n)=>{if(e.stopPropagation(),n.clearSelection(),t.object.inReplyToId){const e=n.allAnnotations.find(e=>e.object.id===t.object.inReplyToId);if(e)return void n.selectAnnotation(e.object.pageIndex,e.object.id)}n.selectAnnotation(n.pageIndex,t.object.id)},hideSelectionMenu:e=>!!e.inReplyToId})];function F(e){const{documentId:o,pageIndex:r,scale:s,pageWidth:d,pageHeight:u,selectionMenu:p}=e,{provides:h}=f(),{provides:g}=c.useSelectionCapability(),[v,x]=i.useState([]),{register:y}=l.usePointerHandlers({documentId:o,pageIndex:r}),[j,k]=i.useState([]),[S,C]=i.useState(null),[A,I]=i.useState({}),R=i.useRef(s),w=i.useMemo(()=>h?h.forDocument(o):null,[h,o]),z=j.length>1;i.useEffect(()=>{if(w){const e=w.getState();return x(t.getAnnotationsByPageIndex(e,r)),k(t.getSelectedAnnotationIds(e)),w.onStateChange(e=>{x(t.getAnnotationsByPageIndex(e,r)),k(t.getSelectedAnnotationIds(e))})}},[w,r]),i.useEffect(()=>{if(!w)return;R.current!==s&&(w.invalidatePageAppearances(r),R.current=s);w.getPageAppearances(r,{scaleFactor:s,dpr:"undefined"!=typeof window?window.devicePixelRatio:1}).wait(e=>I(e),()=>I({}))},[w,r,s]);const D=i.useMemo(()=>({onPointerDown:(e,t)=>{t.target===t.currentTarget&&w&&(w.deselectAnnotation(),C(null))}}),[w]),P=i.useCallback((e,t)=>{if(e.stopPropagation(),w&&g){g.clear();"metaKey"in e&&(e.metaKey||e.ctrlKey)?w.toggleSelection(r,t.object.id):w.selectAnnotation(r,t.object.id),t.object.id!==S&&C(null)}},[w,g,S,r]);i.useEffect(()=>y(D,{documentId:o}),[y,D]);const E=i.useMemo(()=>v.filter(e=>j.includes(e.object.id)),[v,j]),M=i.useMemo(()=>!(E.length<2)&&E.every(e=>{const n=null==w?void 0:w.findToolForAnnotation(e.object),o=t.resolveInteractionProp(null==n?void 0:n.interaction.isGroupDraggable,e.object,!0),i=t.resolveInteractionProp(null==n?void 0:n.interaction.isDraggable,e.object,!0);return void 0!==(null==n?void 0:n.interaction.isGroupDraggable)?o:i}),[E,w]),L=i.useMemo(()=>!(E.length<2)&&E.every(e=>{const n=null==w?void 0:w.findToolForAnnotation(e.object),o=t.resolveInteractionProp(null==n?void 0:n.interaction.isGroupResizable,e.object,!0),i=t.resolveInteractionProp(null==n?void 0:n.interaction.isResizable,e.object,!0);return void 0!==(null==n?void 0:n.interaction.isGroupResizable)?o:i}),[E,w]),O=i.useMemo(()=>!(E.length<2)&&E.every(e=>{const n=null==w?void 0:w.findToolForAnnotation(e.object),o=t.resolveInteractionProp(null==n?void 0:n.interaction.isGroupRotatable,e.object,!0),i=t.resolveInteractionProp(null==n?void 0:n.interaction.isRotatable,e.object,!0);return void 0!==(null==n?void 0:n.interaction.isGroupRotatable)?o:i}),[E,w]),F=i.useMemo(()=>!(E.length<2)&&E.some(e=>{const n=null==w?void 0:w.findToolForAnnotation(e.object),o=t.resolveInteractionProp(null==n?void 0:n.interaction.lockGroupAspectRatio,e.object,!1),i=t.resolveInteractionProp(null==n?void 0:n.interaction.lockAspectRatio,e.object,!1);return void 0!==(null==n?void 0:n.interaction.lockGroupAspectRatio)?o:i}),[E,w]),T=i.useMemo(()=>{if(!w)return!1;const e=w.getSelectedAnnotations();return e.length>1&&e.every(e=>e.object.pageIndex===r)},[w,r,j]),U=i.useCallback(e=>{if(e.dictMode)return null;if(e.object.rotation&&e.object.unrotatedRect)return null;const t=A[e.object.id];return(null==t?void 0:t.normal)?t:null},[A]),W=i.useMemo(()=>{const t=e.annotationRenderers??[],n=new Set(t.map(e=>e.id));return[...t,...$.filter(e=>!n.has(e.id))]},[e.annotationRenderers]),B=i.useCallback(e=>W.find(t=>t.matches(e.object))??null,[W]),H=i.useMemo(()=>({defaultSelect:P,selectAnnotation:(e,t)=>null==w?void 0:w.selectAnnotation(e,t),clearSelection:()=>null==g?void 0:g.clear(),allAnnotations:v,pageIndex:r}),[P,w,g,v,r]);return n.jsxs(n.Fragment,{children:[v.map(i=>{var l,c,d;const u=B(i);if(!u)return null;const h=null==w?void 0:w.findToolForAnnotation(i.object),g=j.includes(i.object.id),v=S===i.object.id,x=u.interactionDefaults,f=t.resolveInteractionProp(null==h?void 0:h.interaction.isDraggable,i.object,(null==x?void 0:x.isDraggable)??!0),y=u.isDraggable?u.isDraggable(f,{isEditing:v}):f,m=(null==(l=null==h?void 0:h.behavior)?void 0:l.useAppearanceStream)??u.useAppearanceStream??!0,k=u.selectOverride?e=>u.selectOverride(e,i,H):e=>P(e,i);return n.jsx(b,{trackedAnnotation:i,isSelected:g,isEditing:v,isMultiSelected:z,isDraggable:y,isResizable:t.resolveInteractionProp(null==h?void 0:h.interaction.isResizable,i.object,(null==x?void 0:x.isResizable)??!1),lockAspectRatio:t.resolveInteractionProp(null==h?void 0:h.interaction.lockAspectRatio,i.object,(null==x?void 0:x.lockAspectRatio)??!1),isRotatable:t.resolveInteractionProp(null==h?void 0:h.interaction.isRotatable,i.object,(null==x?void 0:x.isRotatable)??!1),vertexConfig:u.vertexConfig,selectionMenu:(null==(c=u.hideSelectionMenu)?void 0:c.call(u,i.object))?void 0:p,onSelect:k,onDoubleClick:u.onDoubleClick?e=>{e.stopPropagation(),u.onDoubleClick(i.object.id,C)}:void 0,zIndex:u.zIndex,style:(null==(d=u.containerStyle)?void 0:d.call(u,i.object))??{mixBlendMode:a.blendModeToCss(i.object.blendMode??a.PdfBlendMode.Normal)},appearance:m?U(i):void 0,...e,children:(e,{appearanceActive:t})=>u.render({annotation:i,currentObject:e,isSelected:g,isEditing:v,scale:s,pageIndex:r,documentId:o,onClick:k,appearanceActive:t})},i.object.id)}),T&&E.length>=2&&n.jsx(m,{documentId:o,pageIndex:r,scale:s,rotation:e.rotation,pageWidth:d,pageHeight:u,selectedAnnotations:E,isDraggable:M,isResizable:L,isRotatable:O,lockAspectRatio:F,resizeUI:e.resizeUI,rotationUI:e.rotationUI,selectionOutlineColor:e.selectionOutlineColor,selectionOutline:e.groupSelectionOutline??e.selectionOutline,groupSelectionMenu:e.groupSelectionMenu})]})}function T({documentId:e,pageIndex:t,scale:o}){var r,s,l,d,u,p,h,g,v,x,y,b;const{provides:m}=c.useSelectionCapability(),{provides:j}=f(),[k,S]=i.useState([]),[C,A]=i.useState(null),[I,R]=i.useState(null);if(i.useEffect(()=>{if(m)return m.forDocument(e).onSelectionChange(()=>{S(m.forDocument(e).getHighlightRectsForPage(t)),A(m.forDocument(e).getBoundingRectForPage(t))})},[m,e,t]),i.useEffect(()=>{if(j)return R(j.forDocument(e).getActiveTool()),j.forDocument(e).onActiveToolChange(e=>R(e))},[j,e]),!C)return null;if(!I||!I.defaults)return null;switch(I.defaults.type){case a.PdfAnnotationSubtype.UNDERLINE:return n.jsx("div",{style:{mixBlendMode:a.blendModeToCss((null==(r=I.defaults)?void 0:r.blendMode)??a.PdfBlendMode.Normal),pointerEvents:"none",position:"absolute",inset:0},children:n.jsx(M,{strokeColor:null==(s=I.defaults)?void 0:s.strokeColor,opacity:null==(l=I.defaults)?void 0:l.opacity,segmentRects:k,scale:o})});case a.PdfAnnotationSubtype.HIGHLIGHT:return n.jsx("div",{style:{mixBlendMode:a.blendModeToCss((null==(d=I.defaults)?void 0:d.blendMode)??a.PdfBlendMode.Multiply),pointerEvents:"none",position:"absolute",inset:0},children:n.jsx(E,{strokeColor:null==(u=I.defaults)?void 0:u.strokeColor,opacity:null==(p=I.defaults)?void 0:p.opacity,segmentRects:k,scale:o})});case a.PdfAnnotationSubtype.STRIKEOUT:return n.jsx("div",{style:{mixBlendMode:a.blendModeToCss((null==(h=I.defaults)?void 0:h.blendMode)??a.PdfBlendMode.Normal),pointerEvents:"none",position:"absolute",inset:0},children:n.jsx(L,{strokeColor:null==(g=I.defaults)?void 0:g.strokeColor,opacity:null==(v=I.defaults)?void 0:v.opacity,segmentRects:k,scale:o})});case a.PdfAnnotationSubtype.SQUIGGLY:return n.jsx("div",{style:{mixBlendMode:a.blendModeToCss((null==(x=I.defaults)?void 0:x.blendMode)??a.PdfBlendMode.Normal),pointerEvents:"none",position:"absolute",inset:0},children:n.jsx(O,{strokeColor:null==(y=I.defaults)?void 0:y.strokeColor,opacity:null==(b=I.defaults)?void 0:b.opacity,segmentRects:k,scale:o})});default:return null}}function U({preview:e,scale:t}){const{bounds:o}=e,i={position:"absolute",left:o.origin.x*t,top:o.origin.y*t,width:o.size.width*t,height:o.size.height*t,pointerEvents:"none",zIndex:10};return e.type===a.PdfAnnotationSubtype.CIRCLE?n.jsx("div",{style:i,children:n.jsx(C,{isSelected:!1,scale:t,...e.data})}):e.type===a.PdfAnnotationSubtype.SQUARE?n.jsx("div",{style:i,children:n.jsx(S,{isSelected:!1,scale:t,...e.data})}):e.type===a.PdfAnnotationSubtype.POLYGON?n.jsx("div",{style:i,children:n.jsx(R,{isSelected:!1,scale:t,...e.data})}):e.type===a.PdfAnnotationSubtype.POLYLINE?n.jsx("div",{style:i,children:n.jsx(I,{isSelected:!1,scale:t,...e.data})}):e.type===a.PdfAnnotationSubtype.LINE?n.jsx("div",{style:i,children:n.jsx(A,{isSelected:!1,scale:t,...e.data})}):e.type===a.PdfAnnotationSubtype.INK?n.jsx("div",{style:i,children:n.jsx(k,{isSelected:!1,scale:t,...e.data})}):e.type===a.PdfAnnotationSubtype.FREETEXT?n.jsx("div",{style:i,children:n.jsx("div",{style:{width:"100%",height:"100%",border:`1px dashed ${e.data.fontColor||"#000000"}`,backgroundColor:"transparent"}})}):null}function W({documentId:e,pageIndex:t,scale:o}){const{plugin:r}=x(),[s,a]=i.useState(new Map),l=i.useRef(null),c=i.useRef(null),d=i.useMemo(()=>({requestFile:({accept:e,onFile:t})=>{if(!l.current)return;const n=l.current;n.accept=e,n.onchange=e=>{var o;const i=null==(o=e.target.files)?void 0:o[0];i&&(t(i),n.value="")},n.click()},processImage:({source:e,maxWidth:t,maxHeight:n,onComplete:o})=>{const i=c.current;if(!i||!i.getContext)return;const r=i.getContext("2d");if(!r)return;const s=new Image;s.crossOrigin="Anonymous",s.onload=()=>{let{naturalWidth:a,naturalHeight:l}=s;const c=t?t/a:1,d=n?n/l:1,u=Math.min(c,d,1),p=a*u,h=l*u;i.width=p,i.height=h,r.drawImage(s,0,0,p,h);const g=r.getImageData(0,0,p,h);"string"!=typeof e&&URL.revokeObjectURL(s.src),o({imageData:g,width:p,height:h})},s.src="string"==typeof e?e:URL.createObjectURL(e)}}),[]);return i.useEffect(()=>{if(r)return r.registerPageHandlers(e,t,o,{services:d,onPreview:(e,t)=>{a(n=>{const o=new Map(n);return t?o.set(e,t):o.delete(e),o})}})},[e,t,o,r,d]),n.jsxs(n.Fragment,{children:[n.jsx("input",{ref:l,type:"file",style:{display:"none"}}),n.jsx("canvas",{ref:c,style:{display:"none"}}),Array.from(s.entries()).map(([e,t])=>n.jsx(U,{preview:t,scale:o},e))]})}const B=e.createPluginPackage(t.AnnotationPluginPackage).addWrapper(g).build();exports.AnnotationLayer=function({style:e,documentId:t,pageIndex:o,scale:r,rotation:a,selectionMenu:l,groupSelectionMenu:c,resizeUI:d,vertexUI:u,rotationUI:p,selectionOutlineColor:h,selectionOutline:g,groupSelectionOutline:x,customAnnotationRenderer:f,annotationRenderers:y,...b}){var m,j,k,S;const C=s.useDocumentState(t),A=null==(j=null==(m=null==C?void 0:C.document)?void 0:m.pages)?void 0:j[o],I=(null==(k=null==A?void 0:A.size)?void 0:k.width)??0,R=(null==(S=null==A?void 0:A.size)?void 0:S.height)??0,w=v(),z=i.useMemo(()=>{const e=[...w];for(const t of y??[]){const n=e.findIndex(e=>e.id===t.id);n>=0?e[n]=t:e.push(t)}return e},[w,y]),D=i.useMemo(()=>void 0!==r?r:(null==C?void 0:C.scale)??1,[r,null==C?void 0:C.scale]),P=i.useMemo(()=>{if(void 0!==a)return a;return(((null==A?void 0:A.rotation)??0)+((null==C?void 0:C.rotation)??0))%4},[a,null==A?void 0:A.rotation,null==C?void 0:C.rotation]);return n.jsxs("div",{style:{...e},...b,children:[n.jsx(F,{documentId:t,selectionMenu:l,groupSelectionMenu:c,pageIndex:o,scale:D,rotation:P,pageWidth:I,pageHeight:R,resizeUI:d,vertexUI:u,rotationUI:p,selectionOutlineColor:h,selectionOutline:g,groupSelectionOutline:x,customAnnotationRenderer:f,annotationRenderers:z}),n.jsx(T,{documentId:t,pageIndex:o,scale:D}),n.jsx(W,{documentId:t,pageIndex:o,scale:D})]})},exports.AnnotationPluginPackage=B,exports.AnnotationRendererProvider=g,exports.GroupSelectionBox=m,exports.createRenderer=j,exports.useAnnotation=e=>{var n;const{provides:o}=f(),[r,s]=i.useState((null==(n=null==o?void 0:o.forDocument(e))?void 0:n.getState())??t.initialDocumentState());return i.useEffect(()=>{if(!o)return;const t=o.forDocument(e);return s(t.getState()),t.onStateChange(e=>{s(e)})},[o,e]),{state:r,provides:(null==o?void 0:o.forDocument(e))??null}},exports.useAnnotationCapability=f,exports.useAnnotationPlugin=x,exports.useRegisterRenderers=function(e){const t=i.useContext(p),n=i.useRef(e);i.useEffect(()=>{if(t)return t(n.current)},[t])},exports.useRegisteredRenderers=v,exports.useRendererRegistry=function(){return i.useContext(p)},Object.keys(t).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>t[e]})});
2
2
  //# sourceMappingURL=index.cjs.map