Skip to content

Commit 0be9e91

Browse files
authored
Merge pull request #201 from graphieros/ft-jspdf-as-peer-dep
Ft jspdf as peer dep
2 parents 33872bb + 7cecf13 commit 0be9e91

File tree

7 files changed

+69
-35
lines changed

7 files changed

+69
-35
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -951,3 +951,7 @@ const textContent = createTSpans({
951951
v-html="textContent"
952952
/>
953953
```
954+
955+
## PDF generation
956+
957+
This package requires jspdf as a peer dependency. Please install it in your project if you intend on using the PDF printing feature.

package-lock.json

Lines changed: 40 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vue-data-ui",
33
"private": false,
4-
"version": "2.8.1",
4+
"version": "2.8.2-beta.0",
55
"type": "module",
66
"description": "A user-empowering data visualization Vue 3 components library for eloquent data storytelling",
77
"keywords": [
@@ -92,12 +92,17 @@
9292
"preprod": "node del-dev-dep.cjs && npm run clean && vite build --mode production && node copy-types.cjs && node copy-docs.cjs && node post-build.cjs"
9393
},
9494
"peerDependencies": {
95-
"vue": ">=3.3.0"
95+
"vue": ">=3.3.0",
96+
"jspdf": "^3.0.1"
97+
},
98+
"peerDependenciesMeta": {
99+
"jspdf": {
100+
"optional": true
101+
}
96102
},
97103
"devDependencies": {
98104
"@vitejs/plugin-vue": "^5.2.3",
99105
"cypress": "^14.0.3",
100-
"jspdf": "^3.0.1",
101106
"remove-attr": "^0.0.13",
102107
"sass": "^1.57.1",
103108
"simple-git": "^3.24.0",

src/components/vue-ui-annotator.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1172,7 +1172,6 @@
11721172
import { opacity, treeShake, convertConfigColors } from "../lib";
11731173
import { useConfig } from "../useConfig";
11741174
import { domToPng } from "../dom-to-png";
1175-
import JsPDF from "jspdf";
11761175
11771176
// TODO: add tooltips for all buttons
11781177
@@ -2852,6 +2851,13 @@ export default {
28522851
});
28532852
28542853
try {
2854+
let JsPDF;
2855+
try {
2856+
JsPDF = (await import("jspdf")).default;
2857+
} catch (e) {
2858+
throw new Error("jspdf is not installed.");
2859+
}
2860+
28552861
const pngDataUrl = await domToPng({
28562862
container: wrapper,
28572863
scale: 2,

src/pdf.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1-
import JsPDF from "jspdf";
21
import { domToPng } from "./dom-to-png";
32

43
export default async function pdf({ domElement, fileName, scale = 2, options = {} }) {
54
if (!domElement) return Promise.reject("No domElement provided");
65

6+
let JsPDF;
7+
8+
try {
9+
JsPDF = (await import('jspdf')).default;
10+
} catch (e) {
11+
return Promise.reject('jspdf is not installed.')
12+
}
13+
714
const a4 = {
815
width: 595.28,
916
height: 841.89,

types/vue-data-ui.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ declare module "vue-data-ui" {
212212
table?: string;
213213
tooltip?: string;
214214
};
215-
// html2canvas options
215+
// old html2canvas options
216216
print?: {
217217
allowTaint?: boolean;
218218
backgroundColor?: string;

vite.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default defineConfig({
3636
rollupOptions: {
3737
// make sure to externalize deps that shouldn't be bundled
3838
// into your library
39-
external: ["vue", "vue-data-ui"],
39+
external: ["vue", "vue-data-ui", "jspdf"],
4040
output: {
4141
// Provide global variables to use in the UMD build
4242
// for externalized deps

0 commit comments

Comments
 (0)