@flowselections/layout-maker 1.45.8 → 1.45.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist-lib/components/AfdrukKnop.js +64 -64
  2. package/dist-lib/components/NetwerkPrintersDialog.js +79 -79
  3. package/dist-lib/components/PakbonPreview.d.ts.map +1 -1
  4. package/dist-lib/components/PakbonPreview.js +2 -2
  5. package/dist-lib/components/PdfMapToestemmingBanner.d.ts.map +1 -1
  6. package/dist-lib/components/PdfMapToestemmingBanner.js +55 -8
  7. package/dist-lib/components/PrintQueuePage.d.ts.map +1 -1
  8. package/dist-lib/components/PrintQueuePage.js +42 -5
  9. package/dist-lib/index.d.ts +1 -0
  10. package/dist-lib/index.d.ts.map +1 -1
  11. package/dist-lib/index.js +1 -0
  12. package/dist-lib/integrations/supabase/auth-middleware.d.ts +4642 -238
  13. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  14. package/dist-lib/integrations/supabase/client.server.d.ts +4642 -238
  15. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  16. package/dist-lib/integrations/supabase/client.server.js +1 -1
  17. package/dist-lib/integrations/supabase/moduleClient.d.ts +4642 -238
  18. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  19. package/dist-lib/integrations/supabase/types.d.ts +4663 -218
  20. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  21. package/dist-lib/lib/aiLayout.functions.d.ts +4642 -238
  22. package/dist-lib/lib/aiLayout.functions.d.ts.map +1 -1
  23. package/dist-lib/lib/fieldRegistry.js +1 -0
  24. package/dist-lib/lib/logoLibrary.d.ts +2 -1
  25. package/dist-lib/lib/logoLibrary.d.ts.map +1 -1
  26. package/dist-lib/lib/logoLibrary.js +42 -2
  27. package/dist-lib/lib/orderData.server.d.ts.map +1 -1
  28. package/dist-lib/lib/orderData.server.js +13 -0
  29. package/dist-lib/lib/pakbonBuilder.d.ts +26 -0
  30. package/dist-lib/lib/pakbonBuilder.d.ts.map +1 -1
  31. package/dist-lib/lib/pakbonBuilder.js +37 -0
  32. package/dist-lib/lib/pakbonContent.d.ts.map +1 -1
  33. package/dist-lib/lib/pakbonContent.js +2 -2
  34. package/dist-lib/lib/pakbonHtml.d.ts.map +1 -1
  35. package/dist-lib/lib/pakbonHtml.js +2 -2
  36. package/dist-lib/lib/pakbonPresentation.d.ts.map +1 -1
  37. package/dist-lib/lib/pakbonPresentation.js +2 -4
  38. package/dist-lib/lib/pdfJobSaver.d.ts.map +1 -1
  39. package/dist-lib/lib/pdfJobSaver.js +31 -2
  40. package/dist-lib/lib/pdfMap.d.ts +7 -0
  41. package/dist-lib/lib/pdfMap.d.ts.map +1 -1
  42. package/dist-lib/lib/pdfMap.js +17 -0
  43. package/dist-lib/lib/printQueue.server.d.ts.map +1 -1
  44. package/dist-lib/lib/printQueue.server.js +142 -15
  45. package/dist-lib/lib/printService.functions.d.ts +47982 -52
  46. package/dist-lib/lib/printService.functions.d.ts.map +1 -1
  47. package/dist-lib/lib/printService.functions.js +69 -0
  48. package/dist-lib/lib/printService.server.d.ts +2 -0
  49. package/dist-lib/lib/printService.server.d.ts.map +1 -1
  50. package/dist-lib/lib/printService.server.js +10 -0
  51. package/dist-lib/lib/profielHtml.d.ts.map +1 -1
  52. package/dist-lib/lib/profielHtml.js +4 -1
  53. package/package.json +158 -158
@@ -52,6 +52,75 @@ export const printStatus = createServerFn({ method: "POST" })
52
52
  return { ok: false, fout: e instanceof Error ? e.message : "Status ophalen mislukt" };
53
53
  }
54
54
  });
