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.
- package/dist/chunks/{FindReplaceSurface-Dm043CZP.es.js → FindReplaceSurface-BKVHzhQ4.es.js} +34 -26
- package/dist/chunks/{FindReplaceSurface-BRs3JrCq.cjs → FindReplaceSurface-BNDrJ6VS.cjs} +34 -26
- package/dist/chunks/{PasswordPromptSurface-DGjmN7A-.es.js → PasswordPromptSurface-6mF6Azda.es.js} +6 -4
- package/dist/chunks/{PasswordPromptSurface-BpqP4pUa.cjs → PasswordPromptSurface-BNkaztaP.cjs} +6 -4
- package/dist/chunks/{PdfViewer-Cg072l5d.cjs → PdfViewer-DmSkZehl.cjs} +72 -100
- package/dist/chunks/{PdfViewer-JHXZQZ9x.es.js → PdfViewer-aOWhUVI7.es.js} +69 -97
- package/dist/chunks/{constants-DpXuDx_g.cjs → constants-BeeNZoQp.cjs} +1 -1
- package/dist/chunks/{constants-B6VBlmKp.es.js → constants-BvNs_ybI.es.js} +1 -1
- package/dist/chunks/{create-super-doc-ui-BbjHD1ul.es.js → create-super-doc-ui-DdT4b29f.es.js} +200 -65
- package/dist/chunks/{create-super-doc-ui-BfgYblyI.cjs → create-super-doc-ui-_SbygYQ4.cjs} +227 -68
- package/dist/chunks/is-finite-number-BEXgTRgc.cjs +11 -0
- package/dist/chunks/is-finite-number-BpL4F38c.es.js +6 -0
- package/dist/collaboration-upgrade-engine.cjs +1 -1
- package/dist/collaboration-upgrade-engine.es.js +1 -1
- package/dist/document-api/src/capabilities/html-markdown-support.d.ts +4 -6
- package/dist/document-api/src/comments/comments.d.ts +2 -0
- package/dist/document-api/src/contract/metadata-types.d.ts +1 -1
- package/dist/document-api/src/contract/operation-definitions.d.ts +3 -3
- package/dist/document-api/src/contract/operation-registry.d.ts +10 -9
- package/dist/document-api/src/index.d.ts +8 -7
- package/dist/document-api/src/insert/insert.d.ts +2 -2
- package/dist/document-api/src/lists/lists.d.ts +79 -79
- package/dist/document-api/src/replace/replace.d.ts +3 -2
- package/dist/document-api/src/tables/tables.d.ts +2 -1
- package/dist/document-api/src/types/address.d.ts +3 -0
- package/dist/document-api/src/types/table-operations.types.d.ts +1 -0
- package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
- package/dist/document-api/src/write/write.d.ts +18 -11
- package/dist/layout-engine/contracts/src/index.d.ts +1 -1
- package/dist/layout-engine/contracts/src/paragraph-visible-text.d.ts +3 -1
- package/dist/layout-engine/painters/dom/src/page-content.d.ts +1 -1
- package/dist/layout-engine/painters/dom/src/persistent-page-surface.d.ts +2 -0
- package/dist/public/ui-react.cjs +1 -1
- package/dist/public/ui-react.es.js +1 -1
- package/dist/public/ui-vue.cjs +1 -1
- package/dist/public/ui-vue.es.js +1 -1
- package/dist/public/ui.cjs +1 -1
- package/dist/public/ui.es.js +1 -1
- package/dist/style.css +1 -1
- package/dist/style.layered.css +1 -1
- package/dist/superdoc/src/SuperDoc.vue.d.ts +137 -61
- package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +533 -48
- package/dist/superdoc/src/components/CommentsLayer/CommentHeader.vue.d.ts +107 -23
- package/dist/superdoc/src/components/CommentsLayer/CommentInput.vue.d.ts +74 -14
- package/dist/superdoc/src/components/CommentsLayer/CommentsDropdown.vue.d.ts +55 -20
- package/dist/superdoc/src/components/CommentsLayer/FloatingComments.vue.d.ts +21 -8
- package/dist/superdoc/src/components/CommentsLayer/InternalDropdown.vue.d.ts +24 -8
- package/dist/superdoc/src/components/CommentsLayer/PdfCommentsLayer.vue.d.ts +5 -3
- package/dist/superdoc/src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue.d.ts +60 -12
- package/dist/superdoc/src/components/CommentsLayer/commentsList/commentsList.vue.d.ts +20 -6
- package/dist/superdoc/src/components/CommentsLayer/floating-comment-positioning.d.ts +24 -23
- package/dist/superdoc/src/components/CommentsLayer/tracked-change-threading.d.ts +0 -1
- package/dist/superdoc/src/components/CommentsLayer/use-comment.d.ts +29 -13
- package/dist/superdoc/src/components/PdfViewer/PdfViewer.vue.d.ts +132 -45
- package/dist/superdoc/src/components/PdfViewer/PdfViewerDocument.vue.d.ts +62 -16
- package/dist/superdoc/src/components/PdfViewer/PdfViewerPage.vue.d.ts +77 -17
- package/dist/superdoc/src/components/PdfViewer/pdf-viewer-types.d.ts +45 -0
- package/dist/superdoc/src/components/Whiteboard/WhiteboardLayer.vue.d.ts +81 -16
- package/dist/superdoc/src/components/Whiteboard/WhiteboardPage.vue.d.ts +49 -13
- package/dist/superdoc/src/components/Whiteboard/use-whiteboard.d.ts +30 -15
- package/dist/superdoc/src/components/Whiteboard/whiteboard-types.d.ts +11 -0
- package/dist/superdoc/src/components/general/Avatar.vue.d.ts +14 -0
- package/dist/superdoc/src/components/surfaces/FindReplaceSurface.vue.d.ts +58 -15
- package/dist/superdoc/src/components/surfaces/PasswordPromptSurface.vue.d.ts +58 -15
- package/dist/superdoc/src/components/surfaces/SurfaceDialog.vue.d.ts +27 -9
- package/dist/superdoc/src/components/surfaces/SurfaceExternalMount.vue.d.ts +53 -16
- package/dist/superdoc/src/components/surfaces/SurfaceFloating.vue.d.ts +14 -6
- package/dist/superdoc/src/components/surfaces/SurfaceHost.vue.d.ts +25 -15
- package/dist/superdoc/src/components/surfaces/focusable-selector.d.ts +1 -5
- package/dist/superdoc/src/components/surfaces/watermark-surface-runtime.d.ts +7 -7
- package/dist/superdoc/src/composables/find-shortcut-owner.d.ts +16 -9
- package/dist/superdoc/src/composables/replace-continuation.d.ts +11 -15
- package/dist/superdoc/src/composables/use-comment-small-screen.d.ts +11 -7
- package/dist/superdoc/src/composables/use-compact-comment-popover.d.ts +44 -18
- package/dist/superdoc/src/composables/use-document.d.ts +1210 -30
- package/dist/superdoc/src/composables/use-field.d.ts +88 -25
- package/dist/superdoc/src/composables/use-link-popover.d.ts +3 -3
- package/dist/superdoc/src/composables/use-password-prompt.d.ts +23 -24
- package/dist/superdoc/src/composables/use-superdoc-instance.d.ts +4 -1
- package/dist/superdoc/src/composables/use-viewport-fit.d.ts +40 -26
- package/dist/superdoc/src/composables/useUiFontFamily.d.ts +3 -11
- package/dist/superdoc/src/core/SuperDoc.d.ts +3 -8
- package/dist/superdoc/src/core/collaboration/collaboration-comments.d.ts +9 -4
- package/dist/superdoc/src/core/collaboration/helpers.d.ts +20 -3
- package/dist/superdoc/src/core/collaboration/permissions.d.ts +15 -9
- package/dist/superdoc/src/core/collaboration/resolve-v2-collaboration-target.d.ts +4 -3
- package/dist/superdoc/src/core/collaboration/v2-awareness-bridge.d.ts +2 -1
- package/dist/superdoc/src/core/config/merge-comments-config.d.ts +1 -5
- package/dist/superdoc/src/core/config/merge-defined.d.ts +3 -8
- package/dist/superdoc/src/core/config/normalize-hyperlinks-config.d.ts +7 -12
- package/dist/superdoc/src/core/config/normalize-surfaces-config.d.ts +9 -12
- package/dist/superdoc/src/core/config/normalize-ui-config.d.ts +1 -12
- package/dist/superdoc/src/core/create-app.d.ts +13 -24
- package/dist/superdoc/src/core/editor-runtime/conformance/fake-v2-runtime.d.ts +2 -1
- package/dist/superdoc/src/core/editor-runtime/editor-runtime-registry.d.ts +2 -1
- package/dist/superdoc/src/core/editor-runtime/index.d.ts +1 -1
- package/dist/superdoc/src/core/editor-runtime/types.d.ts +9 -1
- package/dist/superdoc/src/core/editor-runtime/v2/v2-editor-runtime-adapter.d.ts +2 -1
- package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +1 -1
- package/dist/superdoc/src/core/helpers/export.d.ts +3 -2
- package/dist/superdoc/src/core/helpers/file.d.ts +8 -45
- package/dist/superdoc/src/core/helpers/normalize-track-changes-config.d.ts +6 -60
- package/dist/superdoc/src/core/pdf/helpers/constants.d.ts +2 -2
- package/dist/superdoc/src/core/pdf/helpers/floor.d.ts +1 -1
- package/dist/superdoc/src/core/pdf/helpers/range.d.ts +1 -1
- package/dist/superdoc/src/core/pdf/helpers/read-file.d.ts +1 -1
- package/dist/superdoc/src/core/pdf/pdf-adapter.d.ts +24 -61
- package/dist/superdoc/src/core/superdoc-ui-owner.d.ts +1 -1
- package/dist/superdoc/src/core/surface-manager.d.ts +21 -83
- package/dist/superdoc/src/core/types/index.d.ts +14 -23
- package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +10 -10
- package/dist/superdoc/src/core/whiteboard/Whiteboard.d.ts +22 -208
- package/dist/superdoc/src/core/whiteboard/WhiteboardPage.d.ts +163 -189
- package/dist/superdoc/src/core/whiteboard/helpers/createTextarea.d.ts +14 -1
- package/dist/superdoc/src/core/whiteboard/helpers/flattenPoints.d.ts +1 -1
- package/dist/superdoc/src/core/whiteboard/helpers/getRandomId.d.ts +1 -1
- package/dist/superdoc/src/helpers/comment-focus.d.ts +21 -4
- package/dist/superdoc/src/helpers/deprecation.d.ts +5 -11
- package/dist/superdoc/src/helpers/interaction-trace.d.ts +7 -24
- package/dist/superdoc/src/helpers/is-finite-number.d.ts +1 -0
- package/dist/superdoc/src/helpers/mark-raw-component.d.ts +1 -0
- package/dist/superdoc/src/helpers/object-guards.d.ts +1 -5
- package/dist/superdoc/src/helpers/selection-source.d.ts +1 -1
- package/dist/superdoc/src/helpers/use-selection.d.ts +35 -15
- package/dist/superdoc/src/helpers/v2-author-required-rejection.d.ts +8 -11
- package/dist/superdoc/src/helpers/v2-bulk-decision-event.d.ts +9 -7
- package/dist/superdoc/src/helpers/v2-keyboard-edit-rejection.d.ts +8 -7
- package/dist/superdoc/src/helpers/v2-mutation-exception.d.ts +12 -8
- package/dist/superdoc/src/helpers/v2-review-target.d.ts +11 -1
- package/dist/superdoc/src/helpers/v2-selection-sync.d.ts +40 -14
- package/dist/superdoc/src/helpers/v2-typing-mutation-event.d.ts +14 -5
- package/dist/superdoc/src/icons.d.ts +11 -11
- package/dist/superdoc/src/internal/diagnostics/diagnostic-dedupe.d.ts +7 -16
- package/dist/superdoc/src/internal/toolbar/built-in/AIWriter.vue.d.ts +77 -16
- package/dist/superdoc/src/internal/toolbar/built-in/AlignmentButtons.vue.d.ts +5 -3
- package/dist/superdoc/src/internal/toolbar/built-in/ButtonGroup.vue.d.ts +85 -5
- package/dist/superdoc/src/internal/toolbar/built-in/DocumentMode.vue.d.ts +20 -6
- package/dist/superdoc/src/internal/toolbar/built-in/FontFamilyCombobox.vue.d.ts +32 -8
- package/dist/superdoc/src/internal/toolbar/built-in/FontSizeCombobox.vue.d.ts +32 -8
- package/dist/superdoc/src/internal/toolbar/built-in/IconGrid.vue.d.ts +44 -12
- package/dist/superdoc/src/internal/toolbar/built-in/IconGridRow.vue.d.ts +32 -9
- package/dist/superdoc/src/internal/toolbar/built-in/LinkInput.vue.d.ts +181 -36
- package/dist/superdoc/src/internal/toolbar/built-in/LinkedStyle.vue.d.ts +39 -10
- package/dist/superdoc/src/internal/toolbar/built-in/PageNumberMenu.vue.d.ts +133 -22
- package/dist/superdoc/src/internal/toolbar/built-in/SdTooltip.vue.d.ts +62 -23
- package/dist/superdoc/src/internal/toolbar/built-in/StyleButtonsList.vue.d.ts +39 -10
- package/dist/superdoc/src/internal/toolbar/built-in/TableActions.vue.d.ts +24 -6
- package/dist/superdoc/src/internal/toolbar/built-in/TableGrid.vue.d.ts +7 -3
- package/dist/superdoc/src/internal/toolbar/built-in/Toolbar.vue.d.ts +9 -3
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButton.vue.d.ts +101 -16
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButtonIcon.vue.d.ts +31 -10
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarComboBox.vue.d.ts +80 -11
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarDropdown.vue.d.ts +113 -33
- package/dist/superdoc/src/internal/toolbar/built-in/ToolbarSeparator.vue.d.ts +16 -6
- package/dist/superdoc/src/internal/toolbar/built-in/color-dropdown-helpers.d.ts +10 -20
- package/dist/superdoc/src/internal/toolbar/built-in/constants.d.ts +12 -45
- package/dist/superdoc/src/internal/toolbar/built-in/default-items.d.ts +34 -17
- package/dist/superdoc/src/internal/toolbar/built-in/list-style-buttons.d.ts +2 -2
- package/dist/superdoc/src/internal/toolbar/built-in/toolbar-focus-helpers.d.ts +10 -2
- package/dist/superdoc/src/internal/toolbar/built-in/toolbarIcons.d.ts +67 -0
- package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +61 -61
- package/dist/superdoc/src/internal/toolbar/built-in/use-toolbar-item.d.ts +110 -49
- package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +7 -27
- package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +4 -3
- package/dist/superdoc/src/internal/toolbar/toolbar-item-aliases.d.ts +1 -1
- package/dist/superdoc/src/public/browser-document-api.d.ts +5 -4
- package/dist/superdoc/src/public/index.d.cts +26 -0
- package/dist/superdoc/src/public/index.d.ts +13 -0
- package/dist/superdoc/src/public/ui/commands.d.ts +14 -13
- package/dist/superdoc/src/public/ui/create-super-doc-ui.d.ts +1 -1
- package/dist/superdoc/src/public/ui/entity-at.d.ts +2 -1
- package/dist/superdoc/src/public/ui/format-painter-helpers.d.ts +2 -8
- package/dist/superdoc/src/public/ui/style-match-patch.d.ts +2 -2
- package/dist/superdoc/src/public/ui/types.d.ts +1 -1
- package/dist/superdoc/src/stores/comments-store.d.ts +372 -123
- package/dist/superdoc/src/stores/helpers/comment-draft-text.d.ts +1 -0
- package/dist/superdoc/src/stores/helpers/comment-grouping.d.ts +30 -0
- package/dist/superdoc/src/stores/helpers/comment-identity.d.ts +40 -0
- package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +48 -13
- package/dist/superdoc/src/stores/helpers/tracked-change-identity.d.ts +19 -0
- package/dist/superdoc/src/stores/helpers/tracked-change-row-values.d.ts +21 -0
- package/dist/superdoc/src/stores/helpers/tracked-change-thread-index.d.ts +21 -24
- package/dist/superdoc/src/stores/superdoc-store.d.ts +1117 -370
- package/dist/superdoc.cjs +1923 -2838
- package/dist/superdoc.es.js +1863 -2783
- package/dist-cdn/style.layered.css +1 -1
- package/dist-cdn/superdoc.min.css +1 -1
- package/dist-cdn/superdoc.min.js +42 -42
- package/package.json +2 -2
- package/dist/superdoc/src/internal/toolbar/built-in/OverflowMenu.vue.d.ts +0 -104
- package/dist/superdoc/src/internal/toolbar/index.d.ts +0 -10
- 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
|
|
3
|
-
|
|
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.
|
|
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 = (
|
|
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.
|
|
19
|
+
reader.readAsArrayBuffer(blob);
|
|
16
20
|
});
|
|
17
21
|
};
|
|
18
22
|
//#endregion
|
|
19
|
-
//#region src/core/pdf/helpers/range.
|
|
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.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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)
|
|
88
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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(
|
|
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
|
|
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
|
|
237
|
+
function createInitialViewport() {
|
|
281
238
|
const { pdfjsPage } = props.page;
|
|
282
|
-
|
|
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
|
-
|
|
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/
|
|
384
|
-
var
|
|
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: {
|
|
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/
|
|
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
|
|
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:
|
|
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(
|
|
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:
|
|
563
|
-
pageId: generatePageId(
|
|
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
|
-
|
|
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
|
|
3
|
-
|
|
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.
|
|
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 = (
|
|
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.
|
|
19
|
+
reader.readAsArrayBuffer(blob);
|
|
16
20
|
});
|
|
17
21
|
};
|
|
18
22
|
//#endregion
|
|
19
|
-
//#region src/core/pdf/helpers/range.
|
|
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.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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)
|
|
88
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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(
|
|
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
|
|
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
|
|
239
|
+
function createInitialViewport() {
|
|
281
240
|
const { pdfjsPage } = props.page;
|
|
282
|
-
|
|
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
|
-
|
|
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-
|
|
381
|
-
|
|
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: {
|
|
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-
|
|
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
|
-
|
|
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:
|
|
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(
|
|
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:
|
|
559
|
-
pageId: generatePageId(
|
|
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-
|
|
584
|
+
}), [["__scopeId", "data-v-469cc3d8"]]);
|
|
613
585
|
//#endregion
|
|
614
586
|
export { PdfViewer_default as default };
|