@embedpdf/plugin-annotation 2.9.0 → 2.10.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 (77) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +3082 -2656
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/actions.d.ts +25 -6
  6. package/dist/lib/annotation-plugin.d.ts +15 -12
  7. package/dist/lib/handlers/index.d.ts +1 -0
  8. package/dist/lib/handlers/link.handler.d.ts +3 -0
  9. package/dist/lib/handlers/types.d.ts +9 -1
  10. package/dist/lib/helpers.d.ts +12 -5
  11. package/dist/lib/index.d.ts +4 -0
  12. package/dist/lib/reducer.d.ts +1 -1
  13. package/dist/lib/tools/default-tools.d.ts +149 -299
  14. package/dist/lib/tools/tools-utils.d.ts +448 -22
  15. package/dist/lib/tools/types.d.ts +37 -2
  16. package/dist/lib/types.d.ts +108 -24
  17. package/dist/preact/index.cjs +1 -1
  18. package/dist/preact/index.cjs.map +1 -1
  19. package/dist/preact/index.js +213 -92
  20. package/dist/preact/index.js.map +1 -1
  21. package/dist/react/index.cjs +1 -1
  22. package/dist/react/index.cjs.map +1 -1
  23. package/dist/react/index.js +213 -92
  24. package/dist/react/index.js.map +1 -1
  25. package/dist/shared/components/annotation-navigation-handler.d.ts +1 -0
  26. package/dist/shared/components/annotations/link-locked.d.ts +3 -0
  27. package/dist/shared/components/annotations/stamp.d.ts +1 -1
  28. package/dist/shared/components/preview-renderer.d.ts +4 -3
  29. package/dist/shared/components/types.d.ts +21 -4
  30. package/dist/shared/hooks/index.d.ts +1 -0
  31. package/dist/shared/hooks/use-annotation.d.ts +2 -2
  32. package/dist/shared/hooks/use-ios-zoom-prevention.d.ts +16 -0
  33. package/dist/shared-preact/components/annotation-navigation-handler.d.ts +1 -0
  34. package/dist/shared-preact/components/annotations/link-locked.d.ts +3 -0
  35. package/dist/shared-preact/components/annotations/stamp.d.ts +1 -1
  36. package/dist/shared-preact/components/preview-renderer.d.ts +4 -3
  37. package/dist/shared-preact/components/types.d.ts +21 -4
  38. package/dist/shared-preact/hooks/index.d.ts +1 -0
  39. package/dist/shared-preact/hooks/use-annotation.d.ts +2 -2
  40. package/dist/shared-preact/hooks/use-ios-zoom-prevention.d.ts +15 -0
  41. package/dist/shared-react/components/annotation-navigation-handler.d.ts +1 -0
  42. package/dist/shared-react/components/annotations/link-locked.d.ts +3 -0
  43. package/dist/shared-react/components/annotations/stamp.d.ts +1 -1
  44. package/dist/shared-react/components/preview-renderer.d.ts +4 -3
  45. package/dist/shared-react/components/types.d.ts +21 -4
  46. package/dist/shared-react/hooks/index.d.ts +1 -0
  47. package/dist/shared-react/hooks/use-annotation.d.ts +2 -2
  48. package/dist/shared-react/hooks/use-ios-zoom-prevention.d.ts +16 -0
  49. package/dist/svelte/components/AnnotationNavigationHandler.svelte.d.ts +3 -0
  50. package/dist/svelte/components/PreviewRenderer.svelte.d.ts +3 -2
  51. package/dist/svelte/components/annotations/LinkLockedMode.svelte.d.ts +5 -0
  52. package/dist/svelte/components/annotations/LinkPreview.svelte.d.ts +10 -0
  53. package/dist/svelte/components/annotations/Stamp.svelte.d.ts +1 -1
  54. package/dist/svelte/context/renderer-registry.svelte.d.ts +1 -1
  55. package/dist/svelte/context/types.d.ts +20 -3
  56. package/dist/svelte/hooks/index.d.ts +1 -0
  57. package/dist/svelte/hooks/use-annotation.svelte.d.ts +1 -1
  58. package/dist/svelte/hooks/use-ios-zoom-prevention.svelte.d.ts +6 -0
  59. package/dist/svelte/index.cjs +1 -1
  60. package/dist/svelte/index.cjs.map +1 -1
  61. package/dist/svelte/index.js +422 -234
  62. package/dist/svelte/index.js.map +1 -1
  63. package/dist/vue/components/annotation-navigation-handler.vue.d.ts +3 -0
  64. package/dist/vue/components/annotations/link-locked.vue.d.ts +5 -0
  65. package/dist/vue/components/annotations/link-preview.vue.d.ts +10 -0
  66. package/dist/vue/components/annotations/stamp.vue.d.ts +2 -2
  67. package/dist/vue/components/preview-renderer.vue.d.ts +3 -2
  68. package/dist/vue/context/renderer-registry.d.ts +1 -1
  69. package/dist/vue/context/types.d.ts +20 -3
  70. package/dist/vue/hooks/index.d.ts +1 -0
  71. package/dist/vue/hooks/use-annotation.d.ts +24 -2
  72. package/dist/vue/hooks/use-ios-zoom-prevention.d.ts +7 -0
  73. package/dist/vue/index.cjs +1 -1
  74. package/dist/vue/index.cjs.map +1 -1
  75. package/dist/vue/index.js +433 -277
  76. package/dist/vue/index.js.map +1 -1
  77. package/package.json +12 -10
package/dist/vue/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { createPluginPackage } from "@embedpdf/core";
2
- import { AnnotationPlugin, initialDocumentState, inferRotationCenterFromRects, generateCloudyRectanglePath, generateCloudyEllipsePath, patching, generateCloudyPolygonPath, resolveInteractionProp, getAnnotationsByPageIndex, getSelectedAnnotationIds, AnnotationPluginPackage as AnnotationPluginPackage$1 } from "@embedpdf/plugin-annotation";
2
+ import { AnnotationPlugin, initialDocumentState, inferRotationCenterFromRects, generateCloudyRectanglePath, generateCloudyEllipsePath, patching, generateCloudyPolygonPath, LockModeType, getAnnotationCategories, hasLockedFlag, isCategoryLocked, resolveInteractionProp, getAnnotationsByPageIndex, getSelectedAnnotationIds, AnnotationPluginPackage as AnnotationPluginPackage$1 } from "@embedpdf/plugin-annotation";
3
3
  export * from "@embedpdf/plugin-annotation";
4
- import { defineComponent, ref, watchEffect, openBlock, createElementBlock, normalizeStyle, createCommentVNode, toValue, watch, computed, shallowRef, toRaw, useSlots, createElementVNode, renderSlot, createBlock, Fragment, unref, normalizeProps, mergeProps, renderList, withCtx, resolveDynamicComponent, Teleport, toDisplayString, markRaw, provide, inject, onUnmounted, onMounted, createVNode, createSlots, guardReactiveProps } from "vue";
4
+ import { defineComponent, ref, watchEffect, openBlock, createElementBlock, normalizeStyle, createCommentVNode, toValue, watch, computed, shallowRef, toRaw, useSlots, createElementVNode, renderSlot, createBlock, Fragment, unref, normalizeProps, mergeProps, renderList, withCtx, resolveDynamicComponent, Teleport, toDisplayString, markRaw, provide, inject, onUnmounted, nextTick, createVNode, createSlots, guardReactiveProps, onMounted } from "vue";
5
5
  import { getCounterRotation } from "@embedpdf/utils";
6
6
  import { useInteractionHandles, useDoublePressProps, CounterRotate, deepToRaw } from "@embedpdf/utils/vue";
7
- import { useCapability, usePlugin, useDocumentPermissions, useDocumentState } from "@embedpdf/core/vue";
7
+ import { usePlugin, useCapability, useDocumentPermissions, useDocumentState } from "@embedpdf/core/vue";
8
8
  import { boundingRectOrEmpty, PdfAnnotationBorderStyle, PdfVerticalAlignment, textAlignmentToCss, standardFontCssProperties, ignore, PdfErrorCode, getContrastStrokeColor, PdfBlendMode, PdfAnnotationSubtype, blendModeToCss } from "@embedpdf/models";
9
9
  import { usePointerHandlers } from "@embedpdf/plugin-interaction-manager/vue";
10
10
  import { useSelectionCapability } from "@embedpdf/plugin-selection/vue";
11
- const _hoisted_1$d = ["src"];
12
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
11
+ const _hoisted_1$e = ["src"];
12
+ const _sfc_main$G = /* @__PURE__ */ defineComponent({
13
13
  __name: "appearance-image",
14
14
  props: {
15
15
  appearance: {},
@@ -52,7 +52,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
52
52
  userSelect: "none",
53
53
  ...__props.style
54
54
  })
55
- }, null, 44, _hoisted_1$d)) : createCommentVNode("", true);
55
+ }, null, 44, _hoisted_1$e)) : createCommentVNode("", true);
56
56
  };
57
57
  }
58
58
  });
@@ -86,13 +86,46 @@ const useAnnotation = (documentId) => {
86
86
  })
87
87
  };
88
88
  };
89
- const _hoisted_1$c = ["width", "height", "stroke"];
89
+ const MIN_IOS_FOCUS_FONT_PX = 16;
90
+ function detectIOS() {
91
+ try {
92
+ const nav = navigator;
93
+ return /iPad|iPhone|iPod/.test(navigator.userAgent) || navigator.platform === "MacIntel" && (nav == null ? void 0 : nav.maxTouchPoints) > 1;
94
+ } catch {
95
+ return false;
96
+ }
97
+ }
98
+ let _isIOS;
99
+ function getIsIOS() {
100
+ if (_isIOS === void 0) {
101
+ _isIOS = detectIOS();
102
+ }
103
+ return _isIOS;
104
+ }
105
+ function useIOSZoomPrevention(computedFontPx, active) {
106
+ const isIOS = getIsIOS();
107
+ return computed(() => {
108
+ const px = toValue(computedFontPx);
109
+ const isActive = toValue(active);
110
+ const needsComp = isIOS && isActive && px > 0 && px < MIN_IOS_FOCUS_FONT_PX;
111
+ const adjustedFontPx = needsComp ? MIN_IOS_FOCUS_FONT_PX : px;
112
+ const scaleComp = needsComp ? px / MIN_IOS_FOCUS_FONT_PX : 1;
113
+ const wrapperStyle = needsComp ? {
114
+ width: `${100 / scaleComp}%`,
115
+ height: `${100 / scaleComp}%`,
116
+ transform: `scale(${scaleComp})`,
117
+ transformOrigin: "top left"
118
+ } : void 0;
119
+ return { needsComp, adjustedFontPx, scaleComp, wrapperStyle };
120
+ });
121
+ }
122
+ const _hoisted_1$d = ["width", "height", "stroke"];
90
123
  const _hoisted_2$a = ["width", "height", "stroke"];
