desy-angular 5.1.3 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/bundles/desy-angular.umd.js +1548 -746
  2. package/bundles/desy-angular.umd.js.map +1 -1
  3. package/bundles/desy-angular.umd.min.js +1 -15
  4. package/bundles/desy-angular.umd.min.js.map +1 -1
  5. package/desy-angular.d.ts +38 -27
  6. package/desy-angular.metadata.json +1 -1
  7. package/esm2015/desy-angular.js +39 -28
  8. package/esm2015/lib/desy-buttons/components/button/button.component.js +4 -4
  9. package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +2 -2
  10. package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +8 -5
  11. package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +3 -25
  12. package/esm2015/lib/desy-buttons/components/pill/pill.component.js +1 -1
  13. package/esm2015/lib/desy-buttons/components/toggle/toggle.component.js +6 -3
  14. package/esm2015/lib/desy-commons/components/description/description.component.js +3 -2
  15. package/esm2015/lib/desy-commons/components/divider/divider.component.js +15 -0
  16. package/esm2015/lib/desy-commons/components/icon/icon.component.js +3 -2
  17. package/esm2015/lib/desy-commons/desy-commons.module.js +6 -3
  18. package/esm2015/lib/desy-commons/interfaces/description-data.js +1 -1
  19. package/esm2015/lib/desy-commons/interfaces/divider-data.js +2 -0
  20. package/esm2015/lib/desy-commons/interfaces/icon-data.js +1 -1
  21. package/esm2015/lib/desy-commons/interfaces/index.js +2 -1
  22. package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +2 -17
  23. package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +5 -7
  24. package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +3 -12
  25. package/esm2015/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.js +1 -9
  26. package/esm2015/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.js +1 -9
  27. package/esm2015/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.js +1 -9
  28. package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +11 -17
  29. package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +9 -17
  30. package/esm2015/lib/desy-forms/components/input/input.component.js +26 -17
  31. package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +2 -9
  32. package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +2 -9
  33. package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +9 -20
  34. package/esm2015/lib/desy-forms/components/radios/radio-item/radio-item.component.js +3 -6
  35. package/esm2015/lib/desy-forms/components/radios/radios.component.js +2 -11
  36. package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +7 -19
  37. package/esm2015/lib/desy-forms/components/select/select.component.js +9 -19
  38. package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +10 -17
  39. package/esm2015/lib/desy-forms/components/tree/tree-item/tree-item.component.js +2 -2
  40. package/esm2015/lib/desy-forms/components/tree/tree.component.js +3 -3
  41. package/esm2015/lib/desy-forms/directives/condition.directive.js +2 -5
  42. package/esm2015/lib/desy-forms/interfaces/item-input-group-data.js +1 -1
  43. package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +3 -9
  44. package/esm2015/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.js +20 -0
  45. package/esm2015/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.js +19 -0
  46. package/esm2015/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.js +3 -3
  47. package/esm2015/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.js +3 -3
  48. package/esm2015/lib/desy-modals/components/modal/modal.component.js +15 -14
  49. package/esm2015/lib/desy-modals/desy-modals.module.js +7 -1
  50. package/esm2015/lib/desy-modals/interfaces/modal-button-data.js +1 -1
  51. package/esm2015/lib/desy-modals/services/dialog.service.js +8 -9
  52. package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.js +2 -8
  53. package/esm2015/lib/desy-nav/components/error-summary/error-summary.component.js +4 -10
  54. package/esm2015/lib/desy-nav/components/footer/footer.component.js +9 -2
  55. package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +1 -4
  56. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +2 -5
  57. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +2 -5
  58. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +2 -5
  59. package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +2 -5
  60. package/esm2015/lib/desy-nav/components/header/header.component.js +5 -2
  61. package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +2 -15
  62. package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.js +35 -0
  63. package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.js +31 -0
  64. package/esm2015/lib/desy-nav/components/menu-navigation/menu-navigation.component.js +568 -0
  65. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +2 -8
  66. package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +33 -17
  67. package/esm2015/lib/desy-nav/components/nav/nav.component.js +2 -18
  68. package/esm2015/lib/desy-nav/components/notification/notification.component.js +2 -10
  69. package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +2 -11
  70. package/esm2015/lib/desy-nav/desy-nav.module.js +12 -2
  71. package/esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js +1 -1
  72. package/esm2015/lib/desy-nav/interfaces/index.js +4 -1
  73. package/esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.js +2 -0
  74. package/esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item.js +2 -0
  75. package/esm2015/lib/desy-nav/interfaces/menu-navigation.js +2 -0
  76. package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +47 -13
  77. package/esm2015/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.js +15 -0
  78. package/esm2015/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.js +14 -0
  79. package/esm2015/lib/desy-pagination/desy-pagination.module.js +9 -3
  80. package/esm2015/lib/desy-pagination/interfaces/index.js +1 -1
  81. package/esm2015/lib/desy-tables/components/table/table.component.js +2 -14
  82. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.js +16 -3
  83. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.js +22 -0
  84. package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +33 -5
  85. package/esm2015/lib/desy-tables/desy-tables.module.js +5 -2
  86. package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +1 -1
  87. package/esm2015/lib/desy-views/components/accordion/accordion-header/accordion-header.component.js +1 -1
  88. package/esm2015/lib/desy-views/components/accordion/accordion-item/accordion-item.component.js +12 -2
  89. package/esm2015/lib/desy-views/components/accordion/accordion.component.js +30 -13
  90. package/esm2015/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.js +31 -0
  91. package/esm2015/lib/desy-views/components/accordion-history/accordion-history.component.js +15 -0
  92. package/esm2015/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.js +14 -0
  93. package/esm2015/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.js +14 -0
  94. package/esm2015/lib/desy-views/components/alert/alert.component.js +1 -7
  95. package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +4 -11
  96. package/esm2015/lib/desy-views/components/description-list/description-list.component.js +2 -8
  97. package/esm2015/lib/desy-views/components/details/details.component.js +1 -12
  98. package/esm2015/lib/desy-views/components/item/item.component.js +23 -15
  99. package/esm2015/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.js +11 -0
  100. package/esm2015/lib/desy-views/components/media-object/media-object.component.js +49 -11
  101. package/esm2015/lib/desy-views/components/spinner/spinner.component.js +33 -4
  102. package/esm2015/lib/desy-views/components/status/status.component.js +37 -14
  103. package/esm2015/lib/desy-views/components/status-item/status-item.component.js +33 -10
  104. package/esm2015/lib/desy-views/components/tabs/tabs.component.js +38 -19
  105. package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +34 -11
  106. package/esm2015/lib/desy-views/desy-views.module.js +17 -2
  107. package/esm2015/lib/desy-views/services/alert.service.js +8 -9
  108. package/esm2015/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.js +1 -1
  109. package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js +1 -13
  110. package/esm2015/lib/shared/shared.module.js +1 -4
  111. package/esm2015/lib/shared/utils/search-utils.js +22 -1
  112. package/esm2015/public-api.js +5 -1
  113. package/fesm2015/desy-angular.js +1417 -671
  114. package/fesm2015/desy-angular.js.map +1 -1
  115. package/lib/desy-buttons/components/button/button.component.d.ts +2 -2
  116. package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +5 -4
  117. package/lib/desy-buttons/components/toggle/toggle.component.d.ts +2 -0
  118. package/lib/desy-commons/components/description/description.component.d.ts +1 -0
  119. package/lib/desy-commons/components/divider/divider.component.d.ts +6 -0
  120. package/lib/desy-commons/components/icon/icon.component.d.ts +1 -0
  121. package/lib/desy-commons/interfaces/description-data.d.ts +1 -0
  122. package/lib/desy-commons/interfaces/divider-data.d.ts +4 -0
  123. package/lib/desy-commons/interfaces/icon-data.d.ts +1 -0
  124. package/lib/desy-commons/interfaces/index.d.ts +1 -0
  125. package/lib/desy-forms/components/character-count/character-count.component.d.ts +0 -1
  126. package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +1 -1
  127. package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +2 -3
  128. package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +2 -3
  129. package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +2 -3
  130. package/lib/desy-forms/components/date-input/date-input.component.d.ts +6 -5
  131. package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +3 -2
  132. package/lib/desy-forms/components/input/input.component.d.ts +8 -4
  133. package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +3 -3
  134. package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +3 -3
  135. package/lib/desy-forms/components/input-group/input-group.component.d.ts +4 -2
  136. package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +1 -1
  137. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +5 -6
  138. package/lib/desy-forms/components/select/select.component.d.ts +5 -5
  139. package/lib/desy-forms/components/textarea/textarea.component.d.ts +5 -4
  140. package/lib/desy-forms/components/tree/tree.component.d.ts +1 -1
  141. package/lib/desy-forms/directives/condition.directive.d.ts +2 -2
  142. package/lib/desy-forms/interfaces/item-input-group-data.d.ts +1 -0
  143. package/lib/desy-modals/components/dialog/dialog.component.d.ts +1 -1
  144. package/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.d.ts +8 -0
  145. package/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.d.ts +7 -0
  146. package/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.d.ts +3 -3
  147. package/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.d.ts +3 -3
  148. package/lib/desy-modals/components/modal/modal.component.d.ts +10 -4
  149. package/lib/desy-modals/interfaces/modal-button-data.d.ts +16 -0
  150. package/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.d.ts +0 -1
  151. package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +0 -1
  152. package/lib/desy-nav/components/footer/footer.component.d.ts +5 -0
  153. package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +0 -1
  154. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +0 -1
  155. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +0 -1
  156. package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +0 -1
  157. package/lib/desy-nav/components/header/header.component.d.ts +3 -0
  158. package/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.d.ts +2 -4
  159. package/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.d.ts +22 -0
  160. package/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.d.ts +19 -0
  161. package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +80 -0
  162. package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +0 -1
  163. package/lib/desy-nav/components/menubar/menubar.component.d.ts +16 -3
  164. package/lib/desy-nav/components/nav/nav.component.d.ts +2 -4
  165. package/lib/desy-nav/components/notification/notification.component.d.ts +2 -4
  166. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +0 -1
  167. package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +1 -0
  168. package/lib/desy-nav/interfaces/index.d.ts +3 -0
  169. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.d.ts +14 -0
  170. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item.d.ts +6 -0
  171. package/lib/desy-nav/interfaces/menu-navigation.d.ts +17 -0
  172. package/lib/desy-pagination/components/pagination/pagination.component.d.ts +15 -4
  173. package/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.d.ts +7 -0
  174. package/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.d.ts +4 -0
  175. package/lib/desy-tables/components/table/table.component.d.ts +0 -1
  176. package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +7 -0
  177. package/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.d.ts +9 -0
  178. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +8 -1
  179. package/lib/desy-tables/interfaces/head-cell-data.d.ts +3 -0
  180. package/lib/desy-views/components/accordion/accordion-item/accordion-item.component.d.ts +4 -0
  181. package/lib/desy-views/components/accordion/accordion.component.d.ts +14 -2
  182. package/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.d.ts +9 -0
  183. package/lib/desy-views/components/accordion-history/accordion-history.component.d.ts +6 -0
  184. package/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.d.ts +4 -0
  185. package/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.d.ts +4 -0
  186. package/lib/desy-views/components/collapsible/collapsible.component.d.ts +2 -3
  187. package/lib/desy-views/components/description-list/description-list.component.d.ts +0 -1
  188. package/lib/desy-views/components/details/details.component.d.ts +1 -5
  189. package/lib/desy-views/components/item/item.component.d.ts +8 -7
  190. package/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.d.ts +3 -0
  191. package/lib/desy-views/components/media-object/media-object.component.d.ts +22 -3
  192. package/lib/desy-views/components/spinner/spinner.component.d.ts +17 -2
  193. package/lib/desy-views/components/status/status.component.d.ts +16 -2
  194. package/lib/desy-views/components/status-item/status-item.component.d.ts +15 -2
  195. package/lib/desy-views/components/tabs/tabs.component.d.ts +16 -3
  196. package/lib/desy-views/components/tooltip/tooltip.component.d.ts +17 -4
  197. package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +1 -3
  198. package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +3 -11
  199. package/package.json +2 -2
  200. package/public-api.d.ts +4 -0
  201. package/esm2015/lib/shared/directives/content-empty.directive.js +0 -86
  202. package/lib/shared/directives/content-empty.directive.d.ts +0 -26
@@ -60,6 +60,9 @@ export class TableAdvancedComponent extends AccessibilityComponent {
60
60
  if (headerCell.hasFilter && headerCell.activeFilter) {
61
61
  params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueFilter });
62
62
  }
63
+ if (headerCell.hasSelect && headerCell.activeSelect) {
64
+ params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueSelect });
65
+ }
63
66
  });
64
67
  const orderByColumnIndex = head.findIndex(cell => cell.orderBy && cell.orderBy !== OrderBy.none);
65
68
  params.sort = (orderByColumnIndex >= 0) ? { columnIndex: orderByColumnIndex, order: head[orderByColumnIndex].orderBy } : null;
