@sbb-esta/lyne-elements-dev 4.9.0-dev.1774516800 → 4.9.0-dev.1774530358

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.
@@ -14,7 +14,7 @@ import "./button/secondary-button.js";
14
14
  import "./screen-reader-only.js";
15
15
  import "./container.js";
16
16
  //#region src/elements/overlay/overlay.scss?lit&inline
17
- var m = a`:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--sbb-overlay-background-color: var(--sbb-background-color-3);--sbb-overlay-height: 100%;--sbb-overlay-inset: 0 auto auto 0;--sbb-overlay-padding-block: calc(var(--sbb-spacing-fixed-14x) + var(--sbb-spacing-responsive-l));--sbb-overlay-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-overlay-animation-easing: ease;--sbb-overlay-pointer-events: none;display:none;position:fixed;inset:var(--sbb-overlay-inset);z-index:var(--sbb-overlay-z-index, var(--sbb-overlay-default-z-index))}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){display:block}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-overlay-pointer-events: all}:host([negative]){--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-overlay-color: var(--sbb-color-1-negative);--sbb-overlay-background-color: var(--sbb-background-color-3-negative)}:host(:not(:is(:state(state-closed),[state--state-closed]))){--sbb-overlay-inset: 0}.sbb-overlay__container{background-color:var(--sbb-overlay-background-color);pointer-events:var(--sbb-overlay-pointer-events);display:none;align-items:center;position:fixed;inset:var(--sbb-overlay-inset)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-overlay__container{display:flex;animation-name:open;animation-duration:var(--sbb-overlay-animation-duration);animation-timing-function:var(--sbb-overlay-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-overlay__container{pointer-events:none;animation-name:close}.sbb-overlay{position:absolute;inset-inline:0;margin:auto;padding:0;border:none;height:var(--sbb-overlay-height);overflow:auto;color:var(--sbb-overlay-color)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-overlay{animation-name:open-move-in;animation-duration:var(--sbb-overlay-animation-duration);animation-timing-function:var(--sbb-overlay-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-overlay{animation-name:close-move-out}.sbb-overlay__wrapper{display:flex;flex-direction:column;width:100%;height:var(--sbb-overlay-height);outline:none;position:fixed}@media(min-width:64rem){.sbb-overlay__wrapper{position:sticky;inset-block-start:0;height:auto}}.sbb-overlay__header{position:absolute;inset-inline-start:0;display:flex;pointer-events:none;align-items:start;justify-content:space-between;width:100%;padding:var(--sbb-spacing-responsive-xs);padding-block-end:0;z-index:1}.sbb-overlay__header *{pointer-events:all}.sbb-overlay__close{margin-inline-start:auto}.sbb-overlay__content{--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-overlay__content::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-overlay__content::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-overlay__content::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-overlay__content::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-overlay__content::-webkit-scrollbar-button,.sbb-overlay__content::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-overlay__content{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-overlay__content{height:100vh;overflow:auto;-webkit-overflow-scrolling:touch}.sbb-overlay__content-container{padding-block:var(--sbb-overlay-padding-block)}@keyframes open{0%{opacity:0}to{opacity:1}}@keyframes open-move-in{0%{transform:translateY(var(--sbb-spacing-fixed-4x))}to{transform:translateY(0)}}@keyframes close{0%{opacity:1}to{opacity:0}}@keyframes close-move-out{0%{transform:translateY(0)}to{transform:translateY(var(--sbb-spacing-fixed-4x))}}`, h = 0, g = (() => {
17
+ var m = a`:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);--sbb-scrollbar-color: light-dark( color-mix(in srgb, var(--sbb-color-black) 30%, transparent), color-mix(in srgb, var(--sbb-color-white) 30%, transparent) );--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);--sbb-scrollbar-color-hover: light-dark( color-mix(in srgb, var(--sbb-color-black) 60%, transparent), color-mix(in srgb, var(--sbb-color-white) 60%, transparent) );--sbb-scrollbar-track-color: transparent;--_sbb-overlay-padding-block: calc( var(--sbb-spacing-fixed-14x) + var(--sbb-spacing-responsive-l) );--sbb-overlay-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );display:var(--sbb-overlay-display);position:fixed;inset:var(--sbb-overlay-inset);z-index:var(--sbb-overlay-z-index, var(--sbb-overlay-default-z-index))}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){--sbb-overlay-display: block;--sbb-overlay-container-display: flex}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]))){--sbb-overlay-pointer-events: all}:host([negative]){--sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);--sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);--sbb-overlay-color: var(--sbb-color-1-negative);--sbb-overlay-background-color: var(--sbb-background-color-3-negative)}:host(:not(:is(:state(state-closed),[state--state-closed]))){--sbb-overlay-inset: 0}.sbb-overlay__container{background-color:var(--sbb-overlay-background-color);pointer-events:var(--sbb-overlay-pointer-events);display:var(--sbb-overlay-container-display);align-items:center;position:fixed;inset:var(--sbb-overlay-inset)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-overlay__container{animation-name:open;animation-duration:var(--sbb-overlay-animation-duration);animation-timing-function:var(--sbb-overlay-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-overlay__container{pointer-events:none;animation-name:close}.sbb-overlay{position:absolute;inset-inline:0;margin:auto;padding:0;border:none;height:var(--sbb-overlay-height);overflow:auto;color:var(--sbb-overlay-color)}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-overlay{animation-name:open-move-in;animation-duration:var(--sbb-overlay-animation-duration);animation-timing-function:var(--sbb-overlay-animation-easing)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-overlay{animation-name:close-move-out}.sbb-overlay__wrapper{display:flex;flex-direction:column;width:100%;height:var(--sbb-overlay-height);outline:none;position:fixed}@media(min-width:64rem){.sbb-overlay__wrapper{position:sticky;inset-block-start:0;height:auto}}.sbb-overlay__header{position:absolute;inset-inline-start:0;display:flex;pointer-events:none;align-items:start;justify-content:space-between;width:100%;padding:var(--sbb-spacing-responsive-xs);padding-block-end:0;z-index:1}.sbb-overlay__header *{pointer-events:all}.sbb-overlay__close{margin-inline-start:auto}.sbb-overlay__content{--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-overlay__content::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-overlay__content::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-overlay__content::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-overlay__content::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-overlay__content::-webkit-scrollbar-button,.sbb-overlay__content::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-overlay__content{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-overlay__content{height:100vh;overflow:auto;-webkit-overflow-scrolling:touch}.sbb-overlay__content-container{padding-block:var(--_sbb-overlay-padding-block)}@keyframes open{0%{opacity:0}to{opacity:1}}@keyframes open-move-in{0%{transform:translateY(var(--sbb-spacing-fixed-4x))}to{transform:translateY(0)}}@keyframes close{0%{opacity:1}to{opacity:0}}@keyframes close-move-out{0%{transform:translateY(0)}to{transform:translateY(var(--sbb-spacing-fixed-4x))}}`, h = 0, g = (() => {
18
18
  let a = e, g, _ = [], v = [], y, b = [], x = [];
19
19
  return class extends a {
20
20
  constructor() {
package/overlay.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { SbbOverlayBaseElement as e, SbbOverlayCloseEvent as t, assignOverlayResult as n, overlayRefs as r } from "./overlay/overlay-base-element.js";
2
- import { t as i } from "./overlay.component-CaBxt4sb.js";
2
+ import { t as i } from "./overlay.component-QYenVZtj.js";
3
3
  import "./overlay.pure.js";
4
4
  //#region src/elements/overlay.ts
5
5
  i.define();
package/overlay.pure.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import { SbbOverlayBaseElement as e, SbbOverlayCloseEvent as t, assignOverlayResult as n, overlayRefs as r } from "./overlay/overlay-base-element.js";
2
- import { t as i } from "./overlay.component-CaBxt4sb.js";
2
+ import { t as i } from "./overlay.component-QYenVZtj.js";
3
3
  export { e as SbbOverlayBaseElement, t as SbbOverlayCloseEvent, i as SbbOverlayElement, n as assignOverlayResult, r as overlayRefs };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "4.9.0-dev.1774516800",
3
+ "version": "4.9.0-dev.1774530358",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/3a97337072377687f3edc44092ba5402fe21dd0a"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/8487d6d3a36f78761b3aca256b3457fa96c1adea"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
package/safety-theme.css CHANGED
@@ -1687,6 +1687,13 @@ slot[name=error]::slotted(*) {
1687
1687
  --sbb-optgroup-label-font-size: var(--sbb-text-font-size-xxs);
1688
1688
  --sbb-optgroup-label-padding-end: var(--sbb-spacing-fixed-2x);
1689
1689
  --sbb-optgroup-label-padding-inline: var(--sbb-spacing-responsive-xxxs);
1690
+ --sbb-overlay-background-color: var(--sbb-background-color-3);
1691
+ --sbb-overlay-display: none;
1692
+ --sbb-overlay-height: 100%;
1693
+ --sbb-overlay-inset: 0 auto auto 0;
1694
+ --sbb-overlay-animation-easing: ease;
1695
+ --sbb-overlay-pointer-events: none;
1696
+ --sbb-overlay-container-display: none;
1690
1697
  --sbb-options-panel-border-radius: var(--sbb-border-radius-4x);
1691
1698
  --sbb-options-panel-animation-timing-function: ease;
1692
1699
  --sbb-options-panel-background-color: var(--sbb-background-color-1);
@@ -1,2 +1,2 @@
1
- import { t as e } from "../signet.component-CobWzWhG.js";
1
+ import { t as e } from "../signet.component-BizigK8j.js";
2
2
  export { e as SbbSignetElement };
@@ -5,7 +5,7 @@ import { SbbElement as a } from "./core/base-elements.js";
5
5
  import { forceType as o } from "./core/decorators.js";
6
6
  import { boxSizingStyles as s } from "./core/styles.js";
7
7
  //#region src/elements/signet/signet.scss?lit&inline
8
- var c = n`:host{display:flex;align-items:center;justify-content:center;background-color:var(--sbb-signet-background-color);aspect-ratio:var(--sbb-signet-aspect-ratio);width:100%;height:var(--sbb-signet-height, auto)}:host([protective-room=minimal]){--sbb-signet-aspect-ratio: 108 / 64;--sbb-signet-svg-container-height: 68.75% }:host([protective-room=ideal]){--sbb-signet-aspect-ratio: 128 / 84;--sbb-signet-svg-container-height: calc(44 / 84 * 100%)}:host([protective-room=panel]){--sbb-signet-aspect-ratio: 143 / 48;--sbb-signet-background-color: unset}.sbb-signet__svg-container{display:flex;height:var(--sbb-signet-svg-container-height, auto)}svg{width:100%;height:100%}#sbb-signet__panel{fill:var(--sbb-signet-panel-color);stroke:var(--sbb-signet-panel-color)}#sbb-signet__icon{fill:var(--sbb-signet-icon-color)}`, l = (() => {
8
+ var c = n`:host{display:flex;align-items:center;justify-content:center;background-color:var(--sbb-signet-background-color);aspect-ratio:var(--sbb-signet-aspect-ratio);height:var(--sbb-signet-height, auto)}:host([protective-room=minimal]){--sbb-signet-aspect-ratio: 108 / 64;--sbb-signet-svg-container-height: 68.75% }:host([protective-room=ideal]){--sbb-signet-aspect-ratio: 128 / 84;--sbb-signet-svg-container-height: calc(44 / 84 * 100%)}:host([protective-room=panel]){--sbb-signet-aspect-ratio: 143 / 48;--sbb-signet-background-color: unset}.sbb-signet__svg-container{display:flex;height:var(--sbb-signet-svg-container-height, auto)}svg{width:100%;height:100%}#sbb-signet__panel{fill:var(--sbb-signet-panel-color);stroke:var(--sbb-signet-panel-color)}#sbb-signet__icon{fill:var(--sbb-signet-icon-color)}`, l = (() => {
9
9
  let n = a, l, u = [], d = [], f, p = [], m = [];
10
10
  return class extends n {
11
11
  static {
package/signet.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./signet.component-CobWzWhG.js";
1
+ import { t as e } from "./signet.component-BizigK8j.js";
2
2
  import "./signet.pure.js";
3
3
  //#region src/elements/signet.ts
4
4
  e.define();
package/signet.pure.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as e } from "./signet.component-CobWzWhG.js";
1
+ import { t as e } from "./signet.component-BizigK8j.js";
2
2
  export { e as SbbSignetElement };
@@ -1687,6 +1687,13 @@ slot[name=error]::slotted(*) {
1687
1687
  --sbb-optgroup-label-font-size: var(--sbb-text-font-size-xxs);
1688
1688
  --sbb-optgroup-label-padding-end: var(--sbb-spacing-fixed-2x);
1689
1689
  --sbb-optgroup-label-padding-inline: var(--sbb-spacing-responsive-xxxs);
1690
+ --sbb-overlay-background-color: var(--sbb-background-color-3);
1691
+ --sbb-overlay-display: none;
1692
+ --sbb-overlay-height: 100%;
1693
+ --sbb-overlay-inset: 0 auto auto 0;
1694
+ --sbb-overlay-animation-easing: ease;
1695
+ --sbb-overlay-pointer-events: none;
1696
+ --sbb-overlay-container-display: none;
1690
1697
  --sbb-options-panel-border-radius: var(--sbb-border-radius-4x);
1691
1698
  --sbb-options-panel-animation-timing-function: ease;
1692
1699
  --sbb-options-panel-background-color: var(--sbb-background-color-1);
@@ -1,411 +0,0 @@
1
- import { SbbOverlayBaseElement, SbbOverlayCloseEvent, overlayRefs } from "./overlay/overlay-base-element.js";
2
- import { __esDecorate, __runInitializers } from "tslib";
3
- import { css } from "lit";
4
- import { property } from "lit/decorators.js";
5
- import { forceType } from "./core/decorators.js";
6
- import { isZeroAnimationDuration } from "./core/dom.js";
7
- import { forwardEvent } from "./core/eventing.js";
8
- import { boxSizingStyles } from "./core/styles.js";
9
- import { html as html$1 } from "lit/static-html.js";
10
- import { i18nCloseDialog } from "./core/i18n.js";
11
- import "./button/transparent-button.js";
12
- import { ref } from "lit/directives/ref.js";
13
- import "./button/secondary-button.js";
14
- import "./screen-reader-only.js";
15
- import "./container.js";
16
- //#region src/elements/overlay/overlay.scss?lit&inline
17
- var overlay_default = css`:host {
18
- --sbb-scrollbar-thumb-width: 0.125rem;
19
- --sbb-scrollbar-thumb-width-hover: 0.25rem;
20
- --sbb-scrollbar-width-firefox: thin;
21
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-black) 30%, transparent);
22
- --sbb-scrollbar-color: light-dark(
23
- color-mix(in srgb, var(--sbb-color-black) 30%, transparent),
24
- color-mix(in srgb, var(--sbb-color-white) 30%, transparent)
25
- );
26
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-black) 60%, transparent);
27
- --sbb-scrollbar-color-hover: light-dark(
28
- color-mix(in srgb, var(--sbb-color-black) 60%, transparent),
29
- color-mix(in srgb, var(--sbb-color-white) 60%, transparent)
30
- );
31
- --sbb-scrollbar-track-color: transparent;
32
- --sbb-overlay-background-color: var(--sbb-background-color-3);
33
- --sbb-overlay-height: 100%;
34
- --sbb-overlay-inset: 0 auto auto 0;
35
- --sbb-overlay-padding-block: calc(var(--sbb-spacing-fixed-14x) + var(--sbb-spacing-responsive-l));
36
- --sbb-overlay-animation-duration: var(
37
- --sbb-disable-animation-duration,
38
- var(--sbb-animation-duration-6x)
39
- );
40
- --sbb-overlay-animation-easing: ease;
41
- --sbb-overlay-pointer-events: none;
42
- display: none;
43
- position: fixed;
44
- inset: var(--sbb-overlay-inset);
45
- z-index: var(--sbb-overlay-z-index, var(--sbb-overlay-default-z-index));
46
- }
47
-
48
- :host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) {
49
- display: block;
50
- }
51
-
52
- :host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]))) {
53
- --sbb-overlay-pointer-events: all;
54
- }
55
-
56
- :host([negative]) {
57
- --sbb-scrollbar-color: color-mix(in srgb, var(--sbb-color-white) 30%, transparent);
58
- --sbb-scrollbar-color-hover: color-mix(in srgb, var(--sbb-color-white) 60%, transparent);
59
- --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
60
- --sbb-overlay-color: var(--sbb-color-1-negative);
61
- --sbb-overlay-background-color: var(--sbb-background-color-3-negative);
62
- }
63
-
64
- :host(:not(:is(:state(state-closed),[state--state-closed]))) {
65
- --sbb-overlay-inset: 0;
66
- }
67
-
68
- .sbb-overlay__container {
69
- background-color: var(--sbb-overlay-background-color);
70
- pointer-events: var(--sbb-overlay-pointer-events);
71
- display: none;
72
- align-items: center;
73
- position: fixed;
74
- inset: var(--sbb-overlay-inset);
75
- }
76
- :host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) .sbb-overlay__container {
77
- display: flex;
78
- animation-name: open;
79
- animation-duration: var(--sbb-overlay-animation-duration);
80
- animation-timing-function: var(--sbb-overlay-animation-easing);
81
- }
82
- :host(:is(:state(state-closing),[state--state-closing])) .sbb-overlay__container {
83
- pointer-events: none;
84
- animation-name: close;
85
- }
86
-
87
- .sbb-overlay {
88
- position: absolute;
89
- inset-inline: 0;
90
- margin: auto;
91
- padding: 0;
92
- border: none;
93
- height: var(--sbb-overlay-height);
94
- overflow: auto;
95
- color: var(--sbb-overlay-color);
96
- }
97
- :host(:is(:is(:state(state-opening),[state--state-opening]), :is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) .sbb-overlay {
98
- animation-name: open-move-in;
99
- animation-duration: var(--sbb-overlay-animation-duration);
100
- animation-timing-function: var(--sbb-overlay-animation-easing);
101
- }
102
- :host(:is(:state(state-closing),[state--state-closing])) .sbb-overlay {
103
- animation-name: close-move-out;
104
- }
105
-
106
- .sbb-overlay__wrapper {
107
- display: flex;
108
- flex-direction: column;
109
- width: 100%;
110
- height: var(--sbb-overlay-height);
111
- outline: none;
112
- position: fixed;
113
- }
114
- @media (min-width: calc(64rem)) {
115
- .sbb-overlay__wrapper {
116
- position: sticky;
117
- inset-block-start: 0;
118
- height: auto;
119
- }
120
- }
121
-
122
- .sbb-overlay__header {
123
- position: absolute;
124
- inset-inline-start: 0;
125
- display: flex;
126
- pointer-events: none;
127
- align-items: start;
128
- justify-content: space-between;
129
- width: 100%;
130
- padding: var(--sbb-spacing-responsive-xs);
131
- padding-block-end: 0;
132
- z-index: 1;
133
- }
134
- .sbb-overlay__header * {
135
- pointer-events: all;
136
- }
137
-
138
- .sbb-overlay__close {
139
- margin-inline-start: auto;
140
- }
141
-
142
- .sbb-overlay__content {
143
- --sbb-scrollbar-width: var(--sbb-spacing-fixed-3x);
144
- }
145
- .sbb-overlay__content::-webkit-scrollbar {
146
- width: var(--sbb-scrollbar-width);
147
- height: var(--sbb-scrollbar-width);
148
- background-color: var(--sbb-scrollbar-track-color, transparent);
149
- }
150
- .sbb-overlay__content::-webkit-scrollbar-corner {
151
- background-color: var(--sbb-scrollbar-track-color, transparent);
152
- }
153
- .sbb-overlay__content::-webkit-scrollbar-thumb {
154
- background-color: var(--sbb-scrollbar-color, currentcolor);
155
- border: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;
156
- border-radius: var(--sbb-border-radius-4x);
157
- background-clip: padding-box;
158
- }
159
- .sbb-overlay__content::-webkit-scrollbar-thumb:hover {
160
- background-color: var(--sbb-scrollbar-color-hover, currentcolor);
161
- border-width: calc(0.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)));
162
- }
163
- .sbb-overlay__content::-webkit-scrollbar-button, .sbb-overlay__content::-webkit-scrollbar-corner {
164
- display: none;
165
- }
166
- @supports not selector(::-webkit-scrollbar) {
167
- .sbb-overlay__content {
168
- scrollbar-width: var(--sbb-scrollbar-width-firefox);
169
- scrollbar-color: var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent);
170
- }
171
- }
172
- .sbb-overlay__content {
173
- height: 100vh;
174
- overflow: auto;
175
- -webkit-overflow-scrolling: touch;
176
- }
177
-
178
- .sbb-overlay__content-container {
179
- padding-block: var(--sbb-overlay-padding-block);
180
- }
181
-
182
- @keyframes open {
183
- from {
184
- opacity: 0;
185
- }
186
- to {
187
- opacity: 1;
188
- }
189
- }
190
- @keyframes open-move-in {
191
- from {
192
- transform: translateY(var(--sbb-spacing-fixed-4x));
193
- }
194
- to {
195
- transform: translateY(0%);
196
- }
197
- }
198
- @keyframes close {
199
- from {
200
- opacity: 1;
201
- }
202
- to {
203
- opacity: 0;
204
- }
205
- }
206
- @keyframes close-move-out {
207
- from {
208
- transform: translateY(0%);
209
- }
210
- to {
211
- transform: translateY(var(--sbb-spacing-fixed-4x));
212
- }
213
- }`;
214
- //#endregion
215
- //#region src/elements/overlay/overlay.component.ts
216
- var nextId = 0;
217
- /**
218
- * It displays an interactive overlay element.
219
- *
220
- * @slot - Use the unnamed slot to provide a content for the overlay.
221
- * @cssprop [--sbb-overlay-z-index=var(--sbb-overlay-default-z-index)] - To specify a custom stack order,
222
- * the `z-index` can be overridden by defining this CSS variable. The default `z-index` of the
223
- * component is set to `var(--sbb-overlay-default-z-index)` with a value of `1000`.
224
- */
225
- var SbbOverlayElement = (() => {
226
- let _classSuper = SbbOverlayBaseElement;
227
- let _expanded_decorators;
228
- let _expanded_initializers = [];
229
- let _expanded_extraInitializers = [];
230
- let _accessibilityCloseLabel_decorators;
231
- let _accessibilityCloseLabel_initializers = [];
232
- let _accessibilityCloseLabel_extraInitializers = [];
233
- return class SbbOverlayElement extends _classSuper {
234
- constructor() {
235
- super(...arguments);
236
- this.#expanded_accessor_storage = __runInitializers(this, _expanded_initializers, false);
237
- this.#accessibilityCloseLabel_accessor_storage = (__runInitializers(this, _expanded_extraInitializers), __runInitializers(this, _accessibilityCloseLabel_initializers, ""));
238
- this.closeAttribute = (__runInitializers(this, _accessibilityCloseLabel_extraInitializers), "sbb-overlay-close");
239
- this._overlayContentElement = null;
240
- }
241
- static {
242
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
243
- _expanded_decorators = [forceType(), property({
244
- reflect: true,
245
- type: Boolean
246
- })];
247
- _accessibilityCloseLabel_decorators = [forceType(), property({ attribute: "accessibility-close-label" })];
248
- __esDecorate(this, null, _expanded_decorators, {
249
- kind: "accessor",
250
- name: "expanded",
251
- static: false,
252
- private: false,
253
- access: {
254
- has: (obj) => "expanded" in obj,
255
- get: (obj) => obj.expanded,
256
- set: (obj, value) => {
257
- obj.expanded = value;
258
- }
259
- },
260
- metadata: _metadata
261
- }, _expanded_initializers, _expanded_extraInitializers);
262
- __esDecorate(this, null, _accessibilityCloseLabel_decorators, {
263
- kind: "accessor",
264
- name: "accessibilityCloseLabel",
265
- static: false,
266
- private: false,
267
- access: {
268
- has: (obj) => "accessibilityCloseLabel" in obj,
269
- get: (obj) => obj.accessibilityCloseLabel,
270
- set: (obj, value) => {
271
- obj.accessibilityCloseLabel = value;
272
- }
273
- },
274
- metadata: _metadata
275
- }, _accessibilityCloseLabel_initializers, _accessibilityCloseLabel_extraInitializers);
276
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
277
- enumerable: true,
278
- configurable: true,
279
- writable: true,
280
- value: _metadata
281
- });
282
- }
283
- static {
284
- this.elementName = "sbb-overlay";
285
- }
286
- static {
287
- this.styles = [boxSizingStyles, overlay_default];
288
- }
289
- static {
290
- this.events = {
291
- beforeopen: "beforeopen",
292
- open: "open",
293
- beforeclose: "beforeclose",
294
- close: "close"
295
- };
296
- }
297
- #expanded_accessor_storage;
298
- /**
299
- * Whether to allow the overlay content to stretch to full width.
300
- * By default, the content has the appropriate page size.
301
- */
302
- get expanded() {
303
- return this.#expanded_accessor_storage;
304
- }
305
- set expanded(value) {
306
- this.#expanded_accessor_storage = value;
307
- }
308
- #accessibilityCloseLabel_accessor_storage;
309
- /** This will be forwarded as aria-label to the close button element. */
310
- get accessibilityCloseLabel() {
311
- return this.#accessibilityCloseLabel_accessor_storage;
312
- }
313
- set accessibilityCloseLabel(value) {
314
- this.#accessibilityCloseLabel_accessor_storage = value;
315
- }
316
- connectedCallback() {
317
- this.id ||= `sbb-overlay-${nextId++}`;
318
- super.connectedCallback();
319
- }
320
- firstUpdated(changedProperties) {
321
- super.firstUpdated(changedProperties);
322
- if (this.isOpen) this.setAriaLiveRefContent();
323
- }
324
- isZeroAnimationDuration() {
325
- return isZeroAnimationDuration(this, "--sbb-overlay-animation-duration");
326
- }
327
- handleOpening() {
328
- this.state = "opened";
329
- this.inertController.activate();
330
- this.focusTrapController.focusInitialElement();
331
- setTimeout(() => this.setAriaLiveRefContent(this.accessibilityLabel));
332
- this.focusTrapController.enabled = true;
333
- this.dispatchOpenEvent();
334
- }
335
- handleClosing() {
336
- this._overlayContentElement?.scrollTo(0, 0);
337
- this.state = "closed";
338
- this.hidePopover?.();
339
- this.inertController.deactivate();
340
- if (!this.skipFocusRestoration) this.lastFocusedElement?.focus();
341
- this.openOverlayController?.abort();
342
- this.focusTrapController.enabled = false;
343
- this.removeInstanceFromGlobalCollection();
344
- if (!overlayRefs.length) this.scrollHandler.enableScroll();
345
- this.escapableOverlayController.disconnect();
346
- this.dispatchCloseEvent({
347
- returnValue: this.returnValue,
348
- closeTarget: this.overlayCloseElement
349
- });
350
- }
351
- dispatchBeforeCloseEvent(_detail) {
352
- /** @type {SbbOverlayCloseEvent} Emits whenever the component begins the closing transition. Can be canceled. */
353
- return this.dispatchEvent(new SbbOverlayCloseEvent("beforeclose", {
354
- cancelable: true,
355
- closeAttribute: this.closeAttribute,
356
- closeTarget: this.overlayCloseElement,
357
- result: this.returnValue
358
- }));
359
- }
360
- dispatchCloseEvent(_detail) {
361
- /** @type {SbbOverlayCloseEvent} Emits whenever the component is closed. */
362
- return this.dispatchEvent(new SbbOverlayCloseEvent("close", {
363
- closeAttribute: this.closeAttribute,
364
- closeTarget: this.overlayCloseElement,
365
- result: this.returnValue
366
- }));
367
- }
368
- render() {
369
- return html$1`
370
- <div class="sbb-overlay__container" @animationend=${this.onOverlayAnimationEnd}>
371
- <div class="sbb-overlay">
372
- <div
373
- @click=${(event) => this.closeOnSbbOverlayCloseClick(event)}
374
- class="sbb-overlay__wrapper"
375
- >
376
- <div class="sbb-overlay__header">
377
- <sbb-secondary-button
378
- class="sbb-overlay__close"
379
- aria-label="${this.accessibilityCloseLabel || i18nCloseDialog[this.language.current]}"
380
- ?negative=${this.negative}
381
- size="m"
382
- type="button"
383
- icon-name="cross-small"
384
- sbb-overlay-close
385
- ></sbb-secondary-button>
386
- </div>
387
- <div
388
- class="sbb-overlay__content"
389
- ${ref((el) => this._overlayContentElement = el)}
390
- @scroll=${(e) => forwardEvent(e, document)}
391
- >
392
- <sbb-container
393
- class="sbb-overlay__content-container"
394
- ?expanded=${this.expanded}
395
- color="transparent"
396
- >
397
- <slot></slot>
398
- </sbb-container>
399
- </div>
400
- </div>
401
- </div>
402
- </div>
403
- <sbb-screen-reader-only aria-live="polite"></sbb-screen-reader-only>
404
- `;
405
- }
406
- };
407
- })();
408
- //#endregion
409
- export { SbbOverlayElement as t };
410
-
411
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5jb21wb25lbnQtQnRkNDJjbG0uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL292ZXJsYXkvb3ZlcmxheS5zY3NzP2xpdCZpbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvb3ZlcmxheS9vdmVybGF5LmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXItdmFyaWFibGVzO1xuXG4gIC0tc2JiLW92ZXJsYXktYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMyk7XG4gIC0tc2JiLW92ZXJsYXktaGVpZ2h0OiAxMDAlO1xuICAtLXNiYi1vdmVybGF5LWluc2V0OiAwIGF1dG8gYXV0byAwO1xuICAtLXNiYi1vdmVybGF5LXBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMTR4KSArIHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbCkpO1xuICAtLXNiYi1vdmVybGF5LWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG4gIC0tc2JiLW92ZXJsYXktYW5pbWF0aW9uLWVhc2luZzogZWFzZTtcbiAgLS1zYmItb3ZlcmxheS1wb2ludGVyLWV2ZW50czogbm9uZTtcblxuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiB2YXIoLS1zYmItb3ZlcmxheS1pbnNldCk7XG4gIHotaW5kZXg6IHZhcigtLXNiYi1vdmVybGF5LXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCkpKSB7XG4gIC0tc2JiLW92ZXJsYXktcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuOmhvc3QoW25lZ2F0aXZlXSkge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyLXZhcmlhYmxlcy0tY29sb3ItbmVnYXRpdmU7XG5cbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGFyayk7XG4gIC0tc2JiLW92ZXJsYXktY29sb3I6IHZhcigtLXNiYi1jb2xvci0xLW5lZ2F0aXZlKTtcbiAgLS1zYmItb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItYmFja2dyb3VuZC1jb2xvci0zLW5lZ2F0aXZlKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUoc3RhdGUtY2xvc2VkKSkpIHtcbiAgLS1zYmItb3ZlcmxheS1pbnNldDogMDtcbn1cblxuLnNiYi1vdmVybGF5X19jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi1vdmVybGF5LXBvaW50ZXItZXZlbnRzKTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogdmFyKC0tc2JiLW92ZXJsYXktaW5zZXQpO1xuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtY2xvc2luZykpKSAmIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgbmFtZTogb3BlbjtcbiAgICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItb3ZlcmxheS1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItb3ZlcmxheS1hbmltYXRpb24tZWFzaW5nKTtcbiAgICB9XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpICYge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBjbG9zZTtcbiAgfVxufVxuXG4uc2JiLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWlubGluZTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGhlaWdodDogdmFyKC0tc2JiLW92ZXJsYXktaGVpZ2h0KTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGNvbG9yOiB2YXIoLS1zYmItb3ZlcmxheS1jb2xvcik7XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgbmFtZTogb3Blbi1tb3ZlLWluO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1vdmVybGF5LWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1vdmVybGF5LWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNsb3NlLW1vdmUtb3V0O1xuICB9XG59XG5cbi5zYmItb3ZlcmxheV9fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1vdmVybGF5LWhlaWdodCk7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxuLnNiYi1vdmVybGF5X19oZWFkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14cyk7XG4gIHBhZGRpbmctYmxvY2stZW5kOiAwO1xuICB6LWluZGV4OiAxO1xuXG4gICoge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIH1cbn1cblxuLnNiYi1vdmVybGF5X19jbG9zZSB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbi5zYmItb3ZlcmxheV9fY29udGVudCB7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXItcnVsZXM7XG5cbiAgaGVpZ2h0OiAxMDB2aDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnNiYi1vdmVybGF5X19jb250ZW50LWNvbnRhaW5lciB7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1vdmVybGF5LXBhZGRpbmctYmxvY2spO1xufVxuXG4vLyBJdCBpcyBuZWNlc3NhcnkgdG8gdXNlIGFuaW1hdGlvbnMgd2l0aCBrZXlmcmFtZXMgaW5zdGVhZCBvZiB0cmFuc2l0aW9ucyBpbiBvcmRlciBub3QgdG8gYWx0ZXJcbi8vIHRoZSBkZWZhdWx0IGBkaXNwbGF5OiBibG9ja2Agb2YgdGhlIG1vZGFsIG90aGVyd2lzZSBpdCBjYXVzZXMgc2V2ZXJhbCBwcm9ibGVtcyxcbi8vIGVzcGVjaWFsbHkgZm9yIGFjY2Vzc2liaWxpdHkuXG5Aa2V5ZnJhbWVzIG9wZW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBvcGVuLW1vdmUtaW4ge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZS1tb3ZlLW91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KSk7XG4gIH1cbn1cbiIsImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20udHMnO1xuaW1wb3J0IHsgZm9yd2FyZEV2ZW50IH0gZnJvbSAnLi4vY29yZS9ldmVudGluZy50cyc7XG5pbXBvcnQgeyBpMThuQ2xvc2VEaWFsb2cgfSBmcm9tICcuLi9jb3JlL2kxOG4udHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPdmVybGF5Q2xvc2VFdmVudERldGFpbHMgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vY29yZS9zdHlsZXMudHMnO1xuXG5pbXBvcnQge1xuICBvdmVybGF5UmVmcyxcbiAgU2JiT3ZlcmxheUJhc2VFbGVtZW50LFxuICBTYmJPdmVybGF5Q2xvc2VFdmVudCxcbn0gZnJvbSAnLi9vdmVybGF5LWJhc2UtZWxlbWVudC50cyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9vdmVybGF5LnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24udHMnO1xuaW1wb3J0ICcuLi9idXR0b24vdHJhbnNwYXJlbnQtYnV0dG9uLnRzJztcbmltcG9ydCAnLi4vY29udGFpbmVyLnRzJztcbmltcG9ydCAnLi4vc2NyZWVuLXJlYWRlci1vbmx5LnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gaW50ZXJhY3RpdmUgb3ZlcmxheSBlbGVtZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBhIGNvbnRlbnQgZm9yIHRoZSBvdmVybGF5LlxuICogQGNzc3Byb3AgWy0tc2JiLW92ZXJsYXktei1pbmRleD12YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpXSAtIFRvIHNwZWNpZnkgYSBjdXN0b20gc3RhY2sgb3JkZXIsXG4gKiB0aGUgYHotaW5kZXhgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nIHRoaXMgQ1NTIHZhcmlhYmxlLiBUaGUgZGVmYXVsdCBgei1pbmRleGAgb2YgdGhlXG4gKiBjb21wb25lbnQgaXMgc2V0IHRvIGB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpYCB3aXRoIGEgdmFsdWUgb2YgYDEwMDBgLlxuICovXG5leHBvcnQgY2xhc3MgU2JiT3ZlcmxheUVsZW1lbnQgZXh0ZW5kcyBTYmJPdmVybGF5QmFzZUVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLW92ZXJsYXknO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG5cbiAgLy8gVE9ETzogZml4IHVzaW5nIC4uLnN1cGVyLmV2ZW50cyByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL3NiYi1kZXNpZ24tc3lzdGVtcy9seW5lLWNvbXBvbmVudHMvaXNzdWVzLzI2MDBcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBldmVudHMgPSB7XG4gICAgYmVmb3Jlb3BlbjogJ2JlZm9yZW9wZW4nLFxuICAgIG9wZW46ICdvcGVuJyxcbiAgICBiZWZvcmVjbG9zZTogJ2JlZm9yZWNsb3NlJyxcbiAgICBjbG9zZTogJ2Nsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyB0aGUgb3ZlcmxheSBjb250ZW50IHRvIHN0cmV0Y2ggdG8gZnVsbCB3aWR0aC5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGNvbnRlbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSBwYWdlIHNpemUuXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZXhwYW5kZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIGNsb3NlQXR0cmlidXRlOiBzdHJpbmcgPSAnc2JiLW92ZXJsYXktY2xvc2UnO1xuICBwcml2YXRlIF9vdmVybGF5Q29udGVudEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuaWQgfHw9IGBzYmItb3ZlcmxheS0ke25leHRJZCsrfWA7XG5cbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IG9wZW4gb24gZmlyc3RVcGRhdGUsIGFubm91bmNlIHRoZSB0aXRsZVxuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5zZXRBcmlhTGl2ZVJlZkNvbnRlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKHRoaXMsICctLXNiYi1vdmVybGF5LWFuaW1hdGlvbi1kdXJhdGlvbicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnRDb250cm9sbGVyLmFjdGl2YXRlKCk7XG4gICAgdGhpcy5mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICAvLyBVc2UgdGltZW91dCB0byByZWFkIGxhYmVsIGFmdGVyIGZvY3VzZWQgZWxlbWVudFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zZXRBcmlhTGl2ZVJlZkNvbnRlbnQodGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwpKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5kaXNwYXRjaE9wZW5FdmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheUNvbnRlbnRFbGVtZW50Py5zY3JvbGxUbygwLCAwKTtcbiAgICB0aGlzLnN0YXRlID0gJ2Nsb3NlZCc7XG4gICAgdGhpcy5oaWRlUG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5pbmVydENvbnRyb2xsZXIuZGVhY3RpdmF0ZSgpO1xuICAgIGlmICghdGhpcy5za2lwRm9jdXNSZXN0b3JhdGlvbikge1xuICAgICAgLy8gTWFudWFsbHkgZm9jdXMgbGFzdCBmb2N1c2VkIGVsZW1lbnRcbiAgICAgIHRoaXMubGFzdEZvY3VzZWRFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5PdmVybGF5Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLmZvY3VzVHJhcENvbnRyb2xsZXIuZW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMucmVtb3ZlSW5zdGFuY2VGcm9tR2xvYmFsQ29sbGVjdGlvbigpO1xuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG92ZXJsYXkgaWYgbm8gb3ZlcmxheSBpcyBvcGVuXG4gICAgaWYgKCFvdmVybGF5UmVmcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2Nyb2xsSGFuZGxlci5lbmFibGVTY3JvbGwoKTtcbiAgICB9XG4gICAgdGhpcy5lc2NhcGFibGVPdmVybGF5Q29udHJvbGxlci5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoe1xuICAgICAgcmV0dXJuVmFsdWU6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlIHBhcmFtZXRlciBgZGV0YWlsYFxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KF9kZXRhaWw/OiBTYmJPdmVybGF5Q2xvc2VFdmVudERldGFpbHMpOiBib29sZWFuIHtcbiAgICAvKiogQHR5cGUge1NiYk92ZXJsYXlDbG9zZUV2ZW50fSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBTYmJPdmVybGF5Q2xvc2VFdmVudCgnYmVmb3JlY2xvc2UnLCB7XG4gICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIGNsb3NlQXR0cmlidXRlOiB0aGlzLmNsb3NlQXR0cmlidXRlLFxuICAgICAgICBjbG9zZVRhcmdldDogdGhpcy5vdmVybGF5Q2xvc2VFbGVtZW50LFxuICAgICAgICByZXN1bHQ6IHRoaXMucmV0dXJuVmFsdWUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLy8gVE9ETzogcmVtb3ZlIHBhcmFtZXRlciBgZGV0YWlsYFxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGlzcGF0Y2hDbG9zZUV2ZW50KF9kZXRhaWw/OiBTYmJPdmVybGF5Q2xvc2VFdmVudERldGFpbHMpOiBib29sZWFuIHtcbiAgICAvKiogQHR5cGUge1NiYk92ZXJsYXlDbG9zZUV2ZW50fSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC4gKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IFNiYk92ZXJsYXlDbG9zZUV2ZW50KCdjbG9zZScsIHtcbiAgICAgICAgY2xvc2VBdHRyaWJ1dGU6IHRoaXMuY2xvc2VBdHRyaWJ1dGUsXG4gICAgICAgIGNsb3NlVGFyZ2V0OiB0aGlzLm92ZXJsYXlDbG9zZUVsZW1lbnQsXG4gICAgICAgIHJlc3VsdDogdGhpcy5yZXR1cm5WYWx1ZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGFpbmVyXCIgQGFuaW1hdGlvbmVuZD0ke3RoaXMub25PdmVybGF5QW5pbWF0aW9uRW5kfT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5XCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgQGNsaWNrPSR7KGV2ZW50OiBFdmVudCkgPT4gdGhpcy5jbG9zZU9uU2JiT3ZlcmxheUNsb3NlQ2xpY2soZXZlbnQpfVxuICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fd3JhcHBlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1vdmVybGF5X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY2xvc2VcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke3RoaXMuYWNjZXNzaWJpbGl0eUNsb3NlTGFiZWwgfHxcbiAgICAgICAgICAgICAgICBpMThuQ2xvc2VEaWFsb2dbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX1cIlxuICAgICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgICAgICAgICBzYmItb3ZlcmxheS1jbG9zZVxuICAgICAgICAgICAgICA+PC9zYmItc2Vjb25kYXJ5LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1vdmVybGF5X19jb250ZW50XCJcbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX292ZXJsYXlDb250ZW50RWxlbWVudCA9IGVsIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgICAgICAgIEBzY3JvbGw9JHsoZTogRXZlbnQpID0+IGZvcndhcmRFdmVudChlLCBkb2N1bWVudCl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzYmItY29udGFpbmVyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItb3ZlcmxheV9fY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgID9leHBhbmRlZD0ke3RoaXMuZXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICAgICAgIDwvc2JiLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHkgYXJpYS1saXZlPVwicG9saXRlXCI+PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1vdmVybGF5JzogU2JiT3ZlcmxheUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN3QkEsSUFBSSxTQUFTOzs7Ozs7Ozs7SUFVQSwyQkFBaUI7bUJBQVM7Ozs7Ozs7Y0FBMUIsMEJBQTBCLFlBQXFCOzs7QUFrQjFDLFNBQUEsNEJBQUEsa0JBQUEsTUFBQSx3QkFBb0IsTUFBSztBQUt6QixTQUFBLDRDQUFBLGtCQUFBLE1BQUEsNEJBQUEsRUFBQSxrQkFBQSxNQUFBLHVDQUFrQyxHQUFFO0FBRTFDLFFBQUEsa0JBQWMsa0JBQUEsTUFBQSwyQ0FBQSxFQUFXO0FBQzNCLFFBQUEseUJBQTZDOzs7OzJCQVZwRCxXQUFXLEVBQ1gsU0FBUztJQUFFLFNBQVM7SUFBTSxNQUFNO0lBQVMsQ0FBQyxDQUFBOzBDQUkxQyxXQUFXLEVBQ1gsU0FBUyxFQUFFLFdBQVcsNkJBQTZCLENBQUMsQ0FBQTtBQUpyRCxnQkFBQSxNQUFBLE1BQUEsc0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxjQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQVEsTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFSLFdBQVE7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx3QkFBQSw0QkFBQTtBQUt4Qixn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