desy-angular 2.0.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -20
- package/bundles/desy-angular.umd.js +8742 -4678
- 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 +34 -21
- package/desy-angular.metadata.json +1 -1
- package/esm2015/desy-angular.js +35 -22
- package/esm2015/lib/desy-angular.module.js +38 -35
- package/esm2015/lib/desy-buttons/components/button/button.component.js +92 -103
- package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +50 -45
- package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +108 -49
- 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 +23 -0
- package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +275 -0
- package/esm2015/lib/desy-buttons/components/pill/pill.component.js +64 -66
- package/esm2015/lib/desy-buttons/desy-buttons.module.js +44 -33
- 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 +124 -124
- 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 +235 -128
- 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 +228 -123
- package/esm2015/lib/desy-forms/components/error-message/error-message.component.js +28 -16
- package/esm2015/lib/desy-forms/components/fieldset/fieldset.component.js +44 -21
- package/esm2015/lib/desy-forms/components/fieldset/legend/legend.component.js +16 -15
- package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +59 -59
- package/esm2015/lib/desy-forms/components/form-field/form-field.component.js +103 -65
- package/esm2015/lib/desy-forms/components/hint/hint.component.js +27 -15
- package/esm2015/lib/desy-forms/components/input/input.component.js +58 -59
- 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 +190 -96
- package/esm2015/lib/desy-forms/components/label/label.component.js +30 -17
- 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 +242 -56
- package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +57 -47
- 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 +74 -59
- package/esm2015/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.js +12 -12
- package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +67 -67
- package/esm2015/lib/desy-forms/desy-forms.module.js +116 -79
- package/esm2015/lib/desy-forms/directives/condition.directive.js +35 -35
- package/esm2015/lib/desy-forms/interfaces/accesibility-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/error-message-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/fieldset-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/hint-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/index.js +13 -13
- package/esm2015/lib/desy-forms/interfaces/item-checkbox-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/item-date-input-data.js +2 -2
- 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 +2 -2
- package/esm2015/lib/desy-forms/interfaces/item-input-group-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/item-radio-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/item-radio-with-template-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/label-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/legend-data.js +2 -2
- package/esm2015/lib/desy-forms/interfaces/select-item-data.js +2 -2
- package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +127 -127
- 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 +144 -59
- package/esm2015/lib/desy-modals/desy-modals.module.js +35 -29
- package/esm2015/lib/desy-modals/interfaces/dialog-options.js +2 -2
- package/esm2015/lib/desy-modals/interfaces/index.js +8 -8
- package/esm2015/lib/desy-modals/interfaces/modal-button-data.js +2 -2
- package/esm2015/lib/desy-modals/interfaces/modal-data.js +2 -2
- package/esm2015/lib/desy-modals/interfaces/modal-icon-data.js +2 -2
- package/esm2015/lib/desy-modals/interfaces/modal-options.js +2 -2
- package/esm2015/lib/desy-modals/interfaces/open-dialog-result.js +2 -2
- package/esm2015/lib/desy-modals/services/dialog.service.js +118 -118
- 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 +48 -46
- 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 +52 -31
- 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 +45 -22
- package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +34 -44
- 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 +32 -25
- 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 +88 -26
- package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +37 -47
- package/esm2015/lib/desy-nav/components/header/header.component.js +58 -27
- 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 +81 -61
- 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 +95 -142
- 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 +85 -63
- 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 +110 -83
- package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +42 -23
- package/esm2015/lib/desy-nav/desy-nav.module.js +123 -57
- package/esm2015/lib/desy-nav/interfaces/breadcrumbs.data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/error-summary-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/footer-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/header-dropdown-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/header-navigation-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/header-offcanvas-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/header-subnav-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/index.js +17 -21
- package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/menu-horizontal-item-event-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/menu-vertical-items-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/menu-vertical-sub-items-data.js +2 -2
- 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 +2 -2
- package/esm2015/lib/desy-nav/interfaces/nav-item.data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/notification-items-data.js +2 -2
- package/esm2015/lib/desy-nav/interfaces/notification-options.js +2 -2
- package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +104 -139
- package/esm2015/lib/desy-pagination/desy-pagination.module.js +25 -25
- package/esm2015/lib/desy-pagination/interfaces/index.js +2 -2
- package/esm2015/lib/desy-pagination/interfaces/pagination-item.data.js +2 -2
- 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 +67 -34
- 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 +288 -264
- package/esm2015/lib/desy-tables/desy-tables.module.js +61 -33
- package/esm2015/lib/desy-tables/directives/cell.directive.js +26 -0
- package/esm2015/lib/desy-tables/directives/focus-clicked-cell.directive.js +78 -74
- package/esm2015/lib/desy-tables/directives/row.directive.js +24 -0
- package/esm2015/lib/desy-tables/interfaces/cell-data.js +2 -2
- package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +7 -7
- package/esm2015/lib/desy-tables/interfaces/index.js +5 -4
- package/esm2015/lib/desy-tables/interfaces/recalculate-table-params.js +2 -0
- package/esm2015/lib/desy-tables/interfaces/row-data.js +2 -2
- 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 +136 -108
- package/esm2015/lib/desy-views/components/alert/alert.component.js +81 -76
- package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +62 -66
- 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 +28 -38
- package/esm2015/lib/desy-views/components/description-list/term/term.component.js +15 -0
- package/esm2015/lib/desy-views/components/details/details.component.js +31 -31
- 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 +79 -46
- package/esm2015/lib/desy-views/components/media-object/media-object.component.js +29 -29
- package/esm2015/lib/desy-views/components/spinner/spinner.component.js +16 -16
- package/esm2015/lib/desy-views/components/status/status.component.js +35 -35
- package/esm2015/lib/desy-views/components/status-item/status-item.component.js +63 -50
- 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 +131 -109
- 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 +93 -53
- package/esm2015/lib/desy-views/interfaces/accordion-header.data.js +2 -2
- package/esm2015/lib/desy-views/interfaces/accordion-item.data.js +2 -2
- package/esm2015/lib/desy-views/interfaces/alert-options.js +2 -2
- package/esm2015/lib/desy-views/interfaces/description-item.data.js +2 -0
- package/esm2015/lib/desy-views/interfaces/index.js +11 -11
- package/esm2015/lib/desy-views/interfaces/open-alert-result.js +2 -2
- package/esm2015/lib/desy-views/interfaces/status-data.js +2 -2
- package/esm2015/lib/desy-views/interfaces/status-icon-data.js +2 -2
- package/esm2015/lib/desy-views/interfaces/status-item-title-data.js +2 -2
- package/esm2015/lib/desy-views/interfaces/tabs-items-data.js +2 -2
- package/esm2015/lib/desy-views/interfaces/tabs-panel-data.js +2 -2
- package/esm2015/lib/desy-views/interfaces/term-definition.data.js +2 -0
- package/esm2015/lib/desy-views/services/alert.service.js +90 -90
- package/esm2015/lib/shared/components/accessibility/accessibility.component.js +29 -29
- 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 +26 -26
- package/esm2015/lib/shared/components/content-base/content-base.component.js +20 -0
- package/esm2015/lib/shared/components/index.js +6 -4
- package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js +26 -26
- 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 +35 -35
- 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 +34 -32
- package/esm2015/lib/shared/interfaces/accesibility-data.js +2 -2
- package/esm2015/lib/shared/pipes/external-href.pipe.js +28 -0
- package/esm2015/lib/shared/pipes/inner-html.pipe.js +19 -19
- package/esm2015/lib/shared/pipes/make-html-list.pipe.js +16 -16
- package/esm2015/lib/shared/shared.module.js +65 -46
- package/esm2015/lib/shared/utils/focus-utils.js +51 -51
- package/esm2015/lib/shared/utils/search-utils.js +57 -57
- package/esm2015/lib/shared/utils/string-utils.js +18 -0
- package/esm2015/public-api.js +189 -130
- package/fesm2015/desy-angular.js +7655 -3964
- package/fesm2015/desy-angular.js.map +1 -1
- package/lib/desy-angular.module.d.ts +2 -2
- package/lib/desy-buttons/components/button/button.component.d.ts +31 -32
- package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +15 -14
- package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +24 -19
- 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 +8 -0
- package/lib/desy-buttons/components/listbox/listbox.component.d.ts +54 -0
- package/lib/desy-buttons/components/pill/pill.component.d.ts +22 -22
- package/lib/desy-buttons/desy-buttons.module.d.ts +2 -2
- 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} +5 -5
- 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} +5 -5
- 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/character-count/character-count.component.d.ts +28 -28
- 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 +75 -37
- 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 +54 -37
- package/lib/desy-forms/components/error-message/error-message.component.d.ts +12 -6
- package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +28 -20
- package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +6 -5
- package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +19 -19
- package/lib/desy-forms/components/form-field/form-field.component.d.ts +40 -51
- package/lib/desy-forms/components/hint/hint.component.d.ts +11 -5
- package/lib/desy-forms/components/input/input.component.d.ts +19 -19
- 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 +54 -36
- package/lib/desy-forms/components/label/label.component.d.ts +14 -7
- 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 +75 -30
- package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +17 -13
- 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 +21 -14
- package/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.d.ts +2 -2
- package/lib/desy-forms/components/textarea/textarea.component.d.ts +23 -23
- package/lib/desy-forms/desy-forms.module.d.ts +2 -2
- package/lib/desy-forms/directives/condition.directive.d.ts +15 -15
- package/lib/desy-forms/interfaces/accesibility-data.d.ts +15 -15
- package/lib/desy-forms/interfaces/error-message-data.d.ts +8 -8
- package/lib/desy-forms/interfaces/fieldset-data.d.ts +10 -9
- package/lib/desy-forms/interfaces/hint-data.d.ts +7 -7
- package/lib/desy-forms/interfaces/index.d.ts +12 -12
- package/lib/desy-forms/interfaces/item-checkbox-data.d.ts +21 -20
- package/lib/desy-forms/interfaces/item-date-input-data.d.ts +17 -14
- package/lib/desy-forms/interfaces/item-divider-date-input-data.d.ts +5 -0
- package/lib/desy-forms/interfaces/item-divider-input-group-data.d.ts +5 -5
- package/lib/desy-forms/interfaces/item-input-group-data.d.ts +22 -23
- package/lib/desy-forms/interfaces/item-radio-data.d.ts +20 -17
- package/lib/desy-forms/interfaces/item-radio-with-template-data.d.ts +5 -5
- package/lib/desy-forms/interfaces/label-data.d.ts +9 -9
- package/lib/desy-forms/interfaces/legend-data.d.ts +6 -6
- package/lib/desy-forms/interfaces/select-item-data.d.ts +8 -7
- package/lib/desy-modals/components/dialog/dialog.component.d.ts +35 -35
- 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 +45 -20
- package/lib/desy-modals/desy-modals.module.d.ts +2 -2
- package/lib/desy-modals/interfaces/dialog-options.d.ts +9 -9
- package/lib/desy-modals/interfaces/index.d.ts +6 -6
- package/lib/desy-modals/interfaces/modal-button-data.d.ts +4 -4
- package/lib/desy-modals/interfaces/modal-data.d.ts +5 -5
- package/lib/desy-modals/interfaces/modal-icon-data.d.ts +4 -4
- package/lib/desy-modals/interfaces/modal-options.d.ts +16 -16
- package/lib/desy-modals/interfaces/open-dialog-result.d.ts +6 -6
- package/lib/desy-modals/services/dialog.service.d.ts +14 -14
- 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 +19 -16
- 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 +21 -13
- 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 +22 -10
- package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +11 -7
- 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 +13 -9
- 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 +31 -10
- package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +12 -9
- package/lib/desy-nav/components/header/header.component.d.ts +29 -18
- 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 +18 -17
- 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 +19 -24
- 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 +18 -16
- 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 +38 -24
- package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +14 -7
- package/lib/desy-nav/desy-nav.module.d.ts +2 -2
- package/lib/desy-nav/interfaces/breadcrumbs.data.d.ts +7 -7
- package/lib/desy-nav/interfaces/error-summary-data.d.ts +7 -7
- package/lib/desy-nav/interfaces/footer-data.d.ts +24 -27
- package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +11 -7
- package/lib/desy-nav/interfaces/header-navigation-data.d.ts +5 -5
- package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +11 -11
- package/lib/desy-nav/interfaces/header-offcanvas-data.d.ts +8 -9
- package/lib/desy-nav/interfaces/header-subnav-data.d.ts +11 -6
- package/lib/desy-nav/interfaces/index.d.ts +16 -20
- package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +13 -13
- package/lib/desy-nav/interfaces/menu-horizontal-item-event-data.d.ts +5 -5
- package/lib/desy-nav/interfaces/menu-vertical-items-data.d.ts +19 -17
- package/lib/desy-nav/interfaces/menu-vertical-sub-data.d.ts +7 -8
- package/lib/desy-nav/interfaces/menu-vertical-sub-items-data.d.ts +16 -13
- 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-event.data.d.ts +5 -5
- package/lib/desy-nav/interfaces/nav-item.data.d.ts +15 -14
- package/lib/desy-nav/interfaces/notification-items-data.d.ts +10 -7
- package/lib/desy-nav/interfaces/notification-options.d.ts +15 -18
- package/lib/desy-pagination/components/pagination/pagination.component.d.ts +33 -38
- package/lib/desy-pagination/desy-pagination.module.d.ts +2 -2
- package/lib/desy-pagination/interfaces/index.d.ts +1 -1
- package/lib/desy-pagination/interfaces/pagination-item.data.d.ts +4 -4
- 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 +25 -13
- 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 +115 -88
- package/lib/desy-tables/desy-tables.module.d.ts +2 -2
- package/lib/desy-tables/directives/cell.directive.d.ts +14 -0
- package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +10 -10
- package/lib/desy-tables/directives/row.directive.d.ts +16 -0
- package/lib/desy-tables/interfaces/cell-data.d.ts +9 -9
- package/lib/desy-tables/interfaces/head-cell-data.d.ts +15 -15
- package/lib/desy-tables/interfaces/index.d.ts +4 -3
- package/lib/desy-tables/interfaces/recalculate-table-params.d.ts +11 -0
- package/lib/desy-tables/interfaces/row-data.d.ts +6 -5
- 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 +36 -27
- package/lib/desy-views/components/alert/alert.component.d.ts +29 -27
- package/lib/desy-views/components/collapsible/collapsible.component.d.ts +15 -17
- 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 +12 -9
- package/lib/desy-views/components/description-list/term/term.component.d.ts +6 -0
- package/lib/desy-views/components/details/details.component.d.ts +14 -14
- 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 +36 -17
- package/lib/desy-views/components/media-object/media-object.component.d.ts +14 -14
- package/lib/desy-views/components/spinner/spinner.component.d.ts +6 -6
- package/lib/desy-views/components/status/status.component.d.ts +11 -11
- package/lib/desy-views/components/status-item/status-item.component.d.ts +31 -20
- 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 +35 -23
- 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/desy-views.module.d.ts +2 -2
- package/lib/desy-views/interfaces/accordion-header.data.d.ts +5 -5
- package/lib/desy-views/interfaces/accordion-item.data.d.ts +10 -10
- package/lib/desy-views/interfaces/alert-options.d.ts +8 -8
- package/lib/desy-views/interfaces/description-item.data.d.ts +8 -0
- package/lib/desy-views/interfaces/index.d.ts +10 -10
- package/lib/desy-views/interfaces/open-alert-result.d.ts +6 -6
- package/lib/desy-views/interfaces/status-data.d.ts +8 -8
- package/lib/desy-views/interfaces/status-icon-data.d.ts +4 -4
- package/lib/desy-views/interfaces/status-item-title-data.d.ts +5 -5
- package/lib/desy-views/interfaces/tabs-items-data.d.ts +9 -9
- package/lib/desy-views/interfaces/tabs-panel-data.d.ts +8 -8
- package/lib/desy-views/interfaces/term-definition.data.d.ts +7 -0
- package/lib/desy-views/services/alert.service.d.ts +14 -14
- package/lib/shared/components/accessibility/accessibility.component.d.ts +20 -20
- package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +26 -0
- package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +25 -25
- package/lib/shared/components/content-base/content-base.component.d.ts +9 -0
- package/lib/shared/components/index.d.ts +5 -3
- package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +16 -16
- 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/click-outside.directive.d.ts +9 -9
- 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 +9 -8
- package/lib/shared/interfaces/accesibility-data.d.ts +16 -16
- package/lib/shared/pipes/external-href.pipe.d.ts +8 -0
- package/lib/shared/pipes/inner-html.pipe.d.ts +7 -7
- package/lib/shared/pipes/make-html-list.pipe.d.ts +4 -4
- package/lib/shared/shared.module.d.ts +2 -2
- package/lib/shared/utils/focus-utils.d.ts +4 -4
- package/lib/shared/utils/search-utils.d.ts +14 -14
- package/lib/shared/utils/string-utils.d.ts +10 -0
- package/package.json +16 -11
- package/public-api.d.ts +160 -110
- 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,26 +1,26 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { TextOrHtmlRequiredComponent } from '../text-or-html-required/text-or-html-required.component';
|
|
3
|
-
export class AccessibilityAndTextOrHtmlRequiredComponent extends TextOrHtmlRequiredComponent {
|
|
4
|
-
}
|
|
5
|
-
AccessibilityAndTextOrHtmlRequiredComponent.decorators = [
|
|
6
|
-
{ type: Component, args: [{
|
|
7
|
-
selector: 'desy-accessibility-and-text-or-html-required',
|
|
8
|
-
template: '<div></div>'
|
|
9
|
-
},] }
|
|
10
|
-
];
|
|
11
|
-
AccessibilityAndTextOrHtmlRequiredComponent.propDecorators = {
|
|
12
|
-
role: [{ type: Input }],
|
|
13
|
-
ariaLabel: [{ type: Input }],
|
|
14
|
-
ariaDescribedBy: [{ type: Input }],
|
|
15
|
-
ariaLabelledBy: [{ type: Input }],
|
|
16
|
-
ariaHidden: [{ type: Input }],
|
|
17
|
-
ariaDisabled: [{ type: Input }],
|
|
18
|
-
ariaControls: [{ type: Input }],
|
|
19
|
-
ariaCurrent: [{ type: Input }],
|
|
20
|
-
ariaLive: [{ type: Input }],
|
|
21
|
-
ariaExpanded: [{ type: Input }],
|
|
22
|
-
ariaErrorMessage: [{ type: Input }],
|
|
23
|
-
ariaHasPopup: [{ type: Input }],
|
|
24
|
-
tabindex: [{ type: Input }]
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { TextOrHtmlRequiredComponent } from '../text-or-html-required/text-or-html-required.component';
|
|
3
|
+
export class AccessibilityAndTextOrHtmlRequiredComponent extends TextOrHtmlRequiredComponent {
|
|
4
|
+
}
|
|
5
|
+
AccessibilityAndTextOrHtmlRequiredComponent.decorators = [
|
|
6
|
+
{ type: Component, args: [{
|
|
7
|
+
selector: 'desy-accessibility-and-text-or-html-required',
|
|
8
|
+
template: '<div></div>'
|
|
9
|
+
},] }
|
|
10
|
+
];
|
|
11
|
+
AccessibilityAndTextOrHtmlRequiredComponent.propDecorators = {
|
|
12
|
+
role: [{ type: Input }],
|
|
13
|
+
ariaLabel: [{ type: Input }],
|
|
14
|
+
ariaDescribedBy: [{ type: Input }],
|
|
15
|
+
ariaLabelledBy: [{ type: Input }],
|
|
16
|
+
ariaHidden: [{ type: Input }],
|
|
17
|
+
ariaDisabled: [{ type: Input }],
|
|
18
|
+
ariaControls: [{ type: Input }],
|
|
19
|
+
ariaCurrent: [{ type: Input }],
|
|
20
|
+
ariaLive: [{ type: Input }],
|
|
21
|
+
ariaExpanded: [{ type: Input }],
|
|
22
|
+
ariaErrorMessage: [{ type: Input }],
|
|
23
|
+
ariaHasPopup: [{ type: Input }],
|
|
24
|
+
tabindex: [{ type: Input }]
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzaWJpbGl0eS1hbmQtdGV4dC1vci1odG1sLXJlcXVpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2FjY2Vzc2liaWxpdHktYW5kLXRleHQtb3ItaHRtbC1yZXF1aXJlZC9hY2Nlc3NpYmlsaXR5LWFuZC10ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBTXZHLE1BQU0sT0FBTywyQ0FBNEMsU0FBUSwyQkFBMkI7OztZQUozRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDhDQUE4QztnQkFDeEQsUUFBUSxFQUFFLGFBQWE7YUFDeEI7OzttQkFhSSxLQUFLO3dCQUNMLEtBQUs7OEJBQ0wsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLOzBCQUNMLEtBQUs7dUJBQ0wsS0FBSzsyQkFDTCxLQUFLOytCQUNMLEtBQUs7MkJBQ0wsS0FBSzt1QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY2Nlc2liaWxpdHlEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hY2Nlc2liaWxpdHktZGF0YSc7XHJcbmltcG9ydCB7IFRleHRPckh0bWxSZXF1aXJlZENvbXBvbmVudCB9IGZyb20gJy4uL3RleHQtb3ItaHRtbC1yZXF1aXJlZC90ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1hY2Nlc3NpYmlsaXR5LWFuZC10ZXh0LW9yLWh0bWwtcmVxdWlyZWQnLFxyXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2Nlc3NpYmlsaXR5QW5kVGV4dE9ySHRtbFJlcXVpcmVkQ29tcG9uZW50IGV4dGVuZHMgVGV4dE9ySHRtbFJlcXVpcmVkQ29tcG9uZW50IGltcGxlbWVudHMgQWNjZXNpYmlsaXR5RGF0YSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbXBvbmVudGUgcGFyYSBoZXJlZGFyIGxvcyBhdHJpYnV0b3MgZGUgYWNjZXNpYmlsaWRhZCB5XHJcbiAgICogZWwgdGV4dG8gbyBodG1sIHJlcXVpcmVkXHJcbiAgICogXHJcbiAgICogc2kgZW4gZWwgY29tcG9uZW50ZSBxdWUgZXh0aWVuZGUgZGUgZXN0ZSwgc2UgaW1wbGVtZW50YSBlbCBvbkluaXQgbyBPbmNoYW5nZXMsXHJcbiAgICogaGFicmEgcXVlIGluY2x1aXIgbGEgbGxhbWFkYSBhbCBhIGZ1bmNpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb25cclxuICAgKiBcclxuICAgKi9cclxuXHJcbiAgICAvLyBBdHJpYnV0b3MgZGUgYWNjZXNpYmlsaWRhZFxyXG4gICAgQElucHV0KCkgcm9sZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhRGVzY3JpYmVkQnk6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhSGlkZGVuOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhRGlzYWJsZWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFDb250cm9sczogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYXJpYUN1cnJlbnQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFMaXZlOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBhcmlhRXhwYW5kZWQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFFcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFyaWFIYXNQb3B1cDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdGFiaW5kZXg6IHN0cmluZztcclxuXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { AccessibilityComponent } from '../accessibility/accessibility.component';
|
|
3
|
+
/**
|
|
4
|
+
* Componente base para proyectar contenido
|
|
5
|
+
*/
|
|
6
|
+
export class ContentBaseComponent extends AccessibilityComponent {
|
|
7
|
+
getContent() {
|
|
8
|
+
return this.content;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
ContentBaseComponent.decorators = [
|
|
12
|
+
{ type: Component, args: [{
|
|
13
|
+
selector: 'desy-content-base',
|
|
14
|
+
template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
|
|
15
|
+
},] }
|
|
16
|
+
];
|
|
17
|
+
ContentBaseComponent.propDecorators = {
|
|
18
|
+
content: [{ type: ViewChild, args: ['contentTemplate', { static: true },] }]
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2NvbnRlbnQtYmFzZS9jb250ZW50LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGOztHQUVHO0FBS0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHNCQUFzQjtJQUl2RCxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7OztZQVZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUUsdUVBQXVFO2FBQ2xGOzs7c0JBR0UsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBY2Nlc3NpYmlsaXR5Q29tcG9uZW50fSBmcm9tICcuLi9hY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHkuY29tcG9uZW50JztcclxuLyoqXHJcbiAqIENvbXBvbmVudGUgYmFzZSBwYXJhIHByb3llY3RhciBjb250ZW5pZG9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1jb250ZW50LWJhc2UnLFxyXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGVudEJhc2VDb21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBwdWJsaWMgZ2V0Q29udGVudCgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export * from './accessibility/accessibility.component';
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './text-or-html-required/text-or-html-required.component';
|
|
4
|
-
|
|
1
|
+
export * from './accessibility/accessibility.component';
|
|
2
|
+
export * from './content-base/content-base.component';
|
|
3
|
+
export * from './accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component';
|
|
4
|
+
export * from './accessibility-and-content-required/accessibility-and-content-required.component';
|
|
5
|
+
export * from './text-or-html-required/text-or-html-required.component';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2RkFBNkYsQ0FBQztBQUM1RyxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMseURBQXlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICogZnJvbSAnLi9hY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LWJhc2UvY29udGVudC1iYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWNjZXNzaWJpbGl0eS1hbmQtdGV4dC1vci1odG1sLXJlcXVpcmVkL2FjY2Vzc2liaWxpdHktYW5kLXRleHQtb3ItaHRtbC1yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FjY2Vzc2liaWxpdHktYW5kLWNvbnRlbnQtcmVxdWlyZWQvYWNjZXNzaWJpbGl0eS1hbmQtY29udGVudC1yZXF1aXJlZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RleHQtb3ItaHRtbC1yZXF1aXJlZC90ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50JztcclxuIl19
|
package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
export class TextOrHtmlRequiredComponent {
|
|
3
|
-
ngOnChanges(changes) {
|
|
4
|
-
textOrHtmlRequiredFunction(this.text, this.html);
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
TextOrHtmlRequiredComponent.decorators = [
|
|
8
|
-
{ type: Component, args: [{
|
|
9
|
-
selector: 'desy-text-or-html-required',
|
|
10
|
-
template: '<div></div>'
|
|
11
|
-
},] }
|
|
12
|
-
];
|
|
13
|
-
TextOrHtmlRequiredComponent.propDecorators = {
|
|
14
|
-
text: [{ type: Input }],
|
|
15
|
-
html: [{ type: Input }]
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* funcion que comprueba si existe text o html
|
|
19
|
-
* salta error si no es así
|
|
20
|
-
*/
|
|
21
|
-
export function textOrHtmlRequiredFunction(text, html) {
|
|
22
|
-
if (!html && !text) {
|
|
23
|
-
throw new Error(`html or text are required`);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
export class TextOrHtmlRequiredComponent {
|
|
3
|
+
ngOnChanges(changes) {
|
|
4
|
+
textOrHtmlRequiredFunction(this.text, this.html);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
TextOrHtmlRequiredComponent.decorators = [
|
|
8
|
+
{ type: Component, args: [{
|
|
9
|
+
selector: 'desy-text-or-html-required',
|
|
10
|
+
template: '<div></div>'
|
|
11
|
+
},] }
|
|
12
|
+
];
|
|
13
|
+
TextOrHtmlRequiredComponent.propDecorators = {
|
|
14
|
+
text: [{ type: Input }],
|
|
15
|
+
html: [{ type: Input }]
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* funcion que comprueba si existe text o html
|
|
19
|
+
* salta error si no es así
|
|
20
|
+
*/
|
|
21
|
+
export function textOrHtmlRequiredFunction(text, html) {
|
|
22
|
+
if (!html && !text) {
|
|
23
|
+
throw new Error(`html or text are required`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1vci1odG1sLXJlcXVpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3RleHQtb3ItaHRtbC1yZXF1aXJlZC90ZXh0LW9yLWh0bWwtcmVxdWlyZWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQU0zRSxNQUFNLE9BQU8sMkJBQTJCO0lBV3RDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDOzs7WUFqQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRSxhQUFhO2FBQ3hCOzs7bUJBU0UsS0FBSzttQkFDTCxLQUFLOztBQVFSOzs7R0FHRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUM3RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUM5QztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS10ZXh0LW9yLWh0bWwtcmVxdWlyZWQnLFxyXG4gIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0T3JIdG1sUmVxdWlyZWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAvKioqXHJcbiAgICogY29tcG9uZW50ZSBiYXNlIHBhcmEgZWwgY29tcG9ydGFtaWVudG8gZGUgdGV4dG8gbyBodG1sIHJlcXVpcmVkXHJcbiAgICogc2kgZW4gZWwgY29tcG9uZW50ZSBxdWUgZXh0aWVuZGUgZGUgZXN0ZSwgc2UgaW1wbGVtZW50YSBlbCBvbkluaXQgbyBPbmNoYW5nZXMsXHJcbiAgICogaGFicmEgcXVlIGluY2x1aXIgbGEgbGxhbWFkYSBhbCBhIGZ1bmNpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb25cclxuICAgKiovXHJcblxyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcclxuICBASW5wdXQoKSBodG1sOiBzdHJpbmc7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRleHRPckh0bWxSZXF1aXJlZEZ1bmN0aW9uKHRoaXMudGV4dCwgdGhpcy5odG1sKTtcclxuICB9XHJcblxyXG59XHJcblxyXG4vKipcclxuICogZnVuY2lvbiBxdWUgY29tcHJ1ZWJhIHNpIGV4aXN0ZSB0ZXh0IG8gaHRtbFxyXG4gKiBzYWx0YSBlcnJvciBzaSBubyBlcyBhc8OtXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdGV4dE9ySHRtbFJlcXVpcmVkRnVuY3Rpb24odGV4dDogYW55LCBodG1sOiBhbnkpOiB2b2lkIHtcclxuICBpZiAoIWh0bWwgJiYgIXRleHQpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgaHRtbCBvciB0ZXh0IGFyZSByZXF1aXJlZGApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { QueryList } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Decorador para convertir una queryList de componentes obtenidos con ContentChildren a un único componente, de forma que sea similar a un
|
|
4
|
+
* ContentChild pero admitiendo únicamente los compontentes insertados en el primer nivel.
|
|
5
|
+
* Debe utilizarse siempre junto a un ContentChildren
|
|
6
|
+
* Si en el constructor de la clase en la que se utiliza se inyecta el Change detector con nombre 'changeDetectorRef', se indicará que hay
|
|
7
|
+
* cambios cuando se detecten.
|
|
8
|
+
* @param options opciones adicionales:
|
|
9
|
+
* - onSetCallbackName: nombre del método al que llamar tras asociarse el valor. Esto puede utilizarse, por ejemplo, para sobreescribir
|
|
10
|
+
* parámetros definidos externamente en el componente.
|
|
11
|
+
* - onDeleteCallbackName: nombre del método al que llamar tras desasociarse el valor.
|
|
12
|
+
*/
|
|
13
|
+
export function DesyContentChild(options) {
|
|
14
|
+
return (target, propertyKey) => {
|
|
15
|
+
const privateKeyName = `_${propertyKey}`;
|
|
16
|
+
const privateQueryListKeyName = `_${propertyKey}Querylist`;
|
|
17
|
+
Object.defineProperty(target, propertyKey, {
|
|
18
|
+
set(value) {
|
|
19
|
+
const queryList = value instanceof QueryList ? value : null;
|
|
20
|
+
if (queryList && !this[privateQueryListKeyName]) {
|
|
21
|
+
this[privateQueryListKeyName] = queryList;
|
|
22
|
+
queryList.changes.subscribe(() => {
|
|
23
|
+
const previousValue = this[privateKeyName];
|
|
24
|
+
this[privateKeyName] = queryList && queryList.length > 0 ? queryList.first : null;
|
|
25
|
+
if (options && options.onSetCallbackName && this[options.onSetCallbackName] && this[privateKeyName]) {
|
|
26
|
+
this[options.onSetCallbackName](this[privateKeyName]);
|
|
27
|
+
}
|
|
28
|
+
if (options && options.onDeleteCallbackName && this[options.onDeleteCallbackName] && previousValue && !this[privateKeyName]) {
|
|
29
|
+
this[options.onDeleteCallbackName]();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
queryList.notifyOnChanges();
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
get() {
|
|
36
|
+
return this[privateKeyName];
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE9BQXVFO0lBQ3RHLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sY0FBYyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFDekMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLFdBQVcsV0FBVyxDQUFDO1FBRTNELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN6QyxHQUFHLENBQUMsS0FBSztnQkFDUCxNQUFNLFNBQVMsR0FBRyxLQUFLLFlBQVksU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzlFLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUU7b0JBQy9DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO3dCQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFFbEYsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUc7NEJBQ3BHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQzt5QkFDdkQ7d0JBRUQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsSUFBSSxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUc7NEJBQzVILElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO3lCQUN0QztvQkFDSCxDQUFDLENBQUMsQ0FBQztvQkFDSCxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7aUJBQzdCO1lBQ0gsQ0FBQztZQUNELEdBQUc7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDOUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1F1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogRGVjb3JhZG9yIHBhcmEgY29udmVydGlyIHVuYSBxdWVyeUxpc3QgZGUgY29tcG9uZW50ZXMgb2J0ZW5pZG9zIGNvbiBDb250ZW50Q2hpbGRyZW4gYSB1biDDum5pY28gY29tcG9uZW50ZSwgZGUgZm9ybWEgcXVlIHNlYSBzaW1pbGFyIGEgdW5cclxuICogQ29udGVudENoaWxkIHBlcm8gYWRtaXRpZW5kbyDDum5pY2FtZW50ZSBsb3MgY29tcG9udGVudGVzIGluc2VydGFkb3MgZW4gZWwgcHJpbWVyIG5pdmVsLlxyXG4gKiBEZWJlIHV0aWxpemFyc2Ugc2llbXByZSBqdW50byBhIHVuIENvbnRlbnRDaGlsZHJlblxyXG4gKiBTaSBlbiBlbCBjb25zdHJ1Y3RvciBkZSBsYSBjbGFzZSBlbiBsYSBxdWUgc2UgdXRpbGl6YSBzZSBpbnllY3RhIGVsIENoYW5nZSBkZXRlY3RvciBjb24gbm9tYnJlICdjaGFuZ2VEZXRlY3RvclJlZicsIHNlIGluZGljYXLDoSBxdWUgaGF5XHJcbiAqIGNhbWJpb3MgY3VhbmRvIHNlIGRldGVjdGVuLlxyXG4gKiBAcGFyYW0gb3B0aW9ucyBvcGNpb25lcyBhZGljaW9uYWxlczpcclxuICogIC0gb25TZXRDYWxsYmFja05hbWU6IG5vbWJyZSBkZWwgbcOpdG9kbyBhbCBxdWUgbGxhbWFyIHRyYXMgYXNvY2lhcnNlIGVsIHZhbG9yLiBFc3RvIHB1ZWRlIHV0aWxpemFyc2UsIHBvciBlamVtcGxvLCBwYXJhIHNvYnJlZXNjcmliaXJcclxuICogICAgICAgICAgICAgICAgICAgICAgIHBhcsOhbWV0cm9zIGRlZmluaWRvcyBleHRlcm5hbWVudGUgZW4gZWwgY29tcG9uZW50ZS5cclxuICogIC0gb25EZWxldGVDYWxsYmFja05hbWU6IG5vbWJyZSBkZWwgbcOpdG9kbyBhbCBxdWUgbGxhbWFyIHRyYXMgZGVzYXNvY2lhcnNlIGVsIHZhbG9yLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIERlc3lDb250ZW50Q2hpbGQob3B0aW9ucz86IHsgb25TZXRDYWxsYmFja05hbWU/OiBzdHJpbmcsIG9uRGVsZXRlQ2FsbGJhY2tOYW1lPzogc3RyaW5nIH0pOiBQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgcmV0dXJuICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcHJpdmF0ZUtleU5hbWUgPSBgXyR7cHJvcGVydHlLZXl9YDtcclxuICAgIGNvbnN0IHByaXZhdGVRdWVyeUxpc3RLZXlOYW1lID0gYF8ke3Byb3BlcnR5S2V5fVF1ZXJ5bGlzdGA7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcclxuICAgICAgc2V0KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcXVlcnlMaXN0ID0gdmFsdWUgaW5zdGFuY2VvZiBRdWVyeUxpc3QgPyB2YWx1ZSBhcyBRdWVyeUxpc3Q8YW55PiA6IG51bGw7XHJcbiAgICAgICAgaWYgKHF1ZXJ5TGlzdCAmJiAhdGhpc1twcml2YXRlUXVlcnlMaXN0S2V5TmFtZV0pIHtcclxuICAgICAgICAgIHRoaXNbcHJpdmF0ZVF1ZXJ5TGlzdEtleU5hbWVdID0gcXVlcnlMaXN0O1xyXG4gICAgICAgICAgcXVlcnlMaXN0LmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IHRoaXNbcHJpdmF0ZUtleU5hbWVdO1xyXG4gICAgICAgICAgICB0aGlzW3ByaXZhdGVLZXlOYW1lXSA9IHF1ZXJ5TGlzdCAmJiBxdWVyeUxpc3QubGVuZ3RoID4gMCA/IHF1ZXJ5TGlzdC5maXJzdCA6IG51bGw7XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLm9uU2V0Q2FsbGJhY2tOYW1lICYmIHRoaXNbb3B0aW9ucy5vblNldENhbGxiYWNrTmFtZV0gJiYgdGhpc1twcml2YXRlS2V5TmFtZV0gKSB7XHJcbiAgICAgICAgICAgICAgdGhpc1tvcHRpb25zLm9uU2V0Q2FsbGJhY2tOYW1lXSh0aGlzW3ByaXZhdGVLZXlOYW1lXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMub25EZWxldGVDYWxsYmFja05hbWUgJiYgdGhpc1tvcHRpb25zLm9uRGVsZXRlQ2FsbGJhY2tOYW1lXSAmJiBwcmV2aW91c1ZhbHVlICYmICF0aGlzW3ByaXZhdGVLZXlOYW1lXSApIHtcclxuICAgICAgICAgICAgICB0aGlzW29wdGlvbnMub25EZWxldGVDYWxsYmFja05hbWVdKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcXVlcnlMaXN0Lm5vdGlmeU9uQ2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZ2V0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNbcHJpdmF0ZUtleU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decorador para controlar los cambios de un input
|
|
3
|
+
* @param callbackName nombre de la función a la que se llamará tras aplicar el cambio
|
|
4
|
+
*/
|
|
5
|
+
export function DesyOnInputChange(callbackName) {
|
|
6
|
+
return (target, propertyKey) => {
|
|
7
|
+
const privateKeyName = `_${propertyKey}`;
|
|
8
|
+
Object.defineProperty(target, propertyKey, {
|
|
9
|
+
set(value) {
|
|
10
|
+
this[privateKeyName] = value;
|
|
11
|
+
this[callbackName]();
|
|
12
|
+
},
|
|
13
|
+
get() {
|
|
14
|
+
return this[privateKeyName];
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxZQUFvQjtJQUNwRCxPQUFPLENBQUMsTUFBVyxFQUFFLFdBQW1CLEVBQUUsRUFBRTtRQUMxQyxNQUFNLGNBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN6QyxHQUFHLENBQUMsS0FBSztnQkFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBQ0QsR0FBRztnQkFDRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBEZWNvcmFkb3IgcGFyYSBjb250cm9sYXIgbG9zIGNhbWJpb3MgZGUgdW4gaW5wdXRcclxuICogQHBhcmFtIGNhbGxiYWNrTmFtZSBub21icmUgZGUgbGEgZnVuY2nDs24gYSBsYSBxdWUgc2UgbGxhbWFyw6EgdHJhcyBhcGxpY2FyIGVsIGNhbWJpb1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIERlc3lPbklucHV0Q2hhbmdlKGNhbGxiYWNrTmFtZTogc3RyaW5nKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHByaXZhdGVLZXlOYW1lID0gYF8ke3Byb3BlcnR5S2V5fWA7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcclxuICAgICAgc2V0KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpc1twcml2YXRlS2V5TmFtZV0gPSB2YWx1ZTtcclxuICAgICAgICB0aGlzW2NhbGxiYWNrTmFtZV0oKTtcclxuICAgICAgfSxcclxuICAgICAgZ2V0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXNbcHJpdmF0ZUtleU5hbWVdO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
export class AttributeChangeDirective {
|
|
3
|
+
constructor(elementRef) {
|
|
4
|
+
this.elementRef = elementRef;
|
|
5
|
+
this.desyAttributeChange = new EventEmitter();
|
|
6
|
+
this.desyAttributeChangeMutation = new EventEmitter();
|
|
7
|
+
const element = this.elementRef.nativeElement;
|
|
8
|
+
this.changes = new MutationObserver((mutations) => {
|
|
9
|
+
mutations.forEach((mutation) => {
|
|
10
|
+
if (this.attributesToCheck) {
|
|
11
|
+
const attrs = typeof (this.attributesToCheck) === 'string' ? [this.attributesToCheck] : this.attributesToCheck;
|
|
12
|
+
if (attrs.findIndex(v => v === mutation.attributeName) >= 0) {
|
|
13
|
+
this.desyAttributeChange.emit(this.elementRef.nativeElement.innerHTML);
|
|
14
|
+
this.desyAttributeChangeMutation.emit(mutation);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
this.changes.observe(element, {
|
|
20
|
+
attributes: true,
|
|
21
|
+
childList: false,
|
|
22
|
+
characterData: false,
|
|
23
|
+
subtree: false
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
ngOnDestroy() {
|
|
27
|
+
this.changes.disconnect();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
AttributeChangeDirective.decorators = [
|
|
31
|
+
{ type: Directive, args: [{
|
|
32
|
+
selector: '[desyAttributeChange]'
|
|
33
|
+
},] }
|
|
34
|
+
];
|
|
35
|
+
AttributeChangeDirective.ctorParameters = () => [
|
|
36
|
+
{ type: ElementRef }
|
|
37
|
+
];
|
|
38
|
+
AttributeChangeDirective.propDecorators = {
|
|
39
|
+
attributesToCheck: [{ type: Input }],
|
|
40
|
+
desyAttributeChange: [{ type: Output }],
|
|
41
|
+
desyAttributeChangeMutation: [{ type: Output }]
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWNoYW5nZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9hdHRyaWJ1dGUtY2hhbmdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUs1RixNQUFNLE9BQU8sd0JBQXdCO0lBWW5DLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFMbkMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd6QyxnQ0FBMkIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUNoRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtvQkFDMUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO29CQUMvRyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDM0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDdkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDakQ7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQzVCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQXpDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjthQUNsQzs7O1lBSmtCLFVBQVU7OztnQ0FTMUIsS0FBSztrQ0FFTCxNQUFNOzBDQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZGVzeUF0dHJpYnV0ZUNoYW5nZV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRyaWJ1dGVDaGFuZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIGNoYW5nZXM6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcblxyXG4gIEBJbnB1dCgpIGF0dHJpYnV0ZXNUb0NoZWNrOiBzdHJpbmd8c3RyaW5nW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXN5QXR0cmlidXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzeUF0dHJpYnV0ZUNoYW5nZU11dGF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLmNoYW5nZXMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiB7XHJcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uOiBNdXRhdGlvblJlY29yZCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXR0cmlidXRlc1RvQ2hlY2spIHtcclxuICAgICAgICAgICAgY29uc3QgYXR0cnMgPSB0eXBlb2YgKHRoaXMuYXR0cmlidXRlc1RvQ2hlY2spID09PSAnc3RyaW5nJyA/IFt0aGlzLmF0dHJpYnV0ZXNUb0NoZWNrXSA6IHRoaXMuYXR0cmlidXRlc1RvQ2hlY2s7XHJcbiAgICAgICAgICAgIGlmIChhdHRycy5maW5kSW5kZXgodiA9PiB2ID09PSBtdXRhdGlvbi5hdHRyaWJ1dGVOYW1lKSA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kZXN5QXR0cmlidXRlQ2hhbmdlLmVtaXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcclxuICAgICAgICAgICAgICB0aGlzLmRlc3lBdHRyaWJ1dGVDaGFuZ2VNdXRhdGlvbi5lbWl0KG11dGF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlcy5vYnNlcnZlKGVsZW1lbnQsIHtcclxuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcclxuICAgICAgY2hpbGRMaXN0OiBmYWxzZSxcclxuICAgICAgY2hhcmFjdGVyRGF0YTogZmFsc2UsXHJcbiAgICAgIHN1YnRyZWU6IGZhbHNlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
export class ClickOutsideDirective {
|
|
3
|
-
constructor(hostElementRef) {
|
|
4
|
-
this.hostElementRef = hostElementRef;
|
|
5
|
-
this.active = true;
|
|
6
|
-
this.clickOutside = new EventEmitter();
|
|
7
|
-
}
|
|
8
|
-
onClick(target) {
|
|
9
|
-
let clickedInside;
|
|
10
|
-
if (this.desyClickOutsideElem) {
|
|
11
|
-
clickedInside = this.desyClickOutsideElem.contains(target);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
clickedInside = this.hostElementRef.nativeElement.contains(target);
|
|
15
|
-
}
|
|
16
|
-
if (!clickedInside && this.active) {
|
|
17
|
-
this.clickOutside.emit();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
ClickOutsideDirective.decorators = [
|
|
22
|
-
{ type: Directive, args: [{
|
|
23
|
-
selector: '[desyClickOutside]'
|
|
24
|
-
},] }
|
|
25
|
-
];
|
|
26
|
-
ClickOutsideDirective.ctorParameters = () => [
|
|
27
|
-
{ type: ElementRef }
|
|
28
|
-
];
|
|
29
|
-
ClickOutsideDirective.propDecorators = {
|
|
30
|
-
active: [{ type: Input, args: ['desyClickOutside',] }],
|
|
31
|
-
clickOutside: [{ type: Output }],
|
|
32
|
-
desyClickOutsideElem: [{ type: Input }],
|
|
33
|
-
onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
+
export class ClickOutsideDirective {
|
|
3
|
+
constructor(hostElementRef) {
|
|
4
|
+
this.hostElementRef = hostElementRef;
|
|
5
|
+
this.active = true;
|
|
6
|
+
this.clickOutside = new EventEmitter();
|
|
7
|
+
}
|
|
8
|
+
onClick(target) {
|
|
9
|
+
let clickedInside;
|
|
10
|
+
if (this.desyClickOutsideElem) {
|
|
11
|
+
clickedInside = this.desyClickOutsideElem.contains(target);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
clickedInside = this.hostElementRef.nativeElement.contains(target);
|
|
15
|
+
}
|
|
16
|
+
if (!clickedInside && this.active) {
|
|
17
|
+
this.clickOutside.emit();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
ClickOutsideDirective.decorators = [
|
|
22
|
+
{ type: Directive, args: [{
|
|
23
|
+
selector: '[desyClickOutside]'
|
|
24
|
+
},] }
|
|
25
|
+
];
|
|
26
|
+
ClickOutsideDirective.ctorParameters = () => [
|
|
27
|
+
{ type: ElementRef }
|
|
28
|
+
];
|
|
29
|
+
ClickOutsideDirective.propDecorators = {
|
|
30
|
+
active: [{ type: Input, args: ['desyClickOutside',] }],
|
|
31
|
+
clickOutside: [{ type: Output }],
|
|
32
|
+
desyClickOutsideElem: [{ type: Input }],
|
|
33
|
+
onClick: [{ type: HostListener, args: ['document:click', ['$event.target'],] }]
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakcsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUFvQixjQUEwQjtRQUExQixtQkFBYyxHQUFkLGNBQWMsQ0FBWTtRQUpuQixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUdBLENBQUM7SUFHNUMsT0FBTyxDQUFDLE1BQU07UUFDbkIsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUQ7YUFBTTtZQUNMLGFBQWEsR0FBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQXlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2pGO1FBQ0QsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs7WUF0QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7OztZQUptQixVQUFVOzs7cUJBTzNCLEtBQUssU0FBQyxrQkFBa0I7MkJBQ3hCLE1BQU07bUNBQ04sS0FBSztzQkFJTCxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZXN5Q2xpY2tPdXRzaWRlXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZURpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgnZGVzeUNsaWNrT3V0c2lkZScpIGFjdGl2ZSA9IHRydWU7XHJcbiAgQE91dHB1dCgpIGNsaWNrT3V0c2lkZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBASW5wdXQoKSBkZXN5Q2xpY2tPdXRzaWRlRWxlbTogRWxlbWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBob3N0RWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXHJcbiAgcHVibGljIG9uQ2xpY2sodGFyZ2V0KTogdm9pZCB7XHJcbiAgICBsZXQgY2xpY2tlZEluc2lkZTtcclxuICAgIGlmICh0aGlzLmRlc3lDbGlja091dHNpZGVFbGVtKSB7XHJcbiAgICAgIGNsaWNrZWRJbnNpZGUgPSB0aGlzLmRlc3lDbGlja091dHNpZGVFbGVtLmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjbGlja2VkSW5zaWRlID0gKHRoaXMuaG9zdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBFbGVtZW50KS5jb250YWlucyh0YXJnZXQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjbGlja2VkSW5zaWRlICYmIHRoaXMuYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tPdXRzaWRlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Permite comprobar cuándo se produce un cambio en el contenido de un elemento.
|
|
4
|
+
* La propia directiva emite el html interno del elemento en formato string, mientras que desyContentChangeMutation emite los cambios.
|
|
5
|
+
*/
|
|
6
|
+
export class ContentChangeDirective {
|
|
7
|
+
constructor(elementRef) {
|
|
8
|
+
this.elementRef = elementRef;
|
|
9
|
+
this.observeProperties = {
|
|
10
|
+
attributes: false,
|
|
11
|
+
childList: true,
|
|
12
|
+
characterData: true,
|
|
13
|
+
subtree: true
|
|
14
|
+
};
|
|
15
|
+
this.desyContentChange = new EventEmitter();
|
|
16
|
+
this.desyContentChangeMutation = new EventEmitter();
|
|
17
|
+
const element = this.elementRef.nativeElement;
|
|
18
|
+
this.changes = new MutationObserver((mutations) => {
|
|
19
|
+
mutations.forEach((mutation) => {
|
|
20
|
+
this.desyContentChange.emit(this.elementRef);
|
|
21
|
+
this.desyContentChangeMutation.emit(mutation);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
this.changes.observe(element, this.observeProperties);
|
|
25
|
+
}
|
|
26
|
+
ngOnDestroy() {
|
|
27
|
+
this.changes.disconnect();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ContentChangeDirective.decorators = [
|
|
31
|
+
{ type: Directive, args: [{
|
|
32
|
+
selector: '[desyContentChange]'
|
|
33
|
+
},] }
|
|
34
|
+
];
|
|
35
|
+
ContentChangeDirective.ctorParameters = () => [
|
|
36
|
+
{ type: ElementRef }
|
|
37
|
+
];
|
|
38
|
+
ContentChangeDirective.propDecorators = {
|
|
39
|
+
observeProperties: [{ type: Input }],
|
|
40
|
+
desyContentChange: [{ type: Output }],
|
|
41
|
+
desyContentChangeMutation: [{ type: Output }]
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jaGFuZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvY29udGVudC1jaGFuZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVGOzs7R0FHRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFiakMsc0JBQWlCLEdBQTBGO1lBQ2xILFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsYUFBYSxFQUFFLElBQUk7WUFDbkIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBR0ssc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUduRCw4QkFBeUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUNoRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7WUFwQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7YUFDaEM7OztZQVJrQixVQUFVOzs7Z0NBYTFCLEtBQUs7Z0NBT0wsTUFBTTt3Q0FHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBQZXJtaXRlIGNvbXByb2JhciBjdcOhbmRvIHNlIHByb2R1Y2UgdW4gY2FtYmlvIGVuIGVsIGNvbnRlbmlkbyBkZSB1biBlbGVtZW50by5cclxuICogTGEgcHJvcGlhIGRpcmVjdGl2YSBlbWl0ZSBlbCBodG1sIGludGVybm8gZGVsIGVsZW1lbnRvIGVuIGZvcm1hdG8gc3RyaW5nLCBtaWVudHJhcyBxdWUgZGVzeUNvbnRlbnRDaGFuZ2VNdXRhdGlvbiBlbWl0ZSBsb3MgY2FtYmlvcy5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2Rlc3lDb250ZW50Q2hhbmdlXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRDaGFuZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIGNoYW5nZXM6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcblxyXG4gIEBJbnB1dCgpIG9ic2VydmVQcm9wZXJ0aWVzOiB7IGF0dHJpYnV0ZXM6IGJvb2xlYW4sIGNoaWxkTGlzdDogYm9vbGVhbiwgY2hhcmFjdGVyRGF0YTogYm9vbGVhbiwgc3VidHJlZTogYm9vbGVhbiB9ID0ge1xyXG4gICAgYXR0cmlidXRlczogZmFsc2UsXHJcbiAgICBjaGlsZExpc3Q6IHRydWUsXHJcbiAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxyXG4gICAgc3VidHJlZTogdHJ1ZVxyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXN5Q29udGVudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudFJlZj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRlc3lDb250ZW50Q2hhbmdlTXV0YXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuY2hhbmdlcyA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IHtcclxuICAgICAgICBtdXRhdGlvbnMuZm9yRWFjaCgobXV0YXRpb246IE11dGF0aW9uUmVjb3JkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRlc3lDb250ZW50Q2hhbmdlLmVtaXQodGhpcy5lbGVtZW50UmVmKTtcclxuICAgICAgICAgIHRoaXMuZGVzeUNvbnRlbnRDaGFuZ2VNdXRhdGlvbi5lbWl0KG11dGF0aW9uKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNoYW5nZXMub2JzZXJ2ZShlbGVtZW50LCB0aGlzLm9ic2VydmVQcm9wZXJ0aWVzKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ContentChildren, Directive, ElementRef, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
/**
|
|
3
|
+
* Emite un evento cuando el contenido de un elemento esté vacío
|
|
4
|
+
* El contenido marcado con #desyContentEmptyIgnore será ignorado
|
|
5
|
+
*
|
|
6
|
+
* NOTA: tener en cuenta que los eventos se emiten después de generarse la vista, por lo que si al gestionar el evento se realizan
|
|
7
|
+
* cambios que afectan a la template, conviene forzar la detección de cambios. (Ejemplo de esto en el icono de NotificationComponent)
|
|
8
|
+
*/
|
|
9
|
+
export class ContentEmptyDirective {
|
|
10
|
+
constructor(elementRef) {
|
|
11
|
+
this.elementRef = elementRef;
|
|
12
|
+
this.desyContentEmpty = new EventEmitter();
|
|
13
|
+
this.desyContentNotEmpty = new EventEmitter();
|
|
14
|
+
this.lastWasEmpty = false;
|
|
15
|
+
this.viewInit = false;
|
|
16
|
+
const element = this.elementRef.nativeElement;
|
|
17
|
+
this.changes = new MutationObserver((mutations) => mutations.forEach(() => this.checkContent()));
|
|
18
|
+
this.changes.observe(element, {
|
|
19
|
+
attributes: false,
|
|
20
|
+
childList: true,
|
|
21
|
+
characterData: true,
|
|
22
|
+
subtree: false
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
ngAfterViewInit() {
|
|
26
|
+
if (!this.viewInit) {
|
|
27
|
+
this.viewInit = true;
|
|
28
|
+
this.checkContent();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Comprueba el contenido del elemento una vez se haya inicializado la vista. Si se detecta que el elemento está vacío, las comprobaciones
|
|
33
|
+
* sucesivas que tampoco detecten contenido no emitirán evento.
|
|
34
|
+
*/
|
|
35
|
+
checkContent() {
|
|
36
|
+
if (this.viewInit) {
|
|
37
|
+
const childs = this.elementRef.nativeElement.childNodes;
|
|
38
|
+
let hasContent = false;
|
|
39
|
+
for (let i = 0; i < childs.length && !hasContent; i++) {
|
|
40
|
+
const item = childs.item(i);
|
|
41
|
+
if (item.nodeType === Node.TEXT_NODE && item.textContent.length > 0) {
|
|
42
|
+
hasContent = true;
|
|
43
|
+
}
|
|
44
|
+
else if ((item.nodeType === Node.ELEMENT_NODE || item.nodeType === Node.CDATA_SECTION_NODE) && this.isContentNode(item)) {
|
|
45
|
+
hasContent = true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (hasContent) {
|
|
49
|
+
if (this.lastWasEmpty) {
|
|
50
|
+
this.desyContentNotEmpty.emit(this.elementRef.nativeElement.innerHTML);
|
|
51
|
+
}
|
|
52
|
+
this.lastWasEmpty = false;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
if (!this.lastWasEmpty) {
|
|
56
|
+
this.desyContentEmpty.emit(this.elementRef.nativeElement.innerHTML);
|
|
57
|
+
}
|
|
58
|
+
this.lastWasEmpty = true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
isContentNode(elem) {
|
|
63
|
+
let contentNode = true;
|
|
64
|
+
if (this.contentsToIgnore && this.contentsToIgnore.length > 0) {
|
|
65
|
+
contentNode = !this.contentsToIgnore.find(ignoreElem => ignoreElem.nativeElement === elem);
|
|
66
|
+
}
|
|
67
|
+
return contentNode;
|
|
68
|
+
}
|
|
69
|
+
ngOnDestroy() {
|
|
70
|
+
this.changes.disconnect();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
ContentEmptyDirective.decorators = [
|
|
74
|
+
{ type: Directive, args: [{
|
|
75
|
+
selector: '[desyContentEmpty]'
|
|
76
|
+
},] }
|
|
77
|
+
];
|
|
78
|
+
ContentEmptyDirective.ctorParameters = () => [
|
|
79
|
+
{ type: ElementRef }
|
|
80
|
+
];
|
|
81
|
+
ContentEmptyDirective.propDecorators = {
|
|
82
|
+
desyContentEmpty: [{ type: Output }],
|
|
83
|
+
desyContentNotEmpty: [{ type: Output }],
|
|
84
|
+
contentsToIgnore: [{ type: ContentChildren, args: ['desyContentEmptyIgnore', { read: ElementRef },] }]
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1lbXB0eS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9jb250ZW50LWVtcHR5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBYSxNQUFNLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFaEk7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBWG5DLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt4QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQTJCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDNUIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxNQUFNLEdBQTBCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUMvRSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbkUsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDbkI7cUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3pILFVBQVUsR0FBRyxJQUFJLENBQUM7aUJBQ25CO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3hFO2dCQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2FBQzNCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUNyRTtnQkFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQzthQUMxQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFVO1FBQzlCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3RCxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUM1RjtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7WUE1RUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7YUFDL0I7OztZQVhrRCxVQUFVOzs7K0JBYzFELE1BQU07a0NBR04sTUFBTTsrQkFHTixlQUFlLFNBQUMsd0JBQXdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE91dHB1dCwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBFbWl0ZSB1biBldmVudG8gY3VhbmRvIGVsIGNvbnRlbmlkbyBkZSB1biBlbGVtZW50byBlc3TDqSB2YWPDrW9cclxuICogRWwgY29udGVuaWRvIG1hcmNhZG8gY29uICNkZXN5Q29udGVudEVtcHR5SWdub3JlIHNlcsOhIGlnbm9yYWRvXHJcbiAqXHJcbiAqIE5PVEE6IHRlbmVyIGVuIGN1ZW50YSBxdWUgbG9zIGV2ZW50b3Mgc2UgZW1pdGVuIGRlc3B1w6lzIGRlIGdlbmVyYXJzZSBsYSB2aXN0YSwgcG9yIGxvIHF1ZSBzaSBhbCBnZXN0aW9uYXIgZWwgZXZlbnRvIHNlIHJlYWxpemFuXHJcbiAqIGNhbWJpb3MgcXVlIGFmZWN0YW4gYSBsYSB0ZW1wbGF0ZSwgY29udmllbmUgZm9yemFyIGxhIGRldGVjY2nDs24gZGUgY2FtYmlvcy4gKEVqZW1wbG8gZGUgZXN0byBlbiBlbCBpY29ubyBkZSBOb3RpZmljYXRpb25Db21wb25lbnQpXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZXN5Q29udGVudEVtcHR5XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRFbXB0eURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXN5Q29udGVudEVtcHR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzeUNvbnRlbnROb3RFbXB0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbignZGVzeUNvbnRlbnRFbXB0eUlnbm9yZScsIHtyZWFkOiBFbGVtZW50UmVmfSkgY29udGVudHNUb0lnbm9yZTogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICBwcml2YXRlIGNoYW5nZXM6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcbiAgcHJpdmF0ZSBsYXN0V2FzRW1wdHkgPSBmYWxzZTtcclxuICBwcml2YXRlIHZpZXdJbml0ID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5jaGFuZ2VzID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uczogTXV0YXRpb25SZWNvcmRbXSkgPT4gbXV0YXRpb25zLmZvckVhY2goKCkgPT4gdGhpcy5jaGVja0NvbnRlbnQoKSkpO1xyXG4gICAgdGhpcy5jaGFuZ2VzLm9ic2VydmUoZWxlbWVudCwge1xyXG4gICAgICBhdHRyaWJ1dGVzOiBmYWxzZSxcclxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxyXG4gICAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlLFxyXG4gICAgICBzdWJ0cmVlOiBmYWxzZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudmlld0luaXQpIHtcclxuICAgICAgdGhpcy52aWV3SW5pdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2hlY2tDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb21wcnVlYmEgZWwgY29udGVuaWRvIGRlbCBlbGVtZW50byB1bmEgdmV6IHNlIGhheWEgaW5pY2lhbGl6YWRvIGxhIHZpc3RhLiBTaSBzZSBkZXRlY3RhIHF1ZSBlbCBlbGVtZW50byBlc3TDoSB2YWPDrW8sIGxhcyBjb21wcm9iYWNpb25lc1xyXG4gICAqIHN1Y2VzaXZhcyBxdWUgdGFtcG9jbyBkZXRlY3RlbiBjb250ZW5pZG8gbm8gZW1pdGlyw6FuIGV2ZW50by5cclxuICAgKi9cclxuICBjaGVja0NvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aWV3SW5pdCkge1xyXG4gICAgICBjb25zdCBjaGlsZHM6IE5vZGVMaXN0T2Y8Q2hpbGROb2RlPiA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXM7XHJcbiAgICAgIGxldCBoYXNDb250ZW50ID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRzLmxlbmd0aCAmJiAhaGFzQ29udGVudDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGNoaWxkcy5pdGVtKGkpO1xyXG4gICAgICAgIGlmIChpdGVtLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiBpdGVtLnRleHRDb250ZW50Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKGl0ZW0ubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFIHx8IGl0ZW0ubm9kZVR5cGUgPT09IE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFKSAmJiB0aGlzLmlzQ29udGVudE5vZGUoaXRlbSkpIHtcclxuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGhhc0NvbnRlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5sYXN0V2FzRW1wdHkpIHtcclxuICAgICAgICAgIHRoaXMuZGVzeUNvbnRlbnROb3RFbXB0eS5lbWl0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFdhc0VtcHR5ID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmxhc3RXYXNFbXB0eSkge1xyXG4gICAgICAgICAgdGhpcy5kZXN5Q29udGVudEVtcHR5LmVtaXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sYXN0V2FzRW1wdHkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQ29udGVudE5vZGUoZWxlbTogTm9kZSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGNvbnRlbnROb2RlID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmNvbnRlbnRzVG9JZ25vcmUgJiYgdGhpcy5jb250ZW50c1RvSWdub3JlLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29udGVudE5vZGUgPSAhdGhpcy5jb250ZW50c1RvSWdub3JlLmZpbmQoaWdub3JlRWxlbSA9PiBpZ25vcmVFbGVtLm5hdGl2ZUVsZW1lbnQgPT09IGVsZW0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvbnRlbnROb2RlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZXMuZGlzY29ubmVjdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ComponentFactoryResolver, Directive, Injector, Input, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { ContentBaseComponent } from '../components';
|
|
3
|
+
/**
|
|
4
|
+
* Permite introducir contenido de forma dinámica en una posición determinada desde:
|
|
5
|
+
* - component: Componente existente de tipo ContentBase
|
|
6
|
+
* - html: texto html en formato string
|
|
7
|
+
* - text: texto plano en formato string
|
|
8
|
+
*/
|
|
9
|
+
export class CustomInnerContentDirective {
|
|
10
|
+
constructor(viewContainerRef, resolver, injector) {
|
|
11
|
+
this.viewContainerRef = viewContainerRef;
|
|
12
|
+
this.resolver = resolver;
|
|
13
|
+
this.injector = injector;
|
|
14
|
+
this.factory = this.resolver.resolveComponentFactory(ContentBaseComponent);
|
|
15
|
+
}
|
|
16
|
+
ngOnChanges(changes) {
|
|
17
|
+
this.viewContainerRef.clear();
|
|
18
|
+
if (this.desyCustomInnerContent.component && this.desyCustomInnerContent.component instanceof ContentBaseComponent) {
|
|
19
|
+
// Se crea la vista embebida basándose en el contenido del ContentBase indicado.
|
|
20
|
+
this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.component.getContent());
|
|
21
|
+
}
|
|
22
|
+
else if (this.desyCustomInnerContent.template) {
|
|
23
|
+
// Se crea la vista embebida utilizando directamente el template.
|
|
24
|
+
this.viewContainerRef.createEmbeddedView(this.desyCustomInnerContent.template);
|
|
25
|
+
}
|
|
26
|
+
else if (this.desyCustomInnerContent.html) {
|
|
27
|
+
// Se carga el contenido en un div temporal.
|
|
28
|
+
const tmpWrapper = document.createElement('div');
|
|
29
|
+
tmpWrapper.innerHTML = this.desyCustomInnerContent.html;
|
|
30
|
+
// Los nodos hijos del div se proyectan dentro de un componente ContentBase.
|
|
31
|
+
const nodeList = [];
|
|
32
|
+
tmpWrapper.childNodes.forEach(node => nodeList.push(node));
|
|
33
|
+
const componentRef = this.factory.create(this.injector, [nodeList]);
|
|
34
|
+
// Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.
|
|
35
|
+
// Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM
|
|
36
|
+
this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());
|
|
37
|
+
}
|
|
38
|
+
else if (this.desyCustomInnerContent.text) {
|
|
39
|
+
// Se carga el contenido en un nodo de texto
|
|
40
|
+
const textNode = document.createTextNode(this.desyCustomInnerContent.text);
|
|
41
|
+
// El nodo de texto se proyecta dentro de un componente ContentBase
|
|
42
|
+
const componentRef = this.factory.create(this.injector, [[textNode]]);
|
|
43
|
+
// Finalmente se crea la vista embebida basándose en el contenido del ContentBase creado.
|
|
44
|
+
// Se podría hacer con un this.viewContainerRef.createComponent(), pero así se evita el tag envolvente del componente en el DOM
|
|
45
|
+
this.viewContainerRef.createEmbeddedView(componentRef.instance.getContent());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
CustomInnerContentDirective.decorators = [
|
|
50
|
+
{ type: Directive, args: [{
|
|
51
|
+
selector: '[desyCustomInnerContent]'
|
|
52
|
+
},] }
|
|
53
|
+
];
|
|
54
|
+
CustomInnerContentDirective.ctorParameters = () => [
|
|
55
|
+
{ type: ViewContainerRef },
|
|
56
|
+
{ type: ComponentFactoryResolver },
|
|
57
|
+
{ type: Injector }
|
|
58
|
+
];
|
|
59
|
+
CustomInnerContentDirective.propDecorators = {
|
|
60
|
+
desyCustomInnerContent: [{ type: Input }]
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlubmVyLWNvbnRlbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvc2hhcmVkL2RpcmVjdGl2ZXMvY3VzdG9tLWlubmVyLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBRUwsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRDs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTywyQkFBMkI7SUFNdEMsWUFBb0IsZ0JBQWtDLEVBQVUsUUFBa0MsRUFBVSxRQUFrQjtRQUExRyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQzVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxZQUFZLG9CQUFvQixFQUFFO1lBRWxILGdGQUFnRjtZQUNoRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQzlGO2FBQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFO1lBRS9DLGlFQUFpRTtZQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hGO2FBQU0sSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFO1lBRTNDLDRDQUE0QztZQUM1QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pELFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQztZQUV4RCw0RUFBNEU7WUFDNUUsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBRSxRQUFRLENBQUUsQ0FBQyxDQUFDO1lBRXRFLHlGQUF5RjtZQUN6RiwrSEFBK0g7WUFDL0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUM5RTthQUFNLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRTtZQUUzQyw0Q0FBNEM7WUFDNUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFM0UsbUVBQW1FO1lBQ25FLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFFLFFBQVEsQ0FBRSxDQUFDLENBQUMsQ0FBQztZQUV4RSx5RkFBeUY7WUFDekYsK0hBQStIO1lBQy9ILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7YUFDckM7OztZQVpDLGdCQUFnQjtZQUxoQix3QkFBd0I7WUFFeEIsUUFBUTs7O3FDQWtCUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnRGYWN0b3J5LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xyXG5cclxuLyoqXHJcbiAqIFBlcm1pdGUgaW50cm9kdWNpciBjb250ZW5pZG8gZGUgZm9ybWEgZGluw6FtaWNhIGVuIHVuYSBwb3NpY2nDs24gZGV0ZXJtaW5hZGEgZGVzZGU6XHJcbiAqIC0gY29tcG9uZW50OiBDb21wb25lbnRlIGV4aXN0ZW50ZSBkZSB0aXBvIENvbnRlbnRCYXNlXHJcbiAqIC0gaHRtbDogdGV4dG8gaHRtbCBlbiBmb3JtYXRvIHN0cmluZ1xyXG4gKiAtIHRleHQ6IHRleHRvIHBsYW5vIGVuIGZvcm1hdG8gc3RyaW5nXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZXN5Q3VzdG9tSW5uZXJDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1c3RvbUlubmVyQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGRlc3lDdXN0b21Jbm5lckNvbnRlbnQ6IHsgY29tcG9uZW50PzogYW55fENvbnRlbnRCYXNlQ29tcG9uZW50LCB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sIGh0bWw/OiBzdHJpbmcsIHRleHQ/OiBzdHJpbmcgfTtcclxuXHJcbiAgcHJpdmF0ZSBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PENvbnRlbnRCYXNlQ29tcG9uZW50PjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLmZhY3RvcnkgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KENvbnRlbnRCYXNlQ29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xyXG4gICAgaWYgKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC5jb21wb25lbnQgJiYgdGhpcy5kZXN5Q3VzdG9tSW5uZXJDb250ZW50LmNvbXBvbmVudCBpbnN0YW5jZW9mIENvbnRlbnRCYXNlQ29tcG9uZW50KSB7XHJcblxyXG4gICAgICAvLyBTZSBjcmVhIGxhIHZpc3RhIGVtYmViaWRhIGJhc8OhbmRvc2UgZW4gZWwgY29udGVuaWRvIGRlbCBDb250ZW50QmFzZSBpbmRpY2Fkby5cclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmRlc3lDdXN0b21Jbm5lckNvbnRlbnQuY29tcG9uZW50LmdldENvbnRlbnQoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC50ZW1wbGF0ZSkge1xyXG5cclxuICAgICAgLy8gU2UgY3JlYSBsYSB2aXN0YSBlbWJlYmlkYSB1dGlsaXphbmRvIGRpcmVjdGFtZW50ZSBlbCB0ZW1wbGF0ZS5cclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmRlc3lDdXN0b21Jbm5lckNvbnRlbnQudGVtcGxhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRlc3lDdXN0b21Jbm5lckNvbnRlbnQuaHRtbCkge1xyXG5cclxuICAgICAgLy8gU2UgY2FyZ2EgZWwgY29udGVuaWRvIGVuIHVuIGRpdiB0ZW1wb3JhbC5cclxuICAgICAgY29uc3QgdG1wV3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICB0bXBXcmFwcGVyLmlubmVySFRNTCA9IHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC5odG1sO1xyXG5cclxuICAgICAgLy8gTG9zIG5vZG9zIGhpam9zIGRlbCBkaXYgc2UgcHJveWVjdGFuIGRlbnRybyBkZSB1biBjb21wb25lbnRlIENvbnRlbnRCYXNlLlxyXG4gICAgICBjb25zdCBub2RlTGlzdCA9IFtdO1xyXG4gICAgICB0bXBXcmFwcGVyLmNoaWxkTm9kZXMuZm9yRWFjaChub2RlID0+IG5vZGVMaXN0LnB1c2gobm9kZSkpO1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IsIFsgbm9kZUxpc3QgXSk7XHJcblxyXG4gICAgICAvLyBGaW5hbG1lbnRlIHNlIGNyZWEgbGEgdmlzdGEgZW1iZWJpZGEgYmFzw6FuZG9zZSBlbiBlbCBjb250ZW5pZG8gZGVsIENvbnRlbnRCYXNlIGNyZWFkby5cclxuICAgICAgLy8gU2UgcG9kcsOtYSBoYWNlciBjb24gdW4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCgpLCBwZXJvIGFzw60gc2UgZXZpdGEgZWwgdGFnIGVudm9sdmVudGUgZGVsIGNvbXBvbmVudGUgZW4gZWwgRE9NXHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoY29tcG9uZW50UmVmLmluc3RhbmNlLmdldENvbnRlbnQoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC50ZXh0KSB7XHJcblxyXG4gICAgICAvLyBTZSBjYXJnYSBlbCBjb250ZW5pZG8gZW4gdW4gbm9kbyBkZSB0ZXh0b1xyXG4gICAgICBjb25zdCB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMuZGVzeUN1c3RvbUlubmVyQ29udGVudC50ZXh0KTtcclxuXHJcbiAgICAgIC8vIEVsIG5vZG8gZGUgdGV4dG8gc2UgcHJveWVjdGEgZGVudHJvIGRlIHVuIGNvbXBvbmVudGUgQ29udGVudEJhc2VcclxuICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5mYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yLCBbWyB0ZXh0Tm9kZSBdXSk7XHJcblxyXG4gICAgICAvLyBGaW5hbG1lbnRlIHNlIGNyZWEgbGEgdmlzdGEgZW1iZWJpZGEgYmFzw6FuZG9zZSBlbiBlbCBjb250ZW5pZG8gZGVsIENvbnRlbnRCYXNlIGNyZWFkby5cclxuICAgICAgLy8gU2UgcG9kcsOtYSBoYWNlciBjb24gdW4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCgpLCBwZXJvIGFzw60gc2UgZXZpdGEgZWwgdGFnIGVudm9sdmVudGUgZGVsIGNvbXBvbmVudGUgZW4gZWwgRE9NXHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcoY29tcG9uZW50UmVmLmluc3RhbmNlLmdldENvbnRlbnQoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|