react-pdf-levelup 3.2.8 → 3.3.1
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/README.md +43 -27
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
<img src="https://genarogg.github.io/media/react-pdf-levelup/logo-de-react-pdf-levelup.png" alt="react-pdf-levelup logo" width="160" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
|
+
<h4>
|
|
6
|
+
<strong>📢 Esta librería ha cambiado de nombre a <a href="https://www.npmjs.com/package/@react-pdf-levelup/core">@react-pdf-levelup/core</a> 📢</strong>
|
|
7
|
+
</h4>
|
|
8
|
+
|
|
9
|
+
|
|
5
10
|
# react-pdf-levelup
|
|
6
11
|
|
|
7
12
|
Generador de PDFs dinámicos con React. Esta herramienta te permite crear plantillas PDF con componentes JSX personalizados y previsualizarlas en tiempo real dentro de una aplicación web. Ideal para etiquetas, facturas, reportes, certificados, tablas y más.
|
|
8
13
|
|
|
9
|
-
# 🌐 **Playground en vivo:**
|
|
14
|
+
# 🌐 **Playground en vivo:**
|
|
15
|
+
|
|
10
16
|
[https://react-pdf-levelup.nimbux.cloud](https://react-pdf-levelup.nimbux.cloud)
|
|
11
17
|
or
|
|
12
18
|
[https://react-pdf-levelup.nimbux.cloud](https://react-pdf-levelup.nimbux.cloud)
|
|
@@ -34,18 +40,19 @@ npm install react-pdf-levelup
|
|
|
34
40
|
Genera un PDF en formato base64 a partir de un componente de React.
|
|
35
41
|
|
|
36
42
|
```typescript
|
|
37
|
-
import { generatePDF } from
|
|
43
|
+
import { generatePDF } from "react-pdf-levelup";
|
|
38
44
|
|
|
39
45
|
const pdfBase64 = await generatePDF({
|
|
40
46
|
template: MyPDFTemplate,
|
|
41
47
|
data: {
|
|
42
|
-
title:
|
|
43
|
-
items: [
|
|
44
|
-
}
|
|
48
|
+
title: "Mi Documento",
|
|
49
|
+
items: ["Item 1", "Item 2", "Item 3"],
|
|
50
|
+
},
|
|
45
51
|
});
|
|
46
52
|
```
|
|
47
53
|
|
|
48
54
|
**Parámetros:**
|
|
55
|
+
|
|
49
56
|
- `template`: Componente de React que define la estructura del PDF
|
|
50
57
|
- `data`: Datos opcionales que se pasarán al template
|
|
51
58
|
|
|
@@ -56,20 +63,22 @@ const pdfBase64 = await generatePDF({
|
|
|
56
63
|
Decodifica un PDF en base64 y permite descargarlo o abrirlo en una nueva pestaña.
|
|
57
64
|
|
|
58
65
|
```typescript
|
|
59
|
-
import { decodeBase64Pdf } from
|
|
66
|
+
import { decodeBase64Pdf } from "react-pdf-levelup";
|
|
60
67
|
|
|
61
68
|
// Después de generar el PDF
|
|
62
69
|
const pdfBase64 = await generatePDF({ template: MyTemplate });
|
|
63
70
|
|
|
64
71
|
// Descargar y abrir el PDF
|
|
65
|
-
decodeBase64Pdf(pdfBase64,
|
|
72
|
+
decodeBase64Pdf(pdfBase64, "mi-documento.pdf");
|
|
66
73
|
```
|
|
67
74
|
|
|
68
75
|
**Parámetros:**
|
|
76
|
+
|
|
69
77
|
- `base64`: String del PDF en formato base64
|
|
70
78
|
- `fileName`: Nombre del archivo para la descarga
|
|
71
79
|
|
|
72
80
|
**Funcionalidad:**
|
|
81
|
+
|
|
73
82
|
- Descarga automática del archivo PDF
|
|
74
83
|
- Abre el PDF en una nueva pestaña del navegador
|
|
75
84
|
- Limpia automáticamente los recursos de memoria
|
|
@@ -138,10 +147,10 @@ const handleGeneratePDF = async () => {
|
|
|
138
147
|
]
|
|
139
148
|
}
|
|
140
149
|
});
|
|
141
|
-
|
|
150
|
+
|
|
142
151
|
// Descargar y abrir el PDF
|
|
143
152
|
decodeBase64Pdf(pdfBase64, 'lista-tareas.pdf');
|
|
144
|
-
|
|
153
|
+
|
|
145
154
|
} catch (error) {
|
|
146
155
|
console.error('Error generando PDF:', error);
|
|
147
156
|
}
|
|
@@ -175,12 +184,12 @@ const InvoiceTemplate = ({ data }) => (
|
|
|
175
184
|
<Text style={styles.companyName}>{data.company}</Text>
|
|
176
185
|
<Text>Factura #{data.invoiceNumber}</Text>
|
|
177
186
|
</View>
|
|
178
|
-
|
|
187
|
+
|
|
179
188
|
<View style={styles.customerInfo}>
|
|
180
189
|
<Text>Cliente: {data.customer.name}</Text>
|
|
181
190
|
<Text>Email: {data.customer.email}</Text>
|
|
182
191
|
</View>
|
|
183
|
-
|
|
192
|
+
|
|
184
193
|
<View style={styles.itemsTable}>
|
|
185
194
|
{data.items.map((item, index) => (
|
|
186
195
|
<View key={index} style={styles.tableRow}>
|
|
@@ -190,7 +199,7 @@ const InvoiceTemplate = ({ data }) => (
|
|
|
190
199
|
</View>
|
|
191
200
|
))}
|
|
192
201
|
</View>
|
|
193
|
-
|
|
202
|
+
|
|
194
203
|
<View style={styles.total}>
|
|
195
204
|
<Text>Total: ${data.total}</Text>
|
|
196
205
|
</View>
|
|
@@ -208,16 +217,15 @@ const handlePDFGeneration = async () => {
|
|
|
208
217
|
try {
|
|
209
218
|
const pdfBase64 = await generatePDF({
|
|
210
219
|
template: MyTemplate,
|
|
211
|
-
data: myData
|
|
220
|
+
data: myData,
|
|
212
221
|
});
|
|
213
|
-
|
|
214
|
-
decodeBase64Pdf(pdfBase64,
|
|
215
|
-
|
|
222
|
+
|
|
223
|
+
decodeBase64Pdf(pdfBase64, "documento.pdf");
|
|
216
224
|
} catch (error) {
|
|
217
|
-
if (error.message.includes(
|
|
218
|
-
console.error(
|
|
225
|
+
if (error.message.includes("Template not provided")) {
|
|
226
|
+
console.error("Error: No se proporcionó un template válido");
|
|
219
227
|
} else {
|
|
220
|
-
console.error(
|
|
228
|
+
console.error("Error inesperado:", error.message);
|
|
221
229
|
}
|
|
222
230
|
}
|
|
223
231
|
};
|
|
@@ -229,11 +237,11 @@ const handlePDFGeneration = async () => {
|
|
|
229
237
|
const generatePDFOnly = async () => {
|
|
230
238
|
const pdfBase64 = await generatePDF({
|
|
231
239
|
template: MyTemplate,
|
|
232
|
-
data: myData
|
|
240
|
+
data: myData,
|
|
233
241
|
});
|
|
234
|
-
|
|
242
|
+
|
|
235
243
|
// Usar el base64 para otros propósitos (envío por API, almacenamiento, etc.)
|
|
236
|
-
console.log(
|
|
244
|
+
console.log("PDF generado:", pdfBase64);
|
|
237
245
|
return pdfBase64;
|
|
238
246
|
};
|
|
239
247
|
```
|
|
@@ -241,6 +249,7 @@ const generatePDFOnly = async () => {
|
|
|
241
249
|
## 🛠 Dependencias
|
|
242
250
|
|
|
243
251
|
Esta librería utiliza internamente:
|
|
252
|
+
|
|
244
253
|
- `@react-pdf/renderer` - Para la generación de PDFs
|
|
245
254
|
- `react` - Para los componentes JSX
|
|
246
255
|
|
|
@@ -299,7 +308,13 @@ import path from "path";
|
|
|
299
308
|
type ApiResponse = { data?: { pdf?: string } };
|
|
300
309
|
const ENDPOINT_API = "https://react-pdf-levelup.nimbux.cloud/api";
|
|
301
310
|
|
|
302
|
-
const petition = async ({
|
|
311
|
+
const petition = async ({
|
|
312
|
+
template,
|
|
313
|
+
data,
|
|
314
|
+
}: {
|
|
315
|
+
template: string;
|
|
316
|
+
data: any;
|
|
317
|
+
}): Promise<string> => {
|
|
303
318
|
const templatePath = path.join(process.cwd(), "src", "useExample", template);
|
|
304
319
|
const tsxCode = fs.readFileSync(templatePath, "utf-8");
|
|
305
320
|
const templateBase64 = Buffer.from(tsxCode, "utf-8").toString("base64");
|
|
@@ -309,17 +324,18 @@ const petition = async ({ template, data }: { template: string, data: any }): Pr
|
|
|
309
324
|
headers: { "Content-Type": "application/json" },
|
|
310
325
|
body: JSON.stringify({ template: templateBase64, data }),
|
|
311
326
|
});
|
|
312
|
-
if (!res.ok)
|
|
313
|
-
|
|
327
|
+
if (!res.ok)
|
|
328
|
+
throw new Error(`API error (${res.status}): ${await res.text()}`);
|
|
329
|
+
const json = (await res.json()) as ApiResponse;
|
|
314
330
|
return json?.data?.pdf ?? "";
|
|
315
|
-
}
|
|
331
|
+
};
|
|
316
332
|
|
|
317
333
|
const savePDF = (base64: string) => {
|
|
318
334
|
const buffer = Buffer.from(base64, "base64");
|
|
319
335
|
const outputPath = path.join(process.cwd(), "example.pdf");
|
|
320
336
|
fs.writeFileSync(outputPath, buffer);
|
|
321
337
|
console.log("PDF guardado:", outputPath);
|
|
322
|
-
}
|
|
338
|
+
};
|
|
323
339
|
```
|
|
324
340
|
|
|
325
341
|
### Self‑hosting propio
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var renderer=require('@react-pdf/renderer'),O=require('react'),jsxRuntime=require('react/jsx-runtime'),Dt=require('qrcode');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var O__default=/*#__PURE__*/_interopDefault(O);var Dt__default=/*#__PURE__*/_interopDefault(Dt);var ht=(e,t)=>{let o=atob(e),n=new Array(o.length);for(let a=0;a<o.length;a++)n[a]=o.charCodeAt(a);let i=new Uint8Array(n),s=new Blob([i],{type:"application/pdf"}),r=URL.createObjectURL(s);if(document===void 0){console.error("document is undefined, only works in browser context");return}let
|
|
2
|
-
`}),Te=({style:e})=>jsxRuntime.jsx(renderer.View,{style:[f.hr,e]}),Le=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[t],children:e}),Fe=({children:e,style:t,fixed:o=false})=>jsxRuntime.jsx(renderer.View,{style:[f.header,t],fixed:o,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e}),Ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:t,children:e});var D=O.createContext({cellHeight:22,textAlign:"left"}),S=renderer.StyleSheet.create({table:{width:"100%",borderWidth:1,borderColor:"#000",marginBottom:20},thead:{backgroundColor:"#ccc"},tr:{flexDirection:"row"},textBold:{fontSize:10,fontFamily:"Helvetica",fontWeight:"bold",paddingLeft:8,paddingRight:8,justifyContent:"center"},text:{fontSize:10,fontFamily:"Helvetica",paddingLeft:8,paddingRight:8,justifyContent:"center"},zebraOdd:{backgroundColor:"#eeeeee"}}),Oe=({children:e,style:t,cellHeight:o=22})=>jsxRuntime.jsx(D.Provider,{value:{cellHeight:o,textAlign:"left"},children:jsxRuntime.jsx(renderer.View,{style:[S.table,t],children:e})}),Ve=({children:e,style:t,textAlign:o="left"})=>{let{cellHeight:n}=O.useContext(D);return jsxRuntime.jsx(D.Provider,{value:{cellHeight:n,textAlign:o},children:jsxRuntime.jsx(renderer.View,{style:[S.thead,t],children:e})})},ve=({children:e})=>{let t=O__default.default.Children.toArray(e),o=t.length;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map((n,i)=>O__default.default.cloneElement(n,{isLastRow:i===o-1,isOdd:i%2===1}))})},Ie=({children:e,style:t,isLastRow:o=false,isOdd:n=false})=>{let i=O__default.default.Children.toArray(e),s=i.length;return jsxRuntime.jsx(renderer.View,{style:[S.tr,t],children:i.map((r,l)=>{let a=l===s-1,c=`${(100/s).toFixed(2)}%`;return O__default.default.cloneElement(r,{width:c,isLast:a,isLastRow:o,isOdd:n})})})},Be=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,textAlign:l})=>{let{cellHeight:a,textAlign:c}=O.useContext(D),d=l||c||"left",g=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,x={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:a};return jsxRuntime.jsx(renderer.View,{style:[S.textBold,{width:g},x,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:d},children:e})})},ke=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,isOdd:l=false,textAlign:a})=>{let{cellHeight:c,textAlign:d}=O.useContext(D),g=a||d||"left",y=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,L={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:c};return jsxRuntime.jsx(renderer.View,{style:[S.text,l&&S.zebraOdd,{width:y},L,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:g},children:e})})};var p=renderer.StyleSheet.create({container:{width:"100%",paddingHorizontal:20},row:{flexDirection:"row",flexWrap:"wrap",marginHorizontal:-5},col:{paddingHorizontal:5},col1:{width:"8.33%"},col2:{width:"16.66%"},col3:{width:"25%"},col4:{width:"33.33%"},col5:{width:"41.66%"},col6:{width:"50%"},col7:{width:"58.33%"},col8:{width:"66.66%"},col9:{width:"75%"},col10:{width:"83.33%"},col11:{width:"91.66%"},col12:{width:"100%"}}),De=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.container,t],children:e}),He=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.row,t],children:e}),Ee=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col1,t],children:e}),Qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col2,t],children:e}),Me=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col3,t],children:e}),ze=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col4,t],children:e}),Ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col5,t],children:e}),qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col6,t],children:e}),Ne=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col7,t],children:e}),$e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col8,t],children:e}),We=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col9,t],children:e}),Xe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col10,t],children:e}),Ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col11,t],children:e}),_e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col12,t],children:e});var $=async({value:e,size:t=150,colorDark:o="#000000",colorLight:n="#ffffff",margin:i=0,errorCorrectionLevel:s="M"})=>{try{let r={errorCorrectionLevel:s,type:"image/png",quality:.92,margin:i,color:{dark:o,light:n},width:t};return Dt__default.default.toDataURL(e,r)}catch(r){return console.error("Error generando QR:",r),""}},je=async(e,t,o,n)=>new Promise(async i=>{if(!e||!t){i(e);return}try{let s=typeof window<"u"&&typeof window.document<"u",r,l,a;if(s)r=document.createElement("canvas"),l=r.getContext("2d"),a=window.Image;else try{let{createCanvas:d,Image:g}=await import('canvas');r=d(100,100),l=r.getContext("2d"),a=g;}catch(d){console.error("Canvas not available in Node environment for addLogoToQR",d),i(e);return}if(!l){i(e);return}let c=new a;s&&(c.crossOrigin="anonymous"),c.onload=()=>{r.width=c.width,r.height=c.height,l.drawImage(c,0,0,r.width,r.height);let d=new a;s&&(d.crossOrigin="anonymous"),d.onload=()=>{let g=(r.width-o)/2,y=(r.height-n)/2;l.fillStyle="#FFFFFF",l.fillRect(g-5,y-5,o+10,n+10),l.drawImage(d,g,y,o,n);let x=r.toDataURL("image/png");i(x);},d.onerror=g=>{console.error("Error cargando el logo:",g),i(e);},d.src=t;},c.onerror=d=>{console.error("Error cargando el QR:",d),i("");},c.src=e;}catch(s){console.error("Error procesando el QR con logo:",s),i(e);}});var Ut=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center",margin:10}}),qt={0:"L",1:"M",2:"Q",3:"H"},Nt=({value:e,size:t=150,style:o,colorDark:n="#000000",colorLight:i="#ffffff",margin:s=0,logo:r="",logoWidth:l=30,logoHeight:a=30,errorCorrectionLevel:c=r?"H":"M"})=>{let[d,g]=O.useState("");O.useEffect(()=>{(async()=>{try{let L=await $({value:e,size:t,colorDark:n,colorLight:i,margin:s,errorCorrectionLevel:typeof c=="number"?qt[c]||"M":c});if(r&&l&&a){let T=await je(L,r,l,a);g(T);}else g(L);}catch(L){console.error("Error generando QR:",L);let T=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}&color=${encodeURIComponent(n.replace("#",""))}&bgcolor=${encodeURIComponent(i.replace("#",""))}`;g(T);}})();},[e,t,n,i,s,r,l,a,c]);let y=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}`;return jsxRuntime.jsx(renderer.View,{style:[Ut.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{src:d||y,style:{width:t,height:t}})})},Ke=Nt;var Ye=async e=>{try{let t=typeof window<"u"&&typeof window.document<"u",o,n={};if(t)try{let c=await import('qr-code-styling');o=c.default||c;}catch(c){throw console.error("Failed to load qr-code-styling in browser",c),c}else {let c="jsdom",d="canvas",g="qr-code-styling/lib/qr-code-styling.common.js";try{let[y,x,L]=await Promise.all([import(c),import(d),import(g)]),{JSDOM:T}=y,V=x.default||x,{QRCodeStyling:M}=L;o=M,n={jsdom:T,nodeCanvas:V};}catch(y){throw console.error("Failed to load Node dependencies for QR generation",y),y}}let i=typeof e.width=="number"&&isFinite(e.width)?Math.round(e.width):300,s=typeof e.height=="number"&&isFinite(e.height)?Math.round(e.height):300,r={width:i,height:s,data:e.value,image:e.image,dotsOptions:e.dotsOptions,backgroundOptions:{color:e.backgroundOptions?.color||"#ffffff",...e.backgroundOptions},imageOptions:{crossOrigin:"anonymous",margin:typeof e.imageOptions?.margin=="number"&&isFinite(e.imageOptions.margin)?e.imageOptions.margin:0,saveAsBlob:!0,imageSize:typeof e.imageOptions?.imageSize=="number"&&isFinite(e.imageOptions.imageSize)?Math.max(0,Math.min(1,e.imageOptions.imageSize)):.4},cornersSquareOptions:e.cornersSquareOptions,cornersDotOptions:e.cornersDotOptions},a=await new o({type:"png",...n,...r}).getRawData("png");if(!a)throw new Error("Failed to generate raw data from qr-code-styling");if(t){if(a instanceof Blob)return new Promise((c,d)=>{let g=new FileReader;g.onloadend=()=>{typeof g.result=="string"?c(g.result):d(new Error("Failed to convert blob to base64"));},g.onerror=d,g.readAsDataURL(a);});console.warn("Unexpected rawData type in browser:",a);}if(typeof Buffer<"u"&&Buffer.isBuffer(a))return `data:image/png;base64,${a.toString("base64")}`;throw new Error(`Unexpected raw data type: ${typeof a}`)}catch(t){return console.error("Error generating QR V2, falling back to V1:",t),$({value:e.value,size:e.width,colorDark:e.fallbackColorDark||e.dotsOptions?.color,colorLight:e.fallbackColorLight||e.backgroundOptions?.color,margin:e.fallbackMargin||0,errorCorrectionLevel:e.fallbackErrorCorrectionLevel||"M"})}};var Gt=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center"}}),_t=({value:e,size:t=300,style:o,image:n,dotsOptions:i,backgroundOptions:s,imageOptions:r,cornersSquareOptions:l,cornersDotOptions:a,colorDark:c,colorLight:d,margin:g,errorCorrectionLevel:y})=>jsxRuntime.jsx(renderer.View,{style:[Gt.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{style:{width:t,height:t},src:Ye({value:e,width:t,height:t,image:n,dotsOptions:i||(c?{color:c}:void 0),backgroundOptions:s||(d?{color:d}:void 0),imageOptions:{...r,margin:r?.margin!==void 0?r.margin:g},cornersSquareOptions:l,cornersDotOptions:a,fallbackColorDark:c,fallbackColorLight:d,fallbackMargin:g,fallbackErrorCorrectionLevel:y})})}),et=_t;var E=renderer.StyleSheet.create({ul:{marginBottom:10,paddingLeft:15},ol:{marginBottom:10,paddingLeft:15},li:{marginBottom:5,flexDirection:"row"},bulletPoint:{width:15,marginRight:5,fontSize:12},itemContent:{flex:1}}),Jt=(e="disc")=>{switch(e){case "circle":return "\u25CB";case "square":return "\u25A0";default:return "\u2022"}},Kt=(e,t="decimal",o=1)=>{let n=o+e-1;switch(t){case "lower-alpha":return String.fromCharCode(97+n%26)+".";case "upper-alpha":return String.fromCharCode(65+n%26)+".";case "lower-roman":return ot(n).toLowerCase()+".";case "upper-roman":return ot(n)+".";default:return n+"."}},ot=e=>{if(e<=0||e>3999)return String(e);let t=[["","I","II","III","IV","V","VI","VII","VIII","IX"],["","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"],["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"],["","M","MM","MMM"]];return t[3][Math.floor(e/1e3)]+t[2][Math.floor(e%1e3/100)]+t[1][Math.floor(e%100/10)]+t[0][e%10]},rt=({children:e,style:t,type:o="disc"})=>{let n=O__default.default.Children.map(e,(i,s)=>O__default.default.isValidElement(i)?O__default.default.cloneElement(i,{bulletType:o,isOrdered:false,index:s+1}):i);return jsxRuntime.jsx(renderer.View,{style:[E.ul,t],children:n})},nt=({children:e,style:t,type:o="decimal",start:n=1})=>{let i=O__default.default.Children.map(e,(s,r)=>O__default.default.isValidElement(s)?O__default.default.cloneElement(s,{bulletType:o,isOrdered:true,index:r+1,start:n}):s);return jsxRuntime.jsx(renderer.View,{style:[E.ol,t],children:i})},it=({children:e,style:t,bulletType:o="disc",isOrdered:n=false,index:i=1,start:s=1,value:r})=>{let l;if(n){let a=r!==void 0?Number(r):i;l=Kt(a,o,s);}else l=Jt(o);return jsxRuntime.jsxs(renderer.View,{style:[E.li,t],children:[jsxRuntime.jsx(renderer.Text,{style:E.bulletPoint,children:l}),jsxRuntime.jsx(renderer.View,{style:E.itemContent,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e})]})};var ee=renderer.StyleSheet.create({container:{position:"relative",width:"100%",height:"100%"},background:{position:"absolute",top:0,left:0,right:0,bottom:0},content:{position:"relative"}}),to=({src:e,width:t="100%",height:o="100%",opacity:n=.2,children:i,style:s,fixed:r=false,objectFit:l="cover",objectPosition:a="center"})=>jsxRuntime.jsxs(renderer.View,{style:[ee.container,s],children:[jsxRuntime.jsx(renderer.Image,{src:e,style:[ee.background,{width:t,height:o,opacity:n,objectFit:l,objectPosition:a}],fixed:r}),jsxRuntime.jsx(renderer.View,{style:ee.content,children:i})]}),lt=to;
|
|
3
|
-
Object.defineProperty(exports,"Font",{enumerable:true,get:function(){return renderer.Font}});Object.defineProperty(exports,"StyleSheet",{enumerable:true,get:function(){return renderer.StyleSheet}});Object.defineProperty(exports,"Text",{enumerable:true,get:function(){return renderer.Text}});Object.defineProperty(exports,"View",{enumerable:true,get:function(){return renderer.View}});Object.defineProperty(exports,"renderToStream",{enumerable:true,get:function(){return renderer.renderToStream}});exports.A=xe;exports.BR=Pe;exports.Blockquote=Re;exports.Center=
|
|
1
|
+
'use strict';var renderer=require('@react-pdf/renderer'),O=require('react'),jsxRuntime=require('react/jsx-runtime'),Dt=require('qrcode');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var O__default=/*#__PURE__*/_interopDefault(O);var Dt__default=/*#__PURE__*/_interopDefault(Dt);var ht=(e,t)=>{let o=atob(e),n=new Array(o.length);for(let a=0;a<o.length;a++)n[a]=o.charCodeAt(a);let i=new Uint8Array(n),s=new Blob([i],{type:"application/pdf"}),r=URL.createObjectURL(s);if(document===void 0){console.error("document is undefined, only works in browser context");return}let c=document.createElement("a");c.href=r,c.download=t,document.body.appendChild(c),c.click(),document.body.removeChild(c),window.open(r,"_blank"),setTimeout(()=>{URL.revokeObjectURL(r);},100);},X=ht;var yt=async({template:e,data:t})=>{try{if(!e)throw new Error("Template not provided");let o=O.createElement(e,{data:t}),n=await renderer.renderToStream(o);return await new Promise((s,r)=>{let c=[];n.on("data",a=>c.push(a)),n.on("end",()=>s(Buffer.concat(c).toString("base64"))),n.on("error",a=>r(a));})}catch(o){throw new Error("Error generating PDF: "+(o instanceof Error?o.message:"Unknown error"))}},G=yt;var re=renderer.StyleSheet.create({page:{backgroundColor:"white",padding:30,fontFamily:"Helvetica",fontSize:14},footer:{position:"absolute",left:0,right:0,textAlign:"center"}}),xt=({children:e,size:t="A4",orientation:o="vertical",backgroundColor:n="white",padding:i=30,margen:s="normal",style:r={},pagination:c=true,footer:a,lines:l=a?2:1,rule:d=false})=>{let x=l*20+10,L=(h,P)=>{let w=P.toUpperCase();switch(h){case "apa":return w==="LETTER"||w==="LEGAL"?{paddingTop:72,paddingRight:72,paddingBottom:72,paddingLeft:72}:{paddingTop:72,paddingRight:72,paddingBottom:72,paddingLeft:72};case "estrecho":return {paddingTop:36,paddingRight:36,paddingBottom:36,paddingLeft:36};case "ancho":return {paddingTop:108,paddingRight:108,paddingBottom:108,paddingLeft:108};default:return {paddingTop:i,paddingRight:i,paddingBottom:i,paddingLeft:i}}},T=t,V=o,M=n,te=s;try{typeof t=="string"&&!["A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","LETTER","LEGAL","TABLOID"].includes(t.toUpperCase())&&(console.warn(`Invalid page size: ${t}. Using A4 as default.`),T="A4");let P=["vertical","horizontal","portrait","landscape","h","v"],w=typeof o=="string"?o.toLowerCase():"vertical";P.includes(w)?V=o:(console.warn(`Invalid orientation: ${o}. Using vertical as default.`),V="vertical"),typeof n!="string"&&(console.warn(`Invalid background color: ${n}. Using white as default.`),M="white"),["apa","normal","estrecho","ancho"].includes(s)||(console.warn(`Invalid margin type: ${s}. Using normal as default.`),te="normal"),(typeof l!="number"||l<1)&&console.warn(`Invalid lines value: ${l}. Using 1 as default.`);}catch(h){console.warn("Error processing props in LayoutPDF:",h);}let lt=h=>{switch(h){case "vertical":case "portrait":case "v":return "portrait";case "horizontal":case "landscape":case "h":return "landscape";default:return console.warn(`Unrecognized orientation: ${h}. Using portrait as default.`),"portrait"}},dt=(h,P,w)=>{let I={A0:{width:841,height:1189},A1:{width:594,height:841},A2:{width:420,height:594},A3:{width:297,height:420},A4:{width:210,height:297},A5:{width:148,height:210},A6:{width:105,height:148},A7:{width:74,height:105},A8:{width:52,height:74},A9:{width:37,height:52},LETTER:{width:216,height:279},LEGAL:{width:216,height:356},TABLOID:{width:279,height:432}},v=2.834645669,A=I[h.toUpperCase()];if(!A)return P==="landscape"?595-w-10:842-w-10;let q=A.height*v,C=A.width*v;return P==="landscape"?C-w-10:q-w-10},z=lt(V),U=L(te,T),gt=dt(T,z,x),pt=()=>{if(!d)return null;let h=28.3465,P={A0:{width:841*2.834645669,height:1189*2.834645669},A1:{width:594*2.834645669,height:841*2.834645669},A2:{width:420*2.834645669,height:594*2.834645669},A3:{width:297*2.834645669,height:420*2.834645669},A4:{width:210*2.834645669,height:297*2.834645669},A5:{width:148*2.834645669,height:210*2.834645669},A6:{width:105*2.834645669,height:148*2.834645669},A7:{width:74*2.834645669,height:105*2.834645669},A8:{width:52*2.834645669,height:74*2.834645669},A9:{width:37*2.834645669,height:52*2.834645669},LETTER:{width:216*2.834645669,height:279*2.834645669},LEGAL:{width:216*2.834645669,height:356*2.834645669},TABLOID:{width:279*2.834645669,height:432*2.834645669}},w=P[T.toUpperCase()]||P.A4,I=z==="landscape"?w.height:w.width,v=z==="landscape"?w.width:w.height,A=[],q=[];for(let C=0;C<=Math.ceil(v/h);C++)A.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",top:C*h,left:0,right:0,height:C%5===0?1:.5,backgroundColor:C%5===0?"rgba(255, 0, 0, 0.8)":"rgba(100, 100, 100, 0.5)"}},`h-${C}`));for(let C=0;C<=Math.ceil(I/h);C++)q.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",left:C*h,top:0,bottom:0,width:C%5===0?1:.5,backgroundColor:C%5===0?"rgba(255, 0, 0, 0.8)":"rgba(100, 100, 100, 0.5)"}},`v-${C}`));return jsxRuntime.jsxs(renderer.View,{style:{position:"absolute",top:0,left:0,right:0,bottom:0},fixed:true,children:[A,q]})},mt={...re.page,backgroundColor:M,paddingTop:r?.paddingTop??r?.padding??U.paddingTop,paddingRight:r?.paddingRight??r?.padding??U.paddingRight,paddingLeft:r?.paddingLeft??r?.padding??U.paddingLeft,paddingBottom:(r?.paddingBottom??r?.padding??U.paddingBottom)+x,...(()=>{let{padding:h,paddingTop:P,paddingRight:w,paddingBottom:I,paddingLeft:v,...A}=r||{};return A})()},oe={...re.footer,top:gt,height:x,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",fontSize:10,color:"grey"};return jsxRuntime.jsx(renderer.Document,{children:jsxRuntime.jsxs(renderer.Page,{size:T,orientation:z,style:mt,wrap:true,children:[pt(),jsxRuntime.jsx(renderer.View,{style:{paddingBottom:x},children:e}),jsxRuntime.jsxs(renderer.View,{style:oe,fixed:true,children:[a&&a,c&&jsxRuntime.jsx(renderer.Text,{style:{fontSize:oe.fontSize},render:({pageNumber:h,totalPages:P})=>`${h} / ${P}`})]})]})})},ne=xt;var Lt=renderer.StyleSheet.create({image:{width:"100%",height:"auto",marginBottom:14}}),Ft=({src:e,style:t})=>jsxRuntime.jsx(renderer.Image,{src:e,style:[Lt.image,t]}),ie=Ft;var J=renderer.StyleSheet.create({left:{textAlign:"left"},right:{textAlign:"right"},center:{textAlign:"center"}}),ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.left,t],children:e}),se=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.right,t],children:e}),ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[J.center,t],children:e});var f=renderer.StyleSheet.create({p:{fontSize:12,marginBottom:5,lineHeight:1.2},h1:{fontSize:24,fontWeight:"bold",marginBottom:12},h2:{fontSize:20,fontWeight:"bold",marginBottom:10},h3:{fontSize:18,fontWeight:"bold",marginBottom:8},h4:{fontSize:16,fontWeight:"bold",marginBottom:6},h5:{fontSize:14,fontWeight:"bold",marginBottom:4},h6:{fontSize:12,fontWeight:"bold",marginBottom:0},strong:{fontWeight:"bold"},em:{fontStyle:"italic"},u:{textDecoration:"underline"},small:{fontSize:10},blockquote:{marginLeft:20,marginRight:20,fontStyle:"italic",borderLeft:"4px solid #ccc",paddingLeft:10},mark:{backgroundColor:"yellow"},A:{color:"#3d65fd",textDecoration:"none"},br:{width:"100%",height:1,marginTop:7,marginBottom:7},header:{position:"absolute",top:20,left:0,right:0,textAlign:"center",fontSize:10,color:"#666",paddingHorizontal:40},hr:{width:"100%",borderTop:"1px solid #000",marginTop:8,marginBottom:8}}),le=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.p,t],children:e}),de=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h1,t],children:e}),ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h2,t],children:e}),pe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h3,t],children:e}),me=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h4,t],children:e}),he=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h5,t],children:e}),fe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h6,t],children:e}),ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.strong,t],children:e}),ye=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.em,t],children:e}),we=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.u,t],children:e}),Ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.small,t],children:e}),Re=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.blockquote,t],children:e}),be=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.mark,t],children:e}),xe=({children:e,style:t,href:o})=>jsxRuntime.jsx(renderer.Link,{src:o,style:[f.A,t],children:e}),Pe=({style:e})=>jsxRuntime.jsx(renderer.Text,{style:[f.br,e],children:`
|
|
2
|
+
`}),Te=({style:e})=>jsxRuntime.jsx(renderer.View,{style:[f.hr,e]}),Le=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[t],children:e}),Fe=({children:e,style:t,fixed:o=false})=>jsxRuntime.jsx(renderer.View,{style:[f.header,t],fixed:o,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e}),Ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:t,children:e});var D=O.createContext({cellHeight:22,textAlign:"left"}),S=renderer.StyleSheet.create({table:{width:"100%",borderWidth:1,borderColor:"#000",marginBottom:20},thead:{backgroundColor:"#ccc"},tr:{flexDirection:"row"},textBold:{fontSize:10,fontWeight:"bold",paddingLeft:8,paddingRight:8,justifyContent:"center"},text:{fontSize:10,paddingLeft:8,paddingRight:8,justifyContent:"center"},zebraOdd:{backgroundColor:"#eeeeee"}}),Oe=({children:e,style:t,cellHeight:o=22})=>jsxRuntime.jsx(D.Provider,{value:{cellHeight:o,textAlign:"left"},children:jsxRuntime.jsx(renderer.View,{style:[S.table,t],children:e})}),Ve=({children:e,style:t,textAlign:o="left"})=>{let{cellHeight:n}=O.useContext(D);return jsxRuntime.jsx(D.Provider,{value:{cellHeight:n,textAlign:o},children:jsxRuntime.jsx(renderer.View,{style:[S.thead,t],children:e})})},Ie=({children:e})=>{let t=O__default.default.Children.toArray(e),o=t.length;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map((n,i)=>O__default.default.cloneElement(n,{isLastRow:i===o-1,isOdd:i%2===1}))})},ve=({children:e,style:t,isLastRow:o=false,isOdd:n=false})=>{let i=O__default.default.Children.toArray(e),s=i.length;return jsxRuntime.jsx(renderer.View,{style:[S.tr,t],children:i.map((r,c)=>{let a=c===s-1,l=`${(100/s).toFixed(2)}%`;return O__default.default.cloneElement(r,{width:l,isLast:a,isLastRow:o,isOdd:n})})})},Be=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,textAlign:c})=>{let{cellHeight:a,textAlign:l}=O.useContext(D),d=c||l||"left",g=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,x={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:a};return jsxRuntime.jsx(renderer.View,{style:[S.textBold,{width:g},x,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:d},children:e})})},ke=({children:e,style:t,width:o,height:n,colSpan:i,isLast:s=false,isLastRow:r=false,isOdd:c=false,textAlign:a})=>{let{cellHeight:l,textAlign:d}=O.useContext(D),g=a||d||"left",y=typeof o=="string"&&i?`${(parseFloat(o)*i).toFixed(2)}%`:o,L={borderRightWidth:s?0:1,borderBottomWidth:r?0:1,borderColor:"#000",minHeight:n!==void 0?n:l};return jsxRuntime.jsx(renderer.View,{style:[S.text,c&&S.zebraOdd,{width:y},L,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:g},children:e})})};var p=renderer.StyleSheet.create({container:{width:"100%",paddingHorizontal:20},row:{flexDirection:"row",flexWrap:"wrap",marginHorizontal:-5},col:{paddingHorizontal:5},col1:{width:"8.33%"},col2:{width:"16.66%"},col3:{width:"25%"},col4:{width:"33.33%"},col5:{width:"41.66%"},col6:{width:"50%"},col7:{width:"58.33%"},col8:{width:"66.66%"},col9:{width:"75%"},col10:{width:"83.33%"},col11:{width:"91.66%"},col12:{width:"100%"}}),De=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.container,t],children:e}),Ee=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.row,t],children:e}),He=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col1,t],children:e}),Qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col2,t],children:e}),Me=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col3,t],children:e}),ze=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col4,t],children:e}),Ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col5,t],children:e}),qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col6,t],children:e}),Ne=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col7,t],children:e}),$e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col8,t],children:e}),We=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col9,t],children:e}),Xe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col10,t],children:e}),Ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col11,t],children:e}),_e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[p.col,p.col12,t],children:e});var $=async({value:e,size:t=150,colorDark:o="#000000",colorLight:n="#ffffff",margin:i=0,errorCorrectionLevel:s="M"})=>{try{let r={errorCorrectionLevel:s,type:"image/png",quality:.92,margin:i,color:{dark:o,light:n},width:t};return Dt__default.default.toDataURL(e,r)}catch(r){return console.error("Error generando QR:",r),""}},je=async(e,t,o,n)=>new Promise(async i=>{if(!e||!t){i(e);return}try{let s=typeof window<"u"&&typeof window.document<"u",r,c,a;if(s)r=document.createElement("canvas"),c=r.getContext("2d"),a=window.Image;else try{let{createCanvas:d,Image:g}=await import('canvas');r=d(100,100),c=r.getContext("2d"),a=g;}catch(d){console.error("Canvas not available in Node environment for addLogoToQR",d),i(e);return}if(!c){i(e);return}let l=new a;s&&(l.crossOrigin="anonymous"),l.onload=()=>{r.width=l.width,r.height=l.height,c.drawImage(l,0,0,r.width,r.height);let d=new a;s&&(d.crossOrigin="anonymous"),d.onload=()=>{let g=(r.width-o)/2,y=(r.height-n)/2;c.fillStyle="#FFFFFF",c.fillRect(g-5,y-5,o+10,n+10),c.drawImage(d,g,y,o,n);let x=r.toDataURL("image/png");i(x);},d.onerror=g=>{console.error("Error cargando el logo:",g),i(e);},d.src=t;},l.onerror=d=>{console.error("Error cargando el QR:",d),i("");},l.src=e;}catch(s){console.error("Error procesando el QR con logo:",s),i(e);}});var Ut=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center",margin:10}}),qt={0:"L",1:"M",2:"Q",3:"H"},Nt=({value:e,size:t=150,style:o,colorDark:n="#000000",colorLight:i="#ffffff",margin:s=0,logo:r="",logoWidth:c=30,logoHeight:a=30,errorCorrectionLevel:l=r?"H":"M"})=>{let[d,g]=O.useState("");O.useEffect(()=>{(async()=>{try{let L=await $({value:e,size:t,colorDark:n,colorLight:i,margin:s,errorCorrectionLevel:typeof l=="number"?qt[l]||"M":l});if(r&&c&&a){let T=await je(L,r,c,a);g(T);}else g(L);}catch(L){console.error("Error generando QR:",L);let T=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}&color=${encodeURIComponent(n.replace("#",""))}&bgcolor=${encodeURIComponent(i.replace("#",""))}`;g(T);}})();},[e,t,n,i,s,r,c,a,l]);let y=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}`;return jsxRuntime.jsx(renderer.View,{style:[Ut.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{src:d||y,style:{width:t,height:t}})})},Ke=Nt;var Ye=async e=>{try{let t=typeof window<"u"&&typeof window.document<"u",o,n={};if(t)try{let l=await import('qr-code-styling');o=l.default||l;}catch(l){throw console.error("Failed to load qr-code-styling in browser",l),l}else {let l="jsdom",d="canvas",g="qr-code-styling/lib/qr-code-styling.common.js";try{let[y,x,L]=await Promise.all([import(l),import(d),import(g)]),{JSDOM:T}=y,V=x.default||x,{QRCodeStyling:M}=L;o=M,n={jsdom:T,nodeCanvas:V};}catch(y){throw console.error("Failed to load Node dependencies for QR generation",y),y}}let i=typeof e.width=="number"&&isFinite(e.width)?Math.round(e.width):300,s=typeof e.height=="number"&&isFinite(e.height)?Math.round(e.height):300,r={width:i,height:s,data:e.value,image:e.image,dotsOptions:e.dotsOptions,backgroundOptions:{color:e.backgroundOptions?.color||"#ffffff",...e.backgroundOptions},imageOptions:{crossOrigin:"anonymous",margin:typeof e.imageOptions?.margin=="number"&&isFinite(e.imageOptions.margin)?e.imageOptions.margin:0,saveAsBlob:!0,imageSize:typeof e.imageOptions?.imageSize=="number"&&isFinite(e.imageOptions.imageSize)?Math.max(0,Math.min(1,e.imageOptions.imageSize)):.4},cornersSquareOptions:e.cornersSquareOptions,cornersDotOptions:e.cornersDotOptions},a=await new o({type:"png",...n,...r}).getRawData("png");if(!a)throw new Error("Failed to generate raw data from qr-code-styling");if(t){if(a instanceof Blob)return new Promise((l,d)=>{let g=new FileReader;g.onloadend=()=>{typeof g.result=="string"?l(g.result):d(new Error("Failed to convert blob to base64"));},g.onerror=d,g.readAsDataURL(a);});console.warn("Unexpected rawData type in browser:",a);}if(typeof Buffer<"u"&&Buffer.isBuffer(a))return `data:image/png;base64,${a.toString("base64")}`;throw new Error(`Unexpected raw data type: ${typeof a}`)}catch(t){return console.error("Error generating QR V2, falling back to V1:",t),$({value:e.value,size:e.width,colorDark:e.fallbackColorDark||e.dotsOptions?.color,colorLight:e.fallbackColorLight||e.backgroundOptions?.color,margin:e.fallbackMargin||0,errorCorrectionLevel:e.fallbackErrorCorrectionLevel||"M"})}};var Gt=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center"}}),_t=({value:e,size:t=300,style:o,image:n,dotsOptions:i,backgroundOptions:s,imageOptions:r,cornersSquareOptions:c,cornersDotOptions:a,colorDark:l,colorLight:d,margin:g,errorCorrectionLevel:y})=>jsxRuntime.jsx(renderer.View,{style:[Gt.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{style:{width:t,height:t},src:Ye({value:e,width:t,height:t,image:n,dotsOptions:i||(l?{color:l}:void 0),backgroundOptions:s||(d?{color:d}:void 0),imageOptions:{...r,margin:r?.margin!==void 0?r.margin:g},cornersSquareOptions:c,cornersDotOptions:a,fallbackColorDark:l,fallbackColorLight:d,fallbackMargin:g,fallbackErrorCorrectionLevel:y})})}),et=_t;var H=renderer.StyleSheet.create({ul:{marginBottom:10,paddingLeft:15},ol:{marginBottom:10,paddingLeft:15},li:{marginBottom:5,flexDirection:"row"},bulletPoint:{width:15,marginRight:5,fontSize:12},itemContent:{flex:1}}),Jt=(e="disc")=>{switch(e){case "circle":return "\u25CB";case "square":return "\u25A0";default:return "\u2022"}},Kt=(e,t="decimal",o=1)=>{let n=o+e-1;switch(t){case "lower-alpha":return String.fromCharCode(97+n%26)+".";case "upper-alpha":return String.fromCharCode(65+n%26)+".";case "lower-roman":return ot(n).toLowerCase()+".";case "upper-roman":return ot(n)+".";default:return n+"."}},ot=e=>{if(e<=0||e>3999)return String(e);let t=[["","I","II","III","IV","V","VI","VII","VIII","IX"],["","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"],["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"],["","M","MM","MMM"]];return t[3][Math.floor(e/1e3)]+t[2][Math.floor(e%1e3/100)]+t[1][Math.floor(e%100/10)]+t[0][e%10]},rt=({children:e,style:t,type:o="disc"})=>{let n=O__default.default.Children.map(e,(i,s)=>O__default.default.isValidElement(i)?O__default.default.cloneElement(i,{bulletType:o,isOrdered:false,index:s+1}):i);return jsxRuntime.jsx(renderer.View,{style:[H.ul,t],children:n})},nt=({children:e,style:t,type:o="decimal",start:n=1})=>{let i=O__default.default.Children.map(e,(s,r)=>O__default.default.isValidElement(s)?O__default.default.cloneElement(s,{bulletType:o,isOrdered:true,index:r+1,start:n}):s);return jsxRuntime.jsx(renderer.View,{style:[H.ol,t],children:i})},it=({children:e,style:t,bulletType:o="disc",isOrdered:n=false,index:i=1,start:s=1,value:r})=>{let c;if(n){let a=r!==void 0?Number(r):i;c=Kt(a,o,s);}else c=Jt(o);return jsxRuntime.jsxs(renderer.View,{style:[H.li,t],children:[jsxRuntime.jsx(renderer.Text,{style:H.bulletPoint,children:c}),jsxRuntime.jsx(renderer.View,{style:H.itemContent,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e})]})};var ee=renderer.StyleSheet.create({container:{position:"relative",width:"100%",height:"100%"},background:{position:"absolute",top:0,left:0,right:0,bottom:0},content:{position:"relative"}}),to=({src:e,width:t="100%",height:o="100%",opacity:n=.2,children:i,style:s,fixed:r=false,objectFit:c="cover",objectPosition:a="center"})=>jsxRuntime.jsxs(renderer.View,{style:[ee.container,s],children:[jsxRuntime.jsx(renderer.Image,{src:e,style:[ee.background,{width:t,height:o,opacity:n,objectFit:c,objectPosition:a}],fixed:r}),jsxRuntime.jsx(renderer.View,{style:ee.content,children:i})]}),ct=to;
|
|
3
|
+
Object.defineProperty(exports,"Font",{enumerable:true,get:function(){return renderer.Font}});Object.defineProperty(exports,"StyleSheet",{enumerable:true,get:function(){return renderer.StyleSheet}});Object.defineProperty(exports,"Text",{enumerable:true,get:function(){return renderer.Text}});Object.defineProperty(exports,"View",{enumerable:true,get:function(){return renderer.View}});Object.defineProperty(exports,"renderToStream",{enumerable:true,get:function(){return renderer.renderToStream}});exports.A=xe;exports.BR=Pe;exports.Blockquote=Re;exports.Center=ce;exports.Col1=He;exports.Col10=Xe;exports.Col11=Ge;exports.Col12=_e;exports.Col2=Qe;exports.Col3=Me;exports.Col4=ze;exports.Col5=Ue;exports.Col6=qe;exports.Col7=Ne;exports.Col8=$e;exports.Col9=We;exports.Container=De;exports.Div=Ae;exports.Em=ye;exports.H1=de;exports.H2=ge;exports.H3=pe;exports.H4=me;exports.H5=he;exports.H6=fe;exports.HR=Te;exports.Header=Fe;exports.Img=ie;exports.ImgBg=ct;exports.LI=it;exports.LayoutPDF=ne;exports.Left=ae;exports.Mark=be;exports.OL=nt;exports.P=le;exports.QR=Ke;exports.QRV2=et;exports.Right=se;exports.Row=Ee;exports.Small=Ce;exports.Span=Le;exports.Strong=ue;exports.Table=Oe;exports.Tbody=Ie;exports.Td=ke;exports.Th=Be;exports.Thead=Ve;exports.Tr=ve;exports.U=we;exports.UL=rt;exports.decodeBase64Pdf=X;exports.generatePDF=G;//# sourceMappingURL=index.cjs.map
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|