@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1780400156 → 5.0.0-next.3-dev.1780406485

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/calendar/_calendar.global.scss +25 -26
  2. package/calendar/calendar/calendar.component.js +1 -1
  3. package/calendar/calendar-day/calendar-day.component.js +1 -1
  4. package/calendar/calendar-month/calendar-month.component.js +1 -1
  5. package/calendar/calendar-year/calendar-year.component.js +1 -1
  6. package/calendar/common/calendar-cell-base-element.js +1 -1
  7. package/calendar-cell-base-element-DHCKK3bU.js +23 -0
  8. package/{calendar-day.component-Caf2w9lS.js → calendar-day.component-DrMWf6-w.js} +2 -2
  9. package/calendar.component-BM4L9oyb.js +987 -0
  10. package/calendar.js +3 -3
  11. package/calendar.pure.js +3 -3
  12. package/core/i18n/i18n.js +4 -4
  13. package/core/styles/_theme.scss +1 -0
  14. package/custom-elements.json +401 -233
  15. package/datepicker/datepicker/datepicker.component.js +45 -27
  16. package/development/calendar/calendar/calendar.component.d.ts +27 -42
  17. package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
  18. package/development/calendar/calendar/calendar.component.js +1 -1
  19. package/development/calendar/calendar-day/calendar-day.component.js +1 -1
  20. package/development/calendar/calendar-month/calendar-month.component.js +2 -2
  21. package/development/calendar/calendar-year/calendar-year.component.js +2 -2
  22. package/development/calendar/common/calendar-cell-base-element.js +1 -1
  23. package/development/calendar-cell-base-element-D9XadTz1.js +38 -0
  24. package/development/calendar-day.component-Zky9Z-Fq.js +139 -0
  25. package/development/calendar.component-C_Yc2PNV.js +1367 -0
  26. package/development/calendar.js +3 -3
  27. package/development/calendar.pure.js +3 -3
  28. package/development/core/decorators/id-reference.d.ts.map +1 -1
  29. package/development/core/decorators/id-reference.js +1 -1
  30. package/development/core/i18n/i18n.js +5 -5
  31. package/development/datepicker/datepicker/datepicker.component.d.ts +2 -0
  32. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  33. package/development/datepicker/datepicker/datepicker.component.js +37 -11
  34. package/lean-off-brand-theme.css +14 -22
  35. package/lean-safety-theme.css +14 -22
  36. package/lean-theme.css +14 -22
  37. package/off-brand-theme.css +14 -22
  38. package/package.json +2 -2
  39. package/safety-theme.css +14 -22
  40. package/standard-theme.css +14 -22
  41. package/calendar-cell-base-element-Dq7Ap5n-.js +0 -23
  42. package/calendar.component-DKKptbyy.js +0 -1082
  43. package/development/calendar-cell-base-element-D_CTwDn9.js +0 -38
  44. package/development/calendar-day.component-Bux4ezpg.js +0 -139
  45. package/development/calendar.component-NvMN01yi.js +0 -1478
