@sbb-esta/lyne-elements-experimental-dev 4.9.0-dev.1775049540 → 4.9.0-dev.1775050922

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 (170) hide show
  1. package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  2. package/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  3. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  4. package/autocomplete-grid/autocomplete-grid-option.js +1 -1
  5. package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  6. package/autocomplete-grid/autocomplete-grid-row.js +1 -1
  7. package/{autocomplete-grid-cell.component-DnCfVJ2l.js → autocomplete-grid-cell.component-DkD9aFKc.js} +5 -5
  8. package/autocomplete-grid-option.component-CtATJy7n.js +37 -0
  9. package/autocomplete-grid-row.component-6nJv5PMj.js +27 -0
  10. package/autocomplete-grid.js +3 -3
  11. package/autocomplete-grid.pure.js +3 -3
  12. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +1 -1
  13. package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +1 -1
  14. package/development/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  15. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +1 -1
  16. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +1 -1
  17. package/development/autocomplete-grid/autocomplete-grid-option.js +1 -1
  18. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +1 -1
  19. package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +1 -1
  20. package/development/autocomplete-grid/autocomplete-grid-row.js +1 -1
  21. package/development/autocomplete-grid-cell.component-BxkWGaX0.js +34 -0
  22. package/development/autocomplete-grid-option.component-5mPGswUO.js +61 -0
  23. package/development/autocomplete-grid-row.component-DEm6zyHZ.js +39 -0
  24. package/development/autocomplete-grid.js +3 -3
  25. package/development/autocomplete-grid.pure.js +3 -3
  26. package/development/journey-summary/journey-summary.component.d.ts.map +1 -1
  27. package/development/journey-summary/journey-summary.component.js +1 -1
  28. package/development/journey-summary.component-BZwgD4im.js +340 -0
  29. package/development/journey-summary.js +1 -1
  30. package/development/journey-summary.pure.js +1 -1
  31. package/development/pearl-chain/pearl-chain.component.d.ts.map +1 -1
  32. package/development/pearl-chain/pearl-chain.component.js +1 -1
  33. package/development/pearl-chain-time/pearl-chain-time.component.d.ts.map +1 -1
  34. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  35. package/development/pearl-chain-time.component-B2_BI6E_.js +319 -0
  36. package/development/pearl-chain-time.js +1 -1
  37. package/development/pearl-chain-time.pure.js +1 -1
  38. package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts.map +1 -1
  39. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  40. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +1 -1
  41. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  42. package/development/pearl-chain-vertical-item.component-DcmH13Vb.js +133 -0
  43. package/development/pearl-chain-vertical-item.js +1 -1
  44. package/development/pearl-chain-vertical-item.pure.js +1 -1
  45. package/development/pearl-chain-vertical.component-CpcNFl-x.js +31 -0
  46. package/development/pearl-chain-vertical.js +1 -1
  47. package/development/pearl-chain-vertical.pure.js +1 -1
  48. package/development/pearl-chain.component-oQZUzsyW.js +316 -0
  49. package/development/pearl-chain.js +1 -1
  50. package/development/pearl-chain.pure.js +1 -1
  51. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  52. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  53. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +1 -1
  54. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  55. package/development/seat-reservation/seat-reservation-area.js +1 -1
  56. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
  57. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +1 -1
  58. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  59. package/development/seat-reservation/seat-reservation-graphic.js +1 -1
  60. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -1
  61. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  62. package/development/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  63. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -1
  64. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  65. package/development/seat-reservation/seat-reservation-navigation-services.js +1 -1
  66. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  67. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  68. package/development/seat-reservation/seat-reservation-place-control.js +1 -1
  69. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -1
  70. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  71. package/development/seat-reservation/seat-reservation-scoped.js +1 -1
  72. package/development/seat-reservation/seat-reservation.js +1 -1
  73. package/development/seat-reservation-area.component-DbeuTnXT.js +96 -0
  74. package/development/seat-reservation-graphic.component-DlrHtlia.js +129 -0
  75. package/development/seat-reservation-navigation-coach.component-CjoDkcVU.js +428 -0
  76. package/development/seat-reservation-navigation-services.component-CGel7__P.js +159 -0
  77. package/development/seat-reservation-place-control.component-CM9efId7.js +429 -0
  78. package/development/seat-reservation-scoped.component-CFA_bJ3o.js +25 -0
  79. package/development/seat-reservation.component-DFJVFmrI.js +510 -0
  80. package/development/seat-reservation.js +7 -7
  81. package/development/seat-reservation.pure.js +7 -7
  82. package/development/timetable-duration/timetable-duration.component.d.ts.map +1 -1
  83. package/development/timetable-duration/timetable-duration.component.js +1 -1
  84. package/development/timetable-duration.component-BhFlqYbV.js +100 -0
  85. package/development/timetable-duration.js +1 -1
  86. package/development/timetable-duration.pure.js +1 -1
  87. package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
  88. package/development/timetable-row/timetable-row.component.js +1 -1
  89. package/development/timetable-row.component-Dko8laRT.js +729 -0
  90. package/development/timetable-row.js +1 -1
  91. package/development/timetable-row.pure.js +1 -1
  92. package/journey-summary/journey-summary.component.js +1 -1
  93. package/{journey-summary.component-DcpXXucp.js → journey-summary.component-DC7-qPHY.js} +38 -38
  94. package/journey-summary.js +1 -1
  95. package/journey-summary.pure.js +1 -1
  96. package/package.json +2 -2
  97. package/pearl-chain/pearl-chain.component.js +1 -1
  98. package/pearl-chain-time/pearl-chain-time.component.js +1 -1
  99. package/{pearl-chain-time.component-v6zRg_3j.js → pearl-chain-time.component-CkKsrbgQ.js} +28 -28
  100. package/pearl-chain-time.js +1 -1
  101. package/pearl-chain-time.pure.js +1 -1
  102. package/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  103. package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  104. package/pearl-chain-vertical-item.component-BUqZ-3Ay.js +108 -0
  105. package/pearl-chain-vertical-item.js +1 -1
  106. package/pearl-chain-vertical-item.pure.js +1 -1
  107. package/{pearl-chain-vertical.component-BvJwcGpS.js → pearl-chain-vertical.component-Df9CvRxo.js} +5 -5
  108. package/pearl-chain-vertical.js +1 -1
  109. package/pearl-chain-vertical.pure.js +1 -1
  110. package/pearl-chain.component-CpISVoAu.js +194 -0
  111. package/pearl-chain.js +1 -1
  112. package/pearl-chain.pure.js +1 -1
  113. package/seat-reservation/seat-reservation/seat-reservation.component.js +1 -1
  114. package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  115. package/seat-reservation/seat-reservation-area.js +1 -1
  116. package/seat-reservation/seat-reservation-graphic/seat-reservation-assets.js +1 -1
  117. package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  118. package/seat-reservation/seat-reservation-graphic.js +1 -1
  119. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +1 -1
  120. package/seat-reservation/seat-reservation-navigation-coach.js +1 -1
  121. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +1 -1
  122. package/seat-reservation/seat-reservation-navigation-services.js +1 -1
  123. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  124. package/seat-reservation/seat-reservation-place-control.js +1 -1
  125. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +1 -1
  126. package/seat-reservation/seat-reservation-scoped.js +1 -1
  127. package/seat-reservation/seat-reservation.js +1 -1
  128. package/seat-reservation-area.component-CtYawDjE.js +75 -0
  129. package/seat-reservation-graphic.component-Cm_pVxaB.js +102 -0
  130. package/seat-reservation-navigation-coach.component-sug9IBTH.js +333 -0
  131. package/{seat-reservation-navigation-services.component-ViyU_adt.js → seat-reservation-navigation-services.component-C9dDYD_M.js} +19 -19
  132. package/seat-reservation-place-control.component-CE7d9M2b.js +322 -0
  133. package/seat-reservation-scoped.component-DVyP2JGE.js +17 -0
  134. package/{seat-reservation.component-Dl6bnC7-.js → seat-reservation.component-DajC6fqU.js} +51 -51
  135. package/seat-reservation.js +7 -7
  136. package/seat-reservation.pure.js +7 -7
  137. package/timetable-duration/timetable-duration.component.js +1 -1
  138. package/{timetable-duration.component-Puonwsnr.js → timetable-duration.component-BnJA8wSb.js} +12 -12
  139. package/timetable-duration.js +1 -1
  140. package/timetable-duration.pure.js +1 -1
  141. package/timetable-row/timetable-row.component.js +1 -1
  142. package/{timetable-row.component-DMCZaOPM.js → timetable-row.component-DbzBCpKR.js} +59 -59
  143. package/timetable-row.js +1 -1
  144. package/timetable-row.pure.js +1 -1
  145. package/autocomplete-grid-option.component-BlMPM6eh.js +0 -37
  146. package/autocomplete-grid-row.component-Bo2ZbXVX.js +0 -27
  147. package/development/autocomplete-grid-cell.component-BBvM4o2H.js +0 -42
  148. package/development/autocomplete-grid-option.component-QzfM5eIE.js +0 -123
  149. package/development/autocomplete-grid-row.component-H8sCTCkT.js +0 -104
  150. package/development/journey-summary.component-DN0Vwoeb.js +0 -385
  151. package/development/pearl-chain-time.component-zUAj_1eD.js +0 -415
  152. package/development/pearl-chain-vertical-item.component-BDzbcIaf.js +0 -435
  153. package/development/pearl-chain-vertical.component-CswE7b3M.js +0 -39
  154. package/development/pearl-chain.component-F9jtc5UO.js +0 -704
  155. package/development/seat-reservation-area.component-ORuli_DC.js +0 -138
  156. package/development/seat-reservation-graphic.component-D0xEXmP9.js +0 -203
  157. package/development/seat-reservation-navigation-coach.component-D2QXTMJJ.js +0 -828
  158. package/development/seat-reservation-navigation-services.component-Bg1adRlU.js +0 -179
  159. package/development/seat-reservation-place-control.component-CwUX-QYO.js +0 -726
  160. package/development/seat-reservation-scoped.component-uLT33P9y.js +0 -31
  161. package/development/seat-reservation.component-BS53sZR3.js +0 -824
  162. package/development/timetable-duration.component-D21SXsQq.js +0 -125
  163. package/development/timetable-row.component-zDOmmuJR.js +0 -932
  164. package/pearl-chain-vertical-item.component-M2KRK6Xv.js +0 -108
  165. package/pearl-chain.component-B-XTTo6h.js +0 -194
  166. package/seat-reservation-area.component-CY56r75x.js +0 -75
  167. package/seat-reservation-graphic.component-DCMFf9uY.js +0 -102
  168. package/seat-reservation-navigation-coach.component-CXUv1pZM.js +0 -333
  169. package/seat-reservation-place-control.component-Dj5Tm0Oa.js +0 -322
  170. package/seat-reservation-scoped.component-CuACI8ST.js +0 -17
