react-pdf-levelup 3.1.57 → 3.1.63

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 CHANGED
@@ -1,1059 +1,4 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/components/core/index.tsx
31
- var index_exports = {};
32
- __export(index_exports, {
33
- A: () => A,
34
- BR: () => BR,
35
- Blockquote: () => Blockquote,
36
- Center: () => Center,
37
- Col1: () => Col1,
38
- Col10: () => Col10,
39
- Col11: () => Col11,
40
- Col12: () => Col12,
41
- Col2: () => Col2,
42
- Col3: () => Col3,
43
- Col4: () => Col4,
44
- Col5: () => Col5,
45
- Col6: () => Col6,
46
- Col7: () => Col7,
47
- Col8: () => Col8,
48
- Col9: () => Col9,
49
- Container: () => Container,
50
- Div: () => Div,
51
- Em: () => Em,
52
- Font: () => import_renderer12.Font,
53
- H1: () => H1,
54
- H2: () => H2,
55
- H3: () => H3,
56
- H4: () => H4,
57
- H5: () => H5,
58
- H6: () => H6,
59
- Header: () => Header,
60
- Img: () => Img_default,
61
- ImgBg: () => ImgBg_default,
62
- LI: () => LI,
63
- LayoutPDF: () => LayoutPDF_default,
64
- Left: () => Left,
65
- Mark: () => Mark,
66
- OL: () => OL,
67
- P: () => P,
68
- QR: () => QR_default,
69
- Right: () => Right,
70
- Row: () => Row,
71
- Small: () => Small,
72
- Span: () => Span,
73
- Strong: () => Strong,
74
- StyleSheet: () => import_renderer12.StyleSheet,
75
- Table: () => Table,
76
- Tbody: () => Tbody,
77
- Td: () => Td,
78
- Text: () => import_renderer12.Text,
79
- Th: () => Th,
80
- Thead: () => Thead,
81
- Tr: () => Tr,
82
- U: () => U,
83
- UL: () => UL,
84
- View: () => import_renderer12.View,
85
- decodeBase64Pdf: () => decodeBase64Pdf_default,
86
- generatePDF: () => generatePDF_default,
87
- renderToStream: () => import_renderer10.renderToStream
88
- });
89
- module.exports = __toCommonJS(index_exports);
90
-
91
- // src/components/core/LayoutPDF.tsx
92
- var import_react = __toESM(require("react"), 1);
93
- var import_renderer = require("@react-pdf/renderer");
94
- var styles = import_renderer.StyleSheet.create({
95
- page: {
96
- backgroundColor: "white",
97
- padding: 30,
98
- fontFamily: "Helvetica",
99
- fontSize: 14
100
- },
101
- footer: {
102
- position: "absolute",
103
- left: 0,
104
- right: 0,
105
- textAlign: "center"
106
- }
107
- });
108
- var LayoutPDF = ({
109
- children,
110
- size = "A4",
111
- orientation = "vertical",
112
- backgroundColor = "white",
113
- padding = 30,
114
- margen = "normal",
115
- style = {},
116
- pagination = true,
117
- footer,
118
- lines = footer ? 2 : 1
119
- }) => {
120
- const LINE_HEIGHT = 20;
121
- const FOOTER_PADDING = 10;
122
- const footerHeight = lines * LINE_HEIGHT + FOOTER_PADDING;
123
- const getMargins = (margen2, pageSize) => {
124
- const normalizedSize = pageSize.toUpperCase();
125
- switch (margen2) {
126
- case "apa":
127
- if (normalizedSize === "LETTER" || normalizedSize === "LEGAL") {
128
- return {
129
- paddingTop: 72,
130
- paddingRight: 72,
131
- paddingBottom: 72,
132
- paddingLeft: 72
133
- };
134
- }
135
- return {
136
- paddingTop: 72,
137
- paddingRight: 72,
138
- paddingBottom: 72,
139
- paddingLeft: 72
140
- };
141
- case "estrecho":
142
- return {
143
- paddingTop: 36,
144
- paddingRight: 36,
145
- paddingBottom: 36,
146
- paddingLeft: 36
147
- };
148
- case "ancho":
149
- return {
150
- paddingTop: 108,
151
- paddingRight: 108,
152
- paddingBottom: 108,
153
- paddingLeft: 108
154
- };
155
- case "normal":
156
- default:
157
- return {
158
- paddingTop: padding,
159
- paddingRight: padding,
160
- paddingBottom: padding,
161
- paddingLeft: padding
162
- };
163
- }
164
- };
165
- let safeSize = size;
166
- let safeOrientation = orientation;
167
- let safeBackgroundColor = backgroundColor;
168
- let safeLines = Math.max(1, Math.min(lines, 10));
169
- let safeMargen = margen;
170
- try {
171
- const validSizes = ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "LETTER", "LEGAL", "TABLOID"];
172
- if (typeof size === "string" && !validSizes.includes(size.toUpperCase())) {
173
- console.warn(`Invalid page size: ${size}. Using A4 as default.`);
174
- safeSize = "A4";
175
- }
176
- if (orientation !== "vertical" && orientation !== "horizontal") {
177
- console.warn(`Invalid orientation: ${orientation}. Using vertical as default.`);
178
- safeOrientation = "vertical";
179
- }
180
- if (typeof backgroundColor !== "string") {
181
- console.warn(`Invalid background color: ${backgroundColor}. Using white as default.`);
182
- safeBackgroundColor = "white";
183
- }
184
- const validMargins = ["apa", "normal", "estrecho", "ancho"];
185
- if (!validMargins.includes(margen)) {
186
- console.warn(`Invalid margin type: ${margen}. Using normal as default.`);
187
- safeMargen = "normal";
188
- }
189
- if (typeof lines !== "number" || lines < 1) {
190
- console.warn(`Invalid lines value: ${lines}. Using 1 as default.`);
191
- safeLines = 1;
192
- }
193
- } catch (e) {
194
- console.warn("Error processing props in LayoutPDF:", e);
195
- }
196
- const transformOrientation = (orientation2) => {
197
- switch (orientation2) {
198
- case "vertical":
199
- case "portrait":
200
- case "v":
201
- return "portrait";
202
- case "horizontal":
203
- case "landscape":
204
- case "h":
205
- return "landscape";
206
- default:
207
- console.warn(`Unrecognized orientation: ${orientation2}. Using portrait as default.`);
208
- return "portrait";
209
- }
210
- };
211
- const getFooterPosition = (pageSize, orientation2, footerHeight2) => {
212
- const pageDimensions = {
213
- A0: { width: 841, height: 1189 },
214
- A1: { width: 594, height: 841 },
215
- A2: { width: 420, height: 594 },
216
- A3: { width: 297, height: 420 },
217
- A4: { width: 210, height: 297 },
218
- A5: { width: 148, height: 210 },
219
- A6: { width: 105, height: 148 },
220
- A7: { width: 74, height: 105 },
221
- A8: { width: 52, height: 74 },
222
- A9: { width: 37, height: 52 },
223
- LETTER: { width: 216, height: 279 },
224
- LEGAL: { width: 216, height: 356 },
225
- TABLOID: { width: 279, height: 432 }
226
- };
227
- const mmToPoints = 2.834645669;
228
- const dimensions = pageDimensions[pageSize.toUpperCase()];
229
- if (!dimensions) {
230
- return orientation2 === "landscape" ? 595 - footerHeight2 - 10 : 842 - footerHeight2 - 10;
231
- }
232
- const heightInPoints = dimensions.height * mmToPoints;
233
- const widthInPoints = dimensions.width * mmToPoints;
234
- return orientation2 === "landscape" ? widthInPoints - footerHeight2 - 10 : heightInPoints - footerHeight2 - 10;
235
- };
236
- const pdfOrientation = transformOrientation(safeOrientation);
237
- const margins = getMargins(safeMargen, safeSize);
238
- const footerTop = getFooterPosition(safeSize, pdfOrientation, footerHeight);
239
- const pageStyle = {
240
- ...styles.page,
241
- backgroundColor: safeBackgroundColor,
242
- ...margins,
243
- paddingBottom: margins.paddingBottom + footerHeight,
244
- ...style
245
- };
246
- const footerStyle = {
247
- ...styles.footer,
248
- top: footerTop,
249
- height: footerHeight,
250
- display: "flex",
251
- flexDirection: "column",
252
- justifyContent: "center",
253
- alignItems: "center",
254
- fontSize: 10,
255
- color: "grey"
256
- };
257
- return /* @__PURE__ */ import_react.default.createElement(import_renderer.Document, null, /* @__PURE__ */ import_react.default.createElement(import_renderer.Page, { size: safeSize, orientation: pdfOrientation, style: pageStyle, wrap: true }, /* @__PURE__ */ import_react.default.createElement(import_renderer.View, { style: { paddingBottom: footerHeight } }, children), pagination ? /* @__PURE__ */ import_react.default.createElement(import_renderer.View, { style: footerStyle, fixed: true }, footer, /* @__PURE__ */ import_react.default.createElement(import_renderer.Text, { style: { fontSize: footerStyle.fontSize }, render: ({ pageNumber, totalPages }) => `${pageNumber} / ${totalPages}` })) : null));
258
- };
259
- var LayoutPDF_default = LayoutPDF;
260
-
261
- // src/components/core/Img.tsx
262
- var import_react2 = __toESM(require("react"), 1);
263
- var import_renderer2 = require("@react-pdf/renderer");
264
- var styles2 = import_renderer2.StyleSheet.create({
265
- image: {
266
- width: "100%",
267
- height: "auto",
268
- marginBottom: 14
269
- }
270
- });
271
- var Img = ({ src, style }) => {
272
- return /* @__PURE__ */ import_react2.default.createElement(import_renderer2.Image, { src, style: [styles2.image, style] });
273
- };
274
- var Img_default = Img;
275
-
276
- // src/components/core/Position.tsx
277
- var import_react3 = __toESM(require("react"), 1);
278
- var import_renderer3 = require("@react-pdf/renderer");
279
- var styles3 = import_renderer3.StyleSheet.create({
280
- left: {
281
- textAlign: "left"
282
- },
283
- right: {
284
- textAlign: "right"
285
- },
286
- center: {
287
- textAlign: "center"
288
- }
289
- });
290
- var Left = ({ children, style }) => {
291
- return /* @__PURE__ */ import_react3.default.createElement(import_renderer3.View, { style: [styles3.left, style] }, children);
292
- };
293
- var Right = ({ children, style }) => {
294
- return /* @__PURE__ */ import_react3.default.createElement(import_renderer3.View, { style: [styles3.right, style] }, children);
295
- };
296
- var Center = ({ children, style }) => {
297
- return /* @__PURE__ */ import_react3.default.createElement(import_renderer3.View, { style: [styles3.center, style] }, children);
298
- };
299
-
300
- // src/components/core/Etiquetas.tsx
301
- var import_react4 = __toESM(require("react"), 1);
302
- var import_renderer4 = require("@react-pdf/renderer");
303
- var styles4 = import_renderer4.StyleSheet.create({
304
- p: {
305
- fontSize: 12,
306
- marginBottom: 5,
307
- lineHeight: 1.2
308
- },
309
- h1: {
310
- fontSize: 24,
311
- fontWeight: "bold",
312
- marginBottom: 12
313
- },
314
- h2: {
315
- fontSize: 20,
316
- fontWeight: "bold",
317
- marginBottom: 10
318
- },
319
- h3: {
320
- fontSize: 18,
321
- fontWeight: "bold",
322
- marginBottom: 8
323
- },
324
- h4: {
325
- fontSize: 16,
326
- fontWeight: "bold",
327
- marginBottom: 6
328
- },
329
- h5: {
330
- fontSize: 14,
331
- fontWeight: "bold",
332
- marginBottom: 4
333
- },
334
- h6: {
335
- fontSize: 12,
336
- fontWeight: "bold",
337
- marginBottom: 0
338
- },
339
- strong: {
340
- fontWeight: "bold"
341
- },
342
- em: {
343
- fontStyle: "italic"
344
- },
345
- u: {
346
- textDecoration: "underline"
347
- },
348
- small: {
349
- fontSize: 10
350
- },
351
- blockquote: {
352
- marginLeft: 20,
353
- marginRight: 20,
354
- fontStyle: "italic",
355
- borderLeft: "4px solid #ccc",
356
- paddingLeft: 10
357
- },
358
- mark: {
359
- backgroundColor: "yellow"
360
- },
361
- A: {
362
- color: "#3d65fd",
363
- textDecoration: "none"
364
- },
365
- br: {
366
- width: "100%",
367
- height: 1,
368
- marginTop: 7,
369
- marginBottom: 7
370
- },
371
- header: {
372
- position: "absolute",
373
- top: 20,
374
- left: 0,
375
- right: 0,
376
- textAlign: "center",
377
- fontSize: 10,
378
- color: "#666",
379
- paddingHorizontal: 40
380
- }
381
- });
382
- var P = ({ children, style }) => {
383
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.p, style] }, children);
384
- };
385
- var H1 = ({ children, style }) => {
386
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.h1, style] }, children);
387
- };
388
- var H2 = ({ children, style }) => {
389
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.h2, style] }, children);
390
- };
391
- var H3 = ({ children, style }) => {
392
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.h3, style] }, children);
393
- };
394
- var H4 = ({ children, style }) => {
395
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.h4, style] }, children);
396
- };
397
- var H5 = ({ children, style }) => {
398
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.h5, style] }, children);
399
- };
400
- var H6 = ({ children, style }) => {
401
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.h6, style] }, children);
402
- };
403
- var Strong = ({ children, style }) => {
404
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.strong, style] }, children);
405
- };
406
- var Em = ({ children, style }) => {
407
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.em, style] }, children);
408
- };
409
- var U = ({ children, style }) => {
410
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.u, style] }, children);
411
- };
412
- var Small = ({ children, style }) => {
413
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.small, style] }, children);
414
- };
415
- var Blockquote = ({ children, style }) => {
416
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.blockquote, style] }, children);
417
- };
418
- var Mark = ({ children, style }) => {
419
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.mark, style] }, children);
420
- };
421
- var A = ({ children, style, href }) => {
422
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Link, { src: href, style: [styles4.A, style] }, children);
423
- };
424
- var BR = ({ style }) => {
425
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [styles4.br, style] }, "\n");
426
- };
427
- var Span = ({ children, style }) => {
428
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, { style: [style] }, children);
429
- };
430
- var Header = ({ children, style, fixed = false }) => {
431
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.View, { style: [styles4.header, style], fixed }, typeof children === "string" ? /* @__PURE__ */ import_react4.default.createElement(import_renderer4.Text, null, children) : children);
432
- };
433
- var Div = ({ children, style }) => {
434
- return /* @__PURE__ */ import_react4.default.createElement(import_renderer4.View, { style }, children);
435
- };
436
-
437
- // src/components/core/Tablet.tsx
438
- var import_react5 = __toESM(require("react"), 1);
439
- var import_renderer5 = require("@react-pdf/renderer");
440
- var TableContext = (0, import_react5.createContext)({
441
- cellHeight: 22,
442
- textAlign: "left"
443
- });
444
- var styles5 = import_renderer5.StyleSheet.create({
445
- table: {
446
- width: "100%",
447
- borderWidth: 1,
448
- borderColor: "#000",
449
- marginBottom: 20
450
- },
451
- thead: {
452
- backgroundColor: "#ccc"
453
- },
454
- tr: {
455
- flexDirection: "row"
456
- },
457
- textBold: {
458
- fontSize: 10,
459
- fontFamily: "Helvetica",
460
- fontWeight: "bold",
461
- paddingLeft: 8,
462
- paddingRight: 8,
463
- justifyContent: "center"
464
- },
465
- text: {
466
- fontSize: 10,
467
- fontFamily: "Helvetica",
468
- paddingLeft: 8,
469
- paddingRight: 8,
470
- justifyContent: "center"
471
- },
472
- zebraOdd: {
473
- backgroundColor: "#eeeeee"
474
- }
475
- });
476
- var Table = ({ children, style, cellHeight = 22 }) => /* @__PURE__ */ import_react5.default.createElement(TableContext.Provider, { value: { cellHeight, textAlign: "left" } }, /* @__PURE__ */ import_react5.default.createElement(import_renderer5.View, { style: [styles5.table, style] }, children));
477
- var Thead = ({
478
- children,
479
- style,
480
- textAlign = "left"
481
- }) => {
482
- const { cellHeight } = (0, import_react5.useContext)(TableContext);
483
- return /* @__PURE__ */ import_react5.default.createElement(TableContext.Provider, { value: { cellHeight, textAlign } }, /* @__PURE__ */ import_react5.default.createElement(import_renderer5.View, { style: [styles5.thead, style] }, children));
484
- };
485
- var Tbody = ({ children, style }) => {
486
- const rows = import_react5.default.Children.toArray(children);
487
- const count = rows.length;
488
- return /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, rows.map(
489
- (row, idx) => import_react5.default.cloneElement(row, {
490
- isLastRow: idx === count - 1,
491
- isOdd: idx % 2 === 1
492
- })
493
- ));
494
- };
495
- var Tr = ({
496
- children,
497
- style,
498
- isLastRow = false,
499
- isOdd = false
500
- }) => {
501
- const elements = import_react5.default.Children.toArray(
502
- children
503
- );
504
- const count = elements.length;
505
- return /* @__PURE__ */ import_react5.default.createElement(import_renderer5.View, { style: [styles5.tr, style] }, elements.map((child, idx) => {
506
- const isLast = idx === count - 1;
507
- const width = `${(100 / count).toFixed(2)}%`;
508
- return import_react5.default.cloneElement(child, { width, isLast, isLastRow, isOdd });
509
- }));
510
- };
511
- var Th = ({
512
- children,
513
- style,
514
- width,
515
- height,
516
- colSpan,
517
- isLast = false,
518
- isLastRow = false,
519
- textAlign: propTextAlign
520
- }) => {
521
- const { cellHeight, textAlign: contextTextAlign } = (0, import_react5.useContext)(TableContext);
522
- const finalTextAlign = propTextAlign || contextTextAlign || "left";
523
- const baseWidth = typeof width === "string" && colSpan ? `${(parseFloat(width) * colSpan).toFixed(2)}%` : width;
524
- const cellHeightValue = height !== void 0 ? height : cellHeight;
525
- const borders = {
526
- borderRightWidth: isLast ? 0 : 1,
527
- borderBottomWidth: isLastRow ? 0 : 1,
528
- borderColor: "#000",
529
- minHeight: cellHeightValue
530
- };
531
- return /* @__PURE__ */ import_react5.default.createElement(
532
- import_renderer5.View,
533
- {
534
- style: [
535
- styles5.textBold,
536
- {
537
- width: baseWidth
538
- },
539
- borders,
540
- style
541
- ]
542
- },
543
- /* @__PURE__ */ import_react5.default.createElement(import_renderer5.Text, { style: { textAlign: finalTextAlign } }, children)
544
- );
545
- };
546
- var Td = ({
547
- children,
548
- style,
549
- width,
550
- height,
551
- colSpan,
552
- isLast = false,
553
- isLastRow = false,
554
- isOdd = false,
555
- textAlign: propTextAlign
556
- }) => {
557
- const { cellHeight, textAlign: contextTextAlign } = (0, import_react5.useContext)(TableContext);
558
- const finalTextAlign = propTextAlign || contextTextAlign || "left";
559
- const baseWidth = typeof width === "string" && colSpan ? `${(parseFloat(width) * colSpan).toFixed(2)}%` : width;
560
- const cellHeightValue = height !== void 0 ? height : cellHeight;
561
- const borders = {
562
- borderRightWidth: isLast ? 0 : 1,
563
- borderBottomWidth: isLastRow ? 0 : 1,
564
- borderColor: "#000",
565
- minHeight: cellHeightValue
566
- };
567
- return /* @__PURE__ */ import_react5.default.createElement(
568
- import_renderer5.View,
569
- {
570
- style: [
571
- styles5.text,
572
- isOdd && styles5.zebraOdd,
573
- {
574
- width: baseWidth
575
- },
576
- borders,
577
- style
578
- ]
579
- },
580
- /* @__PURE__ */ import_react5.default.createElement(import_renderer5.Text, { style: { textAlign: finalTextAlign } }, children)
581
- );
582
- };
583
-
584
- // src/components/core/Grid.tsx
585
- var import_react6 = __toESM(require("react"), 1);
586
- var import_renderer6 = require("@react-pdf/renderer");
587
- var styles6 = import_renderer6.StyleSheet.create({
588
- container: {
589
- width: "100%",
590
- paddingHorizontal: 20
591
- },
592
- row: {
593
- flexDirection: "row",
594
- flexWrap: "wrap",
595
- marginHorizontal: -5
596
- },
597
- col: {
598
- paddingHorizontal: 5
599
- },
600
- col1: { width: "8.33%" },
601
- col2: { width: "16.66%" },
602
- col3: { width: "25%" },
603
- col4: { width: "33.33%" },
604
- col5: { width: "41.66%" },
605
- col6: { width: "50%" },
606
- col7: { width: "58.33%" },
607
- col8: { width: "66.66%" },
608
- col9: { width: "75%" },
609
- col10: { width: "83.33%" },
610
- col11: { width: "91.66%" },
611
- col12: { width: "100%" }
612
- });
613
- var Container = ({ children, style }) => {
614
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.container, style] }, children);
615
- };
616
- var Row = ({ children, style }) => {
617
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.row, style] }, children);
618
- };
619
- var Col1 = ({ children, style }) => {
620
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col1, style] }, children);
621
- };
622
- var Col2 = ({ children, style }) => {
623
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col2, style] }, children);
624
- };
625
- var Col3 = ({ children, style }) => {
626
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col3, style] }, children);
627
- };
628
- var Col4 = ({ children, style }) => {
629
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col4, style] }, children);
630
- };
631
- var Col5 = ({ children, style }) => {
632
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col5, style] }, children);
633
- };
634
- var Col6 = ({ children, style }) => {
635
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col6, style] }, children);
636
- };
637
- var Col7 = ({ children, style }) => {
638
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col7, style] }, children);
639
- };
640
- var Col8 = ({ children, style }) => {
641
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col8, style] }, children);
642
- };
643
- var Col9 = ({ children, style }) => {
644
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col9, style] }, children);
645
- };
646
- var Col10 = ({ children, style }) => {
647
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col10, style] }, children);
648
- };
649
- var Col11 = ({ children, style }) => {
650
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col11, style] }, children);
651
- };
652
- var Col12 = ({ children, style }) => {
653
- return /* @__PURE__ */ import_react6.default.createElement(import_renderer6.View, { style: [styles6.col, styles6.col12, style] }, children);
654
- };
655
-
656
- // src/components/core/QR.tsx
657
- var import_react7 = __toESM(require("react"), 1);
658
- var import_renderer7 = require("@react-pdf/renderer");
659
- var import_react8 = require("react");
660
-
661
- // src/components/core/QRGenerator.tsx
662
- var import_qrcode = __toESM(require("qrcode"), 1);
663
- var generateQRAsBase64 = async ({
664
- value,
665
- size = 150,
666
- colorDark = "#000000",
667
- colorLight = "#ffffff",
668
- margin = 0,
669
- errorCorrectionLevel = "M"
670
- }) => {
671
- try {
672
- const options = {
673
- errorCorrectionLevel,
674
- type: "image/png",
675
- quality: 0.92,
676
- margin,
677
- color: {
678
- dark: colorDark,
679
- light: colorLight
680
- },
681
- width: size
682
- };
683
- const qrDataUrl = import_qrcode.default.toDataURL(value, options);
684
- return qrDataUrl;
685
- } catch (error) {
686
- console.error("Error generando QR:", error);
687
- return "";
688
- }
689
- };
690
- var addLogoToQR = async (qrDataUrl, logoUrl, logoWidth, logoHeight) => {
691
- return new Promise((resolve) => {
692
- if (!qrDataUrl || !logoUrl) {
693
- resolve(qrDataUrl);
694
- return;
695
- }
696
- try {
697
- const canvas = document.createElement("canvas");
698
- const ctx = canvas.getContext("2d");
699
- if (!ctx) {
700
- resolve(qrDataUrl);
701
- return;
702
- }
703
- const qrImage = new Image();
704
- qrImage.crossOrigin = "anonymous";
705
- qrImage.onload = () => {
706
- canvas.width = qrImage.width;
707
- canvas.height = qrImage.height;
708
- ctx.drawImage(qrImage, 0, 0, canvas.width, canvas.height);
709
- const logoImage = new Image();
710
- logoImage.crossOrigin = "anonymous";
711
- logoImage.onload = () => {
712
- const x = (canvas.width - logoWidth) / 2;
713
- const y = (canvas.height - logoHeight) / 2;
714
- ctx.fillStyle = "#FFFFFF";
715
- ctx.fillRect(x - 5, y - 5, logoWidth + 10, logoHeight + 10);
716
- ctx.drawImage(logoImage, x, y, logoWidth, logoHeight);
717
- const finalQrDataUrl = canvas.toDataURL("image/png");
718
- resolve(finalQrDataUrl);
719
- };
720
- logoImage.onerror = () => {
721
- console.error("Error cargando el logo");
722
- resolve(qrDataUrl);
723
- };
724
- logoImage.src = logoUrl;
725
- };
726
- qrImage.onerror = () => {
727
- console.error("Error cargando el QR");
728
- resolve("");
729
- };
730
- qrImage.src = qrDataUrl;
731
- } catch (error) {
732
- console.error("Error procesando el QR con logo:", error);
733
- resolve(qrDataUrl);
734
- }
735
- });
736
- };
737
-
738
- // src/components/core/QR.tsx
739
- var styles7 = import_renderer7.StyleSheet.create({
740
- qrContainer: {
741
- display: "flex",
742
- alignItems: "center",
743
- justifyContent: "center",
744
- margin: 10
745
- }
746
- });
747
- var errorLevelMap = {
748
- 0: "L",
749
- 1: "M",
750
- 2: "Q",
751
- 3: "H"
752
- };
753
- var QR = ({
754
- value,
755
- size = 150,
756
- style,
757
- colorDark = "#000000",
758
- colorLight = "#ffffff",
759
- margin = 0,
760
- logo = "",
761
- logoWidth = 30,
762
- logoHeight = 30,
763
- errorCorrectionLevel = logo ? "H" : "M"
764
- }) => {
765
- const [qrDataUrl, setQrDataUrl] = (0, import_react8.useState)("");
766
- (0, import_react8.useEffect)(() => {
767
- const generateQR = async () => {
768
- try {
769
- const baseQrDataUrl = await generateQRAsBase64({
770
- value,
771
- size,
772
- colorDark,
773
- colorLight,
774
- margin,
775
- errorCorrectionLevel: typeof errorCorrectionLevel === "number" ? errorLevelMap[errorCorrectionLevel] || "M" : errorCorrectionLevel
776
- });
777
- if (logo && logoWidth && logoHeight) {
778
- const qrWithLogo = await addLogoToQR(baseQrDataUrl, logo, logoWidth, logoHeight);
779
- setQrDataUrl(qrWithLogo);
780
- } else {
781
- setQrDataUrl(baseQrDataUrl);
782
- }
783
- } catch (error) {
784
- console.error("Error generando QR:", error);
785
- const fallbackUrl2 = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(
786
- value
787
- )}&size=${size}x${size}&color=${encodeURIComponent(colorDark.replace("#", ""))}&bgcolor=${encodeURIComponent(
788
- colorLight.replace("#", "")
789
- )}`;
790
- setQrDataUrl(fallbackUrl2);
791
- }
792
- };
793
- generateQR();
794
- }, [value, size, colorDark, colorLight, margin, logo, logoWidth, logoHeight, errorCorrectionLevel]);
795
- const fallbackUrl = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(
796
- value
797
- )}&size=${size}x${size}`;
798
- return /* @__PURE__ */ import_react7.default.createElement(import_renderer7.View, { style: [styles7.qrContainer, style] }, /* @__PURE__ */ import_react7.default.createElement(import_renderer7.Image, { src: qrDataUrl || fallbackUrl, style: { width: size, height: size } }));
799
- };
800
- var QR_default = QR;
801
-
802
- // src/components/core/Lista.tsx
803
- var import_react9 = __toESM(require("react"), 1);
804
- var import_renderer8 = require("@react-pdf/renderer");
805
- var styles8 = import_renderer8.StyleSheet.create({
806
- ul: {
807
- marginBottom: 10,
808
- paddingLeft: 15
809
- },
810
- ol: {
811
- marginBottom: 10,
812
- paddingLeft: 15
813
- },
814
- li: {
815
- marginBottom: 5,
816
- flexDirection: "row"
817
- },
818
- bulletPoint: {
819
- width: 15,
820
- marginRight: 5,
821
- fontSize: 12
822
- },
823
- itemContent: {
824
- flex: 1
825
- }
826
- });
827
- var getBulletPoint = (type = "disc") => {
828
- switch (type) {
829
- case "circle":
830
- return "\u25CB";
831
- case "square":
832
- return "\u25A0";
833
- case "disc":
834
- default:
835
- return "\u2022";
836
- }
837
- };
838
- var getOrderedMarker = (index, type = "decimal", start = 1) => {
839
- const actualIndex = start + index - 1;
840
- switch (type) {
841
- case "lower-alpha":
842
- return String.fromCharCode(97 + actualIndex % 26) + ".";
843
- case "upper-alpha":
844
- return String.fromCharCode(65 + actualIndex % 26) + ".";
845
- case "lower-roman":
846
- return toRoman(actualIndex).toLowerCase() + ".";
847
- case "upper-roman":
848
- return toRoman(actualIndex) + ".";
849
- case "decimal":
850
- default:
851
- return actualIndex + ".";
852
- }
853
- };
854
- var toRoman = (num) => {
855
- if (num <= 0 || num > 3999) return String(num);
856
- const romanNumerals = [
857
- ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"],
858
- ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"],
859
- ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"],
860
- ["", "M", "MM", "MMM"]
861
- ];
862
- return romanNumerals[3][Math.floor(num / 1e3)] + romanNumerals[2][Math.floor(num % 1e3 / 100)] + romanNumerals[1][Math.floor(num % 100 / 10)] + romanNumerals[0][num % 10];
863
- };
864
- var UL = ({ children, style, type = "disc" }) => {
865
- const childrenWithBullets = import_react9.default.Children.map(children, (child, index) => {
866
- if (import_react9.default.isValidElement(child)) {
867
- return import_react9.default.cloneElement(child, {
868
- bulletType: type,
869
- isOrdered: false,
870
- index: index + 1
871
- });
872
- }
873
- return child;
874
- });
875
- return /* @__PURE__ */ import_react9.default.createElement(import_renderer8.View, { style: [styles8.ul, style] }, childrenWithBullets);
876
- };
877
- var OL = ({ children, style, type = "decimal", start = 1 }) => {
878
- const childrenWithNumbers = import_react9.default.Children.map(children, (child, index) => {
879
- if (import_react9.default.isValidElement(child)) {
880
- return import_react9.default.cloneElement(child, {
881
- bulletType: type,
882
- isOrdered: true,
883
- index: index + 1,
884
- start
885
- });
886
- }
887
- return child;
888
- });
889
- return /* @__PURE__ */ import_react9.default.createElement(import_renderer8.View, { style: [styles8.ol, style] }, childrenWithNumbers);
890
- };
891
- var LI = ({ children, style, bulletType = "disc", isOrdered = false, index = 1, start = 1, value }) => {
892
- let marker;
893
- if (isOrdered) {
894
- const actualIndex = value !== void 0 ? Number(value) : index;
895
- marker = getOrderedMarker(actualIndex, bulletType, start);
896
- } else {
897
- marker = getBulletPoint(bulletType);
898
- }
899
- return /* @__PURE__ */ import_react9.default.createElement(import_renderer8.View, { style: [styles8.li, style] }, /* @__PURE__ */ import_react9.default.createElement(import_renderer8.Text, { style: styles8.bulletPoint }, marker), /* @__PURE__ */ import_react9.default.createElement(import_renderer8.View, { style: styles8.itemContent }, typeof children === "string" ? /* @__PURE__ */ import_react9.default.createElement(import_renderer8.Text, null, children) : children));
900
- };
901
-
902
- // src/components/core/index.tsx
903
- var import_renderer12 = require("@react-pdf/renderer");
904
-
905
- // src/functions/decodeBase64Pdf.ts
906
- var decodeBase64Pdf = (base64, fileName) => {
907
- const byteCharacters = atob(base64);
908
- const byteNumbers = new Array(byteCharacters.length);
909
- for (let i = 0; i < byteCharacters.length; i++) {
910
- byteNumbers[i] = byteCharacters.charCodeAt(i);
911
- }
912
- const byteArray = new Uint8Array(byteNumbers);
913
- const blob = new Blob([byteArray], { type: "application/pdf" });
914
- const blobUrl = URL.createObjectURL(blob);
915
- if (document === void 0) {
916
- console.error("document is undefined, only works in browser context");
917
- return;
918
- }
919
- const link = document.createElement("a");
920
- link.href = blobUrl;
921
- link.download = fileName;
922
- document.body.appendChild(link);
923
- link.click();
924
- document.body.removeChild(link);
925
- window.open(blobUrl, "_blank");
926
- setTimeout(() => {
927
- URL.revokeObjectURL(blobUrl);
928
- }, 100);
929
- };
930
- var decodeBase64Pdf_default = decodeBase64Pdf;
931
-
932
- // src/functions/generatePDF.ts
933
- var import_renderer9 = require("@react-pdf/renderer");
934
- var import_react10 = require("react");
935
- var generatePDF = async ({ template: Template, data }) => {
936
- try {
937
- if (!Template) {
938
- throw new Error("Template not provided");
939
- }
940
- const MyDocument = (0, import_react10.createElement)(Template, { data });
941
- const stream = await (0, import_renderer9.renderToStream)(MyDocument);
942
- const base64String = await new Promise((resolve, reject) => {
943
- const chunks = [];
944
- stream.on("data", (chunk) => chunks.push(chunk));
945
- stream.on("end", () => resolve(Buffer.concat(chunks).toString("base64")));
946
- stream.on("error", (error) => reject(error));
947
- });
948
- return base64String;
949
- } catch (error) {
950
- throw new Error("Error generating PDF: " + (error instanceof Error ? error.message : "Unknown error"));
951
- }
952
- };
953
- var generatePDF_default = generatePDF;
954
-
955
- // src/functions/index.ts
956
- var import_renderer10 = require("@react-pdf/renderer");
957
-
958
- // src/components/core/ImgBg.tsx
959
- var import_react11 = __toESM(require("react"), 1);
960
- var import_renderer11 = require("@react-pdf/renderer");
961
- var styles9 = import_renderer11.StyleSheet.create({
962
- container: {
963
- position: "relative",
964
- width: "100%",
965
- height: "100%"
966
- },
967
- background: {
968
- position: "absolute",
969
- top: 0,
970
- left: 0,
971
- right: 0,
972
- bottom: 0
973
- },
974
- content: {
975
- position: "relative"
976
- }
977
- });
978
- var ImgBg = ({
979
- src,
980
- width = "100%",
981
- height = "100%",
982
- opacity = 0.2,
983
- children,
984
- style,
985
- fixed = false,
986
- objectFit = "cover",
987
- objectPosition = "center"
988
- }) => {
989
- return /* @__PURE__ */ import_react11.default.createElement(import_renderer11.View, { style: [styles9.container, style] }, /* @__PURE__ */ import_react11.default.createElement(
990
- import_renderer11.Image,
991
- {
992
- src,
993
- style: [
994
- styles9.background,
995
- { width, height, opacity, objectFit, objectPosition }
996
- ],
997
- fixed
998
- }
999
- ), /* @__PURE__ */ import_react11.default.createElement(import_renderer11.View, { style: styles9.content }, children));
1000
- };
1001
- var ImgBg_default = ImgBg;
1002
- // Annotate the CommonJS export names for ESM import in node:
1003
- 0 && (module.exports = {
1004
- A,
1005
- BR,
1006
- Blockquote,
1007
- Center,
1008
- Col1,
1009
- Col10,
1010
- Col11,
1011
- Col12,
1012
- Col2,
1013
- Col3,
1014
- Col4,
1015
- Col5,
1016
- Col6,
1017
- Col7,
1018
- Col8,
1019
- Col9,
1020
- Container,
1021
- Div,
1022
- Em,
1023
- Font,
1024
- H1,
1025
- H2,
1026
- H3,
1027
- H4,
1028
- H5,
1029
- H6,
1030
- Header,
1031
- Img,
1032
- ImgBg,
1033
- LI,
1034
- LayoutPDF,
1035
- Left,
1036
- Mark,
1037
- OL,
1038
- P,
1039
- QR,
1040
- Right,
1041
- Row,
1042
- Small,
1043
- Span,
1044
- Strong,
1045
- StyleSheet,
1046
- Table,
1047
- Tbody,
1048
- Td,
1049
- Text,
1050
- Th,
1051
- Thead,
1052
- Tr,
1053
- U,
1054
- UL,
1055
- View,
1056
- decodeBase64Pdf,
1057
- generatePDF,
1058
- renderToStream
1059
- });
1
+ 'use strict';var renderer=require('@react-pdf/renderer'),O=require('react'),jsxRuntime=require('react/jsx-runtime'),Et=require('qrcode');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var O__default=/*#__PURE__*/_interopDefault(O);var Et__default=/*#__PURE__*/_interopDefault(Et);var ft=(e,t)=>{let o=atob(e),r=new Array(o.length);for(let d=0;d<o.length;d++)r[d]=o.charCodeAt(d);let a=new Uint8Array(r),i=new Blob([a],{type:"application/pdf"}),n=URL.createObjectURL(i);if(document===void 0){console.error("document is undefined, only works in browser context");return}let s=document.createElement("a");s.href=n,s.download=t,document.body.appendChild(s),s.click(),document.body.removeChild(s),window.open(n,"_blank"),setTimeout(()=>{URL.revokeObjectURL(n);},100);},J=ft;var wt=async({template:e,data:t})=>{try{if(!e)throw new Error("Template not provided");let o=O.createElement(e,{data:t}),r=await renderer.renderToStream(o);return await new Promise((i,n)=>{let s=[];r.on("data",d=>s.push(d)),r.on("end",()=>i(Buffer.concat(s).toString("base64"))),r.on("error",d=>n(d));})}catch(o){throw new Error("Error generating PDF: "+(o instanceof Error?o.message:"Unknown error"))}},_=wt;var ie=renderer.StyleSheet.create({page:{backgroundColor:"white",padding:30,fontFamily:"Helvetica",fontSize:14},footer:{position:"absolute",left:0,right:0,textAlign:"center"}}),Pt=({children:e,size:t="A4",orientation:o="vertical",backgroundColor:r="white",padding:a=30,margen:i="normal",style:n={},pagination:s=true,footer:d,lines:l=d?2:1,rule:c=false})=>{let u=l*20+10,P=(y,F)=>{let T=F.toUpperCase();switch(y){case "apa":return T==="LETTER"||T==="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:a,paddingRight:a,paddingBottom:a,paddingLeft:a}}},R=t,I=o,S=r,B=Math.max(1,Math.min(l,10)),U=i;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.`),R="A4"),o!=="vertical"&&o!=="horizontal"&&(console.warn(`Invalid orientation: ${o}. Using vertical as default.`),I="vertical"),typeof r!="string"&&(console.warn(`Invalid background color: ${r}. Using white as default.`),S="white"),["apa","normal","estrecho","ancho"].includes(i)||(console.warn(`Invalid margin type: ${i}. Using normal as default.`),U="normal"),(typeof l!="number"||l<1)&&(console.warn(`Invalid lines value: ${l}. Using 1 as default.`),B=1);}catch(y){console.warn("Error processing props in LayoutPDF:",y);}let v=y=>{switch(y){case "vertical":case "portrait":case "v":return "portrait";case "horizontal":case "landscape":case "h":return "landscape";default:return console.warn(`Unrecognized orientation: ${y}. Using portrait as default.`),"portrait"}},gt=(y,F,T)=>{let G={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}},q=2.834645669,A=G[y.toUpperCase()];if(!A)return F==="landscape"?595-T-10:842-T-10;let z=A.height*q,C=A.width*q;return F==="landscape"?C-T-10:z-T-10},N=v(I),ne=P(U,R),mt=gt(R,N,u),pt=()=>{if(!c)return null;let y=28.3465,F={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}},T=F[R.toUpperCase()]||F.A4,G=N==="landscape"?T.height:T.width,q=N==="landscape"?T.width:T.height,A=[],z=[];for(let C=0;C<=Math.ceil(q/y);C++)A.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",top:C*y,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(G/y);C++)z.push(jsxRuntime.jsx(renderer.View,{style:{position:"absolute",left:C*y,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,z]})},ht={...ie.page,backgroundColor:S,...ne,paddingBottom:ne.paddingBottom+u,...n},ae={...ie.footer,top:mt,height:u,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",fontSize:10,color:"grey"};return jsxRuntime.jsx(renderer.Document,{children:jsxRuntime.jsxs(renderer.Page,{size:R,orientation:N,style:ht,wrap:true,children:[pt(),jsxRuntime.jsx(renderer.View,{style:{paddingBottom:u},children:e}),s?jsxRuntime.jsxs(renderer.View,{style:ae,fixed:true,children:[d,jsxRuntime.jsx(renderer.Text,{style:{fontSize:ae.fontSize},render:({pageNumber:y,totalPages:F})=>`${y} / ${F}`})]}):null]})})},se=Pt;var Lt=renderer.StyleSheet.create({image:{width:"100%",height:"auto",marginBottom:14}}),St=({src:e,style:t})=>jsxRuntime.jsx(renderer.Image,{src:e,style:[Lt.image,t]}),le=St;var Y=renderer.StyleSheet.create({left:{textAlign:"left"},right:{textAlign:"right"},center:{textAlign:"center"}}),ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[Y.left,t],children:e}),de=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[Y.right,t],children:e}),ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[Y.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}}),me=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.p,t],children:e}),pe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h1,t],children:e}),he=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h2,t],children:e}),fe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h3,t],children:e}),ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h4,t],children:e}),ye=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h5,t],children:e}),we=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.h6,t],children:e}),Ce=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.strong,t],children:e}),Re=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.em,t],children:e}),be=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.u,t],children:e}),xe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.small,t],children:e}),Pe=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.blockquote,t],children:e}),Te=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[f.mark,t],children:e}),Fe=({children:e,style:t,href:o})=>jsxRuntime.jsx(renderer.Link,{src:o,style:[f.A,t],children:e}),Le=({style:e})=>jsxRuntime.jsx(renderer.Text,{style:[f.br,e],children:`
2
+ `}),Se=({style:e})=>jsxRuntime.jsx(renderer.View,{style:[f.hr,e]}),Ae=({children:e,style:t})=>jsxRuntime.jsx(renderer.Text,{style:[t],children:e}),Ve=({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}),Oe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:t,children:e});var E=O.createContext({cellHeight:22,textAlign:"left"}),V=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"}}),Be=({children:e,style:t,cellHeight:o=22})=>jsxRuntime.jsx(E.Provider,{value:{cellHeight:o,textAlign:"left"},children:jsxRuntime.jsx(renderer.View,{style:[V.table,t],children:e})}),ve=({children:e,style:t,textAlign:o="left"})=>{let{cellHeight:r}=O.useContext(E);return jsxRuntime.jsx(E.Provider,{value:{cellHeight:r,textAlign:o},children:jsxRuntime.jsx(renderer.View,{style:[V.thead,t],children:e})})},ke=({children:e,style:t})=>{let o=O__default.default.Children.toArray(e),r=o.length;return jsxRuntime.jsx(jsxRuntime.Fragment,{children:o.map((a,i)=>O__default.default.cloneElement(a,{isLastRow:i===r-1,isOdd:i%2===1}))})},De=({children:e,style:t,isLastRow:o=false,isOdd:r=false})=>{let a=O__default.default.Children.toArray(e),i=a.length;return jsxRuntime.jsx(renderer.View,{style:[V.tr,t],children:a.map((n,s)=>{let d=s===i-1,l=`${(100/i).toFixed(2)}%`;return O__default.default.cloneElement(n,{width:l,isLast:d,isLastRow:o,isOdd:r})})})},Ee=({children:e,style:t,width:o,height:r,colSpan:a,isLast:i=false,isLastRow:n=false,textAlign:s})=>{let{cellHeight:d,textAlign:l}=O.useContext(E),c=s||l||"left",g=typeof o=="string"&&a?`${(parseFloat(o)*a).toFixed(2)}%`:o,u={borderRightWidth:i?0:1,borderBottomWidth:n?0:1,borderColor:"#000",minHeight:r!==void 0?r:d};return jsxRuntime.jsx(renderer.View,{style:[V.textBold,{width:g},u,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:c},children:e})})},He=({children:e,style:t,width:o,height:r,colSpan:a,isLast:i=false,isLastRow:n=false,isOdd:s=false,textAlign:d})=>{let{cellHeight:l,textAlign:c}=O.useContext(E),g=d||c||"left",p=typeof o=="string"&&a?`${(parseFloat(o)*a).toFixed(2)}%`:o,P={borderRightWidth:i?0:1,borderBottomWidth:n?0:1,borderColor:"#000",minHeight:r!==void 0?r:l};return jsxRuntime.jsx(renderer.View,{style:[V.text,s&&V.zebraOdd,{width:p},P,t],children:jsxRuntime.jsx(renderer.Text,{style:{textAlign:g},children:e})})};var m=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%"}}),Qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.container,t],children:e}),Me=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.row,t],children:e}),Ue=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col1,t],children:e}),Ne=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col2,t],children:e}),qe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col3,t],children:e}),ze=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col4,t],children:e}),$e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col5,t],children:e}),We=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col6,t],children:e}),Xe=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col7,t],children:e}),Ge=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col8,t],children:e}),Je=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col9,t],children:e}),_e=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col10,t],children:e}),je=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col11,t],children:e}),Ke=({children:e,style:t})=>jsxRuntime.jsx(renderer.View,{style:[m.col,m.col12,t],children:e});var W=async({value:e,size:t=150,colorDark:o="#000000",colorLight:r="#ffffff",margin:a=0,errorCorrectionLevel:i="M"})=>{try{let n={errorCorrectionLevel:i,type:"image/png",quality:.92,margin:a,color:{dark:o,light:r},width:t};return Et__default.default.toDataURL(e,n)}catch(n){return console.error("Error generando QR:",n),""}},Ye=async(e,t,o,r)=>new Promise(async a=>{if(!e||!t){a(e);return}try{let i=typeof window<"u"&&typeof window.document<"u",n,s,d;if(i)n=document.createElement("canvas"),s=n.getContext("2d"),d=window.Image;else try{let{createCanvas:c,Image:g}=await import('canvas');n=c(100,100),s=n.getContext("2d"),d=g;}catch(c){console.error("Canvas not available in Node environment for addLogoToQR",c),a(e);return}if(!s){a(e);return}let l=new d;i&&(l.crossOrigin="anonymous"),l.onload=()=>{n.width=l.width,n.height=l.height,s.drawImage(l,0,0,n.width,n.height);let c=new d;i&&(c.crossOrigin="anonymous"),c.onload=()=>{let g=(n.width-o)/2,p=(n.height-r)/2;s.fillStyle="#FFFFFF",s.fillRect(g-5,p-5,o+10,r+10),s.drawImage(c,g,p,o,r);let u=n.toDataURL("image/png");a(u);},c.onerror=g=>{console.error("Error cargando el logo:",g),a(e);},c.src=t;},l.onerror=c=>{console.error("Error cargando el QR:",c),a("");},l.src=e;}catch(i){console.error("Error procesando el QR con logo:",i),a(e);}});var qt=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center",margin:10}}),zt={0:"L",1:"M",2:"Q",3:"H"},$t=({value:e,size:t=150,style:o,colorDark:r="#000000",colorLight:a="#ffffff",margin:i=0,logo:n="",logoWidth:s=30,logoHeight:d=30,errorCorrectionLevel:l=n?"H":"M"})=>{let[c,g]=O.useState("");O.useEffect(()=>{(async()=>{try{let P=await W({value:e,size:t,colorDark:r,colorLight:a,margin:i,errorCorrectionLevel:typeof l=="number"?zt[l]||"M":l});if(n&&s&&d){let R=await Ye(P,n,s,d);g(R);}else g(P);}catch(P){console.error("Error generando QR:",P);let R=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}&color=${encodeURIComponent(r.replace("#",""))}&bgcolor=${encodeURIComponent(a.replace("#",""))}`;g(R);}})();},[e,t,r,a,i,n,s,d,l]);let p=`https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(e)}&size=${t}x${t}`;return jsxRuntime.jsx(renderer.View,{style:[qt.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{src:c||p,style:{width:t,height:t}})})},et=$t;var oe=async e=>{try{let t=typeof window<"u"&&typeof window.document<"u",o,r={};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",g="canvas",p="qr-code-styling/lib/qr-code-styling.common.js";try{let[u,P,R]=await Promise.all([import(c),import(g),import(p)]),{JSDOM:I}=u,S=P.default||P,{QRCodeStyling:B}=R;o=B,r={jsdom:I,nodeCanvas:S};}catch(u){throw console.error("Failed to load Node dependencies for QR generation",u),u}}let a=typeof e.width=="number"&&isFinite(e.width)?Math.round(e.width):300,i=typeof e.height=="number"&&isFinite(e.height)?Math.round(e.height):300,n=!!e.image,s={width:a,height:i,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},l=await new o({type:"png",...r,...s}).getRawData("png");if(!l)throw new Error("Failed to generate raw data from qr-code-styling");if(t){if(l instanceof Blob)return new Promise((c,g)=>{let p=new FileReader;p.onloadend=()=>{typeof p.result=="string"?c(p.result):g(new Error("Failed to convert blob to base64"));},p.onerror=g,p.readAsDataURL(l);});console.warn("Unexpected rawData type in browser:",l);}if(typeof Buffer<"u"&&Buffer.isBuffer(l))return `data:image/png;base64,${l.toString("base64")}`;throw new Error(`Unexpected raw data type: ${typeof l}`)}catch(t){return console.error("Error generating QR V2, falling back to V1:",t),W({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 jt=renderer.StyleSheet.create({qrContainer:{display:"flex",alignItems:"center",justifyContent:"center"}}),Kt=({value:e,size:t=300,style:o,image:r,dotsOptions:a,backgroundOptions:i,imageOptions:n,cornersSquareOptions:s,cornersDotOptions:d,colorDark:l,colorLight:c,margin:g,errorCorrectionLevel:p})=>{let[u,P]=O.useState("");return O.useEffect(()=>{let R=true;return (async()=>{let S=a||(l?{color:l}:void 0),B=i||(c?{color:c}:void 0),U={...n,margin:n?.margin!==void 0?n.margin:g};try{let v=await oe({value:e,width:t,height:t,image:r,dotsOptions:S,backgroundOptions:B,imageOptions:U,cornersSquareOptions:s,cornersDotOptions:d,fallbackColorDark:l,fallbackColorLight:c,fallbackMargin:g,fallbackErrorCorrectionLevel:p});R&&P(v);}catch(v){console.error("QRV2 Generation Error:",v);}})(),()=>{R=false;}},[e,t,r,JSON.stringify(a),JSON.stringify(i),JSON.stringify(n),JSON.stringify(s),JSON.stringify(d),l,c,g,p]),jsxRuntime.jsx(renderer.View,{style:[jt.qrContainer,o],children:jsxRuntime.jsx(renderer.Image,{style:{width:t,height:t},src:oe({value:e,width:t,height:t,image:r,dotsOptions:a||(l?{color:l}:void 0),backgroundOptions:i||(c?{color:c}:void 0),imageOptions:{...n,margin:n?.margin!==void 0?n.margin:g},cornersSquareOptions:s,cornersDotOptions:d,fallbackColorDark:l,fallbackColorLight:c,fallbackMargin:g,fallbackErrorCorrectionLevel:p})})})},ot=Kt;var Q=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}}),Zt=(e="disc")=>{switch(e){case "circle":return "\u25CB";case "square":return "\u25A0";default:return "\u2022"}},eo=(e,t="decimal",o=1)=>{let r=o+e-1;switch(t){case "lower-alpha":return String.fromCharCode(97+r%26)+".";case "upper-alpha":return String.fromCharCode(65+r%26)+".";case "lower-roman":return nt(r).toLowerCase()+".";case "upper-roman":return nt(r)+".";default:return r+"."}},nt=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]},at=({children:e,style:t,type:o="disc"})=>{let r=O__default.default.Children.map(e,(a,i)=>O__default.default.isValidElement(a)?O__default.default.cloneElement(a,{bulletType:o,isOrdered:false,index:i+1}):a);return jsxRuntime.jsx(renderer.View,{style:[Q.ul,t],children:r})},it=({children:e,style:t,type:o="decimal",start:r=1})=>{let a=O__default.default.Children.map(e,(i,n)=>O__default.default.isValidElement(i)?O__default.default.cloneElement(i,{bulletType:o,isOrdered:true,index:n+1,start:r}):i);return jsxRuntime.jsx(renderer.View,{style:[Q.ol,t],children:a})},st=({children:e,style:t,bulletType:o="disc",isOrdered:r=false,index:a=1,start:i=1,value:n})=>{let s;if(r){let d=n!==void 0?Number(n):a;s=eo(d,o,i);}else s=Zt(o);return jsxRuntime.jsxs(renderer.View,{style:[Q.li,t],children:[jsxRuntime.jsx(renderer.Text,{style:Q.bulletPoint,children:s}),jsxRuntime.jsx(renderer.View,{style:Q.itemContent,children:typeof e=="string"?jsxRuntime.jsx(renderer.Text,{children:e}):e})]})};var re=renderer.StyleSheet.create({container:{position:"relative",width:"100%",height:"100%"},background:{position:"absolute",top:0,left:0,right:0,bottom:0},content:{position:"relative"}}),no=({src:e,width:t="100%",height:o="100%",opacity:r=.2,children:a,style:i,fixed:n=false,objectFit:s="cover",objectPosition:d="center"})=>jsxRuntime.jsxs(renderer.View,{style:[re.container,i],children:[jsxRuntime.jsx(renderer.Image,{src:e,style:[re.background,{width:t,height:o,opacity:r,objectFit:s,objectPosition:d}],fixed:n}),jsxRuntime.jsx(renderer.View,{style:re.content,children:a})]}),dt=no;
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=Fe;exports.BR=Le;exports.Blockquote=Pe;exports.Center=ge;exports.Col1=Ue;exports.Col10=_e;exports.Col11=je;exports.Col12=Ke;exports.Col2=Ne;exports.Col3=qe;exports.Col4=ze;exports.Col5=$e;exports.Col6=We;exports.Col7=Xe;exports.Col8=Ge;exports.Col9=Je;exports.Container=Qe;exports.Div=Oe;exports.Em=Re;exports.H1=pe;exports.H2=he;exports.H3=fe;exports.H4=ue;exports.H5=ye;exports.H6=we;exports.HR=Se;exports.Header=Ve;exports.Img=le;exports.ImgBg=dt;exports.LI=st;exports.LayoutPDF=se;exports.Left=ce;exports.Mark=Te;exports.OL=it;exports.P=me;exports.QR=et;exports.QRV2=ot;exports.Right=de;exports.Row=Me;exports.Small=xe;exports.Span=Ae;exports.Strong=Ce;exports.Table=Be;exports.Tbody=ke;exports.Td=He;exports.Th=Ee;exports.Thead=ve;exports.Tr=De;exports.U=be;exports.UL=at;exports.decodeBase64Pdf=J;exports.generatePDF=_;//# sourceMappingURL=index.cjs.map
4
+ //# sourceMappingURL=index.cjs.map