@sbb-esta/lyne-elements-experimental 4.0.1 → 4.0.2

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 (22) hide show
  1. package/custom-elements.json +198 -50
  2. package/development/pearl-chain/pearl-chain.component.js +1 -3
  3. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +11 -5
  4. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  5. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +116 -56
  6. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  7. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +145 -259
  8. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -1
  9. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +11 -8
  10. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  11. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +153 -45
  12. package/package.json +2 -2
  13. package/pearl-chain/pearl-chain.component.js +1 -1
  14. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +11 -5
  15. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  16. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +201 -175
  17. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  18. package/seat-reservation/seat-reservation/seat-reservation.component.js +188 -194
  19. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -1
  20. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +31 -28
  21. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  22. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +143 -142
@@ -1,12 +1,12 @@
1
- import { __esDecorate as $, __runInitializers as y } from "tslib";
1
+ import { __esDecorate as k, __runInitializers as y } from "tslib";
2
2
  import { SbbLanguageController as A } from "@sbb-esta/lyne-elements/core/controllers.js";
3
3
  import { boxSizingStyles as R } from "@sbb-esta/lyne-elements/core/styles.js";
4
- import { css as S, html as n, nothing as u } from "lit";
4
+ import { css as S, html as n, nothing as _ } from "lit";
5
5
  import { customElement as E } from "lit/decorators.js";
6
- import { classMap as x } from "lit/directives/class-map.js";
6
+ import { classMap as C } from "lit/directives/class-map.js";
7
7
  import { styleMap as v } from "lit/directives/style-map.js";
8
- import { getI18nSeatReservation as l } from "../common.js";
9
- import { SeatReservationBaseElement as T } from "./seat-reservation-base-element.js";
8
+ import { getI18nSeatReservation as c } from "../common.js";
9
+ import { SeatReservationBaseElement as N } from "./seat-reservation-base-element.js";
10
10
  import "@sbb-esta/lyne-elements/button.js";
11
11
  import "@sbb-esta/lyne-elements/screen-reader-only.js";
12
12
  import "@sbb-esta/lyne-elements/popover.js";
@@ -15,11 +15,11 @@ import "../seat-reservation-graphic.js";
15
15
  import "../seat-reservation-place-control.js";
16
16
  import "../seat-reservation-navigation-coach.js";
17
17
  import "../seat-reservation-scoped.js";