@@ -0,0 +1,194 @@
1
+ import { t as e } from "./toDate-p-Tpkb7t.js";
2
+ import { r as t, t as n } from "./differenceInMinutes-Dr9gRqtu.js";
3
+ import { __esDecorate as r, __runInitializers as i } from "tslib";
4
+ import { SbbElement as a } from "@sbb-esta/lyne-elements/core/base-elements.js";
5
+ import { forceType as o } from "@sbb-esta/lyne-elements/core/decorators.js";
6
+ import { boxSizingStyles as s } from "@sbb-esta/lyne-elements/core/styles.js";
7
+ import { html as c, nothing as l, unsafeCSS as u } from "lit";
8
+ import { defaultDateAdapter as d } from "@sbb-esta/lyne-elements/core/datetime.js";
9
+ import { property as f } from "lit/decorators.js";
10
+ import { removeTimezoneFromISOTimeString as p } from "./core/datetime.js";
11
+ import { isRideLeg as m } from "./core/timetable.js";
12
+ import { styleMap as h } from "lit/directives/style-map.js";
13
+ //#region node_modules/date-fns/isAfter.js
14
+ function g(t, n) {
15
+ return +e(t) > +e(n);
16
+ }
17
+ //#endregion
18
+ //#region node_modules/date-fns/isBefore.js
19
+ function _(t, n) {
20
+ return +e(t) < +e(n);
21
+ }
22
+ //#endregion
23
+ //#region src/elements-experimental/pearl-chain/pearl-chain.scss?inline
24
+ var v = ":host{--sbb-pearl-chain-height: var(--sbb-border-width-2x);--sbb-pearl-chain-spacing-small: .125rem;--sbb-pearl-chain-color: var(--sbb-pearl-chain-bullet-color);--sbb-pearl-chain-color-disruption: var(--sbb-pearl-chain-bullet-color-disruption);--sbb-pearl-chain-color-past: var(--sbb-pearl-chain-bullet-color-past);--sbb-pearl-chain-leg-width: 100%;display:block;--sbb-pearl-chain-position-color: var(--sbb-color-primary);--sbb-pearl-chain-bullet-size-start-end: .625rem;--sbb-pearl-chain-bullet-size-stop: .5rem;--sbb-pearl-chain-bullet-color: var(--sbb-background-color-3-inverted);--sbb-pearl-chain-bullet-color-past: var(--sbb-color-metal);--sbb-pearl-chain-bullet-color-past: light-dark(var(--sbb-color-metal), var(--sbb-color-granite));--sbb-pearl-chain-bullet-color-irrelevant: var(--sbb-color-metal);--sbb-pearl-chain-bullet-color-irrelevant: light-dark( var(--sbb-color-metal), var(--sbb-color-granite) );--sbb-pearl-chain-bullet-color-disruption: var(--sbb-color-error);--sbb-pearl-chain-bullet-border-width: var(--sbb-border-width-2x);--sbb-pearl-chain-bullet-animation-duration: 1.92s;--sbb-pearl-chain-bullet-animation-easing: ease-out;--sbb-pearl-chain-bullet-crossed-width: .88375rem;--sbb-pearl-chain-bullet-crossed-height: .21875rem;--sbb-pearl-chain-bullet-crossed-border-width: .09375rem}.sbb-pearl-chain{position:relative;display:flex;justify-content:space-between;flex-wrap:nowrap;color:var(--sbb-pearl-chain-color);width:100%;padding-block:calc((var(--sbb-pearl-chain-bullet-size-start-end) - var(--sbb-pearl-chain-height)) / 2);padding-inline-end:var(--sbb-pearl-chain-bullet-size-start-end)}.sbb-pearl-chain__bullet{min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__bullet{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__bullet{content:\"\";position:absolute;background-color:currentcolor;inset-block-start:0;z-index:3}.sbb-pearl-chain__bullet:first-of-type{inset-inline-start:0}.sbb-pearl-chain__bullet:last-of-type{inset-inline-end:0}.sbb-pearl-chain__leg{flex-shrink:0;flex-grow:0;position:relative;height:var(--sbb-pearl-chain-height);border-inline-end:var(--sbb-pearl-chain-spacing-small) solid Canvas;background-color:currentcolor;width:var(--sbb-pearl-chain-leg-width);display:flex;align-items:center}@media(forced-colors:active){.sbb-pearl-chain__leg{background-color:CanvasText}.sbb-pearl-chain--past .sbb-pearl-chain__leg{background-color:GrayText}}.sbb-pearl-chain__leg:last-of-type{border:none}.sbb-pearl-chain__stop{position:relative;z-index:2;background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__stop{min-height:var(--sbb-pearl-chain-bullet-size-stop);min-width:var(--sbb-pearl-chain-bullet-size-stop);height:var(--sbb-pearl-chain-bullet-size-stop);width:var(--sbb-pearl-chain-bullet-size-stop);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain__bullet--future{background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__bullet--future{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{color:var(--sbb-pearl-chain-color-past);--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past)}@media(forced-colors:active){.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{--sbb-pearl-chain-bullet-color: GrayText !important}}@media(forced-colors:active){.sbb-pearl-chain__leg--past,.sbb-pearl-chain--past,.sbb-pearl-chain__leg--past:after,.sbb-pearl-chain__leg--progress:after,.sbb-pearl-chain__leg--progress .sbb-pearl-chain__stop,.sbb-pearl-chain--progress,.sbb-pearl-chain__bullet--past{background-color:GrayText!important}}.sbb-pearl-chain__bullet--progress{background:var(--sbb-pearl-chain-bullet-color);--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past)}@media(forced-colors:active){.sbb-pearl-chain__bullet--progress{--sbb-pearl-chain-bullet-color: GrayText !important}}.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{color:var(--sbb-pearl-chain-color-disruption);--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-disruption)}@media(forced-colors:active){.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{--sbb-pearl-chain-bullet-color: Highlight}}@media(forced-colors:active){.sbb-pearl-chain__bullet--departure-disruption,.sbb-pearl-chain--arrival-disruption,.sbb-pearl-chain--departure-disruption,.sbb-pearl-chain__leg--disruption{color:Highlight;background:Highlight}}.sbb-pearl-chain__leg--disruption .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-disruption)}@media(forced-colors:active){.sbb-pearl-chain__leg--disruption .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: Highlight}}.sbb-pearl-chain__leg--past .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-bullet-color-past)}@media(forced-colors:active){.sbb-pearl-chain__leg--past .sbb-pearl-chain__stop{--sbb-pearl-chain-bullet-color: GrayText !important}}.sbb-pearl-chain__leg--disruption:after{background-color:unset;background-image:linear-gradient(to right,currentcolor 0%,currentcolor 50%,Canvas 50%);background-repeat:repeat-x;background-size:calc(2 * var(--sbb-pearl-chain-spacing-small)) var(--sbb-pearl-chain-height);inset-inline-end:var(--sbb-pearl-chain-height)}@media(forced-colors:active){.sbb-pearl-chain__leg--disruption:after{background:unset;border-block-start:.0625rem dashed Highlight;transform:translateY(.0625rem)}}.sbb-pearl-chain__leg--skipped{color:var(--sbb-pearl-chain-color-disruption)}.sbb-pearl-chain__leg--skipped:after{background-color:unset;background-image:linear-gradient(to right,currentcolor 0%,currentcolor 50%,Canvas 50%);background-repeat:repeat-x;background-size:calc(2 * var(--sbb-pearl-chain-spacing-small)) var(--sbb-pearl-chain-height);inset-inline-end:var(--sbb-pearl-chain-height)}@media(forced-colors:active){.sbb-pearl-chain__leg--skipped:after{background:unset;border-block-start:.0625rem dashed Highlight;transform:translateY(.0625rem)}}.sbb-pearl-chain__stop--departure-skipped{min-height:var(--sbb-pearl-chain-bullet-size-stop);min-width:var(--sbb-pearl-chain-bullet-size-stop);height:var(--sbb-pearl-chain-bullet-size-stop);width:var(--sbb-pearl-chain-bullet-size-stop);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain__stop--departure-skipped:before{content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%) rotate(45deg);border-block-start:var(--sbb-pearl-chain-bullet-crossed-border-width) solid canvas;background:var(--sbb-pearl-chain-bullet-color-disruption);height:var(--sbb-pearl-chain-bullet-crossed-height);width:var(--sbb-pearl-chain-bullet-crossed-width)}@media(forced-colors:active){.sbb-pearl-chain__stop--departure-skipped:before{background:Highlight}}.sbb-pearl-chain--arrival-skipped,.sbb-pearl-chain--departure-skipped{min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);border:var(--sbb-pearl-chain-bullet-border-width) solid currentcolor;background:Canvas}.sbb-pearl-chain--arrival-skipped:before,.sbb-pearl-chain--departure-skipped:before{content:\"\";position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%) rotate(45deg);border-block-start:var(--sbb-pearl-chain-bullet-crossed-border-width) solid canvas;background:var(--sbb-pearl-chain-bullet-color-disruption);height:var(--sbb-pearl-chain-bullet-crossed-height);width:var(--sbb-pearl-chain-bullet-crossed-width)}@media(forced-colors:active){.sbb-pearl-chain--arrival-skipped:before,.sbb-pearl-chain--departure-skipped:before{background:Highlight}}.sbb-pearl-chain__leg:after{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;background-color:currentcolor;border-radius:var(--sbb-pearl-chain-height);z-index:1}@media(forced-colors:active){.sbb-pearl-chain__leg:after{background-color:CanvasText}.sbb-pearl-chain--past .sbb-pearl-chain__leg:after{background-color:GrayText}}.sbb-pearl-chain__leg:last-of-type:after{inset-inline-end:calc(-1 * var(--sbb-pearl-chain-height))}.sbb-pearl-chain__leg--progress:after{background-color:var(--sbb-pearl-chain-color-past);width:var(--sbb-pearl-chain-leg-status)}.sbb-pearl-chain__position{min-height:var(--sbb-pearl-chain-bullet-size-start-end);min-width:var(--sbb-pearl-chain-bullet-size-start-end);height:var(--sbb-pearl-chain-bullet-size-start-end);width:var(--sbb-pearl-chain-bullet-size-start-end);background:var(--sbb-pearl-chain-bullet-color);color:var(--sbb-pearl-chain-bullet-color);border-color:var(--sbb-pearl-chain-bullet-color);border-radius:100%}@media(forced-colors:active){.sbb-pearl-chain__position{--sbb-pearl-chain-bullet-color: CanvasText}}.sbb-pearl-chain__position{--sbb-pearl-chain-bullet-color: var(--sbb-pearl-chain-position-color)}@media(forced-colors:active){.sbb-pearl-chain__position{--sbb-pearl-chain-position-color: Highlight}}@keyframes pearl-chain-bullet-position-pulse{0%{box-shadow:0 0 0 0 var(--sbb-pearl-chain-position-color)}25%{box-shadow:0 0 0 0 var(--sbb-pearl-chain-position-color)}50%{box-shadow:0 0 0 .1875rem color-mix(in srgb,var(--sbb-pearl-chain-position-color) 20%,transparent)}to{box-shadow:0 0 0 0 var(--sbb-pearl-chain-position-color)}}.sbb-pearl-chain__position{animation:pearl-chain-bullet-position-pulse var(--sbb-pearl-chain-bullet-animation-duration) var(--sbb-pearl-chain-bullet-animation-easing) infinite;position:absolute;inset-block-start:-200%;z-index:4;inset-inline-start:var(--sbb-pearl-chain-status-position)}.sbb-pearl-chain__position--no-animation{animation:unset}.sbb-screen-reader-only{border:0;clip-path:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}", y = (() => {
25
+ let e = a, y = [], b, x = [], S = [], C, w = [], T = [], E;
26
+ return class extends e {
27
+ constructor() {
28
+ super(...arguments), this.#e = (i(this, y), i(this, x, [])), this.#t = (i(this, S), i(this, w, !1)), this._now = (i(this, T), null);
29
+ }
30
+ static {
31
+ let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(e[Symbol.metadata] ?? null) : void 0;
32
+ b = [f({ type: Array })], C = [o(), f({
33
+ attribute: "disable-animation",
34
+ type: Boolean
35
+ })], E = [f()], r(this, null, b, {
36
+ kind: "accessor",
37
+ name: "legs",
38
+ static: !1,
39
+ private: !1,
40
+ access: {
41
+ has: (e) => "legs" in e,
42
+ get: (e) => e.legs,
43
+ set: (e, t) => {
44
+ e.legs = t;
45
+ }
46
+ },
47
+ metadata: t
48
+ }, x, S), r(this, null, C, {
49
+ kind: "accessor",
50
+ name: "disableAnimation",
51
+ static: !1,
52
+ private: !1,
53
+ access: {
54
+ has: (e) => "disableAnimation" in e,
55
+ get: (e) => e.disableAnimation,
56
+ set: (e, t) => {
57
+ e.disableAnimation = t;
58
+ }
59
+ },
60
+ metadata: t
61
+ }, w, T), r(this, null, E, {
62
+ kind: "setter",
63
+ name: "now",
64
+ static: !1,
65
+ private: !1,
66
+ access: {
67
+ has: (e) => "now" in e,
68
+ set: (e, t) => {
69
+ e.now = t;
70
+ }
71
+ },
72
+ metadata: t
73
+ }, null, y), t && Object.defineProperty(this, Symbol.metadata, {
74
+ enumerable: !0,
75
+ configurable: !0,
76
+ writable: !0,
77
+ value: t
78
+ });
79
+ }
80
+ static {
81
+ this.elementName = "sbb-pearl-chain";
82
+ }
83
+ static {
84
+ this.styles = [s, u(v)];
85
+ }
86
+ #e;
87
+ get legs() {
88
+ return this.#e;
89
+ }
90
+ set legs(e) {
91
+ this.#e = e;
92
+ }
93
+ #t;
94
+ get disableAnimation() {
95
+ return this.#t;
96
+ }
97
+ set disableAnimation(e) {
98
+ this.#t = e;
99
+ }
100
+ set now(e) {
101
+ this._now = d.getValidDateOrNull(d.deserialize(e));
102
+ }
103
+ get now() {
104
+ return this._now;
105
+ }
106
+ _getAllDuration(e) {
107
+ return e?.reduce((e, t) => {
108
+ let r = p(t.arrival?.time), i = p(t.departure?.time);
109
+ return r && i ? e + n(p(t.arrival.time), p(t.departure.time)) : e;
110
+ }, 0);
111
+ }
112
+ _isAllCancelled(e) {
113
+ return e?.every((e) => e?.serviceJourney?.serviceAlteration?.cancelled);
114
+ }
115
+ _getRelativeDuration(e, t) {
116
+ let r = p(t.arrival?.time), i = p(t.departure?.time);
117
+ if (r && i) {
118
+ let r = n(p(t.arrival.time), p(t.departure.time)), i = this._getAllDuration(e);
119
+ return i === 0 ? 100 : r / i * 100;
120
+ }
121
+ return 0;
122
+ }
123
+ _getProgress(e, r, i) {
124
+ if (!r?.time || !i?.time) return 0;
125
+ let a = t(r.time, r.delay ?? 0), o = n(t(i.time, i.delay ?? 0), a), s = n(e, a);
126
+ return o && s / o * 100;
127
+ }
128
+ _getStatus(e, n, r) {
129
+ let i = n && n.time && t(n.time, n.delay ?? 0), a = r && r.time && t(r.time, r.delay ?? 0);
130
+ return i && _(i, e) && a && g(a, e) ? "progress" : a && _(a, e) ? "past" : "future";
131
+ }
132
+ _renderPosition(e, t, n) {
133
+ let r = this._getProgress(e, t, n);
134
+ if (r < 0 && r > 100) return;
135
+ let i = () => ({
136
+ "--sbb-pearl-chain-status-position": `${r}%`,
137
+ ...r >= 50 ? { transform: "translateX(-100%)" } : {}
138
+ }), a = this.disableAnimation ? "sbb-pearl-chain__position--no-animation" : "";
139
+ return c`<span
140
+ style=${h(i())}
141
+ class="sbb-pearl-chain__position ${a}"
142
+ ></span>`;
143
+ }
144
+ render() {
145
+ let e = this.now ?? /* @__PURE__ */ new Date(), t = this.legs?.filter((e) => m(e)), n = t?.length && p(t[0]?.departure?.time), r = n && {
146
+ time: n,
147
+ delay: t[0].departure.delay ?? 0
148
+ }, i = t?.length && p(t[t.length - 1].arrival?.time), a = i && {
149
+ time: i,
150
+ delay: t[t.length - 1]?.arrival.delay ?? 0
151
+ }, o = t && t[0]?.serviceJourney?.stopPoints && t[0]?.serviceJourney?.stopPoints[0].stopStatus === "NOT_SERVICED" ? "sbb-pearl-chain--departure-skipped" : "", s = (() => {
152
+ let e = t && t[t.length - 1], n = e && e.serviceJourney?.stopPoints;
153
+ return n && n[n.length - 1].stopStatus === "NOT_SERVICED" ? "sbb-pearl-chain--arrival-skipped" : "";
154
+ })(), u = t && t[0]?.serviceJourney?.serviceAlteration?.cancelled ? "sbb-pearl-chain--departure-disruption" : "", d = t && t[t.length - 1]?.serviceJourney?.serviceAlteration?.cancelled ? "sbb-pearl-chain--arrival-disruption" : "", f = r && a && this._getStatus(e, r, a), g = t && f && !u ? "sbb-pearl-chain__bullet--" + f : "", _ = t && f && !d ? "sbb-pearl-chain__bullet--" + this._getStatus(e, void 0, a) : "";
155
+ return this._isAllCancelled(t) ? c`
156
+ <div class="sbb-pearl-chain">
157
+ <span class="sbb-pearl-chain__bullet sbb-pearl-chain--departure-disruption"></span>
158
+ <div class="sbb-pearl-chain__leg sbb-pearl-chain__leg--disruption"></div>
159
+ <span class="sbb-pearl-chain__bullet sbb-pearl-chain--departure-disruption"></span>
160
+ </div>
161
+ ` : c`
162
+ <div class="sbb-pearl-chain">
163
+ <span
164
+ class="sbb-pearl-chain__bullet ${g} ${o} ${u}"
165
+ ></span>
166
+ ${t?.map((n, r) => {
167
+ let { stopPoints: i, serviceAlteration: a } = n?.serviceJourney || {}, o = this._getRelativeDuration(t, n), s = p(n.departure?.time), u = p(n.arrival?.time), d = i && i[i.length - 1]?.stopStatus === "NOT_SERVICED", f = i && i[i.length - 1]?.stopStatus === "PLANNED", m = i && i[0]?.stopStatus === "NOT_SERVICED", g = r > 0 && t[r - 1].serviceJourney.stopPoints, _ = g && g[g.length - 1]?.stopStatus === "NOT_SERVICED", v = d || m && f ? "sbb-pearl-chain__leg--skipped" : "", y = m || _ ? "sbb-pearl-chain__stop--departure-skipped" : "", b = a?.cancelled || a?.partiallyCancelled ? "sbb-pearl-chain__leg--disruption" : "", x = {
168
+ time: s,
169
+ delay: n.departure?.delay ?? 0
170
+ }, S = {
171
+ time: u,
172
+ delay: n.arrival?.delay ?? 0
173
+ }, C = this._getStatus(e, x, S);
174
+ return c` <div
175
+ class="sbb-pearl-chain__leg ${!b && !v && "sbb-pearl-chain__leg--" + C || ""} ${b} ${v}"
176
+ style=${h({
177
+ "--sbb-pearl-chain-leg-width": `${o}%`,
178
+ ...C === "progress" && !b && !v ? { "--sbb-pearl-chain-leg-status": `${this._getProgress(e, x, S)}%` } : {}
179
+ })}
180
+ >
181
+ ${r > 0 && r < t.length ? c`<span class="sbb-pearl-chain__stop ${y}"></span>` : l}
182
+ ${C === "progress" && !b && !v ? this._renderPosition(e, x, S) : l}
183
+ </div>`;
184
+ })}
185
+ <span
186
+ class="sbb-pearl-chain__bullet ${_} ${s} ${d}"
187
+ ></span>
188
+ </div>
189
+ `;
190
+ }
191
+ };
192
+ })();
193
+ //#endregion
194
+ export { y as t };
package/pearl-chain.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./pearl-chain.component-B-XTTo6h.js";
1
+ import { t as e } from "./pearl-chain.component-CpISVoAu.js";
2
2
  import "./pearl-chain.pure.js";
