@flowselections/layout-maker 1.59.2 → 1.62.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/dist-lib/components/LivePrintstatusRegel.d.ts.map +1 -1
- package/dist-lib/components/LivePrintstatusRegel.js +29 -29
- package/dist-lib/components/PrintInstallatiesBlok.d.ts +3 -0
- package/dist-lib/components/PrintInstallatiesBlok.d.ts.map +1 -0
- package/dist-lib/components/PrintInstallatiesBlok.js +29 -0
- package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
- package/dist-lib/components/PrintQueuePage.js +27 -8
- package/dist-lib/components/PrintStatusBanner.d.ts.map +1 -1
- package/dist-lib/components/PrintStatusBanner.js +3 -1
- package/dist-lib/components/PrintenInstellenWizard.d.ts.map +1 -1
- package/dist-lib/components/PrintenInstellenWizard.js +14 -1
- package/dist-lib/components/PrintplekDetailPage.d.ts.map +1 -1
- package/dist-lib/components/PrintplekDetailPage.js +18 -5
- package/dist-lib/components/WerkplekOmzettingStap.d.ts.map +1 -1
- package/dist-lib/components/WerkplekOmzettingStap.js +2 -1
- package/dist-lib/components/WerkplekkenTab.d.ts.map +1 -1
- package/dist-lib/components/WerkplekkenTab.js +27 -3
- package/dist-lib/index.d.ts +2 -0
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +5 -3
- package/dist-lib/integrations/supabase/types.d.ts +441 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/computerKoppeling.d.ts +47 -0
- package/dist-lib/lib/computerKoppeling.d.ts.map +1 -0
- package/dist-lib/lib/computerKoppeling.js +48 -0
- package/dist-lib/lib/etiketControle.d.ts +8 -0
- package/dist-lib/lib/etiketControle.d.ts.map +1 -1
- package/dist-lib/lib/etiketControle.js +7 -2
- package/dist-lib/lib/foutTekst.d.ts +6 -0
- package/dist-lib/lib/foutTekst.d.ts.map +1 -1
- package/dist-lib/lib/foutTekst.js +46 -16
- package/dist-lib/lib/layoutVerwijzingen.js +1 -1
- package/dist-lib/lib/printApi.d.ts +1 -1
- package/dist-lib/lib/printApi.d.ts.map +1 -1
- package/dist-lib/lib/printApi.js +5 -4
- package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/printQueue.server.js +16 -2
- package/dist-lib/lib/printService.functions.d.ts +129 -0
- package/dist-lib/lib/printService.functions.d.ts.map +1 -1
- package/dist-lib/lib/printService.functions.js +113 -2
- package/dist-lib/lib/printnodeStatus.d.ts +1 -0
- package/dist-lib/lib/printnodeStatus.d.ts.map +1 -1
- package/dist-lib/lib/printnodeStatus.js +4 -2
- package/dist-lib/lib/printnodeWebhook.d.ts +12 -0
- package/dist-lib/lib/printnodeWebhook.d.ts.map +1 -1
- package/dist-lib/lib/printnodeWebhook.js +27 -1
- package/dist-lib/lib/printplekken.d.ts +3 -1
- package/dist-lib/lib/printplekken.d.ts.map +1 -1
- package/dist-lib/lib/printplekken.js +6 -3
- package/dist-lib/lib/queueTick.d.ts.map +1 -1
- package/dist-lib/lib/queueTick.js +9 -0
- package/dist-lib/lib/runnerRegistry.server.d.ts +5 -0
- package/dist-lib/lib/runnerRegistry.server.d.ts.map +1 -1
- package/dist-lib/lib/runnerRegistry.server.js +22 -1
- package/dist-lib/lib/shellPoort.d.ts +21 -0
- package/dist-lib/lib/shellPoort.d.ts.map +1 -0
- package/dist-lib/lib/shellPoort.js +43 -0
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface PlekComputerRij {
|
|
2
|
+
id: string;
|
|
3
|
+
print_plek_id: string;
|
|
4
|
+
computer_naam: string;
|
|
5
|
+
printnode_computer_id: number | string | null;
|
|
6
|
+
}
|
|
7
|
+
export interface LiveComputer {
|
|
8
|
+
id: string;
|
|
9
|
+
naam: string;
|
|
10
|
+
online: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type ComputerToestand = {
|
|
13
|
+
soort: "gekoppeld";
|
|
14
|
+
computer: LiveComputer;
|
|
15
|
+
}
|
|
16
|
+
/** Nog geen id: print door op de naam, maar toont status onbekend. */
|
|
17
|
+
| {
|
|
18
|
+
soort: "geen_id";
|
|
19
|
+
}
|
|
20
|
+
/** Id bestaat niet meer, wel een computer met dezelfde naam (opnieuw geïnstalleerd). */
|
|
21
|
+
| {
|
|
22
|
+
soort: "zelfde_naam";
|
|
23
|
+
kandidaat: LiveComputer;
|
|
24
|
+
}
|
|
25
|
+
/** Id bestaat niet meer en er is geen eenduidige vervanger. */
|
|
26
|
+
| {
|
|
27
|
+
soort: "verdwenen";
|
|
28
|
+
};
|
|
29
|
+
export declare function toestandVanComputer(rij: PlekComputerRij, live: LiveComputer[]): ComputerToestand;
|
|
30
|
+
export declare const STATUS_ONBEKEND_TEKST = "Status onbekend \u2013 koppel deze computer opnieuw";
|
|
31
|
+
export declare const zelfdeNaamTekst: (naam: string) => string;
|
|
32
|
+
export interface KoppelVoorstelRij {
|
|
33
|
+
rij_id: string;
|
|
34
|
+
print_plek_id: string;
|
|
35
|
+
computer_naam: string;
|
|
36
|
+
huidig_id: string | null;
|
|
37
|
+
gevonden_ids: string[];
|
|
38
|
+
eenduidig: boolean;
|
|
39
|
+
reden: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Voorstel voor de eenmalige vulling. Alleen eenduidig als er precies één
|
|
43
|
+
* PrintNode-computer met exact dezelfde (getrimde) naam is en dat id nog niet
|
|
44
|
+
* bij een andere rij hoort.
|
|
45
|
+
*/
|
|
46
|
+
export declare function maakKoppelVoorstel(rijen: PlekComputerRij[], live: LiveComputer[]): KoppelVoorstelRij[];
|
|
47
|
+
//# sourceMappingURL=computerKoppeling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computerKoppeling.d.ts","sourceRoot":"","sources":["../../src/lib/computerKoppeling.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE;AAChD,sEAAsE;GACpE;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE;AACtB,wFAAwF;GACtF;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAAE;AACnD,+DAA+D;GAC7D;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAI3B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAShG;AAED,eAAO,MAAM,qBAAqB,wDAAmD,CAAC;AACtF,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,WACyB,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,iBAAiB,EAAE,CAoBtG"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// src/lib/computerKoppeling.ts — computers op een printplek koppelen op het
|
|
3
|
+
// vaste PrintNode-computer-id. Pure logica, zonder database of netwerk.
|
|
4
|
+
// ============================================================================
|
|
5
|
+
const norm = (s) => (s ?? "").trim();
|
|
6
|
+
export function toestandVanComputer(rij, live) {
|
|
7
|
+
const lijst = Array.isArray(live) ? live : [];
|
|
8
|
+
const id = rij.printnode_computer_id == null ? "" : String(rij.printnode_computer_id);
|
|
9
|
+
if (!id)
|
|
10
|
+
return { soort: "geen_id" };
|
|
11
|
+
const op = lijst.find((c) => String(c.id) === id);
|
|
12
|
+
if (op)
|
|
13
|
+
return { soort: "gekoppeld", computer: op };
|
|
14
|
+
const zelfde = lijst.filter((c) => norm(c.naam) === norm(rij.computer_naam));
|
|
15
|
+
if (zelfde.length === 1)
|
|
16
|
+
return { soort: "zelfde_naam", kandidaat: zelfde[0] };
|
|
17
|
+
return { soort: "verdwenen" };
|
|
18
|
+
}
|
|
19
|
+
export const STATUS_ONBEKEND_TEKST = "Status onbekend – koppel deze computer opnieuw";
|
|
20
|
+
export const zelfdeNaamTekst = (naam) => `Er is een computer met dezelfde naam gevonden: ${naam}. Koppelen?`;
|
|
21
|
+
/**
|
|
22
|
+
* Voorstel voor de eenmalige vulling. Alleen eenduidig als er precies één
|
|
23
|
+
* PrintNode-computer met exact dezelfde (getrimde) naam is en dat id nog niet
|
|
24
|
+
* bij een andere rij hoort.
|
|
25
|
+
*/
|
|
26
|
+
export function maakKoppelVoorstel(rijen, live) {
|
|
27
|
+
const lijst = Array.isArray(live) ? live : [];
|
|
28
|
+
const veilig = Array.isArray(rijen) ? rijen : [];
|
|
29
|
+
const alInGebruik = new Set(veilig.filter((r) => r.printnode_computer_id != null).map((r) => String(r.printnode_computer_id)));
|
|
30
|
+
return veilig.map((r) => {
|
|
31
|
+
const huidig = r.printnode_computer_id == null ? null : String(r.printnode_computer_id);
|
|
32
|
+
const gevonden = lijst.filter((c) => norm(c.naam) === norm(r.computer_naam)).map((c) => String(c.id));
|
|
33
|
+
if (huidig) {
|
|
34
|
+
return { rij_id: r.id, print_plek_id: r.print_plek_id, computer_naam: r.computer_naam, huidig_id: huidig, gevonden_ids: gevonden, eenduidig: false, reden: "Heeft al een id" };
|
|
35
|
+
}
|
|
36
|
+
let reden = "Eenduidig";
|
|
37
|
+
let eenduidig = false;
|
|
38
|
+
if (gevonden.length === 0)
|
|
39
|
+
reden = "Geen PrintNode-computer met deze naam";
|
|
40
|
+
else if (gevonden.length > 1)
|
|
41
|
+
reden = "Meerdere PrintNode-computers met deze naam";
|
|
42
|
+
else if (alInGebruik.has(gevonden[0]))
|
|
43
|
+
reden = "Dit id hoort al bij een andere computer";
|
|
44
|
+
else
|
|
45
|
+
eenduidig = true;
|
|
46
|
+
return { rij_id: r.id, print_plek_id: r.print_plek_id, computer_naam: r.computer_naam, huidig_id: null, gevonden_ids: gevonden, eenduidig, reden };
|
|
47
|
+
});
|
|
48
|
+
}
|
|
@@ -15,6 +15,14 @@ export type EtiketUitkomst = {
|
|
|
15
15
|
bericht: string;
|
|
16
16
|
};
|
|
17
17
|
export declare const maatTekst: (b: number, h: number) => string;
|
|
18
|
+
/** Leesbare maat voor de gebruiker: "25,1 × 88,9 mm". */
|
|
19
|
+
export declare const maatNl: (b: number, h: number) => string;
|
|
20
|
+
/** "99010 Standard Address (25,1 × 88,9 mm)". */
|
|
21
|
+
export declare const etiketTekst: (e: {
|
|
22
|
+
naam: string;
|
|
23
|
+
breedte_mm: number;
|
|
24
|
+
hoogte_mm: number;
|
|
25
|
+
}) => string;
|
|
18
26
|
/** Leest een opgeslagen geladen etiket; ongeldig = null. */
|
|
19
27
|
export declare function leesGeladenEtiket(v: unknown): GeladenEtiket | null;
|
|
20
28
|
/** PrintNode-formaten (tienden mm) als keuzelijst in mm, zonder lege maten. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"etiketControle.d.ts","sourceRoot":"","sources":["../../src/lib/etiketControle.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAKtF,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"etiketControle.d.ts","sourceRoot":"","sources":["../../src/lib/etiketControle.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,aAAa;IAC5B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAKtF,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAA2B,CAAC;AAC1E,yDAAyD;AACzD,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WACmC,CAAC;AAC/E,iDAAiD;AACjD,eAAO,MAAM,WAAW,GAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,WAC3B,CAAC;AAG5D,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAQlE;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,EAAE,CAW7D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAClE,OAAO,EAAE,aAAa,GAAG,IAAI,EAC7B,WAAW,EAAE,MAAM,GAClB,cAAc,CA6BhB;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa/F"}
|
|
@@ -9,6 +9,11 @@
|
|
|
9
9
|
const MARGE_MM = 2;
|
|
10
10
|
const mm = (n) => Math.round(n * 10) / 10;
|
|
11
11
|
export const maatTekst = (b, h) => `${mm(b)}×${mm(h)} mm`;
|
|
12
|
+
/** Leesbare maat voor de gebruiker: "25,1 × 88,9 mm". */
|
|
13
|
+
export const maatNl = (b, h) => `${String(mm(b)).replace(".", ",")} × ${String(mm(h)).replace(".", ",")} mm`;
|
|
14
|
+
/** "99010 Standard Address (25,1 × 88,9 mm)". */
|
|
15
|
+
export const etiketTekst = (e) => `${e.naam.trim()} (${maatNl(e.breedte_mm, e.hoogte_mm)})`;
|
|
16
|
+
const heel = (b, h) => `${Math.round(b)} × ${Math.round(h)} mm`;
|
|
12
17
|
/** Leest een opgeslagen geladen etiket; ongeldig = null. */
|
|
13
18
|
export function leesGeladenEtiket(v) {
|
|
14
19
|
if (!v || typeof v !== "object")
|
|
@@ -46,7 +51,7 @@ export function etiketPast(doc, geladen, printerNaam) {
|
|
|
46
51
|
return {
|
|
47
52
|
ok: false,
|
|
48
53
|
code: "GEEN_GELADEN_ETIKET",
|
|
49
|
-
bericht: `
|
|
54
|
+
bericht: `Er is nog niet ingesteld welk etiket in labelprinter ${printerNaam} zit.`,
|
|
50
55
|
};
|
|
51
56
|
}
|
|
52
57
|
const { breedte_mm: b, hoogte_mm: h } = doc;
|
|
@@ -56,7 +61,7 @@ export function etiketPast(doc, geladen, printerNaam) {
|
|
|
56
61
|
return {
|
|
57
62
|
ok: false,
|
|
58
63
|
code: "FORMAAT_PAST_NIET",
|
|
59
|
-
bericht:
|
|
64
|
+
bericht: `Past niet op het etiket in de printer (${heel(b, h)} op ${heel(geladen.breedte_mm, geladen.hoogte_mm)}).`,
|
|
60
65
|
};
|
|
61
66
|
}
|
|
62
67
|
const docLiggend = b > h;
|
|
@@ -10,6 +10,12 @@ export interface DubbelOrigineel {
|
|
|
10
10
|
* documentsoort) en geeft het bestaande opdracht-id, de printer en de tijd.
|
|
11
11
|
*/
|
|
12
12
|
export declare function leesDubbelOrigineel(err: unknown): DubbelOrigineel | null;
|
|
13
|
+
/**
|
|
14
|
+
* Zet een bekende technische melding om naar een zin voor de gebruiker.
|
|
15
|
+
* Geeft null als de melding niet bekend is. De oorspronkelijke melding blijft
|
|
16
|
+
* bewaard en is alleen onder "Details voor beheer" te zien.
|
|
17
|
+
*/
|
|
18
|
+
export declare function gebruikersTekst(melding: unknown, soortLabel?: (t: string) => string): string | null;
|
|
13
19
|
/** Maakt van een (Supabase-)fout een zin die de gebruiker zelf kan herleiden. */
|
|
14
20
|
export declare function leesbareFout(err: unknown, prefix?: string): string;
|
|
15
21
|
//# sourceMappingURL=foutTekst.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foutTekst.d.ts","sourceRoot":"","sources":["../../src/lib/foutTekst.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAkBxE;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,SAAoB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"foutTekst.d.ts","sourceRoot":"","sources":["../../src/lib/foutTekst.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAkBxE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CA6BnG;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,SAAoB,GAAG,MAAM,CA2B7E"}
|
|
@@ -25,15 +25,52 @@ export function leesDubbelOrigineel(err) {
|
|
|
25
25
|
return { jobId: null, printerId: null, aangemaaktOp: null };
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Zet een bekende technische melding om naar een zin voor de gebruiker.
|
|
30
|
+
* Geeft null als de melding niet bekend is. De oorspronkelijke melding blijft
|
|
31
|
+
* bewaard en is alleen onder "Details voor beheer" te zien.
|
|
32
|
+
*/
|
|
33
|
+
export function gebruikersTekst(melding, soortLabel) {
|
|
34
|
+
const m = String(melding ?? "").trim();
|
|
35
|
+
if (!m)
|
|
36
|
+
return null;
|
|
37
|
+
if (m.includes("FORMAAT_PAST_NIET")) {
|
|
38
|
+
if (m.includes("Past niet op het etiket"))
|
|
39
|
+
return m.replace(/^[A-Z_]+:\s*/, "");
|
|
40
|
+
const maten = [...m.matchAll(/(\d+(?:[.,]\d+)?)\s*[×x]\s*(\d+(?:[.,]\d+)?)\s*mm/g)].map((x) => `${Math.round(Number(x[1].replace(",", ".")))} × ${Math.round(Number(x[2].replace(",", ".")))} mm`);
|
|
41
|
+
return maten.length >= 2
|
|
42
|
+
? `Past niet op het etiket in de printer (${maten[0]} op ${maten[1]}).`
|
|
43
|
+
: "Past niet op het etiket in de printer.";
|
|
44
|
+
}
|
|
45
|
+
if (m.includes("GEEN_GELADEN_ETIKET"))
|
|
46
|
+
return "Er is nog niet ingesteld welk etiket in de labelprinter zit.";
|
|
47
|
+
if (m.includes("GEEN_PRINTER")) {
|
|
48
|
+
const plek = m.match(/printplek '([^']*)'/)?.[1];
|
|
49
|
+
const type = m.match(/documenttype '([^']*)'/)?.[1];
|
|
50
|
+
const soort = type ? (soortLabel ? soortLabel(type) : type) : "dit document";
|
|
51
|
+
return `Er is geen printer ingesteld voor ‘${soort}’${plek ? ` op printplek ‘${plek}’` : ""}. Stel er een in bij Printen › Printplekken.`;
|
|
52
|
+
}
|
|
53
|
+
if (m.includes("DUBBEL_ORIGINEEL") || m.includes("print_jobs_een_origineel_per_kar")) {
|
|
54
|
+
return "Deze kar is al geprint. Gebruik ‘Opnieuw printen’.";
|
|
55
|
+
}
|
|
56
|
+
if (/layout_variant/i.test(m)) {
|
|
57
|
+
return "De pakbon wacht nog op de karindeling en wordt automatisch geprint zodra die klaar is.";
|
|
58
|
+
}
|
|
59
|
+
if (/Restpakbon zonder restregels/i.test(m)) {
|
|
60
|
+
return "De restpakbon is leeg (geen resterende fusten); er is niets geprint.";
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
28
64
|
/** Maakt van een (Supabase-)fout een zin die de gebruiker zelf kan herleiden. */
|
|
29
65
|
export function leesbareFout(err, prefix = "Opslaan mislukt") {
|
|
30
66
|
const e = (err ?? {});
|
|
31
67
|
const msg = String(e.message ?? (typeof err === "string" ? err : "")).trim();
|
|
32
68
|
const dubbel = leesDubbelOrigineel(err);
|
|
33
|
-
if (dubbel)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
69
|
+
if (dubbel)
|
|
70
|
+
return "Deze kar is al geprint. Gebruik ‘Opnieuw printen’.";
|
|
71
|
+
const bekend = gebruikersTekst(msg);
|
|
72
|
+
if (bekend)
|
|
73
|
+
return bekend;
|
|
37
74
|
if (msg.includes("PRINTER_NIET_OP_PLEK")) {
|
|
38
75
|
const m = msg.match(/werkplek\s+(.+?)\.?$/);
|
|
39
76
|
return `${prefix}: deze printer is niet gekoppeld aan de printplek${m ? ` van werkplek ${m[1]}` : ""}. Koppel hem eerst aan de printplek.`;
|
|
@@ -50,16 +87,9 @@ export function leesbareFout(err, prefix = "Opslaan mislukt") {
|
|
|
50
87
|
return `${prefix}: de gekozen printer of plek bestaat niet (meer).`;
|
|
51
88
|
if (/failed to fetch|network/i.test(msg))
|
|
52
89
|
return `${prefix}: geen verbinding met de server.`;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
try {
|
|
59
|
-
const ruw = JSON.stringify(err);
|
|
60
|
-
if (ruw && ruw !== "{}" && ruw !== "null")
|
|
61
|
-
return `${prefix}: ${ruw.slice(0, 300)}`;
|
|
62
|
-
}
|
|
63
|
-
catch { /* niets */ }
|
|
64
|
-
return `${prefix} (geen reden ontvangen).`;
|
|
90
|
+
// Een gewone zin (geen code, geen JSON) mag de gebruiker zien.
|
|
91
|
+
const zin = msg.replace(/^[A-Z_]+:\s*/, "");
|
|
92
|
+
if (zin && !/^[A-Z0-9_]+$/.test(zin) && !/^[\[{]/.test(zin) && !/\b[A-Z]{2,}_[A-Z_]+\b/.test(zin))
|
|
93
|
+
return `${prefix}: ${zin}`;
|
|
94
|
+
return `${prefix}. Probeer het opnieuw; blijft het, meld het bij kantoor.`;
|
|
65
95
|
}
|
|
@@ -112,7 +112,7 @@ export async function zetVerwijzingOm(v, nieuwLayoutId) {
|
|
|
112
112
|
export const BRON_LABEL = {
|
|
113
113
|
eigen_layout: "eigen layout",
|
|
114
114
|
extern_pdf: "aangeleverd document",
|
|
115
|
-
floriday_1op1: "Floriday-document
|
|
115
|
+
floriday_1op1: "Origineel Floriday-document",
|
|
116
116
|
render_html: "aangeleverde opmaak",
|
|
117
117
|
klantlayout: "klantlayout",
|
|
118
118
|
onbekend: "onbekend",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type DubbelOrigineel } from "./foutTekst.js";
|
|
2
|
-
import type
|
|
2
|
+
import { type DocumentType } from "./documentTypes.js";
|
|
3
3
|
export interface PrintDocumentInput {
|
|
4
4
|
/** Documentsoort, bijv. "pakbon" of "productiebon". */
|
|
5
5
|
documenttype: DocumentType | string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAKxE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"printApi.d.ts","sourceRoot":"","sources":["../../src/lib/printApi.ts"],"names":[],"mappings":"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"}
|
package/dist-lib/lib/printApi.js
CHANGED
|
@@ -8,6 +8,7 @@ import { supabase } from "./supabaseClient.js";
|
|
|
8
8
|
import { printplekNaam, printplekVoorComputer } from "./printplekken.js";
|
|
9
9
|
import { routeringVoor } from "./printRoutering.js";
|
|
10
10
|
import { bronVoorDocument } from "./documentBron.js";
|
|
11
|
+
import { documentTypeLabel } from "./documentTypes.js";
|
|
11
12
|
const arr = (v) => (Array.isArray(v) ? v : []);
|
|
12
13
|
/** Zoekt de te gebruiken layout: expliciet, anders standaard, anders de nieuwste. */
|
|
13
14
|
async function bepaalLayout(documenttype, layoutId) {
|
|
@@ -116,7 +117,7 @@ export class DubbeleAanvraagFout extends Error {
|
|
|
116
117
|
*/
|
|
117
118
|
export class DubbelOrigineelFout extends Error {
|
|
118
119
|
constructor(d) {
|
|
119
|
-
super(
|
|
120
|
+
super("Deze kar is al geprint. Gebruik ‘Opnieuw printen’.");
|
|
120
121
|
this.name = "DubbelOrigineelFout";
|
|
121
122
|
this.code = "DUBBEL_ORIGINEEL";
|
|
122
123
|
this.bestaandJobId = d.jobId;
|
|
@@ -180,12 +181,12 @@ async function geenPrinterMelding(documenttype, printplekId, werkplek) {
|
|
|
180
181
|
const plek = printplekId ?? (werkplek ? await printplekVoorComputer(werkplek) : null);
|
|
181
182
|
const naam = plek ? await printplekNaam(plek) : null;
|
|
182
183
|
if (naam) {
|
|
183
|
-
return `
|
|
184
|
+
return `Er is geen printer ingesteld voor ‘${documentTypeLabel(documenttype)}’ op printplek ‘${naam}’. Stel er een in bij Printen › Printplekken.`;
|
|
184
185
|
}
|
|
185
186
|
if (werkplek) {
|
|
186
|
-
return `
|
|
187
|
+
return `Er is geen printer ingesteld voor ‘${documentTypeLabel(documenttype)}’ op werkplek ‘${werkplek}’. Koppel deze werkplek bij Printen › Printplekken.`;
|
|
187
188
|
}
|
|
188
|
-
return `
|
|
189
|
+
return `Er is geen printer ingesteld voor ‘${documentTypeLabel(documenttype)}’. Stel er een in bij Printen › Printplekken.`;
|
|
189
190
|
}
|
|
190
191
|
/**
|
|
191
192
|
* Zet een document in de printwachtrij. Bedoeld voor gebruik vanuit andere
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"printQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/printQueue.server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsC5D,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,mFAAmF;AACnF,MAAM,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAoDD,2EAA2E;AAC3E,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,SAAsB;CACpC;AAED,+EAA+E;AAC/E,qBAAa,iBAAkB,SAAQ,KAAK;IACjC,IAAI,SAAuB;CACrC;AAED,oFAAoF;AACpF,qBAAa,kBAAmB,SAAQ,gBAAgB;IAC7C,IAAI,SAAwB;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvE,yEAAyE;AACzE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;AAE5G,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAcnD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAI7D;AASD,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAQnD;AAkCD,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAIlE;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAe7C;AA8ND;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQlH;AAWD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqClF;AA8SD;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,EAClB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,MAAM,CAAC,CAkajB;AAGD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY1D;AAqBD,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAsCzG;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,EAAE,OAAO,EAAE,MAAM,iBAiBxH;AAgVD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,OAAO,EACX,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAOD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGlG;AAqID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2BD,oFAAoF;AACpF,wBAAsB,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8GtF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,OAAO,EACX,GAAG,EAAE,GAAG,GACP,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA6B1D"}
|
|
@@ -853,7 +853,7 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
|
|
|
853
853
|
: "kar";
|
|
854
854
|
const engineVariant = job.layout_variant ?? p.layout_variant ?? p.layoutVariant ?? p.data?.layout_variant ?? null;
|
|
855
855
|
if (isEngineOpdracht(job) && pakbonMethode === "beide" && !["full_cart", "partial_order"].includes(String(engineVariant ?? ""))) {
|
|
856
|
-
throw new WachtOpLayoutFout("
|
|
856
|
+
throw new WachtOpLayoutFout("De pakbon wacht nog op de karindeling en wordt automatisch geprint zodra die klaar is.");
|
|
857
857
|
}
|
|
858
858
|
// Barcode en kargegevens van de Engine mogen niet verloren gaan wanneer
|
|
859
859
|
// de ordergegevens uit een subobject komen.
|
|
@@ -936,7 +936,7 @@ export async function bouwHtml(db, job, keuze, uitkomst) {
|
|
|
936
936
|
// verzameld moet worden. Dan liever geen pakbon dan een pakbon met de
|
|
937
937
|
// volledige karinhoud erop.
|
|
938
938
|
if (pakbonLayoutVariant(engineVariant) === "partial_order" && !deelkarRegels(order).length) {
|
|
939
|
-
throw new EngineContractFout("
|
|
939
|
+
throw new EngineContractFout("De restpakbon is leeg (geen resterende fusten); er is niets geprint.");
|
|
940
940
|
}
|
|
941
941
|
const cartId = engineCartId;
|
|
942
942
|
const karren = Array.isArray(order.karren) ? order.karren : [];
|
|
@@ -1755,6 +1755,20 @@ export async function verwerkWachtrij(db, max = 5) {
|
|
|
1755
1755
|
// Begrensd parallel: meerdere pakbonnen van één order lopen gelijktijdig,
|
|
1756
1756
|
// maar één mislukte opdracht annuleert de andere nooit.
|
|
1757
1757
|
const jobs = [...pdfJobs, ...gewoneJobs];
|
|
1758
|
+
// Vastleggen welke installatie (en versie) deze opdrachten verwerkt.
|
|
1759
|
+
if (jobs.length > 0) {
|
|
1760
|
+
try {
|
|
1761
|
+
const { eigenBasisUrl } = await import("./runnerRegistry.server.js");
|
|
1762
|
+
const { MODULE_VERSIE } = await import("./shellPoort.js");
|
|
1763
|
+
await db
|
|
1764
|
+
.from("print_jobs")
|
|
1765
|
+
.update({ verwerkt_door_runner: eigenBasisUrl(), verwerkt_met_versie: MODULE_VERSIE })
|
|
1766
|
+
.in("id", jobs.map((j) => j.id));
|
|
1767
|
+
}
|
|
1768
|
+
catch {
|
|
1769
|
+
/* vastleggen mag het printen nooit blokkeren */
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1758
1772
|
const uitkomsten = await metPool(jobs, JOB_PARALLEL, async (job) => {
|
|
1759
1773
|
try {
|
|
1760
1774
|
return await verwerkJob(db, job);
|
|
@@ -134,6 +134,7 @@ export declare const webhookStatus: import("@tanstack/start-client-core").Option
|
|
|
134
134
|
claims: import("@supabase/auth-js").JwtPayload;
|
|
135
135
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
136
136
|
meldingen: {
|
|
137
|
+
weergave: string;
|
|
137
138
|
ontvangen_op: string;
|
|
138
139
|
http_status: number;
|
|
139
140
|
soorten: string[];
|
|
@@ -173,4 +174,132 @@ export declare const webhookOpnieuwKoppelen: import("@tanstack/start-client-core
|
|
|
173
174
|
ok: false;
|
|
174
175
|
reden: string;
|
|
175
176
|
}>>;
|
|
177
|
+
/**
|
|
178
|
+
* Printinstallaties en of de Shell print. Alleen beheerders zien de lijst;
|
|
179
|
+
* iedereen ziet de stilstandmelding.
|
|
180
|
+
*/
|
|
181
|
+
export declare const printInstallaties: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
182
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
183
|
+
userId: string;
|
|
184
|
+
claims: import("@supabase/auth-js").JwtPayload;
|
|
185
|
+
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
186
|
+
installaties: [];
|
|
187
|
+
stil: true;
|
|
188
|
+
reden: "geen_shell_adres";
|
|
189
|
+
sinds: null;
|
|
190
|
+
ok: true;
|
|
191
|
+
beheer: false;
|
|
192
|
+
} | {
|
|
193
|
+
installaties: [];
|
|
194
|
+
stil: true;
|
|
195
|
+
reden: "shell_niet_aangemeld";
|
|
196
|
+
sinds: null;
|
|
197
|
+
ok: true;
|
|
198
|
+
beheer: false;
|
|
199
|
+
} | {
|
|
200
|
+
installaties: [];
|
|
201
|
+
stil: true;
|
|
202
|
+
reden: "shell_reageert_niet";
|
|
203
|
+
sinds: string;
|
|
204
|
+
ok: true;
|
|
205
|
+
beheer: false;
|
|
206
|
+
} | {
|
|
207
|
+
installaties: [];
|
|
208
|
+
stil: false;
|
|
209
|
+
reden: null;
|
|
210
|
+
sinds: null;
|
|
211
|
+
ok: true;
|
|
212
|
+
beheer: false;
|
|
213
|
+
} | {
|
|
214
|
+
installaties: {
|
|
215
|
+
adres: string;
|
|
216
|
+
versie: string | null;
|
|
217
|
+
laatstActief: string | null;
|
|
218
|
+
actief: boolean;
|
|
219
|
+
isShell: boolean;
|
|
220
|
+
opdrachten7d: any;
|
|
221
|
+
}[];
|
|
222
|
+
stil: true;
|
|
223
|
+
reden: "geen_shell_adres";
|
|
224
|
+
sinds: null;
|
|
225
|
+
ok: true;
|
|
226
|
+
beheer: true;
|
|
227
|
+
} | {
|
|
228
|
+
installaties: {
|
|
229
|
+
adres: string;
|
|
230
|
+
versie: string | null;
|
|
231
|
+
laatstActief: string | null;
|
|
232
|
+
actief: boolean;
|
|
233
|
+
isShell: boolean;
|
|
234
|
+
opdrachten7d: any;
|
|
235
|
+
}[];
|
|
236
|
+
stil: true;
|
|
237
|
+
reden: "shell_niet_aangemeld";
|
|
238
|
+
sinds: null;
|
|
239
|
+
ok: true;
|
|
240
|
+
beheer: true;
|
|
241
|
+
} | {
|
|
242
|
+
installaties: {
|
|
243
|
+
adres: string;
|
|
244
|
+
versie: string | null;
|
|
245
|
+
laatstActief: string | null;
|
|
246
|
+
actief: boolean;
|
|
247
|
+
isShell: boolean;
|
|
248
|
+
opdrachten7d: any;
|
|
249
|
+
}[];
|
|
250
|
+
stil: true;
|
|
251
|
+
reden: "shell_reageert_niet";
|
|
252
|
+
sinds: string;
|
|
253
|
+
ok: true;
|
|
254
|
+
beheer: true;
|
|
255
|
+
} | {
|
|
256
|
+
installaties: {
|
|
257
|
+
adres: string;
|
|
258
|
+
versie: string | null;
|
|
259
|
+
laatstActief: string | null;
|
|
260
|
+
actief: boolean;
|
|
261
|
+
isShell: boolean;
|
|
262
|
+
opdrachten7d: any;
|
|
263
|
+
}[];
|
|
264
|
+
stil: false;
|
|
265
|
+
reden: null;
|
|
266
|
+
sinds: null;
|
|
267
|
+
ok: true;
|
|
268
|
+
beheer: true;
|
|
269
|
+
}>>;
|
|
270
|
+
/** Stap A: alleen lezen. Voorstel per printplek-computer. */
|
|
271
|
+
export declare const computerKoppelVoorstel: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
272
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
273
|
+
userId: string;
|
|
274
|
+
claims: import("@supabase/auth-js").JwtPayload;
|
|
275
|
+
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
276
|
+
ok: false;
|
|
277
|
+
fout: any;
|
|
278
|
+
rijen: [];
|
|
279
|
+
} | {
|
|
280
|
+
ok: true;
|
|
281
|
+
rijen: import("./computerKoppeling.js").KoppelVoorstelRij[];
|
|
282
|
+
fout?: undefined;
|
|
283
|
+
}>>;
|
|
284
|
+
/**
|
|
285
|
+
* Koppelt één printplek-computer aan een PrintNode-id (stap B per rij, of de
|
|
286
|
+
* knop "Koppelen"). Controleert live dat het id bestaat en dezelfde naam heeft.
|
|
287
|
+
*/
|
|
288
|
+
export declare const koppelComputerOpId: import("@tanstack/start-client-core").RequiredFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
289
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
290
|
+
userId: string;
|
|
291
|
+
claims: import("@supabase/auth-js").JwtPayload;
|
|
292
|
+
}, undefined, undefined, undefined>], (d: {
|
|
293
|
+
rijId: string;
|
|
294
|
+
printnodeId: string;
|
|
295
|
+
}) => {
|
|
296
|
+
rijId: string;
|
|
297
|
+
printnodeId: string;
|
|
298
|
+
}, Promise<{
|
|
299
|
+
ok: false;
|
|
300
|
+
fout: any;
|
|
301
|
+
} | {
|
|
302
|
+
ok: true;
|
|
303
|
+
fout?: undefined;
|
|
304
|
+
}>>;
|
|
176
305
|
//# sourceMappingURL=printService.functions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printService.functions.d.ts","sourceRoot":"","sources":["../../src/lib/printService.functions.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;;;;;;;;;;;;GASxB,CAAC;AAEL,eAAO,MAAM,qBAAqB;;;;8CAER;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;GAmBC,CAAC;AAEL,eAAO,MAAM,WAAW;;;;8CAEE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;GAU7C,CAAC;AAEL,eAAO,MAAM,uBAAuB;;;;+CAET;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE;;;;;;;;;;GAqE5C,CAAC;AAEL,eAAO,MAAM,gBAAgB;;;;;;;;;;;;GAYzB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;GAUnC,CAAC;AAEL,oFAAoF;AACpF,eAAO,MAAM,cAAc;;;;iFAgBvB,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;8CAED;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;GAyDvC,CAAC;AAEL,qDAAqD;AACrD,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"printService.functions.d.ts","sourceRoot":"","sources":["../../src/lib/printService.functions.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;;;;;;;;;;;;GASxB,CAAC;AAEL,eAAO,MAAM,qBAAqB;;;;8CAER;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;;;;;;;;;;;;;GAmBC,CAAC;AAEL,eAAO,MAAM,WAAW;;;;8CAEE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;GAU7C,CAAC;AAEL,eAAO,MAAM,uBAAuB;;;;+CAET;IAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE;;;;;;;;;;GAqE5C,CAAC;AAEL,eAAO,MAAM,gBAAgB;;;;;;;;;;;;GAYzB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;GAUnC,CAAC;AAEL,oFAAoF;AACpF,eAAO,MAAM,cAAc;;;;iFAgBvB,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;8CAED;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;GAyDvC,CAAC;AAEL,qDAAqD;AACrD,eAAO,MAAM,aAAa;;;;;;;sBAaJ,MAAM;qBAAe,MAAM;iBAAW,MAAM,EAAE;uBAAiB,MAAM,EAAE;kBAAY,MAAM;uBAAiB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;GAMpI,CAAC;AAEL,qEAAqE;AACrE,eAAO,MAAM,sBAAsB;;;;;;;;;;GAoB/B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqD1B,CAAC;AAeL,6DAA6D;AAC7D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;GAiB/B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;0CAET;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE;;;;;;;;;GAqBxD,CAAC"}
|