@flowselections/floriday-voorraad 1.0.38 → 1.0.39

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 (120) 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/ConnectionBadge.d.ts +1 -1
  10. package/dist-lib/components/voorraad/ConnectionBadge.d.ts.map +1 -1
  11. package/dist-lib/components/voorraad/EditArtikelPage.d.ts +1 -1
  12. package/dist-lib/components/voorraad/EditArtikelPage.d.ts.map +1 -1
  13. package/dist-lib/components/voorraad/ExcelExportButton.d.ts +1 -1
  14. package/dist-lib/components/voorraad/ExcelExportButton.d.ts.map +1 -1
  15. package/dist-lib/components/voorraad/FloridayInfoCard.d.ts +1 -1
  16. package/dist-lib/components/voorraad/FloridayInfoCard.d.ts.map +1 -1
  17. package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts +1 -1
  18. package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts.map +1 -1
  19. package/dist-lib/components/voorraad/FustenPage.d.ts +1 -1
  20. package/dist-lib/components/voorraad/FustenPage.d.ts.map +1 -1
  21. package/dist-lib/components/voorraad/InventorySettingsDrawer.d.ts +10 -0
  22. package/dist-lib/components/voorraad/InventorySettingsDrawer.d.ts.map +1 -0
  23. package/dist-lib/components/voorraad/InventorySettingsDrawer.js +99 -0
  24. package/dist-lib/components/voorraad/InventoryStatusBadge.d.ts +6 -0
  25. package/dist-lib/components/voorraad/InventoryStatusBadge.d.ts.map +1 -0
  26. package/dist-lib/components/voorraad/InventoryStatusBadge.js +43 -0
  27. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts +1 -1
  28. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts.map +1 -1
  29. package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts +1 -1
  30. package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts.map +1 -1
  31. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts +1 -1
  32. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts.map +1 -1
  33. package/dist-lib/components/voorraad/PriceStatusBadge.d.ts +1 -1
  34. package/dist-lib/components/voorraad/PriceStatusBadge.d.ts.map +1 -1
  35. package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts +1 -1
  36. package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts.map +1 -1
  37. package/dist-lib/components/voorraad/ProductLinkCard.d.ts +1 -1
  38. package/dist-lib/components/voorraad/ProductLinkCard.d.ts.map +1 -1
  39. package/dist-lib/components/voorraad/PublicatiesPage.d.ts +1 -1
  40. package/dist-lib/components/voorraad/PublicatiesPage.d.ts.map +1 -1
  41. package/dist-lib/components/voorraad/PublishProgressCard.d.ts +1 -1
  42. package/dist-lib/components/voorraad/PublishProgressCard.d.ts.map +1 -1
  43. package/dist-lib/components/voorraad/PublishReadinessCard.d.ts +1 -1
  44. package/dist-lib/components/voorraad/PublishReadinessCard.d.ts.map +1 -1
  45. package/dist-lib/components/voorraad/StepSamenstelling.d.ts +1 -1
  46. package/dist-lib/components/voorraad/StepSamenstelling.d.ts.map +1 -1
  47. package/dist-lib/components/voorraad/StockBulkButtons.d.ts +1 -1
  48. package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
  49. package/dist-lib/components/voorraad/StockHistoryChart.d.ts +4 -0
  50. package/dist-lib/components/voorraad/StockHistoryChart.d.ts.map +1 -0
  51. package/dist-lib/components/voorraad/StockHistoryChart.js +53 -0
  52. package/dist-lib/components/voorraad/StockPushMonitor.d.ts +1 -1
  53. package/dist-lib/components/voorraad/StockPushMonitor.d.ts.map +1 -1
  54. package/dist-lib/components/voorraad/StockSyncStatus.d.ts +1 -1
  55. package/dist-lib/components/voorraad/StockSyncStatus.d.ts.map +1 -1
  56. package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts +1 -1
  57. package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts.map +1 -1
  58. package/dist-lib/components/voorraad/ValidationPage.d.ts +1 -1
  59. package/dist-lib/components/voorraad/ValidationPage.d.ts.map +1 -1
  60. package/dist-lib/components/voorraad/VoorraadDashboard.d.ts +1 -1
  61. package/dist-lib/components/voorraad/VoorraadDashboard.d.ts.map +1 -1
  62. package/dist-lib/components/voorraad/VoorraadPage.d.ts +1 -1
  63. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  64. package/dist-lib/components/voorraad/VoorraadPage.js +29 -1
  65. package/dist-lib/components/voorraad/VoorraadPagination.d.ts +1 -1
  66. package/dist-lib/components/voorraad/VoorraadPagination.d.ts.map +1 -1
  67. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts +1 -1
  68. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
  69. package/dist-lib/components/voorraad/VoorraadTable.d.ts +10 -2
  70. package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
  71. package/dist-lib/components/voorraad/VoorraadTable.js +17 -6
  72. package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts +1 -1
  73. package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts.map +1 -1
  74. package/dist-lib/hooks/useInventorySettings.d.ts +29 -0
  75. package/dist-lib/hooks/useInventorySettings.d.ts.map +1 -0
  76. package/dist-lib/hooks/useInventorySettings.js +62 -0
  77. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1195 -717
  78. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  79. package/dist-lib/integrations/supabase/client.d.ts +1195 -717
  80. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  81. package/dist-lib/integrations/supabase/client.js +1 -1
  82. package/dist-lib/integrations/supabase/client.server.d.ts +1195 -717
  83. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  84. package/dist-lib/integrations/supabase/client.server.js +1 -1
  85. package/dist-lib/integrations/supabase/types.d.ts +1208 -748
  86. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  87. package/dist-lib/lib/floricode-required-features.functions.d.ts +1196 -724
  88. package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
  89. package/dist-lib/lib/floriday-2026v1.server.d.ts +77 -0
  90. package/dist-lib/lib/floriday-2026v1.server.d.ts.map +1 -0
  91. package/dist-lib/lib/floriday-2026v1.server.js +178 -0
  92. package/dist-lib/lib/floriday-customer-offer.functions.d.ts +1198 -718
  93. package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -1
  94. package/dist-lib/lib/floriday-env.functions.d.ts +2180 -1224
  95. package/dist-lib/lib/floriday-env.functions.d.ts.map +1 -1
  96. package/dist-lib/lib/floriday-gateway.functions.d.ts +6852 -3984
  97. package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
  98. package/dist-lib/lib/floriday-stock-supply.server.d.ts +18 -7
  99. package/dist-lib/lib/floriday-stock-supply.server.d.ts.map +1 -1
  100. package/dist-lib/lib/floriday-stock-supply.server.js +70 -68
  101. package/dist-lib/lib/floriday-vbn-required.functions.d.ts +2180 -1224
  102. package/dist-lib/lib/floriday-vbn-required.functions.d.ts.map +1 -1
  103. package/dist-lib/lib/floriday-warehouse.functions.d.ts +3476 -2042
  104. package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
  105. package/dist-lib/lib/floriday-writes.functions.d.ts +2180 -1224
  106. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  107. package/dist-lib/lib/inventory-settings.functions.d.ts +47391 -0
  108. package/dist-lib/lib/inventory-settings.functions.d.ts.map +1 -0
  109. package/dist-lib/lib/inventory-settings.functions.js +97 -0
  110. package/dist-lib/lib/module-health.functions.d.ts +2180 -1224
  111. package/dist-lib/lib/module-health.functions.d.ts.map +1 -1
  112. package/dist-lib/lib/stock-sync.functions.d.ts +2180 -1224
  113. package/dist-lib/lib/stock-sync.functions.d.ts.map +1 -1
  114. package/package.json +1 -1
  115. package/dist-lib/components/settings/VoorraadSettingsCard.d.ts +0 -2
  116. package/dist-lib/components/settings/VoorraadSettingsCard.d.ts.map +0 -1
  117. package/dist-lib/components/settings/VoorraadSettingsCard.js +0 -39
  118. package/dist-lib/components/voorraad/ConnectionPicker.d.ts +0 -8
  119. package/dist-lib/components/voorraad/ConnectionPicker.d.ts.map +0 -1
  120. package/dist-lib/components/voorraad/ConnectionPicker.js +0 -8
