@flowselections/layout-maker 1.8.3 → 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.
- package/README.md +139 -132
- package/dist-lib/components/ComputersLijst.d.ts +2 -1
- package/dist-lib/components/ComputersLijst.d.ts.map +1 -1
- package/dist-lib/components/ComputersLijst.js +2 -2
- package/dist-lib/components/DocumentRouteringPage.d.ts +2 -0
- package/dist-lib/components/DocumentRouteringPage.d.ts.map +1 -0
- package/dist-lib/components/DocumentRouteringPage.js +115 -0
- package/dist-lib/components/LayoutsPage.d.ts.map +1 -1
- package/dist-lib/components/LayoutsPage.js +13 -8
- package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
- package/dist-lib/components/PrintQueuePage.js +16 -1
- package/dist-lib/components/PrintStatusBanner.d.ts +8 -0
- package/dist-lib/components/PrintStatusBanner.d.ts.map +1 -0
- package/dist-lib/components/PrintStatusBanner.js +15 -0
- package/dist-lib/components/PrinterSetupWizard.js +1 -1
- package/dist-lib/components/PrintersPage.d.ts.map +1 -1
- package/dist-lib/components/PrintersPage.js +7 -23
- package/dist-lib/components/WerkplekConfiguratiePage.d.ts.map +1 -1
- package/dist-lib/components/WerkplekConfiguratiePage.js +35 -24
- package/dist-lib/components/WerkplekkenTabel.d.ts +2 -2
- package/dist-lib/components/WerkplekkenTabel.d.ts.map +1 -1
- package/dist-lib/components/WerkplekkenTabel.js +4 -3
- package/dist-lib/index.d.ts +8 -3
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +9 -5
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +491 -145
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +491 -145
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +505 -150
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/aiLayout.functions.d.ts +491 -145
- 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 +5 -5
- package/dist-lib/lib/documentBron.d.ts +35 -0
- package/dist-lib/lib/documentBron.d.ts.map +1 -0
- package/dist-lib/lib/documentBron.js +62 -0
- package/dist-lib/lib/documentRoutering.d.ts +23 -0
- package/dist-lib/lib/documentRoutering.d.ts.map +1 -0
- package/dist-lib/lib/documentRoutering.js +58 -0
- package/dist-lib/lib/documentTypes.d.ts +54 -0
- package/dist-lib/lib/documentTypes.d.ts.map +1 -1
- package/dist-lib/lib/documentTypes.js +56 -0
- package/dist-lib/lib/formaatPrinters.d.ts +5 -0
- package/dist-lib/lib/formaatPrinters.d.ts.map +1 -1
- package/dist-lib/lib/formaatPrinters.js +12 -0
- package/dist-lib/lib/layoutPreview.js +7 -7
- package/dist-lib/lib/pakbonHtml.js +50 -50
- package/dist-lib/lib/printApi.d.ts +20 -5
- package/dist-lib/lib/printApi.d.ts.map +1 -1
- package/dist-lib/lib/printApi.js +93 -32
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +72 -1
- package/dist-lib/lib/printService.functions.d.ts +1964 -580
- package/dist-lib/lib/printService.functions.d.ts.map +1 -1
- package/dist-lib/lib/printerTelling.d.ts +24 -0
- package/dist-lib/lib/printerTelling.d.ts.map +1 -0
- package/dist-lib/lib/printerTelling.js +41 -0
- 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/testpagina.js +1 -1
- package/dist-lib/lib/useDocumentData.d.ts +4 -0
- package/dist-lib/lib/useDocumentData.d.ts.map +1 -1
- package/dist-lib/lib/useDocumentData.js +106 -1
- package/package.json +6 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Waar de order vandaan komt. */
|
|
2
|
+
export type Herkomst = "floriday" | "eigen";
|
|
3
|
+
/** Welke bron gebruikt wordt: extern document, eigen ontwerp of automatisch. */
|
|
4
|
+
export type Bron = "extern_pdf" | "eigen_layout" | "auto";
|
|
5
|
+
export interface Bronregel {
|
|
6
|
+
id: string;
|
|
7
|
+
documenttype: string;
|
|
8
|
+
herkomst: string;
|
|
9
|
+
bron: string;
|
|
10
|
+
layout_id: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare const HERKOMSTEN: {
|
|
13
|
+
value: Herkomst;
|
|
14
|
+
label: string;
|
|
15
|
+
}[];
|
|
16
|
+
export declare const BRONNEN: {
|
|
17
|
+
value: Bron;
|
|
18
|
+
label: string;
|
|
19
|
+
}[];
|
|
20
|
+
/** Alle bronregels, eventueel gefilterd op documentsoort. */
|
|
21
|
+
export declare function useBronregels(documenttype?: string): {
|
|
22
|
+
regels: Bronregel[];
|
|
23
|
+
laden: boolean;
|
|
24
|
+
reload: () => Promise<void>;
|
|
25
|
+
};
|
|
26
|
+
/** Legt vast welke bron geldt voor een documentsoort bij een bepaalde herkomst. */
|
|
27
|
+
export declare function zetBronregel(documenttype: string, herkomst: Herkomst | string, bron: Bron | string, layout_id?: string | null): Promise<void>;
|
|
28
|
+
/** Verwijdert een bronregel; daarna geldt weer het standaardgedrag. */
|
|
29
|
+
export declare function verwijderBronregel(id: string): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* De ingestelde bron voor een documentsoort bij deze herkomst.
|
|
32
|
+
* Geeft `null` als er niets is ingesteld (dan geldt het standaardgedrag).
|
|
33
|
+
*/
|
|
34
|
+
export declare function bronVoorDocument(documenttype: string, herkomst?: string | null): Promise<Bronregel | null>;
|
|
35
|
+
//# sourceMappingURL=documentBron.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentBron.d.ts","sourceRoot":"","sources":["../../src/lib/documentBron.ts"],"names":[],"mappings":"AASA,kCAAkC;AAClC,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAE5C,gFAAgF;AAChF,MAAM,MAAM,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,eAAO,MAAM,UAAU,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAG1D,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAInD,CAAC;AAIF,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM;;;;EAiBlD;AAED,mFAAmF;AACnF,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,iBAO1B;AAED,uEAAuE;AACvE,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,iBAGlD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAU3B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/documentBron.ts — waar komt het document vandaan? Per documentsoort
|
|
3
|
+
// en per herkomst van de order (Floriday of een eigen order) kan worden gekozen
|
|
4
|
+
// tussen het meegestuurde externe document en een eigen ontwerp.
|
|
5
|
+
// ============================================================================
|
|
6
|
+
import { useCallback, useEffect, useState } from "react";
|
|
7
|
+
import { supabase } from "./supabaseClient.js";
|
|
8
|
+
export const HERKOMSTEN = [
|
|
9
|
+
{ value: "floriday", label: "Floriday-order" },
|
|
10
|
+
{ value: "eigen", label: "Eigen order" },
|
|
11
|
+
];
|
|
12
|
+
export const BRONNEN = [
|
|
13
|
+
{ value: "auto", label: "Automatisch" },
|
|
14
|
+
{ value: "extern_pdf", label: "Document van Floriday" },
|
|
15
|
+
{ value: "eigen_layout", label: "Eigen ontwerp" },
|
|
16
|
+
];
|
|
17
|
+
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
18
|
+
/** Alle bronregels, eventueel gefilterd op documentsoort. */
|
|
19
|
+
export function useBronregels(documenttype) {
|
|
20
|
+
const [regels, setRegels] = useState([]);
|
|
21
|
+
const [laden, setLaden] = useState(true);
|
|
22
|
+
const load = useCallback(async () => {
|
|
23
|
+
let query = supabase.from("document_bronregels").select("*");
|
|
24
|
+
if (documenttype)
|
|
25
|
+
query = query.eq("documenttype", documenttype);
|
|
26
|
+
const { data } = await query;
|
|
27
|
+
setRegels(arr(data));
|
|
28
|
+
setLaden(false);
|
|
29
|
+
}, [documenttype]);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
void load();
|
|
32
|
+
}, [load]);
|
|
33
|
+
return { regels, laden, reload: load };
|
|
34
|
+
}
|
|
35
|
+
/** Legt vast welke bron geldt voor een documentsoort bij een bepaalde herkomst. */
|
|
36
|
+
export async function zetBronregel(documenttype, herkomst, bron, layout_id) {
|
|
37
|
+
const { error } = await supabase.from("document_bronregels").upsert({ documenttype, herkomst, bron, layout_id: layout_id ?? null }, { onConflict: "documenttype,herkomst" });
|
|
38
|
+
if (error)
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
/** Verwijdert een bronregel; daarna geldt weer het standaardgedrag. */
|
|
42
|
+
export async function verwijderBronregel(id) {
|
|
43
|
+
const { error } = await supabase.from("document_bronregels").delete().eq("id", id);
|
|
44
|
+
if (error)
|
|
45
|
+
throw error;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* De ingestelde bron voor een documentsoort bij deze herkomst.
|
|
49
|
+
* Geeft `null` als er niets is ingesteld (dan geldt het standaardgedrag).
|
|
50
|
+
*/
|
|
51
|
+
export async function bronVoorDocument(documenttype, herkomst) {
|
|
52
|
+
const h = (herkomst ?? "").trim();
|
|
53
|
+
if (!h)
|
|
54
|
+
return null;
|
|
55
|
+
const { data } = await supabase
|
|
56
|
+
.from("document_bronregels")
|
|
57
|
+
.select("*")
|
|
58
|
+
.eq("documenttype", documenttype)
|
|
59
|
+
.eq("herkomst", h)
|
|
60
|
+
.maybeSingle();
|
|
61
|
+
return data ?? null;
|
|
62
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface WerkplekPrinter {
|
|
2
|
+
id: string;
|
|
3
|
+
documenttype: string;
|
|
4
|
+
werkplek: string;
|
|
5
|
+
printer_id: string | null;
|
|
6
|
+
papierformaat: string | null;
|
|
7
|
+
}
|
|
8
|
+
/** Alle werkplek-uitzonderingen, eventueel gefilterd op documentsoort. */
|
|
9
|
+
export declare function useWerkplekPrinters(documenttype?: string): {
|
|
10
|
+
koppelingen: WerkplekPrinter[];
|
|
11
|
+
laden: boolean;
|
|
12
|
+
reload: () => Promise<void>;
|
|
13
|
+
};
|
|
14
|
+
/** Legt vast dat een documentsoort op een werkplek naar een printer gaat. */
|
|
15
|
+
export declare function zetWerkplekPrinter(documenttype: string, werkplek: string, printer_id: string | null, papierformaat?: string | null): Promise<void>;
|
|
16
|
+
/** Verwijdert een werkplek-uitzondering. */
|
|
17
|
+
export declare function verwijderWerkplekPrinter(id: string): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* De printer die voor deze documentsoort op deze werkplek is ingesteld.
|
|
20
|
+
* Geeft `null` als er geen uitzondering bestaat.
|
|
21
|
+
*/
|
|
22
|
+
export declare function printerVoorWerkplekDocument(documenttype: string, werkplek: string): Promise<string | null>;
|
|
23
|
+
//# sourceMappingURL=documentRoutering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentRoutering.d.ts","sourceRoot":"","sources":["../../src/lib/documentRoutering.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAID,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,MAAM;;;;EAiBxD;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,iBAY9B;AAED,4CAA4C;AAC5C,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,iBAGxD;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/documentRoutering.ts — welke documentsoort gaat via welke werkplek
|
|
3
|
+
// naar welke printer. Uitzonderingen per werkplek staan hier; de standaard per
|
|
4
|
+
// documentsoort + formaat blijft in `formaatPrinters.ts`.
|
|
5
|
+
// ============================================================================
|
|
6
|
+
import { useCallback, useEffect, useState } from "react";
|
|
7
|
+
import { supabase } from "./supabaseClient.js";
|
|
8
|
+
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
9
|
+
/** Alle werkplek-uitzonderingen, eventueel gefilterd op documentsoort. */
|
|
10
|
+
export function useWerkplekPrinters(documenttype) {
|
|
11
|
+
const [koppelingen, setKoppelingen] = useState([]);
|
|
12
|
+
const [laden, setLaden] = useState(true);
|
|
13
|
+
const load = useCallback(async () => {
|
|
14
|
+
let query = supabase.from("document_werkplek_printers").select("*");
|
|
15
|
+
if (documenttype)
|
|
16
|
+
query = query.eq("documenttype", documenttype);
|
|
17
|
+
const { data } = await query;
|
|
18
|
+
setKoppelingen(arr(data));
|
|
19
|
+
setLaden(false);
|
|
20
|
+
}, [documenttype]);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
void load();
|
|
23
|
+
}, [load]);
|
|
24
|
+
return { koppelingen, laden, reload: load };
|
|
25
|
+
}
|
|
26
|
+
/** Legt vast dat een documentsoort op een werkplek naar een printer gaat. */
|
|
27
|
+
export async function zetWerkplekPrinter(documenttype, werkplek, printer_id, papierformaat) {
|
|
28
|
+
const { error } = await supabase.from("document_werkplek_printers").upsert({
|
|
29
|
+
documenttype,
|
|
30
|
+
werkplek: werkplek.trim(),
|
|
31
|
+
printer_id,
|
|
32
|
+
papierformaat: papierformaat ?? null,
|
|
33
|
+
}, { onConflict: "documenttype,werkplek" });
|
|
34
|
+
if (error)
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
/** Verwijdert een werkplek-uitzondering. */
|
|
38
|
+
export async function verwijderWerkplekPrinter(id) {
|
|
39
|
+
const { error } = await supabase.from("document_werkplek_printers").delete().eq("id", id);
|
|
40
|
+
if (error)
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* De printer die voor deze documentsoort op deze werkplek is ingesteld.
|
|
45
|
+
* Geeft `null` als er geen uitzondering bestaat.
|
|
46
|
+
*/
|
|
47
|
+
export async function printerVoorWerkplekDocument(documenttype, werkplek) {
|
|
48
|
+
const naam = (werkplek ?? "").trim();
|
|
49
|
+
if (!naam)
|
|
50
|
+
return null;
|
|
51
|
+
const { data } = await supabase
|
|
52
|
+
.from("document_werkplek_printers")
|
|
53
|
+
.select("printer_id")
|
|
54
|
+
.eq("documenttype", documenttype)
|
|
55
|
+
.eq("werkplek", naam)
|
|
56
|
+
.maybeSingle();
|
|
57
|
+
return data?.printer_id ?? null;
|
|
58
|
+
}
|
|
@@ -103,8 +103,62 @@ export interface LayoutModel {
|
|
|
103
103
|
page_settings: PageSettings;
|
|
104
104
|
/** documentspecifieke configuratie, opgebouwd uit het documentprofiel */
|
|
105
105
|
config?: Record<string, Record<string, unknown>>;
|
|
106
|
+
/** herkomst van het document: "eigen" ontwerp of "floriday" */
|
|
107
|
+
bron?: string;
|
|
108
|
+
/** vaste layout die niet mag worden aangepast of verwijderd */
|
|
109
|
+
systeem?: boolean;
|
|
106
110
|
updated_at: string;
|
|
107
111
|
}
|
|
112
|
+
/** Is dit een vaste layout voor een document dat uit Floriday komt? */
|
|
113
|
+
export declare function isFloridayLayout(l: {
|
|
114
|
+
bron?: string | null;
|
|
115
|
+
systeem?: boolean | null;
|
|
116
|
+
}): boolean;
|
|
117
|
+
/** Toelichting bij een Floriday-layout. */
|
|
118
|
+
export declare const FLORIDAY_LAYOUT_TOELICHTING = "Document komt kant-en-klaar uit Floriday en wordt 1-op-1 afgedrukt.";
|
|
119
|
+
/** Vaste layouts die altijd aanwezig moeten zijn (documenten uit Floriday). */
|
|
120
|
+
export declare const FLORIDAY_SYSTEEM_LAYOUTS: readonly [{
|
|
121
|
+
readonly naam: "Afleverbrief (Floriday)";
|
|
122
|
+
readonly documenttype: "afleverbrief";
|
|
123
|
+
readonly papierformaat: "A4";
|
|
124
|
+
readonly breedte_mm: 210;
|
|
125
|
+
readonly hoogte_mm: 297;
|
|
126
|
+
}, {
|
|
127
|
+
readonly naam: "Veilingbrief (Floriday)";
|
|
128
|
+
readonly documenttype: "veilingbrief";
|
|
129
|
+
readonly papierformaat: "A4";
|
|
130
|
+
readonly breedte_mm: 210;
|
|
131
|
+
readonly hoogte_mm: 297;
|
|
132
|
+
}, {
|
|
133
|
+
readonly naam: "Sticker (Floriday)";
|
|
134
|
+
readonly documenttype: "sticker";
|
|
135
|
+
readonly papierformaat: "LABEL_100x62";
|
|
136
|
+
readonly breedte_mm: 100;
|
|
137
|
+
readonly hoogte_mm: 62;
|
|
138
|
+
}];
|
|
139
|
+
/** Toelichting bij een standaardlayout (geen Floriday-document). */
|
|
140
|
+
export declare const STANDAARD_LAYOUT_TOELICHTING = "Standaarddocument voor eigen orders. Volledig aanpasbaar \u2014 aanpassen kan per klant.";
|
|
141
|
+
/**
|
|
142
|
+
* Standaardlayouts die bij een verse shell altijd worden toegevoegd, los van
|
|
143
|
+
* Floriday. Deze zijn "eigen" (niet systeem) en dus vrij aanpasbaar/verwijderbaar.
|
|
144
|
+
* Het seeden gebeurt slechts één keer per shell (zie useDocumentData); als een
|
|
145
|
+
* gebruiker een layout verwijdert, wordt deze niet opnieuw aangemaakt.
|
|
146
|
+
*/
|
|
147
|
+
export declare const STANDAARD_LAYOUTS: readonly [{
|
|
148
|
+
readonly naam: "Pakbon";
|
|
149
|
+
readonly documenttype: "pakbon";
|
|
150
|
+
readonly papierformaat: "A4";
|
|
151
|
+
readonly breedte_mm: 210;
|
|
152
|
+
readonly hoogte_mm: 297;
|
|
153
|
+
readonly omschrijving: "Standaarddocument voor eigen orders. Volledig aanpasbaar — aanpassen kan per klant.";
|
|
154
|
+
}, {
|
|
155
|
+
readonly naam: "Afleverbrief (BVO)";
|
|
156
|
+
readonly documenttype: "afleverbrief";
|
|
157
|
+
readonly papierformaat: "A4";
|
|
158
|
+
readonly breedte_mm: 210;
|
|
159
|
+
readonly hoogte_mm: 297;
|
|
160
|
+
readonly omschrijving: "Verzendbrief voor eigen (niet-Floriday) orders. Volledig aanpasbaar.";
|
|
161
|
+
}];
|
|
108
162
|
export interface LayoutVariabele {
|
|
109
163
|
id?: string;
|
|
110
164
|
naam: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/documentTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"documentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/documentTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,62 @@ export const PAPIERFORMATEN = [
|
|
|
34
34
|
{ code: "LABEL_57x32", label: "Label 57 × 32 mm", breedte: 57, hoogte: 32 },
|
|
35
35
|
{ code: "VRIJ", label: "Vrij formaat", breedte: 210, hoogte: 297 },
|
|
36
36
|
];
|
|
37
|
+
/** Is dit een vaste layout voor een document dat uit Floriday komt? */
|
|
38
|
+
export function isFloridayLayout(l) {
|
|
39
|
+
return Boolean(l?.systeem) && String(l?.bron ?? "") === "floriday";
|
|
40
|
+
}
|
|
41
|
+
/** Toelichting bij een Floriday-layout. */
|
|
42
|
+
export const FLORIDAY_LAYOUT_TOELICHTING = "Document komt kant-en-klaar uit Floriday en wordt 1-op-1 afgedrukt.";
|
|
43
|
+
/** Vaste layouts die altijd aanwezig moeten zijn (documenten uit Floriday). */
|
|
44
|
+
export const FLORIDAY_SYSTEEM_LAYOUTS = [
|
|
45
|
+
{
|
|
46
|
+
naam: "Afleverbrief (Floriday)",
|
|
47
|
+
documenttype: "afleverbrief",
|
|
48
|
+
papierformaat: "A4",
|
|
49
|
+
breedte_mm: 210,
|
|
50
|
+
hoogte_mm: 297,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
naam: "Veilingbrief (Floriday)",
|
|
54
|
+
documenttype: "veilingbrief",
|
|
55
|
+
papierformaat: "A4",
|
|
56
|
+
breedte_mm: 210,
|
|
57
|
+
hoogte_mm: 297,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
naam: "Sticker (Floriday)",
|
|
61
|
+
documenttype: "sticker",
|
|
62
|
+
papierformaat: "LABEL_100x62",
|
|
63
|
+
breedte_mm: 100,
|
|
64
|
+
hoogte_mm: 62,
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
/** Toelichting bij een standaardlayout (geen Floriday-document). */
|
|
68
|
+
export const STANDAARD_LAYOUT_TOELICHTING = "Standaarddocument voor eigen orders. Volledig aanpasbaar — aanpassen kan per klant.";
|
|
69
|
+
/**
|
|
70
|
+
* Standaardlayouts die bij een verse shell altijd worden toegevoegd, los van
|
|
71
|
+
* Floriday. Deze zijn "eigen" (niet systeem) en dus vrij aanpasbaar/verwijderbaar.
|
|
72
|
+
* Het seeden gebeurt slechts één keer per shell (zie useDocumentData); als een
|
|
73
|
+
* gebruiker een layout verwijdert, wordt deze niet opnieuw aangemaakt.
|
|
74
|
+
*/
|
|
75
|
+
export const STANDAARD_LAYOUTS = [
|
|
76
|
+
{
|
|
77
|
+
naam: "Pakbon",
|
|
78
|
+
documenttype: "pakbon",
|
|
79
|
+
papierformaat: "A4",
|
|
80
|
+
breedte_mm: 210,
|
|
81
|
+
hoogte_mm: 297,
|
|
82
|
+
omschrijving: STANDAARD_LAYOUT_TOELICHTING,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
naam: "Afleverbrief (BVO)",
|
|
86
|
+
documenttype: "afleverbrief",
|
|
87
|
+
papierformaat: "A4",
|
|
88
|
+
breedte_mm: 210,
|
|
89
|
+
hoogte_mm: 297,
|
|
90
|
+
omschrijving: "Verzendbrief voor eigen (niet-Floriday) orders. Volledig aanpasbaar.",
|
|
91
|
+
},
|
|
92
|
+
];
|
|
37
93
|
export const ELEMENT_STANDAARD = {
|
|
38
94
|
tekst: { label: "Tekst", breedte: 60, hoogte: 8, content: "Nieuwe tekst" },
|
|
39
95
|
veld: { label: "Databaseveld", breedte: 60, hoogte: 8, content: "{{order.nummer}}" },
|
|
@@ -11,4 +11,9 @@ export declare function useFormaatPrinters(documenttype: string): {
|
|
|
11
11
|
export declare function zetFormaatPrinter(documenttype: string, formaat_code: string, printer_id: string | null): Promise<void>;
|
|
12
12
|
/** Bepaalt welke printer bij een formaat hoort (voor automatisch afdrukken). */
|
|
13
13
|
export declare function printerVoorFormaat(documenttype: string, formaat_code: string): Promise<string | null>;
|
|
14
|
+
/** Alle standaardkoppelingen (documentsoort + formaat), voor overzichten. */
|
|
15
|
+
export declare function useAlleFormaatPrinters(): {
|
|
16
|
+
koppelingen: FormaatPrinter[];
|
|
17
|
+
reload: () => Promise<void>;
|
|
18
|
+
};
|
|
14
19
|
//# sourceMappingURL=formaatPrinters.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formaatPrinters.d.ts","sourceRoot":"","sources":["../../src/lib/formaatPrinters.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAID,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM;;;EAgBtD;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,iBAQ1B;AAED,gFAAgF;AAChF,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB"}
|
|
1
|
+
{"version":3,"file":"formaatPrinters.d.ts","sourceRoot":"","sources":["../../src/lib/formaatPrinters.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAID,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM;;;EAgBtD;AAED,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GAAG,IAAI,iBAQ1B;AAED,gFAAgF;AAChF,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB;;;EAarC"}
|
|
@@ -37,3 +37,15 @@ export async function printerVoorFormaat(documenttype, formaat_code) {
|
|
|
37
37
|
.maybeSingle();
|
|
38
38
|
return data?.printer_id ?? null;
|
|
39
39
|
}
|
|
40
|
+
/** Alle standaardkoppelingen (documentsoort + formaat), voor overzichten. */
|
|
41
|
+
export function useAlleFormaatPrinters() {
|
|
42
|
+
const [koppelingen, setKoppelingen] = useState([]);
|
|
43
|
+
const load = useCallback(async () => {
|
|
44
|
+
const { data } = await supabase.from("document_formaat_printers").select("*");
|
|
45
|
+
setKoppelingen(arr(data));
|
|
46
|
+
}, []);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
void load();
|
|
49
|
+
}, [load]);
|
|
50
|
+
return { koppelingen, reload: load };
|
|
51
|
+
}
|
|
@@ -79,8 +79,8 @@ function elementHtml(el, ctx) {
|
|
|
79
79
|
case "cirkel":
|
|
80
80
|
return `<div style="${base};border-radius:50%;border:${s.randbreedte || 0.3}mm solid ${s.randkleur ?? "#111827"}"></div>`;
|
|
81
81
|
case "barcode":
|
|
82
|
-
return `<div style="${base};display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:monospace">
|
|
83
|
-
<div style="width:100%;height:70%;background:repeating-linear-gradient(90deg,#111 0 1.2px,#fff 1.2px 3px)"></div>
|
|
82
|
+
return `<div style="${base};display:flex;flex-direction:column;justify-content:center;align-items:center;font-family:monospace">
|
|
83
|
+
<div style="width:100%;height:70%;background:repeating-linear-gradient(90deg,#111 0 1.2px,#fff 1.2px 3px)"></div>
|
|
84
84
|
<div style="font-size:7pt">${esc(inhoud)}</div></div>`;
|
|
85
85
|
case "qrcode":
|
|
86
86
|
return `<div style="${base};background:repeating-conic-gradient(#111 0% 25%, #fff 0% 50%) 0 0/22% 22%"></div>`;
|
|
@@ -125,10 +125,10 @@ export function bouwDocumentHtml(layout, elementen, gegevens) {
|
|
|
125
125
|
const body = zichtbaar.map((e) => elementHtml(e, ctx)).join("");
|
|
126
126
|
const b = layout.orientatie === "landscape" ? layout.hoogte_mm : layout.breedte_mm;
|
|
127
127
|
const h = layout.orientatie === "landscape" ? layout.breedte_mm : layout.hoogte_mm;
|
|
128
|
-
return `<!doctype html><html lang="nl"><head><meta charset="utf-8"><title>${esc(layout.naam)}</title>
|
|
129
|
-
<style>@page{size:${b}mm ${h}mm;margin:0}
|
|
130
|
-
body{margin:0;background:#e5e7eb}
|
|
131
|
-
.pagina{position:relative;width:${b}mm;height:${h}mm;background:#fff;margin:0 auto;overflow:hidden}
|
|
132
|
-
@media print{body{background:#fff}}</style></head>
|
|
128
|
+
return `<!doctype html><html lang="nl"><head><meta charset="utf-8"><title>${esc(layout.naam)}</title>
|
|
129
|
+
<style>@page{size:${b}mm ${h}mm;margin:0}
|
|
130
|
+
body{margin:0;background:#e5e7eb}
|
|
131
|
+
.pagina{position:relative;width:${b}mm;height:${h}mm;background:#fff;margin:0 auto;overflow:hidden}
|
|
132
|
+
@media print{body{background:#fff}}</style></head>
|
|
133
133
|
<body><div class="pagina">${body}</div></body></html>`;
|
|
134
134
|
}
|
|
@@ -640,56 +640,56 @@ export function renderPakbonDocument(config, order, opties = {}) {
|
|
|
640
640
|
const font = opties.lettertype ?? 'Arial, Helvetica, "Segoe UI", sans-serif';
|
|
641
641
|
const grootte = opties.lettergrootte ?? 8.5;
|
|
642
642
|
const body = renderPakbonBody(config, order, opties);
|
|
643
|
-
return `<!doctype html><html lang="nl"><head><meta charset="utf-8" />
|
|
644
|
-
<title>${esc(opties.titel ?? "Pakbon")}</title>
|
|
645
|
-
<style>
|
|
646
|
-
@page { size: ${b}mm ${h}mm; margin: ${marge}mm; }
|
|
647
|
-
* { box-sizing: border-box; }
|
|
648
|
-
html, body { margin: 0; padding: 0; }
|
|
649
|
-
body { font-family: ${font}; font-size: ${grootte}pt; color: #111827; line-height: 1.35; }
|
|
650
|
-
.blok { margin-bottom: 2mm; }
|
|
651
|
-
.sectitel { font-size: 90%; font-weight: 600; text-transform: uppercase; color: #6b7280; margin-bottom: 0.6mm; }
|
|
652
|
-
.vet { font-weight: 600; }
|
|
653
|
-
.kv { display: flex; justify-content: space-between; gap: 3mm; }
|
|
654
|
-
.kv .k { color: #6b7280; }
|
|
655
|
-
.kv .v { font-weight: 500; }
|
|
656
|
-
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 6mm; }
|
|
657
|
-
.kader { border: 0.25mm solid #d1d5db; border-radius: 1mm; padding: 1.5mm; }
|
|
658
|
-
table.regels { width: 100%; border-collapse: collapse; }
|
|
659
|
-
table.regels.vast { table-layout: fixed; }
|
|
660
|
-
table.regels.vast td, table.regels.vast th { overflow-wrap: anywhere; }
|
|
661
|
-
table.regels th, table.regels td { padding: 0.7mm 1mm; vertical-align: top; }
|
|
662
|
-
table.regels th { font-size: 90%; text-transform: uppercase; color: #6b7280; font-weight: 600; text-align: left; }
|
|
663
|
-
.rand { border: 0.2mm solid #d1d5db; }
|
|
664
|
-
.onder { border-bottom: 0.2mm solid #d1d5db; }
|
|
665
|
-
table.regels.compact th, table.regels.compact td { padding: 0.3mm 0.8mm; }
|
|
666
|
-
tr.zebra td { background: #f3f4f6; }
|
|
667
|
-
.plijst { margin: 0; padding-left: 4mm; }
|
|
668
|
-
.groep { margin-bottom: 1.5mm; }
|
|
669
|
-
.regelrij { display: flex; gap: 2mm; }
|
|
670
|
-
.tweekolom { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; }
|
|
671
|
-
.karblok { margin-bottom: 2mm; }
|
|
672
|
-
.karblok.omkaderd { border: 0.25mm solid #d1d5db; border-radius: 1mm; padding: 1.5mm; }
|
|
673
|
-
.karkop { display: flex; justify-content: space-between; align-items: center; padding: 0.8mm 1.5mm; border-radius: 1mm; margin-bottom: 1mm; }
|
|
674
|
-
.bundel { display: inline-block; border: 0.3mm dashed #6b7280; border-radius: 1mm; padding: 0.4mm 1.5mm; margin-bottom: 1mm; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2mm; font-size: 90%; }
|
|
675
|
-
.laag { margin-bottom: 1.5mm; }
|
|
676
|
-
.laagkop { display: flex; justify-content: space-between; font-weight: 500; border-bottom: 0.2mm solid #d1d5db; padding-bottom: 0.4mm; margin-bottom: 0.6mm; }
|
|
677
|
-
.laagkop.compact { border-bottom: none; }
|
|
678
|
-
.meta { display: flex; gap: 3mm; font-size: 88%; font-weight: 400; color: #4b5563; }
|
|
679
|
-
.totalen { display: flex; flex-wrap: wrap; gap: 5mm; border-top: 0.25mm solid #d1d5db; padding-top: 1.2mm; font-weight: 500; }
|
|
680
|
-
.paginavoet { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; }
|
|
681
|
-
.handtekening { margin-top: 3mm; }
|
|
682
|
-
.lijnveld { margin-top: 4mm; border-bottom: 0.25mm solid #6b7280; padding-bottom: 3mm; }
|
|
683
|
-
.lijnveld.hoog { padding-bottom: 10mm; }
|
|
684
|
-
.lijn { border-top: 0.25mm solid #d1d5db; margin: 1.5mm 0; }
|
|
685
|
-
.balk { height: 1mm; background: #374151; margin: 1.5mm 0; }
|
|
686
|
-
.qr { border: 0.25mm dashed #9ca3af; }
|
|
687
|
-
.streepjes { width: 45mm; background: repeating-linear-gradient(to right, #111827 0 2px, transparent 2px 5px); }
|
|
688
|
-
.klein { font-size: 85%; color: #6b7280; }
|
|
689
|
-
.breekvoor { break-before: page; page-break-before: always; }
|
|
690
|
-
.heelhouden { break-inside: avoid; page-break-inside: avoid; }
|
|
691
|
-
img { max-width: 100%; }
|
|
692
|
-
</style></head>
|
|
643
|
+
return `<!doctype html><html lang="nl"><head><meta charset="utf-8" />
|
|
644
|
+
<title>${esc(opties.titel ?? "Pakbon")}</title>
|
|
645
|
+
<style>
|
|
646
|
+
@page { size: ${b}mm ${h}mm; margin: ${marge}mm; }
|
|
647
|
+
* { box-sizing: border-box; }
|
|
648
|
+
html, body { margin: 0; padding: 0; }
|
|
649
|
+
body { font-family: ${font}; font-size: ${grootte}pt; color: #111827; line-height: 1.35; }
|
|
650
|
+
.blok { margin-bottom: 2mm; }
|
|
651
|
+
.sectitel { font-size: 90%; font-weight: 600; text-transform: uppercase; color: #6b7280; margin-bottom: 0.6mm; }
|
|
652
|
+
.vet { font-weight: 600; }
|
|
653
|
+
.kv { display: flex; justify-content: space-between; gap: 3mm; }
|
|
654
|
+
.kv .k { color: #6b7280; }
|
|
655
|
+
.kv .v { font-weight: 500; }
|
|
656
|
+
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 6mm; }
|
|
657
|
+
.kader { border: 0.25mm solid #d1d5db; border-radius: 1mm; padding: 1.5mm; }
|
|
658
|
+
table.regels { width: 100%; border-collapse: collapse; }
|
|
659
|
+
table.regels.vast { table-layout: fixed; }
|
|
660
|
+
table.regels.vast td, table.regels.vast th { overflow-wrap: anywhere; }
|
|
661
|
+
table.regels th, table.regels td { padding: 0.7mm 1mm; vertical-align: top; }
|
|
662
|
+
table.regels th { font-size: 90%; text-transform: uppercase; color: #6b7280; font-weight: 600; text-align: left; }
|
|
663
|
+
.rand { border: 0.2mm solid #d1d5db; }
|
|
664
|
+
.onder { border-bottom: 0.2mm solid #d1d5db; }
|
|
665
|
+
table.regels.compact th, table.regels.compact td { padding: 0.3mm 0.8mm; }
|
|
666
|
+
tr.zebra td { background: #f3f4f6; }
|
|
667
|
+
.plijst { margin: 0; padding-left: 4mm; }
|
|
668
|
+
.groep { margin-bottom: 1.5mm; }
|
|
669
|
+
.regelrij { display: flex; gap: 2mm; }
|
|
670
|
+
.tweekolom { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; }
|
|
671
|
+
.karblok { margin-bottom: 2mm; }
|
|
672
|
+
.karblok.omkaderd { border: 0.25mm solid #d1d5db; border-radius: 1mm; padding: 1.5mm; }
|
|
673
|
+
.karkop { display: flex; justify-content: space-between; align-items: center; padding: 0.8mm 1.5mm; border-radius: 1mm; margin-bottom: 1mm; }
|
|
674
|
+
.bundel { display: inline-block; border: 0.3mm dashed #6b7280; border-radius: 1mm; padding: 0.4mm 1.5mm; margin-bottom: 1mm; font-weight: 700; text-transform: uppercase; letter-spacing: 0.2mm; font-size: 90%; }
|
|
675
|
+
.laag { margin-bottom: 1.5mm; }
|
|
676
|
+
.laagkop { display: flex; justify-content: space-between; font-weight: 500; border-bottom: 0.2mm solid #d1d5db; padding-bottom: 0.4mm; margin-bottom: 0.6mm; }
|
|
677
|
+
.laagkop.compact { border-bottom: none; }
|
|
678
|
+
.meta { display: flex; gap: 3mm; font-size: 88%; font-weight: 400; color: #4b5563; }
|
|
679
|
+
.totalen { display: flex; flex-wrap: wrap; gap: 5mm; border-top: 0.25mm solid #d1d5db; padding-top: 1.2mm; font-weight: 500; }
|
|
680
|
+
.paginavoet { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; }
|
|
681
|
+
.handtekening { margin-top: 3mm; }
|
|
682
|
+
.lijnveld { margin-top: 4mm; border-bottom: 0.25mm solid #6b7280; padding-bottom: 3mm; }
|
|
683
|
+
.lijnveld.hoog { padding-bottom: 10mm; }
|
|
684
|
+
.lijn { border-top: 0.25mm solid #d1d5db; margin: 1.5mm 0; }
|
|
685
|
+
.balk { height: 1mm; background: #374151; margin: 1.5mm 0; }
|
|
686
|
+
.qr { border: 0.25mm dashed #9ca3af; }
|
|
687
|
+
.streepjes { width: 45mm; background: repeating-linear-gradient(to right, #111827 0 2px, transparent 2px 5px); }
|
|
688
|
+
.klein { font-size: 85%; color: #6b7280; }
|
|
689
|
+
.breekvoor { break-before: page; page-break-before: always; }
|
|
690
|
+
.heelhouden { break-inside: avoid; page-break-inside: avoid; }
|
|
691
|
+
img { max-width: 100%; }
|
|
692
|
+
</style></head>
|
|
693
693
|
<body>${body}</body></html>`;
|
|
694
694
|
}
|
|
695
695
|
/** Handig voor testen: het document met de voorbeeldgegevens. */
|
|
@@ -6,10 +6,18 @@ export interface PrintDocumentInput {
|
|
|
6
6
|
layoutId?: string;
|
|
7
7
|
/** Optioneel: specifieke printer. Anders wordt er automatisch gekozen. */
|
|
8
8
|
printerId?: string;
|
|
9
|
+
/** Optioneel: naam van de werkplek/computer waar dit vandaan komt. */
|
|
10
|
+
werkplek?: string;
|
|
9
11
|
/** Naam zoals die in de wachtrij verschijnt. */
|
|
10
12
|
documentnaam: string;
|
|
11
13
|
kopieen?: number;
|
|
12
|
-
/**
|
|
14
|
+
/** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */
|
|
15
|
+
herkomst?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Vrije data die bij het afdrukken gebruikt wordt. Geef hierin ALTIJD een
|
|
18
|
+
* order-kenmerk mee (`queue_item_id`, `order_id` of `ordernummer`): daarmee
|
|
19
|
+
* kunnen twee verschillende orders nooit als dubbele aanvraag worden gezien.
|
|
20
|
+
*/
|
|
13
21
|
payload?: Record<string, unknown>;
|
|
14
22
|
isHerprint?: boolean;
|
|
15
23
|
}
|
|
@@ -29,11 +37,12 @@ export declare class DubbeleAanvraagFout extends Error {
|
|
|
29
37
|
*/
|
|
30
38
|
export declare function printDocument(input: PrintDocumentInput): Promise<PrintDocumentResult>;
|
|
31
39
|
/**
|
|
32
|
-
* De printer die aan een documentsoort hangt: eerst de
|
|
33
|
-
*
|
|
34
|
-
* de koppeling op papierformaat. Geeft `null` als
|
|
40
|
+
* De printer die aan een documentsoort hangt: eerst de uitzondering voor de
|
|
41
|
+
* werkplek, dan de standaard (of nieuwste actieve) layout voor die soort met
|
|
42
|
+
* zijn printerkoppeling, anders de koppeling op papierformaat. Geeft `null` als
|
|
43
|
+
* er niets gekoppeld is.
|
|
35
44
|
*/
|
|
36
|
-
export declare function printerVoorDocumenttype(documenttype: DocumentType | string, papierformaat?: string): Promise<string | null>;
|
|
45
|
+
export declare function printerVoorDocumenttype(documenttype: DocumentType | string, papierformaat?: string, werkplek?: string): Promise<string | null>;
|
|
37
46
|
export interface PrintPdfInput {
|
|
38
47
|
/** Documentsoort, alleen voor overzicht en printerkeuze. */
|
|
39
48
|
documenttype: DocumentType | string;
|
|
@@ -46,8 +55,12 @@ export interface PrintPdfInput {
|
|
|
46
55
|
* layout of het papierformaat van de documentsoort.
|
|
47
56
|
*/
|
|
48
57
|
printerId?: string;
|
|
58
|
+
/** Optioneel: werkplek/computernaam; bepaalt mee welke printer wordt gekozen. */
|
|
59
|
+
werkplek?: string;
|
|
49
60
|
kopieen?: number;
|
|
50
61
|
papierformaat?: string;
|
|
62
|
+
/** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */
|
|
63
|
+
herkomst?: string;
|
|
51
64
|
payload?: Record<string, unknown>;
|
|
52
65
|
isHerprint?: boolean;
|
|
53
66
|
}
|
|
@@ -67,6 +80,8 @@ export interface PrintHtmlInput {
|
|
|
67
80
|
/** Verplicht: zonder layout kan de wachtrij zelf geen printer afleiden. */
|
|
68
81
|
printerId: string;
|
|
69
82
|
kopieen?: number;
|
|
83
|
+
/** Optioneel: waar de order vandaan komt ("floriday" of "eigen"). */
|
|
84
|
+
herkomst?: string;
|
|
70
85
|
payload?: Record<string, unknown>;
|
|
71
86
|
isHerprint?: boolean;
|
|
72
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIpD,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,YAAY,EAAE,YAAY,GAAG,MAAM,CAAC;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAuGD,yEAAyE;AACzE,qBAAa,mBAAoB,SAAQ,KAAK;IACnC,IAAI,SAAyB;;CAIvC;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkC3F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,GAAG,MAAM,EACnC,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAGD,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,YAAY,EAAE,YAAY,GAAG,MAAM,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAkD/E;AAGD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,YAAY,GAAG,MAAM,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBjF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBxB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CA4BxF;AAaD,kFAAkF;AAClF,wBAAsB,kBAAkB,CAAC,YAAY,CAAC,EAAE,MAAM;QAQtD,MAAM;UACJ,MAAM;kBACE,MAAM;mBACL,MAAM;gBACT,MAAM;kBACJ,OAAO;KAExB;AAED,wDAAwD;AACxD,wBAAsB,mBAAmB;QAOjC,MAAM;UACJ,MAAM;WACL,MAAM;aACJ,MAAM,GAAG,IAAI;mBACP,MAAM,GAAG,IAAI;YACpB,OAAO;YACP,OAAO;KAElB"}
|