@sbb-esta/lyne-elements 3.3.2 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/core/i18n/i18n.d.ts +5 -0
  2. package/core/i18n/i18n.d.ts.map +1 -1
  3. package/core/i18n/i18n.js +108 -84
  4. package/core/i18n.js +84 -80
  5. package/core/mixins/element-internals-mixin.js +6 -6
  6. package/core/mixins/form-associated-input-mixin.d.ts +1 -0
  7. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  8. package/core/mixins/form-associated-input-mixin.js +2 -2
  9. package/core/styles/core/mediaqueries.scss +1 -1
  10. package/core/styles/core.scss +34 -1
  11. package/core/styles/mixins/typo.scss +88 -41
  12. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +530 -0
  13. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +1123 -0
  14. package/core.css +30 -0
  15. package/custom-elements.json +863 -147
  16. package/date-input/date-input.component.d.ts +5 -4
  17. package/date-input/date-input.component.d.ts.map +1 -1
  18. package/date-input/date-input.component.js +19 -21
  19. package/development/core/i18n/i18n.d.ts +5 -0
  20. package/development/core/i18n/i18n.d.ts.map +1 -1
  21. package/development/core/i18n/i18n.js +38 -10
  22. package/development/core/i18n.js +5 -1
  23. package/development/core/mixins/element-internals-mixin.js +3 -3
  24. package/development/core/mixins/form-associated-input-mixin.d.ts +1 -0
  25. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  26. package/development/core/mixins/form-associated-input-mixin.js +3 -2
  27. package/development/date-input/date-input.component.d.ts +5 -4
  28. package/development/date-input/date-input.component.d.ts.map +1 -1
  29. package/development/date-input/date-input.component.js +5 -8
  30. package/development/dialog/dialog/dialog.component.d.ts +2 -0
  31. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  32. package/development/dialog/dialog/dialog.component.js +6 -2
  33. package/development/dialog/dialog-title/dialog-title.component.js +2 -6
  34. package/development/file-selector/common/file-selector-common.d.ts +2 -1
  35. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  36. package/development/file-selector/common/file-selector-common.js +64 -19
  37. package/development/file-selector/common.js +1 -1
  38. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  39. package/development/file-selector/file-selector/file-selector.component.js +12 -17
  40. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +0 -7
  41. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  42. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +32 -76
  43. package/development/{file-selector-common-csww18o8.js → file-selector-common-BxXdRZxt.js} +3 -3
  44. package/development/file-selector.js +1 -1
  45. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  46. package/development/form-field/form-field/form-field.component.js +4 -4
  47. package/development/navigation/common/navigation-action-common.js +5 -8
  48. package/development/navigation/navigation/navigation.component.js +21 -4
  49. package/development/navigation/navigation-marker/navigation-marker.component.js +5 -8
  50. package/development/navigation/navigation-section/navigation-section.component.js +6 -19
  51. package/development/paginator/common/paginator-common.d.ts +3 -0
  52. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  53. package/development/paginator/common/paginator-common.js +68 -10
  54. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  55. package/development/paginator/compact-paginator/compact-paginator.component.js +8 -3
  56. package/development/paginator/paginator/paginator.component.d.ts +5 -0
  57. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  58. package/development/paginator/paginator/paginator.component.js +28 -6
  59. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  60. package/development/tabs/tab-group/tab-group.component.js +3 -4
  61. package/development/time-input/time-input.component.d.ts +5 -4
  62. package/development/time-input/time-input.component.d.ts.map +1 -1
  63. package/development/time-input/time-input.component.js +5 -8
  64. package/development/title/title-base.js +14 -67
  65. package/development/title/title.component.js +17 -14
  66. package/development/toast/toast.component.js +6 -9
  67. package/development/train/train-wagon/train-wagon.component.js +6 -9
  68. package/dialog/dialog/dialog.component.d.ts +2 -0
  69. package/dialog/dialog/dialog.component.d.ts.map +1 -1
  70. package/dialog/dialog/dialog.component.js +14 -10
  71. package/dialog/dialog-title/dialog-title.component.js +1 -1
  72. package/file-selector/common/file-selector-common.d.ts +2 -1
  73. package/file-selector/common/file-selector-common.d.ts.map +1 -1
  74. package/file-selector/common/file-selector-common.js +88 -63
  75. package/file-selector/common.js +1 -1
  76. package/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  77. package/file-selector/file-selector/file-selector.component.js +26 -31
  78. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +0 -7
  79. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  80. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +50 -74
  81. package/file-selector-common-Cn6U8goV.js +5 -0
  82. package/file-selector.js +1 -1
  83. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  84. package/form-field/form-field/form-field.component.js +3 -3
  85. package/navigation/common/navigation-action-common.js +8 -8
  86. package/navigation/navigation/navigation.component.js +1 -1
  87. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  88. package/navigation/navigation-section/navigation-section.component.js +14 -14
  89. package/package.json +1 -1
  90. package/paginator/common/paginator-common.d.ts +3 -0
  91. package/paginator/common/paginator-common.d.ts.map +1 -1
  92. package/paginator/common/paginator-common.js +103 -63
  93. package/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  94. package/paginator/compact-paginator/compact-paginator.component.js +13 -8
  95. package/paginator/paginator/paginator.component.d.ts +5 -0
  96. package/paginator/paginator/paginator.component.d.ts.map +1 -1
  97. package/paginator/paginator/paginator.component.js +77 -61
  98. package/sidebar/sidebar-title/sidebar-title.component.js +14 -14
  99. package/standard-theme.css +30 -0
  100. package/tabs/tab-group/tab-group.component.js +7 -7
  101. package/time-input/time-input.component.d.ts +5 -4
  102. package/time-input/time-input.component.d.ts.map +1 -1
  103. package/time-input/time-input.component.js +21 -22
  104. package/title/title-base.js +33 -33
  105. package/title/title.component.js +9 -9
  106. package/toast/toast.component.js +1 -1
  107. package/train/train-wagon/train-wagon.component.js +6 -6
  108. package/file-selector-common-Dw5d8vA4.js +0 -5
@@ -9,15 +9,16 @@ import { __runInitializers, __esDecorate } from "tslib";
9
9
  import { html } from "lit";
10
10
  import { property } from "lit/decorators.js";
11
11
  import { SbbLanguageController } from "../../core/controllers.js";
12
+ import { forceType } from "../../core/decorators.js";
12
13
  import { isLean } from "../../core/dom.js";
13
- import { i18nSelectedPage, i18nPreviousPage, i18nNextPage } from "../../core/i18n.js";
14
+ import { i18nPage, i18nPaginatorSelected, i18nPreviousPage, i18nNextPage } from "../../core/i18n.js";
14
15
  import { SbbNegativeMixin, SbbDisabledMixin, SbbElementInternalsMixin } from "../../core/mixins.js";
15
16
  import "../../button/mini-button.js";
16
17
  import "../../button/mini-button-group.js";
17
18
  import "../../divider.js";