@@ -1,2 +1,2 @@
1
- export declare function TemplatePage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function TemplatePage(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=TemplatePage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplatePage.d.ts","sourceRoot":"","sources":["../../src/components/TemplatePage.tsx"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,4CAS3B"}
1
+ {"version":3,"file":"TemplatePage.d.ts","sourceRoot":"","sources":["../../src/components/TemplatePage.tsx"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,gCAS3B"}
@@ -4,6 +4,6 @@ interface Props {
4
4
  onOpenChange: (open: boolean) => void;
5
5
  onSave: (item: AdditionalPackagingInput) => void;
6
6
  }
7
- export declare function AdditionalPackagingDialog({ open, onOpenChange, onSave }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export declare function AdditionalPackagingDialog({ open, onOpenChange, onSave }: Props): import("react").JSX.Element;
8
8
  export {};
9
9
  //# sourceMappingURL=AdditionalPackagingDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdditionalPackagingDialog.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/AdditionalPackagingDialog.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AAMpC,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,2CA2I9E"}
1
+ {"version":3,"file":"AdditionalPackagingDialog.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/AdditionalPackagingDialog.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AAMpC,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,+BA2I9E"}
@@ -2,6 +2,6 @@ interface Props {
2
2
  productId: string | null;
3
3
  floridayId: string | null;
4
4
  }
5
- export declare function ArtikelCompositionCard({ productId, floridayId }: Props): import("react/jsx-runtime").JSX.Element | null;
5
+ export declare function ArtikelCompositionCard({ productId, floridayId }: Props): import("react").JSX.Element | null;
6
6
  export {};
7
7
  //# sourceMappingURL=ArtikelCompositionCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArtikelCompositionCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelCompositionCard.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAqFD,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,kDAgNtE"}
1
+ {"version":3,"file":"ArtikelCompositionCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelCompositionCard.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAqFD,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,sCAgNtE"}
@@ -3,5 +3,5 @@ export declare function ArtikelWizard({ draftId: initialDraftId, tradeItemId, pr
3
3
  tradeItemId?: string;
4
4
  productId?: string;
5
5
  resumeJobId?: string;
6
- }): import("react/jsx-runtime").JSX.Element;
6
+ }): import("react").JSX.Element;
7
7
  //# sourceMappingURL=ArtikelWizard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AAqMA,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,2CAs7DL"}
1
+ {"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AAqMA,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,+BAs7DL"}
@@ -2,5 +2,5 @@ import type { FloridayActiveConnection } from "../../lib/floriday-client";
2
2
  export declare function ConnectionBadge({ connection, loading, }: {
3
3
  connection: FloridayActiveConnection | null;
4
4
  loading?: boolean;
5
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): import("react").JSX.Element;
6
6
  //# sourceMappingURL=ConnectionBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ConnectionBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,GACR,EAAE;IACD,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,2CAqBA"}
1
+ {"version":3,"file":"ConnectionBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ConnectionBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,GACR,EAAE;IACD,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,+BAqBA"}
@@ -1,5 +1,5 @@
1
1
  export declare function EditArtikelPage({ id, resumeJobId, }: {
2
2
  id: string;
3
3
  resumeJobId?: string;
4
- }): import("react/jsx-runtime").JSX.Element;
4
+ }): import("react").JSX.Element;
5
5
  //# sourceMappingURL=EditArtikelPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/EditArtikelPage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,WAAW,GACZ,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,2CAmFA"}
