@flowselections/layout-maker 1.36.7 → 1.38.4

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 (67) hide show
  1. package/README.md +139 -139
  2. package/dist-lib/components/AfdrukKnop.d.ts +19 -19
  3. package/dist-lib/components/NetwerkPrintersDialog.d.ts +7 -7
  4. package/dist-lib/components/PaginaDocument.d.ts +4 -1
  5. package/dist-lib/components/PaginaDocument.d.ts.map +1 -1
  6. package/dist-lib/components/PaginaDocument.js +10 -5
  7. package/dist-lib/components/PakbonBuilderPage.d.ts.map +1 -1
  8. package/dist-lib/components/PakbonBuilderPage.js +4 -2
  9. package/dist-lib/components/PakbonPreview.d.ts +4 -2
  10. package/dist-lib/components/PakbonPreview.d.ts.map +1 -1
  11. package/dist-lib/components/PakbonPreview.js +55 -12
  12. package/dist-lib/components/PakbonSectiesPanel.d.ts +2 -2
  13. package/dist-lib/components/PakbonSectiesPanel.d.ts.map +1 -1
  14. package/dist-lib/components/PakbonSectiesPanel.js +3 -2
  15. package/dist-lib/components/PrinterSetupWizard.js +3 -3
  16. package/dist-lib/components/PrintersRedirectPage.d.ts +1 -1
  17. package/dist-lib/components/PrintersRedirectPage.js +14 -14
  18. package/dist-lib/index.d.ts +4 -2
  19. package/dist-lib/index.d.ts.map +1 -1
  20. package/dist-lib/index.js +3 -2
  21. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1240 -812
  22. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  23. package/dist-lib/integrations/supabase/client.server.d.ts +1240 -812
  24. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  25. package/dist-lib/integrations/supabase/client.server.js +1 -1
  26. package/dist-lib/integrations/supabase/moduleClient.d.ts +24008 -0
  27. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -0
  28. package/dist-lib/integrations/supabase/moduleClient.js +29 -0
  29. package/dist-lib/integrations/supabase/types.d.ts +1231 -821
  30. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  31. package/dist-lib/lib/aiLayout.functions.d.ts +1240 -812
  32. package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/aiLayout.server.js +9 -9
  34. package/dist-lib/lib/browserPrint.js +1 -1
  35. package/dist-lib/lib/code128.d.ts +5 -0
  36. package/dist-lib/lib/code128.d.ts.map +1 -0
  37. package/dist-lib/lib/code128.js +51 -0
  38. package/dist-lib/lib/htmlPdf.server.d.ts.map +1 -1
  39. package/dist-lib/lib/htmlPdf.server.js +58 -0
  40. package/dist-lib/lib/layoutPreview.d.ts.map +1 -1
  41. package/dist-lib/lib/layoutPreview.js +11 -8
  42. package/dist-lib/lib/orderData.server.d.ts.map +1 -1
  43. package/dist-lib/lib/orderData.server.js +6 -0
  44. package/dist-lib/lib/pakbonBuilder.d.ts +28 -2
  45. package/dist-lib/lib/pakbonBuilder.d.ts.map +1 -1
  46. package/dist-lib/lib/pakbonBuilder.js +69 -8
  47. package/dist-lib/lib/pakbonHtml.d.ts +14 -2
  48. package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
  49. package/dist-lib/lib/pakbonHtml.js +155 -63
  50. package/dist-lib/lib/pakbonScan.d.ts +44 -0
  51. package/dist-lib/lib/pakbonScan.d.ts.map +1 -0
  52. package/dist-lib/lib/pakbonScan.js +105 -0
  53. package/dist-lib/lib/printQueue.server.d.ts +7 -0
  54. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  55. package/dist-lib/lib/printQueue.server.js +247 -26
  56. package/dist-lib/lib/printService.functions.d.ts +4445 -2733
  57. package/dist-lib/lib/printService.functions.d.ts.map +1 -1
  58. package/dist-lib/lib/productiebonHtml.js +15 -15
  59. package/dist-lib/lib/profielHtml.js +18 -18
  60. package/dist-lib/lib/supabaseAdmin.server.d.ts +5 -5
  61. package/dist-lib/lib/supabaseAdmin.server.js +43 -43
  62. package/dist-lib/lib/supabaseClient.d.ts +1 -3
  63. package/dist-lib/lib/supabaseClient.d.ts.map +1 -1
  64. package/dist-lib/lib/supabaseClient.js +4 -8
  65. package/dist-lib/lib/testpagina.js +3 -3
  66. package/dist-lib/lib/testprint.js +4 -4
  67. package/package.json +151 -151
