desy-angular 14.2.0 → 15.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/desy-angular.mjs +1321 -923
- package/fesm2022/desy-angular.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/lib/desy-forms/components/character-count/character-count.component.d.ts +1 -8
- package/lib/desy-forms/components/checkboxes/checkboxes-parent.component.d.ts +8 -0
- package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +26 -0
- package/lib/desy-forms/components/date-input/date-input.component.d.ts +13 -7
- package/lib/desy-forms/components/datepicker/datepicker.component.d.ts +1 -5
- package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +7 -0
- package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +5 -0
- package/lib/desy-forms/components/input/input.component.d.ts +1 -4
- package/lib/desy-forms/components/input-group/input-group.component.d.ts +7 -0
- package/lib/desy-forms/components/label/label.component.d.ts +1 -2
- package/lib/desy-forms/components/radios/radios-parent.component.d.ts +8 -0
- package/lib/desy-forms/components/radios/radios.component.d.ts +26 -0
- package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +1 -2
- package/lib/desy-forms/components/select/option/option.component.d.ts +2 -2
- package/lib/desy-forms/components/textarea/textarea.component.d.ts +1 -3
- package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +4 -0
- package/lib/desy-forms/components/tree/tree.component.d.ts +62 -2
- package/lib/desy-forms/directives/condition.directive.d.ts +5 -0
- package/lib/desy-forms/interfaces/select-item-data.d.ts +1 -0
- package/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.d.ts +0 -2
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +7 -0
- package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +0 -2
- package/lib/desy-nav/components/menubar/menubar.component.d.ts +7 -2
- package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +3 -1
- package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +57 -1
- package/lib/desy-tables/directives/cell.directive.d.ts +3 -0
- package/lib/desy-tables/directives/row.directive.d.ts +7 -0
- package/lib/desy-tables/interfaces/head-cell-data.d.ts +2 -0
- package/lib/desy-views/components/accordion/accordion.component.d.ts +0 -2
- package/lib/desy-views/components/details/details.component.d.ts +3 -2
- package/lib/desy-views/components/media-object/media-object.component.d.ts +0 -2
- package/lib/desy-views/components/status/status.component.d.ts +0 -2
- package/lib/desy-views/components/status-item/status-item.component.d.ts +0 -2
- package/lib/desy-views/components/tabs/tabs.component.d.ts +0 -2
- package/lib/desy-views/components/tooltip/tooltip.component.d.ts +0 -2
- package/lib/shared/components/accessibility/accessibility.component.d.ts +4 -3
- package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +9 -3
- package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +7 -3
- package/lib/shared/components/content-base/content-base.component.d.ts +3 -0
- package/lib/shared/components/spinner/spinner.component.d.ts +0 -2
- package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +4 -0
- package/lib/shared/decorators/desy-content-child.decorator.d.ts +11 -0
- package/lib/shared/decorators/desy-on-input-change.decorator.d.ts +4 -0
- package/lib/shared/directives/content-change.directive.d.ts +4 -0
- package/lib/shared/directives/custom-inner-content.directive.d.ts +6 -0
- package/lib/shared/interfaces/accessibility-data.d.ts +0 -2
- package/lib/shared/pipes/external-href.pipe.d.ts +4 -0
- package/lib/shared/utils/search-utils.d.ts +10 -0
- package/lib/shared/utils/string-utils.d.ts +7 -0
- package/package.json +9 -11
- package/esm2022/desy-angular.mjs +0 -2
- package/esm2022/lib/desy-angular.module.mjs +0 -76
- package/esm2022/lib/desy-buttons/components/button/button.component.mjs +0 -118
- package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +0 -66
- package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +0 -159
- package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +0 -39
- package/esm2022/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +0 -14
- package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +0 -334
- package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +0 -83
- package/esm2022/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +0 -17
- package/esm2022/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +0 -17
- package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +0 -62
- package/esm2022/lib/desy-buttons/desy-buttons.module.mjs +0 -70
- package/esm2022/lib/desy-buttons/interfaces/listbox-item-data.mjs +0 -2
- package/esm2022/lib/desy-buttons/interfaces/listbox-label-data.mjs +0 -2
- package/esm2022/lib/desy-commons/components/content/content.component.mjs +0 -14
- package/esm2022/lib/desy-commons/components/description/description.component.mjs +0 -19
- package/esm2022/lib/desy-commons/components/divider/divider.component.mjs +0 -16
- package/esm2022/lib/desy-commons/components/icon/icon.component.mjs +0 -16
- package/esm2022/lib/desy-commons/components/title/title.component.mjs +0 -17
- package/esm2022/lib/desy-commons/desy-commons.module.mjs +0 -24
- package/esm2022/lib/desy-commons/interfaces/content-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/description-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/divider-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/icon-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/index.mjs +0 -6
- package/esm2022/lib/desy-commons/interfaces/title-data.mjs +0 -2
- package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +0 -156
- package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +0 -191
- package/esm2022/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +0 -15
- package/esm2022/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +0 -275
- package/esm2022/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +0 -55
- package/esm2022/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +0 -19
- package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +0 -42
- package/esm2022/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +0 -55
- package/esm2022/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +0 -51
- package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +0 -303
- package/esm2022/lib/desy-forms/components/datepicker/datepicker.component.mjs +0 -190
- package/esm2022/lib/desy-forms/components/datepicker/datepicker.pipe.mjs +0 -34
- package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +0 -32
- package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +0 -59
- package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +0 -34
- package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +0 -78
- package/esm2022/lib/desy-forms/components/form-field/form-field.component.mjs +0 -127
- package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +0 -30
- package/esm2022/lib/desy-forms/components/input/input.component.mjs +0 -110
- package/esm2022/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +0 -20
- package/esm2022/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +0 -59
- package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +0 -42
- package/esm2022/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +0 -51
- package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +0 -232
- package/esm2022/lib/desy-forms/components/label/label.component.mjs +0 -39
- package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +0 -138
- package/esm2022/lib/desy-forms/components/radios/radios-parent.component.mjs +0 -15
- package/esm2022/lib/desy-forms/components/radios/radios.component.mjs +0 -286
- package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +0 -65
- package/esm2022/lib/desy-forms/components/select/option/option.component.mjs +0 -22
- package/esm2022/lib/desy-forms/components/select/option-group/option-group.component.mjs +0 -18
- package/esm2022/lib/desy-forms/components/select/select-item/select-item.component.mjs +0 -14
- package/esm2022/lib/desy-forms/components/select/select.component.mjs +0 -94
- package/esm2022/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +0 -12
- package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +0 -86
- package/esm2022/lib/desy-forms/components/tree/interfaces/itree-item.mjs +0 -3
- package/esm2022/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.mjs +0 -2
- package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +0 -174
- package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +0 -381
- package/esm2022/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +0 -25
- package/esm2022/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +0 -16
- package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +0 -362
- package/esm2022/lib/desy-forms/desy-forms.module.mjs +0 -223
- package/esm2022/lib/desy-forms/directives/condition.directive.mjs +0 -34
- package/esm2022/lib/desy-forms/interfaces/error-message-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/fieldset-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/hint-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/index.mjs +0 -13
- package/esm2022/lib/desy-forms/interfaces/item-checkbox-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-date-input-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-divider-date-input-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-divider-input-group-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-input-group-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-radio-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-radio-with-template-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/label-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/legend-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/select-item-data.mjs +0 -2
- package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +0 -155
- package/esm2022/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +0 -25
- package/esm2022/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +0 -23
- package/esm2022/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +0 -23
- package/esm2022/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +0 -23
- package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +0 -192
- package/esm2022/lib/desy-modals/desy-modals.module.mjs +0 -50
- package/esm2022/lib/desy-modals/interfaces/dialog-options.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/index.mjs +0 -7
- package/esm2022/lib/desy-modals/interfaces/modal-button-data.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/modal-data.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/modal-icon-data.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/modal-options.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/open-dialog-result.mjs +0 -2
- package/esm2022/lib/desy-modals/services/dialog.service.mjs +0 -114
- package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +0 -16
- package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +0 -53
- package/esm2022/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +0 -19
- package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +0 -67
- package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +0 -25
- package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +0 -31
- package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +0 -25
- package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +0 -21
- package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +0 -91
- package/esm2022/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +0 -15
- package/esm2022/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +0 -46
- package/esm2022/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.mjs +0 -336
- package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +0 -31
- package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +0 -36
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +0 -20
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +0 -15
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +0 -93
- package/esm2022/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +0 -41
- package/esm2022/lib/desy-nav/components/header/header.component.mjs +0 -119
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-custom-navigation/header-custom-navigation.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.mjs +0 -38
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-logo/header-advanced-logo.component.mjs +0 -37
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.mjs +0 -42
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-subtitle/header-advanced-subtitle.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.mjs +0 -42
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title/header-advanced-title.component.mjs +0 -19
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.mjs +0 -38
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced.component.mjs +0 -54
- package/esm2022/lib/desy-nav/components/header-mini/header-mini.component.mjs +0 -32
- package/esm2022/lib/desy-nav/components/links-list/links-list-icon-right/links-list-icon-right.component.mjs +0 -16
- package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +0 -46
- package/esm2022/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +0 -44
- package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +0 -42
- package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +0 -76
- package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +0 -55
- package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +0 -49
- package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +0 -858
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +0 -44
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +0 -18
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +0 -34
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +0 -98
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +0 -51
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +0 -36
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +0 -27
- package/esm2022/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +0 -47
- package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +0 -966
- package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +0 -43
- package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +0 -115
- package/esm2022/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +0 -25
- package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +0 -127
- package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +0 -62
- package/esm2022/lib/desy-nav/desy-nav.module.mjs +0 -290
- package/esm2022/lib/desy-nav/directives/dynamic-heading.directive.mjs +0 -40
- package/esm2022/lib/desy-nav/interfaces/breadcrumbs.data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/error-summary-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/footer-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/footer-logo.mjs +0 -10
- package/esm2022/lib/desy-nav/interfaces/header-advanced-logo.mjs +0 -7
- package/esm2022/lib/desy-nav/interfaces/header-dropdown-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-mobile-text-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-navigation-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-navigation-item-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-offcanvas-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-skiplink-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-subnav-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/index.mjs +0 -21
- package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-event-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-navigation.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-items-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-items-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item-sub.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/nav-item-event.data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/nav-item.data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/notification-items-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/notification-options.mjs +0 -2
- package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +0 -242
- package/esm2022/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +0 -19
- package/esm2022/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +0 -17
- package/esm2022/lib/desy-pagination/desy-pagination.module.mjs +0 -25
- package/esm2022/lib/desy-pagination/interfaces/pagination-item.data.mjs +0 -2
- package/esm2022/lib/desy-tables/components/table/components/table-caption.component.mjs +0 -17
- package/esm2022/lib/desy-tables/components/table/components/table-cell.component.mjs +0 -23
- package/esm2022/lib/desy-tables/components/table/components/table-footer.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table/components/table-header.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table/components/table-row.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table/table.component.mjs +0 -120
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer-cell.component.mjs +0 -23
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer.component.mjs +0 -27
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +0 -56
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +0 -23
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +0 -27
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +0 -28
- package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +0 -516
- package/esm2022/lib/desy-tables/desy-tables.module.mjs +0 -100
- package/esm2022/lib/desy-tables/directives/cell.directive.mjs +0 -25
- package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +0 -89
- package/esm2022/lib/desy-tables/directives/row.directive.mjs +0 -22
- package/esm2022/lib/desy-tables/interfaces/cell-data.mjs +0 -2
- package/esm2022/lib/desy-tables/interfaces/head-cell-data.mjs +0 -7
- package/esm2022/lib/desy-tables/interfaces/index.mjs +0 -5
- package/esm2022/lib/desy-tables/interfaces/recalculate-table-params.mjs +0 -2
- package/esm2022/lib/desy-tables/interfaces/row-data.mjs +0 -2
- package/esm2022/lib/desy-tables/interfaces/wrapper-data.mjs +0 -2
- package/esm2022/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +0 -61
- package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +0 -447
- package/esm2022/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +0 -41
- package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +0 -20
- package/esm2022/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/alert/alert.component.mjs +0 -82
- package/esm2022/lib/desy-views/components/card/card-sectors/card-left.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card-sectors/card-right.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card-sectors/card-sub.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card-sectors/card-super.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card.component.mjs +0 -48
- package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +0 -66
- package/esm2022/lib/desy-views/components/description-list/definition/definition.component.mjs +0 -19
- package/esm2022/lib/desy-views/components/description-list/description-item/description-item.component.mjs +0 -36
- package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +0 -29
- package/esm2022/lib/desy-views/components/description-list/term/term.component.mjs +0 -19
- package/esm2022/lib/desy-views/components/details/details.component.mjs +0 -43
- package/esm2022/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +0 -15
- package/esm2022/lib/desy-views/components/item/item-item/item-item.component.mjs +0 -15
- package/esm2022/lib/desy-views/components/item/item.component.mjs +0 -122
- package/esm2022/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +0 -12
- package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +0 -369
- package/esm2022/lib/desy-views/components/status/status.component.mjs +0 -366
- package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +0 -401
- package/esm2022/lib/desy-views/components/tabs/panel/panel.component.mjs +0 -19
- package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +0 -41
- package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +0 -446
- package/esm2022/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +0 -12
- package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +0 -450
- package/esm2022/lib/desy-views/desy-views.module.mjs +0 -181
- package/esm2022/lib/desy-views/interfaces/accordion-header.data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/accordion-item.data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/alert-options.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/description-item.data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/index.mjs +0 -11
- package/esm2022/lib/desy-views/interfaces/open-alert-result.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/status-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/status-icon-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/status-item-title-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/tabs-items-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/tabs-panel-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/term-definition.data.mjs +0 -2
- package/esm2022/lib/desy-views/services/alert.service.mjs +0 -88
- package/esm2022/lib/shared/components/accessibility/accessibility-attributes.mjs +0 -78
- package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +0 -164
- package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +0 -168
- package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +0 -165
- package/esm2022/lib/shared/components/content-base/content-base.component.mjs +0 -21
- package/esm2022/lib/shared/components/index.mjs +0 -7
- package/esm2022/lib/shared/components/spinner/spinner.component.mjs +0 -329
- package/esm2022/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +0 -18
- package/esm2022/lib/shared/decorators/desy-content-child.decorator.mjs +0 -34
- package/esm2022/lib/shared/decorators/desy-on-input-change.decorator.mjs +0 -15
- package/esm2022/lib/shared/directives/accessibility-directive.mjs +0 -54
- package/esm2022/lib/shared/directives/attribute-change.directive.mjs +0 -50
- package/esm2022/lib/shared/directives/click-outside.directive.mjs +0 -40
- package/esm2022/lib/shared/directives/content-change.directive.mjs +0 -41
- package/esm2022/lib/shared/directives/custom-inner-content.directive.mjs +0 -63
- package/esm2022/lib/shared/directives/inner-content.directive.mjs +0 -37
- package/esm2022/lib/shared/interfaces/accessibility-data.mjs +0 -2
- package/esm2022/lib/shared/pipes/external-href.pipe.mjs +0 -28
- package/esm2022/lib/shared/pipes/inner-html.pipe.mjs +0 -21
- package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +0 -20
- package/esm2022/lib/shared/shared.module.mjs +0 -86
- package/esm2022/lib/shared/sharedExternal.module.mjs +0 -20
- package/esm2022/lib/shared/utils/focus-utils.mjs +0 -50
- package/esm2022/lib/shared/utils/search-utils.mjs +0 -70
- package/esm2022/lib/shared/utils/string-utils.mjs +0 -13
- package/esm2022/public-api.mjs +0 -225
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, forwardRef, Input, Output, QueryList, TemplateRef, ViewChild, } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';
|
|
5
|
-
import { DesyOnInputChange } from '../../../shared/decorators/desy-on-input-change.decorator';
|
|
6
|
-
import { FieldsetComponent } from '../fieldset/fieldset.component';
|
|
7
|
-
import { FormFieldComponent } from '../form-field/form-field.component';
|
|
8
|
-
import { SearchBarComponent } from '../search-bar/search-bar.component';
|
|
9
|
-
import { TreeItemComponent } from './tree-item/tree-item.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common";
|
|
12
|
-
import * as i2 from "../../../shared/directives/accessibility-directive";
|
|
13
|
-
import * as i3 from "../../../shared/pipes/make-html-list.pipe";
|
|
14
|
-
export class TreeComponent extends FormFieldComponent {
|
|
15
|
-
constructor(changeDetector) {
|
|
16
|
-
super();
|
|
17
|
-
this.changeDetector = changeDetector;
|
|
18
|
-
this.expandedFirstLevel = true;
|
|
19
|
-
this.decoupleChildFromParent = false;
|
|
20
|
-
this.disableDefaultSearch = false;
|
|
21
|
-
this.searchMatchValuesChange = new EventEmitter();
|
|
22
|
-
this.rootItems = [];
|
|
23
|
-
this._itemListCheckedSubscriptions = [];
|
|
24
|
-
this._itemListQuitFocusSubscriptions = [];
|
|
25
|
-
this._alreadyConfiguringItems = false;
|
|
26
|
-
}
|
|
27
|
-
ngOnDestroy() {
|
|
28
|
-
this.clearSubscriptions(this._itemListCheckedSubscriptions);
|
|
29
|
-
this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
|
|
30
|
-
this._itemListSubscription?.unsubscribe();
|
|
31
|
-
this._allItemListSubscription?.unsubscribe();
|
|
32
|
-
}
|
|
33
|
-
ngOnChanges(changes) {
|
|
34
|
-
this.configureAllItems();
|
|
35
|
-
}
|
|
36
|
-
writeValue(value) {
|
|
37
|
-
this.value = value;
|
|
38
|
-
this.configureAllItems(true);
|
|
39
|
-
this.onChange(this.value);
|
|
40
|
-
}
|
|
41
|
-
setDisabledState(isDisabled) {
|
|
42
|
-
super.setDisabledState(isDisabled);
|
|
43
|
-
this.configureAllItems();
|
|
44
|
-
}
|
|
45
|
-
updateValueFromItems(originItem) {
|
|
46
|
-
if (this.type !== 'checkbox') {
|
|
47
|
-
const items = this.getAllItemsInOrder();
|
|
48
|
-
items.forEach((item) => {
|
|
49
|
-
if (item !== originItem && item.checked) {
|
|
50
|
-
item.setChecked(false, true);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
else if (!this.decoupleChildFromParent) {
|
|
55
|
-
this.rootItems.forEach((item) => item.setCheckedAutomaticallyDependingOnChildren());
|
|
56
|
-
}
|
|
57
|
-
this.value = [];
|
|
58
|
-
const items = this.getAllItemsInOrder();
|
|
59
|
-
items.forEach((item) => {
|
|
60
|
-
if (item.checked) {
|
|
61
|
-
this.value.push(item.value);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
this.onChange(this.value);
|
|
65
|
-
}
|
|
66
|
-
handleItemQuitFocus(options) {
|
|
67
|
-
if (options && options.nextElement) {
|
|
68
|
-
const items = this.getAllItemsInOrder();
|
|
69
|
-
const focusableItems = items.filter((item) => !item.isHidden() && !item.disabled && item.allParentsExpanded);
|
|
70
|
-
switch (options.nextElement) {
|
|
71
|
-
case 'first':
|
|
72
|
-
focusableItems[0].focus();
|
|
73
|
-
break;
|
|
74
|
-
case 'last':
|
|
75
|
-
focusableItems[focusableItems.length - 1].focus();
|
|
76
|
-
break;
|
|
77
|
-
case 'parent':
|
|
78
|
-
const currentSubLevel = options.currentItem.subLevel;
|
|
79
|
-
if (currentSubLevel > 0) {
|
|
80
|
-
const currentItemIndex = focusableItems.findIndex((item) => item === options.currentItem);
|
|
81
|
-
const parent = focusableItems
|
|
82
|
-
.slice(0, currentItemIndex)
|
|
83
|
-
.reverse()
|
|
84
|
-
.find((item) => item.subLevel < currentSubLevel);
|
|
85
|
-
if (parent) {
|
|
86
|
-
parent.focus();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
break;
|
|
90
|
-
case 'firstChild':
|
|
91
|
-
case 'next':
|
|
92
|
-
if (options.currentItem) {
|
|
93
|
-
let currentItemIndex = focusableItems.findIndex((item) => item === options.currentItem);
|
|
94
|
-
if (currentItemIndex < focusableItems.length - 1) {
|
|
95
|
-
focusableItems[currentItemIndex + 1].focus();
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
break;
|
|
99
|
-
case 'previous':
|
|
100
|
-
if (options.currentItem) {
|
|
101
|
-
const currentItemIndex = focusableItems.findIndex((item) => item === options.currentItem);
|
|
102
|
-
if (currentItemIndex > 0) {
|
|
103
|
-
focusableItems[currentItemIndex - 1].focus();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
onSearch(value) {
|
|
111
|
-
if (!this.disableDefaultSearch) {
|
|
112
|
-
if (value && value.length > 0) {
|
|
113
|
-
this.searchMatchValues = this.allItems.filter((item) => item.matchesText(value)).map((item) => item.value);
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
this.searchMatchValues = null;
|
|
117
|
-
}
|
|
118
|
-
this.searchMatchValuesChange.emit(this.searchMatchValues);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
configureAllItems(isValueChange = false) {
|
|
122
|
-
if (!this._alreadyConfiguringItems) {
|
|
123
|
-
this._alreadyConfiguringItems = true;
|
|
124
|
-
setTimeout(() => {
|
|
125
|
-
if (this.allItems?.length > 0) {
|
|
126
|
-
this.clearSubscriptions(this._itemListCheckedSubscriptions);
|
|
127
|
-
this.clearSubscriptions(this._itemListQuitFocusSubscriptions);
|
|
128
|
-
this.allItems.forEach((item) => {
|
|
129
|
-
item.parentName = this.name;
|
|
130
|
-
item.type = this.type;
|
|
131
|
-
item.inheritedDescribedBy = this.getDescribedByForItems();
|
|
132
|
-
item.inheritedExpandedFirstLevel = this.expandedFirstLevel;
|
|
133
|
-
item.inheritedDecoupleChildFromParent = this.decoupleChildFromParent;
|
|
134
|
-
item.treeDisabled = this.disabled;
|
|
135
|
-
if ((this.value && this.value.length > 0) || isValueChange) {
|
|
136
|
-
const valueList = this.value ? this.value : [];
|
|
137
|
-
item.setChecked(!!valueList.find((v) => v === item.value), true);
|
|
138
|
-
}
|
|
139
|
-
item.detectChanges();
|
|
140
|
-
const checkedSubscription = item.checkedChangeForTree.subscribe(() => this.updateValueFromItems(item));
|
|
141
|
-
this._itemListCheckedSubscriptions.push(checkedSubscription);
|
|
142
|
-
const quitFocusSubscription = item.quitFocus.subscribe((options) => this.handleItemQuitFocus(options));
|
|
143
|
-
this._itemListQuitFocusSubscriptions.push(quitFocusSubscription);
|
|
144
|
-
});
|
|
145
|
-
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
146
|
-
this.buildTree();
|
|
147
|
-
if (!this.value) {
|
|
148
|
-
this.updateValueFromItems();
|
|
149
|
-
}
|
|
150
|
-
if (this.searchMatchValues) {
|
|
151
|
-
this.onSearchMatchValuesChange();
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (this.allItems && !this._allItemListSubscription) {
|
|
155
|
-
this._allItemListSubscription = this.allItems.changes.subscribe(() => this.configureAllItems());
|
|
156
|
-
}
|
|
157
|
-
this.changeDetector.detectChanges();
|
|
158
|
-
this._alreadyConfiguringItems = false;
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
onSearchMatchValuesChange() {
|
|
163
|
-
if (this.allItems) {
|
|
164
|
-
this.allItems.forEach((item) => {
|
|
165
|
-
item.inheritedMatchesSearch = true;
|
|
166
|
-
});
|
|
167
|
-
if (this.searchMatchValues !== null && this.searchMatchValues !== undefined) {
|
|
168
|
-
this.allItems.forEach((item) => {
|
|
169
|
-
if (this.searchMatchValues.findIndex((value) => item.value === value) < 0) {
|
|
170
|
-
item.inheritedMatchesSearch = false;
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
getIdPrefix() {
|
|
177
|
-
return this.idPrefix ? this.idPrefix : this.name;
|
|
178
|
-
}
|
|
179
|
-
getDescribedBy() {
|
|
180
|
-
let describedBy = '';
|
|
181
|
-
if (this.describedBy) {
|
|
182
|
-
describedBy = this.describedBy;
|
|
183
|
-
}
|
|
184
|
-
if (this.hasHintComponent() && this.hintComponent.id) {
|
|
185
|
-
describedBy = describedBy + ' ' + this.hintComponent.id;
|
|
186
|
-
}
|
|
187
|
-
if (this.hasErrorMessageComponent() && this.errorMessageComponent.id) {
|
|
188
|
-
describedBy = describedBy + ' ' + this.errorMessageComponent.id;
|
|
189
|
-
}
|
|
190
|
-
return describedBy;
|
|
191
|
-
}
|
|
192
|
-
getDescribedByForItems() {
|
|
193
|
-
let describedBy;
|
|
194
|
-
if (this.hasFieldsetComponent()) {
|
|
195
|
-
describedBy = this.fieldsetComponent.describedBy;
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
describedBy = this.getDescribedBy();
|
|
199
|
-
}
|
|
200
|
-
return describedBy;
|
|
201
|
-
}
|
|
202
|
-
hasFieldsetComponent() {
|
|
203
|
-
return !!this.fieldsetComponent;
|
|
204
|
-
}
|
|
205
|
-
getHintId() {
|
|
206
|
-
return this.idPrefix ? this.idPrefix + '-hint' : this.hintComponent?.id;
|
|
207
|
-
}
|
|
208
|
-
getErrorId() {
|
|
209
|
-
return this.idPrefix ? this.idPrefix + '-error' : this.errorMessageComponent?.id;
|
|
210
|
-
}
|
|
211
|
-
overrideFieldsetParams(fieldset) {
|
|
212
|
-
fieldset.caller = this.innerHtml;
|
|
213
|
-
fieldset.errorId = this.getErrorId();
|
|
214
|
-
fieldset.describedBy = this.getDescribedBy();
|
|
215
|
-
fieldset.detectChanges();
|
|
216
|
-
}
|
|
217
|
-
overrideSearchBarParams(searchbar) {
|
|
218
|
-
const defaultOnChange = searchbar.onChange;
|
|
219
|
-
const newOnChange = (value) => {
|
|
220
|
-
this.onSearch(value);
|
|
221
|
-
defaultOnChange(value);
|
|
222
|
-
};
|
|
223
|
-
searchbar.registerOnChange(newOnChange);
|
|
224
|
-
}
|
|
225
|
-
overrideHintParams(hint) {
|
|
226
|
-
hint.id = this.getHintId();
|
|
227
|
-
hint.detectChanges();
|
|
228
|
-
}
|
|
229
|
-
overrideErrorMessageParams(errorMessage) {
|
|
230
|
-
errorMessage.id = this.getErrorId();
|
|
231
|
-
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
232
|
-
errorMessage.detectChanges();
|
|
233
|
-
}
|
|
234
|
-
onDeleteErrorMessage(errorMessage) {
|
|
235
|
-
this.setErrorInItems(this.hasErrorMessageComponent());
|
|
236
|
-
}
|
|
237
|
-
buildTree() {
|
|
238
|
-
const itemMap = {};
|
|
239
|
-
this.rootItems = [];
|
|
240
|
-
this.allItems.forEach((item) => {
|
|
241
|
-
const key = item.getKey();
|
|
242
|
-
itemMap[key] = item;
|
|
243
|
-
if (item.sub) {
|
|
244
|
-
item.sub.itemList = [];
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
this.allItems.forEach((item) => {
|
|
248
|
-
const parentKey = item.getParentKey();
|
|
249
|
-
if (parentKey === 'root') {
|
|
250
|
-
this.rootItems.push(item);
|
|
251
|
-
}
|
|
252
|
-
else if (parentKey) {
|
|
253
|
-
const sub = itemMap[parentKey].sub;
|
|
254
|
-
if (sub) {
|
|
255
|
-
sub.itemList.push(item);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
let order = 0;
|
|
260
|
-
this.rootItems.forEach((item, index) => {
|
|
261
|
-
item.setSubLevel(0);
|
|
262
|
-
item.setDefaultId(`${this.idPrefix}-${index}`);
|
|
263
|
-
item.refreshAllParentsExpandedRecursive(true);
|
|
264
|
-
if (!this.decoupleChildFromParent) {
|
|
265
|
-
item.setCheckedAutomaticallyDependingOnChildren();
|
|
266
|
-
}
|
|
267
|
-
order = item.setOrderRecursively(order);
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
setErrorInItems(hasError) {
|
|
271
|
-
if (this.allItems?.length > 0) {
|
|
272
|
-
this.allItems.forEach((item) => {
|
|
273
|
-
item.inheritedHasError = hasError;
|
|
274
|
-
item.detectChanges();
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
clearSubscriptions(subscriptionList) {
|
|
279
|
-
if (subscriptionList.length > 0) {
|
|
280
|
-
subscriptionList.forEach((s) => s.unsubscribe());
|
|
281
|
-
subscriptionList.splice(0, subscriptionList.length);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
getAllItemsInOrder() {
|
|
285
|
-
let list = [];
|
|
286
|
-
if (this.allItems) {
|
|
287
|
-
list = this.allItems.toArray().sort((a, b) => (a.orderInTree > b.orderInTree ? 1 : -1));
|
|
288
|
-
}
|
|
289
|
-
return list;
|
|
290
|
-
}
|
|
291
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
292
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TreeComponent, selector: "desy-tree", inputs: { id: "id", idPrefix: "idPrefix", classes: "classes", name: "name", type: "type", describedBy: "describedBy", formGroupClasses: "formGroupClasses", expandedFirstLevel: "expandedFirstLevel", decoupleChildFromParent: "decoupleChildFromParent", disableDefaultSearch: "disableDefaultSearch", searchMatchValues: "searchMatchValues" }, outputs: { searchMatchValuesChange: "searchMatchValuesChange" }, providers: [
|
|
293
|
-
{
|
|
294
|
-
provide: NG_VALUE_ACCESSOR,
|
|
295
|
-
useExisting: forwardRef(() => TreeComponent),
|
|
296
|
-
multi: true,
|
|
297
|
-
},
|
|
298
|
-
], 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: "<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\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : 'tree'\"\n [desyAppAccessibility]=\"this\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<!-- tree -->\n<div\n [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>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "pipe", type: i3.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
299
|
-
}
|
|
300
|
-
__decorate([
|
|
301
|
-
DesyOnInputChange('onSearchMatchValuesChange'),
|
|
302
|
-
__metadata("design:type", Array)
|
|
303
|
-
], TreeComponent.prototype, "searchMatchValues", void 0);
|
|
304
|
-
__decorate([
|
|
305
|
-
DesyOnInputChange('configureAllItems'),
|
|
306
|
-
__metadata("design:type", QueryList)
|
|
307
|
-
], TreeComponent.prototype, "allItems", void 0);
|
|
308
|
-
__decorate([
|
|
309
|
-
DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' }),
|
|
310
|
-
__metadata("design:type", FieldsetComponent)
|
|
311
|
-
], TreeComponent.prototype, "fieldsetComponent", void 0);
|
|
312
|
-
__decorate([
|
|
313
|
-
DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams' }),
|
|
314
|
-
__metadata("design:type", SearchBarComponent)
|
|
315
|
-
], TreeComponent.prototype, "searchBarComponent", void 0);
|
|
316
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TreeComponent, decorators: [{
|
|
317
|
-
type: Component,
|
|
318
|
-
args: [{ selector: 'desy-tree', providers: [
|
|
319
|
-
{
|
|
320
|
-
provide: NG_VALUE_ACCESSOR,
|
|
321
|
-
useExisting: forwardRef(() => TreeComponent),
|
|
322
|
-
multi: true,
|
|
323
|
-
},
|
|
324
|
-
], template: "<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\n [attr.id]=\"id ? id : null\"\n [attr.role]=\"role ? role : 'tree'\"\n [desyAppAccessibility]=\"this\">\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<!-- tree -->\n<div\n [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>\n" }]
|
|
325
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
326
|
-
type: Input
|
|
327
|
-
}], idPrefix: [{
|
|
328
|
-
type: Input
|
|
329
|
-
}], classes: [{
|
|
330
|
-
type: Input
|
|
331
|
-
}], name: [{
|
|
332
|
-
type: Input
|
|
333
|
-
}], type: [{
|
|
334
|
-
type: Input
|
|
335
|
-
}], describedBy: [{
|
|
336
|
-
type: Input
|
|
337
|
-
}], formGroupClasses: [{
|
|
338
|
-
type: Input
|
|
339
|
-
}], expandedFirstLevel: [{
|
|
340
|
-
type: Input
|
|
341
|
-
}], decoupleChildFromParent: [{
|
|
342
|
-
type: Input
|
|
343
|
-
}], disableDefaultSearch: [{
|
|
344
|
-
type: Input
|
|
345
|
-
}], searchMatchValues: [{
|
|
346
|
-
type: Input
|
|
347
|
-
}], searchMatchValuesChange: [{
|
|
348
|
-
type: Output
|
|
349
|
-
}], allItems: [{
|
|
350
|
-
type: ContentChildren,
|
|
351
|
-
args: [TreeItemComponent, { descendants: true }]
|
|
352
|
-
}], fieldsetComponent: [{
|
|
353
|
-
type: ContentChildren,
|
|
354
|
-
args: [FieldsetComponent]
|
|
355
|
-
}], searchBarComponent: [{
|
|
356
|
-
type: ContentChildren,
|
|
357
|
-
args: [SearchBarComponent]
|
|
358
|
-
}], innerHtml: [{
|
|
359
|
-
type: ViewChild,
|
|
360
|
-
args: ['innerHtml', { static: true }]
|
|
361
|
-
}] } });
|
|
362
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvdHJlZS90cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy90cmVlL3RyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBYXBFLE1BQU0sT0FBTyxhQUFjLFNBQVEsa0JBQXlCO0lBeUMxRCxZQUFvQixjQUFpQztRQUNuRCxLQUFLLEVBQUUsQ0FBQztRQURVLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQS9CNUMsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLDRCQUF1QixHQUFHLEtBQUssQ0FBQztR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b0I7c0JBQTVCLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFJUCxRQUFRO3NCQURQLGVBQWU7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUt6RCxpQkFBaUI7c0JBRGhCLGVBQWU7dUJBQUMsaUJBQWlCO2dCQUtsQyxrQkFBa0I7c0JBRGpCLGVBQWU7dUJBQUMsa0JBQWtCO2dCQUdPLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEZXN5Q29udGVudENoaWxkIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XG5pbXBvcnQgeyBEZXN5T25JbnB1dENoYW5nZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktb24taW5wdXQtY2hhbmdlLmRlY29yYXRvcic7XG5pbXBvcnQgeyBGaWVsZHNldENvbXBvbmVudCB9IGZyb20gJy4uL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEJhckNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVpdFRyZWVJdGVtRm9jdXNPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3F1aXQtdHJlZS1pdGVtLWZvY3VzLW9wdGlvbnMnO1xuaW1wb3J0IHsgVHJlZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyZWVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBleHRlbmRzIEZvcm1GaWVsZENvbXBvbmVudDxhbnlbXT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSB0eXBlOiAncmFkaW8nIHwgJ2NoZWNrYm94JyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRlc2NyaWJlZEJ5OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgZm9ybUdyb3VwQ2xhc3NlczogYW55O1xuXG4gIEBJbnB1dCgpIGV4cGFuZGVkRmlyc3RMZXZlbCA9IHRydWU7XG4gIEBJbnB1dCgpIGRlY291cGxlQ2hpbGRGcm9tUGFyZW50ID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZGlzYWJsZURlZmF1bHRTZWFyY2ggPSBmYWxzZTtcblxuICBARGVzeU9uSW5wdXRDaGFuZ2UoJ29uU2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UnKVxuICBASW5wdXQoKVxuICBzZWFyY2hNYXRjaFZhbHVlczogc3RyaW5nW107XG4gIEBPdXRwdXQoKSBzZWFyY2hNYXRjaFZhbHVlc0NoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgQERlc3lPbklucHV0Q2hhbmdlKCdjb25maWd1cmVBbGxJdGVtcycpXG4gIEBDb250ZW50Q2hpbGRyZW4oVHJlZUl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgYWxsSXRlbXM6IFF1ZXJ5TGlzdDxUcmVlSXRlbUNvbXBvbmVudD47XG5cbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnIH0pXG4gIEBDb250ZW50Q2hpbGRyZW4oRmllbGRzZXRDb21wb25lbnQpXG4gIGZpZWxkc2V0Q29tcG9uZW50OiBGaWVsZHNldENvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCh7IG9uU2V0Q2FsbGJhY2tOYW1lOiAnb3ZlcnJpZGVTZWFyY2hCYXJQYXJhbXMnIH0pXG4gIEBDb250ZW50Q2hpbGRyZW4oU2VhcmNoQmFyQ29tcG9uZW50KVxuICBzZWFyY2hCYXJDb21wb25lbnQ6IFNlYXJjaEJhckNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdpbm5lckh0bWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbm5lckh0bWw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSByb290SXRlbXM6IFRyZWVJdGVtQ29tcG9uZW50W10gPSBbXTtcbiAgcHJpdmF0ZSBfaXRlbUxpc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfYWxsSXRlbUxpc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfaXRlbUxpc3RDaGVja2VkU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfaXRlbUxpc3RRdWl0Rm9jdXNTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMpO1xuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9ucyk7XG4gICAgdGhpcy5faXRlbUxpc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fYWxsSXRlbUxpc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWd1cmVBbGxJdGVtcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIHNvYnJlc2NyaWJlIGVsIHZhbG9yIHBhcmEgYWN0dWFsaXphciBsb3MgaXRlbXNcbiAgICogQE92ZXJyaWRlXG4gICAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jb25maWd1cmVBbGxJdGVtcyh0cnVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIHNvYnJlc2NyaWJlIGVsIHZhbG9yIHBhcmEgYWN0dWFsaXphciBsb3MgaXRlbXNcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZCk7XG4gICAgdGhpcy5jb25maWd1cmVBbGxJdGVtcygpO1xuICB9XG5cbiAgLypcbiAgICogRXZlbnRvc1xuICAgKi9cblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIHZhbG9yIGRlbCBjb21wb25lbnRlIGFsIGNoZWNrcXVlYXJzZSB1biDDrXRlbVxuICAgKiBAcGFyYW0gb3JpZ2luSXRlbSDDrXRlbSBtb2RpZmljYWRvXG4gICAqL1xuICB1cGRhdGVWYWx1ZUZyb21JdGVtcyhvcmlnaW5JdGVtPzogVHJlZUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAvLyBTaSBlcyByYWRpbywgc2UgZGVzYWN0aXZhbiBlbCByZXN0byBkZSBpdGVtcyBjdWFuZG8gc2UgYWN0aXZhIG90cm8gaXRlbVxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdjaGVja2JveCcpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRBbGxJdGVtc0luT3JkZXIoKTtcbiAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0gIT09IG9yaWdpbkl0ZW0gJiYgaXRlbS5jaGVja2VkKSB7XG4gICAgICAgICAgaXRlbS5zZXRDaGVja2VkKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5kZWNvdXBsZUNoaWxkRnJvbVBhcmVudCkge1xuICAgICAgdGhpcy5yb290SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zZXRDaGVja2VkQXV0b21hdGljYWxseURlcGVuZGluZ09uQ2hpbGRyZW4oKSk7XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9IFtdO1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRBbGxJdGVtc0luT3JkZXIoKTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMudmFsdWUucHVzaChpdGVtLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlc3Rpb25hIGN1YW5kbyBlbCBmb2NvIGFiYW5kb25hIHVuIMOtdGVtIGRlc2RlIHVuIGV2ZW50byBkZSB0ZWNsYWRvIGNvbnRyb2xhZG9cbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIGhhbmRsZUl0ZW1RdWl0Rm9jdXMob3B0aW9uczogUXVpdFRyZWVJdGVtRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5uZXh0RWxlbWVudCkge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEFsbEl0ZW1zSW5PcmRlcigpO1xuICAgICAgY29uc3QgZm9jdXNhYmxlSXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzSGlkZGVuKCkgJiYgIWl0ZW0uZGlzYWJsZWQgJiYgaXRlbS5hbGxQYXJlbnRzRXhwYW5kZWQpO1xuICAgICAgc3dpdGNoIChvcHRpb25zLm5leHRFbGVtZW50KSB7XG4gICAgICAgIGNhc2UgJ2ZpcnN0JzpcbiAgICAgICAgICBmb2N1c2FibGVJdGVtc1swXS5mb2N1cygpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsYXN0JzpcbiAgICAgICAgICBmb2N1c2FibGVJdGVtc1tmb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdwYXJlbnQnOlxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdWJMZXZlbCA9IG9wdGlvbnMuY3VycmVudEl0ZW0uc3ViTGV2ZWw7XG4gICAgICAgICAgaWYgKGN1cnJlbnRTdWJMZXZlbCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtSW5kZXggPSBmb2N1c2FibGVJdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IG9wdGlvbnMuY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gZm9jdXNhYmxlSXRlbXNcbiAgICAgICAgICAgICAgLnNsaWNlKDAsIGN1cnJlbnRJdGVtSW5kZXgpXG4gICAgICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAgICAgLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc3ViTGV2ZWwgPCBjdXJyZW50U3ViTGV2ZWwpO1xuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICBwYXJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ZpcnN0Q2hpbGQnOlxuICAgICAgICBjYXNlICduZXh0JzpcbiAgICAgICAgICBpZiAob3B0aW9ucy5jdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRJdGVtSW5kZXggPSBmb2N1c2FibGVJdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IG9wdGlvbnMuY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtSW5kZXggPCBmb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGZvY3VzYWJsZUl0ZW1zW2N1cnJlbnRJdGVtSW5kZXggKyAxXS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncHJldmlvdXMnOlxuICAgICAgICAgIGlmIChvcHRpb25zLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbUluZGV4ID0gZm9jdXNhYmxlSXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtID09PSBvcHRpb25zLmN1cnJlbnRJdGVtKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbUluZGV4ID4gMCkge1xuICAgICAgICAgICAgICBmb2N1c2FibGVJdGVtc1tjdXJyZW50SXRlbUluZGV4IC0gMV0uZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlYWxpemEgbGEgYsO6c3F1ZWRhIGludGVybmEgZGUgbG9zIGl0ZW1zIGVuIGVsIGNvbXBvbmVudGVcbiAgICogQHBhcmFtIHZhbHVlIHRleHRvIGRlIGLDunNxdWVkYVxuICAgKi9cbiAgb25TZWFyY2godmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlRGVmYXVsdFNlYXJjaCkge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWFyY2hNYXRjaFZhbHVlcyA9IHRoaXMuYWxsSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLm1hdGNoZXNUZXh0KHZhbHVlKSkubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgPSBudWxsO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hNYXRjaFZhbHVlc0NoYW5nZS5lbWl0KHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIEV2ZW50b3MgYWwgY2FtYmlhciBwcm9waWVkYWRlc1xuICAgKi9cblxuICAvKipcbiAgICogQ29uZmlndXJhIGxvcyBpdGVtcyBkZWwgw6FyYm9sXG4gICAqL1xuICBjb25maWd1cmVBbGxJdGVtcyhpc1ZhbHVlQ2hhbmdlID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2FscmVhZHlDb25maWd1cmluZ0l0ZW1zKSB7XG4gICAgICB0aGlzLl9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IHRydWU7XG5cbiAgICAgIC8vIExvIHJlYWxpemFtb3MgZGVzZGUgdW4gc2V0VGltZW91dCBwYXJhIHF1ZSB0b2RvcyBsb3MgaW5wdXRzLCB2YWx1ZXMgeSBkZW3DoXMgdml2YW4gZW4gcGF6IHkgYXJtb27DrWFcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5hbGxJdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMpO1xuICAgICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9ucyk7XG4gICAgICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLnBhcmVudE5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICAgICAgICBpdGVtLnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgICAgICBpdGVtLmluaGVyaXRlZERlc2NyaWJlZEJ5ID0gdGhpcy5nZXREZXNjcmliZWRCeUZvckl0ZW1zKCk7XG4gICAgICAgICAgICBpdGVtLmluaGVyaXRlZEV4cGFuZGVkRmlyc3RMZXZlbCA9IHRoaXMuZXhwYW5kZWRGaXJzdExldmVsO1xuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWREZWNvdXBsZUNoaWxkRnJvbVBhcmVudCA9IHRoaXMuZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQ7XG4gICAgICAgICAgICBpdGVtLnRyZWVEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XG4gICAgICAgICAgICBpZiAoKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB8fCBpc1ZhbHVlQ2hhbmdlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlTGlzdCA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogW107XG4gICAgICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZCghIXZhbHVlTGlzdC5maW5kKCh2KSA9PiB2ID09PSBpdGVtLnZhbHVlKSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpdGVtLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgY29uc3QgY2hlY2tlZFN1YnNjcmlwdGlvbiA9IGl0ZW0uY2hlY2tlZENoYW5nZUZvclRyZWUuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVmFsdWVGcm9tSXRlbXMoaXRlbSkpO1xuICAgICAgICAgICAgdGhpcy5faXRlbUxpc3RDaGVja2VkU3Vic2NyaXB0aW9ucy5wdXNoKGNoZWNrZWRTdWJzY3JpcHRpb24pO1xuXG4gICAgICAgICAgICBjb25zdCBxdWl0Rm9jdXNTdWJzY3JpcHRpb24gPSBpdGVtLnF1aXRGb2N1cy5zdWJzY3JpYmUoKG9wdGlvbnMpID0+IHRoaXMuaGFuZGxlSXRlbVF1aXRGb2N1cyhvcHRpb25zKSk7XG4gICAgICAgICAgICB0aGlzLl9pdGVtTGlzdFF1aXRGb2N1c1N1YnNjcmlwdGlvbnMucHVzaChxdWl0Rm9jdXNTdWJzY3JpcHRpb24pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5zZXRFcnJvckluSXRlbXModGhpcy5oYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKSk7XG5cbiAgICAgICAgICB0aGlzLmJ1aWxkVHJlZSgpO1xuICAgICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUZyb21JdGVtcygpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNlYXJjaE1hdGNoVmFsdWVzKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hbGxJdGVtcyAmJiAhdGhpcy5fYWxsSXRlbUxpc3RTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICB0aGlzLl9hbGxJdGVtTGlzdFN1YnNjcmlwdGlvbiA9IHRoaXMuYWxsSXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jb25maWd1cmVBbGxJdGVtcygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vZGlmaWNhIGxvcyBpdGVtcyB2aXNpYmxlcyBzZWfDum4gZWwgZmlsdHJvIGRlIGLDunNxdWVkYVxuICAgKi9cbiAgb25TZWFyY2hNYXRjaFZhbHVlc0NoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxJdGVtcykge1xuICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uaW5oZXJpdGVkTWF0Y2hlc1NlYXJjaCA9IHRydWU7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgIT09IG51bGwgJiYgdGhpcy5zZWFyY2hNYXRjaFZhbHVlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnNlYXJjaE1hdGNoVmFsdWVzLmZpbmRJbmRleCgodmFsdWUpID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKSA8IDApIHtcbiAgICAgICAgICAgIGl0ZW0uaW5oZXJpdGVkTWF0Y2hlc1NlYXJjaCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLypcbiAgICogR2V0dGVycyBhbmQgc2V0dGVyc1xuICAgKi9cblxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6IHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldERlc2NyaWJlZEJ5KCk6IHN0cmluZyB7XG4gICAgbGV0IGRlc2NyaWJlZEJ5ID0gJyc7XG4gICAgaWYgKHRoaXMuZGVzY3JpYmVkQnkpIHtcbiAgICAgIGRlc2NyaWJlZEJ5ID0gdGhpcy5kZXNjcmliZWRCeTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNIaW50Q29tcG9uZW50KCkgJiYgdGhpcy5oaW50Q29tcG9uZW50LmlkKSB7XG4gICAgICBkZXNjcmliZWRCeSA9IGRlc2NyaWJlZEJ5ICsgJyAnICsgdGhpcy5oaW50Q29tcG9uZW50LmlkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpICYmIHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50LmlkKSB7XG4gICAgICBkZXNjcmliZWRCeSA9IGRlc2NyaWJlZEJ5ICsgJyAnICsgdGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQuaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlc2NyaWJlZEJ5O1xuICB9XG5cbiAgLyoqXG4gICAqIERldnVlbHZlIGVsIHZhbG9yIGRlIGRlc2NyaWJlZEJ5IHF1ZSBzZSB0cmFuc21pdGlyw6EgYSBsb3MgaXRlbXNcbiAgICovXG4gIGdldERlc2NyaWJlZEJ5Rm9ySXRlbXMoKTogc3RyaW5nIHtcbiAgICBsZXQgZGVzY3JpYmVkQnk7XG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xuICAgICAgZGVzY3JpYmVkQnkgPSB0aGlzLmZpZWxkc2V0Q29tcG9uZW50LmRlc2NyaWJlZEJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBkZXNjcmliZWRCeSA9IHRoaXMuZ2V0RGVzY3JpYmVkQnkoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVzY3JpYmVkQnk7XG4gIH1cblxuICBoYXNGaWVsZHNldENvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpZWxkc2V0Q29tcG9uZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBzdXBlci5nZXRIaW50SWQoKTtcbiAgICovXG4gIGdldEhpbnRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCArICctaGludCcgOiB0aGlzLmhpbnRDb21wb25lbnQ/LmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBzdXBlci5nZXRIaW50SWQoKTtcbiAgICovXG4gIGdldEVycm9ySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggKyAnLWVycm9yJyA6IHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50Py5pZDtcbiAgfVxuXG4gIC8qXG4gICAqIEZ1bmNpb25lcyBwYXJhIHJlZW1wbGF6YXIgZWwgY29udGVuaWRvIGRlbCBmaWVsZHNldCwgbGFiZWwsIGhpbnQgbyBlcnJvcm1lc3NhZ2VcbiAgICovXG5cbiAgb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyhmaWVsZHNldDogRmllbGRzZXRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBmaWVsZHNldC5jYWxsZXIgPSB0aGlzLmlubmVySHRtbDtcbiAgICBmaWVsZHNldC5lcnJvcklkID0gdGhpcy5nZXRFcnJvcklkKCk7XG4gICAgZmllbGRzZXQuZGVzY3JpYmVkQnkgPSB0aGlzLmdldERlc2NyaWJlZEJ5KCk7XG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb3ZlcnJpZGVTZWFyY2hCYXJQYXJhbXMoc2VhcmNoYmFyOiBTZWFyY2hCYXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0T25DaGFuZ2UgPSBzZWFyY2hiYXIub25DaGFuZ2U7XG4gICAgY29uc3QgbmV3T25DaGFuZ2UgPSAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMub25TZWFyY2godmFsdWUpO1xuICAgICAgZGVmYXVsdE9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9O1xuICAgIHNlYXJjaGJhci5yZWdpc3Rlck9uQ2hhbmdlKG5ld09uQ2hhbmdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBsbGFtYSBkZXNkZSBGb3JtRmllbGRcbiAgICovXG4gIG92ZXJyaWRlSGludFBhcmFtcyhoaW50KTogdm9pZCB7XG4gICAgaGludC5pZCA9IHRoaXMuZ2V0SGludElkKCk7XG4gICAgaGludC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2UgbGxhbWEgZGVzZGUgRm9ybUZpZWxkXG4gICAqL1xuICBvdmVycmlkZUVycm9yTWVzc2FnZVBhcmFtcyhlcnJvck1lc3NhZ2UpOiB2b2lkIHtcbiAgICBlcnJvck1lc3NhZ2UuaWQgPSB0aGlzLmdldEVycm9ySWQoKTtcbiAgICB0aGlzLnNldEVycm9ySW5JdGVtcyh0aGlzLmhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpKTtcbiAgICBlcnJvck1lc3NhZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIGxsYW1hIGRlc2RlIEZvcm1GaWVsZFxuICAgKi9cbiAgb25EZWxldGVFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTogdm9pZCB7XG4gICAgdGhpcy5zZXRFcnJvckluSXRlbXModGhpcy5oYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKSk7XG4gIH1cblxuICAvKlxuICAgKiBNw6l0b2RvcyBwcml2YWRvc1xuICAgKi9cblxuICAvKipcbiAgICogQ29uZmlndXJhIGxhIGVzdHJ1Y3R1cmEgZGVsIMOhcmJvbFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFRyZWUoKTogdm9pZCB7XG4gICAgLy8gU2UgY3JlYSB1biBtYXBhIHBhcmEgdGVuZXIgYWNjZXNpYmxlcyBsb3MgaXRlbXMgcG9yIGtleSB5IHNlIGJvcnJhbiBsb3MgbGlzdGFkb3MgZXhpc3RlbnRlc1xuICAgIGNvbnN0IGl0ZW1NYXAgPSB7fTtcbiAgICB0aGlzLnJvb3RJdGVtcyA9IFtdO1xuICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gaXRlbS5nZXRLZXkoKTtcbiAgICAgIGl0ZW1NYXBba2V5XSA9IGl0ZW07XG4gICAgICBpZiAoaXRlbS5zdWIpIHtcbiAgICAgICAgaXRlbS5zdWIuaXRlbUxpc3QgPSBbXTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNlIGHDsWFkZW4gbG9zIGl0ZW1zIGEgbG9zIGxpc3RhZG9zIGNvcnJlc3BvbmRpZW50ZXNcbiAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IHBhcmVudEtleSA9IGl0ZW0uZ2V0UGFyZW50S2V5KCk7XG4gICAgICBpZiAocGFyZW50S2V5ID09PSAncm9vdCcpIHtcbiAgICAgICAgdGhpcy5yb290SXRlbXMucHVzaChpdGVtKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyZW50S2V5KSB7XG4gICAgICAgIGNvbnN0IHN1YiA9IGl0ZW1NYXBbcGFyZW50S2V5XS5zdWI7XG4gICAgICAgIGlmIChzdWIpIHtcbiAgICAgICAgICBzdWIuaXRlbUxpc3QucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU2UgY29uZmlndXJhbiBsb3MgaXRlbXMgZGVzZGUgcm9vdFxuICAgIGxldCBvcmRlciA9IDA7XG4gICAgdGhpcy5yb290SXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGl0ZW0uc2V0U3ViTGV2ZWwoMCk7XG4gICAgICBpdGVtLnNldERlZmF1bHRJZChgJHt0aGlzLmlkUHJlZml4fS0ke2luZGV4fWApO1xuICAgICAgaXRlbS5yZWZyZXNoQWxsUGFyZW50c0V4cGFuZGVkUmVjdXJzaXZlKHRydWUpO1xuICAgICAgaWYgKCF0aGlzLmRlY291cGxlQ2hpbGRGcm9tUGFyZW50KSB7XG4gICAgICAgIGl0ZW0uc2V0Q2hlY2tlZEF1dG9tYXRpY2FsbHlEZXBlbmRpbmdPbkNoaWxkcmVuKCk7XG4gICAgICB9XG4gICAgICBvcmRlciA9IGl0ZW0uc2V0T3JkZXJSZWN1cnNpdmVseShvcmRlcik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2kgdGllbmUgdW4gbWVuc2FqZSBkZSBlcnJvciwgc2UgaW5kaWNhIGEgbG9zIGl0ZW1zXG4gICAqIEBwYXJhbSBoYXNFcnJvclxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRFcnJvckluSXRlbXMoaGFzRXJyb3I6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxJdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uaW5oZXJpdGVkSGFzRXJyb3IgPSBoYXNFcnJvcjtcbiAgICAgICAgaXRlbS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIHVuIGxpc3RhZG8gZGUgc3Vic2NyaXBjaW9uZXNcbiAgICogQHBhcmFtIHN1YnNjcmlwdGlvbkxpc3RcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY2xlYXJTdWJzY3JpcHRpb25zKHN1YnNjcmlwdGlvbkxpc3Q6IFN1YnNjcmlwdGlvbltdKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmlwdGlvbkxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgc3Vic2NyaXB0aW9uTGlzdC5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgc3Vic2NyaXB0aW9uTGlzdC5zcGxpY2UoMCwgc3Vic2NyaXB0aW9uTGlzdC5sZW5ndGgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXZ1ZWx2ZSBsb3MgaXRlbXMgZGVsIMOhcmJvbCBvcmRlbmFkb3NcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0QWxsSXRlbXNJbk9yZGVyKCk6IFRyZWVJdGVtQ29tcG9uZW50W10ge1xuICAgIGxldCBsaXN0ID0gW107XG4gICAgaWYgKHRoaXMuYWxsSXRlbXMpIHtcbiAgICAgIGxpc3QgPSB0aGlzLmFsbEl0ZW1zLnRvQXJyYXkoKS5zb3J0KChhLCBiKSA9PiAoYS5vcmRlckluVHJlZSA+IGIub3JkZXJJblRyZWUgPyAxIDogLTEpKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjaW5uZXJIdG1sPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZXJyb3ItbWVzc2FnZVwiPjwvbmctY29udGVudD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1zZWFyY2gtYmFyXCI+PC9uZy1jb250ZW50PlxuICA8dWxcbiAgICBbYXR0ci5pZF09XCJpZCA/IGlkIDogbnVsbFwiXG4gICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6ICd0cmVlJ1wiXG4gICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cInRoaXNcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIHRyZWUgLS0+XG48ZGl2XG4gIFtjbGFzc109XCJbJ2MtZm9ybS1ncm91cCcsIGZvcm1Hcm91cENsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgW25nQ2xhc3NdPVwieyAnYy1mb3JtLWdyb3VwLS1lcnJvcic6IGhhc0Vycm9yc01lc3NhZ2UoKSB8fCBmb3JtR3JvdXBDbGFzc2VzID09PSAnYy1mb3JtLWdyb3VwLS1lcnJvcicgfVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRmllbGRzZXRDb21wb25lbnQoKTsgZWxzZSBpbm5lckh0bWxcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWZpZWxkc2V0XCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|