av6-pdf-engine 1.0.0

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.
Files changed (173) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +19 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/renderer-engine/blocks/barcode.d.ts +3 -0
  6. package/dist/renderer-engine/blocks/barcode.d.ts.map +1 -0
  7. package/dist/renderer-engine/blocks/barcode.js +47 -0
  8. package/dist/renderer-engine/blocks/barcode.js.map +1 -0
  9. package/dist/renderer-engine/blocks/columns.d.ts +3 -0
  10. package/dist/renderer-engine/blocks/columns.d.ts.map +1 -0
  11. package/dist/renderer-engine/blocks/columns.js +105 -0
  12. package/dist/renderer-engine/blocks/columns.js.map +1 -0
  13. package/dist/renderer-engine/blocks/image.d.ts +4 -0
  14. package/dist/renderer-engine/blocks/image.d.ts.map +1 -0
  15. package/dist/renderer-engine/blocks/image.js +57 -0
  16. package/dist/renderer-engine/blocks/image.js.map +1 -0
  17. package/dist/renderer-engine/blocks/index.d.ts +8 -0
  18. package/dist/renderer-engine/blocks/index.d.ts.map +1 -0
  19. package/dist/renderer-engine/blocks/index.js +24 -0
  20. package/dist/renderer-engine/blocks/index.js.map +1 -0
  21. package/dist/renderer-engine/blocks/key-value-grid.d.ts +3 -0
  22. package/dist/renderer-engine/blocks/key-value-grid.d.ts.map +1 -0
  23. package/dist/renderer-engine/blocks/key-value-grid.js +245 -0
  24. package/dist/renderer-engine/blocks/key-value-grid.js.map +1 -0
  25. package/dist/renderer-engine/blocks/line.d.ts +3 -0
  26. package/dist/renderer-engine/blocks/line.d.ts.map +1 -0
  27. package/dist/renderer-engine/blocks/line.js +35 -0
  28. package/dist/renderer-engine/blocks/line.js.map +1 -0
  29. package/dist/renderer-engine/blocks/table.d.ts +4 -0
  30. package/dist/renderer-engine/blocks/table.d.ts.map +1 -0
  31. package/dist/renderer-engine/blocks/table.js +201 -0
  32. package/dist/renderer-engine/blocks/table.js.map +1 -0
  33. package/dist/renderer-engine/blocks/text.d.ts +3 -0
  34. package/dist/renderer-engine/blocks/text.d.ts.map +1 -0
  35. package/dist/renderer-engine/blocks/text.js +52 -0
  36. package/dist/renderer-engine/blocks/text.js.map +1 -0
  37. package/dist/renderer-engine/index.d.ts +4 -0
  38. package/dist/renderer-engine/index.d.ts.map +1 -0
  39. package/dist/renderer-engine/index.js +215 -0
  40. package/dist/renderer-engine/index.js.map +1 -0
  41. package/dist/renderer-engine/utils/block-renderer.d.ts +17 -0
  42. package/dist/renderer-engine/utils/block-renderer.d.ts.map +1 -0
  43. package/dist/renderer-engine/utils/block-renderer.js +86 -0
  44. package/dist/renderer-engine/utils/block-renderer.js.map +1 -0
  45. package/dist/renderer-engine/utils/context.d.ts +3 -0
  46. package/dist/renderer-engine/utils/context.d.ts.map +1 -0
  47. package/dist/renderer-engine/utils/context.js +16 -0
  48. package/dist/renderer-engine/utils/context.js.map +1 -0
  49. package/dist/renderer-engine/utils/ensure-space.d.ts +9 -0
  50. package/dist/renderer-engine/utils/ensure-space.d.ts.map +1 -0
  51. package/dist/renderer-engine/utils/ensure-space.js +18 -0
  52. package/dist/renderer-engine/utils/ensure-space.js.map +1 -0
  53. package/dist/renderer-engine/utils/env.d.ts +3 -0
  54. package/dist/renderer-engine/utils/env.d.ts.map +1 -0
  55. package/dist/renderer-engine/utils/env.js +10 -0
  56. package/dist/renderer-engine/utils/env.js.map +1 -0
  57. package/dist/renderer-engine/utils/finish-page.d.ts +13 -0
  58. package/dist/renderer-engine/utils/finish-page.d.ts.map +1 -0
  59. package/dist/renderer-engine/utils/finish-page.js +27 -0
  60. package/dist/renderer-engine/utils/finish-page.js.map +1 -0
  61. package/dist/renderer-engine/utils/footer.d.ts +3 -0
  62. package/dist/renderer-engine/utils/footer.d.ts.map +1 -0
  63. package/dist/renderer-engine/utils/footer.js +89 -0
  64. package/dist/renderer-engine/utils/footer.js.map +1 -0
  65. package/dist/renderer-engine/utils/header.d.ts +3 -0
  66. package/dist/renderer-engine/utils/header.d.ts.map +1 -0
  67. package/dist/renderer-engine/utils/header.js +47 -0
  68. package/dist/renderer-engine/utils/header.js.map +1 -0
  69. package/dist/renderer-engine/utils/image-loader.d.ts +4 -0
  70. package/dist/renderer-engine/utils/image-loader.d.ts.map +1 -0
  71. package/dist/renderer-engine/utils/image-loader.js +52 -0
  72. package/dist/renderer-engine/utils/image-loader.js.map +1 -0
  73. package/dist/renderer-engine/utils/index.d.ts +19 -0
  74. package/dist/renderer-engine/utils/index.d.ts.map +1 -0
  75. package/dist/renderer-engine/utils/index.js +35 -0
  76. package/dist/renderer-engine/utils/index.js.map +1 -0
  77. package/dist/renderer-engine/utils/layout.d.ts +8 -0
  78. package/dist/renderer-engine/utils/layout.d.ts.map +1 -0
  79. package/dist/renderer-engine/utils/layout.js +22 -0
  80. package/dist/renderer-engine/utils/layout.js.map +1 -0
  81. package/dist/renderer-engine/utils/measure-block-height.d.ts +8 -0
  82. package/dist/renderer-engine/utils/measure-block-height.d.ts.map +1 -0
  83. package/dist/renderer-engine/utils/measure-block-height.js +220 -0
  84. package/dist/renderer-engine/utils/measure-block-height.js.map +1 -0
  85. package/dist/renderer-engine/utils/page-background.d.ts +6 -0
  86. package/dist/renderer-engine/utils/page-background.d.ts.map +1 -0
  87. package/dist/renderer-engine/utils/page-background.js +30 -0
  88. package/dist/renderer-engine/utils/page-background.js.map +1 -0
  89. package/dist/renderer-engine/utils/page-flow.d.ts +3 -0
  90. package/dist/renderer-engine/utils/page-flow.d.ts.map +1 -0
  91. package/dist/renderer-engine/utils/page-flow.js +9 -0
  92. package/dist/renderer-engine/utils/page-flow.js.map +1 -0
  93. package/dist/renderer-engine/utils/page-limit.d.ts +8 -0
  94. package/dist/renderer-engine/utils/page-limit.d.ts.map +1 -0
  95. package/dist/renderer-engine/utils/page-limit.js +15 -0
  96. package/dist/renderer-engine/utils/page-limit.js.map +1 -0
  97. package/dist/renderer-engine/utils/qr-bar-code.d.ts +17 -0
  98. package/dist/renderer-engine/utils/qr-bar-code.d.ts.map +1 -0
  99. package/dist/renderer-engine/utils/qr-bar-code.js +141 -0
  100. package/dist/renderer-engine/utils/qr-bar-code.js.map +1 -0
  101. package/dist/renderer-engine/utils/signature.d.ts +20 -0
  102. package/dist/renderer-engine/utils/signature.d.ts.map +1 -0
  103. package/dist/renderer-engine/utils/signature.js +214 -0
  104. package/dist/renderer-engine/utils/signature.js.map +1 -0
  105. package/dist/renderer-engine/utils/start-page-layout.d.ts +20 -0
  106. package/dist/renderer-engine/utils/start-page-layout.d.ts.map +1 -0
  107. package/dist/renderer-engine/utils/start-page-layout.js +34 -0
  108. package/dist/renderer-engine/utils/start-page-layout.js.map +1 -0
  109. package/dist/renderer-engine/utils/styles.d.ts +7 -0
  110. package/dist/renderer-engine/utils/styles.d.ts.map +1 -0
  111. package/dist/renderer-engine/utils/styles.js +124 -0
  112. package/dist/renderer-engine/utils/styles.js.map +1 -0
  113. package/dist/renderer-engine/utils/watermark.d.ts +11 -0
  114. package/dist/renderer-engine/utils/watermark.d.ts.map +1 -0
  115. package/dist/renderer-engine/utils/watermark.js +57 -0
  116. package/dist/renderer-engine/utils/watermark.js.map +1 -0
  117. package/dist/types/barcode.d.ts +23 -0
  118. package/dist/types/barcode.d.ts.map +1 -0
  119. package/dist/types/barcode.js +11 -0
  120. package/dist/types/barcode.js.map +1 -0
  121. package/dist/types/columns.d.ts +14 -0
  122. package/dist/types/columns.d.ts.map +1 -0
  123. package/dist/types/columns.js +3 -0
  124. package/dist/types/columns.js.map +1 -0
  125. package/dist/types/common.d.ts +102 -0
  126. package/dist/types/common.d.ts.map +1 -0
  127. package/dist/types/common.js +3 -0
  128. package/dist/types/common.js.map +1 -0
  129. package/dist/types/context.d.ts +17 -0
  130. package/dist/types/context.d.ts.map +1 -0
  131. package/dist/types/context.js +3 -0
  132. package/dist/types/context.js.map +1 -0
  133. package/dist/types/image.d.ts +13 -0
  134. package/dist/types/image.d.ts.map +1 -0
  135. package/dist/types/image.js +3 -0
  136. package/dist/types/image.js.map +1 -0
  137. package/dist/types/index.d.ts +13 -0
  138. package/dist/types/index.d.ts.map +1 -0
  139. package/dist/types/index.js +29 -0
  140. package/dist/types/index.js.map +1 -0
  141. package/dist/types/key-value-grid.d.ts +34 -0
  142. package/dist/types/key-value-grid.d.ts.map +1 -0
  143. package/dist/types/key-value-grid.js +3 -0
  144. package/dist/types/key-value-grid.js.map +1 -0
  145. package/dist/types/line.d.ts +11 -0
  146. package/dist/types/line.d.ts.map +1 -0
  147. package/dist/types/line.js +3 -0
  148. package/dist/types/line.js.map +1 -0
  149. package/dist/types/page-break.d.ts +5 -0
  150. package/dist/types/page-break.d.ts.map +1 -0
  151. package/dist/types/page-break.js +3 -0
  152. package/dist/types/page-break.js.map +1 -0
  153. package/dist/types/qr.d.ts +22 -0
  154. package/dist/types/qr.d.ts.map +1 -0
  155. package/dist/types/qr.js +10 -0
  156. package/dist/types/qr.js.map +1 -0
  157. package/dist/types/signature.d.ts +12 -0
  158. package/dist/types/signature.d.ts.map +1 -0
  159. package/dist/types/signature.js +3 -0
  160. package/dist/types/signature.js.map +1 -0
  161. package/dist/types/table.d.ts +32 -0
  162. package/dist/types/table.d.ts.map +1 -0
  163. package/dist/types/table.js +3 -0
  164. package/dist/types/table.js.map +1 -0
  165. package/dist/types/text.d.ts +19 -0
  166. package/dist/types/text.d.ts.map +1 -0
  167. package/dist/types/text.js +3 -0
  168. package/dist/types/text.js.map +1 -0
  169. package/dist/types/utility.d.ts +1 -0
  170. package/dist/types/utility.d.ts.map +1 -0
  171. package/dist/types/utility.js +2 -0
  172. package/dist/types/utility.js.map +1 -0
  173. package/package.json +42 -0
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processLineBlock = void 0;
4
+ const processLineBlock = (doc, ctx, block, y, env, ensureSpaceFor) => {
5
+ var _a, _b, _c, _d, _e;
6
+ const localLeft = (_a = block.marginLeft) !== null && _a !== void 0 ? _a : 0;
7
+ const localRight = (_b = block.marginRight) !== null && _b !== void 0 ? _b : 0;
8
+ const xLeft = env.marginLeft + localLeft;
9
+ const width = Math.max(env.innerWidth - localLeft - localRight, 1);
10
+ const mt = (_c = block.marginTop) !== null && _c !== void 0 ? _c : 0;
11
+ const mb = (_d = block.marginBottom) !== null && _d !== void 0 ? _d : 0;
12
+ const baseY = y !== null && y !== void 0 ? y : ctx.currentY;
13
+ const startY = baseY + mt;
14
+ const lineWidth = (_e = block.lineWidth) !== null && _e !== void 0 ? _e : 1;
15
+ const heightNeeded = mt + lineWidth + mb;
16
+ if (y === null) {
17
+ ensureSpaceFor(heightNeeded, env);
18
+ }
19
+ doc.save();
20
+ if (block.color) {
21
+ doc.strokeColor(block.color);
22
+ }
23
+ doc.lineWidth(lineWidth);
24
+ doc
25
+ .moveTo(xLeft, startY)
26
+ .lineTo(xLeft + width, startY)
27
+ .stroke();
28
+ doc.restore();
29
+ const newY = startY + lineWidth + mb;
30
+ if (y === null)
31
+ ctx.currentY = newY;
32
+ return newY;
33
+ };
34
+ exports.processLineBlock = processLineBlock;
35
+ //# sourceMappingURL=line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/line.ts"],"names":[],"mappings":";;;AAEO,MAAM,gBAAgB,GAAG,CAC9B,GAAuB,EACvB,GAAgB,EAChB,KAAgB,EAChB,CAAgB,EAChB,GAAc,EACd,cAA8D,EACtD,EAAE;;IACV,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAA,KAAK,CAAC,WAAW,mCAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,EAAE,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,MAAA,KAAK,CAAC,YAAY,mCAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,MAAA,KAAK,CAAC,SAAS,mCAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACzB,GAAG;SACA,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;SACrB,MAAM,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC;SAC7B,MAAM,EAAE,CAAC;IACZ,GAAG,CAAC,OAAO,EAAE,CAAC;IAEd,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,IAAI;QAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAtCW,QAAA,gBAAgB,oBAsC3B"}
@@ -0,0 +1,4 @@
1
+ import { PageContext, RenderEnv, StyleDef, TableBlock } from "../../types";
2
+ export declare const measureTableHeight: (doc: PDFKit.PDFDocument, table: TableBlock, env: RenderEnv, styles: Record<string, StyleDef> | undefined, computeColumnPixelWidths: (widths: (number | "*")[], totalWidth: number) => number[]) => number;
3
+ export declare const processTableBlock: (doc: PDFKit.PDFDocument, ctx: PageContext, styles: Record<string, StyleDef> | undefined, table: TableBlock, y: number | null, env: RenderEnv, computeColumnPixelWidths: (widths: (number | "*")[], totalWidth: number) => number[], bottomLimitForContent: () => number, finishPage: (addNewPage: boolean) => void) => number;
4
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/table.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EAEX,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,kBAAkB,GAC7B,KAAK,MAAM,CAAC,WAAW,EACvB,OAAO,UAAU,EACjB,KAAK,SAAS,EACd,QAAQ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC5C,0BAA0B,CACxB,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EACxB,UAAU,EAAE,MAAM,KACf,MAAM,EAAE,KACZ,MA2CF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,KAAK,MAAM,CAAC,WAAW,EACvB,KAAK,WAAW,EAChB,QAAQ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC5C,OAAO,UAAU,EACjB,GAAG,MAAM,GAAG,IAAI,EAChB,KAAK,SAAS,EACd,0BAA0B,CACxB,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EACxB,UAAU,EAAE,MAAM,KACf,MAAM,EAAE,EACb,uBAAuB,MAAM,MAAM,EACnC,YAAY,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,KACxC,MA+LF,CAAC"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processTableBlock = exports.measureTableHeight = void 0;
4
+ const utils_1 = require("../utils");
5
+ const measureTableHeight = (doc, table, env, styles, computeColumnPixelWidths) => {
6
+ var _a, _b, _c, _d, _e;
7
+ const localLeft = (_a = table.marginLeft) !== null && _a !== void 0 ? _a : 0;
8
+ const localRight = (_b = table.marginRight) !== null && _b !== void 0 ? _b : 0;
9
+ const width = Math.max(env.innerWidth - localLeft - localRight, 1);
10
+ const colWidths = computeColumnPixelWidths(table.widths, width);
11
+ let totalHeight = 0;
12
+ totalHeight += (_c = table.marginTop) !== null && _c !== void 0 ? _c : 0;
13
+ table.body.forEach((row) => {
14
+ let rowHeight = 0;
15
+ row.forEach((rawCell, colIndex) => {
16
+ var _a, _b;
17
+ const cell = (0, utils_1.resolveTableCell)(styles, rawCell);
18
+ const colW = (_a = colWidths[colIndex]) !== null && _a !== void 0 ? _a : 50;
19
+ const fontSize = (_b = cell.fontSize) !== null && _b !== void 0 ? _b : 10;
20
+ const isBold = !!cell.bold;
21
+ const isItalic = !!cell.italic;
22
+ const fontName = cell.font
23
+ ? cell.font
24
+ : isBold && isItalic
25
+ ? "Helvetica-BoldOblique"
26
+ : isBold
27
+ ? "Helvetica-Bold"
28
+ : isItalic
29
+ ? "Helvetica-Oblique"
30
+ : "Helvetica";
31
+ doc.font(fontName);
32
+ doc.fontSize(fontSize);
33
+ const h = doc.heightOfString(cell.text, { width: colW });
34
+ rowHeight = Math.max(rowHeight, h + 4);
35
+ });
36
+ totalHeight += rowHeight;
37
+ });
38
+ totalHeight += (_d = table.lineGap) !== null && _d !== void 0 ? _d : 6;
39
+ totalHeight += (_e = table.marginBottom) !== null && _e !== void 0 ? _e : 0;
40
+ return totalHeight;
41
+ };
42
+ exports.measureTableHeight = measureTableHeight;
43
+ const processTableBlock = (doc, ctx, styles, table, y, env, computeColumnPixelWidths, bottomLimitForContent, finishPage) => {
44
+ var _a, _b, _c, _d, _e, _f, _g;
45
+ const localLeft = (_a = table.marginLeft) !== null && _a !== void 0 ? _a : 0;
46
+ const localRight = (_b = table.marginRight) !== null && _b !== void 0 ? _b : 0;
47
+ const baseLeft = env.marginLeft + localLeft;
48
+ const width = Math.max(env.innerWidth - localLeft - localRight, 1);
49
+ const mt = (_c = table.marginTop) !== null && _c !== void 0 ? _c : 0;
50
+ const mb = (_d = table.marginBottom) !== null && _d !== void 0 ? _d : 0;
51
+ const baseY = y !== null && y !== void 0 ? y : ctx.currentY;
52
+ const startY = baseY + mt;
53
+ const colWidths = computeColumnPixelWidths(table.widths, width);
54
+ const layout = (_e = table.layout) !== null && _e !== void 0 ? _e : {
55
+ border: "all",
56
+ hLineColor: "#ccc",
57
+ vLineColor: "#ccc",
58
+ };
59
+ const borderAll = layout.border !== "none";
60
+ const headerRows = (_f = table.headerRows) !== null && _f !== void 0 ? _f : 0;
61
+ const measureRowHeight = (row) => {
62
+ let rowHeight = 0;
63
+ row.forEach((rawCell, colIndex) => {
64
+ var _a, _b;
65
+ const cell = (0, utils_1.resolveTableCell)(styles, rawCell);
66
+ const colW = (_a = colWidths[colIndex]) !== null && _a !== void 0 ? _a : 50;
67
+ const fontSize = (_b = cell.fontSize) !== null && _b !== void 0 ? _b : 10;
68
+ const fontName = cell.font
69
+ ? cell.font
70
+ : cell.bold
71
+ ? "Helvetica-Bold"
72
+ : "Helvetica";
73
+ doc.font(fontName);
74
+ doc.fontSize(fontSize);
75
+ const textWidth = Math.max(colW - 4, 1);
76
+ const h = doc.heightOfString(cell.text, {
77
+ width: textWidth,
78
+ }) + 4;
79
+ rowHeight = Math.max(rowHeight, h);
80
+ });
81
+ return rowHeight || 12;
82
+ };
83
+ const drawRow = (row, rowTop, rowHeight, isHeaderRow, drawTopBorder) => {
84
+ var _a, _b;
85
+ row.forEach((rawCell, colIndex) => {
86
+ var _a, _b, _c;
87
+ const cell = (0, utils_1.resolveTableCell)(styles, rawCell);
88
+ const colW = (_a = colWidths[colIndex]) !== null && _a !== void 0 ? _a : 50;
89
+ const x = baseLeft + colWidths.slice(0, colIndex).reduce((a, b) => a + b, 0);
90
+ const fontSize = (_b = cell.fontSize) !== null && _b !== void 0 ? _b : 10;
91
+ doc.save();
92
+ if (cell.fillColor) {
93
+ doc
94
+ .rect(x, rowTop, colW, rowHeight)
95
+ .fillOpacity(1)
96
+ .fill(cell.fillColor);
97
+ doc.fillOpacity(1);
98
+ }
99
+ const isBold = !!cell.bold;
100
+ const isItalic = !!cell.italic;
101
+ const fontName = cell.font
102
+ ? cell.font
103
+ : isBold && isItalic
104
+ ? "Helvetica-BoldOblique"
105
+ : isBold
106
+ ? "Helvetica-Bold"
107
+ : isItalic
108
+ ? "Helvetica-Oblique"
109
+ : "Helvetica";
110
+ doc.font(fontName);
111
+ doc.fontSize(fontSize);
112
+ if (cell.color) {
113
+ doc.fillColor(cell.color);
114
+ }
115
+ else {
116
+ doc.fillColor("black");
117
+ }
118
+ const align = (_c = cell.align) !== null && _c !== void 0 ? _c : "left";
119
+ const textWidth = Math.max(colW - 4, 1);
120
+ const textHeight = doc.heightOfString(cell.text, {
121
+ width: textWidth,
122
+ });
123
+ let textY = rowTop + 2;
124
+ if (isHeaderRow) {
125
+ const available = rowHeight - 4;
126
+ const offset = Math.max((available - textHeight) / 2, 0);
127
+ textY = rowTop + 2 + offset;
128
+ }
129
+ doc.text(cell.text, x + 2, textY, {
130
+ width: textWidth,
131
+ align,
132
+ underline: !!cell.underline,
133
+ strike: !!cell.strike,
134
+ link: cell.link,
135
+ });
136
+ doc.restore();
137
+ });
138
+ if (borderAll) {
139
+ const bottomY = rowTop + rowHeight;
140
+ doc.save();
141
+ doc.lineWidth(0.5);
142
+ doc.strokeColor((_a = layout.hLineColor) !== null && _a !== void 0 ? _a : "#ccc");
143
+ if (drawTopBorder) {
144
+ doc
145
+ .moveTo(baseLeft, rowTop)
146
+ .lineTo(baseLeft + width, rowTop)
147
+ .stroke();
148
+ }
149
+ doc
150
+ .moveTo(baseLeft, bottomY)
151
+ .lineTo(baseLeft + width, bottomY)
152
+ .stroke();
153
+ doc.restore();
154
+ doc.save();
155
+ doc.lineWidth(0.5);
156
+ doc.strokeColor((_b = layout.vLineColor) !== null && _b !== void 0 ? _b : "#ccc");
157
+ let x = baseLeft;
158
+ colWidths.forEach((colW) => {
159
+ doc.moveTo(x, rowTop).lineTo(x, bottomY).stroke();
160
+ x += colW;
161
+ });
162
+ doc
163
+ .moveTo(baseLeft + width, rowTop)
164
+ .lineTo(baseLeft + width, bottomY)
165
+ .stroke();
166
+ doc.restore();
167
+ }
168
+ return rowTop + rowHeight;
169
+ };
170
+ const drawHeaderRowsOnNewPage = () => {
171
+ if (!headerRows)
172
+ return doc.page.margins.top + mt;
173
+ let rowTop = doc.page.margins.top + mt;
174
+ for (let i = 0; i < headerRows; i++) {
175
+ const headerRow = table.body[i];
176
+ const headerHeight = measureRowHeight(headerRow);
177
+ rowTop = drawRow(headerRow, rowTop, headerHeight, true, true);
178
+ }
179
+ return rowTop;
180
+ };
181
+ let rowTop = startY;
182
+ table.body.forEach((row, rowIndex) => {
183
+ const isHeaderRow = rowIndex < headerRows;
184
+ const rowHeight = measureRowHeight(row);
185
+ const bottomLimit = bottomLimitForContent();
186
+ if (rowTop + rowHeight > bottomLimit) {
187
+ finishPage(true);
188
+ rowTop = headerRows
189
+ ? drawHeaderRowsOnNewPage()
190
+ : doc.page.margins.top + mt;
191
+ }
192
+ const drawTopBorder = true;
193
+ rowTop = drawRow(row, rowTop, rowHeight, isHeaderRow, drawTopBorder);
194
+ });
195
+ const newY = rowTop + ((_g = table.lineGap) !== null && _g !== void 0 ? _g : 6) + mb;
196
+ if (y === null)
197
+ ctx.currentY = newY;
198
+ return newY;
199
+ };
200
+ exports.processTableBlock = processTableBlock;
201
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PageContext, RenderEnv, StyleDef, TextBlock } from "../../types";
2
+ export declare const processTextBlock: (doc: PDFKit.PDFDocument, ctx: PageContext, styles: Record<string, StyleDef> | undefined, block: TextBlock, y: number | null, env: RenderEnv, ensureSpaceFor: (heightNeeded: number, env: RenderEnv) => void) => number;
3
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG1E,eAAO,MAAM,gBAAgB,GAC3B,KAAK,MAAM,CAAC,WAAW,EACvB,KAAK,WAAW,EAChB,QAAQ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,SAAS,EAC5C,OAAO,SAAS,EAChB,GAAG,MAAM,GAAG,IAAI,EAChB,KAAK,SAAS,EACd,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,KAAK,IAAI,KAC7D,MA8CF,CAAC"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processTextBlock = void 0;
4
+ const utils_1 = require("../utils");
5
+ const processTextBlock = (doc, ctx, styles, block, y, env, ensureSpaceFor) => {
6
+ var _a, _b, _c, _d, _e, _f;
7
+ const tb = (0, utils_1.resolveTextBlock)(styles, block);
8
+ const localLeft = (_a = tb.marginLeft) !== null && _a !== void 0 ? _a : 0;
9
+ const localRight = (_b = tb.marginRight) !== null && _b !== void 0 ? _b : 0;
10
+ const xLeft = env.marginLeft + localLeft;
11
+ const width = Math.max(env.innerWidth - localLeft - localRight, 1);
12
+ const baseY = y !== null && y !== void 0 ? y : ctx.currentY;
13
+ const startY = baseY;
14
+ doc.fontSize((_c = tb.fontSize) !== null && _c !== void 0 ? _c : 10);
15
+ const isBold = !!tb.bold;
16
+ const isItalic = !!tb.italic;
17
+ let fontName = tb.font;
18
+ if (!fontName) {
19
+ if (isBold && isItalic)
20
+ fontName = "Helvetica-BoldOblique";
21
+ else if (isBold)
22
+ fontName = "Helvetica-Bold";
23
+ else if (isItalic)
24
+ fontName = "Helvetica-Oblique";
25
+ else
26
+ fontName = "Helvetica";
27
+ }
28
+ doc.font(fontName);
29
+ if (tb.color)
30
+ doc.fillColor(tb.color);
31
+ else
32
+ doc.fillColor("black");
33
+ const textHeight = doc.heightOfString(tb.text, { width });
34
+ if (y === null) {
35
+ const gapCheck = (_d = tb.lineGap) !== null && _d !== void 0 ? _d : 4;
36
+ ensureSpaceFor(textHeight + gapCheck, env);
37
+ }
38
+ doc.text(tb.text, xLeft, startY, {
39
+ width,
40
+ align: (_e = tb.align) !== null && _e !== void 0 ? _e : "left",
41
+ underline: !!tb.underline,
42
+ strike: !!tb.strike,
43
+ link: tb.link,
44
+ });
45
+ const gap = (_f = tb.lineGap) !== null && _f !== void 0 ? _f : 4;
46
+ const newY = startY + textHeight + gap;
47
+ if (y === null)
48
+ ctx.currentY = newY;
49
+ return newY;
50
+ };
51
+ exports.processTextBlock = processTextBlock;
52
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/renderer-engine/blocks/text.ts"],"names":[],"mappings":";;;AACA,oCAA4C;AAErC,MAAM,gBAAgB,GAAG,CAC9B,GAAuB,EACvB,GAAgB,EAChB,MAA4C,EAC5C,KAAgB,EAChB,CAAgB,EAChB,GAAc,EACd,cAA8D,EACtD,EAAE;;IACV,MAAM,EAAE,GAAG,IAAA,wBAAgB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,mCAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAA,EAAE,CAAC,WAAW,mCAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IAEnE,MAAM,KAAK,GAAG,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,GAAG,CAAC,QAAQ,CAAC;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC;IAErB,GAAG,CAAC,QAAQ,CAAC,MAAA,EAAE,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;IAE7B,IAAI,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,MAAM,IAAI,QAAQ;YAAE,QAAQ,GAAG,uBAAuB,CAAC;aACtD,IAAI,MAAM;YAAE,QAAQ,GAAG,gBAAgB,CAAC;aACxC,IAAI,QAAQ;YAAE,QAAQ,GAAG,mBAAmB,CAAC;;YAC7C,QAAQ,GAAG,WAAW,CAAC;IAC9B,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnB,IAAI,EAAE,CAAC,KAAK;QAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;;QACjC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5B,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,OAAO,mCAAI,CAAC,CAAC;QACjC,cAAc,CAAC,UAAU,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;QAC/B,KAAK;QACL,KAAK,EAAE,MAAA,EAAE,CAAC,KAAK,mCAAI,MAAM;QACzB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS;QACzB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM;QACnB,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAA,EAAE,CAAC,OAAO,mCAAI,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI;QAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAtDW,QAAA,gBAAgB,oBAsD3B"}
@@ -0,0 +1,4 @@
1
+ import { CustomDocDefinition } from "../types";
2
+ export declare function renderCustomPdf(def: CustomDocDefinition, outputPath: string): Promise<void>;
3
+ export declare function renderCustomPdfToBuffer(def: CustomDocDefinition): Promise<Buffer>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer-engine/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAA6B,MAAM,UAAU,CAAC;AAgB1E,wBAAsB,eAAe,CACnC,GAAG,EAAE,mBAAmB,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAqHf;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,CAgIjB"}
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderCustomPdf = renderCustomPdf;
7
+ exports.renderCustomPdfToBuffer = renderCustomPdfToBuffer;
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const pdfkit_1 = __importDefault(require("pdfkit"));
10
+ const utils_1 = require("./utils");
11
+ const image_loader_1 = require("./utils/image-loader");
12
+ async function renderCustomPdf(def, outputPath) {
13
+ var _a, _b;
14
+ if (def.header) {
15
+ def.header.blocks = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.header.blocks);
16
+ def.header.blocks = await (0, image_loader_1.materializeImagesInBlocks)(def.header.blocks);
17
+ }
18
+ def.content = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.content);
19
+ def.content = await (0, image_loader_1.materializeImagesInBlocks)(def.content);
20
+ if ((_a = def.pageBackground) === null || _a === void 0 ? void 0 : _a.src) {
21
+ def.pageBackground.src = await (0, image_loader_1.normalizeImageSrc)(def.pageBackground.src);
22
+ }
23
+ if ((_b = def.header) === null || _b === void 0 ? void 0 : _b.backgroundImage) {
24
+ def.header.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(def.header.backgroundImage);
25
+ }
26
+ if (def.footer && typeof def.footer !== "function") {
27
+ const footer = def.footer;
28
+ if (footer.backgroundImage) {
29
+ footer.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(footer.backgroundImage);
30
+ }
31
+ }
32
+ return new Promise((resolve, reject) => {
33
+ var _a, _b, _c;
34
+ const headerBandHeight = (_a = def.margins.top) !== null && _a !== void 0 ? _a : 0;
35
+ const footerBandHeight = (_b = def.margins.bottom) !== null && _b !== void 0 ? _b : 0;
36
+ const doc = new pdfkit_1.default({
37
+ size: def.pageSize || "A4",
38
+ margins: {
39
+ top: headerBandHeight,
40
+ bottom: footerBandHeight,
41
+ left: def.margins.left,
42
+ right: def.margins.right,
43
+ },
44
+ });
45
+ if (def.fonts && def.fonts.length) {
46
+ for (const f of def.fonts) {
47
+ try {
48
+ doc.registerFont(f.name, f.src);
49
+ }
50
+ catch (e) {
51
+ console.warn("Failed to register font:", f.name, e);
52
+ }
53
+ }
54
+ }
55
+ const stream = fs_1.default.createWriteStream(outputPath);
56
+ doc.pipe(stream);
57
+ const ctx = (0, utils_1.createInitialContext)(doc);
58
+ const styles = (_c = def.styles) !== null && _c !== void 0 ? _c : {};
59
+ const finishPage = (addNewPage) => (0, utils_1.finishPage)({
60
+ addNewPage,
61
+ doc,
62
+ def,
63
+ ctx,
64
+ footerBandHeight,
65
+ renderBlockArray,
66
+ startNewPageLayout,
67
+ });
68
+ const processSignatureBlock = (0, utils_1.createProcessSignatureBlock)({
69
+ doc,
70
+ ctx,
71
+ styles,
72
+ finishPage,
73
+ contentEnvFn: utils_1.contentEnv,
74
+ });
75
+ const { renderBlock, renderBlockArray } = (0, utils_1.createBlockRenderer)({
76
+ doc,
77
+ ctx,
78
+ styles,
79
+ computeColumnPixelWidths: utils_1.computeColumnPixelWidths,
80
+ finishPage,
81
+ processSignatureBlock,
82
+ });
83
+ const startNewPageLayout = (0, utils_1.createStartNewPageLayout)({
84
+ doc,
85
+ def,
86
+ ctx,
87
+ headerBandHeight,
88
+ renderBlockArray,
89
+ });
90
+ startNewPageLayout();
91
+ for (const block of def.content) {
92
+ if (block.type === "signature") {
93
+ processSignatureBlock(block);
94
+ continue;
95
+ }
96
+ if (ctx.afterSignature) {
97
+ finishPage(true);
98
+ ctx.afterSignature = false;
99
+ }
100
+ renderBlock(block, null, (0, utils_1.contentEnv)(doc));
101
+ }
102
+ finishPage(false);
103
+ doc.end();
104
+ stream.on("finish", () => resolve());
105
+ stream.on("error", (err) => reject(err));
106
+ });
107
+ }
108
+ async function renderCustomPdfToBuffer(def) {
109
+ // --- same pre-materialization as file version ---
110
+ var _a, _b;
111
+ if (def.header) {
112
+ def.header.blocks = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.header.blocks);
113
+ def.header.blocks = await (0, image_loader_1.materializeImagesInBlocks)(def.header.blocks);
114
+ }
115
+ def.content = await (0, utils_1.materializeQrAndBarcodesInBlocks)(def.content);
116
+ def.content = await (0, image_loader_1.materializeImagesInBlocks)(def.content);
117
+ if ((_a = def.pageBackground) === null || _a === void 0 ? void 0 : _a.src) {
118
+ def.pageBackground.src = await (0, image_loader_1.normalizeImageSrc)(def.pageBackground.src);
119
+ }
120
+ if ((_b = def.header) === null || _b === void 0 ? void 0 : _b.backgroundImage) {
121
+ def.header.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(def.header.backgroundImage);
122
+ }
123
+ if (def.footer && typeof def.footer !== "function") {
124
+ const footer = def.footer;
125
+ if (footer.backgroundImage) {
126
+ footer.backgroundImage = await (0, image_loader_1.normalizeImageSrc)(footer.backgroundImage);
127
+ }
128
+ }
129
+ return new Promise((resolve, reject) => {
130
+ var _a, _b, _c;
131
+ const headerBandHeight = (_a = def.margins.top) !== null && _a !== void 0 ? _a : 0;
132
+ const footerBandHeight = (_b = def.margins.bottom) !== null && _b !== void 0 ? _b : 0;
133
+ const doc = new pdfkit_1.default({
134
+ size: def.pageSize || "A4",
135
+ margins: {
136
+ top: headerBandHeight,
137
+ bottom: footerBandHeight,
138
+ left: def.margins.left,
139
+ right: def.margins.right,
140
+ },
141
+ });
142
+ // collect PDF chunks into memory
143
+ const chunks = [];
144
+ doc.on("data", (chunk) => {
145
+ chunks.push(chunk);
146
+ });
147
+ doc.on("end", () => {
148
+ resolve(Buffer.concat(chunks));
149
+ });
150
+ doc.on("error", (err) => {
151
+ reject(err);
152
+ });
153
+ // register custom fonts
154
+ if (def.fonts && def.fonts.length) {
155
+ for (const f of def.fonts) {
156
+ try {
157
+ doc.registerFont(f.name, f.src);
158
+ }
159
+ catch (e) {
160
+ console.warn("Failed to register font:", f.name, e);
161
+ }
162
+ }
163
+ }
164
+ const ctx = (0, utils_1.createInitialContext)(doc);
165
+ const styles = (_c = def.styles) !== null && _c !== void 0 ? _c : {};
166
+ // finishPage uses the shared util, just like your file version
167
+ const finishPage = (addNewPage) => (0, utils_1.finishPage)({
168
+ addNewPage,
169
+ doc,
170
+ def,
171
+ ctx,
172
+ footerBandHeight,
173
+ renderBlockArray,
174
+ startNewPageLayout,
175
+ });
176
+ const processSignatureBlock = (0, utils_1.createProcessSignatureBlock)({
177
+ doc,
178
+ ctx,
179
+ styles,
180
+ finishPage,
181
+ contentEnvFn: utils_1.contentEnv,
182
+ });
183
+ const { renderBlock, renderBlockArray } = (0, utils_1.createBlockRenderer)({
184
+ doc,
185
+ ctx,
186
+ styles,
187
+ computeColumnPixelWidths: utils_1.computeColumnPixelWidths,
188
+ finishPage,
189
+ processSignatureBlock,
190
+ });
191
+ const startNewPageLayout = (0, utils_1.createStartNewPageLayout)({
192
+ doc,
193
+ def,
194
+ ctx,
195
+ headerBandHeight,
196
+ renderBlockArray,
197
+ });
198
+ // ---- main render flow ----
199
+ startNewPageLayout();
200
+ for (const block of def.content) {
201
+ if (block.type === "signature") {
202
+ processSignatureBlock(block);
203
+ continue;
204
+ }
205
+ if (ctx.afterSignature) {
206
+ finishPage(true);
207
+ ctx.afterSignature = false;
208
+ }
209
+ renderBlock(block, null, (0, utils_1.contentEnv)(doc));
210
+ }
211
+ finishPage(false);
212
+ doc.end();
213
+ });
214
+ }
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer-engine/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Block, PageContext, RenderEnv, SignatureBlock, StyleDef } from "../../types";
2
+ export interface BlockRendererDeps {
3
+ doc: PDFKit.PDFDocument;
4
+ ctx: PageContext;
5
+ styles: Record<string, StyleDef>;
6
+ computeColumnPixelWidths: (widths: (number | "*")[], totalWidth: number) => number[];
7
+ finishPage: (addNewPage: boolean) => void;
8
+ processSignatureBlock: (block: SignatureBlock) => void;
9
+ }
10
+ /**
11
+ * Factory that returns renderBlock + renderBlockArray wired with all dependencies.
12
+ */
13
+ export declare function createBlockRenderer(deps: BlockRendererDeps): {
14
+ renderBlock: (block: Block, y: number | null, env: RenderEnv) => number;
15
+ renderBlockArray: (blocks: Block[], startY: number, env: RenderEnv) => number;
16
+ };
17
+ //# sourceMappingURL=block-renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-renderer.d.ts","sourceRoot":"","sources":["../../../src/renderer-engine/utils/block-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAKL,WAAW,EAEX,SAAS,EACT,cAAc,EACd,QAAQ,EAGT,MAAM,aAAa,CAAC;AAiBrB,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC;IACxB,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,wBAAwB,EAAE,CACxB,MAAM,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EACxB,UAAU,EAAE,MAAM,KACf,MAAM,EAAE,CAAC;IAEd,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,qBAAqB,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CACxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB;yBAyBhD,KAAK,KACT,MAAM,GAAG,IAAI,OACX,SAAS,KACb,MAAM;+BAuHC,KAAK,EAAE,UACP,MAAM,OACT,SAAS,KACb,MAAM;EAeV"}