@flowselections/floriday-verkoop-module 1.0.66 → 1.0.67

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/verkoop/AnalyticsCards.d.ts +1 -1
  2. package/dist-lib/components/verkoop/AnalyticsCards.d.ts.map +1 -1
  3. package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts +1 -1
  4. package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts.map +1 -1
  5. package/dist-lib/components/verkoop/CartAssignmentWizard.js +1 -1
  6. package/dist-lib/components/verkoop/CartLayersDialog.d.ts +1 -1
  7. package/dist-lib/components/verkoop/CartLayersDialog.d.ts.map +1 -1
  8. package/dist-lib/components/verkoop/CartLayersDialog.js +1 -1
  9. package/dist-lib/components/verkoop/CreateOrderPage.d.ts +1 -1
  10. package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
  11. package/dist-lib/components/verkoop/CreateOrderPage.js +5 -5
  12. package/dist-lib/components/verkoop/DiagnoseConnectionDialog.d.ts +1 -1
  13. package/dist-lib/components/verkoop/DiagnoseConnectionDialog.d.ts.map +1 -1
  14. package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts +1 -1
  15. package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts.map +1 -1
  16. package/dist-lib/components/verkoop/EngineBufferCard.d.ts +1 -1
  17. package/dist-lib/components/verkoop/EngineBufferCard.d.ts.map +1 -1
  18. package/dist-lib/components/verkoop/EngineBufferCard.js +1 -1
  19. package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts +1 -1
  20. package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts.map +1 -1
  21. package/dist-lib/components/verkoop/InvoiceTimingSettings.js +2 -2
  22. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts +1 -1
  23. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts.map +1 -1
  24. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.js +1 -1
  25. package/dist-lib/components/verkoop/OrderCarrierPicker.d.ts +1 -1
  26. package/dist-lib/components/verkoop/OrderCarrierPicker.d.ts.map +1 -1
  27. package/dist-lib/components/verkoop/OrderCarrierPicker.js +1 -1
  28. package/dist-lib/components/verkoop/OrderControlStatusCard.d.ts +1 -1
  29. package/dist-lib/components/verkoop/OrderControlStatusCard.d.ts.map +1 -1
  30. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts +2 -2
  31. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts.map +1 -1
  32. package/dist-lib/components/verkoop/OrderKarindelingCard.js +4 -4
  33. package/dist-lib/components/verkoop/OrderLinePackingCard.d.ts +1 -1
  34. package/dist-lib/components/verkoop/OrderLinePackingCard.d.ts.map +1 -1
  35. package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts +1 -1
  36. package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts.map +1 -1
  37. package/dist-lib/components/verkoop/OrderPickupMomentPicker.js +1 -1
  38. package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts +2 -2
  39. package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts.map +1 -1
  40. package/dist-lib/components/verkoop/OrderShipmentsCard.js +2 -2
  41. package/dist-lib/components/verkoop/ProductDimensionsSettings.d.ts +1 -1
  42. package/dist-lib/components/verkoop/ProductDimensionsSettings.d.ts.map +1 -1
  43. package/dist-lib/components/verkoop/ProductDimensionsSettings.js +1 -1
  44. package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts +1 -1
  45. package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts.map +1 -1
  46. package/dist-lib/components/verkoop/SalesOrderDetailPage.js +12 -12
  47. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts +1 -1
  48. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
  49. package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts +1 -1
  50. package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts.map +1 -1
  51. package/dist-lib/components/verkoop/SalesOrdersFilters.d.ts +1 -1
  52. package/dist-lib/components/verkoop/SalesOrdersFilters.d.ts.map +1 -1
  53. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts +2 -1
  54. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
  55. package/dist-lib/components/verkoop/SalesOrdersTable.js +3 -3
  56. package/dist-lib/components/verkoop/SearchableSelect.d.ts +1 -1
  57. package/dist-lib/components/verkoop/SearchableSelect.d.ts.map +1 -1
  58. package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.d.ts +1 -1
  59. package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.d.ts.map +1 -1
  60. package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts +1 -1
  61. package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
  62. package/dist-lib/components/verkoop/WeekCalendar.d.ts +1 -1
  63. package/dist-lib/components/verkoop/WeekCalendar.d.ts.map +1 -1
  64. package/dist-lib/integrations/supabase/client.js +1 -1
  65. package/dist-lib/integrations/supabase/client.server.js +1 -1
  66. package/dist-lib/lib/tradeitems.functions.d.ts +1117 -12
  67. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  68. package/dist-lib/lib/useBufferEvents.d.ts +2 -2
  69. package/dist-lib/lib/useBufferEvents.d.ts.map +1 -1
  70. package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts +2 -2
  71. package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts.map +1 -1
  72. package/dist-lib/lib/useSalesOrderDetailQuery.d.ts +1 -1
  73. package/dist-lib/lib/useSalesOrderDetailQuery.d.ts.map +1 -1
  74. package/dist-lib/lib/useSalesOrdersQuery.d.ts +1 -1
  75. package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
  76. package/package.json +131 -131
  77. package/dist-lib/components/floriday/FlorydaySyncHealthBanner.d.ts +0 -9
  78. package/dist-lib/components/floriday/FlorydaySyncHealthBanner.d.ts.map +0 -1
  79. package/dist-lib/components/floriday/FlorydaySyncHealthBanner.js +0 -26
  80. package/dist-lib/components/karindeling/AfmetingenTab.d.ts +0 -6
  81. package/dist-lib/components/karindeling/AfmetingenTab.d.ts.map +0 -1
  82. package/dist-lib/components/karindeling/AfmetingenTab.js +0 -128
  83. package/dist-lib/components/karindeling/KarindelingPage.d.ts +0 -2
  84. package/dist-lib/components/karindeling/KarindelingPage.d.ts.map +0 -1
  85. package/dist-lib/components/karindeling/KarindelingPage.js +0 -102
  86. package/dist-lib/components/ui/dropdown-menu.d.ts +0 -9
  87. package/dist-lib/components/ui/dropdown-menu.d.ts.map +0 -1
  88. package/dist-lib/components/ui/dropdown-menu.js +0 -14
  89. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts +0 -4
  90. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts.map +0 -1
  91. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.js +0 -95
  92. package/dist-lib/components/verkoop/CreateOrderDialog.d.ts +0 -5
  93. package/dist-lib/components/verkoop/CreateOrderDialog.d.ts.map +0 -1
  94. package/dist-lib/components/verkoop/CreateOrderDialog.js +0 -33
  95. package/dist-lib/lib/cron/mirror-floriday-orders.d.ts +0 -4
  96. package/dist-lib/lib/cron/mirror-floriday-orders.d.ts.map +0 -1
  97. package/dist-lib/lib/cron/mirror-floriday-orders.js +0 -23
  98. package/dist-lib/lib/cron/push-order-statuses.d.ts +0 -4
  99. package/dist-lib/lib/cron/push-order-statuses.d.ts.map +0 -1
  100. package/dist-lib/lib/cron/push-order-statuses.js +0 -23
  101. package/dist-lib/lib/floriday/floriday.server.d.ts +0 -14
  102. package/dist-lib/lib/floriday/floriday.server.d.ts.map +0 -1
  103. package/dist-lib/lib/floriday/floriday.server.js +0 -92
  104. package/dist-lib/lib/floriday/sales-orders.functions.d.ts +0 -4736
  105. package/dist-lib/lib/floriday/sales-orders.functions.d.ts.map +0 -1
  106. package/dist-lib/lib/floriday/sales-orders.functions.js +0 -193
  107. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +0 -77581
  108. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +0 -1
  109. package/dist-lib/lib/floriday-auto-fulfillment.functions.js +0 -65
  110. package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts +0 -21
  111. package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts.map +0 -1
  112. package/dist-lib/lib/floriday-auto-fulfillment.server.js +0 -352
  113. package/dist-lib/lib/floriday-status-sync.server.d.ts +0 -14
  114. package/dist-lib/lib/floriday-status-sync.server.d.ts.map +0 -1
  115. package/dist-lib/lib/floriday-status-sync.server.js +0 -130
