@sbb-esta/lyne-elements 2.0.2 → 2.1.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 (216) hide show
  1. package/accordion/accordion.d.ts.map +1 -1
  2. package/accordion.js +6 -6
  3. package/alert/alert.js +8 -8
  4. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  5. package/autocomplete-grid/autocomplete-grid-button.js +4 -4
  6. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
  7. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  8. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  9. package/autocomplete-grid/autocomplete-grid-option.js +10 -10
  10. package/autocomplete-grid/autocomplete-grid-row.js +4 -4
  11. package/autocomplete.js +92 -89
  12. package/breadcrumb/breadcrumb-group.js +4 -4
  13. package/button/accent-button-link.js +9 -9
  14. package/button/accent-button-static.js +6 -6
  15. package/button/accent-button.js +6 -6
  16. package/button/button-link.js +7 -7
  17. package/button/button-static.js +7 -7
  18. package/button/button.js +8 -8
  19. package/button/common.js +1 -1
  20. package/button/mini-button-group.js +8 -8
  21. package/button/secondary-button-link.js +7 -7
  22. package/button/secondary-button-static.js +7 -7
  23. package/button/secondary-button.js +3 -3
  24. package/button/transparent-button-link.js +6 -6
  25. package/button/transparent-button-static.js +5 -5
  26. package/button/transparent-button.js +6 -6
  27. package/card/card-badge.js +9 -9
  28. package/card/card-button.js +5 -5
  29. package/card/card-link.js +7 -7
  30. package/checkbox/checkbox-panel.js +16 -16
  31. package/checkbox/checkbox.js +15 -15
  32. package/checkbox/common.js +3 -3
  33. package/clock.js +8 -8
  34. package/container/container/container.d.ts +1 -1
  35. package/container/container/container.d.ts.map +1 -1
  36. package/container/container.js +21 -21
  37. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  38. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  39. package/container/sticky-bar.js +4 -4
  40. package/core/base-elements.js +8 -8
  41. package/core/controllers.js +4 -4
  42. package/core/datetime/date-adapter.d.ts +1 -1
  43. package/core/datetime/date-adapter.d.ts.map +1 -1
  44. package/core/datetime/native-date-adapter.d.ts +1 -1
  45. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  46. package/core/datetime.js +6 -6
  47. package/core/dom/scroll.d.ts +1 -1
  48. package/core/dom/scroll.d.ts.map +1 -1
  49. package/core/dom.js +39 -39
  50. package/core/eventing.js +4 -4
  51. package/core/mixins/form-associated-mixin.d.ts +2 -4
  52. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  53. package/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
  54. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  55. package/core/mixins.js +276 -276
  56. package/core/styles/core.scss +21 -2
  57. package/core/testing.js +14 -14
  58. package/core.css +18 -2
  59. package/custom-elements.json +528 -554
  60. package/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  61. package/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  62. package/datepicker/common/datepicker-button.d.ts +17 -9
  63. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  64. package/datepicker/common.d.ts +1 -0
  65. package/datepicker/common.d.ts.map +1 -1
  66. package/datepicker/common.js +130 -92
  67. package/datepicker/datepicker/datepicker.d.ts +19 -4
  68. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  69. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  70. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  71. package/datepicker/datepicker-toggle.js +108 -112
  72. package/datepicker/datepicker.js +95 -80
  73. package/development/accordion/accordion.d.ts.map +1 -1
  74. package/development/accordion.js +1 -1
  75. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  76. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  77. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  78. package/development/autocomplete-grid/autocomplete-grid-option.js +3 -3
  79. package/development/autocomplete.js +24 -8
  80. package/development/button/common.js +4 -2
  81. package/development/calendar.js +1 -1
  82. package/development/container/container/container.d.ts +1 -1
  83. package/development/container/container/container.d.ts.map +1 -1
  84. package/development/container/container.js +17 -1
  85. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  86. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  87. package/development/container/sticky-bar.js +9 -1
  88. package/development/core/datetime/date-adapter.d.ts +1 -1
  89. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  90. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  91. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  92. package/development/core/datetime.js +1 -1
  93. package/development/core/dom/scroll.d.ts +1 -1
  94. package/development/core/dom/scroll.d.ts.map +1 -1
  95. package/development/core/dom.js +4 -4
  96. package/development/core/mixins/form-associated-mixin.d.ts +2 -4
  97. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  98. package/development/core/mixins/form-associated-radio-button-mixin.d.ts +3 -3
  99. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  100. package/development/core/mixins.js +45 -49
  101. package/development/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  102. package/development/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  103. package/development/datepicker/common/datepicker-button.d.ts +17 -9
  104. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  105. package/development/datepicker/common.d.ts +1 -0
  106. package/development/datepicker/common.d.ts.map +1 -1
  107. package/development/datepicker/common.js +139 -90
  108. package/development/datepicker/datepicker/datepicker.d.ts +19 -4
  109. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  110. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  111. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  112. package/development/datepicker/datepicker-toggle.js +65 -69
  113. package/development/datepicker/datepicker.js +54 -36
  114. package/development/dialog/dialog/dialog.d.ts +2 -0
  115. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  116. package/development/dialog/dialog.js +37 -11
  117. package/development/menu/menu/menu.d.ts.map +1 -1
  118. package/development/menu/menu.js +35 -12
  119. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  120. package/development/navigation/navigation.js +15 -8
  121. package/development/option/option/option-base-element.d.ts +3 -2
  122. package/development/option/option/option-base-element.d.ts.map +1 -1
  123. package/development/option/option.js +15 -8
  124. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  125. package/development/overlay/overlay.d.ts.map +1 -1
  126. package/development/overlay.js +29 -13
  127. package/development/popover/popover/popover.d.ts.map +1 -1
  128. package/development/popover/popover.js +16 -13
  129. package/development/radio-button/common/radio-button-common.d.ts +0 -2
  130. package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
  131. package/development/radio-button/common.js +2 -18
  132. package/development/radio-button/radio-button-group.js +2 -2
  133. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +9 -1
  134. package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  135. package/development/radio-button/radio-button-panel.js +17 -7
  136. package/development/select/select.d.ts +11 -0
  137. package/development/select/select.d.ts.map +1 -1
  138. package/development/select.js +60 -9
  139. package/development/toast/toast.d.ts.map +1 -1
  140. package/development/toast.js +14 -8
  141. package/development/toggle/toggle.js +1 -1
  142. package/development/train/train-wagon.js +1 -1
  143. package/dialog/dialog/dialog.d.ts +2 -0
  144. package/dialog/dialog/dialog.d.ts.map +1 -1
  145. package/dialog/dialog-content.js +3 -3
  146. package/dialog/dialog-title.js +8 -8
  147. package/dialog/dialog.js +59 -49
  148. package/divider.js +12 -12
  149. package/file-selector/file-selector-dropzone.js +5 -5
  150. package/file-selector/file-selector.js +6 -6
  151. package/flip-card/flip-card-details.js +4 -4
  152. package/flip-card/flip-card-summary.js +9 -9
  153. package/header/header-button.js +5 -5
  154. package/header/header-link.js +5 -5
  155. package/icon.js +36 -36
  156. package/link/block-link-button.js +4 -4
  157. package/link/block-link-static.js +9 -9
  158. package/link/block-link.js +4 -4
  159. package/link/common.js +16 -16
  160. package/link/link-button.js +7 -7
  161. package/link/link-static.js +7 -7
  162. package/link/link.js +4 -4
  163. package/link-list/common.js +12 -12
  164. package/loading-indicator-circle.js +11 -11
  165. package/map-container.js +4 -4
  166. package/menu/common.js +7 -7
  167. package/menu/menu/menu.d.ts.map +1 -1
  168. package/menu/menu-button.js +8 -8
  169. package/menu/menu-link.js +6 -6
  170. package/menu/menu.js +64 -42
  171. package/navigation/navigation/navigation.d.ts.map +1 -1
  172. package/navigation/navigation-button.js +4 -4
  173. package/navigation/navigation-link.js +7 -7
  174. package/navigation/navigation-list.js +4 -4
  175. package/navigation/navigation-marker.js +3 -3
  176. package/navigation/navigation.js +21 -20
  177. package/notification.js +17 -17
  178. package/option/optgroup.js +11 -11
  179. package/option/option/option-base-element.d.ts +3 -2
  180. package/option/option/option-base-element.d.ts.map +1 -1
  181. package/option/option.js +113 -101
  182. package/overlay/overlay-base-element.d.ts.map +1 -1
  183. package/overlay/overlay.d.ts.map +1 -1
  184. package/overlay.js +87 -84
  185. package/package.json +1 -1
  186. package/paginator/common.js +6 -6
  187. package/popover/popover/popover.d.ts.map +1 -1
  188. package/popover/popover.js +73 -73
  189. package/radio-button/common/radio-button-common.d.ts +0 -2
  190. package/radio-button/common/radio-button-common.d.ts.map +1 -1
  191. package/radio-button/common.js +13 -18
  192. package/radio-button/radio-button-group.js +1 -1
  193. package/radio-button/radio-button-panel/radio-button-panel.d.ts +9 -1
  194. package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -1
  195. package/radio-button/radio-button-panel.js +40 -38
  196. package/screen-reader-only.js +5 -5
  197. package/select/select.d.ts +11 -0
  198. package/select/select.d.ts.map +1 -1
  199. package/select.js +111 -83
  200. package/slider.js +8 -8
  201. package/standard-theme.css +18 -2
  202. package/status.js +3 -3
  203. package/stepper/step-label.js +4 -4
  204. package/table/table-wrapper.js +4 -4
  205. package/tabs/tab-group.js +24 -24
  206. package/tabs/tab.js +3 -3
  207. package/tag/tag-group.js +7 -7
  208. package/teaser-product/common.js +5 -5
  209. package/teaser-product/teaser-product-static.js +2 -2
  210. package/timetable-occupancy-icon.js +3 -3
  211. package/timetable-occupancy.js +6 -6
  212. package/toast/toast.d.ts.map +1 -1
  213. package/toast.js +58 -54
  214. package/toggle/toggle-option.js +11 -11
  215. package/toggle-check.js +5 -5
  216. package/train/train.js +28 -28
