superdoc 2.28.0 → 2.29.0-next.13

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 (192) hide show
  1. package/dist/chunks/{FindReplaceSurface-Dm043CZP.es.js → FindReplaceSurface-BKVHzhQ4.es.js} +34 -26
  2. package/dist/chunks/{FindReplaceSurface-BRs3JrCq.cjs → FindReplaceSurface-BNDrJ6VS.cjs} +34 -26
  3. package/dist/chunks/{PasswordPromptSurface-DGjmN7A-.es.js → PasswordPromptSurface-6mF6Azda.es.js} +6 -4
  4. package/dist/chunks/{PasswordPromptSurface-BpqP4pUa.cjs → PasswordPromptSurface-BNkaztaP.cjs} +6 -4
  5. package/dist/chunks/{PdfViewer-Cg072l5d.cjs → PdfViewer-DmSkZehl.cjs} +72 -100
  6. package/dist/chunks/{PdfViewer-JHXZQZ9x.es.js → PdfViewer-aOWhUVI7.es.js} +69 -97
  7. package/dist/chunks/{constants-DpXuDx_g.cjs → constants-BeeNZoQp.cjs} +1 -1
  8. package/dist/chunks/{constants-B6VBlmKp.es.js → constants-BvNs_ybI.es.js} +1 -1
  9. package/dist/chunks/{create-super-doc-ui-BbjHD1ul.es.js → create-super-doc-ui-DdT4b29f.es.js} +200 -65
  10. package/dist/chunks/{create-super-doc-ui-BfgYblyI.cjs → create-super-doc-ui-_SbygYQ4.cjs} +227 -68
  11. package/dist/chunks/is-finite-number-BEXgTRgc.cjs +11 -0
  12. package/dist/chunks/is-finite-number-BpL4F38c.es.js +6 -0
  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/metadata-types.d.ts +1 -1
  18. package/dist/document-api/src/contract/operation-definitions.d.ts +3 -3
  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/lists/lists.d.ts +79 -79
  23. package/dist/document-api/src/replace/replace.d.ts +3 -2
  24. package/dist/document-api/src/tables/tables.d.ts +2 -1
  25. package/dist/document-api/src/types/address.d.ts +3 -0
  26. package/dist/document-api/src/types/table-operations.types.d.ts +1 -0
  27. package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
  28. package/dist/document-api/src/write/write.d.ts +18 -11
  29. package/dist/layout-engine/contracts/src/index.d.ts +1 -1
  30. package/dist/layout-engine/contracts/src/paragraph-visible-text.d.ts +3 -1
  31. package/dist/layout-engine/painters/dom/src/page-content.d.ts +1 -1
  32. package/dist/layout-engine/painters/dom/src/persistent-page-surface.d.ts +2 -0
  33. package/dist/public/ui-react.cjs +1 -1
  34. package/dist/public/ui-react.es.js +1 -1
  35. package/dist/public/ui-vue.cjs +1 -1
  36. package/dist/public/ui-vue.es.js +1 -1
  37. package/dist/public/ui.cjs +1 -1
  38. package/dist/public/ui.es.js +1 -1
  39. package/dist/style.css +1 -1
  40. package/dist/style.layered.css +1 -1
  41. package/dist/superdoc/src/SuperDoc.vue.d.ts +137 -61
  42. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +533 -48
  43. package/dist/superdoc/src/components/CommentsLayer/CommentHeader.vue.d.ts +107 -23
  44. package/dist/superdoc/src/components/CommentsLayer/CommentInput.vue.d.ts +74 -14
  45. package/dist/superdoc/src/components/CommentsLayer/CommentsDropdown.vue.d.ts +55 -20
  46. package/dist/superdoc/src/components/CommentsLayer/FloatingComments.vue.d.ts +21 -8
  47. package/dist/superdoc/src/components/CommentsLayer/InternalDropdown.vue.d.ts +24 -8
  48. package/dist/superdoc/src/components/CommentsLayer/PdfCommentsLayer.vue.d.ts +5 -3
  49. package/dist/superdoc/src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue.d.ts +60 -12
  50. package/dist/superdoc/src/components/CommentsLayer/commentsList/commentsList.vue.d.ts +20 -6
  51. package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +24 -23
  52. package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +0 -1
  53. package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +29 -13
  54. package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +132 -45
  55. package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +62 -16
  56. package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +77 -17
  57. package/dist/superdoc/src/components/PdfViewer/pdf-viewer-types.d.ts +45 -0
  58. package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +81 -16
  59. package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +49 -13
  60. package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -15
  61. package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +11 -0
  62. package/dist/superdoc/src/components/general/Avatar.vue.d.ts +14 -0
  63. package/dist/superdoc/src/components/surfaces/FindReplaceSurface.vue.d.ts +58 -15
  64. package/dist/superdoc/src/components/surfaces/PasswordPromptSurface.vue.d.ts +58 -15
  65. package/dist/superdoc/src/components/surfaces/SurfaceDialog.vue.d.ts +27 -9
  66. package/dist/superdoc/src/components/surfaces/SurfaceExternalMount.vue.d.ts +53 -16
  67. package/dist/superdoc/src/components/surfaces/SurfaceFloating.vue.d.ts +14 -6
  68. package/dist/superdoc/src/components/surfaces/SurfaceHost.vue.d.ts +25 -15
  69. package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +1 -5
  70. package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
  71. package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +16 -9
  72. package/dist/superdoc/src/composables/replace-continuation.d.ts +11 -15
  73. package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +11 -7
  74. package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +44 -18
  75. package/dist/superdoc/src/composables/use-document.d.ts +1210 -30
  76. package/dist/superdoc/src/composables/use-field.d.ts +88 -25
  77. package/dist/superdoc/src/composables/use-link-popover.d.ts +3 -3
  78. package/dist/superdoc/src/composables/use-password-prompt.d.ts +23 -24
  79. package/dist/superdoc/src/composables/use-superdoc-instance.d.ts +4 -1
  80. package/dist/superdoc/src/composables/use-viewport-fit.d.ts +40 -26
  81. package/dist/superdoc/src/composables/useUiFontFamily.d.ts +3 -11
  82. package/dist/superdoc/src/core/SuperDoc.d.ts +3 -8
  83. package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +9 -4
  84. package/dist/superdoc/src/core/collaboration/helpers.d.ts +20 -3
  85. package/dist/superdoc/src/core/collaboration/permissions.d.ts +15 -9
  86. package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +4 -3
  87. package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +2 -1
  88. package/dist/superdoc/src/core/config/merge-comments-config.d.ts +1 -5
  89. package/dist/superdoc/src/core/config/merge-defined.d.ts +3 -8
  90. package/dist/superdoc/src/core/config/normalize-hyperlinks-config.d.ts +7 -12
  91. package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +9 -12
  92. package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -12
  93. package/dist/superdoc/src/core/create-app.d.ts +13 -24
  94. package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +2 -1
  95. package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +2 -1
  96. package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -1
  97. package/dist/superdoc/src/core/editor-runtime/types.d.ts +9 -1
  98. package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +2 -1
  99. package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +1 -1
  100. package/dist/superdoc/src/core/helpers/export.d.ts +3 -2
  101. package/dist/superdoc/src/core/helpers/file.d.ts +8 -45
  102. package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +6 -60
  103. package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -2
  104. package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -1
  105. package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -1
  106. package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -1
  107. package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +24 -61
  108. package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -1
  109. package/dist/superdoc/src/core/surface-manager.d.ts +21 -83
  110. package/dist/superdoc/src/core/types/index.d.ts +14 -23
  111. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +10 -10
  112. package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +22 -208
  113. package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +163 -189
  114. package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +14 -1
  115. package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -1
  116. package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -1
  117. package/dist/superdoc/src/helpers/comment-focus.d.ts +21 -4
  118. package/dist/superdoc/src/helpers/deprecation.d.ts +5 -11
  119. package/dist/superdoc/src/helpers/interaction-trace.d.ts +7 -24
  120. package/dist/superdoc/src/helpers/is-finite-number.d.ts +1 -0
  121. package/dist/superdoc/src/helpers/mark-raw-component.d.ts +1 -0
  122. package/dist/superdoc/src/helpers/object-guards.d.ts +1 -5
  123. package/dist/superdoc/src/helpers/selection-source.d.ts +1 -1
  124. package/dist/superdoc/src/helpers/use-selection.d.ts +35 -15
  125. package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +8 -11
  126. package/dist/superdoc/src/helpers/v2-bulk-decision-event.d.ts +9 -7
  127. package/dist/superdoc/src/helpers/v2-keyboard-edit-rejection.d.ts +8 -7
  128. package/dist/superdoc/src/helpers/v2-mutation-exception.d.ts +12 -8
  129. package/dist/superdoc/src/helpers/v2-review-target.d.ts +11 -1
  130. package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +40 -14
  131. package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +14 -5
  132. package/dist/superdoc/src/icons.d.ts +11 -11
  133. package/dist/superdoc/src/internal/diagnostics/diagnostic-dedupe.d.ts +7 -16
  134. package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +77 -16
  135. package/dist/superdoc/src/internal/toolbar/built-in/AlignmentButtons.vue.d.ts +5 -3
  136. package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +85 -5
  137. package/dist/superdoc/src/internal/toolbar/built-in/DocumentMode.vue.d.ts +20 -6
  138. package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +32 -8
  139. package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +32 -8
  140. package/dist/superdoc/src/internal/toolbar/built-in/IconGrid.vue.d.ts +44 -12
  141. package/dist/superdoc/src/internal/toolbar/built-in/IconGridRow.vue.d.ts +32 -9
  142. package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +181 -36
  143. package/dist/superdoc/src/internal/toolbar/built-in/LinkedStyle.vue.d.ts +39 -10
  144. package/dist/superdoc/src/internal/toolbar/built-in/PageNumberMenu.vue.d.ts +133 -22
  145. package/dist/superdoc/src/internal/toolbar/built-in/SdTooltip.vue.d.ts +62 -23
  146. package/dist/superdoc/src/internal/toolbar/built-in/StyleButtonsList.vue.d.ts +39 -10
  147. package/dist/superdoc/src/internal/toolbar/built-in/TableActions.vue.d.ts +24 -6
  148. package/dist/superdoc/src/internal/toolbar/built-in/TableGrid.vue.d.ts +7 -3
  149. package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +9 -3
  150. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButton.vue.d.ts +101 -16
  151. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButtonIcon.vue.d.ts +31 -10
  152. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +80 -11
  153. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +113 -33
  154. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarSeparator.vue.d.ts +16 -6
  155. package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +10 -20
  156. package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +12 -45
  157. package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +34 -17
  158. package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +2 -2
  159. package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +10 -2
  160. package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +67 -0
  161. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +61 -61
  162. package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +110 -49
  163. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +7 -27
  164. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +4 -3
  165. package/dist/superdoc/src/internal/toolbar/toolbar-item-aliases.d.ts +1 -1
  166. package/dist/superdoc/src/public/browser-document-api.d.ts +5 -4
  167. package/dist/superdoc/src/public/index.d.cts +26 -0
  168. package/dist/superdoc/src/public/index.d.ts +13 -0
  169. package/dist/superdoc/src/public/ui/commands.d.ts +14 -13
  170. package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -1
  171. package/dist/superdoc/src/public/ui/entity-at.d.ts +2 -1
  172. package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
  173. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +2 -2
  174. package/dist/superdoc/src/public/ui/types.d.ts +1 -1
  175. package/dist/superdoc/src/stores/comments-store.d.ts +372 -123
  176. package/dist/superdoc/src/stores/helpers/comment-draft-text.d.ts +1 -0
  177. package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +30 -0
  178. package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +40 -0
  179. package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +48 -13
  180. package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +19 -0
  181. package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +21 -0
  182. package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +21 -24
  183. package/dist/superdoc/src/stores/superdoc-store.d.ts +1117 -370
  184. package/dist/superdoc.cjs +1923 -2838
  185. package/dist/superdoc.es.js +1863 -2783
  186. package/dist-cdn/style.layered.css +1 -1
  187. package/dist-cdn/superdoc.min.css +1 -1
  188. package/dist-cdn/superdoc.min.js +42 -42
  189. package/package.json +2 -2
  190. package/dist/superdoc/src/internal/toolbar/built-in/OverflowMenu.vue.d.ts +0 -104
  191. package/dist/superdoc/src/internal/toolbar/index.d.ts +0 -10
  192. package/dist/superdoc/src/main.d.ts +0 -1