1
+ {"version":3,"file":"EditArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/EditArtikelPage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,WAAW,GACZ,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BAmFA"}
@@ -3,5 +3,5 @@ export declare function ExcelExportButton({ items, filename, onExported, }: {
3
3
  items: TradeItem[];
4
4
  filename?: string;
5
5
  onExported?: () => void | Promise<void>;
6
- }): import("react/jsx-runtime").JSX.Element;
6
+ }): import("react").JSX.Element;
7
7
  //# sourceMappingURL=ExcelExportButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExcelExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ExcelExportButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAqB,EACrB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,2CAgDA"}
1
+ {"version":3,"file":"ExcelExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ExcelExportButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAqB,EACrB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,+BAgDA"}
@@ -7,6 +7,6 @@ interface Props {
7
7
  gtin?: string | null;
8
8
  };
9
9
  }
10
- export declare function FloridayInfoCard({ floridayTradeItemId, local }: Props): import("react/jsx-runtime").JSX.Element | null;
10
+ export declare function FloridayInfoCard({ floridayTradeItemId, local }: Props): import("react").JSX.Element | null;
11
11
  export {};
12
12
  //# sourceMappingURL=FloridayInfoCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,kDAqRrE"}
1
+ {"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,sCAqRrE"}
@@ -1,4 +1,4 @@
1
1
  export declare function FloridayStatusBadge({ active }: {
2
2
  active: boolean | undefined;
3
- }): import("react/jsx-runtime").JSX.Element;
3
+ }): import("react").JSX.Element;
4
4
  //# sourceMappingURL=FloridayStatusBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FloridayStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayStatusBadge.tsx"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,2CAa9E"}
