react-pdf-levelup 1.0.11 → 1.0.14
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/index.cjs +75 -0
- package/dist/index.d.cts +16 -1
- package/dist/index.d.ts +16 -1
- package/dist/index.js +74 -0
- package/package.json +3 -1
package/dist/index.cjs
CHANGED
|
@@ -78,6 +78,7 @@ __export(index_exports, {
|
|
|
78
78
|
Left: () => Left,
|
|
79
79
|
Mark: () => Mark,
|
|
80
80
|
P: () => P,
|
|
81
|
+
QRCode: () => QRCode_default,
|
|
81
82
|
Right: () => Right,
|
|
82
83
|
Row: () => Row,
|
|
83
84
|
Small: () => Small,
|
|
@@ -578,6 +579,79 @@ var Header = ({ children, style, fixed = false }) => {
|
|
|
578
579
|
var Footer = ({ children, style, fixed = false }) => {
|
|
579
580
|
return /* @__PURE__ */ import_react7.default.createElement(import_renderer7.View, { style: [styles7.footer, style], fixed }, typeof children === "string" ? /* @__PURE__ */ import_react7.default.createElement(import_renderer7.Text, null, children) : children);
|
|
580
581
|
};
|
|
582
|
+
|
|
583
|
+
// src/components/PDF/core/QRCode.tsx
|
|
584
|
+
var import_react8 = __toESM(require("react"), 1);
|
|
585
|
+
var import_react9 = require("react");
|
|
586
|
+
var import_renderer8 = require("@react-pdf/renderer");
|
|
587
|
+
var import_qrcode = __toESM(require("qrcode"), 1);
|
|
588
|
+
var styles8 = import_renderer8.StyleSheet.create({
|
|
589
|
+
qrContainer: {
|
|
590
|
+
position: "relative",
|
|
591
|
+
alignItems: "center",
|
|
592
|
+
justifyContent: "center"
|
|
593
|
+
},
|
|
594
|
+
logo: {
|
|
595
|
+
position: "absolute",
|
|
596
|
+
zIndex: 2
|
|
597
|
+
},
|
|
598
|
+
logoBackground: {
|
|
599
|
+
position: "absolute",
|
|
600
|
+
zIndex: 1
|
|
601
|
+
}
|
|
602
|
+
});
|
|
603
|
+
var QRCode = ({
|
|
604
|
+
value,
|
|
605
|
+
size = 150,
|
|
606
|
+
color = "#000000",
|
|
607
|
+
backgroundColor = "#ffffff",
|
|
608
|
+
errorCorrectionLevel = "M",
|
|
609
|
+
style,
|
|
610
|
+
includeMargin = true,
|
|
611
|
+
logo,
|
|
612
|
+
logoSize = 30,
|
|
613
|
+
logoBackgroundColor = "#ffffff",
|
|
614
|
+
logoMargin = 5
|
|
615
|
+
}) => {
|
|
616
|
+
const [qrDataURL, setQrDataURL] = (0, import_react9.useState)("");
|
|
617
|
+
(0, import_react9.useEffect)(() => {
|
|
618
|
+
const generateQRCode = async () => {
|
|
619
|
+
try {
|
|
620
|
+
const options = {
|
|
621
|
+
errorCorrectionLevel,
|
|
622
|
+
margin: includeMargin ? 4 : 0,
|
|
623
|
+
color: {
|
|
624
|
+
dark: color,
|
|
625
|
+
light: backgroundColor
|
|
626
|
+
},
|
|
627
|
+
width: size
|
|
628
|
+
};
|
|
629
|
+
const dataURL = await import_qrcode.default.toDataURL(value, options);
|
|
630
|
+
setQrDataURL(dataURL);
|
|
631
|
+
} catch (error) {
|
|
632
|
+
console.error("Error generating QR code:", error);
|
|
633
|
+
}
|
|
634
|
+
};
|
|
635
|
+
generateQRCode();
|
|
636
|
+
}, [value, size, color, backgroundColor, errorCorrectionLevel, includeMargin]);
|
|
637
|
+
const containerStyle = __spreadValues(__spreadProps(__spreadValues({}, styles8.qrContainer), {
|
|
638
|
+
width: size,
|
|
639
|
+
height: size
|
|
640
|
+
}), style);
|
|
641
|
+
const logoContainerSize = logoSize + logoMargin * 2;
|
|
642
|
+
const logoBackgroundStyle = __spreadProps(__spreadValues({}, styles8.logoBackground), {
|
|
643
|
+
width: logoContainerSize,
|
|
644
|
+
height: logoContainerSize,
|
|
645
|
+
backgroundColor: logoBackgroundColor,
|
|
646
|
+
borderRadius: logoContainerSize / 2
|
|
647
|
+
});
|
|
648
|
+
const logoStyle = __spreadProps(__spreadValues({}, styles8.logo), {
|
|
649
|
+
width: logoSize,
|
|
650
|
+
height: logoSize
|
|
651
|
+
});
|
|
652
|
+
return /* @__PURE__ */ import_react8.default.createElement(import_renderer8.View, { style: containerStyle }, qrDataURL ? /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(import_renderer8.Image, { src: qrDataURL || "/placeholder.svg", style: { width: size, height: size } }), logo && /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, /* @__PURE__ */ import_react8.default.createElement(import_renderer8.View, { style: logoBackgroundStyle }), /* @__PURE__ */ import_react8.default.createElement(import_renderer8.Image, { src: logo || "/placeholder.svg", style: logoStyle }))) : null);
|
|
653
|
+
};
|
|
654
|
+
var QRCode_default = QRCode;
|
|
581
655
|
// Annotate the CommonJS export names for ESM import in node:
|
|
582
656
|
0 && (module.exports = {
|
|
583
657
|
A,
|
|
@@ -611,6 +685,7 @@ var Footer = ({ children, style, fixed = false }) => {
|
|
|
611
685
|
Left,
|
|
612
686
|
Mark,
|
|
613
687
|
P,
|
|
688
|
+
QRCode,
|
|
614
689
|
Right,
|
|
615
690
|
Row,
|
|
616
691
|
Small,
|
package/dist/index.d.cts
CHANGED
|
@@ -113,4 +113,19 @@ interface PageElementProps {
|
|
|
113
113
|
declare const Header: React.FC<PageElementProps>;
|
|
114
114
|
declare const Footer: React.FC<PageElementProps>;
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
interface QRCodeProps {
|
|
117
|
+
value: string;
|
|
118
|
+
size?: number;
|
|
119
|
+
color?: string;
|
|
120
|
+
backgroundColor?: string;
|
|
121
|
+
errorCorrectionLevel?: "L" | "M" | "Q" | "H";
|
|
122
|
+
style?: any;
|
|
123
|
+
includeMargin?: boolean;
|
|
124
|
+
logo?: string;
|
|
125
|
+
logoSize?: number;
|
|
126
|
+
logoBackgroundColor?: string;
|
|
127
|
+
logoMargin?: number;
|
|
128
|
+
}
|
|
129
|
+
declare const QRCode: React.FC<QRCodeProps>;
|
|
130
|
+
|
|
131
|
+
export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Em, Footer, H1, H2, H3, H4, H5, H6, Header, Img, LayoutPDF, Left, Mark, P, QRCode, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U };
|
package/dist/index.d.ts
CHANGED
|
@@ -113,4 +113,19 @@ interface PageElementProps {
|
|
|
113
113
|
declare const Header: React.FC<PageElementProps>;
|
|
114
114
|
declare const Footer: React.FC<PageElementProps>;
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
interface QRCodeProps {
|
|
117
|
+
value: string;
|
|
118
|
+
size?: number;
|
|
119
|
+
color?: string;
|
|
120
|
+
backgroundColor?: string;
|
|
121
|
+
errorCorrectionLevel?: "L" | "M" | "Q" | "H";
|
|
122
|
+
style?: any;
|
|
123
|
+
includeMargin?: boolean;
|
|
124
|
+
logo?: string;
|
|
125
|
+
logoSize?: number;
|
|
126
|
+
logoBackgroundColor?: string;
|
|
127
|
+
logoMargin?: number;
|
|
128
|
+
}
|
|
129
|
+
declare const QRCode: React.FC<QRCodeProps>;
|
|
130
|
+
|
|
131
|
+
export { A, BR, Blockquote, Center, Col1, Col10, Col11, Col12, Col2, Col3, Col4, Col5, Col6, Col7, Col8, Col9, Container, Em, Footer, H1, H2, H3, H4, H5, H6, Header, Img, LayoutPDF, Left, Mark, P, QRCode, Right, Row, Small, Span, Strong, Table, Tbody, Td, Th, Thead, Tr, U };
|
package/dist/index.js
CHANGED
|
@@ -503,6 +503,79 @@ var Header = ({ children, style, fixed = false }) => {
|
|
|
503
503
|
var Footer = ({ children, style, fixed = false }) => {
|
|
504
504
|
return /* @__PURE__ */ React7.createElement(View4, { style: [styles7.footer, style], fixed }, typeof children === "string" ? /* @__PURE__ */ React7.createElement(Text4, null, children) : children);
|
|
505
505
|
};
|
|
506
|
+
|
|
507
|
+
// src/components/PDF/core/QRCode.tsx
|
|
508
|
+
import React8 from "react";
|
|
509
|
+
import { useEffect, useState } from "react";
|
|
510
|
+
import { Image as Image2, StyleSheet as StyleSheet8, View as View5 } from "@react-pdf/renderer";
|
|
511
|
+
import QRCodeLib from "qrcode";
|
|
512
|
+
var styles8 = StyleSheet8.create({
|
|
513
|
+
qrContainer: {
|
|
514
|
+
position: "relative",
|
|
515
|
+
alignItems: "center",
|
|
516
|
+
justifyContent: "center"
|
|
517
|
+
},
|
|
518
|
+
logo: {
|
|
519
|
+
position: "absolute",
|
|
520
|
+
zIndex: 2
|
|
521
|
+
},
|
|
522
|
+
logoBackground: {
|
|
523
|
+
position: "absolute",
|
|
524
|
+
zIndex: 1
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
var QRCode = ({
|
|
528
|
+
value,
|
|
529
|
+
size = 150,
|
|
530
|
+
color = "#000000",
|
|
531
|
+
backgroundColor = "#ffffff",
|
|
532
|
+
errorCorrectionLevel = "M",
|
|
533
|
+
style,
|
|
534
|
+
includeMargin = true,
|
|
535
|
+
logo,
|
|
536
|
+
logoSize = 30,
|
|
537
|
+
logoBackgroundColor = "#ffffff",
|
|
538
|
+
logoMargin = 5
|
|
539
|
+
}) => {
|
|
540
|
+
const [qrDataURL, setQrDataURL] = useState("");
|
|
541
|
+
useEffect(() => {
|
|
542
|
+
const generateQRCode = async () => {
|
|
543
|
+
try {
|
|
544
|
+
const options = {
|
|
545
|
+
errorCorrectionLevel,
|
|
546
|
+
margin: includeMargin ? 4 : 0,
|
|
547
|
+
color: {
|
|
548
|
+
dark: color,
|
|
549
|
+
light: backgroundColor
|
|
550
|
+
},
|
|
551
|
+
width: size
|
|
552
|
+
};
|
|
553
|
+
const dataURL = await QRCodeLib.toDataURL(value, options);
|
|
554
|
+
setQrDataURL(dataURL);
|
|
555
|
+
} catch (error) {
|
|
556
|
+
console.error("Error generating QR code:", error);
|
|
557
|
+
}
|
|
558
|
+
};
|
|
559
|
+
generateQRCode();
|
|
560
|
+
}, [value, size, color, backgroundColor, errorCorrectionLevel, includeMargin]);
|
|
561
|
+
const containerStyle = __spreadValues(__spreadProps(__spreadValues({}, styles8.qrContainer), {
|
|
562
|
+
width: size,
|
|
563
|
+
height: size
|
|
564
|
+
}), style);
|
|
565
|
+
const logoContainerSize = logoSize + logoMargin * 2;
|
|
566
|
+
const logoBackgroundStyle = __spreadProps(__spreadValues({}, styles8.logoBackground), {
|
|
567
|
+
width: logoContainerSize,
|
|
568
|
+
height: logoContainerSize,
|
|
569
|
+
backgroundColor: logoBackgroundColor,
|
|
570
|
+
borderRadius: logoContainerSize / 2
|
|
571
|
+
});
|
|
572
|
+
const logoStyle = __spreadProps(__spreadValues({}, styles8.logo), {
|
|
573
|
+
width: logoSize,
|
|
574
|
+
height: logoSize
|
|
575
|
+
});
|
|
576
|
+
return /* @__PURE__ */ React8.createElement(View5, { style: containerStyle }, qrDataURL ? /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(Image2, { src: qrDataURL || "/placeholder.svg", style: { width: size, height: size } }), logo && /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(View5, { style: logoBackgroundStyle }), /* @__PURE__ */ React8.createElement(Image2, { src: logo || "/placeholder.svg", style: logoStyle }))) : null);
|
|
577
|
+
};
|
|
578
|
+
var QRCode_default = QRCode;
|
|
506
579
|
export {
|
|
507
580
|
A,
|
|
508
581
|
BR,
|
|
@@ -535,6 +608,7 @@ export {
|
|
|
535
608
|
Left,
|
|
536
609
|
Mark,
|
|
537
610
|
P,
|
|
611
|
+
QRCode_default as QRCode,
|
|
538
612
|
Right,
|
|
539
613
|
Row,
|
|
540
614
|
Small,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-pdf-levelup",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"lucide-react": "^0.477.0",
|
|
27
27
|
"next": "14.2.24",
|
|
28
28
|
"next-transpile-modules": "^10.0.1",
|
|
29
|
+
"qrcode": "^1.5.4",
|
|
29
30
|
"react": "^18",
|
|
30
31
|
"react-dom": "^18",
|
|
31
32
|
"react-pdf": "^9.2.1"
|
|
@@ -33,6 +34,7 @@
|
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"@react-pdf/types": "^2.9.0",
|
|
35
36
|
"@types/node": "^20",
|
|
37
|
+
"@types/qrcode": "^1.5.5",
|
|
36
38
|
"@types/react": "^18",
|
|
37
39
|
"@types/react-dom": "^18",
|
|
38
40
|
"eslint": "^8",
|