@@ -1,5 +1,5 @@
1
1
  /** Verse buffergegevens na elk Engine-seintje. */
2
- export declare function useBufferEvents(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<{
2
+ export declare function useBufferEvents(enabled?: boolean): import("@tanstack/react-query").UseQueryResult<{
3
3
  events: import("./buffer-events.functions").BufferEventRow[];
4
- }>, Error>;
4
+ }, Error>;
5
5
  //# sourceMappingURL=useBufferEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBufferEvents.d.ts","sourceRoot":"","sources":["../../src/lib/useBufferEvents.ts"],"names":[],"mappings":"AAWA,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,UAAO;;WAgE7C"}
1
+ {"version":3,"file":"useBufferEvents.d.ts","sourceRoot":"","sources":["../../src/lib/useBufferEvents.ts"],"names":[],"mappings":"AAWA,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,UAAO;;UAgE7C"}
@@ -1,8 +1,8 @@
1
- export declare function useLocalSalesOrderDetailQuery(id: string | null | undefined): import("@tanstack/react-query").UseQueryResult<NoInfer<{
1
+ export declare function useLocalSalesOrderDetailQuery(id: string | null | undefined): import("@tanstack/react-query").UseQueryResult<{
2
2
  order: import("./salesorders-mapping").SalesOrderDTO | null;
3
3
  bufferId: string | null;
4
4
  bufferSiblings: import("./salesorders-mapping").SalesOrderDTO[];
5
5
  sellerFallback: string | null;
6
6
  environment: "staging" | "live";
7
- }>, Error>;
7
+ }, Error>;
8
8
  //# sourceMappingURL=useLocalSalesOrderDetailQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalSalesOrderDetailQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useLocalSalesOrderDetailQuery.ts"],"names":[],"mappings":"AAQA,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;WA2C1E"}
1
+ {"version":3,"file":"useLocalSalesOrderDetailQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useLocalSalesOrderDetailQuery.ts"],"names":[],"mappings":"AAQA,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;UA2C1E"}
@@ -1,2 +1,2 @@
1
- export declare function useSalesOrderDetailQuery(id: string | null | undefined): import("@tanstack/react-query").UseQueryResult<NoInfer<import("./salesorders.functions").SalesOrderDetailResult>, Error>;
1
+ export declare function useSalesOrderDetailQuery(id: string | null | undefined): import("@tanstack/react-query").UseQueryResult<import("./salesorders.functions").SalesOrderDetailResult, Error>;
2
2
  //# sourceMappingURL=useSalesOrderDetailQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSalesOrderDetailQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrderDetailQuery.ts"],"names":[],"mappings":"AASA,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,4HA6CrE"}