18
- const N = S`:host{--sbb-seat-reservation-grid-size: 16px;--sbb-seat-reservation-height: 0;--sbb-seat-reservation-decks: 1;display:block;height:inherit}:host ::part(coach-floor){fill:var(--sbb-background-color-2)}@media(forced-colors:active){:host ::part(coach-floor){fill:transparent}}:host(:dir(rtl)) :not(.sbb-sr-place-ctrl--type-bicycle,.sbb-sr-place-ctrl--orientation-90,.sbb-sr-place-ctrl--orientation-270,.sbb-sr-place-ctrl--state-selected) ::part(coach-floor){rotate:180deg}[popover]:where(sbb-popover){margin:0;padding:0;border:none;width:auto;height:auto;background-color:transparent;color:inherit;pointer-events:none}.sbb-sr__container{display:flex;height:inherit}.sbb-sr__grid{display:grid;grid-template-columns:20% 1fr 20%;grid-template-rows:auto auto}.sbb-sr__grid .sbb-sr-navigation-first-grid,.sbb-sr__grid .sbb-sr-navigation-last-grid{grid-row-start:1;position:relative;margin-block-start:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__grid .sbb-sr-navigation-first-grid{grid-column:1/2}.sbb-sr__grid .sbb-sr-navigation-last-grid{grid-column:3/4}.sbb-sr__grid .sbb-sr__component{display:flex;grid-column:1/4;grid-row:1/3}.sbb-sr__grid .sbb-sr-grid-inner{display:grid;grid-template-columns:20% 60% 20%;grid-template-rows:auto 1fr;gap:0}.sbb-sr__grid .sbb-sr-grid-inner .nav-grid{grid-column:2/3;grid-row:1/2;display:inherit}.sbb-sr__grid .sbb-sr-grid-inner .coaches-grid{grid-column:1/4;grid-row:2/3;display:inherit}.sbb-sr__navigation-control-button{position:absolute;z-index:10}.sbb-sr__navigation-control-button#first-tab-element{inset-inline-end:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__navigation-control-button#last-tab-element{inset-inline-start:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation-wrapper{overflow:hidden;padding-block:0 calc(32 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-sr-navigation::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr-navigation::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr-navigation::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-sr-navigation::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-sr-navigation::-webkit-scrollbar-button,.sbb-sr-navigation::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-sr-navigation{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-sr-navigation{padding-block-start:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation{--sbb-scrollbar-color: transparent;display:flex;overflow:scroll hidden;position:relative}.sbb-sr-navigation__list-coaches{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;flex-wrap:nowrap;gap:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));padding:calc(2 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__wrapper-coach-decks{display:flex;overflow:hidden;height:inherit}.sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels{display:flex;justify-content:space-between;height:calc(var(--sbb-seat-reservation-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));writing-mode:vertical-lr}.sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels b{height:calc(50% - 16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));width:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-block-end:16px;rotate:180deg;text-align:center;line-height:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__wrapper{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-sr__wrapper::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr__wrapper::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr__wrapper::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-sr__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-sr__wrapper::-webkit-scrollbar-button,.sbb-sr__wrapper::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-sr__wrapper{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-sr__wrapper{overflow-x:scroll;padding-block:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__wrapper .sbb-sr__parent{display:flex;flex-direction:column;position:relative}.sbb-sr__list-decks{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;flex-direction:column}.sbb-sr__list-decks--gap{gap:calc(48 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__list-item-deck{position:relative}.sbb-sr__list-coaches{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;gap:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__item-coach{position:relative}.sbb-sr-popover{margin:0}.sbb-sr-coach-wrapper__table{outline:0}:host([align-vertical]) .sbb-sr{grid-template-columns:calc((var(--sbb-seat-reservation-height) + 24) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) 1fr;grid-template-rows:20% 60% 20%}:host([align-vertical]) .sbb-sr .sbb-sr-navigation-first-grid,:host([align-vertical]) .sbb-sr .sbb-sr-navigation-last-grid{margin-inline-start:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-block-start:0}:host([align-vertical]) .sbb-sr .sbb-sr-navigation-first-grid{grid-column:2/3;grid-row-start:1}:host([align-vertical]) .sbb-sr .sbb-sr-navigation-first-grid #first-tab-element{position:absolute;inset-block-end:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-end:initial;rotate:90deg}:host([align-vertical]) .sbb-sr .sbb-sr-navigation-last-grid{grid-column:2/3;grid-row:3/4}:host([align-vertical]) .sbb-sr .sbb-sr-navigation-last-grid #last-tab-element{inset-block-start:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));rotate:90deg}:host([align-vertical]) .sbb-sr .sbb-sr-navigation-wrapper{padding-block-end:initial;padding-inline-start:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([align-vertical]) .sbb-sr .sbb-sr__component{grid-column:1/3;grid-row:1/4}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner{grid-template-columns:calc((var(--sbb-seat-reservation-height) + 24) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) 1fr;grid-template-rows:20% 60% 20%}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .nav-grid{grid-column:2/3;grid-row:2/3;height:100%}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .nav-grid .sbb-sr-navigation{display:block;overflow:hidden scroll;height:100%;padding-block-start:0;padding-inline-start:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .nav-grid .sbb-sr-navigation .sbb-sr-navigation__list-coaches{flex-direction:column;padding:calc(2 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid{grid-column:1/2;grid-row:1/4;overflow:hidden;position:relative}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks{flex-direction:column}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels{flex-direction:column-reverse;width:calc(100% - 24 * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:initial}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels b{width:calc(50% - 16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-bottom:16px;rotate:initial;writing-mode:initial}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper::-webkit-scrollbar-button,:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper{overflow:hidden scroll;height:100%;padding:0}:host([align-vertical]) .sbb-sr .sbb-sr-grid-inner .coaches-grid .sbb-sr__wrapper-coach-decks .sbb-sr__parent{rotate:90deg;transform-origin:calc((var(--sbb-seat-reservation-height) + 24 - 24 - 6 * (var(--sbb-seat-reservation-decks) - 1)) / 2 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) calc((var(--sbb-seat-reservation-height) + 24 - 24 - 6 * (var(--sbb-seat-reservation-decks) - 1)) / 2 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}`;
18
+ const T = S`:host{--sbb-seat-reservation-grid-size: 16px;--sbb-seat-reservation-height: 0;--sbb-seat-reservation-decks: 1;display:block;height:inherit}:host ::part(coach-floor){fill:var(--sbb-background-color-2)}@media(forced-colors:active){:host ::part(coach-floor){fill:transparent}}:host(:dir(rtl)) :not(.sbb-sr-place-ctrl--type-bicycle,.sbb-sr-place-ctrl--orientation-90,.sbb-sr-place-ctrl--orientation-270,.sbb-sr-place-ctrl--state-selected) ::part(coach-floor){rotate:180deg}[popover]:where(sbb-popover){margin:0;padding:0;border:none;width:auto;height:auto;background-color:transparent;color:inherit;pointer-events:none}[popover]:where(sbb-popover) .sbb-sr-popover{margin-block:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host([align-vertical]) .sbb-sr__component{flex-direction:row-reverse;justify-content:flex-end;gap:calc(22 * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:inherit}@media(min-width:37.5rem){:host([align-vertical]) .sbb-sr__component{gap:calc(54 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation,:host([align-vertical]) .sbb-sr__component ul.sbb-sr-navigation__list-coaches{flex-direction:column}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation{padding:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) 0}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation .sbb-sr__navigation-control-button{left:calc(1 * var(--sbb-seat-reservation-one-px-rem, .0625rem));top:0;rotate:90deg}@media(min-width:64rem){:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation .sbb-sr__navigation-control-button{left:calc(-1 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}}:host([align-vertical]) .sbb-sr__component nav.sbb-sr-navigation ul.sbb-sr-navigation__list-coaches{max-width:initial;padding:calc(5 * var(--sbb-seat-reservation-one-px-rem, .0625rem));overflow:hidden scroll}:host([align-vertical]) .sbb-sr__wrapper-coach-decks{flex-direction:column}:host([align-vertical]) .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels{flex-direction:column-reverse;width:calc((var(--sbb-seat-reservation-height) + 24) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:initial}:host([align-vertical]) .sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels b{inline-size:calc(50% - 16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));block-size:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-bottom:calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));rotate:initial;writing-mode:initial}:host([align-vertical]) .sbb-sr__wrapper-scrollarea{width:calc((var(--sbb-seat-reservation-height) + 24) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:100%;overflow:hidden scroll}:host([align-vertical]) .sbb-sr__wrapper-scrollarea .sbb-sr__parent{flex-direction:row;rotate:90deg}.sbb-sr-navigation{gap:calc(3 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr-navigation .sbb-sr__navigation-control-button{position:relative;top:calc(2 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}@media(min-width:64rem){.sbb-sr-navigation .sbb-sr__navigation-control-button{top:0}}.sbb-sr__component{display:flex;flex-direction:column;gap:calc(64 * var(--sbb-seat-reservation-one-px-rem, .0625rem) - 16px)}.sbb-sr-navigation-wrapper{display:flex}.sbb-sr-navigation{display:flex;justify-content:center;width:100%;padding-inline:16px}.sbb-sr-navigation__list-coaches{list-style:none;margin:0;padding:0;font-size:inherit;--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-sr-navigation__list-coaches::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr-navigation__list-coaches::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr-navigation__list-coaches::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-sr-navigation__list-coaches::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-sr-navigation__list-coaches::-webkit-scrollbar-button,.sbb-sr-navigation__list-coaches::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-sr-navigation__list-coaches{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-sr-navigation__list-coaches{display:flex;flex-wrap:nowrap;gap:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem));padding:calc(6 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) calc(5 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) 0;max-width:856px;--sbb-scrollbar-color: transparent;overflow:scroll hidden;position:relative}.sbb-sr__wrapper-coach-decks{display:flex;overflow:hidden;height:inherit}.sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels{display:flex;justify-content:space-between;height:calc(var(--sbb-seat-reservation-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));writing-mode:vertical-lr}.sbb-sr__wrapper-coach-decks .sbb-sr__wrapper-deck-labels b{height:calc(50% - 16 * var(--sbb-seat-reservation-one-px-rem, .0625rem));width:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem));margin-block-end:16px;rotate:180deg;text-align:center;line-height:calc(20 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__wrapper-scrollarea{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-sr__wrapper-scrollarea::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr__wrapper-scrollarea::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-sr__wrapper-scrollarea::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-sr__wrapper-scrollarea::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-sr__wrapper-scrollarea::-webkit-scrollbar-button,.sbb-sr__wrapper-scrollarea::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-sr__wrapper-scrollarea{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-sr__wrapper-scrollarea{overflow:scroll hidden;padding-block:calc(8 * var(--sbb-seat-reservation-one-px-rem, .0625rem)) calc(16 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__wrapper-scrollarea .sbb-sr__parent{display:flex;flex-direction:column;position:relative}.sbb-sr__list-decks{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;flex-direction:column}.sbb-sr__list-decks--gap{gap:calc(48 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__list-item-deck{position:relative}.sbb-sr__list-coaches{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;gap:calc(4 * var(--sbb-seat-reservation-one-px-rem, .0625rem))}.sbb-sr__item-coach{position:relative}.sbb-sr-coach-wrapper__table{outline:0}`;
19
19
  let X = (() => {
20
- var h;
21
- let C = [E("sbb-seat-reservation")], w, f = [], d, k = T;
22
- return h = class extends k {
20
+ var d;
21
+ let $ = [E("sbb-seat-reservation")], f, w = [], h, x = N;
22
+ return d = class extends x {
23
23
  constructor() {
24
24
  super(...arguments), this._language = new A(this), this._notAreaElements = [
25
25
  "DRIVER_AREA",
@@ -31,11 +31,11 @@ let X = (() => {
31
31
  "COMPARTMENT_PASSAGE_LOW"
32
32
  ], this._notFixedRotatableAreaIcons = ["ENTRY_EXIT"];
33
33
  }
34
- willUpdate(r) {
35
- super.willUpdate(r), r.has("hasNavigation") && (this.hasNavigation ? this.shadowRoot?.querySelectorAll("table").forEach((e) => e.removeAttribute("tabindex")) : this.shadowRoot?.querySelectorAll("table").forEach((e) => e.setAttribute("tabindex", "0")));
34
+ willUpdate(e) {
35
+ super.willUpdate(e), e.has("hasNavigation") && (this.hasNavigation ? this.shadowRoot?.querySelectorAll("table").forEach((r) => r.removeAttribute("tabindex")) : this.shadowRoot?.querySelectorAll("table").forEach((r) => r.setAttribute("tabindex", "0")));
36
36
  }
37
- firstUpdated(r) {
38
- super.firstUpdated(r), this.updateComplete.then(() => {
37
+ firstUpdated(e) {
38
+ super.firstUpdated(e), this.updateComplete.then(() => {
39
39
  this.initNavigationSelectionByScrollEvent();
40
40
  });
41
41
  }
@@ -44,103 +44,96 @@ let X = (() => {
44
44
  }
45
45
  _initVehicleSeatReservationConstruction() {
46
46
  this._coachesHtmlTemplate = n`
47
- <div class="sbb-sr__container">
48
- <div class="sbb-sr sbb-sr__grid">
49
- <div class="sbb-sr-navigation-first-grid">
50
- ${this._renderNavigationControlButton("DIRECTION_LEFT")}
51
- </div>
47
+ <div class="sbb-sr__component">
48
+ ${this._renderNavigation()}
49
+ <div
50
+ class="sbb-sr__wrapper-coach-decks"
51
+ @keydown=${(e) => this.keyboardSeatmapEventHadling(e)}
52
+ >
53
+ <div class="sbb-sr__wrapper-deck-labels">${this._renderDeckLabels()}</div>
52
54
  <div
53
- class="sbb-sr__component"
54
- @keydown=${(r) => this.handleKeyboardEvent(r)}
55
+ @scroll=${() => this.coachAreaScrollend()}
56
+ id="sbb-sr__wrapper-scrollarea"
57
+ class="sbb-sr__wrapper-scrollarea"
58
+ tabindex="-1"
55
59
  >
56
- <div class="sbb-sr-grid-inner">
57
- <div class="nav-grid">${this._renderNavigation()}</div>
58
- <div class="coaches-grid">
59
- <div class="sbb-sr__wrapper-coach-decks">
60
- <div class="sbb-sr__wrapper-deck-labels">${this._renderDeckLabels()}</div>
61
- <div
62
- id="sbb-sr__wrapper-scrollarea"
63
- class="sbb-sr__wrapper"
64
- @scroll=${() => this.coachAreaScrollend()}
65
- >
66
- <div id="sbb-sr__parent-area" class="sbb-sr__parent" tabindex="-1">
67
- <ul
68
- class="${x({
60
+ <div id="sbb-sr__parent-area" class="sbb-sr__parent">
61
+ <ul
62
+ class="${C({
69
63
  "sbb-sr__list-decks": !0,
70
64
  "sbb-sr__list-decks--gap": this.hasMultipleDecks
71
65
  })}"
72
- >
73
- ${this.seatReservations?.map((r, e) => n`<li class="sbb-sr__list-item-deck">
74
- <ul class="sbb-sr__list-coaches" role="presentation">
75
- ${this._renderCoaches(r, e)}
76
- </ul>
77
- </li>`)}
66
+ >
67
+ ${this.seatReservations?.map((e, r) => n`<li class="sbb-sr__list-item-deck">
68
+ <ul class="sbb-sr__list-coaches" role="presentation">
69
+ ${this._renderCoaches(e, r)}
78
70
  </ul>
79
- </div>
80
- </div>
81
- </div>
82
- </div>
71
+ </li>`)}
72
+ </ul>
83
73
  </div>
84
74
  </div>
85
- <div class="sbb-sr-navigation-last-grid">
86
- ${this._renderNavigationControlButton("DIRECTION_RIGHT")}
87
- </div>
88
75
  </div>
89
76
  </div>
90
77
  `;
91
78
  }
92
79
  _renderDeckLabels() {
93
- return this.hasMultipleDecks ? this.seatReservations.map((r) => {
94
- const e = l(r.deckCoachLevel, this._language.current);
95
- return n`<b aria-hidden="true">${e}</b>`;
80
+ return this.hasMultipleDecks ? this.seatReservations.map((e) => {
81
+ const r = c(e.deckCoachLevel, this._language.current);
82
+ return n`<b aria-hidden="true">${r}</b>`;
96
83
  }) : null;
97
84
  }
98
- _renderNavigationControlButton(r) {
85
+ _renderNavigationControlButton(e) {
99
86
  if (!this.hasNavigation || !this.seatReservations)
100
87
  return null;
101
- const e = r == "DIRECTION_RIGHT" ? "last-tab-element" : "first-tab-element", t = r == "DIRECTION_RIGHT" ? "chevron-small-right-small" : "chevron-small-left-small", a = r == "DIRECTION_RIGHT" ? l("SEAT_RESERVATION_END", this._language.current) : l("SEAT_RESERVATION_BEGIN", this._language.current);
102
- let s = !0;
103
- return (r == "DIRECTION_LEFT" && this.selectedCoachIndex > 0 || r == "DIRECTION_RIGHT" && this.selectedCoachIndex < this.seatReservations[this.currSelectedDeckIndex].coachItems.length - 1) && (s = !1), n`<sbb-secondary-button
104
- @click="${() => this.navigateByDirectionBtn(r)}"
105
- id="${e}"
106
- class="sbb-sr__navigation-control-button"
107
- size="s"
108
- icon-name="${t}"
109
- type="button"
110
- aria-label="${a}"
111
- role="contentinfo"
112
- .disabledInteractive="${s || u}"
113
- ></sbb-secondary-button>`;
88
+ const r = e == "DIRECTION_RIGHT" ? "sbb-sr-navigation__wrapper-button-direction--right" : "sbb-sr-navigation__wrapper-button-direction--left", s = e == "DIRECTION_RIGHT" ? "chevron-small-right-small" : "chevron-small-left-small", a = e == "DIRECTION_RIGHT" ? c("SEAT_RESERVATION_END", this._language.current) : c("SEAT_RESERVATION_BEGIN", this._language.current);
89
+ let t = !0;
90
+ return (e == "DIRECTION_LEFT" && this.selectedCoachIndex > 0 || e == "DIRECTION_RIGHT" && this.selectedCoachIndex < this.coachNavData.length - 1) && (t = !1), n`<div class="sbb-sr-navigation__wrapper-button-direction">
91
+ <sbb-secondary-button
92
+ @click="${() => this.navigateByDirectionBtn(e)}"
93
+ @focus="${() => this.onFocusNavDirectionButton()}"
94
+ id="${r}"
95
+ class="sbb-sr__navigation-control-button"
96
+ size="m"
97
+ icon-name="${s}"
98
+ type="button"
99
+ aria-label="${a}"
100
+ role="button"
101
+ .disabledInteractive="${t || _}"
102
+ ></sbb-secondary-button>
103
+ </div>`;
114
104
  }
115
105
  _renderNavigation() {
116
106
  return !this.hasNavigation || !this.seatReservations ? null : n`<div class="sbb-sr-navigation-wrapper">
117
107
  <nav id="sbb-sr-navigation" class="sbb-sr-navigation">
108
+ ${this._renderNavigationControlButton("DIRECTION_LEFT")}
118
109
  <ul
119
110
  id="sbb-sr__navigation-list-coaches"
120
111
  class="sbb-sr-navigation__list-coaches"
121
- aria-label="${l("SEAT_RESERVATION_NAVIGATION", this._language.current)}"
112
+ aria-label="${c("SEAT_RESERVATION_NAVIGATION", this._language.current)}"
122
113
  >
123
- ${this.coachNavData.map((r, e) => n`<li>
114
+ ${this.coachNavData.map((e, r) => n`<li>
124
115
  <sbb-seat-reservation-navigation-coach
125
- @selectcoach=${(t) => this._onSelectNavCoach(t)}
116
+ @selectcoach=${(s) => this._onSelectNavCoach(s)}
126
117
  @focuscoach=${() => this._onFocusNavCoach()}
127
- index="${e}"
128
- coach-id="${r.id}"
129
- .freePlacesByType="${r.freePlaces}"
130
- .selected=${this.selectedCoachIndex === e}
131
- .focused=${this.focusedCoachIndex === e}
132
- .hovered=${this.hoveredScrollCoachIndex === e}
118
+ @keyup=${(s) => this.onKeyNavigationNavCoachButton(s, r)}
119
+ index="${r}"
120
+ coach-id="${e.id}"
121
+ .freePlacesByType="${e.freePlaces}"
122
+ .selected=${this.selectedCoachIndex === r}
123
+ .focused=${this.focusedCoachIndex === r}
124
+ .hovered=${this.hoveredCoachIndex === r}
133
125
  .nativeFocusActive=${this.hasSeatReservationNativeFocus}
134
- .propertyIds="${r.propertyIds}"
135
- .travelClass="${r.travelClass}"
136
- ?driver-area="${r.isDriverArea}"
137
- ?first="${r?.driverAreaSide?.left}"
138
- ?last="${r?.driverAreaSide?.right}"
126
+ .propertyIds="${e.propertyIds}"
127
+ .travelClass="${e.travelClass}"
128
+ ?driver-area="${e.isDriverArea}"
129
+ ?first="${e?.driverAreaSide?.left}"
130
+ ?last="${e?.driverAreaSide?.right}"
139
131
  ?vertical="${this.alignVertical}"
140
132
  >
141
133
  </sbb-seat-reservation-navigation-coach>
142
134
  </li>`)}
143
135
  </ul>
136
+ ${this._renderNavigationControlButton("DIRECTION_RIGHT")}
144
137
  </nav>
145
138
  </div>`;
146
139
  }
@@ -150,36 +143,37 @@ let X = (() => {
150
143
  * @param seatReservation
151
144
  * @param coachDeckIndex
152
145
  */
153
- _renderCoaches(r, e) {
154
- const t = JSON.parse(JSON.stringify(r?.coachItems));
155
- return t ? t.map((a, s) => n`
146
+ _renderCoaches(e, r) {
147
+ const s = JSON.parse(JSON.stringify(e?.coachItems));
148
+ return s ? s.map((a, t) => n`
156
149
  <li class="sbb-sr__item-coach">
157
- ${this._renderCoachElement(a, s, e, r.deckCoachIndex)}
150
+ ${this._renderCoachElement(a, t, r, e.deckCoachIndex)}
158
151
  </li>
159
152
  `) : null;
160
153
  }
161
- _renderCoachElement(r, e, t, a) {
162
- const s = this.getCalculatedDimension(r.dimension), i = this._getDescriptionTableCoach(r);
154
+ _renderCoachElement(e, r, s, a) {
155
+ const t = this.getCalculatedDimension(e.dimension), o = this._getDescriptionTableCoach(e);
163
156
  return n`<sbb-seat-reservation-scoped
164
157
  style=${v({
165
- "--sbb-seat-reservation-scoped-width": s.w,
166
- "--sbb-seat-reservation-scoped-height": s.h
158
+ "--sbb-seat-reservation-scoped-width": t.w,
159
+ "--sbb-seat-reservation-scoped-height": t.h
167
160
  })}
168
161
  >
169
- ${this._getRenderedCoachBorders(r)}
170
- ${this._getRenderedGraphicalElements(r.graphicElements || [], r.dimension, e, t)}
171
- ${this._getRenderedServiceElements(e, t, r.serviceElements)}
162
+ ${this._getRenderedCoachBorders(e)}
163
+ ${this._getRenderedGraphicalElements(e.graphicElements || [], e.dimension, r, s)}
164
+ ${this._getRenderedServiceElements(r, s, e.serviceElements)}
172
165
 
173
166
  <table
174
- @focus=${() => this.onFocusTableCoachAndPreselectPlace(e)}
175
- id="sbb-sr-coach-${e}"
167
+ @focus=${() => this.onFocusTableCoachAndPreselectPlace(r)}
168
+ id="sbb-sr-coach-${r}"
176
169
  class="sbb-sr-coach-wrapper__table"
177
- aria-describedby="sbb-sr-coach-caption-${e}"
170
+ aria-describedby="sbb-sr-coach-caption-${r}"
171
+ tabindex="-1"
178
172
  >
179
- <caption id="sbb-sr-coach-caption-${e}" tabindex="-1">
180
- <sbb-screen-reader-only>${i}</sbb-screen-reader-only>
173
+ <caption id="sbb-sr-coach-caption-${r}" tabindex="-1">
174
+ <sbb-screen-reader-only>${o}</sbb-screen-reader-only>
181
175
  </caption>
182
- ${this._getRenderedRowPlaces(r, e, t, a)}
176
+ ${this._getRenderedRowPlaces(e, r, s, a)}
183
177
  </table>
184
178
  </sbb-seat-reservation-scoped>`;
185
179
  }
@@ -187,17 +181,17 @@ let X = (() => {
187
181
  * @returns Returns the border graphic (COACH_BORDER_MIDDLE) of a coach with calculated border gap and coach width,
188
182
  * depending on whether the coach is with a driver area or without.
189
183
  */
190
- _getRenderedCoachBorders(r) {
191
- if (!r.graphicElements)
184
+ _getRenderedCoachBorders(e) {
185
+ if (!e.graphicElements)
192
186
  return null;
193
- const e = 1, a = r.graphicElements?.find((b) => b.icon === "DRIVER_AREA"), s = a ? r.dimension.w - a.dimension.w - e : r.dimension.w - e * 2, i = (r.dimension.h + this.coachBorderOffset * 2) * this.baseGridSize, o = a && a.position.x === 0 ? a?.dimension.w * this.baseGridSize : this.baseGridSize;
187
+ const r = 1, a = e.graphicElements?.find((l) => l.icon === "DRIVER_AREA"), t = a ? e.dimension.w - a.dimension.w - r : e.dimension.w - r * 2, o = (e.dimension.h + this.coachBorderOffset * 2) * this.baseGridSize, i = a && a.position.x === 0 ? a?.dimension.w * this.baseGridSize : this.baseGridSize;
194
188
  return n`
195
189
  <sbb-seat-reservation-graphic
196
190
  style=${v({
197
- "--sbb-seat-reservation-graphic-width": s * this.baseGridSize,
198
- "--sbb-seat-reservation-graphic-height": i,
191
+ "--sbb-seat-reservation-graphic-width": t * this.baseGridSize,
192
+ "--sbb-seat-reservation-graphic-height": o,
199
193
  "--sbb-seat-reservation-graphic-top": this.coachBorderPadding * -1,
200
- "--sbb-seat-reservation-graphic-left": o,
194
+ "--sbb-seat-reservation-graphic-left": i,
201
195
  "--sbb-seat-reservation-graphic-position": "absolute"
202
196
  })}
203
197
  name="COACH_BORDER_MIDDLE"
@@ -206,57 +200,57 @@ let X = (() => {
206
200
  ></sbb-seat-reservation-graphic>
207
201
  `;
208
202
  }
209
- _getRenderedRowPlaces(r, e, t, a) {
210
- if (!r.places)
203
+ _getRenderedRowPlaces(e, r, s, a) {
204
+ if (!e.places)
211
205
  return null;
212
- const s = {};
213
- for (const i of r.places)
214
- s[i.position.y] ? s[i.position.y].push(i) : s[i.position.y] = [i];
215
- return Object.values(s).map((i, o) => n`
216
- <tr id="row-${e}-${i[0].position.y}" data-row-index=${o}>
217
- ${this._getRenderedColumnPlaces(i, e, t, a)}
206
+ const t = {};
207
+ for (const o of e.places)
208
+ t[o.position.y] ? t[o.position.y].push(o) : t[o.position.y] = [o];
209
+ return Object.values(t).map((o, i) => n`
210
+ <tr id="row-${r}-${o[0].position.y}" data-row-index=${i}>
211
+ ${this._getRenderedColumnPlaces(o, r, s, a)}
218
212
  </tr>
219
- `).flatMap((i) => i);
213
+ `).flatMap((o) => o);
220
214
  }
221
- _getRenderedColumnPlaces(r, e, t, a) {
222
- return r.sort((s, i) => Number(s.position.x) - Number(i.position.x)), r?.map((s, i) => {
223
- const o = this.getCalculatedDimension(s.dimension), b = this.getCalculatedPosition(s.position), p = s.rotation || 0, c = this.alignVertical ? -90 : 0, g = this.getPlaceElementId(t, e, s.number);
215
+ _getRenderedColumnPlaces(e, r, s, a) {
216
+ return e.sort((t, o) => Number(t.position.x) - Number(o.position.x)), e?.map((t, o) => {
217
+ const i = this.getCalculatedDimension(t.dimension), l = this.getCalculatedPosition(t.position), p = t.rotation || 0, b = this.alignVertical ? -90 : 0, u = this.getPlaceElementId(s, r, t.number);
224
218
  return n`
225
219
  <td
226
- id="cell-${t}-${e}-${s.position.y}-${i}"
220
+ id="cell-${s}-${r}-${t.position.y}-${o}"
227
221
  class="graphical-element"
228
222
  >
229
223
  <sbb-seat-reservation-place-control
230
224
  style=${v({
231
- "--sbb-seat-reservation-place-control-text-scale-value": Math.min(o.w, o.h),
232
- "--sbb-seat-reservation-place-control-width": o.w,
233
- "--sbb-seat-reservation-place-control-height": o.h,
234
- "--sbb-seat-reservation-place-control-top": b.y,
235
- "--sbb-seat-reservation-place-control-left": b.x,
225
+ "--sbb-seat-reservation-place-control-text-scale-value": Math.min(i.w, i.h),
226
+ "--sbb-seat-reservation-place-control-width": i.w,
227
+ "--sbb-seat-reservation-place-control-height": i.h,
228
+ "--sbb-seat-reservation-place-control-top": l.y,
229
+ "--sbb-seat-reservation-place-control-left": l.x,
236
230
  "--sbb-seat-reservation-place-control-rotation": p,
237
- "--sbb-seat-reservation-place-control-text-rotation": c
231
+ "--sbb-seat-reservation-place-control-text-rotation": b
238
232
  })}
239
- @selectplace=${(_) => this._onSelectPlace(_)}
233
+ @selectplace=${(g) => this._onSelectPlace(g)}
240
234
  exportparts="sbb-sr-place-part"
241
- id=${g}
235
+ id=${u}
242
236
  class="seat-reservation-place-control"
243
- text=${s.number}
244
- type=${s.type}
245
- state=${s.state}
246
- coach-index=${e}
237
+ text=${t.number}
238
+ type=${t.type}
239
+ state=${t.state}
240
+ coach-index=${r}
247
241
  deck-index=${a}
248
- data-deck-index=${t}
249
- .propertyIds=${s.propertyIds}
242
+ data-deck-index=${s}
243
+ .propertyIds=${t.propertyIds}
250
244
  .preventClick=${this.preventPlaceClick}
251
245
  ></sbb-seat-reservation-place-control>
252
246
  </td>
253
247
  `;
254
248
  });
255
249
  }
256
- _getRenderedGraphicalElements(r, e, t, a) {
257
- return r ? r?.map((s) => {
258
- const i = s.icon ?? "", o = s.rotation || 0, b = this._notFixedRotatableAreaIcons.indexOf(s.icon) === -1, p = this.alignVertical && b ? o - 90 : o;
259
- return this._notAreaElements.findIndex((c) => c === i) > -1 ? this._getRenderElementWithoutArea(s, o, e) : this._getRenderElementWithArea(s, p, e, t, a);
250
+ _getRenderedGraphicalElements(e, r, s, a) {
251
+ return e ? e?.map((t) => {
252
+ const o = t.icon ?? "", i = t.rotation || 0, l = this._notFixedRotatableAreaIcons.indexOf(t.icon) === -1, p = this.alignVertical && l ? i - 90 : i;
253
+ return this._notAreaElements.findIndex((b) => b === o) > -1 ? this._getRenderElementWithoutArea(t, i, r) : this._getRenderElementWithArea(t, p, r, s, a);
260
254
  }) : null;
261
255
  }
262
256
  /**
@@ -268,76 +262,76 @@ let X = (() => {
268
262
  * @param coachDeckIndex used to generate a unique id
269
263
  * @private
270
264
  */
271
- _getRenderElementWithArea(r, e, t, a, s) {
272
- const i = r.icon?.indexOf("TABLE") === -1, o = r.icon && i ? r.icon : null, b = this.isElementDirectlyOnBorder(r, t) && o !== "ENTRY_EXIT", p = r.icon ? l(r.icon, this._language.current) : u, c = this.getCalculatedDimension(r.dimension, t, !0, b), g = this.getCalculatedPosition(r.position, r.dimension, t, !0), _ = `popover-trigger-${s}-${a}-${g.x}-${g.y}`;
265
+ _getRenderElementWithArea(e, r, s, a, t) {
266
+ const o = e.icon?.indexOf("TABLE") === -1, i = e.icon && o ? e.icon : null, l = this.isElementDirectlyOnBorder(e, s) && i !== "ENTRY_EXIT", p = e.icon ? c(e.icon, this._language.current) : _, b = this.getCalculatedDimension(e.dimension, s, !0, l), u = this.getCalculatedPosition(e.position, e.dimension, s, !0), g = `popover-trigger-${t}-${a}-${u.x}-${u.y}`;
273
267
  let m = "free";
274
- return r.position.y === this.coachBorderOffset * -1 ? m = "upper-border" : r.position.y + r.dimension.h === t.h + this.coachBorderOffset && (m = "lower-border"), n`
268
+ return e.position.y === this.coachBorderOffset * -1 ? m = "upper-border" : e.position.y + e.dimension.h === s.h + this.coachBorderOffset && (m = "lower-border"), n`
275
269
  <sbb-seat-reservation-area
276
- id="${_}"
277
- class="${x({ "sbb-seat-reservation-area--cursor-pointer": o !== null })}"
270
+ id="${g}"
271
+ class="${C({ "sbb-seat-reservation-area--cursor-pointer": i !== null })}"
278
272
  style=${v({
279
- "--sbb-seat-reservation-area-width": c.w,
280
- "--sbb-seat-reservation-area-height": c.h,
281
- "--sbb-seat-reservation-area-top": g.y,
282
- "--sbb-seat-reservation-area-left": g.x
273
+ "--sbb-seat-reservation-area-width": b.w,
274
+ "--sbb-seat-reservation-area-height": b.h,
275
+ "--sbb-seat-reservation-area-top": u.y,
276
+ "--sbb-seat-reservation-area-left": u.x
283
277
  })}
284
278
  mounting=${m}
285
279
  background="dark"
286
280
  aria-hidden="true"
287
281
  >
288
- ${o ? n`
282
+ ${i ? n`
289
283
  <sbb-seat-reservation-graphic
290
284
  style=${v({
291
- "--sbb-seat-reservation-graphic-max-width": c.w,
285
+ "--sbb-seat-reservation-graphic-max-width": b.w,
292
286
  "--sbb-seat-reservation-graphic-height": this.baseGridSize,
293
- "--sbb-seat-reservation-graphic-rotation": e
287
+ "--sbb-seat-reservation-graphic-rotation": r
294
288
  })}
295
- name=${o}
289
+ name=${i}
296
290
  role="img"
297
291
  aria-hidden="true"
298
292
  class="auto-width"
299
293
  ></sbb-seat-reservation-graphic>
300
- ` : u}
294
+ ` : _}
301
295
  </sbb-seat-reservation-area>
302
- ${o ? this._popover(_, p) : u}
296
+ ${i ? this._popover(g, p) : _}
303
297
  `;
304
298
  }
305
- _getRenderElementWithoutArea(r, e, t) {
306
- const a = this.getCalculatedDimension(r.dimension, t), s = this.getCalculatedPosition(r.position, r.dimension, t), i = r.icon && r.icon.indexOf("DRIVER_AREA") === -1 ? r.icon : r.icon?.concat("_", this.seatReservations[this.currSelectedDeckIndex].vehicleType);
299
+ _getRenderElementWithoutArea(e, r, s) {
300
+ const a = this.getCalculatedDimension(e.dimension, s), t = this.getCalculatedPosition(e.position, e.dimension, s), o = e.icon && e.icon.indexOf("DRIVER_AREA") === -1 ? e.icon : e.icon?.concat("_", this.seatReservations[this.currSelectedDeckIndex].vehicleType);
307
301
  return n` <sbb-seat-reservation-graphic
308
302
  style=${v({
309
303
  "--sbb-seat-reservation-graphic-width": a.w,
310
304
  "--sbb-seat-reservation-graphic-height": a.h,
311
- "--sbb-seat-reservation-graphic-top": s.y,
312
- "--sbb-seat-reservation-graphic-left": s.x,
305
+ "--sbb-seat-reservation-graphic-top": t.y,
306
+ "--sbb-seat-reservation-graphic-left": t.x,
313
307
  "--sbb-seat-reservation-graphic-position": "absolute",
314
- "--sbb-seat-reservation-graphic-rotation": e
308
+ "--sbb-seat-reservation-graphic-rotation": r
315
309
  })}
316
- name=${i ?? u}
310
+ name=${o ?? _}
317
311
  aria-hidden="true"
318
312
  ?stretch=${!0}
319
313
  ></sbb-seat-reservation-graphic>`;
320
314
  }
321
- _getRenderedServiceElements(r, e, t) {
322
- return t ? t?.map((a) => {
323
- const s = a.icon ? l(a.icon, this._language.current) : null, i = this.getCalculatedDimension(a.dimension), o = this.getCalculatedPosition(a.position), b = a.rotation || 0, p = this.alignVertical ? b - 90 : b, c = `popover-trigger-${e}-${r}-${o.x}-${o.y}`;
315
+ _getRenderedServiceElements(e, r, s) {
316
+ return s ? s?.map((a) => {
317
+ const t = a.icon ? c(a.icon, this._language.current) : null, o = this.getCalculatedDimension(a.dimension), i = this.getCalculatedPosition(a.position), l = a.rotation || 0, p = this.alignVertical ? l - 90 : l, b = `popover-trigger-${r}-${e}-${i.x}-${i.y}`;
324
318
  return n`
325
319
  <sbb-seat-reservation-graphic
326
- id="${c}"
320
+ id="${b}"
327
321
  style=${v({
328
- "--sbb-seat-reservation-graphic-width": i.w,
329
- "--sbb-seat-reservation-graphic-height": i.h,
330
- "--sbb-seat-reservation-graphic-top": o.y,
331
- "--sbb-seat-reservation-graphic-left": o.x,
322
+ "--sbb-seat-reservation-graphic-width": o.w,
323
+ "--sbb-seat-reservation-graphic-height": o.h,
324
+ "--sbb-seat-reservation-graphic-top": i.y,
325
+ "--sbb-seat-reservation-graphic-left": i.x,
332
326
  "--sbb-seat-reservation-graphic-position": "absolute",
333
327
  "--sbb-seat-reservation-graphic-rotation": p
334
328
  })}
335
329
  class="sbb-seat-reservation-graphic--cursor-pointer"
336
- name=${a.icon ?? u}
330
+ name=${a.icon ?? _}
337
331
  role="img"
338
332
  aria-hidden="true"
339
333
  ></sbb-seat-reservation-graphic>
340
- ${this._popover(c, s)}
334
+ ${this._popover(b, t)}
341
335
  `;
342
336
  }) : null;
343
337
  }
@@ -346,13 +340,13 @@ let X = (() => {
346
340
  * Each selection emits an array of all selected places
347
341
  * @param selectPlaceEvent
348
342
  */
349
- _onSelectPlace(r) {
350
- const e = r.detail;
351
- this.preventCoachScrollByPlaceClick = !0, this.isCoachGridFocusable = !1, this.hasSeatReservationNativeFocus || (this.hasSeatReservationNativeFocus = !0), this.preventPlaceClick || (this.updateSelectedSeatReservationPlaces(e), this.updateCurrentSelectedPlaceInCoach(e));
343
+ _onSelectPlace(e) {
344
+ const r = e.detail;
345
+ this.preventCoachScrollByPlaceClick = !0, this.isCoachGridFocusable = !1, this.focusedCoachIndex = -1, this.hasSeatReservationNativeFocus || (this.hasSeatReservationNativeFocus = !0), this.preventPlaceClick || (this.updateSelectedSeatReservationPlaces(r), this.updateCurrentSelectedPlaceInCoach(r));
352
346
  }
353
- _onSelectNavCoach(r) {
354
- const e = r.detail;
355
- this.isKeyboardNavigation = !1, this.preventCoachScrollByPlaceClick = !1, e !== null && e !== this.currSelectedCoachIndex ? (this.unfocusPlaceElement(), this.scrollToSelectedNavCoach(e)) : e === this.currSelectedCoachIndex && (this.updateCurrentSelectedCoach(), this.preselectPlaceInCoach()), this._closePopover();
347
+ _onSelectNavCoach(e) {
348
+ const r = e.detail;
349
+ this.isKeyboardNavigation = !1, this.preventCoachScrollByPlaceClick = !1, this.hasSeatReservationNativeFocus = !0, r !== null && r !== this.currSelectedCoachIndex ? (this.unfocusPlaceElement(), this.scrollToSelectedNavCoach(r)) : r === this.currSelectedCoachIndex && (this.updateCurrentSelectedCoach(), this.preselectPlaceInCoach()), this._closePopover();
356
350
  }
357
351
  _onFocusNavCoach() {
358
352
  this.preventCoachScrollByPlaceClick ? this.focusPlaceElement(this.currSelectedPlace) : this.preselectPlaceInCoach(), this.isAutoScrolling = !1;
@@ -363,10 +357,10 @@ let X = (() => {
363
357
  * @param popoverContent
364
358
  * @private
365
359
  */
366
- _popover(r, e) {
360
+ _popover(e, r) {
367
361
  return n`
368
- <sbb-popover trigger="${r}" hover-trigger="">
369
- <p class="sbb-text-s sbb-sr-popover">${e}</p>
362
+ <sbb-popover trigger="${e}" hover-trigger="">
363
+ <p class="sbb-text-s sbb-sr-popover">${r}</p>
370
364
  </sbb-popover>
371
365
  `;
372
366
  }
@@ -375,37 +369,37 @@ let X = (() => {
375
369
  * @private
376
370
  */
377
371
  _closePopover() {
378
- this.shadowRoot?.querySelectorAll("sbb-popover:is(:state(state-opened),[state--state-opened])").forEach((r) => r.close());
372
+ this.shadowRoot?.querySelectorAll("sbb-popover:is(:state(state-opened),[state--state-opened])").forEach((e) => e.close());
379
373
  }
380
- _getDescriptionTableCoach(r) {
381
- if (!r.places?.length)
382
- return l("COACH_BLOCKED_TABLE_CAPTION", this._language.current, [
383
- r.id
374
+ _getDescriptionTableCoach(e) {
375
+ if (!e.places?.length)
376
+ return c("COACH_BLOCKED_TABLE_CAPTION", this._language.current, [
377
+ e.id
384
378
  ]);
385
- let e;
386
- const t = this._getTitleDescriptionListString(r.graphicElements), a = this._getTitleDescriptionListString(r.serviceElements);
387
- if (e = l("COACH_TABLE_CAPTION", this._language.current, [
388
- r.id
379
+ let r;
380
+ const s = this._getTitleDescriptionListString(e.graphicElements), a = this._getTitleDescriptionListString(e.serviceElements);
381
+ if (r = c("COACH_TABLE_CAPTION", this._language.current, [
382
+ e.id
389
383
  ]), !this.hasNavigation) {
390
- const s = this.getAvailableFreePlacesNumFromCoach(r.places), i = l("COACH_AVAILABLE_NUMBER_OF_PLACES", this._language.current, [s.seats, s.bicycles]);
391
- e = e.concat(". ").concat(i).concat(". ");
384
+ const t = this.getAvailableFreePlacesNumFromCoach(e.places), o = c("COACH_AVAILABLE_NUMBER_OF_PLACES", this._language.current, [t.seats, t.bicycles]);
385
+ r = r.concat(". ").concat(o).concat(". ");
392
386
  }
393
- return (t || a) && (e += ". " + l("COACH_AVAILABLE_SERVICES", this._language.current) + ": ", e += a + ", " + t + "."), e;
387
+ return (s || a) && (r += ". " + c("COACH_AVAILABLE_SERVICES", this._language.current) + ": ", r += a + ", " + s + "."), r;
394
388
  }
395
- _getTitleDescriptionListString(r) {
396
- const e = [];
397
- return r?.map((t) => {
398
- const a = t.icon;
389
+ _getTitleDescriptionListString(e) {
390
+ const r = [];
391
+ return e?.map((s) => {
392
+ const a = s.icon;
399
393
  if (!a)
400
394
  return null;
401
- const s = e.indexOf(a) > -1, i = l(t.icon, this._language.current), o = this._notFixedRotatableAreaIcons.indexOf(a) === -1 && this._notAreaElements.indexOf(a) === -1;
402
- return s || e.push(t.icon), i && !s && o ? i : null;
403
- }).filter((t) => !!t).join(", ");
395
+ const t = r.indexOf(a) > -1, o = c(s.icon, this._language.current), i = this._notFixedRotatableAreaIcons.indexOf(a) === -1 && this._notAreaElements.indexOf(a) === -1;
396
+ return t || r.push(s.icon), o && !t && i ? o : null;
397
+ }).filter((s) => !!s).join(", ");
404
398
  }
405
- }, d = h, (() => {
406
- const r = typeof Symbol == "function" && Symbol.metadata ? Object.create(k[Symbol.metadata] ?? null) : void 0;
407
- $(null, w = { value: d }, C, { kind: "class", name: d.name, metadata: r }, null, f), d = w.value, r && Object.defineProperty(d, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: r });
408
- })(), h.styles = [R, N], y(d, f), d;
399
+ }, h = d, (() => {
400
+ const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(x[Symbol.metadata] ?? null) : void 0;
401
+ k(null, f = { value: h }, $, { kind: "class", name: h.name, metadata: e }, null, w), h = f.value, e && Object.defineProperty(h, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
402
+ })(), d.styles = [R, T], y(h, w), h;
409
403
  })();
410
404
  export {
411
405
  X as SbbSeatReservationElement