@@ -14,7 +14,7 @@ import { SbbLanguageController } from "../core/controllers.js";
14
14
  import { hostAttributes } from "../core/decorators.js";
15
15
  import { i18nShowCalendar } from "../core/i18n.js";
16
16
  import { SbbNegativeMixin, SbbHydrationMixin } from "../core/mixins.js";
17
- import { getDatePicker, datepickerControlRegisteredEventFactory } from "./datepicker.js";
17
+ import { SbbDatepickerAssociationControlController } from "./common.js";
18
18
  import "../calendar.js";
19
19
  import "../popover/popover.js";
20
20
  import "../button/mini-button.js";
@@ -39,7 +39,7 @@ sbb-icon {
39
39
  color: var(--sbb-color-graphite);
40
40
  }`;
41
41
  let SbbDatepickerToggleElement = (() => {
42
- var _datePicker_accessor_storage, _view_accessor_storage, __disabled_accessor_storage, __min_accessor_storage, __max_accessor_storage, __renderCalendar_accessor_storage, _a;
42
+ var _view_accessor_storage, __disabled_accessor_storage, __min_accessor_storage, __max_accessor_storage, __renderCalendar_accessor_storage, _a;
43
43
  let _classDecorators = [customElement("sbb-datepicker-toggle"), hostAttributes({
44
44
  slot: "prefix"
45
45
  })];
@@ -47,9 +47,9 @@ let SbbDatepickerToggleElement = (() => {
47
47
  let _classExtraInitializers = [];
48
48
  let _classThis;
49
49
  let _classSuper = SbbNegativeMixin(SbbHydrationMixin(LitElement));
50
- let _datePicker_decorators;
51
- let _datePicker_initializers = [];
52
- let _datePicker_extraInitializers = [];
50
+ let _instanceExtraInitializers = [];
51
+ let _set_datePicker_decorators;
52
+ let _set_datepicker_decorators;
53
53
  let _view_decorators;
54
54
  let _view_initializers = [];
55
55
  let _view_extraInitializers = [];
@@ -69,20 +69,20 @@ let SbbDatepickerToggleElement = (() => {
69
69
  constructor() {
70
70
  var _a2;
71
71
  super();
72
- __privateAdd(this, _datePicker_accessor_storage);
73
72
  __privateAdd(this, _view_accessor_storage);
74
73
  __privateAdd(this, __disabled_accessor_storage);
75
74
  __privateAdd(this, __min_accessor_storage);
76
75
  __privateAdd(this, __max_accessor_storage);
77
76
  __privateAdd(this, __renderCalendar_accessor_storage);
78
- __privateSet(this, _datePicker_accessor_storage, __runInitializers(this, _datePicker_initializers, null));
79
- __privateSet(this, _view_accessor_storage, (__runInitializers(this, _datePicker_extraInitializers), __runInitializers(this, _view_initializers, "day")));
77
+ this._datepicker = __runInitializers(this, _instanceExtraInitializers);
78
+ __privateSet(this, _view_accessor_storage, __runInitializers(this, _view_initializers, "day"));
80
79
  __privateSet(this, __disabled_accessor_storage, (__runInitializers(this, _view_extraInitializers), __runInitializers(this, __disabled_initializers, false)));
81
80
  __privateSet(this, __min_accessor_storage, (__runInitializers(this, __disabled_extraInitializers), __runInitializers(this, __min_initializers, null)));
82
81
  __privateSet(this, __max_accessor_storage, (__runInitializers(this, __min_extraInitializers), __runInitializers(this, __max_initializers, null)));
83
82
  __privateSet(this, __renderCalendar_accessor_storage, (__runInitializers(this, __max_extraInitializers), __runInitializers(this, __renderCalendar_initializers, false)));
84
- this._datePickerElement = __runInitializers(this, __renderCalendar_extraInitializers);
83
+ this._calendarElement = __runInitializers(this, __renderCalendar_extraInitializers);
85
84
  this._language = new SbbLanguageController(this);
85
+ this.addController(new SbbDatepickerAssociationControlController(this));
86
86
  (_a2 = this.addEventListener) == null ? void 0 : _a2.call(this, "click", (event) => {
87
87
  if (event.composedPath()[0] === this) {
88
88
  this.open();
@@ -92,12 +92,28 @@ let SbbDatepickerToggleElement = (() => {
92
92
  this.hydrationComplete.then(() => this._renderCalendar = true);
93
93
  }
94
94
  }
95
- /** Datepicker reference. */
95
+ /**
96
+ * Datepicker reference.
97
+ * @internal
98
+ * @deprecated Use property/attribute `datepicker` instead.
99
+ */
100
+ set datePicker(value) {
101
+ {
102
+ console.warn(`Property datePicker/Attribute date-picker is deprecated. Use 'datepicker' instead.`);
103
+ }
104
+ this.datepicker = value;
105
+ }
106
+ /** @internal */
96
107
  get datePicker() {
97
- return __privateGet(this, _datePicker_accessor_storage);
108
+ return this.datepicker;
98
109
  }
99
- set datePicker(value) {
100
- __privateSet(this, _datePicker_accessor_storage, value);
110
+ /** Datepicker reference. */
111
+ set datepicker(value) {
112
+ var _a2, _b, _c;
113
+ this._datepicker = typeof value === "string" ? ((_c = (_b = (_a2 = this.getRootNode) == null ? void 0 : _a2.call(this)) == null ? void 0 : _b.querySelector) == null ? void 0 : _c.call(_b, `#${value}`)) ?? null : value;
114
+ }
115
+ get datepicker() {
116
+ return this._datepicker ?? null;
101
117
  }
