@flowselections/layout-maker 1.51.3 → 1.53.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 (53) hide show
  1. package/README.md +0 -1
  2. package/dist-lib/components/LivePrintstatusRegel.d.ts +2 -0
  3. package/dist-lib/components/LivePrintstatusRegel.d.ts.map +1 -0
  4. package/dist-lib/components/LivePrintstatusRegel.js +37 -0
  5. package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
  6. package/dist-lib/components/PrintQueuePage.js +78 -43
  7. package/dist-lib/components/PrintenPage.d.ts.map +1 -1
  8. package/dist-lib/components/PrintenPage.js +3 -2
  9. package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
  10. package/dist-lib/components/PrintplekDetailPage.js +30 -2
  11. package/dist-lib/index.d.ts +7 -1
  12. package/dist-lib/index.d.ts.map +1 -1
  13. package/dist-lib/index.js +6 -1
  14. package/dist-lib/integrations/supabase/moduleClient.d.ts +1 -31688
  15. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  16. package/dist-lib/integrations/supabase/types.d.ts +3362 -128
  17. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  18. package/dist-lib/lib/foutTekst.d.ts +10 -0
  19. package/dist-lib/lib/foutTekst.d.ts.map +1 -1
  20. package/dist-lib/lib/foutTekst.js +28 -0
  21. package/dist-lib/lib/printApi.d.ts +33 -0
  22. package/dist-lib/lib/printApi.d.ts.map +1 -1
  23. package/dist-lib/lib/printApi.js +45 -1
  24. package/dist-lib/lib/printQueue.server.d.ts +6 -0
  25. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  26. package/dist-lib/lib/printQueue.server.js +72 -20
  27. package/dist-lib/lib/printService.functions.d.ts +76 -0
  28. package/dist-lib/lib/printService.functions.d.ts.map +1 -1
  29. package/dist-lib/lib/printService.functions.js +130 -0
  30. package/dist-lib/lib/printService.server.d.ts +35 -0
  31. package/dist-lib/lib/printService.server.d.ts.map +1 -1
  32. package/dist-lib/lib/printService.server.js +104 -13
  33. package/dist-lib/lib/printnodeStatus.d.ts +14 -0
  34. package/dist-lib/lib/printnodeStatus.d.ts.map +1 -0
  35. package/dist-lib/lib/printnodeStatus.js +43 -0
  36. package/dist-lib/lib/printnodeWebhook.d.ts +23 -0
  37. package/dist-lib/lib/printnodeWebhook.d.ts.map +1 -0
  38. package/dist-lib/lib/printnodeWebhook.js +137 -0
  39. package/dist-lib/lib/printnodeWebhookBeheer.server.d.ts +45 -0
  40. package/dist-lib/lib/printnodeWebhookBeheer.server.d.ts.map +1 -0
  41. package/dist-lib/lib/printnodeWebhookBeheer.server.js +116 -0
  42. package/dist-lib/lib/queueTick.d.ts.map +1 -1
  43. package/dist-lib/lib/queueTick.js +9 -0
  44. package/dist-lib/lib/shellAdres.d.ts +10 -0
  45. package/dist-lib/lib/shellAdres.d.ts.map +1 -0
  46. package/dist-lib/lib/shellAdres.js +36 -0
  47. package/dist-lib/lib/standaardLayouts.server.d.ts +6 -0
  48. package/dist-lib/lib/standaardLayouts.server.d.ts.map +1 -0
  49. package/dist-lib/lib/standaardLayouts.server.js +61 -0
  50. package/dist-lib/lib/useDocumentData.d.ts +10 -1
  51. package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
  52. package/dist-lib/lib/useDocumentData.js +16 -117
  53. package/package.json +2 -2
