@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776960216 → 5.0.0-next-dev.1777014673
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/alert/alert/alert.component.js +1 -1
- package/alert/alert-group/alert-group.component.js +1 -1
- package/{alert-group.component-CAjj3FtE.js → alert-group.component-BCYOVicl.js} +5 -7
- package/alert.component-BQsF0R1M.js +161 -0
- package/alert.js +2 -2
- package/alert.pure.js +2 -2
- package/core/styles/core.scss +11 -0
- package/core.css +19 -0
- package/custom-elements.json +956 -956
- package/development/alert/alert/alert.component.d.ts +1 -0
- package/development/alert/alert/alert.component.d.ts.map +1 -1
- package/development/alert/alert/alert.component.js +1 -1
- package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
- package/development/alert/alert-group/alert-group.component.js +1 -1
- package/development/alert-group.component-D4KxKTd2.js +186 -0
- package/development/alert.component-Pv-Ol6XU.js +213 -0
- package/development/alert.js +2 -2
- package/development/alert.pure.js +2 -2
- package/off-brand-theme.css +19 -0
- package/package.json +2 -2
- package/safety-theme.css +19 -0
- package/standard-theme.css +19 -0
- package/alert.component-C42LwoGa.js +0 -163
- package/development/alert-group.component-DeI6kuwn.js +0 -188
- package/development/alert.component-Cn36k_Hf.js +0 -214
package/standard-theme.css
CHANGED
|
@@ -1267,6 +1267,20 @@ slot[name=error]::slotted(*) {
|
|
|
1267
1267
|
--sbb-size-element-s: var(--sbb-size-element-s-zero);
|
|
1268
1268
|
--sbb-size-element-m: var(--sbb-size-element-m-zero);
|
|
1269
1269
|
--sbb-size-element-l: var(--sbb-size-element-l-zero);
|
|
1270
|
+
--sbb-alert-background-color: var(--sbb-background-color-1-inverted);
|
|
1271
|
+
--sbb-alert-border-radius: var(--sbb-border-radius-4x);
|
|
1272
|
+
--sbb-alert-color: var(--sbb-color-aluminium);
|
|
1273
|
+
--sbb-alert-color: light-dark(var(--sbb-color-aluminium), var(--sbb-color-anthracite));
|
|
1274
|
+
--sbb-alert-padding: var(--sbb-spacing-responsive-xxs) var(--sbb-spacing-responsive-xs);
|
|
1275
|
+
--sbb-alert-timing-function: ease-in;
|
|
1276
|
+
--sbb-alert-icon-size: 1.25rem;
|
|
1277
|
+
--sbb-alert-icon-size-l: var(--sbb-size-icon-ui-small);
|
|
1278
|
+
--sbb-alert-title-margin-block: 0;
|
|
1279
|
+
--sbb-alert-font-size: var(--sbb-text-font-size-s);
|
|
1280
|
+
--sbb-alert-gap: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-responsive-xs);
|
|
1281
|
+
--sbb-alert-close-icon-margin: var(--sbb-spacing-responsive-xxs);
|
|
1282
|
+
--sbb-alert-group-gap: var(--sbb-spacing-fixed-3x);
|
|
1283
|
+
--sbb-alert-group-border-radius: var(--sbb-border-radius-4x);
|
|
1270
1284
|
--sbb-breadcrumb-color: var(--sbb-color-granite);
|
|
1271
1285
|
--sbb-breadcrumb-color: light-dark(var(--sbb-color-granite), var(--sbb-color-aluminium));
|
|
1272
1286
|
--sbb-breadcrumb-color-hover: var(--sbb-color-charcoal);
|
|
@@ -1972,6 +1986,8 @@ slot[name=error]::slotted(*) {
|
|
|
1972
1986
|
--sbb-focus-outline-color-default: Highlight;
|
|
1973
1987
|
--sbb-focus-outline-color-dark: Highlight;
|
|
1974
1988
|
--sbb-focus-outline-width: var(--sbb-border-width-2x);
|
|
1989
|
+
--sbb-alert-outline: var(--sbb-border-width-1x) solid CanvasText;
|
|
1990
|
+
--sbb-alert-forced-color-border-radius: var(--sbb-alert-border-radius);
|
|
1975
1991
|
--sbb-breadcrumb-color: ButtonText;
|
|
1976
1992
|
--sbb-breadcrumb-color-active: Highlight;
|
|
1977
1993
|
--sbb-card-border-color: CanvasText;
|
|
@@ -2061,6 +2077,7 @@ slot[name=error]::slotted(*) {
|
|
|
2061
2077
|
--sbb-layout-base-offset-responsive: var(--sbb-layout-base-offset-responsive-small);
|
|
2062
2078
|
--sbb-grid-base-columns: var(--sbb-layout-base-grid-columns-small);
|
|
2063
2079
|
--sbb-grid-base-gutter-responsive: var(--sbb-layout-base-grid-gutter-responsive-small);
|
|
2080
|
+
--sbb-alert-close-button-divider-display: block;
|
|
2064
2081
|
--sbb-dialog-padding-inline: var(--sbb-spacing-fixed-12x);
|
|
2065
2082
|
--sbb-footer-clock-width: 7rem;
|
|
2066
2083
|
--sbb-notification-icon-align-self: flex-start;
|
|
@@ -2102,6 +2119,8 @@ slot[name=error]::slotted(*) {
|
|
|
2102
2119
|
--sbb-size-element-s: var(--sbb-size-element-s-large);
|
|
2103
2120
|
--sbb-size-element-m: var(--sbb-size-element-m-large);
|
|
2104
2121
|
--sbb-size-element-l: var(--sbb-size-element-l-large);
|
|
2122
|
+
--sbb-alert-icon-size: 1.75rem;
|
|
2123
|
+
--sbb-alert-icon-size-l: 2.125rem;
|
|
2105
2124
|
--sbb-button-padding-inline-size-l: var(--sbb-spacing-fixed-10x);
|
|
2106
2125
|
--sbb-button-padding-inline-size-m: var(--sbb-spacing-fixed-8x);
|
|
2107
2126
|
--sbb-button-padding-inline-size-s: var(--sbb-spacing-fixed-5x);
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { __esDecorate as e, __runInitializers as t } from "tslib";
|
|
2
|
-
import { html as n, nothing as r, unsafeCSS as i } from "lit";
|
|
3
|
-
import { property as a } from "lit/decorators.js";
|
|
4
|
-
import { SbbDarkModeController as o, SbbLanguageController as s, SbbOpenCloseBaseElement as c, SbbReadonlyMixin as l, boxSizingStyles as u, i18nCloseAlert as d, isLean as f, isZeroAnimationDuration as p } from "./core.js";
|
|
5
|
-
import { SbbTransparentButtonElement as m } from "./button.pure.js";
|
|
6
|
-
import { SbbDividerElement as h } from "./divider.pure.js";
|
|
7
|
-
import { SbbIconNameMixin as g } from "./icon.pure.js";
|
|
8
|
-
//#region src/elements/alert/alert/alert.scss?inline
|
|
9
|
-
var _ = ":host{display:block;--sbb-alert-background-color: var(--sbb-background-color-1-inverted);--sbb-alert-border-radius: var(--sbb-border-radius-4x);--sbb-alert-color: var(--sbb-color-aluminium);--sbb-alert-color: light-dark(var(--sbb-color-aluminium), var(--sbb-color-anthracite));--sbb-alert-padding: var(--sbb-spacing-responsive-xxs) var(--sbb-spacing-responsive-xs);--sbb-alert-icon-size: 1.25rem;--sbb-alert-close-icon-margin: var(--sbb-spacing-responsive-xxs);--sbb-alert-gap: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-responsive-xs);--sbb-alert-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-alert-timing-function: ease-in;--sbb-alert-title-margin-block: 0}@media(min-width:64rem){:host{--sbb-alert-icon-size: 1.75rem}}@media(forced-colors:active){:host{outline:var(--sbb-border-width-1x) solid CanvasText;border-radius:var(--sbb-alert-border-radius)}}:host(:is(:state(state-opening),[state--state-opening]):not([animation=open],[animation=all])){--sbb-disable-animation-duration: 0s}:host(:is(:state(state-closing),[state--state-closing]):not([animation=close],[animation=all])){--sbb-disable-animation-duration: 0s}:host([size=s]){--sbb-alert-gap: var(--sbb-spacing-fixed-1x) var(--sbb-spacing-responsive-xxs);--sbb-alert-close-icon-margin: var(--sbb-spacing-responsive-xxxs)}:host([size=l]){--sbb-alert-icon-size: var(--sbb-size-icon-ui-small);--sbb-alert-title-margin-block: 0 var(--sbb-spacing-fixed-1x)}@media(min-width:64rem){:host([size=l]){--sbb-alert-icon-size: 2.125rem}}:host(:not(:is(:state(dark),[state--dark]))){--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}.sbb-alert__transition-wrapper{display:grid;grid-template-rows:0fr;opacity:0}:host(:is(:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))) .sbb-alert__transition-wrapper{grid-template-rows:1fr;opacity:1}:host(:is(:state(state-opening),[state--state-opening])) .sbb-alert__transition-wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-alert-animation-duration);animation-timing-function:var(--sbb-alert-timing-function);animation-delay:0s,var(--sbb-alert-animation-duration)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-alert__transition-wrapper{animation-name:close-opacity,close;animation-fill-mode:forwards;animation-duration:var(--sbb-alert-animation-duration);animation-timing-function:var(--sbb-alert-timing-function);animation-delay:0s,var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x))}.sbb-alert__transition-sub-wrapper{overflow:hidden}.sbb-alert{--sbb-text-font-size: var(--sbb-text-font-size-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-text);letter-spacing:var(--sbb-typo-letter-spacing-text);font-size:var(--sbb-text-font-size);display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--sbb-alert-gap);min-width:fit-content;padding:var(--sbb-alert-padding);overflow:hidden;color:var(--sbb-alert-color);background-color:var(--sbb-alert-background-color);border-radius:var(--sbb-alert-border-radius)}@media(min-width:37.5rem){.sbb-alert{grid-template-columns:auto 1fr auto;align-items:flex-start}}.sbb-alert__icon{display:flex;align-items:start;padding-block:var(--sbb-spacing-fixed-1x);min-width:var(--sbb-alert-icon-size);--sbb-icon-svg-width: var(--sbb-alert-icon-size);--sbb-icon-svg-height: var(--sbb-alert-icon-size)}.sbb-alert__content{color-scheme:only light;order:3;grid-column:1/3}@media(min-width:37.5rem){.sbb-alert__content{order:initial;grid-column-start:initial;grid-column-end:initial}}.sbb-alert__content-slot{display:inline;margin:0;padding:0}.sbb-alert__close-button-wrapper{color-scheme:only light;display:flex;justify-content:flex-end;align-items:center;height:100%}@media(min-width:37.5rem){.sbb-alert__close-button{margin-inline-start:var(--sbb-alert-close-icon-margin)}}.sbb-alert__close-button-divider{display:none}@media(min-width:37.5rem){.sbb-alert__close-button-divider{display:block;height:calc(100% - var(--sbb-spacing-fixed-1x) * 2)}}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{grid-template-rows:1fr}to{grid-template-rows:0fr}}@keyframes close-opacity{0%{opacity:1}to{opacity:0}}::slotted(sbb-title){margin-block:var(--sbb-alert-title-margin-block)}", v = (() => {
|
|
10
|
-
let v = g(l(c)), y, b = [], x = [], S, C = [], w = [];
|
|
11
|
-
return class extends v {
|
|
12
|
-
constructor() {
|
|
13
|
-
super(...arguments), this.#e = t(this, b, f() ? "s" : "m"), this.#t = (t(this, x), t(this, C, "all")), this._language = (t(this, w), new s(this)), this._darkModeController = new o(this, () => {
|
|
14
|
-
this._syncLinks(), this._configureTitle(), this.requestUpdate();
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
static {
|
|
18
|
-
let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(v[Symbol.metadata] ?? null) : void 0;
|
|
19
|
-
y = [a({ reflect: !0 })], S = [a({ reflect: !0 })], e(this, null, y, {
|
|
20
|
-
kind: "accessor",
|
|
21
|
-
name: "size",
|
|
22
|
-
static: !1,
|
|
23
|
-
private: !1,
|
|
24
|
-
access: {
|
|
25
|
-
has: (e) => "size" in e,
|
|
26
|
-
get: (e) => e.size,
|
|
27
|
-
set: (e, t) => {
|
|
28
|
-
e.size = t;
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
metadata: t
|
|
32
|
-
}, b, x), e(this, null, S, {
|
|
33
|
-
kind: "accessor",
|
|
34
|
-
name: "animation",
|
|
35
|
-
static: !1,
|
|
36
|
-
private: !1,
|
|
37
|
-
access: {
|
|
38
|
-
has: (e) => "animation" in e,
|
|
39
|
-
get: (e) => e.animation,
|
|
40
|
-
set: (e, t) => {
|
|
41
|
-
e.animation = t;
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
metadata: t
|
|
45
|
-
}, C, w), t && Object.defineProperty(this, Symbol.metadata, {
|
|
46
|
-
enumerable: !0,
|
|
47
|
-
configurable: !0,
|
|
48
|
-
writable: !0,
|
|
49
|
-
value: t
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
static {
|
|
53
|
-
this.elementName = "sbb-alert";
|
|
54
|
-
}
|
|
55
|
-
static {
|
|
56
|
-
this.elementDependencies = [m, h];
|
|
57
|
-
}
|
|
58
|
-
static {
|
|
59
|
-
this.styles = [u, i(_)];
|
|
60
|
-
}
|
|
61
|
-
static {
|
|
62
|
-
this.events = {
|
|
63
|
-
beforeopen: "beforeopen",
|
|
64
|
-
open: "open",
|
|
65
|
-
beforeclose: "beforeclose",
|
|
66
|
-
close: "close"
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
#e;
|
|
70
|
-
get size() {
|
|
71
|
-
return this.#e;
|
|
72
|
-
}
|
|
73
|
-
set size(e) {
|
|
74
|
-
this.#e = e;
|
|
75
|
-
}
|
|
76
|
-
#t;
|
|
77
|
-
get animation() {
|
|
78
|
-
return this.#t;
|
|
79
|
-
}
|
|
80
|
-
set animation(e) {
|
|
81
|
-
this.#t = e;
|
|
82
|
-
}
|
|
83
|
-
open() {
|
|
84
|
-
this.state = "opening", this.dispatchBeforeOpenEvent() && this._isZeroAnimationDuration() && this._handleOpening();
|
|
85
|
-
}
|
|
86
|
-
close() {
|
|
87
|
-
this.state === "opened" && this.dispatchBeforeCloseEvent() && (this.state = "closing", this._isZeroAnimationDuration() && this._handleClosing());
|
|
88
|
-
}
|
|
89
|
-
firstUpdated(e) {
|
|
90
|
-
super.firstUpdated(e), this.open();
|
|
91
|
-
}
|
|
92
|
-
willUpdate(e) {
|
|
93
|
-
super.willUpdate(e), e.has("size") && this._configureTitle();
|
|
94
|
-
}
|
|
95
|
-
_isZeroAnimationDuration() {
|
|
96
|
-
return p(this, "--sbb-alert-animation-duration");
|
|
97
|
-
}
|
|
98
|
-
_onAnimationEnd(e) {
|
|
99
|
-
this.state === "opening" && e.animationName === "open-opacity" ? this._handleOpening() : this.state === "closing" && e.animationName === "close" && this._handleClosing();
|
|
100
|
-
}
|
|
101
|
-
_handleOpening() {
|
|
102
|
-
this.state = "opened", this.dispatchOpenEvent();
|
|
103
|
-
}
|
|
104
|
-
_handleClosing() {
|
|
105
|
-
this.state = "closed", this.dispatchCloseEvent(), setTimeout(() => this.remove());
|
|
106
|
-
}
|
|
107
|
-
_handleSlotchange() {
|
|
108
|
-
this._syncLinks();
|
|
109
|
-
let e = Array.from(this.children).find((e) => e.localName === "sbb-title");
|
|
110
|
-
e && (e.slot = "title");
|
|
111
|
-
}
|
|
112
|
-
_syncLinks() {
|
|
113
|
-
Array.from(this.querySelectorAll?.("sbb-link") ?? []).forEach((e) => {
|
|
114
|
-
customElements.upgrade(e), e.negative = this._isLightMode();
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
_configureTitle() {
|
|
118
|
-
let e = this.querySelector?.("sbb-title");
|
|
119
|
-
e && (customElements.upgrade(e), e.negative = this._isLightMode(), e.visualLevel = this.size === "l" ? "3" : "5");
|
|
120
|
-
}
|
|
121
|
-
_isLightMode() {
|
|
122
|
-
return !this._darkModeController.matches();
|
|
123
|
-
}
|
|
124
|
-
renderIconName() {
|
|
125
|
-
return super.renderIconName() || "info";
|
|
126
|
-
}
|
|
127
|
-
render() {
|
|
128
|
-
return n`
|
|
129
|
-
<div class="sbb-alert__transition-wrapper" @animationend=${this._onAnimationEnd}>
|
|
130
|
-
<!-- sub wrapper needed to properly support fade in animation -->
|
|
131
|
-
<div class="sbb-alert__transition-sub-wrapper">
|
|
132
|
-
<div class="sbb-alert">
|
|
133
|
-
<span class="sbb-alert__icon"> ${this.renderIconSlot()} </span>
|
|
134
|
-
<span class="sbb-alert__content">
|
|
135
|
-
<slot name="title" @slotchange=${this._configureTitle}></slot>
|
|
136
|
-
<p class="sbb-alert__content-slot">
|
|
137
|
-
<slot @slotchange=${this._handleSlotchange}></slot>
|
|
138
|
-
</p>
|
|
139
|
-
</span>
|
|
140
|
-
${this.readOnly ? r : n`<span class="sbb-alert__close-button-wrapper">
|
|
141
|
-
<sbb-divider
|
|
142
|
-
orientation="vertical"
|
|
143
|
-
?negative=${this._isLightMode()}
|
|
144
|
-
class="sbb-alert__close-button-divider"
|
|
145
|
-
></sbb-divider>
|
|
146
|
-
<sbb-transparent-button
|
|
147
|
-
?negative=${this._isLightMode()}
|
|
148
|
-
size=${this.size === "l" ? "m" : this.size}
|
|
149
|
-
icon-name="cross-small"
|
|
150
|
-
@click=${() => this.close()}
|
|
151
|
-
aria-label=${d[this._language.current]}
|
|
152
|
-
class="sbb-alert__close-button"
|
|
153
|
-
></sbb-transparent-button>
|
|
154
|
-
</span>`}
|
|
155
|
-
</div>
|
|
156
|
-
</div>
|
|
157
|
-
</div>
|
|
158
|
-
`;
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
})();
|
|
162
|
-
//#endregion
|
|
163
|
-
export { v as t };
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import { nothing, unsafeCSS } from "lit";
|
|
3
|
-
import { property, state } from "lit/decorators.js";
|
|
4
|
-
import { SbbElement, boxSizingStyles, forceType, isEventPrevented } from "./core.js";
|
|
5
|
-
import { html as html$1, unsafeStatic } from "lit/static-html.js";
|
|
6
|
-
//#region src/elements/alert/alert-group/alert-group.scss?inline
|
|
7
|
-
var alert_group_default = ":host {\n --sbb-alert-group-gap: var(--sbb-spacing-fixed-3x);\n --sbb-alert-group-border-radius: var(--sbb-border-radius-4x);\n display: block;\n}\n\n.sbb-alert-group {\n display: flex;\n flex-direction: column;\n gap: var(--sbb-alert-group-gap);\n}\n\n:host(:focus-visible:not(:is(:state(empty),[state--empty]))) {\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 border-radius: var(--sbb-alert-group-border-radius);\n}\n\n.sbb-alert-group__title {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}";
|
|
8
|
-
//#endregion
|
|
9
|
-
//#region src/elements/alert/alert-group/alert-group.component.ts
|
|
10
|
-
/**
|
|
11
|
-
* It can be used as a container for one or more `sbb-alert` component.
|
|
12
|
-
*
|
|
13
|
-
* @slot - Use the unnamed slot to add `sbb-alert` elements to the `sbb-alert-group`.
|
|
14
|
-
* @slot accessibility-title - title for this `sbb-alert-group` which is only visible for screen reader users.
|
|
15
|
-
*/
|
|
16
|
-
var SbbAlertGroupElement = (() => {
|
|
17
|
-
let _classSuper = SbbElement;
|
|
18
|
-
let _role_decorators;
|
|
19
|
-
let _role_initializers = [];
|
|
20
|
-
let _role_extraInitializers = [];
|
|
21
|
-
let _accessibilityTitle_decorators;
|
|
22
|
-
let _accessibilityTitle_initializers = [];
|
|
23
|
-
let _accessibilityTitle_extraInitializers = [];
|
|
24
|
-
let _accessibilityTitleLevel_decorators;
|
|
25
|
-
let _accessibilityTitleLevel_initializers = [];
|
|
26
|
-
let _accessibilityTitleLevel_extraInitializers = [];
|
|
27
|
-
let __hasAlerts_decorators;
|
|
28
|
-
let __hasAlerts_initializers = [];
|
|
29
|
-
let __hasAlerts_extraInitializers = [];
|
|
30
|
-
return class SbbAlertGroupElement extends _classSuper {
|
|
31
|
-
static {
|
|
32
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
33
|
-
_role_decorators = [property({ reflect: true })];
|
|
34
|
-
_accessibilityTitle_decorators = [forceType(), property({ attribute: "accessibility-title" })];
|
|
35
|
-
_accessibilityTitleLevel_decorators = [property({ attribute: "accessibility-title-level" })];
|
|
36
|
-
__hasAlerts_decorators = [state()];
|
|
37
|
-
__esDecorate(this, null, _role_decorators, {
|
|
38
|
-
kind: "accessor",
|
|
39
|
-
name: "role",
|
|
40
|
-
static: false,
|
|
41
|
-
private: false,
|
|
42
|
-
access: {
|
|
43
|
-
has: (obj) => "role" in obj,
|
|
44
|
-
get: (obj) => obj.role,
|
|
45
|
-
set: (obj, value) => {
|
|
46
|
-
obj.role = value;
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
metadata: _metadata
|
|
50
|
-
}, _role_initializers, _role_extraInitializers);
|
|
51
|
-
__esDecorate(this, null, _accessibilityTitle_decorators, {
|
|
52
|
-
kind: "accessor",
|
|
53
|
-
name: "accessibilityTitle",
|
|
54
|
-
static: false,
|
|
55
|
-
private: false,
|
|
56
|
-
access: {
|
|
57
|
-
has: (obj) => "accessibilityTitle" in obj,
|
|
58
|
-
get: (obj) => obj.accessibilityTitle,
|
|
59
|
-
set: (obj, value) => {
|
|
60
|
-
obj.accessibilityTitle = value;
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
metadata: _metadata
|
|
64
|
-
}, _accessibilityTitle_initializers, _accessibilityTitle_extraInitializers);
|
|
65
|
-
__esDecorate(this, null, _accessibilityTitleLevel_decorators, {
|
|
66
|
-
kind: "accessor",
|
|
67
|
-
name: "accessibilityTitleLevel",
|
|
68
|
-
static: false,
|
|
69
|
-
private: false,
|
|
70
|
-
access: {
|
|
71
|
-
has: (obj) => "accessibilityTitleLevel" in obj,
|
|
72
|
-
get: (obj) => obj.accessibilityTitleLevel,
|
|
73
|
-
set: (obj, value) => {
|
|
74
|
-
obj.accessibilityTitleLevel = value;
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
metadata: _metadata
|
|
78
|
-
}, _accessibilityTitleLevel_initializers, _accessibilityTitleLevel_extraInitializers);
|
|
79
|
-
__esDecorate(this, null, __hasAlerts_decorators, {
|
|
80
|
-
kind: "accessor",
|
|
81
|
-
name: "_hasAlerts",
|
|
82
|
-
static: false,
|
|
83
|
-
private: false,
|
|
84
|
-
access: {
|
|
85
|
-
has: (obj) => "_hasAlerts" in obj,
|
|
86
|
-
get: (obj) => obj._hasAlerts,
|
|
87
|
-
set: (obj, value) => {
|
|
88
|
-
obj._hasAlerts = value;
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
metadata: _metadata
|
|
92
|
-
}, __hasAlerts_initializers, __hasAlerts_extraInitializers);
|
|
93
|
-
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
94
|
-
enumerable: true,
|
|
95
|
-
configurable: true,
|
|
96
|
-
writable: true,
|
|
97
|
-
value: _metadata
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
static {
|
|
101
|
-
this.elementName = "sbb-alert-group";
|
|
102
|
-
}
|
|
103
|
-
static {
|
|
104
|
-
this.styles = [boxSizingStyles, unsafeCSS(alert_group_default)];
|
|
105
|
-
}
|
|
106
|
-
static {
|
|
107
|
-
this.events = { empty: "empty" };
|
|
108
|
-
}
|
|
109
|
-
#role_accessor_storage = __runInitializers(this, _role_initializers, "status");
|
|
110
|
-
/**
|
|
111
|
-
* The role attribute defines how to announce alerts to the user.
|
|
112
|
-
*
|
|
113
|
-
* 'status': sets aria-live to polite and aria-atomic to true.
|
|
114
|
-
* 'alert': sets aria-live to assertive and aria-atomic to true.
|
|
115
|
-
*/
|
|
116
|
-
get role() {
|
|
117
|
-
return this.#role_accessor_storage;
|
|
118
|
-
}
|
|
119
|
-
set role(value) {
|
|
120
|
-
this.#role_accessor_storage = value;
|
|
121
|
-
}
|
|
122
|
-
#accessibilityTitle_accessor_storage = (__runInitializers(this, _role_extraInitializers), __runInitializers(this, _accessibilityTitle_initializers, ""));
|
|
123
|
-
/** Title for this alert group which is only visible for screen reader users. */
|
|
124
|
-
get accessibilityTitle() {
|
|
125
|
-
return this.#accessibilityTitle_accessor_storage;
|
|
126
|
-
}
|
|
127
|
-
set accessibilityTitle(value) {
|
|
128
|
-
this.#accessibilityTitle_accessor_storage = value;
|
|
129
|
-
}
|
|
130
|
-
#accessibilityTitleLevel_accessor_storage = (__runInitializers(this, _accessibilityTitle_extraInitializers), __runInitializers(this, _accessibilityTitleLevel_initializers, "2"));
|
|
131
|
-
/** Level of the accessibility title, will be rendered as heading tag (e.g. h2). Defaults to level 2. */
|
|
132
|
-
get accessibilityTitleLevel() {
|
|
133
|
-
return this.#accessibilityTitleLevel_accessor_storage;
|
|
134
|
-
}
|
|
135
|
-
set accessibilityTitleLevel(value) {
|
|
136
|
-
this.#accessibilityTitleLevel_accessor_storage = value;
|
|
137
|
-
}
|
|
138
|
-
#_hasAlerts_accessor_storage = (__runInitializers(this, _accessibilityTitleLevel_extraInitializers), __runInitializers(this, __hasAlerts_initializers, false));
|
|
139
|
-
/** Whether the group currently has any alerts. */
|
|
140
|
-
get _hasAlerts() {
|
|
141
|
-
return this.#_hasAlerts_accessor_storage;
|
|
142
|
-
}
|
|
143
|
-
set _hasAlerts(value) {
|
|
144
|
-
this.#_hasAlerts_accessor_storage = value;
|
|
145
|
-
}
|
|
146
|
-
constructor() {
|
|
147
|
-
super();
|
|
148
|
-
__runInitializers(this, __hasAlerts_extraInitializers);
|
|
149
|
-
this.addEventListener?.("close", async (e) => {
|
|
150
|
-
if (!await isEventPrevented(e)) this._alertClosed(e);
|
|
151
|
-
}, { capture: true });
|
|
152
|
-
}
|
|
153
|
-
_alertClosed(event) {
|
|
154
|
-
const target = event.target;
|
|
155
|
-
if (document.activeElement === target) {
|
|
156
|
-
this.tabIndex = 0;
|
|
157
|
-
this.focus();
|
|
158
|
-
this.addEventListener("blur", () => this.removeAttribute("tabindex"), { once: true });
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
_slotChanged(event) {
|
|
162
|
-
const hadAlerts = this._hasAlerts;
|
|
163
|
-
this._hasAlerts = event.target.assignedElements().filter((e) => e instanceof Element && e.localName === "sbb-alert").length > 0;
|
|
164
|
-
if (!this._hasAlerts && hadAlerts)
|
|
165
|
-
/** Emits when `sbb-alert-group` becomes empty. */
|
|
166
|
-
this.dispatchEvent(new Event("empty", {
|
|
167
|
-
composed: true,
|
|
168
|
-
bubbles: true
|
|
169
|
-
}));
|
|
170
|
-
this.toggleState("empty", !this._hasAlerts);
|
|
171
|
-
}
|
|
172
|
-
render() {
|
|
173
|
-
const TITLE_TAG_NAME = `h${this.accessibilityTitleLevel}`;
|
|
174
|
-
return html$1`
|
|
175
|
-
<div class="sbb-alert-group">
|
|
176
|
-
${this._hasAlerts ? html$1`<${unsafeStatic(TITLE_TAG_NAME)} class="sbb-alert-group__title">
|
|
177
|
-
<slot name="accessibility-title">${this.accessibilityTitle}</slot>
|
|
178
|
-
</${unsafeStatic(TITLE_TAG_NAME)}>` : nothing}
|
|
179
|
-
<slot @slotchange=${(event) => this._slotChanged(event)}></slot>
|
|
180
|
-
</div>
|
|
181
|
-
`;
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
})();
|
|
185
|
-
//#endregion
|
|
186
|
-
export { SbbAlertGroupElement as t };
|
|
187
|
-
|
|
188
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtZ3JvdXAuY29tcG9uZW50LURlSTZrdXduLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hbGVydC9hbGVydC1ncm91cC9hbGVydC1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1hbGVydC1ncm91cC1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTN4KTtcbiAgLS1zYmItYWxlcnQtZ3JvdXAtYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLWJvcmRlci1yYWRpdXMtNHgpO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2JiLWFsZXJ0LWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1zYmItYWxlcnQtZ3JvdXAtZ2FwKTtcbn1cblxuOmhvc3QoOmZvY3VzLXZpc2libGU6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1hbGVydC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbn1cblxuLnNiYi1hbGVydC1ncm91cF9fdGl0bGUge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgbm90aGluZywgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIHVuc2FmZVN0YXRpYyB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcywgZm9yY2VUeXBlLCBpc0V2ZW50UHJldmVudGVkLCBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlTGV2ZWwgfSBmcm9tICcuLi8uLi90aXRsZS5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiQWxlcnRFbGVtZW50IH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWxlcnQtZ3JvdXAuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbW9yZSBgc2JiLWFsZXJ0YCBjb21wb25lbnQuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1hbGVydGAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWxlcnQtZ3JvdXBgLlxuICogQHNsb3QgYWNjZXNzaWJpbGl0eS10aXRsZSAtIHRpdGxlIGZvciB0aGlzIGBzYmItYWxlcnQtZ3JvdXBgIHdoaWNoIGlzIG9ubHkgdmlzaWJsZSBmb3Igc2NyZWVuIHJlYWRlciB1c2Vycy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFsZXJ0R3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItYWxlcnQtZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZW1wdHk6ICdlbXB0eScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIGF0dHJpYnV0ZSBkZWZpbmVzIGhvdyB0byBhbm5vdW5jZSBhbGVydHMgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqICdzdGF0dXMnOiBzZXRzIGFyaWEtbGl2ZSB0byBwb2xpdGUgYW5kIGFyaWEtYXRvbWljIHRvIHRydWUuXG4gICAqICdhbGVydCc6IHNldHMgYXJpYS1saXZlIHRvIGFzc2VydGl2ZSBhbmQgYXJpYS1hdG9taWMgdG8gdHJ1ZS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHJvbGU6ICdhbGVydCcgfCAnc3RhdHVzJyB8IHN0cmluZyA9ICdzdGF0dXMnO1xuXG4gIC8qKiBUaXRsZSBmb3IgdGhpcyBhbGVydCBncm91cCB3aGljaCBpcyBvbmx5IHZpc2libGUgZm9yIHNjcmVlbiByZWFkZXIgdXNlcnMuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVRpdGxlOiBzdHJpbmcgPSAnJztcblxuICAvKiogTGV2ZWwgb2YgdGhlIGFjY2Vzc2liaWxpdHkgdGl0bGUsIHdpbGwgYmUgcmVuZGVyZWQgYXMgaGVhZGluZyB0YWcgKGUuZy4gaDIpLiBEZWZhdWx0cyB0byBsZXZlbCAyLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LXRpdGxlLWxldmVsJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eVRpdGxlTGV2ZWw6IFNiYlRpdGxlTGV2ZWwgPSAnMic7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGdyb3VwIGN1cnJlbnRseSBoYXMgYW55IGFsZXJ0cy4gKi9cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfaGFzQWxlcnRzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnY2xvc2UnLFxuICAgICAgYXN5bmMgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZSkpKSB7XG4gICAgICAgICAgdGhpcy5fYWxlcnRDbG9zZWQoZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFdlIHVzZSBjYXB0dXJlIGhlcmUsIGJlY2F1c2UgJ2Nsb3NlJyBkb2VzIG5vdCBidWJibGUuXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9hbGVydENsb3NlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiQWxlcnRFbGVtZW50O1xuICAgIGNvbnN0IGhhc0ZvY3VzSW5zaWRlQWxlcnRHcm91cCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRhcmdldDtcblxuICAgIC8vIFJlc3RvcmUgZm9jdXNcbiAgICBpZiAoaGFzRm9jdXNJbnNpZGVBbGVydEdyb3VwKSB7XG4gICAgICAvLyBTZXQgdGFiaW5kZXggdG8gMCB0aGUgbWFrZSBpdCBmb2N1c2FibGUgYW5kIGFmdGVyd2FyZCBmb2N1cyBpdC5cbiAgICAgIC8vIFRoaXMgaXMgZG9uZSB0byBub3QgY29tcGxldGVseSBsb3NlIGZvY3VzIGFmdGVyIHJlbW92YWwgb2YgYW4gYWxlcnQuXG4gICAgICAvLyBPbmNlIHRoZSBzYmItYWxlcnQtZ3JvdXAgd2FzIGJsdXJyZWQsIG1ha2UgdGhlIGFsZXJ0IGdyb3VwIG5vdCBmb2N1c2FibGUgYWdhaW4uXG4gICAgICB0aGlzLnRhYkluZGV4ID0gMDtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpLCB7XG4gICAgICAgIG9uY2U6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zbG90Q2hhbmdlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBoYWRBbGVydHMgPSB0aGlzLl9oYXNBbGVydHM7XG4gICAgdGhpcy5faGFzQWxlcnRzID1cbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTFNsb3RFbGVtZW50KVxuICAgICAgICAuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBFbGVtZW50ICYmIGUubG9jYWxOYW1lID09PSAnc2JiLWFsZXJ0JykubGVuZ3RoID4gMDtcbiAgICBpZiAoIXRoaXMuX2hhc0FsZXJ0cyAmJiBoYWRBbGVydHMpIHtcbiAgICAgIC8qKiBFbWl0cyB3aGVuIGBzYmItYWxlcnQtZ3JvdXBgIGJlY29tZXMgZW1wdHkuICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdlbXB0eScsIHsgY29tcG9zZWQ6IHRydWUsIGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2VtcHR5JywgIXRoaXMuX2hhc0FsZXJ0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBUSVRMRV9UQUdfTkFNRSA9IGBoJHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZUxldmVsfWA7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBcIj5cbiAgICAgICAgJHt0aGlzLl9oYXNBbGVydHNcbiAgICAgICAgICA/IGh0bWxgPCR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0gY2xhc3M9XCJzYmItYWxlcnQtZ3JvdXBfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJhY2Nlc3NpYmlsaXR5LXRpdGxlXCI+JHt0aGlzLmFjY2Vzc2liaWxpdHlUaXRsZX08L3Nsb3Q+XG4gICAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRJVExFX1RBR19OQU1FKX0+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoZXZlbnQ6IEV2ZW50KSA9PiB0aGlzLl9zbG90Q2hhbmdlZChldmVudCl9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hbGVydC1ncm91cCc6IFNiYkFsZXJ0R3JvdXBFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztJQ2dCYSw4QkFBb0I7bUJBQVM7Ozs7Ozs7Ozs7Ozs7Y0FBN0IsNkJBQTZCLFlBQVU7Ozt1QkFhakQsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7cUNBSTNCLFdBQVcsRUFDWCxTQUFTLEVBQUUsV0FBVyx1QkFBdUIsQ0FBQyxDQUFBOzBDQUk5QyxTQUFTLEVBQUUsV0FBVyw2QkFBNkIsQ0FBQyxDQUFBOzZCQUlwRCxPQUFPLENBQUE7QUFaUixnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQXlCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFBQSx3QkFBQTtBQUs3QixnQkFBQSxNQUFBLE1BQUEsZ0NBQUE7SUFBQSxNQUFB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
|