desy-angular 3.0.0 → 4.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 (131) hide show
  1. package/README.md +3 -3
  2. package/bundles/desy-angular.umd.js +1592 -608
  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 +27 -23
  7. package/desy-angular.metadata.json +1 -1
  8. package/esm2015/desy-angular.js +28 -24
  9. package/esm2015/lib/desy-commons/interfaces/title-data.js +1 -1
  10. package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +2 -2
  11. package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +2 -2
  12. package/esm2015/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.js +46 -0
  13. package/esm2015/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.js +19 -0
  14. package/esm2015/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.js +13 -0
  15. package/esm2015/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.js +46 -0
  16. package/esm2015/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.js +44 -0
  17. package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +131 -25
  18. package/esm2015/lib/desy-forms/components/input/input.component.js +2 -3
  19. package/esm2015/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.js +20 -0
  20. package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +46 -0
  21. package/esm2015/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.js +13 -0
  22. package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +42 -0
  23. package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +115 -21
  24. package/esm2015/lib/desy-forms/components/radios/radios.component.js +2 -2
  25. package/esm2015/lib/desy-forms/components/select/option/option.component.js +7 -7
  26. package/esm2015/lib/desy-forms/components/select/option-group/option-group.component.js +17 -0
  27. package/esm2015/lib/desy-forms/components/select/select-item/select-item.component.js +14 -0
  28. package/esm2015/lib/desy-forms/components/select/select.component.js +19 -6
  29. package/esm2015/lib/desy-forms/desy-forms.module.js +31 -1
  30. package/esm2015/lib/desy-forms/interfaces/fieldset-data.js +1 -1
  31. package/esm2015/lib/desy-forms/interfaces/item-date-input-data.js +1 -1
  32. package/esm2015/lib/desy-forms/interfaces/item-divider-date-input-data.js +2 -0
  33. package/esm2015/lib/desy-forms/interfaces/item-input-group-data.js +1 -1
  34. package/esm2015/lib/desy-forms/interfaces/select-item-data.js +1 -1
  35. package/esm2015/lib/desy-modals/components/modal/modal.component.js +3 -3
  36. package/esm2015/lib/desy-nav/components/error-summary/error-summary.component.js +2 -2
  37. package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.js +16 -0
  38. package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta.component.js +23 -0
  39. package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.js +16 -0
  40. package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.js +16 -0
  41. package/esm2015/lib/desy-nav/components/footer/footer.component.js +31 -4
  42. package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +36 -6
  43. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.js +19 -0
  44. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +15 -4
  45. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +25 -0
  46. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.js +11 -0
  47. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +76 -13
  48. package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +25 -7
  49. package/esm2015/lib/desy-nav/components/header/header.component.js +39 -4
  50. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.js +32 -0
  51. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.js +16 -0
  52. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.js +24 -0
  53. package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +35 -23
  54. package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +2 -2
  55. package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +24 -5
  56. package/esm2015/lib/desy-nav/desy-nav.module.js +34 -3
  57. package/esm2015/lib/desy-nav/interfaces/footer-data.js +1 -1
  58. package/esm2015/lib/desy-nav/interfaces/header-subnav-data.js +1 -1
  59. package/esm2015/lib/desy-nav/interfaces/menu-vertical-items-data.js +1 -1
  60. package/esm2015/lib/desy-tables/components/table/table.component.js +3 -2
  61. package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +5 -3
  62. package/esm2015/lib/desy-tables/interfaces/index.js +2 -1
  63. package/esm2015/lib/desy-tables/interfaces/wrapper-data.js +2 -0
  64. package/esm2015/lib/desy-views/components/accordion/accordion.component.js +2 -2
  65. package/esm2015/lib/desy-views/components/item/item.component.js +11 -2
  66. package/esm2015/lib/desy-views/components/status-item/status-item.component.js +2 -2
  67. package/esm2015/lib/desy-views/components/tabs/panel/panel.component.js +15 -0
  68. package/esm2015/lib/desy-views/components/tabs/tab-item/tab-item.component.js +28 -0
  69. package/esm2015/lib/desy-views/components/tabs/tabs.component.js +57 -36
  70. package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +1 -1
  71. package/esm2015/lib/desy-views/desy-views.module.js +7 -1
  72. package/esm2015/lib/desy-views/interfaces/tabs-items-data.js +1 -1
  73. package/esm2015/lib/desy-views/interfaces/tabs-panel-data.js +1 -1
  74. package/esm2015/public-api.js +20 -1
  75. package/fesm2015/desy-angular.js +1395 -510
  76. package/fesm2015/desy-angular.js.map +1 -1
  77. package/lib/desy-commons/interfaces/title-data.d.ts +2 -1
  78. package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +22 -0
  79. package/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.d.ts +7 -0
  80. package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +4 -0
  81. package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +22 -0
  82. package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +19 -0
  83. package/lib/desy-forms/components/date-input/date-input.component.d.ts +21 -4
  84. package/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.d.ts +8 -0
  85. package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +20 -0
  86. package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +4 -0
  87. package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +16 -0
  88. package/lib/desy-forms/components/input-group/input-group.component.d.ts +24 -6
  89. package/lib/desy-forms/components/select/option/option.component.d.ts +6 -7
  90. package/lib/desy-forms/components/select/option-group/option-group.component.d.ts +7 -0
  91. package/lib/desy-forms/components/select/select-item/select-item.component.d.ts +4 -0
  92. package/lib/desy-forms/components/select/select.component.d.ts +6 -3
  93. package/lib/desy-forms/interfaces/fieldset-data.d.ts +1 -0
  94. package/lib/desy-forms/interfaces/item-date-input-data.d.ts +2 -0
  95. package/lib/desy-forms/interfaces/item-divider-date-input-data.d.ts +5 -0
  96. package/lib/desy-forms/interfaces/item-input-group-data.d.ts +1 -2
  97. package/lib/desy-forms/interfaces/select-item-data.d.ts +2 -1
  98. package/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.d.ts +7 -0
  99. package/lib/desy-nav/components/footer/footer-meta/footer-meta.component.d.ts +10 -0
  100. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.d.ts +7 -0
  101. package/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.d.ts +8 -0
  102. package/lib/desy-nav/components/footer/footer.component.d.ts +14 -2
  103. package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +11 -2
  104. package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +10 -0
  105. package/lib/desy-nav/components/header/header-navigation/header-navigation.component.d.ts +6 -1
  106. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +6 -0
  107. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.d.ts +3 -0
  108. package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +30 -8
  109. package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +7 -4
  110. package/lib/desy-nav/components/header/header.component.d.ts +12 -0
  111. package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +18 -0
  112. package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.d.ts +8 -0
  113. package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +15 -0
  114. package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +11 -7
  115. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +9 -2
  116. package/lib/desy-nav/interfaces/footer-data.d.ts +7 -7
  117. package/lib/desy-nav/interfaces/header-subnav-data.d.ts +1 -0
  118. package/lib/desy-tables/components/table/table.component.d.ts +2 -1
  119. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +6 -4
  120. package/lib/desy-tables/interfaces/index.d.ts +1 -0
  121. package/lib/desy-tables/interfaces/wrapper-data.d.ts +4 -0
  122. package/lib/desy-views/components/item/item.component.d.ts +5 -2
  123. package/lib/desy-views/components/tabs/panel/panel.component.d.ts +6 -0
  124. package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +12 -0
  125. package/lib/desy-views/components/tabs/tabs.component.d.ts +14 -3
  126. package/lib/desy-views/interfaces/tabs-items-data.d.ts +5 -5
  127. package/lib/desy-views/interfaces/tabs-panel-data.d.ts +4 -4
  128. package/package.json +2 -2
  129. package/public-api.d.ts +19 -0
  130. package/esm2015/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.js +0 -58
  131. package/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.d.ts +0 -18
