@embedpdf/plugin-selection 1.0.20 → 1.0.21

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.
package/dist/vue/index.js CHANGED
@@ -1,8 +1,8 @@
1
+ import { createPluginPackage } from "@embedpdf/core";
2
+ import { SelectionPlugin, SelectionPluginPackage as SelectionPluginPackage$1 } from "@embedpdf/plugin-selection";
3
+ export * from "@embedpdf/plugin-selection";
4
+ import { defineComponent, ref, onMounted, onUnmounted, createElementBlock, createCommentVNode, openBlock, normalizeStyle, Fragment, renderList, watchEffect } from "vue";
1
5
  import { useCapability, usePlugin } from "@embedpdf/core/vue";
2
- import { SelectionPlugin, glyphAt } from "@embedpdf/plugin-selection";
3
- import { defineComponent, ref, watchEffect, computed, createElementBlock, createCommentVNode, openBlock, normalizeStyle, Fragment, renderList } from "vue";
4
- import { ignore, PdfErrorCode } from "@embedpdf/models";
5
- import { useInteractionManagerCapability, usePointerHandlers, useCursor } from "@embedpdf/plugin-interaction-manager/vue";
6
6
  const useSelectionCapability = () => useCapability(SelectionPlugin.id);
7
7
  const useSelectionPlugin = () => usePlugin(SelectionPlugin.id);
