desy-angular 2.0.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/README.md +22 -20
  2. package/bundles/desy-angular.umd.js +8742 -4678
  3. package/bundles/desy-angular.umd.js.map +1 -1
  4. package/bundles/desy-angular.umd.min.js +2 -2
  5. package/bundles/desy-angular.umd.min.js.map +1 -1
  6. package/desy-angular.d.ts +34 -21
  7. package/desy-angular.metadata.json +1 -1
  8. package/esm2015/desy-angular.js +35 -22
  9. package/esm2015/lib/desy-angular.module.js +38 -35
  10. package/esm2015/lib/desy-buttons/components/button/button.component.js +92 -103
  11. package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +50 -45
  12. package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +108 -49
  13. package/esm2015/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.js +26 -0
  14. package/esm2015/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.js +23 -0
  15. package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +275 -0
  16. package/esm2015/lib/desy-buttons/components/pill/pill.component.js +64 -66
  17. package/esm2015/lib/desy-buttons/desy-buttons.module.js +44 -33
  18. package/esm2015/lib/desy-buttons/interfaces/listbox-item-data.js +2 -0
  19. package/esm2015/lib/desy-buttons/interfaces/listbox-label-data.js +2 -0
  20. package/esm2015/lib/desy-commons/components/content/content.component.js +14 -0
  21. package/esm2015/lib/desy-commons/components/description/description.component.js +14 -0
  22. package/esm2015/lib/desy-commons/components/icon/icon.component.js +14 -0
  23. package/esm2015/lib/desy-commons/components/title/title.component.js +14 -0
  24. package/esm2015/lib/desy-commons/desy-commons.module.js +33 -0
  25. package/esm2015/lib/desy-commons/interfaces/content-data.js +2 -0
  26. package/esm2015/lib/desy-commons/interfaces/description-data.js +2 -0
  27. package/esm2015/lib/desy-commons/interfaces/icon-data.js +2 -0
  28. package/esm2015/lib/desy-commons/interfaces/index.js +5 -0
  29. package/esm2015/lib/desy-commons/interfaces/title-data.js +2 -0
  30. package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +124 -124
  31. package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +190 -0
  32. package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +235 -128
  33. package/esm2015/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.js +46 -0
  34. package/esm2015/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.js +19 -0
  35. package/esm2015/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.js +13 -0
  36. package/esm2015/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.js +46 -0
  37. package/esm2015/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.js +44 -0
  38. package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +228 -123
  39. package/esm2015/lib/desy-forms/components/error-message/error-message.component.js +28 -16
  40. package/esm2015/lib/desy-forms/components/fieldset/fieldset.component.js +44 -21
  41. package/esm2015/lib/desy-forms/components/fieldset/legend/legend.component.js +16 -15
  42. package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +59 -59
  43. package/esm2015/lib/desy-forms/components/form-field/form-field.component.js +103 -65
  44. package/esm2015/lib/desy-forms/components/hint/hint.component.js +27 -15
  45. package/esm2015/lib/desy-forms/components/input/input.component.js +58 -59
  46. package/esm2015/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.js +20 -0
  47. package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +46 -0
  48. package/esm2015/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.js +13 -0
  49. package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +42 -0
  50. package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +190 -96
  51. package/esm2015/lib/desy-forms/components/label/label.component.js +30 -17
  52. package/esm2015/lib/desy-forms/components/radios/radio-item/radio-item.component.js +147 -0
  53. package/esm2015/lib/desy-forms/components/radios/radios.component.js +242 -56
  54. package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +57 -47
  55. package/esm2015/lib/desy-forms/components/select/option/option.component.js +17 -0
  56. package/esm2015/lib/desy-forms/components/select/option-group/option-group.component.js +17 -0
  57. package/esm2015/lib/desy-forms/components/select/select-item/select-item.component.js +14 -0
  58. package/esm2015/lib/desy-forms/components/select/select.component.js +74 -59
  59. package/esm2015/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.js +12 -12
  60. package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +67 -67
  61. package/esm2015/lib/desy-forms/desy-forms.module.js +116 -79
  62. package/esm2015/lib/desy-forms/directives/condition.directive.js +35 -35
  63. package/esm2015/lib/desy-forms/interfaces/accesibility-data.js +2 -2
  64. package/esm2015/lib/desy-forms/interfaces/error-message-data.js +2 -2
  65. package/esm2015/lib/desy-forms/interfaces/fieldset-data.js +2 -2
  66. package/esm2015/lib/desy-forms/interfaces/hint-data.js +2 -2
  67. package/esm2015/lib/desy-forms/interfaces/index.js +13 -13
  68. package/esm2015/lib/desy-forms/interfaces/item-checkbox-data.js +2 -2
  69. package/esm2015/lib/desy-forms/interfaces/item-date-input-data.js +2 -2
  70. package/esm2015/lib/desy-forms/interfaces/item-divider-date-input-data.js +2 -0
  71. package/esm2015/lib/desy-forms/interfaces/item-divider-input-group-data.js +2 -2
  72. package/esm2015/lib/desy-forms/interfaces/item-input-group-data.js +2 -2
  73. package/esm2015/lib/desy-forms/interfaces/item-radio-data.js +2 -2
  74. package/esm2015/lib/desy-forms/interfaces/item-radio-with-template-data.js +2 -2
  75. package/esm2015/lib/desy-forms/interfaces/label-data.js +2 -2
  76. package/esm2015/lib/desy-forms/interfaces/legend-data.js +2 -2
  77. package/esm2015/lib/desy-forms/interfaces/select-item-data.js +2 -2
  78. package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +127 -127
  79. package/esm2015/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.js +19 -0
  80. package/esm2015/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.js +19 -0
  81. package/esm2015/lib/desy-modals/components/modal/modal.component.js +144 -59
  82. package/esm2015/lib/desy-modals/desy-modals.module.js +35 -29
  83. package/esm2015/lib/desy-modals/interfaces/dialog-options.js +2 -2
  84. package/esm2015/lib/desy-modals/interfaces/index.js +8 -8
  85. package/esm2015/lib/desy-modals/interfaces/modal-button-data.js +2 -2
  86. package/esm2015/lib/desy-modals/interfaces/modal-data.js +2 -2
  87. package/esm2015/lib/desy-modals/interfaces/modal-icon-data.js +2 -2
  88. package/esm2015/lib/desy-modals/interfaces/modal-options.js +2 -2
  89. package/esm2015/lib/desy-modals/interfaces/open-dialog-result.js +2 -2
  90. package/esm2015/lib/desy-modals/services/dialog.service.js +118 -118
  91. package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.js +15 -0
  92. package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.js +48 -46
  93. package/esm2015/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.js +15 -0
  94. package/esm2015/lib/desy-nav/components/error-summary/error-summary.component.js +52 -31
  95. package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.js +16 -0
  96. package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta.component.js +23 -0
  97. package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.js +16 -0
  98. package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.js +16 -0
  99. package/esm2015/lib/desy-nav/components/footer/footer.component.js +45 -22
  100. package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +34 -44
  101. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.js +19 -0
  102. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +32 -25
  103. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +25 -0
  104. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.js +11 -0
  105. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +88 -26
  106. package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +37 -47
  107. package/esm2015/lib/desy-nav/components/header/header.component.js +58 -27
  108. package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.js +28 -0
  109. package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +81 -61
  110. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.js +32 -0
  111. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.js +16 -0
  112. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.js +24 -0
  113. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +95 -142
  114. package/esm2015/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.js +36 -0
  115. package/esm2015/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.js +14 -0
  116. package/esm2015/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.js +29 -0
  117. package/esm2015/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.js +23 -0
  118. package/esm2015/lib/desy-nav/components/menubar/directives/menubaritem.directive.js +37 -0
  119. package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +656 -0
  120. package/esm2015/lib/desy-nav/components/nav/nav-item/nav-item.component.js +30 -0
  121. package/esm2015/lib/desy-nav/components/nav/nav.component.js +85 -63
  122. package/esm2015/lib/desy-nav/components/notification/notification-item/notification-item.component.js +18 -0
  123. package/esm2015/lib/desy-nav/components/notification/notification.component.js +110 -83
  124. package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +42 -23
  125. package/esm2015/lib/desy-nav/desy-nav.module.js +123 -57
  126. package/esm2015/lib/desy-nav/interfaces/breadcrumbs.data.js +2 -2
  127. package/esm2015/lib/desy-nav/interfaces/error-summary-data.js +2 -2
  128. package/esm2015/lib/desy-nav/interfaces/footer-data.js +2 -2
  129. package/esm2015/lib/desy-nav/interfaces/header-dropdown-data.js +2 -2
  130. package/esm2015/lib/desy-nav/interfaces/header-navigation-data.js +2 -2
  131. package/esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js +2 -2
  132. package/esm2015/lib/desy-nav/interfaces/header-offcanvas-data.js +2 -2
  133. package/esm2015/lib/desy-nav/interfaces/header-subnav-data.js +2 -2
  134. package/esm2015/lib/desy-nav/interfaces/index.js +17 -21
  135. package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-data.js +2 -2
  136. package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-event-data.js +2 -2
  137. package/esm2015/lib/desy-nav/interfaces/menu-vertical-items-data.js +2 -2
  138. package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-data.js +2 -2
  139. package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-items-data.js +2 -2
  140. package/esm2015/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.js +2 -0
  141. package/esm2015/lib/desy-nav/interfaces/menubar-item-sub-item.js +2 -0
  142. package/esm2015/lib/desy-nav/interfaces/menubar-item-sub.js +2 -0
  143. package/esm2015/lib/desy-nav/interfaces/menubar-item.js +2 -0
  144. package/esm2015/lib/desy-nav/interfaces/nav-item-event.data.js +2 -2
  145. package/esm2015/lib/desy-nav/interfaces/nav-item.data.js +2 -2
  146. package/esm2015/lib/desy-nav/interfaces/notification-items-data.js +2 -2
  147. package/esm2015/lib/desy-nav/interfaces/notification-options.js +2 -2
  148. package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +104 -139
  149. package/esm2015/lib/desy-pagination/desy-pagination.module.js +25 -25
  150. package/esm2015/lib/desy-pagination/interfaces/index.js +2 -2
  151. package/esm2015/lib/desy-pagination/interfaces/pagination-item.data.js +2 -2
  152. package/esm2015/lib/desy-tables/components/table/components/table-caption.component.js +14 -0
  153. package/esm2015/lib/desy-tables/components/table/components/table-cell.component.js +17 -0
  154. package/esm2015/lib/desy-tables/components/table/components/table-header.component.js +14 -0
  155. package/esm2015/lib/desy-tables/components/table/components/table-row.component.js +14 -0
  156. package/esm2015/lib/desy-tables/components/table/table.component.js +67 -34
  157. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.js +20 -0
  158. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.js +14 -0
  159. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.js +17 -0
  160. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.js +20 -0
  161. package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +288 -264
  162. package/esm2015/lib/desy-tables/desy-tables.module.js +61 -33
  163. package/esm2015/lib/desy-tables/directives/cell.directive.js +26 -0
  164. package/esm2015/lib/desy-tables/directives/focus-clicked-cell.directive.js +78 -74
  165. package/esm2015/lib/desy-tables/directives/row.directive.js +24 -0
  166. package/esm2015/lib/desy-tables/interfaces/cell-data.js +2 -2
  167. package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +7 -7
  168. package/esm2015/lib/desy-tables/interfaces/index.js +5 -4
  169. package/esm2015/lib/desy-tables/interfaces/recalculate-table-params.js +2 -0
  170. package/esm2015/lib/desy-tables/interfaces/row-data.js +2 -2
  171. package/esm2015/lib/desy-tables/interfaces/wrapper-data.js +2 -0
  172. package/esm2015/lib/desy-views/components/accordion/accordion-header/accordion-header.component.js +14 -0
  173. package/esm2015/lib/desy-views/components/accordion/accordion-item/accordion-item.component.js +33 -0
  174. package/esm2015/lib/desy-views/components/accordion/accordion.component.js +136 -108
  175. package/esm2015/lib/desy-views/components/alert/alert.component.js +81 -76
  176. package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +62 -66
  177. package/esm2015/lib/desy-views/components/description-list/definition/definition.component.js +15 -0
  178. package/esm2015/lib/desy-views/components/description-list/description-item/description-item.component.js +26 -0
  179. package/esm2015/lib/desy-views/components/description-list/description-list.component.js +28 -38
  180. package/esm2015/lib/desy-views/components/description-list/term/term.component.js +15 -0
  181. package/esm2015/lib/desy-views/components/details/details.component.js +31 -31
  182. package/esm2015/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.js +14 -0
  183. package/esm2015/lib/desy-views/components/item/item-content-right/item-content-right.component.js +11 -0
  184. package/esm2015/lib/desy-views/components/item/item-item/item-item.component.js +11 -0
  185. package/esm2015/lib/desy-views/components/item/item.component.js +79 -46
  186. package/esm2015/lib/desy-views/components/media-object/media-object.component.js +29 -29
  187. package/esm2015/lib/desy-views/components/spinner/spinner.component.js +16 -16
  188. package/esm2015/lib/desy-views/components/status/status.component.js +35 -35
  189. package/esm2015/lib/desy-views/components/status-item/status-item.component.js +63 -50
  190. package/esm2015/lib/desy-views/components/tabs/panel/panel.component.js +15 -0
  191. package/esm2015/lib/desy-views/components/tabs/tab-item/tab-item.component.js +28 -0
  192. package/esm2015/lib/desy-views/components/tabs/tabs.component.js +131 -109
  193. package/esm2015/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.js +11 -0
  194. package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +132 -0
  195. package/esm2015/lib/desy-views/desy-views.module.js +93 -53
  196. package/esm2015/lib/desy-views/interfaces/accordion-header.data.js +2 -2
  197. package/esm2015/lib/desy-views/interfaces/accordion-item.data.js +2 -2
  198. package/esm2015/lib/desy-views/interfaces/alert-options.js +2 -2
  199. package/esm2015/lib/desy-views/interfaces/description-item.data.js +2 -0
  200. package/esm2015/lib/desy-views/interfaces/index.js +11 -11
  201. package/esm2015/lib/desy-views/interfaces/open-alert-result.js +2 -2
  202. package/esm2015/lib/desy-views/interfaces/status-data.js +2 -2
  203. package/esm2015/lib/desy-views/interfaces/status-icon-data.js +2 -2
  204. package/esm2015/lib/desy-views/interfaces/status-item-title-data.js +2 -2
  205. package/esm2015/lib/desy-views/interfaces/tabs-items-data.js +2 -2
  206. package/esm2015/lib/desy-views/interfaces/tabs-panel-data.js +2 -2
  207. package/esm2015/lib/desy-views/interfaces/term-definition.data.js +2 -0
  208. package/esm2015/lib/desy-views/services/alert.service.js +90 -90
  209. package/esm2015/lib/shared/components/accessibility/accessibility.component.js +29 -29
  210. package/esm2015/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.js +27 -0
  211. package/esm2015/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.js +26 -26
  212. package/esm2015/lib/shared/components/content-base/content-base.component.js +20 -0
  213. package/esm2015/lib/shared/components/index.js +6 -4
  214. package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js +26 -26
  215. package/esm2015/lib/shared/decorators/desy-content-child.decorator.js +41 -0
  216. package/esm2015/lib/shared/decorators/desy-on-input-change.decorator.js +19 -0
  217. package/esm2015/lib/shared/directives/attribute-change.directive.js +43 -0
  218. package/esm2015/lib/shared/directives/click-outside.directive.js +35 -35
  219. package/esm2015/lib/shared/directives/content-change.directive.js +43 -0
  220. package/esm2015/lib/shared/directives/content-empty.directive.js +86 -0
  221. package/esm2015/lib/shared/directives/custom-inner-content.directive.js +62 -0
  222. package/esm2015/lib/shared/directives/inner-content.directive.js +34 -32
  223. package/esm2015/lib/shared/interfaces/accesibility-data.js +2 -2
  224. package/esm2015/lib/shared/pipes/external-href.pipe.js +28 -0
  225. package/esm2015/lib/shared/pipes/inner-html.pipe.js +19 -19
  226. package/esm2015/lib/shared/pipes/make-html-list.pipe.js +16 -16
  227. package/esm2015/lib/shared/shared.module.js +65 -46
  228. package/esm2015/lib/shared/utils/focus-utils.js +51 -51
  229. package/esm2015/lib/shared/utils/search-utils.js +57 -57
  230. package/esm2015/lib/shared/utils/string-utils.js +18 -0
  231. package/esm2015/public-api.js +189 -130
  232. package/fesm2015/desy-angular.js +7655 -3964
  233. package/fesm2015/desy-angular.js.map +1 -1
  234. package/lib/desy-angular.module.d.ts +2 -2
  235. package/lib/desy-buttons/components/button/button.component.d.ts +31 -32
  236. package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +15 -14
  237. package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +24 -19
  238. package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +12 -0
  239. package/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.d.ts +8 -0
  240. package/lib/desy-buttons/components/listbox/listbox.component.d.ts +54 -0
  241. package/lib/desy-buttons/components/pill/pill.component.d.ts +22 -22
  242. package/lib/desy-buttons/desy-buttons.module.d.ts +2 -2
  243. package/lib/desy-buttons/interfaces/listbox-item-data.d.ts +9 -0
  244. package/lib/{desy-nav/interfaces/notification-title-data.d.ts → desy-buttons/interfaces/listbox-label-data.d.ts} +5 -5
  245. package/lib/desy-commons/components/content/content.component.d.ts +5 -0
  246. package/lib/desy-commons/components/description/description.component.d.ts +5 -0
  247. package/lib/desy-commons/components/icon/icon.component.d.ts +5 -0
  248. package/lib/desy-commons/components/title/title.component.d.ts +5 -0
  249. package/lib/desy-commons/desy-commons.module.d.ts +2 -0
  250. package/lib/{desy-nav/interfaces/notification-content-data.d.ts → desy-commons/interfaces/content-data.d.ts} +5 -5
  251. package/lib/desy-commons/interfaces/description-data.d.ts +5 -0
  252. package/lib/desy-commons/interfaces/icon-data.d.ts +4 -0
  253. package/lib/desy-commons/interfaces/index.d.ts +4 -0
  254. package/lib/desy-commons/interfaces/title-data.d.ts +6 -0
  255. package/lib/desy-forms/components/character-count/character-count.component.d.ts +28 -28
  256. package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +47 -0
  257. package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +75 -37
  258. package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +22 -0
  259. package/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.d.ts +7 -0
  260. package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +4 -0
  261. package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +22 -0
  262. package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +19 -0
  263. package/lib/desy-forms/components/date-input/date-input.component.d.ts +54 -37
  264. package/lib/desy-forms/components/error-message/error-message.component.d.ts +12 -6
  265. package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +28 -20
  266. package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +6 -5
  267. package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +19 -19
  268. package/lib/desy-forms/components/form-field/form-field.component.d.ts +40 -51
  269. package/lib/desy-forms/components/hint/hint.component.d.ts +11 -5
  270. package/lib/desy-forms/components/input/input.component.d.ts +19 -19
  271. package/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.d.ts +8 -0
  272. package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +20 -0
  273. package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +4 -0
  274. package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +16 -0
  275. package/lib/desy-forms/components/input-group/input-group.component.d.ts +54 -36
  276. package/lib/desy-forms/components/label/label.component.d.ts +14 -7
  277. package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +43 -0
  278. package/lib/desy-forms/components/radios/radios.component.d.ts +75 -30
  279. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +17 -13
  280. package/lib/desy-forms/components/select/option/option.component.d.ts +7 -0
  281. package/lib/desy-forms/components/select/option-group/option-group.component.d.ts +7 -0
  282. package/lib/desy-forms/components/select/select-item/select-item.component.d.ts +4 -0
  283. package/lib/desy-forms/components/select/select.component.d.ts +21 -14
  284. package/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.d.ts +2 -2
  285. package/lib/desy-forms/components/textarea/textarea.component.d.ts +23 -23
  286. package/lib/desy-forms/desy-forms.module.d.ts +2 -2
  287. package/lib/desy-forms/directives/condition.directive.d.ts +15 -15
  288. package/lib/desy-forms/interfaces/accesibility-data.d.ts +15 -15
  289. package/lib/desy-forms/interfaces/error-message-data.d.ts +8 -8
  290. package/lib/desy-forms/interfaces/fieldset-data.d.ts +10 -9
  291. package/lib/desy-forms/interfaces/hint-data.d.ts +7 -7
  292. package/lib/desy-forms/interfaces/index.d.ts +12 -12
  293. package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +21 -20
  294. package/lib/desy-forms/interfaces/item-date-input-data.d.ts +17 -14
  295. package/lib/desy-forms/interfaces/item-divider-date-input-data.d.ts +5 -0
  296. package/lib/desy-forms/interfaces/item-divider-input-group-data.d.ts +5 -5
  297. package/lib/desy-forms/interfaces/item-input-group-data.d.ts +22 -23
  298. package/lib/desy-forms/interfaces/item-radio-data.d.ts +20 -17
  299. package/lib/desy-forms/interfaces/item-radio-with-template-data.d.ts +5 -5
  300. package/lib/desy-forms/interfaces/label-data.d.ts +9 -9
  301. package/lib/desy-forms/interfaces/legend-data.d.ts +6 -6
  302. package/lib/desy-forms/interfaces/select-item-data.d.ts +8 -7
  303. package/lib/desy-modals/components/dialog/dialog.component.d.ts +35 -35
  304. package/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.d.ts +7 -0
  305. package/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.d.ts +7 -0
  306. package/lib/desy-modals/components/modal/modal.component.d.ts +45 -20
  307. package/lib/desy-modals/desy-modals.module.d.ts +2 -2
  308. package/lib/desy-modals/interfaces/dialog-options.d.ts +9 -9
  309. package/lib/desy-modals/interfaces/index.d.ts +6 -6
  310. package/lib/desy-modals/interfaces/modal-button-data.d.ts +4 -4
  311. package/lib/desy-modals/interfaces/modal-data.d.ts +5 -5
  312. package/lib/desy-modals/interfaces/modal-icon-data.d.ts +4 -4
  313. package/lib/desy-modals/interfaces/modal-options.d.ts +16 -16
  314. package/lib/desy-modals/interfaces/open-dialog-result.d.ts +6 -6
  315. package/lib/desy-modals/services/dialog.service.d.ts +14 -14
  316. package/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.d.ts +6 -0
  317. package/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.d.ts +19 -16
  318. package/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.d.ts +6 -0
  319. package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +21 -13
  320. package/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.d.ts +7 -0
  321. package/lib/desy-nav/components/footer/footer-meta/footer-meta.component.d.ts +10 -0
  322. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.d.ts +7 -0
  323. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.d.ts +8 -0
  324. package/lib/desy-nav/components/footer/footer.component.d.ts +22 -10
  325. package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +11 -7
  326. package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +10 -0
  327. package/lib/desy-nav/components/header/header-navigation/header-navigation.component.d.ts +13 -9
  328. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +6 -0
  329. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.d.ts +3 -0
  330. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +31 -10
  331. package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +12 -9
  332. package/lib/desy-nav/components/header/header.component.d.ts +29 -18
  333. package/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.d.ts +15 -0
  334. package/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.d.ts +18 -17
  335. package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +18 -0
  336. package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.d.ts +8 -0
  337. package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +15 -0
  338. package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +19 -24
  339. package/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.d.ts +23 -0
  340. package/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.d.ts +4 -0
  341. package/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.d.ts +15 -0
  342. package/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.d.ts +10 -0
  343. package/lib/desy-nav/components/menubar/directives/menubaritem.directive.d.ts +16 -0
  344. package/lib/desy-nav/components/menubar/menubar.component.d.ts +88 -0
  345. package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +17 -0
  346. package/lib/desy-nav/components/nav/nav.component.d.ts +18 -16
  347. package/lib/desy-nav/components/notification/notification-item/notification-item.component.d.ts +9 -0
  348. package/lib/desy-nav/components/notification/notification.component.d.ts +38 -24
  349. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +14 -7
  350. package/lib/desy-nav/desy-nav.module.d.ts +2 -2
  351. package/lib/desy-nav/interfaces/breadcrumbs.data.d.ts +7 -7
  352. package/lib/desy-nav/interfaces/error-summary-data.d.ts +7 -7
  353. package/lib/desy-nav/interfaces/footer-data.d.ts +24 -27
  354. package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +11 -7
  355. package/lib/desy-nav/interfaces/header-navigation-data.d.ts +5 -5
  356. package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +11 -11
  357. package/lib/desy-nav/interfaces/header-offcanvas-data.d.ts +8 -9
  358. package/lib/desy-nav/interfaces/header-subnav-data.d.ts +11 -6
  359. package/lib/desy-nav/interfaces/index.d.ts +16 -20
  360. package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +13 -13
  361. package/lib/desy-nav/interfaces/menu-horizontal-item-event-data.d.ts +5 -5
  362. package/lib/desy-nav/interfaces/menu-vertical-items-data.d.ts +19 -17
  363. package/lib/desy-nav/interfaces/menu-vertical-sub-data.d.ts +7 -8
  364. package/lib/desy-nav/interfaces/menu-vertical-sub-items-data.d.ts +16 -13
  365. package/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.d.ts +6 -0
  366. package/lib/desy-nav/interfaces/menubar-item-sub-item.d.ts +9 -0
  367. package/lib/desy-nav/interfaces/menubar-item-sub.d.ts +6 -0
  368. package/lib/desy-nav/interfaces/menubar-item.d.ts +18 -0
  369. package/lib/desy-nav/interfaces/nav-item-event.data.d.ts +5 -5
  370. package/lib/desy-nav/interfaces/nav-item.data.d.ts +15 -14
  371. package/lib/desy-nav/interfaces/notification-items-data.d.ts +10 -7
  372. package/lib/desy-nav/interfaces/notification-options.d.ts +15 -18
  373. package/lib/desy-pagination/components/pagination/pagination.component.d.ts +33 -38
  374. package/lib/desy-pagination/desy-pagination.module.d.ts +2 -2
  375. package/lib/desy-pagination/interfaces/index.d.ts +1 -1
  376. package/lib/desy-pagination/interfaces/pagination-item.data.d.ts +4 -4
  377. package/lib/desy-tables/components/table/components/table-caption.component.d.ts +4 -0
  378. package/lib/desy-tables/components/table/components/table-cell.component.d.ts +8 -0
  379. package/lib/desy-tables/components/table/components/table-header.component.d.ts +5 -0
  380. package/lib/desy-tables/components/table/components/table-row.component.d.ts +5 -0
  381. package/lib/desy-tables/components/table/table.component.d.ts +25 -13
  382. package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +13 -0
  383. package/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.d.ts +5 -0
  384. package/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.d.ts +8 -0
  385. package/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.d.ts +8 -0
  386. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +115 -88
  387. package/lib/desy-tables/desy-tables.module.d.ts +2 -2
  388. package/lib/desy-tables/directives/cell.directive.d.ts +14 -0
  389. package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +10 -10
  390. package/lib/desy-tables/directives/row.directive.d.ts +16 -0
  391. package/lib/desy-tables/interfaces/cell-data.d.ts +9 -9
  392. package/lib/desy-tables/interfaces/head-cell-data.d.ts +15 -15
  393. package/lib/desy-tables/interfaces/index.d.ts +4 -3
  394. package/lib/desy-tables/interfaces/recalculate-table-params.d.ts +11 -0
  395. package/lib/desy-tables/interfaces/row-data.d.ts +6 -5
  396. package/lib/desy-tables/interfaces/wrapper-data.d.ts +4 -0
  397. package/lib/desy-views/components/accordion/accordion-header/accordion-header.component.d.ts +5 -0
  398. package/lib/desy-views/components/accordion/accordion-item/accordion-item.component.d.ts +13 -0
  399. package/lib/desy-views/components/accordion/accordion.component.d.ts +36 -27
  400. package/lib/desy-views/components/alert/alert.component.d.ts +29 -27
  401. package/lib/desy-views/components/collapsible/collapsible.component.d.ts +15 -17
  402. package/lib/desy-views/components/description-list/definition/definition.component.d.ts +6 -0
  403. package/lib/desy-views/components/description-list/description-item/description-item.component.d.ts +9 -0
  404. package/lib/desy-views/components/description-list/description-list.component.d.ts +12 -9
  405. package/lib/desy-views/components/description-list/term/term.component.d.ts +6 -0
  406. package/lib/desy-views/components/details/details.component.d.ts +14 -14
  407. package/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.d.ts +5 -0
  408. package/lib/desy-views/components/item/item-content-right/item-content-right.component.d.ts +3 -0
  409. package/lib/desy-views/components/item/item-item/item-item.component.d.ts +3 -0
  410. package/lib/desy-views/components/item/item.component.d.ts +36 -17
  411. package/lib/desy-views/components/media-object/media-object.component.d.ts +14 -14
  412. package/lib/desy-views/components/spinner/spinner.component.d.ts +6 -6
  413. package/lib/desy-views/components/status/status.component.d.ts +11 -11
  414. package/lib/desy-views/components/status-item/status-item.component.d.ts +31 -20
  415. package/lib/desy-views/components/tabs/panel/panel.component.d.ts +6 -0
  416. package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +12 -0
  417. package/lib/desy-views/components/tabs/tabs.component.d.ts +35 -23
  418. package/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.d.ts +3 -0
  419. package/lib/desy-views/components/tooltip/tooltip.component.d.ts +35 -0
  420. package/lib/desy-views/desy-views.module.d.ts +2 -2
  421. package/lib/desy-views/interfaces/accordion-header.data.d.ts +5 -5
  422. package/lib/desy-views/interfaces/accordion-item.data.d.ts +10 -10
  423. package/lib/desy-views/interfaces/alert-options.d.ts +8 -8
  424. package/lib/desy-views/interfaces/description-item.data.d.ts +8 -0
  425. package/lib/desy-views/interfaces/index.d.ts +10 -10
  426. package/lib/desy-views/interfaces/open-alert-result.d.ts +6 -6
  427. package/lib/desy-views/interfaces/status-data.d.ts +8 -8
  428. package/lib/desy-views/interfaces/status-icon-data.d.ts +4 -4
  429. package/lib/desy-views/interfaces/status-item-title-data.d.ts +5 -5
  430. package/lib/desy-views/interfaces/tabs-items-data.d.ts +9 -9
  431. package/lib/desy-views/interfaces/tabs-panel-data.d.ts +8 -8
  432. package/lib/desy-views/interfaces/term-definition.data.d.ts +7 -0
  433. package/lib/desy-views/services/alert.service.d.ts +14 -14
  434. package/lib/shared/components/accessibility/accessibility.component.d.ts +20 -20
  435. package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +26 -0
  436. package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +25 -25
  437. package/lib/shared/components/content-base/content-base.component.d.ts +9 -0
  438. package/lib/shared/components/index.d.ts +5 -3
  439. package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +16 -16
  440. package/lib/shared/decorators/desy-content-child.decorator.d.ts +15 -0
  441. package/lib/shared/decorators/desy-on-input-change.decorator.d.ts +5 -0
  442. package/lib/shared/directives/attribute-change.directive.d.ts +10 -0
  443. package/lib/shared/directives/click-outside.directive.d.ts +9 -9
  444. package/lib/shared/directives/content-change.directive.d.ts +19 -0
  445. package/lib/shared/directives/content-empty.directive.d.ts +26 -0
  446. package/lib/shared/directives/custom-inner-content.directive.d.ts +22 -0
  447. package/lib/shared/directives/inner-content.directive.d.ts +9 -8
  448. package/lib/shared/interfaces/accesibility-data.d.ts +16 -16
  449. package/lib/shared/pipes/external-href.pipe.d.ts +8 -0
  450. package/lib/shared/pipes/inner-html.pipe.d.ts +7 -7
  451. package/lib/shared/pipes/make-html-list.pipe.d.ts +4 -4
  452. package/lib/shared/shared.module.d.ts +2 -2
  453. package/lib/shared/utils/focus-utils.d.ts +4 -4
  454. package/lib/shared/utils/search-utils.d.ts +14 -14
  455. package/lib/shared/utils/string-utils.d.ts +10 -0
  456. package/package.json +16 -11
  457. package/public-api.d.ts +160 -110
  458. package/esm2015/lib/desy-forms/components/checkboxes/item-checkbox/item-checkbox.component.js +0 -100
  459. package/esm2015/lib/desy-forms/components/radios/item-radio/item-radio.component.js +0 -89
  460. package/esm2015/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.js +0 -62
  461. package/esm2015/lib/desy-nav/interfaces/notification-content-data.js +0 -2
  462. package/esm2015/lib/desy-nav/interfaces/notification-description-data.js +0 -2
  463. package/esm2015/lib/desy-nav/interfaces/notification-icon-data.js +0 -2
  464. package/esm2015/lib/desy-nav/interfaces/notification-title-data.js +0 -2
  465. package/esm2015/lib/desy-views/interfaces/description.data.js +0 -2
  466. package/esm2015/lib/desy-views/interfaces/item-data.js +0 -2
  467. package/esm2015/lib/desy-views/interfaces/item-description.data.js +0 -2
  468. package/esm2015/lib/shared/utils/navigation-utils.js +0 -18
  469. package/lib/desy-forms/components/checkboxes/item-checkbox/item-checkbox.component.d.ts +0 -39
  470. package/lib/desy-forms/components/radios/item-radio/item-radio.component.d.ts +0 -36
  471. package/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.d.ts +0 -19
  472. package/lib/desy-nav/interfaces/notification-description-data.d.ts +0 -5
  473. package/lib/desy-nav/interfaces/notification-icon-data.d.ts +0 -3
  474. package/lib/desy-views/interfaces/description.data.d.ts +0 -7
  475. package/lib/desy-views/interfaces/item-data.d.ts +0 -19
  476. package/lib/desy-views/interfaces/item-description.data.d.ts +0 -8
  477. package/lib/shared/utils/navigation-utils.d.ts +0 -3
