@flowselections/layout-maker 1.8.2 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +8 -1
  2. package/dist-lib/components/ComputersLijst.d.ts +2 -1
  3. package/dist-lib/components/ComputersLijst.d.ts.map +1 -1
  4. package/dist-lib/components/ComputersLijst.js +2 -2
  5. package/dist-lib/components/DocumentRouteringPage.d.ts +2 -0
  6. package/dist-lib/components/DocumentRouteringPage.d.ts.map +1 -0
  7. package/dist-lib/components/DocumentRouteringPage.js +115 -0
  8. package/dist-lib/components/LayoutsPage.d.ts.map +1 -1
  9. package/dist-lib/components/LayoutsPage.js +13 -8
  10. package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
  11. package/dist-lib/components/PrintQueuePage.js +16 -1
  12. package/dist-lib/components/PrintStatusBanner.d.ts +8 -0
  13. package/dist-lib/components/PrintStatusBanner.d.ts.map +1 -0
  14. package/dist-lib/components/PrintStatusBanner.js +15 -0
  15. package/dist-lib/components/PrintersPage.d.ts.map +1 -1
  16. package/dist-lib/components/PrintersPage.js +7 -23
  17. package/dist-lib/components/WerkplekConfiguratiePage.d.ts.map +1 -1
  18. package/dist-lib/components/WerkplekConfiguratiePage.js +35 -24
  19. package/dist-lib/components/WerkplekkenTabel.d.ts +2 -2
  20. package/dist-lib/components/WerkplekkenTabel.d.ts.map +1 -1
  21. package/dist-lib/components/WerkplekkenTabel.js +4 -3
  22. package/dist-lib/index.d.ts +8 -3
  23. package/dist-lib/index.d.ts.map +1 -1
  24. package/dist-lib/index.js +9 -5
  25. package/dist-lib/integrations/supabase/auth-middleware.d.ts +491 -145
  26. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  27. package/dist-lib/integrations/supabase/client.server.d.ts +491 -145
  28. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  29. package/dist-lib/integrations/supabase/types.d.ts +505 -150
  30. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  31. package/dist-lib/lib/aiLayout.functions.d.ts +491 -145
  32. package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/documentBron.d.ts +35 -0
  34. package/dist-lib/lib/documentBron.d.ts.map +1 -0
  35. package/dist-lib/lib/documentBron.js +62 -0
  36. package/dist-lib/lib/documentRoutering.d.ts +23 -0
  37. package/dist-lib/lib/documentRoutering.d.ts.map +1 -0
  38. package/dist-lib/lib/documentRoutering.js +58 -0
  39. package/dist-lib/lib/documentTypes.d.ts +54 -0
  40. package/dist-lib/lib/documentTypes.d.ts.map +1 -1
  41. package/dist-lib/lib/documentTypes.js +56 -0
  42. package/dist-lib/lib/formaatPrinters.d.ts +5 -0
  43. package/dist-lib/lib/formaatPrinters.d.ts.map +1 -1
  44. package/dist-lib/lib/formaatPrinters.js +12 -0
  45. package/dist-lib/lib/printApi.d.ts +20 -5
  46. package/dist-lib/lib/printApi.d.ts.map +1 -1
  47. package/dist-lib/lib/printApi.js +93 -32
  48. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  49. package/dist-lib/lib/printQueue.server.js +72 -1
  50. package/dist-lib/lib/printService.functions.d.ts +1964 -580
  51. package/dist-lib/lib/printService.functions.d.ts.map +1 -1
  52. package/dist-lib/lib/printerTelling.d.ts +24 -0
  53. package/dist-lib/lib/printerTelling.d.ts.map +1 -0
  54. package/dist-lib/lib/printerTelling.js +41 -0
  55. package/dist-lib/lib/useDocumentData.d.ts +4 -0
  56. package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
  57. package/dist-lib/lib/useDocumentData.js +106 -1
  58. package/package.json +7 -2
@@ -4,28 +4,31 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // printers op deze computer en welke ontwerpen er worden afgedrukt.
5
5
  // ============================================================================
6
6
  import { useMemo, useState } from "react";
7
- import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Checkbox, Input, toast, } from "@flowselections/core";
7
+ import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, toast, } from "@flowselections/core";
8
8
  import { Link, useParams } from "@tanstack/react-router";
9
9
  import { ChevronRight, Monitor, Plus, Printer, Search } from "lucide-react";
