superdoc 2.29.0-next.3 → 2.29.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 (175) hide show
  1. package/dist/chunks/{FindReplaceSurface-BKVHzhQ4.es.js → FindReplaceSurface-B_5ggdWg.es.js} +1 -1
  2. package/dist/chunks/{FindReplaceSurface-BNDrJ6VS.cjs → FindReplaceSurface-fVHxPXtn.cjs} +1 -1
  3. package/dist/chunks/{PasswordPromptSurface-6mF6Azda.es.js → PasswordPromptSurface-CZqhDQQ1.es.js} +1 -1
  4. package/dist/chunks/{PasswordPromptSurface-BNkaztaP.cjs → PasswordPromptSurface-x8GNmMJT.cjs} +1 -1
  5. package/dist/chunks/{PdfViewer-D4lVeOJu.es.js → PdfViewer-CW09MNrB.es.js} +70 -105
  6. package/dist/chunks/{PdfViewer-boENOZdF.cjs → PdfViewer-CkrAHpC-.cjs} +74 -109
  7. package/dist/chunks/{_plugin-vue_export-helper-6MBoygIY.cjs → _plugin-vue_export-helper-BkbCxNeT.cjs} +31 -7
  8. package/dist/chunks/{_plugin-vue_export-helper-CsJQtMvr.es.js → _plugin-vue_export-helper-DRPRMkeA.es.js} +20 -8
  9. package/dist/chunks/{constants-DpXuDx_g.cjs → constants-BeeNZoQp.cjs} +1 -1
  10. package/dist/chunks/{constants-B6VBlmKp.es.js → constants-BvNs_ybI.es.js} +1 -1
  11. package/dist/chunks/{create-super-doc-ui-BFt8agAI.es.js → create-super-doc-ui-Dc8dQAMc.es.js} +89 -137
  12. package/dist/chunks/{create-super-doc-ui-BAGOnYGM.cjs → create-super-doc-ui-L60GhVAX.cjs} +211 -259
  13. package/dist/collaboration-upgrade-engine.cjs +1 -1
  14. package/dist/collaboration-upgrade-engine.es.js +1 -1
  15. package/dist/document-api/src/capabilities/html-markdown-support.d.ts +4 -6
  16. package/dist/document-api/src/comments/comments.d.ts +2 -0
  17. package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
  18. package/dist/document-api/src/contract/operation-definitions.d.ts +2 -2
  19. package/dist/document-api/src/contract/operation-registry.d.ts +10 -9
  20. package/dist/document-api/src/index.d.ts +8 -7
  21. package/dist/document-api/src/insert/insert.d.ts +2 -2
  22. package/dist/document-api/src/replace/replace.d.ts +3 -2
  23. package/dist/document-api/src/types/address.d.ts +3 -0
  24. package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
  25. package/dist/document-api/src/write/write.d.ts +12 -6
  26. package/dist/public/ui-react.cjs +1 -1
  27. package/dist/public/ui-react.es.js +1 -1
  28. package/dist/public/ui-vue.cjs +1 -1
  29. package/dist/public/ui-vue.es.js +1 -1
  30. package/dist/public/ui.cjs +1 -1
  31. package/dist/public/ui.es.js +1 -1
  32. package/dist/style.css +1 -1
  33. package/dist/style.layered.css +1 -1
  34. package/dist/superdoc/src/SuperDoc.vue.d.ts +132 -58
  35. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +28 -13
  36. package/dist/superdoc/src/components/CommentsLayer/collect-removed-comment-ids.d.ts +11 -1
  37. package/dist/superdoc/src/components/CommentsLayer/collect-tracked-change-thread.d.ts +19 -2
  38. package/dist/superdoc/src/components/CommentsLayer/comment-urls.d.ts +1 -1
  39. package/dist/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts +23 -20
  40. package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +24 -23
  41. package/dist/superdoc/src/components/CommentsLayer/helpers.d.ts +1 -4
  42. package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +16 -2
  43. package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +28 -13
  44. package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +132 -45
  45. package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +62 -16
  46. package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +77 -17
  47. package/dist/superdoc/src/components/PdfViewer/pdf-viewer-types.d.ts +45 -0
  48. package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +80 -16
  49. package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +48 -13
  50. package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -15
  51. package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +13 -0
  52. package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +1 -5
  53. package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
  54. package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +16 -9
  55. package/dist/superdoc/src/composables/replace-continuation.d.ts +11 -15
  56. package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +11 -7
  57. package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +44 -18
  58. package/dist/superdoc/src/composables/use-document.d.ts +1210 -30
  59. package/dist/superdoc/src/composables/use-field.d.ts +88 -25
  60. package/dist/superdoc/src/composables/use-find-replace.d.ts +13 -3
  61. package/dist/superdoc/src/composables/use-password-prompt.d.ts +23 -24
  62. package/dist/superdoc/src/composables/use-viewport-fit.d.ts +62 -26
  63. package/dist/superdoc/src/composables/useUiFontFamily.d.ts +3 -11
  64. package/dist/superdoc/src/core/SuperDoc.d.ts +4 -4
  65. package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +9 -4
  66. package/dist/superdoc/src/core/collaboration/helpers.d.ts +20 -3
  67. package/dist/superdoc/src/core/collaboration/permissions.d.ts +15 -10
  68. package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +4 -3
  69. package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +2 -1
  70. package/dist/superdoc/src/core/config/merge-comments-config.d.ts +1 -5
  71. package/dist/superdoc/src/core/config/merge-defined.d.ts +3 -8
  72. package/dist/superdoc/src/core/config/normalize-hyperlinks-config.d.ts +7 -12
  73. package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +9 -12
  74. package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -12
  75. package/dist/superdoc/src/core/create-app.d.ts +13 -24
  76. package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +2 -1
  77. package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +2 -1
  78. package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -1
  79. package/dist/superdoc/src/core/editor-runtime/types.d.ts +2 -1
  80. package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +1 -1
  81. package/dist/superdoc/src/core/helpers/export.d.ts +3 -2
  82. package/dist/superdoc/src/core/helpers/file.d.ts +8 -45
  83. package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +6 -60
  84. package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -2
  85. package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -1
  86. package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -1
  87. package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -1
  88. package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +28 -61
  89. package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -1
  90. package/dist/superdoc/src/core/surface-manager.d.ts +21 -83
  91. package/dist/superdoc/src/core/types/index.d.ts +41 -23
  92. package/dist/superdoc/src/core/v2-integration/browser-peer-runtime.d.ts +5 -3
  93. package/dist/superdoc/src/core/v2-integration/cdn-engine-loader.d.ts +3 -13
  94. package/dist/superdoc/src/core/v2-integration/internal-vue-runtime.d.ts +64 -59
  95. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +10 -10
  96. package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +22 -208
  97. package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +163 -189
  98. package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +14 -1
  99. package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -1
  100. package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -1
  101. package/dist/superdoc/src/helpers/comment-focus.d.ts +21 -4
  102. package/dist/superdoc/src/helpers/deprecation.d.ts +5 -11
  103. package/dist/superdoc/src/helpers/interaction-trace.d.ts +7 -24
  104. package/dist/superdoc/src/helpers/mark-raw-component.d.ts +1 -0
  105. package/dist/superdoc/src/helpers/object-guards.d.ts +2 -5
  106. package/dist/superdoc/src/helpers/selection-source.d.ts +1 -1
  107. package/dist/superdoc/src/helpers/use-selection.d.ts +35 -15
  108. package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +8 -11
  109. package/dist/superdoc/src/helpers/v2-bulk-decision-event.d.ts +9 -7
  110. package/dist/superdoc/src/helpers/v2-keyboard-edit-rejection.d.ts +8 -7
  111. package/dist/superdoc/src/helpers/v2-mutation-exception.d.ts +12 -8
  112. package/dist/superdoc/src/helpers/v2-review-target.d.ts +11 -1
  113. package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +40 -14
  114. package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +14 -5
  115. package/dist/superdoc/src/icons.d.ts +11 -19
  116. package/dist/superdoc/src/internal/diagnostics/diagnostic-dedupe.d.ts +6 -15
  117. package/dist/superdoc/src/internal/diagnostics/translate-diagnostic.d.ts +6 -4
  118. package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +2 -2
  119. package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +4 -24
  120. package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +34 -0
  121. package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +34 -0
  122. package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +1 -1
  123. package/dist/superdoc/src/internal/toolbar/built-in/PageNumberMenu.vue.d.ts +25 -15
  124. package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +9 -3
  125. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +12 -14
  126. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +1 -11
  127. package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +9 -19
  128. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +14 -45
  129. package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +34 -17
  130. package/dist/superdoc/src/internal/toolbar/built-in/font-options.d.ts +15 -1
  131. package/dist/superdoc/src/internal/toolbar/built-in/font-typeahead.d.ts +37 -7
  132. package/dist/superdoc/src/internal/toolbar/built-in/format-negation.d.ts +10 -4
  133. package/dist/superdoc/src/internal/toolbar/built-in/general.d.ts +12 -1
  134. package/dist/superdoc/src/internal/toolbar/built-in/helpers.d.ts +9 -4
  135. package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +2 -2
  136. package/dist/superdoc/src/internal/toolbar/built-in/page-number-feedback.d.ts +4 -5
  137. package/dist/superdoc/src/internal/toolbar/built-in/scroll-helpers.d.ts +3 -4
  138. package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +10 -2
  139. package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +78 -145
  140. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +61 -61
  141. package/dist/superdoc/src/internal/toolbar/built-in/url-safety.d.ts +11 -3
  142. package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +110 -48
  143. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +11 -30
  144. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +4 -3
  145. package/dist/superdoc/src/internal/toolbar/image-upload.d.ts +29 -39
  146. package/dist/superdoc/src/internal/toolbar/toolbar-item-aliases.d.ts +1 -1
  147. package/dist/superdoc/src/public/browser-document-api.d.ts +5 -4
  148. package/dist/superdoc/src/public/index.d.cts +26 -0
  149. package/dist/superdoc/src/public/index.d.ts +13 -0
  150. package/dist/superdoc/src/public/ui/commands.d.ts +14 -13
  151. package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -1
  152. package/dist/superdoc/src/public/ui/entity-at.d.ts +2 -1
  153. package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
  154. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +2 -2
  155. package/dist/superdoc/src/public/ui/types.d.ts +1 -1
  156. package/dist/superdoc/src/stores/comments-store.d.ts +231 -105
  157. package/dist/superdoc/src/stores/helpers/comment-document-scope.d.ts +22 -0
  158. package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +30 -0
  159. package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +40 -0
  160. package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +48 -13
  161. package/dist/superdoc/src/stores/helpers/pending-selection-snapshot.d.ts +17 -0
  162. package/dist/superdoc/src/stores/helpers/tracked-change-compaction.d.ts +16 -0
  163. package/dist/superdoc/src/stores/helpers/tracked-change-decision.d.ts +45 -0
  164. package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +19 -0
  165. package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +0 -4
  166. package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +21 -24
  167. package/dist/superdoc/src/stores/superdoc-store.d.ts +694 -316
  168. package/dist/superdoc.cjs +1804 -2782
  169. package/dist/superdoc.es.js +1720 -2699
  170. package/dist-cdn/style.layered.css +1 -1
  171. package/dist-cdn/superdoc.min.css +1 -1
  172. package/dist-cdn/superdoc.min.js +42 -42
  173. package/package.json +3 -2
  174. package/dist/superdoc/src/internal/toolbar/index.d.ts +0 -10
  175. package/dist/superdoc/src/main.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { D as normalizeClass, F as openBlock, G as toDisplayString, N as onMounted, a as computed, at as withModifiers, c as createCommentVNode, h as defineComponent, it as withKeys, l as createElementBlock, t as _plugin_vue_export_helper_default, u as createElementVNode, z as ref } from "./_plugin-vue_export-helper-CsJQtMvr.es.js";
