desy-angular 6.0.2 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/desy-angular.mjs +5 -0
- package/esm2020/lib/desy-angular.module.mjs +75 -0
- package/esm2020/lib/desy-buttons/components/button/button.component.mjs +115 -0
- package/esm2020/lib/desy-buttons/components/button-loader/button-loader.component.mjs +63 -0
- package/esm2020/lib/desy-buttons/components/dropdown/dropdown.component.mjs +126 -0
- package/esm2020/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +32 -0
- package/esm2020/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +14 -0
- package/esm2020/lib/desy-buttons/components/listbox/listbox.component.mjs +291 -0
- package/esm2020/lib/desy-buttons/components/pill/pill.component.mjs +80 -0
- package/esm2020/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +17 -0
- package/esm2020/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +17 -0
- package/esm2020/lib/desy-buttons/components/toggle/toggle.component.mjs +59 -0
- package/{esm2015/lib/desy-buttons/desy-buttons.module.js → esm2020/lib/desy-buttons/desy-buttons.module.mjs} +64 -35
- package/esm2020/lib/desy-commons/components/content/content.component.mjs +14 -0
- package/esm2020/lib/desy-commons/components/description/description.component.mjs +19 -0
- package/esm2020/lib/desy-commons/components/divider/divider.component.mjs +16 -0
- package/esm2020/lib/desy-commons/components/icon/icon.component.mjs +16 -0
- package/esm2020/lib/desy-commons/components/title/title.component.mjs +17 -0
- package/esm2020/lib/desy-commons/desy-commons.module.mjs +53 -0
- package/esm2020/lib/desy-forms/components/character-count/character-count.component.mjs +130 -0
- package/esm2020/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +240 -0
- package/esm2020/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +264 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +52 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +19 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +16 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +52 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +48 -0
- package/esm2020/lib/desy-forms/components/date-input/date-input.component.mjs +266 -0
- package/esm2020/lib/desy-forms/components/error-message/error-message.component.mjs +31 -0
- package/esm2020/lib/desy-forms/components/fieldset/fieldset.component.mjs +56 -0
- package/esm2020/lib/desy-forms/components/fieldset/legend/legend.component.mjs +23 -0
- package/esm2020/lib/desy-forms/components/file-upload/file-upload.component.mjs +72 -0
- package/esm2020/lib/desy-forms/components/form-field/form-field.component.mjs +124 -0
- package/esm2020/lib/desy-forms/components/hint/hint.component.mjs +29 -0
- package/esm2020/lib/desy-forms/components/input/input.component.mjs +99 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +20 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +53 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +16 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +45 -0
- package/esm2020/lib/desy-forms/components/input-group/input-group.component.mjs +223 -0
- package/esm2020/lib/desy-forms/components/label/label.component.mjs +38 -0
- package/esm2020/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +185 -0
- package/esm2020/lib/desy-forms/components/radios/radios.component.mjs +270 -0
- package/esm2020/lib/desy-forms/components/search-bar/search-bar.component.mjs +66 -0
- package/esm2020/lib/desy-forms/components/select/option/option.component.mjs +22 -0
- package/esm2020/lib/desy-forms/components/select/option-group/option-group.component.mjs +18 -0
- package/esm2020/lib/desy-forms/components/select/select-item/select-item.component.mjs +14 -0
- package/esm2020/lib/desy-forms/components/select/select.component.mjs +93 -0
- package/esm2020/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +12 -0
- package/esm2020/lib/desy-forms/components/textarea/textarea.component.mjs +86 -0
- package/esm2020/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +167 -0
- package/esm2020/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +397 -0
- package/esm2020/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +25 -0
- package/esm2020/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +15 -0
- package/esm2020/lib/desy-forms/components/tree/tree.component.mjs +425 -0
- package/esm2020/lib/desy-forms/desy-forms.module.mjs +209 -0
- package/esm2020/lib/desy-forms/directives/condition.directive.mjs +34 -0
- package/{esm2015/lib/desy-forms/interfaces/select-item-data.js → esm2020/lib/desy-forms/interfaces/select-item-data.mjs} +1 -1
- package/esm2020/lib/desy-forms/models/checkbox-service-item.component.mjs +9 -0
- package/esm2020/lib/desy-forms/models/radio-service-item.component.mjs +9 -0
- package/esm2020/lib/desy-forms/services/checkbox.service.mjs +61 -0
- package/esm2020/lib/desy-forms/services/radio.service.mjs +53 -0
- package/esm2020/lib/desy-modals/components/dialog/dialog.component.mjs +130 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +25 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +23 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +23 -0
- package/esm2020/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +23 -0
- package/esm2020/lib/desy-modals/components/modal/modal.component.mjs +178 -0
- package/esm2020/lib/desy-modals/desy-modals.module.mjs +62 -0
- package/esm2020/lib/desy-modals/services/dialog.service.mjs +114 -0
- package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +16 -0
- package/esm2020/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +47 -0
- package/esm2020/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +19 -0
- package/esm2020/lib/desy-nav/components/error-summary/error-summary.component.mjs +62 -0
- package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +21 -0
- package/esm2020/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +30 -0
- package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +21 -0
- package/esm2020/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +19 -0
- package/esm2020/lib/desy-nav/components/footer/footer.component.mjs +71 -0
- package/esm2020/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +15 -0
- package/esm2020/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +45 -0
- package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +27 -0
- package/esm2020/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +36 -0
- package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +20 -0
- package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +15 -0
- package/esm2020/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +95 -0
- package/esm2020/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +41 -0
- package/esm2020/lib/desy-nav/components/header/header.component.mjs +103 -0
- package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +40 -0
- package/esm2020/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +79 -0
- package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +49 -0
- package/esm2020/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +43 -0
- package/esm2020/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +616 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +45 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +18 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +34 -0
- package/esm2020/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +113 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +51 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +14 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +36 -0
- package/esm2020/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +27 -0
- package/esm2020/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +45 -0
- package/esm2020/lib/desy-nav/components/menubar/menubar.component.mjs +727 -0
- package/esm2020/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +41 -0
- package/esm2020/lib/desy-nav/components/nav/nav.component.mjs +116 -0
- package/esm2020/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +25 -0
- package/esm2020/lib/desy-nav/components/notification/notification.component.mjs +141 -0
- package/esm2020/lib/desy-nav/components/skip-link/skip-link.component.mjs +37 -0
- package/esm2020/lib/desy-nav/desy-nav.module.mjs +221 -0
- package/{esm2015/lib/desy-nav/interfaces/menu-horizontal-item-data.js → esm2020/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs} +1 -1
- package/{esm2015/lib/desy-nav/interfaces/menu-horizontal-item-event-data.js → esm2020/lib/desy-nav/interfaces/menu-horizontal-item-event-data.mjs} +1 -1
- package/esm2020/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +2 -0
- package/esm2020/lib/desy-pagination/components/pagination/pagination.component.mjs +167 -0
- package/esm2020/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +19 -0
- package/esm2020/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +17 -0
- package/esm2020/lib/desy-pagination/desy-pagination.module.mjs +46 -0
- package/esm2020/lib/desy-tables/components/table/components/table-caption.component.mjs +17 -0
- package/esm2020/lib/desy-tables/components/table/components/table-cell.component.mjs +23 -0
- package/esm2020/lib/desy-tables/components/table/components/table-header.component.mjs +18 -0
- package/esm2020/lib/desy-tables/components/table/components/table-row.component.mjs +18 -0
- package/esm2020/lib/desy-tables/components/table/table.component.mjs +78 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +47 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +18 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +23 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +27 -0
- package/esm2020/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +28 -0
- package/esm2020/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +342 -0
- package/esm2020/lib/desy-tables/desy-tables.module.mjs +102 -0
- package/esm2020/lib/desy-tables/directives/cell.directive.mjs +28 -0
- package/esm2020/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +81 -0
- package/esm2020/lib/desy-tables/directives/row.directive.mjs +29 -0
- package/esm2020/lib/desy-tables/interfaces/head-cell-data.mjs +7 -0
- package/esm2020/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +57 -0
- package/esm2020/lib/desy-views/components/accordion/accordion.component.mjs +198 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +39 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-history.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/alert/alert.component.mjs +81 -0
- package/esm2020/lib/desy-views/components/collapsible/collapsible.component.mjs +81 -0
- package/esm2020/lib/desy-views/components/description-list/definition/definition.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/description-list/description-item/description-item.component.mjs +34 -0
- package/esm2020/lib/desy-views/components/description-list/description-list.component.mjs +28 -0
- package/esm2020/lib/desy-views/components/description-list/term/term.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/details/details.component.mjs +31 -0
- package/esm2020/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +17 -0
- package/esm2020/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +15 -0
- package/esm2020/lib/desy-views/components/item/item-item/item-item.component.mjs +15 -0
- package/esm2020/lib/desy-views/components/item/item.component.mjs +121 -0
- package/esm2020/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +12 -0
- package/esm2020/lib/desy-views/components/media-object/media-object.component.mjs +115 -0
- package/esm2020/lib/desy-views/components/spinner/spinner.component.mjs +77 -0
- package/esm2020/lib/desy-views/components/status/status.component.mjs +97 -0
- package/esm2020/lib/desy-views/components/status-item/status-item.component.mjs +143 -0
- package/esm2020/lib/desy-views/components/tabs/panel/panel.component.mjs +19 -0
- package/esm2020/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +37 -0
- package/esm2020/lib/desy-views/components/tabs/tabs.component.mjs +199 -0
- package/esm2020/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +12 -0
- package/esm2020/lib/desy-views/components/tooltip/tooltip.component.mjs +202 -0
- package/esm2020/lib/desy-views/desy-views.module.mjs +175 -0
- package/{esm2015/lib/desy-views/interfaces/accordion-item.data.js → esm2020/lib/desy-views/interfaces/accordion-item.data.mjs} +1 -1
- package/esm2020/lib/desy-views/interfaces/tabs-items-data.mjs +2 -0
- package/esm2020/lib/desy-views/services/alert.service.mjs +88 -0
- package/esm2020/lib/shared/components/accessibility/accessibility.component.mjs +45 -0
- package/esm2020/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +44 -0
- package/esm2020/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +41 -0
- package/esm2020/lib/shared/components/content-base/content-base.component.mjs +24 -0
- package/esm2020/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +18 -0
- package/esm2020/lib/shared/directives/attribute-change.directive.mjs +45 -0
- package/esm2020/lib/shared/directives/click-outside.directive.mjs +40 -0
- package/esm2020/lib/shared/directives/content-change.directive.mjs +45 -0
- package/esm2020/lib/shared/directives/custom-inner-content.directive.mjs +60 -0
- package/esm2020/lib/shared/directives/inner-content.directive.mjs +37 -0
- package/esm2020/lib/shared/pipes/external-href.pipe.mjs +32 -0
- package/esm2020/lib/shared/pipes/inner-html.pipe.mjs +20 -0
- package/esm2020/lib/shared/pipes/make-html-list.pipe.mjs +20 -0
- package/esm2020/lib/shared/shared.module.mjs +99 -0
- package/esm2020/public-api.mjs +221 -0
- package/fesm2015/desy-angular.mjs +11752 -0
- package/fesm2015/desy-angular.mjs.map +1 -0
- package/fesm2020/desy-angular.mjs +11731 -0
- package/fesm2020/desy-angular.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/desy-angular.module.d.ts +12 -0
- package/lib/desy-buttons/components/button/button.component.d.ts +7 -2
- package/lib/desy-buttons/components/button-loader/button-loader.component.d.ts +7 -1
- package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +3 -0
- package/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.d.ts +3 -0
- package/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.d.ts +3 -0
- package/lib/desy-buttons/components/listbox/listbox.component.d.ts +5 -2
- package/lib/desy-buttons/components/pill/pill.component.d.ts +7 -2
- package/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.d.ts +3 -0
- package/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.d.ts +3 -0
- package/lib/desy-buttons/components/toggle/toggle.component.d.ts +3 -0
- package/lib/desy-buttons/desy-buttons.module.d.ts +18 -0
- package/lib/desy-commons/components/content/content.component.d.ts +3 -0
- package/lib/desy-commons/components/description/description.component.d.ts +3 -0
- package/lib/desy-commons/components/divider/divider.component.d.ts +3 -0
- package/lib/desy-commons/components/icon/icon.component.d.ts +3 -0
- package/lib/desy-commons/components/title/title.component.d.ts +3 -0
- package/lib/desy-commons/desy-commons.module.d.ts +12 -0
- package/lib/desy-forms/components/character-count/character-count.component.d.ts +3 -0
- package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +6 -3
- package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +11 -10
- package/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.d.ts +3 -0
- package/lib/desy-forms/components/date-input/date-input.component.d.ts +8 -3
- package/lib/desy-forms/components/error-message/error-message.component.d.ts +3 -0
- package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +3 -0
- package/lib/desy-forms/components/fieldset/legend/legend.component.d.ts +7 -1
- package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +4 -1
- package/lib/desy-forms/components/form-field/form-field.component.d.ts +3 -0
- package/lib/desy-forms/components/hint/hint.component.d.ts +3 -0
- package/lib/desy-forms/components/input/input.component.d.ts +4 -0
- package/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +3 -0
- package/lib/desy-forms/components/input-group/input-group.component.d.ts +5 -1
- package/lib/desy-forms/components/label/label.component.d.ts +7 -2
- package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +6 -3
- package/lib/desy-forms/components/radios/radios.component.d.ts +11 -10
- package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +4 -0
- package/lib/desy-forms/components/select/option/option.component.d.ts +3 -0
- package/lib/desy-forms/components/select/option-group/option-group.component.d.ts +3 -0
- package/lib/desy-forms/components/select/select-item/select-item.component.d.ts +3 -0
- package/lib/desy-forms/components/select/select.component.d.ts +4 -0
- package/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.d.ts +3 -0
- package/lib/desy-forms/components/textarea/textarea.component.d.ts +4 -1
- package/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.d.ts +4 -1
- package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +9 -6
- package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +3 -0
- package/lib/desy-forms/components/tree/tree-sub/tree-sub.component.d.ts +3 -0
- package/lib/desy-forms/components/tree/tree.component.d.ts +3 -0
- package/lib/desy-forms/desy-forms.module.d.ts +45 -0
- package/lib/desy-forms/directives/condition.directive.d.ts +3 -0
- package/lib/desy-forms/interfaces/select-item-data.d.ts +3 -0
- package/lib/desy-forms/models/checkbox-service-item.component.d.ts +13 -0
- package/lib/desy-forms/models/radio-service-item.component.d.ts +12 -0
- package/lib/desy-forms/services/checkbox.service.d.ts +14 -0
- package/lib/desy-forms/services/radio.service.d.ts +13 -0
- package/lib/desy-modals/components/dialog/dialog.component.d.ts +5 -2
- package/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.d.ts +3 -0
- package/lib/desy-modals/components/modal/modal.component.d.ts +3 -0
- package/lib/desy-modals/desy-modals.module.d.ts +14 -0
- package/lib/desy-modals/services/dialog.service.d.ts +3 -0
- package/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.d.ts +3 -0
- package/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.d.ts +3 -0
- package/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.d.ts +3 -0
- package/lib/desy-nav/components/error-summary/error-summary.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-meta/footer-meta.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/footer/footer.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-navigation/header-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +3 -0
- package/lib/desy-nav/components/header/header.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menu-vertical/menu-vertical.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.d.ts +3 -0
- package/lib/desy-nav/components/menubar/directives/menubaritem.directive.d.ts +3 -0
- package/lib/desy-nav/components/menubar/menubar.component.d.ts +3 -0
- package/lib/desy-nav/components/nav/nav-item/nav-item.component.d.ts +3 -0
- package/lib/desy-nav/components/nav/nav.component.d.ts +6 -3
- package/lib/desy-nav/components/notification/notification-item/notification-item.component.d.ts +3 -0
- package/lib/desy-nav/components/notification/notification.component.d.ts +3 -0
- package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +3 -0
- package/lib/desy-nav/desy-nav.module.d.ts +46 -0
- package/lib/desy-nav/interfaces/menu-horizontal-item-data.d.ts +1 -0
- package/lib/desy-nav/interfaces/menu-horizontal-item-event-data.d.ts +1 -0
- package/lib/desy-nav/interfaces/menu-navigation-item-sub-item.d.ts +8 -0
- package/lib/desy-pagination/components/pagination/pagination.component.d.ts +3 -0
- package/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.d.ts +3 -0
- package/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.d.ts +3 -0
- package/lib/desy-pagination/desy-pagination.module.d.ts +11 -0
- package/lib/desy-tables/components/table/components/table-caption.component.d.ts +3 -0
- package/lib/desy-tables/components/table/components/table-cell.component.d.ts +3 -0
- package/lib/desy-tables/components/table/components/table-header.component.d.ts +3 -0
- package/lib/desy-tables/components/table/components/table-row.component.d.ts +3 -0
- package/lib/desy-tables/components/table/table.component.d.ts +4 -1
- package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.d.ts +3 -0
- package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +6 -3
- package/lib/desy-tables/desy-tables.module.d.ts +23 -0
- package/lib/desy-tables/directives/cell.directive.d.ts +3 -0
- package/lib/desy-tables/directives/focus-clicked-cell.directive.d.ts +3 -0
- package/lib/desy-tables/directives/row.directive.d.ts +3 -0
- package/lib/desy-tables/interfaces/head-cell-data.d.ts +2 -0
- package/lib/desy-views/components/accordion/accordion-header/accordion-header.component.d.ts +3 -0
- package/lib/desy-views/components/accordion/accordion-item/accordion-item.component.d.ts +3 -0
- package/lib/desy-views/components/accordion/accordion.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-history.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.d.ts +3 -0
- package/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.d.ts +3 -0
- package/lib/desy-views/components/alert/alert.component.d.ts +4 -1
- package/lib/desy-views/components/collapsible/collapsible.component.d.ts +5 -1
- package/lib/desy-views/components/description-list/definition/definition.component.d.ts +3 -0
- package/lib/desy-views/components/description-list/description-item/description-item.component.d.ts +3 -0
- package/lib/desy-views/components/description-list/description-list.component.d.ts +3 -0
- package/lib/desy-views/components/description-list/term/term.component.d.ts +3 -0
- package/lib/desy-views/components/details/details.component.d.ts +7 -1
- package/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.d.ts +3 -0
- package/lib/desy-views/components/item/item-content-right/item-content-right.component.d.ts +3 -0
- package/lib/desy-views/components/item/item-item/item-item.component.d.ts +3 -0
- package/lib/desy-views/components/item/item.component.d.ts +4 -1
- package/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.d.ts +3 -0
- package/lib/desy-views/components/media-object/media-object.component.d.ts +3 -0
- package/lib/desy-views/components/spinner/spinner.component.d.ts +3 -0
- package/lib/desy-views/components/status/status.component.d.ts +7 -2
- package/lib/desy-views/components/status-item/status-item.component.d.ts +3 -0
- package/lib/desy-views/components/tabs/panel/panel.component.d.ts +3 -0
- package/lib/desy-views/components/tabs/tab-item/tab-item.component.d.ts +3 -0
- package/lib/desy-views/components/tabs/tabs.component.d.ts +9 -3
- package/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.d.ts +3 -0
- package/lib/desy-views/components/tooltip/tooltip.component.d.ts +3 -0
- package/lib/desy-views/desy-views.module.d.ts +37 -0
- package/lib/desy-views/interfaces/accordion-item.data.d.ts +1 -0
- package/lib/desy-views/interfaces/tabs-items-data.d.ts +2 -0
- package/lib/desy-views/services/alert.service.d.ts +3 -0
- package/lib/shared/components/accessibility/accessibility.component.d.ts +3 -0
- package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +4 -1
- package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +3 -0
- package/lib/shared/components/content-base/content-base.component.d.ts +3 -0
- package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +3 -0
- package/lib/shared/directives/attribute-change.directive.d.ts +3 -0
- package/lib/shared/directives/click-outside.directive.d.ts +3 -0
- package/lib/shared/directives/content-change.directive.d.ts +3 -0
- package/lib/shared/directives/custom-inner-content.directive.d.ts +3 -0
- package/lib/shared/directives/inner-content.directive.d.ts +3 -0
- package/lib/shared/pipes/external-href.pipe.d.ts +3 -0
- package/lib/shared/pipes/inner-html.pipe.d.ts +3 -0
- package/lib/shared/pipes/make-html-list.pipe.d.ts +3 -0
- package/lib/shared/shared.module.d.ts +19 -0
- package/package.json +33 -20
- package/public-api.d.ts +24 -0
- package/bundles/desy-angular.umd.js +0 -10918
- package/bundles/desy-angular.umd.js.map +0 -1
- package/bundles/desy-angular.umd.min.js +0 -2
- package/bundles/desy-angular.umd.min.js.map +0 -1
- package/desy-angular.d.ts +0 -51
- package/desy-angular.metadata.json +0 -1
- package/esm2015/desy-angular.js +0 -52
- package/esm2015/lib/desy-angular.module.js +0 -38
- package/esm2015/lib/desy-buttons/components/button/button.component.js +0 -92
- package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +0 -50
- package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +0 -111
- package/esm2015/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.js +0 -26
- package/esm2015/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.js +0 -14
- package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +0 -265
- package/esm2015/lib/desy-buttons/components/pill/pill.component.js +0 -64
- package/esm2015/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.js +0 -15
- package/esm2015/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.js +0 -15
- package/esm2015/lib/desy-buttons/components/toggle/toggle.component.js +0 -44
- package/esm2015/lib/desy-commons/components/content/content.component.js +0 -14
- package/esm2015/lib/desy-commons/components/description/description.component.js +0 -15
- package/esm2015/lib/desy-commons/components/divider/divider.component.js +0 -15
- package/esm2015/lib/desy-commons/components/icon/icon.component.js +0 -15
- package/esm2015/lib/desy-commons/components/title/title.component.js +0 -14
- package/esm2015/lib/desy-commons/desy-commons.module.js +0 -36
- package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +0 -109
- package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +0 -188
- package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +0 -226
- package/esm2015/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.js +0 -38
- package/esm2015/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.js +0 -19
- package/esm2015/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.js +0 -13
- package/esm2015/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.js +0 -38
- package/esm2015/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.js +0 -36
- package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +0 -222
- package/esm2015/lib/desy-forms/components/error-message/error-message.component.js +0 -28
- package/esm2015/lib/desy-forms/components/fieldset/fieldset.component.js +0 -44
- package/esm2015/lib/desy-forms/components/fieldset/legend/legend.component.js +0 -16
- package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +0 -51
- package/esm2015/lib/desy-forms/components/form-field/form-field.component.js +0 -103
- package/esm2015/lib/desy-forms/components/hint/hint.component.js +0 -27
- package/esm2015/lib/desy-forms/components/input/input.component.js +0 -67
- package/esm2015/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.js +0 -20
- package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +0 -39
- package/esm2015/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.js +0 -13
- package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +0 -35
- package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +0 -179
- package/esm2015/lib/desy-forms/components/label/label.component.js +0 -30
- package/esm2015/lib/desy-forms/components/radios/radio-item/radio-item.component.js +0 -144
- package/esm2015/lib/desy-forms/components/radios/radios.component.js +0 -233
- package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +0 -45
- package/esm2015/lib/desy-forms/components/select/option/option.component.js +0 -17
- package/esm2015/lib/desy-forms/components/select/option-group/option-group.component.js +0 -17
- package/esm2015/lib/desy-forms/components/select/select-item/select-item.component.js +0 -14
- package/esm2015/lib/desy-forms/components/select/select.component.js +0 -64
- package/esm2015/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.js +0 -12
- package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +0 -60
- package/esm2015/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.js +0 -151
- package/esm2015/lib/desy-forms/components/tree/tree-item/tree-item.component.js +0 -370
- package/esm2015/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.js +0 -25
- package/esm2015/lib/desy-forms/components/tree/tree-sub/tree-sub.component.js +0 -14
- package/esm2015/lib/desy-forms/components/tree/tree.component.js +0 -408
- package/esm2015/lib/desy-forms/desy-forms.module.js +0 -130
- package/esm2015/lib/desy-forms/directives/condition.directive.js +0 -32
- package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +0 -121
- package/esm2015/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.js +0 -20
- package/esm2015/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.js +0 -19
- package/esm2015/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.js +0 -19
- package/esm2015/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.js +0 -19
- package/esm2015/lib/desy-modals/components/modal/modal.component.js +0 -145
- package/esm2015/lib/desy-modals/desy-modals.module.js +0 -41
- package/esm2015/lib/desy-modals/services/dialog.service.js +0 -117
- package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.js +0 -15
- package/esm2015/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.js +0 -42
- package/esm2015/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.js +0 -15
- package/esm2015/lib/desy-nav/components/error-summary/error-summary.component.js +0 -46
- package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.js +0 -16
- package/esm2015/lib/desy-nav/components/footer/footer-meta/footer-meta.component.js +0 -23
- package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.js +0 -16
- package/esm2015/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.js +0 -16
- package/esm2015/lib/desy-nav/components/footer/footer.component.js +0 -52
- package/esm2015/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.js +0 -11
- package/esm2015/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.js +0 -36
- package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.js +0 -19
- package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +0 -29
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +0 -22
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.js +0 -11
- package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.js +0 -88
- package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +0 -34
- package/esm2015/lib/desy-nav/components/header/header.component.js +0 -66
- package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.js +0 -28
- package/esm2015/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.js +0 -68
- package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.js +0 -35
- package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.js +0 -31
- package/esm2015/lib/desy-nav/components/menu-navigation/menu-navigation.component.js +0 -568
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.js +0 -32
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.js +0 -16
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.js +0 -24
- package/esm2015/lib/desy-nav/components/menu-vertical/menu-vertical.component.js +0 -89
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.js +0 -36
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.js +0 -14
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.js +0 -29
- package/esm2015/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.js +0 -23
- package/esm2015/lib/desy-nav/components/menubar/directives/menubaritem.directive.js +0 -37
- package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +0 -672
- package/esm2015/lib/desy-nav/components/nav/nav-item/nav-item.component.js +0 -30
- package/esm2015/lib/desy-nav/components/nav/nav.component.js +0 -105
- package/esm2015/lib/desy-nav/components/notification/notification-item/notification-item.component.js +0 -18
- package/esm2015/lib/desy-nav/components/notification/notification.component.js +0 -102
- package/esm2015/lib/desy-nav/components/skip-link/skip-link.component.js +0 -33
- package/esm2015/lib/desy-nav/desy-nav.module.js +0 -136
- package/esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item.js +0 -2
- package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +0 -138
- package/esm2015/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.js +0 -15
- package/esm2015/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.js +0 -14
- package/esm2015/lib/desy-pagination/desy-pagination.module.js +0 -31
- package/esm2015/lib/desy-tables/components/table/components/table-caption.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table/components/table-cell.component.js +0 -17
- package/esm2015/lib/desy-tables/components/table/components/table-header.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table/components/table-row.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table/table.component.js +0 -55
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.js +0 -33
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.js +0 -14
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.js +0 -17
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.js +0 -20
- package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.js +0 -22
- package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +0 -316
- package/esm2015/lib/desy-tables/desy-tables.module.js +0 -64
- package/esm2015/lib/desy-tables/directives/cell.directive.js +0 -26
- package/esm2015/lib/desy-tables/directives/focus-clicked-cell.directive.js +0 -78
- package/esm2015/lib/desy-tables/directives/row.directive.js +0 -24
- package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +0 -7
- package/esm2015/lib/desy-views/components/accordion/accordion-header/accordion-header.component.js +0 -14
- package/esm2015/lib/desy-views/components/accordion/accordion-item/accordion-item.component.js +0 -43
- package/esm2015/lib/desy-views/components/accordion/accordion.component.js +0 -153
- package/esm2015/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.js +0 -31
- package/esm2015/lib/desy-views/components/accordion-history/accordion-history.component.js +0 -15
- package/esm2015/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.js +0 -14
- package/esm2015/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.js +0 -14
- package/esm2015/lib/desy-views/components/alert/alert.component.js +0 -75
- package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +0 -55
- package/esm2015/lib/desy-views/components/description-list/definition/definition.component.js +0 -15
- package/esm2015/lib/desy-views/components/description-list/description-item/description-item.component.js +0 -26
- package/esm2015/lib/desy-views/components/description-list/description-list.component.js +0 -22
- package/esm2015/lib/desy-views/components/description-list/term/term.component.js +0 -15
- package/esm2015/lib/desy-views/components/details/details.component.js +0 -20
- package/esm2015/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.js +0 -14
- package/esm2015/lib/desy-views/components/item/item-content-right/item-content-right.component.js +0 -11
- package/esm2015/lib/desy-views/components/item/item-item/item-item.component.js +0 -11
- package/esm2015/lib/desy-views/components/item/item.component.js +0 -87
- package/esm2015/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.js +0 -11
- package/esm2015/lib/desy-views/components/media-object/media-object.component.js +0 -67
- package/esm2015/lib/desy-views/components/spinner/spinner.component.js +0 -45
- package/esm2015/lib/desy-views/components/status/status.component.js +0 -58
- package/esm2015/lib/desy-views/components/status-item/status-item.component.js +0 -86
- package/esm2015/lib/desy-views/components/tabs/panel/panel.component.js +0 -15
- package/esm2015/lib/desy-views/components/tabs/tab-item/tab-item.component.js +0 -28
- package/esm2015/lib/desy-views/components/tabs/tabs.component.js +0 -150
- package/esm2015/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.js +0 -11
- package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +0 -155
- package/esm2015/lib/desy-views/desy-views.module.js +0 -108
- package/esm2015/lib/desy-views/interfaces/tabs-items-data.js +0 -2
- package/esm2015/lib/desy-views/services/alert.service.js +0 -89
- package/esm2015/lib/shared/components/accessibility/accessibility.component.js +0 -29
- package/esm2015/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.js +0 -27
- package/esm2015/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.js +0 -26
- package/esm2015/lib/shared/components/content-base/content-base.component.js +0 -20
- package/esm2015/lib/shared/components/text-or-html-required/text-or-html-required.component.js +0 -14
- package/esm2015/lib/shared/directives/attribute-change.directive.js +0 -43
- package/esm2015/lib/shared/directives/click-outside.directive.js +0 -35
- package/esm2015/lib/shared/directives/content-change.directive.js +0 -43
- package/esm2015/lib/shared/directives/custom-inner-content.directive.js +0 -62
- package/esm2015/lib/shared/directives/inner-content.directive.js +0 -34
- package/esm2015/lib/shared/pipes/external-href.pipe.js +0 -28
- package/esm2015/lib/shared/pipes/inner-html.pipe.js +0 -19
- package/esm2015/lib/shared/pipes/make-html-list.pipe.js +0 -16
- package/esm2015/lib/shared/shared.module.js +0 -62
- package/esm2015/public-api.js +0 -197
- package/fesm2015/desy-angular.js +0 -9650
- package/fesm2015/desy-angular.js.map +0 -1
- /package/{esm2015/lib/desy-buttons/interfaces/listbox-item-data.js → esm2020/lib/desy-buttons/interfaces/listbox-item-data.mjs} +0 -0
- /package/{esm2015/lib/desy-buttons/interfaces/listbox-label-data.js → esm2020/lib/desy-buttons/interfaces/listbox-label-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/content-data.js → esm2020/lib/desy-commons/interfaces/content-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/description-data.js → esm2020/lib/desy-commons/interfaces/description-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/divider-data.js → esm2020/lib/desy-commons/interfaces/divider-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/icon-data.js → esm2020/lib/desy-commons/interfaces/icon-data.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/index.js → esm2020/lib/desy-commons/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-commons/interfaces/title-data.js → esm2020/lib/desy-commons/interfaces/title-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/components/tree/interfaces/itree-item.js → esm2020/lib/desy-forms/components/tree/interfaces/itree-item.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.js → esm2020/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/accesibility-data.js → esm2020/lib/desy-forms/interfaces/accesibility-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/error-message-data.js → esm2020/lib/desy-forms/interfaces/error-message-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/fieldset-data.js → esm2020/lib/desy-forms/interfaces/fieldset-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/hint-data.js → esm2020/lib/desy-forms/interfaces/hint-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/index.js → esm2020/lib/desy-forms/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-checkbox-data.js → esm2020/lib/desy-forms/interfaces/item-checkbox-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-date-input-data.js → esm2020/lib/desy-forms/interfaces/item-date-input-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-divider-date-input-data.js → esm2020/lib/desy-forms/interfaces/item-divider-date-input-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-divider-input-group-data.js → esm2020/lib/desy-forms/interfaces/item-divider-input-group-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-input-group-data.js → esm2020/lib/desy-forms/interfaces/item-input-group-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-radio-data.js → esm2020/lib/desy-forms/interfaces/item-radio-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/item-radio-with-template-data.js → esm2020/lib/desy-forms/interfaces/item-radio-with-template-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/label-data.js → esm2020/lib/desy-forms/interfaces/label-data.mjs} +0 -0
- /package/{esm2015/lib/desy-forms/interfaces/legend-data.js → esm2020/lib/desy-forms/interfaces/legend-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/dialog-options.js → esm2020/lib/desy-modals/interfaces/dialog-options.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/index.js → esm2020/lib/desy-modals/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-button-data.js → esm2020/lib/desy-modals/interfaces/modal-button-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-data.js → esm2020/lib/desy-modals/interfaces/modal-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-icon-data.js → esm2020/lib/desy-modals/interfaces/modal-icon-data.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/modal-options.js → esm2020/lib/desy-modals/interfaces/modal-options.mjs} +0 -0
- /package/{esm2015/lib/desy-modals/interfaces/open-dialog-result.js → esm2020/lib/desy-modals/interfaces/open-dialog-result.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/breadcrumbs.data.js → esm2020/lib/desy-nav/interfaces/breadcrumbs.data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/error-summary-data.js → esm2020/lib/desy-nav/interfaces/error-summary-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/footer-data.js → esm2020/lib/desy-nav/interfaces/footer-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-dropdown-data.js → esm2020/lib/desy-nav/interfaces/header-dropdown-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-navigation-data.js → esm2020/lib/desy-nav/interfaces/header-navigation-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js → esm2020/lib/desy-nav/interfaces/header-navigation-item-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-offcanvas-data.js → esm2020/lib/desy-nav/interfaces/header-offcanvas-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/header-subnav-data.js → esm2020/lib/desy-nav/interfaces/header-subnav-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/index.js → esm2020/lib/desy-nav/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.js → esm2020/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-navigation.js → esm2020/lib/desy-nav/interfaces/menu-navigation.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-vertical-items-data.js → esm2020/lib/desy-nav/interfaces/menu-vertical-items-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-vertical-sub-data.js → esm2020/lib/desy-nav/interfaces/menu-vertical-sub-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menu-vertical-sub-items-data.js → esm2020/lib/desy-nav/interfaces/menu-vertical-sub-items-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.js → esm2020/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item-sub-item.js → esm2020/lib/desy-nav/interfaces/menubar-item-sub-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item-sub.js → esm2020/lib/desy-nav/interfaces/menubar-item-sub.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/menubar-item.js → esm2020/lib/desy-nav/interfaces/menubar-item.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/nav-item-event.data.js → esm2020/lib/desy-nav/interfaces/nav-item-event.data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/nav-item.data.js → esm2020/lib/desy-nav/interfaces/nav-item.data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/notification-items-data.js → esm2020/lib/desy-nav/interfaces/notification-items-data.mjs} +0 -0
- /package/{esm2015/lib/desy-nav/interfaces/notification-options.js → esm2020/lib/desy-nav/interfaces/notification-options.mjs} +0 -0
- /package/{esm2015/lib/desy-pagination/interfaces/index.js → esm2020/lib/desy-pagination/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-pagination/interfaces/pagination-item.data.js → esm2020/lib/desy-pagination/interfaces/pagination-item.data.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/cell-data.js → esm2020/lib/desy-tables/interfaces/cell-data.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/index.js → esm2020/lib/desy-tables/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/recalculate-table-params.js → esm2020/lib/desy-tables/interfaces/recalculate-table-params.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/row-data.js → esm2020/lib/desy-tables/interfaces/row-data.mjs} +0 -0
- /package/{esm2015/lib/desy-tables/interfaces/wrapper-data.js → esm2020/lib/desy-tables/interfaces/wrapper-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/accordion-header.data.js → esm2020/lib/desy-views/interfaces/accordion-header.data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/alert-options.js → esm2020/lib/desy-views/interfaces/alert-options.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/description-item.data.js → esm2020/lib/desy-views/interfaces/description-item.data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/index.js → esm2020/lib/desy-views/interfaces/index.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/open-alert-result.js → esm2020/lib/desy-views/interfaces/open-alert-result.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/status-data.js → esm2020/lib/desy-views/interfaces/status-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/status-icon-data.js → esm2020/lib/desy-views/interfaces/status-icon-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/status-item-title-data.js → esm2020/lib/desy-views/interfaces/status-item-title-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/tabs-panel-data.js → esm2020/lib/desy-views/interfaces/tabs-panel-data.mjs} +0 -0
- /package/{esm2015/lib/desy-views/interfaces/term-definition.data.js → esm2020/lib/desy-views/interfaces/term-definition.data.mjs} +0 -0
- /package/{esm2015/lib/shared/components/index.js → esm2020/lib/shared/components/index.mjs} +0 -0
- /package/{esm2015/lib/shared/decorators/desy-content-child.decorator.js → esm2020/lib/shared/decorators/desy-content-child.decorator.mjs} +0 -0
- /package/{esm2015/lib/shared/decorators/desy-on-input-change.decorator.js → esm2020/lib/shared/decorators/desy-on-input-change.decorator.mjs} +0 -0
- /package/{esm2015/lib/shared/interfaces/accesibility-data.js → esm2020/lib/shared/interfaces/accesibility-data.mjs} +0 -0
- /package/{esm2015/lib/shared/utils/focus-utils.js → esm2020/lib/shared/utils/focus-utils.mjs} +0 -0
- /package/{esm2015/lib/shared/utils/search-utils.js → esm2020/lib/shared/utils/search-utils.mjs} +0 -0
- /package/{esm2015/lib/shared/utils/string-utils.js → esm2020/lib/shared/utils/string-utils.mjs} +0 -0
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Component, ContentChildren, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
3
|
+
import { DesyContentChild } from "../../../shared/decorators/desy-content-child.decorator";
|
|
4
|
+
import { TreeItemComponent } from "./tree-item/tree-item.component";
|
|
5
|
+
import { DesyOnInputChange } from "../../../shared/decorators/desy-on-input-change.decorator";
|
|
6
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
7
|
+
import { FormFieldComponent } from "../form-field/form-field.component";
|
|
8
|
+
import { FieldsetComponent } from "../fieldset/fieldset.component";
|
|
9
|
+
import { SearchBarComponent } from "../search-bar/search-bar.component";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
import * as i2 from "../../../shared/pipes/make-html-list.pipe";
|
|
13
|
+
export class TreeComponent extends FormFieldComponent {
|
|
14
|
+
constructor(changeDetector) {
|
|
15
|
+
super();
|
|
16
|
+
this.changeDetector = changeDetector;
|
|
17
|
+
this.expandedFirstLevel = true;
|
|
18
|
+
this.decoupleChildFromParent = false;
|
|
19
|
+
this.disableDefaultSearch = false;
|
|
20
|
+
this.searchMatchValuesChange = new EventEmitter();
|
|
21
|
+
this.rootItems = [];
|
|
22
|
+
this._itemListCheckedSubscriptions = [];
|
|
23
|
+
this._itemListQuitFocusSubscriptions = [];
|
|
24
|
+
this._alreadyConfiguringItems = false;
|
|
25
|
+
}
|
|
26
|
+
ngOnDestroy() {
|
|
27
|
+
this.clearSubscriptions(this._itemListCheckedSubscriptions);
|
|
28
|
+
this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
|
|
29
|
+
this._itemListSubscription?.unsubscribe();
|
|
30
|
+
this._allItemListSubscription?.unsubscribe();
|
|
31
|
+
}
|
|
32
|
+
ngOnChanges(changes) {
|
|
33
|
+
this.configureAllItems();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Se sobrescribe el valor para actualizar los items
|
|
37
|
+
* @Override
|
|
38
|
+
*/
|
|
39
|
+
writeValue(value) {
|
|
40
|
+
this.value = value;
|
|
41
|
+
this.configureAllItems(true);
|
|
42
|
+
this.onChange(this.value);
|
|
43
|
+
}
|
|
44
|
+
/*
|
|
45
|
+
* Eventos
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* Actualiza el valor del componente al checkquearse un ítem
|
|
49
|
+
* @param originItem ítem modificado
|
|
50
|
+
*/
|
|
51
|
+
updateValueFromItems(originItem) {
|
|
52
|
+
// Si es radio, se desactivan el resto de items cuando se activa otro item
|
|
53
|
+
if (this.type !== 'checkbox') {
|
|
54
|
+
const items = this.getAllItemsInOrder();
|
|
55
|
+
items.forEach(item => {
|
|
56
|
+
if (item !== originItem && item.checked) {
|
|
57
|
+
item.setChecked(false, true);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
else if (!this.decoupleChildFromParent) {
|
|
62
|
+
this.rootItems.forEach(item => item.setCheckedAutomaticallyDependingOnChildren());
|
|
63
|
+
}
|
|
64
|
+
this.value = [];
|
|
65
|
+
const items = this.getAllItemsInOrder();
|
|
66
|
+
items.forEach(item => {
|
|
67
|
+
if (item.checked) {
|
|
68
|
+
this.value.push(item.value);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
this.onChange(this.value);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Gestiona cuando el foco abandona un ítem desde un evento de teclado controlado
|
|
75
|
+
* @param options
|
|
76
|
+
*/
|
|
77
|
+
handleItemQuitFocus(options) {
|
|
78
|
+
if (options && options.nextElement) {
|
|
79
|
+
const items = this.getAllItemsInOrder();
|
|
80
|
+
const focusableItems = items.filter(item => !item.isHidden() && !item.disabled && item.allParentsExpanded);
|
|
81
|
+
switch (options.nextElement) {
|
|
82
|
+
case "first":
|
|
83
|
+
focusableItems[0].focus();
|
|
84
|
+
break;
|
|
85
|
+
case "last":
|
|
86
|
+
focusableItems[focusableItems.length - 1].focus();
|
|
87
|
+
break;
|
|
88
|
+
case "parent":
|
|
89
|
+
const currentSubLevel = options.currentItem.subLevel;
|
|
90
|
+
if (currentSubLevel > 0) {
|
|
91
|
+
const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
|
|
92
|
+
const parent = focusableItems.slice(0, currentItemIndex).reverse().find(item => item.subLevel < currentSubLevel);
|
|
93
|
+
if (parent) {
|
|
94
|
+
parent.focus();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
case "firstChild":
|
|
99
|
+
case "next":
|
|
100
|
+
if (options.currentItem) {
|
|
101
|
+
let currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
|
|
102
|
+
if (currentItemIndex < focusableItems.length - 1) {
|
|
103
|
+
focusableItems[currentItemIndex + 1].focus();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
case "previous":
|
|
108
|
+
if (options.currentItem) {
|
|
109
|
+
const currentItemIndex = focusableItems.findIndex(item => item === options.currentItem);
|
|
110
|
+
if (currentItemIndex > 0) {
|
|
111
|
+
focusableItems[currentItemIndex - 1].focus();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Realiza la búsqueda interna de los items en el componente
|
|
120
|
+
* @param value texto de búsqueda
|
|
121
|
+
*/
|
|
122
|
+
onSearch(value) {
|
|
123
|
+
if (!this.disableDefaultSearch) {
|
|
124
|
+
if (value && value.length > 0) {
|
|
125
|
+
this.searchMatchValues = this.allItems.filter(item => item.matchesText(value)).map(item => item.value);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
this.searchMatchValues = null;
|
|
129
|
+
}
|
|
130
|
+
this.searchMatchValuesChange.emit(this.searchMatchValues);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/*
|
|
134
|
+
* Eventos al cambiar propiedades
|
|
135
|
+
*/
|
|
136
|
+
/**
|
|
137
|
+
* Configura los items del árbol
|
|
138
|
+
*/
|
|
139
|
+
configureAllItems(isValueChange = false) {
|
|
140
|
+
if (!this._alreadyConfiguringItems) {
|
|
141
|
+
this._alreadyConfiguringItems = true;
|
|
142
|
+
// Lo realizamos desde un setTimeout para que todos los inputs, values y demás vivan en paz y armonía
|
|
143
|
+
setTimeout(() => {
|
|
144
|
+
if (this.allItems?.length > 0) {
|
|
145
|
+
this.clearSubscriptions(this._itemListCheckedSubscriptions);
|
|
146
|
+
this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
|
|
147
|
+
this.allItems.forEach(item => {
|
|
148
|
+
item.parentName = this.name;
|
|
149
|
+
item.type = this.type;
|
|
150
|
+
item.inheritedDescribedBy = this.getDescribedByForItems();
|
|
151
|
+
item.inheritedExpandedFirstLevel = this.expandedFirstLevel;
|
|
152
|
+
item.inheritedDecoupleChildFromParent = this.decoupleChildFromParent;
|
|
153
|
+
if ((this.value && this.value.length > 0) || isValueChange) {
|
|
154
|
+
const valueList = this.value ? this.value : [];
|
|
155
|
+
item.setChecked(!!valueList.find(v => v === item.value), true);
|
|
156
|
+
}
|
|
157
|
+
item.detectChanges();
|
|
158
|
+
const checkedSubscription = item.checkedChangeForTree.subscribe(() => this.updateValueFromItems(item));
|
|
159
|
+
this._itemListCheckedSubscriptions.push(checkedSubscription);
|
|
160
|
+
const quitFocusSubscription = item.quitFocus.subscribe(options => this.handleItemQuitFocus(options));
|
|
161
|
+
this._itemListQuitFocusSubscriptions.push(quitFocusSubscription);
|
|
162
|
+
});
|
|
163
|
+
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
164
|
+
this.buildTree();
|
|
165
|
+
if (!this.value) {
|
|
166
|
+
this.updateValueFromItems();
|
|
167
|
+
}
|
|
168
|
+
if (this.searchMatchValues) {
|
|
169
|
+
this.onSearchMatchValuesChange();
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (this.allItems && !this._allItemListSubscription) {
|
|
173
|
+
this._allItemListSubscription = this.allItems.changes.subscribe(() => this.configureAllItems());
|
|
174
|
+
}
|
|
175
|
+
this.changeDetector.detectChanges();
|
|
176
|
+
this._alreadyConfiguringItems = false;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Modifica los items visibles según el filtro de búsqueda
|
|
182
|
+
*/
|
|
183
|
+
onSearchMatchValuesChange() {
|
|
184
|
+
if (this.allItems) {
|
|
185
|
+
this.allItems.forEach(item => {
|
|
186
|
+
item.inheritedMatchesSearch = true;
|
|
187
|
+
});
|
|
188
|
+
if (this.searchMatchValues !== null && this.searchMatchValues !== undefined) {
|
|
189
|
+
this.allItems.forEach(item => {
|
|
190
|
+
if (this.searchMatchValues.findIndex(value => item.value === value) < 0) {
|
|
191
|
+
item.inheritedMatchesSearch = false;
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/*
|
|
198
|
+
* Getters and setters
|
|
199
|
+
*/
|
|
200
|
+
getIdPrefix() {
|
|
201
|
+
return this.idPrefix ? this.idPrefix : this.name;
|
|
202
|
+
}
|
|
203
|
+
getDescribedBy() {
|
|
204
|
+
let describedBy = '';
|
|
205
|
+
if (this.describedBy) {
|
|
206
|
+
describedBy = this.describedBy;
|
|
207
|
+
}
|
|
208
|
+
if (this.hasHintComponent() && this.hintComponent.id) {
|
|
209
|
+
describedBy = describedBy + ' ' + this.hintComponent.id;
|
|
210
|
+
}
|
|
211
|
+
if (this.hasErrorMessageComponent() && this.errorMessageComponent.id) {
|
|
212
|
+
describedBy = describedBy + ' ' + this.errorMessageComponent.id;
|
|
213
|
+
}
|
|
214
|
+
return describedBy;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Devuelve el valor de describedBy que se transmitirá a los items
|
|
218
|
+
*/
|
|
219
|
+
getDescribedByForItems() {
|
|
220
|
+
let describedBy;
|
|
221
|
+
if (this.hasFieldsetComponent()) {
|
|
222
|
+
describedBy = this.fieldsetComponent.describedBy;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
describedBy = this.getDescribedBy();
|
|
226
|
+
}
|
|
227
|
+
return describedBy;
|
|
228
|
+
}
|
|
229
|
+
hasFieldsetComponent() {
|
|
230
|
+
return !!this.fieldsetComponent;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Overrides super.getHintId();
|
|
234
|
+
*/
|
|
235
|
+
getHintId() {
|
|
236
|
+
return this.idPrefix ? this.idPrefix + '-hint' : this.hintComponent?.id;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Overrides super.getHintId();
|
|
240
|
+
*/
|
|
241
|
+
getErrorId() {
|
|
242
|
+
return this.idPrefix ? this.idPrefix + '-error' : this.errorMessageComponent?.id;
|
|
243
|
+
}
|
|
244
|
+
/*
|
|
245
|
+
* Funciones para reemplazar el contenido del fieldset, label, hint o errormessage
|
|
246
|
+
*/
|
|
247
|
+
overrideFieldsetParams(fieldset) {
|
|
248
|
+
fieldset.caller = this.innerHtml;
|
|
249
|
+
fieldset.errorId = this.getErrorId();
|
|
250
|
+
fieldset.describedBy = this.getDescribedBy();
|
|
251
|
+
fieldset.detectChanges();
|
|
252
|
+
}
|
|
253
|
+
overrideSearchBarParams(searchbar) {
|
|
254
|
+
const defaultOnChange = searchbar.onChange;
|
|
255
|
+
const newOnChange = value => {
|
|
256
|
+
this.onSearch(value);
|
|
257
|
+
defaultOnChange(value);
|
|
258
|
+
};
|
|
259
|
+
searchbar.registerOnChange(newOnChange);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Se llama desde FormField
|
|
263
|
+
*/
|
|
264
|
+
overrideHintParams(hint) {
|
|
265
|
+
hint.id = this.getHintId();
|
|
266
|
+
hint.detectChanges();
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Se llama desde FormField
|
|
270
|
+
*/
|
|
271
|
+
overrideErrorMessageParams(errorMessage) {
|
|
272
|
+
errorMessage.id = this.getErrorId();
|
|
273
|
+
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
274
|
+
errorMessage.detectChanges();
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Se llama desde FormField
|
|
278
|
+
*/
|
|
279
|
+
onDeleteErrorMessage(errorMessage) {
|
|
280
|
+
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
281
|
+
}
|
|
282
|
+
/*
|
|
283
|
+
* Métodos privados
|
|
284
|
+
*/
|
|
285
|
+
/**
|
|
286
|
+
* Configura la estructura del árbol
|
|
287
|
+
* @private
|
|
288
|
+
*/
|
|
289
|
+
buildTree() {
|
|
290
|
+
// Se crea un mapa para tener accesibles los items por key y se borran los listados existentes
|
|
291
|
+
const itemMap = {};
|
|
292
|
+
this.rootItems = [];
|
|
293
|
+
this.allItems.forEach(item => {
|
|
294
|
+
const key = item.getKey();
|
|
295
|
+
itemMap[key] = item;
|
|
296
|
+
if (item.sub) {
|
|
297
|
+
item.sub.itemList = [];
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
// Se añaden los items a los listados correspondientes
|
|
301
|
+
this.allItems.forEach(item => {
|
|
302
|
+
const parentKey = item.getParentKey();
|
|
303
|
+
if (parentKey === 'root') {
|
|
304
|
+
this.rootItems.push(item);
|
|
305
|
+
}
|
|
306
|
+
else if (parentKey) {
|
|
307
|
+
const sub = itemMap[parentKey].sub;
|
|
308
|
+
if (sub) {
|
|
309
|
+
sub.itemList.push(item);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
// Se configuran los items desde root
|
|
314
|
+
let order = 0;
|
|
315
|
+
this.rootItems.forEach((item, index) => {
|
|
316
|
+
item.setSubLevel(0);
|
|
317
|
+
item.setDefaultId(`${this.idPrefix}-${index}`);
|
|
318
|
+
item.refreshAllParentsExpandedRecursive(true);
|
|
319
|
+
if (!this.decoupleChildFromParent) {
|
|
320
|
+
item.setCheckedAutomaticallyDependingOnChildren();
|
|
321
|
+
}
|
|
322
|
+
order = item.setOrderRecursively(order);
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Si tiene un mensaje de error, se indica a los items
|
|
327
|
+
* @param hasError
|
|
328
|
+
* @private
|
|
329
|
+
*/
|
|
330
|
+
setErrorInItems(hasError) {
|
|
331
|
+
if (this.allItems?.length > 0) {
|
|
332
|
+
this.allItems.forEach(item => {
|
|
333
|
+
item.inheritedHasError = hasError;
|
|
334
|
+
item.detectChanges();
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Limpia un listado de subscripciones
|
|
340
|
+
* @param subscriptionList
|
|
341
|
+
* @private
|
|
342
|
+
*/
|
|
343
|
+
clearSubscriptions(subscriptionList) {
|
|
344
|
+
if (subscriptionList.length > 0) {
|
|
345
|
+
subscriptionList.forEach(s => s.unsubscribe());
|
|
346
|
+
subscriptionList.splice(0, subscriptionList.length);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Devuelve los items del árbol ordenados
|
|
351
|
+
* @private
|
|
352
|
+
*/
|
|
353
|
+
getAllItemsInOrder() {
|
|
354
|
+
let list = [];
|
|
355
|
+
if (this.allItems) {
|
|
356
|
+
list = this.allItems.toArray().sort((a, b) => a.orderInTree > b.orderInTree ? 1 : -1);
|
|
357
|
+
}
|
|
358
|
+
return list;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
362
|
+
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TreeComponent, selector: "desy-tree", inputs: { idPrefix: "idPrefix", classes: "classes", name: "name", type: "type", describedBy: "describedBy", formGroupClasses: "formGroupClasses", expandedFirstLevel: "expandedFirstLevel", decoupleChildFromParent: "decoupleChildFromParent", disableDefaultSearch: "disableDefaultSearch", searchMatchValues: "searchMatchValues" }, outputs: { searchMatchValuesChange: "searchMatchValuesChange" }, providers: [
|
|
363
|
+
{
|
|
364
|
+
provide: NG_VALUE_ACCESSOR,
|
|
365
|
+
useExisting: forwardRef(() => TreeComponent),
|
|
366
|
+
multi: true
|
|
367
|
+
}
|
|
368
|
+
], queries: [{ propertyName: "allItems", predicate: TreeItemComponent, descendants: true }, { propertyName: "fieldsetComponent", predicate: FieldsetComponent }, { propertyName: "searchBarComponent", predicate: SearchBarComponent }], viewQueries: [{ propertyName: "innerHtml", first: true, predicate: ["innerHtml"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "\n<ng-template #innerHtml>\n <ng-content select=\"desy-hint\"></ng-content>\n <ng-content select=\"desy-error-message\"></ng-content>\n <ng-content select=\"desy-search-bar\"></ng-content>\n <ul [class]=\"['c-tree', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : 'tree'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<!-- tree -->\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.MakeHtmlListPipe, name: "makeHtmlList" }] });
|
|
369
|
+
__decorate([
|
|
370
|
+
DesyOnInputChange('onSearchMatchValuesChange')
|
|
371
|
+
], TreeComponent.prototype, "searchMatchValues", void 0);
|
|
372
|
+
__decorate([
|
|
373
|
+
DesyOnInputChange('configureAllItems')
|
|
374
|
+
], TreeComponent.prototype, "allItems", void 0);
|
|
375
|
+
__decorate([
|
|
376
|
+
DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' })
|
|
377
|
+
], TreeComponent.prototype, "fieldsetComponent", void 0);
|
|
378
|
+
__decorate([
|
|
379
|
+
DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams' })
|
|
380
|
+
], TreeComponent.prototype, "searchBarComponent", void 0);
|
|
381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TreeComponent, decorators: [{
|
|
382
|
+
type: Component,
|
|
383
|
+
args: [{ selector: 'desy-tree', providers: [
|
|
384
|
+
{
|
|
385
|
+
provide: NG_VALUE_ACCESSOR,
|
|
386
|
+
useExisting: forwardRef(() => TreeComponent),
|
|
387
|
+
multi: true
|
|
388
|
+
}
|
|
389
|
+
], template: "\n<ng-template #innerHtml>\n <ng-content select=\"desy-hint\"></ng-content>\n <ng-content select=\"desy-error-message\"></ng-content>\n <ng-content select=\"desy-search-bar\"></ng-content>\n <ul [class]=\"['c-tree', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : 'tree'\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<!-- tree -->\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n </ng-container>\n</div>" }]
|
|
390
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { idPrefix: [{
|
|
391
|
+
type: Input
|
|
392
|
+
}], classes: [{
|
|
393
|
+
type: Input
|
|
394
|
+
}], name: [{
|
|
395
|
+
type: Input
|
|
396
|
+
}], type: [{
|
|
397
|
+
type: Input
|
|
398
|
+
}], describedBy: [{
|
|
399
|
+
type: Input
|
|
400
|
+
}], formGroupClasses: [{
|
|
401
|
+
type: Input
|
|
402
|
+
}], expandedFirstLevel: [{
|
|
403
|
+
type: Input
|
|
404
|
+
}], decoupleChildFromParent: [{
|
|
405
|
+
type: Input
|
|
406
|
+
}], disableDefaultSearch: [{
|
|
407
|
+
type: Input
|
|
408
|
+
}], searchMatchValues: [{
|
|
409
|
+
type: Input
|
|
410
|
+
}], searchMatchValuesChange: [{
|
|
411
|
+
type: Output
|
|
412
|
+
}], allItems: [{
|
|
413
|
+
type: ContentChildren,
|
|
414
|
+
args: [TreeItemComponent, { descendants: true }]
|
|
415
|
+
}], fieldsetComponent: [{
|
|
416
|
+
type: ContentChildren,
|
|
417
|
+
args: [FieldsetComponent]
|
|
418
|
+
}], searchBarComponent: [{
|
|
419
|
+
type: ContentChildren,
|
|
420
|
+
args: [SearchBarComponent]
|
|
421
|
+
}], innerHtml: [{
|
|
422
|
+
type: ViewChild,
|
|
423
|
+
args: ['innerHtml', { static: true }]
|
|
424
|
+
}] } });
|
|
425
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvdHJlZS90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy90cmVlL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUFFLFlBQVksRUFDN0IsVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ3NCLFNBQVMsRUFDdEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFhdEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBeUI7SUFxQzFELFlBQW9CLGNBQWlDO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBM0I1Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRWhDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUk1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Z0IsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFDLENBQUM7d0RBQ1E7QUFHekU7SUFEQyxnQkFBZ0IsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFDLENBQUM7eURBQ1U7MkZBMUJqRSxhQUFhO2tCQVh6QixTQUFTOytCQUNFLFdBQVcsYUFFVjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7NEJBQzVDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3dHQUlRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFHb0QsUUFBUTtzQkFBbEUsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBR3JCLGlCQUFpQjtzQkFBcEQsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBR0csa0JBQWtCO3NCQUF0RCxlQUFlO3VCQUFDLGtCQUFrQjtnQkFFTyxTQUFTO3NCQUFsRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3JcIjtcbmltcG9ydCB7VHJlZUl0ZW1Db21wb25lbnR9IGZyb20gXCIuL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50XCI7XG5pbXBvcnQge0Rlc3lPbklucHV0Q2hhbmdlfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yXCI7XG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7Rm9ybUZpZWxkQ29tcG9uZW50fSBmcm9tIFwiLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50XCI7XG5pbXBvcnQge1F1aXRUcmVlSXRlbUZvY3VzT3B0aW9uc30gZnJvbSBcIi4vaW50ZXJmYWNlcy9xdWl0LXRyZWUtaXRlbS1mb2N1cy1vcHRpb25zXCI7XG5pbXBvcnQge1NlYXJjaEJhckNvbXBvbmVudH0gZnJvbSBcIi4uL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyZWVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBleHRlbmRzIEZvcm1GaWVsZENvbXBvbmVudDxhbnlbXT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgaWRQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR5cGU6ICdyYWRpbyd8J2NoZWNrYm94J3xudWxsfHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZGVzY3JpYmVkQnk6IHN0cmluZztcblxuICBASW5wdXQoKSBmb3JtR3JvdXBDbGFzc2VzOiBhbnk7XG5cbiAgQElucHV0KCkgZXhwYW5kZWRGaXJzdExldmVsID0gdHJ1ZTtcbiAgQElucHV0KCkgZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBkaXNhYmxlRGVmYXVsdFNlYXJjaCA9IGZhbHNlO1xuXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25TZWFyY2hNYXRjaFZhbHVlc0NoYW5nZScpXG4gIEBJbnB1dCgpIHNlYXJjaE1hdGNoVmFsdWVzOiBzdHJpbmdbXTtcbiAgQE91dHB1dCgpIHNlYXJjaE1hdGNoVmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBARGVzeU9uSW5wdXRDaGFuZ2UoJ2NvbmZpZ3VyZUFsbEl0ZW1zJylcbiAgQENvbnRlbnRDaGlsZHJlbihUcmVlSXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBhbGxJdGVtczogUXVlcnlMaXN0PFRyZWVJdGVtQ29tcG9uZW50PjtcblxuICBARGVzeUNvbnRlbnRDaGlsZCh7IG9uU2V0Q2FsbGJhY2tOYW1lOiAnb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyd9KVxuICBAQ29udGVudENoaWxkcmVuKEZpZWxkc2V0Q29tcG9uZW50KSBmaWVsZHNldENvbXBvbmVudDogRmllbGRzZXRDb21wb25lbnQ7XG5cbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlU2VhcmNoQmFyUGFyYW1zJ30pXG4gIEBDb250ZW50Q2hpbGRyZW4oU2VhcmNoQmFyQ29tcG9uZW50KSBzZWFyY2hCYXJDb21wb25lbnQ6IFNlYXJjaEJhckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdpbm5lckh0bWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbm5lckh0bWw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSByb290SXRlbXM6IFRyZWVJdGVtQ29tcG9uZW50W10gPSBbXTtcbiAgcHJpdmF0ZSBfaXRlbUxpc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfYWxsSXRlbUxpc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfaXRlbUxpc3RDaGVja2VkU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfaXRlbUxpc3RRdWl0Rm9jdXNTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMpO1xuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9ucyk7XG4gICAgdGhpcy5faXRlbUxpc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fYWxsSXRlbUxpc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmVBbGxJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIHNvYnJlc2NyaWJlIGVsIHZhbG9yIHBhcmEgYWN0dWFsaXphciBsb3MgaXRlbXNcbiAgICogQE92ZXJyaWRlXG4gICAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jb25maWd1cmVBbGxJdGVtcyh0cnVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLypcbiAgICogRXZlbnRvc1xuICAgKi9cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIHZhbG9yIGRlbCBjb21wb25lbnRlIGFsIGNoZWNrcXVlYXJzZSB1biDDrXRlbVxuICAgKiBAcGFyYW0gb3JpZ2luSXRlbSDDrXRlbSBtb2RpZmljYWRvXG4gICAqL1xuICB1cGRhdGVWYWx1ZUZyb21JdGVtcyhvcmlnaW5JdGVtPzogVHJlZUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcblxuICAgIC8vIFNpIGVzIHJhZGlvLCBzZSBkZXNhY3RpdmFuIGVsIHJlc3RvIGRlIGl0ZW1zIGN1YW5kbyBzZSBhY3RpdmEgb3RybyBpdGVtXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gJ2NoZWNrYm94Jykge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEFsbEl0ZW1zSW5PcmRlcigpO1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaWYgKGl0ZW0gIT09IG9yaWdpbkl0ZW0gJiYgaXRlbS5jaGVja2VkKSB7XG4gICAgICAgICAgaXRlbS5zZXRDaGVja2VkKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5kZWNvdXBsZUNoaWxkRnJvbVBhcmVudCkge1xuICAgICAgdGhpcy5yb290SXRlbXMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2V0Q2hlY2tlZEF1dG9tYXRpY2FsbHlEZXBlbmRpbmdPbkNoaWxkcmVuKCkpO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0QWxsSXRlbXNJbk9yZGVyKCk7XG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5wdXNoKGl0ZW0udmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VzdGlvbmEgY3VhbmRvIGVsIGZvY28gYWJhbmRvbmEgdW4gw610ZW0gZGVzZGUgdW4gZXZlbnRvIGRlIHRlY2xhZG8gY29udHJvbGFkb1xuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgaGFuZGxlSXRlbVF1aXRGb2N1cyhvcHRpb25zOiBRdWl0VHJlZUl0ZW1Gb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLm5leHRFbGVtZW50KSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0QWxsSXRlbXNJbk9yZGVyKCk7XG4gICAgICBjb25zdCBmb2N1c2FibGVJdGVtcyA9IGl0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmlzSGlkZGVuKCkgJiYgIWl0ZW0uZGlzYWJsZWQgJiYgaXRlbS5hbGxQYXJlbnRzRXhwYW5kZWQpO1xuICAgICAgc3dpdGNoIChvcHRpb25zLm5leHRFbGVtZW50KSB7XG4gICAgICAgIGNhc2UgXCJmaXJzdFwiOlxuICAgICAgICAgIGZvY3VzYWJsZUl0ZW1zWzBdLmZvY3VzKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJsYXN0XCI6XG4gICAgICAgICAgZm9jdXNhYmxlSXRlbXNbZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBhcmVudFwiOlxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdWJMZXZlbCA9IG9wdGlvbnMuY3VycmVudEl0ZW0uc3ViTGV2ZWw7XG4gICAgICAgICAgaWYgKGN1cnJlbnRTdWJMZXZlbCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtSW5kZXggPSBmb2N1c2FibGVJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBvcHRpb25zLmN1cnJlbnRJdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzYWJsZUl0ZW1zLnNsaWNlKDAsIGN1cnJlbnRJdGVtSW5kZXgpLnJldmVyc2UoKS5maW5kKGl0ZW0gPT4gaXRlbS5zdWJMZXZlbCA8IGN1cnJlbnRTdWJMZXZlbCk7XG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgIHBhcmVudC5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImZpcnN0Q2hpbGRcIjpcbiAgICAgICAgY2FzZSBcIm5leHRcIjpcbiAgICAgICAgICBpZiAob3B0aW9ucy5jdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRJdGVtSW5kZXggPSBmb2N1c2FibGVJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBvcHRpb25zLmN1cnJlbnRJdGVtKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbUluZGV4IDwgZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBmb2N1c2FibGVJdGVtc1tjdXJyZW50SXRlbUluZGV4ICsgMV0uZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJwcmV2aW91c1wiOlxuICAgICAgICAgIGlmIChvcHRpb25zLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbUluZGV4ID0gZm9jdXNhYmxlSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gb3B0aW9ucy5jdXJyZW50SXRlbSk7XG4gICAgICAgICAgICBpZiAoY3VycmVudEl0ZW1JbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgZm9jdXNhYmxlSXRlbXNbY3VycmVudEl0ZW1JbmRleCAtIDFdLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFsaXphIGxhIGLDunNxdWVkYSBpbnRlcm5hIGRlIGxvcyBpdGVtcyBlbiBlbCBjb21wb25lbnRlXG4gICAqIEBwYXJhbSB2YWx1ZSB0ZXh0byBkZSBiw7pzcXVlZGFcbiAgICovXG4gIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZURlZmF1bHRTZWFyY2gpIHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgPSB0aGlzLmFsbEl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ubWF0Y2hlc1RleHQodmFsdWUpKS5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgPSBudWxsO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hNYXRjaFZhbHVlc0NoYW5nZS5lbWl0KHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIEV2ZW50b3MgYWwgY2FtYmlhciBwcm9waWVkYWRlc1xuICAgKi9cblxuICAvKipcbiAgICogQ29uZmlndXJhIGxvcyBpdGVtcyBkZWwgw6FyYm9sXG4gICAqL1xuICBjb25maWd1cmVBbGxJdGVtcyhpc1ZhbHVlQ2hhbmdlID0gZmFsc2UpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5fYWxyZWFkeUNvbmZpZ3VyaW5nSXRlbXMpIHtcbiAgICAgIHRoaXMuX2FscmVhZHlDb25maWd1cmluZ0l0ZW1zID0gdHJ1ZTtcblxuICAgICAgLy8gTG8gcmVhbGl6YW1vcyBkZXNkZSB1biBzZXRUaW1lb3V0IHBhcmEgcXVlIHRvZG9zIGxvcyBpbnB1dHMsIHZhbHVlcyB5IGRlbcOhcyB2aXZhbiBlbiBwYXogeSBhcm1vbsOtYVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmFsbEl0ZW1zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbnModGhpcy5faXRlbUxpc3RDaGVja2VkU3Vic2NyaXB0aW9ucyk7XG4gICAgICAgICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbnModGhpcy5faXRlbUxpc3RRdWl0Rm9jdXNTdWJzY3JpcHRpb25zKTtcbiAgICAgICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpdGVtLnBhcmVudE5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICAgICAgICBpdGVtLnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgICAgICBpdGVtLmluaGVyaXRlZERlc2NyaWJlZEJ5ID0gdGhpcy5nZXREZXNjcmliZWRCeUZvckl0ZW1zKCk7XG4gICAgICAgICAgICBpdGVtLmluaGVyaXRlZEV4cGFuZGVkRmlyc3RMZXZlbCA9IHRoaXMuZXhwYW5kZWRGaXJzdExldmVsO1xuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWREZWNvdXBsZUNoaWxkRnJvbVBhcmVudCA9IHRoaXMuZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQ7XG4gICAgICAgICAgICBpZiAoKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB8fCBpc1ZhbHVlQ2hhbmdlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlTGlzdCA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogW107XG4gICAgICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZCghIXZhbHVlTGlzdC5maW5kKHYgPT4gdiA9PT0gaXRlbS52YWx1ZSksIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlbS5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNoZWNrZWRTdWJzY3JpcHRpb24gPSBpdGVtLmNoZWNrZWRDaGFuZ2VGb3JUcmVlLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVZhbHVlRnJvbUl0ZW1zKGl0ZW0pKTtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMucHVzaChjaGVja2VkU3Vic2NyaXB0aW9uKTtcblxuICAgICAgICAgICAgY29uc3QgcXVpdEZvY3VzU3Vic2NyaXB0aW9uID0gaXRlbS5xdWl0Rm9jdXMuc3Vic2NyaWJlKG9wdGlvbnMgPT4gdGhpcy5oYW5kbGVJdGVtUXVpdEZvY3VzKG9wdGlvbnMpKTtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9ucy5wdXNoKHF1aXRGb2N1c1N1YnNjcmlwdGlvbik7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLnNldEVycm9ySW5JdGVtcyh0aGlzLmhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpKTtcblxuICAgICAgICAgIHRoaXMuYnVpbGRUcmVlKCk7XG4gICAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlRnJvbUl0ZW1zKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMpIHtcbiAgICAgICAgICAgIHRoaXMub25TZWFyY2hNYXRjaFZhbHVlc0NoYW5nZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFsbEl0ZW1zICYmICF0aGlzLl9hbGxJdGVtTGlzdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgIHRoaXMuX2FsbEl0ZW1MaXN0U3Vic2NyaXB0aW9uID0gdGhpcy5hbGxJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNvbmZpZ3VyZUFsbEl0ZW1zKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2FscmVhZHlDb25maWd1cmluZ0l0ZW1zID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW9kaWZpY2EgbG9zIGl0ZW1zIHZpc2libGVzIHNlZ8O6biBlbCBmaWx0cm8gZGUgYsO6c3F1ZWRhXG4gICAqL1xuICBvblNlYXJjaE1hdGNoVmFsdWVzQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbEl0ZW1zKSB7XG4gICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0uaW5oZXJpdGVkTWF0Y2hlc1NlYXJjaCA9IHRydWU7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgIT09IG51bGwgJiYgdGhpcy5zZWFyY2hNYXRjaFZhbHVlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5zZWFyY2hNYXRjaFZhbHVlcy5maW5kSW5kZXgodmFsdWUgPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWUpIDwgMCkge1xuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWRNYXRjaGVzU2VhcmNoID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIEdldHRlcnMgYW5kIHNldHRlcnNcbiAgICovXG5cbiAgZ2V0SWRQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXREZXNjcmliZWRCeSgpOiBzdHJpbmcge1xuICAgIGxldCBkZXNjcmliZWRCeSA9ICcnO1xuICAgIGlmICh0aGlzLmRlc2NyaWJlZEJ5KSB7XG4gICAgICBkZXNjcmliZWRCeSA9IHRoaXMuZGVzY3JpYmVkQnk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzSGludENvbXBvbmVudCgpICYmIHRoaXMuaGludENvbXBvbmVudC5pZCkge1xuICAgICAgZGVzY3JpYmVkQnkgPSBkZXNjcmliZWRCeSArICcgJyArIHRoaXMuaGludENvbXBvbmVudC5pZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKSAmJiB0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudC5pZCkge1xuICAgICAgZGVzY3JpYmVkQnkgPSBkZXNjcmliZWRCeSArICcgJyArIHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50LmlkO1xuICAgIH1cblxuICAgIHJldHVybiBkZXNjcmliZWRCeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBlbCB2YWxvciBkZSBkZXNjcmliZWRCeSBxdWUgc2UgdHJhbnNtaXRpcsOhIGEgbG9zIGl0ZW1zXG4gICAqL1xuICBnZXREZXNjcmliZWRCeUZvckl0ZW1zKCk6IHN0cmluZyB7XG4gICAgbGV0IGRlc2NyaWJlZEJ5O1xuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIGRlc2NyaWJlZEJ5ID0gdGhpcy5maWVsZHNldENvbXBvbmVudC5kZXNjcmliZWRCeTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVzY3JpYmVkQnkgPSB0aGlzLmdldERlc2NyaWJlZEJ5KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaWJlZEJ5O1xuICB9XG5cbiAgaGFzRmllbGRzZXRDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5maWVsZHNldENvbXBvbmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgc3VwZXIuZ2V0SGludElkKCk7XG4gICAqL1xuICBnZXRIaW50SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggKyAnLWhpbnQnIDogdGhpcy5oaW50Q29tcG9uZW50Py5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgc3VwZXIuZ2V0SGludElkKCk7XG4gICAqL1xuICBnZXRFcnJvcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4ICsgJy1lcnJvcicgOiB0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudD8uaWQ7XG4gIH1cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWVtcGxhemFyIGVsIGNvbnRlbmlkbyBkZWwgZmllbGRzZXQsIGxhYmVsLCBoaW50IG8gZXJyb3JtZXNzYWdlXG4gICAqL1xuXG4gIG92ZXJyaWRlRmllbGRzZXRQYXJhbXMoZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgZmllbGRzZXQuY2FsbGVyID0gdGhpcy5pbm5lckh0bWw7XG4gICAgZmllbGRzZXQuZXJyb3JJZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGZpZWxkc2V0LmRlc2NyaWJlZEJ5ID0gdGhpcy5nZXREZXNjcmliZWRCeSgpO1xuICAgIGZpZWxkc2V0LmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG92ZXJyaWRlU2VhcmNoQmFyUGFyYW1zKHNlYXJjaGJhcjogU2VhcmNoQmFyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdE9uQ2hhbmdlID0gc2VhcmNoYmFyLm9uQ2hhbmdlO1xuICAgIGNvbnN0IG5ld09uQ2hhbmdlID0gdmFsdWUgPT4ge1xuICAgICAgdGhpcy5vblNlYXJjaCh2YWx1ZSk7XG4gICAgICBkZWZhdWx0T25DaGFuZ2UodmFsdWUpO1xuICAgIH1cbiAgICBzZWFyY2hiYXIucmVnaXN0ZXJPbkNoYW5nZShuZXdPbkNoYW5nZSk7XG4gIH1cblxuICAvKipcbiAgICogU2UgbGxhbWEgZGVzZGUgRm9ybUZpZWxkXG4gICAqL1xuICBvdmVycmlkZUhpbnRQYXJhbXMoaGludCk6IHZvaWQge1xuICAgIGhpbnQuaWQgPSB0aGlzLmdldEhpbnRJZCgpO1xuICAgIGhpbnQuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIGxsYW1hIGRlc2RlIEZvcm1GaWVsZFxuICAgKi9cbiAgb3ZlcnJpZGVFcnJvck1lc3NhZ2VQYXJhbXMoZXJyb3JNZXNzYWdlKTogdm9pZCB7XG4gICAgZXJyb3JNZXNzYWdlLmlkID0gdGhpcy5nZXRFcnJvcklkKCk7XG4gICAgdGhpcy5zZXRFcnJvckluSXRlbXModGhpcy5oYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKSk7XG4gICAgZXJyb3JNZXNzYWdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBsbGFtYSBkZXNkZSBGb3JtRmllbGRcbiAgICovXG4gIG9uRGVsZXRlRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk6IHZvaWQge1xuICAgIHRoaXMuc2V0RXJyb3JJbkl0ZW1zKHRoaXMuaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KCkpO1xuICB9XG5cbiAgLypcbiAgICogTcOpdG9kb3MgcHJpdmFkb3NcbiAgICovXG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYSBsYSBlc3RydWN0dXJhIGRlbCDDoXJib2xcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRUcmVlKCk6IHZvaWQge1xuXG4gICAgLy8gU2UgY3JlYSB1biBtYXBhIHBhcmEgdGVuZXIgYWNjZXNpYmxlcyBsb3MgaXRlbXMgcG9yIGtleSB5IHNlIGJvcnJhbiBsb3MgbGlzdGFkb3MgZXhpc3RlbnRlc1xuICAgIGNvbnN0IGl0ZW1NYXAgPSB7fVxuICAgIHRoaXMucm9vdEl0ZW1zID0gW107XG4gICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgY29uc3Qga2V5ID0gaXRlbS5nZXRLZXkoKTtcbiAgICAgIGl0ZW1NYXBba2V5XSA9IGl0ZW07XG4gICAgICBpZiAoaXRlbS5zdWIpIHtcbiAgICAgICAgaXRlbS5zdWIuaXRlbUxpc3QgPSBbXTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNlIGHDsWFkZW4gbG9zIGl0ZW1zIGEgbG9zIGxpc3RhZG9zIGNvcnJlc3BvbmRpZW50ZXNcbiAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCBwYXJlbnRLZXkgPSBpdGVtLmdldFBhcmVudEtleSgpO1xuICAgICAgaWYgKHBhcmVudEtleSA9PT0gJ3Jvb3QnKSB7XG4gICAgICAgIHRoaXMucm9vdEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICB9IGVsc2UgaWYgKHBhcmVudEtleSkge1xuICAgICAgICBjb25zdCBzdWIgPSBpdGVtTWFwW3BhcmVudEtleV0uc3ViO1xuICAgICAgICBpZiAoc3ViKSB7XG4gICAgICAgICAgc3ViLml0ZW1MaXN0LnB1c2goaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNlIGNvbmZpZ3VyYW4gbG9zIGl0ZW1zIGRlc2RlIHJvb3RcbiAgICBsZXQgb3JkZXIgPSAwO1xuICAgIHRoaXMucm9vdEl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpdGVtLnNldFN1YkxldmVsKDApO1xuICAgICAgaXRlbS5zZXREZWZhdWx0SWQoYCR7dGhpcy5pZFByZWZpeH0tJHtpbmRleH1gKTtcbiAgICAgIGl0ZW0ucmVmcmVzaEFsbFBhcmVudHNFeHBhbmRlZFJlY3Vyc2l2ZSh0cnVlKTtcbiAgICAgIGlmICghdGhpcy5kZWNvdXBsZUNoaWxkRnJvbVBhcmVudCkge1xuICAgICAgICBpdGVtLnNldENoZWNrZWRBdXRvbWF0aWNhbGx5RGVwZW5kaW5nT25DaGlsZHJlbigpO1xuICAgICAgfVxuICAgICAgb3JkZXIgPSBpdGVtLnNldE9yZGVyUmVjdXJzaXZlbHkob3JkZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpIHRpZW5lIHVuIG1lbnNhamUgZGUgZXJyb3IsIHNlIGluZGljYSBhIGxvcyBpdGVtc1xuICAgKiBAcGFyYW0gaGFzRXJyb3JcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc2V0RXJyb3JJbkl0ZW1zKGhhc0Vycm9yOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWxsSXRlbXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgaXRlbS5pbmhlcml0ZWRIYXNFcnJvciA9IGhhc0Vycm9yO1xuICAgICAgICBpdGVtLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgdW4gbGlzdGFkbyBkZSBzdWJzY3JpcGNpb25lc1xuICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uTGlzdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhclN1YnNjcmlwdGlvbnMoc3Vic2NyaXB0aW9uTGlzdDogU3Vic2NyaXB0aW9uW10pOiB2b2lkIHtcbiAgICBpZiAoc3Vic2NyaXB0aW9uTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBzdWJzY3JpcHRpb25MaXN0LmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgc3Vic2NyaXB0aW9uTGlzdC5zcGxpY2UoMCwgc3Vic2NyaXB0aW9uTGlzdC5sZW5ndGgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldnVlbHZlIGxvcyBpdGVtcyBkZWwgw6FyYm9sIG9yZGVuYWRvc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRBbGxJdGVtc0luT3JkZXIoKTogVHJlZUl0ZW1Db21wb25lbnRbXSB7XG4gICAgbGV0IGxpc3QgPSBbXTtcbiAgICBpZiAodGhpcy5hbGxJdGVtcykge1xuICAgICAgbGlzdCA9IHRoaXMuYWxsSXRlbXMudG9BcnJheSgpLnNvcnQoKGEsIGIpID0+IGEub3JkZXJJblRyZWUgPiBiLm9yZGVySW5UcmVlID8gMSA6IC0xKVxuICAgIH1cbiAgICByZXR1cm4gbGlzdFxuICB9XG59XG4iLCJcbjxuZy10ZW1wbGF0ZSAjaW5uZXJIdG1sPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZXJyb3ItbWVzc2FnZVwiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1zZWFyY2gtYmFyXCI+PC9uZy1jb250ZW50PlxuICA8dWwgW2NsYXNzXT1cIlsnYy10cmVlJywgY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6ICd0cmVlJ1wiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeSA/IGFyaWFEZXNjcmliZWRCeSA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImFyaWFIaWRkZW4gPyBhcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZCA/IGFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJhcmlhQ3VycmVudCA/IGFyaWFDdXJyZW50IDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmUgPyBhcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cImFyaWFFcnJvck1lc3NhZ2UgPyBhcmlhRXJyb3JNZXNzYWdlIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cCA/IGFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1tb2RhbF09XCJhcmlhTW9kYWwgPyBhcmlhTW9kYWwgOiBudWxsXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4ID8gdGFiaW5kZXggOiBudWxsXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLSB0cmVlIC0tPlxuPGRpdiBbY2xhc3NdPVwiWydjLWZvcm0tZ3JvdXAnLCBmb3JtR3JvdXBDbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgIFtuZ0NsYXNzXT1cInsnYy1mb3JtLWdyb3VwLS1lcnJvcic6IChoYXNFcnJvcnNNZXNzYWdlKCkgfHwgZm9ybUdyb3VwQ2xhc3NlcyA9PT0gJ2MtZm9ybS1ncm91cC0tZXJyb3InKSB9XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWVsZHNldENvbXBvbmVudCgpOyBlbHNlIGlubmVySHRtbFwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZmllbGRzZXRcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
|