desy-angular 7.0.1 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/esm2020/lib/desy-angular.module.mjs +4 -4
  2. package/esm2020/lib/desy-buttons/components/button/button.component.mjs +5 -5
  3. package/esm2020/lib/desy-buttons/components/button-loader/button-loader.component.mjs +3 -3
  4. package/esm2020/lib/desy-buttons/components/dropdown/dropdown.component.mjs +6 -7
  5. package/esm2020/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +11 -4
  6. package/esm2020/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +3 -3
  7. package/esm2020/lib/desy-buttons/components/listbox/listbox.component.mjs +142 -94
  8. package/esm2020/lib/desy-buttons/components/pill/pill.component.mjs +3 -3
  9. package/esm2020/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +3 -3
  10. package/esm2020/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +3 -3
  11. package/esm2020/lib/desy-buttons/components/toggle/toggle.component.mjs +3 -3
  12. package/esm2020/lib/desy-buttons/desy-buttons.module.mjs +4 -4
  13. package/esm2020/lib/desy-commons/components/content/content.component.mjs +3 -3
  14. package/esm2020/lib/desy-commons/components/description/description.component.mjs +3 -3
  15. package/esm2020/lib/desy-commons/components/divider/divider.component.mjs +3 -3
  16. package/esm2020/lib/desy-commons/components/icon/icon.component.mjs +3 -3
  17. package/esm2020/lib/desy-commons/components/title/title.component.mjs +3 -3
  18. package/esm2020/lib/desy-commons/desy-commons.module.mjs +4 -4
  19. package/esm2020/lib/desy-forms/components/character-count/character-count.component.mjs +3 -3
  20. package/esm2020/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +25 -43
  21. package/esm2020/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +23 -0
  22. package/esm2020/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +98 -67
  23. package/esm2020/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +6 -4
  24. package/esm2020/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +3 -3
  25. package/esm2020/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +3 -3
  26. package/esm2020/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +6 -4
  27. package/esm2020/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +6 -4
  28. package/esm2020/lib/desy-forms/components/date-input/date-input.component.mjs +29 -6
  29. package/esm2020/lib/desy-forms/components/error-message/error-message.component.mjs +3 -3
  30. package/esm2020/lib/desy-forms/components/fieldset/fieldset.component.mjs +3 -3
  31. package/esm2020/lib/desy-forms/components/fieldset/legend/legend.component.mjs +3 -3
  32. package/esm2020/lib/desy-forms/components/file-upload/file-upload.component.mjs +3 -3
  33. package/esm2020/lib/desy-forms/components/form-field/form-field.component.mjs +4 -4
  34. package/esm2020/lib/desy-forms/components/hint/hint.component.mjs +3 -3
  35. package/esm2020/lib/desy-forms/components/input/input.component.mjs +6 -6
  36. package/esm2020/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +3 -3
  37. package/esm2020/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +10 -5
  38. package/esm2020/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +3 -3
  39. package/esm2020/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +10 -5
  40. package/esm2020/lib/desy-forms/components/input-group/input-group.component.mjs +12 -6
  41. package/esm2020/lib/desy-forms/components/label/label.component.mjs +3 -3
  42. package/esm2020/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +22 -34
  43. package/esm2020/lib/desy-forms/components/radios/radios-parent.component.mjs +23 -0
  44. package/esm2020/lib/desy-forms/components/radios/radios.component.mjs +109 -71
  45. package/esm2020/lib/desy-forms/components/search-bar/search-bar.component.mjs +7 -13
  46. package/esm2020/lib/desy-forms/components/select/option/option.component.mjs +4 -4
  47. package/esm2020/lib/desy-forms/components/select/option-group/option-group.component.mjs +3 -3
  48. package/esm2020/lib/desy-forms/components/select/select-item/select-item.component.mjs +3 -3
  49. package/esm2020/lib/desy-forms/components/select/select.component.mjs +7 -7
  50. package/esm2020/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +3 -3
  51. package/esm2020/lib/desy-forms/components/textarea/textarea.component.mjs +3 -3
  52. package/esm2020/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +3 -3
  53. package/esm2020/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +7 -6
  54. package/esm2020/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +3 -3
  55. package/esm2020/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +3 -3
  56. package/esm2020/lib/desy-forms/components/tree/tree.component.mjs +12 -4
  57. package/esm2020/lib/desy-forms/desy-forms.module.mjs +6 -6
  58. package/esm2020/lib/desy-forms/directives/condition.directive.mjs +3 -3
  59. package/esm2020/lib/desy-forms/interfaces/item-date-input-data.mjs +1 -1
  60. package/esm2020/lib/desy-forms/interfaces/select-item-data.mjs +1 -1
  61. package/esm2020/lib/desy-modals/components/dialog/dialog.component.mjs +24 -4
  62. package/esm2020/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +3 -3
  63. package/esm2020/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +3 -3
  64. package/esm2020/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +3 -3
  65. package/esm2020/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +3 -3
  66. package/esm2020/lib/desy-modals/components/modal/modal.component.mjs +3 -3
  67. package/esm2020/lib/desy-modals/desy-modals.module.mjs +4 -4
  68. package/esm2020/lib/desy-modals/interfaces/dialog-options.mjs +1 -1
  69. package/esm2020/lib/desy-modals/services/dialog.service.mjs +3 -3
  70. package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +3 -3
  71. package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  72. package/esm2020/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +3 -3
  73. package/esm2020/lib/desy-nav/components/error-summary/error-summary.component.mjs +3 -3
  74. package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +3 -3
  75. package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +3 -3
  76. package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +3 -3
  77. package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +3 -3
  78. package/esm2020/lib/desy-nav/components/footer/footer.component.mjs +3 -3
  79. package/esm2020/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +3 -3
  80. package/esm2020/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +5 -5
  81. package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +3 -3
  82. package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +3 -3
  83. package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +3 -3
  84. package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +3 -3
  85. package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +3 -3
  86. package/esm2020/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +3 -3
  87. package/esm2020/lib/desy-nav/components/header/header.component.mjs +8 -10
  88. package/esm2020/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +40 -0
  89. package/esm2020/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +14 -0
  90. package/esm2020/lib/desy-nav/components/links-list/links-list.component.mjs +42 -0
  91. package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +3 -3
  92. package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +3 -3
  93. package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +3 -3
  94. package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +3 -3
  95. package/esm2020/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +3 -3
  96. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +3 -3
  97. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +3 -3
  98. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +3 -3
  99. package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +3 -3
  100. package/esm2020/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +3 -3
  101. package/esm2020/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +3 -3
  102. package/esm2020/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +3 -3
  103. package/esm2020/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +3 -3
  104. package/esm2020/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +3 -3
  105. package/esm2020/lib/desy-nav/components/menubar/menubar.component.mjs +3 -3
  106. package/esm2020/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +3 -3
  107. package/esm2020/lib/desy-nav/components/nav/nav.component.mjs +3 -3
  108. package/esm2020/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +3 -3
  109. package/esm2020/lib/desy-nav/components/notification/notification.component.mjs +3 -3
  110. package/esm2020/lib/desy-nav/components/skip-link/skip-link.component.mjs +11 -5
  111. package/esm2020/lib/desy-nav/desy-nav.module.mjs +25 -6
  112. package/esm2020/lib/desy-nav/interfaces/header-skiplink-data.mjs +2 -0
  113. package/esm2020/lib/desy-pagination/components/pagination/pagination.component.mjs +53 -30
  114. package/esm2020/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +3 -3
  115. package/esm2020/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +3 -3
  116. package/esm2020/lib/desy-pagination/desy-pagination.module.mjs +4 -4
  117. package/esm2020/lib/desy-tables/components/table/components/table-caption.component.mjs +3 -3
  118. package/esm2020/lib/desy-tables/components/table/components/table-cell.component.mjs +3 -3
  119. package/esm2020/lib/desy-tables/components/table/components/table-header.component.mjs +3 -3
  120. package/esm2020/lib/desy-tables/components/table/components/table-row.component.mjs +3 -3
  121. package/esm2020/lib/desy-tables/components/table/table.component.mjs +3 -3
  122. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +3 -3
  123. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +3 -3
  124. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +3 -3
  125. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +3 -3
  126. package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +3 -3
  127. package/esm2020/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +3 -3
  128. package/esm2020/lib/desy-tables/desy-tables.module.mjs +4 -4
  129. package/esm2020/lib/desy-tables/directives/cell.directive.mjs +3 -3
  130. package/esm2020/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +3 -3
  131. package/esm2020/lib/desy-tables/directives/row.directive.mjs +3 -3
  132. package/esm2020/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +3 -3
  133. package/esm2020/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
  134. package/esm2020/lib/desy-views/components/accordion/accordion.component.mjs +3 -3
  135. package/esm2020/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +3 -3
  136. package/esm2020/lib/desy-views/components/accordion-history/accordion-history.component.mjs +3 -3
  137. package/esm2020/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +3 -3
  138. package/esm2020/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +3 -3
  139. package/esm2020/lib/desy-views/components/alert/alert.component.mjs +3 -3
  140. package/esm2020/lib/desy-views/components/collapsible/collapsible.component.mjs +3 -3
  141. package/esm2020/lib/desy-views/components/description-list/definition/definition.component.mjs +3 -3
  142. package/esm2020/lib/desy-views/components/description-list/description-item/description-item.component.mjs +3 -3
  143. package/esm2020/lib/desy-views/components/description-list/description-list.component.mjs +3 -3
  144. package/esm2020/lib/desy-views/components/description-list/term/term.component.mjs +3 -3
  145. package/esm2020/lib/desy-views/components/details/details.component.mjs +3 -3
  146. package/esm2020/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +3 -3
  147. package/esm2020/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +3 -3
  148. package/esm2020/lib/desy-views/components/item/item-item/item-item.component.mjs +3 -3
  149. package/esm2020/lib/desy-views/components/item/item.component.mjs +11 -16
  150. package/esm2020/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +3 -3
  151. package/esm2020/lib/desy-views/components/media-object/media-object.component.mjs +3 -3
  152. package/esm2020/lib/desy-views/components/spinner/spinner.component.mjs +3 -3
  153. package/esm2020/lib/desy-views/components/status/status.component.mjs +14 -5
  154. package/esm2020/lib/desy-views/components/status-item/status-item.component.mjs +3 -3
  155. package/esm2020/lib/desy-views/components/tabs/panel/panel.component.mjs +3 -3
  156. package/esm2020/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +3 -3
  157. package/esm2020/lib/desy-views/components/tabs/tabs.component.mjs +3 -3
  158. package/esm2020/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +3 -3
  159. package/esm2020/lib/desy-views/components/tooltip/tooltip.component.mjs +3 -3
  160. package/esm2020/lib/desy-views/desy-views.module.mjs +4 -4
  161. package/esm2020/lib/desy-views/services/alert.service.mjs +3 -3
  162. package/esm2020/lib/shared/components/accessibility/accessibility.component.mjs +3 -3
  163. package/esm2020/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +3 -3
  164. package/esm2020/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +3 -3
  165. package/esm2020/lib/shared/components/content-base/content-base.component.mjs +3 -3
  166. package/esm2020/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +3 -3
  167. package/esm2020/lib/shared/directives/attribute-change.directive.mjs +24 -19
  168. package/esm2020/lib/shared/directives/click-outside.directive.mjs +3 -3
  169. package/esm2020/lib/shared/directives/content-change.directive.mjs +3 -3
  170. package/esm2020/lib/shared/directives/custom-inner-content.directive.mjs +3 -3
  171. package/esm2020/lib/shared/directives/inner-content.directive.mjs +3 -3
  172. package/esm2020/lib/shared/pipes/external-href.pipe.mjs +5 -5
  173. package/esm2020/lib/shared/pipes/inner-html.pipe.mjs +3 -3
  174. package/esm2020/lib/shared/pipes/make-html-list.pipe.mjs +3 -3
  175. package/esm2020/lib/shared/shared.module.mjs +4 -4
  176. package/esm2020/public-api.mjs +5 -1
  177. package/fesm2015/desy-angular.mjs +1205 -1002
  178. package/fesm2015/desy-angular.mjs.map +1 -1
  179. package/fesm2020/desy-angular.mjs +1205 -1000
  180. package/fesm2020/desy-angular.mjs.map +1 -1
  181. package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +3 -1
  182. package/lib/desy-buttons/components/listbox/listbox.component.d.ts +15 -4
  183. package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +5 -3
  184. package/lib/desy-forms/components/checkboxes/checkboxes-parent.component.d.ts +21 -0
  185. package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +19 -11
  186. package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +2 -1
  187. package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +2 -1
  188. package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +2 -1
  189. package/lib/desy-forms/components/date-input/date-input.component.d.ts +5 -1
  190. package/lib/desy-forms/components/form-field/form-field.component.d.ts +9 -9
  191. package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +1 -0
  192. package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +1 -0
  193. package/lib/desy-forms/components/input-group/input-group.component.d.ts +2 -0
  194. package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +5 -4
  195. package/lib/desy-forms/components/radios/radios-parent.component.d.ts +21 -0
  196. package/lib/desy-forms/components/radios/radios.component.d.ts +19 -10
  197. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +2 -4
  198. package/lib/desy-forms/components/select/option/option.component.d.ts +1 -1
  199. package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +1 -0
  200. package/lib/desy-forms/components/tree/tree.component.d.ts +4 -0
  201. package/lib/desy-forms/interfaces/item-date-input-data.d.ts +1 -0
  202. package/lib/desy-forms/interfaces/select-item-data.d.ts +1 -1
  203. package/lib/desy-modals/components/dialog/dialog.component.d.ts +2 -1
  204. package/lib/desy-modals/interfaces/dialog-options.d.ts +1 -0
  205. package/lib/desy-nav/components/header/header.component.d.ts +3 -2
  206. package/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.d.ts +20 -0
  207. package/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.d.ts +7 -0
  208. package/lib/desy-nav/components/links-list/links-list.component.d.ts +13 -0
  209. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +1 -0
  210. package/lib/desy-nav/desy-nav.module.d.ts +29 -26
  211. package/lib/desy-nav/interfaces/header-skiplink-data.d.ts +7 -0
  212. package/lib/desy-pagination/components/pagination/pagination.component.d.ts +12 -7
  213. package/lib/desy-views/components/item/item.component.d.ts +1 -0
  214. package/lib/desy-views/components/status/status.component.d.ts +3 -1
  215. package/lib/shared/directives/attribute-change.directive.d.ts +2 -1
  216. package/package.json +1 -1
  217. package/public-api.d.ts +4 -0
  218. package/esm2020/lib/desy-forms/models/checkbox-service-item.component.mjs +0 -9
  219. package/esm2020/lib/desy-forms/models/radio-service-item.component.mjs +0 -9
  220. package/esm2020/lib/desy-forms/services/checkbox.service.mjs +0 -61
  221. package/esm2020/lib/desy-forms/services/radio.service.mjs +0 -53
  222. package/lib/desy-forms/models/checkbox-service-item.component.d.ts +0 -13
  223. package/lib/desy-forms/models/radio-service-item.component.d.ts +0 -12
  224. package/lib/desy-forms/services/checkbox.service.d.ts +0 -14
  225. package/lib/desy-forms/services/radio.service.d.ts +0 -13