@@ -26,7 +26,7 @@ export function paginaCss(formaat, orientatie, margeMm = 0) {
26
26
  const gedraaid = formaat && orientatie === "landscape"
27
27
  ? `${formaat.hoogte}mm ${formaat.breedte}mm`
28
28
  : size;
29
- return `@page { size: ${gedraaid}; margin: ${margeMm}mm; }
29
+ return `@page { size: ${gedraaid}; margin: ${margeMm}mm; }
30
30
  @media print { html, body { margin: 0; padding: 0; } }`;
31
31
  }
32
32
  /**
@@ -0,0 +1,5 @@
1
+ /** Geeft de zwart/wit modules van Code 128 subset B terug. */
2
+ export declare function code128Bars(value: string): string;
3
+ /** Browserweergave van de barcode zonder externe barcodebibliotheek. */
4
+ export declare function code128BarsHtml(value: string): string;
5
+ //# sourceMappingURL=code128.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code128.d.ts","sourceRoot":"","sources":["../../src/lib/code128.ts"],"names":[],"mappings":"AAkBA,8DAA8D;AAC9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqBjD;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrD"}
@@ -0,0 +1,51 @@
1
+ // ============================================================================
2
+ // Code 128 subset B — compacte, scanbare barcode voor printdocumenten.
3
+ // ============================================================================
4
+ const PATRONEN = [
5
+ "212222", "222122", "222221", "121223", "121322", "131222", "122213", "122312", "132212", "221213",
6
+ "221312", "231212", "112232", "122132", "122231", "113222", "123122", "123221", "223211", "221132",
7
+ "221231", "213212", "223112", "312131", "311222", "321122", "321221", "312212", "322112", "322211",
8
+ "212123", "212321", "232121", "111323", "131123", "131321", "112313", "132113", "132311", "211313",
9
+ "231113", "231311", "112133", "112331", "132131", "113123", "113321", "133121", "313121", "211331",
10
+ "231131", "213113", "213311", "213131", "311123", "311321", "331121", "312113", "312311", "332111",
11
+ "314111", "221411", "431111", "111224", "111422", "121124", "121421", "141122", "141221", "112214",
12
+ "112412", "122114", "122411", "142112", "142211", "241211", "221114", "413111", "241112", "134111",
13
+ "111242", "121142", "121241", "114212", "124112", "124211", "411212", "421112", "421211", "212141",
14
+ "214121", "412121", "111143", "111341", "131141", "114113", "114311", "411113", "411311", "113141",
15
+ "114131", "311141", "411131", "211412", "211214", "211232", "2331112",
16
+ ];
17
+ /** Geeft de zwart/wit modules van Code 128 subset B terug. */
18
+ export function code128Bars(value) {
19
+ const tekst = String(value ?? "");
20
+ if (!tekst)
21
+ return "";
22
+ const codes = Array.from(tekst, (teken) => {
23
+ const code = teken.charCodeAt(0);
24
+ return code >= 32 && code <= 126 ? code - 32 : "?".charCodeAt(0) - 32;
25
+ });
26
+ const checksum = codes.reduce((som, code, index) => som + code * (index + 1), 104) % 103;
27
+ const symbolen = [104, ...codes, checksum, 106];
28
+ return symbolen
29
+ .map((symbool) => {
30
+ const patroon = PATRONEN[symbool] ?? PATRONEN[0];
31
+ let zwart = true;
32
+ return Array.from(patroon, (breedte) => {
33
+ const modules = Number(breedte);
34
+ const resultaat = (zwart ? "1" : "0").repeat(modules);
35
+ zwart = !zwart;
36
+ return resultaat;
37
+ }).join("");
38
+ })
39
+ .join("");
40
+ }
41
+ /** Browserweergave van de barcode zonder externe barcodebibliotheek. */
42
+ export function code128BarsHtml(value) {
43
+ const bars = code128Bars(value);
44
+ if (!bars)
45
+ return "";
46
+ const modules = bars.length;
47
+ return bars
48
+ .split("")
49
+ .map((bar) => `<span style="display:block;flex:0 0 ${100 / modules}%;height:100%;background:${bar === "1" ? "#111827" : "transparent"}"></span>`)
50
+ .join("");
51
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"htmlPdf.server.d.ts","sourceRoot":"","sources":["../../src/lib/htmlPdf.server.ts"],"names":[],"mappings":"AAWA,OAAO,EAOL,KAAK,GAAG,EACT,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,EAAE,oBAAoB,CAAC;AAIpC,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuBD,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAuC/C;AAUD,UAAU,SAAS;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AACD,UAAU,QAAQ;IAChB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD;AA2BD,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAgClD;AAqBD,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAiBlE;AAKD,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAmjCD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CA+DrF;AA0BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQzD"}
1
+ {"version":3,"file":"htmlPdf.server.d.ts","sourceRoot":"","sources":["../../src/lib/htmlPdf.server.ts"],"names":[],"mappings":"AAYA,OAAO,EAOL,KAAK,GAAG,EACT,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,EAAE,oBAAoB,CAAC;AAIpC,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAuBD,kEAAkE;AAClE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAuC/C;AAUD,UAAU,SAAS;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AACD,UAAU,QAAQ;IAChB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD;AA2BD,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAgClD;AAqBD,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAiBlE;AAKD,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4mCD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CA+DrF;AA0BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQzD"}
@@ -8,6 +8,7 @@
8
8
  // rijen naast elkaar, tabellen met vaste kolombreedtes, kaders, lijnen,