91
- const __default__$e = {
124
+ const __default__$f = {
92
125
  inheritAttrs: false
93
126
  };
94
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
95
- ...__default__$e,
127
+ const _sfc_main$F = /* @__PURE__ */ defineComponent({
128
+ ...__default__$f,
96
129
  __name: "annotation-container",
97
130
  props: {
98
131
  scale: {},
@@ -534,7 +567,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
534
567
  height: `${innerHeight.value}px`,
535
568
  transform: annotationRotation.value !== 0 ? `rotate(${annotationRotation.value}deg)` : void 0,
536
569
  transformOrigin: innerTransformOrigin.value,
537
- pointerEvents: "none"
570
+ pointerEvents: props.isEditing ? "auto" : "none"
538
571
  }));
539
572
  const innerRotatedStyle = computed(() => ({
540
573
  position: "absolute",
@@ -546,7 +579,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
546
579
  transformOrigin: innerTransformOrigin.value,
547
580
  outline: showOutline.value ? `${outlineWidth.value}px ${outlineStyle.value} ${outlineColor.value}` : "none",
548
581
  outlineOffset: showOutline.value ? `${outlineOff.value}px` : "0px",
549
- pointerEvents: props.isSelected && !props.isMultiSelected ? "auto" : "none",
582
+ pointerEvents: props.isSelected && !props.isMultiSelected && !props.isEditing ? "auto" : "none",
550
583
  touchAction: "none",
551
584
  cursor: props.isSelected && effectiveIsDraggable.value ? "move" : "default"
552
585
  }));
@@ -656,7 +689,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
656
689
  annotation: childObject.value,
657
690
  appearanceActive: apActive.value
658
691
  }),
659
- ((_a = __props.appearance) == null ? void 0 : _a.normal) ? (openBlock(), createBlock(_sfc_main$D, {
692
+ ((_a = __props.appearance) == null ? void 0 : _a.normal) ? (openBlock(), createBlock(_sfc_main$G, {
660
693
  key: 0,
661
694
  appearance: __props.appearance.normal,
662
695
  style: normalizeStyle({ display: apActive.value ? "block" : "none" })
@@ -705,7 +738,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
705
738
  }, [..._cache[2] || (_cache[2] = [
706
739
  createElementVNode("path", { d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8" }, null, -1),
707
740
  createElementVNode("path", { d: "M21 3v5h-5" }, null, -1)
708
- ])], 8, _hoisted_1$c))
741
+ ])], 8, _hoisted_1$d))
709
742
  ], 16)
710
743
  ]) : (openBlock(), createElementBlock("div", mergeProps({ key: 2 }, rotationHandleBindings.value, { style: rotationHandleStyle.value }), [
711
744
  (openBlock(), createElementBlock("svg", {
@@ -840,14 +873,14 @@ function getAnnotationScreenBounds(annotation, scale, rotation) {
840
873
  bottom: top + maxY
841
874
  };
842
875
  }
843
- const _hoisted_1$b = {
876
+ const _hoisted_1$c = {
844
877
  key: 0,
845
878
  "data-group-selection-box": "",
846
879
  "data-no-interaction": ""
847
880
  };
848
881
  const _hoisted_2$9 = ["width", "height", "stroke"];
849
882
  const _hoisted_3$9 = ["width", "height", "stroke"];
850
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
883
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
851
884
  __name: "group-selection-box",
852
885
  props: {
853
886
  documentId: {},
@@ -1307,7 +1340,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1307
1340
  currentRotation: computed(() => liveRotation.value ?? 0)
1308
1341
  });
1309
1342
  return (_ctx, _cache) => {
1310
- return __props.selectedAnnotations.length >= 2 ? (openBlock(), createElementBlock("div", _hoisted_1$b, [
1343
+ return __props.selectedAnnotations.length >= 2 ? (openBlock(), createElementBlock("div", _hoisted_1$c, [
1311
1344
  createElementVNode("div", {
1312
1345
  style: normalizeStyle(outerStyle.value)
1313
1346
  }, [
@@ -1466,14 +1499,79 @@ function createRenderer(entry) {
1466
1499
  isDraggable: entry.isDraggable,
1467
1500
  onDoubleClick: entry.onDoubleClick,
1468
1501
  selectOverride: entry.selectOverride,
1469
- hideSelectionMenu: entry.hideSelectionMenu
1502
+ hideSelectionMenu: entry.hideSelectionMenu,
1503
+ renderPreview: entry.renderPreview ? markRaw(entry.renderPreview) : void 0,
1504
+ hiddenWhenLocked: entry.hiddenWhenLocked,
1505
+ renderLocked: entry.renderLocked ? markRaw(entry.renderLocked) : void 0
1470
1506
  };
1471
1507
  }
1472
- const _hoisted_1$a = ["width", "height", "viewBox"];
1508
+ const __default__$e = { inheritAttrs: false };
1509
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
1510
+ ...__default__$e,
1511
+ __name: "link-locked",
1512
+ props: {
1513
+ annotation: {},
1514
+ currentObject: {},
1515
+ isSelected: { type: Boolean },
1516
+ isEditing: { type: Boolean },
1517
+ scale: {},
1518
+ pageIndex: {},
1519
+ documentId: {},
1520
+ onClick: { type: Function },
1521
+ appearanceActive: { type: Boolean }
1522
+ },
1523
+ setup(__props) {
1524
+ const props = __props;
1525
+ const { provides } = useAnnotationCapability();
1526
+ const handleClick = () => {
1527
+ const target = props.annotation.object.target;
1528
+ if (!target || !provides.value) return;
1529
+ provides.value.forDocument(props.documentId).navigateTarget(target);
1530
+ };
1531
+ return (_ctx, _cache) => {
1532
+ return openBlock(), createElementBlock("div", {
1533
+ onClick: handleClick,
1534
+ style: {
1535
+ width: "100%",
1536
+ height: "100%",
1537
+ cursor: "pointer",
1538
+ pointerEvents: "auto"
1539
+ }
1540
+ });
1541
+ };
1542
+ }
1543
+ });
1544
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
1545
+ __name: "link-preview",
1546
+ props: {
1547
+ data: {},
1548
+ bounds: {},
1549
+ scale: {}
1550
+ },
1551
+ setup(__props) {
1552
+ const props = __props;
1553
+ const style = computed(() => ({
1554
+ position: "absolute",
1555
+ left: 0,
1556
+ top: 0,
1557
+ width: `${props.bounds.size.width * props.scale}px`,
1558
+ height: `${props.bounds.size.height * props.scale}px`,
1559
+ borderBottom: `${props.data.strokeWidth * props.scale}px solid ${props.data.strokeColor}`,
1560
+ backgroundColor: "rgba(0, 0, 255, 0.05)",
1561
+ boxSizing: "border-box"
1562
+ }));
1563
+ return (_ctx, _cache) => {
1564
+ return openBlock(), createElementBlock("div", {
1565
+ style: normalizeStyle(style.value)
1566
+ }, null, 4);
1567
+ };
1568
+ }
1569
+ });
1570
+ const _hoisted_1$b = ["width", "height", "viewBox"];
1473
1571
  const _hoisted_2$8 = ["d", "stroke-width"];
1474
1572
  const _hoisted_3$8 = ["d", "opacity"];
1475
1573
  const __default__$d = { inheritAttrs: false };
1476
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
1574
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
1477
1575
  ...__default__$d,
1478
1576
  __name: "ink",
1479
1577
  props: {
@@ -1531,8 +1629,8 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1531
1629
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
1532
1630
  (...args) => __props.onClick && __props.onClick(...args)),
1533
1631
  style: normalizeStyle({
1534
- cursor: __props.isSelected ? "move" : "pointer",
1535
- pointerEvents: __props.isSelected ? "none" : "visibleStroke",
1632
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
1633
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : "visibleStroke",
1536
1634
  strokeLinecap: "round",
1537
1635
  strokeLinejoin: "round"
1538
1636
  })
@@ -1553,11 +1651,11 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1553
1651
  })
1554
1652
  }, null, 12, _hoisted_3$8);
1555
1653
  }), 128)) : createCommentVNode("", true)
1556
- ], 12, _hoisted_1$a);
1654
+ ], 12, _hoisted_1$b);
1557
1655
  };
1558
1656
  }
1559
1657
  });
1560
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
1658
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
1561
1659
  __name: "ink-renderer",
1562
1660
  props: {
1563
1661
  annotation: {},
@@ -1572,7 +1670,7 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
1572
1670
  },
1573
1671
  setup(__props) {
1574
1672
  return (_ctx, _cache) => {
1575
- return openBlock(), createBlock(_sfc_main$A, mergeProps(__props.currentObject, {
1673
+ return openBlock(), createBlock(_sfc_main$B, mergeProps(__props.currentObject, {
1576
1674
  isSelected: __props.isSelected,
1577
1675
  scale: __props.scale,
1578
1676
  onClick: __props.onClick,
@@ -1581,13 +1679,13 @@ const _sfc_main$z = /* @__PURE__ */ defineComponent({
1581
1679
  };
1582
1680
  }
1583
1681
  });
1584
- const _hoisted_1$9 = ["width", "height", "viewBox"];
1682
+ const _hoisted_1$a = ["width", "height", "viewBox"];
1585
1683
  const _hoisted_2$7 = ["d", "stroke-width"];
1586
1684
  const _hoisted_3$7 = ["x", "y", "width", "height", "stroke-width"];
1587
1685
  const _hoisted_4$6 = ["d", "fill", "opacity"];
1588
1686
  const _hoisted_5$5 = ["x", "y", "width", "height", "fill", "opacity"];
1589
1687
  const __default__$c = { inheritAttrs: false };
1590
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
1688
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
1591
1689
  ...__default__$c,
1592
1690
  __name: "square",
1593
1691
  props: {
@@ -1659,8 +1757,8 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
1659
1757
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
1660
1758
  (...args) => __props.onClick && __props.onClick(...args)),
1661
1759
  style: normalizeStyle({
1662
- cursor: __props.isSelected ? "move" : "pointer",
1663
- pointerEvents: __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1760
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
1761
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1664
1762
  })
1665
1763
  }, null, 44, _hoisted_2$7)) : (openBlock(), createElementBlock("rect", {
1666
1764
  key: 1,
@@ -1674,8 +1772,8 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
1674
1772
  onPointerdown: _cache[1] || (_cache[1] = //@ts-ignore
1675
1773
  (...args) => __props.onClick && __props.onClick(...args)),
1676
1774
  style: normalizeStyle({
1677
- cursor: __props.isSelected ? "move" : "pointer",
1678
- pointerEvents: __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1775
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
1776
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1679
1777
  })
1680
1778
  }, null, 44, _hoisted_3$7)),
1681
1779
  !__props.appearanceActive ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
@@ -1708,11 +1806,11 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
1708
1806
  })
1709
1807
  }, null, 12, _hoisted_5$5))
1710
1808
  ], 64)) : createCommentVNode("", true)
1711
- ], 12, _hoisted_1$9);
1809
+ ], 12, _hoisted_1$a);
1712
1810
  };
1713
1811
  }
1714
1812
  });
1715
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
1813
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
1716
1814
  __name: "square-renderer",
1717
1815
  props: {
1718
1816
  annotation: {},
@@ -1727,7 +1825,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
1727
1825
  },
