desy-angular 2.0.2 → 5.0.1
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/README.md +5 -5
- package/bundles/desy-angular.umd.js +5961 -1898
- package/bundles/desy-angular.umd.js.map +1 -1
- package/bundles/desy-angular.umd.min.js +2 -2
- package/bundles/desy-angular.umd.min.js.map +1 -1
- package/desy-angular.d.ts +30 -17
- package/desy-angular.metadata.json +1 -1
- package/esm2015/desy-angular.js +31 -18
- package/esm2015/lib/desy-angular.module.js +6 -3
- package/esm2015/lib/desy-buttons/components/button/button.component.js +9 -20
- package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +8 -3
- package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +76 -17
- package/esm2015/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.js +26 -0
- package/esm2015/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.js +14 -0
- package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +287 -0
- package/esm2015/lib/desy-buttons/components/pill/pill.component.js +8 -10
- package/esm2015/lib/desy-buttons/desy-buttons.module.js +15 -4
- package/esm2015/lib/desy-buttons/interfaces/listbox-item-data.js +2 -0
- package/esm2015/lib/desy-buttons/interfaces/listbox-label-data.js +2 -0
- package/esm2015/lib/desy-commons/components/content/content.component.js +14 -0
- package/esm2015/lib/desy-commons/components/description/description.component.js +14 -0
- package/esm2015/lib/desy-commons/components/icon/icon.component.js +14 -0
- package/esm2015/lib/desy-commons/components/title/title.component.js +14 -0
- package/esm2015/lib/desy-commons/desy-commons.module.js +33 -0
- package/esm2015/lib/desy-commons/interfaces/content-data.js +2 -0
- package/esm2015/lib/desy-commons/interfaces/description-data.js +2 -0
- package/esm2015/lib/desy-commons/interfaces/icon-data.js +2 -0
- package/esm2015/lib/desy-commons/interfaces/index.js +5 -0
- package/esm2015/lib/desy-commons/interfaces/title-data.js +2 -0
- package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +2 -2
- package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +190 -0
- package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +181 -74
- package/esm2015/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.js +46 -0
- package/esm2015/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.js +19 -0
- package/esm2015/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.js +13 -0
- package/esm2015/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.js +46 -0
- package/esm2015/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.js +44 -0
- package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +132 -27
- package/esm2015/lib/desy-forms/components/error-message/error-message.component.js +17 -5
- package/esm2015/lib/desy-forms/components/fieldset/fieldset.component.js +27 -4
- package/esm2015/lib/desy-forms/components/fieldset/legend/legend.component.js +6 -5
- package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +1 -1
- package/esm2015/lib/desy-forms/components/form-field/form-field.component.js +45 -7
- package/esm2015/lib/desy-forms/components/hint/hint.component.js +18 -6
- package/esm2015/lib/desy-forms/components/input/input.component.js +2 -3
- package/esm2015/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.js +20 -0
- package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +46 -0
- package/esm2015/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.js +13 -0
- package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +42 -0
- package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +115 -21
- package/esm2015/lib/desy-forms/components/label/label.component.js +21 -8
- package/esm2015/lib/desy-forms/components/radios/radio-item/radio-item.component.js +147 -0
- package/esm2015/lib/desy-forms/components/radios/radios.component.js +198 -12
- package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +14 -4
- package/esm2015/lib/desy-forms/components/select/option/option.component.js +17 -0
- package/esm2015/lib/desy-forms/components/select/option-group/option-group.component.js +17 -0
- package/esm2015/lib/desy-forms/components/select/select-item/select-item.component.js +14 -0
- package/esm2015/lib/desy-forms/components/select/select.component.js +33 -18
- package/esm2015/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.js +1 -1
- package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +1 -1
- package/esm2015/lib/desy-forms/desy-forms.module.js +43 -6
- package/esm2015/lib/desy-forms/directives/condition.directive.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/accesibility-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/error-message-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/fieldset-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/hint-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/index.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/item-checkbox-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/item-date-input-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/item-divider-date-input-data.js +2 -0
- package/esm2015/lib/desy-forms/interfaces/item-divider-input-group-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/item-input-group-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/item-radio-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/item-radio-with-template-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/label-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/legend-data.js +1 -1
- package/esm2015/lib/desy-forms/interfaces/select-item-data.js +1 -1
- package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +1 -1
- package/esm2015/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.js +19 -0
- package/esm2015/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.js +19 -0
- package/esm2015/lib/desy-modals/components/modal/modal.component.js +106 -21
- package/esm2015/lib/desy-modals/desy-modals.module.js +7 -1
- package/esm2015/lib/desy-modals/interfaces/dialog-options.js +1 -1
- package/esm2015/lib/desy-modals/interfaces/index.js +1 -1
- package/esm2015/lib/desy-modals/interfaces/modal-button-data.js +1 -1
- package/esm2015/lib/desy-modals/interfaces/modal-data.js +1 -1
- package/esm2015/lib/desy-modals/interfaces/modal-icon-data.js +1 -1
- package/esm2015/lib/desy-modals/interfaces/modal-options.js +1 -1
- package/esm2015/lib/desy-modals/interfaces/open-dialog-result.js +1 -1
- package/esm2015/lib/desy-modals/services/dialog.service.js +1 -1
- package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.js +15 -0
- package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.js +18 -16
- package/esm2015/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.js +15 -0
- package/esm2015/lib/desy-nav/components/error-summary/error-summary.component.js +34 -13
- package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.js +16 -0
- package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta.component.js +23 -0
- package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.js +16 -0
- package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.js +16 -0
- package/esm2015/lib/desy-nav/components/footer/footer.component.js +31 -8
- package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +26 -36
- package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.js +19 -0
- package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +14 -7
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +25 -0
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.js +11 -0
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +76 -14
- package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +26 -36
- package/esm2015/lib/desy-nav/components/header/header.component.js +38 -7
- package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.js +28 -0
- package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +41 -21
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.js +32 -0
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.js +16 -0
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.js +24 -0
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +43 -93
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.js +36 -0
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.js +14 -0
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.js +29 -0
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.js +23 -0
- package/esm2015/lib/desy-nav/components/menubar/directives/menubaritem.directive.js +37 -0
- package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +656 -0
- package/esm2015/lib/desy-nav/components/nav/nav-item/nav-item.component.js +30 -0
- package/esm2015/lib/desy-nav/components/nav/nav.component.js +44 -22
- package/esm2015/lib/desy-nav/components/notification/notification-item/notification-item.component.js +18 -0
- package/esm2015/lib/desy-nav/components/notification/notification.component.js +49 -22
- package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +24 -5
- package/esm2015/lib/desy-nav/desy-nav.module.js +78 -12
- package/esm2015/lib/desy-nav/interfaces/breadcrumbs.data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/error-summary-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/footer-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/header-dropdown-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/header-navigation-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/header-offcanvas-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/header-subnav-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/index.js +1 -5
- package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-event-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/menu-vertical-items-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-items-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.js +2 -0
- package/esm2015/lib/desy-nav/interfaces/menubar-item-sub-item.js +2 -0
- package/esm2015/lib/desy-nav/interfaces/menubar-item-sub.js +2 -0
- package/esm2015/lib/desy-nav/interfaces/menubar-item.js +2 -0
- package/esm2015/lib/desy-nav/interfaces/nav-item-event.data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/nav-item.data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/notification-items-data.js +1 -1
- package/esm2015/lib/desy-nav/interfaces/notification-options.js +1 -1
- package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +41 -76
- package/esm2015/lib/desy-pagination/desy-pagination.module.js +1 -1
- package/esm2015/lib/desy-pagination/interfaces/index.js +1 -1
- package/esm2015/lib/desy-pagination/interfaces/pagination-item.data.js +1 -1
- package/esm2015/lib/desy-tables/components/table/components/table-caption.component.js +14 -0
- package/esm2015/lib/desy-tables/components/table/components/table-cell.component.js +17 -0
- package/esm2015/lib/desy-tables/components/table/components/table-header.component.js +14 -0
- package/esm2015/lib/desy-tables/components/table/components/table-row.component.js +14 -0
- package/esm2015/lib/desy-tables/components/table/table.component.js +47 -14
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.js +20 -0
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.js +14 -0
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.js +17 -0
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.js +20 -0
- package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +173 -149
- package/esm2015/lib/desy-tables/desy-tables.module.js +31 -3
- package/esm2015/lib/desy-tables/directives/cell.directive.js +26 -0
- package/esm2015/lib/desy-tables/directives/focus-clicked-cell.directive.js +12 -8
- package/esm2015/lib/desy-tables/directives/row.directive.js +24 -0
- package/esm2015/lib/desy-tables/interfaces/cell-data.js +1 -1
- package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +1 -1
- package/esm2015/lib/desy-tables/interfaces/index.js +2 -1
- package/esm2015/lib/desy-tables/interfaces/recalculate-table-params.js +2 -0
- package/esm2015/lib/desy-tables/interfaces/row-data.js +1 -1
- package/esm2015/lib/desy-tables/interfaces/wrapper-data.js +2 -0
- package/esm2015/lib/desy-views/components/accordion/accordion-header/accordion-header.component.js +14 -0
- package/esm2015/lib/desy-views/components/accordion/accordion-item/accordion-item.component.js +33 -0
- package/esm2015/lib/desy-views/components/accordion/accordion.component.js +84 -56
- package/esm2015/lib/desy-views/components/alert/alert.component.js +28 -23
- package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +6 -10
- package/esm2015/lib/desy-views/components/description-list/definition/definition.component.js +15 -0
- package/esm2015/lib/desy-views/components/description-list/description-item/description-item.component.js +26 -0
- package/esm2015/lib/desy-views/components/description-list/description-list.component.js +13 -23
- package/esm2015/lib/desy-views/components/description-list/term/term.component.js +15 -0
- package/esm2015/lib/desy-views/components/details/details.component.js +1 -1
- package/esm2015/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.js +14 -0
- package/esm2015/lib/desy-views/components/item/item-content-right/item-content-right.component.js +11 -0
- package/esm2015/lib/desy-views/components/item/item-item/item-item.component.js +11 -0
- package/esm2015/lib/desy-views/components/item/item.component.js +57 -24
- package/esm2015/lib/desy-views/components/media-object/media-object.component.js +1 -1
- package/esm2015/lib/desy-views/components/spinner/spinner.component.js +1 -1
- package/esm2015/lib/desy-views/components/status/status.component.js +2 -2
- package/esm2015/lib/desy-views/components/status-item/status-item.component.js +39 -26
- package/esm2015/lib/desy-views/components/tabs/panel/panel.component.js +15 -0
- package/esm2015/lib/desy-views/components/tabs/tab-item/tab-item.component.js +28 -0
- package/esm2015/lib/desy-views/components/tabs/tabs.component.js +58 -36
- package/esm2015/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.js +11 -0
- package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +132 -0
- package/esm2015/lib/desy-views/desy-views.module.js +41 -1
- package/esm2015/lib/desy-views/interfaces/accordion-header.data.js +1 -1
- package/esm2015/lib/desy-views/interfaces/accordion-item.data.js +1 -1
- package/esm2015/lib/desy-views/interfaces/alert-options.js +1 -1
- package/esm2015/lib/desy-views/interfaces/description-item.data.js +2 -0
- package/esm2015/lib/desy-views/interfaces/index.js +4 -4
- package/esm2015/lib/desy-views/interfaces/open-alert-result.js +1 -1
- package/esm2015/lib/desy-views/interfaces/status-data.js +1 -1
- package/esm2015/lib/desy-views/interfaces/status-icon-data.js +1 -1
- package/esm2015/lib/desy-views/interfaces/status-item-title-data.js +1 -1
- package/esm2015/lib/desy-views/interfaces/tabs-items-data.js +1 -1
- package/esm2015/lib/desy-views/interfaces/tabs-panel-data.js +1 -1
- package/esm2015/lib/desy-views/interfaces/term-definition.data.js +2 -0
- package/esm2015/lib/desy-views/services/alert.service.js +1 -1
- package/esm2015/lib/shared/components/accessibility/accessibility.component.js +1 -1
- package/esm2015/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.js +27 -0
- package/esm2015/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.js +1 -1
- package/esm2015/lib/shared/components/content-base/content-base.component.js +20 -0
- package/esm2015/lib/shared/components/index.js +3 -1
- package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js +1 -1
- package/esm2015/lib/shared/decorators/desy-content-child.decorator.js +41 -0
- package/esm2015/lib/shared/decorators/desy-on-input-change.decorator.js +19 -0
- package/esm2015/lib/shared/directives/attribute-change.directive.js +43 -0
- package/esm2015/lib/shared/directives/click-outside.directive.js +1 -1
- package/esm2015/lib/shared/directives/content-change.directive.js +43 -0
- package/esm2015/lib/shared/directives/content-empty.directive.js +86 -0
- package/esm2015/lib/shared/directives/custom-inner-content.directive.js +62 -0
- package/esm2015/lib/shared/directives/inner-content.directive.js +5 -3
- package/esm2015/lib/shared/interfaces/accesibility-data.js +1 -1
- package/esm2015/lib/shared/pipes/external-href.pipe.js +28 -0
- package/esm2015/lib/shared/pipes/inner-html.pipe.js +1 -1
- package/esm2015/lib/shared/pipes/make-html-list.pipe.js +1 -1
- package/esm2015/lib/shared/shared.module.js +23 -4
- package/esm2015/lib/shared/utils/focus-utils.js +1 -1
- package/esm2015/lib/shared/utils/search-utils.js +1 -1
- package/esm2015/lib/shared/utils/string-utils.js +18 -0
- package/esm2015/public-api.js +88 -29
- package/fesm2015/desy-angular.js +5759 -2069
- package/fesm2015/desy-angular.js.map +1 -1
- package/lib/desy-buttons/components/button/button.component.d.ts +6 -7
- package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +1 -0
- package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +9 -7
- package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +12 -0
- package/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.d.ts +4 -0
- package/lib/desy-buttons/components/listbox/listbox.component.d.ts +53 -0
- package/lib/desy-buttons/components/pill/pill.component.d.ts +3 -3
- package/lib/desy-buttons/interfaces/listbox-item-data.d.ts +9 -0
- package/lib/{desy-nav/interfaces/notification-title-data.d.ts → desy-buttons/interfaces/listbox-label-data.d.ts} +1 -1
- package/lib/desy-commons/components/content/content.component.d.ts +5 -0
- package/lib/desy-commons/components/description/description.component.d.ts +5 -0
- package/lib/desy-commons/components/icon/icon.component.d.ts +5 -0
- package/lib/desy-commons/components/title/title.component.d.ts +5 -0
- package/lib/desy-commons/desy-commons.module.d.ts +2 -0
- package/lib/{desy-nav/interfaces/notification-content-data.d.ts → desy-commons/interfaces/content-data.d.ts} +1 -1
- package/lib/desy-commons/interfaces/description-data.d.ts +5 -0
- package/lib/desy-commons/interfaces/icon-data.d.ts +4 -0
- package/lib/desy-commons/interfaces/index.d.ts +4 -0
- package/lib/desy-commons/interfaces/title-data.d.ts +6 -0
- package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +47 -0
- package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +53 -15
- package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +22 -0
- package/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.d.ts +7 -0
- package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +4 -0
- package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +22 -0
- package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +19 -0
- package/lib/desy-forms/components/date-input/date-input.component.d.ts +21 -4
- package/lib/desy-forms/components/error-message/error-message.component.d.ts +8 -2
- package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +12 -4
- package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +3 -2
- package/lib/desy-forms/components/form-field/form-field.component.d.ts +7 -18
- package/lib/desy-forms/components/hint/hint.component.d.ts +8 -2
- package/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.d.ts +8 -0
- package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +20 -0
- package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +4 -0
- package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +16 -0
- package/lib/desy-forms/components/input-group/input-group.component.d.ts +24 -6
- package/lib/desy-forms/components/label/label.component.d.ts +12 -5
- package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +43 -0
- package/lib/desy-forms/components/radios/radios.component.d.ts +56 -11
- package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +7 -3
- package/lib/desy-forms/components/select/option/option.component.d.ts +7 -0
- package/lib/desy-forms/components/select/option-group/option-group.component.d.ts +7 -0
- package/lib/desy-forms/components/select/select-item/select-item.component.d.ts +4 -0
- package/lib/desy-forms/components/select/select.component.d.ts +9 -2
- package/lib/desy-forms/interfaces/error-message-data.d.ts +5 -5
- package/lib/desy-forms/interfaces/fieldset-data.d.ts +5 -4
- package/lib/desy-forms/interfaces/hint-data.d.ts +4 -4
- package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +1 -0
- package/lib/desy-forms/interfaces/item-date-input-data.d.ts +3 -0
- package/lib/desy-forms/interfaces/item-divider-date-input-data.d.ts +5 -0
- package/lib/desy-forms/interfaces/item-input-group-data.d.ts +1 -2
- package/lib/desy-forms/interfaces/item-radio-data.d.ts +15 -12
- package/lib/desy-forms/interfaces/legend-data.d.ts +4 -4
- package/lib/desy-forms/interfaces/select-item-data.d.ts +2 -1
- package/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.d.ts +7 -0
- package/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.d.ts +7 -0
- package/lib/desy-modals/components/modal/modal.component.d.ts +27 -2
- package/lib/desy-modals/interfaces/modal-button-data.d.ts +2 -2
- package/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.d.ts +6 -0
- package/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.d.ts +7 -4
- package/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.d.ts +6 -0
- package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +12 -4
- package/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.d.ts +7 -0
- package/lib/desy-nav/components/footer/footer-meta/footer-meta.component.d.ts +10 -0
- package/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.d.ts +7 -0
- package/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.d.ts +8 -0
- package/lib/desy-nav/components/footer/footer.component.d.ts +15 -3
- package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +10 -6
- package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +10 -0
- package/lib/desy-nav/components/header/header-navigation/header-navigation.component.d.ts +6 -2
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +6 -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 +30 -9
- package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +11 -8
- package/lib/desy-nav/components/header/header.component.d.ts +16 -5
- package/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.d.ts +15 -0
- package/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.d.ts +6 -5
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +18 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.d.ts +8 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +15 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +13 -18
- package/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.d.ts +23 -0
- package/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.d.ts +4 -0
- package/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.d.ts +15 -0
- package/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.d.ts +10 -0
- package/lib/desy-nav/components/menubar/directives/menubaritem.directive.d.ts +16 -0
- package/lib/desy-nav/components/menubar/menubar.component.d.ts +88 -0
- package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +17 -0
- package/lib/desy-nav/components/nav/nav.component.d.ts +7 -5
- package/lib/desy-nav/components/notification/notification-item/notification-item.component.d.ts +9 -0
- package/lib/desy-nav/components/notification/notification.component.d.ts +25 -11
- package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +9 -2
- package/lib/desy-nav/interfaces/breadcrumbs.data.d.ts +4 -4
- package/lib/desy-nav/interfaces/error-summary-data.d.ts +4 -4
- package/lib/desy-nav/interfaces/footer-data.d.ts +7 -10
- package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +5 -1
- package/lib/desy-nav/interfaces/header-offcanvas-data.d.ts +0 -1
- package/lib/desy-nav/interfaces/header-subnav-data.d.ts +6 -1
- package/lib/desy-nav/interfaces/index.d.ts +0 -4
- package/lib/desy-nav/interfaces/menu-vertical-items-data.d.ts +15 -13
- package/lib/desy-nav/interfaces/menu-vertical-sub-data.d.ts +3 -4
- package/lib/desy-nav/interfaces/menu-vertical-sub-items-data.d.ts +15 -12
- package/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.d.ts +6 -0
- package/lib/desy-nav/interfaces/menubar-item-sub-item.d.ts +9 -0
- package/lib/desy-nav/interfaces/menubar-item-sub.d.ts +6 -0
- package/lib/desy-nav/interfaces/menubar-item.d.ts +18 -0
- package/lib/desy-nav/interfaces/nav-item.data.d.ts +2 -1
- package/lib/desy-nav/interfaces/notification-items-data.d.ts +8 -5
- package/lib/desy-nav/interfaces/notification-options.d.ts +5 -8
- package/lib/desy-pagination/components/pagination/pagination.component.d.ts +7 -12
- package/lib/desy-tables/components/table/components/table-caption.component.d.ts +4 -0
- package/lib/desy-tables/components/table/components/table-cell.component.d.ts +8 -0
- package/lib/desy-tables/components/table/components/table-header.component.d.ts +5 -0
- package/lib/desy-tables/components/table/components/table-row.component.d.ts +5 -0
- package/lib/desy-tables/components/table/table.component.d.ts +16 -4
- package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +13 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.d.ts +5 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.d.ts +8 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.d.ts +8 -0
- package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +66 -39
- package/lib/desy-tables/directives/cell.directive.d.ts +14 -0
- package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +3 -3
- package/lib/desy-tables/directives/row.directive.d.ts +16 -0
- package/lib/desy-tables/interfaces/head-cell-data.d.ts +2 -2
- package/lib/desy-tables/interfaces/index.d.ts +1 -0
- package/lib/desy-tables/interfaces/recalculate-table-params.d.ts +11 -0
- package/lib/desy-tables/interfaces/row-data.d.ts +1 -0
- package/lib/desy-tables/interfaces/wrapper-data.d.ts +4 -0
- package/lib/desy-views/components/accordion/accordion-header/accordion-header.component.d.ts +5 -0
- package/lib/desy-views/components/accordion/accordion-item/accordion-item.component.d.ts +13 -0
- package/lib/desy-views/components/accordion/accordion.component.d.ts +20 -11
- package/lib/desy-views/components/alert/alert.component.d.ts +6 -4
- package/lib/desy-views/components/collapsible/collapsible.component.d.ts +4 -6
- package/lib/desy-views/components/description-list/definition/definition.component.d.ts +6 -0
- package/lib/desy-views/components/description-list/description-item/description-item.component.d.ts +9 -0
- package/lib/desy-views/components/description-list/description-list.component.d.ts +9 -6
- package/lib/desy-views/components/description-list/term/term.component.d.ts +6 -0
- package/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.d.ts +5 -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 +28 -9
- package/lib/desy-views/components/status-item/status-item.component.d.ts +17 -6
- package/lib/desy-views/components/tabs/panel/panel.component.d.ts +6 -0
- package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +12 -0
- package/lib/desy-views/components/tabs/tabs.component.d.ts +15 -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 +35 -0
- package/lib/desy-views/interfaces/accordion-header.data.d.ts +3 -3
- package/lib/desy-views/interfaces/accordion-item.data.d.ts +8 -8
- package/lib/desy-views/interfaces/description-item.data.d.ts +8 -0
- package/lib/desy-views/interfaces/index.d.ts +3 -3
- package/lib/desy-views/interfaces/tabs-items-data.d.ts +5 -5
- package/lib/desy-views/interfaces/tabs-panel-data.d.ts +4 -4
- package/lib/desy-views/interfaces/term-definition.data.d.ts +7 -0
- package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +26 -0
- package/lib/shared/components/content-base/content-base.component.d.ts +9 -0
- package/lib/shared/components/index.d.ts +2 -0
- package/lib/shared/decorators/desy-content-child.decorator.d.ts +15 -0
- package/lib/shared/decorators/desy-on-input-change.decorator.d.ts +5 -0
- package/lib/shared/directives/attribute-change.directive.d.ts +10 -0
- package/lib/shared/directives/content-change.directive.d.ts +19 -0
- package/lib/shared/directives/content-empty.directive.d.ts +26 -0
- package/lib/shared/directives/custom-inner-content.directive.d.ts +22 -0
- package/lib/shared/directives/inner-content.directive.d.ts +1 -0
- package/lib/shared/pipes/external-href.pipe.d.ts +8 -0
- package/lib/shared/utils/string-utils.d.ts +10 -0
- package/package.json +16 -11
- package/public-api.d.ts +75 -25
- package/esm2015/lib/desy-forms/components/checkboxes/item-checkbox/item-checkbox.component.js +0 -100
- package/esm2015/lib/desy-forms/components/radios/item-radio/item-radio.component.js +0 -89
- package/esm2015/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.js +0 -62
- package/esm2015/lib/desy-nav/interfaces/notification-content-data.js +0 -2
- package/esm2015/lib/desy-nav/interfaces/notification-description-data.js +0 -2
- package/esm2015/lib/desy-nav/interfaces/notification-icon-data.js +0 -2
- package/esm2015/lib/desy-nav/interfaces/notification-title-data.js +0 -2
- package/esm2015/lib/desy-views/interfaces/description.data.js +0 -2
- package/esm2015/lib/desy-views/interfaces/item-data.js +0 -2
- package/esm2015/lib/desy-views/interfaces/item-description.data.js +0 -2
- package/esm2015/lib/shared/utils/navigation-utils.js +0 -18
- package/lib/desy-forms/components/checkboxes/item-checkbox/item-checkbox.component.d.ts +0 -39
- package/lib/desy-forms/components/radios/item-radio/item-radio.component.d.ts +0 -36
- package/lib/desy-nav/components/header/header-offcanvas-button/header-offcanvas-button.component.d.ts +0 -19
- package/lib/desy-nav/interfaces/notification-description-data.d.ts +0 -5
- package/lib/desy-nav/interfaces/notification-icon-data.d.ts +0 -3
- package/lib/desy-views/interfaces/description.data.d.ts +0 -7
- package/lib/desy-views/interfaces/item-data.d.ts +0 -19
- package/lib/desy-views/interfaces/item-description.data.d.ts +0 -8
- package/lib/shared/utils/navigation-utils.d.ts +0 -3
|
@@ -1,20 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, ContentChildren, EventEmitter, forwardRef, Input, Optional, Output, ViewChild } from '@angular/core';
|
|
2
3
|
import { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { LegendComponent } from '../fieldset/legend/legend.component';
|
|
3
5
|
import { FormFieldComponent } from '../form-field/form-field.component';
|
|
6
|
+
import { InputGroupItemComponent } from './input-group-item/input-group-item.component';
|
|
7
|
+
import { DesyOnInputChange } from '../../../shared/decorators/desy-on-input-change.decorator';
|
|
8
|
+
import { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';
|
|
9
|
+
import { FieldsetComponent } from '../fieldset/fieldset.component';
|
|
10
|
+
import { MakeHtmlListPipe } from '../../../shared/pipes/make-html-list.pipe';
|
|
11
|
+
import { InputGroupInputComponent } from './input-group-input/input-group-input.component';
|
|
12
|
+
import { InputGroupSelectComponent } from './input-group-select/input-group-select.component';
|
|
13
|
+
import { InputGroupDividerComponent } from './input-group-divider/input-group-divider.component';
|
|
14
|
+
import { StringUtils } from '../../../shared/utils/string-utils';
|
|
4
15
|
export class InputGroupComponent extends FormFieldComponent {
|
|
5
16
|
constructor(controlContainer) {
|
|
6
17
|
super();
|
|
7
18
|
this.controlContainer = controlContainer;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
this.checkRequired();
|
|
11
|
-
this.onExternalChange();
|
|
19
|
+
this.itemsChange = new EventEmitter();
|
|
20
|
+
this.contentInit = false;
|
|
12
21
|
}
|
|
13
22
|
ngOnChanges() {
|
|
14
|
-
this.checkRequired();
|
|
15
|
-
this.onExternalChange();
|
|
16
|
-
}
|
|
17
|
-
checkRequired() {
|
|
18
23
|
if (!this.id) {
|
|
19
24
|
throw Error('id is required');
|
|
20
25
|
}
|
|
@@ -28,38 +33,110 @@ export class InputGroupComponent extends FormFieldComponent {
|
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
}
|
|
31
|
-
|
|
36
|
+
}
|
|
37
|
+
ngAfterContentInit() {
|
|
38
|
+
this.contentInit = true;
|
|
39
|
+
}
|
|
40
|
+
ngAfterViewChecked() {
|
|
41
|
+
const items = this.getItems();
|
|
42
|
+
if (!items || items.length === 0) {
|
|
32
43
|
throw Error('items are required');
|
|
33
44
|
}
|
|
34
45
|
}
|
|
35
46
|
writeValue(value) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
47
|
+
if (value) {
|
|
48
|
+
this.value = value;
|
|
49
|
+
const items = this.getItems();
|
|
50
|
+
items.forEach(item => {
|
|
51
|
+
const v = this.value[this.getItemName(item)];
|
|
52
|
+
item.value = v ? v : null;
|
|
53
|
+
});
|
|
54
|
+
if (this.items) {
|
|
55
|
+
this.itemsChange.emit(this.items);
|
|
56
|
+
}
|
|
39
57
|
}
|
|
40
58
|
this.onChange(value);
|
|
41
59
|
}
|
|
42
60
|
onExternalChange() {
|
|
61
|
+
if (!this.contentInit) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
43
64
|
if (!this.value) {
|
|
44
65
|
this.value = {};
|
|
45
66
|
}
|
|
46
|
-
|
|
67
|
+
const items = this.getItems();
|
|
68
|
+
items.forEach(item => this.value[this.getItemName(item)] = item.value);
|
|
47
69
|
this.onChange(this.value);
|
|
48
70
|
}
|
|
49
|
-
onInternalChange(
|
|
71
|
+
onInternalChange(item, itemValue) {
|
|
72
|
+
const itemName = this.getItemName(item);
|
|
50
73
|
if (!this.value) {
|
|
51
74
|
this.value = {};
|
|
52
75
|
}
|
|
53
|
-
this.value[itemName]
|
|
54
|
-
|
|
76
|
+
if (this.value[itemName] !== itemValue) {
|
|
77
|
+
this.value[itemName] = itemValue;
|
|
78
|
+
this.onChange(this.value);
|
|
79
|
+
if (item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent) {
|
|
80
|
+
item.valueChange.emit(itemValue);
|
|
81
|
+
}
|
|
82
|
+
if (this.items) {
|
|
83
|
+
item.value = itemValue;
|
|
84
|
+
this.itemsChange.emit(this.items);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
overrideFieldsetParams(fieldset) {
|
|
89
|
+
fieldset.caller = this.innerHtml;
|
|
90
|
+
fieldset.errorId = this.getErrorId();
|
|
91
|
+
fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);
|
|
92
|
+
fieldset.role = 'group';
|
|
93
|
+
fieldset.detectChanges();
|
|
94
|
+
}
|
|
95
|
+
/*
|
|
96
|
+
* Métodos para proporcionar datos
|
|
97
|
+
*/
|
|
98
|
+
getItems() {
|
|
99
|
+
return this.itemsComponents && this.itemsComponents.length ? this.itemsComponents.toArray() : this.items;
|
|
100
|
+
}
|
|
101
|
+
getItemLabelRef(item) {
|
|
102
|
+
return item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent ? item.labelRef : null;
|
|
103
|
+
}
|
|
104
|
+
getItemLabelData(item) {
|
|
105
|
+
return item.labelData ? item.labelData : { text: item.labelText };
|
|
55
106
|
}
|
|
56
107
|
hasFieldset() {
|
|
57
|
-
return !!(this.legendRef || this.fieldsetData
|
|
108
|
+
return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData
|
|
58
109
|
|| (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
|
|
59
110
|
}
|
|
111
|
+
hasFieldsetComponent() {
|
|
112
|
+
return !!this.fieldsetComponent;
|
|
113
|
+
}
|
|
114
|
+
hasLegendComponent() {
|
|
115
|
+
return !!this.legendComponent;
|
|
116
|
+
}
|
|
60
117
|
getItemName(item) {
|
|
61
118
|
return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;
|
|
62
119
|
}
|
|
120
|
+
getItemSelectOptions(item) {
|
|
121
|
+
return item instanceof InputGroupSelectComponent ?
|
|
122
|
+
item.selectItemComponentList.toArray() : item.selectItems;
|
|
123
|
+
}
|
|
124
|
+
getItemDividerTemplate(item) {
|
|
125
|
+
return item.divider instanceof InputGroupDividerComponent ? item.divider.dividerContent : null;
|
|
126
|
+
}
|
|
127
|
+
getItemDividerHtml(item) {
|
|
128
|
+
return item.divider.html ? item.divider.html : `<p>${StringUtils.escapeHtml(item.divider.text)}</p>`;
|
|
129
|
+
}
|
|
130
|
+
isSelectItem(item) {
|
|
131
|
+
let hasSelectItems;
|
|
132
|
+
if (item instanceof InputGroupSelectComponent) {
|
|
133
|
+
hasSelectItems = item.selectItemComponentList && item.selectItemComponentList.length > 0;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
hasSelectItems = item.selectItems;
|
|
137
|
+
}
|
|
138
|
+
return item.isSelect && hasSelectItems;
|
|
139
|
+
}
|
|
63
140
|
hasItemLabel(item) {
|
|
64
141
|
return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);
|
|
65
142
|
}
|
|
@@ -67,7 +144,7 @@ export class InputGroupComponent extends FormFieldComponent {
|
|
|
67
144
|
InputGroupComponent.decorators = [
|
|
68
145
|
{ type: Component, args: [{
|
|
69
146
|
selector: 'desy-input-group',
|
|
70
|
-
template: "\r\n<!-- Divider no forma parte del formulario, por lo que es reutilizable en cualquier caso -->\r\n<ng-template #itemDivider let-item=\"item\" let-mode=\"mode\">\r\n <div *ngIf=\"item.divider.html; else notHtml\" [ngClass]=\"item.divider.classes\" role=\"separator\" [innerHTML]=\"item.divider.html\"></div>\r\n <ng-template #notHtml>\r\n <div [ngClass]=\"item.divider.classes\" role=\"separator\" >\r\n <p>{{item.divider.text}}</p>\r\n </div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n\r\n <!-- Reactive forms -->\r\n <div *ngIf=\"controlContainer && !ngModelGroup\"\r\n [formGroup]=\"controlContainer.control\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [items]=\"item.selectItems\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Template-driven forms -->\r\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\r\n <div [ngModelGroup]=\"ngModelGroup\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\r\n [items]=\"item.selectItems\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </desy-template-driven-wrapper>\r\n\r\n <!-- With ngModel-->\r\n <div *ngIf=\"!controlContainer\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngFor=\"let item of items; index as i\">\r\n <ng-container *ngTemplateOutlet=\"item.isSelect && item.selectItems ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [items]=\"item.selectItems\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelData]=\"item.labelData ? item.labelData : {text: item.labelText}\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [errorId]=\"item.hasErrors ? getErrorId() : null\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item.name, $event)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error' : (hasErrorsMessage() || formGroupClasses == 'c-form-group--error')}\">\r\n\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"></desy-fieldset>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n</div>\r\n",
|
|
147
|
+
template: "\r\n<!-- Divider no forma parte del formulario, por lo que es reutilizable en cualquier caso -->\r\n<ng-template #itemDivider let-item=\"item\">\r\n <div role=\"separator\" [ngClass]=\"item.divider.classes\">\r\n <ng-container *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #innerHtml>\r\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\r\n <desy-hint *ngIf=\"!hintRef && hintData\"\r\n [id]=\"getHintId()\"\r\n [text]=\"hintData.text\"\r\n [html]=\"hintData.html\"\r\n [classes]=\"hintData.classes\"\r\n [role]=\"hintData.role\"\r\n [ariaLabel]=\"hintData.ariaLabel\"\r\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\r\n [ariaHidden]=\"hintData.ariaHidden\"\r\n [ariaDisabled]=\"hintData.ariaDisabled\"\r\n [ariaControls]=\"hintData.ariaControls\"\r\n [ariaCurrent]=\"hintData.ariaCurrent\"\r\n [ariaLive]=\"hintData.ariaLive\"\r\n [ariaExpanded]=\"hintData.ariaExpanded\"\r\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\r\n [tabindex]=\"hintData.tabindex\"></desy-hint>\r\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\" [text]=\"hintText\" [id]=\"getHintId()\"></desy-hint>\r\n\r\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\r\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\r\n [id]=\"getErrorId()\"\r\n [text]=\"errorMessageData.text\"\r\n [html]=\"errorMessageData.html\"\r\n [classes]=\"errorMessageData.classes\"\r\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\r\n [role]=\"errorMessageData.role\"\r\n [ariaLabel]=\"errorMessageData.ariaLabel\"\r\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\r\n [ariaHidden]=\"errorMessageData.ariaHidden\"\r\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\r\n [ariaControls]=\"errorMessageData.ariaControls\"\r\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\r\n [ariaLive]=\"errorMessageData.ariaLive\"\r\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\r\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\r\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\r\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\r\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\r\n [text]=\"errorMessageText\" [id]=\"getErrorId()\"></desy-error-message>\r\n\r\n <!-- Reactive forms -->\r\n <div *ngIf=\"controlContainer && !ngModelGroup\"\r\n [formGroup]=\"controlContainer.control\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [items]=\"getItemSelectOptions(item)\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [formControlName]=\"getItemName(item)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n\r\n <!-- Template-driven forms -->\r\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\r\n <div [ngModelGroup]=\"ngModelGroup\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\r\n [items]=\"getItemSelectOptions(item)\"\r\n\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </desy-template-driven-wrapper>\r\n\r\n <!-- With ngModel-->\r\n <div *ngIf=\"!controlContainer\"\r\n [ngClass]=\"classes ? classes : 'flex'\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n\r\n <ng-container *ngFor=\"let item of getItems(); index as i\">\r\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\r\n <ng-template #itemSelect>\r\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [items]=\"getItemSelectOptions(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-select>\r\n </ng-template>\r\n <ng-template #itemInput>\r\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\r\n [labelRef]=\"getItemLabelRef(item)\"\r\n [labelData]=\"getItemLabelData(item)\"\r\n [classes]=\"['mb-0', item.classes] | makeHtmlList\"\r\n [formGroupClasses]=\"item.formGroupClasses\"\r\n [name]=\"getItemName(item)\"\r\n [ngModel]=\"item.value\" (ngModelChange)=\"onInternalChange(item, $event)\"\r\n [type]=\"item.type ? item.type : 'text'\"\r\n [inputmode]=\"item.inputmode\"\r\n [autocomplete]=\"item.autocomplete\"\r\n [pattern]=\"item.pattern\"\r\n [placeholder]=\"item.placeholder\"\r\n\r\n [maxlength]=\"item.maxlength\"\r\n [role]=\"item.role\"\r\n [ariaLabel]=\"item.ariaLabel\"\r\n [ariaDescribedBy]=\"item.ariaDescribedBy\"\r\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\r\n [ariaHidden]=\"item.ariaHidden\"\r\n [ariaDisabled]=\"item.ariaDisabled\"\r\n [ariaControls]=\"item.ariaControls\"\r\n [ariaCurrent]=\"item.ariaCurrent\"\r\n [ariaLive]=\"item.ariaLive\"\r\n [ariaExpanded]=\"item.ariaExpanded\"\r\n [ariaErrorMessage]=\"item.ariaErrorMessage\"\r\n [ariaHasPopup]=\"item.ariaHasPopup\"\r\n [tabindex]=\"item.tabindex\"></desy-input>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error' : (hasErrorsMessage() || formGroupClasses == 'c-form-group--error')}\">\r\n\r\n <ng-container *ngIf=\"hasFieldsetComponent()\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!hasFieldsetComponent()\">\r\n <desy-fieldset *ngIf=\"fieldsetData\"\r\n [classes]=\"fieldsetData.classes\"\r\n [id]=\"fieldsetData.id\"\r\n [legendData]=\"fieldsetData.legend\"\r\n [headingLevel]=\"fieldsetData.headingLevel\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"\r\n [ariaLabel]=\"fieldsetData.ariaLabel\"\r\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\r\n [ariaHidden]=\"fieldsetData.ariaHidden\"\r\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\r\n [ariaControls]=\"fieldsetData.ariaControls\"\r\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\r\n [ariaLive]=\"fieldsetData.ariaLive\"\r\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\r\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\r\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\r\n [legendRef]=\"legendTemplate\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\r\n <ng-template #legendTemplate>\r\n <ng-content select=\"desy-legend\"></ng-content>\r\n </ng-template>\r\n </desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\r\n [legendRef]=\"legendRef\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\r\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"></desy-fieldset>\r\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\r\n [legendText]=\"legendText\"\r\n [caller]=\"innerHtml\"\r\n [errorId]=\"getErrorId()\"\r\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\r\n role=\"group\"></desy-fieldset>\r\n\r\n <ng-container *ngIf=\"!hasFieldset()\">\r\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n",
|
|
71
148
|
providers: [
|
|
72
149
|
{
|
|
73
150
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -83,6 +160,7 @@ InputGroupComponent.ctorParameters = () => [
|
|
|
83
160
|
InputGroupComponent.propDecorators = {
|
|
84
161
|
ngModelGroup: [{ type: Input }],
|
|
85
162
|
items: [{ type: Input }],
|
|
163
|
+
itemsChange: [{ type: Output }],
|
|
86
164
|
namePrefix: [{ type: Input }],
|
|
87
165
|
classes: [{ type: Input }],
|
|
88
166
|
formGroupClasses: [{ type: Input }],
|
|
@@ -91,6 +169,22 @@ InputGroupComponent.propDecorators = {
|
|
|
91
169
|
fieldsetData: [{ type: Input }],
|
|
92
170
|
legendRef: [{ type: Input }],
|
|
93
171
|
legendData: [{ type: Input }],
|
|
94
|
-
legendText: [{ type: Input }]
|
|
172
|
+
legendText: [{ type: Input }],
|
|
173
|
+
itemsComponents: [{ type: ContentChildren, args: [InputGroupItemComponent,] }],
|
|
174
|
+
fieldsetComponent: [{ type: ContentChildren, args: [FieldsetComponent,] }],
|
|
175
|
+
legendComponent: [{ type: ContentChildren, args: [LegendComponent,] }],
|
|
176
|
+
innerHtml: [{ type: ViewChild, args: ['innerHtml', { static: true },] }]
|
|
95
177
|
};
|
|
96
|
-
|
|
178
|
+
__decorate([
|
|
179
|
+
DesyOnInputChange('onExternalChange')
|
|
180
|
+
], InputGroupComponent.prototype, "items", void 0);
|
|
181
|
+
__decorate([
|
|
182
|
+
DesyOnInputChange('onExternalChange')
|
|
183
|
+
], InputGroupComponent.prototype, "namePrefix", void 0);
|
|
184
|
+
__decorate([
|
|
185
|
+
DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' })
|
|
186
|
+
], InputGroupComponent.prototype, "fieldsetComponent", void 0);
|
|
187
|
+
__decorate([
|
|
188
|
+
DesyContentChild()
|
|
189
|
+
], InputGroupComponent.prototype, "legendComponent", void 0);
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQUUsWUFBWSxFQUM3QixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFBRSxNQUFNLEVBRUgsU0FBUyxFQUN2QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDL0YsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBYS9ELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxr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WUFyTUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGtnbkJBQTJDO2dCQUMzQyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzt3QkFDbEQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O1lBdkJRLGdCQUFnQix1QkErRFYsUUFBUTs7OzJCQXJDcEIsS0FBSztvQkFHTCxLQUFLOzBCQUNMLE1BQU07eUJBR04sS0FBSztzQkFDTCxLQUFLOytCQUNMLEtBQUs7MkJBQ0wsS0FBSztpQkFDTCxLQUFLOzJCQVNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7OEJBRUwsZUFBZSxTQUFDLHVCQUF1QjtnQ0FHdkMsZUFBZSxTQUFDLGlCQUFpQjs4QkFHakMsZUFBZSxTQUFDLGVBQWU7d0JBRS9CLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQTlCL0I7SUFEUixpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQztrREFDRDtBQUk1QjtJQURSLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDO3VEQUNWO0FBcUJRO0lBRG5DLGdCQUFnQixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUMsQ0FBQzs4REFDUTtBQUd2QztJQURqQyxnQkFBZ0IsRUFBRTs0REFDZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9wdGlvbmFsLCBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGaWVsZHNldERhdGEsIExlZ2VuZERhdGEsIEl0ZW1JbnB1dEdyb3VwRGF0YSwgTGFiZWxEYXRhLCBTZWxlY3RJdGVtRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZHNldC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0lucHV0R3JvdXBJdGVtQ29tcG9uZW50fSBmcm9tICcuL2lucHV0LWdyb3VwLWl0ZW0vaW5wdXQtZ3JvdXAtaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Rlc3lPbklucHV0Q2hhbmdlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LW9uLWlucHV0LWNoYW5nZS5kZWNvcmF0b3InO1xyXG5pbXBvcnQge0Rlc3lDb250ZW50Q2hpbGR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xyXG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tICcuLi9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xyXG5pbXBvcnQge01ha2VIdG1sTGlzdFBpcGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy9tYWtlLWh0bWwtbGlzdC5waXBlJztcclxuaW1wb3J0IHtJbnB1dEdyb3VwSW5wdXRDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtZ3JvdXAtaW5wdXQvaW5wdXQtZ3JvdXAtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtJbnB1dEdyb3VwU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuL2lucHV0LWdyb3VwLXNlbGVjdC9pbnB1dC1ncm91cC1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHtJbnB1dEdyb3VwRGl2aWRlckNvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1ncm91cC1kaXZpZGVyL2lucHV0LWdyb3VwLWRpdmlkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3N0cmluZy11dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktaW5wdXQtZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dEdyb3VwQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEdyb3VwQ29tcG9uZW50IGV4dGVuZHMgRm9ybUZpZWxkQ29tcG9uZW50PGFueT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xyXG5cclxuICBASW5wdXQoKSBuZ01vZGVsR3JvdXA6IHN0cmluZztcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbkV4dGVybmFsQ2hhbmdlJylcclxuICBASW5wdXQoKSBpdGVtczogSXRlbUlucHV0R3JvdXBEYXRhW107XHJcbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SXRlbUlucHV0R3JvdXBEYXRhW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxJdGVtSW5wdXRHcm91cERhdGFbXT4oKTtcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbkV4dGVybmFsQ2hhbmdlJylcclxuICBASW5wdXQoKSBuYW1lUHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cENsYXNzZXM6IGFueTtcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxyXG4gICAqIDEpIGluY2x1aXIgb2JqZXRvIEZpZWxkc2V0RGF0YSAoaW50ZXJmYXogZXhwdWVzdGEpXHJcbiAgICogMikgaW5jbHVpciB0ZW1wbGF0ZSBsZWdlbmRcclxuICAgKiAzKSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxyXG4gICAqIDQpIGluY2x1aXIgbGVnZW5kVGV4dCAtIGluY2x1aXIgdW4gZmllbGRzZXQgY29uIHVuIHRleHRvIGVuIGxhIGxlZ2VuZGFcclxuICAgKi9cclxuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcclxuICBASW5wdXQoKSBsZWdlbmRSZWY6IFRlbXBsYXRlUmVmPExlZ2VuZENvbXBvbmVudD47XHJcbiAgQElucHV0KCkgbGVnZW5kRGF0YTogTGVnZW5kRGF0YTtcclxuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oSW5wdXRHcm91cEl0ZW1Db21wb25lbnQpIGl0ZW1zQ29tcG9uZW50czogUXVlcnlMaXN0PElucHV0R3JvdXBJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcclxuICBAQ29udGVudENoaWxkcmVuKEZpZWxkc2V0Q29tcG9uZW50KSBmaWVsZHNldENvbXBvbmVudDogRmllbGRzZXRDb21wb25lbnQ7XHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKClcclxuICBAQ29udGVudENoaWxkcmVuKExlZ2VuZENvbXBvbmVudCkgbGVnZW5kQ29tcG9uZW50OiBMZWdlbmRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lubmVySHRtbCcsIHsgc3RhdGljOiB0cnVlIH0pIGlubmVySHRtbDogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgcHJpdmF0ZSBjb250ZW50SW5pdCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlkKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdpZCBpcyByZXF1aXJlZCcpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXRlbXMpIHtcclxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcclxuICAgICAgICBpZiAoIWl0ZW0uZGl2aWRlciAmJiAhaXRlbS5uYW1lKSB7XHJcbiAgICAgICAgICB0aHJvdyBFcnJvcignaXRlbSBuYW1lIGlzIHJlcXVpcmVkJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghaXRlbS5kaXZpZGVyICYmICF0aGlzLmhhc0l0ZW1MYWJlbChpdGVtKSkge1xyXG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ2l0ZW0gbGFiZWwgaXMgcmVxdWlyZWQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udGVudEluaXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1zKCk7XHJcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aHJvdyBFcnJvcignaXRlbXMgYXJlIHJlcXVpcmVkJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xyXG4gICAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldO1xyXG4gICAgICAgIGl0ZW0udmFsdWUgPSB2ID8gdiA6IG51bGw7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcclxuICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25FeHRlcm5hbENoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jb250ZW50SW5pdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcclxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldID0gaXRlbS52YWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25JbnRlcm5hbENoYW5nZShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEsIGl0ZW1WYWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zdCBpdGVtTmFtZSA9IHRoaXMuZ2V0SXRlbU5hbWUoaXRlbSk7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlW2l0ZW1OYW1lXSAhPT0gaXRlbVZhbHVlKSB7XHJcbiAgICAgIHRoaXMudmFsdWVbaXRlbU5hbWVdID0gaXRlbVZhbHVlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG5cclxuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwSW5wdXRDb21wb25lbnQgfHwgaXRlbSBpbnN0YW5jZW9mIElucHV0R3JvdXBTZWxlY3RDb21wb25lbnQpIHtcclxuICAgICAgICBpdGVtLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbVZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcclxuICAgICAgICBpdGVtLnZhbHVlID0gaXRlbVZhbHVlO1xyXG4gICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyhmaWVsZHNldDogRmllbGRzZXRDb21wb25lbnQpOiB2b2lkIHtcclxuICAgIGZpZWxkc2V0LmNhbGxlciA9IHRoaXMuaW5uZXJIdG1sO1xyXG4gICAgZmllbGRzZXQuZXJyb3JJZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xyXG4gICAgZmllbGRzZXQuZGVzY3JpYmVkQnkgPSBuZXcgTWFrZUh0bWxMaXN0UGlwZSgpLnRyYW5zZm9ybShbdGhpcy5nZXRIaW50SWQoKSwgdGhpcy5nZXRFcnJvcklkKCldLCBudWxsKTtcclxuICAgIGZpZWxkc2V0LnJvbGUgPSAnZ3JvdXAnO1xyXG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBNw6l0b2RvcyBwYXJhIHByb3BvcmNpb25hciBkYXRvc1xyXG4gICAqL1xyXG4gIGdldEl0ZW1zKCk6IEl0ZW1JbnB1dEdyb3VwRGF0YVtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zQ29tcG9uZW50cyAmJiB0aGlzLml0ZW1zQ29tcG9uZW50cy5sZW5ndGggPyB0aGlzLml0ZW1zQ29tcG9uZW50cy50b0FycmF5KCkgOiB0aGlzLml0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUxhYmVsUmVmKGl0ZW06IEl0ZW1JbnB1dEdyb3VwRGF0YSk6IFRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwSW5wdXRDb21wb25lbnQgfHwgaXRlbSBpbnN0YW5jZW9mIElucHV0R3JvdXBTZWxlY3RDb21wb25lbnQgPyBpdGVtLmxhYmVsUmVmIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1MYWJlbERhdGEoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogTGFiZWxEYXRhIHtcclxuICAgIHJldHVybiBpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhIDogeyB0ZXh0OiBpdGVtLmxhYmVsVGV4dCB9O1xyXG4gIH1cclxuXHJcbiAgaGFzRmllbGRzZXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISEodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpIHx8IHRoaXMuaGFzTGVnZW5kQ29tcG9uZW50KCkgfHwgdGhpcy5sZWdlbmRSZWYgfHwgdGhpcy5maWVsZHNldERhdGFcclxuICAgICAgfHwgKHRoaXMubGVnZW5kRGF0YSAmJiAodGhpcy5sZWdlbmREYXRhLnRleHQgfHwgdGhpcy5sZWdlbmREYXRhLmh0bWwpKSB8fCB0aGlzLmxlZ2VuZFRleHQpO1xyXG4gIH1cclxuXHJcbiAgaGFzRmllbGRzZXRDb21wb25lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmZpZWxkc2V0Q29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgaGFzTGVnZW5kQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5sZWdlbmRDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtTmFtZShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubmFtZVByZWZpeCA/IHRoaXMubmFtZVByZWZpeCArICctJyArIGl0ZW0ubmFtZSA6IGl0ZW0ubmFtZTtcclxuICB9XHJcblxyXG4gIGdldEl0ZW1TZWxlY3RPcHRpb25zKGl0ZW06IEl0ZW1JbnB1dEdyb3VwRGF0YSk6IFNlbGVjdEl0ZW1EYXRhW10ge1xyXG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwU2VsZWN0Q29tcG9uZW50ID9cclxuICAgICAgaXRlbS5zZWxlY3RJdGVtQ29tcG9uZW50TGlzdC50b0FycmF5KCkgOiBpdGVtLnNlbGVjdEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbURpdmlkZXJUZW1wbGF0ZShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiBpdGVtLmRpdmlkZXIgaW5zdGFuY2VvZiBJbnB1dEdyb3VwRGl2aWRlckNvbXBvbmVudCA/IGl0ZW0uZGl2aWRlci5kaXZpZGVyQ29udGVudCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtRGl2aWRlckh0bWwoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpdGVtLmRpdmlkZXIuaHRtbCA/IGl0ZW0uZGl2aWRlci5odG1sIDogYDxwPiR7IFN0cmluZ1V0aWxzLmVzY2FwZUh0bWwoaXRlbS5kaXZpZGVyLnRleHQpIH08L3A+YDtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0SXRlbShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBib29sZWFuIHtcclxuICAgIGxldCBoYXNTZWxlY3RJdGVtcztcclxuICAgIGlmIChpdGVtIGluc3RhbmNlb2YgSW5wdXRHcm91cFNlbGVjdENvbXBvbmVudCkge1xyXG4gICAgICBoYXNTZWxlY3RJdGVtcyA9IGl0ZW0uc2VsZWN0SXRlbUNvbXBvbmVudExpc3QgJiYgaXRlbS5zZWxlY3RJdGVtQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaGFzU2VsZWN0SXRlbXMgPSBpdGVtLnNlbGVjdEl0ZW1zO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW0uaXNTZWxlY3QgJiYgaGFzU2VsZWN0SXRlbXM7XHJcbiAgfVxyXG5cclxuICBoYXNJdGVtTGFiZWwoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISEoKGl0ZW0ubGFiZWxEYXRhICYmIChpdGVtLmxhYmVsRGF0YS50ZXh0IHx8IGl0ZW0ubGFiZWxEYXRhLmh0bWwpKSB8fCBpdGVtLmxhYmVsVGV4dCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,17 +1,30 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
export class LabelComponent extends
|
|
1
|
+
import { ChangeDetectorRef, Component, Input } from '@angular/core';
|
|
2
|
+
import { AccessibilityComponent } from '../../../shared/components';
|
|
3
|
+
export class LabelComponent extends AccessibilityComponent {
|
|
4
|
+
constructor(changeDetectorRef) {
|
|
5
|
+
super();
|
|
6
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
7
|
+
}
|
|
8
|
+
detectChanges() {
|
|
9
|
+
this.changeDetectorRef.detectChanges();
|
|
10
|
+
}
|
|
4
11
|
}
|
|
5
12
|
LabelComponent.decorators = [
|
|
6
13
|
{ type: Component, args: [{
|
|
7
14
|
selector: 'desy-label',
|
|
8
|
-
template: "<ng-template #labelTemplate>\r\n
|
|
15
|
+
template: "<ng-template #labelTemplate>\r\n <label [desyInnerContent]=\"html ? html : text\" [isHtml]=\"html\" [deleteContentIfEmpty]=\"false\"\r\n [class]=\"'block' + (classes ? ' ' + classes : '')\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.for]=\"for ? for : null\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-content></ng-content></label>\r\n</ng-template>\r\n<!-- label -->\r\n<ng-container *ngIf=\"isPageHeading; else elseBlock\" class=\"block\">\r\n <ng-container [ngSwitch]=\"headingLevel\">\r\n <h1 *ngSwitchCase=\"1\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h1>\r\n <h2 *ngSwitchCase=\"2\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h2>\r\n <h3 *ngSwitchCase=\"3\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h3>\r\n <h4 *ngSwitchCase=\"4\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h4>\r\n <h5 *ngSwitchCase=\"5\" class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h5>\r\n <h1 *ngSwitchDefault class=\"block\">\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n </h1>\r\n </ng-container>\r\n</ng-container>\r\n<ng-template #elseBlock>\r\n <ng-container *ngTemplateOutlet=\"labelTemplate\"></ng-container>\r\n</ng-template>\r\n<!-- /label -->\r\n\r\n\r\n"
|
|
9
16
|
},] }
|
|
10
17
|
];
|
|
18
|
+
LabelComponent.ctorParameters = () => [
|
|
19
|
+
{ type: ChangeDetectorRef }
|
|
20
|
+
];
|
|
11
21
|
LabelComponent.propDecorators = {
|
|
12
|
-
|
|
13
|
-
isPageHeading: [{ type: Input }],
|
|
22
|
+
id: [{ type: Input }],
|
|
14
23
|
classes: [{ type: Input }],
|
|
15
|
-
|
|
24
|
+
html: [{ type: Input }],
|
|
25
|
+
text: [{ type: Input }],
|
|
26
|
+
isPageHeading: [{ type: Input }],
|
|
27
|
+
headingLevel: [{ type: Input }],
|
|
28
|
+
for: [{ type: Input }]
|
|
16
29
|
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQU9sRSxNQUFNLE9BQU8sY0FBZSxTQUFRLHNCQUFzQjtJQVV4RCxZQUFvQixpQkFBb0M7UUFDdEQsS0FBSyxFQUFFLENBQUM7UUFEVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRXhELENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7WUFwQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0Qixxd0VBQXFDO2FBQ3RDOzs7WUFQTyxpQkFBaUI7OztpQkFVdEIsS0FBSztzQkFDTCxLQUFLO21CQUNMLEtBQUs7bUJBQ0wsS0FBSzs0QkFDTCxLQUFLOzJCQUNMLEtBQUs7a0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0FjY2Vzc2liaWxpdHlDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktbGFiZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYWJlbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExhYmVsQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGh0bWw6IHN0cmluZztcclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaXNQYWdlSGVhZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoZWFkaW5nTGV2ZWw6IG51bWJlcjtcclxuICBASW5wdXQoKSBmb3I6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, Host, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { ContentBaseComponent } from '../../../../shared/components';
|
|
3
|
+
import { LabelComponent } from '../../label/label.component';
|
|
4
|
+
import { ContentComponent } from '../../../../desy-commons/components/content/content.component';
|
|
5
|
+
import { RadiosComponent } from '../radios.component';
|
|
6
|
+
import { animate, animateChild, query, state, style, transition, trigger } from '@angular/animations';
|
|
7
|
+
import { HintComponent } from '../../hint/hint.component';
|
|
8
|
+
export class RadioItemComponent extends ContentBaseComponent {
|
|
9
|
+
constructor(radios, changeDetectorRef) {
|
|
10
|
+
super();
|
|
11
|
+
this.radios = radios;
|
|
12
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
13
|
+
this.checkedChange = new EventEmitter();
|
|
14
|
+
this.index = 0;
|
|
15
|
+
if (!this.radios) {
|
|
16
|
+
throw Error('Radios items must be inside of RadiosComponent');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
ngOnInit() {
|
|
20
|
+
this.radios.markForUpdateCheckboxIds();
|
|
21
|
+
}
|
|
22
|
+
ngOnDestroy() {
|
|
23
|
+
this.radios.markForUpdateCheckboxIds();
|
|
24
|
+
}
|
|
25
|
+
ngOnChanges(changes) {
|
|
26
|
+
if (!this.value && !this.divider) {
|
|
27
|
+
throw Error('value or divider are required for checkbox item');
|
|
28
|
+
}
|
|
29
|
+
if (this.checked !== this.lastChecked && this.isInit()) {
|
|
30
|
+
this.setChecked(this.checked);
|
|
31
|
+
this.radios.updateValueFromRadioItems();
|
|
32
|
+
}
|
|
33
|
+
else if (this.lastValue !== undefined && this.lastValue !== this.value) {
|
|
34
|
+
this.radios.updateValueFromRadioItems();
|
|
35
|
+
}
|
|
36
|
+
this.lastValue = this.value;
|
|
37
|
+
if (this.id !== this.radioId) {
|
|
38
|
+
this.radios.markForUpdateCheckboxIds();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
ngAfterViewInit() {
|
|
42
|
+
this.setChecked(this.checked);
|
|
43
|
+
this.radios.updateValueFromRadioItems();
|
|
44
|
+
}
|
|
45
|
+
setChecked(checked) {
|
|
46
|
+
this.checked = checked;
|
|
47
|
+
this.lastChecked = checked;
|
|
48
|
+
this.checkedChange.emit(checked);
|
|
49
|
+
this.changeDetectorRef.detectChanges();
|
|
50
|
+
}
|
|
51
|
+
/*
|
|
52
|
+
* Funciones para aportar información desde el componente checkboxes que lo contiene
|
|
53
|
+
*/
|
|
54
|
+
getItemHintId() {
|
|
55
|
+
return this.hintComponentList && this.hintComponentList.length > 0 && this.radioId ? this.radioId + '-item-hint' : null;
|
|
56
|
+
}
|
|
57
|
+
hasChanged() {
|
|
58
|
+
this.setChecked(this.isInputChecked());
|
|
59
|
+
this.radios.updateValueFromRadioItems();
|
|
60
|
+
}
|
|
61
|
+
isInit() {
|
|
62
|
+
return !!this.inputElement;
|
|
63
|
+
}
|
|
64
|
+
isInputChecked() {
|
|
65
|
+
return this.inputElement ? this.inputElement.nativeElement.checked : null;
|
|
66
|
+
}
|
|
67
|
+
updateRadioId(index) {
|
|
68
|
+
if (this.id) {
|
|
69
|
+
this.radioId = this.id;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const idPrefix = this.radios.idPrefix ? this.radios.idPrefix : this.radios.name;
|
|
73
|
+
if (index === 0) {
|
|
74
|
+
this.radioId = idPrefix;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.radioId = `${idPrefix}-${index}`;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (this.labelComponentList && this.labelComponentList.length > 0) {
|
|
81
|
+
this.labelComponentList.first.for = this.radioId;
|
|
82
|
+
}
|
|
83
|
+
if (this.hintComponentList && this.hintComponentList.length > 0) {
|
|
84
|
+
this.hintComponentList.first.id = this.getItemHintId();
|
|
85
|
+
}
|
|
86
|
+
this.changeDetectorRef.detectChanges();
|
|
87
|
+
}
|
|
88
|
+
/*
|
|
89
|
+
* Funciones para aportar información desde el componente checkboxes que lo contiene
|
|
90
|
+
*/
|
|
91
|
+
hasDividers() {
|
|
92
|
+
return this.radios.hasDividers;
|
|
93
|
+
}
|
|
94
|
+
hasError() {
|
|
95
|
+
return this.radios.hasErrorsMessage();
|
|
96
|
+
}
|
|
97
|
+
getNameRadio() {
|
|
98
|
+
return this.radios.name;
|
|
99
|
+
}
|
|
100
|
+
getDescribedBy() {
|
|
101
|
+
return !this.radios.hasFieldset() ? this.radios.describedBy : null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
RadioItemComponent.decorators = [
|
|
105
|
+
{ type: Component, args: [{
|
|
106
|
+
selector: 'desy-radio-item',
|
|
107
|
+
template: "<div [ngClass]=\"{'border-t border-b border-neutral-base -mb-px': hasDividers()}\" [class]=\"classes\">\r\n <div *ngIf=\"divider\"><p>{{ divider }}</p></div>\r\n <div *ngIf=\"!divider\">\r\n <div class=\"relative flex items-start py-base\">\r\n <div class=\"flex items-center mx-sm\">\r\n <input #input class=\"w-6 h-6 text-primary-base transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\r\n [attr.id]=\"radioId\"\r\n [attr.name]=\"name ? name : getNameRadio()\"\r\n type=\"radio\"\r\n [value]=\"value\" (change)=\"hasChanged()\"\r\n [checked]=\"checked\"\r\n [attr.disabled]=\"disabled ? true : null\"\r\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + this.radioId : null\"\r\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\r\n [attr.aria-invalid]=\"hasError ? true : null\"\r\n\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n </div>\r\n\r\n <div class=\"pt-0.5 leading-5\">\r\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\r\n <ng-content select=\"desy-label\"></ng-content>\r\n </ng-container>\r\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\r\n <desy-label [for]=\"radioId\">\r\n <ng-content></ng-content>\r\n </desy-label>\r\n </ng-container>\r\n\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && checked\" @displayConditional\r\n class=\"mb-lg ml-5 pt-sm pb-base pl-6 origin-top-left border-l-2 border-primary-base\"\r\n [attr.id]=\"'conditional-' + this.radioId\">\r\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\r\n </div>\r\n</div>\r\n",
|
|
108
|
+
animations: [
|
|
109
|
+
trigger('displayConditional', [
|
|
110
|
+
state('void', style({
|
|
111
|
+
opacity: '0.0',
|
|
112
|
+
transform: 'scale(0.95)'
|
|
113
|
+
})),
|
|
114
|
+
state('*', style({
|
|
115
|
+
opacity: '1.0',
|
|
116
|
+
transform: 'scale(1.0)'
|
|
117
|
+
})),
|
|
118
|
+
transition(':enter', [
|
|
119
|
+
animate('100ms ease-out')
|
|
120
|
+
]),
|
|
121
|
+
transition('* => *', [
|
|
122
|
+
query('@*', animateChild(), { optional: true })
|
|
123
|
+
])
|
|
124
|
+
])
|
|
125
|
+
]
|
|
126
|
+
},] }
|
|
127
|
+
];
|
|
128
|
+
RadioItemComponent.ctorParameters = () => [
|
|
129
|
+
{ type: RadiosComponent, decorators: [{ type: Host }] },
|
|
130
|
+
{ type: ChangeDetectorRef }
|
|
131
|
+
];
|
|
132
|
+
RadioItemComponent.propDecorators = {
|
|
133
|
+
inputElement: [{ type: ViewChild, args: ['input',] }],
|
|
134
|
+
id: [{ type: Input }],
|
|
135
|
+
name: [{ type: Input }],
|
|
136
|
+
value: [{ type: Input }],
|
|
137
|
+
conditional: [{ type: Input }],
|
|
138
|
+
disabled: [{ type: Input }],
|
|
139
|
+
classes: [{ type: Input }],
|
|
140
|
+
divider: [{ type: Input }],
|
|
141
|
+
labelComponentList: [{ type: ContentChildren, args: [LabelComponent,] }],
|
|
142
|
+
hintComponentList: [{ type: ContentChildren, args: [HintComponent,] }],
|
|
143
|
+
conditionalContentList: [{ type: ContentChildren, args: [ContentComponent,] }],
|
|
144
|
+
checked: [{ type: Input }],
|
|
145
|
+
checkedChange: [{ type: Output }]
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvcmFkaW9zL3JhZGlvLWl0ZW0vcmFkaW8taXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixJQUFJLEVBQ0osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBeUJ4RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsb0JBQW9CO0lBd0IxRCxZQUE0QixNQUF1QixFQUFVLGlCQUFvQztRQUMvRixLQUFLLEVBQUUsQ0FBQztRQURrQixXQUFNLEdBQU4sTUFBTSxDQUFpQjtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFQdkYsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRSxVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBT1IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFD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QUU7b0JBQ1YsT0FBTyxDQUFDLG9CQUFvQixFQUFFO3dCQUM1QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzs0QkFDbEIsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsU0FBUyxFQUFFLGFBQWE7eUJBQ3pCLENBQUMsQ0FBQzt3QkFDSCxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQzs0QkFDZixPQUFPLEVBQUUsS0FBSzs0QkFDZCxTQUFTLEVBQUUsWUFBWTt5QkFDeEIsQ0FBQyxDQUFDO3dCQUNILFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzt5QkFDMUIsQ0FBQzt3QkFDRixVQUFVLENBQUMsUUFBUSxFQUFFOzRCQUNuQixLQUFLLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO3lCQUM5QyxDQUFDO3FCQUNILENBQUM7aUJBQ0g7YUFDRjs7O1lBMUJPLGVBQWUsdUJBbURSLElBQUk7WUFwRWpCLGlCQUFpQjs7OzJCQThDaEIsU0FBUyxTQUFDLE9BQU87aUJBRWpCLEtBQUs7bUJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7aUNBRUwsZUFBZSxTQUFDLGNBQWM7Z0NBQzlCLGVBQWUsU0FBQyxhQUFhO3FDQUM3QixlQUFlLFNBQUMsZ0JBQWdCO3NCQUVoQyxLQUFLOzRCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbixcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0l0ZW1SYWRpb0RhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NvbnRlbnRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7TGFiZWxDb21wb25lbnR9IGZyb20gJy4uLy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q29udGVudENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmFkaW9zQ29tcG9uZW50fSBmcm9tICcuLi9yYWRpb3MuY29tcG9uZW50JztcclxuaW1wb3J0IHthbmltYXRlLCBhbmltYXRlQ2hpbGQsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge0hpbnRDb21wb25lbnR9IGZyb20gJy4uLy4uL2hpbnQvaGludC5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1yYWRpby1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmFkaW8taXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignZGlzcGxheUNvbmRpdGlvbmFsJywgW1xyXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMC4wJyxcclxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwLjk1KSdcclxuICAgICAgfSkpLFxyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcclxuICAgICAgICBvcGFjaXR5OiAnMS4wJyxcclxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgxLjApJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBhbmltYXRlKCcxMDBtcyBlYXNlLW91dCcpXHJcbiAgICAgIF0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IConLCBbXHJcbiAgICAgICAgcXVlcnkoJ0AqJywgYW5pbWF0ZUNoaWxkKCksIHtvcHRpb25hbDogdHJ1ZX0pXHJcbiAgICAgIF0pXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJhZGlvSXRlbUNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgSXRlbVJhZGlvRGF0YSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIEBJbnB1dCgpIGNvbmRpdGlvbmFsOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXZpZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oTGFiZWxDb21wb25lbnQpIGxhYmVsQ29tcG9uZW50TGlzdDogUXVlcnlMaXN0PExhYmVsQ29tcG9uZW50PjtcclxuICBAQ29udGVudENoaWxkcmVuKEhpbnRDb21wb25lbnQpIGhpbnRDb21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8SGludENvbXBvbmVudD47XHJcbiAgQENvbnRlbnRDaGlsZHJlbihDb250ZW50Q29tcG9uZW50KSBjb25kaXRpb25hbENvbnRlbnRMaXN0OiBRdWVyeUxpc3Q8Q29udGVudENvbXBvbmVudD47XHJcblxyXG4gIEBJbnB1dCgpIGNoZWNrZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGluZGV4ID0gMDtcclxuICBsYXN0Q2hlY2tlZDtcclxuICBsYXN0VmFsdWU7XHJcbiAgcmFkaW9JZDtcclxuXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIHJhZGlvczogUmFkaW9zQ29tcG9uZW50LCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGlmICghdGhpcy5yYWRpb3MpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1JhZGlvcyBpdGVtcyBtdXN0IGJlIGluc2lkZSBvZiBSYWRpb3NDb21wb25lbnQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yYWRpb3MubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmFkaW9zLm1hcmtGb3JVcGRhdGVDaGVja2JveElkcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnZhbHVlICYmICF0aGlzLmRpdmlkZXIpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ3ZhbHVlIG9yIGRpdmlkZXIgYXJlIHJlcXVpcmVkIGZvciBjaGVja2JveCBpdGVtJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY2hlY2tlZCAhPT0gdGhpcy5sYXN0Q2hlY2tlZCAmJiB0aGlzLmlzSW5pdCgpKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZCh0aGlzLmNoZWNrZWQpO1xyXG4gICAgICB0aGlzLnJhZGlvcy51cGRhdGVWYWx1ZUZyb21SYWRpb0l0ZW1zKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMubGFzdFZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5sYXN0VmFsdWUgIT09IHRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy5yYWRpb3MudXBkYXRlVmFsdWVGcm9tUmFkaW9JdGVtcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sYXN0VmFsdWUgPSB0aGlzLnZhbHVlO1xyXG5cclxuICAgIGlmICh0aGlzLmlkICE9PSB0aGlzLnJhZGlvSWQpIHtcclxuICAgICAgdGhpcy5yYWRpb3MubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldENoZWNrZWQodGhpcy5jaGVja2VkKTtcclxuICAgIHRoaXMucmFkaW9zLnVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWQoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5jaGVja2VkID0gY2hlY2tlZDtcclxuICAgIHRoaXMubGFzdENoZWNrZWQgPSBjaGVja2VkO1xyXG4gICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQoY2hlY2tlZCk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRnVuY2lvbmVzIHBhcmEgYXBvcnRhciBpbmZvcm1hY2nDs24gZGVzZGUgZWwgY29tcG9uZW50ZSBjaGVja2JveGVzIHF1ZSBsbyBjb250aWVuZVxyXG4gICAqL1xyXG5cclxuICBnZXRJdGVtSGludElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5oaW50Q29tcG9uZW50TGlzdCAmJiB0aGlzLmhpbnRDb21wb25lbnRMaXN0Lmxlbmd0aCA+IDAgJiYgdGhpcy5yYWRpb0lkID8gdGhpcy5yYWRpb0lkICsgJy1pdGVtLWhpbnQnIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGhhc0NoYW5nZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldENoZWNrZWQodGhpcy5pc0lucHV0Q2hlY2tlZCgpKTtcclxuICAgIHRoaXMucmFkaW9zLnVwZGF0ZVZhbHVlRnJvbVJhZGlvSXRlbXMoKTtcclxuICB9XHJcblxyXG4gIGlzSW5pdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuaW5wdXRFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgaXNJbnB1dENoZWNrZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQgPyB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmFkaW9JZChpbmRleD86IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5yYWRpb0lkID0gdGhpcy5pZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGlkUHJlZml4ID0gdGhpcy5yYWRpb3MuaWRQcmVmaXggPyB0aGlzLnJhZGlvcy5pZFByZWZpeCA6IHRoaXMucmFkaW9zLm5hbWU7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMucmFkaW9JZCA9IGlkUHJlZml4O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmFkaW9JZCA9IGAke2lkUHJlZml4fS0ke2luZGV4fWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYWJlbENvbXBvbmVudExpc3QgJiYgdGhpcy5sYWJlbENvbXBvbmVudExpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmxhYmVsQ29tcG9uZW50TGlzdC5maXJzdC5mb3IgPSB0aGlzLnJhZGlvSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaGludENvbXBvbmVudExpc3QgJiYgdGhpcy5oaW50Q29tcG9uZW50TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGludENvbXBvbmVudExpc3QuZmlyc3QuaWQgPSB0aGlzLmdldEl0ZW1IaW50SWQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgKiBGdW5jaW9uZXMgcGFyYSBhcG9ydGFyIGluZm9ybWFjacOzbiBkZXNkZSBlbCBjb21wb25lbnRlIGNoZWNrYm94ZXMgcXVlIGxvIGNvbnRpZW5lXHJcbiAgKi9cclxuXHJcbiAgaGFzRGl2aWRlcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yYWRpb3MuaGFzRGl2aWRlcnM7XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvcy5oYXNFcnJvcnNNZXNzYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXROYW1lUmFkaW8oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJhZGlvcy5uYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAhdGhpcy5yYWRpb3MuaGFzRmllbGRzZXQoKSA/IHRoaXMucmFkaW9zLmRlc2NyaWJlZEJ5IDogbnVsbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|