@flowselections/floriday-voorraad 1.0.23 → 1.0.26

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 (55) hide show
  1. package/dist-lib/assets/floriday-logo.png.asset.json +4 -4
  2. package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
  3. package/dist-lib/components/voorraad/ArtikelWizard.js +633 -101
  4. package/dist-lib/components/voorraad/StepSamenstelling.d.ts +10 -0
  5. package/dist-lib/components/voorraad/StepSamenstelling.d.ts.map +1 -0
  6. package/dist-lib/components/voorraad/StepSamenstelling.js +333 -0
  7. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  8. package/dist-lib/components/voorraad/VoorraadPage.js +14 -3
  9. package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
  10. package/dist-lib/components/voorraad/VoorraadTable.js +6 -13
  11. package/dist-lib/hooks/useFloridayPriceGroups.d.ts +20 -0
  12. package/dist-lib/hooks/useFloridayPriceGroups.d.ts.map +1 -0
  13. package/dist-lib/hooks/useFloridayPriceGroups.js +55 -0
  14. package/dist-lib/hooks/useFloridayVbnRequired.d.ts +5 -0
  15. package/dist-lib/hooks/useFloridayVbnRequired.d.ts.map +1 -0
  16. package/dist-lib/hooks/useFloridayVbnRequired.js +16 -0
  17. package/dist-lib/hooks/useLocalTradeItems.d.ts.map +1 -1
  18. package/dist-lib/hooks/useLocalTradeItems.js +14 -0
  19. package/dist-lib/hooks/useTradeItemSpec.d.ts.map +1 -1
  20. package/dist-lib/hooks/useTradeItemSpec.js +48 -1
  21. package/dist-lib/integrations/supabase/auth-middleware.d.ts +2378 -361
  22. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  23. package/dist-lib/integrations/supabase/client.d.ts +2378 -361
  24. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  25. package/dist-lib/integrations/supabase/client.server.d.ts +2378 -361
  26. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  27. package/dist-lib/integrations/supabase/types.d.ts +2412 -344
  28. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  29. package/dist-lib/integrations/supabase/types.js +11 -9
  30. package/dist-lib/lib/centralSecrets.server.d.ts +21 -0
  31. package/dist-lib/lib/centralSecrets.server.d.ts.map +1 -0
  32. package/dist-lib/lib/centralSecrets.server.js +111 -0
  33. package/dist-lib/lib/floricode-required-features.functions.d.ts +2378 -361
  34. package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
  35. package/dist-lib/lib/floriday-customer-offer.functions.d.ts +2378 -361
  36. package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -1
  37. package/dist-lib/lib/floriday-gateway.functions.d.ts +10760 -675
  38. package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
  39. package/dist-lib/lib/floriday-gateway.server.d.ts.map +1 -1
  40. package/dist-lib/lib/floriday-gateway.server.js +34 -9
  41. package/dist-lib/lib/floriday-payload.d.ts +21 -3
  42. package/dist-lib/lib/floriday-payload.d.ts.map +1 -1
  43. package/dist-lib/lib/floriday-payload.js +167 -34
  44. package/dist-lib/lib/floriday-vbn-required.functions.d.ts +27769 -0
  45. package/dist-lib/lib/floriday-vbn-required.functions.d.ts.map +1 -0
  46. package/dist-lib/lib/floriday-vbn-required.functions.js +85 -0
  47. package/dist-lib/lib/floriday-warehouse.functions.d.ts +6542 -491
  48. package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
  49. package/dist-lib/lib/floriday-writes.functions.d.ts +4647 -612
  50. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/floriday-writes.functions.js +36 -1
  52. package/dist-lib/lib/trade-item-prices.d.ts +43 -0
  53. package/dist-lib/lib/trade-item-prices.d.ts.map +1 -0
  54. package/dist-lib/lib/trade-item-prices.js +229 -0
  55. package/package.json +3 -3
@@ -389,6 +389,37 @@ function deriveVbnProductCharacteristics(schema, vbnCode) {
389
389
  productGroupId,
390
390
  };
391
391
  }
392
+ /**
393
+ * Alle VBN-karakteristieken uit `codeLists['vbn-characteristic']` als
394
+ * optionele pool — hetzelfde superset dat Floriday's eigen UI aanbiedt.
395
+ */
396
+ function allVbnCharacteristicsAsOptional(schema) {
397
+ const list = schema?.codeLists?.["vbn-characteristic"] ?? [];
398
+ if (!Array.isArray(list) || list.length === 0)
399
+ return [];
400
+ const map = new Map();
401
+ for (const item of list) {
402
+ if (!isRecord(item))
403
+ continue;
404
+ const payload = payloadOf(item);
405
+ const code = pickCharacteristicCode(String(item.code ?? payload.code ?? payload.vbn_code ?? ""));
406
+ if (!code || map.has(code))
407
+ continue;
408
+ const label = payload.description ??
409
+ payload.short_name ??
410
+ item.description ??
411
+ item.label ??
412
+ code;
413
+ map.set(code, {
414
+ code,
415
+ label: String(label),
416
+ required: false,
417
+ listName: code,
418
+ allowedValues: [],
419
+ });
420
+ }
421
+ return hydrateLabels(Array.from(map.values()), schema);
422
+ }
392
423
  export function useTradeItemSpec(schema, vbnCode, productGroup, regulatoryFeatures) {
393
424
  return useMemo(() => {
394
425
  const fromVbn = deriveVbnProductCharacteristics(schema, vbnCode);
@@ -410,11 +441,27 @@ export function useTradeItemSpec(schema, vbnCode, productGroup, regulatoryFeatur
410
441
  allowedValues: f.values,
411
442
  }));
412
443
  }
413
- const characteristics = fromRegulatory.length
444
+ const primary = fromRegulatory.length
414
445
  ? fromRegulatory
415
446
  : fromVbn.characteristics.length
416
447
  ? fromVbn.characteristics
417
448
  : schemaCharacteristics;
449
+ // Verbreed met alle VBN-karakteristieken als optionele pool, zodat de UI
450
+ // dezelfde superset toont als Floriday zelf (S01, S05, S50, …). Codes uit
451
+ // `primary` blijven leidend inclusief hun `required`-flag.
452
+ const optionalPool = allVbnCharacteristicsAsOptional(schema);
453
+ const merged = new Map();
454
+ for (const c of primary)
455
+ merged.set(c.code, c);
456
+ for (const c of optionalPool) {
457
+ if (!merged.has(c.code))
458
+ merged.set(c.code, c);
459
+ }
460
+ const characteristics = Array.from(merged.values()).sort((a, b) => {
461
+ if (a.required !== b.required)
462
+ return Number(b.required) - Number(a.required);
463
+ return a.code.localeCompare(b.code);
464
+ });
418
465
  const requiredCharacteristicCodes = new Set(characteristics.filter((c) => c.required).map((c) => c.code));
419
466
  const required = new Set((schema?.requiredFields ?? []).map((f) => f));
420
467
  const canDetermineCharacteristics = !vbnCode