desy-angular 6.0.2 → 7.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.
- package/esm2020/desy-angular.mjs +5 -0
- package/esm2020/lib/desy-angular.module.mjs +75 -0
- package/esm2020/lib/desy-buttons/components/button/button.component.mjs +115 -0
- package/esm2020/lib/desy-buttons/components/button-loader/button-loader.component.mjs +63 -0
- package/esm2020/lib/desy-buttons/components/dropdown/dropdown.component.mjs +126 -0
- package/esm2020/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +32 -0
- package/esm2020/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +14 -0
- package/esm2020/lib/desy-buttons/components/listbox/listbox.component.mjs +291 -0
- package/esm2020/lib/desy-buttons/components/pill/pill.component.mjs +80 -0
- package/esm2020/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +17 -0
- package/esm2020/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +17 -0
- package/esm2020/lib/desy-buttons/components/toggle/toggle.component.mjs +59 -0
- package/{esm2015/lib/desy-buttons/desy-buttons.module.js → esm2020/lib/desy-buttons/desy-buttons.module.mjs} +64 -35
- package/esm2020/lib/desy-commons/components/content/content.component.mjs +14 -0
- package/esm2020/lib/desy-commons/components/description/description.component.mjs +19 -0
- package/esm2020/lib/desy-commons/components/divider/divider.component.mjs +16 -0
- package/esm2020/lib/desy-commons/components/icon/icon.component.mjs +16 -0
- package/esm2020/lib/desy-commons/components/title/title.component.mjs +17 -0
- package/esm2020/lib/desy-commons/desy-commons.module.mjs +53 -0
- package/esm2020/lib/desy-forms/components/character-count/character-count.component.mjs +130 -0
- package/esm2020/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +240 -0
- package/esm2020/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +264 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +52 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +19 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +16 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +52 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +48 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input.component.mjs +266 -0
- package/esm2020/lib/desy-forms/components/error-message/error-message.component.mjs +31 -0
- package/esm2020/lib/desy-forms/components/fieldset/fieldset.component.mjs +56 -0
- package/esm2020/lib/desy-forms/components/fieldset/legend/legend.component.mjs +23 -0
- package/esm2020/lib/desy-forms/components/file-upload/file-upload.component.mjs +72 -0
- package/esm2020/lib/desy-forms/components/form-field/form-field.component.mjs +124 -0
- package/esm2020/lib/desy-forms/components/hint/hint.component.mjs +29 -0
- package/esm2020/lib/desy-forms/components/input/input.component.mjs +99 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +20 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +53 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +16 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +45 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group.component.mjs +223 -0
- package/esm2020/lib/desy-forms/components/label/label.component.mjs +38 -0
- package/esm2020/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +185 -0
- package/esm2020/lib/desy-forms/components/radios/radios.component.mjs +270 -0
- package/esm2020/lib/desy-forms/components/search-bar/search-bar.component.mjs +66 -0
- package/esm2020/lib/desy-forms/components/select/option/option.component.mjs +22 -0
- package/esm2020/lib/desy-forms/components/select/option-group/option-group.component.mjs +18 -0
- package/esm2020/lib/desy-forms/components/select/select-item/select-item.component.mjs +14 -0
- package/esm2020/lib/desy-forms/components/select/select.component.mjs +93 -0
- package/esm2020/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +12 -0
- package/esm2020/lib/desy-forms/components/textarea/textarea.component.mjs +86 -0
- package/esm2020/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +167 -0
- package/esm2020/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +397 -0
- package/esm2020/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +25 -0
- package/esm2020/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +15 -0
- package/esm2020/lib/desy-forms/components/tree/tree.component.mjs +425 -0
- package/esm2020/lib/desy-forms/desy-forms.module.mjs +209 -0
- package/esm2020/lib/desy-forms/directives/condition.directive.mjs +34 -0
- package/{esm2015/lib/desy-forms/interfaces/select-item-data.js → esm2020/lib/desy-forms/interfaces/select-item-data.mjs} +1 -1
- package/esm2020/lib/desy-forms/models/checkbox-service-item.component.mjs +9 -0
- package/esm2020/lib/desy-forms/models/radio-service-item.component.mjs +9 -0
- package/esm2020/lib/desy-forms/services/checkbox.service.mjs +61 -0
- package/esm2020/lib/desy-forms/services/radio.service.mjs +53 -0
- package/esm2020/lib/desy-modals/components/dialog/dialog.component.mjs +130 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +25 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +23 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +23 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +23 -0
- package/esm2020/lib/desy-modals/components/modal/modal.component.mjs +178 -0
- package/esm2020/lib/desy-modals/desy-modals.module.mjs +62 -0
- package/esm2020/lib/desy-modals/services/dialog.service.mjs +114 -0
- package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +16 -0
- package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +47 -0
- package/esm2020/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +19 -0
- package/esm2020/lib/desy-nav/components/error-summary/error-summary.component.mjs +62 -0
- package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +21 -0
- package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +30 -0
- package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +21 -0
- package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +19 -0
- package/esm2020/lib/desy-nav/components/footer/footer.component.mjs +71 -0
- package/esm2020/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +15 -0
- package/esm2020/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +45 -0
- package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +27 -0
- package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +36 -0
- package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +20 -0
- package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +15 -0
- package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +95 -0
- package/esm2020/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +41 -0
- package/esm2020/lib/desy-nav/components/header/header.component.mjs +103 -0
- package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +40 -0
- package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +79 -0
- package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +49 -0
- package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +43 -0
- package/esm2020/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +616 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +45 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +18 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +34 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +113 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +51 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +14 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +36 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +27 -0
- package/esm2020/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +45 -0
- package/esm2020/lib/desy-nav/components/menubar/menubar.component.mjs +727 -0
- package/esm2020/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +41 -0
- package/esm2020/lib/desy-nav/components/nav/nav.component.mjs +116 -0
- package/esm2020/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +25 -0
- package/esm2020/lib/desy-nav/components/notification/notification.component.mjs +141 -0
- package/esm2020/lib/desy-nav/components/skip-link/skip-link.component.mjs +37 -0
- package/esm2020/lib/desy-nav/desy-nav.module.mjs +221 -0
- package/{esm2015/lib/desy-nav/interfaces/menu-horizontal-item-data.js → esm2020/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs} +1 -1
- package/{esm2015/lib/desy-nav/interfaces/menu-horizontal-item-event-data.js → esm2020/lib/desy-nav/interfaces/menu-horizontal-item-event-data.mjs} +1 -1
- package/esm2020/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +2 -0
- package/esm2020/lib/desy-pagination/components/pagination/pagination.component.mjs +167 -0
- package/esm2020/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +19 -0
- package/esm2020/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +17 -0
- package/esm2020/lib/desy-pagination/desy-pagination.module.mjs +46 -0
- package/esm2020/lib/desy-tables/components/table/components/table-caption.component.mjs +17 -0
- package/esm2020/lib/desy-tables/components/table/components/table-cell.component.mjs +23 -0
- package/esm2020/lib/desy-tables/components/table/components/table-header.component.mjs +18 -0
- package/esm2020/lib/desy-tables/components/table/components/table-row.component.mjs +18 -0
- package/esm2020/lib/desy-tables/components/table/table.component.mjs +78 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +47 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +18 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +23 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +27 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +28 -0
- package/esm2020/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +342 -0
- package/esm2020/lib/desy-tables/desy-tables.module.mjs +102 -0
- package/esm2020/lib/desy-tables/directives/cell.directive.mjs +28 -0
- package/esm2020/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +81 -0
- package/esm2020/lib/desy-tables/directives/row.directive.mjs +29 -0
- package/esm2020/lib/desy-tables/interfaces/head-cell-data.mjs +7 -0
- package/esm2020/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +57 -0
- package/esm2020/lib/desy-views/components/accordion/accordion.component.mjs +198 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +39 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-history.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/alert/alert.component.mjs +81 -0
- package/esm2020/lib/desy-views/components/collapsible/collapsible.component.mjs +81 -0
- package/esm2020/lib/desy-views/components/description-list/definition/definition.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/description-list/description-item/description-item.component.mjs +34 -0
- package/esm2020/lib/desy-views/components/description-list/description-list.component.mjs +28 -0
- package/esm2020/lib/desy-views/components/description-list/term/term.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/details/details.component.mjs +31 -0
- package/esm2020/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +15 -0
- package/esm2020/lib/desy-views/components/item/item-item/item-item.component.mjs +15 -0
- package/esm2020/lib/desy-views/components/item/item.component.mjs +121 -0
- package/esm2020/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +12 -0
- package/esm2020/lib/desy-views/components/media-object/media-object.component.mjs +115 -0
- package/esm2020/lib/desy-views/components/spinner/spinner.component.mjs +77 -0
- package/esm2020/lib/desy-views/components/status/status.component.mjs +97 -0
- package/esm2020/lib/desy-views/components/status-item/status-item.component.mjs +143 -0
- package/esm2020/lib/desy-views/components/tabs/panel/panel.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +37 -0
- package/esm2020/lib/desy-views/components/tabs/tabs.component.mjs +199 -0
- package/esm2020/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +12 -0
- package/esm2020/lib/desy-views/components/tooltip/tooltip.component.mjs +202 -0
- package/esm2020/lib/desy-views/desy-views.module.mjs +175 -0
- package/{esm2015/lib/desy-views/interfaces/accordion-item.data.js → esm2020/lib/desy-views/interfaces/accordion-item.data.mjs} +1 -1
- package/esm2020/lib/desy-views/interfaces/tabs-items-data.mjs +2 -0
- package/esm2020/lib/desy-views/services/alert.service.mjs +88 -0
- package/esm2020/lib/shared/components/accessibility/accessibility.component.mjs +45 -0
- package/esm2020/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +44 -0
- package/esm2020/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +41 -0
- package/esm2020/lib/shared/components/content-base/content-base.component.mjs +24 -0
- package/esm2020/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +18 -0
- package/esm2020/lib/shared/directives/attribute-change.directive.mjs +45 -0
- package/esm2020/lib/shared/directives/click-outside.directive.mjs +40 -0
- package/esm2020/lib/shared/directives/content-change.directive.mjs +45 -0
- package/esm2020/lib/shared/directives/custom-inner-content.directive.mjs +60 -0
- package/esm2020/lib/shared/directives/inner-content.directive.mjs +37 -0
- package/esm2020/lib/shared/pipes/external-href.pipe.mjs +32 -0
- package/esm2020/lib/shared/pipes/inner-html.pipe.mjs +20 -0
- package/esm2020/lib/shared/pipes/make-html-list.pipe.mjs +20 -0
- package/esm2020/lib/shared/shared.module.mjs +99 -0
- package/esm2020/public-api.mjs +221 -0
- package/fesm2015/desy-angular.mjs +11752 -0
- package/fesm2015/desy-angular.mjs.map +1 -0
- package/fesm2020/desy-angular.mjs +11731 -0
- package/fesm2020/desy-angular.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/desy-angular.module.d.ts +12 -0
- package/lib/desy-buttons/components/button/button.component.d.ts +7 -2
- package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +7 -1
- package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +3 -0
- package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +3 -0
- package/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.d.ts +3 -0
- package/lib/desy-buttons/components/listbox/listbox.component.d.ts +5 -2
- package/lib/desy-buttons/components/pill/pill.component.d.ts +7 -2
- package/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.d.ts +3 -0
- package/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.d.ts +3 -0
- package/lib/desy-buttons/components/toggle/toggle.component.d.ts +3 -0
- package/lib/desy-buttons/desy-buttons.module.d.ts +18 -0
- package/lib/desy-commons/components/content/content.component.d.ts +3 -0
- package/lib/desy-commons/components/description/description.component.d.ts +3 -0
- package/lib/desy-commons/components/divider/divider.component.d.ts +3 -0
- package/lib/desy-commons/components/icon/icon.component.d.ts +3 -0
- package/lib/desy-commons/components/title/title.component.d.ts +3 -0
- package/lib/desy-commons/desy-commons.module.d.ts +12 -0
- package/lib/desy-forms/components/character-count/character-count.component.d.ts +3 -0
- package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +6 -3
- package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +11 -10
- package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input.component.d.ts +8 -3
- package/lib/desy-forms/components/error-message/error-message.component.d.ts +3 -0
- package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +3 -0
- package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +7 -1
- package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +4 -1
- package/lib/desy-forms/components/form-field/form-field.component.d.ts +3 -0
- package/lib/desy-forms/components/hint/hint.component.d.ts +3 -0
- package/lib/desy-forms/components/input/input.component.d.ts +4 -0
- package/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group.component.d.ts +5 -1
- package/lib/desy-forms/components/label/label.component.d.ts +7 -2
- package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +6 -3
- package/lib/desy-forms/components/radios/radios.component.d.ts +11 -10
- package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +4 -0
- package/lib/desy-forms/components/select/option/option.component.d.ts +3 -0
- package/lib/desy-forms/components/select/option-group/option-group.component.d.ts +3 -0
- package/lib/desy-forms/components/select/select-item/select-item.component.d.ts +3 -0
- package/lib/desy-forms/components/select/select.component.d.ts +4 -0
- package/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.d.ts +3 -0
- package/lib/desy-forms/components/textarea/textarea.component.d.ts +4 -1
- package/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.d.ts +4 -1
- package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +9 -6
- package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +3 -0
- package/lib/desy-forms/components/tree/tree-sub/tree-sub.component.d.ts +3 -0
- package/lib/desy-forms/components/tree/tree.component.d.ts +3 -0
- package/lib/desy-forms/desy-forms.module.d.ts +45 -0
- package/lib/desy-forms/directives/condition.directive.d.ts +3 -0
- package/lib/desy-forms/interfaces/select-item-data.d.ts +3 -0
- package/lib/desy-forms/models/checkbox-service-item.component.d.ts +13 -0
- package/lib/desy-forms/models/radio-service-item.component.d.ts +12 -0
- package/lib/desy-forms/services/checkbox.service.d.ts +14 -0
- package/lib/desy-forms/services/radio.service.d.ts +13 -0
- package/lib/desy-modals/components/dialog/dialog.component.d.ts +5 -2
- package/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal.component.d.ts +3 -0
- package/lib/desy-modals/desy-modals.module.d.ts +14 -0
- package/lib/desy-modals/services/dialog.service.d.ts +3 -0
- package/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.d.ts +3 -0
- package/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.d.ts +3 -0
- package/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.d.ts +3 -0
- package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-meta/footer-meta.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-navigation/header-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/directives/menubaritem.directive.d.ts +3 -0
- package/lib/desy-nav/components/menubar/menubar.component.d.ts +3 -0
- package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +3 -0
- package/lib/desy-nav/components/nav/nav.component.d.ts +6 -3
- package/lib/desy-nav/components/notification/notification-item/notification-item.component.d.ts +3 -0
- package/lib/desy-nav/components/notification/notification.component.d.ts +3 -0
- package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +3 -0
- package/lib/desy-nav/desy-nav.module.d.ts +46 -0
- package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +1 -0
- package/lib/desy-nav/interfaces/menu-horizontal-item-event-data.d.ts +1 -0
- package/lib/desy-nav/interfaces/menu-navigation-item-sub-item.d.ts +8 -0
- package/lib/desy-pagination/components/pagination/pagination.component.d.ts +3 -0
- package/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.d.ts +3 -0
- package/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.d.ts +3 -0
- package/lib/desy-pagination/desy-pagination.module.d.ts +11 -0
- package/lib/desy-tables/components/table/components/table-caption.component.d.ts +3 -0
- package/lib/desy-tables/components/table/components/table-cell.component.d.ts +3 -0
- package/lib/desy-tables/components/table/components/table-header.component.d.ts +3 -0
- package/lib/desy-tables/components/table/components/table-row.component.d.ts +3 -0
- package/lib/desy-tables/components/table/table.component.d.ts +4 -1
- package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +6 -3
- package/lib/desy-tables/desy-tables.module.d.ts +23 -0
- package/lib/desy-tables/directives/cell.directive.d.ts +3 -0
- package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +3 -0
- package/lib/desy-tables/directives/row.directive.d.ts +3 -0
- package/lib/desy-tables/interfaces/head-cell-data.d.ts +2 -0
- package/lib/desy-views/components/accordion/accordion-header/accordion-header.component.d.ts +3 -0
- package/lib/desy-views/components/accordion/accordion-item/accordion-item.component.d.ts +3 -0
- package/lib/desy-views/components/accordion/accordion.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-history.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.d.ts +3 -0
- package/lib/desy-views/components/alert/alert.component.d.ts +4 -1
- package/lib/desy-views/components/collapsible/collapsible.component.d.ts +5 -1
- package/lib/desy-views/components/description-list/definition/definition.component.d.ts +3 -0
- package/lib/desy-views/components/description-list/description-item/description-item.component.d.ts +3 -0
- package/lib/desy-views/components/description-list/description-list.component.d.ts +3 -0
- package/lib/desy-views/components/description-list/term/term.component.d.ts +3 -0
- package/lib/desy-views/components/details/details.component.d.ts +7 -1
- package/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.d.ts +3 -0
- package/lib/desy-views/components/item/item-content-right/item-content-right.component.d.ts +3 -0
- package/lib/desy-views/components/item/item-item/item-item.component.d.ts +3 -0
- package/lib/desy-views/components/item/item.component.d.ts +4 -1
- package/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.d.ts +3 -0
- package/lib/desy-views/components/media-object/media-object.component.d.ts +3 -0
- package/lib/desy-views/components/spinner/spinner.component.d.ts +3 -0
- package/lib/desy-views/components/status/status.component.d.ts +7 -2
- package/lib/desy-views/components/status-item/status-item.component.d.ts +3 -0
- package/lib/desy-views/components/tabs/panel/panel.component.d.ts +3 -0
- package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +3 -0
- package/lib/desy-views/components/tabs/tabs.component.d.ts +9 -3
- package/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.d.ts +3 -0
- package/lib/desy-views/components/tooltip/tooltip.component.d.ts +3 -0
- package/lib/desy-views/desy-views.module.d.ts +37 -0
- package/lib/desy-views/interfaces/accordion-item.data.d.ts +1 -0
- package/lib/desy-views/interfaces/tabs-items-data.d.ts +2 -0
- package/lib/desy-views/services/alert.service.d.ts +3 -0
- package/lib/shared/components/accessibility/accessibility.component.d.ts +3 -0
- package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +4 -1
- package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +3 -0
- package/lib/shared/components/content-base/content-base.component.d.ts +3 -0
- package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +3 -0
- package/lib/shared/directives/attribute-change.directive.d.ts +3 -0
- package/lib/shared/directives/click-outside.directive.d.ts +3 -0
- package/lib/shared/directives/content-change.directive.d.ts +3 -0
- package/lib/shared/directives/custom-inner-content.directive.d.ts +3 -0
- package/lib/shared/directives/inner-content.directive.d.ts +3 -0
- package/lib/shared/pipes/external-href.pipe.d.ts +3 -0
- package/lib/shared/pipes/inner-html.pipe.d.ts +3 -0
- package/lib/shared/pipes/make-html-list.pipe.d.ts +3 -0
- package/lib/shared/shared.module.d.ts +19 -0
- package/package.json +33 -20
- package/public-api.d.ts +24 -0
- package/bundles/desy-angular.umd.js +0 -10918
- package/bundles/desy-angular.umd.js.map +0 -1
- package/bundles/desy-angular.umd.min.js +0 -2
- package/bundles/desy-angular.umd.min.js.map +0 -1
- package/desy-angular.d.ts +0 -51
- package/desy-angular.metadata.json +0 -1
- package/esm2015/desy-angular.js +0 -52
- package/esm2015/lib/desy-angular.module.js +0 -38
- package/esm2015/lib/desy-buttons/components/button/button.component.js +0 -92
- package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +0 -50
- package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +0 -111
- package/esm2015/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.js +0 -26
- package/esm2015/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.js +0 -14
- package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +0 -265
- package/esm2015/lib/desy-buttons/components/pill/pill.component.js +0 -64
- package/esm2015/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.js +0 -15
- package/esm2015/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.js +0 -15
- package/esm2015/lib/desy-buttons/components/toggle/toggle.component.js +0 -44
- package/esm2015/lib/desy-commons/components/content/content.component.js +0 -14
- package/esm2015/lib/desy-commons/components/description/description.component.js +0 -15
- package/esm2015/lib/desy-commons/components/divider/divider.component.js +0 -15
- package/esm2015/lib/desy-commons/components/icon/icon.component.js +0 -15
- package/esm2015/lib/desy-commons/components/title/title.component.js +0 -14
- package/esm2015/lib/desy-commons/desy-commons.module.js +0 -36
- package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +0 -109
- package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +0 -188
- package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +0 -226
- package/esm2015/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.js +0 -38
- package/esm2015/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.js +0 -19
- package/esm2015/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.js +0 -13
- package/esm2015/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.js +0 -38
- package/esm2015/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.js +0 -36
- package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +0 -222
- package/esm2015/lib/desy-forms/components/error-message/error-message.component.js +0 -28
- package/esm2015/lib/desy-forms/components/fieldset/fieldset.component.js +0 -44
- package/esm2015/lib/desy-forms/components/fieldset/legend/legend.component.js +0 -16
- package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +0 -51
- package/esm2015/lib/desy-forms/components/form-field/form-field.component.js +0 -103
- package/esm2015/lib/desy-forms/components/hint/hint.component.js +0 -27
- package/esm2015/lib/desy-forms/components/input/input.component.js +0 -67
- package/esm2015/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.js +0 -20
- package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +0 -39
- package/esm2015/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.js +0 -13
- package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +0 -35
- package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +0 -179
- package/esm2015/lib/desy-forms/components/label/label.component.js +0 -30
- package/esm2015/lib/desy-forms/components/radios/radio-item/radio-item.component.js +0 -144
- package/esm2015/lib/desy-forms/components/radios/radios.component.js +0 -233
- package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +0 -45
- package/esm2015/lib/desy-forms/components/select/option/option.component.js +0 -17
- package/esm2015/lib/desy-forms/components/select/option-group/option-group.component.js +0 -17
- package/esm2015/lib/desy-forms/components/select/select-item/select-item.component.js +0 -14
- package/esm2015/lib/desy-forms/components/select/select.component.js +0 -64
- package/esm2015/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.js +0 -12
- package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +0 -60
- package/esm2015/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.js +0 -151
- package/esm2015/lib/desy-forms/components/tree/tree-item/tree-item.component.js +0 -370
- package/esm2015/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.js +0 -25
- package/esm2015/lib/desy-forms/components/tree/tree-sub/tree-sub.component.js +0 -14
- package/esm2015/lib/desy-forms/components/tree/tree.component.js +0 -408
- package/esm2015/lib/desy-forms/desy-forms.module.js +0 -130
- package/esm2015/lib/desy-forms/directives/condition.directive.js +0 -32
- package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +0 -121
- package/esm2015/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.js +0 -20
- package/esm2015/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.js +0 -19
- package/esm2015/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.js +0 -19
- package/esm2015/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.js +0 -19
- package/esm2015/lib/desy-modals/components/modal/modal.component.js +0 -145
- package/esm2015/lib/desy-modals/desy-modals.module.js +0 -41
- package/esm2015/lib/desy-modals/services/dialog.service.js +0 -117
- package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.js +0 -15
- package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.js +0 -42
- package/esm2015/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.js +0 -15
- package/esm2015/lib/desy-nav/components/error-summary/error-summary.component.js +0 -46
- package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.js +0 -16
- package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta.component.js +0 -23
- package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.js +0 -16
- package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.js +0 -16
- package/esm2015/lib/desy-nav/components/footer/footer.component.js +0 -52
- package/esm2015/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.js +0 -11
- package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +0 -36
- package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.js +0 -19
- package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +0 -29
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +0 -22
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.js +0 -11
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +0 -88
- package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +0 -34
- package/esm2015/lib/desy-nav/components/header/header.component.js +0 -66
- package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.js +0 -28
- package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +0 -68
- package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.js +0 -35
- package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.js +0 -31
- package/esm2015/lib/desy-nav/components/menu-navigation/menu-navigation.component.js +0 -568
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.js +0 -32
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.js +0 -16
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.js +0 -24
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +0 -89
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.js +0 -36
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.js +0 -14
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.js +0 -29
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.js +0 -23
- package/esm2015/lib/desy-nav/components/menubar/directives/menubaritem.directive.js +0 -37
- package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +0 -672
- package/esm2015/lib/desy-nav/components/nav/nav-item/nav-item.component.js +0 -30
- package/esm2015/lib/desy-nav/components/nav/nav.component.js +0 -105
- package/esm2015/lib/desy-nav/components/notification/notification-item/notification-item.component.js +0 -18
- package/esm2015/lib/desy-nav/components/notification/notification.component.js +0 -102
- package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +0 -33
- package/esm2015/lib/desy-nav/desy-nav.module.js +0 -136
- package/esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item.js +0 -2
- package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +0 -138
- package/esm2015/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.js +0 -15
- package/esm2015/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.js +0 -14
- package/esm2015/lib/desy-pagination/desy-pagination.module.js +0 -31
- package/esm2015/lib/desy-tables/components/table/components/table-caption.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table/components/table-cell.component.js +0 -17
- package/esm2015/lib/desy-tables/components/table/components/table-header.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table/components/table-row.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table/table.component.js +0 -55
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.js +0 -33
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.js +0 -17
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.js +0 -20
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.js +0 -22
- package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +0 -316
- package/esm2015/lib/desy-tables/desy-tables.module.js +0 -64
- package/esm2015/lib/desy-tables/directives/cell.directive.js +0 -26
- package/esm2015/lib/desy-tables/directives/focus-clicked-cell.directive.js +0 -78
- package/esm2015/lib/desy-tables/directives/row.directive.js +0 -24
- package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +0 -7
- package/esm2015/lib/desy-views/components/accordion/accordion-header/accordion-header.component.js +0 -14
- package/esm2015/lib/desy-views/components/accordion/accordion-item/accordion-item.component.js +0 -43
- package/esm2015/lib/desy-views/components/accordion/accordion.component.js +0 -153
- package/esm2015/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.js +0 -31
- package/esm2015/lib/desy-views/components/accordion-history/accordion-history.component.js +0 -15
- package/esm2015/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.js +0 -14
- package/esm2015/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.js +0 -14
- package/esm2015/lib/desy-views/components/alert/alert.component.js +0 -75
- package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +0 -55
- package/esm2015/lib/desy-views/components/description-list/definition/definition.component.js +0 -15
- package/esm2015/lib/desy-views/components/description-list/description-item/description-item.component.js +0 -26
- package/esm2015/lib/desy-views/components/description-list/description-list.component.js +0 -22
- package/esm2015/lib/desy-views/components/description-list/term/term.component.js +0 -15
- package/esm2015/lib/desy-views/components/details/details.component.js +0 -20
- package/esm2015/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.js +0 -14
- package/esm2015/lib/desy-views/components/item/item-content-right/item-content-right.component.js +0 -11
- package/esm2015/lib/desy-views/components/item/item-item/item-item.component.js +0 -11
- package/esm2015/lib/desy-views/components/item/item.component.js +0 -87
- package/esm2015/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.js +0 -11
- package/esm2015/lib/desy-views/components/media-object/media-object.component.js +0 -67
- package/esm2015/lib/desy-views/components/spinner/spinner.component.js +0 -45
- package/esm2015/lib/desy-views/components/status/status.component.js +0 -58
- package/esm2015/lib/desy-views/components/status-item/status-item.component.js +0 -86
- package/esm2015/lib/desy-views/components/tabs/panel/panel.component.js +0 -15
- package/esm2015/lib/desy-views/components/tabs/tab-item/tab-item.component.js +0 -28
- package/esm2015/lib/desy-views/components/tabs/tabs.component.js +0 -150
- package/esm2015/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.js +0 -11
- package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +0 -155
- package/esm2015/lib/desy-views/desy-views.module.js +0 -108
- package/esm2015/lib/desy-views/interfaces/tabs-items-data.js +0 -2
- package/esm2015/lib/desy-views/services/alert.service.js +0 -89
- package/esm2015/lib/shared/components/accessibility/accessibility.component.js +0 -29
- package/esm2015/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.js +0 -27
- package/esm2015/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.js +0 -26
- package/esm2015/lib/shared/components/content-base/content-base.component.js +0 -20
- package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js +0 -14
- package/esm2015/lib/shared/directives/attribute-change.directive.js +0 -43
- package/esm2015/lib/shared/directives/click-outside.directive.js +0 -35
- package/esm2015/lib/shared/directives/content-change.directive.js +0 -43
- package/esm2015/lib/shared/directives/custom-inner-content.directive.js +0 -62
- package/esm2015/lib/shared/directives/inner-content.directive.js +0 -34
- package/esm2015/lib/shared/pipes/external-href.pipe.js +0 -28
- package/esm2015/lib/shared/pipes/inner-html.pipe.js +0 -19
- package/esm2015/lib/shared/pipes/make-html-list.pipe.js +0 -16
- package/esm2015/lib/shared/shared.module.js +0 -62
- package/esm2015/public-api.js +0 -197
- package/fesm2015/desy-angular.js +0 -9650
- package/fesm2015/desy-angular.js.map +0 -1
- /package/{esm2015/lib/desy-buttons/interfaces/listbox-item-data.js → esm2020/lib/desy-buttons/interfaces/listbox-item-data.mjs} +0 -0
- /package/{esm2015/lib/desy-buttons/interfaces/listbox-label-data.js → esm2020/lib/desy-buttons/interfaces/listbox-label-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/content-data.js → esm2020/lib/desy-commons/interfaces/content-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/description-data.js → esm2020/lib/desy-commons/interfaces/description-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/divider-data.js → esm2020/lib/desy-commons/interfaces/divider-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/icon-data.js → esm2020/lib/desy-commons/interfaces/icon-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/index.js → esm2020/lib/desy-commons/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/title-data.js → esm2020/lib/desy-commons/interfaces/title-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/components/tree/interfaces/itree-item.js → esm2020/lib/desy-forms/components/tree/interfaces/itree-item.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.js → esm2020/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/accesibility-data.js → esm2020/lib/desy-forms/interfaces/accesibility-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/error-message-data.js → esm2020/lib/desy-forms/interfaces/error-message-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/fieldset-data.js → esm2020/lib/desy-forms/interfaces/fieldset-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/hint-data.js → esm2020/lib/desy-forms/interfaces/hint-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/index.js → esm2020/lib/desy-forms/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-checkbox-data.js → esm2020/lib/desy-forms/interfaces/item-checkbox-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-date-input-data.js → esm2020/lib/desy-forms/interfaces/item-date-input-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-divider-date-input-data.js → esm2020/lib/desy-forms/interfaces/item-divider-date-input-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-divider-input-group-data.js → esm2020/lib/desy-forms/interfaces/item-divider-input-group-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-input-group-data.js → esm2020/lib/desy-forms/interfaces/item-input-group-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-radio-data.js → esm2020/lib/desy-forms/interfaces/item-radio-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-radio-with-template-data.js → esm2020/lib/desy-forms/interfaces/item-radio-with-template-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/label-data.js → esm2020/lib/desy-forms/interfaces/label-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/legend-data.js → esm2020/lib/desy-forms/interfaces/legend-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/dialog-options.js → esm2020/lib/desy-modals/interfaces/dialog-options.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/index.js → esm2020/lib/desy-modals/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-button-data.js → esm2020/lib/desy-modals/interfaces/modal-button-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-data.js → esm2020/lib/desy-modals/interfaces/modal-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-icon-data.js → esm2020/lib/desy-modals/interfaces/modal-icon-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-options.js → esm2020/lib/desy-modals/interfaces/modal-options.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/open-dialog-result.js → esm2020/lib/desy-modals/interfaces/open-dialog-result.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/breadcrumbs.data.js → esm2020/lib/desy-nav/interfaces/breadcrumbs.data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/error-summary-data.js → esm2020/lib/desy-nav/interfaces/error-summary-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/footer-data.js → esm2020/lib/desy-nav/interfaces/footer-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-dropdown-data.js → esm2020/lib/desy-nav/interfaces/header-dropdown-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-navigation-data.js → esm2020/lib/desy-nav/interfaces/header-navigation-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js → esm2020/lib/desy-nav/interfaces/header-navigation-item-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-offcanvas-data.js → esm2020/lib/desy-nav/interfaces/header-offcanvas-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-subnav-data.js → esm2020/lib/desy-nav/interfaces/header-subnav-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/index.js → esm2020/lib/desy-nav/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.js → esm2020/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-navigation.js → esm2020/lib/desy-nav/interfaces/menu-navigation.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-vertical-items-data.js → esm2020/lib/desy-nav/interfaces/menu-vertical-items-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-vertical-sub-data.js → esm2020/lib/desy-nav/interfaces/menu-vertical-sub-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-vertical-sub-items-data.js → esm2020/lib/desy-nav/interfaces/menu-vertical-sub-items-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.js → esm2020/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item-sub-item.js → esm2020/lib/desy-nav/interfaces/menubar-item-sub-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item-sub.js → esm2020/lib/desy-nav/interfaces/menubar-item-sub.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item.js → esm2020/lib/desy-nav/interfaces/menubar-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/nav-item-event.data.js → esm2020/lib/desy-nav/interfaces/nav-item-event.data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/nav-item.data.js → esm2020/lib/desy-nav/interfaces/nav-item.data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/notification-items-data.js → esm2020/lib/desy-nav/interfaces/notification-items-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/notification-options.js → esm2020/lib/desy-nav/interfaces/notification-options.mjs} +0 -0
- /package/{esm2015/lib/desy-pagination/interfaces/index.js → esm2020/lib/desy-pagination/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-pagination/interfaces/pagination-item.data.js → esm2020/lib/desy-pagination/interfaces/pagination-item.data.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/cell-data.js → esm2020/lib/desy-tables/interfaces/cell-data.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/index.js → esm2020/lib/desy-tables/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/recalculate-table-params.js → esm2020/lib/desy-tables/interfaces/recalculate-table-params.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/row-data.js → esm2020/lib/desy-tables/interfaces/row-data.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/wrapper-data.js → esm2020/lib/desy-tables/interfaces/wrapper-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/accordion-header.data.js → esm2020/lib/desy-views/interfaces/accordion-header.data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/alert-options.js → esm2020/lib/desy-views/interfaces/alert-options.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/description-item.data.js → esm2020/lib/desy-views/interfaces/description-item.data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/index.js → esm2020/lib/desy-views/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/open-alert-result.js → esm2020/lib/desy-views/interfaces/open-alert-result.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/status-data.js → esm2020/lib/desy-views/interfaces/status-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/status-icon-data.js → esm2020/lib/desy-views/interfaces/status-icon-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/status-item-title-data.js → esm2020/lib/desy-views/interfaces/status-item-title-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/tabs-panel-data.js → esm2020/lib/desy-views/interfaces/tabs-panel-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/term-definition.data.js → esm2020/lib/desy-views/interfaces/term-definition.data.mjs} +0 -0
- /package/{esm2015/lib/shared/components/index.js → esm2020/lib/shared/components/index.mjs} +0 -0
- /package/{esm2015/lib/shared/decorators/desy-content-child.decorator.js → esm2020/lib/shared/decorators/desy-content-child.decorator.mjs} +0 -0
- /package/{esm2015/lib/shared/decorators/desy-on-input-change.decorator.js → esm2020/lib/shared/decorators/desy-on-input-change.decorator.mjs} +0 -0
- /package/{esm2015/lib/shared/interfaces/accesibility-data.js → esm2020/lib/shared/interfaces/accesibility-data.mjs} +0 -0
- /package/{esm2015/lib/shared/utils/focus-utils.js → esm2020/lib/shared/utils/focus-utils.mjs} +0 -0
- /package/{esm2015/lib/shared/utils/search-utils.js → esm2020/lib/shared/utils/search-utils.mjs} +0 -0
- /package/{esm2015/lib/shared/utils/string-utils.js → esm2020/lib/shared/utils/string-utils.mjs} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desy-angular.mjs","sources":["../../../projects/desy-angular/src/lib/shared/components/accessibility/accessibility.component.ts","../../../projects/desy-angular/src/lib/shared/components/content-base/content-base.component.ts","../../../projects/desy-angular/src/lib/shared/components/text-or-html-required/text-or-html-required.component.ts","../../../projects/desy-angular/src/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.ts","../../../projects/desy-angular/src/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.ts","../../../projects/desy-angular/src/lib/shared/directives/inner-content.directive.ts","../../../projects/desy-angular/src/lib/shared/pipes/external-href.pipe.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/button/button.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/button/button.component.html","../../../projects/desy-angular/src/lib/desy-views/components/spinner/spinner.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/spinner/spinner.component.html","../../../projects/desy-angular/src/lib/desy-buttons/components/button-loader/button-loader.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/button-loader/button-loader.component.html","../../../projects/desy-angular/src/lib/shared/utils/focus-utils.ts","../../../projects/desy-angular/src/lib/shared/directives/custom-inner-content.directive.ts","../../../projects/desy-angular/src/lib/shared/pipes/make-html-list.pipe.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/dropdown/dropdown.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/dropdown/dropdown.component.html","../../../projects/desy-angular/src/lib/shared/utils/string-utils.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.html","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.html","../../../projects/desy-angular/src/lib/shared/decorators/desy-content-child.decorator.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/listbox/listbox.component.html","../../../projects/desy-angular/src/lib/desy-buttons/components/pill/pill.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/pill/pill.component.html","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.html","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.html","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle.component.ts","../../../projects/desy-angular/src/lib/desy-buttons/components/toggle/toggle.component.html","../../../projects/desy-angular/src/lib/desy-commons/components/content/content.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/content/content.component.html","../../../projects/desy-angular/src/lib/desy-commons/components/description/description.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/icon/icon.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/icon/icon.component.html","../../../projects/desy-angular/src/lib/desy-commons/components/title/title.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/divider/divider.component.ts","../../../projects/desy-angular/src/lib/desy-commons/components/divider/divider.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/hint/hint.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/hint/hint.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/label/label.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/label/label.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/error-message/error-message.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/error-message/error-message.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/legend/legend.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/legend/legend.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/fieldset.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/fieldset/fieldset.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/form-field/form-field.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/textarea/textarea.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/textarea/textarea.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/character-count/character-count.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/character-count/character-count.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/input/input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input/input.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/select/select-item/select-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/select-item/select-item.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/select/option/option.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/option-group/option-group.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/option-group/option-group.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/select/select.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/select/select.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/file-upload/file-upload.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/file-upload/file-upload.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.ts","../../../projects/desy-angular/src/lib/shared/decorators/desy-on-input-change.decorator.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/input-group/input-group.component.html","../../../projects/desy-angular/src/lib/desy-forms/services/radio.service.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radio-item/radio-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radio-item/radio-item.component.html","../../../projects/desy-angular/src/lib/desy-forms/models/radio-service-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radios.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/radios/radios.component.html","../../../projects/desy-angular/src/lib/desy-forms/services/checkbox.service.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.html","../../../projects/desy-angular/src/lib/desy-forms/models/checkbox-service-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkboxes.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/checkboxes/checkboxes.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/date-input/date-input.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/search-bar/search-bar.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/search-bar/search-bar.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-sub/tree-sub.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-sub/tree-sub.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/tree/interfaces/itree-item.ts","../../../projects/desy-angular/src/lib/shared/utils/search-utils.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-item/tree-item.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-item/tree-item.component.html","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree.component.html","../../../projects/desy-angular/src/lib/desy-forms/directives/condition.directive.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.ts","../../../projects/desy-angular/src/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.html","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.ts","../../../projects/desy-angular/src/lib/shared/directives/content-change.directive.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/modal/modal.component.html","../../../projects/desy-angular/src/lib/shared/directives/click-outside.directive.ts","../../../projects/desy-angular/src/lib/desy-modals/components/dialog/dialog.component.ts","../../../projects/desy-angular/src/lib/desy-modals/components/dialog/dialog.component.html","../../../projects/desy-angular/src/lib/desy-modals/services/dialog.service.ts","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-navigation/header-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-navigation/header-navigation.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav-item/nav-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav-item/nav-item.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/nav/nav.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-subnav/header-subnav.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-subnav/header-subnav.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/skip-link/skip-link.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/skip-link/skip-link.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/header/header.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer-meta/footer-meta.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/footer/footer.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/error-summary/error-summary.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/error-summary/error-summary.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-vertical/menu-vertical.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/directives/menubaritem.directive.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.html","../../../projects/desy-angular/src/lib/shared/directives/attribute-change.directive.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/menubar.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menubar/menubar.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/notification/notification-item/notification-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/notification/notification.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/notification/notification.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.html","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/menu-navigation.component.ts","../../../projects/desy-angular/src/lib/desy-nav/components/menu-navigation/menu-navigation.component.html","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-header.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-caption.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/components/table-row.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/table.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table/table.component.html","../../../projects/desy-angular/src/lib/desy-tables/interfaces/head-cell-data.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/cell.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/row.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/directives/focus-clicked-cell.directive.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/table-advanced.component.ts","../../../projects/desy-angular/src/lib/desy-tables/components/table-advanced/table-advanced.component.html","../../../projects/desy-angular/src/lib/desy-views/components/alert/alert.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/alert/alert.component.html","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion-header/accordion-header.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion-item/accordion-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion/accordion.component.html","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-history.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/accordion-history/accordion-history.component.html","../../../projects/desy-angular/src/lib/desy-views/components/details/details.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/details/details.component.html","../../../projects/desy-angular/src/lib/desy-views/components/description-list/term/term.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/definition/definition.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/description-item/description-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/description-list.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/description-list/description-list.component.html","../../../projects/desy-angular/src/lib/shared/pipes/inner-html.pipe.ts","../../../projects/desy-angular/src/lib/desy-views/components/collapsible/collapsible.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/collapsible/collapsible.component.html","../../../projects/desy-angular/src/lib/desy-views/components/item/item-content-right/item-content-right.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item-item/item-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/item/item.component.html","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.html","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/media-object/media-object.component.html","../../../projects/desy-angular/src/lib/desy-views/components/status/status.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/status/status.component.html","../../../projects/desy-angular/src/lib/desy-views/components/status-item/status-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/status-item/status-item.component.html","../../../projects/desy-angular/src/lib/desy-views/components/tabs/panel/panel.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/tab-item/tab-item.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/tabs.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tabs/tabs.component.html","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.html","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip.component.ts","../../../projects/desy-angular/src/lib/desy-views/components/tooltip/tooltip.component.html","../../../projects/desy-angular/src/lib/desy-views/services/alert.service.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination/pagination.component.ts","../../../projects/desy-angular/src/lib/desy-pagination/components/pagination/pagination.component.html","../../../projects/desy-angular/src/lib/shared/shared.module.ts","../../../projects/desy-angular/src/lib/desy-commons/desy-commons.module.ts","../../../projects/desy-angular/src/lib/desy-forms/desy-forms.module.ts","../../../projects/desy-angular/src/lib/desy-views/desy-views.module.ts","../../../projects/desy-angular/src/lib/desy-buttons/desy-buttons.module.ts","../../../projects/desy-angular/src/lib/desy-modals/desy-modals.module.ts","../../../projects/desy-angular/src/lib/desy-nav/desy-nav.module.ts","../../../projects/desy-angular/src/lib/desy-tables/desy-tables.module.ts","../../../projects/desy-angular/src/lib/desy-pagination/desy-pagination.module.ts","../../../projects/desy-angular/src/lib/desy-angular.module.ts","../../../projects/desy-angular/src/public-api.ts","../../../projects/desy-angular/src/desy-angular.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\n\n/**\n * componente para heredar los atributos de accesibilidad\n */\n@Component({\n selector: 'desy-accessibility',\n template: '<div></div>'\n})\nexport class AccessibilityComponent implements AccesibilityData {\n @Input() role: string;\n @Input() ariaLabel: string;\n @Input() ariaDescribedBy: string;\n @Input() ariaLabelledBy: string;\n @Input() ariaHidden: string;\n @Input() ariaDisabled: string;\n @Input() ariaControls: string;\n @Input() ariaCurrent: string;\n @Input() ariaLive: string;\n @Input() ariaExpanded: string;\n @Input() ariaErrorMessage: string;\n @Input() ariaHasPopup: string;\n @Input() ariaModal: string;\n @Input() tabindex: string;\n\n /*\n Copiar para facilitar el uso por defecto\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"\n */\n}\n","import {Component, TemplateRef, ViewChild} from '@angular/core';\nimport {AccessibilityComponent} from '../accessibility/accessibility.component';\n/**\n * Componente base para proyectar contenido\n */\n@Component({\n selector: 'desy-content-base',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ContentBaseComponent extends AccessibilityComponent {\n\n @ViewChild('contentTemplate', { static: true }) private content: TemplateRef<any>;\n\n public getContent(): TemplateRef<any> {\n return this.content;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'desy-text-or-html-required',\n template: '<div></div>'\n})\nexport class TextOrHtmlRequiredComponent {\n\n /***\n * componente base para el comportamiento de texto o html required - YA NO ES REQUIRIDO\n * \n **/\n\n @Input() text: string;\n @Input() html: string;\n\n}\n\n","import { Component, Input } from '@angular/core';\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\nimport { TextOrHtmlRequiredComponent } from '../text-or-html-required/text-or-html-required.component';\n\n@Component({\n selector: 'desy-accessibility-and-text-or-html-required',\n template: '<div></div>'\n})\nexport class AccessibilityAndTextOrHtmlRequiredComponent extends TextOrHtmlRequiredComponent implements AccesibilityData {\n\n /**\n * componente para heredar los atributos de accesibilidad y\n * el texto o html required - YA NO ES REQUIERIDO\n * \n * \n */\n\n // Atributos de accesibilidad\n @Input() role: string;\n @Input() ariaLabel: string;\n @Input() ariaDescribedBy: string;\n @Input() ariaLabelledBy: string;\n @Input() ariaHidden: string;\n @Input() ariaDisabled: string;\n @Input() ariaControls: string;\n @Input() ariaCurrent: string;\n @Input() ariaLive: string;\n @Input() ariaExpanded: string;\n @Input() ariaErrorMessage: string;\n @Input() ariaHasPopup: string;\n @Input() tabindex: string;\n\n}\n","import { Component, Input } from '@angular/core';\nimport { AccesibilityData } from '../../interfaces/accesibility-data';\n\n@Component({\n selector: 'desy-accessibility-and-content-required',\n template: '<div></div>'\n})\nexport class AccessibilityAndContentRequiredComponent implements AccesibilityData {\n\n /**\n * componente para heredar los atributos de accesibilidad y\n * el content required\n *\n * si en el componente que extiende de este, se implementa el onInit o Onchanges,\n * habra que incluir la llamada al a funcion contentRequiredFunction\n *\n */\n @Input() html: any;\n @Input() text: string;\n\n // Atributos de accesibilidad\n @Input() role: string;\n @Input() ariaLabel: string;\n @Input() ariaDescribedBy: string;\n @Input() ariaLabelledBy: string;\n @Input() ariaHidden: string;\n @Input() ariaDisabled: string;\n @Input() ariaControls: string;\n @Input() ariaCurrent: string;\n @Input() ariaLive: string;\n @Input() ariaExpanded: string;\n @Input() ariaErrorMessage: string;\n @Input() ariaHasPopup: string;\n @Input() tabindex: string;\n\n}\n","import {Directive, ElementRef, Input, OnChanges, SimpleChanges} from '@angular/core';\n@Directive({\n selector: '[desyInnerContent]'\n})\nexport class InnerContentDirective implements OnChanges {\n\n @Input('desyInnerContent') content: string;\n @Input() isHtml: boolean;\n @Input() deleteContentIfEmpty = true;\n\n constructor(private el: ElementRef) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.content) {\n if (this.isHtml) {\n this.el.nativeElement.innerHTML = this.content;\n } else {\n this.el.nativeElement.innerText = this.content;\n }\n } else if (this.deleteContentIfEmpty) {\n this.el.nativeElement.innerText = null;\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'externalHref'\n})\nexport class ExternalHrefPipe implements PipeTransform {\n\n /**\n * Asegura que un enlace externo sea correcto\n * @param href enlace\n */\n transform(href: string): string {\n let externalHref: string;\n if (href) {\n if (href.match('http(s)?://')) {\n externalHref = href;\n } else {\n externalHref = 'http://' + href;\n }\n } else {\n externalHref = '#';\n }\n return externalHref;\n }\n\n}\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output} from '@angular/core';\nimport { AccessibilityComponent, ContentBaseComponent} from '../../../shared/components';\n\n@Component({\n selector: 'desy-button',\n templateUrl: './button.component.html'\n})\nexport class ButtonComponent extends ContentBaseComponent implements OnInit {\n\n public static readonly ELEMENT_A: string = 'a';\n public static readonly ELEMENT_BUTTON: string = 'button';\n public static readonly ELEMENT_INPUT: string = 'input';\n\n\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\n\n @Input() id: string;\n @Input() classes: string;\n @Input() html: string;\n @Input() text: string;\n\n @Input() element: string; // 'a', 'button' o 'input'\n @Input() name: string;\n @Input() type: string;\n @Input() value: any;\n @Input() disabled: boolean;\n @Input() href: string;\n @Input() target: string;\n @Input() preventDoubleClick: boolean;\n\n @Input() routerLink: string|any[];\n @Input() routerLinkActiveClasses: string|string[];\n\n @Output() clickEvent = new EventEmitter();\n\n avoidingDoubleClick = false;\n isHtml: boolean;\n\n ngOnInit(): void {\n this.isHtml = Boolean(this.html);\n }\n\n onClick(event: any): void {\n if (this.preventDoubleClick) {\n if (!this.avoidingDoubleClick){\n this.avoidingDoubleClick = true;\n this.clickEvent.emit(event);\n setTimeout(() => {\n this.avoidingDoubleClick = false;\n }, 1000);\n } else {\n event.preventDefault(); // evitamos propagar el evento por ejemplo un submit en un formulario\n }\n } else {\n this.clickEvent.emit(event);\n }\n }\n\n getElement(): string {\n let element: string;\n if (this.element) {\n element = this.element.toLocaleLowerCase();\n } else {\n if (this.href) {\n element = ButtonComponent.ELEMENT_A;\n } else {\n element = ButtonComponent.ELEMENT_BUTTON;\n }\n }\n return element;\n }\n\n getClassNames(): string {\n let classNames = 'c-button';\n if (this.classes) {\n classNames += ' ' + this.classes;\n }\n if (this.disabled) {\n classNames += ' c-button--disabled';\n }\n return classNames;\n }\n\n isDisabled(): boolean {\n return this.disabled ? true : null;\n }\n\n get staticElementTypeA(): string {\n return ButtonComponent.ELEMENT_A;\n }\n\n get staticElementTypeButton(): string {\n return ButtonComponent.ELEMENT_BUTTON;\n }\n\n get staticElementTypeInput(): string {\n return ButtonComponent.ELEMENT_INPUT;\n }\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-container [ngSwitch]=\"getElement()\">\n <ng-container *ngSwitchCase=\"staticElementTypeA\">\n <!-- routerLink modifica href, por eso se duplica para que no convivan en un mismo html -->\n <a *ngIf=\"routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\n [routerLink]=\"routerLink\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\n [attr.role]=\"role ? role : 'button'\"\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </a>\n\n <a *ngIf=\"!routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\n [href]=\"href | externalHref\"\n [attr.target]=\"target ? target : null\"\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\n [attr.role]=\"role ? role : 'button'\"\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </a>\n\n </ng-container>\n\n <button *ngSwitchCase=\"staticElementTypeButton\" (click)=\"onClick($event)\"\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\n [attr.name]=\"name ? name : null\"\n [attr.value]=\"value ? value : null\"\n [attr.disabled]=\"isDisabled()\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\"\n [attr.type]=\"type ? type : null\"\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </button>\n\n <input *ngSwitchCase=\"staticElementTypeInput\" (click)=\"onClick($event)\"\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\n [attr.name]=\"name ? name : null\"\n [value]=\"text ? text : null\"\n [attr.disabled]=\"isDisabled()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.role]=\"role ? role : null\"\n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\"\n [attr.type]=\"type ? type : 'submit'\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\">\n</ng-container>\n","import { Component, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\n\n@Component({\n selector: 'desy-spinner',\n templateUrl: './spinner.component.html'\n})\nexport class SpinnerComponent extends AccessibilityComponent implements OnChanges{\n\n @Input() text: string;\n\n @Input() @HostBinding('class') classes: any;\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.aria-modal') ariaModalData: any\n\n @Input() id: string;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classes = this.classes ? this.classes += ' c-spinner' : 'c-spinner'\n this.roleData = this.role ? this.role : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\n }\n}\n","<span *ngIf=\"text\" class=\"sr-only\" role=\"alert\" aria-live=\"assertive\">{{text}}</span>","import {Component, HostBinding, Input, OnInit} from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\n\n@Component({\n selector: 'desy-button-loader',\n templateUrl: './button-loader.component.html'\n})\nexport class ButtonLoaderComponent extends ButtonComponent implements OnInit {\n\n public static readonly STATE_LOADING: string = 'is-loading';\n public static readonly STATE_SUCCESS: string = 'is-success';\n\n private static readonly DEFAULT_LOADER_TEXT: string = 'Acción en curso';\n private static readonly DEFAULT_SUCCESS_TEXT: string = 'Acción realizada con éxito';\n\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\n\n @Input() loaderText: string;\n @Input() loaderClasses: string;\n @Input() state: string;\n @Input() successText: string;\n\n isHtml: boolean;\n\n ngOnInit(): void {\n this.isHtml = Boolean(this.html);\n }\n\n getClassNames(): string {\n let classNames = 'c-button-loader relative';\n if (this.classes) {\n classNames += ' ' + this.classes;\n }\n if (this.disabled) {\n classNames += ' c-button-loader--disabled';\n }\n return classNames;\n }\n\n getSpinnerText(): string {\n let spinnerText: string = null;\n\n if (this.state === ButtonLoaderComponent.STATE_LOADING) {\n spinnerText = this.loaderText ? this.loaderText : ButtonLoaderComponent.DEFAULT_LOADER_TEXT;\n }\n\n return spinnerText;\n }\n\n\n getSuccessText(): string {\n let successText: string = null;\n\n if (this.state === ButtonLoaderComponent.STATE_SUCCESS) {\n successText = this.successText ? this.successText : ButtonLoaderComponent.DEFAULT_SUCCESS_TEXT;\n }\n\n return successText;\n }\n}\n","<ng-template #spinnerTemplate>\n <span class=\"c-button-loader__spinner flex items-center justify-center absolute inset-0\">\n <desy-spinner [text]=\"getSpinnerText() ? getSpinnerText() : 'Acción en curso'\" [classes]=\"loaderClasses\" ></desy-spinner>\n </span>\n</ng-template>\n\n<ng-template #successTemplate>\n <span class=\"c-button-loader__success flex items-center justify-center absolute inset-0\">\n <span class=\"sr-only\" role=\"alert\" aria-live=\"assertive\">{{ getSuccessText() }}</span>\n <span aria-hidden=\"true\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" aria-hidden=\"true\" width=\"1em\" height=\"1em\"><path d=\"M13.714 42.857A6.857 6.857 0 0 1 8.4 40.183L.857 31.646a3.429 3.429 0 0 1 .309-4.869A3.429 3.429 0 0 1 6 27.12l7.063 7.989a.72.72 0 0 0 .617.308.789.789 0 0 0 .617-.274L42.103 6.206a3.429 3.429 0 0 1 4.937 4.731L18.926 40.526a6.651 6.651 0 0 1-5.212 2.331Z\" fill=\"currentColor\"></path></svg></span>\n </span>\n</ng-template>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-container [ngSwitch]=\"getElement()\">\n <ng-container *ngSwitchCase=\"staticElementTypeA\">\n <a *ngIf=\"routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\n [routerLink]=\"routerLink\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\n role=\"button\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\n [class]=\"getClassNames()\">\n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\n <span class=\"c-button-loader__content inline-flex align-baseline\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></span>\n </a>\n\n <a *ngIf=\"!routerLink\" draggable=\"false\" (click)=\"onClick($event)\"\n [href]=\"href | externalHref\" [attr.target]=\"target ? target : null\"\n [attr.tabindex]=\"tabindex ? tabindex : (isDisabled() ? -1 : null)\"\n role=\"button\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [class]=\"getClassNames()\">\n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\n <span class=\"c-button-loader__content inline-flex align-baseline\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></span>\n </a>\n </ng-container>\n\n <button *ngSwitchCase=\"staticElementTypeButton\" (click)=\"onClick($event)\"\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\n [attr.name]=\"name ? name : null\"\n [attr.value]=\"value ? value : null\"\n [attr.disabled]=\"isDisabled()\"\n [attr.role]=\"(role ? role : null)\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\"\n [attr.type]=\"type ? type : null\"\n [class]=\"getClassNames()\">\n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\n <span class=\"c-button-loader__content inline-flex align-baseline\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"> <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></span>\n </button>\n\n <div *ngSwitchCase=\"staticElementTypeInput\" (click)=\"onClick($event)\"\n [routerLink]=\"routerLink ? routerLink : null\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\n [attr.role]=\"(role ? role : null)\"\n [attr.id]=\"id ? id : null\" [attr.aria-label]=\"ariaLabel ? ariaLabel : null\" [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\" [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\" [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\" [attr.aria-controls]=\"ariaControls ? ariaControls : null\" [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" [attr.aria-live]=\"ariaLive ? ariaLive : null\" [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" [attr.tabindex]=\"tabindex ? tabindex : null\"\n [class]=\"getClassNames()\">\n <span class=\"c-button-loader__content inline-flex align-baseline\">\n <input [value]=\"text ? text : null\" [type]=\"type ? type : 'submit'\" \n class=\"bg-transparent font-semibold\" \n [attr.data-prevent-double-click]=\"preventDoubleClick ? 'true' : null\" \n [attr.disabled]=\"isDisabled()\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.name]=\"name ? name : null\">\n </span> \n <ng-container *ngTemplateOutlet=\"spinnerTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"successTemplate\"></ng-container>\n </div>\n</ng-container>\n","export class FocusUtils {\n\n public static getFirstFocusableElement(parent?: HTMLElement): HTMLElement {\n const selectionableElements = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n let focusableList;\n if (parent) {\n focusableList = parent.querySelectorAll(selectionableElements);\n } else {\n focusableList = document.querySelectorAll(selectionableElements);\n }\n\n if (!focusableList || focusableList.length === 0) {\n return null;\n }\n\n let firstFocusable = null;\n let i = 0;\n while (i < focusableList.length) {\n try {\n const element = focusableList.item(i) as HTMLInputElement;\n if (FocusUtils.isFocusable(element)) {\n firstFocusable = element;\n break;\n }\n } catch (e) {\n\n }\n i++;\n }\n\n return firstFocusable;\n }\n\n public static isFocusable(element: any): boolean {\n if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) {\n return true;\n }\n\n if (element.disabled) {\n return false;\n }\n\n switch (element.nodeName) {\n case 'A':\n return !!element.href && element.rel !== 'ignore';\n case 'INPUT':\n return element.type !== 'hidden' && element.type !== 'file';\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n default:\n return false;\n }\n }\n\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n Injector,\n Input, OnChanges,\n SimpleChanges, TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {ContentBaseComponent} from '../components';\n\n/**\n * Permite introducir contenido de forma dinámica en una posición determinada desde:\n * - component: Componente existente de tipo ContentBase\n * - html: texto html en formato string\n * - text: texto plano en formato string\n */\n@Directive({\n selector: '[desyCustomInnerContent]'\n})\nexport class CustomInnerContentDirective implements OnChanges {\n\n @Input() desyCustomInnerContent: { component?: any|ContentBaseComponent, template?: TemplateRef<any>, html?: string, text?: string };\n\n private factory: ComponentFactory<ContentBaseComponent>;\n\n constructor(private viewContainerRef: ViewContainerRef, private resolver: ComponentFactoryResolver, private injector: Injector) {\n this.factory = this.resolver.resolveComponentFactory(ContentBaseComponent);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n if (this.desyCustomInnerContent.component && this.desyCustomInnerContent.component instanceof ContentBaseComponent) {\n\n // Se crea la vista embebida basándose en el contenido del ContentBase indicado.\n this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.component.getContent());\n } else if (this.desyCustomInnerContent.template) {\n\n // Se crea la vista embebida utilizando directamente el template.\n this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.template);\n } else if (this.desyCustomInnerContent.html) {\n\n // Se carga el contenido en un div temporal.\n const tmpWrapper = document.createElement('div');\n tmpWrapper.innerHTML = this.desyCustomInnerContent.html;\n\n // Los nodos hijos del div se proyectan dentro de un componente ContentBase.\n const nodeList = [];\n tmpWrapper.childNodes.forEach(node => nodeList.push(node));\n const componentRef = this.factory.create(this.injector, [ nodeList ]);\n\n // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.\n // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM\n this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());\n } else if (this.desyCustomInnerContent.text) {\n\n // Se carga el contenido en un nodo de texto\n const textNode = document.createTextNode(this.desyCustomInnerContent.text);\n\n // El nodo de texto se proyecta dentro de un componente ContentBase\n const componentRef = this.factory.create(this.injector, [[ textNode ]]);\n\n // Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.\n // Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM\n this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'makeHtmlList'\n})\nexport class MakeHtmlListPipe implements PipeTransform {\n\n transform(classes: string[], valueForEmpty?: string): string|null {\n let filteredList = classes.filter(c => c).join(' ');\n if (filteredList.length === 0 && valueForEmpty) {\n filteredList = valueForEmpty;\n }\n return filteredList;\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ElementRef,\n OnInit,\n OnChanges,\n SimpleChanges,\n HostBinding,\n} from '@angular/core';\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\n\n@Component({\n selector: 'desy-dropdown',\n templateUrl: './dropdown.component.html'\n})\nexport class DropdownComponent extends AccessibilityAndContentRequiredComponent implements OnInit, OnChanges {\n \n static readonly KEY_CODE_ESC = 'Escape';\n\n @ViewChild('dropdownContent', { read: ElementRef, static: true }) dropdownContent: ElementRef;\n\n @Input() id: string;\n @Input() disabled: boolean;\n @Input() hiddenText: string;\n @Input() @HostBinding('class') classesContainer: any;\n @Input() classesTooltip: string;\n @Input() caller: TemplateRef<any>;\n @Input() classes: string;\n\n @Output() clickEvent = new EventEmitter();\n\n isOpen = false;\n clickOutsideEnabled = false;\n\n tippyProperties: any;\n\n ngOnInit(): any {\n let contentTooltip: HTMLElement;\n if (this.dropdownContent && this.dropdownContent.nativeElement) {\n contentTooltip = this.dropdownContent.nativeElement as HTMLElement;\n contentTooltip.style.display = 'block';\n this.tippyProperties = {\n placement: 'bottom-start',\n inlinePositioning: true,\n content: contentTooltip,\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\n trigger: 'click',\n hideOnClick: true,\n interactive: true,\n arrow: false,\n offset: [0, -10],\n theme: '',\n plugins: [\n {\n name: 'hideOnPopperBlur',\n defaultValue: true,\n fn(instance) {\n return {\n onCreate() {\n instance.popper.addEventListener('focusout', (event) => {\n if (\n instance.props.hideOnPopperBlur &&\n event.relatedTarget &&\n !instance.popper.contains(event.relatedTarget)\n ) {\n instance.hide();\n }\n });\n },\n };\n }\n }, {\n name: 'hideOnEsc',\n defaultValue: true,\n fn({hide}): any {\n\n function onKeyDown(event: KeyboardEvent): void {\n if (event.key === DropdownComponent.KEY_CODE_ESC) {\n hide();\n }\n }\n\n return {\n onShow(): void {\n document.addEventListener('keydown', onKeyDown);\n },\n onHide(): void {\n document.removeEventListener('keydown', onKeyDown);\n },\n };\n },\n }\n ],\n role: false,\n aria: {\n content: 'auto',\n },\n onShown(instance): void {\n const firstFocusable = FocusUtils.getFirstFocusableElement(contentTooltip);\n if (firstFocusable) {\n firstFocusable.focus();\n }\n }\n };\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classesContainer = this.classesContainer ? this.classesContainer : 'relative';\n }\n\n onClick(event: any): void {\n if (!this.isDisabled()){\n this.clickEvent.emit(event);\n }\n }\n\n setOpen(isOpen: boolean): void {\n this.isOpen = isOpen;\n }\n\n isDisabled(): boolean {\n return this.disabled ? true : null;\n }\n}\n","<button (click)=\"onClick($event)\"\n ngxTippy [tippyProps]=\"tippyProperties\"\n [class]=\"['c-dropdown', classes] | makeHtmlList\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : null\"\n aria-haspopup=\"true\"\n [attr.aria-disabled]=\"isDisabled() ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.tabIndex]=\"isDisabled() ? '-1' : tabindex\">\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\">\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\n <ng-content></ng-content>\n </span>\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>\n</button>\n<span *ngIf=\"hiddenText\" class=\"sr-only\">{{ hiddenText }}</span>\n<div #dropdownContent style=\"display: none;\"\n [class]=\"['-ml-sm mt-2 border border-neutral-base shadow-md bg-white', classesTooltip] | makeHtmlList\">\n <ng-container *ngTemplateOutlet=\"caller\"></ng-container>\n</div>","/**\n * Facilita funciones de utilidad para trabajar con strings\n */\nexport class StringUtils {\n\n /**\n * Escapa los caracteres propios de HTML para mostrarlos como contenido\n * @param value texto en formato html\n */\n public static escapeHtml(value: string): string {\n return value ? value\n .replace(new RegExp(`&`, 'g'), '&')\n .replace(new RegExp(`<`, 'g'), '<')\n .replace(new RegExp(`>`, 'g'), '>')\n .replace(new RegExp(`\"`, 'g'), '"')\n .replace(new RegExp(`'`, 'g'), ''') : '';\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-listbox-label',\n templateUrl: './listbox-label.component.html'\n})\nexport class ListboxLabelComponent extends ContentBaseComponent {\n\n @Input() classes: string;\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild} from '@angular/core';\nimport {ListboxItemData} from '../../../interfaces/listbox-item-data';\nimport {AccessibilityComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-listbox-item',\n templateUrl: './listbox-item.component.html'\n})\nexport class ListboxItemComponent extends AccessibilityComponent implements ListboxItemData, OnChanges {\n\n @ViewChild('childComponentTemplate') content;\n\n @Input() id?: string;\n @Input() active?: boolean;\n @Input() classes?: string;\n @Input() title?: string;\n\n @Output() itemChange = new EventEmitter();\n\n ngOnChanges(changes: SimpleChanges): void {\n this.itemChange.emit(changes);\n }\n\n}\n","<ng-template #childComponentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {QueryList} from '@angular/core';\n\n/**\n * Decorador para convertir una queryList de componentes obtenidos con ContentChildren a un único componente, de forma que sea similar a un\n * ContentChild pero admitiendo únicamente los compontentes insertados en el primer nivel.\n * Debe utilizarse siempre junto a un ContentChildren\n * Si en el constructor de la clase en la que se utiliza se inyecta el Change detector con nombre 'changeDetectorRef', se indicará que hay\n * cambios cuando se detecten.\n * @param options opciones adicionales:\n * - onSetCallbackName: nombre del método al que llamar tras asociarse el valor. Esto puede utilizarse, por ejemplo, para sobreescribir\n * parámetros definidos externamente en el componente.\n * - onDeleteCallbackName: nombre del método al que llamar tras desasociarse el valor.\n */\nexport function DesyContentChild(options?: { onSetCallbackName?: string, onDeleteCallbackName?: string }): PropertyDecorator {\n return (target: any, propertyKey: string) => {\n const privateKeyName = `_${propertyKey}`;\n const privateQueryListKeyName = `_${propertyKey}Querylist`;\n\n Object.defineProperty(target, propertyKey, {\n set(value): void {\n const queryList = value instanceof QueryList ? value as QueryList<any> : null;\n if (queryList && !this[privateQueryListKeyName]) {\n this[privateQueryListKeyName] = queryList;\n queryList.changes.subscribe(() => {\n const previousValue = this[privateKeyName];\n this[privateKeyName] = queryList && queryList.length > 0 ? queryList.first : null;\n\n if (options && options.onSetCallbackName && this[options.onSetCallbackName] && this[privateKeyName] ) {\n this[options.onSetCallbackName](this[privateKeyName]);\n }\n\n if (options && options.onDeleteCallbackName && this[options.onDeleteCallbackName] && previousValue && !this[privateKeyName] ) {\n this[options.onDeleteCallbackName]();\n }\n });\n queryList.notifyOnChanges();\n }\n },\n get(): any {\n return this[privateKeyName];\n }\n });\n };\n}\n","import {\n Component,\n ContentChildren, DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport {AccessibilityAndTextOrHtmlRequiredComponent} from '../../../shared/components';\nimport {ListboxLabelData} from '../../interfaces/listbox-label-data';\nimport {ListboxItemData} from '../../interfaces/listbox-item-data';\nimport {StringUtils} from '../../../shared/utils/string-utils';\nimport {ListboxLabelComponent} from './listbox-label/listbox-label.component';\nimport {ListboxItemComponent} from './listbox-item/listbox-item.component';\nimport {Subscription} from 'rxjs';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-listbox',\n templateUrl: './listbox.component.html'\n})\nexport class ListboxComponent extends AccessibilityAndTextOrHtmlRequiredComponent implements OnInit, OnChanges, DoCheck {\n\n static readonly KEY_CODE_ESC = 'Escape';\n\n @ViewChild('button', { read: ElementRef, static: true }) listboxButton: ElementRef;\n @ViewChild('list', { read: ElementRef }) listboxList: ElementRef;\n @ViewChild('tooltip', { read: ElementRef, static: true }) listboxContent: ElementRef;\n @ViewChildren('option', { read: ElementRef }) listboxOptions: QueryList<ElementRef>;\n\n @DesyContentChild()\n @ContentChildren(ListboxLabelComponent) labelComponent: ListboxLabelComponent;\n @ContentChildren(ListboxItemComponent) itemComponentList: QueryList<ListboxItemComponent>;\n\n @Input() id: string; // required\n @Input() isMultiselectable: boolean;\n @Input() doesChangeButtonText: boolean;\n @Input() label: ListboxLabelData;\n @Input() classes: string;\n @Input() classesContainer: string;\n @Input() classesTooltip: string;\n @Input() idPrefix: string;\n @Input() disabled: boolean;\n @Input() items: ListboxItemData[];\n @Output() itemsChange = new EventEmitter();\n @Output() activeItemChange = new EventEmitter();\n\n tippyProperties: any; // Propiedades de tippy\n currentFocusIndex: number; // Índice del elemento actual con focus\n buttonContentHtml: string; // Puede ser el pasado por parámetro o el item seleccionado en caso de currentFocusIndex=true\n isListVisible = false; // Indica si la lista se está mostrando\n\n // conditionalId y conditionalItem representan en desy-html el item activo. Aquí es mejor obtenerlo cuando se necesita\n lastActiveItems: { item: ListboxItemData, index: number }[];\n itemComponentSubscriptions: Subscription[];\n\n itemList: ListboxItemData[];\n\n\n ngOnInit(): void {\n const listboxButtonElement = this.listboxButton.nativeElement;\n if (this.listboxContent && this.listboxContent.nativeElement) {\n const contentTooltip = this.listboxContent.nativeElement as HTMLElement;\n this.tippyProperties = { \n placement: 'bottom-start',\n inlinePositioning: true, \n content: contentTooltip,\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\n trigger: 'click',\n hideOnClick: true,\n interactive: true,\n arrow: false,\n offset: [0, -10],\n theme: '',\n plugins: [\n {\n name: 'hideOnPopperBlur',\n defaultValue: true,\n fn(instance) {\n return {\n onCreate() {\n instance.popper.addEventListener('focusout', (event) => {\n if (\n instance.props.hideOnPopperBlur &&\n event.relatedTarget &&\n !instance.popper.contains(event.relatedTarget)\n ) {\n instance.hide();\n }\n });\n },\n };\n }\n }, {\n name: 'hideOnEsc',\n defaultValue: true,\n fn({hide}): any {\n\n function onKeyDown(event: KeyboardEvent): void {\n if (event.key === ListboxComponent.KEY_CODE_ESC) {\n hide();\n listboxButtonElement.focus();\n }\n }\n\n return {\n onShow(): void {\n document.addEventListener('keydown', onKeyDown);\n },\n onHide(): void {\n document.removeEventListener('keydown', onKeyDown);\n },\n };\n },\n }\n ],\n role: false,\n aria: {\n content: 'auto',\n },\n onShow: this.onListShow.bind(this),\n onHidden: this.onListClose.bind(this)\n };\n }\n }\n\n ngOnChanges(): void {\n setTimeout(() => {\n\n if (this.itemComponentList && this.itemComponentList.length > 0) {\n if (this.itemComponentSubscriptions) {\n this.itemComponentSubscriptions.forEach(s => s.unsubscribe());\n }\n this.itemComponentSubscriptions = [];\n this.itemList = [];\n this.itemComponentList.forEach(item => {\n const subscription = item.itemChange.subscribe(() => this.checkActiveItems());\n this.itemComponentSubscriptions.push(subscription);\n this.itemList.push(item);\n });\n } else {\n this.itemList = this.items;\n }\n\n this.checkActiveItems();\n });\n }\n\n ngDoCheck(): void {\n if (!this.items || !this.itemList) {\n return;\n }\n\n this.checkActiveItems();\n }\n\n private getActiveItemsData(): { item: ListboxItemData, index: number }[] {\n return this.itemList\n .map((item, index) => item.active ? {item, index} : null)\n .filter(item => item !== null);\n }\n\n private checkActiveItems(): void {\n let activeItems: { item: ListboxItemData, index: number }[] = this.itemList\n .map((item, index) => item.active ? {item, index} : null)\n .filter(item => item !== null);\n\n let hasActiveItemChange = false;\n if (this.lastActiveItems && activeItems.length === this.lastActiveItems.length) {\n for (let i = 0; i < activeItems.length; i++) {\n if (activeItems[i].index !== this.lastActiveItems[i].index) {\n hasActiveItemChange = true;\n break;\n }\n }\n } else {\n hasActiveItemChange = true;\n }\n\n // Si hay cambios externos y es selección única, anulamos la selección anterior\n if (this.lastActiveItems && !this.isMultiselectable && hasActiveItemChange) {\n if (activeItems.length !== this.lastActiveItems.length) {\n for (const newItem of activeItems) {\n if (this.lastActiveItems.findIndex(i => i.index === newItem.index) >= 0) {\n newItem.item.active = false;\n }\n\n activeItems = activeItems.filter(item => item.item.active);\n }\n }\n }\n\n this.lastActiveItems = activeItems;\n\n // Se cambia el contenido del botón\n if (this.doesChangeButtonText && !this.isMultiselectable && activeItems.length > 0) {\n const activeItemOption = this.listboxOptions.find((item, index) => index === activeItems[0].index);\n if (activeItemOption) {\n this.buttonContentHtml = activeItemOption.nativeElement.innerHTML;\n }\n } else {\n this.buttonContentHtml = this.html ? this.html : null;\n }\n\n // Si hay cambios, se emiten\n if (hasActiveItemChange) {\n this.itemsChange.emit(this.itemList);\n this.activeItemChange.emit(activeItems.length > 0 ? activeItems[0].item : null);\n }\n }\n\n onListShow(): void {\n this.isListVisible = true;\n if (this.listboxList) {\n setTimeout(() => this.listboxList.nativeElement.focus());\n }\n }\n\n onListClose(): void {\n this.isListVisible = false;\n }\n\n onListFocus(): void {\n const activeItemsData = this.getActiveItemsData();\n if (activeItemsData.length > 0) {\n const activeElem = document.getElementById(this.getItemId(activeItemsData[0].item, activeItemsData[0].index));\n if (activeElem) {\n activeElem.focus();\n this.currentFocusIndex = activeItemsData[0].index;\n }\n } else if (this.itemList && this.itemList.length > 0) {\n this.currentFocusIndex = 0;\n if (!this.isMultiselectable) {\n this.selectItem(0);\n }\n } else {\n console.warn('No element to focus');\n }\n }\n\n moveFocus(position: number, event: Event): void {\n event.preventDefault();\n if (position >= 0 && position < this.itemList.length) {\n if (this.isMultiselectable) {\n this.currentFocusIndex = position;\n } else {\n this.selectItem(position);\n }\n }\n }\n\n onSpace(event: Event): void {\n event.preventDefault();\n if (this.isMultiselectable) {\n this.selectItem(this.currentFocusIndex);\n }\n }\n\n selectItem(index: number): void {\n if (!this.isMultiselectable) {\n this.itemList.forEach(item => item.active = false);\n this.itemList[index].active = true;\n } else {\n this.itemList[index].active = !this.itemList[index].active;\n }\n this.currentFocusIndex = index;\n\n this.checkActiveItems();\n }\n\n /*\n * Métodos para facilitar contenido al template\n */\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : this.id + '-listbox-item';\n }\n\n getItemId(item: ListboxItemData, index: number): string {\n let itemId: string;\n if (item.id) {\n itemId = item.id;\n } else {\n itemId = this.getIdPrefix();\n if (index > 0) {\n itemId += `-${index}`;\n }\n }\n return itemId;\n }\n\n hasLabel(): boolean {\n return !!(this.label || this.labelComponent);\n }\n\n getLabelContent(label: ListboxLabelData): string {\n return label.html ? label.html : `<p>${ StringUtils.escapeHtml(label.text) }</p>`;\n }\n}\n","<div [ngClass]=\"classesContainer ? classesContainer : 'relative'\">\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelComponent?.classes, label?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: labelComponent, html: label ? getLabelContent(label) : null }\"></ng-container>\n </div>\n <button #button [id]=\"id + '-button'\"\n [class]=\"['c-listbox', classes] | makeHtmlList\"\n ngxTippy [tippyProps]=\"tippyProperties\"\n aria-haspopup=\"listbox\"\n [attr.aria-labelledby]=\"[hasLabel() ? id + '-label' : null, id + '-button'] | makeHtmlList\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.aria-disabled]=\"disabled ? 'true' : (ariaDisabled ? ariaDisabled : null)\"\n [attr.aria-role] = \"role ? role : null\"\n [attr.aria-label] = \"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby] = \"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-hidden] = \"ariaHidden ? ariaHidden : null\"\n [attr.aria-controls] = \"ariaControls ? ariaControls : null\"\n [attr.aria-current] = \"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live] = \"ariaLive ? ariaLive : null\"\n [attr.aria-expanded] = \"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errorMessage] = \"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-hasppup] = \"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-tabindex] = \"tabindex ? tabindex : null\">\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\">\n <ng-container *desyCustomInnerContent=\"{ html: buttonContentHtml, text: text }\"></ng-container>\n </span>\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>\n </button>\n <div #tooltip [class]=\"['c-listbox__tooltip -ml-sm mt-2 border border-neutral-base shadow-md bg-white', classesTooltip] | makeHtmlList\">\n <ul *ngIf=\"itemList\"\n #list [id]=\"id\"\n (focus)=\"onListFocus()\"\n (keydown.arrowUp)=\"moveFocus(currentFocusIndex - 1, $event)\"\n (keydown.arrowDown)=\"moveFocus(currentFocusIndex + 1, $event)\"\n (keydown.home)=\"moveFocus(0, $event)\"\n (keydown.end)=\"moveFocus(items.length - 1, $event)\"\n (keydown.space)=\"onSpace($event)\"\n role=\"listbox\"\n tabindex=\"-1\"\n class=\"text-sm outline-none\"\n [attr.aria-labelledby]=\"hasLabel() ? id : (ariaLabelledBy ? ariaLabelledBy : null)\"\n [attr.aria-multiselectable]=\"isMultiselectable ? 'true' : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-label] = \"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby] = \"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-hidden] = \"ariaHidden ? ariaHidden : null\"\n [attr.aria-controls] = \"ariaControls ? ariaControls : null\"\n [attr.aria-current] = \"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live] = \"ariaLive ? ariaLive : null\"\n [attr.aria-expanded] = \"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage] = \"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup] = \"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-activedescendant] = \"lastActiveItems.length > 0 ? getItemId(lastActiveItems[0].item, lastActiveItems[0].index) : null\">\n <ng-container *ngFor=\"let item of itemList; index as index\">\n <li #option *ngIf=\"item\" role=\"option\" (click)=\"selectItem(index)\"\n [class]=\"['flex items-center pr-base pl-lg 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\"\n [ngClass]=\"{'focused': index === currentFocusIndex}\"\n [attr.aria-label]=\"item.active ? 'true' : (item.ariaLabel ? item.ariaLabel : null)\"\n [id]=\"getItemId(item, index)\"\n [attr.title]=\"item.title ? item.title : null\"\n\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-hidden] = \"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current] = \"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live] = \"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup] = \"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.aria-tabindex] = \"item.tabindex ? item.tabindex : null\"\n\n [attr.aria-checked]=\"item.active\"\n [attr.aria-selected]=\"item.active\">\n <ng-container *desyCustomInnerContent=\"{ template: item['content'], html: item.html, text: item.text }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>","import {Component, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\n\n@Component({\n selector: 'desy-pill',\n templateUrl: './pill.component.html'\n})\nexport class PillComponent extends AccessibilityAndContentRequiredComponent implements OnInit{\n\n public static readonly TYPE_A: string = 'a';\n public static readonly TYPE_BUTTON: string = 'button';\n public static readonly TYPE_SPAN: string = 'span';\n\n @Input() type: string; // 'a', 'button' o 'span'\n @Input() href: string;\n @Input() target: string;\n @Input() routerLink: string|any[];\n @Input() routerLinkActiveClasses: string|string[];\n @Input() classes: string;\n @Input() id: string;\n\n @Output() clickEvent = new EventEmitter();\n\n @HostBinding('attr.tabindex') readonly hostTabIndex = null; // Fix para evitar el tab-index agregado por routerLink en el host\n\n isHtml: boolean;\n\n ngOnInit(): void {\n this.isHtml = Boolean(this.html);\n }\n\n onClick(event: any): void {\n this.clickEvent.emit(event);\n }\n\n getType(): string {\n let type: string;\n if (this.type){\n type = this.type.toLocaleLowerCase();\n } else {\n if (this.href) {\n type = PillComponent.TYPE_A;\n } else {\n type = PillComponent.TYPE_SPAN;\n }\n }\n return type;\n }\n\n getClassNames(): string {\n let classNames = 'c-pill';\n if (this.classes) {\n classNames += ' ' + this.classes;\n }\n return classNames;\n }\n\n get staticElementTypeA(): string {\n return PillComponent.TYPE_A;\n }\n\n get staticElementTypeButton(): string {\n return PillComponent.TYPE_BUTTON;\n }\n\n get staticElementTypeSpan(): string {\n return PillComponent.TYPE_SPAN;\n }\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-container [ngSwitch]=\"getType()\">\n <ng-container *ngSwitchCase=\"staticElementTypeA\">\n <!-- routerLink modifica href, por eso se duplica para que no convivan en un mismo html -->\n <a *ngIf=\"routerLink\" data-module=\"c-pill\" (click)=\"onClick($event)\"\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [routerLink]=\"routerLink\" [routerLinkActive]=\"routerLinkActiveClasses ? routerLinkActiveClasses : []\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </a>\n\n <a *ngIf=\"!routerLink\" data-module=\"c-pill\" (click)=\"onClick($event)\"\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [href]=\"href | externalHref\"\n [class]=\"getClassNames()\"\n [attr.target]=\"target ? target : null\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </a>\n </ng-container>\n\n <button *ngSwitchCase=\"staticElementTypeButton\" data-module=\"c-pill\" (click)=\"onClick($event)\"\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </button>\n\n <span *ngSwitchCase=\"staticElementTypeSpan\" data-module=\"c-pill\" (click)=\"onClick($event)\"\n [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n </span>\n</ng-container>\n","import { Component, Input, ViewChild } from '@angular/core';\nimport {AccessibilityComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-toggle-off-state',\n templateUrl: './toggle-off-state.component.html'\n})\nexport class ToggleOffStateComponent extends AccessibilityComponent {\n \n @ViewChild('contentTemplateOffState', { static: true }) content;\n\n @Input() classes: string;\n\n}","<ng-template #contentTemplateOffState>\n <ng-content></ng-content>\n</ng-template>","import { Component, Input, ViewChild } from '@angular/core';\nimport {AccessibilityComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-toggle-on-state',\n templateUrl: './toggle-on-state.component.html'\n})\nexport class ToggleOnStateComponent extends AccessibilityComponent {\n\n @ViewChild('contentTemplateOnState', { static: true }) content;\n\n @Input() classes: string;\n\n}\n","<ng-template #contentTemplateOnState>\n <ng-content></ng-content>\n</ng-template>","import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output } from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\nimport { ToggleOffStateComponent } from './toggle-off-state/toggle-off-state.component';\nimport { ToggleOnStateComponent } from './toggle-on-state/toggle-on-state.component';\n\n@Component({\n selector: 'desy-toggle',\n templateUrl: './toggle.component.html'\n})\nexport class ToggleComponent extends AccessibilityComponent {\n \n @Input() id: string;\n @Input() isSwitch: boolean;\n @Input() pressed: boolean;\n @Input() classes: string;\n @Input() isExpandible: boolean;\n\n @Input() @HostBinding('class.relative') cfg = true;\n \n @Output() clickEvent = new EventEmitter();\n @Output() pressedChange: EventEmitter<any> = new EventEmitter<any>();\n \n @DesyContentChild()\n @ContentChildren(ToggleOnStateComponent) contentTemplateOnState: ToggleOnStateComponent;\n \n @DesyContentChild()\n @ContentChildren(ToggleOffStateComponent) contentTemplateOffState: ToggleOffStateComponent;\n\n onClick(event: any): void {\n this.pressed = !this.pressed;\n this.pressedChange.emit(this.pressed);\n this.clickEvent.emit(event);\n }\n\n}\n","<!-- toggle -->\n <button *ngIf=\"isSwitch\"\n (click)=\"onClick($event)\"\n [type]=\"'button'\"\n [class]=\"pressed ? (classes + ' ' + contentTemplateOnState?.classes) : (classes + ' ' + contentTemplateOffState?.classes)\"\n [attr.aria-checked]=\"pressed ? 'true' : 'false'\"\n [attr.aria-pressed]=\"!isExpandible ? (pressed ? 'true' : 'false') : null\"\n [attr.id]=\"id ? id : null\" \n [attr.role]=\"'switch'\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\" \n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" \n [attr.aria-live]=\"ariaLive ? ariaLive : null\" \n [attr.aria-expanded]=\"isExpandible ? (pressed ? 'true' : 'false') : null\" \n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" \n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" \n [attr.tabindex]=\"tabindex ? tabindex : null\">\n \n <span [class]=\"pressed ? 'hidden' : ''\"><ng-container *ngTemplateOutlet=\"contentTemplateOffState?.content\"></ng-container></span>\n <span [class]=\"pressed ? '' : 'hidden'\"><ng-container *ngTemplateOutlet=\"contentTemplateOnState?.content\"></ng-container></span>\n </button>\n\n <button *ngIf=\"!isSwitch\"\n (click)=\"onClick($event)\"\n [type]=\"'button'\"\n [class]=\"pressed ? (classes + ' ' + contentTemplateOnState?.classes) : (classes + ' ' + contentTemplateOffState?.classes)\"\n [attr.aria-pressed]=\"pressed ? 'true' : 'false'\"\n [attr.id]=\"id ? id : null\" \n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\" \n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\" \n [attr.aria-live]=\"ariaLive ? ariaLive : null\" \n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\" \n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\" \n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\" \n [attr.tabindex]=\"tabindex ? tabindex : null\">\n \n <span [class]=\"pressed ? 'hidden' : ''\"><ng-container *ngTemplateOutlet=\"contentTemplateOffState?.content\"></ng-container></span>\n <span [class]=\"pressed ? '' : 'hidden'\"><ng-container *ngTemplateOutlet=\"contentTemplateOnState?.content\"></ng-container></span>\n </button>\n<!-- /toggle -->","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../shared/components';\nimport {ContentData} from '../../interfaces';\n\n@Component({\n selector: 'desy-content',\n templateUrl: './content.component.html'\n})\nexport class ContentComponent extends ContentBaseComponent implements ContentData {\n @Input() classes: string;\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../shared/components';\nimport {DescriptionData} from '../../interfaces';\n\n@Component({\n selector: 'desy-description',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class DescriptionComponent extends ContentBaseComponent implements DescriptionData {\n @Input() classes: string;\n @Input() visuallyHiddenTitle?: string;\n}\n","import {Component, Input} from '@angular/core';\nimport {IconData} from '../../interfaces';\nimport {ContentBaseComponent} from '../../../shared/components';\n\n@Component({\n selector: 'desy-icon',\n templateUrl: './icon.component.html'\n})\nexport class IconComponent extends ContentBaseComponent implements IconData {\n\n @Input() type: string;\n @Input() containerClasses?: string;\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../shared/components';\nimport {TitleData} from '../../interfaces';\n\n@Component({\n selector: 'desy-title',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class TitleComponent extends ContentBaseComponent implements TitleData {\n @Input() classes: string;\n}\n","import { Component, Input } from '@angular/core';\nimport { ContentBaseComponent } from '../../../shared/components';\nimport { DividerData } from '../../interfaces';\n\n@Component({\n selector: 'desy-divider',\n templateUrl: './divider.component.html'\n})\nexport class DividerComponent extends ContentBaseComponent implements DividerData {\n @Input() text?: string;\n @Input() html?: string;\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>","import {ChangeDetectorRef, Component, Input} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\n\n@Component({\n selector: 'desy-hint',\n templateUrl: './hint.component.html',\n})\nexport class HintComponent extends AccessibilityComponent {\n\n @Input() id: string;\n @Input() classes: string;\n @Input() html: string;\n @Input() text: string;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","<p class=\"block text-neutral-dark\" [ngClass]=\"classes\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\n</p>\n","import {ChangeDetectorRef, Component, Input, OnInit} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\n\n\n@Component({\n selector: 'desy-label',\n templateUrl: './label.component.html'\n})\nexport class LabelComponent extends AccessibilityComponent implements OnInit{\n\n @Input() id: string;\n @Input() classes: string;\n @Input() html: string;\n @Input() text: string;\n @Input() isPageHeading: boolean;\n @Input() headingLevel: number;\n @Input() for: string;\n\n isHtml: boolean;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.isHtml = Boolean(this.html);\n }\n\n public detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","<ng-template #labelTemplate>\n <label [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"\n [class]=\"'block' + (classes ? ' ' + classes : '')\"\n [attr.id]=\"id ? id : null\"\n [attr.for]=\"for ? for : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content></label>\n</ng-template>\n<!-- label -->\n<ng-container *ngIf=\"isPageHeading; else elseBlock\" class=\"block\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" class=\"block\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" class=\"block\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" class=\"block\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" class=\"block\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" class=\"block\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </h5>\n <h1 *ngSwitchDefault class=\"block\">\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n </h1>\n </ng-container>\n</ng-container>\n<ng-template #elseBlock>\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\n</ng-template>\n<!-- /label -->\n\n\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\n\n@Component({\n selector: 'desy-error-message',\n templateUrl: './error-message.component.html'\n})\nexport class ErrorMessageComponent extends AccessibilityComponent {\n\n @Input() id: string;\n @Input() classes: string;\n @Input() html: string;\n @Input() text: string;\n @Input() visuallyHiddenText: string;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","<p class=\"block font-semibold text-alert-base\" [ngClass]=\"classes\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <span class=\"sr-only\">{{visuallyHiddenText ? visuallyHiddenText : 'Error'}}:</span>\n <ng-content></ng-content>\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\n</p>\n","import { Component, Input, OnInit, SimpleChanges } from '@angular/core';\nimport { AccessibilityAndContentRequiredComponent } from '../../../../shared/components';\n\n@Component({\n selector: 'desy-legend',\n templateUrl: './legend.component.html'\n})\nexport class LegendComponent extends AccessibilityAndContentRequiredComponent implements OnInit {\n\n @Input() classes: string;\n @Input() isPageHeading: boolean;\n @Input() headingLevel: number;\n\n isHtml: boolean;\n\n ngOnInit(): void {\n this.isHtml = Boolean(this.html);\n }\n \n}\n","<legend *ngIf=\"isPageHeading\" [ngClass]=\"classes ? classes : 'font-bold'\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></h5>\n <h1 *ngSwitchDefault [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></h1>\n </ng-container>\n</legend>\n\n<legend *ngIf=\"!isPageHeading\" [ngClass]=\"classes ? classes : 'font-bold'\" [desyInnerContent]=\"html ? html : text\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container></legend>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {ChangeDetectorRef, Component, ContentChildren, Input, TemplateRef} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { LegendComponent } from './legend/legend.component';\nimport { LegendData } from '../../interfaces';\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-fieldset',\n templateUrl: './fieldset.component.html'\n})\nexport class FieldsetComponent extends AccessibilityComponent {\n\n @Input() describedBy: string;\n @Input() errorId: string;\n\n /**\n * legenda, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir legendComponent\n * 2) incluir template\n * 3) incluir objeto legend (interfaz expuesta)\n * 4) incluir legendText - incluir un label con solo un texto\n */\n @Input() legendRef: TemplateRef<LegendComponent>;\n @Input() legendData: LegendData;\n @Input() legendText: string;\n\n @Input() classes: string;\n @Input() caller: TemplateRef<any>;\n\n @Input() id: string;\n @Input() headingLevel: number;\n\n\n @DesyContentChild()\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public detectChanges(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n}\n","<fieldset [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"describedBy ? describedBy : ariaDescribedBy\"\n [attr.aria-errormessage]=\"errorId ? errorId : ariaErrorMessage\"\n\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"legendComponent\">\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!legendComponent\">\n <ng-container *ngTemplateOutlet=\"legendRef\"></ng-container>\n <desy-legend *ngIf=\"!legendRef && legendData\"\n [text]=\"legendData.text\"\n [html]=\"legendData.html\"\n [classes]=\"legendData.classes\"\n [isPageHeading]=\"legendData.isPageHeading\"\n [headingLevel]=\"headingLevel\"></desy-legend>\n <desy-legend *ngIf=\"!legendRef && !legendData && legendText\" [text]=\"legendText\" [headingLevel]=\"headingLevel\"></desy-legend>\n </ng-container>\n\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\n</fieldset>\n","import {\n Component,\n ContentChildren,\n HostListener,\n Input,\n TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { LabelComponent } from '../label/label.component';\nimport { HintComponent } from '../hint/hint.component';\nimport { ErrorMessageComponent } from '../error-message/error-message.component';\nimport { LabelData, HintData, ErrorMessageData } from '../../interfaces';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n\n@Component({\n selector: 'desy-form-field',\n template: ''\n})\nexport class FormFieldComponent<T> extends AccessibilityComponent implements ControlValueAccessor {\n\n @Input() id: string;\n @Input() disabled: boolean;\n value: T;\n\n /*\n * label, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir componente\n * 2) incluir template\n * 3) incluir objeto label (interfaz expuesta)\n * 4) incluir legendText - incluir un label con solo un texto\n */\n @DesyContentChild({ onSetCallbackName: 'overrideLabelParams', onDeleteCallbackName: 'onDeleteLabel'})\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\n @Input() labelRef: TemplateRef<LabelComponent>;\n @Input() labelData: LabelData;\n @Input() labelText: string;\n\n /*\n * hint, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir componente\n * 2) incluir template\n * 3) incluir objeto label (interfaz expuesta)\n * 4) incluir hintText - incluir un hint con solo un texto\n */\n @DesyContentChild({ onSetCallbackName: 'overrideHintParams', onDeleteCallbackName: 'onDeleteHint'})\n @ContentChildren(HintComponent) hintComponent: HintComponent;\n @Input() hintRef: TemplateRef<HintComponent>;\n @Input() hintData: HintData;\n @Input() hintText: string;\n\n /*\n * errorMessage, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir componente\n * 2) incluir template\n * 3) incluir objeto label (interfaz expuesta)\n * 4) incluir errorText - incluir un errorText con solo un texto\n */\n @DesyContentChild({ onSetCallbackName: 'overrideErrorMessageParams', onDeleteCallbackName: 'onDeleteErrorMessage'})\n @ContentChildren(ErrorMessageComponent) errorMessageComponent: ErrorMessageComponent;\n @Input() errorMessageRef: TemplateRef<ErrorMessageComponent>;\n @Input() errorMessageData: ErrorMessageData;\n @Input() errorMessageText: string;\n\n\n @HostListener('focusout')\n onblur(): void {\n // DESY-77 SI TOCAN EL COMPONENTE Y SALEN SIN MODIFICAR EL VALOR, QUE SE ACTUALICE TOUCHED\n this.onTouch();\n }\n\n\n /*\n * Implementación de los métodos del ControlValueAccessor\n */\n\n onChange = (_: any) => {};\n onTouch = () => { };\n\n onInput(value: T): void{\n this.value = value;\n this.onTouch();\n this.onChange(this.value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: T): void {\n if (value){\n this.value = value;\n }\n this.onChange(value);\n }\n\n\n /*\n * Funciones para recuperar valores comunes\n */\n\n getHintId(): string {\n return this.hasHint() ? this.id + '-hint' : null;\n }\n\n getErrorId(): string {\n return this.hasErrorsMessage() ? this.id + '-error' : null;\n }\n\n hasLabel(): boolean {\n return !!(this.hasLabelComponent() || this.labelText || this.labelRef ||\n (this.labelData && (this.labelData.text || this.labelData.html)));\n }\n\n hasHint(): boolean {\n return !!(this.hasHintComponent() || this.hintText || this.hintRef || (this.hintData && (this.hintData.text || this.hintData.html)));\n }\n\n hasErrorsMessage(): boolean {\n return !!(this.hasErrorMessageComponent() || this.errorMessageText || this.errorMessageRef ||\n (this.errorMessageData && (this.errorMessageData.text || this.errorMessageData.html)));\n }\n\n hasLabelComponent(): boolean {\n return !!this.labelComponent;\n }\n\n hasHintComponent(): boolean {\n return !!this.hintComponent;\n }\n\n hasErrorMessageComponent(): boolean {\n return !!this.errorMessageComponent;\n }\n}\n","import {\n Component,\n ElementRef,\n forwardRef,\n Input,\n OnChanges,\n ViewChild,\n HostBinding\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldComponent } from '../form-field/form-field.component';\n\n@Component({\n selector: 'desy-textarea',\n templateUrl: './textarea.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaComponent),\n multi: true\n }\n ]\n})\nexport class TextareaComponent extends FormFieldComponent<string> implements OnChanges {\n\n protected static readonly DEFAULT_ROWS = 5;\n\n @ViewChild('textarea') textareaElement: ElementRef;\n\n @Input() name: string;\n @Input() rows: number;\n @Input() placeholder: string;\n @Input() describedBy: string;\n\n // form group class - asignar clases a la etiqueta desy-input\n @HostBinding('class.c-form-group') cfg = true;\n @HostBinding('class.c-form-group--error') cfgr: boolean;\n @Input() @HostBinding('class') formGroupClasses: any;\n @Input() classes: string;\n @Input() autocomplete: string;\n @Input() maxlength: number;\n\n constructor() {\n super();\n }\n\n inputTransform = (value: string): string => value;\n\n ngOnChanges(): void {\n this.writeValue(this.value);\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\n }\n\n\n getRows(): number {\n return this.rows ? this.rows : TextareaComponent.DEFAULT_ROWS;\n }\n\n onInput(event: any): void{\n const value = (event.target as HTMLTextAreaElement).value;\n super.onInput(this.inputTransform(this.ensureText(value)));\n }\n\n writeValue(value: any): void {\n this.value = this.inputTransform(this.ensureText(value));\n this.onChange(this.value);\n }\n\n registerInputTransform(fn: (value: string) => string): void {\n this.inputTransform = fn;\n }\n\n private ensureText(value: any): string {\n return value ? value || '' : '';\n }\n}\n","<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" [for]=\"id\"></desy-label>\n\n<ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n<desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n<desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n<ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n<desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n<desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n\n\n<textarea #textarea\n [class]=\"['block mt-sm px-base py-sm border-black rounded font-semibold leading-normal 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\"\n [value]=\"value ? value : ''\" (input)=\"onInput($event)\"\n [ngClass]=\"{'border-alert-base ring-2 ring-alert-base' : hasErrorsMessage()}\"\n [rows]=\"getRows()\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : null\"\n [attr.placeholder]=\"placeholder ? placeholder : null\"\n [attr.autocomplete]=\"autocomplete ? autocomplete : null\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.maxlength]=\"maxlength\"\n\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"></textarea>\n\n","import {\n AfterViewInit,\n Component,\n forwardRef,\n Input,\n OnChanges,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldComponent } from '../form-field/form-field.component';\nimport { TextareaComponent } from '../textarea/textarea.component';\n\n@Component({\n selector: 'desy-character-count',\n templateUrl: './character-count.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CharacterCountComponent),\n multi: true\n }\n ]\n})\nexport class CharacterCountComponent extends FormFieldComponent<string> implements AfterViewInit, OnChanges {\n\n @ViewChild(TextareaComponent) textarea;\n\n @Input() name: string;\n @Input() type: string;\n @Input() rows: number;\n @Input() placeholder: string;\n @Input() maxlength: number;\n @Input() countbbdd: boolean;\n @Input() maxwords: number;\n @Input() threshold: number;\n @Input() formGroupClasses: string;\n @Input() countMessageClasses: string;\n @Input() classes: string;\n\n textareaElement: HTMLTextAreaElement;\n displayCountMessage: boolean;\n remaining: number;\n\n ngAfterViewInit(): void {\n this.textareaElement = (this.textarea.textareaElement.nativeElement as HTMLTextAreaElement);\n this.textarea.registerInputTransform(this.inputTransform.bind(this));\n this.registerOnChange(this.onChange);\n this.registerOnTouched(this.onTouch);\n this.textarea.setDisabledState(this.disabled);\n setTimeout(() => this.textarea.writeValue(this.value), 50);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.textarea) {\n setTimeout(() => this.textarea.ngOnChanges(changes), 50);\n }\n }\n\n inputTransform(value: string): string {\n if (value) {\n if (this.maxlength) {\n let length = this.calculateLenght(value);\n this.displayCountMessage = !this.threshold || length > (this.maxlength * this.threshold / 100);\n while (length > this.maxlength) {\n value = value.substring(0, value.length - 1);\n length = this.calculateLenght(value);\n }\n this.remaining = this.maxlength - length;\n } else {\n const words = value.match(/[\\wáéíóúÁÉÍÓÚüÜñÑ]+/g) || [];\n this.displayCountMessage = !this.threshold || (words.length > this.maxwords * this.threshold / 100);\n while ( words.length > this.maxwords) {\n value = value.substring(0, value.lastIndexOf(words.pop()));\n }\n this.remaining = this.maxwords - words.length;\n }\n } else {\n value = '';\n this.displayCountMessage = !this.threshold;\n this.remaining = this.maxlength ? this.maxlength : this.maxwords;\n }\n\n this.textareaElement.value = value;\n return value;\n }\n\n calculateLenght(value: string): number {\n let length = value.length;\n if (this.countbbdd && value) {\n const specialChars = value.match(/[^A-z0-9_\\s.,:;]/g);\n length += specialChars ? specialChars.length : 0;\n }\n return length;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n if (this.textarea) {\n this.textarea.registerOnChange(fn);\n this.onChange = (_: any) => {};\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n if (this.textarea) {\n this.textarea.registerOnTouched(fn);\n this.onTouch = () => { };\n }\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n if (this.textarea) {\n this.textarea.setDisabledState(isDisabled);\n }\n }\n\n writeValue(value: string): void {\n this.value = value;\n if (this.textarea) {\n this.textarea.writeValue(value);\n }\n }\n\n}\n","<desy-textarea\n [id]=\"id\"\n [name]=\"name\"\n [describedBy]=\"id + '-info'\"\n [rows]=\"rows\"\n [placeholder]=\"placeholder\"\n [formGroupClasses]=\"[formGroupClasses ? formGroupClasses : 'mb-0'] | makeHtmlList\"\n [classes]=\"['js-character-count', hasErrorsMessage() ? 'border-alert-base ring-2 ring-alert-base' : null, classes] | makeHtmlList\"\n [labelRef]=\"labelRef\" [labelData]=\"labelData\" [labelText]=\"labelText\"\n [hintRef]=\"hintRef\" [hintData]=\"hintData\" [hintText]=\"hintText\"\n [errorMessageRef]=\"errorMessageRef\" [errorMessageData]=\"errorMessageData\" [errorMessageText]=\"errorMessageText\"\n [role]=\"role\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaHidden]=\"ariaHidden\"\n [ariaDisabled]=\"ariaDisabled\"\n [ariaControls]=\"ariaControls\"\n [ariaCurrent]=\"ariaCurrent\"\n [ariaLive]=\"ariaLive\"\n [ariaExpanded]=\"ariaExpanded\"\n [ariaErrorMessage]=\"ariaErrorMessage\"\n [ariaHasPopup]=\"ariaHasPopup\"\n [tabindex]=\"tabindex\"></desy-textarea>\n\n<desy-hint *ngIf=\"!!displayCountMessage\"\n [id]=\"id + '-info'\" [classes]=\"['mt-xs text-sm', countMessageClasses] | makeHtmlList\" ariaLive=\"polite\"\n [text]=\"'Puedes escribir hasta ' + remaining + (maxlength ? ' caracteres' : ' palabras')\"></desy-hint>\n","import { Component, forwardRef, HostBinding, Input, OnChanges, SimpleChanges, DoCheck } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldComponent } from '../form-field/form-field.component';\n\n@Component({\n selector: 'desy-input',\n templateUrl: './input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true\n }\n ]\n})\nexport class InputComponent extends FormFieldComponent<any> implements OnChanges, DoCheck {\n\n @Input() name: string;\n @Input() type: string;\n @Input() describedBy: string;\n @Input() pattern: string;\n @Input() inputmode: string;\n @Input() placeholder: string;\n\n // form group class - asignar clases a la etiqueta desy-input\n @HostBinding('class.c-form-group') cfg = true;\n @HostBinding('class.c-form-group--error') cfgr: boolean;\n @Input() @HostBinding('class') formGroupClasses: any;\n\n @Input() classes: string;\n @Input() autocomplete: string;\n @Input() maxlength: number;\n @Input() errorId: string;\n @Input() attributes: any;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\n }\n\n ngDoCheck(): void {\n if(this.attributes){\n this.setAttributes();\n }\n }\n\n setAttributes(){\n const input = document.getElementById(this.id ? this.id : 'input');\n const attr = this.attributes;\n Object.keys(attr).forEach(key => {\n input?.setAttribute(key, attr[key]);\n });\n }\n\n getErrorId(): string {\n return this.errorId ? this.errorId : super.getErrorId();\n }\n\n writeValue(value: any): void {\n if (value) {\n this.value = value || '';\n } else {\n this.value = '';\n }\n this.onChange(this.value);\n }\n\n onInput(event: Event): void {\n this.value = (event.target as HTMLInputElement).value;\n this.onChange(this.value);\n }\n}\n","\n\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n <desy-label *ngIf=\"!labelRef && labelData\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n <desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" [for]=\"id\"></desy-label>\n\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n <ng-container *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageText && hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n\n <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',\n classes,\n getErrorId() ? 'border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value ? value : ''\" (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : 'input'\"\n [attr.name]=\"name ? name : null\"\n [type]=\"type ? type : 'text'\"\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"getErrorId() ? getErrorId() : null\"\n [attr.aria-invalid]=\"getErrorId() ? true : null\"\n [attr.autocomplete]=\"autocomplete ? autocomplete : null\"\n [attr.pattern]=\"pattern ? pattern : null\"\n [attr.inputmode]=\"inputmode ? inputmode : null\"\n [attr.placeholder]=\"placeholder ? placeholder : null\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.maxlength]=\"maxlength ? maxlength : null\"\n\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-select-item',\n templateUrl: './select-item.component.html'\n})\nexport class SelectItemComponent extends ContentBaseComponent {\n\n @Input() disabled: boolean;\n}\n","<p>select-item works!</p>\n","import {Component, forwardRef, Input} from '@angular/core';\nimport {SelectItemData} from '../../../interfaces';\nimport {SelectItemComponent} from '../select-item/select-item.component';\n\n@Component({\n selector: 'desy-option',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>',\n providers: [{provide: SelectItemComponent, useExisting: forwardRef(() => OptionComponent)}],\n})\nexport class OptionComponent extends SelectItemComponent implements SelectItemData {\n\n @Input() value: string;\n @Input() selected: boolean;\n @Input() hidden: boolean;\n\n}\n","import {Component, ContentChildren, forwardRef, Input, QueryList} from '@angular/core';\nimport {SelectItemComponent} from '../select-item/select-item.component';\nimport {OptionComponent} from '../option/option.component';\n\n@Component({\n selector: 'desy-option-group',\n templateUrl: './option-group.component.html',\n providers: [{provide: SelectItemComponent, useExisting: forwardRef(() => OptionGroupComponent)}],\n})\nexport class OptionGroupComponent extends SelectItemComponent {\n\n @Input() label: string;\n\n @ContentChildren(OptionComponent) items: QueryList<OptionComponent>;\n}\n","<p>option-group works!</p>\n","import {Component, forwardRef, Input, OnInit, OnChanges, SimpleChanges, ContentChildren, QueryList, AfterContentInit, HostBinding} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { SelectItemData } from '../../interfaces';\nimport { FormFieldComponent } from '../form-field/form-field.component';\nimport {OptionGroupComponent} from './option-group/option-group.component';\nimport {SelectItemComponent} from './select-item/select-item.component';\n\n@Component({\n selector: 'desy-select',\n templateUrl: './select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true\n }\n ]\n})\nexport class SelectComponent extends FormFieldComponent<any> implements AfterContentInit, OnChanges {\n\n @Input() name: string;\n @Input() items: SelectItemData[];\n @Input() describedBy?: string;\n\n\n // form group class - asignar clases a la etiqueta desy-select\n @HostBinding('class.c-form-group') cfg = true;\n @HostBinding('class.c-form-group--error') cfgr: boolean;\n @Input() @HostBinding('class') formGroupClasses: any;\n\n @Input() classes: string;\n\n @ContentChildren(SelectItemComponent) itemComponents: QueryList<SelectItemComponent>;\n contentInit = false;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\n }\n\n ngAfterContentInit(): void {\n this.contentInit = true;\n if (!this.value) {\n const items = this.getItems();\n const itemSelected = items?.find(item => item.selected);\n if (itemSelected) {\n setTimeout(() => this.writeValue(itemSelected.value));\n }\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.onChange(value);\n }\n\n getItems(): SelectItemData[] {\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\n return items;\n }\n\n isItemSelected(item: SelectItemData): boolean {\n return this.value ? this.value === item.value : item.selected;\n }\n\n isOptionGroup(item: SelectItemData): boolean {\n return item instanceof OptionGroupComponent;\n }\n\n onInput(event: Event): void {\n this.value = (event.target as HTMLSelectElement).value;\n this.onChange(this.value);\n }\n\n}\n","\n <ng-container *ngIf=\"labelComponent\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n <desy-label *ngIf=\"!labelRef && labelData && !labelComponent\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n <desy-label *ngIf=\"!labelRef && !labelData && labelText && !labelComponent\" [text]=\"labelText\" [for]=\"id\"></desy-label>\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData && !hintComponent\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText && !hintComponent\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n <ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData && !errorMessageComponent\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && !errorMessageComponent && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n <select\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',\n classes,\n hasErrorsMessage() ? 'c-select--error border-alert-base ring-2 ring-alert-base' : null] | makeHtmlList\"\n [value]=\"value\" (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"\n [disabled]=\"disabled\">\n\n <ng-container *ngFor=\"let item of getItems()\">\n <optgroup *ngIf=\"isOptionGroup(item)\" [label]=\"item?.label\" [attr.disabled]=\"item.disabled ? true : null\"\n [attr.role]=\"item?.role\"\n [attr.aria-label]=\"item?.ariaLabel\"\n [attr.aria-describedby]=\"item?.describedBy\"\n [attr.aria-labelledby]=\"item?.ariaLabelledBy\"\n [attr.aria-hidden]=\"item?.ariaHidden\"\n [attr.aria-disabled]=\"item?.ariaDisabled\"\n [attr.aria-controls]=\"item?.ariaControls\"\n [attr.aria-current]=\"item?.ariaCurrent\"\n [attr.aria-live]=\"item?.ariaLive\"\n [attr.aria-expanded]=\"item?.ariaExpanded\"\n [attr.aria-errormessage]=\"item?.ariaErrorMessage\"\n [attr.aria-haspopup]=\"item?.ariaHasPopup\"\n [attr.tabindex]=\"item?.tabindex\">\n <option *ngFor=\"let subItem of item.items\"\n [value]=\"subItem.value\"\n [disabled]=\"subItem.disabled\"\n [selected]=\"isItemSelected(subItem)\"\n [attr.hidden]=\"subItem.hidden\"\n [attr.role]=\"subItem?.role\"\n [attr.aria-label]=\"subItem?.ariaLabel\"\n [attr.aria-describedby]=\"subItem?.describedBy\"\n [attr.aria-labelledby]=\"subItem?.ariaLabelledBy\"\n [attr.aria-hidden]=\"subItem?.ariaHidden\"\n [attr.aria-disabled]=\"subItem?.ariaDisabled\"\n [attr.aria-controls]=\"subItem?.ariaControls\"\n [attr.aria-current]=\"subItem?.ariaCurrent\"\n [attr.aria-live]=\"subItem?.ariaLive\"\n [attr.aria-expanded]=\"subItem?.ariaExpanded\"\n [attr.aria-errormessage]=\"subItem?.ariaErrorMessage\"\n [attr.aria-haspopup]=\"subItem?.ariaHasPopup\"\n [attr.tabindex]=\"subItem?.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, text: subItem.text }\"></ng-container>\n </option>\n </optgroup>\n <option *ngIf=\"!isOptionGroup(item)\" [value]=\"item.value\" [disabled]=\"item.disabled ? true : null\" [selected]=\"isItemSelected(item)\"\n [attr.hidden]=\"item.hidden\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.describedBy ? item.describedBy : ariaDescribedBy\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </option>\n </ng-container>\n </select>\n\n","import { Component, forwardRef, HostBinding, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldComponent } from '../form-field/form-field.component';\n\n@Component({\n selector: 'desy-file-upload',\n templateUrl: './file-upload.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => FileUploadComponent),\n }\n ]\n})\nexport class FileUploadComponent extends FormFieldComponent<File> implements ControlValueAccessor, OnChanges {\n\n @Input() name: string;\n @Input() describedBy: string;\n @Input() classes: string;\n @Input() accept: string;\n\n @HostBinding('class.c-form-group') cfg = true;\n @HostBinding('class.c-form-group--error') cfgr: boolean;\n @Input() @HostBinding('class') formGroupClasses: any;\n\n constructor() {\n super();\n }\n/***\n * nos devuelve un array de file : File[]\n * pero solo nos guardamos el primero\n * solo dejamos seleccionar uno\n */\n onInput(event: any): void{\n const value = (event.target as HTMLInputElement).files;\n if (value && value.length > 0 && value[0]){\n this.value = value[0];\n }else {\n this.value = null;\n }\n this.onTouch();\n this.onChange(this.value);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\n }\n\n}\n","\n <ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n <desy-label *ngIf=\"!labelRef && labelData\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"labelData.classes\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n <desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" [for]=\"id\"></desy-label>\n\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n\n <input [class]=\"['mt-sm p-xs file:mr-base focus:outline-none file:inline-flex file:items-baseline file:px-3 file:py-2 file:bg-white file:border file:border-solid file:border-primary-base file:rounded file:align-baseline file:font-semibold file:text-primary-base file:transition-all file:duration-100 file:ease-out file:whitespace-nowrap file:cursor-pointer file:focus:bg-warning-base file:focus:border-warning-base file:focus:shadow-outline-black file:focus:text-black file:focus:outline-none file:hover:bg-neutral-light file:hover:border-primary-base file:hover:text-primary-base', classes] | makeHtmlList\" type=\"file\"\n [ngClass]=\"{'c-file-upload--error' : hasErrorsMessage()}\"\n (input)=\"onInput($event)\"\n\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"name ? name : null\"\n [attr.aria-describedby]=\"[describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : null\"\n [attr.accept]=\"accept ? accept : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n","import {Component, Input} from '@angular/core';\nimport {ItemInputGroupData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-input-group-item',\n template: ''\n})\nexport class InputGroupItemComponent implements ItemInputGroupData {\n @Input() classes?: string;\n\n}\n","/**\n * Decorador para controlar los cambios de un input\n * @param callbackName nombre de la función a la que se llamará tras aplicar el cambio\n */\nexport function DesyOnInputChange(callbackName: string): PropertyDecorator {\n return (target: any, propertyKey: string) => {\n const privateKeyName = `_${propertyKey}`;\n\n Object.defineProperty(target, propertyKey, {\n set(value): void {\n this[privateKeyName] = value;\n this[callbackName]();\n },\n get(): any {\n return this[privateKeyName];\n }\n });\n };\n}\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\nimport {LabelComponent} from '../../label/label.component';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-input-group-input',\n templateUrl: './input-group-input.component.html',\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupInputComponent)}],\n})\nexport class InputGroupInputComponent extends InputGroupItemComponent {\n\n isSelect = false;\n\n @Input() id?: string;\n @Input() name: string;\n @Input() value?: any;\n @Output() valueChange = new EventEmitter<any>();\n @Input() formGroupClasses?: string;\n\n @Input() type?: string;\n @Input() inputmode?: string;\n @Input() autocomplete?: string;\n @Input() placeholder?: string;\n @Input() pattern?: string;\n @Input() maxlength?: number;\n @Input() disabled?: boolean;\n\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\n\n @DesyContentChild()\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\n\n}\n","<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n QueryList,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\nimport {OptionComponent} from '../../select/option/option.component';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {LabelComponent} from '../../label/label.component';\n\n@Component({\n selector: 'desy-input-group-select',\n templateUrl: './input-group-select.component.html',\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupSelectComponent)}],\n})\nexport class InputGroupSelectComponent extends InputGroupItemComponent {\n\n isSelect = true;\n\n @Input() id?: string;\n @Input() name: string;\n @Input() value?: any;\n @Output() valueChange = new EventEmitter<any>();\n @Input() formGroupClasses?: string;\n @Input() disabled?: boolean;\n\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\n @ContentChildren(OptionComponent) selectItemComponentList: QueryList<OptionComponent>;\n\n @DesyContentChild()\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\n\n}\n","<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n","import {Component, forwardRef, TemplateRef, ViewChild} from '@angular/core';\nimport {InputGroupItemComponent} from '../input-group-item/input-group-item.component';\nimport {ItemDividerInputGroupData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-input-group-divider',\n templateUrl: './input-group-divider.component.html',\n providers: [{provide: InputGroupItemComponent, useExisting: forwardRef(() => InputGroupDividerComponent)}],\n})\nexport class InputGroupDividerComponent extends InputGroupItemComponent implements ItemDividerInputGroupData {\n\n isSelect = false;\n divider = this;\n\n @ViewChild('dividerContent', { static: true }) dividerContent: TemplateRef<any>;\n\n}\n","<ng-template #dividerContent>\n <ng-content></ng-content>\n</ng-template>\n","import { Component } from '@angular/core';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n@Component({\n selector: 'desy-template-driven-wrapper',\n templateUrl: './template-driven-wrapper.component.html',\n providers: [ { provide: ControlContainer, useExisting: NgForm, } ]\n})\nexport class TemplateDrivenWrapperComponent {\n}\n","<ng-content></ng-content>\n","import {\n AfterContentInit, AfterViewChecked,\n Component,\n ContentChildren, EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Optional, Output,\n QueryList,\n TemplateRef, ViewChild,\n OnChanges\n} from '@angular/core';\nimport {FieldsetData, LegendData, ItemInputGroupData, LabelData, SelectItemData} from '../../interfaces';\nimport { ControlContainer, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { LegendComponent } from '../fieldset/legend/legend.component';\nimport { FormFieldComponent } from '../form-field/form-field.component';\nimport {InputGroupItemComponent} from './input-group-item/input-group-item.component';\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\nimport {InputGroupInputComponent} from './input-group-input/input-group-input.component';\nimport {InputGroupSelectComponent} from './input-group-select/input-group-select.component';\nimport {InputGroupDividerComponent} from './input-group-divider/input-group-divider.component';\nimport {StringUtils} from '../../../shared/utils/string-utils';\n\n@Component({\n selector: 'desy-input-group',\n templateUrl: './input-group.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputGroupComponent),\n multi: true\n }\n ]\n})\nexport class InputGroupComponent extends FormFieldComponent<any> implements AfterContentInit, AfterViewChecked, OnChanges {\n\n @Input() ngModelGroup: string;\n\n @DesyOnInputChange('onExternalChange')\n @Input() items: ItemInputGroupData[];\n @Output() itemsChange: EventEmitter<ItemInputGroupData[]> = new EventEmitter<ItemInputGroupData[]>();\n\n @DesyOnInputChange('onExternalChange')\n @Input() namePrefix: string;\n @Input() classes: string;\n\n // form group class - asignar clases a la etiqueta desy-input-group\n @HostBinding('class.c-form-group') cfg = true;\n @HostBinding('class.c-form-group--error') cfgr: boolean;\n @Input() @HostBinding('class') formGroupClasses: any;\n\n @Input() errorMessage: string;\n @Input() id: string;\n\n /**\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir objeto FieldsetData (interfaz expuesta)\n * 2) incluir template legend\n * 3) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\n * 4) incluir legendText - incluir un fieldset con un texto en la legenda\n */\n @Input() fieldsetData: FieldsetData;\n @Input() legendRef: TemplateRef<LegendComponent>;\n @Input() legendData: LegendData;\n @Input() legendText: string;\n\n @ContentChildren(InputGroupItemComponent) itemsComponents: QueryList<InputGroupItemComponent>;\n\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\n\n @DesyContentChild()\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\n\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\n\n private contentInit = false;\n //public ogFormGroup: FormGroup;\n\n constructor(@Optional() public controlContainer: ControlContainer) {\n super();\n }\n\n ngOnChanges(): void {\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\n }\n\n get ogFormGroup(): FormGroup {\n return this.controlContainer.control as FormGroup;\n }\n\n ngAfterContentInit(): void {\n this.contentInit = true;\n }\n\n ngAfterViewChecked(): void {\n const items = this.getItems();\n }\n\n writeValue(value: any): void {\n if (value) {\n this.value = value;\n const items = this.getItems();\n items.forEach(item => {\n const v = this.value[this.getItemName(item)];\n item.value = v ? v : null;\n });\n\n if (this.items) {\n this.itemsChange.emit(this.items);\n }\n }\n this.onChange(value);\n }\n\n onExternalChange(): void {\n if (!this.contentInit) {\n return;\n }\n\n if (!this.value) {\n this.value = {};\n }\n\n const items = this.getItems();\n items.forEach(item => this.value[this.getItemName(item)] = item.value);\n this.onChange(this.value);\n }\n\n onInternalChange(item: ItemInputGroupData, itemValue: any): void {\n const itemName = this.getItemName(item);\n if (!this.value) {\n this.value = {};\n }\n\n if (this.value[itemName] !== itemValue) {\n this.value[itemName] = itemValue;\n this.onChange(this.value);\n\n if (item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent) {\n item.valueChange.emit(itemValue);\n }\n\n if (this.items) {\n item.value = itemValue;\n this.itemsChange.emit(this.items);\n }\n }\n }\n\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\n fieldset.caller = this.innerHtml;\n fieldset.errorId = this.getErrorId();\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\n fieldset.role = 'group';\n fieldset.detectChanges();\n }\n\n /*\n * Métodos para proporcionar datos\n */\n getItems(): ItemInputGroupData[] {\n return this.itemsComponents && this.itemsComponents.length ? this.itemsComponents.toArray() : this.items;\n }\n\n getItemLabelRef(item: ItemInputGroupData): TemplateRef<any> {\n return item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent ? item.labelRef : null;\n }\n\n getItemLabelData(item: ItemInputGroupData): LabelData {\n return item.labelData ? item.labelData : { text: item.labelText };\n }\n\n hasFieldset(): boolean {\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData\n || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\n }\n\n hasFieldsetComponent(): boolean {\n return !!this.fieldsetComponent;\n }\n\n hasLegendComponent(): boolean {\n return !!this.legendComponent;\n }\n\n getItemName(item: ItemInputGroupData): string {\n return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;\n }\n\n getItemSelectOptions(item: ItemInputGroupData): SelectItemData[] {\n return item instanceof InputGroupSelectComponent ?\n item.selectItemComponentList.toArray() : item.selectItems;\n }\n\n getItemDividerTemplate(item: ItemInputGroupData): TemplateRef<any> {\n return item.divider instanceof InputGroupDividerComponent ? item.divider.dividerContent : null;\n }\n\n getItemDividerHtml(item: ItemInputGroupData): string {\n return item.divider.html ? item.divider.html : `<p>${ StringUtils.escapeHtml(item.divider.text) }</p>`;\n }\n\n isSelectItem(item: ItemInputGroupData): boolean {\n let hasSelectItems;\n if (item instanceof InputGroupSelectComponent) {\n hasSelectItems = item.selectItemComponentList && item.selectItemComponentList.length > 0;\n } else {\n hasSelectItems = item.selectItems;\n }\n return item.isSelect && hasSelectItems;\n }\n\n hasItemLabel(item: ItemInputGroupData): boolean {\n return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);\n }\n\n}\n","\n<!-- Divider no forma parte del formulario, por lo que es reutilizable en cualquier caso -->\n<ng-template #itemDivider let-item=\"item\">\n <div role=\"separator\" [ngClass]=\"item.divider.classes\">\n <ng-container *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #innerHtml>\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n\n <!-- Reactive forms -->\n <div *ngIf=\"controlContainer && !ngModelGroup\"\n [formGroup]=\"ogFormGroup\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-input>\n </ng-template>\n </ng-container>\n </div>\n\n <!-- Template-driven forms -->\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\n <div [ngModelGroup]=\"ngModelGroup\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n \n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-input>\n </ng-template>\n </ng-container>\n </div>\n </desy-template-driven-wrapper>\n\n <!-- With ngModel-->\n <div *ngIf=\"!controlContainer\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-input>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n\n\n <ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n </ng-container>\n\n","import {\n Injectable\n } from '@angular/core';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { RadioServiceItemComponent } from '../models/radio-service-item.component';\n \n @Injectable({\n providedIn: 'root'\n })\n export class RadioService {\n\n public radioServiceItems: RadioServiceItemComponent[] = [];\n\n private itemsChangeSource = new Subject<void>();\n public itemsChange$ = this.itemsChangeSource.asObservable();\n\n public markForUpdateCheckboxIds(name: string): void {\n let index = this.getRadioServiceItem(name);\n if(index !== -1){\n this.radioServiceItems[index].updateChekboxIds = true;\n }\n }\n\n public updateValueFromRadioItems(name: string): void {\n\n let index = this.getRadioServiceItem(name);\n if(index !== -1){\n setTimeout( () => {\n const items = this.radioServiceItems[index].radioItems;\n if (items && items.length > 0 && items.findIndex(item => !item.isInit() && !item.divider) < 0) {\n const checkedItem = items.find(item => item.isInputChecked() && !item.divider);\n this.radioServiceItems[index].nextValue = checkedItem ? checkedItem.value : null;\n }\n });\n this.itemsChangeSource.next(); \n }\n /*\n * Se realiza dentro de un timeout porque, aunque los componentes items se hayan inicializado, en este componente puede ser que todavía\n * no se detecten, y por tanto el getCheckboxItems no devuelva la lista correcta.\n */\n \n }\n\n addRadioServiceItem(radioItem: RadioServiceItemComponent){\n const item = this.radioServiceItems.find(item => item.nameRadio === radioItem.nameRadio);\n if(!item){\n this.radioServiceItems.push(radioItem);\n }\n }\n\n getRadioServiceItem(name: string): number{\n const item = this.radioServiceItems.find(item => item.nameRadio === name);\n let index = this.radioServiceItems.indexOf(item);\n return index;\n }\n }","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Host,\n Input,\n OnChanges, OnDestroy, OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {ItemRadioData} from '../../../interfaces';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {LabelComponent} from '../../label/label.component';\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\nimport {animate, animateChild, query, state, style, transition, trigger} from '@angular/animations';\nimport {HintComponent} from '../../hint/hint.component';\nimport { RadioService } from '../../../services/radio.service';\n// TODO los hijos no pueden contener al padre, los metodos hay que pasarlos al padre (radios)\n\n@Component({\n selector: 'desy-radio-item',\n templateUrl: './radio-item.component.html',\n animations: [\n trigger('displayConditional', [\n state('void', style({\n opacity: '0.0',\n transform: 'scale(0.95)'\n })),\n state('*', style({\n opacity: '1.0',\n transform: 'scale(1.0)'\n })),\n transition(':enter', [\n animate('100ms ease-out')\n ]),\n transition('* => *', [\n query('@*', animateChild(), {optional: true})\n ])\n ])\n ]\n})\nexport class RadioItemComponent extends ContentBaseComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit, ItemRadioData {\n\n @ViewChild('input') inputElement: ElementRef;\n\n @Input() id: string;\n @Input() name: string;\n @Input() value: any;\n @Input() conditional: boolean;\n @Input() disabled: boolean;\n @Input() divider: string;\n @Input() classes: string;\n\n @ContentChildren(LabelComponent) labelComponentList: QueryList<LabelComponent>;\n @ContentChildren(HintComponent) hintComponentList: QueryList<HintComponent>;\n @ContentChildren(ContentComponent) conditionalContentList: QueryList<ContentComponent>;\n\n @Input() checked: boolean;\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\n\n index = 0;\n lastChecked;\n lastValue;\n radioId;\n\n constructor(@Host() private changeDetectorRef: ChangeDetectorRef, private radioService: RadioService) {\n super();\n }\n\n ngOnInit(): void {\n this.radioService.markForUpdateCheckboxIds(this.name);\n }\n\n ngOnDestroy(): void {\n this.radioService.markForUpdateCheckboxIds(this.name);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.checked !== this.lastChecked && this.isInit()) {\n this.setChecked(this.checked);\n this.radioService.updateValueFromRadioItems(this.name);\n } else if (this.lastValue !== undefined && this.lastValue !== this.value) {\n this.radioService.updateValueFromRadioItems(this.name);\n }\n this.lastValue = this.value;\n\n if (this.id !== this.radioId) {\n this.radioService.markForUpdateCheckboxIds(this.name);\n }\n }\n\n ngAfterViewInit(): void {\n this.setChecked(this.checked);\n this.radioService.updateValueFromRadioItems(this.name);\n }\n\n setChecked(checked: boolean): void {\n this.checked = checked;\n this.lastChecked = checked;\n this.checkedChange.emit(checked);\n if(this.checked){\n let index = this.radioService.getRadioServiceItem(this.name);\n this.radioService.radioServiceItems[index].nextValue = this.value;\n }\n this.changeDetectorRef.detectChanges();\n }\n\n /*\n * Funciones para aportar información desde el componente checkboxes que lo contiene\n */\n\n getItemHintId(): string {\n return this.hintComponentList && this.hintComponentList.length > 0 && this.radioId ? this.radioId + '-item-hint' : null;\n }\n\n hasChanged(): void {\n this.setChecked(this.isInputChecked());\n this.radioService.updateValueFromRadioItems(this.name);\n }\n\n isInit(): boolean {\n return !!this.inputElement;\n }\n\n isInputChecked(): boolean {\n return this.inputElement ? this.inputElement.nativeElement.checked : null;\n }\n\n updateRadioId(index?: number): void {\n let i = this.radioService.getRadioServiceItem(this.name);\n if (this.id) {\n this.radioId = this.id;\n } else {\n const idPrefix = this.radioService.radioServiceItems[i].idPrefix ? this.radioService.radioServiceItems[i].idPrefix : this.radioService.radioServiceItems[i].nameRadio;\n if (index === 0) {\n this.radioId = idPrefix;\n } else {\n this.radioId = `${idPrefix}-${index}`;\n }\n }\n\n if (this.labelComponentList && this.labelComponentList.length > 0) {\n this.labelComponentList.first.for = this.radioId;\n }\n\n if (this.hintComponentList && this.hintComponentList.length > 0) {\n this.hintComponentList.first.id = this.getItemHintId();\n }\n\n this.changeDetectorRef.detectChanges();\n }\n\n /*\n * Funciones para aportar información desde el componente checkboxes que lo contiene\n */\n\n hasDividers(): boolean {\n let i = this.radioService.getRadioServiceItem(this.name);\n return i !== -1 ? this.radioService.radioServiceItems[i].dividers : null;\n }\n\n hasError(): boolean {\n let i = this.radioService.getRadioServiceItem(this.name);\n return i !== -1 ? this.radioService.radioServiceItems[i].error : null;\n }\n\n getNameRadio(): string {\n let i = this.radioService.getRadioServiceItem(this.name);\n return i !== -1 ? this.radioService.radioServiceItems[i].nameRadio : null;\n }\n\n getDescribedBy(): string {\n let i = this.radioService.getRadioServiceItem(this.name);\n return i !== -1 ? (!this.radioService.radioServiceItems[i].fieldSet ? this.radioService.radioServiceItems[i].describedBy : null) : null;\n }\n\n}\n","<div [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers()}\" [class]=\"classes\">\n <div *ngIf=\"divider\"><p>{{ divider }}</p></div>\n <div *ngIf=\"!divider\">\n <div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [attr.id]=\"radioId\"\n [attr.name]=\"name ? name : getNameRadio()\"\n type=\"radio\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [checked]=\"checked\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + this.radioId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError ? true : null\"\n \n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n </div>\n \n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"radioId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n \n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n </div>\n </div>\n <div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && checked\" @displayConditional\n class=\"mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + this.radioId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n </div>\n</div>\n\n","export class RadioServiceItemComponent {\n\n public updateChekboxIds = false;\n public nextValue = null;\n public radioItems = [];\n public contentInit = false;\n\n public dividers: boolean;\n public error: boolean;\n public nameRadio: string;\n public describedBy: string;\n public fieldSet: boolean;\n public idPrefix: string;\n\n \n\n\n}","import {\n AfterContentInit,\n Component,\n ContentChildren,\n DoCheck,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef, ViewChild,\n ViewChildren\n} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {FieldsetData, ItemRadioData, LegendData} from '../../interfaces';\nimport {LegendComponent} from '../fieldset/legend/legend.component';\nimport {FormFieldComponent} from '../form-field/form-field.component';\nimport {RadioItemComponent} from './radio-item/radio-item.component';\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\nimport {HintComponent} from '../hint/hint.component';\nimport {ErrorMessageComponent} from '../error-message/error-message.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\nimport { RadioService } from '../../services/radio.service';\nimport { Subscription } from 'rxjs';\nimport { RadioServiceItemComponent } from '../../models/radio-service-item.component';\n\n@Component({\n selector: 'desy-radios',\n templateUrl: './radios.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadiosComponent),\n multi: true\n }\n ]\n})\nexport class RadiosComponent extends FormFieldComponent<any> implements DoCheck, AfterContentInit, OnDestroy {\n \n /**\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir componente FieldsetComponent\n * 2) incluir objeto FieldsetData (interfaz expuesta)\n * 3) incluir componente LegendComponent\n * 4) incluir template legend\n * 5) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\n * 6) incluir legendText - incluir un fieldset con un texto en la legenda\n */\n @Input() fieldsetData: FieldsetData;\n @Input() legendRef: TemplateRef<LegendComponent>;\n @Input() legendData: LegendData;\n @Input() legendText: string;\n \n @DesyOnInputChange('onIdPrefixChange')\n @Input() idPrefix: string;\n \n @DesyOnInputChange('onNameChange')\n @Input() name: string;\n \n @Input() items: ItemRadioData[];\n @Output() itemsChange = new EventEmitter<ItemRadioData[]>();\n \n @Input() formGroupClasses: string;\n @Input() hasDividers: boolean;\n @Input() hasError: boolean;\n @Input() classes: string;\n @Input() describedBy: string;\n \n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\n \n @DesyContentChild()\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\n \n @ContentChildren(RadioItemComponent) radioComponentItems: QueryList<RadioItemComponent>;\n \n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\n @ViewChildren(RadioItemComponent) radioComponentItems2: QueryList<RadioItemComponent>;\n \n \n private itemsChangeRef: Subscription = null;\n\n private radioServiceItem: RadioServiceItemComponent;\n\n constructor(private radioService: RadioService) {\n super();\n\n this.itemsChangeRef = this.radioService.itemsChange$.subscribe(()=>{\n if (this.items && this.items.length > 0) {\n this.itemsChange.emit(this.items);\n }\n })\n\n }\n\n ngDoCheck(): void {\n this.radioServiceItem = new RadioServiceItemComponent();\n this.radioServiceItem.describedBy = this.describedBy;\n this.radioServiceItem.dividers = this.hasDividers;\n this.radioServiceItem.error = this.hasError;\n this.radioServiceItem.nameRadio = this.name;\n this.radioServiceItem.fieldSet = this.hasFieldset();\n this.radioServiceItem.idPrefix = this.idPrefix;\n \n this.radioService.addRadioServiceItem(this.radioServiceItem);\n let index = this.radioService.getRadioServiceItem(this.radioServiceItem.nameRadio);\n\n if (this.radioService.radioServiceItems[index].nextValue !== null && (this.radioService.radioServiceItems[index].nextValue !== '' || (this.value && this.value !== ''))) {\n this.value = this.radioService.radioServiceItems[index].nextValue;\n this.radioService.radioServiceItems[index].nextValue = null;\n const updateItems = this.updateRadioItemsChecked();\n this.radioService.radioServiceItems[index].radioItems = this.getRadioItems();\n this.radioServiceItem = this.radioService.radioServiceItems[index];\n setTimeout(() => {\n this.onChange(this.value);\n if (updateItems && this.items && this.items.length > 0) {\n this.itemsChange.emit(this.items);\n }\n });\n }\n\n if (this.radioService.radioServiceItems[index].updateChekboxIds) {\n const checkboxItems = this.getRadioItems();\n if (checkboxItems.length > 0) {\n checkboxItems.forEach((item, index) => item.updateRadioId(index));\n }\n this.radioService.radioServiceItems[index].updateChekboxIds = false;\n }\n }\n\n ngAfterContentInit(): void {\n let index = this.radioService.getRadioServiceItem(this.radioServiceItem.nameRadio);\n this.radioService.radioServiceItems[index].contentInit = true;\n }\n\n ngOnDestroy() {\n this.itemsChangeRef.unsubscribe();\n }\n\n /**\n * Se sobrescribe el writeValue de FormField para gestionar en un único punto el valor de value\n * @param value nuevo valor a establecer\n */\n writeValue(value: any[]): void {\n if (value) {\n let index = this.radioService.getRadioServiceItem(this.name);\n this.radioService.radioServiceItems[index].nextValue = value;\n\n }\n }\n\n onIdPrefixChange(): void {\n let index = this.radioService.getRadioServiceItem(this.name);\n if (this.radioService.radioServiceItems[index] && this.radioService.radioServiceItems[index].contentInit) {\n this.radioService.markForUpdateCheckboxIds(this.name);\n }\n this.propagateNewIdPrefixValue();\n }\n\n\n onNameChange(): void {\n let index = this.radioService.getRadioServiceItem(this.name);\n if (this.radioService.radioServiceItems[index] && this.radioService.radioServiceItems[index].contentInit) {\n this.radioService.markForUpdateCheckboxIds(this.name);\n }\n\n this.propagateNewIdPrefixValue();\n }\n\n /**\n * Actualiza los componentes externos que tienen valores dependientes de idPrefix\n * @private\n */\n private propagateNewIdPrefixValue(): void {\n if (this.hintComponent) {\n this.overrideHintParams(this.hintComponent);\n }\n\n if (this.errorMessageComponent) {\n this.overrideErrorMessageParams(this.errorMessageComponent);\n }\n\n // Al hacer el override de hint o error ya se aplica sobre el fieldset, por lo que sólo es necesario aplicarlo directamente\n // sobre el fieldset cuando ninguno de estos existe\n if (!this.hintComponent && !this.errorMessageComponent && this.fieldsetComponent) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n /**\n * Actualiza el estado de los items según el valor asignado al componente\n */\n private updateRadioItemsChecked(): boolean {\n let itemsUpdated = false;\n const radioItems = this.getRadioItems();\n if (radioItems.length > 0) {\n radioItems.forEach(item => {\n if (item.value === this.value && !item.lastChecked) {\n item.setChecked(true);\n itemsUpdated = true;\n } else if (item.value !== this.value && item.lastChecked) {\n item.setChecked(false);\n itemsUpdated = true;\n }\n });\n }\n return itemsUpdated;\n }\n\n\n /*\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\n */\n\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\n fieldset.caller = this.innerHtml;\n fieldset.errorId = this.getErrorId();\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\n fieldset.detectChanges();\n }\n\n overrideHintParams(hint: HintComponent): void {\n hint.id = this.getHintId();\n hint.detectChanges();\n\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n overrideErrorMessageParams(errorMessage: ErrorMessageComponent): void {\n errorMessage.id = this.getErrorId();\n errorMessage.detectChanges();\n\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n onDeleteHint(): void {\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n onDeleteErrorMessage(): void {\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n\n /*\n * Funciones para recuperar valores comunes\n */\n\n hasFieldset(): boolean {\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData ||\n (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\n }\n\n hasFieldsetComponent(): boolean {\n return !!this.fieldsetComponent;\n }\n\n hasLegendComponent(): boolean {\n return !!this.legendComponent;\n }\n\n getErrorId(): string {\n return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : null;\n }\n\n getHintId(): string {\n return this.hasHint() ? this.getIdPrefix() + '-hint' : null;\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : this.name;\n }\n\n getRadioItems(): RadioItemComponent[] {\n let radioItems = [];\n if (this.radioComponentItems && this.radioComponentItems.length > 0) {\n radioItems = this.radioComponentItems.toArray();\n } else if (this.radioComponentItems2 && this.radioComponentItems2.length > 0) {\n radioItems = this.radioComponentItems2.toArray();\n }\n return radioItems;\n }\n}\n","<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n\n <ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [role]=\"fieldsetData.role\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n </ng-container>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #innerHtml>\n <ng-container *ngIf=\"hasHintComponent()\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasHintComponent()\">\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n </ng-container>\n\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n </ng-container>\n\n\n <div class=\"['c-radios', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"radioComponentItems && radioComponentItems.length > 0\">\n <ng-content select=\"desy-radio-item\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(radioComponentItems && radioComponentItems.length > 0) && items\">\n <desy-radio-item *ngFor=\"let item of items; index as i\"\n [id]=\"item.id\"\n [disabled]=\"item.disabled\"\n [classes]=\"item.classes\"\n [value]=\"item.value\"\n [(checked)]=\"item.checked\"\n [conditional]=\"item.conditional\"\n [divider]=\"item.divider\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\">\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\n [classes]=\"item.labelData ? item.labelData.classes : null\"\n [role]=\"item.labelData ? item.labelData.role : null\"\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\n [text]=\"item.hintData.text\"\n [html]=\"item.hintData.html\"\n [classes]=\"item.hintData.classes\"\n [role]=\"item.hintData.role\"\n [ariaLabel]=\"item.hintData.ariaLabel\"\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\n [ariaHidden]=\"item.hintData.ariaHidden\"\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\n [ariaControls]=\"item.hintData.ariaControls\"\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\n [ariaLive]=\"item.hintData.ariaLive\"\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\n <desy-content *ngIf=\"item.conditionalHtml\">\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\n </desy-content>\n </desy-radio-item>\n </ng-container>\n </div>\n</ng-template>\n","import {\n Injectable\n } from '@angular/core';\nimport { Subject } from 'rxjs/internal/Subject';\nimport { CheckboxServiceItemComponent } from '../models/checkbox-service-item.component';\n \n @Injectable({\n providedIn: 'root'\n })\n export class CheckboxService {\n\n public checkboxServiceItems: CheckboxServiceItemComponent[] = [];\n\n private itemsChangeSource = new Subject<void>();\n public itemsChange$ = this.itemsChangeSource.asObservable();\n\n public markForUpdateCheckboxIds(name: string): void {\n let index = this.getCheckboxServiceItem(name);\n if(index !== -1){\n this.checkboxServiceItems[index].updateChekboxIds = true;\n }\n }\n\n public updateValueFromCheckboxItems(name: string): void {\n let index = this.getCheckboxServiceItem(name);\n if(index !== -1){\n setTimeout( () => {\n const items = this.checkboxServiceItems[index].checkboxItems;\n if (items && items.length > 0 && items.findIndex(item => !item.isInit()) < 0) {\n this.checkboxServiceItems[index].nextValue = items.filter(item => item.checked).map(item => item.getValue());\n }\n });\n this.itemsChangeSource.next(); \n }\n /*\n * Se realiza dentro de un timeout porque, aunque los componentes items se hayan inicializado, en este componente puede ser que todavía\n * no se detecten, y por tanto el getCheckboxItems no devuelva la lista correcta.\n */\n \n }\n\n addCheckboxServiceItem(checkboxItem: CheckboxServiceItemComponent){\n const item = this.checkboxServiceItems.find(item => item.nameRadio === checkboxItem.nameRadio);\n if(!item){\n this.checkboxServiceItems.push(checkboxItem);\n }\n }\n\n getCheckboxServiceItem(name: string): number{\n const item = this.checkboxServiceItems.find(item => item.nameRadio === name);\n let index = this.checkboxServiceItems.indexOf(item);\n return index;\n }\n\n addValueToNextValue(name: string, value: any){\n let index = this.getCheckboxServiceItem(name);\n if(index !== -1){\n const item = this.checkboxServiceItems[index].nextValue.find(item => item === value);\n if(!item){\n this.checkboxServiceItems[index].nextValue.push(value);\n } \n } \n }\n }","import {\n AfterViewInit, ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Host,\n HostBinding,\n Input, OnChanges, OnDestroy, OnInit,\n Output, QueryList, SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {ItemCheckboxData} from '../../../interfaces';\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\nimport {animate, animateChild, query, state, style, transition, trigger} from '@angular/animations';\nimport {LabelComponent} from '../../label/label.component';\nimport {HintComponent} from '../../hint/hint.component';\nimport {AccessibilityComponent} from '../../../../shared/components';\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\nimport { CheckboxService } from '../../../services/checkbox.service';\n// TODO los hijos no pueden contener al padre, los metodos hay que pasarlos al padre (checkboxes)\n@Component({\n selector: 'desy-checkbox-item',\n templateUrl: './checkbox-item.component.html',\n animations: [\n trigger('displayConditional', [\n state('void', style({\n opacity: '0.0',\n transform: 'scale(0.95)'\n })),\n state('*', style({\n opacity: '1.0',\n transform: 'scale(1.0)'\n })),\n transition(':enter', [\n animate('100ms ease-out')\n ]),\n transition('* => *', [\n query('@*', animateChild(), {optional: true})\n ])\n ])\n ]\n})\nexport class CheckboxItemComponent extends AccessibilityComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit, ItemCheckboxData {\n\n @ViewChild('input') inputElement: ElementRef;\n\n @Input() id: string;\n @Input() value: any;\n @Input() name: string;\n @Input() conditional: boolean;\n @Input() disabled: boolean;\n @Input() isIndeterminate: boolean;\n\n @DesyOnInputChange('setIndeterminateStatus')\n @Input() indeterminateChecked: boolean;\n @Input() @HostBinding('class') classes: any;\n\n @ContentChildren(LabelComponent) labelComponentList: QueryList<LabelComponent>;\n @ContentChildren(HintComponent) hintComponentList: QueryList<HintComponent>;\n @ContentChildren(ContentComponent) conditionalContentList: QueryList<ContentComponent>;\n\n @Input() checked: boolean;\n\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() indeterminateChange: EventEmitter<any> = new EventEmitter<any>();\n\n lastChecked;\n lastIndeterminate;\n lastValue;\n checkboxId;\n\n constructor( private checkboxService: CheckboxService, private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.checkboxService.markForUpdateCheckboxIds(this.name);\n }\n\n ngOnDestroy(): void {\n this.checkboxService.markForUpdateCheckboxIds(this.name);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n let i = this.checkboxService.getCheckboxServiceItem(this.name);\n this.classes = (i !=-1 && this.checkboxService.checkboxServiceItems[i].dividers) ? this.classes += ' border-t border-b border-neutral-base -mb-px' : this.classes;\n if (this.checked !== this.lastChecked && this.isInit()) {\n this.setChecked(this.checked);\n this.checkboxService.updateValueFromCheckboxItems(this.name);\n } else if (this.lastValue !== undefined && this.lastValue !== this.value) {\n this.checkboxService.updateValueFromCheckboxItems(this.name);\n }\n\n if(this.indeterminateChecked !== this.lastIndeterminate && this.isInit()){\n this.setIndeterminateChecked(this.indeterminateChecked);\n this.checkboxService.updateValueFromCheckboxItems(this.name);\n }\n\n\n this.lastValue = this.value;\n\n if (this.id !== this.checkboxId) {\n this.checkboxService.markForUpdateCheckboxIds(this.name);\n }\n }\n\n ngAfterViewInit(): void {\n this.setChecked(this.checked);\n this.setIndeterminateChecked(this.indeterminateChecked);\n this.checkboxService.updateValueFromCheckboxItems(this.name);\n }\n\n getItemHintId(): string {\n return this.hintComponentList && this.hintComponentList.length > 0 && this.checkboxId ? this.checkboxId + '-item-hint' : null;\n }\n\n hasChanged(): void {\n // Se establece el cambio a visualizar en el input\n const input = this.inputElement.nativeElement;\n if (this.isIndeterminate) {\n if (input.readOnly) {\n input.checked = false;\n input.readOnly = false;\n } else if (!input.checked) {\n input.readOnly = true;\n input.indeterminate = true;\n }\n }\n this.setChecked(input.checked);\n this.setIndeterminateChecked(input.indeterminate);\n this.checkboxService.updateValueFromCheckboxItems(this.name);\n }\n\n setChecked(checked: boolean): void {\n this.checked = checked;\n this.lastChecked = checked;\n let index = this.checkboxService.getCheckboxServiceItem(this.name);\n\n this.checkedChange.emit(checked);\n if(checked){\n this.checkboxService.addValueToNextValue(this.name, this.value);\n }else{\n if(this.checkboxService.checkboxServiceItems[index].nextValue && this.checkboxService.checkboxServiceItems[index].nextValue.length > 0){\n var i = this.checkboxService.checkboxServiceItems[index].nextValue.indexOf(this.value);\n if(i != -1){\n this.checkboxService.checkboxServiceItems[index].nextValue.splice(i, 1);\n }\n }\n }\n this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado\n }\n\n setIndeterminateChecked(indeterminateChecked: boolean): void {\n this.indeterminateChecked = indeterminateChecked;\n this.lastIndeterminate = indeterminateChecked;\n this.indeterminateChange.emit(indeterminateChecked);\n this.changeDetectorRef.detectChanges(); // Avisa al elemento input para que actualice su estado\n }\n\n setIndeterminateStatus(): void {\n const input = this.inputElement?.nativeElement;\n if (input) {\n if (this.indeterminateChecked) {\n input.readOnly = true;\n input.indeterminate = true;\n } else if (input.readOnly) {\n input.readOnly = false;\n input.indeterminate = false;\n }\n }\n }\n\n isInit(): boolean {\n return !!this.inputElement;\n }\n\n getValue(): any {\n const input = this.inputElement.nativeElement;\n return input.checked || input.indeterminate ? this.value : null;\n }\n\n updateCheckboxId(index?: number): void {\n let i = this.checkboxService.getCheckboxServiceItem(this.name);\n if (this.id) {\n this.checkboxId = this.id;\n } else {\n const idPrefix = this.checkboxService.checkboxServiceItems[i].idPrefix ? this.checkboxService.checkboxServiceItems[i].idPrefix : this.checkboxService.checkboxServiceItems[i].nameRadio;\n if (index === 0) {\n this.checkboxId = idPrefix;\n } else {\n this.checkboxId = `${idPrefix}-${index}`;\n }\n }\n\n if (this.labelComponentList && this.labelComponentList.length > 0) {\n this.labelComponentList.first.for = this.checkboxId;\n }\n\n if (this.hintComponentList && this.hintComponentList.length > 0) {\n this.hintComponentList.first.id = this.getItemHintId();\n }\n\n this.changeDetectorRef.detectChanges();\n }\n\n /*\n * Funciones para aportar información desde el componente checkboxes que lo contiene\n */\n\n hasDividers(): boolean {\n let i = this.checkboxService.getCheckboxServiceItem(this.name);\n return i !== -1 ? this.checkboxService.checkboxServiceItems[i].dividers : null;\n }\n\n hasError(): boolean {\n let i = this.checkboxService.getCheckboxServiceItem(this.name);\n return i !== -1 ? this.checkboxService.checkboxServiceItems[i].hasErrorMessage : null;\n }\n\n getNameCheckbox(): string {\n let i = this.checkboxService.getCheckboxServiceItem(this.name);\n return i !== -1 ? this.checkboxService.checkboxServiceItems[i].nameRadio : null;\n }\n\n getDescribedBy(): string {\n let i = this.checkboxService.getCheckboxServiceItem(this.name);\n return i !== -1 ? (!this.checkboxService.checkboxServiceItems[i].fieldSet ? this.checkboxService.checkboxServiceItems[i].describedBy : null) : null;\n }\n}\n","<div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input 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-base disabled:border-neutral-base text-primary-base\"\n [checked]=\"checked\"\n [attr.id]=\"checkboxId\"\n [attr.name]=\"name ? name : getNameCheckbox()\"\n type=\"checkbox\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + checkboxId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError() ? true : null\"\n\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n </div>\n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"checkboxId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n</div>\n\n<div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && (input.checked || input.indeterminate)\" @displayConditional\n class=\"mb-base ml-5 py-sm pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + checkboxId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n</div>\n","export class CheckboxServiceItemComponent {\n\n public updateChekboxIds = false;\n public nextValue = [];\n public checkboxItems = [];\n public contentInit = false;\n\n public dividers: boolean;\n public error: boolean;\n public hasErrorMessage: boolean;\n public nameRadio: string;\n public describedBy: string;\n public fieldSet: boolean;\n public idPrefix: string;\n\n\n}","import {\n AfterContentInit,\n Component,\n ContentChildren, DoCheck, EventEmitter,\n forwardRef,\n Input, OnDestroy, Output,\n QueryList,\n SimpleChanges,\n TemplateRef, ViewChild, ViewChildren\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldComponent } from '../form-field/form-field.component';\nimport { FieldsetData, LegendData, ItemCheckboxData } from '../../interfaces';\nimport { LegendComponent } from '../fieldset/legend/legend.component';\nimport {CheckboxItemComponent} from './checkbox-item/checkbox-item.component';\nimport {HintComponent} from '../hint/hint.component';\nimport {ErrorMessageComponent} from '../error-message/error-message.component';\nimport {FieldsetComponent} from '../fieldset/fieldset.component';\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\nimport { Subscription } from 'rxjs';\nimport { CheckboxServiceItemComponent } from '../../models/checkbox-service-item.component';\nimport { CheckboxService } from '../../services/checkbox.service';\n\n\n@Component({\n selector: 'desy-checkboxes',\n templateUrl: './checkboxes.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxesComponent),\n multi: true\n }\n ]\n})\nexport class CheckboxesComponent extends FormFieldComponent<any[]> implements AfterContentInit, DoCheck, OnDestroy {\n \n /**\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir componente FieldsetComponent\n * 2) incluir objeto FieldsetData (interfaz expuesta)\n * 3) incluir componente LegendComponent\n * 4) incluir template legend\n * 5) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\n * 6) incluir legendText - incluir un fieldset con un texto en la legenda\n */\n @Input() fieldsetData: FieldsetData;\n @Input() legendRef: TemplateRef<LegendComponent>;\n @Input() legendData: LegendData;\n @Input() legendText: string;\n\n @DesyOnInputChange('onIdPrefixChange')\n @Input() idPrefix: string;\n \n @DesyOnInputChange('onNameChange')\n @Input() name: string;\n \n @Input() items: ItemCheckboxData[];\n @Output() itemsChange = new EventEmitter<ItemCheckboxData[]>();\n \n @Input() formGroupClasses: string;\n @Input() hasDividers: boolean;\n @Input() hasError: boolean;\n @Input() classes: string;\n @Input() describedBy: string;\n \n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\n \n @DesyContentChild()\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\n \n @ContentChildren(CheckboxItemComponent) checkboxComponentItems: QueryList<CheckboxItemComponent>;\n \n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\n @ViewChildren(CheckboxItemComponent) checkboxComponentItems2: QueryList<CheckboxItemComponent>;\n\n private itemsChangeRef: Subscription = null;\n\n private checkboxServiceItem: CheckboxServiceItemComponent;\n\n constructor(private checkboxService: CheckboxService) {\n super();\n\n this.itemsChangeRef = this.checkboxService.itemsChange$.subscribe(()=>{\n if (this.items && this.items.length > 0) {\n this.itemsChange.emit(this.items);\n }\n })\n\n }\n \n ngDoCheck(): void {\n this.checkboxServiceItem = new CheckboxServiceItemComponent();\n this.checkboxServiceItem.describedBy = this.describedBy;\n this.checkboxServiceItem.dividers = this.hasDividers;\n this.checkboxServiceItem.error = this.hasError;\n this.checkboxServiceItem.hasErrorMessage = this.hasErrorsMessage();\n this.checkboxServiceItem.nameRadio = this.name;\n this.checkboxServiceItem.fieldSet = this.hasFieldset();\n this.checkboxServiceItem.idPrefix = this.idPrefix;\n\n this.checkboxService.addCheckboxServiceItem(this.checkboxServiceItem);\n let index = this.checkboxService.getCheckboxServiceItem(this.checkboxServiceItem.nameRadio);\n\n if (this.checkboxService.checkboxServiceItems[index].nextValue !== null && (this.checkboxService.checkboxServiceItems[index].nextValue.length > 0 || (this.value && this.value.length > 0))) {\n this.value = this.checkboxService.checkboxServiceItems[index].nextValue;\n //this.checkboxService.checkboxServiceItems[index].nextValue = [];\n this.updateCheckboxItemsChecked();\n this.checkboxService.checkboxServiceItems[index].checkboxItems = this.getCheckboxItems();\n setTimeout(() => {\n this.onChange(this.value);\n if (this.items && this.items.length > 0) {\n this.itemsChange.emit(this.items);\n }\n });\n }\n\n if (this.checkboxService.checkboxServiceItems[index].updateChekboxIds) {\n const checkboxItems = this.getCheckboxItems();\n if (checkboxItems.length > 0) {\n checkboxItems.forEach((item, index) => item.updateCheckboxId(index));\n }\n this.checkboxService.checkboxServiceItems[index].updateChekboxIds = false;\n }\n }\n\n ngAfterContentInit(): void {\n let index = this.checkboxService.getCheckboxServiceItem(this.checkboxServiceItem.nameRadio);\n this.checkboxService.checkboxServiceItems[index].contentInit = true;\n }\n\n ngOnDestroy(){\n this.itemsChangeRef.unsubscribe();\n }\n\n /**\n * Se sobrescribe el writeValue de FormField para gestionar en un único punto el valor de value\n * @param value nuevo valor a establecer\n */\n writeValue(value: any[]): void {\n if (value) {\n let index = this.checkboxService.getCheckboxServiceItem(this.name);\n this.checkboxService.checkboxServiceItems[index].nextValue = value;\n }\n }\n\n onIdPrefixChange(): void {\n let index = this.checkboxService.getCheckboxServiceItem(this.name);\n if (this.checkboxService.checkboxServiceItems[index] && this.checkboxService.checkboxServiceItems[index].contentInit) {\n this.checkboxService.markForUpdateCheckboxIds(this.name);\n }\n this.propagateNewIdPrefixValue();\n }\n\n\n onNameChange(): void {\n let index = this.checkboxService.getCheckboxServiceItem(this.name);\n if (this.checkboxService.checkboxServiceItems[index] && this.checkboxService.checkboxServiceItems[index].contentInit) {\n this.checkboxService.markForUpdateCheckboxIds(this.name);\n }\n\n this.propagateNewIdPrefixValue();\n }\n\n /**\n * Actualiza los componentes externos que tienen valores dependientes de idPrefix\n * @private\n */\n private propagateNewIdPrefixValue(): void {\n if (this.hintComponent) {\n this.overrideHintParams(this.hintComponent);\n }\n\n if (this.errorMessageComponent) {\n this.overrideErrorMessageParams(this.errorMessageComponent);\n }\n\n // Al hacer el override de hint o error ya se aplica sobre el fieldset, por lo que sólo es necesario aplicarlo directamente\n // sobre el fieldset cuando ninguno de estos existe\n if (!this.hintComponent && !this.errorMessageComponent && this.fieldsetComponent) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n /**\n * Actualiza el estado de los items según el valor asignado al componente\n */\n private updateCheckboxItemsChecked(): void {\n const checkboxItems = this.getCheckboxItems();\n if (checkboxItems.length > 0) {\n checkboxItems.forEach(item => {\n const itemChecked = Array.isArray(this.value) ? this.value.findIndex(v => v === item.value) > -1 : this.value === item.value;\n if (itemChecked !== item.lastChecked) {\n item.setChecked(itemChecked);\n }\n });\n }\n }\n\n /*\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\n */\n\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\n fieldset.caller = this.innerHtml;\n fieldset.errorId = this.getErrorId();\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\n fieldset.detectChanges();\n }\n\n overrideHintParams(hint: HintComponent): void {\n hint.id = this.getHintId();\n hint.detectChanges();\n\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n overrideErrorMessageParams(errorMessage: ErrorMessageComponent): void {\n errorMessage.id = this.getErrorId();\n errorMessage.detectChanges();\n\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n onDeleteHint(): void {\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n onDeleteErrorMessage(): void {\n if (this.hasFieldsetComponent()) {\n this.overrideFieldsetParams(this.fieldsetComponent);\n }\n }\n\n\n /*\n * Funciones para recuperar valores comunes\n */\n\n\n hasFieldset(): boolean {\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData ||\n (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\n }\n\n hasFieldsetComponent(): boolean {\n return !!this.fieldsetComponent;\n }\n\n hasLegendComponent(): boolean {\n return !!this.legendComponent;\n }\n\n getErrorId(): string {\n return this.hasErrorsMessage() ? this.getIdPrefix() + '-error' : undefined;\n }\n\n getHintId(): string {\n return this.hasHint() ? this.getIdPrefix() + '-hint' : undefined;\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : this.name;\n }\n\n getCheckboxItems(): CheckboxItemComponent[] {\n let checkboxItems = [];\n if (this.checkboxComponentItems && this.checkboxComponentItems.length > 0) {\n checkboxItems = this.checkboxComponentItems.toArray();\n } else if (this.checkboxComponentItems2 && this.checkboxComponentItems2.length > 0) {\n checkboxItems = this.checkboxComponentItems2.toArray();\n }\n return checkboxItems;\n }\n}\n","<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n [role]=\"fieldsetData.role\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !!legendComponent\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !legendComponent && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"></desy-fieldset>\n </ng-container>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #innerHtml>\n <ng-container *ngIf=\"hasHintComponent()\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasHintComponent()\">\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n </ng-container>\n\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n </ng-container>\n\n <div [class]=\"['c-checkboxes', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"checkboxComponentItems && checkboxComponentItems.length > 0\">\n <ng-content select=\"desy-checkbox-item\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(checkboxComponentItems && checkboxComponentItems.length > 0) && items\">\n <desy-checkbox-item *ngFor=\"let item of items; index as i\"\n [id]=\"item.id\"\n [disabled]=\"item.disabled\"\n [name]=\"item.name\"\n [classes]=\"item.classes\"\n [value]=\"item.value\"\n [(checked)]=\"item.checked\"\n [conditional]=\"item.conditional\"\n [isIndeterminate]=\"item.isIndeterminate\"\n [indeterminateChecked]=\"item.indeterminateChecked\"\n\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\">\n <desy-label [text]=\"item.text\" [html]=\"item.html\"\n [classes]=\"item.labelData ? item.labelData.classes : null\"\n [role]=\"item.labelData ? item.labelData.role : null\"\n [ariaLabel]=\"item.labelData ? item.labelData.ariaLabel : null\"\n [ariaDescribedBy]=\"item.labelData ? item.labelData.ariaDescribedBy: null\"\n [ariaLabelledBy]=\"item.labelData ? item.labelData.ariaLabelledBy : null\"\n [ariaHidden]=\"item.labelData ? item.labelData.ariaHidden : null\"\n [ariaDisabled]=\"item.labelData ? item.labelData.ariaDisabled : null\"\n [ariaControls]=\"item.labelData ? item.labelData.ariaControls : null\"\n [ariaCurrent]=\"item.labelData ? item.labelData.ariaCurrent : null\"\n [ariaLive]=\"item.labelData ? item.labelData.ariaLive : null\"\n [ariaExpanded]=\"item.labelData ? item.labelData.ariaExpanded : null\"\n [ariaErrorMessage]=\"item.labelData ? item.labelData.ariaErrorMessage : null\"\n [ariaHasPopup]=\"item.labelData ? item.labelData.ariaHasPopup : null\"\n [tabindex]=\"tabindex ? item.labelData.tabindex : null\"></desy-label>\n <desy-hint *ngIf=\"item.hintData && (item.hintData.text || item.hintData.html)\"\n [text]=\"item.hintData.text\"\n [html]=\"item.hintData.html\"\n [classes]=\"item.hintData.classes\"\n [role]=\"item.hintData.role\"\n [ariaLabel]=\"item.hintData.ariaLabel\"\n [ariaDescribedBy]=\"item.hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.hintData.ariaLabelledBy\"\n [ariaHidden]=\"item.hintData.ariaHidden\"\n [ariaDisabled]=\"item.hintData.ariaDisabled\"\n [ariaControls]=\"item.hintData.ariaControls\"\n [ariaCurrent]=\"item.hintData.ariaCurrent\"\n [ariaLive]=\"item.hintData.ariaLive\"\n [ariaExpanded]=\"item.hintData.ariaExpanded\"\n [ariaErrorMessage]=\"item.hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"item.hintData.ariaHasPopup\"\n [tabindex]=\"item.hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!item.hintData && item.hintText\" [text]=\"item.hintText\"></desy-hint>\n <desy-content *ngIf=\"item.conditionalHtml\">\n <ng-container *ngTemplateOutlet=\"item.conditionalHtml\"></ng-container>\n </desy-content>\n </desy-checkbox-item>\n </ng-container>\n </div>\n</ng-template>\n","import {Component, Input} from '@angular/core';\nimport {ItemDateInputData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-date-input-item',\n template: ''\n})\nexport class DateInputItemComponent implements ItemDateInputData {\n @Input() classes?: string;\n\n}\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\nimport { ItemDateInputData } from '../../../interfaces';\nimport { LabelData } from '../../../interfaces';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {LabelComponent} from '../../label/label.component';\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\n\n@Component({\n selector: 'desy-input-day',\n templateUrl: './date-input-day.component.html',\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDayComponent)}],\n})\nexport class DateInputDayComponent extends DateInputItemComponent implements ItemDateInputData {\n @Input() id: string;\n @Input() name: string;\n @Input() labelText: string;\n @Input() labelData: LabelData;\n @Input() disabled: boolean;\n @Input() hasErrors: boolean;\n @Input() value: any;\n @Input() autocomplete: string;\n @Input() pattern: string;\n @Input() classes: string;\n @Input() maxlength: number;\n\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\n\n @DesyContentChild()\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\n\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\n\n}\n","<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\nimport { ItemDateInputData } from '../../../interfaces';\nimport { LabelData } from '../../../interfaces';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {LabelComponent} from '../../label/label.component';\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\n\n@Component({\n selector: 'desy-input-month',\n templateUrl: './date-input-month.component.html',\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputMonthComponent)}],\n})\nexport class DateInputMonthComponent extends DateInputItemComponent implements ItemDateInputData {\n @Input() id: string;\n @Input() name: string;\n @Input() labelText: string;\n @Input() labelData: LabelData;\n @Input() disabled: boolean;\n @Input() hasErrors: boolean;\n @Input() value: any;\n @Input() autocomplete: string;\n @Input() pattern: string;\n @Input() classes: string;\n @Input() maxlength: number;\n\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\n\n @DesyContentChild()\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\n\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\n\n}\n","<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n","import {Component, ContentChildren, EventEmitter, forwardRef, Input, Output, TemplateRef, ViewChild} from '@angular/core';\nimport { ItemDateInputData } from '../../../interfaces';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {LabelComponent} from '../../label/label.component';\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\n\n@Component({\n selector: 'desy-input-year',\n templateUrl: './date-input-year.component.html',\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputYearComponent)}],\n})\nexport class DateInputYearComponent extends DateInputItemComponent implements ItemDateInputData {\n @Input() id: string;\n @Input() name: string;\n @Input() disabled: boolean;\n @Input() hasErrors: boolean;\n @Input() value: any;\n @Input() autocomplete: string;\n @Input() pattern: string;\n @Input() classes: string;\n @Input() maxlength: number;\n\n @Output() valueChange: EventEmitter<number> = new EventEmitter<number>();\n\n @DesyContentChild()\n @ContentChildren(LabelComponent) labelComponent: LabelComponent;\n\n @ViewChild('label', { static: true }) labelRef: TemplateRef<any>;\n\n}\n","<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n","import {Component, forwardRef, TemplateRef, ViewChild} from '@angular/core';\nimport { ItemDividerDateInputData } from '../../../interfaces/item-divider-date-input-data';\nimport { DateInputItemComponent } from '../date-input-item/date-input-item.component';\n\n@Component({\n selector: 'desy-date-input-divider',\n templateUrl: './date-input-divider.component.html',\n providers: [{provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDividerComponent)}],\n})\nexport class DateInputDividerComponent extends DateInputItemComponent implements ItemDividerDateInputData {\n\n divider = this;\n\n @ViewChild('dividerContent', { static: true }) dividerContent: TemplateRef<any>;\n}\n","<ng-template #dividerContent>\n <ng-content></ng-content>\n</ng-template>","import {\n AfterContentInit,\n Component,\n ContentChildren, EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n Optional, Output,\n QueryList,\n TemplateRef,\n ViewChild,\n HostBinding,\n SimpleChanges,\n OnInit\n} from '@angular/core';\nimport { ControlContainer, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldComponent } from '../form-field/form-field.component';\nimport { FieldsetData, LegendData, ItemDateInputData, LabelData } from '../../interfaces';\nimport { LegendComponent } from '../fieldset/legend/legend.component';\nimport { FieldsetComponent } from '../fieldset/fieldset.component';\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\nimport { DateInputDayComponent } from './date-input-day/date-input-day.component';\nimport { DateInputMonthComponent } from './date-input-month/date-input-month.component';\nimport { DateInputYearComponent } from './date-input-year/date-input-year.component';\nimport {MakeHtmlListPipe} from '../../../shared/pipes/make-html-list.pipe';\nimport {DesyOnInputChange} from '../../../shared/decorators/desy-on-input-change.decorator';\nimport { DateInputDividerComponent } from './date-input-divider/date-input-divider.component';\nimport { StringUtils } from '../../../shared/utils/string-utils';\nimport { DateInputItemComponent } from './date-input-item/date-input-item.component';\n\n@Component({\n selector: 'desy-date-input',\n templateUrl: './date-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateInputComponent),\n multi: true\n }\n ]\n})\nexport class DateInputComponent extends FormFieldComponent<any> implements OnInit, AfterContentInit, OnChanges {\n\n private static defaultItems = [\n {\n name: 'day',\n classes: 'w-14',\n maxlength: 2\n },\n {\n name: 'month',\n classes: 'w-14',\n maxlength: 2\n },\n {\n name: 'year',\n classes: 'w-20',\n maxlength: 4\n }\n ];\n\n @Input() ngModelGroup: string;\n\n @DesyOnInputChange('onExternalChange')\n @Input() items: ItemDateInputData[];\n @Output() itemsChange: EventEmitter<ItemDateInputData[]> = new EventEmitter<ItemDateInputData[]>();\n\n @DesyOnInputChange('onExternalChange')\n @Input() namePrefix: string;\n @Input() classes: string;\n @Input() errorMessage: string;\n @Input() id: string;\n // form group class - asignar clases a la etiqueta desy-input\n @HostBinding('class.c-form-group') cfg = true;\n @HostBinding('class.c-form-group--error') cfgr: boolean;\n @Input() @HostBinding('class') formGroupClasses: any;\n\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\n\n @DesyContentChild()\n @ContentChildren(LegendComponent) legendComponent: LegendComponent;\n\n @ContentChildren(DateInputItemComponent) dateInputItemComponents: QueryList<DateInputItemComponent>;\n\n /**\n * fieldset, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir objeto FieldsetData (interfaz expuesta)\n * 2) incluir template legend\n * 3) incluir legendData - incluir un fieldset con una legenda con los parametros pasados (interfaz expuesta)\n * 4) incluir legendText - incluir un fieldset con un texto en la legenda\n */\n @Input() fieldsetData: FieldsetData;\n @Input() legendRef: TemplateRef<LegendComponent>;\n @Input() legendData: LegendData;\n @Input() legendText: string;\n\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\n\n private contentInit = false;\n public ogFormGroup: FormGroup;\n\n constructor(@Optional() public controlContainer: ControlContainer) {\n super();\n }\n\n ngOnInit() {\n if(this.controlContainer){\n this.ogFormGroup = this.controlContainer.control as FormGroup;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');\n }\n\n ngAfterContentInit(): void {\n this.contentInit = true;\n }\n\n initDefaultItems(): void {\n if (!this.items) {\n this.items = [\n {\n name: 'día',\n classes: 'w-14',\n maxlength: 2\n },\n {\n name: 'mes',\n classes: 'w-14',\n maxlength: 2\n },\n {\n name: 'año',\n classes: 'w-20',\n maxlength: 4\n }\n ];\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n if (this.value) {\n const items = this.getItems();\n items.forEach(item => item.value = this.value[this.getItemName(item)]);\n\n if (this.items) {\n this.itemsChange.emit(this.items);\n }\n }\n this.onChange(value);\n }\n\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\n fieldset.caller = this.innerHtml;\n fieldset.errorId = this.getErrorId();\n fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);\n fieldset.role = 'group';\n fieldset.detectChanges();\n }\n\n onExternalChange(): void {\n if (!this.contentInit) {\n return;\n }\n\n if (!this.value) {\n this.value = {};\n }\n\n const items = this.getItems();\n items.forEach(item => this.value[this.getItemName(item)] = item.value);\n const newVal = {};\n Object.assign(newVal, this.value);\n this.onChange(newVal);\n }\n\n onInternalChange(item: ItemDateInputData, itemValue: number): void {\n const itemName = this.getItemName(item);\n if (!this.value) {\n this.value = {};\n }\n\n if (this.value[itemName] !== itemValue) {\n this.value[itemName] = itemValue ? +itemValue : undefined;\n const newVal = {};\n Object.assign(newVal, this.value);\n this.onChange(newVal);\n if (item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent) {\n item.valueChange.emit(itemValue);\n }\n\n if (this.items) {\n item.value = itemValue;\n this.itemsChange.emit(this.items);\n }\n }\n }\n\n hasFieldset(): boolean {\n return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData\n || (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);\n }\n\n hasFieldsetComponent(): boolean {\n return !!this.fieldsetComponent;\n }\n\n hasLegendComponent(): boolean {\n return !!this.legendComponent;\n }\n\n hasErrorMessageComponent(): boolean {\n return !!this.errorMessageComponent;\n }\n\n getItemName(item: ItemDateInputData): string {\n return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;\n }\n\n getItemLabel(item: ItemDateInputData): LabelData {\n let labelData: LabelData;\n if (item.labelData && (item.labelData.text || item.labelData.html)) {\n labelData = item.labelData;\n } else {\n labelData = {\n text: item.labelText ? item.labelText : (item.name ? item.name.toUpperCase() : null)\n };\n }\n return labelData;\n }\n\n getItemLabelRef(item: ItemDateInputData): TemplateRef<any> {\n return item instanceof DateInputDayComponent || item instanceof DateInputMonthComponent || item instanceof DateInputYearComponent ?\n item.labelRef : null;\n }\n\n getItems(): ItemDateInputData[] {\n let items;\n if (this.dateInputItemComponents && this.dateInputItemComponents.length > 0) {\n items = this.dateInputItemComponents.toArray();\n } else if (this.items) {\n items = this.items;\n } else if (this.contentInit) {\n items = DateInputComponent.defaultItems;\n } else {\n items = [];\n }\n\n\n return items;\n }\n\n getItemDividerTemplate(item: ItemDateInputData): TemplateRef<any> {\n return item.divider instanceof DateInputDividerComponent ? item.divider.dividerContent : null;\n }\n getItemDividerHtml(item: ItemDateInputData): string {\n return item.divider.html ? item.divider.html : `<p>${ StringUtils.escapeHtml(item.divider.text) }</p>`;\n }\n\n}\n","<ng-template #innerHtml>\n <ng-container *ngIf=\"hasHintComponent()\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasHintComponent()\">\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\n </ng-container>\n\n\n <ng-container *ngIf=\"hasErrorMessageComponent()\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hasErrorMessageComponent()\">\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n </ng-container>\n\n <!-- With reactive forms -->\n <div *ngIf=\"controlContainer && !ngModelGroup\"\n [formGroup]=\"ogFormGroup\"\n [class]=\"['flex', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngIf=\"item.divider\">\n <div role=\"separator\" [ngClass]=\"item.divider.classes\">\n <ng-container *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.divider\">\n <div class=\"mr-base\">\n <desy-input [labelData]=\"getItemLabel(item)\"\n [labelRef]=\"getItemLabelRef(item)\"\n [id]=\"item.id ? item.id : id + '-' + item.name\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [type]=\"'text'\"\n [inputmode]=\"'numeric'\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\n\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-input>\n </div>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Template-driven forms -->\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\n <div [ngModelGroup]=\"ngModelGroup\"\n [class]=\"['flex', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n \n <ng-container *ngIf=\"item.divider\">\n <div role=\"separator\" [ngClass]=\"item.divider.classes\">\n <ng-container *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.divider\">\n <div class=\"mr-base\">\n <desy-input [labelData]=\"getItemLabel(item)\"\n [labelRef]=\"getItemLabelRef(item)\"\n [id]=\"item.id ? item.id : id + '-' + item.name\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, +$event)\"\n [type]=\"'text'\"\n [inputmode]=\"'numeric'\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\n [disabled]=\"disabled ? true : null\"\n\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-input>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </desy-template-driven-wrapper>\n\n <!-- With ngModel-->\n <div *ngIf=\"!controlContainer\"\n [class]=\"['flex', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n \n <ng-container *ngIf=\"item.divider\">\n <div role=\"separator\" [ngClass]=\"item.divider.classes\">\n <ng-container *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!item.divider\">\n <div class=\"mr-base\">\n <desy-input [labelData]=\"getItemLabel(item)\"\n [labelRef]=\"getItemLabelRef(item)\"\n [id]=\"item.id ? item.id : id + '-' + item.name\"\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, +$event)\"\n [type]=\"'text'\"\n [inputmode]=\"'numeric'\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern ? item.pattern : '[0-9]*'\"\n [disabled]=\"disabled ? true : null\"\n\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"></desy-input>\n </div>\n </ng-container>\n </ng-container>\n</div>\n</ng-template>\n\n<ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n</ng-container>\n<ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n</ng-container>\n\n<ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n</ng-container>\n","import {\n Component,\n ContentChildren,\n DoCheck,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Output, QueryList, SimpleChanges\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FormFieldComponent } from '../form-field/form-field.component';\nimport { ButtonComponent } from '../../../desy-buttons/components/button/button.component';\n\n@Component({\n selector: 'desy-search-bar',\n templateUrl: './search-bar.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchBarComponent),\n multi: true\n }\n ]\n})\nexport class SearchBarComponent extends FormFieldComponent<string> implements DoCheck { \n \n @ContentChildren(ButtonComponent) button: QueryList<ButtonComponent>;\n\n @Input() describedBy: string;\n @HostBinding('class') hasButtonClass: string;\n @Input() classes: any;\n @Input() buttonClasses: string;\n @Input() placeholder: string;\n @Output() clickEvent = new EventEmitter();\n \n value = '';\n \n onClick(event: any): void {\n if (!this.disabled) {\n this.clickEvent.emit(event);\n }\n }\n\n hasButton(): boolean {\n return this.button && this.button.length > 0;\n }\n\n ngDoCheck(): void {\n this.hasButtonClass = this.hasButton() ? 'relative flex flex-wrap items-end' : 'relative';\n } \n\n onInput(event: any): void {\n this.value = (event.target as HTMLInputElement).value;\n this.onChange(this.value);\n }\n}\n","<!-- searchbar -->\n<ng-container *ngTemplateOutlet=\"labelRef\"></ng-container>\n<desy-label *ngIf=\"!labelRef && labelData\"\n [text]=\"labelData.text\"\n [html]=\"labelData.html\"\n [classes]=\"['sr-only', labelData.classes] | makeHtmlList\"\n [isPageHeading]=\"labelData.isPageHeading\"\n [for]=\"id\"\n [role]=\"labelData.role\"\n [ariaLabel]=\"labelData.ariaLabel\"\n [ariaDescribedBy]=\"labelData.ariaDescribedBy\"\n [ariaLabelledBy]=\"labelData.ariaLabelledBy\"\n [ariaHidden]=\"labelData.ariaHidden\"\n [ariaDisabled]=\"labelData.ariaDisabled\"\n [ariaControls]=\"labelData.ariaControls\"\n [ariaCurrent]=\"labelData.ariaCurrent\"\n [ariaLive]=\"labelData.ariaLive\"\n [ariaExpanded]=\"labelData.ariaExpanded\"\n [ariaErrorMessage]=\"labelData.ariaErrorMessage\"\n [ariaHasPopup]=\"labelData.ariaHasPopup\"\n [tabindex]=\"labelData.tabindex\"></desy-label>\n<desy-label *ngIf=\"!labelRef && !labelData && labelText\" [text]=\"labelText\" classes=\"sr-only\" [for]=\"id\"></desy-label>\n <input type=\"search\"\n [class]=\"['c-input block pr-12 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\"\n [ngClass]=\"{'border-alert-base ring-2 ring-alert-base': hasErrorsMessage(),'w-full': !hasButton()}\"\n [value]=\"value\" (input)=\"onInput($event)\"\n [attr.id]=\"id ? id : null\"\n [attr.name]=\"id ? id : null\"\n [attr.aria-describedby]=\"[describedBy, getErrorId()] | makeHtmlList:null\"\n [attr.aria-errormessage]=\"hasErrorsMessage() ? getErrorId() : null\"\n [attr.aria-invalid]=\"hasErrorsMessage() ? true : null\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.placeholder]=\"placeholder ? placeholder : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngIf=\"hasButton(); else defaultButton\">\n <ng-content select=\"desy-button\"></ng-content>\n </ng-container>\n <ng-template #defaultButton>\n <button type=\"submit\" [attr.disabled]=\"disabled ? 'disabled' : null\" [attr.aria-disabled]=\"disabled ? 'true' : null\"\n (click)=\"onClick($event)\"\n [class]=\"['absolute top-0 right-0 m-sm p-0.5 text-primary-base hover:text-primary-dark focus:bg-warning-base focus:outline-none focus:shadow-outline-focus', buttonClasses] | makeHtmlList\">\n <span class=\"sr-only\">Buscar</span>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"1.375em\" height=\"1.375em\" aria-hidden=\"true\"><path d=\"M23.498 23.487a1.713 1.713 0 000-2.421l-4.572-4.575a.43.43 0 01-.062-.539 10.283 10.283 0 10-2.911 2.911.43.43 0 01.539.055l4.574 4.574a1.712 1.712 0 002.433-.005zM3.451 10.289a6.85 6.85 0 116.85 6.85 6.85 6.85 0 01-6.85-6.85z\" fill=\"currentColor\"/></svg>\n </button>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\n<!-- /searchbar -->\n","import {\n Component,\n Input,\n} from '@angular/core';\nimport {ITreeItem} from \"../interfaces/itree-item\";\nimport {ContentBaseComponent} from \"../../../../shared/components\";\n\n@Component({\n selector: 'desy-tree-sub',\n templateUrl: './tree-sub.component.html'\n})\nexport class TreeSubComponent extends ContentBaseComponent {\n\n @Input() classes: string;\n\n itemList: ITreeItem[];\n\n}\n","<ng-template #contentTemplate>\n <ul [class]=\"['c-tree__itemgroup', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n","export class ITreeItem {\n id: string;\n subLevel: number;\n defaultId: string;\n}\n","export class SearchUtils {\n\n /**\n * Comprueba si una cadena de texto (target) contiene cualquier palabra de otro texto (text)\n * @param target - Texto en el que buscar\n * @param text - Texto a buscar\n * @param fullWord - Indica si las palabras del texto a buscar deben aparecer enteras\n */\n public static containsAnyWordFrom(target: string, text: string, fullWord?: boolean): boolean {\n let words: string[] = [];\n let includes = false;\n const simplifiedTarget = this.getSimplifiedString(target);\n\n if (text && text.split(' ').length > 1) {\n words = text.split(' ');\n }\n words.push(text);\n\n words.forEach(word => {\n if (simplifiedTarget && word) {\n if ((fullWord && simplifiedTarget === this.getSimplifiedString(word))\n || (!fullWord && simplifiedTarget.includes(this.getSimplifiedString(word)))) {\n includes = true;\n }\n }\n });\n\n return includes;\n }\n\n /**\n * Convierte a mayúsculas, elimina espacios y reemplaza/elimina caracteres especiales para realizar comparaciones más tolerantes\n * @param str - cadena de entrada\n */\n private static getSimplifiedString(str: string): string {\n let res = str;\n if (str) {\n res = str.toLocaleUpperCase().trim();\n // acentos\n res = res.replace(/Á/g, 'A');\n res = res.replace(/É/g, 'E');\n res = res.replace(/Í/g, 'I');\n res = res.replace(/Ó/g, 'O');\n res = res.replace(/Ú/g, 'U');\n res = res.replace(/À/g, 'A');\n res = res.replace(/È/g, 'E');\n res = res.replace(/Ì/g, 'I');\n res = res.replace(/Ò/g, 'O');\n res = res.replace(/Ù/g, 'U');\n res = res.replace(/Ä/g, 'A');\n res = res.replace(/Ë/g, 'E');\n res = res.replace(/Ï/g, 'I');\n res = res.replace(/Ö/g, 'O');\n res = res.replace(/Ü/g, 'U');\n\n res = res.replace('Á', 'A');\n res = res.replace('É', 'E');\n res = res.replace('Í', 'I');\n res = res.replace('Ó', 'O');\n res = res.replace('Ú', 'U');\n res = res.replace('À', 'A');\n res = res.replace('È', 'E');\n res = res.replace('Ì', 'I');\n res = res.replace('Ò', 'O');\n res = res.replace('Ù', 'U');\n res = res.replace('Ä', 'A');\n res = res.replace('Ë', 'E');\n res = res.replace('Ï', 'I');\n res = res.replace('Ö', 'O');\n res = res.replace('Ü', 'U');\n\n // signos puntuacion\n res = res.replace(',', '');\n res = res.replace('.', '');\n res = res.replace('\\'', '');\n res = res.replace('\"', '');\n res = res.replace(/\\,/g, '');\n res = res.replace(/\\./g, '');\n res = res.replace(/\\'/g, '');\n res = res.replace(/\\\"/g, '');\n }\n\n return res;\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {LabelComponent} from \"../../label/label.component\";\nimport {HintComponent} from \"../../hint/hint.component\";\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\nimport {SearchUtils} from \"../../../../shared/utils/search-utils\";\nimport {AccessibilityComponent} from \"../../../../shared/components\";\n\n@Component({\n selector: 'desy-tree-checkbox',\n templateUrl: './tree-checkbox.component.html'\n})\nexport class TreeCheckboxComponent extends AccessibilityComponent implements OnInit {\n\n @ViewChild('input', { static: true }) inputElement: ElementRef;\n @ViewChild('contentWrapper', { static: true }) contentWrapper: ElementRef;\n\n @DesyOnInputChange('onIdChange')\n @Input() id: string;\n @Input() name: string;\n @Input() type: 'radio'|'checkbox'|null|undefined;\n @Input() classes: string;\n\n @Input() value: any;\n\n @Input() checked: boolean;\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() isIndeterminate: boolean;\n\n @DesyOnInputChange('setIndeterminateStatus')\n @Input() indeterminateChecked: boolean;\n @Output() indeterminateCheckedChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() disabled: boolean;\n @Input() hasDividers: boolean;\n\n @DesyOnInputChange('onDescribedByChange')\n @Input() describedBy: string;\n @Input() hasError = false;\n\n @DesyOnInputChange('overrideLabelParams')\n @Input() labelComponent: LabelComponent;\n\n @DesyOnInputChange('overrideHintParams')\n @Input() hintComponent: HintComponent;\n\n itemDescribedBy: string;\n\n private _lastIndeterminate;\n private _hasInit = false;\n\n constructor(private changeDetector: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this._hasInit = true;\n this.onDescribedByChange();\n }\n\n detectChanges(): void {\n this.changeDetector.detectChanges();\n }\n\n hasChanged(): void {\n if (this._hasInit) {\n\n const input = this.inputElement.nativeElement;\n\n // Se establece el cambio a visualizar en el input\n if (this.isIndeterminate) {\n if (input.readOnly) {\n input.checked = false;\n input.readOnly = false;\n } else if (!input.checked) {\n input.readOnly = true;\n input.indeterminate = true;\n }\n }\n\n this.setIndeterminateChecked(input.indeterminate);\n this.checkedChange.emit(input.checked);\n }\n }\n\n onIdChange(): void {\n this.overrideLabelParams();\n this.overrideHintParams();\n }\n\n setIndeterminateStatus(): void {\n const input = this.inputElement?.nativeElement;\n if (input) {\n if (this.indeterminateChecked) {\n input.readOnly = true;\n input.indeterminate = true;\n } else if (input.readOnly) {\n input.readOnly = false;\n input.indeterminate = false;\n }\n }\n }\n\n setIndeterminateChecked(indeterminateChecked: boolean): void {\n this.indeterminateChecked = indeterminateChecked;\n this._lastIndeterminate = indeterminateChecked;\n this.indeterminateCheckedChange.emit(indeterminateChecked);\n this.changeDetector.detectChanges(); // Avisa al elemento input para que actualice su estado\n }\n\n focus(): void {\n this.inputElement.nativeElement.focus();\n }\n\n matchesText(value: string): boolean {\n const checkboxText = this.contentWrapper.nativeElement.textContent;\n return SearchUtils.containsAnyWordFrom(checkboxText, value);\n }\n\n preventDefault(event: Event): void {\n event.preventDefault();\n }\n\n getHintId(): string {\n return this.hintComponent ? this.hintComponent.id : '';\n }\n\n overrideLabelParams(): void {\n if (this.labelComponent) {\n this.labelComponent.for = this.id + '-input';\n if (!this.labelComponent.classes) {\n this.labelComponent.classes = 'block relative -top-xs -left-8 pl-8 py-xs';\n }\n this.labelComponent.detectChanges();\n }\n }\n\n overrideHintParams(): void {\n if (this.hintComponent) {\n if (!this.hintComponent.id) {\n this.hintComponent.id = this.id + '-item-hint';\n }\n this.hintComponent.detectChanges();\n }\n this.onDescribedByChange();\n }\n\n getItemDescribedBy(): string {\n return (this.describedBy ? this.describedBy : '') + ' ' + this.getHintId();\n }\n\n onDescribedByChange(): void {\n if (this.ariaDescribedBy) {\n this.itemDescribedBy = this.ariaDescribedBy;\n } else {\n this.itemDescribedBy = this.getItemDescribedBy();\n }\n }\n\n}\n","<div [class]=\"classes\" [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers}\">\n <div class=\"relative flex items-start py-xs\">\n <div class=\"flex items-center mx-sm\">\n <input #input 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-base disabled:border-neutral-base text-primary-base\"\n [id]=\"id + '-input'\"\n [name]=\"name\"\n [type]=\"type === 'checkbox' ? 'checkbox' : 'radio'\"\n [value]=\"value\"\n [checked]=\"checked\"\n (change)=\"hasChanged()\"\n [disabled]=\"disabled ? disabled : null\"\n [attr.aria-invalid]=\"hasError ? 'true' : null\"\n\n [attr.role]=\"role ? role : 'group'\"\n [attr.aria-describedby]=\"itemDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\"\n\n (keydown.home)=\"preventDefault($event)\"\n (keydown.end)=\"preventDefault($event)\"\n (keydown.arrowup)=\"preventDefault($event)\"\n (keydown.arrowdown)=\"preventDefault($event)\"\n (keydown.arrowright)=\"preventDefault($event)\"\n (keydown.arrowleft)=\"preventDefault($event)\">\n </div>\n <div #contentWrapper class=\"flex-1 pt-0.5 leading-5\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectorRef,\n Component,\n ContentChildren, ElementRef,\n EventEmitter,\n forwardRef, HostBinding,\n Input,\n OnChanges,\n Output, SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport {DesyContentChild} from \"../../../../shared/decorators/desy-content-child.decorator\";\nimport {TreeSubComponent} from \"../tree-sub/tree-sub.component\";\nimport {ITreeItem} from \"../interfaces/itree-item\";\nimport {HintComponent} from \"../../hint/hint.component\";\nimport {LabelComponent} from \"../../label/label.component\";\nimport {QuitTreeItemFocusOptions} from \"../interfaces/quit-tree-item-focus-options\";\nimport {TreeCheckboxComponent} from \"../tree-checkbox/tree-checkbox.component\";\nimport {AccessibilityComponent} from \"../../../../shared/components\";\nimport {DesyOnInputChange} from \"../../../../shared/decorators/desy-on-input-change.decorator\";\nimport {SearchUtils} from \"../../../../shared/utils/search-utils\";\n\n@Component({\n selector: 'desy-tree-item',\n templateUrl: './tree-item.component.html',\n providers: [\n {\n provide: ITreeItem,\n useExisting: forwardRef(() => TreeItemComponent)\n }\n ]\n})\nexport class TreeItemComponent extends AccessibilityComponent implements OnChanges, ITreeItem {\n\n private static _treeItemKeySuffix = 0; // Sufijo estático para generar siempre claves distintas\n @ViewChild('hiddenWrapper') hiddenWrapper: ElementRef;\n\n @DesyOnInputChange('setDefaultIdRecursive')\n @Input() id: string;\n @Input() name: string;\n @Input() value: string;\n @Input() classes: string;\n @Input() active: boolean;\n @Input() disabled: boolean;\n @Input() title: string;\n @Input() hasDividers: boolean;\n @Input() isIndeterminate: boolean;\n\n @Input() checked: boolean;\n @Output() checkedChange: EventEmitter<any> = new EventEmitter<any>();\n checkedChangeForTree: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() expanded: boolean;\n @Output() expandedChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Input() indeterminateChecked: boolean;\n @Output() indeterminateCheckedChange: EventEmitter<any> = new EventEmitter<any>();\n\n @DesyContentChild({ onSetCallbackName: 'overrideSubValues'})\n @ContentChildren(TreeSubComponent) sub: TreeSubComponent;\n\n @DesyContentChild()\n @ContentChildren(HintComponent) hint: HintComponent;\n\n @DesyContentChild()\n @ContentChildren(LabelComponent) label: LabelComponent;\n\n @ViewChild(TreeCheckboxComponent) checkbox: TreeCheckboxComponent;\n\n /*\n * Identificador del wrapper del componente. Se utiliza para recorrer el árbol en sentido inverso y que cada item\n * sepa cuál es su item/árbol padre.\n * Esto es necesario ya que, a la hora de construir un árbol dinámico con templates,\n * el decorador @ContentChildren no funciona correctamente y no los detecta.\n * Dejo el enlace de un problema similar: https://github.com/angular/angular/issues/21751\n */\n @HostBinding('attr.desy-tree-item-key')\n readonly treeItemKey: string = TreeItemComponent.generateStaticItemKey();\n\n type: 'radio'|'checkbox'|null|undefined;\n subLevel: number; // Nivel dentro del arbol. 0 son los items a nivel de raiz.\n\n // Propiedades definidas por el componente árbol que el item puede utilizar, sobrescribir o ampliar\n parentName: string;\n defaultId;\n inheritedExpandedFirstLevel: boolean;\n inheritedDecoupleChildFromParent: boolean;\n inheritedDescribedBy: string;\n inheritedHasError: boolean;\n allParentsExpanded = true; // True si el elemento es visible según los elementos expandidos\n inheritedMatchesSearch = true; // True si el elemento es visible según los criterios de búsqueda\n orderInTree: number;\n\n // Evento para emitir al componente arbol cuando se pretende abandonar el foco del item\n quitFocus: EventEmitter<QuitTreeItemFocusOptions> = new EventEmitter<QuitTreeItemFocusOptions>();\n\n isFocus = false;\n isHover = false;\n private _matchesValidText = false; // True si el contenido del item encaja con los criterios de búsqueda y se está filtrando\n\n constructor(private changeDetector: ChangeDetectorRef, private element: ElementRef) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.sub && this.sub.itemList) {\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(this.allParentsExpanded && this.expanded));\n }\n\n for (const propName in changes) {\n if (changes.hasOwnProperty(propName)) {\n switch (propName) {\n case 'checked': {\n // Reasignamos el valor de checked cuando detectamos el cambio en la entrada\n setTimeout(() => {\n this.setChecked(this.checked, false, false);\n if (this.inheritedExpandedFirstLevel && this.checked && !this.expanded) {\n this.expandSub(true);\n }\n });\n break;\n }\n }\n }\n }\n }\n\n /*\n * Métodos expuestos que permiten configurar al ítem de forma externa\n */\n\n focus(): void {\n this.checkbox?.focus();\n this.handleItemFocus(true);\n }\n\n setCheckedAutomaticallyDependingOnChildren(): void {\n if (this.sub) {\n this.sub.itemList.forEach(item => (item as TreeItemComponent).setCheckedAutomaticallyDependingOnChildren());\n if (this.areAllChildrenChecked()) {\n if (this.indeterminateChecked) {\n this.setIndeterminateChecked(false);\n }\n\n if (!this.checked) {\n this.setChecked(true, true);\n }\n } else if (this.hasChildrenCheckedOrIndeterminate()) {\n if (!this.indeterminateChecked) {\n this.setIndeterminateChecked(true);\n }\n\n if (this.checked) {\n this.setChecked(false, true);\n }\n } else {\n if (this.indeterminateChecked) {\n this.setIndeterminateChecked(false);\n }\n\n if (this.checked) {\n this.setChecked(false, true);\n }\n }\n }\n }\n\n refreshAllParentsExpandedRecursive(value): void {\n this.allParentsExpanded = value;\n if (this.sub) {\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(value && this.expanded));\n }\n }\n\n detectChanges(): void {\n this.changeDetector.detectChanges();\n }\n\n expandSub(value: boolean): void {\n this.expanded = value;\n if (this.sub) {\n this.sub.itemList.forEach(item => (item as TreeItemComponent).refreshAllParentsExpandedRecursive(this.allParentsExpanded && value));\n }\n this.expandedChange.emit(value);\n }\n\n /*\n * Gestion de eventos\n */\n\n handleCheckboxChange(checked: boolean): void {\n this.setChecked(checked, false);\n if (this.inheritedExpandedFirstLevel && checked && !this.expanded) {\n this.expandSub(true);\n }\n }\n\n handleIndeterminateCheckedChange(indeterminate: boolean): void {\n this.indeterminateCheckedChange.emit(indeterminate);\n }\n\n handleItemFocus(value, condition=true): void {\n if (condition) {\n this.isFocus = value;\n }\n }\n\n handleItemHover(value, condition=true): void {\n if (condition) {\n this.isHover = value;\n }\n }\n\n handleArrowUp(event: Event, condition=true): void {\n if (condition) {\n event.preventDefault();\n this.quitFocus.emit({\n nextElement: 'previous',\n currentItem: this\n });\n }\n }\n\n handleHome(event: Event, condition=true): void {\n if (condition) {\n event.preventDefault();\n this.quitFocus.emit({\n nextElement: 'first',\n currentItem: this\n });\n }\n }\n\n handleEnd(event: Event, condition=true): void {\n if (condition) {\n event.preventDefault();\n this.quitFocus.emit({\n nextElement: 'last',\n currentItem: this\n });\n }\n }\n\n handleArrowDown(event: Event, condition=true): void {\n if (condition) {\n event.preventDefault();\n this.quitFocus.emit({\n nextElement: 'next',\n currentItem: this\n });\n }\n }\n\n handleArrowRight(event: Event, condition=true): void {\n if (condition && this.sub && this.sub.itemList?.length > 0) {\n event.preventDefault();\n if (this.expanded) {\n this.quitFocus.emit({\n nextElement: 'firstChild',\n currentItem: this\n });\n } else {\n this.expandSub(true);\n }\n }\n }\n\n handleArrowLeft(event: Event, condition=true): void {\n if (condition) {\n event.preventDefault();\n if (this.expanded) {\n this.expandSub(false);\n } else if (this.subLevel > 0) {\n this.quitFocus.emit({\n nextElement: 'parent',\n currentItem: this\n });\n }\n }\n }\n\n\n /*\n * Setters and getters\n */\n\n setChecked(checked: boolean, ignoreInTree: boolean, emitEvent = true): void {\n if (!this.disabled) {\n this.checked = checked;\n }\n\n if (!this.inheritedDecoupleChildFromParent && this.sub && this.sub.itemList && !this.indeterminateChecked) {\n this.sub.itemList.forEach(item => {\n (item as TreeItemComponent).setIndeterminateChecked(false);\n (item as TreeItemComponent).setChecked(checked, true)\n });\n }\n\n if (emitEvent) {\n this.checkedChange.emit(checked);\n }\n\n if (!ignoreInTree) {\n this.checkedChangeForTree.emit(checked);\n }\n }\n\n setIndeterminateChecked(indeterminate: boolean): void {\n if (!this.disabled) {\n this.indeterminateChecked = indeterminate;\n this.indeterminateCheckedChange.emit(indeterminate);\n }\n }\n\n setSubLevel(subLevel: number): void {\n this.subLevel = subLevel;\n if (this.sub && this.sub.itemList) {\n this.sub.itemList.forEach(item => (item as TreeItemComponent).setSubLevel(subLevel + 1));\n }\n }\n\n setOrderRecursively(order: number): number {\n this.orderInTree = order;\n let newOrder = order + 1;\n if (this.sub && this.sub.itemList) {\n this.sub.itemList.forEach(item => {\n newOrder = (item as TreeItemComponent).setOrderRecursively(newOrder);\n });\n }\n return newOrder;\n }\n\n setDefaultId(defaultId: string): void {\n this.defaultId = defaultId;\n this.setDefaultIdRecursive();\n }\n\n setDefaultIdRecursive(): void {\n if (this.sub && this.sub.itemList) {\n this.sub.itemList.forEach((item, index) => {\n (item as TreeItemComponent).setDefaultId(`sub-${this.getId()}-${index}`);\n });\n }\n }\n\n getId(): string {\n return this.id ? this.id : this.defaultId;\n }\n\n isHidden(): boolean {\n return !this.inheritedMatchesSearch && (!this.sub || this.areAllChildrenHidden());\n }\n\n areAllChildrenHidden(): boolean {\n const children = this.sub.itemList;\n return children.findIndex(child => !(child as TreeItemComponent).isHidden()) < 0;\n }\n\n areAllChildrenChecked(): boolean {\n const children = this.sub.itemList;\n return children.findIndex(child => !(child as TreeItemComponent).checked) < 0;\n }\n\n hasChildrenCheckedOrIndeterminate(): boolean {\n const children = this.sub.itemList;\n return children.findIndex(child => (child as TreeItemComponent).checked || (child as TreeItemComponent).indeterminateChecked) >= 0;\n }\n\n matchesText(value: string): boolean {\n let matches: boolean;\n if (this.allParentsExpanded && !this.isHidden()) {\n matches = this.checkbox?.matchesText(value);\n } else {\n const itemText = this.hiddenWrapper.nativeElement.textContent;\n matches = SearchUtils.containsAnyWordFrom(itemText, value);\n }\n this._matchesValidText = value ? matches : false;\n return matches;\n }\n\n getKey(): string {\n return this.treeItemKey;\n }\n\n getParentKey(): string {\n let parentKey: string;\n let parentElement = this.element.nativeElement.parentElement;\n while (parentElement && parentElement.tagName !== 'BODY' && parentElement.tagName !== 'DESY-TREE-ITEM' && parentElement.tagName !== 'DESY-TREE') {\n parentElement = parentElement.parentElement;\n }\n\n if (parentElement.tagName === 'BODY') {\n throw new Error('Parent for tree-item not found');\n }\n\n if (parentElement.tagName === 'DESY-TREE') {\n parentKey = 'root';\n }\n\n if (parentElement.tagName === 'DESY-TREE-ITEM') {\n parentKey = parentElement.getAttribute('desy-tree-item-key');\n }\n\n return parentKey;\n }\n\n isActive(): boolean {\n return this.active || this._matchesValidText;\n }\n\n /*\n * Métodos privados\n */\n\n /**\n * Genera una clave única para el componente\n * @private\n */\n private static generateStaticItemKey(): string {\n const key = 'tree-item-key-' + TreeItemComponent._treeItemKeySuffix;\n TreeItemComponent._treeItemKeySuffix++;\n return key;\n }\n}\n","<li *ngIf=\"allParentsExpanded && !isHidden(); else hidden\"\n [id]=\"id\"\n [class]=\"'c-tree__item focus:outline-none'\"\n [ngClass]=\"{\n 'ml-4': subLevel === 0,\n 'ml-8': subLevel !== 0,\n 'c-tree__item--focus': isFocus && !sub,\n 'c-tree__item--hover': isHover && !sub\n }\"\n (focusin)=\"handleItemFocus(true, !sub)\"\n (focusout)=\"handleItemFocus(false, !sub)\"\n (mouseover)=\"handleItemHover(true, !sub)\"\n (mouseout)=\"handleItemHover(false, !sub)\"\n (keydown.home)=\"handleHome($event, !sub)\"\n (keydown.end)=\"handleEnd($event, !sub)\"\n (keydown.arrowup)=\"handleArrowUp($event, !sub)\"\n (keydown.arrowdown)=\"handleArrowDown($event, !sub)\"\n (keydown.arrowright)=\"handleArrowRight($event, !sub)\"\n (keydown.arrowleft)=\"handleArrowLeft($event, !sub)\"\n role=\"treeitem\"\n [attr.aria-expanded]=\"sub ? (expanded ? 'true' : 'false') : null\"\n [attr.aria-current]=\"isActive() && subLevel === 0 ? 'page' : null\">\n <div *ngIf=\"!sub && subLevel !== 0; else childrenTree\"\n [id]=\"id\"\n [class]=\"['block', classes] | makeHtmlList\"\n [attr.title]=\"title ? title : null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n\n [attr.role]=\"role ? role : 'tree'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : (disabled ? 'true' : null)\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : (isActive() ? 'page' : null)\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : (disabled ? '-1' : null)\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </div>\n</li>\n\n<ng-template #childrenTree>\n <div *ngIf=\"sub; else checkbox\" class=\"w-full h-full\"\n [ngClass]=\"{'c-tree__item--focus': isFocus && sub, 'c-tree__item--hover': isHover && sub}\"\n (focusin)=\"handleItemFocus(true)\"\n (focusout)=\"handleItemFocus(false)\"\n (mouseover)=\"handleItemHover(true)\"\n (mouseout)=\"handleItemHover(false)\"\n (keydown.home)=\"handleHome($event)\"\n (keydown.end)=\"handleEnd($event)\"\n (keydown.arrowup)=\"handleArrowUp($event)\"\n (keydown.arrowdown)=\"handleArrowDown($event)\"\n (keydown.arrowright)=\"handleArrowRight($event)\"\n (keydown.arrowLeft)=\"handleArrowLeft($event)\">\n <div [class]=\"['w-full flex items-center relative focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black text-left', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <span class=\"absolute top-3 -left-4 flex items-center w-4 h-2.5 text-primary-base font-bold\">\n <svg (click)=\"expandSub(false)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__minus\"><path fill=\"currentColor\" d=\"M9.286 5.714H.714a.714.714 0 010-1.428h8.572a.714.714 0 010 1.428z\"/></svg>\n <svg (click)=\"expandSub(true)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__plus\"><path fill=\"currentColor\" d=\"M9.286 4.286H5.893a.179.179 0 01-.179-.179V.714a.714.714 0 00-1.428 0v3.393a.179.179 0 01-.179.179H.714a.714.714 0 000 1.428h3.393a.179.179 0 01.179.179v3.393a.714.714 0 001.428 0V5.893a.179.179 0 01.179-.179h3.393a.714.714 0 000-1.428z\"/></svg>\n </span>\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </div>\n </div>\n\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\n</ng-template>\n\n<!-- Se incorpora el contenido mínimo para funcionar con el objetivo de mejorar el rendimiento -->\n<ng-template #hidden>\n <li class=\"hidden\">\n <div #hiddenWrapper>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\n </li>\n</ng-template>\n\n<ng-template #checkbox>\n <!--\n El *ngIf=\"name || parentName\" se realiza para no crear el checkbox hasta que se ha ejecutado el configureAllItems.\n Esto puede dar problemas porque, hasta que no se ejecuta esto, el desy-tree-checkbox no cuenta con el type actualizado (por defecto radio).\n Un ejemplo en el que esto puede ser problemático es al ser typo checkbox y darle un valor checked=true a varios los items, ya\n que el type todavía no se ha transmitido aquí. Como por defecto el type es radio, sólo marcará el último. Posteriormente,\n ya detectará el tipo y permitirá seleccionar varios items, pero hasta entonces existe este problema.\n -->\n <desy-tree-checkbox *ngIf=\"name || parentName\"\n [name]=\"name ? name : parentName\"\n [id]=\"getId()\"\n [value]=\"value\"\n [classes]=\"classes\"\n [type]=\"type\"\n [(checked)]=\"checked\" (checkedChange)=\"handleCheckboxChange($event)\"\n [hasError]=\"inheritedHasError\"\n [disabled]=\"disabled\"\n [hasDividers]=\"hasDividers\"\n [describedBy]=\"[inheritedDescribedBy, hint?.id] | makeHtmlList\"\n [isIndeterminate]=\"isIndeterminate\"\n [(indeterminateChecked)]=\"indeterminateChecked\"\n (indeterminateCheckedChange)=\"handleIndeterminateCheckedChange($event)\"\n\n [labelComponent]=\"label\"\n [hintComponent]=\"hint\"\n\n [role]=\"role\"\n [ariaLabel]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaHidden]=\"ariaHidden\"\n [ariaDisabled]=\"ariaDisabled\"\n [ariaControls]=\"ariaControls\"\n [ariaCurrent]=\"ariaCurrent\"\n [ariaLive]=\"ariaLive\"\n [ariaExpanded]=\"ariaExpanded\"\n [ariaErrorMessage]=\"ariaErrorMessage\"\n [ariaHasPopup]=\"ariaHasPopup\"\n [ariaModal]=\"ariaModal\"\n [tabindex]=\"tabindex\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </desy-tree-checkbox>\n</ng-template>\n\n<ng-template #content>\n <div class=\"font-bold\" *ngIf=\"isActive(); else contentLabel\">\n <ng-container *ngTemplateOutlet=\"contentLabel\"></ng-container>\n </div>\n <ng-content select=\"desy-hint\"></ng-content>\n</ng-template>\n\n<ng-template #contentLabel>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n","import {\n ChangeDetectorRef,\n Component,\n ContentChildren, EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output, QueryList,\n SimpleChanges, TemplateRef, ViewChild\n} from '@angular/core';\nimport {DesyContentChild} from \"../../../shared/decorators/desy-content-child.decorator\";\nimport {TreeItemComponent} from \"./tree-item/tree-item.component\";\nimport {DesyOnInputChange} from \"../../../shared/decorators/desy-on-input-change.decorator\";\nimport {NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {FormFieldComponent} from \"../form-field/form-field.component\";\nimport {Subscription} from \"rxjs\";\nimport {FieldsetComponent} from \"../fieldset/fieldset.component\";\nimport {QuitTreeItemFocusOptions} from \"./interfaces/quit-tree-item-focus-options\";\nimport {SearchBarComponent} from \"../search-bar/search-bar.component\";\n\n@Component({\n selector: 'desy-tree',\n templateUrl: './tree.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TreeComponent),\n multi: true\n }\n ]\n})\nexport class TreeComponent extends FormFieldComponent<any[]> implements OnChanges, OnDestroy {\n\n @Input() idPrefix: string;\n @Input() classes: string;\n @Input() name: string;\n @Input() type: 'radio'|'checkbox'|null|undefined;\n @Input() describedBy: string;\n\n @Input() formGroupClasses: any;\n\n @Input() expandedFirstLevel = true;\n @Input() decoupleChildFromParent = false;\n\n @Input() disableDefaultSearch = false;\n\n @DesyOnInputChange('onSearchMatchValuesChange')\n @Input() searchMatchValues: string[];\n @Output() searchMatchValuesChange: EventEmitter<string[]> = new EventEmitter<string[]>();\n\n @DesyOnInputChange('configureAllItems')\n @ContentChildren(TreeItemComponent, { descendants: true }) allItems: QueryList<TreeItemComponent>;\n\n @DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams'})\n @ContentChildren(FieldsetComponent) fieldsetComponent: FieldsetComponent;\n\n @DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams'})\n @ContentChildren(SearchBarComponent) searchBarComponent: SearchBarComponent;\n\n @ViewChild('innerHtml', { static: true }) innerHtml: TemplateRef<any>;\n\n private rootItems: TreeItemComponent[] = [];\n private _itemListSubscription: Subscription;\n private _allItemListSubscription: Subscription;\n private _itemListCheckedSubscriptions: Subscription[] = [];\n private _itemListQuitFocusSubscriptions: Subscription[] = [];\n private _alreadyConfiguringItems = false;\n\n constructor(private changeDetector: ChangeDetectorRef) {\n super();\n }\n\n ngOnDestroy(): void {\n this.clearSubscriptions(this._itemListCheckedSubscriptions);\n this.clearSubscriptions(this._itemListQuitFocusSubscriptions);\n this._itemListSubscription?.unsubscribe();\n this._allItemListSubscription?.unsubscribe();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.configureAllItems();\n }\n\n /**\n * Se sobrescribe el valor para actualizar los items\n * @Override\n */\n writeValue(value: any): void {\n this.value = value;\n this.configureAllItems(true);\n this.onChange(this.value);\n }\n\n /*\n * Eventos\n */\n\n /**\n * Actualiza el valor del componente al checkquearse un ítem\n * @param originItem ítem modificado\n */\n updateValueFromItems(originItem?: TreeItemComponent): void {\n\n // Si es radio, se desactivan el resto de items cuando se activa otro item\n if (this.type !== 'checkbox') {\n const items = this.getAllItemsInOrder();\n items.forEach(item => {\n if (item !== originItem && item.checked) {\n item.setChecked(false, true);\n }\n });\n } else if (!this.decoupleChildFromParent) {\n this.rootItems.forEach(item => item.setCheckedAutomaticallyDependingOnChildren());\n }\n\n this.value = [];\n const items = this.getAllItemsInOrder();\n items.forEach(item => {\n if (item.checked) {\n this.value.push(item.value);\n }\n });\n this.onChange(this.value);\n }\n\n /**\n * Gestiona cuando el foco abandona un ítem desde un evento de teclado controlado\n * @param options\n */\n handleItemQuitFocus(options: QuitTreeItemFocusOptions): void {\n if (options && options.nextElement) {\n const items = this.getAllItemsInOrder();\n const focusableItems = items.filter(item => !item.isHidden() && !item.disabled && item.allParentsExpanded);\n switch (options.nextElement) {\n case \"first\":\n focusableItems[0].focus();\n break;\n case \"last\":\n focusableItems[focusableItems.length - 1].focus();\n break;\n case \"parent\":\n const currentSubLevel = options.currentItem.subLevel;\n if (currentSubLevel > 0) {\n const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\n const parent = focusableItems.slice(0, currentItemIndex).reverse().find(item => item.subLevel < currentSubLevel);\n if (parent) {\n parent.focus();\n }\n }\n break;\n case \"firstChild\":\n case \"next\":\n if (options.currentItem) {\n let currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\n if (currentItemIndex < focusableItems.length - 1) {\n focusableItems[currentItemIndex + 1].focus();\n }\n }\n break;\n case \"previous\":\n if (options.currentItem) {\n const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);\n if (currentItemIndex > 0) {\n focusableItems[currentItemIndex - 1].focus();\n }\n }\n break;\n }\n }\n }\n\n /**\n * Realiza la búsqueda interna de los items en el componente\n * @param value texto de búsqueda\n */\n onSearch(value: string): void {\n if (!this.disableDefaultSearch) {\n if (value && value.length > 0) {\n this.searchMatchValues = this.allItems.filter(item => item.matchesText(value)).map(item => item.value);\n } else {\n this.searchMatchValues = null;\n }\n this.searchMatchValuesChange.emit(this.searchMatchValues);\n }\n }\n\n /*\n * Eventos al cambiar propiedades\n */\n\n /**\n * Configura los items del árbol\n */\n configureAllItems(isValueChange = false): void {\n\n if (!this._alreadyConfiguringItems) {\n this._alreadyConfiguringItems = true;\n\n // Lo realizamos desde un setTimeout para que todos los inputs, values y demás vivan en paz y armonía\n setTimeout(() => {\n if (this.allItems?.length > 0) {\n this.clearSubscriptions(this._itemListCheckedSubscriptions);\n this.clearSubscriptions(this._itemListQuitFocusSubscriptions);\n this.allItems.forEach(item => {\n item.parentName = this.name;\n item.type = this.type;\n item.inheritedDescribedBy = this.getDescribedByForItems();\n item.inheritedExpandedFirstLevel = this.expandedFirstLevel;\n item.inheritedDecoupleChildFromParent = this.decoupleChildFromParent;\n if ((this.value && this.value.length > 0) || isValueChange) {\n const valueList = this.value ? this.value : [];\n item.setChecked(!!valueList.find(v => v === item.value), true);\n }\n item.detectChanges();\n\n const checkedSubscription = item.checkedChangeForTree.subscribe(() => this.updateValueFromItems(item));\n this._itemListCheckedSubscriptions.push(checkedSubscription);\n\n const quitFocusSubscription = item.quitFocus.subscribe(options => this.handleItemQuitFocus(options));\n this._itemListQuitFocusSubscriptions.push(quitFocusSubscription);\n });\n\n this.setErrorInItems(this.hasErrorMessageComponent());\n\n this.buildTree();\n if (!this.value) {\n this.updateValueFromItems();\n }\n\n if (this.searchMatchValues) {\n this.onSearchMatchValuesChange();\n }\n }\n\n if (this.allItems && !this._allItemListSubscription) {\n this._allItemListSubscription = this.allItems.changes.subscribe(() => this.configureAllItems());\n }\n\n this.changeDetector.detectChanges();\n this._alreadyConfiguringItems = false;\n });\n }\n }\n\n /**\n * Modifica los items visibles según el filtro de búsqueda\n */\n onSearchMatchValuesChange(): void {\n if (this.allItems) {\n this.allItems.forEach(item => {\n item.inheritedMatchesSearch = true;\n });\n\n if (this.searchMatchValues !== null && this.searchMatchValues !== undefined) {\n this.allItems.forEach(item => {\n if (this.searchMatchValues.findIndex(value => item.value === value) < 0) {\n item.inheritedMatchesSearch = false;\n }\n })\n }\n }\n }\n\n /*\n * Getters and setters\n */\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : this.name;\n }\n\n getDescribedBy(): string {\n let describedBy = '';\n if (this.describedBy) {\n describedBy = this.describedBy;\n }\n\n if (this.hasHintComponent() && this.hintComponent.id) {\n describedBy = describedBy + ' ' + this.hintComponent.id;\n }\n\n if (this.hasErrorMessageComponent() && this.errorMessageComponent.id) {\n describedBy = describedBy + ' ' + this.errorMessageComponent.id;\n }\n\n return describedBy;\n }\n\n /**\n * Devuelve el valor de describedBy que se transmitirá a los items\n */\n getDescribedByForItems(): string {\n let describedBy;\n if (this.hasFieldsetComponent()) {\n describedBy = this.fieldsetComponent.describedBy;\n } else {\n describedBy = this.getDescribedBy();\n }\n\n return describedBy;\n }\n\n hasFieldsetComponent(): boolean {\n return !!this.fieldsetComponent;\n }\n\n /**\n * Overrides super.getHintId();\n */\n getHintId(): string {\n return this.idPrefix ? this.idPrefix + '-hint' : this.hintComponent?.id;\n }\n\n /**\n * Overrides super.getHintId();\n */\n getErrorId(): string {\n return this.idPrefix ? this.idPrefix + '-error' : this.errorMessageComponent?.id;\n }\n\n /*\n * Funciones para reemplazar el contenido del fieldset, label, hint o errormessage\n */\n\n overrideFieldsetParams(fieldset: FieldsetComponent): void {\n fieldset.caller = this.innerHtml;\n fieldset.errorId = this.getErrorId();\n fieldset.describedBy = this.getDescribedBy();\n fieldset.detectChanges();\n }\n\n overrideSearchBarParams(searchbar: SearchBarComponent): void {\n const defaultOnChange = searchbar.onChange;\n const newOnChange = value => {\n this.onSearch(value);\n defaultOnChange(value);\n }\n searchbar.registerOnChange(newOnChange);\n }\n\n /**\n * Se llama desde FormField\n */\n overrideHintParams(hint): void {\n hint.id = this.getHintId();\n hint.detectChanges();\n }\n\n /**\n * Se llama desde FormField\n */\n overrideErrorMessageParams(errorMessage): void {\n errorMessage.id = this.getErrorId();\n this.setErrorInItems(this.hasErrorMessageComponent());\n errorMessage.detectChanges();\n }\n\n /**\n * Se llama desde FormField\n */\n onDeleteErrorMessage(errorMessage): void {\n this.setErrorInItems(this.hasErrorMessageComponent());\n }\n\n /*\n * Métodos privados\n */\n\n /**\n * Configura la estructura del árbol\n * @private\n */\n private buildTree(): void {\n\n // Se crea un mapa para tener accesibles los items por key y se borran los listados existentes\n const itemMap = {}\n this.rootItems = [];\n this.allItems.forEach(item => {\n const key = item.getKey();\n itemMap[key] = item;\n if (item.sub) {\n item.sub.itemList = [];\n }\n });\n\n // Se añaden los items a los listados correspondientes\n this.allItems.forEach(item => {\n const parentKey = item.getParentKey();\n if (parentKey === 'root') {\n this.rootItems.push(item);\n } else if (parentKey) {\n const sub = itemMap[parentKey].sub;\n if (sub) {\n sub.itemList.push(item);\n }\n }\n });\n\n // Se configuran los items desde root\n let order = 0;\n this.rootItems.forEach((item, index) => {\n item.setSubLevel(0);\n item.setDefaultId(`${this.idPrefix}-${index}`);\n item.refreshAllParentsExpandedRecursive(true);\n if (!this.decoupleChildFromParent) {\n item.setCheckedAutomaticallyDependingOnChildren();\n }\n order = item.setOrderRecursively(order);\n });\n }\n\n /**\n * Si tiene un mensaje de error, se indica a los items\n * @param hasError\n * @private\n */\n private setErrorInItems(hasError: boolean): void {\n if (this.allItems?.length > 0) {\n this.allItems.forEach(item => {\n item.inheritedHasError = hasError;\n item.detectChanges();\n });\n }\n }\n\n /**\n * Limpia un listado de subscripciones\n * @param subscriptionList\n * @private\n */\n private clearSubscriptions(subscriptionList: Subscription[]): void {\n if (subscriptionList.length > 0) {\n subscriptionList.forEach(s => s.unsubscribe());\n subscriptionList.splice(0, subscriptionList.length)\n }\n }\n\n /**\n * Devuelve los items del árbol ordenados\n * @private\n */\n private getAllItemsInOrder(): TreeItemComponent[] {\n let list = [];\n if (this.allItems) {\n list = this.allItems.toArray().sort((a, b) => a.orderInTree > b.orderInTree ? 1 : -1)\n }\n return list\n }\n}\n","\n<ng-template #innerHtml>\n <ng-content select=\"desy-hint\"></ng-content>\n <ng-content select=\"desy-error-message\"></ng-content>\n <ng-content select=\"desy-search-bar\"></ng-content>\n <ul [class]=\"['c-tree', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : 'tree'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<!-- tree -->\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n</div>","import { Directive, Input, OnChanges, TemplateRef } from '@angular/core';\nimport { ItemCheckboxData, ItemRadioWithTemplateData } from '../interfaces';\n\n@Directive({\n selector: '[desyCondition]'\n})\nexport class ConditionDirective implements OnChanges {\n\n /**\n * Condition, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir objeto ItemCheckboxData o ItemRadioWithTemplateData (interfaces expuesta)\n * 2) incluir value y el listado de ItemCheckboxData[] o ItemRadioWithTemplateData[]\n */\n @Input() item: ItemCheckboxData|ItemRadioWithTemplateData;\n\n @Input() value: any;\n @Input() items: ItemCheckboxData[]|ItemRadioWithTemplateData[];\n\n constructor(public templateRef: TemplateRef<any>) {}\n\n ngOnChanges(): void {\n if (this.item) {\n this.item.conditionalHtml = this.templateRef;\n } else if (this.value && this.items) {\n for (const item of this.items) {\n if (item.value === this.value) {\n item.conditionalHtml = this.templateRef;\n }\n }\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {TreeItemComponent} from \"../tree-item/tree-item.component\";\n\n@Component({\n selector: 'desy-tree-items-generator',\n templateUrl: './tree-items-generator.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TreeItemsGeneratorComponent implements OnInit {\n\n @ViewChild('content', { static: true }) content: TemplateRef<any>;\n\n @Input() items: any[];\n @Input() itemTemplate: TemplateRef<TreeItemComponent>;\n\n constructor(private viewContainerRef: ViewContainerRef) { }\n\n ngOnInit(): void {\n this.viewContainerRef.createEmbeddedView(this.content);\n }\n\n}\n","<ng-template #content>\n <ng-container *ngIf=\"items && itemTemplate\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: {item: item}\"></ng-container>\n </ng-container>\n </ng-container>\n</ng-template>\n","import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {ModalButtonData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-modal-button-primary',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ModalButtonPrimaryComponent extends ButtonComponent implements ModalButtonData {\n @Input() classes: string;\n\n @Output() clickEvent = new EventEmitter();\n}\n","import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {ModalButtonData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-modal-button-secondary',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ModalButtonSecondaryComponent extends ButtonComponent implements ModalButtonData {\n @Input() classes: string;\n\n @Output() clickEvent = new EventEmitter();\n}\n","import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';\nimport { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {ModalButtonData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-modal-button-loader-primary',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ModalButtonLoaderPrimaryComponent extends ButtonLoaderComponent implements ModalButtonData {\n @Input() classes: string;\n @Input() state: string;\n @Output() clickEvent = new EventEmitter();\n}\n","import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';\nimport { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {ModalButtonData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-modal-button-loader-secondary',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ModalButtonLoaderSecondaryComponent extends ButtonLoaderComponent implements ModalButtonData {\n @Input() classes: string;\n\n @Output() clickEvent = new EventEmitter();\n}\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\n\n/**\n * Permite comprobar cuándo se produce un cambio en el contenido de un elemento.\n * La propia directiva emite el html interno del elemento en formato string, mientras que desyContentChangeMutation emite los cambios.\n */\n@Directive({\n selector: '[desyContentChange]'\n})\nexport class ContentChangeDirective implements OnDestroy {\n\n private changes: MutationObserver;\n\n @Input() observeProperties: { attributes: boolean, childList: boolean, characterData: boolean, subtree: boolean } = {\n attributes: false,\n childList: true,\n characterData: true,\n subtree: true\n };\n\n @Output()\n public desyContentChange = new EventEmitter<ElementRef>();\n\n @Output()\n public desyContentChangeMutation = new EventEmitter();\n\n constructor(private elementRef: ElementRef) {\n const element = this.elementRef.nativeElement;\n\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\n mutations.forEach((mutation: MutationRecord) => {\n this.desyContentChange.emit(this.elementRef);\n this.desyContentChangeMutation.emit(mutation);\n });\n }\n );\n\n this.changes.observe(element, this.observeProperties);\n }\n\n ngOnDestroy(): void {\n this.changes.disconnect();\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChildren, ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n TemplateRef\n} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport { ModalButtonData, ModalData, ModalIconData } from '../../interfaces';\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\nimport {ModalButtonPrimaryComponent} from './modal-button-primary/modal-button-primary.component';\nimport {ModalButtonSecondaryComponent} from './modal-button-secondary/modal-button-secondary.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport { ModalButtonLoaderPrimaryComponent } from './modal-button-loader-primary/modal-button-loader-primary.component';\nimport { ModalButtonLoaderSecondaryComponent } from './modal-button-loader-secondary/modal-button-loader-secondary.component';\n\n@Component({\n selector: 'desy-modal',\n templateUrl: './modal.component.html'\n})\nexport class ModalComponent extends AccessibilityComponent {\n\n @Input() title: ModalData;\n @Input() description: ModalData;\n @Input() itemsPrimary: ModalButtonData[];\n @Input() itemsSecondary: ModalButtonData[];\n @Input() itemsLoaderPrimary: ModalButtonData[];\n @Input() itemsLoaderSecondary: ModalButtonData[];\n @Input() icon: ModalIconData;\n @Input() headingLevel: number;\n\n @Input() isDismissible: boolean;\n @Input() id: string;\n @Input() classes: string;\n @Input() caller: TemplateRef<any>;\n\n @Output() closeModal: EventEmitter<void> = new EventEmitter();\n @Output() clickButton: EventEmitter<any> = new EventEmitter();\n\n @DesyContentChild()\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\n\n @DesyContentChild()\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n @ContentChildren(ModalButtonPrimaryComponent) primaryButtonComponents: QueryList<ModalButtonPrimaryComponent>;\n @ContentChildren(ModalButtonSecondaryComponent) secondaryButtonComponents: QueryList<ModalButtonSecondaryComponent>;\n\n @ContentChildren(ModalButtonLoaderPrimaryComponent) primaryButtonLoaderComponents: QueryList<ModalButtonLoaderPrimaryComponent>;\n @ContentChildren(ModalButtonLoaderSecondaryComponent) secondaryButtonLoaderComponents: QueryList<ModalButtonLoaderSecondaryComponent>;\n\n @DesyContentChild()\n @ContentChildren(IconComponent) iconComponent: IconComponent;\n\n hasIconContent = true;\n descriptionIsHtml = true;\n descriptionIsEmpty = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n closeDialog(): void {\n this.closeModal.emit();\n }\n\n getType(): string {\n let type: string;\n if (this.iconComponent) {\n type = this.iconComponent.type ? this.iconComponent.type.toLocaleLowerCase() : null;\n } else if (this.icon.type) {\n type = this.icon.type ? this.icon.type.toLocaleLowerCase() : null;\n }\n\n return type;\n }\n\n checkDescriptionContent(element: ElementRef): void {\n const childs: NodeListOf<ChildNode> = element.nativeElement.childNodes;\n let hasHtml = false;\n let hasContent = false;\n for (let i = 0; i < childs.length && !hasHtml; i++) {\n const item = childs.item(i);\n if (item.nodeType === Node.TEXT_NODE && item.textContent.length > 0) {\n hasContent = true;\n } else if (item.nodeType === Node.ELEMENT_NODE || item.nodeType === Node.CDATA_SECTION_NODE) {\n hasHtml = true;\n hasContent = true;\n }\n }\n\n const descriptionWasEmpty = this.descriptionIsEmpty;\n this.descriptionIsEmpty = !hasContent;\n this.descriptionIsHtml = hasHtml;\n this.changeDetectorRef.detectChanges();\n }\n\n clickButtonEmit(item: ModalButtonData, event): void{\n this.clickButton.emit(event);\n\n if (item instanceof ModalButtonPrimaryComponent || item instanceof ModalButtonSecondaryComponent || item instanceof ModalButtonLoaderPrimaryComponent || item instanceof ModalButtonLoaderSecondaryComponent) {\n item.clickEvent.emit(event);\n }\n }\n\n handleIconContentEmpty(isEmpty: boolean): void {\n this.hasIconContent = !isEmpty;\n this.changeDetectorRef.detectChanges();\n }\n\n getTitleClasses(): string {\n let classes = 'c-h2 px-base text-center focus:outline-none focus:underline';\n if (this.titleComponent && this.titleComponent.classes) {\n classes = this.titleComponent.classes;\n } else if (this.title && this.title.classes) {\n classes = this.title.classes;\n }\n return classes;\n }\n\n getDescriptionClasses(): string {\n let classes = 'c-paragraph-base my-base text-center';\n if (this.descriptionComponent && this.descriptionComponent.classes) {\n classes = this.descriptionComponent.classes;\n } else if (this.description && this.description.classes) {\n classes = this.description.classes;\n }\n return classes;\n }\n\n getPrimaryItems(): ModalButtonData[]|ModalButtonPrimaryComponent[] {\n return this.primaryButtonComponents && this.primaryButtonComponents.length > 0 ? this.primaryButtonComponents.toArray()\n : this.itemsPrimary;\n }\n\n getSecondaryItems(): ModalButtonData[]|ModalButtonPrimaryComponent[] {\n return this.secondaryButtonComponents && this.secondaryButtonComponents.length > 0 ? this.secondaryButtonComponents.toArray()\n : this.itemsSecondary;\n }\n\n getPrimaryLoaderItems(): ModalButtonData[]|ModalButtonLoaderPrimaryComponent[] {\n return this.primaryButtonLoaderComponents && this.primaryButtonLoaderComponents.length > 0 ? this.primaryButtonLoaderComponents.toArray() : this.itemsLoaderPrimary;\n }\n\n getSecondaryLoaderItems(): ModalButtonData[]|ModalButtonLoaderSecondaryComponent[] {\n return this.secondaryButtonLoaderComponents && this.secondaryButtonLoaderComponents.length > 0 ? this.secondaryButtonLoaderComponents.toArray() : this.itemsLoaderSecondary;\n }\n}\n","<div [class]=\"[ 'relative max-w-lg mx-auto p-base lg:p-lg border border-neutral-base rounded bg-white', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div *ngIf=\"iconComponent || icon\" class=\"flex justify-center p-base\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\n <ng-container [ngSwitch]=\"iconComponent ? iconComponent.type : icon.type\">\n <svg *ngSwitchCase=\"'discard'\" 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>\n <svg *ngSwitchCase=\"'delete'\" 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>\n <svg *ngSwitchCase=\"'edit'\" 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>\n <svg *ngSwitchCase=\"'changes'\" 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>\n <svg *ngSwitchCase=\"'publish'\" 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>\n </ng-container>\n </div>\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\">\n <ng-container *desyCustomInnerContent=\"{\n component: this.titleComponent,\n html: this.title ? this.title.html : null,\n text: this.title ? this.title.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\">\n <ng-container *desyCustomInnerContent=\"{\n component: this.titleComponent,\n html: this.title ? this.title.html : null,\n text: this.title ? this.title.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\">\n <ng-container *desyCustomInnerContent=\"{\n component: this.titleComponent,\n html: this.title ? this.title.html : null,\n text: this.title ? this.title.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\">\n <ng-container *desyCustomInnerContent=\"{\n component: this.titleComponent,\n html: this.title ? this.title.html : null,\n text: this.title ? this.title.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [attr.id]=\"'label-' + id\" [class]=\"getTitleClasses()\" tabindex=\"-1\">\n <ng-container *desyCustomInnerContent=\"{\n component: this.titleComponent,\n html: this.title ? this.title.html : null,\n text: this.title ? this.title.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n\n <div *ngIf=\"descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\n <ng-container *desyCustomInnerContent=\"{\n component: descriptionComponent,\n html: description ? description.html : null,\n text: description ? description.text : null\n }\"></ng-container>\n </div>\n <p *ngIf=\"!descriptionIsHtml\" [class]=\"getDescriptionClasses()\"\n (desyContentChange)=\"checkDescriptionContent($event)\" [observeProperties]=\"{ attributes: false, childList: true, characterData: true, subtree: true }\">\n <ng-container *desyCustomInnerContent=\"{\n component: descriptionComponent,\n html: description ? description.html : null,\n text: description ? description.text : null\n }\"></ng-container>\n </p>\n\n <div *ngIf=\"contentComponent || caller\" class=\"p-base\">\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\n </div>\n\n <div class=\"flex flex-wrap gap-sm w-full\" *ngIf=\"itemsPrimary || (primaryButtonComponents && primaryButtonComponents.length > 0) || itemsSecondary || (secondaryButtonComponents && secondaryButtonComponents.length > 0)\"\n [ngClass]=\"(itemsPrimary || (primaryButtonComponents && primaryButtonComponents.length > 0)) && (itemsSecondary || (secondaryButtonComponents && secondaryButtonComponents.length > 0)) ? 'justify-between' : 'justify-center'\">\n <ng-template #buttons let-items=\"items\">\n <ng-container *ngIf=\"items\">\n <div class=\"mt-sm\" *ngIf=\"items.length === 1\">\n <desy-button (clickEvent)=\"clickButtonEmit(items[0], $event)\"\n [disabled]=\"items[0].disabled\"\n [classes]=\"items[0].classes\"\n [id]=\"items[0].id\"\n [text]=\"items[0].text\"\n [html]=\"items[0].html\"\n [element]=\"items[0].element\"\n [name]=\"items[0].name\"\n [type]=\"items[0].type\"\n [value]=\"items[0].value\"\n [href]=\"items[0].href\"\n [target]=\"items[0].target\"\n [preventDoubleClick]=\"items[0].preventDoubleClick\"\n [routerLink]=\"items[0].routerLink\"\n [routerLinkActiveClasses]=\"items[0].routerLinkActiveClasses\">\n <ng-container *desyCustomInnerContent=\"{ component: items[0], text: items[0].text }\"></ng-container>\n </desy-button>\n </div>\n\n <!-- FIXME De momento se mantiene el nbsp por no tener clases diferentes a desy-html.\n Eliminar al adaptar a una versión de desy-html que lo contemple -->\n <ul class=\"flex flex-wrap gap-sm\" *ngIf=\"items.length > 1\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <desy-button (clickEvent)=\"clickButtonEmit(item, $event)\"\n [disabled]=\"item.disabled\"\n [classes]=\"item.classes\"\n [id]=\"item.id\"\n [text]=\"item.text\"\n [html]=\"item.html\"\n [element]=\"item.element\"\n [name]=\"item.name\"\n [type]=\"item.type\"\n [value]=\"item.value\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [preventDoubleClick]=\"item.preventDoubleClick\"\n [routerLink]=\"item.routerLink\"\n [routerLinkActiveClasses]=\"item.routerLinkActiveClasses\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </desy-button>\n </li> \n </ng-container>\n </ul>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getPrimaryItems() }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttons; context: { items: getSecondaryItems() }\"></ng-container>\n </div>\n\n <!-- Button loader -->\n <div class=\"flex flex-wrap gap-sm w-full\" *ngIf=\"(primaryButtonLoaderComponents && primaryButtonLoaderComponents.length > 0) || (secondaryButtonLoaderComponents && secondaryButtonLoaderComponents.length > 0)\" \n [ngClass]=\"((primaryButtonLoaderComponents && primaryButtonLoaderComponents.length > 0)) && ((secondaryButtonLoaderComponents && secondaryButtonLoaderComponents.length > 0)) ? 'justify-between' : 'justify-center'\">\n <ng-template #buttonsLoader let-items=\"items\">\n <ng-container *ngIf=\"items\">\n <div class=\"mt-sm\" *ngIf=\"items.length === 1\">\n <desy-button-loader (clickEvent)=\"clickButtonEmit(items[0], $event)\"\n [loaderText]=\"items[0].loaderText\"\n [loaderClasses]=\"items[0].loaderClasses\"\n [state]=\"items[0].state\"\n [successText]=\"items[0].successText\"\n [disabled]=\"items[0].disabled\"\n [classes]=\"(items[0].state === null || items[0].state === 'is-success') ? items[0].classes : items[0].classes + ' c-button-loader--is-loading'\"\n [id]=\"items[0].id\"\n [text]=\"items[0].text\"\n [html]=\"items[0].html\"\n [element]=\"items[0].element\"\n [name]=\"items[0].name\"\n [type]=\"items[0].type\"\n [value]=\"items[0].value\"\n [href]=\"items[0].href\"\n [target]=\"items[0].target\"\n [preventDoubleClick]=\"items[0].preventDoubleClick\"\n [routerLink]=\"items[0].routerLink\"\n [routerLinkActiveClasses]=\"items[0].routerLinkActiveClasses\">\n <ng-container *desyCustomInnerContent=\"{ component: items[0], text: items[0].text }\"></ng-container>\n </desy-button-loader>\n </div>\n\n <ul class=\"flex flex-wrap gap-sm\" *ngIf=\"items.length > 1\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <desy-button-loader (clickEvent)=\"clickButtonEmit(item, $event)\"\n [loaderText]=\"item.loaderText\"\n [loaderClasses]=\"item.loaderClasses\"\n [state]=\"item.state\"\n [successText]=\"item.successText\"\n [disabled]=\"item.disabled\"\n [classes]=\"(item.state === null || item.state === 'is-success') ? item.classes : item.classes + ' c-button-loader--is-loading'\"\n [id]=\"item.id\"\n [text]=\"item.text\"\n [html]=\"item.html\"\n [element]=\"item.element\"\n [name]=\"item.name\"\n [type]=\"item.type\"\n [value]=\"item.value\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [preventDoubleClick]=\"item.preventDoubleClick\"\n [routerLink]=\"item.routerLink\"\n [routerLinkActiveClasses]=\"item.routerLinkActiveClasses\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </desy-button-loader>\n </li> \n </ng-container>\n </ul>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"buttonsLoader; context: { items: getPrimaryLoaderItems() }\"></ng-container>\n <ng-container *ngTemplateOutlet=\"buttonsLoader; context: { items: getSecondaryLoaderItems() }\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"isDismissible\">\n <div class=\"absolute top-0 right-0 p-sm lg:p-base\">\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\">\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>\n </button>\n </div>\n </ng-container>\n</div>\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';\n\n@Directive({\n selector: '[desyClickOutside]'\n})\nexport class ClickOutsideDirective {\n\n @Input('desyClickOutside') active = true;\n @Output() clickOutside = new EventEmitter<void>();\n @Input() desyClickOutsideElem: Element;\n\n constructor(private hostElementRef: ElementRef) { }\n\n @HostListener('document:click', ['$event.target'])\n public onClick(target): void {\n let clickedInside;\n if (this.desyClickOutsideElem) {\n clickedInside = this.desyClickOutsideElem.contains(target);\n } else {\n clickedInside = (this.hostElementRef.nativeElement as Element).contains(target);\n }\n if (!clickedInside && this.active) {\n this.clickOutside.emit();\n }\n }\n\n}\n","import {\n Component,\n HostListener,\n OnChanges,\n OnDestroy,\n Input,\n ViewChild,\n ViewContainerRef,\n TemplateRef,\n AfterViewInit,\n ChangeDetectorRef,\n Output,\n EventEmitter, ComponentRef, ElementRef, Type, ComponentFactoryResolver\n} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { ConfigurableFocusTrap, ConfigurableFocusTrapFactory } from '@angular/cdk/a11y';\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\n\nlet numDialogsOpened = 0;\ntype DialogCreationCallback = ((dialog: DialogComponent, caller: ComponentRef<any>) => void);\n\n@Component({\n selector: 'desy-dialog',\n templateUrl: './dialog.component.html'\n})\nexport class DialogComponent extends AccessibilityComponent implements OnChanges, OnDestroy, AfterViewInit {\n\n static readonly DIALOG_OPEN_CLASS = 'has-dialog';\n static readonly KEY_CODE_ESC = 'Escape';\n\n @ViewChild('container', {read: ViewContainerRef}) container: ViewContainerRef;\n @ViewChild('focusTrapWrapper') focusTrapWrapper: ElementRef;\n\n @Input() active: boolean;\n @Output() activeChange = new EventEmitter<boolean>();\n\n @Input() id: any;\n @Input() caller: TemplateRef<any>;\n @Input() focusOnClose: string|HTMLElement;\n @Input() dismissOnBackdrop: boolean;\n @Input() classes: string;\n \n public callerType: Type<any>;\n public onCallerCreationCallback: DialogCreationCallback;\n\n lastActiveState = false;\n focusTrap: ConfigurableFocusTrap;\n clickOutsideEnabled = false;\n childElem: Element;\n\n constructor(private cdRef: ChangeDetectorRef,\n private focusTrapFactory: ConfigurableFocusTrapFactory,\n private factoryResolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnChanges(): void {\n if (this.focusTrapWrapper) {\n this.handleActiveState();\n }\n }\n\n ngAfterViewInit(): void {\n \n if (this.callerType) {\n const factory = this.factoryResolver.resolveComponentFactory(this.callerType);\n const component = this.container.createComponent(factory);\n if (this.onCallerCreationCallback) {\n this.onCallerCreationCallback(this, component);\n }\n }\n\n if (this.focusTrapWrapper.nativeElement.children && this.focusTrapWrapper.nativeElement.children.length === 1) {\n this.childElem = this.focusTrapWrapper.nativeElement.children[0];\n }\n\n this.handleActiveState();\n this.cdRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.active = false;\n this.handleActiveState();\n }\n\n\n public dismiss(): void {\n this.activeChange.emit(false);\n }\n\n\n @HostListener('document:keyup', ['$event'])\n onKeyUp(event: KeyboardEvent): void {\n if (event.key === DialogComponent.KEY_CODE_ESC) {\n event.stopPropagation();\n this.dismiss();\n }\n }\n\n handleActiveState(): void {\n if (!this.focusTrap) {\n this.focusTrap = this.focusTrapFactory.create(this.focusTrapWrapper.nativeElement);\n }\n\n if (this.active !== this.lastActiveState) {\n this.lastActiveState = this.active;\n\n // Habilitar/deshabilitar scroll\n if (this.active && numDialogsOpened === 0) {\n document.body.classList.add(DialogComponent.DIALOG_OPEN_CLASS);\n } else if (!this.active && numDialogsOpened === 1) {\n document.body.classList.remove(DialogComponent.DIALOG_OPEN_CLASS);\n if (document.body.classList.length === 0) {\n document.body.removeAttribute('class');\n }\n }\n\n if (this.active) {\n setTimeout(() => this.focusTrap.focusInitialElement());\n numDialogsOpened++;\n } else {\n let focusElem: HTMLElement;\n this.focusTrap.destroy();\n if (this.focusOnClose) {\n if (typeof this.focusOnClose === 'string') {\n focusElem = document.getElementById(this.focusOnClose);\n } else {\n focusElem = this.focusOnClose;\n }\n } else {\n focusElem = FocusUtils.getFirstFocusableElement();\n }\n if (focusElem) {\n setTimeout(() => focusElem.focus());\n }\n numDialogsOpened--;\n }\n\n setTimeout(() => this.clickOutsideEnabled = this.active);\n }\n }\n\n handleClickOutside(): void {\n if (this.dismissOnBackdrop) {\n this.dismiss();\n }\n }\n}\n","<div class=\"dialog-backdrop\" [ngClass]=\"{'active': active}\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\n\n <div #focusTrapWrapper [id]=\"id\" [class]=\"classes\"\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"handleClickOutside()\" [desyClickOutsideElem]=\"childElem\">\n <ng-template #container></ng-template>\n <ng-container *ngTemplateOutlet=\"caller\"></ng-container>\n </div>\n</div>","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef, EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { DialogOptions, ModalOptions, OpenDialogResult } from '../interfaces';\nimport { DialogComponent } from '../components/dialog/dialog.component';\nimport { ModalComponent } from '../components/modal/modal.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n constructor(private factoryResolver: ComponentFactoryResolver,\n private defaultInjector: Injector,\n private appRef: ApplicationRef) { }\n\n openDialog(caller: Type<any>|ModalOptions|TemplateRef<any>,\n dialogOptions: DialogOptions): Promise<OpenDialogResult> {\n return new Promise<OpenDialogResult>((resolve, reject) => {\n\n if (!caller) {\n reject('caller is required');\n }\n\n if (!dialogOptions) {\n reject('dialogOptions is required');\n }\n\n const dialog = this.createDialog(dialogOptions);\n const result: OpenDialogResult = {\n dialog\n };\n\n if (caller instanceof Type) {\n dialog.instance.callerType = caller;\n dialog.instance.onCallerCreationCallback = (d, c) => {\n result.component = c;\n resolve(result);\n };\n } else if (caller instanceof TemplateRef) {\n dialog.instance.caller = caller;\n resolve(result);\n } else {\n dialog.instance.callerType = ModalComponent;\n dialog.instance.onCallerCreationCallback = (d, c) => {\n this.initModal(d, c, caller);\n result.component = c;\n resolve(result);\n };\n }\n });\n }\n\n closeDialog(dialog: ComponentRef<DialogComponent>|DialogComponent): void {\n if (dialog) {\n if (dialog instanceof ComponentRef) {\n dialog.instance.dismiss();\n } else {\n dialog.dismiss();\n }\n }\n }\n\n onCloseDialog(dialog: ComponentRef<DialogComponent>|DialogComponent): Promise<void> {\n return new Promise<void>((resolve => {\n let d;\n if (dialog instanceof ComponentRef) {\n d = dialog.instance;\n } else {\n d = dialog;\n }\n\n const subscription = d.activeChange.subscribe(() => {\n resolve();\n subscription.unsubscribe();\n });\n }));\n }\n\n private createDialog(dialogOptions: DialogOptions): ComponentRef<DialogComponent> {\n const factory = this.factoryResolver.resolveComponentFactory(DialogComponent);\n let dialog;\n if (dialogOptions.rootViewContainer) {\n dialog = dialogOptions.rootViewContainer.createComponent<DialogComponent>(factory);\n } else {\n dialog = factory.create(this.defaultInjector);\n this.appRef.attachView(dialog.hostView);\n const componentElement = (dialog.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(componentElement);\n }\n\n dialog.instance.active = true;\n if (dialogOptions) {\n Object.assign(dialog.instance, dialogOptions);\n }\n\n this.onCloseDialog(dialog).then(() => dialog.destroy());\n\n return dialog;\n }\n\n private initModal(dialog: DialogComponent, modalRef: ComponentRef<ModalComponent>, modalOptions: ModalOptions): void {\n modalRef.instance.title = modalOptions.title;\n modalRef.instance.description = modalOptions.description;\n modalRef.instance.itemsPrimary = modalOptions.itemsPrimary;\n modalRef.instance.itemsSecondary = modalOptions.itemsSecondary;\n modalRef.instance.icon = modalOptions.icon;\n\n modalRef.instance.isDismissible = modalOptions.isDismissible;\n modalRef.instance.id = modalOptions.id;\n modalRef.instance.classes = modalOptions.classes;\n modalRef.instance.caller = modalOptions.caller;\n\n if (modalOptions.isDismissible) {\n const subscription = modalRef.instance.closeModal.subscribe(() => {\n this.closeDialog(dialog);\n subscription.unsubscribe();\n });\n }\n }\n\n}\n","import {Component, Input} from '@angular/core';\nimport { BreadcrumbsData } from '../../../interfaces';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-breadcrumbs-item',\n templateUrl: './breadcrumbs-item.component.html'\n})\nexport class BreadcrumbsItemComponent extends ContentBaseComponent implements BreadcrumbsData {\n\n @Input() id?: string;\n @Input() routerLink?: string;\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { BreadcrumbsData } from '../../interfaces';\nimport { BreadcrumbsItemComponent } from './breadcrumbs-item/breadcrumbs-item.component';\n\n@Component({\n selector: 'desy-breadcrumbs',\n templateUrl: './breadcrumbs.component.html'\n})\nexport class BreadcrumbsComponent extends AccessibilityComponent {\n\n @Input() items: Array<BreadcrumbsData>;\n @Input() classes: string;\n @Input() id: string;\n\n @Input() collapseOnMobile: boolean;\n @Input() hasBackButton: boolean;\n @ContentChildren(BreadcrumbsItemComponent) itemComponentList: QueryList<BreadcrumbsItemComponent>;\n\n constructor(private location: Location){\n super();\n }\n\n getLength(): number {\n let itemsLength: number = this.items ? this.items.length : this.itemComponentList.length;\n\n if (this.hasBackButton) {\n itemsLength += 1;\n }\n return itemsLength;\n }\n\n goBack(): void {\n this.location.back();\n }\n\n getItemList(): BreadcrumbsData[] {\n const itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\n\n return itemList;\n }\n\n}\n","<nav [class]=\"(classes ? 'c-breadcrumbs ' + classes : 'c-breadcrumbs') + (collapseOnMobile===true ? ' ' + 'c-breadcrumbs--collapse-on-mobile' : '')\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : 'Estás en: '\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <ol [class]=\"'lg:grid lg:grid-cols-max-content-'+getLength()+' w-full items-baseline text-sm'\">\n <li *ngIf=\"hasBackButton\" class=\"c-breadcrumbs__backbutton flex items-baseline font-bold text-primary-base\">\n <a (click)=\"goBack()\" class=\"px-sm border-r border-neutral-base focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black cursor-pointer\">\n <span class=\"sr-only\">Volver a la página anterior</span><span aria-hidden=\"true\" title=\"Volver a la página anterior\">←</span>\n </a>\n </li>\n <ng-container *ngFor=\"let item of getItemList(); last as isLast; index as index\">\n <li *ngIf=\"!isLast\" class=\"flex items-baseline mb-sm py-xs text-neutral-dark\" [ngClass]=\"{'hover:text-black' : item.routerLink}\">\n <a *ngIf=\"item.routerLink\" class=\"underline focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black truncate\"\n [routerLink]=\"item.routerLink\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-disabled]=\"item.ariaDisabled\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n <span *ngIf=\"!item.routerLink\" class=\"no-underline truncate\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-disabled]=\"item.ariaDisabled\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </span>\n </li>\n <li *ngIf=\"isLast\" class=\"flex items-baseline mb-sm py-xs text-neutral-dark flex-1 font-semibold\" [ngClass]=\"{'hover:text-black' : item.routerLink}\">\n <a *ngIf=\"item.routerLink\" class=\"underline focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black text-black font-semibold no-underline truncate\"\n aria-current=\"page\" [routerLink]=\"item.routerLink\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-disabled]=\"item.ariaDisabled\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <strong>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </a>\n <span *ngIf=\"!item.routerLink\" class=\"no-underline text-black truncate\" aria-current=\"page\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-disabled]=\"item.ariaDisabled\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <strong>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </span>\n </li>\n </ng-container>\n </ol>\n</nav>\n","import { Component } from '@angular/core';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-header-offcanvas-close-button',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class HeaderOffcanvasCloseButtonComponent extends ContentBaseComponent {\n\n}\n","import { Component } from '@angular/core';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-header-offcanvas-button',\n templateUrl: './header-offcanvas-button.component.html'\n})\nexport class HeaderOffcanvasButtonComponent extends ContentBaseComponent {\n\n openOffcanvas = async () => {};\n\n async handleClick(event: Event): Promise<void> {\n event.stopPropagation();\n await this.openOffcanvas();\n }\n\n\n}\n","<ng-template #contentTemplate>\n <button id=\"header-offcanvas-button\" tabindex=\"0\" aria-haspopup=\"true\"\n class=\"inline-flex items-center px-3 py-4 text-sm text-black focus:outline-none focus:shadow-outline-black focus:bg-warning-base\"\n (click)=\"handleClick($event)\">\n <span id=\"header-offcanvas-button-text\" class=\"inline-block align-middle text-right\">\n <ng-content></ng-content>\n </span>\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>\n </button>\n</ng-template>\n\n","import {\n Component,\n ComponentRef,\n ContentChildren,\n HostBinding,\n Input,\n OnDestroy,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\nimport {HeaderOffcanvasCloseButtonComponent} from './header-offcanvas-close-button/header-offcanvas-close-button.component';\nimport {DialogComponent} from '../../../../desy-modals/components/dialog/dialog.component';\nimport {DialogService} from '../../../../desy-modals/services/dialog.service';\nimport {DialogOptions} from '../../../../desy-modals/interfaces';\nimport {HeaderOffcanvasButtonComponent} from './header-offcanvas-button/header-offcanvas-button.component';\nimport {DesyOnInputChange} from '../../../../shared/decorators/desy-on-input-change.decorator';\n\n@Component({\n selector: 'desy-header-offcanvas',\n templateUrl: './header-offcanvas.component.html'\n})\nexport class HeaderOffcanvasComponent implements OnDestroy {\n\n private static dialogOptions: DialogOptions = {\n id: 'header-offcanvas-dialog',\n focusOnClose: 'header-offcanvas-button',\n ariaModal: 'true',\n ariaLabelledBy: 'header-offcanvas-button-text',\n role: 'dialog'\n };\n\n @DesyOnInputChange('setHostClass')\n @Input() classes: string;\n\n @HostBinding('class') hostClass = '-mr-2 flex lg:hidden';\n\n @ViewChild('offcanvasContent') offcanvasContent: TemplateRef<any>;\n\n @DesyContentChild({onSetCallbackName: 'bindButton'})\n @ContentChildren(HeaderOffcanvasButtonComponent) button: HeaderOffcanvasButtonComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) content: ContentComponent;\n\n @DesyContentChild()\n @ContentChildren(HeaderOffcanvasCloseButtonComponent) closeButton: HeaderOffcanvasCloseButtonComponent;\n\n private dialog: ComponentRef<DialogComponent>;\n\n constructor(private dialogService: DialogService) {\n }\n\n ngOnDestroy(): void {\n if (this.isOpen()) {\n this.close();\n }\n }\n\n async open(): Promise<void> {\n if (!this.isOpen()) {\n this.dialog = (await this.dialogService.openDialog(this.offcanvasContent, HeaderOffcanvasComponent.dialogOptions)).dialog;\n this.dialogService.onCloseDialog(this.dialog).then(() => this.dialog = null);\n }\n }\n\n close(): void {\n if (this.isOpen()) {\n this.dialogService.closeDialog(this.dialog);\n this.dialog = null;\n const elementToFocus = document.getElementById('header-offcanvas-button');\n elementToFocus?.focus()\n }\n }\n\n isOpen(): boolean {\n return !!this.dialog;\n }\n\n /**\n * Estable las clases del elemento html del componente\n */\n setHostClass(): void {\n this.hostClass = this.classes ? this.classes : '-mr-2 flex lg:hidden';\n }\n\n /**\n * Enlaza el botón del componente hijo con la acción de abrir de este componente\n * @param button componente botón pasado como contenido\n */\n bindButton(button: HeaderOffcanvasButtonComponent): void {\n button.openOffcanvas = this.open.bind(this);\n }\n}\n","\n<ng-template #offcanvasContent>\n <div class=\"origin-top-left left-0 fixed inset-0 h-screen\">\n <div class=\"h-full overflow-auto relative w-offcanvas h-screen ml-offcanvas-negative bg-white z-10\"\n [desyClickOutside]=\"isOpen()\" (clickOutside)=\"close()\">\n <div class=\"text-right p-sm\">\n <button (click)=\"close()\" id=\"header-offcanvas-button-close\" class=\"c-button c-button--sm c-button--transparent m-sm\">\n <ng-container *desyCustomInnerContent=\"{ component: closeButton }\"></ng-container> <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\" width=\"14\" height=\"14\" class=\"self-center ml-2\" aria-hidden=\"true\"><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>\n </button>\n </div>\n <ng-container *desyCustomInnerContent=\"{ component: content }\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-container *desyCustomInnerContent=\"{ component: button }\"></ng-container>\n","import {Component, Input} from '@angular/core';\nimport {HeaderNavigationItemData} from '../../../../interfaces/header-navigation-item-data';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-header-navigation-item',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class HeaderNavigationItemComponent extends ContentBaseComponent implements HeaderNavigationItemData {\n @Input() href: string;\n @Input() routerLink: string;\n @Input() fragment: string;\n @Input() id: string;\n @Input() active: boolean;\n @Input() disabled: boolean;\n}\n","import {AfterContentInit, Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport { HeaderNavigationItemData } from '../../../interfaces/header-navigation-item-data';\nimport { AccessibilityComponent } from '../../../../shared/components';\nimport {HeaderNavigationItemComponent} from './header-navigation-item/header-navigation-item.component';\n\n@Component({\n selector: 'desy-header-navigation',\n templateUrl: './header-navigation.component.html'\n})\nexport class HeaderNavigationComponent extends AccessibilityComponent implements AfterContentInit {\n\n @Input() idPrefix: string;\n @Input() classes: string;\n @Input() items: HeaderNavigationItemData[];\n\n @ContentChildren(HeaderNavigationItemComponent) itemComponents: QueryList<HeaderNavigationItemComponent>;\n\n ngAfterContentInit(): void {\n const items = this.getItems();\n }\n\n getItemId(item: HeaderNavigationItemData, index: number): string {\n const prefix = this.idPrefix ? this.idPrefix : 'header-nav-item';\n const suffix = index > 0 ? '-' + index : '';\n return item.id ? item.id : prefix + suffix;\n }\n\n getItems(): HeaderNavigationItemData[] {\n return this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\n }\n}\n","<nav [class]=\"classes ? classes : 'hidden lg:block'\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul class=\"ml-sm flex flex-wrap items-baseline\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <li *ngIf=\"item\">\n\n <!-- Active + routerlink -->\n <a *ngIf=\"item.active && (item.routerLink || !item.href)\" [id]=\"getItemId(item, i)\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\n class=\"max-w-40 lg:max-w-xs px-3 py-4 font-bold text-sm text-black hover:underline truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-black focus:bg-warning-base\" \n aria-current=\"page\"\n [target]=\"item.target\">\n <strong class=\"font-bold\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </a>\n\n <!-- Active + href -->\n <a *ngIf=\"item.active && !item.routerLink && item.href\" [id]=\"getItemId(item, i)\" [href]=\"item.href\"\n class=\"max-w-40 lg:max-w-xs px-3 py-4 font-bold text-sm text-black hover:underline truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-black focus:bg-warning-base\" \n aria-current=\"page\"\n [target]=\"item.target\">\n <strong class=\"font-bold\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </a>\n\n <!-- Not active + routerlink -->\n <a *ngIf=\"!item.active && (item.routerLink || !item.href)\" [id]=\"getItemId(item, i)\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\n class=\"max-w-40 lg:max-w-xs px-3 py-4 text-sm text-black hover:underline truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-black focus:bg-warning-base\"\n [attr.disabled]=\"item.disabled ? item.disabled : null\" [attr.aria-disabled]=\"item.disabled ? item.disabled : null\" [attr.tabindex]=\"item.disabled ? -1 : null\"\n [target]=\"item.target\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n\n <!-- Not active + href -->\n <a *ngIf=\"!item.active && !item.routerLink && item.href\" [id]=\"getItemId(item, i)\" [href]=\"item.href\"\n [ngClass]=\"{'opacity-50 pointer-events-none': item.disabled}\"\n class=\"max-w-40 lg:max-w-xs px-3 py-4 text-sm text-black hover:underline truncate focus:outline-none focus:ring-4 focus:ring-inset focus:ring-black focus:bg-warning-base\"\n [attr.disabled]=\"item.disabled ? item.disabled : null\" [attr.aria-disabled]=\"item.disabled ? item.disabled : null\" [attr.tabindex]=\"item.disabled ? -1 : null\"\n [target]=\"item.target\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n </li>\n </ng-container>\n </ul>\n</nav>\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {NavItemData, NavItemEventData} from '../../../interfaces';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-nav-item',\n templateUrl: './nav-item.component.html'\n})\nexport class NavItemComponent extends ContentBaseComponent implements NavItemData {\n\n @Input() id?: string;\n @Input() active?: boolean;\n @Input() classes?: string;\n @Input() title?: string;\n @Input() href?: string;\n @Input() routerLink?: string|any[];\n @Input() fragment?: string;\n @Input() target?: string;\n @Input() disabled?: boolean;\n @Input() divider?: boolean;\n\n @Output() clickEvent = new EventEmitter<NavItemEventData>();\n @Output() activeChange = new EventEmitter<boolean>();\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList\n} from '@angular/core';\nimport {\n AccessibilityComponent\n} from '../../../shared/components';\nimport {NavItemData, NavItemEventData} from '../../interfaces';\nimport {NavItemComponent} from './nav-item/nav-item.component';\n\n\n@Component({\n selector: 'desy-nav',\n templateUrl: './nav.component.html'\n})\nexport class NavComponent extends AccessibilityComponent {\n\n @Input() hasNav = true;\n @Input() idPrefix: string;\n @Input() items: NavItemData[];\n @Input() classes: string;\n\n @Output() clickEvent = new EventEmitter<NavItemEventData>();\n @ContentChildren(NavItemComponent) itemComponentList: QueryList<NavItemComponent>;\n\n onClick(event: any, item: NavItemData): void {\n const itemsActiveChange = [];\n if (!item.active) {\n itemsActiveChange.push(item);\n }\n\n const itemList = this.getItemList();\n itemList.forEach(i => {\n if (i.active && i !== item) {\n itemsActiveChange.push(i);\n }\n i.active = false;\n });\n item.active = true;\n\n // Se emite el evento sólo para los items cuyo valor de active ha sido modificado\n itemsActiveChange.forEach(i => {\n if (i instanceof NavItemComponent) {\n i.activeChange.emit(i.active);\n }\n });\n\n this.clickEvent.emit({ item, event });\n if (item instanceof NavItemComponent) {\n item.clickEvent.emit({ item, event });\n }\n }\n\n getItemList(): NavItemData[] {\n const itemList = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\n \n return itemList;\n }\n\n getItemId(item: NavItemData, index: number): string {\n let id;\n if (item.id) {\n id = item.id;\n } else if (index === 0) {\n id = this.getIdPrefix();\n } else {\n id = this.getIdPrefix() + '-' + index;\n }\n return id;\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : 'nav-item';\n }\n\n movePrevious(event: Event, currentIndex: number): void {\n event.preventDefault();\n const items = this.getItemList();\n let nextIndex = currentIndex - 1;\n while (nextIndex >= 0 && !this.isFocusableItem(items[nextIndex])) {\n nextIndex--;\n }\n\n if (nextIndex < items.length) {\n const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));\n if (itemElem) {\n itemElem.focus();\n }\n }\n }\n\n moveNext(event: Event, currentIndex: number): void {\n event.preventDefault();\n const items = this.getItemList();\n let nextIndex = currentIndex + 1;\n while (nextIndex < items.length && !this.isFocusableItem(items[nextIndex])) {\n nextIndex++;\n }\n\n if (nextIndex < items.length) {\n const itemElem = document.getElementById(this.getItemId(items[nextIndex], nextIndex));\n if (itemElem) {\n itemElem.focus();\n }\n }\n }\n\n simulateClick(event: Event, item: NavItemData, index: number): void {\n event.preventDefault();\n const element = document.getElementById(this.getItemId(item, index));\n element?.click();\n }\n\n\n private isFocusableItem(item: NavItemData): boolean {\n return !item.active && !item.disabled;\n }\n\n}\n","<ng-template #innerHtml>\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\n <li>\n <span *ngIf=\"item.active\"\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex\"\n (click)=\"onClick($event, item)\">\n <strong>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </span>\n <a *ngIf=\"!item.active && item.href\"\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\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\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *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>\n </a>\n <a *ngIf=\"!item.active && !item.href\"\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\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\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *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>\n </a>\n </li>\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\n <div class=\"sr-only\">Separador</div>\n </li>\n </ng-container>\n</ng-template>\n\n\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\n [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n</ul>\n<ng-template #wrapIntoNav>\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul>\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n","import {Component, ContentChildren, Input} from '@angular/core';\nimport {NavComponent} from '../../nav/nav.component';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {AccessibilityComponent} from \"../../../../shared/components\";\n\n@Component({\n selector: 'desy-header-subnav',\n templateUrl: './header-subnav.component.html'\n})\nexport class HeaderSubnavComponent extends AccessibilityComponent {\n\n @Input() hiddenText: string;\n @Input() classesContainer: string;\n @Input() classesTooltip: string;\n @Input() classes: string;\n\n @DesyContentChild({onSetCallbackName: 'overrideNavParams'})\n @ContentChildren(NavComponent) nav: NavComponent;\n\n hasSubnavItems(): boolean {\n return this.nav && this.nav.getItemList().length > 0;\n }\n\n overrideNavParams(nav: NavComponent): void {\n nav.hasNav = true;\n nav.idPrefix = 'header-subnav-nav-item';\n nav.ariaLabel = 'Aplicaciones';\n nav.classes = 'w-max max-w-64';\n // nav.id = 'id-subnav-nav'; // No existe como param de navComponent\n }\n\n\n}\n","<ng-template #templateNav>\n <ng-content select=\"desy-nav\"></ng-content>\n</ng-template>\n\n<ng-template #templateContent>\n <ng-content></ng-content>\n</ng-template>\n\n<div class=\"hidden lg:flex items-center\" *ngIf=\"hasSubnavItems(); else noItems\">\n <div class=\"py-2 relative border-r border-l border-neutral-base\">\n <p class=\"sr-only\">Aplicación actual: </p>\n <desy-dropdown [hiddenText]=\"hiddenText\"\n [classesContainer]=\"classesContainer\"\n [classesTooltip]=\"classesTooltip\"\n [classes]=\"classes ? classes : 'c-dropdown--header'\"\n [caller]=\"caller\"\n\n [role]=\"role\"\n [ariaLabel]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaHidden]=\"ariaHidden\"\n [ariaDisabled]=\"ariaDisabled\"\n [ariaControls]=\"ariaControls\"\n [ariaCurrent]=\"ariaCurrent\"\n [ariaLive]=\"ariaLive\"\n [ariaExpanded]=\"ariaExpanded\"\n [ariaErrorMessage]=\"ariaErrorMessage\"\n [ariaHasPopup]=\"ariaHasPopup\"\n [tabindex]=\"tabindex\">\n <ng-container *ngTemplateOutlet=\"templateContent\"></ng-container>\n <ng-template #caller>\n <ng-container *ngTemplateOutlet=\"templateNav\"></ng-container>\n </ng-template>\n </desy-dropdown>\n </div>\n</div>\n<ng-template #noItems>\n <p class=\"hidden lg:inline-block align-middle px-3 py-4 border-r border-l border-neutral-base text-sm text-black\">\n <span class=\"sr-only\">Aplicación actual: </span>\n <ng-container *ngTemplateOutlet=\"templateContent\"></ng-container>\n </p>\n</ng-template>\n\n\n","import {Component, ContentChildren, Input} from '@angular/core';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {NavComponent} from '../../nav/nav.component';\nimport {AccessibilityComponent} from \"../../../../shared/components\";\nimport {ContentComponent} from \"../../../../desy-commons/components/content/content.component\";\n\n@Component({\n selector: 'desy-header-dropdown',\n templateUrl: './header-dropdown.component.html',\n})\nexport class HeaderDropdownComponent extends AccessibilityComponent {\n\n @Input() hiddenText: string;\n @Input() classesContainer: string;\n @Input() classesTooltip: string;\n @Input() classes: string;\n\n @DesyContentChild({onSetCallbackName: 'overrideNavParams'})\n @ContentChildren(NavComponent) nav: NavComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n overrideNavParams(nav: NavComponent): void {\n nav.hasNav = true;\n nav.idPrefix = 'header-dropdown-nav-item';\n nav.ariaLabel = 'Menú de usuario';\n nav.classes = 'w-max max-w-64';\n // nav.id = 'id-dropdown-nav'; // No existe como param de navComponent\n }\n\n}\n","<div class=\"ml-4 flex items-center lg:ml-6\">\n <div class=\"ml-3 relative\">\n <desy-dropdown [hiddenText]=\"hiddenText\"\n [classesContainer]=\"classesContainer ? classesContainer : 'hidden lg:block'\"\n [classesTooltip]=\"classesTooltip\"\n [classes]=\"classes ? classes : 'c-dropdown--header'\"\n [caller]=\"caller\"\n\n [role]=\"role\"\n [ariaLabel]=\"ariaLabel\"\n [ariaDescribedBy]=\"ariaDescribedBy\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaHidden]=\"ariaHidden\"\n [ariaDisabled]=\"ariaDisabled\"\n [ariaControls]=\"ariaControls\"\n [ariaCurrent]=\"ariaCurrent\"\n [ariaLive]=\"ariaLive\"\n [ariaExpanded]=\"ariaExpanded\"\n [ariaErrorMessage]=\"ariaErrorMessage\"\n [ariaHasPopup]=\"ariaHasPopup\"\n [tabindex]=\"tabindex\">\n <ng-content></ng-content>\n </desy-dropdown>\n <ng-template #caller>\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: templateNav }\"></ng-container>\n </ng-template>\n </div>\n</div>\n\n<ng-template #templateNav>\n <ng-content select=\"desy-nav\"></ng-content>\n</ng-template>\n","import {ChangeDetectorRef, Component, Input} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\n\n@Component({\n selector: 'desy-skip-link',\n templateUrl: './skip-link.component.html'\n})\nexport class SkipLinkComponent extends AccessibilityComponent {\n\n @Input() html: string;\n @Input() text: string;\n @Input() fragment: string;\n @Input() classes: string;\n @Input() id: string;\n\n hasContent = true;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n getClassNames(): string {\n let 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';\n if (this.classes) {\n classNames += ' ' + this.classes;\n }\n return classNames;\n }\n\n}\n","<a *ngIf=\"hasContent\"\n [routerLink]=\"[]\" [fragment]=\"fragment ? fragment : 'content'\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n</a>\n\n<a *ngIf=\"!hasContent\"\n [routerLink]=\"[]\" [fragment]=\"fragment ? fragment : 'content'\"\n [class]=\"getClassNames()\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\n</a>\n","import { Component, OnInit } from '@angular/core';\nimport { ContentBaseComponent } from '../../../../shared/components';\n\n@Component({\n selector: 'desy-header-custom-navigation',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class HeaderCustomNavigationComponent extends ContentBaseComponent{\n\n\n}\n","import {Component, ContentChildren, Input} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { HeaderSubnavData } from '../../interfaces';\nimport { HeaderNavigationData } from '../../interfaces';\nimport { HeaderDropdownData } from '../../interfaces';\nimport { HeaderOffcanvasData } from '../../interfaces';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport {HeaderOffcanvasComponent} from './header-offcanvas/header-offcanvas.component';\nimport {HeaderNavigationComponent} from './header-navigation/header-navigation.component';\nimport {HeaderSubnavComponent} from './header-subnav/header-subnav.component';\nimport {HeaderDropdownComponent} from './header-dropdown/header-dropdown.component';\nimport {SkipLinkComponent} from '../skip-link/skip-link.component';\nimport { HeaderCustomNavigationComponent } from './header-custom-navigation/header-custom-navigation.component';\n\n@Component({\n selector: 'desy-header',\n templateUrl: './header.component.html'\n})\nexport class HeaderComponent extends AccessibilityComponent {\n\n @Input() classes: string;\n @Input() containerClasses: string;\n @Input() homepageUrl: string;\n @Input() homepageRouterLink: string;\n @Input() homepageFragment: string;\n @Input() expandedLogo: boolean;\n @Input() noLogo: boolean;\n @Input() customLogoHtml: string;\n @Input() customNavigationHtml: string;\n\n @Input() subnavData: HeaderSubnavData;\n @Input() navigationData: HeaderNavigationData;\n @Input() dropdownData: HeaderDropdownData;\n @Input() offcanvasData: HeaderOffcanvasData;\n\n @DesyContentChild({ onSetCallbackName: 'overrideSkipLinkParams'})\n @ContentChildren(SkipLinkComponent) skiplinkComponent: SkipLinkComponent;\n\n @DesyContentChild()\n @ContentChildren(HeaderSubnavComponent) subnavComponent: HeaderSubnavComponent;\n\n @DesyContentChild()\n @ContentChildren(HeaderCustomNavigationComponent) customNavigationComponent: HeaderCustomNavigationComponent;\n\n @DesyContentChild({ onSetCallbackName: 'overrideNavigationParams'})\n @ContentChildren(HeaderNavigationComponent) navigationComponent: HeaderNavigationComponent;\n\n @DesyContentChild()\n @ContentChildren(HeaderDropdownComponent) dropdownComponent: HeaderDropdownComponent;\n\n @DesyContentChild()\n @ContentChildren(HeaderOffcanvasComponent) offcanvasComponent: HeaderOffcanvasComponent;\n\n\n overrideSkipLinkParams(skiplinkComponent: SkipLinkComponent): void {\n skiplinkComponent.id = skiplinkComponent.id || 'skip-link';\n skiplinkComponent.text = 'Saltar al contenido principal';\n }\n\n overrideNavigationParams(navigationComponent: HeaderNavigationComponent): void {\n navigationComponent.idPrefix = 'header-nav-item';\n navigationComponent.ariaLabel = 'Menú principal';\n }\n}\n","<header [ngClass]=\"classes\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <div [ngClass]=\"containerClasses\">\n <nav [attr.aria-labelledby]=\"skiplinkComponent ? skiplinkComponent.id : 'skip-link'\">\n <ng-content select=\"desy-skip-link\"></ng-content>\n <desy-skip-link text=\"Saltar al contenido principal\" [id]=\"'skip-link'\"></desy-skip-link>\n </nav>\n <div class=\"bg-neutral-lighter border-b border-neutral-base\">\n <div class=\"container mx-auto px-base\">\n <div class=\"flex items-center justify-between min-h-14\">\n <div class=\"flex flex-wrap items-center\">\n <div class=\"flex items-center flex-shrink-0\">\n <a *ngIf=\"homepageRouterLink || !homepageUrl\" [routerLink]=\"homepageRouterLink\" [fragment]=\"homepageFragment\" class=\"flex flex-wrap mr-4 text-black focus:outline-none focus:shadow-outline-black\" title=\"Ir a la página de inicio\">\n <svg *ngIf=\"!noLogo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 144 32\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Aragón. Ir a la página de inicio\" role=\"img\"><defs><clipPath id=\"b-logo-expanded\"><path fill=\"gold\" d=\"M0 0h31.509v31.495H0z\"/></clipPath><clipPath id=\"a-logo-expanded\"><path d=\"M0 0h144v32H0z\"/></clipPath></defs><g clip-path=\"url(#a-logo-expanded)\"><path fill=\"gold\" d=\"M0 .205h31.509V31.7H0z\"/><g clip-path=\"url(#b-logo-expanded)\" transform=\"translate(0 .205)\"><g fill=\"#dd171b\" fill-rule=\"evenodd\"><path d=\"m31.509 6.048-7.568 1.515a14.545 14.545 0 0 1-7.905-1.025 15.04 15.04 0 0 0-5-1.817 12.536 12.536 0 0 0-3.535-.011l-5.051.9c-.8.156-1.639.3-2.453.434V.315A7.1 7.1 0 0 1 3.888.226a9.926 9.926 0 0 1 2.085.936 17.6 17.6 0 0 0 4.293 1.962 13.92 13.92 0 0 0 6.6-.034l4.728-.858 4.939-.892 4.97-1.024ZM6.602 24.229a14.592 14.592 0 0 1 9.555 1.014 12.178 12.178 0 0 0 8.307 1.5l7.044-1.271v5.706a8.247 8.247 0 0 1-3.008.256 6.4 6.4 0 0 1-1.594-.457l-3.657-1.917a12.217 12.217 0 0 0-7.092-.825L1.026 31.011 0 31.177v-5.706l1.26-.256 3.312-.613c.669-.123 1.371-.245 2.029-.379ZM-.003 15.077v-4.391l13.027-2.377a15.5 15.5 0 0 1 9.11 1.638 12.535 12.535 0 0 0 8.474.925l.9-.189v4.391l-2.874-1.639a12.286 12.286 0 0 0-6.835-1.014l-8.006 1.46c-.959.179-2.877.524-2.877.524l-7.292 1.349a5.152 5.152 0 0 1-3.627-.677ZM31.509 16.583v4.324L18.6 23.282a15.5 15.5 0 0 1-9.11-1.638 12.532 12.532 0 0 0-8.474-.925l-1.015.19v-4.324l2.988 1.572a12.291 12.291 0 0 0 6.835 1.014l8.006-1.46c.959-.178 2.877-.524 2.877-.524l7.292-1.349a5.142 5.142 0 0 1 3.51.745Z\"/></g></g><path d=\"M38.2 28.807v-8.551h1.393c2.893 0 4.478 1.522 4.478 4.286 0 2.829-1.521 4.265-4.5 4.265Zm10.4-11.4v14.294h9.47v-2.893h-6.277v-3.257h6.214v-2.893h-6.214v-2.379h6.277v-2.871Zm21.751 0-5.206 14.294h3.385l1.542-4.35h4.371l1.521 4.35h3.45L74.1 17.407Zm1.885 2.956-1.328 4.223h2.679Zm42.341 4.03h-3.192v4.5a4.206 4.206 0 0 1-1.371.193 4.251 4.251 0 0 1-4.242-4.5 4.443 4.443 0 0 1 4.735-4.65 7.481 7.481 0 0 1 4.071 1.243v-3.257a11.674 11.674 0 0 0-4.349-.857c-4.628 0-7.841 3.107-7.841 7.564 0 4.393 3.149 7.372 7.841 7.372a12.977 12.977 0 0 0 4.349-.75Zm16.132.129a7.424 7.424 0 1 0-7.391 7.436 7.122 7.122 0 0 0 7.393-7.436Zm-7.456-4.458c-2.4 0-4.006 1.822-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.627-4.501-4.048-4.501Zm8.689-2.657v14.294h3.257v-9.108l5.762 9.108h3.021V17.407h-3.256v8.889l-5.532-8.889ZM46.922 7.33h-3.193v4.5a4.335 4.335 0 0 1-5.613-4.307 4.443 4.443 0 0 1 4.735-4.65 7.487 7.487 0 0 1 4.071 1.243V.859a11.674 11.674 0 0 0-4.35-.858c-4.628 0-7.841 3.107-7.841 7.565 0 4.393 3.15 7.371 7.841 7.371a12.99 12.99 0 0 0 4.35-.75Zm16.116.128a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.396-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM64.107.344v14.293h5.914c3.15 0 4.992-1.565 4.992-4.243a3.717 3.717 0 0 0-2.978-3.728 3.133 3.133 0 0 0 1.95-2.936c.021-2.272-1.521-3.386-4.606-3.386Zm4.757 5.336c1.393 0 1.95-.386 1.95-1.35 0-.921-.536-1.264-2.057-1.264h-1.393V5.68Zm.429 6.043c1.585 0 2.271-.493 2.271-1.651 0-1.2-.707-1.671-2.4-1.671h-1.8v3.322ZM78.879.344h-3.192v14.293h3.192Zm1.39 0v14.293h9.47v-2.893h-6.278V8.487h6.214V5.594h-6.214V3.216h6.278V.345Zm50.463 7.114a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.395-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM97.917 24.585l-1.35-4.223-1.328 4.223ZM83.249 31.7v-5.872h.407c2.057 0 2.271.214 3.642 3.75a7.159 7.159 0 0 0 .3.729l.278.664a6.4 6.4 0 0 0 .343.729h4.641l1.543-4.35h4.371l1.521 4.35h3.45l-5.314-14.294h-3.749L90.46 28.997c-.3-.622-.642-1.371-1.04-2.291a3.042 3.042 0 0 0-1.907-2.014 3.416 3.416 0 0 0 2.614-3.429c0-2.571-1.693-3.857-5.1-3.857H79.97V31.7Zm0-8.572h1.414c1.371 0 2.057-.493 2.057-1.521s-.622-1.478-2.014-1.478h-1.457Zm11.156-8.492V8.764h.407c2.057 0 2.271.214 3.642 3.75a6.982 6.982 0 0 0 .3.729l.278.665a6.37 6.37 0 0 0 .342.729h6.432l.018-9.169 5.745 9.169h3.021V.344h-3.256l.014 8.769-5.542-8.769h-3.257v13.3a29.76 29.76 0 0 1-1.975-4 3.043 3.043 0 0 0-1.907-2.014 3.415 3.415 0 0 0 2.614-3.428c0-2.572-1.693-3.857-5.1-3.857h-5.054v14.293Zm0-8.572h1.412c1.371 0 2.056-.493 2.056-1.521s-.621-1.478-2.013-1.478h-1.457Zm-59.44 11.342V31.7h4.778c4.842 0 7.692-2.657 7.692-7.158 0-4.479-2.914-7.136-7.863-7.136Z\" fill=\"#161615\" fill-rule=\"evenodd\"/></g></svg>\n <svg *ngIf=\"!noLogo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\" [ngClass]=\"{'sm:hidden': expandedLogo}\" class=\"w-8 h-8 fill-current\" ><title>Ir a la página de inicio</title><defs><clipPath id=\"b-logo-mini\"><path fill=\"gold\" d=\"M0 0h32v32.001H0z\"/></clipPath><clipPath id=\"a-logo-mini\"><path d=\"M0 0h32v32H0z\"/></clipPath></defs><g clip-path=\"url(#a-logo-mini)\"><path fill=\"gold\" d=\"M0 .305h32v32.001H0z\"/><g clip-path=\"url(#b-logo-mini)\" transform=\"translate(0 .305)\"><g fill=\"#dd171b\" fill-rule=\"evenodd\"><path d=\"m31.997 6.145-7.686 1.539a14.764 14.764 0 0 1-8.028-1.042 15.267 15.267 0 0 0-5.073-1.846 12.725 12.725 0 0 0-3.59-.011l-5.13.918a94.41 94.41 0 0 1-2.491.442V.324a7.213 7.213 0 0 1 3.952-.09 10.087 10.087 0 0 1 2.118.951 17.859 17.859 0 0 0 4.36 1.993 14.13 14.13 0 0 0 6.7-.034l4.8-.872 5.016-.906 5.048-1.04ZM6.705 24.619a14.812 14.812 0 0 1 9.7 1.03 12.363 12.363 0 0 0 8.437 1.529l7.154-1.291v5.8a8.37 8.37 0 0 1-3.055.26 6.509 6.509 0 0 1-1.619-.464l-3.714-1.948a12.4 12.4 0 0 0-7.2-.838l-15.366 2.82L0 31.686v-5.8l1.28-.26 3.363-.623c.679-.125 1.393-.249 2.061-.385ZM-.003 15.32v-4.462l13.23-2.417a15.734 15.734 0 0 1 9.252 1.665 12.723 12.723 0 0 0 8.606.94l.914-.192v4.462L29.08 13.65a12.472 12.472 0 0 0-6.941-1.031l-8.131 1.483c-.974.182-2.921.532-2.921.532l-7.406 1.371a5.23 5.23 0 0 1-3.684-.685ZM31.997 16.851v4.393l-13.11 2.413a15.735 15.735 0 0 1-9.252-1.665 12.721 12.721 0 0 0-8.606-.94l-1.03.193v-4.394l3.035 1.6a12.476 12.476 0 0 0 6.941 1.03l8.13-1.483c.974-.182 2.922-.532 2.922-.532l7.406-1.371a5.219 5.219 0 0 1 3.564.756Z\"/></g></g></g></svg>\n <img [src]=\"customLogoHtml ? noLogo && customLogoHtml : ''\">\n </a>\n <a *ngIf=\"!homepageRouterLink && homepageUrl\" [href]=\"homepageUrl | externalHref\" class=\"flex flex-wrap mr-4 text-black focus:outline-none focus:shadow-outline-black\" title=\"Ir a la página de inicio\">\n <svg *ngIf=\"!noLogo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 144 32\" width=\"144\" height=\"32\" [ngClass]=\"{'sm:block': expandedLogo}\" class=\"fill-current hidden\" aria-label=\"Gobierno de Aragón. Ir a la página de inicio\" role=\"img\"><defs><clipPath id=\"b-logo-expanded\"><path fill=\"gold\" d=\"M0 0h31.509v31.495H0z\"/></clipPath><clipPath id=\"a-logo-expanded\"><path d=\"M0 0h144v32H0z\"/></clipPath></defs><g clip-path=\"url(#a-logo-expanded)\"><path fill=\"gold\" d=\"M0 .205h31.509V31.7H0z\"/><g clip-path=\"url(#b-logo-expanded)\" transform=\"translate(0 .205)\"><g fill=\"#dd171b\" fill-rule=\"evenodd\"><path d=\"m31.509 6.048-7.568 1.515a14.545 14.545 0 0 1-7.905-1.025 15.04 15.04 0 0 0-5-1.817 12.536 12.536 0 0 0-3.535-.011l-5.051.9c-.8.156-1.639.3-2.453.434V.315A7.1 7.1 0 0 1 3.888.226a9.926 9.926 0 0 1 2.085.936 17.6 17.6 0 0 0 4.293 1.962 13.92 13.92 0 0 0 6.6-.034l4.728-.858 4.939-.892 4.97-1.024ZM6.602 24.229a14.592 14.592 0 0 1 9.555 1.014 12.178 12.178 0 0 0 8.307 1.5l7.044-1.271v5.706a8.247 8.247 0 0 1-3.008.256 6.4 6.4 0 0 1-1.594-.457l-3.657-1.917a12.217 12.217 0 0 0-7.092-.825L1.026 31.011 0 31.177v-5.706l1.26-.256 3.312-.613c.669-.123 1.371-.245 2.029-.379ZM-.003 15.077v-4.391l13.027-2.377a15.5 15.5 0 0 1 9.11 1.638 12.535 12.535 0 0 0 8.474.925l.9-.189v4.391l-2.874-1.639a12.286 12.286 0 0 0-6.835-1.014l-8.006 1.46c-.959.179-2.877.524-2.877.524l-7.292 1.349a5.152 5.152 0 0 1-3.627-.677ZM31.509 16.583v4.324L18.6 23.282a15.5 15.5 0 0 1-9.11-1.638 12.532 12.532 0 0 0-8.474-.925l-1.015.19v-4.324l2.988 1.572a12.291 12.291 0 0 0 6.835 1.014l8.006-1.46c.959-.178 2.877-.524 2.877-.524l7.292-1.349a5.142 5.142 0 0 1 3.51.745Z\"/></g></g><path d=\"M38.2 28.807v-8.551h1.393c2.893 0 4.478 1.522 4.478 4.286 0 2.829-1.521 4.265-4.5 4.265Zm10.4-11.4v14.294h9.47v-2.893h-6.277v-3.257h6.214v-2.893h-6.214v-2.379h6.277v-2.871Zm21.751 0-5.206 14.294h3.385l1.542-4.35h4.371l1.521 4.35h3.45L74.1 17.407Zm1.885 2.956-1.328 4.223h2.679Zm42.341 4.03h-3.192v4.5a4.206 4.206 0 0 1-1.371.193 4.251 4.251 0 0 1-4.242-4.5 4.443 4.443 0 0 1 4.735-4.65 7.481 7.481 0 0 1 4.071 1.243v-3.257a11.674 11.674 0 0 0-4.349-.857c-4.628 0-7.841 3.107-7.841 7.564 0 4.393 3.149 7.372 7.841 7.372a12.977 12.977 0 0 0 4.349-.75Zm16.132.129a7.424 7.424 0 1 0-7.391 7.436 7.122 7.122 0 0 0 7.393-7.436Zm-7.456-4.458c-2.4 0-4.006 1.822-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.627-4.501-4.048-4.501Zm8.689-2.657v14.294h3.257v-9.108l5.762 9.108h3.021V17.407h-3.256v8.889l-5.532-8.889ZM46.922 7.33h-3.193v4.5a4.335 4.335 0 0 1-5.613-4.307 4.443 4.443 0 0 1 4.735-4.65 7.487 7.487 0 0 1 4.071 1.243V.859a11.674 11.674 0 0 0-4.35-.858c-4.628 0-7.841 3.107-7.841 7.565 0 4.393 3.15 7.371 7.841 7.371a12.99 12.99 0 0 0 4.35-.75Zm16.116.128a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.396-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM64.107.344v14.293h5.914c3.15 0 4.992-1.565 4.992-4.243a3.717 3.717 0 0 0-2.978-3.728 3.133 3.133 0 0 0 1.95-2.936c.021-2.272-1.521-3.386-4.606-3.386Zm4.757 5.336c1.393 0 1.95-.386 1.95-1.35 0-.921-.536-1.264-2.057-1.264h-1.393V5.68Zm.429 6.043c1.585 0 2.271-.493 2.271-1.651 0-1.2-.707-1.671-2.4-1.671h-1.8v3.322ZM78.879.344h-3.192v14.293h3.192Zm1.39 0v14.293h9.47v-2.893h-6.278V8.487h6.214V5.594h-6.214V3.216h6.278V.345Zm50.463 7.114a7.424 7.424 0 1 0-7.392 7.436 7.122 7.122 0 0 0 7.395-7.436Zm-7.456-4.457c-2.4 0-4.006 1.821-4.006 4.5s1.65 4.5 4.071 4.5c2.4 0 3.985-1.8 3.985-4.5s-1.626-4.5-4.047-4.5ZM97.917 24.585l-1.35-4.223-1.328 4.223ZM83.249 31.7v-5.872h.407c2.057 0 2.271.214 3.642 3.75a7.159 7.159 0 0 0 .3.729l.278.664a6.4 6.4 0 0 0 .343.729h4.641l1.543-4.35h4.371l1.521 4.35h3.45l-5.314-14.294h-3.749L90.46 28.997c-.3-.622-.642-1.371-1.04-2.291a3.042 3.042 0 0 0-1.907-2.014 3.416 3.416 0 0 0 2.614-3.429c0-2.571-1.693-3.857-5.1-3.857H79.97V31.7Zm0-8.572h1.414c1.371 0 2.057-.493 2.057-1.521s-.622-1.478-2.014-1.478h-1.457Zm11.156-8.492V8.764h.407c2.057 0 2.271.214 3.642 3.75a6.982 6.982 0 0 0 .3.729l.278.665a6.37 6.37 0 0 0 .342.729h6.432l.018-9.169 5.745 9.169h3.021V.344h-3.256l.014 8.769-5.542-8.769h-3.257v13.3a29.76 29.76 0 0 1-1.975-4 3.043 3.043 0 0 0-1.907-2.014 3.415 3.415 0 0 0 2.614-3.428c0-2.572-1.693-3.857-5.1-3.857h-5.054v14.293Zm0-8.572h1.412c1.371 0 2.056-.493 2.056-1.521s-.621-1.478-2.013-1.478h-1.457Zm-59.44 11.342V31.7h4.778c4.842 0 7.692-2.657 7.692-7.158 0-4.479-2.914-7.136-7.863-7.136Z\" fill=\"#161615\" fill-rule=\"evenodd\"/></g></svg>\n <svg *ngIf=\"!noLogo\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32\" height=\"32\" [ngClass]=\"{'sm:hidden': expandedLogo}\" class=\"w-8 h-8 fill-current\" ><title>Ir a la página de inicio</title><defs><clipPath id=\"b-logo-mini\"><path fill=\"gold\" d=\"M0 0h32v32.001H0z\"/></clipPath><clipPath id=\"a-logo-mini\"><path d=\"M0 0h32v32H0z\"/></clipPath></defs><g clip-path=\"url(#a-logo-mini)\"><path fill=\"gold\" d=\"M0 .305h32v32.001H0z\"/><g clip-path=\"url(#b-logo-mini)\" transform=\"translate(0 .305)\"><g fill=\"#dd171b\" fill-rule=\"evenodd\"><path d=\"m31.997 6.145-7.686 1.539a14.764 14.764 0 0 1-8.028-1.042 15.267 15.267 0 0 0-5.073-1.846 12.725 12.725 0 0 0-3.59-.011l-5.13.918a94.41 94.41 0 0 1-2.491.442V.324a7.213 7.213 0 0 1 3.952-.09 10.087 10.087 0 0 1 2.118.951 17.859 17.859 0 0 0 4.36 1.993 14.13 14.13 0 0 0 6.7-.034l4.8-.872 5.016-.906 5.048-1.04ZM6.705 24.619a14.812 14.812 0 0 1 9.7 1.03 12.363 12.363 0 0 0 8.437 1.529l7.154-1.291v5.8a8.37 8.37 0 0 1-3.055.26 6.509 6.509 0 0 1-1.619-.464l-3.714-1.948a12.4 12.4 0 0 0-7.2-.838l-15.366 2.82L0 31.686v-5.8l1.28-.26 3.363-.623c.679-.125 1.393-.249 2.061-.385ZM-.003 15.32v-4.462l13.23-2.417a15.734 15.734 0 0 1 9.252 1.665 12.723 12.723 0 0 0 8.606.94l.914-.192v4.462L29.08 13.65a12.472 12.472 0 0 0-6.941-1.031l-8.131 1.483c-.974.182-2.921.532-2.921.532l-7.406 1.371a5.23 5.23 0 0 1-3.684-.685ZM31.997 16.851v4.393l-13.11 2.413a15.735 15.735 0 0 1-9.252-1.665 12.721 12.721 0 0 0-8.606-.94l-1.03.193v-4.394l3.035 1.6a12.476 12.476 0 0 0 6.941 1.03l8.13-1.483c.974-.182 2.922-.532 2.922-.532l7.406-1.371a5.219 5.219 0 0 1 3.564.756Z\"/></g></g></g></svg>\n <img [src]=\"customLogoHtml ? noLogo && customLogoHtml : ''\">\n </a>\n\n <ng-content select=\"desy-header-subnav\"></ng-content>\n <desy-header-subnav *ngIf=\"!subnavComponent && subnavData && (subnavData.text || subnavData.html)\"\n [classes]=\"subnavData.classes\"\n [hiddenText]=\"subnavData.hiddenText\"\n [classesContainer]=\"subnavData.classesContainer\"\n [classesTooltip]=\"subnavData.classesTooltip\"\n [role]=\"subnavData.role\"\n [ariaLabel]=\"subnavData.ariaLabel\"\n [ariaDescribedBy]=\"subnavData.ariaDescribedBy\"\n [ariaLabelledBy]=\"subnavData.ariaLabelledBy\"\n [ariaHidden]=\"subnavData.ariaHidden\"\n [ariaDisabled]=\"subnavData.ariaDisabled\"\n [ariaControls]=\"subnavData.ariaControls\"\n [ariaCurrent]=\"subnavData.ariaCurrent\"\n [ariaLive]=\"subnavData.ariaLive\"\n [ariaExpanded]=\"subnavData.ariaExpanded\"\n [ariaErrorMessage]=\"subnavData.ariaErrorMessage\"\n [ariaHasPopup]=\"subnavData.ariaHasPopup\"\n [tabindex]=\"subnavData.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ html: subnavData.html, text: subnavData.text }\"></ng-container>\n <desy-nav *ngIf=\"subnavData && subnavData.items && subnavData.items.length > 0\"\n [hasNav]=\"true\"\n [idPrefix]=\"'header-subnav-nav-item'\"\n [classes]=\"'w-max max-w-64'\"\n [items]=\"subnavData.items\"\n [id]=\"'id-subnav-nav'\"\n [ariaLabel]=\"'Aplicaciones'\"></desy-nav>\n </desy-header-subnav>\n </div>\n\n <ng-content select=\"desy-header-navigation\"></ng-content>\n <desy-header-navigation *ngIf=\"!navigationComponent && navigationData && navigationData.items && navigationData.items.length > 0\"\n [idPrefix]=\"'header-nav-item'\"\n [classes]=\"navigationData.classes\"\n [items]=\"navigationData.items\"\n [ariaLabel]=\"'Menú principal'\"></desy-header-navigation>\n </div>\n\n <ng-container *desyCustomInnerContent=\"{ component: customNavigationComponent, html: customNavigationHtml }\"></ng-container>\n\n <ng-content select=\"desy-header-dropdown\"></ng-content>\n <ng-container *ngIf=\"!dropdownComponent && dropdownData && dropdownData.items && dropdownData.items.length > 0\">\n <desy-header-dropdown [classes]=\"dropdownData.classes\"\n [hiddenText]=\"dropdownData.hiddenText\"\n [classesContainer]=\"dropdownData.classesContainer\"\n [classesTooltip]=\"dropdownData.classesTooltip\"\n [role]=\"dropdownData.role\"\n [ariaLabel]=\"dropdownData.ariaLabel\"\n [ariaDescribedBy]=\"dropdownData.ariaDescribedBy\"\n [ariaLabelledBy]=\"dropdownData.ariaLabelledBy\"\n [ariaHidden]=\"dropdownData.ariaHidden\"\n [ariaDisabled]=\"dropdownData.ariaDisabled\"\n [ariaControls]=\"dropdownData.ariaControls\"\n [ariaCurrent]=\"dropdownData.ariaCurrent\"\n [ariaLive]=\"dropdownData.ariaLive\"\n [ariaExpanded]=\"dropdownData.ariaExpanded\"\n [ariaErrorMessage]=\"dropdownData.ariaErrorMessage\"\n [ariaHasPopup]=\"dropdownData.ariaHasPopup\"\n [tabindex]=\"dropdownData.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ html: dropdownData.html, text: dropdownData.text }\"></ng-container>\n <desy-nav [hasNav]=\"true\"\n [idPrefix]=\"'header-dropdown-nav-item'\"\n [classes]=\"'w-max max-w-64'\"\n [items]=\"dropdownData.items\"\n [id]=\"'id-dropdown-nav'\"\n [ariaLabel]=\"'Menú de usuario'\"></desy-nav>\n </desy-header-dropdown>\n </ng-container>\n\n <ng-content select=\"desy-header-offcanvas\"></ng-content>\n <ng-container *ngIf=\"!offcanvasComponent && offcanvasData\">\n <desy-header-offcanvas [classes]=\"offcanvasData.classes\">\n <desy-header-offcanvas-button>\n <ng-container *desyCustomInnerContent=\"{ html: offcanvasData.html, text: offcanvasData.text }\"></ng-container>\n </desy-header-offcanvas-button>\n <desy-header-offcanvas-close-button>{{ offcanvasData.textClose }}</desy-header-offcanvas-close-button>\n <desy-content>\n <ng-container *desyCustomInnerContent=\"{ template: offcanvasData.contentHtml }\"></ng-container>\n </desy-content>\n </desy-header-offcanvas>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n</header>\n","import {Component, Input} from '@angular/core';\nimport {NavigationItemData} from '../../../../interfaces';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-footer-navigation-item',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class FooterNavigationItemComponent extends ContentBaseComponent implements NavigationItemData {\n @Input() href?: string;\n @Input() routerLink?: string;\n @Input() fragment?: string;\n}\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport {NavigationData} from '../../../interfaces';\nimport {FooterNavigationItemComponent} from './footer-navigation-item/footer-navigation-item.component';\n\n@Component({\n selector: 'desy-footer-navigation',\n templateUrl: './footer-navigation.component.html'\n})\nexport class FooterNavigationComponent implements NavigationData {\n @Input() title: string;\n @Input() columns: number;\n\n @ContentChildren(FooterNavigationItemComponent) itemComponents: QueryList<FooterNavigationItemComponent>;\n}\n","","import {Component, Input} from '@angular/core';\nimport {MetaItemData} from '../../../../interfaces';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-footer-meta-item',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class FooterMetaItemComponent extends ContentBaseComponent implements MetaItemData {\n @Input() href?: string;\n @Input() routerLink?: string;\n @Input() fragment?: string;\n}\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport {MetaData} from '../../../interfaces';\nimport {FooterMetaItemComponent} from './footer-meta-item/footer-meta-item.component';\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-footer-meta',\n template: ''\n})\nexport class FooterMetaComponent extends ContentBaseComponent implements MetaData {\n\n @Input() visuallyHiddenTitle: string;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n @ContentChildren(FooterMetaItemComponent) itemComponents: QueryList<FooterMetaItemComponent>;\n}\n","import { DescriptionComponent } from './../../../desy-commons/components/description/description.component';\nimport { DescriptionData } from '../../../desy-commons/interfaces/';\nimport {Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport {MetaData, MetaItemData, NavigationData, NavigationItemData} from '../../interfaces';\nimport {IconData} from '../../../desy-commons/interfaces';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\nimport {FooterNavigationComponent} from './footer-navigation/footer-navigation.component';\nimport {FooterMetaComponent} from './footer-meta/footer-meta.component';\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\n\n\n@Component({\n selector: 'desy-footer',\n templateUrl: './footer.component.html'\n})\nexport class FooterComponent extends AccessibilityComponent {\n\n @Input() meta: MetaData;\n @Input() navigation: NavigationData[];\n @Input() icon: IconData;\n @Input() containerClasses: string;\n @Input() classes: string;\n @Input() description: DescriptionData;\n @Input() noLogo: boolean;\n\n @DesyContentChild()\n @ContentChildren(IconComponent) iconComponent: IconComponent;\n\n @DesyContentChild()\n @ContentChildren(FooterMetaComponent) metaComponent: FooterMetaComponent;\n\n @DesyContentChild()\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent\n\n @ContentChildren(FooterNavigationComponent) navigationComponent: QueryList<FooterNavigationComponent>;\n\n\n getNavigationItems(): NavigationData[] {\n const navItems = this.navigationComponent && this.navigationComponent.length > 0 ? this.navigationComponent.toArray() : this.navigation;\n return navItems && navItems.length > 0 ? navItems : null;\n }\n\n getNavigationItemItems(navigation: NavigationData): NavigationItemData[] {\n return navigation instanceof FooterNavigationComponent ? navigation.itemComponents.toArray() : navigation.items;\n }\n\n getMetaItems(meta: MetaData): MetaItemData[] {\n return meta instanceof FooterMetaComponent ? meta.itemComponents.toArray() : meta.items;\n }\n\n getMetaContent(meta: MetaData): ContentComponent {\n return meta instanceof FooterMetaComponent ? meta.contentComponent : null;\n }\n}\n","<footer [class]=\"['py-base bg-neutral-lighter border-t border-neutral-base text-xs lg:text-sm text-neutral-dark', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <div [class]=\"['container mx-auto px-base', containerClasses] | makeHtmlList\">\n <ng-container *ngIf=\"getNavigationItems()\">\n <div class=\"flex flex-col lg:flex-row flex-wrap gap-base\">\n <div class=\"flex-1\" *ngFor=\"let nav of getNavigationItems()\">\n <div class=\"lg:flex-1\">\n <h3 class=\"c-h3 mb-base\">{{nav.title}}</h3>\n </div>\n <ul [class]=\"'grid grid-cols-1 gap-base lg:grid-cols-' + nav.columns\">\n <li class=\"mb-xs\" *ngFor=\"let item of getNavigationItemItems(nav)\">\n <ng-container *ngTemplateOutlet=\"item.href !== null ? itemHref : itemRouterLink; context: {item: item}\"></ng-container>\n </li>\n </ul>\n </div>\n </div>\n <hr class=\"my-base border-t border-neutral-base\">\n </ng-container>\n\n <div class=\"flex flex-wrap flex-col lg:flex-row justify-between\">\n <div class=\"mb-base\">\n <ng-template #metaTemplate let-metaElement=\"metaElement\">\n <ng-container *ngIf=\"metaElement\">\n <h2 class=\"sr-only\">{{(metaElement.visuallyHiddenTitle ? metaElement.visuallyHiddenTitle : 'Enlaces de pie de página')}}</h2>\n <ul class=\"flex flex-col lg:flex-row lg:flex-wrap mb-base\" *ngIf=\"getMetaItems(metaElement)\">\n <li class=\"mb-sm mr-base\" *ngFor=\"let item of getMetaItems(metaElement)\">\n <ng-container *ngTemplateOutlet=\"item.href !== null ? itemHref : itemRouterLink; context: {item: item}\"></ng-container>\n </li>\n </ul>\n <div class=\"mb-sm\" *ngIf=\"getMetaContent(metaElement) || metaElement.html || metaElement.text\">\n <p>\n <ng-container *desyCustomInnerContent=\"{ component: getMetaContent(metaElement), html: metaElement.html, text: metaElement.text }\"></ng-container>\n </p>\n </div>\n </ng-container>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"metaTemplate; context: { metaElement: metaComponent ? metaComponent : meta }\"></ng-container>\n\n <!-- Description -->\n <div *ngIf=\"descriptionComponent || description?.html || description?.text; else noDesc\">\n <h2 class=\"sr-only\">{{descriptionComponent?.visuallyHiddenTitle ? descriptionComponent?.visuallyHiddenTitle : description?.visuallyHiddenTitle ? description?.visuallyHiddenTitle : 'Acerca de'}}</h2>\n <ng-container *desyCustomInnerContent=\"{ component: descriptionComponent, html: description?.html, text: description?.text }\"></ng-container>\n </div>\n <ng-template #noDesc>\n <div class=\"leading-tight\">\n <p>\n Todo el contenido bajo\n <a class=\"c-link c-link--neutral\" href=\"https://creativecommons.org/licenses/by/4.0/legalcode.es\" rel=\"license\"\n target=\"_blank\">licencia CC BY 4.0</a>\n </p>\n </div>\n <div class=\"leading-tight\">\n <p>\n <a target=\"_blank\" class=\"c-link c-link--neutral\" href=\"https://www.aragon.es/\">Gobierno de Aragón</a>. Edificio\n Pignatelli. <abbr title=”Paseo”>Pº</abbr> María Agustín, 36. 50004 - Zaragoza - <abbr title=\"Teléfono\"\n class=\"no-underline\">Tel.</abbr> <a href=\"tel:+976714000\" class=\"c-link c-link--neutral\">976 714 000</a>\n </p>\n </div>\n </ng-template>\n\n </div>\n <div class=\"mb-base lg:pl-base overflow-hidden\">\n <p *ngIf=\"iconComponent || icon?.html\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon?.html }\"></ng-container>\n </p>\n <p *ngIf=\"!noLogo\">\n <a href=\"http://www.aragon.es/Fondos_Europeos\" target=\"_blank\" class=\"inline-block text-sm c-link no-underline\" title=\"Más información sobre los Fondos Estructurales y de Inversión Europeos (Fondos EIE)\">\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ón Europea. Fondo Europeo de Desarrollo Regional (FEDER). Construyendo Europa desde Aragón.\"><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ÓN 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\">“Construyendo Europa desde Aragón”</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>\n </a>\n </p>\n </div>\n </div>\n </div>\n</footer>\n\n<ng-template #itemHref let-item=\"item\">\n <a class=\"c-link font-semibold\" [href]=\"item.href | externalHref\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </a>\n</ng-template>\n\n<ng-template #itemRouterLink let-item=\"item\">\n <a class=\"c-link font-semibold\" [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item.text }\"></ng-container>\n </a>\n</ng-template>\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {ErrorSummaryData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-error-summary-item',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ErrorSummaryItemComponent extends ContentBaseComponent implements ErrorSummaryData {\n\n @Input() fragment: string;\n @Input() id: string;\n}\n","import {\n Component,\n Input,\n ContentChildren,\n QueryList\n} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport {ErrorSummaryData} from '../../interfaces';\nimport {ErrorSummaryItemComponent} from './error-summary-item/error-summary-item.component';\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-error-summary',\n templateUrl: './error-summary.component.html'\n})\nexport class ErrorSummaryComponent extends AccessibilityComponent {\n\n @Input() titleText: string;\n @Input() titleHtml: string;\n @Input() descriptionText: string;\n @Input() descriptionHtml: string;\n @Input() classes: string;\n @Input() id: string;\n @Input() errorList: Array<ErrorSummaryData>;\n\n @DesyContentChild()\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\n\n @DesyContentChild()\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\n\n @ContentChildren(ErrorSummaryItemComponent) errorComponentList: QueryList<ErrorSummaryItemComponent>;\n\n lastErrorItemCount: number;\n\n getErrorItemList(): ErrorSummaryData[] {\n let errorItemList: ErrorSummaryData[];\n if (this.errorComponentList && this.errorComponentList.length > 0) {\n errorItemList = this.errorComponentList.toArray();\n } else {\n errorItemList = this.errorList ? this.errorList : null;\n }\n\n const lastLength = this.lastErrorItemCount;\n this.lastErrorItemCount = errorItemList ? errorItemList.length : null;\n\n return errorItemList;\n }\n}\n","<div [class]=\"['p-base bg-white border-2 border-alert-base', classes] | makeHtmlList\" tabindex=\"-1\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : 'alert'\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : 'error-summary-title'\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\">\n <h2 class=\"mb-base font-bold\" [attr.id]=\"ariaLabelledBy ? ariaLabelledBy :'error-summary-title'\">\n <ng-container *desyCustomInnerContent=\"{component: titleComponent, html: titleHtml, text: titleText}\"></ng-container>\n </h2>\n <div>\n <p *ngIf=\"(descriptionComponent && descriptionComponent.getContent()) || descriptionHtml || descriptionText\" class=\"mb-base\">\n <ng-container *desyCustomInnerContent=\"{component: descriptionComponent, html: descriptionHtml, text: descriptionText}\"></ng-container>\n </p>\n <ul class=\"font-semibold text-alert-base\">\n <ng-container *ngFor=\"let item of getErrorItemList(); index as i\">\n <li *ngIf=\"item.fragment\">\n <a routerLink=\"./\" [fragment]=\"item.fragment\" class=\"c-link c-link--alert\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-disabled]=\"item.ariaDisabled\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{component: item, html: item.html, text: item.text}\"></ng-container>\n </a>\n </li>\n <li *ngIf=\"!item.fragment\">\n <ng-container *desyCustomInnerContent=\"{component: item, html: item.html, text: item.text}\"></ng-container>\n </li>\n </ng-container>\n </ul>\n </div>\n</div>\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {MenuHorizontalItemData, MenuHorizontalItemEventData} from '../../../interfaces';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-menu-horizontal-item',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class MenuHorizontalItemComponent extends ContentBaseComponent implements MenuHorizontalItemData {\n\n @Input() href?: string;\n @Input() routerLink?: string|any[];\n @Input() fragment?: string;\n @Input() target?: string;\n @Input() id?: string;\n @Input() active?: boolean;\n @Input() disabled?: boolean;\n @Input() classes?: string;\n\n @Output() clickEvent = new EventEmitter<MenuHorizontalItemEventData>();\n @Output() activeChange = new EventEmitter<boolean>();\n\n}\n","import {Component, ContentChildren, EventEmitter, Input, OnChanges, Output, QueryList, SimpleChanges} from '@angular/core';\nimport { MenuHorizontalItemData, MenuHorizontalItemEventData } from '../../interfaces';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport {MenuHorizontalItemComponent} from './menu-horizontal-item/menu-horizontal-item.component';\n\n@Component({\n selector: 'desy-menu-horizontal',\n templateUrl: './menu-horizontal.component.html'\n})\nexport class MenuHorizontalComponent extends AccessibilityComponent {\n\n @Input() id: string;\n @Input() idPrefix: string;\n @Input() classes: string;\n @Input() items: MenuHorizontalItemData[];\n\n @ContentChildren(MenuHorizontalItemComponent) itemComponents: QueryList<MenuHorizontalItemComponent>;\n\n @Output() clickEvent = new EventEmitter<MenuHorizontalItemEventData>();\n\n onClick(event: any, item: MenuHorizontalItemData): void {\n const itemsActiveChange = [];\n if (!item.active) {\n itemsActiveChange.push(item);\n }\n\n const itemList = this.getItemList();\n itemList.forEach(i => {\n if (i.active && i !== item) {\n itemsActiveChange.push(i);\n }\n i.active = false;\n });\n item.active = true;\n\n // Se emite el evento sólo para los items cuyo valor de active ha sido modificado\n itemsActiveChange.forEach(i => {\n if (i instanceof MenuHorizontalItemComponent) {\n i.activeChange.emit(i.active);\n }\n });\n\n this.clickEvent.emit({ item, event });\n if (item instanceof MenuHorizontalItemComponent) {\n item.clickEvent.emit({ item, event });\n }\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : 'menu-item';\n }\n\n getItemList(): MenuHorizontalItemData[] {\n const itemList = this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items; \n return itemList;\n }\n\n\n getItemId(item: MenuHorizontalItemData, index: number): string {\n let id;\n if (item.id) {\n id = item.id;\n } else if (index === 0) {\n id = this.getIdPrefix();\n } else {\n id = this.getIdPrefix() + '-' + index;\n }\n return id;\n }\n}\n","<!-- menu-horizontal -->\n<nav [class]=\"['c-menu-horizontal', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul class=\"c-menu-horizontal__list lg:flex lg:flex-wrap\">\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\n <li *ngIf=\"item\">\n <span *ngIf=\"item.active; else elseBlock\" [attr.id]=\"getItemId(item, i)\"\n [class]=\"['c-menu-horizontal__active flex items-center relative py-sm lg:px-lg lg:py-base border border-transparent truncate font-semibold', item.classes] | makeHtmlList\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n aria-current=\"page\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\n <strong>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </span>\n <ng-template #elseBlock>\n <a *ngIf=\"item.routerLink && !item.href\" (click)=\"onClick($event, item)\"\n [attr.id]=\"getItemId(item, i)\"\n [routerLink]=\"item.routerLink\"\n [fragment]=\"item.fragment\"\n [class]=\"['c-menu-horizontal__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', item.classes] | makeHtmlList\"\n [ngClass]=\"{'no-underline pointer-events-none': item.disabled}\"\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\n <span class=\"flex items-center pointer-events-none\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </span>\n </a>\n <a *ngIf=\"!item.routerLink && item.href\" (click)=\"onClick($event, item)\"\n [attr.id]=\"getItemId(item, i)\"\n [href]=\"item.href | externalHref\"\n [target]=\"item.target\"\n [class]=\"['c-menu-horizontal__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', item.classes] | makeHtmlList\"\n [ngClass]=\"{'no-underline pointer-events-none': item.disabled}\"\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\">\n <span class=\"flex items-center pointer-events-none\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </span>\n </a>\n </ng-template>\n </li>\n </ng-container>\n </ul>\n</nav>\n<!-- /menu-horizontal -->\n","import {Component, Input} from '@angular/core';\nimport {MenuVerticalSubItemsData} from '../../../interfaces';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-menu-vertical-item-sub-item',\n templateUrl: './menu-vertical-item-sub-item.component.html'\n})\nexport class MenuVerticalItemSubItemComponent extends ContentBaseComponent implements MenuVerticalSubItemsData {\n\n @Input() id?: string;\n @Input() classes?: string;\n @Input() href?: string;\n @Input() routerLink?: string;\n @Input() routerLinkActiveClasses?: string;\n @Input() fragment?: string;\n @Input() target?: string;\n @Input() disabled?: boolean;\n @Input() active?: boolean;\n @Input() divider?: boolean;\n @Input() title?: string;\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport {MenuVerticalSubData} from '../../../interfaces';\nimport {MenuVerticalItemSubItemComponent} from '../menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-menu-vertical-item-sub',\n templateUrl: './menu-vertical-item-sub.component.html'\n})\nexport class MenuVerticalItemSubComponent extends ContentBaseComponent implements MenuVerticalSubData {\n @Input() classes?: string;\n\n @ContentChildren(MenuVerticalItemSubItemComponent) itemComponents: QueryList<MenuVerticalItemSubItemComponent>;\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Component, ContentChildren, Input} from '@angular/core';\nimport {MenuVerticalItemsData} from '../../../interfaces';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {MenuVerticalItemSubComponent} from '../menu-vertical-item-sub/menu-vertical-item-sub.component';\n\n@Component({\n selector: 'desy-menu-vertical-item',\n templateUrl: './menu-vertical-item.component.html'\n})\nexport class MenuVerticalItemComponent extends ContentBaseComponent implements MenuVerticalItemsData {\n\n @Input() id?: string;\n @Input() classes?: string;\n @Input() href?: string;\n @Input() routerLink?: string;\n @Input() routerLinkActiveClasses?: string;\n @Input() fragment?: string;\n @Input() target?: string;\n @Input() disabled?: boolean;\n @Input() active?: boolean;\n @Input() divider?: boolean;\n @Input() title?: string;\n @Input() expanded?: boolean; // no se utiliza\n\n @DesyContentChild()\n @ContentChildren(MenuVerticalItemSubComponent) subComponent: MenuVerticalItemSubComponent;\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Component, Input, ContentChildren, QueryList} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport {MenuVerticalItemsData, MenuVerticalSubData, MenuVerticalSubItemsData} from '../../interfaces';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { StringUtils } from '../../../shared/utils/string-utils';\nimport {MenuVerticalItemComponent} from './menu-vertical-item/menu-vertical-item.component';\nimport {MenuVerticalItemSubComponent} from './menu-vertical-item-sub/menu-vertical-item-sub.component';\n\n@Component({\n selector: 'desy-menu-vertical',\n templateUrl: './menu-vertical.component.html',\n animations: [\n trigger('displayMenuVertical', [\n state('void', style({\n opacity: '0.0',\n transform: 'scale(0.95)'\n })),\n state('*', style({\n opacity: '1.0',\n transform: 'scale(1.0)'\n })),\n transition(':enter', [\n animate('100ms ease-out')\n ])\n ])\n ]\n})\nexport class MenuVerticalComponent extends AccessibilityComponent {\n\n @Input() id: string;\n @Input() idPrefix: string;\n @Input() items: MenuVerticalItemsData[];\n @Input() hasUnderline: boolean;\n @Input() classes: string;\n\n @ContentChildren(MenuVerticalItemComponent) itemComponents: QueryList<MenuVerticalItemComponent>;\n\n getItemHtml(item: MenuVerticalItemsData): string {\n let itemHtml: string;\n if (item.active) {\n itemHtml = item.html ? `<strong>${ item.html }</strong>` : `<strong>${ StringUtils.escapeHtml(item.text) }</strong>`;\n } else {\n itemHtml = item.html;\n }\n\n return itemHtml;\n }\n\n getId(item: MenuVerticalItemsData, i: number): string {\n if (item.id) {\n return item.id;\n } else {\n const idPrefix = this.idPrefix ? this.idPrefix : 'nav-item';\n if (i === 0) {\n return idPrefix + '-0';\n } else {\n return idPrefix + '-' + i;\n }\n }\n }\n\n getSubItemId(item: MenuVerticalItemsData, itemIndex: number, subItemIndex: number): string{\n let subItemId: string;\n const sub = this.getItemSub(item);\n const subItems = this.getSubItems(sub);\n const subItem = subItems[subItemIndex];\n if (subItem) {\n if (subItem.id) {\n subItemId = subItem.id;\n } else {\n const itemId = this.getId(item, itemIndex);\n subItemId = subItemIndex === 0 ? `sub-${itemId}` : `sub-${itemId}-${subItemIndex}`;\n }\n }\n\n return subItemId;\n }\n\n getItems(): MenuVerticalItemsData[] {\n const itemList = this.itemComponents && this.itemComponents.length > 0 ? this.itemComponents.toArray() : this.items;\n return itemList;\n }\n\n getItemSub(item: MenuVerticalItemsData): MenuVerticalSubData {\n return item instanceof MenuVerticalItemComponent ? item.subComponent : item.sub;\n }\n\n getSubItems(sub: MenuVerticalSubData): MenuVerticalSubItemsData[] {\n const subItems = sub instanceof MenuVerticalItemSubComponent ? sub.itemComponents.toArray() : sub.items;\n return subItems && subItems.length > 0 ? subItems : null;\n }\n}\n","<!--\n Template para ser utilizado tanto por los items como por los subitems:\n - item: Item que representa\n - index: indice del item en la lista\n - id: identificador del item\n - isRoot: si pertenece al nivel raiz\n-->\n<ng-template #itemTemplate let-item=\"item\" let-index=\"index\" let-id=\"id\" let-sub=\"sub\" let-isRoot=\"isRoot\">\n <ng-container *ngIf=\"item\">\n <li class=\"m-base\" [ngClass]=\"{'origin-top-left text-sm': !isRoot}\">\n <ng-container *ngIf=\"item.href || item.routerLink; else notHref\">\n <a *ngIf=\"item.href; else hasRouterLink\" [attr.id]=\"id\"\n [href]=\"item.href | externalHref\"\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{\n 'underline': hasUnderline,\n 'hover:text-primary-base hover:underline': !item.disabled,\n 'no-underline pointer-events-none': item.disabled,\n 'font-bold': item.active\n }\"\n [attr.title]=\"item.title\"\n [attr.tabindex]=\"item.disabled ? -1 : null\"\n [attr.target]=\"item.target ? item.target : null\"\n [attr.aria-current]=\"item.active ? 'page' : null\"\n [attr.aria-disabled]=\"item.disabled\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\n </a>\n <ng-template #hasRouterLink>\n <!-- Todos los enlaces que admiten o href o routerLink estaría bien unificarlos (en todos los componentes).\n Para ello, sería necesario crear una directiva para añadir o quitar la directiva routerLink si no tiene href.\n Sin embargo, esto no es posible actualmente, ya que Angular todavía no permite añadir directivas dinámicamente:\n https://angular.io/guide/roadmap#support-adding-directives-to-host-elements -->\n <a [attr.id]=\"id\"\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment ? item.fragment : null\"\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : []\"\n [class]=\"['block px-xs focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{\n 'underline': hasUnderline,\n 'hover:text-primary-base hover:underline': !item.disabled,\n 'no-underline pointer-events-none': item.disabled,\n 'font-bold': item.active\n }\"\n [attr.title]=\"item.title\"\n [attr.tabindex]=\"item.disabled ? -1 : null\"\n [attr.target]=\"item.target ? item.target : null\"\n [attr.aria-current]=\"item.active ? 'page' : null\"\n [attr.aria-disabled]=\"item.disabled\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\n </a>\n </ng-template>\n </ng-container>\n <ng-template #notHref>\n <span [attr.id]=\"id\"\n [class]=\"['block px-xs', item.classes] | makeHtmlList\"\n [ngClass]=\"{'font-bold': item.active}\"\n\n [attr.title]=\"item.title\"\n [attr.tabindex]=\"item.disabled ? -1 : null\"\n [attr.aria-current]=\"item.active ? 'page' : null\"\n [attr.aria-disabled]=\"item.disabled\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: getItemHtml(item), text: item.text }\"></ng-container>\n </span>\n </ng-template>\n <ng-container *ngIf=\"isRoot && sub\">\n <ul *ngIf=\"getSubItems(sub)\" [ngClass]=\"sub.classes\"\n [attr.aria-describedby]=\"sub.ariaDescribedBy\"\n [attr.aria-errormessage]=\"sub.ariaErrorMessage\"\n [attr.aria-label]=\"sub.ariaLabel\"\n [attr.aria-labelledby]=\"sub.ariaLabelledBy\"\n [attr.aria-hidden]=\"sub.ariaHidden\"\n [attr.aria-disabled]=\"sub.ariaDisabled\"\n [attr.aria-controls]=\"sub.ariaControls\"\n [attr.aria-current]=\"sub.ariaCurrent\"\n [attr.aria-live]=\"sub.ariaLive\"\n [attr.aria-expanded]=\"sub.ariaExpanded\"\n [attr.aria-haspopup]=\"sub.ariaHasPopup\"\n [attr.tabindex]=\"sub.tabindex\">\n <ng-container *ngFor=\"let subItem of getSubItems(sub); index as subIndex\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{\n item: subItem,\n id: getSubItemId(item, index, subIndex),\n index: subIndex,\n isRoot: false\n }\">\n </ng-container>\n </ng-container>\n </ul>\n <div *ngIf=\"!getSubItems(sub)\"\n [class]=\"['mb-base px-xs origin-top-left text-sm text-neutral-dark', sub.classes] | makeHtmlList\"\n [id]=\"'sub-' + id\">\n <ng-container *desyCustomInnerContent=\"{ component: sub, html: sub.html }\"></ng-container>\n </div>\n </ng-container>\n </li>\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\n <div class=\"sr-only\">Separador</div>\n </li>\n </ng-container>\n</ng-template>\n\n<nav [ngClass]=\"classes\"\n [attr.role]=\"(role ? role : null)\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <ul class=\"text-base\">\n <ng-container *ngFor=\"let item of getItems(); index as index\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, id: getId(item, index), index: index, sub: getItemSub(item), isRoot: true }\">\n </ng-container>\n </ng-container>\n </ul>\n</nav>\n","import {\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n Output,\n QueryList,\n AfterContentChecked\n} from '@angular/core';\n\n@Directive({\n selector: '[desyMenubaritem]'\n})\nexport class MenubaritemDirective implements AfterContentChecked {\n @ContentChild('link', { read: ElementRef }) link: ElementRef;\n @ContentChild('itemContentWrapper', { read: ElementRef }) itemContentWrapper: ElementRef;\n @ContentChild('popupMenu', { read: ElementRef }) popupMenu: ElementRef;\n @ContentChildren('popupMenuItem', { read: ElementRef, descendants: true}) popupMenuItems: QueryList<ElementRef>;\n\n @Output() contentChanged: EventEmitter<any> = new EventEmitter();\n\n private lastPopupMenu: ElementRef;\n private lastPopupMenuItems: QueryList<ElementRef>;\n private lastItemContentWrapper: ElementRef;\n private lastLink: ElementRef;\n\n contentHasBeenChecked = false;\n\n constructor(public elementRef: ElementRef) { }\n\n ngAfterContentChecked(): void {\n if (this.popupMenu !== this.lastPopupMenu || this.popupMenuItems !== this.lastPopupMenuItems\n || this.link !== this.lastLink || this.itemContentWrapper !== this.lastItemContentWrapper) {\n setTimeout(() => this.contentChanged.emit());\n this.lastPopupMenu = this.popupMenu;\n this.lastPopupMenuItems = this.popupMenuItems;\n this.lastLink = this.link;\n this.lastItemContentWrapper = this.itemContentWrapper;\n }\n\n if (!this.contentHasBeenChecked) {\n setTimeout(() => this.contentHasBeenChecked = true);\n }\n }\n\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {MenubarItemSubItemSubItem} from '../../../../interfaces/menubar-item-sub-item-sub-item';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-menubar-subsubitem',\n templateUrl: './menubar-subsubitem.component.html'\n})\nexport class MenubarSubsubitemComponent extends ContentBaseComponent implements MenubarItemSubItemSubItem {\n\n @Input() html?: string;\n @Input() text?: string;\n @Input() checked?: boolean;\n\n @Output() selected = new EventEmitter<any>();\n @Output() checkedChange = new EventEmitter<boolean>();\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport {MenubarItemSubItem} from '../../../../interfaces/menubar-item-sub-item';\nimport {MenubarItemSubItemSubItem} from '../../../../interfaces/menubar-item-sub-item-sub-item';\nimport {MenubarSubsubitemComponent} from '../menubar-subsubitem/menubar-subsubitem.component';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-menubar-subitem',\n templateUrl: './menubar-subitem.component.html'\n})\nexport class MenubarSubitemComponent extends ContentBaseComponent implements MenubarItemSubItem {\n\n @Input() text?: string;\n @Input() html?: string;\n @Input() checked?: boolean;\n @Input() items?: MenubarItemSubItemSubItem[];\n\n @Output() selected = new EventEmitter<any>();\n @Output() checkedChange = new EventEmitter<boolean>();\n\n @ContentChildren(MenubarSubsubitemComponent) subItems: QueryList<MenubarSubsubitemComponent>;\n\n public getSubItems(): MenubarSubsubitemComponent[] {\n return this.subItems.toArray();\n }\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport {MenubarItem} from '../../../../interfaces/menubar-item';\nimport {MenubarItemSub} from '../../../../interfaces/menubar-item-sub';\nimport {ContentBaseComponent} from '../../../../../shared/components';\nimport {MenubarSubitemComponent} from '../menubar-subitem/menubar-subitem.component';\n\n@Component({\n selector: 'desy-menubar-item',\n templateUrl: './menubar-item.component.html'\n})\nexport class MenubarItemComponent extends ContentBaseComponent implements MenubarItem {\n\n @Input() href?: string;\n @Input() target?: string;\n @Input() routerLink?: string|any[];\n @Input() routerLinkActiveClasses?: string;\n @Input() fragment?: string;\n @Input() text?: string;\n @Input() html?: string;\n @Input() id?: string;\n @Input() sub?: MenubarItemSub;\n @Input() classes?: string;\n\n @Input() title?: string;\n @Input() disabled?: boolean;\n @Input() active?: boolean;\n\n @Output() selected = new EventEmitter<any>();\n\n @ContentChildren(MenubarSubitemComponent) subItems: QueryList<MenubarSubitemComponent>;\n\n public getSubItems(): MenubarSubitemComponent[] {\n return this.subItems.toArray();\n }\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../../shared/components';\n\n@Component({\n selector: 'desy-menubar-label',\n templateUrl: './menubar-label.component.html'\n})\nexport class MenubarLabelComponent extends ContentBaseComponent {\n\n @Input() classes: string;\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\n\n@Directive({\n selector: '[desyAttributeChange]'\n})\nexport class AttributeChangeDirective implements OnDestroy {\n\n private changes: MutationObserver;\n\n @Input() attributesToCheck: string|string[];\n\n @Output()\n public desyAttributeChange = new EventEmitter();\n\n @Output()\n public desyAttributeChangeMutation = new EventEmitter();\n\n constructor(private elementRef: ElementRef) {\n const element = this.elementRef.nativeElement;\n\n this.changes = new MutationObserver((mutations: MutationRecord[]) => {\n mutations.forEach((mutation: MutationRecord) => {\n if (this.attributesToCheck) {\n const attrs = typeof (this.attributesToCheck) === 'string' ? [this.attributesToCheck] : this.attributesToCheck;\n if (attrs.findIndex(v => v === mutation.attributeName) >= 0) {\n this.desyAttributeChange.emit(this.elementRef.nativeElement.innerHTML);\n this.desyAttributeChangeMutation.emit(mutation);\n }\n }\n });\n }\n );\n\n this.changes.observe(element, {\n attributes: true,\n childList: false,\n characterData: false,\n subtree: false\n });\n }\n\n ngOnDestroy(): void {\n this.changes.disconnect();\n }\n}\n","import {\n AfterViewInit, ChangeDetectorRef,\n Component, ContentChildren,\n ElementRef, EventEmitter,\n HostBinding,\n Input,\n OnChanges, Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport {MenubarItem} from '../../interfaces/menubar-item';\nimport {MenubaritemDirective} from './directives/menubaritem.directive';\nimport {MenubarItemSubItem} from '../../interfaces/menubar-item-sub-item';\nimport {MenubarItemSubItemSubItem} from '../../interfaces/menubar-item-sub-item-sub-item';\nimport {LabelComponent} from '../../../desy-forms/components/label/label.component';\nimport {LabelData} from '../../../desy-forms/interfaces';\nimport {StringUtils} from '../../../shared/utils/string-utils';\nimport {MenubarItemComponent} from './components/menubar-item/menubar-item.component';\nimport {MenubarSubitemComponent} from './components/menubar-subitem/menubar-subitem.component';\nimport {MenubarSubsubitemComponent} from './components/menubar-subsubitem/menubar-subsubitem.component';\nimport {MenubarLabelComponent} from './components/menubar-label/menubar-label.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-menubar',\n templateUrl: './menubar.component.html'\n})\nexport class MenubarComponent extends AccessibilityComponent implements OnChanges, AfterViewInit {\n\n @Input() idPrefix: string;\n @Input() items: MenubarItem[];\n @Output() itemsChange = new EventEmitter<MenubarItem[]>();\n @Output() activeItemChange = new EventEmitter<MenubarItem>();\n @Output() activeSubItemChange = new EventEmitter<MenubarItemSubItem|MenubarItemSubItemSubItem>();\n\n /**\n * label, diferentes formas de implementar, enumeradas por prioridad\n * 1) incluir componente menubar-label anidado\n * 2) incluir template\n * 3) incluir objeto label (interfaz expuesta)\n * 4) incluir legendText - incluir un label con solo un texto\n */\n @Input() labelRef: TemplateRef<LabelComponent>;\n @Input() labelData: LabelData;\n @Input() labelText: string;\n\n @Input() @HostBinding('class') classes: any;\n @HostBinding('class.c-menubar') cfg = true\n @Input() @HostBinding('attr.id') id: any;\n\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.aria-modal') ariaModalData: any\n\n @ViewChild('menubar', { read: ElementRef }) menubar: ElementRef;\n @ViewChildren(MenubaritemDirective) menuItems: QueryList<MenubaritemDirective>;\n @DesyContentChild() @ContentChildren(MenubarLabelComponent) labelComponent: MenubarLabelComponent;\n @ContentChildren(MenubarItemComponent) itemComponentList: QueryList<MenubarItemComponent>;\n\n menuData: any[];\n viewInit = false;\n isFocused: boolean;\n currentFocusItemIndex = 0;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnChanges(changes?: SimpleChanges): void {\n this.roleData = this.role ? this.role : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\n if (this.viewInit) {\n this.checkChanges();\n }\n }\n\n ngAfterViewInit(): void {\n this.viewInit = true;\n this.checkChanges();\n }\n\n checkChanges(): void {\n if (!this.menuItems) {\n return;\n }\n \n this.menuData = [];\n this.getItems().forEach((_, index) => {\n const itemData = {\n open: false,\n currentFocusSubItemIndex: 0,\n currentFocusSubSubItemIndex: 0,\n menuItem: this.menuItems.toArray()[index]\n };\n this.menuData.push(itemData);\n });\n\n if (this.viewInit) {\n this.checkRequired();\n }\n\n\n const lastCurrentFocusItemIndex = this.currentFocusItemIndex;\n const items = this.getItems();\n if (items) {\n while (!this.isItemFocusable(this.currentFocusItemIndex % items.length)) {\n this.currentFocusItemIndex = (this.currentFocusItemIndex + items.length + 1) % items.length;\n if (this.currentFocusItemIndex === lastCurrentFocusItemIndex) {\n break;\n }\n }\n }\n }\n\n\n /*\n * Eventos\n */\n\n handleMenuFocusIn(): void {\n this.isFocused = true;\n this.changeDetectorRef.detectChanges();\n }\n\n handleMenuFocusOut(event): void {\n if (!this.menubar.nativeElement.contains(event.relatedTarget)) {\n this.closeMenu();\n }\n this.isFocused = false;\n this.changeDetectorRef.detectChanges();\n }\n\n handleMenuItemClick(event, itemIndex: number): void {\n if (this.hasPopupMenu(itemIndex)) {\n event.preventDefault();\n const isOpen = this.menuData[itemIndex].open;\n this.closeMenu();\n if (!isOpen) {\n this.openMenu(itemIndex);\n }\n } else {\n this.activateMenuItem(itemIndex);\n }\n }\n\n handleMenuItemKeydown(event: KeyboardEvent, itemIndex: number): void {\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n if (this.hasPopupMenu(itemIndex)) {\n this.openMenu(itemIndex);\n setTimeout(() => this.focusFirstSubItem(itemIndex));\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n\n case 'Escape':\n if (this.hasPopupMenu(itemIndex)) {\n this.closeMenu(itemIndex);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n this.focusNextAvailableItem(itemIndex, -1);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n this.focusNextAvailableItem(itemIndex, +1);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n if (this.hasPopupMenu(itemIndex)) {\n this.openMenu(itemIndex);\n setTimeout(() => this.focusLastSubItem(itemIndex));\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Home':\n case 'PageUp':\n if (this.hasPopupMenu(itemIndex)) {\n this.closeMenu();\n }\n this.focusFirstItem();\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'End':\n case 'PageDown':\n if (this.hasPopupMenu(itemIndex)) {\n this.closeMenu();\n }\n this.focusLastItem();\n event.stopPropagation();\n event.preventDefault();\n break;\n\n default:\n if (this.isPrintableChar(event.key)) {\n this.focusItemByFirstChar(event.key);\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n }\n }\n\n handleMenuItemMouseOver(itemIndex: number): void {\n this.focusItem(itemIndex, true);\n }\n\n handlePopupMenuItemClick(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\n this.focusItem(itemIndex);\n this.closeMenu(itemIndex);\n }\n\n handlePopupMenuItemKeydown(event: KeyboardEvent, itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n const currentSubIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\n const currentSubSubIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\n const items = this.getItems();\n switch (event.key) {\n case ' ':\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\n if (this.mustCloseAfterSelectPopupItem(itemIndex, subItemIndex, subSubItemIndex)) {\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Enter':\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Escape':\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, -1);\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength - 1) % listLength);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, +1);\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength + 1) % listLength);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n this.closeMenu(itemIndex);\n this.focusItem((itemIndex + items.length - 1) % items.length);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n this.closeMenu(itemIndex);\n this.focusItem((itemIndex + items.length + 1) % items.length);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Home':\n case 'PageUp':\n this.focusFirstSubItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'End':\n case 'PageDown':\n this.focusLastSubItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Tab':\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n break;\n\n default:\n if (this.isPrintableChar(event.key)) {\n this.focusSubItemByFirstChar(itemIndex, event.key);\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n }\n }\n\n handlePopupMenuItemMouseOver(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n this.focusSubItem(itemIndex, subItemIndex, subSubItemIndex);\n }\n\n /*\n * Comunes\n */\n\n checkRequired(): void {\n\n\n const items = this.getItems();\n\n // No se ha puesto label required porque en algunos ejemplos de desy-html no aparece\n }\n\n\n activateMenuItem(itemIndex: number): void {\n const items = this.getItems();\n this.activeItemChange.emit(items[itemIndex] as MenubarItem);\n if (items[itemIndex] instanceof MenubarItemComponent) {\n (items[itemIndex] as MenubarItemComponent).selected.emit();\n }\n }\n\n activatePopupMenuItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\n let subSubItems = [];\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\n subSubItems = this.getSubItemSubitems(item);\n item = subSubItems[subSubItemIndex];\n }\n\n let checkedChange = false;\n if (item.role === 'menuitemcheckbox') {\n item.checked = !item.checked;\n checkedChange = true;\n } else if (item.role === 'menuitemradio') {\n checkedChange = !item.checked;\n subSubItems.forEach(i => i.checked = false);\n item.checked = true;\n }\n\n this.itemsChange.emit(items);\n this.activeSubItemChange.emit(item as MenubarItem);\n if (item instanceof MenubarSubitemComponent || item instanceof MenubarSubsubitemComponent) {\n item.selected.emit();\n\n if (checkedChange) {\n item.checkedChange.emit(item.checked);\n }\n }\n }\n\n mustCloseAfterSelectPopupItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\n const subSubItems = this.getSubItemSubitems(item);\n item = subSubItems[subSubItemIndex];\n }\n\n return item.role !== 'menuitemcheckbox' && item.role !== 'menuitemradio';\n }\n\n openMenu(itemIndex: number): void {\n const wasOpened = this.menuData[itemIndex].open;\n this.menuData[itemIndex].open = true;\n if (wasOpened) {\n this.activateMenuItem(itemIndex);\n }\n }\n\n closeMenu(itemIndex?: number): void {\n if (itemIndex !== null && itemIndex !== undefined) {\n this.menuData[itemIndex].open = false;\n } else {\n this.menuData.forEach(item => item.open = false);\n }\n }\n\n hasPopupMenu(itemIndex: number): boolean {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n return items[itemIndex].sub && subItems && subItems.length > 0;\n }\n\n private isPrintableChar(str: string): boolean {\n return str.length === 1 && !!str.match(/\\S/);\n }\n\n private getMenuDataIndex(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): number {\n let menuDataIndex = 0;\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n for (let i = 0; i < subItemIndex; i++) {\n const subItem = subItems[i];\n const subSubItems = this.getSubItemSubitems(subItem);\n menuDataIndex += subSubItems && subSubItems.length > 0 ? subSubItems.length : 1;\n }\n\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\n menuDataIndex += subSubItemIndex;\n }\n\n return menuDataIndex;\n }\n\n /*\n * Comunes - focus\n */\n\n focusItem(itemIndex: number, hover?: boolean): void {\n const hasFocus = this.menubar.nativeElement.contains(document.activeElement);\n const isOpen = this.menuData[this.currentFocusItemIndex].open;\n\n if (!hover || hasFocus) {\n this.menuData[itemIndex].menuItem.link.nativeElement.focus();\n }\n\n this.closeMenu();\n if (isOpen && this.hasPopupMenu(itemIndex)) {\n this.openMenu(itemIndex);\n }\n\n this.currentFocusItemIndex = itemIndex;\n }\n\n focusNextAvailableItem(fromItemIndex: number, step: number): void {\n let nextItem = fromItemIndex;\n const items = this.getItems();\n do {\n nextItem = (nextItem + items.length + step) % items.length;\n } while (!this.isItemFocusable(nextItem) && nextItem !== fromItemIndex);\n\n if (nextItem !== fromItemIndex) {\n this.focusItem(nextItem);\n }\n }\n\n focusFirstItem(): void {\n if (this.isItemFocusable(0)) {\n this.focusItem(0);\n } else {\n this.focusNextAvailableItem(0, +1);\n }\n }\n\n focusLastItem(): void {\n const items = this.getItems();\n if (this.isItemFocusable(items.length - 1)) {\n this.focusItem(items.length - 1);\n } else {\n this.focusNextAvailableItem(items.length - 1, -1);\n }\n }\n\n isItemFocusable(itemIndex: number): boolean {\n return !this.getItems()[itemIndex].disabled;\n }\n\n focusItemByFirstChar(char: string): void {\n const itemContents: string[] = this.menuItems.map(menuItem => menuItem.itemContentWrapper.nativeElement.textContent);\n let index = this.currentFocusItemIndex;\n let foundIndex = -1;\n do {\n index = (index + itemContents.length + 1) % itemContents.length;\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\n && this.isItemFocusable(index)) {\n foundIndex = index;\n }\n } while (foundIndex === -1 && index !== this.currentFocusItemIndex);\n\n if (foundIndex >= 0) {\n this.focusItem(foundIndex);\n }\n }\n\n focusSubItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n if (this.menuData[itemIndex].menuItem.popupMenuItems.length > 0) {\n const menuDataIndex = this.getMenuDataIndex(itemIndex, subItemIndex, subSubItemIndex);\n\n this.menuData[itemIndex].currentFocusSubItemIndex = subItemIndex;\n this.menuData[itemIndex].currentFocusSubSubItemIndex = subSubItemIndex;\n const elem = this.menuData[itemIndex].menuItem.popupMenuItems.toArray()[menuDataIndex].nativeElement;\n if (elem) {\n elem.focus();\n } else {\n console.error('No subitem to focus');\n }\n } else {\n console.error('No subitems');\n }\n }\n\n focusNextAvailableSubItem(itemIndex: number, fromItemSubIndex: number, fromItemSubSubIndex: number, step: number): void {\n let nextSubIndex = fromItemSubIndex;\n let nextSubSubIndex = fromItemSubSubIndex;\n let allSubItemsChecked;\n const items = this.getItems();\n do {\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step);\n nextSubIndex = nextIndexes.subIndex;\n nextSubSubIndex = nextIndexes.subSubIndex;\n allSubItemsChecked = (fromItemSubIndex === nextSubIndex && fromItemSubSubIndex === nextSubSubIndex);\n } while (!this.isSubItemFocusable(itemIndex, nextSubIndex, nextSubSubIndex) && !allSubItemsChecked);\n\n if (!allSubItemsChecked) {\n this.focusSubItem(itemIndex, nextSubIndex, nextSubSubIndex);\n }\n }\n\n focusFirstSubItem(itemIndex: number): void {\n let firstSubSubItem = null;\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n const subSubItems = this.getSubItemSubitems(subItems[0]);\n if (subSubItems && subSubItems.length > 0) {\n firstSubSubItem = 0;\n }\n\n if (this.isSubItemFocusable(itemIndex, 0, firstSubSubItem)) {\n this.focusSubItem(itemIndex, 0, firstSubSubItem);\n } else {\n this.focusNextAvailableSubItem(itemIndex, 0, firstSubSubItem, +1);\n }\n }\n\n focusLastSubItem(itemIndex: number): void {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n const lastItemIndex = subItems.length - 1;\n const lastItem = subItems[lastItemIndex];\n const subSubItems = this.getSubItemSubitems(lastItem);\n let lastSubSubItem = null;\n if (subSubItems && subSubItems.length > 0) {\n lastSubSubItem = subSubItems.length - 1;\n }\n\n if (this.isSubItemFocusable(itemIndex, lastItemIndex, lastSubSubItem)) {\n this.focusSubItem(itemIndex, lastItemIndex, lastSubSubItem);\n } else {\n this.focusNextAvailableSubItem(itemIndex, lastItemIndex, lastSubSubItem, -1);\n }\n }\n\n isSubItemFocusable(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n let item: MenubarItemSubItem|MenubarItemSubItemSubItem = subItems[subItemIndex];\n if (subSubItemIndex !== null && subSubItemIndex !== undefined) {\n const subSubItems = this.getSubItemSubitems(item);\n item = subSubItems[subSubItemIndex];\n }\n\n let isFocusable = false;\n if (item.role !== 'separator' && item.role !== 'none') {\n isFocusable = true;\n }\n\n return isFocusable;\n }\n\n focusSubItemByFirstChar(itemIndex: number, char: string): void {\n const itemContents: string[] = this.menuItems.toArray()[itemIndex].popupMenuItems.map(menuItem => menuItem.nativeElement.textContent);\n let subItemIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\n let subSubItemIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\n let foundSubIndex = -1;\n let foundSubSubIndex = null;\n let allSubItemsChecked = false;\n const items = this.getItems();\n do {\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, subItemIndex, subSubItemIndex, +1);\n subItemIndex = nextIndexes.subIndex;\n subSubItemIndex = nextIndexes.subSubIndex;\n const index = this.getMenuDataIndex(itemIndex, subItemIndex, subSubItemIndex);\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\n && this.isSubItemFocusable(itemIndex, subItemIndex, subSubItemIndex)) {\n foundSubIndex = subItemIndex;\n foundSubSubIndex = subSubItemIndex;\n }\n allSubItemsChecked = (this.menuData[itemIndex].currentFocusSubItemIndex === subItemIndex\n && this.menuData[itemIndex].currentFocusSubSubItemIndex === subSubItemIndex);\n } while (foundSubIndex === -1 && !allSubItemsChecked);\n\n if (foundSubIndex >= 0) {\n this.focusSubItem(itemIndex, foundSubIndex, foundSubSubIndex);\n }\n }\n\n /*\n * Metodos para facilitar contenido\n */\n\n getItems(): MenubarItem[]|MenubarItemComponent[] {\n let items;\n if (this.itemComponentList && this.itemComponentList.length > 0) {\n items = this.itemComponentList.toArray();\n } else {\n items = this.items;\n }\n return items;\n }\n\n getItemSubitems(item: MenubarItem|MenubarItemComponent): MenubarItemSubItem[]|MenubarSubitemComponent[] {\n let subItems = [];\n if (item instanceof MenubarItemComponent){\n subItems = item.getSubItems();\n }\n\n if (!subItems || subItems.length === 0) {\n subItems = item.sub ? item.sub.items : [];\n }\n\n return subItems;\n }\n\n getSubItemSubitems(item: MenubarItemSubItem|MenubarSubitemComponent): MenubarItemSubItemSubItem[]|MenubarSubsubitemComponent[] {\n let subItems = [];\n\n if (item.role === 'group') {\n if (item instanceof MenubarSubitemComponent) {\n subItems = item.getSubItems();\n }\n\n if (!subItems || subItems.length === 0) {\n subItems = item.items ? item.items : [];\n }\n }\n\n return subItems;\n }\n\n getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step): { subIndex: number, subSubIndex?: number} {\n const subItems = this.getItemSubitems(items[itemIndex]);\n const subSubItems = this.getSubItemSubitems(subItems[nextSubIndex]);\n\n let checkNextSubItem = true;\n if (subSubItems && subSubItems.length > 0) {\n if (nextSubSubIndex + step >= 0 && nextSubSubIndex + step < subSubItems.length) {\n nextSubSubIndex += step;\n checkNextSubItem = false;\n }\n }\n\n if (checkNextSubItem) {\n nextSubIndex = (nextSubIndex + step + subItems.length) % subItems.length;\n const nextSubItemItems = this.getSubItemSubitems(subItems[nextSubIndex]);\n if (nextSubItemItems && nextSubItemItems.length > 0) {\n nextSubSubIndex = ((step > 0 ? -1 : 0) + step + nextSubItemItems.length) % nextSubItemItems.length;\n } else {\n nextSubSubIndex = null;\n }\n }\n\n return {subIndex: nextSubIndex, subSubIndex: nextSubSubIndex};\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : this.id + 'menubar-item';\n }\n\n getLabelRef(): TemplateRef<any> {\n return this.labelComponent ? this.labelComponent.getContent() : this.labelRef;\n }\n\n getLabelContent(): string {\n let content: string;\n if (this.labelData) {\n content = this.labelData.html ? this.labelData.html : `<p>${ StringUtils.escapeHtml(this.labelData.text) }</p>`;\n } else if (this.labelText) {\n content = `<p>${ StringUtils.escapeHtml(this.labelText) }</p>`;\n }\n return content;\n }\n\n getItemId(item, index: number): string {\n let id: string;\n if (item) {\n if (item.id) {\n id = item.id;\n } else {\n id = index === 0 ? this.getIdPrefix() : `${this.getIdPrefix()}-${index}`;\n }\n }\n return id;\n }\n\n getPopupStyle(itemIndex: number): object {\n let style = {};\n if (this.menuData && itemIndex < this.menuData.length) {\n const menuItem = this.menuData[itemIndex].menuItem;\n const rect = menuItem.link.nativeElement.getBoundingClientRect();\n if (this.menuData[itemIndex].open) {\n style = {\n position: 'absolute',\n top: (rect.height - 1) + 'px',\n left: '0px',\n zIndex: 100,\n display: 'block'\n };\n } else {\n style = {\n zIndex: 0,\n display: 'none'\n };\n }\n }\n\n return style;\n }\n\n getSubItemId(item, index: number, parentId: string): string {\n let id: string;\n if (item) {\n if (item.id) {\n id = item.id;\n } else {\n id = index === 0 ? `sub-${parentId}` : `sub-${parentId}-${index}`;\n }\n }\n return id;\n }\n\n getSubSubItemAriaChecked(subsubitem): string {\n let ariaChecked = null;\n if (subsubitem.role === 'menuitemcheckbox' || subsubitem.role === 'menuitemradio') {\n ariaChecked = !!subsubitem.checked;\n }\n return ariaChecked;\n }\n}\n"," <ng-container *ngIf=\"getLabelRef()\">\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelComponent ? labelComponent.classes : (labelData ? labelData.classes : null)] | makeHtmlList\">\n <ng-container *ngTemplateOutlet=\"getLabelRef()\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!getLabelRef() && (labelData || labelText)\">\n <div [id]=\"id + '-label'\" [class]=\"['mb-sm', labelData ? labelData.classes : null] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ html: getLabelContent() }\"></ng-container>\n </div>\n </ng-container>\n <ul #menubar [id]=\"id + '-menubar'\" class=\"lg:flex lg:flex-wrap\" role=\"menubar\"\n (focusin)=\"handleMenuFocusIn()\"\n (focusout)=\"handleMenuFocusOut($event)\"\n [ngClass]=\"{ 'focus': isFocused }\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"getLabelRef() || labelData || labelText ? id + '-label' : null\">\n <ng-container *ngFor=\"let item of getItems(); index as itemIndex\">\n <li class=\"relative\" role=\"none\" desyMenubaritem (contentChanged)=\"checkChanges()\">\n <a *ngIf=\"item.sub\" #link\n role=\"menuitem\" aria-haspopup=\"true\" aria-expanded=\"false\"\n (click)=\"handleMenuItemClick($event, itemIndex)\"\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\n [id]=\"getItemId(item, itemIndex)\"\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\" \n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\"\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\">\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\" #itemContentWrapper>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\n </span>\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>\n </a>\n <a *ngIf=\"item.routerLink && !item.sub\" #link #itemContentWrapper\n role=\"menuitem\"\n (click)=\"handleMenuItemClick($event, itemIndex)\"\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\n [id]=\"getItemId(item, itemIndex)\"\n [routerLink]=\"item.routerLink\"\n [routerLinkActive]=\"item.routerLinkActiveClasses ? item.routerLinkActiveClasses : []\"\n [fragment]=\"item.fragment\"\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\n [attr.target]=\"item.target ? item.target : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\n </a>\n <a *ngIf=\"!item.routerLink && item.href && !item.sub\" #link #itemContentWrapper\n role=\"menuitem\"\n (click)=\"handleMenuItemClick($event, itemIndex)\"\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\n [id]=\"getItemId(item, itemIndex)\"\n [href]=\"item.href | externalHref\"\n [class]=\"['c-menubar__button', item.classes] | makeHtmlList\"\n [ngClass]=\"{'c-menubar__button--disabled': item.disabled, 'c-menubar__button--primary': item.active}\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\"\n [attr.target]=\"item.target ? item.target : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledBy]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\n </a>\n\n <ul *ngIf=\"item.sub && getItemSubitems(item)\" #popupMenu role=\"menu\" tabindex=\"-1\"\n [ngStyle]=\"getPopupStyle(itemIndex)\"\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\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : (item.sub.ariaLabel ? item.sub.ariaLabel : null)\"\n [attr.aria-describedby]=\"item.sub.ariaDescribedBy ? item.sub.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.sub.ariaLabelledBy ? item.sub.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.sub.ariaHidden ? item.sub.ariaHidden : null\"\n [attr.aria-disabled]=\"item.sub.ariaDisabled ? item.sub.ariaDisabled : null\"\n [attr.aria-controls]=\"item.sub.ariaControls ? item.sub.ariaControls : null\"\n [attr.aria-current]=\"item.sub.ariaCurrent ? item.sub.ariaCurrent : null\"\n [attr.aria-live]=\"item.sub.ariaLive ? item.sub.ariaLive : null\"\n [attr.aria-expanded]=\"!!(menuData && menuData[itemIndex].open)\"\n [attr.aria-errormessage]=\"item.sub.ariaErrorMessage ? item.sub.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.sub.ariaHasPopup ? item.sub.ariaHasPopup : null\"\n [attr.aria-modal]=\"item.sub.ariaModal ? item.sub.ariaModal : null\">\n <ng-container *ngFor=\"let subItem of getItemSubitems(item); index as subItemIndex\">\n <ng-container [ngSwitch]=\"subItem.role\">\n <li #popupMenuItem *ngSwitchCase=\"'none'\" role=\"none\" tabindex=\"-1\"\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\n </li>\n <li *ngSwitchCase=\"'group'\" role=\"none\">\n <ul role=\"group\" [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\n [attr.aria-label]=\"subItem.ariaLabel ? subItem.ariaLabel : null\">\n <ng-container *ngFor=\"let subsubitem of getSubItemSubitems(subItem); index as subsubIndex\">\n <ng-container *ngIf=\"subsubitem\">\n <li #popupMenuItem [attr.role]=\"subsubitem.role ? subsubitem.role : null\" tabindex=\"-1\"\n [id]=\"getSubItemId(subsubitem, subsubIndex, getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex)))\"\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex, subsubIndex)\"\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex, subsubIndex)\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex, subsubIndex)\"\n [attr.aria-checked]=\"getSubSubItemAriaChecked(subsubitem)\"\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\n <ng-container *desyCustomInnerContent=\"{ component: subsubitem, html: subsubitem.html, text: subsubitem.text}\"></ng-container>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </li>\n <li #popupMenuItem *ngSwitchCase=\"'menuitem'\" role=\"menuitem\" tabindex=\"-1\"\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\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\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\n </li>\n <li #popupMenuItem *ngSwitchCase=\"'menuitemcheckbox'\" role=\"menuitemcheckbox\" tabindex=\"-1\"\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\n [attr.aria-checked]=\"!!subItem.checked\"\n class=\"flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\n </li>\n <li #popupMenuItem *ngSwitchCase=\"'separator'\" role=\"separator\"\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\n class=\"my-sm border-b border-neutral-base\">\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {NotificationItemsData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-notification-item',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class NotificationItemComponent extends ContentBaseComponent implements NotificationItemsData {\n @Input() href: string;\n @Input() target?: string;\n @Input() routerLink?: string;\n @Input() fragment?: string;\n @Input() id: string;\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges\n} from '@angular/core';\n\nimport { AccessibilityComponent } from '../../../shared/components';\nimport {NotificationItemsData} from '../../interfaces';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\nimport {NotificationItemComponent} from './notification-item/notification-item.component';\nimport {ContentData, DescriptionData, IconData, TitleData} from '../../../desy-commons/interfaces';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-notification',\n templateUrl: './notification.component.html',\n animations: [\n trigger('displayNotification', [\n state('void', style({\n opacity: '0.0',\n transform: 'scaleY(0.95)'\n })),\n state('*', style({\n opacity: '1.0',\n transform: 'scaleY(1.0)'\n })),\n transition(':enter', [\n animate('100ms ease-out')\n ]),\n transition(':leave', [\n animate('75ms ease-in')\n ])\n ])\n ]\n})\nexport class NotificationComponent extends AccessibilityComponent {\n\n @Input() id: string;\n @Input() classes: string;\n @Input() isOpen = true;\n @Output() isOpenChange = new EventEmitter<boolean>();\n\n @Input() title: TitleData;\n @Input() description: DescriptionData;\n @Input() content: ContentData;\n @Input() items: NotificationItemsData[];\n\n @Input() icon: IconData;\n @Input() type: string;\n @Input() isDismissible: boolean;\n @Input() headingLevel: number;\n\n @DesyContentChild()\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\n\n @DesyContentChild()\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n @DesyContentChild()\n @ContentChildren(IconComponent) iconComponent: IconComponent;\n\n @ContentChildren(NotificationItemComponent) itemCompontents: QueryList<NotificationItemComponent>;\n\n isDismissing = false;\n displayDefaultIcon = false;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n dismiss(): void {\n // Se emite 75ms más tarde para poder visualizar la animación en cualquier caso\n this.isDismissing = true;\n setTimeout(() => {\n this.isDismissing = false;\n this.isOpenChange.emit(false);\n }, 75);\n }\n\n getType(): string {\n let type: string;\n if (this.type){\n type = this.type.toLocaleLowerCase();\n }\n return type;\n }\n\n getItems(): NotificationItemsData[] {\n return this.itemCompontents && this.itemCompontents.length > 0 ? this.itemCompontents.toArray() : this.items;\n }\n\n handleIconEmpty(empty: boolean): void {\n this.displayDefaultIcon = empty;\n\n // Como que el contenido vacío se comprueba a posteriori, es necesario forzar la detección de cambios para mostrar el icono por defecto\n this.changeDetectorRef.detectChanges();\n }\n}\n","<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? 'c-notification ' + classes : type==='success' ? 'c-notification c-notification--' + type : type==='alert' ? 'c-notification c-notification--' + type : 'c-notification c-notification--primary') \"\n *ngIf=\"isOpen && !isDismissing\"\n @displayNotification\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div *ngIf=\"iconComponent || icon || type\" class=\"h-full mr-base\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\n <ng-container *ngIf=\"displayDefaultIcon && type\">\n <ng-container [ngSwitch]=\"getType()\">\n <svg *ngSwitchCase=\"'success'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-success-dark\" aria-label=\"Éxito\" focusable=\"false\" role=\"img\"><path d=\"M39.94 125a19.88 19.88 0 01-15.53-7.81L2.48 92.26a10 10 0 0115-13.2l20.55 23.39a2.5 2.5 0 003.68.08l81-84.42a10.002 10.002 0 1114.5 13.78l-82.02 86.33A19.41 19.41 0 0139.94 125z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'alert'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-alert-base\" aria-label=\"Error\" focusable=\"false\" role=\"img\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'info'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-primary-base\" aria-label=\"Información\" focusable=\"false\" role=\"img\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"lg:flex flex-1 self-center\">\n <div class=\"lg:flex-1 lg:self-center\">\n <ng-container *ngIf=\"titleComponent || title\" [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h5>\n <p *ngSwitchDefault [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ng-container *ngIf=\"descriptionComponent || description\">\n <p [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\">\n <ng-container *desyCustomInnerContent=\"{\n component: descriptionComponent,\n html: description ? description.html : null,\n text: description ? description.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ul *ngIf=\"(itemCompontents && itemCompontents.length > 0) || items\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <li *ngIf=\"item.routerLink || item.href\">\n <a *ngIf=\"item.routerLink\" class=\"c-link\"\n [routerLink]=\"item.routerLink\"\n [fragment]=\"item.fragment\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n <a *ngIf=\"!item.routerLink && item.href\" class=\"c-link\"\n [href]=\"item.href | externalHref\"\n [target]=\"item.target\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n </li>\n <li *ngIf=\"!item.routerLink && !item.href\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n <p *ngIf=\"contentComponent || content\" [class]=\"['text-sm', contentComponent ? contentComponent.classes : content.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: contentComponent,\n html: content ? content.html : null,\n text: content ? content.text : null\n }\"></ng-container>\n </p>\n </div>\n <ng-container *ngIf=\"isDismissible\">\n <div class=\"absolute top-0 right-0 p-sm\">\n <button (click)=\"dismiss()\" 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 notificación\">\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>\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DividerData } from '../../../../../desy-commons/interfaces';\nimport { ContentBaseComponent } from '../../../../../shared/components';\nimport { MenuNavigationItemSubItem } from '../../../../interfaces';\n\n@Component({\n selector: 'desy-menu-navigation-subitem',\n templateUrl: './menu-navigation-subitem.component.html'\n})\nexport class MenuNavigationSubitemComponent extends ContentBaseComponent implements MenuNavigationItemSubItem {\n \n @Input() href?: string;\n @Input() target?: string;\n @Input() text: string;\n @Input() html: string;\n @Input() id?: string;\n @Input() expanded?: boolean;\n @Input() divider?: DividerData;\n @Input() disabled?: boolean;\n @Input() sub?: MenuNavigationItemSubItem[];\n @Input() classes?: string;\n @Input() active?: boolean;\n\n @Output() selected = new EventEmitter<any>();\n @Output() checkedChange = new EventEmitter<boolean>();\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template> ","import { Component, ContentChildren, EventEmitter, Input, Output, QueryList } from '@angular/core';\nimport { HintData } from '../../../../../desy-forms/interfaces/hint-data';\nimport { DividerData } from '../../../../../desy-commons/interfaces';\nimport { ContentBaseComponent } from '../../../../../shared/components/content-base/content-base.component';\nimport { MenuNavigationItem, MenuNavigationItemSubItem } from '../../../../interfaces';\nimport { MenuNavigationSubitemComponent } from '../menu-navigation-subitem/menu-navigation-subitem.component';\n\n@Component({\n selector: 'desy-menu-navigation-item',\n templateUrl: './menu-navigation-item.component.html'\n})\nexport class MenuNavigationItemComponent extends ContentBaseComponent implements MenuNavigationItem {\n \n @Input() href?: string;\n @Input() target?: string;\n @Input() text: string;\n @Input() html: string;\n @Input() id?: string;\n @Input() expanded?: boolean;\n @Input() divider?: DividerData;\n @Input() disabled?: boolean;\n @Input() sub?: MenuNavigationItemSubItem;\n @Input() classes?: string;\n\n @Input() title?: string;\n @Input() active?: boolean;\n\n @Output() selected = new EventEmitter<any>();\n\n @ContentChildren(MenuNavigationSubitemComponent) subItems: QueryList<MenuNavigationSubitemComponent>;\n\n public getSubItems(): MenuNavigationSubitemComponent[] {\n return this.subItems.toArray();\n }\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template> ","import { AfterViewInit, \n ChangeDetectorRef, \n Component, \n ContentChildren, \n ElementRef, \n EventEmitter, \n HostBinding, \n Input, \n OnChanges, \n Output, \n QueryList, \n SimpleChanges,\n ViewChild, \n ViewChildren } from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { MenuNavigationItemSubItem, MenuNavigationItemSubItemSubItem } from '../../interfaces';\nimport { MenuNavigationItem } from '../../interfaces/menu-navigation';\nimport { MenubaritemDirective } from '../menubar/directives/menubaritem.directive';\nimport { MenuNavigationItemComponent } from './components/menu-navigation-item/menu-navigation-item.component';\nimport { MenuNavigationSubitemComponent } from './components/menu-navigation-subitem/menu-navigation-subitem.component';\n\n@Component({\n selector: 'desy-menu-navigation',\n templateUrl: './menu-navigation.component.html'\n})\nexport class MenuNavigationComponent extends AccessibilityComponent implements OnChanges, AfterViewInit{\n\n @Input() idPrefix: string;\n @Input() items: MenuNavigationItem[];\n @Output() itemsChange = new EventEmitter<MenuNavigationItem[]>();\n @Output() activeItemChange = new EventEmitter<MenuNavigationItem>();\n @Output() activeSubItemChange = new EventEmitter<MenuNavigationItemSubItem | MenuNavigationItemSubItemSubItem>();\n\n @ViewChild('menunavigation', { read: ElementRef }) menunavigation: ElementRef;\n @ViewChildren(MenubaritemDirective) menuItems: QueryList<MenubaritemDirective>;\n @ContentChildren(MenuNavigationItemComponent) itemComponentList: QueryList<MenuNavigationItemComponent>;\n\n @Input() @HostBinding('class') classes: any;\n @HostBinding('class.c-menu-navigation') cfg = true\n @Input() @HostBinding('attr.id') id: any;\n\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.aria-modal') ariaModalData: any;\n\n menuData: any[];\n viewInit = false;\n isFocused: boolean;\n currentFocusItemIndex = 0;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnChanges(changes?: SimpleChanges): void {\n this.roleData = this.role ? this.role : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\n if (this.viewInit) {\n this.checkChanges();\n }\n }\n\n ngAfterViewInit(): void {\n this.viewInit = true;\n this.checkChanges();\n }\n\n checkChanges(): void {\n if (!this.menuItems) {\n return;\n }\n \n this.menuData = [];\n this.getItems().forEach((_, index) => {\n const itemData = {\n open: false,\n currentFocusSubItemIndex: 0,\n currentFocusSubSubItemIndex: 0,\n menuItem: this.menuItems.toArray()[index]\n };\n this.menuData.push(itemData);\n });\n\n if (this.viewInit) {\n this.checkRequired();\n }\n\n\n const lastCurrentFocusItemIndex = this.currentFocusItemIndex;\n const items = this.getItems();\n if (items) {\n while (!this.isItemFocusable(this.currentFocusItemIndex % items.length)) {\n this.currentFocusItemIndex = (this.currentFocusItemIndex + items.length + 1) % items.length;\n if (this.currentFocusItemIndex === lastCurrentFocusItemIndex) {\n break;\n }\n }\n }\n }\n\n\n /*\n * Eventos\n */\n\n handleMenuFocusIn(): void {\n this.isFocused = true;\n this.changeDetectorRef.detectChanges();\n }\n\n handleMenuFocusOut(event): void {\n if (!this.menunavigation.nativeElement.contains(event.relatedTarget)) {\n this.closeMenu();\n }\n this.isFocused = false;\n this.changeDetectorRef.detectChanges();\n }\n\n handleMenuItemClick(event, itemIndex: number): void {\n if (this.hasPopupMenu(itemIndex)) {\n event.preventDefault();\n const isOpen = this.menuData[itemIndex].open;\n this.closeMenu();\n if (!isOpen) {\n this.openMenu(itemIndex);\n }\n } else {\n this.activateMenuItem(itemIndex);\n }\n }\n\n handleMenuItemKeydown(event: KeyboardEvent, itemIndex: number): void {\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'ArrowDown':\n if (this.hasPopupMenu(itemIndex)) {\n this.openMenu(itemIndex);\n setTimeout(() => this.focusFirstSubItem(itemIndex));\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n\n case 'Escape':\n if (this.hasPopupMenu(itemIndex)) {\n this.closeMenu(itemIndex);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n this.focusNextAvailableItem(itemIndex, -1);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n this.focusNextAvailableItem(itemIndex, +1);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n if (this.hasPopupMenu(itemIndex)) {\n this.openMenu(itemIndex);\n setTimeout(() => this.focusLastSubItem(itemIndex));\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Home':\n case 'PageUp':\n if (this.hasPopupMenu(itemIndex)) {\n this.closeMenu();\n }\n this.focusFirstItem();\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'End':\n case 'PageDown':\n if (this.hasPopupMenu(itemIndex)) {\n this.closeMenu();\n }\n this.focusLastItem();\n event.stopPropagation();\n event.preventDefault();\n break;\n\n default:\n if (this.isPrintableChar(event.key)) {\n this.focusItemByFirstChar(event.key);\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n }\n }\n\n handleMenuItemMouseOver(itemIndex: number): void {\n this.focusItem(itemIndex, true);\n }\n\n handlePopupMenuItemClick(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\n this.focusItem(itemIndex);\n this.closeMenu(itemIndex);\n }\n\n handlePopupMenuItemKeydown(event: KeyboardEvent, itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n const currentSubIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\n const currentSubSubIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\n const items = this.getItems();\n switch (event.key) {\n case ' ':\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\n if (this.mustCloseAfterSelectPopupItem(itemIndex, subItemIndex, subSubItemIndex)) {\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Enter':\n this.activatePopupMenuItem(itemIndex, subItemIndex, subSubItemIndex);\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Escape':\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, -1);\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength - 1) % listLength);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n this.focusNextAvailableSubItem(itemIndex, currentSubIndex, currentSubSubIndex, +1);\n // this.focusSubItem(itemIndex, (currentSubIndex + listLength + 1) % listLength);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n this.closeMenu(itemIndex);\n this.focusItem((itemIndex + items.length - 1) % items.length);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n this.closeMenu(itemIndex);\n this.focusItem((itemIndex + items.length + 1) % items.length);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Home':\n case 'PageUp':\n this.focusFirstSubItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'End':\n case 'PageDown':\n this.focusLastSubItem(itemIndex);\n event.stopPropagation();\n event.preventDefault();\n break;\n\n case 'Tab':\n this.closeMenu(itemIndex);\n this.focusItem(itemIndex);\n break;\n\n default:\n if (this.isPrintableChar(event.key)) {\n this.focusSubItemByFirstChar(itemIndex, event.key);\n event.stopPropagation();\n event.preventDefault();\n }\n break;\n }\n }\n\n handlePopupMenuItemMouseOver(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n this.focusSubItem(itemIndex, subItemIndex, subSubItemIndex);\n }\n\n /*\n * Comunes\n */\n\n checkRequired(): void {\n const items = this.getItems();\n }\n\n\n activateMenuItem(itemIndex: number): void {\n const items = this.getItems();\n this.activeItemChange.emit(items[itemIndex] as MenuNavigationItem);\n if (items[itemIndex] instanceof MenuNavigationItemComponent) {\n (items[itemIndex] as MenuNavigationItemComponent).selected.emit();\n }\n }\n\n activatePopupMenuItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex]; \n\n this.itemsChange.emit(items);\n this.activeSubItemChange.emit(item as MenuNavigationItem);\n if (item instanceof MenuNavigationSubitemComponent) {\n item.selected.emit();\n }\n }\n\n mustCloseAfterSelectPopupItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex];\n\n return item.role !== 'menuitemcheckbox' && item.role !== 'menuitemradio';\n }\n\n openMenu(itemIndex: number): void {\n const wasOpened = this.menuData[itemIndex].open;\n this.menuData[itemIndex].open = true;\n if (wasOpened) {\n this.activateMenuItem(itemIndex);\n }\n }\n\n closeMenu(itemIndex?: number): void {\n if (itemIndex !== null && itemIndex !== undefined) {\n this.menuData[itemIndex].open = false;\n } else {\n this.menuData.forEach(item => item.open = false);\n }\n }\n\n hasPopupMenu(itemIndex: number): boolean {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n return items[itemIndex].sub && subItems && subItems.length > 0;\n }\n\n private isPrintableChar(str: string): boolean {\n return str.length === 1 && !!str.match(/\\S/);\n }\n\n \n\n /*\n * Comunes - focus\n */\n\n focusItem(itemIndex: number, hover?: boolean): void {\n const hasFocus = this.menunavigation.nativeElement.contains(document.activeElement);\n const isOpen = this.menuData[this.currentFocusItemIndex].open;\n\n if (!hover || hasFocus) {\n this.menuData[itemIndex].menuItem.link.nativeElement.focus();\n }\n\n this.closeMenu();\n if (isOpen && this.hasPopupMenu(itemIndex)) {\n this.openMenu(itemIndex);\n }\n\n this.currentFocusItemIndex = itemIndex;\n }\n\n focusNextAvailableItem(fromItemIndex: number, step: number): void {\n let nextItem = fromItemIndex;\n const items = this.getItems();\n do {\n nextItem = (nextItem + items.length + step) % items.length;\n } while (!this.isItemFocusable(nextItem) && nextItem !== fromItemIndex);\n\n if (nextItem !== fromItemIndex) {\n this.focusItem(nextItem);\n }\n }\n\n focusFirstItem(): void {\n if (this.isItemFocusable(0)) {\n this.focusItem(0);\n } else {\n this.focusNextAvailableItem(0, +1);\n }\n }\n\n focusLastItem(): void {\n const items = this.getItems();\n if (this.isItemFocusable(items.length - 1)) {\n this.focusItem(items.length - 1);\n } else {\n this.focusNextAvailableItem(items.length - 1, -1);\n }\n }\n\n isItemFocusable(itemIndex: number): boolean {\n return !this.getItems()[itemIndex].disabled;\n }\n\n focusItemByFirstChar(char: string): void {\n const itemContents: string[] = this.menuItems.map(menuItem => menuItem.itemContentWrapper.nativeElement.textContent);\n let index = this.currentFocusItemIndex;\n let foundIndex = -1;\n do {\n index = (index + itemContents.length + 1) % itemContents.length;\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\n && this.isItemFocusable(index)) {\n foundIndex = index;\n }\n } while (foundIndex === -1 && index !== this.currentFocusItemIndex);\n\n if (foundIndex >= 0) {\n this.focusItem(foundIndex);\n }\n }\n\n focusSubItem(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): void {\n if (this.menuData[itemIndex].menuItem.popupMenuItems.length > 0) {\n const menuDataIndex = subItemIndex;\n this.menuData[itemIndex].currentFocusSubItemIndex = subItemIndex;\n this.menuData[itemIndex].currentFocusSubSubItemIndex = subSubItemIndex;\n const elem = this.menuData[itemIndex].menuItem.popupMenuItems.toArray()[menuDataIndex].nativeElement;\n if (elem) {\n elem.focus();\n } else {\n console.error('No subitem to focus');\n }\n } else {\n console.error('No subitems');\n }\n }\n\n focusNextAvailableSubItem(itemIndex: number, fromItemSubIndex: number, fromItemSubSubIndex: number, step: number): void {\n let nextSubIndex = fromItemSubIndex;\n let nextSubSubIndex = fromItemSubSubIndex;\n let allSubItemsChecked;\n const items = this.getItems();\n do {\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step);\n nextSubIndex = nextIndexes.subIndex;\n nextSubSubIndex = nextIndexes.subSubIndex;\n allSubItemsChecked = (fromItemSubIndex === nextSubIndex && fromItemSubSubIndex === nextSubSubIndex);\n } while (!this.isSubItemFocusable(itemIndex, nextSubIndex, nextSubSubIndex) && !allSubItemsChecked);\n\n if (!allSubItemsChecked) {\n this.focusSubItem(itemIndex, nextSubIndex, nextSubSubIndex);\n }\n }\n\n focusFirstSubItem(itemIndex: number): void {\n let firstSubSubItem = null;\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n if (subItems && subItems.length > 0) {\n firstSubSubItem = 0;\n }\n\n if (this.isSubItemFocusable(itemIndex, 0, firstSubSubItem)) {\n this.focusSubItem(itemIndex, 0, firstSubSubItem);\n } else {\n this.focusNextAvailableSubItem(itemIndex, 0, firstSubSubItem, +1);\n }\n }\n\n focusLastSubItem(itemIndex: number): void {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n const lastItemIndex = subItems.length - 1;\n const lastItem = subItems[lastItemIndex];\n let lastSubSubItem = null;\n\n if (this.isSubItemFocusable(itemIndex, lastItemIndex, lastSubSubItem)) {\n this.focusSubItem(itemIndex, lastItemIndex, lastSubSubItem);\n } else {\n this.focusNextAvailableSubItem(itemIndex, lastItemIndex, lastSubSubItem, -1);\n }\n }\n\n isSubItemFocusable(itemIndex: number, subItemIndex: number, subSubItemIndex?: number): boolean {\n const items = this.getItems();\n const subItems = this.getItemSubitems(items[itemIndex]);\n let item: MenuNavigationItemSubItem|MenuNavigationItemSubItemSubItem = subItems[subItemIndex];\n\n let isFocusable = false;\n if (item.role !== 'separator' && item.role !== 'none') {\n isFocusable = true;\n }\n return isFocusable;\n }\n\n focusSubItemByFirstChar(itemIndex: number, char: string): void {\n const itemContents: string[] = this.menuItems.toArray()[itemIndex].popupMenuItems.map(menuItem => menuItem.nativeElement.textContent);\n let subItemIndex = this.menuData[itemIndex].currentFocusSubItemIndex;\n let subSubItemIndex = this.menuData[itemIndex].currentFocusSubSubItemIndex;\n let foundSubIndex = -1;\n let foundSubSubIndex = null;\n let allSubItemsChecked = false;\n const items = this.getItems();\n do {\n const nextIndexes = this.getNextSubItemIndexes(items, itemIndex, subItemIndex, subSubItemIndex, +1);\n subItemIndex = nextIndexes.subIndex;\n subSubItemIndex = nextIndexes.subSubIndex;\n const index = subItemIndex;\n if (itemContents[index] && itemContents[index].trim().substr(0, 1).toLowerCase() === char.toLowerCase()\n && this.isSubItemFocusable(itemIndex, subItemIndex, subSubItemIndex)) {\n foundSubIndex = subItemIndex;\n foundSubSubIndex = subSubItemIndex;\n }\n allSubItemsChecked = (this.menuData[itemIndex].currentFocusSubItemIndex === subItemIndex\n && this.menuData[itemIndex].currentFocusSubSubItemIndex === subSubItemIndex);\n } while (foundSubIndex === -1 && !allSubItemsChecked);\n\n if (foundSubIndex >= 0) {\n this.focusSubItem(itemIndex, foundSubIndex, foundSubSubIndex);\n }\n }\n\n /*\n * Metodos para facilitar contenido\n */\n\n getItems(): MenuNavigationItem[]|MenuNavigationItemComponent[] {\n let items;\n if (this.itemComponentList && this.itemComponentList.length > 0) {\n items = this.itemComponentList.toArray();\n } else {\n items = this.items;\n }\n return items;\n }\n\n getItemSubitems(item: MenuNavigationItem|MenuNavigationItemComponent): MenuNavigationItemSubItem[]|MenuNavigationSubitemComponent[] {\n let subItems = [];\n if (item instanceof MenuNavigationItemComponent){\n subItems = item.getSubItems();\n }\n\n if (!subItems || subItems.length === 0) {\n subItems = item.sub ? item.sub.items : [];\n }\n return subItems;\n }\n\n getNextSubItemIndexes(items, itemIndex, nextSubIndex, nextSubSubIndex, step): { subIndex: number, subSubIndex?: number} {\n const subItems = this.getItemSubitems(items[itemIndex]);\n\n let checkNextSubItem = true;\n if (checkNextSubItem) {\n nextSubIndex = (nextSubIndex + step + subItems.length) % subItems.length;\n } \n return {subIndex: nextSubIndex, subSubIndex: nextSubSubIndex};\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : this.id + 'menunavigation-item';\n }\n\n getItemId(item, index: number): string {\n let id: string;\n if (item) {\n if (item.id) {\n id = item.id;\n } else {\n id = index === 0 ? this.getIdPrefix() : `${this.getIdPrefix()}-${index}`;\n }\n }\n return id;\n }\n\n getPopupStyle(itemIndex: number): object {\n let style = {};\n if (this.menuData && itemIndex < this.menuData.length) {\n const menuItem = this.menuData[itemIndex].menuItem;\n const rect = menuItem.link.nativeElement.getBoundingClientRect();\n if (this.menuData[itemIndex].open) {\n style = {\n position: 'absolute',\n top: '0px',\n left: '0px',\n zIndex: 100,\n display: 'block'\n };\n } else {\n style = {\n zIndex: 0,\n display: 'none'\n };\n }\n }\n\n return style;\n }\n\n getSubItemId(item, index: number, parentId: string): string {\n let id: string;\n if (item) {\n if (item.id) {\n id = item.id;\n } else {\n id = index === 0 ? `sub-${parentId}` : `sub-${parentId}-${index}`;\n }\n }\n return id;\n }\n \n}\n","<ul #menunavigation [id]=\"id + '-menu-navigation'\" class=\"flex flex-wrap gap-base\"\n(focusin)=\"handleMenuFocusIn()\"\n(focusout)=\"handleMenuFocusOut($event)\"\n[ngClass]=\"{ 'focus': isFocused }\"\n[attr.aria-label]=\"ariaLabel ? ariaLabel : null\">\n<ng-container *ngFor=\"let item of getItems(); index as itemIndex\">\n<li class=\"relative\" role=\"none\" desyMenubaritem (contentChanged)=\"checkChanges()\">\n <a *ngIf=\"item.href\" #link\n (click)=\"handleMenuItemClick($event, itemIndex)\"\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\n role=\"item.disabled ? link : null\"\n [id]=\"getItemId(item, itemIndex)\"\n [target]=\"item.target\"\n [href]=\"item.href\"\n [class]=\"['c-menu-navigation__button', item.classes] | makeHtmlList\"\n [ngClass]=\"{'c-menu-navigation__button--disabled': item.disabled, 'c-menu-navigation__button--primary': item.active, 'c-menu-navigation__button--has-selection': item.active}\"\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.disabled ? 'page' : (item.ariaCurrent ? item.ariaCurrent : null)\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\"\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\">\n <span class=\"inline-flex self-center max-w-xs align-middle truncate pointer-events-none\" #itemContentWrapper>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\n </span> \n </a>\n <button *ngIf=\"!item.href\" #link #itemContentWrapper\n (click)=\"handleMenuItemClick($event, itemIndex)\"\n (keydown)=\"handleMenuItemKeydown($event, itemIndex)\"\n (mouseover)=\"handleMenuItemMouseOver(itemIndex)\"\n (desyAttributeChange)=\"checkChanges()\" [attributesToCheck]=\"'disabled'\"\n aria-expanded=\"item.sub ? true : false\"\n aria-controls=\"item.sub ? id + '-sub-list' : ''\"\n [class]=\"['c-menu-navigation__button', item.classes] | makeHtmlList\"\n [ngClass]=\"{'c-menu-navigation__button--disabled': item.disabled, 'c-menu-navigation__button--primary': item.active, 'c-menu-navigation__button--has-selection': item.active}\"\n [attr.disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : (item.ariaDisabled ? item.ariaDisabled : null)\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-modal]=\"item.ariaModal ? item.ariaModal : null\"\n [attr.tabindex]=\"item.disabled ? -1 : (itemIndex === currentFocusItemIndex ? 0 : -1)\">\n <span *ngIf=\"item.active\" class=\"sr-only\">Item activo: </span>\n <span class=\"inline-flex self-center max-w-xs align-middle truncate pointer-events-none\" #itemContentWrapper>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text}\"></ng-container>\n </span>\n <svg *ngIf=\"item.sub\" class=\"inline-block -mr-2 align-middle -my-px pointer-events-none\" 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>\n </button> \n\n <div *ngIf=\"item.sub && getItemSubitems(item)\" class=\"c-menu-navigation__sub absolute bottom-0 left-0\">\n <ul [id]=\"id + '-sub-list'\" [ngStyle]=\"getPopupStyle(itemIndex)\" #popupMenu role=\"menu\" tabindex=\"-1\"\n [class]=\"item.sub.classes ? item.sub.classes : 'c-menu-navigation__tooltip w-max max-w-64 border border-neutral-base shadow-md bg-white text-sm'\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : (item.sub.ariaLabel ? item.sub.ariaLabel : null)\"\n [attr.aria-describedby]=\"item.sub.ariaDescribedBy ? item.sub.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.sub.ariaLabelledBy ? item.sub.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.sub.ariaHidden ? item.sub.ariaHidden : null\"\n [attr.aria-disabled]=\"item.sub.ariaDisabled ? item.sub.ariaDisabled : null\"\n [attr.aria-controls]=\"item.sub.ariaControls ? item.sub.ariaControls : null\"\n [attr.aria-current]=\"item.sub.ariaCurrent ? item.sub.ariaCurrent : null\"\n [attr.aria-live]=\"item.sub.ariaLive ? item.sub.ariaLive : null\"\n [attr.aria-expanded]=\"!!(menuData && menuData[itemIndex].open)\"\n [attr.aria-errormessage]=\"item.sub.ariaErrorMessage ? item.sub.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.sub.ariaHasPopup ? item.sub.ariaHasPopup : null\"\n [attr.aria-modal]=\"item.sub.ariaModal ? item.sub.ariaModal : null\">\n <ng-container *ngFor=\"let subItem of getItemSubitems(item); index as subItemIndex\">\t\t\t\t\n <li #popupMenuItem *ngIf=\"subItem.href\" role=\"none\" tabindex=\"-1\"\n class=\"focus:bg-primary-base focus:text-white focus:outline-none\"\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\n <span *ngIf=\"subItem.active\" id=\"subItem.id\" #itemContentWrapper \n [class]=\"['flex items-center px-base py-sm text-sm font-semibold cursor-pointer hover:bg-primary-base hover:text-white', subItem.classes] | makeHtmlList\" \n aria-current=\"page\"\n \n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : (subItem.ariaLabel ? subItem.ariaLabel : null)\"\n [attr.aria-describedby]=\"subItem.ariaDescribedBy ? subItem.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"subItem.ariaLabelledBy ? subItem.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"subItem.ariaHidden ? subItem.ariaHidden : null\"\n [attr.aria-disabled]=\"subItem.ariaDisabled ? subItem.ariaDisabled : null\"\n [attr.aria-controls]=\"subItem.ariaControls ? subItem.ariaControls : null\"\n [attr.aria-current]=\"subItem.ariaCurrent ? subItem.ariaCurrent : null\"\n [attr.aria-live]=\"subItem.ariaLive ? subItem.ariaLive : null\"\n [attr.aria-expanded]=\"!!(menuData && menuData[subItemIndex].open)\"\n [attr.aria-errormessage]=\"subItem.ariaErrorMessage ? subItem.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"subItem.ariaHasPopup ? subItem.ariaHasPopup : null\"\n [attr.aria-modal]=\"subItem.ariaModal ? subItem.ariaModal : null\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\n </span>\n \n <a *ngIf=\"!subItem.active\" #itemContentWrapper\n [href]=\"subItem.href\"\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\"\n (desyAttributeChange)=\"checkChanges()\"\n [class]=\"['flex items-center px-base py-sm text-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', subItem.classes] | makeHtmlList\"\n [ngClass]=\"{'pointer-events-none': subItem.disabled}\"\n [tabindex]=\"subItem.disabled ? -1 : null\"\n [target] = \"subItem.target\">\n <span class=\"inline-flex self-center max-w-xs align-middle truncate\" #itemContentWrapper>\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\n </span>\n <svg *ngIf=\"subItem.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>\n </a>\n </li>\n <li #popupMenuItem *ngIf=\"!subItem.href\" role=\"none\" tabindex=\"-1\"\n [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, itemIndex))\"\n class=\"focus:bg-primary-base focus:text-white focus:outline-none\"\n (click)=\"handlePopupMenuItemClick(itemIndex, subItemIndex)\"\n (mouseover)=\"handlePopupMenuItemMouseOver(itemIndex, subItemIndex)\"\n (keydown)=\"handlePopupMenuItemKeydown($event, itemIndex, subItemIndex)\">\n <span [id]=\"getSubItemId(subItem, subItemIndex, getItemId(item, subItemIndex))\"\n class=\"flex items-center px-base py-sm text-sm cursor-pointer hover:bg-primary-base hover:text-white\"\n [ngClass]=\"{'font-bold': subItem.active, 'pointer-events-none': subItem.disabled}\">\n <ng-container *desyCustomInnerContent=\"{ component: subItem, html: subItem.html, text: subItem.text}\"></ng-container>\n </span>\n <svg *ngIf=\"subItem.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>\n </li>\n \n <li *ngIf=\"subItem.divider\" class=\"my-sm border-b border-neutral-base\">\n <div class=\"sr-only\">Separador</div>\n </li>\n </ng-container>\n </ul>\n </div>\n</li>\n<li #popupMenuItem *ngIf=\"item.divider\" class=\"item.divider.classes\" role=\"presentation\" aria-hidden=\"true\">\n <ng-container *desyCustomInnerContent=\"{ component: item.divider, html: item.divider.html, text: item.divider.text}\"></ng-container>\n</li>\n</ng-container>\n</ul>\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {CellData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-table-cell',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class TableCellComponent extends ContentBaseComponent implements CellData {\n @Input() classes?: string;\n @Input() id?: string;\n @Input() colspan?: number;\n @Input() rowspan?: number;\n}\n","import {Component, ContentChildren, QueryList} from '@angular/core';\nimport {TableCellComponent} from './table-cell.component';\n\n@Component({\n selector: 'desy-table-header',\n template: ''\n})\nexport class TableHeaderComponent {\n @ContentChildren(TableCellComponent) cells: QueryList<TableCellComponent>;\n}\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-table-caption',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class TableCaptionComponent extends ContentBaseComponent {\n @Input() classes: string;\n}\n","import {Component, ContentChildren, QueryList} from '@angular/core';\nimport {TableCellComponent} from './table-cell.component';\n\n@Component({\n selector: 'desy-table-row',\n template: ''\n})\nexport class TableRowComponent {\n @ContentChildren(TableCellComponent) cells: QueryList<TableCellComponent>;\n}\n","import {Component, Input, ContentChildren, QueryList} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport {CellData, WrapperData} from '../../interfaces';\nimport {TableHeaderComponent} from './components/table-header.component';\nimport {TableCellComponent} from './components/table-cell.component';\nimport {TableCaptionComponent} from './components/table-caption.component';\nimport {TableRowComponent} from './components/table-row.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n\n@Component({\n selector: 'desy-table',\n templateUrl: './table.component.html'\n})\nexport class TableComponent extends AccessibilityComponent {\n\n @Input() rows: Array<CellData[]>;\n @Input() head: CellData[];\n @Input() caption: string;\n @Input() captionClasses: string;\n @Input() firstCellIsHeader: boolean;\n @Input() classes: string;\n @Input() id: string;\n @Input() wrapper: WrapperData;\n\n @DesyContentChild()\n @ContentChildren(TableCaptionComponent) captionComponent: TableCaptionComponent;\n\n @DesyContentChild()\n @ContentChildren(TableHeaderComponent) headerComponent: TableHeaderComponent;\n\n @ContentChildren(TableRowComponent) rowComponentList: QueryList<TableRowComponent>;\n\n getCaptionClass(): string {\n return this.captionComponent ? this.captionComponent.classes : this.captionClasses;\n }\n\n getHeaderCells(): TableCellComponent[]|CellData[] {\n let headerCells = [];\n if (this.headerComponent && this.headerComponent.cells) {\n headerCells = this.headerComponent.cells.toArray();\n } else if (this.head) {\n headerCells = this.head;\n }\n return headerCells;\n }\n\n getRows() {\n let rowList = [];\n if (this.rowComponentList && this.rowComponentList.length > 0) {\n rowList = this.rowComponentList.toArray();\n } else if (this.rows) {\n rowList = this.rows;\n }\n return rowList;\n //this.rowComponentList && this.rowComponentList.length > 0 ? this.rowComponentList.toArray() : this.rows;\n }\n\n getRowCells(row: TableRowComponent|CellData[]): TableCellComponent[]|CellData[] {\n return row instanceof TableRowComponent ? row.cells.toArray() : row;\n }\n\n}\n\n","<ng-template #tableContent>\n <table [class]=\"['c-table', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\n </caption>\n <thead *ngIf=\"head || headerComponent\">\n <tr class=\"border-t border-b border-neutral-base\">\n <ng-container *ngFor=\"let headerCell of getHeaderCells()\">\n <th scope=\"col\"\n [class]=\"['align-top px-base py-sm text-left font-normal text-sm text-neutral-dark', headerCell.classes] | makeHtmlList\"\n [attr.colspan]=\"(headerCell.colspan ? headerCell.colspan : null)\"\n [attr.rowspan]=\"(headerCell.rowspan ? headerCell.rowspan : null)\"\n [attr.id]=\"headerCell.id ? headerCell.id : null\"\n [attr.role]=\"headerCell.role\"\n [attr.aria-describedby]=\"headerCell.ariaDescribedBy\"\n [attr.aria-errormessage]=\"headerCell.ariaErrorMessage\"\n [attr.aria-label]=\"headerCell.ariaLabel\"\n [attr.aria-labelledby]=\"headerCell.ariaLabelledBy\"\n [attr.aria-hidden]=\"headerCell.ariaHidden\"\n [attr.aria-disabled]=\"headerCell.ariaDisabled\"\n [attr.aria-controls]=\"headerCell.ariaControls\"\n [attr.aria-current]=\"headerCell.ariaCurrent\"\n [attr.aria-live]=\"headerCell.ariaLive\"\n [attr.aria-expanded]=\"headerCell.ariaExpanded\"\n [attr.aria-haspopup]=\"headerCell.ariaHasPopup\"\n [attr.tabindex]=\"headerCell.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: headerCell, html: headerCell.html, text: headerCell.text }\"></ng-container>\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of getRows(); index as rowIndex\" class=\"border-t border-b border-neutral-base\">\n <ng-container *ngFor=\"let cell of getRowCells(row); first as isFirst; index as cellIndex\">\n <th *ngIf=\"firstCellIsHeader && isFirst; else elseTd\" scope=\"row\"\n [class]=\"['align-top px-base py-sm text-left font-normal text-sm text-neutral-dark', cell.classes] | makeHtmlList\"\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\n [attr.id]=\"cell.id ? cell.id : null\"\n [attr.role]=\"cell.role ? cell.role : null\"\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\n </th>\n <ng-template #elseTd>\n <td [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\n [attr.id]=\"cell.id ? cell.id : null\"\n [attr.role]=\"cell.role ? cell.role : null\"\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\n </td>\n </ng-template>\n </ng-container>\n </tr>\n </tbody>\n </table>\n</ng-template>\n\n<div *ngIf=\"wrapper; else tableContent\" [class]=\"wrapper.classes\">\n <ng-container *ngTemplateOutlet=\"tableContent\"></ng-container>\n</div>\n","import { ContentComponent } from '../../desy-commons/components/content/content.component';\nimport { CellData } from './cell-data';\n\nexport interface HeadCellData extends CellData {\n orderBy?: OrderBy; // Possible values `none`, `asc`, `desc`.\n hasFilter?: boolean;\n filterClasses?: string;\n hasSelect?: boolean;\n}\n\nexport interface HeadCellModelData extends HeadCellData {\n valueFilter?: string;\n activeFilter?: boolean;\n valueSelect?: string;\n activeSelect?: boolean;\n contentComponent?: ContentComponent;\n}\n\nexport enum OrderBy {\n none = 'none',\n asc = 'asc',\n desc = 'desc'\n}\n","import { OptionComponent } from './../../../../desy-forms/components/select/option/option.component';\nimport { SelectComponent } from './../../../../desy-forms/components/select/select.component';\nimport { Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: 'desy-table-advanced-select',\n template: ''\n})\nexport class TableAdvancedSelectComponent extends SelectComponent{\n isSelect = true;\n\n @Input() value: any;\n @Output() valueChange = new EventEmitter<any>();\n\n @ContentChildren(OptionComponent) selectItemComponentList: QueryList<OptionComponent>;\n}","import { ContentComponent } from './../../../../desy-commons/components/content/content.component';\nimport { TableAdvancedSelectComponent } from './table-advanced-select.component';\nimport { DesyContentChild } from '../../../../shared/decorators/desy-content-child.decorator';\nimport {Component, ContentChildren, Input} from '@angular/core';\nimport {HeadCellModelData, OrderBy} from '../../../interfaces';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-table-advanced-header-cell',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class TableAdvancedHeaderCellComponent extends ContentBaseComponent implements HeadCellModelData {\n @Input() classes: string;\n @Input() id: string;\n @Input() colspan: number;\n @Input() rowspan: number;\n @Input() orderBy: OrderBy; // Possible values `none`, `asc`, `desc`.\n @Input() hasFilter: boolean;\n @Input() filterClasses: string;\n @Input() hasSelect?: boolean;\n valueFilter?: string;\n activeFilter?: boolean;\n valueSelect?: string;\n activeSelect?: boolean;\n\n @DesyContentChild()\n @ContentChildren(TableAdvancedSelectComponent) selectComponent?: TableAdvancedSelectComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent?: ContentComponent;\n}\n","import {Component, ContentChildren, QueryList} from '@angular/core';\nimport {TableAdvancedHeaderCellComponent} from './table-advanced-header-cell.component';\n\n@Component({\n selector: 'desy-table-advanced-header',\n template: ''\n})\nexport class TableAdvancedHeaderComponent {\n @ContentChildren(TableAdvancedHeaderCellComponent) cells: QueryList<TableAdvancedHeaderCellComponent>;\n}\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {CellData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-table-advanced-row-cell',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class TableAdvancedRowCellComponent extends ContentBaseComponent implements CellData {\n @Input() classes?: string;\n @Input() id?: string;\n @Input() colspan?: number;\n @Input() rowspan?: number;\n}\n","import {Component, ContentChildren, EventEmitter, Input, Output, QueryList} from '@angular/core';\nimport {TableAdvancedRowCellComponent} from './table-advanced-row-cell.component';\n\n@Component({\n selector: 'desy-table-advanced-row',\n template: ''\n})\nexport class TableAdvancedRowComponent {\n\n @ContentChildren(TableAdvancedRowCellComponent) cellsList: QueryList<TableAdvancedRowCellComponent>;\n\n @Input() id: string;\n @Input() checked: boolean;\n @Output() checkedChange: EventEmitter<boolean> = new EventEmitter();\n}\n","import {Directive, ElementRef, Input} from '@angular/core';\nimport {RowData} from '../interfaces';\nimport {TableAdvancedRowComponent} from '../components/table-advanced/components/table-advanced-row.component';\n\n/**\n * Permite gestionar celdas de una fila de la tabla\n */\n@Directive({\n selector: '[desyCell]'\n})\nexport class CellDirective {\n\n @Input() row: RowData|TableAdvancedRowComponent;\n @Input() rowIndex: number;\n @Input() columnIndex: number;\n\n constructor(private element: ElementRef) { }\n\n public getContent(): string {\n return this.element.nativeElement.textContent;\n }\n}\n","import {ContentChildren, Directive, Input, QueryList} from '@angular/core';\nimport {CellDirective} from './cell.directive';\nimport {RowData} from '../interfaces';\nimport {TableAdvancedRowComponent} from '../components/table-advanced/components/table-advanced-row.component';\n\n/**\n * Permite gestionar filas de la tabla\n */\n@Directive({\n selector: '[desyRow]'\n})\nexport class RowDirective {\n\n @ContentChildren(CellDirective) contentCells: QueryList<CellDirective>;\n @Input() desyRow: RowData|TableAdvancedRowComponent;\n\n\n /**\n * Devuelve la celda ubicada en la columna indicada\n * @param column índice de la columna\n */\n public getCell(column: number): CellDirective {\n return this.contentCells.find(cell => cell.columnIndex === column);\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[desyFocusClickedCell]'\n})\nexport class FocusClickedCellDirective {\n\n constructor(private el: ElementRef) {}\n\n @HostListener('click')\n onClick(): void {\n const hostElem = this.el.nativeElement; // la tabla - offsetParent\n const elemntsFocus = hostElem.offsetParent.querySelectorAll('[tabindex]'); // buscamos todos que pueden tener tabindex\n for (const iterator of elemntsFocus) {\n iterator.setAttribute('tabindex', '-1'); // se les quita\n }\n this.activeTabindex();\n }\n\n @HostListener('keydown', ['$event'])\n manageArrows(event): void {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp' || event.code === 'ArrowRight' || event.code === 'ArrowLeft'){\n let next = null;\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp'){\n let tr = null;\n if (event.code === 'ArrowDown') {\n tr = this.el.nativeElement.parentNode.nextElementSibling;\n } else if (event.code === 'ArrowUp') {\n tr = this.el.nativeElement.parentNode.previousElementSibling;\n }\n\n next = tr ? tr.children[this.findIndex()] : null;\n event.preventDefault();\n }\n\n if (event.code === 'ArrowRight' || event.code === 'ArrowLeft') {\n next = this.el.nativeElement;\n do {\n if (event.code === 'ArrowRight') {\n next = next.nextElementSibling;\n } else if (event.code === 'ArrowLeft') {\n next = next.previousElementSibling;\n }\n } while (next && !next.getAttribute('tabindex'));\n }\n\n if (next && next.getAttribute('tabindex')){\n this.inactiveTabindex();\n next.setAttribute('tabindex', '0');\n next.focus();\n }\n }\n }\n\n private activeTabindex(): void {\n this.el.nativeElement.setAttribute('tabindex', '0');\n }\n\n private inactiveTabindex(): void {\n this.el.nativeElement.setAttribute('tabindex', '-1');\n }\n\n private findIndex(): number {\n const mynode = this.el.nativeElement;\n const parentNode = this.el.nativeElement.parentNode;\n let index = -1;\n for (let i = 0; i < parentNode.children.length; i++) {\n const otherNode = parentNode.children[i];\n if (mynode.isEqualNode(otherNode)){\n index = i;\n break;\n }\n }\n return index;\n }\n\n}\n","import { ContentComponent } from './../../../desy-commons/components/content/content.component';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChildren\n} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport {SearchUtils} from '../../../shared/utils/search-utils';\nimport {HeadCellModelData, OrderBy, RowData, WrapperData} from '../../interfaces';\nimport {TableCaptionComponent} from '../table/components/table-caption.component';\nimport {TableAdvancedHeaderCellComponent} from './components/table-advanced-header-cell.component';\nimport {TableAdvancedHeaderComponent} from './components/table-advanced-header.component';\nimport {TableAdvancedRowComponent} from './components/table-advanced-row.component';\nimport {CellDirective} from '../../directives/cell.directive';\nimport {RowDirective} from '../../directives/row.directive';\nimport {RecalculateTableParams} from '../../interfaces/recalculate-table-params';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport { TableAdvancedSelectComponent } from './components/table-advanced-select.component';\nimport { SelectItemData } from '../../../desy-forms/interfaces/select-item-data';\n\n@Component({\n selector: 'desy-table-advanced',\n templateUrl: './table-advanced.component.html'\n})\nexport class TableAdvancedComponent extends AccessibilityComponent implements AfterViewInit {\n\n @Input() rows: RowData[]; // original data\n @Input() head: HeadCellModelData[];\n\n @Input() caption: string;\n @Input() captionClasses: string;\n @Input() firstCellIsHeader: boolean;\n @Input() hasCheckboxes: boolean;\n @Input() idPrefix: string;\n @Input() classes: string;\n @Input() checkboxClasses: string;\n @Input() id: string;\n @Input() wrapper: WrapperData;\n\n\n @DesyContentChild()\n @ContentChildren(TableCaptionComponent) captionComponent: TableCaptionComponent;\n\n @DesyContentChild()\n @ContentChildren(TableAdvancedHeaderComponent) headerComponent: TableAdvancedHeaderComponent;\n\n @ContentChildren(TableAdvancedRowComponent) rowComponentList: QueryList<TableAdvancedRowComponent>;\n @ViewChildren(RowDirective) rowData: QueryList<RowDirective>;\n\n @Output() rowsChange = new EventEmitter();\n @Output() rowsChecked = new EventEmitter();\n @Output() recalculateTable = new EventEmitter<RecalculateTableParams>();\n\n visibleRows: RowData[]|TableAdvancedRowComponent[];\n orderByType = OrderBy;\n isReset: boolean;\n\n constructor(private el: ElementRef, private changeDetector: ChangeDetectorRef) {\n super();\n }\n\n ngAfterViewInit(): void {\n const elemntsFocus = this.el.nativeElement.querySelector('[tabindex]');\n if (elemntsFocus) {\n elemntsFocus.setAttribute('tabindex', '0');\n }\n this.recalculateVisibleElements();\n }\n\n /**\n * Refresca las filas visibles tras realizarse una búsqueda o una ordenación\n */\n recalculateVisibleElements(): void {\n const recalculateParams = this.buildRecalculateParams();\n\n // Si se captura el evento recalculateTable se deja al usuario la responsabilidad de filtrar y ordenar los elementos.\n if (this.recalculateTable.observers.length > 0) {\n this.recalculateTable.emit(recalculateParams);\n this.changeDetector.markForCheck();\n } else {\n\n // Se deben mostrar todas las filas temporalmente para poder aplicar el filtro y la ordenación sobre el contenido insertado\n this.visibleRows = this.getRows();\n this.changeDetector.detectChanges();\n\n // Se aplica el filtro y la ordenación\n let rowData = this.filterRows(recalculateParams, this.rowData.toArray());\n rowData = this.sortRows(recalculateParams, rowData);\n this.visibleRows = rowData.map(r => r.desyRow) as RowData[]|TableAdvancedRowComponent[];\n this.changeDetector.detectChanges();\n }\n\n }\n\n /**\n * Construye los parámetros necesarios para recalcular la tabla, indicando los filtros y la ordenación\n */\n private buildRecalculateParams(): RecalculateTableParams {\n const params = {\n filters: [],\n sort: null\n };\n\n const head = this.getHeaderCells() as (HeadCellModelData|TableAdvancedHeaderCellComponent)[];\n if (head) {\n head.forEach((headerCell, headerCellIndex) => {\n if (headerCell.hasFilter && headerCell.activeFilter) {\n params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueFilter });\n }\n if(headerCell.hasSelect && headerCell.activeSelect){\n params.filters.push({ columnIndex: headerCellIndex, filterText: headerCell.valueSelect });\n }\n });\n\n const orderByColumnIndex = head.findIndex(cell => cell.orderBy && cell.orderBy !== OrderBy.none);\n params.sort = (orderByColumnIndex >= 0) ? { columnIndex: orderByColumnIndex, order: head[orderByColumnIndex].orderBy } : null;\n }\n\n return params;\n }\n\n /**\n * funciones de recoger ids, y caracteristicas\n */\n\n hasFilters(): boolean {\n const head = this.getHeaderCells();\n return head ? head.findIndex(cell => (cell.hasFilter) || (cell.hasSelect)) >= 0 : false;\n }\n\n getHeaderCells(): HeadCellModelData[]|TableAdvancedHeaderCellComponent[] {\n return this.headerComponent && this.headerComponent.cells.length > 0 ? this.headerComponent.cells.toArray() : this.head;\n }\n\n getRows(){\n let rows = [];\n if (this.rowComponentList.length > 0) {\n rows = this.rowComponentList.toArray();\n } else if (this.rows) {\n rows = this.rows;\n }\n return rows;\n }\n\n /**\n * Si se sobreescribe el comportamiento por defecto de filtrado y ordenación, se utilizarán las indicadas desde fuera del\n * componente (ya sea por parámetro o por contenido).\n * Si no se sobreescribe, devuelve las filas calculadas.\n */\n getVisibleRows(){\n return this.recalculateTable.observers.length > 0 ? this.getRows() : this.visibleRows;\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : 'id-table-row';\n }\n\n getIdHeader(index: number): string {\n return this.getIdPrefix() + '-header-' + index;\n }\n\n getIdRowCheckbox(index: number): string {\n return this.getIdPrefix() + '-checkbox-' + index;\n }\n\n getIdHeaderFilter(index: number): string {\n return this.getIdPrefix() + '-header-filter-' + index;\n }\n\n getIdHeaderSelect(index: number): string {\n return this.getIdPrefix() + '-header-select-' + index;\n }\n\n getCaptionClass(): string {\n return this.captionComponent ? this.captionComponent.classes : this.captionClasses;\n }\n\n getStringOrderBy(orderBy: OrderBy): string {\n if (orderBy === OrderBy.asc){\n return 'ascending';\n } else if (orderBy === OrderBy.desc){\n return 'descending';\n } else if (orderBy === OrderBy.none){\n return 'none';\n }\n }\n\n getSelectForItem(item: any): TableAdvancedSelectComponent{\n return item.selectComponent ? item.selectComponent : null;\n }\n\n getItemSelectOptions(item: TableAdvancedSelectComponent): SelectItemData[] {\n return item.selectItemComponentList && item.selectItemComponentList.length > 0 ?\n item.selectItemComponentList.toArray() : item.items;\n }\n\n getContentComponent(item: TableAdvancedHeaderCellComponent): ContentComponent{\n return item.contentComponent ? item.contentComponent : null;\n }\n\n\n /**\n * checks\n */\n handleCheckboxChange(row: RowData|TableAdvancedRowComponent): void {\n if (row instanceof TableAdvancedRowComponent) {\n row.checkedChange.emit(row.checked);\n }\n this.notifyCheckedChange();\n }\n\n /**\n * Permite desmarcar todas las filas\n */\n private uncheckAll(): void{\n this.getRows().forEach(r => {\n const mustEmit = r.checked && r instanceof TableAdvancedRowComponent;\n r.checked = false;\n if (mustEmit) {\n (r as TableAdvancedRowComponent).checkedChange.emit(r.checked);\n }\n });\n this.notifyCheckedChange();\n }\n\n /**\n * Notifica cambios en las filas\n */\n private notifyCheckedChange(): void {\n if (this.rowComponentList.length === 0) {\n this.rowsChange.emit(this.rows);\n }\n\n const rowChecks: any = {};\n this.getRows().forEach(r => rowChecks[r.id] = !!r.checked); // Se aplican también a las no visibles\n this.rowsChecked.emit(rowChecks);\n }\n\n\n /**\n * busqueda\n */\n handleInputSearch(item: HeadCellModelData): void {\n if (item.hasFilter) { // si tiene buscador\n item.activeFilter = !!item.valueFilter;\n this.uncheckAll();\n }\n if(item.hasSelect){ //Si tiene seleccionable\n item.activeSelect = !!item.valueSelect;\n this.uncheckAll();\n }\n\n this.recalculateVisibleElements();\n }\n\n /**\n * Se filtran las filas según lo especificado en la barra de búsqueda de cada columna.\n * Si no hay búsqueda sse devuelven todas las filas.\n * @param recalculateParams parametros para recalcular los elementos visibles\n * @param rows lista con todas las filas\n * @return lista de filas filtrada\n */\n private filterRows(recalculateParams: RecalculateTableParams, rows: RowDirective[]): RowDirective[] {\n let filteredRows = rows;\n recalculateParams.filters.forEach(filter => {\n filteredRows = filteredRows.filter(row =>\n SearchUtils.containsAnyWordFrom(row.getCell(filter.columnIndex).getContent(), filter.filterText));\n });\n return filteredRows;\n }\n\n /**\n * ordenacion\n */\n\n /**\n * Permite indicar que se debe ordenar la tabla\n * @param index indice de la columna\n */\n handleSortByColumn(index: number): void {\n const head = this.getHeaderCells();\n if (head) {\n head.forEach((cell, cellIndex) => {\n if (cell.orderBy) {\n cell.orderBy = cellIndex === index ? this.getNextDirection(cell) : OrderBy.none;\n }\n });\n }\n\n this.recalculateVisibleElements();\n }\n\n\n /**\n * Ordena las filas indicadas según la columna especificada en la cabecera\n * @param recalculateParams parametros para recalcular los elementos visibles\n * @param rows filas de la tabla a ordenar\n * @return mismas filas pero ordenadas por la columna indicada\n */\n private sortRows(recalculateParams: RecalculateTableParams, rows: RowDirective[]): RowDirective[] {\n let sortedRows = rows;\n if (recalculateParams.sort) {\n const columnIndex = recalculateParams.sort.columnIndex;\n const isAsc = recalculateParams.sort.order === OrderBy.asc;\n sortedRows = rows.sort((a, b) =>\n this.compareCellContent(a.getCell(columnIndex), b.getCell(columnIndex), isAsc));\n }\n\n return sortedRows;\n }\n\n /**\n * Compara el contenido de dos celdas. Este se invierte si el orden especificado es descendente.\n */\n compareCellContent(a: CellDirective, b: CellDirective, isAsc: boolean): number{\n let result;\n const aComparable = this.cleanCurrency(a.getContent());\n const bComparable = this.cleanCurrency(b.getContent());\n\n if (isNaN(+aComparable) && isNaN(+bComparable) ) { // son textos\n result = aComparable.localeCompare(bComparable, 'es', { sensitivity: 'base', ignorePunctuation: true });\n }else{ // son numeros\n result = aComparable.localeCompare(bComparable, undefined, { numeric: true });\n }\n\n return result * (isAsc ? 1 : -1);\n }\n\n /**\n * se calcula la ordenación nueva\n */\n private getNextDirection(item: HeadCellModelData): OrderBy {\n if (item.orderBy === OrderBy.none || item.orderBy === OrderBy.desc) {\n return OrderBy.asc;\n } else {\n return OrderBy.desc;\n }\n }\n\n /**\n * si es una cantidad de dinero se quita € para poder comparar los numeros\n */\n private cleanCurrency(txt: string): string {\n if (/[\\d.,]+[\\€]/g.test(txt)) {\n txt = txt.replace(/€/g, '');\n }\n return txt;\n }\n\n selectFilter(item: TableAdvancedSelectComponent, itemValue: any): void {\n item.valueChange.emit(itemValue);\n\n const head = this.getHeaderCells();\n const rows = this.getRows();\n if (head && rows) {\n head.forEach((cell: TableAdvancedHeaderCellComponent, cellIndex) => {\n });\n rows.forEach(row => {\n });\n }\n }\n}\n","<ng-template #tableContent>\n <table role=\"grid\"\n [class]=\"['c-table-advanced border-t-2 border-b-2 border-neutral-base', classes] | makeHtmlList\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <caption *ngIf=\"caption || captionComponent\" [class]=\"getCaptionClass()\">\n <ng-container *desyCustomInnerContent=\"{ component: captionComponent, text: caption ? caption : null }\"></ng-container>\n </caption>\n <thead *ngIf=\"getHeaderCells()\">\n <tr class=\"border-t border-neutral-base divide-x divide-neutral-base\">\n <th *ngIf=\"hasCheckboxes\" scope=\"col\" [class]=\"['align-top px-base py-xs', checkboxClasses] | makeHtmlList\">\n <span class=\"sr-only\">Seleccionar fila</span>\n </th>\n <th scope=\"col\" *ngFor=\"let item of getHeaderCells(); index as iHeader\" [id]=\"getIdHeader(iHeader)\"\n [attr.aria-sort]=\"item.orderBy ? getStringOrderBy(item.orderBy) : null\"\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\"\n [attr.colspan]=\"item.colspan ? item.colspan : null\"\n [attr.rowspan]=\"item.rowspan ? item.rowspan : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.ariaDisabled ? item.ariaDisabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex ? item.tabindex : null\">\n\n <span *ngIf=\"item.orderBy\" class=\"inline-block relative\" (click)=\"handleSortByColumn(iHeader)\" desyFocusClickedCell\n [attr.tabindex]=\"item.orderBy ? -1 : null\"\n [attr.role]=\"item.orderBy ? 'button' : null\">\n <ng-container *ngIf=\"item.text\">{{item.text}}</ng-container>\n <ng-container *ngIf=\"item.contentComponent\">\n <ng-container *desyCustomInnerContent=\"{ component: item.contentComponent }\"></ng-container>\n </ng-container>\n <span class=\"c-table-advanced__order\" *ngIf=\"item.orderBy\">\n <span class=\"sr-only\">Pulsa para ordenar por esta columna</span>\n <span class=\"c-table-advanced__ascending\" *ngIf=\"item.orderBy === orderByType.asc\">\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>\n </span>\n <span class=\"c-table-advanced__descending\" *ngIf=\"item.orderBy === orderByType.desc\">\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>\n </span>\n <span class=\"c-table-advanced__none\" *ngIf=\"item.orderBy === orderByType.none\">\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>\n </span>\n </span>\n </span>\n\n <span *ngIf=\"!item.orderBy\" class=\"inline-block relative\">\n <ng-container *ngIf=\"item.text\">{{item.text}}</ng-container>\n <ng-container *ngIf=\"item.contentComponent\">\n <ng-container *desyCustomInnerContent=\"{ component: item.contentComponent }\"></ng-container>\n </ng-container>\n </span>\n </th>\n </tr>\n </thead>\n\n <tbody>\n <tr class=\"divide-x divide-neutral-base\" *ngIf=\"hasFilters()\">\n <td *ngIf=\"hasCheckboxes\" [ngClass]=\"checkboxClasses\"></td>\n <td tabindex=\"-1\" *ngFor=\"let item of getHeaderCells(); index as iHead\" desyFocusClickedCell\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\">\n <ng-container *ngIf=\"item.hasSelect && getSelectForItem(item) !== null\">\n <ng-container *ngTemplateOutlet=\"tableSelect; context: {selectable: getSelectForItem(item)}\"></ng-container>\n <ng-template #tableSelect let-selectable=\"selectable\">\n <desy-select [id]=\"getIdHeaderSelect(iHead)\"\n [labelData]=\"{ text: 'Filtrar en esta columna', classes: 'sr-only' }\"\n [classes]=\"selectable.classes ? selectable.classes : 'c-select--sm w-full mt-0'\"\n [formGroupClasses]=\"selectable.formGroupClasses ? selectable.formGroupClasses : 'mb-0'\"\n [name]=\"selectable.name\"\n [items]=\"getItemSelectOptions(selectable)\"\n [disabled]=\"selectable.disabled\"\n [describedBy]=\"getIdHeaderSelect(iHead)\"\n\n [(ngModel)]=\"item.valueSelect\" (ngModelChange)=\"handleInputSearch(item)\"\n\n [role]=\"selectable.role\"\n [ariaLabel]=\"selectable.ariaLabel\"\n [ariaDescribedBy]=\"selectable.ariaDescribedBy\"\n [ariaLabelledBy]=\"selectable.ariaLabelledBy\"\n [ariaHidden]=\"selectable.ariaHidden\"\n [ariaDisabled]=\"selectable.ariaDisabled\"\n [ariaControls]=\"selectable.ariaControls\"\n [ariaCurrent]=\"selectable.ariaCurrent\"\n [ariaLive]=\"selectable.ariaLive\"\n [ariaExpanded]=\"selectable.ariaExpanded\"\n [ariaErrorMessage]=\"selectable.ariaErrorMessage\"\n [ariaHasPopup]=\"selectable.ariaHasPopup\"\n [tabindex]=\"selectable.tabindex\">\n </desy-select>\n </ng-template>\n </ng-container>\n\n <div *ngIf=\"item.hasSelect && item.hasFilter\" class=\"pb-sm\"></div>\n\n <desy-search-bar *ngIf=\"item.hasFilter\"\n [(ngModel)]=\"item.valueFilter\" [ngModelOptions]=\"{standalone: true}\"\n (clickEvent)=\"handleInputSearch(item)\"\n (ngModelChange)=\"handleInputSearch(item)\"\n labelText=\"Buscar en esta columna\"\n [id]=\"getIdHeaderFilter(iHead)\"\n placeholder=\"Buscar\"\n [classes]=\"['c-input--sm', item.filterClasses] | makeHtmlList\"\n buttonClasses=\"m-xs p-0.5 text-xs\"\n [describedBy]=\"getIdHeader(iHead)\"> </desy-search-bar>\n </td>\n </tr>\n\n\n <tr *ngFor=\"let row of getVisibleRows(); index as iRow\" class=\"border-t border-b border-neutral-base hover:bg-neutral-lighter\"\n [desyRow]=\"row\"\n [ngClass]=\"{'bg-neutral-light': hasCheckboxes && row.checked }\">\n <td *ngIf=\"hasCheckboxes\" desyFocusClickedCell [class]=\"['px-base py-sm', checkboxClasses] | makeHtmlList\"\n tabindex=\"-1\" >\n <div class=\"c-checkboxes c-checkboxes--sm\">\n <div>\n <div class=\"relative flex items-start\">\n <div class=\"flex items-center mx-sm\">\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\"\n [(ngModel)]=\"row.checked\" (ngModelChange)=\"handleCheckboxChange(row)\"\n [id]=\"getIdRowCheckbox(iRow)\"\n [name]=\"getIdRowCheckbox(iRow)\"\n [attr.aria-label]=\"'Fila ' + iRow\">\n </div>\n <div class=\"pt-0.5 leading-5\">\n <label class=\"sr-only block text-sm -mt-1\" [for]=\"getIdRowCheckbox(iRow)\">Selecciona fila {{ iRow }}</label>\n </div>\n </div>\n </div>\n </div>\n </td>\n <ng-container *ngFor=\"let cell of row.cellsList; first as isFirstCell; index as columnIndex\">\n <th *ngIf=\"firstCellIsHeader && isFirstCell; else elseTd\" scope=\"row\"\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\"\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\n [attr.id]=\"cell.id ? cell.id : null\"\n [attr.role]=\"cell.role ? cell.role : null\"\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : null\">\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\n </th>\n <ng-template #elseTd>\n <td tabindex=\"-1\" desyFocusClickedCell\n [class]=\"['px-base py-sm', cell.classes] | makeHtmlList\"\n desyCell [row]=\"row\" [rowIndex]=\"iRow\" [columnIndex]=\"columnIndex\"\n [attr.colspan]=\"cell.colspan ? cell.colspan : null\"\n [attr.rowspan]=\"cell.rowspan ? cell.rowspan : null\"\n [attr.id]=\"cell.id ? cell.id : null\"\n [attr.role]=\"cell.role ? cell.role : null\"\n [attr.aria-label]=\"cell.ariaLabel ? cell.ariaLabel : null\"\n [attr.aria-describedby]=\"cell.ariaDescribedBy ? cell.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"cell.ariaLabelledBy ? cell.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"cell.ariaHidden ? cell.ariaHidden : null\"\n [attr.aria-disabled]=\"cell.ariaDisabled ? cell.ariaDisabled : null\"\n [attr.aria-controls]=\"cell.ariaControls ? cell.ariaControls : null\"\n [attr.aria-current]=\"cell.ariaCurrent ? cell.ariaCurrent : null\"\n [attr.aria-live]=\"cell.ariaLive ? cell.ariaLive : null\"\n [attr.aria-expanded]=\"cell.ariaExpanded ? cell.ariaExpanded : null\"\n [attr.aria-errormessage]=\"cell.ariaErrorMessage ? cell.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"cell.ariaHasPopup ? cell.ariaHasPopup : null\"\n [attr.tabindex]=\"cell.tabindex ? cell.tabindex : -1\">\n <ng-container *desyCustomInnerContent=\"{ component: cell, html: cell.html, text: cell.text }\"></ng-container>\n </td>\n </ng-template>\n </ng-container>\n </tr>\n </tbody>\n </table>\n</ng-template>\n\n<div *ngIf=\"wrapper; else tableContent\" [class]=\"wrapper.classes\">\n <ng-container *ngTemplateOutlet=\"tableContent\"></ng-container>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component, ComponentFactoryResolver, ComponentRef,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef, Type,\n ViewChild, ViewContainerRef\n} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { FocusUtils } from '../../../shared/utils/focus-utils';\n\ntype AlertCreationCallback = ((dialog: AlertComponent, caller: ComponentRef<any>) => void);\n\n@Component({\n selector: 'desy-alert',\n templateUrl: './alert.component.html'\n})\nexport class AlertComponent extends AccessibilityComponent implements OnDestroy, AfterViewInit {\n\n @ViewChild('alertWrapper') alertWrapper: ElementRef;\n @ViewChild('container', {read: ViewContainerRef}) container: ViewContainerRef;\n\n @Input() id: string;\n @Input() classes: string;\n @Input() caller: TemplateRef<any>;\n @Input() focusFirst: boolean;\n\n @Input() set active(value: boolean) {\n setTimeout(() => {\n this._active = value;\n this.cdRef.detectChanges();\n this.handleActiveState();\n });\n }\n get active(): boolean {\n return this._active;\n }\n @Output() activeChange = new EventEmitter<boolean>();\n\n private _active: boolean;\n public callerContext: any;\n public callerType: Type<any>;\n public onCallerCreationCallback: AlertCreationCallback;\n\n private lastActiveState: boolean = undefined;\n private hasViewinit = false;\n private createdCallerFromType = false;\n\n constructor(private cdRef: ChangeDetectorRef, private factoryResolver: ComponentFactoryResolver) {\n super();\n }\n\n ngOnDestroy(): void {\n this.active = false;\n }\n\n ngAfterViewInit(): void {\n\n this.hasViewinit = true;\n this.handleActiveState();\n }\n\n dismiss(): void {\n this.activeChange.emit(false);\n }\n\n handleActiveState(): void {\n if (this._active && this.callerType && !this.createdCallerFromType) {\n const factory = this.factoryResolver.resolveComponentFactory(this.callerType);\n const component = this.container.createComponent(factory);\n if (this.onCallerCreationCallback) {\n this.onCallerCreationCallback(this, component);\n }\n this.createdCallerFromType = true;\n }\n\n if (this._active !== this.lastActiveState && this.hasViewinit) {\n this.lastActiveState = this._active;\n\n if (this._active && this.focusFirst) {\n this.cdRef.detectChanges();\n const focusElem = FocusUtils.getFirstFocusableElement(this.alertWrapper.nativeElement as HTMLElement);\n if (focusElem) {\n focusElem.focus();\n }\n }\n }\n }\n}\n","<div #alertWrapper\n [id]=\"id\" [class]=\"classes ? classes : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\n <ng-container *ngIf=\"active\">\n <ng-template #container></ng-template>\n <ng-container *ngTemplateOutlet=\"caller; context:callerContext\"></ng-container>\n </ng-container>\n</div>\n\n","import {Component, ContentChildren, Input} from '@angular/core';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {AccordionHeaderData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-accordion-header',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class AccordionHeaderComponent extends ContentBaseComponent implements AccordionHeaderData {\n\n @Input() classes?: string;\n\n}\n","import { Component, Input } from '@angular/core';\nimport { ContentBaseComponent } from '../../../../shared/components';\n\n@Component({\n selector: 'desy-accordion-item-show-button',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class AccordionItemShowButtonComponent extends ContentBaseComponent {\n\n @Input() classes: string;\n}\n","import { Component, Input } from '@angular/core';\nimport { ContentBaseComponent } from '../../../../shared/components';\n\n@Component({\n selector: 'desy-accordion-item-hide-button',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class AccordionItemHideButtonComponent extends ContentBaseComponent {\n\n @Input() classes: string;\n}\n","import {Component, ContentChildren, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {AccordionItemData} from '../../../interfaces';\nimport {AccordionHeaderComponent} from '../accordion-header/accordion-header.component';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\nimport {AccessibilityComponent} from '../../../../shared/components';\nimport {AccordionItemShowButtonComponent} from '../../accordion-history/accordion-item-show-button/accordion-item-show-button.component';\nimport {AccordionItemHideButtonComponent} from '../../accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\n\n@Component({\n selector: 'desy-accordion-item',\n template: '',\n})\nexport class AccordionItemComponent extends AccessibilityComponent implements AccordionItemData {\n\n @Input() id: string;\n @Input() open: boolean;\n @Input() classes: string;\n\n @Output() openChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @DesyContentChild()\n @ContentChildren(AccordionHeaderComponent) headerComponent: AccordionHeaderComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n @DesyContentChild()\n @ContentChildren(AccordionItemShowButtonComponent) showHeaderButton: AccordionItemShowButtonComponent;\n \n @DesyContentChild()\n @ContentChildren(AccordionItemHideButtonComponent) hideHeaderButton: AccordionItemHideButtonComponent;\n\n}\n","import {Component, ContentChildren, ElementRef, HostBinding, Input, OnChanges, QueryList, SimpleChanges, ViewChildren} from '@angular/core';\nimport {AccordionHeaderData} from '../../interfaces';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport {AccordionItemData} from '../../interfaces';\nimport {AccordionHeaderComponent} from './accordion-header/accordion-header.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\nimport {AccordionItemComponent} from './accordion-item/accordion-item.component';\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\n\n\n@Component({\n selector: 'desy-accordion',\n templateUrl: './accordion.component.html'\n})\nexport class AccordionComponent extends AccessibilityComponent implements OnChanges {\n \n @ViewChildren('itemSelector') itemSelectors: QueryList<ElementRef>;\n\n @Input() idPrefix: string;\n @Input() allowToggle: boolean;\n @Input() allowMultiple: boolean;\n @Input() heading: AccordionHeaderData;\n @Input() headingLevel;\n @Input() showControl: boolean;\n @Input() items: AccordionItemData[];\n \n @Input() @HostBinding('class') classes: any;\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.aria-modal') ariaModalData: any\n \n @DesyContentChild()\n @ContentChildren(AccordionHeaderComponent) headingComponent: AccordionHeaderComponent;\n @ContentChildren(AccordionItemComponent) itemComponentList: QueryList<AccordionItemComponent>;\n\n showAll = true;\n currentItem: number;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.roleData = this.role ? this.role : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.ariaModalData = this.ariaModal ? this.ariaModal : null;\n }\n\n getItemId(item, index: number): string {\n let id;\n if (item.id) {\n id = item.id;\n } else {\n if (index === 0) {\n id = this.idPrefix ? this.idPrefix : undefined;\n } else {\n id = this.idPrefix ? this.idPrefix + '-' + index : index;\n }\n }\n return id;\n }\n\n changeAll(): void {\n const items = this.getItems();\n items.forEach(item => {\n const isChange = item.open !== this.showAll;\n item.open = this.showAll;\n if (isChange && item instanceof AccordionItemComponent) {\n item.openChange.emit(item.open);\n }\n });\n this.showAll = !this.showAll;\n }\n\n toggleItem(item: AccordionItemData): void {\n if (!item.open || this.allowToggle) {\n const newOpenValue = !item.open;\n if (!this.allowMultiple) {\n const items = this.getItems();\n items.forEach(it => {\n const wasOpen = it.open;\n it.open = false;\n if (wasOpen && it !== item && it instanceof AccordionItemComponent) {\n it.openChange.emit(it.open);\n }\n });\n }\n item.open = newOpenValue;\n if (item instanceof AccordionItemComponent) {\n item.openChange.emit(item.open);\n }\n }\n }\n\n focusFirstItem(event): void {\n event.preventDefault();\n this.itemSelectors.toArray()[0].nativeElement.focus();\n }\n\n focusLastItem(event): void {\n event.preventDefault();\n this.itemSelectors.toArray()[this.itemSelectors.length - 1].nativeElement.focus();\n }\n\n focusNextItem(event, focusedItem: number): void {\n event.preventDefault();\n const selectors = this.itemSelectors.toArray();\n if (selectors[(focusedItem + 1) % selectors.length] != null) {\n selectors[(focusedItem + 1) % selectors.length].nativeElement.focus();\n }\n }\n\n focusPreviousItem(event, focusedItem: number): void {\n event.preventDefault();\n const selectors = this.itemSelectors.toArray();\n if (selectors[(focusedItem + selectors.length - 1) % selectors.length] != null) {\n selectors[(focusedItem + selectors.length - 1) % selectors.length].nativeElement.focus();\n }\n }\n\n selectItem( i: number ): void {\n this.currentItem = i;\n }\n\n getTitleClasses(): string {\n let classes = 'c-h2 mb-base';\n if (this.headingComponent && this.headingComponent.classes) {\n classes = this.headingComponent.classes;\n } else if (this.heading && this.heading.classes) {\n classes = this.heading.classes;\n }\n return classes;\n }\n\n getItems(): AccordionItemData[] {\n const items = this.itemComponentList && this.itemComponentList.length > 0 ? this.itemComponentList.toArray() : this.items;\n return items;\n }\n\n getItemHeader(item: AccordionItemData): AccordionHeaderComponent {\n return item instanceof AccordionItemComponent ? item.headerComponent : null;\n } \n\n getItemContent(item: AccordionItemData): ContentComponent {\n return item instanceof AccordionItemComponent ? item.contentComponent : null;\n }\n\n}\n","\n <div class=\"flex justify-between\">\n <ng-container *ngIf=\"headingComponent || heading\">\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h1 *ngSwitchCase=\"1\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"getTitleClasses()\">\n <ng-container *desyCustomInnerContent=\"{\n component: headingComponent ? headingComponent : null,\n html: heading ? heading.html : null,\n text: heading ? heading.text : null\n }\"></ng-container>\n </h5>\n </ng-container>\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\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\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </ng-container>\n </div>\n <div class=\"Accordion\">\n <div *ngFor=\"let item of getItems(); index as i\" class=\"-my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n\n <ng-container [ngSwitch]=\"headingLevel > 0 && headingLevel < 6 ? headingLevel : 2\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el botón anterior para mostrar u ocultar</p>\n <div *ngIf=\"item.open\" class=\"Accordion-panel\"\n [class]=\"item.classes\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\" \n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n<ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\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\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" (click)=\"toggleItem(item)\" [attr.disabled]=\"item.disabled\" [ngClass]=\"item.disabled ? 'cursor-not-allowed' : classes\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\" aria-hidden=\"true\" [ngClass]=\"{'hidden': item.disabled}\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showHeaderButton, text: 'Mostrar' }\"></ng-container> \n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-hide', item.showHeaderButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideHeaderButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n</ng-template>\n","import { Component, ContentChildren, Input } from '@angular/core';\nimport { DesyContentChild } from '../../../../shared/decorators/desy-content-child.decorator';\nimport { AccordionItemComponent } from '../../accordion/accordion-item/accordion-item.component';\nimport { AccordionItemHideButtonComponent } from '../accordion-item-hide-button/accordion-item-hide-button.component';\nimport { AccordionItemShowButtonComponent } from '../accordion-item-show-button/accordion-item-show-button.component';\n\n@Component({\n selector: 'desy-accordion-history-item',\n template: '',\n})\nexport class AccordionHistoryItemComponent extends AccordionItemComponent {\n\n @Input() status: 'current' | 'pending' | 'muted' | 'currentmuted' | any;\n @Input() disabled = false;\n\n @DesyContentChild()\n @ContentChildren(AccordionItemShowButtonComponent) showButton: AccordionItemShowButtonComponent;\n \n @DesyContentChild()\n @ContentChildren(AccordionItemHideButtonComponent) hideButton: AccordionItemHideButtonComponent;\n}\n","import { Component, ContentChildren, QueryList } from '@angular/core';\nimport { AccordionComponent } from '../accordion/accordion.component';\nimport { AccordionHistoryItemComponent } from './accordion-history-item/accordion-history-item.component';\n\n@Component({\n selector: 'desy-accordion-history',\n templateUrl: './accordion-history.component.html'\n})\nexport class AccordionHistoryComponent extends AccordionComponent {\n\n // Sobreescribe el tipo del listado de items\n @ContentChildren(AccordionHistoryItemComponent) itemComponentList: QueryList<AccordionHistoryItemComponent>;\n}\n","<div [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div class=\"flex justify-between\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h1>\n <h2 *ngSwitchCase=\"2\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n <h3 *ngSwitchCase=\"3\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h3>\n <h4 *ngSwitchCase=\"4\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h4>\n <h5 *ngSwitchCase=\"5\" [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h5>\n <h2 *ngSwitchDefault [class]=\"headingComponent?.classes || 'c-h2 mb-base'\"><ng-container *desyCustomInnerContent=\"{ component: headingComponent }\"></ng-container></h2>\n </ng-container>\n\n <button *ngIf=\"showControl\" (click)=\"changeAll()\"\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\">\n {{showAll ? 'Mostrar' : 'Ocultar'}} todo\n </button>\n </div>\n <div class=\"Accordion pl-lg\">\n <ng-template #itemHeaderContent let-item=\"item\" let-id=\"id\" let-index=\"index\">\n <button #itemSelector [id]=\"id + '-title'\" (click)=\"toggleItem(item)\"\n [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', item.disabled ? 'cursor-not-allowed' : ''] | makeHtmlList\"\n [attr.aria-controls]=\"id\" [attr.aria-expanded]=\"item.open\" [disabled]=\"item.disabled\">\n <ng-container *desyCustomInnerContent=\"{ component: getItemHeader(item), html: item.headerHtml, text: item.headerText }\"></ng-container>\n <span *ngIf=\"!item.disabled\" class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black pointer-events-none\">\n <span *ngIf=\"!item.open\" [class]=\"['Accordion-show', item.showButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.showButton, text: 'Mostrar' }\"></ng-container>\n </span>\n <span *ngIf=\"allowToggle && item.open\" [class]=\"['Accordion-show', item.hideButton?.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: item.hideButton, text: 'Ocultar' }\"></ng-container>\n </span>\n </span>\n </button>\n </ng-template>\n\n <div *ngFor=\"let item of getItems(); index as i; first as isFirst; last as isLast\" \n class=\"relative -my-px px-xs py-sm border-t border-b border-neutral-base\"\n (keydown.home)=\"focusFirstItem($event)\"\n (keydown.end)=\"focusLastItem($event)\"\n (keydown.arrowup)=\"focusPreviousItem($event, i)\"\n (keydown.arrowdown)=\"focusNextItem($event, i)\"\n (click)=\"selectItem(i)\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h2 *ngSwitchCase=\"1\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h2>\n <h3 *ngSwitchCase=\"2\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n <h4 *ngSwitchCase=\"3\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h4>\n <h5 *ngSwitchCase=\"4\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h5>\n <h6 *ngSwitchCase=\"5\"><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h6>\n <h3 *ngSwitchDefault><ng-container *ngTemplateOutlet=\"itemHeaderContent; context: {item: item, id: getItemId(item, i), index: i}\"></ng-container></h3>\n </ng-container>\n <p class=\"sr-only\" aria-hidden=\"true\">Haz click en el botón anterior para mostrar u ocultar</p>\n <ng-container *ngIf=\"!isFirst\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute -top-px -left-5 h-6 border-2 border-neutral-base\"></div>\n <div *ngSwitchDefault class=\"absolute -top-px -left-5 h-6 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-6 bottom-0 -left-5 border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-6 bottom-0 -left-5 border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white ring-2 ring-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-white border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pendiente</p></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base border-2 border-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-5 -left-6 w-3 h-3 bg-neutral-base ring-2 ring-neutral-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: actual</p></div>\n <div *ngSwitchDefault class=\"absolute top-5 -left-6 w-3 h-3 bg-primary-base border-2 border-primary-base rounded-full\" role=\"img\"><p class=\"sr-only\">Estado: pasado</p></div>\n </ng-container>\n\n <div *ngIf=\"item.open\" [class]=\"['Accordion-panel relative', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.role]=\"(item.role ? role : 'accordion')\"\n [attr.aria-selected]=\"currentItem === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'accordion-' + getItemId(item, i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <ng-container *ngIf=\"!isLast\">\n <ng-container [ngSwitch]=\"item.status\">\n <div *ngSwitchCase=\"'current'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'pending'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchCase=\"'muted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-base\"></div>\n <div *ngSwitchCase=\"'currentmuted'\" class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-neutral-light\"></div>\n <div *ngSwitchDefault class=\"absolute top-4 bottom-0 -left-6 -my-sm border-2 border-primary-base\"></div>\n </ng-container>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemContent(item), html: item.html, text: item.text }\"></ng-container>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\n\n@Component({\n selector: 'desy-details',\n templateUrl: './details.component.html'\n})\nexport class DetailsComponent extends AccessibilityComponent implements OnInit{\n\n @Input() summaryText: string;\n @Input() summaryHtml: string;\n @Input() summaryClasses: string;\n @Input() containerClasses: string;\n @Input() id: string;\n @Input() open: boolean;\n @Input() classes: string;\n\n isHtml: boolean;\n\n ngOnInit(): void {\n this.isHtml = Boolean(this.summaryHtml);\n }\n\n}\n","<details \n [attr.id]=\"id ? id : null\"\n [class]=\"classes\"\n [attr.open]=\"open ? open : null\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <summary class=\"py-sm cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\">\n <span [desyInnerContent]=\"summaryHtml ? summaryHtml : summaryText\" [isHtml]=\"isHtml\"\n [class]=\"summaryClasses ? summaryClasses : 'c-link'\"></span>\n </summary>\n <div class=\"py-sm\">\n <div [ngClass]=\"containerClasses\">\n <ng-content></ng-content>\n </div>\n </div>\n</details> \n\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {TermDefinitionData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-term',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class TermComponent extends ContentBaseComponent implements TermDefinitionData {\n\n @Input() classes: string;\n @Input() id: string;\n\n}\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {TermDefinitionData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-definition',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class DefinitionComponent extends ContentBaseComponent implements TermDefinitionData {\n\n @Input() classes: string;\n @Input() id: string;\n}\n","import {Component, ContentChildren, Input} from '@angular/core';\nimport {DescriptionItemData} from '../../../interfaces';\nimport {TermComponent} from '../term/term.component';\nimport {DefinitionComponent} from '../definition/definition.component';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-description-item',\n template: ''\n})\nexport class DescriptionItemComponent implements DescriptionItemData {\n\n @DesyContentChild()\n @ContentChildren(TermComponent) term: TermComponent;\n\n @DesyContentChild()\n @ContentChildren(DefinitionComponent) definition: DefinitionComponent;\n\n @Input() classes: string;\n @Input() id: string;\n\n}\n","import {Component, ContentChildren, Input, QueryList} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { DescriptionItemData } from '../../interfaces';\nimport {DescriptionItemComponent} from './description-item/description-item.component';\n\n@Component({\n selector: 'desy-description-list',\n templateUrl: './description-list.component.html'\n})\nexport class DescriptionListComponent extends AccessibilityComponent {\n\n @Input() items: Array<DescriptionItemData>;\n @ContentChildren(DescriptionItemComponent) itemComponents: QueryList<DescriptionItemComponent>;\n @Input() classes: string;\n @Input() id: string;\n\n\n getItems(): DescriptionItemData[]|DescriptionItemComponent[] {\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\n return items;\n }\n\n}\n","<dl [class]=\"classes\"\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div *ngFor=\"let item of getItems()\"\n [class]=\"item.classes\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-disabled]=\"item.ariaDisabled\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <dt [class]=\"(item.term.classes ? item.term.classes : 'text-sm text-neutral-dark')\"\n [attr.id]=\"item.term.id ? item.term.id : null\"\n [attr.role]=\"item.term.role\"\n [attr.aria-describedby]=\"item.term.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.term.ariaErrorMessage\"\n [attr.aria-label]=\"item.term.ariaLabel\"\n [attr.aria-labelledby]=\"item.term.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.term.ariaHidden\"\n [attr.aria-disabled]=\"item.term.ariaDisabled\"\n [attr.aria-controls]=\"item.term.ariaControls\"\n [attr.aria-current]=\"item.term.ariaCurrent\"\n [attr.aria-live]=\"item.term.ariaLive\"\n [attr.aria-expanded]=\"item.term.ariaExpanded\"\n [attr.aria-haspopup]=\"item.term.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item.term, html: item.term.html, text: item.term.text}\"></ng-container>\n </dt>\n <dd [class]=\"(item.definition.classes ? item.definition.classes : 'text-base text-black')\"\n [attr.id]=\"item.definition.id ? item.definition.id : null\"\n [attr.role]=\"item.definition.role\"\n [attr.aria-describedby]=\"item.definition.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.definition.ariaErrorMessage\"\n [attr.aria-label]=\"item.definition.ariaLabel\"\n [attr.aria-labelledby]=\"item.definition.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.definition.ariaHidden\"\n [attr.aria-disabled]=\"item.definition.ariaDisabled\"\n [attr.aria-controls]=\"item.definition.ariaControls\"\n [attr.aria-current]=\"item.definition.ariaCurrent\"\n [attr.aria-live]=\"item.definition.ariaLive\"\n [attr.aria-expanded]=\"item.definition.ariaExpanded\"\n [attr.aria-haspopup]=\"item.definition.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item.definition, html: item.definition.html, text: item.definition.text}\"></ng-container>\n </dd>\n </div>\n</dl>\n","import { Pipe, PipeTransform, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'innerHtml'\n})\nexport class InnerHtmlPipe implements PipeTransform {\n\n constructor(private sanitizer: DomSanitizer) { }\n\n transform(value: string): SafeHtml {\n return this.sanitizer.sanitize(SecurityContext.HTML, value);\n }\n\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, Input, OnChanges, OnInit, TemplateRef } from '@angular/core';\nimport { AccessibilityAndContentRequiredComponent } from '../../../shared/components';\n\n@Component({\n selector: 'desy-collapsible',\n templateUrl: './collapsible.component.html',\n animations: [\n trigger('displayCollapsible', [\n state('void', style({\n opacity: '0.0',\n transform: 'scaleY(0.95)'\n })),\n state('*', style({\n opacity: '1.0',\n transform: 'scaleY(1.0)'\n })),\n transition(':enter', [\n animate('100ms ease-out')\n ]),\n transition(':leave', [\n animate('75ms ease-in')\n ])\n ])\n ]\n})\nexport class CollapsibleComponent extends AccessibilityAndContentRequiredComponent implements OnInit, OnChanges {\n\n @Input() headerText: string;\n @Input() headerHtml: string;\n @Input() id: string;\n @Input() open: boolean;\n @Input() classes: string;\n show: string;\n htmlTemplate: TemplateRef<any>;\n\n isOpen(): void {\n this.open = !this.open;\n this.toggleOpen();\n }\n\n toggleOpen(): void {\n if (this.open){\n this.show = 'Ocultar';\n } else {\n this.show = 'Mostrar';\n }\n }\n\n ngOnInit(): void {\n if(this.html){\n this.htmlTemplate = this.html;\n }\n this.toggleOpen();\n }\n\n ngOnChanges(): void {\n this.toggleOpen();\n }\n\n}\n","<div [class]=\"(classes ? classes : '-my-px py-sm border-t border-b border-neutral-base')\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <h3> \n <button *ngIf=\"headerText && !headerHtml\" (click)=\"isOpen()\" [attr.id]=\"id ? (id + '-title') : null\"\n class=\"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\" \n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"id ? id : null\">{{ headerText }}\n <span class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black\" aria-hidden=\"true\">{{show}}</span>\n </button>\n <button *ngIf=\"headerHtml\" (click)=\"isOpen()\" [attr.id]=\"id ? (id + '-title') : null\"\n class=\"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\" \n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"id ? id : null\"><ng-container *ngTemplateOutlet=\"tmpHtml\"></ng-container>\n <span class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black\" aria-hidden=\"true\">{{show}}</span>\n </button>\n <button *ngIf=\"!headerHtml && !headerText\" (click)=\"isOpen()\" [attr.id]=\"id ? (id + '-title') : null\"\n class=\"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\" \n [attr.aria-expanded]=\"open\"\n [attr.aria-controls]=\"id ? id : null\">\n <ng-content></ng-content>\n <span class=\"absolute inset-y-0 right-0 py-sm font-normal text-sm text-neutral-dark underline group-focus:text-black\" aria-hidden=\"true\">{{show}}</span>\n </button>\n </h3>\n <div *ngIf=\"open && html\" @displayCollapsible [attr.id]=\"(id ? id : null)\" class=\"py-sm\">\n <ng-container *ngTemplateOutlet=\"htmlTemplate\"></ng-container>\n </div>\n <div *ngIf=\"open && !html\" @displayCollapsible [attr.id]=\"(id ? id : null)\" class=\"py-sm\">\n <p [desyInnerContent]=\"text\"></p>\n </div>\n</div>\n<ng-template #tmpHtml>\n <div [outerHTML]=\"headerHtml | innerHtml\"></div> \n </ng-template>\n","import { Component } from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-item-content-right',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ItemContentRightComponent extends ContentBaseComponent {\n\n}\n","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {ContentData} from '../../../../desy-commons/interfaces';\n\n@Component({\n selector: 'desy-item-content-bottom',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ItemContentBottomComponent extends ContentBaseComponent implements ContentData {\n @Input() classes: string;\n\n}\n","import { Component } from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-item-item',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class ItemItemComponent extends ContentBaseComponent {\n\n}\n","import {\n ChangeDetectorRef,\n Component,\n ContentChildren,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n SimpleChanges,\n TemplateRef\n} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport {ContentData, DescriptionData, IconData, TitleData} from '../../../desy-commons/interfaces';\nimport {TitleComponent} from '../../../desy-commons/components/title/title.component';\nimport {DescriptionComponent} from '../../../desy-commons/components/description/description.component';\nimport {ItemContentRightComponent} from './item-content-right/item-content-right.component';\nimport {ItemContentBottomComponent} from './item-content-bottom/item-content-bottom.component';\nimport {ItemItemComponent} from './item-item/item-item.component';\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-item',\n templateUrl: './item.component.html'\n})\nexport class ItemComponent extends AccessibilityComponent implements OnChanges, OnInit {\n\n @Input() title: TitleData;\n @Input() description: DescriptionData;\n @Input() headingLevel: number;\n @Input() items: string[];\n @Input() content: ContentData;\n @Input() icon: IconData;\n @Input() isDraggable: boolean;\n @Input() isLocked: boolean;\n @Input() caller: TemplateRef<any>;\n\n @Input() @HostBinding('class') classes: any;\n @Input() @HostBinding('attr.id') id: any;\n\n @DesyContentChild()\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\n\n @DesyContentChild()\n @ContentChildren(DescriptionComponent) descriptionComponent: DescriptionComponent;\n\n @DesyContentChild()\n @ContentChildren(IconComponent) iconComponent: IconComponent;\n\n @DesyContentChild()\n @ContentChildren(ItemContentBottomComponent) contentBottomComponent: ItemContentBottomComponent;\n\n @DesyContentChild()\n @ContentChildren(ItemContentRightComponent) contentRightComponent: ItemContentRightComponent;\n\n @ContentChildren(ItemItemComponent) itemComponents: QueryList<ItemItemComponent>;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n ngOnInit(): void {\n const progressInterval = setInterval(() => {\n this.checkClasses();\n clearInterval(progressInterval); \n }, 500);\n }\n\n getItems() {\n let items = [];\n if (this.itemComponents.length > 0) {\n items = this.itemComponents.toArray();\n } else if (this.items) {\n items = this.items;\n }\n return items;\n }\n\n handleIconContentEmpty(isEmpty: boolean): void {\n this.changeDetectorRef.detectChanges();\n }\n\n getTitle(): TitleData {\n return this.titleComponent ? this.titleComponent : (this.title ? this.title : null);\n }\n\n getIcon(): IconData {\n return this.iconComponent ? this.iconComponent : (this.icon ? this.icon : null)\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.checkClasses();\n }\n\n checkClasses (): void {\n if(this.getTitle()){\n this.classes = this.classes ? this.classes += ' flex flex-wrap p-base bg-white border border-neutral-base rounded' : 'flex flex-wrap p-base bg-white border border-neutral-base rounded';\n this.id = this.id ? this.id : null;\n }\n }\n\n}\n","<div class=\"self-center h-full mr-lg\" *ngIf=\"isDraggable || isLocked\">\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>\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>\n</div>\n<div [class]=\"getIcon().containerClasses !== null ? getIcon().containerClasses : 'self-center h-full mr-base'\" *ngIf=\"getIcon() !== null\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\n <ng-container [ngSwitch]=\"iconComponent ? iconComponent.type : icon.type\">\n <svg *ngSwitchCase=\"'clipboard'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Icono de datos\" focusable=\"false\" role=\"img\"><path d=\"M16.5 9h-9a.75.75 0 0 0 0 1.5h9a.75.75 0 0 0 0-1.5ZM17.25 13.25a.76.76 0 0 0-.75-.75h-9a.75.75 0 0 0 0 1.5h9a.76.76 0 0 0 .75-.75ZM10 6.5h4a1 1 0 0 0 1-1V3A3 3 0 0 0 13.82.62 3 3 0 0 0 9 3.09V5.5a1 1 0 0 0 1 1Zm1.25-3.75a.75.75 0 1 1 .75.75.76.76 0 0 1-.75-.75Z\" fill=\"currentColor\" transform=\"scale(2)\"/><path d=\"M19.5 3h-2.75a.25.25 0 0 0-.25.25v1.5a.25.25 0 0 0 .25.25H19a.5.5 0 0 1 .5.5v12.79a.51.51 0 0 1-.15.36l-3.2 3.2a.49.49 0 0 1-.36.15H5a.5.5 0 0 1-.5-.5v-16A.5.5 0 0 1 5 5h2.25a.25.25 0 0 0 .25-.25v-1.5A.25.25 0 0 0 7.25 3H4.5a2 2 0 0 0-2 2v17a2 2 0 0 0 2 2h15a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2Z\" fill=\"currentColor\" transform=\"scale(2)\"/><path d=\"M7.5 16a.75.75 0 0 0 0 1.5h3.75a.75.75 0 0 0 0-1.5Z\" fill=\"currentColor\" transform=\"scale(2)\"/></svg>\n <svg *ngSwitchCase=\"'link'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Icono de enlace\" focusable=\"false\" role=\"img\"><path d=\"M12.41 14.91a1 1 0 0 0-.55 1.3 1 1 0 0 1-.21 1.09l-2.83 2.83a2 2 0 0 1-2.83 0L3.87 18a2 2 0 0 1 0-2.83l2.83-2.82a1 1 0 0 1 1.09-.21 1 1 0 0 0 .76-1.85 3 3 0 0 0-3.27.65l-2.83 2.83a4 4 0 0 0 0 5.65l2.13 2.13a4 4 0 0 0 5.65 0l2.83-2.83a3 3 0 0 0 .65-3.27 1 1 0 0 0-1.3-.54Z\" fill=\"currentColor\" transform=\"scale(2)\"/><path d=\"M7.76 16.24a1 1 0 0 0 1.41 0L17 8.46a1 1 0 0 0-1.41-1.41l-7.83 7.78a1 1 0 0 0 0 1.41Z\" fill=\"currentColor\" transform=\"scale(2)\"/><path d=\"m21.55 4.57-2.13-2.12a4 4 0 0 0-5.65 0l-2.83 2.83a3 3 0 0 0-.88 2.12 3 3 0 0 0 .23 1.15 1 1 0 0 0 1.85-.76 1 1 0 0 1-.08-.39 1 1 0 0 1 .29-.7l2.83-2.83a2 2 0 0 1 2.83 0L20.13 6a2 2 0 0 1 0 2.83l-2.83 2.81a1 1 0 0 1-1.09.22 1 1 0 0 0-1.3.54 1 1 0 0 0 .54 1.31 3 3 0 0 0 3.27-.65l2.83-2.83a4 4 0 0 0 0-5.66Z\" fill=\"currentColor\" transform=\"scale(2)\"/></svg>\n <svg *ngSwitchCase=\"'document'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" width=\"1em\" height=\"1em\" class=\"w-8 h-8 text-neutral-dark\" aria-label=\"Icono de documento\" focusable=\"false\" role=\"img\"><path d=\"m15.32 2.15 4.53 4.53A.49.49 0 0 1 20 7v14.5a.5.5 0 0 1-.5.5h-15a.5.5 0 0 1-.5-.5v-19a.5.5 0 0 1 .5-.5H15a.49.49 0 0 1 .32.15ZM15.59 0H4a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6.41a1 1 0 0 0-.29-.7L16.29.29a1 1 0 0 0-.7-.29Z\" fill=\"currentColor\" transform=\"scale(2)\"/><path d=\"M16 11H7a1 1 0 0 1 0-2h9a1 1 0 0 1 0 2ZM16 15H7a1 1 0 0 1 0-2h9a1 1 0 0 1 0 2ZM11.5 19H7a1 1 0 0 1 0-2h4.5a1 1 0 0 1 0 2Z\" fill=\"currentColor\" transform=\"scale(2)\"/></svg>\n </ng-container>\n</div>\n<div class=\"lg:flex flex-1 self-center\">\n <div class=\"lg:flex-1 lg:self-center\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\"\n [class]=\"getTitle().classes\"\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\">\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\"\n [class]=\"getTitle().classes\"\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\">\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\"\n [class]=\"getTitle().classes\"\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\">\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\"\n [class]=\"getTitle().classes\"\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\">\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\"\n [class]=\"getTitle().classes\"\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\">\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\n </h5>\n <p *ngSwitchDefault\n [class]=\"getTitle().classes\"\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\">\n <ng-container *desyCustomInnerContent=\"{ component: titleComponent, html: getTitle().html, text: getTitle().text }\"></ng-container>\n </p>\n </ng-container>\n\n <p *ngIf=\"descriptionComponent || description\" [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: descriptionComponent, html: description ? description.html : null, text: description ? description.text : null }\"></ng-container>\n </p>\n <ul class=\"-ml-sm lg:divide-x lg:divide-neutral-base\" *ngIf=\"itemComponents.length > 0 || items\">\n <li class=\"lg:inline-block px-sm text-sm text-neutral-dark\" *ngFor=\"let item of getItems(); index as index\">\n <ng-container *desyCustomInnerContent=\"{ component: item, text: item }\"></ng-container>\n </li>\n </ul>\n <p *ngIf=\"contentBottomComponent || content\" [class]=\"contentBottomComponent ? contentBottomComponent.classes : content.classes\">\n <ng-container *desyCustomInnerContent=\"{ component: contentBottomComponent, html: content ? content.html : null, text: content ? content.text : null }\"></ng-container>\n </p>\n </div>\n <div class=\"w-full lg:w-auto lg:text-right mt-base lg:mt-0 lg:ml-base\" *ngIf=\"contentRightComponent || caller\">\n <ng-container *desyCustomInnerContent=\"{ component: contentRightComponent, template: caller }\"></ng-container>\n </div>\n</div>","import { Component } from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-media-object-figure',\n templateUrl: './media-object-figure.component.html'\n})\nexport class MediaObjectFigureComponent extends ContentBaseComponent {\n\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n ","import { AccessibilityComponent } from '../../../shared/components';\nimport { Component, Input, TemplateRef, ContentChildren, ElementRef, ViewChild, HostBinding, OnChanges, SimpleChanges } from '@angular/core';\nimport { ContentComponent } from '../../../desy-commons/components/content/content.component';\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\nimport { MediaObjectFigureComponent } from './media-object-figure/media-object-figure.component';\n\n@Component({\n selector: 'desy-media-object',\n templateUrl: './media-object.component.html'\n})\nexport class MediaObjectComponent extends AccessibilityComponent implements OnChanges { \n\n @Input() figureHtml: string;\n @Input() center: boolean;\n @Input() reverse: boolean;\n @Input() figureClasses: string;\n @Input() contenClasses: string;\n \n @Input() caller: TemplateRef<any>;\n @Input() id: string;\n \n @Input() @HostBinding('class') classes: any;\n @HostBinding('class.items-center') cfgr: boolean;\n\n //Accessibility\n @HostBinding('attr.id') idData: any;\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.tabindex') tabindexData: any;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n \n @DesyContentChild()\n @ContentChildren(MediaObjectFigureComponent) mediaObjectFigureComponent: MediaObjectFigureComponent;\n\n @ViewChild('mediaFigureContent', { read: ElementRef, static: true }) mediaFigureContent: ElementRef;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classes = 'flex' + (this.classes ? ' ' + this.classes : '') + (this.center==true ? ' ' : '');\n this.cfgr = this.center;\n this.idData = this.id ? this.id : null;\n this.roleData = this.role ? this.role : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.tabindexData = this.tabindex ? this.tabindex : null;\n }\n\n}\n","<div *ngIf=\"figureHtml\" [class]=\"(reverse===true ? ' ' + 'order-1' : '') + (figureClasses ? ' ' + figureClasses : '')\" [attr.figureHtml]=\"figureHtml\" [innerHtml]=\"figureHtml\"></div>\n\n<div #mediaFigureContent *ngIf=\"!figureHtml\" [class]=\"(reverse===true ? ' ' + 'order-1' : '') + (figureClasses ? ' ' + figureClasses : '')\">\n <ng-container *desyCustomInnerContent=\"{ component: mediaObjectFigureComponent }\"></ng-container>\n</div>\n\n<div [class]=\"'flex-1' + (contenClasses ? ' ' + contenClasses : '')\">\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\n</div>","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { StatusIconData } from '../../interfaces/status-icon-data';\n\n@Component({\n selector: 'desy-status',\n templateUrl: './status.component.html'\n})\nexport class StatusComponent extends AccessibilityComponent implements OnChanges, OnInit{\n\n @Input() text: string;\n @Input() id: string;\n @Input() icon: StatusIconData;\n\n @Input() @HostBinding('class') classes: any;\n\n //Accessibility\n @HostBinding('attr.id') idData: any;\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.tabindex') tabindexData: any;\n\n isHtml: boolean;\n\n ngOnInit(){\n this.isHtml = Boolean(this.icon.html);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classes = this.classes ? this.classes : null;\n this.idData = this.id ? this.id : null;\n this.roleData = this.role ? this.role : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.tabindexData = this.tabindex ? this.tabindex : null;\n }\n\n getType(): string {\n let type: string;\n if (this.icon && this.icon.type){\n type = this.icon.type.toLocaleLowerCase();\n } else {\n type = 'success';\n } \n return type;\n }\n}\n","<p class=\"inline-flex items-center\">\n <span class=\"inline-block font-bold uppercase\">{{text}}</span>\n <span class=\"inline-block ml-sm\" *ngIf=\"!icon || !icon.html; else elseBlock\"> \n <ng-container [ngSwitch]=\"getType()\">\n <ng-container *ngSwitchCase=\"'success'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-success-dark\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M39.94 125a19.88 19.88 0 01-15.53-7.81L2.48 92.26a10 10 0 0115-13.2l20.55 23.39a2.5 2.5 0 003.68.08l81-84.42a10.002 10.002 0 1114.5 13.78l-82.02 86.33A19.41 19.41 0 0139.94 125z\" fill=\"currentColor\"/></svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'alert'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-alert-base\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'loading'\">\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\" focusable=\"false\"><path d=\"M71.15 2.3a7.7 7.7 0 100 15.4A52.3 52.3 0 1118.85 70a62.29 62.29 0 014.7-23.16l5.76 4a7.55 7.55 0 004.25 1.31 7.41 7.41 0 004.09-1.22 7.51 7.51 0 003.28-7.68L37 22.45a7.52 7.52 0 00-8.66-6l-21 3.65a7.5 7.5 0 00-3 13.57l6.21 4.27A77.78 77.78 0 003.45 70a67.7 67.7 0 1067.7-67.7z\" fill=\"currentColor\"/><path d=\"M91.15 92.5a7.45 7.45 0 01-3.35-.79l-20-10A7.51 7.51 0 0163.65 75V42.5a7.5 7.5 0 0115 0v27.87l15.86 7.92a7.5 7.5 0 01-3.36 14.21z\" fill=\"currentColor\"/></svg>\n </ng-container>\n <ng-container *ngSwitchCase=\"'error'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-alert-base\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M70 75a7.5 7.5 0 007.5-7.5v-25a7.5 7.5 0 00-15 0v25A7.5 7.5 0 0070 75zM60 92.5a10 10 0 1020 0 10 10 0 10-20 0z\" fill=\"currentColor\"/><path d=\"M139.78 101.83L135 82.6a7.51 7.51 0 00-9.1-5.45l-19.22 4.8a7.5 7.5 0 00-2 13.71l6.11 3.66A55.31 55.31 0 0170 120.19a50.47 50.47 0 01-47.16-33.06 7.503 7.503 0 00-14.09 5.16A65.52 65.52 0 0070 135.19 71.27 71.27 0 00123.57 107l5.07 3a7.5 7.5 0 0011.14-8.25zM14.13 62.85l19.22-4.8a7.5 7.5 0 002.05-13.71L29.76 41A56.18 56.18 0 0170 19.81a50.47 50.47 0 0147.16 33.06 7.51 7.51 0 007 4.92 7.61 7.61 0 002.59-.46 7.51 7.51 0 004.46-9.62A65.52 65.52 0 0070 4.81 71.53 71.53 0 0016.83 33.2l-5.47-3.28A7.5 7.5 0 00.22 38.17L5 57.4a7.51 7.51 0 007.27 5.68 7.65 7.65 0 001.86-.23z\" fill=\"currentColor\"/></svg>\n </ng-container>\n </ng-container>\n </span>\n <ng-template #elseBlock>\n <span class=\"inline-block ml-sm\" [desyInnerContent]=\"icon.html\" [isHtml]=\"isHtml\" [deleteContentIfEmpty]=\"false\"><ng-content></ng-content></span> \n </ng-template>\n</p>\n","import { Component, ContentChildren, HostBinding, Input, OnChanges, QueryList, SimpleChanges, TemplateRef } from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { DescriptionItemData, StatusItemTitleData, StatusData } from '../../interfaces';\nimport { ErrorMessageData, HintData } from '../../../desy-forms/interfaces';\nimport { DescriptionItemComponent } from '../description-list/description-item/description-item.component';\nimport { TitleComponent } from '../../../desy-commons/components/title/title.component';\nimport { HintComponent } from '../../../desy-forms/components/hint/hint.component';\nimport { ErrorMessageComponent } from '../../../desy-forms/components/error-message/error-message.component';\nimport { StatusComponent } from '../status/status.component';\nimport { ContentComponent } from '../../../desy-commons/components/content/content.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-status-item',\n templateUrl: './status-item.component.html'\n})\nexport class StatusItemComponent extends AccessibilityComponent implements OnChanges{ \n\n @Input() id: string; \n\n @Input() errorId: string;\n @Input() describedBy: string;\n\n @Input() title: StatusItemTitleData;\n @Input() hint: HintData;\n @Input() errorMessage: ErrorMessageData;\n @Input() items: DescriptionItemData[];\n @Input() status: StatusData;\n\n @Input() @HostBinding('class') classes: any;\n\n //Accessibility\n @HostBinding('attr.id') idData: any;\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.tabindex') tabindexData: any;\n\n @DesyContentChild()\n @ContentChildren(TitleComponent) titleComponent: TitleComponent;\n\n @DesyContentChild()\n @ContentChildren(HintComponent) hintComponent: HintComponent;\n\n @DesyContentChild()\n @ContentChildren(ErrorMessageComponent) errorMessageComponent: ErrorMessageComponent;\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n @ContentChildren(DescriptionItemComponent) itemComponents: QueryList<DescriptionItemComponent>;\n\n @DesyContentChild()\n @ContentChildren(StatusComponent) statusComponent: StatusComponent;\n @Input() caller: TemplateRef<any>;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classes = this.classes ? this.classes : null;\n this.idData = this.id ? this.id : null;\n this.roleData = this.role ? this.role : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.tabindexData = this.tabindex ? this.tabindex : null;\n }\n\n getItems(): DescriptionItemData[]|DescriptionItemComponent[] {\n return (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\n }\n}\n","<ng-template #commonHtml>\n <p *ngIf=\"titleComponent || title\" [class]=\"title ? title.classes : 'my-sm'\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </p>\n\n <ng-container *ngIf=\"hintComponent\">\n <ng-content select=\"desy-hint\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!hintComponent && hint\">\n <desy-hint [text]=\"hint.text\" [html]=\"hint.html\" [classes]=\"hint.classes\" [id]=\"hint.id\"\n [role]=\"hint.role\"\n [ariaLabel]=\"hint.ariaLabel\"\n [ariaDescribedBy]=\"(hint.ariaDescribedBy ? hint.ariaDescribedBy + '' + hint.id : hint.id)\"\n [ariaLabelledBy]=\"hint.ariaLabelledBy\"\n [ariaHidden]=\"hint.ariaHidden\"\n [ariaDisabled]=\"hint.ariaDisabled\"\n [ariaControls]=\"hint.ariaControls\"\n [ariaCurrent]=\"hint.ariaCurrent\"\n [ariaLive]=\"hint.ariaLive\"\n [ariaExpanded]=\"hint.ariaExpanded\"\n [ariaErrorMessage]=\"hint.ariaErrorMessage\"\n [ariaHasPopup]=\"hint.ariaHasPopup\"\n [tabindex]=\"hint.tabindex\"></desy-hint>\n </ng-container>\n\n <ng-container *ngIf=\"errorMessageComponent\">\n <ng-content select=\"desy-error-message\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!errorMessageComponent && errorMessage\">\n <desy-error-message [text]=\"errorMessage.text\" [html]=\"errorMessage.html\"\n [visuallyHiddenText]=\"errorMessage.visuallyHiddenText\"\n [id]=\"(errorId ? errorId : id + '-error')\" [classes]=\"errorMessage.classes\"\n [role]=\"errorMessage.role\"\n [ariaLabel]=\"errorMessage.ariaLabel\"\n [ariaDescribedBy]=\"(errorMessage.ariaDescribedBy ? errorMessage.ariaDescribedBy + '' + errorId : errorId)\"\n [ariaLabelledBy]=\"errorMessage.ariaLabelledBy\"\n [ariaHidden]=\"errorMessage.ariaHidden\"\n [ariaDisabled]=\"errorMessage.ariaDisabled\"\n [ariaControls]=\"errorMessage.ariaControls\"\n [ariaCurrent]=\"errorMessage.ariaCurrent\"\n [ariaLive]=\"errorMessage.ariaLive\"\n [ariaExpanded]=\"errorMessage.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessage.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessage.ariaHasPopup\"\n [tabindex]=\"errorMessage.tabindex\"></desy-error-message>\n </ng-container>\n</ng-template>\n\n<div class=\"lg:flex lg:justify-between lg:items-start -my-px px-base py-sm border-t border-b border-neutral-base\">\n <ng-container *ngIf=\"getItems(); else noItems\">\n <div class=\"lg:w-2/3\">\n <ng-container *ngTemplateOutlet=\"commonHtml\"></ng-container>\n <dl>\n <div *ngFor=\"let item of getItems()\"\n [class]=\"(item.classes ? 'flex lg-flex-wrap ' + item.classes : 'flex lg-flex-wrap')\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-disabled]=\"item.ariaDisabled\"\n [attr.aria-controls]=\"item.ariaControls\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\">\n <dt [class]=\"(item.term.classes ? item.term.classes : 'w-1/2 my-sm')\"\n [attr.id]=\"item.term.id ? item.term.id : null\"\n [attr.role]=\"item.term.role\"\n [attr.aria-describedby]=\"item.term.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.term.ariaErrorMessage\"\n [attr.aria-label]=\"item.term.ariaLabel\"\n [attr.aria-labelledby]=\"item.term.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.term.ariaHidden\"\n [attr.aria-disabled]=\"item.term.ariaDisabled\"\n [attr.aria-controls]=\"item.term.ariaControls\"\n [attr.aria-current]=\"item.term.ariaCurrent\"\n [attr.aria-live]=\"item.term.ariaLive\"\n [attr.aria-expanded]=\"item.term.ariaExpanded\"\n [attr.aria-haspopup]=\"item.term.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: item.term, html: item.term.html, text: item.term.text}\"></ng-container>\n </dt>\n <dd [class]=\"(item.definition.classes ? item.definition.classes : 'w-1/2 my-sm font-semibold')\"\n [attr.id]=\"item.definition.id ? item.definition.id : null\"\n [attr.role]=\"item.definition.role\"\n [attr.aria-describedby]=\"item.definition.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.definition.ariaErrorMessage\"\n [attr.aria-label]=\"item.definition.ariaLabel\"\n [attr.aria-labelledby]=\"item.definition.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.definition.ariaHidden\"\n [attr.aria-disabled]=\"item.definition.ariaDisabled\"\n [attr.aria-controls]=\"item.definition.ariaControls\"\n [attr.aria-current]=\"item.definition.ariaCurrent\"\n [attr.aria-live]=\"item.definition.ariaLive\"\n [attr.aria-expanded]=\"item.definition.ariaExpanded\"\n [attr.aria-haspopup]=\"item.definition.ariaHasPopup\">\n <ng-container *desyCustomInnerContent=\"{ component: item.definition, html: item.definition.html, text: item.definition.text}\"></ng-container>\n </dd>\n </div>\n </dl>\n </div>\n </ng-container>\n <ng-template #noItems>\n <div class=\"lg:w-2/3\">\n <ng-container *ngTemplateOutlet=\"commonHtml\"></ng-container>\n </div>\n </ng-template>\n\n <div class=\"lg:flex lg:flex-wrap lg:items-center lg:1/3\">\n\n <div *ngIf=\"contentComponent || caller\" [id]=\"id + '-status-item'\"\n [class]=\"'w-full lg:w-auto lg:text-right mt-base lg:mt-0 mb-base lg:mb-0'\">\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\n </div>\n\n <div *ngIf=\"statusComponent || status\" class=\"mb-base lg:mb-0 ml-base py-sm\">\n <ng-container *ngIf=\"statusComponent\">\n <ng-content select=\"desy-status\"></ng-content>\n </ng-container>\n <desy-status *ngIf=\"!statusComponent && status\"\n [text]=\"status.text\" [icon]=\"status.icon\" [classes]=\"status.classes\" [id]=\"status.id\"\n [role]=\"status.role\"\n [ariaLabel]=\"status.ariaLabel\"\n [ariaDescribedBy]=\"status.ariaDescribedBy\"\n [ariaLabelledBy]=\"status.ariaLabelledBy\"\n [ariaHidden]=\"status.ariaHidden\"\n [ariaDisabled]=\"status.ariaDisabled\"\n [ariaControls]=\"status.ariaControls\"\n [ariaCurrent]=\"status.ariaCurrent\"\n [ariaLive]=\"status.ariaLive\"\n [ariaExpanded]=\"status.ariaExpanded\"\n [ariaErrorMessage]=\"status.ariaErrorMessage\"\n [ariaHasPopup]=\"status.ariaHasPopup\"\n [tabindex]=\"status.tabindex\"></desy-status>\n </div>\n </div>\n</div>","import {Component, Input} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\nimport {TabsPanelData} from '../../../interfaces';\n\n@Component({\n selector: 'desy-panel',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class PanelComponent extends ContentBaseComponent implements TabsPanelData {\n\n @Input() classes: string;\n @Input() id: string;\n\n}","import {Component, ContentChildren, Input } from '@angular/core';\nimport {DesyContentChild} from '../../../../shared/decorators/desy-content-child.decorator';\nimport {ContentComponent} from '../../../../desy-commons/components/content/content.component';\nimport { PanelComponent } from '../panel/panel.component';\nimport { TabsItemsData, TabsPanelData } from '../../../interfaces';\nimport { AccessibilityComponent } from '../../../../shared/components';\n\n@Component({\n selector: 'desy-tab-item',\n template: ''\n})\nexport class TabItemComponent extends AccessibilityComponent implements TabsItemsData {\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n @DesyContentChild()\n @ContentChildren(PanelComponent) panelComponent: PanelComponent;\n\n @Input() classes: string;\n @Input() disabled: boolean;\n @Input() id: string;\n panel?: TabsPanelData;\n\n}\n","import {\n AfterViewInit, ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren\n} from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { StringUtils } from '../../../shared/utils/string-utils';\nimport { TabsItemsData } from '../../interfaces';\nimport { TabItemComponent } from './tab-item/tab-item.component';\nimport { MediaMatcher } from '@angular/cdk/layout';\n\n@Component({\n selector: 'desy-tabs',\n templateUrl: './tabs.component.html'\n})\nexport class TabsComponent extends AccessibilityComponent implements AfterViewInit, OnChanges {\n\n @ContentChildren(TabItemComponent) itemComponents: QueryList<TabItemComponent>;\n @ViewChildren('tabSelector') tabSelectors: QueryList<ElementRef>;\n @ViewChildren('tabSelectorContentWrapper') tabSelectorContentWrapper: QueryList<ElementRef>;\n @ViewChild('tabSrOnly') tabSrOnly: ElementRef;\n\n\n @Input() id: string;\n @Input() idPrefix: string;\n @Input() headingLevel: number;\n \n @Input() title: string;\n @Input() tablistAriaLabel: string;\n @Input() items: TabsItemsData[];\n \n @Input() @HostBinding('class') classes: any;\n\n //Accessibility\n @HostBinding('attr.id') idData: any;\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.tabindex') tabindexData: any;\n\n currentTab = 0;\n currentPanel;\n\n mobileQuery: MediaQueryList;\n private queryListener: () => void;\n\n constructor(private changeDetector: ChangeDetectorRef, media: MediaMatcher) {\n super();\n this.mobileQuery = media.matchMedia(\"(max-width: 600px)\");\n this.queryListener = () => changeDetector.detectChanges();\n this.mobileQuery.addEventListener('change', this.queryListener);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classes = this.classes ? 'c-tabs ' + this.classes : 'c-tabs';\n this.idData = this.id ? this.id : null;\n this.roleData = this.role ? this.role : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.tabindexData = this.tabindex ? this.tabindex : null;\n }\n \n ngAfterViewInit(): void {\n if(this.items){\n const item = this.getItems();\n this.selectTab(item.findIndex(value => !value.disabled));\n }\n this.changeDetector.detectChanges();\n }\n\n getItems(): TabsItemsData[]|TabItemComponent[] {\n const items = (this.itemComponents.length > 0) ? this.itemComponents.toArray() : this.items;\n return items;\n }\n\n getItemPanel(tab: number): TabItemComponent {\n let panel;\n const items = this.getItems();\n const item = items[tab];\n if (item instanceof TabItemComponent){\n panel = item.panelComponent;\n }\n return panel;\n }\n\n\n getIdPrefix(): string {\n if (this.idPrefix) {\n return this.idPrefix;\n }\n }\n\n getItemId(index: number): string {\n let id;\n const item = this.getItems();\n if (item[index].id) {\n id = item[index].id;\n } else {\n id = this.getIdPrefix() + '-' + index;\n }\n return id;\n }\n\n isDisabled(item: TabsItemsData): boolean {\n return item.disabled ? true : null;\n }\n\n\n selectTab( i: number ): void {\n this.currentTab = i;\n const currentItem = this.getItems()[i];\n this.currentPanel = currentItem instanceof TabItemComponent ? currentItem.panelComponent : currentItem.panel;\n this.tabSrOnly.nativeElement.innerHTML = this.tabSelectorContentWrapper.toArray()[this.currentTab].nativeElement.innerHTML;\n }\n\n focusFirstTab(event: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n const enabledTabs = this.tabSelectors.filter((item, index) => !item[index].disabled);\n enabledTabs[0].nativeElement.focus();\n }\n\n focusLastTab(event: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n const enabledTabs = this.tabSelectors.filter((item, index) => !item[index].disabled);\n enabledTabs[enabledTabs.length - 1].nativeElement.focus();\n }\n\n focusNextTab(focusedTab: number): void {\n const item = this.getItems();\n let nextTab = (focusedTab + 1) % item.length;\n while (nextTab !== focusedTab) {\n if (!item[nextTab].disabled) {\n this.tabSelectors.find((i, index) => index === nextTab).nativeElement.focus();\n break;\n }\n nextTab = (nextTab + 1) % item.length;\n }\n }\n\n focusPreviousTab(focusedTab: number): void {\n const item = this.getItems();\n let previousTab = (focusedTab - 1 + item.length) % item.length;\n while (previousTab !== focusedTab) {\n if (!item[previousTab].disabled) {\n this.tabSelectors.find((i, index) => index === previousTab).nativeElement.focus();\n break;\n }\n previousTab = (previousTab - 1 + item.length) % item.length;\n }\n }\n\n getPanelContent(tab: number): string {\n const item = this.getItems();\n return item[tab].panel && item[tab].panel.text ? `<p>${ StringUtils.escapeHtml(item[tab].panel.text) }</p>` : null;\n }\n}\n","<ng-container *ngIf=\"title\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h1>\n <h2 *ngSwitchCase=\"2\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h2>\n <h3 *ngSwitchCase=\"3\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h3>\n <h4 *ngSwitchCase=\"4\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h4>\n <h5 *ngSwitchCase=\"5\" class=\"lg:hidden mb-sm text-sm\">{{title}}</h5>\n <h2 *ngSwitchDefault class=\"lg:hidden mb-sm text-sm\">{{title}}</h2>\n </ng-container>\n</ng-container>\n<ng-container *ngIf=\"!title\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" class=\"lg:hidden mb-sm text-sm\">Contenido</h1>\n <h2 *ngSwitchCase=\"2\" class=\"lg:hidden mb-sm text-sm\">Contenido</h2>\n <h3 *ngSwitchCase=\"3\" class=\"lg:hidden mb-sm text-sm\">Contenido</h3>\n <h4 *ngSwitchCase=\"4\" class=\"lg:hidden mb-sm text-sm\">Contenido</h4>\n <h5 *ngSwitchCase=\"5\" class=\"lg:hidden mb-sm text-sm\">Contenido</h5>\n <h2 *ngSwitchDefault class=\"lg:hidden mb-sm text-sm\">Contenido</h2>\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"getItems()\">\n <div class=\"c-tabs lg:flex lg:flex-wrap mb-[-0.125rem]\" role=\"tablist\" [attr.aria-label]=tablistAriaLabel>\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <button #tabSelector\n (click)=\"selectTab(i)\"\n (keydown.home)=\"focusFirstTab($event)\"\n (keydown.end)=\"focusLastTab($event)\"\n (keydown.arrowleft)=\"focusPreviousTab(i)\"\n (keydown.arrowright)=\"focusNextTab(i)\"\n class=\"aria-selected:bg-white aria-selected:rounded-t-[0.1875rem] aria-selected:border-b-0 relative flex items-center text-black underline truncate border border-transparent aria-selected:no-underline py-sm lg:px-lg lg:py-base hover:text-primary-base focus:outline-none\"\n [ngClass]=\"{'opacity-50 pointer-events-none': isDisabled(item), 'aria-selected:border-[rgb(146_148_155/1)]' : !this.mobileQuery.matches}\"\n [attr.id]=\"getItemId(i)\"\n [attr.role]=\"(item.role ? role : 'tab')\"\n [attr.aria-selected]=\"currentTab === i ? 'true' : 'false'\"\n [attr.aria-describedby]=\"item.ariaDescribedBy\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy\"\n [attr.aria-hidden]=\"item.ariaHidden\"\n [attr.aria-controls]=\"'tab-' + getItemId(i)\"\n [attr.aria-current]=\"item.ariaCurrent\"\n [attr.aria-live]=\"item.ariaLive\"\n [attr.aria-expanded]=\"item.ariaExpanded\"\n [attr.aria-haspopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"(currentTab !== i || item.disabled ? '-1' : null)\"\n [attr.disabled]=\"isDisabled(item)\"\n [attr.aria-disabled]=\"isDisabled(item) ? 'true' : (ariaDisabled ? ariaDisabled : null)\">\n <span #tabSelectorContentWrapper class=\"flex items-center pointer-events-none\">\n <ng-container *desyCustomInnerContent=\"{ component: item.contentComponent, html: item.html, text: item.text}\"></ng-container>\n </span>\n </button>\n </ng-container>\n </div>\n\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\"\n [attr.id]=\"'tab-' + getItemId(currentTab)\"\n [attr.role]=\"(currentPanel?.role ? currentPanel?.role : 'tabpanel')\"\n [attr.aria-describedby]=\"currentPanel?.ariaDescribedBy\"\n [attr.aria-errormessage]=\"currentPanel?.ariaErrorMessage\"\n [attr.aria-label]=\"currentPanel?.ariaLabel\"\n [attr.aria-labelledby]=\"getItemId(currentTab)\"\n [attr.aria-hidden]=\"currentPanel?.ariaHidden\"\n [attr.aria-disabled]=\"currentPanel?.ariaDisabled\"\n [attr.aria-controls]=\"currentPanel?.ariaControls\"\n [attr.aria-current]=\"currentPanel?.ariaCurrent\"\n [attr.aria-live]=\"currentPanel?.ariaLive\"\n [attr.aria-expanded]=\"currentPanel?.ariaExpanded\"\n [attr.aria-haspopup]=\"currentPanel?.ariaHasPopup\"\n [attr.tabindex]=\"(currentPanel?.tabindex ? currentPanel?.tabindex : '0')\">\n <ng-container [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h1>\n <h2 *ngSwitchCase=\"2\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h2>\n <h3 *ngSwitchCase=\"3\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h3>\n <h4 *ngSwitchCase=\"4\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h4>\n <h5 *ngSwitchCase=\"5\" #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h5>\n <h3 *ngSwitchDefault #tabSrOnly class=\"lg:sr-only inline-flex items-center mb-base lg:mb-0 font-semibold\"></h3>\n </ng-container>\n <ng-container *desyCustomInnerContent=\"{ component: getItemPanel(currentTab), template: currentPanel?.html, html: getPanelContent(currentTab) }\"></ng-container>\n </div>\n</ng-container>","import {Component} from '@angular/core';\nimport {ContentBaseComponent} from '../../../../shared/components';\n\n@Component({\n selector: 'desy-tooltip-content',\n templateUrl: './tooltip-content.component.html'\n})\nexport class TooltipContentComponent extends ContentBaseComponent {\n}\n","<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n","import {\n AfterContentInit, ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {AccessibilityComponent} from '../../../shared/components';\nimport {ContentComponent} from '../../../desy-commons/components/content/content.component';\nimport {IconComponent} from '../../../desy-commons/components/icon/icon.component';\nimport {IconData} from '../../../desy-commons/interfaces';\nimport {TooltipContentComponent} from './tooltip-content/tooltip-content.component';\nimport {DesyContentChild} from '../../../shared/decorators/desy-content-child.decorator';\n\n@Component({\n selector: 'desy-tooltip',\n templateUrl: './tooltip.component.html'\n})\nexport class TooltipComponent extends AccessibilityComponent implements AfterContentInit, OnChanges {\n\n static readonly KEY_CODE_ESC = 'Escape';\n\n @DesyContentChild()\n @ContentChildren(ContentComponent) contentComponent: ContentComponent;\n\n @DesyContentChild()\n @ContentChildren(IconComponent) iconComponent: IconComponent;\n\n @DesyContentChild()\n @ContentChildren(TooltipContentComponent) tooltipContentComponent: TooltipContentComponent;\n\n @ViewChild('tooltipContent', { read: ElementRef, static: true }) tooltipContent: ElementRef;\n\n @Input() id: string;\n @Input() text: string;\n @Input() html: string;\n @Input() complex: boolean;\n @Input() classesTooltip: string;\n @Input() icon: IconData;\n @Input() caller: TemplateRef<any>;\n @Input() @HostBinding('class') classes: any;\n // @HostBinding('data-module') dataModule = \"c-tabs\";\n\n //Accessibility\n @HostBinding('attr.id') idData: any;\n @HostBinding('attr.role') roleData: any;\n @HostBinding('attr.aria-describedby') ariaDescribedbyData: any;\n @HostBinding('attr.aria-errormessage') ariaErrormessageData: any;\n @HostBinding('attr.aria-label') ariaLabelData: any;\n @HostBinding('attr.aria-labelledby') ariaLabelledbyData: any;\n @HostBinding('attr.aria-hidden') ariaHiddenData: any;\n @HostBinding('attr.aria-disabled') ariaDisabledData: any;\n @HostBinding('attr.aria-controls') ariaControlsData: any;\n @HostBinding('attr.aria-current') ariaCurrentData: any;\n @HostBinding('attr.aria-live') ariaLiveData: any;\n @HostBinding('attr.aria-expanded') ariaExpandedData: any;\n @HostBinding('attr.aria-haspopup') ariaHaspopupData: any;\n @HostBinding('attr.tabindex') tabindexData: any;\n\n tippyProperties: any;\n hasContent = true;\n hasIconComponentContent = true;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.classes = this.classes ? this.classes : null;\n this.idData = this.id ? this.id : null;\n this.roleData = this.role ? this.role : null;\n this.ariaDescribedbyData = this.ariaDescribedBy ? this.ariaDescribedBy : null;\n this.ariaErrormessageData = this.ariaErrorMessage ? this.ariaErrorMessage : null;\n this.ariaLabelData = this.ariaLabel ? this.ariaLabel : null;\n this.ariaLabelledbyData = this.ariaLabelledBy ? this.ariaLabelledBy : null;\n this.ariaHiddenData = this.ariaHidden ? this.ariaHidden : null;\n this.ariaDisabledData = this.ariaDisabled ? this.ariaDisabled : null;\n this.ariaControlsData = this.ariaControls ? this.ariaControls : null;\n this.ariaCurrentData = this.ariaCurrent ? this.ariaCurrent : null;\n this.ariaLiveData = this.ariaLive ? this.ariaLive : null;\n this.ariaExpandedData = this.ariaExpanded ? this.ariaExpanded : null;\n this.ariaHaspopupData = this.ariaHasPopup ? this.ariaHasPopup : null;\n this.tabindexData = this.tabindex ? this.tabindex : null;\n }\n\n ngAfterContentInit(): void {\n const contentTooltip = this.tooltipContent.nativeElement as HTMLElement;\n this.tippyProperties = {\n placement: 'top',\n inlinePositioning: true,\n content: contentTooltip,\n allowHTML: true, // Make sure you are sanitizing any user data if rendering HTML to prevent XSS attacks.\n trigger: 'mouseenter focus',\n hideOnClick: false,\n theme: '',\n plugins: [{\n name: 'hideOnEsc',\n defaultValue: true,\n fn({hide}): any {\n\n function onKeyDown(event: KeyboardEvent): void {\n if (event.key === TooltipComponent.KEY_CODE_ESC) {\n hide();\n }\n }\n\n return {\n onShow(): void {\n document.addEventListener('keydown', onKeyDown);\n },\n onHide(): void {\n document.removeEventListener('keydown', onKeyDown);\n },\n };\n },\n }],\n role: 'tooltip',\n aria: {\n content: this.complex ? 'describedby' : 'labelledby',\n },\n };\n }\n\n getIdButton(): string {\n return this.id + '-button';\n }\n\n getIdTooltip(): string {\n return this.id + '-tooltip';\n }\n\n handleEmptyContent(isEmpty: boolean): void {\n this.hasContent = !isEmpty;\n this.changeDetectorRef.detectChanges();\n }\n\n handleEmptyIconContent(isEmpty: boolean): void {\n this.hasIconComponentContent = !isEmpty;\n this.changeDetectorRef.detectChanges();\n }\n\n\n getMainContent(): string {\n let content;\n if (this.html) {\n content = this.html;\n } else if (this.text) {\n content = `<p>${this.text}</p>`;\n }\n return content;\n }\n\n getIconContent(icon: IconData): string {\n let iconContent;\n if (icon.html) {\n iconContent = this.icon.html;\n } else if (icon.type === 'info') {\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Información\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>';\n } else if (icon.type === 'alert') {\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-alert-base\" role=\"img\" aria-label=\"Alerta\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>';\n } else {\n iconContent = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Ayuda\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm0 117.51a10 10 0 1110-10 10 10 0 01-10 10zm9.17-39.08a2.5 2.5 0 00-1.67 2.36v1.71a7.5 7.5 0 01-15 0v-10A7.5 7.5 0 0170 65a12.5 12.5 0 10-12.5-12.5 7.5 7.5 0 01-15 0 27.5 27.5 0 1136.67 25.93z\" fill=\"currentColor\"/></svg>';\n }\n return iconContent;\n }\n}\n","<div *ngIf=\"tippyProperties\" [attr.id]=\"getIdButton()\"\n ngxTippy [tippyProps]=\"tippyProperties\"\n class=\"inline-flex items-center focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black\"\n tabindex=\"0\" role=\"button\"\n [attr.aria-labelledby]=\"getIdButton() + ' ' + getIdTooltip()\">\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, html: getMainContent() }\"></ng-container>\n <span *ngIf=\"hasContent && ( (iconComponent) || (icon) )\" class=\"inline-block w-1.5\"></span>\n <span *ngIf=\"iconComponent\" class=\"inline-block\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent }\"></ng-container>\n\n <ng-container *ngIf=\"!hasIconComponentContent\">\n <ng-container [ngSwitch]=\"iconComponent.type\">\n <svg *ngSwitchCase=\"'info'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Información\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'alert'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-alert-base\" role=\"img\" aria-label=\"Alerta\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchDefault xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 text-primary-base\" role=\"img\" aria-label=\"Ayuda\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm0 117.51a10 10 0 1110-10 10 10 0 01-10 10zm9.17-39.08a2.5 2.5 0 00-1.67 2.36v1.71a7.5 7.5 0 01-15 0v-10A7.5 7.5 0 0170 65a12.5 12.5 0 10-12.5-12.5 7.5 7.5 0 01-15 0 27.5 27.5 0 1136.67 25.93z\" fill=\"currentColor\"/></svg>\n </ng-container>\n </ng-container>\n </span>\n <span *ngIf=\"!iconComponent && icon\" class=\"inline-block\">\n <ng-container *desyCustomInnerContent=\"{ html: getIconContent(icon) }\"></ng-container>\n </span>\n</div>\n\n<div #tooltipContent [attr.id]=\"getIdTooltip()\"\n [class]=\"['-my-xs p-sm shadow-md bg-black rounded text-white', classesTooltip] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{ component: tooltipContentComponent, template: caller }\"></ng-container>\n</div>\n","import {\n ComponentFactoryResolver, ComponentRef,\n Injectable,\n TemplateRef, Type\n} from '@angular/core';\nimport { AlertOptions } from '../interfaces/alert-options';\nimport { OpenAlertResult } from '../interfaces/open-alert-result';\nimport { AlertComponent } from '../components/alert/alert.component';\nimport { NotificationComponent } from '../../desy-nav/components/notification/notification.component';\nimport { NotificationOptions } from '../../desy-nav/interfaces/notification-options';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertService {\n\n constructor(private factoryResolver: ComponentFactoryResolver) { }\n\n public openAlert(caller: TemplateRef<any>|NotificationOptions, alertOptions: AlertOptions): Promise<OpenAlertResult> {\n return new Promise<OpenAlertResult>((resolve, reject) => {\n\n if (!caller) {\n reject('caller is required');\n }\n\n if (!alertOptions) {\n reject('alertOptions is required');\n }\n\n const alert = this.createAlert(alertOptions);\n const result: OpenAlertResult = {\n alert\n };\n\n\n if (caller instanceof TemplateRef) {\n alert.instance.caller = caller;\n resolve(result);\n } else {\n alert.instance.callerType = NotificationComponent;\n alert.instance.onCallerCreationCallback = (d, c) => {\n this.initNotification(d, c, caller);\n result.component = c;\n resolve(result);\n };\n }\n });\n }\n\n public closeAlert(alert: ComponentRef<AlertComponent>|AlertComponent): void {\n if (alert) {\n if (alert instanceof ComponentRef) {\n alert.instance.dismiss();\n } else {\n alert.dismiss();\n }\n }\n }\n\n public onCloseAlert(alert: ComponentRef<AlertComponent>|AlertComponent): Promise<void> {\n return new Promise<void>((resolve => {\n let a;\n if (alert instanceof ComponentRef) {\n a = alert.instance;\n } else {\n a = alert;\n }\n\n const subscription = a.activeChange.subscribe(() => {\n resolve();\n subscription.unsubscribe();\n });\n }));\n }\n\n\n private createAlert(alertOptions: AlertOptions): ComponentRef<AlertComponent> {\n const factory = this.factoryResolver.resolveComponentFactory(AlertComponent);\n const alert = alertOptions.place.createComponent<AlertComponent>(factory);\n\n alert.instance.active = true;\n if (alertOptions) {\n Object.assign(alert.instance, alertOptions);\n }\n\n this.onCloseAlert(alert).then(() => alert.destroy());\n\n return alert;\n }\n\n private initNotification(alert: AlertComponent, notificationRef: ComponentRef<NotificationComponent>,\n options: NotificationOptions): void {\n Object.assign(notificationRef.instance, options);\n if (options.isDismissible) {\n const subscription = notificationRef.instance.isOpenChange.subscribe(() => {\n this.closeAlert(alert);\n subscription.unsubscribe();\n });\n }\n }\n}\n","import { ContentBaseComponent } from './../../../shared/components/content-base/content-base.component';\nimport { Component, Input } from '@angular/core';\nimport { ListboxItemData } from '../../../desy-buttons/interfaces/listbox-item-data';\n\n\n@Component({\n selector: 'desy-pagination-item-perpage',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class PaginationItemPerPageComponent extends ContentBaseComponent implements ListboxItemData {\n @Input() classes?: string;\n @Input() value: number;\n active: boolean;\n}\n","import { ContentBaseComponent } from './../../../shared/components/content-base/content-base.component';\nimport { Component, Input } from '@angular/core';\n\n\n@Component({\n selector: 'desy-pagination-listbox-label',\n template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'\n})\nexport class PaginationListboxLabelComponent extends ContentBaseComponent {\n @Input() classes?: string;\n\n}\n","\nimport { Component, ContentChildren, EventEmitter, Input, OnChanges, Output, SimpleChanges, QueryList, AfterViewInit, HostBinding } from '@angular/core';\nimport { AccessibilityComponent } from '../../../shared/components';\nimport { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';\nimport { PaginationItemData } from '../../interfaces';\nimport { PaginationItemPerPageComponent } from '../pagination-item-perpage/pagination-item-perpage.component';\nimport { PaginationListboxLabelComponent } from '../pagination-listbox-label/pagination-listbox-label.component';\n\n\n@Component({\n selector: 'desy-pagination',\n templateUrl: './pagination.component.html'\n})\nexport class PaginationComponent extends AccessibilityComponent implements OnChanges, AfterViewInit { \n \n @Input() hasSelect: boolean;\n @Input() idPrefix: string;\n @Input() totalItems: number;\n @Input() itemsPerPage: number;\n @Input() hasPrevious: boolean;\n @Input() hasNext: boolean;\n @Input() previousText: string;\n @Input() nextText: string;\n @Input() hasSelectItemsPerPage: string;\n @Input() classes: string;\n\n @Input() @HostBinding('class') classesContainer: any;\n @Input() @HostBinding('attr.id') id: any;\n\n @DesyContentChild()\n @ContentChildren(PaginationListboxLabelComponent) listboxLabel: PaginationListboxLabelComponent;\n\n @ContentChildren(PaginationItemPerPageComponent) listboxItems: QueryList<PaginationItemPerPageComponent>;\n\n @Input() currentPage = 1; // == currentPageindex + 1\n @Output() currentPageChange = new EventEmitter<number>();\n\n nPages: number;\n items: PaginationItemData[];\n\n defaultText: boolean = false;\n\n readonly previousIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"self-center h-2.5 w-2.5 mr-2\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M54.87 71.77a2.5 2.5 0 010-3.54L106 17.07A10 10 0 1091.89 2.93L35.43 59.39a15 15 0 000 21.22l56.46 56.46A10 10 0 10106 122.93z\" fill=\"currentColor\" /></svg>';\n readonly nextIcon = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"self-center h-2.5 w-2.5 ml-2\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M34 137.07a10 10 0 010-14.14l51.13-51.16a2.5 2.5 0 000-3.54L34 17.07A10 10 0 0148.11 2.93l56.46 56.46a15 15 0 010 21.22l-56.46 56.46a10 10 0 01-14.11 0z\" fill=\"currentColor\" /></svg>';\n readonly prefix = '<span class=\"sr-only\">Página </span>';\n\n ngOnChanges(changes: SimpleChanges): void {\n this.checkChanges();\n this.classesContainer = this.classesContainer ? this.classesContainer += ' lg:flex lg:flex-wrap lg:items-center lg:gap-base' : 'lg:flex lg:flex-wrap lg:items-center lg:gap-base'\n this.id = this.id ? this.id : null\n }\n\n ngAfterViewInit(): void {\n if(this.itemsPerPage && this.listboxItems && this.listboxItems.length > 0){\n let itemActive = false;\n this.listboxItems.forEach((item) => {\n if(this.itemsPerPage == item.value){\n item.active = true; \n itemActive = true\n }\n });\n if(!itemActive){\n this.listboxItems.first.active = true;\n }\n }\n }\n\n checkChanges(){\n this.nPages = Math.ceil(this.totalItems / this.itemsPerPage);\n\n if (!this.currentPage || this.currentPage < 1 || this.currentPage > this.nPages) {\n this.currentPage = 1;\n setTimeout( () => this.currentPageChange.emit(this.currentPage));\n }\n\n if (!this.previousText) {\n this.previousText = 'Anterior';\n }\n if (!this.nextText) {\n this.nextText = 'Siguiente';\n }\n this.buildPages();\n }\n\n getSuffix(page: number): string {\n return page >= 0 && page * this.itemsPerPage < this.totalItems ?\n `<span class=\"sr-only\">: Página ${page + 1} con los resultados del ${page * this.itemsPerPage + 1} al ${this.getLastItemNumber(page)}</span>`\n : '';\n }\n\n getLastItemNumber(pageIndex: number): number {\n return Math.min((pageIndex + 1) * this.itemsPerPage, this.totalItems);\n }\n\n buildPages(): void {\n this.items = [];\n for (let i = 0; i < this.nPages; i++) {\n const item: PaginationItemData = {\n text: i + 1,\n active: ( (i + 1) === this.currentPage),\n routerLink: []\n };\n this.items.push(item);\n }\n }\n\n getIdPrefix(): string {\n return this.idPrefix ? this.idPrefix : 'pagination-item';\n }\n\n getButtonId( index: number): string {\n return this.getIdPrefix() + (index === 0) ? '' : '-' + index;\n }\n\n changePage(current: number): void{\n this.currentPage = current;\n this.currentPageChange.emit(this.currentPage);\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n item.active = ((i + 1) === this.currentPage);\n }\n }\n\n previous(): void {\n if (this.currentPage > 1) {\n this.changePage(this.currentPage - 1);\n }\n }\n\n next(): void {\n if (this.currentPage < this.nPages) {\n this.changePage(this.currentPage + 1);\n }\n }\n\n getActiveItemText(): any {\n const activeItems = this.items.filter(item => item.active);\n return activeItems && activeItems.length > 0 ? activeItems[0].text : '';\n }\n\n getListboxLabel(): PaginationListboxLabelComponent {\n return this.listboxLabel ? this.listboxLabel : null;\n }\n\n getItemsPerPage(): PaginationItemPerPageComponent[] {\n return this.listboxItems && this.listboxItems.length > 0 ? this.listboxItems.toArray() : null;\n }\n\n changeItemsPerPage(event: any) {\n if(event && event.value){\n let newValue = event.value;\n this.itemsPerPage = newValue;\n this.buildPages();\n }\n }\n\n}\n"," <ng-container *ngIf=\"hasSelect\">\n <p class=\"w-full mb-xs text-sm text-neutral-dark\">\n Selecciona una página para cargar datos\n </p>\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <desy-button (clickEvent)=\"previous()\" [id]=\"getIdPrefix() + '-previous'\"\n [html]=\"previousIcon + prefix + previousText + getSuffix(currentPage - 2)\" [disabled]=\"currentPage === 1 || !hasPrevious\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n <desy-listbox [id]=\"id + '-listbox'\"\n [idPrefix]=\"idPrefix\"\n [text]=\"'Página ' + getActiveItemText()\"\n [classes]=\"'c-listbox--sm c-listbox--transparent mr-xs'\"\n [classesTooltip]=\"'max-h-52 overflow-y-auto'\"\n [doesChangeButtonText]=\"true\"\n [label]=\"{ text: 'Selecciona una página para cargar datos', classes: 'sr-only' }\"\n [(items)]=\"items\"\n (activeItemChange)=\"changePage(+$event.text)\"></desy-listbox>\n <desy-button (clickEvent)=\"next()\" [id]=\"getIdPrefix() + '-next'\"\n [html]=\"prefix + nextText + getSuffix(currentPage) + nextIcon\" [disabled]=\"currentPage === nPages || !hasNext\"\n classes=\"c-button--sm c-button--transparent mr-xs\"></desy-button>\n </nav>\n </ng-container>\n <ng-container *ngIf=\"!hasSelect\">\n <nav [class]=\"['flex flex-wrap items-center flex-1 mb-base lg:mb-0 text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul class=\"flex flex-wrap\">\n <li *ngFor=\"let item of items; index as i\">\n <desy-button *ngIf=\"item.active\" [id]=\"getButtonId(i)\"\n [html]=\"'<strong>' + prefix + (i + 1) + getSuffix(i) + '</strong>'\"\n classes=\"c-button--primary c-button--disabled mb-sm mr-sm\"\n [disabled]=\"true\" ariaCurrent=\"page\" tabindex=\"-1\" ></desy-button>\n <desy-button *ngIf=\"!item.active\" [id]=\"getButtonId(i)\"\n [html]=\"prefix + (i + 1) + getSuffix(i)\"\n (clickEvent)=\"changePage(i + 1)\"\n classes=\"mb-sm mr-sm\"></desy-button>\n </li>\n </ul>\n </nav>\n </ng-container>\n \n <div *ngIf=\"hasSelectItemsPerPage\" class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\">\n <desy-listbox \n [classes]=\"'c-listbox--sm c-listbox--transparent'\" \n [classesContainer]=\"'flex flex-wrap items-center gap-xs'\" \n [doesChangeButtonText]=\"true\"\n [items]=\"getItemsPerPage()\"\n (activeItemChange)=\"changeItemsPerPage($event)\">\n <desy-listbox-label [classes]=\"listboxLabel && listboxLabel.classes ? listboxLabel.classes : 'inline-block align-middle mb-0'\">\n <ng-container *ngIf=\"listboxLabel\">\n <ng-container *desyCustomInnerContent=\"{ component: listboxLabel }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!listboxLabel\">\n Items por página\n </ng-container>\n </desy-listbox-label>\n </desy-listbox>\n </div>\n \n \n <p class=\"block relative -top-xs lg:ml-auto text-sm text-neutral-dark\" *ngIf=\"totalItems && itemsPerPage\">\n <span class=\"sr-only\">Posición de paginación: </span>{{(currentPage - 1) * itemsPerPage + 1}} - {{getLastItemNumber(currentPage - 1)}} de {{totalItems}}\n </p>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n// components\nimport {\n AccessibilityComponent,\n ContentBaseComponent,\n TextOrHtmlRequiredComponent,\n AccessibilityAndTextOrHtmlRequiredComponent,\n AccessibilityAndContentRequiredComponent\n} from './components';\n\n// pipes\nimport { InnerHtmlPipe } from './pipes/inner-html.pipe';\nimport { MakeHtmlListPipe } from './pipes/make-html-list.pipe';\nimport { ExternalHrefPipe } from './pipes/external-href.pipe';\n\n// directives\nimport { AttributeChangeDirective } from './directives/attribute-change.directive';\nimport { InnerContentDirective } from './directives/inner-content.directive';\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { ContentChangeDirective } from './directives/content-change.directive';\nimport { CustomInnerContentDirective } from './directives/custom-inner-content.directive';\n\n\n@NgModule({\n declarations: [\n // components\n AccessibilityComponent,\n ContentBaseComponent,\n TextOrHtmlRequiredComponent,\n AccessibilityAndTextOrHtmlRequiredComponent,\n AccessibilityAndContentRequiredComponent,\n\n // pipes\n InnerHtmlPipe,\n MakeHtmlListPipe,\n ExternalHrefPipe,\n\n // directives\n AttributeChangeDirective,\n InnerContentDirective,\n ClickOutsideDirective,\n ContentChangeDirective,\n CustomInnerContentDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n RouterModule,\n\n // components\n AccessibilityComponent,\n ContentBaseComponent,\n TextOrHtmlRequiredComponent,\n AccessibilityAndTextOrHtmlRequiredComponent,\n AccessibilityAndContentRequiredComponent,\n\n // pipes\n InnerHtmlPipe,\n MakeHtmlListPipe,\n ExternalHrefPipe,\n\n // directives\n AttributeChangeDirective,\n InnerContentDirective,\n ClickOutsideDirective,\n ContentChangeDirective,\n CustomInnerContentDirective,\n ]\n})\nexport class SharedModule { }\n","// componentes\nimport { NgModule } from '@angular/core';\nimport { IconComponent } from './components/icon/icon.component';\nimport { ContentComponent } from './components/content/content.component';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\nimport { TitleComponent } from './components/title/title.component';\nimport { DescriptionComponent } from './components/description/description.component';\nimport { DividerComponent } from './components/divider/divider.component';\n\n@NgModule({\n declarations: [\n IconComponent,\n ContentComponent,\n DescriptionComponent,\n TitleComponent,\n DividerComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n NgxTippyModule\n ],\n exports: [\n IconComponent,\n ContentComponent,\n DescriptionComponent,\n TitleComponent,\n DividerComponent\n ]\n})\n\nexport class DesyCommonsModule { }\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SharedModule } from '../shared/shared.module';\n// componentes\nimport { TemplateDrivenWrapperComponent } from './components/template-driven-wrapper/template-driven-wrapper.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { HintComponent } from './components/hint/hint.component';\nimport { LabelComponent } from './components/label/label.component';\nimport { ErrorMessageComponent } from './components/error-message/error-message.component';\nimport { FieldsetComponent } from './components/fieldset/fieldset.component';\nimport { LegendComponent } from './components/fieldset/legend/legend.component';\nimport { TextareaComponent } from './components/textarea/textarea.component';\nimport { CharacterCountComponent } from './components/character-count/character-count.component';\nimport { InputComponent } from './components/input/input.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { FileUploadComponent } from './components/file-upload/file-upload.component';\nimport { InputGroupComponent } from './components/input-group/input-group.component';\nimport { RadiosComponent } from './components/radios/radios.component';\nimport { RadioItemComponent } from './components/radios/radio-item/radio-item.component';\nimport { CheckboxesComponent } from './components/checkboxes/checkboxes.component';\nimport { CheckboxItemComponent } from './components/checkboxes/checkbox-item/checkbox-item.component';\nimport { DateInputComponent } from './components/date-input/date-input.component';\nimport { SearchBarComponent} from './components/search-bar/search-bar.component';\nimport { OptionComponent } from './components/select/option/option.component';\nimport { DateInputDayComponent } from './components/date-input/date-input-day/date-input-day.component';\nimport { DateInputMonthComponent } from './components/date-input/date-input-month/date-input-month.component';\nimport { DateInputYearComponent } from './components/date-input/date-input-year/date-input-year.component';\n\n// directivas\nimport { ConditionDirective } from './directives/condition.directive';\n\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\nimport { InputGroupItemComponent } from './components/input-group/input-group-item/input-group-item.component';\nimport { DateInputItemComponent } from './components/date-input/date-input-item/date-input-item.component';\nimport { InputGroupDividerComponent } from './components/input-group/input-group-divider/input-group-divider.component';\nimport { DateInputDividerComponent } from './components/date-input/date-input-divider/date-input-divider.component';\nimport { InputGroupInputComponent } from './components/input-group/input-group-input/input-group-input.component';\nimport { InputGroupSelectComponent } from './components/input-group/input-group-select/input-group-select.component';\nimport { OptionGroupComponent } from './components/select/option-group/option-group.component';\nimport { SelectItemComponent } from './components/select/select-item/select-item.component';\nimport { TreeComponent } from './components/tree/tree.component';\nimport { TreeCheckboxComponent } from './components/tree/tree-checkbox/tree-checkbox.component';\nimport { TreeSubComponent } from './components/tree/tree-sub/tree-sub.component';\nimport { TreeItemComponent } from './components/tree/tree-item/tree-item.component';\nimport { TreeItemsGeneratorComponent } from './components/tree/tree-items-generator/tree-items-generator.component';\n\n\n\n@NgModule({\n declarations: [\n TemplateDrivenWrapperComponent,\n FormFieldComponent,\n HintComponent,\n LabelComponent,\n ErrorMessageComponent,\n FieldsetComponent,\n LegendComponent,\n TextareaComponent,\n CharacterCountComponent,\n InputComponent,\n SelectComponent,\n FileUploadComponent,\n InputGroupComponent,\n InputGroupItemComponent,\n DateInputItemComponent,\n InputGroupDividerComponent,\n DateInputDividerComponent,\n InputGroupInputComponent,\n InputGroupSelectComponent,\n RadiosComponent,\n RadioItemComponent,\n CheckboxesComponent,\n CheckboxItemComponent,\n DateInputComponent,\n SearchBarComponent,\n OptionComponent,\n OptionGroupComponent,\n SelectItemComponent,\n DateInputDayComponent,\n DateInputMonthComponent,\n DateInputYearComponent,\n TreeComponent,\n TreeSubComponent,\n TreeItemComponent,\n TreeCheckboxComponent,\n TreeItemsGeneratorComponent,\n\n ConditionDirective,\n\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SharedModule,\n DesyCommonsModule,\n ],\n exports: [\n HintComponent,\n LabelComponent,\n ErrorMessageComponent,\n FieldsetComponent,\n LegendComponent,\n TextareaComponent,\n CharacterCountComponent,\n InputComponent,\n SelectComponent,\n FileUploadComponent,\n InputGroupComponent,\n InputGroupDividerComponent,\n DateInputDividerComponent,\n InputGroupInputComponent,\n InputGroupSelectComponent,\n RadiosComponent,\n RadioItemComponent,\n CheckboxesComponent,\n CheckboxItemComponent,\n DateInputComponent,\n SearchBarComponent,\n OptionComponent,\n OptionGroupComponent,\n DateInputDayComponent,\n DateInputMonthComponent,\n DateInputYearComponent,\n TreeComponent,\n TreeSubComponent,\n TreeItemComponent,\n TreeItemsGeneratorComponent,\n\n ConditionDirective\n ]\n})\nexport class DesyFormsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\n\nimport { AlertComponent } from './components/alert/alert.component';\nimport { AccordionComponent } from './components/accordion/accordion.component';\nimport { AccordionHeaderComponent } from './components/accordion/accordion-header/accordion-header.component';\nimport { AccordionHistoryComponent } from './components/accordion-history/accordion-history.component';\nimport { AccordionHistoryItemComponent } from './components/accordion-history/accordion-history-item/accordion-history-item.component';\nimport { AccordionItemComponent } from './components/accordion/accordion-item/accordion-item.component';\nimport { SpinnerComponent } from './components/spinner/spinner.component';\nimport { DetailsComponent } from './components/details/details.component';\nimport { CollapsibleComponent } from './components/collapsible/collapsible.component';\nimport { DescriptionListComponent } from './components/description-list/description-list.component';\nimport { ItemComponent } from './components/item/item.component';\nimport { MediaObjectComponent } from './components/media-object/media-object.component';\nimport { StatusComponent } from './components/status/status.component';\nimport { StatusItemComponent } from './components/status-item/status-item.component';\nimport { DesyFormsModule } from '../desy-forms/desy-forms.module';\nimport { TabsComponent } from './components/tabs/tabs.component';\nimport { TooltipComponent } from './components/tooltip/tooltip.component';\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\nimport { TooltipContentComponent } from './components/tooltip/tooltip-content/tooltip-content.component';\nimport { DescriptionItemComponent } from './components/description-list/description-item/description-item.component';\nimport { TermComponent } from './components/description-list/term/term.component';\nimport { DefinitionComponent } from './components/description-list/definition/definition.component';\nimport { ItemContentBottomComponent } from './components/item/item-content-bottom/item-content-bottom.component';\nimport { ItemContentRightComponent } from './components/item/item-content-right/item-content-right.component';\nimport { ItemItemComponent } from './components/item/item-item/item-item.component';\nimport { PanelComponent } from './components/tabs/panel/panel.component';\nimport { TabItemComponent } from './components/tabs/tab-item/tab-item.component';\nimport { MediaObjectFigureComponent } from './components/media-object/media-object-figure/media-object-figure.component';\nimport { AccordionItemShowButtonComponent } from './components/accordion-history/accordion-item-show-button/accordion-item-show-button.component';\nimport { AccordionItemHideButtonComponent } from './components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\n\n@NgModule({\n declarations: [\n AlertComponent,\n AccordionComponent,\n AccordionHeaderComponent,\n AccordionHistoryComponent,\n AccordionHistoryItemComponent,\n AccordionItemShowButtonComponent,\n AccordionItemHideButtonComponent,\n AccordionItemComponent,\n SpinnerComponent,\n DetailsComponent,\n CollapsibleComponent,\n DescriptionListComponent,\n DescriptionItemComponent,\n TermComponent,\n DefinitionComponent,\n ItemComponent,\n ItemContentBottomComponent,\n ItemContentRightComponent,\n ItemItemComponent,\n MediaObjectComponent,\n StatusComponent,\n StatusItemComponent,\n TabsComponent,\n TooltipComponent,\n TooltipContentComponent,\n PanelComponent,\n TabItemComponent,\n MediaObjectFigureComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n DesyFormsModule,\n DesyCommonsModule,\n NgxTippyModule\n ],\n exports: [\n AlertComponent,\n AccordionComponent,\n AccordionHeaderComponent,\n AccordionHistoryComponent,\n AccordionHistoryItemComponent,\n AccordionItemShowButtonComponent,\n AccordionItemHideButtonComponent,\n AccordionItemComponent,\n SpinnerComponent,\n DetailsComponent,\n CollapsibleComponent,\n DescriptionListComponent,\n DescriptionItemComponent,\n TermComponent,\n DefinitionComponent,\n ItemComponent,\n ItemContentBottomComponent,\n ItemContentRightComponent,\n ItemItemComponent,\n MediaObjectComponent,\n StatusComponent,\n StatusItemComponent,\n TabsComponent,\n TooltipComponent,\n TooltipContentComponent,\n PanelComponent,\n TabItemComponent,\n MediaObjectFigureComponent,\n ]\n})\nexport class DesyViewsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DesyViewsModule } from '../desy-views/desy-views.module';\nimport { SharedModule } from '../shared/shared.module';\nimport { NgxTippyModule } from 'ngx-tippy-wrapper';\n\n// componentes\nimport { ButtonComponent } from './components/button/button.component';\nimport { ButtonLoaderComponent } from './components/button-loader/button-loader.component';\nimport { PillComponent } from './components/pill/pill.component';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { ListboxComponent } from './components/listbox/listbox.component';\nimport { ListboxItemComponent } from './components/listbox/listbox-item/listbox-item.component';\nimport { ListboxLabelComponent } from './components/listbox/listbox-label/listbox-label.component';\nimport { ToggleComponent } from './components/toggle/toggle.component';\nimport { ToggleOnStateComponent } from './components/toggle/toggle-on-state/toggle-on-state.component';\nimport { ToggleOffStateComponent } from './components/toggle/toggle-off-state/toggle-off-state.component';\n\n\n@NgModule({\n declarations: [\n ButtonComponent,\n ButtonLoaderComponent,\n DropdownComponent,\n ListboxComponent,\n PillComponent,\n\n ListboxItemComponent,\n ListboxLabelComponent,\n ToggleComponent,\n ToggleOnStateComponent,\n ToggleOffStateComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n DesyViewsModule,\n NgxTippyModule\n ],\n exports: [\n ButtonComponent,\n ButtonLoaderComponent,\n DropdownComponent,\n ListboxComponent,\n PillComponent,\n\n ListboxItemComponent,\n ListboxLabelComponent,\n ToggleComponent,\n ToggleOnStateComponent,\n ToggleOffStateComponent\n ]\n})\nexport class DesyButtonsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\n\n// components\nimport { ModalComponent } from './components/modal/modal.component';\nimport { ModalButtonPrimaryComponent } from './components/modal/modal-button-primary/modal-button-primary.component';\nimport { ModalButtonSecondaryComponent } from './components/modal/modal-button-secondary/modal-button-secondary.component';\nimport { DialogComponent } from './components/dialog/dialog.component';\nimport { ModalButtonLoaderPrimaryComponent } from './components/modal/modal-button-loader-primary/modal-button-loader-primary.component';\nimport { ModalButtonLoaderSecondaryComponent } from './components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component';\n\n@NgModule({\n declarations: [\n ModalComponent,\n ModalButtonPrimaryComponent,\n ModalButtonSecondaryComponent,\n ModalButtonLoaderPrimaryComponent,\n ModalButtonLoaderSecondaryComponent,\n DialogComponent\n ],\n imports: [\n CommonModule,\n A11yModule,\n SharedModule,\n DesyButtonsModule\n ],\n exports: [\n ModalComponent,\n ModalButtonPrimaryComponent,\n ModalButtonSecondaryComponent,\n ModalButtonLoaderPrimaryComponent,\n ModalButtonLoaderSecondaryComponent,\n DialogComponent\n ],\n})\nexport class DesyModalsModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from '../shared/shared.module';\nimport { DesyCommonsModule } from '../desy-commons/desy-commons.module';\n\nimport { BreadcrumbsComponent } from './components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbsItemComponent } from './components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\nimport { ErrorSummaryComponent } from './components/error-summary/error-summary.component';\nimport { ErrorSummaryItemComponent } from './components/error-summary/error-summary-item/error-summary-item.component';\nimport { MenuHorizontalComponent } from './components/menu-horizontal/menu-horizontal.component';\nimport { MenuHorizontalItemComponent } from './components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component';\nimport { MenuVerticalComponent } from './components/menu-vertical/menu-vertical.component';\nimport { NavComponent } from './components/nav/nav.component';\nimport { SkipLinkComponent } from './components/skip-link/skip-link.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { HeaderSubnavComponent } from './components/header/header-subnav/header-subnav.component';\nimport { HeaderNavigationComponent } from './components/header/header-navigation/header-navigation.component';\nimport { HeaderDropdownComponent } from './components/header/header-dropdown/header-dropdown.component';\nimport { HeaderOffcanvasButtonComponent } from './components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component';\nimport { HeaderOffcanvasComponent } from './components/header/header-offcanvas/header-offcanvas.component';\nimport { NotificationComponent } from './components/notification/notification.component';\nimport { NotificationItemComponent } from './components/notification/notification-item/notification-item.component';\nimport { FooterComponent } from './components/footer/footer.component';\nimport { MenubarComponent } from './components/menubar/menubar.component';\nimport { MenubaritemDirective } from './components/menubar/directives/menubaritem.directive';\nimport { MenubarItemComponent } from './components/menubar/components/menubar-item/menubar-item.component';\nimport { MenubarSubitemComponent } from './components/menubar/components/menubar-subitem/menubar-subitem.component';\nimport { MenubarSubsubitemComponent } from './components/menubar/components/menubar-subsubitem/menubar-subsubitem.component';\nimport { MenubarLabelComponent } from './components/menubar/components/menubar-label/menubar-label.component';\nimport { NavItemComponent } from './components/nav/nav-item/nav-item.component';\nimport { MenuVerticalItemComponent } from './components/menu-vertical/menu-vertical-item/menu-vertical-item.component';\nimport { MenuVerticalItemSubComponent } from './components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component';\nimport { MenuVerticalItemSubItemComponent } from './components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\nimport { HeaderOffcanvasCloseButtonComponent } from './components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component';\nimport { HeaderNavigationItemComponent } from './components/header/header-navigation/header-navigation-item/header-navigation-item.component';\nimport { FooterMetaComponent } from './components/footer/footer-meta/footer-meta.component';\nimport { FooterMetaItemComponent } from './components/footer/footer-meta/footer-meta-item/footer-meta-item.component';\nimport { FooterNavigationComponent } from './components/footer/footer-navigation/footer-navigation.component';\nimport { FooterNavigationItemComponent } from './components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component';\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\nimport { MenuNavigationComponent } from './components/menu-navigation/menu-navigation.component';\nimport { MenuNavigationItemComponent } from './components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component';\nimport { MenuNavigationSubitemComponent } from './components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component';\nimport { HeaderCustomNavigationComponent } from './components/header/header-custom-navigation/header-custom-navigation.component';\n\n\n@NgModule({\n declarations: [\n BreadcrumbsComponent,\n BreadcrumbsItemComponent,\n ErrorSummaryComponent,\n ErrorSummaryItemComponent,\n FooterComponent,\n FooterMetaComponent,\n FooterMetaItemComponent,\n FooterNavigationComponent,\n FooterNavigationItemComponent,\n HeaderComponent,\n HeaderSubnavComponent,\n HeaderNavigationComponent,\n HeaderNavigationItemComponent,\n HeaderDropdownComponent,\n HeaderOffcanvasButtonComponent,\n HeaderOffcanvasComponent,\n HeaderOffcanvasCloseButtonComponent,\n MenuHorizontalComponent,\n MenuHorizontalItemComponent,\n MenuVerticalComponent,\n MenuVerticalItemComponent,\n MenuVerticalItemSubComponent,\n MenuVerticalItemSubItemComponent,\n MenubarComponent,\n MenubarLabelComponent,\n MenubarItemComponent,\n MenubarSubitemComponent,\n MenubarSubsubitemComponent,\n NavComponent,\n NotificationComponent,\n NotificationItemComponent,\n SkipLinkComponent,\n NavItemComponent,\n MenuNavigationComponent,\n\n MenubaritemDirective,\n\n MenuNavigationItemComponent,\n MenuNavigationSubitemComponent,\n HeaderCustomNavigationComponent,\n ],\n imports: [\n CommonModule,\n SharedModule,\n DesyCommonsModule,\n DesyButtonsModule\n ],\n exports: [\n BreadcrumbsComponent,\n BreadcrumbsItemComponent,\n ErrorSummaryComponent,\n ErrorSummaryItemComponent,\n FooterComponent,\n FooterMetaComponent,\n FooterMetaItemComponent,\n FooterNavigationComponent,\n FooterNavigationItemComponent,\n HeaderComponent,\n HeaderSubnavComponent,\n HeaderNavigationComponent,\n HeaderNavigationItemComponent,\n HeaderDropdownComponent,\n HeaderOffcanvasComponent,\n HeaderOffcanvasButtonComponent,\n HeaderOffcanvasCloseButtonComponent,\n MenuHorizontalComponent,\n MenuHorizontalItemComponent,\n MenuVerticalComponent,\n MenuVerticalItemComponent,\n MenuVerticalItemSubComponent,\n MenuVerticalItemSubItemComponent,\n MenubarComponent,\n MenubarLabelComponent,\n MenubarItemComponent,\n MenubarSubitemComponent,\n MenubarSubsubitemComponent,\n NavComponent,\n NotificationComponent,\n NotificationItemComponent,\n NavItemComponent,\n SkipLinkComponent,\n MenuNavigationComponent,\n MenuNavigationSubitemComponent,\n MenuNavigationItemComponent,\n MenuNavigationSubitemComponent,\n HeaderCustomNavigationComponent\n ]\n})\nexport class DesyNavModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { SharedModule } from '../shared/shared.module';\nimport { DesyFormsModule } from '../desy-forms/desy-forms.module';\n\nimport { TableComponent } from './components/table/table.component';\nimport { TableAdvancedComponent } from './components/table-advanced/table-advanced.component';\nimport { FocusClickedCellDirective } from './directives/focus-clicked-cell.directive';\nimport { TableCellComponent } from './components/table/components/table-cell.component';\nimport { TableHeaderComponent } from './components/table/components/table-header.component';\nimport { TableRowComponent } from './components/table/components/table-row.component';\nimport { TableCaptionComponent } from './components/table/components/table-caption.component';\nimport { TableAdvancedHeaderComponent } from './components/table-advanced/components/table-advanced-header.component';\nimport { TableAdvancedHeaderCellComponent } from './components/table-advanced/components/table-advanced-header-cell.component';\nimport { TableAdvancedRowComponent } from './components/table-advanced/components/table-advanced-row.component';\nimport { CellDirective } from './directives/cell.directive';\nimport { RowDirective } from './directives/row.directive';\nimport {TableAdvancedRowCellComponent} from './components/table-advanced/components/table-advanced-row-cell.component';\nimport { TableAdvancedSelectComponent } from './components/table-advanced/components/table-advanced-select.component';\n\n\n@NgModule({\n declarations: [\n TableComponent,\n TableCaptionComponent,\n TableCellComponent,\n TableHeaderComponent,\n TableRowComponent,\n TableAdvancedComponent,\n TableAdvancedHeaderComponent,\n TableAdvancedHeaderCellComponent,\n TableAdvancedRowComponent,\n TableAdvancedRowCellComponent,\n TableAdvancedSelectComponent,\n\n FocusClickedCellDirective,\n CellDirective,\n RowDirective,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n A11yModule,\n SharedModule,\n DesyFormsModule\n ],\n exports: [\n TableComponent,\n TableCaptionComponent,\n TableCellComponent,\n TableHeaderComponent,\n TableRowComponent,\n TableAdvancedComponent,\n TableAdvancedHeaderComponent,\n TableAdvancedHeaderCellComponent,\n TableAdvancedRowComponent,\n TableAdvancedRowCellComponent,\n TableAdvancedSelectComponent\n ]\n})\nexport class DesyTablesModule { }\n","import { PaginationItemPerPageComponent } from './components/pagination-item-perpage/pagination-item-perpage.component';\nimport { PaginationListboxLabelComponent } from './components/pagination-listbox-label/pagination-listbox-label.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { DesyNavModule } from '../desy-nav/desy-nav.module';\nimport { DesyButtonsModule } from '../desy-buttons/desy-buttons.module';\n\nimport { PaginationComponent } from './components/pagination/pagination.component';\n\n\n@NgModule({\n declarations: [\n PaginationComponent, \n PaginationListboxLabelComponent,\n PaginationItemPerPageComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n DesyNavModule,\n DesyButtonsModule\n ],\n exports: [\n PaginationComponent, \n PaginationListboxLabelComponent,\n PaginationItemPerPageComponent\n ]\n})\nexport class DesyPaginationModule { }\n","import { NgModule } from '@angular/core';\n\nimport { DesyButtonsModule } from './desy-buttons/desy-buttons.module';\nimport { DesyFormsModule } from './desy-forms/desy-forms.module';\nimport { DesyModalsModule } from './desy-modals/desy-modals.module';\nimport { DesyNavModule } from './desy-nav/desy-nav.module';\nimport { DesyTablesModule } from './desy-tables/desy-tables.module';\nimport { DesyViewsModule } from './desy-views/desy-views.module';\nimport { DesyPaginationModule } from './desy-pagination/desy-pagination.module';\nimport { DesyCommonsModule } from './desy-commons/desy-commons.module';\n\n@NgModule({\n imports: [\n DesyButtonsModule,\n DesyCommonsModule,\n DesyFormsModule,\n DesyModalsModule,\n DesyNavModule,\n DesyTablesModule,\n DesyViewsModule,\n DesyPaginationModule,\n DesyCommonsModule,\n ],\n exports: [\n DesyButtonsModule,\n DesyCommonsModule,\n DesyFormsModule,\n DesyModalsModule,\n DesyNavModule,\n DesyTablesModule,\n DesyViewsModule,\n DesyPaginationModule,\n DesyCommonsModule,\n ]\n})\nexport class DesyAngularModule { }\n","\n/*\n * Public API Surface of desy-angular\n */\n\n// componentes desy-button\nexport * from './lib/desy-buttons/components/button/button.component';\nexport * from './lib/desy-buttons/components/button-loader/button-loader.component';\nexport * from './lib/desy-buttons/components/dropdown/dropdown.component';\nexport * from './lib/desy-buttons/components/listbox/listbox.component';\nexport * from './lib/desy-buttons/components/pill/pill.component';\nexport * from './lib/desy-buttons/components/toggle/toggle.component';\nexport * from './lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component';\nexport * from './lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component';\n// interfaces desy-button\nexport * from './lib/desy-buttons/interfaces/listbox-label-data';\nexport * from './lib/desy-buttons/interfaces/listbox-item-data';\n// subcomponentes desy-button\nexport * from './lib/desy-buttons/components/listbox/listbox-label/listbox-label.component';\nexport * from './lib/desy-buttons/components/listbox/listbox-item/listbox-item.component';\n\n// componentes desy-commons\nexport * from './lib/desy-commons/components/content/content.component';\nexport * from './lib/desy-commons/components/description/description.component';\nexport * from './lib/desy-commons/components/icon/icon.component';\nexport * from './lib/desy-commons/components/title/title.component';\nexport * from './lib/desy-commons/components/divider/divider.component';\n// interfaces desy-commons\nexport * from './lib/desy-commons/interfaces';\n\n// componentes desy-forms\nexport * from './lib/desy-forms/components/hint/hint.component';\nexport * from './lib/desy-forms/components/label/label.component';\nexport * from './lib/desy-forms/components/error-message/error-message.component';\nexport * from './lib/desy-forms/components/fieldset/fieldset.component';\nexport * from './lib/desy-forms/components/fieldset/legend/legend.component';\nexport * from './lib/desy-forms/components/textarea/textarea.component';\nexport * from './lib/desy-forms/components/character-count/character-count.component';\nexport * from './lib/desy-forms/components/input/input.component';\nexport * from './lib/desy-forms/components/select/select.component';\nexport * from './lib/desy-forms/components/file-upload/file-upload.component';\nexport * from './lib/desy-forms/components/input-group/input-group.component';\nexport * from './lib/desy-forms/components/radios/radios.component';\nexport * from './lib/desy-forms/components/checkboxes/checkboxes.component';\nexport * from './lib/desy-forms/components/date-input/date-input.component';\nexport * from './lib/desy-forms/components/search-bar/search-bar.component';\nexport * from './lib/desy-forms/components/tree/tree.component';\nexport * from './lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component';\n// directivas desy-froms\nexport * from './lib/desy-forms/directives/condition.directive';\n// interfaces desy-forms\nexport * from './lib/desy-forms/interfaces/legend-data';\nexport * from './lib/desy-forms/interfaces/error-message-data';\nexport * from './lib/desy-forms/interfaces/fieldset-data';\nexport * from './lib/desy-forms/interfaces/hint-data';\nexport * from './lib/desy-forms/interfaces/item-date-input-data';\nexport * from './lib/desy-forms/interfaces/item-input-group-data';\nexport * from './lib/desy-forms/interfaces/item-divider-input-group-data';\nexport * from './lib/desy-forms/interfaces/item-radio-data';\nexport * from './lib/desy-forms/interfaces/item-checkbox-data';\nexport * from './lib/desy-forms/interfaces/label-data';\nexport * from './lib/desy-forms/interfaces/select-item-data';\n// sub-componentes desy-forms\nexport * from './lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component';\nexport * from './lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component';\nexport * from './lib/desy-forms/components/input-group/input-group-input/input-group-input.component';\nexport * from './lib/desy-forms/components/input-group/input-group-select/input-group-select.component';\nexport * from './lib/desy-forms/components/radios/radio-item/radio-item.component';\nexport * from './lib/desy-forms/components/select/option/option.component';\nexport * from './lib/desy-forms/components/select/option-group/option-group.component';\nexport * from './lib/desy-forms/components/tree/tree-sub/tree-sub.component';\nexport * from './lib/desy-forms/components/tree/tree-item/tree-item.component';\nexport * from './lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component';\nexport * from './lib/desy-forms/components/date-input/date-input-year/date-input-year.component';\nexport * from './lib/desy-forms/components/date-input/date-input.component';\nexport * from './lib/desy-forms/components/date-input/date-input-month/date-input-month.component';\nexport * from './lib/desy-forms/components/date-input/date-input-day/date-input-day.component';\n\n// componentes desy-modals\nexport * from './lib/desy-modals/components/modal/modal.component';\nexport * from './lib/desy-modals/components/dialog/dialog.component';\n// interfaces desy-modals\nexport * from './lib/desy-modals/interfaces/modal-icon-data';\nexport * from './lib/desy-modals/interfaces/modal-button-data';\nexport * from './lib/desy-modals/interfaces/modal-data';\nexport * from './lib/desy-modals/interfaces/dialog-options';\nexport * from './lib/desy-modals/interfaces/modal-options';\nexport * from './lib/desy-modals/interfaces/open-dialog-result';\n// servicios desy-modals\nexport * from './lib/desy-modals/services/dialog.service';\n// sub-componentes desy-modals\nexport * from './lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component';\nexport * from './lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component';\nexport * from './lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component';\nexport * from './lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component';\n\n// componentes desy-nav\nexport * from './lib/desy-nav/components/breadcrumbs/breadcrumbs.component';\nexport * from './lib/desy-nav/components/header/header.component';\nexport * from './lib/desy-nav/components/footer/footer.component';\nexport * from './lib/desy-nav/components/error-summary/error-summary.component';\nexport * from './lib/desy-nav/components/menu-horizontal/menu-horizontal.component';\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical.component';\nexport * from './lib/desy-nav/components/menubar/menubar.component';\nexport * from './lib/desy-nav/components/nav/nav.component';\nexport * from './lib/desy-nav/components/notification/notification.component';\nexport * from './lib/desy-nav/components/skip-link/skip-link.component';\nexport * from './lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component';\n// interfaces desy-nav\nexport * from './lib/desy-nav/interfaces/breadcrumbs.data';\nexport * from './lib/desy-nav/interfaces/error-summary-data';\nexport * from './lib/desy-nav/interfaces/footer-data';\nexport * from './lib/desy-nav/interfaces/header-dropdown-data';\nexport * from './lib/desy-nav/interfaces/header-navigation-data';\nexport * from './lib/desy-nav/interfaces/header-navigation-item-data';\nexport * from './lib/desy-nav/interfaces/header-offcanvas-data';\nexport * from './lib/desy-nav/interfaces/header-subnav-data';\nexport * from './lib/desy-nav/interfaces/menu-horizontal-item-data';\nexport * from './lib/desy-nav/interfaces/menu-horizontal-item-event-data';\nexport * from './lib/desy-nav/interfaces/menu-vertical-items-data';\nexport * from './lib/desy-nav/interfaces/menu-vertical-sub-data';\nexport * from './lib/desy-nav/interfaces/menu-vertical-sub-items-data';\nexport * from './lib/desy-nav/interfaces/menubar-item';\nexport * from './lib/desy-nav/interfaces/menubar-item-sub';\nexport * from './lib/desy-nav/interfaces/menubar-item-sub-item';\nexport * from './lib/desy-nav/interfaces/menubar-item-sub-item-sub-item';\nexport * from './lib/desy-nav/interfaces/nav-item.data';\nexport * from './lib/desy-nav/interfaces/nav-item-event.data';\nexport * from './lib/desy-nav/interfaces/notification-items-data';\nexport * from './lib/desy-nav/interfaces/notification-options';\n// subcomponentes desy-nav\nexport * from './lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component';\nexport * from './lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component';\nexport * from './lib/desy-nav/components/footer/footer-meta/footer-meta.component';\nexport * from './lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component';\nexport * from './lib/desy-nav/components/footer/footer-navigation/footer-navigation.component';\nexport * from './lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component';\nexport * from './lib/desy-nav/components/header/header-dropdown/header-dropdown.component';\nexport * from './lib/desy-nav/components/header/header-navigation/header-navigation.component';\nexport * from './lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component';\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component';\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component';\nexport * from './lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component';\nexport * from './lib/desy-nav/components/header/header-subnav/header-subnav.component';\nexport * from './lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component';\nexport * from './lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component';\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component';\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component';\nexport * from './lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component';\nexport * from './lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component';\nexport * from './lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component';\nexport * from './lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component';\nexport * from './lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component';\nexport * from './lib/desy-nav/components/nav/nav-item/nav-item.component';\nexport * from './lib/desy-nav/components/notification/notification-item/notification-item.component';\nexport * from './lib/desy-nav/components/menu-navigation/menu-navigation.component';\nexport * from './lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component';\n\n// componentes desy-tables\nexport * from './lib/desy-tables/components/table/table.component';\nexport * from './lib/desy-tables/components/table-advanced/table-advanced.component';\n// interfaces desy-tables\nexport * from './lib/desy-tables/interfaces/head-cell-data';\nexport * from './lib/desy-tables/interfaces/cell-data';\nexport * from './lib/desy-tables/interfaces/row-data';\nexport * from './lib/desy-tables/interfaces/recalculate-table-params';\nexport * from './lib/desy-tables/interfaces/wrapper-data';\n// subcomponentes desy-tables\nexport * from './lib/desy-tables/components/table/components/table-cell.component';\nexport * from './lib/desy-tables/components/table/components/table-caption.component';\nexport * from './lib/desy-tables/components/table/components/table-header.component';\nexport * from './lib/desy-tables/components/table/components/table-row.component';\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-header.component';\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component';\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-row.component';\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component';\nexport * from './lib/desy-tables/components/table-advanced/table-advanced.component';\nexport * from './lib/desy-tables/components/table-advanced/components/table-advanced-select.component';\n// componentes desy-views\nexport * from './lib/desy-views/components/alert/alert.component';\nexport * from './lib/desy-views/components/accordion/accordion.component';\nexport * from './lib/desy-views/components/accordion-history/accordion-history.component';\nexport * from './lib/desy-views/components/spinner/spinner.component';\nexport * from './lib/desy-views/components/details/details.component';\nexport * from './lib/desy-views/components/description-list/description-list.component';\nexport * from './lib/desy-views/components/collapsible/collapsible.component';\nexport * from './lib/desy-views/components/item/item.component';\nexport * from './lib/desy-views/components/media-object/media-object.component';\nexport * from './lib/desy-views/components/status/status.component';\nexport * from './lib/desy-views/components/status-item/status-item.component';\nexport * from './lib/desy-views/components/tabs/tabs.component';\nexport * from './lib/desy-views/components/tabs/tab-item/tab-item.component';\nexport * from './lib/desy-views/components/tabs/panel/panel.component';\nexport * from './lib/desy-views/components/media-object/media-object-figure/media-object-figure.component';\nexport * from './lib/desy-views/components/tooltip/tooltip.component';\n// interfaces desy-views\nexport * from './lib/desy-views/interfaces';\n// servicios desy-views\nexport * from './lib/desy-views/services/alert.service';\n// subcomponentes desy-views\nexport * from './lib/desy-views/components/accordion/accordion-header/accordion-header.component';\nexport * from './lib/desy-views/components/accordion/accordion-item/accordion-item.component';\nexport * from './lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component';\nexport * from './lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component';\nexport * from './lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component';\nexport * from './lib/desy-views/components/description-list/definition/definition.component';\nexport * from './lib/desy-views/components/description-list/description-item/description-item.component';\nexport * from './lib/desy-views/components/item/item-content-bottom/item-content-bottom.component';\nexport * from './lib/desy-views/components/item/item-content-right/item-content-right.component';\nexport * from './lib/desy-views/components/item/item-item/item-item.component';\nexport * from './lib/desy-views/components/description-list/term/term.component';\nexport * from './lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component';\n\n// components desy-pagination\nexport * from './lib/desy-pagination/components/pagination/pagination.component';\nexport * from './lib/desy-pagination/interfaces/pagination-item.data';\nexport * from './lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component';\nexport * from './lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component';\n\n// modules\nexport * from './lib/desy-buttons/desy-buttons.module';\nexport * from './lib/desy-commons/desy-commons.module';\nexport * from './lib/desy-forms/desy-forms.module';\nexport * from './lib/desy-modals/desy-modals.module';\nexport * from './lib/desy-nav/desy-nav.module';\nexport * from './lib/desy-tables/desy-tables.module';\nexport * from './lib/desy-views/desy-views.module';\nexport * from './lib/desy-pagination/desy-pagination.module';\nexport * from './lib/desy-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.InnerContentDirective","i4.ExternalHrefPipe","i4.SpinnerComponent","i5.ExternalHrefPipe","i2.CustomInnerContentDirective","i4.MakeHtmlListPipe","i2.InnerContentDirective","i3.LegendComponent","i2.HintComponent","i3.LabelComponent","i4.ErrorMessageComponent","i5.MakeHtmlListPipe","i3.TextareaComponent","i2","i3.CustomInnerContentDirective","i4.HintComponent","i5.LabelComponent","i6.ErrorMessageComponent","i7.MakeHtmlListPipe","i1","i4.TemplateDrivenWrapperComponent","i5.HintComponent","i7.FieldsetComponent","i8.InputComponent","i9.SelectComponent","i10.MakeHtmlListPipe","i1.RadioService","i4.LabelComponent","i3.ContentComponent","i8.RadioItemComponent","i9.MakeHtmlListPipe","i1.CheckboxService","i8.CheckboxItemComponent","i2.LabelComponent","i3.ErrorMessageComponent","i1.MakeHtmlListPipe","i3.TreeCheckboxComponent","i2.MakeHtmlListPipe","i3.ContentChangeDirective","i4.CustomInnerContentDirective","i5.ButtonComponent","i6.ButtonLoaderComponent","i3.ClickOutsideDirective","i1.DialogService","i2.ClickOutsideDirective","i2.DropdownComponent","i1.CustomInnerContentDirective","i4.ContentComponent","i5.HeaderSubnavComponent","i6.HeaderNavigationComponent","i7.HeaderDropdownComponent","i8.HeaderOffcanvasButtonComponent","i9.HeaderOffcanvasComponent","i10.HeaderOffcanvasCloseButtonComponent","i11.NavComponent","i12.SkipLinkComponent","i13.ExternalHrefPipe","i3.AttributeChangeDirective","i5.MenubaritemDirective","i6.MakeHtmlListPipe","i7.ExternalHrefPipe","i2.AttributeChangeDirective","i4.MenubaritemDirective","i3.MakeHtmlListPipe","i4.SelectComponent","i5.SearchBarComponent","i6.FocusClickedCellDirective","i7.CellDirective","i8.RowDirective","i3.InnerHtmlPipe","i3.HintComponent","i5.StatusComponent","i3.ButtonComponent","i4.ListboxComponent","i5.ListboxLabelComponent"],"mappings":"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,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAE7B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC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"}
|