@sbb-esta/lyne-elements 3.3.0 → 3.4.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 (147) hide show
  1. package/autocomplete/autocomplete-base-element.d.ts +3 -4
  2. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  3. package/autocomplete/autocomplete-base-element.js +88 -83
  4. package/autocomplete/autocomplete.component.d.ts +0 -1
  5. package/autocomplete/autocomplete.component.d.ts.map +1 -1
  6. package/autocomplete/autocomplete.component.js +26 -26
  7. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +0 -2
  8. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  9. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +34 -44
  10. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +3 -2
  11. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  12. package/checkbox/checkbox-panel/checkbox-panel.component.js +36 -33
  13. package/core/i18n/i18n.d.ts +5 -0
  14. package/core/i18n/i18n.d.ts.map +1 -1
  15. package/core/i18n/i18n.js +108 -84
  16. package/core/i18n.js +84 -80
  17. package/core/mixins/element-internals-mixin.js +1 -1
  18. package/core/mixins/form-associated-input-mixin.d.ts +1 -0
  19. package/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  20. package/core/mixins/form-associated-input-mixin.js +2 -2
  21. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  22. package/core/mixins/form-associated-mixin.js +22 -16
  23. package/core/styles/core/mediaqueries.scss +1 -1
  24. package/core/styles/core.scss +34 -1
  25. package/core/styles/mixins/typo.scss +88 -41
  26. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +530 -0
  27. package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +1123 -0
  28. package/core.css +37 -7
  29. package/custom-elements.json +2063 -554
  30. package/date-input/date-input.component.d.ts +5 -0
  31. package/date-input/date-input.component.d.ts.map +1 -1
  32. package/date-input/date-input.component.js +7 -0
  33. package/development/autocomplete/autocomplete-base-element.d.ts +3 -4
  34. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  35. package/development/autocomplete/autocomplete-base-element.js +30 -15
  36. package/development/autocomplete/autocomplete.component.d.ts +0 -1
  37. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  38. package/development/autocomplete/autocomplete.component.js +16 -21
  39. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts +0 -2
  40. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  41. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +26 -35
  42. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts +3 -2
  43. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  44. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +10 -4
  45. package/development/core/i18n/i18n.d.ts +5 -0
  46. package/development/core/i18n/i18n.d.ts.map +1 -1
  47. package/development/core/i18n/i18n.js +38 -10
  48. package/development/core/i18n.js +5 -1
  49. package/development/core/mixins/element-internals-mixin.js +2 -2
  50. package/development/core/mixins/form-associated-input-mixin.d.ts +1 -0
  51. package/development/core/mixins/form-associated-input-mixin.d.ts.map +1 -1
  52. package/development/core/mixins/form-associated-input-mixin.js +3 -2
  53. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  54. package/development/core/mixins/form-associated-mixin.js +14 -7
  55. package/development/date-input/date-input.component.d.ts +5 -0
  56. package/development/date-input/date-input.component.d.ts.map +1 -1
  57. package/development/date-input/date-input.component.js +8 -1
  58. package/development/dialog/dialog-title/dialog-title.component.js +2 -6
  59. package/development/file-selector/common/file-selector-common.d.ts +2 -1
  60. package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
  61. package/development/file-selector/common/file-selector-common.js +64 -19
  62. package/development/file-selector/common.js +1 -1
  63. package/development/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  64. package/development/file-selector/file-selector/file-selector.component.js +12 -17
  65. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +0 -7
  66. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  67. package/development/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +32 -76
  68. package/development/{file-selector-common-csww18o8.js → file-selector-common-BxXdRZxt.js} +3 -3
  69. package/development/file-selector.js +1 -1
  70. package/development/form-field/form-field/form-field.component.d.ts +6 -3
  71. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  72. package/development/form-field/form-field/form-field.component.js +4 -6
  73. package/development/header/common/header-action-common.js +4 -1
  74. package/development/navigation/common/navigation-action-common.js +5 -8
  75. package/development/navigation/navigation/navigation.component.js +21 -4
  76. package/development/navigation/navigation-marker/navigation-marker.component.js +5 -8
  77. package/development/navigation/navigation-section/navigation-section.component.js +6 -19
  78. package/development/notification/notification.component.js +1 -1
  79. package/development/option/option/option-base-element.d.ts.map +1 -1
  80. package/development/option/option/option-base-element.js +2 -1
  81. package/development/paginator/common/paginator-common.d.ts +3 -0
  82. package/development/paginator/common/paginator-common.d.ts.map +1 -1
  83. package/development/paginator/common/paginator-common.js +68 -10
  84. package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  85. package/development/paginator/compact-paginator/compact-paginator.component.js +8 -3
  86. package/development/paginator/paginator/paginator.component.d.ts +5 -0
  87. package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
  88. package/development/paginator/paginator/paginator.component.js +28 -6
  89. package/development/sbb-tokens-CVLcOi-S.js +1 -1
  90. package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
  91. package/development/tabs/tab-group/tab-group.component.js +3 -4
  92. package/development/time-input/time-input.component.d.ts +5 -0
  93. package/development/time-input/time-input.component.d.ts.map +1 -1
  94. package/development/time-input/time-input.component.js +8 -1
  95. package/development/title/title-base.js +14 -67
  96. package/development/title/title.component.js +17 -14
  97. package/development/toast/toast.component.js +6 -9
  98. package/development/toggle-check/toggle-check.component.d.ts +2 -2
  99. package/development/toggle-check/toggle-check.component.d.ts.map +1 -1
  100. package/development/toggle-check/toggle-check.component.js +4 -4
  101. package/development/train/train-wagon/train-wagon.component.js +6 -9
  102. package/dialog/dialog-title/dialog-title.component.js +1 -1
  103. package/file-selector/common/file-selector-common.d.ts +2 -1
  104. package/file-selector/common/file-selector-common.d.ts.map +1 -1
  105. package/file-selector/common/file-selector-common.js +88 -63
  106. package/file-selector/common.js +1 -1
  107. package/file-selector/file-selector/file-selector.component.d.ts.map +1 -1
  108. package/file-selector/file-selector/file-selector.component.js +26 -31
  109. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts +0 -7
  110. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.d.ts.map +1 -1
  111. package/file-selector/file-selector-dropzone/file-selector-dropzone.component.js +50 -74
  112. package/file-selector-common-Cn6U8goV.js +5 -0
  113. package/file-selector.js +1 -1
  114. package/form-field/form-field/form-field.component.d.ts +6 -3
  115. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  116. package/form-field/form-field/form-field.component.js +3 -5
  117. package/header/common/header-action-common.js +1 -1
  118. package/navigation/common/navigation-action-common.js +8 -8
  119. package/navigation/navigation/navigation.component.js +1 -1
  120. package/navigation/navigation-marker/navigation-marker.component.js +1 -1
  121. package/navigation/navigation-section/navigation-section.component.js +14 -14
  122. package/notification/notification.component.js +1 -1
  123. package/option/option/option-base-element.d.ts.map +1 -1
  124. package/option/option/option-base-element.js +18 -18
  125. package/package.json +1 -1
  126. package/paginator/common/paginator-common.d.ts +3 -0
  127. package/paginator/common/paginator-common.d.ts.map +1 -1
  128. package/paginator/common/paginator-common.js +103 -63
  129. package/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
  130. package/paginator/compact-paginator/compact-paginator.component.js +13 -8
  131. package/paginator/paginator/paginator.component.d.ts +5 -0
  132. package/paginator/paginator/paginator.component.d.ts.map +1 -1
  133. package/paginator/paginator/paginator.component.js +77 -61
  134. package/sidebar/sidebar-title/sidebar-title.component.js +14 -14
  135. package/standard-theme.css +37 -7
  136. package/tabs/tab-group/tab-group.component.js +7 -7
  137. package/time-input/time-input.component.d.ts +5 -0
  138. package/time-input/time-input.component.d.ts.map +1 -1
  139. package/time-input/time-input.component.js +10 -3
  140. package/title/title-base.js +33 -33
  141. package/title/title.component.js +9 -9
  142. package/toast/toast.component.js +1 -1
  143. package/toggle-check/toggle-check.component.d.ts +2 -2
  144. package/toggle-check/toggle-check.component.d.ts.map +1 -1
  145. package/toggle-check/toggle-check.component.js +28 -28
  146. package/train/train-wagon/train-wagon.component.js +6 -6
  147. package/file-selector-common-Dw5d8vA4.js +0 -5
@@ -15,11 +15,9 @@ import { SbbLanguageController } from "../../core/controllers.js";
15
15
  import { forceType } from "../../core/decorators.js";
16
16
  import { isLean } from "../../core/dom.js";
17
17
  import { forwardEvent } from "../../core/eventing.js";
18
- import { i18nFileSelectorCurrentlySelected, i18nFileSelectorDeleteFile, i18nFileSelectorButtonLabel } from "../../core/i18n.js";
18
+ import { i18nFileSelectorButtonLabelMultiple, i18nFileSelectorButtonLabel, i18nFileSelectorCurrentlySelected, i18nFileSelectorDeleteFile } from "../../core/i18n.js";
19
19
  import { SbbDisabledMixin, SbbFormAssociatedMixin, SbbElementInternalsMixin } from "../../core/mixins.js";
20
20
  import "../../button/secondary-button.js";