10
10
  import { bijgewerktTekst, useAutoRefresh } from "../lib/useAutoRefresh.js";
11
- import { toggleKoppeling, useLayouts, usePrinters, verwijderPrinter } from "../lib/useDocumentData.js";
11
+ import { usePrinters, verwijderPrinter } from "../lib/useDocumentData.js";
12
12
  import { useNetwerkPrinters } from "../lib/useNetwerkPrinters.js";
13
13
  import { drukTestpaginaAf } from "../lib/testpagina.js";
14
+ import { DOCUMENT_TYPES, documentTypeLabel } from "../lib/documentTypes.js";
15
+ import { useWerkplekPrinters, verwijderWerkplekPrinter, zetWerkplekPrinter, } from "../lib/documentRoutering.js";
16
+ import { printerTellingTekst, telPrintersPerComputer } from "../lib/printerTelling.js";
14
17
  import { useComputers } from "./ComputersLijst.js";
15
18
  import { PrinterKaart } from "./PrinterKaart.js";
16
19
  import { PrinterSetupWizard } from "./PrinterSetupWizard.js";
20
+ const VOLG_ROUTERING = "volg-routering";
17
21
  export function WerkplekConfiguratiePage() {
18
22
  const params = useParams({ strict: false });
19
23
  const computerId = params.computerId ?? "";
20
24
  const { printers, koppelingen, reload } = usePrinters();
21
- const { layouts } = useLayouts();
22
25
  const { computers, reload: herlaadComputers } = useComputers();
23
26
  const { gevonden, zoek } = useNetwerkPrinters();
27
+ const { koppelingen: routering, reload: herlaadRoutering } = useWerkplekPrinters();
24
28
  const [wizard, setWizard] = useState(false);
25
29
  const [bewerken, setBewerken] = useState(null);
26
30
  const [gekozenPrinter, setGekozenPrinter] = useState(null);
27
31
  const [zoekComputer, setZoekComputer] = useState("");
28
- const [layoutZoek, setLayoutZoek] = useState("");
29
32
  const bijgewerkt = useAutoRefresh(async () => {
30
33
  await Promise.all([reload(true), herlaadComputers(true), zoek()]);
31
34
  }, 10000, wizard);
@@ -36,15 +39,6 @@ export function WerkplekConfiguratiePage() {
36
39
  map.set(g.id, g);
37
40
  return map;
38
41
  }, [gevonden]);
39
- const gekoppeld = useMemo(() => {
40
- const map = new Map();
41
- for (const k of koppelingen) {
42
- if (!map.has(k.printer_id))
43
- map.set(k.printer_id, new Set());
44
- map.get(k.printer_id).add(k.layout_id);
45
- }
46
- return map;
47
- }, [koppelingen]);
48
42
  const rijen = printers