1
+ import { D as normalizeClass, F as openBlock, G as toDisplayString, N as onMounted, a as computed, at as withModifiers, c as createCommentVNode, h as defineComponent, it as withKeys, l as createElementBlock, t as _plugin_vue_export_helper_default, u as createElementVNode, z as ref } from "./_plugin-vue_export-helper-DRPRMkeA.es.js";
2
2
  //#region src/components/surfaces/FindReplaceSurface.vue?vue&type=script&setup=true&lang.ts
3
3
  var _hoisted_1 = ["onKeydown"];
4
4
  var _hoisted_2 = { class: "sd-find-replace__row" };
@@ -1,4 +1,4 @@
1
- const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-6MBoygIY.cjs");
1
+ const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-BkbCxNeT.cjs");
2
2
  //#region src/components/surfaces/FindReplaceSurface.vue?vue&type=script&setup=true&lang.ts
3
3
  var _hoisted_1 = ["onKeydown"];
4
4
  var _hoisted_2 = { class: "sd-find-replace__row" };
@@ -1,4 +1,4 @@
1
- import { F as openBlock, G as toDisplayString, a as computed, at as withModifiers, c as createCommentVNode, et as vModelText, h as defineComponent, it as withKeys, l as createElementBlock, rt as withDirectives, t as _plugin_vue_export_helper_default, u as createElementVNode, z as ref } from "./_plugin-vue_export-helper-CsJQtMvr.es.js";
1
+ import { F as openBlock, G as toDisplayString, a as computed, at as withModifiers, c as createCommentVNode, et as vModelText, h as defineComponent, it as withKeys, l as createElementBlock, rt as withDirectives, t as _plugin_vue_export_helper_default, u as createElementVNode, z as ref } from "./_plugin-vue_export-helper-DRPRMkeA.es.js";
2
2
  //#region src/components/surfaces/PasswordPromptSurface.vue?vue&type=script&setup=true&lang.ts
