@sbb-esta/lyne-elements-dev 4.7.0-dev.1773743316 → 4.7.0-dev.1773744201
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/core/styles/core.scss +5 -10
- package/core.css +14 -9
- package/custom-elements.json +75 -75
- package/development/notification/notification.component.js +1 -1
- package/development/notification.component-BT3ZQhUI.js +525 -0
- package/development/notification.js +1 -1
- package/development/notification.pure.js +1 -1
- package/notification/notification.component.js +1 -1
- package/notification.component-DA7sZ3m4.js +197 -0
- package/notification.js +1 -1
- package/notification.pure.js +1 -1
- package/off-brand-theme.css +14 -9
- package/package.json +2 -2
- package/safety-theme.css +14 -9
- package/standard-theme.css +14 -9
- package/development/notification.component-B5EBKKf8.js +0 -530
- package/notification.component-DZS8z1oa.js +0 -197
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { css, html, nothing } from "lit";
|
|
3
|
+
import { property } from "lit/decorators.js";
|
|
4
|
+
import { SbbElement } from "./core/base-elements.js";
|
|
5
|
+
import { isLean, isZeroAnimationDuration } from "./core/dom.js";
|
|
6
|
+
import { SbbReadonlyMixin } from "./core/mixins.js";
|
|
7
|
+
import { boxSizingStyles } from "./core/styles.js";
|
|
8
|
+
import { SbbLanguageController } from "./core/controllers.js";
|
|
9
|
+
import { i18nCloseNotification } from "./core/i18n.js";
|
|
10
|
+
import { SbbIconNameMixin } from "./icon.js";
|
|
11
|
+
import "./divider.js";
|
|
12
|
+
import { ResizeController } from "@lit-labs/observers/resize-controller.js";
|
|
13
|
+
import "./button/secondary-button.js";
|
|
14
|
+
//#region src/elements/notification/notification.scss?lit&inline
|
|
15
|
+
var notification_default = css`:host {
|
|
16
|
+
--sbb-notification-border: var(--sbb-notification-border-width) solid
|
|
17
|
+
var(--sbb-notification-type-color);
|
|
18
|
+
--sbb-notification-background-color: color-mix(in srgb, var(--sbb-notification-type-color) 5%, white);
|
|
19
|
+
--sbb-notification-background-color: light-dark(
|
|
20
|
+
color-mix(in srgb, var(--sbb-notification-type-color) 5%, white),
|
|
21
|
+
color-mix(in srgb, var(--sbb-notification-type-color) 35%, white)
|
|
22
|
+
);
|
|
23
|
+
--sbb-notification-icon-color: var(--sbb-notification-type-color);
|
|
24
|
+
--sbb-notification-border-radius-start: calc(var(--sbb-notification-base-border-radius) / 2);
|
|
25
|
+
--sbb-notification-animation-duration: var(
|
|
26
|
+
--sbb-disable-animation-duration,
|
|
27
|
+
var(--sbb-animation-duration-4x)
|
|
28
|
+
);
|
|
29
|
+
--_sbb-notification-icon-authoritative-font-size: 1em;
|
|
30
|
+
--_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-text);
|
|
31
|
+
--_sbb-notification-inset-inline-start: calc(
|
|
32
|
+
var(--sbb-notification-base-border-radius) - var(--sbb-notification-border-width)
|
|
33
|
+
);
|
|
34
|
+
--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);
|
|
35
|
+
display: block;
|
|
36
|
+
letter-spacing: var(--sbb-typo-letter-spacing-text);
|
|
37
|
+
font-size: var(--sbb-notification-font-size);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:host(:is(:state(state-opening),[state--state-opening]):not([animation=open], [animation=all])) {
|
|
41
|
+
--sbb-disable-animation-duration: 0s;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:host(:is(:state(state-closing),[state--state-closing]):not([animation=close], [animation=all])) {
|
|
45
|
+
--sbb-disable-animation-duration: 0s;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:host(:is(:state(resize-disable-animation),[state--resize-disable-animation])) {
|
|
49
|
+
--sbb-disable-animation-duration: 0s;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:host(:is(:state(slotted-title),[state--slotted-title])) {
|
|
53
|
+
--_sbb-notification-icon-authoritative-font-size: var(--sbb-heading-font-size-5);
|
|
54
|
+
--_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-heading);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:host(:is(:state(slotted-title),[state--slotted-title])[size=s]) {
|
|
58
|
+
--_sbb-notification-icon-authoritative-font-size: var(--sbb-heading-font-size-6);
|
|
59
|
+
--_sbb-notification-icon-authoritative-line-height: var(--sbb-typo-line-height-text);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
:host([size=m]) {
|
|
63
|
+
--sbb-notification-font-size: var(--sbb-text-font-size-s);
|
|
64
|
+
--sbb-notification-padding-block: var(--sbb-spacing-responsive-xxs);
|
|
65
|
+
--sbb-notification-padding-inline: var(--sbb-spacing-responsive-xs);
|
|
66
|
+
--sbb-notification-content-padding-inline: var(--sbb-spacing-responsive-xxxs)
|
|
67
|
+
var(--sbb-spacing-responsive-xs);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
:host([size=s]) {
|
|
71
|
+
--sbb-notification-font-size: var(--sbb-text-font-size-xs);
|
|
72
|
+
--sbb-notification-padding-block: var(--sbb-spacing-responsive-xxxs);
|
|
73
|
+
--sbb-notification-padding-inline: var(--sbb-spacing-responsive-xxs)
|
|
74
|
+
var(--sbb-spacing-responsive-xxxs);
|
|
75
|
+
--sbb-notification-content-padding-inline: var(--sbb-spacing-responsive-xxxs)
|
|
76
|
+
var(--sbb-spacing-responsive-xxs);
|
|
77
|
+
}
|
|
78
|
+
@media (min-width: calc(37.5rem)) {
|
|
79
|
+
:host([size=s]) {
|
|
80
|
+
--sbb-notification-padding-inline: var(--sbb-spacing-responsive-xxs);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
:host(:is(:not([type]), [type=info])) {
|
|
85
|
+
--sbb-notification-type-color: var(--sbb-color-smoke);
|
|
86
|
+
--sbb-notification-icon-color: var(--sbb-notification-color);
|
|
87
|
+
--sbb-notification-divider-opacity-light: 20%;
|
|
88
|
+
--sbb-notification-divider-opacity-dark: 20%;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:host([type=note]) {
|
|
92
|
+
--sbb-notification-type-color: var(--sbb-color-sky);
|
|
93
|
+
--sbb-notification-divider-opacity-light: 20%;
|
|
94
|
+
--sbb-notification-divider-opacity-dark: 20%;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
:host([type=success]) {
|
|
98
|
+
--sbb-notification-type-color: var(--sbb-color-success);
|
|
99
|
+
--sbb-notification-divider-opacity-light: 15%;
|
|
100
|
+
--sbb-notification-divider-opacity-dark: 30%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:host([type=warn]) {
|
|
104
|
+
--sbb-notification-type-color: var(--sbb-color-warning);
|
|
105
|
+
--sbb-notification-icon-color: var(--sbb-notification-color);
|
|
106
|
+
--sbb-notification-divider-opacity-light: 25%;
|
|
107
|
+
--sbb-notification-divider-opacity-dark: 40%;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
:host([type=error]) {
|
|
111
|
+
--sbb-notification-type-color: var(--sbb-color-error);
|
|
112
|
+
--sbb-notification-divider-opacity-light: 10%;
|
|
113
|
+
--sbb-notification-divider-opacity-dark: 25%;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.sbb-notification__wrapper {
|
|
117
|
+
position: relative;
|
|
118
|
+
inset-inline-start: var(--_sbb-notification-inset-inline-start);
|
|
119
|
+
width: calc(100% - var(--_sbb-notification-inset-inline-start));
|
|
120
|
+
border: var(--sbb-notification-border);
|
|
121
|
+
border-radius: var(--sbb-notification-border-radius-start) var(--sbb-notification-base-border-radius) var(--sbb-notification-base-border-radius) var(--sbb-notification-border-radius-start);
|
|
122
|
+
opacity: 0;
|
|
123
|
+
max-height: 0;
|
|
124
|
+
margin: 0;
|
|
125
|
+
}
|
|
126
|
+
.sbb-notification__wrapper::before {
|
|
127
|
+
content: "";
|
|
128
|
+
position: absolute;
|
|
129
|
+
inset: calc(var(--sbb-notification-border-width) * -1) var(--sbb-notification-base-border-radius) calc(var(--sbb-notification-border-width) * -1) calc(var(--sbb-notification-base-border-radius) * -1);
|
|
130
|
+
background-color: var(--sbb-notification-type-color);
|
|
131
|
+
border: var(--sbb-notification-border);
|
|
132
|
+
border-radius: var(--sbb-notification-base-border-radius);
|
|
133
|
+
}
|
|
134
|
+
:host(:is(:is(:state(state-opened),[state--state-opened]), :is(:state(state-closing),[state--state-closing]))) .sbb-notification__wrapper {
|
|
135
|
+
opacity: 1;
|
|
136
|
+
max-height: calc(var(--sbb-notification-height) + var(--sbb-notification-border-width) * 2);
|
|
137
|
+
margin: var(--sbb-notification-margin, 0);
|
|
138
|
+
}
|
|
139
|
+
:host(:is(:state(state-opening),[state--state-opening])) .sbb-notification__wrapper {
|
|
140
|
+
animation-name: open;
|
|
141
|
+
animation-fill-mode: forwards;
|
|
142
|
+
animation-duration: var(--sbb-notification-animation-duration);
|
|
143
|
+
animation-timing-function: var(--sbb-notification-timing-function);
|
|
144
|
+
}
|
|
145
|
+
:host(:is(:state(state-closing),[state--state-closing])) .sbb-notification__wrapper {
|
|
146
|
+
animation-name: close, close-height;
|
|
147
|
+
animation-fill-mode: forwards;
|
|
148
|
+
animation-duration: var(--sbb-notification-animation-duration);
|
|
149
|
+
animation-timing-function: var(--sbb-notification-timing-function);
|
|
150
|
+
animation-delay: 0s, var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x));
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.sbb-notification {
|
|
154
|
+
position: relative;
|
|
155
|
+
display: grid;
|
|
156
|
+
grid-template-columns: 1fr auto;
|
|
157
|
+
align-items: center;
|
|
158
|
+
padding-block: var(--sbb-notification-padding-block);
|
|
159
|
+
padding-inline: var(--sbb-notification-padding-inline);
|
|
160
|
+
color: var(--sbb-notification-color);
|
|
161
|
+
border-radius: var(--sbb-notification-border-radius-start) calc(var(--sbb-notification-base-border-radius) - var(--sbb-notification-border-width)) calc(var(--sbb-notification-base-border-radius) - var(--sbb-notification-border-width)) var(--sbb-notification-border-radius-start);
|
|
162
|
+
overflow: hidden;
|
|
163
|
+
background-color: var(--sbb-notification-background-color);
|
|
164
|
+
}
|
|
165
|
+
@media (min-width: calc(37.5rem)) {
|
|
166
|
+
.sbb-notification {
|
|
167
|
+
grid-template-columns: auto 1fr auto auto;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.sbb-notification__icon,
|
|
172
|
+
::slotted(sbb-icon) {
|
|
173
|
+
color: var(--sbb-notification-icon-color);
|
|
174
|
+
align-self: var(--sbb-notification-icon-align-self);
|
|
175
|
+
--sbb-icon-svg-width: var(--sbb-notification-icon-size);
|
|
176
|
+
}
|
|
177
|
+
@media (min-width: calc(37.5rem)) {
|
|
178
|
+
.sbb-notification__icon,
|
|
179
|
+
::slotted(sbb-icon) {
|
|
180
|
+
margin-block-start: max(0rem, (var(--_sbb-notification-icon-authoritative-font-size) * var(--_sbb-notification-icon-authoritative-line-height) - var(--sbb-size-icon-ui-small)) / 2);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.sbb-notification__content {
|
|
185
|
+
color-scheme: only light;
|
|
186
|
+
order: 3;
|
|
187
|
+
grid-area: 2/1/3/3;
|
|
188
|
+
margin-block-start: var(--sbb-notification-content-margin-block-start);
|
|
189
|
+
}
|
|
190
|
+
@media (min-width: calc(37.5rem)) {
|
|
191
|
+
.sbb-notification__content {
|
|
192
|
+
order: initial;
|
|
193
|
+
grid-area: initial;
|
|
194
|
+
margin-block-start: 0;
|
|
195
|
+
padding-inline: var(--sbb-notification-content-padding-inline);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.sbb-notification__text {
|
|
200
|
+
display: inline;
|
|
201
|
+
margin: 0;
|
|
202
|
+
padding: 0;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.sbb-notification__divider {
|
|
206
|
+
--sbb-divider-color: color-mix(
|
|
207
|
+
in srgb,
|
|
208
|
+
var(--sbb-notification-type-color) var(--sbb-notification-divider-opacity-light),
|
|
209
|
+
var(--sbb-notification-background-color)
|
|
210
|
+
);
|
|
211
|
+
--sbb-divider-color: light-dark(
|
|
212
|
+
color-mix(
|
|
213
|
+
in srgb,
|
|
214
|
+
var(--sbb-notification-type-color) var(--sbb-notification-divider-opacity-light),
|
|
215
|
+
var(--sbb-notification-background-color)
|
|
216
|
+
),
|
|
217
|
+
color-mix(
|
|
218
|
+
in srgb,
|
|
219
|
+
var(--sbb-notification-type-color) var(--sbb-notification-divider-opacity-dark),
|
|
220
|
+
var(--sbb-notification-background-color)
|
|
221
|
+
)
|
|
222
|
+
);
|
|
223
|
+
display: none;
|
|
224
|
+
position: relative;
|
|
225
|
+
inset-inline-start: var(--sbb-border-width-1x);
|
|
226
|
+
}
|
|
227
|
+
@media (min-width: calc(37.5rem)) {
|
|
228
|
+
.sbb-notification__divider {
|
|
229
|
+
display: block;
|
|
230
|
+
margin-inline-end: var(--sbb-notification-close-wrapper-gap);
|
|
231
|
+
height: calc(100% - var(--sbb-spacing-fixed-1x) * 2);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
@keyframes open {
|
|
236
|
+
from {
|
|
237
|
+
opacity: 0;
|
|
238
|
+
max-height: 0;
|
|
239
|
+
margin: 0;
|
|
240
|
+
}
|
|
241
|
+
to {
|
|
242
|
+
opacity: 1;
|
|
243
|
+
max-height: calc(var(--sbb-notification-height) + var(--sbb-notification-border-width) * 2);
|
|
244
|
+
margin: var(--sbb-notification-margin, 0);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
@keyframes close {
|
|
248
|
+
from {
|
|
249
|
+
opacity: 1;
|
|
250
|
+
margin: var(--sbb-notification-margin, 0);
|
|
251
|
+
}
|
|
252
|
+
to {
|
|
253
|
+
opacity: 0;
|
|
254
|
+
margin: 0;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
@keyframes close-height {
|
|
258
|
+
from {
|
|
259
|
+
max-height: calc(var(--sbb-notification-height) + var(--sbb-notification-border-width) * 2);
|
|
260
|
+
}
|
|
261
|
+
to {
|
|
262
|
+
max-height: 0;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
::slotted(sbb-title) {
|
|
266
|
+
margin: 0;
|
|
267
|
+
}`;
|
|
268
|
+
//#endregion
|
|
269
|
+
//#region src/elements/notification/notification.component.ts
|
|
270
|
+
var notificationTypes = new Map([
|
|
271
|
+
["info", "circle-information-small"],
|
|
272
|
+
["note", "circle-information-small"],
|
|
273
|
+
["success", "circle-tick-small"],
|
|
274
|
+
["warn", "circle-exclamation-point-small"],
|
|
275
|
+
["error", "circle-cross-small"]
|
|
276
|
+
]);
|
|
277
|
+
var DEBOUNCE_TIME = 150;
|
|
278
|
+
/**
|
|
279
|
+
* It displays messages which require a user's attention without interrupting its tasks.
|
|
280
|
+
*
|
|
281
|
+
* @slot - Use the unnamed slot to add content to the `sbb-notification`. Content should consist of an optional `sbb-title` element and text content.
|
|
282
|
+
* @slot title - Slot for the title. For the standard `sbb-title` element, the slot is automatically assigned when slotted in the unnamed slot.
|
|
283
|
+
* @slot icon - Use this slot to display a custom icon by providing an `sbb-icon` component.
|
|
284
|
+
* @cssprop [--sbb-notification-margin=0] - Can be used to modify the margin in order to get a smoother animation.
|
|
285
|
+
* See style section for more information.
|
|
286
|
+
*/
|
|
287
|
+
var SbbNotificationElement = (() => {
|
|
288
|
+
let _classSuper = SbbIconNameMixin(SbbReadonlyMixin(SbbElement));
|
|
289
|
+
let _type_decorators;
|
|
290
|
+
let _type_initializers = [];
|
|
291
|
+
let _type_extraInitializers = [];
|
|
292
|
+
let _size_decorators;
|
|
293
|
+
let _size_initializers = [];
|
|
294
|
+
let _size_extraInitializers = [];
|
|
295
|
+
let _animation_decorators;
|
|
296
|
+
let _animation_initializers = [];
|
|
297
|
+
let _animation_extraInitializers = [];
|
|
298
|
+
return class SbbNotificationElement extends _classSuper {
|
|
299
|
+
static {
|
|
300
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
301
|
+
_type_decorators = [property({ reflect: true })];
|
|
302
|
+
_size_decorators = [property({ reflect: true })];
|
|
303
|
+
_animation_decorators = [property({ reflect: true })];
|
|
304
|
+
__esDecorate(this, null, _type_decorators, {
|
|
305
|
+
kind: "accessor",
|
|
306
|
+
name: "type",
|
|
307
|
+
static: false,
|
|
308
|
+
private: false,
|
|
309
|
+
access: {
|
|
310
|
+
has: (obj) => "type" in obj,
|
|
311
|
+
get: (obj) => obj.type,
|
|
312
|
+
set: (obj, value) => {
|
|
313
|
+
obj.type = value;
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
metadata: _metadata
|
|
317
|
+
}, _type_initializers, _type_extraInitializers);
|
|
318
|
+
__esDecorate(this, null, _size_decorators, {
|
|
319
|
+
kind: "accessor",
|
|
320
|
+
name: "size",
|
|
321
|
+
static: false,
|
|
322
|
+
private: false,
|
|
323
|
+
access: {
|
|
324
|
+
has: (obj) => "size" in obj,
|
|
325
|
+
get: (obj) => obj.size,
|
|
326
|
+
set: (obj, value) => {
|
|
327
|
+
obj.size = value;
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
metadata: _metadata
|
|
331
|
+
}, _size_initializers, _size_extraInitializers);
|
|
332
|
+
__esDecorate(this, null, _animation_decorators, {
|
|
333
|
+
kind: "accessor",
|
|
334
|
+
name: "animation",
|
|
335
|
+
static: false,
|
|
336
|
+
private: false,
|
|
337
|
+
access: {
|
|
338
|
+
has: (obj) => "animation" in obj,
|
|
339
|
+
get: (obj) => obj.animation,
|
|
340
|
+
set: (obj, value) => {
|
|
341
|
+
obj.animation = value;
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
metadata: _metadata
|
|
345
|
+
}, _animation_initializers, _animation_extraInitializers);
|
|
346
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
347
|
+
enumerable: true,
|
|
348
|
+
configurable: true,
|
|
349
|
+
writable: true,
|
|
350
|
+
value: _metadata
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
static {
|
|
354
|
+
this.elementName = "sbb-notification";
|
|
355
|
+
}
|
|
356
|
+
static {
|
|
357
|
+
this.styles = [boxSizingStyles, notification_default];
|
|
358
|
+
}
|
|
359
|
+
static {
|
|
360
|
+
this.events = {
|
|
361
|
+
beforeopen: "beforeopen",
|
|
362
|
+
open: "open",
|
|
363
|
+
beforeclose: "beforeclose",
|
|
364
|
+
close: "close"
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
#type_accessor_storage;
|
|
368
|
+
/** The type of the notification. */
|
|
369
|
+
get type() {
|
|
370
|
+
return this.#type_accessor_storage;
|
|
371
|
+
}
|
|
372
|
+
set type(value) {
|
|
373
|
+
this.#type_accessor_storage = value;
|
|
374
|
+
}
|
|
375
|
+
#size_accessor_storage;
|
|
376
|
+
/**
|
|
377
|
+
* Size variant, either s or m.
|
|
378
|
+
* @default 'm' / 's' (lean)
|
|
379
|
+
*/
|
|
380
|
+
get size() {
|
|
381
|
+
return this.#size_accessor_storage;
|
|
382
|
+
}
|
|
383
|
+
set size(value) {
|
|
384
|
+
this.#size_accessor_storage = value;
|
|
385
|
+
}
|
|
386
|
+
#animation_accessor_storage;
|
|
387
|
+
/** The enabled animations. */
|
|
388
|
+
get animation() {
|
|
389
|
+
return this.#animation_accessor_storage;
|
|
390
|
+
}
|
|
391
|
+
set animation(value) {
|
|
392
|
+
this.#animation_accessor_storage = value;
|
|
393
|
+
}
|
|
394
|
+
/** The state of the component. */
|
|
395
|
+
set _state(state) {
|
|
396
|
+
if (this._stateInternal) this.internals.states.delete(`state-${this._stateInternal}`);
|
|
397
|
+
this._stateInternal = state;
|
|
398
|
+
if (this._stateInternal) this.internals.states.add(`state-${this._stateInternal}`);
|
|
399
|
+
}
|
|
400
|
+
get _state() {
|
|
401
|
+
return this._stateInternal;
|
|
402
|
+
}
|
|
403
|
+
constructor() {
|
|
404
|
+
super();
|
|
405
|
+
this.#type_accessor_storage = __runInitializers(this, _type_initializers, "info");
|
|
406
|
+
this.#size_accessor_storage = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _size_initializers, isLean() ? "s" : "m"));
|
|
407
|
+
this.#animation_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _animation_initializers, "all"));
|
|
408
|
+
this._stateInternal = __runInitializers(this, _animation_extraInitializers);
|
|
409
|
+
this._resizeObserverTimeout = null;
|
|
410
|
+
this._language = new SbbLanguageController(this);
|
|
411
|
+
this._notificationResizeObserver = new ResizeController(this, {
|
|
412
|
+
target: null,
|
|
413
|
+
skipInitial: true,
|
|
414
|
+
callback: () => this._onNotificationResize()
|
|
415
|
+
});
|
|
416
|
+
this._state = "closed";
|
|
417
|
+
}
|
|
418
|
+
willUpdate(changedProperties) {
|
|
419
|
+
super.willUpdate(changedProperties);
|
|
420
|
+
if (changedProperties.has("size")) this._configureTitle();
|
|
421
|
+
}
|
|
422
|
+
_open() {
|
|
423
|
+
if (this._state === "closed") {
|
|
424
|
+
this._state = "opening";
|
|
425
|
+
/** Emits when the opening animation starts. */
|
|
426
|
+
this.dispatchEvent(new Event("beforeopen"));
|
|
427
|
+
if (this._isZeroAnimationDuration()) this._handleOpening();
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
close() {
|
|
431
|
+
if (this._state === "opened" && this._dispatchBeforeCloseEvent()) {
|
|
432
|
+
this._state = "closing";
|
|
433
|
+
if (this._isZeroAnimationDuration()) this._handleClosing();
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
_dispatchBeforeCloseEvent() {
|
|
437
|
+
/** Emits when the closing animation starts. Can be canceled to prevent the component from closing. */
|
|
438
|
+
return this.dispatchEvent(new Event("beforeclose", { cancelable: true }));
|
|
439
|
+
}
|
|
440
|
+
firstUpdated(changedProperties) {
|
|
441
|
+
super.firstUpdated(changedProperties);
|
|
442
|
+
this._notificationElement = this.shadowRoot?.querySelector(".sbb-notification__wrapper");
|
|
443
|
+
this.updateComplete.then(() => {
|
|
444
|
+
this._setNotificationHeight();
|
|
445
|
+
this._open();
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
_isZeroAnimationDuration() {
|
|
449
|
+
return isZeroAnimationDuration(this, "--sbb-notification-animation-duration");
|
|
450
|
+
}
|
|
451
|
+
_setNotificationHeight() {
|
|
452
|
+
if (!this._notificationElement?.scrollHeight) return;
|
|
453
|
+
const notificationHeight = `${this._notificationElement.scrollHeight}px`;
|
|
454
|
+
this.style.setProperty("--sbb-notification-height", notificationHeight);
|
|
455
|
+
}
|
|
456
|
+
_onNotificationResize() {
|
|
457
|
+
if (this._state !== "opened") return;
|
|
458
|
+
if (this._resizeObserverTimeout) clearTimeout(this._resizeObserverTimeout);
|
|
459
|
+
this.internals.states.add("resize-disable-animation");
|
|
460
|
+
this._resizeObserverTimeout = setTimeout(() => this.internals.states.delete("resize-disable-animation"), DEBOUNCE_TIME);
|
|
461
|
+
setTimeout(() => this._setNotificationHeight());
|
|
462
|
+
}
|
|
463
|
+
_onNotificationAnimationEnd(event) {
|
|
464
|
+
if (this._state === "opening" && event.animationName === "open") this._handleOpening();
|
|
465
|
+
if (this._state === "closing" && event.animationName === "close-height") this._handleClosing();
|
|
466
|
+
}
|
|
467
|
+
_handleOpening() {
|
|
468
|
+
this._state = "opened";
|
|
469
|
+
this._notificationResizeObserver.observe(this._notificationElement);
|
|
470
|
+
/** Emits when the opening animation ends. */
|
|
471
|
+
this.dispatchEvent(new Event("open"));
|
|
472
|
+
}
|
|
473
|
+
_handleClosing() {
|
|
474
|
+
this._state = "closed";
|
|
475
|
+
/** Emits when the closing animation ends. */
|
|
476
|
+
this.dispatchEvent(new Event("close"));
|
|
477
|
+
this._notificationResizeObserver.unobserve(this._notificationElement);
|
|
478
|
+
setTimeout(() => this.remove());
|
|
479
|
+
}
|
|
480
|
+
_handleSlotchange() {
|
|
481
|
+
const title = Array.from(this.children).find((el) => el.localName === "sbb-title");
|
|
482
|
+
if (title) title.slot = "title";
|
|
483
|
+
}
|
|
484
|
+
_configureTitle() {
|
|
485
|
+
const title = this.querySelector?.("sbb-title");
|
|
486
|
+
if (title) {
|
|
487
|
+
customElements.upgrade(title);
|
|
488
|
+
title.visualLevel = this.size === "m" ? "5" : "6";
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
renderIconName() {
|
|
492
|
+
return super.renderIconName() || notificationTypes.get(this.type);
|
|
493
|
+
}
|
|
494
|
+
render() {
|
|
495
|
+
return html`
|
|
496
|
+
<div class="sbb-notification__wrapper" @animationend=${this._onNotificationAnimationEnd}>
|
|
497
|
+
<div class="sbb-notification">
|
|
498
|
+
${this.renderIconSlot("sbb-notification__icon")}
|
|
499
|
+
<span class="sbb-notification__content">
|
|
500
|
+
<slot name="title" @slotchange=${this._configureTitle}></slot>
|
|
501
|
+
<p class="sbb-notification__text">
|
|
502
|
+
<slot @slotchange=${this._handleSlotchange}></slot>
|
|
503
|
+
</p>
|
|
504
|
+
</span>
|
|
505
|
+
|
|
506
|
+
${!this.readOnly ? html`
|
|
507
|
+
<sbb-divider class="sbb-notification__divider" orientation="vertical"></sbb-divider>
|
|
508
|
+
<sbb-secondary-button
|
|
509
|
+
size=${this.size}
|
|
510
|
+
icon-name="cross-small"
|
|
511
|
+
@click=${() => this.close()}
|
|
512
|
+
aria-label=${i18nCloseNotification[this._language.current]}
|
|
513
|
+
class="sbb-notification__close"
|
|
514
|
+
></sbb-secondary-button>
|
|
515
|
+
` : nothing}
|
|
516
|
+
</div>
|
|
517
|
+
</div>
|
|
518
|
+
`;
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
})();
|
|
522
|
+
//#endregion
|
|
523
|
+
export { SbbNotificationElement as t };
|
|
524
|
+
|
|
525
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC1CVDNaUWhVSS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zY3NzP2xpdCZpbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuLy8gT3Blbi9DbG9zZSBhbmltYXRpb24gdmFyc1xuJG9wZW4tYW5pbS1tYXJnaW4tZnJvbTogMDtcbiRvcGVuLWFuaW0tbWFyZ2luLXRvOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLW1hcmdpbiwgMCk7XG4kb3Blbi1hbmltLW9wYWNpdHktZnJvbTogMDtcbiRvcGVuLWFuaW0tb3BhY2l0eS10bzogMTtcbiRvcGVuLWFuaW0taGVpZ2h0LWZyb206IDA7XG4kb3Blbi1hbmltLWhlaWdodC10bzogY2FsYyhcbiAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1oZWlnaHQpICsgKHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXdpZHRoKSAqIDIpXG4pO1xuXG46aG9zdCB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXI6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXdpZHRoKSBzb2xpZFxuICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcik7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiBsaWdodC1kYXJrKFxuICAgIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zYmItbm90aWZpY2F0aW9uLXR5cGUtY29sb3IpIDUlLCB3aGl0ZSksXG4gICAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcikgMzUlLCB3aGl0ZSlcbiAgKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWljb24tY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcik7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItcmFkaXVzLXN0YXJ0OiBjYWxjKHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFzZS1ib3JkZXItcmFkaXVzKSAvIDIpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgKTtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtZm9udC1zaXplOiAxZW07XG4gIC0tX3NiYi1ub3RpZmljYXRpb24taWNvbi1hdXRob3JpdGF0aXZlLWxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIC0gdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpXG4gICk7XG5cbiAgLy8gQXMgdGhlIG5vdGlmaWNhdGlvbiBoYXMgYWx3YXlzIGEgbGlnaHQgYmFja2dyb3VuZCwgd2UgaGF2ZSB0byBmaXggdGhlIGZvY3VzIG91dGxpbmUgY29sb3JcbiAgLy8gdG8gZGVmYXVsdCBjb2xvciBmb3IgY2FzZXMgd2hlcmUgdGhlIG5vdGlmaWNhdGlvbiBpcyB1c2VkIGluIGEgbmVnYXRpdmUgY29udGV4dC5cbiAgLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3ItZGVmYXVsdCk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWZvbnQtc2l6ZSk7XG59XG5cbi8vIEJ5IGRlZmF1bHQsIHRoZSBvcGVuIGFuaW1hdGlvbiBpcyBkaXNhYmxlZFxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpOm5vdChbYW5pbWF0aW9uPSdvcGVuJ10sIFthbmltYXRpb249J2FsbCddKSkge1xuICBAaW5jbHVkZSBzYmIuZGlzYWJsZS1hbmltYXRpb247XG59XG5cbjpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKTpub3QoW2FuaW1hdGlvbj0nY2xvc2UnXSwgW2FuaW1hdGlvbj0nYWxsJ10pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuOmhvc3QoOnN0YXRlKHJlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbikpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46aG9zdCg6c3RhdGUoc2xvdHRlZC10aXRsZSkpIHtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtZm9udC1zaXplOiB2YXIoLS1zYmItaGVhZGluZy1mb250LXNpemUtNSk7XG4gIC0tX3NiYi1ub3RpZmljYXRpb24taWNvbi1hdXRob3JpdGF0aXZlLWxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC1oZWFkaW5nKTtcbn1cblxuOmhvc3QoOnN0YXRlKHNsb3R0ZWQtdGl0bGUpW3NpemU9J3MnXSkge1xuICAtLV9zYmItbm90aWZpY2F0aW9uLWljb24tYXV0aG9yaXRhdGl2ZS1mb250LXNpemU6IHZhcigtLXNiYi1oZWFkaW5nLWZvbnQtc2l6ZS02KTtcbiAgLS1fc2JiLW5vdGlmaWNhdGlvbi1pY29uLWF1dGhvcml0YXRpdmUtbGluZS1oZWlnaHQ6IHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1mb250LXNpemU6IHZhcigtLXNiYi10ZXh0LWZvbnQtc2l6ZS1zKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhzKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHh4cylcbiAgICB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhzKTtcbn1cblxuOmhvc3QoW3NpemU9J3MnXSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUteHMpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tcGFkZGluZy1ibG9jazogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cylcbiAgICB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4eHMpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tY29udGVudC1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKVxuICAgIHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhzKTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXh4cyk7XG4gIH1cbn1cblxuLy8gVHlwZXNcbjpob3N0KDppcyg6bm90KFt0eXBlXSksIFt0eXBlPSdpbmZvJ10pKSB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itc21va2UpO1xuICAtLXNiYi1ub3RpZmljYXRpb24taWNvbi1jb2xvcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1jb2xvcik7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktbGlnaHQ6IDIwJTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1kYXJrOiAyMCU7XG59XG5cbjpob3N0KFt0eXBlPSdub3RlJ10pIHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXR5cGUtY29sb3I6IHZhcigtLXNiYi1jb2xvci1za3kpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWxpZ2h0OiAyMCU7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyazogMjAlO1xufVxuXG46aG9zdChbdHlwZT0nc3VjY2VzcyddKSB7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yOiB2YXIoLS1zYmItY29sb3Itc3VjY2Vzcyk7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktbGlnaHQ6IDE1JTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1kYXJrOiAzMCU7XG59XG5cbjpob3N0KFt0eXBlPSd3YXJuJ10pIHtcbiAgLS1zYmItbm90aWZpY2F0aW9uLXR5cGUtY29sb3I6IHZhcigtLXNiYi1jb2xvci13YXJuaW5nKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWljb24tY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY29sb3IpO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWxpZ2h0OiAyNSU7XG4gIC0tc2JiLW5vdGlmaWNhdGlvbi1kaXZpZGVyLW9wYWNpdHktZGFyazogNDAlO1xufVxuXG46aG9zdChbdHlwZT0nZXJyb3InXSkge1xuICAtLXNiYi1ub3RpZmljYXRpb24tdHlwZS1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLWVycm9yKTtcbiAgLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1saWdodDogMTAlO1xuICAtLXNiYi1ub3RpZmljYXRpb24tZGl2aWRlci1vcGFjaXR5LWRhcms6IDI1JTtcbn1cblxuLnNiYi1ub3RpZmljYXRpb25fX3dyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGluc2V0LWlubGluZS1zdGFydDogdmFyKC0tX3NiYi1ub3RpZmljYXRpb24taW5zZXQtaW5saW5lLXN0YXJ0KTtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLV9zYmItbm90aWZpY2F0aW9uLWluc2V0LWlubGluZS1zdGFydCkpO1xuICBib3JkZXI6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItcmFkaXVzLXN0YXJ0KVxuICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFzZS1ib3JkZXItcmFkaXVzKSB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cylcbiAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci1yYWRpdXMtc3RhcnQpO1xuICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgbWF4LWhlaWdodDogI3skb3Blbi1hbmltLWhlaWdodC1mcm9tfTtcbiAgbWFyZ2luOiAjeyRvcGVuLWFuaW0tbWFyZ2luLWZyb219O1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiBjYWxjKHZhcigtLXNiYi1ub3RpZmljYXRpb24tYm9yZGVyLXdpZHRoKSAqIC0xKVxuICAgICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYXNlLWJvcmRlci1yYWRpdXMpIGNhbGModmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItd2lkdGgpICogLTEpXG4gICAgICBjYWxjKHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFzZS1ib3JkZXItcmFkaXVzKSAqIC0xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLXR5cGUtY29sb3IpO1xuICAgIGJvcmRlcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFzZS1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkgJiB7XG4gICAgb3BhY2l0eTogI3skb3Blbi1hbmltLW9wYWNpdHktdG99O1xuICAgIG1heC1oZWlnaHQ6ICN7JG9wZW4tYW5pbS1oZWlnaHQtdG99O1xuICAgIG1hcmdpbjogI3skb3Blbi1hbmltLW1hcmdpbi10b307XG4gIH1cblxuICA6aG9zdCg6c3RhdGUoc3RhdGUtb3BlbmluZykpICYge1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgbmFtZTogb3BlbjtcbiAgICAgIGZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLXRpbWluZy1mdW5jdGlvbik7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IGNsb3NlLCBjbG9zZS1oZWlnaHQ7XG4gICAgICBmaWxsLW1vZGU6IGZvcndhcmRzO1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1ub3RpZmljYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10aW1pbmctZnVuY3Rpb24pO1xuICAgICAgZGVsYXk6IDBzLCB2YXIoLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tMngpKTtcbiAgICB9XG4gIH1cbn1cblxuLnNiYi1ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tcGFkZGluZy1ibG9jayk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLXBhZGRpbmctaW5saW5lKTtcbiAgY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24tY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci1yYWRpdXMtc3RhcnQpXG4gICAgY2FsYyh2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgLSB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci13aWR0aCkpXG4gICAgY2FsYyh2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhc2UtYm9yZGVyLXJhZGl1cykgLSB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJvcmRlci13aWR0aCkpXG4gICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1ib3JkZXItcmFkaXVzLXN0YXJ0KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvIGF1dG87XG4gIH1cbn1cblxuLnNiYi1ub3RpZmljYXRpb25fX2ljb24sXG46OnNsb3R0ZWQoc2JiLWljb24pIHtcbiAgY29sb3I6IHZhcigtLXNiYi1ub3RpZmljYXRpb24taWNvbi1jb2xvcik7XG4gIGFsaWduLXNlbGY6IHZhcigtLXNiYi1ub3RpZmljYXRpb24taWNvbi1hbGlnbi1zZWxmKTtcblxuICAvLyBUaGlzIGlzIGFuIHVuZG9jdW1lbnRlZCBmZWF0dXJlIGZvciBzYmIuY2gsIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gaGlkZSB0aGUgaWNvbi5cbiAgLS1zYmItaWNvbi1zdmctd2lkdGg6IHZhcigtLXNiYi1ub3RpZmljYXRpb24taWNvbi1zaXplKTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgbWFyZ2luLWJsb2NrLXN0YXJ0OiBtYXgoXG4gICAgICAwcmVtLFxuICAgICAgY2FsYyhcbiAgICAgICAgKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIHZhcigtLV9zYmItbm90aWZpY2F0aW9uLWljb24tYXV0aG9yaXRhdGl2ZS1mb250LXNpemUpICpcbiAgICAgICAgICAgICAgICAgIHZhcigtLV9zYmItbm90aWZpY2F0aW9uLWljb24tYXV0aG9yaXRhdGl2ZS1saW5lLWhlaWdodClcbiAgICAgICAgICAgICAgKSAtIHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpXG4gICAgICAgICAgKSAvXG4gICAgICAgICAgMlxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuLnNiYi1ub3RpZmljYXRpb25fX2NvbnRlbnQge1xuICAvLyBUaGUgY29udGVudCBvZiB0aGUgbm90aWZpY2F0aW9uIGlzIGFsd2F5cyBkaXNwbGF5ZWQgaW4gcG9zaXRpdmUgbW9kZSxcbiAgLy8gdGhlcmVmb3JlLCB0byBoYXZlIHNsb3R0ZWQgY29udGVudCBjb3JyZWN0bHkgZGlzcGxheSwgd2UgbmVlZCBvbmx5IGFsbG93IGxpZ2h0IG1vZGUuXG4gIGNvbG9yLXNjaGVtZTogb25seSBsaWdodDtcbiAgb3JkZXI6IDM7XG4gIGdyaWQtYXJlYTogMiAvIDEgLyAzIC8gMztcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWNvbnRlbnQtbWFyZ2luLWJsb2NrLXN0YXJ0KTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHNtYWxsKSB7XG4gICAgb3JkZXI6IGluaXRpYWw7XG4gICAgZ3JpZC1hcmVhOiBpbml0aWFsO1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lKTtcbiAgfVxufVxuXG4uc2JiLW5vdGlmaWNhdGlvbl9fdGV4dCB7XG4gIC8vIFJlc2V0IHBhcmFncmFwaCBzdHlsZXNcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zYmItbm90aWZpY2F0aW9uX19kaXZpZGVyIHtcbiAgLS1zYmItZGl2aWRlci1jb2xvcjogbGlnaHQtZGFyayhcbiAgICBjb2xvci1taXgoXG4gICAgICBpbiBzcmdiLFxuICAgICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKSB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1saWdodCksXG4gICAgICB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWJhY2tncm91bmQtY29sb3IpXG4gICAgKSxcbiAgICBjb2xvci1taXgoXG4gICAgICBpbiBzcmdiLFxuICAgICAgdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi10eXBlLWNvbG9yKSB2YXIoLS1zYmItbm90aWZpY2F0aW9uLWRpdmlkZXItb3BhY2l0eS1kYXJrKSxcbiAgICAgIHZhcigtLXNiYi1ub3RpZmljYXRpb24tYmFja2dyb3VuZC1jb2xvcilcbiAgICApXG4gICk7XG5cbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogc21hbGwpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc2JiLW5vdGlmaWNhdGlvbi1jbG9zZS13cmFwcGVyLWdhcCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAodmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpICogMikpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LWZyb219O1xuICAgIG1heC1oZWlnaHQ6ICN7JG9wZW4tYW5pbS1oZWlnaHQtZnJvbX07XG4gICAgbWFyZ2luOiAjeyRvcGVuLWFuaW0tbWFyZ2luLWZyb219O1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6ICN7JG9wZW4tYW5pbS1vcGFjaXR5LXRvfTtcbiAgICBtYXgtaGVpZ2h0OiAjeyRvcGVuLWFuaW0taGVpZ2h0LXRvfTtcbiAgICBtYXJnaW46ICN7JG9wZW4tYW5pbS1tYXJnaW4tdG99O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgY2xvc2Uge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS10b307XG4gICAgbWFyZ2luOiAjeyRvcGVuLWFuaW0tbWFyZ2luLXRvfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAjeyRvcGVuLWFuaW0tb3BhY2l0eS1mcm9tfTtcbiAgICBtYXJnaW46ICN7JG9wZW4tYW5pbS1tYXJnaW4tZnJvbX07XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZS1oZWlnaHQge1xuICBmcm9tIHtcbiAgICBtYXgtaGVpZ2h0OiAjeyRvcGVuLWFuaW0taGVpZ2h0LXRvfTtcbiAgfVxuXG4gIHRvIHtcbiAgICBtYXgtaGVpZ2h0OiAjeyRvcGVuLWFuaW0taGVpZ2h0LWZyb219O1xuICB9XG59XG5cbjo6c2xvdHRlZChzYmItdGl0bGUpIHtcbiAgLy8gT3ZlcndyaXRlIHNiYi10aXRsZSBkZWZhdWx0IG1hcmdpblxuICBtYXJnaW46IDA7XG59XG4iLCJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCBub3RoaW5nLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMudHMnO1xuaW1wb3J0IHsgaXNMZWFuLCBpc1plcm9BbmltYXRpb25EdXJhdGlvbiB9IGZyb20gJy4uL2NvcmUvZG9tLnRzJztcbmltcG9ydCB7IGkxOG5DbG9zZU5vdGlmaWNhdGlvbiB9IGZyb20gJy4uL2NvcmUvaTE4bi50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5lZENsb3NlZFN0YXRlIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vaWNvbi50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRpdGxlRWxlbWVudCB9IGZyb20gJy4uL3RpdGxlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbm90aWZpY2F0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24udHMnO1xuaW1wb3J0ICcuLi9kaXZpZGVyLnRzJztcblxuY29uc3Qgbm90aWZpY2F0aW9uVHlwZXMgPSBuZXcgTWFwKFtcbiAgWydpbmZvJywgJ2NpcmNsZS1pbmZvcm1hdGlvbi1zbWFsbCddLFxuICBbJ25vdGUnLCAnY2lyY2xlLWluZm9ybWF0aW9uLXNtYWxsJ10sXG4gIFsnc3VjY2VzcycsICdjaXJjbGUtdGljay1zbWFsbCddLFxuICBbJ3dhcm4nLCAnY2lyY2xlLWV4Y2xhbWF0aW9uLXBvaW50LXNtYWxsJ10sXG4gIFsnZXJyb3InLCAnY2lyY2xlLWNyb3NzLXNtYWxsJ10sXG5dKTtcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBtZXNzYWdlcyB3aGljaCByZXF1aXJlIGEgdXNlcidzIGF0dGVudGlvbiB3aXRob3V0IGludGVycnVwdGluZyBpdHMgdGFza3MuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1ub3RpZmljYXRpb25gLiBDb250ZW50IHNob3VsZCBjb25zaXN0IG9mIGFuIG9wdGlvbmFsIGBzYmItdGl0bGVgIGVsZW1lbnQgYW5kIHRleHQgY29udGVudC5cbiAqIEBzbG90IHRpdGxlIC0gU2xvdCBmb3IgdGhlIHRpdGxlLiBGb3IgdGhlIHN0YW5kYXJkIGBzYmItdGl0bGVgIGVsZW1lbnQsIHRoZSBzbG90IGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgd2hlbiBzbG90dGVkIGluIHRoZSB1bm5hbWVkIHNsb3QuXG4gKiBAc2xvdCBpY29uIC0gVXNlIHRoaXMgc2xvdCB0byBkaXNwbGF5IGEgY3VzdG9tIGljb24gYnkgcHJvdmlkaW5nIGFuIGBzYmItaWNvbmAgY29tcG9uZW50LlxuICogQGNzc3Byb3AgWy0tc2JiLW5vdGlmaWNhdGlvbi1tYXJnaW49MF0gLSBDYW4gYmUgdXNlZCB0byBtb2RpZnkgdGhlIG1hcmdpbiBpbiBvcmRlciB0byBnZXQgYSBzbW9vdGhlciBhbmltYXRpb24uXG4gKiBTZWUgc3R5bGUgc2VjdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYk5vdGlmaWNhdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFNiYlJlYWRvbmx5TWl4aW4oU2JiRWxlbWVudCkpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1ub3RpZmljYXRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSB0eXBlIG9mIHRoZSBub3RpZmljYXRpb24uICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHR5cGU6XG4gICAgfCAnaW5mbydcbiAgICB8ICdub3RlJ1xuICAgIHwgJ3N1Y2Nlc3MnXG4gICAgfCAnd2FybidcbiAgICB8ICdlcnJvcicgPSAnaW5mbyc7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgb3IgbS5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqIFRoZSBlbmFibGVkIGFuaW1hdGlvbnMuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIGFuaW1hdGlvbjogJ29wZW4nIHwgJ2Nsb3NlJyB8ICdhbGwnIHwgJ25vbmUnID0gJ2FsbCc7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgaWYgKHRoaXMuX3N0YXRlSW50ZXJuYWwpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoYHN0YXRlLSR7dGhpcy5fc3RhdGVJbnRlcm5hbH1gKTtcbiAgICB9XG4gICAgdGhpcy5fc3RhdGVJbnRlcm5hbCA9IHN0YXRlO1xuICAgIGlmICh0aGlzLl9zdGF0ZUludGVybmFsKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBzdGF0ZS0ke3RoaXMuX3N0YXRlSW50ZXJuYWx9YCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlSW50ZXJuYWw7XG4gIH1cbiAgcHJpdmF0ZSBfc3RhdGVJbnRlcm5hbCE6IFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuXG4gIHByaXZhdGUgX25vdGlmaWNhdGlvbkVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX25vdGlmaWNhdGlvblJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gdGhpcy5fb25Ob3RpZmljYXRpb25SZXNpemUoKSxcbiAgfSk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUaXRsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSAnY2xvc2VkJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgICAvKiogRW1pdHMgd2hlbiB0aGUgb3BlbmluZyBhbmltYXRpb24gc3RhcnRzLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3Jlb3BlbicpKTtcblxuICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlID09PSAnb3BlbmVkJyAmJiB0aGlzLl9kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG5cbiAgICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hCZWZvcmVDbG9zZUV2ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8qKiBFbWl0cyB3aGVuIHRoZSBjbG9zaW5nIGFuaW1hdGlvbiBzdGFydHMuIENhbiBiZSBjYW5jZWxlZCB0byBwcmV2ZW50IHRoZSBjb21wb25lbnQgZnJvbSBjbG9zaW5nLiAqL1xuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVjbG9zZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9ub3RpZmljYXRpb25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgJy5zYmItbm90aWZpY2F0aW9uX193cmFwcGVyJyxcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgIC8vIFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGNvbXBvbmVudCdzIGB1cGRhdGVDb21wbGV0ZWAgaW4gb3JkZXIgdG8gc2V0IHRoZSBjb3JyZWN0XG4gICAgLy8gaGVpZ2h0IHRvIHRoZSBub3RpZmljYXRpb24gZWxlbWVudC5cbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5fc2V0Tm90aWZpY2F0aW9uSGVpZ2h0KCk7XG4gICAgICB0aGlzLl9vcGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW5vdGlmaWNhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5vdGlmaWNhdGlvbkhlaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX25vdGlmaWNhdGlvbkVsZW1lbnQ/LnNjcm9sbEhlaWdodCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBub3RpZmljYXRpb25IZWlnaHQgPSBgJHt0aGlzLl9ub3RpZmljYXRpb25FbGVtZW50LnNjcm9sbEhlaWdodH1weGA7XG4gICAgdGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1zYmItbm90aWZpY2F0aW9uLWhlaWdodCcsIG5vdGlmaWNhdGlvbkhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIF9vbk5vdGlmaWNhdGlvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgLy8gRGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdoZW4gcmVzaXppbmcgdGhlIG5vdGlmaWNhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuXG4gICAgLy8gVG8gYXZvaWQgUmVzaXplT2JzZXJ2ZXIgbG9vcHMsIHdlIHNldCB0aGUgaGVpZ2h0IGEgdGljayBsYXRlci5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE5vdGlmaWNhdGlvbkhlaWdodCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uTm90aWZpY2F0aW9uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ29wZW5pbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnICYmIGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZS1oZWlnaHQnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25vdGlmaWNhdGlvblJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5fbm90aWZpY2F0aW9uRWxlbWVudCk7XG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIG9wZW5pbmcgYW5pbWF0aW9uIGVuZHMuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnb3BlbicpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgICAvKiogRW1pdHMgd2hlbiB0aGUgY2xvc2luZyBhbmltYXRpb24gZW5kcy4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjbG9zZScpKTtcbiAgICB0aGlzLl9ub3RpZmljYXRpb25SZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5fbm90aWZpY2F0aW9uRWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlbW92ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVNsb3RjaGFuZ2UoKTogdm9pZCB7XG4gICAgY29uc3QgdGl0bGUgPSBBcnJheS5mcm9tKHRoaXMuY2hpbGRyZW4pLmZpbmQoKGVsKSA9PiBlbC5sb2NhbE5hbWUgPT09ICdzYmItdGl0bGUnKTtcbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRpdGxlLnNsb3QgPSAndGl0bGUnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZVRpdGxlKCk6IHZvaWQge1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5xdWVyeVNlbGVjdG9yPy48U2JiVGl0bGVFbGVtZW50Pignc2JiLXRpdGxlJyk7XG4gICAgaWYgKHRpdGxlKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHRpdGxlKTtcbiAgICAgIHRpdGxlLnZpc3VhbExldmVsID0gdGhpcy5zaXplID09PSAnbScgPyAnNScgOiAnNic7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlckljb25OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN1cGVyLnJlbmRlckljb25OYW1lKCkgfHwgbm90aWZpY2F0aW9uVHlwZXMuZ2V0KHRoaXMudHlwZSkhO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5vdGlmaWNhdGlvbl9fd3JhcHBlclwiIEBhbmltYXRpb25lbmQ9JHt0aGlzLl9vbk5vdGlmaWNhdGlvbkFuaW1hdGlvbkVuZH0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uXCI+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCdzYmItbm90aWZpY2F0aW9uX19pY29uJyl9XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uX19jb250ZW50XCI+XG4gICAgICAgICAgICA8c2xvdCBuYW1lPVwidGl0bGVcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZVRpdGxlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInNiYi1ub3RpZmljYXRpb25fX3RleHRcIj5cbiAgICAgICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9oYW5kbGVTbG90Y2hhbmdlfT48L3Nsb3Q+XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgJHshdGhpcy5yZWFkT25seVxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxzYmItZGl2aWRlciBjbGFzcz1cInNiYi1ub3RpZmljYXRpb25fX2RpdmlkZXJcIiBvcmllbnRhdGlvbj1cInZlcnRpY2FsXCI+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b25cbiAgICAgICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJjcm9zcy1zbWFsbFwiXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLmNsb3NlKCl9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7aTE4bkNsb3NlTm90aWZpY2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItbm90aWZpY2F0aW9uX19jbG9zZVwiXG4gICAgICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgICAgIGBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbm90aWZpY2F0aW9uJzogU2JiTm90aWZpY2F0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ21CQSxJQUFNLG9CQUFvQixJQUFJLElBQUk7Q0FDaEMsQ0FBQyxRQUFRLDJCQUEyQjtDQUNwQyxDQUFDLFFBQVEsMkJBQTJCO0NBQ3BDLENBQUMsV0FBVyxvQkFBb0I7Q0FDaEMsQ0FBQyxRQUFRLGlDQUFpQztDQUMxQyxDQUFDLFNBQVMscUJBQUE7Q0FDWCxDQUFDO0FBRUYsSUFBTSxnQkFBZ0I7Ozs7Ozs7Ozs7SUFXVCxnQ0FBc0I7bUJBQVMsaUJBQWlCLGlCQUFpQixXQUFXLENBQUM7Ozs7Ozs7Ozs7Y0FBN0UsK0JBQStCLFlBQThDOzs7dUJBV3ZGLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO3VCQVczQixTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTs0QkFHM0IsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENB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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbNotificationElement } from "./notification.component-
|
|
1
|
+
import { t as SbbNotificationElement } from "./notification.component-BT3ZQhUI.js";
|
|
2
2
|
export { SbbNotificationElement };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../notification.component-
|
|
1
|
+
import { t as e } from "../notification.component-DA7sZ3m4.js";
|
|
2
2
|
export { e as SbbNotificationElement };
|