3
3
  //#region src/elements-experimental/pearl-chain.ts
4
4
  e.define();
@@ -1,2 +1,2 @@
1
- import { t as e } from "./pearl-chain.component-B-XTTo6h.js";
1
+ import { t as e } from "./pearl-chain.component-CpISVoAu.js";
2
2
  export { e as SbbPearlChainElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../seat-reservation.component-Dl6bnC7-.js";
1
+ import { t as e } from "../../seat-reservation.component-DajC6fqU.js";
2
2
  export { e as SbbSeatReservationElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../seat-reservation-area.component-CY56r75x.js";
1
+ import { t as e } from "../../seat-reservation-area.component-CtYawDjE.js";
2
2
  export { e as SbbSeatReservationAreaElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../seat-reservation-area.component-CY56r75x.js";
1
+ import { t as e } from "../seat-reservation-area.component-CtYawDjE.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements-experimental/seat-reservation/seat-reservation-area.js' has been deprecated.\nUse either '@sbb-esta/elements-experimental/seat-reservation.js' or '@sbb-esta/elements-experimental/seat-reservation.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbSeatReservationAreaElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../seat-reservation-graphic.component-DCMFf9uY.js";
1
+ import { t as e } from "../../seat-reservation-graphic.component-Cm_pVxaB.js";
2
2
  import { html as t } from "lit";
3
3
  import { unsafeHTML as n } from "lit/directives/unsafe-html.js";
4
4
  import { mapIconToSvg as r } from "../common/mapper.js";
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../seat-reservation-graphic.component-DCMFf9uY.js";
1
+ import { t as e } from "../../seat-reservation-graphic.component-Cm_pVxaB.js";
2
2
  export { e as SbbSeatReservationGraphicElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../seat-reservation-graphic.component-DCMFf9uY.js";
1
+ import { t as e } from "../seat-reservation-graphic.component-Cm_pVxaB.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements-experimental/seat-reservation/seat-reservation-graphic.js' has been deprecated.\nUse either '@sbb-esta/elements-experimental/seat-reservation.js' or '@sbb-esta/elements-experimental/seat-reservation.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbSeatReservationGraphicElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../seat-reservation-navigation-coach.component-CXUv1pZM.js";
1
+ import { t as e } from "../../seat-reservation-navigation-coach.component-sug9IBTH.js";
2
2
  export { e as SbbSeatReservationNavigationCoachElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../seat-reservation-navigation-coach.component-CXUv1pZM.js";
1
+ import { t as e } from "../seat-reservation-navigation-coach.component-sug9IBTH.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements-experimental/seat-reservation/seat-reservation-navigation-coach.js' has been deprecated.\nUse either '@sbb-esta/elements-experimental/seat-reservation.js' or '@sbb-esta/elements-experimental/seat-reservation.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbSeatReservationNavigationCoachElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../seat-reservation-navigation-services.component-ViyU_adt.js";
1
+ import { t as e } from "../../seat-reservation-navigation-services.component-C9dDYD_M.js";
2
2
  export { e as SbbSeatReservationNavigationServicesElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../seat-reservation-navigation-services.component-ViyU_adt.js";
1
+ import { t as e } from "../seat-reservation-navigation-services.component-C9dDYD_M.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements-experimental/seat-reservation/seat-reservation-navigation-services.js' has been deprecated.\nUse either '@sbb-esta/elements-experimental/seat-reservation.js' or '@sbb-esta/elements-experimental/seat-reservation.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbSeatReservationNavigationServicesElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../seat-reservation-place-control.component-Dj5Tm0Oa.js";
1
+ import { t as e } from "../../seat-reservation-place-control.component-CE7d9M2b.js";
2
2
  export { e as SbbSeatReservationPlaceControlElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../seat-reservation-place-control.component-Dj5Tm0Oa.js";
1
+ import { t as e } from "../seat-reservation-place-control.component-CE7d9M2b.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements-experimental/seat-reservation/seat-reservation-place-control.js' has been deprecated.\nUse either '@sbb-esta/elements-experimental/seat-reservation.js' or '@sbb-esta/elements-experimental/seat-reservation.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbSeatReservationPlaceControlElement };
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../seat-reservation-scoped.component-CuACI8ST.js";
1
+ import { t as e } from "../../seat-reservation-scoped.component-DVyP2JGE.js";
2
2
  export { e as SbbSeatReservationScopedElement };
@@ -1,4 +1,4 @@
1
- import { t as e } from "../seat-reservation-scoped.component-CuACI8ST.js";
1
+ import { t as e } from "../seat-reservation-scoped.component-DVyP2JGE.js";
2
2
  e.define(), console.warn("The entrypoint '@sbb-esta/elements-experimental/seat-reservation/seat-reservation-scoped.js' has been deprecated.\nUse either '@sbb-esta/elements-experimental/seat-reservation.js' or '@sbb-esta/elements-experimental/seat-reservation.pure.js' instead.");
3
3
  //#endregion
4
4
  export { e as SbbSeatReservationScopedElement };
@@ -1,5 +1,5 @@
1
1
  import { SeatReservationBaseElement as e } from "./seat-reservation/seat-reservation-base-element.js";
2
- import { t } from "../seat-reservation.component-Dl6bnC7-.js";
2
+ import { t } from "../seat-reservation.component-DajC6fqU.js";
3
3
  t.define(), console.warn("The entrypoint '@sbb-esta/elements-experimental/seat-reservation/seat-reservation.js' has been deprecated.\nUse either '@sbb-esta/elements-experimental/seat-reservation.js' or '@sbb-esta/elements-experimental/seat-reservation.pure.js' instead.");
4
4
  //#endregion
5
5
  export { t as SbbSeatReservationElement, e as SeatReservationBaseElement };
@@ -0,0 +1,75 @@
1
+ import { __esDecorate as e, __runInitializers as t } from "tslib";
2
+ import { SbbElement as n } from "@sbb-esta/lyne-elements/core/base-elements.js";
3
+ import { forceType as r } from "@sbb-esta/lyne-elements/core/decorators.js";
4
+ import { boxSizingStyles as i } from "@sbb-esta/lyne-elements/core/styles.js";
5
+ import { html as a, unsafeCSS as o } from "lit";
6
+ import { property as s } from "lit/decorators.js";
7
+ //#region src/elements-experimental/seat-reservation/seat-reservation-area/seat-reservation-area.scss?inline
8
+ var c = ":host{--sbb-seat-reservation-area-border-radius: var(--sbb-border-width-4x);--sbb-seat-reservation-area-rotation: 0;display:flex;justify-content:center;align-items:center;height:calc(var(--sbb-seat-reservation-area-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));width:calc(var(--sbb-seat-reservation-area-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem));border:var(--sbb-border-width-1x) solid var(--sbb-color-graphite);border:var(--sbb-border-width-1x) solid light-dark(var(--sbb-color-graphite),var(--sbb-color-granite));border-radius:var(--sbb-seat-reservation-area-border-radius);position:absolute;inset-block-start:calc(var(--sbb-seat-reservation-area-top) * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-inline-start:calc(var(--sbb-seat-reservation-area-left) * var(--sbb-seat-reservation-one-px-rem, .0625rem));rotate:calc(var(--sbb-seat-reservation-area-rotation) * 1deg);line-height:normal;background-color:var(--sbb-background-color-2)}:host([background=dark]){background-color:var(--sbb-color-milk);background-color:light-dark(var(--sbb-color-milk),var(--sbb-color-iron))}:host([mounting=upper-border]){border-block-start-width:0;border-radius:0 0 var(--sbb-seat-reservation-area-border-radius) var(--sbb-seat-reservation-area-border-radius)}:host([mounting=lower-border]){border-block-end-width:0;border-radius:var(--sbb-seat-reservation-area-border-radius) var(--sbb-seat-reservation-area-border-radius) 0 0}:host([mounting=upper-to-lower-border]){border-block-start:none;border-block-end:none;border-radius:0}:host(.sbb-seat-reservation-area--cursor-pointer){cursor:var(--sbb-cursor-pointer)}", l = (() => {
9
+ let l = n, u, d = [], f = [], p, m = [], h = [];
10
+ return class extends l {
11
+ static {
12
+ let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(l[Symbol.metadata] ?? null) : void 0;
13
+ u = [r(), s({ reflect: !0 })], p = [r(), s({ reflect: !0 })], e(this, null, u, {
14
+ kind: "accessor",
15
+ name: "mounting",
16
+ static: !1,
17
+ private: !1,
18
+ access: {
19
+ has: (e) => "mounting" in e,
20
+ get: (e) => e.mounting,
21
+ set: (e, t) => {
22
+ e.mounting = t;
23
+ }
24
+ },
25
+ metadata: t
26
+ }, d, f), e(this, null, p, {
27
+ kind: "accessor",
28
+ name: "background",
29
+ static: !1,
30
+ private: !1,
31
+ access: {
32
+ has: (e) => "background" in e,
33
+ get: (e) => e.background,
34
+ set: (e, t) => {
35
+ e.background = t;
36
+ }
37
+ },
38
+ metadata: t
39
+ }, m, h), t && Object.defineProperty(this, Symbol.metadata, {
40
+ enumerable: !0,
41
+ configurable: !0,
42
+ writable: !0,
43
+ value: t
44
+ });
45
+ }
46
+ static {
47
+ this.elementName = "sbb-seat-reservation-area";
48
+ }
49
+ static {
50
+ this.styles = [i, o(c)];
51
+ }
52
+ #e = t(this, d, "free");
53
+ get mounting() {
54
+ return this.#e;
55
+ }
56
+ set mounting(e) {
57
+ this.#e = e;
58
+ }
59
+ #t = (t(this, f), t(this, m, "light"));
60
+ get background() {
61
+ return this.#t;
62
+ }
63
+ set background(e) {
64
+ this.#t = e;
65
+ }
66
+ render() {
67
+ return a`<slot></slot>`;
68
+ }
69
+ constructor() {
70
+ super(...arguments), t(this, h);
71
+ }
72
+ };
73
+ })();
74
+ //#endregion
75
+ export { l as t };
@@ -0,0 +1,102 @@
1
+ import { __esDecorate as e, __runInitializers as t } from "tslib";
2
+ import { SbbElement as n } from "@sbb-esta/lyne-elements/core/base-elements.js";
3
+ import { SbbLanguageController as r } from "@sbb-esta/lyne-elements/core/controllers.js";
4
+ import { forceType as i } from "@sbb-esta/lyne-elements/core/decorators.js";
5
+ import { boxSizingStyles as a } from "@sbb-esta/lyne-elements/core/styles.js";
6
+ import "@sbb-esta/lyne-elements/icon.js";
7
+ import { html as o, isServer as s, unsafeCSS as c } from "lit";
8
+ import { property as l } from "lit/decorators.js";
9
+ import { mapIconToSvg as u } from "./seat-reservation/common/mapper.js";
10
+ import { classMap as d } from "lit/directives/class-map.js";
11
+ import { getI18nSeatReservation as f } from "./seat-reservation/common/translations.js";
12
+ //#region src/elements-experimental/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.scss?inline
13
+ var p = ":host{--sbb-seat-reservation-graphic-max-width: auto;--sbb-seat-reservation-graphic-max-height: auto;--sbb-seat-reservation-graphic-width: 16;--sbb-seat-reservation-graphic-height: 16;--sbb-seat-reservation-graphic-rotation: 0;--sbb-seat-reservation-graphic-inverse-rotation: 0;--sbb-seat-reservation-graphic-padding-percent: 1;--sbb-seat-reservation-graphic-position: initial;--sbb-seat-reservation-graphic-left: 0;--sbb-seat-reservation-graphic-top: 0;--sbb-icon-svg-width: calc( var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem) );--sbb-icon-svg-height: calc( var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem) );display:flex;justify-content:center;align-items:center;width:calc(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem));height:calc(var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem));position:var(--sbb-seat-reservation-graphic-position);inset-inline-start:calc(var(--sbb-seat-reservation-graphic-left) * var(--sbb-seat-reservation-one-px-rem, .0625rem));inset-block-start:calc(var(--sbb-seat-reservation-graphic-top) * var(--sbb-seat-reservation-one-px-rem, .0625rem))}:host(.auto-width){--sbb-icon-svg-width: auto;max-width:calc(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem));width:auto}:host(.sbb-sr-graphic__dimension--square-dim){--sbb-icon-svg-width: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)));--sbb-icon-svg-height: min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem), var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent), min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem), var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)));width:min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem),var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent),min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem),var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)));height:min(min(var(--sbb-seat-reservation-graphic-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem),var(--sbb-seat-reservation-graphic-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)) * var(--sbb-seat-reservation-graphic-padding-percent),min(var(--sbb-seat-reservation-graphic-max-width) * var(--sbb-seat-reservation-one-px-rem, .0625rem),var(--sbb-seat-reservation-graphic-max-height) * var(--sbb-seat-reservation-one-px-rem, .0625rem)))}:host(.sbb-seat-reservation-graphic--cursor-pointer){cursor:var(--sbb-cursor-pointer)}.sbb-sr-icon,.sbb-sr-graphic{width:inherit;height:inherit;transform-origin:center;rotate:calc(var(--sbb-seat-reservation-graphic-rotation) * 1deg)}.sbb-sr-icon{color:var(--sbb-color-granite);color:light-dark(var(--sbb-color-granite),var(--sbb-color-graphite))}.sbb-sr-graphic svg{width:100%;height:100%}.sbb-sr-graphic svg .fix-rotation-inverse{transform-origin:center;rotate:calc(var(--sbb-seat-reservation-graphic-inverse-rotation) * 1deg)}@media(forced-colors:active){.sbb-sr-graphic svg:not(.color-immutable) [fill]:not([fill=none]){fill:currentcolor}.sbb-sr-graphic .no-bg{fill:transparent}}", m = (() => {
14
+ let m = n, h, g = [], _ = [], v, y = [], b = [];
15
+ return class extends m {
16
+ constructor() {
17
+ super(...arguments), this.#e = t(this, g, ""), this.#t = (t(this, _), t(this, y, !1)), this._language = (t(this, b), new r(this));
18
+ }
19
+ static {
20
+ let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(m[Symbol.metadata] ?? null) : void 0;
21
+ h = [i(), l({ attribute: "name" })], v = [i(), l({
22
+ attribute: "stretch",
23
+ type: Boolean
24
+ })], e(this, null, h, {
25
+ kind: "accessor",
26
+ name: "name",
27
+ static: !1,
28
+ private: !1,
29
+ access: {
30
+ has: (e) => "name" in e,
31
+ get: (e) => e.name,
32
+ set: (e, t) => {
33
+ e.name = t;
34
+ }
35
+ },
36
+ metadata: t
37
+ }, g, _), e(this, null, v, {
38
+ kind: "accessor",
39
+ name: "stretch",
40
+ static: !1,
41
+ private: !1,
42
+ access: {
43
+ has: (e) => "stretch" in e,
44
+ get: (e) => e.stretch,
45
+ set: (e, t) => {
46
+ e.stretch = t;
47
+ }
48
+ },
49
+ metadata: t
50
+ }, y, b), t && Object.defineProperty(this, Symbol.metadata, {
51
+ enumerable: !0,
52
+ configurable: !0,
53
+ writable: !0,
54
+ value: t
55
+ });
56
+ }
57
+ static {
58
+ this.elementName = "sbb-seat-reservation-graphic";
59
+ }
60
+ static {
61
+ this.styles = [a, c(p)];
62
+ }
63
+ #e;
64
+ get name() {
65
+ return this.#e;
66
+ }
67
+ set name(e) {
68
+ this.#e = e;
69
+ }
70
+ #t;
71
+ get stretch() {
72
+ return this.#t;
73
+ }
74
+ set stretch(e) {
75
+ this.#t = e;
76
+ }
77
+ render() {
78
+ let e = u[this.name];
79
+ return !e?.svg && !e?.svgName ? null : o`<span
80
+ class="${d({
81
+ "sbb-sr-icon": !!e.svgName,
82
+ "sbb-sr-graphic": !!e.svg
83
+ })}"
84
+ >
85
+ ${e.svgName ? o` <sbb-icon
86
+ name="${e.svgName || ""}"
87
+ aria-hidden="false"
88
+ aria-label="${f(e.svgName, this._language.current)}"
89
+ ></sbb-icon>` : o`${this._getSvgElement(e.svg)}`}
90
+ </span>`;
91
+ }
92
+ _getSvgElement(e) {
93
+ if (!s) {
94
+ let t = new DOMParser(), n = e || "<svg></svg>", r = t.parseFromString(n, "image/svg+xml").firstElementChild;
95
+ return this.stretch && r?.nodeName.toLowerCase() === "svg" && r.setAttribute("preserveAspectRatio", "none"), r;
96
+ }
97
+ return null;
98
+ }
99
+ };
100
+ })();
101
+ //#endregion
102
+ export { m as t };