@@ -1,116 +1,75 @@
1
1
  const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper-6MBoygIY.cjs");
2
- const require_constants = require("./constants-DpXuDx_g.cjs");
3
- //#region src/core/pdf/helpers/floor.js
2
+ const require_is_finite_number = require("./is-finite-number-BEXgTRgc.cjs");
3
+ const require_constants = require("./constants-BeeNZoQp.cjs");
4
+ //#region src/core/pdf/helpers/floor.ts
4
5
  var floor = (val, precision) => {
5
6
  const multiplier = 10 ** (precision || 0);
6
7
  return Math.floor(val * multiplier) / multiplier;
7
8
  };
8
9
  //#endregion
9
- //#region src/core/pdf/helpers/read-file.js
10
+ //#region src/core/pdf/helpers/read-file.ts
10
11
  var readFileAsArrayBuffer = (blob) => {
11
12
  return new Promise((resolve, reject) => {
12
13
  const reader = new FileReader();
13
- 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
+ };
14
18
  reader.onerror = reject;
15
- reader.readAsDataURL(blob);
19
+ reader.readAsArrayBuffer(blob);
16
20
  });
17
21
  };
18
22
  //#endregion
19
- //#region src/core/pdf/helpers/range.js
23
+ //#region src/core/pdf/helpers/range.ts
20
24
  var range = (start, end) => {
21
25
  const length = end - start;
22
26
  return Array.from({ length }, (_, i) => start + i);
23
27
  };