3
3
  var _hoisted_1 = ["onKeydown"];
4
4
  var _hoisted_2 = ["id"];
@@ -1,4 +1,4 @@
1
- const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-6MBoygIY.cjs");
1
+ const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-BkbCxNeT.cjs");
2
2
  //#region src/components/surfaces/PasswordPromptSurface.vue?vue&type=script&setup=true&lang.ts
3
3
  var _hoisted_1 = ["onKeydown"];
4
4
  var _hoisted_2 = ["id"];
@@ -1,141 +1,91 @@
1
- import { B as renderList, F as openBlock, N as onMounted, T as mergeProps, W as shallowRef, a as computed, c as createCommentVNode, j as onBeforeUnmount, k as normalizeStyle, l as createElementBlock, n as Fragment, p as createVNode, s as createBlock, t as _plugin_vue_export_helper_default, tt as watch, u as createElementVNode, w as markRaw, z as ref } from "./_plugin-vue_export-helper-CsJQtMvr.es.js";
1
+ import { B as renderList, F as openBlock, N as onMounted, T as mergeProps, W as shallowRef, a as computed, c as createCommentVNode, h as defineComponent, j as onBeforeUnmount, k as normalizeStyle, l as createElementBlock, n as Fragment, p as createVNode, s as createBlock, t as _plugin_vue_export_helper_default, tt as watch, u as createElementVNode, w as markRaw, z as ref } from "./_plugin-vue_export-helper-DRPRMkeA.es.js";
2
2
  import { t as isFiniteNumber } from "./is-finite-number-BpL4F38c.es.js";
