@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.
- package/dist-lib/assets/floriday-logo.png.asset.json +4 -4
- package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ArtikelWizard.js +633 -101
- package/dist-lib/components/voorraad/StepSamenstelling.d.ts +10 -0
- package/dist-lib/components/voorraad/StepSamenstelling.d.ts.map +1 -0
- package/dist-lib/components/voorraad/StepSamenstelling.js +333 -0
- package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadPage.js +14 -3
- package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadTable.js +6 -13
- package/dist-lib/hooks/useFloridayPriceGroups.d.ts +20 -0
- package/dist-lib/hooks/useFloridayPriceGroups.d.ts.map +1 -0
- package/dist-lib/hooks/useFloridayPriceGroups.js +55 -0
- package/dist-lib/hooks/useFloridayVbnRequired.d.ts +5 -0
- package/dist-lib/hooks/useFloridayVbnRequired.d.ts.map +1 -0
- package/dist-lib/hooks/useFloridayVbnRequired.js +16 -0
- package/dist-lib/hooks/useLocalTradeItems.d.ts.map +1 -1
- package/dist-lib/hooks/useLocalTradeItems.js +14 -0
- package/dist-lib/hooks/useTradeItemSpec.d.ts.map +1 -1
- package/dist-lib/hooks/useTradeItemSpec.js +48 -1
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +2378 -361
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +2378 -361
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +2378 -361
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +2412 -344
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.js +11 -9
- package/dist-lib/lib/centralSecrets.server.d.ts +21 -0
- package/dist-lib/lib/centralSecrets.server.d.ts.map +1 -0
- package/dist-lib/lib/centralSecrets.server.js +111 -0
- package/dist-lib/lib/floricode-required-features.functions.d.ts +2378 -361
- package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-customer-offer.functions.d.ts +2378 -361
- package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-gateway.functions.d.ts +10760 -675
- package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-gateway.server.d.ts.map +1 -1
- package/dist-lib/lib/floriday-gateway.server.js +34 -9
- package/dist-lib/lib/floriday-payload.d.ts +21 -3
- package/dist-lib/lib/floriday-payload.d.ts.map +1 -1
- package/dist-lib/lib/floriday-payload.js +167 -34
- package/dist-lib/lib/floriday-vbn-required.functions.d.ts +27769 -0
- package/dist-lib/lib/floriday-vbn-required.functions.d.ts.map +1 -0
- package/dist-lib/lib/floriday-vbn-required.functions.js +85 -0
- package/dist-lib/lib/floriday-warehouse.functions.d.ts +6542 -491
- package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.d.ts +4647 -612
- package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.js +36 -1
- package/dist-lib/lib/trade-item-prices.d.ts +43 -0
- package/dist-lib/lib/trade-item-prices.d.ts.map +1 -0
- package/dist-lib/lib/trade-item-prices.js +229 -0
- 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
|
|
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
|