1
+ {"version":3,"file":"FloridayStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayStatusBadge.tsx"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,+BAa9E"}
@@ -1,2 +1,2 @@
1
- export declare function FustenPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function FustenPage(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=FustenPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FustenPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FustenPage.tsx"],"names":[],"mappings":"AA2JA,wBAAgB,UAAU,4CAkMzB"}
1
+ {"version":3,"file":"FustenPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FustenPage.tsx"],"names":[],"mappings":"AA2JA,wBAAgB,UAAU,gCAkMzB"}
@@ -0,0 +1,10 @@
1
+ import type { InventorySetting } from "../../hooks/useInventorySettings";
2
+ export declare function InventorySettingsDrawer({ open, onOpenChange, connectionId, productIds, current, onSaved, }: {
3
+ open: boolean;
4
+ onOpenChange: (v: boolean) => void;
5
+ connectionId: string | null;
6
+ productIds: string[];
7
+ current?: InventorySetting | undefined;
8
+ onSaved?: () => void;
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=InventorySettingsDrawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InventorySettingsDrawer.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/InventorySettingsDrawer.tsx"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,kCAAkC,CAAC;AAWpF,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,+BA0LA"}
@@ -0,0 +1,99 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Instellingen voor de Floriday-voorraadsturing van één of meerdere producten.
4
+ * Bij meerdere producten (bulk) worden alleen de ingevulde velden toegepast.
5
+ */
6
+ import { useEffect, useState } from "react";
7
+ import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
8
+ import { useServerFn } from "@tanstack/react-start";
9
+ import { toast } from "sonner";
10
+ import { saveInventorySettings, republishInventory, } from "../../lib/inventory-settings.functions";
11
+ import { MODE_LABELS } from "./InventoryStatusBadge";
12
+ const MODE_HELP = {
13
+ FOLLOW_ERP: "Publiceert de beschikbare voorraad uit dit systeem, minus de buffer.",
14
+ MAX: "Volgt het ERP, maar publiceert nooit meer dan het opgegeven maximum.",
15
+ FIXED: "Publiceert altijd hetzelfde aantal, ongeacht de ERP-voorraad.",
16
+ MANUAL: "Publiceert het aantal dat je hier zelf invult; het ERP wordt genegeerd.",
17
+ DISABLED: "Er wordt niets meer naar Floriday gestuurd voor dit artikel.",
18
+ };
19
+ export function InventorySettingsDrawer({ open, onOpenChange, connectionId, productIds, current, onSaved, }) {
20
+ const save = useServerFn(saveInventorySettings);
21
+ const republish = useServerFn(republishInventory);
22
+ const bulk = productIds.length > 1;
23
+ const [mode, setMode] = useState("");
24
+ const [buffer, setBuffer] = useState("");
25
+ const [maximum, setMaximum] = useState("");
26
+ const [fixed, setFixed] = useState("");
27
+ const [manual, setManual] = useState("");
28
+ const [busy, setBusy] = useState(false);
29
+ useEffect(() => {
30
+ if (!open)
31
+ return;
32
+ if (bulk || !current) {
33
+ setMode("");
34
+ setBuffer("");
35
+ setMaximum("");
36
+ setFixed("");
37
+ setManual("");
38
+ return;
39
+ }
40
+ setMode((current.stock_mode ?? "FOLLOW_ERP"));
41
+ setBuffer(String(current.buffer_quantity ?? 0));
42
+ setMaximum(current.maximum_quantity === null ? "" : String(current.maximum_quantity));
43
+ setFixed(current.fixed_quantity === null ? "" : String(current.fixed_quantity));
44
+ setManual(current.manual_quantity === null ? "" : String(current.manual_quantity));
45
+ }, [open, bulk, current]);
46
+ const num = (v) => {
47
+ if (v.trim() === "")
48
+ return undefined;
49
+ const n = Number(v);
50
+ return Number.isFinite(n) && n >= 0 ? Math.floor(n) : undefined;
51
+ };
52
+ const onSave = async () => {
53
+ if (!connectionId || productIds.length === 0)
54
+ return;
55
+ setBusy(true);
56
+ try {
57
+ const res = await save({
58
+ data: {
59
+ connectionId,
60
+ productIds,
61
+ ...(mode ? { stockMode: mode } : {}),
62
+ ...(num(buffer) !== undefined ? { bufferQuantity: num(buffer) } : {}),
63
+ ...(maximum.trim() !== "" ? { maximumQuantity: num(maximum) ?? null } : {}),
64
+ ...(fixed.trim() !== "" ? { fixedQuantity: num(fixed) ?? null } : {}),
65
+ ...(manual.trim() !== "" ? { manualQuantity: num(manual) ?? null } : {}),
66
+ },
67
+ });
68
+ toast.success(`Voorraadsturing bijgewerkt voor ${res.updated} artikel(en).`);
69
+ onSaved?.();
70
+ onOpenChange(false);
71
+ }
72
+ catch (e) {
73
+ toast.error(e.message);
74
+ }
75
+ finally {
76
+ setBusy(false);
77
+ }
78
+ };
79
+ const onRepublish = async () => {
80
+ if (!connectionId || productIds.length === 0)
81
+ return;
82
+ setBusy(true);
83
+ try {
84
+ const res = await republish({ data: { connectionId, productIds } });
85
+ toast.success(`${res.queued} artikel(en) opnieuw ingepland voor Floriday.`);
86
+ onSaved?.();
87
+ }
88
+ catch (e) {
89
+ toast.error(e.message);
90
+ }
91
+ finally {
92
+ setBusy(false);
93
+ }
94
+ };
95
+ const activeMode = (mode || current?.stock_mode || "");
96
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "sm:max-w-lg", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Voorraadsturing Floriday" }), _jsx(DialogDescription, { children: bulk
97
+ ? `${productIds.length} artikelen. Alleen de velden die je invult worden aangepast.`
98
+ : "Bepaal welk aantal er naar Floriday wordt gepubliceerd." })] }), _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { children: "Modus" }), _jsxs(Select, { value: mode, onValueChange: (v) => setMode(v), children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, { placeholder: bulk ? "Niet wijzigen" : "Kies een modus" }) }), _jsx(SelectContent, { children: Object.keys(MODE_LABELS).map((m) => (_jsx(SelectItem, { value: m, children: MODE_LABELS[m] }, m))) })] }), activeMode && (_jsx("p", { className: "text-xs text-muted-foreground", children: MODE_HELP[activeMode] }))] }), _jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { children: "Buffer" }), _jsx(Input, { inputMode: "numeric", value: buffer, onChange: (e) => setBuffer(e.target.value), placeholder: bulk ? "Niet wijzigen" : "0" }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Aantal dat je achterhoudt en dus niet aanbiedt." })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { children: "Maximum" }), _jsx(Input, { inputMode: "numeric", value: maximum, onChange: (e) => setMaximum(e.target.value), placeholder: bulk ? "Niet wijzigen" : "Geen", disabled: activeMode !== "" && activeMode !== "MAX" && !bulk })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { children: "Vast aantal" }), _jsx(Input, { inputMode: "numeric", value: fixed, onChange: (e) => setFixed(e.target.value), placeholder: bulk ? "Niet wijzigen" : "Geen", disabled: activeMode !== "" && activeMode !== "FIXED" && !bulk })] }), _jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { children: "Handmatig aantal" }), _jsx(Input, { inputMode: "numeric", value: manual, onChange: (e) => setManual(e.target.value), placeholder: bulk ? "Niet wijzigen" : "Geen", disabled: activeMode !== "" && activeMode !== "MANUAL" && !bulk })] })] }), !bulk && current && (_jsxs("div", { className: "rounded-md border bg-muted/40 p-3 text-xs text-muted-foreground space-y-1", children: [_jsxs("div", { children: ["Gewenst: ", _jsx("strong", { className: "text-foreground", children: current.desired_quantity }), " ", "\u00B7 In Floriday:", " ", _jsx("strong", { className: "text-foreground", children: current.remote_quantity ?? "onbekend" })] }), current.last_published_at && (_jsxs("div", { children: ["Laatst verstuurd:", " ", new Date(current.last_published_at).toLocaleString("nl-NL")] })), current.last_sync_error && (_jsxs("div", { className: "text-destructive", children: ["Laatste fout: ", current.last_sync_error] }))] }))] }), _jsxs(DialogFooter, { className: "gap-2", children: [_jsx(Button, { variant: "outline", onClick: onRepublish, disabled: busy, children: "Opnieuw versturen" }), _jsx(Button, { onClick: onSave, disabled: busy, children: busy ? "Opslaan..." : "Opslaan" })] })] }) }));
99
+ }
@@ -0,0 +1,6 @@
1
+ import type { InventorySetting, StockMode } from "../../hooks/useInventorySettings";
2
+ export declare const MODE_LABELS: Record<StockMode, string>;
3
+ export declare function InventoryStatusBadge({ setting }: {
4
+ setting: InventorySetting | undefined;
5
+ }): import("react").JSX.Element;
6
+ //# sourceMappingURL=InventoryStatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InventoryStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/InventoryStatusBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAEpF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAMjD,CAAC;AA4BF,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAA;CAAE,+BAyB1F"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Badge } from "@flowselections/core";
3
+ export const MODE_LABELS = {
4
+ FOLLOW_ERP: "Volgt ERP",
5
+ MAX: "Max",
6
+ FIXED: "Vast",
7
+ MANUAL: "Handmatig",
8
+ DISABLED: "Uit",
9
+ };
10
+ const MODE_CLASSES = {
11
+ FOLLOW_ERP: "bg-primary/10 text-primary border-primary/30",
12
+ MAX: "bg-sky-500/15 text-sky-700 border-sky-500/30",
13
+ FIXED: "bg-indigo-500/15 text-indigo-700 border-indigo-500/30",
14
+ MANUAL: "bg-amber-500/15 text-amber-800 border-amber-500/30",
15
+ DISABLED: "bg-muted text-muted-foreground border-border",
16
+ };
17
+ /** Bolletje: klopt de stand in Floriday met wat wij willen? */
18
+ function syncDot(status) {
19
+ switch (status) {
20
+ case "IN_SYNC":
21
+ return { cls: "bg-emerald-500", title: "Gelijk aan Floriday" };
22
+ case "PENDING":
23
+ return { cls: "bg-amber-500", title: "Wordt doorgezet naar Floriday" };
24
+ case "DRIFT":
25
+ return { cls: "bg-orange-500", title: "Wijkt af van Floriday" };
26
+ case "ERROR":
27
+ return { cls: "bg-destructive", title: "Doorzetten mislukt" };
28
+ case "DISABLED":
29
+ return { cls: "bg-muted-foreground/40", title: "Sturing staat uit" };
30
+ default:
31
+ return { cls: "bg-muted-foreground/40", title: "Nog niet gecontroleerd" };
32
+ }
33
+ }
34
+ export function InventoryStatusBadge({ setting }) {
35
+ if (!setting) {
36
+ return _jsx("span", { className: "text-xs text-muted-foreground", children: "\u2014" });
37
+ }
38
+ const mode = (setting.stock_mode ?? "FOLLOW_ERP");
39
+ const dot = syncDot(setting.sync_status ?? "UNKNOWN");
40
+ return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Badge, { className: MODE_CLASSES[mode] ?? MODE_CLASSES.FOLLOW_ERP, children: MODE_LABELS[mode] ?? mode }), _jsx("span", { className: `h-2 w-2 shrink-0 rounded-full ${dot.cls}`, title: setting.last_sync_error
41
+ ? `${dot.title}: ${setting.last_sync_error}`
42
+ : dot.title, "aria-label": dot.title }), _jsx("span", { className: "tabular-nums text-xs text-muted-foreground", children: setting.desired_quantity ?? 0 })] }));
43
+ }
@@ -1,2 +1,2 @@
1
- export declare function ModuleHealthCard(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function ModuleHealthCard(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=ModuleHealthCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleHealthCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ModuleHealthCard.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,gBAAgB,4CA8D/B"}
1
+ {"version":3,"file":"ModuleHealthCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ModuleHealthCard.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,gBAAgB,gCA8D/B"}
@@ -1,2 +1,2 @@
1
- export declare function NieuwArtikelPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function NieuwArtikelPage(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=NieuwArtikelPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NieuwArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/NieuwArtikelPage.tsx"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,4CAE/B"}
1
+ {"version":3,"file":"NieuwArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/NieuwArtikelPage.tsx"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB,gCAE/B"}
@@ -3,6 +3,6 @@ interface Props {
3
3
  productName: string | null;
4
4
  productId?: string | null;
5
5
  }
6
- export declare function OrderHistoryCard({ tradeItemKey, productName, productId }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export declare function OrderHistoryCard({ tradeItemKey, productName, productId }: Props): import("react").JSX.Element;
7
7
  export {};
8
8
  //# sourceMappingURL=OrderHistoryCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderHistoryCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/OrderHistoryCard.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAgDD,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,KAAK,2CAoK/E"}
1
+ {"version":3,"file":"OrderHistoryCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/OrderHistoryCard.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAgDD,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,KAAK,+BAoK/E"}
@@ -2,6 +2,6 @@ type Props = {
2
2
  tradeItemId: string | null | undefined;
3
3
  offerForSale: boolean;
4
4
  };
5
- export declare function PriceStatusBadge({ tradeItemId, offerForSale }: Props): import("react/jsx-runtime").JSX.Element | null;
5
+ export declare function PriceStatusBadge({ tradeItemId, offerForSale }: Props): import("react").JSX.Element | null;
6
6
  export {};
7
7
  //# sourceMappingURL=PriceStatusBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PriceStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PriceStatusBadge.tsx"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAeF,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,KAAK,kDAkEpE"}
1
+ {"version":3,"file":"PriceStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PriceStatusBadge.tsx"],"names":[],"mappings":"AAGA,KAAK,KAAK,GAAG;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAeF,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,KAAK,sCAkEpE"}
@@ -1,5 +1,5 @@
1
1
  /** Eigen voorraadvelden met `show_in_detail`, tonen en bewerken op de productpagina. */
2
2
  export declare function ProductCustomFieldsCard({ productId }: {
3
3
  productId: string;
4
- }): import("react/jsx-runtime").JSX.Element | null;
4
+ }): import("react").JSX.Element | null;
5
5
  //# sourceMappingURL=ProductCustomFieldsCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductCustomFieldsCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ProductCustomFieldsCard.tsx"],"names":[],"mappings":"AAyBA,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,kDA6H3E"}
1
+ {"version":3,"file":"ProductCustomFieldsCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ProductCustomFieldsCard.tsx"],"names":[],"mappings":"AAyBA,wFAAwF;AACxF,wBAAgB,uBAAuB,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,sCA6H3E"}
@@ -8,6 +8,6 @@ interface Props {
8
8
  * Koppelt ERP-`products` rijen aan één Floriday-voorraadrij (`trade_item_key`).
9
9
  * Zonder koppeling doen bestel-triggers niets voor mailbox/manual-orders.
10
10
  */
11
- export declare function ProductLinkCard({ tradeItemKey, productName }: Props): import("react/jsx-runtime").JSX.Element;
11
+ export declare function ProductLinkCard({ tradeItemKey, productName }: Props): import("react").JSX.Element;
12
12
  export {};
13
13
  //# sourceMappingURL=ProductLinkCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductLinkCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ProductLinkCard.tsx"],"names":[],"mappings":"AAWA,UAAU,KAAK;IACb,qFAAqF;IACrF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AASD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,2CA4OnE"}
1
+ {"version":3,"file":"ProductLinkCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ProductLinkCard.tsx"],"names":[],"mappings":"AAWA,UAAU,KAAK;IACb,qFAAqF;IACrF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AASD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,KAAK,+BA4OnE"}
@@ -1,2 +1,2 @@
1
- export declare function PublicatiesPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function PublicatiesPage(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=PublicatiesPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublicatiesPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PublicatiesPage.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,eAAe,4CAuI9B"}
1
+ {"version":3,"file":"PublicatiesPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PublicatiesPage.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,eAAe,gCAuI9B"}
@@ -8,5 +8,5 @@ export declare function PublishProgressCard({ job, steps, onRetry, retrying, onF
8
8
  onRetry?: () => void;
9
9
  retrying?: boolean;
10
10
  onFixStep?: (stepKey: string) => void;
11
- }): import("react/jsx-runtime").JSX.Element | null;
11
+ }): import("react").JSX.Element | null;
12
12
  //# sourceMappingURL=PublishProgressCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublishProgressCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PublishProgressCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAoBhF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE;IACD,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,kDAyDA"}