18
19
  const SbbPaginatorCommonElementMixin = (superClass) => {
19
20
  let SbbPaginatorCommonElement = (() => {
20
- var _pagerPosition_accessor_storage, _size_accessor_storage, _a;
21
+ var _pagerPosition_accessor_storage, _size_accessor_storage, _accessibilityPageLabel_accessor_storage, _accessibilityPreviousPageLabel_accessor_storage, _accessibilityNextPageLabel_accessor_storage, _a;
21
22
  let _classSuper = SbbNegativeMixin(SbbDisabledMixin(SbbElementInternalsMixin(superClass)));
22
23
  let _instanceExtraInitializers = [];
23
24
  let _set_length_decorators;
@@ -29,17 +30,32 @@ const SbbPaginatorCommonElementMixin = (superClass) => {
29
30
  let _size_decorators;
30
31
  let _size_initializers = [];
31
32
  let _size_extraInitializers = [];
33
+ let _accessibilityPageLabel_decorators;
34
+ let _accessibilityPageLabel_initializers = [];
35
+ let _accessibilityPageLabel_extraInitializers = [];
36
+ let _accessibilityPreviousPageLabel_decorators;
37
+ let _accessibilityPreviousPageLabel_initializers = [];
38
+ let _accessibilityPreviousPageLabel_extraInitializers = [];
39
+ let _accessibilityNextPageLabel_decorators;
40
+ let _accessibilityNextPageLabel_initializers = [];
41
+ let _accessibilityNextPageLabel_extraInitializers = [];
32
42
  return _a = class extends _classSuper {
33
43
  constructor() {
34
44
  super(...arguments);
35
45
  __privateAdd(this, _pagerPosition_accessor_storage);
36
46
  __privateAdd(this, _size_accessor_storage);
47
+ __privateAdd(this, _accessibilityPageLabel_accessor_storage);
48
+ __privateAdd(this, _accessibilityPreviousPageLabel_accessor_storage);
49
+ __privateAdd(this, _accessibilityNextPageLabel_accessor_storage);
37
50
  this._length = (__runInitializers(this, _instanceExtraInitializers), 0);
38
51
  this._pageSize = 10;
39
52
  this._pageIndex = 0;
40
53
  __privateSet(this, _pagerPosition_accessor_storage, __runInitializers(this, _pagerPosition_initializers, "start"));
41
54
  __privateSet(this, _size_accessor_storage, (__runInitializers(this, _pagerPosition_extraInitializers), __runInitializers(this, _size_initializers, isLean() ? "s" : "m")));
42
- this.language = (__runInitializers(this, _size_extraInitializers), new SbbLanguageController(this));
55
+ __privateSet(this, _accessibilityPageLabel_accessor_storage, (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _accessibilityPageLabel_initializers, "")));
56
+ __privateSet(this, _accessibilityPreviousPageLabel_accessor_storage, (__runInitializers(this, _accessibilityPageLabel_extraInitializers), __runInitializers(this, _accessibilityPreviousPageLabel_initializers, "")));
57
+ __privateSet(this, _accessibilityNextPageLabel_accessor_storage, (__runInitializers(this, _accessibilityPreviousPageLabel_extraInitializers), __runInitializers(this, _accessibilityNextPageLabel_initializers, "")));
58
+ this.language = (__runInitializers(this, _accessibilityNextPageLabel_extraInitializers), new SbbLanguageController(this));
43
59
  this._previousPageSize = this._pageSize;
44
60
  }
45
61
  /** Total number of items. */
@@ -85,16 +101,46 @@ const SbbPaginatorCommonElementMixin = (superClass) => {
85
101
  set size(value) {
86
102
  __privateSet(this, _size_accessor_storage, value);
87
103
  }
104
+ /**
105
+ * Accessibility label for the page. Defaults to `page`.
106
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
107
+ */
108
+ get accessibilityPageLabel() {
109
+ return __privateGet(this, _accessibilityPageLabel_accessor_storage);
110
+ }
111
+ set accessibilityPageLabel(value) {
112
+ __privateSet(this, _accessibilityPageLabel_accessor_storage, value);
113
+ }
114
+ /**
115
+ * Accessibility label for the previous page. Defaults to `previous page`.
116
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
117
+ */
118
+ get accessibilityPreviousPageLabel() {
119
+ return __privateGet(this, _accessibilityPreviousPageLabel_accessor_storage);
120
+ }
121
+ set accessibilityPreviousPageLabel(value) {
122
+ __privateSet(this, _accessibilityPreviousPageLabel_accessor_storage, value);
123
+ }
124
+ /**
125
+ * Accessibility label for the next page. Defaults to `next page`.
126
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
127
+ */
128
+ get accessibilityNextPageLabel() {
129
+ return __privateGet(this, _accessibilityNextPageLabel_accessor_storage);
130
+ }
131
+ set accessibilityNextPageLabel(value) {
132
+ __privateSet(this, _accessibilityNextPageLabel_accessor_storage, value);
133
+ }
88
134
  updated(changedProperties) {
89
135
  super.updated(changedProperties);
90
- this.shadowRoot.querySelector("sbb-screen-reader-only").textContent = this._currentPageLabel();
136
+ this.shadowRoot.querySelector("sbb-screen-reader-only#status").textContent = this._currentPageLabel();
91
137
  }
92
138
  /** Evaluate `pageIndex` by excluding edge cases. */
93
139
  _coercePageIndexInRange(pageIndex) {
94
140
  return Math.max(Math.min(Math.max(isNaN(pageIndex) ? 0 : pageIndex, 0), this.numberOfPages() - 1), 0);
95
141
  }
96
142
  _currentPageLabel() {
97
- return i18nSelectedPage(this.pageIndex + 1)[this.language.current];
143
+ return `${this.accessibilityPageLabel ? this.accessibilityPageLabel : i18nPage[this.language.current]} ${this.pageIndex + 1} ${i18nPaginatorSelected[this.language.current]}.`;
98
144
  }
99
145
  /** Advances to the next page if it exists. */
100
146
  nextPage() {
@@ -153,7 +199,7 @@ const SbbPaginatorCommonElementMixin = (superClass) => {
153
199
  <sbb-mini-button-group ?negative=${this.negative} size=${this.size === "s" ? "s" : "l"}>
154
200
  <sbb-mini-button
155
201
  id="sbb-paginator-prev-page"
156
- aria-label=${i18nPreviousPage[this.language.current]}
202
+ aria-label=${this.accessibilityPreviousPageLabel ? this.accessibilityPreviousPageLabel : i18nPreviousPage[this.language.current]}
157
203
  icon-name="chevron-small-left-small"
158
204
  ?disabled=${this.disabled || !this.hasPreviousPage()}
159
205
  @click=${() => this.previousPage()}
@@ -161,7 +207,7 @@ const SbbPaginatorCommonElementMixin = (superClass) => {
161
207
  <sbb-divider orientation="vertical"></sbb-divider>
162
208
  <sbb-mini-button
163
209
  id="sbb-paginator-next-page"
164
- aria-label=${i18nNextPage[this.language.current]}
210
+ aria-label=${this.accessibilityNextPageLabel ? this.accessibilityNextPageLabel : i18nNextPage[this.language.current]}
165
211
  icon-name="chevron-small-right-small"
166
212
  ?disabled=${this.disabled || !this.hasNextPage()}
167
213
  @click=${() => this.nextPage()}
@@ -172,16 +218,19 @@ const SbbPaginatorCommonElementMixin = (superClass) => {
172
218
  render() {
173
219
  return html`
174
220
  ${this.renderPaginator()}
175
- <sbb-screen-reader-only role="status"></sbb-screen-reader-only>
221
+ <sbb-screen-reader-only id="status" role="status"></sbb-screen-reader-only>
176
222
  `;
177
223
  }
178
- }, _pagerPosition_accessor_storage = new WeakMap(), _size_accessor_storage = new WeakMap(), (() => {
224
+ }, _pagerPosition_accessor_storage = new WeakMap(), _size_accessor_storage = new WeakMap(), _accessibilityPageLabel_accessor_storage = new WeakMap(), _accessibilityPreviousPageLabel_accessor_storage = new WeakMap(), _accessibilityNextPageLabel_accessor_storage = new WeakMap(), (() => {
179
225
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
180
226
  _set_length_decorators = [property({ type: Number })];
181
227
  _set_pageSize_decorators = [property({ attribute: "page-size", type: Number })];
182
228
  _set_pageIndex_decorators = [property({ attribute: "page-index", type: Number })];
183
229
  _pagerPosition_decorators = [property({ attribute: "pager-position", reflect: true })];
184
230
  _size_decorators = [property({ reflect: true })];
231
+ _accessibilityPageLabel_decorators = [forceType(), property({ attribute: "accessibility-page-label" })];
232
+ _accessibilityPreviousPageLabel_decorators = [forceType(), property({ attribute: "accessibility-previous-page-label" })];
233
+ _accessibilityNextPageLabel_decorators = [forceType(), property({ attribute: "accessibility-next-page-label" })];
185
234
  __esDecorate(_a, null, _set_length_decorators, { kind: "setter", name: "length", static: false, private: false, access: { has: (obj) => "length" in obj, set: (obj, value) => {
186
235
  obj.length = value;
187
236
  } }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -197,6 +246,15 @@ const SbbPaginatorCommonElementMixin = (superClass) => {
197
246
  __esDecorate(_a, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: (obj) => "size" in obj, get: (obj) => obj.size, set: (obj, value) => {
198
247
  obj.size = value;
199
248
  } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
249
+ __esDecorate(_a, null, _accessibilityPageLabel_decorators, { kind: "accessor", name: "accessibilityPageLabel", static: false, private: false, access: { has: (obj) => "accessibilityPageLabel" in obj, get: (obj) => obj.accessibilityPageLabel, set: (obj, value) => {
250
+ obj.accessibilityPageLabel = value;
251
+ } }, metadata: _metadata }, _accessibilityPageLabel_initializers, _accessibilityPageLabel_extraInitializers);
252
+ __esDecorate(_a, null, _accessibilityPreviousPageLabel_decorators, { kind: "accessor", name: "accessibilityPreviousPageLabel", static: false, private: false, access: { has: (obj) => "accessibilityPreviousPageLabel" in obj, get: (obj) => obj.accessibilityPreviousPageLabel, set: (obj, value) => {
253
+ obj.accessibilityPreviousPageLabel = value;
254
+ } }, metadata: _metadata }, _accessibilityPreviousPageLabel_initializers, _accessibilityPreviousPageLabel_extraInitializers);
255
+ __esDecorate(_a, null, _accessibilityNextPageLabel_decorators, { kind: "accessor", name: "accessibilityNextPageLabel", static: false, private: false, access: { has: (obj) => "accessibilityNextPageLabel" in obj, get: (obj) => obj.accessibilityNextPageLabel, set: (obj, value) => {
256
+ obj.accessibilityNextPageLabel = value;
257
+ } }, metadata: _metadata }, _accessibilityNextPageLabel_initializers, _accessibilityNextPageLabel_extraInitializers);
200
258
  if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
201
259
  })(), _a.role = "group", _a.events = {
202
260
  page: "page"
@@ -207,4 +265,4 @@ const SbbPaginatorCommonElementMixin = (superClass) => {
207
265
  export {
208
266
  SbbPaginatorCommonElementMixin
209
267
  };
210
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLWNvbW1vbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9jb21tb24vcGFnaW5hdG9yLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBodG1sLCB0eXBlIExpdEVsZW1lbnQsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgaTE4bk5leHRQYWdlLCBpMThuUHJldmlvdXNQYWdlLCBpMThuU2VsZWN0ZWRQYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUGFnaW5hdG9yUGFnZUV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiTmVnYXRpdmVNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9taW5pLWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9taW5pLWJ1dHRvbi1ncm91cC5qcyc7XG5pbXBvcnQgJy4uLy4uL2RpdmlkZXIuanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiRGlzYWJsZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBsZW5ndGg6IG51bWJlcjtcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VTaXplOiBudW1iZXI7XG4gIHB1YmxpYyBhY2Nlc3NvciBwYWdlSW5kZXg6IG51bWJlcjtcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VyUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJztcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdtJyB8ICdzJztcbiAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQ7XG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZDtcbiAgcHVibGljIGZpcnN0UGFnZSgpOiB2b2lkO1xuICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZDtcbiAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbjtcbiAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBlbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIpOiB2b2lkO1xuICBwcm90ZWN0ZWQgcmVuZGVyUHJldk5leHRCdXR0b25zKCk6IFRlbXBsYXRlUmVzdWx0O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVuZGVyUGFnaW5hdG9yKCk6IFRlbXBsYXRlUmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJEaXNhYmxlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJvbGUgPSAnZ3JvdXAnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgcGFnZTogJ3BhZ2UnLFxuICAgIH0gYXMgY29uc3Q7XG5cbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGl0ZW1zLiAqL1xuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICAgIHB1YmxpYyBzZXQgbGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIHRoaXMuX2xlbmd0aCA9IGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IDAgPyAwIDogdmFsdWU7XG4gICAgICAvLyBDYWxsIHNldHRlciBvZiBwYWdlSW5kZXggdG8gZW5zdXJlIGJvdW5kc1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMucGFnZUluZGV4O1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuX2xlbmd0aDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqIE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLXNpemUnLCB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIC8vIEN1cnJlbnQgcGFnZSBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIG5ldyBwYWdlIHNpemUuIE5hdmlnYXRlIHRvIHRoZSBwYWdlXG4gICAgICAvLyBjb250YWluaW5nIHRoZSBwcmV2aW91cyBwYWdlJ3MgZmlyc3QgaXRlbS5cbiAgICAgIHRoaXMuX3ByZXZpb3VzUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xuICAgICAgdGhpcy5fcGFnZVNpemUgPSBNYXRoLm1heCh2YWx1ZSwgMCk7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IE1hdGguZmxvb3IoKHRoaXMucGFnZUluZGV4ICogdGhpcy5fcHJldmlvdXNQYWdlU2l6ZSkgLyB0aGlzLnBhZ2VTaXplKSB8fCAwO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5fcGFnZVNpemU7XG4gICAgfVxuICAgIHByaXZhdGUgX3BhZ2VTaXplOiBudW1iZXIgPSAxMDtcblxuICAgIC8qKiBDdXJyZW50IHBhZ2UgaW5kZXguICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZS1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICAgIHB1YmxpYyBzZXQgcGFnZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5fcGFnZUluZGV4O1xuICAgICAgdGhpcy5fcGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLmVtaXRQYWdlRXZlbnQocHJldmlvdXNQYWdlSW5kZXgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBhZ2VJbmRleCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VJbmRleDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZUluZGV4OiBudW1iZXIgPSAwO1xuXG4gICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBwcmV2L25leHQgYnV0dG9ucy4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlci1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHBhZ2VyUG9zaXRpb246XG4gICAgICB8ICdzdGFydCdcbiAgICAgIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gICAgLyoqXG4gICAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbSBvciBzLlxuICAgICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgcHJpdmF0ZSBfcHJldmlvdXNQYWdlU2l6ZTogbnVtYmVyID0gdGhpcy5fcGFnZVNpemU7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlclBhZ2luYXRvcigpOiBUZW1wbGF0ZVJlc3VsdDtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIC8vIFRvIHJlbGlhYmx5IGFubm91bmNlIHBhZ2UgY2hhbmdlLCB3ZSBoYXZlIHRvIHNldCB0aGUgbGFiZWwgaW4gdXBkYXRlZCgpIChhIHRpY2sgbGF0ZXIgdGhhbiB0aGUgb3RoZXIgY2hhbmdlcykuXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1zY3JlZW4tcmVhZGVyLW9ubHknKSEudGV4dENvbnRlbnQgPVxuICAgICAgICB0aGlzLl9jdXJyZW50UGFnZUxhYmVsKCk7XG4gICAgfVxuXG4gICAgLyoqIEV2YWx1YXRlIGBwYWdlSW5kZXhgIGJ5IGV4Y2x1ZGluZyBlZGdlIGNhc2VzLiAqL1xuICAgIHByaXZhdGUgX2NvZXJjZVBhZ2VJbmRleEluUmFuZ2UocGFnZUluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KFxuICAgICAgICBNYXRoLm1pbihNYXRoLm1heChpc05hTihwYWdlSW5kZXgpID8gMCA6IHBhZ2VJbmRleCwgMCksIHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMSksXG4gICAgICAgIDAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2N1cnJlbnRQYWdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBpMThuU2VsZWN0ZWRQYWdlKHRoaXMucGFnZUluZGV4ICsgMSlbdGhpcy5sYW5ndWFnZS5jdXJyZW50XTtcbiAgICB9XG5cbiAgICAvKiogQWR2YW5jZXMgdG8gdGhlIG5leHQgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLnBhZ2VJbmRleCArIDE7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgYmFjayB0byB0aGUgcHJldmlvdXMgcGFnZSBpZiBpdCBleGlzdHMuICovXG4gICAgcHVibGljIHByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXggLSAxO1xuICAgIH1cblxuICAgIC8qKiBNb3ZlIHRvIHRoZSBmaXJzdCBwYWdlIGlmIG5vdCBhbHJlYWR5IHRoZXJlLiAqL1xuICAgIHB1YmxpYyBmaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgdG8gdGhlIGxhc3QgcGFnZSBpZiBub3QgYWxyZWFkeSB0aGVyZS4gKi9cbiAgICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMTtcbiAgICB9XG5cbiAgICAvKiogTW92ZSB0byBhIHNwZWNpZmljIHBhZ2UgaW5kZXguICovXG4gICAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSBpbmRleDtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGVyZSBpcyBhIHByZXZpb3VzIHBhZ2UuICovXG4gICAgcHVibGljIGhhc1ByZXZpb3VzUGFnZSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2VJbmRleCA+PSAxICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBuZXh0IHBhZ2UuICovXG4gICAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgY29uc3QgbWF4UGFnZUluZGV4ID0gdGhpcy5udW1iZXJPZlBhZ2VzKCkgLSAxO1xuICAgICAgcmV0dXJuIHRoaXMucGFnZUluZGV4IDwgbWF4UGFnZUluZGV4ICYmIHRoaXMucGFnZVNpemUgIT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgY3VycmVudCBudW1iZXIgb2YgcGFnZXMgYmFzZWQgb24gdGhlIGBsZW5ndGhgIGFuZCB0aGUgYHBhZ2VTaXplYDtcbiAgICAgKiB2YWx1ZSBtdXN0IGJlIHJvdW5kZWQgdXAgKGUuZy4gYGxlbmd0aCA9IDIxYCBhbmQgYHBhZ2VTaXplID0gMTBgIG1lYW5zIDMgcGFnZXMpLlxuICAgICAqL1xuICAgIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZSA/IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpIDogMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZW1pdFBhZ2VFdmVudChwcmV2aW91c1BhZ2VJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmhhc1VwZGF0ZWQgfHxcbiAgICAgICAgKHRoaXMucGFnZUluZGV4ID09PSBwcmV2aW91c1BhZ2VJbmRleCAmJiB0aGlzLl9wcmV2aW91c1BhZ2VTaXplID09PSB0aGlzLnBhZ2VTaXplKVxuICAgICAgKSB7XG4gICAgICAgIC8vIFdoZW4gZW1pdHRpbmcgdGhlIHBhZ2UgZXZlbnQgaXMgc2tpcHBlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sXG4gICAgICAgIC8vIHdlIGhhdmUgdG8gdXBkYXRlIHRoZSBwcmV2aW91cyBwYWdlIHNpemUuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgaXQgY291bGQgdHJpZ2dlciBhbiB1bm5lY2Vzc2FyeSBwYWdlIGV2ZW50IHdoZW4gb3RoZXIgcHJvcFxuICAgICAgICAvLyBpcyByZS1hc3NpZ25lZCB3aXRoIHRoZSBlLmcuIHRoZSBzYW1lIHZhbHVlLlxuICAgICAgICB0aGlzLl9wcmV2aW91c1BhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZTsgLy8gVXBkYXRlIHRoZSBwcmV2aW91cyBwYWdlIHNpemUgZm9yIG5leHQgY29tcGFyaXNvblxuXG4gICAgICAgIC8vIERvIG5vdCBlbWl0IHRoZSBldmVudCBpZiB0aGUgcGFnZSBldmVudCBkZXRhaWxzIGRpZCBub3QgY2hhbmdlXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8U2JiUGFnaW5hdG9yUGFnZUV2ZW50RGV0YWlscz59XG4gICAgICAgKiBUaGUgcGFnZSBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gdGhlIHBhZ2UgaW5kZXggY2hhbmdlcy5cbiAgICAgICAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQ8U2JiUGFnaW5hdG9yUGFnZUV2ZW50RGV0YWlscz4oJ3BhZ2UnLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgICAgICAgcGFnZUluZGV4OiB0aGlzLnBhZ2VJbmRleCxcbiAgICAgICAgICAgIGxlbmd0aDogdGhpcy5sZW5ndGgsXG4gICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbmRlclByZXZOZXh0QnV0dG9ucygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNiYi1taW5pLWJ1dHRvbi1ncm91cCA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfSBzaXplPSR7dGhpcy5zaXplID09PSAncycgPyAncycgOiAnbCd9PlxuICAgICAgICAgIDxzYmItbWluaS1idXR0b25cbiAgICAgICAgICAgIGlkPVwic2JiLXBhZ2luYXRvci1wcmV2LXBhZ2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5QcmV2aW91c1BhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgIGljb24tbmFtZT1cImNoZXZyb24tc21hbGwtbGVmdC1zbWFsbFwiXG4gICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmhhc1ByZXZpb3VzUGFnZSgpfVxuICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5wcmV2aW91c1BhZ2UoKX1cbiAgICAgICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICAgICAgPHNiYi1kaXZpZGVyIG9yaWVudGF0aW9uPVwidmVydGljYWxcIj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgIDxzYmItbWluaS1idXR0b25cbiAgICAgICAgICAgIGlkPVwic2JiLXBhZ2luYXRvci1uZXh0LXBhZ2VcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5OZXh0UGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1yaWdodC1zbWFsbFwiXG4gICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmhhc05leHRQYWdlKCl9XG4gICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLm5leHRQYWdlKCl9XG4gICAgICAgICAgPjwvc2JiLW1pbmktYnV0dG9uPlxuICAgICAgICA8L3NiYi1taW5pLWJ1dHRvbi1ncm91cD5cbiAgICAgIGA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHt0aGlzLnJlbmRlclBhZ2luYXRvcigpfVxuICAgICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSByb2xlPVwic3RhdHVzXCI+PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgYDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCB7XG4gICAgcGFnZTogQ3VzdG9tRXZlbnQ8U2JiUGFnaW5hdG9yUGFnZUV2ZW50RGV0YWlscz47XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXlDTyxNQUFNLGlDQUFpQyxDQUM1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
268
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLWNvbW1vbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9jb21tb24vcGFnaW5hdG9yLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBodG1sLCB0eXBlIExpdEVsZW1lbnQsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7XG4gIGkxOG5OZXh0UGFnZSxcbiAgaTE4blBhZ2UsXG4gIGkxOG5QYWdpbmF0b3JTZWxlY3RlZCxcbiAgaTE4blByZXZpb3VzUGFnZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUGFnaW5hdG9yUGFnZUV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQge1xuICB0eXBlIEFic3RyYWN0Q29uc3RydWN0b3IsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiTmVnYXRpdmVNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9taW5pLWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9taW5pLWJ1dHRvbi1ncm91cC5qcyc7XG5pbXBvcnQgJy4uLy4uL2RpdmlkZXIuanMnO1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihcbiAgU2JiRGlzYWJsZWRNaXhpbihTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4oTGl0RWxlbWVudCkpLFxuKSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBsZW5ndGg6IG51bWJlcjtcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VTaXplOiBudW1iZXI7XG4gIHB1YmxpYyBhY2Nlc3NvciBwYWdlSW5kZXg6IG51bWJlcjtcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VyUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJztcbiAgcHVibGljIGFjY2Vzc29yIHNpemU6ICdtJyB8ICdzJztcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQ7XG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZDtcbiAgcHVibGljIGZpcnN0UGFnZSgpOiB2b2lkO1xuICBwdWJsaWMgbGFzdFBhZ2UoKTogdm9pZDtcbiAgcHVibGljIHNlbGVjdFBhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbjtcbiAgcHVibGljIGhhc05leHRQYWdlKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBudW1iZXJPZlBhZ2VzKCk6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG4gIHByb3RlY3RlZCBlbWl0UGFnZUV2ZW50KHByZXZpb3VzUGFnZUluZGV4OiBudW1iZXIpOiB2b2lkO1xuICBwcm90ZWN0ZWQgcmVuZGVyUHJldk5leHRCdXR0b25zKCk6IFRlbXBsYXRlUmVzdWx0O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVuZGVyUGFnaW5hdG9yKCk6IFRlbXBsYXRlUmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJEaXNhYmxlZE1peGluKFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbihzdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJvbGUgPSAnZ3JvdXAnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgcGFnZTogJ3BhZ2UnLFxuICAgIH0gYXMgY29uc3Q7XG5cbiAgICAvKiogVG90YWwgbnVtYmVyIG9mIGl0ZW1zLiAqL1xuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IE51bWJlciB9KVxuICAgIHB1YmxpYyBzZXQgbGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIHRoaXMuX2xlbmd0aCA9IGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IDAgPyAwIDogdmFsdWU7XG4gICAgICAvLyBDYWxsIHNldHRlciBvZiBwYWdlSW5kZXggdG8gZW5zdXJlIGJvdW5kc1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMucGFnZUluZGV4O1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuX2xlbmd0aDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfbGVuZ3RoOiBudW1iZXIgPSAwO1xuXG4gICAgLyoqIE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlLXNpemUnLCB0eXBlOiBOdW1iZXIgfSlcbiAgICBwdWJsaWMgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIC8vIEN1cnJlbnQgcGFnZSBuZWVkcyB0byBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIG5ldyBwYWdlIHNpemUuIE5hdmlnYXRlIHRvIHRoZSBwYWdlXG4gICAgICAvLyBjb250YWluaW5nIHRoZSBwcmV2aW91cyBwYWdlJ3MgZmlyc3QgaXRlbS5cbiAgICAgIHRoaXMuX3ByZXZpb3VzUGFnZVNpemUgPSB0aGlzLnBhZ2VTaXplO1xuICAgICAgdGhpcy5fcGFnZVNpemUgPSBNYXRoLm1heCh2YWx1ZSwgMCk7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IE1hdGguZmxvb3IoKHRoaXMucGFnZUluZGV4ICogdGhpcy5fcHJldmlvdXNQYWdlU2l6ZSkgLyB0aGlzLnBhZ2VTaXplKSB8fCAwO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5fcGFnZVNpemU7XG4gICAgfVxuICAgIHByaXZhdGUgX3BhZ2VTaXplOiBudW1iZXIgPSAxMDtcblxuICAgIC8qKiBDdXJyZW50IHBhZ2UgaW5kZXguICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZS1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICAgIHB1YmxpYyBzZXQgcGFnZUluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzUGFnZUluZGV4ID0gdGhpcy5fcGFnZUluZGV4O1xuICAgICAgdGhpcy5fcGFnZUluZGV4ID0gdGhpcy5fY29lcmNlUGFnZUluZGV4SW5SYW5nZSh2YWx1ZSk7XG4gICAgICB0aGlzLmVtaXRQYWdlRXZlbnQocHJldmlvdXNQYWdlSW5kZXgpO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHBhZ2VJbmRleCgpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMuX3BhZ2VJbmRleDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcGFnZUluZGV4OiBudW1iZXIgPSAwO1xuXG4gICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBwcmV2L25leHQgYnV0dG9ucy4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlci1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHBhZ2VyUG9zaXRpb246XG4gICAgICB8ICdzdGFydCdcbiAgICAgIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gICAgLyoqXG4gICAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbSBvciBzLlxuICAgICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiAnbScgfCAncycgPSBpc0xlYW4oKSA/ICdzJyA6ICdtJztcblxuICAgIC8qKlxuICAgICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBwYWdlLiBEZWZhdWx0cyB0byBgcGFnZWAuXG4gICAgICogQ2FuIGJlIHNldCBmb3IgY2FzZXMgbGlrZSBhIGNhcm91c2VsLCB3aGVyZSBgc2xpZGVgIG9yIGBpbWFnZWAgZml0cyBiZXR0ZXIuXG4gICAgICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1wYWdlLWxhYmVsJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5UGFnZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBwcmV2aW91cyBwYWdlLiBEZWZhdWx0cyB0byBgcHJldmlvdXMgcGFnZWAuXG4gICAgICogQ2FuIGJlIHNldCBmb3IgY2FzZXMgbGlrZSBhIGNhcm91c2VsLCB3aGVyZSBgc2xpZGVgIG9yIGBpbWFnZWAgZml0cyBiZXR0ZXIuXG4gICAgICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1wcmV2aW91cy1wYWdlLWxhYmVsJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5UHJldmlvdXNQYWdlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQWNjZXNzaWJpbGl0eSBsYWJlbCBmb3IgdGhlIG5leHQgcGFnZS4gRGVmYXVsdHMgdG8gYG5leHQgcGFnZWAuXG4gICAgICogQ2FuIGJlIHNldCBmb3IgY2FzZXMgbGlrZSBhIGNhcm91c2VsLCB3aGVyZSBgc2xpZGVgIG9yIGBpbWFnZWAgZml0cyBiZXR0ZXIuXG4gICAgICovXG4gICAgQGZvcmNlVHlwZSgpXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1uZXh0LXBhZ2UtbGFiZWwnIH0pXG4gICAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlOZXh0UGFnZUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIHByb3RlY3RlZCBsYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gICAgcHJpdmF0ZSBfcHJldmlvdXNQYWdlU2l6ZTogbnVtYmVyID0gdGhpcy5fcGFnZVNpemU7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlclBhZ2luYXRvcigpOiBUZW1wbGF0ZVJlc3VsdDtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAgIC8vIFRvIHJlbGlhYmx5IGFubm91bmNlIHBhZ2UgY2hhbmdlLCB3ZSBoYXZlIHRvIHNldCB0aGUgbGFiZWwgaW4gdXBkYXRlZCgpIChhIHRpY2sgbGF0ZXIgdGhhbiB0aGUgb3RoZXIgY2hhbmdlcykuXG4gICAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1zY3JlZW4tcmVhZGVyLW9ubHkjc3RhdHVzJykhLnRleHRDb250ZW50ID1cbiAgICAgICAgdGhpcy5fY3VycmVudFBhZ2VMYWJlbCgpO1xuICAgIH1cblxuICAgIC8qKiBFdmFsdWF0ZSBgcGFnZUluZGV4YCBieSBleGNsdWRpbmcgZWRnZSBjYXNlcy4gKi9cbiAgICBwcml2YXRlIF9jb2VyY2VQYWdlSW5kZXhJblJhbmdlKHBhZ2VJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgICAgTWF0aC5taW4oTWF0aC5tYXgoaXNOYU4ocGFnZUluZGV4KSA/IDAgOiBwYWdlSW5kZXgsIDApLCB0aGlzLm51bWJlck9mUGFnZXMoKSAtIDEpLFxuICAgICAgICAwLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jdXJyZW50UGFnZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5hY2Nlc3NpYmlsaXR5UGFnZUxhYmVsID8gdGhpcy5hY2Nlc3NpYmlsaXR5UGFnZUxhYmVsIDogaTE4blBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gJHt0aGlzLnBhZ2VJbmRleCArIDF9ICR7aTE4blBhZ2luYXRvclNlbGVjdGVkW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19LmA7XG4gICAgfVxuXG4gICAgLyoqIEFkdmFuY2VzIHRvIHRoZSBuZXh0IHBhZ2UgaWYgaXQgZXhpc3RzLiAqL1xuICAgIHB1YmxpYyBuZXh0UGFnZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gdGhpcy5wYWdlSW5kZXggKyAxO1xuICAgIH1cblxuICAgIC8qKiBNb3ZlIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2UgaWYgaXQgZXhpc3RzLiAqL1xuICAgIHB1YmxpYyBwcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMucGFnZUluZGV4IC0gMTtcbiAgICB9XG5cbiAgICAvKiogTW92ZSB0byB0aGUgZmlyc3QgcGFnZSBpZiBub3QgYWxyZWFkeSB0aGVyZS4gKi9cbiAgICBwdWJsaWMgZmlyc3RQYWdlKCk6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSAwO1xuICAgIH1cblxuICAgIC8qKiBNb3ZlIHRvIHRoZSBsYXN0IHBhZ2UgaWYgbm90IGFscmVhZHkgdGhlcmUuICovXG4gICAgcHVibGljIGxhc3RQYWdlKCk6IHZvaWQge1xuICAgICAgdGhpcy5wYWdlSW5kZXggPSB0aGlzLm51bWJlck9mUGFnZXMoKSAtIDE7XG4gICAgfVxuXG4gICAgLyoqIE1vdmUgdG8gYSBzcGVjaWZpYyBwYWdlIGluZGV4LiAqL1xuICAgIHB1YmxpYyBzZWxlY3RQYWdlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIHRoaXMucGFnZUluZGV4ID0gaW5kZXg7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgaXMgYSBwcmV2aW91cyBwYWdlLiAqL1xuICAgIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5wYWdlSW5kZXggPj0gMSAmJiB0aGlzLnBhZ2VTaXplICE9PSAwO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZXJlIGlzIGEgbmV4dCBwYWdlLiAqL1xuICAgIHB1YmxpYyBoYXNOZXh0UGFnZSgpOiBib29sZWFuIHtcbiAgICAgIGNvbnN0IG1heFBhZ2VJbmRleCA9IHRoaXMubnVtYmVyT2ZQYWdlcygpIC0gMTtcbiAgICAgIHJldHVybiB0aGlzLnBhZ2VJbmRleCA8IG1heFBhZ2VJbmRleCAmJiB0aGlzLnBhZ2VTaXplICE9PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHBhZ2VzIGJhc2VkIG9uIHRoZSBgbGVuZ3RoYCBhbmQgdGhlIGBwYWdlU2l6ZWA7XG4gICAgICogdmFsdWUgbXVzdCBiZSByb3VuZGVkIHVwIChlLmcuIGBsZW5ndGggPSAyMWAgYW5kIGBwYWdlU2l6ZSA9IDEwYCBtZWFucyAzIHBhZ2VzKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgbnVtYmVyT2ZQYWdlcygpOiBudW1iZXIge1xuICAgICAgcmV0dXJuIHRoaXMucGFnZVNpemUgPyBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKSA6IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGVtaXRQYWdlRXZlbnQocHJldmlvdXNQYWdlSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5oYXNVcGRhdGVkIHx8XG4gICAgICAgICh0aGlzLnBhZ2VJbmRleCA9PT0gcHJldmlvdXNQYWdlSW5kZXggJiYgdGhpcy5fcHJldmlvdXNQYWdlU2l6ZSA9PT0gdGhpcy5wYWdlU2l6ZSlcbiAgICAgICkge1xuICAgICAgICAvLyBXaGVuIGVtaXR0aW5nIHRoZSBwYWdlIGV2ZW50IGlzIHNraXBwZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLFxuICAgICAgICAvLyB3ZSBoYXZlIHRvIHVwZGF0ZSB0aGUgcHJldmlvdXMgcGFnZSBzaXplLlxuICAgICAgICAvLyBPdGhlcndpc2UsIGl0IGNvdWxkIHRyaWdnZXIgYW4gdW5uZWNlc3NhcnkgcGFnZSBldmVudCB3aGVuIG90aGVyIHByb3BcbiAgICAgICAgLy8gaXMgcmUtYXNzaWduZWQgd2l0aCB0aGUgZS5nLiB0aGUgc2FtZSB2YWx1ZS5cbiAgICAgICAgdGhpcy5fcHJldmlvdXNQYWdlU2l6ZSA9IHRoaXMucGFnZVNpemU7IC8vIFVwZGF0ZSB0aGUgcHJldmlvdXMgcGFnZSBzaXplIGZvciBuZXh0IGNvbXBhcmlzb25cblxuICAgICAgICAvLyBEbyBub3QgZW1pdCB0aGUgZXZlbnQgaWYgdGhlIHBhZ2UgZXZlbnQgZGV0YWlscyBkaWQgbm90IGNoYW5nZVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFNiYlBhZ2luYXRvclBhZ2VFdmVudERldGFpbHM+fVxuICAgICAgICogVGhlIHBhZ2UgZXZlbnQgaXMgZGlzcGF0Y2hlZCB3aGVuIHRoZSBwYWdlIGluZGV4IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PFNiYlBhZ2luYXRvclBhZ2VFdmVudERldGFpbHM+KCdwYWdlJywge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICBwcmV2aW91c1BhZ2VJbmRleCxcbiAgICAgICAgICAgIHBhZ2VJbmRleDogdGhpcy5wYWdlSW5kZXgsXG4gICAgICAgICAgICBsZW5ndGg6IHRoaXMubGVuZ3RoLFxuICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItbWluaS1idXR0b24tZ3JvdXAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX0gc2l6ZT0ke3RoaXMuc2l6ZSA9PT0gJ3MnID8gJ3MnIDogJ2wnfT5cbiAgICAgICAgICA8c2JiLW1pbmktYnV0dG9uXG4gICAgICAgICAgICBpZD1cInNiYi1wYWdpbmF0b3ItcHJldi1wYWdlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlQcmV2aW91c1BhZ2VMYWJlbFxuICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eVByZXZpb3VzUGFnZUxhYmVsXG4gICAgICAgICAgICAgIDogaTE4blByZXZpb3VzUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgIXRoaXMuaGFzUHJldmlvdXNQYWdlKCl9XG4gICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLnByZXZpb3VzUGFnZSgpfVxuICAgICAgICAgID48L3NiYi1taW5pLWJ1dHRvbj5cbiAgICAgICAgICA8c2JiLWRpdmlkZXIgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiPjwvc2JiLWRpdmlkZXI+XG4gICAgICAgICAgPHNiYi1taW5pLWJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJzYmItcGFnaW5hdG9yLW5leHQtcGFnZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TmV4dFBhZ2VMYWJlbFxuICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eU5leHRQYWdlTGFiZWxcbiAgICAgICAgICAgICAgOiBpMThuTmV4dFBhZ2VbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgIGljb24tbmFtZT1cImNoZXZyb24tc21hbGwtcmlnaHQtc21hbGxcIlxuICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5oYXNOZXh0UGFnZSgpfVxuICAgICAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5uZXh0UGFnZSgpfVxuICAgICAgICAgID48L3NiYi1taW5pLWJ1dHRvbj5cbiAgICAgICAgPC9zYmItbWluaS1idXR0b24tZ3JvdXA+XG4gICAgICBgO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICR7dGhpcy5yZW5kZXJQYWdpbmF0b3IoKX1cbiAgICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHkgaWQ9XCJzdGF0dXNcIiByb2xlPVwic3RhdHVzXCI+PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgYDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCB7XG4gICAgcGFnZTogQ3VzdG9tRXZlbnQ8U2JiUGFnaW5hdG9yUGFnZUV2ZW50RGV0YWlscz47XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrRE8sTUFBTSxpQ0FBaUMsQ0FDNUMsZUFDK0Q7TUFDaEQsNkJBQXlCLE1BQUE7O3NCQUM5QixpQkFBaUIsaUJBQWlCLHlCQUF5QixVQUFVLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFEbEUsV0FBQSxtQkFDTCxZQUF3RTtBQUFBOztBQWdEdEI7QUFRN0I7QUFRN0I7QUFRQTtBQVFBO0FBN0RRLGFBQUEsV0FwQkssa0JBQUEsTUFBQSwwQkFBQSxHQW9CYTtBQWNsQixhQUFBLFlBQW9CO0FBWXBCLGFBQUEsYUFBcUI7QUFHNkMsMkJBQUEsaUNBQUEsa0JBQUEsTUFBQSw2QkFFOUQsT0FBTztB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
@@ -1 +1 @@
1
- {"version":3,"file":"compact-paginator.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/paginator/compact-paginator/compact-paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAIvC,OAAO,kBAAkB,CAAC;;AAI1B;;GAEG;AACH,qBAEM,0BAA2B,SAAQ,+BAA0C;IACjF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1C;IAEX,OAAO,CAAC,kBAAkB;cAcP,eAAe,IAAI,cAAc;CASrD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,0BAA0B,CAAC;KACrD;CACF"}
1
+ {"version":3,"file":"compact-paginator.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/paginator/compact-paginator/compact-paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAQvC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,6BAA6B,CAAC;;AAErC;;GAEG;AACH,qBAEM,0BAA2B,SAAQ,+BAA0C;IACjF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1C;IAEX,OAAO,CAAC,kBAAkB;cAiBP,eAAe,IAAI,cAAc;CASrD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,0BAA0B,CAAC;KACrD;CACF"}
@@ -1,8 +1,10 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { css, LitElement, html } from "lit";
3
3
  import { customElement } from "lit/decorators.js";
4
+ import { i18nPage, i18nPaginatorOf } from "../../core/i18n.js";
4
5
  import { SbbPaginatorCommonElementMixin } from "../common.js";
5
6
  import "../../divider.js";
7
+ import "../../screen-reader-only.js";
6
8
  const style = css`*,
7
9
  ::before,
8
10
  ::after {
@@ -62,15 +64,18 @@ let SbbCompactPaginatorElement = (() => {
62
64
  _a = class extends _classSuper {
63
65
  _renderPageNumbers() {
64
66
  return html`
65
- <span class="sbb-paginator__pages"
67
+ <span class="sbb-paginator__pages" aria-hidden="true"
66
68
  >${this.pageIndex + 1}<sbb-divider
67
- aria-hidden="true"
68
69
  orientation="vertical"
69
70
  class="sbb-compact-paginator__divider"
71
+ style="--sbb-divider-color: currentcolor"
70
72
  ?negative=${this.negative}
71
73
  ></sbb-divider
72
74
  >${this.numberOfPages()}</span
73
75
  >
76
+ <sbb-screen-reader-only>
77
+ ${`${this.accessibilityPageLabel ? this.accessibilityPageLabel : i18nPage[this.language.current]} ${this.pageIndex + 1} ${i18nPaginatorOf[this.language.current]} ${this.numberOfPages()}`}
78
+ </sbb-screen-reader-only>
74
79
  `;
75
80
  }
76
81
  renderPaginator() {
@@ -93,4 +98,4 @@ let SbbCompactPaginatorElement = (() => {
93
98
  export {
94
99
  SbbCompactPaginatorElement
95
100
  };
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFjdC1wYWdpbmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2RpdmlkZXIuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9jb21wYWN0LXBhZ2luYXRvci5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFnaW5hdG9yIGNvbXBvbmVudCBpbiBjb21wYWN0IG1vZGUuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1jb21wYWN0LXBhZ2luYXRvcicpXG5jbGFzcyBTYmJDb21wYWN0UGFnaW5hdG9yRWxlbWVudCBleHRlbmRzIFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICBwYWdlOiAncGFnZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJpdmF0ZSBfcmVuZGVyUGFnZU51bWJlcnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlc1wiXG4gICAgICAgID4ke3RoaXMucGFnZUluZGV4ICsgMX08c2JiLWRpdmlkZXJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgIG9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWNvbXBhY3QtcGFnaW5hdG9yX19kaXZpZGVyXCJcbiAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICA+PC9zYmItZGl2aWRlclxuICAgICAgICA+JHt0aGlzLm51bWJlck9mUGFnZXMoKX08L3NwYW5cbiAgICAgID5cbiAgICBgO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclBhZ2luYXRvcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLWNvbXBhY3QtcGFnaW5hdG9yXCI+XG4gICAgICAgICR7dGhpcy5wYWdlclBvc2l0aW9uID09PSAnc3RhcnQnXG4gICAgICAgICAgPyBodG1sYCR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX0gJHt0aGlzLl9yZW5kZXJQYWdlTnVtYmVycygpfWBcbiAgICAgICAgICA6IGh0bWxgJHt0aGlzLl9yZW5kZXJQYWdlTnVtYmVycygpfSAke3RoaXMucmVuZGVyUHJldk5leHRCdXR0b25zKCl9YH1cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jb21wYWN0LXBhZ2luYXRvcic6IFNiYkNvbXBhY3RQYWdpbmF0b3JFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBY00sOEJBQTBCLE1BQUE7OzBCQUQvQixjQUFjLHVCQUF1QixDQUFDOzs7O29CQUNFLCtCQUErQixVQUFVO0FBQWpELEVBQUEsbUJBQVEsWUFBMEM7QUFBQSxJQU16RSxxQkFBa0I7QUFDeEIsYUFBTztBQUFBO0FBQUEsV0FFQSxLQUFLLFlBQVksQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBLHNCQUlQLEtBQUssUUFBUTtBQUFBO0FBQUEsV0FFeEIsS0FBSyxlQUFlO0FBQUE7QUFBQTtBQUFBLElBRzdCO0FBQUEsSUFFbUIsa0JBQWU7QUFDaEMsYUFBTztBQUFBO0FBQUEsVUFFRCxLQUFLLGtCQUFrQixVQUNyQixPQUFPLEtBQUssdUJBQXVCLElBQUksS0FBSyxtQkFBQSxDQUFvQixLQUNoRSxPQUFPLEtBQUssbUJBQUEsQ0FBb0IsSUFBSSxLQUFLLHNCQUFBLENBQXVCLEVBQUU7QUFBQTtBQUFBO0FBQUEsSUFHNUU7QUFBQTs7QUE1QkYsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQUN5QixHQUFBLFNBQXlCLE9BQ3pCLEdBQUEsU0FBaUM7QUFBQSxJQUN0RCxNQUFNO0FBQUEsRUFBQSxHQUhKLGtCQUFBLFlBQUEsdUJBQUEsR0FBMkI7OzsifQ==
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFjdC1wYWdpbmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGkxOG5QYWdlLCBpMThuUGFnaW5hdG9yT2YgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vY29tcGFjdC1wYWdpbmF0b3Iuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9kaXZpZGVyLmpzJztcbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHBhZ2luYXRvciBjb21wb25lbnQgaW4gY29tcGFjdCBtb2RlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItY29tcGFjdC1wYWdpbmF0b3InKVxuY2xhc3MgU2JiQ29tcGFjdFBhZ2luYXRvckVsZW1lbnQgZXh0ZW5kcyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgcGFnZTogJ3BhZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByaXZhdGUgX3JlbmRlclBhZ2VOdW1iZXJzKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+JHt0aGlzLnBhZ2VJbmRleCArIDF9PHNiYi1kaXZpZGVyXG4gICAgICAgICAgb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXG4gICAgICAgICAgY2xhc3M9XCJzYmItY29tcGFjdC1wYWdpbmF0b3JfX2RpdmlkZXJcIlxuICAgICAgICAgIHN0eWxlPVwiLS1zYmItZGl2aWRlci1jb2xvcjogY3VycmVudGNvbG9yXCJcbiAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICA+PC9zYmItZGl2aWRlclxuICAgICAgICA+JHt0aGlzLm51bWJlck9mUGFnZXMoKX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICAke2Ake3RoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbCA/IHRoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbCA6IGkxOG5QYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19ICR7dGhpcy5wYWdlSW5kZXggKyAxfSAke2kxOG5QYWdpbmF0b3JPZlt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMubnVtYmVyT2ZQYWdlcygpfWB9XG4gICAgICA8L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1jb21wYWN0LXBhZ2luYXRvclwiPlxuICAgICAgICAke3RoaXMucGFnZXJQb3NpdGlvbiA9PT0gJ3N0YXJ0J1xuICAgICAgICAgID8gaHRtbGAke3RoaXMucmVuZGVyUHJldk5leHRCdXR0b25zKCl9ICR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX1gXG4gICAgICAgICAgOiBodG1sYCR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX0gJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfWB9XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItY29tcGFjdC1wYWdpbmF0b3InOiBTYmJDb21wYWN0UGFnaW5hdG9yRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBaUJNLDhCQUEwQixNQUFBOzswQkFEL0IsY0FBYyx1QkFBdUIsQ0FBQzs7OztvQkFDRSwrQkFBK0IsVUFBVTtBQUFqRCxFQUFBLG1CQUFRLFlBQTBDO0FBQUEsSUFNekUscUJBQWtCO0FBQ3hCLGFBQU87QUFBQTtBQUFBLFdBRUEsS0FBSyxZQUFZLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQSxzQkFJUCxLQUFLLFFBQVE7QUFBQTtBQUFBLFdBRXhCLEtBQUssZUFBZTtBQUFBO0FBQUE7QUFBQSxVQUdyQixHQUFHLEtBQUsseUJBQXlCLEtBQUsseUJBQXlCLFNBQVMsS0FBSyxTQUFTLE9BQU8sQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksZ0JBQWdCLEtBQUssU0FBUyxPQUFPLENBQUMsSUFBSSxLQUFLLGNBQUEsQ0FBZSxFQUFFO0FBQUE7QUFBQTtBQUFBLElBR2hNO0FBQUEsSUFFbUIsa0JBQWU7QUFDaEMsYUFBTztBQUFBO0FBQUEsVUFFRCxLQUFLLGtCQUFrQixVQUNyQixPQUFPLEtBQUssdUJBQXVCLElBQUksS0FBSyxtQkFBQSxDQUFvQixLQUNoRSxPQUFPLEtBQUssbUJBQUEsQ0FBb0IsSUFBSSxLQUFLLHNCQUFBLENBQXVCLEVBQUU7QUFBQTtBQUFBO0FBQUEsSUFHNUU7QUFBQTs7QUEvQkYsaUJBQUEsTUFBQSxtQkFBQSxFQUFBLE9BQUEsV0FBQSxHQUFBLGtCQUFBLEVBQUEsTUFBQSxTQUFBLE1BQUEsV0FBQSxNQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsdUJBQUE7OztRQUN5QixHQUFBLFNBQXlCLE9BQ3pCLEdBQUEsU0FBaUM7QUFBQSxJQUN0RCxNQUFNO0FBQUEsRUFBQSxHQUhKLGtCQUFBLFlBQUEsdUJBQUEsR0FBMkI7OzsifQ==
@@ -13,6 +13,11 @@ export declare class SbbPaginatorElement extends SbbPaginatorElement_base {
13
13
  * the sbb-select for the pageSize change will be positioned oppositely, with the page numbers always in the center.
14
14
  */
15
15
  accessor pagerPosition: 'start' | 'end';
16
+ /**
17
+ * Accessibility label for the items per page. Defaults to `Items per page.`.
18
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
19
+ */
20
+ accessor accessibilityItemsPerPageLabel: string;
16
21
  private _markForFocus;
17
22
  protected updated(changedProperties: PropertyValues<this>): void;
18
23
  /** Returns the displayed page elements. */
@@ -1 +1 @@
1
- {"version":3,"file":"paginator.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/paginator/paginator/paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAWb,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AACzB,OAAO,6BAA6B,CAAC;;AAIrC;;GAEG;AACH,qBAEM,mBAAoB,SAAQ,wBAA0C;IAC1E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1C;IAEX,wCAAwC;IACxC,SACgB,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/C;;;OAGG;IACH,SAAmF,aAAa,EAC5F,OAAO,GACP,KAAK,CAAW;IAEpB,OAAO,CAAC,aAAa,CAAuB;cAEzB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAezE,2CAA2C;IAC3C,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA2B7B,uFAAuF;IACvF,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,0BAA0B;IA8BlC,OAAO,CAAC,kBAAkB;cAiCP,eAAe,IAAI,cAAc;CAiBrD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,mBAAmB,CAAC;KACtC;CACF"}
1
+ {"version":3,"file":"paginator.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/paginator/paginator/paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAYb,OAAO,qBAAqB,CAAC;AAC7B,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AACzB,OAAO,6BAA6B,CAAC;;AAIrC;;GAEG;AACH,qBAEM,mBAAoB,SAAQ,wBAA0C;IAC1E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1C;IAEX,wCAAwC;IACxC,SACgB,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/C;;;OAGG;IACH,SAAmF,aAAa,EAC5F,OAAO,GACP,KAAK,CAAW;IAEpB;;;OAGG;IACH,SAEgB,8BAA8B,EAAE,MAAM,CAAM;IAE5D,OAAO,CAAC,aAAa,CAAuB;cAEzB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAezE,2CAA2C;IAC3C,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IA2B7B,uFAAuF;IACvF,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,0BAA0B;IAkClC,OAAO,CAAC,kBAAkB;cAmCP,eAAe,IAAI,cAAc;CAiBrD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,eAAe,EAAE,mBAAmB,CAAC;KACtC;CACF"}
@@ -10,6 +10,7 @@ import { css, LitElement, nothing, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { repeat } from "lit/directives/repeat.js";
12
12
  import { sbbInputModalityDetector } from "../../core/a11y.js";
13
+ import { forceType } from "../../core/decorators.js";
13
14
  import { i18nItemsPerPage, i18nPage } from "../../core/i18n.js";
14
15
  import { SbbPaginatorCommonElementMixin } from "../common.js";
15
16
  import "../../form-field.js";
@@ -258,7 +259,7 @@ const style = css`*,
258
259
  }`;
259
260
  const MAX_PAGE_NUMBERS_DISPLAYED = 3;
260
261
  let SbbPaginatorElement = (() => {
261
- var _pageSizeOptions_accessor_storage, _pagerPosition_accessor_storage, _a;
262
+ var _pageSizeOptions_accessor_storage, _pagerPosition_accessor_storage, _accessibilityItemsPerPageLabel_accessor_storage, _a;
262
263
  let _classDecorators = [customElement("sbb-paginator")];
263
264
  let _classDescriptor;
264
265
  let _classExtraInitializers = [];
@@ -270,14 +271,19 @@ let SbbPaginatorElement = (() => {
270
271
  let _pagerPosition_decorators;
271
272
  let _pagerPosition_initializers = [];
272
273
  let _pagerPosition_extraInitializers = [];
274
+ let _accessibilityItemsPerPageLabel_decorators;
275
+ let _accessibilityItemsPerPageLabel_initializers = [];
276
+ let _accessibilityItemsPerPageLabel_extraInitializers = [];
273
277
  _a = class extends _classSuper {
274
278
  constructor() {
275
279
  super(...arguments);
276
280
  __privateAdd(this, _pageSizeOptions_accessor_storage);
277
281
  __privateAdd(this, _pagerPosition_accessor_storage);
282
+ __privateAdd(this, _accessibilityItemsPerPageLabel_accessor_storage);
278
283
  __privateSet(this, _pageSizeOptions_accessor_storage, __runInitializers(this, _pageSizeOptions_initializers, []));
279
284
  __privateSet(this, _pagerPosition_accessor_storage, (__runInitializers(this, _pageSizeOptions_extraInitializers), __runInitializers(this, _pagerPosition_initializers, "start")));
280
- this._markForFocus = (__runInitializers(this, _pagerPosition_extraInitializers), null);
285
+ __privateSet(this, _accessibilityItemsPerPageLabel_accessor_storage, (__runInitializers(this, _pagerPosition_extraInitializers), __runInitializers(this, _accessibilityItemsPerPageLabel_initializers, "")));
286
+ this._markForFocus = (__runInitializers(this, _accessibilityItemsPerPageLabel_extraInitializers), null);
281
287
  }
282
288
  /** The available `pageSize` choices. */
283
289
  get pageSizeOptions() {
@@ -296,6 +302,16 @@ let SbbPaginatorElement = (() => {
296
302
  set pagerPosition(value) {
297
303
  __privateSet(this, _pagerPosition_accessor_storage, value);
298
304
  }
305
+ /**
306
+ * Accessibility label for the items per page. Defaults to `Items per page.`.
307
+ * Can be set for cases like a carousel, where `slide` or `image` fits better.
308
+ */
309
+ get accessibilityItemsPerPageLabel() {
310
+ return __privateGet(this, _accessibilityItemsPerPageLabel_accessor_storage);
311
+ }
312
+ set accessibilityItemsPerPageLabel(value) {
313
+ __privateSet(this, _accessibilityItemsPerPageLabel_accessor_storage, value);
314
+ }
299
315
  updated(changedProperties) {
300
316
  super.updated(changedProperties);
301
317
  if (this._markForFocus && sbbInputModalityDetector.mostRecentModality === "keyboard") {
@@ -357,7 +373,9 @@ let SbbPaginatorElement = (() => {
357
373
  _renderItemPerPageTemplate() {
358
374
  return this.pageSizeOptions && this.pageSizeOptions.length > 0 ? html`
359
375
  <div class="sbb-paginator__page-size-options">
360
- <label for="select">${i18nItemsPerPage[this.language.current]}</label>
376
+ <label for="select"
377
+ >${this.accessibilityItemsPerPageLabel ? this.accessibilityItemsPerPageLabel : i18nItemsPerPage[this.language.current]}</label
378
+ >
361
379
  <sbb-form-field
362
380
  borderless
363
381
  width="collapse"
@@ -390,7 +408,7 @@ let SbbPaginatorElement = (() => {
390
408
  ?disabled=${this.disabled}
391
409
  class="sbb-paginator__page--number-item"
392
410
  data-index=${item}
393
- aria-label="${i18nPage[this.language.current]} ${item + 1}"
411
+ aria-label="${this.accessibilityPageLabel ? this.accessibilityPageLabel : i18nPage[this.language.current]} ${item + 1}"
394
412
  aria-current=${this.pageIndex === item ? "true" : nothing}
395
413
  @click=${() => this.pageIndex = item}
396
414
  @keyup=${this._handleKeyUp}
@@ -415,16 +433,20 @@ let SbbPaginatorElement = (() => {
415
433
  </div>
416
434
  `;
417
435
  }
418
- }, _pageSizeOptions_accessor_storage = new WeakMap(), _pagerPosition_accessor_storage = new WeakMap(), _classThis = _a, (() => {
436
+ }, _pageSizeOptions_accessor_storage = new WeakMap(), _pagerPosition_accessor_storage = new WeakMap(), _accessibilityItemsPerPageLabel_accessor_storage = new WeakMap(), _classThis = _a, (() => {
419
437
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
420
438
  _pageSizeOptions_decorators = [property({ attribute: "page-size-options", type: Array })];
421
439
  _pagerPosition_decorators = [property({ attribute: "pager-position", reflect: true })];
440
+ _accessibilityItemsPerPageLabel_decorators = [forceType(), property({ attribute: "accessibility-items-per-page-label" })];
422
441
  __esDecorate(_a, null, _pageSizeOptions_decorators, { kind: "accessor", name: "pageSizeOptions", static: false, private: false, access: { has: (obj) => "pageSizeOptions" in obj, get: (obj) => obj.pageSizeOptions, set: (obj, value) => {
423
442
  obj.pageSizeOptions = value;
424
443
  } }, metadata: _metadata }, _pageSizeOptions_initializers, _pageSizeOptions_extraInitializers);
425
444
  __esDecorate(_a, null, _pagerPosition_decorators, { kind: "accessor", name: "pagerPosition", static: false, private: false, access: { has: (obj) => "pagerPosition" in obj, get: (obj) => obj.pagerPosition, set: (obj, value) => {
426
445
  obj.pagerPosition = value;
427
446
  } }, metadata: _metadata }, _pagerPosition_initializers, _pagerPosition_extraInitializers);
447
+ __esDecorate(_a, null, _accessibilityItemsPerPageLabel_decorators, { kind: "accessor", name: "accessibilityItemsPerPageLabel", static: false, private: false, access: { has: (obj) => "accessibilityItemsPerPageLabel" in obj, get: (obj) => obj.accessibilityItemsPerPageLabel, set: (obj, value) => {
448
+ obj.accessibilityItemsPerPageLabel = value;
449
+ } }, metadata: _metadata }, _accessibilityItemsPerPageLabel_initializers, _accessibilityItemsPerPageLabel_extraInitializers);
428
450
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
429
451
  _classThis = _classDescriptor.value;
430
452
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -436,4 +458,4 @@ let SbbPaginatorElement = (() => {
436
458
  export {
437
459
  SbbPaginatorElement
438
460
  };
439
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgaTE4bkl0ZW1zUGVyUGFnZSwgaTE4blBhZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTZWxlY3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0LmpzJztcbmltcG9ydCB7IFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BhZ2luYXRvci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uLy4uL2Zvcm0tZmllbGQuanMnO1xuaW1wb3J0ICcuLi8uLi9zZWxlY3QuanMnO1xuaW1wb3J0ICcuLi8uLi9vcHRpb24uanMnO1xuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG5jb25zdCBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCA9IDM7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBwYWdpbmF0b3IgY29tcG9uZW50LlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItcGFnaW5hdG9yJylcbmNsYXNzIFNiYlBhZ2luYXRvckVsZW1lbnQgZXh0ZW5kcyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgcGFnZTogJ3BhZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgYXZhaWxhYmxlIGBwYWdlU2l6ZWAgY2hvaWNlcy4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncGFnZS1zaXplLW9wdGlvbnMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBQb3NpdGlvbiBvZiB0aGUgcHJldi9uZXh0IGJ1dHRvbnM6IGlmIGBwYWdlU2l6ZU9wdGlvbnNgIGlzIHNldCxcbiAgICogdGhlIHNiYi1zZWxlY3QgZm9yIHRoZSBwYWdlU2l6ZSBjaGFuZ2Ugd2lsbCBiZSBwb3NpdGlvbmVkIG9wcG9zaXRlbHksIHdpdGggdGhlIHBhZ2UgbnVtYmVycyBhbHdheXMgaW4gdGhlIGNlbnRlci5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3BhZ2VyLXBvc2l0aW9uJywgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgb3ZlcnJpZGUgYWNjZXNzb3IgcGFnZXJQb3NpdGlvbjpcbiAgICB8ICdzdGFydCdcbiAgICB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICBwcml2YXRlIF9tYXJrRm9yRm9jdXM6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLyoqIFRhYiBuYXZpZ2F0aW9uIGNhbiBmb3JjZSBhIHJlcmVuZGVyIHdoZW4gZWxsaXBzaXMgZWxlbWVudHMgbmVlZCB0byBiZSBkaXNwbGF5ZWQ7IHRoZSBmb2N1cyBtdXN0IHN0YXkgb24gdGhlIGNvcnJlY3QgZWxlbWVudC4gKi9cbiAgICBpZiAodGhpcy5fbWFya0ZvckZvY3VzICYmIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgIGNvbnN0IGZvY3VzRWxlbWVudCA9IHRoaXMuX2dldFZpc2libGVQYWdlcygpLmZpbmQoXG4gICAgICAgIChlKSA9PiB0aGlzLnBhZ2VJbmRleCA9PT0gK2UuZ2V0QXR0cmlidXRlKCdkYXRhLWluZGV4JykhLFxuICAgICAgKTtcbiAgICAgIGlmIChmb2N1c0VsZW1lbnQpIHtcbiAgICAgICAgKGZvY3VzRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIC8vIFJlc2V0IG1hcmsgZm9yIGZvY3VzXG4gICAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSBudWxsO1xuICAgIH1cbiAgfVxuICAvKiogUmV0dXJucyB0aGUgZGlzcGxheWVkIHBhZ2UgZWxlbWVudHMuICovXG4gIHByaXZhdGUgX2dldFZpc2libGVQYWdlcygpOiBFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvckFsbCgnLnNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgcGFnZXMgc2V0IGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcnVsZXM6XG4gICAqICAtIHRoZSBmaXJzdCBwYWdlIG11c3QgYWx3YXlzIGJlIHZpc2libGU7XG4gICAqICAtIHRoZSBsYXN0IHBhZ2UgbXVzdCBhbHdheXMgYmUgdmlzaWJsZTtcbiAgICogIC0gaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRURgIG90aGVyIHBhZ2VzLCBlbGxpcHNpcyBidXR0b24gbXVzdCBiZSB1c2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0VmlzaWJsZVBhZ2VzSW5kZXgoKTogKG51bWJlciB8ICdlbGxpcHNpcycpW10ge1xuICAgIGNvbnN0IHRvdGFsUGFnZXM6IG51bWJlciA9IHRoaXMubnVtYmVyT2ZQYWdlcygpO1xuICAgIGNvbnN0IGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciA9IHRoaXMucGFnZUluZGV4O1xuXG4gICAgaWYgKHRvdGFsUGFnZXMgPD0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmFuZ2UodG90YWxQYWdlcyk7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UGFnZUluZGV4IDwgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpIHtcbiAgICAgIHJldHVybiBbLi4udGhpcy5fcmFuZ2UoTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAxKSwgJ2VsbGlwc2lzJywgdG90YWxQYWdlcyAtIDFdO1xuICAgIH0gZWxzZSBpZiAoY3VycmVudFBhZ2VJbmRleCA+PSB0b3RhbFBhZ2VzIC0gTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIDAsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIC4uLnRoaXMuX3JhbmdlKE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEICsgMSwgdG90YWxQYWdlcyAtIDEgLSBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCksXG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAwLFxuICAgICAgICAnZWxsaXBzaXMnLFxuICAgICAgICBjdXJyZW50UGFnZUluZGV4IC0gMSxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCxcbiAgICAgICAgY3VycmVudFBhZ2VJbmRleCArIDEsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIHRvdGFsUGFnZXMgLSAxLFxuICAgICAgXTtcbiAgICB9XG4gIH1cblxuICAvKiogQ3JlYXRlcyBhbiBhcnJheSBvZiBjb25zZWN1dGl2ZSBudW1iZXJzIGdpdmVuIHRoZSBsZW5ndGggYW5kIHRoZSBzdGFydGluZyB2YWx1ZS4gKi9cbiAgcHJpdmF0ZSBfcmFuZ2UobGVuZ3RoOiBudW1iZXIsIG9mZnNldDogbnVtYmVyID0gMCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoXywgaykgPT4gayArIG9mZnNldCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgIT09ICcgJyAmJiBldmVudC5rZXkgIT09ICdFbnRlcicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fZ2V0VmlzaWJsZVBhZ2VzKCkuZmluZCgoZTogRWxlbWVudCkgPT4gZSA9PT0gZXZlbnQudGFyZ2V0KTtcbiAgICBpZiAoY3VycmVudCkge1xuICAgICAgdGhpcy5fbWFya0ZvckZvY3VzID0gdGhpcy5wYWdlSW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB8IHR5cGVvZiBub3RoaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlU2l6ZU9wdGlvbnMgJiYgdGhpcy5wYWdlU2l6ZU9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgPyBodG1sYFxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLXNpemUtb3B0aW9uc1wiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlbGVjdFwiPiR7aTE4bkl0ZW1zUGVyUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvbGFiZWw+XG4gICAgICAgICAgICA8c2JiLWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgYm9yZGVybGVzc1xuICAgICAgICAgICAgICB3aWR0aD1cImNvbGxhcHNlXCJcbiAgICAgICAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNiYi1zZWxlY3RcbiAgICAgICAgICAgICAgICBpZD1cInNlbGVjdFwiXG4gICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICB2YWx1ZT0ke3RoaXMucGFnZVNpemVPcHRpb25zPy5maW5kKChlKSA9PiBlID09PSB0aGlzLnBhZ2VTaXplKSA/P1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemVPcHRpb25zIVswXX1cbiAgICAgICAgICAgICAgICBAY2hhbmdlPSR7KGU6IEV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgKHRoaXMucGFnZVNpemUgPSArKChlLnRhcmdldCBhcyBTYmJTZWxlY3RFbGVtZW50KS52YWx1ZSBhcyBzdHJpbmcpKX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgICAgdGhpcy5wYWdlU2l6ZU9wdGlvbnMhLFxuICAgICAgICAgICAgICAgICAgKGVsZW1lbnQpID0+IGh0bWxgPHNiYi1vcHRpb24gdmFsdWU9JHtlbGVtZW50fT4ke2VsZW1lbnR9PC9zYmItb3B0aW9uPmAsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC9zYmItc2VsZWN0PlxuICAgICAgICAgICAgPC9zYmItZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYFxuICAgICAgOiBub3RoaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyUGFnZU51bWJlcnMoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHVsIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZXNcIj5cbiAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgdGhpcy5fZ2V0VmlzaWJsZVBhZ2VzSW5kZXgoKSxcbiAgICAgICAgICAoaXRlbTogbnVtYmVyIHwgJ2VsbGlwc2lzJyk6IFRlbXBsYXRlUmVzdWx0ID0+XG4gICAgICAgICAgICBpdGVtID09PSAnZWxsaXBzaXMnXG4gICAgICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tZWxsaXBzaXMtaXRlbVwiPuKApjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgYFxuICAgICAgICAgICAgICA6IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgID9kYXRhLXNlbGVjdGVkPSR7dGhpcy5wYWdlSW5kZXggPT09IGl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLW51bWJlci1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhLWluZGV4PSR7aXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiJHtpMThuUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke2l0ZW0gKyAxfVwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PSR7dGhpcy5wYWdlSW5kZXggPT09IGl0ZW0gPyAndHJ1ZScgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+ICh0aGlzLnBhZ2VJbmRleCA9IGl0ZW0pfVxuICAgICAgICAgICAgICAgICAgICAgIEBrZXl1cD0ke3RoaXMuX2hhbmRsZUtleVVwfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbS1sYWJlbFwiPiR7aXRlbSArIDF9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgYCxcbiAgICAgICAgKX1cbiAgICAgIDwvdWw+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wYWdpbmF0b3JcIj5cbiAgICAgICAgJHtcbiAgICAgICAgICB0aGlzLnBhZ2VyUG9zaXRpb24gPT09ICdzdGFydCdcbiAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyUHJldk5leHRCdXR0b25zKCl9ICR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJJdGVtUGVyUGFnZVRlbXBsYXRlKCl9YFxuICAgICAgICAgICAgOiBodG1sYCR7dGhpcy5fcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpfVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fd3JhcHBpbmctZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX0gJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgIH08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcGFnaW5hdG9yJzogU2JiUGFnaW5hdG9yRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxNQUFNLDZCQUE2QjtJQU83Qix1QkFBbUIsTUFBQTs7MEJBRHhCLGNBQWMsZUFBZSxDQUFDOzs7O29CQUNHLCtCQUErQixVQUFVOzs7Ozs7O0FBQWpELEVBQUEsbUJBQVEsWUFBMEM7QUFBQTs7QUFRMUU7QUFNMEQ7QUFOMUMseUJBQUEsbUNBQUEsa0JBQUEsTUFBQSwrQkFBNEIsQ0FBQSxDQUFFO0FBTXFDLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsa0NBQUEsR0FBQSxrQkFB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
461
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3BhZ2luYXRvci9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBMaXRFbGVtZW50LFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZXBlYXQgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZXBlYXQuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5JdGVtc1BlclBhZ2UsIGkxOG5QYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiU2VsZWN0RWxlbWVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC5qcyc7XG5pbXBvcnQgeyBTYmJQYWdpbmF0b3JDb21tb25FbGVtZW50TWl4aW4gfSBmcm9tICcuLi9jb21tb24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9wYWdpbmF0b3Iuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9mb3JtLWZpZWxkLmpzJztcbmltcG9ydCAnLi4vLi4vc2VsZWN0LmpzJztcbmltcG9ydCAnLi4vLi4vb3B0aW9uLmpzJztcbmltcG9ydCAnLi4vLi4vc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcblxuY29uc3QgTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgPSAzO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFnaW5hdG9yIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXBhZ2luYXRvcicpXG5jbGFzcyBTYmJQYWdpbmF0b3JFbGVtZW50IGV4dGVuZHMgU2JiUGFnaW5hdG9yQ29tbW9uRWxlbWVudE1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHBhZ2U6ICdwYWdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIGF2YWlsYWJsZSBgcGFnZVNpemVgIGNob2ljZXMuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3BhZ2Utc2l6ZS1vcHRpb25zJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBbXTtcblxuICAvKipcbiAgICogUG9zaXRpb24gb2YgdGhlIHByZXYvbmV4dCBidXR0b25zOiBpZiBgcGFnZVNpemVPcHRpb25zYCBpcyBzZXQsXG4gICAqIHRoZSBzYmItc2VsZWN0IGZvciB0aGUgcGFnZVNpemUgY2hhbmdlIHdpbGwgYmUgcG9zaXRpb25lZCBvcHBvc2l0ZWx5LCB3aXRoIHRoZSBwYWdlIG51bWJlcnMgYWx3YXlzIGluIHRoZSBjZW50ZXIuXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwYWdlci1wb3NpdGlvbicsIHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHBhZ2VyUG9zaXRpb246XG4gICAgfCAnc3RhcnQnXG4gICAgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIEFjY2Vzc2liaWxpdHkgbGFiZWwgZm9yIHRoZSBpdGVtcyBwZXIgcGFnZS4gRGVmYXVsdHMgdG8gYEl0ZW1zIHBlciBwYWdlLmAuXG4gICAqIENhbiBiZSBzZXQgZm9yIGNhc2VzIGxpa2UgYSBjYXJvdXNlbCwgd2hlcmUgYHNsaWRlYCBvciBgaW1hZ2VgIGZpdHMgYmV0dGVyLlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktaXRlbXMtcGVyLXBhZ2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5SXRlbXNQZXJQYWdlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgX21hcmtGb3JGb2N1czogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICAvKiogVGFiIG5hdmlnYXRpb24gY2FuIGZvcmNlIGEgcmVyZW5kZXIgd2hlbiBlbGxpcHNpcyBlbGVtZW50cyBuZWVkIHRvIGJlIGRpc3BsYXllZDsgdGhlIGZvY3VzIG11c3Qgc3RheSBvbiB0aGUgY29ycmVjdCBlbGVtZW50LiAqL1xuICAgIGlmICh0aGlzLl9tYXJrRm9yRm9jdXMgJiYgc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgY29uc3QgZm9jdXNFbGVtZW50ID0gdGhpcy5fZ2V0VmlzaWJsZVBhZ2VzKCkuZmluZChcbiAgICAgICAgKGUpID0+IHRoaXMucGFnZUluZGV4ID09PSArZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5kZXgnKSEsXG4gICAgICApO1xuICAgICAgaWYgKGZvY3VzRWxlbWVudCkge1xuICAgICAgICAoZm9jdXNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgICAgfVxuICAgICAgLy8gUmVzZXQgbWFyayBmb3IgZm9jdXNcbiAgICAgIHRoaXMuX21hcmtGb3JGb2N1cyA9IG51bGw7XG4gICAgfVxuICB9XG4gIC8qKiBSZXR1cm5zIHRoZSBkaXNwbGF5ZWQgcGFnZSBlbGVtZW50cy4gKi9cbiAgcHJpdmF0ZSBfZ2V0VmlzaWJsZVBhZ2VzKCk6IEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yQWxsKCcuc2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyLWl0ZW0nKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBwYWdlcyBzZXQgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBydWxlczpcbiAgICogIC0gdGhlIGZpcnN0IHBhZ2UgbXVzdCBhbHdheXMgYmUgdmlzaWJsZTtcbiAgICogIC0gdGhlIGxhc3QgcGFnZSBtdXN0IGFsd2F5cyBiZSB2aXNpYmxlO1xuICAgKiAgLSBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRGAgb3RoZXIgcGFnZXMsIGVsbGlwc2lzIGJ1dHRvbiBtdXN0IGJlIHVzZWQuXG4gICAqL1xuICBwcml2YXRlIF9nZXRWaXNpYmxlUGFnZXNJbmRleCgpOiAobnVtYmVyIHwgJ2VsbGlwc2lzJylbXSB7XG4gICAgY29uc3QgdG90YWxQYWdlczogbnVtYmVyID0gdGhpcy5udW1iZXJPZlBhZ2VzKCk7XG4gICAgY29uc3QgY3VycmVudFBhZ2VJbmRleDogbnVtYmVyID0gdGhpcy5wYWdlSW5kZXg7XG5cbiAgICBpZiAodG90YWxQYWdlcyA8PSBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCArIDIpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yYW5nZSh0b3RhbFBhZ2VzKTtcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRQYWdlSW5kZXggPCBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCkge1xuICAgICAgcmV0dXJuIFsuLi50aGlzLl9yYW5nZShNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCArIDEpLCAnZWxsaXBzaXMnLCB0b3RhbFBhZ2VzIC0gMV07XG4gICAgfSBlbHNlIGlmIChjdXJyZW50UGFnZUluZGV4ID49IHRvdGFsUGFnZXMgLSBNQVhfUEFHRV9OVU1CRVJTX0RJU1BMQVlFRCkge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgMCxcbiAgICAgICAgJ2VsbGlwc2lzJyxcbiAgICAgICAgLi4udGhpcy5fcmFuZ2UoTUFYX1BBR0VfTlVNQkVSU19ESVNQTEFZRUQgKyAxLCB0b3RhbFBhZ2VzIC0gMSAtIE1BWF9QQUdFX05VTUJFUlNfRElTUExBWUVEKSxcbiAgICAgIF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIDAsXG4gICAgICAgICdlbGxpcHNpcycsXG4gICAgICAgIGN1cnJlbnRQYWdlSW5kZXggLSAxLFxuICAgICAgICBjdXJyZW50UGFnZUluZGV4LFxuICAgICAgICBjdXJyZW50UGFnZUluZGV4ICsgMSxcbiAgICAgICAgJ2VsbGlwc2lzJyxcbiAgICAgICAgdG90YWxQYWdlcyAtIDEsXG4gICAgICBdO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDcmVhdGVzIGFuIGFycmF5IG9mIGNvbnNlY3V0aXZlIG51bWJlcnMgZ2l2ZW4gdGhlIGxlbmd0aCBhbmQgdGhlIHN0YXJ0aW5nIHZhbHVlLiAqL1xuICBwcml2YXRlIF9yYW5nZShsZW5ndGg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIgPSAwKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIChfLCBrKSA9PiBrICsgb2Zmc2V0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJyAnICYmIGV2ZW50LmtleSAhPT0gJ0VudGVyJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9nZXRWaXNpYmxlUGFnZXMoKS5maW5kKChlOiBFbGVtZW50KSA9PiBlID09PSBldmVudC50YXJnZXQpO1xuICAgIGlmIChjdXJyZW50KSB7XG4gICAgICB0aGlzLl9tYXJrRm9yRm9jdXMgPSB0aGlzLnBhZ2VJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJJdGVtUGVyUGFnZVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLnBhZ2VTaXplT3B0aW9ucyAmJiB0aGlzLnBhZ2VTaXplT3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICA/IGh0bWxgXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2Utc2l6ZS1vcHRpb25zXCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VsZWN0XCJcbiAgICAgICAgICAgICAgPiR7dGhpcy5hY2Nlc3NpYmlsaXR5SXRlbXNQZXJQYWdlTGFiZWxcbiAgICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eUl0ZW1zUGVyUGFnZUxhYmVsXG4gICAgICAgICAgICAgICAgOiBpMThuSXRlbXNQZXJQYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19PC9sYWJlbFxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHNiYi1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgIGJvcmRlcmxlc3NcbiAgICAgICAgICAgICAgd2lkdGg9XCJjb2xsYXBzZVwiXG4gICAgICAgICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgICAgICAgIHNpemU9JHt0aGlzLnNpemV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzYmItc2VsZWN0XG4gICAgICAgICAgICAgICAgaWQ9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgdmFsdWU9JHt0aGlzLnBhZ2VTaXplT3B0aW9ucz8uZmluZCgoZSkgPT4gZSA9PT0gdGhpcy5wYWdlU2l6ZSkgPz9cbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2VTaXplT3B0aW9ucyFbMF19XG4gICAgICAgICAgICAgICAgQGNoYW5nZT0keyhlOiBFdmVudCkgPT5cbiAgICAgICAgICAgICAgICAgICh0aGlzLnBhZ2VTaXplID0gKygoZS50YXJnZXQgYXMgU2JiU2VsZWN0RWxlbWVudCkudmFsdWUgYXMgc3RyaW5nKSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAke3JlcGVhdChcbiAgICAgICAgICAgICAgICAgIHRoaXMucGFnZVNpemVPcHRpb25zISxcbiAgICAgICAgICAgICAgICAgIChlbGVtZW50KSA9PiBodG1sYDxzYmItb3B0aW9uIHZhbHVlPSR7ZWxlbWVudH0+JHtlbGVtZW50fTwvc2JiLW9wdGlvbj5gLFxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvc2JiLXNlbGVjdD5cbiAgICAgICAgICAgIDwvc2JiLWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIGBcbiAgICAgIDogbm90aGluZztcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlclBhZ2VOdW1iZXJzKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDx1bCBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2VzXCI+XG4gICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgIHRoaXMuX2dldFZpc2libGVQYWdlc0luZGV4KCksXG4gICAgICAgICAgKGl0ZW06IG51bWJlciB8ICdlbGxpcHNpcycpOiBUZW1wbGF0ZVJlc3VsdCA9PlxuICAgICAgICAgICAgaXRlbSA9PT0gJ2VsbGlwc2lzJ1xuICAgICAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1lbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2UtLWVsbGlwc2lzLWl0ZW1cIj7igKY8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAgICAgOiBodG1sYFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fcGFnZS0tbnVtYmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICA/ZGF0YS1zZWxlY3RlZD0ke3RoaXMucGFnZUluZGV4ID09PSBpdGVtfVxuICAgICAgICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS1pbmRleD0ke2l0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIiR7dGhpcy5hY2Nlc3NpYmlsaXR5UGFnZUxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpMThuUGFnZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke2l0ZW0gKyAxfVwiXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PSR7dGhpcy5wYWdlSW5kZXggPT09IGl0ZW0gPyAndHJ1ZScgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgICAgICAgIEBjbGljaz0keygpID0+ICh0aGlzLnBhZ2VJbmRleCA9IGl0ZW0pfVxuICAgICAgICAgICAgICAgICAgICAgIEBrZXl1cD0ke3RoaXMuX2hhbmRsZUtleVVwfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGFnaW5hdG9yX19wYWdlLS1udW1iZXItaXRlbS1sYWJlbFwiPiR7aXRlbSArIDF9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgYCxcbiAgICAgICAgKX1cbiAgICAgIDwvdWw+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wYWdpbmF0b3JcIj5cbiAgICAgICAgJHtcbiAgICAgICAgICB0aGlzLnBhZ2VyUG9zaXRpb24gPT09ICdzdGFydCdcbiAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3dyYXBwaW5nLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAke3RoaXMucmVuZGVyUHJldk5leHRCdXR0b25zKCl9ICR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJJdGVtUGVyUGFnZVRlbXBsYXRlKCl9YFxuICAgICAgICAgICAgOiBodG1sYCR7dGhpcy5fcmVuZGVySXRlbVBlclBhZ2VUZW1wbGF0ZSgpfVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBhZ2luYXRvcl9fd3JhcHBpbmctZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX0gJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgIH08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcGFnaW5hdG9yJzogU2JiUGFnaW5hdG9yRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsTUFBTSw2QkFBNkI7SUFPN0IsdUJBQW1CLE1BQUE7OzBCQUR4QixjQUFjLGVBQWUsQ0FBQzs7OztvQkFDRywrQkFBK0IsVUFBVTs7Ozs7Ozs7OztBQUFqRCxFQUFBLG1CQUFRLFlBQTBDO0FBQUE7O0FBUTFFO0FBTTBEO0FBVTFEO0FBaEJnQix5QkFBQSxtQ0FBQSxrQkFBQSxNQUFBLCtCQUE0QixDQUFBLENBQUU7QUFNcUMseUJBQUEsa0NBQUEsa0JBQUEsTUFBQSxrQ0FBQSxHQUFBLGtCQUFBLE1BQUEsNkJBRXZFLE9BQU87QUFRSCx5QkFBQSxtREFBQSxrQkFBQSxNQUFBLGdDQUFBLEdBQUEsa0JBQUEsTUFBQSw4Q0FBeUMsRUFBRTtBQUVuRCxXQUFBLGlCQUFhLGtCQUFBLE1BQUEsaURBQUEsR0FBa0I7QUFBQSxJQTZKekM7QUFBQTtBQUFBLElBL0tFLElBQWdCLGtCQUFlO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUEvQixJQUFnQixnQkFBZSxPQUFBO0FBQUEseUJBQUEsbUNBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQTtBQUFBO0FB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
@@ -11,7 +11,7 @@ import { SbbTitleBase } from "../../title.js";
11
11
  import { css } from "lit";
12
12
  const style = css`:host {
13
13
  hyphens: auto;
14
- padding-block-start: calc(0.5 * (var(--sbb-sidebar__close-button-size) - var(--sbb-title-font-size) * var(--sbb-title-line-height)));
14
+ padding-block-start: calc(0.5 * (var(--sbb-sidebar__close-button-size) - 1em * var(--sbb-typo-line-height-titles)));
15
15
  min-height: var(--sbb-sidebar__close-button-size);
16
16
  }`;
17
17
  let SbbSidebarTitleElement = (() => {