24
28
  //#endregion
25
- //#region src/core/pdf/pdf-adapter.js
26
- /**
27
- * @typedef {import('pdfjs-dist').PDFDocumentProxy} PDFDocumentProxy
28
- * @typedef {import('pdfjs-dist').PDFPageProxy} PDFPageProxy
29
- */
30
- /**
31
- * @typedef {'pdfjs'} AdapterType
32
- */
33
- /**
34
- * @typedef {Object} PDFConfig
35
- * @property {AdapterType} adapter
36
- * @property {any} [pdfLib]
37
- * @property {string} [workerSrc]
38
- * @property {boolean} [setWorker]
39
- */
40
- /**
41
- * @typedef {Object} PDFJSConfig
42
- * @property {any} pdfLib
43
- * @property {string} [workerSrc]
44
- * @property {boolean} [setWorker]
45
- */
46
- /**
47
- * @typedef {Object} RenderPagesOptions
48
- * @property {string} documentId
49
- * @property {PDFDocumentProxy} pdfDocument
50
- * @property {HTMLElement} viewerContainer
51
- * @property {function(string, ...any): void} [emit]
52
- */
53
- /**
54
- * @typedef {Object} PageSize
55
- * @property {number} width
56
- * @property {number} height
57
- */
58
- /**
59
- * @param {Partial<PDFConfig>} [config]
60
- * @returns {PDFConfig}
61
- */
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
+ };
62
41
  var createPDFConfig = (config) => {
63
42
  return {
64
43
  adapter: "pdfjs",
65
44
  ...config
66
45
  };
67
46
  };
68
- /**
69
- * @abstract
70
- */
71
47
  var PDFAdapter = class PDFAdapter {
72
- /**
73
- * @throws {Error}
74
- */
75
48
  constructor() {
76
49
  if (Object.getPrototypeOf(this).constructor === PDFAdapter) throw new Error("Abstract class should not be instantiated");
77
50
  }
78
51
  };