@@ -20,6 +20,9 @@ import { HeaderOffcanvasComponent } from './components/header/header-offcanvas/h
20
20
  import { NotificationComponent } from './components/notification/notification.component';
21
21
  import { NotificationItemComponent } from './components/notification/notification-item/notification-item.component';
22
22
  import { FooterComponent } from './components/footer/footer.component';
23
+ import { LinksListComponent } from './components/links-list/links-list.component';
24
+ import { LinksListItemComponent } from './components/links-list/links-list-item/links-list-item.component';
25
+ import { LinksListItemSubComponent } from './components/links-list/links-list-item-sub/links-list-item-sub.component';
23
26
  import { MenubarComponent } from './components/menubar/menubar.component';
24
27
  import { MenubaritemDirective } from './components/menubar/directives/menubaritem.directive';
25
28
  import { MenubarItemComponent } from './components/menubar/components/menubar-item/menubar-item.component';
@@ -44,8 +47,8 @@ import { HeaderCustomNavigationComponent } from './components/header/header-cust
44
47
  import * as i0 from "@angular/core";
45
48
  export class DesyNavModule {
46
49
  }
47
- DesyNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DesyNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
48
- DesyNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DesyNavModule, declarations: [BreadcrumbsComponent,
50
+ DesyNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DesyNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
51
+ DesyNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DesyNavModule, declarations: [BreadcrumbsComponent,
49
52
  BreadcrumbsItemComponent,
50
53
  ErrorSummaryComponent,
51
54
  ErrorSummaryItemComponent,
@@ -62,6 +65,9 @@ DesyNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
62
65
  HeaderOffcanvasButtonComponent,
63
66
  HeaderOffcanvasComponent,
64
67
  HeaderOffcanvasCloseButtonComponent,
68
+ LinksListComponent,
69
+ LinksListItemComponent,
70
+ LinksListItemSubComponent,
65
71
  MenuHorizontalComponent,
66
72
  MenuHorizontalItemComponent,
67
73
  MenuVerticalComponent,
@@ -82,7 +88,9 @@ DesyNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
82
88
  MenubaritemDirective,
83
89
  MenuNavigationItemComponent,
84
90
  MenuNavigationSubitemComponent,
85
- HeaderCustomNavigationComponent], imports: [CommonModule,
91
+ HeaderCustomNavigationComponent,
92
+ LinksListItemComponent,
93
+ LinksListItemSubComponent], imports: [CommonModule,
86
94
  SharedModule,
87
95
  DesyCommonsModule,
88
96
  DesyButtonsModule], exports: [BreadcrumbsComponent,
@@ -102,6 +110,9 @@ DesyNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
102
110
  HeaderOffcanvasComponent,
103
111
  HeaderOffcanvasButtonComponent,
104
112
  HeaderOffcanvasCloseButtonComponent,
113
+ LinksListComponent,
114
+ LinksListItemComponent,
115
+ LinksListItemSubComponent,
105
116
  MenuHorizontalComponent,
106
117
  MenuHorizontalItemComponent,
107
118
  MenuVerticalComponent,
@@ -123,11 +134,11 @@ DesyNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
123
134
  MenuNavigationItemComponent,
124
135
  MenuNavigationSubitemComponent,
125
136
  HeaderCustomNavigationComponent] });