49
43
  .map((p) => {
50
44
  const extern = p.extern_printer_id ?? null;
@@ -53,8 +47,26 @@ export function WerkplekConfiguratiePage() {
53
47
  })
54
48
  .filter((r) => (computer ? r.computer === computer.naam : false));
55
49
  const actievePrinter = printers.find((p) => p.id === gekozenPrinter) ?? null;
50
+ const tellingen = useMemo(() => telPrintersPerComputer(printers, gevonden, new Set(koppelingen.map((k) => k.printer_id))), [printers, gevonden, koppelingen]);
51
+ const werkplekNaam = computer?.naam ?? "";
52
+ const eigenRoutering = routering.filter((r) => r.werkplek === werkplekNaam);
53
+ const zetDocument = async (documenttype, printerId) => {
54
+ if (!werkplekNaam)
55
+ return;
56
+ try {
57
+ const bestaand = eigenRoutering.find((r) => r.documenttype === documenttype);
58
+ if (!printerId && bestaand)
59
+ await verwijderWerkplekPrinter(bestaand.id);
60
+ else
61
+ await zetWerkplekPrinter(documenttype, werkplekNaam, printerId);
62
+ await herlaadRoutering();
63
+ toast.success("Opgeslagen");
64
+ }
65
+ catch {
66
+ toast.error("Opslaan mislukt");
67
+ }
68
+ };
56
69
  const zichtbareComputers = computers.filter((c) => zoekComputer.trim() ? c.naam.toLowerCase().includes(zoekComputer.trim().toLowerCase()) : true);
57
- const zichtbareLayouts = layouts.filter((l) => layoutZoek.trim() ? l.naam.toLowerCase().includes(layoutZoek.trim().toLowerCase()) : true);
58
70
  const bekendeExterneIds = printers
59
71
  .map((p) => p.extern_printer_id ?? null)
60
72
  .filter((e) => !!e);
@@ -62,9 +74,12 @@ export function WerkplekConfiguratiePage() {
62
74
  return (_jsxs("main", { className: "space-y-6 p-6", children: [_jsxs("div", { className: "text-muted-foreground flex items-center gap-1 text-sm", children: [_jsx(Link, { to: "/layouts-printers/printers", className: "hover:text-foreground", children: "Printers" }), _jsx(ChevronRight, { className: "h-3.5 w-3.5" }), _jsx("span", { className: "text-foreground", children: computer?.naam ?? "Werkplek" })] }), _jsxs("div", { className: "flex flex-wrap items-end justify-between gap-4", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-xl font-semibold", children: "Werkplek configureren" }), _jsx("p", { className: "text-muted-foreground text-sm", children: "Kies welke printers op deze computer welke ontwerpen afdrukken." })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-muted-foreground text-xs", children: bijgewerktTekst(bijgewerkt) }), _jsxs(Button, { onClick: () => {
63
75
  setBewerken(null);
64
76
  setWizard(true);
65
- }, children: [_jsx(Plus, { className: "mr-2 h-4 w-4" }), " Printer toevoegen"] })] })] }), _jsxs("div", { className: "grid gap-6 lg:grid-cols-[300px_1fr]", children: [_jsxs(Card, { className: "h-fit", children: [_jsx(CardHeader, { className: "pb-3", children: _jsx(CardTitle, { className: "text-base", children: "Werkplekken" }) }), _jsxs(CardContent, { className: "space-y-2", children: [_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "text-muted-foreground absolute top-2.5 left-3 h-4 w-4" }), _jsx(Input, { className: "pl-9", placeholder: "Zoek werkplek", value: zoekComputer, onChange: (e) => setZoekComputer(e.target.value) })] }), zichtbareComputers.map((c) => (_jsxs(Link, { to: "/layouts-printers/printers/$computerId", params: { computerId: c.id }, className: `flex items-center gap-3 rounded-lg border p-3 text-sm transition ${c.id === computerId ? "border-primary ring-primary/20 ring-2" : "hover:bg-muted/50"}`, children: [_jsx("span", { className: `h-2 w-2 shrink-0 rounded-full ${c.online ? "bg-primary" : "bg-muted-foreground/40"}` }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block truncate font-medium", children: c.naam }), _jsxs("span", { className: "text-muted-foreground block text-xs", children: [c.aantalPrinters, " ", c.aantalPrinters === 1 ? "printer" : "printers"] })] }), _jsx(ChevronRight, { className: "text-muted-foreground h-4 w-4" })] }, c.id))), zichtbareComputers.length === 0 && (_jsx("p", { className: "text-muted-foreground text-sm", children: "Geen werkplekken gevonden." }))] })] }), _jsxs("div", { className: "space-y-6", children: [_jsx(Card, { children: _jsxs(CardHeader, { className: "pb-3", children: [_jsxs(CardTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Monitor, { className: "h-4 w-4" }), " ", computer?.naam ?? "Onbekende werkplek"] }), _jsx(CardDescription, { children: computer
66
- ? `${computer.online ? "Aan" : "Uit"} · ${rijen.length} ${rijen.length === 1 ? "printer" : "printers"}`
67
- : "Deze computer is niet gevonden. Staat hij aan?" })] }) }), _jsxs("div", { className: "grid gap-6 xl:grid-cols-[1fr_340px]", children: [_jsxs("div", { className: "space-y-3", children: [rijen.length === 0 && (_jsx(Card, { children: _jsxs(CardContent, { className: "space-y-4 py-10 text-center", children: [_jsx(Printer, { className: "text-muted-foreground mx-auto h-8 w-8" }), _jsx("p", { className: "text-sm font-medium", children: "Nog geen printers op deze werkplek" }), _jsx(Button, { onClick: () => {
77
+ }, children: [_jsx(Plus, { className: "mr-2 h-4 w-4" }), " Printer toevoegen"] })] })] }), _jsxs("div", { className: "grid gap-6 lg:grid-cols-[300px_1fr]", children: [_jsxs(Card, { className: "h-fit", children: [_jsx(CardHeader, { className: "pb-3", children: _jsx(CardTitle, { className: "text-base", children: "Werkplekken" }) }), _jsxs(CardContent, { className: "space-y-2", children: [_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "text-muted-foreground absolute top-2.5 left-3 h-4 w-4" }), _jsx(Input, { className: "pl-9", placeholder: "Zoek werkplek", value: zoekComputer, onChange: (e) => setZoekComputer(e.target.value) })] }), zichtbareComputers.map((c) => (_jsxs(Link, { to: "/layouts-printers/printers/$computerId", params: { computerId: c.id }, className: `flex items-center gap-3 rounded-lg border p-3 text-sm transition ${c.id === computerId ? "border-primary ring-primary/20 ring-2" : "hover:bg-muted/50"}`, children: [_jsx("span", { className: `h-2 w-2 shrink-0 rounded-full ${c.online ? "bg-primary" : "bg-muted-foreground/40"}` }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block truncate font-medium", children: c.naam }), _jsx("span", { className: "text-muted-foreground block text-xs", children: printerTellingTekst(tellingen.get(c.naam)) })] }), _jsx(ChevronRight, { className: "text-muted-foreground h-4 w-4" })] }, c.id))), zichtbareComputers.length === 0 && (_jsx("p", { className: "text-muted-foreground text-sm", children: "Geen werkplekken gevonden." }))] })] }), _jsxs("div", { className: "space-y-6", children: [_jsx(Card, { children: _jsxs(CardHeader, { className: "pb-3", children: [_jsxs(CardTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Monitor, { className: "h-4 w-4" }), " ", computer?.naam ?? "Onbekende werkplek"] }), _jsx(CardDescription, { children: computer
78
+ ? `${computer.online ? "Aan" : "Uit"} · ${printerTellingTekst(tellingen.get(computer.naam))}`
79
+ : "Deze computer is niet gevonden. Staat hij aan?" })] }) }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-base", children: "Wat print deze werkplek" }), _jsxs(CardDescription, { children: ["Kies per documentsoort de printer op deze werkplek. Staat er \"Volg routering\", dan geldt de standaardprinter uit", " ", _jsx(Link, { to: "/layouts-printers/routering", className: "text-foreground underline", children: "Routering" }), "."] })] }), _jsxs(CardContent, { className: "grid gap-2 sm:grid-cols-2", children: [DOCUMENT_TYPES.map((d) => {
80
+ const huidig = eigenRoutering.find((r) => r.documenttype === d.value);
81
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-sm", children: documentTypeLabel(d.value) }), _jsxs(Select, { value: huidig?.printer_id ?? VOLG_ROUTERING, onValueChange: (v) => void zetDocument(d.value, v === VOLG_ROUTERING ? null : v), children: [_jsx(SelectTrigger, { className: "w-52", children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: VOLG_ROUTERING, children: "Volg routering" }), rijen.map(({ printer }) => (_jsx(SelectItem, { value: printer.id, children: printer.naam }, printer.id)))] })] })] }, d.value));
82
+ }), rijen.length === 0 && (_jsx("p", { className: "text-muted-foreground text-sm", children: "Voeg eerst een printer toe op deze werkplek." }))] })] }), _jsxs("div", { className: "grid gap-6 xl:grid-cols-[1fr_340px]", children: [_jsxs("div", { className: "space-y-3", children: [rijen.length === 0 && (_jsx(Card, { children: _jsxs(CardContent, { className: "space-y-4 py-10 text-center", children: [_jsx(Printer, { className: "text-muted-foreground mx-auto h-8 w-8" }), _jsx("p", { className: "text-sm font-medium", children: "Nog geen printers op deze werkplek" }), _jsx(Button, { onClick: () => {
68
83
  setBewerken(null);
69
84
  setWizard(true);
70
85
  }, children: "Printer toevoegen" })] }) })), rijen.map(({ printer, online }) => (_jsx(PrinterKaart, { printer: printer, computer: computer?.naam ?? null, beschikbaar: online, gekozen: printer.id === gekozenPrinter, onKies: () => setGekozenPrinter(printer.id), onTest: () => void drukTestpaginaAf(printer.id, printer.naam), onBewerk: () => {
@@ -84,13 +99,9 @@ export function WerkplekConfiguratiePage() {
84
99
  catch {
85
100
  toast.error("Verwijderen mislukt");
86
101
  }
87
- } }, printer.id)))] }), actievePrinter && (_jsxs(Card, { className: "h-fit", children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-base", children: "Wat wordt hier afgedrukt?" }), _jsx(CardDescription, { children: actievePrinter.naam })] }), _jsxs(CardContent, { className: "space-y-3", children: [layouts.length > 8 && (_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "text-muted-foreground absolute top-2.5 left-3 h-4 w-4" }), _jsx(Input, { className: "pl-9", value: layoutZoek, placeholder: "Zoek een ontwerp", onChange: (e) => setLayoutZoek(e.target.value) })] })), zichtbareLayouts.map((l) => {
88
- const aan = gekoppeld.get(actievePrinter.id)?.has(l.id) ?? false;
89
- return (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Checkbox, { checked: aan, onCheckedChange: async (v) => {
90
- await toggleKoppeling(l.id, actievePrinter.id, !!v);
91
- void reload();
92
- } }), _jsxs("div", { className: "min-w-0", children: [_jsx("span", { className: "block truncate text-sm", children: l.naam }), _jsx("span", { className: "text-muted-foreground text-xs", children: l.papierformaat })] })] }, l.id));
93
- }), zichtbareLayouts.length === 0 && (_jsx("p", { className: "text-muted-foreground text-sm", children: "Er zijn nog geen ontwerpen." }))] })] }))] })] })] }), _jsx(PrinterSetupWizard, { open: wizard, onOpenChange: (v) => {
102
+ } }, printer.id)))] }), actievePrinter && (_jsxs(Card, { className: "h-fit", children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsx(CardTitle, { className: "text-base", children: "Documenten op deze printer" }), _jsx(CardDescription, { children: actievePrinter.naam })] }), _jsx(CardContent, { className: "space-y-2", children: eigenRoutering.filter((r) => r.printer_id === actievePrinter.id).length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "Nog geen documentsoorten naar deze printer gestuurd. Stel dat hierboven in bij \"Wat print deze werkplek\"." })) : (eigenRoutering
103
+ .filter((r) => r.printer_id === actievePrinter.id)
104
+ .map((r) => (_jsx("p", { className: "truncate text-sm", children: documentTypeLabel(r.documenttype) }, r.id)))) })] }))] })] })] }), _jsx(PrinterSetupWizard, { open: wizard, onOpenChange: (v) => {
94
105
  setWizard(v);
95
106
  if (!v)
96
107
  setBewerken(null);
@@ -1,10 +1,10 @@
1
+ import { type PrinterTelling } from "../lib/printerTelling.js";
1
2
  export interface WerkplekRij {
2
3
  id: string;
3
4
  naam: string;
4
5
  online: boolean;
5
6
  locatie: string;
6
- aantalPrinters: number;
7
- aantalGekoppeld: number;
7
+ telling: PrinterTelling;
8
8
  }
9
9
  export declare function WerkplekkenTabel({ rijen, onPrinterToevoegen, onVernieuw, }: {
10
10
  rijen: WerkplekRij[];
@@ -1 +1 @@
1
- {"version":3,"file":"WerkplekkenTabel.d.ts","sourceRoot":"","sources":["../../src/components/WerkplekkenTabel.tsx"],"names":[],"mappings":"AAqBA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,kBAAkB,EAClB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,+BA4EA"}
1
+ {"version":3,"file":"WerkplekkenTabel.d.ts","sourceRoot":"","sources":["../../src/components/WerkplekkenTabel.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEjF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,kBAAkB,EAClB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,+BA4EA"}
@@ -6,11 +6,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@flowselections/core";
7
7
  import { Link } from "@tanstack/react-router";
8
8
  import { MoreVertical, Plus, RefreshCw } from "lucide-react";
9
+ import { printerTellingTekst } from "../lib/printerTelling.js";
9
10
  export function WerkplekkenTabel({ rijen, onPrinterToevoegen, onVernieuw, }) {
10
11
  return (_jsx("div", { className: "overflow-x-auto rounded-xl border", children: _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Werkplek" }), _jsx(TableHead, { children: "Locatie" }), _jsx(TableHead, { children: "Status" }), _jsx(TableHead, { children: "Printers" }), _jsx(TableHead, { className: "text-right", children: "Acties" })] }) }), _jsx(TableBody, { children: rijen.map((r) => {
11
- const deel = r.aantalPrinters
12
- ? Math.round((r.aantalGekoppeld / r.aantalPrinters) * 100)
12
+ const deel = r.telling.gevonden
13
+ ? Math.round((r.telling.ingesteld / r.telling.gevonden) * 100)
13
14
  : 0;
14
- return (_jsxs(TableRow, { children: [_jsx(TableCell, { className: "font-medium", children: r.naam }), _jsx(TableCell, { className: "text-muted-foreground", children: r.locatie }), _jsx(TableCell, { children: _jsxs("span", { className: "flex items-center gap-2 text-sm", children: [_jsx("span", { className: `h-2 w-2 rounded-full ${r.online ? "bg-primary" : "bg-muted-foreground/40"}` }), r.online ? "Aan" : "Uit"] }) }), _jsx(TableCell, { children: _jsxs("div", { className: "w-40 space-y-1", children: [_jsxs("span", { className: "text-sm", children: [r.aantalGekoppeld, " / ", r.aantalPrinters, " in gebruik"] }), _jsx("div", { className: "bg-muted h-1.5 w-full overflow-hidden rounded-full", children: _jsx("div", { className: "bg-primary h-full", style: { width: `${deel}%` } }) })] }) }), _jsx(TableCell, { className: "text-right", children: _jsxs("div", { className: "flex justify-end gap-1", children: [_jsx(Button, { variant: "outline", size: "sm", asChild: true, children: _jsx(Link, { to: "/layouts-printers/printers/$computerId", params: { computerId: r.id }, children: "Configureren" }) }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "sm", "aria-label": "Meer", children: _jsx(MoreVertical, { className: "h-4 w-4" }) }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsxs(DropdownMenuItem, { onSelect: () => onPrinterToevoegen(r.naam), children: [_jsx(Plus, { className: "mr-2 h-4 w-4" }), " Printer toevoegen"] }), _jsxs(DropdownMenuItem, { onSelect: () => onVernieuw(), children: [_jsx(RefreshCw, { className: "mr-2 h-4 w-4" }), " Gegevens vernieuwen"] })] })] })] }) })] }, r.id));
15
+ return (_jsxs(TableRow, { children: [_jsx(TableCell, { className: "font-medium", children: r.naam }), _jsx(TableCell, { className: "text-muted-foreground", children: r.locatie }), _jsx(TableCell, { children: _jsxs("span", { className: "flex items-center gap-2 text-sm", children: [_jsx("span", { className: `h-2 w-2 rounded-full ${r.online ? "bg-primary" : "bg-muted-foreground/40"}` }), r.online ? "Aan" : "Uit"] }) }), _jsx(TableCell, { children: _jsxs("div", { className: "w-40 space-y-1", children: [_jsx("span", { className: "text-sm", children: printerTellingTekst(r.telling) }), _jsx("div", { className: "bg-muted h-1.5 w-full overflow-hidden rounded-full", children: _jsx("div", { className: "bg-primary h-full", style: { width: `${deel}%` } }) })] }) }), _jsx(TableCell, { className: "text-right", children: _jsxs("div", { className: "flex justify-end gap-1", children: [_jsx(Button, { variant: "outline", size: "sm", asChild: true, children: _jsx(Link, { to: "/layouts-printers/printers/$computerId", params: { computerId: r.id }, children: "Configureren" }) }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "sm", "aria-label": "Meer", children: _jsx(MoreVertical, { className: "h-4 w-4" }) }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsxs(DropdownMenuItem, { onSelect: () => onPrinterToevoegen(r.naam), children: [_jsx(Plus, { className: "mr-2 h-4 w-4" }), " Printer toevoegen"] }), _jsxs(DropdownMenuItem, { onSelect: () => onVernieuw(), children: [_jsx(RefreshCw, { className: "mr-2 h-4 w-4" }), " Gegevens vernieuwen"] })] })] })] }) })] }, r.id));
15
16
  }) })] }) }));