@@ -1783,7 +1783,7 @@
1783
1783
  CharacterCountComponent.decorators = [
1784
1784
  { type: i0.Component, args: [{
1785
1785
  selector: 'desy-character-count',
1786
- template: "<div>\r\n <desy-textarea\r\n [id]=\"id\"\r\n [name]=\"name\"\r\n [describedBy]=\"id + '-info'\"\r\n [rows]=\"rows\"\r\n [placeholder]=\"placeholder\"\r\n formGroupClasses=\"mb-0\"\r\n [classes]=\"['js-character-count', hasErrorsMessage() ? 'border-alert-base ring-2 ring-alert-base' : null, classes] | makeHtmlList\"\r\n [labelRef]=\"labelRef\" [labelData]=\"labelData\" [labelText]=\"labelText\"\r\n [hintRef]=\"hintRef\" [hintData]=\"hintData\" [hintText]=\"hintText\"\r\n [errorMessageRef]=\"errorMessageRef\" [errorMessageData]=\"errorMessageData\" [errorMessageText]=\"errorMessageText\"\r\n [role]=\"role\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [ariaHidden]=\"ariaHidden\"\r\n [ariaDisabled]=\"ariaDisabled\"\r\n [ariaControls]=\"ariaControls\"\r\n [ariaCurrent]=\"ariaCurrent\"\r\n [ariaLive]=\"ariaLive\"\r\n [ariaExpanded]=\"ariaExpanded\"\r\n [ariaErrorMessage]=\"ariaErrorMessage\"\r\n [ariaHasPopup]=\"ariaHasPopup\"\r\n [tabindex]=\"tabindex\"></desy-textarea>\r\n\r\n <desy-hint *ngIf=\"!!displayCountMessage\"\r\n [id]=\"id + '-info'\" [classes]=\"['mt-xs text-sm', countMessageClasses] | makeHtmlList\" ariaLive=\"polite\"\r\n [text]=\"'Puedes escribir hasta ' + remaining + (maxlength ? ' caracteres' : ' palabras')\"></desy-hint>\r\n</div>\r\n",
1786
+ template: "<div>\r\n <desy-textarea\r\n [id]=\"id\"\r\n [name]=\"name\"\r\n [describedBy]=\"id + '-info'\"\r\n [rows]=\"rows\"\r\n [placeholder]=\"placeholder\"\r\n formGroupClasses= \"['' + (formGroupClasses ? formGroupClasses : 'mb-0')] | makeHtmlList\"\r\n [classes]=\"['js-character-count', hasErrorsMessage() ? 'border-alert-base ring-2 ring-alert-base' : null, classes] | makeHtmlList\"\r\n [labelRef]=\"labelRef\" [labelData]=\"labelData\" [labelText]=\"labelText\"\r\n [hintRef]=\"hintRef\" [hintData]=\"hintData\" [hintText]=\"hintText\"\r\n [errorMessageRef]=\"errorMessageRef\" [errorMessageData]=\"errorMessageData\" [errorMessageText]=\"errorMessageText\"\r\n [role]=\"role\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [ariaHidden]=\"ariaHidden\"\r\n [ariaDisabled]=\"ariaDisabled\"\r\n [ariaControls]=\"ariaControls\"\r\n [ariaCurrent]=\"ariaCurrent\"\r\n [ariaLive]=\"ariaLive\"\r\n [ariaExpanded]=\"ariaExpanded\"\r\n [ariaErrorMessage]=\"ariaErrorMessage\"\r\n [ariaHasPopup]=\"ariaHasPopup\"\r\n [tabindex]=\"tabindex\"></desy-textarea>\r\n\r\n <desy-hint *ngIf=\"!!displayCountMessage\"\r\n [id]=\"id + '-info'\" [classes]=\"['mt-xs text-sm', countMessageClasses] | makeHtmlList\" ariaLive=\"polite\"\r\n [text]=\"'Puedes escribir hasta ' + remaining + (maxlength ? ' caracteres' : ' palabras')\"></desy-hint>\r\n</div>\r\n",
1787
1787
  providers: [
1788
1788
  {
1789
1789
  provide: forms.NG_VALUE_ACCESSOR,
@@ -1815,7 +1815,6 @@
1815
1815
  }
1816
1816
  InputComponent.prototype.ngOnChanges = function (changes) {
1817
1817
  this.checkRequired();
1818
- this.writeValue(this.value);
1819
1818
  };
1820
1819
  InputComponent.prototype.getErrorId = function () {
1821
1820
  return this.errorId ? this.errorId : _super.prototype.getErrorId.call(this);
@@ -1845,7 +1844,7 @@
1845
1844
  InputComponent.decorators = [
1846
1845
  { type: i0.Component, args: [{
1847
1846
  selector: 'desy-input',
1848
- template: "\r\n<div [class]=\"['c-form-group', this.formGroupClasses] | makeHtmlList\" [ngClass]=\"{'c-form-group--error': hasErrorsMessage()}\">\r\n\r\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\r\n <desy-label *ngIf=\"!labelRef && labelData\"\r\n [text]=\"labelData.text\"\r\n [html]=\"labelData.html\"\r\n [classes]=\"labelData.classes\"\r\n [isPageHeading]=\"labelData.isPageHeading\"\r\n [for]=\"id\"\r\n [role]=\"labelData.role\"\r\n [ariaLabel]=\"labelData.ariaLabel\"\r\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\r\n [ariaHidden]=\"labelData.ariaHidden\"\r\n [ariaDisabled]=\"labelData.ariaDisabled\"\r\n [ariaControls]=\"labelData.ariaControls\"\r\n [ariaCurrent]=\"labelData.ariaCurrent\"\r\n [ariaLive]=\"labelData.ariaLive\"\r\n [ariaExpanded]=\"labelData.ariaExpanded\"\r\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\r\n [tabindex]=\"labelData.tabindex\"></desy-label>\r\n <desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" [for]=\"id\"></desy-label>\r\n\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 <!-- input -->\r\n <input [class]=\"['c-input block mt-sm border-black rounded font-semibold placeholder-neutral-dark focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base', classes] | makeHtmlList\"\r\n [ngClass]=\"{'border-alert-base ring-2 ring-alert-base' : getErrorId()}\"\r\n [value]=\"value\" (input)=\"onInput($event.target.value)\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.name]=\"name ? name : null\"\r\n [type]=\"type ? type : 'text'\"\r\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [attr.aria-errormessage]=\"getErrorId() ? getErrorId() : null\"\r\n [attr.aria-invalid]=\"getErrorId() ? true : null\"\r\n [attr.autocomplete]=\"autocomplete ? autocomplete : null\"\r\n [attr.pattern]=\"pattern ? pattern : null\"\r\n [attr.inputmode]=\"inputmode ? inputmode : null\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\"\r\n [attr.disabled]=\"disabled ? true : null\"\r\n [attr.maxlength]=\"maxlength ? maxlength : null\"\r\n\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-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-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <!-- input -->\r\n</div>\r\n",
1847
+ template: "\r\n<div [class]=\"['c-form-group', this.formGroupClasses] | makeHtmlList\" [ngClass]=\"{'c-form-group--error': hasErrorsMessage()}\">\r\n\r\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\r\n <desy-label *ngIf=\"!labelRef && labelData\"\r\n [text]=\"labelData.text\"\r\n [html]=\"labelData.html\"\r\n [classes]=\"labelData.classes\"\r\n [isPageHeading]=\"labelData.isPageHeading\"\r\n [for]=\"id\"\r\n [role]=\"labelData.role\"\r\n [ariaLabel]=\"labelData.ariaLabel\"\r\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\r\n [ariaHidden]=\"labelData.ariaHidden\"\r\n [ariaDisabled]=\"labelData.ariaDisabled\"\r\n [ariaControls]=\"labelData.ariaControls\"\r\n [ariaCurrent]=\"labelData.ariaCurrent\"\r\n [ariaLive]=\"labelData.ariaLive\"\r\n [ariaExpanded]=\"labelData.ariaExpanded\"\r\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\r\n [tabindex]=\"labelData.tabindex\"></desy-label>\r\n <desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" [for]=\"id\"></desy-label>\r\n\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 <input [class]=\"['c-input block mt-sm border-black rounded font-semibold placeholder-neutral-dark focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\r\n classes,\r\n getErrorId() ? 'border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\r\n [value]=\"value ? value : ''\" (input)=\"onInput($event.target.value)\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.name]=\"name ? name : null\"\r\n [type]=\"type ? type : 'text'\"\r\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [attr.aria-errormessage]=\"getErrorId() ? getErrorId() : null\"\r\n [attr.aria-invalid]=\"getErrorId() ? true : null\"\r\n [attr.autocomplete]=\"autocomplete ? autocomplete : null\"\r\n [attr.pattern]=\"pattern ? pattern : null\"\r\n [attr.inputmode]=\"inputmode ? inputmode : null\"\r\n [attr.placeholder]=\"placeholder ? placeholder : null\"\r\n [attr.disabled]=\"disabled ? true : null\"\r\n [attr.maxlength]=\"maxlength ? maxlength : null\"\r\n\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-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-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n</div>\r\n",
1849
1848
  providers: [
1850
1849
  {
1851
1850
  provide: forms.NG_VALUE_ACCESSOR,
@@ -1869,30 +1868,68 @@
1869
1868
  errorId: [{ type: i0.Input }]
1870
1869
  };
1871
1870
 
1871
+ var SelectItemComponent = /** @class */ (function (_super) {
1872
+ __extends(SelectItemComponent, _super);
1873
+ function SelectItemComponent() {
1874
+ return _super !== null && _super.apply(this, arguments) || this;
1875
+ }
1876
+ return SelectItemComponent;
1877
+ }(ContentBaseComponent));
1878
+ SelectItemComponent.decorators = [
1879
+ { type: i0.Component, args: [{
1880
+ selector: 'desy-select-item',
1881
+ template: "<p>select-item works!</p>\r\n"
1882
+ },] }
1883
+ ];
1884
+ SelectItemComponent.propDecorators = {
1885
+ disabled: [{ type: i0.Input }]
1886
+ };
1887
+
1872
1888
  var OptionComponent = /** @class */ (function (_super) {
1873
1889
  __extends(OptionComponent, _super);
1874
1890
  function OptionComponent() {
1875
1891
  return _super !== null && _super.apply(this, arguments) || this;
1876
1892
  }
1877
1893
  return OptionComponent;
1878
- }(ContentBaseComponent));
1894
+ }(SelectItemComponent));
1879
1895
  OptionComponent.decorators = [
1880
1896
  { type: i0.Component, args: [{
1881
1897
  selector: 'desy-option',
1882
- template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
1898
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>',
1899
+ providers: [{ provide: SelectItemComponent, useExisting: i0.forwardRef(function () { return OptionComponent; }) }]
1883
1900
  },] }
1884
1901
  ];
1885
1902
  OptionComponent.propDecorators = {
1886
1903
  value: [{ type: i0.Input }],
1887
- text: [{ type: i0.Input }],
1888
1904
  selected: [{ type: i0.Input }],
1889
- disabled: [{ type: i0.Input }]
1905
+ hidden: [{ type: i0.Input }]
1906
+ };
1907
+
1908
+ var OptionGroupComponent = /** @class */ (function (_super) {
1909
+ __extends(OptionGroupComponent, _super);
1910
+ function OptionGroupComponent() {
1911
+ return _super !== null && _super.apply(this, arguments) || this;
1912
+ }
1913
+ return OptionGroupComponent;
1914
+ }(SelectItemComponent));
1915
+ OptionGroupComponent.decorators = [
1916
+ { type: i0.Component, args: [{
1917
+ selector: 'desy-option-group',
1918
+ template: "<p>option-group works!</p>\r\n",
1919
+ providers: [{ provide: SelectItemComponent, useExisting: i0.forwardRef(function () { return OptionGroupComponent; }) }]
1920
+ },] }
1921
+ ];
1922
+ OptionGroupComponent.propDecorators = {
1923
+ label: [{ type: i0.Input }],
1924
+ items: [{ type: i0.ContentChildren, args: [OptionComponent,] }]
1890
1925
  };
1891
1926
 
1892
1927
  var SelectComponent = /** @class */ (function (_super) {
1893
1928
  __extends(SelectComponent, _super);
1894
1929
  function SelectComponent() {
1895
- return _super !== null && _super.apply(this, arguments) || this;
1930
+ var _this = _super.apply(this, __spread(arguments)) || this;
1931
+ _this.contentInit = false;
1932
+ return _this;
1896
1933
  }
1897
1934
  SelectComponent.prototype.ngOnInit = function () {
1898
1935
  this.checkRequiredParams();
@@ -1902,6 +1939,7 @@
1902
1939
  };
1903
1940
  SelectComponent.prototype.ngAfterContentInit = function () {
1904
1941
  var _this = this;
1942
+ this.contentInit = true;
1905
1943
  if (!this.value) {
1906
1944
  var items = this.getItems();
1907
1945
  var itemSelected_1 = items === null || items === void 0 ? void 0 : items.find(function (item) { return item.selected; });
@@ -1910,9 +1948,13 @@
1910
1948
  }
1911
1949
  }
1912
1950
  };
1951
+ SelectComponent.prototype.writeValue = function (value) {
1952
+ this.value = value;
1953
+ this.onChange(value);
1954
+ };
1913
1955
  SelectComponent.prototype.getItems = function () {
1914
- var items = (this.optionComponent.length > 0) ? this.optionComponent.toArray() : this.items;
1915
- if (!items || items.length === 0) {
1956
+ var items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;
1957
+ if (this.contentInit && (!items || items.length === 0)) {
1916
1958
  throw new Error("items are required");
1917
1959
  }
1918
1960
  return items;
@@ -1928,12 +1970,15 @@
1928
1970
  SelectComponent.prototype.isItemSelected = function (item) {
1929
1971
  return this.value ? this.value === item.value : item.selected;
1930
1972
  };
1973
+ SelectComponent.prototype.isOptionGroup = function (item) {
1974
+ return item instanceof OptionGroupComponent;
1975
+ };
1931
1976
  return SelectComponent;
1932
1977
  }(FormFieldComponent));
1933
1978
  SelectComponent.decorators = [
1934
1979
  { type: i0.Component, args: [{
1935
1980
  selector: 'desy-select',
1936
- template: "<!-- select -->\r\n<div [class]=\"['c-form-group', this.formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': hasErrorsMessage()}\">\r\n <ng-container *ngIf=\"labelComponent\">\r\n <ng-content select=\"desy-label\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\r\n <desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\r\n [text]=\"labelData.text\"\r\n [html]=\"labelData.html\"\r\n [classes]=\"labelData.classes\"\r\n [isPageHeading]=\"labelData.isPageHeading\"\r\n [for]=\"id\"\r\n [role]=\"labelData.role\"\r\n [ariaLabel]=\"labelData.ariaLabel\"\r\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\r\n [ariaHidden]=\"labelData.ariaHidden\"\r\n [ariaDisabled]=\"labelData.ariaDisabled\"\r\n [ariaControls]=\"labelData.ariaControls\"\r\n [ariaCurrent]=\"labelData.ariaCurrent\"\r\n [ariaLive]=\"labelData.ariaLive\"\r\n [ariaExpanded]=\"labelData.ariaExpanded\"\r\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\r\n [tabindex]=\"labelData.tabindex\"></desy-label>\r\n <desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\" [text]=\"labelText\" [for]=\"id\"></desy-label>\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <ng-container *ngIf=\"hintComponent\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n</ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\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 && !hintComponent\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n \r\n <ng-container *ngIf=\"errorMessageComponent\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\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 && !errorMessageComponent && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n <select\r\n [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base', classes] | makeHtmlList\"\r\n [value]=\"value\" (input)=\"onInput($event.target.value)\"\r\n [ngClass]=\"{'c-select--error border-alert-base ring-2 ring-alert-base': hasErrorsMessage()}\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.name]=\"name ? name : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\r\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : 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-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\"\r\n [disabled]=disabled>\r\n\r\n <option *ngFor=\"let item of getItems()\" [value]=\"item.value\" [disabled]=\"item.disabled\" [selected]=\"isItemSelected(item)\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.describedBy ? item.describedBy : ariaDescribedBy\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </option>\r\n </select>\r\n</div>\r\n<!-- /select -->\r\n",
1981
+ template: "<div [class]=\"['c-form-group', this.formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': hasErrorsMessage()}\">\r\n <ng-container *ngIf=\"labelComponent\">\r\n <ng-content select=\"desy-label\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\r\n <desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\r\n [text]=\"labelData.text\"\r\n [html]=\"labelData.html\"\r\n [classes]=\"labelData.classes\"\r\n [isPageHeading]=\"labelData.isPageHeading\"\r\n [for]=\"id\"\r\n [role]=\"labelData.role\"\r\n [ariaLabel]=\"labelData.ariaLabel\"\r\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\r\n [ariaHidden]=\"labelData.ariaHidden\"\r\n [ariaDisabled]=\"labelData.ariaDisabled\"\r\n [ariaControls]=\"labelData.ariaControls\"\r\n [ariaCurrent]=\"labelData.ariaCurrent\"\r\n [ariaLive]=\"labelData.ariaLive\"\r\n [ariaExpanded]=\"labelData.ariaExpanded\"\r\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\r\n [tabindex]=\"labelData.tabindex\"></desy-label>\r\n <desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\" [text]=\"labelText\" [for]=\"id\"></desy-label>\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <ng-container *ngIf=\"hintComponent\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n</ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\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 && !hintComponent\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n\r\n <ng-container *ngIf=\"errorMessageComponent\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\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 && !errorMessageComponent && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n <select\r\n [class]=\"['c-select block mt-sm transition duration-150 ease-in-out border-black rounded font-semibold focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base',\r\n classes,\r\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\r\n [value]=\"value\" (input)=\"onInput($event.target.value)\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.name]=\"name ? name : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\r\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : 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-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\"\r\n [disabled]=disabled>\r\n\r\n <ng-container *ngFor=\"let item of getItems()\">\r\n <optgroup *ngIf=\"isOptionGroup(item)\" [label]=\"item.label\" [attr.disabled]=\"item.disabled ? true : null\"\r\n [attr.role]=\"item?.role\"\r\n [attr.aria-label]=\"item?.ariaLabel\"\r\n [attr.aria-describedby]=\"item?.describedBy\"\r\n [attr.aria-labelledby]=\"item?.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item?.ariaHidden\"\r\n [attr.aria-disabled]=\"item?.ariaDisabled\"\r\n [attr.aria-controls]=\"item?.ariaControls\"\r\n [attr.aria-current]=\"item?.ariaCurrent\"\r\n [attr.aria-live]=\"item?.ariaLive\"\r\n [attr.aria-expanded]=\"item?.ariaExpanded\"\r\n [attr.aria-errormessage]=\"item?.ariaErrorMessage\"\r\n [attr.aria-haspopup]=\"item?.ariaHasPopup\"\r\n [attr.tabindex]=\"item?.tabindex\">>\r\n <option *ngFor=\"let subItem of item.items\"\r\n [value]=\"subItem.value\"\r\n [disabled]=\"subItem.disabled\"\r\n [selected]=\"isItemSelected(subItem)\"\r\n [attr.hidden]=\"subItem.hidden\"\r\n [attr.role]=\"subItem?.role\"\r\n [attr.aria-label]=\"subItem?.ariaLabel\"\r\n [attr.aria-describedby]=\"subItem?.describedBy\"\r\n [attr.aria-labelledby]=\"subItem?.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"subItem?.ariaHidden\"\r\n [attr.aria-disabled]=\"subItem?.ariaDisabled\"\r\n [attr.aria-controls]=\"subItem?.ariaControls\"\r\n [attr.aria-current]=\"subItem?.ariaCurrent\"\r\n [attr.aria-live]=\"subItem?.ariaLive\"\r\n [attr.aria-expanded]=\"subItem?.ariaExpanded\"\r\n [attr.aria-errormessage]=\"subItem?.ariaErrorMessage\"\r\n [attr.aria-haspopup]=\"subItem?.ariaHasPopup\"\r\n [attr.tabindex]=\"subItem?.tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\r\n </option>\r\n </optgroup>\r\n <option *ngIf=\"!isOptionGroup(item)\" [value]=\"item.value\" [disabled]=\"item.disabled ? true : null\" [selected]=\"isItemSelected(item)\"\r\n [attr.hidden]=\"item.hidden\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.describedBy ? item.describedBy : ariaDescribedBy\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </option>\r\n </ng-container>\r\n </select>\r\n</div>\r\n",
1937
1982
  providers: [
1938
1983
  {
1939
1984
  provide: forms.NG_VALUE_ACCESSOR,
@@ -1949,7 +1994,7 @@
1949
1994
  describedBy: [{ type: i0.Input }],
1950
1995
  formGroupClasses: [{ type: i0.Input }],
1951
1996
  classes: [{ type: i0.Input }],
1952
- optionComponent: [{ type: i0.ContentChildren, args: [OptionComponent,] }]
1997
+ itemComponents: [{ type: i0.ContentChildren, args: [SelectItemComponent,] }]
1953
1998
  };
1954
1999
 
1955
2000
  var FileUploadComponent = /** @class */ (function (_super) {
@@ -2010,22 +2055,172 @@
2010
2055
  accept: [{ type: i0.Input }]
2011
2056
  };
2012
2057
 
2058
+ var InputGroupItemComponent = /** @class */ (function () {
2059
+ function InputGroupItemComponent() {
2060
+ }
2061
+ return InputGroupItemComponent;
2062
+ }());
2063
+ InputGroupItemComponent.decorators = [
2064
+ { type: i0.Component, args: [{
2065
+ selector: 'desy-input-group-item',
2066
+ template: ''
2067
+ },] }
2068
+ ];
2069
+ InputGroupItemComponent.propDecorators = {
2070
+ classes: [{ type: i0.Input }]
2071
+ };
2072
+
2073
+ /**
2074
+ * Decorador para controlar los cambios de un input
2075
+ * @param callbackName nombre de la función a la que se llamará tras aplicar el cambio
2076
+ */
2077
+ function DesyOnInputChange(callbackName) {
2078
+ return function (target, propertyKey) {
2079
+ var privateKeyName = "_" + propertyKey;
2080
+ Object.defineProperty(target, propertyKey, {
2081
+ set: function (value) {
2082
+ this[privateKeyName] = value;
2083
+ this[callbackName]();
2084
+ },
2085
+ get: function () {
2086
+ return this[privateKeyName];
2087
+ }
2088
+ });
2089
+ };
2090
+ }
2091
+
2092
+ var MakeHtmlListPipe = /** @class */ (function () {
2093
+ function MakeHtmlListPipe() {
2094
+ }
2095
+ MakeHtmlListPipe.prototype.transform = function (classes, valueForEmpty) {
2096
+ var filteredList = classes.filter(function (c) { return c; }).join(' ');
2097
+ if (filteredList.length === 0 && valueForEmpty) {
2098
+ filteredList = valueForEmpty;
2099
+ }
2100
+ return filteredList;
2101
+ };
2102
+ return MakeHtmlListPipe;
2103
+ }());
2104
+ MakeHtmlListPipe.decorators = [
2105
+ { type: i0.Pipe, args: [{
2106
+ name: 'makeHtmlList'
2107
+ },] }
2108
+ ];
2109
+
2110
+ var InputGroupInputComponent = /** @class */ (function (_super) {
2111
+ __extends(InputGroupInputComponent, _super);
2112
+ function InputGroupInputComponent() {
2113
+ var _this = _super.apply(this, __spread(arguments)) || this;
2114
+ _this.isSelect = false;
2115
+ _this.valueChange = new i0.EventEmitter();
2116
+ return _this;
2117
+ }
2118
+ InputGroupInputComponent.prototype.ngAfterContentInit = function () {
2119
+ if (!this.name) {
2120
+ throw Error('item name is required');
2121
+ }
2122
+ if (!this.labelComponent) {
2123
+ throw Error('item label is required');
2124
+ }
2125
+ };
2126
+ return InputGroupInputComponent;
2127
+ }(InputGroupItemComponent));
2128
+ InputGroupInputComponent.decorators = [
2129
+ { type: i0.Component, args: [{
2130
+ selector: 'desy-input-group-input',
2131
+ template: "<ng-template #label>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n</ng-template>\r\n",
2132
+ providers: [{ provide: InputGroupItemComponent, useExisting: i0.forwardRef(function () { return InputGroupInputComponent; }) }]
2133
+ },] }
2134
+ ];
2135
+ InputGroupInputComponent.propDecorators = {
2136
+ id: [{ type: i0.Input }],
2137
+ name: [{ type: i0.Input }],
2138
+ value: [{ type: i0.Input }],
2139
+ valueChange: [{ type: i0.Output }],
2140
+ formGroupClasses: [{ type: i0.Input }],
2141
+ type: [{ type: i0.Input }],
2142
+ inputmode: [{ type: i0.Input }],
2143
+ autocomplete: [{ type: i0.Input }],
2144
+ placeholder: [{ type: i0.Input }],
2145
+ pattern: [{ type: i0.Input }],
2146
+ maxlength: [{ type: i0.Input }],
2147
+ labelRef: [{ type: i0.ViewChild, args: ['label', { static: true },] }],
2148
+ labelComponent: [{ type: i0.ContentChildren, args: [LabelComponent,] }]
2149
+ };
2150
+ __decorate([
2151
+ DesyContentChild()
2152
+ ], InputGroupInputComponent.prototype, "labelComponent", void 0);
2153
+
2154
+ var InputGroupSelectComponent = /** @class */ (function (_super) {
2155
+ __extends(InputGroupSelectComponent, _super);
2156
+ function InputGroupSelectComponent() {
2157
+ var _this = _super.apply(this, __spread(arguments)) || this;
2158
+ _this.isSelect = true;
2159
+ _this.valueChange = new i0.EventEmitter();
2160
+ return _this;
2161
+ }
2162
+ InputGroupSelectComponent.prototype.ngAfterContentInit = function () {
2163
+ if (!this.name) {
2164
+ throw Error('item name is required');
2165
+ }
2166
+ if (!this.labelComponent) {
2167
+ throw Error('item label is required');
2168
+ }
2169
+ };
2170
+ return InputGroupSelectComponent;
2171
+ }(InputGroupItemComponent));
2172
+ InputGroupSelectComponent.decorators = [
2173
+ { type: i0.Component, args: [{
2174
+ selector: 'desy-input-group-select',
2175
+ template: "<ng-template #label>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n</ng-template>\r\n",
2176
+ providers: [{ provide: InputGroupItemComponent, useExisting: i0.forwardRef(function () { return InputGroupSelectComponent; }) }]
2177
+ },] }
2178
+ ];
2179
+ InputGroupSelectComponent.propDecorators = {
2180
+ id: [{ type: i0.Input }],
2181
+ name: [{ type: i0.Input }],
2182
+ value: [{ type: i0.Input }],
2183
+ valueChange: [{ type: i0.Output }],
2184
+ formGroupClasses: [{ type: i0.Input }],
2185
+ labelRef: [{ type: i0.ViewChild, args: ['label', { static: true },] }],
2186
+ selectItemComponentList: [{ type: i0.ContentChildren, args: [OptionComponent,] }],
2187
+ labelComponent: [{ type: i0.ContentChildren, args: [LabelComponent,] }]
2188
+ };
2189
+ __decorate([
2190
+ DesyContentChild()
2191
+ ], InputGroupSelectComponent.prototype, "labelComponent", void 0);
2192
+
2193
+ var InputGroupDividerComponent = /** @class */ (function (_super) {
2194
+ __extends(InputGroupDividerComponent, _super);
2195
+ function InputGroupDividerComponent() {
2196
+ var _this = _super.apply(this, __spread(arguments)) || this;
2197
+ _this.isSelect = false;
2198
+ _this.divider = _this;
2199
+ return _this;
2200
+ }
2201
+ return InputGroupDividerComponent;
2202
+ }(InputGroupItemComponent));
2203
+ InputGroupDividerComponent.decorators = [
2204
+ { type: i0.Component, args: [{
2205
+ selector: 'desy-input-group-divider',
2206
+ template: "<ng-template #dividerContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n",
2207
+ providers: [{ provide: InputGroupItemComponent, useExisting: i0.forwardRef(function () { return InputGroupDividerComponent; }) }]
2208
+ },] }
2209
+ ];
2210
+ InputGroupDividerComponent.propDecorators = {
2211
+ dividerContent: [{ type: i0.ViewChild, args: ['dividerContent', { static: true },] }]
2212
+ };
2213
+
2013
2214
  var InputGroupComponent = /** @class */ (function (_super) {
2014
2215
  __extends(InputGroupComponent, _super);
2015
2216
  function InputGroupComponent(controlContainer) {
2016
2217
  var _this = _super.call(this) || this;
2017
2218
  _this.controlContainer = controlContainer;
2219
+ _this.itemsChange = new i0.EventEmitter();
2220
+ _this.contentInit = false;
2018
2221
  return _this;
2019
2222
  }
2020
- InputGroupComponent.prototype.ngOnInit = function () {
2021
- this.checkRequired();
2022
- this.onExternalChange();
2023
- };
2024
2223
  InputGroupComponent.prototype.ngOnChanges = function () {
2025
- this.checkRequired();
2026
- this.onExternalChange();
2027
- };
2028
- InputGroupComponent.prototype.checkRequired = function () {
2029
2224
  var e_1, _a;
2030
2225
  if (!this.id) {
2031
2226
  throw Error('id is required');
@@ -2050,40 +2245,112 @@
2050
2245
  finally { if (e_1) throw e_1.error; }
2051
2246
  }
2052
2247
  }
2053
- else {
2248
+ };
2249
+ InputGroupComponent.prototype.ngAfterContentInit = function () {
2250
+ this.contentInit = true;
2251
+ };
2252
+ InputGroupComponent.prototype.ngAfterViewChecked = function () {
2253
+ var items = this.getItems();
2254
+ if (!items || items.length === 0) {
2054
2255
  throw Error('items are required');
2055
2256
  }
2056
2257
  };
2057
2258
  InputGroupComponent.prototype.writeValue = function (value) {
2058
2259
  var _this = this;
2059
- this.value = value;
2060
- if (this.value) {
2061
- this.items.forEach(function (item) { return item.value = _this.value[_this.getItemName(item)]; });
2260
+ if (value) {
2261
+ this.value = value;
2262
+ var items = this.getItems();
2263
+ items.forEach(function (item) {
2264
+ var v = _this.value[_this.getItemName(item)];
2265
+ item.value = v ? v : null;
2266
+ });
2267
+ if (this.items) {
2268
+ this.itemsChange.emit(this.items);
2269
+ }
2062
2270
  }
2063
2271
  this.onChange(value);
2064
2272
  };
2065
2273
  InputGroupComponent.prototype.onExternalChange = function () {
2066
2274
  var _this = this;
2275
+ if (!this.contentInit) {
2276
+ return;
2277
+ }
2067
2278
  if (!this.value) {
2068
2279
  this.value = {};
2069
2280
  }
2070
- this.items.forEach(function (item) { return _this.value[_this.getItemName(item)] = item.value; });
2281
+ var items = this.getItems();
2282
+ items.forEach(function (item) { return _this.value[_this.getItemName(item)] = item.value; });
2071
2283
  this.onChange(this.value);
2072
2284
  };
2073
- InputGroupComponent.prototype.onInternalChange = function (itemName, itemValue) {
2285
+ InputGroupComponent.prototype.onInternalChange = function (item, itemValue) {
2286
+ var itemName = this.getItemName(item);
2074
2287
  if (!this.value) {
2075
2288
  this.value = {};
2076
2289
  }
2077
- this.value[itemName] = itemValue;
2078
- this.onChange(this.value);
2290
+ if (this.value[itemName] !== itemValue) {
2291
+ this.value[itemName] = itemValue;
2292
+ this.onChange(this.value);
2293
+ if (item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent) {
2294
+ item.valueChange.emit(itemValue);
2295
+ }
2296
+ if (this.items) {
2297
+ item.value = itemValue;
2298
+ this.itemsChange.emit(this.items);
2299
+ }
2300
+ }
2301
+ };
2302
+ InputGroupComponent.prototype.overrideFieldsetParams = function (fieldset) {
2303
+ fieldset.caller = this.innerHtml;
2304
+ fieldset.errorId = this.getErrorId();
2305
+ fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);
2306
+ fieldset.role = 'group';
2307
+ fieldset.detectChanges();
2308
+ };
2309
+ /*
2310
+ * Métodos para proporcionar datos
2311
+ */
2312
+ InputGroupComponent.prototype.getItems = function () {
2313
+ return this.itemsComponents && this.itemsComponents.length ? this.itemsComponents.toArray() : this.items;
2314
+ };
2315
+ InputGroupComponent.prototype.getItemLabelRef = function (item) {
2316
+ return item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent ? item.labelRef : null;
2317
+ };
2318
+ InputGroupComponent.prototype.getItemLabelData = function (item) {
2319
+ return item.labelData ? item.labelData : { text: item.labelText };
2079
2320
  };
2080
2321
  InputGroupComponent.prototype.hasFieldset = function () {
2081
- return !!(this.legendRef || this.fieldsetData
2322
+ return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData
2082
2323
  || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
2083
2324
  };
2325
+ InputGroupComponent.prototype.hasFieldsetComponent = function () {
2326
+ return !!this.fieldsetComponent;
2327
+ };
2328
+ InputGroupComponent.prototype.hasLegendComponent = function () {
2329
+ return !!this.legendComponent;
2330
+ };
2084
2331
  InputGroupComponent.prototype.getItemName = function (item) {
2085
2332
  return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;
2086
2333
  };
2334
+ InputGroupComponent.prototype.getItemSelectOptions = function (item) {
2335
+ return item instanceof InputGroupSelectComponent ?
2336
+ item.selectItemComponentList.toArray() : item.selectItems;
2337
+ };
2338
+ InputGroupComponent.prototype.getItemDividerTemplate = function (item) {
2339
+ return item.divider instanceof InputGroupDividerComponent ? item.divider.dividerContent : null;
2340
+ };
2341
+ InputGroupComponent.prototype.getItemDividerHtml = function (item) {
2342
+ return item.divider.html ? item.divider.html : "<p>" + StringUtils.escapeHtml(item.divider.text) + "</p>";
2343
+ };
2344
+ InputGroupComponent.prototype.isSelectItem = function (item) {
2345
+ var hasSelectItems;
2346
+ if (item instanceof InputGroupSelectComponent) {
2347
+ hasSelectItems = item.selectItemComponentList && item.selectItemComponentList.length > 0;
2348
+ }
2349
+ else {
2350
+ hasSelectItems = item.selectItems;
2351
+ }
2352
+ return item.isSelect && hasSelectItems;
2353
+ };
2087
2354
  InputGroupComponent.prototype.hasItemLabel = function (item) {
2088
2355
  return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);
2089
2356
  };
@@ -2092,7 +2359,7 @@
2092
2359
  InputGroupComponent.decorators = [
2093
2360
  { type: i0.Component, args: [{
2094
2361
  selector: 'desy-input-group',
2095
- 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\" let-mode=\"mode\">\r\n <div *ngIf=\"item.divider.html; else notHtml\" [ngClass]=\"item.divider.classes\" role=\"separator\" [innerHTML]=\"item.divider.html\"></div>\r\n <ng-template #notHtml>\r\n <div [ngClass]=\"item.divider.classes\" role=\"separator\" >\r\n <p>{{item.divider.text}}</p>\r\n </div>\r\n </ng-template>\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 items; index as i\">\r\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? 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 [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\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]=\"item.selectItems\"\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 [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\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 items; index as i\">\r\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? 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 [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\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.name, $event)\"\r\n [items]=\"item.selectItems\"\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 [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $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 items; index as i\">\r\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? 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 [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [items]=\"item.selectItems\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $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 [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $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 <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\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 && 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 && !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 && !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</div>\r\n",
2362
+ 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",
2096
2363
  providers: [
2097
2364
  {
2098
2365
  provide: forms.NG_VALUE_ACCESSOR,
@@ -2108,6 +2375,7 @@
2108
2375
  InputGroupComponent.propDecorators = {
2109
2376
  ngModelGroup: [{ type: i0.Input }],
2110
2377
  items: [{ type: i0.Input }],
2378
+ itemsChange: [{ type: i0.Output }],
2111
2379
  namePrefix: [{ type: i0.Input }],
2112
2380
  classes: [{ type: i0.Input }],
2113
2381
  formGroupClasses: [{ type: i0.Input }],
@@ -2116,8 +2384,24 @@
2116
2384
  fieldsetData: [{ type: i0.Input }],
2117
2385
  legendRef: [{ type: i0.Input }],
2118
2386
  legendData: [{ type: i0.Input }],
2119
- legendText: [{ type: i0.Input }]
2120
- };
2387
+ legendText: [{ type: i0.Input }],
2388
+ itemsComponents: [{ type: i0.ContentChildren, args: [InputGroupItemComponent,] }],
2389
+ fieldsetComponent: [{ type: i0.ContentChildren, args: [FieldsetComponent,] }],
2390
+ legendComponent: [{ type: i0.ContentChildren, args: [LegendComponent,] }],
2391
+ innerHtml: [{ type: i0.ViewChild, args: ['innerHtml', { static: true },] }]
2392
+ };
2393
+ __decorate([
2394
+ DesyOnInputChange('onExternalChange')
2395
+ ], InputGroupComponent.prototype, "items", void 0);
2396
+ __decorate([
2397
+ DesyOnInputChange('onExternalChange')
2398
+ ], InputGroupComponent.prototype, "namePrefix", void 0);
2399
+ __decorate([
2400
+ DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' })
2401
+ ], InputGroupComponent.prototype, "fieldsetComponent", void 0);
2402
+ __decorate([
2403
+ DesyContentChild()
2404
+ ], InputGroupComponent.prototype, "legendComponent", void 0);
2121
2405
 
2122
2406
  var RadioItemComponent = /** @class */ (function (_super) {
2123
2407
  __extends(RadioItemComponent, _super);
@@ -2262,43 +2546,6 @@
2262
2546
  checkedChange: [{ type: i0.Output }]
2263
2547
  };
2264
2548
 
2265
- var MakeHtmlListPipe = /** @class */ (function () {
2266
- function MakeHtmlListPipe() {
2267
- }
2268
- MakeHtmlListPipe.prototype.transform = function (classes, valueForEmpty) {
2269
- var filteredList = classes.filter(function (c) { return c; }).join(' ');
2270
- if (filteredList.length === 0 && valueForEmpty) {
2271
- filteredList = valueForEmpty;
2272
- }
2273
- return filteredList;
2274
- };
2275
- return MakeHtmlListPipe;
2276
- }());
2277
- MakeHtmlListPipe.decorators = [
2278
- { type: i0.Pipe, args: [{
2279
- name: 'makeHtmlList'
2280
- },] }
2281
- ];
2282
-
2283
- /**
2284
- * Decorador para controlar los cambios de un input
2285
- * @param callbackName nombre de la función a la que se llamará tras aplicar el cambio
2286
- */
2287
- function DesyOnInputChange(callbackName) {
2288
- return function (target, propertyKey) {
2289
- var privateKeyName = "_" + propertyKey;
2290
- Object.defineProperty(target, propertyKey, {
2291
- set: function (value) {
2292
- this[privateKeyName] = value;
2293
- this[callbackName]();
2294
- },
2295
- get: function () {
2296
- return this[privateKeyName];
2297
- }
2298
- });
2299
- };
2300
- }
2301
-
2302
2549
  var RadiosComponent = /** @class */ (function (_super) {
2303
2550
  __extends(RadiosComponent, _super);
2304
2551
  function RadiosComponent() {
@@ -2494,7 +2741,7 @@
2494
2741
  RadiosComponent.decorators = [
2495
2742
  { type: i0.Component, args: [{
2496
2743
  selector: 'desy-radios',
2497
- template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [role]=\"fieldsetData.role\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\r\n [legendRef]=\"legendTemplate\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\r\n <ng-template #legendTemplate>\r\n <ng-content select=\"desy-legend\"></ng-content>\r\n </ng-template>\r\n </desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n\r\n <div class=\"c-radios\" [ngClass]=\"classes\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngIf=\"radioComponentItems && radioComponentItems.length > 0\">\r\n <ng-content select=\"desy-radio-item\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(radioComponentItems && radioComponentItems.length > 0) && items\">\r\n <desy-radio-item *ngFor=\"let item of items; index as i\"\r\n [id]=\"item.id\"\r\n [disabled]=\"item.disabled\"\r\n [classes]=\"item.classes\"\r\n [value]=\"item.value\"\r\n [(checked)]=\"item.checked\"\r\n [conditional]=\"item.conditional\"\r\n [divider]=\"item.divider\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\">\r\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\r\n [classes]=\"item.labelData ? item.labelData.classes : null\"\r\n [role]=\"item.labelData ? item.labelData.role : null\"\r\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\r\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\r\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\r\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\r\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\r\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\r\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\r\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\r\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\r\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\r\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\r\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\r\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\r\n [text]=\"item.hintData.text\"\r\n [html]=\"item.hintData.html\"\r\n [classes]=\"item.hintData.classes\"\r\n [role]=\"item.hintData.role\"\r\n [ariaLabel]=\"item.hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"item.hintData.ariaHidden\"\r\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\r\n [ariaControls]=\"item.hintData.ariaControls\"\r\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\r\n [ariaLive]=\"item.hintData.ariaLive\"\r\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\r\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\r\n <desy-content *ngIf=\"item.conditionalHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\r\n </desy-content>\r\n </desy-radio-item>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
2744
+ template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [headingLevel]=\"fieldsetData.headingLevel\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [role]=\"fieldsetData.role\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\r\n [legendRef]=\"legendTemplate\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\r\n <ng-template #legendTemplate>\r\n <ng-content select=\"desy-legend\"></ng-content>\r\n </ng-template>\r\n </desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n\r\n <div class=\"c-radios\" [ngClass]=\"classes\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngIf=\"radioComponentItems && radioComponentItems.length > 0\">\r\n <ng-content select=\"desy-radio-item\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(radioComponentItems && radioComponentItems.length > 0) && items\">\r\n <desy-radio-item *ngFor=\"let item of items; index as i\"\r\n [id]=\"item.id\"\r\n [disabled]=\"item.disabled\"\r\n [classes]=\"item.classes\"\r\n [value]=\"item.value\"\r\n [(checked)]=\"item.checked\"\r\n [conditional]=\"item.conditional\"\r\n [divider]=\"item.divider\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\">\r\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\r\n [classes]=\"item.labelData ? item.labelData.classes : null\"\r\n [role]=\"item.labelData ? item.labelData.role : null\"\r\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\r\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\r\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\r\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\r\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\r\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\r\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\r\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\r\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\r\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\r\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\r\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\r\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\r\n [text]=\"item.hintData.text\"\r\n [html]=\"item.hintData.html\"\r\n [classes]=\"item.hintData.classes\"\r\n [role]=\"item.hintData.role\"\r\n [ariaLabel]=\"item.hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"item.hintData.ariaHidden\"\r\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\r\n [ariaControls]=\"item.hintData.ariaControls\"\r\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\r\n [ariaLive]=\"item.hintData.ariaLive\"\r\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\r\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\r\n <desy-content *ngIf=\"item.conditionalHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\r\n </desy-content>\r\n </desy-radio-item>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
2498
2745
  providers: [
2499
2746
  {
2500
2747
  provide: forms.NG_VALUE_ACCESSOR,
@@ -2877,7 +3124,7 @@
2877
3124
  CheckboxesComponent.decorators = [
2878
3125
  { type: i0.Component, args: [{
2879
3126
  selector: 'desy-checkboxes',
2880
- template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [role]=\"fieldsetData.role\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\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 && !legendComponent && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\r\n <ng-content select=\"desy-checkbox-item\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\r\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\r\n [id]=\"item.id\"\r\n [disabled]=\"item.disabled\"\r\n [name]=\"item.name\"\r\n [classes]=\"item.classes\"\r\n [value]=\"item.value\"\r\n [(checked)]=\"item.checked\"\r\n [conditional]=\"item.conditional\"\r\n [isIndeterminate]=\"item.isIndeterminate\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\">\r\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\r\n [classes]=\"item.labelData ? item.labelData.classes : null\"\r\n [role]=\"item.labelData ? item.labelData.role : null\"\r\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\r\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\r\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\r\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\r\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\r\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\r\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\r\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\r\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\r\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\r\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\r\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\r\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\r\n [text]=\"item.hintData.text\"\r\n [html]=\"item.hintData.html\"\r\n [classes]=\"item.hintData.classes\"\r\n [role]=\"item.hintData.role\"\r\n [ariaLabel]=\"item.hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"item.hintData.ariaHidden\"\r\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\r\n [ariaControls]=\"item.hintData.ariaControls\"\r\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\r\n [ariaLive]=\"item.hintData.ariaLive\"\r\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\r\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\r\n <desy-content *ngIf=\"item.conditionalHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\r\n </desy-content>\r\n </desy-checkbox-item>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
3127
+ template: "<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses == 'c-form-group--error') }\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [headingLevel]=\"fieldsetData.headingLevel\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n [role]=\"fieldsetData.role\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\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 && !legendComponent && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\r\n <ng-content select=\"desy-checkbox-item\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\r\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\r\n [id]=\"item.id\"\r\n [disabled]=\"item.disabled\"\r\n [name]=\"item.name\"\r\n [classes]=\"item.classes\"\r\n [value]=\"item.value\"\r\n [(checked)]=\"item.checked\"\r\n [conditional]=\"item.conditional\"\r\n [isIndeterminate]=\"item.isIndeterminate\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\">\r\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\r\n [classes]=\"item.labelData ? item.labelData.classes : null\"\r\n [role]=\"item.labelData ? item.labelData.role : null\"\r\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\r\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\r\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\r\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\r\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\r\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\r\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\r\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\r\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\r\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\r\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\r\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\r\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\r\n [text]=\"item.hintData.text\"\r\n [html]=\"item.hintData.html\"\r\n [classes]=\"item.hintData.classes\"\r\n [role]=\"item.hintData.role\"\r\n [ariaLabel]=\"item.hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"item.hintData.ariaHidden\"\r\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\r\n [ariaControls]=\"item.hintData.ariaControls\"\r\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\r\n [ariaLive]=\"item.hintData.ariaLive\"\r\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\r\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\r\n <desy-content *ngIf=\"item.conditionalHtml\">\r\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\r\n </desy-content>\r\n </desy-checkbox-item>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n",
2881
3128
  providers: [
2882
3129
  {
2883
3130
  provide: forms.NG_VALUE_ACCESSOR,
@@ -2920,32 +3167,195 @@
2920
3167
  DesyContentChild()
2921
3168
  ], CheckboxesComponent.prototype, "legendComponent", void 0);
2922
3169
 
2923
- var DateInputComponent = /** @class */ (function (_super) {
2924
- __extends(DateInputComponent, _super);
2925
- function DateInputComponent(controlContainer) {
2926
- var _this = _super.call(this) || this;
2927
- _this.controlContainer = controlContainer;
3170
+ var DateInputItemComponent = /** @class */ (function () {
3171
+ function DateInputItemComponent() {
3172
+ }
3173
+ return DateInputItemComponent;
3174
+ }());
3175
+ DateInputItemComponent.decorators = [
3176
+ { type: i0.Component, args: [{
3177
+ selector: 'desy-date-input-item',
3178
+ template: ''
3179
+ },] }
3180
+ ];
3181
+ DateInputItemComponent.propDecorators = {
3182
+ classes: [{ type: i0.Input }]
3183
+ };
3184
+
3185
+ var DateInputDayComponent = /** @class */ (function (_super) {
3186
+ __extends(DateInputDayComponent, _super);
3187
+ function DateInputDayComponent() {
3188
+ var _this = _super.apply(this, __spread(arguments)) || this;
3189
+ _this.valueChange = new i0.EventEmitter();
2928
3190
  return _this;
2929
3191
  }
2930
- DateInputComponent.prototype.ngOnInit = function () {
2931
- this.initDefaultItems();
2932
- this.checkRequired();
2933
- this.onExternalChange();
2934
- };
2935
- DateInputComponent.prototype.ngOnChanges = function () {
2936
- this.initDefaultItems();
2937
- this.checkRequired();
2938
- this.onExternalChange();
3192
+ DateInputDayComponent.prototype.ngAfterContentInit = function () {
3193
+ if (!this.name) {
3194
+ throw Error('day name is required');
3195
+ }
3196
+ if (!this.labelComponent) {
3197
+ throw Error('day label is required');
3198
+ }
2939
3199
  };
2940
- DateInputComponent.prototype.initDefaultItems = function () {
2941
- if (!this.items) {
2942
- this.items = [
2943
- {
2944
- name: 'día',
2945
- classes: 'w-14',
2946
- maxlength: 2
2947
- },
2948
- {
3200
+ return DateInputDayComponent;
3201
+ }(DateInputItemComponent));
3202
+ DateInputDayComponent.decorators = [
3203
+ { type: i0.Component, args: [{
3204
+ selector: 'desy-input-day',
3205
+ template: "<ng-template #label>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n</ng-template>\r\n",
3206
+ providers: [{ provide: DateInputItemComponent, useExisting: i0.forwardRef(function () { return DateInputDayComponent; }) }]
3207
+ },] }
3208
+ ];
3209
+ DateInputDayComponent.propDecorators = {
3210
+ id: [{ type: i0.Input }],
3211
+ name: [{ type: i0.Input }],
3212
+ labelText: [{ type: i0.Input }],
3213
+ labelData: [{ type: i0.Input }],
3214
+ disabled: [{ type: i0.Input }],
3215
+ hasErrors: [{ type: i0.Input }],
3216
+ value: [{ type: i0.Input }],
3217
+ autocomplete: [{ type: i0.Input }],
3218
+ pattern: [{ type: i0.Input }],
3219
+ classes: [{ type: i0.Input }],
3220
+ maxlength: [{ type: i0.Input }],
3221
+ valueChange: [{ type: i0.Output }],
3222
+ labelComponent: [{ type: i0.ContentChildren, args: [LabelComponent,] }],
3223
+ labelRef: [{ type: i0.ViewChild, args: ['label', { static: true },] }]
3224
+ };
3225
+ __decorate([
3226
+ DesyContentChild()
3227
+ ], DateInputDayComponent.prototype, "labelComponent", void 0);
3228
+
3229
+ var DateInputMonthComponent = /** @class */ (function (_super) {
3230
+ __extends(DateInputMonthComponent, _super);
3231
+ function DateInputMonthComponent() {
3232
+ var _this = _super.apply(this, __spread(arguments)) || this;
3233
+ _this.valueChange = new i0.EventEmitter();
3234
+ return _this;
3235
+ }
3236
+ DateInputMonthComponent.prototype.ngAfterContentInit = function () {
3237
+ if (!this.name) {
3238
+ throw Error('month name is required');
3239
+ }
3240
+ if (!this.labelComponent) {
3241
+ throw Error('month label is required');
3242
+ }
3243
+ };
3244
+ return DateInputMonthComponent;
3245
+ }(DateInputItemComponent));
3246
+ DateInputMonthComponent.decorators = [
3247
+ { type: i0.Component, args: [{
3248
+ selector: 'desy-input-month',
3249
+ template: "<ng-template #label>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n</ng-template>\r\n",
3250
+ providers: [{ provide: DateInputItemComponent, useExisting: i0.forwardRef(function () { return DateInputMonthComponent; }) }]
3251
+ },] }
3252
+ ];
3253
+ DateInputMonthComponent.propDecorators = {
3254
+ id: [{ type: i0.Input }],
3255
+ name: [{ type: i0.Input }],
3256
+ labelText: [{ type: i0.Input }],
3257
+ labelData: [{ type: i0.Input }],
3258
+ disabled: [{ type: i0.Input }],
3259
+ hasErrors: [{ type: i0.Input }],
3260
+ value: [{ type: i0.Input }],
3261
+ autocomplete: [{ type: i0.Input }],
3262
+ pattern: [{ type: i0.Input }],
3263
+ classes: [{ type: i0.Input }],
3264
+ maxlength: [{ type: i0.Input }],
3265
+ valueChange: [{ type: i0.Output }],
3266
+ labelComponent: [{ type: i0.ContentChildren, args: [LabelComponent,] }],
3267
+ labelRef: [{ type: i0.ViewChild, args: ['label', { static: true },] }]
3268
+ };
3269
+ __decorate([
3270
+ DesyContentChild()
3271
+ ], DateInputMonthComponent.prototype, "labelComponent", void 0);
3272
+
3273
+ var DateInputYearComponent = /** @class */ (function (_super) {
3274
+ __extends(DateInputYearComponent, _super);
3275
+ function DateInputYearComponent() {
3276
+ var _this = _super.apply(this, __spread(arguments)) || this;
3277
+ _this.valueChange = new i0.EventEmitter();
3278
+ return _this;
3279
+ }
3280
+ DateInputYearComponent.prototype.ngAfterContentInit = function () {
3281
+ if (!this.name) {
3282
+ throw Error('year name is required');
3283
+ }
3284
+ if (!this.labelComponent) {
3285
+ throw Error('year label is required');
3286
+ }
3287
+ };
3288
+ return DateInputYearComponent;
3289
+ }(DateInputItemComponent));
3290
+ DateInputYearComponent.decorators = [
3291
+ { type: i0.Component, args: [{
3292
+ selector: 'desy-input-year',
3293
+ template: "<ng-template #label>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n</ng-template>\r\n",
3294
+ providers: [{ provide: DateInputItemComponent, useExisting: i0.forwardRef(function () { return DateInputYearComponent; }) }]
3295
+ },] }
3296
+ ];
3297
+ DateInputYearComponent.propDecorators = {
3298
+ id: [{ type: i0.Input }],
3299
+ name: [{ type: i0.Input }],
3300
+ disabled: [{ type: i0.Input }],
3301
+ hasErrors: [{ type: i0.Input }],
3302
+ value: [{ type: i0.Input }],
3303
+ autocomplete: [{ type: i0.Input }],
3304
+ pattern: [{ type: i0.Input }],
3305
+ classes: [{ type: i0.Input }],
3306
+ maxlength: [{ type: i0.Input }],
3307
+ valueChange: [{ type: i0.Output }],
3308
+ labelComponent: [{ type: i0.ContentChildren, args: [LabelComponent,] }],
3309
+ labelRef: [{ type: i0.ViewChild, args: ['label', { static: true },] }]
3310
+ };
3311
+ __decorate([
3312
+ DesyContentChild()
3313
+ ], DateInputYearComponent.prototype, "labelComponent", void 0);
3314
+
3315
+ var DateInputDividerComponent = /** @class */ (function (_super) {
3316
+ __extends(DateInputDividerComponent, _super);
3317
+ function DateInputDividerComponent() {
3318
+ var _this = _super.apply(this, __spread(arguments)) || this;
3319
+ _this.divider = _this;
3320
+ return _this;
3321
+ }
3322
+ return DateInputDividerComponent;
3323
+ }(DateInputItemComponent));
3324
+ DateInputDividerComponent.decorators = [
3325
+ { type: i0.Component, args: [{
3326
+ selector: 'desy-date-input-divider',
3327
+ template: "<ng-template #dividerContent>\r\n <ng-content></ng-content>\r\n</ng-template>",
3328
+ providers: [{ provide: DateInputItemComponent, useExisting: i0.forwardRef(function () { return DateInputDividerComponent; }) }]
3329
+ },] }
3330
+ ];
3331
+ DateInputDividerComponent.propDecorators = {
3332
+ dividerContent: [{ type: i0.ViewChild, args: ['dividerContent', { static: true },] }]
3333
+ };
3334
+
3335
+ var DateInputComponent = /** @class */ (function (_super) {
3336
+ __extends(DateInputComponent, _super);
3337
+ function DateInputComponent(controlContainer) {
3338
+ var _this = _super.call(this) || this;
3339
+ _this.controlContainer = controlContainer;
3340
+ _this.itemsChange = new i0.EventEmitter();
3341
+ _this.contentInit = false;
3342
+ return _this;
3343
+ }
3344
+ DateInputComponent.prototype.ngOnChanges = function () {
3345
+ this.checkRequired();
3346
+ };
3347
+ DateInputComponent.prototype.ngAfterContentInit = function () {
3348
+ this.contentInit = true;
3349
+ };
3350
+ DateInputComponent.prototype.initDefaultItems = function () {
3351
+ if (!this.items) {
3352
+ this.items = [
3353
+ {
3354
+ name: 'día',
3355
+ classes: 'w-14',
3356
+ maxlength: 2
3357
+ },
3358
+ {
2949
3359
  name: 'mes',
2950
3360
  classes: 'w-14',
2951
3361
  maxlength: 2
@@ -2959,55 +3369,75 @@
2959
3369
  }
2960
3370
  };
2961
3371
  DateInputComponent.prototype.checkRequired = function () {
2962
- var e_1, _a;
2963
3372
  if (!this.id) {
2964
3373
  throw Error('id is required');
2965
3374
  }
2966
- if (this.items) {
2967
- try {
2968
- for (var _b = __values(this.items), _c = _b.next(); !_c.done; _c = _b.next()) {
2969
- var item = _c.value;
2970
- if (!item.name) {
2971
- throw Error('item name is required');
2972
- }
2973
- }
2974
- }
2975
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
2976
- finally {
2977
- try {
2978
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
2979
- }
2980
- finally { if (e_1) throw e_1.error; }
2981
- }
2982
- }
2983
3375
  };
2984
3376
  DateInputComponent.prototype.writeValue = function (value) {
2985
3377
  var _this = this;
2986
3378
  this.value = value;
2987
3379
  if (this.value) {
2988
- this.items.forEach(function (item) { return item.value = _this.value[_this.getItemName(item)]; });
3380
+ var items = this.getItems();
3381
+ items.forEach(function (item) { return item.value = _this.value[_this.getItemName(item)]; });
3382
+ if (this.items) {
3383
+ this.itemsChange.emit(this.items);
3384
+ }
2989
3385
  }
2990
3386
  this.onChange(value);
2991
3387
  };
3388
+ DateInputComponent.prototype.overrideFieldsetParams = function (fieldset) {
3389
+ fieldset.caller = this.innerHtml;
3390
+ fieldset.errorId = this.getErrorId();
3391
+ fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);
3392
+ fieldset.role = 'group';
3393
+ fieldset.detectChanges();
3394
+ };
2992
3395
  DateInputComponent.prototype.onExternalChange = function () {
2993
3396
  var _this = this;
3397
+ if (!this.contentInit) {
3398
+ return;
3399
+ }
2994
3400
  if (!this.value) {
2995
3401
  this.value = {};
2996
3402
  }
2997
- this.items.forEach(function (item) { return _this.value[_this.getItemName(item)] = item.value; });
2998
- this.onChange(this.value);
3403
+ var items = this.getItems();
3404
+ items.forEach(function (item) { return _this.value[_this.getItemName(item)] = item.value; });
3405
+ var newVal = {};
3406
+ Object.assign(newVal, this.value);
3407
+ this.onChange(newVal);
2999
3408
  };
3000
- DateInputComponent.prototype.onInternalChange = function (itemName, itemValue) {
3409
+ DateInputComponent.prototype.onInternalChange = function (item, itemValue) {
3410
+ var itemName = this.getItemName(item);
3001
3411
  if (!this.value) {
3002
3412
  this.value = {};
3003
3413
  }
3004
- this.value[itemName] = itemValue ? +itemValue : undefined;
3005
- this.onChange(this.value);
3414
+ if (this.value[itemName] !== itemValue) {
3415
+ this.value[itemName] = itemValue ? +itemValue : undefined;
3416
+ var newVal = {};
3417
+ Object.assign(newVal, this.value);
3418
+ this.onChange(newVal);
3419
+ if (item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent) {
3420
+ item.valueChange.emit(itemValue);
3421
+ }
3422
+ if (this.items) {
3423
+ item.value = itemValue;
3424
+ this.itemsChange.emit(this.items);
3425
+ }
3426
+ }
3006
3427
  };
3007
3428
  DateInputComponent.prototype.hasFieldset = function () {
3008
- return !!(this.legendRef || this.fieldsetData
3429
+ return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData
3009
3430
  || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
3010
3431
  };
3432
+ DateInputComponent.prototype.hasFieldsetComponent = function () {
3433
+ return !!this.fieldsetComponent;
3434
+ };
3435
+ DateInputComponent.prototype.hasLegendComponent = function () {
3436
+ return !!this.legendComponent;
3437
+ };
3438
+ DateInputComponent.prototype.hasErrorMessageComponent = function () {
3439
+ return !!this.errorMessageComponent;
3440
+ };
3011
3441
  DateInputComponent.prototype.getItemName = function (item) {
3012
3442
  return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;
3013
3443
  };
@@ -3023,12 +3453,60 @@
3023
3453
  }
3024
3454
  return labelData;
3025
3455
  };
3456
+ DateInputComponent.prototype.getItemLabelRef = function (item) {
3457
+ return item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent ?
3458
+ item.labelRef : null;
3459
+ };
3460
+ DateInputComponent.prototype.getItems = function () {
3461
+ var items;
3462
+ if (this.dateInputItemComponents && this.dateInputItemComponents.length > 0) {
3463
+ items = this.dateInputItemComponents.toArray();
3464
+ }
3465
+ else if (this.items) {
3466
+ items = this.items;
3467
+ }
3468
+ else if (this.contentInit) {
3469
+ items = DateInputComponent.defaultItems;
3470
+ }
3471
+ else {
3472
+ items = [];
3473
+ }
3474
+ items.forEach(function (item) {
3475
+ if (!item.name && !(item instanceof DateInputDividerComponent)) {
3476
+ throw new Error('Item name is required');
3477
+ }
3478
+ });
3479
+ return items;
3480
+ };
3481
+ DateInputComponent.prototype.getItemDividerTemplate = function (item) {
3482
+ return item.divider instanceof DateInputDividerComponent ? item.divider.dividerContent : null;
3483
+ };
3484
+ DateInputComponent.prototype.getItemDividerHtml = function (item) {
3485
+ return item.divider.html ? item.divider.html : "<p>" + StringUtils.escapeHtml(item.divider.text) + "</p>";
3486
+ };
3026
3487
  return DateInputComponent;
3027
3488
  }(FormFieldComponent));
3489
+ DateInputComponent.defaultItems = [
3490
+ {
3491
+ name: 'day',
3492
+ classes: 'w-14',
3493
+ maxlength: 2
3494
+ },
3495
+ {
3496
+ name: 'month',
3497
+ classes: 'w-14',
3498
+ maxlength: 2
3499
+ },
3500
+ {
3501
+ name: 'year',
3502
+ classes: 'w-20',
3503
+ maxlength: 4
3504
+ }
3505
+ ];
3028
3506
  DateInputComponent.decorators = [
3029
3507
  { type: i0.Component, args: [{
3030
3508
  selector: 'desy-date-input',
3031
- template: "<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 <!-- date-input -->\r\n <!-- Reactive forms -->\r\n <div *ngIf=\"controlContainer && !ngModelGroup\"\r\n [formGroup]=\"controlContainer.control\"\r\n [class]=\"['flex', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <div class=\"mr-base\">\r\n <desy-input [labelData]=\"{text: item.label ? item.label : (item.name | titlecase)}\"\r\n [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [type]=\"'text'\"\r\n [inputmode]=\"'numeric'\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\r\n [disabled]=\"disabled ? true : null\"\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 </div>\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 [class]=\"['flex', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <div class=\"mr-base\">\r\n <desy-input [labelData]=\"getItemLabel(item)\"\r\n [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\r\n [type]=\"'text'\"\r\n [inputmode]=\"'numeric'\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\r\n [disabled]=\"disabled ? true : null\"\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 </div>\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 [class]=\"['flex', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <div class=\"mr-base\">\r\n <desy-input [labelData]=\"getItemLabel(item)\"\r\n [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\r\n [type]=\"'text'\"\r\n [inputmode]=\"'numeric'\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\r\n [disabled]=\"disabled ? true : null\"\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 </div>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n<!-- /date-input -->\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 <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\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 && 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 && !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 && !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</div>\r\n",
3509
+ template: "\r\n<ng-template #innerHtml>\r\n <ng-container *ngIf=\"hasHintComponent()\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasHintComponent()\">\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n </ng-container>\r\n\r\n <!-- With reactive forms -->\r\n <div *ngIf=\"controlContainer && !ngModelGroup\"\r\n [formGroup]=\"controlContainer.control\"\r\n [class]=\"['flex', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n <ng-container *ngIf=\"item.divider\">\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-container>\r\n <ng-container *ngIf=\"!item.divider\">\r\n <div class=\"mr-base\">\r\n <desy-input [labelData]=\"getItemLabel(item)\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [type]=\"'text'\"\r\n [inputmode]=\"'numeric'\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\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 </div>\r\n </ng-container>\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 [class]=\"['flex', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n \r\n <ng-container *ngIf=\"item.divider\">\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-container>\r\n <ng-container *ngIf=\"!item.divider\">\r\n <div class=\"mr-base\">\r\n <desy-input [labelData]=\"getItemLabel(item)\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, +$event)\"\r\n [type]=\"'text'\"\r\n [inputmode]=\"'numeric'\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\r\n [disabled]=\"disabled ? true : null\"\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 </div>\r\n </ng-container>\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 [class]=\"['flex', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n \r\n <ng-container *ngIf=\"item.divider\">\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-container>\r\n <ng-container *ngIf=\"!item.divider\">\r\n <div class=\"mr-base\">\r\n <desy-input [labelData]=\"getItemLabel(item)\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, +$event)\"\r\n [type]=\"'text'\"\r\n [inputmode]=\"'numeric'\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\r\n [disabled]=\"disabled ? true : null\"\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 </div>\r\n </ng-container>\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 [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 </ng-container>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n",
3032
3510
  providers: [
3033
3511
  {
3034
3512
  provide: forms.NG_VALUE_ACCESSOR,
@@ -3044,16 +3522,33 @@
3044
3522
  DateInputComponent.propDecorators = {
3045
3523
  ngModelGroup: [{ type: i0.Input }],
3046
3524
  items: [{ type: i0.Input }],
3525
+ itemsChange: [{ type: i0.Output }],
3047
3526
  namePrefix: [{ type: i0.Input }],
3048
3527
  classes: [{ type: i0.Input }],
3049
3528
  formGroupClasses: [{ type: i0.Input }],
3050
3529
  errorMessage: [{ type: i0.Input }],
3051
3530
  id: [{ type: i0.Input }],
3531
+ fieldsetComponent: [{ type: i0.ContentChildren, args: [FieldsetComponent,] }],
3532
+ legendComponent: [{ type: i0.ContentChildren, args: [LegendComponent,] }],
3533
+ dateInputItemComponents: [{ type: i0.ContentChildren, args: [DateInputItemComponent,] }],
3052
3534
  fieldsetData: [{ type: i0.Input }],
3053
3535
  legendRef: [{ type: i0.Input }],
3054
3536
  legendData: [{ type: i0.Input }],
3055
- legendText: [{ type: i0.Input }]
3056
- };
3537
+ legendText: [{ type: i0.Input }],
3538
+ innerHtml: [{ type: i0.ViewChild, args: ['innerHtml', { static: true },] }]
3539
+ };
3540
+ __decorate([
3541
+ DesyOnInputChange('onExternalChange')
3542
+ ], DateInputComponent.prototype, "items", void 0);
3543
+ __decorate([
3544
+ DesyOnInputChange('onExternalChange')
3545
+ ], DateInputComponent.prototype, "namePrefix", void 0);
3546
+ __decorate([
3547
+ DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' })
3548
+ ], DateInputComponent.prototype, "fieldsetComponent", void 0);
3549
+ __decorate([
3550
+ DesyContentChild()
3551
+ ], DateInputComponent.prototype, "legendComponent", void 0);
3057
3552
 
3058
3553
  var SearchBarComponent = /** @class */ (function (_super) {
3059
3554
  __extends(SearchBarComponent, _super);
@@ -3273,7 +3768,7 @@
3273
3768
  return classes;
3274
3769
  };
3275
3770
  ModalComponent.prototype.getDescriptionClasses = function () {
3276
- var classes = 'c-p my-base text-center';
3771
+ var classes = 'c-paragraph-base my-base text-center';
3277
3772
  if (this.descriptionComponent && this.descriptionComponent.classes) {
3278
3773
  classes = this.descriptionComponent.classes;
3279
3774
  }
@@ -3295,7 +3790,7 @@
3295
3790
  ModalComponent.decorators = [
3296
3791
  { type: i0.Component, args: [{
3297
3792
  selector: 'desy-modal',
3298
- template: "<div [class]=\"[ 'relative max-w-lg mx-auto p-base lg:p-lg border border-neutral-base rounded bg-white', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div *ngIf=\"iconComponent || icon\" class=\"flex justify-center p-base\"\r\n (desyContentEmpty)=\"handleIconContentEmpty(true)\"\r\n (desyContentNotEmpty)=\"handleIconContentEmpty(false)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\r\n <ng-container *ngIf=\"!hasIconContent\">\r\n <ng-container [ngSwitch]=\"getType()\">\r\n <svg *ngSwitchCase=\"'discard'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M4.375 70a65.625 65.625 0 10131.25 0 65.625 65.625 0 10-131.25 0zM23.596 116.404l92.808-92.808\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'delete'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M100.625 122.5h-61.25a8.75 8.75 0 01-8.75-8.75V35h78.75v78.75a8.75 8.75 0 01-8.75 8.75zM56.875 96.25v-35M83.125 96.25v-35M13.125 35h113.75M83.125 17.5h-26.25a8.75 8.75 0 00-8.75 8.75V35h43.75v-8.75a8.75 8.75 0 00-8.75-8.75z\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'edit'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M73.89 82.46l-21.652 3.098 3.091-21.66 55.685-55.685a13.125 13.125 0 0118.562 18.562z\" stroke-width=\"8.749995\"/><path d=\"M111.545 83.125v43.75a8.75 8.75 0 01-8.75 8.75h-87.5a8.75 8.75 0 01-8.75-8.75v-87.5a8.75 8.75 0 018.75-8.75h43.75\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'changes'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M107.112 40.833a48.125 48.125 0 00-85.237 30.608v13.142M35 104.463a48.125 48.125 0 0083.125-33.022v-8.75\" stroke-width=\"8.749995\"/><path d=\"M4.375 67.066l17.5 17.5 17.5-17.5M135.625 80.19l-17.5-17.5-17.5 17.5\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'publish'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M16.094 91.17a9.707 9.707 0 01-5.145-17.938L118.767 5.833a9.7 9.7 0 0114.676 10.034l-21 111.842a9.707 9.707 0 01-17.301 4.031L64.75 91.17z\" stroke-width=\"8.749995\"/><path d=\"M64.75 91.17H50.167v30.163a9.7 9.7 0 0015.166 8.015l18.539-12.635zM64.744 91.17l64.633-85.11\" stroke-width=\"8.749995\"/></g></svg>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n\r\n <div *ngIf=\"descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </div>\r\n <p *ngIf=\"!descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </p>\r\n\r\n <div *ngIf=\"contentComponent || caller\" class=\"p-base\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\r\n </div>\r\n\r\n <div class=\"flex flex-wrap w-full\" [ngClass]=\"(itemsPrimary || (primaryButtonComponents && primaryButtonComponents.length > 0)) && (itemsSecondary || (secondaryButtonComponents && secondaryButtonComponents.length > 0)) ? 'justify-between' : 'justify-center'\">\r\n <ng-template #buttons let-items=\"items\">\r\n <ng-container *ngIf=\"items\">\r\n <div class=\"mt-sm\" *ngIf=\"items.length === 1\">\r\n <desy-button (clickEvent)=\"clickButtonEmit(items[0], $event)\" [classes]=\"items[0].classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: items[0], text: items[0].text }\"></ng-container>\r\n </desy-button>\r\n </div>\r\n\r\n <!-- FIXME De momento se mantiene el nbsp por no tener clases diferentes a desy-frontend.\r\n Eliminar al adaptar a una versi\u00F3n de desy-frontend que lo contemple -->\r\n <ul *ngIf=\"items.length > 1\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li class=\"lg:inline-block mt-sm\">\r\n <desy-button (clickEvent)=\"clickButtonEmit(item, $event)\" [classes]=\"item.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </desy-button>\r\n </li>&nbsp;\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getPrimaryItems() }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getSecondaryItems() }\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isDismissible\">\r\n <div class=\"absolute top-0 right-0 p-sm lg:p-base\">\r\n <button (click)=\"closeDialog()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar la ventana emergente\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </button>\r\n </div>\r\n </ng-container>\r\n</div>\r\n"
3793
+ template: "<div [class]=\"[ 'relative max-w-lg mx-auto p-base lg:p-lg border border-neutral-base rounded bg-white', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div *ngIf=\"iconComponent || icon\" class=\"flex justify-center p-base\"\r\n (desyContentEmpty)=\"handleIconContentEmpty(true)\"\r\n (desyContentNotEmpty)=\"handleIconContentEmpty(false)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\r\n <ng-container *ngIf=\"!hasIconContent\">\r\n <ng-container [ngSwitch]=\"getType()\">\r\n <svg *ngSwitchCase=\"'discard'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M4.375 70a65.625 65.625 0 10131.25 0 65.625 65.625 0 10-131.25 0zM23.596 116.404l92.808-92.808\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'delete'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-alert-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M100.625 122.5h-61.25a8.75 8.75 0 01-8.75-8.75V35h78.75v78.75a8.75 8.75 0 01-8.75 8.75zM56.875 96.25v-35M83.125 96.25v-35M13.125 35h113.75M83.125 17.5h-26.25a8.75 8.75 0 00-8.75 8.75V35h43.75v-8.75a8.75 8.75 0 00-8.75-8.75z\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'edit'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M73.89 82.46l-21.652 3.098 3.091-21.66 55.685-55.685a13.125 13.125 0 0118.562 18.562z\" stroke-width=\"8.749995\"/><path d=\"M111.545 83.125v43.75a8.75 8.75 0 01-8.75 8.75h-87.5a8.75 8.75 0 01-8.75-8.75v-87.5a8.75 8.75 0 018.75-8.75h43.75\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'changes'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M107.112 40.833a48.125 48.125 0 00-85.237 30.608v13.142M35 104.463a48.125 48.125 0 0083.125-33.022v-8.75\" stroke-width=\"8.749995\"/><path d=\"M4.375 67.066l17.5 17.5 17.5-17.5M135.625 80.19l-17.5-17.5-17.5 17.5\" stroke-width=\"8.749995\"/></g></svg>\r\n <svg *ngSwitchCase=\"'publish'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"block w-16 h-16 text-primary-light\" focusable=\"false\" aria-hidden=\"true\" role=\"presentation\"><g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"><path d=\"M16.094 91.17a9.707 9.707 0 01-5.145-17.938L118.767 5.833a9.7 9.7 0 0114.676 10.034l-21 111.842a9.707 9.707 0 01-17.301 4.031L64.75 91.17z\" stroke-width=\"8.749995\"/><path d=\"M64.75 91.17H50.167v30.163a9.7 9.7 0 0015.166 8.015l18.539-12.635zM64.744 91.17l64.633-85.11\" stroke-width=\"8.749995\"/></g></svg>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: this.titleComponent,\r\n html: this.title ? this.title.html : null,\r\n text: this.title ? this.title.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n\r\n <div *ngIf=\"descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </div>\r\n <p *ngIf=\"!descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\r\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: descriptionComponent,\r\n html: description ? description.html : null,\r\n text: description ? description.text : null\r\n }\"></ng-container>\r\n </p>\r\n\r\n <div *ngIf=\"contentComponent || caller\" class=\"p-base\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-sm w-full\" [ngClass]=\"(itemsPrimary || (primaryButtonComponents && primaryButtonComponents.length > 0)) && (itemsSecondary || (secondaryButtonComponents && secondaryButtonComponents.length > 0)) ? 'justify-between' : 'justify-center'\">\r\n <ng-template #buttons let-items=\"items\">\r\n <ng-container *ngIf=\"items\">\r\n <div class=\"mt-sm\" *ngIf=\"items.length === 1\">\r\n <desy-button (clickEvent)=\"clickButtonEmit(items[0], $event)\" [classes]=\"items[0].classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: items[0], text: items[0].text }\"></ng-container>\r\n </desy-button>\r\n </div>\r\n\r\n <!-- FIXME De momento se mantiene el nbsp por no tener clases diferentes a desy-frontend.\r\n Eliminar al adaptar a una versi\u00F3n de desy-frontend que lo contemple -->\r\n <ul class=\"flex flex-wrap gap-sm\" *ngIf=\"items.length > 1\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li>\r\n <desy-button (clickEvent)=\"clickButtonEmit(item, $event)\" [classes]=\"item.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </desy-button>\r\n </li>&nbsp;\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getPrimaryItems() }\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getSecondaryItems() }\"></ng-container>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isDismissible\">\r\n <div class=\"absolute top-0 right-0 p-sm lg:p-base\">\r\n <button (click)=\"closeDialog()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar la ventana emergente\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </button>\r\n </div>\r\n </ng-container>\r\n</div>\r\n"
3299
3794
  },] }
3300
3795
  ];
3301
3796
  ModalComponent.ctorParameters = function () { return [
@@ -3643,43 +4138,649 @@
3643
4138
  itemComponentList: [{ type: i0.ContentChildren, args: [BreadcrumbsItemComponent,] }]
3644
4139
  };
3645
4140
 
3646
- var HeaderComponent = /** @class */ (function (_super) {
3647
- __extends(HeaderComponent, _super);
3648
- function HeaderComponent() {
4141
+ var HeaderOffcanvasCloseButtonComponent = /** @class */ (function (_super) {
4142
+ __extends(HeaderOffcanvasCloseButtonComponent, _super);
4143
+ function HeaderOffcanvasCloseButtonComponent() {
3649
4144
  return _super !== null && _super.apply(this, arguments) || this;
3650
4145
  }
3651
- return HeaderComponent;
3652
- }(AccessibilityComponent));
3653
- HeaderComponent.decorators = [
4146
+ return HeaderOffcanvasCloseButtonComponent;
4147
+ }(ContentBaseComponent));
4148
+ HeaderOffcanvasCloseButtonComponent.decorators = [
4149
+ { type: i0.Component, args: [{
4150
+ selector: 'desy-header-offcanvas-close-button',
4151
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
4152
+ },] }
4153
+ ];
4154
+
4155
+ var HeaderOffcanvasButtonComponent = /** @class */ (function (_super) {
4156
+ __extends(HeaderOffcanvasButtonComponent, _super);
4157
+ function HeaderOffcanvasButtonComponent() {
4158
+ var _this = _super.apply(this, __spread(arguments)) || this;
4159
+ _this.openOffcanvas = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
4160
+ return [2 /*return*/];
4161
+ }); }); };
4162
+ return _this;
4163
+ }
4164
+ HeaderOffcanvasButtonComponent.prototype.handleClick = function (event) {
4165
+ return __awaiter(this, void 0, void 0, function () {
4166
+ return __generator(this, function (_a) {
4167
+ switch (_a.label) {
4168
+ case 0:
4169
+ event.stopPropagation();
4170
+ return [4 /*yield*/, this.openOffcanvas()];
4171
+ case 1:
4172
+ _a.sent();
4173
+ return [2 /*return*/];
4174
+ }
4175
+ });
4176
+ });
4177
+ };
4178
+ HeaderOffcanvasButtonComponent.prototype.handleEmptyContent = function (element) {
4179
+ throw new Error(element + " content is required");
4180
+ };
4181
+ return HeaderOffcanvasButtonComponent;
4182
+ }(ContentBaseComponent));
4183
+ HeaderOffcanvasButtonComponent.decorators = [
4184
+ { type: i0.Component, args: [{
4185
+ selector: 'desy-header-offcanvas-button',
4186
+ template: "<ng-template #contentTemplate>\r\n <button id=\"header-offcanvas-button\" tabindex=\"0\" aria-haspopup=\"true\"\r\n class=\"inline-flex items-center px-3 py-4 text-sm text-white focus:outline-none focus:shadow-outline-warning\"\r\n (click)=\"handleClick($event)\">\r\n <span id=\"header-offcanvas-button-text\" class=\"inline-block align-middle text-right\"\r\n (desyContentEmpty)=\"handleEmptyContent('Header-offcanvas button')\">\r\n <ng-content></ng-content>\r\n </span>\r\n <svg role=\"img\" aria-label=\"Cerrado\" class=\"inline-block align-middle\" viewBox=\"0 0 96 96\" fill=\"currentColor\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </button>\r\n</ng-template>\r\n\r\n"
4187
+ },] }
4188
+ ];
4189
+
4190
+ var HeaderOffcanvasComponent = /** @class */ (function () {
4191
+ function HeaderOffcanvasComponent(dialogService) {
4192
+ this.dialogService = dialogService;
4193
+ this.hostClass = '-mr-2 flex lg:hidden';
4194
+ }
4195
+ HeaderOffcanvasComponent.prototype.ngOnDestroy = function () {
4196
+ if (this.isOpen()) {
4197
+ this.close();
4198
+ }
4199
+ };
4200
+ HeaderOffcanvasComponent.prototype.open = function () {
4201
+ return __awaiter(this, void 0, void 0, function () {
4202
+ var _a;
4203
+ var _this = this;
4204
+ return __generator(this, function (_b) {
4205
+ switch (_b.label) {
4206
+ case 0:
4207
+ if (!!this.isOpen()) return [3 /*break*/, 2];
4208
+ _a = this;
4209
+ return [4 /*yield*/, this.dialogService.openDialog(this.offcanvasContent, HeaderOffcanvasComponent.dialogOptions)];
4210
+ case 1:
4211
+ _a.dialog = (_b.sent()).dialog;
4212
+ this.dialogService.onCloseDialog(this.dialog).then(function () { return _this.dialog = null; });
4213
+ _b.label = 2;
4214
+ case 2: return [2 /*return*/];
4215
+ }
4216
+ });
4217
+ });
4218
+ };
4219
+ HeaderOffcanvasComponent.prototype.close = function () {
4220
+ if (this.isOpen()) {
4221
+ this.dialogService.closeDialog(this.dialog);
4222
+ this.dialog = null;
4223
+ }
4224
+ };
4225
+ HeaderOffcanvasComponent.prototype.isOpen = function () {
4226
+ return !!this.dialog;
4227
+ };
4228
+ /**
4229
+ * Estable las clases del elemento html del componente
4230
+ */
4231
+ HeaderOffcanvasComponent.prototype.setHostClass = function () {
4232
+ this.hostClass = this.classes ? this.classes : '-mr-2 flex lg:hidden';
4233
+ };
4234
+ /**
4235
+ * Enlaza el botón del componente hijo con la acción de abrir de este componente
4236
+ * @param button componente botón pasado como contenido
4237
+ */
4238
+ HeaderOffcanvasComponent.prototype.bindButton = function (button) {
4239
+ button.openOffcanvas = this.open.bind(this);
4240
+ };
4241
+ HeaderOffcanvasComponent.prototype.handleEmptyContent = function (element) {
4242
+ throw new Error(element + " content is required");
4243
+ };
4244
+ return HeaderOffcanvasComponent;
4245
+ }());
4246
+ HeaderOffcanvasComponent.dialogOptions = {
4247
+ id: 'header-offcanvas-dialog',
4248
+ focusOnClose: 'header-offcanvas',
4249
+ ariaModal: 'true',
4250
+ ariaLabelledBy: 'header-offcanvas-button-text'
4251
+ };
4252
+ HeaderOffcanvasComponent.decorators = [
4253
+ { type: i0.Component, args: [{
4254
+ selector: 'desy-header-offcanvas',
4255
+ template: "\r\n<ng-template #offcanvasContent>\r\n <div class=\"origin-top-left left-0 fixed inset-0 h-screen\">\r\n <div class=\"h-full overflow-auto relative w-offcanvas h-screen ml-offcanvas-negative bg-white z-10\"\r\n [desyClickOutside]=\"isOpen()\" (clickOutside)=\"close()\">\r\n <div class=\"text-right p-sm\">\r\n <button (click)=\"close()\" id=\"header-offcanvas-button-close\" class=\"c-button c-button--sm c-button--transparent m-sm\"\r\n (desyContentEmpty)=\"handleEmptyContent('Header-offcanvas close button')\">\r\n <ng-container *desyCustomInnerContent=\"{ component: closeButton }\"></ng-container> <svg #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\" width=\"14\" height=\"14\" class=\"self-center ml-2\"><path fill=\"currentColor\" d=\"M8.591 7.177a.25.25 0 010-.354l4.616-4.616A1 1 0 1011.793.793L7.177 5.409a.25.25 0 01-.354 0L2.207.793A1 1 0 00.793 2.207l4.616 4.616a.25.25 0 010 .354L.793 11.793a1 1 0 001.414 1.414l4.616-4.616a.25.25 0 01.354 0l4.616 4.616a1 1 0 001.414-1.414z\"/></svg>\r\n </button>\r\n </div>\r\n <ng-container *desyCustomInnerContent=\"{ component: content }\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-container *desyCustomInnerContent=\"{ component: button }\"></ng-container>\r\n"
4256
+ },] }
4257
+ ];
4258
+ HeaderOffcanvasComponent.ctorParameters = function () { return [
4259
+ { type: DialogService }
4260
+ ]; };
4261
+ HeaderOffcanvasComponent.propDecorators = {
4262
+ classes: [{ type: i0.Input }],
4263
+ hostClass: [{ type: i0.HostBinding, args: ['class',] }],
4264
+ offcanvasContent: [{ type: i0.ViewChild, args: ['offcanvasContent',] }],
4265
+ button: [{ type: i0.ContentChildren, args: [HeaderOffcanvasButtonComponent,] }],
4266
+ content: [{ type: i0.ContentChildren, args: [ContentComponent,] }],
4267
+ closeButton: [{ type: i0.ContentChildren, args: [HeaderOffcanvasCloseButtonComponent,] }]
4268
+ };
4269
+ __decorate([
4270
+ DesyOnInputChange('setHostClass')
4271
+ ], HeaderOffcanvasComponent.prototype, "classes", void 0);
4272
+ __decorate([
4273
+ DesyContentChild({ onSetCallbackName: 'bindButton' })
4274
+ ], HeaderOffcanvasComponent.prototype, "button", void 0);
4275
+ __decorate([
4276
+ DesyContentChild()
4277
+ ], HeaderOffcanvasComponent.prototype, "content", void 0);
4278
+ __decorate([
4279
+ DesyContentChild()
4280
+ ], HeaderOffcanvasComponent.prototype, "closeButton", void 0);
4281
+
4282
+ var HeaderNavigationItemComponent = /** @class */ (function (_super) {
4283
+ __extends(HeaderNavigationItemComponent, _super);
4284
+ function HeaderNavigationItemComponent() {
4285
+ return _super !== null && _super.apply(this, arguments) || this;
4286
+ }
4287
+ return HeaderNavigationItemComponent;
4288
+ }(ContentBaseComponent));
4289
+ HeaderNavigationItemComponent.decorators = [
4290
+ { type: i0.Component, args: [{
4291
+ selector: 'desy-header-navigation-item',
4292
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
4293
+ },] }
4294
+ ];
4295
+ HeaderNavigationItemComponent.propDecorators = {
4296
+ href: [{ type: i0.Input }],
4297
+ routerLink: [{ type: i0.Input }],
4298
+ fragment: [{ type: i0.Input }],
4299
+ id: [{ type: i0.Input }],
4300
+ active: [{ type: i0.Input }],
4301
+ disabled: [{ type: i0.Input }]
4302
+ };
4303
+
4304
+ var HeaderNavigationComponent = /** @class */ (function (_super) {
4305
+ __extends(HeaderNavigationComponent, _super);
4306
+ function HeaderNavigationComponent() {
4307
+ return _super !== null && _super.apply(this, arguments) || this;
4308
+ }
4309
+ HeaderNavigationComponent.prototype.ngAfterContentInit = function () {
4310
+ var items = this.getItems();
4311
+ if (!items || items.length === 0) {
4312
+ throw new Error('Header-navigation items are required');
4313
+ }
4314
+ };
4315
+ HeaderNavigationComponent.prototype.getItemId = function (item, index) {
4316
+ var prefix = this.idPrefix ? this.idPrefix : 'header-nav-item';
4317
+ var suffix = index > 0 ? '-' + index : '';
4318
+ return item.id ? item.id : prefix + suffix;
4319
+ };
4320
+ HeaderNavigationComponent.prototype.getItems = function () {
4321
+ return this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;
4322
+ };
4323
+ return HeaderNavigationComponent;
4324
+ }(AccessibilityComponent));
4325
+ HeaderNavigationComponent.decorators = [
4326
+ { type: i0.Component, args: [{
4327
+ selector: 'desy-header-navigation',
4328
+ template: "<nav [class]=\"classes ? classes : 'hidden lg:block'\"\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 <ul class=\"ml-sm flex flex-wrap items-baseline uppercase\">\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n <li *ngIf=\"item\">\r\n\r\n <!-- Active + routerlink -->\r\n <a *ngIf=\"item.active && (item.routerLink || !item.href)\" [id]=\"getItemId(item, i)\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 font-bold text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\" aria-current=\"page\">\r\n <strong>\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </a>\r\n\r\n <!-- Active + href -->\r\n <a *ngIf=\"item.active && !item.routerLink && item.href\" [id]=\"getItemId(item, i)\" [href]=\"item.href\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 font-bold text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\" aria-current=\"page\">\r\n <strong>\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </a>\r\n\r\n <!-- Not active + routerlink -->\r\n <a *ngIf=\"!item.active && (item.routerLink || !item.href)\" [id]=\"getItemId(item, i)\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\" [attr.aria-disabled]=\"item.disabled ? item.disabled : null\" [attr.tabindex]=\"item.disabled ? -1 : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </a>\r\n\r\n <!-- Not active + href -->\r\n <a *ngIf=\"!item.active && !item.routerLink && item.href\" [id]=\"getItemId(item, i)\" [href]=\"item.href\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\" [attr.aria-disabled]=\"item.disabled ? item.disabled : null\" [attr.tabindex]=\"item.disabled ? -1 : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n"
4329
+ },] }
4330
+ ];
4331
+ HeaderNavigationComponent.propDecorators = {
4332
+ idPrefix: [{ type: i0.Input }],
4333
+ classes: [{ type: i0.Input }],
4334
+ items: [{ type: i0.Input }],
4335
+ itemComponents: [{ type: i0.ContentChildren, args: [HeaderNavigationItemComponent,] }]
4336
+ };
4337
+
4338
+ var NavItemComponent = /** @class */ (function (_super) {
4339
+ __extends(NavItemComponent, _super);
4340
+ function NavItemComponent() {
4341
+ var _this = _super.apply(this, __spread(arguments)) || this;
4342
+ _this.clickEvent = new i0.EventEmitter();
4343
+ _this.activeChange = new i0.EventEmitter();
4344
+ return _this;
4345
+ }
4346
+ return NavItemComponent;
4347
+ }(ContentBaseComponent));
4348
+ NavItemComponent.decorators = [
4349
+ { type: i0.Component, args: [{
4350
+ selector: 'desy-nav-item',
4351
+ template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n"
4352
+ },] }
4353
+ ];
4354
+ NavItemComponent.propDecorators = {
4355
+ id: [{ type: i0.Input }],
4356
+ active: [{ type: i0.Input }],
4357
+ classes: [{ type: i0.Input }],
4358
+ title: [{ type: i0.Input }],
4359
+ href: [{ type: i0.Input }],
4360
+ routerLink: [{ type: i0.Input }],
4361
+ fragment: [{ type: i0.Input }],
4362
+ target: [{ type: i0.Input }],
4363
+ disabled: [{ type: i0.Input }],
4364
+ divider: [{ type: i0.Input }],
4365
+ clickEvent: [{ type: i0.Output }],
4366
+ activeChange: [{ type: i0.Output }]
4367
+ };
4368
+
4369
+ var NavComponent = /** @class */ (function (_super) {
4370
+ __extends(NavComponent, _super);
4371
+ function NavComponent() {
4372
+ var _this = _super.apply(this, __spread(arguments)) || this;
4373
+ _this.hasNav = true;
4374
+ _this.clickEvent = new i0.EventEmitter();
4375
+ return _this;
4376
+ }
4377
+ NavComponent.prototype.onClick = function (event, item) {
4378
+ var itemsActiveChange = [];
4379
+ if (!item.active) {
4380
+ itemsActiveChange.push(item);
4381
+ }
4382
+ var itemList = this.getItemList();
4383
+ itemList.forEach(function (i) {
4384
+ if (i.active && i !== item) {
4385
+ itemsActiveChange.push(i);
4386
+ }
4387
+ i.active = false;
4388
+ });
4389
+ item.active = true;
4390
+ // Se emite el evento sólo para los items cuyo valor de active ha sido modificado
4391
+ itemsActiveChange.forEach(function (i) {
4392
+ if (i instanceof NavItemComponent) {
4393
+ i.activeChange.emit(i.active);
4394
+ }
4395
+ });
4396
+ this.clickEvent.emit({ item: item, event: event });
4397
+ if (item instanceof NavItemComponent) {
4398
+ item.clickEvent.emit({ item: item, event: event });
4399
+ }
4400
+ };
4401
+ NavComponent.prototype.ngOnChanges = function (changes) {
4402
+ if (!this.idPrefix) {
4403
+ throw new Error("idPrefix is required");
4404
+ }
4405
+ };
4406
+ NavComponent.prototype.getItemList = function () {
4407
+ var itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;
4408
+ if (!itemList || itemList.length === 0) {
4409
+ throw new Error("items are required");
4410
+ }
4411
+ itemList.forEach(function (element) {
4412
+ if (!element.href && !element.routerLink) {
4413
+ throw new Error("href or routerLink are required");
4414
+ }
4415
+ });
4416
+ return itemList;
4417
+ };
4418
+ NavComponent.prototype.handleContentEmpty = function (position) {
4419
+ throw new Error("item content, html or text are required at position " + position);
4420
+ };
4421
+ NavComponent.prototype.getItemId = function (item, index) {
4422
+ var id;
4423
+ if (item.id) {
4424
+ id = item.id;
4425
+ }
4426
+ else if (index === 0) {
4427
+ id = this.getIdPrefix();
4428
+ }
4429
+ else {
4430
+ id = this.getIdPrefix() + '-' + index;
4431
+ }
4432
+ return id;
4433
+ };
4434
+ NavComponent.prototype.getIdPrefix = function () {
4435
+ return this.idPrefix ? this.idPrefix : 'nav-item';
4436
+ };
4437
+ return NavComponent;
4438
+ }(AccessibilityComponent));
4439
+ NavComponent.decorators = [
4440
+ { type: i0.Component, args: [{
4441
+ selector: 'desy-nav',
4442
+ template: "<ng-template #innerHtml>\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li>\r\n <span *ngIf=\"item.active\"\r\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex\"\r\n (click)=\"onClick($event, item)\">\r\n <strong>\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <a *ngIf=\"!item.active && item.href\"\r\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\"\r\n (click)=\"onClick($event, item)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!item.active && !item.href\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (click)=\"onClick($event, item)\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n\r\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\r\n [class]=\"['text-sm', classes] | makeHtmlList\"\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-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n</ul>\r\n<ng-template #wrapIntoNav>\r\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\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 <ul>\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ul>\r\n </nav>\r\n</ng-template>\r\n"
4443
+ },] }
4444
+ ];
4445
+ NavComponent.propDecorators = {
4446
+ hasNav: [{ type: i0.Input }],
4447
+ idPrefix: [{ type: i0.Input }],
4448
+ items: [{ type: i0.Input }],
4449
+ classes: [{ type: i0.Input }],
4450
+ clickEvent: [{ type: i0.Output }],
4451
+ itemComponentList: [{ type: i0.ContentChildren, args: [NavItemComponent,] }]
4452
+ };
4453
+
4454
+ var HeaderSubnavComponent = /** @class */ (function () {
4455
+ function HeaderSubnavComponent() {
4456
+ this.isOpen = false;
4457
+ this.clickOutsideEnabled = false;
4458
+ }
4459
+ HeaderSubnavComponent.prototype.toggleOpen = function () {
4460
+ var _this = this;
4461
+ this.isOpen = !this.isOpen;
4462
+ setTimeout(function () { return _this.clickOutsideEnabled = _this.isOpen; });
4463
+ };
4464
+ HeaderSubnavComponent.prototype.onKeydownEscape = function () {
4465
+ this.isOpen = false;
4466
+ this.clickOutsideEnabled = false;
4467
+ document.getElementById('header-subnav-button').focus();
4468
+ };
4469
+ HeaderSubnavComponent.prototype.hasSubnavItems = function () {
4470
+ return this.nav && this.nav.getItemList().length > 0;
4471
+ };
4472
+ HeaderSubnavComponent.prototype.overrideNavParams = function (nav) {
4473
+ nav.hasNav = true;
4474
+ nav.idPrefix = 'header-subnav-nav-item';
4475
+ nav.ariaLabel = 'Aplicaciones';
4476
+ nav.classes = 'w-max max-w-64';
4477
+ // nav.id = 'id-subnav-nav'; // No existe como param de navComponent
4478
+ };
4479
+ HeaderSubnavComponent.prototype.handleEmptyContent = function (element) {
4480
+ throw new Error(element + " content is required");
4481
+ };
4482
+ return HeaderSubnavComponent;
4483
+ }());
4484
+ HeaderSubnavComponent.decorators = [
4485
+ { type: i0.Component, args: [{
4486
+ selector: 'desy-header-subnav',
4487
+ template: "\r\n<ng-template #templateNav>\r\n <ng-content select=\"desy-nav\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #temlpateContent>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n<div class=\"hidden lg:flex items-center\" *ngIf=\"hasSubnavItems(); else noItems\">\r\n <div class=\"ml-3 relative\">\r\n <h2 id=\"subnav-title\">\r\n <button id=\"header-subnav-button\" (click)=\"toggleOpen()\" class=\"pr-2 pl-3 py-4 border-r border-l border-neutral-base text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n aria-haspopup=\"true\" [attr.aria-expanded]=\"isOpen\" (keydown.escape)=\"onKeydownEscape()\">\r\n <span class=\"inline-block align-middle\" (desyContentEmpty)=\"handleEmptyContent('Header-subnav')\">\r\n <ng-container *ngTemplateOutlet=\"temlpateContent\"></ng-container>\r\n </span>\r\n <svg class=\"inline-block align-middle\" viewBox=\"0 0 96 96\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\">\r\n <g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g>\r\n </svg>\r\n </button>\r\n </h2>\r\n <div *ngIf=\"isOpen\" @toggleDropdown\r\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"toggleOpen()\"\r\n (keydown.escape)=\"onKeydownEscape()\"\r\n class=\"origin-top-left absolute left-0 max-h-64 mt-2 border border-neutral-base overflow-y-auto shadow-md\">\r\n <div class=\"bg-white shadow-xs\" (desyContentEmpty)=\"handleEmptyContent('Header-subnav nav')\">\r\n <ng-container *ngTemplateOutlet=\"templateNav\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #noItems>\r\n <p class=\"hidden lg:inline-block align-middle ml-4 px-3 py-4 border-r border-l border-neutral-base text-sm text-white\"\r\n (desyContentEmpty)=\"handleEmptyContent('Header-subnav')\">\r\n <span #desyContentEmptyIgnore class=\"sr-only\">Aplicaci\u00F3n actual: </span>\r\n <ng-container *ngTemplateOutlet=\"temlpateContent\"></ng-container>\r\n </p>\r\n</ng-template>\r\n\r\n",
4488
+ animations: [
4489
+ animations.trigger('toggleDropdown', [
4490
+ animations.state('void', animations.style({
4491
+ opacity: '0.0',
4492
+ transform: 'scale(0.95)'
4493
+ })),
4494
+ animations.state('*', animations.style({
4495
+ opacity: '1.0',
4496
+ transform: 'scale(1.0)'
4497
+ })),
4498
+ animations.transition(':enter', [
4499
+ animations.animate('100ms ease-out')
4500
+ ]),
4501
+ animations.transition(':leave', [
4502
+ animations.animate('75ms ease-in')
4503
+ ])
4504
+ ])
4505
+ ]
4506
+ },] }
4507
+ ];
4508
+ HeaderSubnavComponent.propDecorators = {
4509
+ classes: [{ type: i0.HostBinding, args: ['class',] }, { type: i0.Input }],
4510
+ nav: [{ type: i0.ContentChildren, args: [NavComponent,] }]
4511
+ };
4512
+ __decorate([
4513
+ DesyContentChild({ onSetCallbackName: 'overrideNavParams' })
4514
+ ], HeaderSubnavComponent.prototype, "nav", void 0);
4515
+
4516
+ var HeaderDropdownComponent = /** @class */ (function () {
4517
+ function HeaderDropdownComponent() {
4518
+ this.hostClass = 'hidden lg:block';
4519
+ this.isOpen = false;
4520
+ this.clickOutsideEnabled = false;
4521
+ }
4522
+ HeaderDropdownComponent.prototype.toggleOpen = function () {
4523
+ var _this = this;
4524
+ this.isOpen = !this.isOpen;
4525
+ setTimeout(function () { return _this.clickOutsideEnabled = _this.isOpen; });
4526
+ };
4527
+ HeaderDropdownComponent.prototype.onKeydownEscape = function () {
4528
+ this.isOpen = false;
4529
+ this.clickOutsideEnabled = false;
4530
+ document.getElementById('header-dropdown-button').focus();
4531
+ };
4532
+ HeaderDropdownComponent.prototype.overrideNavParams = function (nav) {
4533
+ nav.hasNav = true;
4534
+ nav.idPrefix = 'header-dropdown-nav-item';
4535
+ nav.ariaLabel = 'Menú de usuario';
4536
+ nav.classes = 'w-max max-w-64';
4537
+ // nav.id = 'id-dropdown-nav'; // No existe como param de navComponent
4538
+ };
4539
+ /**
4540
+ * Estable las clases del elemento html del componente
4541
+ */
4542
+ HeaderDropdownComponent.prototype.setHostClass = function () {
4543
+ this.hostClass = this.classes ? this.classes : 'hidden lg:block';
4544
+ };
4545
+ HeaderDropdownComponent.prototype.handleEmptyContent = function (element) {
4546
+ throw new Error(element + " content is required");
4547
+ };
4548
+ return HeaderDropdownComponent;
4549
+ }());
4550
+ HeaderDropdownComponent.decorators = [
4551
+ { type: i0.Component, args: [{
4552
+ selector: 'desy-header-dropdown',
4553
+ template: "<div class=\"ml-4 flex items-center lg:ml-6\">\r\n <div class=\"ml-3 relative\">\r\n <div>\r\n <button id=\"header-dropdown-button\" (click)=\"toggleOpen()\" class=\"inline-flex items-center px-3 py-4 text-sm text-white focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n aria-haspopup=\"true\" [attr.aria-expanded]=\"isOpen\" (keydown.escape)=\"onKeydownEscape()\">\r\n <span class=\"inline-block align-middle text-right\" (desyContentEmpty)=\"handleEmptyContent('Header-dropdown')\">\r\n <ng-content></ng-content>\r\n </span> <svg class=\"inline-block align-middle\" viewBox=\"0 0 96 96\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </button>\r\n </div>\r\n <div *ngIf=\"isOpen\" @toggleDropdown (keydown.escape)=\"onKeydownEscape()\"\r\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"toggleOpen()\"\r\n class=\"origin-top-right absolute right-0 max-h-64 mt-2 border border-neutral-base overflow-y-auto shadow-md\">\r\n <div class=\"bg-white shadow-xs\" (desyContentEmpty)=\"handleEmptyContent('Header-dropdown nav')\">\r\n <ng-content select=\"desy-nav\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
4554
+ animations: [
4555
+ animations.trigger('toggleDropdown', [
4556
+ animations.state('void', animations.style({
4557
+ opacity: '0.0',
4558
+ transform: 'scale(0.95)'
4559
+ })),
4560
+ animations.state('*', animations.style({
4561
+ opacity: '1.0',
4562
+ transform: 'scale(1.0)'
4563
+ })),
4564
+ animations.transition(':enter', [
4565
+ animations.animate('100ms ease-out')
4566
+ ]),
4567
+ animations.transition(':leave', [
4568
+ animations.animate('75ms ease-in')
4569
+ ])
4570
+ ])
4571
+ ]
4572
+ },] }
4573
+ ];
4574
+ HeaderDropdownComponent.propDecorators = {
4575
+ classes: [{ type: i0.Input }],
4576
+ hostClass: [{ type: i0.HostBinding, args: ['class',] }],
4577
+ nav: [{ type: i0.ContentChildren, args: [NavComponent,] }]
4578
+ };
4579
+ __decorate([
4580
+ DesyOnInputChange('setHostClass')
4581
+ ], HeaderDropdownComponent.prototype, "classes", void 0);
4582
+ __decorate([
4583
+ DesyContentChild({ onSetCallbackName: 'overrideNavParams' })
4584
+ ], HeaderDropdownComponent.prototype, "nav", void 0);
4585
+
4586
+ var SkipLinkComponent = /** @class */ (function (_super) {
4587
+ __extends(SkipLinkComponent, _super);
4588
+ function SkipLinkComponent(changeDetectorRef) {
4589
+ var _this = _super.call(this) || this;
4590
+ _this.changeDetectorRef = changeDetectorRef;
4591
+ _this.hasContent = true;
4592
+ return _this;
4593
+ }
4594
+ SkipLinkComponent.prototype.getClassNames = function () {
4595
+ var classNames = 'c-skip-link sr-only active:not-sr-only focus:not-sr-only focus:outline-none focus:shadow-outline-focus block p-base bg-warning-base text-center text-black underline';
4596
+ if (this.classes) {
4597
+ classNames += ' ' + this.classes;
4598
+ }
4599
+ return classNames;
4600
+ };
4601
+ SkipLinkComponent.prototype.handleNoContent = function () {
4602
+ if (!this.html && !this.text) {
4603
+ throw new Error('skip-link content, html or text are required');
4604
+ }
4605
+ else {
4606
+ this.hasContent = false;
4607
+ this.changeDetectorRef.detectChanges();
4608
+ }
4609
+ };
4610
+ return SkipLinkComponent;
4611
+ }(AccessibilityComponent));
4612
+ SkipLinkComponent.decorators = [
4613
+ { type: i0.Component, args: [{
4614
+ selector: 'desy-skip-link',
4615
+ template: "<a *ngIf=\"hasContent\"\r\n [routerLink]=\"[]\" [fragment]=\"fragment ? fragment : 'content'\"\r\n [class]=\"getClassNames()\"\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 (desyContentEmpty)=\"handleNoContent()\">\r\n <ng-content></ng-content>\r\n</a>\r\n\r\n<a *ngIf=\"!hasContent\"\r\n [routerLink]=\"[]\" [fragment]=\"fragment ? fragment : 'content'\"\r\n [class]=\"getClassNames()\"\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 <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\r\n</a>\r\n"
4616
+ },] }
4617
+ ];
4618
+ SkipLinkComponent.ctorParameters = function () { return [
4619
+ { type: i0.ChangeDetectorRef }
4620
+ ]; };
4621
+ SkipLinkComponent.propDecorators = {
4622
+ html: [{ type: i0.Input }],
4623
+ text: [{ type: i0.Input }],
4624
+ fragment: [{ type: i0.Input }],
4625
+ classes: [{ type: i0.Input }],
4626
+ id: [{ type: i0.Input }]
4627
+ };
4628
+
4629
+ var HeaderComponent = /** @class */ (function (_super) {
4630
+ __extends(HeaderComponent, _super);
4631
+ function HeaderComponent() {
4632
+ return _super !== null && _super.apply(this, arguments) || this;
4633
+ }
4634
+ HeaderComponent.prototype.overrideSkipLinkParams = function (skiplinkComponent) {
4635
+ skiplinkComponent.id = skiplinkComponent.id || 'skip-link';
4636
+ skiplinkComponent.text = 'Saltar al contenido principal';
4637
+ };
4638
+ HeaderComponent.prototype.overrideNavigationParams = function (navigationComponent) {
4639
+ navigationComponent.idPrefix = 'header-nav-item';
4640
+ navigationComponent.ariaLabel = 'Menú principal';
4641
+ };
4642
+ return HeaderComponent;
4643
+ }(AccessibilityComponent));
4644
+ HeaderComponent.decorators = [
4645
+ { type: i0.Component, args: [{
4646
+ selector: 'desy-header',
4647
+ template: "<header [ngClass]=\"classes\"\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 <div [ngClass]=\"containerClasses\">\r\n <nav [attr.aria-labelledby]=\"skiplinkComponent ? skiplinkComponent.id : 'skip-link'\">\r\n <ng-content select=\"desy-skip-link\"></ng-content>\r\n <desy-skip-link *ngIf=\"!skiplinkComponent\" text=\"Saltar al contenido principal\" [id]=\"'skip-link'\"></desy-skip-link>\r\n </nav>\r\n <div class=\"flex h-1 bg-red-700\">\r\n <div class=\"flex-auto bg-yellow-300 h-full\"></div>\r\n <div class=\"flex-auto bg-red-500 h-full\"></div>\r\n <div class=\"flex-auto bg-red-800 h-full\"></div>\r\n </div>\r\n <div class=\"bg-black\">\r\n <div class=\"container mx-auto px-base\">\r\n <div class=\"flex items-center justify-between min-h-14\">\r\n <div class=\"flex flex-wrap items-center\">\r\n <div class=\"flex items-center flex-shrink-0\">\r\n <a *ngIf=\"homepageRouterLink || !homepageUrl\" [routerLink]=\"homepageRouterLink\" [fragment]=\"homepageFragment\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!homepageRouterLink && homepageUrl\" [href]=\"homepageUrl | externalHref\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n\r\n <ng-content select=\"desy-header-subnav\"></ng-content>\r\n <desy-header-subnav *ngIf=\"!subnavComponent && subnavData && (subnavData.text || subnavData.html)\" [classes]=\"subnavData.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ html: subnavData.html, text: subnavData.text }\"></ng-container>\r\n <desy-nav *ngIf=\"subnavData && subnavData.items && subnavData.items.length > 0\"\r\n [hasNav]=\"true\"\r\n [idPrefix]=\"'header-subnav-nav-item'\"\r\n [classes]=\"'w-max max-w-64'\"\r\n [items]=\"subnavData.items\"\r\n [id]=\"'id-subnav-nav'\"\r\n [ariaLabel]=\"'Aplicaciones'\"></desy-nav>\r\n </desy-header-subnav>\r\n </div>\r\n\r\n <ng-content select=\"desy-header-navigation\"></ng-content>\r\n <desy-header-navigation *ngIf=\"!navigationComponent && navigationData && navigationData.items && navigationData.items.length > 0\"\r\n [idPrefix]=\"'header-nav-item'\"\r\n [classes]=\"navigationData.classes\"\r\n [items]=\"navigationData.items\"\r\n [ariaLabel]=\"'Men\u00FA principal'\"></desy-header-navigation>\r\n </div>\r\n\r\n <ng-content select=\"desy-header-dropdown\"></ng-content>\r\n <ng-container *ngIf=\"!dropdownComponent && dropdownData && dropdownData.items && dropdownData.items.length > 0\">\r\n <desy-header-dropdown [classes]=\"dropdownData.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ html: dropdownData.html, text: dropdownData.text }\"></ng-container>\r\n <desy-nav [hasNav]=\"true\"\r\n [idPrefix]=\"'header-dropdown-nav-item'\"\r\n [classes]=\"'w-max max-w-64'\"\r\n [items]=\"dropdownData.items\"\r\n [id]=\"'id-dropdown-nav'\"\r\n [ariaLabel]=\"'Men\u00FA de usuario'\"></desy-nav>\r\n </desy-header-dropdown>\r\n </ng-container>\r\n\r\n <ng-content select=\"desy-header-offcanvas\"></ng-content>\r\n <ng-container *ngIf=\"!offcanvasComponent && offcanvasData\">\r\n <desy-header-offcanvas [classes]=\"offcanvasData.classes\">\r\n <desy-header-offcanvas-button>\r\n <ng-container *desyCustomInnerContent=\"{ html: offcanvasData.html, text: offcanvasData.text }\"></ng-container>\r\n </desy-header-offcanvas-button>\r\n <desy-header-offcanvas-close-button>{{ offcanvasData.textClose }}</desy-header-offcanvas-close-button>\r\n <desy-content>\r\n <ng-container *desyCustomInnerContent=\"{ template: offcanvasData.contentHtml }\"></ng-container>\r\n </desy-content>\r\n </desy-header-offcanvas>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n"
4648
+ },] }
4649
+ ];
4650
+ HeaderComponent.propDecorators = {
4651
+ classes: [{ type: i0.Input }],
4652
+ containerClasses: [{ type: i0.Input }],
4653
+ homepageUrl: [{ type: i0.Input }],
4654
+ homepageRouterLink: [{ type: i0.Input }],
4655
+ homepageFragment: [{ type: i0.Input }],
4656
+ expandedLogo: [{ type: i0.Input }],
4657
+ subnavData: [{ type: i0.Input }],
4658
+ navigationData: [{ type: i0.Input }],
4659
+ dropdownData: [{ type: i0.Input }],
4660
+ offcanvasData: [{ type: i0.Input }],
4661
+ skiplinkComponent: [{ type: i0.ContentChildren, args: [SkipLinkComponent,] }],
4662
+ subnavComponent: [{ type: i0.ContentChildren, args: [HeaderSubnavComponent,] }],
4663
+ navigationComponent: [{ type: i0.ContentChildren, args: [HeaderNavigationComponent,] }],
4664
+ dropdownComponent: [{ type: i0.ContentChildren, args: [HeaderDropdownComponent,] }],
4665
+ offcanvasComponent: [{ type: i0.ContentChildren, args: [HeaderOffcanvasComponent,] }]
4666
+ };
4667
+ __decorate([
4668
+ DesyContentChild({ onSetCallbackName: 'overrideSkipLinkParams' })
4669
+ ], HeaderComponent.prototype, "skiplinkComponent", void 0);
4670
+ __decorate([
4671
+ DesyContentChild()
4672
+ ], HeaderComponent.prototype, "subnavComponent", void 0);
4673
+ __decorate([
4674
+ DesyContentChild({ onSetCallbackName: 'overrideNavigationParams' })
4675
+ ], HeaderComponent.prototype, "navigationComponent", void 0);
4676
+ __decorate([
4677
+ DesyContentChild()
4678
+ ], HeaderComponent.prototype, "dropdownComponent", void 0);
4679
+ __decorate([
4680
+ DesyContentChild()
4681
+ ], HeaderComponent.prototype, "offcanvasComponent", void 0);
4682
+
4683
+ var FooterNavigationItemComponent = /** @class */ (function (_super) {
4684
+ __extends(FooterNavigationItemComponent, _super);
4685
+ function FooterNavigationItemComponent() {
4686
+ return _super !== null && _super.apply(this, arguments) || this;
4687
+ }
4688
+ return FooterNavigationItemComponent;
4689
+ }(ContentBaseComponent));
4690
+ FooterNavigationItemComponent.decorators = [
4691
+ { type: i0.Component, args: [{
4692
+ selector: 'desy-footer-navigation-item',
4693
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
4694
+ },] }
4695
+ ];
4696
+ FooterNavigationItemComponent.propDecorators = {
4697
+ href: [{ type: i0.Input }],
4698
+ routerLink: [{ type: i0.Input }],
4699
+ fragment: [{ type: i0.Input }]
4700
+ };
4701
+
4702
+ var FooterNavigationComponent = /** @class */ (function () {
4703
+ function FooterNavigationComponent() {
4704
+ }
4705
+ return FooterNavigationComponent;
4706
+ }());
4707
+ FooterNavigationComponent.decorators = [
4708
+ { type: i0.Component, args: [{
4709
+ selector: 'desy-footer-navigation',
4710
+ template: ""
4711
+ },] }
4712
+ ];
4713
+ FooterNavigationComponent.propDecorators = {
4714
+ title: [{ type: i0.Input }],
4715
+ columns: [{ type: i0.Input }],
4716
+ itemComponents: [{ type: i0.ContentChildren, args: [FooterNavigationItemComponent,] }]
4717
+ };
4718
+
4719
+ var FooterMetaItemComponent = /** @class */ (function (_super) {
4720
+ __extends(FooterMetaItemComponent, _super);
4721
+ function FooterMetaItemComponent() {
4722
+ return _super !== null && _super.apply(this, arguments) || this;
4723
+ }
4724
+ return FooterMetaItemComponent;
4725
+ }(ContentBaseComponent));
4726
+ FooterMetaItemComponent.decorators = [
4727
+ { type: i0.Component, args: [{
4728
+ selector: 'desy-footer-meta-item',
4729
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
4730
+ },] }
4731
+ ];
4732
+ FooterMetaItemComponent.propDecorators = {
4733
+ href: [{ type: i0.Input }],
4734
+ routerLink: [{ type: i0.Input }],
4735
+ fragment: [{ type: i0.Input }]
4736
+ };
4737
+
4738
+ var FooterMetaComponent = /** @class */ (function (_super) {
4739
+ __extends(FooterMetaComponent, _super);
4740
+ function FooterMetaComponent() {
4741
+ return _super !== null && _super.apply(this, arguments) || this;
4742
+ }
4743
+ return FooterMetaComponent;
4744
+ }(ContentBaseComponent));
4745
+ FooterMetaComponent.decorators = [
3654
4746
  { type: i0.Component, args: [{
3655
- selector: 'desy-header',
3656
- template: "<header [ngClass]=\"classes\"\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 <div [ngClass]=\"containerClasses\">\r\n <nav aria-labelledby=\"skip-link\">\r\n <desy-skip-link text=\"Saltar al contenido principal\" [id]=\"'skip-link'\"></desy-skip-link>\r\n </nav>\r\n <div class=\"flex h-1 bg-red-700\">\r\n <div class=\"flex-auto bg-yellow-300 h-full\"></div>\r\n <div class=\"flex-auto bg-red-500 h-full\"></div>\r\n <div class=\"flex-auto bg-red-800 h-full\"></div>\r\n </div>\r\n <div class=\"bg-black\">\r\n <div class=\"container mx-auto px-base\">\r\n <div class=\"flex items-center justify-between min-h-14\">\r\n <div class=\"flex flex-wrap items-center\">\r\n <div class=\"flex items-center flex-shrink-0\">\r\n <a *ngIf=\"homepageRouterLink || !homepageUrl\" [routerLink]=\"homepageRouterLink\" [fragment]=\"homepageFragment\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!homepageRouterLink && homepageUrl\" [href]=\"homepageUrl | externalHref\" class=\"text-white focus:outline-none focus:shadow-outline-warning\" title=\"Ir a la p\u00E1gina de inicio\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 216.878 51.894\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/><path data-name=\"typo\" d=\"M59.352 45.091V32.36h2.074c4.307 0 6.668 2.266 6.668 6.382 0 4.212-2.265 6.349-6.7 6.349zm15.489-16.974v21.281h14.1v-4.307h-9.348v-4.85h9.253v-4.308h-9.253v-3.542h9.348v-4.275zm32.389 0l-7.757 21.282h5.041l2.3-6.477h6.509l2.265 6.477h5.138l-7.912-21.281zm2.807 4.4l-1.978 6.287h3.989zm63.051 6h-4.754v6.7a6.262 6.262 0 01-2.042.288c-3.638 0-6.317-2.84-6.317-6.7 0-4.147 2.84-6.923 7.051-6.923a11.142 11.142 0 016.062 1.851v-4.849a17.388 17.388 0 00-6.477-1.276c-6.891 0-11.677 4.626-11.677 11.262 0 6.54 4.689 10.976 11.677 10.976a19.329 19.329 0 006.477-1.117zm24.023.192c0-6.35-4.722-10.976-11.167-10.976a11.024 11.024 0 00.16 22.047c6.445.001 11.007-4.593 11.007-11.07zm-11.1-6.637c-3.573 0-5.966 2.713-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.681 5.934-6.7s-2.428-6.699-6.033-6.699zm12.94-3.956v21.281h4.85v-13.56l8.58 13.56h4.5V28.116h-4.849l.006 13.235-8.237-13.235zm-126.6-15h-4.754v6.7a6.266 6.266 0 01-2.042.287c-3.637 0-6.317-2.84-6.317-6.7 0-4.148 2.84-6.923 7.051-6.923a11.152 11.152 0 016.062 1.85V3.481a17.386 17.386 0 00-6.477-1.277c-6.891 0-11.677 4.626-11.677 11.263 0 6.54 4.69 10.974 11.677 10.974a19.342 19.342 0 006.477-1.116zm24 .191c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.159 22.046c6.437-.002 11-4.597 11-11.074zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.457 6.7 6.062 6.7c3.573 0 5.935-2.68 5.935-6.7s-2.437-6.702-6.042-6.702zm12.695-3.956v21.281h8.806c4.69 0 7.433-2.33 7.433-6.318 0-2.743-1.563-4.721-4.435-5.551a4.665 4.665 0 002.9-4.371c.032-3.382-2.265-5.041-6.859-5.041zm7.083 7.944c2.074 0 2.9-.575 2.9-2.01 0-1.372-.8-1.882-3.062-1.882h-2.074v3.892zm.638 9c2.36 0 3.381-.734 3.381-2.457 0-1.786-1.053-2.489-3.573-2.489h-2.679v4.946zm14.274-16.942h-4.768v21.281h4.754zm2.07 0v21.281h14.1v-4.307h-9.349v-4.85h9.253v-4.307h-9.253V6.993h9.349V2.718zm75.145 10.592c0-6.349-4.722-10.975-11.167-10.975a11.023 11.023 0 00.16 22.046c6.435-.004 10.997-4.599 10.997-11.076zm-11.1-6.636c-3.573 0-5.966 2.711-5.966 6.7s2.456 6.7 6.062 6.7c3.573 0 5.934-2.68 5.934-6.7s-2.438-6.704-6.043-6.704zm-37.783 32.132l-2.01-6.287-1.978 6.287zM126.43 49.398v-8.743h.606c3.063 0 3.382.319 5.423 5.583a10.7 10.7 0 00.447 1.085l.415.989a9.523 9.523 0 00.51 1.085h6.911l2.3-6.477h6.509l2.265 6.477h5.137l-7.912-21.281h-5.583l-6.288 17.258a89.817 89.817 0 01-1.549-3.411c-.83-1.819-1.308-2.362-2.84-3a5.086 5.086 0 003.892-5.106c0-3.828-2.52-5.743-7.593-5.743h-7.53v21.281zm0-12.763h2.105c2.042 0 3.063-.734 3.063-2.265s-.926-2.2-3-2.2h-2.17zm16.613-12.643V15.25h.605c3.063 0 3.382.319 5.424 5.583a10.427 10.427 0 00.447 1.085l.415.989a9.465 9.465 0 00.51 1.085h9.578l.027-13.652 8.555 13.652h4.5V2.711h-4.849l.021 13.056-8.252-13.056h-4.851v19.812a44.3 44.3 0 01-2.942-5.962c-.829-1.818-1.307-2.36-2.839-3a5.085 5.085 0 003.892-5.1c0-3.829-2.521-5.743-7.594-5.743h-7.529v21.281zm0-12.762h2.106c2.041 0 3.062-.734 3.062-2.265s-.924-2.2-3-2.2h-2.169zM54.53 28.117v21.281h7.114c7.21 0 11.454-3.956 11.454-10.657 0-6.669-4.339-10.625-11.709-10.625z\" fill-rule=\"evenodd\"/></svg>\r\n <svg class=\"w-8 h-8 fill-current\" [ngClass]=\"{'sm:hidden': expandedLogo}\" viewBox=\"0 0 51.894 51.894\" width=\"32\" height=\"32\" aria-label=\"Gobierno de Arag\u00F3n\" role=\"img\"><title>Ir a la p\u00E1gina de inicio</title><path data-name=\"img\" d=\"M51.89 51.892H0V0h51.89zm-2.5-2.494v-8.96L38.906 42.33a17.743 17.743 0 01-3.136.278 18.211 18.211 0 01-9.225-2.517 21.42 21.42 0 00-9.317-2.082 20.786 20.786 0 00-4.9.571c-.743.15-1.526.292-2.282.429l-.125.023-.613.112-4.928.913-1.875.382V48.934l1.527-.247 22.517-4.133a17.458 17.458 0 013.236-.3 18.06 18.06 0 017.317 1.527l5.442 2.854a9.431 9.431 0 002.372.679 7.837 7.837 0 001.147.083h.029a16 16 0 003.3-.464zm0 0zm0-8.96V27.195a8.1 8.1 0 00-4.062-1.2 7.451 7.451 0 00-1.162.094l-10.852 2.009c-.026 0-2.878.518-4.281.779L17.12 31.048a18.266 18.266 0 01-2.5.173 18.246 18.246 0 01-7.67-1.683l-4.447-2.34V33.636l1.511-.281a19.009 19.009 0 014.442-.517 17.882 17.882 0 018.168 1.894 23.042 23.042 0 0010.673 2.617 23.64 23.64 0 002.884-.178l19.21-3.535zm0-13.243v-8.778l-1.341.282a19.092 19.092 0 01-4.442.516 17.873 17.873 0 01-8.169-1.894 23.049 23.049 0 00-10.672-2.618 23.464 23.464 0 00-2.884.179L2.5 18.417v6.538a7.558 7.558 0 003.968 1.128 9.406 9.406 0 001.426-.116l10.852-2.008c.027-.005 2.876-.518 4.28-.78l11.914-2.174a18.122 18.122 0 012.5-.173 18.236 18.236 0 017.67 1.683l4.277 2.441v-4.427zm0-8.778V2.981l-7.4 1.524-7.35 1.328-7.035 1.277a23.976 23.976 0 01-5.306.62 16.834 16.834 0 01-4.517-.57 19.322 19.322 0 01-5.084-2.209 95.551 95.551 0 00-1.3-.712c-.285-.139-.571-.291-.846-.437h-.005a9.085 9.085 0 00-2.252-.954 7.331 7.331 0 00-1.918-.341H2.5v9c1.433-.237 2.593-.442 3.651-.647l7.517-1.345a19.656 19.656 0 012.63-.178 17.162 17.162 0 012.63.2 22.628 22.628 0 017.434 2.705 21.654 21.654 0 008.584 1.768h.006a20.746 20.746 0 003.173-.242l11.264-2.256v6.907zM2.5 2.98v-.472h2.95a14.929 14.929 0 00-2.949.473z\"/></svg>\r\n </a>\r\n <div *ngIf=\"subnavData && (subnavData.text || subnavData.html)\" [ngClass]=\"subnavData\">\r\n <desy-header-subnav [text]=\"subnavData.text\" [html]=\"subnavData.html\" [items]=\"subnavData.items\">\r\n <ng-container *ngIf=\"subnavData && subnavData.items && subnavData.items.length > 0\">\r\n <desy-nav [hasNav]=\"true\" idPrefix=\"header-subnav-nav-item\" [items]=\"subnavData.items\" [id]=\"'id-subnav-nav'\" [ariaLabel]=\"'Aplicaciones'\"></desy-nav>\r\n </ng-container>\r\n </desy-header-subnav>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"navigationData && navigationData.items && navigationData.items.length > 0\">\r\n <desy-header-navigation [idPrefix]=\"'header-nav-item'\"\r\n [classes]=\"navigationData.classes\"\r\n [items]=\"navigationData.items\"\r\n [ariaLabel]=\"'Men\u00FA principal'\"></desy-header-navigation>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"dropdownData && dropdownData.items && dropdownData.items.length > 0\">\r\n <div [class]=\"dropdownData.classes ? dropdownData.classes : 'hidden lg:block'\">\r\n <desy-header-dropdown [text]=\"dropdownData.text\" [html]=\"dropdownData.html\">\r\n <desy-nav [hasNav]=\"true\" idPrefix=\"header-dropdown-nav-item\" [items]=\"dropdownData.items\" [id]=\"'id-dropdown-nav'\" [ariaLabel]=\"'Men\u00FA de usuario'\"></desy-nav>\r\n </desy-header-dropdown>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"offcanvasData\">\r\n <desy-header-offcanvas-button [text]=\"offcanvasData.text\"\r\n [html]=\"offcanvasData.html\"\r\n [classes]=\"offcanvasData.classes\"\r\n [offcanvasText]=\"offcanvasData.textClose\"\r\n [offcanvasContentHtml]=\"offcanvasData.contentHtml\"></desy-header-offcanvas-button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n"
4747
+ selector: 'desy-footer-meta',
4748
+ template: ''
3657
4749
  },] }
3658
4750
  ];
3659
- HeaderComponent.propDecorators = {
3660
- classes: [{ type: i0.Input }],
3661
- containerClasses: [{ type: i0.Input }],
3662
- homepageUrl: [{ type: i0.Input }],
3663
- homepageRouterLink: [{ type: i0.Input }],
3664
- homepageFragment: [{ type: i0.Input }],
3665
- expandedLogo: [{ type: i0.Input }],
3666
- subnavData: [{ type: i0.Input }],
3667
- navigationData: [{ type: i0.Input }],
3668
- dropdownData: [{ type: i0.Input }],
3669
- offcanvasData: [{ type: i0.Input }]
3670
- };
4751
+ FooterMetaComponent.propDecorators = {
4752
+ visuallyHiddenTitle: [{ type: i0.Input }],
4753
+ contentComponent: [{ type: i0.ContentChildren, args: [ContentComponent,] }],
4754
+ itemComponents: [{ type: i0.ContentChildren, args: [FooterMetaItemComponent,] }]
4755
+ };
4756
+ __decorate([
4757
+ DesyContentChild()
4758
+ ], FooterMetaComponent.prototype, "contentComponent", void 0);
3671
4759
 
3672
4760
  var FooterComponent = /** @class */ (function (_super) {
3673
4761
  __extends(FooterComponent, _super);
3674
4762
  function FooterComponent() {
3675
4763
  return _super !== null && _super.apply(this, arguments) || this;
3676
4764
  }
4765
+ FooterComponent.prototype.getNavigationItems = function () {
4766
+ var navItems = this.navigationComponent && this.navigationComponent.length > 0 ? this.navigationComponent.toArray() : this.navigation;
4767
+ return navItems && navItems.length > 0 ? navItems : null;
4768
+ };
4769
+ FooterComponent.prototype.getNavigationItemItems = function (navigation) {
4770
+ return navigation instanceof FooterNavigationComponent ? navigation.itemComponents.toArray() : navigation.items;
4771
+ };
4772
+ FooterComponent.prototype.getMetaItems = function (meta) {
4773
+ return meta instanceof FooterMetaComponent ? meta.itemComponents.toArray() : meta.items;
4774
+ };
4775
+ FooterComponent.prototype.getMetaContent = function (meta) {
4776
+ return meta instanceof FooterMetaComponent ? meta.contentComponent : null;
4777
+ };
3677
4778
  return FooterComponent;
3678
4779
  }(AccessibilityComponent));
3679
4780
  FooterComponent.decorators = [
3680
4781
  { type: i0.Component, args: [{
3681
4782
  selector: 'desy-footer',
3682
- template: "<!-- footer -->\r\n<footer [class]=\"['py-base bg-neutral-lighter border-t border-neutral-base text-xs lg:text-sm text-neutral-dark', classes] | makeHtmlList\"\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 <div [class]=\"['container mx-auto px-base', containerClasses] | makeHtmlList\">\r\n <ng-container *ngIf=\"navigation && navigation.length != 0\">\r\n <div class=\"flex flex-wrap\">\r\n <div class=\"flex-1 mr-base\" *ngFor=\"let nav of navigation\">\r\n <h3 class=\"mb-base font-bold text-xl\">{{nav.title}}</h3>\r\n <ul [class]=\"'grid grid-cols-1 gap-base lg:grid-cols-' + nav.columns\">\r\n <li class=\"mb-xs\" *ngFor=\"let item of nav.items\">\r\n <ng-container *ngTemplateOutlet=\"item.href != null ? itemHref : itemRouterLink; context: {item: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <hr class=\"my-base border-t border-neutral-base\">\r\n </ng-container>\r\n <div class=\"flex flex-wrap flex-col lg:flex-row justify-between\">\r\n <div class=\"mb-base\">\r\n <ng-container *ngIf=\"meta\">\r\n <h2 class=\"sr-only\">{{(meta.visuallyHiddenTitle ? meta.visuallyHiddenTitle : 'Enlaces de pie de p\u00E1gina')}}</h2>\r\n <ul class=\"flex flex-col lg:flex-row lg:flex-wrap\" *ngIf=\"meta\">\r\n <li class=\"mb-sm mr-base\" *ngFor=\"let item of meta.items\">\r\n <ng-container *ngTemplateOutlet=\"item.href != null ? itemHref : itemRouterLink; context: {item: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"mb-sm\" *ngIf=\"meta.html || meta.text\">\r\n <p [desyInnerContent]=\"meta.html ? meta.html : meta.text\" [isHtml]=\"meta.html\"></p>\r\n </div>\r\n </ng-container>\r\n <div class=\"leading-tight\">\r\n <p>\r\n Todo el contenido bajo\r\n <a\r\n class=\"c-link c-link--neutral\"\r\n href=\"https://creativecommons.org/licenses/by/4.0/legalcode.es\"\r\n rel=\"license\"\r\n >licencia CC BY 4.0</a>\r\n </p>\r\n </div>\r\n <div class=\"leading-tight\">\r\n <p>\r\n <a\r\n class=\"c-link c-link--neutral\"\r\n href=\"https://www.aragon.es/\"\r\n >Gobierno de Arag\u00F3n</a>. Edificio Pignatelli. <abbr title=\u201DPaseo\u201D>P\u00BA</abbr> Mar\u00EDa Agust\u00EDn, 36. 50004 - Zaragoza - <abbr title=\"Tel\u00E9fono\" class=\"no-underline\">Tel.</abbr> <a href=\"tel:+976714000\" class=\"c-link c-link--neutral\">976 714 000</a>\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"mb-base lg:pl-base overflow-hidden\">\r\n <p *ngIf=\"icon && icon.html\" [desyInnerContent]=\"icon.html\" [isHtml]=\"true\"></p>\r\n <p>\r\n <a href=\"http://www.aragon.es/Fondos_Europeos\" class=\"inline-block text-sm c-link no-underline\" title=\"M\u00E1s informaci\u00F3n sobre los Fondos Estructurales y de Inversi\u00F3n Europeos (Fondos EIE)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 575 96\" width=\"288\" height=\"48\" class=\"w-auto h-12\" role=\"img\" aria-label=\"Logotipo Uni\u00F3n Europea. Fondo Europeo de Desarrollo Regional (FEDER). Construyendo Europa desde Arag\u00F3n.\"><text transform=\"translate(126 33)\" fill=\"#039\" font-size=\"20\" font-family=\"Arial, Tahoma, Verdana, Calibri, Garamond, Trebuchet, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, HelveticaNeue-Bold, Helvetica Neue, Helvetica, sans\" font-weight=\"700\"><tspan x=\"0\" y=\"0\">UNI\u00D3N EUROPEA</tspan></text><text transform=\"translate(126 56)\" fill=\"#039\" font-size=\"20\" font-family=\"Arial, Tahoma, Verdana, Calibri, Garamond, Trebuchet, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, HelveticaNeue-Bold, Helvetica Neue, Helvetica, sans\"><tspan x=\"0\" y=\"0\">Fondo Europeo de Desarrollo Regional (FEDER)</tspan></text><text transform=\"translate(126 79)\" fill=\"#039\" font-size=\"20\" font-family=\"Arial, Tahoma, Verdana, Calibri, Garamond, Trebuchet, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, HelveticaNeue-Bold, Helvetica Neue, Helvetica, sans\"><tspan x=\"0\" y=\"0\">\u201CConstruyendo Europa desde Arag\u00F3n\u201D</tspan></text><path fill=\"#039\" stroke=\"#fff\" stroke-width=\"1%\" d=\"M14.086 13.02h104.282v69.522H14.086z\"/><g fill=\"#fc0\"><path d=\"M64.004 28.167l2.2-1.606 2.2 1.606-.837-2.6 2.235-1.606h-2.755l-.843-2.628-.843 2.631h-2.753l2.233 1.606zM52.617 31.229l2.2-1.606 2.2 1.606-.836-2.6 2.233-1.606h-2.755l-.843-2.631-.843 2.634H51.22l2.234 1.606zM46.486 32.743l-.843 2.634H42.89l2.234 1.606-.837 2.6 2.2-1.606 2.2 1.606-.837-2.6 2.234-1.606h-2.752zM43.429 49.345l2.2 1.606-.836-2.6 2.234-1.606h-2.753l-.843-2.631-.843 2.637-2.755-.006 2.235 1.606-.837 2.6zM47.332 58.156l-.843-2.631-.843 2.634h-2.753l2.234 1.606-.837 2.6 2.2-1.609 2.2 1.609-.837-2.6 2.234-1.606zM55.677 66.504l-.843-2.628-.842 2.631h-2.755l2.234 1.606-.836 2.6 2.2-1.606 2.2 1.606-.836-2.6 2.234-1.606zM67.05 69.528l-.843-2.631-.842 2.634H62.61l2.234 1.606-.836 2.6 2.2-1.606 2.2 1.606-.837-2.6 2.235-1.606zM78.422 66.504l-.842-2.628-.845 2.631h-2.752l2.232 1.606-.836 2.6 2.2-1.606 2.2 1.606-.839-2.6 2.235-1.606zM86.774 58.156l-.845-2.631-.845 2.634h-2.752l2.235 1.606-.839 2.6 2.2-1.609 2.2 1.609-.839-2.6 2.235-1.606zM92.551 46.716h-2.755l-.845-2.631-.842 2.634h-2.755l2.235 1.606-.836 2.6 2.2-1.609 2.2 1.609-.836-2.6zM83.728 39.544l2.2-1.606 2.2 1.606-.839-2.6 2.235-1.6h-2.752l-.845-2.631-.845 2.634H82.33l2.235 1.6zM77.613 24.395l-.842 2.634-2.755-.006 2.232 1.609-.836 2.6 2.2-1.609 2.2 1.609-.836-2.6 2.235-1.609h-2.758z\"/></g></svg>\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>\r\n<!-- /footer -->\r\n\r\n<ng-template #itemHref let-item=\"item\">\r\n <a class=\"c-link font-semibold\" [href]=\"item.href | externalHref\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n {{item.text}}\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #itemRouterLink let-item=\"item\">\r\n <a class=\"c-link font-semibold\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n {{item.text}}\r\n </a>\r\n</ng-template>\r\n"
4783
+ template: "<footer [class]=\"['py-base bg-neutral-lighter border-t border-neutral-base text-xs lg:text-sm text-neutral-dark', classes] | makeHtmlList\"\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 <div [class]=\"['container mx-auto px-base', containerClasses] | makeHtmlList\">\r\n <ng-container *ngIf=\"getNavigationItems()\">\r\n <div class=\"flex flex-wrap\">\r\n <div class=\"flex-1 mr-base\" *ngFor=\"let nav of getNavigationItems()\">\r\n <h3 class=\"mb-base font-bold text-xl\">{{nav.title}}</h3>\r\n <ul [class]=\"'grid grid-cols-1 gap-base lg:grid-cols-' + nav.columns\">\r\n <li class=\"mb-xs\" *ngFor=\"let item of getNavigationItemItems(nav)\">\r\n <ng-container *ngTemplateOutlet=\"item.href != null ? itemHref : itemRouterLink; context: {item: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <hr class=\"my-base border-t border-neutral-base\">\r\n </ng-container>\r\n\r\n <div class=\"flex flex-wrap flex-col lg:flex-row justify-between\">\r\n <div class=\"mb-base\">\r\n <ng-template #metaTemplate let-metaElement=\"metaElement\">\r\n <ng-container *ngIf=\"metaElement\">\r\n <h2 class=\"sr-only\">{{(metaElement.visuallyHiddenTitle ? metaElement.visuallyHiddenTitle : 'Enlaces de pie de p\u00E1gina')}}</h2>\r\n <ul class=\"flex flex-col lg:flex-row lg:flex-wrap\" *ngIf=\"getMetaItems(metaElement)\">\r\n <li class=\"mb-sm mr-base\" *ngFor=\"let item of getMetaItems(metaElement)\">\r\n <ng-container *ngTemplateOutlet=\"item.href != null ? itemHref : itemRouterLink; context: {item: item}\"></ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"mb-sm\" *ngIf=\"getMetaContent(metaElement) || metaElement.html || metaElement.text\">\r\n <p>\r\n <ng-container *desyCustomInnerContent=\"{ component: getMetaContent(metaElement), html: metaElement.html, text: metaElement.text }\"></ng-container>\r\n </p>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-container *ngTemplateOutlet=\"metaTemplate; context: { metaElement: metaComponent ? metaComponent : meta }\"></ng-container>\r\n <div class=\"leading-tight\">\r\n <p>\r\n Todo el contenido bajo\r\n <a\r\n class=\"c-link c-link--neutral\"\r\n href=\"https://creativecommons.org/licenses/by/4.0/legalcode.es\"\r\n rel=\"license\"\r\n >licencia CC BY 4.0</a>\r\n </p>\r\n </div>\r\n <div class=\"leading-tight\">\r\n <p>\r\n <a\r\n class=\"c-link c-link--neutral\"\r\n href=\"https://www.aragon.es/\"\r\n >Gobierno de Arag\u00F3n</a>. Edificio Pignatelli. <abbr title=\u201DPaseo\u201D>P\u00BA</abbr> Mar\u00EDa Agust\u00EDn, 36. 50004 - Zaragoza - <abbr title=\"Tel\u00E9fono\" class=\"no-underline\">Tel.</abbr> <a href=\"tel:+976714000\" class=\"c-link c-link--neutral\">976 714 000</a>\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"mb-base lg:pl-base overflow-hidden\">\r\n <p *ngIf=\"iconComponent || icon?.html\">\r\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon?.html }\"></ng-container>\r\n </p>\r\n <p>\r\n <a href=\"http://www.aragon.es/Fondos_Europeos\" class=\"inline-block text-sm c-link no-underline\" title=\"M\u00E1s informaci\u00F3n sobre los Fondos Estructurales y de Inversi\u00F3n Europeos (Fondos EIE)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 575 96\" width=\"288\" height=\"48\" class=\"w-auto h-12\" role=\"img\" aria-label=\"Logotipo Uni\u00F3n Europea. Fondo Europeo de Desarrollo Regional (FEDER). Construyendo Europa desde Arag\u00F3n.\"><text transform=\"translate(126 33)\" fill=\"#039\" font-size=\"20\" font-family=\"Arial, Tahoma, Verdana, Calibri, Garamond, Trebuchet, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, HelveticaNeue-Bold, Helvetica Neue, Helvetica, sans\" font-weight=\"700\"><tspan x=\"0\" y=\"0\">UNI\u00D3N EUROPEA</tspan></text><text transform=\"translate(126 56)\" fill=\"#039\" font-size=\"20\" font-family=\"Arial, Tahoma, Verdana, Calibri, Garamond, Trebuchet, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, HelveticaNeue-Bold, Helvetica Neue, Helvetica, sans\"><tspan x=\"0\" y=\"0\">Fondo Europeo de Desarrollo Regional (FEDER)</tspan></text><text transform=\"translate(126 79)\" fill=\"#039\" font-size=\"20\" font-family=\"Arial, Tahoma, Verdana, Calibri, Garamond, Trebuchet, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, HelveticaNeue-Bold, Helvetica Neue, Helvetica, sans\"><tspan x=\"0\" y=\"0\">\u201CConstruyendo Europa desde Arag\u00F3n\u201D</tspan></text><path fill=\"#039\" stroke=\"#fff\" stroke-width=\"1%\" d=\"M14.086 13.02h104.282v69.522H14.086z\"/><g fill=\"#fc0\"><path d=\"M64.004 28.167l2.2-1.606 2.2 1.606-.837-2.6 2.235-1.606h-2.755l-.843-2.628-.843 2.631h-2.753l2.233 1.606zM52.617 31.229l2.2-1.606 2.2 1.606-.836-2.6 2.233-1.606h-2.755l-.843-2.631-.843 2.634H51.22l2.234 1.606zM46.486 32.743l-.843 2.634H42.89l2.234 1.606-.837 2.6 2.2-1.606 2.2 1.606-.837-2.6 2.234-1.606h-2.752zM43.429 49.345l2.2 1.606-.836-2.6 2.234-1.606h-2.753l-.843-2.631-.843 2.637-2.755-.006 2.235 1.606-.837 2.6zM47.332 58.156l-.843-2.631-.843 2.634h-2.753l2.234 1.606-.837 2.6 2.2-1.609 2.2 1.609-.837-2.6 2.234-1.606zM55.677 66.504l-.843-2.628-.842 2.631h-2.755l2.234 1.606-.836 2.6 2.2-1.606 2.2 1.606-.836-2.6 2.234-1.606zM67.05 69.528l-.843-2.631-.842 2.634H62.61l2.234 1.606-.836 2.6 2.2-1.606 2.2 1.606-.837-2.6 2.235-1.606zM78.422 66.504l-.842-2.628-.845 2.631h-2.752l2.232 1.606-.836 2.6 2.2-1.606 2.2 1.606-.839-2.6 2.235-1.606zM86.774 58.156l-.845-2.631-.845 2.634h-2.752l2.235 1.606-.839 2.6 2.2-1.609 2.2 1.609-.839-2.6 2.235-1.606zM92.551 46.716h-2.755l-.845-2.631-.842 2.634h-2.755l2.235 1.606-.836 2.6 2.2-1.609 2.2 1.609-.836-2.6zM83.728 39.544l2.2-1.606 2.2 1.606-.839-2.6 2.235-1.6h-2.752l-.845-2.631-.845 2.634H82.33l2.235 1.6zM77.613 24.395l-.842 2.634-2.755-.006 2.232 1.609-.836 2.6 2.2-1.609 2.2 1.609-.836-2.6 2.235-1.609h-2.758z\"/></g></svg>\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>\r\n\r\n<ng-template #itemHref let-item=\"item\">\r\n <a class=\"c-link font-semibold\" [href]=\"item.href | externalHref\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </a>\r\n</ng-template>\r\n\r\n<ng-template #itemRouterLink let-item=\"item\">\r\n <a class=\"c-link font-semibold\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\r\n </a>\r\n</ng-template>\r\n"
3683
4784
  },] }
3684
4785
  ];
3685
4786
  FooterComponent.propDecorators = {
@@ -3687,8 +4788,17 @@
3687
4788
  navigation: [{ type: i0.Input }],
3688
4789
  icon: [{ type: i0.Input }],
3689
4790
  containerClasses: [{ type: i0.Input }],
3690
- classes: [{ type: i0.Input }]
3691
- };
4791
+ classes: [{ type: i0.Input }],
4792
+ iconComponent: [{ type: i0.ContentChildren, args: [IconComponent,] }],
4793
+ metaComponent: [{ type: i0.ContentChildren, args: [FooterMetaComponent,] }],
4794
+ navigationComponent: [{ type: i0.ContentChildren, args: [FooterNavigationComponent,] }]
4795
+ };
4796
+ __decorate([
4797
+ DesyContentChild()
4798
+ ], FooterComponent.prototype, "iconComponent", void 0);
4799
+ __decorate([
4800
+ DesyContentChild()
4801
+ ], FooterComponent.prototype, "metaComponent", void 0);
3692
4802
 
3693
4803
  var ErrorSummaryItemComponent = /** @class */ (function (_super) {
3694
4804
  __extends(ErrorSummaryItemComponent, _super);
@@ -3736,7 +4846,7 @@
3736
4846
  ErrorSummaryComponent.decorators = [
3737
4847
  { type: i0.Component, args: [{
3738
4848
  selector: 'desy-error-summary',
3739
- template: "<div [class]=\"['p-base border-2 border-alert-base', classes] | makeHtmlList\" tabindex=\"-1\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : 'alert'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : 'error-summary-title'\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\">\r\n <h2 class=\"mb-base font-bold\" [attr.id]=\"ariaLabelledBy ? ariaLabelledBy :'error-summary-title'\"\r\n (desyContentEmpty)=\"handleContentRequired('title')\">\r\n <ng-container *desyCustomInnerContent=\"{component: titleComponent, html: titleHtml, text: titleText}\"></ng-container>\r\n </h2>\r\n <div>\r\n <p *ngIf=\"(descriptionComponent && descriptionComponent.getContent()) || descriptionHtml || descriptionText\" class=\"mb-base\">\r\n <ng-container *desyCustomInnerContent=\"{component: descriptionComponent, html: descriptionHtml, text: descriptionText}\"></ng-container>\r\n </p>\r\n <ul class=\"font-semibold text-alert-base\">\r\n <ng-container *ngFor=\"let item of getErrorItemList(); index as i\">\r\n <li *ngIf=\"item.fragment\">\r\n <a routerLink=\"./\" [fragment]=\"item.fragment\" class=\"c-link c-link--alert\"\r\n (desyContentEmpty)=\"handleContentRequired('item at position ' + i)\"\r\n [attr.id]=\"item.id ? item.id : null\"\r\n [attr.role]=\"item.role\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-disabled]=\"item.ariaDisabled\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.tabindex]=\"item.tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n </li>\r\n <li *ngIf=\"!item.fragment\" (desyContentEmpty)=\"handleContentRequired('item at position ' + i)\">\r\n <ng-container *desyCustomInnerContent=\"{component: item, html: item.html, text: item.text}\"></ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n</div>\r\n"
4849
+ template: "<div [class]=\"['p-base bg-white border-2 border-alert-base', classes] | makeHtmlList\" tabindex=\"-1\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : 'alert'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : 'error-summary-title'\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\">\r\n <h2 class=\"mb-base font-bold\" [attr.id]=\"ariaLabelledBy ? ariaLabelledBy :'error-summary-title'\"\r\n (desyContentEmpty)=\"handleContentRequired('title')\">\r\n <ng-container *desyCustomInnerContent=\"{component: titleComponent, html: titleHtml, text: titleText}\"></ng-container>\r\n </h2>\r\n <div>\r\n <p *ngIf=\"(descriptionComponent && descriptionComponent.getContent()) || descriptionHtml || descriptionText\" class=\"mb-base\">\r\n <ng-container *desyCustomInnerContent=\"{component: descriptionComponent, html: descriptionHtml, text: descriptionText}\"></ng-container>\r\n </p>\r\n <ul class=\"font-semibold text-alert-base\">\r\n <ng-container *ngFor=\"let item of getErrorItemList(); index as i\">\r\n <li *ngIf=\"item.fragment\">\r\n <a routerLink=\"./\" [fragment]=\"item.fragment\" class=\"c-link c-link--alert\"\r\n (desyContentEmpty)=\"handleContentRequired('item at position ' + i)\"\r\n [attr.id]=\"item.id ? item.id : null\"\r\n [attr.role]=\"item.role\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-disabled]=\"item.ariaDisabled\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.tabindex]=\"item.tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n </li>\r\n <li *ngIf=\"!item.fragment\" (desyContentEmpty)=\"handleContentRequired('item at position ' + i)\">\r\n <ng-container *desyCustomInnerContent=\"{component: item, html: item.html, text: item.text}\"></ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n</div>\r\n"
3740
4850
  },] }
3741
4851
  ];
3742
4852
  ErrorSummaryComponent.propDecorators = {
@@ -3868,65 +4978,151 @@
3868
4978
  clickEvent: [{ type: i0.Output }]
3869
4979
  };
3870
4980
 
4981
+ var MenuVerticalItemSubItemComponent = /** @class */ (function (_super) {
4982
+ __extends(MenuVerticalItemSubItemComponent, _super);
4983
+ function MenuVerticalItemSubItemComponent() {
4984
+ return _super !== null && _super.apply(this, arguments) || this;
4985
+ }
4986
+ return MenuVerticalItemSubItemComponent;
4987
+ }(ContentBaseComponent));
4988
+ MenuVerticalItemSubItemComponent.decorators = [
4989
+ { type: i0.Component, args: [{
4990
+ selector: 'desy-menu-vertical-item-sub-item',
4991
+ template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n"
4992
+ },] }
4993
+ ];
4994
+ MenuVerticalItemSubItemComponent.propDecorators = {
4995
+ id: [{ type: i0.Input }],
4996
+ classes: [{ type: i0.Input }],
4997
+ href: [{ type: i0.Input }],
4998
+ routerLink: [{ type: i0.Input }],
4999
+ routerLinkActiveClasses: [{ type: i0.Input }],
5000
+ fragment: [{ type: i0.Input }],
5001
+ target: [{ type: i0.Input }],
5002
+ disabled: [{ type: i0.Input }],
5003
+ active: [{ type: i0.Input }],
5004
+ divider: [{ type: i0.Input }],
5005
+ title: [{ type: i0.Input }]
5006
+ };
5007
+
5008
+ var MenuVerticalItemSubComponent = /** @class */ (function (_super) {
5009
+ __extends(MenuVerticalItemSubComponent, _super);
5010
+ function MenuVerticalItemSubComponent() {
5011
+ return _super !== null && _super.apply(this, arguments) || this;
5012
+ }
5013
+ return MenuVerticalItemSubComponent;
5014
+ }(ContentBaseComponent));
5015
+ MenuVerticalItemSubComponent.decorators = [
5016
+ { type: i0.Component, args: [{
5017
+ selector: 'desy-menu-vertical-item-sub',
5018
+ template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n"
5019
+ },] }
5020
+ ];
5021
+ MenuVerticalItemSubComponent.propDecorators = {
5022
+ classes: [{ type: i0.Input }],
5023
+ itemComponents: [{ type: i0.ContentChildren, args: [MenuVerticalItemSubItemComponent,] }]
5024
+ };
5025
+
5026
+ var MenuVerticalItemComponent = /** @class */ (function (_super) {
5027
+ __extends(MenuVerticalItemComponent, _super);
5028
+ function MenuVerticalItemComponent() {
5029
+ return _super !== null && _super.apply(this, arguments) || this;
5030
+ }
5031
+ return MenuVerticalItemComponent;
5032
+ }(ContentBaseComponent));
5033
+ MenuVerticalItemComponent.decorators = [
5034
+ { type: i0.Component, args: [{
5035
+ selector: 'desy-menu-vertical-item',
5036
+ template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n"
5037
+ },] }
5038
+ ];
5039
+ MenuVerticalItemComponent.propDecorators = {
5040
+ id: [{ type: i0.Input }],
5041
+ classes: [{ type: i0.Input }],
5042
+ href: [{ type: i0.Input }],
5043
+ routerLink: [{ type: i0.Input }],
5044
+ routerLinkActiveClasses: [{ type: i0.Input }],
5045
+ fragment: [{ type: i0.Input }],
5046
+ target: [{ type: i0.Input }],
5047
+ disabled: [{ type: i0.Input }],
5048
+ active: [{ type: i0.Input }],
5049
+ divider: [{ type: i0.Input }],
5050
+ title: [{ type: i0.Input }],
5051
+ expanded: [{ type: i0.Input }],
5052
+ subComponent: [{ type: i0.ContentChildren, args: [MenuVerticalItemSubComponent,] }]
5053
+ };
5054
+ __decorate([
5055
+ DesyContentChild()
5056
+ ], MenuVerticalItemComponent.prototype, "subComponent", void 0);
5057
+
3871
5058
  var MenuVerticalComponent = /** @class */ (function (_super) {
3872
5059
  __extends(MenuVerticalComponent, _super);
3873
5060
  function MenuVerticalComponent() {
3874
5061
  return _super !== null && _super.apply(this, arguments) || this;
3875
5062
  }
3876
- MenuVerticalComponent.prototype.ngOnChanges = function (changes) {
3877
- if (!this.items) {
3878
- throw new Error("items are required");
3879
- }
3880
- else {
3881
- this.items.forEach(function (element) { return textOrHtmlRequiredFunction(element.text, element.html); });
3882
- }
5063
+ MenuVerticalComponent.prototype.handleItemContentEmpty = function (index, isRoot) {
5064
+ throw new Error((isRoot ? 'Item' : 'Subitem') + " content, html or text ar required at position " + index);
3883
5065
  };
3884
- MenuVerticalComponent.prototype.getItemContent = function (item) {
3885
- var itemContent;
5066
+ MenuVerticalComponent.prototype.getItemHtml = function (item) {
5067
+ var itemHtml;
3886
5068
  if (item.active) {
3887
- itemContent = item.html ? "<strong>" + item.html + "</strong>" : "<strong>" + StringUtils.escapeHtml(item.text) + "</strong>";
5069
+ itemHtml = item.html ? "<strong>" + item.html + "</strong>" : "<strong>" + StringUtils.escapeHtml(item.text) + "</strong>";
3888
5070
  }
3889
5071
  else {
3890
- itemContent = item.html ? item.html : item.text;
5072
+ itemHtml = item.html;
3891
5073
  }
3892
- return itemContent;
5074
+ return itemHtml;
3893
5075
  };
3894
5076
  MenuVerticalComponent.prototype.getId = function (item, i) {
3895
5077
  if (item.id) {
3896
5078
  return item.id;
3897
5079
  }
3898
5080
  else {
5081
+ var idPrefix = this.idPrefix ? this.idPrefix : 'nav-item';
3899
5082
  if (i === 0) {
3900
- return this.getIdPrefix();
5083
+ return idPrefix;
3901
5084
  }
3902
5085
  else {
3903
- return this.getIdPrefix() + '-' + i;
5086
+ return idPrefix + '-' + i;
3904
5087
  }
3905
5088
  }
3906
5089
  };
3907
5090
  MenuVerticalComponent.prototype.getSubItemId = function (item, itemIndex, subItemIndex) {
3908
- var itemId = this.getId(item, itemIndex);
3909
5091
  var subItemId;
3910
- var subItem = item.sub.items[subItemIndex];
5092
+ var sub = this.getItemSub(item);
5093
+ var subItems = this.getSubItems(sub);
5094
+ var subItem = subItems[subItemIndex];
3911
5095
  if (subItem) {
3912
5096
  if (subItem.id) {
3913
5097
  subItemId = subItem.id;
3914
5098
  }
3915
5099
  else {
5100
+ var itemId = this.getId(item, itemIndex);
3916
5101
  subItemId = subItemIndex === 0 ? "sub-" + itemId : "sub-" + itemId + "-" + subItemIndex;
3917
5102
  }
3918
5103
  }
3919
5104
  return subItemId;
3920
5105
  };
3921
- MenuVerticalComponent.prototype.getIdPrefix = function () {
3922
- return (this.idPrefix ? this.idPrefix : 'nav-item');
5106
+ MenuVerticalComponent.prototype.getItems = function () {
5107
+ var itemList = this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;
5108
+ if (!itemList || itemList.length === 0) {
5109
+ throw new Error("items are required");
5110
+ }
5111
+ return itemList;
5112
+ };
5113
+ MenuVerticalComponent.prototype.getItemSub = function (item) {
5114
+ return item instanceof MenuVerticalItemComponent ? item.subComponent : item.sub;
5115
+ };
5116
+ MenuVerticalComponent.prototype.getSubItems = function (sub) {
5117
+ var subItems = sub instanceof MenuVerticalItemSubComponent ? sub.itemComponents.toArray() : sub.items;
5118
+ return subItems && subItems.length > 0 ? subItems : null;
3923
5119
  };
3924
5120
  return MenuVerticalComponent;
3925
5121
  }(AccessibilityComponent));
3926
5122
  MenuVerticalComponent.decorators = [
3927
5123
  { type: i0.Component, args: [{
3928
5124
  selector: 'desy-menu-vertical',
3929
- template: "<!--\r\n Template para ser utilizado tanto por los items como por los subitems:\r\n - item: Item que representa\r\n - index: indice del item en la lista\r\n - id: identificador del item\r\n - isRoot: si pertenece al nivel raiz\r\n-->\r\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\" let-id=\"id\" let-isRoot=\"isRoot\">\r\n <ng-container *ngIf=\"item\">\r\n <li class=\"m-base\" [ngClass]=\"{'origin-top-left text-sm': !isRoot}\">\r\n <ng-container *ngIf=\"item.href || item.routerLink; else notHref\">\r\n <a *ngIf=\"item.href; else hasRouterLink\" [attr.id]=\"id\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [desyInnerContent]=\"getItemContent(item)\" [isHtml]=\"item.html || item.active\"\r\n\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\"></a>\r\n <ng-template #hasRouterLink>\r\n <!-- TODO Todos los enlaces que admiten o href o routerLink estar\u00EDa bien unificarlos (en todos los componentes).\r\n Para ello, ser\u00EDa necesario crear una directiva para a\u00F1adir o quitar la directiva routerLink si no tiene href.\r\n Sin embargo, esto no es posible actualmente, ya que Angular todav\u00EDa no permite a\u00F1adir directivas din\u00E1micamente:\r\n https://angular.io/guide/roadmap#support-adding-directives-to-host-elements -->\r\n <a [attr.id]=\"id\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment ? item.fragment : null\" [routerLinkActive]=\"item.routerLinkActiveClasses\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [desyInnerContent]=\"getItemContent(item)\" [isHtml]=\"item.html || item.active\"\r\n\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\"></a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #notHref>\r\n <span [attr.id]=\"id\"\r\n [class]=\"['block px-xs', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'font-bold': item.active}\"\r\n [desyInnerContent]=\"getItemContent(item)\" [isHtml]=\"item.html || item.active\"\r\n\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\"></span>\r\n </ng-template>\r\n <ng-container *ngIf=\"isRoot && item.sub\">\r\n <ul *ngIf=\"item.sub.items && item.sub.items.length > 0\" [ngClass]=\"item.sub.classes\"\r\n [attr.aria-describedby]=\"item.sub.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.sub.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.sub.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.sub.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.sub.ariaHidden\"\r\n [attr.aria-disabled]=\"item.sub.ariaDisabled\"\r\n [attr.aria-controls]=\"item.sub.ariaControls\"\r\n [attr.aria-current]=\"item.sub.ariaCurrent\"\r\n [attr.aria-live]=\"item.sub.ariaLive\"\r\n [attr.aria-expanded]=\"item.sub.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.sub.ariaHasPopup\"\r\n [attr.tabindex]=\"item.sub.tabindex\">\r\n <ng-container *ngFor=\"let subItem of item.sub.items; index as subIndex\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n item: subItem,\r\n id: getSubItemId(item, index, subIndex),\r\n index: subIndex,\r\n isRoot: false\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n <div *ngIf=\"(!item.sub.items || item.sub.items.length === 0) && item.sub.html\"\r\n [class]=\"['mb-base px-xs origin-top-left text-sm text-neutral-dark', item.sub.classes] | makeHtmlList\"\r\n [id]=\"'sub-' + id\"\r\n [desyInnerContent]=\"item.sub.html\" [isHtml]=\"true\">\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<nav [ngClass]=\"classes\"\r\n [attr.role]=\"(role ? role : null)\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <ul class=\"text-base\">\r\n <ng-container *ngFor=\"let item of items; index as index\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, id: getId(item, index), index: index, isRoot: true }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n",
5125
+ template: "<!--\r\n Template para ser utilizado tanto por los items como por los subitems:\r\n - item: Item que representa\r\n - index: indice del item en la lista\r\n - id: identificador del item\r\n - isRoot: si pertenece al nivel raiz\r\n-->\r\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\" let-id=\"id\" let-sub=\"sub\" let-isRoot=\"isRoot\">\r\n <ng-container *ngIf=\"item\">\r\n <li class=\"m-base\" [ngClass]=\"{'origin-top-left text-sm': !isRoot}\">\r\n <ng-container *ngIf=\"item.href || item.routerLink; else notHref\">\r\n <a *ngIf=\"item.href; else hasRouterLink\" [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n <ng-template #hasRouterLink>\r\n <!-- Todos los enlaces que admiten o href o routerLink estar\u00EDa bien unificarlos (en todos los componentes).\r\n Para ello, ser\u00EDa necesario crear una directiva para a\u00F1adir o quitar la directiva routerLink si no tiene href.\r\n Sin embargo, esto no es posible actualmente, ya que Angular todav\u00EDa no permite a\u00F1adir directivas din\u00E1micamente:\r\n https://angular.io/guide/roadmap#support-adding-directives-to-host-elements -->\r\n <a [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment ? item.fragment : null\" [routerLinkActive]=\"item.routerLinkActiveClasses\"\r\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{\r\n 'underline': hasUnderline,\r\n 'hover:text-primary-base hover:underline': !item.disabled,\r\n 'no-underline pointer-events-none': item.disabled,\r\n 'font-bold': item.active\r\n }\"\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #notHref>\r\n <span [attr.id]=\"id\"\r\n (desyContentEmpty)=\"handleItemContentEmpty(index, isRoot)\"\r\n [class]=\"['block px-xs', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'font-bold': item.active}\"\r\n\r\n [attr.title]=\"item.title\"\r\n [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [attr.aria-current]=\"item.active ? 'page' : null\"\r\n [attr.aria-disabled]=\"item.disabled\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.disabled]=\"item.disabled\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\r\n </span>\r\n </ng-template>\r\n <ng-container *ngIf=\"isRoot && sub\">\r\n <ul *ngIf=\"getSubItems(sub)\" [ngClass]=\"sub.classes\"\r\n [attr.aria-describedby]=\"sub.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"sub.ariaErrorMessage\"\r\n [attr.aria-label]=\"sub.ariaLabel\"\r\n [attr.aria-labelledby]=\"sub.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"sub.ariaHidden\"\r\n [attr.aria-disabled]=\"sub.ariaDisabled\"\r\n [attr.aria-controls]=\"sub.ariaControls\"\r\n [attr.aria-current]=\"sub.ariaCurrent\"\r\n [attr.aria-live]=\"sub.ariaLive\"\r\n [attr.aria-expanded]=\"sub.ariaExpanded\"\r\n [attr.aria-haspopup]=\"sub.ariaHasPopup\"\r\n [attr.tabindex]=\"sub.tabindex\">\r\n <ng-container *ngFor=\"let subItem of getSubItems(sub); index as subIndex\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n item: subItem,\r\n id: getSubItemId(item, index, subIndex),\r\n index: subIndex,\r\n isRoot: false\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n <div *ngIf=\"!getSubItems(sub)\"\r\n [class]=\"['mb-base px-xs origin-top-left text-sm text-neutral-dark', sub.classes] | makeHtmlList\"\r\n [id]=\"'sub-' + id\">\r\n <ng-container *desyCustomInnerContent=\"{ component: sub, html: sub.html }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<nav [ngClass]=\"classes\"\r\n [attr.role]=\"(role ? role : null)\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <ul class=\"text-base\">\r\n <ng-container *ngFor=\"let item of getItems(); index as index\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\r\n [ngTemplateOutletContext]=\"{ item: item, id: getId(item, index), index: index, sub: getItemSub(item), isRoot: true }\">\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n",
3930
5126
  animations: [
3931
5127
  animations.trigger('displayMenuVertical', [
3932
5128
  animations.state('void', animations.style({
@@ -3949,7 +5145,8 @@
3949
5145
  idPrefix: [{ type: i0.Input }],
3950
5146
  items: [{ type: i0.Input }],
3951
5147
  hasUnderline: [{ type: i0.Input }],
3952
- classes: [{ type: i0.Input }]
5148
+ classes: [{ type: i0.Input }],
5149
+ itemComponents: [{ type: i0.ContentChildren, args: [MenuVerticalItemComponent,] }]
3953
5150
  };
3954
5151
 
3955
5152
  var MenubaritemDirective = /** @class */ (function () {
@@ -4721,7 +5918,7 @@
4721
5918
  MenubarComponent.decorators = [
4722
5919
  { type: i0.Component, args: [{
4723
5920
  selector: 'desy-menubar',
4724
- template: "<div [attr.id]=\"id\" [class]=\"['c-menubar', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : 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.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngIf=\"getLabelRef()\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelComponent ? labelComponent.classes : (labelData ? labelData.classes : null)] | makeHtmlList\">\r\n <ng-container *ngTemplateOutlet=\"getLabelRef()\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!getLabelRef() && (labelData || labelText)\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelData ? labelData.classes : null] | makeHtmlList\">\r\n <ng-container *desyCustomInnerContent=\"{ html: getLabelContent() }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ul #menubar [id]=\"id + '-menubar'\" class=\"lg:flex lg:flex-wrap\" role=\"menubar\"\r\n (focusin)=\"handleMenuFocusIn()\"\r\n (focusout)=\"handleMenuFocusOut($event)\"\r\n [ngClass]=\"{ 'focus': isFocused }\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"getLabelRef() || labelData || labelText ? id + '-label' : null\">\r\n <ng-container *ngFor=\"let item of getItems(); index as itemIndex\">\r\n <li class=\"relative\" role=\"none\" desyMenubaritem (contentChanged)=\"checkChanges()\">\r\n <a *ngIf=\"item.sub\" #link\r\n role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\">\r\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\" #itemContentWrapper\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </span>\r\n <svg class=\"inline-block -mr-2 align-middle -my-px\" viewBox=\"0 0 96 96\" aria-hidden=\"true\" fill=\"currentColor\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </a>\r\n <a *ngIf=\"item.routerLink && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [routerLink]=\"item.routerLink\"\r\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : ''\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n <a *ngIf=\"!item.routerLink && item.href && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n\r\n <ul *ngIf=\"item.sub && getItemSubitems(item)\" #popupMenu role=\"menu\" tabindex=\"-1\"\r\n [ngStyle]=\"getPopupStyle(itemIndex)\"\r\n [class]=\"['c-menubar__tooltip hidden border border-neutral-base shadow-md bg-white text-sm', item.sub.classes] | makeHtmlList\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : (item.sub.ariaLabel ? item.sub.ariaLabel : null)\"\r\n [attr.aria-describedby]=\"item.sub.ariaDescribedBy ? item.sub.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.sub.ariaLabelledBy ? item.sub.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.sub.ariaHidden ? item.sub.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.sub.ariaDisabled ? item.sub.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.sub.ariaControls ? item.sub.ariaControls : null\"\r\n [attr.aria-current]=\"item.sub.ariaCurrent ? item.sub.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.sub.ariaLive ? item.sub.ariaLive : null\"\r\n [attr.aria-expanded]=\"!!(menuData && menuData[itemIndex].open)\"\r\n [attr.aria-errormessage]=\"item.sub.ariaErrorMessage ? item.sub.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.sub.ariaHasPopup ? item.sub.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.sub.ariaModal ? item.sub.ariaModal : null\">\r\n <ng-container *ngFor=\"let subItem of getItemSubitems(item); index as subItemIndex\">\r\n <ng-container [ngSwitch]=\"subItem.role\">\r\n <li #popupMenuItem *ngSwitchCase=\"'none'\" role=\"none\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li *ngSwitchCase=\"'group'\">\r\n <ul role=\"group\" [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-label]=\"subItem.ariaLabel ? subItem.ariaLabel : null\">\r\n <ng-container *ngFor=\"let subsubitem of getSubItemSubitems(subItem); index as subsubIndex\">\r\n <ng-container *ngIf=\"subsubitem\">\r\n <li #popupMenuItem [attr.role]=\"subsubitem.role ? subsubitem.role : null\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subsubitem, subsubIndex, getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex)))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subsubitem content, html or text is required at position ' + subsubIndex + ' of subItem ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex, subsubIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex, subsubIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex, subsubIndex)\"\r\n [attr.aria-checked]=\"getSubSubItemAriaChecked(subsubitem)\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white truncate\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subsubitem, html: subsubitem.html, text: subsubitem.text}\"></ng-container>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitem'\" role=\"menuitem\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white truncate focus:bg-primary-base focus:text-white focus:outline-none\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitemcheckbox'\" role=\"menuitemcheckbox\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-checked]=\"!!subItem.checked\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white truncate\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'separator'\" role=\"separator\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"my-sm border-b border-neutral-base\">\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n"
5921
+ template: "<div [attr.id]=\"id\" [class]=\"['c-menubar', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : 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.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-container *ngIf=\"getLabelRef()\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelComponent ? labelComponent.classes : (labelData ? labelData.classes : null)] | makeHtmlList\">\r\n <ng-container *ngTemplateOutlet=\"getLabelRef()\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"!getLabelRef() && (labelData || labelText)\">\r\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelData ? labelData.classes : null] | makeHtmlList\">\r\n <ng-container *desyCustomInnerContent=\"{ html: getLabelContent() }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n <ul #menubar [id]=\"id + '-menubar'\" class=\"lg:flex lg:flex-wrap\" role=\"menubar\"\r\n (focusin)=\"handleMenuFocusIn()\"\r\n (focusout)=\"handleMenuFocusOut($event)\"\r\n [ngClass]=\"{ 'focus': isFocused }\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"getLabelRef() || labelData || labelText ? id + '-label' : null\">\r\n <ng-container *ngFor=\"let item of getItems(); index as itemIndex\">\r\n <li class=\"relative\" role=\"none\" desyMenubaritem (contentChanged)=\"checkChanges()\">\r\n <a *ngIf=\"item.sub\" #link\r\n role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\">\r\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\" #itemContentWrapper\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </span>\r\n <svg class=\"inline-block -mr-2 align-middle -my-px\" viewBox=\"0 0 96 96\" aria-hidden=\"true\" fill=\"currentColor\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </a>\r\n <a *ngIf=\"item.routerLink && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [routerLink]=\"item.routerLink\"\r\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : ''\"\r\n [fragment]=\"item.fragment\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n <a *ngIf=\"!item.routerLink && item.href && !item.sub\" #link #itemContentWrapper\r\n role=\"menuitem\"\r\n (click)=\"handleMenuItemClick($event, itemIndex)\"\r\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\r\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\r\n (desyContentEmpty)=\"handleEmptyItem('item content, html or text is required at position ' + itemIndex)\"\r\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\r\n [id]=\"getItemId(item, itemIndex)\"\r\n [href]=\"item.href | externalHref\"\r\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\r\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\r\n [attr.target]=\"item.target ? item.target : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\r\n </a>\r\n\r\n <ul *ngIf=\"item.sub && getItemSubitems(item)\" #popupMenu role=\"menu\" tabindex=\"-1\"\r\n [ngStyle]=\"getPopupStyle(itemIndex)\"\r\n [class]=\"['c-menubar__tooltip w-max max-w-64 hidden border border-neutral-base shadow-md bg-white text-sm', item.sub.classes] | makeHtmlList\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : (item.sub.ariaLabel ? item.sub.ariaLabel : null)\"\r\n [attr.aria-describedby]=\"item.sub.ariaDescribedBy ? item.sub.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.sub.ariaLabelledBy ? item.sub.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.sub.ariaHidden ? item.sub.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.sub.ariaDisabled ? item.sub.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.sub.ariaControls ? item.sub.ariaControls : null\"\r\n [attr.aria-current]=\"item.sub.ariaCurrent ? item.sub.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.sub.ariaLive ? item.sub.ariaLive : null\"\r\n [attr.aria-expanded]=\"!!(menuData && menuData[itemIndex].open)\"\r\n [attr.aria-errormessage]=\"item.sub.ariaErrorMessage ? item.sub.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.sub.ariaHasPopup ? item.sub.ariaHasPopup : null\"\r\n [attr.aria-modal]=\"item.sub.ariaModal ? item.sub.ariaModal : null\">\r\n <ng-container *ngFor=\"let subItem of getItemSubitems(item); index as subItemIndex\">\r\n <ng-container [ngSwitch]=\"subItem.role\">\r\n <li #popupMenuItem *ngSwitchCase=\"'none'\" role=\"none\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li *ngSwitchCase=\"'group'\">\r\n <ul role=\"group\" [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-label]=\"subItem.ariaLabel ? subItem.ariaLabel : null\">\r\n <ng-container *ngFor=\"let subsubitem of getSubItemSubitems(subItem); index as subsubIndex\">\r\n <ng-container *ngIf=\"subsubitem\">\r\n <li #popupMenuItem [attr.role]=\"subsubitem.role ? subsubitem.role : null\" tabindex=\"-1\"\r\n [id]=\"getSubItemId(subsubitem, subsubIndex, getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex)))\"\r\n (desyContentEmpty)=\"handleEmptyItem('subsubitem content, html or text is required at position ' + subsubIndex + ' of subItem ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex, subsubIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex, subsubIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex, subsubIndex)\"\r\n [attr.aria-checked]=\"getSubSubItemAriaChecked(subsubitem)\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subsubitem, html: subsubitem.html, text: subsubitem.text}\"></ng-container>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitem'\" role=\"menuitem\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white focus:bg-primary-base focus:text-white focus:outline-none\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'menuitemcheckbox'\" role=\"menuitemcheckbox\" tabindex=\"-1\"\r\n (desyContentEmpty)=\"handleEmptyItem('subitem content, html or text is required at position ' + subItemIndex + ' of item ' + itemIndex)\"\r\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\r\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\r\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n [attr.aria-checked]=\"!!subItem.checked\"\r\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\r\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\r\n </li>\r\n <li #popupMenuItem *ngSwitchCase=\"'separator'\" role=\"separator\"\r\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\r\n class=\"my-sm border-b border-neutral-base\">\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n"
4725
5922
  },] }
4726
5923
  ];
4727
5924
  MenubarComponent.ctorParameters = function () { return [
@@ -4747,122 +5944,6 @@
4747
5944
  DesyContentChild()
4748
5945
  ], MenubarComponent.prototype, "labelComponent", void 0);
4749
5946
 
4750
- var NavItemComponent = /** @class */ (function (_super) {
4751
- __extends(NavItemComponent, _super);
4752
- function NavItemComponent() {
4753
- var _this = _super.apply(this, __spread(arguments)) || this;
4754
- _this.clickEvent = new i0.EventEmitter();
4755
- _this.activeChange = new i0.EventEmitter();
4756
- return _this;
4757
- }
4758
- return NavItemComponent;
4759
- }(ContentBaseComponent));
4760
- NavItemComponent.decorators = [
4761
- { type: i0.Component, args: [{
4762
- selector: 'desy-nav-item',
4763
- template: "<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n"
4764
- },] }
4765
- ];
4766
- NavItemComponent.propDecorators = {
4767
- id: [{ type: i0.Input }],
4768
- active: [{ type: i0.Input }],
4769
- classes: [{ type: i0.Input }],
4770
- title: [{ type: i0.Input }],
4771
- href: [{ type: i0.Input }],
4772
- routerLink: [{ type: i0.Input }],
4773
- fragment: [{ type: i0.Input }],
4774
- target: [{ type: i0.Input }],
4775
- disabled: [{ type: i0.Input }],
4776
- divider: [{ type: i0.Input }],
4777
- clickEvent: [{ type: i0.Output }],
4778
- activeChange: [{ type: i0.Output }]
4779
- };
4780
-
4781
- var NavComponent = /** @class */ (function (_super) {
4782
- __extends(NavComponent, _super);
4783
- function NavComponent() {
4784
- var _this = _super.apply(this, __spread(arguments)) || this;
4785
- _this.hasNav = true;
4786
- _this.clickEvent = new i0.EventEmitter();
4787
- return _this;
4788
- }
4789
- NavComponent.prototype.onClick = function (event, item) {
4790
- var itemsActiveChange = [];
4791
- if (!item.active) {
4792
- itemsActiveChange.push(item);
4793
- }
4794
- var itemList = this.getItemList();
4795
- itemList.forEach(function (i) {
4796
- if (i.active && i !== item) {
4797
- itemsActiveChange.push(i);
4798
- }
4799
- i.active = false;
4800
- });
4801
- item.active = true;
4802
- // Se emite el evento sólo para los items cuyo valor de active ha sido modificado
4803
- itemsActiveChange.forEach(function (i) {
4804
- if (i instanceof NavItemComponent) {
4805
- i.activeChange.emit(i.active);
4806
- }
4807
- });
4808
- this.clickEvent.emit({ item: item, event: event });
4809
- if (item instanceof NavItemComponent) {
4810
- item.clickEvent.emit({ item: item, event: event });
4811
- }
4812
- };
4813
- NavComponent.prototype.ngOnChanges = function (changes) {
4814
- if (!this.idPrefix) {
4815
- throw new Error("idPrefix is required");
4816
- }
4817
- };
4818
- NavComponent.prototype.getItemList = function () {
4819
- var itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;
4820
- if (!itemList || itemList.length === 0) {
4821
- throw new Error("items are required");
4822
- }
4823
- itemList.forEach(function (element) {
4824
- if (!element.href && !element.routerLink) {
4825
- throw new Error("href or routerLink are required");
4826
- }
4827
- });
4828
- return itemList;
4829
- };
4830
- NavComponent.prototype.handleContentEmpty = function (position) {
4831
- throw new Error("item content, html or text are required at position " + position);
4832
- };
4833
- NavComponent.prototype.getItemId = function (item, index) {
4834
- var id;
4835
- if (item.id) {
4836
- id = item.id;
4837
- }
4838
- else if (index === 0) {
4839
- id = this.getIdPrefix();
4840
- }
4841
- else {
4842
- id = this.getIdPrefix() + '-' + index;
4843
- }
4844
- return id;
4845
- };
4846
- NavComponent.prototype.getIdPrefix = function () {
4847
- return this.idPrefix ? this.idPrefix : 'nav-item';
4848
- };
4849
- return NavComponent;
4850
- }(AccessibilityComponent));
4851
- NavComponent.decorators = [
4852
- { type: i0.Component, args: [{
4853
- selector: 'desy-nav',
4854
- template: "<ng-template #innerHtml>\r\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\r\n <li>\r\n <span *ngIf=\"item.active\"\r\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex\"\r\n (click)=\"onClick($event, item)\">\r\n <strong>\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </strong>\r\n </span>\r\n <a *ngIf=\"!item.active && item.href\"\r\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\"\r\n (click)=\"onClick($event, item)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n <a *ngIf=\"!item.active && !item.href\"\r\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\r\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\r\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\r\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.title]=\"item.title ? item.title : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n (click)=\"onClick($event, item)\"\r\n (desyContentEmpty)=\"handleContentEmpty(i)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <svg #desyContentEmptyIgnore *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\r\n </a>\r\n </li>\r\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\r\n <div class=\"sr-only\">Separador</div>\r\n </li>\r\n </ng-container>\r\n</ng-template>\r\n\r\n\r\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\r\n [class]=\"['text-sm', classes] | makeHtmlList\"\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-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n</ul>\r\n<ng-template #wrapIntoNav>\r\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\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 <ul>\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ul>\r\n </nav>\r\n</ng-template>\r\n"
4855
- },] }
4856
- ];
4857
- NavComponent.propDecorators = {
4858
- hasNav: [{ type: i0.Input }],
4859
- idPrefix: [{ type: i0.Input }],
4860
- items: [{ type: i0.Input }],
4861
- classes: [{ type: i0.Input }],
4862
- clickEvent: [{ type: i0.Output }],
4863
- itemComponentList: [{ type: i0.ContentChildren, args: [NavItemComponent,] }]
4864
- };
4865
-
4866
5947
  var NotificationItemComponent = /** @class */ (function (_super) {
4867
5948
  __extends(NotificationItemComponent, _super);
4868
5949
  function NotificationItemComponent() {
@@ -4967,52 +6048,26 @@
4967
6048
  items: [{ type: i0.Input }],
4968
6049
  icon: [{ type: i0.Input }],
4969
6050
  type: [{ type: i0.Input }],
4970
- isDismissible: [{ type: i0.Input }],
4971
- headingLevel: [{ type: i0.Input }],
4972
- titleComponent: [{ type: i0.ContentChildren, args: [TitleComponent,] }],
4973
- descriptionComponent: [{ type: i0.ContentChildren, args: [DescriptionComponent,] }],
4974
- contentComponent: [{ type: i0.ContentChildren, args: [ContentComponent,] }],
4975
- iconComponent: [{ type: i0.ContentChildren, args: [IconComponent,] }],
4976
- itemCompontents: [{ type: i0.ContentChildren, args: [NotificationItemComponent,] }]
4977
- };
4978
- __decorate([
4979
- DesyContentChild()
4980
- ], NotificationComponent.prototype, "titleComponent", void 0);
4981
- __decorate([
4982
- DesyContentChild()
4983
- ], NotificationComponent.prototype, "descriptionComponent", void 0);
4984
- __decorate([
4985
- DesyContentChild()
4986
- ], NotificationComponent.prototype, "contentComponent", void 0);
4987
- __decorate([
4988
- DesyContentChild()
4989
- ], NotificationComponent.prototype, "iconComponent", void 0);
4990
-
4991
- var SkipLinkComponent = /** @class */ (function (_super) {
4992
- __extends(SkipLinkComponent, _super);
4993
- function SkipLinkComponent() {
4994
- return _super !== null && _super.apply(this, arguments) || this;
4995
- }
4996
- SkipLinkComponent.prototype.getClassNames = function () {
4997
- var classNames = 'c-skip-link sr-only active:not-sr-only focus:not-sr-only focus:outline-none focus:shadow-outline-focus block p-base bg-warning-base text-center text-black underline';
4998
- if (this.classes) {
4999
- classNames += ' ' + this.classes;
5000
- }
5001
- return classNames;
5002
- };
5003
- return SkipLinkComponent;
5004
- }(AccessibilityAndContentRequiredComponent));
5005
- SkipLinkComponent.decorators = [
5006
- { type: i0.Component, args: [{
5007
- selector: 'desy-skip-link',
5008
- template: "<a [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"\r\n [routerLink]=\"[]\" [fragment]=\"fragment ? fragment : 'content'\"\r\n [class]=\"getClassNames()\"\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\"><ng-content></ng-content></a>\r\n"
5009
- },] }
5010
- ];
5011
- SkipLinkComponent.propDecorators = {
5012
- fragment: [{ type: i0.Input }],
5013
- classes: [{ type: i0.Input }],
5014
- id: [{ type: i0.Input }]
5015
- };
6051
+ isDismissible: [{ type: i0.Input }],
6052
+ headingLevel: [{ type: i0.Input }],
6053
+ titleComponent: [{ type: i0.ContentChildren, args: [TitleComponent,] }],
6054
+ descriptionComponent: [{ type: i0.ContentChildren, args: [DescriptionComponent,] }],
6055
+ contentComponent: [{ type: i0.ContentChildren, args: [ContentComponent,] }],
6056
+ iconComponent: [{ type: i0.ContentChildren, args: [IconComponent,] }],
6057
+ itemCompontents: [{ type: i0.ContentChildren, args: [NotificationItemComponent,] }]
6058
+ };
6059
+ __decorate([
6060
+ DesyContentChild()
6061
+ ], NotificationComponent.prototype, "titleComponent", void 0);
6062
+ __decorate([
6063
+ DesyContentChild()
6064
+ ], NotificationComponent.prototype, "descriptionComponent", void 0);
6065
+ __decorate([
6066
+ DesyContentChild()
6067
+ ], NotificationComponent.prototype, "contentComponent", void 0);
6068
+ __decorate([
6069
+ DesyContentChild()
6070
+ ], NotificationComponent.prototype, "iconComponent", void 0);
5016
6071
 
5017
6072
  var TableCellComponent = /** @class */ (function (_super) {
5018
6073
  __extends(TableCellComponent, _super);
@@ -5122,7 +6177,7 @@
5122
6177
  TableComponent.decorators = [
5123
6178
  { type: i0.Component, args: [{
5124
6179
  selector: 'desy-table',
5125
- template: "<table [class]=\"(classes ? 'c-table ' + classes : 'c-table')\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\r\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\r\n </caption>\r\n <thead *ngIf=\"head || headerComponent\">\r\n <tr class=\"border-t border-b border-neutral-base\">\r\n <ng-container *ngFor=\"let headerCell of getHeaderCells()\">\r\n <th scope=\"col\"\r\n [class]=\"['align-top px-base py-sm text-left font-normal text-sm text-neutral-dark', headerCell.classes] | makeHtmlList\"\r\n [attr.colspan]=\"(headerCell.colspan ? headerCell.colspan : null)\"\r\n [attr.rowspan]=\"(headerCell.rowspan ? headerCell.rowspan : null)\"\r\n [attr.id]=\"headerCell.id ? headerCell.id : null\"\r\n [attr.role]=\"headerCell.role\"\r\n [attr.aria-describedby]=\"headerCell.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"headerCell.ariaErrorMessage\"\r\n [attr.aria-label]=\"headerCell.ariaLabel\"\r\n [attr.aria-labelledby]=\"headerCell.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"headerCell.ariaHidden\"\r\n [attr.aria-disabled]=\"headerCell.ariaDisabled\"\r\n [attr.aria-controls]=\"headerCell.ariaControls\"\r\n [attr.aria-current]=\"headerCell.ariaCurrent\"\r\n [attr.aria-live]=\"headerCell.ariaLive\"\r\n [attr.aria-expanded]=\"headerCell.ariaExpanded\"\r\n [attr.aria-haspopup]=\"headerCell.ariaHasPopup\"\r\n [attr.tabindex]=\"headerCell.tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: headerCell, html: headerCell.html, text: headerCell.text }\"></ng-container>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of getRows(); index as rowIndex\" class=\"border-t border-b border-neutral-base\">\r\n <ng-container *ngFor=\"let cell of getRowCells(row); first as isFirst; index as cellIndex\">\r\n <th *ngIf=\"firstCellIsHeader && isFirst; else elseTd\" scope=\"row\"\r\n (desyContentEmpty)=\"handleEmptyCell(cell, rowIndex, cellIndex)\"\r\n [class]=\"['align-top px-base py-sm text-left font-normal text-sm text-neutral-dark', cell.classes] | makeHtmlList\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </th>\r\n <ng-template #elseTd>\r\n <td [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\r\n (desyContentEmpty)=\"handleEmptyCell(cell, rowIndex, cellIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n</table>\r\n"
6180
+ template: "<ng-template #tableContent>\r\n <table [class]=\"['c-table', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\r\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\r\n </caption>\r\n <thead *ngIf=\"head || headerComponent\">\r\n <tr class=\"border-t border-b border-neutral-base\">\r\n <ng-container *ngFor=\"let headerCell of getHeaderCells()\">\r\n <th scope=\"col\"\r\n [class]=\"['align-top px-base py-sm text-left font-normal text-sm text-neutral-dark', headerCell.classes] | makeHtmlList\"\r\n [attr.colspan]=\"(headerCell.colspan ? headerCell.colspan : null)\"\r\n [attr.rowspan]=\"(headerCell.rowspan ? headerCell.rowspan : null)\"\r\n [attr.id]=\"headerCell.id ? headerCell.id : null\"\r\n [attr.role]=\"headerCell.role\"\r\n [attr.aria-describedby]=\"headerCell.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"headerCell.ariaErrorMessage\"\r\n [attr.aria-label]=\"headerCell.ariaLabel\"\r\n [attr.aria-labelledby]=\"headerCell.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"headerCell.ariaHidden\"\r\n [attr.aria-disabled]=\"headerCell.ariaDisabled\"\r\n [attr.aria-controls]=\"headerCell.ariaControls\"\r\n [attr.aria-current]=\"headerCell.ariaCurrent\"\r\n [attr.aria-live]=\"headerCell.ariaLive\"\r\n [attr.aria-expanded]=\"headerCell.ariaExpanded\"\r\n [attr.aria-haspopup]=\"headerCell.ariaHasPopup\"\r\n [attr.tabindex]=\"headerCell.tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: headerCell, html: headerCell.html, text: headerCell.text }\"></ng-container>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of getRows(); index as rowIndex\" class=\"border-t border-b border-neutral-base\">\r\n <ng-container *ngFor=\"let cell of getRowCells(row); first as isFirst; index as cellIndex\">\r\n <th *ngIf=\"firstCellIsHeader && isFirst; else elseTd\" scope=\"row\"\r\n (desyContentEmpty)=\"handleEmptyCell(cell, rowIndex, cellIndex)\"\r\n [class]=\"['align-top px-base py-sm text-left font-normal text-sm text-neutral-dark', cell.classes] | makeHtmlList\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </th>\r\n <ng-template #elseTd>\r\n <td [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\r\n (desyContentEmpty)=\"handleEmptyCell(cell, rowIndex, cellIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n\r\n<div *ngIf=\"wrapper; else tableContent\" [class]=\"wrapper.classes\">\r\n <ng-container *ngTemplateOutlet=\"tableContent\"></ng-container>\r\n</div>\r\n"
5126
6181
  },] }
5127
6182
  ];
5128
6183
  TableComponent.propDecorators = {
@@ -5133,6 +6188,7 @@
5133
6188
  firstCellIsHeader: [{ type: i0.Input }],
5134
6189
  classes: [{ type: i0.Input }],
5135
6190
  id: [{ type: i0.Input }],
6191
+ wrapper: [{ type: i0.Input }],
5136
6192
  captionComponent: [{ type: i0.ContentChildren, args: [TableCaptionComponent,] }],
5137
6193
  headerComponent: [{ type: i0.ContentChildren, args: [TableHeaderComponent,] }],
5138
6194
  rowComponentList: [{ type: i0.ContentChildren, args: [TableRowComponent,] }]
@@ -5346,10 +6402,10 @@
5346
6402
  var _this = _super.call(this) || this;
5347
6403
  _this.el = el;
5348
6404
  _this.changeDetector = changeDetector;
5349
- _this.orderByType = exports.OrderBy;
5350
6405
  _this.rowsChange = new i0.EventEmitter();
5351
6406
  _this.rowsChecked = new i0.EventEmitter();
5352
6407
  _this.recalculateTable = new i0.EventEmitter();
6408
+ _this.orderByType = exports.OrderBy;
5353
6409
  return _this;
5354
6410
  }
5355
6411
  TableAdvancedComponent.prototype.ngAfterViewInit = function () {
@@ -5589,7 +6645,7 @@
5589
6645
  TableAdvancedComponent.decorators = [
5590
6646
  { type: i0.Component, args: [{
5591
6647
  selector: 'desy-table-advanced',
5592
- template: "<table role=\"grid\"\r\n [class]=\"['c-table-advanced border-t-2 border-b-2 border-neutral-base', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\r\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\r\n </caption>\r\n <thead *ngIf=\"getHeaderCells()\">\r\n <tr class=\"border-t border-neutral-base divide-x divide-neutral-base\">\r\n <th *ngIf=\"hasCheckboxes\" scope=\"col\" class=\"align-top px-base py-xs\">\r\n <span class=\"sr-only\">Seleccionar fila</span>\r\n </th>\r\n <th scope=\"col\" *ngFor=\"let item of getHeaderCells(); index as iHeader\" [id]=\"getIdHeader(iHeader)\"\r\n [attr.aria-sort]=\"item.orderBy ? getStringOrderBy(item.orderBy) : null\"\r\n [class]=\"['align-top px-base py-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\"\r\n [attr.colspan]=\"item.colspan ? item.colspan : null\"\r\n [attr.rowspan]=\"item.rowspan ? item.rowspan : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n\r\n <span *ngIf=\"item.orderBy\" class=\"inline-block relative\" (click)=\"handleSortByColumn(iHeader)\" desyFocusClickedCell\r\n [attr.tabindex]=\"item.orderBy ? -1 : null\"\r\n [attr.role]=\"item.orderBy ? 'button' : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <span class=\"c-table-advanced__order\" *ngIf=\"item.orderBy\">\r\n <span class=\"sr-only\">Pulsa para ordenar por esta columna</span>\r\n <span class=\"c-table-advanced__ascending\" *ngIf=\"item.orderBy == orderByType.asc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M112.07 37.93l-35-35a10 10 0 00-14.14 0l-35 35a10 10 0 0014.14 14.14l13.66-13.66A2.5 2.5 0 0160 40.18V130a10 10 0 0020 0V40.18a2.5 2.5 0 014.27-1.77l13.66 13.66a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__descending\" *ngIf=\"item.orderBy == orderByType.desc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M27.93 102.07l35 35a10 10 0 0014.14 0l35-35a10 10 0 00-14.14-14.14l-13.66 13.66A2.5 2.5 0 0180 99.82V10a10 10 0 00-20 0v89.82a2.5 2.5 0 01-4.27 1.77L42.07 87.93a10 10 0 00-14.14 14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__none\" *ngIf=\"item.orderBy == orderByType.none\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" class=\"text-neutral-base\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M94.7 97.2l-17.2 17.19V25.61L94.7 42.8a7.5 7.5 0 0010.6-10.6l-30-30a7.49 7.49 0 00-10.6 0l-30 30a7.5 7.5 0 0010.6 10.6l17.2-17.19v88.78L45.3 97.2a7.5 7.5 0 10-10.6 10.6l30 30a7.48 7.48 0 0010.6 0l30-30a7.5 7.5 0 00-10.6-10.6z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n </span>\r\n </span>\r\n\r\n <span *ngIf=\"!item.orderBy\" class=\"inline-block relative\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr class=\"divide-x divide-neutral-base\" *ngIf=\"hasFilters()\">\r\n <td *ngIf=\"hasCheckboxes\"></td>\r\n <td tabindex=\"-1\" *ngFor=\"let item of getHeaderCells(); index as iHead\" desyFocusClickedCell\r\n [class]=\"['align-top px-base pb-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\">\r\n <desy-search-bar *ngIf=\"item.hasFilter\"\r\n [(ngModel)]=\"item.valueFilter\" [ngModelOptions]=\"{standalone: true}\"\r\n (clickEvent)=\"handleInputSearch(item)\"\r\n (ngModelChange)=\"handleInputSearch(item)\"\r\n labelText=\"Buscar en esta columna\"\r\n [id]=\"getIdHeaderFilter(iHead)\"\r\n placeholder=\"Buscar\"\r\n [classes]=\"['c-input--sm', item.filterClasses] | makeHtmlList\"\r\n buttonClasses=\"m-xs p-0.5 text-xs\"\r\n [describedBy]=\"getIdHeader(iHead)\"> </desy-search-bar>\r\n </td>\r\n </tr>\r\n\r\n\r\n <tr *ngFor=\"let row of getVisibleRows(); index as iRow\" class=\"border-t border-b border-neutral-base hover:bg-neutral-lighter\"\r\n [desyRow]=\"row\"\r\n [ngClass]=\"{'bg-neutral-light': hasCheckboxes && row.checked }\">\r\n <td class=\"px-base py-sm\" tabindex=\"-1\" *ngIf=\"hasCheckboxes\" desyFocusClickedCell>\r\n <div class=\"c-checkboxes c-checkboxes--sm\">\r\n <div>\r\n <div class=\"relative flex items-start\">\r\n <div class=\"flex items-center mx-sm\">\r\n <input type=\"checkbox\" class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base text-primary-base\"\r\n [(ngModel)]=\"row.checked\" (ngModelChange)=\"handleCheckboxChange(row)\"\r\n [id]=\"getIdRowCheckbox(iRow)\"\r\n [name]=\"getIdRowCheckbox(iRow)\"\r\n [attr.aria-label]=\"'Fila ' + iRow\">\r\n </div>\r\n <div class=\"pt-0.5 leading-5\">\r\n <label class=\"sr-only block text-sm -mt-1\" [for]=\"getIdRowCheckbox(iRow)\">Selecciona esta fila</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let cell of row.cellsList; first as isFirstCell; index as columnIndex\">\r\n <th *ngIf=\"firstCellIsHeader && isFirstCell; else elseTd\" scope=\"row\"\r\n [class]=\"['px-base py-xs border-neutral-base border-b-0 border-r text-left font-normal text-sm text-neutral-dark', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n (desyContentEmpty)=\"handleTableCellContentEmpty(iRow, columnIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </th>\r\n <ng-template #elseTd>\r\n <td tabindex=\"-1\" desyFocusClickedCell\r\n [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n (desyContentEmpty)=\"handleTableCellContentEmpty(iRow, columnIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : -1\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n</table>\r\n"
6648
+ template: "<ng-template #tableContent>\r\n <table role=\"grid\"\r\n [class]=\"['c-table-advanced border-t-2 border-b-2 border-neutral-base', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\r\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\r\n </caption>\r\n <thead *ngIf=\"getHeaderCells()\">\r\n <tr class=\"border-t border-neutral-base divide-x divide-neutral-base\">\r\n <th *ngIf=\"hasCheckboxes\" scope=\"col\" [class]=\"['align-top px-base py-xs', checkboxClasses] | makeHtmlList\">\r\n <span class=\"sr-only\">Seleccionar fila</span>\r\n </th>\r\n <th scope=\"col\" *ngFor=\"let item of getHeaderCells(); index as iHeader\" [id]=\"getIdHeader(iHeader)\"\r\n [attr.aria-sort]=\"item.orderBy ? getStringOrderBy(item.orderBy) : null\"\r\n [class]=\"['align-top px-base py-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\"\r\n [attr.colspan]=\"item.colspan ? item.colspan : null\"\r\n [attr.rowspan]=\"item.rowspan ? item.rowspan : null\"\r\n [attr.role]=\"item.role ? item.role : null\"\r\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\r\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\r\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\r\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\r\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\r\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\r\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\r\n\r\n <span *ngIf=\"item.orderBy\" class=\"inline-block relative\" (click)=\"handleSortByColumn(iHeader)\" desyFocusClickedCell\r\n [attr.tabindex]=\"item.orderBy ? -1 : null\"\r\n [attr.role]=\"item.orderBy ? 'button' : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n <span class=\"c-table-advanced__order\" *ngIf=\"item.orderBy\">\r\n <span class=\"sr-only\">Pulsa para ordenar por esta columna</span>\r\n <span class=\"c-table-advanced__ascending\" *ngIf=\"item.orderBy == orderByType.asc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M112.07 37.93l-35-35a10 10 0 00-14.14 0l-35 35a10 10 0 0014.14 14.14l13.66-13.66A2.5 2.5 0 0160 40.18V130a10 10 0 0020 0V40.18a2.5 2.5 0 014.27-1.77l13.66 13.66a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__descending\" *ngIf=\"item.orderBy == orderByType.desc\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M27.93 102.07l35 35a10 10 0 0014.14 0l35-35a10 10 0 00-14.14-14.14l-13.66 13.66A2.5 2.5 0 0180 99.82V10a10 10 0 00-20 0v89.82a2.5 2.5 0 01-4.27 1.77L42.07 87.93a10 10 0 00-14.14 14.14z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n <span class=\"c-table-advanced__none\" *ngIf=\"item.orderBy == orderByType.none\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" class=\"text-neutral-base\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M94.7 97.2l-17.2 17.19V25.61L94.7 42.8a7.5 7.5 0 0010.6-10.6l-30-30a7.49 7.49 0 00-10.6 0l-30 30a7.5 7.5 0 0010.6 10.6l17.2-17.19v88.78L45.3 97.2a7.5 7.5 0 10-10.6 10.6l30 30a7.48 7.48 0 0010.6 0l30-30a7.5 7.5 0 00-10.6-10.6z\" fill=\"currentColor\"/></svg>\r\n </span>\r\n </span>\r\n </span>\r\n\r\n <span *ngIf=\"!item.orderBy\" class=\"inline-block relative\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\r\n </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody>\r\n <tr class=\"divide-x divide-neutral-base\" *ngIf=\"hasFilters()\">\r\n <td *ngIf=\"hasCheckboxes\" [ngClass]=\"checkboxClasses\"></td>\r\n <td tabindex=\"-1\" *ngFor=\"let item of getHeaderCells(); index as iHead\" desyFocusClickedCell\r\n [class]=\"['align-top px-base pb-sm border-neutral-base border-b-0 text-left text-sm font-normal text-neutral-dark', item.classes] | makeHtmlList\">\r\n <desy-search-bar *ngIf=\"item.hasFilter\"\r\n [(ngModel)]=\"item.valueFilter\" [ngModelOptions]=\"{standalone: true}\"\r\n (clickEvent)=\"handleInputSearch(item)\"\r\n (ngModelChange)=\"handleInputSearch(item)\"\r\n labelText=\"Buscar en esta columna\"\r\n [id]=\"getIdHeaderFilter(iHead)\"\r\n placeholder=\"Buscar\"\r\n [classes]=\"['c-input--sm', item.filterClasses] | makeHtmlList\"\r\n buttonClasses=\"m-xs p-0.5 text-xs\"\r\n [describedBy]=\"getIdHeader(iHead)\"> </desy-search-bar>\r\n </td>\r\n </tr>\r\n\r\n\r\n <tr *ngFor=\"let row of getVisibleRows(); index as iRow\" class=\"border-t border-b border-neutral-base hover:bg-neutral-lighter\"\r\n [desyRow]=\"row\"\r\n [ngClass]=\"{'bg-neutral-light': hasCheckboxes && row.checked }\">\r\n <td *ngIf=\"hasCheckboxes\" desyFocusClickedCell [class]=\"['px-base py-sm', checkboxClasses] | makeHtmlList\"\r\n tabindex=\"-1\" >\r\n <div class=\"c-checkboxes c-checkboxes--sm\">\r\n <div>\r\n <div class=\"relative flex items-start\">\r\n <div class=\"flex items-center mx-sm\">\r\n <input type=\"checkbox\" class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-light disabled:border-neutral-base text-primary-base\"\r\n [(ngModel)]=\"row.checked\" (ngModelChange)=\"handleCheckboxChange(row)\"\r\n [id]=\"getIdRowCheckbox(iRow)\"\r\n [name]=\"getIdRowCheckbox(iRow)\"\r\n [attr.aria-label]=\"'Fila ' + iRow\">\r\n </div>\r\n <div class=\"pt-0.5 leading-5\">\r\n <label class=\"sr-only block text-sm -mt-1\" [for]=\"getIdRowCheckbox(iRow)\">Selecciona fila {{ iRow }}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n <ng-container *ngFor=\"let cell of row.cellsList; first as isFirstCell; index as columnIndex\">\r\n <th *ngIf=\"firstCellIsHeader && isFirstCell; else elseTd\" scope=\"row\"\r\n [class]=\"['px-base py-xs border-neutral-base border-b-0 border-r text-left font-normal text-sm text-neutral-dark', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n (desyContentEmpty)=\"handleTableCellContentEmpty(iRow, columnIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </th>\r\n <ng-template #elseTd>\r\n <td tabindex=\"-1\" desyFocusClickedCell\r\n [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\r\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\r\n (desyContentEmpty)=\"handleTableCellContentEmpty(iRow, columnIndex)\"\r\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\r\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\r\n [attr.id]=\"cell.id ? cell.id : null\"\r\n [attr.role]=\"cell.role ? cell.role : null\"\r\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\r\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\r\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\r\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\r\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\r\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\r\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\r\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : -1\">\r\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</ng-template>\r\n\r\n<div *ngIf=\"wrapper; else tableContent\" [class]=\"wrapper.classes\">\r\n <ng-container *ngTemplateOutlet=\"tableContent\"></ng-container>\r\n</div>\r\n"
5593
6649
  },] }
5594
6650
  ];
5595
6651
  TableAdvancedComponent.ctorParameters = function () { return [
@@ -5605,7 +6661,9 @@
5605
6661
  hasCheckboxes: [{ type: i0.Input }],
5606
6662
  idPrefix: [{ type: i0.Input }],
5607
6663
  classes: [{ type: i0.Input }],
6664
+ checkboxClasses: [{ type: i0.Input }],
5608
6665
  id: [{ type: i0.Input }],
6666
+ wrapper: [{ type: i0.Input }],
5609
6667
  captionComponent: [{ type: i0.ContentChildren, args: [TableCaptionComponent,] }],
5610
6668
  headerComponent: [{ type: i0.ContentChildren, args: [TableAdvancedHeaderComponent,] }],
5611
6669
  rowComponentList: [{ type: i0.ContentChildren, args: [TableAdvancedRowComponent,] }],
@@ -5859,7 +6917,7 @@
5859
6917
  AccordionComponent.decorators = [
5860
6918
  { type: i0.Component, args: [{
5861
6919
  selector: 'desy-accordion',
5862
- template: "<div [class]=\"classes\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div class=\"flex justify-between\">\r\n <ng-container *ngIf=\"headingComponent || heading\">\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\r\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus\">\r\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"Accordion\">\r\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\r\n (keydown.home)=\"focusFirstItem($event)\"\r\n (keydown.end)=\"focusLastItem($event)\"\r\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\r\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\r\n (click)=\"selectItem(i)\">\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\r\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\r\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\r\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\r\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\r\n </ng-container>\r\n <p class=\"sr-only\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\r\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item content, html or text are required at position ' + i)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.role]=\"(item.role ? role : 'accordion')\"\r\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\r\n <button #itemSelector [id]=\"id + '-title'\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item heading content, html or text are required at position ' + index)\"\r\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\r\n <span #desyContentEmptyIgnore *ngIf=\"allowToggle || !item.open\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\">\r\n {{ item.open ? 'Ocultar' : 'Mostrar' }}\r\n </span>\r\n </button>\r\n</ng-template>\r\n"
6920
+ template: "<div [class]=\"classes\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div class=\"flex justify-between\">\r\n <ng-container *ngIf=\"headingComponent || heading\">\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\" (desyContentEmpty)=\"handleRequiredEmpty('heading content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: headingComponent ? headingComponent : null,\r\n html: heading ? heading.html : null,\r\n text: heading ? heading.text : null\r\n }\"></ng-container>\r\n </h5>\r\n </ng-container>\r\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\r\n class=\"ml-auto py-base text-sm text-neutral-dark underline focus:text-black focus:bg-warning-base focus:outline-none focus:shadow-outline-focus\">\r\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"Accordion\">\r\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\r\n (keydown.home)=\"focusFirstItem($event)\"\r\n (keydown.end)=\"focusLastItem($event)\"\r\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\r\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\r\n (click)=\"selectItem(i)\">\r\n\r\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\r\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\r\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\r\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\r\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\r\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\r\n </ng-container>\r\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el bot\u00F3n anterior para mostrar u ocultar</p>\r\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item content, html or text are required at position ' + i)\"\r\n [attr.id]=\"getItemId(item, i)\"\r\n [attr.role]=\"(item.role ? role : 'accordion')\"\r\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\r\n <button #itemSelector [id]=\"id + '-title'\" class=\"Accordion-trigger group relative w-full py-sm font-semibold text-left cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item heading content, html or text are required at position ' + index)\"\r\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\r\n <span #desyContentEmptyIgnore *ngIf=\"allowToggle || !item.open\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\">\r\n {{ item.open ? 'Ocultar' : 'Mostrar' }}\r\n </span>\r\n </button>\r\n</ng-template>\r\n"
5863
6921
  },] }
5864
6922
  ];
5865
6923
  AccordionComponent.propDecorators = {
@@ -6139,6 +7197,11 @@
6139
7197
  _this.hasIconContent = true;
6140
7198
  return _this;
6141
7199
  }
7200
+ ItemComponent.prototype.ngAfterViewInit = function () {
7201
+ if (!this.titleComponent && !this.title) {
7202
+ throw new Error('title is required');
7203
+ }
7204
+ };
6142
7205
  ItemComponent.prototype.getItems = function () {
6143
7206
  return this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;
6144
7207
  };
@@ -6149,12 +7212,15 @@
6149
7212
  ItemComponent.prototype.handleRequiredEmpty = function (text) {
6150
7213
  throw new Error(text);
6151
7214
  };
7215
+ ItemComponent.prototype.getTitle = function () {
7216
+ return this.titleComponent ? this.titleComponent : this.title;
7217
+ };
6152
7218
  return ItemComponent;
6153
7219
  }(AccessibilityComponent));
6154
7220
  ItemComponent.decorators = [
6155
7221
  { type: i0.Component, args: [{
6156
7222
  selector: 'desy-item',
6157
- template: "<div [class]=\"['flex flex-wrap p-base border border-neutral-base rounded', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <div class=\"self-center h-full mr-lg\" *ngIf=\"isDraggable || isLocked\">\r\n <svg *ngIf=\"isDraggable && !isLocked\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-neutral-base\" aria-hidden=\"true\" focusable=\"false\"><g fill=\"currentColor\"><path d=\"M41 28a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M79.999 28a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M41 70a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M79.999 70a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M41 112a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M79.999 112a10 10 0 1010-10 10 10 0 00-10 10z\"/></g></svg>\r\n <svg *ngIf=\"isLocked && !isDraggable\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-base h-base text-neutral-dark\" aria-label=\"Item Bloqueado\" focusable=\"false\"><path d=\"M115 55.86V45a45 45 0 00-90 0v10.86A15 15 0 0015 70v55a15 15 0 0015 15h80a15 15 0 0015-15V70a15 15 0 00-10-14.14zM70 110a12.5 12.5 0 1112.5-12.5A12.5 12.5 0 0170 110zm25-55H45V45a25 25 0 0150 0z\" fill=\"currentColor\"/></svg>\r\n </div>\r\n <div class=\"self-center h-full mr-lg\" *ngIf=\"iconComponent || icon\"\r\n (desyContentEmpty)=\"handleIconContentEmpty(true)\"\r\n (desyContentNotEmpty)=\"handleIconContentEmpty(false)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\r\n <ng-container *ngIf=\"!hasIconContent\">\r\n <ng-container [ngSwitch]=\"iconComponent ? iconComponent.type : icon.type\">\r\n <svg *ngSwitchCase=\"'clipboard'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Item tipo Solicitud\" focusable=\"false\"><path d=\"M96.25 52.5h-52.5a4.375 4.375 0 000 8.75h52.5a4.375 4.375 0 000-8.75zM100.625 77.286a4.375 4.375 0 00-4.375-4.375h-52.5a4.375 4.375 0 000 8.75h52.5a4.375 4.375 0 004.375-4.375zM58.333 37.917h23.334a5.833 5.833 0 005.833-5.834V17.5A17.54 17.54 0 0065.287.624 17.762 17.762 0 0052.5 18.007v14.076a5.833 5.833 0 005.833 5.834zm7.292-21.875A4.375 4.375 0 1170 20.417a4.375 4.375 0 01-4.375-4.381z\" fill=\"currentColor\"/><path d=\"M113.75 17.5H97.708a1.458 1.458 0 00-1.458 1.458v8.75a1.458 1.458 0 001.458 1.459h13.125a2.917 2.917 0 012.917 2.916v74.62a2.917 2.917 0 01-.852 2.065l-18.713 18.708a2.917 2.917 0 01-2.06.851H29.168a2.917 2.917 0 01-2.917-2.916V32.083a2.917 2.917 0 012.917-2.916h13.125a1.458 1.458 0 001.458-1.459v-8.75a1.458 1.458 0 00-1.458-1.458H26.25a11.667 11.667 0 00-11.667 11.667v99.166A11.667 11.667 0 0026.25 140h87.5a11.667 11.667 0 0011.667-11.667V29.167A11.667 11.667 0 00113.75 17.5z\" fill=\"currentColor\"/><path d=\"M43.75 93.333a4.375 4.375 0 000 8.75h21.875a4.375 4.375 0 000-8.75z\" fill=\"currentColor\"/></svg>\r\n <svg *ngSwitchCase=\"'link'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Item tipo Link\" focusable=\"false\"><path d=\"M72.368 86.946a5.833 5.833 0 00-3.167 7.624 5.833 5.833 0 01-1.266 6.358l-16.497 16.503a11.667 11.667 0 01-16.496 0l-12.379-12.373a11.667 11.667 0 010-16.502l16.52-16.497a5.91 5.91 0 016.364-1.266 5.834 5.834 0 004.451-10.786 17.698 17.698 0 00-19.063 3.804l-16.52 16.497a23.368 23.368 0 000 32.999l12.378 12.372a23.333 23.333 0 0032.994 0l16.502-16.496a17.547 17.547 0 003.798-19.075 5.833 5.833 0 00-7.619-3.162z\" fill=\"currentColor\"/><path d=\"M45.25 94.74a5.897 5.897 0 008.247 0l45.378-45.373a5.833 5.833 0 00-8.248-8.248L45.249 86.491a5.833 5.833 0 000 8.248z\" fill=\"currentColor\"/><path d=\"M125.685 26.682l-12.373-12.373a23.368 23.368 0 00-32.999 0L63.811 30.806a17.535 17.535 0 00-3.798 19.069A5.835 5.835 0 1070.8 45.418a5.833 5.833 0 011.266-6.335l16.497-16.496a11.667 11.667 0 0116.502 0l12.373 12.372a11.667 11.667 0 010 16.503l-16.52 16.467a5.92 5.92 0 01-6.364 1.266 5.836 5.836 0 00-4.463 10.786 17.652 17.652 0 0019.075-3.798l16.497-16.496a23.374 23.374 0 00.023-33.005z\" fill=\"currentColor\"/></svg>\r\n <svg *ngSwitchCase=\"'document'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Item tipo Archivo\" focusable=\"false\"><path d=\"M89.355 12.518l26.46 26.46a2.917 2.917 0 01.852 2.06v84.379a2.917 2.917 0 01-2.917 2.916h-87.5a2.917 2.917 0 01-2.917-2.916V14.583a2.917 2.917 0 012.917-2.916h61.046a2.917 2.917 0 012.059.851zM90.918 0H23.333a11.667 11.667 0 00-11.666 11.667v116.666A11.667 11.667 0 0023.333 140h93.334a11.667 11.667 0 0011.666-11.667V37.415a5.833 5.833 0 00-1.709-4.124L95.042 1.709A5.833 5.833 0 0090.918 0z\" fill=\"currentColor\"/><path d=\"M93.333 64.167h-52.5a5.833 5.833 0 010-11.667h52.5a5.833 5.833 0 010 11.667zM93.333 87.5h-52.5a5.833 5.833 0 010-11.667h52.5a5.833 5.833 0 010 11.667zM67.083 110.833h-26.25a5.833 5.833 0 010-11.666h26.25a5.833 5.833 0 010 11.666z\" fill=\"currentColor\"/></svg>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"lg:flex flex-1 self-center\">\r\n <div class=\"lg:flex-1 lg:self-center\">\r\n <p [class]=\"titleComponent ? titleComponent.classes : title.classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title ' + (titleComponent || title ? 'content, html or text are required' : 'is required'))\">\r\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: title ? title.html : null, text: title ? title.text : null }\"></ng-container>\r\n </p>\r\n <p *ngIf=\"descriptionComponent || description\" [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('description content, html or text are required')\">\r\n <ng-container *desyCustomInnerContent=\"{ component: descriptionComponent, html: description ? description.html : null, text: description ? description.text : null }\"></ng-container>\r\n </p>\r\n <ul class=\"-ml-sm lg:divide-x lg:divide-neutral-base\" *ngIf=\"itemComponents.length > 0 || items\">\r\n <li class=\"lg:inline-block px-sm text-sm text-neutral-dark\" *ngFor=\"let item of getItems(); index as index\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item content, html or text are required at position ' + index)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n <p *ngIf=\"contentBottomComponent || content\" [class]=\"contentBottomComponent ? contentBottomComponent.classes : content.classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty(contentBottomComponent ? 'content for content at bottom is required' : 'html or text for content at bottom are required')\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentBottomComponent, html: content ? content.html : null, text: content ? content.text : null }\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"w-full lg:w-auto lg:text-right mt-base lg:mt-0 lg:ml-base\" *ngIf=\"contentRightComponent || caller\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentRightComponent, template: caller }\"></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n"
7223
+ template: "<div [class]=\"['flex flex-wrap p-base bg-white border border-neutral-base rounded', classes] | makeHtmlList\"\r\n [attr.id]=\"id ? id : null\">\r\n <div class=\"self-center h-full mr-lg\" *ngIf=\"isDraggable || isLocked\">\r\n <svg *ngIf=\"isDraggable && !isLocked\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-neutral-base\" aria-hidden=\"true\" focusable=\"false\"><g fill=\"currentColor\"><path d=\"M41 28a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M79.999 28a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M41 70a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M79.999 70a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M41 112a10 10 0 1010-10 10 10 0 00-10 10z\"/><path d=\"M79.999 112a10 10 0 1010-10 10 10 0 00-10 10z\"/></g></svg>\r\n <svg *ngIf=\"isLocked && !isDraggable\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-base h-base text-neutral-dark\" aria-label=\"Item Bloqueado\" focusable=\"false\"><path d=\"M115 55.86V45a45 45 0 00-90 0v10.86A15 15 0 0015 70v55a15 15 0 0015 15h80a15 15 0 0015-15V70a15 15 0 00-10-14.14zM70 110a12.5 12.5 0 1112.5-12.5A12.5 12.5 0 0170 110zm25-55H45V45a25 25 0 0150 0z\" fill=\"currentColor\"/></svg>\r\n </div>\r\n <div class=\"self-center h-full mr-lg\" *ngIf=\"iconComponent || icon\"\r\n (desyContentEmpty)=\"handleIconContentEmpty(true)\"\r\n (desyContentNotEmpty)=\"handleIconContentEmpty(false)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\r\n <ng-container *ngIf=\"!hasIconContent\">\r\n <ng-container [ngSwitch]=\"iconComponent ? iconComponent.type : icon.type\">\r\n <svg *ngSwitchCase=\"'clipboard'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Item tipo Solicitud\" focusable=\"false\"><path d=\"M96.25 52.5h-52.5a4.375 4.375 0 000 8.75h52.5a4.375 4.375 0 000-8.75zM100.625 77.286a4.375 4.375 0 00-4.375-4.375h-52.5a4.375 4.375 0 000 8.75h52.5a4.375 4.375 0 004.375-4.375zM58.333 37.917h23.334a5.833 5.833 0 005.833-5.834V17.5A17.54 17.54 0 0065.287.624 17.762 17.762 0 0052.5 18.007v14.076a5.833 5.833 0 005.833 5.834zm7.292-21.875A4.375 4.375 0 1170 20.417a4.375 4.375 0 01-4.375-4.381z\" fill=\"currentColor\"/><path d=\"M113.75 17.5H97.708a1.458 1.458 0 00-1.458 1.458v8.75a1.458 1.458 0 001.458 1.459h13.125a2.917 2.917 0 012.917 2.916v74.62a2.917 2.917 0 01-.852 2.065l-18.713 18.708a2.917 2.917 0 01-2.06.851H29.168a2.917 2.917 0 01-2.917-2.916V32.083a2.917 2.917 0 012.917-2.916h13.125a1.458 1.458 0 001.458-1.459v-8.75a1.458 1.458 0 00-1.458-1.458H26.25a11.667 11.667 0 00-11.667 11.667v99.166A11.667 11.667 0 0026.25 140h87.5a11.667 11.667 0 0011.667-11.667V29.167A11.667 11.667 0 00113.75 17.5z\" fill=\"currentColor\"/><path d=\"M43.75 93.333a4.375 4.375 0 000 8.75h21.875a4.375 4.375 0 000-8.75z\" fill=\"currentColor\"/></svg>\r\n <svg *ngSwitchCase=\"'link'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Item tipo Link\" focusable=\"false\"><path d=\"M72.368 86.946a5.833 5.833 0 00-3.167 7.624 5.833 5.833 0 01-1.266 6.358l-16.497 16.503a11.667 11.667 0 01-16.496 0l-12.379-12.373a11.667 11.667 0 010-16.502l16.52-16.497a5.91 5.91 0 016.364-1.266 5.834 5.834 0 004.451-10.786 17.698 17.698 0 00-19.063 3.804l-16.52 16.497a23.368 23.368 0 000 32.999l12.378 12.372a23.333 23.333 0 0032.994 0l16.502-16.496a17.547 17.547 0 003.798-19.075 5.833 5.833 0 00-7.619-3.162z\" fill=\"currentColor\"/><path d=\"M45.25 94.74a5.897 5.897 0 008.247 0l45.378-45.373a5.833 5.833 0 00-8.248-8.248L45.249 86.491a5.833 5.833 0 000 8.248z\" fill=\"currentColor\"/><path d=\"M125.685 26.682l-12.373-12.373a23.368 23.368 0 00-32.999 0L63.811 30.806a17.535 17.535 0 00-3.798 19.069A5.835 5.835 0 1070.8 45.418a5.833 5.833 0 011.266-6.335l16.497-16.496a11.667 11.667 0 0116.502 0l12.373 12.372a11.667 11.667 0 010 16.503l-16.52 16.467a5.92 5.92 0 01-6.364 1.266 5.836 5.836 0 00-4.463 10.786 17.652 17.652 0 0019.075-3.798l16.497-16.496a23.374 23.374 0 00.023-33.005z\" fill=\"currentColor\"/></svg>\r\n <svg *ngSwitchCase=\"'document'\" #desyContentEmptyIgnore xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Item tipo Archivo\" focusable=\"false\"><path d=\"M89.355 12.518l26.46 26.46a2.917 2.917 0 01.852 2.06v84.379a2.917 2.917 0 01-2.917 2.916h-87.5a2.917 2.917 0 01-2.917-2.916V14.583a2.917 2.917 0 012.917-2.916h61.046a2.917 2.917 0 012.059.851zM90.918 0H23.333a11.667 11.667 0 00-11.666 11.667v116.666A11.667 11.667 0 0023.333 140h93.334a11.667 11.667 0 0011.666-11.667V37.415a5.833 5.833 0 00-1.709-4.124L95.042 1.709A5.833 5.833 0 0090.918 0z\" fill=\"currentColor\"/><path d=\"M93.333 64.167h-52.5a5.833 5.833 0 010-11.667h52.5a5.833 5.833 0 010 11.667zM93.333 87.5h-52.5a5.833 5.833 0 010-11.667h52.5a5.833 5.833 0 010 11.667zM67.083 110.833h-26.25a5.833 5.833 0 010-11.666h26.25a5.833 5.833 0 010 11.666z\" fill=\"currentColor\"/></svg>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"lg:flex flex-1 self-center\">\r\n <div class=\"lg:flex-1 lg:self-center\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\"\r\n [class]=\"getTitle().classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title content, html or text are required')\"\r\n [attr.role]=\"getTitle().role\" [attr.aria-describedby]=\"getTitle().ariaDescribedBy\" [attr.aria-errormessage]=\"getTitle().ariaErrorMessage\" [attr.aria-label]=\"getTitle().ariaLabel\" [attr.aria-labelledby]=\"getTitle().ariaLabelledBy\" [attr.aria-hidden]=\"getTitle().ariaHidden\" [attr.aria-disabled]=\"getTitle().ariaDisabled\" [attr.aria-controls]=\"getTitle().ariaControls\" [attr.aria-current]=\"getTitle().ariaCurrent\" [attr.aria-live]=\"getTitle().ariaLive\" [attr.aria-expanded]=\"getTitle().ariaExpanded\" [attr.aria-haspopup]=\"getTitle().ariaHasPopup\" [attr.tabindex]=\"getTitle().tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\"\r\n [class]=\"getTitle().classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title content, html or text are required')\"\r\n [attr.role]=\"getTitle().role\" [attr.aria-describedby]=\"getTitle().ariaDescribedBy\" [attr.aria-errormessage]=\"getTitle().ariaErrorMessage\" [attr.aria-label]=\"getTitle().ariaLabel\" [attr.aria-labelledby]=\"getTitle().ariaLabelledBy\" [attr.aria-hidden]=\"getTitle().ariaHidden\" [attr.aria-disabled]=\"getTitle().ariaDisabled\" [attr.aria-controls]=\"getTitle().ariaControls\" [attr.aria-current]=\"getTitle().ariaCurrent\" [attr.aria-live]=\"getTitle().ariaLive\" [attr.aria-expanded]=\"getTitle().ariaExpanded\" [attr.aria-haspopup]=\"getTitle().ariaHasPopup\" [attr.tabindex]=\"getTitle().tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\"\r\n [class]=\"getTitle().classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title content, html or text are required')\"\r\n [attr.role]=\"getTitle().role\" [attr.aria-describedby]=\"getTitle().ariaDescribedBy\" [attr.aria-errormessage]=\"getTitle().ariaErrorMessage\" [attr.aria-label]=\"getTitle().ariaLabel\" [attr.aria-labelledby]=\"getTitle().ariaLabelledBy\" [attr.aria-hidden]=\"getTitle().ariaHidden\" [attr.aria-disabled]=\"getTitle().ariaDisabled\" [attr.aria-controls]=\"getTitle().ariaControls\" [attr.aria-current]=\"getTitle().ariaCurrent\" [attr.aria-live]=\"getTitle().ariaLive\" [attr.aria-expanded]=\"getTitle().ariaExpanded\" [attr.aria-haspopup]=\"getTitle().ariaHasPopup\" [attr.tabindex]=\"getTitle().tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\"\r\n [class]=\"getTitle().classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title content, html or text are required')\"\r\n [attr.role]=\"getTitle().role\" [attr.aria-describedby]=\"getTitle().ariaDescribedBy\" [attr.aria-errormessage]=\"getTitle().ariaErrorMessage\" [attr.aria-label]=\"getTitle().ariaLabel\" [attr.aria-labelledby]=\"getTitle().ariaLabelledBy\" [attr.aria-hidden]=\"getTitle().ariaHidden\" [attr.aria-disabled]=\"getTitle().ariaDisabled\" [attr.aria-controls]=\"getTitle().ariaControls\" [attr.aria-current]=\"getTitle().ariaCurrent\" [attr.aria-live]=\"getTitle().ariaLive\" [attr.aria-expanded]=\"getTitle().ariaExpanded\" [attr.aria-haspopup]=\"getTitle().ariaHasPopup\" [attr.tabindex]=\"getTitle().tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\"\r\n [class]=\"getTitle().classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title content, html or text are required')\"\r\n [attr.role]=\"getTitle().role\" [attr.aria-describedby]=\"getTitle().ariaDescribedBy\" [attr.aria-errormessage]=\"getTitle().ariaErrorMessage\" [attr.aria-label]=\"getTitle().ariaLabel\" [attr.aria-labelledby]=\"getTitle().ariaLabelledBy\" [attr.aria-hidden]=\"getTitle().ariaHidden\" [attr.aria-disabled]=\"getTitle().ariaDisabled\" [attr.aria-controls]=\"getTitle().ariaControls\" [attr.aria-current]=\"getTitle().ariaCurrent\" [attr.aria-live]=\"getTitle().ariaLive\" [attr.aria-expanded]=\"getTitle().ariaExpanded\" [attr.aria-haspopup]=\"getTitle().ariaHasPopup\" [attr.tabindex]=\"getTitle().tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\r\n </h5>\r\n <p *ngSwitchDefault\r\n [class]=\"getTitle().classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('title content, html or text are required')\"\r\n [attr.role]=\"getTitle().role\" [attr.aria-describedby]=\"getTitle().ariaDescribedBy\" [attr.aria-errormessage]=\"getTitle().ariaErrorMessage\" [attr.aria-label]=\"getTitle().ariaLabel\" [attr.aria-labelledby]=\"getTitle().ariaLabelledBy\" [attr.aria-hidden]=\"getTitle().ariaHidden\" [attr.aria-disabled]=\"getTitle().ariaDisabled\" [attr.aria-controls]=\"getTitle().ariaControls\" [attr.aria-current]=\"getTitle().ariaCurrent\" [attr.aria-live]=\"getTitle().ariaLive\" [attr.aria-expanded]=\"getTitle().ariaExpanded\" [attr.aria-haspopup]=\"getTitle().ariaHasPopup\" [attr.tabindex]=\"getTitle().tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\r\n </p>\r\n </ng-container>\r\n\r\n <p *ngIf=\"descriptionComponent || description\" [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('description content, html or text are required')\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n <ng-container *desyCustomInnerContent=\"{ component: descriptionComponent, html: description ? description.html : null, text: description ? description.text : null }\"></ng-container>\r\n </p>\r\n <ul class=\"-ml-sm lg:divide-x lg:divide-neutral-base\" *ngIf=\"itemComponents.length > 0 || items\">\r\n <li class=\"lg:inline-block px-sm text-sm text-neutral-dark\" *ngFor=\"let item of getItems(); index as index\"\r\n (desyContentEmpty)=\"handleRequiredEmpty('item content, html or text are required at position ' + index)\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n <p *ngIf=\"contentBottomComponent || content\" [class]=\"contentBottomComponent ? contentBottomComponent.classes : content.classes\"\r\n (desyContentEmpty)=\"handleRequiredEmpty(contentBottomComponent ? 'content for content at bottom is required' : 'html or text for content at bottom are required')\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentBottomComponent, html: content ? content.html : null, text: content ? content.text : null }\"></ng-container>\r\n </p>\r\n </div>\r\n <div class=\"w-full lg:w-auto lg:text-right mt-base lg:mt-0 lg:ml-base\" *ngIf=\"contentRightComponent || caller\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentRightComponent, template: caller }\"></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n"
6158
7224
  },] }
6159
7225
  ];
6160
7226
  ItemComponent.ctorParameters = function () { return [
@@ -6163,6 +7229,7 @@
6163
7229
  ItemComponent.propDecorators = {
6164
7230
  title: [{ type: i0.Input }],
6165
7231
  description: [{ type: i0.Input }],
7232
+ headingLevel: [{ type: i0.Input }],
6166
7233
  items: [{ type: i0.Input }],
6167
7234
  content: [{ type: i0.Input }],
6168
7235
  icon: [{ type: i0.Input }],
@@ -6285,7 +7352,7 @@
6285
7352
  StatusItemComponent.decorators = [
6286
7353
  { type: i0.Component, args: [{
6287
7354
  selector: 'desy-status-item',
6288
- template: "<ng-template #commonHtml>\r\n <p *ngIf=\"titleComponent || title\" [class]=\"title ? title.classes : 'my-sm'\"\r\n (desyContentEmpty)=\"handleContentEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: titleComponent,\r\n html: title ? title.html : null,\r\n text: title ? title.text : null\r\n }\"></ng-container>\r\n </p>\r\n\r\n <ng-container *ngIf=\"hintComponent\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hintComponent && hint\">\r\n <desy-hint [text]=\"hint.text\" [html]=\"hint.html\" [classes]=\"hint.classes\" [id]=\"hint.id\"\r\n [role]=\"hint.role\"\r\n [ariaLabel]=\"hint.ariaLabel\"\r\n [ariaDescribedBy]=\"(hint.ariaDescribedBy ? hint.ariaDescribedBy + '' + hint.id : hint.id)\"\r\n [ariaLabelledBy]=\"hint.ariaLabelledBy\"\r\n [ariaHidden]=\"hint.ariaHidden\"\r\n [ariaDisabled]=\"hint.ariaDisabled\"\r\n [ariaControls]=\"hint.ariaControls\"\r\n [ariaCurrent]=\"hint.ariaCurrent\"\r\n [ariaLive]=\"hint.ariaLive\"\r\n [ariaExpanded]=\"hint.ariaExpanded\"\r\n [ariaErrorMessage]=\"hint.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hint.ariaHasPopup\"\r\n [tabindex]=\"hint.tabindex\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"errorMessageComponent\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!errorMessageComponent && errorMessage\">\r\n <desy-error-message [text]=\"errorMessage.text\" [html]=\"errorMessage.html\"\r\n [visuallyHiddenText]=\"errorMessage.visuallyHiddenText\"\r\n [id]=\"(errorId ? errorId : id + '-error')\" [classes]=\"errorMessage.classes\"\r\n [role]=\"errorMessage.role\"\r\n [ariaLabel]=\"errorMessage.ariaLabel\"\r\n [ariaDescribedBy]=\"(errorMessage.ariaDescribedBy ? errorMessage.ariaDescribedBy + '' + errorId : errorId)\"\r\n [ariaLabelledBy]=\"errorMessage.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessage.ariaHidden\"\r\n [ariaDisabled]=\"errorMessage.ariaDisabled\"\r\n [ariaControls]=\"errorMessage.ariaControls\"\r\n [ariaCurrent]=\"errorMessage.ariaCurrent\"\r\n [ariaLive]=\"errorMessage.ariaLive\"\r\n [ariaExpanded]=\"errorMessage.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessage.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessage.ariaHasPopup\"\r\n [tabindex]=\"errorMessage.tabindex\"></desy-error-message>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? classes : null)\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n\r\n <div class=\"lg:flex lg:justify-between lg:items-start -my-px px-base py-sm border-t border-b border-neutral-base\">\r\n <ng-container *ngIf=\"getItems(); else noItems\">\r\n <dl class=\"lg:w-2/3\">\r\n <ng-container *ngTemplateOutlet=\"commonHtml\"></ng-container>\r\n <div *ngFor=\"let item of getItems()\"\r\n [class]=\"(item.classes ? 'flex lg-flex-wrap ' + item.classes : 'flex lg-flex-wrap')\"\r\n [attr.id]=\"item.id ? item.id : null\"\r\n [attr.role]=\"item.role\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-disabled]=\"item.ariaDisabled\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\r\n <dt [class]=\"(item.term.classes ? item.term.classes : 'w-1/2 my-sm')\"\r\n (desyContentEmpty)=\"handleContentEmpty('term')\"\r\n [attr.id]=\"item.term.id ? item.term.id : null\"\r\n [attr.role]=\"item.term.role\"\r\n [attr.aria-describedby]=\"item.term.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.term.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.term.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.term.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.term.ariaHidden\"\r\n [attr.aria-disabled]=\"item.term.ariaDisabled\"\r\n [attr.aria-controls]=\"item.term.ariaControls\"\r\n [attr.aria-current]=\"item.term.ariaCurrent\"\r\n [attr.aria-live]=\"item.term.ariaLive\"\r\n [attr.aria-expanded]=\"item.term.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.term.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.term, html: item.term.html, text: item.term.text}\"></ng-container>\r\n </dt>\r\n <dd [class]=\"(item.definition.classes ? item.definition.classes : 'w-1/2 my-sm font-semibold')\"\r\n (desyContentEmpty)=\"handleContentEmpty('definition')\"\r\n [attr.id]=\"item.definition.id ? item.definition.id : null\"\r\n [attr.role]=\"item.definition.role\"\r\n [attr.aria-describedby]=\"item.definition.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.definition.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.definition.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.definition.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.definition.ariaHidden\"\r\n [attr.aria-disabled]=\"item.definition.ariaDisabled\"\r\n [attr.aria-controls]=\"item.definition.ariaControls\"\r\n [attr.aria-current]=\"item.definition.ariaCurrent\"\r\n [attr.aria-live]=\"item.definition.ariaLive\"\r\n [attr.aria-expanded]=\"item.definition.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.definition.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.definition, html: item.definition.html, text: item.definition.text}\"></ng-container>\r\n </dd>\r\n </div>\r\n </dl>\r\n </ng-container>\r\n <ng-template #noItems>\r\n <div class=\"lg:w-2/3\">\r\n <ng-container *ngTemplateOutlet=\"commonHtml\"></ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"lg:flex lg:flex-wrap lg:items-center lg:1/3\">\r\n\r\n <div *ngIf=\"contentComponent || caller\" [id]=\"id + '-status-item'\"\r\n [class]=\"'w-full lg:w-auto lg:text-right mt-base lg:mt-0 mb-base lg:mb-0'\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"statusComponent || status\" class=\"mb-base lg:mb-0 ml-base\">\r\n <ng-container *ngIf=\"statusComponent\">\r\n <ng-content select=\"desy-status\"></ng-content>\r\n </ng-container>\r\n <desy-status *ngIf=\"!statusComponent && status\"\r\n [text]=\"status.text\" [icon]=\"status.icon\" [classes]=\"status.classes\" [id]=\"status.id\"\r\n [role]=\"status.role\"\r\n [ariaLabel]=\"status.ariaLabel\"\r\n [ariaDescribedBy]=\"status.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"status.ariaLabelledBy\"\r\n [ariaHidden]=\"status.ariaHidden\"\r\n [ariaDisabled]=\"status.ariaDisabled\"\r\n [ariaControls]=\"status.ariaControls\"\r\n [ariaCurrent]=\"status.ariaCurrent\"\r\n [ariaLive]=\"status.ariaLive\"\r\n [ariaExpanded]=\"status.ariaExpanded\"\r\n [ariaErrorMessage]=\"status.ariaErrorMessage\"\r\n [ariaHasPopup]=\"status.ariaHasPopup\"\r\n [tabindex]=\"status.tabindex\"></desy-status>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n"
7355
+ template: "<ng-template #commonHtml>\r\n <p *ngIf=\"titleComponent || title\" [class]=\"title ? title.classes : 'my-sm'\"\r\n (desyContentEmpty)=\"handleContentEmpty('title')\">\r\n <ng-container *desyCustomInnerContent=\"{\r\n component: titleComponent,\r\n html: title ? title.html : null,\r\n text: title ? title.text : null\r\n }\"></ng-container>\r\n </p>\r\n\r\n <ng-container *ngIf=\"hintComponent\">\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hintComponent && hint\">\r\n <desy-hint [text]=\"hint.text\" [html]=\"hint.html\" [classes]=\"hint.classes\" [id]=\"hint.id\"\r\n [role]=\"hint.role\"\r\n [ariaLabel]=\"hint.ariaLabel\"\r\n [ariaDescribedBy]=\"(hint.ariaDescribedBy ? hint.ariaDescribedBy + '' + hint.id : hint.id)\"\r\n [ariaLabelledBy]=\"hint.ariaLabelledBy\"\r\n [ariaHidden]=\"hint.ariaHidden\"\r\n [ariaDisabled]=\"hint.ariaDisabled\"\r\n [ariaControls]=\"hint.ariaControls\"\r\n [ariaCurrent]=\"hint.ariaCurrent\"\r\n [ariaLive]=\"hint.ariaLive\"\r\n [ariaExpanded]=\"hint.ariaExpanded\"\r\n [ariaErrorMessage]=\"hint.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hint.ariaHasPopup\"\r\n [tabindex]=\"hint.tabindex\"></desy-hint>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"errorMessageComponent\">\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!errorMessageComponent && errorMessage\">\r\n <desy-error-message [text]=\"errorMessage.text\" [html]=\"errorMessage.html\"\r\n [visuallyHiddenText]=\"errorMessage.visuallyHiddenText\"\r\n [id]=\"(errorId ? errorId : id + '-error')\" [classes]=\"errorMessage.classes\"\r\n [role]=\"errorMessage.role\"\r\n [ariaLabel]=\"errorMessage.ariaLabel\"\r\n [ariaDescribedBy]=\"(errorMessage.ariaDescribedBy ? errorMessage.ariaDescribedBy + '' + errorId : errorId)\"\r\n [ariaLabelledBy]=\"errorMessage.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessage.ariaHidden\"\r\n [ariaDisabled]=\"errorMessage.ariaDisabled\"\r\n [ariaControls]=\"errorMessage.ariaControls\"\r\n [ariaCurrent]=\"errorMessage.ariaCurrent\"\r\n [ariaLive]=\"errorMessage.ariaLive\"\r\n [ariaExpanded]=\"errorMessage.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessage.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessage.ariaHasPopup\"\r\n [tabindex]=\"errorMessage.tabindex\"></desy-error-message>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? classes : null)\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n\r\n <div class=\"lg:flex lg:justify-between lg:items-start -my-px px-base py-sm border-t border-b border-neutral-base\">\r\n <ng-container *ngIf=\"getItems(); else noItems\">\r\n <div class=\"lg:w-2/3\">\r\n <ng-container *ngTemplateOutlet=\"commonHtml\"></ng-container>\r\n <dl>\r\n <div *ngFor=\"let item of getItems()\"\r\n [class]=\"(item.classes ? 'flex lg-flex-wrap ' + item.classes : 'flex lg-flex-wrap')\"\r\n [attr.id]=\"item.id ? item.id : null\"\r\n [attr.role]=\"item.role\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-disabled]=\"item.ariaDisabled\"\r\n [attr.aria-controls]=\"item.ariaControls\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\r\n <dt [class]=\"(item.term.classes ? item.term.classes : 'w-1/2 my-sm')\"\r\n (desyContentEmpty)=\"handleContentEmpty('term')\"\r\n [attr.id]=\"item.term.id ? item.term.id : null\"\r\n [attr.role]=\"item.term.role\"\r\n [attr.aria-describedby]=\"item.term.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.term.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.term.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.term.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.term.ariaHidden\"\r\n [attr.aria-disabled]=\"item.term.ariaDisabled\"\r\n [attr.aria-controls]=\"item.term.ariaControls\"\r\n [attr.aria-current]=\"item.term.ariaCurrent\"\r\n [attr.aria-live]=\"item.term.ariaLive\"\r\n [attr.aria-expanded]=\"item.term.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.term.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.term, html: item.term.html, text: item.term.text}\"></ng-container>\r\n </dt>\r\n <dd [class]=\"(item.definition.classes ? item.definition.classes : 'w-1/2 my-sm font-semibold')\"\r\n (desyContentEmpty)=\"handleContentEmpty('definition')\"\r\n [attr.id]=\"item.definition.id ? item.definition.id : null\"\r\n [attr.role]=\"item.definition.role\"\r\n [attr.aria-describedby]=\"item.definition.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.definition.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.definition.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.definition.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.definition.ariaHidden\"\r\n [attr.aria-disabled]=\"item.definition.ariaDisabled\"\r\n [attr.aria-controls]=\"item.definition.ariaControls\"\r\n [attr.aria-current]=\"item.definition.ariaCurrent\"\r\n [attr.aria-live]=\"item.definition.ariaLive\"\r\n [attr.aria-expanded]=\"item.definition.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.definition.ariaHasPopup\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.definition, html: item.definition.html, text: item.definition.text}\"></ng-container>\r\n </dd>\r\n </div>\r\n </dl>\r\n </div>\r\n </ng-container>\r\n <ng-template #noItems>\r\n <div class=\"lg:w-2/3\">\r\n <ng-container *ngTemplateOutlet=\"commonHtml\"></ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"lg:flex lg:flex-wrap lg:items-center lg:1/3\">\r\n\r\n <div *ngIf=\"contentComponent || caller\" [id]=\"id + '-status-item'\"\r\n [class]=\"'w-full lg:w-auto lg:text-right mt-base lg:mt-0 mb-base lg:mb-0'\">\r\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"statusComponent || status\" class=\"mb-base lg:mb-0 ml-base py-sm\">\r\n <ng-container *ngIf=\"statusComponent\">\r\n <ng-content select=\"desy-status\"></ng-content>\r\n </ng-container>\r\n <desy-status *ngIf=\"!statusComponent && status\"\r\n [text]=\"status.text\" [icon]=\"status.icon\" [classes]=\"status.classes\" [id]=\"status.id\"\r\n [role]=\"status.role\"\r\n [ariaLabel]=\"status.ariaLabel\"\r\n [ariaDescribedBy]=\"status.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"status.ariaLabelledBy\"\r\n [ariaHidden]=\"status.ariaHidden\"\r\n [ariaDisabled]=\"status.ariaDisabled\"\r\n [ariaControls]=\"status.ariaControls\"\r\n [ariaCurrent]=\"status.ariaCurrent\"\r\n [ariaLive]=\"status.ariaLive\"\r\n [ariaExpanded]=\"status.ariaExpanded\"\r\n [ariaErrorMessage]=\"status.ariaErrorMessage\"\r\n [ariaHasPopup]=\"status.ariaHasPopup\"\r\n [tabindex]=\"status.tabindex\"></desy-status>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n"
6289
7356
  },] }
6290
7357
  ];
6291
7358
  StatusItemComponent.propDecorators = {
@@ -6322,10 +7389,56 @@
6322
7389
  DesyContentChild()
6323
7390
  ], StatusItemComponent.prototype, "statusComponent", void 0);
6324
7391
 
7392
+ var PanelComponent = /** @class */ (function (_super) {
7393
+ __extends(PanelComponent, _super);
7394
+ function PanelComponent() {
7395
+ return _super !== null && _super.apply(this, arguments) || this;
7396
+ }
7397
+ return PanelComponent;
7398
+ }(ContentBaseComponent));
7399
+ PanelComponent.decorators = [
7400
+ { type: i0.Component, args: [{
7401
+ selector: 'desy-panel',
7402
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
7403
+ },] }
7404
+ ];
7405
+ PanelComponent.propDecorators = {
7406
+ classes: [{ type: i0.Input }],
7407
+ id: [{ type: i0.Input }]
7408
+ };
7409
+
7410
+ var TabItemComponent = /** @class */ (function (_super) {
7411
+ __extends(TabItemComponent, _super);
7412
+ function TabItemComponent() {
7413
+ return _super !== null && _super.apply(this, arguments) || this;
7414
+ }
7415
+ return TabItemComponent;
7416
+ }(AccessibilityComponent));
7417
+ TabItemComponent.decorators = [
7418
+ { type: i0.Component, args: [{
7419
+ selector: 'desy-tab-item',
7420
+ template: ''
7421
+ },] }
7422
+ ];
7423
+ TabItemComponent.propDecorators = {
7424
+ contentComponent: [{ type: i0.ContentChildren, args: [ContentComponent,] }],
7425
+ panelComponent: [{ type: i0.ContentChildren, args: [PanelComponent,] }],
7426
+ classes: [{ type: i0.Input }],
7427
+ disabled: [{ type: i0.Input }],
7428
+ id: [{ type: i0.Input }]
7429
+ };
7430
+ __decorate([
7431
+ DesyContentChild()
7432
+ ], TabItemComponent.prototype, "contentComponent", void 0);
7433
+ __decorate([
7434
+ DesyContentChild()
7435
+ ], TabItemComponent.prototype, "panelComponent", void 0);
7436
+
6325
7437
  var TabsComponent = /** @class */ (function (_super) {
6326
7438
  __extends(TabsComponent, _super);
6327
- function TabsComponent() {
6328
- var _this = _super.apply(this, __spread(arguments)) || this;
7439
+ function TabsComponent(changeDetector) {
7440
+ var _this = _super.call(this) || this;
7441
+ _this.changeDetector = changeDetector;
6329
7442
  _this.currentTab = 0;
6330
7443
  return _this;
6331
7444
  }
@@ -6336,25 +7449,30 @@
6336
7449
  if (!this.tablistAriaLabel) {
6337
7450
  throw new Error("tablistAriaLabel is required");
6338
7451
  }
6339
- if (!this.items) {
7452
+ };
7453
+ TabsComponent.prototype.ngAfterViewInit = function () {
7454
+ var item = this.getItems();
7455
+ this.selectTab(item.findIndex(function (value) { return !value.disabled; }));
7456
+ this.changeDetector.detectChanges();
7457
+ };
7458
+ TabsComponent.prototype.getItems = function () {
7459
+ var items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;
7460
+ if (!items || items.length === 0) {
6340
7461
  throw new Error("items are required");
6341
7462
  }
6342
- else {
6343
- this.items.forEach(function (element) {
6344
- if (!element.id) {
6345
- throw new Error("id is required");
6346
- }
6347
- else {
6348
- textOrHtmlRequiredFunction(element.text, element.html);
6349
- }
6350
- if (!element.panel) {
6351
- throw new Error("panel is required");
6352
- }
6353
- else {
6354
- textOrHtmlRequiredFunction(element.panel.text, element.panel.html);
6355
- }
6356
- });
7463
+ return items;
7464
+ };
7465
+ TabsComponent.prototype.getItemPanel = function (tab) {
7466
+ var panel;
7467
+ var items = this.getItems();
7468
+ var item = items[tab];
7469
+ if (item instanceof TabItemComponent) {
7470
+ panel = item.panelComponent;
6357
7471
  }
7472
+ return panel;
7473
+ };
7474
+ TabsComponent.prototype.handleContentEmpty = function (element) {
7475
+ throw new Error(element + " content, html or text is required");
6358
7476
  };
6359
7477
  TabsComponent.prototype.getIdPrefix = function () {
6360
7478
  if (this.idPrefix) {
@@ -6363,8 +7481,9 @@
6363
7481
  };
6364
7482
  TabsComponent.prototype.getItemId = function (index) {
6365
7483
  var id;
6366
- if (this.items[index].id) {
6367
- id = this.items[index].id;
7484
+ var item = this.getItems();
7485
+ if (item[index].id) {
7486
+ id = item[index].id;
6368
7487
  }
6369
7488
  else {
6370
7489
  id = this.getIdPrefix() + '-' + index;
@@ -6376,57 +7495,66 @@
6376
7495
  };
6377
7496
  TabsComponent.prototype.selectTab = function (i) {
6378
7497
  this.currentTab = i;
7498
+ var currentItem = this.getItems()[i];
7499
+ this.currentPanel = currentItem instanceof TabItemComponent ? currentItem.panelComponent : currentItem.panel;
7500
+ this.tabSrOnly.nativeElement.innerHTML = this.tabSelectorContentWrapper.toArray()[this.currentTab].nativeElement.innerHTML;
6379
7501
  };
6380
7502
  TabsComponent.prototype.focusFirstTab = function (event) {
6381
- var _this = this;
6382
7503
  if (event) {
6383
7504
  event.preventDefault();
6384
7505
  }
6385
- var enabledTabs = this.tabSelectors.filter(function (item, index) { return !_this.items[index].disabled; });
7506
+ var enabledTabs = this.tabSelectors.filter(function (item, index) { return !item[index].disabled; });
6386
7507
  enabledTabs[0].nativeElement.focus();
6387
7508
  };
6388
7509
  TabsComponent.prototype.focusLastTab = function (event) {
6389
- var _this = this;
6390
7510
  if (event) {
6391
7511
  event.preventDefault();
6392
7512
  }
6393
- var enabledTabs = this.tabSelectors.filter(function (item, index) { return !_this.items[index].disabled; });
7513
+ var enabledTabs = this.tabSelectors.filter(function (item, index) { return !item[index].disabled; });
6394
7514
  enabledTabs[enabledTabs.length - 1].nativeElement.focus();
6395
7515
  };
6396
7516
  TabsComponent.prototype.focusNextTab = function (focusedTab) {
6397
- var nextTab = (focusedTab + 1) % this.items.length;
7517
+ var item = this.getItems();
7518
+ var nextTab = (focusedTab + 1) % item.length;
6398
7519
  while (nextTab !== focusedTab) {
6399
- if (!this.items[nextTab].disabled) {
6400
- this.tabSelectors.find(function (item, index) { return index === nextTab; }).nativeElement.focus();
7520
+ if (!item[nextTab].disabled) {
7521
+ this.tabSelectors.find(function (i, index) { return index === nextTab; }).nativeElement.focus();
6401
7522
  break;
6402
7523
  }
6403
- nextTab = (nextTab + 1) % this.items.length;
7524
+ nextTab = (nextTab + 1) % item.length;
6404
7525
  }
6405
7526
  };
6406
7527
  TabsComponent.prototype.focusPreviousTab = function (focusedTab) {
6407
- var previousTab = (focusedTab - 1 + this.items.length) % this.items.length;
7528
+ var item = this.getItems();
7529
+ var previousTab = (focusedTab - 1 + item.length) % item.length;
6408
7530
  while (previousTab !== focusedTab) {
6409
- if (!this.items[previousTab].disabled) {
6410
- this.tabSelectors.find(function (item, index) { return index === previousTab; }).nativeElement.focus();
7531
+ if (!item[previousTab].disabled) {
7532
+ this.tabSelectors.find(function (i, index) { return index === previousTab; }).nativeElement.focus();
6411
7533
  break;
6412
7534
  }
6413
- previousTab = (previousTab - 1 + this.items.length) % this.items.length;
7535
+ previousTab = (previousTab - 1 + item.length) % item.length;
6414
7536
  }
6415
7537
  };
6416
- TabsComponent.prototype.ngAfterViewInit = function () {
6417
- var _this = this;
6418
- setTimeout(function () { return _this.selectTab(_this.items.findIndex(function (value) { return !value.disabled; })); });
7538
+ TabsComponent.prototype.getPanelContent = function (tab) {
7539
+ var item = this.getItems();
7540
+ return item[tab].panel && item[tab].panel.text ? "<p>" + StringUtils.escapeHtml(item[tab].panel.text) + "</p>" : null;
6419
7541
  };
6420
7542
  return TabsComponent;
6421
7543
  }(AccessibilityComponent));
6422
7544
  TabsComponent.decorators = [
6423
7545
  { type: i0.Component, args: [{
6424
7546
  selector: 'desy-tabs',
6425
- template: "<!-- tabs -->\r\n<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? 'c-tabs ' + classes : 'c-tabs')\" data-module=\"c-tabs\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n\r\n <ng-container *ngIf=\"title\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h1>\r\n <h2 *ngSwitchCase=\"2\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h2>\r\n <h3 *ngSwitchCase=\"3\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h3>\r\n <h4 *ngSwitchCase=\"4\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h4>\r\n <h5 *ngSwitchCase=\"5\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h5>\r\n <h2 *ngSwitchDefault class=\"lg:hidden mb-sm text-sm\">{{title}}</h2>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!title\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" class=\"lg:hidden mb-sm text-sm\">Contenido</h1>\r\n <h2 *ngSwitchCase=\"2\" class=\"lg:hidden mb-sm text-sm\">Contenido</h2>\r\n <h3 *ngSwitchCase=\"3\" class=\"lg:hidden mb-sm text-sm\">Contenido</h3>\r\n <h4 *ngSwitchCase=\"4\" class=\"lg:hidden mb-sm text-sm\">Contenido</h4>\r\n <h5 *ngSwitchCase=\"5\" class=\"lg:hidden mb-sm text-sm\">Contenido</h5>\r\n <h2 *ngSwitchDefault class=\"lg:hidden mb-sm text-sm\">Contenido</h2>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"items\">\r\n <div class=\"c-tabs lg:flex lg:flex-wrap\" role=\"tablist\" [attr.aria-label]=tablistAriaLabel>\r\n <ng-container *ngFor=\"let item of items; index as i\"> \r\n <button #tabSelector\r\n (click)=\"selectTab(i)\"\r\n (keydown.home)=\"focusFirstTab($event)\"\r\n (keydown.end)=\"focusLastTab($event)\"\r\n (keydown.arrowleft)=\"focusPreviousTab(i)\"\r\n (keydown.arrowright)=\"focusNextTab(i)\"\r\n class=\"c-tabs__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': isDisabled(item)}\"\r\n [attr.id]=\"getItemId(i)\"\r\n [attr.role]=\"(item.role ? role : 'tab')\"\r\n [attr.aria-selected]=\"currentTab === i ? 'true' : 'false'\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"'tab-' + getItemId(i)\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.tabindex]=\"(currentTab !== i || item.disabled ? '-1' : null)\"\r\n [attr.disabled]=\"isDisabled(item)\"\r\n [attr.aria-disabled]=\"isDisabled(item) ? 'true' : (ariaDisabled ? ariaDisabled : null)\">\r\n <span class=\"flex items-center pointer-events-none\" [desyInnerContent]=\"item.html ? item.html : item.text\" [isHtml]=\"item.html\"></span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n\r\n <div [class]=\"['p-base mt-base lg:mt-0 border border-neutral-base focus:outline-none focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base', items[currentTab].panel.classes] | makeHtmlList\"\r\n [attr.id]=\"'tab-' + getItemId(currentTab)\"\r\n [attr.role]=\"(items[currentTab].panel.role ? items[currentTab].panel.role : 'tabpanel')\"\r\n [attr.aria-describedby]=\"items[currentTab].panel.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"items[currentTab].panel.ariaErrorMessage\"\r\n [attr.aria-label]=\"items[currentTab].panel.ariaLabel\"\r\n [attr.aria-labelledby]=\"getItemId(currentTab)\"\r\n [attr.aria-hidden]=\"items[currentTab].panel.ariaHidden\"\r\n [attr.aria-disabled]=\"items[currentTab].panel.ariaDisabled\"\r\n [attr.aria-controls]=\"items[currentTab].panel.ariaControls\"\r\n [attr.aria-current]=\"items[currentTab].panel.ariaCurrent\"\r\n [attr.aria-live]=\"items[currentTab].panel.ariaLive\"\r\n [attr.aria-expanded]=\"items[currentTab].panel.ariaExpanded\"\r\n [attr.aria-haspopup]=\"items[currentTab].panel.ariaHasPopup\"\r\n [attr.tabindex]=\"(items[currentTab].panel.tabindex ? items[currentTab].panel.tabindex : '0')\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"\r\n [desyInnerContent]=\"items[currentTab].html ? items[currentTab].html : items[currentTab].text\"\r\n [isHtml]=\"items[currentTab].html\"></h1>\r\n <h2 *ngSwitchCase=\"2\" class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"\r\n [desyInnerContent]=\"items[currentTab].html ? items[currentTab].html : items[currentTab].text\"\r\n [isHtml]=\"items[currentTab].html\"></h2>\r\n <h3 *ngSwitchCase=\"3\" class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"\r\n [desyInnerContent]=\"items[currentTab].html ? items[currentTab].html : items[currentTab].text\"\r\n [isHtml]=\"items[currentTab].html\"></h3>\r\n <h4 *ngSwitchCase=\"4\" class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"\r\n [desyInnerContent]=\"items[currentTab].html ? items[currentTab].html : items[currentTab].text\"\r\n [isHtml]=\"items[currentTab].html\"></h4>\r\n <h5 *ngSwitchCase=\"5\" class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"\r\n [desyInnerContent]=\"items[currentTab].html ? items[currentTab].html : items[currentTab].text\"\r\n [isHtml]=\"items[currentTab].html\"></h5>\r\n <h3 *ngSwitchDefault class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"\r\n [desyInnerContent]=\"items[currentTab].html ? items[currentTab].html : items[currentTab].text\"\r\n [isHtml]=\"items[currentTab].html\"></h3>\r\n </ng-container>\r\n <ng-container *ngIf=\"items[currentTab].panel.html; else elseBlock\">\r\n <ng-container *ngTemplateOutlet=\"items[currentTab].panel.html\"></ng-container>\r\n </ng-container>\r\n <ng-template #elseBlock>\r\n <p>{{items[currentTab].panel.text}}</p>\r\n </ng-template>\r\n </div>\r\n </ng-container> \r\n</div>\r\n<!-- /tabs -->\r\n"
7547
+ template: "<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? 'c-tabs ' + classes : 'c-tabs')\" data-module=\"c-tabs\"\r\n [attr.role]=\"role\"\r\n [attr.aria-describedby]=\"ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy\"\r\n [attr.aria-hidden]=\"ariaHidden\"\r\n [attr.aria-disabled]=\"ariaDisabled\"\r\n [attr.aria-controls]=\"ariaControls\"\r\n [attr.aria-current]=\"ariaCurrent\"\r\n [attr.aria-live]=\"ariaLive\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-haspopup]=\"ariaHasPopup\"\r\n [attr.tabindex]=\"tabindex\">\r\n\r\n <ng-container *ngIf=\"title\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h1>\r\n <h2 *ngSwitchCase=\"2\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h2>\r\n <h3 *ngSwitchCase=\"3\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h3>\r\n <h4 *ngSwitchCase=\"4\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h4>\r\n <h5 *ngSwitchCase=\"5\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h5>\r\n <h2 *ngSwitchDefault class=\"lg:hidden mb-sm text-sm\">{{title}}</h2>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!title\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" class=\"lg:hidden mb-sm text-sm\">Contenido</h1>\r\n <h2 *ngSwitchCase=\"2\" class=\"lg:hidden mb-sm text-sm\">Contenido</h2>\r\n <h3 *ngSwitchCase=\"3\" class=\"lg:hidden mb-sm text-sm\">Contenido</h3>\r\n <h4 *ngSwitchCase=\"4\" class=\"lg:hidden mb-sm text-sm\">Contenido</h4>\r\n <h5 *ngSwitchCase=\"5\" class=\"lg:hidden mb-sm text-sm\">Contenido</h5>\r\n <h2 *ngSwitchDefault class=\"lg:hidden mb-sm text-sm\">Contenido</h2>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"getItems()\">\r\n <div class=\"c-tabs lg:flex lg:flex-wrap\" role=\"tablist\" [attr.aria-label]=tablistAriaLabel>\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n <button #tabSelector\r\n (click)=\"selectTab(i)\"\r\n (keydown.home)=\"focusFirstTab($event)\"\r\n (keydown.end)=\"focusLastTab($event)\"\r\n (keydown.arrowleft)=\"focusPreviousTab(i)\"\r\n (keydown.arrowright)=\"focusNextTab(i)\"\r\n class=\"c-tabs__link relative flex items-center py-sm lg:px-lg lg:py-base border border-transparent text-black hover:text-primary-base underline truncate focus:outline-none\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': isDisabled(item)}\"\r\n [attr.id]=\"getItemId(i)\"\r\n [attr.role]=\"(item.role ? role : 'tab')\"\r\n [attr.aria-selected]=\"currentTab === i ? 'true' : 'false'\"\r\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\r\n [attr.aria-label]=\"item.ariaLabel\"\r\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\r\n [attr.aria-hidden]=\"item.ariaHidden\"\r\n [attr.aria-controls]=\"'tab-' + getItemId(i)\"\r\n [attr.aria-current]=\"item.ariaCurrent\"\r\n [attr.aria-live]=\"item.ariaLive\"\r\n [attr.aria-expanded]=\"item.ariaExpanded\"\r\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\r\n [attr.tabindex]=\"(currentTab !== i || item.disabled ? '-1' : null)\"\r\n [attr.disabled]=\"isDisabled(item)\"\r\n [attr.aria-disabled]=\"isDisabled(item) ? 'true' : (ariaDisabled ? ariaDisabled : null)\">\r\n <span #tabSelectorContentWrapper class=\"flex items-center pointer-events-none\" (desyContentEmpty)=\"handleContentEmpty('contentComponent')\">\r\n <ng-container *desyCustomInnerContent=\"{ component: item.contentComponent, html: item.html, text: item.text}\"></ng-container>\r\n </span>\r\n </button>\r\n </ng-container>\r\n </div>\r\n\r\n <div [class]=\"['p-base mt-base lg:mt-0 border border-neutral-base focus:outline-none focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-warning-base', currentPanel?.classes] | makeHtmlList\"\r\n [attr.id]=\"'tab-' + getItemId(currentTab)\"\r\n [attr.role]=\"(currentPanel?.role ? currentPanel?.role : 'tabpanel')\"\r\n [attr.aria-describedby]=\"currentPanel?.ariaDescribedBy\"\r\n [attr.aria-errormessage]=\"currentPanel?.ariaErrorMessage\"\r\n [attr.aria-label]=\"currentPanel?.ariaLabel\"\r\n [attr.aria-labelledby]=\"getItemId(currentTab)\"\r\n [attr.aria-hidden]=\"currentPanel?.ariaHidden\"\r\n [attr.aria-disabled]=\"currentPanel?.ariaDisabled\"\r\n [attr.aria-controls]=\"currentPanel?.ariaControls\"\r\n [attr.aria-current]=\"currentPanel?.ariaCurrent\"\r\n [attr.aria-live]=\"currentPanel?.ariaLive\"\r\n [attr.aria-expanded]=\"currentPanel?.ariaExpanded\"\r\n [attr.aria-haspopup]=\"currentPanel?.ariaHasPopup\"\r\n [attr.tabindex]=\"(currentPanel?.tabindex ? currentPanel?.tabindex : '0')\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h1>\r\n <h2 *ngSwitchCase=\"2\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h2>\r\n <h3 *ngSwitchCase=\"3\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h3>\r\n <h4 *ngSwitchCase=\"4\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h4>\r\n <h5 *ngSwitchCase=\"5\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h5>\r\n <h3 *ngSwitchDefault #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h3>\r\n </ng-container>\r\n <ng-container *desyCustomInnerContent=\"{ component: getItemPanel(currentTab), template: currentPanel?.html, html: getPanelContent(currentTab) }\"></ng-container>\r\n </div>\r\n </ng-container>\r\n</div>\r\n"
6426
7548
  },] }
6427
7549
  ];
7550
+ TabsComponent.ctorParameters = function () { return [
7551
+ { type: i0.ChangeDetectorRef }
7552
+ ]; };
6428
7553
  TabsComponent.propDecorators = {
7554
+ itemComponents: [{ type: i0.ContentChildren, args: [TabItemComponent,] }],
6429
7555
  tabSelectors: [{ type: i0.ViewChildren, args: ['tabSelector',] }],
7556
+ tabSelectorContentWrapper: [{ type: i0.ViewChildren, args: ['tabSelectorContentWrapper',] }],
7557
+ tabSrOnly: [{ type: i0.ViewChild, args: ['tabSrOnly',] }],
6430
7558
  id: [{ type: i0.Input }],
6431
7559
  idPrefix: [{ type: i0.Input }],
6432
7560
  classes: [{ type: i0.Input }],
@@ -7112,6 +8240,12 @@
7112
8240
  SelectComponent,
7113
8241
  FileUploadComponent,
7114
8242
  InputGroupComponent,
8243
+ InputGroupItemComponent,
8244
+ DateInputItemComponent,
8245
+ InputGroupDividerComponent,
8246
+ DateInputDividerComponent,
8247
+ InputGroupInputComponent,
8248
+ InputGroupSelectComponent,
7115
8249
  RadiosComponent,
7116
8250
  RadioItemComponent,
7117
8251
  CheckboxesComponent,
@@ -7119,6 +8253,11 @@
7119
8253
  DateInputComponent,
7120
8254
  SearchBarComponent,
7121
8255
  OptionComponent,
8256
+ OptionGroupComponent,
8257
+ SelectItemComponent,
8258
+ DateInputDayComponent,
8259
+ DateInputMonthComponent,
8260
+ DateInputYearComponent,
7122
8261
  ConditionDirective,
7123
8262
  ],
7124
8263
  imports: [
@@ -7140,6 +8279,10 @@
7140
8279
  SelectComponent,
7141
8280
  FileUploadComponent,
7142
8281
  InputGroupComponent,
8282
+ InputGroupDividerComponent,
8283
+ DateInputDividerComponent,
8284
+ InputGroupInputComponent,
8285
+ InputGroupSelectComponent,
7143
8286
  RadiosComponent,
7144
8287
  RadioItemComponent,
7145
8288
  CheckboxesComponent,
@@ -7147,6 +8290,10 @@
7147
8290
  DateInputComponent,
7148
8291
  SearchBarComponent,
7149
8292
  OptionComponent,
8293
+ OptionGroupComponent,
8294
+ DateInputDayComponent,
8295
+ DateInputMonthComponent,
8296
+ DateInputYearComponent,
7150
8297
  ConditionDirective
7151
8298
  ]
7152
8299
  },] }
@@ -7310,6 +8457,8 @@
7310
8457
  TabsComponent,
7311
8458
  TooltipComponent,
7312
8459
  TooltipContentComponent,
8460
+ PanelComponent,
8461
+ TabItemComponent,
7313
8462
  ],
7314
8463
  imports: [
7315
8464
  common.CommonModule,
@@ -7340,6 +8489,8 @@
7340
8489
  TabsComponent,
7341
8490
  TooltipComponent,
7342
8491
  TooltipContentComponent,
8492
+ PanelComponent,
8493
+ TabItemComponent,
7343
8494
  ]
7344
8495
  },] }
7345
8496
  ];
@@ -7406,217 +8557,6 @@
7406
8557
  },] }
7407
8558
  ];
7408
8559
 
7409
- var HeaderSubnavComponent = /** @class */ (function (_super) {
7410
- __extends(HeaderSubnavComponent, _super);
7411
- function HeaderSubnavComponent() {
7412
- var _this = _super.apply(this, __spread(arguments)) || this;
7413
- _this.isOpen = false;
7414
- _this.clickOutsideEnabled = false;
7415
- return _this;
7416
- }
7417
- HeaderSubnavComponent.prototype.toggleOpen = function () {
7418
- var _this = this;
7419
- this.isOpen = !this.isOpen;
7420
- setTimeout(function () { return _this.clickOutsideEnabled = _this.isOpen; });
7421
- };
7422
- HeaderSubnavComponent.prototype.onKeydownEscape = function () {
7423
- this.isOpen = false;
7424
- this.clickOutsideEnabled = false;
7425
- document.getElementById('header-subnav-button').focus();
7426
- };
7427
- return HeaderSubnavComponent;
7428
- }(TextOrHtmlRequiredComponent));
7429
- HeaderSubnavComponent.decorators = [
7430
- { type: i0.Component, args: [{
7431
- selector: 'desy-header-subnav',
7432
- template: "<div class=\"hidden lg:flex items-center\" *ngIf=\"items; else noItems\">\r\n <div class=\"ml-3 relative\">\r\n <h2 id=\"subnav-title\">\r\n <button id=\"header-subnav-button\" (click)=\"toggleOpen()\" class=\"pr-2 pl-3 py-4 border-r border-l border-neutral-base text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n aria-haspopup=\"true\" [attr.aria-expanded]=\"isOpen\" (keydown.escape)=\"onKeydownEscape()\">\r\n <span class=\"inline-block align-middle\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\"></span>\r\n <svg class=\"inline-block align-middle\" viewBox=\"0 0 96 96\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\">\r\n <g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g>\r\n </svg>\r\n </button>\r\n </h2>\r\n <div *ngIf=\"isOpen\" @toggleDropdown\r\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"toggleOpen()\"\r\n (keydown.escape)=\"onKeydownEscape()\"\r\n class=\"origin-top-left absolute left-0 w-64 max-h-64 mt-2 border border-neutral-base overflow-y-auto shadow-md\">\r\n <div class=\"bg-white shadow-xs\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #noItems>\r\n <p class=\"hidden lg:inline-block align-middle ml-4 px-3 py-4 border-r border-l border-neutral-base text-sm text-white\">\r\n <span class=\"sr-only\">Aplicaci\u00F3n actual: </span>\r\n {{ text }}\r\n </p>\r\n</ng-template>\r\n",
7433
- animations: [
7434
- animations.trigger('toggleDropdown', [
7435
- animations.state('void', animations.style({
7436
- opacity: '0.0',
7437
- transform: 'scale(0.95)'
7438
- })),
7439
- animations.state('*', animations.style({
7440
- opacity: '1.0',
7441
- transform: 'scale(1.0)'
7442
- })),
7443
- animations.transition(':enter', [
7444
- animations.animate('100ms ease-out')
7445
- ]),
7446
- animations.transition(':leave', [
7447
- animations.animate('75ms ease-in')
7448
- ])
7449
- ])
7450
- ]
7451
- },] }
7452
- ];
7453
- HeaderSubnavComponent.propDecorators = {
7454
- items: [{ type: i0.Input }]
7455
- };
7456
-
7457
- var HeaderNavigationComponent = /** @class */ (function (_super) {
7458
- __extends(HeaderNavigationComponent, _super);
7459
- function HeaderNavigationComponent() {
7460
- return _super !== null && _super.apply(this, arguments) || this;
7461
- }
7462
- HeaderNavigationComponent.prototype.getItemId = function (item, index) {
7463
- var prefix = this.idPrefix ? this.idPrefix : 'header-nav-item';
7464
- var suffix = index > 0 ? '-' + index : '';
7465
- return item.id ? item.id : prefix + suffix;
7466
- };
7467
- return HeaderNavigationComponent;
7468
- }(AccessibilityComponent));
7469
- HeaderNavigationComponent.decorators = [
7470
- { type: i0.Component, args: [{
7471
- selector: 'desy-header-navigation',
7472
- template: "<nav [class]=\"classes ? classes : 'hidden lg:block'\"\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 <ul class=\"ml-sm flex flex-wrap items-baseline uppercase\">\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <li *ngIf=\"item\">\r\n\r\n <!-- Active + routerlink -->\r\n <a *ngIf=\"item.active && (item.routerLink || !item.href)\" [id]=\"getItemId(item, i)\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 font-bold text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\" aria-current=\"page\">\r\n <strong [desyInnerContent]=\"item.html ? item.html : item.text\" [isHtml]=\"item.html\"></strong>\r\n </a>\r\n\r\n <!-- Active + href -->\r\n <a *ngIf=\"item.active && !item.routerLink && item.href\" [id]=\"getItemId(item, i)\" [href]=\"item.href\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 font-bold text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\" aria-current=\"page\">\r\n <strong [desyInnerContent]=\"item.html ? item.html : item.text\" [isHtml]=\"item.html\"></strong>\r\n </a>\r\n\r\n <!-- Not active + routerlink -->\r\n <a *ngIf=\"!item.active && (item.routerLink || !item.href)\" [id]=\"getItemId(item, i)\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\" [attr.aria-disabled]=\"item.disabled ? item.disabled : null\" [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [desyInnerContent]=\"item.html ? item.html : item.text\" [isHtml]=\"item.html\"></a>\r\n\r\n <!-- Not active + href -->\r\n <a *ngIf=\"!item.active && !item.routerLink && item.href\" [id]=\"getItemId(item, i)\" [href]=\"item.href\"\r\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\r\n class=\"max-w-40 lg:max-w-xs px-3 py-4 text-sm text-white truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n [attr.disabled]=\"item.disabled ? item.disabled : null\" [attr.aria-disabled]=\"item.disabled ? item.disabled : null\" [attr.tabindex]=\"item.disabled ? -1 : null\"\r\n [desyInnerContent]=\"item.html ? item.html : item.text\" [isHtml]=\"item.html\"></a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</nav>\r\n"
7473
- },] }
7474
- ];
7475
- HeaderNavigationComponent.propDecorators = {
7476
- idPrefix: [{ type: i0.Input }],
7477
- classes: [{ type: i0.Input }],
7478
- items: [{ type: i0.Input }]
7479
- };
7480
-
7481
- var HeaderDropdownComponent = /** @class */ (function (_super) {
7482
- __extends(HeaderDropdownComponent, _super);
7483
- function HeaderDropdownComponent() {
7484
- var _this = _super.apply(this, __spread(arguments)) || this;
7485
- _this.isOpen = false;
7486
- _this.clickOutsideEnabled = false;
7487
- return _this;
7488
- }
7489
- HeaderDropdownComponent.prototype.toggleOpen = function () {
7490
- var _this = this;
7491
- this.isOpen = !this.isOpen;
7492
- setTimeout(function () { return _this.clickOutsideEnabled = _this.isOpen; });
7493
- };
7494
- HeaderDropdownComponent.prototype.onKeydownEscape = function () {
7495
- this.isOpen = false;
7496
- this.clickOutsideEnabled = false;
7497
- document.getElementById('header-dropdown-button').focus();
7498
- };
7499
- return HeaderDropdownComponent;
7500
- }(TextOrHtmlRequiredComponent));
7501
- HeaderDropdownComponent.decorators = [
7502
- { type: i0.Component, args: [{
7503
- selector: 'desy-header-dropdown',
7504
- template: "<div class=\"ml-4 flex items-center lg:ml-6\">\r\n <div class=\"ml-3 relative\">\r\n <div>\r\n <button id=\"header-dropdown-button\" (click)=\"toggleOpen()\" class=\"inline-flex items-center px-3 py-4 text-sm text-white focus:outline-none focus:ring-4 focus:ring-inset focus:ring-warning-base\"\r\n aria-haspopup=\"true\" [attr.aria-expanded]=\"isOpen\" (keydown.escape)=\"onKeydownEscape()\">\r\n <span class=\"inline-block align-middle text-right\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\"></span> <svg class=\"inline-block align-middle\" viewBox=\"0 0 96 96\" fill=\"currentColor\" aria-hidden=\"true\" focusable=\"false\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n </button>\r\n </div>\r\n <div *ngIf=\"isOpen\" @toggleDropdown (keydown.escape)=\"onKeydownEscape()\"\r\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"toggleOpen()\"\r\n class=\"origin-top-right absolute right-0 max-w-64 max-h-64 mt-2 border border-neutral-base overflow-y-auto shadow-md\">\r\n <div class=\"bg-white shadow-xs\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
7505
- animations: [
7506
- animations.trigger('toggleDropdown', [
7507
- animations.state('void', animations.style({
7508
- opacity: '0.0',
7509
- transform: 'scale(0.95)'
7510
- })),
7511
- animations.state('*', animations.style({
7512
- opacity: '1.0',
7513
- transform: 'scale(1.0)'
7514
- })),
7515
- animations.transition(':enter', [
7516
- animations.animate('100ms ease-out')
7517
- ]),
7518
- animations.transition(':leave', [
7519
- animations.animate('75ms ease-in')
7520
- ])
7521
- ])
7522
- ]
7523
- },] }
7524
- ];
7525
-
7526
- var HeaderOffcanvasButtonComponent = /** @class */ (function (_super) {
7527
- __extends(HeaderOffcanvasButtonComponent, _super);
7528
- function HeaderOffcanvasButtonComponent(dialogService) {
7529
- var _this = _super.call(this) || this;
7530
- _this.dialogService = dialogService;
7531
- _this.dialogOptions = {
7532
- id: 'header-offcanvas-dialog',
7533
- focusOnClose: 'header-offcanvas',
7534
- ariaModal: 'true'
7535
- };
7536
- return _this;
7537
- }
7538
- HeaderOffcanvasButtonComponent.prototype.openDialog = function (offcanvas) {
7539
- return __awaiter(this, void 0, void 0, function () {
7540
- var _a;
7541
- var _this = this;
7542
- return __generator(this, function (_b) {
7543
- switch (_b.label) {
7544
- case 0:
7545
- if (!!this.dialog) return [3 /*break*/, 2];
7546
- this.dialogOptions.ariaLabelledBy = 'header-offcanvas-button';
7547
- _a = this;
7548
- return [4 /*yield*/, this.dialogService.openDialog(offcanvas, this.dialogOptions)];
7549
- case 1:
7550
- _a.dialog = (_b.sent()).dialog;
7551
- this.dialogService.onCloseDialog(this.dialog).then(function () { return _this.dialog = null; });
7552
- _b.label = 2;
7553
- case 2: return [2 /*return*/];
7554
- }
7555
- });
7556
- });
7557
- };
7558
- HeaderOffcanvasButtonComponent.prototype.closeDialog = function () {
7559
- if (this.dialog) {
7560
- this.dialogService.closeDialog(this.dialog);
7561
- this.dialog = null;
7562
- }
7563
- };
7564
- HeaderOffcanvasButtonComponent.prototype.ngOnChanges = function (changes) {
7565
- this.checkRequiredParams();
7566
- this.class = this.classes ? this.classes : '-mr-2 flex lg:hidden';
7567
- };
7568
- HeaderOffcanvasButtonComponent.prototype.checkRequiredParams = function () {
7569
- if (!this.offcanvasText) {
7570
- throw new Error("offcanvasText is required");
7571
- }
7572
- if (!this.offcanvasContentHtml) {
7573
- throw new Error("offcanvasContentHtml is required");
7574
- }
7575
- };
7576
- return HeaderOffcanvasButtonComponent;
7577
- }(TextOrHtmlRequiredComponent));
7578
- HeaderOffcanvasButtonComponent.decorators = [
7579
- { type: i0.Component, args: [{
7580
- selector: 'desy-header-offcanvas-button',
7581
- template: "<ng-template #offcanvas>\r\n <desy-header-offcanvas [text]=\"offcanvasText\" [contentHtml]=\"offcanvasContentHtml\"\r\n (closeDialog)=\"closeDialog()\"></desy-header-offcanvas>\r\n</ng-template>\r\n\r\n<button id=\"header-offcanvas-button\"\r\n (click)=\"openDialog(offcanvas)\"\r\n tabindex=\"0\"\r\n class=\"inline-flex items-center px-3 py-4 text-sm text-white focus:outline-none focus:shadow-outline-warning\" aria-haspopup=\"true\">\r\n <span class=\"inline-block align-middle text-right\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\"></span> <svg role=\"img\" aria-label=\"Cerrado\" class=\"inline-block align-middle\" viewBox=\"0 0 96 96\" fill=\"currentColor\" width=\"1.5em\" height=\"1.5em\"><g><path d=\"M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z\"/></g></svg>\r\n</button>\r\n\r\n"
7582
- },] }
7583
- ];
7584
- HeaderOffcanvasButtonComponent.ctorParameters = function () { return [
7585
- { type: DialogService }
7586
- ]; };
7587
- HeaderOffcanvasButtonComponent.propDecorators = {
7588
- classes: [{ type: i0.Input }],
7589
- offcanvasText: [{ type: i0.Input }],
7590
- offcanvasContentHtml: [{ type: i0.Input }],
7591
- class: [{ type: i0.HostBinding, args: ['class',] }]
7592
- };
7593
-
7594
- var HeaderOffcanvasComponent = /** @class */ (function () {
7595
- function HeaderOffcanvasComponent() {
7596
- this.closeDialog = new i0.EventEmitter();
7597
- this.clickOutsideEnabled = false;
7598
- }
7599
- HeaderOffcanvasComponent.prototype.ngOnInit = function () {
7600
- var _this = this;
7601
- setTimeout(function () { return _this.clickOutsideEnabled = true; });
7602
- };
7603
- HeaderOffcanvasComponent.prototype.onCloseDialog = function () {
7604
- this.closeDialog.emit();
7605
- };
7606
- return HeaderOffcanvasComponent;
7607
- }());
7608
- HeaderOffcanvasComponent.decorators = [
7609
- { type: i0.Component, args: [{
7610
- selector: 'desy-header-offcanvas',
7611
- template: "<div class=\"origin-top-left left-0 fixed inset-0 h-screen\">\r\n <div class=\"h-full overflow-auto relative w-offcanvas h-screen ml-offcanvas-negative bg-white z-10\"\r\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"onCloseDialog()\">\r\n <div class=\"text-right p-sm\">\r\n <button (click)=\"onCloseDialog()\" id=\"header-offcanvas-button-close\"\r\n class=\"c-button c-button--sm c-button--transparent m-sm\">{{ text }} <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\" width=\"14\" height=\"14\" class=\"self-center ml-2\"><path fill=\"currentColor\" d=\"M8.591 7.177a.25.25 0 010-.354l4.616-4.616A1 1 0 1011.793.793L7.177 5.409a.25.25 0 01-.354 0L2.207.793A1 1 0 00.793 2.207l4.616 4.616a.25.25 0 010 .354L.793 11.793a1 1 0 001.414 1.414l4.616-4.616a.25.25 0 01.354 0l4.616 4.616a1 1 0 001.414-1.414z\"/></svg></button>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"contentHtml\"></ng-container>\r\n </div>\r\n</div>\r\n"
7612
- },] }
7613
- ];
7614
- HeaderOffcanvasComponent.propDecorators = {
7615
- text: [{ type: i0.Input }],
7616
- contentHtml: [{ type: i0.Input }],
7617
- closeDialog: [{ type: i0.Output }]
7618
- };
7619
-
7620
8560
  var DesyNavModule = /** @class */ (function () {
7621
8561
  function DesyNavModule() {
7622
8562
  }
@@ -7630,15 +8570,24 @@
7630
8570
  ErrorSummaryComponent,
7631
8571
  ErrorSummaryItemComponent,
7632
8572
  FooterComponent,
8573
+ FooterMetaComponent,
8574
+ FooterMetaItemComponent,
8575
+ FooterNavigationComponent,
8576
+ FooterNavigationItemComponent,
7633
8577
  HeaderComponent,
7634
8578
  HeaderSubnavComponent,
7635
8579
  HeaderNavigationComponent,
8580
+ HeaderNavigationItemComponent,
7636
8581
  HeaderDropdownComponent,
7637
8582
  HeaderOffcanvasButtonComponent,
7638
8583
  HeaderOffcanvasComponent,
8584
+ HeaderOffcanvasCloseButtonComponent,
7639
8585
  MenuHorizontalComponent,
7640
8586
  MenuHorizontalItemComponent,
7641
8587
  MenuVerticalComponent,
8588
+ MenuVerticalItemComponent,
8589
+ MenuVerticalItemSubComponent,
8590
+ MenuVerticalItemSubItemComponent,
7642
8591
  MenubarComponent,
7643
8592
  MenubarLabelComponent,
7644
8593
  MenubarItemComponent,
@@ -7648,7 +8597,6 @@
7648
8597
  NotificationComponent,
7649
8598
  NotificationItemComponent,
7650
8599
  SkipLinkComponent,
7651
- NotificationComponent,
7652
8600
  NavItemComponent,
7653
8601
  MenubaritemDirective,
7654
8602
  ],
@@ -7663,10 +8611,24 @@
7663
8611
  ErrorSummaryComponent,
7664
8612
  ErrorSummaryItemComponent,
7665
8613
  FooterComponent,
8614
+ FooterMetaComponent,
8615
+ FooterMetaItemComponent,
8616
+ FooterNavigationComponent,
8617
+ FooterNavigationItemComponent,
7666
8618
  HeaderComponent,
8619
+ HeaderSubnavComponent,
8620
+ HeaderNavigationComponent,
8621
+ HeaderNavigationItemComponent,
8622
+ HeaderDropdownComponent,
8623
+ HeaderOffcanvasComponent,
8624
+ HeaderOffcanvasButtonComponent,
8625
+ HeaderOffcanvasCloseButtonComponent,
7667
8626
  MenuHorizontalComponent,
7668
8627
  MenuHorizontalItemComponent,
7669
8628
  MenuVerticalComponent,
8629
+ MenuVerticalItemComponent,
8630
+ MenuVerticalItemSubComponent,
8631
+ MenuVerticalItemSubItemComponent,
7670
8632
  MenubarComponent,
7671
8633
  MenubarLabelComponent,
7672
8634
  MenubarItemComponent,
@@ -7917,11 +8879,24 @@
7917
8879
  exports.FieldsetComponent = FieldsetComponent;
7918
8880
  exports.FileUploadComponent = FileUploadComponent;
7919
8881
  exports.FooterComponent = FooterComponent;
8882
+ exports.FooterMetaComponent = FooterMetaComponent;
8883
+ exports.FooterMetaItemComponent = FooterMetaItemComponent;
8884
+ exports.FooterNavigationComponent = FooterNavigationComponent;
8885
+ exports.FooterNavigationItemComponent = FooterNavigationItemComponent;
7920
8886
  exports.HeaderComponent = HeaderComponent;
8887
+ exports.HeaderDropdownComponent = HeaderDropdownComponent;
8888
+ exports.HeaderNavigationComponent = HeaderNavigationComponent;
8889
+ exports.HeaderOffcanvasButtonComponent = HeaderOffcanvasButtonComponent;
8890
+ exports.HeaderOffcanvasCloseButtonComponent = HeaderOffcanvasCloseButtonComponent;
8891
+ exports.HeaderOffcanvasComponent = HeaderOffcanvasComponent;
8892
+ exports.HeaderSubnavComponent = HeaderSubnavComponent;
7921
8893
  exports.HintComponent = HintComponent;
7922
8894
  exports.IconComponent = IconComponent;
7923
8895
  exports.InputComponent = InputComponent;
7924
8896
  exports.InputGroupComponent = InputGroupComponent;
8897
+ exports.InputGroupDividerComponent = InputGroupDividerComponent;
8898
+ exports.InputGroupInputComponent = InputGroupInputComponent;
8899
+ exports.InputGroupSelectComponent = InputGroupSelectComponent;
7925
8900
  exports.ItemComponent = ItemComponent;
7926
8901
  exports.ItemContentBottomComponent = ItemContentBottomComponent;
7927
8902
  exports.ItemContentRightComponent = ItemContentRightComponent;
@@ -7935,6 +8910,9 @@
7935
8910
  exports.MenuHorizontalComponent = MenuHorizontalComponent;
7936
8911
  exports.MenuHorizontalItemComponent = MenuHorizontalItemComponent;
7937
8912
  exports.MenuVerticalComponent = MenuVerticalComponent;
8913
+ exports.MenuVerticalItemComponent = MenuVerticalItemComponent;
8914
+ exports.MenuVerticalItemSubComponent = MenuVerticalItemSubComponent;
8915
+ exports.MenuVerticalItemSubItemComponent = MenuVerticalItemSubItemComponent;
7938
8916
  exports.MenubarComponent = MenubarComponent;
7939
8917
  exports.MenubarItemComponent = MenubarItemComponent;
7940
8918
  exports.MenubarLabelComponent = MenubarLabelComponent;
@@ -7947,6 +8925,8 @@
7947
8925
  exports.NavItemComponent = NavItemComponent;
7948
8926
  exports.NotificationComponent = NotificationComponent;
7949
8927
  exports.NotificationItemComponent = NotificationItemComponent;
8928
+ exports.OptionComponent = OptionComponent;
8929
+ exports.OptionGroupComponent = OptionGroupComponent;
7950
8930
  exports.PaginationComponent = PaginationComponent;
7951
8931
  exports.PillComponent = PillComponent;
7952
8932
  exports.RadioItemComponent = RadioItemComponent;
@@ -7975,34 +8955,38 @@
7975
8955
  exports.summaryTextOrSummaryHtmlRequiredFunction = summaryTextOrSummaryHtmlRequiredFunction;
7976
8956
  exports.ɵa = AccessibilityAndContentRequiredComponent;
7977
8957
  exports.ɵb = AccessibilityAndTextOrHtmlRequiredComponent;
7978
- exports.ɵba = HeaderDropdownComponent;
7979
- exports.ɵbb = HeaderOffcanvasButtonComponent;
7980
- exports.ɵbc = HeaderOffcanvasComponent;
7981
- exports.ɵbd = FocusClickedCellDirective;
8958
+ exports.ɵba = CustomInnerContentDirective;
8959
+ exports.ɵbb = TooltipComponent;
8960
+ exports.ɵbc = TemplateDrivenWrapperComponent;
8961
+ exports.ɵbd = DateInputDividerComponent;
8962
+ exports.ɵbe = DateInputDayComponent;
8963
+ exports.ɵbf = DateInputMonthComponent;
8964
+ exports.ɵbg = DateInputYearComponent;
8965
+ exports.ɵbh = FocusClickedCellDirective;
7982
8966
  exports.ɵc = DesyContentChild;
7983
8967
  exports.ɵd = AccessibilityComponent;
7984
8968
  exports.ɵe = ContentBaseComponent;
7985
8969
  exports.ɵf = FormFieldComponent;
7986
- exports.ɵg = OptionComponent;
8970
+ exports.ɵg = SelectItemComponent;
7987
8971
  exports.ɵh = DesyOnInputChange;
7988
- exports.ɵi = MenubaritemDirective;
7989
- exports.ɵj = RowDirective;
7990
- exports.ɵk = CellDirective;
7991
- exports.ɵl = SharedModule;
7992
- exports.ɵm = TextOrHtmlRequiredComponent;
7993
- exports.ɵn = InnerHtmlPipe;
7994
- exports.ɵo = MakeHtmlListPipe;
7995
- exports.ɵp = ExternalHrefPipe;
7996
- exports.ɵq = AttributeChangeDirective;
7997
- exports.ɵr = InnerContentDirective;
7998
- exports.ɵs = ClickOutsideDirective;
7999
- exports.ɵt = ContentChangeDirective;
8000
- exports.ɵu = ContentEmptyDirective;
8001
- exports.ɵv = CustomInnerContentDirective;
8002
- exports.ɵw = TooltipComponent;
8003
- exports.ɵx = TemplateDrivenWrapperComponent;
8004
- exports.ɵy = HeaderSubnavComponent;
8005
- exports.ɵz = HeaderNavigationComponent;
8972
+ exports.ɵi = InputGroupItemComponent;
8973
+ exports.ɵj = DateInputItemComponent;
8974
+ exports.ɵk = HeaderNavigationItemComponent;
8975
+ exports.ɵl = MenubaritemDirective;
8976
+ exports.ɵm = RowDirective;
8977
+ exports.ɵn = CellDirective;
8978
+ exports.ɵo = TabItemComponent;
8979
+ exports.ɵp = PanelComponent;
8980
+ exports.ɵq = SharedModule;
8981
+ exports.ɵr = TextOrHtmlRequiredComponent;
8982
+ exports.ɵs = InnerHtmlPipe;
8983
+ exports.ɵt = MakeHtmlListPipe;
8984
+ exports.ɵu = ExternalHrefPipe;
8985
+ exports.ɵv = AttributeChangeDirective;
8986
+ exports.ɵw = InnerContentDirective;
8987
+ exports.ɵx = ClickOutsideDirective;
8988
+ exports.ɵy = ContentChangeDirective;
8989
+ exports.ɵz = ContentEmptyDirective;
8006
8990
 
8007
8991
  Object.defineProperty(exports, '__esModule', { value: true });
8008
8992