@sbb-esta/lyne-elements-experimental 3.11.0 → 3.12.1

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 (38) hide show
  1. package/custom-elements.json +66 -11
  2. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  3. package/development/seat-reservation/common/mapper/seat-reservation-sample-data.js +19 -3
  4. package/development/seat-reservation/common/translations/i18n.d.ts +22 -13
  5. package/development/seat-reservation/common/translations/i18n.d.ts.map +1 -1
  6. package/development/seat-reservation/common/translations/i18n.js +412 -33
  7. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +8 -1
  8. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  9. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +11 -1
  10. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +3 -1
  11. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  12. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +19 -5
  13. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +2 -1
  14. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +57 -36
  15. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +2 -2
  16. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  17. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +4 -2
  18. package/package.json +2 -2
  19. package/pearl-chain/pearl-chain.component.js +1 -1
  20. package/pearl-chain-time/pearl-chain-time.component.js +1 -1
  21. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  22. package/seat-reservation/common/mapper/seat-reservation-sample-data.d.ts.map +1 -1
  23. package/seat-reservation/common/mapper/seat-reservation-sample-data.js +18 -2
  24. package/seat-reservation/common/translations/i18n.d.ts +22 -13
  25. package/seat-reservation/common/translations/i18n.d.ts.map +1 -1
  26. package/seat-reservation/common/translations/i18n.js +406 -35
  27. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +8 -1
  28. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  29. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +16 -7
  30. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts +3 -1
  31. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  32. package/seat-reservation/seat-reservation/seat-reservation.component.js +13 -10
  33. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +10 -10
  34. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +101 -101
  35. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  36. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  37. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +7 -7
  38. package/timetable-row/timetable-row.component.js +1 -1
@@ -32,7 +32,7 @@ const e = [
32
32
  },
33
33
  orientation: 0,
34
34
  placeLocations: ["BICYCLE_LOW"],
35
- placeProperties: [],
35
+ placeProperties: ["INVALID_KEY", "BICYCLE_HIGH", "ANOTHER_INVALID_KEY", "POWER"],
36
36
  state: "FREE"
37
37
  },