79
52
  var PDFJSAdapter = class extends PDFAdapter {
80
- /**
81
- * @param {PDFJSConfig} config
82
- */
83
53
  constructor(config) {
84
54
  super();
85
55
  this.pdfLib = config.pdfLib;
86
56
  this.workerSrc = config.workerSrc;
87
- if (config.setWorker) if (this.workerSrc) this.pdfLib.GlobalWorkerOptions.workerSrc = config.workerSrc;
88
- 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
+ }
89
61
  }
90
- /**
91
- * @param {string | ArrayBuffer | Uint8Array} file
92
- * @returns {Promise<PDFDocumentProxy>}
93
- */
94
62
  async getDocument(file) {
95
- 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;
96
66
  }
97
- /**
98
- * @param {PDFDocumentProxy} pdf
99
- * @param {number} firstPage
100
- * @param {number} lastPage
101
- * @returns {Promise<PDFPageProxy[]>}
102
- */
103
67
  async getPages(pdf, firstPage, lastPage) {
104
68
  const pagesPromises = range(firstPage, lastPage + 1).map((num) => pdf.getPage(num));
105
69
  return await Promise.all(pagesPromises);
106
70
  }
107
71
  };
108
72
  var PDFAdapterFactory = class {
109
- /**
110
- * @param {PDFJSConfig & {adapter: AdapterType}} config
111
- * @returns {PDFAdapter}
112
- * @throws {Error}
113
- */
114
73
  static create(config) {
115
74
  const adapters = {
116
75
  pdfjs: () => {
@@ -123,18 +82,14 @@ var PDFAdapterFactory = class {
123
82
  return (adapters[config.adapter] ?? adapters.default)();
124
83
  }
125
84
  };
126
- /**
127
- * @param {number} version
128
- * @returns {string}
129
- */
130
85
  function getWorkerSrcFromCDN(version) {
131
86
  return `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.min.mjs`;
132
87
  }
133
88
  //#endregion
134
- //#region src/components/PdfViewer/PdfViewerPage.vue
89
+ //#region src/components/PdfViewer/PdfViewerPage.vue?vue&type=script&setup=true&lang.ts
135
90
  var _hoisted_1$1 = ["data-page-id", "data-page-number"];
136
91
  var _hoisted_2 = { class: "sd-pdf-viewer-page__canvas-wrapper" };
137
- var _sfc_main$2 = {
92
+ var PdfViewerPage_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ require__plugin_vue_export_helper.defineComponent({
138
93
  __name: "PdfViewerPage",
139
94
  props: {
140
95
  config: {
@@ -162,7 +117,7 @@ var _sfc_main$2 = {
162
117
  default: 2
163
118
  },
164
119
  documentEl: {
165
- type: [Object],
120
+ type: Object,
166
121
  default: null
167
122
  }
168
123
  },
@@ -177,11 +132,11 @@ var _sfc_main$2 = {
177
132
  setup(__props, { emit: __emit }) {
178
133
  const emit = __emit;
179
134
  const props = __props;
180
- const viewport = require__plugin_vue_export_helper.shallowRef(null);
135
+ const viewport = require__plugin_vue_export_helper.shallowRef(createInitialViewport());
181
136
  const pageRef = require__plugin_vue_export_helper.ref(null);
182
137
  const canvasRef = require__plugin_vue_export_helper.ref(null);
183
138
  const textLayerRef = require__plugin_vue_export_helper.ref(null);
184
- let renderTask;
139
+ let renderTask = null;
185
140
  const pageIdx = require__plugin_vue_export_helper.computed(() => props.pages.findIndex((page) => page.pageId === props.page.pageId));
186
141
  const pageNumber = require__plugin_vue_export_helper.computed(() => {
187
142
  if (pageIdx.value === -1) return 0;
@@ -242,7 +197,9 @@ var _sfc_main$2 = {
242
197
  function onMouseUp() {
243
198
  const selection = window.getSelection();
244
199
  if (!selection || selection.toString().length === 0) return;
245
- const bounds = getSelectedTextBoundingBox(props.documentEl?.value ?? props.documentEl ?? pageRef.value);
200
+ const container = props.documentEl ?? pageRef.value;
201
+ if (!container) return;
202
+ const bounds = getSelectedTextBoundingBox(container);
246
203
  if (!bounds) return;
247
204
  emit("selection-raw", {
248
205
  selectionBounds: bounds,
@@ -253,7 +210,7 @@ var _sfc_main$2 = {
253
210
  }
254
211
  function onMouseDown(event) {
255
212
  if (!event?.target) return;
256
- if (event.target.tagName !== "SPAN") emit("bypass-selection", event);
213
+ if (!(event.target instanceof Element) || event.target.tagName !== "SPAN") emit("bypass-selection", event);
257
214
  }
258
215
  function getPagePtSize() {
259
216
  const factor = require_constants.PDF_TO_CSS_UNITS * props.outputScale;
@@ -277,16 +234,16 @@ var _sfc_main$2 = {
277
234
  function getScaleFactor() {
278
235
  return (props.scale ?? 1) * require_constants.PDF_TO_CSS_UNITS;
279
236
  }
280
- function setInitialViewport() {
237
+ function createInitialViewport() {
281
238
  const { pdfjsPage } = props.page;
282
- viewport.value = pdfjsPage.getViewport({ scale: require_constants.PDF_TO_CSS_UNITS * props.outputScale });
239
+ return pdfjsPage.getViewport({ scale: require_constants.PDF_TO_CSS_UNITS * props.outputScale });
283
240
  }
284
241
  async function renderPage() {
285
242
  if (renderTask) return;
286
243
  const canvasElem = canvasRef.value;
287
244
  if (!canvasElem || !viewport.value) return;
288
245
  const renderContext = {
289
- canvasContext: canvasElem.getContext("2d"),
246
+ canvas: canvasElem,
290
247
  viewport: viewport.value
291
248
  };
292
249
  try {
@@ -348,7 +305,6 @@ var _sfc_main$2 = {
348
305
  require__plugin_vue_export_helper.watch(() => props.scale, () => {
349
306
  renderTextLayer();
350
307
  });
351
- setInitialViewport();
352
308
  require__plugin_vue_export_helper.onMounted(() => {
353
309
  render();
354
310
  });
@@ -377,11 +333,13 @@ var _sfc_main$2 = {
377
333
  }, null, 512)) : require__plugin_vue_export_helper.createCommentVNode("", true)], 44, _hoisted_1$1);
378
334
  };
379
335
  }
380
- };
381
- var PdfViewerPage_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$2, [["__scopeId", "data-v-d7a9857d"]]);
336
+ });
382
337
  //#endregion
383
- //#region src/components/PdfViewer/PdfViewerDocument.vue
384
- var _sfc_main$1 = {
338
+ //#region src/components/PdfViewer/PdfViewerPage.vue
339
+ var PdfViewerPage_default = /* @__PURE__ */ require__plugin_vue_export_helper._plugin_vue_export_helper_default(PdfViewerPage_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ba5c44f5"]]);
340
+ //#endregion
341
+ //#region src/components/PdfViewer/PdfViewerDocument.vue?vue&type=script&setup=true&lang.ts
342
+ var PdfViewerDocument_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ require__plugin_vue_export_helper.defineComponent({
385
343
  __name: "PdfViewerDocument",
386
344
  props: {
387
345
  config: {
@@ -393,7 +351,10 @@ var _sfc_main$1 = {
393
351
  type: Array,
394
352
  required: true
395
353
  },
396
- scale: { type: Number },
354
+ scale: {
355
+ type: Number,
356
+ required: true
357
+ },
397
358
  hasTextLayer: {
398
359
  type: Boolean,
399
360
  default: false
@@ -450,12 +411,14 @@ var _sfc_main$1 = {
450
411
  }), 128))], 512)], 512);
451
412
  };
452
413
  }
453
- };
454
- var PdfViewerDocument_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$1, [["__scopeId", "data-v-2152178b"]]);
414
+ });
455
415
  //#endregion
456
- //#region src/components/PdfViewer/PdfViewer.vue
416
+ //#region src/components/PdfViewer/PdfViewerDocument.vue
417
+ var PdfViewerDocument_default = /* @__PURE__ */ require__plugin_vue_export_helper._plugin_vue_export_helper_default(PdfViewerDocument_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-92044cae"]]);
418
+ //#endregion
419
+ //#region src/components/PdfViewer/PdfViewer.vue?vue&type=script&setup=true&lang.ts
457
420
  var _hoisted_1 = { class: "sd-pdf-viewer__main" };
458
- var _sfc_main = {
421
+ var PdfViewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ require__plugin_vue_export_helper.defineComponent({
459
422
  __name: "PdfViewer",
460
423
  props: {
461
424
  config: {
@@ -489,8 +452,13 @@ var _sfc_main = {
489
452
  setup(__props, { expose: __expose, emit: __emit }) {
490
453
  const emit = __emit;
491
454
  const props = __props;
455
+ function requirePdfLib(config) {
456
+ const { pdfLib } = config;
457
+ if (!pdfLib) throw new TypeError("PdfViewer requires modules.pdf.pdfLib");
458
+ return require__plugin_vue_export_helper.markRaw(pdfLib);
459
+ }
492
460
  const pdfConfig = createPDFConfig({
493
- pdfLib: require__plugin_vue_export_helper.markRaw(props.config.pdfLib),
461
+ pdfLib: requirePdfLib(props.config),
494
462
  workerSrc: props.config.workerSrc,
495
463
  setWorker: props.config.setWorker
496
464
  });
@@ -499,7 +467,7 @@ var _sfc_main = {
499
467
  const documentRef = require__plugin_vue_export_helper.ref(null);
500
468
  const pdf = require__plugin_vue_export_helper.ref(null);
501
469
  const pages = require__plugin_vue_export_helper.ref([]);
502
- const scale = require__plugin_vue_export_helper.ref(typeof props.initialScale === "number" && Number.isFinite(props.initialScale) && props.initialScale > 0 ? floor(props.initialScale, 2) : 1);
470
+ const scale = require__plugin_vue_export_helper.ref(require_is_finite_number.isFiniteNumber(props.initialScale) && props.initialScale > 0 ? floor(props.initialScale, 2) : 1);
503
471
  const totalPages = require__plugin_vue_export_helper.ref(0);
504
472
  const renderedPages = require__plugin_vue_export_helper.ref(0);
505
473
  const hasTextLayer = require__plugin_vue_export_helper.computed(() => props.config?.textLayer === true);
@@ -558,9 +526,11 @@ var _sfc_main = {
558
526
  try {
559
527
  const pdfjsPages = await pdfAdapter.getPages(pdfjsDocument, firstPageNum, lastPageNum);
560
528
  const mapPages = (pdfjsPage) => {
529
+ const currentPdf = pdf.value;
530
+ if (!currentPdf) throw new TypeError("PdfViewer has no document to map pages for");
561
531
  return {
562
- documentId: pdf.value.documentId,
563
- pageId: generatePageId(pdf.value.documentId, pdfjsPage.pageNumber),
532
+ documentId: currentPdf.documentId,
533
+ pageId: generatePageId(currentPdf.documentId, pdfjsPage.pageNumber),
564
534
  pageNumber: pdfjsPage.pageNumber,
565
535
  pageIsRendered: false,
566
536
  pdfjsPage: require__plugin_vue_export_helper.markRaw(pdfjsPage)
@@ -613,7 +583,9 @@ var _sfc_main = {
613
583
  }), null, 16)])], 512);
614
584
  };
615
585
  }
616
- };
617
- var PdfViewer_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main, [["__scopeId", "data-v-05c9d9b5"]]);
586
+ });
587
+ //#endregion
588
+ //#region src/components/PdfViewer/PdfViewer.vue
589
+ var PdfViewer_default = /* @__PURE__ */ require__plugin_vue_export_helper._plugin_vue_export_helper_default(PdfViewer_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-469cc3d8"]]);
618
590
  //#endregion
619
591
  exports.default = PdfViewer_default;
@@ -1,116 +1,75 @@
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";
2
- import { t as PDF_TO_CSS_UNITS } from "./constants-B6VBlmKp.es.js";
3
- //#region src/core/pdf/helpers/floor.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-CsJQtMvr.es.js";
2
+ import { t as isFiniteNumber } from "./is-finite-number-BpL4F38c.es.js";
3
+ import { t as PDF_TO_CSS_UNITS } from "./constants-BvNs_ybI.es.js";
4
+ //#region src/core/pdf/helpers/floor.ts
4
5
  var floor = (val, precision) => {
5
6
  const multiplier = 10 ** (precision || 0);
6
7
  return Math.floor(val * multiplier) / multiplier;
7
8
  };
8
9
  //#endregion
9
- //#region src/core/pdf/helpers/read-file.js
10
+ //#region src/core/pdf/helpers/read-file.ts
10
11
  var readFileAsArrayBuffer = (blob) => {
11
12
  return new Promise((resolve, reject) => {
12
13
  const reader = new FileReader();
13
- 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
+ };
14
18
  reader.onerror = reject;
15
- reader.readAsDataURL(blob);
19
+ reader.readAsArrayBuffer(blob);
16
20
  });
17
21
  };
18
22
  //#endregion
19
- //#region src/core/pdf/helpers/range.js
23
+ //#region src/core/pdf/helpers/range.ts
20
24
  var range = (start, end) => {
21
25
  const length = end - start;
22
26
  return Array.from({ length }, (_, i) => start + i);
23
27
  };
24
28
  //#endregion
25
- //#region src/core/pdf/pdf-adapter.js
26
- /**
27
- * @typedef {import('pdfjs-dist').PDFDocumentProxy} PDFDocumentProxy
28
- * @typedef {import('pdfjs-dist').PDFPageProxy} PDFPageProxy
29
- */
30
- /**
31
- * @typedef {'pdfjs'} AdapterType
32
- */
33
- /**
34
- * @typedef {Object} PDFConfig
35
- * @property {AdapterType} adapter
36
- * @property {any} [pdfLib]
37
- * @property {string} [workerSrc]
38
- * @property {boolean} [setWorker]
39
- */
40
- /**
41
- * @typedef {Object} PDFJSConfig
42
- * @property {any} pdfLib
43
- * @property {string} [workerSrc]
44
- * @property {boolean} [setWorker]
45
- */
46
- /**
47
- * @typedef {Object} RenderPagesOptions
48
- * @property {string} documentId
49
- * @property {PDFDocumentProxy} pdfDocument
50
- * @property {HTMLElement} viewerContainer
51
- * @property {function(string, ...any): void} [emit]
52
- */
53
- /**
54
- * @typedef {Object} PageSize
55
- * @property {number} width
56
- * @property {number} height
57
- */
58
- /**
59
- * @param {Partial<PDFConfig>} [config]
60
- * @returns {PDFConfig}
61
- */
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
+ };
62
41
  var createPDFConfig = (config) => {
63
42
  return {
64
43
  adapter: "pdfjs",
65
44
  ...config
66
45
  };
67
46
  };
68
- /**
69
- * @abstract
70
- */
71
47
  var PDFAdapter = class PDFAdapter {
72
- /**
73
- * @throws {Error}
74
- */
75
48
  constructor() {
76
49
  if (Object.getPrototypeOf(this).constructor === PDFAdapter) throw new Error("Abstract class should not be instantiated");
77
50
  }
78
51
  };
79
52
  var PDFJSAdapter = class extends PDFAdapter {
80
- /**
81
- * @param {PDFJSConfig} config
82
- */
83
53
  constructor(config) {
84
54
  super();
85
55
  this.pdfLib = config.pdfLib;
86
56
  this.workerSrc = config.workerSrc;
87
- if (config.setWorker) if (this.workerSrc) this.pdfLib.GlobalWorkerOptions.workerSrc = config.workerSrc;
88
- 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
+ }
89
61
  }
90
- /**
91
- * @param {string | ArrayBuffer | Uint8Array} file
92
- * @returns {Promise<PDFDocumentProxy>}
93
- */
94
62
  async getDocument(file) {
95
- 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;
96
66
  }
97
- /**
98
- * @param {PDFDocumentProxy} pdf
99
- * @param {number} firstPage
100
- * @param {number} lastPage
101
- * @returns {Promise<PDFPageProxy[]>}
102
- */
103
67
  async getPages(pdf, firstPage, lastPage) {
104
68
  const pagesPromises = range(firstPage, lastPage + 1).map((num) => pdf.getPage(num));
105
69
  return await Promise.all(pagesPromises);
106
70
  }
107
71
  };
108
72
  var PDFAdapterFactory = class {
109
- /**
110
- * @param {PDFJSConfig & {adapter: AdapterType}} config
111
- * @returns {PDFAdapter}
112
- * @throws {Error}
113
- */
114
73
  static create(config) {
115
74
  const adapters = {
116
75
  pdfjs: () => {
@@ -123,18 +82,16 @@ var PDFAdapterFactory = class {
123
82
  return (adapters[config.adapter] ?? adapters.default)();
124
83
  }
125
84
  };
126
- /**
127
- * @param {number} version
128
- * @returns {string}
129
- */
130
85
  function getWorkerSrcFromCDN(version) {
131
86
  return `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${version}/pdf.worker.min.mjs`;
132
87
  }
133
88
  //#endregion
134
- //#region src/components/PdfViewer/PdfViewerPage.vue
89
+ //#region src/components/PdfViewer/PdfViewerPage.vue?vue&type=script&setup=true&lang.ts
135
90
  var _hoisted_1$1 = ["data-page-id", "data-page-number"];
136
91
  var _hoisted_2 = { class: "sd-pdf-viewer-page__canvas-wrapper" };
137
- var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
92
+ //#endregion
93
+ //#region src/components/PdfViewer/PdfViewerPage.vue
94
+ var PdfViewerPage_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
138
95
  __name: "PdfViewerPage",
139
96
  props: {
140
97
  config: {
@@ -162,7 +119,7 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
162
119
  default: 2
163
120
  },
164
121
  documentEl: {
165
- type: [Object],
122
+ type: Object,
166
123
  default: null
167
124
  }
168
125
  },
@@ -177,11 +134,11 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
177
134
  setup(__props, { emit: __emit }) {
178
135
  const emit = __emit;
179
136
  const props = __props;
180
- const viewport = shallowRef(null);
137
+ const viewport = shallowRef(createInitialViewport());
181
138
  const pageRef = ref(null);
182
139
  const canvasRef = ref(null);
183
140
  const textLayerRef = ref(null);
184
- let renderTask;
141
+ let renderTask = null;
185
142
  const pageIdx = computed(() => props.pages.findIndex((page) => page.pageId === props.page.pageId));
186
143
  const pageNumber = computed(() => {
187
144
  if (pageIdx.value === -1) return 0;
@@ -242,7 +199,9 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
242
199
  function onMouseUp() {
243
200
  const selection = window.getSelection();
244
201
  if (!selection || selection.toString().length === 0) return;
245
- const bounds = getSelectedTextBoundingBox(props.documentEl?.value ?? props.documentEl ?? pageRef.value);
202
+ const container = props.documentEl ?? pageRef.value;
203
+ if (!container) return;
204
+ const bounds = getSelectedTextBoundingBox(container);
246
205
  if (!bounds) return;
247
206
  emit("selection-raw", {
248
207
  selectionBounds: bounds,
@@ -253,7 +212,7 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
253
212
  }
254
213
  function onMouseDown(event) {
255
214
  if (!event?.target) return;
256
- if (event.target.tagName !== "SPAN") emit("bypass-selection", event);
215
+ if (!(event.target instanceof Element) || event.target.tagName !== "SPAN") emit("bypass-selection", event);
257
216
  }
258
217
  function getPagePtSize() {
259
218
  const factor = PDF_TO_CSS_UNITS * props.outputScale;
@@ -277,16 +236,16 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
277
236
  function getScaleFactor() {
278
237
  return (props.scale ?? 1) * PDF_TO_CSS_UNITS;
279
238
  }
280
- function setInitialViewport() {
239
+ function createInitialViewport() {
281
240
  const { pdfjsPage } = props.page;
282
- viewport.value = pdfjsPage.getViewport({ scale: PDF_TO_CSS_UNITS * props.outputScale });
241
+ return pdfjsPage.getViewport({ scale: PDF_TO_CSS_UNITS * props.outputScale });
283
242
  }
284
243
  async function renderPage() {
285
244
  if (renderTask) return;
286
245
  const canvasElem = canvasRef.value;
287
246
  if (!canvasElem || !viewport.value) return;
288
247
  const renderContext = {
289
- canvasContext: canvasElem.getContext("2d"),
248
+ canvas: canvasElem,
290
249
  viewport: viewport.value
291
250
  };
292
251
  try {
@@ -348,7 +307,6 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
348
307
  watch(() => props.scale, () => {
349
308
  renderTextLayer();
350
309
  });
351
- setInitialViewport();
352
310
  onMounted(() => {
353
311
  render();
354
312
  });
@@ -377,8 +335,10 @@ var PdfViewerPage_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
377
335
  }, null, 512)) : createCommentVNode("", true)], 44, _hoisted_1$1);
378
336
  };
379
337
  }
380
- }, [["__scopeId", "data-v-d7a9857d"]]);
381
- var PdfViewerDocument_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
338
+ }), [["__scopeId", "data-v-ba5c44f5"]]);
339
+ //#endregion
340
+ //#region src/components/PdfViewer/PdfViewerDocument.vue
341
+ var PdfViewerDocument_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
382
342
  __name: "PdfViewerDocument",
383
343
  props: {
384
344
  config: {
@@ -390,7 +350,10 @@ var PdfViewerDocument_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
390
350
  type: Array,
391
351
  required: true
392
352
  },
393
- scale: { type: Number },
353
+ scale: {
354
+ type: Number,
355
+ required: true
356
+ },
394
357
  hasTextLayer: {
395
358
  type: Boolean,
396
359
  default: false
@@ -447,11 +410,13 @@ var PdfViewerDocument_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
447
410
  }), 128))], 512)], 512);
