@bytebrand/fe-ui-core-autobahn 1.0.60 → 1.0.61

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.
@@ -225,11 +225,13 @@ function isPluginHybrid(fuel: any): boolean {
225
225
  return fuel === 'selector_fuel_hybridElectricalDiesel' || fuel === 'selector_fuel_hybridElectricalPetrol';
226
226
  }
227
227
 
228
- /** Build the gallery URL list from real images, falling back to main image, then placeholder. */
229
- function buildGallery(storeCar: any, deps: ToAutobahnCarDeps): string[] {
228
+ /** Build the gallery URL list from real images, falling back to main image, then placeholder.
229
+ * `sizeOverride` lets a caller ask for a different size than `deps.imageSize` (e.g. a full-res
230
+ * set for a lightbox, while the card thumbnail itself stays on the smaller default). */
231
+ function buildGallery(storeCar: any, deps: ToAutobahnCarDeps, sizeOverride?: 'small' | 'medium' | 'large'): string[] {
230
232
  const placeholder = deps.placeholder || PLACEHOLDER_IMAGE;
231
233
  // Only 'small' and 'large' variants are pre-generated by image-generator; 'medium' has no cached file.
232
- const size = deps.imageSize || 'small';
234
+ const size = sizeOverride || deps.imageSize || 'small';
233
235
 
234
236
  // 1) Real loaded images from imagesStore.images.get(id).
235
237
  if (Array.isArray(deps.loadedImages) && deps.loadedImages.length) {
@@ -362,6 +364,11 @@ export function toAutobahnCar(storeCar: any, deps: ToAutobahnCarDeps = {}): Auto
362
364
 
363
365
  // --- media ---
364
366
  const gallery = buildGallery(storeCar, deps);
367
+ // Card grids ask for a smaller `imageSize` (perf) — but a lightbox opened FROM that card
368
+ // (CarCard's photo-count pill → VdpViewer) shouldn't be stuck showing the small thumbnails
369
+ // blown up full-screen. Build a real full-res set alongside, from the same already-loaded
370
+ // images (no extra fetch) — only when the requested size isn't already 'large'.
371
+ const galleryLarge = (deps.imageSize || 'small') !== 'large' ? buildGallery(storeCar, deps, 'large') : undefined;
365
372
  const photos = num(storeCar.imagesCount) ?? 0;
366
373
 
367
374
  // --- optional: leasing rate — ONLY when leasing is actually active for this car.
@@ -376,6 +383,7 @@ export function toAutobahnCar(storeCar: any, deps: ToAutobahnCarDeps = {}): Auto
376
383
  // saved adjustments). Only meaningful alongside an active lease rate.
377
384
  const leaseMileage = leasingActive ? num(price?.leasing?.annualMileage) : undefined;
378
385
  const leaseMonths = leasingActive ? num(price?.leasing?.paybackPeriod) : undefined;
386
+ const leaseFirstInstallment = leasingActive ? num(price?.leasing?.firstInstallment) : undefined;
379
387
 
380
388
  // --- optional: list price / savings — ONLY from a real strike price ---
381
389
  // transformDataForVehicles exposes oldMonthlyInstallment / highestPrice via
@@ -447,6 +455,7 @@ export function toAutobahnCar(storeCar: any, deps: ToAutobahnCarDeps = {}): Auto
447
455
 
448
456
  // media
449
457
  gallery,
458
+ ...(galleryLarge ? { galleryLarge } : {}),
450
459
  photos,
451
460
 
452
461
  // EnVKV
@@ -474,6 +483,7 @@ export function toAutobahnCar(storeCar: any, deps: ToAutobahnCarDeps = {}): Auto
474
483
  ...(lease != null ? { lease } : {}),
475
484
  ...(leaseMileage != null ? { leaseMileage } : {}),
476
485
  ...(leaseMonths != null ? { leaseMonths } : {}),
486
+ ...(leaseFirstInstallment != null ? { leaseFirstInstallment } : {}),
477
487
  ...(drop != null ? { drop } : {}),
478
488
  ...(dropPct != null ? { dropPct } : {}),
479
489
  ...(zeroDown ? { zeroDown } : {}),
@@ -11,7 +11,12 @@
11
11
  "price": {
12
12
  "financeTerms": "{{firstInstallment}} € Anzahlung · {{months}} Monate Laufzeit",
13
13
  "financeTerms_plural": "{{firstInstallment}} € Anzahlung · {{months}} Monate Laufzeit",
14
- "leaseTerms": "{{mileage}} km/Jahr · {{months}} Monate",
14
+ "leaseTerms": "{{firstInstallment}} € Sonderzahlung · {{months}} Mon. · {{mileage}} km/Jahr",
15
+ "detailsLink": "Details",
16
+ "uvpRateLabel": "UVP-Rate",
17
+ "uvpRateTooltipBody": "Rechnerische Vergleichsrate auf Basis der unverbindlichen Preisempfehlung des Herstellers und mit denselben Finanzierungsparametern wie das Angebot. Keine früher verlangte Rate. Das Rundum-Sorglos-Paket wird einmalig separat berechnet.",
18
+ "uvpRateTooltipBodyLeasing": "Die durchgestrichene UVP-Rate ist eine rechnerische Vergleichsrate auf Basis der unverbindlichen Preisempfehlung des Herstellers. Für die Berechnung werden dieselben Leasingparameter wie beim angebotenen Leasing verwendet, insbesondere Laufzeit, Sonderzahlung und Laufleistung. Die UVP-Rate ist keine früher von auto.de verlangte Rate.",
19
+ "uvpListTooltipBody": "Die Hersteller-UVP ist die unverbindliche Preisempfehlung des Herstellers für dieses Fahrzeug zum Zeitpunkt der Erstzulassung einschließlich der bei der Berechnung berücksichtigten Ausstattung. Sie ist kein früher von auto.de verlangter Verkaufspreis.",
15
20
  "purchasePrice": "Kaufpreis",
16
21
  "priceDropAmount": "−{{amount}} €",
17
22
  "priceDropSave": "{{amount}} € sparen",
@@ -88,13 +93,10 @@
88
93
  "downPaymentSliderLabel": "Anzahlung",
89
94
  "annualMileageLabel": "Laufleistung / Jahr",
90
95
  "purchasePrice": "Kaufpreis",
91
- "kmPerYear": "{{value}} km/Jahr",
92
96
  "perMonth": "/mtl.",
93
97
  "leasingDetails": "Leasing-Details",
94
98
  "financingDetails": "Finanzierungsdetails",
95
- "personalConsultation": "Persönliche Beratung",
96
- "personalConsultationSub": "Wir sind für Sie da",
97
- "financingLeasingPossible": "Finanzierung & Leasing möglich",
99
+ "personalConsultationLine": "Persönliche Beratung. Wir sind für Sie da!",
98
100
  "requestRate": "Rate anfragen",
99
101
  "callCta": "Anrufen",
100
102
  "finalInstallmentToggle": "Mit Schlussrate",
@@ -683,35 +685,46 @@
683
685
  "leasingDetails": "Leasingdetails",
684
686
  "financingDetails": "Finanzierungsdetails",
685
687
  "close": "Schließen",
686
- "vehiclePrice": "Fahrzeugpreis",
688
+ "vehiclePrice": "Fahrzeugpreis ggf. inkl. MwSt.",
687
689
  "leasingAmount": "Leasingbetrag",
688
690
  "netLoanAmount": "Nettodarlehensbetrag",
689
691
  "downPayment": "Anzahlung",
690
692
  "annualMileage": "Laufleistung / Jahr",
691
- "term": "Laufzeit",
693
+ "term": "Vertragslaufzeit",
692
694
  "months": "{{months}} Monat",
693
695
  "months_plural": "{{months}} Monate",
694
- "nominalRate": "Sollzinssatz p.a.",
695
- "effectiveRate": "eff. Jahreszins",
696
+ "nominalRate": "Sollzinssatz p. a. (gebunden)",
697
+ "effectiveRate": "Effektiver Jahreszins",
696
698
  "finalInstallment": "Schlussrate",
697
699
  "leasingRate": "Leasingrate",
698
700
  "monthlyRate": "Monatsrate",
701
+ "leasingRateCount": "{{count}} Leasingrate à",
702
+ "leasingRateCount_plural": "{{count}} Leasingraten à",
703
+ "monthlyRateCount": "{{count}} Rate à",
704
+ "monthlyRateCount_plural": "{{count}} Raten à",
705
+ "addServicesRow": "Rundum-Sorglos-Paket (einmalig)",
699
706
  "ratePerMonth": "{{amount}} € /mtl.",
700
707
  "totalAmount": "Gesamtbetrag",
701
- "totalRepayment": "Gesamtrückzahlungsbetrag",
708
+ "totalRepayment": "Gesamtbetrag Finanzierung",
709
+ "totalCostWithPackage": "Gesamtbelastung inkl. Anzahlung & Paket",
710
+ "totalCost": "Gesamtbelastung inkl. Anzahlung",
711
+ "listPrice": "Listenpreis (UVP)",
712
+ "representativeExample": "Repräsentatives Beispiel",
713
+ "vatDisclaimer": "(alle Preisangaben ggf. inkl. der jeweils gesetzlich gültigen MwSt., derzeit 19%)",
714
+ "lenderLabel": "Darlehensgeber:",
715
+ "lenderName": "Open Bank AG, Santander-Platz 1, 41061 Mönchengladbach",
716
+ "legalNoticesTitle": "Rechtliche Hinweise",
717
+ "legalNoticeCreditworthiness": "Bonität vorausgesetzt.",
718
+ "legalNoticeExample": "Repräsentatives Beispiel gem. § 17 PAngV.",
719
+ "legalNoticeTwoThirds": "Mindestens zwei Drittel der Verträge kommen zu diesem oder einem günstigeren effektiven Jahreszins zustande.",
720
+ "legalNoticeVat": "Alle Preisangaben inkl. der jeweils gesetzlich gültigen MwSt., derzeit 19 %.",
721
+ "legalNoticeAddServices": "Das Rundum-Sorglos-Paket ist eine einmalige Zahlung.",
722
+ "listPriceFootnote": "³ Listenpreis (UVP) = unverbindliche Preisempfehlung des Herstellers.",
702
723
  "legalLeasing": "Für Ihre Finanzierungswünsche stellen wir eine Bonitätsanfrage. Bonität vorausgesetzt, ist dies ein repräsentatives Berechnungsbeispiel gem. der Angaben, welches 2/3 aller Kunden, im Sinne des § 17a Abs. 4 PangV, erhalten. Dieses freibleibende Angebot der Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach wird vermittelt durch die auto.de GmbH, Max-Planck-Str. 19, 06796 Sandersdorf-Brehna, die als ungebundener Vermittler nicht beratend tätig ist. Irrtümer vorbehalten. Preise ggf. inkl. MwSt.",
703
724
  "legalFinancing": "Für Ihre Finanzierungswünsche stellen wir eine Bonitätsanfrage. Bonität vorausgesetzt, ist dies ein repräsentatives Berechnungsbeispiel gem. der Angaben, welches 2/3 aller Kunden, im Sinne des § 17a Abs. 4 PangV, erhalten. Dieses freibleibende Angebot der Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach wird vermittelt durch die auto.de GmbH, Max-Planck-Str. 19, 06796 Sandersdorf-Brehna, die als ungebundener Vermittler nicht beratend tätig ist. Irrtümer vorbehalten. Preise ggf. inkl. MwSt.",
704
725
  "sheetTitleFinancing": "Kredit-Rate anpassen",
705
726
  "sheetTitleLeasing": "Leasing-Rate anpassen",
706
- "sheetTitleCash": "Kaufen - Details",
707
- "exampleVehiclePrice": "Fahrzeugpreis",
708
- "examplePriceSuffix": "ggf. inkl. anderer Services",
709
- "exampleApr": "Effektiver Jahreszins",
710
- "exampleNominal": "Sollzinssatz p. a. (gebunden für die gesamte Vertragslaufzeit)",
711
- "exampleNet": "Nettodarlehensbetrag",
712
- "exampleDown": "Anzahlung",
713
- "exampleFinal": "Schlussrate",
714
- "exampleGross": "Gesamtrückzahlungsbetrag"
727
+ "sheetTitleCash": "Kaufen - Details"
715
728
  },
716
729
  "ratings": {
717
730
  "showLess": "Weniger anzeigen",
@@ -11,7 +11,12 @@
11
11
  "price": {
12
12
  "financeTerms": "€{{firstInstallment}} down payment · {{months}} months term",
13
13
  "financeTerms_plural": "€{{firstInstallment}} down payment · {{months}} months term",
14
- "leaseTerms": "{{mileage}} km/year · {{months}} months",
14
+ "leaseTerms": "€{{firstInstallment}} down payment · {{months}} mo. · {{mileage}} km/year",
15
+ "detailsLink": "Details",
16
+ "uvpRateLabel": "UVP rate",
17
+ "uvpRateTooltipBody": "Calculated comparison rate based on the manufacturer's non-binding price recommendation, using the same financing parameters as the offer. Not a previously requested rate. The all-inclusive package is billed separately, as a one-off.",
18
+ "uvpRateTooltipBodyLeasing": "The struck-through UVP rate is a calculated comparison rate based on the manufacturer's non-binding price recommendation. It uses the same leasing parameters as the offered lease, in particular term, down payment and annual mileage. The UVP rate is not a rate previously requested by auto.de.",
19
+ "uvpListTooltipBody": "The manufacturer's RRP is the manufacturer's non-binding price recommendation for this vehicle at the time of first registration, including the equipment factored into the calculation. It is not a sales price previously charged by auto.de.",
15
20
  "purchasePrice": "Purchase price",
16
21
  "priceDropAmount": "−{{amount}} €",
17
22
  "priceDropSave": "Save {{amount}} €",
@@ -88,13 +93,10 @@
88
93
  "downPaymentSliderLabel": "Down payment",
89
94
  "annualMileageLabel": "Mileage / year",
90
95
  "purchasePrice": "Purchase price",
91
- "kmPerYear": "{{value}} km/year",
92
96
  "perMonth": "/mo.",
93
97
  "leasingDetails": "Leasing details",
94
98
  "financingDetails": "Financing details",
95
- "personalConsultation": "Personal advice",
96
- "personalConsultationSub": "We're here for you",
97
- "financingLeasingPossible": "Financing & leasing available",
99
+ "personalConsultationLine": "Personal advice. We're here for you!",
98
100
  "requestRate": "Request rate",
99
101
  "callCta": "Call",
100
102
  "finalInstallmentToggle": "With final installment",
@@ -683,35 +685,46 @@
683
685
  "leasingDetails": "Leasing details",
684
686
  "financingDetails": "Financing details",
685
687
  "close": "Close",
686
- "vehiclePrice": "Vehicle price",
688
+ "vehiclePrice": "Vehicle price (incl. VAT, if applicable)",
687
689
  "leasingAmount": "Leasing amount",
688
690
  "netLoanAmount": "Net loan amount",
689
691
  "downPayment": "Down payment",
690
692
  "annualMileage": "Mileage / year",
691
- "term": "Term",
693
+ "term": "Contract term",
692
694
  "months": "{{months}} month",
693
695
  "months_plural": "{{months}} months",
694
- "nominalRate": "Nominal interest rate p.a.",
696
+ "nominalRate": "Nominal interest rate p.a. (fixed)",
695
697
  "effectiveRate": "Effective annual rate",
696
698
  "finalInstallment": "Final installment",
697
699
  "leasingRate": "Leasing rate",
698
700
  "monthlyRate": "Monthly rate",
701
+ "leasingRateCount": "{{count}} leasing installment of",
702
+ "leasingRateCount_plural": "{{count}} leasing installments of",
703
+ "monthlyRateCount": "{{count}} installment of",
704
+ "monthlyRateCount_plural": "{{count}} installments of",
705
+ "addServicesRow": "Complete care package (one-time)",
699
706
  "ratePerMonth": "{{amount}} € /mo.",
700
707
  "totalAmount": "Total amount",
701
- "totalRepayment": "Total repayment amount",
708
+ "totalRepayment": "Total financing amount",
709
+ "totalCostWithPackage": "Total cost incl. down payment & package",
710
+ "totalCost": "Total cost incl. down payment",
711
+ "listPrice": "List price (RRP)",
712
+ "representativeExample": "Representative example",
713
+ "vatDisclaimer": "(all prices may incl. the applicable statutory VAT, currently 19%)",
714
+ "lenderLabel": "Lender:",
715
+ "lenderName": "Open Bank AG, Santander-Platz 1, 41061 Mönchengladbach",
716
+ "legalNoticesTitle": "Legal notices",
717
+ "legalNoticeCreditworthiness": "Subject to creditworthiness.",
718
+ "legalNoticeExample": "Representative example per § 17 PAngV.",
719
+ "legalNoticeTwoThirds": "At least two thirds of contracts are concluded at this APR or a lower one.",
720
+ "legalNoticeVat": "All prices incl. the applicable statutory VAT, currently 19%.",
721
+ "legalNoticeAddServices": "The all-round care package is a one-time payment.",
722
+ "listPriceFootnote": "³ List price (RRP) = manufacturer's non-binding recommended retail price.",
702
723
  "legalLeasing": "We run a credit check for your financing request. Subject to creditworthiness, this is a representative example per § 17a (4) PangV received by 2/3 of all customers. This non-binding offer of Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach is brokered by auto.de GmbH, Max-Planck-Str. 19, 06796 Sandersdorf-Brehna, acting as an untied intermediary without advising. Errors excepted. Prices may incl. VAT.",
703
724
  "legalFinancing": "We run a credit check for your financing request. Subject to creditworthiness, this is a representative example per § 17a (4) PangV received by 2/3 of all customers. This non-binding offer of Santander Consumer Bank AG, Santander-Platz 1, 41061 Mönchengladbach is brokered by auto.de GmbH, Max-Planck-Str. 19, 06796 Sandersdorf-Brehna, acting as an untied intermediary without advising. Errors excepted. Prices may incl. VAT.",
704
725
  "sheetTitleFinancing": "Adjust credit rate",
705
726
  "sheetTitleLeasing": "Adjust leasing rate",
706
- "sheetTitleCash": "Purchase - Details",
707
- "exampleVehiclePrice": "Vehicle price",
708
- "examplePriceSuffix": "possibly incl. other services",
709
- "exampleApr": "Effective annual rate",
710
- "exampleNominal": "Nominal rate p.a. (fixed for the entire contract term)",
711
- "exampleNet": "Net loan amount",
712
- "exampleDown": "Down payment",
713
- "exampleFinal": "Final installment",
714
- "exampleGross": "Total repayment amount"
727
+ "sheetTitleCash": "Purchase - Details"
715
728
  },
716
729
  "ratings": {
717
730
  "showLess": "Show less",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytebrand/fe-ui-core-autobahn",
3
- "version": "1.0.60",
3
+ "version": "1.0.61",
4
4
  "description": "auto.de md3 (Autobahn) design system — UI primitives, cards, chrome, VDP modules, theme CSS and locales. Ships raw TypeScript source (like fe-ui-core before it); each consumer's bundler compiles it.",
5
5
  "main": "index.ts",
6
6
  "license": "UNLICENSED",