@@ -0,0 +1,147 @@
1
+ import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, Host, Input, Output, ViewChild } from '@angular/core';
2
+ import { ContentBaseComponent } from '../../../../shared/components';
3
+ import { LabelComponent } from '../../label/label.component';
4
+ import { ContentComponent } from '../../../../desy-commons/components/content/content.component';
5
+ import { RadiosComponent } from '../radios.component';
6
+ import { animate, animateChild, query, state, style, transition, trigger } from '@angular/animations';
7
+ import { HintComponent } from '../../hint/hint.component';
8
+ export class RadioItemComponent extends ContentBaseComponent {
9
+ constructor(radios, changeDetectorRef) {
10
+ super();
11
+ this.radios = radios;
12
+ this.changeDetectorRef = changeDetectorRef;
13
+ this.checkedChange = new EventEmitter();
14
+ this.index = 0;
15
+ if (!this.radios) {
16
+ throw Error('Radios items must be inside of RadiosComponent');
17
+ }
18
+ }
19
+ ngOnInit() {
20
+ this.radios.markForUpdateCheckboxIds();
21
+ }
22
+ ngOnDestroy() {
23
+ this.radios.markForUpdateCheckboxIds();
24
+ }
25
+ ngOnChanges(changes) {
26
+ if (!this.value && !this.divider) {
27
+ throw Error('value or divider are required for checkbox item');
28
+ }
29
+ if (this.checked !== this.lastChecked && this.isInit()) {
30
+ this.setChecked(this.checked);
31
+ this.radios.updateValueFromRadioItems();
32
+ }
33
+ else if (this.lastValue !== undefined && this.lastValue !== this.value) {
34
+ this.radios.updateValueFromRadioItems();
35
+ }
36
+ this.lastValue = this.value;
37
+ if (this.id !== this.radioId) {
38
+ this.radios.markForUpdateCheckboxIds();
39
+ }
40
+ }
41
+ ngAfterViewInit() {
42
+ this.setChecked(this.checked);
43
+ this.radios.updateValueFromRadioItems();
44
+ }
45
+ setChecked(checked) {
46
+ this.checked = checked;
47
+ this.lastChecked = checked;
48
+ this.checkedChange.emit(checked);
49
+ this.changeDetectorRef.detectChanges();
50
+ }
51
+ /*
52
+ * Funciones para aportar información desde el componente checkboxes que lo contiene
53
+ */
54
+ getItemHintId() {
55
+ return this.hintComponentList && this.hintComponentList.length > 0 && this.radioId ? this.radioId + '-item-hint' : null;
56
+ }
57
+ hasChanged() {
58
+ this.setChecked(this.isInputChecked());
59
+ this.radios.updateValueFromRadioItems();
60
+ }
61
+ isInit() {
62
+ return !!this.inputElement;
63
+ }
64
+ isInputChecked() {
65
+ return this.inputElement ? this.inputElement.nativeElement.checked : null;
66
+ }
67
+ updateRadioId(index) {
68
+ if (this.id) {
69
+ this.radioId = this.id;
70
+ }
71
+ else {
72
+ const idPrefix = this.radios.idPrefix ? this.radios.idPrefix : this.radios.name;
73
+ if (index === 0) {
74
+ this.radioId = idPrefix;
75
+ }
76
+ else {
77
+ this.radioId = `${idPrefix}-${index}`;
78
+ }
79
+ }
80
+ if (this.labelComponentList && this.labelComponentList.length > 0) {
81
+ this.labelComponentList.first.for = this.radioId;
82
+ }
83
+ if (this.hintComponentList && this.hintComponentList.length > 0) {
84
+ this.hintComponentList.first.id = this.getItemHintId();
85
+ }
86
+ this.changeDetectorRef.detectChanges();
87
+ }
88
+ /*
89
+ * Funciones para aportar información desde el componente checkboxes que lo contiene
90
+ */
91
+ hasDividers() {
92
+ return this.radios.hasDividers;
93
+ }
94
+ hasError() {
95
+ return this.radios.hasErrorsMessage();
96
+ }
97
+ getNameRadio() {
98
+ return this.radios.name;
99
+ }
100
+ getDescribedBy() {
101
+ return !this.radios.hasFieldset() ? this.radios.describedBy : null;
102
+ }
103
+ }
104
+ RadioItemComponent.decorators = [
105
+ { type: Component, args: [{
106
+ selector: 'desy-radio-item',
107
+ template: "<div [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers()}\" [class]=\"classes\">\r\n <div *ngIf=\"divider\"><p>{{ divider }}</p></div>\r\n <div *ngIf=\"!divider\">\r\n <div class=\"relative flex items-start py-base\">\r\n <div class=\"flex items-center mx-sm\">\r\n <input #input class=\"w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\r\n [attr.id]=\"radioId\"\r\n [attr.name]=\"name ? name : getNameRadio()\"\r\n type=\"radio\"\r\n [value]=\"value\" (change)=\"hasChanged()\"\r\n [checked]=\"checked\"\r\n [attr.disabled]=\"disabled ? true : null\"\r\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + this.radioId : null\"\r\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\r\n [attr.aria-invalid]=\"hasError ? true : null\"\r\n\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n </div>\r\n\r\n <div class=\"pt-0.5 leading-5\">\r\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\r\n <ng-content select=\"desy-label\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\r\n <desy-label [for]=\"radioId\">\r\n <ng-content></ng-content>\r\n </desy-label>\r\n </ng-container>\r\n\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && checked\" @displayConditional\r\n class=\"mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base\"\r\n [attr.id]=\"'conditional-' + this.radioId\">\r\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\r\n </div>\r\n</div>\r\n",
108
+ animations: [
109
+ trigger('displayConditional', [
110
+ state('void', style({
111
+ opacity: '0.0',
112
+ transform: 'scale(0.95)'
113
+ })),
114
+ state('*', style({
115
+ opacity: '1.0',
116
+ transform: 'scale(1.0)'
117
+ })),
118
+ transition(':enter', [
119
+ animate('100ms ease-out')
120
+ ]),
121
+ transition('* => *', [
122
+ query('@*', animateChild(), { optional: true })
123
+ ])
124
+ ])
125
+ ]
126
+ },] }
127
+ ];
128
+ RadioItemComponent.ctorParameters = () => [
129
+ { type: RadiosComponent, decorators: [{ type: Host }] },
130
+ { type: ChangeDetectorRef }
131
+ ];
132
+ RadioItemComponent.propDecorators = {
133
+ inputElement: [{ type: ViewChild, args: ['input',] }],
134
+ id: [{ type: Input }],
135
+ name: [{ type: Input }],
136
+ value: [{ type: Input }],
137
+ conditional: [{ type: Input }],
138
+ disabled: [{ type: Input }],
139
+ classes: [{ type: Input }],
140
+ divider: [{ type: Input }],
141
+ labelComponentList: [{ type: ContentChildren, args: [LabelComponent,] }],
142
+ hintComponentList: [{ type: ContentChildren, args: [HintComponent,] }],
143
+ conditionalContentList: [{ type: ContentChildren, args: [ContentComponent,] }],
144
+ checked: [{ type: Input }],
145
+ checkedChange: [{ type: Output }]
146
+ };
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvcmFkaW9zL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixJQUFJLEVBQ0osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBeUJ4RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsb0JBQW9CO0lBd0IxRCxZQUE0QixNQUF1QixFQUFVLGlCQUFvQztRQUMvRixLQUFLLEVBQUUsQ0FBQztRQURrQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFQdkYsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRSxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBT1IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFD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QUU7b0JBQ1YsT0FBTyxDQUFDLG9CQUFvQixFQUFFO3dCQUM1QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzs0QkFDbEIsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsU0FBUyxFQUFFLGFBQWE7eUJBQ3pCLENBQUMsQ0FBQzt3QkFDSCxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQzs0QkFDZixPQUFPLEVBQUUsS0FBSzs0QkFDZCxTQUFTLEVBQUUsWUFBWTt5QkFDeEIsQ0FBQyxDQUFDO3dCQUNILFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzt5QkFDMUIsQ0FBQzt3QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFOzRCQUNuQixLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO3lCQUM5QyxDQUFDO3FCQUNILENBQUM7aUJBQ0g7YUFDRjs7O1lBMUJPLGVBQWUsdUJBbURSLElBQUk7WUFwRWpCLGlCQUFpQjs7OzJCQThDaEIsU0FBUyxTQUFDLE9BQU87aUJBRWpCLEtBQUs7bUJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7aUNBRUwsZUFBZSxTQUFDLGNBQWM7Z0NBQzlCLGVBQWUsU0FBQyxhQUFhO3FDQUM3QixlQUFlLFNBQUMsZ0JBQWdCO3NCQUVoQyxLQUFLOzRCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0l0ZW1SYWRpb0RhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NvbnRlbnRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7TGFiZWxDb21wb25lbnR9IGZyb20gJy4uLy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q29udGVudENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmFkaW9zQ29tcG9uZW50fSBmcm9tICcuLi9yYWRpb3MuY29tcG9uZW50JztcclxuaW1wb3J0IHthbmltYXRlLCBhbmltYXRlQ2hpbGQsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge0hpbnRDb21wb25lbnR9IGZyb20gJy4uLy4uL2hpbnQvaGludC5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1yYWRpby1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8taXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignZGlzcGxheUNvbmRpdGlvbmFsJywgW1xyXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMC4wJyxcclxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwLjk1KSdcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMS4wJyxcclxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxLjApJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBhbmltYXRlKCcxMDBtcyBlYXNlLW91dCcpXHJcbiAgICAgIF0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IConLCBbXHJcbiAgICAgICAgcXVlcnkoJ0AqJywgYW5pbWF0ZUNoaWxkKCksIHtvcHRpb25hbDogdHJ1ZX0pXHJcbiAgICAgIF0pXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJhZGlvSXRlbUNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgSXRlbVJhZGlvRGF0YSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIEBJbnB1dCgpIGNvbmRpdGlvbmFsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXZpZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oTGFiZWxDb21wb25lbnQpIGxhYmVsQ29tcG9uZW50TGlzdDogUXVlcnlMaXN0PExhYmVsQ29tcG9uZW50PjtcclxuICBAQ29udGVudENoaWxkcmVuKEhpbnRDb21wb25lbnQpIGhpbnRDb21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8SGludENvbXBvbmVudD47XHJcbiAgQENvbnRlbnRDaGlsZHJlbihDb250ZW50Q29tcG9uZW50KSBjb25kaXRpb25hbENvbnRlbnRMaXN0OiBRdWVyeUxpc3Q8Q29udGVudENvbXBvbmVudD47XHJcblxyXG4gIEBJbnB1dCgpIGNoZWNrZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGluZGV4ID0gMDtcclxuICBsYXN0Q2hlY2tlZDtcclxuICBsYXN0VmFsdWU7XHJcbiAgcmFkaW9JZDtcclxuXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIHJhZGlvczogUmFkaW9zQ29tcG9uZW50LCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGlmICghdGhpcy5yYWRpb3MpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1JhZGlvcyBpdGVtcyBtdXN0IGJlIGluc2lkZSBvZiBSYWRpb3NDb21wb25lbnQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yYWRpb3MubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmFkaW9zLm1hcmtGb3JVcGRhdGVDaGVja2JveElkcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnZhbHVlICYmICF0aGlzLmRpdmlkZXIpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ3ZhbHVlIG9yIGRpdmlkZXIgYXJlIHJlcXVpcmVkIGZvciBjaGVja2JveCBpdGVtJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY2hlY2tlZCAhPT0gdGhpcy5sYXN0Q2hlY2tlZCAmJiB0aGlzLmlzSW5pdCgpKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZCh0aGlzLmNoZWNrZWQpO1xyXG4gICAgICB0aGlzLnJhZGlvcy51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFzdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5sYXN0VmFsdWUgIT09IHRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy5yYWRpb3MudXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXN0VmFsdWUgPSB0aGlzLnZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmlkICE9PSB0aGlzLnJhZGlvSWQpIHtcclxuICAgICAgdGhpcy5yYWRpb3MubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldENoZWNrZWQodGhpcy5jaGVja2VkKTtcclxuICAgIHRoaXMucmFkaW9zLnVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWQoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5jaGVja2VkID0gY2hlY2tlZDtcclxuICAgIHRoaXMubGFzdENoZWNrZWQgPSBjaGVja2VkO1xyXG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQoY2hlY2tlZCk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRnVuY2lvbmVzIHBhcmEgYXBvcnRhciBpbmZvcm1hY2nDs24gZGVzZGUgZWwgY29tcG9uZW50ZSBjaGVja2JveGVzIHF1ZSBsbyBjb250aWVuZVxyXG4gICAqL1xyXG5cclxuICBnZXRJdGVtSGludElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5oaW50Q29tcG9uZW50TGlzdCAmJiB0aGlzLmhpbnRDb21wb25lbnRMaXN0Lmxlbmd0aCA+IDAgJiYgdGhpcy5yYWRpb0lkID8gdGhpcy5yYWRpb0lkICsgJy1pdGVtLWhpbnQnIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGhhc0NoYW5nZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldENoZWNrZWQodGhpcy5pc0lucHV0Q2hlY2tlZCgpKTtcclxuICAgIHRoaXMucmFkaW9zLnVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTtcclxuICB9XHJcblxyXG4gIGlzSW5pdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuaW5wdXRFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgaXNJbnB1dENoZWNrZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQgPyB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmFkaW9JZChpbmRleD86IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5yYWRpb0lkID0gdGhpcy5pZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGlkUHJlZml4ID0gdGhpcy5yYWRpb3MuaWRQcmVmaXggPyB0aGlzLnJhZGlvcy5pZFByZWZpeCA6IHRoaXMucmFkaW9zLm5hbWU7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMucmFkaW9JZCA9IGlkUHJlZml4O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmFkaW9JZCA9IGAke2lkUHJlZml4fS0ke2luZGV4fWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYWJlbENvbXBvbmVudExpc3QgJiYgdGhpcy5sYWJlbENvbXBvbmVudExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmxhYmVsQ29tcG9uZW50TGlzdC5maXJzdC5mb3IgPSB0aGlzLnJhZGlvSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaGludENvbXBvbmVudExpc3QgJiYgdGhpcy5oaW50Q29tcG9uZW50TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGludENvbXBvbmVudExpc3QuZmlyc3QuaWQgPSB0aGlzLmdldEl0ZW1IaW50SWQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgKiBGdW5jaW9uZXMgcGFyYSBhcG9ydGFyIGluZm9ybWFjacOzbiBkZXNkZSBlbCBjb21wb25lbnRlIGNoZWNrYm94ZXMgcXVlIGxvIGNvbnRpZW5lXHJcbiAgKi9cclxuXHJcbiAgaGFzRGl2aWRlcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yYWRpb3MuaGFzRGl2aWRlcnM7XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvcy5oYXNFcnJvcnNNZXNzYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXROYW1lUmFkaW8oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvcy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAhdGhpcy5yYWRpb3MuaGFzRmllbGRzZXQoKSA/IHRoaXMucmFkaW9zLmRlc2NyaWJlZEJ5IDogbnVsbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,56 +1,242 @@
1
- import { Component, forwardRef, Input } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { FormFieldComponent } from '../form-field/form-field.component';
4
- export class RadiosComponent extends FormFieldComponent {
5
- ngOnChanges(changes) {
6
- this.checkRequired();
7
- }
8
- checkRequired() {
9
- if (!this.name) {
10
- throw Error('name is required');
11
- }
12
- if (!this.items) {
13
- throw Error('items is required');
14
- }
15
- }
16
- hasFieldset() {
17
- return !!(this.legendRef || this.fieldsetData
18
- || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
19
- }
20
- getErrorId() {
21
- return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : null;
22
- }
23
- getHintId() {
24
- return this.hasHint() ? this.getIdPrefix() + '-hint' : null;
25
- }
26
- getIdPrefix() {
27
- return this.idPrefix ? this.idPrefix : this.name;
28
- }
29
- }
30
- RadiosComponent.decorators = [
31
- { type: Component, args: [{
32
- selector: 'desy-radios',
33
- template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\n\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [role]=\"fieldsetData.role\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #innerHtml>\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n\n\n <div class=\"c-radios\" [ngClass]=\"classes\"\n [attr.id]=\"id ? id : null\"\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\n <desy-item-radio *ngFor=\"let item of items; index as i\"\n [hasDividers]=\"hasDividers\"\n [nameRadios]=\"name\"\n [hasError]=\"hasErrorsMessage()\"\n [idPrefix]=\"getIdPrefix()\"\n [index]=\"i\"\n\n [text]=\"item.text\"\n [html]=\"item.html\"\n [value]=\"item.value\"\n (check)=\"onInput($event)\"\n\n [divider]=\"item.divider\"\n [checked]=\"value ? (value == item.value) : item.checked\"\n [conditional]=\"item.conditional\"\n [conditionalHtml]=\"item.conditionalHtml\"\n [classes]=\"item.classes\"\n\n [id]=\"item.id\"\n [disabled]=\"item.disabled\"\n\n [labelData]=\"item.labelData\"\n [hintData]=\"item.hintData\"\n [hintText]=\"item.hintText\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-item-radio>\n </div>\n</ng-template>\n",
34
- providers: [
35
- {
36
- provide: NG_VALUE_ACCESSOR,
37
- useExisting: forwardRef(() => RadiosComponent),
38
- multi: true
39
- }
40
- ]
41
- },] }
42
- ];
43
- RadiosComponent.propDecorators = {
44
- fieldsetData: [{ type: Input }],
45
- legendRef: [{ type: Input }],
46
- legendData: [{ type: Input }],
47
- legendText: [{ type: Input }],
48
- formGroupClasses: [{ type: Input }],
49
- idPrefix: [{ type: Input }],
50
- name: [{ type: Input }],
51
- items: [{ type: Input }],
52
- hasDividers: [{ type: Input }],
53
- hasError: [{ type: Input }],
54
- classes: [{ type: Input }]
55
- };
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9yYWRpb3MvcmFkaW9zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXlDLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBYXhFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGtCQUF1QjtJQXlCMUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsTUFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNqQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsTUFBTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZO2VBQ3hDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEUsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7OztZQWhFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLGtxUEFBc0M7Z0JBQ3RDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzt3QkFDOUMsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7OzJCQVVFLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7K0JBRUwsS0FBSzt1QkFDTCxLQUFLO21CQUNMLEtBQUs7b0JBRUwsS0FBSzswQkFFTCxLQUFLO3VCQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRzZXREYXRhLCBJdGVtUmFkaW9XaXRoVGVtcGxhdGVEYXRhLCBMZWdlbmREYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZHNldC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1yYWRpb3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW9zLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb3NDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9zQ29tcG9uZW50IGV4dGVuZHMgRm9ybUZpZWxkQ29tcG9uZW50PGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxuICAgKiAxKSBpbmNsdWlyIG9iamV0byBGaWVsZHNldERhdGEgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiAyKSBpbmNsdWlyIHRlbXBsYXRlIGxlZ2VuZFxuICAgKiAzKSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiA0KSBpbmNsdWlyIGxlZ2VuZFRleHQgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1biB0ZXh0byBlbiBsYSBsZWdlbmRhXG4gICAqL1xuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcbiAgQElucHV0KCkgbGVnZW5kUmVmOiBUZW1wbGF0ZVJlZjxMZWdlbmRDb21wb25lbnQ+O1xuICBASW5wdXQoKSBsZWdlbmREYXRhOiBMZWdlbmREYXRhO1xuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZm9ybUdyb3VwQ2xhc3Nlczogc3RyaW5nO1xuICBASW5wdXQoKSBpZFByZWZpeDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgaXRlbXM6IEl0ZW1SYWRpb1dpdGhUZW1wbGF0ZURhdGFbXTtcblxuICBASW5wdXQoKSBoYXNEaXZpZGVyczogYm9vbGVhbjtcbiAgQElucHV0KCkgaGFzRXJyb3I6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcblxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrUmVxdWlyZWQoKTtcbiAgfVxuXG4gIGNoZWNrUmVxdWlyZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgIHRocm93IEVycm9yKCduYW1lIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5pdGVtcykge1xuICAgICAgdGhyb3cgRXJyb3IoJ2l0ZW1zIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9XG5cbiAgaGFzRmllbGRzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMubGVnZW5kUmVmIHx8IHRoaXMuZmllbGRzZXREYXRhXG4gICAgICB8fCAodGhpcy5sZWdlbmREYXRhICYmICh0aGlzLmxlZ2VuZERhdGEudGV4dCB8fCB0aGlzLmxlZ2VuZERhdGEuaHRtbCkpIHx8IHRoaXMubGVnZW5kVGV4dCk7XG4gIH1cblxuICBnZXRFcnJvcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRXJyb3JzTWVzc2FnZSgpID8gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1lcnJvcicgOiBudWxsO1xuICB9XG5cbiAgZ2V0SGludElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGFzSGludCgpID8gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1oaW50JyA6IG51bGw7XG4gIH1cblxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6IHRoaXMubmFtZTtcbiAgfVxuXG59XG4iXX0=
1
+ import { __decorate } from "tslib";
2
+ import { Component, ContentChildren, EventEmitter, forwardRef, Input, Output, ViewChild, ViewChildren } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { LegendComponent } from '../fieldset/legend/legend.component';
5
+ import { FormFieldComponent } from '../form-field/form-field.component';
6
+ import { RadioItemComponent } from './radio-item/radio-item.component';
7
+ import { FieldsetComponent } from '../fieldset/fieldset.component';
8
+ import { MakeHtmlListPipe } from '../../../shared/pipes/make-html-list.pipe';
9
+ import { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';
10
+ import { DesyOnInputChange } from '../../../shared/decorators/desy-on-input-change.decorator';
11
+ export class RadiosComponent extends FormFieldComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.itemsChange = new EventEmitter();
15
+ this.nextValue = null;
16
+ this.updateChekboxIds = false;
17
+ this.contentInit = false;
18
+ }
19
+ ngDoCheck() {
20
+ if (this.nextValue !== null && (this.nextValue !== '' || (this.value && this.value !== ''))) {
21
+ this.value = this.nextValue;
22
+ this.nextValue = null;
23
+ const updateItems = this.updateRadioItemsChecked();
24
+ setTimeout(() => {
25
+ this.onChange(this.value);
26
+ if (updateItems && this.items && this.items.length > 0) {
27
+ this.itemsChange.emit(this.items);
28
+ }
29
+ });
30
+ }
31
+ if (this.updateChekboxIds) {
32
+ const checkboxItems = this.getRadioItems();
33
+ if (checkboxItems.length > 0) {
34
+ checkboxItems.forEach((item, index) => item.updateRadioId(index));
35
+ }
36
+ else {
37
+ throw Error('items are required');
38
+ }
39
+ this.updateChekboxIds = false;
40
+ }
41
+ }
42
+ ngAfterContentInit() {
43
+ if (!this.name) {
44
+ throw Error('name is required');
45
+ }
46
+ this.contentInit = true;
47
+ }
48
+ /**
49
+ * Se sobrescribe el writeValue de FormField para gestionar en un único punto el valor de value
50
+ * @param value nuevo valor a establecer
51
+ */
52
+ writeValue(value) {
53
+ if (value) {
54
+ this.nextValue = value;
55
+ }
56
+ }
57
+ onIdPrefixChange() {
58
+ if (this.contentInit) {
59
+ this.markForUpdateCheckboxIds();
60
+ }
61
+ this.propagateNewIdPrefixValue();
62
+ }
63
+ onNameChange() {
64
+ if (this.contentInit && !this.name) {
65
+ throw Error('name is required');
66
+ }
67
+ if (this.contentInit) {
68
+ this.markForUpdateCheckboxIds();
69
+ }
70
+ this.propagateNewIdPrefixValue();
71
+ }
72
+ /**
73
+ * Actualiza los componentes externos que tienen valores dependientes de idPrefix
74
+ * @private
75
+ */
76
+ propagateNewIdPrefixValue() {
77
+ if (this.hintComponent) {
78
+ this.overrideHintParams(this.hintComponent);
79
+ }
80
+ if (this.errorMessageComponent) {
81
+ this.overrideErrorMessageParams(this.errorMessageComponent);
82
+ }
83
+ // Al hacer el override de hint o error ya se aplica sobre el fieldset, por lo que sólo es necesario aplicarlo directamente
84
+ // sobre el fieldset cuando ninguno de estos existe
85
+ if (!this.hintComponent && !this.errorMessageComponent && this.fieldsetComponent) {
86
+ this.overrideFieldsetParams(this.fieldsetComponent);
87
+ }
88
+ }
89
+ markForUpdateCheckboxIds() {
90
+ this.updateChekboxIds = true;
91
+ }
92
+ /**
93
+ * Actualiza el estado de los items según el valor asignado al componente
94
+ */
95
+ updateRadioItemsChecked() {
96
+ let itemsUpdated = false;
97
+ const checkboxItems = this.getRadioItems();
98
+ if (checkboxItems.length > 0) {
99
+ checkboxItems.forEach(item => {
100
+ if (item.value === this.value && !item.lastChecked) {
101
+ item.setChecked(true);
102
+ itemsUpdated = true;
103
+ }
104
+ else if (item.value !== this.value && item.lastChecked) {
105
+ item.setChecked(false);
106
+ itemsUpdated = true;
107
+ }
108
+ });
109
+ }
110
+ return itemsUpdated;
111
+ }
112
+ /**
113
+ * Actualiza el valor cuando se produce un cambio en los items, tanto interno como externo
114
+ */
115
+ updateValueFromRadioItems() {
116
+ /*
117
+ * Se realiza dentro de un timeout porque, aunque los componentes items se hayan inicializado, en este componente puede ser que todavía
118
+ * no se detecten, y por tanto el getCheckboxItems no devuelva la lista correcta.
119
+ */
120
+ setTimeout(() => {
121
+ const items = this.getRadioItems();
122
+ if (items && items.length > 0 && items.findIndex(item => !item.isInit() && !item.divider) < 0) {
123
+ const checkedItem = items.find(item => item.isInputChecked() && !item.divider);
124
+ this.nextValue = checkedItem ? checkedItem.value : null;
125
+ }
126
+ });
127
+ if (this.items && this.items.length > 0) {
128
+ this.itemsChange.emit(this.items);
129
+ }
130
+ }
131
+ /*
132
+ * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage
133
+ */
134
+ overrideFieldsetParams(fieldset) {
135
+ fieldset.caller = this.innerHtml;
136
+ fieldset.errorId = this.getErrorId();
137
+ fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);
138
+ fieldset.detectChanges();
139
+ }
140
+ overrideHintParams(hint) {
141
+ hint.id = this.getHintId();
142
+ hint.detectChanges();
143
+ if (this.hasFieldsetComponent()) {
144
+ this.overrideFieldsetParams(this.fieldsetComponent);
145
+ }
146
+ }
147
+ overrideErrorMessageParams(errorMessage) {
148
+ errorMessage.id = this.getErrorId();
149
+ errorMessage.detectChanges();
150
+ if (this.hasFieldsetComponent()) {
151
+ this.overrideFieldsetParams(this.fieldsetComponent);
152
+ }
153
+ }
154
+ onDeleteHint() {
155
+ if (this.hasFieldsetComponent()) {
156
+ this.overrideFieldsetParams(this.fieldsetComponent);
157
+ }
158
+ }
159
+ onDeleteErrorMessage() {
160
+ if (this.hasFieldsetComponent()) {
161
+ this.overrideFieldsetParams(this.fieldsetComponent);
162
+ }
163
+ }
164
+ /*
165
+ * Funciones para recuperar valores comunes
166
+ */
167
+ hasFieldset() {
168
+ return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData ||
169
+ (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
170
+ }
171
+ hasFieldsetComponent() {
172
+ return !!this.fieldsetComponent;
173
+ }
174
+ hasLegendComponent() {
175
+ return !!this.legendComponent;
176
+ }
177
+ getErrorId() {
178
+ return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : null;
179
+ }
180
+ getHintId() {
181
+ return this.hasHint() ? this.getIdPrefix() + '-hint' : null;
182
+ }
183
+ getIdPrefix() {
184
+ return this.idPrefix ? this.idPrefix : this.name;
185
+ }
186
+ getRadioItems() {
187
+ let checkboxItems = [];
188
+ if (this.radioComponentItems && this.radioComponentItems.length > 0) {
189
+ checkboxItems = this.radioComponentItems.toArray();
190
+ }
191
+ else if (this.radioComponentItems2 && this.radioComponentItems2.length > 0) {
192
+ checkboxItems = this.radioComponentItems2.toArray();
193
+ }
194
+ return checkboxItems;
195
+ }
196
+ }
197
+ RadiosComponent.decorators = [
198
+ { type: Component, args: [{
199
+ selector: 'desy-radios',
200
+ template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [headingLevel]=\"fieldsetData.headingLevel\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [role]=\"fieldsetData.role\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\r\n [legendRef]=\"legendTemplate\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\r\n <ng-template #legendTemplate>\r\n <ng-content select=\"desy-legend\"></ng-content>\r\n </ng-template>\r\n </desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n\r\n <div class=\"c-radios\" [ngClass]=\"classes\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngIf=\"radioComponentItems && radioComponentItems.length > 0\">\r\n <ng-content select=\"desy-radio-item\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(radioComponentItems && radioComponentItems.length > 0) && items\">\r\n <desy-radio-item *ngFor=\"let item of items; index as i\"\r\n [id]=\"item.id\"\r\n [disabled]=\"item.disabled\"\r\n [classes]=\"item.classes\"\r\n [value]=\"item.value\"\r\n [(checked)]=\"item.checked\"\r\n [conditional]=\"item.conditional\"\r\n [divider]=\"item.divider\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\">\r\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\r\n [classes]=\"item.labelData ? item.labelData.classes : null\"\r\n [role]=\"item.labelData ? item.labelData.role : null\"\r\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\r\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\r\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\r\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\r\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\r\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\r\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\r\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\r\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\r\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\r\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\r\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\r\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\r\n [text]=\"item.hintData.text\"\r\n [html]=\"item.hintData.html\"\r\n [classes]=\"item.hintData.classes\"\r\n [role]=\"item.hintData.role\"\r\n [ariaLabel]=\"item.hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"item.hintData.ariaHidden\"\r\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\r\n [ariaControls]=\"item.hintData.ariaControls\"\r\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\r\n [ariaLive]=\"item.hintData.ariaLive\"\r\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\r\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\r\n <desy-content *ngIf=\"item.conditionalHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\r\n </desy-content>\r\n </desy-radio-item>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
201
+ providers: [
202
+ {
203
+ provide: NG_VALUE_ACCESSOR,
204
+ useExisting: forwardRef(() => RadiosComponent),
205
+ multi: true
206
+ }
207
+ ]
208
+ },] }
209
+ ];
210
+ RadiosComponent.propDecorators = {
211
+ fieldsetData: [{ type: Input }],
212
+ legendRef: [{ type: Input }],
213
+ legendData: [{ type: Input }],
214
+ legendText: [{ type: Input }],
215
+ idPrefix: [{ type: Input }],
216
+ name: [{ type: Input }],
217
+ items: [{ type: Input }],
218
+ itemsChange: [{ type: Output }],
219
+ formGroupClasses: [{ type: Input }],
220
+ hasDividers: [{ type: Input }],
221
+ hasError: [{ type: Input }],
222
+ classes: [{ type: Input }],
223
+ describedBy: [{ type: Input }],
224
+ fieldsetComponent: [{ type: ContentChildren, args: [FieldsetComponent,] }],
225
+ legendComponent: [{ type: ContentChildren, args: [LegendComponent,] }],
226
+ radioComponentItems: [{ type: ContentChildren, args: [RadioItemComponent,] }],
227
+ innerHtml: [{ type: ViewChild, args: ['innerHtml', { static: true },] }],
228
+ radioComponentItems2: [{ type: ViewChildren, args: [RadioItemComponent,] }]
229
+ };
230
+ __decorate([
231
+ DesyOnInputChange('onIdPrefixChange')
232
+ ], RadiosComponent.prototype, "idPrefix", void 0);
233
+ __decorate([
234
+ DesyOnInputChange('onNameChange')
235
+ ], RadiosComponent.prototype, "name", void 0);
236
+ __decorate([
237
+ DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' })
238
+ ], RadiosComponent.prototype, "fieldsetComponent", void 0);
239
+ __decorate([
240
+ DesyContentChild()
241
+ ], RadiosComponent.prototype, "legendComponent", void 0);
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9yYWRpb3MvcmFkaW9zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVPLFNBQVMsRUFDdEIsWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUczRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUN6RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQWE1RixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxrQkFBdUI7SUFYNUQ7O1FBbUNZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFtQnBELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBa045QixDQUFDO0lBaE5DLFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxD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LEtBQUs7c0JBQ0wsS0FBSzswQkFDTCxLQUFLO2dDQUdMLGVBQWUsU0FBQyxpQkFBaUI7OEJBR2pDLGVBQWUsU0FBQyxlQUFlO2tDQUUvQixlQUFlLFNBQUMsa0JBQWtCO3dCQUVsQyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTttQ0FDdkMsWUFBWSxTQUFDLGtCQUFrQjs7QUF2QnZCO0lBRFIsaUJBQWlCLENBQUMsa0JBQWtCLENBQUM7aURBQ1o7QUFHakI7SUFEUixpQkFBaUIsQ0FBQyxjQUFjLENBQUM7NkNBQ1o7QUFZYztJQURuQyxnQkFBZ0IsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFDLENBQUM7MERBQ1E7QUFHdkM7SUFEakMsZ0JBQWdCLEVBQUU7d0RBQ2dEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlckNvbnRlbnRJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRG9DaGVjayxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtGaWVsZHNldERhdGEsIEl0ZW1SYWRpb0RhdGEsIExlZ2VuZERhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0xlZ2VuZENvbXBvbmVudH0gZnJvbSAnLi4vZmllbGRzZXQvbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Zvcm1GaWVsZENvbXBvbmVudH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmFkaW9JdGVtQ29tcG9uZW50fSBmcm9tICcuL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tICcuLi9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xyXG5pbXBvcnQge01ha2VIdG1sTGlzdFBpcGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy9tYWtlLWh0bWwtbGlzdC5waXBlJztcclxuaW1wb3J0IHtIaW50Q29tcG9uZW50fSBmcm9tICcuLi9oaW50L2hpbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtFcnJvck1lc3NhZ2VDb21wb25lbnR9IGZyb20gJy4uL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Rlc3lDb250ZW50Q2hpbGR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xyXG5pbXBvcnQge0Rlc3lPbklucHV0Q2hhbmdlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LW9uLWlucHV0LWNoYW5nZS5kZWNvcmF0b3InO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LXJhZGlvcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb3NDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJhZGlvc0NvbXBvbmVudCBleHRlbmRzIEZvcm1GaWVsZENvbXBvbmVudDxhbnk+IGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJDb250ZW50SW5pdCB7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxyXG4gICAqIDEpIGluY2x1aXIgY29tcG9uZW50ZSBGaWVsZHNldENvbXBvbmVudFxyXG4gICAqIDIpIGluY2x1aXIgb2JqZXRvIEZpZWxkc2V0RGF0YSAoaW50ZXJmYXogZXhwdWVzdGEpXHJcbiAgICogMykgaW5jbHVpciBjb21wb25lbnRlIExlZ2VuZENvbXBvbmVudFxyXG4gICAqIDQpIGluY2x1aXIgdGVtcGxhdGUgbGVnZW5kXHJcbiAgICogNSkgaW5jbHVpciBsZWdlbmREYXRhIC0gaW5jbHVpciB1biBmaWVsZHNldCBjb24gdW5hIGxlZ2VuZGEgY29uIGxvcyBwYXJhbWV0cm9zIHBhc2Fkb3MgIChpbnRlcmZheiBleHB1ZXN0YSlcclxuICAgKiA2KSBpbmNsdWlyIGxlZ2VuZFRleHQgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1biB0ZXh0byBlbiBsYSBsZWdlbmRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgZmllbGRzZXREYXRhOiBGaWVsZHNldERhdGE7XHJcbiAgQElucHV0KCkgbGVnZW5kUmVmOiBUZW1wbGF0ZVJlZjxMZWdlbmRDb21wb25lbnQ+O1xyXG4gIEBJbnB1dCgpIGxlZ2VuZERhdGE6IExlZ2VuZERhdGE7XHJcbiAgQElucHV0KCkgbGVnZW5kVGV4dDogc3RyaW5nO1xyXG5cclxuICBARGVzeU9uSW5wdXRDaGFuZ2UoJ29uSWRQcmVmaXhDaGFuZ2UnKVxyXG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XHJcblxyXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25OYW1lQ2hhbmdlJylcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGl0ZW1zOiBJdGVtUmFkaW9EYXRhW107XHJcbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJdGVtUmFkaW9EYXRhW10+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cENsYXNzZXM6IHN0cmluZztcclxuICBASW5wdXQoKSBoYXNEaXZpZGVyczogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoYXNFcnJvcjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVzY3JpYmVkQnk6IHN0cmluZztcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcclxuICBAQ29udGVudENoaWxkcmVuKEZpZWxkc2V0Q29tcG9uZW50KSBmaWVsZHNldENvbXBvbmVudDogRmllbGRzZXRDb21wb25lbnQ7XHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKClcclxuICBAQ29udGVudENoaWxkcmVuKExlZ2VuZENvbXBvbmVudCkgbGVnZW5kQ29tcG9uZW50OiBMZWdlbmRDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oUmFkaW9JdGVtQ29tcG9uZW50KSByYWRpb0NvbXBvbmVudEl0ZW1zOiBRdWVyeUxpc3Q8UmFkaW9JdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5uZXJIdG1sJywgeyBzdGF0aWM6IHRydWUgfSkgaW5uZXJIdG1sOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oUmFkaW9JdGVtQ29tcG9uZW50KSByYWRpb0NvbXBvbmVudEl0ZW1zMjogUXVlcnlMaXN0PFJhZGlvSXRlbUNvbXBvbmVudD47XHJcblxyXG4gIHByaXZhdGUgbmV4dFZhbHVlID0gbnVsbDtcclxuICBwcml2YXRlIHVwZGF0ZUNoZWtib3hJZHMgPSBmYWxzZTtcclxuICBwcml2YXRlIGNvbnRlbnRJbml0ID0gZmFsc2U7XHJcblxyXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5leHRWYWx1ZSAhPT0gbnVsbCAmJiAodGhpcy5uZXh0VmFsdWUgIT09ICcnIHx8ICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUgIT09ICcnKSkpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubmV4dFZhbHVlO1xyXG4gICAgICB0aGlzLm5leHRWYWx1ZSA9IG51bGw7XHJcbiAgICAgIGNvbnN0IHVwZGF0ZUl0ZW1zID0gdGhpcy51cGRhdGVSYWRpb0l0ZW1zQ2hlY2tlZCgpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpICA9PiB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICBpZiAodXBkYXRlSXRlbXMgJiYgdGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnVwZGF0ZUNoZWtib3hJZHMpIHtcclxuICAgICAgY29uc3QgY2hlY2tib3hJdGVtcyA9IHRoaXMuZ2V0UmFkaW9JdGVtcygpO1xyXG4gICAgICBpZiAoY2hlY2tib3hJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY2hlY2tib3hJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4gaXRlbS51cGRhdGVSYWRpb0lkKGluZGV4KSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgRXJyb3IoJ2l0ZW1zIGFyZSByZXF1aXJlZCcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXBkYXRlQ2hla2JveElkcyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm5hbWUpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ25hbWUgaXMgcmVxdWlyZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbnRlbnRJbml0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIHNvYnJlc2NyaWJlIGVsIHdyaXRlVmFsdWUgZGUgRm9ybUZpZWxkIHBhcmEgZ2VzdGlvbmFyIGVuIHVuIMO6bmljbyBwdW50byBlbCB2YWxvciBkZSB2YWx1ZVxyXG4gICAqIEBwYXJhbSB2YWx1ZSBudWV2byB2YWxvciBhIGVzdGFibGVjZXJcclxuICAgKi9cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubmV4dFZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklkUHJlZml4Q2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29udGVudEluaXQpIHtcclxuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlQ2hlY2tib3hJZHMoKTtcclxuICAgIH1cclxuICAgIHRoaXMucHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIG9uTmFtZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbnRlbnRJbml0ICYmICF0aGlzLm5hbWUpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ25hbWUgaXMgcmVxdWlyZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb250ZW50SW5pdCkge1xyXG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGVDaGVja2JveElkcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWN0dWFsaXphIGxvcyBjb21wb25lbnRlcyBleHRlcm5vcyBxdWUgdGllbmVuIHZhbG9yZXMgZGVwZW5kaWVudGVzIGRlIGlkUHJlZml4XHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHByb3BhZ2F0ZU5ld0lkUHJlZml4VmFsdWUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5oaW50Q29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMub3ZlcnJpZGVIaW50UGFyYW1zKHRoaXMuaGludENvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMub3ZlcnJpZGVFcnJvck1lc3NhZ2VQYXJhbXModGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEFsIGhhY2VyIGVsIG92ZXJyaWRlIGRlIGhpbnQgbyBlcnJvciB5YSBzZSBhcGxpY2Egc29icmUgZWwgZmllbGRzZXQsIHBvciBsbyBxdWUgc8OzbG8gZXMgbmVjZXNhcmlvIGFwbGljYXJsbyBkaXJlY3RhbWVudGVcclxuICAgIC8vIHNvYnJlIGVsIGZpZWxkc2V0IGN1YW5kbyBuaW5ndW5vIGRlIGVzdG9zIGV4aXN0ZVxyXG4gICAgaWYgKCF0aGlzLmhpbnRDb21wb25lbnQgJiYgIXRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMuZmllbGRzZXRDb21wb25lbnQpIHtcclxuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVDaGVrYm94SWRzID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdHVhbGl6YSBlbCBlc3RhZG8gZGUgbG9zIGl0ZW1zIHNlZ8O6biBlbCB2YWxvciBhc2lnbmFkbyBhbCBjb21wb25lbnRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVSYWRpb0l0ZW1zQ2hlY2tlZCgpOiBib29sZWFuIHtcclxuICAgIGxldCBpdGVtc1VwZGF0ZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IGNoZWNrYm94SXRlbXMgPSB0aGlzLmdldFJhZGlvSXRlbXMoKTtcclxuICAgIGlmIChjaGVja2JveEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgY2hlY2tib3hJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlICYmICFpdGVtLmxhc3RDaGVja2VkKSB7XHJcbiAgICAgICAgICBpdGVtLnNldENoZWNrZWQodHJ1ZSk7XHJcbiAgICAgICAgICBpdGVtc1VwZGF0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS52YWx1ZSAhPT0gdGhpcy52YWx1ZSAmJiBpdGVtLmxhc3RDaGVja2VkKSB7XHJcbiAgICAgICAgICBpdGVtLnNldENoZWNrZWQoZmFsc2UpO1xyXG4gICAgICAgICAgaXRlbXNVcGRhdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1zVXBkYXRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdHVhbGl6YSBlbCB2YWxvciBjdWFuZG8gc2UgcHJvZHVjZSB1biBjYW1iaW8gZW4gbG9zIGl0ZW1zLCB0YW50byBpbnRlcm5vIGNvbW8gZXh0ZXJub1xyXG4gICAqL1xyXG4gIHVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTogdm9pZCB7XHJcblxyXG4gICAgLypcclxuICAgICAqIFNlIHJlYWxpemEgZGVudHJvIGRlIHVuIHRpbWVvdXQgcG9ycXVlLCBhdW5xdWUgbG9zIGNvbXBvbmVudGVzIGl0ZW1zIHNlIGhheWFuIGluaWNpYWxpemFkbywgZW4gZXN0ZSBjb21wb25lbnRlIHB1ZWRlIHNlciBxdWUgdG9kYXbDrWFcclxuICAgICAqIG5vIHNlIGRldGVjdGVuLCB5IHBvciB0YW50byBlbCBnZXRDaGVja2JveEl0ZW1zIG5vIGRldnVlbHZhIGxhIGxpc3RhIGNvcnJlY3RhLlxyXG4gICAgICovXHJcbiAgICBzZXRUaW1lb3V0KCAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRSYWRpb0l0ZW1zKCk7XHJcbiAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwICYmIGl0ZW1zLmZpbmRJbmRleChpdGVtID0+ICFpdGVtLmlzSW5pdCgpICYmICFpdGVtLmRpdmlkZXIpIDwgMCkge1xyXG4gICAgICAgIGNvbnN0IGNoZWNrZWRJdGVtID0gaXRlbXMuZmluZChpdGVtID0+IGl0ZW0uaXNJbnB1dENoZWNrZWQoKSAmJiAhaXRlbS5kaXZpZGVyKTtcclxuICAgICAgICB0aGlzLm5leHRWYWx1ZSA9IGNoZWNrZWRJdGVtID8gY2hlY2tlZEl0ZW0udmFsdWUgOiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5pdGVtc0NoYW5nZS5lbWl0KHRoaXMuaXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWVtcGxhemFyIGVsIGNvbnRlbmlkbyBkZWwgZmllbGRzZXQsIGxhYmVsLCBoaW50IG8gZXJyb3JtZXNzYWdlXHJcbiAgICovXHJcblxyXG4gIG92ZXJyaWRlRmllbGRzZXRQYXJhbXMoZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50KTogdm9pZCB7XHJcbiAgICBmaWVsZHNldC5jYWxsZXIgPSB0aGlzLmlubmVySHRtbDtcclxuICAgIGZpZWxkc2V0LmVycm9ySWQgPSB0aGlzLmdldEVycm9ySWQoKTtcclxuICAgIGZpZWxkc2V0LmRlc2NyaWJlZEJ5ID0gbmV3IE1ha2VIdG1sTGlzdFBpcGUoKS50cmFuc2Zvcm0oW3RoaXMuZ2V0SGludElkKCksIHRoaXMuZ2V0RXJyb3JJZCgpXSwgbnVsbCk7XHJcbiAgICBmaWVsZHNldC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZUhpbnRQYXJhbXMoaGludDogSGludENvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgaGludC5pZCA9IHRoaXMuZ2V0SGludElkKCk7XHJcbiAgICBoaW50LmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XHJcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG92ZXJyaWRlRXJyb3JNZXNzYWdlUGFyYW1zKGVycm9yTWVzc2FnZTogRXJyb3JNZXNzYWdlQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICBlcnJvck1lc3NhZ2UuaWQgPSB0aGlzLmdldEVycm9ySWQoKTtcclxuICAgIGVycm9yTWVzc2FnZS5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xyXG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkRlbGV0ZUhpbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XHJcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRGVsZXRlRXJyb3JNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xyXG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWN1cGVyYXIgdmFsb3JlcyBjb211bmVzXHJcbiAgICovXHJcblxyXG4gIGhhc0ZpZWxkc2V0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSB8fCB0aGlzLmhhc0xlZ2VuZENvbXBvbmVudCgpIHx8IHRoaXMubGVnZW5kUmVmIHx8IHRoaXMuZmllbGRzZXREYXRhIHx8XHJcbiAgICAgICh0aGlzLmxlZ2VuZERhdGEgJiYgKHRoaXMubGVnZW5kRGF0YS50ZXh0IHx8IHRoaXMubGVnZW5kRGF0YS5odG1sKSkgfHwgdGhpcy5sZWdlbmRUZXh0KTtcclxuICB9XHJcblxyXG4gIGhhc0ZpZWxkc2V0Q29tcG9uZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5maWVsZHNldENvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIGhhc0xlZ2VuZENvbXBvbmVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMubGVnZW5kQ29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzRXJyb3JzTWVzc2FnZSgpID8gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1lcnJvcicgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0SGludElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNIaW50KCkgPyB0aGlzLmdldElkUHJlZml4KCkgKyAnLWhpbnQnIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiB0aGlzLm5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXRSYWRpb0l0ZW1zKCk6IFJhZGlvSXRlbUNvbXBvbmVudFtdIHtcclxuICAgIGxldCBjaGVja2JveEl0ZW1zID0gW107XHJcbiAgICBpZiAodGhpcy5yYWRpb0NvbXBvbmVudEl0ZW1zICYmIHRoaXMucmFkaW9Db21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNoZWNrYm94SXRlbXMgPSB0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMudG9BcnJheSgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnJhZGlvQ29tcG9uZW50SXRlbXMyICYmIHRoaXMucmFkaW9Db21wb25lbnRJdGVtczIubGVuZ3RoID4gMCkge1xyXG4gICAgICBjaGVja2JveEl0ZW1zID0gdGhpcy5yYWRpb0NvbXBvbmVudEl0ZW1zMi50b0FycmF5KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2hlY2tib3hJdGVtcztcclxuICB9XHJcbn1cclxuIl19