@flowselections/layout-maker 1.69.8 → 1.69.13
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-lib/components/A4StickervelKaart.d.ts +5 -0
- package/dist-lib/components/A4StickervelKaart.d.ts.map +1 -0
- package/dist-lib/components/A4StickervelKaart.js +123 -0
- package/dist-lib/components/KlaarOmTePrintenBlok.d.ts.map +1 -1
- package/dist-lib/components/KlaarOmTePrintenBlok.js +50 -7
- package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
- package/dist-lib/components/PrintQueuePage.js +2 -1
- package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
- package/dist-lib/components/PrintplekDetailPage.js +3 -1
- package/dist-lib/components/PrintplekkenPage.d.ts.map +1 -1
- package/dist-lib/components/PrintplekkenPage.js +2 -1
- package/dist-lib/components/StickerRouteTestKaart.d.ts +5 -0
- package/dist-lib/components/StickerRouteTestKaart.d.ts.map +1 -0
- package/dist-lib/components/StickerRouteTestKaart.js +75 -0
- package/dist-lib/components/UitwijkRegel.d.ts +5 -0
- package/dist-lib/components/UitwijkRegel.d.ts.map +1 -0
- package/dist-lib/components/UitwijkRegel.js +17 -0
- package/dist-lib/components/UitwijkTekening.d.ts +19 -0
- package/dist-lib/components/UitwijkTekening.d.ts.map +1 -0
- package/dist-lib/components/UitwijkTekening.js +21 -0
- package/dist-lib/index.d.ts +12 -0
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +14 -0
- package/dist-lib/integrations/supabase/types.d.ts +3227 -22
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/belading.d.ts +10 -0
- package/dist-lib/lib/belading.d.ts.map +1 -0
- package/dist-lib/lib/belading.js +49 -0
- package/dist-lib/lib/documentProfiles.js +2 -2
- package/dist-lib/lib/eigenDocumenten.d.ts +2 -0
- package/dist-lib/lib/eigenDocumenten.d.ts.map +1 -1
- package/dist-lib/lib/eigenDocumenten.js +23 -0
- package/dist-lib/lib/fieldRegistry.js +3 -2
- package/dist-lib/lib/installCheck.d.ts +36 -0
- package/dist-lib/lib/installCheck.d.ts.map +1 -0
- package/dist-lib/lib/installCheck.js +65 -0
- package/dist-lib/lib/klaarOmTePrinten.d.ts +15 -1
- package/dist-lib/lib/klaarOmTePrinten.d.ts.map +1 -1
- package/dist-lib/lib/klaarOmTePrinten.js +19 -1
- package/dist-lib/lib/orderData.server.d.ts.map +1 -1
- package/dist-lib/lib/orderData.server.js +20 -17
- package/dist-lib/lib/pakbonBuilder.d.ts +6 -0
- package/dist-lib/lib/pakbonBuilder.d.ts.map +1 -1
- package/dist-lib/lib/pakbonBuilder.js +22 -9
- package/dist-lib/lib/pakbonContent.d.ts.map +1 -1
- package/dist-lib/lib/pakbonContent.js +4 -1
- package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
- package/dist-lib/lib/pakbonHtml.js +5 -2
- package/dist-lib/lib/pakbonPresentation.d.ts +3 -1
- package/dist-lib/lib/pakbonPresentation.d.ts.map +1 -1
- package/dist-lib/lib/pakbonPresentation.js +13 -6
- package/dist-lib/lib/printQueue.server.d.ts +24 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +239 -17
- package/dist-lib/lib/printService.server.d.ts.map +1 -1
- package/dist-lib/lib/printService.server.js +3 -2
- package/dist-lib/lib/profielHtml.d.ts.map +1 -1
- package/dist-lib/lib/profielHtml.js +2 -1
- package/dist-lib/lib/standaardLayouts.server.d.ts +6 -0
- package/dist-lib/lib/standaardLayouts.server.d.ts.map +1 -1
- package/dist-lib/lib/standaardLayouts.server.js +13 -0
- package/dist-lib/lib/stickerPlaatsing.d.ts +37 -0
- package/dist-lib/lib/stickerPlaatsing.d.ts.map +1 -0
- package/dist-lib/lib/stickerPlaatsing.js +122 -0
- package/dist-lib/lib/stickerUitwijk.d.ts +197 -0
- package/dist-lib/lib/stickerUitwijk.d.ts.map +1 -0
- package/dist-lib/lib/stickerUitwijk.js +311 -0
- package/dist-lib/lib/testprint.d.ts +13 -0
- package/dist-lib/lib/testprint.d.ts.map +1 -1
- package/dist-lib/lib/testprint.js +38 -0
- package/dist-lib/lib/useDocumentData.js +1 -1
- package/dist-lib/lib/versie.generated.d.ts +1 -1
- package/dist-lib/lib/versie.generated.d.ts.map +1 -1
- package/dist-lib/lib/versie.generated.js +1 -1
- package/dist-lib/lib/vervoerder.d.ts +27 -3
- package/dist-lib/lib/vervoerder.d.ts.map +1 -1
- package/dist-lib/lib/vervoerder.js +65 -10
- package/dist-lib/lib/vroegeWaarschuwing.d.ts +21 -0
- package/dist-lib/lib/vroegeWaarschuwing.d.ts.map +1 -0
- package/dist-lib/lib/vroegeWaarschuwing.js +15 -0
- package/package.json +2 -2
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { UitwijkUitkomst } from "./stickerUitwijk.js";
|
|
2
|
+
import { type Velindeling as VelIndeling } from "./stickerUitwijk.js";
|
|
3
|
+
/** Rand rond het A4-vel met snijlijnen. */
|
|
4
|
+
export declare const SNIJ_MARGE_MM = 5;
|
|
5
|
+
export interface Plaatsing {
|
|
6
|
+
/** Linksonder van het vak (mm, PDF-assen). */
|
|
7
|
+
x_mm: number;
|
|
8
|
+
y_mm: number;
|
|
9
|
+
b_mm: number;
|
|
10
|
+
h_mm: number;
|
|
11
|
+
}
|
|
12
|
+
/** Positie van een sticker gecentreerd op een pagina, in mm (links, onder). */
|
|
13
|
+
export declare function centreer(paginaB: number, paginaH: number, stickerB: number, stickerH: number, schaal: number, rotate: 0 | 90): Plaatsing;
|
|
14
|
+
/** Vakken op een A4 voor deze maat: vaste velindeling, of zoveel als passen met snijlijnen. */
|
|
15
|
+
export declare function velVakken(stickerB: number, stickerH: number, vel: VelIndeling | null): {
|
|
16
|
+
vakken: Plaatsing[];
|
|
17
|
+
snijlijnen: boolean;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Voert de uitwijkroute uit. Etiketroutes: elke pagina wordt een etiketpagina
|
|
21
|
+
* (gedraaid/gecentreerd/verkleind). A4-routes: alle pagina's × kopieën worden
|
|
22
|
+
* 1-op-1 over één of meer vellen verdeeld; de opdracht gaat dan met qty 1.
|
|
23
|
+
*/
|
|
24
|
+
export declare function voerUitwijkUit(pdfBase64: string, u: UitwijkUitkomst, sticker: {
|
|
25
|
+
breedte_mm: number;
|
|
26
|
+
hoogte_mm: number;
|
|
27
|
+
}, kopieen: number): Promise<{
|
|
28
|
+
pdfBase64: string;
|
|
29
|
+
kopieen: number;
|
|
30
|
+
paginas: number;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Testvel op gewoon A4 (1.69.12): de vakken van de velindeling met rand,
|
|
34
|
+
* 1-op-1, zodat de beheerder het echte stickervel ertegen kan houden.
|
|
35
|
+
*/
|
|
36
|
+
export declare function testvelPdf(vel: VelIndeling): Promise<string>;
|
|
37
|
+
//# sourceMappingURL=stickerPlaatsing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stickerPlaatsing.d.ts","sourceRoot":"","sources":["../../src/lib/stickerPlaatsing.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAmB,KAAK,WAAW,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpF,2CAA2C;AAC3C,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,MAAM,WAAW,SAAS;IACxB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,SAAS,CAIxI;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,GAAG;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAgBnI;AAeD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,CAAC,EAAE,eAAe,EAClB,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAClD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmClE;AAcD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CASlE"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/stickerPlaatsing.ts — de uitwijkroute zelf in de PDF uitvoeren
|
|
3
|
+
// (1.69.12). De printer krijgt altijd een pagina van precies het geladen
|
|
4
|
+
// etiket (of A4), fit_to_page uit en rotate 0: draaien, centreren en
|
|
5
|
+
// eventueel verkleinen gebeurt hier, nooit in de printer of driver.
|
|
6
|
+
// ============================================================================
|
|
7
|
+
import { PDFDocument, degrees, rgb } from "pdf-lib";
|
|
8
|
+
import { velindelingVoor } from "./stickerUitwijk.js";
|
|
9
|
+
const PT = 72 / 25.4;
|
|
10
|
+
const A4 = { b: 210, h: 297 };
|
|
11
|
+
/** Rand rond het A4-vel met snijlijnen. */
|
|
12
|
+
export const SNIJ_MARGE_MM = 5;
|
|
13
|
+
/** Positie van een sticker gecentreerd op een pagina, in mm (links, onder). */
|
|
14
|
+
export function centreer(paginaB, paginaH, stickerB, stickerH, schaal, rotate) {
|
|
15
|
+
const b = (rotate ? stickerH : stickerB) * schaal;
|
|
16
|
+
const h = (rotate ? stickerB : stickerH) * schaal;
|
|
17
|
+
return { x_mm: (paginaB - b) / 2, y_mm: (paginaH - h) / 2, b_mm: b, h_mm: h };
|
|
18
|
+
}
|
|
19
|
+
/** Vakken op een A4 voor deze maat: vaste velindeling, of zoveel als passen met snijlijnen. */
|
|
20
|
+
export function velVakken(stickerB, stickerH, vel) {
|
|
21
|
+
const kol = vel ? vel.kolommen : Math.max(1, Math.floor((A4.b - 2 * SNIJ_MARGE_MM + 1e-9) / stickerB));
|
|
22
|
+
const rij = vel ? vel.rijen : Math.max(1, Math.floor((A4.h - 2 * SNIJ_MARGE_MM + 1e-9) / stickerH));
|
|
23
|
+
const cb = vel ? vel.breedte_mm : stickerB;
|
|
24
|
+
const ch = vel ? vel.hoogte_mm : stickerH;
|
|
25
|
+
// Eigen vel: vaste randen en tussenruimtes vanaf linksboven. Anders gecentreerd.
|
|
26
|
+
const eigen = vel?.marge_links_mm !== undefined || vel?.marge_boven_mm !== undefined;
|
|
27
|
+
const th = eigen ? vel?.tussen_h_mm ?? 0 : 0;
|
|
28
|
+
const tv = eigen ? vel?.tussen_v_mm ?? 0 : 0;
|
|
29
|
+
const x0 = eigen ? vel?.marge_links_mm ?? 0 : (A4.b - kol * cb) / 2;
|
|
30
|
+
const yTop = eigen ? A4.h - (vel?.marge_boven_mm ?? 0) : A4.h - (A4.h - rij * ch) / 2;
|
|
31
|
+
const vakken = [];
|
|
32
|
+
for (let r = 0; r < rij; r++) {
|
|
33
|
+
for (let k = 0; k < kol; k++)
|
|
34
|
+
vakken.push({ x_mm: x0 + k * (cb + th), y_mm: yTop - (r + 1) * ch - r * tv, b_mm: cb, h_mm: ch });
|
|
35
|
+
}
|
|
36
|
+
return { vakken, snijlijnen: !vel };
|
|
37
|
+
}
|
|
38
|
+
function decodeer(b64) {
|
|
39
|
+
if (typeof atob === "function")
|
|
40
|
+
return Uint8Array.from(atob(b64), (c) => c.charCodeAt(0));
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
+
return new Uint8Array(globalThis.Buffer.from(b64, "base64"));
|
|
43
|
+
}
|
|
44
|
+
function codeer(bytes) {
|
|
45
|
+
let s = "";
|
|
46
|
+
for (let i = 0; i < bytes.length; i += 0x8000)
|
|
47
|
+
s += String.fromCharCode(...bytes.subarray(i, i + 0x8000));
|
|
48
|
+
if (typeof btoa === "function")
|
|
49
|
+
return btoa(s);
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
return globalThis.Buffer.from(bytes).toString("base64");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Voert de uitwijkroute uit. Etiketroutes: elke pagina wordt een etiketpagina
|
|
55
|
+
* (gedraaid/gecentreerd/verkleind). A4-routes: alle pagina's × kopieën worden
|
|
56
|
+
* 1-op-1 over één of meer vellen verdeeld; de opdracht gaat dan met qty 1.
|
|
57
|
+
*/
|
|
58
|
+
export async function voerUitwijkUit(pdfBase64, u, sticker, kopieen) {
|
|
59
|
+
const bron = await PDFDocument.load(decodeer(pdfBase64));
|
|
60
|
+
const doel = await PDFDocument.create();
|
|
61
|
+
const ingebed = await doel.embedPages(bron.getPages());
|
|
62
|
+
if (u.uitwijkroute === "a4_vel" || u.uitwijkroute === "a4_snijlijnen") {
|
|
63
|
+
const vel = u.uitwijkroute === "a4_vel" ? (u.velindeling ?? velindelingVoor(sticker.breedte_mm, sticker.hoogte_mm)) : null;
|
|
64
|
+
const { vakken, snijlijnen } = velVakken(sticker.breedte_mm, sticker.hoogte_mm, vel);
|
|
65
|
+
const reeks = Array.from({ length: Math.max(1, kopieen) }).flatMap(() => ingebed);
|
|
66
|
+
let pagina = null;
|
|
67
|
+
reeks.forEach((p, i) => {
|
|
68
|
+
const vak = vakken[i % vakken.length];
|
|
69
|
+
if (i % vakken.length === 0) {
|
|
70
|
+
pagina = doel.addPage([A4.b * PT, A4.h * PT]);
|
|
71
|
+
if (snijlijnen)
|
|
72
|
+
tekenSnijlijnen(pagina, vakken);
|
|
73
|
+
}
|
|
74
|
+
const pl = centreer(vak.b_mm, vak.h_mm, sticker.breedte_mm, sticker.hoogte_mm, 1, 0);
|
|
75
|
+
pagina.drawPage(p, { x: (vak.x_mm + pl.x_mm) * PT, y: (vak.y_mm + pl.y_mm) * PT, width: sticker.breedte_mm * PT, height: sticker.hoogte_mm * PT });
|
|
76
|
+
});
|
|
77
|
+
return { pdfBase64: codeer(await doel.save()), kopieen: 1, paginas: doel.getPageCount() };
|
|
78
|
+
}
|
|
79
|
+
for (const p of ingebed) {
|
|
80
|
+
const pagina = doel.addPage([u.pagina_breedte_mm * PT, u.pagina_hoogte_mm * PT]);
|
|
81
|
+
const pl = centreer(u.pagina_breedte_mm, u.pagina_hoogte_mm, sticker.breedte_mm, sticker.hoogte_mm, u.schaal, u.rotate);
|
|
82
|
+
const w = sticker.breedte_mm * u.schaal * PT;
|
|
83
|
+
const h = sticker.hoogte_mm * u.schaal * PT;
|
|
84
|
+
if (u.rotate === 90) {
|
|
85
|
+
// Gedraaid om linksonder: vak loopt van x-h tot x en van y tot y+w.
|
|
86
|
+
pagina.drawPage(p, { x: (pl.x_mm + pl.b_mm) * PT, y: pl.y_mm * PT, width: w, height: h, rotate: degrees(90) });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
pagina.drawPage(p, { x: pl.x_mm * PT, y: pl.y_mm * PT, width: w, height: h });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return { pdfBase64: codeer(await doel.save()), kopieen, paginas: doel.getPageCount() };
|
|
93
|
+
}
|
|
94
|
+
function tekenSnijlijnen(pagina, vakken) {
|
|
95
|
+
const kleur = rgb(0.6, 0.6, 0.6);
|
|
96
|
+
const xs = new Set();
|
|
97
|
+
const ys = new Set();
|
|
98
|
+
for (const v of vakken) {
|
|
99
|
+
xs.add(v.x_mm);
|
|
100
|
+
xs.add(v.x_mm + v.b_mm);
|
|
101
|
+
ys.add(v.y_mm);
|
|
102
|
+
ys.add(v.y_mm + v.h_mm);
|
|
103
|
+
}
|
|
104
|
+
for (const x of xs)
|
|
105
|
+
pagina.drawLine({ start: { x: x * PT, y: 0 }, end: { x: x * PT, y: A4.h * PT }, thickness: 0.3, color: kleur, dashArray: [3, 3] });
|
|
106
|
+
for (const y of ys)
|
|
107
|
+
pagina.drawLine({ start: { x: 0, y: y * PT }, end: { x: A4.b * PT, y: y * PT }, thickness: 0.3, color: kleur, dashArray: [3, 3] });
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Testvel op gewoon A4 (1.69.12): de vakken van de velindeling met rand,
|
|
111
|
+
* 1-op-1, zodat de beheerder het echte stickervel ertegen kan houden.
|
|
112
|
+
*/
|
|
113
|
+
export async function testvelPdf(vel) {
|
|
114
|
+
const doel = await PDFDocument.create();
|
|
115
|
+
const pagina = doel.addPage([A4.b * PT, A4.h * PT]);
|
|
116
|
+
const { vakken } = velVakken(vel.breedte_mm, vel.hoogte_mm, vel);
|
|
117
|
+
for (const v of vakken) {
|
|
118
|
+
pagina.drawRectangle({ x: v.x_mm * PT, y: v.y_mm * PT, width: v.b_mm * PT, height: v.h_mm * PT, borderColor: rgb(0, 0, 0), borderWidth: 0.5 });
|
|
119
|
+
}
|
|
120
|
+
pagina.drawText(`Testvel ${Math.round(vel.breedte_mm)}x${Math.round(vel.hoogte_mm)} mm, ${vel.kolommen}x${vel.rijen} per vel - houd het stickervel ertegen`, { x: 5 * PT, y: 2 * PT, size: 7 });
|
|
121
|
+
return codeer(await doel.save());
|
|
122
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
export type StickerSoort = "floriday_sticker" | "floriday_traysticker" | "klantsticker" | "eigen_sticker" | "eigen_traysticker";
|
|
2
|
+
import type { PrinterFormaten } from "./papierFormaten.js";
|
|
3
|
+
export declare const STICKER_SOORTEN: {
|
|
4
|
+
soort: StickerSoort;
|
|
5
|
+
label: string;
|
|
6
|
+
veilingbarcode: boolean;
|
|
7
|
+
}[];
|
|
8
|
+
export interface VerkleinInstelling {
|
|
9
|
+
toegestaan: boolean;
|
|
10
|
+
ondergrens_pct: number;
|
|
11
|
+
}
|
|
12
|
+
export type StickerInstellingen = Record<StickerSoort, VerkleinInstelling>;
|
|
13
|
+
/** Sleutel in app_settings. De standaardwaarden staan alleen hieronder. */
|
|
14
|
+
export declare const STICKER_INSTELLING_SLEUTEL = "layouts.sticker_verkleinen";
|
|
15
|
+
/** Printplekken (ids, JSON-lijst) waar een A4-stickervel in de A4-printer ligt. */
|
|
16
|
+
/** @deprecated 1.69.12: vervangen door print_plekken.a4_stickervel; alleen nog voor de overname. */
|
|
17
|
+
export declare const A4_STICKERVEL_SLEUTEL = "layouts.a4_stickervel_plekken";
|
|
18
|
+
/** De enige plek met de standaardwaarden: aan, 90% met veilingbarcode, anders 85%. */
|
|
19
|
+
export declare function standaardStickerInstellingen(): StickerInstellingen;
|
|
20
|
+
/** Leest de opgeslagen waarde (tekst of object); ontbrekende soorten krijgen de standaard. */
|
|
21
|
+
export declare function leesStickerInstellingen(v: unknown): StickerInstellingen;
|
|
22
|
+
/**
|
|
23
|
+
* Strikt lezen (1.69.12): alleen een volledige instelling voor alle soorten
|
|
24
|
+
* telt; anders null. Geen aanvulling met standaardwaarden uit de code — die
|
|
25
|
+
* staan alleen in de databasefunctie layouts_zorg_voor_sticker_verkleinen.
|
|
26
|
+
*/
|
|
27
|
+
export declare function leesStickerInstellingenStrikt(v: unknown): StickerInstellingen | null;
|
|
28
|
+
/** Vaste velindelingen op A4 (210 × 297 mm) voor gangbare stickermaten. */
|
|
29
|
+
export interface Velindeling {
|
|
30
|
+
breedte_mm: number;
|
|
31
|
+
hoogte_mm: number;
|
|
32
|
+
kolommen: number;
|
|
33
|
+
rijen: number;
|
|
34
|
+
/** Alleen bij een eigen vel: vaste randen en tussenruimtes (mm). */
|
|
35
|
+
marge_boven_mm?: number;
|
|
36
|
+
marge_links_mm?: number;
|
|
37
|
+
tussen_h_mm?: number;
|
|
38
|
+
tussen_v_mm?: number;
|
|
39
|
+
}
|
|
40
|
+
export declare const A4_VELINDELINGEN: Velindeling[];
|
|
41
|
+
/** Gangbare etiketmaten (ook voor de varianten van eigen stickers). */
|
|
42
|
+
export declare const GANGBARE_ETIKETMATEN: {
|
|
43
|
+
breedte_mm: number;
|
|
44
|
+
hoogte_mm: number;
|
|
45
|
+
}[];
|
|
46
|
+
export declare function velindelingVoor(b: number, h: number): Velindeling | null;
|
|
47
|
+
export type Uitwijkroute = "precies" | "gedraaid" | "groter_etiket" | "verkleind" | "a4_vel" | "a4_snijlijnen";
|
|
48
|
+
export interface EtiketKandidaat {
|
|
49
|
+
printerNaam: string;
|
|
50
|
+
printerId?: string;
|
|
51
|
+
/** Naam van het formaat zoals eerder ingesteld; alleen gebruikt als `formaten` onbekend is. */
|
|
52
|
+
paper: string;
|
|
53
|
+
breedte_mm: number;
|
|
54
|
+
hoogte_mm: number;
|
|
55
|
+
/** Resolutie van de printer; onbekend = 203 dpi (gangbare labelprinter). */
|
|
56
|
+
dpi?: number | null;
|
|
57
|
+
/**
|
|
58
|
+
* Papiermaten die PrintNode voor deze printer meldt (naam -> [b, h] in 0,1 mm).
|
|
59
|
+
* Gegeven (ook null) = de papiernaam wordt op afmeting (±1 mm) gekozen; geen
|
|
60
|
+
* passende maat = dit etiket telt als niet passend. Weggelaten = niet gecontroleerd.
|
|
61
|
+
*/
|
|
62
|
+
formaten?: PrinterFormaten | null;
|
|
63
|
+
}
|
|
64
|
+
export interface UitwijkUitkomst {
|
|
65
|
+
uitwijkroute: Uitwijkroute;
|
|
66
|
+
printerNaam: string;
|
|
67
|
+
printerId?: string;
|
|
68
|
+
/** 1 = ware grootte. Nooit groter dan 1. */
|
|
69
|
+
schaal: number;
|
|
70
|
+
/** In gewone taal, bijvoorbeeld "Geprint op 50×50 in plaats van 50×40, 1-op-1 gecentreerd". */
|
|
71
|
+
reden: string;
|
|
72
|
+
/** Papiernaam voor PrintNode (op afmeting gekozen) of "A4". */
|
|
73
|
+
paper: string;
|
|
74
|
+
/** Draaiing van de sticker binnen de PDF; naar PrintNode gaat altijd rotate 0. */
|
|
75
|
+
rotate: 0 | 90;
|
|
76
|
+
/** Altijd false: de printer of driver mag nooit zelf schalen (1.69.12). */
|
|
77
|
+
fitToPage: false;
|
|
78
|
+
/** Maat van de PDF-pagina = het geladen etiket of A4. */
|
|
79
|
+
pagina_breedte_mm: number;
|
|
80
|
+
pagina_hoogte_mm: number;
|
|
81
|
+
/** Maat van de sticker zelf (voor het voorbeeld in de wachtrij). */
|
|
82
|
+
sticker_breedte_mm: number;
|
|
83
|
+
sticker_hoogte_mm: number;
|
|
84
|
+
/** Alleen bij a4_vel: de gebruikte velindeling (eigen vel of standaard). */
|
|
85
|
+
velindeling?: Velindeling;
|
|
86
|
+
}
|
|
87
|
+
/** Tolerantie bij het herkennen van een papiermaat van de printer. */
|
|
88
|
+
export declare const PAPIER_TOLERANTIE_MM = 1;
|
|
89
|
+
/** Papiernaam op afmeting (±1 mm, ook gedraaid) uit de PrintNode-lijst; null als er geen is. */
|
|
90
|
+
export declare function papierOpMaat(formaten: PrinterFormaten | null | undefined, b: number, h: number): string | null;
|
|
91
|
+
/** Nominale smalste streep van een Code128/veilingbarcode op ware grootte. */
|
|
92
|
+
export declare const NOMINALE_STREEP_MM = 0.33;
|
|
93
|
+
/** Minimaal 2 printerpunten per smalste streep. */
|
|
94
|
+
export declare function barcodeLeesbaar(schaal: number, dpi: number | null | undefined, streep_mm?: number): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Kiest de uitwijkroute, vaste volgorde:
|
|
97
|
+
* 1. precies passend etiket; 2. hetzelfde etiket gedraaid;
|
|
98
|
+
* 3. groter etiket 1-op-1 gecentreerd, en pas als geen etiket groot genoeg
|
|
99
|
+
* is: verkleinen (verhouding gelijk, ondergrens, barcode leesbaar);
|
|
100
|
+
* 4. A4-stickervel; 5. A4 met snijlijnen.
|
|
101
|
+
* Geeft null alleen als er helemaal geen printer is.
|
|
102
|
+
*/
|
|
103
|
+
export declare function kiesUitwijkroute(input: {
|
|
104
|
+
sticker: {
|
|
105
|
+
breedte_mm: number;
|
|
106
|
+
hoogte_mm: number;
|
|
107
|
+
};
|
|
108
|
+
etiketten: EtiketKandidaat[];
|
|
109
|
+
a4Printer: {
|
|
110
|
+
naam: string;
|
|
111
|
+
id?: string;
|
|
112
|
+
} | null;
|
|
113
|
+
/** Er ligt een A4-stickervel klaar (instelling per printplek). */
|
|
114
|
+
a4VelIngesteld: boolean;
|
|
115
|
+
/** Velindeling van de printplek (a4VelVoor); weggelaten = standaardlijst. */
|
|
116
|
+
a4VelIndeling?: Velindeling | null;
|
|
117
|
+
/** null = instelling niet leesbaar: alleen de stap verkleinen vervalt. */
|
|
118
|
+
instelling: VerkleinInstelling | null;
|
|
119
|
+
heeftBarcode?: boolean;
|
|
120
|
+
}): UitwijkUitkomst | null;
|
|
121
|
+
/** Instelling per printplek (print_plekken.a4_stickervel). Zonder maat = elke vaste velindeling. */
|
|
122
|
+
export interface A4Stickervel {
|
|
123
|
+
aanwezig: boolean;
|
|
124
|
+
breedte_mm?: number;
|
|
125
|
+
hoogte_mm?: number;
|
|
126
|
+
marge_boven_mm?: number;
|
|
127
|
+
marge_links_mm?: number;
|
|
128
|
+
tussen_h_mm?: number;
|
|
129
|
+
tussen_v_mm?: number;
|
|
130
|
+
}
|
|
131
|
+
/** Voorstelwaarden voor een eigen vel op de kaart A4-stickervel (alleen invulhulp). */
|
|
132
|
+
export declare const EIGEN_VEL_VOORSTEL: {
|
|
133
|
+
marge_boven_mm: number;
|
|
134
|
+
marge_links_mm: number;
|
|
135
|
+
tussen_h_mm: number;
|
|
136
|
+
tussen_v_mm: number;
|
|
137
|
+
};
|
|
138
|
+
export declare function leesA4StickervelWaarde(v: unknown): A4Stickervel | null;
|
|
139
|
+
/**
|
|
140
|
+
* Velindeling voor deze sticker op deze printplek. Een eigen vel (met maat)
|
|
141
|
+
* gaat altijd vóór de standaardlijst; past de sticker daar niet op, dan geen
|
|
142
|
+
* vel (dus A4 met snijlijnen), nooit schalen. Zonder eigen maat: standaardlijst.
|
|
143
|
+
*/
|
|
144
|
+
export declare function a4VelVoor(vel: A4Stickervel | null, sticker: {
|
|
145
|
+
breedte_mm: number;
|
|
146
|
+
hoogte_mm: number;
|
|
147
|
+
}): Velindeling | null;
|
|
148
|
+
/** Ligt er op deze printplek een vel dat bij deze stickermaat hoort? */
|
|
149
|
+
export declare function a4VelPast(vel: A4Stickervel | null, sticker: {
|
|
150
|
+
breedte_mm: number;
|
|
151
|
+
hoogte_mm: number;
|
|
152
|
+
}): boolean;
|
|
153
|
+
/** Papiermaat-waarschuwing per etiket (voor Printplekken en install_check). */
|
|
154
|
+
export declare function papierWaarschuwingen(etiketten: EtiketKandidaat[]): string[];
|
|
155
|
+
/** Vastgelegde uitkomst met precies de veldnamen die Pickschermen 1.0.61 leest. */
|
|
156
|
+
export declare function uitwijkVoorPickschermen(u: UitwijkUitkomst): {
|
|
157
|
+
uitwijkroute: Uitwijkroute;
|
|
158
|
+
printerNaam: string;
|
|
159
|
+
schaal: number;
|
|
160
|
+
reden: string;
|
|
161
|
+
};
|
|
162
|
+
/** Overzicht per printplek: hoe elke gangbare maat geprint wordt (waarschuwing, geen blokkade). */
|
|
163
|
+
export declare function stickerMatenOverzicht(etiketten: EtiketKandidaat[], a4Printer: {
|
|
164
|
+
naam: string;
|
|
165
|
+
} | null, a4VelIngesteld: boolean, instelling: VerkleinInstelling, maten?: {
|
|
166
|
+
breedte_mm: number;
|
|
167
|
+
hoogte_mm: number;
|
|
168
|
+
}[]): {
|
|
169
|
+
maat: string;
|
|
170
|
+
uitkomst: UitwijkUitkomst | null;
|
|
171
|
+
}[];
|
|
172
|
+
/**
|
|
173
|
+
* Vroege waarschuwing: vergelijkt per dag en printplek de benodigde
|
|
174
|
+
* stickermaten (aangeleverd door Engine/Pickschermen) met de aanwezige
|
|
175
|
+
* etiketten. Alleen maten die niet precies of gedraaid passen komen terug.
|
|
176
|
+
*/
|
|
177
|
+
export declare function vroegeStickerWaarschuwing(nodig: {
|
|
178
|
+
dag: string;
|
|
179
|
+
print_plek_id: string;
|
|
180
|
+
breedte_mm: number;
|
|
181
|
+
hoogte_mm: number;
|
|
182
|
+
aantal?: number;
|
|
183
|
+
}[], perPlek: Map<string, {
|
|
184
|
+
etiketten: EtiketKandidaat[];
|
|
185
|
+
a4Printer: {
|
|
186
|
+
naam: string;
|
|
187
|
+
} | null;
|
|
188
|
+
a4VelIngesteld: boolean;
|
|
189
|
+
}>, instelling: VerkleinInstelling): {
|
|
190
|
+
dag: string;
|
|
191
|
+
print_plek_id: string;
|
|
192
|
+
maat: string;
|
|
193
|
+
aantal: number;
|
|
194
|
+
uitwijkroute: Uitwijkroute | "geen_printer";
|
|
195
|
+
reden: string;
|
|
196
|
+
}[];
|
|
197
|
+
//# sourceMappingURL=stickerUitwijk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stickerUitwijk.d.ts","sourceRoot":"","sources":["../../src/lib/stickerUitwijk.ts"],"names":[],"mappings":"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"}
|