3
- import { t as PDF_TO_CSS_UNITS } from "./constants-B6VBlmKp.es.js";
4
- //#region src/core/pdf/helpers/floor.js
3
+ import { t as PDF_TO_CSS_UNITS } from "./constants-BvNs_ybI.es.js";
4
+ //#region src/core/pdf/helpers/floor.ts
5
5
  var floor = (val, precision) => {
6
6
  const multiplier = 10 ** (precision || 0);
7
7
  return Math.floor(val * multiplier) / multiplier;
8
8
  };
9
9
  //#endregion
10
- //#region src/core/pdf/helpers/read-file.js
10
+ //#region src/core/pdf/helpers/read-file.ts
11
11
  var readFileAsArrayBuffer = (blob) => {
12
12
  return new Promise((resolve, reject) => {
13
13
  const reader = new FileReader();
14
- reader.onload = (event) => resolve(event.target.result);
14
+ reader.onload = () => {
15
+ if (reader.result instanceof ArrayBuffer) resolve(reader.result);
16
+ else reject(/* @__PURE__ */ new TypeError("FileReader did not produce an ArrayBuffer"));
17
+ };
15
18
  reader.onerror = reject;
16
- reader.readAsDataURL(blob);
19
+ reader.readAsArrayBuffer(blob);
17
20
  });
18
21
  };
19
22
  //#endregion
20
- //#region src/core/pdf/helpers/range.js
23
+ //#region src/core/pdf/helpers/range.ts
21
24
  var range = (start, end) => {
22
25
  const length = end - start;
23
26
  return Array.from({ length }, (_, i) => start + i);
24
27
  };
25
28
  //#endregion
