@flowselections/layout-maker 1.38.4 → 1.45.9
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/AfleverbriefBuilderPage.d.ts +10 -0
- package/dist-lib/components/AfleverbriefBuilderPage.d.ts.map +1 -0
- package/dist-lib/components/AfleverbriefBuilderPage.js +101 -0
- package/dist-lib/components/BlokOntwerperPage.d.ts.map +1 -1
- package/dist-lib/components/BlokOntwerperPage.js +8 -3
- package/dist-lib/components/ComputersLijst.d.ts.map +1 -1
- package/dist-lib/components/ComputersLijst.js +1 -1
- package/dist-lib/components/FustKolomVolgorde.d.ts +11 -0
- package/dist-lib/components/FustKolomVolgorde.d.ts.map +1 -0
- package/dist-lib/components/FustKolomVolgorde.js +52 -0
- package/dist-lib/components/LayoutsPage.d.ts.map +1 -1
- package/dist-lib/components/LayoutsPage.js +10 -9
- package/dist-lib/components/PakbonBuilderPage.d.ts.map +1 -1
- package/dist-lib/components/PakbonBuilderPage.js +32 -14
- package/dist-lib/components/PakbonPreview.d.ts.map +1 -1
- package/dist-lib/components/PakbonPreview.js +21 -14
- package/dist-lib/components/PakbonSectiesPanel.d.ts +4 -2
- package/dist-lib/components/PakbonSectiesPanel.d.ts.map +1 -1
- package/dist-lib/components/PakbonSectiesPanel.js +5 -3
- package/dist-lib/components/PdfMapToestemmingBanner.d.ts +2 -1
- package/dist-lib/components/PdfMapToestemmingBanner.d.ts.map +1 -1
- package/dist-lib/components/PdfMapToestemmingBanner.js +124 -18
- package/dist-lib/components/PdfVoorbeeld.d.ts +20 -0
- package/dist-lib/components/PdfVoorbeeld.d.ts.map +1 -0
- package/dist-lib/components/PdfVoorbeeld.js +95 -0
- package/dist-lib/components/PrintProgrammaUitleg.d.ts.map +1 -1
- package/dist-lib/components/PrintProgrammaUitleg.js +1 -1
- package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
- package/dist-lib/components/PrintQueuePage.js +81 -43
- package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
- package/dist-lib/components/PrintplekDetailPage.js +2 -2
- package/dist-lib/components/PrintplekWizard.d.ts.map +1 -1
- package/dist-lib/components/PrintplekWizard.js +6 -2
- package/dist-lib/components/ProductiebonBuilderPage.d.ts.map +1 -1
- package/dist-lib/components/ProductiebonBuilderPage.js +13 -7
- package/dist-lib/index.d.ts +13 -5
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +10 -5
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +2280 -198
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +2280 -198
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.js +1 -1
- package/dist-lib/integrations/supabase/moduleClient.d.ts +2280 -198
- package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +2306 -182
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.js +1 -0
- package/dist-lib/lib/aiLayout.functions.d.ts +2280 -198
- package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
- package/dist-lib/lib/documentVoorbeeld.functions.d.ts +23 -0
- package/dist-lib/lib/documentVoorbeeld.functions.d.ts.map +1 -0
- package/dist-lib/lib/documentVoorbeeld.functions.js +37 -0
- package/dist-lib/lib/fontMetrics.d.ts +15 -0
- package/dist-lib/lib/fontMetrics.d.ts.map +1 -0
- package/dist-lib/lib/fontMetrics.js +118 -0
- package/dist-lib/lib/htmlNaarPdf.server.d.ts +2 -2
- package/dist-lib/lib/htmlNaarPdf.server.d.ts.map +1 -1
- package/dist-lib/lib/htmlNaarPdf.server.js +2 -1
- package/dist-lib/lib/htmlPdf.server.d.ts +11 -0
- package/dist-lib/lib/htmlPdf.server.d.ts.map +1 -1
- package/dist-lib/lib/htmlPdf.server.js +118 -15
- package/dist-lib/lib/orderData.server.d.ts.map +1 -1
- package/dist-lib/lib/orderData.server.js +43 -16
- package/dist-lib/lib/pakbonBarcodeVerzoek.d.ts +39 -0
- package/dist-lib/lib/pakbonBarcodeVerzoek.d.ts.map +1 -0
- package/dist-lib/lib/pakbonBarcodeVerzoek.js +80 -0
- package/dist-lib/lib/pakbonBuilder.d.ts +62 -3
- package/dist-lib/lib/pakbonBuilder.d.ts.map +1 -1
- package/dist-lib/lib/pakbonBuilder.js +386 -50
- package/dist-lib/lib/pakbonContent.d.ts +41 -0
- package/dist-lib/lib/pakbonContent.d.ts.map +1 -0
- package/dist-lib/lib/pakbonContent.js +668 -0
- package/dist-lib/lib/pakbonDocument.d.ts +199 -0
- package/dist-lib/lib/pakbonDocument.d.ts.map +1 -0
- package/dist-lib/lib/pakbonDocument.js +735 -0
- package/dist-lib/lib/pakbonHtml.d.ts +7 -0
- package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
- package/dist-lib/lib/pakbonHtml.js +89 -73
- package/dist-lib/lib/pakbonPresentation.d.ts +8 -0
- package/dist-lib/lib/pakbonPresentation.d.ts.map +1 -0
- package/dist-lib/lib/pakbonPresentation.js +31 -0
- package/dist-lib/lib/pakbonScan.d.ts.map +1 -1
- package/dist-lib/lib/pakbonScan.js +20 -38
- package/dist-lib/lib/pdfJobSaver.d.ts +10 -6
- package/dist-lib/lib/pdfJobSaver.d.ts.map +1 -1
- package/dist-lib/lib/pdfJobSaver.js +302 -99
- package/dist-lib/lib/pdfMap.d.ts +37 -2
- package/dist-lib/lib/pdfMap.d.ts.map +1 -1
- package/dist-lib/lib/pdfMap.js +120 -7
- package/dist-lib/lib/pdfOpslagStatus.d.ts +23 -0
- package/dist-lib/lib/pdfOpslagStatus.d.ts.map +1 -0
- package/dist-lib/lib/pdfOpslagStatus.js +74 -0
- package/dist-lib/lib/printApi.d.ts +31 -0
- package/dist-lib/lib/printApi.d.ts.map +1 -1
- package/dist-lib/lib/printApi.js +62 -1
- package/dist-lib/lib/printQueue.server.d.ts +6 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +450 -94
- package/dist-lib/lib/printService.functions.d.ts +8857 -529
- package/dist-lib/lib/printService.functions.d.ts.map +1 -1
- package/dist-lib/lib/profielHtml.d.ts.map +1 -1
- package/dist-lib/lib/profielHtml.js +8 -1
- package/dist-lib/lib/useDocumentData.d.ts +8 -0
- package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
- package/dist-lib/lib/useDocumentData.js +1 -1
- package/dist-lib/lib/voorbeeldPrint.d.ts +3 -0
- package/dist-lib/lib/voorbeeldPrint.d.ts.map +1 -1
- package/dist-lib/lib/voorbeeldPrint.js +65 -17
- package/package.json +9 -2
package/dist-lib/lib/pdfMap.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
// ============================================================================
|
|
2
2
|
// src/lib/pdfMap.ts — keuze van de map op de eigen computer waarin PDF's van
|
|
3
3
|
// de virtuele "Opslaan als PDF"-printer worden bewaard. De maphandle blijft
|
|
4
|
-
// lokaal in IndexedDB staan
|
|
4
|
+
// lokaal in IndexedDB staan. De browser bewaart daarnaast de printplek-id,
|
|
5
|
+
// zodat alleen de bedoelde werkplek opdrachten uit de gedeelde wachtrij claimt.
|
|
5
6
|
// ============================================================================
|
|
6
7
|
const DB_NAAM = "layout-maker-pdfmap";
|
|
7
8
|
const STORE = "handles";
|
|
8
9
|
const BEWAARD_SLEUTEL = "layout-maker-pdf-bewaard";
|
|
9
10
|
const GLOBALE_HANDLE_SLEUTEL = "__gekozen_pdf_map__";
|
|
11
|
+
const PDF_PRINTPLEK_SLEUTEL = "__gekozen_pdf_printplek__";
|
|
12
|
+
const PDF_KOPPELING_SLEUTEL = "__pdf_map_koppeling_v1__";
|
|
10
13
|
const PDF_MAP_GEWIJZIGD_EVENT = "layout-maker:pdf-map-gewijzigd";
|
|
11
14
|
export function mapKiezenMogelijk() {
|
|
12
15
|
return typeof window !== "undefined" && "showDirectoryPicker" in window;
|
|
@@ -22,7 +25,27 @@ function openDb() {
|
|
|
22
25
|
req.onerror = () => reject(req.error);
|
|
23
26
|
});
|
|
24
27
|
}
|
|
25
|
-
async function
|
|
28
|
+
async function vraagPersistenteOpslag() {
|
|
29
|
+
try {
|
|
30
|
+
if (!navigator.storage?.persist)
|
|
31
|
+
return null;
|
|
32
|
+
if (await navigator.storage.persisted?.())
|
|
33
|
+
return true;
|
|
34
|
+
return await navigator.storage.persist();
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async function bewaarHandle(printerId, handle, printPlekId) {
|
|
41
|
+
const persistent = await vraagPersistenteOpslag();
|
|
42
|
+
const koppeling = {
|
|
43
|
+
versie: 1,
|
|
44
|
+
handle,
|
|
45
|
+
printPlekId: printPlekId?.trim() || null,
|
|
46
|
+
persistent,
|
|
47
|
+
bijgewerktOp: new Date().toISOString(),
|
|
48
|
+
};
|
|
26
49
|
const db = await openDb();
|
|
27
50
|
await new Promise((resolve, reject) => {
|
|
28
51
|
const tx = db.transaction(STORE, "readwrite");
|
|
@@ -32,10 +55,93 @@ async function bewaarHandle(printerId, handle) {
|
|
|
32
55
|
// dubbele virtuele PDF-printer de reeds goedgekeurde map onzichtbaar maakt.
|
|
33
56
|
store.put(handle, GLOBALE_HANDLE_SLEUTEL);
|
|
34
57
|
store.put(handle, printerId);
|
|
58
|
+
store.put(koppeling, PDF_KOPPELING_SLEUTEL);
|
|
59
|
+
if (koppeling.printPlekId)
|
|
60
|
+
store.put(koppeling.printPlekId, PDF_PRINTPLEK_SLEUTEL);
|
|
35
61
|
tx.oncomplete = () => resolve();
|
|
36
62
|
tx.onerror = () => reject(tx.error);
|
|
37
63
|
});
|
|
38
64
|
window.dispatchEvent(new CustomEvent(PDF_MAP_GEWIJZIGD_EVENT, { detail: { printerId } }));
|
|
65
|
+
return koppeling;
|
|
66
|
+
}
|
|
67
|
+
/** Koppelt deze browsermap aan de fysieke printplek die hij mag afhandelen. */
|
|
68
|
+
export async function koppelPdfMapAanPrintplek(printPlekId) {
|
|
69
|
+
const id = printPlekId.trim();
|
|
70
|
+
if (!id)
|
|
71
|
+
throw new Error("Kies eerst een printplek voor deze PDF-map.");
|
|
72
|
+
const bestaande = await pdfMapKoppeling();
|
|
73
|
+
const db = await openDb();
|
|
74
|
+
await new Promise((resolve, reject) => {
|
|
75
|
+
const tx = db.transaction(STORE, "readwrite");
|
|
76
|
+
const store = tx.objectStore(STORE);
|
|
77
|
+
store.put(id, PDF_PRINTPLEK_SLEUTEL);
|
|
78
|
+
if (bestaande?.handle) {
|
|
79
|
+
store.put({ ...bestaande, printPlekId: id, bijgewerktOp: new Date().toISOString() }, PDF_KOPPELING_SLEUTEL);
|
|
80
|
+
}
|
|
81
|
+
tx.oncomplete = () => resolve();
|
|
82
|
+
tx.onerror = () => reject(tx.error);
|
|
83
|
+
});
|
|
84
|
+
window.dispatchEvent(new CustomEvent(PDF_MAP_GEWIJZIGD_EVENT, { detail: { printPlekId: id } }));
|
|
85
|
+
}
|
|
86
|
+
/** De printplek waarvoor deze browser lokale PDF's mag schrijven. */
|
|
87
|
+
export async function lokalePdfPrintplek() {
|
|
88
|
+
try {
|
|
89
|
+
const koppeling = await pdfMapKoppeling();
|
|
90
|
+
if (koppeling?.printPlekId)
|
|
91
|
+
return koppeling.printPlekId;
|
|
92
|
+
const db = await openDb();
|
|
93
|
+
return await new Promise((resolve, reject) => {
|
|
94
|
+
const tx = db.transaction(STORE, "readonly");
|
|
95
|
+
const req = tx.objectStore(STORE).get(PDF_PRINTPLEK_SLEUTEL);
|
|
96
|
+
req.onsuccess = () => {
|
|
97
|
+
const waarde = typeof req.result === "string" ? req.result.trim() : "";
|
|
98
|
+
resolve(waarde || null);
|
|
99
|
+
};
|
|
100
|
+
req.onerror = () => reject(req.error);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Leest de samenhangende lokale map/printplek-koppeling. Oude losse sleutels
|
|
109
|
+
* worden eenmalig naar dit record gemigreerd zonder een geldige handle te wissen.
|
|
110
|
+
*/
|
|
111
|
+
export async function pdfMapKoppeling() {
|
|
112
|
+
try {
|
|
113
|
+
const db = await openDb();
|
|
114
|
+
const lees = (sleutel) => new Promise((resolve, reject) => {
|
|
115
|
+
const tx = db.transaction(STORE, "readonly");
|
|
116
|
+
const req = tx.objectStore(STORE).get(sleutel);
|
|
117
|
+
req.onsuccess = () => resolve(req.result ?? null);
|
|
118
|
+
req.onerror = () => reject(req.error);
|
|
119
|
+
});
|
|
120
|
+
const bestaand = await lees(PDF_KOPPELING_SLEUTEL);
|
|
121
|
+
if (bestaand?.versie === 1 && bestaand.handle)
|
|
122
|
+
return bestaand;
|
|
123
|
+
const handle = await lees(GLOBALE_HANDLE_SLEUTEL);
|
|
124
|
+
if (!handle)
|
|
125
|
+
return null;
|
|
126
|
+
const printPlekId = await lees(PDF_PRINTPLEK_SLEUTEL);
|
|
127
|
+
const gemigreerd = {
|
|
128
|
+
versie: 1,
|
|
129
|
+
handle,
|
|
130
|
+
printPlekId: typeof printPlekId === "string" && printPlekId.trim() ? printPlekId.trim() : null,
|
|
131
|
+
persistent: await vraagPersistenteOpslag(),
|
|
132
|
+
bijgewerktOp: new Date().toISOString(),
|
|
133
|
+
};
|
|
134
|
+
await new Promise((resolve, reject) => {
|
|
135
|
+
const tx = db.transaction(STORE, "readwrite");
|
|
136
|
+
tx.objectStore(STORE).put(gemigreerd, PDF_KOPPELING_SLEUTEL);
|
|
137
|
+
tx.oncomplete = () => resolve();
|
|
138
|
+
tx.onerror = () => reject(tx.error);
|
|
139
|
+
});
|
|
140
|
+
return gemigreerd;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
39
145
|
}
|
|
40
146
|
export function luisterNaarPdfMapWijziging(handler) {
|
|
41
147
|
if (typeof window === "undefined")
|
|
@@ -52,6 +158,9 @@ async function leesHandle(printerId) {
|
|
|
52
158
|
req.onsuccess = () => resolve(req.result ?? null);
|
|
53
159
|
req.onerror = () => reject(req.error);
|
|
54
160
|
});
|
|
161
|
+
const koppeling = await pdfMapKoppeling();
|
|
162
|
+
if (koppeling?.handle)
|
|
163
|
+
return koppeling.handle;
|
|
55
164
|
const globaal = await lees(GLOBALE_HANDLE_SLEUTEL);
|
|
56
165
|
if (globaal)
|
|
57
166
|
return globaal;
|
|
@@ -101,15 +210,19 @@ export function draaitInIframe() {
|
|
|
101
210
|
}
|
|
102
211
|
}
|
|
103
212
|
/** Opent de huidige pagina in een eigen tabblad (buiten het preview-iframe). */
|
|
104
|
-
export function openInEigenTabblad() {
|
|
105
|
-
|
|
213
|
+
export function openInEigenTabblad(printPlekId) {
|
|
214
|
+
const url = new URL(window.location.href);
|
|
215
|
+
url.searchParams.set("pdf-map-instellen", "1");
|
|
216
|
+
if (printPlekId?.trim())
|
|
217
|
+
url.searchParams.set("pdf-printplek", printPlekId.trim());
|
|
218
|
+
window.open(url.toString(), "_blank", "noopener");
|
|
106
219
|
}
|
|
107
220
|
/**
|
|
108
221
|
* Opent de mappenverkenner van het besturingssysteem zodat de gebruiker een
|
|
109
222
|
* map kan selecteren. Start in Downloads zodat het pad snel te vinden is.
|
|
110
223
|
* Geeft terug wat er is gebeurd zodat de aanroeper gericht kan reageren.
|
|
111
224
|
*/
|
|
112
|
-
export async function kiesPdfMap(printerId) {
|
|
225
|
+
export async function kiesPdfMap(printerId, printPlekId) {
|
|
113
226
|
if (!mapKiezenMogelijk())
|
|
114
227
|
return { status: "niet-ondersteund" };
|
|
115
228
|
try {
|
|
@@ -117,7 +230,7 @@ export async function kiesPdfMap(printerId) {
|
|
|
117
230
|
mode: "readwrite",
|
|
118
231
|
startIn: "downloads",
|
|
119
232
|
}));
|
|
120
|
-
await bewaarHandle(printerId, handle);
|
|
233
|
+
const koppeling = await bewaarHandle(printerId, handle, printPlekId);
|
|
121
234
|
// Een nieuwe mapkeuze is ook een expliciete opdracht om reeds voltooide
|
|
122
235
|
// PDF-jobs opnieuw naar deze map te schrijven.
|
|
123
236
|
try {
|
|
@@ -126,7 +239,7 @@ export async function kiesPdfMap(printerId) {
|
|
|
126
239
|
catch {
|
|
127
240
|
// Lokale opslag kan door browserbeleid uitgeschakeld zijn.
|
|
128
241
|
}
|
|
129
|
-
return { status: "gekozen", naam: handle.name };
|
|
242
|
+
return { status: "gekozen", naam: handle.name, persistent: koppeling.persistent };
|
|
130
243
|
}
|
|
131
244
|
catch (fout) {
|
|
132
245
|
// De gebruiker drukt op Annuleren in de verkenner → AbortError, geen fout.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Volledige set opslagstatussen die deze module schrijft. */
|
|
2
|
+
export declare const PDF_OPSLAG_STATUSSEN: readonly ["wachtend", "bezig", "gereed", "opgeslagen", "map_ontbreekt", "geen_rechten", "schrijffout", "timeout"];
|
|
3
|
+
export type PdfOpslagStatus = (typeof PDF_OPSLAG_STATUSSEN)[number];
|
|
4
|
+
/** Statussen waarbij opslaan (nog) niet is gelukt en herstel nodig is. */
|
|
5
|
+
export declare const PDF_OPSLAG_FOUTSTATUSSEN: readonly string[];
|
|
6
|
+
/** Statussen waarvoor de lokale service nog werk moet doen. */
|
|
7
|
+
export declare const PDF_OPSLAG_OPENSTAAND: readonly string[];
|
|
8
|
+
/** Korte, tonbare omschrijving per status (voor wachtrij en pickscherm). */
|
|
9
|
+
export declare const PDF_OPSLAG_LABEL: Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* Foutzinnen in gewone taal. Deze tekst wordt letterlijk in het pickscherm
|
|
12
|
+
* getoond, dus: één zin, met wie wat moet doen. Geen technische details.
|
|
13
|
+
*/
|
|
14
|
+
export declare const PDF_OPSLAG_MELDING: Record<string, string>;
|
|
15
|
+
/**
|
|
16
|
+
* Leesbare status voor de wachtrij. Een PDF die gereed staat maar aan geen
|
|
17
|
+
* enkele plek hangt, wacht niet op een werkplek: er is er simpelweg geen
|
|
18
|
+
* gekoppeld. Dat verschil maken we hier zichtbaar.
|
|
19
|
+
*/
|
|
20
|
+
export declare function pdfOpslagLabel(status?: string | null, heeftPlek?: boolean): string | null;
|
|
21
|
+
/** Is deze opdracht blijven steken op het opslaan? */
|
|
22
|
+
export declare function isOpslagFout(status?: string | null): boolean;
|
|
23
|
+
//# sourceMappingURL=pdfOpslagStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdfOpslagStatus.d.ts","sourceRoot":"","sources":["../../src/lib/pdfOpslagStatus.ts"],"names":[],"mappings":"AAOA,8DAA8D;AAC9D,eAAO,MAAM,oBAAoB,mHASvB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAQrD,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAKlD,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASrD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMzF;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE5D"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/pdfOpslagStatus.ts — vaste, gedocumenteerde set statussen voor het
|
|
3
|
+
// lokaal opslaan van een PDF-printopdracht. De pickmodule leest deze waarden
|
|
4
|
+
// rechtstreeks uit `print_jobs.lokale_pdf_status`, dus waarden mogen alleen
|
|
5
|
+
// worden TOEGEVOEGD; nooit hernoemd of hergebruikt.
|
|
6
|
+
// ============================================================================
|
|
7
|
+
/** Volledige set opslagstatussen die deze module schrijft. */
|
|
8
|
+
export const PDF_OPSLAG_STATUSSEN = [
|
|
9
|
+
"wachtend", // opdracht aangemaakt, PDF nog niet opgemaakt
|
|
10
|
+
"bezig", // PDF wordt opgemaakt of weggeschreven
|
|
11
|
+
"gereed", // PDF staat klaar, wacht op de werkplek die de map beheert
|
|
12
|
+
"opgeslagen", // bestand staat in de gekozen map op de werkplek
|
|
13
|
+
"map_ontbreekt", // op deze werkplek is (nog) geen PDF-map gekozen
|
|
14
|
+
"geen_rechten", // de map bestaat, maar de werkplek heeft geen schrijfrecht meer
|
|
15
|
+
"schrijffout", // schrijven naar de map is mislukt
|
|
16
|
+
"timeout", // de PDF was niet op tijd gereed
|
|
17
|
+
];
|
|
18
|
+
/** Statussen waarbij opslaan (nog) niet is gelukt en herstel nodig is. */
|
|
19
|
+
export const PDF_OPSLAG_FOUTSTATUSSEN = [
|
|
20
|
+
"map_ontbreekt",
|
|
21
|
+
"geen_rechten",
|
|
22
|
+
"schrijffout",
|
|
23
|
+
"timeout",
|
|
24
|
+
// Historische waarden; blijven leesbaar zodat oude opdrachten herstelbaar zijn.
|
|
25
|
+
"toestemming_nodig",
|
|
26
|
+
"fout",
|
|
27
|
+
];
|
|
28
|
+
/** Statussen waarvoor de lokale service nog werk moet doen. */
|
|
29
|
+
export const PDF_OPSLAG_OPENSTAAND = [
|
|
30
|
+
"wachtend",
|
|
31
|
+
"bezig",
|
|
32
|
+
"gereed",
|
|
33
|
+
...PDF_OPSLAG_FOUTSTATUSSEN,
|
|
34
|
+
];
|
|
35
|
+
/** Korte, tonbare omschrijving per status (voor wachtrij en pickscherm). */
|
|
36
|
+
export const PDF_OPSLAG_LABEL = {
|
|
37
|
+
wachtend: "PDF nog niet opgemaakt",
|
|
38
|
+
bezig: "PDF wordt opgeslagen",
|
|
39
|
+
gereed: "PDF gereed — wacht op werkplek",
|
|
40
|
+
opgeslagen: "opgeslagen in de PDF-map",
|
|
41
|
+
map_ontbreekt: "PDF-map ontbreekt",
|
|
42
|
+
geen_rechten: "geen schrijfrecht op de PDF-map",
|
|
43
|
+
schrijffout: "opslaan in de map mislukt",
|
|
44
|
+
timeout: "wachten op de PDF verlopen",
|
|
45
|
+
toestemming_nodig: "geen schrijfrecht op de PDF-map",
|
|
46
|
+
fout: "opslaan mislukt",
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Foutzinnen in gewone taal. Deze tekst wordt letterlijk in het pickscherm
|
|
50
|
+
* getoond, dus: één zin, met wie wat moet doen. Geen technische details.
|
|
51
|
+
*/
|
|
52
|
+
export const PDF_OPSLAG_MELDING = {
|
|
53
|
+
map_ontbreekt: "Kies op deze werkplek eerst een PDF-map in Layout maker; daarna wordt dit document opnieuw opgeslagen.",
|
|
54
|
+
geen_rechten: "Geef op deze werkplek opnieuw toestemming voor de PDF-map; daarna wordt dit document opnieuw opgeslagen.",
|
|
55
|
+
schrijffout: "Het document kon niet in de PDF-map worden opgeslagen; controleer de map op deze werkplek en probeer opslaan opnieuw.",
|
|
56
|
+
timeout: "Het document was niet op tijd opgemaakt; print of sla dit document opnieuw op.",
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Leesbare status voor de wachtrij. Een PDF die gereed staat maar aan geen
|
|
60
|
+
* enkele plek hangt, wacht niet op een werkplek: er is er simpelweg geen
|
|
61
|
+
* gekoppeld. Dat verschil maken we hier zichtbaar.
|
|
62
|
+
*/
|
|
63
|
+
export function pdfOpslagLabel(status, heeftPlek) {
|
|
64
|
+
if (!status)
|
|
65
|
+
return null;
|
|
66
|
+
if (status === "gereed") {
|
|
67
|
+
return heeftPlek ? "PDF gereed — wordt opgehaald" : "geen computer gekoppeld";
|
|
68
|
+
}
|
|
69
|
+
return PDF_OPSLAG_LABEL[status] ?? null;
|
|
70
|
+
}
|
|
71
|
+
/** Is deze opdracht blijven steken op het opslaan? */
|
|
72
|
+
export function isOpslagFout(status) {
|
|
73
|
+
return !!status && PDF_OPSLAG_FOUTSTATUSSEN.includes(status);
|
|
74
|
+
}
|
|
@@ -63,6 +63,8 @@ export declare function printerVoorLayout(layout: {
|
|
|
63
63
|
documenttype?: string | null;
|
|
64
64
|
papierformaat?: string | null;
|
|
65
65
|
}, werkplek?: string, printplekId?: string): Promise<string | null>;
|
|
66
|
+
/** Afdrukmethode van één printer, gebruikt voor PDF-specifieke voorcontroles. */
|
|
67
|
+
export declare function printerAfdrukmethode(printerId: string): Promise<string | null>;
|
|
66
68
|
export interface PrintPdfInput {
|
|
67
69
|
/** Documentsoort, alleen voor overzicht en printerkeuze. */
|
|
68
70
|
documenttype: DocumentType | string;
|
|
@@ -129,6 +131,9 @@ export interface JobStatus {
|
|
|
129
131
|
status: string;
|
|
130
132
|
documentnaam: string;
|
|
131
133
|
foutmelding: string | null;
|
|
134
|
+
lokale_pdf_status: string | null;
|
|
135
|
+
lokale_pdf_fout: string | null;
|
|
136
|
+
lokaal_opgeslagen_op: string | null;
|
|
132
137
|
}
|
|
133
138
|
/**
|
|
134
139
|
* Volgt één printopdracht live. Geeft een functie terug om te stoppen.
|
|
@@ -154,4 +159,30 @@ export declare function beschikbarePrinters(): Promise<{
|
|
|
154
159
|
online: boolean;
|
|
155
160
|
actief: boolean;
|
|
156
161
|
}[]>;
|
|
162
|
+
export interface VerzendbriefVoorKarInput {
|
|
163
|
+
/** Naam van de computer/werkplek van de scanner; bepaalt de printer. */
|
|
164
|
+
werkplek?: string;
|
|
165
|
+
/** Optioneel: de printplek van de scanner. Wint van `werkplek`. */
|
|
166
|
+
printplekId?: string;
|
|
167
|
+
/** Optioneel papierformaat voor werkplekken met meerdere printers. */
|
|
168
|
+
papierformaat?: string;
|
|
169
|
+
/** Kargegevens zoals bij de pakbon: cart_id, cart_label, barcode, ... */
|
|
170
|
+
cart: Record<string, unknown>;
|
|
171
|
+
/** Order-/klantgegevens zoals bij de pakbon. */
|
|
172
|
+
order?: Record<string, unknown>;
|
|
173
|
+
/** Optioneel: naam in de wachtrij. Standaard "Verzendbrief <kar>". */
|
|
174
|
+
documentnaam?: string;
|
|
175
|
+
herkomst?: string;
|
|
176
|
+
kopieen?: number;
|
|
177
|
+
/** Bewuste herprint: slaat de dubbelbeveiliging over. */
|
|
178
|
+
isHerprint?: boolean;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Print de verzendbrief van één kar. Bedoeld voor de scanmodule op het moment
|
|
182
|
+
* dat een medewerker op "kar compleet" klikt. De brief gaat naar de printer van
|
|
183
|
+
* dezelfde werkplek als de pakbon; is die er niet, dan naar de standaardprinter
|
|
184
|
+
* van dit documenttype. Zonder printer volgt een `GeenPrinterFout` — er wordt
|
|
185
|
+
* nooit stiekem in de browser geprint.
|
|
186
|
+
*/
|
|
187
|
+
export declare function printVerzendbriefVoorKar(input: VerzendbriefVoorKarInput): Promise<PrintDocumentResult>;
|
|
157
188
|
//# sourceMappingURL=printApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,YAAY,EAAE,YAAY,GAAG,MAAM,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;
|
|
1
|
+
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"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"}
|
package/dist-lib/lib/printApi.js
CHANGED
|
@@ -85,6 +85,20 @@ function orderKenmerk(payload) {
|
|
|
85
85
|
if (typeof w === "number" && Number.isFinite(w))
|
|
86
86
|
return String(w);
|
|
87
87
|
}
|
|
88
|
+
// Sommige aanleverende modules stoppen de order genest in `payload.order`
|
|
89
|
+
// (of `payload.data.order`) met velden als id / orderNumber / nummer.
|
|
90
|
+
for (const houder of [p.order, p.data?.order]) {
|
|
91
|
+
if (!houder || typeof houder !== "object")
|
|
92
|
+
continue;
|
|
93
|
+
const o = houder;
|
|
94
|
+
for (const sleutel of ["id", "order_id", "orderNumber", "ordernummer", "nummer"]) {
|
|
95
|
+
const w = o[sleutel];
|
|
96
|
+
if (typeof w === "string" && w.trim())
|
|
97
|
+
return w.trim();
|
|
98
|
+
if (typeof w === "number" && Number.isFinite(w))
|
|
99
|
+
return String(w);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
88
102
|
return null;
|
|
89
103
|
}
|
|
90
104
|
function waarschuwZonderKenmerk(documentnaam, payload) {
|
|
@@ -193,6 +207,20 @@ export async function printerVoorLayout(layout, werkplek, printplekId) {
|
|
|
193
207
|
const documenttype = String(layout.documenttype ?? "");
|
|
194
208
|
return bepaalPrinter(documenttype, layout.id ?? null, layout.papierformaat ?? null, werkplek ?? null, printplekId ?? null);
|
|
195
209
|
}
|
|
210
|
+
/** Afdrukmethode van één printer, gebruikt voor PDF-specifieke voorcontroles. */
|
|
211
|
+
export async function printerAfdrukmethode(printerId) {
|
|
212
|
+
const id = printerId.trim();
|
|
213
|
+
if (!id)
|
|
214
|
+
return null;
|
|
215
|
+
const { data, error } = await supabase
|
|
216
|
+
.from("printers")
|
|
217
|
+
.select("afdrukmethode")
|
|
218
|
+
.eq("id", id)
|
|
219
|
+
.maybeSingle();
|
|
220
|
+
if (error)
|
|
221
|
+
throw error;
|
|
222
|
+
return data?.afdrukmethode ?? null;
|
|
223
|
+
}
|
|
196
224
|
/**
|
|
197
225
|
* Print een kant-en-klare PDF (klantsticker, Floriday-document, factuur van een
|
|
198
226
|
* externe dienst). De PDF gaat ongewijzigd naar de printer; er wordt geen
|
|
@@ -314,7 +342,7 @@ export function volgJobStatus(jobId, cb) {
|
|
|
314
342
|
const lees = async () => {
|
|
315
343
|
const { data } = await supabase
|
|
316
344
|
.from("print_jobs")
|
|
317
|
-
.select("id, status, documentnaam, foutmelding")
|
|
345
|
+
.select("id, status, documentnaam, foutmelding, lokale_pdf_status, lokale_pdf_fout, lokaal_opgeslagen_op")
|
|
318
346
|
.eq("id", jobId)
|
|
319
347
|
.maybeSingle();
|
|
320
348
|
if (data && !gestopt)
|
|
@@ -363,3 +391,36 @@ export async function beschikbarePrinters() {
|
|
|
363
391
|
.order("naam");
|
|
364
392
|
return arr(data);
|
|
365
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Print de verzendbrief van één kar. Bedoeld voor de scanmodule op het moment
|
|
396
|
+
* dat een medewerker op "kar compleet" klikt. De brief gaat naar de printer van
|
|
397
|
+
* dezelfde werkplek als de pakbon; is die er niet, dan naar de standaardprinter
|
|
398
|
+
* van dit documenttype. Zonder printer volgt een `GeenPrinterFout` — er wordt
|
|
399
|
+
* nooit stiekem in de browser geprint.
|
|
400
|
+
*/
|
|
401
|
+
export async function printVerzendbriefVoorKar(input) {
|
|
402
|
+
const documenttype = "afleverbrief";
|
|
403
|
+
const cart = (input.cart ?? {});
|
|
404
|
+
const karnaam = String(cart["cart_label"] ?? cart["cartLabel"] ?? cart["cart_id"] ?? cart["cartId"] ?? "").trim();
|
|
405
|
+
const printerId = (input.printplekId ? await printerVoorPrintplek(input.printplekId, documenttype) : null) ??
|
|
406
|
+
(input.werkplek ? await printerVoorWerkplek(input.werkplek, input.papierformaat) : null) ??
|
|
407
|
+
(await printerVoorDocumenttype(documenttype, input.papierformaat, input.werkplek, input.printplekId));
|
|
408
|
+
if (!printerId) {
|
|
409
|
+
throw new GeenPrinterFout(await geenPrinterMelding(documenttype, input.printplekId ?? null, input.werkplek ?? null));
|
|
410
|
+
}
|
|
411
|
+
return printDocument({
|
|
412
|
+
documenttype,
|
|
413
|
+
printerId,
|
|
414
|
+
...(input.werkplek ? { werkplek: input.werkplek } : {}),
|
|
415
|
+
...(input.printplekId ? { printplekId: input.printplekId } : {}),
|
|
416
|
+
...(input.herkomst ? { herkomst: input.herkomst } : {}),
|
|
417
|
+
documentnaam: input.documentnaam ?? (karnaam ? `Verzendbrief ${karnaam}` : "Verzendbrief"),
|
|
418
|
+
kopieen: input.kopieen ?? 1,
|
|
419
|
+
isHerprint: input.isHerprint ?? false,
|
|
420
|
+
payload: {
|
|
421
|
+
...(input.order ?? {}),
|
|
422
|
+
cart,
|
|
423
|
+
aanleiding: "kar_compleet",
|
|
424
|
+
},
|
|
425
|
+
});
|
|
426
|
+
}
|
|
@@ -16,6 +16,10 @@ export declare class GeenDocumentFout extends Error {
|
|
|
16
16
|
export declare class WachtOpLayoutFout extends Error {
|
|
17
17
|
name: string;
|
|
18
18
|
}
|
|
19
|
+
/** Blijvende contractfout: opnieuw proberen met dezelfde invoer kan niet slagen. */
|
|
20
|
+
export declare class EngineContractFout extends GeenDocumentFout {
|
|
21
|
+
name: string;
|
|
22
|
+
}
|
|
19
23
|
/**
|
|
20
24
|
* `ontwerpWint` = deze layout is een echt ontwerp van deze module (actief, geen
|
|
21
25
|
* Floriday-systeemlayout) en gaat daarom vóór meegestuurde HTML. Er is bewust
|
|
@@ -58,6 +62,8 @@ export interface WachtrijResultaat {
|
|
|
58
62
|
mislukt: number;
|
|
59
63
|
wachtend: number;
|
|
60
64
|
bijgewerkt: number;
|
|
65
|
+
/** Waarom deze ronde niets deed (bijvoorbeeld: een andere ronde draait al). */
|
|
66
|
+
overgeslagen?: string;
|
|
61
67
|
}
|
|
62
68
|
/** Eén ronde: vastgelopen opdrachten opruimen, afdrukken en statussen bijwerken. */
|
|
63
69
|
export declare function verwerkWachtrij(db: PrintDb, max?: number): Promise<WachtrijResultaat>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA6B5D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAUD,2EAA2E;AAC3E,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAED,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAuB;CACrC;AAED,oFAAoF;AACpF,qBAAa,kBAAmB,SAAQ,gBAAgB;IAC7C,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvE,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAE1F,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAcnD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAI7D;AASD,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAQnD;AA2PD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+BnF;AAkUD;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,MAAM,CAAC,CAiXjB;AAGD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY1D;AAicD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2BD,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwFtF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,GACP,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA4B1D"}
|