1728
1826
  setup(__props) {
1729
1827
  return (_ctx, _cache) => {
1730
- return openBlock(), createBlock(_sfc_main$y, mergeProps(__props.currentObject, {
1828
+ return openBlock(), createBlock(_sfc_main$z, mergeProps(__props.currentObject, {
1731
1829
  isSelected: __props.isSelected,
1732
1830
  scale: __props.scale,
1733
1831
  onClick: __props.onClick,
@@ -1736,13 +1834,13 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
1736
1834
  };
1737
1835
  }
1738
1836
  });
1739
- const _hoisted_1$8 = ["width", "height", "viewBox"];
1837
+ const _hoisted_1$9 = ["width", "height", "viewBox"];
1740
1838
  const _hoisted_2$6 = ["d", "stroke-width"];
1741
1839
  const _hoisted_3$6 = ["cx", "cy", "rx", "ry", "stroke-width"];
1742
1840
  const _hoisted_4$5 = ["d", "fill", "opacity"];
1743
1841
  const _hoisted_5$4 = ["cx", "cy", "rx", "ry", "fill", "opacity"];
1744
1842
  const __default__$b = { inheritAttrs: false };
1745
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
1843
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
1746
1844
  ...__default__$b,
1747
1845
  __name: "circle",
1748
1846
  props: {
@@ -1816,8 +1914,8 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
1816
1914
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
1817
1915
  (...args) => __props.onClick && __props.onClick(...args)),
1818
1916
  style: normalizeStyle({
1819
- cursor: __props.isSelected ? "move" : "pointer",
1820
- pointerEvents: __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1917
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
1918
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1821
1919
  })
1822
1920
  }, null, 44, _hoisted_2$6)) : (openBlock(), createElementBlock("ellipse", {
1823
1921
  key: 1,
@@ -1831,8 +1929,8 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
1831
1929
  onPointerdown: _cache[1] || (_cache[1] = //@ts-ignore
1832
1930
  (...args) => __props.onClick && __props.onClick(...args)),
1833
1931
  style: normalizeStyle({
1834
- cursor: __props.isSelected ? "move" : "pointer",
1835
- pointerEvents: __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1932
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
1933
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible"
1836
1934
  })
1837
1935
  }, null, 44, _hoisted_3$6)),
1838
1936
  !__props.appearanceActive ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
@@ -1865,11 +1963,11 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
1865
1963
  })
1866
1964
  }, null, 12, _hoisted_5$4))
1867
1965
  ], 64)) : createCommentVNode("", true)
1868
- ], 12, _hoisted_1$8);
1966
+ ], 12, _hoisted_1$9);
1869
1967
  };
1870
1968
  }
1871
1969
  });
1872
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
1970
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
1873
1971
  __name: "circle-renderer",
1874
1972
  props: {
1875
1973
  annotation: {},
@@ -1884,7 +1982,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1884
1982
  },
1885
1983
  setup(__props) {
1886
1984
  return (_ctx, _cache) => {
1887
- return openBlock(), createBlock(_sfc_main$w, mergeProps(__props.currentObject, {
1985
+ return openBlock(), createBlock(_sfc_main$x, mergeProps(__props.currentObject, {
1888
1986
  isSelected: __props.isSelected,
1889
1987
  scale: __props.scale,
1890
1988
  onClick: __props.onClick,
@@ -1893,7 +1991,7 @@ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1893
1991
  };
1894
1992
  }
1895
1993
  });
1896
- const _hoisted_1$7 = ["width", "height", "viewBox"];
1994
+ const _hoisted_1$8 = ["width", "height", "viewBox"];
1897
1995
  const _hoisted_2$5 = ["x1", "y1", "x2", "y2", "stroke-width"];
1898
1996
  const _hoisted_3$5 = ["d", "transform", "stroke-width"];
1899
1997
  const _hoisted_4$4 = ["d", "transform", "stroke-width"];
@@ -1901,7 +1999,7 @@ const _hoisted_5$3 = ["x1", "y1", "x2", "y2", "opacity"];
1901
1999
  const _hoisted_6$2 = ["d", "transform", "stroke", "fill"];
1902
2000
  const _hoisted_7$1 = ["d", "transform", "stroke", "fill"];
1903
2001
  const __default__$a = { inheritAttrs: false };
1904
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
2002
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
1905
2003
  ...__default__$a,
1906
2004
  __name: "line",
1907
2005
  props: {
@@ -1973,8 +2071,8 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
1973
2071
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
1974
2072
  (...args) => __props.onClick && __props.onClick(...args)),
1975
2073
  style: normalizeStyle({
1976
- cursor: __props.isSelected ? "move" : "pointer",
1977
- pointerEvents: __props.isSelected ? "none" : "visibleStroke",
2074
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
2075
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : "visibleStroke",
1978
2076
  strokeLinecap: "butt"
1979
2077
  })
1980
2078
  }, null, 44, _hoisted_2$5),
@@ -1988,8 +2086,8 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
1988
2086
  onPointerdown: _cache[1] || (_cache[1] = //@ts-ignore
1989
2087
  (...args) => __props.onClick && __props.onClick(...args)),
1990
2088
  style: normalizeStyle({
1991
- cursor: __props.isSelected ? "move" : "pointer",
1992
- pointerEvents: __props.isSelected ? "none" : endings.value.start.filled ? "visible" : "visibleStroke",
2089
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
2090
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : endings.value.start.filled ? "visible" : "visibleStroke",
1993
2091
  strokeLinecap: "butt"
1994
2092
  })
1995
2093
  }, null, 44, _hoisted_3$5)) : createCommentVNode("", true),
@@ -2003,8 +2101,8 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
2003
2101
  onPointerdown: _cache[2] || (_cache[2] = //@ts-ignore
2004
2102
  (...args) => __props.onClick && __props.onClick(...args)),
2005
2103
  style: normalizeStyle({
2006
- cursor: __props.isSelected ? "move" : "pointer",
2007
- pointerEvents: __props.isSelected ? "none" : endings.value.end.filled ? "visible" : "visibleStroke",
2104
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
2105
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : endings.value.end.filled ? "visible" : "visibleStroke",
2008
2106
  strokeLinecap: "butt"
2009
2107
  })
2010
2108
  }, null, 44, _hoisted_4$4)) : createCommentVNode("", true),
@@ -2056,11 +2154,11 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
2056
2154
  })
2057
2155
  }, null, 12, _hoisted_7$1)) : createCommentVNode("", true)
2058
2156
  ], 64)) : createCommentVNode("", true)
2059
- ], 12, _hoisted_1$7);
2157
+ ], 12, _hoisted_1$8);
2060
2158
  };
2061
2159
  }
2062
2160
  });
2063
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
2161
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
2064
2162
  __name: "line-renderer",
2065
2163
  props: {
2066
2164
  annotation: {},
@@ -2075,7 +2173,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
2075
2173
  },
2076
2174
  setup(__props) {
2077
2175
  return (_ctx, _cache) => {
2078
- return openBlock(), createBlock(_sfc_main$u, mergeProps(__props.currentObject, {
2176
+ return openBlock(), createBlock(_sfc_main$v, mergeProps(__props.currentObject, {
2079
2177
  isSelected: __props.isSelected,
2080
2178
  scale: __props.scale,
2081
2179
  onClick: __props.onClick,
@@ -2084,7 +2182,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
2084
2182
  };
2085
2183
  }
2086
2184
  });
2087
- const _hoisted_1$6 = ["width", "height", "viewBox"];
2185
+ const _hoisted_1$7 = ["width", "height", "viewBox"];
2088
2186
  const _hoisted_2$4 = ["d", "stroke-width"];
2089
2187
  const _hoisted_3$4 = ["d", "transform", "stroke-width"];
2090
2188
  const _hoisted_4$3 = ["d", "transform", "stroke-width"];
@@ -2092,7 +2190,7 @@ const _hoisted_5$2 = ["d", "opacity"];
2092
2190
  const _hoisted_6$1 = ["d", "transform", "stroke", "fill"];
2093
2191
  const _hoisted_7 = ["d", "transform", "stroke", "fill"];
2094
2192
  const __default__$9 = { inheritAttrs: false };
2095
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
2193
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
2096
2194
  ...__default__$9,
2097
2195
  __name: "polyline",
2098
2196
  props: {
@@ -2178,8 +2276,8 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
2178
2276
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
2179
2277
  (...args) => __props.onClick && __props.onClick(...args)),
2180
2278
  style: normalizeStyle({
2181
- cursor: __props.isSelected ? "move" : "pointer",
2182
- pointerEvents: __props.isSelected ? "none" : "visibleStroke",
2279
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
2280
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : "visibleStroke",
2183
2281
  strokeLinecap: "butt",
2184
2282
  strokeLinejoin: "miter"
2185
2283
  })
@@ -2194,8 +2292,8 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
2194
2292
  onPointerdown: _cache[1] || (_cache[1] = //@ts-ignore
2195
2293
  (...args) => __props.onClick && __props.onClick(...args)),
2196
2294
  style: normalizeStyle({
2197
- cursor: __props.isSelected ? "move" : "pointer",
2198
- pointerEvents: __props.isSelected ? "none" : endings.value.start.filled ? "visible" : "visibleStroke",
2295
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
2296
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : endings.value.start.filled ? "visible" : "visibleStroke",
2199
2297
  strokeLinecap: "butt"
2200
2298
  })
2201
2299
  }, null, 44, _hoisted_3$4)) : createCommentVNode("", true),
@@ -2209,8 +2307,8 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
2209
2307
  onPointerdown: _cache[2] || (_cache[2] = //@ts-ignore
2210
2308
  (...args) => __props.onClick && __props.onClick(...args)),
2211
2309
  style: normalizeStyle({
2212
- cursor: __props.isSelected ? "move" : "pointer",
2213
- pointerEvents: __props.isSelected ? "none" : endings.value.end.filled ? "visible" : "visibleStroke",
2310
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
2311
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : endings.value.end.filled ? "visible" : "visibleStroke",
2214
2312
  strokeLinecap: "butt"
2215
2313
  })
2216
2314
  }, null, 44, _hoisted_4$3)) : createCommentVNode("", true),
@@ -2261,11 +2359,11 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
2261
2359
  })
2262
2360
  }, null, 12, _hoisted_7)) : createCommentVNode("", true)
2263
2361
  ], 64)) : createCommentVNode("", true)
2264
- ], 12, _hoisted_1$6);
2362
+ ], 12, _hoisted_1$7);
2265
2363
  };
2266
2364
  }
2267
2365
  });
2268
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
2366
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
2269
2367
  __name: "polyline-renderer",
2270
2368
  props: {
2271
2369
  annotation: {},
@@ -2280,7 +2378,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2280
2378
  },
2281
2379
  setup(__props) {
2282
2380
  return (_ctx, _cache) => {
2283
- return openBlock(), createBlock(_sfc_main$s, mergeProps(__props.currentObject, {
2381
+ return openBlock(), createBlock(_sfc_main$t, mergeProps(__props.currentObject, {
2284
2382
  isSelected: __props.isSelected,
2285
2383
  scale: __props.scale,
2286
2384
  onClick: __props.onClick,
@@ -2289,14 +2387,14 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2289
2387
  };
2290
2388
  }
2291
2389
  });
2292
- const _hoisted_1$5 = ["width", "height", "viewBox"];
2390
+ const _hoisted_1$6 = ["width", "height", "viewBox"];
2293
2391
  const _hoisted_2$3 = ["d", "stroke-width"];
2294
2392
  const _hoisted_3$3 = ["d", "opacity"];
2295
2393
  const _hoisted_4$2 = ["d", "opacity"];
2296
2394
  const _hoisted_5$1 = ["d"];
2297
2395
  const _hoisted_6 = ["x", "y", "width", "height", "fill", "stroke", "stroke-width"];
2298
2396
  const __default__$8 = { inheritAttrs: false };
2299
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
2397
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
2300
2398
  ...__default__$8,
2301
2399
  __name: "polygon",
2302
2400
  props: {
@@ -2373,8 +2471,8 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2373
2471
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
2374
2472
  (...args) => __props.onClick && __props.onClick(...args)),
2375
2473
  style: normalizeStyle({
2376
- cursor: __props.isSelected ? "move" : "pointer",
2377
- pointerEvents: __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible",
2474
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
2475
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : __props.color === "transparent" ? "visibleStroke" : "visible",
2378
2476
  strokeLinecap: "butt",
2379
2477
  strokeLinejoin: "miter"
2380
2478
  })
@@ -2433,11 +2531,11 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2433
2531
  }, null, 8, _hoisted_6)) : createCommentVNode("", true)
2434
2532
  ], 64))