102
118
  /** The initial view of calendar which should be displayed on opening. */
103
119
  get view() {
@@ -142,59 +158,35 @@ let SbbDatepickerToggleElement = (() => {
142
158
  connectedCallback() {
143
159
  var _a2, _b;
144
160
  super.connectedCallback();
145
- if (!this.datePicker) {
146
- this._init();
147
- }
148
161
  const formField = ((_a2 = this.closest) == null ? void 0 : _a2.call(this, "sbb-form-field")) ?? ((_b = this.closest) == null ? void 0 : _b.call(this, "[data-form-field]"));
149
162
  if (formField) {
150
163
  this.negative = formField.hasAttribute("negative");
151
164
  }
152
165
  }
153
166
  willUpdate(changedProperties) {
167
+ var _a2, _b, _c, _d;
154
168
  super.willUpdate(changedProperties);
155
- if (changedProperties.has("datePicker")) {
156
- this._init(this.datePicker);
157
- }
158
- }
159
- disconnectedCallback() {
160
- var _a2;
161
- super.disconnectedCallback();
162
- (_a2 = this._datePickerController) == null ? void 0 : _a2.abort();
163
- }
164
- _init(datePicker) {
165
- var _a2, _b, _c, _d, _e;
166
- (_a2 = this._datePickerController) == null ? void 0 : _a2.abort();
167
- this._datePickerController = new AbortController();
168
- this._datePickerElement = getDatePicker(this, datePicker);
169
- if (!this._datePickerElement) {
170
- (_b = this.parentElement) == null ? void 0 : _b.addEventListener("inputUpdated", (e) => this._init(e.target), { once: true, signal: this._datePickerController.signal });
171
- return;
169
+ if (this.datepicker) {
170
+ this._disabled = (((_a2 = this.datepicker.inputElement) == null ? void 0 : _a2.disabled) || ((_b = this.datepicker.inputElement) == null ? void 0 : _b.readOnly)) ?? true;
171
+ this._min = (_c = this.datepicker.inputElement) == null ? void 0 : _c.min;
172
+ this._max = (_d = this.datepicker.inputElement) == null ? void 0 : _d.max;
173
+ this._configureCalendar();
174
+ if (this._calendarElement) {
175
+ this._calendarElement.selected = this.datepicker.valueAsDate ?? null;
176
+ }
177
+ } else {
178
+ this._disabled = true;
179
+ this._min = null;
180
+ this._max = null;
172
181
  }
173
- (_c = this._datePickerElement) == null ? void 0 : _c.addEventListener("inputUpdated", (event) => {
174
- this._datePickerElement = event.target;
175
- this._disabled = !!(event.detail.disabled || event.detail.readonly);
176
- this._min = event.detail.min;
177
- this._max = event.detail.max;
178
- }, { signal: this._datePickerController.signal });
179
- (_d = this._datePickerElement) == null ? void 0 : _d.addEventListener("change", (event) => this._datePickerChanged(event), {
180
- signal: this._datePickerController.signal
181
- });
182
- (_e = this._datePickerElement) == null ? void 0 : _e.addEventListener("datePickerUpdated", (event) => this._configureCalendar(this._calendarElement, event.target), { signal: this._datePickerController.signal });
183
- this._datePickerElement.dispatchEvent(datepickerControlRegisteredEventFactory());
184
182
  }
185
- _configureCalendar(calendar, datepicker) {
186
- if (!calendar || !datepicker) {
183
+ _configureCalendar() {
184
+ if (!this._calendarElement || !this.datepicker) {
187
185
  return;
188
186
  }
189
- calendar.wide = datepicker.wide;
190
- calendar.now = this._nowOrNull();
191
- calendar.dateFilter = datepicker.dateFilter;
192
- }
193
- _datePickerChanged(event) {
194
- this._datePickerElement = event.target;
195
- if (this._calendarElement) {
196
- this._calendarElement.selected = this._datePickerElement.valueAsDate ?? null;
197
- }
187
+ this._calendarElement.wide = this.datepicker.wide;
188
+ this._calendarElement.now = this._nowOrNull();
189
+ this._calendarElement.dateFilter = this.datepicker.dateFilter;
198
190
  }
199
191
  _assignCalendar(calendar) {
200
192
  var _a2;
@@ -202,11 +194,11 @@ let SbbDatepickerToggleElement = (() => {
202
194
  return;
203
195
  }
204
196
  this._calendarElement = calendar;
205
- if (!("valueAsDate" in (this._datePickerElement ?? {})) || !((_a2 = this._calendarElement) == null ? void 0 : _a2.resetPosition)) {
197
+ if (!("valueAsDate" in (this.datepicker ?? {})) || !((_a2 = this._calendarElement) == null ? void 0 : _a2.resetPosition)) {
206
198
  return;
207
199
  }
208
- this._calendarElement.selected = this._datePickerElement.valueAsDate ?? null;
209
- this._configureCalendar(this._calendarElement, this._datePickerElement);
200
+ this._calendarElement.selected = this.datepicker.valueAsDate ?? null;
201
+ this._configureCalendar();
210
202
  this._calendarElement.resetPosition();
211
203
  }
212
204
  updated(changedProperties) {
@@ -215,7 +207,7 @@ let SbbDatepickerToggleElement = (() => {
215
207
  }
216
208
  _nowOrNull() {
217
209
  var _a2;
218
- return ((_a2 = this._datePickerElement) == null ? void 0 : _a2.hasCustomNow()) ? this._datePickerElement.now : null;
210
+ return ((_a2 = this.datepicker) == null ? void 0 : _a2.hasCustomNow()) ? this.datepicker.now : null;
219
211
  }
220
212
  render() {
221
213
  var _a2, _b;
@@ -224,7 +216,7 @@ let SbbDatepickerToggleElement = (() => {
224
216
  class="sbb-datepicker-toggle__trigger"
225
217
  icon-name="calendar-small"
226
218
  aria-label=${i18nShowCalendar[this._language.current]}
227
- ?disabled=${!isServer && (!this._datePickerElement || this._disabled)}
219
+ ?disabled=${!isServer && (!this.datepicker || this._disabled)}
228
220
  ?negative=${this.negative}
229
221
  ${ref((el) => this._triggerElement = el)}
230
222
  ></sbb-mini-button>
@@ -244,12 +236,12 @@ let SbbDatepickerToggleElement = (() => {
244
236
  .min=${this._min}
245
237
  .max=${this._max}
246
238
  .now=${this._nowOrNull()}
247
- ?wide=${(_a2 = this._datePickerElement) == null ? void 0 : _a2.wide}
248
- .dateFilter=${(_b = this._datePickerElement) == null ? void 0 : _b.dateFilter}
239
+ ?wide=${(_a2 = this.datepicker) == null ? void 0 : _a2.wide}
240
+ .dateFilter=${(_b = this.datepicker) == null ? void 0 : _b.dateFilter}
249
241
  @dateSelected=${(d) => {
250
242
  this._calendarElement.selected = d.detail;
251
- if (this._datePickerElement) {
252
- this._datePickerElement.valueAsDate = d.detail;
243
+ if (this.datepicker) {
244
+ this.datepicker.valueAsDate = d.detail;
253
245
  }
254
246
  }}
255
247
  ${ref((calendar) => this._assignCalendar(calendar))}
@@ -257,17 +249,21 @@ let SbbDatepickerToggleElement = (() => {
257
249
  </sbb-popover>
258
250
  `;
259
251
  }
260
- }, _datePicker_accessor_storage = new WeakMap(), _view_accessor_storage = new WeakMap(), __disabled_accessor_storage = new WeakMap(), __min_accessor_storage = new WeakMap(), __max_accessor_storage = new WeakMap(), __renderCalendar_accessor_storage = new WeakMap(), _classThis = _a, (() => {
252
+ }, _view_accessor_storage = new WeakMap(), __disabled_accessor_storage = new WeakMap(), __min_accessor_storage = new WeakMap(), __max_accessor_storage = new WeakMap(), __renderCalendar_accessor_storage = new WeakMap(), _classThis = _a, (() => {
261
253
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
262
- _datePicker_decorators = [property({ attribute: "date-picker" })];
254
+ _set_datePicker_decorators = [property({ attribute: "date-picker" })];
255
+ _set_datepicker_decorators = [property({ attribute: "datepicker" })];
263
256
  _view_decorators = [property()];
264
257
  __disabled_decorators = [state()];
265
258
  __min_decorators = [state()];
266
259
  __max_decorators = [state()];
267
260
  __renderCalendar_decorators = [state()];
268
- __esDecorate(_a, null, _datePicker_decorators, { kind: "accessor", name: "datePicker", static: false, private: false, access: { has: (obj) => "datePicker" in obj, get: (obj) => obj.datePicker, set: (obj, value) => {
261
+ __esDecorate(_a, null, _set_datePicker_decorators, { kind: "setter", name: "datePicker", static: false, private: false, access: { has: (obj) => "datePicker" in obj, set: (obj, value) => {
269
262
  obj.datePicker = value;
270
- } }, metadata: _metadata }, _datePicker_initializers, _datePicker_extraInitializers);
263
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
264
+ __esDecorate(_a, null, _set_datepicker_decorators, { kind: "setter", name: "datepicker", static: false, private: false, access: { has: (obj) => "datepicker" in obj, set: (obj, value) => {
265
+ obj.datepicker = value;
266
+ } }, metadata: _metadata }, null, _instanceExtraInitializers);
271
267
  __esDecorate(_a, null, _view_decorators, { kind: "accessor", name: "view", static: false, private: false, access: { has: (obj) => "view" in obj, get: (obj) => obj.view, set: (obj, value) => {
272
268
  obj.view = value;
273
269
  } }, metadata: _metadata }, _view_initializers, _view_extraInitializers);
@@ -292,4 +288,4 @@ let SbbDatepickerToggleElement = (() => {
292
288
  export {
293
289
  SbbDatepickerToggleElement
294
290
  };
295
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ2FsZW5kYXJWaWV3LCBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuU2hvd0NhbGVuZGFyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50LCBTYmJJbnB1dFVwZGF0ZUV2ZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5pbXBvcnQgeyBkYXRlcGlja2VyQ29udHJvbFJlZ2lzdGVyZWRFdmVudEZhY3RvcnksIGdldERhdGVQaWNrZXIgfSBmcm9tICcuLi9kYXRlcGlja2VyLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vZGF0ZXBpY2tlci10b2dnbGUuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgJy4uLy4uL2J1dHRvbi9taW5pLWJ1dHRvbi5qcyc7XG5cbi8qKlxuICogQ29tYmluZWQgd2l0aCBhIGBzYmItZGF0ZXBpY2tlcmAsIGl0IGNhbiBiZSB1c2VkIHRvIHNlbGVjdCBhIGRhdGUgZnJvbSBhIGBzYmItY2FsZW5kYXJgLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItZGF0ZXBpY2tlci10b2dnbGUnKVxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgc2xvdDogJ3ByZWZpeCcsXG59KVxuY2xhc3MgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ8VCA9IERhdGU+IGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJIeWRyYXRpb25NaXhpbihMaXRFbGVtZW50KSkge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogRGF0ZXBpY2tlciByZWZlcmVuY2UuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RhdGUtcGlja2VyJyB9KSBwdWJsaWMgYWNjZXNzb3IgZGF0ZVBpY2tlcjpcbiAgICB8IHN0cmluZ1xuICAgIHwgU2JiRGF0ZXBpY2tlckVsZW1lbnRcbiAgICB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9tYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX3JlbmRlckNhbGVuZGFyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckVsZW1lbnQ6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfY2FsZW5kYXJFbGVtZW50ITogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudCE6IFNiYk1pbmlCdXR0b25FbGVtZW50O1xuICBwcml2YXRlIF9wb3BvdmVyRWxlbWVudCE6IFNiYlBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9kYXRlUGlja2VyQ29udHJvbGxlciE6IEFib3J0Q29udHJvbGxlcjtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdID09PSB0aGlzKSB7XG4gICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuaHlkcmF0aW9uQ29tcGxldGUudGhlbigoKSA9PiAodGhpcy5fcmVuZGVyQ2FsZW5kYXIgPSB0cnVlKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCdzYmItbWluaS1idXR0b24nKSE7XG4gICAgfVxuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICBpZiAoIXRoaXMuZGF0ZVBpY2tlcikge1xuICAgICAgdGhpcy5faW5pdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpID8/IHRoaXMuY2xvc2VzdD8uKCdbZGF0YS1mb3JtLWZpZWxkXScpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGF0ZVBpY2tlcicpKSB7XG4gICAgICB0aGlzLl9pbml0KHRoaXMuZGF0ZVBpY2tlciEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyPy5hYm9ydCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdChkYXRlUGlja2VyPzogc3RyaW5nIHwgU2JiRGF0ZXBpY2tlckVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyQ29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCA9IGdldERhdGVQaWNrZXI8VD4odGhpcywgZGF0ZVBpY2tlcik7XG4gICAgaWYgKCF0aGlzLl9kYXRlUGlja2VyRWxlbWVudCkge1xuICAgICAgLy8gSWYgdGhlIGNvbXBvbmVudCBpcyBhdHRhY2hlZCB0byB0aGUgRE9NIGJlZm9yZSB0aGUgZGF0ZXBpY2tlciwgaXQgaGFzIHRvIGxpc3RlbiBmb3IgdGhlIGRhdGVwaWNrZXIgaW5pdCxcbiAgICAgIC8vIGFzc3VtaW5nIHRoYXQgdGhlIHR3byBjb21wb25lbnRzIHNoYXJlIHRoZSBzYW1lIHBhcmVudCBlbGVtZW50LlxuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnaW5wdXRVcGRhdGVkJyxcbiAgICAgICAgKGU6IEV2ZW50KSA9PiB0aGlzLl9pbml0KGUudGFyZ2V0IGFzIFNiYkRhdGVwaWNrZXJFbGVtZW50KSxcbiAgICAgICAgeyBvbmNlOiB0cnVlLCBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCB9LFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdpbnB1dFVwZGF0ZWQnLFxuICAgICAgKGV2ZW50OiBDdXN0b21FdmVudDxTYmJJbnB1dFVwZGF0ZUV2ZW50PikgPT4ge1xuICAgICAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUPjtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSAhIShldmVudC5kZXRhaWwuZGlzYWJsZWQgfHwgZXZlbnQuZGV0YWlsLnJlYWRvbmx5KTtcbiAgICAgICAgdGhpcy5fbWluID0gZXZlbnQuZGV0YWlsLm1pbjtcbiAgICAgICAgdGhpcy5fbWF4ID0gZXZlbnQuZGV0YWlsLm1heDtcbiAgICAgIH0sXG4gICAgICB7IHNpZ25hbDogdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjaGFuZ2UnLFxuICAgICAgKGV2ZW50OiBFdmVudCkgPT4gdGhpcy5fZGF0ZVBpY2tlckNoYW5nZWQoZXZlbnQpLFxuICAgICAge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2RhdGVQaWNrZXJDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0sXG4gICAgKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdkYXRlUGlja2VyVXBkYXRlZCcsXG4gICAgICAoZXZlbnQ6IEV2ZW50KSA9PlxuICAgICAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcih0aGlzLl9jYWxlbmRhckVsZW1lbnQsIGV2ZW50LnRhcmdldCBhcyBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiksXG4gICAgICB7IHNpZ25hbDogdGhpcy5fZGF0ZVBpY2tlckNvbnRyb2xsZXIuc2lnbmFsIH0sXG4gICAgKTtcbiAgICB0aGlzLl9kYXRlUGlja2VyRWxlbWVudC5kaXNwYXRjaEV2ZW50KGRhdGVwaWNrZXJDb250cm9sUmVnaXN0ZXJlZEV2ZW50RmFjdG9yeSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ3VyZUNhbGVuZGFyKFxuICAgIGNhbGVuZGFyOiBTYmJDYWxlbmRhckVsZW1lbnQ8VD4sXG4gICAgZGF0ZXBpY2tlcjogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4sXG4gICk6IHZvaWQge1xuICAgIGlmICghY2FsZW5kYXIgfHwgIWRhdGVwaWNrZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2FsZW5kYXIud2lkZSA9IGRhdGVwaWNrZXIud2lkZTtcbiAgICBjYWxlbmRhci5ub3cgPSB0aGlzLl9ub3dPck51bGwoKTtcbiAgICBjYWxlbmRhci5kYXRlRmlsdGVyID0gZGF0ZXBpY2tlci5kYXRlRmlsdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGF0ZVBpY2tlckNoYW5nZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD47XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCkge1xuICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25DYWxlbmRhcihjYWxlbmRhcjogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCAmJiB0aGlzLl9jYWxlbmRhckVsZW1lbnQgPT09IGNhbGVuZGFyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudCA9IGNhbGVuZGFyO1xuICAgIGlmIChcbiAgICAgICEoJ3ZhbHVlQXNEYXRlJyBpbiAodGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQgPz8ge30pKSB8fFxuICAgICAgIXRoaXMuX2NhbGVuZGFyRWxlbWVudD8ucmVzZXRQb3NpdGlvblxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuc2VsZWN0ZWQgPSB0aGlzLl9kYXRlUGlja2VyRWxlbWVudCEudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcih0aGlzLl9jYWxlbmRhckVsZW1lbnQsIHRoaXMuX2RhdGVQaWNrZXJFbGVtZW50ISk7XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnJlc2V0UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcG9wb3ZlckVsZW1lbnQudHJpZ2dlciA9IHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfbm93T3JOdWxsKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQ/Lmhhc0N1c3RvbU5vdygpID8gdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQubm93IDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1taW5pLWJ1dHRvblxuICAgICAgICBjbGFzcz1cInNiYi1kYXRlcGlja2VyLXRvZ2dsZV9fdHJpZ2dlclwiXG4gICAgICAgIGljb24tbmFtZT1cImNhbGVuZGFyLXNtYWxsXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5TaG93Q2FsZW5kYXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9kaXNhYmxlZD0keyFpc1NlcnZlciAmJiAoIXRoaXMuX2RhdGVQaWNrZXJFbGVtZW50IHx8IHRoaXMuX2Rpc2FibGVkKX1cbiAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gZWwgYXMgU2JiTWluaUJ1dHRvbkVsZW1lbnQpKX1cbiAgICAgID48L3NiYi1taW5pLWJ1dHRvbj5cbiAgICAgIDxzYmItcG9wb3ZlclxuICAgICAgICBAd2lsbE9wZW49JHsoKSA9PiB0aGlzLl9jYWxlbmRhckVsZW1lbnQucmVzZXRQb3NpdGlvbigpfVxuICAgICAgICBAZGlkT3Blbj0keygpID0+IHtcbiAgICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAudHJpZ2dlcj0ke3RoaXMuX3RyaWdnZXJFbGVtZW50fVxuICAgICAgICBoaWRlLWNsb3NlLWJ1dHRvblxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fcG9wb3ZlckVsZW1lbnQgPSBlbCBhcyBTYmJQb3BvdmVyRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICAke3RoaXMuX3JlbmRlckNhbGVuZGFyXG4gICAgICAgICAgPyBodG1sYDxzYmItY2FsZW5kYXJcbiAgICAgICAgICAgICAgLnZpZXc9JHt0aGlzLnZpZXd9XG4gICAgICAgICAgICAgIC5taW49JHt0aGlzLl9taW59XG4gICAgICAgICAgICAgIC5tYXg9JHt0aGlzLl9tYXh9XG4gICAgICAgICAgICAgIC5ub3c9JHt0aGlzLl9ub3dPck51bGwoKX1cbiAgICAgICAgICAgICAgP3dpZGU9JHt0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8ud2lkZX1cbiAgICAgICAgICAgICAgLmRhdGVGaWx0ZXI9JHt0aGlzLl9kYXRlUGlja2VyRWxlbWVudD8uZGF0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgQGRhdGVTZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IGQuZGV0YWlsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kYXRlUGlja2VyRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVBpY2tlckVsZW1lbnQudmFsdWVBc0RhdGUgPSBkLmRldGFpbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICR7cmVmKChjYWxlbmRhcj86IEVsZW1lbnQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fYXNzaWduQ2FsZW5kYXIoY2FsZW5kYXIgYXMgU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KSxcbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgID48L3NiYi1jYWxlbmRhcj5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9zYmItcG9wb3Zlcj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItZGF0ZXBpY2tlci10b2dnbGUnOiBTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBOEJNLDhCQUEwQixNQUFBOztBQUovQixNQUFBLG1CQUFBLENBQUEsY0FBYyx1QkFBdUIsR0FDckMsZUFBZTtBQUFBLElBQ2QsTUFBTTtBQUFBLEVBQUEsQ0FDUCxDQUFDOzs7O0FBQ2lELE1BQUEsY0FBQSxpQkFB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
291
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ2FsZW5kYXJWaWV3LCBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuU2hvd0NhbGVuZGFyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgeyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlciwgdHlwZSBTYmJEYXRlcGlja2VyQ29udHJvbCB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXItdG9nZ2xlLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIuanMnO1xuaW1wb3J0ICcuLi8uLi9wb3BvdmVyL3BvcG92ZXIuanMnO1xuaW1wb3J0ICcuLi8uLi9idXR0b24vbWluaS1idXR0b24uanMnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLWRhdGVwaWNrZXJgLCBpdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBgc2JiLWNhbGVuZGFyYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRhdGVwaWNrZXItdG9nZ2xlJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHNsb3Q6ICdwcmVmaXgnLFxufSlcbmNsYXNzIFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50PFQgPSBEYXRlPlxuICBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpXG4gIGltcGxlbWVudHMgU2JiRGF0ZXBpY2tlckNvbnRyb2w8VD5cbntcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIERhdGVwaWNrZXIgcmVmZXJlbmNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5L2F0dHJpYnV0ZSBgZGF0ZXBpY2tlcmAgaW5zdGVhZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RhdGUtcGlja2VyJyB9KVxuICBwdWJsaWMgc2V0IGRhdGVQaWNrZXIodmFsdWU6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCkge1xuICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBQcm9wZXJ0eSBkYXRlUGlja2VyL0F0dHJpYnV0ZSBkYXRlLXBpY2tlciBpcyBkZXByZWNhdGVkLiBVc2UgJ2RhdGVwaWNrZXInIGluc3RlYWQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZGF0ZXBpY2tlciA9IHZhbHVlIGFzIHVua25vd24gYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIGdldCBkYXRlUGlja2VyKCk6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlcjtcbiAgfVxuXG4gIC8qKiBEYXRlcGlja2VyIHJlZmVyZW5jZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGF0ZXBpY2tlcicgfSlcbiAgcHVibGljIHNldCBkYXRlcGlja2VyKHZhbHVlOiBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiB8IG51bGwpIHtcbiAgICB0aGlzLl9kYXRlcGlja2VyID1cbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyAoKHRoaXMuZ2V0Um9vdE5vZGU/LigpIGFzIFBhcmVudE5vZGUpPy5xdWVyeVNlbGVjdG9yPy4oYCMke3ZhbHVlfWApID8/IG51bGwpXG4gICAgICAgIDogdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBkYXRlcGlja2VyKCk6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVwaWNrZXIgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF9kYXRlcGlja2VyPzogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9tYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX3JlbmRlckNhbGVuZGFyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJFbGVtZW50ITogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudCE6IFNiYk1pbmlCdXR0b25FbGVtZW50O1xuICBwcml2YXRlIF9wb3BvdmVyRWxlbWVudCE6IFNiYlBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlcih0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gPT09IHRoaXMpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9yZW5kZXJDYWxlbmRhciA9IHRydWUpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1taW5pLWJ1dHRvbicpITtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpID8/IHRoaXMuY2xvc2VzdD8uKCdbZGF0YS1mb3JtLWZpZWxkXScpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID1cbiAgICAgICAgKHRoaXMuZGF0ZXBpY2tlci5pbnB1dEVsZW1lbnQ/LmRpc2FibGVkIHx8IHRoaXMuZGF0ZXBpY2tlci5pbnB1dEVsZW1lbnQ/LnJlYWRPbmx5KSA/PyB0cnVlO1xuICAgICAgdGhpcy5fbWluID0gdGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8ubWluO1xuICAgICAgdGhpcy5fbWF4ID0gdGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8ubWF4O1xuXG4gICAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcigpO1xuICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCkge1xuICAgICAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuc2VsZWN0ZWQgPSB0aGlzLmRhdGVwaWNrZXIudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fbWluID0gbnVsbDtcbiAgICAgIHRoaXMuX21heCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlQ2FsZW5kYXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jYWxlbmRhckVsZW1lbnQgfHwgIXRoaXMuZGF0ZXBpY2tlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQud2lkZSA9IHRoaXMuZGF0ZXBpY2tlci53aWRlO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5ub3cgPSB0aGlzLl9ub3dPck51bGwoKTtcbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuZGF0ZUZpbHRlciA9IHRoaXMuZGF0ZXBpY2tlci5kYXRlRmlsdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXNzaWduQ2FsZW5kYXIoY2FsZW5kYXI6IFNiYkNhbGVuZGFyRWxlbWVudDxUPik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jYWxlbmRhckVsZW1lbnQgJiYgdGhpcy5fY2FsZW5kYXJFbGVtZW50ID09PSBjYWxlbmRhcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQgPSBjYWxlbmRhcjtcbiAgICBpZiAoISgndmFsdWVBc0RhdGUnIGluICh0aGlzLmRhdGVwaWNrZXIgPz8ge30pKSB8fCAhdGhpcy5fY2FsZW5kYXJFbGVtZW50Py5yZXNldFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IHRoaXMuZGF0ZXBpY2tlciEudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcigpO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5yZXNldFBvc2l0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3BvcG92ZXJFbGVtZW50LnRyaWdnZXIgPSB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgX25vd09yTnVsbCgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlcj8uaGFzQ3VzdG9tTm93KCkgPyB0aGlzLmRhdGVwaWNrZXIubm93IDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1taW5pLWJ1dHRvblxuICAgICAgICBjbGFzcz1cInNiYi1kYXRlcGlja2VyLXRvZ2dsZV9fdHJpZ2dlclwiXG4gICAgICAgIGljb24tbmFtZT1cImNhbGVuZGFyLXNtYWxsXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5TaG93Q2FsZW5kYXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9kaXNhYmxlZD0keyFpc1NlcnZlciAmJiAoIXRoaXMuZGF0ZXBpY2tlciB8fCB0aGlzLl9kaXNhYmxlZCl9XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90cmlnZ2VyRWxlbWVudCA9IGVsIGFzIFNiYk1pbmlCdXR0b25FbGVtZW50KSl9XG4gICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICA8c2JiLXBvcG92ZXJcbiAgICAgICAgQHdpbGxPcGVuPSR7KCkgPT4gdGhpcy5fY2FsZW5kYXJFbGVtZW50LnJlc2V0UG9zaXRpb24oKX1cbiAgICAgICAgQGRpZE9wZW49JHsoKSA9PiB7XG4gICAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLnRyaWdnZXI9JHt0aGlzLl90cmlnZ2VyRWxlbWVudH1cbiAgICAgICAgaGlkZS1jbG9zZS1idXR0b25cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3BvcG92ZXJFbGVtZW50ID0gZWwgYXMgU2JiUG9wb3ZlckVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJDYWxlbmRhclxuICAgICAgICAgID8gaHRtbGA8c2JiLWNhbGVuZGFyXG4gICAgICAgICAgICAgIC52aWV3PSR7dGhpcy52aWV3fVxuICAgICAgICAgICAgICAubWluPSR7dGhpcy5fbWlufVxuICAgICAgICAgICAgICAubWF4PSR7dGhpcy5fbWF4fVxuICAgICAgICAgICAgICAubm93PSR7dGhpcy5fbm93T3JOdWxsKCl9XG4gICAgICAgICAgICAgID93aWRlPSR7dGhpcy5kYXRlcGlja2VyPy53aWRlfVxuICAgICAgICAgICAgICAuZGF0ZUZpbHRlcj0ke3RoaXMuZGF0ZXBpY2tlcj8uZGF0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgQGRhdGVTZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IGQuZGV0YWlsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci52YWx1ZUFzRGF0ZSA9IGQuZGV0YWlsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgJHtyZWYoKGNhbGVuZGFyPzogRWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25DYWxlbmRhcihjYWxlbmRhciBhcyBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pLFxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPjwvc2JiLWNhbGVuZGFyPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L3NiYi1wb3BvdmVyPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlcGlja2VyLXRvZ2dsZSc6IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE4Qk0sOEJBQTBCLE1BQUE7O0FBSi9CLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLHVCQUF1QixHQUNyQyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQLENBQUM7Ozs7QUFFUSxNQUFBLGNBQUEsaUJBQWlCLGtCQUFrQixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdEQsRUFBQSxtQkFBUSxZQUErQztBQUFBLElB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