package/README.md CHANGED
@@ -6,7 +6,6 @@ This project was built with [Lovable](https://lovable.dev).
6
6
 
7
7
  ## Build with Lovable
8
8
 
9
- Continue developing this project in the [Lovable editor](https://lovable.dev/projects/4735fccb-b385-4b48-b4f8-ef135f63f4f7).
10
9
 
11
10
  - **Ship faster**: describe what you want to build and Lovable handles the code.
12
11
  - **Stay in sync**: every change made in Lovable is committed straight to this repository.
@@ -0,0 +1,2 @@
1
+ export declare function LivePrintstatusRegel(): import("react").JSX.Element;
2
+ //# sourceMappingURL=LivePrintstatusRegel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LivePrintstatusRegel.d.ts","sourceRoot":"","sources":["../../src/components/LivePrintstatusRegel.tsx"],"names":[],"mappings":"AAWA,wBAAgB,oBAAoB,gCA0CnC"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // ============================================================================
3
+ // src/components/LivePrintstatusRegel.tsx — één regel "Live printstatus: aan /
4
+ // uit" met de knop "Opnieuw koppelen" (alleen voor herstel).
5
+ // ============================================================================
6
+ import { useQuery, useQueryClient } from "@tanstack/react-query";
7
+ import { useServerFn } from "@tanstack/react-start";
8
+ import { useState } from "react";
9
+ import { Badge, Button, toast } from "@flowselections/core";
10
+ import { webhookOpnieuwKoppelen, webhookStatus } from "../lib/printService.functions.js";
11
+ export function LivePrintstatusRegel() {
12
+ const haal = useServerFn(webhookStatus);
13
+ const koppel = useServerFn(webhookOpnieuwKoppelen);
14
+ const qc = useQueryClient();
15
+ const [bezig, setBezig] = useState(false);
16
+ const { data } = useQuery({ queryKey: ["printnode-webhook-status"], queryFn: () => haal(), refetchInterval: 60000 });
17
+ const s = data && data.ok ? data : null;
18
+ const aan = !!s?.aan;
19
+ return (_jsxs("div", { className: "mb-4 flex flex-wrap items-center gap-3 rounded-md border border-border bg-card px-4 py-3 text-sm", children: [_jsx("span", { className: "font-medium text-foreground", children: "Live printstatus:" }), _jsx(Badge, { variant: aan ? "default" : "secondary", children: aan ? "aan" : "uit" }), _jsx("span", { className: "text-muted-foreground", children: aan
20
+ ? s?.laatstOntvangenOp
21
+ ? `laatste melding ${new Date(s.laatstOntvangenOp).toLocaleString("nl-NL")}`
22
+ : "gekoppeld, wacht op de eerste melding van PrintNode"
23
+ : s?.fout ?? "nog niet gekoppeld — de status wordt elke paar minuten opgevraagd" }), s?.melding && _jsxs("span", { className: "text-muted-foreground", children: ["\u00B7 ", s.melding] }), _jsx(Button, { size: "sm", variant: "outline", className: "ml-auto", disabled: bezig, onClick: async () => {
24
+ setBezig(true);
25
+ try {
26
+ const r = await koppel();
27
+ if (r.ok)
28
+ toast.success("Live printstatus opnieuw gekoppeld");
29
+ else
30
+ toast.error(r.reden);
31
+ }
32
+ finally {
33
+ setBezig(false);
34
+ qc.invalidateQueries({ queryKey: ["printnode-webhook-status"] });
35
+ }
36
+ }, children: bezig ? "Bezig…" : "Opnieuw koppelen" })] }));
37
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"PrintQueuePage.d.ts","sourceRoot":"","sources":["../../src/components/PrintQueuePage.tsx"],"names":[],"mappings":"AAkFA,wBAAgB,cAAc,gCA4T7B"}
1
+ {"version":3,"file":"PrintQueuePage.d.ts","sourceRoot":"","sources":["../../src/components/PrintQueuePage.tsx"],"names":[],"mappings":"AAkFA,wBAAgB,cAAc,gCAiX7B"}
@@ -1,11 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useMemo, useRef, useState } from "react";
2
+ import { useEffect, 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
4
  import { RotateCcw, Search, XCircle } from "lucide-react";
5
5
  import { bijgewerktTekst, useAutoRefresh } from "../lib/useAutoRefresh.js";
6
6
  import { PrintStatusBanner } from "./PrintStatusBanner.js";
7
- import { maakPrintJob, updateJobStatus, useLayouts, usePrinters, usePrintJobs, usePrintPlekNamen, } from "../lib/useDocumentData.js";
8
- import { annuleerPrintOpdrachten, printStatus } from "../lib/printService.functions.js";
7
+ import { useLayouts, usePrinters, usePrintJobs, usePrintPlekNamen, } from "../lib/useDocumentData.js";
8
+ import { annuleerPrintOpdrachten, opnieuwPrinten, printTellingen } from "../lib/printService.functions.js";
9
+ import { opnieuwActie, printnodeStatusLabel, SCANBARE_SOORTEN } from "../lib/printnodeStatus.js";
10
+ import { supabase } from "../lib/supabaseClient.js";
9
11
  import { vraagWachtrijRonde } from "../lib/queueTickClient.js";
10
12
  import { documentTypeLabel } from "../lib/documentTypes.js";
11
13
  import { jobPlekLabel } from "../lib/printQueue.js";
@@ -73,12 +75,58 @@ export function PrintQueuePage() {
73
75
  return false;
74
76
  return true;
75
77
  });
76
- const tellingen = useMemo(() => {
77
- const t = { wachtend: 0, bezig: 0, voltooid: 0, mislukt: 0, geannuleerd: 0 };
78
- for (const j of jobs)
79
- t[j.status] = (t[j.status] ?? 0) + 1;
80
- return t;
81
- }, [jobs]);
78
+ // Echte tellingen over alle opdrachten (de lijst toont alleen de laatste 200).
79
+ const [tellingen, setTellingen] = useState({});
80
+ const herlaadTellingen = async () => {
81
+ try {
82
+ const t = await printTellingen();
83
+ if (t && typeof t === "object")
84
+ setTellingen(t);
85
+ }
86
+ catch {
87
+ /* tellingen blijven staan */
88
+ }
89
+ };
90
+ const printerById = useMemo(() => new Map(printers.map((p) => [p.id, p])), [printers]);
91
+ // "Gescand": goedgekeurde controlescan van de kar (match op cart_id). Alleen lezen.
92
+ const [gescand, setGescand] = useState(new Set());
93
+ const cartIds = useMemo(() => Array.from(new Set(jobs
94
+ .filter((j) => SCANBARE_SOORTEN.has(j.documenttype))
95
+ .map((j) => String(j.payload?.["cart_id"] ?? ""))
96
+ .filter((c) => c.length > 0))).slice(0, 200), [jobs]);
97
+ useEffect(() => {
98
+ if (cartIds.length === 0)
99
+ return;
100
+ let actief = true;
101
+ void supabase
102
+ .from("logistics_control_scan")
103
+ .select("cart_id")
104
+ .in("cart_id", cartIds)
105
+ .not("approved_at", "is", null)
106
+ .then(({ data }) => {
107
+ if (!actief)
108
+ return;
109
+ const rijen = Array.isArray(data) ? data : [];
110
+ setGescand(new Set(rijen.map((r) => String(r.cart_id ?? "")).filter(Boolean)));
111
+ });
112
+ return () => {
113
+ actief = false;
114
+ };
115
+ }, [cartIds]);
116
+ // Live bijwerken (webhook en wachtrij schrijven in print_jobs).
117
+ useEffect(() => {
118
+ const kanaal = supabase
119
+ .channel("printwachtrij-live")
120
+ .on("postgres_changes", { event: "*", schema: "public", table: "print_jobs" }, () => {
121
+ void reload(true);
122
+ void herlaadTellingen();
123
+ })
124
+ .subscribe();
125
+ return () => {
126
+ void supabase.removeChannel(kanaal);
127
+ };
128
+ // eslint-disable-next-line react-hooks/exhaustive-deps
129
+ }, [reload]);
82
130
  const jobsRef = useRef(jobs);
83
131
  jobsRef.current = jobs;
84
132
  const lopende = jobs.some((j) => j.status === "wachtend" || j.status === "bezig");
@@ -94,19 +142,9 @@ export function PrintQueuePage() {
94
142
  setTickFout(e instanceof Error ? e.message : "Achtergrondprinten werkt nu niet.");
95
143
  }
96
144
  }