8
8
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
@@ -15,76 +15,21 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
15
15
  setup(__props) {
16
16
  const props = __props;
17
17
  const { provides: sel } = useSelectionCapability();
18
- const { provides: im } = useInteractionManagerCapability();
19
- const { register } = usePointerHandlers({ pageIndex: props.pageIndex });
20
- const { setCursor, removeCursor } = useCursor();
21
18
  const rects = ref([]);
22
19
  const boundingRect = ref(null);
23
- watchEffect((onCleanup) => {
24
- if (sel.value) {
25
- const unsubscribe = sel.value.onSelectionChange(() => {
26
- var _a;
27
- const mode = (_a = im.value) == null ? void 0 : _a.getActiveMode();
28
- if (mode === "pointerMode") {
29
- rects.value = sel.value.getHighlightRectsForPage(props.pageIndex);
30
- boundingRect.value = sel.value.getBoundingRectForPage(props.pageIndex);
31
- } else {
32
- rects.value = [];
33
- boundingRect.value = null;
34
- }
35
- });
36
- onCleanup(unsubscribe);
37
- }
38
- });
39
- let geoCache;
40
- watchEffect((onCleanup) => {
41
- if (sel.value) {
42
- const task = sel.value.getGeometry(props.pageIndex);
43
- task.wait((g) => geoCache = g, ignore);
44
- onCleanup(() => {
45
- task.abort({
46
- code: PdfErrorCode.Cancelled,
47
- message: "SelectionLayer unmounted"
48
- });
49
- });
50
- }
51
- });
52
- const handlers = computed(
53
- () => ({
54
- onPointerDown: (point, _evt, modeId) => {
55
- if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;
56
- sel.value.clear();
57
- const task = sel.value.getGeometry(props.pageIndex);
58
- task.wait((geo) => {
59
- const g = glyphAt(geo, point);
60
- if (g !== -1) sel.value.begin(props.pageIndex, g);
61
- }, ignore);
62
- },
63
- onPointerMove: (point, _evt, modeId) => {
64
- if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;
65
- const g = geoCache ? glyphAt(geoCache, point) : -1;
66
- if (g !== -1) {
67
- setCursor("selection-text", "text", 10);
68
- sel.value.update(props.pageIndex, g);
69
- } else {
70
- removeCursor("selection-text");
71
- }
72
- },
73
- onPointerUp: (_point, _evt, modeId) => {
74
- if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;
75
- sel.value.end();
76
- },
77
- onHandlerActiveEnd: (modeId) => {
78
- if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;
79
- sel.value.clear();
20
+ let unregister;
21
+ onMounted(() => {
22
+ if (!sel.value) return;
23
+ unregister = sel.value.registerSelectionOnPage({
24
+ pageIndex: props.pageIndex,
25
+ onRectsChange: ({ rects: newRects, boundingRect: newBoundingRect }) => {
26
+ rects.value = newRects;
27
+ boundingRect.value = newBoundingRect;
80
28
  }
81
- })
82
- );
83
- watchEffect((onCleanup) => {
84
- if (register) {
85
- const cleanup = register(handlers.value);
86
- if (cleanup) onCleanup(cleanup);
87
- }
29
+ });
30
+ });
31
+ onUnmounted(() => {
32
+ unregister == null ? void 0 : unregister();
88
33
  });
89
34
  return (_ctx, _cache) => {
90
35
  return boundingRect.value ? (openBlock(), createElementBlock("div", {
@@ -136,9 +81,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
136
81
  };
137
82
  }
138
83
  });
84
+ const SelectionPluginPackage = createPluginPackage(SelectionPluginPackage$1).addUtility(_sfc_main).build();
139
85
  export {
140
86
  _sfc_main as CopyToClipboard,
141
87
  _sfc_main$1 as SelectionLayer,
88
+ SelectionPluginPackage,
142
89
  useSelectionCapability,
143
90
  useSelectionPlugin
144
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/vue/hooks/use-selection.ts","../../src/vue/components/selection-layer.vue","../../src/vue/components/copy-to-clipboard.vue"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { SelectionPlugin } from '@embedpdf/plugin-selection';\n\n/**\n * Hook to get the selection plugin's capability API.\n * This provides methods for controlling and listening to selection events.\n */\nexport const useSelectionCapability = () => useCapability<SelectionPlugin>(SelectionPlugin.id);\n\n/**\n * Hook to get the raw selection plugin instance.\n * Useful for accessing plugin-specific properties or methods not exposed in the capability.\n */\nexport const useSelectionPlugin = () => usePlugin<SelectionPlugin>(SelectionPlugin.id);\n","<script setup lang=\"ts\">\nimport { ref, watchEffect, computed } from 'vue';\nimport { ignore, PdfErrorCode, PdfPageGeometry, Rect } from '@embedpdf/models';\nimport {\n useCursor,\n useInteractionManagerCapability,\n usePointerHandlers,\n} from '@embedpdf/plugin-interaction-manager/vue';\nimport { PointerEventHandlersWithLifecycle } from '@embedpdf/plugin-interaction-manager';\nimport { glyphAt } from '@embedpdf/plugin-selection';\nimport { useSelectionCapability } from '../hooks';\n\ninterface Props {\n pageIndex: number;\n scale: number;\n background?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n background: 'rgba(33, 150, 243)', // Default selection color\n});\n\nconst { provides: sel } = useSelectionCapability();\nconst { provides: im } = useInteractionManagerCapability();\nconst { register } = usePointerHandlers({ pageIndex: props.pageIndex });\nconst { setCursor, removeCursor } = useCursor();\n\nconst rects = ref<Rect[]>([]);\nconst boundingRect = ref<Rect | null>(null);\n\n// Subscribe to selection changes and update the rendered rectangles\nwatchEffect((onCleanup) => {\n if (sel.value) {\n const unsubscribe = sel.value.onSelectionChange(() => {\n const mode = im.value?.getActiveMode();\n if (mode === 'pointerMode') {\n rects.value = sel.value!.getHighlightRectsForPage(props.pageIndex);\n boundingRect.value = sel.value!.getBoundingRectForPage(props.pageIndex);\n } else {\n rects.value = [];\n boundingRect.value = null;\n }\n });\n onCleanup(unsubscribe);\n }\n});\n\n// Cache page geometry for faster hit-testing during pointer moves\nlet geoCache: PdfPageGeometry | undefined;\nwatchEffect((onCleanup) => {\n if (sel.value) {\n const task = sel.value.getGeometry(props.pageIndex);\n task.wait((g) => (geoCache = g), ignore);\n\n onCleanup(() => {\n task.abort({\n code: PdfErrorCode.Cancelled,\n message: 'SelectionLayer unmounted',\n });\n });\n }\n});\n\nconst handlers = computed(\n (): PointerEventHandlersWithLifecycle<PointerEvent> => ({\n onPointerDown: (point, _evt, modeId) => {\n if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;\n sel.value.clear();\n const task = sel.value.getGeometry(props.pageIndex);\n task.wait((geo) => {\n const g = glyphAt(geo, point);\n if (g !== -1) sel.value!.begin(props.pageIndex, g);\n }, ignore);\n },\n onPointerMove: (point, _evt, modeId) => {\n if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;\n const g = geoCache ? glyphAt(geoCache, point) : -1;\n if (g !== -1) {\n setCursor('selection-text', 'text', 10);\n sel.value.update(props.pageIndex, g);\n } else {\n removeCursor('selection-text');\n }\n },\n onPointerUp: (_point, _evt, modeId) => {\n if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;\n sel.value.end();\n },\n onHandlerActiveEnd: (modeId) => {\n if (!sel.value || !sel.value.isEnabledForMode(modeId)) return;\n sel.value.clear();\n },\n }),\n);\n\n// Register the pointer handlers with the interaction manager\nwatchEffect((onCleanup) => {\n if (register) {\n const cleanup = register(handlers.value);\n if (cleanup) onCleanup(cleanup);\n }\n});\n</script>\n\n<template>\n <div\n v-if=\"boundingRect\"\n :style=\"{\n position: 'absolute',\n left: `${boundingRect.origin.x * scale}px`,\n top: `${boundingRect.origin.y * scale}px`,\n width: `${boundingRect.size.width * scale}px`,\n height: `${boundingRect.size.height * scale}px`,\n mixBlendMode: 'multiply',\n isolation: 'isolate',\n pointerEvents: 'none',\n }\"\n >\n <div\n v-for=\"(rect, i) in rects\"\n :key=\"i\"\n :style=\"{\n position: 'absolute',\n left: `${(rect.origin.x - boundingRect.origin.x) * scale}px`,\n top: `${(rect.origin.y - boundingRect.origin.y) * scale}px`,\n width: `${rect.size.width * scale}px`,\n height: `${rect.size.height * scale}px`,\n background: background,\n }\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { watchEffect } from 'vue';\nimport { useSelectionCapability } from '../hooks';\n\nconst { provides: sel } = useSelectionCapability();\n\n// This effect runs when the component is mounted and the capability is available.\n// It automatically handles unsubscribing when the component is unmounted.\nwatchEffect((onCleanup) => {\n if (sel.value) {\n const unsubscribe = sel.value.onCopyToClipboard((text) => {\n // Use the Clipboard API to write the text\n navigator.clipboard.writeText(text).catch((err) => {\n console.error('Failed to copy text to clipboard:', err);\n });\n });\n\n // Register the cleanup function to run on unmount or re-run\n onCleanup(unsubscribe);\n }\n});\n</script>\n\n<template>\n <!-- This component renders nothing to the DOM -->\n</template>\n"],"names":["_createElementBlock","_normalizeStyle","scale","_openBlock","_Fragment","_renderList","background"],"mappings":";;;;;AAOO,MAAM,yBAAyB,MAAM,cAA+B,gBAAgB,EAAE;AAMtF,MAAM,qBAAqB,MAAM,UAA2B,gBAAgB,EAAE;;;;;;;;;ACKrF,UAAM,QAAQ;AAId,UAAM,EAAE,UAAU,IAAI,IAAI,uBAAuB;AACjD,UAAM,EAAE,UAAU,GAAG,IAAI,gCAAgC;AACnD,UAAA,EAAE,aAAa,mBAAmB,EAAE,WAAW,MAAM,WAAW;AACtE,UAAM,EAAE,WAAW,aAAa,IAAI,UAAU;AAExC,UAAA,QAAQ,IAAY,EAAE;AACtB,UAAA,eAAe,IAAiB,IAAI;AAG1C,gBAAY,CAAC,cAAc;AACzB,UAAI,IAAI,OAAO;AACb,cAAM,cAAc,IAAI,MAAM,kBAAkB,MAAM;;AAC9C,gBAAA,QAAO,QAAG,UAAH,mBAAU;AACvB,cAAI,SAAS,eAAe;AAC1B,kBAAM,QAAQ,IAAI,MAAO,yBAAyB,MAAM,SAAS;AACjE,yBAAa,QAAQ,IAAI,MAAO,uBAAuB,MAAM,SAAS;AAAA,UAAA,OACjE;AACL,kBAAM,QAAQ,CAAC;AACf,yBAAa,QAAQ;AAAA,UAAA;AAAA,QACvB,CACD;AACD,kBAAU,WAAW;AAAA,MAAA;AAAA,IACvB,CACD;AAGG,QAAA;AACJ,gBAAY,CAAC,cAAc;AACzB,UAAI,IAAI,OAAO;AACb,cAAM,OAAO,IAAI,MAAM,YAAY,MAAM,SAAS;AAClD,aAAK,KAAK,CAAC,MAAO,WAAW,GAAI,MAAM;AAEvC,kBAAU,MAAM;AACd,eAAK,MAAM;AAAA,YACT,MAAM,aAAa;AAAA,YACnB,SAAS;AAAA,UAAA,CACV;AAAA,QAAA,CACF;AAAA,MAAA;AAAA,IACH,CACD;AAED,UAAM,WAAW;AAAA,MACf,OAAwD;AAAA,QACtD,eAAe,CAAC,OAAO,MAAM,WAAW;AAClC,cAAA,CAAC,IAAI,SAAS,CAAC,IAAI,MAAM,iBAAiB,MAAM,EAAG;AACvD,cAAI,MAAM,MAAM;AAChB,gBAAM,OAAO,IAAI,MAAM,YAAY,MAAM,SAAS;AAC7C,eAAA,KAAK,CAAC,QAAQ;AACX,kBAAA,IAAI,QAAQ,KAAK,KAAK;AAC5B,gBAAI,MAAM,GAAI,KAAI,MAAO,MAAM,MAAM,WAAW,CAAC;AAAA,aAChD,MAAM;AAAA,QACX;AAAA,QACA,eAAe,CAAC,OAAO,MAAM,WAAW;AAClC,cAAA,CAAC,IAAI,SAAS,CAAC,IAAI,MAAM,iBAAiB,MAAM,EAAG;AACvD,gBAAM,IAAI,WAAW,QAAQ,UAAU,KAAK,IAAI;AAChD,cAAI,MAAM,IAAI;AACF,sBAAA,kBAAkB,QAAQ,EAAE;AACtC,gBAAI,MAAM,OAAO,MAAM,WAAW,CAAC;AAAA,UAAA,OAC9B;AACL,yBAAa,gBAAgB;AAAA,UAAA;AAAA,QAEjC;AAAA,QACA,aAAa,CAAC,QAAQ,MAAM,WAAW;AACjC,cAAA,CAAC,IAAI,SAAS,CAAC,IAAI,MAAM,iBAAiB,MAAM,EAAG;AACvD,cAAI,MAAM,IAAI;AAAA,QAChB;AAAA,QACA,oBAAoB,CAAC,WAAW;AAC1B,cAAA,CAAC,IAAI,SAAS,CAAC,IAAI,MAAM,iBAAiB,MAAM,EAAG;AACvD,cAAI,MAAM,MAAM;AAAA,QAAA;AAAA,MAEpB;AAAA,IACF;AAGA,gBAAY,CAAC,cAAc;AACzB,UAAI,UAAU;AACN,cAAA,UAAU,SAAS,SAAS,KAAK;AACnC,YAAA,mBAAmB,OAAO;AAAA,MAAA;AAAA,IAChC,CACD;;aAKS,aAAY,sBADpBA,mBAyBM,OAAA;AAAA;QAvBH,OAAKC,eAAA;AAAA;UAA+C,MAAA,GAAA,aAAA,MAAa,OAAO,IAAIC,KAAK,KAAA;AAAA,UAAoB,KAAA,GAAA,aAAA,MAAa,OAAO,IAAIA,KAAK,KAAA;AAAA,UAAsB,OAAA,GAAA,aAAA,MAAa,KAAK,QAAQA,KAAK,KAAA;AAAA,UAAuB,QAAA,GAAA,aAAA,MAAa,KAAK,SAASA,KAAK,KAAA;AAAA;;;;;SAW/OC,UAAA,IAAA,GAAAH,mBAWEI,UAVoB,MAAAC,WAAA,MAAA,OAAZ,CAAA,MAAM,MAAC;8BADjBL,mBAWE,OAAA;AAAA,YATC,KAAK;AAAA,YACL,OAAKC,eAAA;AAAA;wBAAoD,KAAK,OAAO,IAAI,aAAY,MAAC,OAAO,KAAKC,KAAK,KAAA;AAAA,uBAAuB,KAAK,OAAO,IAAI,aAAY,MAAC,OAAO,KAAKA,KAAK,KAAA;AAAA,cAAwB,OAAA,GAAA,KAAK,KAAK,QAAQA,KAAK,KAAA;AAAA,cAAyB,QAAA,GAAA,KAAK,KAAK,SAASA,KAAK,KAAA;AAAA,0BAA0BI,KAAU;AAAA;;;;;;;;;;ACrHvT,UAAM,EAAE,UAAU,IAAI,IAAI,uBAAuB;AAIjD,gBAAY,CAAC,cAAc;AACzB,UAAI,IAAI,OAAO;AACb,cAAM,cAAc,IAAI,MAAM,kBAAkB,CAAC,SAAS;AAExD,oBAAU,UAAU,UAAU,IAAI,EAAE,MAAM,CAAC,QAAQ;AACzC,oBAAA,MAAM,qCAAqC,GAAG;AAAA,UAAA,CACvD;AAAA,QAAA,CACF;AAGD,kBAAU,WAAW;AAAA,MAAA;AAAA,IACvB,CACD;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/vue/hooks/use-selection.ts","../../src/vue/components/selection-layer.vue","../../src/vue/components/copy-to-clipboard.vue","../../src/vue/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { SelectionPlugin } from '@embedpdf/plugin-selection';\n\n/**\n * Hook to get the selection plugin's capability API.\n * This provides methods for controlling and listening to selection events.\n */\nexport const useSelectionCapability = () => useCapability<SelectionPlugin>(SelectionPlugin.id);\n\n/**\n * Hook to get the raw selection plugin instance.\n * Useful for accessing plugin-specific properties or methods not exposed in the capability.\n */\nexport const useSelectionPlugin = () => usePlugin<SelectionPlugin>(SelectionPlugin.id);\n","<template>\n <div\n v-if=\"boundingRect\"\n :style=\"{\n position: 'absolute',\n left: `${boundingRect.origin.x * scale}px`,\n top: `${boundingRect.origin.y * scale}px`,\n width: `${boundingRect.size.width * scale}px`,\n height: `${boundingRect.size.height * scale}px`,\n mixBlendMode: 'multiply',\n isolation: 'isolate',\n pointerEvents: 'none',\n }\"\n >\n <div\n v-for=\"(rect, i) in rects\"\n :key=\"i\"\n :style=\"{\n position: 'absolute',\n left: `${(rect.origin.x - boundingRect.origin.x) * scale}px`,\n top: `${(rect.origin.y - boundingRect.origin.y) * scale}px`,\n width: `${rect.size.width * scale}px`,\n height: `${rect.size.height * scale}px`,\n background: background,\n }\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted } from 'vue';\nimport type { Rect } from '@embedpdf/models';\nimport { useSelectionCapability } from '../hooks/use-selection';\n\ninterface Props {\n pageIndex: number;\n scale: number;\n background?: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n background: 'rgba(33, 150, 243)',\n});\n\nconst { provides: sel } = useSelectionCapability();\nconst rects = ref<Rect[]>([]);\nconst boundingRect = ref<Rect | null>(null);\n\nlet unregister: (() => void) | undefined;\n\nonMounted(() => {\n if (!sel.value) return;\n\n unregister = sel.value.registerSelectionOnPage({\n pageIndex: props.pageIndex,\n onRectsChange: ({ rects: newRects, boundingRect: newBoundingRect }) => {\n rects.value = newRects;\n boundingRect.value = newBoundingRect;\n },\n });\n});\n\nonUnmounted(() => {\n unregister?.();\n});\n</script>\n","<script setup lang=\"ts\">\nimport { watchEffect } from 'vue';\nimport { useSelectionCapability } from '../hooks';\n\nconst { provides: sel } = useSelectionCapability();\n\n// This effect runs when the component is mounted and the capability is available.\n// It automatically handles unsubscribing when the component is unmounted.\nwatchEffect((onCleanup) => {\n if (sel.value) {\n const unsubscribe = sel.value.onCopyToClipboard((text) => {\n // Use the Clipboard API to write the text\n navigator.clipboard.writeText(text).catch((err) => {\n console.error('Failed to copy text to clipboard:', err);\n });\n });\n\n // Register the cleanup function to run on unmount or re-run\n onCleanup(unsubscribe);\n }\n});\n</script>\n\n<template>\n <!-- This component renders nothing to the DOM -->\n</template>\n","import { createPluginPackage } from '@embedpdf/core';\nimport { SelectionPluginPackage as BaseSelectionPluginPackage } from '@embedpdf/plugin-selection';\n\nimport { CopyToClipboard } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-selection';\n\nexport const SelectionPluginPackage = createPluginPackage(BaseSelectionPluginPackage)\n .addUtility(CopyToClipboard)\n .build();\n"],"names":["_createElementBlock","_normalizeStyle","scale","_openBlock","_Fragment","_renderList","background","BaseSelectionPluginPackage","CopyToClipboard"],"mappings":";;;;;AAOO,MAAM,yBAAyB,MAAM,cAA+B,gBAAgB,EAAE;AAMtF,MAAM,qBAAqB,MAAM,UAA2B,gBAAgB,EAAE;;;;;;;;;AC2BrF,UAAM,QAAQ;AAId,UAAM,EAAE,UAAU,IAAI,IAAI,uBAAuB;AAC3C,UAAA,QAAQ,IAAY,EAAE;AACtB,UAAA,eAAe,IAAiB,IAAI;AAEtC,QAAA;AAEJ,cAAU,MAAM;AACV,UAAA,CAAC,IAAI,MAAO;AAEH,mBAAA,IAAI,MAAM,wBAAwB;AAAA,QAC7C,WAAW,MAAM;AAAA,QACjB,eAAe,CAAC,EAAE,OAAO,UAAU,cAAc,sBAAsB;AACrE,gBAAM,QAAQ;AACd,uBAAa,QAAQ;AAAA,QAAA;AAAA,MACvB,CACD;AAAA,IAAA,CACF;AAED,gBAAY,MAAM;AACH;AAAA,IAAA,CACd;;aA9DS,aAAY,sBADpBA,mBAyBM,OAAA;AAAA;QAvBH,OAAKC,eAAA;AAAA;UAA+C,MAAA,GAAA,aAAA,MAAa,OAAO,IAAIC,KAAK,KAAA;AAAA,UAAoB,KAAA,GAAA,aAAA,MAAa,OAAO,IAAIA,KAAK,KAAA;AAAA,UAAsB,OAAA,GAAA,aAAA,MAAa,KAAK,QAAQA,KAAK,KAAA;AAAA,UAAuB,QAAA,GAAA,aAAA,MAAa,KAAK,SAASA,KAAK,KAAA;AAAA;;;;;SAW/OC,UAAA,IAAA,GAAAH,mBAWEI,UAVoB,MAAAC,WAAA,MAAA,OAAZ,CAAA,MAAM,MAAC;8BADjBL,mBAWE,OAAA;AAAA,YATC,KAAK;AAAA,YACL,OAAKC,eAAA;AAAA;wBAAoD,KAAK,OAAO,IAAI,aAAY,MAAC,OAAO,KAAKC,KAAK,KAAA;AAAA,uBAAuB,KAAK,OAAO,IAAI,aAAY,MAAC,OAAO,KAAKA,KAAK,KAAA;AAAA,cAAwB,OAAA,GAAA,KAAK,KAAK,QAAQA,KAAK,KAAA;AAAA,cAAyB,QAAA,GAAA,KAAK,KAAK,SAASA,KAAK,KAAA;AAAA,0BAA0BI,KAAU;AAAA;;;;;;;;;;ACbvT,UAAM,EAAE,UAAU,IAAI,IAAI,uBAAuB;AAIjD,gBAAY,CAAC,cAAc;AACzB,UAAI,IAAI,OAAO;AACb,cAAM,cAAc,IAAI,MAAM,kBAAkB,CAAC,SAAS;AAExD,oBAAU,UAAU,UAAU,IAAI,EAAE,MAAM,CAAC,QAAQ;AACzC,oBAAA,MAAM,qCAAqC,GAAG;AAAA,UAAA,CACvD;AAAA,QAAA,CACF;AAGD,kBAAU,WAAW;AAAA,MAAA;AAAA,IACvB,CACD;;;;;;ACXM,MAAM,yBAAyB,oBAAoBC,wBAA0B,EACjF,WAAWC,SAAe,EAC1B,MAAM;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/plugin-selection",
3
- "version": "1.0.20",
3
+ "version": "1.0.21",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -28,24 +28,24 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@embedpdf/models": "1.0.20"
31
+ "@embedpdf/models": "1.0.21"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/react": "^18.2.0",
35
35
  "typescript": "^5.0.0",
36
- "@embedpdf/core": "1.0.20",
37
36
  "@embedpdf/build": "1.0.0",
38
- "@embedpdf/plugin-viewport": "1.0.20",
39
- "@embedpdf/plugin-interaction-manager": "1.0.20"
37
+ "@embedpdf/plugin-viewport": "1.0.21",
38
+ "@embedpdf/plugin-interaction-manager": "1.0.21",
39
+ "@embedpdf/core": "1.0.21"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "react": ">=16.8.0",
43
43
  "react-dom": ">=16.8.0",
44
44
  "preact": "^10.26.4",
45
45
  "vue": ">=3.2.0",
46
- "@embedpdf/core": "1.0.20",
47
- "@embedpdf/plugin-interaction-manager": "1.0.20",
48
- "@embedpdf/plugin-viewport": "1.0.20"
46
+ "@embedpdf/core": "1.0.21",
47
+ "@embedpdf/plugin-viewport": "1.0.21",
48
+ "@embedpdf/plugin-interaction-manager": "1.0.21"
49
49
  },
50
50
  "files": [
51
51
  "dist",