1
+ {"version":3,"file":"PublishProgressCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PublishProgressCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAoBhF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,EACH,KAAK,EACL,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE;IACD,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,sCAyDA"}
@@ -6,5 +6,5 @@ export declare function PublishReadinessCard({ report, loading, onGoToStep, }: {
6
6
  report: ReadinessReport;
7
7
  loading?: boolean;
8
8
  onGoToStep?: (stepKey: string) => void;
9
- }): import("react/jsx-runtime").JSX.Element;
9
+ }): import("react").JSX.Element;
10
10
  //# sourceMappingURL=PublishReadinessCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublishReadinessCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PublishReadinessCard.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,OAAO,EACP,UAAU,GACX,EAAE;IACD,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,2CAuEA"}
1
+ {"version":3,"file":"PublishReadinessCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/PublishReadinessCard.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,OAAO,EACP,UAAU,GACX,EAAE;IACD,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,+BAuEA"}
@@ -5,6 +5,6 @@ interface Props {
5
5
  packings: PackingConfigurationInput[];
6
6
  packagingTypeLabel: (code: string) => string;
7
7
  }
8
- export declare function StepSamenstelling({ productId, floridayId, packings, packagingTypeLabel, }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export declare function StepSamenstelling({ productId, floridayId, packings, packagingTypeLabel, }: Props): import("react").JSX.Element;
9
9
  export {};
10
10
  //# sourceMappingURL=StepSamenstelling.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepSamenstelling.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StepSamenstelling.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAsB5E,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAUD,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,kBAAkB,GACnB,EAAE,KAAK,2CA+ZP"}
1
+ {"version":3,"file":"StepSamenstelling.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StepSamenstelling.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAsB5E,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,yBAAyB,EAAE,CAAC;IACtC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAUD,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,kBAAkB,GACnB,EAAE,KAAK,+BA+ZP"}
@@ -3,5 +3,5 @@ export declare function StockBulkButtons({ items, activeConnectionId, onImported
3
3
  items: TradeItem[];
4
4
  activeConnectionId: string | null;
5
5
  onImported: () => void | Promise<void>;
6
- }): import("react/jsx-runtime").JSX.Element;
6
+ }): import("react").JSX.Element;
7
7
  //# sourceMappingURL=StockBulkButtons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StockBulkButtons.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StockBulkButtons.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAyF3D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,kBAAkB,EAClB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,2CAmoBA"}