126
- DesyNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DesyNavModule, imports: [CommonModule,
137
+ DesyNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DesyNavModule, imports: [CommonModule,
127
138
  SharedModule,
128
139
  DesyCommonsModule,
129
140
  DesyButtonsModule] });
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DesyNavModule, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DesyNavModule, decorators: [{
131
142
  type: NgModule,
132
143
  args: [{
133
144
  declarations: [
@@ -148,6 +159,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
148
159
  HeaderOffcanvasButtonComponent,
149
160
  HeaderOffcanvasComponent,
150
161
  HeaderOffcanvasCloseButtonComponent,
162
+ LinksListComponent,
163
+ LinksListItemComponent,
164
+ LinksListItemSubComponent,
151
165
  MenuHorizontalComponent,
152
166
  MenuHorizontalItemComponent,
153
167
  MenuVerticalComponent,
@@ -169,6 +183,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
169
183
  MenuNavigationItemComponent,
170
184
  MenuNavigationSubitemComponent,
171
185
  HeaderCustomNavigationComponent,
186
+ LinksListItemComponent,
187
+ LinksListItemSubComponent,
172
188
  ],
173
189
  imports: [
174
190
  CommonModule,
@@ -194,6 +210,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
194
210
  HeaderOffcanvasComponent,
195
211
  HeaderOffcanvasButtonComponent,
196
212
  HeaderOffcanvasCloseButtonComponent,
213
+ LinksListComponent,
214
+ LinksListItemComponent,
215
+ LinksListItemSubComponent,
197
216
  MenuHorizontalComponent,
198
217
  MenuHorizontalItemComponent,
199
218
  MenuVerticalComponent,
@@ -218,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
218
237
  ]
219
238
  }]
220
239
  }] });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS1uYXYubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1uYXYvZGVzeS1uYXYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUMvSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSx1QkFBdUIsRUFB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d0JBQ3JCLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBRXZCLG9CQUFvQjt3QkFFcEIsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6Qiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLDZCQUE2Qjt3QkFDN0IsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLDhCQUE4Qjt3QkFDOUIsbUNBQW1DO3dCQUNuQyx1QkFBdUI7d0JBQ3ZCLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUNoQyxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3dCQUM5QiwyQkFBMkI7d0JBQzNCLDhCQUE4Qjt3QkFDOUIsK0JBQStCO3FCQUNoQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgRGVzeUNvbW1vbnNNb2R1bGUgfSBmcm9tICcuLi9kZXN5LWNvbW1vbnMvZGVzeS1jb21tb25zLm1vZHVsZSc7XG5cbmltcG9ydCB7IEJyZWFkY3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1ic0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMtaXRlbS9icmVhZGNydW1icy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXJyb3Itc3VtbWFyeS9lcnJvci1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclN1bW1hcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Vycm9yLXN1bW1hcnkvZXJyb3Itc3VtbWFyeS1pdGVtL2Vycm9yLXN1bW1hcnktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudUhvcml6b250YWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS1ob3Jpem9udGFsL21lbnUtaG9yaXpvbnRhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtaG9yaXpvbnRhbC9tZW51LWhvcml6b250YWwtaXRlbS9tZW51LWhvcml6b250YWwtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudVZlcnRpY2FsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtdmVydGljYWwvbWVudS12ZXJ0aWNhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50JztcbmltcG9ydCB7IFNraXBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NraXAtbGluay9za2lwLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJTdWJuYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci1zdWJuYXYvaGVhZGVyLXN1Ym5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLW5hdmlnYXRpb24vaGVhZGVyLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9oZWFkZXItZHJvcGRvd24vaGVhZGVyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJPZmZjYW52YXNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci1vZmZjYW52YXMvaGVhZGVyLW9mZmNhbnZhcy1idXR0b24vaGVhZGVyLW9mZmNhbnZhcy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlck9mZmNhbnZhc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLW9mZmNhbnZhcy9oZWFkZXItb2ZmY2FudmFzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51YmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnViYXIvbWVudWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudWJhcml0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudWJhci9kaXJlY3RpdmVzL21lbnViYXJpdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNZW51YmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51YmFyL2NvbXBvbmVudHMvbWVudWJhci1pdGVtL21lbnViYXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudWJhclN1Yml0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudWJhci9jb21wb25lbnRzL21lbnViYXItc3ViaXRlbS9tZW51YmFyLXN1Yml0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnViYXJTdWJzdWJpdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnViYXIvY29tcG9uZW50cy9tZW51YmFyLXN1YnN1Yml0ZW0vbWVudWJhci1zdWJzdWJpdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51YmFyTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudWJhci9jb21wb25lbnRzL21lbnViYXItbGFiZWwvbWVudWJhci1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXYvbmF2LWl0ZW0vbmF2LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVWZXJ0aWNhbEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS12ZXJ0aWNhbC9tZW51LXZlcnRpY2FsLWl0ZW0vbWVudS12ZXJ0aWNhbC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51VmVydGljYWxJdGVtU3ViQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtdmVydGljYWwvbWVudS12ZXJ0aWNhbC1pdGVtLXN1Yi9tZW51LXZlcnRpY2FsLWl0ZW0tc3ViLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51VmVydGljYWxJdGVtU3ViSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51LXZlcnRpY2FsL21lbnUtdmVydGljYWwtaXRlbS1zdWItaXRlbS9tZW51LXZlcnRpY2FsLWl0ZW0tc3ViLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlck9mZmNhbnZhc0Nsb3NlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9oZWFkZXItb2ZmY2FudmFzL2hlYWRlci1vZmZjYW52YXMtY2xvc2UtYnV0dG9uL2hlYWRlci1vZmZjYW52YXMtY2xvc2UtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLW5hdmlnYXRpb24vaGVhZGVyLW5hdmlnYXRpb24taXRlbS9oZWFkZXItbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb290ZXJNZXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItbWV0YS9mb290ZXItbWV0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9vdGVyTWV0YUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1tZXRhL2Zvb3Rlci1tZXRhLWl0ZW0vZm9vdGVyLW1ldGEtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9vdGVyTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLW5hdmlnYXRpb24vZm9vdGVyLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3Rlck5hdmlnYXRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItbmF2aWdhdGlvbi9mb290ZXItbmF2aWdhdGlvbi1pdGVtL2Zvb3Rlci1uYXZpZ2F0aW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IERlc3lCdXR0b25zTW9kdWxlIH0gZnJvbSAnLi4vZGVzeS1idXR0b25zL2Rlc3ktYnV0dG9ucy5tb2R1bGUnO1xuaW1wb3J0IHsgTWVudU5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS1uYXZpZ2F0aW9uL21lbnUtbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudU5hdmlnYXRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtbmF2aWdhdGlvbi9jb21wb25lbnRzL21lbnUtbmF2aWdhdGlvbi1pdGVtL21lbnUtbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51TmF2aWdhdGlvblN1Yml0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS1uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbWVudS1uYXZpZ2F0aW9uLXN1Yml0ZW0vbWVudS1uYXZpZ2F0aW9uLXN1Yml0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckN1c3RvbU5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci1jdXN0b20tbmF2aWdhdGlvbi9oZWFkZXItY3VzdG9tLW5hdmlnYXRpb24uY29tcG9uZW50JztcblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBCcmVhZGNydW1ic0NvbXBvbmVudCxcbiAgICBCcmVhZGNydW1ic0l0ZW1Db21wb25lbnQsXG4gICAgRXJyb3JTdW1tYXJ5Q29tcG9uZW50LFxuICAgIEVycm9yU3VtbWFyeUl0ZW1Db21wb25lbnQsXG4gICAgRm9vdGVyQ29tcG9uZW50LFxuICAgIEZvb3Rlck1ldGFDb21wb25lbnQsXG4gICAgRm9vdGVyTWV0YUl0ZW1Db21wb25lbnQsXG4gICAgRm9vdGVyTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICBGb290ZXJOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCxcbiAgICBIZWFkZXJDb21wb25lbnQsXG4gICAgSGVhZGVyU3VibmF2Q29tcG9uZW50LFxuICAgIEhlYWRlck5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgSGVhZGVyTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQsXG4gICAgSGVhZGVyRHJvcGRvd25Db21wb25lbnQsXG4gICAgSGVhZGVyT2ZmY2FudmFzQnV0dG9uQ29tcG9uZW50LFxuICAgIEhlYWRlck9mZmNhbnZhc0NvbXBvbmVudCxcbiAgICBIZWFkZXJPZmZjYW52YXNDbG9zZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNZW51SG9yaXpvbnRhbENvbXBvbmVudCxcbiAgICBNZW51SG9yaXpvbnRhbEl0ZW1Db21wb25lbnQsXG4gICAgTWVudVZlcnRpY2FsQ29tcG9uZW50LFxuICAgIE1lbnVWZXJ0aWNhbEl0ZW1Db21wb25lbnQsXG4gICAgTWVudVZlcnRpY2FsSXRlbVN1YkNvbXBvbmVudCxcbiAgICBNZW51VmVydGljYWxJdGVtU3ViSXRlbUNvbXBvbmVudCxcbiAgICBNZW51YmFyQ29tcG9uZW50LFxuICAgIE1lbnViYXJMYWJlbENvbXBvbmVudCxcbiAgICBNZW51YmFySXRlbUNvbXBvbmVudCxcbiAgICBNZW51YmFyU3ViaXRlbUNvbXBvbmVudCxcbiAgICBNZW51YmFyU3Vic3ViaXRlbUNvbXBvbmVudCxcbiAgICBOYXZDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQsXG4gICAgU2tpcExpbmtDb21wb25lbnQsXG4gICAgTmF2SXRlbUNvbXBvbmVudCxcbiAgICBNZW51TmF2aWdhdGlvbkNvbXBvbmVudCxcblxuICAgIE1lbnViYXJpdGVtRGlyZWN0aXZlLFxuXG4gICAgTWVudU5hdmlnYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIE1lbnVOYXZpZ2F0aW9uU3ViaXRlbUNvbXBvbmVudCxcbiAgICBIZWFkZXJDdXN0b21OYXZpZ2F0aW9uQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBEZXN5Q29tbW9uc01vZHVsZSxcbiAgICBEZXN5QnV0dG9uc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgQnJlYWRjcnVtYnNDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYnNJdGVtQ29tcG9uZW50LFxuICAgIEVycm9yU3VtbWFyeUNvbXBvbmVudCxcbiAgICBFcnJvclN1bW1hcnlJdGVtQ29tcG9uZW50LFxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICBGb290ZXJNZXRhQ29tcG9uZW50LFxuICAgIEZvb3Rlck1ldGFJdGVtQ29tcG9uZW50LFxuICAgIEZvb3Rlck5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgRm9vdGVyTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQsXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIEhlYWRlclN1Ym5hdkNvbXBvbmVudCxcbiAgICBIZWFkZXJOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIEhlYWRlck5hdmlnYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEhlYWRlckRyb3Bkb3duQ29tcG9uZW50LFxuICAgIEhlYWRlck9mZmNhbnZhc0NvbXBvbmVudCxcbiAgICBIZWFkZXJPZmZjYW52YXNCdXR0b25Db21wb25lbnQsXG4gICAgSGVhZGVyT2ZmY2FudmFzQ2xvc2VCdXR0b25Db21wb25lbnQsXG4gICAgTWVudUhvcml6b250YWxDb21wb25lbnQsXG4gICAgTWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50LFxuICAgIE1lbnVWZXJ0aWNhbENvbXBvbmVudCxcbiAgICBNZW51VmVydGljYWxJdGVtQ29tcG9uZW50LFxuICAgIE1lbnVWZXJ0aWNhbEl0ZW1TdWJDb21wb25lbnQsXG4gICAgTWVudVZlcnRpY2FsSXRlbVN1Ykl0ZW1Db21wb25lbnQsXG4gICAgTWVudWJhckNvbXBvbmVudCxcbiAgICBNZW51YmFyTGFiZWxDb21wb25lbnQsXG4gICAgTWVudWJhckl0ZW1Db21wb25lbnQsXG4gICAgTWVudWJhclN1Yml0ZW1Db21wb25lbnQsXG4gICAgTWVudWJhclN1YnN1Yml0ZW1Db21wb25lbnQsXG4gICAgTmF2Q29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIE5hdkl0ZW1Db21wb25lbnQsXG4gICAgU2tpcExpbmtDb21wb25lbnQsXG4gICAgTWVudU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgTWVudU5hdmlnYXRpb25TdWJpdGVtQ29tcG9uZW50LFxuICAgIE1lbnVOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCxcbiAgICBNZW51TmF2aWdhdGlvblN1Yml0ZW1Db21wb25lbnQsXG4gICAgSGVhZGVyQ3VzdG9tTmF2aWdhdGlvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERlc3lOYXZNb2R1bGUgeyB9XG4iXX0=
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS1uYXYubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1uYXYvZGVzeS1uYXYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNoSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0RUFBNEUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUMvSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzlHLE9BQU8sRUFBRSx1QkFBdUIsRUFB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QUNyQix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUNoQyxnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIsOEJBQThCO3dCQUM5QiwyQkFBMkI7d0JBQzNCLDhCQUE4Qjt3QkFDOUIsK0JBQStCO3FCQUNoQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgRGVzeUNvbW1vbnNNb2R1bGUgfSBmcm9tICcuLi9kZXN5LWNvbW1vbnMvZGVzeS1jb21tb25zLm1vZHVsZSc7XG5cbmltcG9ydCB7IEJyZWFkY3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcmVhZGNydW1ic0l0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMvYnJlYWRjcnVtYnMtaXRlbS9icmVhZGNydW1icy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZXJyb3Itc3VtbWFyeS9lcnJvci1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFcnJvclN1bW1hcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Vycm9yLXN1bW1hcnkvZXJyb3Itc3VtbWFyeS1pdGVtL2Vycm9yLXN1bW1hcnktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudUhvcml6b250YWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS1ob3Jpem9udGFsL21lbnUtaG9yaXpvbnRhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtaG9yaXpvbnRhbC9tZW51LWhvcml6b250YWwtaXRlbS9tZW51LWhvcml6b250YWwtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudVZlcnRpY2FsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtdmVydGljYWwvbWVudS12ZXJ0aWNhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50JztcbmltcG9ydCB7IFNraXBMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NraXAtbGluay9za2lwLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJTdWJuYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci1zdWJuYXYvaGVhZGVyLXN1Ym5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLW5hdmlnYXRpb24vaGVhZGVyLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9oZWFkZXItZHJvcGRvd24vaGVhZGVyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJPZmZjYW52YXNCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci1vZmZjYW52YXMvaGVhZGVyLW9mZmNhbnZhcy1idXR0b24vaGVhZGVyLW9mZmNhbnZhcy1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEhlYWRlck9mZmNhbnZhc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLW9mZmNhbnZhcy9oZWFkZXItb2ZmY2FudmFzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGlua3MtbGlzdC9saW5rcy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rc0xpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xpbmtzLWxpc3QvbGlua3MtbGlzdC1pdGVtL2xpbmtzLWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua3NMaXN0SXRlbVN1YkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9saW5rcy1saXN0L2xpbmtzLWxpc3QtaXRlbS1zdWIvbGlua3MtbGlzdC1pdGVtLXN1Yi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudWJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51YmFyL21lbnViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnViYXJpdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnViYXIvZGlyZWN0aXZlcy9tZW51YmFyaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWVudWJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudWJhci9jb21wb25lbnRzL21lbnViYXItaXRlbS9tZW51YmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnViYXJTdWJpdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnViYXIvY29tcG9uZW50cy9tZW51YmFyLXN1Yml0ZW0vbWVudWJhci1zdWJpdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51YmFyU3Vic3ViaXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51YmFyL2NvbXBvbmVudHMvbWVudWJhci1zdWJzdWJpdGVtL21lbnViYXItc3Vic3ViaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudWJhckxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnViYXIvY29tcG9uZW50cy9tZW51YmFyLWxhYmVsL21lbnViYXItbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IE5hdkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmF2L25hdi1pdGVtL25hdi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51VmVydGljYWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtdmVydGljYWwvbWVudS12ZXJ0aWNhbC1pdGVtL21lbnUtdmVydGljYWwtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudVZlcnRpY2FsSXRlbVN1YkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51LXZlcnRpY2FsL21lbnUtdmVydGljYWwtaXRlbS1zdWIvbWVudS12ZXJ0aWNhbC1pdGVtLXN1Yi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudVZlcnRpY2FsSXRlbVN1Ykl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWVudS12ZXJ0aWNhbC9tZW51LXZlcnRpY2FsLWl0ZW0tc3ViLWl0ZW0vbWVudS12ZXJ0aWNhbC1pdGVtLXN1Yi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJPZmZjYW52YXNDbG9zZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLW9mZmNhbnZhcy9oZWFkZXItb2ZmY2FudmFzLWNsb3NlLWJ1dHRvbi9oZWFkZXItb2ZmY2FudmFzLWNsb3NlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGVhZGVyTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci1uYXZpZ2F0aW9uL2hlYWRlci1uYXZpZ2F0aW9uLWl0ZW0vaGVhZGVyLW5hdmlnYXRpb24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9vdGVyTWV0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLW1ldGEvZm9vdGVyLW1ldGEuY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3Rlck1ldGFJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItbWV0YS9mb290ZXItbWV0YS1pdGVtL2Zvb3Rlci1tZXRhLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3Rlck5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1uYXZpZ2F0aW9uL2Zvb3Rlci1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb290ZXJOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLW5hdmlnYXRpb24vZm9vdGVyLW5hdmlnYXRpb24taXRlbS9mb290ZXItbmF2aWdhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZXN5QnV0dG9uc01vZHVsZSB9IGZyb20gJy4uL2Rlc3ktYnV0dG9ucy9kZXN5LWJ1dHRvbnMubW9kdWxlJztcbmltcG9ydCB7IE1lbnVOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtbmF2aWdhdGlvbi9tZW51LW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE1lbnVOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZW51LW5hdmlnYXRpb24vY29tcG9uZW50cy9tZW51LW5hdmlnYXRpb24taXRlbS9tZW51LW5hdmlnYXRpb24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudU5hdmlnYXRpb25TdWJpdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21lbnUtbmF2aWdhdGlvbi9jb21wb25lbnRzL21lbnUtbmF2aWdhdGlvbi1zdWJpdGVtL21lbnUtbmF2aWdhdGlvbi1zdWJpdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIZWFkZXJDdXN0b21OYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2hlYWRlci9oZWFkZXItY3VzdG9tLW5hdmlnYXRpb24vaGVhZGVyLWN1c3RvbS1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQnJlYWRjcnVtYnNDb21wb25lbnQsXG4gICAgQnJlYWRjcnVtYnNJdGVtQ29tcG9uZW50LFxuICAgIEVycm9yU3VtbWFyeUNvbXBvbmVudCxcbiAgICBFcnJvclN1bW1hcnlJdGVtQ29tcG9uZW50LFxuICAgIEZvb3RlckNvbXBvbmVudCxcbiAgICBGb290ZXJNZXRhQ29tcG9uZW50LFxuICAgIEZvb3Rlck1ldGFJdGVtQ29tcG9uZW50LFxuICAgIEZvb3Rlck5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgRm9vdGVyTmF2aWdhdGlvbkl0ZW1Db21wb25lbnQsXG4gICAgSGVhZGVyQ29tcG9uZW50LFxuICAgIEhlYWRlclN1Ym5hdkNvbXBvbmVudCxcbiAgICBIZWFkZXJOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIEhlYWRlck5hdmlnYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEhlYWRlckRyb3Bkb3duQ29tcG9uZW50LFxuICAgIEhlYWRlck9mZmNhbnZhc0J1dHRvbkNvbXBvbmVudCxcbiAgICBIZWFkZXJPZmZjYW52YXNDb21wb25lbnQsXG4gICAgSGVhZGVyT2ZmY2FudmFzQ2xvc2VCdXR0b25Db21wb25lbnQsXG4gICAgTGlua3NMaXN0Q29tcG9uZW50LFxuICAgIExpbmtzTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgTGlua3NMaXN0SXRlbVN1YkNvbXBvbmVudCxcbiAgICBNZW51SG9yaXpvbnRhbENvbXBvbmVudCxcbiAgICBNZW51SG9yaXpvbnRhbEl0ZW1Db21wb25lbnQsXG4gICAgTWVudVZlcnRpY2FsQ29tcG9uZW50LFxuICAgIE1lbnVWZXJ0aWNhbEl0ZW1Db21wb25lbnQsXG4gICAgTWVudVZlcnRpY2FsSXRlbVN1YkNvbXBvbmVudCxcbiAgICBNZW51VmVydGljYWxJdGVtU3ViSXRlbUNvbXBvbmVudCxcbiAgICBNZW51YmFyQ29tcG9uZW50LFxuICAgIE1lbnViYXJMYWJlbENvbXBvbmVudCxcbiAgICBNZW51YmFySXRlbUNvbXBvbmVudCxcbiAgICBNZW51YmFyU3ViaXRlbUNvbXBvbmVudCxcbiAgICBNZW51YmFyU3Vic3ViaXRlbUNvbXBvbmVudCxcbiAgICBOYXZDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQsXG4gICAgU2tpcExpbmtDb21wb25lbnQsXG4gICAgTmF2SXRlbUNvbXBvbmVudCxcbiAgICBNZW51TmF2aWdhdGlvbkNvbXBvbmVudCxcblxuICAgIE1lbnViYXJpdGVtRGlyZWN0aXZlLFxuXG4gICAgTWVudU5hdmlnYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIE1lbnVOYXZpZ2F0aW9uU3ViaXRlbUNvbXBvbmVudCxcbiAgICBIZWFkZXJDdXN0b21OYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIExpbmtzTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgTGlua3NMaXN0SXRlbVN1YkNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgRGVzeUNvbW1vbnNNb2R1bGUsXG4gICAgRGVzeUJ1dHRvbnNNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEJyZWFkY3J1bWJzQ29tcG9uZW50LFxuICAgIEJyZWFkY3J1bWJzSXRlbUNvbXBvbmVudCxcbiAgICBFcnJvclN1bW1hcnlDb21wb25lbnQsXG4gICAgRXJyb3JTdW1tYXJ5SXRlbUNvbXBvbmVudCxcbiAgICBGb290ZXJDb21wb25lbnQsXG4gICAgRm9vdGVyTWV0YUNvbXBvbmVudCxcbiAgICBGb290ZXJNZXRhSXRlbUNvbXBvbmVudCxcbiAgICBGb290ZXJOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIEZvb3Rlck5hdmlnYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIEhlYWRlckNvbXBvbmVudCxcbiAgICBIZWFkZXJTdWJuYXZDb21wb25lbnQsXG4gICAgSGVhZGVyTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICBIZWFkZXJOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCxcbiAgICBIZWFkZXJEcm9wZG93bkNvbXBvbmVudCxcbiAgICBIZWFkZXJPZmZjYW52YXNDb21wb25lbnQsXG4gICAgSGVhZGVyT2ZmY2FudmFzQnV0dG9uQ29tcG9uZW50LFxuICAgIEhlYWRlck9mZmNhbnZhc0Nsb3NlQnV0dG9uQ29tcG9uZW50LFxuICAgIExpbmtzTGlzdENvbXBvbmVudCxcbiAgICBMaW5rc0xpc3RJdGVtQ29tcG9uZW50LFxuICAgIExpbmtzTGlzdEl0ZW1TdWJDb21wb25lbnQsXG4gICAgTWVudUhvcml6b250YWxDb21wb25lbnQsXG4gICAgTWVudUhvcml6b250YWxJdGVtQ29tcG9uZW50LFxuICAgIE1lbnVWZXJ0aWNhbENvbXBvbmVudCxcbiAgICBNZW51VmVydGljYWxJdGVtQ29tcG9uZW50LFxuICAgIE1lbnVWZXJ0aWNhbEl0ZW1TdWJDb21wb25lbnQsXG4gICAgTWVudVZlcnRpY2FsSXRlbVN1Ykl0ZW1Db21wb25lbnQsXG4gICAgTWVudWJhckNvbXBvbmVudCxcbiAgICBNZW51YmFyTGFiZWxDb21wb25lbnQsXG4gICAgTWVudWJhckl0ZW1Db21wb25lbnQsXG4gICAgTWVudWJhclN1Yml0ZW1Db21wb25lbnQsXG4gICAgTWVudWJhclN1YnN1Yml0ZW1Db21wb25lbnQsXG4gICAgTmF2Q29tcG9uZW50LFxuICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICBOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50LFxuICAgIE5hdkl0ZW1Db21wb25lbnQsXG4gICAgU2tpcExpbmtDb21wb25lbnQsXG4gICAgTWVudU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgTWVudU5hdmlnYXRpb25TdWJpdGVtQ29tcG9uZW50LFxuICAgIE1lbnVOYXZpZ2F0aW9uSXRlbUNvbXBvbmVudCxcbiAgICBNZW51TmF2aWdhdGlvblN1Yml0ZW1Db21wb25lbnQsXG4gICAgSGVhZGVyQ3VzdG9tTmF2aWdhdGlvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERlc3lOYXZNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLXNraXBsaW5rLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW5hdi9pbnRlcmZhY2VzL2hlYWRlci1za2lwbGluay1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEhlYWRlclNraXBMaW5rRGF0YSB7XG4gICAgdGV4dD86IHN0cmluZztcbiAgICBodG1sPzogc3RyaW5nO1xuICAgIGNsYXNzZXM/OiBzdHJpbmc7XG4gICAgZnJhZ21lbnQ/OiBzdHJpbmc7XG4gICAgaWQ/OiBzdHJpbmc7XG4gIH0iXX0=
@@ -12,39 +12,38 @@ import * as i4 from "../../../desy-buttons/components/listbox/listbox.component"
12
12
  import * as i5 from "../../../desy-buttons/components/listbox/listbox-label/listbox-label.component";