26
- //#region src/core/pdf/pdf-adapter.js
27
- /**
28
- * @typedef {import('pdfjs-dist').PDFDocumentProxy} PDFDocumentProxy
29
- * @typedef {import('pdfjs-dist').PDFPageProxy} PDFPageProxy
30
- */
31
- /**
32
- * @typedef {'pdfjs'} AdapterType
33
- */
34
- /**
35
- * @typedef {Object} PDFConfig
36
- * @property {AdapterType} adapter
37
- * @property {any} [pdfLib]
38
- * @property {string} [workerSrc]
39
- * @property {boolean} [setWorker]
40
- */
41
- /**
42
- * @typedef {Object} PDFJSConfig
43
- * @property {any} pdfLib
44
- * @property {string} [workerSrc]
45
- * @property {boolean} [setWorker]
46
- */
47
- /**
48
- * @typedef {Object} RenderPagesOptions
49
- * @property {string} documentId
50
- * @property {PDFDocumentProxy} pdfDocument
51
- * @property {HTMLElement} viewerContainer
52
- * @property {function(string, ...any): void} [emit]
53
- */
54
- /**
55
- * @typedef {Object} PageSize
56
- * @property {number} width
57
- * @property {number} height
58
- */
59
- /**
60
- * @param {Partial<PDFConfig>} [config]
61
- * @returns {PDFConfig}
62
- */
29
+ //#region src/core/pdf/pdf-adapter.ts
30
+ var isObjectLike = (value) => (typeof value === "object" || typeof value === "function") && value !== null;
31
+ var REQUIRES_PDFJS = "PDFJSAdapter requires a pdf.js module as pdfLib";
32
+ var hasDocumentLoader = (value) => isObjectLike(value) && "getDocument" in value && typeof value.getDocument === "function";
33
+ var requireWorkerOptions = (value) => {
34
+ if (isObjectLike(value) && "GlobalWorkerOptions" in value && isObjectLike(value.GlobalWorkerOptions)) return value.GlobalWorkerOptions;
35
+ throw new TypeError(REQUIRES_PDFJS);
36
+ };
37
+ var requireVersion = (value) => {
38
+ if (isObjectLike(value) && "version" in value && typeof value.version === "string") return value.version;
39
+ throw new TypeError(REQUIRES_PDFJS);
40
+ };
63
41
  var createPDFConfig = (config) => {
64
42
  return {
65
43
  adapter: "pdfjs",
66
44
  ...config
67
45
  };
68
46
  };
69
- /**
70
- * @abstract
71
- */
72
47
  var PDFAdapter = class PDFAdapter {
73
- /**
74
- * @throws {Error}
75
- */
76
48
  constructor() {
77
49
  if (Object.getPrototypeOf(this).constructor === PDFAdapter) throw new Error("Abstract class should not be instantiated");
78
50
  }
79
51
  };
80
52
  var PDFJSAdapter = class extends PDFAdapter {
81
- /**
82
- * @param {PDFJSConfig} config
83
- */
84
53
  constructor(config) {
85
54
  super();
86
55
  this.pdfLib = config.pdfLib;
87
56
  this.workerSrc = config.workerSrc;
88
- if (config.setWorker) if (this.workerSrc) this.pdfLib.GlobalWorkerOptions.workerSrc = config.workerSrc;
89
- else this.pdfLib.GlobalWorkerOptions.workerSrc = getWorkerSrcFromCDN(this.pdfLib.version);
57
+ if (config.setWorker) {
58
+ const workerOptions = requireWorkerOptions(this.pdfLib);
59
+ workerOptions.workerSrc = this.workerSrc || getWorkerSrcFromCDN(requireVersion(this.pdfLib));
60
+ }
90
61
  }
91
- /**
92
- * @param {string | ArrayBuffer | Uint8Array} file
93
- * @returns {Promise<PDFDocumentProxy>}
94
- */
95
62
  async getDocument(file) {
96
- return await this.pdfLib.getDocument(file).promise;
63
+ const pdfLib = this.pdfLib;
64
+ if (!hasDocumentLoader(pdfLib)) throw new TypeError(REQUIRES_PDFJS);
65
+ return pdfLib.getDocument(file).promise;
97
66
  }
98
- /**
99
- * @param {PDFDocumentProxy} pdf
100
- * @param {number} firstPage
101
- * @param {number} lastPage
102
- * @returns {Promise<PDFPageProxy[]>}
103
- */
104
67
  async getPages(pdf, firstPage, lastPage) {
105
68
  const pagesPromises = range(firstPage, lastPage + 1).map((num) => pdf.getPage(num));
106
69
  return await Promise.all(pagesPromises);
107
70
  }
108
71
  };