1
+ {"version":3,"file":"StockBulkButtons.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StockBulkButtons.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAyF3D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,kBAAkB,EAClB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,UAAU,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,+BAmoBA"}
@@ -0,0 +1,4 @@
1
+ export declare function StockHistoryChart({ connectionId }: {
2
+ connectionId: string | null;
3
+ }): import("react").JSX.Element;
4
+ //# sourceMappingURL=StockHistoryChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StockHistoryChart.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StockHistoryChart.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,iBAAiB,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,+BAoGlF"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Historie van de voorraadsturing: wat had het ERP beschikbaar, wat wilden we
4
+ * in Floriday hebben, en wat stond er werkelijk. De punten komen uit
5
+ * `inventory_stock_snapshots` en worden door de database gecompacteerd.
6
+ */
7
+ import { useEffect, useState } from "react";
8
+ import { Card } from "@flowselections/core";
9
+ import { CartesianGrid, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts";
10
+ import { supabase } from "../../integrations/supabase/client";
11
+ export function StockHistoryChart({ connectionId }) {
12
+ const [points, setPoints] = useState([]);
13
+ const [loading, setLoading] = useState(false);
14
+ useEffect(() => {
15
+ let cancelled = false;
16
+ if (!connectionId) {
17
+ setPoints([]);
18
+ return;
19
+ }
20
+ setLoading(true);
21
+ const since = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString();
22
+ supabase
23
+ .from("inventory_stock_snapshots")
24
+ .select("snapshot_at, erp_available_quantity, floriday_desired_quantity, floriday_remote_quantity")
25
+ .eq("connection_id", connectionId)
26
+ .gte("snapshot_at", since)
27
+ .order("snapshot_at", { ascending: true })
28
+ .limit(1000)
29
+ .then(({ data }) => {
30
+ if (cancelled)
31
+ return;
32
+ setPoints((data ?? []).map((r) => ({
33
+ t: r.snapshot_at,
34
+ label: new Date(r.snapshot_at).toLocaleString("nl-NL", {
35
+ day: "2-digit",
36
+ month: "2-digit",
37
+ hour: "2-digit",
38
+ minute: "2-digit",
39
+ }),
40
+ erp: Number(r.erp_available_quantity ?? 0),
41
+ gewenst: Number(r.floriday_desired_quantity ?? 0),
42
+ floriday: r.floriday_remote_quantity === null
43
+ ? null
44
+ : Number(r.floriday_remote_quantity),
45
+ })));
46
+ setLoading(false);
47
+ });
48
+ return () => {
49
+ cancelled = true;
50
+ };
51
+ }, [connectionId]);
52
+ return (_jsxs(Card, { className: "p-4", children: [_jsxs("div", { className: "flex items-baseline justify-between", children: [_jsx("h2", { className: "text-sm font-semibold", children: "Voorraadverloop (30 dagen)" }), _jsx("span", { className: "text-xs text-muted-foreground", children: "ERP beschikbaar \u00B7 gewenst in Floriday \u00B7 werkelijk in Floriday" })] }), _jsx("div", { className: "mt-4 h-56", children: loading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Historie laden..." })) : points.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Nog geen historie beschikbaar. De eerste meetpunten verschijnen binnen een uur." })) : (_jsx(ResponsiveContainer, { width: "100%", height: "100%", children: _jsxs(LineChart, { data: points, margin: { top: 4, right: 8, bottom: 0, left: -16 }, children: [_jsx(CartesianGrid, { strokeDasharray: "3 3", className: "stroke-border" }), _jsx(XAxis, { dataKey: "label", tick: { fontSize: 11 }, minTickGap: 32 }), _jsx(YAxis, { tick: { fontSize: 11 }, allowDecimals: false }), _jsx(Tooltip, {}), _jsx(Line, { type: "monotone", dataKey: "erp", name: "ERP beschikbaar", stroke: "hsl(var(--muted-foreground))", dot: false, strokeWidth: 2 }), _jsx(Line, { type: "monotone", dataKey: "gewenst", name: "Gewenst", stroke: "hsl(var(--primary))", dot: false, strokeWidth: 2 }), _jsx(Line, { type: "monotone", dataKey: "floriday", name: "In Floriday", stroke: "hsl(142 71% 40%)", dot: false, strokeWidth: 2, connectNulls: true })] }) })) })] }));
53
+ }
@@ -1,4 +1,4 @@
1
1
  export declare function StockPushMonitor({ connectionId }: {
2
2
  connectionId: string | null;
3
- }): import("react/jsx-runtime").JSX.Element;
3
+ }): import("react").JSX.Element;
4
4
  //# sourceMappingURL=StockPushMonitor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StockPushMonitor.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StockPushMonitor.tsx"],"names":[],"mappings":"AAiFA,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,2CAyJjF"}