2435
2533
  ], 64)) : createCommentVNode("", true)
2436
- ], 12, _hoisted_1$5);
2534
+ ], 12, _hoisted_1$6);
2437
2535
  };
2438
2536
  }
2439
2537
  });
2440
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
2538
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
2441
2539
  __name: "polygon-renderer",
2442
2540
  props: {
2443
2541
  annotation: {},
@@ -2452,7 +2550,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2452
2550
  },
2453
2551
  setup(__props) {
2454
2552
  return (_ctx, _cache) => {
2455
- return openBlock(), createBlock(_sfc_main$q, mergeProps(__props.currentObject, {
2553
+ return openBlock(), createBlock(_sfc_main$r, mergeProps(__props.currentObject, {
2456
2554
  isSelected: __props.isSelected,
2457
2555
  scale: __props.scale,
2458
2556
  onClick: __props.onClick,
@@ -2461,9 +2559,9 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2461
2559
  };
2462
2560
  }
2463
2561
  });
2464
- const _hoisted_1$4 = ["contenteditable"];
2562
+ const _hoisted_1$5 = ["contenteditable"];
2465
2563
  const __default__$7 = { inheritAttrs: false };
2466
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
2564
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
2467
2565
  ...__default__$7,
2468
2566
  __name: "free-text",
2469
2567
  props: {
@@ -2487,48 +2585,46 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
2487
2585
  return ((_a = annotationCapability.value) == null ? void 0 : _a.forDocument(props.documentId)) ?? null;
2488
2586
  }
2489
2587
  );
2490
- const isIOS = ref(false);
2491
- onMounted(() => {
2492
- try {
2493
- const nav = navigator;
2494
- isIOS.value = /iPad|iPhone|iPod/.test(navigator.userAgent) || navigator.platform === "MacIntel" && (nav == null ? void 0 : nav.maxTouchPoints) > 1;
2495
- } catch {
2496
- isIOS.value = false;
2497
- }
2498
- });
2588
+ const ios = useIOSZoomPrevention(
2589
+ () => props.annotation.object.fontSize * props.scale,
2590
+ () => props.isEditing
2591
+ );
2499
2592
  watch(
2500
2593
  () => props.isEditing,
2501
- (editing) => {
2502
- if (editing && editorRef.value) {
2503
- editingRef.value = true;
2504
- const editor = editorRef.value;
2505
- editor.focus();
2506
- const selection = window.getSelection();
2507
- if (selection) {
2508
- const range = document.createRange();
2509
- range.selectNodeContents(editor);
2594
+ async (editing) => {
2595
+ var _a, _b;
2596
+ if (!editing) return;
2597
+ await nextTick();
2598
+ if (!editorRef.value) return;
2599
+ editingRef.value = true;
2600
+ const editor = editorRef.value;
2601
+ editor.focus();
2602
+ const tool = (_a = annotationProvides.value) == null ? void 0 : _a.findToolForAnnotation(props.annotation.object);
2603
+ const isDefaultContent = ((_b = tool == null ? void 0 : tool.defaults) == null ? void 0 : _b.contents) != null && props.annotation.object.contents === tool.defaults.contents;
2604
+ const selection = window.getSelection();
2605
+ if (selection) {
2606
+ const range = document.createRange();
2607
+ range.selectNodeContents(editor);
2608
+ if (!isDefaultContent) {
2510
2609
  range.collapse(false);
2511
- selection.removeAllRanges();
2512
- selection.addRange(range);
2513
2610
  }
2611
+ selection.removeAllRanges();
2612
+ selection.addRange(range);
2514
2613
  }
2515
- }
2614
+ },
2615
+ { immediate: true }
2516
2616
  );
2517
2617
  const handleBlur = () => {
2518
2618
  if (!editingRef.value) return;
2519
2619
  editingRef.value = false;
2520
2620
  if (!annotationProvides.value || !editorRef.value) return;
2521
2621
  annotationProvides.value.updateAnnotation(props.pageIndex, props.annotation.object.id, {
2522
- contents: editorRef.value.innerText
2622
+ contents: editorRef.value.innerText.replace(/\u00A0/g, " ")
2523
2623
  });
2524
2624
  };
2525
2625
  const editorStyle = computed(() => {
2526
2626
  const { object: anno } = props.annotation;
2527
- const computedFontPx = anno.fontSize * props.scale;
2528
- const MIN_IOS_FOCUS_FONT_PX = 16;
2529
- const needsComp = isIOS.value && props.isEditing && computedFontPx > 0 && computedFontPx < MIN_IOS_FOCUS_FONT_PX;
2530
- const adjustedFontPx = needsComp ? MIN_IOS_FOCUS_FONT_PX : computedFontPx;
2531
- const scaleComp = needsComp ? computedFontPx / MIN_IOS_FOCUS_FONT_PX : 1;
2627
+ const { needsComp, adjustedFontPx, scaleComp } = ios.value;
2532
2628
  const invScalePercent = needsComp ? 100 / scaleComp : 100;
2533
2629
  return {
2534
2630
  color: anno.fontColor,
@@ -2544,7 +2640,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
2544
2640
  height: needsComp ? `${invScalePercent}%` : "100%",
2545
2641
  lineHeight: "1.18",
2546
2642
  overflow: "hidden",
2547
- cursor: props.isEditing ? "text" : "pointer",
2643
+ cursor: props.isEditing ? "text" : props.onClick ? "pointer" : "default",
2548
2644
  outline: "none",
2549
2645
  transform: needsComp ? `scale(${scaleComp})` : void 0,
2550
2646
  transformOrigin: "top left"
@@ -2557,7 +2653,7 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
2557
2653
  width: `${__props.annotation.object.rect.size.width * __props.scale}px`,
2558
2654
  height: `${__props.annotation.object.rect.size.height * __props.scale}px`,
2559
2655
  cursor: __props.isSelected && !__props.isEditing ? "move" : "default",
2560
- pointerEvents: __props.isSelected && !__props.isEditing ? "none" : "auto",
2656
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected && !__props.isEditing ? "none" : "auto",
2561
2657
  zIndex: 2,
2562
2658
  opacity: __props.appearanceActive ? 0 : 1
2563
2659
  }),
@@ -2571,12 +2667,12 @@ const _sfc_main$o = /* @__PURE__ */ defineComponent({
2571
2667
  tabindex: "0",
2572
2668
  style: normalizeStyle(editorStyle.value),
2573
2669
  contenteditable: __props.isEditing
2574
- }, toDisplayString(__props.annotation.object.contents), 45, _hoisted_1$4)
2670
+ }, toDisplayString(__props.annotation.object.contents), 45, _hoisted_1$5)
2575
2671
  ], 36);
2576
2672
  };
2577
2673
  }
2578
2674
  });
2579
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
2675
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
2580
2676
  __name: "free-text-renderer",
2581
2677
  props: {
2582
2678
  annotation: {},
@@ -2591,7 +2687,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
2591
2687
  },
2592
2688
  setup(__props) {
2593
2689
  return (_ctx, _cache) => {
2594
- return openBlock(), createBlock(_sfc_main$o, {
2690
+ return openBlock(), createBlock(_sfc_main$p, {
2595
2691
  documentId: __props.documentId,
2596
2692
  isSelected: __props.isSelected,
2597
2693
  isEditing: __props.isEditing,
@@ -2604,8 +2700,8 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
2604
2700
  };
2605
2701
  }
2606
2702
  });
2607
- const _hoisted_1$3 = ["src"];
2608
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
2703
+ const _hoisted_1$4 = ["src"];
2704
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
2609
2705
  __name: "render-annotation",
2610
2706
  props: {
2611
2707
  documentId: {},
@@ -2700,12 +2796,12 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
2700
2796
  display: "block",
2701
2797
  ...__props.style
2702
2798
  })
2703
- }, null, 44, _hoisted_1$3)) : createCommentVNode("", true);
2799
+ }, null, 44, _hoisted_1$4)) : createCommentVNode("", true);
2704
2800
  };
2705
2801
  }
2706
2802
  });
2707
2803
  const __default__$6 = { inheritAttrs: false };
2708
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
2804
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
2709
2805
  ...__default__$6,
2710
2806
  __name: "stamp",
2711
2807
  props: {
@@ -2728,13 +2824,13 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
2728
2824
  width: "100%",
2729
2825
  height: "100%",
2730
2826
  zIndex: 2,
2731
- pointerEvents: __props.isSelected ? "none" : "auto",
2732
- cursor: "pointer"
2827
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : "auto",
2828
+ cursor: __props.onClick ? "pointer" : "default"
2733
2829
  }),
2734
2830
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
2735
2831
  (...args) => __props.onClick && __props.onClick(...args))
2736
2832
  }, [
2737
- createVNode(_sfc_main$m, {
2833
+ createVNode(_sfc_main$n, {
2738
2834
  documentId: __props.documentId,
2739
2835
  pageIndex: __props.pageIndex,
2740
2836
  annotation: { ...__props.annotation.object, id: __props.annotation.object.id },
@@ -2745,7 +2841,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
2745
2841
  };
2746
2842
  }
2747
2843
  });
2748
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
2844
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
2749
2845
  __name: "stamp-renderer",
2750
2846
  props: {
2751
2847
  annotation: {},
@@ -2760,7 +2856,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
2760
2856
  },
2761
2857
  setup(__props) {
2762
2858
  return (_ctx, _cache) => {
2763
- return openBlock(), createBlock(_sfc_main$l, {
2859
+ return openBlock(), createBlock(_sfc_main$m, {
2764
2860
  isSelected: __props.isSelected,
2765
2861
  annotation: __props.annotation,
2766
2862
  documentId: __props.documentId,
@@ -2771,12 +2867,12 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
2771
2867
  };
2772
2868
  }
2773
2869
  });
2774
- const _hoisted_1$2 = ["width", "height", "viewBox"];
2870
+ const _hoisted_1$3 = ["width", "height", "viewBox"];
2775
2871
  const _hoisted_2$2 = ["width", "height"];
2776
2872
  const _hoisted_3$2 = ["y1", "x2", "y2", "stroke", "stroke-width", "stroke-dasharray"];
2777
2873
  const _hoisted_4$1 = ["x", "y", "width", "height", "stroke", "stroke-width", "stroke-dasharray"];
2778
2874
  const __default__$5 = { inheritAttrs: false };
2779
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
2875
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
2780
2876
  ...__default__$5,
2781
2877
  __name: "link",
2782
2878
  props: {
@@ -2805,10 +2901,10 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
2805
2901
  });
2806
2902
  const isUnderline = computed(() => props.strokeStyle === PdfAnnotationBorderStyle.UNDERLINE);
2807
2903
  const hitAreaCursor = computed(
2808
- () => props.hasIRT ? "default" : props.isSelected ? "move" : "pointer"
2904
+ () => props.hasIRT || !props.onClick ? "default" : props.isSelected ? "move" : "pointer"
2809
2905
  );
2810
2906
  const hitAreaPointerEvents = computed(
2811
- () => props.hasIRT ? "none" : props.isSelected ? "none" : "visible"
2907
+ () => props.hasIRT || !props.onClick ? "none" : props.isSelected ? "none" : "visible"
2812
2908
  );
2813
2909
  return (_ctx, _cache) => {
2814
2910
  return openBlock(), createElementBlock("svg", {
@@ -2860,11 +2956,11 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
2860
2956
  "stroke-dasharray": dashArray.value,
2861
2957
  style: { "pointer-events": "none" }
2862
2958
  }, null, 8, _hoisted_4$1))
2863
- ], 12, _hoisted_1$2);
2959
+ ], 12, _hoisted_1$3);
2864
2960
  };