109
72
  var PDFAdapterFactory = class {
110
- /**
111
- * @param {PDFJSConfig & {adapter: AdapterType}} config
112
- * @returns {PDFAdapter}
113
- * @throws {Error}
114
- */
115
73
  static create(config) {
116
- const adapters = {
117
- pdfjs: () => {
118
- return new PDFJSAdapter(config);
119
- },
120
- default: () => {
121
- throw new Error("Unsupported adapter");
122
- }
123
- };
124
- return (adapters[config.adapter] ?? adapters.default)();
74
+ const adapter = (/* @__PURE__ */ new Map([["pdfjs", () => new PDFJSAdapter(config)]])).get(config.adapter);
75
+ if (!adapter) throw new Error("Unsupported adapter");
76
+ return adapter();
125
77
  }
126
78
  };
127
- /**
128
- * @param {number} version
129
- * @returns {string}
130
- */
131
79
  function getWorkerSrcFromCDN(version) {
132
80
  return `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.min.mjs`;
133
81
  }
134
82
  //#endregion
135
- //#region src/components/PdfViewer/PdfViewerPage.vue
83
+ //#region src/components/PdfViewer/PdfViewerPage.vue?vue&type=script&setup=true&lang.ts
136
84
  var _hoisted_1$1 = ["data-page-id", "data-page-number"];
137
85
  var _hoisted_2 = { class: "sd-pdf-viewer-page__canvas-wrapper" };
138
- var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
86
+ //#endregion
87
+ //#region src/components/PdfViewer/PdfViewerPage.vue
88
+ var PdfViewerPage_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
139
89
  __name: "PdfViewerPage",
140
90
  props: {
141
91
  config: {
@@ -163,7 +113,7 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
163
113
  default: 2
164
114
  },
165
115
  documentEl: {
166
- type: [Object],
116
+ type: Object,
167
117
  default: null
168
118
  }
169
119
  },
@@ -178,11 +128,11 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
178
128
  setup(__props, { emit: __emit }) {
179
129
  const emit = __emit;
180
130
  const props = __props;
181
- const viewport = shallowRef(null);
131
+ const viewport = shallowRef(createInitialViewport());
182
132
  const pageRef = ref(null);
183
133
  const canvasRef = ref(null);
184
134
  const textLayerRef = ref(null);
185
- let renderTask;
135
+ let renderTask = null;
186
136
  const pageIdx = computed(() => props.pages.findIndex((page) => page.pageId === props.page.pageId));
187
137
  const pageNumber = computed(() => {
188
138
  if (pageIdx.value === -1) return 0;
@@ -243,7 +193,9 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
243
193
  function onMouseUp() {
244
194
  const selection = window.getSelection();
245
195
  if (!selection || selection.toString().length === 0) return;
246
- const bounds = getSelectedTextBoundingBox(props.documentEl?.value ?? props.documentEl ?? pageRef.value);
196
+ const container = props.documentEl ?? pageRef.value;
197
+ if (!container) return;
198
+ const bounds = getSelectedTextBoundingBox(container);
247
199
  if (!bounds) return;
248
200
  emit("selection-raw", {
249
201
  selectionBounds: bounds,
@@ -254,7 +206,7 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
254
206
  }
255
207
  function onMouseDown(event) {
256
208
  if (!event?.target) return;
257
- if (event.target.tagName !== "SPAN") emit("bypass-selection", event);
209
+ if (!(event.target instanceof Element) || event.target.tagName !== "SPAN") emit("bypass-selection", event);
258
210
  }
259
211
  function getPagePtSize() {
260
212
  const factor = PDF_TO_CSS_UNITS * props.outputScale;
@@ -278,16 +230,16 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
278
230
  function getScaleFactor() {
279
231
  return (props.scale ?? 1) * PDF_TO_CSS_UNITS;
280
232
  }
281
- function setInitialViewport() {
233
+ function createInitialViewport() {
282
234
  const { pdfjsPage } = props.page;
283
- viewport.value = pdfjsPage.getViewport({ scale: PDF_TO_CSS_UNITS * props.outputScale });
235
+ return pdfjsPage.getViewport({ scale: PDF_TO_CSS_UNITS * props.outputScale });
284
236
  }
285
237
  async function renderPage() {
286
238
  if (renderTask) return;
287
239
  const canvasElem = canvasRef.value;
288
240
  if (!canvasElem || !viewport.value) return;
289
241
  const renderContext = {
290
- canvasContext: canvasElem.getContext("2d"),
242
+ canvas: canvasElem,
291
243
  viewport: viewport.value
292
244
  };
293
245
  try {
@@ -349,7 +301,6 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
349
301
  watch(() => props.scale, () => {
350
302
  renderTextLayer();
351
303
  });
352
- setInitialViewport();
353
304
  onMounted(() => {
354
305
  render();
355
306
  });
@@ -378,8 +329,10 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
378
329
  }, null, 512)) : createCommentVNode("", true)], 44, _hoisted_1$1);
379
330
  };
380
331
  }
381
- }, [["__scopeId", "data-v-d7a9857d"]]);
382
- var PdfViewerDocument_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
332
+ }), [["__scopeId", "data-v-ba5c44f5"]]);
333
+ //#endregion
334
+ //#region src/components/PdfViewer/PdfViewerDocument.vue
335
+ var PdfViewerDocument_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
383
336
  __name: "PdfViewerDocument",