1
+ {"version":3,"file":"StockPushMonitor.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StockPushMonitor.tsx"],"names":[],"mappings":"AAiFA,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,+BAyJjF"}
@@ -1,2 +1,2 @@
1
- export declare function StockSyncStatus(): import("react/jsx-runtime").JSX.Element | null;
1
+ export declare function StockSyncStatus(): import("react").JSX.Element | null;
2
2
  //# sourceMappingURL=StockSyncStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StockSyncStatus.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StockSyncStatus.tsx"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,mDA8D9B"}
1
+ {"version":3,"file":"StockSyncStatus.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/StockSyncStatus.tsx"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,uCA8D9B"}
@@ -8,5 +8,5 @@ export declare function ValidationOverviewTable({ items, connectionId, onChanged
8
8
  items: TradeItem[];
9
9
  connectionId: string | null;
10
10
  onChanged: () => void | Promise<void>;
11
- }): import("react/jsx-runtime").JSX.Element;
11
+ }): import("react").JSX.Element;
12
12
  //# sourceMappingURL=ValidationOverviewTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationOverviewTable.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ValidationOverviewTable.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAM3D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,YAAY,EACZ,SAAS,GACV,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,2CAmHA"}
1
+ {"version":3,"file":"ValidationOverviewTable.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ValidationOverviewTable.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAM3D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,YAAY,EACZ,SAAS,GACV,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,+BAmHA"}
@@ -1,2 +1,2 @@
1
- export declare function ValidationPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function ValidationPage(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=ValidationPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ValidationPage.tsx"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,4CAiC7B"}
1
+ {"version":3,"file":"ValidationPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ValidationPage.tsx"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,gCAiC7B"}
@@ -6,5 +6,5 @@ import type { TradeItem } from "../../lib/floriday-client";
6
6
  export declare function VoorraadDashboard({ items, connectionId, }: {
7
7
  items: TradeItem[];
8
8
  connectionId: string | null;
9
- }): import("react/jsx-runtime").JSX.Element;
9
+ }): import("react").JSX.Element;
10
10
  //# sourceMappingURL=VoorraadDashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoorraadDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/VoorraadDashboard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA4B3D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,YAAY,GACb,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,2CA0DA"}
1
+ {"version":3,"file":"VoorraadDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/VoorraadDashboard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA4B3D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,YAAY,GACb,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,+BA0DA"}
@@ -1,2 +1,2 @@
1
- export declare function VoorraadPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function VoorraadPage(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=VoorraadPage.d.ts.map