97
- const open = jobsRef.current.filter((j) => j.extern_job_id && (j.status === "bezig" || j.status === "wachtend"));
98
- for (const j of open) {
99
- try {
100
- const res = await printStatus({ data: { externJobId: String(j.extern_job_id) } });
101
- if (!res.ok)
102
- break;
103
- if (res.status !== j.status)
104
- await updateJobStatus(j.id, res.status);
105
- }
106
- catch {
107
- break;
108
- }
109
- }
145
+ // Statussen worden op de server bijgewerkt (webhook + terugval-polling);
146
+ // deze pagina schrijft zelf niets.
147
+ await herlaadTellingen();
110
148
  await reload(true);
111
149
  };
112
150
  const bijgewerkt = useAutoRefresh(ronde, lopende ? 5000 : 20000);
@@ -137,31 +175,28 @@ export function PrintQueuePage() {
137
175
  ? layoutNaam.get(j.gebruikte_layout_id) ?? "Onbekende layout"
138
176
  : j.gebruikte_bron
139
177
  ? "geen layout"
140
- : "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.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: [_jsxs(Button, { variant: "ghost", size: "sm", onClick: async () => {
141
- if (!j.layout_id)
142
- return;
178
+ : "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) ?? "—" : "—" }), _jsxs(TableCell, { children: [_jsx(Badge, { variant: STATUS_VARIANT[j.status] ?? "outline", children: printnodeStatusLabel(j) }), gescand.has(String(j.payload?.["cart_id"] ?? "")) &&
179
+ SCANBARE_SOORTEN.has(j.documenttype) &&
180
+ !j.is_herprint && j.status === "voltooid" && (_jsx(Badge, { variant: "default", className: "ml-2", children: "Gescand" })), j.printnode_bericht && j.status === "mislukt" && (_jsx("span", { className: "block text-xs text-destructive", children: j.printnode_bericht }))] }), _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: [opnieuwActie(j) && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: async () => {
181
+ const pr = j.printer_id ? printerById.get(j.printer_id) : null;
182
+ if (pr && !pr.online) {
183
+ const door = window.confirm(`Printer "${pr.naam}" (of de computer) is nu offline. De opdracht blijft wachten tot hij weer aan staat, en verloopt anders. Toch versturen?`);
184
+ if (!door)
185
+ return;
186
+ }
143
187
  try {
144
- await maakPrintJob({
145
- layout_id: j.layout_id,
146
- printer_id: j.printer_id,
147
- documenttype: j.documenttype,
148
- documentnaam: j.documentnaam ?? "Herprint",
149
- kopieen: j.kopieen ?? 1,
150
- is_herprint: true,
151
- bron_job_id: j.id,
152
- payload: {
153
- ...(j.payload && typeof j.payload === "object" ? j.payload : {}),
154
- is_herprint: true,
155
- bron_job_id: j.id,
156
- },
157
- });
188
+ const r = await opnieuwPrinten({ data: { jobId: j.id } });
189
+ if (!r.ok) {
190
+ toast.error(r.fout);
191
+ return;
192
+ }
158
193
  toast.success("Opnieuw in de wachtrij gezet");
159
- void reload();
194
+ void reload(true);
160
195
  }
161
- catch {
162
- toast.error("Herprint mislukt");
196
+ catch (fout) {
197
+ toast.error(fout instanceof Error ? fout.message : "Opnieuw printen mislukt");
163
198
  }
164
- }, children: [_jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), " Opnieuw"] }), (j.status === "wachtend" || j.status === "bezig") && (_jsx(Button, { variant: "ghost", size: "sm", onClick: async () => {
199
+ }, children: [_jsx(RotateCcw, { className: "mr-2 h-4 w-4" }), opnieuwActie(j) === "opnieuw_proberen" ? "Opnieuw proberen" : "Opnieuw printen"] })), (j.status === "wachtend" || j.status === "bezig") && (_jsx(Button, { variant: "ghost", size: "sm", onClick: async () => {
165
200
  try {
166
201
  const resultaat = await annuleerPrintOpdrachten({ data: { jobIds: [j.id] } });
167
202
  if (resultaat.externMislukt > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"PrintenPage.d.ts","sourceRoot":"","sources":["../../src/components/PrintenPage.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,WAAW,CAAC,EAC1B,GAAoB,GACrB,EAAE;IACD,GAAG,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC;CACpC,+BAsBA"}
1
+ {"version":3,"file":"PrintenPage.d.ts","sourceRoot":"","sources":["../../src/components/PrintenPage.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,WAAW,CAAC,EAC1B,GAAoB,GACrB,EAAE;IACD,GAAG,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC;CACpC,+BAuBA"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  // ============================================================================
3
3
  // src/components/PrintenPage.tsx — één menu-item "Printen" met tabbladen voor
4
4
  // printplekken (plekken, computers en printers samen) en standaardregels.
@@ -8,6 +8,7 @@ import { MapPin, Route as RouteIcon } from "lucide-react";
8
8
  import { ModuleTabs } from "./ModuleTabs.js";
9
9
  import { PrintplekkenPage } from "./PrintplekkenPage.js";
10
10
  import { DocumentRouteringPage } from "./DocumentRouteringPage.js";
11
+ import { LivePrintstatusRegel } from "./LivePrintstatusRegel.js";
11
12
  const TABS = [
12
13
  {
13
14
  id: "printplekken",
@@ -18,5 +19,5 @@ const TABS = [
18
19
  ];
19
20
  export function PrintenPage({ tab = "printplekken", }) {
20
21
  const [actiefTab, setActiefTab] = useState(tab);
21
- return (_jsx(_Fragment, { children: _jsx(ModuleTabs, { titel: "Printen", omschrijving: "Stel per plek in het bedrijf in welke computers, printers en documenten daar horen.", tabs: TABS, actiefTab: actiefTab, onTabWijzig: (nieuwTab) => setActiefTab(nieuwTab === "routering" ? "routering" : "printplekken"), children: actiefTab === "routering" ? (_jsx(DocumentRouteringPage, { ingebed: true })) : (_jsx(PrintplekkenPage, { ingebed: true })) }) }));
22
+ return (_jsx(_Fragment, { children: _jsxs(ModuleTabs, { titel: "Printen", omschrijving: "Stel per plek in het bedrijf in welke computers, printers en documenten daar horen.", tabs: TABS, actiefTab: actiefTab, onTabWijzig: (nieuwTab) => setActiefTab(nieuwTab === "routering" ? "routering" : "printplekken"), children: [_jsx(LivePrintstatusRegel, {}), actiefTab === "routering" ? (_jsx(DocumentRouteringPage, { ingebed: true })) : (_jsx(PrintplekkenPage, { ingebed: true }))] }) }));
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PrintplekDetailPage.d.ts","sourceRoot":"","sources":["../../src/components/PrintplekDetailPage.tsx"],"names":[],"mappings":"AA8DA,wBAAgB,mBAAmB,gCAmmBlC"}
1
+ {"version":3,"file":"PrintplekDetailPage.d.ts","sourceRoot":"","sources":["../../src/components/PrintplekDetailPage.tsx"],"names":[],"mappings":"AA+DA,wBAAgB,mBAAmB,gCAooBlC"}
@@ -19,6 +19,7 @@ import { DOCUMENT_TYPES, documentTypeLabel } from "../lib/documentTypes.js";
19
19
  import { drukTestpaginaAf } from "../lib/testpagina.js";
20
20
  import { TestprintDialog } from "./TestprintDialog.js";
21
21
  import { leesbareFout } from "../lib/foutTekst.js";
22
+ import { supabase } from "../lib/supabaseClient.js";
22
23
  import { useRouteringOverzicht } from "../lib/printRoutering.js";
23
24
  const BRON_LABEL = {
24
25
  printplek: "Printplek-eigen",
@@ -35,6 +36,30 @@ export function PrintplekDetailPage() {
35
36
  const [verwijderOpen, setVerwijderOpen] = useState(false);
36
37
  const { plekken, computers: plekComputers, regels, koppelingen, toegewezen, reload } = usePrintplekken();
37
38
  const { computers, reload: herlaadComputers } = useComputers();
39
+ // Live computerstatus uit de PrintNode-webhook, op PrintNode-computer-id.
40
+ const [statusPerId, setStatusPerId] = useState(new Map());
41
+ useEffect(() => {
42
+ const laad = async () => {
43
+ const { data } = await supabase.from("print_computer_status").select("extern_computer_id, verbonden");
44
+ const rijen = Array.isArray(data) ? data : [];
45
+ setStatusPerId(new Map(rijen.map((r) => [String(r.extern_computer_id), !!r.verbonden])));
46
+ };
47
+ void laad();
48
+ const kanaal = supabase
49
+ .channel("computerstatus-live")
50
+ .on("postgres_changes", { event: "*", schema: "public", table: "print_computer_status" }, () => void laad())
51
+ .subscribe();
52
+ return () => {
53
+ void supabase.removeChannel(kanaal);
54
+ };
55
+ }, []);
56
+ const computerAan = (naam) => {
57
+ const k = computers.find((x) => x.naam === naam);
58
+ if (!k)
59
+ return false;
60
+ const live = statusPerId.get(String(k.id));
61
+ return live ?? k.online;
62
+ };
38
63
  const { printers } = usePrinters();
39
64
  const { gevonden } = useNetwerkPrinters();
40
65
  const [naamBewerken, setNaamBewerken] = useState(false);
@@ -47,6 +72,9 @@ export function PrintplekDetailPage() {
47
72
  const [teVerwijderen, setTeVerwijderen] = useState(null);
48
73
  const plek = plekken.find((p) => p.id === plekId) ?? null;
49
74
  const eigenComputers = plekComputers.filter((c) => c.print_plek_id === plekId);
75
+ const uitgevallen = eigenComputers
76
+ .filter((c) => computers.some((k) => k.naam === c.computer_naam) && !computerAan(c.computer_naam))
77
+ .map((c) => c.computer_naam);
50
78
  const vrijeComputers = computers.filter((c) => !plekComputers.some((pc) => pc.computer_naam === c.naam));
51
79
  const andereplekken = plekken.filter((p) => p.id !== plekId);
52
80
  // De live scan bepaalt alleen online-status en op welke computer een printer hangt.
@@ -186,7 +214,7 @@ export function PrintplekDetailPage() {
186
214
  }, children: _jsx(Check, { className: "h-4 w-4" }) }), _jsx(Button, { size: "icon", variant: "ghost", onClick: () => setNaamBewerken(false), children: _jsx(X, { className: "h-4 w-4" }) })] })) : (_jsx("h1", { className: "cursor-pointer text-xl font-semibold", onClick: () => {
187
215
  setNaam(plek.naam);
188
216
  setNaamBewerken(true);
189
- }, children: plek.naam })), _jsx("p", { className: "text-muted-foreground text-sm", children: plek.omschrijving ?? "Hier stel je alles in wat er op deze plek wordt afgedrukt." })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "outline", onClick: () => setTestprintOpen(true), children: [_jsx(Printer, { className: "mr-2 h-4 w-4" }), " Testprint controleren"] }), _jsxs(Button, { variant: "ghost", className: "text-destructive", onClick: () => setVerwijderOpen(true), children: [_jsx(Trash2, { className: "mr-2 h-4 w-4" }), " Verwijderen"] })] })] }), _jsx(PrintplekVerwijderenDialog, { plek: verwijderOpen ? { id: plek.id, naam: plek.naam } : null, onOpenChange: setVerwijderOpen, onKlaar: () => void navigate({ to: "/layouts-printers/printplekken" }) }), _jsx(TestprintDialog, { open: testprintOpen, onOpenChange: setTestprintOpen, printplekId: plekId, printplekNaam: plek.naam }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsxs(CardTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Monitor, { className: "h-4 w-4" }), " Computers op deze plek"] }), _jsx(CardDescription, { children: "Het bolletje laat zien of de computer nu aan staat." })] }), vrijeComputers.length > 0 ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("select", { className: selectKlasse, value: computerToevoegen, onChange: (e) => setComputerToevoegen(e.target.value), "aria-label": "Computer kiezen", children: [_jsx("option", { value: "", children: "Computer kiezen\u2026" }), vrijeComputers.map((c) => (_jsx("option", { value: c.naam, children: c.naam }, c.id)))] }), _jsxs(Button, { size: "sm", disabled: !computerToevoegen, onClick: async () => {
217
+ }, children: plek.naam })), _jsx("p", { className: "text-muted-foreground text-sm", children: plek.omschrijving ?? "Hier stel je alles in wat er op deze plek wordt afgedrukt." })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "outline", onClick: () => setTestprintOpen(true), children: [_jsx(Printer, { className: "mr-2 h-4 w-4" }), " Testprint controleren"] }), _jsxs(Button, { variant: "ghost", className: "text-destructive", onClick: () => setVerwijderOpen(true), children: [_jsx(Trash2, { className: "mr-2 h-4 w-4" }), " Verwijderen"] })] })] }), _jsx(PrintplekVerwijderenDialog, { plek: verwijderOpen ? { id: plek.id, naam: plek.naam } : null, onOpenChange: setVerwijderOpen, onKlaar: () => void navigate({ to: "/layouts-printers/printplekken" }) }), _jsx(TestprintDialog, { open: testprintOpen, onOpenChange: setTestprintOpen, printplekId: plekId, printplekNaam: plek.naam }), uitgevallen.length > 0 && (_jsxs("div", { role: "alert", className: "rounded-lg border border-destructive bg-destructive/10 px-4 py-3 text-sm text-destructive", children: [_jsx("strong", { children: "Computer niet verbonden:" }), " ", uitgevallen.join(", "), ". Opdrachten voor deze plek worden pas geprint als de computer weer verbonden is, en verlopen anders."] })), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsxs(CardTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Monitor, { className: "h-4 w-4" }), " Computers op deze plek"] }), _jsx(CardDescription, { children: "Het bolletje laat zien of de computer nu aan staat." })] }), vrijeComputers.length > 0 ? (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("select", { className: selectKlasse, value: computerToevoegen, onChange: (e) => setComputerToevoegen(e.target.value), "aria-label": "Computer kiezen", children: [_jsx("option", { value: "", children: "Computer kiezen\u2026" }), vrijeComputers.map((c) => (_jsx("option", { value: c.naam, children: c.naam }, c.id)))] }), _jsxs(Button, { size: "sm", disabled: !computerToevoegen, onClick: async () => {
190
218
  try {
191
219
  await koppelComputerAanPrintplek(plekId, computerToevoegen);
192
220
  setComputerToevoegen("");
@@ -196,7 +224,7 @@ export function PrintplekDetailPage() {
196
224
  toast.error("Toevoegen mislukt");
197
225
  }
198
226
  }, children: [_jsx(Plus, { className: "mr-1 h-4 w-4" }), " Computer toevoegen"] })] })) : null] }), _jsx(CardContent, { className: "space-y-2", children: eigenComputers.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "Nog geen computers gekoppeld." })) : (eigenComputers.map((c) => {
199
- const aan = computers.find((k) => k.naam === c.computer_naam)?.online ?? false;
227
+ const aan = computerAan(c.computer_naam);
200
228
  return (_jsxs("div", { className: "flex items-center gap-3 rounded-lg border px-3 py-2 text-sm", children: [_jsx("span", { className: `h-2 w-2 rounded-full ${aan ? "bg-emerald-500" : "bg-muted-foreground"}` }), _jsx("span", { className: "min-w-0 flex-1 truncate font-medium", children: c.computer_naam }), _jsx("span", { className: "text-muted-foreground text-xs", children: aan ? "Aan" : "Uit" }), _jsxs(Button, { size: "sm", variant: "ghost", className: "text-destructive", onClick: () => setTeVerwijderen(c.computer_naam), children: [_jsx(Trash2, { className: "mr-1 h-3.5 w-3.5" }), " Verwijderen"] })] }, c.id));
201
229
  })) })] }), _jsx(ComputerVerwijderenDialog, { open: !!teVerwijderen, onOpenChange: (v) => !v && setTeVerwijderen(null), computerNaam: teVerwijderen, printplekId: plekId, printers: teVerwijderenPrinters, andereplekken: andereplekken, onKlaar: () => {
202
230
  void herlaadComputers(true);
@@ -66,7 +66,13 @@ export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, layoutCo
66
66
  export { jobPickstation, jobPlekLabel, jobPrintPlekId, jobWerkplek } from './lib/printQueue.js';
67
67
  export type { PlekNamen } from './lib/printQueue.js';
68
68
  export type { LayoutConflict, PrintJobModel, PrinterModel } from './lib/useDocumentData.js';
69
- export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printVerzendbriefVoorKar, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
69
+ export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printVerzendbriefVoorKar, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, DubbelOrigineelFout, meldMisluktePrintopdracht, } from './lib/printApi.js';
70
+ export type { MisluktePrintopdrachtInput } from './lib/printApi.js';
71
+ export { leesDubbelOrigineel, leesbareFout, type DubbelOrigineel } from './lib/foutTekst.js';
72
+ export { printnodeStatusLabel, PRINTNODE_STATUS_LABEL } from './lib/printnodeStatus.js';
73
+ export { behandelPrintNodeWebhook } from './lib/printnodeWebhook.js';
74
+ export { beoordeelShellAdres } from './lib/shellAdres.js';
75
+ export { LivePrintstatusRegel } from './components/LivePrintstatusRegel.js';
70
76
  export type { PrintDocumentInput, PrintDocumentResult, PrintPdfInput, PrintHtmlInput, VerzendbriefVoorKarInput, JobStatus, } from './lib/printApi.js';
71
77
  export { printDirect } from './lib/directPrint.js';
72
78
  export type { DirectPrintOpdracht, DirectPrintResultaat } from './lib/directPrint.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,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,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,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,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,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,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,eAAe,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvkB,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,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9R,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,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,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,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1H,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5H,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzI,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1Q,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,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACzV,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7F,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACzF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,SAAS,EACT,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EAAE,iBAAiB,EAE1C,aAAa,EACb,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,wBAAwB,EACxB,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,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;AAErD,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;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,eAAe,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,cAAc,EACd,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,eAAO,MAAM,YAAY,EAAE,UAkB1B,CAAC;AAGF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EACL,aAAa,EACb,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,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
@@ -51,7 +51,12 @@ export { alleEntiteiten, alleVelden, registreerEntiteit, veldRegisterSubscribe,
51
51
  export { VOORBEELD_REGELS, bouwDocumentHtml, conditieVoldoet, voorbeeldContext, vulVelden } from './lib/layoutPreview.js';
52
52
  export { bewaarElementen, bewaarPrinter, bewaarVersie, dupliceerLayout, layoutConflicten, maakLayout, maakStandaardLayout, maakPrintJob, updateJobStatus, updateLayout, useLayoutDetail, useLayouts, usePrintJobs, usePrintPlekNamen, usePrinters, useVersies, verwijderLayout, verwijderPrinter, zorgVoorFloridayLayouts } from './lib/useDocumentData.js';
53
53
  export { jobPickstation, jobPlekLabel, jobPrintPlekId, jobWerkplek } from './lib/printQueue.js';
54
- export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printVerzendbriefVoorKar, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, } from './lib/printApi.js';
54
+ export { beschikbareLayouts, beschikbarePrinters, printDocument, printPdf, printHtml, printVerzendbriefVoorKar, printerVoorWerkplek, printerVoorDocumenttype, printerVoorLayout, volgJobStatus, DubbeleAanvraagFout, DubbelOrigineelFout, meldMisluktePrintopdracht, } from './lib/printApi.js';
55
+ export { leesDubbelOrigineel, leesbareFout } from './lib/foutTekst.js';
56
+ export { printnodeStatusLabel, PRINTNODE_STATUS_LABEL } from './lib/printnodeStatus.js';
57
+ export { behandelPrintNodeWebhook } from './lib/printnodeWebhook.js';
58
+ export { beoordeelShellAdres } from './lib/shellAdres.js';
59
+ export { LivePrintstatusRegel } from './components/LivePrintstatusRegel.js';
55
60
  export { printDirect } from './lib/directPrint.js';
56
61
  export { htmlNaarPdfBase64 } from './lib/documentPdf.js';
57
62
  export { supabase } from './lib/supabaseClient.js';