38
38
  {
@@ -10272,7 +10272,23 @@ const e = [
10272
10272
  },
10273
10273
  dimension: {
10274
10274
  width: 2,
10275
- height: 4,
10275
+ height: 2,
10276
+ borderRadius: null
10277
+ }
10278
+ },
10279
+ orientation: 0,
10280
+ type: "TABLE_RESTAURANT"
10281
+ },
10282
+ {
10283
+ rectangle: {
10284
+ position: {
10285
+ x: 8,
10286
+ y: 2,
10287
+ z: 0
10288
+ },
10289
+ dimension: {
10290
+ width: 6,
10291
+ height: 6,
10276
10292
  borderRadius: null
10277
10293
  }
10278
10294
  },
@@ -1,19 +1,28 @@
1
1
  /**
2
- * Translations regarding Seat-Reservation.
3
- * the first parameter is the requested key in the context of the call and the second
4
- * parameter is the language key.
5
- * There is an optional third array parameter where additional parameters to the string can be
6
- * attached.
2
+ * Returns the translation for a seat reservation string based on a key and language.
3
+ * Supports nested keys (e.g. "PLACE_PROPERTIES.AISLE_SEAT") and placeholder replacement.
7
4
  *
8
- * @Usage:
9
- * const labelStr = getI18nSeatReservation('KEY_FOR_NAVIGATION_LABEL', this._language.current); or
10
- * const labelStr = getI18nSeatReservation('KEY_FOR_NAVIGATION_LABEL', this._language.current, ['real text', 334]);*/
5
+ * @param key The translation key (can be nested, e.g. "PLACE_PROPERTIES.AISLE_SEAT").
6
+ * @param language The desired language (e.g. "de", "en", "fr", "it").
7
+ * @param args Optional array of parameters to replace placeholders like _param0_, _param1_ in the translation string.
8
+ * @returns The translated string or an empty string if no translation is found.
9
+ *
10
+ * @example
11
+ * getI18nSeatReservation('COACH_TABLE_CAPTION', 'de', ['12']); // "Wagen 12 selektiert"
12
+ * getI18nSeatReservation('PLACE_PROPERTIES.AISLE_SEAT', 'en'); // "Aisle seat"
13
+ */
11
14
  /**
12
- * get the translated message with key being the requested key and language the current
13
- * language mostly used from SbbLanguageController
14
- * @param key
15
- * @param language
16
- * @param args
15
+ * Returns the translation for a seat reservation string based on a key and language.
16
+ * Supports nested keys (e.g. "PLACE_PROPERTIES.AISLE_SEAT") and placeholder replacement.
17
+ *
18
+ * @param key The translation key (can be nested, e.g. "PLACE_PROPERTIES.AISLE_SEAT").
19
+ * @param language The desired language (e.g. "de", "en", "fr", "it").
20
+ * @param args Optional array of parameters to replace placeholders like _param0_, _param1_ in the translation string.
21
+ * @returns The translated string or an empty string if no translation is found.
22
+ *
23
+ * @example
24
+ * getI18nSeatReservation('COACH_TABLE_CAPTION', 'de', ['12']); // "Wagen 12 selektiert"
25
+ * getI18nSeatReservation('PLACE_PROPERTIES.AISLE_SEAT', 'en'); // "Aisle seat"
17
26
  */
18
27
  export declare const getI18nSeatReservation: (key: string, language: string, args?: any[]) => string;
19
28
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/common/translations/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;qHASqH;AA4erH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG,EAAE,KAAG,MAMpF,CAAC"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/common/translations/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAo2BH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG,EAAE,KAAG,MAmBpF,CAAC"}
@@ -1,4 +1,4 @@
1
- const o = {
1
+ const l = {
2
2
  // BASICS
3
3
  // COACH DECK LABEL DESCRIPTIONS
4
4
  SINGLE_DECK: {
@@ -382,36 +382,404 @@ const o = {
382
382
  fr: "Internet gratuit avec l’appli FreeSurf CFF",
383
383
  it: "Internet gratis con l’app FreeSurf FFS"
384
384
  },
385
- //ADDITIONAL INFO FOR SEATS
386
- AISLE_SEAT: {
387
- de: "Gangplatz",
388
- en: "Aisle seat",
389
- fr: "Place côté couloir",
390
- it: "Posto vicino al corridoio"
391
- },
392
- POWER: {
393
- de: "Steckdose",
394
- en: "Power socket",
395
- fr: "Prise",
396
- it: "Presa elettrica"
397
- },
398
- TABLE: {
399
- de: "Tisch",
400
- en: "Table",
401
- fr: "Table",
402
- it: "Tavolo"
403
- },
404
- TABLE_RESTAURANT: {
405
- de: "Tisch",
406
- en: "Table",
407
- fr: "Table",
408
- it: "Tavolo"
409
- },
410
- WINDOW_SEAT: {
411
- de: "Fensterplatz",
412
- en: "Window seat",
413
- fr: "Place côté fenêtre",
414
- it: "Posto al finestrino"
385
+ //ADDITIONAL INFO FOR SEATS (PLACE PROPERTIES)
386
+ // @see https://osdm.io/spec/catalog-of-code-lists/#PlaceProperty
387
+ PLACE_PROPERTIES: {
388
+ AISLE_SEAT: {
389
+ de: "Gang",
390
+ en: "aisle",
391
+ fr: "Couloir",
392
+ it: "corridoio"
393
+ },
394
+ "AIR-CONDITIONED": {
395
+ de: "Klimatisierter Bereich",
396
+ en: "air-conditioned area",
397
+ fr: "Zone climatisée",
398
+ it: "area climatizzata"
399
+ },
400
+ ANY_SEAT: {
401
+ de: "optionale Auswahl",
402
+ en: "optional selection",
403
+ fr: "sélection facultative",
404
+ it: "selezione opzionale"
405
+ },
406
+ BISTRO: { de: "Bistro", en: "bistro", fr: "Bistro", it: "bistrò" },
407
+ BICYCLE: { de: "Velo", en: "bicycle", fr: "Vélo", it: "biciclette" },
408
+ BICYCLE_LOW: {
409
+ de: "Velohaken tief",
410
+ en: "bicycle hook low",
411
+ fr: "Crochets pour vélos abaissés",
412
+ it: "gancio per biciclette abbassare"
413
+ },
414
+ BICYCLE_MIDDLE: {
415
+ de: "Velohaken mittel",
416
+ en: "bicycle hook medium",
417
+ fr: "Crochets pour vélos moyens",
418
+ it: "gancio per biciclette medio"
419
+ },
420
+ BICYCLE_HIGH: {
421
+ de: "Velohaken hoch",
422
+ en: "bicycle hook high",
423
+ fr: "Crochets pour vélos surélevés",
424
+ it: "gancio per biciclette alto"
425
+ },
426
+ BUSINESS: { de: "Business", en: "business", fr: "Business", it: "business" },
427
+ BUSINESS_COMFORT: {
428
+ de: "Business comfort",
429
+ en: "business Comfort",
430
+ fr: "Business Confort",
431
+ it: "business Comfort"
432
+ },
433
+ CABIN8: { de: "Gruppen", en: "groups", fr: "Groupes", it: "gruppi" },
434
+ CAR_LARGE: {
435
+ de: "Fahrzeug mit einer Länge zwischen 4,42m und 5,3m und einer Dachbreite zwischen 1,36m und 1,55m",
436
+ en: "Vehicle with a length between 4.42m and 5.3m and a roof width between 1.36m and 1.55m",
437
+ fr: "Véhicule d’une longueur comprise entre 4,42m et 5,3m et d’une largeur de toit comprise entre 1,36m et 1,55m",
438
+ it: "Veicoli con una lunghezza compresa tra 4,42m e 5,3m e una larghezza del tetto compresa tra 1,36m e 1,55m"
439
+ },
440
+ CAR_SMALL: {
441
+ de: "Fahrzeug mit einer Länge zwischen 4,42m und 5,3m und einerDachbreite bis 1,35m",
442
+ en: "Vehicle with a length between 4.42m and 5.3m and a roof width of up to 1.35m",
443
+ fr: "Véhicule d’une longueur comprise entre 4,42m et 5,3m et d’une largeur de toit inférieure ou égale à 1,35m",
444
+ it: "Veicolo con una lunghezza compresa tra 4,42m e 5,3m e unalarghezza del tetto fino a 1,35m"
445
+ },
446
+ CARRE: { de: "Carré", en: "Carré", fr: "Carré", it: "Carré" },
447
+ CHILDREN_AREA: {
448
+ de: "Kinderabteil",
449
+ en: "children’s compartment",
450
+ fr: "Compartiment enfants",
451
+ it: "compartimento per bambini"
452
+ },
453
+ CLUB: { de: "Club", en: "Club", fr: "Club", it: "Club" },
454
+ CLUB_2: { de: "Club Duo", en: "Club Duo", fr: "Club Duo", it: "Club Duo" },
455
+ CLUB_4: { de: "Club 4", en: "Club 4", fr: "Club 4", it: "Club 4" },
456
+ COMPARTMENT: {
457
+ de: "Seitengang",
458
+ en: "side aisle",
459
+ fr: "Couloir latéral",
460
+ it: "corridoio laterale"
461
+ },
462
+ COMPLETE: {
463
+ de: "Privatabteil",
464
+ en: "private compartment",
465
+ fr: "Compartiment privé",
466
+ it: "compartimento privato"
467
+ },
468
+ CONFERENCE: {
469
+ de: "Konferenzraum",
470
+ en: "conference room",
471
+ fr: "Compartiment conférence",
472
+ it: "compartimento Conferenza"
473
+ },
474
+ CONNECTING_DOOR: {
475
+ de: "Abteil mit Verbindungstür",
476
+ en: "compartment with connecting door",
477
+ fr: "Compartiment avec porte communicante",
478
+ it: "compartimento con porta di collegamento"
479
+ },
480
+ COUCHETTE_2: { de: "2er", en: "2 berths", fr: "2 places", it: "2 posti" },
481
+ COUCHETTE_4: { de: "4er", en: "4 berths", fr: "4 places", it: "4 posti" },
482
+ COUCHETTE_5: { de: "5er", en: "5 berths", fr: "5 places", it: "5 posti" },
483
+ COUCHETTE_6: { de: "6er", en: "6 berths", fr: "6 places", it: "6 posti" },
484
+ COUCHETTE_COMFORT_4: {
485
+ de: "4er comfort",
486
+ en: "4 berths comfort",
487
+ fr: "4 places confort",
488
+ it: "4 posti comfort"
489
+ },
490
+ COUCHETTE_COMFORT_5: {
491
+ de: "5er comfort",
492
+ en: "5 berths comfort",
493
+ fr: "5 places confort",
494
+ it: "5 posti comfort"
495
+ },
496
+ COUCHETTE_COMFORT_6: {
497
+ de: "6er",
498
+ en: "6 berths comfort",
499
+ fr: "6 places confort",
500
+ it: "6 posti comfort"
501
+ },
502
+ COUCHETTE_PRM_2: { de: "2er PRM", en: "2 berths PRM", fr: "2 places PMR", it: "2 posti PRM" },
503
+ COUCHETTE_PRM_3: { de: "3er PRM", en: "3 berths PRM", fr: "3 places PMR", it: "3 posti PRM" },
504
+ COUCHETTE_PRM_4: { de: "4er PRM", en: "4 berths PRM", fr: "4 places PMR", it: "4 posti PRM" },
505
+ DOUBLE: { de: "Double", en: "Double", fr: "Double", it: "Double" },
506
+ DOUBLE_WC: {
507
+ de: "Double mit WC",
508
+ en: "Double with WC",
509
+ fr: "Double avec WC",
510
+ it: "Double con WC"
511
+ },
512
+ DOUBLE_SWC: {
513
+ de: "Double Deluxe",
514
+ en: "Double Deluxe",
515
+ fr: "Double Deluxe",
516
+ it: "Double Deluxe"
517
+ },
518
+ DOUBLE_S: {
519
+ de: "Double mit Dusche",
520
+ en: "Double with shower",
521
+ fr: "Double avec douche",
522
+ it: "Double con Doccia"
523
+ },
524
+ EASY_ACCESS: { de: "PRM", en: "PRM", fr: "PRM", it: "PRM" },
525
+ FACE_2_FACE: {
526
+ de: "Duo vis à vis",
527
+ en: "Duo vis à vis",
528
+ fr: "Duo vis à vis",
529
+ it: "Duo vis à vis"
530
+ },
531
+ EXCELLENCE: { de: "Excellence", en: "excellence", fr: "excellence", it: "excellence" },
532
+ FAMILY: {
533
+ de: "Familienabteil",
534
+ en: "family zone",
535
+ fr: "compartement famille",
536
+ it: "compartimente familia"
537
+ },
538
+ FRONT_VIEW: { de: "VIP", en: "VIP", fr: "VIP", it: "VIP" },
539
+ HISTORIC_COACH: { de: "Historic", en: "historic", fr: "historique", it: "historic" },
540
+ INCLUDING_MEAL: {
541
+ de: "Mahlzeit inbegriffen",
542
+ en: "meal included",
543
+ fr: "repas inclus",
544
+ it: "pasto incluso"
545
+ },
546
+ INCLUDING_DRINK: {
547
+ de: "Willkommensgetränk inbegriffen",
548
+ en: "welcome drink included",
549
+ fr: "boisson de bienvenue incluse",
550
+ it: "bevanda di benvenuto incluso"
551
+ },
552
+ KIOSQUE: { de: "Kiosk", en: "kiosk", fr: "kiosque", it: "chiosco" },
553
+ LADIES: {
554
+ de: "Damenabteil",
555
+ en: "women Compartment",
556
+ fr: "compartiment femmes",
557
+ it: "compartimento donne"
558
+ },
559
+ LOWER_BED: { de: "unten", en: "at the bottom", fr: "en bas", it: "in basso" },
560
+ LOWER_DECK: { de: "unten", en: "at the bottom", fr: "en bas", it: "in basso" },
561
+ MEN: {
562
+ de: "Herrenabteil",
563
+ en: "gents compartment",
564
+ fr: "compartiment hommes",
565
+ it: "compartimento Uomini"
566
+ },
567
+ MIDDLE_BED: { de: "Mitte", en: "middle", fr: "milieu", it: "centro" },
568
+ MIDDLE_DECK: { de: "Mitte", en: "middle", fr: "milieu", it: "centro" },
569
+ MIDDLE_SEAT: { de: "Mitte", en: "middle", fr: "milieu", it: "centro" },
570
+ MINI_SUITE: {
571
+ de: "Mini Cabin",
572
+ en: "mini Cabin",
573
+ fr: "Mini Cabin",
574
+ it: "Mini Cabin"
575
+ },
576
+ MIXED: {
577
+ de: "gemischtes Abteil",
578
+ en: "mixed compartment",
579
+ fr: "compartiment mixte",
580
+ it: "compartimento misto"
581
+ },
582
+ MOTOR_CYCLE: { de: "Motorrad", en: "motorcycle", fr: "moto", it: "motocicletta" },
583
+ MOTOR_CYCLE_SC: {
584
+ de: "Motorrad mit Seitenwagen",
585
+ en: "motorcycle with sidecar",
586
+ fr: "moto avec side-car",
587
+ it: "motocicletta con sidecar"
588
+ },
589
+ NEAR_ANIMALS: {
590
+ de: "nah am Haustier",
591
+ en: "close to pet",
592
+ fr: "proche de l’animal de compagnie",
593
+ it: "vicino all’animale domestico"
594
+ },
595
+ NEAR_ASSISTANT_DOG_AREA: {
596
+ de: "nah am Assistenzhund",
597
+ en: "close to assistance dog",
598
+ fr: "près du chien d’assistance",
599
+ it: "vicino al cane da assistenza"
600
+ },
601
+ NEAR_DINING: {
602
+ de: "nah am Speisewagen",
603
+ en: "close to dining car",
604
+ fr: "à proximité de la voiture-restaurant",
605
+ it: "nelle vicinanze della carrozza ristorantev"
606
+ },
607
+ NEAR_PLAY_AREA: {
608
+ de: "nah am Spielplatz",
609
+ en: "close to playground",
610
+ fr: "à proximité de l’aire de jeux",
611
+ it: "vicino al parco giochi"
612
+ },
613
+ NEAR_BICYCLE_AREA: {
614
+ de: "nah am Veloplatz",
615
+ en: "close to bike space",
616
+ fr: "à proximité de la place pour vélo",
617
+ it: "vicino al posto bici"
618
+ },
619
+ NEAR_WHEELCHAIR: {
620
+ de: "nah am Rollstuhlplatz",
621
+ en: "close to wheelchair space",
622
+ fr: "à proximité de l’emplacement pour fauteuils roulants",
623
+ it: "vicino al posto per sedie a rotelle"
624
+ },
625
+ OPEN_SPACE: {
626
+ de: "Mittelgang",
627
+ en: "middle aisle",
628
+ fr: "couloir central",
629
+ it: "corridoio centrale"
630
+ },
631
+ PANORAMA: {
632
+ de: "Panoramawagen",
633
+ en: "panorama coach",
634
+ fr: "voiture panoramique",
635
+ it: "carrozza panoramica"
636
+ },
637
+ PHONE: { de: "Mobile", en: "mobile", fr: "mobile", it: "mobile" },
638
+ POWER: {
639
+ de: "Mit Steckdose",
640
+ en: "with power socket",
641
+ fr: "avec prise",
642
+ it: "con presa elettrica"
643
+ },
644
+ PRAM: {
645
+ de: "Kinderwagen",
646
+ en: "close to space for strollers",
647
+ fr: "poussettes",
648
+ it: "passeggino"
649
+ },
650
+ PRAM_WITH_SEAT: {
651
+ de: "nah am Platz für Kinderwagen",
652
+ en: "Seat with space for a pram",
653
+ fr: "près de l’espace pour les poussettes",
654
+ it: "vicino al posto per passeggini"
655
+ },
656
+ PREMIUM: { de: "Premium", en: "premium", fr: "premium", it: "premium" },
657
+ RESTAURANT: { de: "Restaurant", en: "restaurant", fr: "restaurant", it: "ristorante" },
658
+ RESTRICTED_VIEW: {
659
+ de: "Fenster mit eingeschränkter Sicht",
660
+ en: "windows with restricted visibility",
661
+ fr: "fenêtres avec visibilité réduite",
662
+ it: "finestre con visibilità limitata"
663
+ },
664
+ SALON: { de: "Salon", en: "Salon", fr: "salon", it: "Salon" },
665
+ SILENCE: {
666
+ de: "Ruheabteil",
667
+ en: "quiet compartment",
668
+ fr: "compartiment silence",
669
+ it: "compartimento del silenzio"
670
+ },
671
+ SINGLE: { de: "Single", en: "Single", fr: "Single", it: "Single" },
672
+ SINGLE_WC: {
673
+ de: "Single mit WC",
674
+ en: "Single with WC",
675
+ fr: "Single avec WC",
676
+ it: "Single con WC"
677
+ },
678
+ SINGLE_SWC: {
679
+ de: "Single Deluxe",
680
+ en: "Single Deluxe",
681
+ fr: "Single Deluxe",
682
+ it: "Single Deluxe"
683
+ },
684
+ SIDE_BY_SIDE: {
685
+ de: "Duo côte à côte",
686
+ en: "Duo côte à côte",
687
+ fr: "Duo côte à côte",
688
+ it: "Duo côte à côte"
689
+ },
690
+ SLEEPERETTE: { de: "Sleeperette", en: "Sleeperette", fr: "Sleeperette", it: "Sleeperette" },
691
+ SOLO: {
692
+ de: "freier Nebensitz",
693
+ en: "free side seat",
694
+ fr: "siège voisin libre",
695
+ it: "sedile secondario libero"
696
+ },
697
+ SOLO_COM: {
698
+ de: "freier Nebensitz",
699
+ en: "free side seat",
700
+ fr: "siège voisin libre",
701
+ it: "sedile secondario libero"
702
+ },
703
+ SLEEPER: {
704
+ de: "Single (klein)",
705
+ en: "Single (small)",
706
+ fr: "Single (petit)",
707
+ it: "Single (piccolo)"
708
+ },
709
+ TANDEM: { de: "Tandem", en: "tandem", fr: "tandem", it: "tandem" },
710
+ TABLE: { de: "Tisch", en: "table", fr: "table", it: "tavolo" },
711
+ TOURIST_SLEEPER_2: { de: "Duo", en: "Duo", fr: "Duo", it: "Duo" },
712
+ TOURIST_SLEEPER_3: { de: "3er", en: "Triple", fr: "Triple", it: "Triple" },
713
+ TOURIST_SLEEPER_3_WC: {
714
+ de: "3er mit WC",
715
+ en: "Triple with WC",
716
+ fr: "3 places avec WC",
717
+ it: "3 posti con WC"
718
+ },
719
+ TOURIST_SLEEPER_3_SWC: {
720
+ de: "3er Deluxe",
721
+ en: "Triple Deluxe",
722
+ fr: "3 places Deluxe",
723
+ it: "3 posti Deluxe"
724
+ },
725
+ TOURIST_SLEEPER_4: { de: "4er", en: "4-berth", fr: "4 places", it: "4 posti" },
726
+ UPPER_BED: { de: "oben", en: "at the top", fr: "en haut", it: "in alto" },
727
+ UPPER_DECK: { de: "oben", en: "at the top", fr: "en haut", it: "in alto" },
728
+ VIDEO: {
729
+ de: "mit Unterhaltungssytem",
730
+ en: "with entertainment system",
731
+ fr: "avec système de divertissement",
732
+ it: "con sistema di intrattenimento"
733
+ },
734
+ WHEELCHAIR: {
735
+ de: "Rollstuhl",
736
+ en: "wheelchair",
737
+ fr: "fauteuil roulant",
738
+ it: "sedia a rotelle"
739
+ },
740
+ WHEELCHAIR_AND_SEAT: {
741
+ de: "Rollstuhl mit zusätzlichem Sitzplatz",
742
+ en: "wheelchair with additional seat",
743
+ fr: "fauteuil roulant avec place assise supplémentaire",
744
+ it: "sedia a rotelle con posto a sedere aggiuntivo"
745
+ },
746
+ WHEELCHAIR_NO_SEAT: {
747
+ de: "Rollstuhl ohne zusätzlichen Sitzplatz",
748
+ en: "Wheelchair space without additional seat",
749
+ fr: "fauteuil roulant avec place assise supplémentaire",
750
+ it: "sedia a rotelle con posto a sedere aggiuntivo"
751
+ },
752
+ WIFI: { de: "Wlan", en: "Wi-Fi", fr: "Wi-Fi", it: "Wlan" },
753
+ WINDOW_SEAT: {
754
+ de: "Fenster",
755
+ en: "window",
756
+ fr: "fenêtre",
757
+ it: "finestre"
758
+ },
759
+ WITHOUT_TRAY_TABLE: {
760
+ de: "ohne Tisch",
761
+ en: "without table",
762
+ fr: "sans table",
763
+ it: "senza tavolo"
764
+ },
765
+ WITH_ANIMALS: {
766
+ de: "Tiere erlaubt",
767
+ en: "animals allowed",
768
+ fr: "animaux admis",
769
+ it: "animali ammessi"
770
+ },
771
+ WITH_SMALL_CHILDREN: {
772
+ de: "Kleinkindabteil",
773
+ en: "infant compartment",
774
+ fr: "compartiment petit enfants",
775
+ it: "compartimento per bambini piccoli"
776
+ },
777
+ WITHOUT_ANIMALS: {
778
+ de: "Tiere nicht erlaubt",
779
+ en: "pets not allowed",
780
+ fr: "animaux non autorisés",
781
+ it: "animali non ammessi"
782
+ }
415
783
  },
416
784
  //PLACE CONTROL ARIA LABEL
417
785
  PLACE_CONTROL_SEAT_FREE: {
@@ -481,10 +849,13 @@ const o = {
481
849
  fr: "Test avec paramètres: _param0_ et _param1_",
482
850
  it: "Test con parametri: _param0_ e _param1_"
483
851
  }
484
- }, l = (i, r, e) => {
485
- const a = o[i]?.[r] || "";
486
- return e ? e.reduce((t, n, s) => t.replace(`_param${s}_`, n), a) : a;
852
+ }, c = (r, n, a) => {
853
+ let e = l, i = "";
854
+ for (const t of r.split("."))
855
+ if (e = e?.[t], !e)
856
+ break;
857
+ return typeof e == "object" && e !== null && !Array.isArray(e) ? i = e[n] || "" : typeof e == "string" && (i = e), a ? a.reduce((t, o, s) => t.replace(`_param${s}_`, o), i) : i;
487
858
  };
488
859
  export {
489
- l as getI18nSeatReservation
860
+ c as getI18nSeatReservation
490
861
  };
@@ -1,5 +1,5 @@
1
1
  import { LitElement, PropertyValues } from 'lit';
2
- import { CoachNumberOfFreePlaces, ElementDimension, ElementPosition, Place, PlaceSelection, SeatReservation, SeatReservationSelectedPlaces, NavigationCoachItem } from '../common.js';
2
+ import { CoachNumberOfFreePlaces, ElementDimension, ElementPosition, Place, PlaceSelection, SeatReservation, SeatReservationSelectedPlaces, NavigationCoachItem, BaseElement } from '../common.js';
3
3
  declare enum ScrollDirection {
4
4
  right = "right",
5
5
  left = "left"
@@ -106,6 +106,13 @@ export declare class SeatReservationBaseElement extends LitElement {
106
106
  protected unfocusPlaceElement(): void;
107
107
  protected getCalculatedDimension(elementDimension: ElementDimension, coachDimension?: ElementDimension, isOriginHeight?: boolean, isStretchHeight?: boolean): ElementDimension;
108
108
  protected getCalculatedPosition(elementPosition: ElementPosition, elementDimension?: ElementDimension, coachDimension?: ElementDimension, isOriginHeight?: boolean): ElementPosition;
109
+ /**
110
+ * detects if a (graphical) element is on the border with its position (upper or lower border).
111
+ * @param baseElement
112
+ * @param coachDimension
113
+ * @protected
114
+ */
115
+ protected isElementDirectlyOnBorder(baseElement: BaseElement, coachDimension: ElementDimension): boolean;
109
116
  /**
110
117
  * Counts all available seats together depending on the seat type
111
118
  *
@@ -1 +1 @@
1
- {"version":3,"file":"seat-reservation-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-base-element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seat-reservation-base-element.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/seat-reservation/seat-reservation/seat-reservation-base-element.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ var ve = (n) => {
2
2
  throw TypeError(n);
3
3
  };
4
4
  var fe = (n, d, u) => d.has(n) || ve("Cannot " + u);
5
- var g = (n, d, u) => (fe(n, d, "read from private field"), u ? u.call(n) : d.get(n)), v = (n, d, u) => d.has(n) ? ve("Cannot add the same private member more than once") : d instanceof WeakSet ? d.add(n) : d.set(n, u), r = (n, d, u, T) => (fe(n, d, "write to private field"), T ? T.call(n, u) : d.set(n, u), u);
5
+ var g = (n, d, u) => (fe(n, d, "read from private field"), u ? u.call(n) : d.get(n)), v = (n, d, u) => d.has(n) ? ve("Cannot add the same private member more than once") : d instanceof WeakSet ? d.add(n) : d.set(n, u), r = (n, d, u, D) => (fe(n, d, "write to private field"), D ? D.call(n, u) : d.set(n, u), u);
6
6
  import { __runInitializers as l, __esDecorate as f } from "tslib";
7
7
  import { isArrowKeyOrPageKeysPressed as Ce } from "@sbb-esta/lyne-elements/core/a11y.js";
8
8
  import { forceType as C } from "@sbb-esta/lyne-elements/core/decorators.js";
9
9
  import { LitElement as pe, isServer as xe } from "lit";
10
- import { property as S, state as w, eventOptions as Ie } from "lit/decorators.js";
10
+ import { property as S, state as T, eventOptions as Ie } from "lit/decorators.js";
11
11
  import { mapIconToSvg as Se, mapPlaceInfosToPlaceSelection as me, mapPlaceAndCoachToSeatReservationPlaceSelection as _e, mapCoachInfosToCoachSelection as be } from "../common/mapper.js";
12
12
  var p;
13
13
  (function(n) {
@@ -24,7 +24,7 @@ const ye = 3, Pe = [
24
24
  ];
25
25
  let Be = (() => {
26
26
  var x, I, m, _, b, y, P, A, R, E, N, k, h;
27
- let n = pe, d = [], u, T = [], D = [], B, z = [], F = [], V, O = [], G = [], L, W = [], X = [], H, K = [], U = [], q, M = [], $ = [], j, Y = [], J = [], Q, Z = [], ee = [], te, se = [], ie = [], ae, ce = [], oe = [], re, le = [], ne = [], he, de = [], ue = [], ge;
27
+ let n = pe, d = [], u, D = [], w = [], B, z = [], F = [], V, O = [], G = [], L, W = [], X = [], H, K = [], U = [], q, M = [], $ = [], j, Y = [], J = [], Q, Z = [], ee = [], te, se = [], ie = [], ae, ce = [], oe = [], re, le = [], ne = [], he, de = [], ue = [], ge;
28
28
  return h = class extends n {
29
29
  constructor() {
30
30
  super(...arguments);
@@ -40,7 +40,7 @@ let Be = (() => {
40
40
  v(this, E);
41
41
  v(this, N);
42
42
  v(this, k);
43
- r(this, x, (l(this, d), l(this, T, null))), r(this, I, (l(this, D), l(this, z, !0))), r(this, m, (l(this, F), l(this, O, !1))), r(this, _, (l(this, G), l(this, W, 16))), r(this, b, (l(this, X), l(this, K, null))), r(this, y, (l(this, U), l(this, M, -1))), r(this, P, (l(this, $), l(this, Y, -1))), r(this, A, (l(this, J), l(this, Z, !1))), r(this, R, (l(this, ee), l(this, se, -1))), r(this, E, (l(this, ie), l(this, ce, -1))), r(this, N, (l(this, oe), l(this, le, -1))), r(this, k, (l(this, ne), l(this, de, -1))), this.coachBorderPadding = (l(this, ue), 6), this.gapBetweenCoaches = 4, this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.gapBetweenCoachDecks = 48, this.coachNavButtonDim = 0, this.coachNavData = [], this.currScrollDirection = p.right, this.maxCalcCoachsWidth = 0, this.scrollCoachsAreaWidth = 0, this.scrollNavigationAreaDim = 0, this.triggerCoachPositionsCollection = [], this.firstTabElement = null, this.lastTabElement = null, this.navigationScrollArea = null, this.coachScrollArea = null, this.currSelectedPlace = null, this.currSelectedPlaceElementId = null, this.currSelectedCoachIndex = -1, this.currSelectedDeckIndex = 0, this.preventCoachScrollByPlaceClick = !1, this.selectedSeatReservationPlaces = {
43
+ r(this, x, (l(this, d), l(this, D, null))), r(this, I, (l(this, w), l(this, z, !0))), r(this, m, (l(this, F), l(this, O, !1))), r(this, _, (l(this, G), l(this, W, 16))), r(this, b, (l(this, X), l(this, K, null))), r(this, y, (l(this, U), l(this, M, -1))), r(this, P, (l(this, $), l(this, Y, -1))), r(this, A, (l(this, J), l(this, Z, !1))), r(this, R, (l(this, ee), l(this, se, -1))), r(this, E, (l(this, ie), l(this, ce, -1))), r(this, N, (l(this, oe), l(this, le, -1))), r(this, k, (l(this, ne), l(this, de, -1))), this.coachBorderPadding = (l(this, ue), 6), this.gapBetweenCoaches = 4, this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.gapBetweenCoachDecks = 48, this.coachNavButtonDim = 0, this.coachNavData = [], this.currScrollDirection = p.right, this.maxCalcCoachsWidth = 0, this.scrollCoachsAreaWidth = 0, this.scrollNavigationAreaDim = 0, this.triggerCoachPositionsCollection = [], this.firstTabElement = null, this.lastTabElement = null, this.navigationScrollArea = null, this.coachScrollArea = null, this.currSelectedPlace = null, this.currSelectedPlaceElementId = null, this.currSelectedCoachIndex = -1, this.currSelectedDeckIndex = 0, this.preventCoachScrollByPlaceClick = !1, this.selectedSeatReservationPlaces = {
44
44
  seats: [],
45
45
  bicycles: []
46
46
  }, this.seatReservationWithoutNavigationHasFocus = !1, this.isCoachGridFocusable = !1, this.isAutoScrolling = !1, this.isKeyboardNavigation = !1, this.hasMultipleDecks = !1, this.keyboardNavigationEvents = {
@@ -144,7 +144,7 @@ let Be = (() => {
144
144
  r(this, k, e);
145
145
  }
146
146
  willUpdate(e) {
147
- if (super.willUpdate(e), e.has("seatReservations") && (this.hasMultipleDecks = this.seatReservations?.length > 1, this._initPrepareSeatReservationData(), this._initSeatReservationPlaceSelection()), e.has("baseGridSize") && (this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.style?.setProperty("--sbb-seat-reservation-grid-size", `${this.baseGridSize}px`), this.initNavigationSelectionByScrollEvent()), e.has("height") && this.height) {
147
+ if (super.willUpdate(e), e.has("seatReservations") && (this.hasMultipleDecks = this.seatReservations?.length > 1, this._initPrepareSeatReservationData(), this._initSeatReservationPlaceSelection(), this.initNavigationSelectionByScrollEvent()), e.has("baseGridSize") && (this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.style?.setProperty("--sbb-seat-reservation-grid-size", `${this.baseGridSize}px`), this.initNavigationSelectionByScrollEvent()), e.has("height") && this.height) {
148
148
  const t = this.seatReservations[this.currSelectedDeckIndex] || null;
149
149
  t?.coachItems.length && (this.baseGridSize = this.height / t.coachItems[0].dimension.h, this.coachBorderOffset = this.coachBorderPadding / this.baseGridSize, this.style?.setProperty("--sbb-seat-reservation-grid-size", `${this.baseGridSize}px`), this.initNavigationSelectionByScrollEvent());
150
150
  }
@@ -299,6 +299,15 @@ let Be = (() => {
299
299
  z: e.z
300
300
  };
301
301
  }
302
+ /**
303
+ * detects if a (graphical) element is on the border with its position (upper or lower border).
304
+ * @param baseElement
305
+ * @param coachDimension
306
+ * @protected
307
+ */
308
+ isElementDirectlyOnBorder(e, t) {
309
+ return e.position.y === 0 || e.position.y + e.dimension.h === t.h;
310
+ }
302
311
  /**
303
312
  * Counts all available seats together depending on the seat type
304
313
  *
@@ -607,9 +616,9 @@ let Be = (() => {
607
616
  }
608
617
  }, x = new WeakMap(), I = new WeakMap(), m = new WeakMap(), _ = new WeakMap(), b = new WeakMap(), y = new WeakMap(), P = new WeakMap(), A = new WeakMap(), R = new WeakMap(), E = new WeakMap(), N = new WeakMap(), k = new WeakMap(), (() => {
609
618
  const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(n[Symbol.metadata] ?? null) : void 0;
610
- u = [S({ attribute: "seat-reservations", type: Array })], B = [C(), S({ attribute: "has-navigation", type: Boolean })], V = [C(), S({ attribute: "align-vertical", type: Boolean, reflect: !0, useDefault: !0 })], L = [C(), S({ attribute: "base-grid-size", type: Number })], H = [C(), S({ attribute: "height", type: Number })], q = [C(), S({ attribute: "max-seat-reservations", type: Number })], j = [C(), S({ attribute: "max-bicycle-reservations", type: Number })], Q = [C(), S({ attribute: "prevent-place-click", type: Boolean })], te = [C(), S({ attribute: "preselect-coach-index", type: Number })], ae = [w()], re = [w()], he = [w()], ge = [Ie({ passive: !0 })], f(h, null, u, { kind: "accessor", name: "seatReservations", static: !1, private: !1, access: { has: (t) => "seatReservations" in t, get: (t) => t.seatReservations, set: (t, s) => {
619
+ u = [S({ attribute: "seat-reservations", type: Array })], B = [C(), S({ attribute: "has-navigation", type: Boolean })], V = [C(), S({ attribute: "align-vertical", type: Boolean, reflect: !0, useDefault: !0 })], L = [C(), S({ attribute: "base-grid-size", type: Number })], H = [C(), S({ attribute: "height", type: Number })], q = [C(), S({ attribute: "max-seat-reservations", type: Number })], j = [C(), S({ attribute: "max-bicycle-reservations", type: Number })], Q = [C(), S({ attribute: "prevent-place-click", type: Boolean })], te = [C(), S({ attribute: "preselect-coach-index", type: Number })], ae = [T()], re = [T()], he = [T()], ge = [Ie({ passive: !0 })], f(h, null, u, { kind: "accessor", name: "seatReservations", static: !1, private: !1, access: { has: (t) => "seatReservations" in t, get: (t) => t.seatReservations, set: (t, s) => {
611
620
  t.seatReservations = s;
612
- } }, metadata: e }, T, D), f(h, null, B, { kind: "accessor", name: "hasNavigation", static: !1, private: !1, access: { has: (t) => "hasNavigation" in t, get: (t) => t.hasNavigation, set: (t, s) => {
621
+ } }, metadata: e }, D, w), f(h, null, B, { kind: "accessor", name: "hasNavigation", static: !1, private: !1, access: { has: (t) => "hasNavigation" in t, get: (t) => t.hasNavigation, set: (t, s) => {
613
622
  t.hasNavigation = s;
614
623
  } }, metadata: e }, z, F), f(h, null, V, { kind: "accessor", name: "alignVertical", static: !1, private: !1, access: { has: (t) => "alignVertical" in t, get: (t) => t.alignVertical, set: (t, s) => {
615
624
  t.alignVertical = s;