@flowselections/pick-schermen-kwekers 1.0.80 → 1.0.84

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 (115) hide show
  1. package/dist-lib/components/PickstationsPage.d.ts.map +1 -1
  2. package/dist-lib/components/PickstationsPage.js +147 -18
  3. package/dist-lib/components/fs-ui/DataTable.d.ts +22 -0
  4. package/dist-lib/components/fs-ui/DataTable.d.ts.map +1 -0
  5. package/dist-lib/components/fs-ui/DataTable.js +13 -0
  6. package/dist-lib/components/fs-ui/EmptyState.d.ts +9 -0
  7. package/dist-lib/components/fs-ui/EmptyState.d.ts.map +1 -0
  8. package/dist-lib/components/fs-ui/EmptyState.js +5 -0
  9. package/dist-lib/components/fs-ui/FilterChips.d.ts +15 -0
  10. package/dist-lib/components/fs-ui/FilterChips.d.ts.map +1 -0
  11. package/dist-lib/components/fs-ui/FilterChips.js +10 -0
  12. package/dist-lib/components/fs-ui/FiltersSheet.d.ts +16 -0
  13. package/dist-lib/components/fs-ui/FiltersSheet.d.ts.map +1 -0
  14. package/dist-lib/components/fs-ui/FiltersSheet.js +9 -0
  15. package/dist-lib/components/fs-ui/HoverTip.d.ts +11 -0
  16. package/dist-lib/components/fs-ui/HoverTip.d.ts.map +1 -0
  17. package/dist-lib/components/fs-ui/HoverTip.js +19 -0
  18. package/dist-lib/components/fs-ui/KpiTile.d.ts +2 -0
  19. package/dist-lib/components/fs-ui/KpiTile.d.ts.map +1 -0
  20. package/dist-lib/components/fs-ui/KpiTile.js +1 -0
  21. package/dist-lib/components/fs-ui/MobilePrimaryAction.d.ts +8 -0
  22. package/dist-lib/components/fs-ui/MobilePrimaryAction.d.ts.map +1 -0
  23. package/dist-lib/components/fs-ui/MobilePrimaryAction.js +6 -0
  24. package/dist-lib/components/fs-ui/NoticeBar.d.ts +6 -0
  25. package/dist-lib/components/fs-ui/NoticeBar.d.ts.map +1 -0
  26. package/dist-lib/components/fs-ui/NoticeBar.js +12 -0
  27. package/dist-lib/components/fs-ui/PageHeader.d.ts +12 -0
  28. package/dist-lib/components/fs-ui/PageHeader.d.ts.map +1 -0
  29. package/dist-lib/components/fs-ui/PageHeader.js +9 -0
  30. package/dist-lib/components/fs-ui/Pagination.d.ts +8 -0
  31. package/dist-lib/components/fs-ui/Pagination.d.ts.map +1 -0
  32. package/dist-lib/components/fs-ui/Pagination.js +7 -0
  33. package/dist-lib/components/fs-ui/PillTabs.d.ts +17 -0
  34. package/dist-lib/components/fs-ui/PillTabs.d.ts.map +1 -0
  35. package/dist-lib/components/fs-ui/PillTabs.js +23 -0
  36. package/dist-lib/components/fs-ui/RowMenu.d.ts +12 -0
  37. package/dist-lib/components/fs-ui/RowMenu.d.ts.map +1 -0
  38. package/dist-lib/components/fs-ui/RowMenu.js +7 -0
  39. package/dist-lib/components/fs-ui/SearchInput.d.ts +7 -0
  40. package/dist-lib/components/fs-ui/SearchInput.d.ts.map +1 -0
  41. package/dist-lib/components/fs-ui/SearchInput.js +12 -0
  42. package/dist-lib/components/fs-ui/ShortcutHelp.d.ts +8 -0
  43. package/dist-lib/components/fs-ui/ShortcutHelp.d.ts.map +1 -0
  44. package/dist-lib/components/fs-ui/ShortcutHelp.js +13 -0
  45. package/dist-lib/components/fs-ui/StatusIcon.d.ts +8 -0
  46. package/dist-lib/components/fs-ui/StatusIcon.d.ts.map +1 -0
  47. package/dist-lib/components/fs-ui/StatusIcon.js +10 -0
  48. package/dist-lib/components/fs-ui/TableSkeleton.d.ts +6 -0
  49. package/dist-lib/components/fs-ui/TableSkeleton.d.ts.map +1 -0
  50. package/dist-lib/components/fs-ui/TableSkeleton.js +6 -0
  51. package/dist-lib/components/fs-ui/Toolbar.d.ts +10 -0
  52. package/dist-lib/components/fs-ui/Toolbar.d.ts.map +1 -0
  53. package/dist-lib/components/fs-ui/Toolbar.js +7 -0
  54. package/dist-lib/components/fs-ui/UpdatedAt.d.ts +7 -0
  55. package/dist-lib/components/fs-ui/UpdatedAt.d.ts.map +1 -0
  56. package/dist-lib/components/fs-ui/UpdatedAt.js +13 -0
  57. package/dist-lib/components/pick/DocumentChoiceMelding.d.ts +1 -1
  58. package/dist-lib/components/pick/DocumentChoiceMelding.d.ts.map +1 -1
  59. package/dist-lib/components/pick/PickScherm.js +9 -6
  60. package/dist-lib/components/pick/QueueTable.js +1 -1
  61. package/dist-lib/components/pick/ReferentiedataBanner.d.ts +2 -2
  62. package/dist-lib/components/pick/ReferentiedataBanner.d.ts.map +1 -1
  63. package/dist-lib/components/pick/ReferentiedataBanner.js +3 -4
  64. package/dist-lib/components/settings/ReferentiedataPickdocumentenCard.d.ts.map +1 -1
  65. package/dist-lib/components/settings/ReferentiedataPickdocumentenCard.js +10 -3
  66. package/dist-lib/hooks/useCartStickerStates.d.ts +1 -1
  67. package/dist-lib/hooks/useCartStickerStates.d.ts.map +1 -1
  68. package/dist-lib/hooks/usePickConfig.d.ts +11 -11
  69. package/dist-lib/hooks/usePickConfig.d.ts.map +1 -1
  70. package/dist-lib/hooks/usePickPrintStatus.d.ts +2 -2
  71. package/dist-lib/hooks/usePickQueue.d.ts +3 -3
  72. package/dist-lib/hooks/usePickQueue.d.ts.map +1 -1
  73. package/dist-lib/hooks/usePickReferenceData.d.ts +1 -1
  74. package/dist-lib/hooks/usePickReferenceData.d.ts.map +1 -1
  75. package/dist-lib/integrations/supabase/client.js +1 -1
  76. package/dist-lib/integrations/supabase/client.server.js +1 -1
  77. package/dist-lib/integrations/supabase/types.d.ts +909 -1
  78. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  79. package/dist-lib/lib/__tests__/labels.test.d.ts +2 -0
  80. package/dist-lib/lib/__tests__/labels.test.d.ts.map +1 -0
  81. package/dist-lib/lib/__tests__/labels.test.js +24 -0
  82. package/dist-lib/lib/labels.d.ts +9 -0
  83. package/dist-lib/lib/labels.d.ts.map +1 -0
  84. package/dist-lib/lib/labels.js +65 -0
  85. package/dist-lib/lib/layoutApi.d.ts +23 -0
  86. package/dist-lib/lib/layoutApi.d.ts.map +1 -0
  87. package/dist-lib/lib/layoutApi.js +94 -0
  88. package/dist-lib/lib/layoutMaker/documentProfiles.d.ts +50 -0
  89. package/dist-lib/lib/layoutMaker/documentProfiles.d.ts.map +1 -0
  90. package/dist-lib/lib/layoutMaker/documentProfiles.js +458 -0
  91. package/dist-lib/lib/layoutMaker/documentTypes.d.ts +123 -0
  92. package/dist-lib/lib/layoutMaker/documentTypes.d.ts.map +1 -0
  93. package/dist-lib/lib/layoutMaker/documentTypes.js +74 -0
  94. package/dist-lib/lib/layoutMaker/logoLibrary.d.ts +13 -0
  95. package/dist-lib/lib/layoutMaker/logoLibrary.d.ts.map +1 -0
  96. package/dist-lib/lib/layoutMaker/logoLibrary.js +54 -0
  97. package/dist-lib/lib/layoutMaker/pakbonBuilder.d.ts +196 -0
  98. package/dist-lib/lib/layoutMaker/pakbonBuilder.d.ts.map +1 -0
  99. package/dist-lib/lib/layoutMaker/pakbonBuilder.js +813 -0
  100. package/dist-lib/lib/layoutMaker/pakbonHtml.d.ts +48 -0
  101. package/dist-lib/lib/layoutMaker/pakbonHtml.d.ts.map +1 -0
  102. package/dist-lib/lib/layoutMaker/pakbonHtml.js +703 -0
  103. package/dist-lib/lib/layoutRenderer.d.ts +7 -0
  104. package/dist-lib/lib/layoutRenderer.d.ts.map +1 -0
  105. package/dist-lib/lib/layoutRenderer.js +233 -0
  106. package/dist-lib/lib/layoutTypes.d.ts +84 -0
  107. package/dist-lib/lib/layoutTypes.d.ts.map +1 -0
  108. package/dist-lib/lib/layoutTypes.js +25 -0
  109. package/dist-lib/lib/orderContext.d.ts +50 -0
  110. package/dist-lib/lib/orderContext.d.ts.map +1 -0
  111. package/dist-lib/lib/orderContext.js +162 -0
  112. package/dist-lib/lib/pakbonOrderInput.d.ts +8 -0
  113. package/dist-lib/lib/pakbonOrderInput.d.ts.map +1 -0
  114. package/dist-lib/lib/pakbonOrderInput.js +150 -0
  115. package/package.json +2 -2
