@sbb-esta/lyne-elements 1.14.0 → 1.15.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/autocomplete.d.ts +1 -1
- package/autocomplete/autocomplete.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid.js +6 -6
- package/autocomplete.js +20 -19
- package/calendar/calendar.d.ts +1 -1
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +175 -178
- package/checkbox/checkbox-panel/checkbox-panel.d.ts +1 -1
- package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/checkbox/checkbox-panel.js +5 -5
- package/checkbox/common.js +1 -1
- package/clock/clock.d.ts +1 -1
- package/clock/clock.d.ts.map +1 -1
- package/clock.js +2 -2
- package/container/sticky-bar/sticky-bar.d.ts +29 -2
- package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/container/sticky-bar.js +69 -31
- package/core/controllers/media-matchers-controller.d.ts +32 -0
- package/core/controllers/media-matchers-controller.d.ts.map +1 -0
- package/core/controllers.d.ts +1 -0
- package/core/controllers.d.ts.map +1 -1
- package/core/controllers.js +75 -33
- package/core/dom/breakpoint.d.ts +2 -1
- package/core/dom/breakpoint.d.ts.map +1 -1
- package/core/dom.js +7 -7
- package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/core/mixins.js +8 -1
- package/core/styles/core/mediaqueries.scss +1 -2
- package/core/styles/mixins/buttons.scss +5 -5
- package/core/testing/event-spy.d.ts +6 -4
- package/core/testing/event-spy.d.ts.map +1 -1
- package/core/testing.js +82 -55
- package/custom-elements.json +650 -74
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/autocomplete/autocomplete.d.ts +1 -1
- package/development/autocomplete/autocomplete.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid.js +4 -3
- package/development/autocomplete.js +4 -3
- package/development/calendar/calendar.d.ts +1 -1
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +40 -44
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +1 -1
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -1
- package/development/checkbox/checkbox-panel.js +2 -2
- package/development/checkbox/common.js +2 -2
- package/development/clock/clock.d.ts +1 -1
- package/development/clock/clock.d.ts.map +1 -1
- package/development/clock.js +3 -3
- package/development/container/sticky-bar/sticky-bar.d.ts +29 -2
- package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
- package/development/container/sticky-bar.js +149 -36
- package/development/core/controllers/media-matchers-controller.d.ts +32 -0
- package/development/core/controllers/media-matchers-controller.d.ts.map +1 -0
- package/development/core/controllers.d.ts +1 -0
- package/development/core/controllers.d.ts.map +1 -1
- package/development/core/controllers.js +65 -1
- package/development/core/dom/breakpoint.d.ts +2 -1
- package/development/core/dom/breakpoint.d.ts.map +1 -1
- package/development/core/dom.js +2 -2
- package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
- package/development/core/mixins.js +9 -2
- package/development/core/testing/event-spy.d.ts +6 -4
- package/development/core/testing/event-spy.d.ts.map +1 -1
- package/development/core/testing.js +35 -1
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker.js +1 -1
- package/development/dialog/dialog.js +2 -2
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +3 -1
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-header.js +8 -4
- package/development/file-selector/file-selector.d.ts +5 -0
- package/development/file-selector/file-selector.d.ts.map +1 -1
- package/development/file-selector.js +8 -1
- package/development/flip-card/flip-card/flip-card.d.ts +4 -0
- package/development/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/development/flip-card/flip-card-details.js +4 -6
- package/development/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
- package/development/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
- package/development/flip-card/flip-card-summary.js +9 -10
- package/development/flip-card/flip-card.js +26 -2
- package/development/form-field/form-field.js +5 -3
- package/development/icon/icon.d.ts +1 -1
- package/development/icon.js +1 -1
- package/development/image/image.d.ts.map +1 -1
- package/development/image.js +3 -19
- package/development/map-container.js +3 -2
- package/development/menu/menu/menu.d.ts +1 -0
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu.js +15 -11
- package/development/navigation/navigation-section.js +4 -14
- package/development/navigation/navigation.js +2 -7
- package/development/notification.js +3 -2
- package/development/paginator/paginator/paginator.d.ts +1 -5
- package/development/paginator/paginator/paginator.d.ts.map +1 -1
- package/development/paginator/paginator.js +19 -27
- package/development/popover/popover/popover.d.ts.map +1 -1
- package/development/popover/popover.js +9 -16
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +1 -1
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel.js +2 -2
- package/development/sbb-tokens-BdGhUJjM.js +33 -0
- package/development/select/select.d.ts +6 -5
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +23 -14
- package/development/slider/slider.d.ts +5 -0
- package/development/slider/slider.d.ts.map +1 -1
- package/development/slider.js +8 -1
- package/development/table/table-wrapper/table-wrapper.d.ts +1 -1
- package/development/table/table-wrapper/table-wrapper.d.ts.map +1 -1
- package/development/table/table-wrapper.js +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +2 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
- package/development/timetable-occupancy-icon.js +11 -9
- package/development/toggle-check/toggle-check.d.ts +1 -1
- package/development/toggle-check/toggle-check.d.ts.map +1 -1
- package/development/toggle-check.js +2 -2
- package/dialog/dialog.js +1 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts +3 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-header.js +26 -24
- package/file-selector/file-selector.d.ts +5 -0
- package/file-selector/file-selector.d.ts.map +1 -1
- package/file-selector.js +7 -0
- package/flip-card/flip-card/flip-card.d.ts +4 -0
- package/flip-card/flip-card/flip-card.d.ts.map +1 -1
- package/flip-card/flip-card-details.js +6 -6
- package/flip-card/flip-card-summary/flip-card-summary.d.ts +1 -1
- package/flip-card/flip-card-summary/flip-card-summary.d.ts.map +1 -1
- package/flip-card/flip-card-summary.js +8 -8
- package/flip-card/flip-card.js +56 -42
- package/icon/icon.d.ts +1 -1
- package/image/image.d.ts.map +1 -1
- package/image.js +46 -45
- package/map-container.js +7 -7
- package/menu/menu/menu.d.ts +1 -0
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +45 -41
- package/navigation/navigation-section.js +7 -7
- package/navigation/navigation.js +8 -8
- package/package.json +2 -2
- package/paginator/paginator/paginator.d.ts +1 -5
- package/paginator/paginator/paginator.d.ts.map +1 -1
- package/paginator/paginator.js +50 -52
- package/popover/popover/popover.d.ts.map +1 -1
- package/popover/popover.js +42 -46
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +1 -1
- package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
- package/radio-button/radio-button-panel.js +7 -7
- package/sbb-tokens-Dx20OtVg.js +18 -0
- package/select/select.d.ts +6 -5
- package/select/select.d.ts.map +1 -1
- package/select.js +55 -53
- package/slider/slider.d.ts +5 -0
- package/slider/slider.d.ts.map +1 -1
- package/slider.js +12 -5
- package/table/table-wrapper/table-wrapper.d.ts +1 -1
- package/table/table-wrapper/table-wrapper.d.ts.map +1 -1
- package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts +2 -1
- package/timetable-occupancy-icon/timetable-occupancy-icon.d.ts.map +1 -1
- package/timetable-occupancy-icon.js +45 -44
- package/toggle-check/toggle-check.d.ts +1 -1
- package/toggle-check/toggle-check.d.ts.map +1 -1
- package/toggle-check.js +1 -1
package/calendar.js
CHANGED
|
@@ -1,56 +1,57 @@
|
|
|
1
|
-
var
|
|
1
|
+
var he = (o) => {
|
|
2
2
|
throw TypeError(o);
|
|
3
3
|
};
|
|
4
|
-
var
|
|
5
|
-
var v = (o, h, m) => (
|
|
4
|
+
var _e = (o, h, m) => h.has(o) || he("Cannot " + m);
|
|
5
|
+
var v = (o, h, m) => (_e(o, h, "read from private field"), m ? m.call(o) : h.get(o)), w = (o, h, m) => h.has(o) ? he("Cannot add the same private member more than once") : h instanceof WeakSet ? h.add(o) : h.set(o, m), u = (o, h, m, p) => (_e(o, h, "write to private field"), p ? p.call(o, m) : h.set(o, m), m);
|
|
6
6
|
import { __esDecorate as f, __runInitializers as c } from "tslib";
|
|
7
|
-
import { css as
|
|
8
|
-
import { customElement as
|
|
7
|
+
import { css as ge, LitElement as pe, isServer as ue, html as n, nothing as g } from "lit";
|
|
8
|
+
import { customElement as ve, property as A, state as F } from "lit/decorators.js";
|
|
9
9
|
import { classMap as R } from "lit/directives/class-map.js";
|
|
10
|
-
import { sbbInputModalityDetector as
|
|
11
|
-
import { readConfig as
|
|
12
|
-
import {
|
|
13
|
-
import { defaultDateAdapter as $e, YEARS_PER_PAGE as b, DAYS_PER_ROW as O, MONTHS_PER_ROW as I, YEARS_PER_ROW as
|
|
14
|
-
import { forceType as
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { SbbHydrationMixin as Te } from "./core/mixins.js";
|
|
10
|
+
import { sbbInputModalityDetector as we, isArrowKeyOrPageKeysPressed as ye } from "./core/a11y.js";
|
|
11
|
+
import { readConfig as Ae } from "./core/config.js";
|
|
12
|
+
import { SbbLanguageController as xe, SbbMediaMatcherController as De, SbbMediaQueryBreakpointMediumAndAbove as me } from "./core/controllers.js";
|
|
13
|
+
import { defaultDateAdapter as $e, YEARS_PER_PAGE as b, DAYS_PER_ROW as O, MONTHS_PER_ROW as I, YEARS_PER_ROW as C } from "./core/datetime.js";
|
|
14
|
+
import { forceType as Ye } from "./core/decorators.js";
|
|
15
|
+
import { EventEmitter as Me } from "./core/eventing.js";
|
|
16
|
+
import { i18nPreviousMonth as ke, i18nNextMonth as Ve, i18nYearMonthSelection as ze, i18nPreviousYear as Fe, i18nNextYear as Re, i18nCalendarDateSelection as fe, i18nPreviousYearRange as Ie, i18nNextYearRange as Ce } from "./core/i18n.js";
|
|
17
|
+
import { SbbHydrationMixin as Se } from "./core/mixins.js";
|
|
19
18
|
import "./button/secondary-button.js";
|
|
20
19
|
import "./icon.js";
|
|
21
20
|
import "./screen-reader-only.js";
|
|
22
|
-
const
|
|
23
|
-
let
|
|
24
|
-
var
|
|
25
|
-
let o = [
|
|
26
|
-
var
|
|
21
|
+
const Te = ge`*,:before,:after{box-sizing:border-box}:host{display:block;width:max-content;--sbb-calendar-cell-size: 2.5rem;--sbb-calendar-hover-shift: .0625rem;--sbb-calendar-wide-cell-size: 4.375rem;--sbb-calendar-cell-disabled-color: var(--sbb-color-granite);--sbb-calendar-header-color: var(--sbb-color-granite);--sbb-calendar-cell-background-color: transparent;--sbb-calendar-cell-padding: .125rem;--sbb-calendar-cell-color: var(--sbb-color-charcoal);--sbb-calendar-cell-selected-color: var(--sbb-color-white);--sbb-calendar-cell-selected-background-color: var(--sbb-color-charcoal);--sbb-calendar-cell-disabled-height: .09375rem;--sbb-calendar-cell-disabled-width: 1.59375rem;--sbb-calendar-cell-transition-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-calendar-cell-transition-easing-function: var(--sbb-animation-easing);--sbb-calendar-tables-gap: var(--sbb-spacing-fixed-10x);--sbb-calendar-table-animation-shift: .00625rem;--sbb-calendar-table-animation-duration: .1ms;--sbb-calendar-table-column-spaces: 12;--sbb-calendar-control-view-change-height: 2.75rem;--sbb-calendar-control-view-change-color: var(--sbb-color-charcoal);--sbb-calendar-control-view-change-background: var(--sbb-color-white)}@media (min-width: 22.5rem){:host{--sbb-calendar-cell-size: 2.75rem;--sbb-calendar-wide-cell-size: 4.8125rem;--sbb-calendar-control-view-change-height: 3rem}}.sbb-calendar__wrapper{width:100%;display:block;transition-duration:var(--sbb-calendar-cell-transition-duration)}.sbb-calendar__controls{width:100%;display:inline-flex;align-items:center;gap:var(--sbb-spacing-fixed-2x);margin-block-end:var(--sbb-spacing-fixed-4x)}.sbb-calendar__controls-month{width:100%;display:flex;gap:var(--sbb-calendar-tables-gap)}#sbb-calendar__controls-previous,#sbb-calendar__controls-next{-webkit-tap-highlight-color:transparent}.sbb-calendar__controls-change-date{-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;outline:none;border:none;border-radius:0;padding:0;background:none;-webkit-tap-highlight-color:transparent;color:inherit;--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;align-items:center;margin:auto;height:var(--sbb-calendar-control-view-change-height);text-transform:capitalize;cursor:pointer;padding-inline:var(--sbb-spacing-fixed-5x) var(--sbb-spacing-fixed-2x);border-radius:var(--sbb-border-radius-infinity);background-color:var(--sbb-calendar-control-view-change-background);color:var(--sbb-calendar-control-view-change-color);transition-duration:var(--sbb-calendar-cell-transition-duration);transition-timing-function:var(--sbb-calendar-cell-transition-easing-function);transition-property:background-color,padding-block-end}.sbb-calendar__controls-change-date:disabled{--sbb-calendar-control-view-change-background: var(--sbb-color-milk);--sbb-calendar-control-view-change-color: var(--sbb-calendar-cell-disabled-color);cursor:unset}.sbb-calendar__controls-change-date:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch]){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);outline-offset:var(--sbb-spacing-fixed-1x)}@media (any-hover: hover){.sbb-calendar__controls-change-date:not(:active,:disabled):hover{padding-block-end:var(--sbb-calendar-hover-shift)}}.sbb-calendar__controls-change-date:not(:disabled):active{--sbb-calendar-control-view-change-background: var(--sbb-color-milk)}.sbb-calendar__table-month-view,.sbb-calendar__table-year-view{--sbb-calendar-table-column-spaces: 6}.sbb-calendar__table-container{display:flex;gap:var(--sbb-calendar-tables-gap);margin-inline:var(--sbb-calendar-margin);--sbb-calendar-min-width: calc(7 * var(--sbb-calendar-cell-size));--sbb-calendar-overflow: calc(100% - var(--sbb-calendar-min-width));--sbb-calendar-start-offset: min( 0px, -1 * (var(--sbb-calendar-overflow) / var(--sbb-calendar-table-column-spaces)) );--sbb-calendar-margin: var(--sbb-calendar-start-offset)}:host([data-wide]) .sbb-calendar__table-container{--sbb-calendar-min-width: calc( 2 * 7 * var(--sbb-calendar-cell-size) + var(--sbb-calendar-tables-gap) );--sbb-calendar-margin: calc(.5 * var(--sbb-calendar-start-offset))}.sbb-calendar__table{width:100%;border-collapse:collapse;height:max-content;animation-name:show;animation-duration:var(--sbb-calendar-table-animation-duration)}.sbb-calendar__table.sbb-calendar__table-hide{--sbb-calendar-cell-transition-duration: 0ms;animation-name:hide;animation-duration:var(--sbb-calendar-table-animation-duration)}:host(:not([data-wide])) .sbb-calendar__table{min-width:100%}.sbb-calendar__table-header{--sbb-text-font-size: var(--sbb-font-size-text-xs);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);color:var(--sbb-calendar-header-color);width:var(--sbb-calendar-cell-size);padding:0;padding-block-end:var(--sbb-spacing-fixed-4x);text-align:center}.sbb-calendar__table-data{position:relative;padding:0;text-align:center}.sbb-calendar__cell{-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;margin:0;outline:none;border:none;border-radius:0;padding:0;background:none;-webkit-tap-highlight-color:transparent;color:inherit;--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);height:var(--sbb-calendar-cell-size);color:var(--sbb-calendar-cell-color);cursor:pointer;position:relative;z-index:0}.sbb-calendar__cell:before{content:"";position:absolute;inset:var(--sbb-calendar-cell-padding);background-color:var(--sbb-calendar-cell-background-color);border-radius:50%;z-index:-1;transition-duration:var(--sbb-calendar-cell-transition-duration);transition-timing-function:var(--sbb-calendar-cell-transition-easing-function);transition-property:background-color}@media (any-hover: hover){.sbb-calendar__cell:not(.sbb-calendar__selected,:active,:disabled):hover{--sbb-calendar-cell-background-color: var(--sbb-color-milk);padding-block-end:var(--sbb-calendar-hover-shift)}}@media (any-hover: hover) and (forced-colors: active){.sbb-calendar__cell:not(.sbb-calendar__selected,:active,:disabled):hover:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}}.sbb-calendar__cell:disabled{--sbb-calendar-cell-color: var(--sbb-calendar-cell-disabled-color);cursor:unset}.sbb-calendar__cell:focus-visible:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}.sbb-calendar__cell:not(.sbb-calendar__selected,:disabled):active{--sbb-calendar-cell-background-color: var(--sbb-color-cloud)}@media (forced-colors: active){.sbb-calendar__cell:not(.sbb-calendar__selected,:disabled):active:before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width)}}.sbb-calendar__day{border-radius:50%;width:var(--sbb-calendar-cell-size)}.sbb-calendar__day:before{border-radius:50%}.sbb-calendar__pill{width:var(--sbb-calendar-wide-cell-size);border-radius:var(--sbb-border-radius-infinity)}.sbb-calendar__pill:before{border-radius:var(--sbb-border-radius-infinity)}.sbb-calendar__crossed-out:after{content:"";height:var(--sbb-calendar-cell-disabled-height);width:var(--sbb-calendar-cell-disabled-width);position:absolute;background-color:var(--sbb-calendar-cell-disabled-color);top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg)}.sbb-calendar__cell-current{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);font-weight:700}.sbb-calendar__selected{--sbb-calendar-cell-color: var(--sbb-calendar-cell-selected-color);--sbb-calendar-cell-background-color: var(--sbb-calendar-cell-selected-background-color)}@media (forced-colors: active){.sbb-calendar__selected{--sbb-calendar-cell-background-color: ButtonText !important}}@keyframes show{0%{opacity:0;transform:translateY(var(--sbb-calendar-table-animation-shift))}to{opacity:1;transform:translateY(0)}}@keyframes hide{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(var(--sbb-calendar-table-animation-shift))}}`;
|
|
22
|
+
let et = (() => {
|
|
23
|
+
var D, $, Y, M, k, V, z, l;
|
|
24
|
+
let o = [ve("sbb-calendar")], h, m = [], p, E = Se(pe), x = [], W, L = [], P = [], B, q = [], K = [], H, U, j, G, Q, J = [], X = [], Z, ee = [], te = [], ae, se = [], ie = [], re, ne, le = [], de = [], oe, ce = [], be = [];
|
|
25
|
+
var S = (l = class extends E {
|
|
27
26
|
constructor() {
|
|
28
27
|
var e;
|
|
29
28
|
super();
|
|
30
|
-
w(this, x);
|
|
31
29
|
w(this, D);
|
|
32
|
-
w(this, Y);
|
|
33
30
|
w(this, $);
|
|
31
|
+
w(this, Y);
|
|
34
32
|
w(this, M);
|
|
35
33
|
w(this, k);
|
|
36
34
|
w(this, V);
|
|
37
|
-
|
|
35
|
+
w(this, z);
|
|
36
|
+
u(this, D, (c(this, x), c(this, L, !1))), u(this, $, (c(this, P), c(this, q, "day"))), this._min = c(this, K), this._now = null, u(this, Y, c(this, J, null)), this._dateAdapter = (c(this, X), ((e = Ae().datetime) == null ? void 0 : e.dateAdapter) ?? $e), this._dateSelected = new Me(this, S.events.dateSelected), u(this, M, c(this, ee, this.now)), u(this, k, (c(this, te), c(this, se, void 0))), u(this, V, (c(this, ie), c(this, le, "day"))), this._nextCalendarView = (c(this, de), "day"), this._weeks = [], this._monthNames = this._dateAdapter.getMonthNames("long"), this._resetFocus = !1, u(this, z, c(this, ce, !1)), this._language = (c(this, be), new xe(this).withHandler(() => {
|
|
38
37
|
this._monthNames = this._dateAdapter.getMonthNames("long"), this._createMonthRows();
|
|
38
|
+
})), this._mediaMatcher = new De(this, {
|
|
39
|
+
[me]: () => this._init()
|
|
39
40
|
}), this._createMonthRows(), this._setWeekdays();
|
|
40
41
|
}
|
|
41
42
|
/** If set to true, two months are displayed */
|
|
42
43
|
get wide() {
|
|
43
|
-
return v(this,
|
|
44
|
+
return v(this, D);
|
|
44
45
|
}
|
|
45
46
|
set wide(e) {
|
|
46
|
-
u(this,
|
|
47
|
+
u(this, D, e);
|
|
47
48
|
}
|
|
48
49
|
/** The initial view of the calendar which should be displayed on opening. */
|
|
49
50
|
get view() {
|
|
50
|
-
return v(this,
|
|
51
|
+
return v(this, $);
|
|
51
52
|
}
|
|
52
53
|
set view(e) {
|
|
53
|
-
u(this,
|
|
54
|
+
u(this, $, e);
|
|
54
55
|
}
|
|
55
56
|
/** The minimum valid date. Takes T Object, ISOString, and Unix Timestamp (number of seconds since Jan 1, 1970). */
|
|
56
57
|
set min(e) {
|
|
@@ -89,17 +90,17 @@ let at = (() => {
|
|
|
89
90
|
}
|
|
90
91
|
/** The currently active date. */
|
|
91
92
|
get _activeDate() {
|
|
92
|
-
return v(this,
|
|
93
|
+
return v(this, M);
|
|
93
94
|
}
|
|
94
95
|
set _activeDate(e) {
|
|
95
|
-
u(this,
|
|
96
|
+
u(this, M, e);
|
|
96
97
|
}
|
|
97
98
|
/** The selected date as ISOString. */
|
|
98
99
|
get _selected() {
|
|
99
|
-
return v(this,
|
|
100
|
+
return v(this, k);
|
|
100
101
|
}
|
|
101
102
|
set _selected(e) {
|
|
102
|
-
u(this,
|
|
103
|
+
u(this, k, e);
|
|
103
104
|
}
|
|
104
105
|
/** The current wide property considering property value and breakpoints. From zero to small `wide` has always to be false. */
|
|
105
106
|
set _wide(e) {
|
|
@@ -109,20 +110,20 @@ let at = (() => {
|
|
|
109
110
|
return this.hasAttribute("data-wide");
|
|
110
111
|
}
|
|
111
112
|
get _calendarView() {
|
|
112
|
-
return v(this,
|
|
113
|
+
return v(this, V);
|
|
113
114
|
}
|
|
114
115
|
set _calendarView(e) {
|
|
115
|
-
u(this,
|
|
116
|
+
u(this, V, e);
|
|
116
117
|
}
|
|
117
118
|
/** A list of buttons corresponding to days, months or years depending on the view. */
|
|
118
119
|
get _cells() {
|
|
119
120
|
return Array.from(this.shadowRoot.querySelectorAll(".sbb-calendar__cell") ?? []);
|
|
120
121
|
}
|
|
121
122
|
get _initialized() {
|
|
122
|
-
return v(this,
|
|
123
|
+
return v(this, z);
|
|
123
124
|
}
|
|
124
125
|
set _initialized(e) {
|
|
125
|
-
u(this,
|
|
126
|
+
u(this, z, e);
|
|
126
127
|
}
|
|
127
128
|
_dateFilter(e) {
|
|
128
129
|
var t;
|
|
@@ -133,28 +134,24 @@ let at = (() => {
|
|
|
133
134
|
this._resetCalendarView(), this._init();
|
|
134
135
|
}
|
|
135
136
|
connectedCallback() {
|
|
136
|
-
var e;
|
|
137
137
|
super.connectedCallback(), this.resetPosition(), this.focus = () => {
|
|
138
138
|
this._resetFocus = !0, this._focusCell();
|
|
139
|
-
}
|
|
140
|
-
passive: !0,
|
|
141
|
-
signal: this._abort.signal
|
|
142
|
-
});
|
|
139
|
+
};
|
|
143
140
|
}
|
|
144
141
|
willUpdate(e) {
|
|
145
142
|
super.willUpdate(e), this._initialized && (e.has("wide") && this.resetPosition(), e.has("view") && (this._setChosenYear(), this._chosenMonth = void 0, this._nextCalendarView = this._calendarView = this.view));
|
|
146
143
|
}
|
|
147
144
|
updated(e) {
|
|
148
|
-
super.updated(e), this._setTabIndex(),
|
|
145
|
+
super.updated(e), this._setTabIndex(), we.mostRecentModality === "keyboard" && this._focusCell();
|
|
149
146
|
}
|
|
150
147
|
/** Initializes the component. */
|
|
151
148
|
_init(e) {
|
|
152
|
-
if (!
|
|
149
|
+
if (!ue) {
|
|
153
150
|
if (this.hydrationRequired) {
|
|
154
151
|
this.hydrationComplete.then(() => this._init());
|
|
155
152
|
return;
|
|
156
153
|
}
|
|
157
|
-
if (e && this._assignActiveDate(e), this._wide =
|
|
154
|
+
if (e && this._assignActiveDate(e), this._wide = (this._mediaMatcher.matches(me) ?? !1) && this.wide, this._weeks = this._createWeekRows(this._activeDate), this._years = this._createYearRows(), this._nextMonthWeeks = [[]], this._nextMonthYears = [[]], this._wide) {
|
|
158
155
|
const t = this._dateAdapter.addCalendarMonths(this._activeDate, 1);
|
|
159
156
|
this._nextMonthWeeks = this._createWeekRows(t), this._nextMonthYears = this._createYearRows(b);
|
|
160
157
|
}
|
|
@@ -168,44 +165,44 @@ let at = (() => {
|
|
|
168
165
|
}
|
|
169
166
|
/** Creates the array of weekdays. */
|
|
170
167
|
_setWeekdays() {
|
|
171
|
-
const e = this._dateAdapter.getDayOfWeekNames("narrow"), a = this._dateAdapter.getDayOfWeekNames("long").map((
|
|
172
|
-
long:
|
|
168
|
+
const e = this._dateAdapter.getDayOfWeekNames("narrow"), a = this._dateAdapter.getDayOfWeekNames("long").map((i, r) => ({
|
|
169
|
+
long: i,
|
|
173
170
|
narrow: e[r]
|
|
174
|
-
})),
|
|
175
|
-
this._weekdays = a.slice(
|
|
171
|
+
})), s = this._dateAdapter.getFirstDayOfWeek();
|
|
172
|
+
this._weekdays = a.slice(s).concat(a.slice(0, s));
|
|
176
173
|
}
|
|
177
174
|
/** Creates the rows for each week. */
|
|
178
175
|
_createWeekRows(e) {
|
|
179
|
-
const t = this._dateAdapter.getNumDaysInMonth(e), a = this._dateAdapter.getDateNames(),
|
|
180
|
-
for (let r = 0, d =
|
|
181
|
-
d === O && (
|
|
176
|
+
const t = this._dateAdapter.getNumDaysInMonth(e), a = this._dateAdapter.getDateNames(), s = [[]], i = this._dateAdapter.getFirstWeekOffset(e);
|
|
177
|
+
for (let r = 0, d = i; r < t; r++, d++) {
|
|
178
|
+
d === O && (s.push([]), d = 0);
|
|
182
179
|
const _ = this._dateAdapter.createDate(this._dateAdapter.getYear(e), this._dateAdapter.getMonth(e), r + 1);
|
|
183
|
-
|
|
180
|
+
s[s.length - 1].push({
|
|
184
181
|
value: this._dateAdapter.toIso8601(_),
|
|
185
182
|
dayValue: a[r],
|
|
186
183
|
monthValue: String(this._dateAdapter.getMonth(_)),
|
|
187
184
|
yearValue: String(this._dateAdapter.getYear(_))
|
|
188
185
|
});
|
|
189
186
|
}
|
|
190
|
-
return
|
|
187
|
+
return s;
|
|
191
188
|
}
|
|
192
189
|
/** Creates the rows for the month selection view. */
|
|
193
190
|
_createMonthRows() {
|
|
194
|
-
const e = this._dateAdapter.getMonthNames("short"), t = new Array(12).fill(null).map((
|
|
191
|
+
const e = this._dateAdapter.getMonthNames("short"), t = new Array(12).fill(null).map((i, r) => ({
|
|
195
192
|
value: e[r],
|
|
196
193
|
longValue: this._monthNames[r],
|
|
197
194
|
monthValue: r + 1
|
|
198
|
-
})), a = 12 / I,
|
|
199
|
-
for (let
|
|
200
|
-
|
|
201
|
-
this._months =
|
|
195
|
+
})), a = 12 / I, s = [];
|
|
196
|
+
for (let i = 0; i < a; i++)
|
|
197
|
+
s.push(t.slice(I * i, I * (i + 1)));
|
|
198
|
+
this._months = s;
|
|
202
199
|
}
|
|
203
200
|
/** Creates the rows for the year selection view. */
|
|
204
201
|
_createYearRows(e = 0) {
|
|
205
|
-
const t = this._getStartValueYearView(), a = new Array(b).fill(0).map((r, d) => t + e + d),
|
|
206
|
-
for (let r = 0; r <
|
|
207
|
-
|
|
208
|
-
return
|
|
202
|
+
const t = this._getStartValueYearView(), a = new Array(b).fill(0).map((r, d) => t + e + d), s = b / C, i = [];
|
|
203
|
+
for (let r = 0; r < s; r++)
|
|
204
|
+
i.push(a.slice(C * r, C * (r + 1)));
|
|
205
|
+
return i;
|
|
209
206
|
}
|
|
210
207
|
/**
|
|
211
208
|
* Calculates the first year that will be shown in the year selection panel.
|
|
@@ -225,30 +222,30 @@ let at = (() => {
|
|
|
225
222
|
}
|
|
226
223
|
/** Checks if date is within the min-max range. */
|
|
227
224
|
_isDayInRange(e) {
|
|
228
|
-
if (!this.
|
|
225
|
+
if (!this.min && !this.max)
|
|
229
226
|
return !0;
|
|
230
|
-
const t = this._dateAdapter.isValid(this.
|
|
227
|
+
const t = this._dateAdapter.isValid(this.min) && this._dateAdapter.compareDate(this.min, this._dateAdapter.deserialize(e)) > 0, a = this._dateAdapter.isValid(this.max) && this._dateAdapter.compareDate(this.max, this._dateAdapter.deserialize(e)) < 0;
|
|
231
228
|
return !(t || a);
|
|
232
229
|
}
|
|
233
|
-
_isMonthInRange(e) {
|
|
234
|
-
if (!this.
|
|
230
|
+
_isMonthInRange(e, t) {
|
|
231
|
+
if (!this.min && !this.max)
|
|
235
232
|
return !0;
|
|
236
|
-
const
|
|
237
|
-
return !(
|
|
233
|
+
const a = this._dateAdapter.isValid(this.min) && (t < this._dateAdapter.getYear(this.min) || t === this._dateAdapter.getYear(this.min) && e < this._dateAdapter.getMonth(this.min)), s = this._dateAdapter.isValid(this.max) && (t > this._dateAdapter.getYear(this.max) || t === this._dateAdapter.getYear(this.max) && e > this._dateAdapter.getMonth(this.max));
|
|
234
|
+
return !(a || s);
|
|
238
235
|
}
|
|
239
236
|
_isYearInRange(e) {
|
|
240
|
-
if (!this.
|
|
237
|
+
if (!this.min && !this.max)
|
|
241
238
|
return !0;
|
|
242
|
-
const t = this._dateAdapter.isValid(this.
|
|
239
|
+
const t = this._dateAdapter.isValid(this.min) && this._dateAdapter.getYear(this.min) > e, a = this._dateAdapter.isValid(this.max) && this._dateAdapter.getYear(this.max) < e;
|
|
243
240
|
return !(t || a);
|
|
244
241
|
}
|
|
245
242
|
// Implementation adapted from https://github.com/angular/components/blob/main/src/material/datepicker/year-view.ts#L366
|
|
246
|
-
_isMonthFilteredOut(e) {
|
|
243
|
+
_isMonthFilteredOut(e, t) {
|
|
247
244
|
if (!this.dateFilter)
|
|
248
245
|
return !0;
|
|
249
|
-
const
|
|
250
|
-
for (let
|
|
251
|
-
if (this.dateFilter(
|
|
246
|
+
const a = this._dateAdapter.createDate(t, e, 1);
|
|
247
|
+
for (let s = a; this._dateAdapter.getMonth(s) == e; s = this._dateAdapter.addCalendarDays(s, 1))
|
|
248
|
+
if (this.dateFilter(s))
|
|
252
249
|
return !0;
|
|
253
250
|
return !1;
|
|
254
251
|
}
|
|
@@ -270,12 +267,12 @@ let at = (() => {
|
|
|
270
267
|
this.view === "month" ? this._chosenYear = this._dateAdapter.getYear(this._dateAdapter.deserialize(this._selected) ?? this.selected ?? this.now) : this._chosenYear = void 0;
|
|
271
268
|
}
|
|
272
269
|
_assignActiveDate(e) {
|
|
273
|
-
if (this.
|
|
274
|
-
this._activeDate = this.
|
|
270
|
+
if (this.min && this._dateAdapter.compareDate(this.min, e) > 0) {
|
|
271
|
+
this._activeDate = this.min;
|
|
275
272
|
return;
|
|
276
273
|
}
|
|
277
|
-
if (this.
|
|
278
|
-
this._activeDate = this.
|
|
274
|
+
if (this.max && this._dateAdapter.compareDate(this.max, e) < 0) {
|
|
275
|
+
this._activeDate = this.max;
|
|
279
276
|
return;
|
|
280
277
|
}
|
|
281
278
|
this._activeDate = e;
|
|
@@ -291,10 +288,10 @@ let at = (() => {
|
|
|
291
288
|
this._init(this._dateAdapter.addCalendarYears(this._activeDate, e));
|
|
292
289
|
}
|
|
293
290
|
_prevDisabled(e) {
|
|
294
|
-
return this.
|
|
291
|
+
return this.min ? this._dateAdapter.compareDate(e, this.min) < 0 : !1;
|
|
295
292
|
}
|
|
296
293
|
_nextDisabled(e) {
|
|
297
|
-
return this.
|
|
294
|
+
return this.max ? this._dateAdapter.compareDate(e, this.max) > 0 : !1;
|
|
298
295
|
}
|
|
299
296
|
/** Checks if the "previous month" button should be disabled. */
|
|
300
297
|
_previousMonthDisabled() {
|
|
@@ -311,7 +308,7 @@ let at = (() => {
|
|
|
311
308
|
return this._prevDisabled(e);
|
|
312
309
|
}
|
|
313
310
|
_nextYearDisabled() {
|
|
314
|
-
const e = this._dateAdapter.createDate(this._dateAdapter.getYear(this._activeDate) + 1, 1, 1);
|
|
311
|
+
const e = this._dateAdapter.createDate(this._dateAdapter.getYear(this._activeDate) + (this._wide ? 2 : 1), 1, 1);
|
|
315
312
|
return this._nextDisabled(e);
|
|
316
313
|
}
|
|
317
314
|
_previousYearRangeDisabled() {
|
|
@@ -319,8 +316,8 @@ let at = (() => {
|
|
|
319
316
|
return this._prevDisabled(e);
|
|
320
317
|
}
|
|
321
318
|
_nextYearRangeDisabled() {
|
|
322
|
-
const e =
|
|
323
|
-
return this._nextDisabled(
|
|
319
|
+
const e = this._wide ? this._nextMonthYears : this._years, t = e[e.length - 1], a = t[t.length - 1], s = this._dateAdapter.createDate(a + 1, 1, 1);
|
|
320
|
+
return this._nextDisabled(s);
|
|
324
321
|
}
|
|
325
322
|
_handleTableBlur(e) {
|
|
326
323
|
(e == null ? void 0 : e.localName) !== "button" && this._setTabIndex();
|
|
@@ -336,9 +333,9 @@ let at = (() => {
|
|
|
336
333
|
return (!t || t != null && t.disabled) && (t = this.shadowRoot.querySelector(".sbb-calendar__cell:not([disabled])")), t || null;
|
|
337
334
|
}
|
|
338
335
|
_handleKeyboardEvent(e, t) {
|
|
339
|
-
|
|
340
|
-
const a = this._cells,
|
|
341
|
-
|
|
336
|
+
ye(e) && e.preventDefault();
|
|
337
|
+
const a = this._cells, s = a.findIndex((d) => d === e.target), i = this._navigateByKeyboard(e, s, a, t), r = this.shadowRoot.activeElement;
|
|
338
|
+
i !== r && (i.tabIndex = 0, i == null || i.focus(), r.tabIndex = -1);
|
|
342
339
|
}
|
|
343
340
|
/**
|
|
344
341
|
* Gets the index of the element to move to, based on a list of elements (which can be potentially disabled),
|
|
@@ -346,8 +343,8 @@ let at = (() => {
|
|
|
346
343
|
* In the day view, the `day?: Day` parameter is mandatory for calculation,
|
|
347
344
|
* while in month and year view it's not due to the fixed amount of rendered cells.
|
|
348
345
|
*/
|
|
349
|
-
_navigateByKeyboard(e, t, a,
|
|
350
|
-
const { elementIndexForWideMode:
|
|
346
|
+
_navigateByKeyboard(e, t, a, s) {
|
|
347
|
+
const { elementIndexForWideMode: i, offsetForWideMode: r, lastElementIndexForWideMode: d, verticalOffset: _ } = this._calculateParametersForKeyboardNavigation(a, t, s);
|
|
351
348
|
switch (e.key) {
|
|
352
349
|
case "ArrowUp":
|
|
353
350
|
return this._findNext(a, t, -_);
|
|
@@ -360,7 +357,7 @@ let at = (() => {
|
|
|
360
357
|
case "Home":
|
|
361
358
|
return this._findFirst(a, r);
|
|
362
359
|
case "PageUp":
|
|
363
|
-
return this._findFirstOnColumn(a,
|
|
360
|
+
return this._findFirstOnColumn(a, i, r, _);
|
|
364
361
|
case "PageDown":
|
|
365
362
|
return this._findLastOnColumn(a, t, d, _);
|
|
366
363
|
case "End":
|
|
@@ -380,14 +377,15 @@ let at = (() => {
|
|
|
380
377
|
_calculateParametersForKeyboardNavigation(e, t, a) {
|
|
381
378
|
switch (this._calendarView) {
|
|
382
379
|
case "day": {
|
|
383
|
-
const
|
|
380
|
+
const s = +a.dayValue - 1;
|
|
384
381
|
return {
|
|
385
382
|
verticalOffset: O,
|
|
386
|
-
elementIndexForWideMode:
|
|
387
|
-
offsetForWideMode: t -
|
|
388
|
-
lastElementIndexForWideMode: t ===
|
|
383
|
+
elementIndexForWideMode: s,
|
|
384
|
+
offsetForWideMode: t - s,
|
|
385
|
+
lastElementIndexForWideMode: t === s ? this._dateAdapter.getNumDaysInMonth(this._dateAdapter.addCalendarMonths(this._dateAdapter.deserialize(a.value), -1)) : e.length
|
|
389
386
|
};
|
|
390
387
|
}
|
|
388
|
+
// Month view is not dependent from `wide` value, so some parameters are fixed.
|
|
391
389
|
case "month":
|
|
392
390
|
return {
|
|
393
391
|
verticalOffset: I,
|
|
@@ -396,12 +394,12 @@ let at = (() => {
|
|
|
396
394
|
lastElementIndexForWideMode: 12
|
|
397
395
|
};
|
|
398
396
|
case "year": {
|
|
399
|
-
const
|
|
397
|
+
const s = Math.trunc(t / b) * b, i = s === 0 ? t : t - b;
|
|
400
398
|
return {
|
|
401
|
-
verticalOffset:
|
|
402
|
-
elementIndexForWideMode:
|
|
403
|
-
offsetForWideMode: t -
|
|
404
|
-
lastElementIndexForWideMode:
|
|
399
|
+
verticalOffset: C,
|
|
400
|
+
elementIndexForWideMode: i,
|
|
401
|
+
offsetForWideMode: t - i,
|
|
402
|
+
lastElementIndexForWideMode: s === 0 ? b : b * 2
|
|
405
403
|
};
|
|
406
404
|
}
|
|
407
405
|
}
|
|
@@ -411,11 +409,11 @@ let at = (() => {
|
|
|
411
409
|
* If the found element is disabled, it continues adding `delta` until it finds an enabled one in the array bounds.
|
|
412
410
|
*/
|
|
413
411
|
_findNext(e, t, a) {
|
|
414
|
-
var
|
|
415
|
-
let
|
|
416
|
-
for (;
|
|
417
|
-
|
|
418
|
-
return e[
|
|
412
|
+
var i;
|
|
413
|
+
let s = t + a;
|
|
414
|
+
for (; s < e.length && ((i = e[s]) != null && i.disabled); )
|
|
415
|
+
s += a;
|
|
416
|
+
return e[s] ?? e[t];
|
|
419
417
|
}
|
|
420
418
|
/** Find the first enabled element in the provided array. */
|
|
421
419
|
_findFirst(e, t) {
|
|
@@ -426,14 +424,14 @@ let at = (() => {
|
|
|
426
424
|
return e[t].disabled ? this._findNext(e, t, -1) : e[t];
|
|
427
425
|
}
|
|
428
426
|
/** Find the first enabled element in the same column of the provided array. */
|
|
429
|
-
_findFirstOnColumn(e, t, a,
|
|
430
|
-
const
|
|
431
|
-
return e[
|
|
427
|
+
_findFirstOnColumn(e, t, a, s) {
|
|
428
|
+
const i = t % s + a;
|
|
429
|
+
return e[i].disabled ? this._findNext(e, i, s) : e[i];
|
|
432
430
|
}
|
|
433
431
|
/** Find the last enabled element in the same column of the provided array. */
|
|
434
|
-
_findLastOnColumn(e, t, a,
|
|
435
|
-
const
|
|
436
|
-
return e[
|
|
432
|
+
_findLastOnColumn(e, t, a, s) {
|
|
433
|
+
const i = t + Math.trunc((a - t - 1) / s) * s;
|
|
434
|
+
return e[i].disabled ? this._findNext(e, i, -s) : e[i];
|
|
437
435
|
}
|
|
438
436
|
_resetCalendarView(e = !1) {
|
|
439
437
|
this._resetFocus = !0, this._activeDate = this.selected ?? this.now, this._setChosenYear(), this._chosenMonth = void 0, this._nextCalendarView = this._calendarView = this.view, e && this._startTableTransition();
|
|
@@ -443,7 +441,7 @@ let at = (() => {
|
|
|
443
441
|
const e = this._wide ? this._dateAdapter.addCalendarMonths(this._activeDate, 1) : void 0;
|
|
444
442
|
return n`
|
|
445
443
|
<div class="sbb-calendar__controls">
|
|
446
|
-
${this._getArrow("left", () => this._goToDifferentMonth(-1),
|
|
444
|
+
${this._getArrow("left", () => this._goToDifferentMonth(-1), ke[this._language.current], this._previousMonthDisabled())}
|
|
447
445
|
<div class="sbb-calendar__controls-month">
|
|
448
446
|
${this._createLabelForDayView(this._activeDate)}
|
|
449
447
|
${this._wide ? this._createLabelForDayView(e) : g}
|
|
@@ -451,7 +449,7 @@ let at = (() => {
|
|
|
451
449
|
${this._createAriaLabelForDayView(this._activeDate, e)}
|
|
452
450
|
</sbb-screen-reader-only>
|
|
453
451
|
</div>
|
|
454
|
-
${this._getArrow("right", () => this._goToDifferentMonth(1),
|
|
452
|
+
${this._getArrow("right", () => this._goToDifferentMonth(1), Ve[this._language.current], this._nextMonthDisabled())}
|
|
455
453
|
</div>
|
|
456
454
|
<div class="sbb-calendar__table-container sbb-calendar__table-day-view">
|
|
457
455
|
${this._createDayTable(this._weeks)}
|
|
@@ -465,9 +463,8 @@ let at = (() => {
|
|
|
465
463
|
return n`
|
|
466
464
|
<button
|
|
467
465
|
type="button"
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
aria-label="${Fe[this._language.current]} ${t}"
|
|
466
|
+
class="sbb-calendar__date-selection sbb-calendar__controls-change-date"
|
|
467
|
+
aria-label="${ze[this._language.current]} ${t}"
|
|
471
468
|
@click=${() => {
|
|
472
469
|
this._resetFocus = !0, this._nextCalendarView = "year", this._startTableTransition();
|
|
473
470
|
}}
|
|
@@ -515,11 +512,11 @@ let at = (() => {
|
|
|
515
512
|
/** Creates the table body with the day cells. For the first row, it also considers the possible day's offset. */
|
|
516
513
|
_createDayTableBody(e) {
|
|
517
514
|
const t = this._dateAdapter.toIso8601(this.now);
|
|
518
|
-
return e.map((a,
|
|
519
|
-
const
|
|
520
|
-
return
|
|
515
|
+
return e.map((a, s) => {
|
|
516
|
+
const i = O - a.length;
|
|
517
|
+
return s === 0 && i ? n`
|
|
521
518
|
<tr>
|
|
522
|
-
${[...Array(
|
|
519
|
+
${[...Array(i).keys()].map(() => n`<td
|
|
523
520
|
class="sbb-calendar__table-data"
|
|
524
521
|
data-day=${`0 ${a[0].monthValue} ${a[0].yearValue}`}
|
|
525
522
|
></td>`)}
|
|
@@ -533,7 +530,7 @@ let at = (() => {
|
|
|
533
530
|
/** Creates the cells for the daily view. */
|
|
534
531
|
_createDayCells(e, t) {
|
|
535
532
|
return e.map((a) => {
|
|
536
|
-
const
|
|
533
|
+
const s = !this._isDayInRange(a.value), i = !this._dateFilter(this._dateAdapter.deserialize(a.value)), r = !!this._selected && a.value === this._selected, d = `${a.dayValue} ${a.monthValue} ${a.yearValue}`, _ = a.value === t;
|
|
537
534
|
return n`
|
|
538
535
|
<td
|
|
539
536
|
class=${R({
|
|
@@ -547,17 +544,17 @@ let at = (() => {
|
|
|
547
544
|
"sbb-calendar__day": !0,
|
|
548
545
|
"sbb-calendar__cell-current": _,
|
|
549
546
|
"sbb-calendar__selected": r,
|
|
550
|
-
"sbb-calendar__crossed-out": !
|
|
547
|
+
"sbb-calendar__crossed-out": !s && i
|
|
551
548
|
})}
|
|
552
549
|
@click=${() => this._selectDate(a.value)}
|
|
553
|
-
?disabled=${
|
|
550
|
+
?disabled=${s || i}
|
|
554
551
|
aria-label=${this._dateAdapter.getAccessibilityFormatDate(a.value)}
|
|
555
552
|
aria-pressed=${r}
|
|
556
|
-
aria-disabled=${
|
|
553
|
+
aria-disabled=${s || i}
|
|
557
554
|
aria-current=${_ ? "date" : g}
|
|
558
555
|
data-day=${d || g}
|
|
559
556
|
tabindex="-1"
|
|
560
|
-
@keydown=${(
|
|
557
|
+
@keydown=${(y) => this._handleKeyboardEvent(y, a)}
|
|
561
558
|
sbb-popover-close
|
|
562
559
|
>
|
|
563
560
|
${a.dayValue}
|
|
@@ -570,13 +567,13 @@ let at = (() => {
|
|
|
570
567
|
_renderMonthView() {
|
|
571
568
|
return n`
|
|
572
569
|
<div class="sbb-calendar__controls">
|
|
573
|
-
${this._getArrow("left", () => this._goToDifferentYear(-1),
|
|
570
|
+
${this._getArrow("left", () => this._goToDifferentYear(-1), Fe[this._language.current], this._previousYearDisabled())}
|
|
574
571
|
<div class="sbb-calendar__controls-month">${this._createLabelForMonthView()}</div>
|
|
575
|
-
${this._getArrow("right", () => this._goToDifferentYear(1),
|
|
572
|
+
${this._getArrow("right", () => this._goToDifferentYear(1), Re[this._language.current], this._nextYearDisabled())}
|
|
576
573
|
</div>
|
|
577
574
|
<div class="sbb-calendar__table-container sbb-calendar__table-month-view">
|
|
578
575
|
${this._createMonthTable(this._months, this._chosenYear)}
|
|
579
|
-
${this._wide ? this._createMonthTable(this._months, this._chosenYear + 1
|
|
576
|
+
${this._wide ? this._createMonthTable(this._months, this._chosenYear + 1) : g}
|
|
580
577
|
</div>
|
|
581
578
|
`;
|
|
582
579
|
}
|
|
@@ -595,11 +592,11 @@ let at = (() => {
|
|
|
595
592
|
<sbb-screen-reader-only role="status"> ${this._chosenYear} </sbb-screen-reader-only>`;
|
|
596
593
|
}
|
|
597
594
|
/** Creates the table for the month selection view. */
|
|
598
|
-
_createMonthTable(e, t
|
|
595
|
+
_createMonthTable(e, t) {
|
|
599
596
|
return n`
|
|
600
597
|
<table
|
|
601
598
|
class="sbb-calendar__table"
|
|
602
|
-
@animationend=${(
|
|
599
|
+
@animationend=${(a) => this._tableAnimationEnd(a)}
|
|
603
600
|
>
|
|
604
601
|
${this._wide ? n`<thead class="sbb-calendar__table-header" aria-hidden="true">
|
|
605
602
|
<tr class="sbb-calendar__table-header-row">
|
|
@@ -607,10 +604,10 @@ let at = (() => {
|
|
|
607
604
|
</tr>
|
|
608
605
|
</thead>` : g}
|
|
609
606
|
<tbody class="sbb-calendar__table-body">
|
|
610
|
-
${e.map((
|
|
607
|
+
${e.map((a) => n`
|
|
611
608
|
<tr>
|
|
612
|
-
${
|
|
613
|
-
const
|
|
609
|
+
${a.map((s) => {
|
|
610
|
+
const i = !this._isMonthInRange(s.monthValue, t), r = !this._isMonthFilteredOut(s.monthValue, t), d = this._selected ? this._dateAdapter.getMonth(this._dateAdapter.deserialize(this._selected)) : void 0, _ = this._selected ? this._dateAdapter.getYear(this._dateAdapter.deserialize(this._selected)) : void 0, y = !!this._selected && t === _ && s.monthValue === d, T = t === this._dateAdapter.getYear(this.now) && this._dateAdapter.getMonth(this.now) === s.monthValue;
|
|
614
611
|
return n` <td
|
|
615
612
|
class=${R({
|
|
616
613
|
"sbb-calendar__table-data": !0,
|
|
@@ -621,18 +618,18 @@ let at = (() => {
|
|
|
621
618
|
class=${R({
|
|
622
619
|
"sbb-calendar__cell": !0,
|
|
623
620
|
"sbb-calendar__pill": !0,
|
|
624
|
-
"sbb-calendar__cell-current":
|
|
625
|
-
"sbb-calendar__crossed-out": !
|
|
626
|
-
"sbb-calendar__selected":
|
|
621
|
+
"sbb-calendar__cell-current": T,
|
|
622
|
+
"sbb-calendar__crossed-out": !i && r,
|
|
623
|
+
"sbb-calendar__selected": y
|
|
627
624
|
})}
|
|
628
|
-
@click=${() => this._onMonthSelection(s.monthValue, t
|
|
629
|
-
?disabled=${
|
|
630
|
-
aria-label=${`${s.longValue} ${
|
|
631
|
-
aria-pressed=${
|
|
632
|
-
aria-disabled=${String(
|
|
625
|
+
@click=${() => this._onMonthSelection(s.monthValue, t)}
|
|
626
|
+
?disabled=${i || r}
|
|
627
|
+
aria-label=${`${s.longValue} ${t}`}
|
|
628
|
+
aria-pressed=${y}
|
|
629
|
+
aria-disabled=${String(i || r)}
|
|
633
630
|
tabindex="-1"
|
|
634
631
|
data-month=${s.monthValue || g}
|
|
635
|
-
@keydown=${(
|
|
632
|
+
@keydown=${(N) => this._handleKeyboardEvent(N)}
|
|
636
633
|
>
|
|
637
634
|
${s.value}
|
|
638
635
|
</button>
|
|
@@ -645,16 +642,16 @@ let at = (() => {
|
|
|
645
642
|
`;
|
|
646
643
|
}
|
|
647
644
|
/** Select the month and change the view to day selection. */
|
|
648
|
-
_onMonthSelection(e, t
|
|
649
|
-
this._chosenMonth =
|
|
645
|
+
_onMonthSelection(e, t) {
|
|
646
|
+
this._chosenMonth = e, this._nextCalendarView = "day", this._init(this._dateAdapter.createDate(t, this._chosenMonth, this._dateAdapter.getDate(this._activeDate))), this._startTableTransition();
|
|
650
647
|
}
|
|
651
648
|
/** Render the view for the year selection. */
|
|
652
649
|
_renderYearView() {
|
|
653
650
|
return n`
|
|
654
651
|
<div class="sbb-calendar__controls">
|
|
655
|
-
${this._getArrow("left", () => this._goToDifferentYearRange(-b),
|
|
652
|
+
${this._getArrow("left", () => this._goToDifferentYearRange(-b), Ie(b)[this._language.current], this._previousYearRangeDisabled())}
|
|
656
653
|
<div class="sbb-calendar__controls-month">${this._createLabelForYearView()}</div>
|
|
657
|
-
${this._getArrow("right", () => this._goToDifferentYearRange(b),
|
|
654
|
+
${this._getArrow("right", () => this._goToDifferentYearRange(b), Ce(b)[this._language.current], this._nextYearRangeDisabled())}
|
|
658
655
|
</div>
|
|
659
656
|
<div class="sbb-calendar__table-container sbb-calendar__table-year-view">
|
|
660
657
|
${this._createYearTable(this._years)}
|
|
@@ -663,31 +660,31 @@ let at = (() => {
|
|
|
663
660
|
`;
|
|
664
661
|
}
|
|
665
662
|
/** Creates the button arrow for all the views. */
|
|
666
|
-
_getArrow(e, t, a,
|
|
663
|
+
_getArrow(e, t, a, s) {
|
|
667
664
|
return n`<sbb-secondary-button
|
|
668
665
|
size="m"
|
|
669
666
|
icon-name="chevron-small-${e}-small"
|
|
670
667
|
aria-label=${a}
|
|
671
668
|
@click=${t}
|
|
672
|
-
?disabled=${
|
|
669
|
+
?disabled=${s}
|
|
673
670
|
id="sbb-calendar__controls-${e === "left" ? "previous" : "next"}"
|
|
674
671
|
></sbb-secondary-button>`;
|
|
675
672
|
}
|
|
676
673
|
/** Creates the label with the year range for the yearly view. */
|
|
677
674
|
_createLabelForYearView() {
|
|
678
|
-
const e = this._years.flat()[0], t = (
|
|
675
|
+
const e = this._years.flat()[0], t = (this._wide ? this._nextMonthYears : this._years).flat(), a = t[t.length - 1], s = `${e} - ${a}`;
|
|
679
676
|
return n`
|
|
680
677
|
<button
|
|
681
678
|
type="button"
|
|
682
679
|
id="sbb-calendar__year-selection"
|
|
683
680
|
class="sbb-calendar__controls-change-date"
|
|
684
|
-
aria-label="${fe[this._language.current]} ${
|
|
681
|
+
aria-label="${fe[this._language.current]} ${s}"
|
|
685
682
|
@click=${() => this._resetCalendarView(!0)}
|
|
686
683
|
>
|
|
687
|
-
${
|
|
684
|
+
${s}
|
|
688
685
|
<sbb-icon name="chevron-small-up-small"></sbb-icon>
|
|
689
686
|
</button>
|
|
690
|
-
<sbb-screen-reader-only role="status"> ${
|
|
687
|
+
<sbb-screen-reader-only role="status"> ${s} </sbb-screen-reader-only>
|
|
691
688
|
`;
|
|
692
689
|
}
|
|
693
690
|
/** Creates the table for the year selection view. */
|
|
@@ -695,31 +692,31 @@ let at = (() => {
|
|
|
695
692
|
const a = this.now;
|
|
696
693
|
return n` <table
|
|
697
694
|
class="sbb-calendar__table"
|
|
698
|
-
@animationend=${(
|
|
695
|
+
@animationend=${(s) => this._tableAnimationEnd(s)}
|
|
699
696
|
>
|
|
700
697
|
<tbody class="sbb-calendar__table-body">
|
|
701
|
-
${e.map((
|
|
702
|
-
${
|
|
703
|
-
const r = !this._isYearInRange(
|
|
698
|
+
${e.map((s) => n` <tr>
|
|
699
|
+
${s.map((i) => {
|
|
700
|
+
const r = !this._isYearInRange(i), d = !this._isYearFilteredOut(i), _ = this._selected ? this._dateAdapter.getYear(this._dateAdapter.deserialize(this._selected)) : void 0, y = !!this._selected && i === _, T = this._dateAdapter.getYear(a) === i;
|
|
704
701
|
return n` <td class="sbb-calendar__table-data sbb-calendar__table-year">
|
|
705
702
|
<button
|
|
706
703
|
class=${R({
|
|
707
704
|
"sbb-calendar__cell": !0,
|
|
708
705
|
"sbb-calendar__pill": !0,
|
|
709
|
-
"sbb-calendar__cell-current":
|
|
706
|
+
"sbb-calendar__cell-current": T,
|
|
710
707
|
"sbb-calendar__crossed-out": !r && d,
|
|
711
|
-
"sbb-calendar__selected":
|
|
708
|
+
"sbb-calendar__selected": y
|
|
712
709
|
})}
|
|
713
|
-
@click=${() => this._onYearSelection(
|
|
710
|
+
@click=${() => this._onYearSelection(i, t)}
|
|
714
711
|
?disabled=${r || d}
|
|
715
|
-
aria-label=${
|
|
716
|
-
aria-pressed=${
|
|
712
|
+
aria-label=${i}
|
|
713
|
+
aria-pressed=${y}
|
|
717
714
|
aria-disabled=${String(r || d)}
|
|
718
715
|
tabindex="-1"
|
|
719
|
-
data-year=${
|
|
716
|
+
data-year=${i || g}
|
|
720
717
|
@keydown=${(N) => this._handleKeyboardEvent(N)}
|
|
721
718
|
>
|
|
722
|
-
${
|
|
719
|
+
${i}
|
|
723
720
|
</button>
|
|
724
721
|
</td>`;
|
|
725
722
|
})}
|
|
@@ -732,7 +729,7 @@ let at = (() => {
|
|
|
732
729
|
this._chosenYear = t ? e - 1 : e, this._nextCalendarView = "month", this._assignActiveDate(this._dateAdapter.createDate(this._chosenYear, this._dateAdapter.getMonth(this._activeDate), this._dateAdapter.getDate(this._activeDate))), this._startTableTransition();
|
|
733
730
|
}
|
|
734
731
|
_getView() {
|
|
735
|
-
if (
|
|
732
|
+
if (ue || this.hydrationRequired)
|
|
736
733
|
return n`${g}`;
|
|
737
734
|
switch (this._calendarView) {
|
|
738
735
|
case "year":
|
|
@@ -755,38 +752,38 @@ let at = (() => {
|
|
|
755
752
|
render() {
|
|
756
753
|
return n`<div class="sbb-calendar__wrapper">${this._getView()}</div>`;
|
|
757
754
|
}
|
|
758
|
-
},
|
|
759
|
-
const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(
|
|
760
|
-
|
|
755
|
+
}, D = new WeakMap(), $ = new WeakMap(), Y = new WeakMap(), M = new WeakMap(), k = new WeakMap(), V = new WeakMap(), z = new WeakMap(), p = l, (() => {
|
|
756
|
+
const e = typeof Symbol == "function" && Symbol.metadata ? Object.create(E[Symbol.metadata] ?? null) : void 0;
|
|
757
|
+
W = [Ye(), A({ type: Boolean })], B = [A()], H = [A()], U = [A()], j = [A()], G = [A()], Q = [A({ attribute: "date-filter" })], Z = [F()], ae = [F()], re = [F()], ne = [F()], oe = [F()], f(l, null, W, { kind: "accessor", name: "wide", static: !1, private: !1, access: { has: (t) => "wide" in t, get: (t) => t.wide, set: (t, a) => {
|
|
761
758
|
t.wide = a;
|
|
762
|
-
} }, metadata: e },
|
|
759
|
+
} }, metadata: e }, L, P), f(l, null, B, { kind: "accessor", name: "view", static: !1, private: !1, access: { has: (t) => "view" in t, get: (t) => t.view, set: (t, a) => {
|
|
763
760
|
t.view = a;
|
|
764
|
-
} }, metadata: e },
|
|
761
|
+
} }, metadata: e }, q, K), f(l, null, H, { kind: "setter", name: "min", static: !1, private: !1, access: { has: (t) => "min" in t, set: (t, a) => {
|
|
765
762
|
t.min = a;
|
|
766
|
-
} }, metadata: e }, null,
|
|
763
|
+
} }, metadata: e }, null, x), f(l, null, U, { kind: "setter", name: "max", static: !1, private: !1, access: { has: (t) => "max" in t, set: (t, a) => {
|
|
767
764
|
t.max = a;
|
|
768
|
-
} }, metadata: e }, null,
|
|
765
|
+
} }, metadata: e }, null, x), f(l, null, j, { kind: "setter", name: "now", static: !1, private: !1, access: { has: (t) => "now" in t, set: (t, a) => {
|
|
769
766
|
t.now = a;
|
|
770
|
-
} }, metadata: e }, null,
|
|
767
|
+
} }, metadata: e }, null, x), f(l, null, G, { kind: "setter", name: "selected", static: !1, private: !1, access: { has: (t) => "selected" in t, set: (t, a) => {
|
|
771
768
|
t.selected = a;
|
|
772
|
-
} }, metadata: e }, null,
|
|
769
|
+
} }, metadata: e }, null, x), f(l, null, Q, { kind: "accessor", name: "dateFilter", static: !1, private: !1, access: { has: (t) => "dateFilter" in t, get: (t) => t.dateFilter, set: (t, a) => {
|
|
773
770
|
t.dateFilter = a;
|
|
774
|
-
} }, metadata: e },
|
|
771
|
+
} }, metadata: e }, J, X), f(l, null, Z, { kind: "accessor", name: "_activeDate", static: !1, private: !1, access: { has: (t) => "_activeDate" in t, get: (t) => t._activeDate, set: (t, a) => {
|
|
775
772
|
t._activeDate = a;
|
|
776
|
-
} }, metadata: e },
|
|
773
|
+
} }, metadata: e }, ee, te), f(l, null, ae, { kind: "accessor", name: "_selected", static: !1, private: !1, access: { has: (t) => "_selected" in t, get: (t) => t._selected, set: (t, a) => {
|
|
777
774
|
t._selected = a;
|
|
778
|
-
} }, metadata: e },
|
|
775
|
+
} }, metadata: e }, se, ie), f(l, null, re, { kind: "setter", name: "_wide", static: !1, private: !1, access: { has: (t) => "_wide" in t, set: (t, a) => {
|
|
779
776
|
t._wide = a;
|
|
780
|
-
} }, metadata: e }, null,
|
|
777
|
+
} }, metadata: e }, null, x), f(l, null, ne, { kind: "accessor", name: "_calendarView", static: !1, private: !1, access: { has: (t) => "_calendarView" in t, get: (t) => t._calendarView, set: (t, a) => {
|
|
781
778
|
t._calendarView = a;
|
|
782
|
-
} }, metadata: e },
|
|
779
|
+
} }, metadata: e }, le, de), f(l, null, oe, { kind: "accessor", name: "_initialized", static: !1, private: !1, access: { has: (t) => "_initialized" in t, get: (t) => t._initialized, set: (t, a) => {
|
|
783
780
|
t._initialized = a;
|
|
784
|
-
} }, metadata: e },
|
|
785
|
-
})(), l.styles =
|
|
781
|
+
} }, metadata: e }, ce, be), f(null, h = { value: p }, o, { kind: "class", name: p.name, metadata: e }, null, m), S = p = h.value, e && Object.defineProperty(p, Symbol.metadata, { enumerable: !0, configurable: !0, writable: !0, value: e });
|
|
782
|
+
})(), l.styles = Te, l.events = {
|
|
786
783
|
dateSelected: "dateSelected"
|
|
787
784
|
}, c(p, m), l);
|
|
788
|
-
return
|
|
785
|
+
return S = p;
|
|
789
786
|
})();
|
|
790
787
|
export {
|
|
791
|
-
|
|
788
|
+
et as SbbCalendarElement
|
|
792
789
|
};
|