@flowselections/floriday-voorraad 1.0.26 → 1.0.28

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 (104) hide show
  1. package/dist-lib/components/TemplatePage.d.ts +1 -1
  2. package/dist-lib/components/TemplatePage.d.ts.map +1 -1
  3. package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts +1 -1
  4. package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts.map +1 -1
  5. package/dist-lib/components/voorraad/ArtikelCompositionCard.d.ts +1 -1
  6. package/dist-lib/components/voorraad/ArtikelCompositionCard.d.ts.map +1 -1
  7. package/dist-lib/components/voorraad/ArtikelWizard.d.ts +1 -1
  8. package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
  9. package/dist-lib/components/voorraad/ArtikelWizard.js +21 -8
  10. package/dist-lib/components/voorraad/ConnectionBadge.d.ts +1 -1
  11. package/dist-lib/components/voorraad/ConnectionBadge.d.ts.map +1 -1
  12. package/dist-lib/components/voorraad/EditArtikelPage.d.ts +1 -1
  13. package/dist-lib/components/voorraad/EditArtikelPage.d.ts.map +1 -1
  14. package/dist-lib/components/voorraad/EditArtikelPage.js +3 -2
  15. package/dist-lib/components/voorraad/ExcelExportButton.d.ts +1 -1
  16. package/dist-lib/components/voorraad/ExcelExportButton.d.ts.map +1 -1
  17. package/dist-lib/components/voorraad/FloridayInfoCard.d.ts +1 -1
  18. package/dist-lib/components/voorraad/FloridayInfoCard.d.ts.map +1 -1
  19. package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts +1 -1
  20. package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts.map +1 -1
  21. package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts +1 -1
  22. package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts.map +1 -1
  23. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts +1 -1
  24. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts.map +1 -1
  25. package/dist-lib/components/voorraad/PriceStatusBadge.d.ts +1 -1
  26. package/dist-lib/components/voorraad/PriceStatusBadge.d.ts.map +1 -1
  27. package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts +5 -0
  28. package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts.map +1 -0
  29. package/dist-lib/components/voorraad/ProductCustomFieldsCard.js +65 -0
  30. package/dist-lib/components/voorraad/ProductLinkCard.d.ts +1 -1
  31. package/dist-lib/components/voorraad/ProductLinkCard.d.ts.map +1 -1
  32. package/dist-lib/components/voorraad/StepSamenstelling.d.ts +1 -1
  33. package/dist-lib/components/voorraad/StepSamenstelling.d.ts.map +1 -1
  34. package/dist-lib/components/voorraad/StockBulkButtons.d.ts +1 -1
  35. package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
  36. package/dist-lib/components/voorraad/StockBulkButtons.js +65 -2
  37. package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts +1 -1
  38. package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts.map +1 -1
  39. package/dist-lib/components/voorraad/ValidationOverviewTable.js +8 -2
  40. package/dist-lib/components/voorraad/ValidationPage.d.ts +1 -1
  41. package/dist-lib/components/voorraad/ValidationPage.d.ts.map +1 -1
  42. package/dist-lib/components/voorraad/VoorraadDashboard.d.ts +1 -1
  43. package/dist-lib/components/voorraad/VoorraadDashboard.d.ts.map +1 -1
  44. package/dist-lib/components/voorraad/VoorraadDashboard.js +4 -1
  45. package/dist-lib/components/voorraad/VoorraadPage.d.ts +1 -1
  46. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  47. package/dist-lib/components/voorraad/VoorraadPagination.d.ts +1 -1
  48. package/dist-lib/components/voorraad/VoorraadPagination.d.ts.map +1 -1
  49. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts +1 -1
  50. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
  51. package/dist-lib/components/voorraad/VoorraadTable.d.ts +1 -1
  52. package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
  53. package/dist-lib/components/voorraad/VoorraadTable.js +10 -2
  54. package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts +2 -0
  55. package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts.map +1 -0
  56. package/dist-lib/components/voorraad/VoorraadVeldenCard.js +97 -0
  57. package/dist-lib/hooks/useFloriday.d.ts +6 -6
  58. package/dist-lib/hooks/useFloriday.d.ts.map +1 -1
  59. package/dist-lib/hooks/useFloridayVbnRequired.d.ts +2 -2
  60. package/dist-lib/hooks/useFloridayVbnRequired.d.ts.map +1 -1
  61. package/dist-lib/hooks/useLocalTradeItems.d.ts +4 -4
  62. package/dist-lib/hooks/useLocalTradeItems.d.ts.map +1 -1
  63. package/dist-lib/hooks/useLocalTradeItems.js +59 -35
  64. package/dist-lib/hooks/useTradeItemSupplyLine.d.ts +1 -1
  65. package/dist-lib/hooks/useTradeItemSupplyLine.d.ts.map +1 -1
  66. package/dist-lib/hooks/useVbnRegulatoryFeatures.d.ts +1 -1
  67. package/dist-lib/hooks/useVbnRegulatoryFeatures.d.ts.map +1 -1
  68. package/dist-lib/hooks/useVoorraadCustomFields.d.ts +9 -0
  69. package/dist-lib/hooks/useVoorraadCustomFields.d.ts.map +1 -0
  70. package/dist-lib/hooks/useVoorraadCustomFields.js +26 -0
  71. package/dist-lib/index.d.ts +2 -0
  72. package/dist-lib/index.d.ts.map +1 -1
  73. package/dist-lib/index.js +4 -1
  74. package/dist-lib/integrations/supabase/auth-middleware.d.ts +2358 -177
  75. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  76. package/dist-lib/integrations/supabase/client.d.ts +2358 -177
  77. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  78. package/dist-lib/integrations/supabase/client.server.d.ts +2358 -177
  79. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  80. package/dist-lib/integrations/supabase/types.d.ts +2428 -174
  81. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  82. package/dist-lib/integrations/supabase/types.js +49 -0
  83. package/dist-lib/lib/floricode-required-features.functions.d.ts +2373 -198
  84. package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
  85. package/dist-lib/lib/floriday-customer-offer.functions.d.ts +2375 -192
  86. package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -1
  87. package/dist-lib/lib/floriday-gateway.functions.d.ts +49617 -38712
  88. package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
  89. package/dist-lib/lib/floriday-vbn-required.functions.d.ts +13843 -9481
  90. package/dist-lib/lib/floriday-vbn-required.functions.d.ts.map +1 -1
  91. package/dist-lib/lib/floriday-warehouse.functions.d.ts +25719 -19176
  92. package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
  93. package/dist-lib/lib/floriday-writes.functions.d.ts +13826 -9464
  94. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  95. package/dist-lib/lib/voorraad-custom-fields.d.ts +22 -0
  96. package/dist-lib/lib/voorraad-custom-fields.d.ts.map +1 -0
  97. package/dist-lib/lib/voorraad-custom-fields.js +71 -0
  98. package/package.json +1 -1
  99. package/dist-lib/components/settings/VoorraadSettingsCard.d.ts +0 -2
  100. package/dist-lib/components/settings/VoorraadSettingsCard.d.ts.map +0 -1
  101. package/dist-lib/components/settings/VoorraadSettingsCard.js +0 -39
  102. package/dist-lib/components/voorraad/ConnectionPicker.d.ts +0 -8
  103. package/dist-lib/components/voorraad/ConnectionPicker.d.ts.map +0 -1
  104. package/dist-lib/components/voorraad/ConnectionPicker.js +0 -8