384
337
  props: {
385
338
  config: {
@@ -391,7 +344,10 @@ var PdfViewerDocument_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
391
344
  type: Array,
392
345
  required: true
393
346
  },
394
- scale: { type: Number },
347
+ scale: {
348
+ type: Number,
349
+ required: true
350
+ },
395
351
  hasTextLayer: {
396
352
  type: Boolean,
397
353
  default: false
@@ -448,11 +404,13 @@ var PdfViewerDocument_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
448
404
  }), 128))], 512)], 512);
449
405
  };
450
406
  }
451
- }, [["__scopeId", "data-v-2152178b"]]);
407
+ }), [["__scopeId", "data-v-92044cae"]]);
452
408
  //#endregion
453
- //#region src/components/PdfViewer/PdfViewer.vue
409
+ //#region src/components/PdfViewer/PdfViewer.vue?vue&type=script&setup=true&lang.ts
454
410
  var _hoisted_1 = { class: "sd-pdf-viewer__main" };
455
- var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
411
+ //#endregion
412
+ //#region src/components/PdfViewer/PdfViewer.vue
413
+ var PdfViewer_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
456
414
  __name: "PdfViewer",
457
415
  props: {
458
416
  config: {
@@ -486,8 +444,13 @@ var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
486
444
  setup(__props, { expose: __expose, emit: __emit }) {
487
445
  const emit = __emit;
488
446
  const props = __props;
447
+ function requirePdfLib(config) {
448
+ const { pdfLib } = config;
449
+ if (!pdfLib) throw new TypeError("PdfViewer requires modules.pdf.pdfLib");
450
+ return markRaw(pdfLib);
451
+ }
489
452
  const pdfConfig = createPDFConfig({
490
- pdfLib: markRaw(props.config.pdfLib),
453
+ pdfLib: requirePdfLib(props.config),
491
454
  workerSrc: props.config.workerSrc,
492
455
  setWorker: props.config.setWorker
493
456
  });
@@ -555,9 +518,11 @@ var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
555
518
  try {
556
519
  const pdfjsPages = await pdfAdapter.getPages(pdfjsDocument, firstPageNum, lastPageNum);
557
520
  const mapPages = (pdfjsPage) => {
521
+ const currentPdf = pdf.value;
522
+ if (!currentPdf) throw new TypeError("PdfViewer has no document to map pages for");
558
523
  return {
559
- documentId: pdf.value.documentId,
560
- pageId: generatePageId(pdf.value.documentId, pdfjsPage.pageNumber),
524
+ documentId: currentPdf.documentId,
525
+ pageId: generatePageId(currentPdf.documentId, pdfjsPage.pageNumber),
561
526
  pageNumber: pdfjsPage.pageNumber,
562
527
  pageIsRendered: false,
563
528
  pdfjsPage: markRaw(pdfjsPage)
@@ -610,6 +575,6 @@ var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
610
575
  }), null, 16)])], 512);
611
576
  };
612
577
  }
613
- }, [["__scopeId", "data-v-8708fac2"]]);
578
+ }), [["__scopeId", "data-v-469cc3d8"]]);
614
579
  //#endregion
615
580
  export { PdfViewer_default as default };