16
17
  }
@@ -32,15 +32,20 @@ export { LOGO_BUCKET, LOGO_CATEGORIEEN, OPSLAG_ONTBREEKT, TOEGESTANE_LOGO_TYPES,
32
32
  export type { LogoModel, UploadInput } from './lib/logoLibrary.js';
33
33
  export { DOCUMENT_PROFIELEN, STICKER_FORMATEN, VERZENDLABEL_FORMATEN, configWaarde, documentProfiel, primaireProfielen, standaardConfig } from './lib/documentProfiles.js';
34
34
  export type { DocumentConfig, DocumentProfiel, InstellingDef, InstellingGroep, InstellingType } from './lib/documentProfiles.js';
35
- export { printerVoorFormaat, useFormaatPrinters, zetFormaatPrinter } from './lib/formaatPrinters.js';
35
+ export { printerVoorFormaat, useAlleFormaatPrinters, useFormaatPrinters, zetFormaatPrinter } from './lib/formaatPrinters.js';
36
+ export { BRONNEN, HERKOMSTEN, bronVoorDocument, useBronregels, verwijderBronregel, zetBronregel } from './lib/documentBron.js';
37
+ export type { Bron, Bronregel, Herkomst } from './lib/documentBron.js';
38
+ export { printerVoorWerkplekDocument, useWerkplekPrinters, verwijderWerkplekPrinter, zetWerkplekPrinter } from './lib/documentRoutering.js';
39
+ export type { WerkplekPrinter } from './lib/documentRoutering.js';
40
+ export { DocumentRouteringPage } from './components/DocumentRouteringPage.js';
36
41
  export type { FormaatPrinter } from './lib/formaatPrinters.js';
37
42
  export { DocumentSettingsPanel } from './components/DocumentSettingsPanel.js';
38
- export { DOCUMENT_TYPES, ELEMENT_STANDAARD, PAPIERFORMATEN, STANDAARD_KOLOMMEN, STANDAARD_STIJL, documentTypeLabel } from './lib/documentTypes.js';
43
+ export { DOCUMENT_TYPES, ELEMENT_STANDAARD, FLORIDAY_LAYOUT_TOELICHTING, FLORIDAY_SYSTEEM_LAYOUTS, PAPIERFORMATEN, STANDAARD_KOLOMMEN, STANDAARD_LAYOUTS, STANDAARD_LAYOUT_TOELICHTING, STANDAARD_STIJL, documentTypeLabel, isFloridayLayout } from './lib/documentTypes.js';
39
44
  export type { DocumentType, ElementConditie, ElementConfig, ElementStijl, ElementType, LayoutElementModel, LayoutModel, LayoutVariabele, PageSettings, PapierFormaatDef, TabelKolom } from './lib/documentTypes.js';
40
45
  export { alleEntiteiten, alleVelden, registreerEntiteit, veldRegisterSubscribe, zoekVeld } from './lib/fieldRegistry.js';
41
46
  export type { EntiteitDefinitie, VeldDefinitie, VeldSoort } from './lib/fieldRegistry.js';
42
47
  export { VOORBEELD_REGELS, bouwDocumentHtml, conditieVoldoet, voorbeeldContext, vulVelden } from './lib/layoutPreview.js';
43
- export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, maakLayout, maakPrintJob, toggleKoppeling, updateJobStatus, updateLayout, useLayoutDetail, useLayouts, usePrintJobs, usePrinters, useVersies, verwijderLayout, verwijderPrinter } from './lib/useDocumentData.js';
48
+ export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, maakLayout, maakPrintJob, toggleKoppeling, updateJobStatus, updateLayout, useLayoutDetail, useLayouts, usePrintJobs, usePrinters, useVersies, verwijderLayout, verwijderPrinter, zorgVoorFloridayLayouts } from './lib/useDocumentData.js';
44
49
  export type { PrintJobModel, PrinterModel } from './lib/useDocumentData.js';