21
- import "../../button/secondary-button-static.js";
22
- import "../../icon.js";
23
21
  const SbbFileSelectorCommonElementMixin = (superclass) => {
24
22
  let SbbFileSelectorCommonElement = (() => {
25
23
  var _size_accessor_storage, _multiple_accessor_storage, _multipleMode_accessor_storage, _accept_accessor_storage, _accessibilityLabel_accessor_storage, _a;
@@ -58,6 +56,7 @@ const SbbFileSelectorCommonElementMixin = (superclass) => {
58
56
  this._files = (__runInitializers(this, _accessibilityLabel_extraInitializers), []);
59
57
  this._suffixes = ["B", "kB", "MB", "GB", "TB"];
60
58
  this.language = new SbbLanguageController(this);
59
+ this._counter = 0;
61
60
  }
62
61
  /**
63
62
  * Size variant, either s or m.
@@ -158,10 +157,14 @@ const SbbFileSelectorCommonElementMixin = (superclass) => {
158
157
  forwardEvent(event, this);
159
158
  }
160
159
  createFileList(files) {
160
+ const fileArray = Array.from(files);
161
+ if (!this.multiple && files.length > 1 || this.accept && fileArray.some((file) => !this.accept.split(",").some((a) => file.name.endsWith(a.trim())))) {
162
+ return;
163
+ }
161
164
  if (!this.multiple || this.multipleMode !== "persistent" || this.files.length === 0) {
162
- this.files = Array.from(files);
165
+ this.files = fileArray;
163
166
  } else {
164
- this.files = Array.from(files).filter(
167
+ this.files = fileArray.filter(
165
168
  // Remove duplicates
166
169
  (newFile) => this.files.findIndex((oldFile) => this._checkFileEquality(newFile, oldFile)) === -1
167
170
  ).concat(this.files);
@@ -169,6 +172,9 @@ const SbbFileSelectorCommonElementMixin = (superclass) => {
169
172
  this._updateA11yLiveRegion();
170
173
  this._dispatchFileChangedEvent();
171
174
  }
175
+ getButtonLabel() {
176
+ return this.multiple ? i18nFileSelectorButtonLabelMultiple[this.language.current] : i18nFileSelectorButtonLabel[this.language.current];
177
+ }
172
178
  _removeFile(file) {
173
179
  this.files = this.files.filter((f) => !this._checkFileEquality(file, f));
174
180
  this._updateA11yLiveRegion();
@@ -214,24 +220,63 @@ const SbbFileSelectorCommonElementMixin = (superclass) => {
214
220
  </${unsafeStatic(TAG_NAME.WRAPPER)}>
215
221
  `;
216
222
  }
223
+ _onDragEnter(event) {
224
+ this._counter++;
225
+ if (!this.disabled && !this.formDisabled) {
226
+ this._setDragState(event.target, true);
227
+ this._blockEvent(event);
228
+ }
229
+ }
230
+ _onDragLeave(event) {
231
+ this._counter--;
232
+ if (!this.disabled && !this.formDisabled && event.target === this._dragTarget && this._counter === 0) {
233
+ this._setDragState();
234
+ this._blockEvent(event);
235
+ }
236
+ }
237
+ _onFileDrop(event) {
238
+ this._counter = 0;
239
+ if (!this.disabled && !this.formDisabled) {
240
+ this._setDragState();
241
+ this._blockEvent(event);
242
+ this.createFileList(event.dataTransfer.files);
243
+ }
244
+ }
245
+ _blockEvent(event) {
246
+ event.stopPropagation();
247
+ event.preventDefault();
248
+ }
249
+ _setDragState(dragTarget = void 0, isDragEnter = false) {
250
+ this._dragTarget = dragTarget;
251
+ this.toggleState("active", isDragEnter);
252
+ this.loadButton.toggleAttribute("data-active", isDragEnter);
253
+ }
217
254
  render() {
218
- const ariaLabel = this.accessibilityLabel ? `${i18nFileSelectorButtonLabel[this.language.current]} - ${this.accessibilityLabel}` : void 0;
255
+ const ariaLabel = this.accessibilityLabel ? `${this.getButtonLabel()} - ${this.accessibilityLabel}` : void 0;
219
256
  return html`
220
257
  <div class="sbb-file-selector">
221
- ${this.renderTemplate(html`<input
222
- class="sbb-file-selector__visually-hidden"
223
- type="file"
224
- ?disabled="${this.disabled || this.formDisabled}"
225
- ?multiple="${this.multiple}"
226
- accept="${this.accept || nothing}"
227
- aria-label="${ariaLabel || nothing}"
228
- @change="${this._readFiles}"
229
- @focus="${this._onFocus}"
230
- @blur="${this._onBlur}"
231
- ${ref((el) => {
258
+ <div
259
+ class="sbb-file-selector__input-container"
260
+ @dragenter=${this._onDragEnter}
261
+ @dragover=${this._blockEvent}
262
+ @dragleave=${this._onDragLeave}
263
+ @drop=${this._onFileDrop}
264
+ >
265
+ ${this.renderTemplate(html`<input
266
+ class="sbb-file-selector__visually-hidden"
267
+ type="file"
268
+ ?disabled="${this.disabled || this.formDisabled}"
269
+ ?multiple="${this.multiple}"
270
+ accept="${this.accept || nothing}"
271
+ aria-label="${ariaLabel || nothing}"
272
+ @change="${this._readFiles}"
273
+ @focus="${this._onFocus}"
274
+ @blur="${this._onBlur}"
275
+ ${ref((el) => {
232
276
  this._hiddenInput = el;
233
277
  })}
234
- />`)}
278
+ />`)}
279
+ </div>
235
280
  <p
236
281
  role="status"
237
282
  class="sbb-file-selector__visually-hidden"
@@ -284,4 +329,4 @@ const SbbFileSelectorCommonElementMixin = (superclass) => {
284
329
  export {
285
330
  SbbFileSelectorCommonElementMixin
286
331
  };
287
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci1jb21tb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9maWxlLXNlbGVjdG9yL2NvbW1vbi9maWxlLXNlbGVjdG9yLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuaW1wb3J0IHsgaHRtbCwgdW5zYWZlU3RhdGljIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLmpzJztcbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBmb3J3YXJkRXZlbnQgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7XG4gIGkxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbCxcbiAgaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkLFxuICBpMThuRmlsZVNlbGVjdG9yRGVsZXRlRmlsZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgdHlwZSBDb25zdHJ1Y3RvcixcbiAgU2JiRWxlbWVudEludGVybmFsc01peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5cbmltcG9ydCAnLi4vLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWMuanMnO1xuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nO1xuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGU6IGJvb2xlYW47XG4gIHB1YmxpYyBhY2Nlc3NvciBtdWx0aXBsZU1vZGU6ICdkZWZhdWx0JyB8ICdwZXJzaXN0ZW50JztcbiAgcHVibGljIGFjY2Vzc29yIGFjY2VwdDogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBhY2Nlc3NvciBmaWxlczogUmVhZG9ubHk8RmlsZT5bXTtcbiAgcHVibGljIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTtcbiAgcHJvdGVjdGVkIGxvYWRCdXR0b246IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gIHByb3RlY3RlZCBsYW5ndWFnZTogU2JiTGFuZ3VhZ2VDb250cm9sbGVyO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVuZGVyVGVtcGxhdGUoaW5wdXQ6IFRlbXBsYXRlUmVzdWx0KTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBjcmVhdGVGaWxlTGlzdChmaWxlczogRmlsZUxpc3QpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyY2xhc3M6IFQsXG4pOiBDb25zdHJ1Y3RvcjxTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKHN1cGVyY2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgICAgZmlsZWNoYW5nZWQ6ICdmaWxlY2hhbmdlZCcsXG4gICAgfSBhcyBjb25zdDtcblxuICAgIC8qKlxuICAgICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgb3IgbS5cbiAgICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgICAvKiogV2hldGhlciBtb3JlIHRoYW4gb25lIGZpbGUgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBuZXdseSBhZGRlZCBmaWxlcyBzaG91bGQgb3ZlcnJpZGUgdGhlIHByZXZpb3VzbHkgYWRkZWQgb25lcy4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdtdWx0aXBsZS1tb2RlJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBtdWx0aXBsZU1vZGU6ICdkZWZhdWx0JyB8ICdwZXJzaXN0ZW50JyA9ICdkZWZhdWx0JztcblxuICAgIC8qKiBBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFsbG93ZWQgdW5pcXVlIGZpbGUgdHlwZSBzcGVjaWZpZXJzLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIGFjY2Vzc29yIGFjY2VwdDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIFRoZSBwYXRoIG9mIHRoZSBmaXJzdCBzZWxlY3RlZCBmaWxlLiBFbXB0eSBzdHJpbmcgKCcnKSBpZiBubyBmaWxlIGlzIHNlbGVjdGVkICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgIHRoaXMuX2hpZGRlbklucHV0LnZhbHVlID0gdmFsdWUgPz8gJyc7XG5cbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMuX2hpZGRlbklucHV0Py52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IFJlYWRvbmx5PEZpbGU+W10pIHtcbiAgICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAgIC8vIHVwZGF0ZSB0aGUgaW5uZXIgaW5wdXRcbiAgICAgIGNvbnN0IGR0OiBEYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCk7XG4gICAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IFJlYWRvbmx5PEZpbGU+KSA9PiBkdC5pdGVtcy5hZGQoZSkpO1xuICAgICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBmaWxlcygpOiBSZWFkb25seTxGaWxlPltdIHtcbiAgICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgICB9XG4gICAgcHJpdmF0ZSBfZmlsZXM6IFJlYWRvbmx5PEZpbGU+W10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICdmaWxlJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICdmaWxlJztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oaWRkZW5JbnB1dCE6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfc3VmZml4ZXM6IHN0cmluZ1tdID0gWydCJywgJ2tCJywgJ01CJywgJ0dCJywgJ1RCJ107XG4gICAgcHJpdmF0ZSBfbGl2ZVJlZ2lvbiE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuICAgIHByb3RlY3RlZCBsb2FkQnV0dG9uITogU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlbmRlclRlbXBsYXRlKGlucHV0OiBUZW1wbGF0ZVJlc3VsdCk6IFRlbXBsYXRlUmVzdWx0O1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uPzogRm9ybVJlc3RvcmVSZWFzb24sXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAoIXN0YXRlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsZXMgPSAoc3RhdGUgYXMgRm9ybURhdGEpLmdldEFsbCh0aGlzLm5hbWUpIGFzIFJlYWRvbmx5PEZpbGU+W107XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlKSA9PiBmb3JtVmFsdWUuYXBwZW5kKHRoaXMubmFtZSwgZmlsZSkpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKGZvcm1WYWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tGaWxlRXF1YWxpdHkoZmlsZTE6IFJlYWRvbmx5PEZpbGU+LCBmaWxlMjogUmVhZG9ubHk8RmlsZT4pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGZpbGUxLm5hbWUgPT09IGZpbGUyLm5hbWUgJiZcbiAgICAgICAgZmlsZTEuc2l6ZSA9PT0gZmlsZTIuc2l6ZSAmJlxuICAgICAgICBmaWxlMS5sYXN0TW9kaWZpZWQgPT09IGZpbGUyLmxhc3RNb2RpZmllZFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgdGhpcy5sb2FkQnV0dG9uLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25CbHVyKCk6IHZvaWQge1xuICAgICAgdGhpcy5sb2FkQnV0dG9uLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1mb2N1cy12aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVhZEZpbGVzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgY29uc3QgZmlsZUlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICBpZiAoZmlsZUlucHV0LmZpbGVzKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRmlsZUxpc3QoZmlsZUlucHV0LmZpbGVzKTtcbiAgICAgIH1cbiAgICAgIGZvcndhcmRFdmVudChldmVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUZpbGVMaXN0KGZpbGVzOiBGaWxlTGlzdCk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8IHRoaXMubXVsdGlwbGVNb2RlICE9PSAncGVyc2lzdGVudCcgfHwgdGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maWxlcyA9IEFycmF5LmZyb20oZmlsZXMpXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGVzXG4gICAgICAgICAgICAobmV3RmlsZTogUmVhZG9ubHk8RmlsZT4pOiBib29sZWFuID0+XG4gICAgICAgICAgICAgIHRoaXMuZmlsZXMhLmZpbmRJbmRleCgob2xkRmlsZTogUmVhZG9ubHk8RmlsZT4pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tGaWxlRXF1YWxpdHkobmV3RmlsZSwgb2xkRmlsZSksXG4gICAgICAgICAgICAgICkgPT09IC0xLFxuICAgICAgICAgIClcbiAgICAgICAgICAuY29uY2F0KHRoaXMuZmlsZXMpO1xuICAgICAgfVxuICAgICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoRmlsZUNoYW5nZWRFdmVudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbW92ZUZpbGUoZmlsZTogUmVhZG9ubHk8RmlsZT4pOiB2b2lkIHtcbiAgICAgIHRoaXMuZmlsZXMgPSB0aGlzLmZpbGVzLmZpbHRlcigoZjogUmVhZG9ubHk8RmlsZT4pID0+ICF0aGlzLl9jaGVja0ZpbGVFcXVhbGl0eShmaWxlLCBmKSk7XG4gICAgICB0aGlzLl91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpO1xuXG4gICAgICAvLyBEaXNwYXRjaCBuYXRpdmUgZXZlbnRzIGFzIGlmIHRoZSByZXNldCBpcyBkb25lIHZpYSB0aGUgZmlsZSBzZWxlY3Rpb24gd2luZG93LlxuICAgICAgLyoqIFRoZSBpbnB1dCBldmVudCBmaXJlcyB3aGVuIHRoZSB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkIGFzIGEgZGlyZWN0IHJlc3VsdCBvZiBhIHVzZXIgYWN0aW9uLiAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7XG4gICAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLlxuICAgICAgICogVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWRcbiAgICAgICAqIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICAgICAgICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hGaWxlQ2hhbmdlZEV2ZW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hGaWxlQ2hhbmdlZEV2ZW50KCk6IHZvaWQge1xuICAgICAgLyoqXG4gICAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8UmVhZG9ubHk8RmlsZT5bXT59XG4gICAgICAgKiBBbiBldmVudCB3aGljaCBpcyBlbWl0dGVkIGVhY2ggdGltZSB0aGUgZmlsZSBsaXN0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50PFJlYWRvbmx5PEZpbGU+W10+KCdmaWxlY2hhbmdlZCcsIHtcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICAgIGRldGFpbDogdGhpcy5maWxlcyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8qKiBDYWxjdWxhdGVzIHRoZSBjb3JyZWN0IHVuaXQgZm9yIHRoZSBmaWxlJ3Mgc2l6ZS4gKi9cbiAgICBwcml2YXRlIF9mb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgY29uc3QgaTogbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLmxvZyhzaXplKSAvIE1hdGgubG9nKDEwMjQpKTtcbiAgICAgIHJldHVybiBgJHsoc2l6ZSAvIE1hdGgucG93KDEwMjQsIGkpKS50b0ZpeGVkKDApfSAke3RoaXMuX3N1ZmZpeGVzW2ldfWA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQTExeUxpdmVSZWdpb24oKTogdm9pZCB7XG4gICAgICB0aGlzLl9saXZlUmVnaW9uLmlubmVyVGV4dCA9IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCh0aGlzLmZpbGVzLm1hcCgoZSkgPT4gZS5uYW1lKSlbXG4gICAgICAgIHRoaXMubGFuZ3VhZ2UuY3VycmVudFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZW5kZXJGaWxlTGlzdCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICBjb25zdCBUQUdfTkFNRTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9XG4gICAgICAgIHRoaXMuZmlsZXMubGVuZ3RoID4gMVxuICAgICAgICAgID8geyBXUkFQUEVSOiAndWwnLCBFTEVNRU5UOiAnbGknIH1cbiAgICAgICAgICA6IHsgV1JBUFBFUjogJ2RpdicsIEVMRU1FTlQ6ICdzcGFuJyB9O1xuXG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBsaXQvYmluZGluZy1wb3NpdGlvbnMgKi9cbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR19OQU1FLldSQVBQRVIpfSBjbGFzcz0nc2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtbGlzdCc+XG4gICAgICAgICR7dGhpcy5maWxlcy5tYXAoXG4gICAgICAgICAgKGZpbGU6IFJlYWRvbmx5PEZpbGU+KSA9PiBodG1sYFxuICAgICAgICAgICAgPCR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfSBjbGFzcz0nc2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUnPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1kZXRhaWxzJz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1uYW1lJz4ke2ZpbGUubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0nc2JiLWZpbGUtc2VsZWN0b3JfX2ZpbGUtc2l6ZSc+JHt0aGlzLl9mb3JtYXRGaWxlU2l6ZShmaWxlLnNpemUpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvblxuICAgICAgICAgICAgICAgIHNpemU9JyR7dGhpcy5zaXplfSdcbiAgICAgICAgICAgICAgICBpY29uLW5hbWU9J3RyYXNoLXNtYWxsJ1xuICAgICAgICAgICAgICAgIEBjbGljaz0nJHsoKSA9PiB0aGlzLl9yZW1vdmVGaWxlKGZpbGUpfSdcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPScke2Ake2kxOG5GaWxlU2VsZWN0b3JEZWxldGVGaWxlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19IC0gJHtmaWxlLm5hbWV9YH0nXG4gICAgICAgICAgICAgID48L3NiYi1zZWNvbmRhcnktYnV0dG9uPlxuICAgICAgICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5FTEVNRU5UKX0+YCxcbiAgICAgICAgKX1cbiAgICAgIDwvJHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9PlxuICAgIGA7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgICAgY29uc3QgYXJpYUxhYmVsID0gdGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWxcbiAgICAgICAgPyBgJHtpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gLSAke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsfWBcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yXCI+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlclRlbXBsYXRlKFxuICAgICAgICAgICAgaHRtbGA8aW5wdXRcbiAgICAgICAgICAgICAgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fdmlzdWFsbHktaGlkZGVuXCJcbiAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICA/ZGlzYWJsZWQ9XCIke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XCJcbiAgICAgICAgICAgICAgP211bHRpcGxlPVwiJHt0aGlzLm11bHRpcGxlfVwiXG4gICAgICAgICAgICAgIGFjY2VwdD1cIiR7dGhpcy5hY2NlcHQgfHwgbm90aGluZ31cIlxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiJHthcmlhTGFiZWwgfHwgbm90aGluZ31cIlxuICAgICAgICAgICAgICBAY2hhbmdlPVwiJHt0aGlzLl9yZWFkRmlsZXN9XCJcbiAgICAgICAgICAgICAgQGZvY3VzPVwiJHt0aGlzLl9vbkZvY3VzfVwiXG4gICAgICAgICAgICAgIEBibHVyPVwiJHt0aGlzLl9vbkJsdXJ9XCJcbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hpZGRlbklucHV0ID0gZWwgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAvPmAsXG4gICAgICAgICAgKX1cbiAgICAgICAgICA8cFxuICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgJHtyZWYoKHA/OiBFbGVtZW50KSA9PiAodGhpcy5fbGl2ZVJlZ2lvbiA9IHAgYXMgSFRNTFBhcmFncmFwaEVsZW1lbnQpKX1cbiAgICAgICAgICA+PC9wPlxuICAgICAgICAgICR7dGhpcy5maWxlcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVyRmlsZUxpc3QoKSA6IG5vdGhpbmd9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19lcnJvclwiPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImVycm9yXCI+PC9zbG90PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8U2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrRE8sTUFBTSxvQ0FBb0MsQ0FDL0MsZUFDMEQ7TUFDM0MsZ0NBQTRCLE1BQUE7O3NCQUNqQyxpQkFBaUIsdUJBQXVCLHlCQUF5QixVQUFVLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUR4RSxXQUFBLG1CQUNMLFlBQThFO0FBQUE7O0FBV3pEO0FBSzdCO0FBSUE7QUFLQTtBQUtBO0FBbkI2QywyQkFBQSx5QkFaaEMsa0JBQUEsTUFBQSww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
332
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci1jb21tb24uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9maWxlLXNlbGVjdG9yL2NvbW1vbi9maWxlLXNlbGVjdG9yLWNvbW1vbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuaW1wb3J0IHsgaHRtbCwgdW5zYWZlU3RhdGljIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLmpzJztcbmltcG9ydCB7IHNiYklucHV0TW9kYWxpdHlEZXRlY3RvciB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBmb3J3YXJkRXZlbnQgfSBmcm9tICcuLi8uLi9jb3JlL2V2ZW50aW5nLmpzJztcbmltcG9ydCB7XG4gIGkxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbCxcbiAgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsTXVsdGlwbGUsXG4gIGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCxcbiAgaTE4bkZpbGVTZWxlY3RvckRlbGV0ZUZpbGUsXG59IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENvbnN0cnVjdG9yLFxuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbixcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuXG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9zZWNvbmRhcnktYnV0dG9uLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZSBleHRlbmRzIFNiYkRpc2FibGVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKExpdEVsZW1lbnQpKSxcbikge1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nO1xuICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGU6IGJvb2xlYW47XG4gIHB1YmxpYyBhY2Nlc3NvciBtdWx0aXBsZU1vZGU6ICdkZWZhdWx0JyB8ICdwZXJzaXN0ZW50JztcbiAgcHVibGljIGFjY2Vzc29yIGFjY2VwdDogc3RyaW5nO1xuICBwdWJsaWMgYWNjZXNzb3IgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBhY2Nlc3NvciBmaWxlczogUmVhZG9ubHk8RmlsZT5bXTtcbiAgcHVibGljIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTtcbiAgcHJvdGVjdGVkIGxvYWRCdXR0b246IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gIHByb3RlY3RlZCBsYW5ndWFnZTogU2JiTGFuZ3VhZ2VDb250cm9sbGVyO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVuZGVyVGVtcGxhdGUoaW5wdXQ6IFRlbXBsYXRlUmVzdWx0KTogVGVtcGxhdGVSZXN1bHQ7XG4gIHByb3RlY3RlZCBjcmVhdGVGaWxlTGlzdChmaWxlczogRmlsZUxpc3QpOiB2b2lkO1xuICBwcm90ZWN0ZWQgZ2V0QnV0dG9uTGFiZWwoKTogc3RyaW5nO1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZDtcbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsIHJlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24pOiB2b2lkO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyY2xhc3M6IFQsXG4pOiBDb25zdHJ1Y3RvcjxTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudEludGVybmFsc01peGluKHN1cGVyY2xhc3MpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgICAgZmlsZWNoYW5nZWQ6ICdmaWxlY2hhbmdlZCcsXG4gICAgfSBhcyBjb25zdDtcblxuICAgIC8qKlxuICAgICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHMgb3IgbS5cbiAgICAgKiBAZGVmYXVsdCAnbScgLyAncycgKGxlYW4pXG4gICAgICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgICAvKiogV2hldGhlciBtb3JlIHRoYW4gb25lIGZpbGUgY2FuIGJlIHNlbGVjdGVkLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgYWNjZXNzb3IgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBuZXdseSBhZGRlZCBmaWxlcyBzaG91bGQgb3ZlcnJpZGUgdGhlIHByZXZpb3VzbHkgYWRkZWQgb25lcy4gKi9cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdtdWx0aXBsZS1tb2RlJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBtdWx0aXBsZU1vZGU6ICdkZWZhdWx0JyB8ICdwZXJzaXN0ZW50JyA9ICdkZWZhdWx0JztcblxuICAgIC8qKiBBIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFsbG93ZWQgdW5pcXVlIGZpbGUgdHlwZSBzcGVjaWZpZXJzLiAqL1xuICAgIEBmb3JjZVR5cGUoKVxuICAgIEBwcm9wZXJ0eSgpXG4gICAgcHVibGljIGFjY2Vzc29yIGFjY2VwdDogc3RyaW5nID0gJyc7XG5cbiAgICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudC4gKi9cbiAgICBAZm9yY2VUeXBlKClcbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWxhYmVsJyB9KVxuICAgIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqIFRoZSBwYXRoIG9mIHRoZSBmaXJzdCBzZWxlY3RlZCBmaWxlLiBFbXB0eSBzdHJpbmcgKCcnKSBpZiBubyBmaWxlIGlzIHNlbGVjdGVkICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgIHRoaXMuX2hpZGRlbklucHV0LnZhbHVlID0gdmFsdWUgPz8gJyc7XG5cbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgcmV0dXJuIHRoaXMuX2hpZGRlbklucHV0Py52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogVGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmlsZXMuICovXG4gICAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgZmlsZXModmFsdWU6IFJlYWRvbmx5PEZpbGU+W10pIHtcbiAgICAgIHRoaXMuX2ZpbGVzID0gdmFsdWUgPz8gW107XG5cbiAgICAgIC8vIHVwZGF0ZSB0aGUgaW5uZXIgaW5wdXRcbiAgICAgIGNvbnN0IGR0OiBEYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCk7XG4gICAgICB0aGlzLmZpbGVzLmZvckVhY2goKGU6IFJlYWRvbmx5PEZpbGU+KSA9PiBkdC5pdGVtcy5hZGQoZSkpO1xuICAgICAgdGhpcy5faGlkZGVuSW5wdXQuZmlsZXMgPSBkdC5maWxlcztcblxuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBmaWxlcygpOiBSZWFkb25seTxGaWxlPltdIHtcbiAgICAgIHJldHVybiB0aGlzLl9maWxlcztcbiAgICB9XG4gICAgcHJpdmF0ZSBfZmlsZXM6IFJlYWRvbmx5PEZpbGU+W10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEZvcm0gdHlwZSBvZiBlbGVtZW50LlxuICAgICAqIEBkZWZhdWx0ICdmaWxlJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuICdmaWxlJztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oaWRkZW5JbnB1dCE6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfc3VmZml4ZXM6IHN0cmluZ1tdID0gWydCJywgJ2tCJywgJ01CJywgJ0dCJywgJ1RCJ107XG4gICAgcHJpdmF0ZSBfbGl2ZVJlZ2lvbiE6IEhUTUxQYXJhZ3JhcGhFbGVtZW50O1xuICAgIHByb3RlY3RlZCBsb2FkQnV0dG9uITogU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLy8gU2FmYXJpIGhhcyBhIHBlY3VsaWFyIGJlaGF2aW9yIHdoZW4gZHJhZ2dpbmcgZmlsZXMgb24gdGhlIGlubmVyIGJ1dHRvbiBpbiAnZHJvcHpvbmUnIHZhcmlhbnQ7XG4gICAgLy8gdGhpcyB3aWxsIHJlcXVpcmUgYSBjb3VudGVyIHRvIGNvcnJlY3RseSBoYW5kbGUgdGhlIGRyYWdFbnRlci9kcmFnTGVhdmUuXG4gICAgcHJpdmF0ZSBfY291bnRlcjogbnVtYmVyID0gMDtcbiAgICBwcml2YXRlIF9kcmFnVGFyZ2V0PzogSFRNTEVsZW1lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVuZGVyVGVtcGxhdGUoaW5wdXQ6IFRlbXBsYXRlUmVzdWx0KTogVGVtcGxhdGVSZXN1bHQ7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgICB0aGlzLmZpbGVzID0gW107XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb24/OiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5maWxlcyA9IChzdGF0ZSBhcyBGb3JtRGF0YSkuZ2V0QWxsKHRoaXMubmFtZSkgYXMgUmVhZG9ubHk8RmlsZT5bXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgY29uc3QgZm9ybVZhbHVlID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICB0aGlzLmZpbGVzLmZvckVhY2goKGZpbGUpID0+IGZvcm1WYWx1ZS5hcHBlbmQodGhpcy5uYW1lLCBmaWxlKSk7XG4gICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jaGVja0ZpbGVFcXVhbGl0eShmaWxlMTogUmVhZG9ubHk8RmlsZT4sIGZpbGUyOiBSZWFkb25seTxGaWxlPik6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZmlsZTEubmFtZSA9PT0gZmlsZTIubmFtZSAmJlxuICAgICAgICBmaWxlMS5zaXplID09PSBmaWxlMi5zaXplICYmXG4gICAgICAgIGZpbGUxLmxhc3RNb2RpZmllZCA9PT0gZmlsZTIubGFzdE1vZGlmaWVkXG4gICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICB0aGlzLmxvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgICB0aGlzLmxvYWRCdXR0b24ucmVtb3ZlQXR0cmlidXRlKCdkYXRhLWZvY3VzLXZpc2libGUnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZWFkRmlsZXMoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICBjb25zdCBmaWxlSW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgIGlmIChmaWxlSW5wdXQuZmlsZXMpIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGaWxlTGlzdChmaWxlSW5wdXQuZmlsZXMpO1xuICAgICAgfVxuICAgICAgZm9yd2FyZEV2ZW50KGV2ZW50LCB0aGlzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlRmlsZUxpc3QoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgICBjb25zdCBmaWxlQXJyYXkgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICAgIGlmIChcbiAgICAgICAgKCF0aGlzLm11bHRpcGxlICYmIGZpbGVzLmxlbmd0aCA+IDEpIHx8XG4gICAgICAgICh0aGlzLmFjY2VwdCAmJlxuICAgICAgICAgIGZpbGVBcnJheS5zb21lKFxuICAgICAgICAgICAgKGZpbGUpID0+ICF0aGlzLmFjY2VwdC5zcGxpdCgnLCcpLnNvbWUoKGEpID0+IGZpbGUubmFtZS5lbmRzV2l0aChhLnRyaW0oKSkpLFxuICAgICAgICAgICkpXG4gICAgICApIHtcbiAgICAgICAgLy8gSWYgbXVsdGlwbGUgZmlsZXMgYXJlIHNlbGVjdGVkIGJ1dCB0aGUgc2VsZWN0b3IgaXMgbm90IGluIG11bHRpcGxlIG1vZGUsXG4gICAgICAgIC8vIGlnbm9yZSB0aGUgc2VsZWN0aW9uIChsaWtlIG5hdGl2ZSBiZWhhdmlvcikuXG4gICAgICAgIC8vIElmIHRoZSBhY2NlcHQgYXR0cmlidXRlIGlzIHNldCwgY2hlY2sgaWYgdGhlIHNlbGVjdGVkIGZpbGVzIG1hdGNoIHRoZSBhbGxvd2VkIHR5cGVzLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCB0aGlzLm11bHRpcGxlTW9kZSAhPT0gJ3BlcnNpc3RlbnQnIHx8IHRoaXMuZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBmaWxlQXJyYXk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGVzID0gZmlsZUFycmF5XG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGVzXG4gICAgICAgICAgICAobmV3RmlsZTogUmVhZG9ubHk8RmlsZT4pOiBib29sZWFuID0+XG4gICAgICAgICAgICAgIHRoaXMuZmlsZXMhLmZpbmRJbmRleCgob2xkRmlsZTogUmVhZG9ubHk8RmlsZT4pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tGaWxlRXF1YWxpdHkobmV3RmlsZSwgb2xkRmlsZSksXG4gICAgICAgICAgICAgICkgPT09IC0xLFxuICAgICAgICAgIClcbiAgICAgICAgICAuY29uY2F0KHRoaXMuZmlsZXMpO1xuICAgICAgfVxuICAgICAgdGhpcy5fdXBkYXRlQTExeUxpdmVSZWdpb24oKTtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoRmlsZUNoYW5nZWRFdmVudCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbGVcbiAgICAgICAgPyBpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWxNdWx0aXBsZVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdXG4gICAgICAgIDogaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMubGFuZ3VhZ2UuY3VycmVudF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVtb3ZlRmlsZShmaWxlOiBSZWFkb25seTxGaWxlPik6IHZvaWQge1xuICAgICAgdGhpcy5maWxlcyA9IHRoaXMuZmlsZXMuZmlsdGVyKChmOiBSZWFkb25seTxGaWxlPikgPT4gIXRoaXMuX2NoZWNrRmlsZUVxdWFsaXR5KGZpbGUsIGYpKTtcbiAgICAgIHRoaXMuX3VwZGF0ZUExMXlMaXZlUmVnaW9uKCk7XG5cbiAgICAgIC8vIERpc3BhdGNoIG5hdGl2ZSBldmVudHMgYXMgaWYgdGhlIHJlc2V0IGlzIGRvbmUgdmlhIHRoZSBmaWxlIHNlbGVjdGlvbiB3aW5kb3cuXG4gICAgICAvKiogVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHtcbiAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIC8qKlxuICAgICAgICogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuXG4gICAgICAgKiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZFxuICAgICAgICogZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuXG4gICAgICAgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLl9kaXNwYXRjaEZpbGVDaGFuZ2VkRXZlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNwYXRjaEZpbGVDaGFuZ2VkRXZlbnQoKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIEB0eXBlIHtDdXN0b21FdmVudDxSZWFkb25seTxGaWxlPltdPn1cbiAgICAgICAqIEFuIGV2ZW50IHdoaWNoIGlzIGVtaXR0ZWQgZWFjaCB0aW1lIHRoZSBmaWxlIGxpc3QgY2hhbmdlcy5cbiAgICAgICAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQ8UmVhZG9ubHk8RmlsZT5bXT4oJ2ZpbGVjaGFuZ2VkJywge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgICAgZGV0YWlsOiB0aGlzLmZpbGVzLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIENhbGN1bGF0ZXMgdGhlIGNvcnJlY3QgdW5pdCBmb3IgdGhlIGZpbGUncyBzaXplLiAqL1xuICAgIHByaXZhdGUgX2Zvcm1hdEZpbGVTaXplKHNpemU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICBjb25zdCBpOiBudW1iZXIgPSBNYXRoLmZsb29yKE1hdGgubG9nKHNpemUpIC8gTWF0aC5sb2coMTAyNCkpO1xuICAgICAgcmV0dXJuIGAkeyhzaXplIC8gTWF0aC5wb3coMTAyNCwgaSkpLnRvRml4ZWQoMCl9ICR7dGhpcy5fc3VmZml4ZXNbaV19YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVBMTF5TGl2ZVJlZ2lvbigpOiB2b2lkIHtcbiAgICAgIHRoaXMuX2xpdmVSZWdpb24uaW5uZXJUZXh0ID0gaTE4bkZpbGVTZWxlY3RvckN1cnJlbnRseVNlbGVjdGVkKHRoaXMuZmlsZXMubWFwKChlKSA9PiBlLm5hbWUpKVtcbiAgICAgICAgdGhpcy5sYW5ndWFnZS5jdXJyZW50XG4gICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlbmRlckZpbGVMaXN0KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIGNvbnN0IFRBR19OQU1FOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID1cbiAgICAgICAgdGhpcy5maWxlcy5sZW5ndGggPiAxXG4gICAgICAgICAgPyB7IFdSQVBQRVI6ICd1bCcsIEVMRU1FTlQ6ICdsaScgfVxuICAgICAgICAgIDogeyBXUkFQUEVSOiAnZGl2JywgRUxFTUVOVDogJ3NwYW4nIH07XG5cbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIGxpdC9iaW5kaW5nLXBvc2l0aW9ucyAqL1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuV1JBUFBFUil9IGNsYXNzPSdzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1saXN0Jz5cbiAgICAgICAgJHt0aGlzLmZpbGVzLm1hcChcbiAgICAgICAgICAoZmlsZTogUmVhZG9ubHk8RmlsZT4pID0+IGh0bWxgXG4gICAgICAgICAgICA8JHt1bnNhZmVTdGF0aWMoVEFHX05BTUUuRUxFTUVOVCl9IGNsYXNzPSdzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZSc+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3NiYi1maWxlLXNlbGVjdG9yX19maWxlLWRldGFpbHMnPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J3NiYi1maWxlLXNlbGVjdG9yX19maWxlLW5hbWUnPiR7ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdzYmItZmlsZS1zZWxlY3Rvcl9fZmlsZS1zaXplJz4ke3RoaXMuX2Zvcm1hdEZpbGVTaXplKGZpbGUuc2l6ZSl9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNiYi1zZWNvbmRhcnktYnV0dG9uXG4gICAgICAgICAgICAgICAgc2l6ZT0nJHt0aGlzLnNpemV9J1xuICAgICAgICAgICAgICAgIGljb24tbmFtZT0ndHJhc2gtc21hbGwnXG4gICAgICAgICAgICAgICAgQGNsaWNrPSckeygpID0+IHRoaXMuX3JlbW92ZUZpbGUoZmlsZSl9J1xuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JyR7YCR7aTE4bkZpbGVTZWxlY3RvckRlbGV0ZUZpbGVbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX0gLSAke2ZpbGUubmFtZX1gfSdcbiAgICAgICAgICAgICAgPjwvc2JiLXNlY29uZGFyeS1idXR0b24+XG4gICAgICAgICAgICA8LyR7dW5zYWZlU3RhdGljKFRBR19OQU1FLkVMRU1FTlQpfT5gLFxuICAgICAgICApfVxuICAgICAgPC8ke3Vuc2FmZVN0YXRpYyhUQUdfTkFNRS5XUkFQUEVSKX0+XG4gICAgYDtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgbGl0L2JpbmRpbmctcG9zaXRpb25zICovXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25EcmFnRW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgdGhpcy5fY291bnRlcisrO1xuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgICB0aGlzLl9zZXREcmFnU3RhdGUoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB0cnVlKTtcbiAgICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgdGhpcy5fY291bnRlci0tO1xuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5kaXNhYmxlZCAmJlxuICAgICAgICAhdGhpcy5mb3JtRGlzYWJsZWQgJiZcbiAgICAgICAgZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9kcmFnVGFyZ2V0ICYmXG4gICAgICAgIHRoaXMuX2NvdW50ZXIgPT09IDBcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9zZXREcmFnU3RhdGUoKTtcbiAgICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25GaWxlRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICB0aGlzLl9jb3VudGVyID0gMDtcbiAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5mb3JtRGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICAgIHRoaXMuX2Jsb2NrRXZlbnQoZXZlbnQpO1xuICAgICAgICB0aGlzLmNyZWF0ZUZpbGVMaXN0KGV2ZW50LmRhdGFUcmFuc2ZlciEuZmlsZXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Jsb2NrRXZlbnQoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERyYWdTdGF0ZShcbiAgICAgIGRyYWdUYXJnZXQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgICAgaXNEcmFnRW50ZXI6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICApOiB2b2lkIHtcbiAgICAgIHRoaXMuX2RyYWdUYXJnZXQgPSBkcmFnVGFyZ2V0O1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnYWN0aXZlJywgaXNEcmFnRW50ZXIpO1xuICAgICAgdGhpcy5sb2FkQnV0dG9uLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1hY3RpdmUnLCBpc0RyYWdFbnRlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICBjb25zdCBhcmlhTGFiZWwgPSB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbFxuICAgICAgICA/IGAke3RoaXMuZ2V0QnV0dG9uTGFiZWwoKX0gLSAke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsfWBcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9faW5wdXQtY29udGFpbmVyXCJcbiAgICAgICAgICAgIEBkcmFnZW50ZXI9JHt0aGlzLl9vbkRyYWdFbnRlcn1cbiAgICAgICAgICAgIEBkcmFnb3Zlcj0ke3RoaXMuX2Jsb2NrRXZlbnR9XG4gICAgICAgICAgICBAZHJhZ2xlYXZlPSR7dGhpcy5fb25EcmFnTGVhdmV9XG4gICAgICAgICAgICBAZHJvcD0ke3RoaXMuX29uRmlsZURyb3B9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHt0aGlzLnJlbmRlclRlbXBsYXRlKFxuICAgICAgICAgICAgICBodG1sYDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX3Zpc3VhbGx5LWhpZGRlblwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgID9kaXNhYmxlZD1cIiR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZH1cIlxuICAgICAgICAgICAgICAgID9tdWx0aXBsZT1cIiR7dGhpcy5tdWx0aXBsZX1cIlxuICAgICAgICAgICAgICAgIGFjY2VwdD1cIiR7dGhpcy5hY2NlcHQgfHwgbm90aGluZ31cIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke2FyaWFMYWJlbCB8fCBub3RoaW5nfVwiXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cIiR7dGhpcy5fcmVhZEZpbGVzfVwiXG4gICAgICAgICAgICAgICAgQGZvY3VzPVwiJHt0aGlzLl9vbkZvY3VzfVwiXG4gICAgICAgICAgICAgICAgQGJsdXI9XCIke3RoaXMuX29uQmx1cn1cIlxuICAgICAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2hpZGRlbklucHV0ID0gZWwgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgLz5gLFxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cFxuICAgICAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgICAgICBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX192aXN1YWxseS1oaWRkZW5cIlxuICAgICAgICAgICAgJHtyZWYoKHA/OiBFbGVtZW50KSA9PiAodGhpcy5fbGl2ZVJlZ2lvbiA9IHAgYXMgSFRNTFBhcmFncmFwaEVsZW1lbnQpKX1cbiAgICAgICAgICA+PC9wPlxuICAgICAgICAgICR7dGhpcy5maWxlcy5sZW5ndGggPiAwID8gdGhpcy5fcmVuZGVyRmlsZUxpc3QoKSA6IG5vdGhpbmd9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19lcnJvclwiPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImVycm9yXCI+PC9zbG90PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8U2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0RPLE1BQU0sb0NBQW9DLENBQy9DLGVBQzBEO01BQzNDLGdDQUE0QixNQUFBOztzQkFDakMsaUJBQWlCLHVCQUF1Qix5QkFBeUIsVUFBVSxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFEeEUsV0FBQSxtQkFDTCxZQUE4RTtBQUFBOztBQVd6RDtBQUs3QjtBQUlBO0FBS0E7QUFLQTtBQW5CNkMsMkJBQUEseUJBWmhDLGtCQUFBLE1BQUEsMEJBQUEsR0FBNEIsa0JBQUEsTUFBQSxvQkFZc0IsT0FBQSxJQUFXLE1BQU0sR0FBRztBQUtuRSwyQkFBQSw2QkFBQSxrQkFBQSxNQUFBLHVCQUFBLEdBQUEsa0JBQUEsTUFBQSx3QkFBb0IsS0FBSztBQUl6QiwyQkFBQSxpQ0FBQSxrQkFBQSxNQUFBLDJCQUFBLEdBQUEsa0JBQUEsTUFBQSw0QkFBeUMsU0FBUztBQUtsRCwyQkFBQSwyQkFBQSxrQkFBQSxNQUFBLCtCQUFBLEdBQUEsa0JBQUEsTUFBQSxzQkFBaUIsRUFBRTtBQUtuQiwyQkFBQSx1Q0FBQSxrQkFBQSxNQUFBLHlCQUFBLEdBQUEsa0JBQUEsTUFBQSxrQ0FBNkIsRUFBRTtBQThCdkMsYUFBQSxVQUFNLGtCQUFBLE1BQUEscUNBQUEsR0FBcUIsQ0FBQTtBQVczQixhQUFBLFlBQXNCLENBQUMsS0FBSyxNQUFNLE1BQU0sTUFBTSxJQUFJO0FBR2hELGFBQUEsV0FBVyxJQUFJLHNCQUFzQixJQUFJO0FBSTNDLGFBQUEsV0FBbUI7QUFBQSxNQTRQN0I7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BL1QrQixJQUFnQixPQUFJO0FBQUEsZUFBQSxtQkFBQTtBQUFBLE1BQUE7QUFBQSxNQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSwyQkFBQSx3QkFBQTtBQUFBLE1BQUE7QUFBQTtBQUFBLE1BS2pELElBQWdCLFdBQVE7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLDJCQUFBLDRCQUFBO0FBQUEsTUFBQTtBQUFBO0FBQUEsTUFJeEIsSUFBZ0IsZUFBWTtBQUFBLGVBQUEsbUJBQUE7QUFBQSxNQUFBO0FBQUEsTUFBNUIsSUFBZ0IsYUFBWSxPQUFBO0FBQUEsMkJBQUEsZ0NBQUE7QUFBQSxNQUFBO0FBQUE7QUFBQSxNQUs1QixJQUFnQixTQUFNO0FBQUEsZUFBQSxtQkFBQTtBQUFBLE1BQUE7QUFBQSxNQUF0QixJQUFnQixPQUFNLE9BQUE7QUFBQSwyQkFBQSwwQkFBQTtBQUFBLE1BQUE7QUFBQTtBQUFBLE1BS3RCLElBQWdCLHFCQUFrQjtBQUFBLGVBQUEsbUJBQUE7QUFBQSxNQUFBO0FBQUEsTUFBbEMsSUFBZ0IsbUJBQWtCLE9BQUE7QUFBQSwyQkFBQSxzQ0FBQTtBQUFBLE1BQUE7QUFBQTtBQUFBLE1BSWxDLElBQVcsTUFBTSxPQUFvQjtBQUNuQyxhQUFLLGFBQWEsUUFBUSxTQUFTO0FBRW5DLFlBQUksQ0FBQyxPQUFPO0FBQ1YsZUFBSyxRQUFRLENBQUE7QUFBQSxRQUNmO0FBQUEsTUFDRjtBQUFBLE1BQ0EsSUFBVyxRQUFLO0FBQ2QsZUFBTyxLQUFLLGNBQWM7QUFBQSxNQUM1QjtBQUFBO0FBQUEsTUFJQSxJQUFXLE1BQU0sT0FBdUI7QUFDdEMsYUFBSyxTQUFTLFNBQVMsQ0FBQTtBQUd2QixjQUFNLEtBQW1CLElBQUksYUFBQTtBQUM3QixhQUFLLE1BQU0sUUFBUSxDQUFDLE1BQXNCLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztBQUN6RCxhQUFLLGFBQWEsUUFBUSxHQUFHO0FBRTdCLGFBQUssZ0JBQUE7QUFBQSxNQUNQO0FBQUEsTUFDQSxJQUFXLFFBQUs7QUFDZCxlQUFPLEtBQUs7QUFBQSxNQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQU9BLElBQW9CLE9BQUk7QUFDdEIsZUFBTztBQUFBLE1BQ1Q7QUFBQSxNQWVnQixvQkFBaUI7QUFDL0IsYUFBSyxRQUFRLENBQUE7QUFBQSxNQUNmO0FBQUEsTUFFZ0IseUJBQ2QsT0FDQSxTQUEyQjtBQUUzQixZQUFJLENBQUMsT0FBTztBQUNWO0FBQUEsUUFDRjtBQUNBLGFBQUssUUFBUyxNQUFtQixPQUFPLEtBQUssSUFBSTtBQUFBLE1BQ25EO0FBQUEsTUFFbUIsa0JBQWU7QUFDaEMsY0FBTSxZQUFZLElBQUksU0FBQTtBQUN0QixhQUFLLE1BQU0sUUFBUSxDQUFDLFNBQVMsVUFBVSxPQUFPLEtBQUssTUFBTSxJQUFJLENBQUM7QUFDOUQsYUFBSyxVQUFVLGFBQWEsU0FBUztBQUFBLE1BQ3ZDO0FBQUEsTUFFUSxtQkFBbUIsT0FBdUIsT0FBcUI7QUFDckUsZUFDRSxNQUFNLFNBQVMsTUFBTSxRQUNyQixNQUFNLFNBQVMsTUFBTSxRQUNyQixNQUFNLGlCQUFpQixNQUFNO0FBQUEsTUFFakM7QUFBQSxNQUVRLFdBQVE7QUFDZCxZQUFJLHlCQUF5Qix1QkFBdUIsWUFBWTtBQUM5RCxlQUFLLFdBQVcsZ0JBQWdCLHNCQUFzQixJQUFJO0FBQUEsUUFDNUQ7QUFBQSxNQUNGO0FBQUEsTUFFUSxVQUFPO0FBQ2IsYUFBSyxXQUFXLGdCQUFnQixvQkFBb0I7QUFBQSxNQUN0RDtBQUFBLE1BRVEsV0FBVyxPQUFZO0FBQzdCLGNBQU0sWUFBWSxNQUFNO0FBQ3hCLFlBQUksVUFBVSxPQUFPO0FBQ25CLGVBQUssZUFBZSxVQUFVLEtBQUs7QUFBQSxRQUNyQztBQUNBLHFCQUFhLE9BQU8sSUFBSTtBQUFBLE1BQzFCO0FBQUEsTUFFVSxlQUFlLE9BQWU7QUFDdEMsY0FBTSxZQUFZLE1BQU0sS0FBSyxLQUFLO0FBQ2xDLFlBQ0csQ0FBQyxLQUFLLFlBQVksTUFBTSxTQUFTLEtBQ2pDLEtBQUssVUFDSixVQUFVLEtBQ1IsQ0FBQyxTQUFTLENBQUMsS0FBSyxPQUFPLE1BQU0sR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxTQUFTLEVBQUUsS0FBQSxDQUFNLENBQUMsQ0FBQyxHQUUvRTtBQUlBO0FBQUEsUUFDRjtBQUVBLFlBQUksQ0FBQyxLQUFLLFlBQVksS0FBSyxpQkFBaUIsZ0JBQWdCLEtBQUssTUFBTSxXQUFXLEdBQUc7QUFDbkYsZUFBSyxRQUFRO0FBQUEsUUFDZixPQUFPO0FBQ0wsZUFBSyxRQUFRLFVBQ1Y7QUFBQTtBQUFBLFlBRUMsQ0FBQyxZQUNDLEtBQUssTUFBTyxVQUFVLENBQUMsWUFDckIsS0FBSyxtQkFBbUIsU0FBUyxPQUFPLENBQUMsTUFDckM7QUFBQSxVQUFBLEVBRVQsT0FBTyxLQUFLLEtBQUs7QUFBQSxRQUN0QjtBQUNBLGFBQUssc0JBQUE7QUFDTCxhQUFLLDBCQUFBO0FBQUEsTUFDUDtBQUFBLE1BRVUsaUJBQWM7QUFDdEIsZUFBTyxLQUFLLFdBQ1Isb0NBQW9DLEtBQUssU0FBUyxPQUFPLElBQ3pELDRCQUE0QixLQUFLLFNBQVMsT0FBTztBQUFBLE1BQ3ZEO0FBQUEsTUFFUSxZQUFZLE1BQW9CO0FBQ3RDLGFBQUssUUFBUSxLQUFLLE1BQU0sT0FBTyxDQUFDLE1BQXNCLENBQUMsS0FBSyxtQkFBbUIsTUFBTSxDQUFDLENBQUM7QUFDdkYsYUFBSyxzQkFBQTtBQUlMLGFBQUssY0FDSCxJQUFJLFdBQVcsU0FBUztBQUFBLFVBQ3RCLFNBQVM7QUFBQSxVQUNULFVBQVU7QUFBQSxRQUFBLENBQ1gsQ0FBQztBQVFKLGFBQUssY0FBYyxJQUFJLE1BQU0sVUFBVSxFQUFFLFNBQVMsS0FBQSxDQUFNLENBQUM7QUFDekQsYUFBSywwQkFBQTtBQUFBLE1BQ1A7QUFBQSxNQUVRLDRCQUF5QjtBQUsvQixhQUFLLGNBQ0gsSUFBSSxZQUE4QixlQUFlO0FBQUEsVUFDL0MsU0FBUztBQUFBLFVBQ1QsVUFBVTtBQUFBLFVBQ1YsUUFBUSxLQUFLO0FBQUEsUUFBQSxDQUNkLENBQUM7QUFBQSxNQUVOO0FBQUE7QUFBQSxNQUdRLGdCQUFnQixNQUFZO0FBQ2xDLGNBQU0sSUFBWSxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDO0FBQzVELGVBQU8sSUFBSSxPQUFPLEtBQUssSUFBSSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7QUFBQSxNQUN0RTtBQUFBLE1BRVEsd0JBQXFCO0FBQzNCLGFBQUssWUFBWSxZQUFZLGtDQUFrQyxLQUFLLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFDMUYsS0FBSyxTQUFTLE9BQU87QUFBQSxNQUV6QjtBQUFBLE1BRVEsa0JBQWU7QUFDckIsY0FBTSxXQUNKLEtBQUssTUFBTSxTQUFTLElBQ2hCLEVBQUUsU0FBUyxNQUFNLFNBQVMsU0FDMUIsRUFBRSxTQUFTLE9BQU8sU0FBUyxPQUFBO0FBR2pDLGVBQU87QUFBQSxTQUNKLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQSxVQUM3QixLQUFLLE1BQU0sSUFDWCxDQUFDLFNBQXlCO0FBQUEsZUFDckIsYUFBYSxTQUFTLE9BQU8sQ0FBQztBQUFBO0FBQUEsK0RBRWtCLEtBQUssSUFBSTtBQUFBLCtEQUNULEtBQUssZ0JBQWdCLEtBQUssSUFBSSxDQUFDO0FBQUE7QUFBQTtBQUFBLHdCQUd0RSxLQUFLLElBQUk7QUFBQTtBQUFBLDBCQUVQLE1BQU0sS0FBSyxZQUFZLElBQUksQ0FBQztBQUFBLDhCQUN4QixHQUFHLDJCQUEyQixLQUFLLFNBQVMsT0FBTyxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7QUFBQTtBQUFBLGdCQUVuRixhQUFhLFNBQVMsT0FBTyxDQUFDLEdBQUcsQ0FDeEM7QUFBQSxVQUNDLGFBQWEsU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLE1BR3BDO0FBQUEsTUFFUSxhQUFhLE9BQWdCO0FBQ25DLGFBQUs7QUFDTCxZQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxjQUFjO0FBQ3hDLGVBQUssY0FBYyxNQUFNLFFBQXVCLElBQUk7QUFDcEQsZUFBSyxZQUFZLEtBQUs7QUFBQSxRQUN4QjtBQUFBLE1BQ0Y7QUFBQSxNQUVRLGFBQWEsT0FBZ0I7QUFDbkMsYUFBSztBQUNMLFlBQ0UsQ0FBQyxLQUFLLFlBQ04sQ0FBQyxLQUFLLGdCQUNOLE1BQU0sV0FBVyxLQUFLLGVBQ3RCLEtBQUssYUFBYSxHQUNsQjtBQUNBLGVBQUssY0FBQTtBQUNMLGVBQUssWUFBWSxLQUFLO0FBQUEsUUFDeEI7QUFBQSxNQUNGO0FBQUEsTUFFUSxZQUFZLE9BQWdCO0FBQ2xDLGFBQUssV0FBVztBQUNoQixZQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxjQUFjO0FBQ3hDLGVBQUssY0FBQTtBQUNMLGVBQUssWUFBWSxLQUFLO0FBQ3RCLGVBQUssZUFBZSxNQUFNLGFBQWMsS0FBSztBQUFBLFFBQy9DO0FBQUEsTUFDRjtBQUFBLE1BRVEsWUFBWSxPQUFnQjtBQUNsQyxjQUFNLGdCQUFBO0FBQ04sY0FBTSxlQUFBO0FBQUEsTUFDUjtBQUFBLE1BRVEsY0FDTixhQUFzQyxRQUN0QyxjQUF1QixPQUFLO0FBRTVCLGFBQUssY0FBYztBQUNuQixhQUFLLFlBQVksVUFBVSxXQUFXO0FBQ3RDLGFBQUssV0FBVyxnQkFBZ0IsZUFBZSxXQUFXO0FBQUEsTUFDNUQ7QUFBQSxNQUVtQixTQUFNO0FBQ3ZCLGNBQU0sWUFBWSxLQUFLLHFCQUNuQixHQUFHLEtBQUssZ0JBQWdCLE1BQU0sS0FBSyxrQkFBa0IsS0FDckQ7QUFDSixlQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEseUJBSVksS0FBSyxZQUFZO0FBQUEsd0JBQ2xCLEtBQUssV0FBVztBQUFBLHlCQUNmLEtBQUssWUFBWTtBQUFBLG9CQUN0QixLQUFLLFdBQVc7QUFBQTtBQUFBLGNBRXRCLEtBQUssZUFDTDtBQUFBO0FBQUE7QUFBQSw2QkFHZSxLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUEsNkJBQ2xDLEtBQUssUUFBUTtBQUFBLDBCQUNoQixLQUFLLFVBQVUsT0FBTztBQUFBLDhCQUNsQixhQUFhLE9BQU87QUFBQSwyQkFDdkIsS0FBSyxVQUFVO0FBQUEsMEJBQ2hCLEtBQUssUUFBUTtBQUFBLHlCQUNkLEtBQUssT0FBTztBQUFBLGtCQUNuQixJQUFJLENBQUMsT0FBc0I7QUFDM0IsZUFBSyxlQUFlO0FBQUEsUUFDdEIsQ0FBQyxDQUFDO0FBQUEsaUJBQ0QsQ0FDSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsY0FLQyxJQUFJLENBQUMsTUFBaUIsS0FBSyxjQUFjLENBQTBCLENBQUM7QUFBQTtBQUFBLFlBRXRFLEtBQUssTUFBTSxTQUFTLElBQUksS0FBSyxnQkFBQSxJQUFvQixPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BTWhFO0FBQUEsSUFBQSxHQTlUNkIsd0NBSzdCLDRDQUlBLGdEQUtBLDBDQUtBOztBQW5CQyx5QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQUEsQ0FBTSxDQUFDOzhCQUczQixhQUNBLFNBQVMsRUFBRSxNQUFNLFFBQUEsQ0FBUyxDQUFDO0FBSTNCLGlDQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsZ0JBQUEsQ0FBaUIsQ0FBQzs0QkFJeEMsYUFDQSxVQUFVO3dDQUlWLGFBQ0EsU0FBUyxFQUFFLFdBQVcsc0JBQUEsQ0FBdUIsQ0FBQztBQUk5Qyw4QkFBQSxDQUFBLFNBQVMsRUFBRSxXQUFXLE1BQUEsQ0FBTyxDQUFDO0FBYTlCLDhCQUFBLENBQUEsU0FBUyxFQUFFLFdBQVcsTUFBQSxDQUFPLENBQUM7QUFuQ0YsbUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsTUFBSSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBSixPQUFJO0FBQUEsTUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLG9CQUFBLHVCQUFBO0FBS2pELG1CQUFBLElBQUEsTUFBQSxzQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFlBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsY0FBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFVBQVEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQVIsV0FBUTtBQUFBLE1BQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSx3QkFBQSwyQkFBQTtBQUl4QixtQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLGNBQVksS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQVosZUFBWTtBQUFBLE1BQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSw0QkFBQSwrQkFBQTtBQUs1QixtQkFBQSxJQUFBLE1BQUEsb0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxVQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFlBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixRQUFNLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxZQUFOLFNBQU07QUFBQSxNQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsc0JBQUEseUJBQUE7QUFLdEIsbUJBQUEsSUFBQSxNQUFBLGdDQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsc0JBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsd0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixvQkFBa0IsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQWxCLHFCQUFrQjtBQUFBLE1BQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxrQ0FBQSxxQ0FBQTtBQUlsQyxtQkFBQSxJQUFBLE1BQUEsdUJBQUEsRUFBQSxNQUFBLFVBQUEsTUFBQSxTQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFdBQUEsS0FBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBVyxRQUFLO0FBQUEsTUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLE1BQUEsMEJBQUE7QUFhaEIsbUJBQUEsSUFBQSxNQUFBLHVCQUFBLEVBQUEsTUFBQSxVQUFBLE1BQUEsU0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxXQUFBLEtBQUEsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFlBQVcsUUFBSztBQUFBLE1BQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLDBCQUFBOztVQTVDTyxHQUFBLFNBQVM7QUFBQSxNQUM5QixhQUFhO0FBQUEsSUFBQSxHQUxGO0FBQUE7QUE0VWYsU0FBTztBQUVUOyJ9
@@ -1,5 +1,5 @@
1
1
  import { SbbFileSelectorCommonElementMixin } from "./common/file-selector-common.js";
2
- import { f } from "../file-selector-common-csww18o8.js";
2
+ import { f } from "../file-selector-common-BxXdRZxt.js";
3
3
  export {
4
4
  SbbFileSelectorCommonElementMixin,
5
5
  f as fileSelectorCommonStyle
@@ -1 +1 @@
1
- {"version":3,"file":"file-selector.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/file-selector/file-selector/file-selector.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAU3E,OAAO,kCAAkC,CAAC;AAC1C,OAAO,yCAAyC,CAAC;AACjD,OAAO,eAAe,CAAC;;AAEvB;;;;GAIG;AACH,qBAGM,sBAAuB,SAAQ,2BAA6C;IAChF,OAAuB,MAAM,EAAE,cAAc,CAA2B;IACxE,gBAAuB,MAAM;;MAElB;cAEQ,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc;CAmBzE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
1
+ {"version":3,"file":"file-selector.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/file-selector/file-selector/file-selector.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAS3E,OAAO,yCAAyC,CAAC;;AAEjD;;;;GAIG;AACH,qBAGM,sBAAuB,SAAQ,2BAA6C;IAChF,OAAuB,MAAM,EAAE,cAAc,CAA2B;IACxE,gBAAuB,MAAM;;MAElB;cAEQ,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc;CAiBzE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
@@ -4,11 +4,8 @@ import { customElement } from "lit/decorators.js";
4
4
  import { ref } from "lit/directives/ref.js";
5
5
  import { html } from "lit/static-html.js";
6
6
  import { slotState } from "../../core/decorators.js";
7
- import { i18nFileSelectorButtonLabel } from "../../core/i18n.js";
8
7
  import { SbbFileSelectorCommonElementMixin, fileSelectorCommonStyle } from "../common.js";
9
- import "../../button/secondary-button.js";
10
8
  import "../../button/secondary-button-static.js";
11
- import "../../icon.js";
12
9
  let SbbFileSelectorElement = (() => {
13
10
  var _a;
14
11
  let _classDecorators = [customElement("sbb-file-selector"), slotState()];
@@ -19,21 +16,19 @@ let SbbFileSelectorElement = (() => {
19
16
  _a = class extends _classSuper {
20
17
  renderTemplate(input) {
21
18
  return html`
22
- <div class="sbb-file-selector__input-container">
23
- <label>
24
- <sbb-secondary-button-static
25
- size=${this.size}
26
- icon-name="folder-open-small"
27
- ?disabled=${this.disabled || this.formDisabled}
28
- ${ref((el) => {
19
+ <label>
20
+ <sbb-secondary-button-static
21
+ size=${this.size}
22
+ icon-name="folder-open-small"
23
+ ?disabled=${this.disabled || this.formDisabled}
24
+ ${ref((el) => {
29
25
  this.loadButton = el;
30
26
  })}
31
- >
32
- ${i18nFileSelectorButtonLabel[this.language.current]}
33
- </sbb-secondary-button-static>
34
- ${input}
35
- </label>
36
- </div>
27
+ >
28
+ ${this.getButtonLabel()}
29
+ </sbb-secondary-button-static>
30
+ ${input}
31
+ </label>
37
32
  `;
38
33
  }
39
34
  }, _classThis = _a, (() => {
@@ -49,4 +44,4 @@ let SbbFileSelectorElement = (() => {
49
44
  export {
50
45
  SbbFileSelectorElement
51
46
  };
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9maWxlLXNlbGVjdG9yL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24uanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbCB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi5qcyc7XG5pbXBvcnQgeyBmaWxlU2VsZWN0b3JDb21tb25TdHlsZSwgU2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi5qcyc7XG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9zZWNvbmRhcnktYnV0dG9uLXN0YXRpYy5qcyc7XG5pbXBvcnQgJy4uLy4uL2ljb24uanMnO1xuXG4vKipcbiAqIEl0IGFsbG93cyB0byBzZWxlY3Qgb25lIG9yIG1vcmUgZmlsZSBmcm9tIHN0b3JhZ2UgZGV2aWNlcyBhbmQgZGlzcGxheSB0aGVtLlxuICpcbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGBzYmItZm9ybS1lcnJvcmAgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZmlsZS1zZWxlY3RvcicpXG5Ac2xvdFN0YXRlKClcbmNsYXNzIFNiYkZpbGVTZWxlY3RvckVsZW1lbnQgZXh0ZW5kcyBTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50TWl4aW4oTGl0RWxlbWVudCkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBmaWxlU2VsZWN0b3JDb21tb25TdHlsZTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgZmlsZWNoYW5nZWQ6ICdmaWxlY2hhbmdlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKGlucHV0OiBUZW1wbGF0ZVJlc3VsdCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9faW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgIDxsYWJlbD5cbiAgICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljXG4gICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgaWNvbi1uYW1lPVwiZm9sZGVyLW9wZW4tc21hbGxcIlxuICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZH1cbiAgICAgICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgPC9zYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWM+XG4gICAgICAgICAgJHtpbnB1dH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1maWxlLXNlbGVjdG9yJzogU2JiRmlsZVNlbGVjdG9yRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBc0JNLDBCQUFzQixNQUFBOztBQUYzQixNQUFBLG1CQUFBLENBQUEsY0FBYyxtQkFBbUIsR0FDakMsV0FBVzs7OztvQkFDeUIsa0NBQWtDLFVBQVU7QUFBcEQsRUFBQSxtQkFBUSxZQUE2QztBQUFBLElBTTdELGVBQWUsT0FBcUI7QUFDckQsYUFBTztBQUFBO0FBQUE7QUFBQTtBQUFBLG1CQUlRLEtBQUssSUFBSTtBQUFBO0FBQUEsd0JBRUosS0FBSyxZQUFZLEtBQUssWUFBWTtBQUFBLGNBQzVDLElBQUksQ0FBQyxPQUFzQjtBQUMzQixhQUFLLGFBQWE7QUFBQSxNQUNwQixDQUFDLENBQUM7QUFBQTtBQUFBLGNBRUEsNEJBQTRCLEtBQUssU0FBUyxPQUFPLENBQUM7QUFBQTtBQUFBLFlBRXBELEtBQUs7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQUlmO0FBQUE7O0FBeEJGLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5Qix5QkFDekIsR0FBQSxTQUFTO0FBQUEsSUFDOUIsYUFBYTtBQUFBLEVBQUEsR0FIWCxrQkFBQSxZQUFBLHVCQUFBLEdBQXVCOzs7In0=
47
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9maWxlLXNlbGVjdG9yL2ZpbGUtc2VsZWN0b3IvZmlsZS1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQvc3RhdGljLWh0bWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQgfSBmcm9tICcuLi8uLi9idXR0b24uanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGZpbGVTZWxlY3RvckNvbW1vblN0eWxlLCBTYmJGaWxlU2VsZWN0b3JDb21tb25FbGVtZW50TWl4aW4gfSBmcm9tICcuLi9jb21tb24uanMnO1xuXG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9zZWNvbmRhcnktYnV0dG9uLXN0YXRpYy5qcyc7XG5cbi8qKlxuICogSXQgYWxsb3dzIHRvIHNlbGVjdCBvbmUgb3IgbW9yZSBmaWxlIGZyb20gc3RvcmFnZSBkZXZpY2VzIGFuZCBkaXNwbGF5IHRoZW0uXG4gKlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyB0byBwcm92aWRlIGEgYHNiYi1mb3JtLWVycm9yYCB0byBzaG93IGFuIGVycm9yIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1maWxlLXNlbGVjdG9yJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRmlsZVNlbGVjdG9yRWxlbWVudCBleHRlbmRzIFNiYkZpbGVTZWxlY3RvckNvbW1vbkVsZW1lbnRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IGZpbGVTZWxlY3RvckNvbW1vblN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBmaWxlY2hhbmdlZDogJ2ZpbGVjaGFuZ2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoaW5wdXQ6IFRlbXBsYXRlUmVzdWx0KTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGxhYmVsPlxuICAgICAgICA8c2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljXG4gICAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgICBpY29uLW5hbWU9XCJmb2xkZXItb3Blbi1zbWFsbFwiXG4gICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZH1cbiAgICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRCdXR0b24gPSBlbCBhcyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50O1xuICAgICAgICAgIH0pfVxuICAgICAgICA+XG4gICAgICAgICAgJHt0aGlzLmdldEJ1dHRvbkxhYmVsKCl9XG4gICAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgICAgICAke2lucHV0fVxuICAgICAgPC9sYWJlbD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZmlsZS1zZWxlY3Rvcic6IFNiYkZpbGVTZWxlY3RvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztJQW1CTSwwQkFBc0IsTUFBQTs7QUFGM0IsTUFBQSxtQkFBQSxDQUFBLGNBQWMsbUJBQW1CLEdBQ2pDLFdBQVc7Ozs7b0JBQ3lCLGtDQUFrQyxVQUFVO0FBQXBELEVBQUEsbUJBQVEsWUFBNkM7QUFBQSxJQU03RCxlQUFlLE9BQXFCO0FBQ3JELGFBQU87QUFBQTtBQUFBO0FBQUEsaUJBR00sS0FBSyxJQUFJO0FBQUE7QUFBQSxzQkFFSixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUEsWUFDNUMsSUFBSSxDQUFDLE9BQXNCO0FBQzNCLGFBQUssYUFBYTtBQUFBLE1BQ3BCLENBQUMsQ0FBQztBQUFBO0FBQUEsWUFFQSxLQUFLLGdCQUFnQjtBQUFBO0FBQUEsVUFFdkIsS0FBSztBQUFBO0FBQUE7QUFBQSxJQUdiO0FBQUE7O0FBdEJGLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5Qix5QkFDekIsR0FBQSxTQUFTO0FBQUEsSUFDOUIsYUFBYTtBQUFBLEVBQUEsR0FIWCxrQkFBQSxZQUFBLHVCQUFBLEdBQXVCOzs7In0=
@@ -12,13 +12,6 @@ export declare class SbbFileSelectorDropzoneElement extends SbbFileSelectorDropz
12
12
  };
13
13
  /** The title displayed in `dropzone` variant. */
14
14
  accessor titleContent: string;
15
- private _counter;
16
- private _dragTarget?;
17
- private _blockEvent;
18
- private _onDragEnter;
19
- private _onDragLeave;
20
- private _onFileDrop;
21
- private _setDragState;
22
15
  protected renderTemplate(input: TemplateResult): TemplateResult;
23
16
  }
24
17
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"file-selector-dropzone.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/file-selector/file-selector-dropzone/file-selector-dropzone.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAU3E,OAAO,kCAAkC,CAAC;AAC1C,OAAO,yCAAyC,CAAC;AACjD,OAAO,eAAe,CAAC;;AAIvB;;;;GAIG;AACH,qBAGM,8BAA+B,SAAQ,mCAA6C;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAoC;IACjF,gBAAuB,MAAM;;MAElB;IAEX,iDAAiD;IACjD,SAEgB,YAAY,EAAE,MAAM,CAAM;IAI1C,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;cASF,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc;CAqCzE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,4BAA4B,EAAE,8BAA8B,CAAC;KAC9D;CACF"}
1
+ {"version":3,"file":"file-selector-dropzone.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/file-selector/file-selector-dropzone/file-selector-dropzone.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAa3E,OAAO,yCAAyC,CAAC;AACjD,OAAO,eAAe,CAAC;;AAIvB;;;;GAIG;AACH,qBAGM,8BAA+B,SAAQ,mCAA6C;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAoC;IACjF,gBAAuB,MAAM;;MAElB;IAEX,iDAAiD;IACjD,SAEgB,YAAY,EAAE,MAAM,CAAM;cAEvB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc;CA+BzE;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,4BAA4B,EAAE,8BAA8B,CAAC;KAC9D;CACF"}
@@ -5,15 +5,14 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
5
5
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
- import { __runInitializers, __esDecorate } from "tslib";
8
+ import { __esDecorate, __runInitializers } from "tslib";
9
9
  import { css, LitElement } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { ref } from "lit/directives/ref.js";
12
12
  import { html } from "lit/static-html.js";
13
13
  import { slotState, forceType } from "../../core/decorators.js";
14
- import { i18nFileSelectorSubtitleLabel, i18nFileSelectorButtonLabel } from "../../core/i18n.js";
14
+ import { i18nFileSelectorSubtitleLabelMultiple, i18nFileSelectorSubtitleLabel } from "../../core/i18n.js";
15
15
  import { SbbFileSelectorCommonElementMixin, fileSelectorCommonStyle } from "../common.js";
16
- import "../../button/secondary-button.js";
17
16
  import "../../button/secondary-button-static.js";
18
17
  import "../../icon.js";
19
18
  const style = css`*,
@@ -42,18 +41,15 @@ const style = css`*,
42
41
 
43
42
  .sbb-file-selector__dropzone-area--title {
44
43
  font-weight: bold;
45
- --sbb-title-line-height: var(--sbb-typo-line-height-titles);
46
- --sbb-title-margin-block-start: 0;
47
- --sbb-title-margin-block-end: 0;
48
- margin: 0;
49
- margin-block: var(--sbb-title-margin-block-start) var(--sbb-title-margin-block-end);
44
+ --sbb-title-font-size: var(--sbb-title-font-size-level-6);
45
+ --sbb-title-line-height: var(--sbb-typo-line-height-body-text);
46
+ margin-block: var(--sbb-title-margin-block-start, 0) var(--sbb-title-margin-block-end, 0);
47
+ margin-inline: 0;
50
48
  font-family: var(--sbb-typo-font-family);
51
49
  font-weight: bold;
52
- line-height: var(--sbb-title-line-height);
50
+ line-height: var(--sbb-title-line-height, var(--sbb-typo-line-height-titles));
53
51
  letter-spacing: var(--sbb-typo-letter-spacing-titles);
54
52
  font-size: var(--sbb-title-font-size);
55
- --sbb-title-font-size: var(--sbb-font-size-title-6);
56
- --sbb-title-line-height: var(--sbb-typo-line-height-body-text);
57
53
  text-align: center;
58
54
  color: var(--sbb-file-selector-color);
59
55
  }
@@ -82,9 +78,8 @@ let SbbFileSelectorDropzoneElement = (() => {
82
78
  _a = class extends _classSuper {
83
79
  constructor() {
84
80
  super(...arguments);
85
- __privateAdd(this, _titleContent_accessor_storage);
86
- __privateSet(this, _titleContent_accessor_storage, __runInitializers(this, _titleContent_initializers, ""));
87
- this._counter = (__runInitializers(this, _titleContent_extraInitializers), 0);
81
+ __privateAdd(this, _titleContent_accessor_storage, __runInitializers(this, _titleContent_initializers, ""));
82
+ __runInitializers(this, _titleContent_extraInitializers);
88
83
  }
89
84
  /** The title displayed in `dropzone` variant. */
90
85
  get titleContent() {
@@ -93,72 +88,33 @@ let SbbFileSelectorDropzoneElement = (() => {
93
88
  set titleContent(value) {
94
89
  __privateSet(this, _titleContent_accessor_storage, value);
95
90
  }
96
- _blockEvent(event) {
97
- event.stopPropagation();
98
- event.preventDefault();
99
- }
100
- _onDragEnter(event) {
101
- this._counter++;
102
- if (!this.disabled && !this.formDisabled) {
103
- this._setDragState(event.target, true);
104
- this._blockEvent(event);
105
- }
106
- }
107
- _onDragLeave(event) {
108
- this._counter--;
109
- if (!this.disabled && !this.formDisabled && event.target === this._dragTarget && this._counter === 0) {
110
- this._setDragState();
111
- this._blockEvent(event);
112
- }
113
- }
114
- _onFileDrop(event) {
115
- this._counter = 0;
116
- if (!this.disabled && !this.formDisabled) {
117
- this._setDragState();
118
- this._blockEvent(event);
119
- this.createFileList(event.dataTransfer.files);
120
- }
121
- }
122
- _setDragState(dragTarget = void 0, isDragEnter = false) {
123
- this._dragTarget = dragTarget;
124
- this.toggleAttribute("data-active", isDragEnter);
125
- this.loadButton.toggleAttribute("data-active", isDragEnter);
126
- }
127
91
  renderTemplate(input) {
128
92
  return html`
129
- <div
130
- class="sbb-file-selector__input-container"
131
- @dragenter=${this._onDragEnter}
132
- @dragover=${this._blockEvent}
133
- @dragleave=${this._onDragLeave}
134
- @drop=${this._onFileDrop}
135
- >
136
- <label>
137
- <span class="sbb-file-selector__dropzone-area">
138
- <span class="sbb-file-selector__dropzone-area--icon">
139
- <sbb-icon
140
- name=${this.size === "m" ? "folder-open-medium" : "folder-open-small"}
141
- ></sbb-icon>
142
- </span>
143
- <span class="sbb-file-selector__dropzone-area--title">${this.titleContent}</span>
144
- <span class="sbb-file-selector__dropzone-area--subtitle">
145
- ${i18nFileSelectorSubtitleLabel[this.language.current]}
146
- </span>
147
- <span class="sbb-file-selector__dropzone-area--button">
148
- <sbb-secondary-button-static
149
- size=${this.size}
150
- ?disabled=${this.disabled || this.formDisabled}
151
- ${ref((el) => {
93
+ <label>
94
+ <span class="sbb-file-selector__dropzone-area">
95
+ <span class="sbb-file-selector__dropzone-area--icon">
96
+ <sbb-icon
97
+ name=${this.size === "m" ? "folder-open-medium" : "folder-open-small"}
98
+ ></sbb-icon>
99
+ </span>
100
+ <span class="sbb-file-selector__dropzone-area--title">${this.titleContent}</span>
101
+ <span class="sbb-file-selector__dropzone-area--subtitle">
102
+ ${this.multiple ? i18nFileSelectorSubtitleLabelMultiple[this.language.current] : i18nFileSelectorSubtitleLabel[this.language.current]}
103
+ </span>
104
+ <span class="sbb-file-selector__dropzone-area--button">
105
+ <sbb-secondary-button-static
106
+ size=${this.size}
107
+ ?disabled=${this.disabled || this.formDisabled}
108
+ ${ref((el) => {
152
109
  this.loadButton = el;
153
110
  })}
154
- >
155
- ${i18nFileSelectorButtonLabel[this.language.current]}
156
- </sbb-secondary-button-static>
157
- </span>
111
+ >
112
+ ${this.getButtonLabel()}
113
+ </sbb-secondary-button-static>
158
114
  </span>
159
- ${input}
160
- </label>
161
- </div>
115
+ </span>
116
+ ${input}
117
+ </label>
162
118
  `;
163
119
  }
164
120
  }, _titleContent_accessor_storage = new WeakMap(), _classThis = _a, (() => {
@@ -178,4 +134,4 @@ let SbbFileSelectorDropzoneElement = (() => {
178
134
  export {
179
135
  SbbFileSelectorDropzoneElement
180
136
  };
181
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci1kcm9wem9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9maWxlLXNlbGVjdG9yL2ZpbGUtc2VsZWN0b3ItZHJvcHpvbmUvZmlsZS1zZWxlY3Rvci1kcm9wem9uZS5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgY3VzdG9tRWxlbWVudCB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5GaWxlU2VsZWN0b3JCdXR0b25MYWJlbCwgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWwgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgZmlsZVNlbGVjdG9yQ29tbW9uU3R5bGUsIFNiYkZpbGVTZWxlY3RvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCAnLi4vLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24uanMnO1xuaW1wb3J0ICcuLi8uLi9idXR0b24vc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWMuanMnO1xuaW1wb3J0ICcuLi8uLi9pY29uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZmlsZS1zZWxlY3Rvci1kcm9wem9uZS5zY3NzP2xpdCZpbmxpbmUnO1xuXG4vKipcbiAqIEl0IGFsbG93cyB0byBzZWxlY3Qgb25lIG9yIG1vcmUgZmlsZSBmcm9tIHN0b3JhZ2UgZGV2aWNlcyB2aWEgYnV0dG9uIGNsaWNrIG9yIGRyYWcgYW5kIGRyb3AsIGFuZCBkaXNwbGF5IHRoZW0uXG4gKlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyB0byBwcm92aWRlIGEgYHNiYi1mb3JtLWVycm9yYCB0byBzaG93IGFuIGVycm9yIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydFxuQGN1c3RvbUVsZW1lbnQoJ3NiYi1maWxlLXNlbGVjdG9yLWRyb3B6b25lJylcbkBzbG90U3RhdGUoKVxuY2xhc3MgU2JiRmlsZVNlbGVjdG9yRHJvcHpvbmVFbGVtZW50IGV4dGVuZHMgU2JiRmlsZVNlbGVjdG9yQ29tbW9uRWxlbWVudE1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2ZpbGVTZWxlY3RvckNvbW1vblN0eWxlLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGZpbGVjaGFuZ2VkOiAnZmlsZWNoYW5nZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgdGl0bGUgZGlzcGxheWVkIGluIGBkcm9wem9uZWAgdmFyaWFudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWNvbnRlbnQnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0aXRsZUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIC8vIFNhZmFyaSBoYXMgYSBwZWN1bGlhciBiZWhhdmlvciB3aGVuIGRyYWdnaW5nIGZpbGVzIG9uIHRoZSBpbm5lciBidXR0b24gaW4gJ2Ryb3B6b25lJyB2YXJpYW50O1xuICAvLyB0aGlzIHdpbGwgcmVxdWlyZSBhIGNvdW50ZXIgdG8gY29ycmVjdGx5IGhhbmRsZSB0aGUgZHJhZ0VudGVyL2RyYWdMZWF2ZS5cbiAgcHJpdmF0ZSBfY291bnRlcjogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfZHJhZ1RhcmdldD86IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgX2Jsb2NrRXZlbnQoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkRyYWdFbnRlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlcisrO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5mb3JtRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZShldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIHRydWUpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2NvdW50ZXItLTtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5kaXNhYmxlZCAmJlxuICAgICAgIXRoaXMuZm9ybURpc2FibGVkICYmXG4gICAgICBldmVudC50YXJnZXQgPT09IHRoaXMuX2RyYWdUYXJnZXQgJiZcbiAgICAgIHRoaXMuX2NvdW50ZXIgPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX3NldERyYWdTdGF0ZSgpO1xuICAgICAgdGhpcy5fYmxvY2tFdmVudChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25GaWxlRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fY291bnRlciA9IDA7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmZvcm1EaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2V0RHJhZ1N0YXRlKCk7XG4gICAgICB0aGlzLl9ibG9ja0V2ZW50KGV2ZW50KTtcbiAgICAgIHRoaXMuY3JlYXRlRmlsZUxpc3QoZXZlbnQuZGF0YVRyYW5zZmVyIS5maWxlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RHJhZ1N0YXRlKFxuICAgIGRyYWdUYXJnZXQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIGlzRHJhZ0VudGVyOiBib29sZWFuID0gZmFsc2UsXG4gICk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdUYXJnZXQgPSBkcmFnVGFyZ2V0O1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIGlzRHJhZ0VudGVyKTtcbiAgICB0aGlzLmxvYWRCdXR0b24udG9nZ2xlQXR0cmlidXRlKCdkYXRhLWFjdGl2ZScsIGlzRHJhZ0VudGVyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZShpbnB1dDogVGVtcGxhdGVSZXN1bHQpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2lucHV0LWNvbnRhaW5lclwiXG4gICAgICAgIEBkcmFnZW50ZXI9JHt0aGlzLl9vbkRyYWdFbnRlcn1cbiAgICAgICAgQGRyYWdvdmVyPSR7dGhpcy5fYmxvY2tFdmVudH1cbiAgICAgICAgQGRyYWdsZWF2ZT0ke3RoaXMuX29uRHJhZ0xlYXZlfVxuICAgICAgICBAZHJvcD0ke3RoaXMuX29uRmlsZURyb3B9XG4gICAgICA+XG4gICAgICAgIDxsYWJlbD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1pY29uXCI+XG4gICAgICAgICAgICAgIDxzYmItaWNvblxuICAgICAgICAgICAgICAgIG5hbWU9JHt0aGlzLnNpemUgPT09ICdtJyA/ICdmb2xkZXItb3Blbi1tZWRpdW0nIDogJ2ZvbGRlci1vcGVuLXNtYWxsJ31cbiAgICAgICAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS10aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tc3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgJHtpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0tYnV0dG9uXCI+XG4gICAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgICAgICAgICBzaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWQgfHwgdGhpcy5mb3JtRGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkQnV0dG9uID0gZWwgYXMgU2JiU2Vjb25kYXJ5QnV0dG9uU3RhdGljRWxlbWVudDtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7aTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAke2lucHV0fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWZpbGUtc2VsZWN0b3ItZHJvcHpvbmUnOiBTYmJGaWxlU2VsZWN0b3JEcm9wem9uZUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXdCTSxrQ0FBOEIsTUFBQTs7QUFGbkMsTUFBQSxtQkFBQSxDQUFBLGNBQWMsNEJBQTRCLEdBQzFDLFdBQVc7Ozs7b0JBQ2lDLGtDQUFrQyxVQUFVOzs7O0FBQXBELEVBQUEsbUJBQVEsWUFBNkM7QUFBQTs7QUFTeEY7QUFBZ0IseUJBQUEsZ0NBQUEsa0JBQUEsTUFBQSw0QkFBdUIsRUFBRTtBQUlqQyxXQUFBLFlBQVEsa0JBQUEsTUFBQSwrQkFBQSxHQUFXO0FBQUEsSUFvRjdCO0FBQUE7QUFBQSxJQXhGRSxJQUFnQixlQUFZO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUE1QixJQUFnQixhQUFZLE9BQUE7QUFBQSx5QkFBQSxnQ0FBQTtBQUFBLElBQUE7QUFBQSxJQU9wQixZQUFZLE9BQWdCO0FBQ2xDLFlBQU0sZ0JBQUE7QUFDTixZQUFNLGVBQUE7QUFBQSxJQUNSO0FBQUEsSUFFUSxhQUFhLE9BQWdCO0FBQ25DLFdBQUs7QUFDTCxVQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxjQUFjO0FBQ3hDLGFBQUssY0FBYyxNQUFNLFFBQXVCLElBQUk7QUFDcEQsYUFBSyxZQUFZLEtBQUs7QUFBQSxNQUN4QjtBQUFBLElBQ0Y7QUFBQSxJQUVRLGFBQWEsT0FBZ0I7QUFDbkMsV0FBSztBQUNMLFVBQ0UsQ0FBQyxLQUFLLFlBQ04sQ0FBQyxLQUFLLGdCQUNOLE1BQU0sV0FBVyxLQUFLLGVBQ3RCLEtBQUssYUFBYSxHQUNsQjtBQUNBLGFBQUssY0FBQTtBQUNMLGFBQUssWUFBWSxLQUFLO0FBQUEsTUFDeEI7QUFBQSxJQUNGO0FBQUEsSUFFUSxZQUFZLE9BQWdCO0FBQ2xDLFdBQUssV0FBVztBQUNoQixVQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxjQUFjO0FBQ3hDLGFBQUssY0FBQTtBQUNMLGFBQUssWUFBWSxLQUFLO0FBQ3RCLGFBQUssZUFBZSxNQUFNLGFBQWMsS0FBSztBQUFBLE1BQy9DO0FBQUEsSUFDRjtBQUFBLElBRVEsY0FDTixhQUFzQyxRQUN0QyxjQUF1QixPQUFLO0FBRTVCLFdBQUssY0FBYztBQUNuQixXQUFLLGdCQUFnQixlQUFlLFdBQVc7QUFDL0MsV0FBSyxXQUFXLGdCQUFnQixlQUFlLFdBQVc7QUFBQSxJQUM1RDtBQUFBLElBRW1CLGVBQWUsT0FBcUI7QUFDckQsYUFBTztBQUFBO0FBQUE7QUFBQSxxQkFHVSxLQUFLLFlBQVk7QUFBQSxvQkFDbEIsS0FBSyxXQUFXO0FBQUEscUJBQ2YsS0FBSyxZQUFZO0FBQUEsZ0JBQ3RCLEtBQUssV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFNVCxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsbUJBQW1CO0FBQUE7QUFBQTtBQUFBLG9FQUdqQixLQUFLLFlBQVk7QUFBQTtBQUFBLGdCQUVyRSw4QkFBOEIsS0FBSyxTQUFTLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBLHVCQUk3QyxLQUFLLElBQUk7QUFBQSw0QkFDSixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUEsa0JBQzVDLElBQUksQ0FBQyxPQUFzQjtBQUMzQixhQUFLLGFBQWE7QUFBQSxNQUNwQixDQUFDLENBQUM7QUFBQTtBQUFBLGtCQUVBLDRCQUE0QixLQUFLLFNBQVMsT0FBTyxDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFJeEQsS0FBSztBQUFBO0FBQUE7QUFBQTtBQUFBLElBSWY7QUFBQSxLQXZGQTs7Z0NBRkMsYUFDQSxTQUFTLEVBQUUsV0FBVyxnQkFBQSxDQUFpQixDQUFDO0FBQ3pDLGlCQUFBLElBQUEsTUFBQSwwQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGdCQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGtCQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsY0FBWSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBWixlQUFZO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLDRCQUFBLCtCQUFBO0FBVDlCLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixDQUFDLHlCQUF5QixLQUFLLEdBQ3hELEdBQUEsU0FBUztBQUFBLElBQzlCLGFBQWE7QUFBQSxFQUFBLEdBSFgsa0JBQUEsWUFBQSx1QkFBQSxHQUErQjs7OyJ9
137
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci1kcm9wem9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9maWxlLXNlbGVjdG9yL2ZpbGUtc2VsZWN0b3ItZHJvcHpvbmUvZmlsZS1zZWxlY3Rvci1kcm9wem9uZS5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHJlZiB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlZi5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJTZWNvbmRhcnlCdXR0b25TdGF0aWNFbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7XG4gIGkxOG5GaWxlU2VsZWN0b3JTdWJ0aXRsZUxhYmVsLFxuICBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbE11bHRpcGxlLFxufSBmcm9tICcuLi8uLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHsgZmlsZVNlbGVjdG9yQ29tbW9uU3R5bGUsIFNiYkZpbGVTZWxlY3RvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCAnLi4vLi4vYnV0dG9uL3NlY29uZGFyeS1idXR0b24tc3RhdGljLmpzJztcbmltcG9ydCAnLi4vLi4vaWNvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2ZpbGUtc2VsZWN0b3ItZHJvcHpvbmUuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBhbGxvd3MgdG8gc2VsZWN0IG9uZSBvciBtb3JlIGZpbGUgZnJvbSBzdG9yYWdlIGRldmljZXMgdmlhIGJ1dHRvbiBjbGljayBvciBkcmFnIGFuZCBkcm9wLCBhbmQgZGlzcGxheSB0aGVtLlxuICpcbiAqIEBzbG90IGVycm9yIC0gVXNlIHRoaXMgdG8gcHJvdmlkZSBhIGBzYmItZm9ybS1lcnJvcmAgdG8gc2hvdyBhbiBlcnJvciBtZXNzYWdlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZmlsZS1zZWxlY3Rvci1kcm9wem9uZScpXG5Ac2xvdFN0YXRlKClcbmNsYXNzIFNiYkZpbGVTZWxlY3RvckRyb3B6b25lRWxlbWVudCBleHRlbmRzIFNiYkZpbGVTZWxlY3RvckNvbW1vbkVsZW1lbnRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtmaWxlU2VsZWN0b3JDb21tb25TdHlsZSwgc3R5bGVdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBmaWxlY2hhbmdlZDogJ2ZpbGVjaGFuZ2VkJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIHRpdGxlIGRpc3BsYXllZCBpbiBgZHJvcHpvbmVgIHZhcmlhbnQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0aXRsZS1jb250ZW50JyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyVGVtcGxhdGUoaW5wdXQ6IFRlbXBsYXRlUmVzdWx0KTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGxhYmVsPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItZmlsZS1zZWxlY3Rvcl9fZHJvcHpvbmUtYXJlYS0taWNvblwiPlxuICAgICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICAgIG5hbWU9JHt0aGlzLnNpemUgPT09ICdtJyA/ICdmb2xkZXItb3Blbi1tZWRpdW0nIDogJ2ZvbGRlci1vcGVuLXNtYWxsJ31cbiAgICAgICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS10aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWZpbGUtc2VsZWN0b3JfX2Ryb3B6b25lLWFyZWEtLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAke3RoaXMubXVsdGlwbGVcbiAgICAgICAgICAgICAgPyBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbE11bHRpcGxlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgICAgICAgOiBpMThuRmlsZVNlbGVjdG9yU3VidGl0bGVMYWJlbFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1maWxlLXNlbGVjdG9yX19kcm9wem9uZS1hcmVhLS1idXR0b25cIj5cbiAgICAgICAgICAgIDxzYmItc2Vjb25kYXJ5LWJ1dHRvbi1zdGF0aWNcbiAgICAgICAgICAgICAgc2l6ZT0ke3RoaXMuc2l6ZX1cbiAgICAgICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZH1cbiAgICAgICAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEJ1dHRvbiA9IGVsIGFzIFNiYlNlY29uZGFyeUJ1dHRvblN0YXRpY0VsZW1lbnQ7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAke3RoaXMuZ2V0QnV0dG9uTGFiZWwoKX1cbiAgICAgICAgICAgIDwvc2JiLXNlY29uZGFyeS1idXR0b24tc3RhdGljPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAke2lucHV0fVxuICAgICAgPC9sYWJlbD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZmlsZS1zZWxlY3Rvci1kcm9wem9uZSc6IFNiYkZpbGVTZWxlY3RvckRyb3B6b25lRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUEwQk0sa0NBQThCLE1BQUE7O0FBRm5DLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLDRCQUE0QixHQUMxQyxXQUFXOzs7O29CQUNpQyxrQ0FBa0MsVUFBVTs7OztBQUFwRCxFQUFBLG1CQUFRLFlBQTZDO0FBQUE7O0FBU3hGLHlEQUFBLGtCQUFBLE1BQUEsNEJBQXVDLEVBQUU7Ozs7SUFBekMsSUFBZ0IsZUFBWTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBNUIsSUFBZ0IsYUFBWSxPQUFBO0FBQUEseUJBQUEsZ0NBQUE7QUFBQSxJQUFBO0FBQUEsSUFFVCxlQUFlLE9BQXFCO0FBQ3JELGFBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUtVLEtBQUssU0FBUyxNQUFNLHVCQUF1QixtQkFBbUI7QUFBQTtBQUFBO0FBQUEsa0VBR2pCLEtBQUssWUFBWTtBQUFBO0FBQUEsY0FFckUsS0FBSyxXQUNILHNDQUFzQyxLQUFLLFNBQVMsT0FBTyxJQUMzRCw4QkFBOEIsS0FBSyxTQUFTLE9BQU8sQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUkvQyxLQUFLLElBQUk7QUFBQSwwQkFDSixLQUFLLFlBQVksS0FBSyxZQUFZO0FBQUEsZ0JBQzVDLElBQUksQ0FBQyxPQUFzQjtBQUMzQixhQUFLLGFBQWE7QUFBQSxNQUNwQixDQUFDLENBQUM7QUFBQTtBQUFBLGdCQUVBLEtBQUssZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFJM0IsS0FBSztBQUFBO0FBQUE7QUFBQSxJQUdiO0FBQUEsS0FoQ0E7O2dDQUZDLGFBQ0EsU0FBUyxFQUFFLFdBQVcsZ0JBQUEsQ0FBaUIsQ0FBQztBQUN6QyxpQkFBQSxJQUFBLE1BQUEsMEJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxnQkFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxrQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLGNBQVksS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVosZUFBWTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSw0QkFBQSwrQkFBQTtBQVQ5QixpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBQ3lCLEdBQUEsU0FBeUIsQ0FBQyx5QkFBeUIsS0FBSyxHQUN4RCxHQUFBLFNBQVM7QUFBQSxJQUM5QixhQUFhO0FBQUEsRUFBQSxHQUhYLGtCQUFBLFlBQUEsdUJBQUEsR0FBK0I7OzsifQ==
@@ -27,12 +27,12 @@ const fileSelectorCommon = css`*,
27
27
  }
28
28
  }
29
29
 
30
- :host([data-active]) {
30
+ :host(:is(:state(active), [state--active])) {
31
31
  --sbb-file-selector-background-color: var(--sbb-color-milk);
32
32
  --sbb-file-selector-border-color: var(--sbb-color-storm);
33
33
  }
34
34
  @media (forced-colors: active) {
35
- :host([data-active]) {
35
+ :host(:is(:state(active), [state--active])) {
36
36
  --sbb-file-selector-border-color: Highlight;
37
37
  }
38
38
  }
@@ -102,4 +102,4 @@ const fileSelectorCommon = css`*,
102
102
  export {
103
103
  fileSelectorCommon as f
104
104
  };
105
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci1jb21tb24tY3N3dzE4bzguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
105
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3Rvci1jb21tb24tQnhYZFJaeHQuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==
@@ -1,5 +1,5 @@
1
1
  import { SbbFileSelectorCommonElementMixin } from "./file-selector/common/file-selector-common.js";
2
- import { f } from "./file-selector-common-csww18o8.js";
2
+ import { f } from "./file-selector-common-BxXdRZxt.js";
3
3
  import { SbbFileSelectorDropzoneElement } from "./file-selector/file-selector-dropzone/file-selector-dropzone.component.js";
4
4
  import { SbbFileSelectorElement } from "./file-selector/file-selector/file-selector.component.js";
5
5
  export {
@@ -1,7 +1,7 @@
1
1
  import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
2
  /** An interface which allows a control to work inside of a `SbbFormField`. */
3
3
  export interface SbbFormFieldElementControl {
4
- /** The id of the form field. */
4
+ /** The id of the form field control. */
5
5
  readonly id: string;
6
6
  /** Whether the control is empty. */
7
7
  readonly empty: boolean;
@@ -9,8 +9,11 @@ export interface SbbFormFieldElementControl {
9
9
  readonly readOnly?: boolean;
10
10
  /** Whether the control is disabled. */
11
11
  readonly disabled: boolean;
12
- /** Handles a click on the control's container. */
13
- onContainerClick(event: MouseEvent): void;
12
+ /**
13
+ * Handles a click on the control's container.
14
+ * If not implemented, focus() of the element is called.
15
+ */
16
+ onContainerClick?(event: MouseEvent): void;
14
17
  }
15
18
  export declare class SbbFormFieldControlEvent extends Event {
16
19
  private _control;
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field/form-field.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-field.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/form-field/form-field/form-field.component.ts"],"names":[],"mappings":"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"}