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
@@ -1,96 +1,190 @@
1
- import { Component, forwardRef, Input, Optional } from '@angular/core';
2
- import { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { FormFieldComponent } from '../form-field/form-field.component';
4
- export class InputGroupComponent extends FormFieldComponent {
5
- constructor(controlContainer) {
6
- super();
7
- this.controlContainer = controlContainer;
8
- }
9
- ngOnInit() {
10
- this.checkRequired();
11
- this.onExternalChange();
12
- }
13
- ngOnChanges() {
14
- this.checkRequired();
15
- this.onExternalChange();
16
- }
17
- checkRequired() {
18
- if (!this.id) {
19
- throw Error('id is required');
20
- }
21
- if (this.items) {
22
- for (const item of this.items) {
23
- if (!item.divider && !item.name) {
24
- throw Error('item name is required');
25
- }
26
- if (!item.divider && !this.hasItemLabel(item)) {
27
- throw Error('item label is required');
28
- }
29
- }
30
- }
31
- else {
32
- throw Error('items are required');
33
- }
34
- }
35
- writeValue(value) {
36
- this.value = value;
37
- if (this.value) {
38
- this.items.forEach(item => item.value = this.value[this.getItemName(item)]);
39
- }
40
- this.onChange(value);
41
- }
42
- onExternalChange() {
43
- if (!this.value) {
44
- this.value = {};
45
- }
46
- this.items.forEach(item => this.value[this.getItemName(item)] = item.value);
47
- this.onChange(this.value);
48
- }
49
- onInternalChange(itemName, itemValue) {
50
- if (!this.value) {
51
- this.value = {};
52
- }
53
- this.value[itemName] = itemValue;
54
- this.onChange(this.value);
55
- }
56
- hasFieldset() {
57
- return !!(this.legendRef || this.fieldsetData
58
- || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
59
- }
60
- getItemName(item) {
61
- return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;
62
- }
63
- hasItemLabel(item) {
64
- return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);
65
- }
66
- }
67
- InputGroupComponent.decorators = [
68
- { type: Component, args: [{
69
- selector: 'desy-input-group',
70
- template: "\n<!-- Divider no forma parte del formulario, por lo que es reutilizable en cualquier caso -->\n<ng-template #itemDivider let-item=\"item\" let-mode=\"mode\">\n <div *ngIf=\"item.divider.html; else notHtml\" [ngClass]=\"item.divider.classes\" role=\"separator\" [innerHTML]=\"item.divider.html\"></div>\n <ng-template #notHtml>\n <div [ngClass]=\"item.divider.classes\" role=\"separator\" >\n <p>{{item.divider.text}}</p>\n </div>\n </ng-template>\n</ng-template>\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 <!-- Reactive forms -->\n <div *ngIf=\"controlContainer && !ngModelGroup\"\n [formGroup]=\"controlContainer.control\"\n [ngClass]=\"classes ? classes : 'flex'\"\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 <ng-container *ngFor=\"let item of items; index as i\">\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [items]=\"item.selectItems\"\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-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n\n [maxlength]=\"item.maxlength\"\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-input>\n </ng-template>\n </ng-container>\n </div>\n\n <!-- Template-driven forms -->\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\n <div [ngModelGroup]=\"ngModelGroup\"\n [ngClass]=\"classes ? classes : 'flex'\"\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 <ng-container *ngFor=\"let item of items; index as i\">\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\n [items]=\"item.selectItems\"\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-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n\n [maxlength]=\"item.maxlength\"\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-input>\n </ng-template>\n </ng-container>\n </div>\n </desy-template-driven-wrapper>\n\n <!-- With ngModel-->\n <div *ngIf=\"!controlContainer\"\n [ngClass]=\"classes ? classes : 'flex'\"\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 <ng-container *ngFor=\"let item of items; index as i\">\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [items]=\"item.selectItems\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\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-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n\n [maxlength]=\"item.maxlength\"\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-input>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<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=\"group\"\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\"\n role=\"group\"></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\"\n role=\"group\"></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\"\n role=\"group\"></desy-fieldset>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n",
71
- providers: [
72
- {
73
- provide: NG_VALUE_ACCESSOR,
74
- useExisting: forwardRef(() => InputGroupComponent),
75
- multi: true
76
- }
77
- ]
78
- },] }
79
- ];
80
- InputGroupComponent.ctorParameters = () => [
81
- { type: ControlContainer, decorators: [{ type: Optional }] }
82
- ];
83
- InputGroupComponent.propDecorators = {
84
- ngModelGroup: [{ type: Input }],
85
- items: [{ type: Input }],
86
- namePrefix: [{ type: Input }],
87
- classes: [{ type: Input }],
88
- formGroupClasses: [{ type: Input }],
89
- errorMessage: [{ type: Input }],
90
- id: [{ type: Input }],
91
- fieldsetData: [{ type: Input }],
92
- legendRef: [{ type: Input }],
93
- legendData: [{ type: Input }],
94
- legendText: [{ type: Input }]
95
- };
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsaWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUV2RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQWF4RSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQXVCO0lBdUI5RCxZQUErQixnQkFBa0M7UUFDL0QsS0FBSyxFQUFFLENBQUM7UUFEcUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUVqRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1osTUFBTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUMvQixNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzdDLE1BQU0sS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7aUJBQ3ZDO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxTQUFjO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWTtlQUN4QyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBd0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBd0I7UUFDbkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OztZQXRHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsa3RrQkFBMkM7Z0JBQzNDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO3dCQUNsRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjthQUNGOzs7WUFkUSxnQkFBZ0IsdUJBc0NWLFFBQVE7OzsyQkFyQnBCLEtBQUs7b0JBRUwsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7K0JBQ0wsS0FBSzsyQkFDTCxLQUFLO2lCQUNMLEtBQUs7MkJBU0wsS0FBSzt3QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkc2V0RGF0YSwgTGVnZW5kRGF0YSwgSXRlbUlucHV0R3JvdXBEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExlZ2VuZENvbXBvbmVudCB9IGZyb20gJy4uL2ZpZWxkc2V0L2xlZ2VuZC9sZWdlbmQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWlucHV0LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dEdyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0R3JvdXBDb21wb25lbnQgZXh0ZW5kcyBGb3JtRmllbGRDb21wb25lbnQ8YW55PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBuZ01vZGVsR3JvdXA6IHN0cmluZztcblxuICBASW5wdXQoKSBpdGVtczogSXRlbUlucHV0R3JvdXBEYXRhW107XG4gIEBJbnB1dCgpIG5hbWVQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuICBASW5wdXQoKSBmb3JtR3JvdXBDbGFzc2VzOiBhbnk7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxuICAgKiAxKSBpbmNsdWlyIG9iamV0byBGaWVsZHNldERhdGEgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiAyKSBpbmNsdWlyIHRlbXBsYXRlIGxlZ2VuZFxuICAgKiAzKSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiA0KSBpbmNsdWlyIGxlZ2VuZFRleHQgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1biB0ZXh0byBlbiBsYSBsZWdlbmRhXG4gICAqL1xuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcbiAgQElucHV0KCkgbGVnZW5kUmVmOiBUZW1wbGF0ZVJlZjxMZWdlbmRDb21wb25lbnQ+O1xuICBASW5wdXQoKSBsZWdlbmREYXRhOiBMZWdlbmREYXRhO1xuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja1JlcXVpcmVkKCk7XG4gICAgdGhpcy5vbkV4dGVybmFsQ2hhbmdlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrUmVxdWlyZWQoKTtcbiAgICB0aGlzLm9uRXh0ZXJuYWxDaGFuZ2UoKTtcbiAgfVxuXG4gIGNoZWNrUmVxdWlyZWQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICB0aHJvdyBFcnJvcignaWQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgaWYgKCFpdGVtLmRpdmlkZXIgJiYgIWl0ZW0ubmFtZSkge1xuICAgICAgICAgIHRocm93IEVycm9yKCdpdGVtIG5hbWUgaXMgcmVxdWlyZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWl0ZW0uZGl2aWRlciAmJiAhdGhpcy5oYXNJdGVtTGFiZWwoaXRlbSkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcignaXRlbSBsYWJlbCBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKCdpdGVtcyBhcmUgcmVxdWlyZWQnKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChpdGVtID0+IGl0ZW0udmFsdWUgPSB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldKTtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBvbkV4dGVybmFsQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHt9O1xuICAgIH1cbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldID0gaXRlbS52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG9uSW50ZXJuYWxDaGFuZ2UoaXRlbU5hbWU6IHN0cmluZywgaXRlbVZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB7fTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZVtpdGVtTmFtZV0gPSBpdGVtVmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGhhc0ZpZWxkc2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmxlZ2VuZFJlZiB8fCB0aGlzLmZpZWxkc2V0RGF0YVxuICAgICAgfHwgKHRoaXMubGVnZW5kRGF0YSAmJiAodGhpcy5sZWdlbmREYXRhLnRleHQgfHwgdGhpcy5sZWdlbmREYXRhLmh0bWwpKSB8fCB0aGlzLmxlZ2VuZFRleHQpO1xuICB9XG5cbiAgZ2V0SXRlbU5hbWUoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lUHJlZml4ID8gdGhpcy5uYW1lUHJlZml4ICsgJy0nICsgaXRlbS5uYW1lIDogaXRlbS5uYW1lO1xuICB9XG5cbiAgaGFzSXRlbUxhYmVsKGl0ZW06IEl0ZW1JbnB1dEdyb3VwRGF0YSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISgoaXRlbS5sYWJlbERhdGEgJiYgKGl0ZW0ubGFiZWxEYXRhLnRleHQgfHwgaXRlbS5sYWJlbERhdGEuaHRtbCkpIHx8IGl0ZW0ubGFiZWxUZXh0KTtcbiAgfVxufVxuIl19
1
+ import { __decorate } from "tslib";
2
+ import { Component, ContentChildren, EventEmitter, forwardRef, Input, Optional, Output, ViewChild } from '@angular/core';
3
+ import { ControlContainer, 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 { InputGroupItemComponent } from './input-group-item/input-group-item.component';
7
+ import { DesyOnInputChange } from '../../../shared/decorators/desy-on-input-change.decorator';
8
+ import { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';
9
+ import { FieldsetComponent } from '../fieldset/fieldset.component';
10
+ import { MakeHtmlListPipe } from '../../../shared/pipes/make-html-list.pipe';
11
+ import { InputGroupInputComponent } from './input-group-input/input-group-input.component';
12
+ import { InputGroupSelectComponent } from './input-group-select/input-group-select.component';
13
+ import { InputGroupDividerComponent } from './input-group-divider/input-group-divider.component';
14
+ import { StringUtils } from '../../../shared/utils/string-utils';
15
+ export class InputGroupComponent extends FormFieldComponent {
16
+ constructor(controlContainer) {
17
+ super();
18
+ this.controlContainer = controlContainer;
19
+ this.itemsChange = new EventEmitter();
20
+ this.contentInit = false;
21
+ }
22
+ ngOnChanges() {
23
+ if (!this.id) {
24
+ throw Error('id is required');
25
+ }
26
+ if (this.items) {
27
+ for (const item of this.items) {
28
+ if (!item.divider && !item.name) {
29
+ throw Error('item name is required');
30
+ }
31
+ if (!item.divider && !this.hasItemLabel(item)) {
32
+ throw Error('item label is required');
33
+ }
34
+ }
35
+ }
36
+ }
37
+ ngAfterContentInit() {
38
+ this.contentInit = true;
39
+ }
40
+ ngAfterViewChecked() {
41
+ const items = this.getItems();
42
+ if (!items || items.length === 0) {
43
+ throw Error('items are required');
44
+ }
45
+ }
46
+ writeValue(value) {
47
+ if (value) {
48
+ this.value = value;
49
+ const items = this.getItems();
50
+ items.forEach(item => {
51
+ const v = this.value[this.getItemName(item)];
52
+ item.value = v ? v : null;
53
+ });
54
+ if (this.items) {
55
+ this.itemsChange.emit(this.items);
56
+ }
57
+ }
58
+ this.onChange(value);
59
+ }
60
+ onExternalChange() {
61
+ if (!this.contentInit) {
62
+ return;
63
+ }
64
+ if (!this.value) {
65
+ this.value = {};
66
+ }
67
+ const items = this.getItems();
68
+ items.forEach(item => this.value[this.getItemName(item)] = item.value);
69
+ this.onChange(this.value);
70
+ }
71
+ onInternalChange(item, itemValue) {
72
+ const itemName = this.getItemName(item);
73
+ if (!this.value) {
74
+ this.value = {};
75
+ }
76
+ if (this.value[itemName] !== itemValue) {
77
+ this.value[itemName] = itemValue;
78
+ this.onChange(this.value);
79
+ if (item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent) {
80
+ item.valueChange.emit(itemValue);
81
+ }
82
+ if (this.items) {
83
+ item.value = itemValue;
84
+ this.itemsChange.emit(this.items);
85
+ }
86
+ }
87
+ }
88
+ overrideFieldsetParams(fieldset) {
89
+ fieldset.caller = this.innerHtml;
90
+ fieldset.errorId = this.getErrorId();
91
+ fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);
92
+ fieldset.role = 'group';
93
+ fieldset.detectChanges();
94
+ }
95
+ /*
96
+ * Métodos para proporcionar datos
97
+ */
98
+ getItems() {
99
+ return this.itemsComponents && this.itemsComponents.length ? this.itemsComponents.toArray() : this.items;
100
+ }
101
+ getItemLabelRef(item) {
102
+ return item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent ? item.labelRef : null;
103
+ }
104
+ getItemLabelData(item) {
105
+ return item.labelData ? item.labelData : { text: item.labelText };
106
+ }
107
+ hasFieldset() {
108
+ return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData
109
+ || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
110
+ }
111
+ hasFieldsetComponent() {
112
+ return !!this.fieldsetComponent;
113
+ }
114
+ hasLegendComponent() {
115
+ return !!this.legendComponent;
116
+ }
117
+ getItemName(item) {
118
+ return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;
119
+ }
120
+ getItemSelectOptions(item) {
121
+ return item instanceof InputGroupSelectComponent ?
122
+ item.selectItemComponentList.toArray() : item.selectItems;
123
+ }
124
+ getItemDividerTemplate(item) {
125
+ return item.divider instanceof InputGroupDividerComponent ? item.divider.dividerContent : null;
126
+ }
127
+ getItemDividerHtml(item) {
128
+ return item.divider.html ? item.divider.html : `<p>${StringUtils.escapeHtml(item.divider.text)}</p>`;
129
+ }
130
+ isSelectItem(item) {
131
+ let hasSelectItems;
132
+ if (item instanceof InputGroupSelectComponent) {
133
+ hasSelectItems = item.selectItemComponentList && item.selectItemComponentList.length > 0;
134
+ }
135
+ else {
136
+ hasSelectItems = item.selectItems;
137
+ }
138
+ return item.isSelect && hasSelectItems;
139
+ }
140
+ hasItemLabel(item) {
141
+ return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);
142
+ }
143
+ }
144
+ InputGroupComponent.decorators = [
145
+ { type: Component, args: [{
146
+ selector: 'desy-input-group',
147
+ template: "\r\n<!-- Divider no forma parte del formulario, por lo que es reutilizable en cualquier caso -->\r\n<ng-template #itemDivider let-item=\"item\">\r\n <div role=\"separator\" [ngClass]=\"item.divider.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #innerHtml>\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\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\r\n <!-- Reactive forms -->\r\n <div *ngIf=\"controlContainer && !ngModelGroup\"\r\n [formGroup]=\"controlContainer.control\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\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 *ngFor=\"let item of getItems(); index as i\">\r\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [items]=\"getItemSelectOptions(item)\"\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\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\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\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Template-driven forms -->\r\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\r\n <div [ngModelGroup]=\"ngModelGroup\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\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 *ngFor=\"let item of getItems(); index as i\">\r\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\r\n [items]=\"getItemSelectOptions(item)\"\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\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\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\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </desy-template-driven-wrapper>\r\n\r\n <!-- With ngModel-->\r\n <div *ngIf=\"!controlContainer\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\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 *ngFor=\"let item of getItems(); index as i\">\r\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [items]=\"getItemSelectOptions(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\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\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\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\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<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=\"group\"\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\"\r\n role=\"group\"></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\"\r\n role=\"group\"></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\"\r\n role=\"group\"></desy-fieldset>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n",
148
+ providers: [
149
+ {
150
+ provide: NG_VALUE_ACCESSOR,
151
+ useExisting: forwardRef(() => InputGroupComponent),
152
+ multi: true
153
+ }
154
+ ]
155
+ },] }
156
+ ];
157
+ InputGroupComponent.ctorParameters = () => [
158
+ { type: ControlContainer, decorators: [{ type: Optional }] }
159
+ ];
160
+ InputGroupComponent.propDecorators = {
161
+ ngModelGroup: [{ type: Input }],
162
+ items: [{ type: Input }],
163
+ itemsChange: [{ type: Output }],
164
+ namePrefix: [{ type: Input }],
165
+ classes: [{ type: Input }],
166
+ formGroupClasses: [{ type: Input }],
167
+ errorMessage: [{ type: Input }],
168
+ id: [{ type: Input }],
169
+ fieldsetData: [{ type: Input }],
170
+ legendRef: [{ type: Input }],
171
+ legendData: [{ type: Input }],
172
+ legendText: [{ type: Input }],
173
+ itemsComponents: [{ type: ContentChildren, args: [InputGroupItemComponent,] }],
174
+ fieldsetComponent: [{ type: ContentChildren, args: [FieldsetComponent,] }],
175
+ legendComponent: [{ type: ContentChildren, args: [LegendComponent,] }],
176
+ innerHtml: [{ type: ViewChild, args: ['innerHtml', { static: true },] }]
177
+ };
178
+ __decorate([
179
+ DesyOnInputChange('onExternalChange')
180
+ ], InputGroupComponent.prototype, "items", void 0);
181
+ __decorate([
182
+ DesyOnInputChange('onExternalChange')
183
+ ], InputGroupComponent.prototype, "namePrefix", void 0);
184
+ __decorate([
185
+ DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' })
186
+ ], InputGroupComponent.prototype, "fieldsetComponent", void 0);
187
+ __decorate([
188
+ DesyContentChild()
189
+ ], InputGroupComponent.prototype, "legendComponent", void 0);
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQUUsWUFBWSxFQUM3QixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFBRSxNQUFNLEVBRUgsU0FBUyxFQUN2QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBYS9ELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxr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WUFyTUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGtnbkJBQTJDO2dCQUMzQyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzt3QkFDbEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O1lBdkJRLGdCQUFnQix1QkErRFYsUUFBUTs7OzJCQXJDcEIsS0FBSztvQkFHTCxLQUFLOzBCQUNMLE1BQU07eUJBR04sS0FBSztzQkFDTCxLQUFLOytCQUNMLEtBQUs7MkJBQ0wsS0FBSztpQkFDTCxLQUFLOzJCQVNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7OEJBRUwsZUFBZSxTQUFDLHVCQUF1QjtnQ0FHdkMsZUFBZSxTQUFDLGlCQUFpQjs4QkFHakMsZUFBZSxTQUFDLGVBQWU7d0JBRS9CLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQTlCL0I7SUFEUixpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztrREFDRDtBQUk1QjtJQURSLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO3VEQUNWO0FBcUJRO0lBRG5DLGdCQUFnQixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUMsQ0FBQzs4REFDUTtBQUd2QztJQURqQyxnQkFBZ0IsRUFBRTs0REFDZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLCBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWVsZHNldERhdGEsIExlZ2VuZERhdGEsIEl0ZW1JbnB1dEdyb3VwRGF0YSwgTGFiZWxEYXRhLCBTZWxlY3RJdGVtRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZHNldC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0lucHV0R3JvdXBJdGVtQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWdyb3VwLWl0ZW0vaW5wdXQtZ3JvdXAtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Rlc3lPbklucHV0Q2hhbmdlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LW9uLWlucHV0LWNoYW5nZS5kZWNvcmF0b3InO1xyXG5pbXBvcnQge0Rlc3lDb250ZW50Q2hpbGR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xyXG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tICcuLi9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xyXG5pbXBvcnQge01ha2VIdG1sTGlzdFBpcGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy9tYWtlLWh0bWwtbGlzdC5waXBlJztcclxuaW1wb3J0IHtJbnB1dEdyb3VwSW5wdXRDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtZ3JvdXAtaW5wdXQvaW5wdXQtZ3JvdXAtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtJbnB1dEdyb3VwU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuL2lucHV0LWdyb3VwLXNlbGVjdC9pbnB1dC1ncm91cC1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHtJbnB1dEdyb3VwRGl2aWRlckNvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1ncm91cC1kaXZpZGVyL2lucHV0LWdyb3VwLWRpdmlkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3N0cmluZy11dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktaW5wdXQtZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dEdyb3VwQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEdyb3VwQ29tcG9uZW50IGV4dGVuZHMgRm9ybUZpZWxkQ29tcG9uZW50PGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xyXG5cclxuICBASW5wdXQoKSBuZ01vZGVsR3JvdXA6IHN0cmluZztcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbkV4dGVybmFsQ2hhbmdlJylcclxuICBASW5wdXQoKSBpdGVtczogSXRlbUlucHV0R3JvdXBEYXRhW107XHJcbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SXRlbUlucHV0R3JvdXBEYXRhW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxJdGVtSW5wdXRHcm91cERhdGFbXT4oKTtcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbkV4dGVybmFsQ2hhbmdlJylcclxuICBASW5wdXQoKSBuYW1lUHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cENsYXNzZXM6IGFueTtcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxyXG4gICAqIDEpIGluY2x1aXIgb2JqZXRvIEZpZWxkc2V0RGF0YSAoaW50ZXJmYXogZXhwdWVzdGEpXHJcbiAgICogMikgaW5jbHVpciB0ZW1wbGF0ZSBsZWdlbmRcclxuICAgKiAzKSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxyXG4gICAqIDQpIGluY2x1aXIgbGVnZW5kVGV4dCAtIGluY2x1aXIgdW4gZmllbGRzZXQgY29uIHVuIHRleHRvIGVuIGxhIGxlZ2VuZGFcclxuICAgKi9cclxuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcclxuICBASW5wdXQoKSBsZWdlbmRSZWY6IFRlbXBsYXRlUmVmPExlZ2VuZENvbXBvbmVudD47XHJcbiAgQElucHV0KCkgbGVnZW5kRGF0YTogTGVnZW5kRGF0YTtcclxuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oSW5wdXRHcm91cEl0ZW1Db21wb25lbnQpIGl0ZW1zQ29tcG9uZW50czogUXVlcnlMaXN0PElucHV0R3JvdXBJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcclxuICBAQ29udGVudENoaWxkcmVuKEZpZWxkc2V0Q29tcG9uZW50KSBmaWVsZHNldENvbXBvbmVudDogRmllbGRzZXRDb21wb25lbnQ7XHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKClcclxuICBAQ29udGVudENoaWxkcmVuKExlZ2VuZENvbXBvbmVudCkgbGVnZW5kQ29tcG9uZW50OiBMZWdlbmRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lubmVySHRtbCcsIHsgc3RhdGljOiB0cnVlIH0pIGlubmVySHRtbDogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgcHJpdmF0ZSBjb250ZW50SW5pdCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlkKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdpZCBpcyByZXF1aXJlZCcpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXRlbXMpIHtcclxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcclxuICAgICAgICBpZiAoIWl0ZW0uZGl2aWRlciAmJiAhaXRlbS5uYW1lKSB7XHJcbiAgICAgICAgICB0aHJvdyBFcnJvcignaXRlbSBuYW1lIGlzIHJlcXVpcmVkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghaXRlbS5kaXZpZGVyICYmICF0aGlzLmhhc0l0ZW1MYWJlbChpdGVtKSkge1xyXG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ2l0ZW0gbGFiZWwgaXMgcmVxdWlyZWQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udGVudEluaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XHJcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aHJvdyBFcnJvcignaXRlbXMgYXJlIHJlcXVpcmVkJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xyXG4gICAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldO1xyXG4gICAgICAgIGl0ZW0udmFsdWUgPSB2ID8gdiA6IG51bGw7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcclxuICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25FeHRlcm5hbENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb250ZW50SW5pdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldID0gaXRlbS52YWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25JbnRlcm5hbENoYW5nZShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEsIGl0ZW1WYWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtTmFtZSA9IHRoaXMuZ2V0SXRlbU5hbWUoaXRlbSk7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlW2l0ZW1OYW1lXSAhPT0gaXRlbVZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWVbaXRlbU5hbWVdID0gaXRlbVZhbHVlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG5cclxuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwSW5wdXRDb21wb25lbnQgfHwgaXRlbSBpbnN0YW5jZW9mIElucHV0R3JvdXBTZWxlY3RDb21wb25lbnQpIHtcclxuICAgICAgICBpdGVtLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbVZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcclxuICAgICAgICBpdGVtLnZhbHVlID0gaXRlbVZhbHVlO1xyXG4gICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyhmaWVsZHNldDogRmllbGRzZXRDb21wb25lbnQpOiB2b2lkIHtcclxuICAgIGZpZWxkc2V0LmNhbGxlciA9IHRoaXMuaW5uZXJIdG1sO1xyXG4gICAgZmllbGRzZXQuZXJyb3JJZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xyXG4gICAgZmllbGRzZXQuZGVzY3JpYmVkQnkgPSBuZXcgTWFrZUh0bWxMaXN0UGlwZSgpLnRyYW5zZm9ybShbdGhpcy5nZXRIaW50SWQoKSwgdGhpcy5nZXRFcnJvcklkKCldLCBudWxsKTtcclxuICAgIGZpZWxkc2V0LnJvbGUgPSAnZ3JvdXAnO1xyXG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBNw6l0b2RvcyBwYXJhIHByb3BvcmNpb25hciBkYXRvc1xyXG4gICAqL1xyXG4gIGdldEl0ZW1zKCk6IEl0ZW1JbnB1dEdyb3VwRGF0YVtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zQ29tcG9uZW50cyAmJiB0aGlzLml0ZW1zQ29tcG9uZW50cy5sZW5ndGggPyB0aGlzLml0ZW1zQ29tcG9uZW50cy50b0FycmF5KCkgOiB0aGlzLml0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUxhYmVsUmVmKGl0ZW06IEl0ZW1JbnB1dEdyb3VwRGF0YSk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwSW5wdXRDb21wb25lbnQgfHwgaXRlbSBpbnN0YW5jZW9mIElucHV0R3JvdXBTZWxlY3RDb21wb25lbnQgPyBpdGVtLmxhYmVsUmVmIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1MYWJlbERhdGEoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogTGFiZWxEYXRhIHtcclxuICAgIHJldHVybiBpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhIDogeyB0ZXh0OiBpdGVtLmxhYmVsVGV4dCB9O1xyXG4gIH1cclxuXHJcbiAgaGFzRmllbGRzZXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISEodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpIHx8IHRoaXMuaGFzTGVnZW5kQ29tcG9uZW50KCkgfHwgdGhpcy5sZWdlbmRSZWYgfHwgdGhpcy5maWVsZHNldERhdGFcclxuICAgICAgfHwgKHRoaXMubGVnZW5kRGF0YSAmJiAodGhpcy5sZWdlbmREYXRhLnRleHQgfHwgdGhpcy5sZWdlbmREYXRhLmh0bWwpKSB8fCB0aGlzLmxlZ2VuZFRleHQpO1xyXG4gIH1cclxuXHJcbiAgaGFzRmllbGRzZXRDb21wb25lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmZpZWxkc2V0Q29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgaGFzTGVnZW5kQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5sZWdlbmRDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtTmFtZShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmFtZVByZWZpeCA/IHRoaXMubmFtZVByZWZpeCArICctJyArIGl0ZW0ubmFtZSA6IGl0ZW0ubmFtZTtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1TZWxlY3RPcHRpb25zKGl0ZW06IEl0ZW1JbnB1dEdyb3VwRGF0YSk6IFNlbGVjdEl0ZW1EYXRhW10ge1xyXG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwU2VsZWN0Q29tcG9uZW50ID9cclxuICAgICAgaXRlbS5zZWxlY3RJdGVtQ29tcG9uZW50TGlzdC50b0FycmF5KCkgOiBpdGVtLnNlbGVjdEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbURpdmlkZXJUZW1wbGF0ZShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiBpdGVtLmRpdmlkZXIgaW5zdGFuY2VvZiBJbnB1dEdyb3VwRGl2aWRlckNvbXBvbmVudCA/IGl0ZW0uZGl2aWRlci5kaXZpZGVyQ29udGVudCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtRGl2aWRlckh0bWwoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtLmRpdmlkZXIuaHRtbCA/IGl0ZW0uZGl2aWRlci5odG1sIDogYDxwPiR7IFN0cmluZ1V0aWxzLmVzY2FwZUh0bWwoaXRlbS5kaXZpZGVyLnRleHQpIH08L3A+YDtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0SXRlbShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBib29sZWFuIHtcclxuICAgIGxldCBoYXNTZWxlY3RJdGVtcztcclxuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgSW5wdXRHcm91cFNlbGVjdENvbXBvbmVudCkge1xyXG4gICAgICBoYXNTZWxlY3RJdGVtcyA9IGl0ZW0uc2VsZWN0SXRlbUNvbXBvbmVudExpc3QgJiYgaXRlbS5zZWxlY3RJdGVtQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaGFzU2VsZWN0SXRlbXMgPSBpdGVtLnNlbGVjdEl0ZW1zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW0uaXNTZWxlY3QgJiYgaGFzU2VsZWN0SXRlbXM7XHJcbiAgfVxyXG5cclxuICBoYXNJdGVtTGFiZWwoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISEoKGl0ZW0ubGFiZWxEYXRhICYmIChpdGVtLmxhYmVsRGF0YS50ZXh0IHx8IGl0ZW0ubGFiZWxEYXRhLmh0bWwpKSB8fCBpdGVtLmxhYmVsVGV4dCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,17 +1,30 @@
1
- import { Component, Input } from '@angular/core';
2
- import { AccessibilityAndTextOrHtmlRequiredComponent } from '../../../shared/components';
3
- export class LabelComponent extends AccessibilityAndTextOrHtmlRequiredComponent {
4
- }
5
- LabelComponent.decorators = [
6
- { type: Component, args: [{
7
- selector: 'desy-label',
8
- template: "<ng-template #labelTemplate>\n <label [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\"\n [class]=\"'block' + (classes ? ' ' + classes : '')\"\n [attr.id]=\"id ? id : null\"\n [attr.for]=\"for ? for : 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\"></label>\n</ng-template>\n<h2 *ngIf=\"isPageHeading; else elseBlock\" class=\"block\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n</h2>\n<ng-template #elseBlock>\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n</ng-template>\n"
9
- },] }
10
- ];
11
- LabelComponent.propDecorators = {
12
- for: [{ type: Input }],
13
- isPageHeading: [{ type: Input }],
14
- classes: [{ type: Input }],
15
- id: [{ type: Input }]
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvIiwic291cmNlcyI6WyJsaWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU16RixNQUFNLE9BQU8sY0FBZSxTQUFRLDJDQUEyQzs7O1lBSjlFLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsNnlDQUFxQzthQUN0Qzs7O2tCQUdFLEtBQUs7NEJBQ0wsS0FBSztzQkFDTCxLQUFLO2lCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5QW5kVGV4dE9ySHRtbFJlcXVpcmVkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhYmVsLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMYWJlbENvbXBvbmVudCBleHRlbmRzIEFjY2Vzc2liaWxpdHlBbmRUZXh0T3JIdG1sUmVxdWlyZWRDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGZvcjogc3RyaW5nO1xuICBASW5wdXQoKSBpc1BhZ2VIZWFkaW5nOiBib29sZWFuO1xuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG5cbn1cbiJdfQ==
1
+ import { ChangeDetectorRef, Component, Input } from '@angular/core';
2
+ import { AccessibilityComponent } from '../../../shared/components';
3
+ export class LabelComponent extends AccessibilityComponent {
4
+ constructor(changeDetectorRef) {
5
+ super();
6
+ this.changeDetectorRef = changeDetectorRef;
7
+ }
8
+ detectChanges() {
9
+ this.changeDetectorRef.detectChanges();
10
+ }
11
+ }
12
+ LabelComponent.decorators = [
13
+ { type: Component, args: [{
14
+ selector: 'desy-label',
15
+ template: "<ng-template #labelTemplate>\r\n <label [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"\r\n [class]=\"'block' + (classes ? ' ' + classes : '')\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.for]=\"for ? for : 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 <ng-content></ng-content></label>\r\n</ng-template>\r\n<!-- label -->\r\n<ng-container *ngIf=\"isPageHeading; else elseBlock\" class=\"block\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h5>\r\n <h1 *ngSwitchDefault class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h1>\r\n </ng-container>\r\n</ng-container>\r\n<ng-template #elseBlock>\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n</ng-template>\r\n<!-- /label -->\r\n\r\n\r\n"
16
+ },] }
17
+ ];
18
+ LabelComponent.ctorParameters = () => [
19
+ { type: ChangeDetectorRef }
20
+ ];
21
+ LabelComponent.propDecorators = {
22
+ id: [{ type: Input }],
23
+ classes: [{ type: Input }],
24
+ html: [{ type: Input }],
25
+ text: [{ type: Input }],
26
+ isPageHeading: [{ type: Input }],
27
+ headingLevel: [{ type: Input }],
28
+ for: [{ type: Input }]
29
+ };
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQU9sRSxNQUFNLE9BQU8sY0FBZSxTQUFRLHNCQUFzQjtJQVV4RCxZQUFvQixpQkFBb0M7UUFDdEQsS0FBSyxFQUFFLENBQUM7UUFEVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRXhELENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7WUFwQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0Qixxd0VBQXFDO2FBQ3RDOzs7WUFQTyxpQkFBaUI7OztpQkFVdEIsS0FBSztzQkFDTCxLQUFLO21CQUNMLEtBQUs7bUJBQ0wsS0FBSzs0QkFDTCxLQUFLOzJCQUNMLEtBQUs7a0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjY2Vzc2liaWxpdHlDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktbGFiZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYWJlbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExhYmVsQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGh0bWw6IHN0cmluZztcclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNQYWdlSGVhZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoZWFkaW5nTGV2ZWw6IG51bWJlcjtcclxuICBASW5wdXQoKSBmb3I6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=