@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779895144 → 5.0.0-next.3-dev.1780060206

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.
@@ -1,215 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbElement } from "./core.js";
5
- //#region src/elements/action-group/action-group.scss?inline
6
- var action_group_default = ":host {\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n display: flex;\n flex-direction: var(--sbb-action-group-orientation, row);\n align-items: var(--sbb-action-group-align-items, center);\n justify-content: var(--sbb-action-group-justify-content, start);\n gap: var(--sbb-action-group-gap);\n}\n\n:host([orientation=horizontal][align-group=start]) {\n --sbb-action-group-justify-content: flex-start;\n}\n\n:host([orientation=horizontal][align-group=center]) {\n --sbb-action-group-justify-content: center;\n}\n\n:host([orientation=horizontal][align-group=stretch]) {\n --sbb-action-group-justify-content: space-between;\n}\n\n:host([orientation=horizontal][align-group=end]) {\n --sbb-action-group-justify-content: flex-end;\n}\n\n:host([orientation=vertical]) {\n --sbb-action-group-orientation: column;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-2x);\n}\n\n:host([orientation=vertical][align-group=start]) {\n --sbb-action-group-align-items: flex-start;\n}\n\n:host([orientation=vertical][align-group=center]) {\n --sbb-action-group-align-items: center;\n}\n\n:host([orientation=vertical][align-group=stretch]) {\n --sbb-action-group-align-items: stretch;\n}\n\n:host([orientation=vertical][align-group=end]) {\n --sbb-action-group-align-items: flex-end;\n}\n\n@media (min-width: calc(0rem)) {\n :host([orientation=vertical][horizontal-from=zero][align-group=start]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-start;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=zero][align-group=center]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: center;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=zero][align-group=stretch]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: space-between;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=zero][align-group=end]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-end;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n}\n@media (min-width: calc(37.5rem)) {\n :host([orientation=vertical][horizontal-from=small][align-group=start]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-start;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=small][align-group=center]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: center;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=small][align-group=stretch]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: space-between;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=small][align-group=end]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-end;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n}\n@media (min-width: calc(64rem)) {\n :host([orientation=vertical][horizontal-from=large][align-group=start]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-start;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=large][align-group=center]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: center;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=large][align-group=stretch]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: space-between;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=large][align-group=end]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-end;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n}\n@media (min-width: calc(90rem)) {\n :host([orientation=vertical][horizontal-from=ultra][align-group=start]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-start;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=ultra][align-group=center]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: center;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=ultra][align-group=stretch]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: space-between;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n :host([orientation=vertical][horizontal-from=ultra][align-group=end]) {\n --sbb-action-group-orientation: row;\n --sbb-action-group-align-items: center;\n --sbb-action-group-justify-content: flex-end;\n --sbb-action-group-gap: var(--sbb-spacing-fixed-4x);\n }\n}\n::slotted([align-self=start]) {\n margin-inline-end: auto;\n}\n\n::slotted([align-self=center]) {\n margin-inline: auto;\n}\n\n::slotted([align-self=end]) {\n margin-inline-start: auto;\n}\n\n::slotted(:is(sbb-block-link, sbb-block-link-button, sbb-block-link-static)) {\n white-space: nowrap;\n}";
7
- //#endregion
8
- //#region src/elements/action-group/action-group.component.ts
9
- /**
10
- * It can be used as a container for one or more action element, like `sbb-button` or `sbb-block-link`.
11
- *
12
- * @slot - Use the unnamed slot to add `sbb-block-link` or `sbb-button` elements to the `sbb-action-group`.
13
- */
14
- var SbbActionGroupElement = (() => {
15
- let _classSuper = SbbElement;
16
- let _alignGroup_decorators;
17
- let _alignGroup_initializers = [];
18
- let _alignGroup_extraInitializers = [];
19
- let _horizontalFrom_decorators;
20
- let _horizontalFrom_initializers = [];
21
- let _horizontalFrom_extraInitializers = [];
22
- let _orientation_decorators;
23
- let _orientation_initializers = [];
24
- let _orientation_extraInitializers = [];
25
- let _buttonSize_decorators;
26
- let _buttonSize_initializers = [];
27
- let _buttonSize_extraInitializers = [];
28
- let _linkSize_decorators;
29
- let _linkSize_initializers = [];
30
- let _linkSize_extraInitializers = [];
31
- return class SbbActionGroupElement extends _classSuper {
32
- static {
33
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
34
- _alignGroup_decorators = [property({
35
- attribute: "align-group",
36
- reflect: true
37
- })];
38
- _horizontalFrom_decorators = [property({
39
- attribute: "horizontal-from",
40
- reflect: true
41
- })];
42
- _orientation_decorators = [property({ reflect: true })];
43
- _buttonSize_decorators = [property({
44
- attribute: "button-size",
45
- reflect: true
46
- })];
47
- _linkSize_decorators = [property({
48
- attribute: "link-size",
49
- reflect: true
50
- })];
51
- __esDecorate(this, null, _alignGroup_decorators, {
52
- kind: "accessor",
53
- name: "alignGroup",
54
- static: false,
55
- private: false,
56
- access: {
57
- has: (obj) => "alignGroup" in obj,
58
- get: (obj) => obj.alignGroup,
59
- set: (obj, value) => {
60
- obj.alignGroup = value;
61
- }
62
- },
63
- metadata: _metadata
64
- }, _alignGroup_initializers, _alignGroup_extraInitializers);
65
- __esDecorate(this, null, _horizontalFrom_decorators, {
66
- kind: "accessor",
67
- name: "horizontalFrom",
68
- static: false,
69
- private: false,
70
- access: {
71
- has: (obj) => "horizontalFrom" in obj,
72
- get: (obj) => obj.horizontalFrom,
73
- set: (obj, value) => {
74
- obj.horizontalFrom = value;
75
- }
76
- },
77
- metadata: _metadata
78
- }, _horizontalFrom_initializers, _horizontalFrom_extraInitializers);
79
- __esDecorate(this, null, _orientation_decorators, {
80
- kind: "accessor",
81
- name: "orientation",
82
- static: false,
83
- private: false,
84
- access: {
85
- has: (obj) => "orientation" in obj,
86
- get: (obj) => obj.orientation,
87
- set: (obj, value) => {
88
- obj.orientation = value;
89
- }
90
- },
91
- metadata: _metadata
92
- }, _orientation_initializers, _orientation_extraInitializers);
93
- __esDecorate(this, null, _buttonSize_decorators, {
94
- kind: "accessor",
95
- name: "buttonSize",
96
- static: false,
97
- private: false,
98
- access: {
99
- has: (obj) => "buttonSize" in obj,
100
- get: (obj) => obj.buttonSize,
101
- set: (obj, value) => {
102
- obj.buttonSize = value;
103
- }
104
- },
105
- metadata: _metadata
106
- }, _buttonSize_initializers, _buttonSize_extraInitializers);
107
- __esDecorate(this, null, _linkSize_decorators, {
108
- kind: "accessor",
109
- name: "linkSize",
110
- static: false,
111
- private: false,
112
- access: {
113
- has: (obj) => "linkSize" in obj,
114
- get: (obj) => obj.linkSize,
115
- set: (obj, value) => {
116
- obj.linkSize = value;
117
- }
118
- },
119
- metadata: _metadata
120
- }, _linkSize_initializers, _linkSize_extraInitializers);
121
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
122
- enumerable: true,
123
- configurable: true,
124
- writable: true,
125
- value: _metadata
126
- });
127
- }
128
- static {
129
- this.elementName = "sbb-action-group";
130
- }
131
- static {
132
- this.styles = [unsafeCSS(action_group_default)];
133
- }
134
- #alignGroup_accessor_storage = __runInitializers(this, _alignGroup_initializers, "start");
135
- /**
136
- * Set the slotted `<sbb-action-group>` children's alignment.
137
- */
138
- get alignGroup() {
139
- return this.#alignGroup_accessor_storage;
140
- }
141
- set alignGroup(value) {
142
- this.#alignGroup_accessor_storage = value;
143
- }
144
- #horizontalFrom_accessor_storage = (__runInitializers(this, _alignGroup_extraInitializers), __runInitializers(this, _horizontalFrom_initializers, "large"));
145
- /**
146
- * Overrides the behavior of `orientation` property.
147
- */
148
- get horizontalFrom() {
149
- return this.#horizontalFrom_accessor_storage;
150
- }
151
- set horizontalFrom(value) {
152
- this.#horizontalFrom_accessor_storage = value;
153
- }
154
- #orientation_accessor_storage = (__runInitializers(this, _horizontalFrom_extraInitializers), __runInitializers(this, _orientation_initializers, "horizontal"));
155
- /**
156
- * Indicates the orientation of the components inside the `<sbb-action-group>`.
157
- */
158
- get orientation() {
159
- return this.#orientation_accessor_storage;
160
- }
161
- set orientation(value) {
162
- this.#orientation_accessor_storage = value;
163
- }
164
- #buttonSize_accessor_storage = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _buttonSize_initializers, null));
165
- /**
166
- * Size of the nested sbb-button instances.
167
- * This will overwrite the size attribute of nested sbb-button instances.
168
- * @deprecated Will be removed with next breaking change
169
- */
170
- get buttonSize() {
171
- return this.#buttonSize_accessor_storage;
172
- }
173
- set buttonSize(value) {
174
- this.#buttonSize_accessor_storage = value;
175
- }
176
- #linkSize_accessor_storage = (__runInitializers(this, _buttonSize_extraInitializers), __runInitializers(this, _linkSize_initializers, null));
177
- /**
178
- * Size of the nested sbb-block-link instances.
179
- * This will overwrite the size attribute of nested sbb-block-link instances.
180
- * @deprecated Will be removed with next breaking change
181
- */
182
- get linkSize() {
183
- return this.#linkSize_accessor_storage;
184
- }
185
- set linkSize(value) {
186
- this.#linkSize_accessor_storage = value;
187
- }
188
- willUpdate(changedProperties) {
189
- super.willUpdate(changedProperties);
190
- if (changedProperties.has("buttonSize")) this._syncButtons();
191
- if (changedProperties.has("linkSize")) this._syncLinks();
192
- }
193
- _syncButtons() {
194
- if (!this.buttonSize) return;
195
- this.querySelectorAll?.(":is(:state(sbb-button),[state--sbb-button])").forEach((b) => b.size = this.buttonSize);
196
- }
197
- _syncLinks() {
198
- if (!this.linkSize) return;
199
- this.querySelectorAll?.("sbb-block-link, sbb-block-link-button, sbb-block-link-static").forEach((link) => {
200
- link.size = this.linkSize;
201
- });
202
- }
203
- render() {
204
- return html`<slot></slot>`;
205
- }
206
- constructor() {
207
- super(...arguments);
208
- __runInitializers(this, _linkSize_extraInitializers);
209
- }
210
- };
211
- })();
212
- //#endregion
213
- export { SbbActionGroupElement as t };
214
-
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLmNvbXBvbmVudC1wZTBjMnpuaS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvYWN0aW9uLWdyb3VwL2FjdGlvbi1ncm91cC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9hY3Rpb24tZ3JvdXAvYWN0aW9uLWdyb3VwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG4kYnJlYWtwb2ludHM6ICd6ZXJvJywgJ3NtYWxsJywgJ2xhcmdlJywgJ3VsdHJhJztcbiR2ZXJ0aWNhbC1vcmllbnRhdGlvbnM6IChcbiAgc3RhcnQ6IGZsZXgtc3RhcnQsXG4gIGNlbnRlcjogY2VudGVyLFxuICBzdHJldGNoOiBzdHJldGNoLFxuICBlbmQ6IGZsZXgtZW5kLFxuKTtcbiRob3Jpem9udGFsLW9yaWVudGF0aW9uczogKFxuICBzdGFydDogZmxleC1zdGFydCxcbiAgY2VudGVyOiBjZW50ZXIsXG4gIHN0cmV0Y2g6IHNwYWNlLWJldHdlZW4sXG4gIGVuZDogZmxleC1lbmQsXG4pO1xuXG46aG9zdCB7XG4gIC0tc2JiLWFjdGlvbi1ncm91cC1nYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tc2JiLWFjdGlvbi1ncm91cC1vcmllbnRhdGlvbiwgcm93KTtcbiAgYWxpZ24taXRlbXM6IHZhcigtLXNiYi1hY3Rpb24tZ3JvdXAtYWxpZ24taXRlbXMsIGNlbnRlcik7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLWFjdGlvbi1ncm91cC1qdXN0aWZ5LWNvbnRlbnQsIHN0YXJ0KTtcbiAgZ2FwOiB2YXIoLS1zYmItYWN0aW9uLWdyb3VwLWdhcCk7XG59XG5cbkBlYWNoICRrZXksICR2YWx1ZSBpbiAkaG9yaXpvbnRhbC1vcmllbnRhdGlvbnMge1xuICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgLS1zYmItYWN0aW9uLWdyb3VwLWp1c3RpZnktY29udGVudDogI3skdmFsdWV9O1xuICB9XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLXNiYi1hY3Rpb24tZ3JvdXAtb3JpZW50YXRpb246IGNvbHVtbjtcbiAgLS1zYmItYWN0aW9uLWdyb3VwLWdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMngpO1xufVxuXG5AZWFjaCAka2V5LCAkdmFsdWUgaW4gJHZlcnRpY2FsLW9yaWVudGF0aW9ucyB7XG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgLS1zYmItYWN0aW9uLWdyb3VwLWFsaWduLWl0ZW1zOiAjeyR2YWx1ZX07XG4gIH1cbn1cblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gJGJyZWFrcG9pbnRzIHtcbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiAjeyRicmVha3BvaW50fSkge1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkaG9yaXpvbnRhbC1vcmllbnRhdGlvbnMge1xuICAgICAgLy8gaG9yaXpvbnRhbC1mcm9tIG92ZXJyaWRlcyBvcmllbnRhdGlvbiB2ZXJ0aWNhbFxuICAgICAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddW2hvcml6b250YWwtZnJvbT0nI3skYnJlYWtwb2ludH0nXVthbGlnbi1ncm91cD0nI3ska2V5fSddKSB7XG4gICAgICAgIC0tc2JiLWFjdGlvbi1ncm91cC1vcmllbnRhdGlvbjogcm93O1xuICAgICAgICAtLXNiYi1hY3Rpb24tZ3JvdXAtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLS1zYmItYWN0aW9uLWdyb3VwLWp1c3RpZnktY29udGVudDogI3skdmFsdWV9O1xuICAgICAgICAtLXNiYi1hY3Rpb24tZ3JvdXAtZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbjo6c2xvdHRlZChbYWxpZ24tc2VsZj0nc3RhcnQnXSkge1xuICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcbn1cblxuOjpzbG90dGVkKFthbGlnbi1zZWxmPSdjZW50ZXInXSkge1xuICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG46OnNsb3R0ZWQoW2FsaWduLXNlbGY9J2VuZCddKSB7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG59XG5cbjo6c2xvdHRlZCg6aXMoc2JiLWJsb2NrLWxpbmssIHNiYi1ibG9jay1saW5rLWJ1dHRvbiwgc2JiLWJsb2NrLWxpbmstc3RhdGljKSkge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSwgU2JiQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL2J1dHRvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiSG9yaXpvbnRhbEZyb20gfSBmcm9tICcuLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgU2JiQmxvY2tMaW5rQnV0dG9uRWxlbWVudCxcbiAgU2JiQmxvY2tMaW5rRWxlbWVudCxcbiAgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudCxcbn0gZnJvbSAnLi4vbGluay5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vYWN0aW9uLWdyb3VwLnNjc3M/aW5saW5lJztcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYWN0aW9uIGVsZW1lbnQsIGxpa2UgYHNiYi1idXR0b25gIG9yIGBzYmItYmxvY2stbGlua2AuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1ibG9jay1saW5rYCBvciBgc2JiLWJ1dHRvbmAgZWxlbWVudHMgdG8gdGhlIGBzYmItYWN0aW9uLWdyb3VwYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkFjdGlvbkdyb3VwRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWFjdGlvbi1ncm91cCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKipcbiAgICogU2V0IHRoZSBzbG90dGVkIGA8c2JiLWFjdGlvbi1ncm91cD5gIGNoaWxkcmVuJ3MgYWxpZ25tZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxpZ24tZ3JvdXAnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhbGlnbkdyb3VwOiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnc3RyZXRjaCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgYmVoYXZpb3Igb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS5cbiAgICovXG4gIC8vIFRPRE86IE5lZWRzIGEgYnJlYWtpbmcgY2hhbmdlIHRvIHdvcmsgd2l0aCB0aGUgJ25vLWRlZmF1bHQtcmVmbGVjdCcgYmVoYXZpb3JcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaG9yaXpvbnRhbC1mcm9tJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaG9yaXpvbnRhbEZyb206IFNiYkhvcml6b250YWxGcm9tID0gJ2xhcmdlJztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY29tcG9uZW50cyBpbnNpZGUgdGhlIGA8c2JiLWFjdGlvbi1ncm91cD5gLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3JpZW50YXRpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIG5lc3RlZCBzYmItYnV0dG9uIGluc3RhbmNlcy5cbiAgICogVGhpcyB3aWxsIG92ZXJ3cml0ZSB0aGUgc2l6ZSBhdHRyaWJ1dGUgb2YgbmVzdGVkIHNiYi1idXR0b24gaW5zdGFuY2VzLlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgd2l0aCBuZXh0IGJyZWFraW5nIGNoYW5nZVxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYnV0dG9uLXNpemUnLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBidXR0b25TaXplOiBTYmJCdXR0b25FbGVtZW50WydzaXplJ10gPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBuZXN0ZWQgc2JiLWJsb2NrLWxpbmsgaW5zdGFuY2VzLlxuICAgKiBUaGlzIHdpbGwgb3ZlcndyaXRlIHRoZSBzaXplIGF0dHJpYnV0ZSBvZiBuZXN0ZWQgc2JiLWJsb2NrLWxpbmsgaW5zdGFuY2VzLlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQgd2l0aCBuZXh0IGJyZWFraW5nIGNoYW5nZVxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbGluay1zaXplJywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbGlua1NpemU6IFNiYkJsb2NrTGlua0VsZW1lbnRbJ3NpemUnXSA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdidXR0b25TaXplJykpIHtcbiAgICAgIHRoaXMuX3N5bmNCdXR0b25zKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xpbmtTaXplJykpIHtcbiAgICAgIHRoaXMuX3N5bmNMaW5rcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNCdXR0b25zKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5idXR0b25TaXplKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+KCc6c3RhdGUoc2JiLWJ1dHRvbiknKS5mb3JFYWNoKFxuICAgICAgKGIpID0+IChiLnNpemUgPSB0aGlzLmJ1dHRvblNpemUhKSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3luY0xpbmtzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5saW5rU2l6ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxcbiAgICAgIFNiYkJsb2NrTGlua0VsZW1lbnQgfCBTYmJCbG9ja0xpbmtCdXR0b25FbGVtZW50IHwgU2JiQmxvY2tMaW5rU3RhdGljRWxlbWVudFxuICAgID4oJ3NiYi1ibG9jay1saW5rLCBzYmItYmxvY2stbGluay1idXR0b24sIHNiYi1ibG9jay1saW5rLXN0YXRpYycpLmZvckVhY2goKGxpbmspID0+IHtcbiAgICAgIGxpbmsuc2l6ZSA9IHRoaXMubGlua1NpemUhO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNsb3Q+PC9zbG90PmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1hY3Rpb24tZ3JvdXAnOiBTYmJBY3Rpb25Hcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztJQ3lCYSwrQkFBcUI7bUJBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FBOUIsOEJBQThCLFlBQVU7Ozs2QkFPbEQsU0FBUztJQUFFLFdBQVc7SUFBZSxTQUFTO0dBQUksQ0FBRSxDQUFDO2lDQU9yRCxTQUFTO0lBQUUsV0FBVztJQUFtQixTQUFTO0dBQUksQ0FBRSxDQUFDOzhCQU16RCxTQUFTLEVBQUUsU0FBUyxLQUFJLENBQUUsQ0FBQzs2QkFRM0IsU0FBUztJQUFFLFdBQVc7SUFBZSxTQUFTO0dBQUksQ0FBRSxDQUFDOzJCQVFyRCxTQUFTO0lBQUUsV0FBVztJQUFhLFNBQVM7R0FBSSxDQUFFLENBQUM7R0E1QnBELGFBQUEsTUFBQSxNQUFBLHdCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZ0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBVSxNQUFBLEtBQUEsVUFBQTtNQUFBLElBQVYsYUFBVTtLQUFBO0lBQUE7SUFBQSxVQUFBO0dBQUEsR0FBQSwwQkFBQSw2QkFBQTtHQU8xQixhQUFBLE1BQUEsTUFBQSw0QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLG9CQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQWMsTUFBQSxLQUFBLFVBQUE7TUFBQSxJQUFkLGlC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