55
+ export const annuleerPrintOpdrachten = createServerFn({ method: "POST" })
56
+ .middleware([requireSupabaseAuth])
57
+ .inputValidator((input) => ({
58
+ jobIds: Array.isArray(input?.jobIds)
59
+ ? input.jobIds.filter((id) => typeof id === "string" && id.length > 0).slice(0, 200)
60
+ : [],
61
+ }))
62
+ .handler(async ({ data, context }) => {
63
+ // De server bepaalt de grens. Zo vallen ook opdrachten mee die al geclaimd
64
+ // zijn maar nog niet in de browserlijst stonden, terwijl later aangemaakte
65
+ // opdrachten direct normaal kunnen worden verwerkt.
66
+ const cutoff = new Date().toISOString();
67
+ let openJobs = [];
68
+ if (data.jobIds.length === 0) {
69
+ const { data: openData, error: annuleerFout } = await context.supabase.rpc("cancel_open_print_jobs", { _cutoff: cutoff });
70
+ if (annuleerFout)
71
+ throw new Error(`Annuleren mislukt: ${annuleerFout.message}`);
72
+ openJobs = Array.isArray(openData) ? openData : [];
73
+ }
74
+ else {
75
+ const { data: geselecteerd, error: leesFout } = await context.supabase
76
+ .from("print_jobs")
77
+ .select("id, extern_job_id")
78
+ .in("id", data.jobIds)
79
+ .in("status", ["wachtend", "bezig"]);
80
+ if (leesFout)
81
+ throw new Error(`Printopdracht ophalen mislukt: ${leesFout.message}`);
82
+ openJobs = Array.isArray(geselecteerd) ? geselecteerd : [];
83
+ const ids = openJobs.map((job) => job.id);
84
+ if (ids.length > 0) {
85
+ const { error: wijzigFout } = await context.supabase
86
+ .from("print_jobs")
87
+ .update({
88
+ status: "geannuleerd",
89
+ verwerkingsfase: "geannuleerd",
90
+ fase_voltooid_op: cutoff,
91
+ lokale_pdf_status: "geannuleerd",
92
+ lokale_pdf_fout: null,
93
+ lokale_pdf_claim_id: null,
94
+ lokale_pdf_claim_tot: null,
95
+ volgende_poging: null,
96
+ voltooid_op: cutoff,
97
+ updated_at: cutoff,
98
+ })
99
+ .in("id", ids)
100
+ .in("status", ["wachtend", "bezig"]);
101
+ if (wijzigFout)
102
+ throw new Error(`Annuleren mislukt: ${wijzigFout.message}`);
103
+ }
104
+ }
105
+ if (openJobs.length === 0)
106
+ return { geannuleerd: 0, externMislukt: 0 };
107
+ const ids = openJobs.map((job) => String(job.id));
108
+ await context.supabase.from("print_job_logs").insert(ids.map((jobId) => ({
109
+ job_id: jobId,
110
+ gebeurtenis: "geannuleerd",
111
+ detail: "Handmatig geannuleerd vanuit de printwachtrij.",
112
+ })));
113
+ const externeIds = openJobs
114
+ .map((job) => String(job.extern_job_id ?? "").trim())
115
+ .filter(Boolean);
116
+ let externMislukt = 0;
117
+ if (externeIds.length > 0) {
118
+ const { annuleerExternePrintOpdracht } = await import("./printService.server.js");
119
+ const resultaten = await Promise.allSettled(externeIds.map(annuleerExternePrintOpdracht));
120
+ externMislukt = resultaten.filter((resultaat) => resultaat.status === "rejected").length;
121
+ }
122
+ return { geannuleerd: ids.length, externMislukt, cutoff };
123
+ });
55
124
  export const netwerkComputers = createServerFn({ method: "POST" })
56
125
  .middleware([requireSupabaseAuth])
