@sbb-esta/lyne-elements-experimental 5.0.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/autocomplete-grid.js +1 -10
- package/autocomplete-grid.pure.js +12 -7
- package/core.js +31 -5
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +0 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts +4 -5
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts +1 -2
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts +2 -3
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts +1 -2
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts +1 -2
- package/development/autocomplete-grid.d.ts +0 -1
- package/development/autocomplete-grid.js +5 -10
- package/development/autocomplete-grid.pure.d.ts +0 -1
- package/development/autocomplete-grid.pure.js +328 -7
- package/development/core/datetime/date-helper.d.ts +0 -1
- package/development/core/timetable/access-leg-helper.d.ts +3 -3
- package/development/core/timetable/timetable-helper.d.ts +1 -2
- package/development/core/timetable/timetable-properties.d.ts +2 -1
- package/development/core.d.ts +0 -1
- package/development/core.js +1195 -5
- package/development/journey-summary/journey-summary.component.d.ts +3 -4
- package/development/journey-summary.d.ts +0 -1
- package/development/journey-summary.js +5 -5
- package/development/journey-summary.pure.d.ts +0 -1
- package/development/journey-summary.pure.js +2605 -2
- package/development/pearl-chain/pearl-chain.component.d.ts +2 -3
- package/development/pearl-chain-time/pearl-chain-time.component.d.ts +3 -4
- package/development/pearl-chain-time.d.ts +0 -1
- package/development/pearl-chain-time.js +5 -5
- package/development/pearl-chain-time.pure.d.ts +0 -1
- package/development/pearl-chain-time.pure.js +2582 -2
- package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts +1 -2
- package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts +1 -2
- package/development/pearl-chain-vertical-item.d.ts +0 -1
- package/development/pearl-chain-vertical-item.js +5 -5
- package/development/pearl-chain-vertical-item.pure.d.ts +0 -1
- package/development/pearl-chain-vertical-item.pure.js +132 -2
- package/development/pearl-chain-vertical.d.ts +0 -1
- package/development/pearl-chain-vertical.js +5 -5
- package/development/pearl-chain-vertical.pure.d.ts +0 -1
- package/development/pearl-chain-vertical.pure.js +31 -2
- package/development/pearl-chain.d.ts +0 -1
- package/development/pearl-chain.js +5 -5
- package/development/pearl-chain.pure.d.ts +0 -1
- package/development/pearl-chain.pure.js +619 -2
- package/development/seat-reservation/common/mapper/icon-mapper.d.ts +0 -1
- package/development/seat-reservation/common/mapper/mapper.d.ts +1 -2
- package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-bus.private.d.ts +68 -0
- package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-decks.private.d.ts +122 -0
- package/development/seat-reservation/common/mapper/sample-data/seat-reservation-sample-data-train.private.d.ts +68 -0
- package/development/seat-reservation/common/mapper.d.ts +0 -1
- package/development/seat-reservation/common/svgs.d.ts +20 -21
- package/development/seat-reservation/common/translations/i18n.d.ts +0 -1
- package/development/seat-reservation/common/translations.d.ts +0 -1
- package/development/seat-reservation/common/types.d.ts +0 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +2 -3
- package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts +2 -3
- package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts +1 -2
- package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts +2 -3
- package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts +3 -4
- package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts +2 -3
- package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +3 -4
- package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts +1 -2
- package/development/seat-reservation.d.ts +0 -1
- package/development/seat-reservation.js +5 -16
- package/development/seat-reservation.pure.d.ts +0 -1
- package/development/seat-reservation.pure.js +16019 -14
- package/development/timetable-duration/timetable-duration.component.d.ts +1 -2
- package/development/timetable-duration.d.ts +0 -1
- package/development/timetable-duration.js +5 -5
- package/development/timetable-duration.pure.d.ts +0 -1
- package/development/timetable-duration.pure.js +97 -2
- package/development/timetable-row/timetable-row.component.d.ts +3 -4
- package/development/timetable-row.d.ts +0 -1
- package/development/timetable-row.js +5 -5
- package/development/timetable-row.pure.d.ts +0 -1
- package/development/timetable-row.pure.js +3005 -2
- package/journey-summary.js +1 -6
- package/journey-summary.pure.js +55 -2
- package/package.json +2 -2
- package/pearl-chain-time.js +1 -6
- package/pearl-chain-time.pure.js +28 -2
- package/pearl-chain-vertical-item.js +1 -6
- package/pearl-chain-vertical-item.pure.js +26 -2
- package/pearl-chain-vertical.js +1 -6
- package/pearl-chain-vertical.pure.js +6 -2
- package/pearl-chain.js +1 -6
- package/pearl-chain.pure.js +27 -2
- package/seat-reservation.js +1 -16
- package/seat-reservation.pure.js +468 -14
- package/timetable-duration.js +1 -6
- package/timetable-duration.pure.js +9 -2
- package/timetable-row.js +1 -6
- package/timetable-row.pure.js +113 -2
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +0 -65
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +0 -44
- package/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +0 -2
- package/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +0 -21
- package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +0 -2
- package/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +0 -2
- package/autocomplete-grid-cell.component-79IjA__I.js +0 -23
- package/autocomplete-grid-option.component-DUFBhQwI.js +0 -35
- package/autocomplete-grid-row.component-B3U15Rwa.js +0 -26
- package/core/datetime/date-helper.js +0 -2
- package/core/timetable/access-leg-helper.js +0 -96
- package/core/timetable/timetable-helper.js +0 -10
- package/core/timetable/timetable-properties.js +0 -0
- package/date-helper-DNzMLcyb.js +0 -185
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +0 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +0 -118
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.d.ts.map +0 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.js +0 -69
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts.map +0 -1
- package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.js +0 -2
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.d.ts.map +0 -1
- package/development/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js +0 -30
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.d.ts.map +0 -1
- package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.js +0 -2
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts.map +0 -1
- package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.js +0 -2
- package/development/autocomplete-grid-cell.component-BbdELDro.js +0 -33
- package/development/autocomplete-grid-option.component-C7WuqRit.js +0 -57
- package/development/autocomplete-grid-row.component-DoXbOsQM.js +0 -38
- package/development/autocomplete-grid.d.ts.map +0 -1
- package/development/autocomplete-grid.pure.d.ts.map +0 -1
- package/development/core/datetime/date-helper.d.ts.map +0 -1
- package/development/core/datetime/date-helper.js +0 -2
- package/development/core/timetable/access-leg-helper.d.ts.map +0 -1
- package/development/core/timetable/access-leg-helper.js +0 -147
- package/development/core/timetable/timetable-helper.d.ts.map +0 -1
- package/development/core/timetable/timetable-helper.js +0 -19
- package/development/core/timetable/timetable-properties.d.ts.map +0 -1
- package/development/core/timetable/timetable-properties.js +0 -0
- package/development/core.d.ts.map +0 -1
- package/development/date-helper-BcTDWVeP.js +0 -539
- package/development/differenceInMinutes-CxAbGYQ3.js +0 -110
- package/development/format-Cx3zmmaF.js +0 -1848
- package/development/isValid-40Olgzo1.js +0 -178
- package/development/journey-summary/journey-summary.component.d.ts.map +0 -1
- package/development/journey-summary/journey-summary.component.js +0 -2
- package/development/journey-summary.component-BsC7wBIn.js +0 -341
- package/development/journey-summary.d.ts.map +0 -1
- package/development/journey-summary.pure.d.ts.map +0 -1
- package/development/mapper-BrZOqqfe.js +0 -11454
- package/development/pearl-chain/pearl-chain.component.d.ts.map +0 -1
- package/development/pearl-chain/pearl-chain.component.js +0 -2
- package/development/pearl-chain-time/pearl-chain-time.component.d.ts.map +0 -1
- package/development/pearl-chain-time/pearl-chain-time.component.js +0 -2
- package/development/pearl-chain-time.component-C-CuC1ke.js +0 -317
- package/development/pearl-chain-time.d.ts.map +0 -1
- package/development/pearl-chain-time.pure.d.ts.map +0 -1
- package/development/pearl-chain-vertical/pearl-chain-vertical.component.d.ts.map +0 -1
- package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +0 -2
- package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.d.ts.map +0 -1
- package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +0 -2
- package/development/pearl-chain-vertical-item.component-CLu9QrqJ.js +0 -131
- package/development/pearl-chain-vertical-item.d.ts.map +0 -1
- package/development/pearl-chain-vertical-item.pure.d.ts.map +0 -1
- package/development/pearl-chain-vertical.component-DbPz5k_R.js +0 -30
- package/development/pearl-chain-vertical.d.ts.map +0 -1
- package/development/pearl-chain-vertical.pure.d.ts.map +0 -1
- package/development/pearl-chain.component-10OsJZIX.js +0 -318
- package/development/pearl-chain.d.ts.map +0 -1
- package/development/pearl-chain.pure.d.ts.map +0 -1
- package/development/seat-reservation/common/mapper/icon-mapper.d.ts.map +0 -1
- package/development/seat-reservation/common/mapper/icon-mapper.js +0 -170
- package/development/seat-reservation/common/mapper/mapper.d.ts.map +0 -1
- package/development/seat-reservation/common/mapper/mapper.js +0 -2
- package/development/seat-reservation/common/mapper.d.ts.map +0 -1
- package/development/seat-reservation/common/mapper.js +0 -3
- package/development/seat-reservation/common/svgs.d.ts.map +0 -1
- package/development/seat-reservation/common/svgs.js +0 -2
- package/development/seat-reservation/common/translations/i18n.d.ts.map +0 -1
- package/development/seat-reservation/common/translations/i18n.js +0 -1120
- package/development/seat-reservation/common/translations.d.ts.map +0 -1
- package/development/seat-reservation/common/translations.js +0 -2
- package/development/seat-reservation/common/types.d.ts.map +0 -1
- package/development/seat-reservation/common/types.js +0 -0
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +0 -1476
- package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation/seat-reservation.component.js +0 -2
- package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +0 -2
- package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +0 -2
- package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +0 -2
- package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +0 -2
- package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +0 -2
- package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +0 -1
- package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +0 -2
- package/development/seat-reservation-area.component-DPhQJFid.js +0 -94
- package/development/seat-reservation-graphic.component-0LYsmerm.js +0 -129
- package/development/seat-reservation-navigation-coach.component-B97jKD7Y.js +0 -438
- package/development/seat-reservation-navigation-services.component-Cx0Is97w.js +0 -159
- package/development/seat-reservation-place-control.component-DaL1g8WH.js +0 -431
- package/development/seat-reservation-scoped.component-BHbORVsR.js +0 -24
- package/development/seat-reservation.component-DI9pSlzt.js +0 -473
- package/development/seat-reservation.d.ts.map +0 -1
- package/development/seat-reservation.pure.d.ts.map +0 -1
- package/development/svgs-Dj-RKmRs.js +0 -28
- package/development/timetable-duration/timetable-duration.component.d.ts.map +0 -1
- package/development/timetable-duration/timetable-duration.component.js +0 -2
- package/development/timetable-duration.component-Chk5D4Is.js +0 -96
- package/development/timetable-duration.d.ts.map +0 -1
- package/development/timetable-duration.pure.d.ts.map +0 -1
- package/development/timetable-row/timetable-row.component.d.ts.map +0 -1
- package/development/timetable-row/timetable-row.component.js +0 -2
- package/development/timetable-row.component-nzrQzxL6.js +0 -736
- package/development/timetable-row.d.ts.map +0 -1
- package/development/timetable-row.pure.d.ts.map +0 -1
- package/development/toDate-CDWut5fS.js +0 -150
- package/differenceInMinutes-BAZ-Fham.js +0 -27
- package/format-DjgG1QPc.js +0 -1103
- package/isValid-CXnsFZVu.js +0 -36
- package/journey-summary/journey-summary.component.js +0 -2
- package/journey-summary.component-DNoO3OCf.js +0 -265
- package/mapper-Dcou8VEf.js +0 -11382
- package/pearl-chain/pearl-chain.component.js +0 -2
- package/pearl-chain-time/pearl-chain-time.component.js +0 -2
- package/pearl-chain-time.component-BuvA6IE1.js +0 -237
- package/pearl-chain-vertical/pearl-chain-vertical.component.js +0 -2
- package/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +0 -2
- package/pearl-chain-vertical-item.component-QZ4s8Jbv.js +0 -106
- package/pearl-chain-vertical.component-Dc3vaHsQ.js +0 -20
- package/pearl-chain.component-DtGXXkY6.js +0 -190
- package/seat-reservation/common/mapper/icon-mapper.js +0 -72
- package/seat-reservation/common/mapper/mapper.js +0 -2
- package/seat-reservation/common/mapper.js +0 -3
- package/seat-reservation/common/svgs.js +0 -2
- package/seat-reservation/common/translations/i18n.js +0 -1085
- package/seat-reservation/common/translations.js +0 -2
- package/seat-reservation/common/types.js +0 -0
- package/seat-reservation/seat-reservation/seat-reservation-base-element.js +0 -926
- package/seat-reservation/seat-reservation/seat-reservation.component.js +0 -2
- package/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +0 -2
- package/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +0 -2
- package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js +0 -2
- package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +0 -2
- package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +0 -2
- package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.js +0 -2
- package/seat-reservation-area.component-G9lHb7S8.js +0 -73
- package/seat-reservation-graphic.component-BXFcQDxY.js +0 -102
- package/seat-reservation-navigation-coach.component-BXy8EkJe.js +0 -338
- package/seat-reservation-navigation-services.component-49XmV9rv.js +0 -124
- package/seat-reservation-place-control.component-DToIW328.js +0 -317
- package/seat-reservation-scoped.component-D8dAmrP7.js +0 -16
- package/seat-reservation.component--0XnrCkk.js +0 -372
- package/svgs-D4fuYTHV.js +0 -26
- package/timetable-duration/timetable-duration.component.js +0 -2
- package/timetable-duration.component-iMCvh1zr.js +0 -61
- package/timetable-row/timetable-row.component.js +0 -2
- package/timetable-row.component-mNKmhRmP.js +0 -566
- package/toDate-BhNUyM4s.js +0 -16
package/autocomplete-grid.js
CHANGED
|
@@ -1,10 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t } from "./autocomplete-grid-cell.component-79IjA__I.js";
|
|
3
|
-
import { SbbAutocompleteGridOptgroupElement as n } from "./autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.js";
|
|
4
|
-
import { n as r, t as i } from "./autocomplete-grid-option.component-DUFBhQwI.js";
|
|
5
|
-
import { t as a } from "./autocomplete-grid-row.component-B3U15Rwa.js";
|
|
6
|
-
import { SbbAutocompleteGridElement as o } from "./autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js";
|
|
7
|
-
import "./autocomplete-grid.pure.js";
|
|
8
|
-
o.define(), e.define(), t.define(), n.define(), i.define(), a.define();
|
|
9
|
-
//#endregion
|
|
10
|
-
export { e as SbbAutocompleteGridButtonElement, t as SbbAutocompleteGridCellElement, o as SbbAutocompleteGridElement, n as SbbAutocompleteGridOptgroupElement, i as SbbAutocompleteGridOptionElement, a as SbbAutocompleteGridRowElement, r as autocompleteGridOptionId };
|
|
1
|
+
import{SbbAutocompleteGridButtonElement as e,SbbAutocompleteGridCellElement as t,SbbAutocompleteGridElement as n,SbbAutocompleteGridOptgroupElement as r,SbbAutocompleteGridOptionElement as i,SbbAutocompleteGridRowElement as a}from"./autocomplete-grid.pure.js";export*from"./autocomplete-grid.pure.js";n.define(),e.define(),t.define(),r.define(),i.define(),a.define();
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import{miniButtonStyle as e}from"@sbb-esta/lyne-elements/button.pure.js";import{SbbActionBaseElement as t,SbbDisabledMixin as n,SbbElement as r,SbbNegativeMixin as i,SbbPropertyWatcherController as a,getNextElementIndex as o,isEventPrevented as s,isSafari as c,setAriaComboBoxAttributes as l,ɵstateController as u}from"@sbb-esta/lyne-elements/core.js";import{SbbIconNameMixin as d}from"@sbb-esta/lyne-elements/icon.pure.js";import{html as f,isServer as p,unsafeCSS as m}from"lit";import{SbbOptgroupBaseElement as h,SbbOptionBaseElement as g}from"@sbb-esta/lyne-elements/option.pure.js";import{SbbAutocompleteBaseElement as _}from"@sbb-esta/lyne-elements/autocomplete.pure.js";let v=0;var y=class extends n(i(d(t))){static{this.elementName=`sbb-autocomplete-grid-button`}static{this.role=`button`}static{this.styles=[e]}get option(){return this.closest(`sbb-autocomplete-grid-row`)?.querySelector(`sbb-autocomplete-grid-option`)||null}get optgroup(){return this.closest(`sbb-autocomplete-grid-optgroup`)}constructor(){super(),this._handleButtonClick=async e=>{await s(e)||this.closest(`form`)},this.internals.states.add(`button`),p||(this.setupBaseEventHandlers(),this.addEventListener(`click`,this._handleButtonClick),this.addController(new a(this,()=>this.closest(`sbb-autocomplete-grid-optgroup`),{disabled:()=>this._updateInternals()})))}isDisabledExternally(){return this.optgroup?.disabled??!1}renderTemplate(){return super.renderIconSlot()}connectedCallback(){super.connectedCallback(),this.id||=`sbb-autocomplete-grid-button-${++v}`,this.removeAttribute(`tabindex`)}willUpdate(e){super.willUpdate(e),e.has(`disabled`)&&this._updateInternals()}_updateInternals(){this.disabled||this.optgroup?.disabled?(this.internals.states.add(`disabled`),this.internals.ariaDisabled=`true`):(this.internals.states.delete(`disabled`),this.internals.ariaDisabled=null)}},b=`:host{--sbb-autocomplete-grid-cell-gap:var(--sbb-spacing-fixed-6x);display:block}.sbb-autocomplete-grid-cell{column-gap:var(--sbb-autocomplete-grid-cell-gap);display:flex}
|
|
2
|
+
`,x=class extends r{static{this.elementName=`sbb-autocomplete-grid-cell`}static{this.role=`gridcell`}static{this.styles=[m(b)]}render(){return f`
|
|
3
|
+
<span class="sbb-autocomplete-grid-cell">
|
|
4
|
+
<slot></slot>
|
|
5
|
+
</span>
|
|
6
|
+
`}},S=class extends h{static{this.elementName=`sbb-autocomplete-grid-optgroup`}get options(){return Array.from(this.querySelectorAll?.(`sbb-autocomplete-grid-option`)??[])}constructor(){super(),this.addController(new a(this,()=>this.closest(`sbb-autocomplete-grid`),{negative:e=>{this.toggleState(`negative`,e.negative),this.requestUpdate()}}))}getAutocompleteParent(){return this.closest?.(`sbb-autocomplete-grid`)||null}},C=`:host{--sbb-focus-outline-offset:var(--sbb-option-focus-outline-offset);display:block}:host(:is(:state(negative),[state--negative])){--sbb-option-color:var(--sbb-color-3-negative);--sbb-option-icon-color:var(--sbb-color-5)}:host(:is(:state(size-s),[state--size-s])){--sbb-option-min-height:var(--sbb-size-element-xxs);--sbb-option-focus-outline-offset:calc(-1 * var(--sbb-spacing-fixed-1x));--sbb-option-focus-outline-inset:0 var(--sbb-spacing-fixed-1x)}:host(:is(:state(size-m),[state--size-m])){--sbb-option-min-height:var(--sbb-size-element-s);--sbb-option-focus-outline-offset:inherit;--sbb-option-focus-outline-inset:var(--sbb-spacing-fixed-1x)}:host(:not(:is(:state(disable-highlight),[state--disable-highlight]))) .sbb-option__label slot{display:none}:host(:is(:state(active),[state--active])){--sbb-option-focus-outline-color:var(--sbb-focus-outline-color)}.sbb-option{font-size:var(--sbb-option-font-size);letter-spacing:var(--sbb-typo-letter-spacing-text);align-items:center;column-gap:var(--sbb-option-column-gap);min-height:var(--sbb-option-min-height);padding-inline:var(--sbb-option-padding-inline);color:var(--sbb-option-color);justify-content:start;display:flex;position:relative}.sbb-option:after{content:"";inset:var(--sbb-option-focus-outline-inset);pointer-events:none;border:var(--sbb-focus-outline-width) solid var(--sbb-option-focus-outline-color);border-radius:var(--sbb-option-border-radius);display:block;position:absolute}:host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight{font-weight:700}@media (forced-colors:active){:host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight{color:highlight}}.sbb-option__icon{min-width:var(--sbb-size-icon-ui-small);min-height:var(--sbb-size-icon-ui-small);color:var(--sbb-option-icon-color);display:flex}:host(:not(:is(:state(slotted-icon),[state--slotted-icon]),:is(:state(has-icon-name),[state--has-icon-name]))) .sbb-option__icon{display:var(--sbb-option-icon-container-display,none)}.sbb-option__label{text-overflow:var(--sbb-option-text-overflow);overflow:var(--sbb-option-overflow);white-space:var(--sbb-option-white-space,initial)}
|
|
7
|
+
`;const w=`sbb-autocomplete-grid-option`;var T=class extends g{static{this.elementName=`sbb-autocomplete-grid-option`}static{this.role=`gridcell`}static{this.styles=[m(C)]}constructor(){super(),this.addController(new a(this,()=>this.closest(`sbb-autocomplete-grid-optgroup`),{disabled:e=>{this.disabledFromGroup=e.disabled,u(this.closest?.(`sbb-autocomplete-grid-row`))?.toggle(`disabled`,this.disabled||this.disabledFromGroup),this.updateAriaDisabled()},label:e=>this.groupLabel=e.label}))}willUpdate(e){super.willUpdate(e),e.has(`disabled`)&&(u(this.closest?.(`sbb-autocomplete-grid-row`))?.toggle(`disabled`,this.disabled||this.disabledFromGroup),this.updateAriaDisabled())}selectByClick(e){if(this.disabled||this.disabledFromGroup){e.stopPropagation();return}this.selectViaUserInteraction(!0)}},E=`:host{display:block}:host(:is(:state(negative),[state--negative])){--sbb-autocomplete-grid-row-color:var(--sbb-color-3-negative);--sbb-autocomplete-grid-row-background-color-hover:var(--sbb-background-color-3-negative);--sbb-autocomplete-grid-row-disabled-border-color:var(--sbb-border-color-5);--sbb-autocomplete-grid-row-disabled-background-color:var(--sbb-background-color-3-negative);--sbb-focus-outline-color:var(--sbb-focus-outline-color-dark)}@media (any-hover:hover){:host(:hover:not(:is(:state(disabled),[state--disabled]))){--sbb-autocomplete-grid-row-background-color:var(--sbb-autocomplete-grid-row-background-color-hover)}}:host(:is(:state(disabled),[state--disabled])){--sbb-autocomplete-grid-row-cursor:var(--sbb-cursor-default)}@media (forced-colors:active){:host(:is(:state(disabled),[state--disabled])){--sbb-autocomplete-grid-row-color:GrayText}}::slotted(sbb-autocomplete-grid-option){margin-right:calc(-1 * var(--sbb-spacing-fixed-2x));flex:auto;overflow-x:hidden}.sbb-autocomplete-grid-row{align-items:center;justify-content:var(--sbb-autocomplete-grid-row-justify-content);gap:var(--sbb-spacing-fixed-6x);color:var(--sbb-autocomplete-grid-row-color);background-color:var(--sbb-autocomplete-grid-row-background-color,inherit);cursor:var(--sbb-autocomplete-grid-row-cursor);-webkit-tap-highlight-color:transparent;-webkit-text-fill-color:var(--sbb-autocomplete-grid-row-color);padding-inline-end:var(--sbb-autocomplete-grid-row-padding-inline-end);display:flex}:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row{z-index:0;position:relative}:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row:before{content:"";border:var(--sbb-border-width-1x) dashed var(--sbb-autocomplete-grid-row-disabled-border-color);border-radius:var(--sbb-border-radius-2x);background-color:var(--sbb-autocomplete-grid-row-disabled-background-color);z-index:-1;display:block;position:absolute;inset:.375rem}@media (forced-colors:active){:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row:before{border-color:graytext}}
|
|
8
|
+
`;let D=0;var O=class extends r{static{this.elementName=`sbb-autocomplete-grid-row`}static{this.role=`row`}static{this.styles=[m(E)]}connectedCallback(){super.connectedCallback(),this.id||=`sbb-autocomplete-grid-row-${++D}`}render(){return f`
|
|
9
|
+
<span class="sbb-autocomplete-grid-row">
|
|
10
|
+
<slot></slot>
|
|
11
|
+
</span>
|
|
12
|
+
`}};let k=0;const A=c;var j=class extends _{constructor(){super(...arguments),this.overlayId=`sbb-autocomplete-grid-${++k}`,this.panelRole=`grid`,this._activeColumnIndex=0}static{this.elementName=`sbb-autocomplete-grid`}static{this.role=A?`grid`:null}get options(){return Array.from(this.querySelectorAll?.(`sbb-autocomplete-grid-option`)??[])}syncNegative(){this.querySelectorAll?.(`sbb-divider, sbb-autocomplete-grid-button, sbb-option-hint`).forEach(e=>e.negative=this.negative),this.querySelectorAll?.(`sbb-autocomplete-grid-row, sbb-autocomplete-grid-option, sbb-autocomplete-grid-optgroup`).forEach(e=>u(e).toggle(`negative`,this.negative))}openedPanelKeyboardInteraction(e){if(this.isOpen)switch(e.key){case`Enter`:this.selectByKeyboard(e);break;case`ArrowDown`:case`ArrowUp`:this.setNextActiveOption(e);break;case`ArrowRight`:case`ArrowLeft`:this._setNextHorizontalActiveElement(e);break}}selectByKeyboard(e){this.activeOption&&(e.preventDefault(),this._activeColumnIndex===0?this.activeOption.selectViaUserInteraction(!0):this.activeOption.closest(`sbb-autocomplete-grid-row`)?.querySelectorAll(`sbb-autocomplete-grid-button`)[this._activeColumnIndex-1]?.click())}setNextActiveOption(e){let t=this.options.filter(e=>!e.matches(`:is(:state(disabled),[state--disabled])`));if(this.activeOption?.setActive(!1),this.triggerElement.ariaActiveDescendantElement=null,Array.from(this.querySelectorAll?.(`sbb-autocomplete-grid-row :is(:state(focus-visible),[state--focus-visible])`)??[]).forEach(e=>u(e).delete(`focus-visible`)),this._activeColumnIndex=0,!t.length){this.activeOption=null;return}let n=o(e,this.activeOption?t.indexOf(this.activeOption):-1,t.length);this.activeOption=t[n],this.activeOption.setActive(!0),this.triggerElement.ariaActiveDescendantElement=this.activeOption,this.activeOption.scrollIntoView({block:`nearest`}),e&&e.preventDefault(),this.autoSelectActiveOption&&e&&this.setPendingSelection(this.activeOption)}_setNextHorizontalActiveElement(e){if(!this.activeOption)return;let t=Array.from(this.activeOption?.closest(`sbb-autocomplete-grid-row`)?.querySelectorAll(`sbb-autocomplete-grid-option, sbb-autocomplete-grid-button`)??[])?.filter(e=>!e.matches(`:is(:state(disabled),[state--disabled])`));if(!t.length)return;let n=o(e,this._activeColumnIndex,t.length),r=t[n];r instanceof T?r.setActive(!0):u(r).add(`focus-visible`);let i=t[this._activeColumnIndex];i instanceof T?i.setActive(!1):u(i).delete(`focus-visible`),this.triggerElement.ariaActiveDescendantElement=r,r.scrollIntoView({block:`nearest`}),this._activeColumnIndex=n}resetActiveElement(){this._activeColumnIndex!==0&&this.activeOption?.closest(`sbb-autocomplete-grid-row`)?.querySelectorAll(`sbb-autocomplete-grid-button`).forEach(e=>u(e).delete(`focus-visible`)),this.activeOption?.setActive(!1),this.activeOption=null,this._activeColumnIndex=0,this.triggerElement&&(this.triggerElement.ariaActiveDescendantElement=null)}setTriggerAttributes(e){l(e,A?this.id:this.overlayId,!1,`grid`)}};export{y as SbbAutocompleteGridButtonElement,x as SbbAutocompleteGridCellElement,j as SbbAutocompleteGridElement,S as SbbAutocompleteGridOptgroupElement,T as SbbAutocompleteGridOptionElement,O as SbbAutocompleteGridRowElement,w as autocompleteGridOptionId};
|
package/core.js
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import{i18nDurationDay as e,i18nDurationHour as t,i18nDurationMinute as n,i18nWalkingDistanceArrival as r,i18nWalkingDistanceDeparture as i}from"@sbb-esta/lyne-elements/core.js";import{html as a,nothing as o}from"lit";import"@sbb-esta/lyne-elements/icon.pure.js";const s=6e4,c=36e5,l=Symbol.for(`constructDateFrom`);function u(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&l in e?e[l](t):e instanceof Date?new e.constructor(t):new Date(t)}function d(e,t){return u(t||e,e)}function f(e,t,n){let r=d(e,n?.in);return isNaN(t)?u(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function p(e,t,n){return u(n?.in||e,+d(e)+t)}function m(e,t,n){return p(e,t*c,n)}function h(e,t,n){let r=d(e,n?.in);return r.setTime(r.getTime()+t*s),r}function g(e){let t=d(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function _(e,...t){let n=u.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function v(e,t){let n=d(e,t?.in);return n.setHours(0,0,0,0),n}function y(e,t,n){let[r,i]=_(n?.in,e,t),a=v(r),o=v(i),s=+a-g(a),c=+o-g(o);return Math.round((s-c)/864e5)}function b(e,t,n){let[r,i]=_(n?.in,e,t),a=x(r,i),o=Math.abs(y(r,i));r.setDate(r.getDate()-a*o);let s=a*(o-Number(x(r,i)===-a));return s===0?0:s}function x(e,t){let n=e.getFullYear()-t.getFullYear()||e.getMonth()-t.getMonth()||e.getDate()-t.getDate()||e.getHours()-t.getHours()||e.getMinutes()-t.getMinutes()||e.getSeconds()-t.getSeconds()||e.getMilliseconds()-t.getMilliseconds();return n<0?-1:n>0?1:n}function S(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}function C(e,t,n){let[r,i]=_(n?.in,e,t),a=(r-+i)/c;return S(n?.roundingMethod)(a)}function w(e,t){return d(e)-+d(t)}function T(e,t,n){let r=w(e,t)/s;return S(n?.roundingMethod)(r)}function E(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function D(e){return!(!E(e)&&typeof e!=`number`||isNaN(+d(e)))}function O(e,t){let n=()=>u(t?.in,NaN),r=t?.additionalDigits??2,i=re(e),a;if(i.date){let e=A(i.date,r);a=j(e.restDateString,e.year)}if(!a||isNaN(+a))return n();let o=+a,s=0,c;if(i.time&&(s=N(i.time),isNaN(s)))return n();if(i.timezone){if(c=F(i.timezone),isNaN(c))return n()}else{let e=new Date(o+s),n=d(0,t?.in);return n.setFullYear(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()),n.setHours(e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()),n}return d(o+s+c,t?.in)}const k={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},ee=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,te=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,ne=/^([+-])(\d{2})(?::?(\d{2}))?$/;function re(e){let t={},n=e.split(k.dateTimeDelimiter),r;if(n.length>2)return t;if(/:/.test(n[0])?r=n[0]:(t.date=n[0],r=n[1],k.timeZoneDelimiter.test(t.date)&&(t.date=e.split(k.timeZoneDelimiter)[0],r=e.substr(t.date.length,e.length))),r){let e=k.timezone.exec(r);e?(t.time=r.replace(e[1],``),t.timezone=e[1]):t.time=r}return t}function A(e,t){let n=RegExp(`^(?:(\\d{4}|[+-]\\d{`+(4+t)+`})|(\\d{2}|[+-]\\d{`+(2+t)+`})$)`),r=e.match(n);if(!r)return{year:NaN,restDateString:``};let i=r[1]?parseInt(r[1]):null,a=r[2]?parseInt(r[2]):null;return{year:a===null?i:a*100,restDateString:e.slice((r[1]||r[2]).length)}}function j(e,t){if(t===null)return new Date(NaN);let n=e.match(ee);if(!n)return new Date(NaN);let r=!!n[4],i=M(n[1]),a=M(n[2])-1,o=M(n[3]),s=M(n[4]),c=M(n[5])-1;if(r)return V(t,s,c)?I(t,s,c):new Date(NaN);{let e=new Date(0);return!z(t,a,o)||!B(t,i)?new Date(NaN):(e.setUTCFullYear(t,a,Math.max(i,o)),e)}}function M(e){return e?parseInt(e):1}function N(e){let t=e.match(te);if(!t)return NaN;let n=P(t[1]),r=P(t[2]),i=P(t[3]);return H(n,r,i)?n*c+r*s+i*1e3:NaN}function P(e){return e&&parseFloat(e.replace(`,`,`.`))||0}function F(e){if(e===`Z`)return 0;let t=e.match(ne);if(!t)return 0;let n=t[1]===`+`?-1:1,r=parseInt(t[2]),i=t[3]&&parseInt(t[3])||0;return U(r,i)?n*(r*c+i*s):NaN}function I(e,t,n){let r=new Date(0);r.setUTCFullYear(e,0,4);let i=r.getUTCDay()||7,a=(t-1)*7+n+1-i;return r.setUTCDate(r.getUTCDate()+a),r}const L=[31,null,31,30,31,30,31,31,30,31,30,31];function R(e){return e%400==0||e%4==0&&e%100!=0}function z(e,t,n){return t>=0&&t<=11&&n>=1&&n<=(L[t]||(R(e)?29:28))}function B(e,t){return t>=1&&t<=(R(e)?366:365)}function V(e,t,n){return t>=1&&t<=53&&n>=0&&n<=6}function H(e,t,n){return e===24?t===0&&n===0:n>=0&&n<60&&t>=0&&t<60&&e>=0&&e<25}function U(e,t){return t>=0&&t<=59}function W(e,t,n){return f(e,-t,n)}function G(e,t,n){return m(e,-t,n)}function K(e){if(e&&D(O(e))){if(e.includes(`Z`))return new Date(e.replace(`Z`,``));if(e.includes(`T`)){let t=e.split(`T`);if(t[1]&&(t[1].includes(`+`)||t[1].includes(`-`)))return new Date(`${t[0]}T${t[1].split(/[+-]/)[0]}`)}return new Date(e)}}const q=(r,i)=>{let a=[],o=[],s=h(0,r),c=b(s,0);c>0&&(a.push(`${c} d`),i&&o.push(`${c} ${c>1?e.multiple.long[i]:e.single.long[i]}`),s=W(s,c));let l=C(s,0);l>0&&(a.push(`${l} h`),i&&o.push(`${l} ${l>1?t.multiple.long[i]:t.single.long[i]}`),s=G(s,l));let u=T(s,0);return u>0&&(a.push(`${u} min`),i&&o.push(`${u} ${u>1?n.multiple.long[i]:n.single.long[i]}`)),{short:a.join(` `),long:o.join(` `)}},J=e=>e?.__typename===`PTRideLeg`,Y=e=>e?.__typename===`PTConnectionLeg`,X=e=>{let t=e?.text?.template&&e.text.template.indexOf(`(`)+1,n=e?.text?.template?.substring(t||0,e?.text?.template.indexOf(`)`));return{duration:n&&+n.substring(0,n.length-1)||0,text:e?.text?.template?.split(`(`)[0]||``}};function Z(e,t){let n=Y(e)?e:null,r=n?n?.notices?.filter(e=>t.includes(e.name))[0]:null;return r?{duration:n?.duration||0,text:r?.text?.template||``,icon:`walk-small`}:null}function ie(e,t,n,r){let a=J(e)?e?.serviceJourney?.notices?.filter(e=>[`CI`].includes(e.name))[0]:null,o=a&&X(a);return a?{duration:(o?.duration||0)+(t||0),text:n?i[r]:o?.text||``,icon:n?`wheelchair-small`:`sa-${a?.name?.toLowerCase()}`}:null}function ae(e,t,n,i){let a=J(e)?e?.serviceJourney?.notices?.filter(e=>[`CO`].includes(e.name))[0]:null,o=a&&X(a);return a?{duration:(o?.duration||0)+(t||0),text:n?r[i]:o?.text||``,icon:n?`wheelchair-small`:`sa-${a?.name?.toLowerCase()}`}:null}function Q(e,t,n,s,c){return a`
|
|
2
|
+
<span class="sbb-pearl-chain__time-transfer sbb-pearl-chain__time-transfer--${t}-${c}">
|
|
3
|
+
<sbb-icon name=${t}></sbb-icon>
|
|
4
|
+
<time datetime=${e+`M`}>
|
|
5
|
+
<span class="sbb-screen-reader-only">
|
|
6
|
+
${!s&&c?c===`departure`?i[n]:r[n]:o}
|
|
7
|
+
${s?a`<span>${s}</span>`:o}
|
|
8
|
+
</span>
|
|
9
|
+
${e}
|
|
10
|
+
<span class="sbb-pearl-chain__time-walktime-prime-symbol" aria-hidden="true">'</span>
|
|
11
|
+
<span class="sbb-screen-reader-only">min</span>
|
|
12
|
+
</time>
|
|
13
|
+
</span>
|
|
14
|
+
`}function $(e,t,n,r){return a`
|
|
15
|
+
<span class="sbb-pearl-chain__time-walktime sbb-pearl-chain__time-walktime--${r}-${n}">
|
|
16
|
+
<sbb-icon name=${r}></sbb-icon>
|
|
17
|
+
<time datetime=${e+`M`}>
|
|
18
|
+
<span class="sbb-screen-reader-only">${t}</span>
|
|
19
|
+
${e}
|
|
20
|
+
<span class="sbb-pearl-chain__time-walktime-prime-symbol" aria-hidden="true">'</span>
|
|
21
|
+
</time>
|
|
22
|
+
</span>
|
|
23
|
+
`}function oe(e,t,n,s,c){let l=e&&e.filter(e=>J(e)||Y(e))[0],u=[`YM`,`YB`,`Y`,`YT`],d=Z(l,u),f=ie(l,t,c,s),p=t?{text:i[s],duration:t,icon:c?`wheelchair-small`:`walk-small`}:null,m=()=>d||(p&&!f&&!d?p:f||null);function h(){return a`
|
|
24
|
+
${d?$(d.duration,d.text,`left`,d.icon):o}
|
|
25
|
+
${p&&!f&&!d?$(p.duration,p.text,`left`,p.icon):o}
|
|
26
|
+
${f?c?$(f.duration,f.text,`left`,f.icon):Q(f.duration,f.icon,s,f.text,`departure`):o}
|
|
27
|
+
`}let g=e&&e[e.length-1],_=(Y(g)||J(g))&&g,v=_&&Z(_,u),y=_&&ae(_,n,c,s),b=n?{text:r[s],duration:n,icon:c?`wheelchair-small`:`walk-small`}:null,x=()=>v||(b&&!y&&!v?b:y||null);function S(){return a`
|
|
28
|
+
${v?$(v.duration,v.text,`right`,v.icon):o}
|
|
29
|
+
${b&&!y&&!v?$(b.duration,b.text,`right`,b.icon):o}
|
|
30
|
+
${y?c?$(y.duration,y.text,`right`,y.icon):Q(y.duration,y.icon,s,y.text,`arrival`):o}
|
|
31
|
+
`}return{renderDepartureTimeAttribute:h,renderArrivalTimeAttribute:S,departureTimeAttribute:m(),arrivalTimeAttribute:x()}}export{q as durationToTime,X as extractTimeAndStringFromNoticeText,oe as getDepartureArrivalTimeAttribute,Y as isConnectionLeg,J as isRideLeg,K as removeTimezoneFromISOTimeString};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { SbbActionBaseElement } from '@sbb-esta/lyne-elements/core.js';
|
|
2
|
-
import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
|
|
3
|
-
import { SbbAutocompleteGridOptgroupElement } from '../autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.ts';
|
|
4
|
-
import { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
|
|
5
|
-
declare const SbbAutocompleteGridButtonElement_base: import(
|
|
2
|
+
import { type CSSResultGroup, type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
+
import type { SbbAutocompleteGridOptgroupElement } from '../autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.ts';
|
|
4
|
+
import type { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
|
|
5
|
+
declare const SbbAutocompleteGridButtonElement_base: import("@sbb-esta/lyne-elements/core.js").AbstractConstructor<import("@sbb-esta/lyne-elements/core.js").SbbDisabledMixinType> & import("@sbb-esta/lyne-elements/core.js").AbstractConstructor<import("@sbb-esta/lyne-elements/core.js").SbbNegativeMixinType> & import("@sbb-esta/lyne-elements/core.js").AbstractConstructor<import("@sbb-esta/lyne-elements/icon.pure.js").SbbIconNameMixinType> & typeof SbbActionBaseElement;
|
|
6
6
|
/**
|
|
7
7
|
* It displays an icon-only button that can be used in `sbb-autocomplete-grid`.
|
|
8
8
|
*
|
|
@@ -29,4 +29,3 @@ declare global {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
export {};
|
|
32
|
-
//# sourceMappingURL=autocomplete-grid-button.component.d.ts.map
|
package/development/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SbbElement } from '@sbb-esta/lyne-elements/core.js';
|
|
2
|
-
import { CSSResultGroup, TemplateResult } from 'lit';
|
|
2
|
+
import { type CSSResultGroup, type TemplateResult } from 'lit';
|
|
3
3
|
/**
|
|
4
4
|
* A wrapper component for autocomplete-grid action button.
|
|
5
5
|
*
|
|
@@ -16,4 +16,3 @@ declare global {
|
|
|
16
16
|
'sbb-autocomplete-grid-cell': SbbAutocompleteGridCellElement;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=autocomplete-grid-cell.component.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SbbAutocompleteBaseElement } from '@sbb-esta/lyne-elements/autocomplete.pure.js';
|
|
1
|
+
import type { SbbAutocompleteBaseElement } from '@sbb-esta/lyne-elements/autocomplete.pure.js';
|
|
2
2
|
import { SbbOptgroupBaseElement } from '@sbb-esta/lyne-elements/option.pure.js';
|
|
3
|
-
import { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
|
|
3
|
+
import type { SbbAutocompleteGridOptionElement } from '../autocomplete-grid-option/autocomplete-grid-option.component.ts';
|
|
4
4
|
/**
|
|
5
5
|
* It can be used as a container for one or more `sbb-autocomplete-grid-option`.
|
|
6
6
|
*
|
|
@@ -17,4 +17,3 @@ declare global {
|
|
|
17
17
|
'sbb-autocomplete-grid-optgroup': SbbAutocompleteGridOptgroupElement;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=autocomplete-grid-optgroup.component.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SbbOptionBaseElement } from '@sbb-esta/lyne-elements/option.pure.js';
|
|
2
|
-
import { CSSResultGroup, PropertyValues } from 'lit';
|
|
2
|
+
import { type CSSResultGroup, type PropertyValues } from 'lit';
|
|
3
3
|
export declare const autocompleteGridOptionId: string;
|
|
4
4
|
/**
|
|
5
5
|
* It displays an option item which can be used in `sbb-autocomplete-grid`.
|
|
@@ -23,4 +23,3 @@ declare global {
|
|
|
23
23
|
'sbb-autocomplete-grid-option': SbbAutocompleteGridOptionElement;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=autocomplete-grid-option.component.d.ts.map
|
package/development/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SbbElement } from '@sbb-esta/lyne-elements/core.js';
|
|
2
|
-
import { CSSResultGroup, TemplateResult } from 'lit';
|
|
2
|
+
import { type CSSResultGroup, type TemplateResult } from 'lit';
|
|
3
3
|
/**
|
|
4
4
|
* The component is used as a wrapper for options and action buttons.
|
|
5
5
|
*
|
|
@@ -17,4 +17,3 @@ declare global {
|
|
|
17
17
|
'sbb-autocomplete-grid-row': SbbAutocompleteGridRowElement;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
//# sourceMappingURL=autocomplete-grid-row.component.d.ts.map
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { SbbAutocompleteGridButtonElement } from "./autocomplete-grid
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { t as SbbAutocompleteGridRowElement } from "./autocomplete-grid-row.component-DoXbOsQM.js";
|
|
6
|
-
import { SbbAutocompleteGridElement } from "./autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js";
|
|
7
|
-
import "./autocomplete-grid.pure.js";
|
|
1
|
+
import { SbbAutocompleteGridButtonElement, SbbAutocompleteGridCellElement, SbbAutocompleteGridElement, SbbAutocompleteGridOptgroupElement, SbbAutocompleteGridOptionElement, SbbAutocompleteGridRowElement } from "./autocomplete-grid.pure.js";
|
|
2
|
+
|
|
3
|
+
export * from "./autocomplete-grid.pure.js"
|
|
4
|
+
|
|
8
5
|
//#region src/elements-experimental/autocomplete-grid.ts
|
|
9
6
|
/** @entrypoint */
|
|
10
7
|
SbbAutocompleteGridElement.define();
|
|
@@ -13,7 +10,5 @@ SbbAutocompleteGridCellElement.define();
|
|
|
13
10
|
SbbAutocompleteGridOptgroupElement.define();
|
|
14
11
|
SbbAutocompleteGridOptionElement.define();
|
|
15
12
|
SbbAutocompleteGridRowElement.define();
|
|
16
|
-
//#endregion
|
|
17
|
-
export { SbbAutocompleteGridButtonElement, SbbAutocompleteGridCellElement, SbbAutocompleteGridElement, SbbAutocompleteGridOptgroupElement, SbbAutocompleteGridOptionElement, SbbAutocompleteGridRowElement, autocompleteGridOptionId };
|
|
18
13
|
|
|
19
|
-
//#
|
|
14
|
+
//#endregion
|
|
@@ -5,4 +5,3 @@ export * from './autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-
|
|
|
5
5
|
export * from './autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.ts';
|
|
6
6
|
export * from './autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.ts';
|
|
7
7
|
export * from './autocomplete-grid/autocomplete-grid/autocomplete-grid.component.ts';
|
|
8
|
-
//# sourceMappingURL=autocomplete-grid.pure.d.ts.map
|
|
@@ -1,7 +1,328 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
1
|
+
import { miniButtonStyle } from "@sbb-esta/lyne-elements/button.pure.js";
|
|
2
|
+
import { SbbActionBaseElement, SbbDisabledMixin, SbbElement, SbbNegativeMixin, SbbPropertyWatcherController, getNextElementIndex, isEventPrevented, isSafari, setAriaComboBoxAttributes, ɵstateController } from "@sbb-esta/lyne-elements/core.js";
|
|
3
|
+
import { SbbIconNameMixin } from "@sbb-esta/lyne-elements/icon.pure.js";
|
|
4
|
+
import { html, isServer, unsafeCSS } from "lit";
|
|
5
|
+
import { SbbOptgroupBaseElement, SbbOptionBaseElement } from "@sbb-esta/lyne-elements/option.pure.js";
|
|
6
|
+
import { SbbAutocompleteBaseElement } from "@sbb-esta/lyne-elements/autocomplete.pure.js";
|
|
7
|
+
|
|
8
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.component.ts
|
|
9
|
+
let autocompleteButtonNextId = 0;
|
|
10
|
+
/**
|
|
11
|
+
* It displays an icon-only button that can be used in `sbb-autocomplete-grid`.
|
|
12
|
+
*
|
|
13
|
+
* @slot icon - Slot used to display the icon, if one is set
|
|
14
|
+
*/
|
|
15
|
+
var SbbAutocompleteGridButtonElement = class extends SbbDisabledMixin(SbbNegativeMixin(SbbIconNameMixin(SbbActionBaseElement))) {
|
|
16
|
+
static {
|
|
17
|
+
this.elementName = "sbb-autocomplete-grid-button";
|
|
18
|
+
}
|
|
19
|
+
static {
|
|
20
|
+
this.role = "button";
|
|
21
|
+
}
|
|
22
|
+
static {
|
|
23
|
+
this.styles = [miniButtonStyle];
|
|
24
|
+
}
|
|
25
|
+
/** Gets the SbbAutocompleteGridOptionElement on the same row of the button. */
|
|
26
|
+
get option() {
|
|
27
|
+
return this.closest("sbb-autocomplete-grid-row")?.querySelector("sbb-autocomplete-grid-option") || null;
|
|
28
|
+
}
|
|
29
|
+
get optgroup() {
|
|
30
|
+
return this.closest("sbb-autocomplete-grid-optgroup");
|
|
31
|
+
}
|
|
32
|
+
constructor() {
|
|
33
|
+
super();
|
|
34
|
+
this._handleButtonClick = async (event) => {
|
|
35
|
+
if (await isEventPrevented(event) || !this.closest("form")) return;
|
|
36
|
+
};
|
|
37
|
+
this.internals.states.add("button");
|
|
38
|
+
if (!isServer) {
|
|
39
|
+
this.setupBaseEventHandlers();
|
|
40
|
+
this.addEventListener("click", this._handleButtonClick);
|
|
41
|
+
this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete-grid-optgroup"), { disabled: () => this._updateInternals() }));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
isDisabledExternally() {
|
|
45
|
+
return this.optgroup?.disabled ?? false;
|
|
46
|
+
}
|
|
47
|
+
renderTemplate() {
|
|
48
|
+
return super.renderIconSlot();
|
|
49
|
+
}
|
|
50
|
+
connectedCallback() {
|
|
51
|
+
super.connectedCallback();
|
|
52
|
+
this.id ||= `sbb-autocomplete-grid-button-${++autocompleteButtonNextId}`;
|
|
53
|
+
this.removeAttribute("tabindex");
|
|
54
|
+
}
|
|
55
|
+
willUpdate(changedProperties) {
|
|
56
|
+
super.willUpdate(changedProperties);
|
|
57
|
+
if (changedProperties.has("disabled")) this._updateInternals();
|
|
58
|
+
}
|
|
59
|
+
_updateInternals() {
|
|
60
|
+
if (this.disabled || this.optgroup?.disabled) {
|
|
61
|
+
this.internals.states.add("disabled");
|
|
62
|
+
this.internals.ariaDisabled = "true";
|
|
63
|
+
} else {
|
|
64
|
+
this.internals.states.delete("disabled");
|
|
65
|
+
this.internals.ariaDisabled = null;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.scss?inline
|
|
72
|
+
var autocomplete_grid_cell_default = ":host {\n --sbb-autocomplete-grid-cell-gap: var(--sbb-spacing-fixed-6x);\n display: block;\n}\n\n.sbb-autocomplete-grid-cell {\n display: flex;\n column-gap: var(--sbb-autocomplete-grid-cell-gap);\n}\n";
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-cell/autocomplete-grid-cell.component.ts
|
|
76
|
+
/**
|
|
77
|
+
* A wrapper component for autocomplete-grid action button.
|
|
78
|
+
*
|
|
79
|
+
* @slot - Use the unnamed slot to add a `sbb-autocomplete-grid-button` element.
|
|
80
|
+
*/
|
|
81
|
+
var SbbAutocompleteGridCellElement = class extends SbbElement {
|
|
82
|
+
static {
|
|
83
|
+
this.elementName = "sbb-autocomplete-grid-cell";
|
|
84
|
+
}
|
|
85
|
+
static {
|
|
86
|
+
this.role = "gridcell";
|
|
87
|
+
}
|
|
88
|
+
static {
|
|
89
|
+
this.styles = [unsafeCSS(autocomplete_grid_cell_default)];
|
|
90
|
+
}
|
|
91
|
+
render() {
|
|
92
|
+
return html`
|
|
93
|
+
<span class="sbb-autocomplete-grid-cell">
|
|
94
|
+
<slot></slot>
|
|
95
|
+
</span>
|
|
96
|
+
`;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-optgroup/autocomplete-grid-optgroup.component.ts
|
|
102
|
+
/**
|
|
103
|
+
* It can be used as a container for one or more `sbb-autocomplete-grid-option`.
|
|
104
|
+
*
|
|
105
|
+
* @slot - Use the unnamed slot to add `sbb-autocomplete-grid-option` elements to the `sbb-autocomplete-grid-optgroup`.
|
|
106
|
+
*/
|
|
107
|
+
var SbbAutocompleteGridOptgroupElement = class extends SbbOptgroupBaseElement {
|
|
108
|
+
static {
|
|
109
|
+
this.elementName = "sbb-autocomplete-grid-optgroup";
|
|
110
|
+
}
|
|
111
|
+
get options() {
|
|
112
|
+
return Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-option") ?? []);
|
|
113
|
+
}
|
|
114
|
+
constructor() {
|
|
115
|
+
super();
|
|
116
|
+
this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete-grid"), { negative: (e) => {
|
|
117
|
+
this.toggleState("negative", e.negative);
|
|
118
|
+
this.requestUpdate();
|
|
119
|
+
} }));
|
|
120
|
+
}
|
|
121
|
+
getAutocompleteParent() {
|
|
122
|
+
return this.closest?.("sbb-autocomplete-grid") || null;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
//#endregion
|
|
127
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.scss?inline
|
|
128
|
+
var autocomplete_grid_option_default = ":host {\n --sbb-focus-outline-offset: var(--sbb-option-focus-outline-offset);\n display: block;\n}\n\n:host(:is(:state(negative),[state--negative])) {\n --sbb-option-color: var(--sbb-color-3-negative);\n --sbb-option-icon-color: var(--sbb-color-5);\n}\n\n:host(:is(:state(size-s),[state--size-s])) {\n --sbb-option-min-height: var(--sbb-size-element-xxs);\n --sbb-option-focus-outline-offset: calc(-1 * var(--sbb-spacing-fixed-1x));\n --sbb-option-focus-outline-inset: 0 var(--sbb-spacing-fixed-1x);\n}\n\n:host(:is(:state(size-m),[state--size-m])) {\n --sbb-option-min-height: var(--sbb-size-element-s);\n --sbb-option-focus-outline-offset: inherit;\n --sbb-option-focus-outline-inset: var(--sbb-spacing-fixed-1x);\n}\n\n:host(:not(:is(:state(disable-highlight),[state--disable-highlight]))) .sbb-option__label slot {\n display: none;\n}\n\n:host(:is(:state(active),[state--active])) {\n --sbb-option-focus-outline-color: var(--sbb-focus-outline-color);\n}\n\n.sbb-option {\n font-size: var(--sbb-option-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n position: relative;\n display: flex;\n align-items: center;\n column-gap: var(--sbb-option-column-gap);\n justify-content: start;\n min-height: var(--sbb-option-min-height);\n padding-inline: var(--sbb-option-padding-inline);\n color: var(--sbb-option-color);\n}\n.sbb-option::after {\n content: \"\";\n display: block;\n position: absolute;\n inset: var(--sbb-option-focus-outline-inset);\n pointer-events: none;\n border: var(--sbb-focus-outline-width) solid var(--sbb-option-focus-outline-color);\n border-radius: var(--sbb-option-border-radius);\n}\n\n:host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight {\n font-weight: bold;\n}\n@media (forced-colors: active) {\n :host(:not(:is(:state(disabled),[state--disabled]))) .sbb-option__label--highlight {\n color: Highlight;\n }\n}\n\n.sbb-option__icon {\n display: flex;\n min-width: var(--sbb-size-icon-ui-small);\n min-height: var(--sbb-size-icon-ui-small);\n color: var(--sbb-option-icon-color);\n}\n:host(:not(:is(:state(slotted-icon),[state--slotted-icon]), :is(:state(has-icon-name),[state--has-icon-name]))) .sbb-option__icon {\n display: var(--sbb-option-icon-container-display, none);\n}\n\n.sbb-option__label {\n text-overflow: var(--sbb-option-text-overflow);\n overflow: var(--sbb-option-overflow);\n white-space: var(--sbb-option-white-space, initial);\n}\n";
|
|
129
|
+
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.component.ts
|
|
132
|
+
const autocompleteGridOptionId = `sbb-autocomplete-grid-option`;
|
|
133
|
+
/**
|
|
134
|
+
* It displays an option item which can be used in `sbb-autocomplete-grid`.
|
|
135
|
+
*
|
|
136
|
+
* @slot - Use the unnamed slot to add content to the option label.
|
|
137
|
+
* @slot icon - Use this slot to provide an icon. If `icon-name` is set, a sbb-icon will be used.
|
|
138
|
+
* @cssprop [--sbb-option-icon-container-display=none] - Can be used to reserve space even
|
|
139
|
+
* when preserve-icon-space on autocomplete is not set or iconName is not set.
|
|
140
|
+
* @overrideType value - T = string
|
|
141
|
+
*/
|
|
142
|
+
var SbbAutocompleteGridOptionElement = class extends SbbOptionBaseElement {
|
|
143
|
+
static {
|
|
144
|
+
this.elementName = "sbb-autocomplete-grid-option";
|
|
145
|
+
}
|
|
146
|
+
static {
|
|
147
|
+
this.role = "gridcell";
|
|
148
|
+
}
|
|
149
|
+
static {
|
|
150
|
+
this.styles = [unsafeCSS(autocomplete_grid_option_default)];
|
|
151
|
+
}
|
|
152
|
+
constructor() {
|
|
153
|
+
super();
|
|
154
|
+
this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-autocomplete-grid-optgroup"), {
|
|
155
|
+
disabled: (p) => {
|
|
156
|
+
this.disabledFromGroup = p.disabled;
|
|
157
|
+
ɵstateController(this.closest?.("sbb-autocomplete-grid-row"))?.toggle("disabled", this.disabled || this.disabledFromGroup);
|
|
158
|
+
this.updateAriaDisabled();
|
|
159
|
+
},
|
|
160
|
+
label: (p) => this.groupLabel = p.label
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
willUpdate(changedProperties) {
|
|
164
|
+
super.willUpdate(changedProperties);
|
|
165
|
+
if (changedProperties.has("disabled")) {
|
|
166
|
+
ɵstateController(this.closest?.("sbb-autocomplete-grid-row"))?.toggle("disabled", this.disabled || this.disabledFromGroup);
|
|
167
|
+
this.updateAriaDisabled();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
selectByClick(event) {
|
|
171
|
+
if (this.disabled || this.disabledFromGroup) {
|
|
172
|
+
event.stopPropagation();
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
this.selectViaUserInteraction(true);
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.scss?inline
|
|
181
|
+
var autocomplete_grid_row_default = ":host {\n display: block;\n}\n\n:host(:is(:state(negative),[state--negative])) {\n --sbb-autocomplete-grid-row-color: var(--sbb-color-3-negative);\n --sbb-autocomplete-grid-row-background-color-hover: var(--sbb-background-color-3-negative);\n --sbb-autocomplete-grid-row-disabled-border-color: var(--sbb-border-color-5);\n --sbb-autocomplete-grid-row-disabled-background-color: var(--sbb-background-color-3-negative);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n}\n\n@media (any-hover: hover) {\n :host(:hover:not(:is(:state(disabled),[state--disabled]))) {\n --sbb-autocomplete-grid-row-background-color: var(\n --sbb-autocomplete-grid-row-background-color-hover\n );\n }\n}\n\n:host(:is(:state(disabled),[state--disabled])) {\n --sbb-autocomplete-grid-row-cursor: var(--sbb-cursor-default);\n}\n@media (forced-colors: active) {\n :host(:is(:state(disabled),[state--disabled])) {\n --sbb-autocomplete-grid-row-color: GrayText;\n }\n}\n\n::slotted(sbb-autocomplete-grid-option) {\n flex: 1 1 auto;\n margin-right: calc(-1 * var(--sbb-spacing-fixed-2x));\n overflow-x: hidden;\n}\n\n.sbb-autocomplete-grid-row {\n display: flex;\n align-items: center;\n padding-inline-end: var(--sbb-autocomplete-grid-row-padding-inline-end);\n justify-content: var(--sbb-autocomplete-grid-row-justify-content);\n gap: var(--sbb-spacing-fixed-6x);\n color: var(--sbb-autocomplete-grid-row-color);\n background-color: var(--sbb-autocomplete-grid-row-background-color, inherit);\n cursor: var(--sbb-autocomplete-grid-row-cursor);\n -webkit-tap-highlight-color: transparent;\n -webkit-text-fill-color: var(--sbb-autocomplete-grid-row-color);\n}\n:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row {\n position: relative;\n z-index: 0;\n}\n:host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0.375rem;\n border: var(--sbb-border-width-1x) dashed var(--sbb-autocomplete-grid-row-disabled-border-color);\n border-radius: var(--sbb-border-radius-2x);\n background-color: var(--sbb-autocomplete-grid-row-disabled-background-color);\n z-index: -1;\n}\n@media (forced-colors: active) {\n :host(:is(:state(disabled),[state--disabled])) .sbb-autocomplete-grid-row::before {\n border-color: GrayText;\n }\n}\n";
|
|
182
|
+
|
|
183
|
+
//#endregion
|
|
184
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid-row/autocomplete-grid-row.component.ts
|
|
185
|
+
let autocompleteRowNextId = 0;
|
|
186
|
+
/**
|
|
187
|
+
* The component is used as a wrapper for options and action buttons.
|
|
188
|
+
*
|
|
189
|
+
* @slot - Use the unnamed slot to add a `sbb-autocomplete-grid-option` and a `sbb-autocomplete-grid-cell` with one or more `sbb-autocomplete-grid-button`.
|
|
190
|
+
*/
|
|
191
|
+
var SbbAutocompleteGridRowElement = class extends SbbElement {
|
|
192
|
+
static {
|
|
193
|
+
this.elementName = "sbb-autocomplete-grid-row";
|
|
194
|
+
}
|
|
195
|
+
static {
|
|
196
|
+
this.role = "row";
|
|
197
|
+
}
|
|
198
|
+
static {
|
|
199
|
+
this.styles = [unsafeCSS(autocomplete_grid_row_default)];
|
|
200
|
+
}
|
|
201
|
+
connectedCallback() {
|
|
202
|
+
super.connectedCallback();
|
|
203
|
+
this.id ||= `sbb-autocomplete-grid-row-${++autocompleteRowNextId}`;
|
|
204
|
+
}
|
|
205
|
+
render() {
|
|
206
|
+
return html`
|
|
207
|
+
<span class="sbb-autocomplete-grid-row">
|
|
208
|
+
<slot></slot>
|
|
209
|
+
</span>
|
|
210
|
+
`;
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
//#endregion
|
|
215
|
+
//#region src/elements-experimental/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.ts
|
|
216
|
+
let nextId = 0;
|
|
217
|
+
/**
|
|
218
|
+
* On Safari, the aria role 'listbox' must be on the host element, or else VoiceOver won't work at all.
|
|
219
|
+
* On the other hand, JAWS and NVDA need the role to be "closer" to the options, or else optgroups won't work.
|
|
220
|
+
*/
|
|
221
|
+
const ariaRoleOnHost = isSafari;
|
|
222
|
+
/**
|
|
223
|
+
* Combined with a native input, it displays a panel with a list of available options with connected buttons.
|
|
224
|
+
*
|
|
225
|
+
* @slot - Use the unnamed slot to add `sbb-autocomplete-grid-row` or `sbb-autocomplete-grid-optgroup` elements to the `sbb-autocomplete-grid`.
|
|
226
|
+
* @cssprop [--sbb-autocomplete-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
|
|
227
|
+
* the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
|
|
228
|
+
* component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
|
|
229
|
+
* @cssprop [--sbb-options-panel-max-height] - Maximum height of the options panel.
|
|
230
|
+
* If the calculated remaining space is smaller, the value gets ignored.
|
|
231
|
+
*/
|
|
232
|
+
var SbbAutocompleteGridElement = class extends SbbAutocompleteBaseElement {
|
|
233
|
+
constructor() {
|
|
234
|
+
super(...arguments);
|
|
235
|
+
this.overlayId = `sbb-autocomplete-grid-${++nextId}`;
|
|
236
|
+
this.panelRole = "grid";
|
|
237
|
+
this._activeColumnIndex = 0;
|
|
238
|
+
}
|
|
239
|
+
static {
|
|
240
|
+
this.elementName = "sbb-autocomplete-grid";
|
|
241
|
+
}
|
|
242
|
+
static {
|
|
243
|
+
this.role = ariaRoleOnHost ? "grid" : null;
|
|
244
|
+
}
|
|
245
|
+
get options() {
|
|
246
|
+
return Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-option") ?? []);
|
|
247
|
+
}
|
|
248
|
+
syncNegative() {
|
|
249
|
+
this.querySelectorAll?.("sbb-divider, sbb-autocomplete-grid-button, sbb-option-hint").forEach((e) => e.negative = this.negative);
|
|
250
|
+
this.querySelectorAll?.("sbb-autocomplete-grid-row, sbb-autocomplete-grid-option, sbb-autocomplete-grid-optgroup").forEach((element) => ɵstateController(element).toggle("negative", this.negative));
|
|
251
|
+
}
|
|
252
|
+
openedPanelKeyboardInteraction(event) {
|
|
253
|
+
if (!this.isOpen) return;
|
|
254
|
+
switch (event.key) {
|
|
255
|
+
case "Enter":
|
|
256
|
+
this.selectByKeyboard(event);
|
|
257
|
+
break;
|
|
258
|
+
case "ArrowDown":
|
|
259
|
+
case "ArrowUp":
|
|
260
|
+
this.setNextActiveOption(event);
|
|
261
|
+
break;
|
|
262
|
+
case "ArrowRight":
|
|
263
|
+
case "ArrowLeft":
|
|
264
|
+
this._setNextHorizontalActiveElement(event);
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Select an element on 'Enter' keypress.
|
|
270
|
+
*
|
|
271
|
+
* Due to keyboard navigation code, the `_activeColumnIndex` is zero when an option is 'focused'
|
|
272
|
+
* and greater than zero when a button is 'focused', so asking for `querySelectorAll(...)[this._activeColumnIndex]`
|
|
273
|
+
* would always return a `SbbAutocompleteGridButtonElement`.
|
|
274
|
+
*/
|
|
275
|
+
selectByKeyboard(event) {
|
|
276
|
+
if (this.activeOption) {
|
|
277
|
+
event.preventDefault();
|
|
278
|
+
if (this._activeColumnIndex !== 0) this.activeOption.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-button")[this._activeColumnIndex - 1]?.click();
|
|
279
|
+
else this.activeOption["selectViaUserInteraction"](true);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
setNextActiveOption(event) {
|
|
283
|
+
const enabledOptions = this.options.filter((opt) => !opt.matches(":is(:state(disabled),[state--disabled])"));
|
|
284
|
+
this.activeOption?.setActive(false);
|
|
285
|
+
this.triggerElement.ariaActiveDescendantElement = null;
|
|
286
|
+
Array.from(this.querySelectorAll?.("sbb-autocomplete-grid-row :is(:state(focus-visible),[state--focus-visible])") ?? []).forEach((row) => ɵstateController(row).delete("focus-visible"));
|
|
287
|
+
this._activeColumnIndex = 0;
|
|
288
|
+
if (!enabledOptions.length) {
|
|
289
|
+
this.activeOption = null;
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const next = getNextElementIndex(event, this.activeOption ? enabledOptions.indexOf(this.activeOption) : -1, enabledOptions.length);
|
|
293
|
+
this.activeOption = enabledOptions[next];
|
|
294
|
+
this.activeOption.setActive(true);
|
|
295
|
+
this.triggerElement.ariaActiveDescendantElement = this.activeOption;
|
|
296
|
+
this.activeOption.scrollIntoView({ block: "nearest" });
|
|
297
|
+
if (event) event.preventDefault();
|
|
298
|
+
if (this.autoSelectActiveOption && event) this.setPendingSelection(this.activeOption);
|
|
299
|
+
}
|
|
300
|
+
_setNextHorizontalActiveElement(event) {
|
|
301
|
+
if (!this.activeOption) return;
|
|
302
|
+
const elementsInRow = Array.from(this.activeOption?.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-option, sbb-autocomplete-grid-button") ?? [])?.filter((el) => !el.matches(":is(:state(disabled),[state--disabled])"));
|
|
303
|
+
if (!elementsInRow.length) return;
|
|
304
|
+
const next = getNextElementIndex(event, this._activeColumnIndex, elementsInRow.length);
|
|
305
|
+
const nextElement = elementsInRow[next];
|
|
306
|
+
if (nextElement instanceof SbbAutocompleteGridOptionElement) nextElement.setActive(true);
|
|
307
|
+
else ɵstateController(nextElement).add("focus-visible");
|
|
308
|
+
const lastActiveElement = elementsInRow[this._activeColumnIndex];
|
|
309
|
+
if (lastActiveElement instanceof SbbAutocompleteGridOptionElement) lastActiveElement.setActive(false);
|
|
310
|
+
else ɵstateController(lastActiveElement).delete("focus-visible");
|
|
311
|
+
this.triggerElement.ariaActiveDescendantElement = nextElement;
|
|
312
|
+
nextElement.scrollIntoView({ block: "nearest" });
|
|
313
|
+
this._activeColumnIndex = next;
|
|
314
|
+
}
|
|
315
|
+
resetActiveElement() {
|
|
316
|
+
if (this._activeColumnIndex !== 0) this.activeOption?.closest("sbb-autocomplete-grid-row")?.querySelectorAll("sbb-autocomplete-grid-button").forEach((e) => ɵstateController(e).delete("focus-visible"));
|
|
317
|
+
this.activeOption?.setActive(false);
|
|
318
|
+
this.activeOption = null;
|
|
319
|
+
this._activeColumnIndex = 0;
|
|
320
|
+
if (this.triggerElement) this.triggerElement.ariaActiveDescendantElement = null;
|
|
321
|
+
}
|
|
322
|
+
setTriggerAttributes(element) {
|
|
323
|
+
setAriaComboBoxAttributes(element, ariaRoleOnHost ? this.id : this.overlayId, false, "grid");
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
//#endregion
|
|
328
|
+
export { SbbAutocompleteGridButtonElement, SbbAutocompleteGridCellElement, SbbAutocompleteGridElement, SbbAutocompleteGridOptgroupElement, SbbAutocompleteGridOptionElement, SbbAutocompleteGridRowElement, autocompleteGridOptionId };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit';
|
|
2
|
-
import { Leg } from './timetable-properties.ts';
|
|
1
|
+
import type { TemplateResult } from 'lit';
|
|
2
|
+
import type { Leg } from './timetable-properties.ts';
|
|
3
|
+
import '@sbb-esta/lyne-elements/icon.pure.js';
|
|
3
4
|
interface IAccessAttribute {
|
|
4
5
|
duration: number;
|
|
5
6
|
text: string;
|
|
@@ -23,4 +24,3 @@ export declare function getDepartureArrivalTimeAttribute(legs: Leg[], departureW
|
|
|
23
24
|
arrivalTimeAttribute: IAccessAttribute | null;
|
|
24
25
|
};
|
|
25
26
|
export {};
|
|
26
|
-
//# sourceMappingURL=access-leg-helper.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Leg, Notice } from './timetable-properties.ts';
|
|
1
|
+
import type { Leg, Notice } from './timetable-properties.ts';
|
|
2
2
|
export declare const isRideLeg: (leg: any) => leg is Extract<Leg, {
|
|
3
3
|
__typename: "PTRideLeg";
|
|
4
4
|
}>;
|
|
@@ -9,4 +9,3 @@ export declare const extractTimeAndStringFromNoticeText: (notice?: Notice) => {
|
|
|
9
9
|
duration: number;
|
|
10
10
|
text: string;
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=timetable-helper.d.ts.map
|
|
@@ -22,6 +22,8 @@ export interface ServiceAlteration {
|
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
24
|
delayText: string;
|
|
25
|
+
/** Cancelled Expected Flag */
|
|
26
|
+
cancelledExpected?: boolean;
|
|
25
27
|
/** Journey is partially cancelled at beginning or end */
|
|
26
28
|
partiallyCancelled: boolean;
|
|
27
29
|
/** If partiallyCancelled, enduser info */
|
|
@@ -305,4 +307,3 @@ export interface ServiceJourney {
|
|
|
305
307
|
/** List of stop points */
|
|
306
308
|
stopPoints: ScheduledStopPoint[];
|
|
307
309
|
}
|
|
308
|
-
//# sourceMappingURL=timetable-properties.d.ts.map
|
package/development/core.d.ts
CHANGED