desy-angular 8.0.0 → 8.0.1

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 (176) hide show
  1. package/esm2022/lib/desy-angular.module.mjs +4 -4
  2. package/esm2022/lib/desy-buttons/components/button/button.component.mjs +3 -3
  3. package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +3 -3
  4. package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +3 -3
  5. package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +3 -3
  6. package/esm2022/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +3 -3
  7. package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +3 -3
  8. package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +3 -3
  9. package/esm2022/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +3 -3
  10. package/esm2022/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +3 -3
  11. package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +3 -3
  12. package/esm2022/lib/desy-buttons/desy-buttons.module.mjs +4 -4
  13. package/esm2022/lib/desy-commons/components/content/content.component.mjs +3 -3
  14. package/esm2022/lib/desy-commons/components/description/description.component.mjs +3 -3
  15. package/esm2022/lib/desy-commons/components/divider/divider.component.mjs +3 -3
  16. package/esm2022/lib/desy-commons/components/icon/icon.component.mjs +3 -3
  17. package/esm2022/lib/desy-commons/components/title/title.component.mjs +3 -3
  18. package/esm2022/lib/desy-commons/desy-commons.module.mjs +4 -4
  19. package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +3 -3
  20. package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +3 -3
  21. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +3 -3
  22. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +5 -5
  23. package/esm2022/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +3 -3
  24. package/esm2022/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +3 -3
  25. package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +3 -3
  26. package/esm2022/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +3 -3
  27. package/esm2022/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +3 -3
  28. package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +3 -3
  29. package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +3 -3
  30. package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +3 -3
  31. package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +3 -3
  32. package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +3 -3
  33. package/esm2022/lib/desy-forms/components/form-field/form-field.component.mjs +3 -3
  34. package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +3 -3
  35. package/esm2022/lib/desy-forms/components/input/input.component.mjs +3 -3
  36. package/esm2022/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +3 -3
  37. package/esm2022/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +3 -3
  38. package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +3 -3
  39. package/esm2022/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +3 -3
  40. package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +3 -3
  41. package/esm2022/lib/desy-forms/components/label/label.component.mjs +3 -3
  42. package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +3 -3
  43. package/esm2022/lib/desy-forms/components/radios/radios-parent.component.mjs +3 -3
  44. package/esm2022/lib/desy-forms/components/radios/radios.component.mjs +5 -5
  45. package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +3 -3
  46. package/esm2022/lib/desy-forms/components/select/option/option.component.mjs +3 -3
  47. package/esm2022/lib/desy-forms/components/select/option-group/option-group.component.mjs +3 -3
  48. package/esm2022/lib/desy-forms/components/select/select-item/select-item.component.mjs +3 -3
  49. package/esm2022/lib/desy-forms/components/select/select.component.mjs +3 -3
  50. package/esm2022/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +3 -3
  51. package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +3 -3
  52. package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +3 -3
  53. package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +3 -3
  54. package/esm2022/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +5 -5
  55. package/esm2022/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +3 -3
  56. package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +3 -3
  57. package/esm2022/lib/desy-forms/desy-forms.module.mjs +4 -4
  58. package/esm2022/lib/desy-forms/directives/condition.directive.mjs +3 -3
  59. package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +3 -3
  60. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +3 -3
  61. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +3 -3
  62. package/esm2022/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +3 -3
  63. package/esm2022/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +3 -3
  64. package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +3 -3
  65. package/esm2022/lib/desy-modals/desy-modals.module.mjs +4 -4
  66. package/esm2022/lib/desy-modals/services/dialog.service.mjs +3 -3
  67. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +3 -3
  68. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  69. package/esm2022/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +3 -3
  70. package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +3 -3
  71. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +3 -3
  72. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +3 -3
  73. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +3 -3
  74. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +3 -3
  75. package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +3 -3
  76. package/esm2022/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +3 -3
  77. package/esm2022/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +3 -3
  78. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +3 -3
  79. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +3 -3
  80. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +3 -3
  81. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +3 -3
  82. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +3 -3
  83. package/esm2022/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +3 -3
  84. package/esm2022/lib/desy-nav/components/header/header.component.mjs +3 -3
  85. package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +3 -3
  86. package/esm2022/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +3 -3
  87. package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +3 -3
  88. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +3 -3
  89. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +3 -3
  90. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +3 -3
  91. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +3 -3
  92. package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +3 -3
  93. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +3 -3
  94. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +3 -3
  95. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +3 -3
  96. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +3 -3
  97. package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +3 -3
  98. package/esm2022/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +3 -3
  99. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +3 -3
  100. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +3 -3
  101. package/esm2022/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +3 -3
  102. package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +3 -3
  103. package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +3 -3
  104. package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +3 -3
  105. package/esm2022/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +3 -3
  106. package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +3 -3
  107. package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +18 -4
  108. package/esm2022/lib/desy-nav/desy-nav.module.mjs +4 -4
  109. package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +3 -3
  110. package/esm2022/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +3 -3
  111. package/esm2022/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +3 -3
  112. package/esm2022/lib/desy-pagination/desy-pagination.module.mjs +4 -4
  113. package/esm2022/lib/desy-tables/components/table/components/table-caption.component.mjs +3 -3
  114. package/esm2022/lib/desy-tables/components/table/components/table-cell.component.mjs +3 -3
  115. package/esm2022/lib/desy-tables/components/table/components/table-header.component.mjs +3 -3
  116. package/esm2022/lib/desy-tables/components/table/components/table-row.component.mjs +3 -3
  117. package/esm2022/lib/desy-tables/components/table/table.component.mjs +3 -3
  118. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +3 -3
  119. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +3 -3
  120. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +3 -3
  121. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +3 -3
  122. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +3 -3
  123. package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +3 -3
  124. package/esm2022/lib/desy-tables/desy-tables.module.mjs +4 -4
  125. package/esm2022/lib/desy-tables/directives/cell.directive.mjs +3 -3
  126. package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +3 -3
  127. package/esm2022/lib/desy-tables/directives/row.directive.mjs +3 -3
  128. package/esm2022/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +3 -3
  129. package/esm2022/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
  130. package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +3 -3
  131. package/esm2022/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +3 -3
  132. package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +3 -3
  133. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +3 -3
  134. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +3 -3
  135. package/esm2022/lib/desy-views/components/alert/alert.component.mjs +3 -3
  136. package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +3 -3
  137. package/esm2022/lib/desy-views/components/description-list/definition/definition.component.mjs +3 -3
  138. package/esm2022/lib/desy-views/components/description-list/description-item/description-item.component.mjs +3 -3
  139. package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +3 -3
  140. package/esm2022/lib/desy-views/components/description-list/term/term.component.mjs +3 -3
  141. package/esm2022/lib/desy-views/components/details/details.component.mjs +3 -3
  142. package/esm2022/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +3 -3
  143. package/esm2022/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +3 -3
  144. package/esm2022/lib/desy-views/components/item/item-item/item-item.component.mjs +3 -3
  145. package/esm2022/lib/desy-views/components/item/item.component.mjs +3 -3
  146. package/esm2022/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +3 -3
  147. package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +3 -3
  148. package/esm2022/lib/desy-views/components/spinner/spinner.component.mjs +3 -3
  149. package/esm2022/lib/desy-views/components/status/status.component.mjs +3 -3
  150. package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +3 -3
  151. package/esm2022/lib/desy-views/components/tabs/panel/panel.component.mjs +3 -3
  152. package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +3 -3
  153. package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +3 -3
  154. package/esm2022/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +3 -3
  155. package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +3 -3
  156. package/esm2022/lib/desy-views/desy-views.module.mjs +4 -4
  157. package/esm2022/lib/desy-views/services/alert.service.mjs +3 -3
  158. package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +3 -3
  159. package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +3 -3
  160. package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +3 -3
  161. package/esm2022/lib/shared/components/content-base/content-base.component.mjs +3 -3
  162. package/esm2022/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +3 -3
  163. package/esm2022/lib/shared/directives/attribute-change.directive.mjs +3 -3
  164. package/esm2022/lib/shared/directives/click-outside.directive.mjs +3 -3
  165. package/esm2022/lib/shared/directives/content-change.directive.mjs +3 -3
  166. package/esm2022/lib/shared/directives/custom-inner-content.directive.mjs +3 -3
  167. package/esm2022/lib/shared/directives/inner-content.directive.mjs +3 -3
  168. package/esm2022/lib/shared/pipes/external-href.pipe.mjs +3 -3
  169. package/esm2022/lib/shared/pipes/inner-html.pipe.mjs +3 -3
  170. package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +3 -3
  171. package/esm2022/lib/shared/shared.module.mjs +4 -4
  172. package/fesm2022/desy-angular.mjs +540 -526
  173. package/fesm2022/desy-angular.mjs.map +1 -1
  174. package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +1 -5
  175. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +6 -2
  176. package/package.json +1 -1
@@ -29,7 +29,7 @@ export class RadiosComponent extends RadiosParentComponent {
29
29
  this.updateItemListFlag = false;
30
30
  }