@@ -1,38 +0,0 @@
1
- import { unsafeCSS } from "lit";
2
- import { SbbButtonLikeBaseElement, SbbDisabledMixin, SbbPropertyWatcherController, defaultDateAdapter, readConfig } from "./core.js";
3
- //#region src/elements/calendar/common/calendar-cell-base-element.scss?inline
4
- var calendar_cell_base_element_default = ":host {\n display: block;\n --sbb-calendar-cell-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n --sbb-calendar-cell-border-radius: calc(\n var(--sbb-border-radius-4x) + var(--sbb-calendar-cell-border-width)\n );\n}\n@media (forced-colors: active) {\n :host {\n --sbb-calendar-cell-border: transparent;\n }\n}\n\n:host(:is(:state(current),[state--current])) {\n --sbb-calendar-cell-font-weight: bold;\n}\n\n:host(:is(:state(selected),[state--selected])) {\n --sbb-calendar-cell-border: var(--sbb-calendar-cell-border-width) solid var(--sbb-border-color-2);\n}\n\n:host(:disabled) {\n --sbb-calendar-cell-color: var(--sbb-calendar-cell-disabled-color);\n --sbb-calendar-cell-cursor: unset;\n}\n\n:host(:focus-visible) {\n outline: 0;\n}\n\n:host(:not(:disabled):active) {\n --sbb-calendar-cell-background-color: var(--sbb-calendar-cell-background-color-active);\n}\n\n.sbb-action-base {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n position: relative;\n font-size: var(--sbb-calendar-cell-font-size);\n font-weight: var(--sbb-calendar-cell-font-weight);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n cursor: var(--sbb-calendar-cell-cursor);\n color: var(--sbb-calendar-cell-color);\n border-radius: var(--sbb-calendar-cell-border-radius);\n}\n:host(:focus-visible) .sbb-action-base {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n --sbb-focus-outline-offset: 0.0625rem;\n}\n.sbb-action-base::before {\n content: \"\";\n position: absolute;\n background-color: var(--sbb-calendar-cell-background-color);\n inset: var(--sbb-calendar-cell-inset);\n border: var(--sbb-calendar-cell-border);\n border-radius: var(--sbb-calendar-cell-border-radius);\n transition-duration: var(--sbb-calendar-cell-transition-duration);\n transition-timing-function: var(--sbb-calendar-cell-transition-easing-function);\n transition-property: background-color;\n z-index: -1;\n}\n@media (forced-colors: active) {\n :host(:not(:disabled):active) .sbb-action-base::before {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n --sbb-focus-outline-style: initial;\n }\n}\n@media (any-hover: hover) {\n :host(:not(:active, :disabled):hover) .sbb-action-base {\n --sbb-calendar-cell-background-color: var(--sbb-calendar-cell-background-color-hover);\n }\n}\n@media (any-hover: hover) and (forced-colors: active) {\n :host(:not(:active, :disabled):hover) .sbb-action-base::before {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n --sbb-focus-outline-offset: 0.0625rem;\n --sbb-focus-outline-style: initial;\n }\n}\n\n.sbb-calendar-year,\n.sbb-calendar-month {\n height: var(--sbb-calendar-cell-year-month-height);\n width: var(--sbb-calendar-cell-year-month-width);\n padding-block-end: var(--sbb-calendar-cell-padding);\n}\n:host(:is(:state(crossed-out),[state--crossed-out])) .sbb-calendar-year::after,\n:host(:is(:state(crossed-out),[state--crossed-out])) .sbb-calendar-month::after {\n content: \"\";\n height: var(--sbb-calendar-cell-disabled-height);\n width: var(--sbb-calendar-cell-disabled-width);\n position: absolute;\n background-color: var(--sbb-calendar-cell-disabled-color);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.sbb-calendar-weekday,\n.sbb-calendar-weeknumber {\n --sbb-calendar-cell-font-size: var(--sbb-text-font-size-xs);\n --sbb-calendar-cell-font-weight: normal;\n height: var(--sbb-calendar-day-width);\n width: var(--sbb-calendar-day-width);\n color: var(--sbb-calendar-header-color);\n}";
5
- //#endregion
6
- //#region src/elements/calendar/common/calendar-cell-base-element.ts
7
- var SbbCalendarCellBaseElement = class extends SbbDisabledMixin(SbbButtonLikeBaseElement) {
8
- static {
9
- this.styles = [unsafeCSS(calendar_cell_base_element_default)];
10
- }
11
- constructor() {
12
- super();
13
- this.dateAdapter = readConfig().datetime?.dateAdapter ?? defaultDateAdapter;
14
- this.addController(new SbbPropertyWatcherController(this, () => this.getParent(), {
15
- dateFilter: (component) => this.setDisabledFilteredState(component),
16
- min: (component) => this.setDisabledFilteredState(component),
17
- max: (component) => this.setDisabledFilteredState(component),
18
- selected: (component) => this.setSelectedState(component)
19
- }));
20
- }
21
- getParent() {
22
- return this.getRootNode?.()?.host?.closest("sbb-calendar");
23
- }
24
- /**
25
- * Intentionally empty, as buttons are not targeted by form reset.
26
- * @internal
27
- */
28
- formResetCallback() {}
29
- /**
30
- * Intentionally empty, as buttons are not targeted by form restore.
31
- * @internal
32
- */
33
- formStateRestoreCallback(_state, _reason) {}
34
- };
35
- //#endregion
36
- export { SbbCalendarCellBaseElement as t };
37
-
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItY2VsbC1iYXNlLWVsZW1lbnQtRF9DVHdEbjkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NhbGVuZGFyL2NvbW1vbi9jYWxlbmRhci1jZWxsLWJhc2UtZWxlbWVudC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jYWxlbmRhci9jb21tb24vY2FsZW5kYXItY2VsbC1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBibG9jaztcblxuICAtLXNiYi1jYWxlbmRhci1jZWxsLXRyYW5zaXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTJ4KVxuICApO1xuICAtLXNiYi1jYWxlbmRhci1jZWxsLWJvcmRlci1yYWRpdXM6IGNhbGMoXG4gICAgdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtNHgpICsgdmFyKC0tc2JiLWNhbGVuZGFyLWNlbGwtYm9yZGVyLXdpZHRoKVxuICApO1xuXG4gIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLS1zYmItY2FsZW5kYXItY2VsbC1ib3JkZXI6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShjdXJyZW50KSkge1xuICAtLXNiYi1jYWxlbmRhci1jZWxsLWZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG46aG9zdCg6c3RhdGUoc2VsZWN0ZWQpKSB7XG4gIC0tc2JiLWNhbGVuZGFyLWNlbGwtYm9yZGVyOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNiYi1ib3JkZXItY29sb3ItMik7XG59XG5cbjpob3N0KDpkaXNhYmxlZCkge1xuICAtLXNiYi1jYWxlbmRhci1jZWxsLWNvbG9yOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1kaXNhYmxlZC1jb2xvcik7XG4gIC0tc2JiLWNhbGVuZGFyLWNlbGwtY3Vyc29yOiB1bnNldDtcbn1cblxuOmhvc3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogMDtcbn1cblxuOmhvc3QoOm5vdCg6ZGlzYWJsZWQpOmFjdGl2ZSkge1xuICAtLXNiYi1jYWxlbmRhci1jZWxsLWJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLWJhY2tncm91bmQtY29sb3ItYWN0aXZlKTtcbn1cblxuLnNiYi1hY3Rpb24tYmFzZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LXNpemU6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLWZvbnQtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1mb250LXdlaWdodCk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1jdXJzb3IpO1xuICBjb2xvcjogdmFyKC0tc2JiLWNhbGVuZGFyLWNlbGwtY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1ib3JkZXItcmFkaXVzKTtcblxuICA6aG9zdCg6Zm9jdXMtdmlzaWJsZSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG5cbiAgICAtLXNiYi1mb2N1cy1vdXRsaW5lLW9mZnNldDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLWJhY2tncm91bmQtY29sb3IpO1xuICAgIGluc2V0OiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1pbnNldCk7XG4gICAgYm9yZGVyOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLWJvcmRlci1yYWRpdXMpO1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLXRyYW5zaXRpb24tZHVyYXRpb24pO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC10cmFuc2l0aW9uLWVhc2luZy1mdW5jdGlvbik7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvcjtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIDpob3N0KDpub3QoOmRpc2FibGVkKTphY3RpdmUpICYge1xuICAgICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG5cbiAgICAgICAgLy8gQmFzaWNhbGx5IHRoZSBmb2N1cy1vdXRsaW5lIG1peGluIGlzIG1hZGUgZm9yIHVzZSB3aXRoIGZvY3VzLXZpc2libGUuXG4gICAgICAgIC8vIEFzIHdlIHVzZSBpdCBoZXJlIHdpdGggOmFjdGl2ZSwgd2UgaGF2ZSB0byBlbnN1cmUgdGhhdCB0aGUgb3V0bGluZSBpcyBub3Qgb3ZlcnJpZGRlbiB3aGVuIG1vdXNlIG9yIHRvdWNoIGlzIGluIHVzZS5cbiAgICAgICAgLS1zYmItZm9jdXMtb3V0bGluZS1zdHlsZTogaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA6aG9zdCg6bm90KDphY3RpdmUsIDpkaXNhYmxlZCk6aG92ZXIpICYge1xuICAgIEBpbmNsdWRlIHNiYi5ob3Zlci1tcSgkaG92ZXI6IHRydWUpIHtcbiAgICAgIC0tc2JiLWNhbGVuZGFyLWNlbGwtYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWNhbGVuZGFyLWNlbGwtYmFja2dyb3VuZC1jb2xvci1ob3Zlcik7XG5cbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG5cbiAgICAgICAgICAtLXNiYi1mb2N1cy1vdXRsaW5lLW9mZnNldDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfTtcblxuICAgICAgICAgIC8vIEJhc2ljYWxseSB0aGUgZm9jdXMtb3V0bGluZSBtaXhpbiBpcyBtYWRlIGZvciB1c2Ugd2l0aCBmb2N1cy12aXNpYmxlLlxuICAgICAgICAgIC8vIEFzIHdlIHVzZSBpdCBoZXJlIHdpdGggaG92ZXIsIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIG91dGxpbmUgaXMgbm90IG92ZXJyaWRkZW4gd2hlbiBtb3VzZSBvciB0b3VjaCBpcyBpbiB1c2UuXG4gICAgICAgICAgLS1zYmItZm9jdXMtb3V0bGluZS1zdHlsZTogaW5pdGlhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc2JiLWNhbGVuZGFyLXllYXIsXG4uc2JiLWNhbGVuZGFyLW1vbnRoIHtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC15ZWFyLW1vbnRoLWhlaWdodCk7XG4gIHdpZHRoOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC15ZWFyLW1vbnRoLXdpZHRoKTtcbiAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLXBhZGRpbmcpO1xuXG4gIDpob3N0KDpzdGF0ZShjcm9zc2VkLW91dCkpICYge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1kaXNhYmxlZC1oZWlnaHQpO1xuICAgICAgd2lkdGg6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLWRpc2FibGVkLXdpZHRoKTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLWRpc2FibGVkLWNvbG9yKTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC00NWRlZyk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItY2FsZW5kYXItd2Vla2RheSxcbi5zYmItY2FsZW5kYXItd2Vla251bWJlciB7XG4gIC0tc2JiLWNhbGVuZGFyLWNlbGwtZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUteHMpO1xuICAtLXNiYi1jYWxlbmRhci1jZWxsLWZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgaGVpZ2h0OiB2YXIoLS1zYmItY2FsZW5kYXItZGF5LXdpZHRoKTtcbiAgd2lkdGg6IHZhcigtLXNiYi1jYWxlbmRhci1kYXktd2lkdGgpO1xuICBjb2xvcjogdmFyKC0tc2JiLWNhbGVuZGFyLWhlYWRlci1jb2xvcik7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQge1xuICB0eXBlIERhdGVBZGFwdGVyLFxuICBkZWZhdWx0RGF0ZUFkYXB0ZXIsXG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgcmVhZENvbmZpZyxcbiAgU2JiQnV0dG9uTGlrZUJhc2VFbGVtZW50LFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQ2FsZW5kYXJFbGVtZW50IH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vY2FsZW5kYXItY2VsbC1iYXNlLWVsZW1lbnQuc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiQ2FsZW5kYXJDZWxsQmFzZUVsZW1lbnQ8VCA9IERhdGU+IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiQnV0dG9uTGlrZUJhc2VFbGVtZW50LFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlciA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuZ2V0UGFyZW50KCksIHtcbiAgICAgICAgZGF0ZUZpbHRlcjogKGNvbXBvbmVudCkgPT4gdGhpcy5zZXREaXNhYmxlZEZpbHRlcmVkU3RhdGUoY29tcG9uZW50KSxcbiAgICAgICAgbWluOiAoY29tcG9uZW50KSA9PiB0aGlzLnNldERpc2FibGVkRmlsdGVyZWRTdGF0ZShjb21wb25lbnQpLFxuICAgICAgICBtYXg6IChjb21wb25lbnQpID0+IHRoaXMuc2V0RGlzYWJsZWRGaWx0ZXJlZFN0YXRlKGNvbXBvbmVudCksXG4gICAgICAgIHNlbGVjdGVkOiAoY29tcG9uZW50KSA9PiB0aGlzLnNldFNlbGVjdGVkU3RhdGUoY29tcG9uZW50KSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0RGlzYWJsZWRGaWx0ZXJlZFN0YXRlKHBhcmVudDogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KTogdm9pZDtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHNldFNlbGVjdGVkU3RhdGUocGFyZW50OiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBnZXRQYXJlbnQoKTogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuICh0aGlzLmdldFJvb3ROb2RlPy4oKSBhcyBTaGFkb3dSb290KT8uaG9zdD8uY2xvc2VzdDxTYmJDYWxlbmRhckVsZW1lbnQ8VD4+KFxuICAgICAgJ3NiYi1jYWxlbmRhcicsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b25zIGFyZSBub3QgdGFyZ2V0ZWQgYnkgZm9ybSByZXNldC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b25zIGFyZSBub3QgdGFyZ2V0ZWQgYnkgZm9ybSByZXN0b3JlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgX3N0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgKTogdm9pZCB7fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUNnQkEsSUFBc0IsNkJBQXRCLGNBQW1FLGlCQUNqRSx3QkFBd0IsRUFDekI7O0VBQ3dCLEtBQUEsU0FBeUIsQ0FBQyxVQUFVLGtDQUFLLENBQUM7Q0FBRTtDQUduRSxjQUFBO0VBQ0UsTUFBSztFQUhHLEtBQUEsY0FBMkIsV0FBVSxFQUFHLFVBQVUsZUFBZTtFQUl6RSxLQUFLLGNBQ0gsSUFBSSw2QkFBNkIsWUFBWSxLQUFLLFVBQVMsR0FBSTtHQUM3RCxhQUFhLGNBQWMsS0FBSyx5QkFBeUIsU0FBUztHQUNsRSxNQUFNLGNBQWMsS0FBSyx5QkFBeUIsU0FBUztHQUMzRCxNQUFNLGNBQWMsS0FBSyx5QkFBeUIsU0FBUztHQUMzRCxXQUFXLGNBQWMsS0FBSyxpQkFBaUIsU0FBUztHQUN6RCxDQUFDO0NBRU47Q0FLVSxZQUFTO0VBQ2pCLE9BQVEsS0FBSyxjQUFhLEdBQW1CLE1BQU0sUUFDakQsY0FBYztDQUVsQjs7Ozs7Q0FNZ0Isb0JBQWlCLENBQVU7Ozs7O0NBTTNCLHlCQUNkLFFBQ0EsU0FBMEIsQ0FDbkIifQ==
@@ -1,139 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, unsafeCSS } from "lit";
3
- import { property, state } from "lit/decorators.js";
4
- import { SbbCalendarCellBaseElement } from "./calendar/common/calendar-cell-base-element.js";
5
- //#region src/elements/calendar/calendar-day/calendar-day.scss?inline
6
- var calendar_day_default = ":host {\n --sbb-calendar-day-value-height: var(--sbb-spacing-fixed-6x);\n}\n\n.sbb-calendar-day {\n flex-direction: column;\n justify-content: var(--sbb-calendar-cell-justify-content);\n height: var(--sbb-calendar-day-height);\n width: var(--sbb-calendar-day-width);\n padding: var(--sbb-calendar-cell-padding);\n}\n\n.sbb-calendar-day__value {\n height: var(--sbb-calendar-day-value-height);\n}\n:host(:is(:state(crossed-out),[state--crossed-out])) .sbb-calendar-day__value::after {\n content: \"\";\n height: var(--sbb-calendar-cell-disabled-height);\n width: var(--sbb-calendar-cell-disabled-width);\n position: absolute;\n background-color: var(--sbb-calendar-cell-disabled-color);\n inset-block-start: var(--sbb-calendar-day-crossed-out-top);\n inset-inline-start: 50%;\n transform: var(--sbb-calendar-day-crossed-out-translate);\n}\n\n.sbb-calendar-day__extra {\n display: var(--sbb-calendar-day-extra-display);\n height: var(--sbb-calendar-day-extra-height);\n padding: var(--sbb-calendar-cell-padding);\n}\n\n::slotted(*) {\n height: var(--sbb-calendar-day-extra-height);\n}";
7
- //#endregion
8
- //#region src/elements/calendar/calendar-day/calendar-day.component.ts
9
- /**
10
- * It displays a single day cell in the `sbb-calendar` component.
11
- *
12
- * @slot - Use the unnamed slot to add some custom content to the day.
13
- */
14
- var SbbCalendarDayElement = (() => {
15
- let _classSuper = SbbCalendarCellBaseElement;
16
- let _instanceExtraInitializers = [];
17
- let _set_slot_decorators;
18
- let _set_value_decorators;
19
- return class SbbCalendarDayElement extends _classSuper {
20
- constructor() {
21
- super(...arguments);
22
- this._value = (__runInitializers(this, _instanceExtraInitializers), null);
23
- }
24
- static {
25
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
26
- _set_slot_decorators = [property()];
27
- _set_value_decorators = [state()];
28
- __esDecorate(this, null, _set_slot_decorators, {
29
- kind: "setter",
30
- name: "slot",
31
- static: false,
32
- private: false,
33
- access: {
34
- has: (obj) => "slot" in obj,
35
- set: (obj, value) => {
36
- obj.slot = value;
37
- }
38
- },
39
- metadata: _metadata
40
- }, null, _instanceExtraInitializers);
41
- __esDecorate(this, null, _set_value_decorators, {
42
- kind: "setter",
43
- name: "value",
44
- static: false,
45
- private: false,
46
- access: {
47
- has: (obj) => "value" in obj,
48
- set: (obj, value) => {
49
- obj.value = value;
50
- }
51
- },
52
- metadata: _metadata
53
- }, null, _instanceExtraInitializers);
54
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
55
- enumerable: true,
56
- configurable: true,
57
- writable: true,
58
- value: _metadata
59
- });
60
- }
61
- static {
62
- this.elementName = "sbb-calendar-day";
63
- }
64
- static {
65
- this.styles = [unsafeCSS(calendar_day_default)];
66
- }
67
- set slot(value) {
68
- super.slot = value;
69
- this.value = this.dateAdapter.deserialize(value);
70
- }
71
- get slot() {
72
- return super.slot;
73
- }
74
- /** Value of the calendar-day element. */
75
- set value(value) {
76
- const date = this.dateAdapter.getValidDateOrNull(this.dateAdapter.deserialize(value));
77
- if (date) {
78
- this._value = date;
79
- const isToday = this.dateAdapter.sameDate(date, this.dateAdapter.today());
80
- this.toggleState("current", isToday);
81
- this.internals.ariaCurrent = isToday ? "date" : null;
82
- this.internals.ariaLabel = this.dateAdapter.getAccessibilityFormatDate(date);
83
- const parent = this.getParent();
84
- if (parent) {
85
- this.setDisabledFilteredState(parent);
86
- this.setSelectedState(parent);
87
- }
88
- }
89
- }
90
- get value() {
91
- return this._value;
92
- }
93
- connectedCallback() {
94
- super.connectedCallback();
95
- this.tabIndex = -1;
96
- }
97
- /**
98
- * The component is used as the default day cell within the `sbb-calendar`,
99
- * or, if extra content is needed, it can be slotted.
100
- */
101
- getParent() {
102
- return this.closest?.("sbb-calendar") ?? this.getRootNode?.()?.host?.closest("sbb-calendar");
103
- }
104
- setSelectedState(parent) {
105
- const selected = parent.multiple ? parent.selected.some((selDay) => this.dateAdapter.sameDate(this.value, selDay)) : !!parent.selected && this.dateAdapter.compareDate(this.value, parent.selected) === 0;
106
- this.toggleState("selected", selected);
107
- this.internals.ariaPressed = String(selected);
108
- }
109
- setDisabledFilteredState(parent) {
110
- const isFilteredOut = !this._isActiveDate(parent.dateFilter);
111
- const isOutOfRange = !this._isDayInRange(parent.min, parent.max);
112
- this.disabled = isFilteredOut || isOutOfRange;
113
- this.internals.ariaDisabled = String(this.disabled);
114
- this.toggleState("crossed-out", isFilteredOut && !isOutOfRange);
115
- }
116
- _isActiveDate(dateFilter) {
117
- return dateFilter?.(this.value) ?? true;
118
- }
119
- _isDayInRange(min, max) {
120
- if (!min && !max) return true;
121
- return this.dateAdapter.sameDate(this.value, this.dateAdapter.clampDate(this.value, min, max));
122
- }
123
- _handleSlotchange(e) {
124
- this.internals.ariaDescribedByElements = e.target.assignedElements();
125
- }
126
- renderTemplate() {
127
- return html` <span class="sbb-calendar-day__value" aria-hidden="true">
128
- ${this.dateAdapter.getDate(this.value)}
129
- </span>
130
- <span class="sbb-calendar-day__extra">
131
- <slot @slotchange=${(event) => this._handleSlotchange(event)}></slot>
132
- </span>`;
133
- }
134
- };
135
- })();
136
- //#endregion
137
- export { SbbCalendarDayElement as t };
138
-
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZGF5LmNvbXBvbmVudC1CdXg0ZXpwZy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvY2FsZW5kYXIvY2FsZW5kYXItZGF5L2NhbGVuZGFyLWRheS5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jYWxlbmRhci9jYWxlbmRhci1kYXkvY2FsZW5kYXItZGF5LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLWNhbGVuZGFyLWRheS12YWx1ZS1oZWlnaHQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTZ4KTtcbn1cblxuLnNiYi1jYWxlbmRhci1kYXkge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLWp1c3RpZnktY29udGVudCk7XG4gIGhlaWdodDogdmFyKC0tc2JiLWNhbGVuZGFyLWRheS1oZWlnaHQpO1xuICB3aWR0aDogdmFyKC0tc2JiLWNhbGVuZGFyLWRheS13aWR0aCk7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLXBhZGRpbmcpO1xufVxuXG4uc2JiLWNhbGVuZGFyLWRheV9fdmFsdWUge1xuICBoZWlnaHQ6IHZhcigtLXNiYi1jYWxlbmRhci1kYXktdmFsdWUtaGVpZ2h0KTtcblxuICA6aG9zdCg6c3RhdGUoY3Jvc3NlZC1vdXQpKSAmIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGhlaWdodDogdmFyKC0tc2JiLWNhbGVuZGFyLWNlbGwtZGlzYWJsZWQtaGVpZ2h0KTtcbiAgICAgIHdpZHRoOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1kaXNhYmxlZC13aWR0aCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItY2FsZW5kYXItY2VsbC1kaXNhYmxlZC1jb2xvcik7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tc2JiLWNhbGVuZGFyLWRheS1jcm9zc2VkLW91dC10b3ApO1xuICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHZhcigtLXNiYi1jYWxlbmRhci1kYXktY3Jvc3NlZC1vdXQtdHJhbnNsYXRlKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1jYWxlbmRhci1kYXlfX2V4dHJhIHtcbiAgZGlzcGxheTogdmFyKC0tc2JiLWNhbGVuZGFyLWRheS1leHRyYS1kaXNwbGF5KTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItY2FsZW5kYXItZGF5LWV4dHJhLWhlaWdodCk7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1jYWxlbmRhci1jZWxsLXBhZGRpbmcpO1xufVxuXG46OnNsb3R0ZWQoKikge1xuICBoZWlnaHQ6IHZhcigtLXNiYi1jYWxlbmRhci1kYXktZXh0cmEtaGVpZ2h0KTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQ2FsZW5kYXJFbGVtZW50IH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFNiYkNhbGVuZGFyQ2VsbEJhc2VFbGVtZW50IH0gZnJvbSAnLi4vY29tbW9uL2NhbGVuZGFyLWNlbGwtYmFzZS1lbGVtZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vY2FsZW5kYXItZGF5LnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHNpbmdsZSBkYXkgY2VsbCBpbiB0aGUgYHNiYi1jYWxlbmRhcmAgY29tcG9uZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIHNvbWUgY3VzdG9tIGNvbnRlbnQgdG8gdGhlIGRheS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkNhbGVuZGFyRGF5RWxlbWVudDxUID0gRGF0ZT4gZXh0ZW5kcyBTYmJDYWxlbmRhckNlbGxCYXNlRWxlbWVudDxUPiB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItY2FsZW5kYXItZGF5JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3Vuc2FmZUNTUyhzdHlsZSldO1xuXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgc2xvdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgc3VwZXIuc2xvdCA9IHZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmRhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHNsb3QoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3VwZXIuc2xvdDtcbiAgfVxuXG4gIC8qKiBWYWx1ZSBvZiB0aGUgY2FsZW5kYXItZGF5IGVsZW1lbnQuICovXG4gIEBzdGF0ZSgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICBpZiAoZGF0ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSBkYXRlO1xuICAgICAgY29uc3QgaXNUb2RheSA9IHRoaXMuZGF0ZUFkYXB0ZXIuc2FtZURhdGUoZGF0ZSwgdGhpcy5kYXRlQWRhcHRlci50b2RheSgpKTtcbiAgICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2N1cnJlbnQnLCBpc1RvZGF5KTtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFDdXJyZW50ID0gaXNUb2RheSA/ICdkYXRlJyA6IG51bGw7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWwgPSB0aGlzLmRhdGVBZGFwdGVyLmdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKGRhdGUpO1xuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKTtcbiAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlZEZpbHRlcmVkU3RhdGUocGFyZW50KTtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFN0YXRlKHBhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogVCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogVCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMudGFiSW5kZXggPSAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IGlzIHVzZWQgYXMgdGhlIGRlZmF1bHQgZGF5IGNlbGwgd2l0aGluIHRoZSBgc2JiLWNhbGVuZGFyYCxcbiAgICogb3IsIGlmIGV4dHJhIGNvbnRlbnQgaXMgbmVlZGVkLCBpdCBjYW4gYmUgc2xvdHRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXRQYXJlbnQoKTogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY2xvc2VzdD8uPFNiYkNhbGVuZGFyRWxlbWVudDxUPj4oJ3NiYi1jYWxlbmRhcicpID8/XG4gICAgICAodGhpcy5nZXRSb290Tm9kZT8uKCkgYXMgU2hhZG93Um9vdCk/Lmhvc3Q/LmNsb3Nlc3Q8U2JiQ2FsZW5kYXJFbGVtZW50PFQ+Pignc2JiLWNhbGVuZGFyJylcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFNlbGVjdGVkU3RhdGUocGFyZW50OiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHBhcmVudC5tdWx0aXBsZVxuICAgICAgPyAocGFyZW50LnNlbGVjdGVkIGFzIERhdGVbXSkuc29tZSgoc2VsRGF5KSA9PiB0aGlzLmRhdGVBZGFwdGVyLnNhbWVEYXRlKHRoaXMudmFsdWUsIHNlbERheSkpXG4gICAgICA6ICEhcGFyZW50LnNlbGVjdGVkICYmIHRoaXMuZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUodGhpcy52YWx1ZSwgcGFyZW50LnNlbGVjdGVkKSA9PT0gMDtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdzZWxlY3RlZCcsIHNlbGVjdGVkKTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhUHJlc3NlZCA9IFN0cmluZyhzZWxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0RGlzYWJsZWRGaWx0ZXJlZFN0YXRlKHBhcmVudDogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgY29uc3QgaXNGaWx0ZXJlZE91dCA9ICF0aGlzLl9pc0FjdGl2ZURhdGUocGFyZW50LmRhdGVGaWx0ZXIpO1xuICAgIGNvbnN0IGlzT3V0T2ZSYW5nZSA9ICF0aGlzLl9pc0RheUluUmFuZ2UocGFyZW50Lm1pbiwgcGFyZW50Lm1heCk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRmlsdGVyZWRPdXQgfHwgaXNPdXRPZlJhbmdlO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IFN0cmluZyh0aGlzLmRpc2FibGVkKTtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdjcm9zc2VkLW91dCcsIGlzRmlsdGVyZWRPdXQgJiYgIWlzT3V0T2ZSYW5nZSk7XG4gIH1cblxuICBwcml2YXRlIF9pc0FjdGl2ZURhdGUoZGF0ZUZpbHRlcjogKChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbikgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGVGaWx0ZXI/Lih0aGlzLnZhbHVlKSA/PyB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNEYXlJblJhbmdlKG1pbjogVCB8IG51bGwsIG1heDogVCB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoIW1pbiAmJiAhbWF4KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGF0ZUFkYXB0ZXIuc2FtZURhdGUodGhpcy52YWx1ZSwgdGhpcy5kYXRlQWRhcHRlci5jbGFtcERhdGUodGhpcy52YWx1ZSwgbWluLCBtYXgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoZTogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFscy5hcmlhRGVzY3JpYmVkQnlFbGVtZW50cyA9IChlLnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpLmFzc2lnbmVkRWxlbWVudHMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgIDxzcGFuIGNsYXNzPVwic2JiLWNhbGVuZGFyLWRheV9fdmFsdWVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgJHt0aGlzLmRhdGVBZGFwdGVyLmdldERhdGUodGhpcy52YWx1ZSl9XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1jYWxlbmRhci1kYXlfX2V4dHJhXCI+XG4gICAgICAgIDxzbG90IEBzbG90Y2hhbmdlPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5faGFuZGxlU2xvdGNoYW5nZShldmVudCl9Pjwvc2xvdD5cbiAgICAgIDwvc3Bhbj5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItY2FsZW5kYXItZGF5JzogU2JiQ2FsZW5kYXJEYXlFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7SUNhYSwrQkFBcUI7bUJBQW1COzs7O2NBQXhDLDhCQUF3QyxZQUE2Qjs7O0dBaUN4RSxLQUFBLFVBakNHLGtCQUFBLE1BQUEsMEJBQUEsR0FpQ2dCO0VBeUQ3Qjs7OzJCQXRGRyxTQUFRLENBQUU7NEJBVVYsTUFBSyxDQUFFO0dBVFIsYUFBQSxNQUFBLE1BQUEsc0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFvQixPQUFJO0tBQUE7SUFBQTtJQUFBLFVBQUE7R0FBQSxHQUFBLE1BQUEsMEJBQUE7R0FVeEIsYUFBQSxNQUFBLE1BQUEsdUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFXLFFBQUs7S0FBQTtJQUFBO0lBQUEsVUFBQTtHQUFBLEdBQUEsTUFBQSwwQkFBQTs7Ozs7Ozs7O0dBZGdCLEtBQUEsY0FBc0I7RUFBbUI7O0dBQ2xELEtBQUEsU0FBeUIsQ0FBQyxVQUFVLG9CQUFLLENBQUM7RUFBRTtFQUduRSxJQUFvQixLQUFLLE9BQWE7R0FDcEMsTUFBTSxPQUFPO0dBQ2IsS0FBSyxRQUFRLEtBQUssWUFBWSxZQUFZLEtBQUs7RUFDakQ7RUFDQSxJQUFvQixPQUFJO0dBQ3RCLE9BQU8sTUFBTTtFQUNmOztFQUlBLElBQVcsTUFBTSxPQUFlO0dBQzlCLE1BQU0sT0FBTyxLQUFLLFlBQVksbUJBQW1CLEtBQUssWUFBWSxZQUFZLEtBQUssQ0FBQztHQUNwRixJQUFJLE1BQU07SUFDUixLQUFLLFNBQVM7SUFDZCxNQUFNLFVBQVUsS0FBSyxZQUFZLFNBQVMsTUFBTSxLQUFLLFlBQVksTUFBSyxDQUFFO0lBQ3hFLEtBQUssWUFBWSxXQUFXLE9BQU87SUFDbkMsS0FBSyxVQUFVLGNBQWMsVUFBVSxTQUFTO0lBQ2hELEtBQUssVUFBVSxZQUFZLEtBQUssWUFBWSwyQkFBMkIsSUFBSTtJQUMzRSxNQUFNLFNBQVMsS0FBSyxVQUFTO0lBQzdCLElBQUksUUFBUTtLQUNWLEtBQUsseUJBQXlCLE1BQU07S0FDcEMsS0FBSyxpQkFBaUIsTUFBTTtJQUM5QjtHQUNGO0VBQ0Y7RUFDQSxJQUFXLFFBQUs7R0FDZCxPQUFPLEtBQUs7RUFDZDtFQUdnQixvQkFBaUI7R0FDL0IsTUFBTSxrQkFBaUI7R0FDdkIsS0FBSyxXQUFXO0VBQ2xCOzs7OztFQU1tQixZQUFTO0dBQzFCLE9BQ0UsS0FBSyxVQUFpQyxjQUFjLEtBQ25ELEtBQUssY0FBYSxHQUFtQixNQUFNLFFBQStCLGNBQWM7RUFFN0Y7RUFFVSxpQkFBaUIsUUFBNkI7R0FDdEQsTUFBTSxXQUFXLE9BQU8sV0FDbkIsT0FBTyxTQUFvQixNQUFNLFdBQVcsS0FBSyxZQUFZLFNBQVMsS0FBSyxPQUFPLE1BQU0sQ0FBQyxJQUMxRixDQUFDLENBQUMsT0FBTyxZQUFZLEtBQUssWUFBWSxZQUFZLEtBQUssT0FBTyxPQUFPLFFBQVEsTUFBTTtHQUN2RixLQUFLLFlBQVksWUFBWSxRQUFRO0dBQ3JDLEtBQUssVUFBVSxjQUFjLE9BQU8sUUFBUTtFQUM5QztFQUVVLHlCQUF5QixRQUE2QjtHQUM5RCxNQUFNLGdCQUFnQixDQUFDLEtBQUssY0FBYyxPQUFPLFVBQVU7R0FDM0QsTUFBTSxlQUFlLENBQUMsS0FBSyxjQUFjLE9BQU8sS0FBSyxPQUFPLEdBQUc7R0FDL0QsS0FBSyxXQUFXLGlCQUFpQjtHQUNqQyxLQUFLLFVBQVUsZUFBZSxPQUFPLEtBQUssUUFBUTtHQUNsRCxLQUFLLFlBQVksZUFBZSxpQkFBaUIsQ0FBQyxZQUFZO0VBQ2hFO0VBRVEsY0FBYyxZQUFnRDtHQUNwRSxPQUFPLGFBQWEsS0FBSyxLQUFLLEtBQUs7RUFDckM7RUFFUSxjQUFjLEtBQWUsS0FBYTtHQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQ1gsT0FBTztHQUVULE9BQU8sS0FBSyxZQUFZLFNBQVMsS0FBSyxPQUFPLEtBQUssWUFBWSxVQUFVLEtBQUssT0FBTyxLQUFLLEdBQUcsQ0FBQztFQUMvRjtFQUVRLGtCQUFrQixHQUFRO0dBQ2hDLEtBQUssVUFBVSwwQkFBMkIsRUFBRSxPQUEyQixpQkFBZ0I7RUFDekY7RUFFbUIsaUJBQWM7R0FDL0IsT0FBTyxJQUFJO1VBQ0wsS0FBSyxZQUFZLFFBQVEsS0FBSyxLQUFLLEVBQUE7Ozs2QkFHaEIsVUFBaUIsS0FBSyxrQkFBa0IsS0FBSyxFQUFDOztFQUV6RSJ9