448
411
  };
449
412
  }
450
- }, [["__scopeId", "data-v-2152178b"]]);
413
+ }), [["__scopeId", "data-v-92044cae"]]);
451
414
  //#endregion
452
- //#region src/components/PdfViewer/PdfViewer.vue
415
+ //#region src/components/PdfViewer/PdfViewer.vue?vue&type=script&setup=true&lang.ts
453
416
  var _hoisted_1 = { class: "sd-pdf-viewer__main" };
454
- var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
417
+ //#endregion
418
+ //#region src/components/PdfViewer/PdfViewer.vue
419
+ var PdfViewer_default = /* @__PURE__ */ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
455
420
  __name: "PdfViewer",
456
421
  props: {
457
422
  config: {
@@ -485,8 +450,13 @@ var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
485
450
  setup(__props, { expose: __expose, emit: __emit }) {
486
451
  const emit = __emit;
487
452
  const props = __props;
453
+ function requirePdfLib(config) {
454
+ const { pdfLib } = config;
455
+ if (!pdfLib) throw new TypeError("PdfViewer requires modules.pdf.pdfLib");
456
+ return markRaw(pdfLib);
457
+ }
488
458
  const pdfConfig = createPDFConfig({
489
- pdfLib: markRaw(props.config.pdfLib),
459
+ pdfLib: requirePdfLib(props.config),
490
460
  workerSrc: props.config.workerSrc,
491
461
  setWorker: props.config.setWorker
492
462
  });
@@ -495,7 +465,7 @@ var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
495
465
  const documentRef = ref(null);
496
466
  const pdf = ref(null);
497
467
  const pages = ref([]);
498
- const scale = ref(typeof props.initialScale === "number" && Number.isFinite(props.initialScale) && props.initialScale > 0 ? floor(props.initialScale, 2) : 1);
468
+ const scale = ref(isFiniteNumber(props.initialScale) && props.initialScale > 0 ? floor(props.initialScale, 2) : 1);
499
469
  const totalPages = ref(0);
500
470
  const renderedPages = ref(0);
501
471
  const hasTextLayer = computed(() => props.config?.textLayer === true);
@@ -554,9 +524,11 @@ var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
554
524
  try {
555
525
  const pdfjsPages = await pdfAdapter.getPages(pdfjsDocument, firstPageNum, lastPageNum);
556
526
  const mapPages = (pdfjsPage) => {
527
+ const currentPdf = pdf.value;
528
+ if (!currentPdf) throw new TypeError("PdfViewer has no document to map pages for");
557
529
  return {
558
- documentId: pdf.value.documentId,
559
- pageId: generatePageId(pdf.value.documentId, pdfjsPage.pageNumber),
530
+ documentId: currentPdf.documentId,
531
+ pageId: generatePageId(currentPdf.documentId, pdfjsPage.pageNumber),
560
532
  pageNumber: pdfjsPage.pageNumber,
561
533
  pageIsRendered: false,
562
534
  pdfjsPage: markRaw(pdfjsPage)
@@ -609,6 +581,6 @@ var PdfViewer_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
609
581
  }), null, 16)])], 512);
610
582
  };
611
583
  }
612
- }, [["__scopeId", "data-v-05c9d9b5"]]);
584
+ }), [["__scopeId", "data-v-469cc3d8"]]);
613
585
  //#endregion
614
586
  export { PdfViewer_default as default };
@@ -1,4 +1,4 @@
1
- //#region src/core/pdf/helpers/constants.js
1
+ //#region src/core/pdf/helpers/constants.ts
2
2
  var PDF_TO_CSS_UNITS = 96 / 72;
3
3
  //#endregion
4
4
  Object.defineProperty(exports, "PDF_TO_CSS_UNITS", {
@@ -1,4 +1,4 @@
1
- //#region src/core/pdf/helpers/constants.js
1
+ //#region src/core/pdf/helpers/constants.ts
2
2
  var PDF_TO_CSS_UNITS = 96 / 72;
3
3
  //#endregion
4
4
  export { PDF_TO_CSS_UNITS as t };