31
31
  ngDoCheck() {
32
- if (this.updateValueFromRadioItemsFlag && (this.nextValue === null || this.nextValue === undefined)) {
32
+ if (this.updateValueFromRadioItemsFlag) {
33
33
  this.updateValueFromRadioItemsFlag = false;
34
34
  if (!this.updateItemListFlag || (this.value === null || this.value === undefined)) {
35
35
  const items = this.getRadioItems();
@@ -194,8 +194,8 @@ export class RadiosComponent extends RadiosParentComponent {
194
194
  }
195
195
  return radiosItems;
196
196
  }
197
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: RadiosComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
198
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: RadiosComponent, selector: "desy-radios", inputs: { fieldsetData: "fieldsetData", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", idPrefix: "idPrefix", name: "name", items: "items", formGroupClasses: "formGroupClasses", hasDividers: "hasDividers", hasError: "hasError", classes: "classes", describedBy: "describedBy" }, outputs: { itemsChange: "itemsChange" }, providers: [
197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: RadiosComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: RadiosComponent, selector: "desy-radios", inputs: { fieldsetData: "fieldsetData", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", idPrefix: "idPrefix", name: "name", items: "items", formGroupClasses: "formGroupClasses", hasDividers: "hasDividers", hasError: "hasError", classes: "classes", describedBy: "describedBy" }, outputs: { itemsChange: "itemsChange" }, providers: [
199
199
  {
200
200
  provide: NG_VALUE_ACCESSOR,
201
201
  useExisting: forwardRef(() => RadiosComponent),
@@ -223,7 +223,7 @@ __decorate([
223
223
  DesyContentChild(),
224
224
  __metadata("design:type", LegendComponent)
225
225
  ], RadiosComponent.prototype, "legendComponent", void 0);
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: RadiosComponent, decorators: [{
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: RadiosComponent, decorators: [{
227
227
  type: Component,
228
228
  args: [{ selector: 'desy-radios', providers: [
229
229
  {
@@ -278,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
278
278
  type: ViewChildren,
279
279
  args: [RadioItemComponent]
280
280
  }] } });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9yYWRpb3MvcmFkaW9zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9yYWRpb3MvcmFkaW9zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFBRSxTQUFTLEVBQ3RCLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFpQmxFLE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFxQjtJQWYxRDs7UUFzQ1ksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQW9CcEQsY0FBUyxHQUFHLElBQUks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QUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFDLENBQUM7OEJBQ1YsaUJBQWlCOzBEQUFDO0FBRXpFO0lBQUMsZ0JBQWdCLEVBQUU7OEJBQ2dDLGVBQWU7d0RBQUM7MkZBbkN4RCxlQUFlO2tCQWYzQixTQUFTOytCQUNFLGFBQWEsYUFFWjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVyxpQkFBaUI7eUJBQzdCO3FCQUNGOzhCQWFRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR1csUUFBUTtzQkFBeEIsS0FBSztnQkFHVyxJQUFJO3NCQUFwQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDVyxXQUFXO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNXLFdBQVc7c0JBQTNCLEtBQUs7Z0JBRzhCLGlCQUFpQjtzQkFBcEQsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBR0EsZUFBZTtzQkFBaEQsZUFBZTt1QkFBQyxlQUFlO2dCQUVLLG1CQUFtQjtzQkFBdkQsZUFBZTt1QkFBQyxrQkFBa0I7Z0JBRU8sU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNOLG9CQUFvQjtzQkFBckQsWUFBWTt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRG9DaGVjayxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RmllbGRzZXREYXRhLCBJdGVtUmFkaW9EYXRhLCBMZWdlbmREYXRhfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7TGVnZW5kQ29tcG9uZW50fSBmcm9tICcuLi9maWVsZHNldC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQge1JhZGlvSXRlbUNvbXBvbmVudH0gZnJvbSAnLi9yYWRpby1pdGVtL3JhZGlvLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7RmllbGRzZXRDb21wb25lbnR9IGZyb20gJy4uL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge01ha2VIdG1sTGlzdFBpcGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy9tYWtlLWh0bWwtbGlzdC5waXBlJztcbmltcG9ydCB7SGludENvbXBvbmVudH0gZnJvbSAnLi4vaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQge0Vycm9yTWVzc2FnZUNvbXBvbmVudH0gZnJvbSAnLi4vZXJyb3ItbWVzc2FnZS9lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge0Rlc3lDb250ZW50Q2hpbGR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHtEZXN5T25JbnB1dENoYW5nZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yJztcbmltcG9ydCB7IFJhZGlvc1BhcmVudENvbXBvbmVudCB9IGZyb20gJy4vcmFkaW9zLXBhcmVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LXJhZGlvcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpb3MuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhZGlvc0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUmFkaW9zUGFyZW50Q29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IFJhZGlvc0NvbXBvbmVudCxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9zQ29tcG9uZW50IGV4dGVuZHMgUmFkaW9zUGFyZW50Q29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgXG4gIC8qKlxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxuICAgKiAxKSBpbmNsdWlyIGNvbXBvbmVudGUgRmllbGRzZXRDb21wb25lbnRcbiAgICogMikgaW5jbHVpciBvYmpldG8gRmllbGRzZXREYXRhIChpbnRlcmZheiBleHB1ZXN0YSlcbiAgICogMykgaW5jbHVpciBjb21wb25lbnRlIExlZ2VuZENvbXBvbmVudFxuICAgKiA0KSBpbmNsdWlyIHRlbXBsYXRlIGxlZ2VuZFxuICAgKiA1KSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiA2KSBpbmNsdWlyIGxlZ2VuZFRleHQgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1biB0ZXh0byBlbiBsYSBsZWdlbmRhXG4gICAqL1xuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcbiAgQElucHV0KCkgbGVnZW5kUmVmOiBUZW1wbGF0ZVJlZjxMZWdlbmRDb21wb25lbnQ+O1xuICBASW5wdXQoKSBsZWdlbmREYXRhOiBMZWdlbmREYXRhO1xuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XG4gIFxuICBARGVzeU9uSW5wdXRDaGFuZ2UoJ29uSWRQcmVmaXhDaGFuZ2UnKVxuICBASW5wdXQoKSBkZWNsYXJlIGlkUHJlZml4OiBzdHJpbmc7XG4gIFxuICBARGVzeU9uSW5wdXRDaGFuZ2UoJ29uTmFtZUNoYW5nZScpXG4gIEBJbnB1dCgpIGRlY2xhcmUgbmFtZTogc3RyaW5nO1xuICBcbiAgQElucHV0KCkgaXRlbXM6IEl0ZW1SYWRpb0RhdGFbXTtcbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJdGVtUmFkaW9EYXRhW10+KCk7XG4gIFxuICBASW5wdXQoKSBmb3JtR3JvdXBDbGFzc2VzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlY2xhcmUgaGFzRGl2aWRlcnM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhhc0Vycm9yOiBib29sZWFuO1xuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlY2xhcmUgZGVzY3JpYmVkQnk6IHN0cmluZztcbiAgXG4gIEBEZXN5Q29udGVudENoaWxkKHsgb25TZXRDYWxsYmFja05hbWU6ICdvdmVycmlkZUZpZWxkc2V0UGFyYW1zJ30pXG4gIEBDb250ZW50Q2hpbGRyZW4oRmllbGRzZXRDb21wb25lbnQpIGZpZWxkc2V0Q29tcG9uZW50OiBGaWVsZHNldENvbXBvbmVudDtcbiAgXG4gIEBEZXN5Q29udGVudENoaWxkKClcbiAgQENvbnRlbnRDaGlsZHJlbihMZWdlbmRDb21wb25lbnQpIGxlZ2VuZENvbXBvbmVudDogTGVnZW5kQ29tcG9uZW50O1xuICBcbiAgQENvbnRlbnRDaGlsZHJlbihSYWRpb0l0ZW1Db21wb25lbnQpIHJhZGlvQ29tcG9uZW50SXRlbXM6IFF1ZXJ5TGlzdDxSYWRpb0l0ZW1Db21wb25lbnQ+O1xuICBcbiAgQFZpZXdDaGlsZCgnaW5uZXJIdG1sJywgeyBzdGF0aWM6IHRydWUgfSkgaW5uZXJIdG1sOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkcmVuKFJhZGlvSXRlbUNvbXBvbmVudCkgcmFkaW9Db21wb25lbnRJdGVtczI6IFF1ZXJ5TGlzdDxSYWRpb0l0ZW1Db21wb25lbnQ+O1xuICBcbiAgLy8gRmxhZ3NcbiAgcHJpdmF0ZSBuZXh0VmFsdWUgPSBudWxsOyAgICAgICAgICAgICAgICAgICAgICAvLyBQcsOzeGltbyB2YWxvciBlbiBlbCBjb21wb25lbnRlXG4gIHByaXZhdGUgdXBkYXRlUmFkaW9zSWRzRmxhZyA9IGZhbHNlOyAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBzZSBoYW4gbW9kaWZpY2FkbyBsb3MgaWRzIGRlIGxvcyBpdGVtc1xuICBwcml2YXRlIGNvbnRlbnRJbml0RmxhZyA9IGZhbHNlOyAgICAgICAgICAgICAgIC8vIEluZGljYSBxdWUgc2UgaW5pY2lhbGl6YWRvIGVsIGNvbmVuaWRvXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtc0ZsYWcgPSBmYWxzZTsgLy8gSW5kaWNhIHF1ZSBzZSBoYSBzZWxlY2Npb25hZG8vZGVzZWxlY2Npb25hZG8gdW4gaXRlbVxuICBwcml2YXRlIHVwZGF0ZVZhbHVlVG9SYWRpb0l0ZW1zRmxhZyA9IGZhbHNlOyAgIC8vIEluZGljYSBxdWUgc2UgZGViZSBzZWxlY2Npb25hci9kZXNlbGVjY2lvbmFyIHVuIGl0ZW1cbiAgcHJpdmF0ZSB1cGRhdGVJdGVtTGlzdEZsYWcgPSBmYWxzZTsgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIHNlIGhhIGNyZWFkby9tb2RpZmljYWRvIGVsIGxpc3RhZG8gZGUgaXRlbXNcblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG5cbiAgICBcbiAgICAvLyBUT0RPIEVzdGEgZ2VzdGnDs24gcmVzdWx0YSBlbmdvcnJvc2EgeSBkaWZpY2lsIGRlIHNlZ3Vpci4gRXN0dWRpYXIgc2kgZXMgbWVqb3JhYmxlIHV0aWxpemFuZG8gc2lnbmFscyBhIHBhcnRpciBkZSBhbmd1bGFyIDE2XG4gICAgXG4gICAgaWYgKHRoaXMudXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtc0ZsYWcgJiYgKHRoaXMubmV4dFZhbHVlID09PSBudWxsIHx8IHRoaXMubmV4dFZhbHVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXNGbGFnID0gZmFsc2U7XG5cbiAgICAgIC8qXG4gICAgICAgKiBTZSBtb2RpZmljYSBlbCB2YWxvciBkZXNkZSBsb3MgaXRlbXMsIGEgbm8gc2VyIHF1ZSBsYSBsaXN0YSBzZSBhY2FiZSBkZSBjcmVhclxuICAgICAgICogeSB5YSB0ZW5nYSB1biB2YWxvci4gRW4gZXNlIGNhc28sIHByZXZhbGVjZSBlbCB2YWxvciBleGlzdGVudGUuXG4gICAgICAgKi9cbiAgICAgIGlmICghdGhpcy51cGRhdGVJdGVtTGlzdEZsYWcgfHwgKHRoaXMudmFsdWUgPT09IG51bGwgfHwgdGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0UmFkaW9JdGVtcygpO1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCAmJiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiAhaXRlbS5pc0luaXQoKSAmJiAhaXRlbS5kaXZpZGVyKSA8IDApIHtcbiAgICAgICAgICBjb25zdCBjaGVja2VkSXRlbSA9IGl0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLmlzSW5wdXRDaGVja2VkKCkgJiYgIWl0ZW0uZGl2aWRlcik7XG4gICAgICAgICAgdGhpcy5uZXh0VmFsdWUgPSBjaGVja2VkSXRlbSA/IGNoZWNrZWRJdGVtLnZhbHVlIDogbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIFxuICAgIGlmICh0aGlzLm5leHRWYWx1ZSAhPT0gbnVsbCAmJiAodGhpcy5uZXh0VmFsdWUgIT09ICcnIHx8ICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUgIT09ICcnKSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5leHRWYWx1ZTtcbiAgICAgIHRoaXMubmV4dFZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVUb1JhZGlvSXRlbXNGbGFnID0gdHJ1ZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgID0+IHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZVJhZGlvc0lkc0ZsYWcpIHtcbiAgICAgIGNvbnN0IHJhZGlvc0l0ZW1zID0gdGhpcy5nZXRSYWRpb0l0ZW1zKCk7XG4gICAgICBpZiAocmFkaW9zSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICByYWRpb3NJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4gaXRlbS51cGRhdGVSYWRpb0lkKGluZGV4KSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZVJhZGlvc0lkc0ZsYWcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVWYWx1ZVRvUmFkaW9JdGVtc0ZsYWcpIHtcbiAgICAgIGNvbnN0IHJhZGlvSXRlbXMgPSB0aGlzLmdldFJhZGlvSXRlbXMoKTtcbiAgICAgIGlmIChyYWRpb0l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZVRvUmFkaW9JdGVtc0ZsYWcgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgdXBkYXRlSXRlbXMgPSB0aGlzLnVwZGF0ZVJhZGlvSXRlbXNDaGVja2VkKCk7XG4gICAgICAgIGlmICh1cGRhdGVJdGVtcyAmJiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZUl0ZW1MaXN0RmxhZykge1xuICAgICAgdGhpcy51cGRhdGVJdGVtTGlzdEZsYWcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZW50SW5pdEZsYWcgPSB0cnVlO1xuICAgIHRoaXMucmFkaW9Db21wb25lbnRJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4ge1xuICAgICAgdGhpcy51cGRhdGVJdGVtTGlzdEZsYWcgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIHNvYnJlc2NyaWJlIGVsIHdyaXRlVmFsdWUgZGUgRm9ybUZpZWxkIHBhcmEgZ2VzdGlvbmFyIGVuIHVuIMO6bmljbyBwdW50byBlbCB2YWxvciBkZSB2YWx1ZVxuICAgKiBAcGFyYW0gdmFsdWUgbnVldm8gdmFsb3IgYSBlc3RhYmxlY2VyXG4gICAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5uZXh0VmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBvbklkUHJlZml4Q2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRlbnRJbml0RmxhZykge1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlUmFkaW9zSWRzKCk7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpO1xuICB9XG5cblxuICBvbk5hbWVDaGFuZ2UoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5jb250ZW50SW5pdEZsYWcpIHtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZVJhZGlvc0lkcygpO1xuICAgIH1cblxuICAgIHRoaXMucHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YSBsb3MgY29tcG9uZW50ZXMgZXh0ZXJub3MgcXVlIHRpZW5lbiB2YWxvcmVzIGRlcGVuZGllbnRlcyBkZSBpZFByZWZpeFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBwcm9wYWdhdGVOZXdJZFByZWZpeFZhbHVlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhpbnRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVIaW50UGFyYW1zKHRoaXMuaGludENvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50KSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRXJyb3JNZXNzYWdlUGFyYW1zKHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICAvLyBBbCBoYWNlciBlbCBvdmVycmlkZSBkZSBoaW50IG8gZXJyb3IgeWEgc2UgYXBsaWNhIHNvYnJlIGVsIGZpZWxkc2V0LCBwb3IgbG8gcXVlIHPDs2xvIGVzIG5lY2VzYXJpbyBhcGxpY2FybG8gZGlyZWN0YW1lbnRlXG4gICAgLy8gc29icmUgZWwgZmllbGRzZXQgY3VhbmRvIG5pbmd1bm8gZGUgZXN0b3MgZXhpc3RlXG4gICAgaWYgKCF0aGlzLmhpbnRDb21wb25lbnQgJiYgIXRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMuZmllbGRzZXRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBtYXJrRm9yVXBkYXRlUmFkaW9zSWRzKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlUmFkaW9zSWRzRmxhZyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIGVzdGFkbyBkZSBsb3MgaXRlbXMgc2Vnw7puIGVsIHZhbG9yIGFzaWduYWRvIGFsIGNvbXBvbmVudGVcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlUmFkaW9JdGVtc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgbGV0IGl0ZW1zVXBkYXRlZCA9IGZhbHNlO1xuICAgIGNvbnN0IHJhZGlvc0l0ZW1zID0gdGhpcy5nZXRSYWRpb0l0ZW1zKCk7XG4gICAgaWYgKHJhZGlvc0l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJhZGlvc0l0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlICYmICFpdGVtLmxhc3RDaGVja2VkKSB7XG4gICAgICAgICAgaXRlbS5zZXRDaGVja2VkKHRydWUpO1xuICAgICAgICAgIGl0ZW1zVXBkYXRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS52YWx1ZSAhPT0gdGhpcy52YWx1ZSAmJiBpdGVtLmxhc3RDaGVja2VkKSB7XG4gICAgICAgICAgaXRlbS5zZXRDaGVja2VkKGZhbHNlKTtcbiAgICAgICAgICBpdGVtc1VwZGF0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW1zVXBkYXRlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgdmFsb3IgY3VhbmRvIHNlIHByb2R1Y2UgdW4gY2FtYmlvIGVuIGxvcyBpdGVtcywgdGFudG8gaW50ZXJubyBjb21vIGV4dGVybm9cbiAgICovXG4gIHVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zRmxhZyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVlbXBsYXpvIGRlIGZ1bmNpb25lcyBkZSBGb3JtRmllbGRcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZCk7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldFJhZGlvSXRlbXMoKTtcbiAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgaXRlbXMuZm9yRWFjaChpID0+IGkucGFyZW50RGlzYWJsZWQgPSBpc0Rpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qXG4gICAqIEZ1bmNpb25lcyBwYXJhIHJlZW1wbGF6YXIgZWwgY29udGVuaWRvIGRlbCBmaWVsZHNldCwgbGFiZWwsIGhpbnQgbyBlcnJvcm1lc3NhZ2VcbiAgICovXG5cbiAgb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyhmaWVsZHNldDogRmllbGRzZXRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBmaWVsZHNldC5jYWxsZXIgPSB0aGlzLmlubmVySHRtbDtcbiAgICBmaWVsZHNldC5lcnJvcklkID0gdGhpcy5nZXRFcnJvcklkKCk7XG4gICAgZmllbGRzZXQuZGVzY3JpYmVkQnkgPSBuZXcgTWFrZUh0bWxMaXN0UGlwZSgpLnRyYW5zZm9ybShbdGhpcy5nZXRIaW50SWQoKSwgdGhpcy5nZXRFcnJvcklkKCldLCBudWxsKTtcbiAgICBmaWVsZHNldC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvdmVycmlkZUhpbnRQYXJhbXMoaGludDogSGludENvbXBvbmVudCk6IHZvaWQge1xuICAgIGhpbnQuaWQgPSB0aGlzLmdldEhpbnRJZCgpO1xuICAgIGhpbnQuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlRXJyb3JNZXNzYWdlUGFyYW1zKGVycm9yTWVzc2FnZTogRXJyb3JNZXNzYWdlQ29tcG9uZW50KTogdm9pZCB7XG4gICAgZXJyb3JNZXNzYWdlLmlkID0gdGhpcy5nZXRFcnJvcklkKCk7XG4gICAgZXJyb3JNZXNzYWdlLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZUhpbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGVsZXRlRXJyb3JNZXNzYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuXG4gIC8qXG4gICAqIEZ1bmNpb25lcyBwYXJhIHJlY3VwZXJhciB2YWxvcmVzIGNvbXVuZXNcbiAgICovXG5cbiAgaGFzRmllbGRzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSB8fCB0aGlzLmhhc0xlZ2VuZENvbXBvbmVudCgpIHx8IHRoaXMubGVnZW5kUmVmIHx8IHRoaXMuZmllbGRzZXREYXRhIHx8XG4gICAgICAodGhpcy5sZWdlbmREYXRhICYmICh0aGlzLmxlZ2VuZERhdGEudGV4dCB8fCB0aGlzLmxlZ2VuZERhdGEuaHRtbCkpIHx8IHRoaXMubGVnZW5kVGV4dCk7XG4gIH1cblxuICBoYXNGaWVsZHNldENvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpZWxkc2V0Q29tcG9uZW50O1xuICB9XG5cbiAgaGFzTGVnZW5kQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubGVnZW5kQ29tcG9uZW50O1xuICB9XG5cbiAgZ2V0RXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yc01lc3NhZ2UoKSA/IHRoaXMuZ2V0SWRQcmVmaXgoKSArICctZXJyb3InIDogbnVsbDtcbiAgfVxuXG4gIGdldEhpbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhhc0hpbnQoKSA/IHRoaXMuZ2V0SWRQcmVmaXgoKSArICctaGludCcgOiBudWxsO1xuICB9XG5cbiAgZ2V0SWRQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRSYWRpb0l0ZW1zKCk6IFJhZGlvSXRlbUNvbXBvbmVudFtdIHtcbiAgICBsZXQgcmFkaW9zSXRlbXMgPSBbXTtcbiAgICBpZiAodGhpcy5yYWRpb0NvbXBvbmVudEl0ZW1zICYmIHRoaXMucmFkaW9Db21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICByYWRpb3NJdGVtcyA9IHRoaXMucmFkaW9Db21wb25lbnRJdGVtcy50b0FycmF5KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMyICYmIHRoaXMucmFkaW9Db21wb25lbnRJdGVtczIubGVuZ3RoID4gMCkge1xuICAgICAgcmFkaW9zSXRlbXMgPSB0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMyLnRvQXJyYXkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhZGlvc0l0ZW1zO1xuICB9XG59XG4iLCI8ZGl2IFtjbGFzc109XCJbJ2MtZm9ybS1ncm91cCcsIGZvcm1Hcm91cENsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgW25nQ2xhc3NdPVwieydjLWZvcm0tZ3JvdXAtLWVycm9yJzogKGhhc0Vycm9yc01lc3NhZ2UoKSB8fCBmb3JtR3JvdXBDbGFzc2VzID09PSAnYy1mb3JtLWdyb3VwLS1lcnJvcicpIH1cIj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRmllbGRzZXRDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZmllbGRzZXRcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0ZpZWxkc2V0Q29tcG9uZW50KClcIj5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cImZpZWxkc2V0RGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImZpZWxkc2V0RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkc2V0RGF0YS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmREYXRhXT1cImZpZWxkc2V0RGF0YS5sZWdlbmRcIlxuICAgICAgICAgICAgICAgICAgICBbaGVhZGluZ0xldmVsXT1cImZpZWxkc2V0RGF0YS5oZWFkaW5nTGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbZmllbGRzZXREYXRhLmRlc2NyaWJlZEJ5LCBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiZmllbGRzZXREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImZpZWxkc2V0RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiZmllbGRzZXREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiZmllbGRzZXREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImZpZWxkc2V0RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImZpZWxkc2V0RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiZmllbGRzZXREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImZpZWxkc2V0RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiZmllbGRzZXREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiZmllbGRzZXREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJmaWVsZHNldERhdGEudGFiaW5kZXhcIj48L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmIGhhc0xlZ2VuZENvbXBvbmVudCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZFJlZl09XCJsZWdlbmRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPlxuICAgICAgPG5nLXRlbXBsYXRlICNsZWdlbmRUZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1sZWdlbmRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGVzeS1maWVsZHNldD5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgIWhhc0xlZ2VuZENvbXBvbmVudCgpICYmIGxlZ2VuZFJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRSZWZdPVwibGVnZW5kUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhaGFzTGVnZW5kQ29tcG9uZW50KCkgJiYgIWxlZ2VuZFJlZiAmJiBsZWdlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZERhdGFdPVwie3RleHQ6IGxlZ2VuZERhdGEudGV4dCwgaHRtbDogbGVnZW5kRGF0YS5odG1sLCAgY2xhc3NlczogbGVnZW5kRGF0YS5jbGFzc2VzLCBpc1BhZ2VIZWFkaW5nOiBsZWdlbmREYXRhLmlzUGFnZUhlYWRpbmd9XCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhaGFzTGVnZW5kQ29tcG9uZW50KCkgJiYgIWxlZ2VuZFJlZiAmJiAhbGVnZW5kRGF0YSAmJiBsZWdlbmRUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZFRleHRdPVwibGVnZW5kVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPjwvZGVzeS1maWVsZHNldD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNGaWVsZHNldCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVySHRtbFwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2lubmVySHRtbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0hpbnRDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktaGludFwiPjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzSGludENvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhpbnRSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWhpbnRSZWYgJiYgaGludERhdGFcIlxuICAgICAgICAgICAgICAgW2lkXT1cImdldEhpbnRJZCgpXCJcbiAgICAgICAgICAgICAgIFt0ZXh0XT1cImhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgW2h0bWxdPVwiaGludERhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICBbY2xhc3Nlc109XCJoaW50RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgIFtyb2xlXT1cImhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJoaW50RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgW2FyaWFEZXNjcmliZWRCeV09XCJoaW50RGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImhpbnREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJoaW50RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJoaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImhpbnREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJoaW50RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJoaW50RGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiaGludERhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJoaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuICAgIDxkZXN5LWhpbnQgKm5nSWY9XCIhaGludFJlZiAmJiAhaGludERhdGEgJiYgaGludFRleHRcIiBbdGV4dF09XCJoaW50VGV4dFwiIFtpZF09XCJnZXRIaW50SWQoKVwiPjwvZGVzeS1oaW50PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWVycm9yLW1lc3NhZ2VcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yTWVzc2FnZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxkZXN5LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCIhZXJyb3JNZXNzYWdlUmVmICYmIGVycm9yTWVzc2FnZURhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2h0bWxdPVwiZXJyb3JNZXNzYWdlRGF0YS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImVycm9yTWVzc2FnZURhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmlzdWFsbHlIaWRkZW5UZXh0XT1cImVycm9yTWVzc2FnZURhdGEudmlzdWFsbHlIaWRkZW5UZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cImVycm9yTWVzc2FnZURhdGEucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJlcnJvck1lc3NhZ2VEYXRhLnRhYmluZGV4XCI+PC9kZXN5LWVycm9yLW1lc3NhZ2U+XG4gICAgPGRlc3ktZXJyb3ItbWVzc2FnZSAqbmdJZj1cIiFlcnJvck1lc3NhZ2VSZWYgJiYgIWVycm9yTWVzc2FnZURhdGEgJiYgZXJyb3JNZXNzYWdlVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJlcnJvck1lc3NhZ2VUZXh0XCIgW2lkXT1cImdldEVycm9ySWQoKVwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuXG4gIDxkaXYgW2NsYXNzXT1cIlsnYy1yYWRpb3MnLCBjbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgW2F0dHIuaWRdPVwiaWQgPyBpZCA6IG51bGxcIlxuICAgICAgIFthdHRyLnJvbGVdPVwicm9sZSA/IHJvbGUgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5ID8gYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkID8gYXJpYURpc2FibGVkIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJhcmlhTGl2ZSA/IGFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwID8gYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXggPyB0YWJpbmRleCA6IG51bGxcIj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJhZGlvQ29tcG9uZW50SXRlbXMgJiYgcmFkaW9Db21wb25lbnRJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktcmFkaW8taXRlbVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEocmFkaW9Db21wb25lbnRJdGVtcyAmJiByYWRpb0NvbXBvbmVudEl0ZW1zLmxlbmd0aCA+IDApICYmIGl0ZW1zXCI+XG4gICAgICAgIDxkZXN5LXJhZGlvLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaXRlbS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbKGNoZWNrZWQpXT1cIml0ZW0uY2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsXT1cIml0ZW0uY29uZGl0aW9uYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXZpZGVyXT1cIml0ZW0uZGl2aWRlclwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiPlxuICAgICAgICAgIDxkZXN5LWxhYmVsIFt0ZXh0XT1cIml0ZW0udGV4dFwiIFtodG1sXT1cIml0ZW0uaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5jbGFzc2VzIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5yb2xlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRGVzY3JpYmVkQnk6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFMYWJlbGxlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFFeHBhbmRlZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXggPyBpdGVtLmxhYmVsRGF0YS50YWJpbmRleCA6IG51bGxcIj48L2Rlc3ktbGFiZWw+XG4gICAgICAgICAgPGRlc3ktaGludCAqbmdJZj1cIml0ZW0uaGludERhdGEgJiYgKGl0ZW0uaGludERhdGEudGV4dCB8fCBpdGVtLmhpbnREYXRhLmh0bWwpXCJcbiAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIml0ZW0uaGludERhdGEudGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICBbaHRtbF09XCJpdGVtLmhpbnREYXRhLmh0bWxcIlxuICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaXRlbS5oaW50RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0uaGludERhdGEucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIml0ZW0uaGludERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5oaW50RGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uaGludERhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5oaW50RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5oaW50RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmhpbnREYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5oaW50RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5oaW50RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0uaGludERhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0uaGludERhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uaGludERhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpdGVtLmhpbnREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWhpbnQ+XG4gICAgICAgICAgPGRlc3ktaGludCAqbmdJZj1cIiFpdGVtLmhpbnREYXRhICYmIGl0ZW0uaGludFRleHRcIiBbdGV4dF09XCJpdGVtLmhpbnRUZXh0XCI+PC9kZXN5LWhpbnQ+XG4gICAgICAgICAgPGRlc3ktY29udGVudCAqbmdJZj1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS5jb25kaXRpb25hbEh0bWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rlc3ktY29udGVudD5cbiAgICAgICAgPC9kZXN5LXJhZGlvLWl0ZW0+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9yYWRpb3MvcmFkaW9zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9yYWRpb3MvcmFkaW9zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFdBQVcsRUFBRSxTQUFTLEVBQ3RCLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7QUFpQmxFLE1BQU0sT0FBTyxlQUFnQixTQUFRLHFCQUFxQjtJQWYxRDs7UUFzQ1ksZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQW9CcEQsY0FBUyxHQUFHLElBQUks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RUFBRTs4QkFDZ0MsZUFBZTt3REFBQzsyRkFuQ3hELGVBQWU7a0JBZjNCLFNBQVM7K0JBQ0UsYUFBYSxhQUVaO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0Y7OEJBYVEsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFHVyxRQUFRO3NCQUF4QixLQUFLO2dCQUdXLElBQUk7c0JBQXBCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUUsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNXLFdBQVc7c0JBQTNCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ1csV0FBVztzQkFBM0IsS0FBSztnQkFHOEIsaUJBQWlCO3NCQUFwRCxlQUFlO3VCQUFDLGlCQUFpQjtnQkFHQSxlQUFlO3NCQUFoRCxlQUFlO3VCQUFDLGVBQWU7Z0JBRUssbUJBQW1CO3NCQUF2RCxlQUFlO3VCQUFDLGtCQUFrQjtnQkFFTyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ04sb0JBQW9CO3NCQUFyRCxZQUFZO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEb0NoZWNrLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGaWVsZHNldERhdGEsIEl0ZW1SYWRpb0RhdGEsIExlZ2VuZERhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtMZWdlbmRDb21wb25lbnR9IGZyb20gJy4uL2ZpZWxkc2V0L2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50JztcbmltcG9ydCB7UmFkaW9JdGVtQ29tcG9uZW50fSBmcm9tICcuL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtGaWVsZHNldENvbXBvbmVudH0gZnJvbSAnLi4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcbmltcG9ydCB7TWFrZUh0bWxMaXN0UGlwZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL21ha2UtaHRtbC1saXN0LnBpcGUnO1xuaW1wb3J0IHtIaW50Q29tcG9uZW50fSBmcm9tICcuLi9oaW50L2hpbnQuY29tcG9uZW50JztcbmltcG9ydCB7RXJyb3JNZXNzYWdlQ29tcG9uZW50fSBmcm9tICcuLi9lcnJvci1tZXNzYWdlL2Vycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XG5pbXBvcnQge0Rlc3lPbklucHV0Q2hhbmdlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LW9uLWlucHV0LWNoYW5nZS5kZWNvcmF0b3InO1xuaW1wb3J0IHsgUmFkaW9zUGFyZW50Q29tcG9uZW50IH0gZnJvbSAnLi9yYWRpb3MtcGFyZW50LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktcmFkaW9zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvcy5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFkaW9zQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBSYWRpb3NQYXJlbnRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogUmFkaW9zQ29tcG9uZW50LFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb3NDb21wb25lbnQgZXh0ZW5kcyBSYWRpb3NQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrLCBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBcbiAgLyoqXG4gICAqIGZpZWxkc2V0LCBkaWZlcmVudGVzIGZvcm1hcyBkZSBpbXBsZW1lbnRhciwgZW51bWVyYWRhcyBwb3IgcHJpb3JpZGFkXG4gICAqIDEpIGluY2x1aXIgY29tcG9uZW50ZSBGaWVsZHNldENvbXBvbmVudFxuICAgKiAyKSBpbmNsdWlyIG9iamV0byBGaWVsZHNldERhdGEgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiAzKSBpbmNsdWlyIGNvbXBvbmVudGUgTGVnZW5kQ29tcG9uZW50XG4gICAqIDQpIGluY2x1aXIgdGVtcGxhdGUgbGVnZW5kXG4gICAqIDUpIGluY2x1aXIgbGVnZW5kRGF0YSAtIGluY2x1aXIgdW4gZmllbGRzZXQgY29uIHVuYSBsZWdlbmRhIGNvbiBsb3MgcGFyYW1ldHJvcyBwYXNhZG9zICAoaW50ZXJmYXogZXhwdWVzdGEpXG4gICAqIDYpIGluY2x1aXIgbGVnZW5kVGV4dCAtIGluY2x1aXIgdW4gZmllbGRzZXQgY29uIHVuIHRleHRvIGVuIGxhIGxlZ2VuZGFcbiAgICovXG4gIEBJbnB1dCgpIGZpZWxkc2V0RGF0YTogRmllbGRzZXREYXRhO1xuICBASW5wdXQoKSBsZWdlbmRSZWY6IFRlbXBsYXRlUmVmPExlZ2VuZENvbXBvbmVudD47XG4gIEBJbnB1dCgpIGxlZ2VuZERhdGE6IExlZ2VuZERhdGE7XG4gIEBJbnB1dCgpIGxlZ2VuZFRleHQ6IHN0cmluZztcbiAgXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25JZFByZWZpeENoYW5nZScpXG4gIEBJbnB1dCgpIGRlY2xhcmUgaWRQcmVmaXg6IHN0cmluZztcbiAgXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25OYW1lQ2hhbmdlJylcbiAgQElucHV0KCkgZGVjbGFyZSBuYW1lOiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBpdGVtczogSXRlbVJhZGlvRGF0YVtdO1xuICBAT3V0cHV0KCkgaXRlbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEl0ZW1SYWRpb0RhdGFbXT4oKTtcbiAgXG4gIEBJbnB1dCgpIGZvcm1Hcm91cENsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgZGVjbGFyZSBoYXNEaXZpZGVyczogYm9vbGVhbjtcbiAgQElucHV0KCkgaGFzRXJyb3I6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgZGVjbGFyZSBkZXNjcmliZWRCeTogc3RyaW5nO1xuICBcbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcbiAgQENvbnRlbnRDaGlsZHJlbihGaWVsZHNldENvbXBvbmVudCkgZmllbGRzZXRDb21wb25lbnQ6IEZpZWxkc2V0Q29tcG9uZW50O1xuICBcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxuICBAQ29udGVudENoaWxkcmVuKExlZ2VuZENvbXBvbmVudCkgbGVnZW5kQ29tcG9uZW50OiBMZWdlbmRDb21wb25lbnQ7XG4gIFxuICBAQ29udGVudENoaWxkcmVuKFJhZGlvSXRlbUNvbXBvbmVudCkgcmFkaW9Db21wb25lbnRJdGVtczogUXVlcnlMaXN0PFJhZGlvSXRlbUNvbXBvbmVudD47XG4gIFxuICBAVmlld0NoaWxkKCdpbm5lckh0bWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbm5lckh0bWw6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGRyZW4oUmFkaW9JdGVtQ29tcG9uZW50KSByYWRpb0NvbXBvbmVudEl0ZW1zMjogUXVlcnlMaXN0PFJhZGlvSXRlbUNvbXBvbmVudD47XG4gIFxuICAvLyBGbGFnc1xuICBwcml2YXRlIG5leHRWYWx1ZSA9IG51bGw7ICAgICAgICAgICAgICAgICAgICAgIC8vIFByw7N4aW1vIHZhbG9yIGVuIGVsIGNvbXBvbmVudGVcbiAgcHJpdmF0ZSB1cGRhdGVSYWRpb3NJZHNGbGFnID0gZmFsc2U7ICAgICAgICAgICAvLyBJbmRpY2EgcXVlIHNlIGhhbiBtb2RpZmljYWRvIGxvcyBpZHMgZGUgbG9zIGl0ZW1zXG4gIHByaXZhdGUgY29udGVudEluaXRGbGFnID0gZmFsc2U7ICAgICAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBzZSBpbmljaWFsaXphZG8gZWwgY29uZW5pZG9cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zRmxhZyA9IGZhbHNlOyAvLyBJbmRpY2EgcXVlIHNlIGhhIHNlbGVjY2lvbmFkby9kZXNlbGVjY2lvbmFkbyB1biBpdGVtXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVUb1JhZGlvSXRlbXNGbGFnID0gZmFsc2U7ICAgLy8gSW5kaWNhIHF1ZSBzZSBkZWJlIHNlbGVjY2lvbmFyL2Rlc2VsZWNjaW9uYXIgdW4gaXRlbVxuICBwcml2YXRlIHVwZGF0ZUl0ZW1MaXN0RmxhZyA9IGZhbHNlOyAgICAgICAgICAgIC8vIEluZGljYSBxdWUgc2UgaGEgY3JlYWRvL21vZGlmaWNhZG8gZWwgbGlzdGFkbyBkZSBpdGVtc1xuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcblxuICAgIFxuICAgIC8vIFRPRE8gRXN0YSBnZXN0acOzbiByZXN1bHRhIGVuZ29ycm9zYSB5IGRpZmljaWwgZGUgc2VndWlyLiBFc3R1ZGlhciBzaSBlcyBtZWpvcmFibGUgdXRpbGl6YW5kbyBzaWduYWxzIGEgcGFydGlyIGRlIGFuZ3VsYXIgMTZcbiAgICBcbiAgICBpZiAodGhpcy51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zRmxhZykge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zRmxhZyA9IGZhbHNlO1xuXG4gICAgICAvKlxuICAgICAgICogU2UgbW9kaWZpY2EgZWwgdmFsb3IgZGVzZGUgbG9zIGl0ZW1zLCBhIG5vIHNlciBxdWUgbGEgbGlzdGEgc2UgYWNhYmUgZGUgY3JlYXJcbiAgICAgICAqIHkgeWEgdGVuZ2EgdW4gdmFsb3IuIEVuIGVzZSBjYXNvLCBwcmV2YWxlY2UgZWwgdmFsb3IgZXhpc3RlbnRlLlxuICAgICAgICovXG4gICAgICBpZiAoIXRoaXMudXBkYXRlSXRlbUxpc3RGbGFnIHx8ICh0aGlzLnZhbHVlID09PSBudWxsIHx8IHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldFJhZGlvSXRlbXMoKTtcbiAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDAgJiYgaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gIWl0ZW0uaXNJbml0KCkgJiYgIWl0ZW0uZGl2aWRlcikgPCAwKSB7XG4gICAgICAgICAgY29uc3QgY2hlY2tlZEl0ZW0gPSBpdGVtcy5maW5kKGl0ZW0gPT4gaXRlbS5pc0lucHV0Q2hlY2tlZCgpICYmICFpdGVtLmRpdmlkZXIpO1xuICAgICAgICAgIHRoaXMubmV4dFZhbHVlID0gY2hlY2tlZEl0ZW0gPyBjaGVja2VkSXRlbS52YWx1ZSA6IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBcbiAgICBpZiAodGhpcy5uZXh0VmFsdWUgIT09IG51bGwgJiYgKHRoaXMubmV4dFZhbHVlICE9PSAnJyB8fCAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9PSAnJykpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5uZXh0VmFsdWU7XG4gICAgICB0aGlzLm5leHRWYWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlVG9SYWRpb0l0ZW1zRmxhZyA9IHRydWU7XG4gICAgICBzZXRUaW1lb3V0KCgpICA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVSYWRpb3NJZHNGbGFnKSB7XG4gICAgICBjb25zdCByYWRpb3NJdGVtcyA9IHRoaXMuZ2V0UmFkaW9JdGVtcygpO1xuICAgICAgaWYgKHJhZGlvc0l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmFkaW9zSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IGl0ZW0udXBkYXRlUmFkaW9JZChpbmRleCkpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVSYWRpb3NJZHNGbGFnID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXBkYXRlVmFsdWVUb1JhZGlvSXRlbXNGbGFnKSB7XG4gICAgICBjb25zdCByYWRpb0l0ZW1zID0gdGhpcy5nZXRSYWRpb0l0ZW1zKCk7XG4gICAgICBpZiAocmFkaW9JdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVUb1JhZGlvSXRlbXNGbGFnID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHVwZGF0ZUl0ZW1zID0gdGhpcy51cGRhdGVSYWRpb0l0ZW1zQ2hlY2tlZCgpO1xuICAgICAgICBpZiAodXBkYXRlSXRlbXMgJiYgdGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVJdGVtTGlzdEZsYWcpIHtcbiAgICAgIHRoaXMudXBkYXRlSXRlbUxpc3RGbGFnID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudEluaXRGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlID0+IHtcbiAgICAgIHRoaXMudXBkYXRlSXRlbUxpc3RGbGFnID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBzb2JyZXNjcmliZSBlbCB3cml0ZVZhbHVlIGRlIEZvcm1GaWVsZCBwYXJhIGdlc3Rpb25hciBlbiB1biDDum5pY28gcHVudG8gZWwgdmFsb3IgZGUgdmFsdWVcbiAgICogQHBhcmFtIHZhbHVlIG51ZXZvIHZhbG9yIGEgZXN0YWJsZWNlclxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubmV4dFZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgb25JZFByZWZpeENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50SW5pdEZsYWcpIHtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZVJhZGlvc0lkcygpO1xuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZU5ld0lkUHJlZml4VmFsdWUoKTtcbiAgfVxuXG5cbiAgb25OYW1lQ2hhbmdlKCk6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuY29udGVudEluaXRGbGFnKSB7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGVSYWRpb3NJZHMoKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BhZ2F0ZU5ld0lkUHJlZml4VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgbG9zIGNvbXBvbmVudGVzIGV4dGVybm9zIHF1ZSB0aWVuZW4gdmFsb3JlcyBkZXBlbmRpZW50ZXMgZGUgaWRQcmVmaXhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oaW50Q29tcG9uZW50KSB7XG4gICAgICB0aGlzLm92ZXJyaWRlSGludFBhcmFtcyh0aGlzLmhpbnRDb21wb25lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudCkge1xuICAgICAgdGhpcy5vdmVycmlkZUVycm9yTWVzc2FnZVBhcmFtcyh0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgLy8gQWwgaGFjZXIgZWwgb3ZlcnJpZGUgZGUgaGludCBvIGVycm9yIHlhIHNlIGFwbGljYSBzb2JyZSBlbCBmaWVsZHNldCwgcG9yIGxvIHF1ZSBzw7NsbyBlcyBuZWNlc2FyaW8gYXBsaWNhcmxvIGRpcmVjdGFtZW50ZVxuICAgIC8vIHNvYnJlIGVsIGZpZWxkc2V0IGN1YW5kbyBuaW5ndW5vIGRlIGVzdG9zIGV4aXN0ZVxuICAgIGlmICghdGhpcy5oaW50Q29tcG9uZW50ICYmICF0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLmZpZWxkc2V0Q29tcG9uZW50KSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgbWFya0ZvclVwZGF0ZVJhZGlvc0lkcygpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVJhZGlvc0lkc0ZsYWcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YSBlbCBlc3RhZG8gZGUgbG9zIGl0ZW1zIHNlZ8O6biBlbCB2YWxvciBhc2lnbmFkbyBhbCBjb21wb25lbnRlXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVJhZGlvSXRlbXNDaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIGxldCBpdGVtc1VwZGF0ZWQgPSBmYWxzZTtcbiAgICBjb25zdCByYWRpb3NJdGVtcyA9IHRoaXMuZ2V0UmFkaW9JdGVtcygpO1xuICAgIGlmIChyYWRpb3NJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICByYWRpb3NJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSAmJiAhaXRlbS5sYXN0Q2hlY2tlZCkge1xuICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZCh0cnVlKTtcbiAgICAgICAgICBpdGVtc1VwZGF0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udmFsdWUgIT09IHRoaXMudmFsdWUgJiYgaXRlbS5sYXN0Q2hlY2tlZCkge1xuICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZChmYWxzZSk7XG4gICAgICAgICAgaXRlbXNVcGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtc1VwZGF0ZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIHZhbG9yIGN1YW5kbyBzZSBwcm9kdWNlIHVuIGNhbWJpbyBlbiBsb3MgaXRlbXMsIHRhbnRvIGludGVybm8gY29tbyBleHRlcm5vXG4gICAqL1xuICB1cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtc0ZsYWcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZW1wbGF6byBkZSBmdW5jaW9uZXMgZGUgRm9ybUZpZWxkXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci5zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQpO1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRSYWRpb0l0ZW1zKCk7XG4gICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaSA9PiBpLnBhcmVudERpc2FibGVkID0gaXNEaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWVtcGxhemFyIGVsIGNvbnRlbmlkbyBkZWwgZmllbGRzZXQsIGxhYmVsLCBoaW50IG8gZXJyb3JtZXNzYWdlXG4gICAqL1xuXG4gIG92ZXJyaWRlRmllbGRzZXRQYXJhbXMoZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgZmllbGRzZXQuY2FsbGVyID0gdGhpcy5pbm5lckh0bWw7XG4gICAgZmllbGRzZXQuZXJyb3JJZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGZpZWxkc2V0LmRlc2NyaWJlZEJ5ID0gbmV3IE1ha2VIdG1sTGlzdFBpcGUoKS50cmFuc2Zvcm0oW3RoaXMuZ2V0SGludElkKCksIHRoaXMuZ2V0RXJyb3JJZCgpXSwgbnVsbCk7XG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb3ZlcnJpZGVIaW50UGFyYW1zKGhpbnQ6IEhpbnRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBoaW50LmlkID0gdGhpcy5nZXRIaW50SWQoKTtcbiAgICBoaW50LmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZUVycm9yTWVzc2FnZVBhcmFtcyhlcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGVycm9yTWVzc2FnZS5pZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGVycm9yTWVzc2FnZS5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGVIaW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZUVycm9yTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWN1cGVyYXIgdmFsb3JlcyBjb211bmVzXG4gICAqL1xuXG4gIGhhc0ZpZWxkc2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkgfHwgdGhpcy5oYXNMZWdlbmRDb21wb25lbnQoKSB8fCB0aGlzLmxlZ2VuZFJlZiB8fCB0aGlzLmZpZWxkc2V0RGF0YSB8fFxuICAgICAgKHRoaXMubGVnZW5kRGF0YSAmJiAodGhpcy5sZWdlbmREYXRhLnRleHQgfHwgdGhpcy5sZWdlbmREYXRhLmh0bWwpKSB8fCB0aGlzLmxlZ2VuZFRleHQpO1xuICB9XG5cbiAgaGFzRmllbGRzZXRDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5maWVsZHNldENvbXBvbmVudDtcbiAgfVxuXG4gIGhhc0xlZ2VuZENvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmxlZ2VuZENvbXBvbmVudDtcbiAgfVxuXG4gIGdldEVycm9ySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnNNZXNzYWdlKCkgPyB0aGlzLmdldElkUHJlZml4KCkgKyAnLWVycm9yJyA6IG51bGw7XG4gIH1cblxuICBnZXRIaW50SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oYXNIaW50KCkgPyB0aGlzLmdldElkUHJlZml4KCkgKyAnLWhpbnQnIDogbnVsbDtcbiAgfVxuXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0UmFkaW9JdGVtcygpOiBSYWRpb0l0ZW1Db21wb25lbnRbXSB7XG4gICAgbGV0IHJhZGlvc0l0ZW1zID0gW107XG4gICAgaWYgKHRoaXMucmFkaW9Db21wb25lbnRJdGVtcyAmJiB0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgcmFkaW9zSXRlbXMgPSB0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMudG9BcnJheSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yYWRpb0NvbXBvbmVudEl0ZW1zMiAmJiB0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMyLmxlbmd0aCA+IDApIHtcbiAgICAgIHJhZGlvc0l0ZW1zID0gdGhpcy5yYWRpb0NvbXBvbmVudEl0ZW1zMi50b0FycmF5KCk7XG4gICAgfVxuICAgIHJldHVybiByYWRpb3NJdGVtcztcbiAgfVxufVxuIiwiPGRpdiBbY2xhc3NdPVwiWydjLWZvcm0tZ3JvdXAnLCBmb3JtR3JvdXBDbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgIFtuZ0NsYXNzXT1cInsnYy1mb3JtLWdyb3VwLS1lcnJvcic6IChoYXNFcnJvcnNNZXNzYWdlKCkgfHwgZm9ybUdyb3VwQ2xhc3NlcyA9PT0gJ2MtZm9ybS1ncm91cC0tZXJyb3InKSB9XCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0ZpZWxkc2V0Q29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWZpZWxkc2V0XCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNGaWVsZHNldENvbXBvbmVudCgpXCI+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCJmaWVsZHNldERhdGFcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJmaWVsZHNldERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZHNldERhdGEuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kRGF0YV09XCJmaWVsZHNldERhdGEubGVnZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRpbmdMZXZlbF09XCJmaWVsZHNldERhdGEuaGVhZGluZ0xldmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiW2ZpZWxkc2V0RGF0YS5kZXNjcmliZWRCeSwgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cImZpZWxkc2V0RGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJmaWVsZHNldERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImZpZWxkc2V0RGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImZpZWxkc2V0RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJmaWVsZHNldERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJmaWVsZHNldERhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImZpZWxkc2V0RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJmaWVsZHNldERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImZpZWxkc2V0RGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImZpZWxkc2V0RGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZmllbGRzZXREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiBoYXNMZWdlbmRDb21wb25lbnQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRSZWZdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbGVnZW5kVGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktbGVnZW5kXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFoYXNMZWdlbmRDb21wb25lbnQoKSAmJiBsZWdlbmRSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kUmVmXT1cImxlZ2VuZFJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPjwvZGVzeS1maWVsZHNldD5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgIWhhc0xlZ2VuZENvbXBvbmVudCgpICYmICFsZWdlbmRSZWYgJiYgbGVnZW5kRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmREYXRhXT1cInt0ZXh0OiBsZWdlbmREYXRhLnRleHQsIGh0bWw6IGxlZ2VuZERhdGEuaHRtbCwgIGNsYXNzZXM6IGxlZ2VuZERhdGEuY2xhc3NlcywgaXNQYWdlSGVhZGluZzogbGVnZW5kRGF0YS5pc1BhZ2VIZWFkaW5nfVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPjwvZGVzeS1maWVsZHNldD5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgIWhhc0xlZ2VuZENvbXBvbmVudCgpICYmICFsZWdlbmRSZWYgJiYgIWxlZ2VuZERhdGEgJiYgbGVnZW5kVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRUZXh0XT1cImxlZ2VuZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj48L2Rlc3ktZmllbGRzZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzRmllbGRzZXQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lckh0bWxcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbm5lckh0bWw+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNIaW50Q29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0hpbnRDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaW50UmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGRlc3ktaGludCAqbmdJZj1cIiFoaW50UmVmICYmIGhpbnREYXRhXCJcbiAgICAgICAgICAgICAgIFtpZF09XCJnZXRIaW50SWQoKVwiXG4gICAgICAgICAgICAgICBbdGV4dF09XCJoaW50RGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgIFtodG1sXT1cImhpbnREYXRhLmh0bWxcIlxuICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaGludERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICBbcm9sZV09XCJoaW50RGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaGludERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaGludERhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJoaW50RGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJoaW50RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaGludERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaGludERhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJoaW50RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaGludERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJoaW50RGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaGludERhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImhpbnREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaGludERhdGEudGFiaW5kZXhcIj48L2Rlc3ktaGludD5cbiAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWhpbnRSZWYgJiYgIWhpbnREYXRhICYmIGhpbnRUZXh0XCIgW3RleHRdPVwiaGludFRleHRcIiBbaWRdPVwiZ2V0SGludElkKClcIj48L2Rlc3ktaGludD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1lcnJvci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvck1lc3NhZ2VSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiBlcnJvck1lc3NhZ2VEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlRGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cImVycm9yTWVzc2FnZURhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJlcnJvck1lc3NhZ2VEYXRhLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Zpc3VhbGx5SGlkZGVuVGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnZpc3VhbGx5SGlkZGVuVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJlcnJvck1lc3NhZ2VEYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZXJyb3JNZXNzYWdlRGF0YS50YWJpbmRleFwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuICAgIDxkZXN5LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCIhZXJyb3JNZXNzYWdlUmVmICYmICFlcnJvck1lc3NhZ2VEYXRhICYmIGVycm9yTWVzc2FnZVRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlVGV4dFwiIFtpZF09XCJnZXRFcnJvcklkKClcIj48L2Rlc3ktZXJyb3ItbWVzc2FnZT5cbiAgPC9uZy1jb250YWluZXI+XG5cblxuICA8ZGl2IFtjbGFzc109XCJbJ2MtcmFkaW9zJywgY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgIFthdHRyLmlkXT1cImlkID8gaWQgOiBudWxsXCJcbiAgICAgICBbYXR0ci5yb2xlXT1cInJvbGUgPyByb2xlIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPyBhcmlhTGFiZWwgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeSA/IGFyaWFEZXNjcmliZWRCeSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeSA/IGFyaWFMYWJlbGxlZEJ5IDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlbiA/IGFyaWFIaWRkZW4gOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZCA/IGFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzID8gYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50ID8gYXJpYUN1cnJlbnQgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmUgPyBhcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiYXJpYUV4cGFuZGVkID8gYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cCA/IGFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4ID8gdGFiaW5kZXggOiBudWxsXCI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyYWRpb0NvbXBvbmVudEl0ZW1zICYmIHJhZGlvQ29tcG9uZW50SXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LXJhZGlvLWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKHJhZGlvQ29tcG9uZW50SXRlbXMgJiYgcmFkaW9Db21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSAmJiBpdGVtc1wiPlxuICAgICAgICA8ZGVzeS1yYWRpby1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cIml0ZW0uY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgWyhjaGVja2VkKV09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25kaXRpb25hbF09XCJpdGVtLmNvbmRpdGlvbmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGl2aWRlcl09XCJpdGVtLmRpdmlkZXJcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiaXRlbS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaXRlbS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cIml0ZW0uYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cIml0ZW0uYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0uYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIml0ZW0udGFiaW5kZXhcIj5cbiAgICAgICAgICA8ZGVzeS1sYWJlbCBbdGV4dF09XCJpdGVtLnRleHRcIiBbaHRtbF09XCJpdGVtLmh0bWxcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuY2xhc3NlcyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEucm9sZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhTGFiZWwgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYURlc2NyaWJlZEJ5OiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUN1cnJlbnQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4ID8gaXRlbS5sYWJlbERhdGEudGFiaW5kZXggOiBudWxsXCI+PC9kZXN5LWxhYmVsPlxuICAgICAgICAgIDxkZXN5LWhpbnQgKm5nSWY9XCJpdGVtLmhpbnREYXRhICYmIChpdGVtLmhpbnREYXRhLnRleHQgfHwgaXRlbS5oaW50RGF0YS5odG1sKVwiXG4gICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJpdGVtLmhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgW2h0bWxdPVwiaXRlbS5oaW50RGF0YS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cIml0ZW0uaGludERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLmhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmhpbnREYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0uaGludERhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cIml0ZW0uaGludERhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cIml0ZW0uaGludERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5oaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cIml0ZW0uaGludERhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cIml0ZW0uaGludERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJpdGVtLmhpbnREYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJpdGVtLmhpbnREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS5oaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuICAgICAgICAgIDxkZXN5LWhpbnQgKm5nSWY9XCIhaXRlbS5oaW50RGF0YSAmJiBpdGVtLmhpbnRUZXh0XCIgW3RleHRdPVwiaXRlbS5oaW50VGV4dFwiPjwvZGVzeS1oaW50PlxuICAgICAgICAgIDxkZXN5LWNvbnRlbnQgKm5nSWY9XCJpdGVtLmNvbmRpdGlvbmFsSHRtbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kZXN5LWNvbnRlbnQ+XG4gICAgICAgIDwvZGVzeS1yYWRpby1pdGVtPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -25,8 +25,8 @@ export class SearchBarComponent extends FormFieldComponent {
25
25
  this.value = event.target.value;
26
26
  this.onChange(this.value);
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SearchBarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: SearchBarComponent, selector: "desy-search-bar", inputs: { describedBy: "describedBy", classes: "classes", buttonClasses: "buttonClasses", placeholder: "placeholder" }, outputs: { clickEvent: "clickEvent" }, providers: [
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: SearchBarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: SearchBarComponent, selector: "desy-search-bar", inputs: { describedBy: "describedBy", classes: "classes", buttonClasses: "buttonClasses", placeholder: "placeholder" }, outputs: { clickEvent: "clickEvent" }, providers: [
30
30
  {
31
31
  provide: NG_VALUE_ACCESSOR,
32
32
  useExisting: forwardRef(() => SearchBarComponent),
@@ -34,7 +34,7 @@ export class SearchBarComponent extends FormFieldComponent {
34
34
  }
35
35
  ], queries: [{ propertyName: "button", predicate: ButtonComponent }], usesInheritance: true, ngImport: i0, template: "<!-- searchbar -->\n<div class=\"relative\" [ngClass]=\"{'flex flex-wrap items-end gap-sm': hasButton()}\">\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"['sr-only', labelData.classes] | makeHtmlList\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" classes=\"sr-only\" [for]=\"id\"></desy-label>\n <input type=\"search\"\n [class]=\"['c-input block pr-12 border-black rounded font-semibold placeholder-neutral-dark focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base', classes] | makeHtmlList\"\n [ngClass]=\"{'border-alert-base ring-2 ring-alert-base': hasErrorsMessage(),'w-full': !hasButton()}\"\n [value]=\"value\" (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"id ? id : null\"\n [attr.aria-describedby]=\"[describedBy, getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : null\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.placeholder]=\"placeholder ? placeholder : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngIf=\"hasButton(); else defaultButton\">\n <ng-content select=\"desy-button\"></ng-content>\n </ng-container>\n <ng-template #defaultButton>\n <button type=\"submit\" [attr.disabled]=\"disabled ? 'disabled' : null\" [attr.aria-disabled]=\"disabled ? 'true' : null\"\n (click)=\"onClick($event)\"\n [class]=\"['absolute top-0 right-0 m-sm p-0.5 text-primary-base hover:text-primary-dark focus:bg-warning-base focus:outline-none focus:shadow-outline-focus', buttonClasses] | makeHtmlList\">\n <span class=\"sr-only\">Buscar</span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"1.375em\" height=\"1.375em\" aria-hidden=\"true\"><path d=\"M23.498 23.487a1.713 1.713 0 000-2.421l-4.572-4.575a.43.43 0 01-.062-.539 10.283 10.283 0 10-2.911 2.911.43.43 0 01.539.055l4.574 4.574a1.712 1.712 0 002.433-.005zM3.451 10.289a6.85 6.85 0 116.85 6.85 6.85 6.85 0 01-6.85-6.85z\" fill=\"currentColor\"/></svg>\n </button>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n</div>\n<!-- /searchbar -->\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: i3.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "pipe", type: i4.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SearchBarComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: SearchBarComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'desy-search-bar', providers: [
40
40
  {
@@ -2,10 +2,10 @@ import { Component, forwardRef, Input } from '@angular/core';
2
2
  import { SelectItemComponent } from '../select-item/select-item.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class OptionComponent extends SelectItemComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: OptionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: OptionComponent, selector: "desy-option", inputs: { value: "value", selected: "selected", hidden: "hidden" }, providers: [{ provide: SelectItemComponent, useExisting: forwardRef(() => OptionComponent) }], usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: OptionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: OptionComponent, selector: "desy-option", inputs: { value: "value", selected: "selected", hidden: "hidden" }, providers: [{ provide: SelectItemComponent, useExisting: forwardRef(() => OptionComponent) }], usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: OptionComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: OptionComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-option',
@@ -3,10 +3,10 @@ import { SelectItemComponent } from '../select-item/select-item.component';
3
3
  import { OptionComponent } from '../option/option.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class OptionGroupComponent extends SelectItemComponent {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: OptionGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: OptionGroupComponent, selector: "desy-option-group", inputs: { label: "label" }, providers: [{ provide: SelectItemComponent, useExisting: forwardRef(() => OptionGroupComponent) }], queries: [{ propertyName: "items", predicate: OptionComponent }], usesInheritance: true, ngImport: i0, template: "<p>option-group works!</p>\n" }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: OptionGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: OptionGroupComponent, selector: "desy-option-group", inputs: { label: "label" }, providers: [{ provide: SelectItemComponent, useExisting: forwardRef(() => OptionGroupComponent) }], queries: [{ propertyName: "items", predicate: OptionComponent }], usesInheritance: true, ngImport: i0, template: "<p>option-group works!</p>\n" }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: OptionGroupComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: OptionGroupComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'desy-option-group', providers: [{ provide: SelectItemComponent, useExisting: forwardRef(() => OptionGroupComponent) }], template: "<p>option-group works!</p>\n" }]
12
12
  }], propDecorators: { label: [{
@@ -2,10 +2,10 @@ import { Component, Input } from '@angular/core';
2
2
  import { ContentBaseComponent } from '../../../../shared/components';
3
3
  import * as i0 from "@angular/core";
4
4
  export class SelectItemComponent extends ContentBaseComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SelectItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: SelectItemComponent, selector: "desy-select-item", inputs: { disabled: "disabled" }, usesInheritance: true, ngImport: i0, template: "<p>select-item works!</p>\n" }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: SelectItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: SelectItemComponent, selector: "desy-select-item", inputs: { disabled: "disabled" }, usesInheritance: true, ngImport: i0, template: "<p>select-item works!</p>\n" }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SelectItemComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: SelectItemComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'desy-select-item', template: "<p>select-item works!</p>\n" }]
11
11
  }], propDecorators: { disabled: [{
@@ -48,8 +48,8 @@ export class SelectComponent extends FormFieldComponent {
48
48
  this.value = isNaN(Number(event.target.value)) ? event.target.value : Number(event.target.value);
49
49
  this.onChange(this.value);
50
50
  }
51
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
52
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: SelectComponent, selector: "desy-select", inputs: { name: "name", items: "items", describedBy: "describedBy", formGroupClasses: "formGroupClasses", classes: "classes" }, host: { properties: { "class.c-form-group": "this.cfg", "class.c-form-group--error": "this.cfgr", "class": "this.formGroupClasses" } }, providers: [
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: SelectComponent, selector: "desy-select", inputs: { name: "name", items: "items", describedBy: "describedBy", formGroupClasses: "formGroupClasses", classes: "classes" }, host: { properties: { "class.c-form-group": "this.cfg", "class.c-form-group--error": "this.cfgr", "class": "this.formGroupClasses" } }, providers: [
53
53
  {
54
54
  provide: NG_VALUE_ACCESSOR,
55
55
  useExisting: forwardRef(() => SelectComponent),
@@ -57,7 +57,7 @@ export class SelectComponent extends FormFieldComponent {
57
57
  }
58
58
  ], queries: [{ propertyName: "itemComponents", predicate: SelectItemComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n <ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n <desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n <desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\" [text]=\"labelText\" [for]=\"id\"></desy-label>\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n <ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n <select\n [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\" (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"[ariaDescribedBy, describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : (hasErrorsMessage() ? getErrorId() : null)\"\n [attr.aria-invalid]=\"(hasErrorsMessage() || ariaErrorMessage) ? true : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"\n [disabled]=\"disabled\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\" [label]=\"item?.label\" [attr.disabled]=\"item.disabled ? true : null\"\n [attr.role]=\"item?.role\"\n [attr.aria-label]=\"item?.ariaLabel\"\n [attr.aria-describedby]=\"item?.describedBy\"\n [attr.aria-labelledby]=\"item?.ariaLabelledBy\"\n [attr.aria-hidden]=\"item?.ariaHidden\"\n [attr.aria-disabled]=\"item?.ariaDisabled\"\n [attr.aria-controls]=\"item?.ariaControls\"\n [attr.aria-current]=\"item?.ariaCurrent\"\n [attr.aria-live]=\"item?.ariaLive\"\n [attr.aria-expanded]=\"item?.ariaExpanded\"\n [attr.aria-errormessage]=\"item?.ariaErrorMessage\"\n [attr.aria-haspopup]=\"item?.ariaHasPopup\"\n [attr.tabindex]=\"item?.tabindex\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [attr.hidden]=\"subItem.hidden\"\n [attr.role]=\"subItem?.role\"\n [attr.aria-label]=\"subItem?.ariaLabel\"\n [attr.aria-describedby]=\"subItem?.describedBy\"\n [attr.aria-labelledby]=\"subItem?.ariaLabelledBy\"\n [attr.aria-hidden]=\"subItem?.ariaHidden\"\n [attr.aria-disabled]=\"subItem?.ariaDisabled\"\n [attr.aria-controls]=\"subItem?.ariaControls\"\n [attr.aria-current]=\"subItem?.ariaCurrent\"\n [attr.aria-live]=\"subItem?.ariaLive\"\n [attr.aria-expanded]=\"subItem?.ariaExpanded\"\n [attr.aria-errormessage]=\"subItem?.ariaErrorMessage\"\n [attr.aria-haspopup]=\"subItem?.ariaHasPopup\"\n [attr.tabindex]=\"subItem?.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\" [value]=\"item.value\" [disabled]=\"item.disabled ? true : null\" [selected]=\"isItemSelected(item)\"\n [attr.hidden]=\"item.hidden\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.describedBy ? item.describedBy : ariaDescribedBy\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n </select>\n\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i4.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i5.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: i6.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "pipe", type: i7.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: SelectComponent, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: SelectComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'desy-select', providers: [
63
63
  {
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
2
2
  import { ControlContainer, NgForm } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  export class TemplateDrivenWrapperComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TemplateDrivenWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TemplateDrivenWrapperComponent, selector: "desy-template-driven-wrapper", providers: [{ provide: ControlContainer, useExisting: NgForm, }], ngImport: i0, template: "<ng-content></ng-content>\n" }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TemplateDrivenWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TemplateDrivenWrapperComponent, selector: "desy-template-driven-wrapper", providers: [{ provide: ControlContainer, useExisting: NgForm, }], ngImport: i0, template: "<ng-content></ng-content>\n" }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TemplateDrivenWrapperComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TemplateDrivenWrapperComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'desy-template-driven-wrapper', providers: [{ provide: ControlContainer, useExisting: NgForm, }], template: "<ng-content></ng-content>\n" }]
11
11
  }] });
@@ -35,8 +35,8 @@ export class TextareaComponent extends FormFieldComponent {
35
35
  ensureText(value) {
36
36
  return value ? value || '' : '';
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TextareaComponent, selector: "desy-textarea", inputs: { name: "name", rows: "rows", placeholder: "placeholder", describedBy: "describedBy", formGroupClasses: "formGroupClasses", classes: "classes", autocomplete: "autocomplete", maxlength: "maxlength" }, host: { properties: { "class.c-form-group": "this.cfg", "class.c-form-group--error": "this.cfgr", "class": "this.formGroupClasses" } }, providers: [
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TextareaComponent, selector: "desy-textarea", inputs: { name: "name", rows: "rows", placeholder: "placeholder", describedBy: "describedBy", formGroupClasses: "formGroupClasses", classes: "classes", autocomplete: "autocomplete", maxlength: "maxlength" }, host: { properties: { "class.c-form-group": "this.cfg", "class.c-form-group--error": "this.cfgr", "class": "this.formGroupClasses" } }, providers: [
40
40
  {
41
41
  provide: NG_VALUE_ACCESSOR,
42
42
  useExisting: forwardRef(() => TextareaComponent),
@@ -44,7 +44,7 @@ export class TextareaComponent extends FormFieldComponent {
44
44
  }
45
45
  ], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textarea"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" [for]=\"id\"></desy-label>\n\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n\n\n<textarea #textarea\n [class]=\"['block mt-sm px-base py-sm border-black rounded font-semibold leading-normal placeholder-neutral-dark focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base', classes] | makeHtmlList\"\n [value]=\"value ? value : ''\" (input)=\"onInput($event)\"\n [ngClass]=\"{'border-alert-base ring-2 ring-alert-base' : hasErrorsMessage()}\"\n [rows]=\"getRows()\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : null\"\n [attr.placeholder]=\"placeholder ? placeholder : null\"\n [attr.autocomplete]=\"autocomplete ? autocomplete : null\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.maxlength]=\"maxlength\"\n\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"></textarea>\n\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i3.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "component", type: i4.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "pipe", type: i5.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TextareaComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TextareaComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'desy-textarea', providers: [
50
50
  {
@@ -105,8 +105,8 @@ export class TreeCheckboxComponent extends AccessibilityComponent {
105
105
  this.itemDescribedBy = this.getItemDescribedBy();
106
106
  }
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TreeCheckboxComponent, selector: "desy-tree-checkbox", inputs: { id: "id", name: "name", type: "type", classes: "classes", value: "value", checked: "checked", isIndeterminate: "isIndeterminate", indeterminateChecked: "indeterminateChecked", disabled: "disabled", hasDividers: "hasDividers", describedBy: "describedBy", hasError: "hasError", labelComponent: "labelComponent", hintComponent: "hintComponent" }, outputs: { checkedChange: "checkedChange", indeterminateCheckedChange: "indeterminateCheckedChange" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"classes\" [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers}\">\n <div class=\"relative flex items-start py-xs\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [id]=\"id + '-input'\"\n [name]=\"name\"\n [type]=\"type === 'checkbox' ? 'checkbox' : 'radio'\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"hasChanged()\"\n [disabled]=\"disabled ? disabled : null\"\n [attr.aria-invalid]=\"hasError ? 'true' : null\"\n\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"itemDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"\n\n (keydown.home)=\"preventDefault($event)\"\n (keydown.end)=\"preventDefault($event)\"\n (keydown.arrowup)=\"preventDefault($event)\"\n (keydown.arrowdown)=\"preventDefault($event)\"\n (keydown.arrowright)=\"preventDefault($event)\"\n (keydown.arrowleft)=\"preventDefault($event)\">\n </div>\n <div #contentWrapper class=\"flex-1 pt-0.5 leading-5\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TreeCheckboxComponent, selector: "desy-tree-checkbox", inputs: { id: "id", name: "name", type: "type", classes: "classes", value: "value", checked: "checked", isIndeterminate: "isIndeterminate", indeterminateChecked: "indeterminateChecked", disabled: "disabled", hasDividers: "hasDividers", describedBy: "describedBy", hasError: "hasError", labelComponent: "labelComponent", hintComponent: "hintComponent" }, outputs: { checkedChange: "checkedChange", indeterminateCheckedChange: "indeterminateCheckedChange" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "contentWrapper", first: true, predicate: ["contentWrapper"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [class]=\"classes\" [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers}\">\n <div class=\"relative flex items-start py-xs\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [id]=\"id + '-input'\"\n [name]=\"name\"\n [type]=\"type === 'checkbox' ? 'checkbox' : 'radio'\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"hasChanged()\"\n [disabled]=\"disabled ? disabled : null\"\n [attr.aria-invalid]=\"hasError ? 'true' : null\"\n\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"itemDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"\n\n (keydown.home)=\"preventDefault($event)\"\n (keydown.end)=\"preventDefault($event)\"\n (keydown.arrowup)=\"preventDefault($event)\"\n (keydown.arrowdown)=\"preventDefault($event)\"\n (keydown.arrowright)=\"preventDefault($event)\"\n (keydown.arrowleft)=\"preventDefault($event)\">\n </div>\n <div #contentWrapper class=\"flex-1 pt-0.5 leading-5\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
110
110
  }
111
111
  __decorate([
112
112
  DesyOnInputChange('onIdChange'),
@@ -128,7 +128,7 @@ __decorate([
128
128
  DesyOnInputChange('overrideHintParams'),
129
129
  __metadata("design:type", HintComponent)
130
130
  ], TreeCheckboxComponent.prototype, "hintComponent", void 0);
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeCheckboxComponent, decorators: [{
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeCheckboxComponent, decorators: [{
132
132
  type: Component,
133
133
  args: [{ selector: 'desy-tree-checkbox', template: "<div [class]=\"classes\" [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers}\">\n <div class=\"relative flex items-start py-xs\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [id]=\"id + '-input'\"\n [name]=\"name\"\n [type]=\"type === 'checkbox' ? 'checkbox' : 'radio'\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"hasChanged()\"\n [disabled]=\"disabled ? disabled : null\"\n [attr.aria-invalid]=\"hasError ? 'true' : null\"\n\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"itemDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"\n\n (keydown.home)=\"preventDefault($event)\"\n (keydown.end)=\"preventDefault($event)\"\n (keydown.arrowup)=\"preventDefault($event)\"\n (keydown.arrowdown)=\"preventDefault($event)\"\n (keydown.arrowright)=\"preventDefault($event)\"\n (keydown.arrowleft)=\"preventDefault($event)\">\n </div>\n <div #contentWrapper class=\"flex-1 pt-0.5 leading-5\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n" }]
134
134
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { inputElement: [{
@@ -293,8 +293,8 @@ export class TreeItemComponent extends AccessibilityComponent {
293
293
  TreeItemComponent._treeItemKeySuffix++;
294
294
  return key;
295
295
  }
296
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TreeItemComponent, selector: "desy-tree-item", inputs: { id: "id", name: "name", value: "value", classes: "classes", active: "active", disabled: "disabled", title: "title", hasDividers: "hasDividers", isIndeterminate: "isIndeterminate", checked: "checked", expanded: "expanded", indeterminateChecked: "indeterminateChecked" }, outputs: { checkedChange: "checkedChange", expandedChange: "expandedChange", indeterminateCheckedChange: "indeterminateCheckedChange" }, host: { properties: { "attr.desy-tree-item-key": "this.treeItemKey" } }, providers: [
296
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
297
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TreeItemComponent, selector: "desy-tree-item", inputs: { id: "id", name: "name", value: "value", classes: "classes", active: "active", disabled: "disabled", title: "title", hasDividers: "hasDividers", isIndeterminate: "isIndeterminate", checked: "checked", expanded: "expanded", indeterminateChecked: "indeterminateChecked" }, outputs: { checkedChange: "checkedChange", expandedChange: "expandedChange", indeterminateCheckedChange: "indeterminateCheckedChange" }, host: { properties: { "attr.desy-tree-item-key": "this.treeItemKey" } }, providers: [
298
298
  {
299
299
  provide: ITreeItem,
300
300
  useExisting: forwardRef(() => TreeItemComponent)
@@ -317,7 +317,7 @@ __decorate([
317
317
  DesyContentChild(),
318
318
  __metadata("design:type", LabelComponent)
319
319
  ], TreeItemComponent.prototype, "label", void 0);
320
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeItemComponent, decorators: [{
320
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeItemComponent, decorators: [{
321
321
  type: Component,
322
322
  args: [{ selector: 'desy-tree-item', providers: [
323
323
  {
@@ -8,12 +8,12 @@ export class TreeItemsGeneratorComponent {
8
8
  ngOnInit() {
9
9
  this.viewContainerRef.createEmbeddedView(this.content);
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeItemsGeneratorComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TreeItemsGeneratorComponent, selector: "desy-tree-items-generator", inputs: { items: "items", itemTemplate: "itemTemplate" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #content>\n <ng-container *ngIf=\"items && itemTemplate\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeItemsGeneratorComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TreeItemsGeneratorComponent, selector: "desy-tree-items-generator", inputs: { items: "items", itemTemplate: "itemTemplate" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #content>\n <ng-container *ngIf=\"items && itemTemplate\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {item: item}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeItemsGeneratorComponent, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeItemsGeneratorComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'desy-tree-items-generator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #content>\n <ng-container *ngIf=\"items && itemTemplate\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {$implicit: item}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
16
+ args: [{ selector: 'desy-tree-items-generator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #content>\n <ng-container *ngIf=\"items && itemTemplate\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {item: item}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
17
17
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { content: [{
18
18
  type: ViewChild,
19
19
  args: ['content', { static: true }]
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
22
22
  }], itemTemplate: [{
23
23
  type: Input
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL3RyZWUvdHJlZS1pdGVtcy1nZW5lcmF0b3IvdHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL3RyZWUvdHJlZS1pdGVtcy1nZW5lcmF0b3IvdHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDOzs7QUFZdkIsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFJLENBQUM7SUFFM0QsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQzs4R0FYVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw2T0NwQnhDLHlSQU9BOzsyRkRhYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNO3VHQUlQLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFN0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmVlSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50XCI7XG5cbmludGVyZmFjZSBUZW1wbGF0ZUNvbnRleHQge1xuICAkaW1wbGljaXQ6IFRyZWVJdGVtQ29tcG9uZW50OyAvLyBVc2UgdGhlICRpbXBsaWNpdCBwcm9wZXJ0eSB0byBwYXNzIHRoZSBjb250ZXh0XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktdHJlZS1pdGVtcy1nZW5lcmF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlSXRlbXNHZW5lcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTtcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmNvbnRlbnQpO1xuICB9XG5cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zICYmIGl0ZW1UZW1wbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL3RyZWUvdHJlZS1pdGVtcy1nZW5lcmF0b3IvdHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL3RyZWUvdHJlZS1pdGVtcy1nZW5lcmF0b3IvdHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDOzs7QUFRdkIsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFJLENBQUM7SUFFM0QsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQzs4R0FYVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiw2T0NoQnhDLG9SQU9BOzsyRkRTYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNO3VHQUlQLE9BQU87c0JBQTlDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFN0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmVlSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktdHJlZS1pdGVtcy1nZW5lcmF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS1pdGVtcy1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUcmVlSXRlbXNHZW5lcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTtcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxUcmVlSXRlbUNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY29udGVudCk7XG4gIH1cblxufVxuIiwiPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXMgJiYgaXRlbVRlbXBsYXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDoge2l0ZW06IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -3,10 +3,10 @@ import { ContentBaseComponent } from "../../../../shared/components";
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../../../shared/pipes/make-html-list.pipe";
5
5
  export class TreeSubComponent extends ContentBaseComponent {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeSubComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TreeSubComponent, selector: "desy-tree-sub", inputs: { classes: "classes" }, usesInheritance: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ul [class]=\"['c-tree__itemgroup', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", dependencies: [{ kind: "pipe", type: i1.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeSubComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TreeSubComponent, selector: "desy-tree-sub", inputs: { classes: "classes" }, usesInheritance: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ul [class]=\"['c-tree__itemgroup', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", dependencies: [{ kind: "pipe", type: i1.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeSubComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeSubComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{ selector: 'desy-tree-sub', template: "<ng-template #contentTemplate>\n <ul [class]=\"['c-tree__itemgroup', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n" }]
12
12
  }], propDecorators: { classes: [{
@@ -284,8 +284,8 @@ export class TreeComponent extends FormFieldComponent {
284
284
  }
285
285
  return list;
286
286
  }
287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
288
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TreeComponent, selector: "desy-tree", inputs: { idPrefix: "idPrefix", classes: "classes", name: "name", type: "type", describedBy: "describedBy", formGroupClasses: "formGroupClasses", expandedFirstLevel: "expandedFirstLevel", decoupleChildFromParent: "decoupleChildFromParent", disableDefaultSearch: "disableDefaultSearch", searchMatchValues: "searchMatchValues" }, outputs: { searchMatchValuesChange: "searchMatchValuesChange" }, providers: [
287
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
288
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TreeComponent, selector: "desy-tree", inputs: { idPrefix: "idPrefix", classes: "classes", name: "name", type: "type", describedBy: "describedBy", formGroupClasses: "formGroupClasses", expandedFirstLevel: "expandedFirstLevel", decoupleChildFromParent: "decoupleChildFromParent", disableDefaultSearch: "disableDefaultSearch", searchMatchValues: "searchMatchValues" }, outputs: { searchMatchValuesChange: "searchMatchValuesChange" }, providers: [
289
289
  {
290
290
  provide: NG_VALUE_ACCESSOR,
291
291
  useExisting: forwardRef(() => TreeComponent),
@@ -309,7 +309,7 @@ __decorate([
309
309
  DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams' }),
310
310
  __metadata("design:type", SearchBarComponent)
311
311
  ], TreeComponent.prototype, "searchBarComponent", void 0);
312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TreeComponent, decorators: [{
312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TreeComponent, decorators: [{
313
313
  type: Component,
314
314
  args: [{ selector: 'desy-tree', providers: [
315
315
  {