@@ -0,0 +1,150 @@
1
+ function txt(v) {
2
+ return v === null || v === undefined ? "" : String(v);
3
+ }
4
+ /** Productnamen komen soms als vertaal-JSON ({"nl":"..."}) uit de database. */
5
+ function naam(v) {
6
+ const s = txt(v).trim();
7
+ if (!s.startsWith("{"))
8
+ return s;
9
+ try {
10
+ const parsed = JSON.parse(s);
11
+ const keys = ["nl", "en", "de", ...Object.keys(parsed)];
12
+ for (const k of keys) {
13
+ const w = parsed[k];
14
+ if (typeof w === "string" && w.trim())
15
+ return w;
16
+ }
17
+ }
18
+ catch {
19
+ // geen JSON: onbewerkt teruggeven
20
+ }
21
+ return s;
22
+ }
23
+ function obj(raw) {
24
+ return raw && typeof raw === "object" && !Array.isArray(raw) ? raw : {};
25
+ }
26
+ function arr(raw) {
27
+ return Array.isArray(raw) ? raw : [];
28
+ }
29
+ function product(p) {
30
+ return {
31
+ artikelnummer: txt(p.artikelnummer),
32
+ artikelnaam: naam(p.artikelnaam),
33
+ potmaat: txt(p.potmaat),
34
+ kleur: txt(p.kleur),
35
+ aantal: Number(p.aantal) || 0,
36
+ locatie: txt(p.locatie),
37
+ barcode: txt(p.barcode),
38
+ opmerking: txt(p.opmerking),
39
+ fust_aantal: Number(p.fust_aantal) || 0,
40
+ fustsoort: txt(p.fustsoort),
41
+ planten_per_fust: Number(p.planten_per_fust) || 0,
42
+ };
43
+ }
44
+ /** Fusten van een laag, samengevoegd per fustsoort. */
45
+ function fusten(producten) {
46
+ const map = new Map();
47
+ for (const p of arr(producten)) {
48
+ const soort = txt(p.fustsoort) || "Fust";
49
+ map.set(soort, (map.get(soort) ?? 0) + (Number(p.fust_aantal) || 0));
50
+ }
51
+ return [...map.entries()]
52
+ .filter(([, aantal]) => aantal > 0)
53
+ .map(([fusttype, aantal]) => ({ fusttype, aantal }));
54
+ }
55
+ function kar(k, index, transport) {
56
+ const lagen = arr(k.lagen).map((l, j) => ({
57
+ laagnummer: Number(l.laagnummer) || j + 1,
58
+ belading: txt(l.belading),
59
+ potmaat: txt(arr(l.producten)[0]?.potmaat),
60
+ producten: arr(l.producten).map(product),
61
+ fusten: fusten(arr(l.producten)),
62
+ }));
63
+ return {
64
+ karnummer: Number(k.karnummer) || index + 1,
65
+ route: transport["route"] ?? "",
66
+ chauffeur: transport["chauffeur"] ?? "",
67
+ gewicht: "",
68
+ lagen: lagen.length
69
+ ? lagen
70
+ : [
71
+ {
72
+ laagnummer: 1,
73
+ belading: "",
74
+ potmaat: "",
75
+ producten: arr(k.producten).map(product),
76
+ fusten: fusten(arr(k.producten)),
77
+ },
78
+ ],
79
+ };
80
+ }
81
+ /**
82
+ * Bouwt de invoer voor `maakPakbonOrder()` uit de opgehaalde ordercontext.
83
+ * Orderregels zonder karren worden als platte productlijst meegegeven; de
84
+ * layout-module plaatst die zelf in één kar/laag.
85
+ */
86
+ export function pakbonOrderInput(data) {
87
+ const order = obj(data.order);
88
+ const klant = obj(data.klant);
89
+ const aflever = obj(data.afleveradres);
90
+ const transport = {
91
+ transporteur: txt(order["transporteur"] ?? order["carrier"] ?? order["transporter"]),
92
+ route: txt(order["route"] ?? order["route_name"]),
93
+ chauffeur: txt(order["chauffeur"] ?? order["driver"]),
94
+ track: txt(order["track_trace"] ?? order["tracking_code"]),
95
+ };
96
+ const karren = arr(data.karren).map((k, i) => kar(k, i, transport));
97
+ const losseRegels = arr(data.regels).map((r) => ({
98
+ artikelnummer: txt(r["article_number"] ?? r["artikelnummer"]),
99
+ artikelnaam: naam(r["product_name"] ?? r["artikelnaam"] ?? r["product"]),
100
+ potmaat: txt(r["potmaat"] ?? r["pot_size"]),
101
+ aantal: Number(r["quantity"] ?? r["aantal"]) || 0,
102
+ locatie: txt(r["location"] ?? r["locatie"]),
103
+ barcode: txt(r["barcode"]),
104
+ fust_aantal: Number(r["crates"] ?? r["fust_aantal"]) || 0,
105
+ fustsoort: txt(r["unit"] ?? r["fustsoort"]),
106
+ planten_per_fust: Number(r["plants_per_crate"] ?? r["planten_per_fust"]) || 0,
107
+ opmerking: txt(r["notes"] ?? r["opmerking"]),
108
+ }));
109
+ const adres = [aflever["adres"], aflever["adres2"]].filter(Boolean).join(" · ");
110
+ const plaats = [aflever["postcode"], aflever["plaats"]].filter(Boolean).join(" ");
111
+ return {
112
+ order: {
113
+ nummer: txt(order["ordernummer"] ?? order["order_number"]),
114
+ datum: txt(order["orderdatum"] ?? order["order_date"]),
115
+ leverdatum: txt(order["leverdatum"] ?? order["delivery_date"]),
116
+ referentie: txt(order["referentie"] ?? order["reference"]),
117
+ opmerking: txt(order["notes"] ?? order["opmerking"] ?? order["remarks"]),
118
+ },
119
+ bedrijf: {
120
+ naam: txt(order["company_name"] ?? ""),
121
+ adres: "",
122
+ plaats: "",
123
+ telefoon: "",
124
+ email: "",
125
+ kvk: "",
126
+ btw: "",
127
+ },
128
+ klant: {
129
+ naam: txt(klant["naam"] ?? klant["name"]),
130
+ nummer: txt(klant["klantnummer"] ?? klant["customer_number"]),
131
+ contact: txt(klant["contact_name"] ?? klant["contactpersoon"] ?? klant["email"]),
132
+ referentie: txt(order["customer_reference"] ?? order["referentie"]),
133
+ },
134
+ afleveradres: {
135
+ naam: txt(aflever["naam"]),
136
+ adres,
137
+ plaats,
138
+ land: txt(aflever["land"]),
139
+ },
140
+ factuuradres: {
141
+ naam: txt(klant["naam"] ?? klant["name"]),
142
+ adres: txt(klant["invoice_address"] ?? aflever["adres"]),
143
+ plaats: txt(klant["invoice_city"] ?? aflever["plaats"]),
144
+ land: txt(klant["invoice_country"] ?? aflever["land"]),
145
+ },
146
+ transport,
147
+ karren,
148
+ producten: karren.length ? [] : losseRegels,
149
+ };
150
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/pick-schermen-kwekers",
3
- "version": "1.0.80",
3
+ "version": "1.0.84",
4
4
  "flowselections": {
5
5
  "moduleId": "pick-schermen",
6
6
  "schema": {
@@ -70,7 +70,7 @@
70
70
  "@flowselections/layout-maker": "^1.19.0",
71
71
  "@cloudflare/vite-plugin": "^1.25.5",
72
72
  "@eslint/js": "^9.32.0",
73
- "@flowselections/core": "1.0.35",
73
+ "@flowselections/core": "1.0.37",
74
74
  "@lovable.dev/vite-tanstack-config": "2.26.5",
75
75
  "@rsbuild/core": "^1.0.0",
76
76
  "@tailwindcss/vite": "^4.2.1",