@flowselections/layout-maker 1.32.0 → 1.38.4
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/README.md +139 -139
- package/dist-lib/components/AfdrukKnop.d.ts +19 -19
- package/dist-lib/components/ComputersLijst.d.ts.map +1 -1
- package/dist-lib/components/ComputersLijst.js +5 -5
- package/dist-lib/components/DocumentenPage.d.ts.map +1 -1
- package/dist-lib/components/DocumentenPage.js +3 -2
- package/dist-lib/components/LayoutPrinterSelect.d.ts +8 -0
- package/dist-lib/components/LayoutPrinterSelect.d.ts.map +1 -0
- package/dist-lib/components/LayoutPrinterSelect.js +23 -0
- package/dist-lib/components/LayoutsPage.d.ts.map +1 -1
- package/dist-lib/components/LayoutsPage.js +16 -3
- package/dist-lib/components/NetwerkPrintersDialog.d.ts +7 -7
- 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 +6 -2
- 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 +55 -12
- package/dist-lib/components/PakbonSectiesPanel.d.ts +2 -2
- package/dist-lib/components/PakbonSectiesPanel.d.ts.map +1 -1
- package/dist-lib/components/PakbonSectiesPanel.js +7 -2
- package/dist-lib/components/PdfMapAutoSaver.d.ts +6 -0
- package/dist-lib/components/PdfMapAutoSaver.d.ts.map +1 -0
- package/dist-lib/components/PdfMapAutoSaver.js +12 -0
- package/dist-lib/components/PdfMapGlobaleBanner.d.ts +12 -0
- package/dist-lib/components/PdfMapGlobaleBanner.d.ts.map +1 -0
- package/dist-lib/components/PdfMapGlobaleBanner.js +30 -0
- package/dist-lib/components/PdfMapToestemmingBanner.d.ts +7 -0
- package/dist-lib/components/PdfMapToestemmingBanner.d.ts.map +1 -0
- package/dist-lib/components/PdfMapToestemmingBanner.js +139 -0
- package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
- package/dist-lib/components/PrintQueuePage.js +42 -3
- package/dist-lib/components/PrintenPage.d.ts.map +1 -1
- package/dist-lib/components/PrintenPage.js +3 -2
- package/dist-lib/components/PrinterSetupWizard.d.ts.map +1 -1
- package/dist-lib/components/PrinterSetupWizard.js +28 -5
- package/dist-lib/components/PrintersRedirectPage.d.ts +1 -1
- package/dist-lib/components/PrintersRedirectPage.js +14 -14
- package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
- package/dist-lib/components/PrintplekDetailPage.js +30 -4
- package/dist-lib/components/PrintplekWizard.d.ts.map +1 -1
- package/dist-lib/components/PrintplekWizard.js +81 -3
- package/dist-lib/components/ProductiebonBuilderPage.d.ts.map +1 -1
- package/dist-lib/components/ProductiebonBuilderPage.js +3 -1
- package/dist-lib/index.d.ts +10 -2
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +13 -2
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +1396 -727
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +1396 -727
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.js +1 -1
- package/dist-lib/integrations/supabase/moduleClient.d.ts +24008 -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 +1403 -750
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/aiLayout.functions.d.ts +1396 -727
- package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
- package/dist-lib/lib/aiLayout.server.js +9 -9
- package/dist-lib/lib/browserPrint.js +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/htmlPdf.server.d.ts.map +1 -1
- package/dist-lib/lib/htmlPdf.server.js +101 -6
- package/dist-lib/lib/layoutPreview.d.ts.map +1 -1
- package/dist-lib/lib/layoutPreview.js +11 -8
- package/dist-lib/lib/orderData.server.d.ts.map +1 -1
- package/dist-lib/lib/orderData.server.js +123 -10
- package/dist-lib/lib/pakbonBuilder.d.ts +28 -2
- package/dist-lib/lib/pakbonBuilder.d.ts.map +1 -1
- package/dist-lib/lib/pakbonBuilder.js +69 -8
- package/dist-lib/lib/pakbonHtml.d.ts +14 -2
- package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
- package/dist-lib/lib/pakbonHtml.js +155 -63
- 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 +105 -0
- package/dist-lib/lib/pdfJobSaver.d.ts +20 -0
- package/dist-lib/lib/pdfJobSaver.d.ts.map +1 -0
- package/dist-lib/lib/pdfJobSaver.js +173 -0
- package/dist-lib/lib/pdfMap.d.ts +48 -0
- package/dist-lib/lib/pdfMap.d.ts.map +1 -0
- package/dist-lib/lib/pdfMap.js +219 -0
- package/dist-lib/lib/pdfPrinter.d.ts +9 -0
- package/dist-lib/lib/pdfPrinter.d.ts.map +1 -0
- package/dist-lib/lib/pdfPrinter.js +34 -0
- package/dist-lib/lib/previewPdf.d.ts.map +1 -1
- package/dist-lib/lib/previewPdf.js +41 -9
- package/dist-lib/lib/printApi.d.ts.map +1 -1
- package/dist-lib/lib/printApi.js +9 -1
- package/dist-lib/lib/printQueue.server.d.ts +7 -0
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +346 -52
- package/dist-lib/lib/printService.functions.d.ts +5365 -2689
- package/dist-lib/lib/printService.functions.d.ts.map +1 -1
- package/dist-lib/lib/productiebonHtml.js +15 -15
- package/dist-lib/lib/profielHtml.js +18 -18
- package/dist-lib/lib/supabaseAdmin.server.d.ts +5 -5
- package/dist-lib/lib/supabaseAdmin.server.js +43 -43
- 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/testpagina.js +3 -3
- package/dist-lib/lib/testprint.js +4 -4
- package/dist-lib/lib/useDocumentData.d.ts +10 -0
- package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
- package/dist-lib/lib/useDocumentData.js +19 -0
- package/dist-lib/lib/voorbeeldPrint.d.ts +4 -0
- package/dist-lib/lib/voorbeeldPrint.d.ts.map +1 -1
- package/dist-lib/lib/voorbeeldPrint.js +13 -2
- package/package.json +151 -151
|
@@ -147,20 +147,20 @@ export function renderProductiebonDocument(config, gegevens, opties = {}) {
|
|
|
147
147
|
return inhoud ? `<div class="blok">${inhoud}</div>` : "";
|
|
148
148
|
})
|
|
149
149
|
.join("");
|
|
150
|
-
return `<!doctype html><html lang="nl"><head><meta charset="utf-8" />
|
|
151
|
-
<title>${esc(opties.titel ?? "Productiebon")}</title>
|
|
152
|
-
<style>
|
|
153
|
-
@page { size: ${b}mm ${h}mm; margin: ${marge}mm; }
|
|
154
|
-
* { box-sizing: border-box; }
|
|
155
|
-
html, body { margin: 0; padding: 0; }
|
|
156
|
-
body { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #111827; line-height: 1.35; }
|
|
157
|
-
.blok { margin-bottom: 2.5mm; }
|
|
158
|
-
.sectitel { font-size: 90%; font-weight: 600; text-transform: uppercase; color: #6b7280; margin-bottom: 0.6mm; }
|
|
159
|
-
.vet { font-weight: 600; }
|
|
160
|
-
.kv { display: flex; justify-content: space-between; gap: 3mm; }
|
|
161
|
-
.kv .k { color: #6b7280; }
|
|
162
|
-
.tabel { width: 100%; border-collapse: collapse; table-layout: fixed; }
|
|
163
|
-
.tabel th { text-align: left; font-weight: 600; }
|
|
164
|
-
.regel { padding: 0.4mm 0; }
|
|
150
|
+
return `<!doctype html><html lang="nl"><head><meta charset="utf-8" />
|
|
151
|
+
<title>${esc(opties.titel ?? "Productiebon")}</title>
|
|
152
|
+
<style>
|
|
153
|
+
@page { size: ${b}mm ${h}mm; margin: ${marge}mm; }
|
|
154
|
+
* { box-sizing: border-box; }
|
|
155
|
+
html, body { margin: 0; padding: 0; }
|
|
156
|
+
body { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #111827; line-height: 1.35; }
|
|
157
|
+
.blok { margin-bottom: 2.5mm; }
|
|
158
|
+
.sectitel { font-size: 90%; font-weight: 600; text-transform: uppercase; color: #6b7280; margin-bottom: 0.6mm; }
|
|
159
|
+
.vet { font-weight: 600; }
|
|
160
|
+
.kv { display: flex; justify-content: space-between; gap: 3mm; }
|
|
161
|
+
.kv .k { color: #6b7280; }
|
|
162
|
+
.tabel { width: 100%; border-collapse: collapse; table-layout: fixed; }
|
|
163
|
+
.tabel th { text-align: left; font-weight: 600; }
|
|
164
|
+
.regel { padding: 0.4mm 0; }
|
|
165
165
|
</style></head><body>${body}</body></html>`;
|
|
166
166
|
}
|
|
@@ -110,8 +110,8 @@ function regeltabel(regels) {
|
|
|
110
110
|
const eenheid = r["eenheid"] ?? "";
|
|
111
111
|
return `<tr><td>${esc(code)}</td><td>${esc(omschrijving)}</td><td style="text-align:right">${esc(aantal)}</td><td>${esc(eenheid)}</td></tr>`;
|
|
112
112
|
};
|
|
113
|
-
return `<table class="tabel"><colgroup><col style="width:20%" /><col style="width:52%" /><col style="width:16%" /><col style="width:12%" /></colgroup>
|
|
114
|
-
<thead><tr class="onder"><th>Code</th><th>Omschrijving</th><th style="text-align:right">Aantal</th><th>Eenheid</th></tr></thead>
|
|
113
|
+
return `<table class="tabel"><colgroup><col style="width:20%" /><col style="width:52%" /><col style="width:16%" /><col style="width:12%" /></colgroup>
|
|
114
|
+
<thead><tr class="onder"><th>Code</th><th>Omschrijving</th><th style="text-align:right">Aantal</th><th>Eenheid</th></tr></thead>
|
|
115
115
|
<tbody>${regels.map(rij).join("")}</tbody></table>`;
|
|
116
116
|
}
|
|
117
117
|
function totalenBlok(regels, velden) {
|
|
@@ -236,21 +236,21 @@ export function renderProfielDocument(documenttype, config, gegevens, opties = {
|
|
|
236
236
|
.map((groep) => groepHtml(groep, cfg, velden, data, opties))
|
|
237
237
|
.filter(Boolean)
|
|
238
238
|
.join("");
|
|
239
|
-
return `<!doctype html><html lang="nl"><head><meta charset="utf-8" />
|
|
240
|
-
<title>${esc(opties.titel ?? profiel.label)}</title>
|
|
241
|
-
<style>
|
|
242
|
-
@page { size: ${b}mm ${h}mm; margin: ${marge}mm; }
|
|
243
|
-
* { box-sizing: border-box; }
|
|
244
|
-
html, body { margin: 0; padding: 0; }
|
|
245
|
-
body { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #111827; line-height: 1.35; }
|
|
246
|
-
.blok { margin-bottom: 2.5mm; }
|
|
247
|
-
.kop { border-bottom: 0.3mm solid #d1d5db; padding-bottom: 1mm; }
|
|
248
|
-
.sectitel { font-size: 90%; font-weight: 600; text-transform: uppercase; color: #6b7280; margin-bottom: 0.6mm; }
|
|
249
|
-
.vet { font-weight: 600; }
|
|
250
|
-
.klein { font-size: 85%; color: #6b7280; }
|
|
251
|
-
.kv { display: flex; justify-content: space-between; gap: 3mm; }
|
|
252
|
-
.kv .k { color: #6b7280; }
|
|
253
|
-
.tabel { width: 100%; border-collapse: collapse; table-layout: fixed; }
|
|
254
|
-
.tabel th { text-align: left; font-weight: 600; }
|
|
239
|
+
return `<!doctype html><html lang="nl"><head><meta charset="utf-8" />
|
|
240
|
+
<title>${esc(opties.titel ?? profiel.label)}</title>
|
|
241
|
+
<style>
|
|
242
|
+
@page { size: ${b}mm ${h}mm; margin: ${marge}mm; }
|
|
243
|
+
* { box-sizing: border-box; }
|
|
244
|
+
html, body { margin: 0; padding: 0; }
|
|
245
|
+
body { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; color: #111827; line-height: 1.35; }
|
|
246
|
+
.blok { margin-bottom: 2.5mm; }
|
|
247
|
+
.kop { border-bottom: 0.3mm solid #d1d5db; padding-bottom: 1mm; }
|
|
248
|
+
.sectitel { font-size: 90%; font-weight: 600; text-transform: uppercase; color: #6b7280; margin-bottom: 0.6mm; }
|
|
249
|
+
.vet { font-weight: 600; }
|
|
250
|
+
.klein { font-size: 85%; color: #6b7280; }
|
|
251
|
+
.kv { display: flex; justify-content: space-between; gap: 3mm; }
|
|
252
|
+
.kv .k { color: #6b7280; }
|
|
253
|
+
.tabel { width: 100%; border-collapse: collapse; table-layout: fixed; }
|
|
254
|
+
.tabel th { text-align: left; font-weight: 600; }
|
|
255
255
|
</style></head><body>${kop}${body}</body></html>`;
|
|
256
256
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type SupabaseClient } from "@supabase/supabase-js";
|
|
2
|
-
/** Uitleg voor de gebruiker als de serverinstellingen ontbreken. */
|
|
3
|
-
export declare function adminConfiguratieFout(): string | null;
|
|
4
|
-
/** Lazy adminclient: pas bij het eerste gebruik worden de instellingen gelezen. */
|
|
5
|
-
export declare const adminDb: SupabaseClient<any, any, any, any, any>;
|
|
1
|
+
import { type SupabaseClient } from "@supabase/supabase-js";
|
|
2
|
+
/** Uitleg voor de gebruiker als de serverinstellingen ontbreken. */
|
|
3
|
+
export declare function adminConfiguratieFout(): string | null;
|
|
4
|
+
/** Lazy adminclient: pas bij het eerste gebruik worden de instellingen gelezen. */
|
|
5
|
+
export declare const adminDb: SupabaseClient<any, any, any, any, any>;
|
|
6
6
|
//# sourceMappingURL=supabaseAdmin.server.d.ts.map
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
// ============================================================================
|
|
2
|
-
// src/lib/supabaseAdmin.server.ts — adminclient die in elke shell werkt.
|
|
3
|
-
// Leest de service-role sleutel uit meerdere mogelijke namen, zodat de module
|
|
4
|
-
// niet afhankelijk is van hoe een shell zijn omgeving heeft ingericht.
|
|
5
|
-
// ============================================================================
|
|
6
|
-
import { createClient } from "@supabase/supabase-js";
|
|
7
|
-
function lees(...namen) {
|
|
8
|
-
for (const naam of namen) {
|
|
9
|
-
const waarde = process.env[naam];
|
|
10
|
-
if (waarde && waarde.trim().length > 0)
|
|
11
|
-
return waarde.trim();
|
|
12
|
-
}
|
|
13
|
-
return undefined;
|
|
14
|
-
}
|
|
15
|
-
/** Uitleg voor de gebruiker als de serverinstellingen ontbreken. */
|
|
16
|
-
export function adminConfiguratieFout() {
|
|
17
|
-
const url = lees("SUPABASE_URL", "VITE_SUPABASE_URL");
|
|
18
|
-
const key = lees("SERVICE_ROLE_KEY", "SUPABASE_SERVICE_ROLE_KEY");
|
|
19
|
-
if (url && key)
|
|
20
|
-
return null;
|
|
21
|
-
const mist = [!url ? "SUPABASE_URL" : null, !key ? "SERVICE_ROLE_KEY" : null]
|
|
22
|
-
.filter(Boolean)
|
|
23
|
-
.join(" en ");
|
|
24
|
-
return `Achtergrondprinten is niet ingesteld: ${mist} ontbreekt in deze omgeving.`;
|
|
25
|
-
}
|
|
26
|
-
function maakClient() {
|
|
27
|
-
const url = lees("SUPABASE_URL", "VITE_SUPABASE_URL");
|
|
28
|
-
const key = lees("SERVICE_ROLE_KEY", "SUPABASE_SERVICE_ROLE_KEY");
|
|
29
|
-
if (!url || !key)
|
|
30
|
-
throw new Error(adminConfiguratieFout() ?? "Serverinstellingen ontbreken.");
|
|
31
|
-
return createClient(url, key, {
|
|
32
|
-
auth: { storage: undefined, persistSession: false, autoRefreshToken: false },
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
let _client;
|
|
36
|
-
/** Lazy adminclient: pas bij het eerste gebruik worden de instellingen gelezen. */
|
|
37
|
-
export const adminDb = new Proxy({}, {
|
|
38
|
-
get(_t, prop, receiver) {
|
|
39
|
-
if (!_client)
|
|
40
|
-
_client = maakClient();
|
|
41
|
-
return Reflect.get(_client, prop, receiver);
|
|
42
|
-
},
|
|
43
|
-
});
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/supabaseAdmin.server.ts — adminclient die in elke shell werkt.
|
|
3
|
+
// Leest de service-role sleutel uit meerdere mogelijke namen, zodat de module
|
|
4
|
+
// niet afhankelijk is van hoe een shell zijn omgeving heeft ingericht.
|
|
5
|
+
// ============================================================================
|
|
6
|
+
import { createClient } from "@supabase/supabase-js";
|
|
7
|
+
function lees(...namen) {
|
|
8
|
+
for (const naam of namen) {
|
|
9
|
+
const waarde = process.env[naam];
|
|
10
|
+
if (waarde && waarde.trim().length > 0)
|
|
11
|
+
return waarde.trim();
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
/** Uitleg voor de gebruiker als de serverinstellingen ontbreken. */
|
|
16
|
+
export function adminConfiguratieFout() {
|
|
17
|
+
const url = lees("SUPABASE_URL", "VITE_SUPABASE_URL");
|
|
18
|
+
const key = lees("SERVICE_ROLE_KEY", "SUPABASE_SERVICE_ROLE_KEY");
|
|
19
|
+
if (url && key)
|
|
20
|
+
return null;
|
|
21
|
+
const mist = [!url ? "SUPABASE_URL" : null, !key ? "SERVICE_ROLE_KEY" : null]
|
|
22
|
+
.filter(Boolean)
|
|
23
|
+
.join(" en ");
|
|
24
|
+
return `Achtergrondprinten is niet ingesteld: ${mist} ontbreekt in deze omgeving.`;
|
|
25
|
+
}
|
|
26
|
+
function maakClient() {
|
|
27
|
+
const url = lees("SUPABASE_URL", "VITE_SUPABASE_URL");
|
|
28
|
+
const key = lees("SERVICE_ROLE_KEY", "SUPABASE_SERVICE_ROLE_KEY");
|
|
29
|
+
if (!url || !key)
|
|
30
|
+
throw new Error(adminConfiguratieFout() ?? "Serverinstellingen ontbreken.");
|
|
31
|
+
return createClient(url, key, {
|
|
32
|
+
auth: { storage: undefined, persistSession: false, autoRefreshToken: false },
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
let _client;
|
|
36
|
+
/** Lazy adminclient: pas bij het eerste gebruik worden de instellingen gelezen. */
|
|
37
|
+
export const adminDb = new Proxy({}, {
|
|
38
|
+
get(_t, prop, receiver) {
|
|
39
|
+
if (!_client)
|
|
40
|
+
_client = maakClient();
|
|
41
|
+
return Reflect.get(_client, prop, receiver);
|
|
42
|
+
},
|
|
43
|
+
});
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import type { Database } from "../integrations/supabase/types.js";
|
|
3
|
-
export declare const supabase: SupabaseClient<Database>;
|
|
1
|
+
export { supabase } from "../integrations/supabase/moduleClient.js";
|
|
4
2
|
//# sourceMappingURL=supabaseClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supabaseClient.d.ts","sourceRoot":"","sources":["../../src/lib/supabaseClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"supabaseClient.d.ts","sourceRoot":"","sources":["../../src/lib/supabaseClient.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
// ============================================================================
|
|
2
|
-
// src/lib/supabaseClient.ts —
|
|
2
|
+
// src/lib/supabaseClient.ts — compatibele module-export
|
|
3
3
|
// ============================================================================
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
|
|
7
|
-
// De cast is nodig omdat de core-typedefinities de layout- en printertabellen
|
|
8
|
-
// van deze module niet kennen.
|
|
9
|
-
import { supabase as coreSupabase } from "@flowselections/core";
|
|
10
|
-
export const supabase = coreSupabase;
|
|
4
|
+
// Alle browsercode importeert deze naam; de eigen lazy client zit bewust niet
|
|
5
|
+
// in het automatisch gegenereerde Supabase-bestand.
|
|
6
|
+
export { supabase } from "../integrations/supabase/moduleClient.js";
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
import { toast } from "@flowselections/core";
|
|
7
7
|
import { printHtml, volgJobStatus } from "./printApi.js";
|
|
8
8
|
export async function drukTestpaginaAf(printerId, naam) {
|
|
9
|
-
const html = `<div style="padding:15mm;font-family:Arial,Helvetica,sans-serif;font-size:12pt">
|
|
10
|
-
<h1 style="font-size:20pt;margin:0 0 6mm">Testpagina</h1>
|
|
11
|
-
<p style="margin:0 0 3mm">Deze pagina hoort uit: <strong>${naam}</strong></p>
|
|
9
|
+
const html = `<div style="padding:15mm;font-family:Arial,Helvetica,sans-serif;font-size:12pt">
|
|
10
|
+
<h1 style="font-size:20pt;margin:0 0 6mm">Testpagina</h1>
|
|
11
|
+
<p style="margin:0 0 3mm">Deze pagina hoort uit: <strong>${naam}</strong></p>
|
|
12
12
|
<p style="margin:0">${new Date().toLocaleString("nl-NL")}</p></div>`;
|
|
13
13
|
try {
|
|
14
14
|
const { jobId } = await printHtml({
|
|
@@ -42,10 +42,10 @@ function testHtml(velden) {
|
|
|
42
42
|
const rijen = Object.entries(velden)
|
|
43
43
|
.map(([k, v]) => `<tr><td style="padding:2mm 6mm 2mm 0;color:#555">${k}</td><td style="padding:2mm 0;font-weight:600">${v}</td></tr>`)
|
|
44
44
|
.join("");
|
|
45
|
-
return `<div style="padding:15mm;font-family:Arial,Helvetica,sans-serif;font-size:12pt">
|
|
46
|
-
<h1 style="font-size:20pt;margin:0 0 6mm">Testprint</h1>
|
|
47
|
-
<p style="margin:0 0 6mm">Komt dit vel uit de bedoelde printer op de bedoelde plek? Dan zijn de instellingen goed.</p>
|
|
48
|
-
<table style="border-collapse:collapse;font-size:12pt">${rijen}</table>
|
|
45
|
+
return `<div style="padding:15mm;font-family:Arial,Helvetica,sans-serif;font-size:12pt">
|
|
46
|
+
<h1 style="font-size:20pt;margin:0 0 6mm">Testprint</h1>
|
|
47
|
+
<p style="margin:0 0 6mm">Komt dit vel uit de bedoelde printer op de bedoelde plek? Dan zijn de instellingen goed.</p>
|
|
48
|
+
<table style="border-collapse:collapse;font-size:12pt">${rijen}</table>
|
|
49
49
|
</div>`;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
@@ -32,6 +32,11 @@ export interface PrintJobModel {
|
|
|
32
32
|
gebruikte_bron?: string | null;
|
|
33
33
|
/** Vrije gegevens van de aanleverende module (o.a. het orderkenmerk). */
|
|
34
34
|
payload?: Record<string, unknown> | null;
|
|
35
|
+
/** Bij de virtuele PDF-printer: de opgemaakte PDF om te downloaden. */
|
|
36
|
+
resultaat_pdf_base64?: string | null;
|
|
37
|
+
lokale_pdf_status?: string | null;
|
|
38
|
+
lokaal_opgeslagen_op?: string | null;
|
|
39
|
+
lokale_pdf_fout?: string | null;
|
|
35
40
|
}
|
|
36
41
|
export declare function zorgVoorFloridayLayouts(): Promise<boolean>;
|
|
37
42
|
export declare function zorgVoorStandaardLayouts(): Promise<boolean>;
|
|
@@ -84,6 +89,11 @@ export declare function usePrinters(): {
|
|
|
84
89
|
};
|
|
85
90
|
export declare function bewaarPrinter(input: Record<string, unknown>, id?: string): Promise<void>;
|
|
86
91
|
export declare function verwijderPrinter(id: string): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Eén printer aan een layout hangen (of loskoppelen met null). Vervangt de
|
|
94
|
+
* bestaande koppeling(en), zodat de printerkeuze bij een document eenduidig is.
|
|
95
|
+
*/
|
|
96
|
+
export declare function zetLayoutPrinter(layoutId: string, printerId: string | null): Promise<void>;
|
|
87
97
|
export declare function toggleKoppeling(layoutId: string, printerId: string, aan: boolean): Promise<void>;
|
|
88
98
|
export declare function usePrintJobs(): {
|
|
89
99
|
jobs: PrintJobModel[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDocumentData.d.ts","sourceRoot":"","sources":["../../src/lib/useDocumentData.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+EAA+E;IAC/E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"useDocumentData.d.ts","sourceRoot":"","sources":["../../src/lib/useDocumentData.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+EAA+E;IAC/E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AASD,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC,CA8BhE;AAmBD,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CA+DjE;AAED,wBAAgB,UAAU;;;;EAyBzB;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,GAAG,WAAW,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,mBAQA;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,mBA2B/C;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,iBAG/C;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,iBAM5E;AAwBD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM;;;;;;;EAkD/C;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,kBAAkB,EAAE,EAC/B,YAAY,CAAC,EAAE,YAAY,iBA+C5B;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,UAAU,EAAE,MAAM,mBAmBvG;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM;;YAEjC,MAAM;sBAAgB,MAAM;oBAAc,MAAM,GAAG,IAAI;oBAAc,MAAM;kBAAY,OAAO;;;EAcvG;AAID,wBAAgB,WAAW;;;mBAEmC,MAAM;oBAAc,MAAM;;;;EAmBvF;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,iBAS9E;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,iBAGhD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,iBAWhF;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,iBAMtF;AAID,wBAAgB,YAAY;;;;EAoB3B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,CAyB7C;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAS/D;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,iBAkBA"}
|
|
@@ -371,6 +371,25 @@ export async function verwijderPrinter(id) {
|
|
|
371
371
|
if (error)
|
|
372
372
|
throw error;
|
|
373
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* Eén printer aan een layout hangen (of loskoppelen met null). Vervangt de
|
|
376
|
+
* bestaande koppeling(en), zodat de printerkeuze bij een document eenduidig is.
|
|
377
|
+
*/
|
|
378
|
+
export async function zetLayoutPrinter(layoutId, printerId) {
|
|
379
|
+
const { error: delError } = await supabase
|
|
380
|
+
.from("printer_mappings")
|
|
381
|
+
.delete()
|
|
382
|
+
.eq("layout_id", layoutId);
|
|
383
|
+
if (delError)
|
|
384
|
+
throw delError;
|
|
385
|
+
if (!printerId)
|
|
386
|
+
return;
|
|
387
|
+
const { error } = await supabase
|
|
388
|
+
.from("printer_mappings")
|
|
389
|
+
.insert({ layout_id: layoutId, printer_id: printerId });
|
|
390
|
+
if (error)
|
|
391
|
+
throw error;
|
|
392
|
+
}
|
|
374
393
|
export async function toggleKoppeling(layoutId, printerId, aan) {
|
|
375
394
|
if (aan) {
|
|
376
395
|
await supabase.from("printer_mappings").insert({ layout_id: layoutId, printer_id: printerId });
|
|
@@ -3,6 +3,10 @@ export interface VoorbeeldLayout {
|
|
|
3
3
|
naam?: string | null;
|
|
4
4
|
documenttype?: string | null;
|
|
5
5
|
papierformaat?: string | null;
|
|
6
|
+
breedte_mm?: number | null;
|
|
7
|
+
hoogte_mm?: number | null;
|
|
8
|
+
orientatie?: string | null;
|
|
9
|
+
marge_boven?: number | null;
|
|
6
10
|
}
|
|
7
11
|
/**
|
|
8
12
|
* Stuurt meegestuurde opmaak als voorbeeldafdruk naar de printer die bij deze
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voorbeeldPrint.d.ts","sourceRoot":"","sources":["../../src/lib/voorbeeldPrint.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"voorbeeldPrint.d.ts","sourceRoot":"","sources":["../../src/lib/voorbeeldPrint.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CzF"}
|
|
@@ -23,8 +23,19 @@ export async function voorbeeldPrint(layout, html) {
|
|
|
23
23
|
documentnaam: `Voorbeeld ${naam}`,
|
|
24
24
|
html,
|
|
25
25
|
printerId,
|
|
26
|
-
// Bewust geen layout_id: de meegestuurde opmaak is leidend.
|
|
27
|
-
|
|
26
|
+
// Bewust geen layout_id: de meegestuurde opmaak is leidend. Het formaat van
|
|
27
|
+
// de bewerkte layout gaat wel mee, zodat het voorbeeld op hetzelfde papier
|
|
28
|
+
// uitkomt als de echte afdruk (bijvoorbeeld A5 in plaats van A4).
|
|
29
|
+
payload: {
|
|
30
|
+
voorbeeld: true,
|
|
31
|
+
voorbeeld_layout_id: layout.id ?? null,
|
|
32
|
+
voorbeeld_formaat: {
|
|
33
|
+
breedte_mm: Number(layout.breedte_mm ?? 210),
|
|
34
|
+
hoogte_mm: Number(layout.hoogte_mm ?? 297),
|
|
35
|
+
orientatie: String(layout.orientatie ?? "portrait"),
|
|
36
|
+
marge_boven: Number(layout.marge_boven ?? 10),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
28
39
|
isHerprint: true,
|
|
29
40
|
});
|
|
30
41
|
toast.success("Voorbeeld naar de printer verstuurd");
|