45
50
  export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printerVoorWerkplek, printerVoorDocumenttype, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
46
51
  export type { PrintDocumentInput, PrintDocumentResult, PrintPdfInput, PrintHtmlInput, JobStatus, } from './lib/printApi.js';
@@ -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;AAEvD,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,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzc,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5P,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxJ,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACha,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7N,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChX,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxK,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9H,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChJ,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjN,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtH,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACvH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvR,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EAEvB,aAAa,EACb,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,eAAO,MAAM,YAAY,EAAE,UAkB1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist-lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // ============================================================================
2
2
  // src/index.ts — MODULE CONTRACT (layout-maker)
3
3
  // ============================================================================
4
- import { LayoutTemplate, Printer, FileText, ListChecks, Image } from "lucide-react";
4
+ import { LayoutTemplate, Printer, FileText, ListChecks, Image, Route } from "lucide-react";
5
5
  import './_core-safelist.js';
6
6
  export { LayoutsPage } from './components/LayoutsPage.js';
7
7
  export { PrintProgrammaUitleg, WerktHetNiet } from './components/PrintProgrammaUitleg.js';
@@ -29,12 +29,15 @@ export { BELADING_LABELS, DEMO_PRODUCTIEBON, EXTRA_LABELS, FUST_LABELS, LETTERTY
29
29
  export { LogoBibliotheekDialog } from './components/LogoBibliotheekDialog.js';
30
30
  export { LOGO_BUCKET, LOGO_CATEGORIEEN, OPSLAG_ONTBREEKT, TOEGESTANE_LOGO_TYPES, bestaatHash, bestandHash, bestandstypeVan, controleerLogoOpslag, downloadLogo, formatteerBytes, haalLogos, haalPrintLogos, leesAfmetingen, logoCategorieLabel, maakLogo, useLogoOpslag, useLogos, vertaalOpslagFout, vervangLogoBestand, verwijderLogo, werkLogoBij } from './lib/logoLibrary.js';
31
31
  export { DOCUMENT_PROFIELEN, STICKER_FORMATEN, VERZENDLABEL_FORMATEN, configWaarde, documentProfiel, primaireProfielen, standaardConfig } from './lib/documentProfiles.js';
32
- export { printerVoorFormaat, useFormaatPrinters, zetFormaatPrinter } from './lib/formaatPrinters.js';
32
+ export { printerVoorFormaat, useAlleFormaatPrinters, useFormaatPrinters, zetFormaatPrinter } from './lib/formaatPrinters.js';
33
+ export { BRONNEN, HERKOMSTEN, bronVoorDocument, useBronregels, verwijderBronregel, zetBronregel } from './lib/documentBron.js';
34
+ export { printerVoorWerkplekDocument, useWerkplekPrinters, verwijderWerkplekPrinter, zetWerkplekPrinter } from './lib/documentRoutering.js';
35
+ export { DocumentRouteringPage } from './components/DocumentRouteringPage.js';
33
36
  export { DocumentSettingsPanel } from './components/DocumentSettingsPanel.js';
34
- export { DOCUMENT_TYPES, ELEMENT_STANDAARD, PAPIERFORMATEN, STANDAARD_KOLOMMEN, STANDAARD_STIJL, documentTypeLabel } from './lib/documentTypes.js';
37
+ export { DOCUMENT_TYPES, ELEMENT_STANDAARD, FLORIDAY_LAYOUT_TOELICHTING, FLORIDAY_SYSTEEM_LAYOUTS, PAPIERFORMATEN, STANDAARD_KOLOMMEN, STANDAARD_LAYOUTS, STANDAARD_LAYOUT_TOELICHTING, STANDAARD_STIJL, documentTypeLabel, isFloridayLayout } from './lib/documentTypes.js';
35
38
  export { alleEntiteiten, alleVelden, registreerEntiteit, veldRegisterSubscribe, zoekVeld } from './lib/fieldRegistry.js';
36
39
  export { VOORBEELD_REGELS, bouwDocumentHtml, conditieVoldoet, voorbeeldContext, vulVelden } from './lib/layoutPreview.js';
37
- export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, maakLayout, maakPrintJob, toggleKoppeling, updateJobStatus, updateLayout, useLayoutDetail, useLayouts, usePrintJobs, usePrinters, useVersies, verwijderLayout, verwijderPrinter } from './lib/useDocumentData.js';
40
+ export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, maakLayout, maakPrintJob, toggleKoppeling, updateJobStatus, updateLayout, useLayoutDetail, useLayouts, usePrintJobs, usePrinters, useVersies, verwijderLayout, verwijderPrinter, zorgVoorFloridayLayouts } from './lib/useDocumentData.js';
38
41
  export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printerVoorWerkplek, printerVoorDocumenttype, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
39
42
  export { bedoeldePrinter, drukAf, formaatDef, paginaCss } from './lib/browserPrint.js';
40
43
  export { printDirect } from './lib/directPrint.js';
@@ -51,7 +54,7 @@ export { TemplateModuleLogo } from './components/TemplateModuleLogo.js';
51
54
  export const layoutmodule = {
52
55
  id: "layout-maker",
53
56
  name: "Layouts en printers",
54
- version: "1.8.1",
57
+ version: "1.12.0",
55
58
  nav: {
56
59
  label: "Layouts en printers",
57
60
  href: "/layouts-printers",
@@ -59,6 +62,7 @@ export const layoutmodule = {
59
62
  children: [
60
63
  { label: "Layouts", href: "/layouts-printers", icon: FileText },
61
64
  { label: "Printers", href: "/layouts-printers/printers", icon: Printer },
65
+ { label: "Routering", href: "/layouts-printers/routering", icon: Route },
62
66
  { label: "Printwachtrij", href: "/layouts-printers/wachtrij", icon: ListChecks },
63
67
  { label: "Logo's", href: "/layouts-printers/logos", icon: Image },
64
68
  ],