1
+ {"version":3,"file":"useSalesOrderDetailQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrderDetailQuery.ts"],"names":[],"mappings":"AASA,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,mHA6CrE"}
@@ -26,5 +26,5 @@ export declare function derivePeriodWindow(filters?: SalesOrderFilters): {
26
26
  until?: string;
27
27
  dateField: "ordered" | "delivery";
28
28
  };
29
- export declare function useSalesOrdersQuery(filters?: SalesOrderFilters, options?: SalesOrdersQueryOptions): import("@tanstack/react-query").UseQueryResult<NoInfer<SalesOrdersPage>, Error>;
29
+ export declare function useSalesOrdersQuery(filters?: SalesOrderFilters, options?: SalesOrdersQueryOptions): import("@tanstack/react-query").UseQueryResult<SalesOrdersPage, Error>;
30
30
  //# sourceMappingURL=useSalesOrdersQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSalesOrdersQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrdersQuery.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC,CAwCA;AAED,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,mFAgElC"}
1
+ {"version":3,"file":"useSalesOrdersQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrdersQuery.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC,CAwCA;AAED,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,0EAgElC"}
package/package.json CHANGED
@@ -1,131 +1,131 @@
1
- {
2
- "name": "@flowselections/floriday-verkoop-module",
3
- "version": "1.0.66",
4
- "private": false,
5
- "sideEffects": false,
6
- "type": "module",
7
- "main": "./dist-lib/index.js",
8
- "types": "./dist-lib/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "types": "./dist-lib/index.d.ts",
12
- "default": "./dist-lib/index.js"
13
- },
14
- "./cron": {
15
- "types": "./dist-lib/lib/cron/index.d.ts",
16
- "default": "./dist-lib/lib/cron/index.js"
17
- },
18
- "./styles": "./dist-lib/styles.css"
19
- },
20
- "files": [
21
- "dist-lib"
22
- ],
23
- "publishConfig": {
24
- "access": "public"
25
- },
26
- "scripts": {
27
- "dev": "vite dev",
28
- "build": "vite build",
29
- "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
30
- "build:lib:watch": "tsc -p tsconfig.build.json --watch",
31
- "build:dev": "vite build --mode development",
32
- "preview": "vite preview",
33
- "lint": "eslint ."
34
- },
35
- "peerDependencies": {
36
- "@flowselections/core": "1.0.21",
37
- "@tanstack/react-query": "^5.0.0",
38
- "@tanstack/react-router": "^1.0.0",
39
- "@tanstack/react-start": "^1.0.0",
40
- "lucide-react": "^0.500.0",
41
- "react": "^18 || ^19",
42
- "react-dom": "^18 || ^19",
43
- "sonner": "^2.0.0"
44
- },
45
- "dependencies": {
46
- "@flowselections/layout-maker": "1.13.2",
47
- "@supabase/supabase-js": "^2.110.7",
48
- "date-fns": "^4.3.0",
49
- "zod": "^4.4.3"
50
- },
51
- "devDependencies": {
52
- "@cloudflare/vite-plugin": "^1.25.5",
53
- "@eslint/js": "^9.32.0",
54
- "@flowselections/core": "1.0.21",
55
- "@lovable.dev/vite-tanstack-config": "2.23.1",
56
- "@rsbuild/core": "^1.0.0",
57
- "@tailwindcss/vite": "^4.2.1",
58
- "@tanstack/react-query": "^5.83.0",
59
- "@tanstack/react-router": "^1.168.0",
60
- "@tanstack/react-start": "^1.167.14",
61
- "@tanstack/router-plugin": "^1.167.10",
62
- "@types/node": "^22.16.5",
63
- "@types/react": "^19.2.0",
64
- "@types/react-dom": "^19.2.0",
65
- "@vitejs/plugin-react": "^5.0.4",
66
- "eslint": "^9.32.0",
67
- "eslint-plugin-react-hooks": "^5.2.0",
68
- "eslint-plugin-react-refresh": "^0.4.20",
69
- "globals": "^15.15.0",
70
- "lucide-react": "^0.575.0",
71
- "react": "^19.2.0",
72
- "react-dom": "^19.2.0",
73
- "sonner": "^2.0.7",
74
- "tailwindcss": "^4.2.1",
75
- "tw-animate-css": "^1.3.4",
76
- "typescript": "^5.8.3",
77
- "tsc-alias": "^1.8.0",
78
- "typescript-eslint": "^8.56.1",
79
- "vite": "^7.3.1",
80
- "vite-tsconfig-paths": "^6.0.2",
81
- "nitro": "3.0.260603-beta"
82
- },
83
- "flowselections": {
84
- "moduleId": "Verkoop",
85
- "pages": [
86
- {
87
- "export": "VerkoopOrdersPage",
88
- "route": "floriday-verkoop/verkooporders",
89
- "title": "Verkooporders"
90
- },
91
- {
92
- "export": "CreateOrderPage",
93
- "route": "floriday-verkoop/verkooporders/nieuw",
94
- "title": "Nieuwe bestelling",
95
- "nav": false
96
- },
97
- {
98
- "export": "SalesOrderDetailPage",
99
- "route": "floriday-verkoop/verkooporders/$salesOrderId",
100
- "title": "Orderdetails",
101
- "nav": false
102
- }
103
- ],
104
- "serverRoutes": [
105
- {
106
- "routePath": "/api/public/cron/replan-carts",
107
- "import": "@flowselections/floriday-verkoop-module/cron",
108
- "handler": "replanCartsCron",
109
- "methods": [
110
- "POST"
111
- ]
112
- },
113
- {
114
- "routePath": "/api/public/cron/sync-salesorders",
115
- "import": "@flowselections/floriday-verkoop-module/cron",
116
- "handler": "syncSalesOrdersCron",
117
- "methods": [
118
- "POST"
119
- ]
120
- },
121
- {
122
- "routePath": "/api/public/cron/invoice-due",
123
- "import": "@flowselections/floriday-verkoop-module/cron",
124
- "handler": "invoiceDueCron",
125
- "methods": [
126
- "POST"
127
- ]
128
- }
129
- ]
130
- }
131
- }
1
+ {
2
+ "name": "@flowselections/floriday-verkoop-module",
3
+ "version": "1.0.67",
4
+ "private": false,
5
+ "sideEffects": false,
6
+ "type": "module",
7
+ "main": "./dist-lib/index.js",
8
+ "types": "./dist-lib/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist-lib/index.d.ts",
12
+ "default": "./dist-lib/index.js"
13
+ },
14
+ "./cron": {
15
+ "types": "./dist-lib/lib/cron/index.d.ts",
16
+ "default": "./dist-lib/lib/cron/index.js"
17
+ },
18
+ "./styles": "./dist-lib/styles.css"
19
+ },
20
+ "files": [
21
+ "dist-lib"
22
+ ],
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "scripts": {
27
+ "dev": "vite dev",
28
+ "build": "vite build",
29
+ "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
30
+ "build:lib:watch": "tsc -p tsconfig.build.json --watch",
31
+ "build:dev": "vite build --mode development",
32
+ "preview": "vite preview",
33
+ "lint": "eslint ."
34
+ },
35
+ "peerDependencies": {
36
+ "@flowselections/core": "1.0.28",
37
+ "@tanstack/react-query": "^5.0.0",
38
+ "@tanstack/react-router": "^1.0.0",
39
+ "@tanstack/react-start": "^1.0.0",
40
+ "lucide-react": "^0.500.0",
41
+ "react": "^18 || ^19",
42
+ "react-dom": "^18 || ^19",
43
+ "sonner": "^2.0.0"
44
+ },
45
+ "dependencies": {
46
+ "@flowselections/layout-maker": "1.13.2",
47
+ "@supabase/supabase-js": "^2.110.7",
48
+ "date-fns": "^4.3.0",
49
+ "zod": "^4.4.3"
50
+ },
51
+ "devDependencies": {
52
+ "@cloudflare/vite-plugin": "^1.25.5",
53
+ "@eslint/js": "^9.32.0",
54
+ "@flowselections/core": "1.0.28",
55
+ "@lovable.dev/vite-tanstack-config": "2.23.1",
56
+ "@rsbuild/core": "^1.0.0",
57
+ "@tailwindcss/vite": "^4.2.1",
58
+ "@tanstack/react-query": "^5.83.0",
59
+ "@tanstack/react-router": "^1.168.0",
60
+ "@tanstack/react-start": "^1.167.14",
61
+ "@tanstack/router-plugin": "^1.167.10",
62
+ "@types/node": "^22.16.5",
63
+ "@types/react": "^19.2.0",
64
+ "@types/react-dom": "^19.2.0",
65
+ "@vitejs/plugin-react": "^5.0.4",
66
+ "eslint": "^9.32.0",
67
+ "eslint-plugin-react-hooks": "^5.2.0",
68
+ "eslint-plugin-react-refresh": "^0.4.20",
69
+ "globals": "^15.15.0",
70
+ "lucide-react": "^0.575.0",
71
+ "react": "^19.2.0",
72
+ "react-dom": "^19.2.0",
73
+ "sonner": "^2.0.7",
74
+ "tailwindcss": "^4.2.1",
75
+ "tw-animate-css": "^1.3.4",
76
+ "typescript": "^5.8.3",
77
+ "tsc-alias": "^1.8.0",
78
+ "typescript-eslint": "^8.56.1",
79
+ "vite": "^7.3.1",
80
+ "vite-tsconfig-paths": "^6.0.2",
81
+ "nitro": "3.0.260603-beta"
82
+ },
83
+ "flowselections": {
84
+ "moduleId": "Verkoop",
85
+ "pages": [
86
+ {
87
+ "export": "VerkoopOrdersPage",
88
+ "route": "floriday-verkoop/verkooporders",
89
+ "title": "Verkooporders"
90
+ },
91
+ {
92
+ "export": "CreateOrderPage",
93
+ "route": "floriday-verkoop/verkooporders/nieuw",
94
+ "title": "Nieuwe bestelling",
95
+ "nav": false
96
+ },
97
+ {
98
+ "export": "SalesOrderDetailPage",
99
+ "route": "floriday-verkoop/verkooporders/$salesOrderId",
100
+ "title": "Orderdetails",
101
+ "nav": false
102
+ }
103
+ ],
104
+ "serverRoutes": [
105
+ {
106
+ "routePath": "/api/public/cron/replan-carts",
107
+ "import": "@flowselections/floriday-verkoop-module/cron",
108
+ "handler": "replanCartsCron",
109
+ "methods": [
110
+ "POST"
111
+ ]
112
+ },
113
+ {
114
+ "routePath": "/api/public/cron/sync-salesorders",
115
+ "import": "@flowselections/floriday-verkoop-module/cron",
116
+ "handler": "syncSalesOrdersCron",
117
+ "methods": [
118
+ "POST"
119
+ ]
120
+ },
121
+ {
122
+ "routePath": "/api/public/cron/invoice-due",
123
+ "import": "@flowselections/floriday-verkoop-module/cron",
124
+ "handler": "invoiceDueCron",
125
+ "methods": [
126
+ "POST"
127
+ ]
128
+ }
129
+ ]
130
+ }
131
+ }
@@ -1,9 +0,0 @@
1
- interface Props {
2
- environment: "staging" | "live";
3
- resources: string[];
4
- /** Max minuten dat een sync mag achterlopen voordat de banner verschijnt. */
5
- staleAfterMinutes?: number;
6
- }
7
- export declare function FlorydaySyncHealthBanner({ environment, resources, staleAfterMinutes, }: Props): import("react/jsx-runtime").JSX.Element | null;
8
- export {};
9
- //# sourceMappingURL=FlorydaySyncHealthBanner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlorydaySyncHealthBanner.d.ts","sourceRoot":"","sources":["../../../src/components/floriday/FlorydaySyncHealthBanner.tsx"],"names":[],"mappings":"AAKA,UAAU,KAAK;IACb,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,wBAAwB,CAAC,EACvC,WAAW,EACX,SAAS,EACT,iBAAsB,GACvB,EAAE,KAAK,kDAmCP"}
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useQuery } from "@tanstack/react-query";
3
- import { useServerFn } from "@tanstack/react-start";
4
- import { AlertTriangle } from "lucide-react";
5
- import { getFlorydaySyncHealth } from "../../lib/floriday-public.functions";
6
- export function FlorydaySyncHealthBanner({ environment, resources, staleAfterMinutes = 30, }) {
7
- const fetchHealth = useServerFn(getFlorydaySyncHealth);
8
- const { data } = useQuery({
9
- queryKey: ["floriday", "sync-health", environment, resources.join(",")],
10
- queryFn: () => fetchHealth({ data: { environment, resources } }),
11
- staleTime: 60000,
12
- refetchInterval: 120000,
13
- });
14
- if (!data || !data.resources)
15
- return null;
16
- const now = Date.now();
17
- const stale = data.resources.filter((r) => {
18
- if (!r.lastSyncedAt)
19
- return true;
20
- const age = (now - new Date(r.lastSyncedAt).getTime()) / 60000;
21
- return age > staleAfterMinutes || Boolean(r.lastError);
22
- });
23
- if (stale.length === 0)
24
- return null;
25
- return (_jsxs("div", { className: "flex items-start gap-3 rounded-md border border-amber-300 bg-amber-50 px-4 py-3 text-sm text-amber-900", children: [_jsx(AlertTriangle, { className: "mt-0.5 h-4 w-4 shrink-0" }), _jsxs("div", { className: "space-y-1", children: [_jsx("div", { className: "font-medium", children: "Floriday-data is mogelijk verouderd" }), _jsx("ul", { className: "space-y-0.5 text-xs", children: stale.map((r) => (_jsxs("li", { children: [_jsx("strong", { children: r.resource }), ":", " ", r.lastSyncedAt ? `laatste sync ${new Date(r.lastSyncedAt).toLocaleString("nl-NL")}` : "nooit gesynchroniseerd", r.lastError ? ` — ${r.lastError}` : ""] }, r.resource))) })] })] }));
26
- }
@@ -1,6 +0,0 @@
1
- import { type CartType, type CrateType } from "../../lib/cart-planning-settings.functions";
2
- export declare function AfmetingenTab({ cartTypes, crateTypes, }: {
3
- cartTypes: CartType[];
4
- crateTypes: CrateType[];
5
- }): import("react/jsx-runtime").JSX.Element;
6
- //# sourceMappingURL=AfmetingenTab.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AfmetingenTab.d.ts","sourceRoot":"","sources":["../../../src/components/karindeling/AfmetingenTab.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAQL,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,wCAAwC,CAAC;AAMhD,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,UAAU,GACX,EAAE;IACD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,2CA+BA"}
@@ -1,128 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
4
- import { useServerFn } from "@tanstack/react-start";
5
- import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Label, Separator, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, toast, } from "@flowselections/core";
6
- import { Star, Trash2 } from "lucide-react";
7
- import { deleteCartType, deleteCrateType, listUsedCartCarriers, listUsedCratePackages, setDefaultCartType, upsertCartType, upsertCrateType, } from "../../lib/cart-planning-settings.functions";
8
- function areaM2(lengthCm, widthCm) {
9
- return ((lengthCm * widthCm) / 10000).toFixed(2);
10
- }
11
- export function AfmetingenTab({ cartTypes, crateTypes, }) {
12
- return (_jsxs("div", { className: "space-y-6", children: [_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Karren / containers" }), _jsxs(CardDescription, { children: ["Stel per kar-type de laag-afmetingen in. Fusten per laag =", " ", _jsx("em", { children: "laag-oppervlakte / fust-oppervlakte" }), ". \u00C9\u00E9n type is de standaard en wordt gebruikt door de planner."] })] }), _jsx(CardContent, { className: "space-y-4", children: _jsx(CartTypesEditor, { cartTypes: cartTypes }) })] }), _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Fusten" }), _jsx(CardDescription, { children: "Stel per fust-type de afmetingen in. Wordt gecombineerd met het gekozen kar-type om te bepalen hoeveel fusten er op een laag passen (ook bij menging)." })] }), _jsx(CardContent, { className: "space-y-4", children: _jsx(CrateTypesEditor, { crateTypes: crateTypes }) })] })] }));
13
- }
14
- function CartTypesEditor({ cartTypes }) {
15
- const qc = useQueryClient();
16
- const upsert = useServerFn(upsertCartType);
17
- const remove = useServerFn(deleteCartType);
18
- const setDefault = useServerFn(setDefaultCartType);
19
- const fetchCarriers = useServerFn(listUsedCartCarriers);
20
- const { data: carriers = [] } = useQuery({
21
- queryKey: ["used-cart-carriers"],
22
- queryFn: () => fetchCarriers(),
23
- });
24
- const [name, setName] = useState("");
25
- const [len, setLen] = useState(135);
26
- const [wid, setWid] = useState(56);
27
- const [layers, setLayers] = useState(4);
28
- const invalidate = () => qc.invalidateQueries({ queryKey: ["cart-planning-bundle"] });
29
- const addMut = useMutation({
30
- mutationFn: () => upsert({
31
- data: {
32
- name: name.trim(),
33
- layer_length_cm: len,
34
- layer_width_cm: wid,
35
- layers_per_cart: layers,
36
- is_default: cartTypes.length === 0,
37
- },
38
- }),
39
- onSuccess: () => {
40
- toast.success("Kar-type opgeslagen");
41
- setName("");
42
- setLen(135);
43
- setWid(56);
44
- setLayers(4);
45
- invalidate();
46
- },
47
- onError: (e) => toast.error(e?.message ?? "Fout"),
48
- });
49
- const delMut = useMutation({
50
- mutationFn: (id) => remove({ data: { id } }),
51
- onSuccess: invalidate,
52
- });
53
- const defMut = useMutation({
54
- mutationFn: (id) => setDefault({ data: { id } }),
55
- onSuccess: () => {
56
- toast.success("Standaard bijgewerkt");
57
- invalidate();
58
- },
59
- });
60
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "grid gap-3 rounded-md border p-3 lg:grid-cols-5", children: [_jsxs("div", { className: "space-y-2 lg:col-span-2", children: [_jsx(Label, { children: "Naam" }), _jsx(Input, { list: "used-cart-carriers", value: name, onChange: (e) => {
61
- const v = e.target.value;
62
- setName(v);
63
- const match = carriers.find((c) => c.label === v || c.name === v);
64
- if (match) {
65
- if (match.layer_length_cm)
66
- setLen(match.layer_length_cm);
67
- if (match.layer_width_cm)
68
- setWid(match.layer_width_cm);
69
- if (match.layers_per_cart)
70
- setLayers(match.layers_per_cart);
71
- }
72
- }, placeholder: carriers.length > 0
73
- ? "Kies uit lijst of typ zelf"
74
- : "bv. Deense container" }), _jsx("datalist", { id: "used-cart-carriers", children: carriers.map((c) => (_jsx("option", { value: c.label, children: c.usage_count > 0 ? `${c.usage_count}× gebruikt` : "niet in gebruik" }, c.key))) }), carriers.length > 0 && (_jsxs("p", { className: "text-xs text-muted-foreground", children: [carriers.length, " kar-types bekend uit Floriday; afmetingen worden automatisch ingevuld."] }))] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Lengte (cm)" }), _jsx(Input, { type: "number", min: 1, value: len, onChange: (e) => setLen(Number(e.target.value)) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Breedte (cm)" }), _jsx(Input, { type: "number", min: 1, value: wid, onChange: (e) => setWid(Number(e.target.value)) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Lagen / kar" }), _jsx(Input, { type: "number", min: 1, value: layers, onChange: (e) => setLayers(Number(e.target.value)) })] }), _jsx("div", { className: "lg:col-span-5", children: _jsx(Button, { disabled: !name.trim() || addMut.isPending, onClick: () => addMut.mutate(), children: "Toevoegen" }) })] }), _jsx(Separator, {}), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Naam" }), _jsx(TableHead, { className: "text-right", children: "Lengte" }), _jsx(TableHead, { className: "text-right", children: "Breedte" }), _jsx(TableHead, { className: "text-right", children: "Oppervlakte (m\u00B2)" }), _jsx(TableHead, { children: "Standaard" }), _jsx(TableHead, { className: "w-16" })] }) }), _jsx(TableBody, { children: cartTypes.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: 6, className: "text-sm text-muted-foreground", children: "Nog geen kar-types." }) })) : (cartTypes.map((c) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: c.name }), _jsxs(TableCell, { className: "text-right", children: [c.layer_length_cm, " cm"] }), _jsxs(TableCell, { className: "text-right", children: [c.layer_width_cm, " cm"] }), _jsx(TableCell, { className: "text-right", children: areaM2(c.layer_length_cm, c.layer_width_cm) }), _jsx(TableCell, { children: c.is_default ? (_jsx(Badge, { children: "Standaard" })) : (_jsxs(Button, { size: "sm", variant: "ghost", onClick: () => defMut.mutate(c.id), disabled: defMut.isPending, children: [_jsx(Star, { className: "mr-1 h-4 w-4" }), " Maak standaard"] })) }), _jsx(TableCell, { children: _jsx(Button, { variant: "ghost", size: "sm", onClick: () => delMut.mutate(c.id), children: _jsx(Trash2, { className: "h-4 w-4" }) }) })] }, c.id)))) })] })] }));
75
- }
76
- function CrateTypesEditor({ crateTypes }) {
77
- const qc = useQueryClient();
78
- const upsert = useServerFn(upsertCrateType);
79
- const remove = useServerFn(deleteCrateType);
80
- const fetchUsed = useServerFn(listUsedCratePackages);
81
- const { data: usedPackages = [] } = useQuery({
82
- queryKey: ["used-crate-packages"],
83
- queryFn: () => fetchUsed(),
84
- });
85
- const [name, setName] = useState("");
86
- const [len, setLen] = useState(60);
87
- const [wid, setWid] = useState(40);
88
- const [plants, setPlants] = useState(1);
89
- const invalidate = () => qc.invalidateQueries({ queryKey: ["cart-planning-bundle"] });
90
- const addMut = useMutation({
91
- mutationFn: () => upsert({
92
- data: {
93
- name: name.trim(),
94
- length_cm: len,
95
- width_cm: wid,
96
- plants_per_crate: plants,
97
- },
98
- }),
99
- onSuccess: () => {
100
- toast.success("Fust-type opgeslagen");
101
- setName("");
102
- setLen(60);
103
- setWid(40);
104
- setPlants(1);
105
- invalidate();
106
- },
107
- onError: (e) => toast.error(e?.message ?? "Fout"),
108
- });
109
- const delMut = useMutation({
110
- mutationFn: (id) => remove({ data: { id } }),
111
- onSuccess: invalidate,
112
- });
113
- return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "grid gap-3 rounded-md border p-3 lg:grid-cols-5", children: [_jsxs("div", { className: "space-y-2 lg:col-span-2", children: [_jsx(Label, { children: "Naam" }), _jsx(Input, { list: "used-crate-packages", value: name, onChange: (e) => {
114
- const v = e.target.value;
115
- setName(v);
116
- const match = usedPackages.find((p) => p.label === v);
117
- if (match) {
118
- if (match.pieces_per_package)
119
- setPlants(match.pieces_per_package);
120
- if (match.length_cm)
121
- setLen(match.length_cm);
122
- if (match.width_cm)
123
- setWid(match.width_cm);
124
- }
125
- }, placeholder: usedPackages.length > 0
126
- ? "Kies uit lijst of typ zelf"
127
- : "bv. Fust 40x60" }), _jsx("datalist", { id: "used-crate-packages", children: usedPackages.map((p) => (_jsx("option", { value: p.label, children: p.usage_count > 0 ? `${p.usage_count}× gebruikt` : "niet in gebruik" }, p.key))) }), usedPackages.length > 0 && (_jsxs("p", { className: "text-xs text-muted-foreground", children: [usedPackages.length, " fusten bekend uit VBN-lijst; afmetingen worden automatisch ingevuld."] }))] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Lengte (cm)" }), _jsx(Input, { type: "number", min: 1, value: len, onChange: (e) => setLen(Number(e.target.value)) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Breedte (cm)" }), _jsx(Input, { type: "number", min: 1, value: wid, onChange: (e) => setWid(Number(e.target.value)) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Planten / fust" }), _jsx(Input, { type: "number", min: 1, value: plants, onChange: (e) => setPlants(Number(e.target.value)) })] }), _jsx("div", { className: "lg:col-span-5", children: _jsx(Button, { disabled: !name.trim() || addMut.isPending, onClick: () => addMut.mutate(), children: "Toevoegen" }) })] }), _jsx(Separator, {}), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Naam" }), _jsx(TableHead, { className: "text-right", children: "Lengte" }), _jsx(TableHead, { className: "text-right", children: "Breedte" }), _jsx(TableHead, { className: "text-right", children: "Oppervlakte (m\u00B2)" }), _jsx(TableHead, { className: "text-right", children: "Planten / fust" }), _jsx(TableHead, { className: "w-16" })] }) }), _jsx(TableBody, { children: crateTypes.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: 6, className: "text-sm text-muted-foreground", children: "Nog geen fust-types." }) })) : (crateTypes.map((c) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: c.name }), _jsxs(TableCell, { className: "text-right", children: [c.length_cm, " cm"] }), _jsxs(TableCell, { className: "text-right", children: [c.width_cm, " cm"] }), _jsx(TableCell, { className: "text-right", children: areaM2(c.length_cm, c.width_cm) }), _jsx(TableCell, { className: "text-right", children: c.plants_per_crate }), _jsx(TableCell, { children: _jsx(Button, { variant: "ghost", size: "sm", onClick: () => delMut.mutate(c.id), children: _jsx(Trash2, { className: "h-4 w-4" }) }) })] }, c.id)))) })] })] }));
128
- }
@@ -1,2 +0,0 @@
1
- export declare function KarindelingPage(): import("react/jsx-runtime").JSX.Element;
2
- //# sourceMappingURL=KarindelingPage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KarindelingPage.d.ts","sourceRoot":"","sources":["../../../src/components/karindeling/KarindelingPage.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,eAAe,4CAuD9B"}