13
13
  import * as i6 from "../../../shared/pipes/make-html-list.pipe";
14
14
  export class PaginationComponent extends AccessibilityComponent {
15
- constructor() {
16
- super(...arguments);
15
+ constructor(changeDetector) {
16
+ super();
17
+ this.changeDetector = changeDetector;
17
18
  this.currentPage = 1; // == currentPageindex + 1
18
19
  this.currentPageChange = new EventEmitter();
20
+ this.itemsPerPageChange = new EventEmitter();
19
21
  this.defaultText = false;
20
22
  this.previousIcon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 140 140" width="1em" height="1em" class="self-center h-2.5 w-2.5 mr-2" aria-hidden="true" focusable="false"><path d="M54.87 71.77a2.5 2.5 0 010-3.54L106 17.07A10 10 0 1091.89 2.93L35.43 59.39a15 15 0 000 21.22l56.46 56.46A10 10 0 10106 122.93z" fill="currentColor" /></svg>';
21
23
  this.nextIcon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 140 140" width="1em" height="1em" class="self-center h-2.5 w-2.5 ml-2" aria-hidden="true" focusable="false"><path d="M34 137.07a10 10 0 010-14.14l51.13-51.16a2.5 2.5 0 000-3.54L34 17.07A10 10 0 0148.11 2.93l56.46 56.46a15 15 0 010 21.22l-56.46 56.46a10 10 0 01-14.11 0z" fill="currentColor" /></svg>';
22
24
  this.prefix = '<span class="sr-only">Página&nbsp;</span>';
23
25
  }
24
26
  ngOnChanges(changes) {
27
+ if (this.currentPage === null || this.currentPage === undefined) {
28
+ this.currentPage = 1;
29
+ }
25
30
  this.checkChanges();
26
31
  this.classesContainer = this.classesContainer ? this.classesContainer += ' lg:flex lg:flex-wrap lg:items-center lg:gap-base' : 'lg:flex lg:flex-wrap lg:items-center lg:gap-base';
27
32
  this.id = this.id ? this.id : null;
28
33
  }
29
- ngAfterViewInit() {
30
- if (this.itemsPerPage && this.listboxItems && this.listboxItems.length > 0) {
31
- let itemActive = false;
32
- this.listboxItems.forEach((item) => {
33
- if (this.itemsPerPage == item.value) {
34
- item.active = true;
35
- itemActive = true;
36
- }
34
+ ngAfterContentInit() {
35
+ if (this.listboxItemsPerPage) {
36
+ this.setupItemsPerPage();
37
+ this.listboxItemsPerPage.changes.subscribe(() => {
38
+ this.setupItemsPerPage();
37
39
  });
38
- if (!itemActive) {
39
- this.listboxItems.first.active = true;
40
- }
41
40
  }
42
41
  }
43
42
  checkChanges() {
44
43
  this.nPages = Math.ceil(this.totalItems / this.itemsPerPage);
45
44
  if (!this.currentPage || this.currentPage < 1 || this.currentPage > this.nPages) {
46
45
  this.currentPage = 1;
47
- setTimeout(() => this.currentPageChange.emit(this.currentPage));
46
+ this.currentPageChange.emit(this.currentPage);
48
47
  }
49
48
  if (!this.previousText) {
50
49
  this.previousText = 'Anterior';
@@ -63,15 +62,16 @@ export class PaginationComponent extends AccessibilityComponent {
63
62
  return Math.min((pageIndex + 1) * this.itemsPerPage, this.totalItems);
64
63
  }
65
64
  buildPages() {
66
- this.items = [];
65
+ const itemList = [];
67
66
  for (let i = 0; i < this.nPages; i++) {
68
67
  const item = {
69
68
  text: i + 1,
70
69
  active: ((i + 1) === this.currentPage),
71
70
  routerLink: []
72
71
  };
73
- this.items.push(item);
72
+ itemList.push(item);
74
73
  }
74
+ this.items = itemList;
75
75
  }
76
76
  getIdPrefix() {
77
77
  return this.idPrefix ? this.idPrefix : 'pagination-item';
@@ -80,8 +80,11 @@ export class PaginationComponent extends AccessibilityComponent {
80
80
  return this.getIdPrefix() + (index === 0) ? '' : '-' + index;
81
81
  }
82
82
  changePage(current) {
83
+ const hasPageChange = current !== this.currentPage;
83
84
  this.currentPage = current;
84
- this.currentPageChange.emit(this.currentPage);
85
+ if (hasPageChange) {
86
+ this.currentPageChange.emit(this.currentPage);
87
+ }
85
88
  for (let i = 0; i < this.items.length; i++) {
86
89
  const item = this.items[i];
87
90
  item.active = ((i + 1) === this.currentPage);
@@ -104,33 +107,49 @@ export class PaginationComponent extends AccessibilityComponent {
104
107
  getListboxLabel() {
105
108
  return this.listboxLabel ? this.listboxLabel : null;
106
109
  }
107
- getItemsPerPage() {
108
- return this.listboxItems && this.listboxItems.length > 0 ? this.listboxItems.toArray() : null;
109
- }
110
110
  changeItemsPerPage(event) {
111
111
  if (event && event.value) {
112
112
  let newValue = event.value;
113
113
  this.itemsPerPage = newValue;
114
- this.buildPages();
114
+ this.checkChanges();
115
+ this.itemsPerPageChange.emit(newValue);
116
+ this.changeDetector.detectChanges();
117
+ }
118
+ }
119
+ handleActiveItemChange(event) {
120
+ if (event !== null && event !== undefined) {
121
+ this.changePage(+event.text);
122
+ }
123
+ }
124
+ setupItemsPerPage() {
125
+ this.itemsPerPageList = this.listboxItemsPerPage && this.listboxItemsPerPage.length > 0 ? this.listboxItemsPerPage.toArray() : null;
126
+ if (this.itemsPerPageList) {
127
+ const currentItemsPerPageItem = this.itemsPerPageList.find(i => i.value === this.itemsPerPage);
128
+ if (currentItemsPerPageItem) {
129
+ currentItemsPerPageItem.active = true;
130
+ }
131
+ const hasActive = this.itemsPerPageList.find(i => i.active);
132
+ if (!hasActive && this.itemsPerPageList.length > 0) {
133
+ this.itemsPerPageList[0].active = true;
134
+ }
135
+ this.changeDetector.detectChanges();
115
136
  }
116
137
  }
117
138
  }
118
- PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaginationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
119
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: PaginationComponent, selector: "desy-pagination", inputs: { hasSelect: "hasSelect", idPrefix: "idPrefix", totalItems: "totalItems", itemsPerPage: "itemsPerPage", hasPrevious: "hasPrevious", hasNext: "hasNext", previousText: "previousText", nextText: "nextText", hasSelectItemsPerPage: "hasSelectItemsPerPage", classes: "classes", classesContainer: "classesContainer", id: "id", currentPage: "currentPage" }, outputs: { currentPageChange: "currentPageChange" }, host: { properties: { "class": "this.classesContainer", "attr.id": "this.id" } }, queries: [{ propertyName: "listboxLabel", predicate: PaginationListboxLabelComponent }, { propertyName: "listboxItems", predicate: PaginationItemPerPageComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: " <ng-container *ngIf=\"hasSelect\">\n <p class=\"w-full mb-xs text-sm text-neutral-dark\">\n Selecciona una p\u00E1gina para cargar datos\n </p>\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <desy-button (clickEvent)=\"previous()\" [id]=\"getIdPrefix() + '-previous'\"\n [html]=\"previousIcon + prefix + previousText + getSuffix(currentPage - 2)\" [disabled]=\"currentPage === 1 || !hasPrevious\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n <desy-listbox [id]=\"id + '-listbox'\"\n [idPrefix]=\"idPrefix\"\n [text]=\"'P\u00E1gina ' + getActiveItemText()\"\n [classes]=\"'c-listbox--sm c-listbox--transparent mr-xs'\"\n [classesTooltip]=\"'max-h-52 overflow-y-auto'\"\n [doesChangeButtonText]=\"true\"\n [label]=\"{ text: 'Selecciona una p\u00E1gina para cargar datos', classes: 'sr-only' }\"\n [(items)]=\"items\"\n (activeItemChange)=\"changePage(+$event.text)\"></desy-listbox>\n <desy-button (clickEvent)=\"next()\" [id]=\"getIdPrefix() + '-next'\"\n [html]=\"prefix + nextText + getSuffix(currentPage) + nextIcon\" [disabled]=\"currentPage === nPages || !hasNext\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n </nav>\n </ng-container>\n <ng-container *ngIf=\"!hasSelect\">\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul class=\"flex flex-wrap\">\n <li *ngFor=\"let item of items; index as i\">\n <desy-button *ngIf=\"item.active\" [id]=\"getButtonId(i)\"\n [html]=\"'<strong>' + prefix + (i + 1) + getSuffix(i) + '</strong>'\"\n classes=\"c-button--primary c-button--disabled mb-sm mr-sm\"\n [disabled]=\"true\" ariaCurrent=\"page\" tabindex=\"-1\" ></desy-button>\n <desy-button *ngIf=\"!item.active\" [id]=\"getButtonId(i)\"\n [html]=\"prefix + (i + 1) + getSuffix(i)\"\n (clickEvent)=\"changePage(i + 1)\"\n classes=\"mb-sm mr-sm\"></desy-button>\n </li>\n </ul>\n </nav>\n </ng-container>\n \n <div *ngIf=\"hasSelectItemsPerPage\" class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\">\n <desy-listbox \n [classes]=\"'c-listbox--sm c-listbox--transparent'\" \n [classesContainer]=\"'flex flex-wrap items-center gap-xs'\" \n [doesChangeButtonText]=\"true\"\n [items]=\"getItemsPerPage()\"\n (activeItemChange)=\"changeItemsPerPage($event)\">\n <desy-listbox-label [classes]=\"listboxLabel && listboxLabel.classes ? listboxLabel.classes : 'inline-block align-middle mb-0'\">\n <ng-container *ngIf=\"listboxLabel\">\n <ng-container *desyCustomInnerContent=\"{ component: listboxLabel }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!listboxLabel\">\n Items por p\u00E1gina\n </ng-container>\n </desy-listbox-label>\n </desy-listbox>\n </div>\n \n \n <p class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\" *ngIf=\"totalItems && itemsPerPage\">\n <span class=\"sr-only\">Posici\u00F3n de paginaci\u00F3n: </span>{{(currentPage - 1) * itemsPerPage + 1}} - {{getLastItemNumber(currentPage - 1)}} de {{totalItems}}\n </p>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i3.ButtonComponent, selector: "desy-button", inputs: ["id", "classes", "html", "text", "element", "name", "type", "value", "disabled", "href", "target", "preventDoubleClick", "routerLink", "routerLinkActiveClasses"], outputs: ["clickEvent"] }, { kind: "component", type: i4.ListboxComponent, selector: "desy-listbox", inputs: ["id", "isMultiselectable", "doesChangeButtonText", "label", "classes", "classesContainer", "classesTooltip", "idPrefix", "disabled", "items"], outputs: ["itemsChange", "activeItemChange"] }, { kind: "component", type: i5.ListboxLabelComponent, selector: "desy-listbox-label", inputs: ["classes"] }, { kind: "pipe", type: i6.MakeHtmlListPipe, name: "makeHtmlList" }] });
139
+ PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PaginationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
140
+ PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PaginationComponent, selector: "desy-pagination", inputs: { hasSelect: "hasSelect", idPrefix: "idPrefix", totalItems: "totalItems", hasPrevious: "hasPrevious", hasNext: "hasNext", previousText: "previousText", nextText: "nextText", hasSelectItemsPerPage: "hasSelectItemsPerPage", classes: "classes", classesContainer: "classesContainer", id: "id", currentPage: "currentPage", itemsPerPage: "itemsPerPage" }, outputs: { currentPageChange: "currentPageChange", itemsPerPageChange: "itemsPerPageChange" }, host: { properties: { "class": "this.classesContainer", "attr.id": "this.id" } }, queries: [{ propertyName: "listboxLabel", predicate: PaginationListboxLabelComponent }, { propertyName: "listboxItemsPerPage", predicate: PaginationItemPerPageComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"hasSelect\">\n <p class=\"w-full mb-xs text-sm text-neutral-dark\">\n Selecciona una p\u00E1gina para cargar datos\n </p>\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <desy-button (clickEvent)=\"previous()\" [id]=\"getIdPrefix() + '-previous'\"\n [html]=\"previousIcon + prefix + previousText + getSuffix(currentPage - 2)\" [disabled]=\"currentPage === 1 || !hasPrevious\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n <desy-listbox *ngIf=\"items && items.length > 0\" [id]=\"id + '-listbox'\"\n [idPrefix]=\"idPrefix\"\n [text]=\"getActiveItemText()\"\n [classes]=\"'c-listbox--sm c-listbox--transparent mr-xs'\"\n [classesTooltip]=\"'max-h-52 overflow-y-auto'\"\n [doesChangeButtonText]=\"true\"\n [label]=\"{ text: 'Selecciona una p\u00E1gina para cargar datos', classes: 'sr-only' }\"\n [(items)]=\"items\"\n (activeItemChange)=\"handleActiveItemChange($event)\"></desy-listbox>\n <desy-button (clickEvent)=\"next()\" [id]=\"getIdPrefix() + '-next'\"\n [html]=\"prefix + nextText + getSuffix(currentPage) + nextIcon\" [disabled]=\"currentPage === nPages || !hasNext\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n </nav>\n</ng-container>\n<ng-container *ngIf=\"!hasSelect\">\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul class=\"flex flex-wrap\">\n <li *ngFor=\"let item of items; index as i\">\n <desy-button *ngIf=\"item.active\" [id]=\"getButtonId(i)\"\n [html]=\"'<strong>' + prefix + (i + 1) + getSuffix(i) + '</strong>'\"\n classes=\"c-button--primary c-button--disabled mb-sm mr-sm\"\n [disabled]=\"true\" ariaCurrent=\"page\" tabindex=\"-1\" ></desy-button>\n <desy-button *ngIf=\"!item.active\" [id]=\"getButtonId(i)\"\n [html]=\"prefix + (i + 1) + getSuffix(i)\"\n (clickEvent)=\"changePage(i + 1)\"\n classes=\"mb-sm mr-sm\"></desy-button>\n </li>\n </ul>\n </nav>\n</ng-container>\n \n<div *ngIf=\"hasSelectItemsPerPage\" class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\">\n <desy-listbox [classes]=\"'c-listbox--sm c-listbox--transparent'\" \n [classesContainer]=\"'flex flex-wrap items-center gap-xs'\" \n [id]=\"'items-listbox-' + getIdPrefix()\"\n [doesChangeButtonText]=\"true\"\n [items]=\"itemsPerPageList\"\n (activeItemChange)=\"changeItemsPerPage($event)\">\n <desy-listbox-label [classes]=\"listboxLabel && listboxLabel.classes ? listboxLabel.classes : 'inline-block align-middle mb-0'\">\n <ng-container *ngIf=\"listboxLabel\">\n <ng-container *desyCustomInnerContent=\"{ component: listboxLabel }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!listboxLabel\">\n Items por p\u00E1gina\n </ng-container>\n </desy-listbox-label>\n </desy-listbox>\n</div>\n\n\n<p class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\" *ngIf=\"totalItems && itemsPerPage\">\n <span class=\"sr-only\">Posici\u00F3n de paginaci\u00F3n: </span>{{(currentPage - 1) * itemsPerPage + 1}} - {{getLastItemNumber(currentPage - 1)}} de {{totalItems}}\n</p>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i3.ButtonComponent, selector: "desy-button", inputs: ["id", "classes", "html", "text", "element", "name", "type", "value", "disabled", "href", "target", "preventDoubleClick", "routerLink", "routerLinkActiveClasses"], outputs: ["clickEvent"] }, { kind: "component", type: i4.ListboxComponent, selector: "desy-listbox", inputs: ["id", "isMultiselectable", "doesChangeButtonText", "label", "classes", "classesContainer", "classesTooltip", "idPrefix", "disabled", "items"], outputs: ["itemsChange", "activeItemChange"] }, { kind: "component", type: i5.ListboxLabelComponent, selector: "desy-listbox-label", inputs: ["classes"] }, { kind: "pipe", type: i6.MakeHtmlListPipe, name: "makeHtmlList" }] });
120
141
  __decorate([
121
142
  DesyContentChild()
122
143
  ], PaginationComponent.prototype, "listboxLabel", void 0);
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaginationComponent, decorators: [{
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PaginationComponent, decorators: [{
124
145
  type: Component,
125
- args: [{ selector: 'desy-pagination', template: " <ng-container *ngIf=\"hasSelect\">\n <p class=\"w-full mb-xs text-sm text-neutral-dark\">\n Selecciona una p\u00E1gina para cargar datos\n </p>\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <desy-button (clickEvent)=\"previous()\" [id]=\"getIdPrefix() + '-previous'\"\n [html]=\"previousIcon + prefix + previousText + getSuffix(currentPage - 2)\" [disabled]=\"currentPage === 1 || !hasPrevious\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n <desy-listbox [id]=\"id + '-listbox'\"\n [idPrefix]=\"idPrefix\"\n [text]=\"'P\u00E1gina ' + getActiveItemText()\"\n [classes]=\"'c-listbox--sm c-listbox--transparent mr-xs'\"\n [classesTooltip]=\"'max-h-52 overflow-y-auto'\"\n [doesChangeButtonText]=\"true\"\n [label]=\"{ text: 'Selecciona una p\u00E1gina para cargar datos', classes: 'sr-only' }\"\n [(items)]=\"items\"\n (activeItemChange)=\"changePage(+$event.text)\"></desy-listbox>\n <desy-button (clickEvent)=\"next()\" [id]=\"getIdPrefix() + '-next'\"\n [html]=\"prefix + nextText + getSuffix(currentPage) + nextIcon\" [disabled]=\"currentPage === nPages || !hasNext\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n </nav>\n </ng-container>\n <ng-container *ngIf=\"!hasSelect\">\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul class=\"flex flex-wrap\">\n <li *ngFor=\"let item of items; index as i\">\n <desy-button *ngIf=\"item.active\" [id]=\"getButtonId(i)\"\n [html]=\"'<strong>' + prefix + (i + 1) + getSuffix(i) + '</strong>'\"\n classes=\"c-button--primary c-button--disabled mb-sm mr-sm\"\n [disabled]=\"true\" ariaCurrent=\"page\" tabindex=\"-1\" ></desy-button>\n <desy-button *ngIf=\"!item.active\" [id]=\"getButtonId(i)\"\n [html]=\"prefix + (i + 1) + getSuffix(i)\"\n (clickEvent)=\"changePage(i + 1)\"\n classes=\"mb-sm mr-sm\"></desy-button>\n </li>\n </ul>\n </nav>\n </ng-container>\n \n <div *ngIf=\"hasSelectItemsPerPage\" class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\">\n <desy-listbox \n [classes]=\"'c-listbox--sm c-listbox--transparent'\" \n [classesContainer]=\"'flex flex-wrap items-center gap-xs'\" \n [doesChangeButtonText]=\"true\"\n [items]=\"getItemsPerPage()\"\n (activeItemChange)=\"changeItemsPerPage($event)\">\n <desy-listbox-label [classes]=\"listboxLabel && listboxLabel.classes ? listboxLabel.classes : 'inline-block align-middle mb-0'\">\n <ng-container *ngIf=\"listboxLabel\">\n <ng-container *desyCustomInnerContent=\"{ component: listboxLabel }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!listboxLabel\">\n Items por p\u00E1gina\n </ng-container>\n </desy-listbox-label>\n </desy-listbox>\n </div>\n \n \n <p class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\" *ngIf=\"totalItems && itemsPerPage\">\n <span class=\"sr-only\">Posici\u00F3n de paginaci\u00F3n: </span>{{(currentPage - 1) * itemsPerPage + 1}} - {{getLastItemNumber(currentPage - 1)}} de {{totalItems}}\n </p>\n" }]
126
- }], propDecorators: { hasSelect: [{
146
+ args: [{ selector: 'desy-pagination', template: "<ng-container *ngIf=\"hasSelect\">\n <p class=\"w-full mb-xs text-sm text-neutral-dark\">\n Selecciona una p\u00E1gina para cargar datos\n </p>\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <desy-button (clickEvent)=\"previous()\" [id]=\"getIdPrefix() + '-previous'\"\n [html]=\"previousIcon + prefix + previousText + getSuffix(currentPage - 2)\" [disabled]=\"currentPage === 1 || !hasPrevious\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n <desy-listbox *ngIf=\"items && items.length > 0\" [id]=\"id + '-listbox'\"\n [idPrefix]=\"idPrefix\"\n [text]=\"getActiveItemText()\"\n [classes]=\"'c-listbox--sm c-listbox--transparent mr-xs'\"\n [classesTooltip]=\"'max-h-52 overflow-y-auto'\"\n [doesChangeButtonText]=\"true\"\n [label]=\"{ text: 'Selecciona una p\u00E1gina para cargar datos', classes: 'sr-only' }\"\n [(items)]=\"items\"\n (activeItemChange)=\"handleActiveItemChange($event)\"></desy-listbox>\n <desy-button (clickEvent)=\"next()\" [id]=\"getIdPrefix() + '-next'\"\n [html]=\"prefix + nextText + getSuffix(currentPage) + nextIcon\" [disabled]=\"currentPage === nPages || !hasNext\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n </nav>\n</ng-container>\n<ng-container *ngIf=\"!hasSelect\">\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul class=\"flex flex-wrap\">\n <li *ngFor=\"let item of items; index as i\">\n <desy-button *ngIf=\"item.active\" [id]=\"getButtonId(i)\"\n [html]=\"'<strong>' + prefix + (i + 1) + getSuffix(i) + '</strong>'\"\n classes=\"c-button--primary c-button--disabled mb-sm mr-sm\"\n [disabled]=\"true\" ariaCurrent=\"page\" tabindex=\"-1\" ></desy-button>\n <desy-button *ngIf=\"!item.active\" [id]=\"getButtonId(i)\"\n [html]=\"prefix + (i + 1) + getSuffix(i)\"\n (clickEvent)=\"changePage(i + 1)\"\n classes=\"mb-sm mr-sm\"></desy-button>\n </li>\n </ul>\n </nav>\n</ng-container>\n \n<div *ngIf=\"hasSelectItemsPerPage\" class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\">\n <desy-listbox [classes]=\"'c-listbox--sm c-listbox--transparent'\" \n [classesContainer]=\"'flex flex-wrap items-center gap-xs'\" \n [id]=\"'items-listbox-' + getIdPrefix()\"\n [doesChangeButtonText]=\"true\"\n [items]=\"itemsPerPageList\"\n (activeItemChange)=\"changeItemsPerPage($event)\">\n <desy-listbox-label [classes]=\"listboxLabel && listboxLabel.classes ? listboxLabel.classes : 'inline-block align-middle mb-0'\">\n <ng-container *ngIf=\"listboxLabel\">\n <ng-container *desyCustomInnerContent=\"{ component: listboxLabel }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!listboxLabel\">\n Items por p\u00E1gina\n </ng-container>\n </desy-listbox-label>\n </desy-listbox>\n</div>\n\n\n<p class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\" *ngIf=\"totalItems && itemsPerPage\">\n <span class=\"sr-only\">Posici\u00F3n de paginaci\u00F3n: </span>{{(currentPage - 1) * itemsPerPage + 1}} - {{getLastItemNumber(currentPage - 1)}} de {{totalItems}}\n</p>\n" }]
147
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { hasSelect: [{
127
148
  type: Input
128
149
  }], idPrefix: [{
129
150
  type: Input
130
151
  }], totalItems: [{
131
152
  type: Input
132
- }], itemsPerPage: [{
133
- type: Input
134
153
  }], hasPrevious: [{
135
154
  type: Input
136
155
  }], hasNext: [{
@@ -156,12 +175,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
156
175
  }], listboxLabel: [{
157
176
  type: ContentChildren,
158
177
  args: [PaginationListboxLabelComponent]
159
- }], listboxItems: [{
178
+ }], listboxItemsPerPage: [{
160
179
  type: ContentChildren,
161
180
  args: [PaginationItemPerPageComponent]
162
181
  }], currentPage: [{
163
182
  type: Input
164
183
  }], currentPageChange: [{
165
184
  type: Output
185
+ }], itemsPerPage: [{
186
+ type: Input
187
+ }], itemsPerPageChange: [{
188
+ type: Output
166
189
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXBhZ2luYXRpb24vY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1wYWdpbmF0aW9uL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBMkMsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzlHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDOzs7Ozs7OztBQU9qSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsc0JBQXNCO0lBSi9EOztRQXlCVyxnQkFBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtRQUMxQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3pELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRXBCLGlCQUFZLEdBQUcseVVBQXlVLENBQUM7UUFDelYsYUFBUSxHQUFHLGtXQUFrVyxDQUFDO1FBQzlXLFdBQU0sR0FBRywyQ0FBMkMsQ0FBQztLQWdIL0Q7SUE5R0MsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztR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akJyRixtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtsQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUV5QixnQkFBZ0I7c0JBQTlDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFDSSxFQUFFO3NCQUFsQyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLFNBQVM7Z0JBR21CLFlBQVk7c0JBQTdELGVBQWU7dUJBQUMsK0JBQStCO2dCQUVDLFlBQVk7c0JBQTVELGVBQWU7dUJBQUMsOEJBQThCO2dCQUV0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGVzeUNvbnRlbnRDaGlsZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkl0ZW1EYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uSXRlbVBlclBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9wYWdpbmF0aW9uLWl0ZW0tcGVycGFnZS9wYWdpbmF0aW9uLWl0ZW0tcGVycGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkxpc3Rib3hMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL3BhZ2luYXRpb24tbGlzdGJveC1sYWJlbC9wYWdpbmF0aW9uLWxpc3Rib3gtbGFiZWwuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIEFjY2Vzc2liaWxpdHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQgeyBcbiAgXG4gIEBJbnB1dCgpIGhhc1NlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgdG90YWxJdGVtczogbnVtYmVyO1xuICBASW5wdXQoKSBpdGVtc1BlclBhZ2U6IG51bWJlcjtcbiAgQElucHV0KCkgaGFzUHJldmlvdXM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhhc05leHQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHByZXZpb3VzVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBuZXh0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBoYXNTZWxlY3RJdGVtc1BlclBhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc2VzQ29udGFpbmVyOiBhbnk7XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkOiBhbnk7XG5cbiAgQERlc3lDb250ZW50Q2hpbGQoKVxuICBAQ29udGVudENoaWxkcmVuKFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQpIGxpc3Rib3hMYWJlbDogUGFnaW5hdGlvbkxpc3Rib3hMYWJlbENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkcmVuKFBhZ2luYXRpb25JdGVtUGVyUGFnZUNvbXBvbmVudCkgbGlzdGJveEl0ZW1zOiBRdWVyeUxpc3Q8UGFnaW5hdGlvbkl0ZW1QZXJQYWdlQ29tcG9uZW50PjtcblxuICBASW5wdXQoKSBjdXJyZW50UGFnZSA9IDE7IC8vID09IGN1cnJlbnRQYWdlaW5kZXggKyAxXG4gIEBPdXRwdXQoKSBjdXJyZW50UGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIG5QYWdlczogbnVtYmVyO1xuICBpdGVtczogUGFnaW5hdGlvbkl0ZW1EYXRhW107XG5cbiAgZGVmYXVsdFRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICByZWFkb25seSBwcmV2aW91c0ljb24gPSAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgIHdpZHRoPVwiMWVtXCIgaGVpZ2h0PVwiMWVtXCIgY2xhc3M9XCJzZWxmLWNlbnRlciBoLTIuNSB3LTIuNSBtci0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgZm9jdXNhYmxlPVwiZmFsc2VcIj48cGF0aCBkPVwiTTU0Ljg3IDcxLjc3YTIuNSAyLjUgMCAwMTAtMy41NEwxMDYgMTcuMDdBMTAgMTAgMCAxMDkxLjg5IDIuOTNMMzUuNDMgNTkuMzlhMTUgMTUgMCAwMDAgMjEuMjJsNTYuNDYgNTYuNDZBMTAgMTAgMCAxMDEwNiAxMjIuOTN6XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+PC9zdmc+JztcbiAgcmVhZG9ubHkgbmV4dEljb24gPSAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInNlbGYtY2VudGVyIGgtMi41IHctMi41IG1sLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPjxwYXRoIGQ9XCJNMzQgMTM3LjA3YTEwIDEwIDAgMDEwLTE0LjE0bDUxLjEzLTUxLjE2YTIuNSAyLjUgMCAwMDAtMy41NEwzNCAxNy4wN0ExMCAxMCAwIDAxNDguMTEgMi45M2w1Ni40NiA1Ni40NmExNSAxNSAwIDAxMCAyMS4yMmwtNTYuNDYgNTYuNDZhMTAgMTAgMCAwMS0xNC4xMSAwelwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiAvPjwvc3ZnPic7XG4gIHJlYWRvbmx5IHByZWZpeCA9ICc8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Qw6FnaW5hJm5ic3A7PC9zcGFuPic7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tDaGFuZ2VzKCk7XG4gICAgdGhpcy5jbGFzc2VzQ29udGFpbmVyID0gdGhpcy5jbGFzc2VzQ29udGFpbmVyID8gdGhpcy5jbGFzc2VzQ29udGFpbmVyICs9ICcgbGc6ZmxleCBsZzpmbGV4LXdyYXAgbGc6aXRlbXMtY2VudGVyIGxnOmdhcC1iYXNlJyA6ICdsZzpmbGV4IGxnOmZsZXgtd3JhcCBsZzppdGVtcy1jZW50ZXIgbGc6Z2FwLWJhc2UnXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQgPyB0aGlzLmlkIDogbnVsbFxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmKHRoaXMuaXRlbXNQZXJQYWdlICYmIHRoaXMubGlzdGJveEl0ZW1zICYmIHRoaXMubGlzdGJveEl0ZW1zLmxlbmd0aCA+IDApe1xuICAgICAgbGV0IGl0ZW1BY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMubGlzdGJveEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYodGhpcy5pdGVtc1BlclBhZ2UgPT0gaXRlbS52YWx1ZSl7XG4gICAgICAgICAgaXRlbS5hY3RpdmUgPSB0cnVlOyBcbiAgICAgICAgICBpdGVtQWN0aXZlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmKCFpdGVtQWN0aXZlKXtcbiAgICAgICAgdGhpcy5saXN0Ym94SXRlbXMuZmlyc3QuYWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja0NoYW5nZXMoKXtcbiAgICB0aGlzLm5QYWdlcyA9IE1hdGguY2VpbCh0aGlzLnRvdGFsSXRlbXMgLyB0aGlzLml0ZW1zUGVyUGFnZSk7XG5cbiAgICBpZiAoIXRoaXMuY3VycmVudFBhZ2UgfHwgdGhpcy5jdXJyZW50UGFnZSA8IDEgfHwgdGhpcy5jdXJyZW50UGFnZSA+IHRoaXMublBhZ2VzKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICAgIHNldFRpbWVvdXQoICgpID0+IHRoaXMuY3VycmVudFBhZ2VDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnByZXZpb3VzVGV4dCkge1xuICAgICAgdGhpcy5wcmV2aW91c1RleHQgPSAnQW50ZXJpb3InO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubmV4dFRleHQpIHtcbiAgICAgIHRoaXMubmV4dFRleHQgPSAnU2lndWllbnRlJztcbiAgICB9XG4gICAgdGhpcy5idWlsZFBhZ2VzKCk7XG4gIH1cblxuICBnZXRTdWZmaXgocGFnZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGFnZSA+PSAwICYmIHBhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSA8IHRoaXMudG90YWxJdGVtcyA/XG4gICAgICBgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+OiZuYnNwO1DDoWdpbmEgJHtwYWdlICsgMX0gY29uIGxvcyByZXN1bHRhZG9zIGRlbCAke3BhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSArIDF9IGFsICR7dGhpcy5nZXRMYXN0SXRlbU51bWJlcihwYWdlKX08L3NwYW4+YFxuICAgICAgOiAnJztcbiAgfVxuXG4gIGdldExhc3RJdGVtTnVtYmVyKHBhZ2VJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4oKHBhZ2VJbmRleCArIDEpICogdGhpcy5pdGVtc1BlclBhZ2UsIHRoaXMudG90YWxJdGVtcyk7XG4gIH1cblxuICBidWlsZFBhZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMublBhZ2VzOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW06IFBhZ2luYXRpb25JdGVtRGF0YSA9IHtcbiAgICAgICAgdGV4dDogaSArIDEsXG4gICAgICAgIGFjdGl2ZTogKCAoaSArIDEpICA9PT0gdGhpcy5jdXJyZW50UGFnZSksXG4gICAgICAgIHJvdXRlckxpbms6IFtdXG4gICAgICB9O1xuICAgICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogJ3BhZ2luYXRpb24taXRlbSc7XG4gIH1cblxuICBnZXRCdXR0b25JZCggaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SWRQcmVmaXgoKSArIChpbmRleCA9PT0gMCkgPyAnJyA6ICctJyArIGluZGV4O1xuICB9XG5cbiAgY2hhbmdlUGFnZShjdXJyZW50OiBudW1iZXIpOiB2b2lke1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBjdXJyZW50O1xuICAgIHRoaXMuY3VycmVudFBhZ2VDaGFuZ2UuZW1pdCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zW2ldO1xuICAgICAgaXRlbS5hY3RpdmUgPSAgKChpICsgMSkgPT09IHRoaXMuY3VycmVudFBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIHByZXZpb3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlID4gMSkge1xuICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMuY3VycmVudFBhZ2UgLSAxKTtcbiAgICB9XG4gIH1cblxuICBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlIDwgdGhpcy5uUGFnZXMpIHtcbiAgICAgIHRoaXMuY2hhbmdlUGFnZSh0aGlzLmN1cnJlbnRQYWdlICsgMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWN0aXZlSXRlbVRleHQoKTogYW55IHtcbiAgICBjb25zdCBhY3RpdmVJdGVtcyA9ICB0aGlzLml0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0uYWN0aXZlKTtcbiAgICByZXR1cm4gYWN0aXZlSXRlbXMgJiYgYWN0aXZlSXRlbXMubGVuZ3RoID4gMCA/IGFjdGl2ZUl0ZW1zWzBdLnRleHQgOiAnJztcbiAgfVxuXG4gIGdldExpc3Rib3hMYWJlbCgpOiBQYWdpbmF0aW9uTGlzdGJveExhYmVsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5saXN0Ym94TGFiZWwgPyB0aGlzLmxpc3Rib3hMYWJlbCA6IG51bGw7XG4gIH1cblxuICBnZXRJdGVtc1BlclBhZ2UoKTogUGFnaW5hdGlvbkl0ZW1QZXJQYWdlQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLmxpc3Rib3hJdGVtcyAmJiB0aGlzLmxpc3Rib3hJdGVtcy5sZW5ndGggPiAwID8gdGhpcy5saXN0Ym94SXRlbXMudG9BcnJheSgpIDogbnVsbDtcbiAgfVxuXG4gIGNoYW5nZUl0ZW1zUGVyUGFnZShldmVudDogYW55KSB7XG4gICAgaWYoZXZlbnQgJiYgZXZlbnQudmFsdWUpe1xuICAgICAgbGV0IG5ld1ZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5idWlsZFBhZ2VzKCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1NlbGVjdFwiPlxuICAgIDxwIGNsYXNzPVwidy1mdWxsIG1iLXhzIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmtcIj5cbiAgICAgIFNlbGVjY2lvbmEgdW5hIHDDoWdpbmEgcGFyYSBjYXJnYXIgZGF0b3NcbiAgICA8L3A+XG4gICAgPG5hdiBbY2xhc3NdPVwiWydmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZmxleC0xIG1iLWJhc2UgbGc6bWItMCB0ZXh0LXNtJywgY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPyBhcmlhTGFiZWwgOiBudWxsXCJcbiAgICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5ID8gYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgPyBhcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlbiA/IGFyaWFIaWRkZW4gOiBudWxsXCJcbiAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkID8gYXJpYURpc2FibGVkIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9scyA/IGFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50ID8gYXJpYUN1cnJlbnQgOiBudWxsXCJcbiAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJhcmlhTGl2ZSA/IGFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZCA/IGFyaWFFeHBhbmRlZCA6IG51bGxcIlxuICAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwID8gYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleCA/IHRhYmluZGV4IDogbnVsbFwiPlxuICAgICAgPGRlc3ktYnV0dG9uIChjbGlja0V2ZW50KT1cInByZXZpb3VzKClcIiBbaWRdPVwiZ2V0SWRQcmVmaXgoKSArICctcHJldmlvdXMnXCJcbiAgICAgICAgICAgICAgICAgICBbaHRtbF09XCJwcmV2aW91c0ljb24gKyBwcmVmaXggKyBwcmV2aW91c1RleHQgKyBnZXRTdWZmaXgoY3VycmVudFBhZ2UgLSAyKVwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMSB8fCAhaGFzUHJldmlvdXNcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tc20gYy1idXR0b24tLXRyYW5zcGFyZW50IG1yLXhzXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICAgIDxkZXN5LWxpc3Rib3ggW2lkXT1cImlkICsgJy1saXN0Ym94J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIidQw6FnaW5hICcgKyBnZXRBY3RpdmVJdGVtVGV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiJ2MtbGlzdGJveC0tc20gYy1saXN0Ym94LS10cmFuc3BhcmVudCBtci14cydcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc1Rvb2x0aXBdPVwiJ21heC1oLTUyIG92ZXJmbG93LXktYXV0bydcIlxuICAgICAgICAgICAgICAgICAgICBbZG9lc0NoYW5nZUJ1dHRvblRleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ7IHRleHQ6ICdTZWxlY2Npb25hIHVuYSBww6FnaW5hIHBhcmEgY2FyZ2FyIGRhdG9zJywgY2xhc3NlczogJ3NyLW9ubHknIH1cIlxuICAgICAgICAgICAgICAgICAgICBbKGl0ZW1zKV09XCJpdGVtc1wiXG4gICAgICAgICAgICAgICAgICAgIChhY3RpdmVJdGVtQ2hhbmdlKT1cImNoYW5nZVBhZ2UoKyRldmVudC50ZXh0KVwiPjwvZGVzeS1saXN0Ym94PlxuICAgICAgPGRlc3ktYnV0dG9uIChjbGlja0V2ZW50KT1cIm5leHQoKVwiIFtpZF09XCJnZXRJZFByZWZpeCgpICsgJy1uZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgW2h0bWxdPVwicHJlZml4ICsgbmV4dFRleHQgKyBnZXRTdWZmaXgoY3VycmVudFBhZ2UpICsgbmV4dEljb25cIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IG5QYWdlcyB8fCAhaGFzTmV4dFwiXG4gICAgICAgICAgICAgICAgICAgY2xhc3Nlcz1cImMtYnV0dG9uLS1zbSBjLWJ1dHRvbi0tdHJhbnNwYXJlbnQgbXIteHNcIj48L2Rlc3ktYnV0dG9uPlxuICAgIDwvbmF2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNTZWxlY3RcIj5cbiAgICA8bmF2IFtjbGFzc109XCJbJ2ZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBmbGV4LTEgbWItYmFzZSBsZzptYi0wIHRleHQtc20nLCBjbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgICBbYXR0ci5yb2xlXT1cInJvbGUgPyByb2xlIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgPyBhcmlhRGVzY3JpYmVkQnkgOiBudWxsXCJcbiAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeSA/IGFyaWFMYWJlbGxlZEJ5IDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJhcmlhRGlzYWJsZWQgPyBhcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzID8gYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlID8gYXJpYUxpdmUgOiBudWxsXCJcbiAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiYXJpYUV4cGFuZGVkID8gYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJhcmlhSGFzUG9wdXAgPyBhcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4ID8gdGFiaW5kZXggOiBudWxsXCI+XG4gICAgICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcFwiPlxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICA8ZGVzeS1idXR0b24gKm5nSWY9XCJpdGVtLmFjdGl2ZVwiIFtpZF09XCJnZXRCdXR0b25JZChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cIic8c3Ryb25nPicgKyBwcmVmaXggKyAoaSArIDEpICsgZ2V0U3VmZml4KGkpICsgJzwvc3Ryb25nPidcIlxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPVwiYy1idXR0b24tLXByaW1hcnkgYy1idXR0b24tLWRpc2FibGVkIG1iLXNtIG1yLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIiBhcmlhQ3VycmVudD1cInBhZ2VcIiB0YWJpbmRleD1cIi0xXCIgPjwvZGVzeS1idXR0b24+XG4gICAgICAgICAgPGRlc3ktYnV0dG9uICpuZ0lmPVwiIWl0ZW0uYWN0aXZlXCIgW2lkXT1cImdldEJ1dHRvbklkKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2h0bWxdPVwicHJlZml4ICsgKGkgKyAxKSArIGdldFN1ZmZpeChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGlja0V2ZW50KT1cImNoYW5nZVBhZ2UoaSArIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nlcz1cIm1iLXNtIG1yLXNtXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uYXY+XG4gIDwvbmctY29udGFpbmVyPlxuICBcbiAgPGRpdiAqbmdJZj1cImhhc1NlbGVjdEl0ZW1zUGVyUGFnZVwiIGNsYXNzPVwiYmxvY2sgcmVsYXRpdmUgLXRvcC14cyBsZzptbC1hdXRvIHRleHQtc20gdGV4dC1uZXV0cmFsLWRhcmtcIj5cbiAgICA8ZGVzeS1saXN0Ym94IFxuICAgICAgW2NsYXNzZXNdPVwiJ2MtbGlzdGJveC0tc20gYy1saXN0Ym94LS10cmFuc3BhcmVudCdcIiBcbiAgICAgIFtjbGFzc2VzQ29udGFpbmVyXT1cIidmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLXhzJ1wiIFxuICAgICAgW2RvZXNDaGFuZ2VCdXR0b25UZXh0XT1cInRydWVcIlxuICAgICAgW2l0ZW1zXT1cImdldEl0ZW1zUGVyUGFnZSgpXCJcbiAgICAgIChhY3RpdmVJdGVtQ2hhbmdlKT1cImNoYW5nZUl0ZW1zUGVyUGFnZSgkZXZlbnQpXCI+XG4gICAgICA8ZGVzeS1saXN0Ym94LWxhYmVsIFtjbGFzc2VzXT1cImxpc3Rib3hMYWJlbCAmJiBsaXN0Ym94TGFiZWwuY2xhc3NlcyA/IGxpc3Rib3hMYWJlbC5jbGFzc2VzIDogJ2lubGluZS1ibG9jayBhbGlnbi1taWRkbGUgbWItMCdcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdGJveExhYmVsXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGxpc3Rib3hMYWJlbCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsaXN0Ym94TGFiZWxcIj5cbiAgICAgICAgICAgIEl0ZW1zIHBvciBww6FnaW5hXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rlc3ktbGlzdGJveC1sYWJlbD5cbiAgICA8L2Rlc3ktbGlzdGJveD5cbiAgPC9kaXY+XG4gIFxuICBcbiAgPHAgY2xhc3M9XCJibG9jayByZWxhdGl2ZSAtdG9wLXhzIGxnOm1sLWF1dG8gdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFya1wiICpuZ0lmPVwidG90YWxJdGVtcyAmJiBpdGVtc1BlclBhZ2VcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Qb3NpY2nDs24gZGUgcGFnaW5hY2nDs246IDwvc3Bhbj57eyhjdXJyZW50UGFnZSAtIDEpICogaXRlbXNQZXJQYWdlICsgMX19IC0ge3tnZXRMYXN0SXRlbU51bWJlcihjdXJyZW50UGFnZSAtIDEpfX0gZGUge3t0b3RhbEl0ZW1zfX1cbiAgPC9wPlxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LXBhZ2luYXRpb24vY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1wYWdpbmF0aW9uL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBNEIsV0FBVyxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUMvSyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUUzRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQzs7Ozs7Ozs7QUFPakgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHNCQUFzQjtJQXFDN0QsWUFBb0IsY0FBaUM7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFEVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFqQjVDLGdCQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO1FBQzFDLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFJL0MsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQU0xRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUVwQixpQkFBWSxHQUFHLHlVQUF5VSxDQUFDO1FBQ3pWLGFBQVEsR0FBRyxr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LEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFeUIsZ0JBQWdCO3NCQUE5QyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLE9BQU87Z0JBQ0ksRUFBRTtzQkFBbEMsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxTQUFTO2dCQUdtQixZQUFZO3NCQUE3RCxlQUFlO3VCQUFDLCtCQUErQjtnQkFFQyxtQkFBbUI7c0JBQW5FLGVBQWU7dUJBQUMsOEJBQThCO2dCQUV0QyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFHRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBRdWVyeUxpc3QsIEhvc3RCaW5kaW5nLCBDaGFuZ2VEZXRlY3RvclJlZiwgQWZ0ZXJDb250ZW50SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcbmltcG9ydCB7IERlc3lDb250ZW50Q2hpbGQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LWNvbnRlbnQtY2hpbGQuZGVjb3JhdG9yJztcbmltcG9ydCB7IFBhZ2luYXRpb25JdGVtRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkl0ZW1QZXJQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnaW5hdGlvbi1pdGVtLXBlcnBhZ2UvcGFnaW5hdGlvbi1pdGVtLXBlcnBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9wYWdpbmF0aW9uLWxpc3Rib3gtbGFiZWwvcGFnaW5hdGlvbi1saXN0Ym94LWxhYmVsLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0IHsgXG4gIFxuICBASW5wdXQoKSBoYXNTZWxlY3Q6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRvdGFsSXRlbXM6IG51bWJlcjtcbiAgQElucHV0KCkgaGFzUHJldmlvdXM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGhhc05leHQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHByZXZpb3VzVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBuZXh0VGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBoYXNTZWxlY3RJdGVtc1BlclBhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc2VzQ29udGFpbmVyOiBhbnk7XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkOiBhbnk7XG5cbiAgQERlc3lDb250ZW50Q2hpbGQoKVxuICBAQ29udGVudENoaWxkcmVuKFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQpIGxpc3Rib3hMYWJlbDogUGFnaW5hdGlvbkxpc3Rib3hMYWJlbENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkcmVuKFBhZ2luYXRpb25JdGVtUGVyUGFnZUNvbXBvbmVudCkgbGlzdGJveEl0ZW1zUGVyUGFnZTogUXVlcnlMaXN0PFBhZ2luYXRpb25JdGVtUGVyUGFnZUNvbXBvbmVudD47XG5cbiAgQElucHV0KCkgY3VycmVudFBhZ2UgPSAxOyAvLyA9PSBjdXJyZW50UGFnZWluZGV4ICsgMVxuICBAT3V0cHV0KCkgY3VycmVudFBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBcbiAgQElucHV0KCkgaXRlbXNQZXJQYWdlOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBpdGVtc1BlclBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBuUGFnZXM6IG51bWJlcjtcbiAgaXRlbXM6IFBhZ2luYXRpb25JdGVtRGF0YVtdO1xuICBpdGVtc1BlclBhZ2VMaXN0OiBQYWdpbmF0aW9uSXRlbVBlclBhZ2VDb21wb25lbnRbXTtcblxuICBkZWZhdWx0VGV4dDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IHByZXZpb3VzSWNvbiA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE0MCAxNDBcIiAgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInNlbGYtY2VudGVyIGgtMi41IHctMi41IG1yLTJcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiPjxwYXRoIGQ9XCJNNTQuODcgNzEuNzdhMi41IDIuNSAwIDAxMC0zLjU0TDEwNiAxNy4wN0ExMCAxMCAwIDEwOTEuODkgMi45M0wzNS40MyA1OS4zOWExNSAxNSAwIDAwMCAyMS4yMmw1Ni40NiA1Ni40NkExMCAxMCAwIDEwMTA2IDEyMi45M3pcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgLz48L3N2Zz4nO1xuICByZWFkb25seSBuZXh0SWNvbiA9ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE0MCAxNDBcIiB3aWR0aD1cIjFlbVwiIGhlaWdodD1cIjFlbVwiIGNsYXNzPVwic2VsZi1jZW50ZXIgaC0yLjUgdy0yLjUgbWwtMlwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCI+PHBhdGggZD1cIk0zNCAxMzcuMDdhMTAgMTAgMCAwMTAtMTQuMTRsNTEuMTMtNTEuMTZhMi41IDIuNSAwIDAwMC0zLjU0TDM0IDE3LjA3QTEwIDEwIDAgMDE0OC4xMSAyLjkzbDU2LjQ2IDU2LjQ2YTE1IDE1IDAgMDEwIDIxLjIybC01Ni40NiA1Ni40NmExMCAxMCAwIDAxLTE0LjExIDB6XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+PC9zdmc+JztcbiAgcmVhZG9ubHkgcHJlZml4ID0gJzxzcGFuIGNsYXNzPVwic3Itb25seVwiPlDDoWdpbmEmbmJzcDs8L3NwYW4+JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPT09IG51bGwgfHwgdGhpcy5jdXJyZW50UGFnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB9XG4gICAgdGhpcy5jaGVja0NoYW5nZXMoKTtcbiAgICB0aGlzLmNsYXNzZXNDb250YWluZXIgPSB0aGlzLmNsYXNzZXNDb250YWluZXIgPyB0aGlzLmNsYXNzZXNDb250YWluZXIgKz0gJyBsZzpmbGV4IGxnOmZsZXgtd3JhcCBsZzppdGVtcy1jZW50ZXIgbGc6Z2FwLWJhc2UnIDogJ2xnOmZsZXggbGc6ZmxleC13cmFwIGxnOml0ZW1zLWNlbnRlciBsZzpnYXAtYmFzZSdcbiAgICB0aGlzLmlkID0gdGhpcy5pZCA/IHRoaXMuaWQgOiBudWxsXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdGJveEl0ZW1zUGVyUGFnZSkge1xuICAgICAgdGhpcy5zZXR1cEl0ZW1zUGVyUGFnZSgpO1xuICAgICAgdGhpcy5saXN0Ym94SXRlbXNQZXJQYWdlLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXR1cEl0ZW1zUGVyUGFnZSgpO1xuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBjaGVja0NoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5uUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRQYWdlIHx8IHRoaXMuY3VycmVudFBhZ2UgPCAxIHx8IHRoaXMuY3VycmVudFBhZ2UgPiB0aGlzLm5QYWdlcykge1xuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50UGFnZSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnByZXZpb3VzVGV4dCkge1xuICAgICAgdGhpcy5wcmV2aW91c1RleHQgPSAnQW50ZXJpb3InO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubmV4dFRleHQpIHtcbiAgICAgIHRoaXMubmV4dFRleHQgPSAnU2lndWllbnRlJztcbiAgICB9XG4gICAgdGhpcy5idWlsZFBhZ2VzKCk7XG4gIH1cblxuICBnZXRTdWZmaXgocGFnZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGFnZSA+PSAwICYmIHBhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSA8IHRoaXMudG90YWxJdGVtcyA/XG4gICAgICBgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+OiZuYnNwO1DDoWdpbmEgJHtwYWdlICsgMX0gY29uIGxvcyByZXN1bHRhZG9zIGRlbCAke3BhZ2UgKiB0aGlzLml0ZW1zUGVyUGFnZSArIDF9IGFsICR7dGhpcy5nZXRMYXN0SXRlbU51bWJlcihwYWdlKX08L3NwYW4+YFxuICAgICAgOiAnJztcbiAgfVxuXG4gIGdldExhc3RJdGVtTnVtYmVyKHBhZ2VJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4oKHBhZ2VJbmRleCArIDEpICogdGhpcy5pdGVtc1BlclBhZ2UsIHRoaXMudG90YWxJdGVtcyk7XG4gIH1cblxuICBidWlsZFBhZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1MaXN0ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm5QYWdlczsgaSsrKSB7XG4gICAgICBjb25zdCBpdGVtOiBQYWdpbmF0aW9uSXRlbURhdGEgPSB7XG4gICAgICAgIHRleHQ6IGkgKyAxLFxuICAgICAgICBhY3RpdmU6ICggKGkgKyAxKSAgPT09IHRoaXMuY3VycmVudFBhZ2UpLFxuICAgICAgICByb3V0ZXJMaW5rOiBbXVxuICAgICAgfTtcbiAgICAgIGl0ZW1MaXN0LnB1c2goaXRlbSk7XG4gICAgfVxuICAgIHRoaXMuaXRlbXMgPSBpdGVtTGlzdDtcbiAgfVxuXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogJ3BhZ2luYXRpb24taXRlbSc7XG4gIH1cblxuICBnZXRCdXR0b25JZCggaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SWRQcmVmaXgoKSArIChpbmRleCA9PT0gMCkgPyAnJyA6ICctJyArIGluZGV4O1xuICB9XG5cbiAgY2hhbmdlUGFnZShjdXJyZW50OiBudW1iZXIpOiB2b2lke1xuICAgIGNvbnN0IGhhc1BhZ2VDaGFuZ2UgPSBjdXJyZW50ICE9PSB0aGlzLmN1cnJlbnRQYWdlO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBjdXJyZW50O1xuICAgIGlmIChoYXNQYWdlQ2hhbmdlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50UGFnZSk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbXNbaV07XG4gICAgICBpdGVtLmFjdGl2ZSA9ICAoKGkgKyAxKSA9PT0gdGhpcy5jdXJyZW50UGFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiAxKSB7XG4gICAgICB0aGlzLmNoYW5nZVBhZ2UodGhpcy5jdXJyZW50UGFnZSAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIG5leHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPCB0aGlzLm5QYWdlcykge1xuICAgICAgdGhpcy5jaGFuZ2VQYWdlKHRoaXMuY3VycmVudFBhZ2UgKyAxKTtcbiAgICB9XG4gIH1cblxuICBnZXRBY3RpdmVJdGVtVGV4dCgpOiBhbnkge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW1zID0gIHRoaXMuaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5hY3RpdmUpO1xuICAgIHJldHVybiBhY3RpdmVJdGVtcyAmJiBhY3RpdmVJdGVtcy5sZW5ndGggPiAwID8gYWN0aXZlSXRlbXNbMF0udGV4dCA6ICcnO1xuICB9XG5cbiAgZ2V0TGlzdGJveExhYmVsKCk6IFBhZ2luYXRpb25MaXN0Ym94TGFiZWxDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLmxpc3Rib3hMYWJlbCA/IHRoaXMubGlzdGJveExhYmVsIDogbnVsbDtcbiAgfVxuXG4gIGNoYW5nZUl0ZW1zUGVyUGFnZShldmVudDogYW55KSB7XG4gICAgaWYoZXZlbnQgJiYgZXZlbnQudmFsdWUpe1xuICAgICAgbGV0IG5ld1ZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICB0aGlzLml0ZW1zUGVyUGFnZSA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy5jaGVja0NoYW5nZXMoKTtcbiAgICAgIHRoaXMuaXRlbXNQZXJQYWdlQ2hhbmdlLmVtaXQobmV3VmFsdWUpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQWN0aXZlSXRlbUNoYW5nZShldmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudCAhPT0gbnVsbCAmJiBldmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNoYW5nZVBhZ2UoK2V2ZW50LnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHNldHVwSXRlbXNQZXJQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXNQZXJQYWdlTGlzdCA9IHRoaXMubGlzdGJveEl0ZW1zUGVyUGFnZSAmJiB0aGlzLmxpc3Rib3hJdGVtc1BlclBhZ2UubGVuZ3RoID4gMCA/IHRoaXMubGlzdGJveEl0ZW1zUGVyUGFnZS50b0FycmF5KCkgOiBudWxsO1xuICAgIGlmICh0aGlzLml0ZW1zUGVyUGFnZUxpc3QpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtc1BlclBhZ2VJdGVtID0gdGhpcy5pdGVtc1BlclBhZ2VMaXN0LmZpbmQoaSA9PiBpLnZhbHVlID09PSB0aGlzLml0ZW1zUGVyUGFnZSk7XG4gICAgICBpZiAoY3VycmVudEl0ZW1zUGVyUGFnZUl0ZW0pIHtcbiAgICAgICAgY3VycmVudEl0ZW1zUGVyUGFnZUl0ZW0uYWN0aXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc0FjdGl2ZSA9IHRoaXMuaXRlbXNQZXJQYWdlTGlzdC5maW5kKGkgPT4gaS5hY3RpdmUpO1xuICAgICAgaWYgKCFoYXNBY3RpdmUgJiYgdGhpcy5pdGVtc1BlclBhZ2VMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5pdGVtc1BlclBhZ2VMaXN0WzBdLmFjdGl2ZSA9IHRydWU7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc1NlbGVjdFwiPlxuICA8cCBjbGFzcz1cInctZnVsbCBtYi14cyB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrXCI+XG4gICAgU2VsZWNjaW9uYSB1bmEgcMOhZ2luYSBwYXJhIGNhcmdhciBkYXRvc1xuICA8L3A+XG4gIDxuYXYgW2NsYXNzXT1cIlsnZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGZsZXgtMSBtYi1iYXNlIGxnOm1iLTAgdGV4dC1zbScsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPyBhcmlhTGFiZWwgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkQnkgPyBhcmlhRGVzY3JpYmVkQnkgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiYXJpYUhpZGRlbiA/IGFyaWFIaWRkZW4gOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJhcmlhRGlzYWJsZWQgPyBhcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50ID8gYXJpYUN1cnJlbnQgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlID8gYXJpYUxpdmUgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiYXJpYUVycm9yTWVzc2FnZSA/IGFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJhcmlhSGFzUG9wdXAgPyBhcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXggPyB0YWJpbmRleCA6IG51bGxcIj5cbiAgICA8ZGVzeS1idXR0b24gKGNsaWNrRXZlbnQpPVwicHJldmlvdXMoKVwiIFtpZF09XCJnZXRJZFByZWZpeCgpICsgJy1wcmV2aW91cydcIlxuICAgICAgICAgICAgICAgICAgW2h0bWxdPVwicHJldmlvdXNJY29uICsgcHJlZml4ICsgcHJldmlvdXNUZXh0ICsgZ2V0U3VmZml4KGN1cnJlbnRQYWdlIC0gMilcIiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDEgfHwgIWhhc1ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tc20gYy1idXR0b24tLXRyYW5zcGFyZW50IG1yLXhzXCI+PC9kZXN5LWJ1dHRvbj5cbiAgICAgIDxkZXN5LWxpc3Rib3ggKm5nSWY9XCJpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwXCIgW2lkXT1cImlkICsgJy1saXN0Ym94J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImdldEFjdGl2ZUl0ZW1UZXh0KClcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCInYy1saXN0Ym94LS1zbSBjLWxpc3Rib3gtLXRyYW5zcGFyZW50IG1yLXhzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzVG9vbHRpcF09XCInbWF4LWgtNTIgb3ZlcmZsb3cteS1hdXRvJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkb2VzQ2hhbmdlQnV0dG9uVGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInsgdGV4dDogJ1NlbGVjY2lvbmEgdW5hIHDDoWdpbmEgcGFyYSBjYXJnYXIgZGF0b3MnLCBjbGFzc2VzOiAnc3Itb25seScgfVwiXG4gICAgICAgICAgICAgICAgICAgIFsoaXRlbXMpXT1cIml0ZW1zXCJcbiAgICAgICAgICAgICAgICAgICAgKGFjdGl2ZUl0ZW1DaGFuZ2UpPVwiaGFuZGxlQWN0aXZlSXRlbUNoYW5nZSgkZXZlbnQpXCI+PC9kZXN5LWxpc3Rib3g+XG4gICAgPGRlc3ktYnV0dG9uIChjbGlja0V2ZW50KT1cIm5leHQoKVwiIFtpZF09XCJnZXRJZFByZWZpeCgpICsgJy1uZXh0J1wiXG4gICAgICAgICAgICAgICAgICBbaHRtbF09XCJwcmVmaXggKyBuZXh0VGV4dCArIGdldFN1ZmZpeChjdXJyZW50UGFnZSkgKyBuZXh0SWNvblwiIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gblBhZ2VzIHx8ICFoYXNOZXh0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tc20gYy1idXR0b24tLXRyYW5zcGFyZW50IG1yLXhzXCI+PC9kZXN5LWJ1dHRvbj5cbiAgPC9uYXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzU2VsZWN0XCI+XG4gIDxuYXYgW2NsYXNzXT1cIlsnZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGZsZXgtMSBtYi1iYXNlIGxnOm1iLTAgdGV4dC1zbScsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeSA/IGFyaWFEZXNjcmliZWRCeSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgPyBhcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZCA/IGFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9scyA/IGFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmUgPyBhcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZCA/IGFyaWFFeHBhbmRlZCA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cCA/IGFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleCA/IHRhYmluZGV4IDogbnVsbFwiPlxuICAgIDx1bCBjbGFzcz1cImZsZXggZmxleC13cmFwXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgPGRlc3ktYnV0dG9uICpuZ0lmPVwiaXRlbS5hY3RpdmVcIiBbaWRdPVwiZ2V0QnV0dG9uSWQoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cIic8c3Ryb25nPicgKyBwcmVmaXggKyAoaSArIDEpICsgZ2V0U3VmZml4KGkpICsgJzwvc3Ryb25nPidcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM9XCJjLWJ1dHRvbi0tcHJpbWFyeSBjLWJ1dHRvbi0tZGlzYWJsZWQgbWItc20gbXItc21cIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCIgYXJpYUN1cnJlbnQ9XCJwYWdlXCIgdGFiaW5kZXg9XCItMVwiID48L2Rlc3ktYnV0dG9uPlxuICAgICAgICA8ZGVzeS1idXR0b24gKm5nSWY9XCIhaXRlbS5hY3RpdmVcIiBbaWRdPVwiZ2V0QnV0dG9uSWQoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cInByZWZpeCArIChpICsgMSkgKyBnZXRTdWZmaXgoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGlja0V2ZW50KT1cImNoYW5nZVBhZ2UoaSArIDEpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzPVwibWItc20gbXItc21cIj48L2Rlc3ktYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25hdj5cbjwvbmctY29udGFpbmVyPlxuICBcbjxkaXYgKm5nSWY9XCJoYXNTZWxlY3RJdGVtc1BlclBhZ2VcIiBjbGFzcz1cImJsb2NrIHJlbGF0aXZlIC10b3AteHMgbGc6bWwtYXV0byB0ZXh0LXNtIHRleHQtbmV1dHJhbC1kYXJrXCI+XG4gIDxkZXN5LWxpc3Rib3ggW2NsYXNzZXNdPVwiJ2MtbGlzdGJveC0tc20gYy1saXN0Ym94LS10cmFuc3BhcmVudCdcIiBcbiAgICAgICAgICAgICAgICBbY2xhc3Nlc0NvbnRhaW5lcl09XCInZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC14cydcIiBcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ2l0ZW1zLWxpc3Rib3gtJyArIGdldElkUHJlZml4KClcIlxuICAgICAgICAgICAgICAgIFtkb2VzQ2hhbmdlQnV0dG9uVGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNQZXJQYWdlTGlzdFwiXG4gICAgICAgICAgICAgICAgKGFjdGl2ZUl0ZW1DaGFuZ2UpPVwiY2hhbmdlSXRlbXNQZXJQYWdlKCRldmVudClcIj5cbiAgICA8ZGVzeS1saXN0Ym94LWxhYmVsIFtjbGFzc2VzXT1cImxpc3Rib3hMYWJlbCAmJiBsaXN0Ym94TGFiZWwuY2xhc3NlcyA/IGxpc3Rib3hMYWJlbC5jbGFzc2VzIDogJ2lubGluZS1ibG9jayBhbGlnbi1taWRkbGUgbWItMCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpc3Rib3hMYWJlbFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogbGlzdGJveExhYmVsIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlzdGJveExhYmVsXCI+XG4gICAgICAgICAgSXRlbXMgcG9yIHDDoWdpbmFcbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kZXN5LWxpc3Rib3gtbGFiZWw+XG4gIDwvZGVzeS1saXN0Ym94PlxuPC9kaXY+XG5cblxuPHAgY2xhc3M9XCJibG9jayByZWxhdGl2ZSAtdG9wLXhzIGxnOm1sLWF1dG8gdGV4dC1zbSB0ZXh0LW5ldXRyYWwtZGFya1wiICpuZ0lmPVwidG90YWxJdGVtcyAmJiBpdGVtc1BlclBhZ2VcIj5cbiAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+UG9zaWNpw7NuIGRlIHBhZ2luYWNpw7NuOiA8L3NwYW4+e3soY3VycmVudFBhZ2UgLSAxKSAqIGl0ZW1zUGVyUGFnZSArIDF9fSAtIHt7Z2V0TGFzdEl0ZW1OdW1iZXIoY3VycmVudFBhZ2UgLSAxKX19IGRlIHt7dG90YWxJdGVtc319XG48L3A+XG4iXX0=
@@ -3,9 +3,9 @@ import { Component, Input } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class PaginationItemPerPageComponent extends ContentBaseComponent {
5
5
  }
6
- PaginationItemPerPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaginationItemPerPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
- PaginationItemPerPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: PaginationItemPerPageComponent, selector: "desy-pagination-item-perpage", inputs: { classes: "classes", value: "value" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaginationItemPerPageComponent, decorators: [{
6
+ PaginationItemPerPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PaginationItemPerPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
+ PaginationItemPerPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PaginationItemPerPageComponent, selector: "desy-pagination-item-perpage", inputs: { classes: "classes", value: "value" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PaginationItemPerPageComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-pagination-item-perpage',
@@ -3,9 +3,9 @@ import { Component, Input } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class PaginationListboxLabelComponent extends ContentBaseComponent {
5
5
  }
6
- PaginationListboxLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaginationListboxLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
- PaginationListboxLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: PaginationListboxLabelComponent, selector: "desy-pagination-listbox-label", inputs: { classes: "classes" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaginationListboxLabelComponent, decorators: [{
6
+ PaginationListboxLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PaginationListboxLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
+ PaginationListboxLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: PaginationListboxLabelComponent, selector: "desy-pagination-listbox-label", inputs: { classes: "classes" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PaginationListboxLabelComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-pagination-listbox-label',
@@ -9,8 +9,8 @@ import { PaginationComponent } from './components/pagination/pagination.componen
9
9
  import * as i0 from "@angular/core";
10
10
  export class DesyPaginationModule {
11
11
  }
12
- DesyPaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DesyPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- DesyPaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: DesyPaginationModule, declarations: [PaginationComponent,
12
+ DesyPaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DesyPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ DesyPaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: DesyPaginationModule, declarations: [PaginationComponent,
14
14
  PaginationListboxLabelComponent,
15
15
  PaginationItemPerPageComponent], imports: [CommonModule,
16
16
  SharedModule,
@@ -18,11 +18,11 @@ DesyPaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ve
18
18
  DesyButtonsModule], exports: [PaginationComponent,
19
19
  PaginationListboxLabelComponent,
20
20
  PaginationItemPerPageComponent] });
21
- DesyPaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DesyPaginationModule, imports: [CommonModule,
21
+ DesyPaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DesyPaginationModule, imports: [CommonModule,
22
22
  SharedModule,
23
23
  DesyNavModule,
24
24
  DesyButtonsModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DesyPaginationModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DesyPaginationModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [
@@ -3,9 +3,9 @@ import { ContentBaseComponent } from '../../../../shared/components';
3
3
  import * as i0 from "@angular/core";
4
4
  export class TableCaptionComponent extends ContentBaseComponent {
5
5
  }
6
- TableCaptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TableCaptionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
- TableCaptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TableCaptionComponent, selector: "desy-table-caption", inputs: { classes: "classes" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TableCaptionComponent, decorators: [{
6
+ TableCaptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCaptionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
+ TableCaptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableCaptionComponent, selector: "desy-table-caption", inputs: { classes: "classes" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCaptionComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-table-caption',
@@ -3,9 +3,9 @@ import { ContentBaseComponent } from '../../../../shared/components';
3
3
  import * as i0 from "@angular/core";
4
4
  export class TableCellComponent extends ContentBaseComponent {
5
5
  }
6
- TableCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TableCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
- TableCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TableCellComponent, selector: "desy-table-cell", inputs: { classes: "classes", id: "id", colspan: "colspan", rowspan: "rowspan" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TableCellComponent, decorators: [{
6
+ TableCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
+ TableCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TableCellComponent, selector: "desy-table-cell", inputs: { classes: "classes", id: "id", colspan: "colspan", rowspan: "rowspan" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableCellComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-table-cell',