@@ -71,7 +74,7 @@ export class TableAdvancedComponent extends AccessibilityComponent {
71
74
  */
72
75
  hasFilters() {
73
76
  const head = this.getHeaderCells();
74
- return head ? head.findIndex(cell => cell.hasFilter) >= 0 : false;
77
+ return head ? head.findIndex(cell => (cell.hasFilter) || (cell.hasSelect)) >= 0 : false;
75
78
  }
76
79
  getHeaderCells() {
77
80
  return this.headerComponent && this.headerComponent.cells.length > 0 ? this.headerComponent.cells.toArray() : this.head;
@@ -106,6 +109,9 @@ export class TableAdvancedComponent extends AccessibilityComponent {
106
109
  getIdHeaderFilter(index) {
107
110
  return this.getIdPrefix() + '-header-filter-' + index;
108
111
  }
112
+ getIdHeaderSelect(index) {
113
+ return this.getIdPrefix() + '-header-select-' + index;
114
+ }
109
115
  getCaptionClass() {
110
116
  return this.captionComponent ? this.captionComponent.classes : this.captionClasses;
111
117
  }
@@ -120,8 +126,15 @@ export class TableAdvancedComponent extends AccessibilityComponent {
120
126
  return 'none';
121
127
  }
122
128
  }
123
- handleTableCellContentEmpty(row, column) {
124
- throw new Error(`cell content, html or text are required at row ${row} and column ${column}`);
129
+ getSelectForItem(item) {
130
+ return item.selectComponent ? item.selectComponent : null;
131
+ }
132
+ getItemSelectOptions(item) {
133
+ return item.selectItemComponentList && item.selectItemComponentList.length > 0 ?
134
+ item.selectItemComponentList.toArray() : item.items;
135
+ }
136
+ getContentComponent(item) {
137
+ return item.contentComponent ? item.contentComponent : null;
125
138
  }
126
139
  /**
127
140
  * checks
@@ -164,6 +177,10 @@ export class TableAdvancedComponent extends AccessibilityComponent {
164
177
  item.activeFilter = !!item.valueFilter;
165
178
  this.uncheckAll();
166
179
  }
180
+ if (item.hasSelect) { //Si tiene seleccionable
181
+ item.activeSelect = !!item.valueSelect;
182
+ this.uncheckAll();
183
+ }
167
184
  this.recalculateVisibleElements();
168
185
  }
169
186
  /**
@@ -248,11 +265,22 @@ export class TableAdvancedComponent extends AccessibilityComponent {
248
265
  }
249
266
  return txt;
250
267
  }
268
+ selectFilter(item, itemValue) {
269
+ item.valueChange.emit(itemValue);
270
+ const head = this.getHeaderCells();
271
+ const rows = this.getRows();
272
+ if (head && rows) {
273
+ head.forEach((cell, cellIndex) => {
274
+ });
275
+ rows.forEach(row => {
276
+ });
277
+ }
278
+ }
251
279
  }
252
280
  TableAdvancedComponent.decorators = [
253
281
  { type: Component, args: [{
254
282
  selector: 'desy-table-advanced',
255
- template: "<ng-template #tableContent>\r\n <table role=\"grid\"\r\n [class]=\"['c-table-advanced border-t-2 border-b-2 border-neutral-base', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\r\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\r\n </caption>\r\n <thead *ngIf=\"getHeaderCells()\">\r\n <tr class=\"border-t border-neutral-base divide-x divide-neutral-base\">\r\n <th *ngIf=\"hasCheckboxes\" scope=\"col\" [class]=\"['align-top px-base py-xs', checkboxClasses] | makeHtmlList\">\r\n <span class=\"sr-only\">Seleccionar fila</span>\r\n </th>\r\n <th scope=\"col\" *ngFor=\"let item of getHeaderCells(); index as iHeader\" [id]=\"getIdHeader(iHeader)\"\r\n [attr.aria-sort]=\"item.orderBy ? getStringOrderBy(item.orderBy) : null\"\r\n [class]=\"['align-top px-base py-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\"\r\n [attr.colspan]=\"item.colspan ? item.colspan : null\"\r\n [attr.rowspan]=\"item.rowspan ? item.rowspan : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n\r\n <span *ngIf=\"item.orderBy\" class=\"inline-block relative\" (click)=\"handleSortByColumn(iHeader)\" desyFocusClickedCell\r\n [attr.tabindex]=\"item.orderBy ? -1 : null\"\r\n [attr.role]=\"item.orderBy ? 'button' : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <span class=\"c-table-advanced__order\" *ngIf=\"item.orderBy\">\r\n <span class=\"sr-only\">Pulsa para ordenar por esta columna</span>\r\n <span class=\"c-table-advanced__ascending\" *ngIf=\"item.orderBy == orderByType.asc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M112.07 37.93l-35-35a10 10 0 00-14.14 0l-35 35a10 10 0 0014.14 14.14l13.66-13.66A2.5 2.5 0 0160 40.18V130a10 10 0 0020 0V40.18a2.5 2.5 0 014.27-1.77l13.66 13.66a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__descending\" *ngIf=\"item.orderBy == orderByType.desc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M27.93 102.07l35 35a10 10 0 0014.14 0l35-35a10 10 0 00-14.14-14.14l-13.66 13.66A2.5 2.5 0 0180 99.82V10a10 10 0 00-20 0v89.82a2.5 2.5 0 01-4.27 1.77L42.07 87.93a10 10 0 00-14.14 14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__none\" *ngIf=\"item.orderBy == orderByType.none\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" class=\"text-neutral-base\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M94.7 97.2l-17.2 17.19V25.61L94.7 42.8a7.5 7.5 0 0010.6-10.6l-30-30a7.49 7.49 0 00-10.6 0l-30 30a7.5 7.5 0 0010.6 10.6l17.2-17.19v88.78L45.3 97.2a7.5 7.5 0 10-10.6 10.6l30 30a7.48 7.48 0 0010.6 0l30-30a7.5 7.5 0 00-10.6-10.6z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n </span>\r\n </span>\r\n\r\n <span *ngIf=\"!item.orderBy\" class=\"inline-block relative\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr class=\"divide-x divide-neutral-base\" *ngIf=\"hasFilters()\">\r\n <td *ngIf=\"hasCheckboxes\" [ngClass]=\"checkboxClasses\"></td>\r\n <td tabindex=\"-1\" *ngFor=\"let item of getHeaderCells(); index as iHead\" desyFocusClickedCell\r\n [class]=\"['align-top px-base pb-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\">\r\n <desy-search-bar *ngIf=\"item.hasFilter\"\r\n [(ngModel)]=\"item.valueFilter\" [ngModelOptions]=\"{standalone: true}\"\r\n (clickEvent)=\"handleInputSearch(item)\"\r\n (ngModelChange)=\"handleInputSearch(item)\"\r\n labelText=\"Buscar en esta columna\"\r\n [id]=\"getIdHeaderFilter(iHead)\"\r\n placeholder=\"Buscar\"\r\n [classes]=\"['c-input--sm', item.filterClasses] | makeHtmlList\"\r\n buttonClasses=\"m-xs p-0.5 text-xs\"\r\n [describedBy]=\"getIdHeader(iHead)\"> </desy-search-bar>\r\n </td>\r\n </tr>\r\n\r\n\r\n <tr *ngFor=\"let row of getVisibleRows(); index as iRow\" class=\"border-t border-b border-neutral-base hover:bg-neutral-lighter\"\r\n [desyRow]=\"row\"\r\n [ngClass]=\"{'bg-neutral-light': hasCheckboxes && row.checked }\">\r\n <td *ngIf=\"hasCheckboxes\" desyFocusClickedCell [class]=\"['px-base py-sm', checkboxClasses] | makeHtmlList\"\r\n tabindex=\"-1\" >\r\n <div class=\"c-checkboxes c-checkboxes--sm\">\r\n <div>\r\n <div class=\"relative flex items-start\">\r\n <div class=\"flex items-center mx-sm\">\r\n <input type=\"checkbox\" 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-light disabled:border-neutral-base text-primary-base\"\r\n [(ngModel)]=\"row.checked\" (ngModelChange)=\"handleCheckboxChange(row)\"\r\n [id]=\"getIdRowCheckbox(iRow)\"\r\n [name]=\"getIdRowCheckbox(iRow)\"\r\n [attr.aria-label]=\"'Fila ' + iRow\">\r\n </div>\r\n <div class=\"pt-0.5 leading-5\">\r\n <label class=\"sr-only block text-sm -mt-1\" [for]=\"getIdRowCheckbox(iRow)\">Selecciona fila {{ iRow }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let cell of row.cellsList; first as isFirstCell; index as columnIndex\">\r\n <th *ngIf=\"firstCellIsHeader && isFirstCell; else elseTd\" scope=\"row\"\r\n [class]=\"['px-base py-xs border-neutral-base border-b-0 border-r text-left font-normal text-sm text-neutral-dark', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n (desyContentEmpty)=\"handleTableCellContentEmpty(iRow, columnIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </th>\r\n <ng-template #elseTd>\r\n <td tabindex=\"-1\" desyFocusClickedCell\r\n [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n (desyContentEmpty)=\"handleTableCellContentEmpty(iRow, columnIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : -1\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n\r\n<div *ngIf=\"wrapper; else tableContent\" [class]=\"wrapper.classes\">\r\n <ng-container *ngTemplateOutlet=\"tableContent\"></ng-container>\r\n</div>\r\n"
283
+ template: "<ng-template #tableContent>\r\n <table role=\"grid\"\r\n [class]=\"['c-table-advanced border-t-2 border-b-2 border-neutral-base', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\r\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\r\n </caption>\r\n <thead *ngIf=\"getHeaderCells()\">\r\n <tr class=\"border-t border-neutral-base divide-x divide-neutral-base\">\r\n <th *ngIf=\"hasCheckboxes\" scope=\"col\" [class]=\"['align-top px-base py-xs', checkboxClasses] | makeHtmlList\">\r\n <span class=\"sr-only\">Seleccionar fila</span>\r\n </th>\r\n <th scope=\"col\" *ngFor=\"let item of getHeaderCells(); index as iHeader\" [id]=\"getIdHeader(iHeader)\"\r\n [attr.aria-sort]=\"item.orderBy ? getStringOrderBy(item.orderBy) : null\"\r\n [class]=\"['align-top px-base py-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\"\r\n [attr.colspan]=\"item.colspan ? item.colspan : null\"\r\n [attr.rowspan]=\"item.rowspan ? item.rowspan : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n\r\n <span *ngIf=\"item.orderBy\" class=\"inline-block relative\" (click)=\"handleSortByColumn(iHeader)\" desyFocusClickedCell\r\n [attr.tabindex]=\"item.orderBy ? -1 : null\"\r\n [attr.role]=\"item.orderBy ? 'button' : null\">\r\n <ng-container *ngIf=\"item.text\">{{item.text}}</ng-container>\r\n <ng-container *ngIf=\"item.contentComponent\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.contentComponent }\"></ng-container>\r\n </ng-container>\r\n <span class=\"c-table-advanced__order\" *ngIf=\"item.orderBy\">\r\n <span class=\"sr-only\">Pulsa para ordenar por esta columna</span>\r\n <span class=\"c-table-advanced__ascending\" *ngIf=\"item.orderBy == orderByType.asc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M112.07 37.93l-35-35a10 10 0 00-14.14 0l-35 35a10 10 0 0014.14 14.14l13.66-13.66A2.5 2.5 0 0160 40.18V130a10 10 0 0020 0V40.18a2.5 2.5 0 014.27-1.77l13.66 13.66a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__descending\" *ngIf=\"item.orderBy == orderByType.desc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M27.93 102.07l35 35a10 10 0 0014.14 0l35-35a10 10 0 00-14.14-14.14l-13.66 13.66A2.5 2.5 0 0180 99.82V10a10 10 0 00-20 0v89.82a2.5 2.5 0 01-4.27 1.77L42.07 87.93a10 10 0 00-14.14 14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__none\" *ngIf=\"item.orderBy == orderByType.none\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" class=\"text-neutral-base\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M94.7 97.2l-17.2 17.19V25.61L94.7 42.8a7.5 7.5 0 0010.6-10.6l-30-30a7.49 7.49 0 00-10.6 0l-30 30a7.5 7.5 0 0010.6 10.6l17.2-17.19v88.78L45.3 97.2a7.5 7.5 0 10-10.6 10.6l30 30a7.48 7.48 0 0010.6 0l30-30a7.5 7.5 0 00-10.6-10.6z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n </span>\r\n </span>\r\n\r\n <span *ngIf=\"!item.orderBy\" class=\"inline-block relative\">\r\n <ng-container *ngIf=\"item.text\">{{item.text}}</ng-container>\r\n <ng-container *ngIf=\"item.contentComponent\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.contentComponent }\"></ng-container>\r\n </ng-container>\r\n </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr class=\"divide-x divide-neutral-base\" *ngIf=\"hasFilters()\">\r\n <td *ngIf=\"hasCheckboxes\" [ngClass]=\"checkboxClasses\"></td>\r\n <td tabindex=\"-1\" *ngFor=\"let item of getHeaderCells(); index as iHead\" desyFocusClickedCell\r\n [class]=\"['align-top px-base pb-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\">\r\n <ng-container *ngIf=\"item.hasSelect && getSelectForItem(item) != null\">\r\n <ng-container *ngTemplateOutlet=\"tableSelect; context: {selectable: getSelectForItem(item)}\"></ng-container>\r\n <ng-template #tableSelect let-selectable=\"selectable\">\r\n <desy-select [id]=\"getIdHeaderSelect(iHead)\"\r\n [labelData]=\"{ text: 'Filtrar en esta columna', classes: 'sr-only' }\"\r\n [classes]=\"selectable.classes ? selectable.classes : 'c-select--sm w-full mt-0'\"\r\n [formGroupClasses]=\"selectable.formGroupClasses ? selectable.formGroupClasses : 'mb-0'\"\r\n [name]=\"selectable.name\"\r\n [items]=\"getItemSelectOptions(selectable)\"\r\n [disabled]=\"selectable.disabled\"\r\n [describedBy]=\"getIdHeaderSelect(iHead)\"\r\n\r\n [(ngModel)]=\"item.valueSelect\" (ngModelChange)=\"handleInputSearch(item)\"\r\n\r\n [role]=\"selectable.role\"\r\n [ariaLabel]=\"selectable.ariaLabel\"\r\n [ariaDescribedBy]=\"selectable.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"selectable.ariaLabelledBy\"\r\n [ariaHidden]=\"selectable.ariaHidden\"\r\n [ariaDisabled]=\"selectable.ariaDisabled\"\r\n [ariaControls]=\"selectable.ariaControls\"\r\n [ariaCurrent]=\"selectable.ariaCurrent\"\r\n [ariaLive]=\"selectable.ariaLive\"\r\n [ariaExpanded]=\"selectable.ariaExpanded\"\r\n [ariaErrorMessage]=\"selectable.ariaErrorMessage\"\r\n [ariaHasPopup]=\"selectable.ariaHasPopup\"\r\n [tabindex]=\"selectable.tabindex\">\r\n </desy-select>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <div *ngIf=\"item.hasSelect && item.hasFilter\" class=\"pb-sm\"></div>\r\n\r\n <desy-search-bar *ngIf=\"item.hasFilter\"\r\n [(ngModel)]=\"item.valueFilter\" [ngModelOptions]=\"{standalone: true}\"\r\n (clickEvent)=\"handleInputSearch(item)\"\r\n (ngModelChange)=\"handleInputSearch(item)\"\r\n labelText=\"Buscar en esta columna\"\r\n [id]=\"getIdHeaderFilter(iHead)\"\r\n placeholder=\"Buscar\"\r\n [classes]=\"['c-input--sm', item.filterClasses] | makeHtmlList\"\r\n buttonClasses=\"m-xs p-0.5 text-xs\"\r\n [describedBy]=\"getIdHeader(iHead)\"> </desy-search-bar>\r\n </td>\r\n </tr>\r\n\r\n\r\n <tr *ngFor=\"let row of getVisibleRows(); index as iRow\" class=\"border-t border-b border-neutral-base hover:bg-neutral-lighter\"\r\n [desyRow]=\"row\"\r\n [ngClass]=\"{'bg-neutral-light': hasCheckboxes && row.checked }\">\r\n <td *ngIf=\"hasCheckboxes\" desyFocusClickedCell [class]=\"['px-base py-sm', checkboxClasses] | makeHtmlList\"\r\n tabindex=\"-1\" >\r\n <div class=\"c-checkboxes c-checkboxes--sm\">\r\n <div>\r\n <div class=\"relative flex items-start\">\r\n <div class=\"flex items-center mx-sm\">\r\n <input type=\"checkbox\" 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-light disabled:border-neutral-base text-primary-base\"\r\n [(ngModel)]=\"row.checked\" (ngModelChange)=\"handleCheckboxChange(row)\"\r\n [id]=\"getIdRowCheckbox(iRow)\"\r\n [name]=\"getIdRowCheckbox(iRow)\"\r\n [attr.aria-label]=\"'Fila ' + iRow\">\r\n </div>\r\n <div class=\"pt-0.5 leading-5\">\r\n <label class=\"sr-only block text-sm -mt-1\" [for]=\"getIdRowCheckbox(iRow)\">Selecciona fila {{ iRow }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let cell of row.cellsList; first as isFirstCell; index as columnIndex\">\r\n <th *ngIf=\"firstCellIsHeader && isFirstCell; else elseTd\" scope=\"row\"\r\n [class]=\"['px-base py-xs border-neutral-base border-b-0 border-r text-left font-normal text-sm text-neutral-dark', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </th>\r\n <ng-template #elseTd>\r\n <td tabindex=\"-1\" desyFocusClickedCell\r\n [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : -1\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n\r\n<div *ngIf=\"wrapper; else tableContent\" [class]=\"wrapper.classes\">\r\n <ng-container *ngTemplateOutlet=\"tableContent\"></ng-container>\r\n</div>\r\n"
256
284
  },] }
257
285
  ];
258
286
  TableAdvancedComponent.ctorParameters = () => [
@@ -285,4 +313,4 @@ __decorate([
285
313
  __decorate([
286
314
  DesyContentChild()
287
315
  ], TableAdvancedComponent.prototype, "headerComponent", void 0);
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWR2YW5jZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS10YWJsZXMvY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC90YWJsZS1hZHZhbmNlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEVBQW9CLE9BQU8sRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUVsRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUVwRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFNekYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQWlDaEUsWUFBb0IsRUFBYyxFQUFVLGNBQWlDO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQVJuRSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFHeEUsZ0JBQVcsR0FBRyxPQUFPLENBQUM7SUFLdEIsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCwwQkFBMEI7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUV4RCxxSEFBcUg7UUFDckgsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDcEM7YUFBTTtZQUVMLDJIQUEySDtZQUMzSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXBDLHNDQUFzQztZQUN0QyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN6RSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUEwQyxDQUFDO1lBQ3hGLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDckM7SUFFSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxzQkFBc0I7UUFDNUIsTUFBTSxNQUFNLEdBQUc7WUFDYixPQUFPLEVBQUUsRUFBRTtZQUNYLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQTRELENBQUM7UUFDN0YsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLGVBQWUsRUFBRSxFQUFFO2dCQUMzQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFlBQVksRUFBRTtvQkFDbkQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztpQkFDM0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakcsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUMvSDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUVILFVBQVU7UUFDUixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDMUgsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDeEM7YUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbEI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDeEYsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUMvQixJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUMsR0FBRyxFQUFDO1lBQzFCLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO2FBQU0sSUFBSSxPQUFPLEtBQUssT0FBTyxDQUFDLElBQUksRUFBQztZQUNsQyxPQUFPLFlBQVksQ0FBQztTQUNyQjthQUFNLElBQUksT0FBTyxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxHQUFHLGVBQWUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0IsQ0FBQyxHQUFzQztRQUN6RCxJQUFJLEdBQUcsWUFBWSx5QkFBeUIsRUFBRTtZQUM1QyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFlBQVkseUJBQXlCLENBQUM7WUFDckUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDbEIsSUFBSSxRQUFRLEVBQUU7Z0JBQ1gsQ0FBK0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoRTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsTUFBTSxTQUFTLEdBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7UUFDbkcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUdEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsSUFBdUI7UUFDdkMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsb0JBQW9CO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO1FBRUQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLFVBQVUsQ0FBQyxpQkFBeUMsRUFBRSxJQUFvQjtRQUNoRixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDeEIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QyxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUN2QyxXQUFXLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEcsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFFSDs7O09BR0c7SUFDSCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7Z0JBQy9CLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7aUJBQ2pGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNLLFFBQVEsQ0FBQyxpQkFBeUMsRUFBRSxJQUFvQjtRQUM5RSxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7WUFDMUIsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN2RCxNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDM0QsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ25GO1FBRUQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsQ0FBZ0IsRUFBRSxDQUFnQixFQUFFLEtBQWM7UUFDbkUsSUFBSSxNQUFNLENBQUM7UUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFdkQsSUFBSSxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRyxFQUFFLGFBQWE7WUFDOUQsTUFBTSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN6RzthQUFJLEVBQUUsY0FBYztZQUNuQixNQUFNLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDL0U7UUFFRCxPQUFPLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQixDQUFDLElBQXVCO1FBQzlDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLElBQUksRUFBRTtZQUNsRSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7U0FDcEI7YUFBTTtZQUNMLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxHQUFXO1FBQy9CLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QixHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7OztZQW5URixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsbXZhQUE4QzthQUMvQzs7O1lBdEJDLFVBQVU7WUFIVixpQkFBaUI7OzttQkE0QmhCLEtBQUs7bUJBQ0wsS0FBSztzQkFFTCxLQUFLOzZCQUNMLEtBQUs7Z0NBQ0wsS0FBSzs0QkFDTCxLQUFLO3VCQUNMLEtBQUs7c0JBQ0wsS0FBSzs4QkFDTCxLQUFLO2lCQUNMLEtBQUs7c0JBQ0wsS0FBSzsrQkFJTCxlQUFlLFNBQUMscUJBQXFCOzhCQUdyQyxlQUFlLFNBQUMsNEJBQTRCOytCQUU1QyxlQUFlLFNBQUMseUJBQXlCO3NCQUN6QyxZQUFZLFNBQUMsWUFBWTt5QkFFekIsTUFBTTswQkFDTixNQUFNOytCQUNOLE1BQU07O0FBVmlDO0lBRHZDLGdCQUFnQixFQUFFO2dFQUM2RDtBQUdqQztJQUQ5QyxnQkFBZ0IsRUFBRTsrREFDMEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjY2Vzc2liaWxpdHlDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtTZWFyY2hVdGlsc30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3NlYXJjaC11dGlscyc7XHJcbmltcG9ydCB7SGVhZENlbGxNb2RlbERhdGEsIE9yZGVyQnksIFJvd0RhdGEsIFdyYXBwZXJEYXRhfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtUYWJsZUNhcHRpb25Db21wb25lbnR9IGZyb20gJy4uL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2FwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHtUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NlbGxEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY2VsbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1Jvd0RpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yb3cuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtSZWNhbGN1bGF0ZVRhYmxlUGFyYW1zfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlY2FsY3VsYXRlLXRhYmxlLXBhcmFtcyc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktdGFibGUtYWR2YW5jZWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1hZHZhbmNlZC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQWR2YW5jZWRDb21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHJvd3M6IFJvd0RhdGFbXTsgLy8gb3JpZ2luYWwgZGF0YVxyXG4gIEBJbnB1dCgpIGhlYWQ6IEhlYWRDZWxsTW9kZWxEYXRhW107XHJcblxyXG4gIEBJbnB1dCgpIGNhcHRpb246IHN0cmluZztcclxuICBASW5wdXQoKSBjYXB0aW9uQ2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZpcnN0Q2VsbElzSGVhZGVyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhhc0NoZWNrYm94ZXM6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcclxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2hlY2tib3hDbGFzc2VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcclxuICBASW5wdXQoKSB3cmFwcGVyOiBXcmFwcGVyRGF0YTtcclxuXHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKClcclxuICBAQ29udGVudENoaWxkcmVuKFRhYmxlQ2FwdGlvbkNvbXBvbmVudCkgY2FwdGlvbkNvbXBvbmVudDogVGFibGVDYXB0aW9uQ29tcG9uZW50O1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50KSBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQWR2YW5jZWRIZWFkZXJDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudCkgcm93Q29tcG9uZW50TGlzdDogUXVlcnlMaXN0PFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnQ+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oUm93RGlyZWN0aXZlKSByb3dEYXRhOiBRdWVyeUxpc3Q8Um93RGlyZWN0aXZlPjtcclxuXHJcbiAgQE91dHB1dCgpIHJvd3NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJvd3NDaGVja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZWNhbGN1bGF0ZVRhYmxlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNhbGN1bGF0ZVRhYmxlUGFyYW1zPigpO1xyXG5cclxuICB2aXNpYmxlUm93czogUm93RGF0YVtdfFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnRbXTtcclxuICBvcmRlckJ5VHlwZSA9IE9yZGVyQnk7XHJcbiAgaXNSZXNldDogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBlbGVtbnRzRm9jdXMgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3RhYmluZGV4XScpO1xyXG4gICAgaWYgKGVsZW1udHNGb2N1cykge1xyXG4gICAgICBlbGVtbnRzRm9jdXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlY2FsY3VsYXRlVmlzaWJsZUVsZW1lbnRzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWZyZXNjYSBsYXMgZmlsYXMgdmlzaWJsZXMgdHJhcyByZWFsaXphcnNlIHVuYSBiw7pzcXVlZGEgbyB1bmEgb3JkZW5hY2nDs25cclxuICAgKi9cclxuICByZWNhbGN1bGF0ZVZpc2libGVFbGVtZW50cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlY2FsY3VsYXRlUGFyYW1zID0gdGhpcy5idWlsZFJlY2FsY3VsYXRlUGFyYW1zKCk7XHJcblxyXG4gICAgLy8gU2kgc2UgY2FwdHVyYSBlbCBldmVudG8gcmVjYWxjdWxhdGVUYWJsZSBzZSBkZWphIGFsIHVzdWFyaW8gbGEgcmVzcG9uc2FiaWxpZGFkIGRlIGZpbHRyYXIgeSBvcmRlbmFyIGxvcyBlbGVtZW50b3MuXHJcbiAgICBpZiAodGhpcy5yZWNhbGN1bGF0ZVRhYmxlLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucmVjYWxjdWxhdGVUYWJsZS5lbWl0KHJlY2FsY3VsYXRlUGFyYW1zKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAvLyBTZSBkZWJlbiBtb3N0cmFyIHRvZGFzIGxhcyBmaWxhcyB0ZW1wb3JhbG1lbnRlIHBhcmEgcG9kZXIgYXBsaWNhciBlbCBmaWx0cm8geSBsYSBvcmRlbmFjacOzbiBzb2JyZSBlbCBjb250ZW5pZG8gaW5zZXJ0YWRvXHJcbiAgICAgIHRoaXMudmlzaWJsZVJvd3MgPSB0aGlzLmdldFJvd3MoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAvLyBTZSBhcGxpY2EgZWwgZmlsdHJvIHkgbGEgb3JkZW5hY2nDs25cclxuICAgICAgbGV0IHJvd0RhdGEgPSB0aGlzLmZpbHRlclJvd3MocmVjYWxjdWxhdGVQYXJhbXMsIHRoaXMucm93RGF0YS50b0FycmF5KCkpO1xyXG4gICAgICByb3dEYXRhID0gdGhpcy5zb3J0Um93cyhyZWNhbGN1bGF0ZVBhcmFtcywgcm93RGF0YSk7XHJcbiAgICAgIHRoaXMudmlzaWJsZVJvd3MgPSByb3dEYXRhLm1hcChyID0+IHIuZGVzeVJvdykgYXMgUm93RGF0YVtdfFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnRbXTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydXllIGxvcyBwYXLDoW1ldHJvcyBuZWNlc2FyaW9zIHBhcmEgcmVjYWxjdWxhciBsYSB0YWJsYSwgaW5kaWNhbmRvIGxvcyBmaWx0cm9zIHkgbGEgb3JkZW5hY2nDs25cclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkUmVjYWxjdWxhdGVQYXJhbXMoKTogUmVjYWxjdWxhdGVUYWJsZVBhcmFtcyB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7XHJcbiAgICAgIGZpbHRlcnM6IFtdLFxyXG4gICAgICBzb3J0OiBudWxsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLmdldEhlYWRlckNlbGxzKCkgYXMgKEhlYWRDZWxsTW9kZWxEYXRhfFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50KVtdO1xyXG4gICAgaWYgKGhlYWQpIHtcclxuICAgICAgaGVhZC5mb3JFYWNoKChoZWFkZXJDZWxsLCBoZWFkZXJDZWxsSW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaGVhZGVyQ2VsbC5oYXNGaWx0ZXIgJiYgaGVhZGVyQ2VsbC5hY3RpdmVGaWx0ZXIpIHtcclxuICAgICAgICAgIHBhcmFtcy5maWx0ZXJzLnB1c2goeyBjb2x1bW5JbmRleDogaGVhZGVyQ2VsbEluZGV4LCBmaWx0ZXJUZXh0OiBoZWFkZXJDZWxsLnZhbHVlRmlsdGVyIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBjb25zdCBvcmRlckJ5Q29sdW1uSW5kZXggPSBoZWFkLmZpbmRJbmRleChjZWxsID0+IGNlbGwub3JkZXJCeSAmJiBjZWxsLm9yZGVyQnkgIT09IE9yZGVyQnkubm9uZSk7XHJcbiAgICAgIHBhcmFtcy5zb3J0ID0gKG9yZGVyQnlDb2x1bW5JbmRleCA+PSAwKSA/IHsgY29sdW1uSW5kZXg6IG9yZGVyQnlDb2x1bW5JbmRleCwgb3JkZXI6IGhlYWRbb3JkZXJCeUNvbHVtbkluZGV4XS5vcmRlckJ5IH0gOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBmdW5jaW9uZXMgZGUgcmVjb2dlciBpZHMsIHkgY2FyYWN0ZXJpc3RpY2FzXHJcbiAgICovXHJcblxyXG4gIGhhc0ZpbHRlcnMoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBoZWFkID0gdGhpcy5nZXRIZWFkZXJDZWxscygpO1xyXG4gICAgcmV0dXJuIGhlYWQgPyBoZWFkLmZpbmRJbmRleChjZWxsID0+IGNlbGwuaGFzRmlsdGVyKSA+PSAwIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRIZWFkZXJDZWxscygpOiBIZWFkQ2VsbE1vZGVsRGF0YVtdfFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyQ29tcG9uZW50ICYmIHRoaXMuaGVhZGVyQ29tcG9uZW50LmNlbGxzLmxlbmd0aCA+IDAgPyB0aGlzLmhlYWRlckNvbXBvbmVudC5jZWxscy50b0FycmF5KCkgOiB0aGlzLmhlYWQ7XHJcbiAgfVxyXG5cclxuICBnZXRSb3dzKCk6IFJvd0RhdGFbXXxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50W10ge1xyXG4gICAgbGV0IHJvd3MgPSBbXTtcclxuICAgIGlmICh0aGlzLnJvd0NvbXBvbmVudExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICByb3dzID0gdGhpcy5yb3dDb21wb25lbnRMaXN0LnRvQXJyYXkoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5yb3dzKSB7XHJcbiAgICAgIHJvd3MgPSB0aGlzLnJvd3M7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm93cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNpIHNlIHNvYnJlZXNjcmliZSAgZWwgY29tcG9ydGFtaWVudG8gcG9yIGRlZmVjdG8gZGUgZmlsdHJhZG8geSBvcmRlbmFjacOzbiwgc2UgdXRpbGl6YXLDoW4gbGFzIGluZGljYWRhcyBkZXNkZSBmdWVyYSBkZWxcclxuICAgKiBjb21wb25lbnRlICh5YSBzZWEgcG9yIHBhcsOhbWV0cm8gbyBwb3IgY29udGVuaWRvKS5cclxuICAgKiBTaSBubyBzZSBzb2JyZWVzY3JpYmUsIGRldnVlbHZlIGxhcyBmaWxhcyBjYWxjdWxhZGFzLlxyXG4gICAqL1xyXG4gIGdldFZpc2libGVSb3dzKCk6IFJvd0RhdGFbXXxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50W10ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVjYWxjdWxhdGVUYWJsZS5vYnNlcnZlcnMubGVuZ3RoID4gMCA/IHRoaXMuZ2V0Um93cygpIDogdGhpcy52aXNpYmxlUm93cztcclxuICB9XHJcblxyXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiAnaWQtdGFibGUtcm93JztcclxuICB9XHJcblxyXG4gIGdldElkSGVhZGVyKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SWRQcmVmaXgoKSArICctaGVhZGVyLScgKyBpbmRleDtcclxuICB9XHJcblxyXG4gIGdldElkUm93Q2hlY2tib3goaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1jaGVja2JveC0nICsgaW5kZXg7XHJcbiAgfVxyXG5cclxuICBnZXRJZEhlYWRlckZpbHRlcihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldElkUHJlZml4KCkgKyAnLWhlYWRlci1maWx0ZXItJyArIGluZGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FwdGlvbkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXB0aW9uQ29tcG9uZW50ID8gdGhpcy5jYXB0aW9uQ29tcG9uZW50LmNsYXNzZXMgOiB0aGlzLmNhcHRpb25DbGFzc2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RyaW5nT3JkZXJCeShvcmRlckJ5OiBPcmRlckJ5KTogc3RyaW5nIHtcclxuICAgIGlmIChvcmRlckJ5ID09PSBPcmRlckJ5LmFzYyl7XHJcbiAgICAgIHJldHVybiAnYXNjZW5kaW5nJztcclxuICAgIH0gZWxzZSBpZiAob3JkZXJCeSA9PT0gT3JkZXJCeS5kZXNjKXtcclxuICAgICAgcmV0dXJuICdkZXNjZW5kaW5nJztcclxuICAgIH0gZWxzZSBpZiAob3JkZXJCeSA9PT0gT3JkZXJCeS5ub25lKXtcclxuICAgICAgcmV0dXJuICdub25lJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVRhYmxlQ2VsbENvbnRlbnRFbXB0eShyb3c6IG51bWJlciwgY29sdW1uOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgY2VsbCBjb250ZW50LCBodG1sIG9yIHRleHQgYXJlIHJlcXVpcmVkIGF0IHJvdyAke3Jvd30gYW5kIGNvbHVtbiAke2NvbHVtbn1gKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNoZWNrc1xyXG4gICAqL1xyXG4gIGhhbmRsZUNoZWNrYm94Q2hhbmdlKHJvdzogUm93RGF0YXxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50KTogdm9pZCB7XHJcbiAgICBpZiAocm93IGluc3RhbmNlb2YgVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudCkge1xyXG4gICAgICByb3cuY2hlY2tlZENoYW5nZS5lbWl0KHJvdy5jaGVja2VkKTtcclxuICAgIH1cclxuICAgIHRoaXMubm90aWZ5Q2hlY2tlZENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWl0ZSBkZXNtYXJjYXIgdG9kYXMgbGFzIGZpbGFzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmNoZWNrQWxsKCk6IHZvaWR7XHJcbiAgICB0aGlzLmdldFJvd3MoKS5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBjb25zdCBtdXN0RW1pdCA9IHIuY2hlY2tlZCAmJiByIGluc3RhbmNlb2YgVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudDtcclxuICAgICAgci5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIGlmIChtdXN0RW1pdCkge1xyXG4gICAgICAgIChyIGFzIFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnQpLmNoZWNrZWRDaGFuZ2UuZW1pdChyLmNoZWNrZWQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMubm90aWZ5Q2hlY2tlZENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTm90aWZpY2EgY2FtYmlvcyBlbiBsYXMgZmlsYXNcclxuICAgKi9cclxuICBwcml2YXRlIG5vdGlmeUNoZWNrZWRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5yb3dDb21wb25lbnRMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnJvd3NDaGFuZ2UuZW1pdCh0aGlzLnJvd3MpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJvd0NoZWNrczogYW55ID0ge307XHJcbiAgICB0aGlzLmdldFJvd3MoKS5mb3JFYWNoKHIgPT4gcm93Q2hlY2tzW3IuaWRdID0gISFyLmNoZWNrZWQpOyAvLyBTZSBhcGxpY2FuIHRhbWJpw6luIGEgbGFzIG5vIHZpc2libGVzXHJcbiAgICB0aGlzLnJvd3NDaGVja2VkLmVtaXQocm93Q2hlY2tzKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBidXNxdWVkYVxyXG4gICAqL1xyXG4gIGhhbmRsZUlucHV0U2VhcmNoKGl0ZW06IEhlYWRDZWxsTW9kZWxEYXRhKTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbS5oYXNGaWx0ZXIpIHsgLy8gc2kgdGllbmUgYnVzY2Fkb3JcclxuICAgICAgaXRlbS5hY3RpdmVGaWx0ZXIgPSAhIWl0ZW0udmFsdWVGaWx0ZXI7XHJcbiAgICAgIHRoaXMudW5jaGVja0FsbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVjYWxjdWxhdGVWaXNpYmxlRWxlbWVudHMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGZpbHRyYW4gbGFzIGZpbGFzIHNlZ8O6biBsbyBlc3BlY2lmaWNhZG8gZW4gbGEgYmFycmEgZGUgYsO6c3F1ZWRhIGRlIGNhZGEgY29sdW1uYS5cclxuICAgKiBTaSBubyBoYXkgYsO6c3F1ZWRhIHNzZSBkZXZ1ZWx2ZW4gdG9kYXMgbGFzIGZpbGFzLlxyXG4gICAqIEBwYXJhbSByZWNhbGN1bGF0ZVBhcmFtcyBwYXJhbWV0cm9zIHBhcmEgcmVjYWxjdWxhciBsb3MgZWxlbWVudG9zIHZpc2libGVzXHJcbiAgICogQHBhcmFtIHJvd3MgbGlzdGEgY29uIHRvZGFzIGxhcyBmaWxhc1xyXG4gICAqIEByZXR1cm4gbGlzdGEgZGUgZmlsYXMgZmlsdHJhZGFcclxuICAgKi9cclxuICBwcml2YXRlIGZpbHRlclJvd3MocmVjYWxjdWxhdGVQYXJhbXM6IFJlY2FsY3VsYXRlVGFibGVQYXJhbXMsIHJvd3M6IFJvd0RpcmVjdGl2ZVtdKTogUm93RGlyZWN0aXZlW10ge1xyXG4gICAgbGV0IGZpbHRlcmVkUm93cyA9IHJvd3M7XHJcbiAgICByZWNhbGN1bGF0ZVBhcmFtcy5maWx0ZXJzLmZvckVhY2goZmlsdGVyID0+IHtcclxuICAgICAgZmlsdGVyZWRSb3dzID0gZmlsdGVyZWRSb3dzLmZpbHRlcihyb3cgPT5cclxuICAgICAgICBTZWFyY2hVdGlscy5jb250YWluc0FueVdvcmRGcm9tKHJvdy5nZXRDZWxsKGZpbHRlci5jb2x1bW5JbmRleCkuZ2V0Q29udGVudCgpLCBmaWx0ZXIuZmlsdGVyVGV4dCkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGZpbHRlcmVkUm93cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIG9yZGVuYWNpb25cclxuICAgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogUGVybWl0ZSBpbmRpY2FyIHF1ZSBzZSBkZWJlIG9yZGVuYXIgbGEgdGFibGFcclxuICAgKiBAcGFyYW0gaW5kZXggaW5kaWNlIGRlIGxhIGNvbHVtbmFcclxuICAgKi9cclxuICBoYW5kbGVTb3J0QnlDb2x1bW4oaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgaGVhZCA9IHRoaXMuZ2V0SGVhZGVyQ2VsbHMoKTtcclxuICAgIGlmIChoZWFkKSB7XHJcbiAgICAgIGhlYWQuZm9yRWFjaCgoY2VsbCwgY2VsbEluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGNlbGwub3JkZXJCeSkge1xyXG4gICAgICAgICAgY2VsbC5vcmRlckJ5ID0gY2VsbEluZGV4ID09PSBpbmRleCA/IHRoaXMuZ2V0TmV4dERpcmVjdGlvbihjZWxsKSA6IE9yZGVyQnkubm9uZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVjYWxjdWxhdGVWaXNpYmxlRWxlbWVudHMoKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBPcmRlbmEgbGFzIGZpbGFzIGluZGljYWRhcyBzZWfDum4gbGEgY29sdW1uYSBlc3BlY2lmaWNhZGEgZW4gbGEgY2FiZWNlcmFcclxuICAgKiBAcGFyYW0gcmVjYWxjdWxhdGVQYXJhbXMgcGFyYW1ldHJvcyBwYXJhIHJlY2FsY3VsYXIgbG9zIGVsZW1lbnRvcyB2aXNpYmxlc1xyXG4gICAqIEBwYXJhbSByb3dzIGZpbGFzIGRlIGxhIHRhYmxhIGEgb3JkZW5hclxyXG4gICAqIEByZXR1cm4gbWlzbWFzIGZpbGFzIHBlcm8gb3JkZW5hZGFzIHBvciBsYSBjb2x1bW5hIGluZGljYWRhXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzb3J0Um93cyhyZWNhbGN1bGF0ZVBhcmFtczogUmVjYWxjdWxhdGVUYWJsZVBhcmFtcywgcm93czogUm93RGlyZWN0aXZlW10pOiBSb3dEaXJlY3RpdmVbXSB7XHJcbiAgICBsZXQgc29ydGVkUm93cyA9IHJvd3M7XHJcbiAgICBpZiAocmVjYWxjdWxhdGVQYXJhbXMuc29ydCkge1xyXG4gICAgICBjb25zdCBjb2x1bW5JbmRleCA9IHJlY2FsY3VsYXRlUGFyYW1zLnNvcnQuY29sdW1uSW5kZXg7XHJcbiAgICAgIGNvbnN0IGlzQXNjID0gcmVjYWxjdWxhdGVQYXJhbXMuc29ydC5vcmRlciA9PT0gT3JkZXJCeS5hc2M7XHJcbiAgICAgIHNvcnRlZFJvd3MgPSByb3dzLnNvcnQoKGEsIGIpID0+XHJcbiAgICAgICAgdGhpcy5jb21wYXJlQ2VsbENvbnRlbnQoYS5nZXRDZWxsKGNvbHVtbkluZGV4KSwgYi5nZXRDZWxsKGNvbHVtbkluZGV4KSwgaXNBc2MpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc29ydGVkUm93cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbXBhcmEgZWwgY29udGVuaWRvIGRlIGRvcyBjZWxkYXMuIEVzdGUgc2UgaW52aWVydGUgc2kgZWwgb3JkZW4gZXNwZWNpZmljYWRvIGVzIGRlc2NlbmRlbnRlLlxyXG4gICAqL1xyXG4gIGNvbXBhcmVDZWxsQ29udGVudChhOiBDZWxsRGlyZWN0aXZlLCBiOiBDZWxsRGlyZWN0aXZlLCBpc0FzYzogYm9vbGVhbik6IG51bWJlcntcclxuICAgIGxldCByZXN1bHQ7XHJcbiAgICBjb25zdCBhQ29tcGFyYWJsZSA9IHRoaXMuY2xlYW5DdXJyZW5jeShhLmdldENvbnRlbnQoKSk7XHJcbiAgICBjb25zdCBiQ29tcGFyYWJsZSA9IHRoaXMuY2xlYW5DdXJyZW5jeShiLmdldENvbnRlbnQoKSk7XHJcblxyXG4gICAgaWYgKGlzTmFOKCthQ29tcGFyYWJsZSkgJiYgaXNOYU4oK2JDb21wYXJhYmxlKSApIHsgLy8gc29uIHRleHRvc1xyXG4gICAgICByZXN1bHQgPSBhQ29tcGFyYWJsZS5sb2NhbGVDb21wYXJlKGJDb21wYXJhYmxlLCAnZXMnLCB7IHNlbnNpdGl2aXR5OiAnYmFzZScsIGlnbm9yZVB1bmN0dWF0aW9uOiB0cnVlIH0pO1xyXG4gICAgfWVsc2V7IC8vIHNvbiBudW1lcm9zXHJcbiAgICAgIHJlc3VsdCA9IGFDb21wYXJhYmxlLmxvY2FsZUNvbXBhcmUoYkNvbXBhcmFibGUsIHVuZGVmaW5lZCwgeyBudW1lcmljOiB0cnVlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQgKiAoaXNBc2MgPyAxIDogLTEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2UgY2FsY3VsYSBsYSBvcmRlbmFjacOzbiBudWV2YVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0TmV4dERpcmVjdGlvbihpdGVtOiBIZWFkQ2VsbE1vZGVsRGF0YSk6IE9yZGVyQnkge1xyXG4gICAgaWYgKGl0ZW0ub3JkZXJCeSA9PT0gT3JkZXJCeS5ub25lIHx8IGl0ZW0ub3JkZXJCeSA9PT0gT3JkZXJCeS5kZXNjKSB7XHJcbiAgICAgIHJldHVybiBPcmRlckJ5LmFzYztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBPcmRlckJ5LmRlc2M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBzaSBlcyB1bmEgY2FudGlkYWQgZGUgZGluZXJvIHNlIHF1aXRhIOKCrCBwYXJhIHBvZGVyIGNvbXBhcmFyIGxvcyBudW1lcm9zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGVhbkN1cnJlbmN5KHR4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICgvW1xcZC4sXStbXFzigqxdL2cudGVzdCh0eHQpKSB7XHJcbiAgICAgIHR4dCA9IHR4dC5yZXBsYWNlKC/igqwvZywgJycpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHR4dDtcclxuICB9XHJcbn1cclxuIl19
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWR2YW5jZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS10YWJsZXMvY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC90YWJsZS1hZHZhbmNlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEVBQW9CLE9BQU8sRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUVsRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUVwRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFRekYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHNCQUFzQjtJQWlDaEUsWUFBb0IsRUFBYyxFQUFVLGNBQWlDO1FBQzNFLEtBQUssRUFBRSxDQUFDO1FBRFUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQVJuRSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7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LEVBQUU7Z0VBQzZEO0FBR2pDO0lBRDlDLGdCQUFnQixFQUFFOytEQUMwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjY2Vzc2liaWxpdHlDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtTZWFyY2hVdGlsc30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3NlYXJjaC11dGlscyc7XHJcbmltcG9ydCB7SGVhZENlbGxNb2RlbERhdGEsIE9yZGVyQnksIFJvd0RhdGEsIFdyYXBwZXJEYXRhfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtUYWJsZUNhcHRpb25Db21wb25lbnR9IGZyb20gJy4uL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2FwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHtUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NlbGxEaXJlY3RpdmV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY2VsbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1Jvd0RpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yb3cuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtSZWNhbGN1bGF0ZVRhYmxlUGFyYW1zfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlY2FsY3VsYXRlLXRhYmxlLXBhcmFtcyc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IFRhYmxlQWR2YW5jZWRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdEl0ZW1EYXRhIH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1mb3Jtcy9pbnRlcmZhY2VzL3NlbGVjdC1pdGVtLWRhdGEnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LXRhYmxlLWFkdmFuY2VkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtYWR2YW5jZWQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUFkdmFuY2VkQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSByb3dzOiBSb3dEYXRhW107IC8vIG9yaWdpbmFsIGRhdGFcclxuICBASW5wdXQoKSBoZWFkOiBIZWFkQ2VsbE1vZGVsRGF0YVtdO1xyXG5cclxuICBASW5wdXQoKSBjYXB0aW9uOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2FwdGlvbkNsYXNzZXM6IHN0cmluZztcclxuICBASW5wdXQoKSBmaXJzdENlbGxJc0hlYWRlcjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoYXNDaGVja2JveGVzOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNoZWNrYm94Q2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgd3JhcHBlcjogV3JhcHBlckRhdGE7XHJcblxyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihUYWJsZUNhcHRpb25Db21wb25lbnQpIGNhcHRpb25Db21wb25lbnQ6IFRhYmxlQ2FwdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFibGVBZHZhbmNlZEhlYWRlckNvbXBvbmVudCkgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50O1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnQpIHJvd0NvbXBvbmVudExpc3Q6IFF1ZXJ5TGlzdDxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50PjtcclxuICBAVmlld0NoaWxkcmVuKFJvd0RpcmVjdGl2ZSkgcm93RGF0YTogUXVlcnlMaXN0PFJvd0RpcmVjdGl2ZT47XHJcblxyXG4gIEBPdXRwdXQoKSByb3dzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByb3dzQ2hlY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVjYWxjdWxhdGVUYWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjYWxjdWxhdGVUYWJsZVBhcmFtcz4oKTtcclxuXHJcbiAgdmlzaWJsZVJvd3M6IFJvd0RhdGFbXXxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50W107XHJcbiAgb3JkZXJCeVR5cGUgPSBPcmRlckJ5O1xyXG4gIGlzUmVzZXQ6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgZWxlbW50c0ZvY3VzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleF0nKTtcclxuICAgIGlmIChlbGVtbnRzRm9jdXMpIHtcclxuICAgICAgZWxlbW50c0ZvY3VzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZVZpc2libGVFbGVtZW50cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVmcmVzY2EgbGFzIGZpbGFzIHZpc2libGVzIHRyYXMgcmVhbGl6YXJzZSB1bmEgYsO6c3F1ZWRhIG8gdW5hIG9yZGVuYWNpw7NuXHJcbiAgICovXHJcbiAgcmVjYWxjdWxhdGVWaXNpYmxlRWxlbWVudHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCByZWNhbGN1bGF0ZVBhcmFtcyA9IHRoaXMuYnVpbGRSZWNhbGN1bGF0ZVBhcmFtcygpO1xyXG5cclxuICAgIC8vIFNpIHNlIGNhcHR1cmEgZWwgZXZlbnRvIHJlY2FsY3VsYXRlVGFibGUgc2UgZGVqYSBhbCB1c3VhcmlvIGxhIHJlc3BvbnNhYmlsaWRhZCBkZSBmaWx0cmFyIHkgb3JkZW5hciBsb3MgZWxlbWVudG9zLlxyXG4gICAgaWYgKHRoaXMucmVjYWxjdWxhdGVUYWJsZS5vYnNlcnZlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnJlY2FsY3VsYXRlVGFibGUuZW1pdChyZWNhbGN1bGF0ZVBhcmFtcyk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgLy8gU2UgZGViZW4gbW9zdHJhciB0b2RhcyBsYXMgZmlsYXMgdGVtcG9yYWxtZW50ZSBwYXJhIHBvZGVyIGFwbGljYXIgZWwgZmlsdHJvIHkgbGEgb3JkZW5hY2nDs24gc29icmUgZWwgY29udGVuaWRvIGluc2VydGFkb1xyXG4gICAgICB0aGlzLnZpc2libGVSb3dzID0gdGhpcy5nZXRSb3dzKCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgLy8gU2UgYXBsaWNhIGVsIGZpbHRybyB5IGxhIG9yZGVuYWNpw7NuXHJcbiAgICAgIGxldCByb3dEYXRhID0gdGhpcy5maWx0ZXJSb3dzKHJlY2FsY3VsYXRlUGFyYW1zLCB0aGlzLnJvd0RhdGEudG9BcnJheSgpKTtcclxuICAgICAgcm93RGF0YSA9IHRoaXMuc29ydFJvd3MocmVjYWxjdWxhdGVQYXJhbXMsIHJvd0RhdGEpO1xyXG4gICAgICB0aGlzLnZpc2libGVSb3dzID0gcm93RGF0YS5tYXAociA9PiByLmRlc3lSb3cpIGFzIFJvd0RhdGFbXXxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50W107XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnV5ZSBsb3MgcGFyw6FtZXRyb3MgbmVjZXNhcmlvcyBwYXJhIHJlY2FsY3VsYXIgbGEgdGFibGEsIGluZGljYW5kbyBsb3MgZmlsdHJvcyB5IGxhIG9yZGVuYWNpw7NuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBidWlsZFJlY2FsY3VsYXRlUGFyYW1zKCk6IFJlY2FsY3VsYXRlVGFibGVQYXJhbXMge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICBmaWx0ZXJzOiBbXSxcclxuICAgICAgc29ydDogbnVsbFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBoZWFkID0gdGhpcy5nZXRIZWFkZXJDZWxscygpIGFzIChIZWFkQ2VsbE1vZGVsRGF0YXxUYWJsZUFkdmFuY2VkSGVhZGVyQ2VsbENvbXBvbmVudClbXTtcclxuICAgIGlmIChoZWFkKSB7XHJcbiAgICAgIGhlYWQuZm9yRWFjaCgoaGVhZGVyQ2VsbCwgaGVhZGVyQ2VsbEluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGhlYWRlckNlbGwuaGFzRmlsdGVyICYmIGhlYWRlckNlbGwuYWN0aXZlRmlsdGVyKSB7XHJcbiAgICAgICAgICBwYXJhbXMuZmlsdGVycy5wdXNoKHsgY29sdW1uSW5kZXg6IGhlYWRlckNlbGxJbmRleCwgZmlsdGVyVGV4dDogaGVhZGVyQ2VsbC52YWx1ZUZpbHRlciB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoaGVhZGVyQ2VsbC5oYXNTZWxlY3QgJiYgaGVhZGVyQ2VsbC5hY3RpdmVTZWxlY3Qpe1xyXG4gICAgICAgICAgcGFyYW1zLmZpbHRlcnMucHVzaCh7IGNvbHVtbkluZGV4OiBoZWFkZXJDZWxsSW5kZXgsIGZpbHRlclRleHQ6IGhlYWRlckNlbGwudmFsdWVTZWxlY3QgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGNvbnN0IG9yZGVyQnlDb2x1bW5JbmRleCA9IGhlYWQuZmluZEluZGV4KGNlbGwgPT4gY2VsbC5vcmRlckJ5ICYmIGNlbGwub3JkZXJCeSAhPT0gT3JkZXJCeS5ub25lKTtcclxuICAgICAgcGFyYW1zLnNvcnQgPSAob3JkZXJCeUNvbHVtbkluZGV4ID49IDApID8geyBjb2x1bW5JbmRleDogb3JkZXJCeUNvbHVtbkluZGV4LCBvcmRlcjogaGVhZFtvcmRlckJ5Q29sdW1uSW5kZXhdLm9yZGVyQnkgfSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBhcmFtcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGZ1bmNpb25lcyBkZSByZWNvZ2VyIGlkcywgeSBjYXJhY3RlcmlzdGljYXNcclxuICAgKi9cclxuXHJcbiAgaGFzRmlsdGVycygpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLmdldEhlYWRlckNlbGxzKCk7XHJcbiAgICByZXR1cm4gaGVhZCA/IGhlYWQuZmluZEluZGV4KGNlbGwgPT4gKGNlbGwuaGFzRmlsdGVyKSB8fCAoY2VsbC5oYXNTZWxlY3QpKSA+PSAwIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRIZWFkZXJDZWxscygpOiBIZWFkQ2VsbE1vZGVsRGF0YVtdfFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyQ29tcG9uZW50ICYmIHRoaXMuaGVhZGVyQ29tcG9uZW50LmNlbGxzLmxlbmd0aCA+IDAgPyB0aGlzLmhlYWRlckNvbXBvbmVudC5jZWxscy50b0FycmF5KCkgOiB0aGlzLmhlYWQ7XHJcbiAgfVxyXG5cclxuICBnZXRSb3dzKCk6IFJvd0RhdGFbXXxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50W10ge1xyXG4gICAgbGV0IHJvd3MgPSBbXTtcclxuICAgIGlmICh0aGlzLnJvd0NvbXBvbmVudExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICByb3dzID0gdGhpcy5yb3dDb21wb25lbnRMaXN0LnRvQXJyYXkoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5yb3dzKSB7XHJcbiAgICAgIHJvd3MgPSB0aGlzLnJvd3M7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm93cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNpIHNlIHNvYnJlZXNjcmliZSAgZWwgY29tcG9ydGFtaWVudG8gcG9yIGRlZmVjdG8gZGUgZmlsdHJhZG8geSBvcmRlbmFjacOzbiwgc2UgdXRpbGl6YXLDoW4gbGFzIGluZGljYWRhcyBkZXNkZSBmdWVyYSBkZWxcclxuICAgKiBjb21wb25lbnRlICh5YSBzZWEgcG9yIHBhcsOhbWV0cm8gbyBwb3IgY29udGVuaWRvKS5cclxuICAgKiBTaSBubyBzZSBzb2JyZWVzY3JpYmUsIGRldnVlbHZlIGxhcyBmaWxhcyBjYWxjdWxhZGFzLlxyXG4gICAqL1xyXG4gIGdldFZpc2libGVSb3dzKCk6IFJvd0RhdGFbXXxUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50W10ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVjYWxjdWxhdGVUYWJsZS5vYnNlcnZlcnMubGVuZ3RoID4gMCA/IHRoaXMuZ2V0Um93cygpIDogdGhpcy52aXNpYmxlUm93cztcclxuICB9XHJcblxyXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiAnaWQtdGFibGUtcm93JztcclxuICB9XHJcblxyXG4gIGdldElkSGVhZGVyKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SWRQcmVmaXgoKSArICctaGVhZGVyLScgKyBpbmRleDtcclxuICB9XHJcblxyXG4gIGdldElkUm93Q2hlY2tib3goaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1jaGVja2JveC0nICsgaW5kZXg7XHJcbiAgfVxyXG5cclxuICBnZXRJZEhlYWRlckZpbHRlcihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldElkUHJlZml4KCkgKyAnLWhlYWRlci1maWx0ZXItJyArIGluZGV4O1xyXG4gIH1cclxuXHJcbiAgZ2V0SWRIZWFkZXJTZWxlY3QoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1oZWFkZXItc2VsZWN0LScgKyBpbmRleDtcclxuICB9XHJcblxyXG4gIGdldENhcHRpb25DbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FwdGlvbkNvbXBvbmVudCA/IHRoaXMuY2FwdGlvbkNvbXBvbmVudC5jbGFzc2VzIDogdGhpcy5jYXB0aW9uQ2xhc3NlcztcclxuICB9XHJcblxyXG4gIGdldFN0cmluZ09yZGVyQnkob3JkZXJCeTogT3JkZXJCeSk6IHN0cmluZyB7XHJcbiAgICBpZiAob3JkZXJCeSA9PT0gT3JkZXJCeS5hc2Mpe1xyXG4gICAgICByZXR1cm4gJ2FzY2VuZGluZyc7XHJcbiAgICB9IGVsc2UgaWYgKG9yZGVyQnkgPT09IE9yZGVyQnkuZGVzYyl7XHJcbiAgICAgIHJldHVybiAnZGVzY2VuZGluZyc7XHJcbiAgICB9IGVsc2UgaWYgKG9yZGVyQnkgPT09IE9yZGVyQnkubm9uZSl7XHJcbiAgICAgIHJldHVybiAnbm9uZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RGb3JJdGVtKGl0ZW06IFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50KTogVGFibGVBZHZhbmNlZFNlbGVjdENvbXBvbmVudHtcclxuICAgIHJldHVybiBpdGVtLnNlbGVjdENvbXBvbmVudCA/IGl0ZW0uc2VsZWN0Q29tcG9uZW50IDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1TZWxlY3RPcHRpb25zKGl0ZW06IFRhYmxlQWR2YW5jZWRTZWxlY3RDb21wb25lbnQpOiBTZWxlY3RJdGVtRGF0YVtdIHtcclxuICAgIHJldHVybiBpdGVtLnNlbGVjdEl0ZW1Db21wb25lbnRMaXN0ICYmIGl0ZW0uc2VsZWN0SXRlbUNvbXBvbmVudExpc3QubGVuZ3RoID4gMCA/XHJcbiAgICAgIGl0ZW0uc2VsZWN0SXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogaXRlbS5pdGVtcztcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnRDb21wb25lbnQoaXRlbTogVGFibGVBZHZhbmNlZEhlYWRlckNlbGxDb21wb25lbnQpOiBDb250ZW50Q29tcG9uZW50e1xyXG4gICAgcmV0dXJuIGl0ZW0uY29udGVudENvbXBvbmVudCA/IGl0ZW0uY29udGVudENvbXBvbmVudCA6IG51bGw7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogY2hlY2tzXHJcbiAgICovXHJcbiAgaGFuZGxlQ2hlY2tib3hDaGFuZ2Uocm93OiBSb3dEYXRhfFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnQpOiB2b2lkIHtcclxuICAgIGlmIChyb3cgaW5zdGFuY2VvZiBUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50KSB7XHJcbiAgICAgIHJvdy5jaGVja2VkQ2hhbmdlLmVtaXQocm93LmNoZWNrZWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ub3RpZnlDaGVja2VkQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJtaXRlIGRlc21hcmNhciB0b2RhcyBsYXMgZmlsYXNcclxuICAgKi9cclxuICBwcml2YXRlIHVuY2hlY2tBbGwoKTogdm9pZHtcclxuICAgIHRoaXMuZ2V0Um93cygpLmZvckVhY2gociA9PiB7XHJcbiAgICAgIGNvbnN0IG11c3RFbWl0ID0gci5jaGVja2VkICYmIHIgaW5zdGFuY2VvZiBUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50O1xyXG4gICAgICByLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgaWYgKG11c3RFbWl0KSB7XHJcbiAgICAgICAgKHIgYXMgVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudCkuY2hlY2tlZENoYW5nZS5lbWl0KHIuY2hlY2tlZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5ub3RpZnlDaGVja2VkQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBOb3RpZmljYSBjYW1iaW9zIGVuIGxhcyBmaWxhc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgbm90aWZ5Q2hlY2tlZENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJvd0NvbXBvbmVudExpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMucm93c0NoYW5nZS5lbWl0KHRoaXMucm93cyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgcm93Q2hlY2tzOiBhbnkgPSB7fTtcclxuICAgIHRoaXMuZ2V0Um93cygpLmZvckVhY2gociA9PiByb3dDaGVja3Nbci5pZF0gPSAhIXIuY2hlY2tlZCk7IC8vIFNlIGFwbGljYW4gdGFtYmnDqW4gYSBsYXMgbm8gdmlzaWJsZXNcclxuICAgIHRoaXMucm93c0NoZWNrZWQuZW1pdChyb3dDaGVja3MpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIGJ1c3F1ZWRhXHJcbiAgICovXHJcbiAgaGFuZGxlSW5wdXRTZWFyY2goaXRlbTogSGVhZENlbGxNb2RlbERhdGEpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtLmhhc0ZpbHRlcikgeyAvLyBzaSB0aWVuZSBidXNjYWRvclxyXG4gICAgICBpdGVtLmFjdGl2ZUZpbHRlciA9ICEhaXRlbS52YWx1ZUZpbHRlcjtcclxuICAgICAgdGhpcy51bmNoZWNrQWxsKCk7XHJcbiAgICB9XHJcbiAgICBpZihpdGVtLmhhc1NlbGVjdCl7IC8vU2kgdGllbmUgc2VsZWNjaW9uYWJsZVxyXG4gICAgICBpdGVtLmFjdGl2ZVNlbGVjdCA9ICEhaXRlbS52YWx1ZVNlbGVjdDtcclxuICAgICAgdGhpcy51bmNoZWNrQWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZVZpc2libGVFbGVtZW50cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2UgZmlsdHJhbiBsYXMgZmlsYXMgc2Vnw7puIGxvIGVzcGVjaWZpY2FkbyBlbiBsYSBiYXJyYSBkZSBiw7pzcXVlZGEgZGUgY2FkYSBjb2x1bW5hLlxyXG4gICAqIFNpIG5vIGhheSBiw7pzcXVlZGEgc3NlIGRldnVlbHZlbiB0b2RhcyBsYXMgZmlsYXMuXHJcbiAgICogQHBhcmFtIHJlY2FsY3VsYXRlUGFyYW1zIHBhcmFtZXRyb3MgcGFyYSByZWNhbGN1bGFyIGxvcyBlbGVtZW50b3MgdmlzaWJsZXNcclxuICAgKiBAcGFyYW0gcm93cyBsaXN0YSBjb24gdG9kYXMgbGFzIGZpbGFzXHJcbiAgICogQHJldHVybiBsaXN0YSBkZSBmaWxhcyBmaWx0cmFkYVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmlsdGVyUm93cyhyZWNhbGN1bGF0ZVBhcmFtczogUmVjYWxjdWxhdGVUYWJsZVBhcmFtcywgcm93czogUm93RGlyZWN0aXZlW10pOiBSb3dEaXJlY3RpdmVbXSB7XHJcbiAgICBsZXQgZmlsdGVyZWRSb3dzID0gcm93cztcclxuICAgIHJlY2FsY3VsYXRlUGFyYW1zLmZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xyXG4gICAgICBmaWx0ZXJlZFJvd3MgPSBmaWx0ZXJlZFJvd3MuZmlsdGVyKHJvdyA9PlxyXG4gICAgICAgIFNlYXJjaFV0aWxzLmNvbnRhaW5zQW55V29yZEZyb20ocm93LmdldENlbGwoZmlsdGVyLmNvbHVtbkluZGV4KS5nZXRDb250ZW50KCksIGZpbHRlci5maWx0ZXJUZXh0KSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmaWx0ZXJlZFJvd3M7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBvcmRlbmFjaW9uXHJcbiAgICovXHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcm1pdGUgaW5kaWNhciBxdWUgc2UgZGViZSBvcmRlbmFyIGxhIHRhYmxhXHJcbiAgICogQHBhcmFtIGluZGV4IGluZGljZSBkZSBsYSBjb2x1bW5hXHJcbiAgICovXHJcbiAgaGFuZGxlU29ydEJ5Q29sdW1uKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLmdldEhlYWRlckNlbGxzKCk7XHJcbiAgICBpZiAoaGVhZCkge1xyXG4gICAgICBoZWFkLmZvckVhY2goKGNlbGwsIGNlbGxJbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChjZWxsLm9yZGVyQnkpIHtcclxuICAgICAgICAgIGNlbGwub3JkZXJCeSA9IGNlbGxJbmRleCA9PT0gaW5kZXggPyB0aGlzLmdldE5leHREaXJlY3Rpb24oY2VsbCkgOiBPcmRlckJ5Lm5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlY2FsY3VsYXRlVmlzaWJsZUVsZW1lbnRzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogT3JkZW5hIGxhcyBmaWxhcyBpbmRpY2FkYXMgc2Vnw7puIGxhIGNvbHVtbmEgZXNwZWNpZmljYWRhIGVuIGxhIGNhYmVjZXJhXHJcbiAgICogQHBhcmFtIHJlY2FsY3VsYXRlUGFyYW1zIHBhcmFtZXRyb3MgcGFyYSByZWNhbGN1bGFyIGxvcyBlbGVtZW50b3MgdmlzaWJsZXNcclxuICAgKiBAcGFyYW0gcm93cyBmaWxhcyBkZSBsYSB0YWJsYSBhIG9yZGVuYXJcclxuICAgKiBAcmV0dXJuIG1pc21hcyBmaWxhcyBwZXJvIG9yZGVuYWRhcyBwb3IgbGEgY29sdW1uYSBpbmRpY2FkYVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc29ydFJvd3MocmVjYWxjdWxhdGVQYXJhbXM6IFJlY2FsY3VsYXRlVGFibGVQYXJhbXMsIHJvd3M6IFJvd0RpcmVjdGl2ZVtdKTogUm93RGlyZWN0aXZlW10ge1xyXG4gICAgbGV0IHNvcnRlZFJvd3MgPSByb3dzO1xyXG4gICAgaWYgKHJlY2FsY3VsYXRlUGFyYW1zLnNvcnQpIHtcclxuICAgICAgY29uc3QgY29sdW1uSW5kZXggPSByZWNhbGN1bGF0ZVBhcmFtcy5zb3J0LmNvbHVtbkluZGV4O1xyXG4gICAgICBjb25zdCBpc0FzYyA9IHJlY2FsY3VsYXRlUGFyYW1zLnNvcnQub3JkZXIgPT09IE9yZGVyQnkuYXNjO1xyXG4gICAgICBzb3J0ZWRSb3dzID0gcm93cy5zb3J0KChhLCBiKSA9PlxyXG4gICAgICAgIHRoaXMuY29tcGFyZUNlbGxDb250ZW50KGEuZ2V0Q2VsbChjb2x1bW5JbmRleCksIGIuZ2V0Q2VsbChjb2x1bW5JbmRleCksIGlzQXNjKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHNvcnRlZFJvd3M7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wYXJhIGVsIGNvbnRlbmlkbyBkZSBkb3MgY2VsZGFzLiBFc3RlIHNlIGludmllcnRlIHNpIGVsIG9yZGVuIGVzcGVjaWZpY2FkbyBlcyBkZXNjZW5kZW50ZS5cclxuICAgKi9cclxuICBjb21wYXJlQ2VsbENvbnRlbnQoYTogQ2VsbERpcmVjdGl2ZSwgYjogQ2VsbERpcmVjdGl2ZSwgaXNBc2M6IGJvb2xlYW4pOiBudW1iZXJ7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgY29uc3QgYUNvbXBhcmFibGUgPSB0aGlzLmNsZWFuQ3VycmVuY3koYS5nZXRDb250ZW50KCkpO1xyXG4gICAgY29uc3QgYkNvbXBhcmFibGUgPSB0aGlzLmNsZWFuQ3VycmVuY3koYi5nZXRDb250ZW50KCkpO1xyXG5cclxuICAgIGlmIChpc05hTigrYUNvbXBhcmFibGUpICYmIGlzTmFOKCtiQ29tcGFyYWJsZSkgKSB7IC8vIHNvbiB0ZXh0b3NcclxuICAgICAgcmVzdWx0ID0gYUNvbXBhcmFibGUubG9jYWxlQ29tcGFyZShiQ29tcGFyYWJsZSwgJ2VzJywgeyBzZW5zaXRpdml0eTogJ2Jhc2UnLCBpZ25vcmVQdW5jdHVhdGlvbjogdHJ1ZSB9KTtcclxuICAgIH1lbHNleyAvLyBzb24gbnVtZXJvc1xyXG4gICAgICByZXN1bHQgPSBhQ29tcGFyYWJsZS5sb2NhbGVDb21wYXJlKGJDb21wYXJhYmxlLCB1bmRlZmluZWQsIHsgbnVtZXJpYzogdHJ1ZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0ICogKGlzQXNjID8gMSA6IC0xKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIHNlIGNhbGN1bGEgbGEgb3JkZW5hY2nDs24gbnVldmFcclxuICAgKi9cclxuICBwcml2YXRlIGdldE5leHREaXJlY3Rpb24oaXRlbTogSGVhZENlbGxNb2RlbERhdGEpOiBPcmRlckJ5IHtcclxuICAgIGlmIChpdGVtLm9yZGVyQnkgPT09IE9yZGVyQnkubm9uZSB8fCBpdGVtLm9yZGVyQnkgPT09IE9yZGVyQnkuZGVzYykge1xyXG4gICAgICByZXR1cm4gT3JkZXJCeS5hc2M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gT3JkZXJCeS5kZXNjO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogc2kgZXMgdW5hIGNhbnRpZGFkIGRlIGRpbmVybyBzZSBxdWl0YSDigqwgcGFyYSBwb2RlciBjb21wYXJhciBsb3MgbnVtZXJvc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgY2xlYW5DdXJyZW5jeSh0eHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoL1tcXGQuLF0rW1xc4oKsXS9nLnRlc3QodHh0KSkge1xyXG4gICAgICB0eHQgPSB0eHQucmVwbGFjZSgv4oKsL2csICcnKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0eHQ7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGaWx0ZXIoaXRlbTogVGFibGVBZHZhbmNlZFNlbGVjdENvbXBvbmVudCwgaXRlbVZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGl0ZW0udmFsdWVDaGFuZ2UuZW1pdChpdGVtVmFsdWUpO1xyXG5cclxuICAgIGNvbnN0IGhlYWQgPSB0aGlzLmdldEhlYWRlckNlbGxzKCk7XHJcbiAgICBjb25zdCByb3dzID0gdGhpcy5nZXRSb3dzKCk7XHJcbiAgICBpZiAoaGVhZCAmJiByb3dzKSB7XHJcbiAgICAgIGhlYWQuZm9yRWFjaCgoY2VsbDogVGFibGVBZHZhbmNlZEhlYWRlckNlbGxDb21wb25lbnQsIGNlbGxJbmRleCkgPT4ge1xyXG4gICAgICB9KTtcclxuICAgICAgcm93cy5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -17,6 +17,7 @@ import { TableAdvancedRowComponent } from './components/table-advanced/component
17
17
  import { CellDirective } from './directives/cell.directive';
18
18
  import { RowDirective } from './directives/row.directive';
19
19
  import { TableAdvancedRowCellComponent } from './components/table-advanced/components/table-advanced-row-cell.component';
20
+ import { TableAdvancedSelectComponent } from './components/table-advanced/components/table-advanced-select.component';
20
21
  export class DesyTablesModule {
21
22
  }
22
23
  DesyTablesModule.decorators = [
@@ -32,6 +33,7 @@ DesyTablesModule.decorators = [
32
33
  TableAdvancedHeaderCellComponent,
33
34
  TableAdvancedRowComponent,
34
35
  TableAdvancedRowCellComponent,
36
+ TableAdvancedSelectComponent,
35
37
  FocusClickedCellDirective,
36
38
  CellDirective,
37
39
  RowDirective,
@@ -54,8 +56,9 @@ DesyTablesModule.decorators = [
54
56
  TableAdvancedHeaderComponent,
55
57
  TableAdvancedHeaderCellComponent,
56
58
  TableAdvancedRowComponent,
57
- TableAdvancedRowCellComponent
59
+ TableAdvancedRowCellComponent,
60
+ TableAdvancedSelectComponent
58
61
  ]
59
62
  },] }
60
63
  ];
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS10YWJsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS10YWJsZXMvZGVzeS10YWJsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDL0gsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQXlDdkgsTUFBTSxPQUFPLGdCQUFnQjs7O1lBdEM1QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGNBQWM7b0JBQ2QscUJBQXFCO29CQUNyQixrQkFBa0I7b0JBQ2xCLG9CQUFvQjtvQkFDcEIsaUJBQWlCO29CQUNqQixzQkFBc0I7b0JBQ3RCLDRCQUE0QjtvQkFDNUIsZ0NBQWdDO29CQUNoQyx5QkFBeUI7b0JBQ3pCLDZCQUE2QjtvQkFFN0IseUJBQXlCO29CQUN6QixhQUFhO29CQUNiLFlBQVk7aUJBQ2I7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLFVBQVU7b0JBQ1YsWUFBWTtvQkFDWixlQUFlO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsY0FBYztvQkFDZCxxQkFBcUI7b0JBQ3JCLGtCQUFrQjtvQkFDbEIsb0JBQW9CO29CQUNwQixpQkFBaUI7b0JBQ2pCLHNCQUFzQjtvQkFDdEIsNEJBQTRCO29CQUM1QixnQ0FBZ0M7b0JBQ2hDLHlCQUF5QjtvQkFDekIsNkJBQTZCO2lCQUM5QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcclxuaW1wb3J0IHsgRGVzeUZvcm1zTW9kdWxlIH0gZnJvbSAnLi4vZGVzeS1mb3Jtcy9kZXN5LWZvcm1zLm1vZHVsZSc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL3RhYmxlLWFkdmFuY2VkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvY3VzQ2xpY2tlZENlbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9jdXMtY2xpY2tlZC1jZWxsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWNlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVDYXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2FwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtaGVhZGVyLWNlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLXJvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NlbGwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUm93RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jvdy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1RhYmxlQWR2YW5jZWRSb3dDZWxsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQvY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC1yb3ctY2VsbC5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIFRhYmxlQ2FwdGlvbkNvbXBvbmVudCxcclxuICAgIFRhYmxlQ2VsbENvbXBvbmVudCxcclxuICAgIFRhYmxlSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgVGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZUFkdmFuY2VkQ29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZEhlYWRlckNvbXBvbmVudCxcclxuICAgIFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlQWR2YW5jZWRSb3dDZWxsQ29tcG9uZW50LFxyXG5cclxuICAgIEZvY3VzQ2xpY2tlZENlbGxEaXJlY3RpdmUsXHJcbiAgICBDZWxsRGlyZWN0aXZlLFxyXG4gICAgUm93RGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgQTExeU1vZHVsZSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxuICAgIERlc3lGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVGFibGVDb21wb25lbnQsXHJcbiAgICBUYWJsZUNhcHRpb25Db21wb25lbnQsXHJcbiAgICBUYWJsZUNlbGxDb21wb25lbnQsXHJcbiAgICBUYWJsZUhlYWRlckNvbXBvbmVudCxcclxuICAgIFRhYmxlUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZENvbXBvbmVudCxcclxuICAgIFRhYmxlQWR2YW5jZWRIZWFkZXJDb21wb25lbnQsXHJcbiAgICBUYWJsZUFkdmFuY2VkSGVhZGVyQ2VsbENvbXBvbmVudCxcclxuICAgIFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZUFkdmFuY2VkUm93Q2VsbENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERlc3lUYWJsZXNNb2R1bGUgeyB9XHJcbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS10YWJsZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS10YWJsZXMvZGVzeS10YWJsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFDL0gsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQTJDdEgsTUFBTSxPQUFPLGdCQUFnQjs7O1lBeEM1QixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLGNBQWM7b0JBQ2QscUJBQXFCO29CQUNyQixrQkFBa0I7b0JBQ2xCLG9CQUFvQjtvQkFDcEIsaUJBQWlCO29CQUNqQixzQkFBc0I7b0JBQ3RCLDRCQUE0QjtvQkFDNUIsZ0NBQWdDO29CQUNoQyx5QkFBeUI7b0JBQ3pCLDZCQUE2QjtvQkFDN0IsNEJBQTRCO29CQUU1Qix5QkFBeUI7b0JBQ3pCLGFBQWE7b0JBQ2IsWUFBWTtpQkFDYjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsVUFBVTtvQkFDVixZQUFZO29CQUNaLGVBQWU7aUJBQ2hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxjQUFjO29CQUNkLHFCQUFxQjtvQkFDckIsa0JBQWtCO29CQUNsQixvQkFBb0I7b0JBQ3BCLGlCQUFpQjtvQkFDakIsc0JBQXNCO29CQUN0Qiw0QkFBNEI7b0JBQzVCLGdDQUFnQztvQkFDaEMseUJBQXlCO29CQUN6Qiw2QkFBNkI7b0JBQzdCLDRCQUE0QjtpQkFDN0I7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcbmltcG9ydCB7IERlc3lGb3Jtc01vZHVsZSB9IGZyb20gJy4uL2Rlc3ktZm9ybXMvZGVzeS1mb3Jtcy5tb2R1bGUnO1xyXG5cclxuaW1wb3J0IHsgVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVBZHZhbmNlZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC90YWJsZS1hZHZhbmNlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb2N1c0NsaWNrZWRDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2ZvY3VzLWNsaWNrZWQtY2VsbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlUm93Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtcm93LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ2FwdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS9jb21wb25lbnRzL3RhYmxlLWNhcHRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVBZHZhbmNlZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZUFkdmFuY2VkSGVhZGVyQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLWhlYWRlci1jZWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQWR2YW5jZWRSb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQvY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC1yb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jZWxsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJvd0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yb3cuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtUYWJsZUFkdmFuY2VkUm93Q2VsbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkL2NvbXBvbmVudHMvdGFibGUtYWR2YW5jZWQtcm93LWNlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVBZHZhbmNlZFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1hZHZhbmNlZC9jb21wb25lbnRzL3RhYmxlLWFkdmFuY2VkLXNlbGVjdC5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUYWJsZUNvbXBvbmVudCxcclxuICAgIFRhYmxlQ2FwdGlvbkNvbXBvbmVudCxcclxuICAgIFRhYmxlQ2VsbENvbXBvbmVudCxcclxuICAgIFRhYmxlSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgVGFibGVSb3dDb21wb25lbnQsXHJcbiAgICBUYWJsZUFkdmFuY2VkQ29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZEhlYWRlckNvbXBvbmVudCxcclxuICAgIFRhYmxlQWR2YW5jZWRIZWFkZXJDZWxsQ29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZFJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlQWR2YW5jZWRSb3dDZWxsQ29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZFNlbGVjdENvbXBvbmVudCxcclxuXHJcbiAgICBGb2N1c0NsaWNrZWRDZWxsRGlyZWN0aXZlLFxyXG4gICAgQ2VsbERpcmVjdGl2ZSxcclxuICAgIFJvd0RpcmVjdGl2ZSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEExMXlNb2R1bGUsXHJcbiAgICBTaGFyZWRNb2R1bGUsXHJcbiAgICBEZXN5Rm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRhYmxlQ29tcG9uZW50LFxyXG4gICAgVGFibGVDYXB0aW9uQ29tcG9uZW50LFxyXG4gICAgVGFibGVDZWxsQ29tcG9uZW50LFxyXG4gICAgVGFibGVIZWFkZXJDb21wb25lbnQsXHJcbiAgICBUYWJsZVJvd0NvbXBvbmVudCxcclxuICAgIFRhYmxlQWR2YW5jZWRDb21wb25lbnQsXHJcbiAgICBUYWJsZUFkdmFuY2VkSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZEhlYWRlckNlbGxDb21wb25lbnQsXHJcbiAgICBUYWJsZUFkdmFuY2VkUm93Q29tcG9uZW50LFxyXG4gICAgVGFibGVBZHZhbmNlZFJvd0NlbGxDb21wb25lbnQsXHJcbiAgICBUYWJsZUFkdmFuY2VkU2VsZWN0Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVzeVRhYmxlc01vZHVsZSB7IH1cclxuIl19
@@ -4,4 +4,4 @@ export var OrderBy;
4
4
  OrderBy["asc"] = "asc";
5
5
  OrderBy["desc"] = "desc";
6
6
  })(OrderBy || (OrderBy = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXRhYmxlcy9pbnRlcmZhY2VzL2hlYWQtY2VsbC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sQ0FBTixJQUFZLE9BSVg7QUFKRCxXQUFZLE9BQU87SUFDZix3QkFBYSxDQUFBO0lBQ2Isc0JBQVcsQ0FBQTtJQUNYLHdCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUpXLE9BQU8sS0FBUCxPQUFPLFFBSWxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2VsbERhdGEgfSBmcm9tICcuL2NlbGwtZGF0YSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRDZWxsRGF0YSBleHRlbmRzIENlbGxEYXRhIHtcclxuICAgIG9yZGVyQnk/OiBPcmRlckJ5OyAvLyBQb3NzaWJsZSB2YWx1ZXMgYG5vbmVgLCBgYXNjYCwgYGRlc2NgLlxyXG4gICAgaGFzRmlsdGVyPzogYm9vbGVhbjtcclxuICAgIGZpbHRlckNsYXNzZXM/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGVhZENlbGxNb2RlbERhdGEgZXh0ZW5kcyBIZWFkQ2VsbERhdGEge1xyXG4gICAgdmFsdWVGaWx0ZXI/OiBzdHJpbmc7XHJcbiAgICBhY3RpdmVGaWx0ZXI/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBPcmRlckJ5IHtcclxuICAgIG5vbmUgPSAnbm9uZScsXHJcbiAgICBhc2MgPSAnYXNjJyxcclxuICAgIGRlc2MgPSAnZGVzYydcclxufVxyXG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1jZWxsLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXRhYmxlcy9pbnRlcmZhY2VzL2hlYWQtY2VsbC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCQSxNQUFNLENBQU4sSUFBWSxPQUlYO0FBSkQsV0FBWSxPQUFPO0lBQ2Ysd0JBQWEsQ0FBQTtJQUNiLHNCQUFXLENBQUE7SUFDWCx3QkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxPQUFPLEtBQVAsT0FBTyxRQUlsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENlbGxEYXRhIH0gZnJvbSAnLi9jZWxsLWRhdGEnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkQ2VsbERhdGEgZXh0ZW5kcyBDZWxsRGF0YSB7XHJcbiAgICBvcmRlckJ5PzogT3JkZXJCeTsgLy8gUG9zc2libGUgdmFsdWVzIGBub25lYCwgYGFzY2AsIGBkZXNjYC5cclxuICAgIGhhc0ZpbHRlcj86IGJvb2xlYW47XHJcbiAgICBmaWx0ZXJDbGFzc2VzPzogc3RyaW5nO1xyXG4gICAgaGFzU2VsZWN0PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkQ2VsbE1vZGVsRGF0YSBleHRlbmRzIEhlYWRDZWxsRGF0YSB7XHJcbiAgICB2YWx1ZUZpbHRlcj86IHN0cmluZztcclxuICAgIGFjdGl2ZUZpbHRlcj86IGJvb2xlYW47XHJcbiAgICB2YWx1ZVNlbGVjdD86IHN0cmluZztcclxuICAgIGFjdGl2ZVNlbGVjdD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE9yZGVyQnkge1xyXG4gICAgbm9uZSA9ICdub25lJyxcclxuICAgIGFzYyA9ICdhc2MnLFxyXG4gICAgZGVzYyA9ICdkZXNjJ1xyXG59XHJcbiJdfQ==
@@ -11,4 +11,4 @@ AccordionHeaderComponent.decorators = [
11
11
  AccordionHeaderComponent.propDecorators = {
12
12
  classes: [{ type: Input }]
13
13
  };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXZpZXdzL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1oZWFkZXIvYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFPbkUsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjs7O1lBSmpFLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxRQUFRLEVBQUUsdUVBQXVFO2FBQ2xGOzs7c0JBR0UsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtBY2NvcmRpb25IZWFkZXJEYXRhfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1hY2NvcmRpb24taGVhZGVyJyxcclxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPidcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWNjb3JkaW9uSGVhZGVyRGF0YSB7XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzZXM/OiBzdHJpbmc7XHJcblxyXG59XHJcbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXZpZXdzL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi1oZWFkZXIvYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBbUIsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBT25FLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7OztZQUpqRSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFLHVFQUF1RTthQUNsRjs7O3NCQUdFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtBY2NvcmRpb25IZWFkZXJEYXRhfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1hY2NvcmRpb24taGVhZGVyJyxcclxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPidcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkhlYWRlckNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWNjb3JkaW9uSGVhZGVyRGF0YSB7XHJcblxyXG4gIEBJbnB1dCgpIGNsYXNzZXM/OiBzdHJpbmc7XHJcblxyXG59XHJcbiJdfQ==
@@ -4,6 +4,8 @@ import { AccordionHeaderComponent } from '../accordion-header/accordion-header.c
4
4
  import { DesyContentChild } from '../../../../shared/decorators/desy-content-child.decorator';
5
5
  import { ContentComponent } from '../../../../desy-commons/components/content/content.component';
6
6
  import { AccessibilityComponent } from '../../../../shared/components';
7
+ import { AccordionItemShowButtonComponent } from '../../accordion-history/accordion-item-show-button/accordion-item-show-button.component';
8
+ import { AccordionItemHideButtonComponent } from '../../accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';
7
9
  export class AccordionItemComponent extends AccessibilityComponent {
8
10
  constructor() {
9
11
  super(...arguments);
@@ -22,7 +24,9 @@ AccordionItemComponent.propDecorators = {
22
24
  classes: [{ type: Input }],
23
25
  openChange: [{ type: Output }],
24
26
  headerComponent: [{ type: ContentChildren, args: [AccordionHeaderComponent,] }],
25
- contentComponent: [{ type: ContentChildren, args: [ContentComponent,] }]
27
+ contentComponent: [{ type: ContentChildren, args: [ContentComponent,] }],
28
+ showHeaderButton: [{ type: ContentChildren, args: [AccordionItemShowButtonComponent,] }],
29
+ hideHeaderButton: [{ type: ContentChildren, args: [AccordionItemHideButtonComponent,] }]
26
30
  };
27
31
  __decorate([
28
32
  DesyContentChild()
@@ -30,4 +34,10 @@ __decorate([
30
34
  __decorate([
31
35
  DesyContentChild()
32
36
  ], AccordionItemComponent.prototype, "contentComponent", void 0);
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBTXJFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxzQkFBc0I7SUFKbEU7O1FBVVksZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBUTVFLENBQUM7OztZQWxCQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFLEVBQUU7YUFDYjs7O2lCQUdFLEtBQUs7bUJBQ0wsS0FBSztzQkFDTCxLQUFLO3lCQUVMLE1BQU07OEJBR04sZUFBZSxTQUFDLHdCQUF3QjsrQkFHeEMsZUFBZSxTQUFDLGdCQUFnQjs7QUFIVTtJQUQxQyxnQkFBZ0IsRUFBRTsrREFDa0U7QUFHbEQ7SUFEbEMsZ0JBQWdCLEVBQUU7Z0VBQ21EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBY2NvcmRpb25JdGVtRGF0YX0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7QWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50fSBmcm9tICcuLi9hY2NvcmRpb24taGVhZGVyL2FjY29yZGlvbi1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtEZXN5Q29udGVudENoaWxkfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LWNvbnRlbnQtY2hpbGQuZGVjb3JhdG9yJztcclxuaW1wb3J0IHtDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9kZXN5LWNvbW1vbnMvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtBY2Nlc3NpYmlsaXR5Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktYWNjb3JkaW9uLWl0ZW0nLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgQWNjb3JkaW9uSXRlbURhdGEge1xyXG5cclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25IZWFkZXJDb21wb25lbnQpIGhlYWRlckNvbXBvbmVudDogQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50O1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihDb250ZW50Q29tcG9uZW50KSBjb250ZW50Q29tcG9uZW50OiBDb250ZW50Q29tcG9uZW50O1xyXG5cclxufVxyXG4iXX0=
37
+ __decorate([
38
+ DesyContentChild()
39
+ ], AccordionItemComponent.prototype, "showHeaderButton", void 0);
40
+ __decorate([
41
+ DesyContentChild()
42
+ ], AccordionItemComponent.prototype, "hideHeaderButton", void 0);
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS12aWV3cy9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHlGQUF5RixDQUFDO0FBQ3pJLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHlGQUF5RixDQUFDO0FBTXpJLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxzQkFBc0I7SUFKbEU7O1FBVVksZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBYzVFLENBQUM7OztZQXhCQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFLEVBQUU7YUFDYjs7O2lCQUdFLEtBQUs7bUJBQ0wsS0FBSztzQkFDTCxLQUFLO3lCQUVMLE1BQU07OEJBR04sZUFBZSxTQUFDLHdCQUF3QjsrQkFHeEMsZUFBZSxTQUFDLGdCQUFnQjsrQkFHaEMsZUFBZSxTQUFDLGdDQUFnQzsrQkFHaEQsZUFBZSxTQUFDLGdDQUFnQzs7QUFUTjtJQUQxQyxnQkFBZ0IsRUFBRTsrREFDa0U7QUFHbEQ7SUFEbEMsZ0JBQWdCLEVBQUU7Z0VBQ21EO0FBR25CO0lBRGxELGdCQUFnQixFQUFFO2dFQUNtRjtBQUduRDtJQURsRCxnQkFBZ0IsRUFBRTtnRUFDbUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWNjb3JkaW9uSXRlbURhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0FjY29yZGlvbkhlYWRlckNvbXBvbmVudH0gZnJvbSAnLi4vYWNjb3JkaW9uLWhlYWRlci9hY2NvcmRpb24taGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7Q29udGVudENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QWNjZXNzaWJpbGl0eUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQge0FjY29yZGlvbkl0ZW1TaG93QnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hY2NvcmRpb24taGlzdG9yeS9hY2NvcmRpb24taXRlbS1zaG93LWJ1dHRvbi9hY2NvcmRpb24taXRlbS1zaG93LWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0FjY29yZGlvbkl0ZW1IaWRlQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi9hY2NvcmRpb24taGlzdG9yeS9hY2NvcmRpb24taXRlbS1oaWRlLWJ1dHRvbi9hY2NvcmRpb24taXRlbS1oaWRlLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LWFjY29yZGlvbi1pdGVtJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25JdGVtQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIEFjY29yZGlvbkl0ZW1EYXRhIHtcclxuXHJcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBvcGVuOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KSBoZWFkZXJDb21wb25lbnQ6IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudDtcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQ29udGVudENvbXBvbmVudCkgY29udGVudENvbXBvbmVudDogQ29udGVudENvbXBvbmVudDtcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSXRlbVNob3dCdXR0b25Db21wb25lbnQpIHNob3dIZWFkZXJCdXR0b246IEFjY29yZGlvbkl0ZW1TaG93QnV0dG9uQ29tcG9uZW50O1xyXG4gIFxyXG4gIEBEZXN5Q29udGVudENoaWxkKClcclxuICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvbkl0ZW1IaWRlQnV0dG9uQ29tcG9uZW50KSBoaWRlSGVhZGVyQnV0dG9uOiBBY2NvcmRpb25JdGVtSGlkZUJ1dHRvbkNvbXBvbmVudDtcclxuXHJcbn1cclxuIl19
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, ContentChildren, Input, ViewChildren } from '@angular/core';
2
+ import { Component, ContentChildren, HostBinding, Input, ViewChildren } from '@angular/core';
3
3
  import { AccessibilityComponent } from '../../../shared/components';
4
4
  import { AccordionHeaderComponent } from './accordion-header/accordion-header.component';
5
5
  import { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';
@@ -10,9 +10,19 @@ export class AccordionComponent extends AccessibilityComponent {
10
10
  this.showAll = true;
11
11
  }
12
12
  ngOnChanges(changes) {
13
- if (!this.idPrefix) {
14
- throw new Error(`idPrefix is required`);
15
- }
13
+ this.roleData = this.role ? this.role : null;
14
+ this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;
15
+ this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;
16
+ this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;
17
+ this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;
18
+ this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;
19
+ this.ariaControlsData = this.ariaControls ? this.ariaControls : null;
20
+ this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;
21
+ this.ariaLiveData = this.ariaLive ? this.ariaLive : null;
22
+ this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;
23
+ this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;
24
+ this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;
25
+ this.ariaModalData = this.ariaModal ? this.ariaModal : null;
16
26
  }
17
27
  getItemId(item, index) {
18
28
  let id;
@@ -96,9 +106,6 @@ export class AccordionComponent extends AccessibilityComponent {
96
106
  }
97
107
  getItems() {
98
108
  const items = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;
99
- if (!items || items.length === 0) {
100
- throw new Error(`items are required`);
101
- }
102
109
  return items;
103
110
  }
104
111
  getItemHeader(item) {
@@ -107,14 +114,11 @@ export class AccordionComponent extends AccessibilityComponent {
107
114
  getItemContent(item) {
108
115
  return item instanceof AccordionItemComponent ? item.contentComponent : null;
109
116
  }
110
- handleRequiredEmpty(text) {
111
- throw new Error(text);
112
- }
113
117
  }
114
118
  AccordionComponent.decorators = [
115
119
  { type: Component, args: [{
116
120
  selector: 'desy-accordion',
117
- template: "<div [class]=\"classes\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div class=\"flex justify-between\">\r\n <ng-container *ngIf=\"headingComponent || heading\">\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\r\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus\">\r\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"Accordion\">\r\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\r\n (keydown.home)=\"focusFirstItem($event)\"\r\n (keydown.end)=\"focusLastItem($event)\"\r\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\r\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\r\n (click)=\"selectItem(i)\">\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\r\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\r\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\r\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\r\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\r\n </ng-container>\r\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\r\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item content, html or text are required at position ' + i)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.role]=\"(item.role ? role : 'accordion')\"\r\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\r\n <button #itemSelector [id]=\"id + '-title'\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item heading content, html or text are required at position ' + index)\"\r\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\r\n <span #desyContentEmptyIgnore *ngIf=\"allowToggle || !item.open\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\">\r\n {{ item.open ? 'Ocultar' : 'Mostrar' }}\r\n </span>\r\n </button>\r\n</ng-template>\r\n"
121
+ template: "\r\n <div class=\"flex justify-between\">\r\n <ng-container *ngIf=\"headingComponent || heading\">\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\r\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus\">\r\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"Accordion\">\r\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\r\n (keydown.home)=\"focusFirstItem($event)\"\r\n (keydown.end)=\"focusLastItem($event)\"\r\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\r\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\r\n (click)=\"selectItem(i)\">\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\r\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\r\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\r\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\r\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\r\n </ng-container>\r\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\r\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\r\n [class]=\"item.classes\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.role]=\"(item.role ? role : 'accordion')\" \r\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\r\n <button #itemSelector [id]=\"id + '-title'\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\r\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\r\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\r\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \r\n </span>\r\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\r\n </span>\r\n </span>\r\n </button>\r\n</ng-template>\r\n"
118
122
  },] }
119
123
  ];
120
124
  AccordionComponent.propDecorators = {
@@ -126,11 +130,24 @@ AccordionComponent.propDecorators = {
126
130
  headingLevel: [{ type: Input }],
127
131
  showControl: [{ type: Input }],
128
132
  items: [{ type: Input }],
129
- classes: [{ type: Input }],
133
+ classes: [{ type: Input }, { type: HostBinding, args: ['class',] }],
134
+ roleData: [{ type: HostBinding, args: ['attr.role',] }],
135
+ ariaLabelData: [{ type: HostBinding, args: ['attr.aria-label',] }],
136
+ ariaDescribedbyData: [{ type: HostBinding, args: ['attr.aria-describedby',] }],
137
+ ariaLabelledbyData: [{ type: HostBinding, args: ['attr.aria-labelledby',] }],
138
+ ariaHiddenData: [{ type: HostBinding, args: ['attr.aria-hidden',] }],
139
+ ariaDisabledData: [{ type: HostBinding, args: ['attr.aria-disabled',] }],
140
+ ariaControlsData: [{ type: HostBinding, args: ['attr.aria-controls',] }],
141
+ ariaCurrentData: [{ type: HostBinding, args: ['attr.aria-current',] }],
142
+ ariaLiveData: [{ type: HostBinding, args: ['attr.aria-live',] }],
143
+ ariaExpandedData: [{ type: HostBinding, args: ['attr.aria-expanded',] }],
144
+ ariaErrormessageData: [{ type: HostBinding, args: ['attr.aria-errormessage',] }],
145
+ ariaHaspopupData: [{ type: HostBinding, args: ['attr.aria-haspopup',] }],
146
+ ariaModalData: [{ type: HostBinding, args: ['attr.aria-modal',] }],
130
147
  headingComponent: [{ type: ContentChildren, args: [AccordionHeaderComponent,] }],
131
148
  itemComponentList: [{ type: ContentChildren, args: [AccordionItemComponent,] }]
132
149
  };
133
150
  __decorate([
134
151
  DesyContentChild()
135
152
  ], AccordionComponent.prototype, "headingComponent", void 0);
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQWMsS0FBSyxFQUF1QyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFL0gsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFbEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFRakYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHNCQUFzQjtJQUo5RDs7UUFxQkUsWUFBTyxHQUFHLElBQUksQ0FBQztJQWtIakIsQ0FBQztJQS9HQyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBYTtRQUMzQixJQUFJLEVBQUUsQ0FBQztRQUNQLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2Q7YUFBTTtZQUNMLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtnQkFDZixFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQ2hE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LENBQUMsS0FBSyxDQUFDO1FBQzFILElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQXVCO1FBQ25DLE9BQU8sSUFBSSxZQUFZLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUUsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUF1QjtRQUNwQyxPQUFPLElBQUksWUFBWSxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDL0UsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQVk7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDOzs7WUF0SUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLHExTkFBeUM7YUFDMUM7Ozs0QkFHRSxZQUFZLFNBQUMsY0FBYzt1QkFFM0IsS0FBSzswQkFDTCxLQUFLOzRCQUNMLEtBQUs7c0JBQ0wsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSztzQkFDTCxLQUFLOytCQUdMLGVBQWUsU0FBQyx3QkFBd0I7Z0NBQ3hDLGVBQWUsU0FBQyxzQkFBc0I7O0FBREk7SUFEMUMsZ0JBQWdCLEVBQUU7NERBQ21FIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGRyZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjY29yZGlvbkhlYWRlckRhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0FjY2Vzc2liaWxpdHlDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtBY2NvcmRpb25JdGVtRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7QWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50fSBmcm9tICcuL2FjY29yZGlvbi1oZWFkZXIvYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Rlc3lDb250ZW50Q2hpbGR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xyXG5pbXBvcnQge0FjY29yZGlvbkl0ZW1Db21wb25lbnR9IGZyb20gJy4vYWNjb3JkaW9uLWl0ZW0vYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb250ZW50Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9kZXN5LWNvbW1vbnMvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQuY29tcG9uZW50JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktYWNjb3JkaW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2l0ZW1TZWxlY3RvcicpIGl0ZW1TZWxlY3RvcnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcclxuXHJcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcclxuICBASW5wdXQoKSBhbGxvd1RvZ2dsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhbGxvd011bHRpcGxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhlYWRpbmc6IEFjY29yZGlvbkhlYWRlckRhdGE7XHJcbiAgQElucHV0KCkgaGVhZGluZ0xldmVsO1xyXG4gIEBJbnB1dCgpIHNob3dDb250cm9sOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBBY2NvcmRpb25JdGVtRGF0YVtdO1xyXG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KSBoZWFkaW5nQ29tcG9uZW50OiBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQ7XHJcbiAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25JdGVtQ29tcG9uZW50KSBpdGVtQ29tcG9uZW50TGlzdDogUXVlcnlMaXN0PEFjY29yZGlvbkl0ZW1Db21wb25lbnQ+O1xyXG5cclxuICBzaG93QWxsID0gdHJ1ZTtcclxuICBjdXJyZW50SXRlbTogbnVtYmVyO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaWRQcmVmaXgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpZFByZWZpeCBpcyByZXF1aXJlZGApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUlkKGl0ZW0sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IGlkO1xyXG4gICAgaWYgKGl0ZW0uaWQpIHtcclxuICAgICAgaWQgPSBpdGVtLmlkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgaWQgPSB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6IHVuZGVmaW5lZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZCA9IHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4ICsgJy0nICsgaW5kZXggOiBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlkO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlQWxsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XHJcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCBpc0NoYW5nZSA9IGl0ZW0ub3BlbiAhPT0gdGhpcy5zaG93QWxsO1xyXG4gICAgICBpdGVtLm9wZW4gPSB0aGlzLnNob3dBbGw7XHJcbiAgICAgIGlmIChpc0NoYW5nZSAmJiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xyXG4gICAgICAgIGl0ZW0ub3BlbkNoYW5nZS5lbWl0KGl0ZW0ub3Blbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zaG93QWxsID0gIXRoaXMuc2hvd0FsbDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUl0ZW0oaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiB2b2lkIHtcclxuICAgIGlmICghaXRlbS5vcGVuIHx8IHRoaXMuYWxsb3dUb2dnbGUpIHtcclxuICAgICAgY29uc3QgbmV3T3BlblZhbHVlID0gIWl0ZW0ub3BlbjtcclxuICAgICAgaWYgKCF0aGlzLmFsbG93TXVsdGlwbGUpIHtcclxuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ID0+IHtcclxuICAgICAgICAgIGNvbnN0IHdhc09wZW4gPSBpdC5vcGVuO1xyXG4gICAgICAgICAgaXQub3BlbiA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHdhc09wZW4gJiYgaXQgIT09IGl0ZW0gJiYgaXQgaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIGl0Lm9wZW5DaGFuZ2UuZW1pdChpdC5vcGVuKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtLm9wZW4gPSBuZXdPcGVuVmFsdWU7XHJcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xyXG4gICAgICAgIGl0ZW0ub3BlbkNoYW5nZS5lbWl0KGl0ZW0ub3Blbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzRmlyc3RJdGVtKGV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0xhc3RJdGVtKGV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKVt0aGlzLml0ZW1TZWxlY3RvcnMubGVuZ3RoIC0gMV0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNOZXh0SXRlbShldmVudCwgZm9jdXNlZEl0ZW06IG51bWJlcik6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XHJcbiAgICBpZiAoc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIDEpICUgc2VsZWN0b3JzLmxlbmd0aF0gIT0gbnVsbCkge1xyXG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb2N1c1ByZXZpb3VzSXRlbShldmVudCwgZm9jdXNlZEl0ZW06IG51bWJlcik6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XHJcbiAgICBpZiAoc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIHNlbGVjdG9ycy5sZW5ndGggLSAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcclxuICAgICAgc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIHNlbGVjdG9ycy5sZW5ndGggLSAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW0oIGk6IG51bWJlciApOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudEl0ZW0gPSBpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGVDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgY2xhc3NlcyA9ICdjLWgyIG1iLWJhc2UnO1xyXG4gICAgaWYgKHRoaXMuaGVhZGluZ0NvbXBvbmVudCAmJiB0aGlzLmhlYWRpbmdDb21wb25lbnQuY2xhc3Nlcykge1xyXG4gICAgICBjbGFzc2VzID0gdGhpcy5oZWFkaW5nQ29tcG9uZW50LmNsYXNzZXM7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZGluZyAmJiB0aGlzLmhlYWRpbmcuY2xhc3Nlcykge1xyXG4gICAgICBjbGFzc2VzID0gdGhpcy5oZWFkaW5nLmNsYXNzZXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2xhc3NlcztcclxuICB9XHJcblxyXG4gIGdldEl0ZW1zKCk6IEFjY29yZGlvbkl0ZW1EYXRhW10ge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1Db21wb25lbnRMaXN0ICYmIHRoaXMuaXRlbUNvbXBvbmVudExpc3QubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogdGhpcy5pdGVtcztcclxuICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaXRlbXMgYXJlIHJlcXVpcmVkYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtSGVhZGVyKGl0ZW06IEFjY29yZGlvbkl0ZW1EYXRhKTogQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50IHtcclxuICAgIHJldHVybiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCA/IGl0ZW0uaGVhZGVyQ29tcG9uZW50IDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1Db250ZW50KGl0ZW06IEFjY29yZGlvbkl0ZW1EYXRhKTogQ29udGVudENvbXBvbmVudCB7XHJcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIEFjY29yZGlvbkl0ZW1Db21wb25lbnQgPyBpdGVtLmNvbnRlbnRDb21wb25lbnQgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVxdWlyZWRFbXB0eSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcih0ZXh0KTtcclxuICB9XHJcbn1cclxuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktdmlld3MvY29tcG9uZW50cy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxlQUFlLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBdUMsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVJLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBUWpGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxzQkFBc0I7SUFKOUQ7O1FBbUNFLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFzSGpCLENBQUM7SUFuSEMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzVELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFj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b0JBQW9COytCQUNoQyxXQUFXLFNBQUMsb0JBQW9COzhCQUNoQyxXQUFXLFNBQUMsbUJBQW1COzJCQUMvQixXQUFXLFNBQUMsZ0JBQWdCOytCQUM1QixXQUFXLFNBQUMsb0JBQW9CO21DQUNoQyxXQUFXLFNBQUMsd0JBQXdCOytCQUNwQyxXQUFXLFNBQUMsb0JBQW9COzRCQUNoQyxXQUFXLFNBQUMsaUJBQWlCOytCQUc3QixlQUFlLFNBQUMsd0JBQXdCO2dDQUN4QyxlQUFlLFNBQUMsc0JBQXNCOztBQURJO0lBRDFDLGdCQUFnQixFQUFFOzREQUNtRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZHJlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWNjb3JkaW9uSGVhZGVyRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7QWNjZXNzaWJpbGl0eUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQge0FjY29yZGlvbkl0ZW1EYXRhfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtBY2NvcmRpb25IZWFkZXJDb21wb25lbnR9IGZyb20gJy4vYWNjb3JkaW9uLWhlYWRlci9hY2NvcmRpb24taGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7QWNjb3JkaW9uSXRlbUNvbXBvbmVudH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0NvbnRlbnRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1hY2NvcmRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBcclxuICBAVmlld0NoaWxkcmVuKCdpdGVtU2VsZWN0b3InKSBpdGVtU2VsZWN0b3JzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcblxyXG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWxsb3dUb2dnbGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWxsb3dNdWx0aXBsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoZWFkaW5nOiBBY2NvcmRpb25IZWFkZXJEYXRhO1xyXG4gIEBJbnB1dCgpIGhlYWRpbmdMZXZlbDtcclxuICBASW5wdXQoKSBzaG93Q29udHJvbDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpdGVtczogQWNjb3JkaW9uSXRlbURhdGFbXTtcclxuICBcclxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzJykgY2xhc3NlczogYW55O1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZURhdGE6IGFueTtcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpIGFyaWFMYWJlbERhdGE6IGFueTtcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpIGFyaWFEZXNjcmliZWRieURhdGE6IGFueTtcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnlEYXRhOiBhbnk7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGlkZGVuJykgYXJpYUhpZGRlbkRhdGE6IGFueTtcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpIGFyaWFEaXNhYmxlZERhdGE6IGFueTtcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jb250cm9scycpIGFyaWFDb250cm9sc0RhdGE6IGFueTtcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1jdXJyZW50JykgYXJpYUN1cnJlbnREYXRhOiBhbnk7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGl2ZScpIGFyaWFMaXZlRGF0YTogYW55O1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJykgYXJpYUV4cGFuZGVkRGF0YTogYW55O1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWVycm9ybWVzc2FnZScpIGFyaWFFcnJvcm1lc3NhZ2VEYXRhOiBhbnk7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGFzcG9wdXAnKSBhcmlhSGFzcG9wdXBEYXRhOiBhbnk7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWxEYXRhOiBhbnlcclxuICBcclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25IZWFkZXJDb21wb25lbnQpIGhlYWRpbmdDb21wb25lbnQ6IEFjY29yZGlvbkhlYWRlckNvbXBvbmVudDtcclxuICBAQ29udGVudENoaWxkcmVuKEFjY29yZGlvbkl0ZW1Db21wb25lbnQpIGl0ZW1Db21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8QWNjb3JkaW9uSXRlbUNvbXBvbmVudD47XHJcblxyXG4gIHNob3dBbGwgPSB0cnVlO1xyXG4gIGN1cnJlbnRJdGVtOiBudW1iZXI7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMucm9sZURhdGEgPSB0aGlzLnJvbGUgPyB0aGlzLnJvbGUgOiBudWxsO1xyXG4gICAgdGhpcy5hcmlhTGFiZWxEYXRhID0gdGhpcy5hcmlhTGFiZWwgPyB0aGlzLmFyaWFMYWJlbCA6IG51bGw7XHJcbiAgICB0aGlzLmFyaWFEZXNjcmliZWRieURhdGEgPSB0aGlzLmFyaWFEZXNjcmliZWRCeSA/IHRoaXMuYXJpYURlc2NyaWJlZEJ5IDogbnVsbDtcclxuICAgIHRoaXMuYXJpYUxhYmVsbGVkYnlEYXRhID0gdGhpcy5hcmlhTGFiZWxsZWRCeSA/IHRoaXMuYXJpYUxhYmVsbGVkQnkgOiBudWxsO1xyXG4gICAgdGhpcy5hcmlhSGlkZGVuRGF0YSA9IHRoaXMuYXJpYUhpZGRlbiA/IHRoaXMuYXJpYUhpZGRlbiA6IG51bGw7XHJcbiAgICB0aGlzLmFyaWFEaXNhYmxlZERhdGEgPSB0aGlzLmFyaWFEaXNhYmxlZCA/IHRoaXMuYXJpYURpc2FibGVkIDogbnVsbDtcclxuICAgIHRoaXMuYXJpYUNvbnRyb2xzRGF0YSA9IHRoaXMuYXJpYUNvbnRyb2xzID8gdGhpcy5hcmlhQ29udHJvbHMgOiBudWxsO1xyXG4gICAgdGhpcy5hcmlhQ3VycmVudERhdGEgPSB0aGlzLmFyaWFDdXJyZW50ID8gdGhpcy5hcmlhQ3VycmVudCA6IG51bGw7XHJcbiAgICB0aGlzLmFyaWFMaXZlRGF0YSA9IHRoaXMuYXJpYUxpdmUgPyB0aGlzLmFyaWFMaXZlIDogbnVsbDtcclxuICAgIHRoaXMuYXJpYUV4cGFuZGVkRGF0YSA9IHRoaXMuYXJpYUV4cGFuZGVkID8gdGhpcy5hcmlhRXhwYW5kZWQgOiBudWxsO1xyXG4gICAgdGhpcy5hcmlhRXJyb3JtZXNzYWdlRGF0YSA9IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA/IHRoaXMuYXJpYUVycm9yTWVzc2FnZSA6IG51bGw7XHJcbiAgICB0aGlzLmFyaWFIYXNwb3B1cERhdGEgPSB0aGlzLmFyaWFIYXNQb3B1cCA/IHRoaXMuYXJpYUhhc1BvcHVwIDogbnVsbDtcclxuICAgIHRoaXMuYXJpYU1vZGFsRGF0YSA9IHRoaXMuYXJpYU1vZGFsID8gdGhpcy5hcmlhTW9kYWwgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUlkKGl0ZW0sIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IGlkO1xyXG4gICAgaWYgKGl0ZW0uaWQpIHtcclxuICAgICAgaWQgPSBpdGVtLmlkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgaWQgPSB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6IHVuZGVmaW5lZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZCA9IHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4ICsgJy0nICsgaW5kZXggOiBpbmRleDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlkO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlQWxsKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XHJcbiAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCBpc0NoYW5nZSA9IGl0ZW0ub3BlbiAhPT0gdGhpcy5zaG93QWxsO1xyXG4gICAgICBpdGVtLm9wZW4gPSB0aGlzLnNob3dBbGw7XHJcbiAgICAgIGlmIChpc0NoYW5nZSAmJiBpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xyXG4gICAgICAgIGl0ZW0ub3BlbkNoYW5nZS5lbWl0KGl0ZW0ub3Blbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zaG93QWxsID0gIXRoaXMuc2hvd0FsbDtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUl0ZW0oaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiB2b2lkIHtcclxuICAgIGlmICghaXRlbS5vcGVuIHx8IHRoaXMuYWxsb3dUb2dnbGUpIHtcclxuICAgICAgY29uc3QgbmV3T3BlblZhbHVlID0gIWl0ZW0ub3BlbjtcclxuICAgICAgaWYgKCF0aGlzLmFsbG93TXVsdGlwbGUpIHtcclxuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgICAgICBpdGVtcy5mb3JFYWNoKGl0ID0+IHtcclxuICAgICAgICAgIGNvbnN0IHdhc09wZW4gPSBpdC5vcGVuO1xyXG4gICAgICAgICAgaXQub3BlbiA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHdhc09wZW4gJiYgaXQgIT09IGl0ZW0gJiYgaXQgaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIGl0Lm9wZW5DaGFuZ2UuZW1pdChpdC5vcGVuKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtLm9wZW4gPSBuZXdPcGVuVmFsdWU7XHJcbiAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQWNjb3JkaW9uSXRlbUNvbXBvbmVudCkge1xyXG4gICAgICAgIGl0ZW0ub3BlbkNoYW5nZS5lbWl0KGl0ZW0ub3Blbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzRmlyc3RJdGVtKGV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKVswXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0xhc3RJdGVtKGV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pdGVtU2VsZWN0b3JzLnRvQXJyYXkoKVt0aGlzLml0ZW1TZWxlY3RvcnMubGVuZ3RoIC0gMV0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNOZXh0SXRlbShldmVudCwgZm9jdXNlZEl0ZW06IG51bWJlcik6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XHJcbiAgICBpZiAoc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIDEpICUgc2VsZWN0b3JzLmxlbmd0aF0gIT0gbnVsbCkge1xyXG4gICAgICBzZWxlY3RvcnNbKGZvY3VzZWRJdGVtICsgMSkgJSBzZWxlY3RvcnMubGVuZ3RoXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb2N1c1ByZXZpb3VzSXRlbShldmVudCwgZm9jdXNlZEl0ZW06IG51bWJlcik6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuaXRlbVNlbGVjdG9ycy50b0FycmF5KCk7XHJcbiAgICBpZiAoc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIHNlbGVjdG9ycy5sZW5ndGggLSAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdICE9IG51bGwpIHtcclxuICAgICAgc2VsZWN0b3JzWyhmb2N1c2VkSXRlbSArIHNlbGVjdG9ycy5sZW5ndGggLSAxKSAlIHNlbGVjdG9ycy5sZW5ndGhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW0oIGk6IG51bWJlciApOiB2b2lkIHtcclxuICAgIHRoaXMuY3VycmVudEl0ZW0gPSBpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGVDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgY2xhc3NlcyA9ICdjLWgyIG1iLWJhc2UnO1xyXG4gICAgaWYgKHRoaXMuaGVhZGluZ0NvbXBvbmVudCAmJiB0aGlzLmhlYWRpbmdDb21wb25lbnQuY2xhc3Nlcykge1xyXG4gICAgICBjbGFzc2VzID0gdGhpcy5oZWFkaW5nQ29tcG9uZW50LmNsYXNzZXM7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGVhZGluZyAmJiB0aGlzLmhlYWRpbmcuY2xhc3Nlcykge1xyXG4gICAgICBjbGFzc2VzID0gdGhpcy5oZWFkaW5nLmNsYXNzZXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2xhc3NlcztcclxuICB9XHJcblxyXG4gIGdldEl0ZW1zKCk6IEFjY29yZGlvbkl0ZW1EYXRhW10ge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1Db21wb25lbnRMaXN0ICYmIHRoaXMuaXRlbUNvbXBvbmVudExpc3QubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogdGhpcy5pdGVtcztcclxuICAgIHJldHVybiBpdGVtcztcclxuICB9XHJcblxyXG4gIGdldEl0ZW1IZWFkZXIoaXRlbTogQWNjb3JkaW9uSXRlbURhdGEpOiBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50ID8gaXRlbS5oZWFkZXJDb21wb25lbnQgOiBudWxsO1xyXG4gIH0gIFxyXG5cclxuICBnZXRJdGVtQ29udGVudChpdGVtOiBBY2NvcmRpb25JdGVtRGF0YSk6IENvbnRlbnRDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBBY2NvcmRpb25JdGVtQ29tcG9uZW50ID8gaXRlbS5jb250ZW50Q29tcG9uZW50IDogbnVsbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==