@@ -0,0 +1,22 @@
1
+ export type VoorraadFieldType = "text" | "number" | "date" | "select" | "boolean";
2
+ export interface VoorraadCustomField {
3
+ id: string;
4
+ field_key: string;
5
+ field_label: string;
6
+ field_type: VoorraadFieldType;
7
+ options: string[];
8
+ show_in_template: boolean;
9
+ show_in_columns: boolean;
10
+ show_in_detail: boolean;
11
+ sort_order: number;
12
+ }
13
+ export declare function slugifyFieldKey(label: string): string;
14
+ export declare function fetchVoorraadCustomFields(): Promise<VoorraadCustomField[]>;
15
+ export declare function createVoorraadCustomField(input: Omit<VoorraadCustomField, "id">): Promise<void>;
16
+ export declare function updateVoorraadCustomField(id: string, patch: Partial<Omit<VoorraadCustomField, "id">>): Promise<void>;
17
+ export declare function deleteVoorraadCustomField(id: string): Promise<void>;
18
+ /** Waarden van eigen velden staan in `products.custom_fields` (jsonb). */
19
+ export declare function fetchProductCustomValues(productId: string): Promise<Record<string, unknown>>;
20
+ export declare function saveProductCustomValues(productId: string, values: Record<string, unknown>): Promise<void>;
21
+ export declare function formatCustomValue(value: unknown): string;
22
+ //# sourceMappingURL=voorraad-custom-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voorraad-custom-fields.d.ts","sourceRoot":"","sources":["../../src/lib/voorraad-custom-fields.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAWhF;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAsB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;AAED,0EAA0E;AAC1E,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CASlC;AAED,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIxD"}
@@ -0,0 +1,71 @@
1
+ import { supabase } from "../integrations/supabase/client";
2
+ const TABLE = "voorraad_custom_fields";
3
+ const SELECT = "id,field_key,field_label,field_type,options,show_in_template,show_in_columns,show_in_detail,sort_order";
4
+ export function slugifyFieldKey(label) {
5
+ return label
6
+ .toLowerCase()
7
+ .normalize("NFD")
8
+ .replace(/[\u0300-\u036f]/g, "")
9
+ .replace(/[^a-z0-9]+/g, "_")
10
+ .replace(/^_+|_+$/g, "")
11
+ .slice(0, 48);
12
+ }
13
+ export async function fetchVoorraadCustomFields() {
14
+ const { data, error } = await supabase
15
+ .from(TABLE)
16
+ .select(SELECT)
17
+ .order("sort_order", { ascending: true })
18
+ .order("created_at", { ascending: true });
19
+ if (error)
20
+ throw new Error(error.message);
21
+ return (data ?? []).map((f) => ({
22
+ ...f,
23
+ options: Array.isArray(f.options) ? f.options : [],
24
+ }));
25
+ }
26
+ export async function createVoorraadCustomField(input) {
27
+ const { error } = await supabase.from(TABLE).insert(input);
28
+ if (error)
29
+ throw new Error(error.message);
30
+ }
31
+ export async function updateVoorraadCustomField(id, patch) {
32
+ const { error } = await supabase
33
+ .from(TABLE)
34
+ .update(patch)
35
+ .eq("id", id);
36
+ if (error)
37
+ throw new Error(error.message);
38
+ }
39
+ export async function deleteVoorraadCustomField(id) {
40
+ const { error } = await supabase.from(TABLE).delete().eq("id", id);
41
+ if (error)
42
+ throw new Error(error.message);
43
+ }
44
+ /** Waarden van eigen velden staan in `products.custom_fields` (jsonb). */
45
+ export async function fetchProductCustomValues(productId) {
46
+ const { data, error } = await supabase
47
+ .from("products")
48
+ .select("custom_fields")
49
+ .eq("id", productId)
50
+ .maybeSingle();
51
+ if (error)
52
+ throw new Error(error.message);
53
+ const cf = data?.custom_fields;
54
+ return cf && typeof cf === "object" && !Array.isArray(cf) ? cf : {};
55
+ }
56
+ export async function saveProductCustomValues(productId, values) {
57
+ const current = await fetchProductCustomValues(productId);
58
+ const { error } = await supabase
59
+ .from("products")
60
+ .update({ custom_fields: { ...current, ...values } })
61
+ .eq("id", productId);
62
+ if (error)
63
+ throw new Error(error.message);
64
+ }
65
+ export function formatCustomValue(value) {
66
+ if (value === null || value === undefined || value === "")
67
+ return "—";
68
+ if (typeof value === "boolean")
69
+ return value ? "Ja" : "Nee";
70
+ return String(value);
71
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-voorraad",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "main": "./dist-lib/index.js",
@@ -1,2 +0,0 @@
1
- export declare function VoorraadSettingsCard(): import("react/jsx-runtime").JSX.Element;
2
- //# sourceMappingURL=VoorraadSettingsCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VoorraadSettingsCard.d.ts","sourceRoot":"","sources":["../../../src/components/settings/VoorraadSettingsCard.tsx"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB,4CA8DnC"}
@@ -1,39 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useState } from "react";
3
- import { Card, CardContent, CardDescription, CardHeader, CardTitle, Button, Input, Label, supabase, toast, } from "@flowselections/core";
4
- import { Package } from "lucide-react";
5
- export function VoorraadSettingsCard() {
6
- const [lowStockThreshold, setLowStockThreshold] = useState("");
7
- const [loading, setLoading] = useState(true);
8
- const [saving, setSaving] = useState(false);
9
- useEffect(() => {
10
- (async () => {
11
- try {
12
- const { data } = await supabase
13
- .from("inventory_settings")
14
- .select("*")
15
- .limit(1)
16
- .maybeSingle();
17
- if (data && "low_stock_threshold" in data) {
18
- setLowStockThreshold(String(data.low_stock_threshold ?? ""));
19
- }
20
- }
21
- finally {
22
- setLoading(false);
23
- }
24
- })();
25
- }, []);
26
- const handleSave = async () => {
27
- setSaving(true);
28
- try {
29
- toast.success("Instellingen opgeslagen");
30
- }
31
- catch {
32
- toast.error("Fout bij het opslaan");
33
- }
34
- finally {
35
- setSaving(false);
36
- }
37
- };
38
- return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Package, { className: "h-5 w-5 text-primary" }), _jsx(CardTitle, { children: "Voorraad Instellingen" })] }), _jsx(CardDescription, { children: "Beheer drempelwaarden en standaarden voor de voorraad module" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "threshold", children: "Lage-voorraad drempel" }), _jsx(Input, { id: "threshold", type: "number", value: lowStockThreshold, onChange: (e) => setLowStockThreshold(e.target.value), placeholder: "bv. 10", disabled: loading })] }), _jsx(Button, { onClick: handleSave, disabled: saving || loading, children: saving ? "Opslaan..." : "Opslaan" })] })] }));
39
- }
@@ -1,8 +0,0 @@
1
- import type { FloridayConnection } from "../../lib/floriday-client";
2
- export declare function ConnectionPicker({ connections, activeId, onChange, disabled, }: {
3
- connections: FloridayConnection[];
4
- activeId: string | null;
5
- onChange: (id: string) => void;
6
- disabled?: boolean;
7
- }): import("react/jsx-runtime").JSX.Element;
8
- //# sourceMappingURL=ConnectionPicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConnectionPicker.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ConnectionPicker.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAsBA"}
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
3
- export function ConnectionPicker({ connections, activeId, onChange, disabled, }) {
4
- if (connections.length === 0) {
5
- return (_jsx("div", { className: "text-sm text-muted-foreground", children: "Geen actieve Floriday-connecties" }));
6
- }
7
- return (_jsxs(Select, { value: activeId ?? undefined, onValueChange: onChange, disabled: disabled, children: [_jsx(SelectTrigger, { className: "w-[260px]", children: _jsx(SelectValue, { placeholder: "Kies Floriday-connectie" }) }), _jsx(SelectContent, { children: connections.map((c) => (_jsx(SelectItem, { value: c.id, children: c.organization_name || c.label }, c.id))) })] }));
8
- }