9
9
  // afbeeldingen, barcodes en QR-vlakken.
10
10
  // ============================================================================
11
+ import { code128Bars } from "./code128.js";
11
12
  import { PDFDocument, StandardFonts, rgb, } from "pdf-lib";
12
13
  export const MM = 2.834645669291339; // punten per millimeter
13
14
  const LEEG = new Set(["img", "br", "hr", "col", "meta", "link", "input"]);
@@ -561,6 +562,14 @@ async function tekenBlok(ctx, n, vak, ouderStijl) {
561
562
  const s = stijlVan(n, ouderStijl);
562
563
  const st = eig(n);
563
564
  const cl = klassen(n);
565
+ const barcode = zoekBarcodeWaarde(n);
566
+ if (barcode) {
567
+ const h = lengte(st["height"]) ?? 15 * MM;
568
+ tk.zorgVoor(h + 1 * MM);
569
+ tekenBarcode(tk, barcode, vak.x, vak.breedte, h);
570
+ tk.y -= h + 1 * MM;
571
+ return;
572
+ }
564
573
  if (n.tag === "#tekst") {
565
574
  const regels = breekAf(tk, n.tekst ?? "", s, vak.breedte);
566
575
  for (const r of regels) {
@@ -886,6 +895,17 @@ async function tekenAbsoluut(ctx, n, s) {
886
895
  const hoogte = lengte(st["height"]) ?? regelHoogte(eigen);
887
896
  const yBoven = tk.hoogte - top;
888
897
  const yOnder = yBoven - hoogte;
898
+ const barcode = zoekBarcodeWaarde(n);
899
+ if (barcode) {
900
+ const barcodeHoogte = Math.max(5 * MM, hoogte * 0.72);
901
+ tekenBarcode(tk, barcode, x, breedte, barcodeHoogte, yBoven);
902
+ const onderschrift = plattTekst(n).trim();
903
+ if (onderschrift) {
904
+ const kleinStijl = { ...eigen, grootte: Math.min(eigen.grootte, 7), uitlijning: "center" };
905
+ tekenRegel(tk, onderschrift, x, breedte, yOnder + 1, kleinStijl);
906
+ }
907
+ return;
908
+ }
889
909
  const gradientKind = zoekGradient(n);
890
910
  if (gradientKind) {
891
911
  const gebied = gradientKind === "streepjes" ? hoogte * 0.72 : Math.min(breedte, hoogte);
@@ -1005,6 +1025,44 @@ async function tekenAbsoluut(ctx, n, s) {
1005
1025
  tekenRegel(tk, r, x + padding, breedte - padding * 2, y + eigen.grootte * 0.25, eigen);
1006
1026
  }
1007
1027
  }
1028
+ /** Tekent de waarde-encoded Code 128 subset B barcode. */
1029
+ function tekenBarcode(tk, waarde, x, breedte, hoogte, yBoven) {
1030
+ const patroon = code128Bars(waarde);
1031
+ if (!patroon)
1032
+ return;
1033
+ const boven = yBoven ?? tk.y;
1034
+ const y = boven - hoogte;
1035
+ let start = 0;
1036
+ let zwart = patroon[0] === "1";
1037
+ for (let i = 1; i <= patroon.length; i += 1) {
1038
+ const huidig = patroon[i] === "1";
1039
+ if (i === patroon.length || huidig !== zwart) {
1040
+ if (zwart) {
1041
+ tk.pagina.drawRectangle({
1042
+ x: x + (start / patroon.length) * breedte,
1043
+ y,
1044
+ width: ((i - start) / patroon.length) * breedte,
1045
+ height: hoogte,
1046
+ color: DONKER,
1047
+ });
1048
+ }
1049
+ start = i;
1050
+ zwart = huidig;
1051
+ }
1052
+ }
1053
+ }
1054
+ /** Leest alleen expliciet door de renderer aangeleverde barcodewaarden. */
1055
+ function zoekBarcodeWaarde(n) {
1056
+ const waarde = String(n.attrs["data-barcode"] ?? "").trim();
1057
+ if (waarde)
1058
+ return waarde;
1059
+ for (const k of n.kinderen) {
1060
+ const diep = zoekBarcodeWaarde(k);
1061
+ if (diep)
1062
+ return diep;
1063
+ }
1064
+ return null;
1065
+ }
1008
1066
  /** Zoekt een streepjes- of blokjespatroon (barcode/QR) in de knoop of kinderen. */
1009
1067
  function zoekGradient(n) {
1010
1068
  const css = `${eig(n)["background"] ?? ""} ${eig(n)["background-image"] ?? ""}`;
@@ -1 +1 @@
1
- {"version":3,"file":"layoutPreview.d.ts","sourceRoot":"","sources":["../../src/lib/layoutPreview.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvE,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIzD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAE5E;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAuB5F;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;GAI5B,CAAC;AA0FF,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,kBAAkB,EAAE,EAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CAaR"}
1
+ {"version":3,"file":"layoutPreview.d.ts","sourceRoot":"","sources":["../../src/lib/layoutPreview.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEvE,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIzD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAE5E;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAuB5F;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;GAI5B,CAAC;AA4FF,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,kBAAkB,EAAE,EAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,CAaR"}
@@ -2,6 +2,7 @@
2
2
  // src/lib/layoutPreview.ts — voorbeeldgegevens, veldvervanging en print-HTML
3
3
  // ============================================================================
4
4
  import { alleVelden } from "./fieldRegistry.js";
5
+ import { code128BarsHtml } from "./code128.js";
5
6
  export function voorbeeldContext() {
6
7
  const ctx = {};
7
8
  for (const v of alleVelden())
@@ -79,9 +80,11 @@ function elementHtml(el, ctx) {
79
80
  case "cirkel":
80
81
  return `<div style="${base};border-radius:50%;border:${s.randbreedte || 0.3}mm solid ${s.randkleur ?? "#111827"}"></div>`;
81
82
  case "barcode":
82
- return `<div style="${base};display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:monospace">
83
- <div style="width:100%;height:70%;background:repeating-linear-gradient(90deg,#111 0 1.2px,#fff 1.2px 3px)"></div>
84
- <div style="font-size:7pt">${esc(inhoud)}</div></div>`;
83
+ return inhoud
84
+ ? `<div style="${base};display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:monospace">
85
+ <div class="barcode-bars" data-barcode="${esc(inhoud)}" style="width:100%;height:70%;display:flex;background:#fff">${code128BarsHtml(inhoud)}</div>
86
+ <div style="font-size:7pt">${esc(inhoud)}</div></div>`
87
+ : "";
85
88
  case "qrcode":
86
89
  return `<div style="${base};background:repeating-conic-gradient(#111 0% 25%, #fff 0% 50%) 0 0/22% 22%"></div>`;
87
90
  case "logo":
@@ -125,10 +128,10 @@ export function bouwDocumentHtml(layout, elementen, gegevens) {
125
128
  const body = zichtbaar.map((e) => elementHtml(e, ctx)).join("");
126
129
  const b = layout.orientatie === "landscape" ? layout.hoogte_mm : layout.breedte_mm;
127
130
  const h = layout.orientatie === "landscape" ? layout.breedte_mm : layout.hoogte_mm;
128
- return `<!doctype html><html lang="nl"><head><meta charset="utf-8"><title>${esc(layout.naam)}</title>
129
- <style>@page{size:${b}mm ${h}mm;margin:0}
130
- body{margin:0;background:#e5e7eb}
131
- .pagina{position:relative;width:${b}mm;height:${h}mm;background:#fff;margin:0 auto;overflow:hidden}
132
- @media print{body{background:#fff}}</style></head>
131
+ return `<!doctype html><html lang="nl"><head><meta charset="utf-8"><title>${esc(layout.naam)}</title>
132
+ <style>@page{size:${b}mm ${h}mm;margin:0}
133
+ body{margin:0;background:#e5e7eb}
134
+ .pagina{position:relative;width:${b}mm;height:${h}mm;background:#fff;margin:0 auto;overflow:hidden}
135
+ @media print{body{background:#fff}}</style></head>
133
136
  <body><div class="pagina">${body}</div></body></html>`;
134
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orderData.server.d.ts","sourceRoot":"","sources":["../../src/lib/orderData.server.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAwBtD,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAKvD;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG;IACrD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAgCA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAMA;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7E,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAwXrB;AA+DD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAGhG"}
1
+ {"version":3,"file":"orderData.server.d.ts","sourceRoot":"","sources":["../../src/lib/orderData.server.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAwBtD,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAKvD;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG;IACrD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAgCA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG;IAC7C,KAAK,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAMA;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7E,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CA8XrB;AA+DD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAGhG"}
@@ -354,6 +354,12 @@ export async function laadPakbonData(db, opties) {
354
354
  if (!lagen.length)
355
355
  lagen.push({ producten: [], ruimte: 0 });
356
356
  return {
357
+ // Nodig om een Engine-opdracht voor precies één kar te kunnen filteren.
358
+ // De waarde komt uit de gedeelde database en wordt nooit lokaal bedacht.
359
+ cart_id: String(kar["id"] ?? "") || undefined,
360
+ cart_label: String(kar["cart_label"] ?? kar["label"] ?? "") || undefined,
361
+ cart_index: index + 1,
362
+ cart_total: karrenRijen.length,
357
363
  karnummer: num(kar["cart_number"]) || index + 1,
358
364
  route: String(kar["carrier_type"] ?? ""),
359
365
  gewicht: kar["weight_kg"] ? `${num(kar["weight_kg"]).toFixed(1)} kg` : "",
@@ -67,10 +67,22 @@ export declare function sectieDef(type: PakbonSectieType): SectieDef;
67
67
  export declare function nieuweSectie(type: PakbonSectieType): PakbonSectie;
68
68
  export declare function standaardPakbonConfig(): PakbonConfig;
69
69
  export declare function leesPakbonConfig(config: unknown): PakbonConfig;
70
+ /** Manier waarop de order gepickt wordt. */
71
+ export type PickMethode = "kar" | "fusten" | "beide";
72
+ /** Variant die de Logistics Engine voor een gecombineerde pakbon kiest. */
73
+ export type PakbonLayoutVariant = "full_cart" | "partial_order";
74
+ /** Normaliseert alleen de twee varianten uit het gedeelde Engine-contract. */
75
+ export declare function pakbonLayoutVariant(value: unknown): PakbonLayoutVariant | null;
70
76
  /** Actieve pickmethode van een pakbonconfiguratie. */
71
- export declare function pickMethode(secties: PakbonSectie[] | undefined): "kar" | "fusten";
77
+ export declare function pickMethode(secties: PakbonSectie[] | undefined): PickMethode;
72
78
  /** Blokken die bij de gekozen pickmethode niet van toepassing zijn. */
73
- export declare function sectieOnderdrukt(type: PakbonSectieType, methode: "kar" | "fusten"): boolean;
79
+ export declare function sectieOnderdrukt(type: PakbonSectieType, methode: PickMethode): boolean;
80
+ /**
81
+ * Blokken die de Engine-variant weglaat. Zonder variant blijft de editor/het
82
+ * losse voorbeeld compleet; een echte Engine-opdracht wordt in de wachtrij
83
+ * geblokkeerd totdat de variant aanwezig is.
84
+ */
85
+ export declare function sectieOnderdruktVoorVariant(type: PakbonSectieType, methode: PickMethode, variant?: PakbonLayoutVariant | null): boolean;
74
86
  export interface DemoProduct {
75
87
  artikelnummer: string;
76
88
  artikelnaam: string;
@@ -107,6 +119,14 @@ export interface DemoKar {
107
119
  route: string;
108
120
  chauffeur: string;
109
121
  gewicht: string;
122
+ /** Gegevens die de Engine voor één volle of gedeeltelijke kar aanlevert. */
123
+ cart_label?: string;
124
+ cart_index?: number;
125
+ cart_total?: number;
126
+ cart_id?: string;
127
+ cart_items?: unknown[];
128
+ /** Bestaande Engine-barcode van deze kar; de Layout maker genereert deze nooit. */
129
+ barcode?: string;
110
130
  /** Kar bevat ook regels van een andere order (buffer-/gedeelde kar). */
111
131
  gedeeld?: boolean;
112
132
  lagen: DemoLaag[];
@@ -209,4 +229,10 @@ export interface FustVerzamelGroep {
209
229
  * karindeling maakt.
210
230
  */
211
231
  export declare function fustVerzamellijst(karren: unknown): FustVerzamelGroep[];
232
+ /**
233
+ * Voorbeeld van een deelkar (niet-volle kar): alleen een deel van de fusten,
234
+ * zonder karindeling. Uitsluitend bedoeld voor het voorbeeld in de builder —
235
+ * echte opdrachten krijgen hun gegevens van de Logistics Engine.
236
+ */
237
+ export declare function deelkarVoorbeeldOrder(order?: DemoOrder): DemoOrder;
212
238
  //# sourceMappingURL=pakbonBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pakbonBuilder.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pakbonBuilder.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonBuilder.ts"],"names":[],"mappings":"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"}
@@ -212,7 +212,7 @@ export const SECTIE_REGISTER = [
212
212
  {
213
213
  type: "pickmethode",
214
214
  label: "Pickmethode",
215
- omschrijving: "Bepaalt de opbouw van de pakbon: per kar (met karren en lagen) of per fust (verzamellijst).",
215
+ omschrijving: "Bepaalt of orders per kar, per fust of op beide manieren worden gepickt.",
216
216
  opties: [
217
217
  {
218
218
  key: "methode",
@@ -222,8 +222,9 @@ export const SECTIE_REGISTER = [
222
222
  opties: [
223
223
  { value: "kar", label: "Order picken per kar" },
224
224
  { value: "fusten", label: "Order picken per fusten (zelf karindeling maken)" },
225
+ { value: "beide", label: "Order picken per kar én per fusten (karren + verzamellijst)" },
225
226
  ],
226
- hint: "Bij picken per fusten vervallen de blokken Karren, Lagen, Producten en Fusten en toont de pakbon een fustverzamellijst.",
227
+ hint: "Bij picken per fusten vervallen de blokken Karren, Lagen, Producten en Fusten. Bij de gecombineerde keuze bepaalt de Engine per opdracht: full_cart toont de karindeling, partial_order alleen de te verzamelen fusten.",
227
228
  },
228
229
  {
229
230
  key: "kop",
@@ -249,6 +250,14 @@ export const SECTIE_REGISTER = [
249
250
  },
250
251
  { key: "toonFusthoogte", label: "Fusthoogte en belading tonen", type: "schakelaar", standaard: true },
251
252
  { key: "toonTotaal", label: "Totaal aantal fusten tonen", type: "schakelaar", standaard: true },
253
+ {
254
+ key: "toonBarcode",
255
+ label: "Barcode voor afleverbrief tonen",
256
+ type: "schakelaar",
257
+ standaard: true,
258
+ hint: "De barcode wordt uitsluitend overgenomen uit de Engine-opdracht.",
259
+ },
260
+ { key: "barcodeHoogte", label: "Barcodehoogte (mm)", type: "getal", standaard: 15 },
252
261
  ],
253
262
  },
254
263
  {
@@ -498,9 +507,9 @@ export const SECTIE_REGISTER = [
498
507
  {
499
508
  type: "barcode",
500
509
  label: "Barcode",
501
- omschrijving: "Barcode met orderwaarde.",
510
+ omschrijving: "Scanbare barcode. Bij Engine-pakbonnen komt de waarde uit de opdracht.",
502
511
  opties: [
503
- { key: "waarde", label: "Inhoud", type: "tekst", standaard: "{{order.nummer}}" },
512
+ { key: "waarde", label: "Inhoud", type: "tekst", standaard: "{{barcode}}" },
504
513
  { key: "hoogte", label: "Hoogte (mm)", type: "getal", standaard: 15 },
505
514
  ],
506
515
  },
@@ -572,11 +581,20 @@ function migreerPickmethode(secties) {
572
581
  const karIndex = secties.findIndex((s) => s.type === "karren");
573
582
  const oud = karIndex >= 0 ? String(secties[karIndex].opties?.["pickmethode"] ?? "kar") : "kar";
574
583
  const blok = nieuweSectie("pickmethode");
575
- blok.opties["methode"] = oud === "fusten" ? "fusten" : "kar";
584
+ blok.opties["methode"] = oud === "fusten" || oud === "beide" ? oud : "kar";
576
585
  const kopie = [...secties];
577
586
  kopie.splice(karIndex >= 0 ? karIndex : kopie.length, 0, blok);
578
587
  return kopie;
579
588
  }
589
+ /** Normaliseert alleen de twee varianten uit het gedeelde Engine-contract. */
590
+ export function pakbonLayoutVariant(value) {
591
+ const variant = String(value ?? "").trim().toLowerCase();
592
+ if (variant === "full_cart")
593
+ return "full_cart";
594
+ if (variant === "partial_order")
595
+ return "partial_order";
596
+ return null;
597
+ }
580
598
  /** Actieve pickmethode van een pakbonconfiguratie. */
581
599
  export function pickMethode(secties) {
582
600
  const lijst = Array.isArray(secties) ? secties : [];
@@ -584,13 +602,31 @@ export function pickMethode(secties) {
584
602
  const waarde = blok
585
603
  ? String(blok.opties?.["methode"] ?? "kar")
586
604
  : String(lijst.find((s) => s.type === "karren")?.opties?.["pickmethode"] ?? "kar");
587
- return waarde === "fusten" ? "fusten" : "kar";
605
+ if (waarde === "fusten")
606
+ return "fusten";
607
+ if (waarde === "beide")
608
+ return "beide";
609
+ return "kar";
588
610
  }
589
611
  const KAR_SECTIES = ["karren", "lagen", "producten", "fusten"];
590
612
  /** Blokken die bij de gekozen pickmethode niet van toepassing zijn. */
591
613
  export function sectieOnderdrukt(type, methode) {
592
614
  return methode === "fusten" && KAR_SECTIES.includes(type);
593
615
  }
616
+ /**
617
+ * Blokken die de Engine-variant weglaat. Zonder variant blijft de editor/het
618
+ * losse voorbeeld compleet; een echte Engine-opdracht wordt in de wachtrij
619
+ * geblokkeerd totdat de variant aanwezig is.
620
+ */
621
+ export function sectieOnderdruktVoorVariant(type, methode, variant) {
622
+ if (sectieOnderdrukt(type, methode))
623
+ return true;
624
+ if (methode !== "beide" || !variant)
625
+ return false;
626
+ if (variant === "full_cart")
627
+ return type === "pickmethode";
628
+ return type === "pickmethode" ? false : [...KAR_SECTIES, "orderregels"].includes(type);
629
+ }
594
630
  const p = (nr, naam, potmaat, aantal, locatie, groep, kleur) => ({
595
631
  artikelnummer: nr,
596
632
  artikelnaam: naam,
@@ -651,6 +687,7 @@ export const DEMO_ORDER = {
651
687
  karren: [
652
688
  {
653
689
  karnummer: 5,
690
+ barcode: "VOORBEELD-KAR-05",
654
691
  route: "Route Zuid",
655
692
  chauffeur: "J. Bakker",
656
693
  gewicht: "142 kg",
@@ -687,6 +724,7 @@ export const DEMO_ORDER = {
687
724
  // ze samengevoegd tot één blok met "Deze kar 3× pakken".
688
725
  ...[6, 7, 8].map((nr) => ({
689
726
  karnummer: nr,
727
+ barcode: `VOORBEELD-KAR-${String(nr).padStart(2, "0")}`,
690
728
  route: "Route Zuid",
691
729
  chauffeur: "J. Bakker",
692
730
  gewicht: "118 kg",
@@ -813,8 +851,10 @@ function laagVingerafdruk(l) {
813
851
  return [l.belading, l.potmaat, l.gewicht, l.opmerking, producten, fusten].join("#");
814
852
  }
815
853
  function karVingerafdruk(k) {
816
- // karnummer bewust niet meegenomen: alleen de indeling telt
817
- return [k.route, k.chauffeur, k.gewicht, k.gedeeld ? "gedeeld" : "", (k.lagen ?? []).map(laagVingerafdruk).join("~")].join("#");
854
+ // karnummer bewust niet meegenomen: alleen de indeling telt. Een kar met een
855
+ // eigen barcode of cart_id van de Engine is wél uniek en wordt nooit gebundeld.
856
+ const uniek = String(k.barcode ?? "") || String(k.cart_id ?? "") || String(k.cart_label ?? "");
857
+ return [uniek, k.route, k.chauffeur, k.gewicht, k.gedeeld ? "gedeeld" : "", (k.lagen ?? []).map(laagVingerafdruk).join("~")].join("#");
818
858
  }
819
859
  /** Groepeert identieke karren. Bij `aan = false` blijft elke kar los. */
820
860
  export function groepeerIdentiekeKarren(karren, aan) {
@@ -928,3 +968,24 @@ export function fustVerzamellijst(karren) {
928
968
  }
929
969
  return [...map.values()].sort((a, b) => a.fusttype.localeCompare(b.fusttype));
930
970
  }
971
+ /**
972
+ * Voorbeeld van een deelkar (niet-volle kar): alleen een deel van de fusten,
973
+ * zonder karindeling. Uitsluitend bedoeld voor het voorbeeld in de builder —
974
+ * echte opdrachten krijgen hun gegevens van de Logistics Engine.
975
+ */
976
+ export function deelkarVoorbeeldOrder(order = DEMO_ORDER) {
977
+ const eerste = order.karren[0];
978
+ const laag = eerste?.lagen?.[0];
979
+ if (!eerste || !laag)
980
+ return order;
981
+ return {
982
+ ...order,
983
+ karren: [
984
+ {
985
+ ...eerste,
986
+ gedeeld: true,
987
+ lagen: [{ ...laag, producten: laag.producten.slice(0, 1), fusten: laag.fusten?.slice(0, 1) ?? [] }],
988
+ },
989
+ ],
990
+ };
991
+ }
@@ -1,6 +1,16 @@
1
1
  import { type DemoOrder, type PakbonConfig } from "./pakbonBuilder.js";
2
- /** Gegevensvorm van een pakbon. Gelijk aan de vorm van het live voorbeeld. */
3
- export type PakbonOrder = DemoOrder;
2
+ /** Gegevensvorm van een pakbon. Engine-metadata blijft naast ordergegevens beschikbaar. */
3
+ export type PakbonOrder = DemoOrder & {
4
+ barcode?: string;
5
+ cart?: {
6
+ cart_label?: string;
7
+ cart_index?: number;
8
+ cart_total?: number;
9
+ cart_id?: string;
10
+ cart_items?: unknown[];
11
+ barcode?: string;
12
+ };
13
+ };
4
14
  export interface PakbonLogo {
5
15
  id: string;
6
16
  naam?: string;
@@ -20,6 +30,8 @@ export interface PakbonRenderOpties {
20
30
  logos?: PakbonLogo[];
21
31
  /** Documentlogo: gebruikt wanneer een logoblok zelf geen logo heeft. */
22
32
  logoId?: string | null;
33
+ /** Variant die uitsluitend door de Logistics Engine wordt bepaald. */
34
+ layoutVariant?: string | null;
23
35
  }
24
36
  export declare function esc(v: unknown): string;
25
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pakbonHtml.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonHtml.ts"],"names":[],"mappings":"AAUA,OAAO,EAmBL,KAAK,SAAS,EAEd,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAGzB,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,SAAS,CAAC;AAEpC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAWD,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKtC;AAQD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAgE3D;AA8oBD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CA8BR;AAgBD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CAmER;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,IAAI,CAsCN;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"pakbonHtml.d.ts","sourceRoot":"","sources":["../../src/lib/pakbonHtml.ts"],"names":[],"mappings":"AAUA,OAAO,EAoBL,KAAK,SAAS,EAEd,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AAKzB,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAWD,wBAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAKtC;AAyBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAiF3D;AAgrBD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CA+CR;AAgBD,gEAAgE;AAChE,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,MAAM,CAoER;AAED,iEAAiE;AACjE,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,IAAI,CAsCN;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,GAAG,OAAO,EAC9B,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,kBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAUf"}