@flowselections/layout-maker 1.36.7 → 1.45.8
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/PaginaDocument.d.ts +4 -1
- package/dist-lib/components/PaginaDocument.d.ts.map +1 -1
- package/dist-lib/components/PaginaDocument.js +10 -5
- package/dist-lib/components/PakbonBuilderPage.d.ts.map +1 -1
- package/dist-lib/components/PakbonBuilderPage.js +34 -14
- package/dist-lib/components/PakbonPreview.d.ts +4 -2
- package/dist-lib/components/PakbonPreview.d.ts.map +1 -1
- package/dist-lib/components/PakbonPreview.js +74 -24
- package/dist-lib/components/PakbonSectiesPanel.d.ts +5 -3
- package/dist-lib/components/PakbonSectiesPanel.d.ts.map +1 -1
- package/dist-lib/components/PakbonSectiesPanel.js +8 -5
- 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 +73 -14
- 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 +16 -6
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +11 -5
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +3585 -1267
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +3585 -1267
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/moduleClient.d.ts +25898 -0
- package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -0
- package/dist-lib/integrations/supabase/moduleClient.js +29 -0
- package/dist-lib/integrations/supabase/types.d.ts +3607 -1265
- 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 +3585 -1267
- package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
- package/dist-lib/lib/code128.d.ts +5 -0
- package/dist-lib/lib/code128.d.ts.map +1 -0
- package/dist-lib/lib/code128.js +51 -0
- 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 +170 -9
- package/dist-lib/lib/layoutPreview.d.ts.map +1 -1
- package/dist-lib/lib/layoutPreview.js +6 -3
- package/dist-lib/lib/orderData.server.d.ts.map +1 -1
- package/dist-lib/lib/orderData.server.js +49 -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 +90 -5
- package/dist-lib/lib/pakbonBuilder.d.ts.map +1 -1
- package/dist-lib/lib/pakbonBuilder.js +455 -58
- 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 +21 -2
- package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
- package/dist-lib/lib/pakbonHtml.js +144 -36
- 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 +44 -0
- package/dist-lib/lib/pakbonScan.d.ts.map +1 -0
- package/dist-lib/lib/pakbonScan.js +87 -0
- 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 +13 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +673 -96
- package/dist-lib/lib/printService.functions.d.ts +11840 -2568
- 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/supabaseClient.d.ts +1 -3
- package/dist-lib/lib/supabaseClient.d.ts.map +1 -1
- package/dist-lib/lib/supabaseClient.js +4 -8
- 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
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useRef, useState } from "react";
|
|
3
3
|
import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, toast, } from "@flowselections/core";
|
|
4
|
-
import { FileDown, RotateCcw, Search, XCircle } from "lucide-react";
|
|
4
|
+
import { FileDown, FolderOpen, RotateCcw, Save, Search, XCircle } from "lucide-react";
|
|
5
5
|
import { bijgewerktTekst, useAutoRefresh } from "../lib/useAutoRefresh.js";
|
|
6
6
|
import { PrintStatusBanner } from "./PrintStatusBanner.js";
|
|
7
7
|
import { maakPrintJob, updateJobStatus, useLayouts, usePrinters, usePrintJobs, usePrintPlekNamen, } from "../lib/useDocumentData.js";
|
|
8
8
|
import { printStatus } from "../lib/printService.functions.js";
|
|
9
9
|
import { vraagWachtrijRonde } from "../lib/queueTickClient.js";
|
|
10
10
|
import { documentTypeLabel } from "../lib/documentTypes.js";
|
|
11
|
-
import { jobPlekLabel } from "../lib/printQueue.js";
|
|
12
|
-
import {
|
|
11
|
+
import { jobPlekLabel, jobPrintPlekId } from "../lib/printQueue.js";
|
|
12
|
+
import { kiesPdfMap, openInEigenTabblad } from "../lib/pdfMap.js";
|
|
13
|
+
import { bewaarPdfJobOpnieuw, downloadPdfJob } from "../lib/pdfJobSaver.js";
|
|
14
|
+
import { pdfOpslagLabel, isOpslagFout } from "../lib/pdfOpslagStatus.js";
|
|
13
15
|
import { PdfMapAutoSaver } from "./PdfMapAutoSaver.js";
|
|
14
16
|
import { PdfMapToestemmingBanner } from "./PdfMapToestemmingBanner.js";
|
|
15
|
-
import { supabase } from "../lib/supabaseClient.js";
|
|
16
17
|
const STATUS_VARIANT = {
|
|
17
18
|
wachtend: "outline",
|
|
18
19
|
bezig: "secondary",
|
|
@@ -27,14 +28,6 @@ const BRON_LABEL = {
|
|
|
27
28
|
render_html: "meegestuurde opmaak",
|
|
28
29
|
klantlayout: "klantlayout",
|
|
29
30
|
};
|
|
30
|
-
const LOKALE_PDF_LABEL = {
|
|
31
|
-
gereed: "PDF gereed — lokaal opslaan",
|
|
32
|
-
opgeslagen: "opgeslagen op Mac",
|
|
33
|
-
map_ontbreekt: "PDF-map ontbreekt",
|
|
34
|
-
toestemming_nodig: "maptoestemming nodig",
|
|
35
|
-
schrijffout: "opslaan mislukt",
|
|
36
|
-
timeout: "wachten op PDF verlopen",
|
|
37
|
-
};
|
|
38
31
|
/**
|
|
39
32
|
* Heeft deze opdracht een kenmerk waarmee hij van andere orders te
|
|
40
33
|
* onderscheiden is? Zo niet, dan valt de dubbelbescherming terug op het
|
|
@@ -44,10 +37,15 @@ function heeftOrderKenmerk(job) {
|
|
|
44
37
|
const p = (job.payload ?? {});
|
|
45
38
|
if (typeof p !== "object" || p === null)
|
|
46
39
|
return false;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return
|
|
50
|
-
}
|
|
40
|
+
const gevuld = (w) => (typeof w === "string" && w.trim() !== "") || typeof w === "number";
|
|
41
|
+
if (["queue_item_id", "order_id", "ordernummer", "order_number", "orderId"].some((k) => gevuld(p[k]))) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
// Modules kunnen de order ook genest meesturen als payload.order / payload.data.order.
|
|
45
|
+
const genest = [p.order, p.data?.order];
|
|
46
|
+
return genest.some((o) => o !== null &&
|
|
47
|
+
typeof o === "object" &&
|
|
48
|
+
["id", "order_id", "orderNumber", "ordernummer", "nummer"].some((k) => gevuld(o[k])));
|
|
51
49
|
}
|
|
52
50
|
export function PrintQueuePage() {
|
|
53
51
|
const { jobs, loading, reload } = usePrintJobs();
|
|
@@ -56,9 +54,43 @@ export function PrintQueuePage() {
|
|
|
56
54
|
const [zoek, setZoek] = useState("");
|
|
57
55
|
const [status, setStatus] = useState("alle");
|
|
58
56
|
const [plekFilter, setPlekFilter] = useState("alle");
|
|
57
|
+
const [opslagFilter, setOpslagFilter] = useState("alle");
|
|
59
58
|
const [tickFout, setTickFout] = useState(null);
|
|
60
59
|
const plekNamen = usePrintPlekNamen();
|
|
61
60
|
const printerNaam = useMemo(() => new Map(printers.map((p) => [p.id, p.naam])), [printers]);
|
|
61
|
+
const pdfPrinter = printers.find((p) => p.afdrukmethode === "pdf");
|
|
62
|
+
/** Kies direct vanuit een foute opdracht de PDF-map op deze werkplek. */
|
|
63
|
+
const stelMapIn = async (printplekId) => {
|
|
64
|
+
if (!pdfPrinter) {
|
|
65
|
+
toast.error("Er is nog geen “Opslaan als PDF”-printer aangemaakt");
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const uitkomst = await kiesPdfMap(pdfPrinter.id, printplekId);
|
|
69
|
+
if (uitkomst.status === "gekozen") {
|
|
70
|
+
toast.success("Map gekozen", {
|
|
71
|
+
description: `PDF's worden opgeslagen in “${uitkomst.naam}”. De opdracht wordt opnieuw opgeslagen.`,
|
|
72
|
+
});
|
|
73
|
+
void reload(true);
|
|
74
|
+
}
|
|
75
|
+
else if (uitkomst.status === "iframe-geblokkeerd") {
|
|
76
|
+
toast.error("Map kiezen werkt niet in een iframe", {
|
|
77
|
+
description: "Open de app in een eigen tabblad.",
|
|
78
|
+
action: {
|
|
79
|
+
label: "Open in eigen tabblad",
|
|
80
|
+
onClick: () => openInEigenTabblad(printplekId),
|
|
81
|
+
},
|
|
82
|
+
duration: 15000,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
else if (uitkomst.status === "niet-ondersteund") {
|
|
86
|
+
toast.error("Deze browser ondersteunt geen mapkeuze", {
|
|
87
|
+
description: "Gebruik Chrome, Edge of Safari op desktop.",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else if (uitkomst.status === "fout") {
|
|
91
|
+
toast.error("Map kiezen is mislukt", { description: uitkomst.melding });
|
|
92
|
+
}
|
|
93
|
+
};
|
|
62
94
|
const layoutNaam = useMemo(() => new Map(layouts.map((l) => [l.id, l.naam])), [layouts]);
|
|
63
95
|
/** Herkomstlabel per opdracht: printplek, anders pickstation of werkplek. */
|
|
64
96
|
const plekPerJob = useMemo(() => {
|
|
@@ -76,6 +108,13 @@ export function PrintQueuePage() {
|
|
|
76
108
|
return false;
|
|
77
109
|
if (plekFilter !== "alle" && (plekPerJob.get(j.id) || "—") !== plekFilter)
|
|
78
110
|
return false;
|
|
111
|
+
if (opslagFilter === "fout" && !isOpslagFout(j.lokale_pdf_status))
|
|
112
|
+
return false;
|
|
113
|
+
if (opslagFilter === "opgeslagen" && j.lokale_pdf_status !== "opgeslagen")
|
|
114
|
+
return false;
|
|
115
|
+
if (opslagFilter === "wacht" &&
|
|
116
|
+
!["wachtend", "genereren", "gereed", "bezig"].includes(j.lokale_pdf_status ?? ""))
|
|
117
|
+
return false;
|
|
79
118
|
return true;
|
|
80
119
|
});
|
|
81
120
|
const tellingen = useMemo(() => {
|
|
@@ -115,38 +154,31 @@ export function PrintQueuePage() {
|
|
|
115
154
|
await reload(true);
|
|
116
155
|
};
|
|
117
156
|
const bijgewerkt = useAutoRefresh(ronde, lopende ? 5000 : 20000);
|
|
118
|
-
return (_jsxs("main", { className: "space-y-6 p-6", children: [_jsx(PdfMapAutoSaver, {}), _jsx(PdfMapToestemmingBanner, {}), _jsxs("div", { className: "flex flex-wrap items-end justify-between gap-4", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-xl font-semibold", children: "Printwachtrij" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Volg printopdrachten, herstart mislukte prints en print documenten opnieuw." })] }), _jsx("span", { className: "text-muted-foreground text-xs", children: bijgewerktTekst(bijgewerkt) })] }), _jsx(PrintStatusBanner, { fout: tickFout }), _jsx("div", { className: "grid gap-4 md:grid-cols-4", children: ["wachtend", "bezig", "voltooid", "mislukt"].map((s) => (_jsx(Card, { children: _jsxs(CardHeader, { className: "pb-2", children: [_jsx(CardDescription, { className: "capitalize", children: s }), _jsx(CardTitle, { className: "text-2xl", children: tellingen[s] ?? 0 })] }) }, s))) }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-base", children: "Opdrachten" }), _jsx(CardDescription, { children: loading ? "Laden…" : `${gefilterd.length} opdrachten` })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid gap-3 md:grid-cols-
|
|
157
|
+
return (_jsxs("main", { className: "space-y-6 p-6", children: [_jsx(PdfMapAutoSaver, {}), _jsx(PdfMapToestemmingBanner, {}), _jsxs("div", { className: "flex flex-wrap items-end justify-between gap-4", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-xl font-semibold", children: "Printwachtrij" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Volg printopdrachten, herstart mislukte prints en print documenten opnieuw." })] }), _jsx("span", { className: "text-muted-foreground text-xs", children: bijgewerktTekst(bijgewerkt) })] }), _jsx(PrintStatusBanner, { fout: tickFout }), _jsx("div", { className: "grid gap-4 md:grid-cols-4", children: ["wachtend", "bezig", "voltooid", "mislukt"].map((s) => (_jsx(Card, { children: _jsxs(CardHeader, { className: "pb-2", children: [_jsx(CardDescription, { className: "capitalize", children: s }), _jsx(CardTitle, { className: "text-2xl", children: tellingen[s] ?? 0 })] }) }, s))) }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-base", children: "Opdrachten" }), _jsx(CardDescription, { children: loading ? "Laden…" : `${gefilterd.length} opdrachten` })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "grid gap-3 md:grid-cols-5", children: [_jsxs("div", { className: "relative md:col-span-2", children: [_jsx(Search, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }), _jsx(Input, { className: "pl-9", placeholder: "Zoek op document of gebruiker", value: zoek, onChange: (e) => setZoek(e.target.value) })] }), _jsxs(Select, { value: status, onValueChange: setStatus, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "alle", children: "Alle statussen" }), ["wachtend", "bezig", "voltooid", "mislukt", "geannuleerd"].map((s) => (_jsx(SelectItem, { value: s, children: s }, s)))] })] }), _jsxs(Select, { value: plekFilter, onValueChange: setPlekFilter, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "alle", children: "Alle printplekken" }), plekOpties.map((p) => (_jsx(SelectItem, { value: p, children: p }, p))), _jsx(SelectItem, { value: "\u2014", children: "Zonder printplek" })] })] }), _jsxs(Select, { value: opslagFilter, onValueChange: setOpslagFilter, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "alle", children: "Alle PDF-opslag" }), _jsx(SelectItem, { value: "fout", children: "Opslag mislukt" }), _jsx(SelectItem, { value: "wacht", children: "Wacht op werkplek" }), _jsx(SelectItem, { value: "opgeslagen", children: "Opgeslagen in map" })] })] })] }), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Document" }), _jsx(TableHead, { children: "Printplek" }), _jsx(TableHead, { children: "Layout (aangeleverd \u2192 gebruikt)" }), _jsx(TableHead, { children: "Printer" }), _jsx(TableHead, { children: "Status" }), _jsx(TableHead, { children: "Tijdstip" }), _jsx(TableHead, { className: "text-right", children: "Acties" })] }) }), _jsxs(TableBody, { children: [gefilterd.length === 0 && (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: 7, className: "py-10 text-center text-sm text-muted-foreground", children: "Geen printopdrachten." }) })), gefilterd.map((j) => (_jsxs(TableRow, { children: [_jsxs(TableCell, { children: [_jsx("span", { className: "font-medium", children: j.documentnaam ?? documentTypeLabel(j.documenttype) }), j.is_herprint && (_jsx(Badge, { variant: "outline", className: "ml-2", children: "herprint" })), !heeftOrderKenmerk(j) && (_jsx(Badge, { variant: "outline", className: "ml-2 text-amber-600", children: "geen orderkenmerk" })), j.foutmelding && (_jsx("span", { className: "block text-xs text-destructive", children: j.foutmelding })), j.lokale_pdf_fout && (_jsx("span", { className: "block text-xs text-destructive", children: j.lokale_pdf_fout })), (["map_ontbreekt", "geen_rechten", "toestemming_nodig"].includes(j.lokale_pdf_status ?? "") ||
|
|
158
|
+
(j.lokale_pdf_status === "gereed" && !j.lokale_pdf_print_plek_id)) && (_jsxs(Button, { variant: "outline", size: "sm", className: "mt-1", onClick: () => void stelMapIn(jobPrintPlekId(j) || undefined), children: [_jsx(FolderOpen, { className: "mr-2 h-4 w-4" }), " Map instellen"] }))] }), _jsx(TableCell, { className: "text-sm text-muted-foreground", children: plekPerJob.get(j.id) || "—" }), _jsxs(TableCell, { className: "text-sm text-muted-foreground", children: [_jsx("span", { title: "Aangeleverd door de module", children: j.layout_id ? layoutNaam.get(j.layout_id) ?? "Onbekende layout" : "geen" }), _jsxs("span", { className: "block text-xs", children: ["\u2192", " ", _jsx("span", { title: "Layout die de wachtrij gebruikte", children: j.gebruikte_layout_id
|
|
119
159
|
? layoutNaam.get(j.gebruikte_layout_id) ?? "Onbekende layout"
|
|
120
160
|
: j.gebruikte_bron
|
|
121
161
|
? "geen layout"
|
|
122
|
-
: "nog niet verwerkt" }), j.gebruikte_bron && (_jsx(Badge, { variant: "outline", className: "ml-2", children: BRON_LABEL[j.gebruikte_bron] ?? j.gebruikte_bron }))] })] }), _jsx(TableCell, { className: "text-sm text-muted-foreground", children: j.printer_id ? printerNaam.get(j.printer_id) ?? "—" : "—" }), _jsx(TableCell, { children: _jsx(Badge, { variant: STATUS_VARIANT[j.status] ?? "outline", children: (j.lokale_pdf_status
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
?
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
toast.success("PDF opgeslagen in de ingestelde map");
|
|
162
|
+
: "nog niet verwerkt" }), j.gebruikte_bron && (_jsx(Badge, { variant: "outline", className: "ml-2", children: BRON_LABEL[j.gebruikte_bron] ?? j.gebruikte_bron }))] })] }), _jsx(TableCell, { className: "text-sm text-muted-foreground", children: j.printer_id ? printerNaam.get(j.printer_id) ?? "—" : "—" }), _jsx(TableCell, { children: _jsx(Badge, { variant: STATUS_VARIANT[j.status] ?? "outline", children: pdfOpslagLabel(j.lokale_pdf_status, Boolean(j.lokale_pdf_print_plek_id)) ?? j.status }) }), _jsx(TableCell, { className: "text-sm text-muted-foreground", children: new Date(j.created_at).toLocaleString("nl-NL") }), _jsx(TableCell, { className: "text-right", children: _jsxs("div", { className: "flex justify-end gap-1", children: [(j.artefact_pad || j.resultaat_pdf_base64) && (_jsxs(Button, { variant: "ghost", size: "sm", title: "Bewaar de opgemaakte PDF", onClick: async () => {
|
|
163
|
+
try {
|
|
164
|
+
await downloadPdfJob(j.id, j.documentnaam ?? "document");
|
|
165
|
+
}
|
|
166
|
+
catch (fout) {
|
|
167
|
+
toast.error(fout instanceof Error ? fout.message : "PDF downloaden mislukt");
|
|
168
|
+
}
|
|
169
|
+
}, children: [_jsx(FileDown, { className: "mr-2 h-4 w-4" }), " PDF"] })), j.lokale_pdf_status !== "opgeslagen" &&
|
|
170
|
+
(j.artefact_pad || j.resultaat_pdf_base64) && (_jsxs(Button, { variant: "ghost", size: "sm", title: "Bewaar de bestaande PDF opnieuw in de ingestelde map", onClick: async () => {
|
|
171
|
+
try {
|
|
172
|
+
await bewaarPdfJobOpnieuw(j.id);
|
|
173
|
+
toast.success("De bestaande PDF wordt opnieuw in de ingestelde map opgeslagen");
|
|
174
|
+
}
|
|
175
|
+
catch (fout) {
|
|
176
|
+
toast.error(fout instanceof Error ? fout.message : "Opnieuw opslaan mislukt");
|
|
177
|
+
}
|
|
178
|
+
finally {
|
|
140
179
|
void reload(true);
|
|
141
|
-
return;
|
|
142
180
|
}
|
|
143
|
-
|
|
144
|
-
const a = document.createElement("a");
|
|
145
|
-
a.href = url;
|
|
146
|
-
a.download = bestandsnaam;
|
|
147
|
-
a.click();
|
|
148
|
-
URL.revokeObjectURL(url);
|
|
149
|
-
}, children: [_jsx(FileDown, { className: "mr-2 h-4 w-4" }), " PDF"] })), _jsxs(Button, { variant: "ghost", size: "sm", onClick: async () => {
|
|
181
|
+
}, children: [_jsx(Save, { className: "mr-2 h-4 w-4" }), " Opslag opnieuw"] })), _jsxs(Button, { variant: "ghost", size: "sm", onClick: async () => {
|
|
150
182
|
if (!j.layout_id)
|
|
151
183
|
return;
|
|
152
184
|
try {
|
|
@@ -157,6 +189,12 @@ export function PrintQueuePage() {
|
|
|
157
189
|
documentnaam: j.documentnaam ?? "Herprint",
|
|
158
190
|
kopieen: j.kopieen ?? 1,
|
|
159
191
|
is_herprint: true,
|
|
192
|
+
bron_job_id: j.id,
|
|
193
|
+
payload: {
|
|
194
|
+
...(j.payload && typeof j.payload === "object" ? j.payload : {}),
|
|
195
|
+
is_herprint: true,
|
|
196
|
+
bron_job_id: j.id,
|
|
197
|
+
},
|
|
160
198
|
});
|
|
161
199
|
toast.success("Opnieuw in de wachtrij gezet");
|
|
162
200
|
void reload();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrintplekDetailPage.d.ts","sourceRoot":"","sources":["../../src/components/PrintplekDetailPage.tsx"],"names":[],"mappings":"AAiDA,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"PrintplekDetailPage.d.ts","sourceRoot":"","sources":["../../src/components/PrintplekDetailPage.tsx"],"names":[],"mappings":"AAiDA,wBAAgB,mBAAmB,gCA0YlC"}
|
|
@@ -86,7 +86,7 @@ export function PrintplekDetailPage() {
|
|
|
86
86
|
if (!plek) {
|
|
87
87
|
return (_jsxs("main", { className: "space-y-4 p-6", children: [_jsx(Button, { variant: "ghost", asChild: true, children: _jsxs(Link, { to: "/layouts-printers/printplekken", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), " Terug"] }) }), _jsx("p", { className: "text-muted-foreground text-sm", children: "Deze printplek bestaat niet (meer)." })] }));
|
|
88
88
|
}
|
|
89
|
-
return (_jsxs("main", { className: "space-y-6 p-6", children: [_jsx(PdfMapAutoSaver, {}), _jsx(PdfMapToestemmingBanner, {}), _jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx(Button, { variant: "ghost", size: "sm", asChild: true, className: "-ml-2", children: _jsxs(Link, { to: "/layouts-printers/printplekken", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), " Alle printplekken"] }) }), naamBewerken ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Input, { value: naam, onChange: (e) => setNaam(e.target.value), className: "w-64" }), _jsx(Button, { size: "icon", onClick: async () => {
|
|
89
|
+
return (_jsxs("main", { className: "space-y-6 p-6", children: [_jsx(PdfMapAutoSaver, {}), _jsx(PdfMapToestemmingBanner, { printplekId: plekId }), _jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx(Button, { variant: "ghost", size: "sm", asChild: true, className: "-ml-2", children: _jsxs(Link, { to: "/layouts-printers/printplekken", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), " Alle printplekken"] }) }), naamBewerken ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Input, { value: naam, onChange: (e) => setNaam(e.target.value), className: "w-64" }), _jsx(Button, { size: "icon", onClick: async () => {
|
|
90
90
|
await bewerkPrintplek(plek.id, { naam: naam.trim() });
|
|
91
91
|
setNaamBewerken(false);
|
|
92
92
|
await reload(true);
|
|
@@ -116,6 +116,6 @@ export function PrintplekDetailPage() {
|
|
|
116
116
|
printers.find((p) => p.id === regel?.printer_id) ??
|
|
117
117
|
null;
|
|
118
118
|
const isPdf = printer?.afdrukmethode === "pdf";
|
|
119
|
-
return (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 rounded-lg border p-2", children: [_jsx("div", { className: "text-sm font-medium", children: documentTypeLabel(d.value) }), printer ? (_jsxs("span", { className: "text-muted-foreground text-sm", children: [printer.naam, isPdf
|
|
119
|
+
return (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 rounded-lg border p-2", children: [_jsx("div", { className: "text-sm font-medium", children: documentTypeLabel(d.value) }), printer ? (_jsxs("span", { className: "text-muted-foreground text-sm", children: [printer.naam, isPdf ? (_jsxs("span", { className: "ml-2 inline-flex items-center gap-1 rounded-full bg-amber-100 px-2 py-0.5 text-xs font-medium text-amber-900", children: [_jsx(AlertTriangle, { className: "h-3 w-3" }), "Wordt niet geprint, maar opgeslagen als PDF", pdfMap ? ` in “${pdfMap}”` : ""] })) : null] })) : (_jsxs("span", { className: "text-destructive flex items-center gap-1 text-xs", children: [_jsx(AlertTriangle, { className: "h-3.5 w-3.5" }), " Geen printer"] }))] }, d.value));
|
|
120
120
|
}), !alleDocumenten && overige.length > 0 ? (_jsxs("p", { className: "text-muted-foreground text-xs", children: [overige.length, " documentsoort", overige.length === 1 ? "" : "en", " nog niet ingesteld."] })) : null] })] }), _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Link2, { className: "h-4 w-4" }), " Gekoppeld aan"] }), _jsx(CardDescription, { children: "Andere modules (bijvoorbeeld pickstations) kunnen zich aan deze printplek koppelen." })] }), _jsxs(CardContent, { className: "space-y-4", children: [bronnen.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "Nog niets gekoppeld. Kies deze printplek in de andere module (bijvoorbeeld bij een pickstation); de koppeling verschijnt hier vanzelf." })) : (_jsx("div", { className: "space-y-2", children: bronnen.map((b) => (_jsxs("div", { className: "flex flex-wrap items-center gap-3 rounded-lg border px-3 py-2 text-sm", children: [_jsx(Badge, { variant: "secondary", children: b.bron }), _jsxs("span", { className: "min-w-0 flex-1 truncate", children: [b.label ?? b.bron_id, _jsx("span", { className: "text-muted-foreground ml-2 text-xs", children: b.bron_id })] }), _jsxs(Button, { variant: "ghost", size: "sm", onClick: () => void ontkoppel(b.bron, b.bron_id), children: [_jsx(X, { className: "mr-1 h-3.5 w-3.5" }), " Ontkoppelen"] })] }, b.id))) })), weeskoppelingen.length > 0 ? (_jsxs("div", { className: "space-y-2 rounded-lg border border-dashed p-3", children: [_jsxs("p", { className: "text-muted-foreground flex items-center gap-2 text-xs", children: [_jsx(AlertTriangle, { className: "h-3.5 w-3.5" }), " Koppelingen zonder bestaande printplek:"] }), weeskoppelingen.map((b) => (_jsxs("div", { className: "flex flex-wrap items-center gap-3 text-sm", children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: b.label ?? `${b.bron} ${b.bron_id}` }), _jsxs(Button, { variant: "ghost", size: "sm", onClick: () => void ontkoppel(b.bron, b.bron_id), children: [_jsx(Trash2, { className: "mr-1 h-3.5 w-3.5" }), " Opruimen"] })] }, b.id)))] })) : null] })] })] }));
|
|
121
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrintplekWizard.d.ts","sourceRoot":"","sources":["../../src/components/PrintplekWizard.tsx"],"names":[],"mappings":"AAiEA,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,+
|
|
1
|
+
{"version":3,"file":"PrintplekWizard.d.ts","sourceRoot":"","sources":["../../src/components/PrintplekWizard.tsx"],"names":[],"mappings":"AAiEA,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,+BA0jBA"}
|
|
@@ -37,7 +37,11 @@ export function PrintplekWizard({ open, onOpenChange, printplekId, onKlaar, }) {
|
|
|
37
37
|
const [pdfMap, setPdfMap] = useState({});
|
|
38
38
|
/** Opent de mappenverkenner en bewaart de keuze direct. */
|
|
39
39
|
async function mapKiezen(printerId) {
|
|
40
|
-
|
|
40
|
+
if (!plekId) {
|
|
41
|
+
toast.error("Sla eerst de naam van deze printplek op voordat u een PDF-map kiest.");
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const uitkomst = await kiesPdfMap(printerId, plekId);
|
|
41
45
|
if (uitkomst.status === "gekozen") {
|
|
42
46
|
setPdfMap((m) => ({ ...m, [printerId]: uitkomst.naam }));
|
|
43
47
|
await bewaarPdfMap(printerId, uitkomst.naam);
|
|
@@ -52,7 +56,7 @@ export function PrintplekWizard({ open, onOpenChange, printplekId, onKlaar, }) {
|
|
|
52
56
|
description: "Open de app in een eigen tabblad — daar werkt Map kiezen wel. U kunt het pad ook handmatig intypen.",
|
|
53
57
|
action: {
|
|
54
58
|
label: "Open in eigen tabblad",
|
|
55
|
-
onClick: () => openInEigenTabblad(),
|
|
59
|
+
onClick: () => openInEigenTabblad(plekId),
|
|
56
60
|
},
|
|
57
61
|
duration: 10000,
|
|
58
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductiebonBuilderPage.d.ts","sourceRoot":"","sources":["../../src/components/ProductiebonBuilderPage.tsx"],"names":[],"mappings":"AAuBA,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,+
|
|
1
|
+
{"version":3,"file":"ProductiebonBuilderPage.d.ts","sourceRoot":"","sources":["../../src/components/ProductiebonBuilderPage.tsx"],"names":[],"mappings":"AAuBA,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,+BAsJ7F"}
|
|
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useEffect, useMemo, useState } from "react";
|
|
3
3
|
import { Link } from "@tanstack/react-router";
|
|
4
4
|
import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, toast, } from "@flowselections/core";
|
|
5
|
-
import { ArrowLeft, Loader2, Printer, Save } from "lucide-react";
|
|
5
|
+
import { AlertTriangle, ArrowLeft, CheckCircle2, Loader2, Printer, Save } from "lucide-react";
|
|
6
6
|
import { ProductiebonBlokkenPanel } from "./ProductiebonBlokkenPanel.js";
|
|
7
|
-
import {
|
|
7
|
+
import { PdfVoorbeeld } from "./PdfVoorbeeld.js";
|
|
8
8
|
import { FormaatOrientatieBar } from "./FormaatOrientatieBar.js";
|
|
9
9
|
import { leesProductiebonConfig } from "../lib/productiebonBuilder.js";
|
|
10
10
|
import { updateLayout, useLayoutDetail } from "../lib/useDocumentData.js";
|
|
@@ -19,14 +19,21 @@ export function ProductiebonBuilderPage({ layoutId: layoutIdProp } = {}) {
|
|
|
19
19
|
const [config, setConfig] = useState(null);
|
|
20
20
|
const [bezig, setBezig] = useState(false);
|
|
21
21
|
const [printen, setPrinten] = useState(false);
|
|
22
|
+
const [controle, setControle] = useState("controleren");
|
|
22
23
|
useEffect(() => {
|
|
23
24
|
if (layout)
|
|
24
25
|
setConfig(leesProductiebonConfig(layout.config));
|
|
25
26
|
}, [layout?.id]);
|
|
26
27
|
const breedte = useMemo(() => (layout?.orientatie === "landscape" ? layout?.hoogte_mm : layout?.breedte_mm) ?? 210, [layout]);
|
|
27
28
|
const hoogte = useMemo(() => (layout?.orientatie === "landscape" ? layout?.breedte_mm : layout?.hoogte_mm) ?? 297, [layout]);
|
|
29
|
+
const marge = Number(layout?.marge_boven ?? 10);
|
|
30
|
+
const voorbeeldHtml = useMemo(() => {
|
|
31
|
+
if (!config)
|
|
32
|
+
return "";
|
|
33
|
+
return renderProductiebonDocument({ productiebon: config }, {}, { breedteMm: breedte, hoogteMm: hoogte, margeMm: marge, titel: layout?.naam ?? "Productiebon" });
|
|
34
|
+
}, [config, breedte, hoogte, marge, layout?.naam]);
|
|
28
35
|
const opslaan = async () => {
|
|
29
|
-
if (!layout || !config)
|
|
36
|
+
if (!layout || !config || controle !== "gereed")
|
|
30
37
|
return;
|
|
31
38
|
setBezig(true);
|
|
32
39
|
try {
|
|
@@ -43,18 +50,17 @@ export function ProductiebonBuilderPage({ layoutId: layoutIdProp } = {}) {
|
|
|
43
50
|
}
|
|
44
51
|
};
|
|
45
52
|
const voorbeeldPrinten = async () => {
|
|
46
|
-
if (!config)
|
|
53
|
+
if (!config || controle !== "gereed")
|
|
47
54
|
return;
|
|
48
55
|
setPrinten(true);
|
|
49
56
|
try {
|
|
50
|
-
const html = renderProductiebonDocument({ productiebon: config }, {}, { breedteMm: breedte, hoogteMm: hoogte, titel: layout?.naam ?? "Productiebon" });
|
|
51
57
|
await voorbeeldPrint({
|
|
52
58
|
...(layout ?? {}),
|
|
53
59
|
id: layout?.id ?? layoutId,
|
|
54
60
|
naam: layout?.naam,
|
|
55
61
|
documenttype: layout?.documenttype ?? "productiebon",
|
|
56
62
|
papierformaat: layout?.papierformaat,
|
|
57
|
-
},
|
|
63
|
+
}, voorbeeldHtml);
|
|
58
64
|
}
|
|
59
65
|
catch (e) {
|
|
60
66
|
toast.error(e instanceof Error ? e.message : "Voorbeeld printen mislukt");
|
|
@@ -69,5 +75,5 @@ export function ProductiebonBuilderPage({ layoutId: layoutIdProp } = {}) {
|
|
|
69
75
|
return _jsx("main", { className: "p-6 text-sm text-muted-foreground", children: "Layout laden\u2026" });
|
|
70
76
|
if (!layout || !config)
|
|
71
77
|
return _jsx("main", { className: "p-6 text-sm text-muted-foreground", children: "Layout niet gevonden." });
|
|
72
|
-
return (_jsxs("main", { className: "space-y-4 p-6", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Button, { variant: "ghost", size: "sm", asChild: true, children: _jsxs(Link, { to: "/layouts-printers", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), " Layouts"] }) }), _jsxs("div", { children: [_jsx("h1", { className: "text-lg font-semibold", children: layout.naam }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Productiebon opbouwen uit blokken \u00B7 ", config.blokken.length, " blokken"] })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [layoutId ? _jsx(LayoutPrinterSelect, { layoutId: layoutId }) : null, _jsxs(Button, { size: "sm", variant: "outline", onClick: voorbeeldPrinten, disabled: printen, children: [printen ? (_jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" })) : (_jsx(Printer, { className: "mr-2 h-4 w-4" })), "Voorbeeld printen"] }), _jsxs(Button, { size: "sm", onClick: opslaan, disabled: bezig, children: [_jsx(Save, { className: "mr-2 h-4 w-4" }), " Opslaan"] })] })] }), _jsx(FormaatOrientatieBar, { layout: layout, onChange: (patch) => setLayout((l) => (l ? { ...l, ...patch } : l)) }), _jsxs("div", { className: "grid items-start gap-4 lg:grid-cols-[400px_1fr]", children: [_jsxs(Card, { className: "flex h-[calc(100vh-14rem)] min-h-[420px] flex-col overflow-hidden lg:sticky lg:top-4", children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-base", children: "Blokken" }), _jsx(CardDescription, { children: "Voeg blokken toe, wijzig de volgorde en stel elk blok afzonderlijk in." })] }), _jsx(CardContent, { className: "min-h-0 flex-1 overflow-y-auto", children: _jsx(ProductiebonBlokkenPanel, { config: config, onChange: setConfig }) })] }), _jsxs(Card, { className: "flex h-[calc(100vh-14rem)] min-h-[420px] flex-col overflow-hidden", children: [_jsxs(CardHeader, { className: "flex-row items-center justify-between space-y-0 pb-3", children: [_jsxs("div", { children: [_jsx(CardTitle, { className: "text-base", children: "Live voorbeeld" }), _jsx(CardDescription, { children: "Voorbeeldproductieorder met samenstelling en belading." })] }),
|
|
78
|
+
return (_jsxs("main", { className: "space-y-4 p-6", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Button, { variant: "ghost", size: "sm", asChild: true, children: _jsxs(Link, { to: "/layouts-printers", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), " Layouts"] }) }), _jsxs("div", { children: [_jsx("h1", { className: "text-lg font-semibold", children: layout.naam }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Productiebon opbouwen uit blokken \u00B7 ", config.blokken.length, " blokken"] })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [layoutId ? _jsx(LayoutPrinterSelect, { layoutId: layoutId }) : null, _jsxs(Button, { size: "sm", variant: "outline", onClick: voorbeeldPrinten, disabled: printen || controle !== "gereed", children: [printen ? (_jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" })) : (_jsx(Printer, { className: "mr-2 h-4 w-4" })), "Voorbeeld printen"] }), _jsxs(Button, { size: "sm", onClick: opslaan, disabled: bezig || controle !== "gereed", children: [_jsx(Save, { className: "mr-2 h-4 w-4" }), " Opslaan"] })] })] }), _jsx(FormaatOrientatieBar, { layout: layout, onChange: (patch) => setLayout((l) => (l ? { ...l, ...patch } : l)) }), _jsxs("div", { className: "grid items-start gap-4 lg:grid-cols-[400px_1fr]", children: [_jsxs(Card, { className: "flex h-[calc(100vh-14rem)] min-h-[420px] flex-col overflow-hidden lg:sticky lg:top-4", children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-base", children: "Blokken" }), _jsx(CardDescription, { children: "Voeg blokken toe, wijzig de volgorde en stel elk blok afzonderlijk in." })] }), _jsx(CardContent, { className: "min-h-0 flex-1 overflow-y-auto", children: _jsx(ProductiebonBlokkenPanel, { config: config, onChange: setConfig }) })] }), _jsxs(Card, { className: "flex h-[calc(100vh-14rem)] min-h-[420px] flex-col overflow-hidden", children: [_jsxs(CardHeader, { className: "flex-row items-center justify-between space-y-0 pb-3", children: [_jsxs("div", { children: [_jsx(CardTitle, { className: "text-base", children: "Live voorbeeld" }), _jsx(CardDescription, { children: "Voorbeeldproductieorder met samenstelling en belading." })] }), _jsxs(Badge, { variant: controle === "afwijking" ? "destructive" : "secondary", children: [controle === "controleren" ? _jsx(Loader2, { className: "mr-1 h-3 w-3 animate-spin" }) : controle === "gereed" ? _jsx(CheckCircle2, { className: "mr-1 h-3 w-3" }) : _jsx(AlertTriangle, { className: "mr-1 h-3 w-3" }), controle === "controleren" ? "Controleren" : controle === "gereed" ? "Afdruk gereed" : "Afwijking gevonden"] })] }), _jsx(CardContent, { className: "min-h-0 flex-1 overflow-hidden", children: _jsx("div", { className: "h-full overflow-hidden rounded-md border bg-muted/30 p-2", children: voorbeeldHtml ? _jsx(PdfVoorbeeld, { html: voorbeeldHtml, breedteMm: breedte, hoogteMm: hoogte, margeMm: marge, onControle: (status) => setControle(status) }) : null }) })] })] })] }));
|
|
73
79
|
}
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -20,18 +20,28 @@ export { PrintQueuePage } from './components/PrintQueuePage.js';
|
|
|
20
20
|
export { PdfMapAutoSaver } from './components/PdfMapAutoSaver.js';
|
|
21
21
|
export { PdfMapToestemmingBanner } from './components/PdfMapToestemmingBanner.js';
|
|
22
22
|
export { startPdfMapGlobaleBanner } from './components/PdfMapGlobaleBanner.js';
|
|
23
|
-
export { bewaarPdfJobZodraKlaar, startPdfMapService } from './lib/pdfJobSaver.js';
|
|
24
|
-
export {
|
|
23
|
+
export { bewaarPdfJobZodraKlaar, bewaarPdfJobOpnieuw, controleerPdfMap, startPdfMapService } from './lib/pdfJobSaver.js';
|
|
24
|
+
export { PDF_OPSLAG_STATUSSEN, PDF_OPSLAG_FOUTSTATUSSEN, PDF_OPSLAG_LABEL, PDF_OPSLAG_MELDING, isOpslagFout, } from './lib/pdfOpslagStatus.js';
|
|
25
|
+
export type { PdfOpslagStatus } from './lib/pdfOpslagStatus.js';
|
|
26
|
+
export { bewaarInPdfMap, draaitInIframe, herstelPdfMapToestemming, heeftPdfMap, kiesPdfMap, koppelPdfMapAanPrintplek, luisterNaarPdfMapWijziging, lokalePdfPrintplek, mapKiezenMogelijk, openInEigenTabblad, pdfMapKoppeling, pdfMapNaam, pdfMapToestemming } from './lib/pdfMap.js';
|
|
27
|
+
export type { PdfMapKoppeling } from './lib/pdfMap.js';
|
|
25
28
|
export { AiLayoutImportDialog } from './components/AiLayoutImportDialog.js';
|
|
26
29
|
export { LogosPage, LogoThumbnail } from './components/LogosPage.js';
|
|
27
30
|
export { PakbonBuilderPage } from './components/PakbonBuilderPage.js';
|
|
31
|
+
export { AfleverbriefBuilderPage } from './components/AfleverbriefBuilderPage.js';
|
|
32
|
+
export { FustKolomVolgorde } from './components/FustKolomVolgorde.js';
|
|
28
33
|
export { BlokOntwerperPage } from './components/BlokOntwerperPage.js';
|
|
29
34
|
export { PakbonBlokKaderEditor, PakbonSectieEditor, PakbonSectiesPanel } from './components/PakbonSectiesPanel.js';
|
|
30
35
|
export { PakbonPreview, PakbonSectiePreview } from './components/PakbonPreview.js';
|
|
31
|
-
export { BESCHIKBARE_KOLOMMEN, CONDITIE_VELDEN, DEMO_ORDER, FUST_VELD_OPTIES, SECTIE_REGISTER, alleProducten, conditieContext, fustVerzamellijst, groepeerIdentiekeKarren, groepeerIdentiekeLagen, karBundelTekst, kolomLabel, laagBundelTekst, leesPakbonConfig, nieuweKolom, nieuweSectie, pickMethode, productVeldBreedtes, sectieDef, sectieOnderdrukt, sectieZichtbaar, sorteerProducten, standaardPakbonConfig, totalen, vulVeldcodes } from './lib/pakbonBuilder.js';
|
|
32
|
-
export type { DemoKar, DemoLaag, DemoOrder, DemoProduct, FustVerzamelGroep, FustVerzamelProduct, KarGroep, LaagGroep, PakbonConditie, PakbonConfig, PakbonDocumentLogo, PakbonKolom, PakbonSectie, PakbonSectieType, SectieDef } from './lib/pakbonBuilder.js';
|
|
36
|
+
export { BESCHIKBARE_KOLOMMEN, CONDITIE_VELDEN, DEMO_ORDER, deelkarVoorbeeldOrder, FUST_VELD_OPTIES, SECTIE_REGISTER, alleProducten, conditieContext, fustVerzamellijst, groepeerIdentiekeKarren, groepeerIdentiekeLagen, karBundelTekst, kolomLabel, laagBundelTekst, leesAfleverbriefConfig, leesPakbonConfig, nieuweKolom, nieuweSectie, pakbonLayoutVariant, pickMethode, productVeldBreedtes, sectieDef, sectieOnderdrukt, sectieOnderdruktVoorVariant, sectieZichtbaar, sorteerProducten, standaardAfleverbriefConfig, standaardPakbonConfig, totalen, vulVeldcodes } from './lib/pakbonBuilder.js';
|
|
37
|
+
export type { DemoKar, DemoLaag, DemoOrder, DemoProduct, FustVerzamelGroep, FustVerzamelProduct, KarGroep, LaagGroep, PakbonConditie, PakbonConfig, PakbonDocumentLogo, PakbonKolom, PakbonLayoutVariant, PakbonSectie, PakbonSectieType, PickMethode, SectieDef } from './lib/pakbonBuilder.js';
|
|
33
38
|
export { esc, maakPakbonOrder, printPakbon, printPakbonMetLogos, renderPakbonBody, renderPakbonDocument, voorbeeldPakbonOrder } from './lib/pakbonHtml.js';
|
|
34
39
|
export type { PakbonLogo, PakbonOrder, PakbonRenderOpties } from './lib/pakbonHtml.js';
|
|
40
|
+
export { karMetadata } from './lib/pakbonPresentation.js';
|
|
41
|
+
export { bouwPakbonScanInhoud, bewaarPakbonScanInhoud } from './lib/pakbonScan.js';
|
|
42
|
+
export type { PakbonScanInhoud, PakbonScanRegel } from './lib/pakbonScan.js';
|
|
43
|
+
export { bouwPakbonBarcodeVerzoek, geleverdeBarcodeVoorJob, vraagPakbonBarcodeAan, } from './lib/pakbonBarcodeVerzoek.js';
|
|
44
|
+
export type { PakbonBarcodeVerzoek } from './lib/pakbonBarcodeVerzoek.js';
|
|
35
45
|
export { ProductiebonBuilderPage } from './components/ProductiebonBuilderPage.js';
|
|
36
46
|
export { ProductiebonBlokkenPanel } from './components/ProductiebonBlokkenPanel.js';
|
|
37
47
|
export { ProductiebonBlokPreview, ProductiebonPreview } from './components/ProductiebonPreview.js';
|
|
@@ -63,8 +73,8 @@ export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, maakLayo
|
|
|
63
73
|
export { jobPickstation, jobPlekLabel, jobPrintPlekId, jobWerkplek } from './lib/printQueue.js';
|
|
64
74
|
export type { PlekNamen } from './lib/printQueue.js';
|
|
65
75
|
export type { PrintJobModel, PrinterModel } from './lib/useDocumentData.js';
|
|
66
|
-
export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
|
|
67
|
-
export type { PrintDocumentInput, PrintDocumentResult, PrintPdfInput, PrintHtmlInput, JobStatus, } from './lib/printApi.js';
|
|
76
|
+
export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printVerzendbriefVoorKar, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
|
|
77
|
+
export type { PrintDocumentInput, PrintDocumentResult, PrintPdfInput, PrintHtmlInput, VerzendbriefVoorKarInput, JobStatus, } from './lib/printApi.js';
|
|
68
78
|
export { printDirect } from './lib/directPrint.js';
|
|
69
79
|
export type { DirectPrintOpdracht, DirectPrintResultaat } from './lib/directPrint.js';
|
|
70
80
|
export { htmlNaarPdfBase64 } from './lib/documentPdf.js';
|
package/dist-lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist-lib/index.js
CHANGED
|
@@ -21,16 +21,22 @@ export { PrintQueuePage } from './components/PrintQueuePage.js';
|
|
|
21
21
|
export { PdfMapAutoSaver } from './components/PdfMapAutoSaver.js';
|
|
22
22
|
export { PdfMapToestemmingBanner } from './components/PdfMapToestemmingBanner.js';
|
|
23
23
|
export { startPdfMapGlobaleBanner } from './components/PdfMapGlobaleBanner.js';
|
|
24
|
-
export { bewaarPdfJobZodraKlaar, startPdfMapService } from './lib/pdfJobSaver.js';
|
|
25
|
-
export {
|
|
24
|
+
export { bewaarPdfJobZodraKlaar, bewaarPdfJobOpnieuw, controleerPdfMap, startPdfMapService } from './lib/pdfJobSaver.js';
|
|
25
|
+
export { PDF_OPSLAG_STATUSSEN, PDF_OPSLAG_FOUTSTATUSSEN, PDF_OPSLAG_LABEL, PDF_OPSLAG_MELDING, isOpslagFout, } from './lib/pdfOpslagStatus.js';
|
|
26
|
+
export { bewaarInPdfMap, draaitInIframe, herstelPdfMapToestemming, heeftPdfMap, kiesPdfMap, koppelPdfMapAanPrintplek, luisterNaarPdfMapWijziging, lokalePdfPrintplek, mapKiezenMogelijk, openInEigenTabblad, pdfMapKoppeling, pdfMapNaam, pdfMapToestemming } from './lib/pdfMap.js';
|
|
26
27
|
export { AiLayoutImportDialog } from './components/AiLayoutImportDialog.js';
|
|
27
28
|
export { LogosPage, LogoThumbnail } from './components/LogosPage.js';
|
|
28
29
|
export { PakbonBuilderPage } from './components/PakbonBuilderPage.js';
|
|
30
|
+
export { AfleverbriefBuilderPage } from './components/AfleverbriefBuilderPage.js';
|
|
31
|
+
export { FustKolomVolgorde } from './components/FustKolomVolgorde.js';
|
|
29
32
|
export { BlokOntwerperPage } from './components/BlokOntwerperPage.js';
|
|
30
33
|
export { PakbonBlokKaderEditor, PakbonSectieEditor, PakbonSectiesPanel } from './components/PakbonSectiesPanel.js';
|
|
31
34
|
export { PakbonPreview, PakbonSectiePreview } from './components/PakbonPreview.js';
|
|
32
|
-
export { BESCHIKBARE_KOLOMMEN, CONDITIE_VELDEN, DEMO_ORDER, FUST_VELD_OPTIES, SECTIE_REGISTER, alleProducten, conditieContext, fustVerzamellijst, groepeerIdentiekeKarren, groepeerIdentiekeLagen, karBundelTekst, kolomLabel, laagBundelTekst, leesPakbonConfig, nieuweKolom, nieuweSectie, pickMethode, productVeldBreedtes, sectieDef, sectieOnderdrukt, sectieZichtbaar, sorteerProducten, standaardPakbonConfig, totalen, vulVeldcodes } from './lib/pakbonBuilder.js';
|
|
35
|
+
export { BESCHIKBARE_KOLOMMEN, CONDITIE_VELDEN, DEMO_ORDER, deelkarVoorbeeldOrder, FUST_VELD_OPTIES, SECTIE_REGISTER, alleProducten, conditieContext, fustVerzamellijst, groepeerIdentiekeKarren, groepeerIdentiekeLagen, karBundelTekst, kolomLabel, laagBundelTekst, leesAfleverbriefConfig, leesPakbonConfig, nieuweKolom, nieuweSectie, pakbonLayoutVariant, pickMethode, productVeldBreedtes, sectieDef, sectieOnderdrukt, sectieOnderdruktVoorVariant, sectieZichtbaar, sorteerProducten, standaardAfleverbriefConfig, standaardPakbonConfig, totalen, vulVeldcodes } from './lib/pakbonBuilder.js';
|
|
33
36
|
export { esc, maakPakbonOrder, printPakbon, printPakbonMetLogos, renderPakbonBody, renderPakbonDocument, voorbeeldPakbonOrder } from './lib/pakbonHtml.js';
|
|
37
|
+
export { karMetadata } from './lib/pakbonPresentation.js';
|
|
38
|
+
export { bouwPakbonScanInhoud, bewaarPakbonScanInhoud } from './lib/pakbonScan.js';
|
|
39
|
+
export { bouwPakbonBarcodeVerzoek, geleverdeBarcodeVoorJob, vraagPakbonBarcodeAan, } from './lib/pakbonBarcodeVerzoek.js';
|
|
34
40
|
export { ProductiebonBuilderPage } from './components/ProductiebonBuilderPage.js';
|
|
35
41
|
export { ProductiebonBlokkenPanel } from './components/ProductiebonBlokkenPanel.js';
|
|
36
42
|
export { ProductiebonBlokPreview, ProductiebonPreview } from './components/ProductiebonPreview.js';
|
|
@@ -51,7 +57,7 @@ export { alleEntiteiten, alleVelden, registreerEntiteit, veldRegisterSubscribe,
|
|
|
51
57
|
export { VOORBEELD_REGELS, bouwDocumentHtml, conditieVoldoet, voorbeeldContext, vulVelden } from './lib/layoutPreview.js';
|
|
52
58
|
export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, maakLayout, maakPrintJob, toggleKoppeling, updateJobStatus, updateLayout, useLayoutDetail, useLayouts, usePrintJobs, usePrintPlekNamen, usePrinters, useVersies, verwijderLayout, verwijderPrinter, zorgVoorFloridayLayouts } from './lib/useDocumentData.js';
|
|
53
59
|
export { jobPickstation, jobPlekLabel, jobPrintPlekId, jobWerkplek } from './lib/printQueue.js';
|
|
54
|
-
export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
|
|
60
|
+
export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printVerzendbriefVoorKar, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
|
|
55
61
|
export { printDirect } from './lib/directPrint.js';
|
|
56
62
|
export { htmlNaarPdfBase64 } from './lib/documentPdf.js';
|
|
57
63
|
export { supabase } from './lib/supabaseClient.js';
|
|
@@ -69,7 +75,7 @@ export { GeenPrinterFout } from './lib/printApi.js';
|
|
|
69
75
|
export const layoutmodule = {
|
|
70
76
|
id: "layout-maker",
|
|
71
77
|
name: "Layouts en printers",
|
|
72
|
-
version: "1.
|
|
78
|
+
version: "1.45.7",
|
|
73
79
|
nav: {
|
|
74
80
|
label: "Layouts en printers",
|
|
75
81
|
href: "/layouts-printers/documenten",
|