57
126
  .handler(async () => {
@@ -35,6 +35,8 @@ export declare function haalPrinterFormaten(externPrinterId: string): Promise<{
35
35
  }>;
36
36
  /** Stuurt een PDF rechtstreeks naar de printer. Geeft het externe opdrachtnummer terug. */
37
37
  export declare function stuurPdfNaarPrinter(input: PrintOpdrachtInput): Promise<string>;
38
+ /** Verwijdert een nog niet afgedrukte opdracht bij de externe printdienst. */
39
+ export declare function annuleerExternePrintOpdracht(externJobId: string): Promise<void>;
38
40
  export type OpdrachtStatus = "wachtend" | "bezig" | "voltooid" | "mislukt";
39
41
  /** Vraagt de status van een verstuurde opdracht op. */
40
42
  export declare function opdrachtStatus(externJobId: string): Promise<OpdrachtStatus>;
@@ -1 +1 @@
1
- {"version":3,"file":"printService.server.d.ts","sourceRoot":"","sources":["../../src/lib/printService.server.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1C,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAmDD,6EAA6E;AAC7E,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAmBrE;AAED,gFAAgF;AAChF,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CASzE;AAED,2FAA2F;AAC3F,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBpF;AAGD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3E,uDAAuD;AACvD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAejF;AAED,yCAAyC;AACzC,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAGpD;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qDAAqD;AACrD,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAchE"}
1
+ {"version":3,"file":"printService.server.d.ts","sourceRoot":"","sources":["../../src/lib/printService.server.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1C,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAoDD,6EAA6E;AAC7E,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAmBrE;AAED,gFAAgF;AAChF,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CASzE;AAED,2FAA2F;AAC3F,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBpF;AAED,8EAA8E;AAC9E,wBAAsB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKrF;AAGD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3E,uDAAuD;AACvD,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAejF;AAED,yCAAyC;AACzC,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAGpD;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qDAAqD;AACrD,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAchE"}
@@ -49,6 +49,8 @@ async function vraag(pad, init) {
49
49
  if (!res.ok) {
50
50
  throw new PrintToegangFout("niet_bereikbaar", "De printdienst is tijdelijk niet bereikbaar. Probeer het zo opnieuw.");
51
51
  }
52
+ if (res.status === 204)
53
+ return undefined;
52
54
  return (await res.json());
53
55
  }
54
56
  /** Alle printers die via de printclients in het netwerk beschikbaar zijn. */
@@ -102,6 +104,14 @@ export async function stuurPdfNaarPrinter(input) {
102
104
  });
103
105
  return String(data);
104
106
  }
107
+ /** Verwijdert een nog niet afgedrukte opdracht bij de externe printdienst. */
108
+ export async function annuleerExternePrintOpdracht(externJobId) {
109
+ if (!externJobId.trim())
110
+ return;
111
+ await vraag(`/printjobs/${encodeURIComponent(externJobId)}`, {
112
+ method: "DELETE",
113
+ });
114
+ }
105
115
  /** Vraagt de status van een verstuurde opdracht op. */
106
116
  export async function opdrachtStatus(externJobId) {
107
117
  const data = await vraag(`/printjobs/${encodeURIComponent(externJobId)}/states`);
@@ -1 +1 @@
1
- {"version":3,"file":"profielHtml.d.ts","sourceRoot":"","sources":["../../src/lib/profielHtml.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAuND,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAWjF;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,MAAM,GAAE,mBAAwB,GAC/B,MAAM,CAwCR"}
1
+ {"version":3,"file":"profielHtml.d.ts","sourceRoot":"","sources":["../../src/lib/profielHtml.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA2ND,kEAAkE;AAClE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAWjF;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,OAAO,EACjB,MAAM,GAAE,mBAAwB,GAC/B,MAAM,CAwCR"}
@@ -166,7 +166,10 @@ function groepHtml(groep, config, velden, data, opties) {
166
166
  delen.push(totalenBlok(zoekRegels(data), velden));
167
167
  }
168
168
  else if (inst.key === "toon_afbeelding" || inst.key === "afbeelding") {
169
- const url = velden["afbeelding"] ?? velden["regel.afbeelding"] ?? velden["product.afbeelding"] ?? "";
169
+ const url = velden["afbeelding"] ??
170
+ velden["regel.afbeelding"] ??
171
+ velden["product.afbeelding"] ??
172
+ String(zoekRegels(data).find((r) => r["afbeelding"])?.["afbeelding"] ?? "");
170
173
  delen.push(url
171
174
  ? `<img src="${esc(url)}" style="height:35mm" />`
172
175
  : `<div class="lijnveld hoog"></div>`);
package/package.json CHANGED
@@ -1,158 +1,158 @@
1
- {
2
- "name": "@flowselections/layout-maker",
3
- "version": "1.45.8",
4
- "flowselections": {
5
- "moduleId": "layout-maker",
6
- "pages": [
7
- {
8
- "export": "DocumentenPage",
9
- "route": "layouts-printers/documenten",
10
- "title": "Documenten"
11
- },
12
- {
13
- "export": "WerkplekConfiguratiePage",
14
- "route": "layouts-printers/printplekken/computers/$computerId",
15
- "title": "Werkplek configureren"
16
- },
17
- {
18
- "export": "PrintenPage",
19
- "route": "layouts-printers/printplekken",
20
- "title": "Printplekken"
21
- },
22
- {
23
- "export": "PrintplekDetailPage",
24
- "route": "layouts-printers/printplekken/$printplekId",
25
- "title": "Printplek"
26
- },
27
- {
28
- "export": "PrintQueuePage",
29
- "route": "layouts-printers/wachtrij",
30
- "title": "Printwachtrij"
31
- },
32
- {
33
- "export": "PakbonBuilderPage",
34
- "route": "layouts-printers/pakbon/$layoutId",
35
- "title": "Pakbon opbouw"
36
- },
37
- {
38
- "export": "AfleverbriefBuilderPage",
39
- "route": "layouts-printers/afleverbrief/$layoutId",
40
- "title": "Afleverbrief opbouw"
41
- },
42
- {
43
- "export": "BlokOntwerperPage",
44
- "route": "layouts-printers/blokken/$layoutId",
45
- "title": "Blokken ontwerpen"
46
- },
47
- {
48
- "export": "ProductiebonBuilderPage",
49
- "route": "layouts-printers/productiebon/$layoutId",
50
- "title": "Productiebon opbouw"
51
- }
52
- ],
53
- "serverRoutes": [
54
- {
55
- "routePath": "/api/public/print/queue-tick",
56
- "import": "@flowselections/layout-maker/print",
57
- "handler": "behandelQueueTick",
58
- "methods": [
59
- "POST"
60
- ]
61
- },
62
- {
63
- "routePath": "/api/public/print/preview-pdf",
64
- "import": "@flowselections/layout-maker/preview",
65
- "handler": "behandelPreviewPdf",
66
- "methods": [
67
- "POST"
68
- ]
69
- }
70
- ]
71
- },
72
- "private": false,
73
- "sideEffects": false,
74
- "type": "module",
75
- "main": "./dist-lib/index.js",
76
- "types": "./dist-lib/index.d.ts",
77
- "exports": {
78
- ".": {
79
- "types": "./dist-lib/index.d.ts",
80
- "default": "./dist-lib/index.js"
81
- },
82
- "./print": {
83
- "types": "./dist-lib/lib/queueTick.d.ts",
84
- "default": "./dist-lib/lib/queueTick.js"
85
- },
86
- "./styles": "./dist-lib/styles.css",
87
- "./preview": {
88
- "types": "./dist-lib/lib/previewPdf.d.ts",
89
- "default": "./dist-lib/lib/previewPdf.js"
90
- }
91
- },
92
- "files": [
93
- "dist-lib",
94
- "public"
95
- ],
96
- "publishConfig": {
97
- "access": "public"
98
- },
99
- "scripts": {
100
- "dev": "vite dev",
101
- "test": "bun test",
102
- "build": "vite build",
103
- "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
104
- "build:lib:watch": "tsc -p tsconfig.build.json --watch",
105
- "build:dev": "vite build --mode development",
106
- "preview": "vite preview",
107
- "lint": "eslint ."
108
- },
109
- "peerDependencies": {
110
- "@flowselections/core": "*",
111
- "@tanstack/react-query": "^5.0.0",
112
- "@tanstack/react-router": "^1.0.0",
113
- "@tanstack/react-start": "^1.0.0",
114
- "lucide-react": "^0.400.0",
115
- "react": "^18 || ^19",
116
- "react-dom": "^18 || ^19",
117
- "sonner": "^2.0.0"
118
- },
119
- "dependencies": {
120
- "@supabase/supabase-js": "^2.111.0",
121
- "html2canvas": "^1.4.1",
122
- "jspdf": "^4.2.1",
123
- "pdf-lib": "^1.17.1",
124
- "pdfjs-dist": "^6.3.289"
125
- },
126
- "devDependencies": {
127
- "@cloudflare/vite-plugin": "^1.25.5",
128
- "@eslint/js": "^9.32.0",
129
- "@flowselections/core": "1.0.18",
130
- "@lovable.dev/vite-tanstack-config": "2.13.1",
131
- "@rsbuild/core": "^1.0.0",
132
- "@tailwindcss/vite": "^4.2.1",
133
- "@tanstack/react-query": "^5.83.0",
134
- "@tanstack/react-router": "^1.168.0",
135
- "@tanstack/react-start": "^1.167.14",
136
- "@tanstack/router-plugin": "^1.167.10",
137
- "@types/node": "^22.16.5",
138
- "@types/react": "^19.2.0",
139
- "@types/react-dom": "^19.2.0",
140
- "@vitejs/plugin-react": "^5.0.4",
141
- "eslint": "^9.32.0",
142
- "eslint-plugin-react-hooks": "^5.2.0",
143
- "eslint-plugin-react-refresh": "^0.4.20",
144
- "globals": "^15.15.0",
145
- "lucide-react": "^0.575.0",
146
- "react": "^19.2.0",
147
- "react-dom": "^19.2.0",
148
- "sonner": "^2.0.7",
149
- "tailwindcss": "^4.2.1",
150
- "tw-animate-css": "^1.3.4",
151
- "typescript": "^5.8.3",
152
- "tsc-alias": "^1.8.10",
153
- "typescript-eslint": "^8.56.1",
154
- "vite": "^7.3.1",
155
- "vite-tsconfig-paths": "^6.0.2",
156
- "nitro": "3.0.260603-beta"
157
- }
158
- }
1
+ {
2
+ "name": "@flowselections/layout-maker",
3
+ "version": "1.45.19",
4
+ "flowselections": {
5
+ "moduleId": "layout-maker",
6
+ "pages": [
7
+ {
8
+ "export": "DocumentenPage",
9
+ "route": "layouts-printers/documenten",
10
+ "title": "Documenten"
11
+ },
12
+ {
13
+ "export": "WerkplekConfiguratiePage",
14
+ "route": "layouts-printers/printplekken/computers/$computerId",
15
+ "title": "Werkplek configureren"
16
+ },
17
+ {
18
+ "export": "PrintenPage",
19
+ "route": "layouts-printers/printplekken",
20
+ "title": "Printplekken"
21
+ },
22
+ {
23
+ "export": "PrintplekDetailPage",
24
+ "route": "layouts-printers/printplekken/$printplekId",
25
+ "title": "Printplek"
26
+ },
27
+ {
28
+ "export": "PrintQueuePage",
29
+ "route": "layouts-printers/wachtrij",
30
+ "title": "Printwachtrij"
31
+ },
32
+ {
33
+ "export": "PakbonBuilderPage",
34
+ "route": "layouts-printers/pakbon/$layoutId",
35
+ "title": "Pakbon opbouw"
36
+ },
37
+ {
38
+ "export": "AfleverbriefBuilderPage",
39
+ "route": "layouts-printers/afleverbrief/$layoutId",
40
+ "title": "Afleverbrief opbouw"
41
+ },
42
+ {
43
+ "export": "BlokOntwerperPage",
44
+ "route": "layouts-printers/blokken/$layoutId",
45
+ "title": "Blokken ontwerpen"
46
+ },
47
+ {
48
+ "export": "ProductiebonBuilderPage",
49
+ "route": "layouts-printers/productiebon/$layoutId",
50
+ "title": "Productiebon opbouw"
51
+ }
52
+ ],
53
+ "serverRoutes": [
54
+ {
55
+ "routePath": "/api/public/print/queue-tick",
56
+ "import": "@flowselections/layout-maker/print",
57
+ "handler": "behandelQueueTick",
58
+ "methods": [
59
+ "POST"
60
+ ]
61
+ },
62
+ {
63
+ "routePath": "/api/public/print/preview-pdf",
64
+ "import": "@flowselections/layout-maker/preview",
65
+ "handler": "behandelPreviewPdf",
66
+ "methods": [
67
+ "POST"
68
+ ]
69
+ }
70
+ ]
71
+ },
72
+ "private": false,
73
+ "sideEffects": false,
74
+ "type": "module",
75
+ "main": "./dist-lib/index.js",
76
+ "types": "./dist-lib/index.d.ts",
77
+ "exports": {
78
+ ".": {
79
+ "types": "./dist-lib/index.d.ts",
80
+ "default": "./dist-lib/index.js"
81
+ },
82
+ "./print": {
83
+ "types": "./dist-lib/lib/queueTick.d.ts",
84
+ "default": "./dist-lib/lib/queueTick.js"
85
+ },
86
+ "./styles": "./dist-lib/styles.css",
87
+ "./preview": {
88
+ "types": "./dist-lib/lib/previewPdf.d.ts",
89
+ "default": "./dist-lib/lib/previewPdf.js"
90
+ }
91
+ },
92
+ "files": [
93
+ "dist-lib",
94
+ "public"
95
+ ],
96
+ "publishConfig": {
97
+ "access": "public"
98
+ },
99
+ "scripts": {
100
+ "dev": "vite dev",
101
+ "test": "bun test",
102
+ "build": "vite build",
103
+ "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
104
+ "build:lib:watch": "tsc -p tsconfig.build.json --watch",
105
+ "build:dev": "vite build --mode development",
106
+ "preview": "vite preview",
107
+ "lint": "eslint ."
108
+ },
109
+ "peerDependencies": {
110
+ "@flowselections/core": "*",
111
+ "@tanstack/react-query": "^5.0.0",
112
+ "@tanstack/react-router": "^1.0.0",
113
+ "@tanstack/react-start": "^1.0.0",
114
+ "lucide-react": "^0.400.0",
115
+ "react": "^18 || ^19",
116
+ "react-dom": "^18 || ^19",
117
+ "sonner": "^2.0.0"
118
+ },
119
+ "dependencies": {
120
+ "@supabase/supabase-js": "^2.111.0",
121
+ "html2canvas": "^1.4.1",
122
+ "jspdf": "^4.2.1",
123
+ "pdf-lib": "^1.17.1",
124
+ "pdfjs-dist": "^6.3.289"
125
+ },
126
+ "devDependencies": {
127
+ "@cloudflare/vite-plugin": "^1.25.5",
128
+ "@eslint/js": "^9.32.0",
129
+ "@flowselections/core": "1.0.21",
130
+ "@lovable.dev/vite-tanstack-config": "2.23.1",
131
+ "@rsbuild/core": "^1.0.0",
132
+ "@tailwindcss/vite": "^4.2.1",
133
+ "@tanstack/react-query": "^5.83.0",
134
+ "@tanstack/react-router": "^1.168.0",
135
+ "@tanstack/react-start": "^1.167.14",
136
+ "@tanstack/router-plugin": "^1.167.10",
137
+ "@types/node": "^22.16.5",
138
+ "@types/react": "^19.2.0",
139
+ "@types/react-dom": "^19.2.0",
140
+ "@vitejs/plugin-react": "^5.0.4",
141
+ "eslint": "^9.32.0",
142
+ "eslint-plugin-react-hooks": "^5.2.0",
143
+ "eslint-plugin-react-refresh": "^0.4.20",
144
+ "globals": "^15.15.0",
145
+ "lucide-react": "^0.575.0",
146
+ "react": "^19.2.0",
147
+ "react-dom": "^19.2.0",
148
+ "sonner": "^2.0.7",
149
+ "tailwindcss": "^4.2.1",
150
+ "tw-animate-css": "^1.3.4",
151
+ "typescript": "^5.8.3",
152
+ "tsc-alias": "^1.8.10",
153
+ "typescript-eslint": "^8.56.1",
154
+ "vite": "^7.3.1",
155
+ "vite-tsconfig-paths": "^6.0.2",
156
+ "nitro": "3.0.260603-beta"
157
+ }
158
+ }