2865
2961
  }
2866
2962
  });
2867
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
2963
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
2868
2964
  __name: "link-renderer",
2869
2965
  props: {
2870
2966
  annotation: {},
@@ -2879,7 +2975,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2879
2975
  },
2880
2976
  setup(__props) {
2881
2977
  return (_ctx, _cache) => {
2882
- return openBlock(), createBlock(_sfc_main$j, mergeProps(__props.currentObject, {
2978
+ return openBlock(), createBlock(_sfc_main$k, mergeProps(__props.currentObject, {
2883
2979
  isSelected: __props.isSelected,
2884
2980
  scale: __props.scale,
2885
2981
  onClick: __props.onClick,
@@ -2889,7 +2985,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2889
2985
  }
2890
2986
  });
2891
2987
  const __default__$4 = { inheritAttrs: false };
2892
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
2988
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
2893
2989
  ...__default__$4,
2894
2990
  __name: "highlight",
2895
2991
  props: {
@@ -2927,7 +3023,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
2927
3023
  };
2928
3024
  }
2929
3025
  });
2930
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
3026
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
2931
3027
  __name: "highlight-renderer",
2932
3028
  props: {
2933
3029
  annotation: {},
@@ -2942,7 +3038,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
2942
3038
  },
2943
3039
  setup(__props) {
2944
3040
  return (_ctx, _cache) => {
2945
- return openBlock(), createBlock(_sfc_main$h, mergeProps(__props.currentObject, {
3041
+ return openBlock(), createBlock(_sfc_main$i, mergeProps(__props.currentObject, {
2946
3042
  scale: __props.scale,
2947
3043
  onClick: __props.onClick,
2948
3044
  appearanceActive: __props.appearanceActive
@@ -2951,7 +3047,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
2951
3047
  }
2952
3048
  });
2953
3049
  const __default__$3 = { inheritAttrs: false };
2954
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
3050
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
2955
3051
  ...__default__$3,
2956
3052
  __name: "underline",
2957
3053
  props: {
@@ -3003,7 +3099,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
3003
3099
  };
3004
3100
  }
3005
3101
  });
3006
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
3102
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
3007
3103
  __name: "underline-renderer",
3008
3104
  props: {
3009
3105
  annotation: {},
@@ -3018,7 +3114,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
3018
3114
  },
3019
3115
  setup(__props) {
3020
3116
  return (_ctx, _cache) => {
3021
- return openBlock(), createBlock(_sfc_main$f, mergeProps(__props.currentObject, {
3117
+ return openBlock(), createBlock(_sfc_main$g, mergeProps(__props.currentObject, {
3022
3118
  scale: __props.scale,
3023
3119
  onClick: __props.onClick,
3024
3120
  appearanceActive: __props.appearanceActive
@@ -3027,7 +3123,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
3027
3123
  }
3028
3124
  });
3029
3125
  const __default__$2 = { inheritAttrs: false };
3030
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
3126
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
3031
3127
  ...__default__$2,
3032
3128
  __name: "strikeout",
3033
3129
  props: {
@@ -3080,7 +3176,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
3080
3176
  };
3081
3177
  }
3082
3178
  });
3083
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
3179
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
3084
3180
  __name: "strikeout-renderer",
3085
3181
  props: {
3086
3182
  annotation: {},
@@ -3095,7 +3191,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
3095
3191
  },
3096
3192
  setup(__props) {
3097
3193
  return (_ctx, _cache) => {
3098
- return openBlock(), createBlock(_sfc_main$d, mergeProps(__props.currentObject, {
3194
+ return openBlock(), createBlock(_sfc_main$e, mergeProps(__props.currentObject, {
3099
3195
  scale: __props.scale,
3100
3196
  onClick: __props.onClick,
3101
3197
  appearanceActive: __props.appearanceActive
@@ -3104,7 +3200,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
3104
3200
  }
3105
3201
  });
3106
3202
  const __default__$1 = { inheritAttrs: false };
3107
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
3203
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
3108
3204
  ...__default__$1,
3109
3205
  __name: "squiggly",
3110
3206
  props: {
@@ -3168,7 +3264,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
3168
3264
  };
3169
3265
  }
3170
3266
  });
3171
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
3267
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
3172
3268
  __name: "squiggly-renderer",
3173
3269
  props: {
3174
3270
  annotation: {},
@@ -3183,7 +3279,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
3183
3279
  },
3184
3280
  setup(__props) {
3185
3281
  return (_ctx, _cache) => {
3186
- return openBlock(), createBlock(_sfc_main$b, mergeProps(__props.currentObject, {
3282
+ return openBlock(), createBlock(_sfc_main$c, mergeProps(__props.currentObject, {
3187
3283
  scale: __props.scale,
3188
3284
  onClick: __props.onClick,
3189
3285
  appearanceActive: __props.appearanceActive
@@ -3191,11 +3287,11 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
3191
3287
  };
3192
3288
  }
3193
3289
  });
3194
- const _hoisted_1$1 = ["width", "height", "viewBox"];
3290
+ const _hoisted_1$2 = ["width", "height", "viewBox"];
3195
3291
  const _hoisted_2$1 = ["d"];
3196
3292
  const _hoisted_3$1 = ["d", "fill", "stroke", "opacity"];
3197
3293
  const __default__ = { inheritAttrs: false };
3198
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3294
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
3199
3295
  ...__default__,
3200
3296
  __name: "caret",
3201
3297
  props: {
@@ -3246,8 +3342,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3246
3342
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
3247
3343
  (...args) => __props.onClick && __props.onClick(...args)),
3248
3344
  style: normalizeStyle({
3249
- cursor: __props.isSelected ? "move" : "pointer",
3250
- pointerEvents: __props.isSelected ? "none" : "visible"
3345
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default",
3346
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : "visible"
3251
3347
  })
3252
3348
  }, null, 44, _hoisted_2$1),
3253
3349
  !__props.appearanceActive ? (openBlock(), createElementBlock("path", {
@@ -3260,11 +3356,11 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3260
3356
  "fill-rule": "evenodd",
3261
3357
  style: { pointerEvents: "none" }
3262
3358
  }, null, 8, _hoisted_3$1)) : createCommentVNode("", true)
3263
- ], 12, _hoisted_1$1);
3359
+ ], 12, _hoisted_1$2);
3264
3360
  };
3265
3361
  }
3266
3362
  });
3267
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
3363
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3268
3364
  __name: "caret-renderer",
3269
3365
  props: {
3270
3366
  annotation: {},
@@ -3279,7 +3375,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
3279
3375
  },
3280
3376
  setup(__props) {
3281
3377
  return (_ctx, _cache) => {
3282
- return openBlock(), createBlock(_sfc_main$9, mergeProps(__props.currentObject, {
3378
+ return openBlock(), createBlock(_sfc_main$a, mergeProps(__props.currentObject, {
3283
3379
  isSelected: __props.isSelected,
3284
3380
  scale: __props.scale,
3285
3381
  onClick: __props.onClick,
@@ -3288,7 +3384,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
3288
3384
  };
3289
3385
  }
3290
3386
  });
3291
- const _hoisted_1 = {
3387
+ const _hoisted_1$1 = {
3292
3388
  key: 0,
3293
3389
  style: { position: "absolute", inset: 0, pointerEvents: "none" },
3294
3390
  viewBox: "0 0 20 20",
@@ -3299,7 +3395,7 @@ const _hoisted_2 = ["fill", "opacity", "stroke"];
3299
3395
  const _hoisted_3 = ["stroke"];
3300
3396
  const _hoisted_4 = ["stroke"];
3301
3397
  const _hoisted_5 = ["stroke"];
3302
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3398
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
3303
3399
  __name: "text",
3304
3400
  props: {
3305
3401
  isSelected: { type: Boolean },
@@ -3317,13 +3413,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3317
3413
  position: "absolute",
3318
3414
  inset: 0,
3319
3415
  zIndex: 2,
3320
- pointerEvents: __props.isSelected ? "none" : "auto",
3321
- cursor: __props.isSelected ? "move" : "pointer"
3416
+ pointerEvents: !__props.onClick ? "none" : __props.isSelected ? "none" : "auto",
3417
+ cursor: __props.isSelected ? "move" : __props.onClick ? "pointer" : "default"
3322
3418
  }),
3323
3419
  onPointerdown: _cache[0] || (_cache[0] = //@ts-ignore
3324
3420
  (...args) => __props.onClick && __props.onClick(...args))
3325
3421
  }, [
3326
- !__props.appearanceActive ? (openBlock(), createElementBlock("svg", _hoisted_1, [
3422
+ !__props.appearanceActive ? (openBlock(), createElementBlock("svg", _hoisted_1$1, [
3327
3423
  createElementVNode("path", {
3328
3424
  d: "M 0.5 15.5 L 0.5 0.5 L 19.5 0.5 L 19.5 15.5 L 8.5 15.5 L 6.5 19.5 L 4.5 15.5 Z",
3329
3425
  fill: __props.color,
@@ -3361,7 +3457,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3361
3457
  };
3362
3458
  }
3363
3459
  });
3364
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3460
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3365
3461
  __name: "text-renderer",
3366
3462
  props: {
3367
3463
  annotation: {},
@@ -3376,7 +3472,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3376
3472
  },
3377
3473
  setup(__props) {
3378
3474
  return (_ctx, _cache) => {
3379
- return openBlock(), createBlock(_sfc_main$7, {
3475
+ return openBlock(), createBlock(_sfc_main$8, {
3380
3476
  isSelected: __props.isSelected,
3381
3477
  color: __props.currentObject.strokeColor ?? __props.currentObject.color,
3382
3478
  opacity: __props.currentObject.opacity,
@@ -3390,25 +3486,25 @@ const builtInRenderers = [
3390
3486
  createRenderer({
3391
3487
  id: "ink",
3392
3488
  matches: (a) => a.type === PdfAnnotationSubtype.INK,
3393
- component: _sfc_main$z,
3489
+ component: _sfc_main$A,
3394
3490
  interactionDefaults: { isDraggable: true, isResizable: true, isRotatable: true }
3395
3491
  }),
3396
3492
  createRenderer({
3397
3493
  id: "square",
3398
3494
  matches: (a) => a.type === PdfAnnotationSubtype.SQUARE,
3399
- component: _sfc_main$x,
3495
+ component: _sfc_main$y,
3400
3496
  interactionDefaults: { isDraggable: true, isResizable: true, isRotatable: true }
3401
3497
  }),
3402
3498
  createRenderer({
3403
3499
  id: "circle",
3404
3500
  matches: (a) => a.type === PdfAnnotationSubtype.CIRCLE,
3405
- component: _sfc_main$v,
3501
+ component: _sfc_main$w,
3406
3502
  interactionDefaults: { isDraggable: true, isResizable: true, isRotatable: true }
3407
3503
  }),
3408
3504
  createRenderer({
3409
3505
  id: "line",
3410
3506
  matches: (a) => a.type === PdfAnnotationSubtype.LINE,
3411
- component: _sfc_main$t,
3507
+ component: _sfc_main$u,
3412
3508
  vertexConfig: {
3413
3509
  extractVertices: (a) => [a.linePoints.start, a.linePoints.end],
3414
3510
  transformAnnotation: (a, v) => ({
@@ -3421,7 +3517,7 @@ const builtInRenderers = [
3421
3517
  createRenderer({
3422
3518
  id: "polyline",
3423
3519
  matches: (a) => a.type === PdfAnnotationSubtype.POLYLINE,
3424
- component: _sfc_main$r,
3520
+ component: _sfc_main$s,
3425
3521
  vertexConfig: {
3426
3522
  extractVertices: (a) => a.vertices,
3427
3523
  transformAnnotation: (a, vertices) => ({ ...a, vertices })
@@ -3431,7 +3527,7 @@ const builtInRenderers = [
3431
3527
  createRenderer({
3432
3528
  id: "polygon",
3433
3529
  matches: (a) => a.type === PdfAnnotationSubtype.POLYGON,
3434
- component: _sfc_main$p,
3530
+ component: _sfc_main$q,
3435
3531
  vertexConfig: {
3436
3532
  extractVertices: (a) => a.vertices,
3437
3533
  transformAnnotation: (a, vertices) => ({ ...a, vertices })
@@ -3441,7 +3537,7 @@ const builtInRenderers = [
3441
3537
  createRenderer({
3442
3538
  id: "highlight",
3443
3539
  matches: (a) => a.type === PdfAnnotationSubtype.HIGHLIGHT,
3444
- component: _sfc_main$g,
3540
+ component: _sfc_main$h,
3445
3541
  zIndex: 0,
3446
3542
  interactionDefaults: { isDraggable: false, isResizable: false, isRotatable: false },
3447
3543
  defaultBlendMode: PdfBlendMode.Multiply
@@ -3449,40 +3545,40 @@ const builtInRenderers = [
3449
3545
  createRenderer({
3450
3546
  id: "underline",
3451
3547
  matches: (a) => a.type === PdfAnnotationSubtype.UNDERLINE,
3452
- component: _sfc_main$e,
3548
+ component: _sfc_main$f,
3453
3549
  zIndex: 0,
3454
3550
  interactionDefaults: { isDraggable: false, isResizable: false, isRotatable: false }
3455
3551
  }),
3456
3552
  createRenderer({
3457
3553
  id: "strikeout",
3458
3554
  matches: (a) => a.type === PdfAnnotationSubtype.STRIKEOUT,
3459
- component: _sfc_main$c,
3555
+ component: _sfc_main$d,
3460
3556
  zIndex: 0,
3461
3557
  interactionDefaults: { isDraggable: false, isResizable: false, isRotatable: false }
3462
3558
  }),
3463
3559
  createRenderer({
3464
3560
  id: "squiggly",
3465
3561
  matches: (a) => a.type === PdfAnnotationSubtype.SQUIGGLY,
3466
- component: _sfc_main$a,
3562
+ component: _sfc_main$b,
3467
3563
  zIndex: 0,
3468
3564
  interactionDefaults: { isDraggable: false, isResizable: false, isRotatable: false }
3469
3565
  }),
3470
3566
  createRenderer({
3471
3567
  id: "text",
3472
3568
  matches: (a) => a.type === PdfAnnotationSubtype.TEXT && !a.inReplyToId,
3473
- component: _sfc_main$6,
3569
+ component: _sfc_main$7,
3474
3570
  interactionDefaults: { isDraggable: true, isResizable: false, isRotatable: false }
3475
3571
  }),
3476
3572
  createRenderer({
3477
3573
  id: "caret",
3478
3574
  matches: (a) => a.type === PdfAnnotationSubtype.CARET,
3479
- component: _sfc_main$8,
3575
+ component: _sfc_main$9,
3480
3576
  interactionDefaults: { isDraggable: false, isResizable: false, isRotatable: false }
3481
3577
  }),
3482
3578
  createRenderer({
3483
3579
  id: "freeText",
3484
3580
  matches: (a) => a.type === PdfAnnotationSubtype.FREETEXT,
3485
- component: _sfc_main$n,
3581
+ component: _sfc_main$o,
3486
3582
  interactionDefaults: { isDraggable: true, isResizable: true, isRotatable: true },
3487
3583
  isDraggable: (toolDraggable, { isEditing }) => toolDraggable && !isEditing,
3488
3584
  onDoubleClick: (id, setEditingId) => setEditingId(id)
@@ -3490,15 +3586,16 @@ const builtInRenderers = [
3490
3586
  createRenderer({
3491
3587
  id: "stamp",
3492
3588
  matches: (a) => a.type === PdfAnnotationSubtype.STAMP,
3493
- component: _sfc_main$k,
3589
+ component: _sfc_main$l,
3494
3590
  useAppearanceStream: false,
3495
3591
  interactionDefaults: { isDraggable: true, isResizable: true, isRotatable: true }
3496
3592
  }),
3497
3593
  createRenderer({
3498
3594
  id: "link",
3499
3595
  matches: (a) => a.type === PdfAnnotationSubtype.LINK,
3500
- component: _sfc_main$i,
3501
- interactionDefaults: { isDraggable: false, isResizable: false, isRotatable: false },
3596
+ component: _sfc_main$j,
3597
+ renderPreview: _sfc_main$C,
3598
+ interactionDefaults: { isDraggable: true, isResizable: true, isRotatable: false },
3502
3599
  useAppearanceStream: false,
3503
3600
  selectOverride: (e, annotation, helpers) => {
3504
3601
  e.stopPropagation();
@@ -3514,10 +3611,11 @@ const builtInRenderers = [
3514
3611
  }
3515
3612
  helpers.selectAnnotation(helpers.pageIndex, annotation.object.id);
3516
3613
  },
3517
- hideSelectionMenu: (a) => !!a.inReplyToId
3614
+ hideSelectionMenu: (a) => !!a.inReplyToId,
3615
+ renderLocked: _sfc_main$D
3518
3616
  })
3519
3617
  ];
3520
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3618
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3521
3619
  __name: "annotations",
3522
3620
  props: {
3523
3621
  documentId: {},
@@ -3548,6 +3646,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3548
3646
  });
3549
3647
  const editingId = ref(null);
3550
3648
  const appearanceMap = shallowRef({});
3649
+ const lockedMode = shallowRef({ type: LockModeType.None });
3551
3650
  let prevScale = props.scale;
3552
3651
  const annotationProvides = computed(
3553
3652
  () => annotationCapability.value ? annotationCapability.value.forDocument(props.documentId) : null
@@ -3579,10 +3678,17 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3579
3678
  const syncState = (state) => {
3580
3679
  annotations.value = getAnnotationsByPageIndex(state, pageIndex);
3581
3680
  allSelectedIds.value = getSelectedAnnotationIds(state);
3681
+ lockedMode.value = state.locked;
3582
3682
  };
3583
3683
  syncState(provides.getState());
3584
3684
  const off = provides.onStateChange(syncState);
3585
3685
  onCleanup(off);
3686
+ const offEvent = provides.onAnnotationEvent((event) => {
3687
+ if (event.type === "create" && event.editAfterCreate) {
3688
+ editingId.value = event.annotation.id;
3689
+ }
3690
+ });
3691
+ onCleanup(offEvent);
3586
3692
  },
3587
3693
  { immediate: true }
3588
3694
  );
@@ -3617,13 +3723,20 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3617
3723
  { immediate: true }
3618
3724
  );
3619
3725
  const resolvedAnnotations = computed(
3620
- () => annotations.value.map((annotation) => ({
3621
- annotation,
3622
- renderer: resolveRenderer(annotation)
3623
- }))
3726
+ () => annotations.value.map((annotation) => {
3727
+ var _a;
3728
+ const renderer = resolveRenderer(annotation);
3729
+ if (!renderer) return null;
3730
+ const tool = ((_a = annotationProvides.value) == null ? void 0 : _a.findToolForAnnotation(annotation.object)) ?? null;
3731
+ const categories = getAnnotationCategories(tool);
3732
+ const locked = hasLockedFlag(annotation.object) || isCategoryLocked(categories, lockedMode.value);
3733
+ if (locked && renderer.hiddenWhenLocked) return null;
3734
+ return { annotation, renderer, tool, locked };
3735
+ }).filter((v) => v !== null)
3624
3736
  );
3625
- const getFinalDraggable = (annotation, renderer) => {
3737
+ const getFinalDraggable = (annotation, renderer, locked) => {
3626
3738
  var _a;
3739
+ if (locked) return false;
3627
3740
  const tool = (_a = annotationProvides.value) == null ? void 0 : _a.findToolForAnnotation(annotation.object);
3628
3741
  const defaults = renderer.interactionDefaults;
3629
3742
  const isEditing = editingId.value === annotation.object.id;
@@ -3634,8 +3747,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3634
3747
  );
3635
3748
  return renderer.isDraggable ? renderer.isDraggable(resolvedDraggable, { isEditing }) : resolvedDraggable;
3636
3749
  };
3637
- const getResolvedResizable = (annotation, renderer) => {
3750
+ const getResolvedResizable = (annotation, renderer, locked) => {
3638
3751
  var _a, _b;
3752
+ if (locked) return false;
3639
3753
  const tool = (_a = annotationProvides.value) == null ? void 0 : _a.findToolForAnnotation(annotation.object);
3640
3754
  return resolveInteractionProp(
3641
3755
  tool == null ? void 0 : tool.interaction.isResizable,
@@ -3652,8 +3766,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3652
3766
  ((_b = renderer.interactionDefaults) == null ? void 0 : _b.lockAspectRatio) ?? false
3653
3767
  );
3654
3768
  };
3655
- const getResolvedRotatable = (annotation, renderer) => {
3769
+ const getResolvedRotatable = (annotation, renderer, locked) => {
3656
3770
  var _a, _b;
3771
+ if (locked) return false;
3657
3772
  const tool = (_a = annotationProvides.value) == null ? void 0 : _a.findToolForAnnotation(annotation.object);
3658
3773
  return resolveInteractionProp(
3659
3774
  tool == null ? void 0 : tool.interaction.isRotatable,
@@ -3661,13 +3776,18 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3661
3776
  ((_b = renderer.interactionDefaults) == null ? void 0 : _b.isRotatable) ?? false
3662
3777
  );
3663
3778
  };
3664
- const getSelectionMenu = (annotation, renderer) => {
3779
+ const getSelectionMenu = (annotation, renderer, locked) => {
3665
3780
  var _a;
3781
+ if (locked) return void 0;
3666
3782
  if ((_a = renderer.hideSelectionMenu) == null ? void 0 : _a.call(renderer, annotation.object)) return void 0;
3667
3783
  if (isMultiSelected.value) return void 0;
3668
3784
  return props.selectionMenu;
3669
3785
  };
3670
- const getOnSelect = (annotation, renderer) => {
3786
+ const noopSelect = (e) => {
3787
+ e.stopPropagation();
3788
+ };
3789
+ const getOnSelect = (annotation, renderer, locked) => {
3790
+ if (locked) return noopSelect;
3671
3791
  if (renderer.selectOverride) {
3672
3792
  const selectHelpers = {
3673
3793
  defaultSelect: handleClick,
@@ -3688,6 +3808,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3688
3808
  };
3689
3809
  const handlePointerDown = (_pos, pe) => {
3690
3810
  if (pe.target === pe.currentTarget && annotationProvides.value) {
3811
+ if (editingId.value && annotations.value.some((a) => a.object.id === editingId.value)) {
3812
+ pe.stopImmediatePropagation();
3813
+ }
3691
3814
  annotationProvides.value.deselectAnnotation();
3692
3815
  editingId.value = null;
3693
3816
  }
@@ -3787,7 +3910,8 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3787
3910
  const allSelected = annotationProvides.value.getSelectedAnnotations();
3788
3911
  return allSelected.every((ta) => ta.object.pageIndex === props.pageIndex);
3789
3912
  });
3790
- const getOnDoubleClick = (renderer, annotation) => {
3913
+ const getOnDoubleClick = (renderer, annotation, locked) => {
3914
+ if (locked) return void 0;
3791
3915
  if (!renderer.onDoubleClick) return void 0;
3792
3916
  return (e) => {
3793
3917
  e.stopPropagation();
@@ -3799,8 +3923,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3799
3923
  annotation.object.blendMode ?? renderer.defaultBlendMode ?? PdfBlendMode.Normal
3800
3924
  );
3801
3925
  };
3802
- const getAppearance = (annotation, renderer) => {
3926
+ const getAppearance = (annotation, renderer, locked) => {
3803
3927
  var _a, _b;
3928
+ if (locked && renderer.renderLocked) return void 0;
3804
3929
  const tool = (_a = annotationProvides.value) == null ? void 0 : _a.findToolForAnnotation(annotation.object);
3805
3930
  const useAP = ((_b = tool == null ? void 0 : tool.behavior) == null ? void 0 : _b.useAppearanceStream) ?? renderer.useAppearanceStream ?? true;
3806
3931
  return useAP ? getAppearanceForAnnotation(annotation) : void 0;
@@ -3817,65 +3942,61 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3817
3942
  });
3818
3943
  return (_ctx, _cache) => {
3819
3944
  return openBlock(), createElementBlock(Fragment, null, [
3820
- (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedAnnotations.value, ({ annotation, renderer }) => {
3945
+ (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedAnnotations.value, ({ annotation, renderer, locked }) => {
3821
3946
  var _a;
3822
- return openBlock(), createElementBlock(Fragment, {
3823
- key: annotation.object.id
3947
+ return openBlock(), createBlock(_sfc_main$F, mergeProps({
3948
+ key: annotation.object.id,
3949
+ trackedAnnotation: annotation,
3950
+ isSelected: locked ? false : allSelectedIds.value.includes(annotation.object.id),
3951
+ isEditing: locked ? false : editingId.value === annotation.object.id,
3952
+ isMultiSelected: locked ? false : isMultiSelected.value,
3953
+ isDraggable: getFinalDraggable(annotation, renderer, locked),
3954
+ isResizable: getResolvedResizable(annotation, renderer, locked),
3955
+ lockAspectRatio: getResolvedLockAspectRatio(annotation, renderer),
3956
+ isRotatable: getResolvedRotatable(annotation, renderer, locked),
3957
+ vertexConfig: locked ? void 0 : renderer.vertexConfig,
3958
+ selectionMenu: getSelectionMenu(annotation, renderer, locked),
3959
+ onSelect: getOnSelect(annotation, renderer, locked),
3960
+ onDoubleClick: getOnDoubleClick(renderer, annotation, locked),
3961
+ zIndex: renderer.zIndex,
3962
+ blendMode: getBlendMode(annotation, renderer),
3963
+ style: (_a = renderer.containerStyle) == null ? void 0 : _a.call(renderer, annotation.object),
3964
+ appearance: getAppearance(annotation, renderer, locked)
3965
+ }, { ref_for: true }, containerProps.value), createSlots({
3966
+ default: withCtx(({ annotation: currentObject, appearanceActive }) => [
3967
+ (openBlock(), createBlock(resolveDynamicComponent(locked && renderer.renderLocked ? renderer.renderLocked : renderer.component), {
3968
+ annotation,
3969
+ currentObject,
3970
+ isSelected: locked ? false : allSelectedIds.value.includes(annotation.object.id),
3971
+ isEditing: locked ? false : editingId.value === annotation.object.id,
3972
+ scale: __props.scale,
3973
+ pageIndex: __props.pageIndex,
3974
+ documentId: __props.documentId,
3975
+ onClick: locked ? void 0 : getOnSelect(annotation, renderer, locked),
3976
+ appearanceActive
3977
+ }, null, 8, ["annotation", "currentObject", "isSelected", "isEditing", "scale", "pageIndex", "documentId", "onClick", "appearanceActive"]))
3978
+ ]),
3979
+ "resize-handle": withCtx((slotProps) => [
3980
+ renderSlot(_ctx.$slots, "resize-handle", mergeProps({ ref_for: true }, slotProps))
3981
+ ]),
3982
+ "vertex-handle": withCtx((slotProps) => [
3983
+ renderSlot(_ctx.$slots, "vertex-handle", mergeProps({ ref_for: true }, slotProps))
3984
+ ]),
3985
+ "rotation-handle": withCtx((slotProps) => [
3986
+ renderSlot(_ctx.$slots, "rotation-handle", mergeProps({ ref_for: true }, slotProps))
3987
+ ]),
3988
+ _: 2
3824
3989
  }, [
3825
- renderer ? (openBlock(), createBlock(_sfc_main$C, mergeProps({
3826
- key: 0,
3827
- trackedAnnotation: annotation,
3828
- isSelected: allSelectedIds.value.includes(annotation.object.id),
3829
- isEditing: editingId.value === annotation.object.id,
3830
- isMultiSelected: isMultiSelected.value,
3831
- isDraggable: getFinalDraggable(annotation, renderer),
3832
- isResizable: getResolvedResizable(annotation, renderer),
3833
- lockAspectRatio: getResolvedLockAspectRatio(annotation, renderer),
3834
- isRotatable: getResolvedRotatable(annotation, renderer),
3835
- vertexConfig: renderer.vertexConfig,
3836
- selectionMenu: getSelectionMenu(annotation, renderer),
3837
- onSelect: getOnSelect(annotation, renderer),
3838
- onDoubleClick: getOnDoubleClick(renderer, annotation),
3839
- zIndex: renderer.zIndex,
3840
- blendMode: getBlendMode(annotation, renderer),
3841
- style: (_a = renderer.containerStyle) == null ? void 0 : _a.call(renderer, annotation.object),
3842
- appearance: getAppearance(annotation, renderer)
3843
- }, { ref_for: true }, containerProps.value), createSlots({
3844
- default: withCtx(({ annotation: currentObject, appearanceActive }) => [
3845
- (openBlock(), createBlock(resolveDynamicComponent(renderer.component), {
3846
- annotation,
3847
- currentObject,
3848
- isSelected: allSelectedIds.value.includes(annotation.object.id),
3849
- isEditing: editingId.value === annotation.object.id,
3850
- scale: __props.scale,
3851
- pageIndex: __props.pageIndex,
3852
- documentId: __props.documentId,
3853
- onClick: getOnSelect(annotation, renderer),
3854
- appearanceActive
3855
- }, null, 8, ["annotation", "currentObject", "isSelected", "isEditing", "scale", "pageIndex", "documentId", "onClick", "appearanceActive"]))
3856
- ]),
3857
- "resize-handle": withCtx((slotProps) => [
3858
- renderSlot(_ctx.$slots, "resize-handle", mergeProps({ ref_for: true }, slotProps))
3990
+ !isMultiSelected.value ? {
3991
+ name: "selection-menu",
3992
+ fn: withCtx((slotProps) => [
3993
+ renderSlot(_ctx.$slots, "selection-menu", mergeProps({ ref_for: true }, slotProps))
3859
3994
  ]),
3860
- "vertex-handle": withCtx((slotProps) => [
3861
- renderSlot(_ctx.$slots, "vertex-handle", mergeProps({ ref_for: true }, slotProps))
3862
- ]),
3863
- "rotation-handle": withCtx((slotProps) => [
3864
- renderSlot(_ctx.$slots, "rotation-handle", mergeProps({ ref_for: true }, slotProps))
3865
- ]),
3866
- _: 2
3867
- }, [
3868
- !isMultiSelected.value ? {
3869
- name: "selection-menu",
3870
- fn: withCtx((slotProps) => [
3871
- renderSlot(_ctx.$slots, "selection-menu", mergeProps({ ref_for: true }, slotProps))
3872
- ]),
3873
- key: "0"
3874
- } : void 0
3875
- ]), 1040, ["trackedAnnotation", "isSelected", "isEditing", "isMultiSelected", "isDraggable", "isResizable", "lockAspectRatio", "isRotatable", "vertexConfig", "selectionMenu", "onSelect", "onDoubleClick", "zIndex", "blendMode", "style", "appearance"])) : createCommentVNode("", true)
3876
- ], 64);
3995
+ key: "0"
3996
+ } : void 0
3997
+ ]), 1040, ["trackedAnnotation", "isSelected", "isEditing", "isMultiSelected", "isDraggable", "isResizable", "lockAspectRatio", "isRotatable", "vertexConfig", "selectionMenu", "onSelect", "onDoubleClick", "zIndex", "blendMode", "style", "appearance"]);
3877
3998
  }), 128)),
3878
- allSelectedOnSamePage.value && selectedAnnotationsOnPage.value.length >= 2 ? (openBlock(), createBlock(_sfc_main$B, {
3999
+ allSelectedOnSamePage.value && selectedAnnotationsOnPage.value.length >= 2 ? (openBlock(), createBlock(_sfc_main$E, {
3879
4000
  key: 0,
3880
4001
  documentId: __props.documentId,
3881
4002
  pageIndex: __props.pageIndex,
@@ -3909,7 +4030,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3909
4030
  };
3910
4031
  }
3911
4032
  });
3912
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4033
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3913
4034
  __name: "text-markup",
3914
4035
  props: {
3915
4036
  documentId: {},
@@ -3958,25 +4079,25 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3958
4079
  inset: 0
3959
4080
  })
3960
4081
  }, [
3961
- activeTool.value.defaults.type === unref(PdfAnnotationSubtype).HIGHLIGHT ? (openBlock(), createBlock(_sfc_main$h, {
4082
+ activeTool.value.defaults.type === unref(PdfAnnotationSubtype).HIGHLIGHT ? (openBlock(), createBlock(_sfc_main$i, {
3962
4083
  key: 0,
3963
4084
  strokeColor: activeTool.value.defaults.strokeColor,
3964
4085
  opacity: activeTool.value.defaults.opacity,
3965
4086
  segmentRects: rects.value,
3966
4087
  scale: __props.scale
3967
- }, null, 8, ["strokeColor", "opacity", "segmentRects", "scale"])) : activeTool.value.defaults.type === unref(PdfAnnotationSubtype).UNDERLINE ? (openBlock(), createBlock(_sfc_main$f, {
4088
+ }, null, 8, ["strokeColor", "opacity", "segmentRects", "scale"])) : activeTool.value.defaults.type === unref(PdfAnnotationSubtype).UNDERLINE ? (openBlock(), createBlock(_sfc_main$g, {
3968
4089
  key: 1,
3969
4090
  strokeColor: activeTool.value.defaults.strokeColor,
3970
4091
  opacity: activeTool.value.defaults.opacity,
3971
4092
  segmentRects: rects.value,
3972
4093
  scale: __props.scale
3973
- }, null, 8, ["strokeColor", "opacity", "segmentRects", "scale"])) : activeTool.value.defaults.type === unref(PdfAnnotationSubtype).STRIKEOUT ? (openBlock(), createBlock(_sfc_main$d, {
4094
+ }, null, 8, ["strokeColor", "opacity", "segmentRects", "scale"])) : activeTool.value.defaults.type === unref(PdfAnnotationSubtype).STRIKEOUT ? (openBlock(), createBlock(_sfc_main$e, {
3974
4095
  key: 2,
3975
4096
  strokeColor: activeTool.value.defaults.strokeColor,
3976
4097
  opacity: activeTool.value.defaults.opacity,
3977
4098
  segmentRects: rects.value,
3978
4099
  scale: __props.scale
3979
- }, null, 8, ["strokeColor", "opacity", "segmentRects", "scale"])) : activeTool.value.defaults.type === unref(PdfAnnotationSubtype).SQUIGGLY ? (openBlock(), createBlock(_sfc_main$b, {
4100
+ }, null, 8, ["strokeColor", "opacity", "segmentRects", "scale"])) : activeTool.value.defaults.type === unref(PdfAnnotationSubtype).SQUIGGLY ? (openBlock(), createBlock(_sfc_main$c, {
3980
4101
  key: 3,
3981
4102
  strokeColor: activeTool.value.defaults.strokeColor,
3982
4103
  opacity: activeTool.value.defaults.opacity,
@@ -3987,14 +4108,19 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3987
4108
  };
3988
4109
  }
3989
4110
  });
3990
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4111
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3991
4112
  __name: "preview-renderer",
3992
4113
  props: {
4114
+ toolId: {},
3993
4115
  preview: {},
3994
4116
  scale: {}
3995
4117
  },
3996
4118
  setup(__props) {
3997
4119
  const props = __props;
4120
+ const registry = useRendererRegistry();
4121
+ const customMatch = computed(
4122
+ () => (registry == null ? void 0 : registry.getAll().find((r) => r.id === props.toolId && r.renderPreview)) ?? null
4123
+ );
3998
4124
  const style = computed(() => {
3999
4125
  const base = {
4000
4126
  position: "absolute",
@@ -4011,30 +4137,31 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4011
4137
  return base;
4012
4138
  });
4013
4139
  return (_ctx, _cache) => {
4140
+ var _a;
4014
4141
  return openBlock(), createElementBlock("div", {
4015
4142
  style: normalizeStyle(style.value)
4016
4143
  }, [
4017
- __props.preview.type === unref(PdfAnnotationSubtype).CIRCLE ? (openBlock(), createBlock(unref(_sfc_main$w), mergeProps({
4144
+ __props.preview.type === unref(PdfAnnotationSubtype).CIRCLE ? (openBlock(), createBlock(unref(_sfc_main$x), mergeProps({
4018
4145
  key: 0,
4019
4146
  isSelected: false,
4020
4147
  scale: __props.scale
4021
- }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).SQUARE ? (openBlock(), createBlock(unref(_sfc_main$y), mergeProps({
4148
+ }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).SQUARE ? (openBlock(), createBlock(unref(_sfc_main$z), mergeProps({
4022
4149
  key: 1,
4023
4150
  isSelected: false,
4024
4151
  scale: __props.scale
4025
- }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).POLYGON ? (openBlock(), createBlock(unref(_sfc_main$q), mergeProps({
4152
+ }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).POLYGON ? (openBlock(), createBlock(unref(_sfc_main$r), mergeProps({
4026
4153
  key: 2,
4027
4154
  isSelected: false,
4028
4155
  scale: __props.scale
4029
- }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).POLYLINE ? (openBlock(), createBlock(unref(_sfc_main$s), mergeProps({
4156
+ }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).POLYLINE ? (openBlock(), createBlock(unref(_sfc_main$t), mergeProps({
4030
4157
  key: 3,
4031
4158
  isSelected: false,
4032
4159
  scale: __props.scale
4033
- }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).LINE ? (openBlock(), createBlock(unref(_sfc_main$u), mergeProps({
4160
+ }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).LINE ? (openBlock(), createBlock(unref(_sfc_main$v), mergeProps({
4034
4161
  key: 4,
4035
4162
  isSelected: false,
4036
4163
  scale: __props.scale
4037
- }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).INK ? (openBlock(), createBlock(unref(_sfc_main$A), mergeProps({
4164
+ }, __props.preview.data), null, 16, ["scale"])) : __props.preview.type === unref(PdfAnnotationSubtype).INK ? (openBlock(), createBlock(unref(_sfc_main$B), mergeProps({
4038
4165
  key: 5,
4039
4166
  isSelected: false,
4040
4167
  scale: __props.scale
@@ -4046,12 +4173,17 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4046
4173
  border: `1px dashed ${__props.preview.data.fontColor || "#000000"}`,
4047
4174
  backgroundColor: "transparent"
4048
4175
  })
4049
- }, null, 4)) : createCommentVNode("", true)
4176
+ }, null, 4)) : ((_a = customMatch.value) == null ? void 0 : _a.renderPreview) ? (openBlock(), createBlock(resolveDynamicComponent(customMatch.value.renderPreview), {
4177
+ key: 7,
4178
+ data: __props.preview.data,
4179
+ bounds: __props.preview.bounds,
4180
+ scale: __props.scale
4181
+ }, null, 8, ["data", "bounds", "scale"])) : createCommentVNode("", true)
4050
4182
  ], 4);
4051
4183
  };
4052
4184
  }
4053
4185
  });
4054
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4186
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4055
4187
  __name: "annotation-paint-layer",
4056
4188
  props: {
4057
4189
  documentId: {},
@@ -4142,17 +4274,18 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4142
4274
  style: { "display": "none" }
4143
4275
  }, null, 512),
4144
4276
  (openBlock(true), createElementBlock(Fragment, null, renderList(previews.value.entries(), ([toolId, preview]) => {
4145
- return openBlock(), createBlock(_sfc_main$3, {
4277
+ return openBlock(), createBlock(_sfc_main$4, {
4146
4278
  key: toolId,
4279
+ toolId,
4147
4280
  preview,
4148
4281
  scale: __props.scale
4149
- }, null, 8, ["preview", "scale"]);
4282
+ }, null, 8, ["toolId", "preview", "scale"]);
4150
4283
  }), 128))
4151
4284
  ], 64);
4152
4285
  };
4153
4286
  }
4154
4287
  });
4155
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4288
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4156
4289
  __name: "annotation-layer",
4157
4290
  props: {
4158
4291
  documentId: {},
@@ -4226,7 +4359,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4226
4359
  });
4227
4360
  return (_ctx, _cache) => {
4228
4361
  return openBlock(), createElementBlock("div", null, [
4229
- createVNode(_sfc_main$5, {
4362
+ createVNode(_sfc_main$6, {
4230
4363
  documentId: __props.documentId,
4231
4364
  pageIndex: __props.pageIndex,
4232
4365
  scale: actualScale.value,
@@ -4260,12 +4393,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4260
4393
  ]),
4261
4394
  _: 3
4262
4395
  }, 8, ["documentId", "pageIndex", "scale", "rotation", "pageWidth", "pageHeight", "resizeUi", "vertexUi", "rotationUi", "selectionOutlineColor", "selectionOutline", "groupSelectionOutline", "selectionMenu", "groupSelectionMenu", "annotationRenderers"]),
4263
- createVNode(_sfc_main$4, {
4396
+ createVNode(_sfc_main$5, {
4264
4397
  documentId: __props.documentId,
4265
4398
  pageIndex: __props.pageIndex,
4266
4399
  scale: actualScale.value
4267
4400
  }, null, 8, ["documentId", "pageIndex", "scale"]),
4268
- createVNode(_sfc_main$2, {
4401
+ createVNode(_sfc_main$3, {
4269
4402
  documentId: __props.documentId,
4270
4403
  pageIndex: __props.pageIndex,
4271
4404
  scale: actualScale.value
@@ -4274,7 +4407,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4274
4407
  };
4275
4408
  }
4276
4409
  });
4277
- const _sfc_main = /* @__PURE__ */ defineComponent({
4410
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4278
4411
  __name: "renderer-registry-provider",
4279
4412
  setup(__props) {
4280
4413
  provideRendererRegistry();
@@ -4283,38 +4416,61 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4283
4416
  };
4284
4417
  }
4285
4418
  });
4286
- const AnnotationPluginPackage = createPluginPackage(AnnotationPluginPackage$1).addWrapper(_sfc_main).build();
4419
+ const _hoisted_1 = { style: { "display": "none" } };
4420
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4421
+ __name: "annotation-navigation-handler",
4422
+ setup(__props) {
4423
+ const { plugin } = useAnnotationPlugin();
4424
+ const { provides } = useAnnotationCapability();
4425
+ watchEffect((onCleanup) => {
4426
+ const p = provides.value;
4427
+ const pl = plugin.value;
4428
+ if (!p || !pl) return;
4429
+ const unsub = p.onNavigate((event) => {
4430
+ if (event.result.outcome === "uri" && pl.config.autoOpenLinks !== false) {
4431
+ window.open(event.result.uri, "_blank", "noopener,noreferrer");
4432
+ }
4433
+ });
4434
+ onCleanup(unsub);
4435
+ });
4436
+ return (_ctx, _cache) => {
4437
+ return openBlock(), createElementBlock("span", _hoisted_1);
4438
+ };
4439
+ }
4440
+ });
4441
+ const AnnotationPluginPackage = createPluginPackage(AnnotationPluginPackage$1).addWrapper(_sfc_main$1).addUtility(_sfc_main).build();
4287
4442
  export {
4288
- _sfc_main$C as AnnotationContainer,
4289
- _sfc_main$1 as AnnotationLayer,
4290
- _sfc_main$2 as AnnotationPaintLayer,
4443
+ _sfc_main$F as AnnotationContainer,
4444
+ _sfc_main$2 as AnnotationLayer,
4445
+ _sfc_main$3 as AnnotationPaintLayer,
4291
4446
  AnnotationPluginPackage,
4292
- _sfc_main$5 as Annotations,
4293
- _sfc_main$w as Circle,
4294
- _sfc_main$o as FreeText,
4295
- _sfc_main$B as GroupSelectionBox,
4296
- _sfc_main$h as Highlight,
4297
- _sfc_main$A as Ink,
4298
- _sfc_main$u as Line,
4299
- _sfc_main$j as Link,
4300
- _sfc_main$q as Polygon,
4301
- _sfc_main$s as Polyline,
4302
- _sfc_main$3 as PreviewRenderer,
4303
- _sfc_main$m as RenderAnnotation,
4304
- _sfc_main as RendererRegistryProvider,
4305
- _sfc_main$y as Square,
4306
- _sfc_main$b as Squiggly,
4307
- _sfc_main$l as Stamp,
4308
- _sfc_main$d as Strikeout,
4309
- _sfc_main$7 as Text,
4310
- _sfc_main$4 as TextMarkup,
4311
- _sfc_main$f as Underline,
4447
+ _sfc_main$6 as Annotations,
4448
+ _sfc_main$x as Circle,
4449
+ _sfc_main$p as FreeText,
4450
+ _sfc_main$E as GroupSelectionBox,
4451
+ _sfc_main$i as Highlight,
4452
+ _sfc_main$B as Ink,
4453
+ _sfc_main$v as Line,
4454
+ _sfc_main$k as Link,
4455
+ _sfc_main$r as Polygon,
4456
+ _sfc_main$t as Polyline,
4457
+ _sfc_main$4 as PreviewRenderer,
4458
+ _sfc_main$n as RenderAnnotation,
4459
+ _sfc_main$1 as RendererRegistryProvider,
4460
+ _sfc_main$z as Square,
4461
+ _sfc_main$c as Squiggly,
4462
+ _sfc_main$m as Stamp,
4463
+ _sfc_main$e as Strikeout,
4464
+ _sfc_main$8 as Text,
4465
+ _sfc_main$5 as TextMarkup,
4466
+ _sfc_main$g as Underline,
4312
4467
  createRenderer,
4313
4468
  createRendererRegistry,
4314
4469
  provideRendererRegistry,
4315
4470
  useAnnotation,
4316
4471
  useAnnotationCapability,
4317
4472
  useAnnotationPlugin,
4473
+ useIOSZoomPrevention,
4318
4474
  useRegisterRenderers,
4319
4475
  useRendererRegistry
4320
4476
  };